summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2016-08-20 15:11:08 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2016-08-20 15:11:08 +0200
commitcb612a12b952e349b96d427645aaeb55d15f509a (patch)
treef29298f41d2a7ea2a976616243aca64c2c2547ce /src
parente7be93745e4a2ff3aa255227bef7b9d3b733aafa (diff)
parent143bfc9f801c84428074312d661f8e08803df83b (diff)
Merge tag 'upstream/0.23.5'
Upstream version 0.23.5
Diffstat (limited to 'src')
-rw-r--r--src/.unitize/_CameraInternals.c115
-rw-r--r--src/.unitize/_CameraInternals.vala31
-rw-r--r--src/.unitize/_ConfigInternals.c101
-rw-r--r--src/.unitize/_ConfigInternals.vala (renamed from src/unit/rc/UnitInternals.m4)19
-rw-r--r--src/.unitize/_CoreInternals.c101
-rw-r--r--src/.unitize/_CoreInternals.vala31
-rw-r--r--src/.unitize/_DataImportsInternals.c101
-rw-r--r--src/.unitize/_DataImportsInternals.vala31
-rw-r--r--src/.unitize/_DbInternals.c101
-rw-r--r--src/.unitize/_DbInternals.vala31
-rw-r--r--src/.unitize/_DirectInternals.c171
-rw-r--r--src/.unitize/_DirectInternals.vala31
-rw-r--r--src/.unitize/_Direct_unitize_entry.c46
-rw-r--r--src/.unitize/_Direct_unitize_entry.vala (renamed from src/unit/rc/unitize_entry.m4)6
-rw-r--r--src/.unitize/_EditingToolsInternals.c101
-rw-r--r--src/.unitize/_EditingToolsInternals.vala31
-rw-r--r--src/.unitize/_EventsInternals.c115
-rw-r--r--src/.unitize/_EventsInternals.vala31
-rw-r--r--src/.unitize/_FoldersInternals.c129
-rw-r--r--src/.unitize/_FoldersInternals.vala31
-rw-r--r--src/.unitize/_LibraryInternals.c311
-rw-r--r--src/.unitize/_LibraryInternals.vala31
-rw-r--r--src/.unitize/_Library_unitize_entry.c46
-rw-r--r--src/.unitize/_Library_unitize_entry.vala19
-rw-r--r--src/.unitize/_PhotosInternals.c101
-rw-r--r--src/.unitize/_PhotosInternals.vala31
-rw-r--r--src/.unitize/_PluginsInternals.c115
-rw-r--r--src/.unitize/_PluginsInternals.vala31
-rw-r--r--src/.unitize/_PublishingInternals.c115
-rw-r--r--src/.unitize/_PublishingInternals.vala31
-rw-r--r--src/.unitize/_SearchesInternals.c101
-rw-r--r--src/.unitize/_SearchesInternals.vala31
-rw-r--r--src/.unitize/_SidebarInternals.c101
-rw-r--r--src/.unitize/_SidebarInternals.vala31
-rw-r--r--src/.unitize/_SlideshowInternals.c115
-rw-r--r--src/.unitize/_SlideshowInternals.vala31
-rw-r--r--src/.unitize/_TagsInternals.c115
-rw-r--r--src/.unitize/_TagsInternals.vala31
-rw-r--r--src/.unitize/_ThreadsInternals.c101
-rw-r--r--src/.unitize/_ThreadsInternals.vala31
-rw-r--r--src/.unitize/_UnitInternals.c87
-rw-r--r--src/.unitize/_UnitInternals.vala31
-rw-r--r--src/.unitize/_UtilInternals.c101
-rw-r--r--src/.unitize/_UtilInternals.vala31
-rw-r--r--src/AppDirs.c2710
-rw-r--r--src/AppDirs.vala8
-rw-r--r--src/AppWindow.c6160
-rw-r--r--src/AppWindow.vala2
-rw-r--r--src/Application.c1200
-rw-r--r--src/BatchImport.c17492
-rw-r--r--src/Box.c2922
-rw-r--r--src/Box.vala2
-rw-r--r--src/CheckerboardLayout.c12514
-rw-r--r--src/CheckerboardLayout.vala124
-rw-r--r--src/CollectionPage.c7216
-rw-r--r--src/CollectionPage.vala2
-rw-r--r--src/ColorTransformation.c13612
-rw-r--r--src/CommandManager.c1290
-rw-r--r--src/Commands.c22110
-rw-r--r--src/Commands.vala8
-rw-r--r--src/CustomComponents.c3675
-rw-r--r--src/Debug.c747
-rw-r--r--src/DesktopIntegration.c2960
-rw-r--r--src/Dialogs.c21888
-rw-r--r--src/Dialogs.vala21
-rw-r--r--src/Dimensions.c4422
-rw-r--r--src/DirectoryMonitor.c9917
-rw-r--r--src/Event.c7669
-rw-r--r--src/Exporter.c2855
-rw-r--r--src/International.c158
-rw-r--r--src/LibraryFiles.c969
-rw-r--r--src/LibraryMonitor.c8885
-rw-r--r--src/MediaDataRepresentation.c8309
-rw-r--r--src/MediaInterfaces.c1423
-rw-r--r--src/MediaMetadata.c1440
-rw-r--r--src/MediaMonitor.c3180
-rw-r--r--src/MediaPage.c10742
-rw-r--r--src/MediaViewTracker.c1023
-rw-r--r--src/MetadataWriter.c5166
-rw-r--r--src/NaturalCollate.c801
-rw-r--r--src/Orientation.c2061
-rw-r--r--src/Page.c16211
-rw-r--r--src/Page.vala12
-rw-r--r--src/Photo.c42206
-rw-r--r--src/PhotoMonitor.c8610
-rw-r--r--src/PhotoPage.c22228
-rw-r--r--src/PixbufCache.c2666
-rw-r--r--src/Printing.c8706
-rw-r--r--src/Properties.c5776
-rw-r--r--src/Resources.c4359
-rw-r--r--src/Resources.vala39
-rw-r--r--src/Screensaver.c425
-rw-r--r--src/SearchFilter.c10645
-rw-r--r--src/SearchFilter.vala278
-rw-r--r--src/SlideshowPage.c3439
-rw-r--r--src/SortedList.c2904
-rw-r--r--src/Tag.c9786
-rw-r--r--src/Tag.vala67
-rw-r--r--src/Thumbnail.c2731
-rw-r--r--src/Thumbnail.vala6
-rw-r--r--src/ThumbnailCache.c4522
-rw-r--r--src/TimedQueue.c2239
-rw-r--r--src/Tombstone.c3579
-rw-r--r--src/UnityProgressBar.c (renamed from src/unit/rc/template.vala)11
-rw-r--r--src/Upgrades.c1627
-rw-r--r--src/VideoMetadata.c5531
-rw-r--r--src/VideoMonitor.c2336
-rw-r--r--src/VideoSupport.c10961
-rw-r--r--src/camera/Branch.c1222
-rw-r--r--src/camera/Camera.c36
-rw-r--r--src/camera/CameraTable.c4549
-rw-r--r--src/camera/GPhoto.c2807
-rw-r--r--src/camera/ImportPage.c13681
-rw-r--r--src/camera/mk/camera.mk32
-rw-r--r--src/config/Config.c872
-rw-r--r--src/config/ConfigurationInterfaces.c12023
-rw-r--r--src/config/ConfigurationInterfaces.vala26
-rw-r--r--src/config/GSettingsEngine.c5519
-rw-r--r--src/config/GSettingsEngine.vala2
-rw-r--r--src/config/mk/config.mk29
-rw-r--r--src/core/Alteration.c2918
-rw-r--r--src/core/ContainerSourceCollection.c2124
-rw-r--r--src/core/Core.c (renamed from src/unit/rc/Unit.m4)28
-rw-r--r--src/core/DataCollection.c3944
-rw-r--r--src/core/DataObject.c639
-rw-r--r--src/core/DataSet.c1163
-rw-r--r--src/core/DataSource.c4864
-rw-r--r--src/core/DataSourceTypes.c1127
-rw-r--r--src/core/DataView.c681
-rw-r--r--src/core/DataViewTypes.c546
-rw-r--r--src/core/DatabaseSourceCollection.c914
-rw-r--r--src/core/SourceCollection.c1694
-rw-r--r--src/core/SourceHoldingTank.c1729
-rw-r--r--src/core/SourceInterfaces.c328
-rw-r--r--src/core/Tracker.c2025
-rw-r--r--src/core/ViewCollection.c9140
-rw-r--r--src/core/mk/core.mk43
-rw-r--r--src/core/util.c1791
-rw-r--r--src/data_imports/DataImportJob.c1754
-rw-r--r--src/data_imports/DataImportSource.c1425
-rw-r--r--src/data_imports/DataImports.c117
-rw-r--r--src/data_imports/DataImportsPluginHost.c3451
-rw-r--r--src/data_imports/DataImportsUI.c2693
-rw-r--r--src/data_imports/mk/data_imports.mk31
-rw-r--r--src/db/DatabaseTable.c2638
-rw-r--r--src/db/DatabaseTable.vala7
-rw-r--r--src/db/Db.c852
-rw-r--r--src/db/Db.vala2
-rw-r--r--src/db/EventTable.c1877
-rw-r--r--src/db/PhotoTable.c9397
-rw-r--r--src/db/PhotoTable.vala27
-rw-r--r--src/db/SavedSearchDBTable.c4793
-rw-r--r--src/db/TagTable.c2248
-rw-r--r--src/db/TombstoneTable.c1295
-rw-r--r--src/db/VersionTable.c614
-rw-r--r--src/db/VideoTable.c3373
-rw-r--r--src/db/mk/db.mk35
-rw-r--r--src/direct/Direct.c85
-rw-r--r--src/direct/DirectPhoto.c2829
-rw-r--r--src/direct/DirectPhotoPage.c5294
-rw-r--r--src/direct/DirectView.c827
-rw-r--r--src/direct/DirectWindow.c935
-rw-r--r--src/direct/mk/direct.mk36
-rw-r--r--src/editing_tools/EditingTools.c19377
-rw-r--r--src/editing_tools/StraightenTool.c3547
-rw-r--r--src/editing_tools/mk/editing_tools.mk28
-rw-r--r--src/events/Branch.c4446
-rw-r--r--src/events/EventDirectoryItem.c1737
-rw-r--r--src/events/EventPage.c1967
-rw-r--r--src/events/Events.c36
-rw-r--r--src/events/EventsDirectoryPage.c3248
-rw-r--r--src/events/mk/events.mk32
-rw-r--r--src/folders/Branch.c2108
-rw-r--r--src/folders/Folders.c69
-rw-r--r--src/folders/Page.c1028
-rw-r--r--src/folders/mk/folders.mk31
-rw-r--r--src/library/Branch.c2144
-rw-r--r--src/library/FlaggedPage.c1230
-rw-r--r--src/library/FlaggedPage.vala2
-rw-r--r--src/library/FlaggedSidebarEntry.c862
-rw-r--r--src/library/ImportQueuePage.c1589
-rw-r--r--src/library/ImportQueueSidebarEntry.c496
-rw-r--r--src/library/LastImportPage.c1278
-rw-r--r--src/library/LastImportSidebarEntry.c610
-rw-r--r--src/library/Library.c46
-rw-r--r--src/library/LibraryWindow.c11056
-rw-r--r--src/library/LibraryWindow.vala27
-rw-r--r--src/library/OfflinePage.c1741
-rw-r--r--src/library/OfflinePage.vala2
-rw-r--r--src/library/OfflineSidebarEntry.c700
-rw-r--r--src/library/TrashPage.c1706
-rw-r--r--src/library/TrashPage.vala2
-rw-r--r--src/library/TrashSidebarEntry.c816
-rw-r--r--src/library/mk/library.mk54
-rw-r--r--src/main.c3011
-rw-r--r--src/photos/BmpSupport.c1912
-rw-r--r--src/photos/GRaw.c2462
-rw-r--r--src/photos/GRaw.vala3
-rw-r--r--src/photos/GdkSupport.c1402
-rw-r--r--src/photos/JfifSupport.c2020
-rw-r--r--src/photos/PhotoFileAdapter.c1104
-rw-r--r--src/photos/PhotoFileFormat.c3277
-rw-r--r--src/photos/PhotoFileSniffer.c1348
-rw-r--r--src/photos/PhotoMetadata.c8924
-rw-r--r--src/photos/Photos.c89
-rw-r--r--src/photos/PngSupport.c1929
-rw-r--r--src/photos/RawSupport.c3165
-rw-r--r--src/photos/TiffSupport.c1714
-rw-r--r--src/photos/mk/photos.mk38
-rw-r--r--src/plugins/DataImportsInterfaces.c1738
-rw-r--r--src/plugins/ManifestWidget.c2253
-rw-r--r--src/plugins/Plugins.c4420
-rw-r--r--src/plugins/PublishingInterfaces.c1760
-rw-r--r--src/plugins/PublishingInterfaces.vala17
-rw-r--r--src/plugins/SpitInterfaces.c1324
-rw-r--r--src/plugins/StandardHostInterface.c699
-rw-r--r--src/plugins/TransitionsInterfaces.c1808
-rw-r--r--src/plugins/mk/interfaces.mk29
-rw-r--r--src/plugins/mk/plugins.mk35
-rw-r--r--src/publishing/APIGlue.c1432
-rw-r--r--src/publishing/Publishing.c196
-rw-r--r--src/publishing/PublishingPluginHost.c1521
-rw-r--r--src/publishing/PublishingUI.c3520
-rw-r--r--src/publishing/mk/publishing.mk31
-rw-r--r--src/searches/Branch.c1655
-rw-r--r--src/searches/SavedSearchDialog.c6493
-rw-r--r--src/searches/SavedSearchDialog.vala2
-rw-r--r--src/searches/SavedSearchPage.c1493
-rw-r--r--src/searches/SearchBoolean.c6902
-rw-r--r--src/searches/Searches.c49
-rw-r--r--src/searches/mk/searches.mk31
-rw-r--r--src/sidebar/Branch.c2814
-rw-r--r--src/sidebar/Entry.c639
-rw-r--r--src/sidebar/Sidebar.c28
-rw-r--r--src/sidebar/Tree.c7856
-rw-r--r--src/sidebar/common.c1171
-rw-r--r--src/sidebar/mk/sidebar.mk31
-rw-r--r--src/slideshow/Slideshow.c377
-rw-r--r--src/slideshow/TransitionEffects.c2658
-rw-r--r--src/slideshow/mk/slideshow.mk29
-rw-r--r--src/tags/Branch.c3253
-rw-r--r--src/tags/HierarchicalTagIndex.c1039
-rw-r--r--src/tags/HierarchicalTagUtilities.c2356
-rw-r--r--src/tags/TagPage.c1635
-rw-r--r--src/tags/Tags.c36
-rw-r--r--src/tags/mk/tags.mk32
-rw-r--r--src/threads/BackgroundJob.c1911
-rw-r--r--src/threads/Semaphore.c1159
-rw-r--r--src/threads/Threads.c28
-rw-r--r--src/threads/Workers.c1074
-rw-r--r--src/threads/mk/threads.mk30
-rw-r--r--src/unit/Unit.c28
-rw-r--r--src/unit/mk/unit.mk32
-rw-r--r--src/unit/rc/template.mk27
-rw-r--r--src/util/KeyValueMap.c1180
-rw-r--r--src/util/Util.c31
-rw-r--r--src/util/file.c1937
-rw-r--r--src/util/image.c2701
-rw-r--r--src/util/misc.c3137
-rw-r--r--src/util/mk/util.mk34
-rw-r--r--src/util/string.c2016
-rw-r--r--src/util/system.c168
-rw-r--r--src/util/ui.c405
263 files changed, 654674 insertions, 836 deletions
diff --git a/src/.unitize/_CameraInternals.c b/src/.unitize/_CameraInternals.c
new file mode 100644
index 0000000..4b84aa5
--- /dev/null
+++ b/src/.unitize/_CameraInternals.c
@@ -0,0 +1,115 @@
+/* _CameraInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _CameraInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint camera__unit_init_count;
+gint camera__unit_init_count = 0;
+
+void camera_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void sidebar_init_entry (GError** error);
+void camera_init (GError** error);
+void camera_terminate_entry (void);
+void camera_terminate (void);
+void unit_terminate_entry (void);
+void sidebar_terminate_entry (void);
+
+
+void camera_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ _tmp0_ = camera__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ camera__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ return;
+#line 42 "_CameraInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ return;
+#line 52 "_CameraInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ sidebar_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ return;
+#line 62 "_CameraInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ camera_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ return;
+#line 72 "_CameraInternals.c"
+ }
+}
+
+
+void camera_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ _tmp1_ = camera__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ _tmp0_ = TRUE;
+#line 86 "_CameraInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ _tmp2_ = camera__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ camera__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ _tmp3_ = camera__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 98 "_CameraInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ return;
+#line 104 "_CameraInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ camera_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_CameraInternals.vala"
+ sidebar_terminate_entry ();
+#line 112 "_CameraInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_CameraInternals.vala b/src/.unitize/_CameraInternals.vala
new file mode 100644
index 0000000..68d37ca
--- /dev/null
+++ b/src/.unitize/_CameraInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Camera {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Sidebar.init_entry();
+
+ Camera.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Camera.terminate();
+
+ Unit.terminate_entry(); Sidebar.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_ConfigInternals.c b/src/.unitize/_ConfigInternals.c
new file mode 100644
index 0000000..d7eb0e4
--- /dev/null
+++ b/src/.unitize/_ConfigInternals.c
@@ -0,0 +1,101 @@
+/* _ConfigInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _ConfigInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint config__unit_init_count;
+gint config__unit_init_count = 0;
+
+void config_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void config_init (GError** error);
+void config_terminate_entry (void);
+void config_terminate (void);
+void unit_terminate_entry (void);
+
+
+void config_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ _tmp0_ = config__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ config__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ return;
+#line 40 "_ConfigInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ return;
+#line 50 "_ConfigInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ config_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ return;
+#line 60 "_ConfigInternals.c"
+ }
+}
+
+
+void config_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ _tmp1_ = config__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_ConfigInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ _tmp2_ = config__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ config__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ _tmp3_ = config__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_ConfigInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ return;
+#line 92 "_ConfigInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ config_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_ConfigInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_ConfigInternals.c"
+}
+
+
+
diff --git a/src/unit/rc/UnitInternals.m4 b/src/.unitize/_ConfigInternals.vala
index 71614d4..90a46a0 100644
--- a/src/unit/rc/UnitInternals.m4
+++ b/src/.unitize/_ConfigInternals.vala
@@ -6,27 +6,26 @@
* Auto-generated file. Do not modify!
*/
-namespace _UNIT_NAME_ {
+namespace Config {
private int _unit_init_count = 0;
public void init_entry() throws Error {
if (_unit_init_count++ != 0)
return;
-
- _UNIT_USES_INITS_
-
- _UNIT_NAME_.init();
+
+ Unit.init_entry();
+
+ Config.init();
}
public void terminate_entry() {
if (_unit_init_count == 0 || --_unit_init_count != 0)
return;
-
- _UNIT_NAME_.terminate();
-
- _UNIT_USES_TERMINATORS_
-}
+ Config.terminate();
+
+ Unit.terminate_entry();
}
+}
diff --git a/src/.unitize/_CoreInternals.c b/src/.unitize/_CoreInternals.c
new file mode 100644
index 0000000..f95207a
--- /dev/null
+++ b/src/.unitize/_CoreInternals.c
@@ -0,0 +1,101 @@
+/* _CoreInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _CoreInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint core__unit_init_count;
+gint core__unit_init_count = 0;
+
+void core_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void core_init (GError** error);
+void core_terminate_entry (void);
+void core_terminate (void);
+void unit_terminate_entry (void);
+
+
+void core_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ _tmp0_ = core__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ core__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ return;
+#line 40 "_CoreInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ return;
+#line 50 "_CoreInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ core_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ return;
+#line 60 "_CoreInternals.c"
+ }
+}
+
+
+void core_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ _tmp1_ = core__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_CoreInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ _tmp2_ = core__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ core__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ _tmp3_ = core__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_CoreInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ return;
+#line 92 "_CoreInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ core_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_CoreInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_CoreInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_CoreInternals.vala b/src/.unitize/_CoreInternals.vala
new file mode 100644
index 0000000..b581845
--- /dev/null
+++ b/src/.unitize/_CoreInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Core {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ Core.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Core.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_DataImportsInternals.c b/src/.unitize/_DataImportsInternals.c
new file mode 100644
index 0000000..2d2fc94
--- /dev/null
+++ b/src/.unitize/_DataImportsInternals.c
@@ -0,0 +1,101 @@
+/* _DataImportsInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _DataImportsInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint data_imports__unit_init_count;
+gint data_imports__unit_init_count = 0;
+
+void data_imports_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void data_imports_init (GError** error);
+void data_imports_terminate_entry (void);
+void data_imports_terminate (void);
+void unit_terminate_entry (void);
+
+
+void data_imports_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ _tmp0_ = data_imports__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ data_imports__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ return;
+#line 40 "_DataImportsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ return;
+#line 50 "_DataImportsInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ data_imports_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ return;
+#line 60 "_DataImportsInternals.c"
+ }
+}
+
+
+void data_imports_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ _tmp1_ = data_imports__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_DataImportsInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ _tmp2_ = data_imports__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ data_imports__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ _tmp3_ = data_imports__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_DataImportsInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ return;
+#line 92 "_DataImportsInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ data_imports_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DataImportsInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_DataImportsInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_DataImportsInternals.vala b/src/.unitize/_DataImportsInternals.vala
new file mode 100644
index 0000000..002b6a7
--- /dev/null
+++ b/src/.unitize/_DataImportsInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace DataImports {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ DataImports.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ DataImports.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_DbInternals.c b/src/.unitize/_DbInternals.c
new file mode 100644
index 0000000..47e29a8
--- /dev/null
+++ b/src/.unitize/_DbInternals.c
@@ -0,0 +1,101 @@
+/* _DbInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _DbInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint db__unit_init_count;
+gint db__unit_init_count = 0;
+
+void db_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void db_init (GError** error);
+void db_terminate_entry (void);
+void db_terminate (void);
+void unit_terminate_entry (void);
+
+
+void db_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ _tmp0_ = db__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ db__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ return;
+#line 40 "_DbInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ return;
+#line 50 "_DbInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ db_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ return;
+#line 60 "_DbInternals.c"
+ }
+}
+
+
+void db_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ _tmp1_ = db__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_DbInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ _tmp2_ = db__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ db__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ _tmp3_ = db__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_DbInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ return;
+#line 92 "_DbInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ db_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DbInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_DbInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_DbInternals.vala b/src/.unitize/_DbInternals.vala
new file mode 100644
index 0000000..a80bd57
--- /dev/null
+++ b/src/.unitize/_DbInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Db {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ Db.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Db.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_DirectInternals.c b/src/.unitize/_DirectInternals.c
new file mode 100644
index 0000000..2095fcb
--- /dev/null
+++ b/src/.unitize/_DirectInternals.c
@@ -0,0 +1,171 @@
+/* _DirectInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _DirectInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint direct__unit_init_count;
+gint direct__unit_init_count = 0;
+
+void direct_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void db_init_entry (GError** error);
+void util_init_entry (GError** error);
+void photos_init_entry (GError** error);
+void slideshow_init_entry (GError** error);
+void core_init_entry (GError** error);
+void direct_init (GError** error);
+void direct_terminate_entry (void);
+void direct_terminate (void);
+void unit_terminate_entry (void);
+void db_terminate_entry (void);
+void util_terminate_entry (void);
+void photos_terminate_entry (void);
+void slideshow_terminate_entry (void);
+void core_terminate_entry (void);
+
+
+void direct_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ _tmp0_ = direct__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ direct__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 50 "_DirectInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 60 "_DirectInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ db_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 70 "_DirectInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ util_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 80 "_DirectInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ photos_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 90 "_DirectInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ slideshow_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 100 "_DirectInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ core_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 110 "_DirectInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ direct_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 120 "_DirectInternals.c"
+ }
+}
+
+
+void direct_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ _tmp1_ = direct__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ _tmp0_ = TRUE;
+#line 134 "_DirectInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ _tmp2_ = direct__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ direct__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ _tmp3_ = direct__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 146 "_DirectInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ return;
+#line 152 "_DirectInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ direct_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ db_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ util_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ photos_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ slideshow_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_DirectInternals.vala"
+ core_terminate_entry ();
+#line 168 "_DirectInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_DirectInternals.vala b/src/.unitize/_DirectInternals.vala
new file mode 100644
index 0000000..86dc65c
--- /dev/null
+++ b/src/.unitize/_DirectInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Direct {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Db.init_entry(); Util.init_entry(); Photos.init_entry(); Slideshow.init_entry(); Core.init_entry();
+
+ Direct.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Direct.terminate();
+
+ Unit.terminate_entry(); Db.terminate_entry(); Util.terminate_entry(); Photos.terminate_entry(); Slideshow.terminate_entry(); Core.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_Direct_unitize_entry.c b/src/.unitize/_Direct_unitize_entry.c
new file mode 100644
index 0000000..148e461
--- /dev/null
+++ b/src/.unitize/_Direct_unitize_entry.c
@@ -0,0 +1,46 @@
+/* _Direct_unitize_entry.c generated by valac 0.32.1, the Vala compiler
+ * generated from _Direct_unitize_entry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void direct_app_init (GError** error);
+void direct_init_entry (GError** error);
+void direct_app_terminate (void);
+void direct_terminate_entry (void);
+
+
+void direct_app_init (GError** error) {
+ GError * _inner_error_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Direct_unitize_entry.vala"
+ direct_init_entry (&_inner_error_);
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Direct_unitize_entry.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Direct_unitize_entry.vala"
+ g_propagate_error (error, _inner_error_);
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Direct_unitize_entry.vala"
+ return;
+#line 35 "_Direct_unitize_entry.c"
+ }
+}
+
+
+void direct_app_terminate (void) {
+#line 16 "/home/jens/Source/shotwell/src/.unitize/_Direct_unitize_entry.vala"
+ direct_terminate_entry ();
+#line 43 "_Direct_unitize_entry.c"
+}
+
+
+
diff --git a/src/unit/rc/unitize_entry.m4 b/src/.unitize/_Direct_unitize_entry.vala
index 31602b2..4879efb 100644
--- a/src/unit/rc/unitize_entry.m4
+++ b/src/.unitize/_Direct_unitize_entry.vala
@@ -6,14 +6,14 @@
* Auto-generated file. Do not modify!
*/
-namespace _APP_UNIT_ {
+namespace Direct {
public void app_init() throws Error {
- _APP_UNIT_.init_entry();
+ Direct.init_entry();
}
public void app_terminate() {
- _APP_UNIT_.terminate_entry();
+ Direct.terminate_entry();
}
}
diff --git a/src/.unitize/_EditingToolsInternals.c b/src/.unitize/_EditingToolsInternals.c
new file mode 100644
index 0000000..5f351af
--- /dev/null
+++ b/src/.unitize/_EditingToolsInternals.c
@@ -0,0 +1,101 @@
+/* _EditingToolsInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _EditingToolsInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint editing_tools__unit_init_count;
+gint editing_tools__unit_init_count = 0;
+
+void editing_tools_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void editing_tools_init (GError** error);
+void editing_tools_terminate_entry (void);
+void editing_tools_terminate (void);
+void unit_terminate_entry (void);
+
+
+void editing_tools_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ _tmp0_ = editing_tools__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ editing_tools__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ return;
+#line 40 "_EditingToolsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ return;
+#line 50 "_EditingToolsInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ editing_tools_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ return;
+#line 60 "_EditingToolsInternals.c"
+ }
+}
+
+
+void editing_tools_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ _tmp1_ = editing_tools__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_EditingToolsInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ _tmp2_ = editing_tools__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ editing_tools__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ _tmp3_ = editing_tools__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_EditingToolsInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ return;
+#line 92 "_EditingToolsInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ editing_tools_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_EditingToolsInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_EditingToolsInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_EditingToolsInternals.vala b/src/.unitize/_EditingToolsInternals.vala
new file mode 100644
index 0000000..7b913f6
--- /dev/null
+++ b/src/.unitize/_EditingToolsInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace EditingTools {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ EditingTools.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ EditingTools.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_EventsInternals.c b/src/.unitize/_EventsInternals.c
new file mode 100644
index 0000000..33088f7
--- /dev/null
+++ b/src/.unitize/_EventsInternals.c
@@ -0,0 +1,115 @@
+/* _EventsInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _EventsInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint events__unit_init_count;
+gint events__unit_init_count = 0;
+
+void events_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void sidebar_init_entry (GError** error);
+void events_init (GError** error);
+void events_terminate_entry (void);
+void events_terminate (void);
+void unit_terminate_entry (void);
+void sidebar_terminate_entry (void);
+
+
+void events_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ _tmp0_ = events__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ events__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ return;
+#line 42 "_EventsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ return;
+#line 52 "_EventsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ sidebar_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ return;
+#line 62 "_EventsInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ events_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ return;
+#line 72 "_EventsInternals.c"
+ }
+}
+
+
+void events_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ _tmp1_ = events__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ _tmp0_ = TRUE;
+#line 86 "_EventsInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ _tmp2_ = events__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ events__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ _tmp3_ = events__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 98 "_EventsInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ return;
+#line 104 "_EventsInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ events_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_EventsInternals.vala"
+ sidebar_terminate_entry ();
+#line 112 "_EventsInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_EventsInternals.vala b/src/.unitize/_EventsInternals.vala
new file mode 100644
index 0000000..5d4f419
--- /dev/null
+++ b/src/.unitize/_EventsInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Events {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Sidebar.init_entry();
+
+ Events.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Events.terminate();
+
+ Unit.terminate_entry(); Sidebar.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_FoldersInternals.c b/src/.unitize/_FoldersInternals.c
new file mode 100644
index 0000000..1a3988e
--- /dev/null
+++ b/src/.unitize/_FoldersInternals.c
@@ -0,0 +1,129 @@
+/* _FoldersInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _FoldersInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint folders__unit_init_count;
+gint folders__unit_init_count = 0;
+
+void folders_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void sidebar_init_entry (GError** error);
+void photos_init_entry (GError** error);
+void folders_init (GError** error);
+void folders_terminate_entry (void);
+void folders_terminate (void);
+void unit_terminate_entry (void);
+void sidebar_terminate_entry (void);
+void photos_terminate_entry (void);
+
+
+void folders_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ _tmp0_ = folders__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ folders__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ return;
+#line 44 "_FoldersInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ return;
+#line 54 "_FoldersInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ sidebar_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ return;
+#line 64 "_FoldersInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ photos_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ return;
+#line 74 "_FoldersInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ folders_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ return;
+#line 84 "_FoldersInternals.c"
+ }
+}
+
+
+void folders_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ _tmp1_ = folders__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ _tmp0_ = TRUE;
+#line 98 "_FoldersInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ _tmp2_ = folders__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ folders__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ _tmp3_ = folders__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 110 "_FoldersInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ return;
+#line 116 "_FoldersInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ folders_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ sidebar_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_FoldersInternals.vala"
+ photos_terminate_entry ();
+#line 126 "_FoldersInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_FoldersInternals.vala b/src/.unitize/_FoldersInternals.vala
new file mode 100644
index 0000000..49bad90
--- /dev/null
+++ b/src/.unitize/_FoldersInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Folders {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Sidebar.init_entry(); Photos.init_entry();
+
+ Folders.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Folders.terminate();
+
+ Unit.terminate_entry(); Sidebar.terminate_entry(); Photos.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_LibraryInternals.c b/src/.unitize/_LibraryInternals.c
new file mode 100644
index 0000000..6d70073
--- /dev/null
+++ b/src/.unitize/_LibraryInternals.c
@@ -0,0 +1,311 @@
+/* _LibraryInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _LibraryInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint library__unit_init_count;
+gint library__unit_init_count = 0;
+
+void library_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void util_init_entry (GError** error);
+void threads_init_entry (GError** error);
+void db_init_entry (GError** error);
+void plugins_init_entry (GError** error);
+void slideshow_init_entry (GError** error);
+void photos_init_entry (GError** error);
+void publishing_init_entry (GError** error);
+void core_init_entry (GError** error);
+void sidebar_init_entry (GError** error);
+void events_init_entry (GError** error);
+void tags_init_entry (GError** error);
+void camera_init_entry (GError** error);
+void searches_init_entry (GError** error);
+void data_imports_init_entry (GError** error);
+void folders_init_entry (GError** error);
+void library_init (GError** error);
+void library_terminate_entry (void);
+void library_terminate (void);
+void unit_terminate_entry (void);
+void util_terminate_entry (void);
+void threads_terminate_entry (void);
+void db_terminate_entry (void);
+void plugins_terminate_entry (void);
+void slideshow_terminate_entry (void);
+void photos_terminate_entry (void);
+void publishing_terminate_entry (void);
+void core_terminate_entry (void);
+void sidebar_terminate_entry (void);
+void events_terminate_entry (void);
+void tags_terminate_entry (void);
+void camera_terminate_entry (void);
+void searches_terminate_entry (void);
+void data_imports_terminate_entry (void);
+void folders_terminate_entry (void);
+
+
+void library_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ _tmp0_ = library__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ library__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 70 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 80 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ util_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 90 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ threads_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 100 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ db_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 110 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ plugins_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 120 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ slideshow_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 130 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ photos_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 140 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ publishing_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 150 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ core_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 160 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ sidebar_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 170 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ events_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 180 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ tags_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 190 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ camera_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 200 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ searches_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 210 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ data_imports_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 220 "_LibraryInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ folders_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 230 "_LibraryInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ library_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 240 "_LibraryInternals.c"
+ }
+}
+
+
+void library_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ _tmp1_ = library__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ _tmp0_ = TRUE;
+#line 254 "_LibraryInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ _tmp2_ = library__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ library__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ _tmp3_ = library__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 266 "_LibraryInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ return;
+#line 272 "_LibraryInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ library_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ util_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ threads_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ db_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ plugins_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ slideshow_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ photos_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ publishing_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ core_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ sidebar_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ events_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ tags_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ camera_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ searches_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ data_imports_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_LibraryInternals.vala"
+ folders_terminate_entry ();
+#line 308 "_LibraryInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_LibraryInternals.vala b/src/.unitize/_LibraryInternals.vala
new file mode 100644
index 0000000..1baa298
--- /dev/null
+++ b/src/.unitize/_LibraryInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Library {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Util.init_entry(); Threads.init_entry(); Db.init_entry(); Plugins.init_entry(); Slideshow.init_entry(); Photos.init_entry(); Publishing.init_entry(); Core.init_entry(); Sidebar.init_entry(); Events.init_entry(); Tags.init_entry(); Camera.init_entry(); Searches.init_entry(); DataImports.init_entry(); Folders.init_entry();
+
+ Library.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Library.terminate();
+
+ Unit.terminate_entry(); Util.terminate_entry(); Threads.terminate_entry(); Db.terminate_entry(); Plugins.terminate_entry(); Slideshow.terminate_entry(); Photos.terminate_entry(); Publishing.terminate_entry(); Core.terminate_entry(); Sidebar.terminate_entry(); Events.terminate_entry(); Tags.terminate_entry(); Camera.terminate_entry(); Searches.terminate_entry(); DataImports.terminate_entry(); Folders.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_Library_unitize_entry.c b/src/.unitize/_Library_unitize_entry.c
new file mode 100644
index 0000000..8e7246c
--- /dev/null
+++ b/src/.unitize/_Library_unitize_entry.c
@@ -0,0 +1,46 @@
+/* _Library_unitize_entry.c generated by valac 0.32.1, the Vala compiler
+ * generated from _Library_unitize_entry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void library_app_init (GError** error);
+void library_init_entry (GError** error);
+void library_app_terminate (void);
+void library_terminate_entry (void);
+
+
+void library_app_init (GError** error) {
+ GError * _inner_error_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Library_unitize_entry.vala"
+ library_init_entry (&_inner_error_);
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Library_unitize_entry.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Library_unitize_entry.vala"
+ g_propagate_error (error, _inner_error_);
+#line 12 "/home/jens/Source/shotwell/src/.unitize/_Library_unitize_entry.vala"
+ return;
+#line 35 "_Library_unitize_entry.c"
+ }
+}
+
+
+void library_app_terminate (void) {
+#line 16 "/home/jens/Source/shotwell/src/.unitize/_Library_unitize_entry.vala"
+ library_terminate_entry ();
+#line 43 "_Library_unitize_entry.c"
+}
+
+
+
diff --git a/src/.unitize/_Library_unitize_entry.vala b/src/.unitize/_Library_unitize_entry.vala
new file mode 100644
index 0000000..2de3647
--- /dev/null
+++ b/src/.unitize/_Library_unitize_entry.vala
@@ -0,0 +1,19 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Library {
+
+public void app_init() throws Error {
+ Library.init_entry();
+}
+
+public void app_terminate() {
+ Library.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_PhotosInternals.c b/src/.unitize/_PhotosInternals.c
new file mode 100644
index 0000000..3710e7b
--- /dev/null
+++ b/src/.unitize/_PhotosInternals.c
@@ -0,0 +1,101 @@
+/* _PhotosInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _PhotosInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint photos__unit_init_count;
+gint photos__unit_init_count = 0;
+
+void photos_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void photos_init (GError** error);
+void photos_terminate_entry (void);
+void photos_terminate (void);
+void unit_terminate_entry (void);
+
+
+void photos_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ _tmp0_ = photos__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ photos__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ return;
+#line 40 "_PhotosInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ return;
+#line 50 "_PhotosInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ photos_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ return;
+#line 60 "_PhotosInternals.c"
+ }
+}
+
+
+void photos_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ _tmp1_ = photos__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_PhotosInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ _tmp2_ = photos__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ photos__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ _tmp3_ = photos__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_PhotosInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ return;
+#line 92 "_PhotosInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ photos_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_PhotosInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_PhotosInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_PhotosInternals.vala b/src/.unitize/_PhotosInternals.vala
new file mode 100644
index 0000000..b5d77b2
--- /dev/null
+++ b/src/.unitize/_PhotosInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Photos {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ Photos.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Photos.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_PluginsInternals.c b/src/.unitize/_PluginsInternals.c
new file mode 100644
index 0000000..9a9ee42
--- /dev/null
+++ b/src/.unitize/_PluginsInternals.c
@@ -0,0 +1,115 @@
+/* _PluginsInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _PluginsInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint plugins__unit_init_count;
+gint plugins__unit_init_count = 0;
+
+void plugins_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void util_init_entry (GError** error);
+void plugins_init (GError** error);
+void plugins_terminate_entry (void);
+void plugins_terminate (void);
+void unit_terminate_entry (void);
+void util_terminate_entry (void);
+
+
+void plugins_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ _tmp0_ = plugins__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ plugins__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ return;
+#line 42 "_PluginsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ return;
+#line 52 "_PluginsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ util_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ return;
+#line 62 "_PluginsInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ plugins_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ return;
+#line 72 "_PluginsInternals.c"
+ }
+}
+
+
+void plugins_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ _tmp1_ = plugins__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ _tmp0_ = TRUE;
+#line 86 "_PluginsInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ _tmp2_ = plugins__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ plugins__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ _tmp3_ = plugins__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 98 "_PluginsInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ return;
+#line 104 "_PluginsInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ plugins_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_PluginsInternals.vala"
+ util_terminate_entry ();
+#line 112 "_PluginsInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_PluginsInternals.vala b/src/.unitize/_PluginsInternals.vala
new file mode 100644
index 0000000..97ffc2c
--- /dev/null
+++ b/src/.unitize/_PluginsInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Plugins {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Util.init_entry();
+
+ Plugins.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Plugins.terminate();
+
+ Unit.terminate_entry(); Util.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_PublishingInternals.c b/src/.unitize/_PublishingInternals.c
new file mode 100644
index 0000000..b1d0861
--- /dev/null
+++ b/src/.unitize/_PublishingInternals.c
@@ -0,0 +1,115 @@
+/* _PublishingInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _PublishingInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint publishing__unit_init_count;
+gint publishing__unit_init_count = 0;
+
+void publishing_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void plugins_init_entry (GError** error);
+void publishing_init (GError** error);
+void publishing_terminate_entry (void);
+void publishing_terminate (void);
+void unit_terminate_entry (void);
+void plugins_terminate_entry (void);
+
+
+void publishing_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ _tmp0_ = publishing__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ publishing__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ return;
+#line 42 "_PublishingInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ return;
+#line 52 "_PublishingInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ plugins_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ return;
+#line 62 "_PublishingInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ publishing_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ return;
+#line 72 "_PublishingInternals.c"
+ }
+}
+
+
+void publishing_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ _tmp1_ = publishing__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ _tmp0_ = TRUE;
+#line 86 "_PublishingInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ _tmp2_ = publishing__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ publishing__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ _tmp3_ = publishing__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 98 "_PublishingInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ return;
+#line 104 "_PublishingInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ publishing_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_PublishingInternals.vala"
+ plugins_terminate_entry ();
+#line 112 "_PublishingInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_PublishingInternals.vala b/src/.unitize/_PublishingInternals.vala
new file mode 100644
index 0000000..1b39d37
--- /dev/null
+++ b/src/.unitize/_PublishingInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Publishing {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Plugins.init_entry();
+
+ Publishing.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Publishing.terminate();
+
+ Unit.terminate_entry(); Plugins.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_SearchesInternals.c b/src/.unitize/_SearchesInternals.c
new file mode 100644
index 0000000..7b0f7e8
--- /dev/null
+++ b/src/.unitize/_SearchesInternals.c
@@ -0,0 +1,101 @@
+/* _SearchesInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _SearchesInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint searches__unit_init_count;
+gint searches__unit_init_count = 0;
+
+void searches_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void searches_init (GError** error);
+void searches_terminate_entry (void);
+void searches_terminate (void);
+void unit_terminate_entry (void);
+
+
+void searches_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ _tmp0_ = searches__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ searches__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ return;
+#line 40 "_SearchesInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ return;
+#line 50 "_SearchesInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ searches_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ return;
+#line 60 "_SearchesInternals.c"
+ }
+}
+
+
+void searches_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ _tmp1_ = searches__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_SearchesInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ _tmp2_ = searches__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ searches__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ _tmp3_ = searches__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_SearchesInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ return;
+#line 92 "_SearchesInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ searches_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_SearchesInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_SearchesInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_SearchesInternals.vala b/src/.unitize/_SearchesInternals.vala
new file mode 100644
index 0000000..effb551
--- /dev/null
+++ b/src/.unitize/_SearchesInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Searches {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ Searches.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Searches.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_SidebarInternals.c b/src/.unitize/_SidebarInternals.c
new file mode 100644
index 0000000..f312282
--- /dev/null
+++ b/src/.unitize/_SidebarInternals.c
@@ -0,0 +1,101 @@
+/* _SidebarInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _SidebarInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint sidebar__unit_init_count;
+gint sidebar__unit_init_count = 0;
+
+void sidebar_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void sidebar_init (GError** error);
+void sidebar_terminate_entry (void);
+void sidebar_terminate (void);
+void unit_terminate_entry (void);
+
+
+void sidebar_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ _tmp0_ = sidebar__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ sidebar__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ return;
+#line 40 "_SidebarInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ return;
+#line 50 "_SidebarInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ sidebar_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ return;
+#line 60 "_SidebarInternals.c"
+ }
+}
+
+
+void sidebar_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ _tmp1_ = sidebar__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_SidebarInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ _tmp2_ = sidebar__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ sidebar__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ _tmp3_ = sidebar__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_SidebarInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ return;
+#line 92 "_SidebarInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ sidebar_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_SidebarInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_SidebarInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_SidebarInternals.vala b/src/.unitize/_SidebarInternals.vala
new file mode 100644
index 0000000..0940c43
--- /dev/null
+++ b/src/.unitize/_SidebarInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Sidebar {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ Sidebar.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Sidebar.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_SlideshowInternals.c b/src/.unitize/_SlideshowInternals.c
new file mode 100644
index 0000000..31b8124
--- /dev/null
+++ b/src/.unitize/_SlideshowInternals.c
@@ -0,0 +1,115 @@
+/* _SlideshowInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _SlideshowInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint slideshow__unit_init_count;
+gint slideshow__unit_init_count = 0;
+
+void slideshow_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void plugins_init_entry (GError** error);
+void slideshow_init (GError** error);
+void slideshow_terminate_entry (void);
+void slideshow_terminate (void);
+void unit_terminate_entry (void);
+void plugins_terminate_entry (void);
+
+
+void slideshow_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ _tmp0_ = slideshow__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ slideshow__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ return;
+#line 42 "_SlideshowInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ return;
+#line 52 "_SlideshowInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ plugins_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ return;
+#line 62 "_SlideshowInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ slideshow_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ return;
+#line 72 "_SlideshowInternals.c"
+ }
+}
+
+
+void slideshow_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ _tmp1_ = slideshow__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ _tmp0_ = TRUE;
+#line 86 "_SlideshowInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ _tmp2_ = slideshow__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ slideshow__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ _tmp3_ = slideshow__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 98 "_SlideshowInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ return;
+#line 104 "_SlideshowInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ slideshow_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_SlideshowInternals.vala"
+ plugins_terminate_entry ();
+#line 112 "_SlideshowInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_SlideshowInternals.vala b/src/.unitize/_SlideshowInternals.vala
new file mode 100644
index 0000000..d6de981
--- /dev/null
+++ b/src/.unitize/_SlideshowInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Slideshow {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Plugins.init_entry();
+
+ Slideshow.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Slideshow.terminate();
+
+ Unit.terminate_entry(); Plugins.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_TagsInternals.c b/src/.unitize/_TagsInternals.c
new file mode 100644
index 0000000..599fb26
--- /dev/null
+++ b/src/.unitize/_TagsInternals.c
@@ -0,0 +1,115 @@
+/* _TagsInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _TagsInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint tags__unit_init_count;
+gint tags__unit_init_count = 0;
+
+void tags_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void sidebar_init_entry (GError** error);
+void tags_init (GError** error);
+void tags_terminate_entry (void);
+void tags_terminate (void);
+void unit_terminate_entry (void);
+void sidebar_terminate_entry (void);
+
+
+void tags_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ _tmp0_ = tags__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ tags__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ return;
+#line 42 "_TagsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ return;
+#line 52 "_TagsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ sidebar_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ return;
+#line 62 "_TagsInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ tags_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ return;
+#line 72 "_TagsInternals.c"
+ }
+}
+
+
+void tags_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ _tmp1_ = tags__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ _tmp0_ = TRUE;
+#line 86 "_TagsInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ _tmp2_ = tags__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ tags__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ _tmp3_ = tags__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 98 "_TagsInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ return;
+#line 104 "_TagsInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ tags_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ unit_terminate_entry ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_TagsInternals.vala"
+ sidebar_terminate_entry ();
+#line 112 "_TagsInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_TagsInternals.vala b/src/.unitize/_TagsInternals.vala
new file mode 100644
index 0000000..84df7ab
--- /dev/null
+++ b/src/.unitize/_TagsInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Tags {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry(); Sidebar.init_entry();
+
+ Tags.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Tags.terminate();
+
+ Unit.terminate_entry(); Sidebar.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_ThreadsInternals.c b/src/.unitize/_ThreadsInternals.c
new file mode 100644
index 0000000..69712a7
--- /dev/null
+++ b/src/.unitize/_ThreadsInternals.c
@@ -0,0 +1,101 @@
+/* _ThreadsInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _ThreadsInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint threads__unit_init_count;
+gint threads__unit_init_count = 0;
+
+void threads_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void threads_init (GError** error);
+void threads_terminate_entry (void);
+void threads_terminate (void);
+void unit_terminate_entry (void);
+
+
+void threads_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ _tmp0_ = threads__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ threads__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ return;
+#line 40 "_ThreadsInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ return;
+#line 50 "_ThreadsInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ threads_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ return;
+#line 60 "_ThreadsInternals.c"
+ }
+}
+
+
+void threads_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ _tmp1_ = threads__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_ThreadsInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ _tmp2_ = threads__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ threads__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ _tmp3_ = threads__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_ThreadsInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ return;
+#line 92 "_ThreadsInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ threads_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_ThreadsInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_ThreadsInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_ThreadsInternals.vala b/src/.unitize/_ThreadsInternals.vala
new file mode 100644
index 0000000..fddac3d
--- /dev/null
+++ b/src/.unitize/_ThreadsInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Threads {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ Threads.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Threads.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/.unitize/_UnitInternals.c b/src/.unitize/_UnitInternals.c
new file mode 100644
index 0000000..102107b
--- /dev/null
+++ b/src/.unitize/_UnitInternals.c
@@ -0,0 +1,87 @@
+/* _UnitInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _UnitInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint unit__unit_init_count;
+gint unit__unit_init_count = 0;
+
+void unit_init_entry (GError** error);
+void unit_init (GError** error);
+void unit_terminate_entry (void);
+void unit_terminate (void);
+
+
+void unit_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ _tmp0_ = unit__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ unit__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ return;
+#line 38 "_UnitInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ unit_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ return;
+#line 48 "_UnitInternals.c"
+ }
+}
+
+
+void unit_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ _tmp1_ = unit__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ _tmp0_ = TRUE;
+#line 62 "_UnitInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ _tmp2_ = unit__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ unit__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ _tmp3_ = unit__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 74 "_UnitInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ return;
+#line 80 "_UnitInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_UnitInternals.vala"
+ unit_terminate ();
+#line 84 "_UnitInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_UnitInternals.vala b/src/.unitize/_UnitInternals.vala
new file mode 100644
index 0000000..01cd908
--- /dev/null
+++ b/src/.unitize/_UnitInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Unit {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+
+
+ Unit.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Unit.terminate();
+
+
+}
+
+}
diff --git a/src/.unitize/_UtilInternals.c b/src/.unitize/_UtilInternals.c
new file mode 100644
index 0000000..ddfb022
--- /dev/null
+++ b/src/.unitize/_UtilInternals.c
@@ -0,0 +1,101 @@
+/* _UtilInternals.c generated by valac 0.32.1, the Vala compiler
+ * generated from _UtilInternals.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+extern gint util__unit_init_count;
+gint util__unit_init_count = 0;
+
+void util_init_entry (GError** error);
+void unit_init_entry (GError** error);
+void util_init (GError** error);
+void util_terminate_entry (void);
+void util_terminate (void);
+void unit_terminate_entry (void);
+
+
+void util_init_entry (GError** error) {
+ gint _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ _tmp0_ = util__unit_init_count;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ util__unit_init_count = _tmp0_ + 1;
+#line 14 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ if (_tmp0_ != 0) {
+#line 15 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ return;
+#line 40 "_UtilInternals.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ unit_init_entry (&_inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 17 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ return;
+#line 50 "_UtilInternals.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ util_init (&_inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ g_propagate_error (error, _inner_error_);
+#line 19 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ return;
+#line 60 "_UtilInternals.c"
+ }
+}
+
+
+void util_terminate_entry (void) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ _tmp1_ = util__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ if (_tmp1_ == 0) {
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ _tmp0_ = TRUE;
+#line 74 "_UtilInternals.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ _tmp2_ = util__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ util__unit_init_count = _tmp2_ - 1;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ _tmp3_ = util__unit_init_count;
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 86 "_UtilInternals.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ if (_tmp0_) {
+#line 24 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ return;
+#line 92 "_UtilInternals.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ util_terminate ();
+#line 28 "/home/jens/Source/shotwell/src/.unitize/_UtilInternals.vala"
+ unit_terminate_entry ();
+#line 98 "_UtilInternals.c"
+}
+
+
+
diff --git a/src/.unitize/_UtilInternals.vala b/src/.unitize/_UtilInternals.vala
new file mode 100644
index 0000000..25b1ccb
--- /dev/null
+++ b/src/.unitize/_UtilInternals.vala
@@ -0,0 +1,31 @@
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ *
+ * Auto-generated file. Do not modify!
+ */
+
+namespace Util {
+
+private int _unit_init_count = 0;
+
+public void init_entry() throws Error {
+ if (_unit_init_count++ != 0)
+ return;
+
+ Unit.init_entry();
+
+ Util.init();
+}
+
+public void terminate_entry() {
+ if (_unit_init_count == 0 || --_unit_init_count != 0)
+ return;
+
+ Util.terminate();
+
+ Unit.terminate_entry();
+}
+
+}
diff --git a/src/AppDirs.c b/src/AppDirs.c
new file mode 100644
index 0000000..056b390
--- /dev/null
+++ b/src/AppDirs.c
@@ -0,0 +1,2710 @@
+/* AppDirs.c generated by valac 0.32.1, the Vala compiler
+ * generated from AppDirs.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <glib/gi18n-lib.h>
+#include <glib/gstdio.h>
+#include <time.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_APP_DIRS (app_dirs_get_type ())
+#define APP_DIRS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_DIRS, AppDirs))
+#define APP_DIRS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_DIRS, AppDirsClass))
+#define IS_APP_DIRS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_DIRS))
+#define IS_APP_DIRS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_DIRS))
+#define APP_DIRS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_DIRS, AppDirsClass))
+
+typedef struct _AppDirs AppDirs;
+typedef struct _AppDirsClass AppDirsClass;
+typedef struct _AppDirsPrivate AppDirsPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+typedef struct _ParamSpecAppDirs ParamSpecAppDirs;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _AppDirs {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AppDirsPrivate * priv;
+};
+
+struct _AppDirsClass {
+ GTypeClass parent_class;
+ void (*finalize) (AppDirs *self);
+};
+
+struct _ParamSpecAppDirs {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer app_dirs_parent_class = NULL;
+static GFile* app_dirs_exec_dir;
+static GFile* app_dirs_exec_dir = NULL;
+static GFile* app_dirs_data_dir;
+static GFile* app_dirs_data_dir = NULL;
+static GFile* app_dirs_tmp_dir;
+static GFile* app_dirs_tmp_dir = NULL;
+static GFile* app_dirs_libexec_dir;
+static GFile* app_dirs_libexec_dir = NULL;
+
+gpointer app_dirs_ref (gpointer instance);
+void app_dirs_unref (gpointer instance);
+GParamSpec* param_spec_app_dirs (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_app_dirs (GValue* value, gpointer v_object);
+void value_take_app_dirs (GValue* value, gpointer v_object);
+gpointer value_get_app_dirs (const GValue* value);
+GType app_dirs_get_type (void) G_GNUC_CONST;
+enum {
+ APP_DIRS_DUMMY_PROPERTY
+};
+#define APP_DIRS_DEFAULT_DATA_DIR "shotwell"
+void app_dirs_init (const gchar* arg0);
+void app_dirs_terminate (void);
+GFile* app_dirs_get_home_dir (void);
+GFile* app_dirs_get_cache_dir (void);
+void app_dirs_try_migrate_data (void);
+GFile* app_dirs_get_user_plugins_dir (void);
+GFile* app_dirs_get_data_dir (void);
+void app_window_panic (const gchar* msg);
+void app_dirs_set_data_dir (const gchar* user_data_dir);
+gboolean is_string_empty (const gchar* s);
+gchar* strip_pretty_path (const gchar* path);
+void app_dirs_verify_data_dir (void);
+void app_dirs_verify_cache_dir (void);
+GFile* app_dirs_get_libexec_dir (void);
+GFile* app_dirs_get_install_dir (void);
+GFile* app_dirs_get_exec_dir (void);
+#define RESOURCES_LIBEXECDIR _LIBEXECDIR
+GFile* get_sys_install_dir (GFile* exec_dir);
+GFile* app_dirs_get_import_dir (void);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gchar* configuration_facade_get_import_dir (ConfigurationFacade* self);
+GFile* app_dirs_get_baked_import_dir (time_t tm);
+gchar* configuration_facade_get_directory_pattern (ConfigurationFacade* self);
+gchar* configuration_facade_get_directory_pattern_custom (ConfigurationFacade* self);
+gboolean app_dirs_is_in_import_dir (GFile* file);
+void app_dirs_set_import_dir (const gchar* path);
+void configuration_facade_set_import_dir (ConfigurationFacade* self, const gchar* import_dir);
+GFile* app_dirs_get_temp_dir (void);
+GFile* app_dirs_get_data_subdir (const gchar* name, const gchar* subname);
+void app_dirs_ensure_writable (GFile* dir);
+GFile* app_dirs_get_cache_subdir (const gchar* name, const gchar* subname);
+GFile* app_dirs_get_resources_dir (void);
+GFile* app_dirs_get_lib_dir (void);
+#define RESOURCES_LIB _LIB
+GFile* app_dirs_get_system_plugins_dir (void);
+GFile* app_dirs_get_log_file (void);
+GFile* app_dirs_get_thumbnailer_bin (void);
+GFile* app_dirs_get_settings_migrator_bin (void);
+AppDirs* app_dirs_new (void);
+AppDirs* app_dirs_construct (GType object_type);
+static void app_dirs_finalize (AppDirs* obj);
+
+
+void app_dirs_init (const gchar* arg0) {
+ GFile* exec_file = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (arg0 != NULL);
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = arg0;
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = g_find_program_in_path (_tmp0_);
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = realpath (_tmp2_, NULL);
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _tmp3_;
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_new_for_path (_tmp4_);
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = _tmp5_;
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp4_);
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp2_);
+#line 17 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ exec_file = _tmp6_;
+#line 18 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = g_file_get_parent (exec_file);
+#line 18 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (app_dirs_exec_dir);
+#line 18 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_exec_dir = _tmp7_;
+#line 16 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (exec_file);
+#line 186 "AppDirs.c"
+}
+
+
+void app_dirs_terminate (void) {
+}
+
+
+GFile* app_dirs_get_home_dir (void) {
+ GFile* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = g_get_home_dir ();
+#line 27 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = g_file_new_for_path (_tmp0_);
+#line 27 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp1_;
+#line 27 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 206 "AppDirs.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 33 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 213 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_cache_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = app_dirs_data_dir;
+#line 31 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp1_ == NULL) {
+#line 225 "AppDirs.c"
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_get_user_cache_dir ();
+#line 32 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = g_file_new_for_path (_tmp2_);
+#line 32 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _tmp3_;
+#line 32 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_get_child (_tmp4_, APP_DIRS_DEFAULT_DATA_DIR);
+#line 32 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp0_);
+#line 32 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = _tmp5_;
+#line 32 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp4_);
+#line 244 "AppDirs.c"
+ } else {
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = app_dirs_data_dir;
+#line 33 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 33 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp0_);
+#line 33 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = _tmp7_;
+#line 256 "AppDirs.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp0_;
+#line 31 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 262 "AppDirs.c"
+}
+
+
+void app_dirs_try_migrate_data (void) {
+ GFile* user_plugin_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* old_dir = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GFile* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GFile* new_dir = NULL;
+ GFile* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ GFile* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ GFile* cache_dir = NULL;
+ GFile* _tmp30_ = NULL;
+ mode_t mask = {0};
+ mode_t _tmp31_ = {0};
+ GFile* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ GFile* _tmp43_ = NULL;
+ GFile* _tmp44_ = NULL;
+ GFile* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ GFile* _tmp48_ = NULL;
+ GFile* _tmp49_ = NULL;
+ GFile* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ GFile* _tmp53_ = NULL;
+ GFile* _tmp54_ = NULL;
+ GFile* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ gboolean _tmp57_ = FALSE;
+ GFile* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ GFile* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ GFile* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ mode_t _tmp80_ = {0};
+ GError * _inner_error_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_user_plugins_dir ();
+#line 38 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ user_plugin_dir = _tmp0_;
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = app_dirs_get_home_dir ();
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = _tmp1_;
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = g_file_get_child (_tmp2_, ".gnome2");
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _tmp3_;
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_get_child (_tmp4_, "shotwell");
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = _tmp5_;
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = g_file_get_child (_tmp6_, "plugins");
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = _tmp7_;
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp6_);
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp4_);
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp2_);
+#line 39 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ old_dir = _tmp8_;
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = old_dir;
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = g_file_query_exists (_tmp10_, NULL);
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp11_) {
+#line 355 "AppDirs.c"
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = user_plugin_dir;
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = g_file_get_parent (_tmp12_);
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = _tmp13_;
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = g_file_query_exists (_tmp14_, NULL);
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = !_tmp15_;
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp14_);
+#line 372 "AppDirs.c"
+ } else {
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = FALSE;
+#line 376 "AppDirs.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp9_) {
+#line 380 "AppDirs.c"
+ {
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp16_ = user_plugin_dir;
+#line 44 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp17_ = g_file_get_parent (_tmp16_);
+#line 44 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp18_ = _tmp17_;
+#line 44 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp18_, NULL, &_inner_error_);
+#line 44 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp18_);
+#line 44 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 397 "AppDirs.c"
+ goto __catch432_g_error;
+ }
+ }
+ goto __finally432;
+ __catch432_g_error:
+ {
+ GError* err = NULL;
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 411 "AppDirs.c"
+ }
+ __finally432:
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (old_dir);
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (user_plugin_dir);
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 43 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 426 "AppDirs.c"
+ }
+ }
+ {
+ GFile* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp19_ = old_dir;
+#line 49 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp20_ = user_plugin_dir;
+#line 49 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_move (_tmp19_, _tmp20_, G_FILE_COPY_NONE, NULL, NULL, NULL, &_inner_error_);
+#line 49 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 440 "AppDirs.c"
+ goto __catch433_g_error;
+ }
+ }
+ goto __finally433;
+ __catch433_g_error:
+ {
+ GError* err = NULL;
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 454 "AppDirs.c"
+ }
+ __finally433:
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (old_dir);
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (user_plugin_dir);
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 48 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 469 "AppDirs.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp21_ = app_dirs_get_data_dir ();
+#line 53 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ new_dir = _tmp21_;
+#line 54 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp22_ = app_dirs_get_home_dir ();
+#line 54 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp23_ = _tmp22_;
+#line 54 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp24_ = g_file_get_child (_tmp23_, ".shotwell");
+#line 54 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (old_dir);
+#line 54 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ old_dir = _tmp24_;
+#line 54 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp23_);
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp26_ = new_dir;
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp27_ = g_file_query_exists (_tmp26_, NULL);
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp27_) {
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp25_ = TRUE;
+#line 495 "AppDirs.c"
+ } else {
+ GFile* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp28_ = old_dir;
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp29_ = g_file_query_exists (_tmp28_, NULL);
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp25_ = !_tmp29_;
+#line 505 "AppDirs.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp25_) {
+#line 56 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (new_dir);
+#line 56 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (old_dir);
+#line 56 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (user_plugin_dir);
+#line 56 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 517 "AppDirs.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp30_ = app_dirs_get_cache_dir ();
+#line 58 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ cache_dir = _tmp30_;
+#line 59 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp31_ = umask ((mode_t) 0077);
+#line 59 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ mask = _tmp31_;
+#line 60 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp32_ = cache_dir;
+#line 60 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp33_ = g_file_query_exists (_tmp32_, NULL);
+#line 60 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp33_) {
+#line 533 "AppDirs.c"
+ {
+ GFile* _tmp34_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp34_ = cache_dir;
+#line 62 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp34_, NULL, &_inner_error_);
+#line 62 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 542 "AppDirs.c"
+ goto __catch434_g_error;
+ }
+ }
+ goto __finally434;
+ __catch434_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp35_ = NULL;
+ GFile* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ GError* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp35_ = _ ("Unable to create cache directory %s: %s");
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp36_ = cache_dir;
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp37_ = g_file_get_path (_tmp36_);
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp38_ = _tmp37_;
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp39_ = err;
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp40_ = _tmp39_->message;
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp41_ = g_strdup_printf (_tmp35_, _tmp38_, _tmp40_);
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp42_ = _tmp41_;
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp42_);
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp42_);
+#line 64 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp38_);
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 586 "AppDirs.c"
+ }
+ __finally434:
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (cache_dir);
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (new_dir);
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (old_dir);
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (user_plugin_dir);
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 61 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 605 "AppDirs.c"
+ }
+ }
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp43_ = old_dir;
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp44_ = g_file_get_child (_tmp43_, "thumbs");
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp45_ = _tmp44_;
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp46_ = g_file_get_path (_tmp45_);
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp47_ = _tmp46_;
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp48_ = cache_dir;
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp49_ = g_file_get_child (_tmp48_, "thumbs");
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp50_ = _tmp49_;
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp51_ = g_file_get_path (_tmp50_);
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp52_ = _tmp51_;
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_rename (_tmp47_, _tmp52_);
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp52_);
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp50_);
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp47_);
+#line 68 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp45_);
+#line 70 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp53_ = new_dir;
+#line 70 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp54_ = g_file_get_parent (_tmp53_);
+#line 70 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp55_ = _tmp54_;
+#line 70 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp56_ = g_file_query_exists (_tmp55_, NULL);
+#line 70 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp57_ = !_tmp56_;
+#line 70 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp55_);
+#line 70 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp57_) {
+#line 652 "AppDirs.c"
+ {
+ GFile* _tmp58_ = NULL;
+ GFile* _tmp59_ = NULL;
+ GFile* _tmp60_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp58_ = new_dir;
+#line 72 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp59_ = g_file_get_parent (_tmp58_);
+#line 72 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp60_ = _tmp59_;
+#line 72 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp60_, NULL, &_inner_error_);
+#line 72 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp60_);
+#line 72 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 669 "AppDirs.c"
+ goto __catch435_g_error;
+ }
+ }
+ goto __finally435;
+ __catch435_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp61_ = NULL;
+ GFile* _tmp62_ = NULL;
+ GFile* _tmp63_ = NULL;
+ GFile* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ GError* _tmp67_ = NULL;
+ const gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp61_ = _ ("Unable to create data directory %s: %s");
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp62_ = new_dir;
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp63_ = g_file_get_parent (_tmp62_);
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp64_ = _tmp63_;
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp65_ = g_file_get_path (_tmp64_);
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp66_ = _tmp65_;
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp67_ = err;
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp68_ = _tmp67_->message;
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp69_ = g_strdup_printf (_tmp61_, _tmp66_, _tmp68_);
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp70_ = _tmp69_;
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp70_);
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp70_);
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp66_);
+#line 74 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp64_);
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 721 "AppDirs.c"
+ }
+ __finally435:
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (cache_dir);
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (new_dir);
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (old_dir);
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (user_plugin_dir);
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 71 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 740 "AppDirs.c"
+ }
+ }
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp71_ = old_dir;
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp72_ = g_file_get_path (_tmp71_);
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp73_ = _tmp72_;
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp74_ = new_dir;
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp75_ = g_file_get_path (_tmp74_);
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp76_ = _tmp75_;
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_rename (_tmp73_, _tmp76_);
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp76_);
+#line 78 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp73_);
+#line 79 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp77_ = new_dir;
+#line 79 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp78_ = g_file_get_path (_tmp77_);
+#line 79 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp79_ = _tmp78_;
+#line 79 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_chmod (_tmp79_, 0700);
+#line 79 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp79_);
+#line 81 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp80_ = mask;
+#line 81 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ umask (_tmp80_);
+#line 36 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (cache_dir);
+#line 36 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (new_dir);
+#line 36 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (old_dir);
+#line 36 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (user_plugin_dir);
+#line 783 "AppDirs.c"
+}
+
+
+void app_dirs_set_data_dir (const gchar* user_data_dir) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (user_data_dir != NULL);
+#line 85 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = user_data_dir;
+#line 85 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 85 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _vala_return_if_fail (!_tmp1_, "!is_string_empty(user_data_dir)");
+#line 86 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = app_dirs_data_dir;
+#line 86 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _vala_assert (_tmp2_ == NULL, "data_dir == null");
+#line 89 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = user_data_dir;
+#line 89 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = strip_pretty_path (_tmp3_);
+#line 89 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ path = _tmp4_;
+#line 90 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = path;
+#line 90 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = g_path_is_absolute (_tmp5_);
+#line 90 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp6_) {
+#line 823 "AppDirs.c"
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = app_dirs_get_home_dir ();
+#line 91 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = _tmp7_;
+#line 91 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = path;
+#line 91 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = g_file_get_child (_tmp8_, _tmp9_);
+#line 91 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (app_dirs_data_dir);
+#line 91 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_data_dir = _tmp10_;
+#line 91 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp8_);
+#line 842 "AppDirs.c"
+ } else {
+ const gchar* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = path;
+#line 93 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = g_file_new_for_path (_tmp11_);
+#line 93 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (app_dirs_data_dir);
+#line 93 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_data_dir = _tmp12_;
+#line 854 "AppDirs.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = app_dirs_data_dir;
+#line 95 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 95 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = _tmp14_;
+#line 95 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_message ("AppDirs.vala:95: Setting private data directory to %s", _tmp15_);
+#line 95 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp15_);
+#line 85 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (path);
+#line 868 "AppDirs.c"
+}
+
+
+void app_dirs_verify_data_dir (void) {
+ GFile* data_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_data_dir ();
+#line 99 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ data_dir = _tmp0_;
+#line 880 "AppDirs.c"
+ {
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 101 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = data_dir;
+#line 101 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_file_query_exists (_tmp1_, NULL);
+#line 101 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp2_) {
+#line 890 "AppDirs.c"
+ GFile* _tmp3_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = data_dir;
+#line 102 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp3_, NULL, &_inner_error_);
+#line 102 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 898 "AppDirs.c"
+ goto __catch436_g_error;
+ }
+ }
+ }
+ goto __finally436;
+ __catch436_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _ ("Unable to create data directory %s: %s");
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = data_dir;
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = _tmp6_;
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = err;
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = _tmp8_->message;
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = g_strdup_printf (_tmp4_, _tmp7_, _tmp9_);
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = _tmp10_;
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp11_);
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp11_);
+#line 104 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp7_);
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 943 "AppDirs.c"
+ }
+ __finally436:
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (data_dir);
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 100 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 956 "AppDirs.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (data_dir);
+#line 960 "AppDirs.c"
+}
+
+
+void app_dirs_verify_cache_dir (void) {
+ GFile* cache_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_cache_dir ();
+#line 110 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ cache_dir = _tmp0_;
+#line 972 "AppDirs.c"
+ {
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 112 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = cache_dir;
+#line 112 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_file_query_exists (_tmp1_, NULL);
+#line 112 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp2_) {
+#line 982 "AppDirs.c"
+ GFile* _tmp3_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = cache_dir;
+#line 113 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp3_, NULL, &_inner_error_);
+#line 113 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 990 "AppDirs.c"
+ goto __catch437_g_error;
+ }
+ }
+ }
+ goto __finally437;
+ __catch437_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _ ("Unable to create cache directory %s: %s");
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = cache_dir;
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = _tmp6_;
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = err;
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = _tmp8_->message;
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = g_strdup_printf (_tmp4_, _tmp7_, _tmp9_);
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = _tmp10_;
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp11_);
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp11_);
+#line 115 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp7_);
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 1035 "AppDirs.c"
+ }
+ __finally437:
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (cache_dir);
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 111 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 1048 "AppDirs.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (cache_dir);
+#line 1052 "AppDirs.c"
+}
+
+
+/**
+ * @brief Returns the build directory if not installed yet, or a path
+ * to where any helper applets we need will live if installed.
+ */
+GFile* app_dirs_get_libexec_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_libexec_dir;
+#line 125 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp0_ == NULL) {
+#line 1069 "AppDirs.c"
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 126 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = app_dirs_get_install_dir ();
+#line 126 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = _tmp1_;
+#line 126 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = _tmp2_ == NULL;
+#line 126 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp2_);
+#line 126 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp3_) {
+#line 1083 "AppDirs.c"
+ GFile* _tmp4_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = app_dirs_get_exec_dir ();
+#line 128 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (app_dirs_libexec_dir);
+#line 128 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_libexec_dir = _tmp4_;
+#line 1091 "AppDirs.c"
+ } else {
+ GFile* _tmp5_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_new_for_path (RESOURCES_LIBEXECDIR);
+#line 130 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (app_dirs_libexec_dir);
+#line 130 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_libexec_dir = _tmp5_;
+#line 1100 "AppDirs.c"
+ }
+ }
+#line 134 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = app_dirs_libexec_dir;
+#line 134 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 134 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp7_;
+#line 134 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1111 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_install_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_exec_dir;
+#line 139 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = get_sys_install_dir (_tmp0_);
+#line 139 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp1_;
+#line 139 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1127 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_data_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = app_dirs_data_dir;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp1_ == NULL) {
+#line 1139 "AppDirs.c"
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_get_user_data_dir ();
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = g_file_new_for_path (_tmp2_);
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _tmp3_;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_get_child (_tmp4_, APP_DIRS_DEFAULT_DATA_DIR);
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp0_);
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = _tmp5_;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1158 "AppDirs.c"
+ } else {
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = app_dirs_data_dir;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp0_);
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = _tmp7_;
+#line 1170 "AppDirs.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp0_;
+#line 143 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1176 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_import_dir (void) {
+ GFile* result = NULL;
+ gchar* path = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ GFile* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 149 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 149 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = configuration_facade_get_import_dir (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 149 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = _tmp2_;
+#line 149 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 149 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ path = _tmp3_;
+#line 150 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = path;
+#line 150 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = is_string_empty (_tmp4_);
+#line 150 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp5_) {
+#line 1216 "AppDirs.c"
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ const gchar* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = path;
+#line 152 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = strip_pretty_path (_tmp6_);
+#line 152 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (path);
+#line 152 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ path = _tmp7_;
+#line 155 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = path;
+#line 155 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = g_path_is_absolute (_tmp8_);
+#line 155 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp9_) {
+#line 1237 "AppDirs.c"
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = app_dirs_get_home_dir ();
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = _tmp10_;
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = path;
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = g_file_get_child (_tmp11_, _tmp12_);
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = _tmp13_;
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp11_);
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp14_;
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (path);
+#line 156 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1261 "AppDirs.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = path;
+#line 159 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp16_ = g_file_new_for_path (_tmp15_);
+#line 159 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp16_;
+#line 159 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (path);
+#line 159 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1273 "AppDirs.c"
+ }
+#line 163 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp17_ = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES);
+#line 163 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 163 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (path);
+#line 163 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ path = _tmp18_;
+#line 164 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp19_ = path;
+#line 164 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp20_ = is_string_empty (_tmp19_);
+#line 164 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp20_) {
+#line 1289 "AppDirs.c"
+ const gchar* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp21_ = path;
+#line 165 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp22_ = g_file_new_for_path (_tmp21_);
+#line 165 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp22_;
+#line 165 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (path);
+#line 165 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1302 "AppDirs.c"
+ }
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp23_ = app_dirs_get_home_dir ();
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp24_ = _tmp23_;
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp25_ = _ ("Pictures");
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp26_ = g_file_get_child (_tmp24_, _tmp25_);
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp27_ = _tmp26_;
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp24_);
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp27_;
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (path);
+#line 168 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1322 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_baked_import_dir (time_t tm) {
+ GFile* result = NULL;
+ gchar* pattern = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GDateTime* date = NULL;
+ time_t _tmp12_ = 0;
+ GDateTime* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 173 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 173 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = configuration_facade_get_directory_pattern (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 173 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = _tmp2_;
+#line 173 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 173 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ pattern = _tmp3_;
+#line 174 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = pattern;
+#line 174 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = is_string_empty (_tmp4_);
+#line 174 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp5_) {
+#line 1371 "AppDirs.c"
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 175 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = _tmp6_;
+#line 175 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = configuration_facade_get_directory_pattern_custom (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 175 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (pattern);
+#line 175 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ pattern = _tmp8_;
+#line 175 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1387 "AppDirs.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = pattern;
+#line 176 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = is_string_empty (_tmp9_);
+#line 176 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp10_) {
+#line 1395 "AppDirs.c"
+ gchar* _tmp11_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = g_strdup ("%Y" G_DIR_SEPARATOR_S "%m" G_DIR_SEPARATOR_S "%d");
+#line 177 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (pattern);
+#line 177 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ pattern = _tmp11_;
+#line 1403 "AppDirs.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = tm;
+#line 179 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = g_date_time_new_from_unix_local ((gint64) _tmp12_);
+#line 179 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ date = _tmp13_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = app_dirs_get_import_dir ();
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = _tmp14_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp16_ = g_file_get_path (_tmp15_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp17_ = _tmp16_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp18_ = g_strconcat (_tmp17_, G_DIR_SEPARATOR_S, NULL);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp19_ = _tmp18_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp20_ = pattern;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp21_ = g_date_time_format (date, _tmp20_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp22_ = _tmp21_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp23_ = g_strconcat (_tmp19_, _tmp22_, NULL);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp24_ = _tmp23_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp25_ = g_file_new_for_path (_tmp24_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp26_ = _tmp25_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp24_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp22_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp19_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp17_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp15_);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp26_;
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_date_time_unref0 (date);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (pattern);
+#line 180 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1455 "AppDirs.c"
+}
+
+
+gboolean app_dirs_is_in_import_dir (GFile* file) {
+ gboolean result = FALSE;
+ GFile* import_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 184 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 185 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_import_dir ();
+#line 185 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ import_dir = _tmp0_;
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = file;
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = import_dir;
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = g_file_has_prefix (_tmp2_, _tmp3_);
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp4_) {
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = TRUE;
+#line 1483 "AppDirs.c"
+ } else {
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = file;
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = import_dir;
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = g_file_equal (_tmp5_, _tmp6_);
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp7_;
+#line 1496 "AppDirs.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp1_;
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (import_dir);
+#line 187 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1504 "AppDirs.c"
+}
+
+
+void app_dirs_set_import_dir (const gchar* path) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (path != NULL);
+#line 191 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 191 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 191 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = path;
+#line 191 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ configuration_facade_set_import_dir (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_);
+#line 191 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1524 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_exec_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 195 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_exec_dir;
+#line 195 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 195 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp1_;
+#line 195 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1540 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_temp_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_tmp_dir;
+#line 199 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp0_ == NULL) {
+#line 1554 "AppDirs.c"
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = g_get_tmp_dir ();
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_strconcat (_tmp1_, "/shotwell-XXXXXX", NULL);
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = mkdtemp (_tmp2_);
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _tmp3_;
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_new_for_path (_tmp4_);
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (app_dirs_tmp_dir);
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_tmp_dir = _tmp5_;
+#line 200 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp4_);
+#line 1576 "AppDirs.c"
+ {
+ GFile* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 203 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = app_dirs_tmp_dir;
+#line 203 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = g_file_query_exists (_tmp6_, NULL);
+#line 203 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp7_) {
+#line 1586 "AppDirs.c"
+ GFile* _tmp8_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = app_dirs_tmp_dir;
+#line 204 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp8_, NULL, &_inner_error_);
+#line 204 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1594 "AppDirs.c"
+ goto __catch438_g_error;
+ }
+ }
+ }
+ goto __finally438;
+ __catch438_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 202 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = _ ("Unable to create temporary directory %s: %s");
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = app_dirs_tmp_dir;
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = g_file_get_path (_tmp10_);
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = _tmp11_;
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = err;
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = _tmp13_->message;
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = g_strdup_printf (_tmp9_, _tmp12_, _tmp14_);
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp16_ = _tmp15_;
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp16_);
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp16_);
+#line 206 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp12_);
+#line 202 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 1639 "AppDirs.c"
+ }
+ __finally438:
+#line 202 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 202 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 202 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 202 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return NULL;
+#line 1650 "AppDirs.c"
+ }
+ }
+#line 211 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp17_ = app_dirs_tmp_dir;
+#line 211 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 211 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp18_;
+#line 211 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1661 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_data_subdir (const gchar* name, const gchar* subname) {
+ GFile* result = NULL;
+ GFile* subdir = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 214 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 215 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_data_dir ();
+#line 215 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 215 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = name;
+#line 215 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = g_file_get_child (_tmp1_, _tmp2_);
+#line 215 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _tmp3_;
+#line 215 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 215 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ subdir = _tmp4_;
+#line 216 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = subname;
+#line 216 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp5_ != NULL) {
+#line 1695 "AppDirs.c"
+ GFile* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = subdir;
+#line 217 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = subname;
+#line 217 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = g_file_get_child (_tmp6_, _tmp7_);
+#line 217 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (subdir);
+#line 217 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ subdir = _tmp8_;
+#line 1709 "AppDirs.c"
+ }
+ {
+ GFile* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 220 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = subdir;
+#line 220 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = g_file_query_exists (_tmp9_, NULL);
+#line 220 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp10_) {
+#line 1720 "AppDirs.c"
+ GFile* _tmp11_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = subdir;
+#line 221 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp11_, NULL, &_inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1728 "AppDirs.c"
+ goto __catch439_g_error;
+ }
+ }
+ }
+ goto __finally439;
+ __catch439_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GError* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = _ ("Unable to create data subdirectory %s: %s");
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = subdir;
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = _tmp14_;
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp16_ = err;
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp17_ = _tmp16_->message;
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp18_ = g_strdup_printf (_tmp12_, _tmp15_, _tmp17_);
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp19_ = _tmp18_;
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp19_);
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp19_);
+#line 223 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp15_);
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 1773 "AppDirs.c"
+ }
+ __finally439:
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (subdir);
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 219 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return NULL;
+#line 1786 "AppDirs.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = subdir;
+#line 227 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 1792 "AppDirs.c"
+}
+
+
+void app_dirs_ensure_writable (GFile* dir) {
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 231 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = dir;
+#line 231 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = g_file_query_exists (_tmp0_, NULL);
+#line 231 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp1_) {
+#line 1808 "AppDirs.c"
+ {
+ GFileInfo* info = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ guint32 mode = 0U;
+ GFileInfo* _tmp4_ = NULL;
+ guint32 _tmp5_ = 0U;
+ gboolean _tmp6_ = FALSE;
+ GFile* _tmp7_ = NULL;
+ guint32 _tmp8_ = 0U;
+ gboolean _tmp9_ = FALSE;
+#line 233 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = dir;
+#line 233 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = g_file_query_info (_tmp2_, G_FILE_ATTRIBUTE_UNIX_MODE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+#line 233 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ info = _tmp3_;
+#line 233 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1828 "AppDirs.c"
+ goto __catch440_g_error;
+ }
+#line 234 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = info;
+#line 234 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_info_get_attribute_uint32 (_tmp4_, G_FILE_ATTRIBUTE_UNIX_MODE);
+#line 234 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ mode = _tmp5_ | 0700;
+#line 235 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = dir;
+#line 235 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = mode;
+#line 235 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = g_file_set_attribute_uint32 (_tmp7_, G_FILE_ATTRIBUTE_UNIX_MODE, _tmp8_, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+#line 235 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = _tmp9_;
+#line 235 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 235 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (info);
+#line 1849 "AppDirs.c"
+ goto __catch440_g_error;
+ }
+#line 235 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp6_) {
+#line 1854 "AppDirs.c"
+ const gchar* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = _ ("Could not make directory %s writable");
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = dir;
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = _tmp12_;
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = g_strdup_printf (_tmp10_, _tmp13_);
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = _tmp14_;
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp15_);
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp15_);
+#line 236 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp13_);
+#line 1879 "AppDirs.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (info);
+#line 1883 "AppDirs.c"
+ }
+ goto __finally440;
+ __catch440_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ GError* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp16_ = _ ("Could not make directory %s writable: %s");
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp17_ = dir;
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp18_ = g_file_get_path (_tmp17_);
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp19_ = _tmp18_;
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp20_ = err;
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp21_ = _tmp20_->message;
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp22_ = g_strdup_printf (_tmp16_, _tmp19_, _tmp21_);
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp23_ = _tmp22_;
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp23_);
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp23_);
+#line 239 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp19_);
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 1925 "AppDirs.c"
+ }
+ __finally440:
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 232 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return;
+#line 1936 "AppDirs.c"
+ }
+ }
+}
+
+
+GFile* app_dirs_get_cache_subdir (const gchar* name, const gchar* subname) {
+ GFile* result = NULL;
+ GFile* subdir = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 245 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_cache_dir ();
+#line 245 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 245 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = name;
+#line 245 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = g_file_get_child (_tmp1_, _tmp2_);
+#line 245 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = _tmp3_;
+#line 245 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 245 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ subdir = _tmp4_;
+#line 246 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = subdir;
+#line 246 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_ensure_writable (_tmp5_);
+#line 247 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = subname;
+#line 247 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp6_ != NULL) {
+#line 1978 "AppDirs.c"
+ GFile* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = subdir;
+#line 248 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = subname;
+#line 248 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = g_file_get_child (_tmp7_, _tmp8_);
+#line 248 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (subdir);
+#line 248 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ subdir = _tmp9_;
+#line 1992 "AppDirs.c"
+ }
+ {
+ GFile* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 251 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = subdir;
+#line 251 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = g_file_query_exists (_tmp10_, NULL);
+#line 251 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp11_) {
+#line 2003 "AppDirs.c"
+ GFile* _tmp12_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = subdir;
+#line 252 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_file_make_directory_with_parents (_tmp12_, NULL, &_inner_error_);
+#line 252 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2011 "AppDirs.c"
+ goto __catch441_g_error;
+ }
+ }
+ }
+ goto __finally441;
+ __catch441_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ err = _inner_error_;
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _inner_error_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp13_ = _ ("Unable to create data subdirectory %s: %s");
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp14_ = subdir;
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp15_ = g_file_get_path (_tmp14_);
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp16_ = _tmp15_;
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp17_ = err;
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp18_ = _tmp17_->message;
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp19_ = g_strdup_printf (_tmp13_, _tmp16_, _tmp18_);
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp20_ = _tmp19_;
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_window_panic (_tmp20_);
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp20_);
+#line 254 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_free0 (_tmp16_);
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_error_free0 (err);
+#line 2056 "AppDirs.c"
+ }
+ __finally441:
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (subdir);
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_clear_error (&_inner_error_);
+#line 250 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return NULL;
+#line 2069 "AppDirs.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp21_ = subdir;
+#line 257 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_ensure_writable (_tmp21_);
+#line 258 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = subdir;
+#line 258 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2079 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_resources_dir (void) {
+ GFile* result = NULL;
+ GFile* install_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 262 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_install_dir ();
+#line 262 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ install_dir = _tmp0_;
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = install_dir;
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp2_ != NULL) {
+#line 2097 "AppDirs.c"
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = install_dir;
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = g_file_get_child (_tmp3_, "share");
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = _tmp4_;
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = g_file_get_child (_tmp5_, "shotwell");
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp6_;
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2116 "AppDirs.c"
+ } else {
+ GFile* _tmp7_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = app_dirs_get_exec_dir ();
+#line 265 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 265 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp7_;
+#line 2125 "AppDirs.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp1_;
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (install_dir);
+#line 264 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2133 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_lib_dir (void) {
+ GFile* result = NULL;
+ GFile* install_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 269 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_install_dir ();
+#line 269 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ install_dir = _tmp0_;
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = install_dir;
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp2_ != NULL) {
+#line 2151 "AppDirs.c"
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = install_dir;
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = g_file_get_child (_tmp3_, RESOURCES_LIB);
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = _tmp4_;
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = g_file_get_child (_tmp5_, "shotwell");
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp6_;
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2170 "AppDirs.c"
+ } else {
+ GFile* _tmp7_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = app_dirs_get_exec_dir ();
+#line 272 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 272 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp7_;
+#line 2179 "AppDirs.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp1_;
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (install_dir);
+#line 271 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2187 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_system_plugins_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_lib_dir ();
+#line 276 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 276 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "plugins");
+#line 276 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = _tmp2_;
+#line 276 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 276 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp3_;
+#line 276 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2211 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_user_plugins_dir (void) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 280 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_data_dir ();
+#line 280 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 280 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "plugins");
+#line 280 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = _tmp2_;
+#line 280 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 280 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp3_;
+#line 280 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2235 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_log_file (void) {
+ GFile* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = g_getenv ("SHOTWELL_LOG_FILE");
+#line 284 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (_tmp0_ != NULL) {
+#line 2246 "AppDirs.c"
+ const gchar* _tmp1_ = NULL;
+#line 285 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = g_getenv ("SHOTWELL_LOG_FILE");
+#line 285 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (g_strcmp0 (_tmp1_, ":console:") == 0) {
+#line 286 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = NULL;
+#line 286 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2256 "AppDirs.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_getenv ("SHOTWELL_LOG_FILE");
+#line 288 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = g_file_new_for_path (_tmp2_);
+#line 288 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp3_;
+#line 288 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2268 "AppDirs.c"
+ }
+ } else {
+ const gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = g_get_user_cache_dir ();
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = g_file_new_for_path (_tmp4_);
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = _tmp5_;
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = g_file_get_child (_tmp6_, "shotwell");
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = _tmp7_;
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = g_file_get_child (_tmp8_, "shotwell.log");
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = _tmp9_;
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp8_);
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp6_);
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = _tmp10_;
+#line 291 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2300 "AppDirs.c"
+ }
+}
+
+
+GFile* app_dirs_get_thumbnailer_bin (void) {
+ GFile* result = NULL;
+#line 297 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ static const char filename[] = "shotwell-video-thumbnailer";
+#line 2309 "AppDirs.c"
+ GFile* f = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_libexec_dir ();
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "thumbnailer");
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = _tmp2_;
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = g_file_get_child (_tmp3_, filename);
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = _tmp4_;
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp3_);
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 298 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ f = _tmp5_;
+#line 299 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = f;
+#line 299 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = g_file_query_exists (_tmp6_, NULL);
+#line 299 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp7_) {
+#line 2343 "AppDirs.c"
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = app_dirs_get_libexec_dir ();
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = _tmp8_;
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = g_file_get_child (_tmp9_, "shotwell");
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = _tmp10_;
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = g_file_get_child (_tmp11_, filename);
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (f);
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ f = _tmp12_;
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp11_);
+#line 301 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp9_);
+#line 2367 "AppDirs.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = f;
+#line 303 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2373 "AppDirs.c"
+}
+
+
+GFile* app_dirs_get_settings_migrator_bin (void) {
+ GFile* result = NULL;
+#line 307 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ static const char filename[] = "shotwell-settings-migrator";
+#line 2381 "AppDirs.c"
+ GFile* f = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp0_ = app_dirs_get_libexec_dir ();
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp1_ = _tmp0_;
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "settings-migrator");
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp3_ = _tmp2_;
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp4_ = g_file_get_child (_tmp3_, filename);
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp5_ = _tmp4_;
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp3_);
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 308 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ f = _tmp5_;
+#line 309 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp6_ = f;
+#line 309 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp7_ = g_file_query_exists (_tmp6_, NULL);
+#line 309 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!_tmp7_) {
+#line 2415 "AppDirs.c"
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp8_ = app_dirs_get_libexec_dir ();
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp9_ = _tmp8_;
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp10_ = g_file_get_child (_tmp9_, "shotwell");
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp11_ = _tmp10_;
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _tmp12_ = g_file_get_child (_tmp11_, filename);
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (f);
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ f = _tmp12_;
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp11_);
+#line 311 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ _g_object_unref0 (_tmp9_);
+#line 2439 "AppDirs.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ result = f;
+#line 313 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return result;
+#line 2445 "AppDirs.c"
+}
+
+
+AppDirs* app_dirs_construct (GType object_type) {
+ AppDirs* self = NULL;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ self = (AppDirs*) g_type_create_instance (object_type);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return self;
+#line 2455 "AppDirs.c"
+}
+
+
+AppDirs* app_dirs_new (void) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return app_dirs_construct (TYPE_APP_DIRS);
+#line 2462 "AppDirs.c"
+}
+
+
+static void value_app_dirs_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ value->data[0].v_pointer = NULL;
+#line 2469 "AppDirs.c"
+}
+
+
+static void value_app_dirs_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_unref (value->data[0].v_pointer);
+#line 2478 "AppDirs.c"
+ }
+}
+
+
+static void value_app_dirs_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ dest_value->data[0].v_pointer = app_dirs_ref (src_value->data[0].v_pointer);
+#line 2488 "AppDirs.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2492 "AppDirs.c"
+ }
+}
+
+
+static gpointer value_app_dirs_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return value->data[0].v_pointer;
+#line 2500 "AppDirs.c"
+}
+
+
+static gchar* value_app_dirs_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (collect_values[0].v_pointer) {
+#line 2507 "AppDirs.c"
+ AppDirs* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2514 "AppDirs.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2518 "AppDirs.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ value->data[0].v_pointer = app_dirs_ref (object);
+#line 2522 "AppDirs.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ value->data[0].v_pointer = NULL;
+#line 2526 "AppDirs.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return NULL;
+#line 2530 "AppDirs.c"
+}
+
+
+static gchar* value_app_dirs_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ AppDirs** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2541 "AppDirs.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ *object_p = NULL;
+#line 2547 "AppDirs.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2551 "AppDirs.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ *object_p = app_dirs_ref (value->data[0].v_pointer);
+#line 2555 "AppDirs.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return NULL;
+#line 2559 "AppDirs.c"
+}
+
+
+GParamSpec* param_spec_app_dirs (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAppDirs* spec;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_APP_DIRS), NULL);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return G_PARAM_SPEC (spec);
+#line 2573 "AppDirs.c"
+}
+
+
+gpointer value_get_app_dirs (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS), NULL);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return value->data[0].v_pointer;
+#line 2582 "AppDirs.c"
+}
+
+
+void value_set_app_dirs (GValue* value, gpointer v_object) {
+ AppDirs* old;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS));
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APP_DIRS));
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_ref (value->data[0].v_pointer);
+#line 2602 "AppDirs.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ value->data[0].v_pointer = NULL;
+#line 2606 "AppDirs.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_unref (old);
+#line 2612 "AppDirs.c"
+ }
+}
+
+
+void value_take_app_dirs (GValue* value, gpointer v_object) {
+ AppDirs* old;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APP_DIRS));
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APP_DIRS));
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ value->data[0].v_pointer = v_object;
+#line 2631 "AppDirs.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ value->data[0].v_pointer = NULL;
+#line 2635 "AppDirs.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_unref (old);
+#line 2641 "AppDirs.c"
+ }
+}
+
+
+static void app_dirs_class_init (AppDirsClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ app_dirs_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ ((AppDirsClass *) klass)->finalize = app_dirs_finalize;
+#line 2651 "AppDirs.c"
+}
+
+
+static void app_dirs_instance_init (AppDirs * self) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ self->ref_count = 1;
+#line 2658 "AppDirs.c"
+}
+
+
+static void app_dirs_finalize (AppDirs* obj) {
+ AppDirs * self;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_APP_DIRS, AppDirs);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_signal_handlers_destroy (self);
+#line 2668 "AppDirs.c"
+}
+
+
+GType app_dirs_get_type (void) {
+ static volatile gsize app_dirs_type_id__volatile = 0;
+ if (g_once_init_enter (&app_dirs_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_app_dirs_init, value_app_dirs_free_value, value_app_dirs_copy_value, value_app_dirs_peek_pointer, "p", value_app_dirs_collect_value, "p", value_app_dirs_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AppDirsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) app_dirs_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AppDirs), 0, (GInstanceInitFunc) app_dirs_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType app_dirs_type_id;
+ app_dirs_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AppDirs", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&app_dirs_type_id__volatile, app_dirs_type_id);
+ }
+ return app_dirs_type_id__volatile;
+}
+
+
+gpointer app_dirs_ref (gpointer instance) {
+ AppDirs* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ return instance;
+#line 2693 "AppDirs.c"
+}
+
+
+void app_dirs_unref (gpointer instance) {
+ AppDirs* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ APP_DIRS_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/AppDirs.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2706 "AppDirs.c"
+ }
+}
+
+
+
diff --git a/src/AppDirs.vala b/src/AppDirs.vala
index ecd375d..94be26b 100644
--- a/src/AppDirs.vala
+++ b/src/AppDirs.vala
@@ -295,20 +295,20 @@ class AppDirs {
public static File get_thumbnailer_bin() {
const string filename = "shotwell-video-thumbnailer";
- File f = File.new_for_path(AppDirs.get_libexec_dir().get_path() + "/thumbnailer/" + filename);
+ File f = AppDirs.get_libexec_dir().get_child("thumbnailer").get_child (filename);
if (!f.query_exists()) {
// If we're running installed.
- f = File.new_for_path(AppDirs.get_libexec_dir().get_path() + "/" + filename);
+ f = AppDirs.get_libexec_dir () .get_child ("shotwell").get_child (filename);
}
return f;
}
public static File get_settings_migrator_bin() {
const string filename = "shotwell-settings-migrator";
- File f = File.new_for_path(AppDirs.get_libexec_dir().get_path() + "/settings-migrator/" + filename);
+ File f = AppDirs.get_libexec_dir().get_child ("settings-migrator").get_child (filename);
if (!f.query_exists()) {
// If we're running installed.
- f = File.new_for_path(AppDirs.get_libexec_dir().get_path() + "/" + filename);
+ f = AppDirs.get_libexec_dir () .get_child ("shotwell").get_child (filename);
}
return f;
}
diff --git a/src/AppWindow.c b/src/AppWindow.c
new file mode 100644
index 0000000..a707e4a
--- /dev/null
+++ b/src/AppWindow.c
@@ -0,0 +1,6160 @@
+/* AppWindow.c generated by valac 0.32.1, the Vala compiler
+ * generated from AppWindow.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <time.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+typedef struct _PageWindowPrivate PageWindowPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+typedef struct _FullscreenWindowPrivate FullscreenWindowPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+
+#define TYPE_SLIDESHOW_PAGE (slideshow_page_get_type ())
+#define SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPage))
+#define SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+#define IS_SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SLIDESHOW_PAGE))
+#define IS_SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SLIDESHOW_PAGE))
+#define SLIDESHOW_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+
+typedef struct _SlideshowPage SlideshowPage;
+typedef struct _SlideshowPageClass SlideshowPageClass;
+typedef struct _AppWindowPrivate AppWindowPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_DIRECT_WINDOW (direct_window_get_type ())
+#define DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_WINDOW, DirectWindow))
+#define DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_WINDOW, DirectWindowClass))
+#define IS_DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_WINDOW))
+#define IS_DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_WINDOW))
+#define DIRECT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_WINDOW, DirectWindowClass))
+
+typedef struct _DirectWindow DirectWindow;
+typedef struct _DirectWindowClass DirectWindowClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_COMMAND_DESCRIPTION (command_description_get_type ())
+#define COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescription))
+#define IS_COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_DESCRIPTION))
+#define COMMAND_DESCRIPTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescriptionIface))
+
+typedef struct _CommandDescription CommandDescription;
+typedef struct _CommandDescriptionIface CommandDescriptionIface;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _PageWindow {
+ GtkWindow parent_instance;
+ PageWindowPrivate * priv;
+ GtkUIManager* ui;
+};
+
+struct _PageWindowClass {
+ GtkWindowClass parent_class;
+ void (*switched_pages) (PageWindow* self, Page* old_page, Page* new_page);
+ void (*set_current_page) (PageWindow* self, Page* page);
+ void (*clear_current_page) (PageWindow* self);
+};
+
+struct _FullscreenWindow {
+ PageWindow parent_instance;
+ FullscreenWindowPrivate * priv;
+};
+
+struct _FullscreenWindowClass {
+ PageWindowClass parent_class;
+};
+
+struct _FullscreenWindowPrivate {
+ GtkOverlay* overlay;
+ GtkToolbar* toolbar;
+ GtkToolButton* close_button;
+ GtkToggleToolButton* pin_button;
+ gboolean is_toolbar_shown;
+ gboolean waiting_for_invoke;
+ time_t left_toolbar_time;
+ gboolean switched_to;
+ gboolean is_toolbar_dismissal_enabled;
+};
+
+struct _PageWindowPrivate {
+ Page* current_page;
+ gint busy_counter;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _AppWindow {
+ PageWindow parent_instance;
+ AppWindowPrivate * priv;
+ GtkActionGroup** common_action_groups;
+ gint common_action_groups_length1;
+ gboolean maximized;
+ Dimensions dimensions;
+ gint pos_x;
+ gint pos_y;
+};
+
+struct _AppWindowClass {
+ PageWindowClass parent_class;
+ void (*on_fullscreen) (AppWindow* self);
+ gchar* (*get_app_role) (AppWindow* self);
+ void (*on_quit) (AppWindow* self);
+ GtkActionGroup** (*create_common_action_groups) (AppWindow* self, int* result_length1);
+ void (*replace_common_placeholders) (AppWindow* self, GtkUIManager* ui);
+ void (*update_common_action_availability) (AppWindow* self, Page* old_page, Page* new_page);
+ void (*update_common_actions) (AppWindow* self, Page* page, gint selected_count, gint count);
+};
+
+struct _AppWindowPrivate {
+ GtkActionGroup* common_action_group;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _CommandDescriptionIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (CommandDescription* self);
+ gchar* (*get_explanation) (CommandDescription* self);
+};
+
+
+static gpointer fullscreen_window_parent_class = NULL;
+static gpointer page_window_parent_class = NULL;
+static gpointer app_window_parent_class = NULL;
+extern AppWindow* app_window_instance;
+AppWindow* app_window_instance = NULL;
+static FullscreenWindow* app_window_fullscreen_window;
+static FullscreenWindow* app_window_fullscreen_window = NULL;
+static CommandManager* app_window_command_manager;
+static CommandManager* app_window_command_manager = NULL;
+
+GType page_window_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+#define FULLSCREEN_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_FULLSCREEN_WINDOW, FullscreenWindowPrivate))
+enum {
+ FULLSCREEN_WINDOW_DUMMY_PROPERTY
+};
+#define FULLSCREEN_WINDOW_TOOLBAR_INVOCATION_MSEC 250
+#define FULLSCREEN_WINDOW_TOOLBAR_DISMISSAL_SEC 2
+#define FULLSCREEN_WINDOW_TOOLBAR_CHECK_DISMISSAL_MSEC 500
+FullscreenWindow* fullscreen_window_new (Page* page);
+FullscreenWindow* fullscreen_window_construct (GType object_type, Page* page);
+PageWindow* page_window_construct (GType object_type);
+void page_window_set_current_page (PageWindow* self, Page* page);
+GFile* resources_get_ui (const gchar* filename);
+static GtkActionEntry* fullscreen_window_create_actions (FullscreenWindow* self, int* result_length1);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+static void fullscreen_window_get_monitor_geometry (FullscreenWindow* self, GdkRectangle* result);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_pin_toolbar_state (ConfigurationFacade* self);
+void fullscreen_window_update_toolbar_dismissal (FullscreenWindow* self);
+static void _fullscreen_window_update_toolbar_dismissal_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+static void fullscreen_window_on_close (FullscreenWindow* self);
+static void _fullscreen_window_on_close_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+GtkToolbar* page_get_toolbar (Page* self);
+#define RESOURCES_TRANSIENT_WINDOW_OPACITY 0.90
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType slideshow_page_get_type (void) G_GNUC_CONST;
+static void fullscreen_window_hide_toolbar (FullscreenWindow* self);
+static void _fullscreen_window_hide_toolbar_slideshow_page_hide_toolbar (SlideshowPage* _sender, gpointer self);
+void page_set_cursor_hide_time (Page* self, gint hide_time);
+void page_start_cursor_hiding (Page* self);
+static void fullscreen_window_invoke_toolbar (FullscreenWindow* self);
+void fullscreen_window_disable_toolbar_dismissal (FullscreenWindow* self);
+static gboolean fullscreen_window_real_configure_event (GtkWidget* base, GdkEventConfigure* event);
+Page* page_window_get_current_page (PageWindow* self);
+void page_switched_to (Page* self);
+#define RESOURCES_LEAVE_FULLSCREEN_LABEL _ ("Leave _Fullscreen")
+#define TRANSLATABLE "translatable"
+static void _fullscreen_window_on_close_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add158 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static gboolean fullscreen_window_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+void configuration_facade_set_pin_toolbar_state (ConfigurationFacade* self, gboolean state);
+void app_window_end_fullscreen (AppWindow* self);
+void fullscreen_window_close (FullscreenWindow* self);
+static void fullscreen_window_real_destroy (GtkWidget* base);
+void page_window_clear_current_page (PageWindow* self);
+void page_stop_cursor_hiding (Page* self);
+void page_switching_from (Page* self);
+static gboolean fullscreen_window_real_delete_event (GtkWidget* base, GdkEventAny* event);
+static gboolean fullscreen_window_real_motion_notify_event (GtkWidget* base, GdkEventMotion* event);
+static gboolean fullscreen_window_is_pointer_in_toolbar (FullscreenWindow* self);
+static gboolean fullscreen_window_on_check_toolbar_invocation (FullscreenWindow* self);
+static gboolean _fullscreen_window_on_check_toolbar_invocation_gsource_func (gpointer self);
+static gboolean fullscreen_window_on_check_toolbar_dismissal (FullscreenWindow* self);
+static gboolean _fullscreen_window_on_check_toolbar_dismissal_gsource_func (gpointer self);
+static void fullscreen_window_finalize (GObject* obj);
+#define PAGE_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PAGE_WINDOW, PageWindowPrivate))
+enum {
+ PAGE_WINDOW_DUMMY_PROPERTY
+};
+void page_window_switched_pages (PageWindow* self, Page* old_page, Page* new_page);
+static void page_window_real_switched_pages (PageWindow* self, Page* old_page, Page* new_page);
+GtkUIManager* page_window_get_ui_manager (PageWindow* self);
+static void page_window_real_set_current_page (PageWindow* self, Page* page);
+void page_clear_container (Page* self);
+void page_set_container (Page* self, GtkWindow* container);
+static void page_window_real_clear_current_page (PageWindow* self);
+static gboolean page_window_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+gboolean page_notify_app_key_pressed (Page* self, GdkEventKey* event);
+static gboolean page_window_real_key_release_event (GtkWidget* base, GdkEventKey* event);
+gboolean page_notify_app_key_released (Page* self, GdkEventKey* event);
+static gboolean page_window_real_focus_in_event (GtkWidget* base, GdkEventFocus* event);
+gboolean page_notify_app_focus_in (Page* self, GdkEventFocus* event);
+static gboolean page_window_real_focus_out_event (GtkWidget* base, GdkEventFocus* event);
+gboolean page_notify_app_focus_out (Page* self, GdkEventFocus* event);
+static gboolean page_window_real_configure_event (GtkWidget* base, GdkEventConfigure* event);
+gboolean page_notify_configure_event (Page* self, GdkEventConfigure* event);
+void page_window_set_busy_cursor (PageWindow* self);
+void spin_event_loop (void);
+void page_window_set_normal_cursor (PageWindow* self);
+static void page_window_finalize (GObject* obj);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+#define APP_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_APP_WINDOW, AppWindowPrivate))
+enum {
+ APP_WINDOW_DUMMY_PROPERTY
+};
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+#define APP_WINDOW_DND_ICON_SCALE 128
+AppWindow* app_window_construct (GType object_type);
+#define RESOURCES_APP_TITLE "Shotwell"
+GType library_window_get_type (void) G_GNUC_CONST;
+void configuration_facade_get_library_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+GType direct_window_get_type (void) G_GNUC_CONST;
+void configuration_facade_get_direct_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+#define COMMAND_MANAGER_DEFAULT_DEPTH 20
+CommandManager* command_manager_new (gint depth);
+CommandManager* command_manager_construct (GType object_type, gint depth);
+static void app_window_on_command_manager_altered (AppWindow* self);
+static void _app_window_on_command_manager_altered_command_manager_altered (CommandManager* _sender, gboolean can_undo, gboolean can_redo, gpointer self);
+GtkActionGroup** app_window_create_common_action_groups (AppWindow* self, int* result_length1);
+gchar* build_dummy_ui_string (GtkActionGroup** groups, int groups_length1);
+#define RESOURCES_CUSTOM_CSS "LibraryWindow * {\n" \
+" -GtkPaned-handle-size: 1;\n" \
+" }\n" \
+" LibraryWindow .pane-separator {\n" \
+" background-color: @borders;\n" \
+" }\n" \
+" SearchFilterToolbar {\n" \
+" border-width: 0 0 1px 0;\n" \
+" border-style: solid;\n" \
+" border-color: @borders;\n" \
+" }"
+static GtkActionEntry* app_window_create_common_actions (AppWindow* self, int* result_length1);
+#define RESOURCES_QUIT_LABEL _ ("_Quit")
+void app_window_on_quit (AppWindow* self);
+static void _app_window_on_quit_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add159 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ABOUT_LABEL _ ("_About")
+void app_window_on_about (AppWindow* self);
+static void _app_window_on_about_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add160 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_FULLSCREEN_LABEL _ ("Fulls_creen")
+void app_window_on_fullscreen (AppWindow* self);
+static void _app_window_on_fullscreen_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add161 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_HELP_LABEL _ ("_Help")
+static void app_window_on_help_contents (AppWindow* self);
+static void _app_window_on_help_contents_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add162 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void app_window_on_help_faq (AppWindow* self);
+static void _app_window_on_help_faq_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add163 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void app_window_on_help_report_problem (AppWindow* self);
+static void _app_window_on_help_report_problem_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add164 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_UNDO_MENU _ ("_Undo")
+static void app_window_on_undo (AppWindow* self);
+static void _app_window_on_undo_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add165 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REDO_MENU _ ("_Redo")
+static void app_window_on_redo (AppWindow* self);
+static void _app_window_on_redo_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add166 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_JUMP_TO_FILE_MENU _ ("Show in File Mana_ger")
+void app_window_on_jump_to_file (AppWindow* self);
+static void _app_window_on_jump_to_file_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add167 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_SELECT_ALL_MENU _ ("Select _All")
+static void app_window_on_select_all (AppWindow* self);
+static void _app_window_on_select_all_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add168 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void app_window_on_select_none (AppWindow* self);
+static void _app_window_on_select_none_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add169 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void app_window_real_on_fullscreen (AppWindow* self);
+gboolean app_window_has_instance (void);
+FullscreenWindow* app_window_get_fullscreen (void);
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+GFile* app_dirs_get_resources_dir (void);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+void app_window_error_message_with_title (const gchar* title, const gchar* message, GtkWindow* parent, gboolean should_escape);
+gchar* build_alert_body_text (const gchar* primary_text, const gchar* secondary_text, gboolean should_escape);
+gboolean app_window_negate_affirm_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* title, GtkWindow* parent);
+GtkResponseType app_window_negate_affirm_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* title, GtkWindow* parent);
+GtkResponseType app_window_affirm_cancel_question (const gchar* message, const gchar* affirmative, const gchar* title, GtkWindow* parent);
+GtkResponseType app_window_negate_affirm_all_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* affirmative_all, const gchar* title, GtkWindow* parent);
+GQuark database_error_quark (void);
+void app_window_database_error (GError* err);
+void app_window_panic (const gchar* msg);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void application_panic (Application* self);
+gchar* app_window_get_app_role (AppWindow* self);
+static gchar* app_window_real_get_app_role (AppWindow* self);
+#define RESOURCES_APP_VERSION _VERSION
+#define RESOURCES_COPYRIGHT _ ("Copyright 2016 Software Freedom Conservancy Inc.")
+#define RESOURCES_HOME_URL "https://wiki.gnome.org/Apps/Shotwell"
+#define RESOURCES_LICENSE "\n" \
+"Shotwell is free software; you can redistribute it and/or modify it un" \
+"der the \n" \
+"terms of the GNU Lesser General Public License as published by the Fre" \
+"e \n" \
+"Software Foundation; either version 2.1 of the License, or (at your op" \
+"tion) \n" \
+"any later version.\n" \
+"\n" \
+"Shotwell is distributed in the hope that it will be useful, but WITHOU" \
+"T \n" \
+"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " \
+"FITNESS\n" \
+"FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License f" \
+"or \n" \
+"more details.\n" \
+"\n" \
+"You should have received a copy of the GNU Lesser General Public Licen" \
+"se \n" \
+"along with Shotwell; if not, write to the Free Software Foundation, In" \
+"c., \n" \
+"51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n"
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+#define RESOURCES_ICON_ABOUT_LOGO "shotwell-street.jpg"
+void resources_launch_help (GdkScreen* screen, const gchar* anchor, GError** error);
+void app_window_show_uri (AppWindow* self, const gchar* url, GError** error);
+#define RESOURCES_BUG_DB_URL "https://wiki.gnome.org/Apps/Shotwell/ReportingABug"
+#define RESOURCES_FAQ_URL "https://wiki.gnome.org/Apps/Shotwell/FAQ"
+static void app_window_real_on_quit (AppWindow* self);
+void application_exit (Application* self);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gint view_collection_get_selected_count (ViewCollection* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+DataSource* data_view_get_source (DataView* self);
+void app_window_show_file_uri (AppWindow* self, GFile* file, GError** error);
+GFile* media_source_get_master_file (MediaSource* self);
+gchar* resources_jump_to_file_failed (GError* err);
+static void app_window_real_destroy (GtkWidget* base);
+gchar* get_nautilus_install_location (void);
+void show_file_in_nautilus (const gchar* filename, GError** error);
+void sys_show_uri (GdkScreen* screen, const gchar* uri, GError** error);
+static GtkActionGroup** app_window_real_create_common_action_groups (AppWindow* self, int* result_length1);
+static void _vala_array_add170 (GtkActionGroup*** array, int* length, int* size, GtkActionGroup* value);
+GtkActionGroup** app_window_get_common_action_groups (AppWindow* self, int* result_length1);
+static GtkActionGroup** _vala_array_dup28 (GtkActionGroup** self, int length);
+void app_window_replace_common_placeholders (AppWindow* self, GtkUIManager* ui);
+static void app_window_real_replace_common_placeholders (AppWindow* self, GtkUIManager* ui);
+void app_window_go_fullscreen (AppWindow* self, Page* page);
+void page_switching_to_fullscreen (Page* self, FullscreenWindow* fsw);
+void page_returning_from_fullscreen (Page* self, FullscreenWindow* fsw);
+GtkAction* app_window_get_common_action (AppWindow* self, const gchar* name);
+void app_window_set_common_action_sensitive (AppWindow* self, const gchar* name, gboolean sensitive);
+void app_window_set_common_action_important (AppWindow* self, const gchar* name, gboolean important);
+void app_window_set_common_action_visible (AppWindow* self, const gchar* name, gboolean visible);
+static void app_window_real_switched_pages (PageWindow* base, Page* old_page, Page* new_page);
+void app_window_update_common_action_availability (AppWindow* self, Page* old_page, Page* new_page);
+static void app_window_on_update_common_actions (AppWindow* self);
+static void _app_window_on_update_common_actions_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void _app_window_on_update_common_actions_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self);
+static void _app_window_on_update_common_actions_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
+void app_window_update_common_actions (AppWindow* self, Page* page, gint selected_count, gint count);
+gint data_collection_get_count (DataCollection* self);
+static void app_window_real_update_common_action_availability (AppWindow* self, Page* old_page, Page* new_page);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+static void app_window_real_update_common_actions (AppWindow* self, Page* page, gint selected_count, gint count);
+void app_window_decorate_undo_action (AppWindow* self);
+void app_window_decorate_redo_action (AppWindow* self);
+CommandManager* app_window_get_command_manager (void);
+GType command_description_get_type (void) G_GNUC_CONST;
+static void app_window_decorate_command_manager_action (AppWindow* self, const gchar* name, const gchar* prefix, const gchar* default_explanation, CommandDescription* desc);
+gchar* command_description_get_name (CommandDescription* self);
+gchar* command_description_get_explanation (CommandDescription* self);
+CommandDescription* command_manager_get_undo_description (CommandManager* self);
+CommandDescription* command_manager_get_redo_description (CommandManager* self);
+gboolean command_manager_undo (CommandManager* self);
+gboolean command_manager_redo (CommandManager* self);
+void view_collection_select_all (ViewCollection* self);
+void view_collection_unselect_all (ViewCollection* self);
+static gboolean app_window_real_configure_event (GtkWidget* base, GdkEventConfigure* event);
+static void app_window_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+extern const gchar* RESOURCES_AUTHORS[6];
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 38 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 613 "AppWindow.c"
+}
+
+
+static void _fullscreen_window_update_toolbar_dismissal_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 57 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_update_toolbar_dismissal ((FullscreenWindow*) self);
+#line 620 "AppWindow.c"
+}
+
+
+static void _fullscreen_window_on_close_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 61 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_on_close ((FullscreenWindow*) self);
+#line 627 "AppWindow.c"
+}
+
+
+static void _fullscreen_window_hide_toolbar_slideshow_page_hide_toolbar (SlideshowPage* _sender, gpointer self) {
+#line 72 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_hide_toolbar ((FullscreenWindow*) self);
+#line 634 "AppWindow.c"
+}
+
+
+FullscreenWindow* fullscreen_window_construct (GType object_type, Page* page) {
+ FullscreenWindow * self = NULL;
+ Page* _tmp0_ = NULL;
+ GFile* ui_file = NULL;
+ GFile* _tmp1_ = NULL;
+ GtkActionGroup* action_group = NULL;
+ GtkActionGroup* _tmp8_ = NULL;
+ GtkActionGroup* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ GtkActionEntry* _tmp11_ = NULL;
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkUIManager* _tmp13_ = NULL;
+ GtkActionGroup* _tmp14_ = NULL;
+ GtkUIManager* _tmp15_ = NULL;
+ GtkAccelGroup* accel_group = NULL;
+ GtkUIManager* _tmp16_ = NULL;
+ GtkAccelGroup* _tmp17_ = NULL;
+ GtkAccelGroup* _tmp18_ = NULL;
+ GtkAccelGroup* _tmp19_ = NULL;
+ AppWindow* _tmp21_ = NULL;
+ AppWindow* _tmp22_ = NULL;
+ GdkScreen* _tmp23_ = NULL;
+ GdkRectangle monitor = {0};
+ GdkRectangle _tmp24_ = {0};
+ GdkRectangle _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ GdkRectangle _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ ConfigFacade* _tmp29_ = NULL;
+ ConfigFacade* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ GtkToggleToolButton* _tmp32_ = NULL;
+ GtkToggleToolButton* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ GtkToggleToolButton* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ GtkToggleToolButton* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ GtkToggleToolButton* _tmp39_ = NULL;
+ GtkToolButton* _tmp40_ = NULL;
+ GtkToolButton* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ GtkToolButton* _tmp43_ = NULL;
+ Page* _tmp44_ = NULL;
+ GtkToolbar* _tmp45_ = NULL;
+ GtkToolbar* _tmp46_ = NULL;
+ GtkToolbar* _tmp47_ = NULL;
+ GtkToolbar* _tmp48_ = NULL;
+ GtkToolbar* _tmp49_ = NULL;
+ GtkToolbar* _tmp50_ = NULL;
+ Page* _tmp51_ = NULL;
+ Page* _tmp55_ = NULL;
+ Page* _tmp56_ = NULL;
+ GtkToolbar* _tmp57_ = NULL;
+ GtkToolButton* _tmp58_ = NULL;
+ GtkOverlay* _tmp59_ = NULL;
+ GtkOverlay* _tmp60_ = NULL;
+ Page* _tmp61_ = NULL;
+ GtkOverlay* _tmp62_ = NULL;
+ GtkToolbar* _tmp63_ = NULL;
+ GdkRectangle _tmp64_ = {0};
+ gint _tmp65_ = 0;
+ GdkRectangle _tmp66_ = {0};
+ gint _tmp67_ = 0;
+ GError * _inner_error_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_PAGE (page), NULL);
+#line 22 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = (FullscreenWindow*) page_window_construct (object_type);
+#line 23 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = page;
+#line 23 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_window_set_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), _tmp0_);
+#line 25 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = resources_get_ui ("fullscreen.ui");
+#line 25 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ui_file = _tmp1_;
+#line 716 "AppWindow.c"
+ {
+ GtkUIManager* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 28 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = g_file_get_path (ui_file);
+#line 28 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 28 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_ui_manager_add_ui_from_file (_tmp2_, _tmp4_, &_inner_error_);
+#line 28 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp4_);
+#line 28 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 733 "AppWindow.c"
+ goto __catch211_g_error;
+ }
+ }
+ goto __finally211;
+ __catch211_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ err = _inner_error_;
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = g_file_get_path (ui_file);
+#line 30 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 30 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = err->message;
+#line 30 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_error ("AppWindow.vala:30: Error loading UI file %s: %s", _tmp6_, _tmp7_);
+#line 30 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp6_);
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (err);
+#line 760 "AppWindow.c"
+ }
+ __finally211:
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (ui_file);
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 27 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return NULL;
+#line 773 "AppWindow.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = gtk_action_group_new ("FullscreenActionGroup");
+#line 33 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ action_group = _tmp8_;
+#line 34 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = action_group;
+#line 34 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = fullscreen_window_create_actions (self, &_tmp10_);
+#line 34 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = _tmp11_;
+#line 34 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12__length1 = _tmp10_;
+#line 34 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_group_add_actions (_tmp9_, _tmp12_, _tmp10_, self);
+#line 34 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = (g_free (_tmp12_), NULL);
+#line 35 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 35 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = action_group;
+#line 35 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_ui_manager_insert_action_group (_tmp13_, _tmp14_, 0);
+#line 36 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 36 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_ui_manager_ensure_update (_tmp15_);
+#line 38 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 38 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = gtk_ui_manager_get_accel_group (_tmp16_);
+#line 38 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 38 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ accel_group = _tmp18_;
+#line 39 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp19_ = accel_group;
+#line 39 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp19_ != NULL) {
+#line 813 "AppWindow.c"
+ GtkAccelGroup* _tmp20_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20_ = accel_group;
+#line 40 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_add_accel_group (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp20_);
+#line 819 "AppWindow.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp21_ = app_window_get_instance ();
+#line 42 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_ = _tmp21_;
+#line 42 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp23_ = gtk_window_get_screen (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_window_get_type (), GtkWindow));
+#line 42 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_screen (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp23_);
+#line 42 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp22_);
+#line 45 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_get_monitor_geometry (self, &_tmp24_);
+#line 45 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ monitor = _tmp24_;
+#line 46 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_ = monitor;
+#line 46 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp26_ = _tmp25_.x;
+#line 46 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp27_ = monitor;
+#line 46 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_ = _tmp27_.y;
+#line 46 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_move (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp26_, _tmp28_);
+#line 48 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), (guint) 0);
+#line 51 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp29_ = config_facade_get_instance ();
+#line 51 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp30_ = _tmp29_;
+#line 51 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_ = configuration_facade_get_pin_toolbar_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 51 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->is_toolbar_dismissal_enabled = _tmp31_;
+#line 51 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp30_);
+#line 53 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp32_ = self->priv->pin_button;
+#line 53 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_tool_button_set_icon_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_tool_button_get_type (), GtkToolButton), "pin-toolbar");
+#line 54 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp33_ = self->priv->pin_button;
+#line 54 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_ = _ ("Pin Toolbar");
+#line 54 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_tool_button_set_label (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_tool_button_get_type (), GtkToolButton), _tmp34_);
+#line 55 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp35_ = self->priv->pin_button;
+#line 55 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp36_ = _ ("Pin the toolbar open");
+#line 55 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_tool_item_get_type (), GtkToolItem), _tmp36_);
+#line 56 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp37_ = self->priv->pin_button;
+#line 56 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp38_ = self->priv->is_toolbar_dismissal_enabled;
+#line 56 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_toggle_tool_button_set_active (_tmp37_, !_tmp38_);
+#line 57 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp39_ = self->priv->pin_button;
+#line 57 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_tool_button_get_type (), GtkToolButton), "clicked", (GCallback) _fullscreen_window_update_toolbar_dismissal_gtk_tool_button_clicked, self, 0);
+#line 59 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp40_ = self->priv->close_button;
+#line 59 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_tool_button_set_icon_name (_tmp40_, "view-restore");
+#line 60 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp41_ = self->priv->close_button;
+#line 60 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp42_ = _ ("Leave fullscreen");
+#line 60 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_tool_item_get_type (), GtkToolItem), _tmp42_);
+#line 61 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp43_ = self->priv->close_button;
+#line 61 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_connect_object (_tmp43_, "clicked", (GCallback) _fullscreen_window_on_close_gtk_tool_button_clicked, self, 0);
+#line 63 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp44_ = page;
+#line 63 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp45_ = page_get_toolbar (_tmp44_);
+#line 63 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->toolbar);
+#line 63 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->toolbar = _tmp45_;
+#line 64 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp46_ = self->priv->toolbar;
+#line 64 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_toolbar_set_show_arrow (_tmp46_, FALSE);
+#line 65 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp47_ = self->priv->toolbar;
+#line 65 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_END);
+#line 66 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp48_ = self->priv->toolbar;
+#line 66 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_CENTER);
+#line 67 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp49_ = self->priv->toolbar;
+#line 67 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_widget_get_type (), GtkWidget), "expand", FALSE, NULL);
+#line 68 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp50_ = self->priv->toolbar;
+#line 68 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_set_opacity (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_widget_get_type (), GtkWidget), RESOURCES_TRANSIENT_WINDOW_OPACITY);
+#line 70 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp51_ = page;
+#line 70 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp51_, TYPE_SLIDESHOW_PAGE)) {
+#line 929 "AppWindow.c"
+ Page* _tmp52_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp52_ = page;
+#line 72 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_SLIDESHOW_PAGE, SlideshowPage), "hide-toolbar", (GCallback) _fullscreen_window_hide_toolbar_slideshow_page_hide_toolbar, self, 0);
+#line 935 "AppWindow.c"
+ } else {
+ GtkToolbar* _tmp53_ = NULL;
+ GtkToggleToolButton* _tmp54_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp53_ = self->priv->toolbar;
+#line 75 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp54_ = self->priv->pin_button;
+#line 75 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_toolbar_insert (_tmp53_, G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 945 "AppWindow.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp55_ = page;
+#line 78 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_set_cursor_hide_time (_tmp55_, FULLSCREEN_WINDOW_TOOLBAR_DISMISSAL_SEC * 1000);
+#line 79 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp56_ = page;
+#line 79 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_start_cursor_hiding (_tmp56_);
+#line 81 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp57_ = self->priv->toolbar;
+#line 81 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp58_ = self->priv->close_button;
+#line 81 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_toolbar_insert (_tmp57_, G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 83 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp59_ = self->priv->overlay;
+#line 83 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, gtk_widget_get_type (), GtkWidget));
+#line 84 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp60_ = self->priv->overlay;
+#line 84 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp61_ = page;
+#line 84 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gtk_widget_get_type (), GtkWidget));
+#line 85 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp62_ = self->priv->overlay;
+#line 85 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp63_ = self->priv->toolbar;
+#line 85 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_overlay_add_overlay (_tmp62_, G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, gtk_widget_get_type (), GtkWidget));
+#line 90 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp64_ = monitor;
+#line 90 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp65_ = _tmp64_.width;
+#line 90 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp66_ = monitor;
+#line 90 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp67_ = _tmp66_.height;
+#line 90 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_default_size (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp65_, _tmp67_);
+#line 93 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 94 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 97 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) GDK_POINTER_MOTION_MASK);
+#line 100 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_invoke_toolbar (self);
+#line 22 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (accel_group);
+#line 22 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (action_group);
+#line 22 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (ui_file);
+#line 22 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return self;
+#line 1003 "AppWindow.c"
+}
+
+
+FullscreenWindow* fullscreen_window_new (Page* page) {
+#line 22 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return fullscreen_window_construct (TYPE_FULLSCREEN_WINDOW, page);
+#line 1010 "AppWindow.c"
+}
+
+
+void fullscreen_window_disable_toolbar_dismissal (FullscreenWindow* self) {
+#line 103 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (self));
+#line 104 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->is_toolbar_dismissal_enabled = FALSE;
+#line 1019 "AppWindow.c"
+}
+
+
+void fullscreen_window_update_toolbar_dismissal (FullscreenWindow* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 107 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (self));
+#line 108 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->pin_button;
+#line 108 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gtk_toggle_tool_button_get_active (_tmp0_);
+#line 108 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->is_toolbar_dismissal_enabled = !_tmp1_;
+#line 1034 "AppWindow.c"
+}
+
+
+static void fullscreen_window_get_monitor_geometry (FullscreenWindow* self, GdkRectangle* result) {
+ GdkRectangle monitor = {0};
+ GdkScreen* _tmp0_ = NULL;
+ GdkScreen* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ GdkWindow* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ GdkRectangle _tmp6_ = {0};
+#line 111 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (self));
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_window_get_screen (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gtk_window_get_screen (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = gdk_screen_get_monitor_at_window (_tmp1_, _tmp4_);
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gdk_screen_get_monitor_geometry (_tmp0_, _tmp5_, &_tmp6_);
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ monitor = _tmp6_;
+#line 114 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 117 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *result = monitor;
+#line 117 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 1071 "AppWindow.c"
+}
+
+
+static gboolean fullscreen_window_real_configure_event (GtkWidget* base, GdkEventConfigure* event) {
+ FullscreenWindow * self;
+ gboolean result = FALSE;
+ gboolean _result_ = FALSE;
+ GdkEventConfigure* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 120 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 120 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 121 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = event;
+#line 121 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = GTK_WIDGET_CLASS (fullscreen_window_parent_class)->configure_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), gtk_widget_get_type (), GtkWidget), _tmp0_);
+#line 121 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _result_ = _tmp1_;
+#line 123 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->switched_to;
+#line 123 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (!_tmp2_) {
+#line 1096 "AppWindow.c"
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 124 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 124 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_switched_to (_tmp4_);
+#line 124 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 125 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->switched_to = TRUE;
+#line 1109 "AppWindow.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _result_;
+#line 128 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1115 "AppWindow.c"
+}
+
+
+static void _fullscreen_window_on_close_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_on_close ((FullscreenWindow*) self);
+#line 1122 "AppWindow.c"
+}
+
+
+static void _vala_array_add158 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1133 "AppWindow.c"
+ }
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 1137 "AppWindow.c"
+}
+
+
+static GtkActionEntry* fullscreen_window_create_actions (FullscreenWindow* self, int* result_length1) {
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ GtkActionEntry* _tmp0_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry leave_fullscreen = {0};
+ GtkActionEntry _tmp1_ = {0};
+ GtkActionEntry* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ GtkActionEntry _tmp3_ = {0};
+ GtkActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 131 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_FULLSCREEN_WINDOW (self), NULL);
+#line 132 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = g_new0 (GtkActionEntry, 0);
+#line 132 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ actions = _tmp0_;
+#line 132 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ actions_length1 = 0;
+#line 132 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _actions_size_ = actions_length1;
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.name = "LeaveFullscreen";
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.stock_id = RESOURCES_LEAVE_FULLSCREEN_LABEL;
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.label = TRANSLATABLE;
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.accelerator = "F11";
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.tooltip = TRANSLATABLE;
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.callback = (GCallback) _fullscreen_window_on_close_gtk_action_callback;
+#line 134 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ leave_fullscreen = _tmp1_;
+#line 136 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ leave_fullscreen.label = RESOURCES_LEAVE_FULLSCREEN_LABEL;
+#line 137 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ leave_fullscreen.tooltip = RESOURCES_LEAVE_FULLSCREEN_LABEL;
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = actions;
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2__length1 = actions_length1;
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = leave_fullscreen;
+#line 138 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add158 (&actions, &actions_length1, &_actions_size_, &_tmp3_);
+#line 140 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = actions;
+#line 140 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4__length1 = actions_length1;
+#line 140 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (result_length1) {
+#line 140 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *result_length1 = _tmp4__length1;
+#line 1198 "AppWindow.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp4_;
+#line 140 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1204 "AppWindow.c"
+}
+
+
+static gboolean fullscreen_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ FullscreenWindow * self;
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ AppWindow* _tmp6_ = NULL;
+ AppWindow* _tmp7_ = NULL;
+ GdkEventKey* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 143 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 143 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 145 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = event;
+#line 145 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 145 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 145 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (g_strcmp0 (_tmp2_, "Escape") == 0) {
+#line 146 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_on_close (self);
+#line 148 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 148 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1238 "AppWindow.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (GTK_WIDGET_CLASS (fullscreen_window_parent_class)->key_press_event != NULL) {
+#line 1242 "AppWindow.c"
+ GdkEventKey* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 152 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = event;
+#line 152 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = GTK_WIDGET_CLASS (fullscreen_window_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), gtk_widget_get_type (), GtkWidget), _tmp4_);
+#line 152 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp5_;
+#line 1251 "AppWindow.c"
+ } else {
+#line 152 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = FALSE;
+#line 1255 "AppWindow.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp3_) {
+#line 153 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 153 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1263 "AppWindow.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = app_window_get_instance ();
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = event;
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), "key-press-event", _tmp8_, &_tmp9_);
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp10_;
+#line 156 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1281 "AppWindow.c"
+}
+
+
+static void fullscreen_window_on_close (FullscreenWindow* self) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ AppWindow* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (self));
+#line 160 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 160 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 160 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->is_toolbar_dismissal_enabled;
+#line 160 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ configuration_facade_set_pin_toolbar_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_);
+#line 160 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 161 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_hide_toolbar (self);
+#line 163 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = app_window_get_instance ();
+#line 163 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 163 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_end_fullscreen (_tmp4_);
+#line 163 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1313 "AppWindow.c"
+}
+
+
+void fullscreen_window_close (FullscreenWindow* self) {
+#line 166 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (self));
+#line 167 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_on_close (self);
+#line 1322 "AppWindow.c"
+}
+
+
+static void fullscreen_window_real_destroy (GtkWidget* base) {
+ FullscreenWindow * self;
+ Page* page = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 171 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 171 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page = _tmp0_;
+#line 172 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_window_clear_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 174 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = page;
+#line 174 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 1343 "AppWindow.c"
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = page;
+#line 175 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_stop_cursor_hiding (_tmp2_);
+#line 176 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = page;
+#line 176 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_switching_from (_tmp3_);
+#line 1354 "AppWindow.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ GTK_WIDGET_CLASS (fullscreen_window_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), gtk_widget_get_type (), GtkWidget));
+#line 170 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (page);
+#line 1360 "AppWindow.c"
+}
+
+
+static gboolean fullscreen_window_real_delete_event (GtkWidget* base, GdkEventAny* event) {
+ FullscreenWindow * self;
+ gboolean result = FALSE;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 182 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 183 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_on_close (self);
+#line 184 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 184 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 184 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 184 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 186 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 186 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1387 "AppWindow.c"
+}
+
+
+static gboolean _fullscreen_window_on_check_toolbar_invocation_gsource_func (gpointer self) {
+ gboolean result;
+ result = fullscreen_window_on_check_toolbar_invocation ((FullscreenWindow*) self);
+#line 195 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1396 "AppWindow.c"
+}
+
+
+static gboolean fullscreen_window_real_motion_notify_event (GtkWidget* base, GdkEventMotion* event) {
+ FullscreenWindow * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 189 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 189 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 190 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->is_toolbar_shown;
+#line 190 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (!_tmp0_) {
+#line 1413 "AppWindow.c"
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 194 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->waiting_for_invoke;
+#line 194 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (!_tmp2_) {
+#line 1420 "AppWindow.c"
+ gboolean _tmp3_ = FALSE;
+#line 194 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = fullscreen_window_is_pointer_in_toolbar (self);
+#line 194 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp3_;
+#line 1426 "AppWindow.c"
+ } else {
+#line 194 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = FALSE;
+#line 1430 "AppWindow.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_) {
+#line 195 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) FULLSCREEN_WINDOW_TOOLBAR_INVOCATION_MSEC, _fullscreen_window_on_check_toolbar_invocation_gsource_func, g_object_ref (self), g_object_unref);
+#line 196 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->waiting_for_invoke = TRUE;
+#line 1438 "AppWindow.c"
+ }
+ }
+#line 200 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (GTK_WIDGET_CLASS (fullscreen_window_parent_class)->motion_notify_event != NULL) {
+#line 1443 "AppWindow.c"
+ GdkEventMotion* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 200 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = event;
+#line 200 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = GTK_WIDGET_CLASS (fullscreen_window_parent_class)->motion_notify_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), gtk_widget_get_type (), GtkWidget), _tmp5_);
+#line 200 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp6_;
+#line 1452 "AppWindow.c"
+ } else {
+#line 200 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = FALSE;
+#line 1456 "AppWindow.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp4_;
+#line 200 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1462 "AppWindow.c"
+}
+
+
+static gboolean fullscreen_window_is_pointer_in_toolbar (FullscreenWindow* self) {
+ gboolean result = FALSE;
+ GdkDeviceManager* devmgr = NULL;
+ GdkDisplay* _tmp0_ = NULL;
+ GdkDeviceManager* _tmp1_ = NULL;
+ GdkDeviceManager* _tmp2_ = NULL;
+ GdkDeviceManager* _tmp3_ = NULL;
+ gint py = 0;
+ GdkDeviceManager* _tmp4_ = NULL;
+ GdkDevice* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint wy = 0;
+ GtkToolbar* _tmp7_ = NULL;
+ GdkWindow* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 203 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_FULLSCREEN_WINDOW (self), FALSE);
+#line 204 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_widget_get_display (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 204 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gdk_display_get_device_manager (_tmp0_);
+#line 204 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 204 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ devmgr = _tmp2_;
+#line 205 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = devmgr;
+#line 205 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp3_ == NULL) {
+#line 206 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_debug ("AppWindow.vala:206: No device manager for display");
+#line 208 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = FALSE;
+#line 208 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (devmgr);
+#line 208 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1505 "AppWindow.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = devmgr;
+#line 212 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = gdk_device_manager_get_client_pointer (_tmp4_);
+#line 212 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gdk_device_get_position (_tmp5_, NULL, NULL, &_tmp6_);
+#line 212 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ py = _tmp6_;
+#line 215 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = self->priv->toolbar;
+#line 215 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 215 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gdk_window_get_geometry (_tmp8_, NULL, &_tmp9_, NULL, NULL);
+#line 215 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ wy = _tmp9_;
+#line 217 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = py;
+#line 217 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = wy;
+#line 217 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp10_ >= _tmp11_;
+#line 217 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (devmgr);
+#line 217 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1533 "AppWindow.c"
+}
+
+
+static gboolean fullscreen_window_on_check_toolbar_invocation (FullscreenWindow* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 220 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_FULLSCREEN_WINDOW (self), FALSE);
+#line 221 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->waiting_for_invoke = FALSE;
+#line 223 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->is_toolbar_shown;
+#line 223 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_) {
+#line 224 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = FALSE;
+#line 224 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1553 "AppWindow.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = fullscreen_window_is_pointer_in_toolbar (self);
+#line 226 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (!_tmp1_) {
+#line 227 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = FALSE;
+#line 227 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1563 "AppWindow.c"
+ }
+#line 229 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_invoke_toolbar (self);
+#line 231 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = FALSE;
+#line 231 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1571 "AppWindow.c"
+}
+
+
+static gboolean _fullscreen_window_on_check_toolbar_dismissal_gsource_func (gpointer self) {
+ gboolean result;
+ result = fullscreen_window_on_check_toolbar_dismissal ((FullscreenWindow*) self);
+#line 239 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1580 "AppWindow.c"
+}
+
+
+static void fullscreen_window_invoke_toolbar (FullscreenWindow* self) {
+ GtkToolbar* _tmp0_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (self));
+#line 235 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->toolbar;
+#line 235 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 237 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->is_toolbar_shown = TRUE;
+#line 239 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) FULLSCREEN_WINDOW_TOOLBAR_CHECK_DISMISSAL_MSEC, _fullscreen_window_on_check_toolbar_dismissal_gsource_func, g_object_ref (self), g_object_unref);
+#line 1596 "AppWindow.c"
+}
+
+
+static gboolean fullscreen_window_on_check_toolbar_dismissal (FullscreenWindow* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ time_t _tmp3_ = 0;
+ time_t now = 0;
+ time_t _tmp5_ = 0;
+ time_t _tmp6_ = 0;
+ time_t _tmp7_ = 0;
+ time_t _tmp8_ = 0;
+ time_t _tmp9_ = 0;
+#line 242 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_FULLSCREEN_WINDOW (self), FALSE);
+#line 243 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->is_toolbar_shown;
+#line 243 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (!_tmp0_) {
+#line 244 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = FALSE;
+#line 244 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1622 "AppWindow.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->is_toolbar_dismissal_enabled;
+#line 247 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (!_tmp1_) {
+#line 248 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 248 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1632 "AppWindow.c"
+ }
+#line 251 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = fullscreen_window_is_pointer_in_toolbar (self);
+#line 251 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_) {
+#line 252 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->left_toolbar_time = (time_t) 0;
+#line 254 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 254 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1644 "AppWindow.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = self->priv->left_toolbar_time;
+#line 258 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp3_ == ((time_t) 0)) {
+#line 1650 "AppWindow.c"
+ time_t _tmp4_ = 0;
+#line 259 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = time (NULL);
+#line 259 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->left_toolbar_time = _tmp4_;
+#line 261 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 261 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1660 "AppWindow.c"
+ }
+#line 265 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = time (NULL);
+#line 265 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ now = _tmp5_;
+#line 266 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = now;
+#line 266 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = self->priv->left_toolbar_time;
+#line 266 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_assert (_tmp6_ >= _tmp7_, "now >= left_toolbar_time");
+#line 268 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = now;
+#line 268 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = self->priv->left_toolbar_time;
+#line 268 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((_tmp8_ - _tmp9_) < ((time_t) FULLSCREEN_WINDOW_TOOLBAR_DISMISSAL_SEC)) {
+#line 269 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 269 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1682 "AppWindow.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_hide_toolbar (self);
+#line 273 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = FALSE;
+#line 273 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1690 "AppWindow.c"
+}
+
+
+static void fullscreen_window_hide_toolbar (FullscreenWindow* self) {
+ GtkToolbar* _tmp0_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (self));
+#line 277 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->toolbar;
+#line 277 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 278 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->is_toolbar_shown = FALSE;
+#line 1704 "AppWindow.c"
+}
+
+
+static void fullscreen_window_class_init (FullscreenWindowClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen_window_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_type_class_add_private (klass, sizeof (FullscreenWindowPrivate));
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->configure_event = fullscreen_window_real_configure_event;
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = fullscreen_window_real_key_press_event;
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->destroy = fullscreen_window_real_destroy;
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->delete_event = fullscreen_window_real_delete_event;
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->motion_notify_event = fullscreen_window_real_motion_notify_event;
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ G_OBJECT_CLASS (klass)->finalize = fullscreen_window_finalize;
+#line 1725 "AppWindow.c"
+}
+
+
+static void fullscreen_window_instance_init (FullscreenWindow * self) {
+ GtkOverlay* _tmp0_ = NULL;
+ GtkToolButton* _tmp1_ = NULL;
+ GtkToggleToolButton* _tmp2_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv = FULLSCREEN_WINDOW_GET_PRIVATE (self);
+#line 12 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = (GtkOverlay*) gtk_overlay_new ();
+#line 12 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp0_);
+#line 12 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->overlay = _tmp0_;
+#line 13 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->toolbar = NULL;
+#line 14 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = (GtkToolButton*) gtk_tool_button_new (NULL, NULL);
+#line 14 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp1_);
+#line 14 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->close_button = _tmp1_;
+#line 15 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = (GtkToggleToolButton*) gtk_toggle_tool_button_new ();
+#line 15 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp2_);
+#line 15 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->pin_button = _tmp2_;
+#line 16 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->is_toolbar_shown = FALSE;
+#line 17 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->waiting_for_invoke = FALSE;
+#line 18 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->left_toolbar_time = (time_t) 0;
+#line 19 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->switched_to = FALSE;
+#line 1763 "AppWindow.c"
+}
+
+
+static void fullscreen_window_finalize (GObject* obj) {
+ FullscreenWindow * self;
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 12 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->overlay);
+#line 13 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->toolbar);
+#line 14 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->close_button);
+#line 15 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->pin_button);
+#line 7 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ G_OBJECT_CLASS (fullscreen_window_parent_class)->finalize (obj);
+#line 1781 "AppWindow.c"
+}
+
+
+GType fullscreen_window_get_type (void) {
+ static volatile gsize fullscreen_window_type_id__volatile = 0;
+ if (g_once_init_enter (&fullscreen_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FullscreenWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fullscreen_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FullscreenWindow), 0, (GInstanceInitFunc) fullscreen_window_instance_init, NULL };
+ GType fullscreen_window_type_id;
+ fullscreen_window_type_id = g_type_register_static (TYPE_PAGE_WINDOW, "FullscreenWindow", &g_define_type_info, 0);
+ g_once_init_leave (&fullscreen_window_type_id__volatile, fullscreen_window_type_id);
+ }
+ return fullscreen_window_type_id__volatile;
+}
+
+
+static void page_window_real_switched_pages (PageWindow* self, Page* old_page, Page* new_page) {
+#line 295 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((old_page == NULL) || IS_PAGE (old_page));
+#line 295 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((new_page == NULL) || IS_PAGE (new_page));
+#line 1802 "AppWindow.c"
+}
+
+
+void page_window_switched_pages (PageWindow* self, Page* old_page, Page* new_page) {
+#line 295 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE_WINDOW (self));
+#line 295 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ PAGE_WINDOW_GET_CLASS (self)->switched_pages (self, old_page, new_page);
+#line 1811 "AppWindow.c"
+}
+
+
+PageWindow* page_window_construct (GType object_type) {
+ PageWindow * self = NULL;
+#line 298 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = (PageWindow*) g_object_new (object_type, NULL);
+#line 300 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) ((GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK) | GDK_STRUCTURE_MASK));
+#line 303 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_has_resize_grip (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 298 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return self;
+#line 1825 "AppWindow.c"
+}
+
+
+GtkUIManager* page_window_get_ui_manager (PageWindow* self) {
+ GtkUIManager* result = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ GtkUIManager* _tmp1_ = NULL;
+#line 306 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_PAGE_WINDOW (self), NULL);
+#line 307 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->ui;
+#line 307 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 307 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp1_;
+#line 307 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1843 "AppWindow.c"
+}
+
+
+Page* page_window_get_current_page (PageWindow* self) {
+ Page* result = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 310 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_PAGE_WINDOW (self), NULL);
+#line 311 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->current_page;
+#line 311 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 311 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp1_;
+#line 311 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 1861 "AppWindow.c"
+}
+
+
+static void page_window_real_set_current_page (PageWindow* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ Page* old_page = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+#line 314 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 315 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->current_page;
+#line 315 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_ != NULL) {
+#line 1880 "AppWindow.c"
+ Page* _tmp1_ = NULL;
+#line 316 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->current_page;
+#line 316 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_clear_container (_tmp1_);
+#line 1886 "AppWindow.c"
+ }
+#line 318 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->current_page;
+#line 318 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 318 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ old_page = _tmp3_;
+#line 319 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page;
+#line 319 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 319 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->current_page);
+#line 319 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->current_page = _tmp5_;
+#line 320 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = self->priv->current_page;
+#line 320 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_set_container (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 322 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = page;
+#line 322 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_window_switched_pages (self, old_page, _tmp7_);
+#line 314 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (old_page);
+#line 1912 "AppWindow.c"
+}
+
+
+void page_window_set_current_page (PageWindow* self, Page* page) {
+#line 314 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE_WINDOW (self));
+#line 314 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ PAGE_WINDOW_GET_CLASS (self)->set_current_page (self, page);
+#line 1921 "AppWindow.c"
+}
+
+
+static void page_window_real_clear_current_page (PageWindow* self) {
+ Page* _tmp0_ = NULL;
+ Page* old_page = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->current_page;
+#line 326 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_ != NULL) {
+#line 1934 "AppWindow.c"
+ Page* _tmp1_ = NULL;
+#line 327 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->current_page;
+#line 327 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_clear_container (_tmp1_);
+#line 1940 "AppWindow.c"
+ }
+#line 329 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->current_page;
+#line 329 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 329 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ old_page = _tmp3_;
+#line 330 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->current_page);
+#line 330 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->current_page = NULL;
+#line 332 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_window_switched_pages (self, old_page, NULL);
+#line 325 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (old_page);
+#line 1956 "AppWindow.c"
+}
+
+
+void page_window_clear_current_page (PageWindow* self) {
+#line 325 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE_WINDOW (self));
+#line 325 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ PAGE_WINDOW_GET_CLASS (self)->clear_current_page (self);
+#line 1965 "AppWindow.c"
+}
+
+
+static gboolean page_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ PageWindow * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GtkWidget* _tmp1_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Page* _tmp6_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 335 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE_WINDOW, PageWindow);
+#line 335 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gtk_window_get_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_entry_get_type ())) {
+#line 1985 "AppWindow.c"
+ GtkWidget* _tmp2_ = NULL;
+ GdkEventKey* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = gtk_window_get_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = event;
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_emit_by_name (_tmp2_, "key-press-event", _tmp3_, &_tmp4_);
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp4_;
+#line 1997 "AppWindow.c"
+ } else {
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = FALSE;
+#line 2001 "AppWindow.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_) {
+#line 337 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 337 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2009 "AppWindow.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = self->priv->current_page;
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp6_ != NULL) {
+#line 2015 "AppWindow.c"
+ Page* _tmp7_ = NULL;
+ GdkEventKey* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = self->priv->current_page;
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = event;
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = page_notify_app_key_pressed (_tmp7_, _tmp8_);
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp9_;
+#line 2027 "AppWindow.c"
+ } else {
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = FALSE;
+#line 2031 "AppWindow.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp5_) {
+#line 340 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 340 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2039 "AppWindow.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (GTK_WIDGET_CLASS (page_window_parent_class)->key_press_event != NULL) {
+#line 2043 "AppWindow.c"
+ GdkEventKey* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 342 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = event;
+#line 342 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = GTK_WIDGET_CLASS (page_window_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), _tmp11_);
+#line 342 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp12_;
+#line 2052 "AppWindow.c"
+ } else {
+#line 342 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = FALSE;
+#line 2056 "AppWindow.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp10_;
+#line 342 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2062 "AppWindow.c"
+}
+
+
+static gboolean page_window_real_key_release_event (GtkWidget* base, GdkEventKey* event) {
+ PageWindow * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GtkWidget* _tmp1_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Page* _tmp6_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 345 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE_WINDOW, PageWindow);
+#line 345 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gtk_window_get_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_entry_get_type ())) {
+#line 2082 "AppWindow.c"
+ GtkWidget* _tmp2_ = NULL;
+ GdkEventKey* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = gtk_window_get_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = event;
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_emit_by_name (_tmp2_, "key-release-event", _tmp3_, &_tmp4_);
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp4_;
+#line 2094 "AppWindow.c"
+ } else {
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = FALSE;
+#line 2098 "AppWindow.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_) {
+#line 347 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 347 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2106 "AppWindow.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = self->priv->current_page;
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp6_ != NULL) {
+#line 2112 "AppWindow.c"
+ Page* _tmp7_ = NULL;
+ GdkEventKey* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = self->priv->current_page;
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = event;
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = page_notify_app_key_released (_tmp7_, _tmp8_);
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp9_;
+#line 2124 "AppWindow.c"
+ } else {
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = FALSE;
+#line 2128 "AppWindow.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp5_) {
+#line 350 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 350 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2136 "AppWindow.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (GTK_WIDGET_CLASS (page_window_parent_class)->key_release_event != NULL) {
+#line 2140 "AppWindow.c"
+ GdkEventKey* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 352 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = event;
+#line 352 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = GTK_WIDGET_CLASS (page_window_parent_class)->key_release_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), _tmp11_);
+#line 352 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp12_;
+#line 2149 "AppWindow.c"
+ } else {
+#line 352 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = FALSE;
+#line 2153 "AppWindow.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp10_;
+#line 352 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2159 "AppWindow.c"
+}
+
+
+static gboolean page_window_real_focus_in_event (GtkWidget* base, GdkEventFocus* event) {
+ PageWindow * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ Page* _tmp1_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 355 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE_WINDOW, PageWindow);
+#line 355 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->current_page;
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 2177 "AppWindow.c"
+ Page* _tmp2_ = NULL;
+ GdkEventFocus* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->current_page;
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = event;
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page_notify_app_focus_in (_tmp2_, _tmp3_);
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp4_;
+#line 2189 "AppWindow.c"
+ } else {
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = FALSE;
+#line 2193 "AppWindow.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_) {
+#line 357 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 357 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2201 "AppWindow.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (GTK_WIDGET_CLASS (page_window_parent_class)->focus_in_event != NULL) {
+#line 2205 "AppWindow.c"
+ GdkEventFocus* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 359 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = event;
+#line 359 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = GTK_WIDGET_CLASS (page_window_parent_class)->focus_in_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), _tmp6_);
+#line 359 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp7_;
+#line 2214 "AppWindow.c"
+ } else {
+#line 359 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = FALSE;
+#line 2218 "AppWindow.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp5_;
+#line 359 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2224 "AppWindow.c"
+}
+
+
+static gboolean page_window_real_focus_out_event (GtkWidget* base, GdkEventFocus* event) {
+ PageWindow * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ Page* _tmp1_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 362 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE_WINDOW, PageWindow);
+#line 362 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->current_page;
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 2242 "AppWindow.c"
+ Page* _tmp2_ = NULL;
+ GdkEventFocus* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->current_page;
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = event;
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page_notify_app_focus_out (_tmp2_, _tmp3_);
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp4_;
+#line 2254 "AppWindow.c"
+ } else {
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = FALSE;
+#line 2258 "AppWindow.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_) {
+#line 364 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 364 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2266 "AppWindow.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (GTK_WIDGET_CLASS (page_window_parent_class)->focus_out_event != NULL) {
+#line 2270 "AppWindow.c"
+ GdkEventFocus* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 366 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = event;
+#line 366 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = GTK_WIDGET_CLASS (page_window_parent_class)->focus_out_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), _tmp6_);
+#line 366 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp7_;
+#line 2279 "AppWindow.c"
+ } else {
+#line 366 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = FALSE;
+#line 2283 "AppWindow.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp5_;
+#line 366 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2289 "AppWindow.c"
+}
+
+
+static gboolean page_window_real_configure_event (GtkWidget* base, GdkEventConfigure* event) {
+ PageWindow * self;
+ gboolean result = FALSE;
+ Page* _tmp0_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 369 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE_WINDOW, PageWindow);
+#line 369 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 370 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->current_page;
+#line 370 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_ != NULL) {
+#line 2306 "AppWindow.c"
+ Page* _tmp1_ = NULL;
+ GdkEventConfigure* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 371 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->current_page;
+#line 371 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = event;
+#line 371 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = page_notify_configure_event (_tmp1_, _tmp2_);
+#line 371 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp3_) {
+#line 372 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = TRUE;
+#line 372 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2322 "AppWindow.c"
+ }
+ }
+#line 375 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (GTK_WIDGET_CLASS (page_window_parent_class)->configure_event != NULL) {
+#line 2327 "AppWindow.c"
+ GdkEventConfigure* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 375 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = event;
+#line 375 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = GTK_WIDGET_CLASS (page_window_parent_class)->configure_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), _tmp5_);
+#line 375 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp6_;
+#line 2336 "AppWindow.c"
+ } else {
+#line 375 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = FALSE;
+#line 2340 "AppWindow.c"
+ }
+#line 375 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp4_;
+#line 375 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 2346 "AppWindow.c"
+}
+
+
+void page_window_set_busy_cursor (PageWindow* self) {
+ gint _tmp0_ = 0;
+ GdkWindow* _tmp1_ = NULL;
+ GdkCursor* _tmp2_ = NULL;
+ GdkCursor* _tmp3_ = NULL;
+#line 378 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE_WINDOW (self));
+#line 379 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->busy_counter;
+#line 379 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->busy_counter = _tmp0_ + 1;
+#line 379 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_ > 0) {
+#line 380 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 2365 "AppWindow.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 382 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = gdk_cursor_new (GDK_WATCH);
+#line 382 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 382 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gdk_window_set_cursor (_tmp1_, _tmp3_);
+#line 382 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 383 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ spin_event_loop ();
+#line 2379 "AppWindow.c"
+}
+
+
+void page_window_set_normal_cursor (PageWindow* self) {
+ gint _tmp0_ = 0;
+ GdkWindow* _tmp3_ = NULL;
+ GdkCursor* _tmp4_ = NULL;
+ GdkCursor* _tmp5_ = NULL;
+#line 386 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE_WINDOW (self));
+#line 387 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->priv->busy_counter;
+#line 387 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_ <= 0) {
+#line 388 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->busy_counter = 0;
+#line 389 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 2398 "AppWindow.c"
+ } else {
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 390 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->busy_counter;
+#line 390 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->busy_counter = _tmp1_ - 1;
+#line 390 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->priv->busy_counter;
+#line 390 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ > 0) {
+#line 391 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 2412 "AppWindow.c"
+ }
+ }
+#line 394 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 394 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = gdk_cursor_new (GDK_LEFT_PTR);
+#line 394 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 394 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gdk_window_set_cursor (_tmp3_, _tmp5_);
+#line 394 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 395 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ spin_event_loop ();
+#line 2427 "AppWindow.c"
+}
+
+
+static void page_window_class_init (PageWindowClass * klass) {
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_window_parent_class = g_type_class_peek_parent (klass);
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_type_class_add_private (klass, sizeof (PageWindowPrivate));
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((PageWindowClass *) klass)->switched_pages = page_window_real_switched_pages;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((PageWindowClass *) klass)->set_current_page = page_window_real_set_current_page;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((PageWindowClass *) klass)->clear_current_page = page_window_real_clear_current_page;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = page_window_real_key_press_event;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->key_release_event = page_window_real_key_release_event;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->focus_in_event = page_window_real_focus_in_event;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->focus_out_event = page_window_real_focus_out_event;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->configure_event = page_window_real_configure_event;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ G_OBJECT_CLASS (klass)->finalize = page_window_finalize;
+#line 2454 "AppWindow.c"
+}
+
+
+static void page_window_instance_init (PageWindow * self) {
+ GtkUIManager* _tmp0_ = NULL;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv = PAGE_WINDOW_GET_PRIVATE (self);
+#line 290 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_ui_manager_new ();
+#line 290 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->ui = _tmp0_;
+#line 292 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->current_page = NULL;
+#line 293 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->busy_counter = 0;
+#line 2470 "AppWindow.c"
+}
+
+
+static void page_window_finalize (GObject* obj) {
+ PageWindow * self;
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PAGE_WINDOW, PageWindow);
+#line 290 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->ui);
+#line 292 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->current_page);
+#line 289 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ G_OBJECT_CLASS (page_window_parent_class)->finalize (obj);
+#line 2484 "AppWindow.c"
+}
+
+
+GType page_window_get_type (void) {
+ static volatile gsize page_window_type_id__volatile = 0;
+ if (g_once_init_enter (&page_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PageWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) page_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PageWindow), 0, (GInstanceInitFunc) page_window_instance_init, NULL };
+ GType page_window_type_id;
+ page_window_type_id = g_type_register_static (gtk_window_get_type (), "PageWindow", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&page_window_type_id__volatile, page_window_type_id);
+ }
+ return page_window_type_id__volatile;
+}
+
+
+static void _app_window_on_command_manager_altered_command_manager_altered (CommandManager* _sender, gboolean can_undo, gboolean can_redo, gpointer self) {
+#line 447 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_command_manager_altered ((AppWindow*) self);
+#line 2503 "AppWindow.c"
+}
+
+
+AppWindow* app_window_construct (GType object_type) {
+ AppWindow * self = NULL;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Dimensions _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ CommandManager* _tmp15_ = NULL;
+ CommandManager* _tmp16_ = NULL;
+ CommandManager* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ GtkActionGroup** _tmp19_ = NULL;
+ GtkActionGroup** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ GtkUIManager* _tmp29_ = NULL;
+ GtkUIManager* _tmp30_ = NULL;
+ GtkAccelGroup* _tmp31_ = NULL;
+ GtkCssProvider* provider = NULL;
+ GtkCssProvider* _tmp32_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 424 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = (AppWindow*) page_window_construct (object_type);
+#line 426 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_instance;
+#line 426 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_assert (_tmp0_ == NULL, "instance == null");
+#line 427 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _g_object_ref0 (self);
+#line 427 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (app_window_instance);
+#line 427 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_instance = _tmp1_;
+#line 429 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), RESOURCES_APP_TITLE);
+#line 430 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_default_icon_name ("shotwell");
+#line 433 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (self, TYPE_LIBRARY_WINDOW)) {
+#line 2547 "AppWindow.c"
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ Dimensions _tmp5_ = {0};
+#line 434 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 434 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 434 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ configuration_facade_get_library_window_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp4_, &_tmp5_);
+#line 434 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->maximized = _tmp4_;
+#line 434 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->dimensions = _tmp5_;
+#line 434 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2564 "AppWindow.c"
+ } else {
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ Dimensions _tmp9_ = {0};
+#line 436 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (self, TYPE_DIRECT_WINDOW), "this is DirectWindow");
+#line 437 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 437 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 437 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ configuration_facade_get_direct_window_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp8_, &_tmp9_);
+#line 437 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->maximized = _tmp8_;
+#line 437 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->dimensions = _tmp9_;
+#line 437 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2584 "AppWindow.c"
+ }
+#line 440 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = self->dimensions;
+#line 440 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = _tmp10_.width;
+#line 440 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = self->dimensions;
+#line 440 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = _tmp12_.height;
+#line 440 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_default_size (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp11_, _tmp13_);
+#line 442 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = self->maximized;
+#line 442 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp14_) {
+#line 443 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_maximize (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 2602 "AppWindow.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = app_window_command_manager;
+#line 445 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_assert (_tmp15_ == NULL, "command_manager == null");
+#line 446 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = command_manager_new (COMMAND_MANAGER_DEFAULT_DEPTH);
+#line 446 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _command_manager_unref0 (app_window_command_manager);
+#line 446 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_command_manager = _tmp16_;
+#line 447 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = app_window_command_manager;
+#line 447 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_connect_object (_tmp17_, "altered", (GCallback) _app_window_on_command_manager_altered_command_manager_altered, self, 0);
+#line 454 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp19_ = app_window_create_common_action_groups (self, &_tmp18_);
+#line 454 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->common_action_groups = (_vala_array_free (self->common_action_groups, self->common_action_groups_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 454 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->common_action_groups = _tmp19_;
+#line 454 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->common_action_groups_length1 = _tmp18_;
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20_ = self->common_action_groups;
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20__length1 = self->common_action_groups_length1;
+#line 2630 "AppWindow.c"
+ {
+ GtkActionGroup** group_collection = NULL;
+ gint group_collection_length1 = 0;
+ gint _group_collection_size_ = 0;
+ gint group_it = 0;
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ group_collection = _tmp20_;
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ group_collection_length1 = _tmp20__length1;
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ for (group_it = 0; group_it < _tmp20__length1; group_it = group_it + 1) {
+#line 2642 "AppWindow.c"
+ GtkActionGroup* _tmp21_ = NULL;
+ GtkActionGroup* group = NULL;
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp21_ = _g_object_ref0 (group_collection[group_it]);
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ group = _tmp21_;
+#line 2649 "AppWindow.c"
+ {
+ GtkUIManager* _tmp22_ = NULL;
+ GtkActionGroup* _tmp23_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 456 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp23_ = group;
+#line 456 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_ui_manager_insert_action_group (_tmp22_, _tmp23_, 0);
+#line 455 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (group);
+#line 2661 "AppWindow.c"
+ }
+ }
+ }
+ {
+ GtkUIManager* _tmp24_ = NULL;
+ GtkActionGroup** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_ = self->common_action_groups;
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25__length1 = self->common_action_groups_length1;
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp26_ = build_dummy_ui_string (_tmp25_, _tmp25__length1);
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp27_ = _tmp26_;
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_ui_manager_add_ui_from_string (_tmp24_, _tmp27_, (gssize) -1, &_inner_error_);
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp27_);
+#line 459 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2687 "AppWindow.c"
+ goto __catch212_g_error;
+ }
+ }
+ goto __finally212;
+ __catch212_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp28_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ err = _inner_error_;
+#line 458 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 461 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_ = err->message;
+#line 461 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_error ("AppWindow.vala:461: Unable to add AppWindow UI: %s", _tmp28_);
+#line 458 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (err);
+#line 2706 "AppWindow.c"
+ }
+ __finally212:
+#line 458 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 458 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 458 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 458 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return NULL;
+#line 2717 "AppWindow.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp29_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 464 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_ui_manager_ensure_update (_tmp29_);
+#line 465 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 465 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_ = gtk_ui_manager_get_accel_group (_tmp30_);
+#line 465 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_add_accel_group (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp31_);
+#line 467 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp32_ = gtk_css_provider_new ();
+#line 467 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ provider = _tmp32_;
+#line 2733 "AppWindow.c"
+ {
+ GdkScreen* _tmp33_ = NULL;
+#line 469 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_css_provider_load_from_data (provider, RESOURCES_CUSTOM_CSS, (gssize) -1, &_inner_error_);
+#line 469 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2740 "AppWindow.c"
+ goto __catch213_g_error;
+ }
+#line 470 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp33_ = gdk_screen_get_default ();
+#line 470 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_style_context_add_provider_for_screen (_tmp33_, G_TYPE_CHECK_INSTANCE_CAST (provider, GTK_TYPE_STYLE_PROVIDER, GtkStyleProvider), (guint) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+#line 2747 "AppWindow.c"
+ }
+ goto __finally213;
+ __catch213_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ err = _inner_error_;
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 472 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_ = err;
+#line 472 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp35_ = _tmp34_->message;
+#line 472 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_debug ("AppWindow.vala:472: Unable to load custom CSS: %s", _tmp35_);
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (err);
+#line 2767 "AppWindow.c"
+ }
+ __finally213:
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (provider);
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 468 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return NULL;
+#line 2780 "AppWindow.c"
+ }
+#line 424 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (provider);
+#line 424 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return self;
+#line 2786 "AppWindow.c"
+}
+
+
+static void _app_window_on_quit_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_quit ((AppWindow*) self);
+#line 2793 "AppWindow.c"
+}
+
+
+static void _vala_array_add159 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2804 "AppWindow.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2808 "AppWindow.c"
+}
+
+
+static void _app_window_on_about_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_about ((AppWindow*) self);
+#line 2815 "AppWindow.c"
+}
+
+
+static void _vala_array_add160 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2826 "AppWindow.c"
+ }
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2830 "AppWindow.c"
+}
+
+
+static void _app_window_on_fullscreen_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_fullscreen ((AppWindow*) self);
+#line 2837 "AppWindow.c"
+}
+
+
+static void _vala_array_add161 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2848 "AppWindow.c"
+ }
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2852 "AppWindow.c"
+}
+
+
+static void _app_window_on_help_contents_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_help_contents ((AppWindow*) self);
+#line 2859 "AppWindow.c"
+}
+
+
+static void _vala_array_add162 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2870 "AppWindow.c"
+ }
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2874 "AppWindow.c"
+}
+
+
+static void _app_window_on_help_faq_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_help_faq ((AppWindow*) self);
+#line 2881 "AppWindow.c"
+}
+
+
+static void _vala_array_add163 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2892 "AppWindow.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2896 "AppWindow.c"
+}
+
+
+static void _app_window_on_help_report_problem_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_help_report_problem ((AppWindow*) self);
+#line 2903 "AppWindow.c"
+}
+
+
+static void _vala_array_add164 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2914 "AppWindow.c"
+ }
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2918 "AppWindow.c"
+}
+
+
+static void _app_window_on_undo_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_undo ((AppWindow*) self);
+#line 2925 "AppWindow.c"
+}
+
+
+static void _vala_array_add165 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2936 "AppWindow.c"
+ }
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2940 "AppWindow.c"
+}
+
+
+static void _app_window_on_redo_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_redo ((AppWindow*) self);
+#line 2947 "AppWindow.c"
+}
+
+
+static void _vala_array_add166 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2958 "AppWindow.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2962 "AppWindow.c"
+}
+
+
+static void _app_window_on_jump_to_file_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_jump_to_file ((AppWindow*) self);
+#line 2969 "AppWindow.c"
+}
+
+
+static void _vala_array_add167 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2980 "AppWindow.c"
+ }
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2984 "AppWindow.c"
+}
+
+
+static void _app_window_on_select_all_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_select_all ((AppWindow*) self);
+#line 2991 "AppWindow.c"
+}
+
+
+static void _vala_array_add168 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 3002 "AppWindow.c"
+ }
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3006 "AppWindow.c"
+}
+
+
+static void _app_window_on_select_none_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_select_none ((AppWindow*) self);
+#line 3013 "AppWindow.c"
+}
+
+
+static void _vala_array_add169 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 3024 "AppWindow.c"
+ }
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3028 "AppWindow.c"
+}
+
+
+static GtkActionEntry* app_window_create_common_actions (AppWindow* self, int* result_length1) {
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ GtkActionEntry* _tmp0_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry quit = {0};
+ GtkActionEntry _tmp1_ = {0};
+ GtkActionEntry* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ GtkActionEntry _tmp3_ = {0};
+ GtkActionEntry about = {0};
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GtkActionEntry _tmp6_ = {0};
+ GtkActionEntry fullscreen = {0};
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ GtkActionEntry _tmp9_ = {0};
+ GtkActionEntry help_contents = {0};
+ GtkActionEntry _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkActionEntry _tmp13_ = {0};
+ GtkActionEntry help_faq = {0};
+ GtkActionEntry _tmp14_ = {0};
+ const gchar* _tmp15_ = NULL;
+ GtkActionEntry* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ GtkActionEntry _tmp17_ = {0};
+ GtkActionEntry help_report_problem = {0};
+ GtkActionEntry _tmp18_ = {0};
+ const gchar* _tmp19_ = NULL;
+ GtkActionEntry* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ GtkActionEntry _tmp21_ = {0};
+ GtkActionEntry undo = {0};
+ GtkActionEntry _tmp22_ = {0};
+ GtkActionEntry* _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ GtkActionEntry _tmp24_ = {0};
+ GtkActionEntry redo = {0};
+ GtkActionEntry _tmp25_ = {0};
+ GtkActionEntry* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ GtkActionEntry _tmp27_ = {0};
+ GtkActionEntry jump_to_file = {0};
+ GtkActionEntry _tmp28_ = {0};
+ GtkActionEntry* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ GtkActionEntry _tmp30_ = {0};
+ GtkActionEntry select_all = {0};
+ GtkActionEntry _tmp31_ = {0};
+ GtkActionEntry* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ GtkActionEntry _tmp33_ = {0};
+ GtkActionEntry select_none = {0};
+ GtkActionEntry _tmp34_ = {0};
+ GtkActionEntry* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ GtkActionEntry _tmp36_ = {0};
+ GtkActionEntry* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+#line 476 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_APP_WINDOW (self), NULL);
+#line 477 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = g_new0 (GtkActionEntry, 0);
+#line 477 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ actions = _tmp0_;
+#line 477 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ actions_length1 = 0;
+#line 477 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _actions_size_ = actions_length1;
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.name = "CommonQuit";
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.stock_id = RESOURCES_QUIT_LABEL;
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.label = TRANSLATABLE;
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.accelerator = "<Ctrl>Q";
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.tooltip = TRANSLATABLE;
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_.callback = (GCallback) _app_window_on_quit_gtk_action_callback;
+#line 479 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ quit = _tmp1_;
+#line 481 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ quit.label = RESOURCES_QUIT_LABEL;
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = actions;
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2__length1 = actions_length1;
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = quit;
+#line 482 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add159 (&actions, &actions_length1, &_actions_size_, &_tmp3_);
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_.name = "CommonAbout";
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_.stock_id = RESOURCES_ABOUT_LABEL;
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_.label = TRANSLATABLE;
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_.accelerator = NULL;
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_.tooltip = TRANSLATABLE;
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_.callback = (GCallback) _app_window_on_about_gtk_action_callback;
+#line 484 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ about = _tmp4_;
+#line 486 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ about.label = RESOURCES_ABOUT_LABEL;
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = actions;
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5__length1 = actions_length1;
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = about;
+#line 487 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add160 (&actions, &actions_length1, &_actions_size_, &_tmp6_);
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_.name = "CommonFullscreen";
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_.stock_id = RESOURCES_FULLSCREEN_LABEL;
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_.label = TRANSLATABLE;
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_.accelerator = "F11";
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_.tooltip = TRANSLATABLE;
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_.callback = (GCallback) _app_window_on_fullscreen_gtk_action_callback;
+#line 489 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen = _tmp7_;
+#line 491 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fullscreen.label = RESOURCES_FULLSCREEN_LABEL;
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = actions;
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8__length1 = actions_length1;
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = fullscreen;
+#line 492 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add161 (&actions, &actions_length1, &_actions_size_, &_tmp9_);
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_.name = "CommonHelpContents";
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_.stock_id = RESOURCES_HELP_LABEL;
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_.label = TRANSLATABLE;
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_.accelerator = "F1";
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_.tooltip = TRANSLATABLE;
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_.callback = (GCallback) _app_window_on_help_contents_gtk_action_callback;
+#line 494 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ help_contents = _tmp10_;
+#line 496 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = _ ("_Contents");
+#line 496 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ help_contents.label = _tmp11_;
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = actions;
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12__length1 = actions_length1;
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = help_contents;
+#line 497 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add162 (&actions, &actions_length1, &_actions_size_, &_tmp13_);
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_.name = "CommonHelpFAQ";
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_.stock_id = NULL;
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_.label = TRANSLATABLE;
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_.accelerator = NULL;
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_.tooltip = TRANSLATABLE;
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_.callback = (GCallback) _app_window_on_help_faq_gtk_action_callback;
+#line 499 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ help_faq = _tmp14_;
+#line 501 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = _ ("_Frequently Asked Questions");
+#line 501 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ help_faq.label = _tmp15_;
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = actions;
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16__length1 = actions_length1;
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = help_faq;
+#line 502 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add163 (&actions, &actions_length1, &_actions_size_, &_tmp17_);
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_.name = "CommonHelpReportProblem";
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_.stock_id = NULL;
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_.label = TRANSLATABLE;
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_.accelerator = NULL;
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_.tooltip = TRANSLATABLE;
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_.callback = (GCallback) _app_window_on_help_report_problem_gtk_action_callback;
+#line 504 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ help_report_problem = _tmp18_;
+#line 506 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp19_ = _ ("_Report a Problem...");
+#line 506 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ help_report_problem.label = _tmp19_;
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20_ = actions;
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20__length1 = actions_length1;
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp21_ = help_report_problem;
+#line 507 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add164 (&actions, &actions_length1, &_actions_size_, &_tmp21_);
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_.name = "CommonUndo";
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_.stock_id = RESOURCES_UNDO_MENU;
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_.label = TRANSLATABLE;
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_.accelerator = "<Ctrl>Z";
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_.tooltip = TRANSLATABLE;
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_.callback = (GCallback) _app_window_on_undo_gtk_action_callback;
+#line 509 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ undo = _tmp22_;
+#line 511 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ undo.label = RESOURCES_UNDO_MENU;
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp23_ = actions;
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp23__length1 = actions_length1;
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp24_ = undo;
+#line 512 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add165 (&actions, &actions_length1, &_actions_size_, &_tmp24_);
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_.name = "CommonRedo";
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_.stock_id = RESOURCES_REDO_MENU;
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_.label = TRANSLATABLE;
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_.accelerator = "<Ctrl><Shift>Z";
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_.tooltip = TRANSLATABLE;
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_.callback = (GCallback) _app_window_on_redo_gtk_action_callback;
+#line 514 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ redo = _tmp25_;
+#line 516 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ redo.label = RESOURCES_REDO_MENU;
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp26_ = actions;
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp26__length1 = actions_length1;
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp27_ = redo;
+#line 517 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add166 (&actions, &actions_length1, &_actions_size_, &_tmp27_);
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_.name = "CommonJumpToFile";
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_.stock_id = RESOURCES_JUMP_TO_FILE_MENU;
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_.label = TRANSLATABLE;
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_.accelerator = "<Ctrl><Shift>M";
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_.tooltip = TRANSLATABLE;
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_.callback = (GCallback) _app_window_on_jump_to_file_gtk_action_callback;
+#line 519 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ jump_to_file = _tmp28_;
+#line 521 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ jump_to_file.label = RESOURCES_JUMP_TO_FILE_MENU;
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp29_ = actions;
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp29__length1 = actions_length1;
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp30_ = jump_to_file;
+#line 522 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add167 (&actions, &actions_length1, &_actions_size_, &_tmp30_);
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_.name = "CommonSelectAll";
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_.stock_id = RESOURCES_SELECT_ALL_MENU;
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_.label = TRANSLATABLE;
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_.accelerator = "<Ctrl>A";
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_.tooltip = TRANSLATABLE;
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_.callback = (GCallback) _app_window_on_select_all_gtk_action_callback;
+#line 524 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ select_all = _tmp31_;
+#line 526 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ select_all.label = RESOURCES_SELECT_ALL_MENU;
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp32_ = actions;
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp32__length1 = actions_length1;
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp33_ = select_all;
+#line 527 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add168 (&actions, &actions_length1, &_actions_size_, &_tmp33_);
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_.name = "CommonSelectNone";
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_.stock_id = NULL;
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_.label = NULL;
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_.accelerator = "<Ctrl><Shift>A";
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_.tooltip = TRANSLATABLE;
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_.callback = (GCallback) _app_window_on_select_none_gtk_action_callback;
+#line 529 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ select_none = _tmp34_;
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp35_ = actions;
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp35__length1 = actions_length1;
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp36_ = select_none;
+#line 531 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add169 (&actions, &actions_length1, &_actions_size_, &_tmp36_);
+#line 533 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp37_ = actions;
+#line 533 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp37__length1 = actions_length1;
+#line 533 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (result_length1) {
+#line 533 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *result_length1 = _tmp37__length1;
+#line 3384 "AppWindow.c"
+ }
+#line 533 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp37_;
+#line 533 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 3390 "AppWindow.c"
+}
+
+
+static void app_window_real_on_fullscreen (AppWindow* self) {
+#line 536 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("Type `%s' does not implement abstract method `app_window_on_fullscreen'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 536 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 3399 "AppWindow.c"
+}
+
+
+void app_window_on_fullscreen (AppWindow* self) {
+#line 536 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 536 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ APP_WINDOW_GET_CLASS (self)->on_fullscreen (self);
+#line 3408 "AppWindow.c"
+}
+
+
+gboolean app_window_has_instance (void) {
+ gboolean result = FALSE;
+ AppWindow* _tmp0_ = NULL;
+#line 539 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_instance;
+#line 539 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp0_ != NULL;
+#line 539 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 3421 "AppWindow.c"
+}
+
+
+AppWindow* app_window_get_instance (void) {
+ AppWindow* result = NULL;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+#line 543 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_instance;
+#line 543 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 543 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp1_;
+#line 543 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 3437 "AppWindow.c"
+}
+
+
+FullscreenWindow* app_window_get_fullscreen (void) {
+ FullscreenWindow* result = NULL;
+ FullscreenWindow* _tmp0_ = NULL;
+ FullscreenWindow* _tmp1_ = NULL;
+#line 547 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_fullscreen_window;
+#line 547 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 547 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp1_;
+#line 547 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 3453 "AppWindow.c"
+}
+
+
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user) {
+ GtkBuilder* result = NULL;
+ GtkBuilder* builder = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ void* _tmp12_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (glade_filename != NULL, NULL);
+#line 551 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_builder_new ();
+#line 551 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ builder = _tmp0_;
+#line 3469 "AppWindow.c"
+ {
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = app_dirs_get_resources_dir ();
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = g_file_get_child (_tmp2_, "ui");
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = glade_filename;
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = g_file_get_child (_tmp4_, _tmp5_);
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = g_file_get_path (_tmp7_);
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_builder_add_from_file (builder, _tmp9_, &_inner_error_);
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp9_);
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 553 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3510 "AppWindow.c"
+ goto __catch214_g_error;
+ }
+ }
+ goto __finally214;
+ __catch214_g_error:
+ {
+ GError* _error_ = NULL;
+ GError* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _error_ = _inner_error_;
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 556 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _error_;
+#line 556 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = _tmp10_->message;
+#line 556 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_warning ("AppWindow.vala:556: Unable to create Gtk.Builder: %s\n", _tmp11_);
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (_error_);
+#line 3532 "AppWindow.c"
+ }
+ __finally214:
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (builder);
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 552 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return NULL;
+#line 3545 "AppWindow.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = user;
+#line 559 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_builder_connect_signals (builder, _tmp12_);
+#line 561 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = builder;
+#line 561 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 3555 "AppWindow.c"
+}
+
+
+void app_window_error_message (const gchar* message, GtkWindow* parent) {
+ const gchar* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (message != NULL);
+#line 564 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((parent == NULL) || GTK_IS_WINDOW (parent));
+#line 565 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = message;
+#line 565 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = parent;
+#line 565 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_error_message_with_title (RESOURCES_APP_TITLE, _tmp0_, _tmp1_, TRUE);
+#line 3572 "AppWindow.c"
+}
+
+
+void app_window_error_message_with_title (const gchar* title, const gchar* message, GtkWindow* parent, gboolean should_escape) {
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GtkMessageDialog* _tmp10_ = NULL;
+ GtkMessageDialog* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 568 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (title != NULL);
+#line 568 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (message != NULL);
+#line 568 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((parent == NULL) || GTK_IS_WINDOW (parent));
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = parent;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 3602 "AppWindow.c"
+ GtkWindow* _tmp2_ = NULL;
+ GtkWindow* _tmp3_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = parent;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp3_;
+#line 3613 "AppWindow.c"
+ } else {
+ AppWindow* _tmp4_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow);
+#line 3622 "AppWindow.c"
+ }
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = title;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = message;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = should_escape;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = build_alert_body_text (_tmp5_, _tmp6_, _tmp7_);
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new_with_markup (_tmp0_, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", _tmp9_);
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp10_);
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = _tmp10_;
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp9_);
+#line 572 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ dialog = _tmp11_;
+#line 576 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = title;
+#line 576 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = message;
+#line 576 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = should_escape;
+#line 576 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = build_alert_body_text (_tmp12_, _tmp13_, _tmp14_);
+#line 576 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = _tmp15_;
+#line 576 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_message_dialog_set_markup (dialog, _tmp16_);
+#line 576 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp16_);
+#line 578 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_set (dialog, "use-markup", TRUE, NULL);
+#line 579 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 580 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 568 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (dialog);
+#line 568 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3668 "AppWindow.c"
+}
+
+
+gboolean app_window_negate_affirm_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* title, GtkWindow* parent) {
+ gboolean result = FALSE;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GtkMessageDialog* _tmp9_ = NULL;
+ GtkMessageDialog* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gboolean response = FALSE;
+ gint _tmp17_ = 0;
+#line 583 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (message != NULL, FALSE);
+#line 583 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (negative != NULL, FALSE);
+#line 583 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (affirmative != NULL, FALSE);
+#line 583 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail ((parent == NULL) || GTK_IS_WINDOW (parent), FALSE);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = parent;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 3703 "AppWindow.c"
+ GtkWindow* _tmp2_ = NULL;
+ GtkWindow* _tmp3_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = parent;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp3_;
+#line 3714 "AppWindow.c"
+ } else {
+ AppWindow* _tmp4_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow);
+#line 3723 "AppWindow.c"
+ }
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = title;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = message;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = build_alert_body_text (_tmp5_, _tmp6_, TRUE);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = (GtkMessageDialog*) gtk_message_dialog_new (_tmp0_, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", _tmp8_);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp9_);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp8_);
+#line 585 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ dialog = _tmp10_;
+#line 588 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = title;
+#line 588 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = message;
+#line 588 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = build_alert_body_text (_tmp11_, _tmp12_, TRUE);
+#line 588 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 588 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_message_dialog_set_markup (dialog, _tmp14_);
+#line 588 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp14_);
+#line 589 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = negative;
+#line 589 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = affirmative;
+#line 589 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp15_, GTK_RESPONSE_NO, _tmp16_, GTK_RESPONSE_YES, NULL);
+#line 590 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_urgency_hint (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_window_get_type (), GtkWindow), TRUE);
+#line 592 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 592 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ response = _tmp17_ == ((gint) GTK_RESPONSE_YES);
+#line 594 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 596 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = response;
+#line 596 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (dialog);
+#line 596 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 596 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 3777 "AppWindow.c"
+}
+
+
+GtkResponseType app_window_negate_affirm_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* title, GtkWindow* parent) {
+ GtkResponseType result = 0;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GtkMessageDialog* _tmp9_ = NULL;
+ GtkMessageDialog* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gint response = 0;
+ gint _tmp18_ = 0;
+#line 599 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (message != NULL, 0);
+#line 599 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (negative != NULL, 0);
+#line 599 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (affirmative != NULL, 0);
+#line 599 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail ((parent == NULL) || GTK_IS_WINDOW (parent), 0);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = parent;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 3813 "AppWindow.c"
+ GtkWindow* _tmp2_ = NULL;
+ GtkWindow* _tmp3_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = parent;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp3_;
+#line 3824 "AppWindow.c"
+ } else {
+ AppWindow* _tmp4_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow);
+#line 3833 "AppWindow.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = title;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = message;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = build_alert_body_text (_tmp5_, _tmp6_, TRUE);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = (GtkMessageDialog*) gtk_message_dialog_new_with_markup (_tmp0_, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", _tmp8_);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp9_);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp8_);
+#line 601 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ dialog = _tmp10_;
+#line 604 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = negative;
+#line 604 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = affirmative;
+#line 604 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = _ ("_Cancel");
+#line 604 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp11_, GTK_RESPONSE_NO, _tmp12_, GTK_RESPONSE_YES, _tmp13_, GTK_RESPONSE_CANCEL, NULL);
+#line 608 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = title;
+#line 608 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = message;
+#line 608 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = build_alert_body_text (_tmp14_, _tmp15_, TRUE);
+#line 608 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = _tmp16_;
+#line 608 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_message_dialog_set_markup (dialog, _tmp17_);
+#line 608 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp17_);
+#line 609 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_set (dialog, "use-markup", TRUE, NULL);
+#line 611 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 611 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ response = _tmp18_;
+#line 613 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 615 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = (GtkResponseType) response;
+#line 615 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (dialog);
+#line 615 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 615 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 3889 "AppWindow.c"
+}
+
+
+GtkResponseType app_window_affirm_cancel_question (const gchar* message, const gchar* affirmative, const gchar* title, GtkWindow* parent) {
+ GtkResponseType result = 0;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp5_ = NULL;
+ GtkMessageDialog* _tmp6_ = NULL;
+ GtkMessageDialog* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkMessageDialog* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GtkMessageDialog* _tmp13_ = NULL;
+ GtkMessageDialog* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gint response = 0;
+ GtkMessageDialog* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ GtkMessageDialog* _tmp19_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (message != NULL, 0);
+#line 618 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (affirmative != NULL, 0);
+#line 618 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail ((parent == NULL) || GTK_IS_WINDOW (parent), 0);
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = parent;
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 3923 "AppWindow.c"
+ GtkWindow* _tmp2_ = NULL;
+ GtkWindow* _tmp3_ = NULL;
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = parent;
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp3_;
+#line 3934 "AppWindow.c"
+ } else {
+ AppWindow* _tmp4_ = NULL;
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow);
+#line 3943 "AppWindow.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = message;
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = (GtkMessageDialog*) gtk_message_dialog_new_with_markup (_tmp0_, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", _tmp5_);
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp6_);
+#line 620 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ dialog = _tmp6_;
+#line 623 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = dialog;
+#line 623 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = message;
+#line 623 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_message_dialog_set_markup (_tmp7_, _tmp8_);
+#line 624 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = dialog;
+#line 624 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_set (_tmp9_, "use-markup", TRUE, NULL);
+#line 625 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = title;
+#line 625 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp11_ != NULL) {
+#line 3967 "AppWindow.c"
+ const gchar* _tmp12_ = NULL;
+#line 625 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = title;
+#line 625 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp12_;
+#line 3973 "AppWindow.c"
+ } else {
+#line 625 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = RESOURCES_APP_TITLE;
+#line 3977 "AppWindow.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = dialog;
+#line 625 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_window_get_type (), GtkWindow), _tmp10_);
+#line 626 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = dialog;
+#line 626 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = affirmative;
+#line 626 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = _ ("_Cancel");
+#line 626 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_dialog_get_type (), GtkDialog), _tmp15_, GTK_RESPONSE_YES, _tmp16_, GTK_RESPONSE_CANCEL, NULL);
+#line 629 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = dialog;
+#line 629 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_dialog_get_type (), GtkDialog));
+#line 629 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ response = _tmp18_;
+#line 631 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp19_ = dialog;
+#line 631 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget));
+#line 633 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = (GtkResponseType) response;
+#line 633 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (dialog);
+#line 633 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 633 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 4009 "AppWindow.c"
+}
+
+
+GtkResponseType app_window_negate_affirm_all_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* affirmative_all, const gchar* title, GtkWindow* parent) {
+ GtkResponseType result = 0;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp5_ = NULL;
+ GtkMessageDialog* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkMessageDialog* _tmp10_ = NULL;
+ GtkMessageDialog* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gint response = 0;
+ GtkMessageDialog* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ GtkMessageDialog* _tmp18_ = NULL;
+#line 636 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (message != NULL, 0);
+#line 636 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (negative != NULL, 0);
+#line 636 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (affirmative != NULL, 0);
+#line 636 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (affirmative_all != NULL, 0);
+#line 636 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail ((parent == NULL) || GTK_IS_WINDOW (parent), 0);
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = parent;
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 4046 "AppWindow.c"
+ GtkWindow* _tmp2_ = NULL;
+ GtkWindow* _tmp3_ = NULL;
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = parent;
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _tmp3_;
+#line 4057 "AppWindow.c"
+ } else {
+ AppWindow* _tmp4_ = NULL;
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow);
+#line 4066 "AppWindow.c"
+ }
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = message;
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = (GtkMessageDialog*) gtk_message_dialog_new (_tmp0_, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", _tmp5_);
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp6_);
+#line 639 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ dialog = _tmp6_;
+#line 641 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = title;
+#line 641 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp8_ != NULL) {
+#line 4080 "AppWindow.c"
+ const gchar* _tmp9_ = NULL;
+#line 641 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = title;
+#line 641 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _tmp9_;
+#line 4086 "AppWindow.c"
+ } else {
+#line 641 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = RESOURCES_APP_TITLE;
+#line 4090 "AppWindow.c"
+ }
+#line 641 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = dialog;
+#line 641 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_window_get_type (), GtkWindow), _tmp7_);
+#line 642 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = dialog;
+#line 642 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = negative;
+#line 642 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = affirmative;
+#line 642 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = affirmative_all;
+#line 642 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = _ ("_Cancel");
+#line 642 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_dialog_get_type (), GtkDialog), _tmp12_, GTK_RESPONSE_NO, _tmp13_, GTK_RESPONSE_YES, _tmp14_, GTK_RESPONSE_APPLY, _tmp15_, GTK_RESPONSE_CANCEL, NULL);
+#line 645 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = dialog;
+#line 645 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_dialog_get_type (), GtkDialog));
+#line 645 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ response = _tmp17_;
+#line 647 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_ = dialog;
+#line 647 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget));
+#line 649 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = (GtkResponseType) response;
+#line 649 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (dialog);
+#line 649 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 649 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 4126 "AppWindow.c"
+}
+
+
+void app_window_database_error (GError* err) {
+ const gchar* _tmp0_ = NULL;
+ GError* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 653 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _ ("A fatal error occurred when accessing Shotwell's library. Shotwell ca" \
+"nnot continue.\n" \
+"\n" \
+"%s");
+#line 653 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = err;
+#line 653 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _tmp1_->message;
+#line 653 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = g_strdup_printf (_tmp0_, _tmp2_);
+#line 653 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 653 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_panic (_tmp4_);
+#line 653 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp4_);
+#line 4150 "AppWindow.c"
+}
+
+
+void app_window_panic (const gchar* msg) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ Application* _tmp2_ = NULL;
+ Application* _tmp3_ = NULL;
+#line 657 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (msg != NULL);
+#line 658 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = msg;
+#line 658 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("AppWindow.vala:658: %s", _tmp0_);
+#line 659 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = msg;
+#line 659 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_error_message (_tmp1_, NULL);
+#line 661 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = application_get_instance ();
+#line 661 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 661 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ application_panic (_tmp3_);
+#line 661 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _application_unref0 (_tmp3_);
+#line 4177 "AppWindow.c"
+}
+
+
+static gchar* app_window_real_get_app_role (AppWindow* self) {
+#line 664 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("Type `%s' does not implement abstract method `app_window_get_app_role'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 664 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return NULL;
+#line 4186 "AppWindow.c"
+}
+
+
+gchar* app_window_get_app_role (AppWindow* self) {
+#line 664 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_APP_WINDOW (self), NULL);
+#line 664 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return APP_WINDOW_GET_CLASS (self)->get_app_role (self);
+#line 4195 "AppWindow.c"
+}
+
+
+void app_window_on_about (AppWindow* self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_get_app_role (self);
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _ ("Visit the Shotwell web site");
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = resources_get_icon (RESOURCES_ICON_ABOUT_LOGO, -1);
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _ ("translator-credits");
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_show_about_dialog (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), "version", RESOURCES_APP_VERSION, "comments", _tmp1_, "copyright", RESOURCES_COPYRIGHT, "website", RESOURCES_HOME_URL, "license", RESOURCES_LICENSE, "website-label", _tmp2_, "authors", RESOURCES_AUTHORS, "logo", _tmp4_, "translator-credits", _tmp5_, NULL, NULL);
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 667 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp1_);
+#line 4226 "AppWindow.c"
+}
+
+
+static void app_window_on_help_contents (AppWindow* self) {
+ GError * _inner_error_ = NULL;
+#line 681 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 4234 "AppWindow.c"
+ {
+ GdkScreen* _tmp0_ = NULL;
+#line 683 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_window_get_screen (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 683 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ resources_launch_help (_tmp0_, NULL, &_inner_error_);
+#line 683 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4243 "AppWindow.c"
+ goto __catch215_g_error;
+ }
+ }
+ goto __finally215;
+ __catch215_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp1_ = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 682 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ err = _inner_error_;
+#line 682 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 685 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _ ("Unable to display help: %s");
+#line 685 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = err;
+#line 685 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_->message;
+#line 685 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = g_strdup_printf (_tmp1_, _tmp3_);
+#line 685 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 685 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_error_message (_tmp5_, NULL);
+#line 685 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp5_);
+#line 682 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (err);
+#line 4276 "AppWindow.c"
+ }
+ __finally215:
+#line 682 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 682 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 682 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 682 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4287 "AppWindow.c"
+ }
+}
+
+
+static void app_window_on_help_report_problem (AppWindow* self) {
+ GError * _inner_error_ = NULL;
+#line 689 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 4296 "AppWindow.c"
+ {
+#line 691 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_show_uri (self, RESOURCES_BUG_DB_URL, &_inner_error_);
+#line 691 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4302 "AppWindow.c"
+ goto __catch216_g_error;
+ }
+ }
+ goto __finally216;
+ __catch216_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp0_ = NULL;
+ GError* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 690 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ err = _inner_error_;
+#line 690 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 693 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _ ("Unable to navigate to bug database: %s");
+#line 693 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = err;
+#line 693 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _tmp1_->message;
+#line 693 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = g_strdup_printf (_tmp0_, _tmp2_);
+#line 693 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 693 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_error_message (_tmp4_, NULL);
+#line 693 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp4_);
+#line 690 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (err);
+#line 4335 "AppWindow.c"
+ }
+ __finally216:
+#line 690 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 690 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 690 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 690 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4346 "AppWindow.c"
+ }
+}
+
+
+static void app_window_on_help_faq (AppWindow* self) {
+ GError * _inner_error_ = NULL;
+#line 697 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 4355 "AppWindow.c"
+ {
+#line 699 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_show_uri (self, RESOURCES_FAQ_URL, &_inner_error_);
+#line 699 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4361 "AppWindow.c"
+ goto __catch217_g_error;
+ }
+ }
+ goto __finally217;
+ __catch217_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp0_ = NULL;
+ GError* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 698 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ err = _inner_error_;
+#line 698 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 701 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _ ("Unable to display FAQ: %s");
+#line 701 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = err;
+#line 701 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _tmp1_->message;
+#line 701 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = g_strdup_printf (_tmp0_, _tmp2_);
+#line 701 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 701 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_error_message (_tmp4_, NULL);
+#line 701 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp4_);
+#line 698 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (err);
+#line 4394 "AppWindow.c"
+ }
+ __finally217:
+#line 698 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 698 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 698 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 698 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4405 "AppWindow.c"
+ }
+}
+
+
+static void app_window_real_on_quit (AppWindow* self) {
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+#line 706 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = application_get_instance ();
+#line 706 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 706 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ application_exit (_tmp1_);
+#line 706 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _application_unref0 (_tmp1_);
+#line 4421 "AppWindow.c"
+}
+
+
+void app_window_on_quit (AppWindow* self) {
+#line 705 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 705 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ APP_WINDOW_GET_CLASS (self)->on_quit (self);
+#line 4430 "AppWindow.c"
+}
+
+
+void app_window_on_jump_to_file (AppWindow* self) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+ MediaSource* media = NULL;
+ Page* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 709 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = page_get_view (_tmp1_);
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = view_collection_get_selected_count (_tmp3_);
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_ != 1;
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 710 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp5_) {
+#line 711 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4475 "AppWindow.c"
+ }
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = page_get_view (_tmp7_);
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = view_collection_get_selected_at (_tmp9_, 0);
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = _tmp10_;
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = data_view_get_source (_tmp11_);
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, TYPE_MEDIA_SOURCE) ? ((MediaSource*) _tmp12_) : NULL;
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp13_ == NULL) {
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp12_);
+#line 4497 "AppWindow.c"
+ }
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp11_);
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp9_);
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 713 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ media = _tmp14_;
+#line 715 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = media;
+#line 715 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp15_ == NULL) {
+#line 716 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (media);
+#line 716 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4517 "AppWindow.c"
+ }
+ {
+ AppWindow* _tmp16_ = NULL;
+ AppWindow* _tmp17_ = NULL;
+ MediaSource* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = app_window_get_instance ();
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = _tmp16_;
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_ = media;
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp19_ = media_source_get_master_file (_tmp18_);
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20_ = _tmp19_;
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_show_file_uri (_tmp17_, _tmp20_, &_inner_error_);
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp20_);
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp17_);
+#line 719 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4543 "AppWindow.c"
+ goto __catch218_g_error;
+ }
+ }
+ goto __finally218;
+ __catch218_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ err = _inner_error_;
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _inner_error_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp21_ = err;
+#line 721 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_ = resources_jump_to_file_failed (_tmp21_);
+#line 721 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp23_ = _tmp22_;
+#line 721 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_error_message (_tmp23_, NULL);
+#line 721 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp23_);
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_error_free0 (err);
+#line 4570 "AppWindow.c"
+ }
+ __finally218:
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (media);
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 718 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4583 "AppWindow.c"
+ }
+#line 709 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (media);
+#line 4587 "AppWindow.c"
+}
+
+
+static void app_window_real_destroy (GtkWidget* base) {
+ AppWindow * self;
+#line 725 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_APP_WINDOW, AppWindow);
+#line 726 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_quit (self);
+#line 4597 "AppWindow.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 4610 "AppWindow.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 4641 "AppWindow.c"
+ goto __catch219_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4650 "AppWindow.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 4666 "AppWindow.c"
+ goto __catch219_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4677 "AppWindow.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 4691 "AppWindow.c"
+ }
+ goto __finally219;
+ __catch219_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 4705 "AppWindow.c"
+ }
+ __finally219:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4716 "AppWindow.c"
+ }
+}
+
+
+void app_window_show_file_uri (AppWindow* self, GFile* file, GError** error) {
+ gchar* tmp = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 729 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 729 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 734 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = get_nautilus_install_location ();
+#line 734 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 734 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _tmp1_ != NULL;
+#line 734 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp1_);
+#line 734 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_) {
+#line 4741 "AppWindow.c"
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 735 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = file;
+#line 735 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = g_file_get_uri (_tmp3_);
+#line 735 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 735 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = string_replace (_tmp5_, "'", "\\\'");
+#line 735 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (tmp);
+#line 735 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ tmp = _tmp6_;
+#line 735 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp5_);
+#line 736 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = tmp;
+#line 736 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ show_file_in_nautilus (_tmp7_, &_inner_error_);
+#line 736 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 736 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_propagate_error (error, _inner_error_);
+#line 736 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (tmp);
+#line 736 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4773 "AppWindow.c"
+ }
+ } else {
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = file;
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = g_file_get_parent (_tmp8_);
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = g_file_get_uri (_tmp10_);
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = _tmp11_;
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = string_replace (_tmp12_, "'", "\\\'");
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (tmp);
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ tmp = _tmp13_;
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp12_);
+#line 738 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp10_);
+#line 739 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = tmp;
+#line 739 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_show_uri (self, _tmp14_, &_inner_error_);
+#line 739 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 739 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_propagate_error (error, _inner_error_);
+#line 739 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (tmp);
+#line 739 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4815 "AppWindow.c"
+ }
+ }
+#line 729 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (tmp);
+#line 4820 "AppWindow.c"
+}
+
+
+void app_window_show_uri (AppWindow* self, const gchar* url, GError** error) {
+ GdkWindow* _tmp0_ = NULL;
+ GdkScreen* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 743 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 743 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (url != NULL);
+#line 744 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 744 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gdk_window_get_screen (_tmp0_);
+#line 744 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = url;
+#line 744 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ sys_show_uri (_tmp1_, _tmp2_, &_inner_error_);
+#line 744 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 744 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_propagate_error (error, _inner_error_);
+#line 744 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 4847 "AppWindow.c"
+ }
+}
+
+
+static void _vala_array_add170 (GtkActionGroup*** array, int* length, int* size, GtkActionGroup* value) {
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if ((*length) == (*size)) {
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *array = g_renew (GtkActionGroup*, *array, (*size) + 1);
+#line 4859 "AppWindow.c"
+ }
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[(*length)++] = value;
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ (*array)[*length] = NULL;
+#line 4865 "AppWindow.c"
+}
+
+
+static GtkActionGroup** app_window_real_create_common_action_groups (AppWindow* self, int* result_length1) {
+ GtkActionGroup** result = NULL;
+ GtkActionGroup** groups = NULL;
+ GtkActionGroup** _tmp0_ = NULL;
+ gint groups_length1 = 0;
+ gint _groups_size_ = 0;
+ GtkActionGroup* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GtkActionEntry* _tmp3_ = NULL;
+ GtkActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkActionGroup** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GtkActionGroup* _tmp6_ = NULL;
+ GtkActionGroup* _tmp7_ = NULL;
+ GtkActionGroup** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 748 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = g_new0 (GtkActionGroup*, 0 + 1);
+#line 748 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ groups = _tmp0_;
+#line 748 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ groups_length1 = 0;
+#line 748 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _groups_size_ = groups_length1;
+#line 750 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->priv->common_action_group;
+#line 750 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = app_window_create_common_actions (self, &_tmp2_);
+#line 750 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 750 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4__length1 = _tmp2_;
+#line 750 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_group_add_actions (_tmp1_, _tmp4_, _tmp2_, self);
+#line 750 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = (g_free (_tmp4_), NULL);
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = groups;
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5__length1 = groups_length1;
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = self->priv->common_action_group;
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 751 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _vala_array_add170 (&groups, &groups_length1, &_groups_size_, _tmp7_);
+#line 753 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = groups;
+#line 753 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8__length1 = groups_length1;
+#line 753 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (result_length1) {
+#line 753 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *result_length1 = _tmp8__length1;
+#line 4924 "AppWindow.c"
+ }
+#line 753 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp8_;
+#line 753 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 4930 "AppWindow.c"
+}
+
+
+GtkActionGroup** app_window_create_common_action_groups (AppWindow* self, int* result_length1) {
+#line 747 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_APP_WINDOW (self), NULL);
+#line 747 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return APP_WINDOW_GET_CLASS (self)->create_common_action_groups (self, result_length1);
+#line 4939 "AppWindow.c"
+}
+
+
+static GtkActionGroup** _vala_array_dup28 (GtkActionGroup** self, int length) {
+ GtkActionGroup** result;
+ int i;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = g_new0 (GtkActionGroup*, length + 1);
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ for (i = 0; i < length; i++) {
+#line 4950 "AppWindow.c"
+ GtkActionGroup* _tmp0_ = NULL;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result[i] = _tmp0_;
+#line 4956 "AppWindow.c"
+ }
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 4960 "AppWindow.c"
+}
+
+
+GtkActionGroup** app_window_get_common_action_groups (AppWindow* self, int* result_length1) {
+ GtkActionGroup** result = NULL;
+ GtkActionGroup** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ GtkActionGroup** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ GtkActionGroup** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 756 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_APP_WINDOW (self), NULL);
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->common_action_groups;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0__length1 = self->common_action_groups_length1;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup28 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (result_length1) {
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ *result_length1 = _tmp2__length1;
+#line 4990 "AppWindow.c"
+ }
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp2_;
+#line 757 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 4996 "AppWindow.c"
+}
+
+
+static void app_window_real_replace_common_placeholders (AppWindow* self, GtkUIManager* ui) {
+#line 760 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (GTK_IS_UI_MANAGER (ui));
+#line 5003 "AppWindow.c"
+}
+
+
+void app_window_replace_common_placeholders (AppWindow* self, GtkUIManager* ui) {
+#line 760 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 760 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ APP_WINDOW_GET_CLASS (self)->replace_common_placeholders (self, ui);
+#line 5012 "AppWindow.c"
+}
+
+
+void app_window_go_fullscreen (AppWindow* self, Page* page) {
+ FullscreenWindow* _tmp0_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ FullscreenWindow* fsw = NULL;
+ Page* _tmp4_ = NULL;
+ FullscreenWindow* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ FullscreenWindow* _tmp12_ = NULL;
+ FullscreenWindow* _tmp13_ = NULL;
+ FullscreenWindow* _tmp14_ = NULL;
+#line 763 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 763 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 765 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_fullscreen_window;
+#line 765 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_ != NULL) {
+#line 5037 "AppWindow.c"
+ FullscreenWindow* _tmp1_ = NULL;
+#line 766 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = app_window_fullscreen_window;
+#line 766 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_present (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_window_get_type (), GtkWindow));
+#line 768 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 5045 "AppWindow.c"
+ }
+#line 771 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_get_position (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), &_tmp2_, &_tmp3_);
+#line 771 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->pos_x = _tmp2_;
+#line 771 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->pos_y = _tmp3_;
+#line 772 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 774 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page;
+#line 774 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = fullscreen_window_new (_tmp4_);
+#line 774 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_object_ref_sink (_tmp5_);
+#line 774 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ fsw = _tmp5_;
+#line 776 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 776 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 776 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = _tmp7_ != NULL;
+#line 776 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 776 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp8_) {
+#line 5073 "AppWindow.c"
+ Page* _tmp9_ = NULL;
+ Page* _tmp10_ = NULL;
+ FullscreenWindow* _tmp11_ = NULL;
+#line 777 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 777 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 777 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = fsw;
+#line 777 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_switching_to_fullscreen (_tmp10_, _tmp11_);
+#line 777 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp10_);
+#line 5087 "AppWindow.c"
+ }
+#line 779 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = fsw;
+#line 779 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 779 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (app_window_fullscreen_window);
+#line 779 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_fullscreen_window = _tmp13_;
+#line 780 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = app_window_fullscreen_window;
+#line 780 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_present (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_window_get_type (), GtkWindow));
+#line 763 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (fsw);
+#line 5103 "AppWindow.c"
+}
+
+
+void app_window_end_fullscreen (AppWindow* self) {
+ FullscreenWindow* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ FullscreenWindow* _tmp9_ = NULL;
+ FullscreenWindow* _tmp10_ = NULL;
+#line 783 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 784 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_fullscreen_window;
+#line 784 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp0_ == NULL) {
+#line 785 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 5124 "AppWindow.c"
+ }
+#line 787 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = self->pos_x;
+#line 787 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->pos_y;
+#line 787 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_move (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp1_, _tmp2_);
+#line 789 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 791 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 791 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 791 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_ != NULL;
+#line 791 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 791 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp5_) {
+#line 5144 "AppWindow.c"
+ Page* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ FullscreenWindow* _tmp8_ = NULL;
+#line 792 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 792 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 792 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = app_window_fullscreen_window;
+#line 792 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page_returning_from_fullscreen (_tmp7_, _tmp8_);
+#line 792 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 5158 "AppWindow.c"
+ }
+#line 794 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = app_window_fullscreen_window;
+#line 794 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 795 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = app_window_fullscreen_window;
+#line 795 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
+#line 796 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (app_window_fullscreen_window);
+#line 796 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_fullscreen_window = NULL;
+#line 798 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_present (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 5174 "AppWindow.c"
+}
+
+
+GtkAction* app_window_get_common_action (AppWindow* self, const gchar* name) {
+ GtkAction* result = NULL;
+ GtkActionGroup** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp7_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (IS_APP_WINDOW (self), NULL);
+#line 801 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = self->common_action_groups;
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0__length1 = self->common_action_groups_length1;
+#line 5191 "AppWindow.c"
+ {
+ GtkActionGroup** group_collection = NULL;
+ gint group_collection_length1 = 0;
+ gint _group_collection_size_ = 0;
+ gint group_it = 0;
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ group_collection = _tmp0_;
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ group_collection_length1 = _tmp0__length1;
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ for (group_it = 0; group_it < _tmp0__length1; group_it = group_it + 1) {
+#line 5203 "AppWindow.c"
+ GtkActionGroup* _tmp1_ = NULL;
+ GtkActionGroup* group = NULL;
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _g_object_ref0 (group_collection[group_it]);
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ group = _tmp1_;
+#line 5210 "AppWindow.c"
+ {
+ GtkAction* action = NULL;
+ GtkActionGroup* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkAction* _tmp4_ = NULL;
+ GtkAction* _tmp5_ = NULL;
+ GtkAction* _tmp6_ = NULL;
+#line 803 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = group;
+#line 803 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = name;
+#line 803 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = gtk_action_group_get_action (_tmp2_, _tmp3_);
+#line 803 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 803 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ action = _tmp5_;
+#line 804 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = action;
+#line 804 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp6_ != NULL) {
+#line 805 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = action;
+#line 805 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (group);
+#line 805 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 5238 "AppWindow.c"
+ }
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (action);
+#line 802 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (group);
+#line 5244 "AppWindow.c"
+ }
+ }
+ }
+#line 808 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = name;
+#line 808 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_warning ("AppWindow.vala:808: No common action found: %s", _tmp7_);
+#line 810 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = NULL;
+#line 810 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 5256 "AppWindow.c"
+}
+
+
+void app_window_set_common_action_sensitive (AppWindow* self, const gchar* name, gboolean sensitive) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 813 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 813 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (name != NULL);
+#line 814 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = name;
+#line 814 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = app_window_get_common_action (self, _tmp0_);
+#line 814 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ action = _tmp1_;
+#line 815 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = action;
+#line 815 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 5279 "AppWindow.c"
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 816 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = action;
+#line 816 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = sensitive;
+#line 816 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_sensitive (_tmp3_, _tmp4_);
+#line 5288 "AppWindow.c"
+ }
+#line 813 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (action);
+#line 5292 "AppWindow.c"
+}
+
+
+void app_window_set_common_action_important (AppWindow* self, const gchar* name, gboolean important) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 819 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 819 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (name != NULL);
+#line 820 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = name;
+#line 820 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = app_window_get_common_action (self, _tmp0_);
+#line 820 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ action = _tmp1_;
+#line 821 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = action;
+#line 821 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 5315 "AppWindow.c"
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 822 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = action;
+#line 822 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = important;
+#line 822 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_is_important (_tmp3_, _tmp4_);
+#line 5324 "AppWindow.c"
+ }
+#line 819 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (action);
+#line 5328 "AppWindow.c"
+}
+
+
+void app_window_set_common_action_visible (AppWindow* self, const gchar* name, gboolean visible) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 825 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 825 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (name != NULL);
+#line 826 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = name;
+#line 826 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = app_window_get_common_action (self, _tmp0_);
+#line 826 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ action = _tmp1_;
+#line 827 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = action;
+#line 827 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 5351 "AppWindow.c"
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 828 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = action;
+#line 828 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = visible;
+#line 828 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_visible (_tmp3_, _tmp4_);
+#line 5360 "AppWindow.c"
+ }
+#line 825 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (action);
+#line 5364 "AppWindow.c"
+}
+
+
+static void _app_window_on_update_common_actions_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 835 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_update_common_actions ((AppWindow*) self);
+#line 5371 "AppWindow.c"
+}
+
+
+static void _app_window_on_update_common_actions_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self) {
+#line 836 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_update_common_actions ((AppWindow*) self);
+#line 5378 "AppWindow.c"
+}
+
+
+static void _app_window_on_update_common_actions_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
+#line 837 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_on_update_common_actions ((AppWindow*) self);
+#line 5385 "AppWindow.c"
+}
+
+
+static void app_window_real_switched_pages (PageWindow* base, Page* old_page, Page* new_page) {
+ AppWindow * self;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp15_ = NULL;
+ Page* _tmp34_ = NULL;
+ Page* _tmp35_ = NULL;
+#line 831 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_APP_WINDOW, AppWindow);
+#line 831 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((old_page == NULL) || IS_PAGE (old_page));
+#line 831 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((new_page == NULL) || IS_PAGE (new_page));
+#line 832 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = old_page;
+#line 832 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = new_page;
+#line 832 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_update_common_action_availability (self, _tmp0_, _tmp1_);
+#line 834 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = old_page;
+#line 834 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 5413 "AppWindow.c"
+ Page* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ Page* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ Page* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+#line 835 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = old_page;
+#line 835 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page_get_view (_tmp3_);
+#line 835 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 835 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp6_, NULL, FALSE);
+#line 835 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _app_window_on_update_common_actions_data_collection_contents_altered, self);
+#line 835 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 836 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = old_page;
+#line 836 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = page_get_view (_tmp7_);
+#line 836 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 836 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_parse_name ("selection-group-altered", TYPE_VIEW_COLLECTION, &_tmp10_, NULL, FALSE);
+#line 836 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _app_window_on_update_common_actions_view_collection_selection_group_altered, self);
+#line 836 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp9_);
+#line 837 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = old_page;
+#line 837 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = page_get_view (_tmp11_);
+#line 837 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = _tmp12_;
+#line 837 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_parse_name ("items-state-changed", TYPE_VIEW_COLLECTION, &_tmp14_, NULL, FALSE);
+#line 837 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp13_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _app_window_on_update_common_actions_view_collection_items_state_changed, self);
+#line 837 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 5462 "AppWindow.c"
+ }
+#line 840 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = new_page;
+#line 840 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp15_ != NULL) {
+#line 5468 "AppWindow.c"
+ Page* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ ViewCollection* _tmp18_ = NULL;
+ Page* _tmp19_ = NULL;
+ ViewCollection* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ Page* _tmp22_ = NULL;
+ ViewCollection* _tmp23_ = NULL;
+ ViewCollection* _tmp24_ = NULL;
+ Page* _tmp25_ = NULL;
+ Page* _tmp26_ = NULL;
+ ViewCollection* _tmp27_ = NULL;
+ ViewCollection* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ Page* _tmp30_ = NULL;
+ ViewCollection* _tmp31_ = NULL;
+ ViewCollection* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+#line 841 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = new_page;
+#line 841 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = page_get_view (_tmp16_);
+#line 841 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_ = _tmp17_;
+#line 841 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _app_window_on_update_common_actions_data_collection_contents_altered, self, 0);
+#line 841 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp18_);
+#line 842 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp19_ = new_page;
+#line 842 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20_ = page_get_view (_tmp19_);
+#line 842 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp21_ = _tmp20_;
+#line 842 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_connect_object (_tmp21_, "selection-group-altered", (GCallback) _app_window_on_update_common_actions_view_collection_selection_group_altered, self, 0);
+#line 842 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp21_);
+#line 843 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp22_ = new_page;
+#line 843 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp23_ = page_get_view (_tmp22_);
+#line 843 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp24_ = _tmp23_;
+#line 843 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_signal_connect_object (_tmp24_, "items-state-changed", (GCallback) _app_window_on_update_common_actions_view_collection_items_state_changed, self, 0);
+#line 843 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp24_);
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp25_ = new_page;
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp26_ = new_page;
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp27_ = page_get_view (_tmp26_);
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp28_ = _tmp27_;
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp29_ = view_collection_get_selected_count (_tmp28_);
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp30_ = new_page;
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp31_ = page_get_view (_tmp30_);
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp32_ = _tmp31_;
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp33_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_DATA_COLLECTION, DataCollection));
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_update_common_actions (self, _tmp25_, _tmp29_, _tmp33_);
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp32_);
+#line 845 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp28_);
+#line 5541 "AppWindow.c"
+ }
+#line 849 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp34_ = old_page;
+#line 849 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp35_ = new_page;
+#line 849 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ PAGE_WINDOW_CLASS (app_window_parent_class)->switched_pages (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), _tmp34_, _tmp35_);
+#line 5549 "AppWindow.c"
+}
+
+
+static void app_window_real_update_common_action_availability (AppWindow* self, Page* old_page, Page* new_page) {
+ gboolean is_checkerboard = FALSE;
+ Page* _tmp0_ = NULL;
+#line 855 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((old_page == NULL) || IS_PAGE (old_page));
+#line 855 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((new_page == NULL) || IS_PAGE (new_page));
+#line 856 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = new_page;
+#line 856 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ is_checkerboard = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_CHECKERBOARD_PAGE);
+#line 858 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_set_common_action_sensitive (self, "CommonSelectAll", is_checkerboard);
+#line 859 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_set_common_action_sensitive (self, "CommonSelectNone", is_checkerboard);
+#line 5568 "AppWindow.c"
+}
+
+
+void app_window_update_common_action_availability (AppWindow* self, Page* old_page, Page* new_page) {
+#line 855 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 855 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ APP_WINDOW_GET_CLASS (self)->update_common_action_availability (self, old_page, new_page);
+#line 5577 "AppWindow.c"
+}
+
+
+static void app_window_real_update_common_actions (AppWindow* self, Page* page, gint selected_count, gint count) {
+ Page* _tmp0_ = NULL;
+ gint _tmp2_ = 0;
+#line 865 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 866 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = page;
+#line 866 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_CHECKERBOARD_PAGE)) {
+#line 5590 "AppWindow.c"
+ gint _tmp1_ = 0;
+#line 867 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = count;
+#line 867 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_set_common_action_sensitive (self, "CommonSelectAll", _tmp1_ > 0);
+#line 5596 "AppWindow.c"
+ }
+#line 868 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = selected_count;
+#line 868 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_set_common_action_sensitive (self, "CommonJumpToFile", _tmp2_ == 1);
+#line 870 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_decorate_undo_action (self);
+#line 871 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_decorate_redo_action (self);
+#line 5606 "AppWindow.c"
+}
+
+
+void app_window_update_common_actions (AppWindow* self, Page* page, gint selected_count, gint count) {
+#line 865 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 865 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ APP_WINDOW_GET_CLASS (self)->update_common_actions (self, page, selected_count, count);
+#line 5615 "AppWindow.c"
+}
+
+
+static void app_window_on_update_common_actions (AppWindow* self) {
+ Page* page = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 874 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 875 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 875 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page = _tmp0_;
+#line 876 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = page;
+#line 876 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ != NULL) {
+#line 5633 "AppWindow.c"
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ Page* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = page;
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = page;
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page_get_view (_tmp3_);
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = view_collection_get_selected_count (_tmp5_);
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = page;
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = page_get_view (_tmp7_);
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection));
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_update_common_actions (self, _tmp2_, _tmp6_, _tmp10_);
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp9_);
+#line 877 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 5667 "AppWindow.c"
+ }
+#line 874 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (page);
+#line 5671 "AppWindow.c"
+}
+
+
+static gpointer _command_manager_ref0 (gpointer self) {
+#line 881 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return self ? command_manager_ref (self) : NULL;
+#line 5678 "AppWindow.c"
+}
+
+
+CommandManager* app_window_get_command_manager (void) {
+ CommandManager* result = NULL;
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 881 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_command_manager;
+#line 881 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _command_manager_ref0 (_tmp0_);
+#line 881 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp1_;
+#line 881 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 5694 "AppWindow.c"
+}
+
+
+static void app_window_on_command_manager_altered (AppWindow* self) {
+#line 884 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 885 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_decorate_undo_action (self);
+#line 886 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_decorate_redo_action (self);
+#line 5705 "AppWindow.c"
+}
+
+
+static void app_window_decorate_command_manager_action (AppWindow* self, const gchar* name, const gchar* prefix, const gchar* default_explanation, CommandDescription* desc) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ CommandDescription* _tmp3_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 889 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (name != NULL);
+#line 889 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (prefix != NULL);
+#line 889 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (default_explanation != NULL);
+#line 889 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail ((desc == NULL) || IS_COMMAND_DESCRIPTION (desc));
+#line 891 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = name;
+#line 891 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = app_window_get_common_action (self, _tmp0_);
+#line 891 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ action = _tmp1_;
+#line 892 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = action;
+#line 892 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ == NULL) {
+#line 893 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (action);
+#line 893 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return;
+#line 5739 "AppWindow.c"
+ }
+#line 895 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = desc;
+#line 895 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 5745 "AppWindow.c"
+ GtkAction* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ CommandDescription* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GtkAction* _tmp11_ = NULL;
+ CommandDescription* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GtkAction* _tmp15_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = action;
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = prefix;
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = desc;
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp7_ = command_description_get_name (_tmp6_);
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp9_ = g_strdup_printf ("%s %s", _tmp5_, _tmp8_);
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_label (_tmp4_, _tmp10_);
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp10_);
+#line 896 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp8_);
+#line 897 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp11_ = action;
+#line 897 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp12_ = desc;
+#line 897 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp13_ = command_description_get_explanation (_tmp12_);
+#line 897 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 897 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_tooltip (_tmp11_, _tmp14_);
+#line 897 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_free0 (_tmp14_);
+#line 898 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp15_ = action;
+#line 898 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_sensitive (_tmp15_, TRUE);
+#line 5794 "AppWindow.c"
+ } else {
+ GtkAction* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GtkAction* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GtkAction* _tmp20_ = NULL;
+#line 900 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp16_ = action;
+#line 900 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp17_ = prefix;
+#line 900 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_label (_tmp16_, _tmp17_);
+#line 901 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp18_ = action;
+#line 901 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp19_ = default_explanation;
+#line 901 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_tooltip (_tmp18_, _tmp19_);
+#line 902 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp20_ = action;
+#line 902 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_action_set_sensitive (_tmp20_, FALSE);
+#line 5817 "AppWindow.c"
+ }
+#line 889 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (action);
+#line 5821 "AppWindow.c"
+}
+
+
+void app_window_decorate_undo_action (AppWindow* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+ CommandDescription* _tmp2_ = NULL;
+ CommandDescription* _tmp3_ = NULL;
+#line 906 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 907 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_get_command_manager ();
+#line 907 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 907 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = command_manager_get_undo_description (_tmp1_);
+#line 907 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 907 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_decorate_command_manager_action (self, "CommonUndo", RESOURCES_UNDO_MENU, "", _tmp3_);
+#line 907 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 907 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 5846 "AppWindow.c"
+}
+
+
+void app_window_decorate_redo_action (AppWindow* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+ CommandDescription* _tmp2_ = NULL;
+ CommandDescription* _tmp3_ = NULL;
+#line 911 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 912 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_get_command_manager ();
+#line 912 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 912 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = command_manager_get_redo_description (_tmp1_);
+#line 912 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 912 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_decorate_command_manager_action (self, "CommonRedo", RESOURCES_REDO_MENU, "", _tmp3_);
+#line 912 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 912 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 5871 "AppWindow.c"
+}
+
+
+static void app_window_on_undo (AppWindow* self) {
+ CommandManager* _tmp0_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 917 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_command_manager;
+#line 917 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ command_manager_undo (_tmp0_);
+#line 5883 "AppWindow.c"
+}
+
+
+static void app_window_on_redo (AppWindow* self) {
+ CommandManager* _tmp0_ = NULL;
+#line 920 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 921 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = app_window_command_manager;
+#line 921 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ command_manager_redo (_tmp0_);
+#line 5895 "AppWindow.c"
+}
+
+
+static void app_window_on_select_all (AppWindow* self) {
+ Page* page = NULL;
+ Page* _tmp0_ = NULL;
+ CheckerboardPage* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+#line 924 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 925 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 925 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_CHECKERBOARD_PAGE) ? ((CheckerboardPage*) _tmp0_) : NULL;
+#line 925 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ == NULL) {
+#line 925 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 5914 "AppWindow.c"
+ }
+#line 925 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 926 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = page;
+#line 926 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 5922 "AppWindow.c"
+ Page* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+#line 927 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = page;
+#line 927 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page_get_view (_tmp3_);
+#line 927 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 927 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ view_collection_select_all (_tmp5_);
+#line 927 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 5936 "AppWindow.c"
+ }
+#line 924 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (page);
+#line 5940 "AppWindow.c"
+}
+
+
+static void app_window_on_select_none (AppWindow* self) {
+ Page* page = NULL;
+ Page* _tmp0_ = NULL;
+ CheckerboardPage* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+#line 930 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_if_fail (IS_APP_WINDOW (self));
+#line 931 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 931 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_CHECKERBOARD_PAGE) ? ((CheckerboardPage*) _tmp0_) : NULL;
+#line 931 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp1_ == NULL) {
+#line 931 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 5959 "AppWindow.c"
+ }
+#line 931 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ page = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 932 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = page;
+#line 932 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 5967 "AppWindow.c"
+ Page* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+#line 933 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp3_ = page;
+#line 933 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp4_ = page_get_view (_tmp3_);
+#line 933 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 933 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ view_collection_unselect_all (_tmp5_);
+#line 933 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 5981 "AppWindow.c"
+ }
+#line 930 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (page);
+#line 5985 "AppWindow.c"
+}
+
+
+static gboolean app_window_real_configure_event (GtkWidget* base, GdkEventConfigure* event) {
+ AppWindow * self;
+ gboolean result = FALSE;
+ GdkWindow* _tmp0_ = NULL;
+ GdkWindowState _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ GdkEventConfigure* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 936 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_APP_WINDOW, AppWindow);
+#line 936 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 937 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 937 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp1_ = gdk_window_get_state (_tmp0_);
+#line 937 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->maximized = _tmp1_ == GDK_WINDOW_STATE_MAXIMIZED;
+#line 939 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp2_ = self->maximized;
+#line 939 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ if (!_tmp2_) {
+#line 6011 "AppWindow.c"
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 940 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ gtk_window_get_size (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), &_tmp3_, &_tmp4_);
+#line 940 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->dimensions.width = _tmp3_;
+#line 940 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->dimensions.height = _tmp4_;
+#line 6020 "AppWindow.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp5_ = event;
+#line 942 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp6_ = GTK_WIDGET_CLASS (app_window_parent_class)->configure_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), gtk_widget_get_type (), GtkWidget), _tmp5_);
+#line 942 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ result = _tmp6_;
+#line 942 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ return result;
+#line 6030 "AppWindow.c"
+}
+
+
+static void app_window_class_init (AppWindowClass * klass) {
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ app_window_parent_class = g_type_class_peek_parent (klass);
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ g_type_class_add_private (klass, sizeof (AppWindowPrivate));
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((AppWindowClass *) klass)->on_fullscreen = app_window_real_on_fullscreen;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((AppWindowClass *) klass)->get_app_role = app_window_real_get_app_role;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((AppWindowClass *) klass)->on_quit = app_window_real_on_quit;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->destroy = app_window_real_destroy;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((AppWindowClass *) klass)->create_common_action_groups = app_window_real_create_common_action_groups;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((AppWindowClass *) klass)->replace_common_placeholders = app_window_real_replace_common_placeholders;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((PageWindowClass *) klass)->switched_pages = app_window_real_switched_pages;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((AppWindowClass *) klass)->update_common_action_availability = app_window_real_update_common_action_availability;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((AppWindowClass *) klass)->update_common_actions = app_window_real_update_common_actions;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ ((GtkWidgetClass *) klass)->configure_event = app_window_real_configure_event;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ G_OBJECT_CLASS (klass)->finalize = app_window_finalize;
+#line 6061 "AppWindow.c"
+}
+
+
+static void app_window_instance_init (AppWindow * self) {
+ GtkActionGroup* _tmp0_ = NULL;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv = APP_WINDOW_GET_PRIVATE (self);
+#line 417 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->maximized = FALSE;
+#line 419 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->pos_x = 0;
+#line 420 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->pos_y = 0;
+#line 422 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _tmp0_ = gtk_action_group_new ("AppWindowGlobalActionGroup");
+#line 422 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->priv->common_action_group = _tmp0_;
+#line 6079 "AppWindow.c"
+}
+
+
+static void app_window_finalize (GObject* obj) {
+ AppWindow * self;
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_APP_WINDOW, AppWindow);
+#line 416 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ self->common_action_groups = (_vala_array_free (self->common_action_groups, self->common_action_groups_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 422 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ _g_object_unref0 (self->priv->common_action_group);
+#line 406 "/home/jens/Source/shotwell/src/AppWindow.vala"
+ G_OBJECT_CLASS (app_window_parent_class)->finalize (obj);
+#line 6093 "AppWindow.c"
+}
+
+
+GType app_window_get_type (void) {
+ static volatile gsize app_window_type_id__volatile = 0;
+ if (g_once_init_enter (&app_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AppWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) app_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AppWindow), 0, (GInstanceInitFunc) app_window_instance_init, NULL };
+ GType app_window_type_id;
+ app_window_type_id = g_type_register_static (TYPE_PAGE_WINDOW, "AppWindow", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&app_window_type_id__volatile, app_window_type_id);
+ }
+ return app_window_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/AppWindow.vala b/src/AppWindow.vala
index dcb88fd..b70a20c 100644
--- a/src/AppWindow.vala
+++ b/src/AppWindow.vala
@@ -547,7 +547,7 @@ public abstract class AppWindow : PageWindow {
return fullscreen_window;
}
- public static Gtk.Builder create_builder(string glade_filename = "shotwell.glade", void *user = null) {
+ public static Gtk.Builder create_builder(string glade_filename = "shotwell.ui", void *user = null) {
Gtk.Builder builder = new Gtk.Builder();
try {
builder.add_from_file(AppDirs.get_resources_dir().get_child("ui").get_child(
diff --git a/src/Application.c b/src/Application.c
new file mode 100644
index 0000000..3501ff0
--- /dev/null
+++ b/src/Application.c
@@ -0,0 +1,1200 @@
+/* Application.c generated by valac 0.32.1, the Vala compiler
+ * generated from Application.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+typedef struct _ApplicationPrivate ApplicationPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecApplication ParamSpecApplication;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Application {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ApplicationPrivate * priv;
+};
+
+struct _ApplicationClass {
+ GTypeClass parent_class;
+ void (*finalize) (Application *self);
+ void (*starting) (Application* self);
+ void (*exiting) (Application* self, gboolean panicked);
+ void (*init_done) (Application* self);
+};
+
+struct _ApplicationPrivate {
+ GtkApplication* system_app;
+ gint system_app_run_retval;
+ gboolean direct;
+ gboolean fixup_raw_thumbs;
+ gboolean running;
+ gboolean exiting_fired;
+};
+
+struct _ParamSpecApplication {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer application_parent_class = NULL;
+static Application* application_instance;
+static Application* application_instance = NULL;
+
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+#define APPLICATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_APPLICATION, ApplicationPrivate))
+enum {
+ APPLICATION_DUMMY_PROPERTY
+};
+void application_set_raw_thumbs_fix_required (Application* self, gboolean should_fixup);
+gboolean application_get_raw_thumbs_fix_required (Application* self);
+static Application* application_new (gboolean is_direct);
+static Application* application_construct (GType object_type, gboolean is_direct);
+void application_panic (Application* self);
+gint application_on_command_line (GApplicationCommandLine* acl);
+static gint _application_on_command_line_g_application_command_line (GApplication* _sender, GApplicationCommandLine* command_line, gpointer self);
+void application_on_activated (void);
+static void _application_on_activated_g_application_activate (GApplication* _sender, gpointer self);
+static void _application_on_activated_g_application_startup (GApplication* _sender, gpointer self);
+void application_send_to_primary_instance (gchar** argv, int argv_length1);
+Application* application_get_instance (void);
+void application_present_primary_instance (void);
+gboolean application_get_is_remote (void);
+gboolean application_get_is_direct (void);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+LibraryWindow* library_window_get_app (void);
+void library_window_mounted_camera_shell_notification (LibraryWindow* self, const gchar* uri, gboolean at_startup);
+void application_init (gboolean is_direct);
+void application_terminate (void);
+void application_exit (Application* self);
+void application_start (Application* self, gchar** argv, int argv_length1);
+guint application_inhibit (Application* self, GtkApplicationInhibitFlags what, const gchar* reason);
+void application_uninhibit (Application* self, guint cookie);
+gint application_get_run_return_value (Application* self);
+static void application_real_starting (Application* self);
+static void application_real_exiting (Application* self, gboolean panicked);
+static void application_real_init_done (Application* self);
+static void application_finalize (Application* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+void application_set_raw_thumbs_fix_required (Application* self, gboolean should_fixup) {
+ gboolean _tmp0_ = FALSE;
+#line 24 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (IS_APPLICATION (self));
+#line 25 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = should_fixup;
+#line 25 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->fixup_raw_thumbs = _tmp0_;
+#line 157 "Application.c"
+}
+
+
+gboolean application_get_raw_thumbs_fix_required (Application* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 28 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_val_if_fail (IS_APPLICATION (self), FALSE);
+#line 29 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = self->priv->fixup_raw_thumbs;
+#line 29 "/home/jens/Source/shotwell/src/Application.vala"
+ result = _tmp0_;
+#line 29 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 172 "Application.c"
+}
+
+
+static gint _application_on_command_line_g_application_command_line (GApplication* _sender, GApplicationCommandLine* command_line, gpointer self) {
+ gint result;
+ result = application_on_command_line (command_line);
+#line 61 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 181 "Application.c"
+}
+
+
+static void _application_on_activated_g_application_activate (GApplication* _sender, gpointer self) {
+#line 64 "/home/jens/Source/shotwell/src/Application.vala"
+ application_on_activated ();
+#line 188 "Application.c"
+}
+
+
+static void _application_on_activated_g_application_startup (GApplication* _sender, gpointer self) {
+#line 65 "/home/jens/Source/shotwell/src/Application.vala"
+ application_on_activated ();
+#line 195 "Application.c"
+}
+
+
+static Application* application_construct (GType object_type, gboolean is_direct) {
+ Application* self = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GtkApplication* _tmp7_ = NULL;
+ GtkApplication* _tmp8_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/Application.vala"
+ self = (Application*) g_type_create_instance (object_type);
+#line 36 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = is_direct;
+#line 36 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp0_) {
+#line 213 "Application.c"
+ GtkApplication* _tmp1_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = gtk_application_new ("org.yorba.shotwell-direct", G_APPLICATION_HANDLES_OPEN | G_APPLICATION_NON_UNIQUE);
+#line 41 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (self->priv->system_app);
+#line 41 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->system_app = _tmp1_;
+#line 221 "Application.c"
+ } else {
+ GtkApplication* _tmp2_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = gtk_application_new ("org.yorba.shotwell", G_APPLICATION_HANDLES_OPEN | G_APPLICATION_HANDLES_COMMAND_LINE);
+#line 47 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (self->priv->system_app);
+#line 47 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->system_app = _tmp2_;
+#line 230 "Application.c"
+ }
+ {
+ GtkApplication* _tmp3_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = self->priv->system_app;
+#line 53 "/home/jens/Source/shotwell/src/Application.vala"
+ g_application_register (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, g_application_get_type (), GApplication), NULL, &_inner_error_);
+#line 53 "/home/jens/Source/shotwell/src/Application.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 240 "Application.c"
+ goto __catch547_g_error;
+ }
+ }
+ goto __finally547;
+ __catch547_g_error:
+ {
+ GError* e = NULL;
+#line 52 "/home/jens/Source/shotwell/src/Application.vala"
+ e = _inner_error_;
+#line 52 "/home/jens/Source/shotwell/src/Application.vala"
+ _inner_error_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/Application.vala"
+ application_panic (self);
+#line 52 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_error_free0 (e);
+#line 256 "Application.c"
+ }
+ __finally547:
+#line 52 "/home/jens/Source/shotwell/src/Application.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 52 "/home/jens/Source/shotwell/src/Application.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 52 "/home/jens/Source/shotwell/src/Application.vala"
+ g_clear_error (&_inner_error_);
+#line 52 "/home/jens/Source/shotwell/src/Application.vala"
+ return NULL;
+#line 267 "Application.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4_ = is_direct;
+#line 58 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->direct = _tmp4_;
+#line 60 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp5_ = self->priv->direct;
+#line 60 "/home/jens/Source/shotwell/src/Application.vala"
+ if (!_tmp5_) {
+#line 277 "Application.c"
+ GtkApplication* _tmp6_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp6_ = self->priv->system_app;
+#line 61 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, g_application_get_type (), GApplication), "command-line", (GCallback) _application_on_command_line_g_application_command_line, NULL);
+#line 283 "Application.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp7_ = self->priv->system_app;
+#line 64 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, g_application_get_type (), GApplication), "activate", (GCallback) _application_on_activated_g_application_activate, NULL);
+#line 65 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp8_ = self->priv->system_app;
+#line 65 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, g_application_get_type (), GApplication), "startup", (GCallback) _application_on_activated_g_application_startup, NULL);
+#line 35 "/home/jens/Source/shotwell/src/Application.vala"
+ return self;
+#line 295 "Application.c"
+}
+
+
+static Application* application_new (gboolean is_direct) {
+#line 35 "/home/jens/Source/shotwell/src/Application.vala"
+ return application_construct (TYPE_APPLICATION, is_direct);
+#line 302 "Application.c"
+}
+
+
+/**
+ * @brief This is a helper for library mode that should only be
+ * called if we've gotten a camera mount and are _not_ the primary
+ * instance.
+ */
+void application_send_to_primary_instance (gchar** argv, int argv_length1) {
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ GtkApplication* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 74 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_get_instance ();
+#line 74 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = _tmp0_;
+#line 74 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = _tmp1_->priv->system_app;
+#line 74 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = argv;
+#line 74 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3__length1 = argv_length1;
+#line 74 "/home/jens/Source/shotwell/src/Application.vala"
+ g_application_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, g_application_get_type (), GApplication), _tmp3__length1, _tmp3_);
+#line 74 "/home/jens/Source/shotwell/src/Application.vala"
+ _application_unref0 (_tmp1_);
+#line 331 "Application.c"
+}
+
+
+/**
+ * @brief A helper for library mode that tells the primary
+ * instance to bring its window to the foreground. This
+ * should only be called if we are _not_ the primary instance.
+ */
+void application_present_primary_instance (void) {
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ GtkApplication* _tmp2_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_get_instance ();
+#line 83 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = _tmp0_;
+#line 83 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = _tmp1_->priv->system_app;
+#line 83 "/home/jens/Source/shotwell/src/Application.vala"
+ g_application_activate (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, g_application_get_type (), GApplication));
+#line 83 "/home/jens/Source/shotwell/src/Application.vala"
+ _application_unref0 (_tmp1_);
+#line 354 "Application.c"
+}
+
+
+gboolean application_get_is_remote (void) {
+ gboolean result = FALSE;
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ GtkApplication* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_get_instance ();
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = _tmp0_;
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = _tmp1_->priv->system_app;
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = g_application_get_is_remote (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, g_application_get_type (), GApplication));
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4_ = _tmp3_;
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ _application_unref0 (_tmp1_);
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ result = _tmp4_;
+#line 87 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 381 "Application.c"
+}
+
+
+gboolean application_get_is_direct (void) {
+ gboolean result = FALSE;
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 91 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_get_instance ();
+#line 91 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = _tmp0_;
+#line 91 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = _tmp1_->priv->direct;
+#line 91 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = _tmp2_;
+#line 91 "/home/jens/Source/shotwell/src/Application.vala"
+ _application_unref0 (_tmp1_);
+#line 91 "/home/jens/Source/shotwell/src/Application.vala"
+ result = _tmp3_;
+#line 91 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 405 "Application.c"
+}
+
+
+/**
+ * @brief Signal handler for GApplication's 'command-line' signal.
+ *
+ * The most likely scenario for this to be fired is if the user
+ * either tried to run us twice in library mode, or we've just gotten
+ * a camera/removeable-storage mount; in either case, the remote instance
+ * will trigger this and exit, and we'll need to bring the window back up...
+ */
+void application_on_activated (void) {
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ LibraryWindow* lw = NULL;
+ AppWindow* _tmp2_ = NULL;
+ LibraryWindow* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ LibraryWindow* _tmp5_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_get_instance ();
+#line 103 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = _tmp0_;
+#line 103 "/home/jens/Source/shotwell/src/Application.vala"
+ _application_unref0 (_tmp1_);
+#line 105 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 105 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_LIBRARY_WINDOW) ? ((LibraryWindow*) _tmp2_) : NULL;
+#line 105 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp3_ == NULL) {
+#line 105 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (_tmp2_);
+#line 439 "Application.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/Application.vala"
+ lw = _tmp3_;
+#line 106 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp5_ = lw;
+#line 106 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp5_ != NULL) {
+#line 447 "Application.c"
+ gboolean _tmp6_ = FALSE;
+#line 106 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp6_ = application_get_is_direct ();
+#line 106 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4_ = !_tmp6_;
+#line 453 "Application.c"
+ } else {
+#line 106 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4_ = FALSE;
+#line 457 "Application.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp4_) {
+#line 461 "Application.c"
+ LibraryWindow* _tmp7_ = NULL;
+ LibraryWindow* _tmp8_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp7_ = library_window_get_app ();
+#line 107 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp8_ = _tmp7_;
+#line 107 "/home/jens/Source/shotwell/src/Application.vala"
+ gtk_window_present (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_window_get_type (), GtkWindow));
+#line 107 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (_tmp8_);
+#line 472 "Application.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (lw);
+#line 476 "Application.c"
+}
+
+
+/**
+ * @brief Signal handler for GApplication's 'command-line' signal.
+ *
+ * Gets fired whenever a remote instance tries to run, usually
+ * with an incoming camera connection.
+ *
+ * @note This does _not_ get called in direct-edit mode.
+ */
+gint application_on_command_line (GApplicationCommandLine* acl) {
+ gint result = 0;
+ gchar** argv = NULL;
+ GApplicationCommandLine* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar** _tmp2_ = NULL;
+ gint argv_length1 = 0;
+ gint _argv_size_ = 0;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 119 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_val_if_fail (G_IS_APPLICATION_COMMAND_LINE (acl), 0);
+#line 120 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = acl;
+#line 120 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = g_application_command_line_get_arguments (_tmp0_, &_tmp1_);
+#line 120 "/home/jens/Source/shotwell/src/Application.vala"
+ argv = _tmp2_;
+#line 120 "/home/jens/Source/shotwell/src/Application.vala"
+ argv_length1 = _tmp1_;
+#line 120 "/home/jens/Source/shotwell/src/Application.vala"
+ _argv_size_ = argv_length1;
+#line 122 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = argv;
+#line 122 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3__length1 = argv_length1;
+#line 122 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp3_ != NULL) {
+#line 516 "Application.c"
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4_ = argv;
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4__length1 = argv_length1;
+#line 523 "Application.c"
+ {
+ gchar** s_collection = NULL;
+ gint s_collection_length1 = 0;
+ gint _s_collection_size_ = 0;
+ gint s_it = 0;
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ s_collection = _tmp4_;
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ s_collection_length1 = _tmp4__length1;
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ for (s_it = 0; s_it < _tmp4__length1; s_it = s_it + 1) {
+#line 535 "Application.c"
+ gchar* _tmp5_ = NULL;
+ gchar* s = NULL;
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp5_ = g_strdup (s_collection[s_it]);
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ s = _tmp5_;
+#line 542 "Application.c"
+ {
+ LibraryWindow* lw = NULL;
+ AppWindow* _tmp6_ = NULL;
+ LibraryWindow* _tmp7_ = NULL;
+ LibraryWindow* _tmp8_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp6_ = app_window_get_instance ();
+#line 124 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_LIBRARY_WINDOW) ? ((LibraryWindow*) _tmp6_) : NULL;
+#line 124 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp7_ == NULL) {
+#line 124 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (_tmp6_);
+#line 556 "Application.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/Application.vala"
+ lw = _tmp7_;
+#line 125 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp8_ = lw;
+#line 125 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp8_ != NULL) {
+#line 564 "Application.c"
+ LibraryWindow* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp9_ = lw;
+#line 126 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp10_ = s;
+#line 126 "/home/jens/Source/shotwell/src/Application.vala"
+ library_window_mounted_camera_shell_notification (_tmp9_, _tmp10_, FALSE);
+#line 573 "Application.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (lw);
+#line 123 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_free0 (s);
+#line 579 "Application.c"
+ }
+ }
+ }
+ }
+#line 130 "/home/jens/Source/shotwell/src/Application.vala"
+ application_on_activated ();
+#line 131 "/home/jens/Source/shotwell/src/Application.vala"
+ result = 0;
+#line 131 "/home/jens/Source/shotwell/src/Application.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 131 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 592 "Application.c"
+}
+
+
+/**
+ * @brief Initializes the Shotwell application object and prepares
+ * it for use.
+ *
+ * @param is_direct Whether the application was invoked in direct
+ * or in library mode; defaults to FALSE, that is, library mode.
+ *
+ * @note This MUST be called prior to calling get_instance(), as the
+ * application needs to know what mode it was brought up in; failure to
+ * call this first will lead to an assertion.
+ */
+void application_init (gboolean is_direct) {
+ Application* _tmp0_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_instance;
+#line 146 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp0_ == NULL) {
+#line 613 "Application.c"
+ gboolean _tmp1_ = FALSE;
+ Application* _tmp2_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = is_direct;
+#line 147 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = application_new (_tmp1_);
+#line 147 "/home/jens/Source/shotwell/src/Application.vala"
+ _application_unref0 (application_instance);
+#line 147 "/home/jens/Source/shotwell/src/Application.vala"
+ application_instance = _tmp2_;
+#line 624 "Application.c"
+ }
+}
+
+
+void application_terminate (void) {
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_get_instance ();
+#line 151 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = _tmp0_;
+#line 151 "/home/jens/Source/shotwell/src/Application.vala"
+ application_exit (_tmp1_);
+#line 151 "/home/jens/Source/shotwell/src/Application.vala"
+ _application_unref0 (_tmp1_);
+#line 640 "Application.c"
+}
+
+
+static gpointer _application_ref0 (gpointer self) {
+#line 157 "/home/jens/Source/shotwell/src/Application.vala"
+ return self ? application_ref (self) : NULL;
+#line 647 "Application.c"
+}
+
+
+Application* application_get_instance (void) {
+ Application* result = NULL;
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ Application* _tmp2_ = NULL;
+#line 155 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = application_instance;
+#line 155 "/home/jens/Source/shotwell/src/Application.vala"
+ _vala_assert (_tmp0_ != NULL, "instance != null");
+#line 157 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = application_instance;
+#line 157 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = _application_ref0 (_tmp1_);
+#line 157 "/home/jens/Source/shotwell/src/Application.vala"
+ result = _tmp2_;
+#line 157 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 668 "Application.c"
+}
+
+
+void application_start (Application* self, gchar** argv, int argv_length1) {
+ gboolean _tmp0_ = FALSE;
+ AppWindow* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ GtkApplication* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+ GtkApplication* _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gint _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ GtkApplication* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ GtkApplication* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+#line 160 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (IS_APPLICATION (self));
+#line 161 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = self->priv->running;
+#line 161 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp0_) {
+#line 162 "/home/jens/Source/shotwell/src/Application.vala"
+ return;
+#line 696 "Application.c"
+ }
+#line 164 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->running = TRUE;
+#line 166 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_emit_by_name (self, "starting");
+#line 168 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = app_window_get_instance ();
+#line 168 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = _tmp1_;
+#line 168 "/home/jens/Source/shotwell/src/Application.vala"
+ _vala_assert (_tmp2_ != NULL, "AppWindow.get_instance() != null");
+#line 168 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (_tmp2_);
+#line 169 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = self->priv->system_app;
+#line 169 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 169 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp5_ = _tmp4_;
+#line 169 "/home/jens/Source/shotwell/src/Application.vala"
+ gtk_application_add_window (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_window_get_type (), GtkWindow));
+#line 169 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (_tmp5_);
+#line 170 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp6_ = self->priv->system_app;
+#line 170 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp7_ = argv;
+#line 170 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp7__length1 = argv_length1;
+#line 170 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp8_ = g_application_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, g_application_get_type (), GApplication), _tmp7__length1, _tmp7_);
+#line 170 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->system_app_run_retval = _tmp8_;
+#line 172 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp9_ = self->priv->direct;
+#line 172 "/home/jens/Source/shotwell/src/Application.vala"
+ if (!_tmp9_) {
+#line 734 "Application.c"
+ GtkApplication* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 173 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp10_ = self->priv->system_app;
+#line 173 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_parse_name ("command-line", g_application_get_type (), &_tmp11_, NULL, FALSE);
+#line 173 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, g_application_get_type (), GApplication), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _application_on_command_line_g_application_command_line, NULL);
+#line 743 "Application.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp12_ = self->priv->system_app;
+#line 176 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_parse_name ("activate", g_application_get_type (), &_tmp13_, NULL, FALSE);
+#line 176 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, g_application_get_type (), GApplication), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _application_on_activated_g_application_activate, NULL);
+#line 177 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp14_ = self->priv->system_app;
+#line 177 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_parse_name ("startup", g_application_get_type (), &_tmp15_, NULL, FALSE);
+#line 177 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, g_application_get_type (), GApplication), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _application_on_activated_g_application_startup, NULL);
+#line 179 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->running = FALSE;
+#line 759 "Application.c"
+}
+
+
+void application_exit (Application* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GtkApplication* _tmp3_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (IS_APPLICATION (self));
+#line 185 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = self->priv->exiting_fired;
+#line 185 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp1_) {
+#line 185 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = TRUE;
+#line 775 "Application.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 185 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = self->priv->running;
+#line 185 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = !_tmp2_;
+#line 782 "Application.c"
+ }
+#line 185 "/home/jens/Source/shotwell/src/Application.vala"
+ if (_tmp0_) {
+#line 186 "/home/jens/Source/shotwell/src/Application.vala"
+ return;
+#line 788 "Application.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->exiting_fired = TRUE;
+#line 190 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_emit_by_name (self, "exiting", FALSE);
+#line 192 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = self->priv->system_app;
+#line 192 "/home/jens/Source/shotwell/src/Application.vala"
+ g_application_release (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, g_application_get_type (), GApplication));
+#line 798 "Application.c"
+}
+
+
+void application_panic (Application* self) {
+ gboolean _tmp0_ = FALSE;
+#line 197 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (IS_APPLICATION (self));
+#line 198 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = self->priv->exiting_fired;
+#line 198 "/home/jens/Source/shotwell/src/Application.vala"
+ if (!_tmp0_) {
+#line 199 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->exiting_fired = TRUE;
+#line 200 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_emit_by_name (self, "exiting", TRUE);
+#line 814 "Application.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/Application.vala"
+ exit (1);
+#line 818 "Application.c"
+}
+
+
+/**
+ * @brief Allows the caller to ask for some part of the desktop session's functionality to
+ * be prevented from running; wrapper for Gtk.Application.inhibit().
+ *
+ * @note The return value is a 'cookie' that needs to be passed to 'uninhibit' to turn
+ * off a requested inhibition and should be saved by the caller.
+ */
+guint application_inhibit (Application* self, GtkApplicationInhibitFlags what, const gchar* reason) {
+ guint result = 0U;
+ GtkApplication* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ GtkApplicationInhibitFlags _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+#line 212 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_val_if_fail (IS_APPLICATION (self), 0U);
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = self->priv->system_app;
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = app_window_get_instance ();
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp2_ = _tmp1_;
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp3_ = what;
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp4_ = reason;
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp5_ = gtk_application_inhibit (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_window_get_type (), GtkWindow), _tmp3_, _tmp4_);
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp6_ = _tmp5_;
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (_tmp2_);
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ result = _tmp6_;
+#line 213 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 860 "Application.c"
+}
+
+
+/**
+ * @brief Turns off a previously-requested inhibition. Wrapper for
+ * Gtk.Application.uninhibit().
+ */
+void application_uninhibit (Application* self, guint cookie) {
+ GtkApplication* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 220 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (IS_APPLICATION (self));
+#line 221 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = self->priv->system_app;
+#line 221 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp1_ = cookie;
+#line 221 "/home/jens/Source/shotwell/src/Application.vala"
+ gtk_application_uninhibit (_tmp0_, _tmp1_);
+#line 879 "Application.c"
+}
+
+
+gint application_get_run_return_value (Application* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 224 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_val_if_fail (IS_APPLICATION (self), 0);
+#line 225 "/home/jens/Source/shotwell/src/Application.vala"
+ _tmp0_ = self->priv->system_app_run_retval;
+#line 225 "/home/jens/Source/shotwell/src/Application.vala"
+ result = _tmp0_;
+#line 225 "/home/jens/Source/shotwell/src/Application.vala"
+ return result;
+#line 894 "Application.c"
+}
+
+
+static void application_real_starting (Application* self) {
+}
+
+
+static void application_real_exiting (Application* self, gboolean panicked) {
+}
+
+
+static void application_real_init_done (Application* self) {
+}
+
+
+static void value_application_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ value->data[0].v_pointer = NULL;
+#line 913 "Application.c"
+}
+
+
+static void value_application_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ application_unref (value->data[0].v_pointer);
+#line 922 "Application.c"
+ }
+}
+
+
+static void value_application_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ dest_value->data[0].v_pointer = application_ref (src_value->data[0].v_pointer);
+#line 932 "Application.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 936 "Application.c"
+ }
+}
+
+
+static gpointer value_application_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return value->data[0].v_pointer;
+#line 944 "Application.c"
+}
+
+
+static gchar* value_application_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (collect_values[0].v_pointer) {
+#line 951 "Application.c"
+ Application* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 958 "Application.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 962 "Application.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ value->data[0].v_pointer = application_ref (object);
+#line 966 "Application.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ value->data[0].v_pointer = NULL;
+#line 970 "Application.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return NULL;
+#line 974 "Application.c"
+}
+
+
+static gchar* value_application_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Application** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 985 "Application.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ *object_p = NULL;
+#line 991 "Application.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ *object_p = value->data[0].v_pointer;
+#line 995 "Application.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ *object_p = application_ref (value->data[0].v_pointer);
+#line 999 "Application.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return NULL;
+#line 1003 "Application.c"
+}
+
+
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecApplication* spec;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_APPLICATION), NULL);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return G_PARAM_SPEC (spec);
+#line 1017 "Application.c"
+}
+
+
+gpointer value_get_application (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APPLICATION), NULL);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return value->data[0].v_pointer;
+#line 1026 "Application.c"
+}
+
+
+void value_set_application (GValue* value, gpointer v_object) {
+ Application* old;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APPLICATION));
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APPLICATION));
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ application_ref (value->data[0].v_pointer);
+#line 1046 "Application.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ value->data[0].v_pointer = NULL;
+#line 1050 "Application.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ application_unref (old);
+#line 1056 "Application.c"
+ }
+}
+
+
+void value_take_application (GValue* value, gpointer v_object) {
+ Application* old;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APPLICATION));
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APPLICATION));
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ value->data[0].v_pointer = v_object;
+#line 1075 "Application.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ value->data[0].v_pointer = NULL;
+#line 1079 "Application.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ application_unref (old);
+#line 1085 "Application.c"
+ }
+}
+
+
+static void application_class_init (ApplicationClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ application_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ ((ApplicationClass *) klass)->finalize = application_finalize;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_type_class_add_private (klass, sizeof (ApplicationPrivate));
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ ((ApplicationClass *) klass)->starting = application_real_starting;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ ((ApplicationClass *) klass)->exiting = application_real_exiting;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ ((ApplicationClass *) klass)->init_done = application_real_init_done;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_new ("starting", TYPE_APPLICATION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ApplicationClass, starting), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_new ("exiting", TYPE_APPLICATION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ApplicationClass, exiting), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_new ("init_done", TYPE_APPLICATION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ApplicationClass, init_done), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 1109 "Application.c"
+}
+
+
+static void application_instance_init (Application * self) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv = APPLICATION_GET_PRIVATE (self);
+#line 9 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->system_app = NULL;
+#line 10 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->system_app_run_retval = 0;
+#line 22 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->fixup_raw_thumbs = FALSE;
+#line 32 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->running = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/Application.vala"
+ self->priv->exiting_fired = FALSE;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ self->ref_count = 1;
+#line 1128 "Application.c"
+}
+
+
+static void application_finalize (Application* obj) {
+ Application * self;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_APPLICATION, Application);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_signal_handlers_destroy (self);
+#line 9 "/home/jens/Source/shotwell/src/Application.vala"
+ _g_object_unref0 (self->priv->system_app);
+#line 1140 "Application.c"
+}
+
+
+GType application_get_type (void) {
+ static volatile gsize application_type_id__volatile = 0;
+ if (g_once_init_enter (&application_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_application_init, value_application_free_value, value_application_copy_value, value_application_peek_pointer, "p", value_application_collect_value, "p", value_application_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ApplicationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) application_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Application), 0, (GInstanceInitFunc) application_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType application_type_id;
+ application_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Application", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&application_type_id__volatile, application_type_id);
+ }
+ return application_type_id__volatile;
+}
+
+
+gpointer application_ref (gpointer instance) {
+ Application* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ return instance;
+#line 1165 "Application.c"
+}
+
+
+void application_unref (gpointer instance) {
+ Application* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ APPLICATION_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/Application.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1178 "Application.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/BatchImport.c b/src/BatchImport.c
new file mode 100644
index 0000000..6950577
--- /dev/null
+++ b/src/BatchImport.c
@@ -0,0 +1,17492 @@
+/* BatchImport.c generated by valac 0.32.1, the Vala compiler
+ * generated from BatchImport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <time.h>
+#include <gee.h>
+#include <float.h>
+#include <math.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+typedef struct _BatchImportJobPrivate BatchImportJobPrivate;
+
+#define TYPE_DUPLICATED_FILE (duplicated_file_get_type ())
+#define DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATED_FILE, DuplicatedFile))
+#define DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+#define IS_DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATED_FILE))
+#define IS_DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATED_FILE))
+#define DUPLICATED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+
+typedef struct _DuplicatedFile DuplicatedFile;
+typedef struct _DuplicatedFileClass DuplicatedFileClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+typedef struct _ParamSpecBatchImportJob ParamSpecBatchImportJob;
+
+#define TYPE_FILE_IMPORT_JOB (file_import_job_get_type ())
+#define FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILE_IMPORT_JOB, FileImportJob))
+#define FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+#define IS_FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILE_IMPORT_JOB))
+#define IS_FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILE_IMPORT_JOB))
+#define FILE_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+
+typedef struct _FileImportJob FileImportJob;
+typedef struct _FileImportJobClass FileImportJobClass;
+typedef struct _FileImportJobPrivate FileImportJobPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _BatchImportRollPrivate BatchImportRollPrivate;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+typedef struct _ParamSpecBatchImportRoll ParamSpecBatchImportRoll;
+
+#define TYPE_BATCH_IMPORT_RESULT (batch_import_result_get_type ())
+#define BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResult))
+#define BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+#define IS_BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_RESULT))
+#define IS_BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_RESULT))
+#define BATCH_IMPORT_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+
+typedef struct _BatchImportResult BatchImportResult;
+typedef struct _BatchImportResultClass BatchImportResultClass;
+typedef struct _BatchImportResultPrivate BatchImportResultPrivate;
+typedef struct _ParamSpecBatchImportResult ParamSpecBatchImportResult;
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+typedef struct _ImportManifestPrivate ImportManifestPrivate;
+#define _batch_import_result_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_result_unref (var), NULL)))
+typedef struct _ParamSpecImportManifest ParamSpecImportManifest;
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+typedef struct _BatchImportPrivate BatchImportPrivate;
+
+#define TYPE_PREPARED_FILE (prepared_file_get_type ())
+#define PREPARED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREPARED_FILE, PreparedFile))
+#define PREPARED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREPARED_FILE, PreparedFileClass))
+#define IS_PREPARED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREPARED_FILE))
+#define IS_PREPARED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREPARED_FILE))
+#define PREPARED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREPARED_FILE, PreparedFileClass))
+
+typedef struct _PreparedFile PreparedFile;
+typedef struct _PreparedFileClass PreparedFileClass;
+
+#define TYPE_COMPLETED_IMPORT_OBJECT (completed_import_object_get_type ())
+#define COMPLETED_IMPORT_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMPLETED_IMPORT_OBJECT, CompletedImportObject))
+#define COMPLETED_IMPORT_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMPLETED_IMPORT_OBJECT, CompletedImportObjectClass))
+#define IS_COMPLETED_IMPORT_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMPLETED_IMPORT_OBJECT))
+#define IS_COMPLETED_IMPORT_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMPLETED_IMPORT_OBJECT))
+#define COMPLETED_IMPORT_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMPLETED_IMPORT_OBJECT, CompletedImportObjectClass))
+
+typedef struct _CompletedImportObject CompletedImportObject;
+typedef struct _CompletedImportObjectClass CompletedImportObjectClass;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+#define _batch_import_roll_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_roll_unref (var), NULL)))
+#define _import_manifest_unref0(var) ((var == NULL) ? NULL : (var = (import_manifest_unref (var), NULL)))
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define TYPE_BACKGROUND_IMPORT_JOB (background_import_job_get_type ())
+#define BACKGROUND_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob))
+#define BACKGROUND_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJobClass))
+#define IS_BACKGROUND_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_IMPORT_JOB))
+#define IS_BACKGROUND_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_IMPORT_JOB))
+#define BACKGROUND_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJobClass))
+
+typedef struct _BackgroundImportJob BackgroundImportJob;
+typedef struct _BackgroundImportJobClass BackgroundImportJobClass;
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _BackgroundImportJobPrivate BackgroundImportJobPrivate;
+
+#define TYPE_WORK_SNIFFER (work_sniffer_get_type ())
+#define WORK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORK_SNIFFER, WorkSniffer))
+#define WORK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORK_SNIFFER, WorkSnifferClass))
+#define IS_WORK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORK_SNIFFER))
+#define IS_WORK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORK_SNIFFER))
+#define WORK_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORK_SNIFFER, WorkSnifferClass))
+
+typedef struct _WorkSniffer WorkSniffer;
+typedef struct _WorkSnifferClass WorkSnifferClass;
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+typedef struct _WorkSnifferPrivate WorkSnifferPrivate;
+
+#define TYPE_FILE_TO_PREPARE (file_to_prepare_get_type ())
+#define FILE_TO_PREPARE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILE_TO_PREPARE, FileToPrepare))
+#define FILE_TO_PREPARE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILE_TO_PREPARE, FileToPrepareClass))
+#define IS_FILE_TO_PREPARE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILE_TO_PREPARE))
+#define IS_FILE_TO_PREPARE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILE_TO_PREPARE))
+#define FILE_TO_PREPARE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILE_TO_PREPARE, FileToPrepareClass))
+
+typedef struct _FileToPrepare FileToPrepare;
+typedef struct _FileToPrepareClass FileToPrepareClass;
+
+#define TYPE_PREPARE_FILES_JOB (prepare_files_job_get_type ())
+#define PREPARE_FILES_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREPARE_FILES_JOB, PrepareFilesJob))
+#define PREPARE_FILES_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREPARE_FILES_JOB, PrepareFilesJobClass))
+#define IS_PREPARE_FILES_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREPARE_FILES_JOB))
+#define IS_PREPARE_FILES_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREPARE_FILES_JOB))
+#define PREPARE_FILES_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREPARE_FILES_JOB, PrepareFilesJobClass))
+
+typedef struct _PrepareFilesJob PrepareFilesJob;
+typedef struct _PrepareFilesJobClass PrepareFilesJobClass;
+
+#define TYPE_NOTIFICATION_OBJECT (notification_object_get_type ())
+#define NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFICATION_OBJECT, NotificationObject))
+#define NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFICATION_OBJECT, NotificationObjectClass))
+#define IS_NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFICATION_OBJECT))
+#define IS_NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFICATION_OBJECT))
+#define NOTIFICATION_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFICATION_OBJECT, NotificationObjectClass))
+
+typedef struct _NotificationObject NotificationObject;
+typedef struct _NotificationObjectClass NotificationObjectClass;
+
+#define TYPE_THUMBNAIL_WRITER_JOB (thumbnail_writer_job_get_type ())
+#define THUMBNAIL_WRITER_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_WRITER_JOB, ThumbnailWriterJob))
+#define THUMBNAIL_WRITER_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_WRITER_JOB, ThumbnailWriterJobClass))
+#define IS_THUMBNAIL_WRITER_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_WRITER_JOB))
+#define IS_THUMBNAIL_WRITER_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_WRITER_JOB))
+#define THUMBNAIL_WRITER_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_WRITER_JOB, ThumbnailWriterJobClass))
+
+typedef struct _ThumbnailWriterJob ThumbnailWriterJob;
+typedef struct _ThumbnailWriterJobClass ThumbnailWriterJobClass;
+#define _completed_import_object_unref0(var) ((var == NULL) ? NULL : (var = (completed_import_object_unref (var), NULL)))
+
+#define TYPE_PREPARED_FILE_IMPORT_JOB (prepared_file_import_job_get_type ())
+#define PREPARED_FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJob))
+#define PREPARED_FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJobClass))
+#define IS_PREPARED_FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREPARED_FILE_IMPORT_JOB))
+#define IS_PREPARED_FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREPARED_FILE_IMPORT_JOB))
+#define PREPARED_FILE_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJobClass))
+
+typedef struct _PreparedFileImportJob PreparedFileImportJob;
+typedef struct _PreparedFileImportJobClass PreparedFileImportJobClass;
+#define _prepared_file_unref0(var) ((var == NULL) ? NULL : (var = (prepared_file_unref (var), NULL)))
+typedef struct _PreparedFilePrivate PreparedFilePrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_INTERLOCKED_NOTIFICATION_OBJECT (interlocked_notification_object_get_type ())
+#define INTERLOCKED_NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObject))
+#define INTERLOCKED_NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObjectClass))
+#define IS_INTERLOCKED_NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INTERLOCKED_NOTIFICATION_OBJECT))
+#define IS_INTERLOCKED_NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INTERLOCKED_NOTIFICATION_OBJECT))
+#define INTERLOCKED_NOTIFICATION_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObjectClass))
+
+typedef struct _InterlockedNotificationObject InterlockedNotificationObject;
+typedef struct _InterlockedNotificationObjectClass InterlockedNotificationObjectClass;
+
+#define TYPE_PREPARED_FILE_CLUSTER (prepared_file_cluster_get_type ())
+#define PREPARED_FILE_CLUSTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREPARED_FILE_CLUSTER, PreparedFileCluster))
+#define PREPARED_FILE_CLUSTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREPARED_FILE_CLUSTER, PreparedFileClusterClass))
+#define IS_PREPARED_FILE_CLUSTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREPARED_FILE_CLUSTER))
+#define IS_PREPARED_FILE_CLUSTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREPARED_FILE_CLUSTER))
+#define PREPARED_FILE_CLUSTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREPARED_FILE_CLUSTER, PreparedFileClusterClass))
+
+typedef struct _PreparedFileCluster PreparedFileCluster;
+typedef struct _PreparedFileClusterClass PreparedFileClusterClass;
+typedef struct _NotificationObjectPrivate NotificationObjectPrivate;
+typedef struct _InterlockedNotificationObjectPrivate InterlockedNotificationObjectPrivate;
+typedef struct _PreparedFileClusterPrivate PreparedFileClusterPrivate;
+#define _notification_object_unref0(var) ((var == NULL) ? NULL : (var = (notification_object_unref (var), NULL)))
+
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE (library_photo_source_collection_state_get_type ())
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define VIDEO_SOURCE_COLLECTION_TYPE_STATE (video_source_collection_state_get_type ())
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_VIDEO_ID (video_id_get_type ())
+typedef struct _VideoID VideoID;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_VIDEO_TABLE (video_table_get_type ())
+#define VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_TABLE, VideoTable))
+#define VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_TABLE, VideoTableClass))
+#define IS_VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_TABLE))
+#define IS_VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_TABLE))
+#define VIDEO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_TABLE, VideoTableClass))
+
+typedef struct _VideoTable VideoTable;
+typedef struct _VideoTableClass VideoTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_DATABASE_SOURCE_HOLDING_TANK (database_source_holding_tank_get_type ())
+#define DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank))
+#define DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+#define IS_DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define IS_DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define DATABASE_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+
+typedef struct _DatabaseSourceHoldingTank DatabaseSourceHoldingTank;
+typedef struct _DatabaseSourceHoldingTankClass DatabaseSourceHoldingTankClass;
+
+#define TYPE_MEDIA_SOURCE_HOLDING_TANK (media_source_holding_tank_get_type ())
+#define MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank))
+#define MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+#define IS_MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define IS_MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define MEDIA_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+
+typedef struct _MediaSourceHoldingTank MediaSourceHoldingTank;
+typedef struct _MediaSourceHoldingTankClass MediaSourceHoldingTankClass;
+#define _source_holding_tank_unref0(var) ((var == NULL) ? NULL : (var = (source_holding_tank_unref (var), NULL)))
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+
+#define TYPE_PHOTO_TABLE (photo_table_get_type ())
+#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
+#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
+#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
+#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
+#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))
+
+typedef struct _PhotoTable PhotoTable;
+typedef struct _PhotoTableClass PhotoTableClass;
+typedef struct _BatchImportProcessPreparedFilesData BatchImportProcessPreparedFilesData;
+typedef struct _PrepareFilesJobPrivate PrepareFilesJobPrivate;
+typedef struct _PreparedFileImportJobPrivate PreparedFileImportJobPrivate;
+
+#define TYPE_READY_FOR_IMPORT (ready_for_import_get_type ())
+#define READY_FOR_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_READY_FOR_IMPORT, ReadyForImport))
+#define READY_FOR_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_READY_FOR_IMPORT, ReadyForImportClass))
+#define IS_READY_FOR_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_READY_FOR_IMPORT))
+#define IS_READY_FOR_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_READY_FOR_IMPORT))
+#define READY_FOR_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_READY_FOR_IMPORT, ReadyForImportClass))
+
+typedef struct _ReadyForImport ReadyForImport;
+typedef struct _ReadyForImportClass ReadyForImportClass;
+typedef struct _ReadyForImportPrivate ReadyForImportPrivate;
+
+#define TYPE_PHOTO_IMPORT_PARAMS (photo_import_params_get_type ())
+#define PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParams))
+#define PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass))
+#define IS_PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_IMPORT_PARAMS))
+#define IS_PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_IMPORT_PARAMS))
+#define PHOTO_IMPORT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass))
+
+typedef struct _PhotoImportParams PhotoImportParams;
+typedef struct _PhotoImportParamsClass PhotoImportParamsClass;
+
+#define TYPE_VIDEO_IMPORT_PARAMS (video_import_params_get_type ())
+#define VIDEO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_IMPORT_PARAMS, VideoImportParams))
+#define VIDEO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_IMPORT_PARAMS, VideoImportParamsClass))
+#define IS_VIDEO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_IMPORT_PARAMS))
+#define IS_VIDEO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_IMPORT_PARAMS))
+#define VIDEO_IMPORT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_IMPORT_PARAMS, VideoImportParamsClass))
+
+typedef struct _VideoImportParams VideoImportParams;
+typedef struct _VideoImportParamsClass VideoImportParamsClass;
+
+#define TYPE_TOMBSTONE (tombstone_get_type ())
+#define TOMBSTONE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE, Tombstone))
+#define TOMBSTONE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE, TombstoneClass))
+#define IS_TOMBSTONE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE))
+#define IS_TOMBSTONE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE))
+#define TOMBSTONE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE, TombstoneClass))
+
+typedef struct _Tombstone Tombstone;
+typedef struct _TombstoneClass TombstoneClass;
+
+#define TYPE_TOMBSTONE_SOURCE_COLLECTION (tombstone_source_collection_get_type ())
+#define TOMBSTONE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollection))
+#define TOMBSTONE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollectionClass))
+#define IS_TOMBSTONE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION))
+#define IS_TOMBSTONE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE_SOURCE_COLLECTION))
+#define TOMBSTONE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollectionClass))
+
+typedef struct _TombstoneSourceCollection TombstoneSourceCollection;
+typedef struct _TombstoneSourceCollectionClass TombstoneSourceCollectionClass;
+typedef struct _PhotoImportParamsPrivate PhotoImportParamsPrivate;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_THUMBNAILS (thumbnails_get_type ())
+#define THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAILS, Thumbnails))
+#define THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAILS, ThumbnailsClass))
+#define IS_THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAILS))
+#define IS_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAILS))
+#define THUMBNAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAILS, ThumbnailsClass))
+
+typedef struct _Thumbnails Thumbnails;
+typedef struct _ThumbnailsClass ThumbnailsClass;
+
+#define TYPE_PHOTO_ROW (photo_row_get_type ())
+#define PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_ROW, PhotoRow))
+#define PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_ROW, PhotoRowClass))
+#define IS_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_ROW))
+#define IS_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_ROW))
+#define PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_ROW, PhotoRowClass))
+
+typedef struct _PhotoRow PhotoRow;
+typedef struct _PhotoRowClass PhotoRowClass;
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+#define _backing_photo_row_unref0(var) ((var == NULL) ? NULL : (var = (backing_photo_row_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _thumbnails_unref0(var) ((var == NULL) ? NULL : (var = (thumbnails_unref (var), NULL)))
+typedef struct _ThumbnailWriterJobPrivate ThumbnailWriterJobPrivate;
+typedef struct _CompletedImportObjectPrivate CompletedImportObjectPrivate;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+typedef struct _DuplicatedFilePrivate DuplicatedFilePrivate;
+#define _video_id_free0(var) ((var == NULL) ? NULL : (var = (video_id_free (var), NULL)))
+#define _photo_id_free0(var) ((var == NULL) ? NULL : (var = (photo_id_free (var), NULL)))
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+typedef struct _FileToPreparePrivate FileToPreparePrivate;
+#define _file_to_prepare_unref0(var) ((var == NULL) ? NULL : (var = (file_to_prepare_unref (var), NULL)))
+typedef struct _ParamSpecFileToPrepare ParamSpecFileToPrepare;
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+
+#define TYPE_RAW_FILE_FORMAT_PROPERTIES (raw_file_format_properties_get_type ())
+#define RAW_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties))
+#define RAW_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatPropertiesClass))
+#define IS_RAW_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RAW_FILE_FORMAT_PROPERTIES))
+#define IS_RAW_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RAW_FILE_FORMAT_PROPERTIES))
+#define RAW_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatPropertiesClass))
+
+typedef struct _RawFileFormatProperties RawFileFormatProperties;
+typedef struct _RawFileFormatPropertiesClass RawFileFormatPropertiesClass;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+
+#define TYPE_JFIF_FILE_FORMAT_PROPERTIES (jfif_file_format_properties_get_type ())
+#define JFIF_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties))
+#define JFIF_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatPropertiesClass))
+#define IS_JFIF_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_FILE_FORMAT_PROPERTIES))
+#define IS_JFIF_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_FILE_FORMAT_PROPERTIES))
+#define JFIF_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatPropertiesClass))
+
+typedef struct _JfifFileFormatProperties JfifFileFormatProperties;
+typedef struct _JfifFileFormatPropertiesClass JfifFileFormatPropertiesClass;
+typedef struct _ParamSpecPreparedFile ParamSpecPreparedFile;
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL)))
+#define _photo_import_params_unref0(var) ((var == NULL) ? NULL : (var = (photo_import_params_unref (var), NULL)))
+#define _video_import_params_unref0(var) ((var == NULL) ? NULL : (var = (video_import_params_unref (var), NULL)))
+typedef struct _VideoImportParamsPrivate VideoImportParamsPrivate;
+
+#define TYPE_VIDEO_ROW (video_row_get_type ())
+#define VIDEO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_ROW, VideoRow))
+#define VIDEO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_ROW, VideoRowClass))
+#define IS_VIDEO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_ROW))
+#define IS_VIDEO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_ROW))
+#define VIDEO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_ROW, VideoRowClass))
+
+typedef struct _VideoRow VideoRow;
+typedef struct _VideoRowClass VideoRowClass;
+typedef struct _ParamSpecReadyForImport ParamSpecReadyForImport;
+#define _ready_for_import_unref0(var) ((var == NULL) ? NULL : (var = (ready_for_import_unref (var), NULL)))
+
+#define THUMBNAIL_CACHE_TYPE_SIZE (thumbnail_cache_size_get_type ())
+typedef struct _ParamSpecCompletedImportObject ParamSpecCompletedImportObject;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+typedef enum {
+ GPHOTO_ERROR_LIBRARY
+} GPhotoError;
+#define GPHOTO_ERROR gphoto_error_quark ()
+struct _BatchImportJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportJobPrivate * priv;
+};
+
+struct _BatchImportJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportJob *self);
+ gchar* (*get_dest_identifier) (BatchImportJob* self);
+ gchar* (*get_source_identifier) (BatchImportJob* self);
+ gboolean (*is_directory) (BatchImportJob* self);
+ gchar* (*get_basename) (BatchImportJob* self);
+ gchar* (*get_path) (BatchImportJob* self);
+ DuplicatedFile* (*get_duplicated_file) (BatchImportJob* self);
+ void (*set_associated) (BatchImportJob* self, BatchImportJob* associated);
+ gboolean (*determine_file_size) (BatchImportJob* self, guint64* filesize, GFile** file_or_dir);
+ gboolean (*prepare) (BatchImportJob* self, GFile** file_to_import, gboolean* copy_to_library, GError** error);
+ gboolean (*complete) (BatchImportJob* self, MediaSource* source, BatchImportRoll* import_roll, GError** error);
+ time_t (*get_exposure_time_override) (BatchImportJob* self);
+};
+
+struct _ParamSpecBatchImportJob {
+ GParamSpec parent_instance;
+};
+
+struct _FileImportJob {
+ BatchImportJob parent_instance;
+ FileImportJobPrivate * priv;
+};
+
+struct _FileImportJobClass {
+ BatchImportJobClass parent_class;
+};
+
+struct _FileImportJobPrivate {
+ GFile* file_or_dir;
+ gboolean copy_to_library;
+ FileImportJob* associated;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _BatchImportRoll {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportRollPrivate * priv;
+ ImportID import_id;
+ ViewCollection* generated_events;
+};
+
+struct _BatchImportRollClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportRoll *self);
+};
+
+struct _ParamSpecBatchImportRoll {
+ GParamSpec parent_instance;
+};
+
+struct _BatchImportResult {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportResultPrivate * priv;
+ BatchImportJob* job;
+ GFile* file;
+ gchar* src_identifier;
+ gchar* dest_identifier;
+ ImportResult result;
+ gchar* errmsg;
+ DuplicatedFile* duplicate_of;
+};
+
+struct _BatchImportResultClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportResult *self);
+};
+
+struct _ParamSpecBatchImportResult {
+ GParamSpec parent_instance;
+};
+
+struct _ImportManifest {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ImportManifestPrivate * priv;
+ GeeList* imported;
+ GeeList* success;
+ GeeList* camera_failed;
+ GeeList* failed;
+ GeeList* write_failed;
+ GeeList* skipped_photos;
+ GeeList* skipped_files;
+ GeeList* aborted;
+ GeeList* already_imported;
+ GeeList* corrupt_files;
+ GeeList* all;
+};
+
+struct _ImportManifestClass {
+ GTypeClass parent_class;
+ void (*finalize) (ImportManifest *self);
+};
+
+struct _ParamSpecImportManifest {
+ GParamSpec parent_instance;
+};
+
+struct _BatchImport {
+ GObject parent_instance;
+ BatchImportPrivate * priv;
+};
+
+struct _BatchImportClass {
+ GObjectClass parent_class;
+};
+
+typedef void (*BatchImportImportReporter) (ImportManifest* manifest, BatchImportRoll* import_roll, void* user_data);
+struct _BatchImportPrivate {
+ GeeIterable* jobs;
+ BatchImportRoll* import_roll;
+ gchar* name;
+ guint64 completed_bytes;
+ guint64 total_bytes;
+ BatchImportImportReporter reporter;
+ gpointer reporter_target;
+ ImportManifest* manifest;
+ gboolean scheduled;
+ gboolean completed;
+ gint file_imports_to_perform;
+ gint file_imports_completed;
+ GCancellable* cancellable;
+ gulong last_preparing_ms;
+ GeeHashSet* skipset;
+ GeeHashMap* imported_full_md5_table;
+ guint throbber_id;
+ guint max_outstanding_import_jobs;
+ gboolean untrash_duplicates;
+ gboolean mark_duplicates_online;
+ GeeList* ready_files;
+ GeeList* ready_thumbnails;
+ GeeList* display_imported_queue;
+ GeeList* ready_sources;
+};
+
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _BackgroundImportJob {
+ BackgroundJob parent_instance;
+ BackgroundImportJobPrivate * priv;
+ ImportResult abort_flag;
+ GeeList* failed;
+};
+
+struct _BackgroundImportJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+struct _WorkSniffer {
+ BackgroundImportJob parent_instance;
+ WorkSnifferPrivate * priv;
+ GeeList* files_to_prepare;
+ guint64 total_bytes;
+};
+
+struct _WorkSnifferClass {
+ BackgroundImportJobClass parent_class;
+};
+
+typedef void (*NotificationCallback) (BackgroundJob* job, NotificationObject* user, void* user_data);
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _PreparedFile {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PreparedFilePrivate * priv;
+ BatchImportJob* job;
+ ImportResult result;
+ GFile* file;
+ GFile* associated_file;
+ gchar* source_id;
+ gchar* dest_id;
+ gboolean copy_to_library;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* full_md5;
+ PhotoFileFormat file_format;
+ guint64 filesize;
+ gboolean is_video;
+};
+
+struct _PreparedFileClass {
+ GTypeClass parent_class;
+ void (*finalize) (PreparedFile *self);
+};
+
+struct _NotificationObject {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ NotificationObjectPrivate * priv;
+};
+
+struct _NotificationObjectClass {
+ GTypeClass parent_class;
+ void (*finalize) (NotificationObject *self);
+};
+
+struct _InterlockedNotificationObject {
+ NotificationObject parent_instance;
+ InterlockedNotificationObjectPrivate * priv;
+};
+
+struct _InterlockedNotificationObjectClass {
+ NotificationObjectClass parent_class;
+};
+
+struct _PreparedFileCluster {
+ InterlockedNotificationObject parent_instance;
+ PreparedFileClusterPrivate * priv;
+ GeeArrayList* list;
+};
+
+struct _PreparedFileClusterClass {
+ InterlockedNotificationObjectClass parent_class;
+};
+
+typedef enum {
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_UNKNOWN,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER
+} LibraryPhotoSourceCollectionState;
+
+typedef enum {
+ VIDEO_SOURCE_COLLECTION_STATE_UNKNOWN,
+ VIDEO_SOURCE_COLLECTION_STATE_ONLINE,
+ VIDEO_SOURCE_COLLECTION_STATE_OFFLINE,
+ VIDEO_SOURCE_COLLECTION_STATE_TRASH
+} VideoSourceCollectionState;
+
+struct _VideoID {
+ gint64 id;
+};
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _PhotoID {
+ gint64 id;
+};
+
+struct _BatchImportProcessPreparedFilesData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ BatchImport* self;
+ GeeList* list;
+ GeeList* _prepared_file_list;
+ GeeList* _tmp0_;
+ GeeList* _tmp1_;
+ gint _prepared_file_size;
+ GeeList* _tmp2_;
+ gint _tmp3_;
+ gint _tmp4_;
+ gint _prepared_file_index;
+ gint _tmp5_;
+ gint _tmp6_;
+ gint _tmp7_;
+ PreparedFile* prepared_file;
+ GeeList* _tmp8_;
+ gint _tmp9_;
+ gpointer _tmp10_;
+ BatchImportResult* import_result;
+ LibraryPhotoSourceCollectionState photo_state;
+ LibraryPhoto* photo;
+ LibraryPhotoSourceCollection* _tmp11_;
+ PreparedFile* _tmp12_;
+ GFile* _tmp13_;
+ LibraryPhotoSourceCollectionState _tmp14_;
+ LibraryPhoto* _tmp15_;
+ LibraryPhoto* _tmp16_;
+ LibraryPhotoSourceCollectionState _tmp17_;
+ PreparedFile* _tmp18_;
+ BatchImportJob* _tmp19_;
+ PreparedFile* _tmp20_;
+ GFile* _tmp21_;
+ PreparedFile* _tmp22_;
+ GFile* _tmp23_;
+ gchar* _tmp24_;
+ gchar* _tmp25_;
+ PreparedFile* _tmp26_;
+ GFile* _tmp27_;
+ gchar* _tmp28_;
+ gchar* _tmp29_;
+ LibraryPhoto* _tmp30_;
+ GFile* _tmp31_;
+ GFile* _tmp32_;
+ DuplicatedFile* _tmp33_;
+ DuplicatedFile* _tmp34_;
+ BatchImportResult* _tmp35_;
+ LibraryPhotoSourceCollectionState _tmp36_;
+ LibraryPhoto* _tmp37_;
+ LibraryPhotoSourceCollectionState _tmp38_;
+ GEnumValue* _tmp39_;
+ BatchImportResult* _tmp40_;
+ BatchImportResult* _tmp41_;
+ VideoSourceCollectionState video_state;
+ Video* video;
+ VideoSourceCollection* _tmp42_;
+ PreparedFile* _tmp43_;
+ GFile* _tmp44_;
+ VideoSourceCollectionState _tmp45_;
+ Video* _tmp46_;
+ Video* _tmp47_;
+ VideoSourceCollectionState _tmp48_;
+ PreparedFile* _tmp49_;
+ BatchImportJob* _tmp50_;
+ PreparedFile* _tmp51_;
+ GFile* _tmp52_;
+ PreparedFile* _tmp53_;
+ GFile* _tmp54_;
+ gchar* _tmp55_;
+ gchar* _tmp56_;
+ PreparedFile* _tmp57_;
+ GFile* _tmp58_;
+ gchar* _tmp59_;
+ gchar* _tmp60_;
+ Video* _tmp61_;
+ GFile* _tmp62_;
+ GFile* _tmp63_;
+ DuplicatedFile* _tmp64_;
+ DuplicatedFile* _tmp65_;
+ BatchImportResult* _tmp66_;
+ VideoSourceCollectionState _tmp67_;
+ Video* _tmp68_;
+ VideoSourceCollectionState _tmp69_;
+ GEnumValue* _tmp70_;
+ BatchImportResult* _tmp71_;
+ BatchImportResult* _tmp72_;
+ gboolean _tmp73_;
+ PreparedFile* _tmp74_;
+ gboolean _tmp75_;
+ PreparedFile* _tmp76_;
+ GFile* _tmp77_;
+ PreparedFile* _tmp78_;
+ const gchar* _tmp79_;
+ gboolean _tmp80_;
+ VideoID* duplicate_ids;
+ VideoTable* _tmp81_;
+ VideoTable* _tmp82_;
+ PreparedFile* _tmp83_;
+ GFile* _tmp84_;
+ PreparedFile* _tmp85_;
+ const gchar* _tmp86_;
+ gint _tmp87_;
+ VideoID* _tmp88_;
+ VideoID* _tmp89_;
+ gint _tmp89__length1;
+ gint duplicate_ids_length1;
+ gint _duplicate_ids_size_;
+ VideoID* _tmp90_;
+ gint _tmp90__length1;
+ DuplicatedFile* duplicated_file;
+ VideoID* _tmp91_;
+ gint _tmp91__length1;
+ VideoID _tmp92_;
+ DuplicatedFile* _tmp93_;
+ ImportResult result_code;
+ gboolean _tmp94_;
+ Video* dupe_video;
+ VideoSourceCollection* _tmp95_;
+ MediaSourceHoldingTank* _tmp96_;
+ MediaSourceHoldingTank* _tmp97_;
+ PreparedFile* _tmp98_;
+ GFile* _tmp99_;
+ MediaSource* _tmp100_;
+ Video* _tmp101_;
+ Video* _tmp102_;
+ VideoSourceCollection* _tmp103_;
+ MediaSourceHoldingTank* _tmp104_;
+ MediaSourceHoldingTank* _tmp105_;
+ PreparedFile* _tmp106_;
+ const gchar* _tmp107_;
+ MediaSource* _tmp108_;
+ Video* _tmp109_;
+ PreparedFile* _tmp110_;
+ GFile* _tmp111_;
+ gchar* _tmp112_;
+ gchar* _tmp113_;
+ Video* _tmp114_;
+ PreparedFile* _tmp115_;
+ GFile* _tmp116_;
+ Video* _tmp117_;
+ ImportManifest* _tmp118_;
+ GeeList* _tmp119_;
+ Video* _tmp120_;
+ Video* _tmp121_;
+ guint64 _tmp122_;
+ PreparedFile* _tmp123_;
+ BatchImportJob* _tmp124_;
+ PreparedFile* _tmp125_;
+ GFile* _tmp126_;
+ PreparedFile* _tmp127_;
+ GFile* _tmp128_;
+ gchar* _tmp129_;
+ gchar* _tmp130_;
+ PreparedFile* _tmp131_;
+ GFile* _tmp132_;
+ gchar* _tmp133_;
+ gchar* _tmp134_;
+ DuplicatedFile* _tmp135_;
+ ImportResult _tmp136_;
+ BatchImportResult* _tmp137_;
+ ImportResult _tmp138_;
+ ImportManifest* _tmp139_;
+ BatchImportResult* _tmp140_;
+ PreparedFile* _tmp141_;
+ GFile* _tmp142_;
+ GFile* _tmp143_;
+ gboolean _tmp144_;
+ PreparedFile* _tmp145_;
+ BatchImportJob* _tmp146_;
+ PreparedFile* _tmp147_;
+ GFile* _tmp148_;
+ PreparedFile* _tmp149_;
+ GFile* _tmp150_;
+ gchar* _tmp151_;
+ gchar* _tmp152_;
+ PreparedFile* _tmp153_;
+ GFile* _tmp154_;
+ gchar* _tmp155_;
+ gchar* _tmp156_;
+ PreparedFile* _tmp157_;
+ GFile* _tmp158_;
+ GFile* _tmp159_;
+ DuplicatedFile* _tmp160_;
+ DuplicatedFile* _tmp161_;
+ BatchImportResult* _tmp162_;
+ PreparedFile* _tmp163_;
+ GFile* _tmp164_;
+ PreparedFile* _tmp165_;
+ const gchar* _tmp166_;
+ PreparedFile* _tmp167_;
+ PhotoFileFormat _tmp168_;
+ gboolean _tmp169_;
+ gboolean _tmp170_;
+ LibraryPhotoSourceCollection* _tmp171_;
+ PreparedFile* _tmp172_;
+ GFile* _tmp173_;
+ LibraryPhoto* _tmp174_;
+ gboolean _tmp175_;
+ LibraryPhoto* _tmp176_;
+ PreparedFile* _tmp177_;
+ const gchar* _tmp178_;
+ LibraryPhotoSourceCollection* _tmp179_;
+ PreparedFile* _tmp180_;
+ const gchar* _tmp181_;
+ LibraryPhoto* _tmp182_;
+ LibraryPhoto* _tmp183_;
+ PreparedFile* _tmp184_;
+ GFile* _tmp185_;
+ gchar* _tmp186_;
+ gchar* _tmp187_;
+ LibraryPhoto* _tmp188_;
+ PreparedFile* _tmp189_;
+ GFile* _tmp190_;
+ LibraryPhoto* _tmp191_;
+ LibraryPhoto* _tmp192_;
+ gboolean _tmp193_;
+ LibraryPhoto* _tmp194_;
+ gboolean _tmp195_;
+ LibraryPhotoSourceCollection* _tmp196_;
+ PreparedFile* _tmp197_;
+ GFile* _tmp198_;
+ LibraryPhoto* _tmp199_;
+ gboolean _tmp200_;
+ LibraryPhoto* _tmp201_;
+ PreparedFile* _tmp202_;
+ const gchar* _tmp203_;
+ LibraryPhotoSourceCollection* _tmp204_;
+ PreparedFile* _tmp205_;
+ const gchar* _tmp206_;
+ LibraryPhoto* _tmp207_;
+ LibraryPhoto* _tmp208_;
+ PreparedFile* _tmp209_;
+ GFile* _tmp210_;
+ gchar* _tmp211_;
+ gchar* _tmp212_;
+ LibraryPhoto* _tmp213_;
+ PreparedFile* _tmp214_;
+ GFile* _tmp215_;
+ LibraryPhoto* _tmp216_;
+ LibraryPhoto* _tmp217_;
+ PreparedFile* _tmp218_;
+ BatchImportJob* _tmp219_;
+ PreparedFile* _tmp220_;
+ GFile* _tmp221_;
+ PreparedFile* _tmp222_;
+ GFile* _tmp223_;
+ gchar* _tmp224_;
+ gchar* _tmp225_;
+ PreparedFile* _tmp226_;
+ GFile* _tmp227_;
+ gchar* _tmp228_;
+ gchar* _tmp229_;
+ BatchImportResult* _tmp230_;
+ ImportManifest* _tmp231_;
+ GeeList* _tmp232_;
+ LibraryPhoto* _tmp233_;
+ ImportManifest* _tmp234_;
+ BatchImportResult* _tmp235_;
+ LibraryPhoto* _tmp236_;
+ guint64 _tmp237_;
+ PreparedFile* _tmp238_;
+ GFile* _tmp239_;
+ gchar* _tmp240_;
+ gchar* _tmp241_;
+ PhotoID* photo_ids;
+ PhotoTable* _tmp242_;
+ PhotoTable* _tmp243_;
+ PreparedFile* _tmp244_;
+ GFile* _tmp245_;
+ PreparedFile* _tmp246_;
+ const gchar* _tmp247_;
+ PreparedFile* _tmp248_;
+ PhotoFileFormat _tmp249_;
+ gint _tmp250_;
+ PhotoID* _tmp251_;
+ PhotoID* _tmp252_;
+ gint _tmp252__length1;
+ gint photo_ids_length1;
+ gint _photo_ids_size_;
+ PhotoID* _tmp253_;
+ gint _tmp253__length1;
+ DuplicatedFile* _vala1_duplicated_file;
+ PhotoID* _tmp254_;
+ gint _tmp254__length1;
+ PhotoID _tmp255_;
+ DuplicatedFile* _tmp256_;
+ PreparedFile* _tmp257_;
+ BatchImportJob* _tmp258_;
+ PreparedFile* _tmp259_;
+ GFile* _tmp260_;
+ PreparedFile* _tmp261_;
+ GFile* _tmp262_;
+ gchar* _tmp263_;
+ gchar* _tmp264_;
+ PreparedFile* _tmp265_;
+ GFile* _tmp266_;
+ gchar* _tmp267_;
+ gchar* _tmp268_;
+ DuplicatedFile* _tmp269_;
+ BatchImportResult* _tmp270_;
+ BatchImportResult* _tmp271_;
+ BatchImportResult* _tmp272_;
+ GeeList* _tmp273_;
+ PreparedFile* _tmp274_;
+};
+
+struct _PrepareFilesJob {
+ BackgroundImportJob parent_instance;
+ PrepareFilesJobPrivate * priv;
+ gint prepared_files;
+};
+
+struct _PrepareFilesJobClass {
+ BackgroundImportJobClass parent_class;
+};
+
+struct _PreparedFileImportJob {
+ BackgroundJob parent_instance;
+ PreparedFileImportJobPrivate * priv;
+ PreparedFile* not_ready;
+ ReadyForImport* ready;
+ BatchImportResult* failed;
+};
+
+struct _PreparedFileImportJobClass {
+ BackgroundJobClass parent_class;
+};
+
+struct _ReadyForImport {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ReadyForImportPrivate * priv;
+ GFile* final_file;
+ PreparedFile* prepared_file;
+ PhotoImportParams* photo_import_params;
+ VideoImportParams* video_import_params;
+ BatchImportResult* batch_result;
+ gboolean is_video;
+};
+
+struct _ReadyForImportClass {
+ GTypeClass parent_class;
+ void (*finalize) (ReadyForImport *self);
+};
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoImportParams {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoImportParamsPrivate * priv;
+ GFile* file;
+ GFile* final_associated_file;
+ ImportID import_id;
+ PhotoFileSnifferOptions sniffer_options;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* full_md5;
+ Thumbnails* thumbnails;
+ PhotoRow* row;
+ GeeCollection* keywords;
+};
+
+struct _PhotoImportParamsClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoImportParams *self);
+};
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _ThumbnailWriterJob {
+ BackgroundImportJob parent_instance;
+ ThumbnailWriterJobPrivate * priv;
+ CompletedImportObject* completed_import_source;
+};
+
+struct _ThumbnailWriterJobClass {
+ BackgroundImportJobClass parent_class;
+};
+
+struct _CompletedImportObject {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CompletedImportObjectPrivate * priv;
+ Thumbnails* thumbnails;
+ BatchImportResult* batch_result;
+ MediaSource* source;
+ BatchImportJob* original_job;
+ GdkPixbuf* user_preview;
+};
+
+struct _CompletedImportObjectClass {
+ GTypeClass parent_class;
+ void (*finalize) (CompletedImportObject *self);
+};
+
+struct _DuplicatedFile {
+ GObject parent_instance;
+ DuplicatedFilePrivate * priv;
+};
+
+struct _DuplicatedFileClass {
+ GObjectClass parent_class;
+};
+
+struct _DuplicatedFilePrivate {
+ VideoID* video_id;
+ PhotoID* photo_id;
+ GFile* file;
+};
+
+struct _FileToPrepare {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ FileToPreparePrivate * priv;
+ BatchImportJob* job;
+ GFile* file;
+ gboolean copy_to_library;
+ FileToPrepare* associated;
+};
+
+struct _FileToPrepareClass {
+ GTypeClass parent_class;
+ void (*finalize) (FileToPrepare *self);
+};
+
+struct _ParamSpecFileToPrepare {
+ GParamSpec parent_instance;
+};
+
+struct _WorkSnifferPrivate {
+ GeeIterable* jobs;
+ GeeHashSet* skipset;
+};
+
+struct _ParamSpecPreparedFile {
+ GParamSpec parent_instance;
+};
+
+struct _PrepareFilesJobPrivate {
+ GeeList* files_to_prepare;
+ NotificationCallback notification;
+ gpointer notification_target;
+ GFile* library_dir;
+ gint import_file_count;
+ gint fail_every;
+ gint skip_every;
+};
+
+struct _VideoImportParams {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ VideoImportParamsPrivate * priv;
+ GFile* file;
+ ImportID import_id;
+ gchar* md5;
+ time_t exposure_time_override;
+ Thumbnails* thumbnails;
+ VideoRow* row;
+};
+
+struct _VideoImportParamsClass {
+ GTypeClass parent_class;
+ void (*finalize) (VideoImportParams *self);
+};
+
+struct _ParamSpecReadyForImport {
+ GParamSpec parent_instance;
+};
+
+struct _PreparedFileImportJobPrivate {
+ ImportID import_id;
+};
+
+typedef enum {
+ THUMBNAIL_CACHE_SIZE_LARGEST = 360,
+ THUMBNAIL_CACHE_SIZE_BIG = 360,
+ THUMBNAIL_CACHE_SIZE_MEDIUM = 128,
+ THUMBNAIL_CACHE_SIZE_SMALLEST = 128
+} ThumbnailCacheSize;
+
+struct _ParamSpecCompletedImportObject {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer batch_import_job_parent_class = NULL;
+static gpointer file_import_job_parent_class = NULL;
+static gpointer batch_import_roll_parent_class = NULL;
+static gpointer batch_import_result_parent_class = NULL;
+static gpointer import_manifest_parent_class = NULL;
+static gpointer batch_import_parent_class = NULL;
+static Workers* batch_import_feeder_workers;
+static Workers* batch_import_feeder_workers = NULL;
+static Workers* batch_import_import_workers;
+static Workers* batch_import_import_workers = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+extern TombstoneSourceCollection* tombstone_global;
+extern EventSourceCollection* event_global;
+extern TagSourceCollection* tag_global;
+static gpointer duplicated_file_parent_class = NULL;
+static gpointer background_import_job_parent_class = NULL;
+static gpointer file_to_prepare_parent_class = NULL;
+static gpointer work_sniffer_parent_class = NULL;
+static gpointer prepared_file_parent_class = NULL;
+static gpointer prepared_file_cluster_parent_class = NULL;
+static gpointer prepare_files_job_parent_class = NULL;
+static gpointer ready_for_import_parent_class = NULL;
+static gpointer prepared_file_import_job_parent_class = NULL;
+static gpointer completed_import_object_parent_class = NULL;
+static gpointer thumbnail_writer_job_parent_class = NULL;
+
+GType import_result_get_type (void) G_GNUC_CONST;
+gchar* import_result_to_string (ImportResult self);
+gboolean import_result_is_abort (ImportResult self);
+gboolean import_result_is_nonuser_abort (ImportResult self);
+ImportResult import_result_convert_error (GError* err, ImportResult default_result);
+GQuark gphoto_error_quark (void);
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+GType duplicated_file_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+enum {
+ BATCH_IMPORT_JOB_DUMMY_PROPERTY
+};
+gchar* batch_import_job_get_dest_identifier (BatchImportJob* self);
+static gchar* batch_import_job_real_get_dest_identifier (BatchImportJob* self);
+gchar* batch_import_job_get_source_identifier (BatchImportJob* self);
+static gchar* batch_import_job_real_get_source_identifier (BatchImportJob* self);
+gboolean batch_import_job_is_directory (BatchImportJob* self);
+static gboolean batch_import_job_real_is_directory (BatchImportJob* self);
+gchar* batch_import_job_get_basename (BatchImportJob* self);
+static gchar* batch_import_job_real_get_basename (BatchImportJob* self);
+gchar* batch_import_job_get_path (BatchImportJob* self);
+static gchar* batch_import_job_real_get_path (BatchImportJob* self);
+DuplicatedFile* batch_import_job_get_duplicated_file (BatchImportJob* self);
+static DuplicatedFile* batch_import_job_real_get_duplicated_file (BatchImportJob* self);
+void batch_import_job_set_associated (BatchImportJob* self, BatchImportJob* associated);
+static void batch_import_job_real_set_associated (BatchImportJob* self, BatchImportJob* associated);
+gboolean batch_import_job_determine_file_size (BatchImportJob* self, guint64* filesize, GFile** file_or_dir);
+static gboolean batch_import_job_real_determine_file_size (BatchImportJob* self, guint64* filesize, GFile** file_or_dir);
+gboolean batch_import_job_prepare (BatchImportJob* self, GFile** file_to_import, gboolean* copy_to_library, GError** error);
+static gboolean batch_import_job_real_prepare (BatchImportJob* self, GFile** file_to_import, gboolean* copy_to_library, GError** error);
+gboolean batch_import_job_complete (BatchImportJob* self, MediaSource* source, BatchImportRoll* import_roll, GError** error);
+static gboolean batch_import_job_real_complete (BatchImportJob* self, MediaSource* source, BatchImportRoll* import_roll, GError** error);
+time_t batch_import_job_get_exposure_time_override (BatchImportJob* self);
+static time_t batch_import_job_real_get_exposure_time_override (BatchImportJob* self);
+BatchImportJob* batch_import_job_construct (GType object_type);
+static void batch_import_job_finalize (BatchImportJob* obj);
+GType file_import_job_get_type (void) G_GNUC_CONST;
+#define FILE_IMPORT_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_FILE_IMPORT_JOB, FileImportJobPrivate))
+enum {
+ FILE_IMPORT_JOB_DUMMY_PROPERTY
+};
+FileImportJob* file_import_job_new (GFile* file_or_dir, gboolean copy_to_library);
+FileImportJob* file_import_job_construct (GType object_type, GFile* file_or_dir, gboolean copy_to_library);
+static gchar* file_import_job_real_get_dest_identifier (BatchImportJob* base);
+static gchar* file_import_job_real_get_source_identifier (BatchImportJob* base);
+static gboolean file_import_job_real_is_directory (BatchImportJob* base);
+gboolean query_is_directory (GFile* file);
+static gchar* file_import_job_real_get_basename (BatchImportJob* base);
+static gchar* file_import_job_real_get_path (BatchImportJob* base);
+static void file_import_job_real_set_associated (BatchImportJob* base, BatchImportJob* associated);
+static gboolean file_import_job_real_determine_file_size (BatchImportJob* base, guint64* filesize, GFile** file);
+static gboolean file_import_job_real_prepare (BatchImportJob* base, GFile** file_to_import, gboolean* copy, GError** error);
+GFile* file_import_job_get_file (FileImportJob* self);
+static void file_import_job_finalize (BatchImportJob* obj);
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+enum {
+ BATCH_IMPORT_ROLL_DUMMY_PROPERTY
+};
+ViewCollection* view_collection_new (const gchar* name);
+ViewCollection* view_collection_construct (GType object_type, const gchar* name);
+BatchImportRoll* batch_import_roll_new (void);
+BatchImportRoll* batch_import_roll_construct (GType object_type);
+void import_id_generate (ImportID* result);
+static void batch_import_roll_finalize (BatchImportRoll* obj);
+gpointer batch_import_result_ref (gpointer instance);
+void batch_import_result_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_result (GValue* value, gpointer v_object);
+void value_take_batch_import_result (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_result (const GValue* value);
+GType batch_import_result_get_type (void) G_GNUC_CONST;
+enum {
+ BATCH_IMPORT_RESULT_DUMMY_PROPERTY
+};
+BatchImportResult* batch_import_result_new (BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, DuplicatedFile* duplicate_of, ImportResult _result_);
+BatchImportResult* batch_import_result_construct (GType object_type, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, DuplicatedFile* duplicate_of, ImportResult _result_);
+BatchImportResult* batch_import_result_new_from_error (BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, GError* err, ImportResult default_result);
+BatchImportResult* batch_import_result_construct_from_error (GType object_type, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, GError* err, ImportResult default_result);
+static void batch_import_result_finalize (BatchImportResult* obj);
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+enum {
+ IMPORT_MANIFEST_DUMMY_PROPERTY
+};
+ImportManifest* import_manifest_new (GeeList* prefailed, GeeList* pre_already_imported);
+ImportManifest* import_manifest_construct (GType object_type, GeeList* prefailed, GeeList* pre_already_imported);
+void import_manifest_add_result (ImportManifest* self, BatchImportResult* batch_result);
+static void import_manifest_finalize (ImportManifest* obj);
+GType batch_import_get_type (void) G_GNUC_CONST;
+gpointer prepared_file_ref (gpointer instance);
+void prepared_file_unref (gpointer instance);
+GParamSpec* param_spec_prepared_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_prepared_file (GValue* value, gpointer v_object);
+void value_take_prepared_file (GValue* value, gpointer v_object);
+gpointer value_get_prepared_file (const GValue* value);
+GType prepared_file_get_type (void) G_GNUC_CONST;
+gpointer completed_import_object_ref (gpointer instance);
+void completed_import_object_unref (gpointer instance);
+GParamSpec* param_spec_completed_import_object (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_completed_import_object (GValue* value, gpointer v_object);
+void value_take_completed_import_object (GValue* value, gpointer v_object);
+gpointer value_get_completed_import_object (const GValue* value);
+GType completed_import_object_get_type (void) G_GNUC_CONST;
+#define BATCH_IMPORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_BATCH_IMPORT, BatchImportPrivate))
+enum {
+ BATCH_IMPORT_DUMMY_PROPERTY
+};
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void batch_import_user_halt (BatchImport* self);
+static void _batch_import_user_halt_application_exiting (Application* _sender, gboolean panicked, gpointer self);
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+guint workers_thread_per_cpu_minus_one (void);
+#define BATCH_IMPORT_WORK_SNIFFER_THROBBER_MSEC 125
+#define BATCH_IMPORT_REPORT_EVERY_N_PREPARED_FILES 100
+#define BATCH_IMPORT_REPORT_PREPARED_FILES_EVERY_N_MSEC 3000
+#define BATCH_IMPORT_READY_SOURCES_COUNT_OVERFLOW 10
+#define BATCH_IMPORT_DISPLAY_QUEUE_TIMER_MSEC 125
+#define BATCH_IMPORT_DISPLAY_QUEUE_HYSTERESIS_OVERFLOW ((3 * 1000) / BATCH_IMPORT_DISPLAY_QUEUE_TIMER_MSEC)
+BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+GFile* media_source_get_file (MediaSource* self);
+static gboolean batch_import_display_imported_timer (BatchImport* self);
+static gboolean _batch_import_display_imported_timer_gsource_func (gpointer self);
+gchar* batch_import_get_name (BatchImport* self);
+gboolean batch_import_get_untrash_duplicates (BatchImport* self);
+void batch_import_set_untrash_duplicates (BatchImport* self, gboolean untrash_duplicates);
+gboolean batch_import_get_mark_duplicates_online (BatchImport* self);
+void batch_import_set_mark_duplicates_online (BatchImport* self, gboolean mark_duplicates_online);
+static void batch_import_log_status (BatchImport* self, const gchar* where);
+static gboolean batch_import_report_failure (BatchImport* self, BatchImportResult* import_result);
+guint64 query_total_file_size (GFile* file_or_dir, GCancellable* cancellable, GError** error);
+static void batch_import_report_progress (BatchImport* self, guint64 increment_of_progress);
+gulong now_ms (void);
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+GType background_import_job_get_type (void) G_GNUC_CONST;
+static gboolean batch_import_report_failures (BatchImport* self, BackgroundImportJob* background_job);
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+static void batch_import_report_completed (BatchImport* self, const gchar* where);
+static void batch_import_flush_ready_sources (BatchImport* self);
+static void batch_import_file_import_complete (BatchImport* self);
+void batch_import_schedule (BatchImport* self);
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static void batch_import_on_work_sniffed_out (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_work_sniffed_out_completion_callback (BackgroundJob* job, gpointer self);
+static void batch_import_on_sniffer_cancelled (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_sniffer_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+WorkSniffer* work_sniffer_new (BatchImport* owner, GeeIterable* jobs, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, GeeHashSet* skipset);
+WorkSniffer* work_sniffer_construct (GType object_type, BatchImport* owner, GeeIterable* jobs, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, GeeHashSet* skipset);
+GType work_sniffer_get_type (void) G_GNUC_CONST;
+static gboolean batch_import_on_sniffer_working (BatchImport* self);
+static gboolean _batch_import_on_sniffer_working_gsource_func (gpointer self);
+gpointer file_to_prepare_ref (gpointer instance);
+void file_to_prepare_unref (gpointer instance);
+GParamSpec* param_spec_file_to_prepare (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_file_to_prepare (GValue* value, gpointer v_object);
+void value_take_file_to_prepare (GValue* value, gpointer v_object);
+gpointer value_get_file_to_prepare (const GValue* value);
+GType file_to_prepare_get_type (void) G_GNUC_CONST;
+GType prepare_files_job_get_type (void) G_GNUC_CONST;
+gpointer notification_object_ref (gpointer instance);
+void notification_object_unref (gpointer instance);
+GParamSpec* param_spec_notification_object (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_notification_object (GValue* value, gpointer v_object);
+void value_take_notification_object (GValue* value, gpointer v_object);
+gpointer value_get_notification_object (const GValue* value);
+GType notification_object_get_type (void) G_GNUC_CONST;
+static void batch_import_on_file_prepared (BatchImport* self, BackgroundJob* j, NotificationObject* user);
+static void _batch_import_on_file_prepared_notification_callback (BackgroundJob* job, NotificationObject* user, gpointer self);
+static void batch_import_on_files_prepared (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_files_prepared_completion_callback (BackgroundJob* job, gpointer self);
+static void batch_import_on_file_prepare_cancelled (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_file_prepare_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+PrepareFilesJob* prepare_files_job_new (BatchImport* owner, GeeList* files_to_prepare, NotificationCallback notification, void* notification_target, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target);
+PrepareFilesJob* prepare_files_job_construct (GType object_type, BatchImport* owner, GeeList* files_to_prepare, NotificationCallback notification, void* notification_target, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target);
+static void batch_import_flush_import_jobs (BatchImport* self);
+gint workers_get_pending_job_count (Workers* self);
+static void batch_import_on_thumbnail_writer_completed (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_thumbnail_writer_completed_completion_callback (BackgroundJob* job, gpointer self);
+static void batch_import_on_thumbnail_writer_cancelled (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_thumbnail_writer_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+ThumbnailWriterJob* thumbnail_writer_job_new (BatchImport* owner, CompletedImportObject* completed_import_source, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancel_callback, void* cancel_callback_target);
+ThumbnailWriterJob* thumbnail_writer_job_construct (GType object_type, BatchImport* owner, CompletedImportObject* completed_import_source, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancel_callback, void* cancel_callback_target);
+GType thumbnail_writer_job_get_type (void) G_GNUC_CONST;
+static void batch_import_on_import_files_completed (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_import_files_completed_completion_callback (BackgroundJob* job, gpointer self);
+static void batch_import_on_import_files_cancelled (BatchImport* self, BackgroundJob* j);
+static void _batch_import_on_import_files_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+PreparedFileImportJob* prepared_file_import_job_new (BatchImport* owner, PreparedFile* prepared_file, ImportID* import_id, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target);
+PreparedFileImportJob* prepared_file_import_job_construct (GType object_type, BatchImport* owner, PreparedFile* prepared_file, ImportID* import_id, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target);
+GType prepared_file_import_job_get_type (void) G_GNUC_CONST;
+static GFile* batch_import_get_in_current_import (BatchImport* self, PreparedFile* prepared_file);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType interlocked_notification_object_get_type (void) G_GNUC_CONST;
+GType prepared_file_cluster_get_type (void) G_GNUC_CONST;
+static void batch_import_process_prepared_files (BatchImport* self, GeeList* list, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void batch_import_process_prepared_files_finish (BatchImport* self, GAsyncResult* _res_);
+static void batch_import_process_prepared_files_data_free (gpointer _data);
+static gboolean batch_import_process_prepared_files_co (BatchImportProcessPreparedFilesData* _data_);
+static gboolean _batch_import_process_prepared_files_co_gsource_func (gpointer self);
+GType library_photo_source_collection_state_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+LibraryPhoto* library_photo_source_collection_get_state_by_file (LibraryPhotoSourceCollection* self, GFile* file, LibraryPhotoSourceCollectionState* state);
+DuplicatedFile* duplicated_file_create_from_file (GFile* file);
+GFile* media_source_get_master_file (MediaSource* self);
+void media_source_mark_online (MediaSource* self);
+const gchar* library_photo_source_collection_state_to_string (LibraryPhotoSourceCollectionState self);
+GType video_source_collection_state_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+Video* video_source_collection_get_state_by_file (VideoSourceCollection* self, GFile* file, VideoSourceCollectionState* state);
+const gchar* video_source_collection_state_to_string (VideoSourceCollectionState self);
+gboolean video_is_duplicate (GFile* file, const gchar* full_md5);
+GType video_id_get_type (void) G_GNUC_CONST;
+VideoID* video_id_dup (const VideoID* self);
+void video_id_free (VideoID* self);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType video_table_get_type (void) G_GNUC_CONST;
+VideoTable* video_table_get_instance (void);
+VideoID* video_table_get_duplicate_ids (VideoTable* self, GFile* file, const gchar* md5, int* result_length1);
+DuplicatedFile* duplicated_file_create_from_video_id (VideoID* video_id);
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType database_source_holding_tank_get_type (void) G_GNUC_CONST;
+GType media_source_holding_tank_get_type (void) G_GNUC_CONST;
+MediaSourceHoldingTank* media_source_collection_get_offline_bin (MediaSourceCollection* self);
+MediaSource* media_source_holding_tank_fetch_by_master_file (MediaSourceHoldingTank* self, GFile* file);
+MediaSource* media_source_holding_tank_fetch_by_md5 (MediaSourceHoldingTank* self, const gchar* md5);
+GType monitorable_get_type (void) G_GNUC_CONST;
+void monitorable_set_master_file (Monitorable* self, GFile* file);
+guint64 media_source_get_filesize (MediaSource* self);
+gboolean photo_is_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format);
+LibraryPhoto* library_photo_source_collection_get_trashed_by_file (LibraryPhotoSourceCollection* self, GFile* file);
+LibraryPhoto* library_photo_source_collection_get_trashed_by_md5 (LibraryPhotoSourceCollection* self, const gchar* md5);
+void media_source_untrash (MediaSource* self);
+void photo_remove_all_transformations (Photo* self);
+LibraryPhoto* library_photo_source_collection_get_offline_by_file (LibraryPhotoSourceCollection* self, GFile* file);
+LibraryPhoto* library_photo_source_collection_get_offline_by_md5 (LibraryPhotoSourceCollection* self, const gchar* md5);
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+GType photo_table_get_type (void) G_GNUC_CONST;
+PhotoTable* photo_table_get_instance (void);
+PhotoID* photo_table_get_duplicate_ids (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format, int* result_length1);
+DuplicatedFile* duplicated_file_create_from_photo_id (PhotoID* photo_id);
+static void batch_import_done_preparing_files (BatchImport* self, BackgroundJob* j, const gchar* caller);
+gpointer ready_for_import_ref (gpointer instance);
+void ready_for_import_unref (gpointer instance);
+GParamSpec* param_spec_ready_for_import (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_ready_for_import (GValue* value, gpointer v_object);
+void value_take_ready_for_import (GValue* value, gpointer v_object);
+gpointer value_get_ready_for_import (const GValue* value);
+GType ready_for_import_get_type (void) G_GNUC_CONST;
+gpointer photo_import_params_ref (gpointer instance);
+void photo_import_params_unref (gpointer instance);
+GParamSpec* param_spec_photo_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_import_params (GValue* value, gpointer v_object);
+void value_take_photo_import_params (GValue* value, gpointer v_object);
+gpointer value_get_photo_import_params (const GValue* value);
+GType photo_import_params_get_type (void) G_GNUC_CONST;
+gpointer video_import_params_ref (gpointer instance);
+void video_import_params_unref (gpointer instance);
+GParamSpec* param_spec_video_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_video_import_params (GValue* value, gpointer v_object);
+void value_take_video_import_params (GValue* value, gpointer v_object);
+gpointer value_get_video_import_params (const GValue* value);
+GType video_import_params_get_type (void) G_GNUC_CONST;
+GType tombstone_get_type (void) G_GNUC_CONST;
+GType tombstone_source_collection_get_type (void) G_GNUC_CONST;
+Tombstone* tombstone_source_collection_locate (TombstoneSourceCollection* self, GFile* file);
+void tombstone_source_collection_resurrect (TombstoneSourceCollection* self, Tombstone* tombstone);
+ImportResult video_import_create (VideoImportParams* params, Video** video);
+ImportResult library_photo_import_create (PhotoImportParams* params, LibraryPhoto** photo);
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+gpointer thumbnails_ref (gpointer instance);
+void thumbnails_unref (gpointer instance);
+GParamSpec* param_spec_thumbnails (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_thumbnails (GValue* value, gpointer v_object);
+void value_take_thumbnails (GValue* value, gpointer v_object);
+gpointer value_get_thumbnails (const GValue* value);
+GType thumbnails_get_type (void) G_GNUC_CONST;
+gpointer photo_row_ref (gpointer instance);
+void photo_row_unref (gpointer instance);
+GParamSpec* param_spec_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_row (GValue* value, gpointer v_object);
+void value_take_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_photo_row (const GValue* value);
+GType photo_row_get_type (void) G_GNUC_CONST;
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+BackingPhotoRow* backing_photo_row_new (void);
+BackingPhotoRow* backing_photo_row_construct (GType object_type);
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+void photo_add_backing_photo_for_development (Photo* self, RawDeveloper d, BackingPhotoRow* bpr, GError** error);
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+RawDeveloper configuration_facade_get_default_raw_developer (ConfigurationFacade* self);
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+void photo_set_default_raw_developer (Photo* self, RawDeveloper d);
+void photo_set_raw_developer (Photo* self, RawDeveloper d);
+Thumbnails* ready_for_import_get_thumbnails (ReadyForImport* self);
+CompletedImportObject* completed_import_object_new (MediaSource* source, Thumbnails* thumbnails, BatchImportJob* original_job, BatchImportResult* import_result);
+CompletedImportObject* completed_import_object_construct (GType object_type, MediaSource* source, Thumbnails* thumbnails, BatchImportJob* original_job, BatchImportResult* import_result);
+BatchImportResult* ready_for_import_abort (ReadyForImport* self);
+gchar* data_object_to_string (DataObject* self);
+void library_photo_import_failed (LibraryPhoto* photo);
+void video_import_failed (Video* video);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+void media_collection_registry_begin_transaction_on_all (MediaCollectionRegistry* self);
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+void data_collection_freeze_notifications (DataCollection* self);
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+void media_source_collection_import_many (MediaSourceCollection* self, GeeCollection* media);
+void event_generate_many_events (GeeCollection* sources, ViewCollection* events_so_far);
+void data_collection_thaw_notifications (DataCollection* self);
+void media_collection_registry_commit_transaction_on_all (MediaCollectionRegistry* self);
+static void g_cclosure_user_marshal_VOID__UINT64_UINT64 (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__ENUM_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__BATCH_IMPORT_RESULT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__IMPORT_MANIFEST_BATCH_IMPORT_ROLL (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void batch_import_finalize (GObject* obj);
+#define DUPLICATED_FILE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DUPLICATED_FILE, DuplicatedFilePrivate))
+enum {
+ DUPLICATED_FILE_DUMMY_PROPERTY
+};
+static DuplicatedFile* duplicated_file_new (void);
+static DuplicatedFile* duplicated_file_construct (GType object_type);
+gboolean photo_id_is_valid (PhotoID *self);
+gboolean video_id_is_valid (VideoID *self);
+GFile* duplicated_file_get_file (DuplicatedFile* self);
+LibraryPhoto* library_photo_source_collection_fetch (LibraryPhotoSourceCollection* self, PhotoID* photo_id);
+Video* video_source_collection_fetch (VideoSourceCollection* self, VideoID* video_id);
+static void duplicated_file_finalize (GObject* obj);
+enum {
+ BACKGROUND_IMPORT_JOB_DUMMY_PROPERTY
+};
+BackgroundImportJob* background_import_job_construct (GType object_type, BatchImport* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target);
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+ImportResult background_import_job_abort_check (BackgroundImportJob* self);
+gboolean background_job_is_cancelled (BackgroundJob* self);
+void background_import_job_abort (BackgroundImportJob* self, ImportResult _result_);
+void background_import_job_report_failure (BackgroundImportJob* self, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, ImportResult _result_);
+void background_import_job_report_error (BackgroundImportJob* self, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, GError* err, ImportResult default_result);
+static void background_import_job_finalize (BackgroundJob* obj);
+enum {
+ FILE_TO_PREPARE_DUMMY_PROPERTY
+};
+FileToPrepare* file_to_prepare_new (BatchImportJob* job, GFile* file, gboolean copy_to_library);
+FileToPrepare* file_to_prepare_construct (GType object_type, BatchImportJob* job, GFile* file, gboolean copy_to_library);
+void file_to_prepare_set_associated (FileToPrepare* self, FileToPrepare* a);
+gchar* file_to_prepare_get_parent_path (FileToPrepare* self);
+gchar* file_to_prepare_get_path (FileToPrepare* self);
+gchar* file_to_prepare_get_basename (FileToPrepare* self);
+gboolean file_to_prepare_is_directory (FileToPrepare* self);
+static void file_to_prepare_finalize (FileToPrepare* obj);
+#define WORK_SNIFFER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_WORK_SNIFFER, WorkSnifferPrivate))
+enum {
+ WORK_SNIFFER_DUMMY_PROPERTY
+};
+static void work_sniffer_real_execute (BackgroundJob* base);
+static void work_sniffer_sniff_job (WorkSniffer* self, BatchImportJob* job, GError** error);
+static gint __lambda11_ (WorkSniffer* self, FileToPrepare* a, FileToPrepare* b);
+gint utf8_cs_compare (void* a, void* b);
+static gint ___lambda11__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+gboolean is_string_empty (const gchar* s);
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+GType raw_file_format_properties_get_type (void) G_GNUC_CONST;
+RawFileFormatProperties* raw_file_format_properties_get_instance (void);
+gboolean photo_file_format_properties_is_recognized_extension (PhotoFileFormatProperties* self, const gchar* ext);
+static gboolean work_sniffer_is_paired (WorkSniffer* self, FileToPrepare* raw, FileToPrepare* maybe_paired);
+GType jfif_file_format_properties_get_type (void) G_GNUC_CONST;
+JfifFileFormatProperties* jfif_file_format_properties_get_instance (void);
+void work_sniffer_search_dir (WorkSniffer* self, BatchImportJob* job, GFile* dir, gboolean copy_to_library, GError** error);
+GCancellable* background_job_get_cancellable (BackgroundJob* self);
+gboolean photo_is_file_image (GFile* file);
+gboolean photo_file_format_is_file_supported (GFile* file);
+gboolean video_reader_is_supported_video_file (GFile* file);
+static void work_sniffer_finalize (BackgroundJob* obj);
+enum {
+ PREPARED_FILE_DUMMY_PROPERTY
+};
+PreparedFile* prepared_file_new (BatchImportJob* job, GFile* file, GFile* associated_file, const gchar* source_id, const gchar* dest_id, gboolean copy_to_library, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, guint64 filesize, gboolean is_video);
+PreparedFile* prepared_file_construct (GType object_type, BatchImportJob* job, GFile* file, GFile* associated_file, const gchar* source_id, const gchar* dest_id, gboolean copy_to_library, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, guint64 filesize, gboolean is_video);
+static void prepared_file_finalize (PreparedFile* obj);
+enum {
+ PREPARED_FILE_CLUSTER_DUMMY_PROPERTY
+};
+PreparedFileCluster* prepared_file_cluster_new (GeeArrayList* list);
+PreparedFileCluster* prepared_file_cluster_construct (GType object_type, GeeArrayList* list);
+InterlockedNotificationObject* interlocked_notification_object_construct (GType object_type);
+static void prepared_file_cluster_finalize (NotificationObject* obj);
+#define PREPARE_FILES_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PREPARE_FILES_JOB, PrepareFilesJobPrivate))
+enum {
+ PREPARE_FILES_JOB_DUMMY_PROPERTY
+};
+GFile* app_dirs_get_import_dir (void);
+static gint prepare_files_job_get_test_variable (const gchar* name);
+void background_job_set_notification_priority (BackgroundJob* self, gint priority);
+static void prepare_files_job_real_execute (BackgroundJob* base);
+static gboolean prepare_files_job_create_file (PrepareFilesJob* self, BatchImportJob* job, GFile** file, gboolean* copy_to_library);
+static ImportResult prepare_files_job_prepare_file (PrepareFilesJob* self, BatchImportJob* job, GFile* file, GFile* associated_file, gboolean copy_to_library, PreparedFile** prepared_file);
+void background_job_notify (BackgroundJob* self, NotificationCallback callback, void* callback_target, NotificationObject* user);
+gchar* md5_file (GFile* file, GError** error);
+PhotoFileFormat photo_file_format_get_by_file_extension (GFile* file);
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error);
+guint8* photo_metadata_flatten_exif (PhotoMetadata* self, gboolean include_preview, int* result_length1);
+gchar* md5_binary (guint8* buffer, gsize length);
+guint8* photo_metadata_flatten_exif_preview (PhotoMetadata* self, int* result_length1);
+static void prepare_files_job_finalize (BackgroundJob* obj);
+enum {
+ READY_FOR_IMPORT_DUMMY_PROPERTY
+};
+ReadyForImport* ready_for_import_new (GFile* final_file, PreparedFile* prepared_file, PhotoImportParams* photo_import_params, VideoImportParams* video_import_params, BatchImportResult* batch_result);
+ReadyForImport* ready_for_import_construct (GType object_type, GFile* final_file, PreparedFile* prepared_file, PhotoImportParams* photo_import_params, VideoImportParams* video_import_params, BatchImportResult* batch_result);
+gpointer video_row_ref (gpointer instance);
+void video_row_unref (gpointer instance);
+GParamSpec* param_spec_video_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_video_row (GValue* value, gpointer v_object);
+void value_take_video_row (GValue* value, gpointer v_object);
+gpointer value_get_video_row (const GValue* value);
+GType video_row_get_type (void) G_GNUC_CONST;
+static void ready_for_import_finalize (ReadyForImport* obj);
+#define PREPARED_FILE_IMPORT_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJobPrivate))
+enum {
+ PREPARED_FILE_IMPORT_JOB_DUMMY_PROPERTY
+};
+void background_job_set_completion_priority (BackgroundJob* self, gint priority);
+static void prepared_file_import_job_real_execute (BackgroundJob* base);
+GFile* library_files_duplicate (GFile* src, GFileProgressCallback progress_callback, void* progress_callback_target, gboolean blacklist, GError** error);
+Thumbnails* thumbnails_new (void);
+Thumbnails* thumbnails_construct (GType object_type);
+VideoImportParams* video_import_params_new (GFile* file, ImportID* import_id, const gchar* md5, Thumbnails* thumbnails, time_t exposure_time_override);
+VideoImportParams* video_import_params_construct (GType object_type, GFile* file, ImportID* import_id, const gchar* md5, Thumbnails* thumbnails, time_t exposure_time_override);
+ImportResult video_reader_prepare_for_import (VideoImportParams* params);
+PhotoImportParams* photo_import_params_new (GFile* file, GFile* final_associated_file, ImportID* import_id, PhotoFileSnifferOptions sniffer_options, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, Thumbnails* thumbnails);
+PhotoImportParams* photo_import_params_construct (GType object_type, GFile* file, GFile* final_associated_file, ImportID* import_id, PhotoFileSnifferOptions sniffer_options, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, Thumbnails* thumbnails);
+ImportResult photo_prepare_for_import (PhotoImportParams* params);
+static void prepared_file_import_job_finalize (BackgroundJob* obj);
+enum {
+ COMPLETED_IMPORT_OBJECT_DUMMY_PROPERTY
+};
+GType thumbnail_cache_size_get_type (void) G_GNUC_CONST;
+GdkPixbuf* thumbnails_get (Thumbnails* self, ThumbnailCacheSize size);
+static void completed_import_object_finalize (CompletedImportObject* obj);
+enum {
+ THUMBNAIL_WRITER_JOB_DUMMY_PROPERTY
+};
+static void thumbnail_writer_job_real_execute (BackgroundJob* base);
+void thumbnail_cache_import_thumbnails (ThumbnailSource* source, Thumbnails* thumbnails, gboolean force, GError** error);
+static void thumbnail_writer_job_finalize (BackgroundJob* obj);
+
+
+gchar* import_result_to_string (ImportResult self) {
+ gchar* result = NULL;
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ switch (self) {
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_SUCCESS:
+#line 2249 "BatchImport.c"
+ {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _ ("Success");
+#line 26 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 26 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp1_;
+#line 26 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2261 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_FILE_ERROR:
+#line 2265 "BatchImport.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _ ("File error");
+#line 29 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 29 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp3_;
+#line 29 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2277 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DECODE_ERROR:
+#line 2281 "BatchImport.c"
+ {
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _ ("Unable to decode file");
+#line 32 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 32 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp5_;
+#line 32 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2293 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DATABASE_ERROR:
+#line 2297 "BatchImport.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _ ("Database error");
+#line 35 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 35 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp7_;
+#line 35 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2309 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_USER_ABORT:
+#line 2313 "BatchImport.c"
+ {
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _ ("User aborted import");
+#line 38 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 38 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp9_;
+#line 38 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2325 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_NOT_A_FILE:
+#line 2329 "BatchImport.c"
+ {
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _ ("Not a file");
+#line 41 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 41 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp11_;
+#line 41 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2341 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_PHOTO_EXISTS:
+#line 2345 "BatchImport.c"
+ {
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = _ ("File already exists in database");
+#line 44 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 44 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp13_;
+#line 44 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2357 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_UNSUPPORTED_FORMAT:
+#line 2361 "BatchImport.c"
+ {
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _ ("Unsupported file format");
+#line 47 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 47 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp15_;
+#line 47 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2373 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_NOT_AN_IMAGE:
+#line 2377 "BatchImport.c"
+ {
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = _ ("Not an image file");
+#line 50 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 50 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp17_;
+#line 50 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2389 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DISK_FAILURE:
+#line 2393 "BatchImport.c"
+ {
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = _ ("Disk failure");
+#line 53 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = g_strdup (_tmp18_);
+#line 53 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp19_;
+#line 53 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2405 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DISK_FULL:
+#line 2409 "BatchImport.c"
+ {
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _ ("Disk full");
+#line 56 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = g_strdup (_tmp20_);
+#line 56 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp21_;
+#line 56 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2421 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_CAMERA_ERROR:
+#line 2425 "BatchImport.c"
+ {
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = _ ("Camera error");
+#line 59 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = g_strdup (_tmp22_);
+#line 59 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp23_;
+#line 59 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2437 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_FILE_WRITE_ERROR:
+#line 2441 "BatchImport.c"
+ {
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = _ ("File write error");
+#line 62 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = g_strdup (_tmp24_);
+#line 62 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp25_;
+#line 62 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2453 "BatchImport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE:
+#line 2457 "BatchImport.c"
+ {
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = _ ("Corrupt image file");
+#line 65 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = g_strdup (_tmp26_);
+#line 65 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp27_;
+#line 65 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2469 "BatchImport.c"
+ }
+ default:
+ {
+ const gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _ ("Imported failed (%d)");
+#line 68 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = g_strdup_printf (_tmp28_, (gint) self);
+#line 68 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp29_;
+#line 68 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2483 "BatchImport.c"
+ }
+ }
+}
+
+
+gboolean import_result_is_abort (ImportResult self) {
+ gboolean result = FALSE;
+#line 73 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ switch (self) {
+#line 73 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DISK_FULL:
+#line 73 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DISK_FAILURE:
+#line 73 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_USER_ABORT:
+#line 2499 "BatchImport.c"
+ {
+#line 77 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = TRUE;
+#line 77 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2505 "BatchImport.c"
+ }
+ default:
+ {
+#line 80 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2513 "BatchImport.c"
+ }
+ }
+}
+
+
+gboolean import_result_is_nonuser_abort (ImportResult self) {
+ gboolean result = FALSE;
+#line 85 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ switch (self) {
+#line 85 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DISK_FULL:
+#line 85 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_DISK_FAILURE:
+#line 2527 "BatchImport.c"
+ {
+#line 88 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = TRUE;
+#line 88 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2533 "BatchImport.c"
+ }
+ default:
+ {
+#line 91 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 91 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2541 "BatchImport.c"
+ }
+ }
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 97 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 2550 "BatchImport.c"
+}
+
+
+ImportResult import_result_convert_error (GError* err, ImportResult default_result) {
+ ImportResult result = 0;
+ GError* _tmp0_ = NULL;
+ ImportResult _tmp32_ = 0;
+#line 96 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = err;
+#line 96 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_->domain == G_FILE_ERROR) {
+#line 2562 "BatchImport.c"
+ GError* ferr = NULL;
+ GError* _tmp1_ = NULL;
+ GError* _tmp2_ = NULL;
+ GError* _tmp3_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = err;
+#line 97 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _g_error_copy0 ((GError*) _tmp1_);
+#line 97 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ferr = _tmp2_;
+#line 99 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = ferr;
+#line 99 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp3_, G_FILE_ERROR, G_FILE_ERROR_NOSPC)) {
+#line 100 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_DISK_FULL;
+#line 100 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ferr);
+#line 100 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2583 "BatchImport.c"
+ } else {
+ GError* _tmp4_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = ferr;
+#line 101 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp4_, G_FILE_ERROR, G_FILE_ERROR_IO)) {
+#line 102 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_DISK_FAILURE;
+#line 102 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ferr);
+#line 102 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2596 "BatchImport.c"
+ } else {
+ GError* _tmp5_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = ferr;
+#line 103 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp5_, G_FILE_ERROR, G_FILE_ERROR_ISDIR)) {
+#line 104 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_NOT_A_FILE;
+#line 104 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ferr);
+#line 104 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2609 "BatchImport.c"
+ } else {
+ GError* _tmp6_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = ferr;
+#line 105 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp6_, G_FILE_ERROR, G_FILE_ERROR_ACCES)) {
+#line 106 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_FILE_WRITE_ERROR;
+#line 106 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ferr);
+#line 106 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2622 "BatchImport.c"
+ } else {
+ GError* _tmp7_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = ferr;
+#line 107 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp7_, G_FILE_ERROR, G_FILE_ERROR_PERM)) {
+#line 108 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_FILE_WRITE_ERROR;
+#line 108 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ferr);
+#line 108 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2635 "BatchImport.c"
+ } else {
+#line 110 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_FILE_ERROR;
+#line 110 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ferr);
+#line 110 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2643 "BatchImport.c"
+ }
+ }
+ }
+ }
+ }
+#line 96 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ferr);
+#line 2651 "BatchImport.c"
+ } else {
+ GError* _tmp8_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = err;
+#line 111 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp8_->domain == G_IO_ERROR) {
+#line 2658 "BatchImport.c"
+ GError* ioerr = NULL;
+ GError* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = err;
+#line 112 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _g_error_copy0 ((GError*) _tmp9_);
+#line 112 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ioerr = _tmp10_;
+#line 114 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = ioerr;
+#line 114 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp11_, G_IO_ERROR, G_IO_ERROR_NO_SPACE)) {
+#line 115 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_DISK_FULL;
+#line 115 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 115 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2679 "BatchImport.c"
+ } else {
+ GError* _tmp12_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = ioerr;
+#line 116 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp12_, G_IO_ERROR, G_IO_ERROR_FAILED)) {
+#line 117 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_DISK_FAILURE;
+#line 117 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 117 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2692 "BatchImport.c"
+ } else {
+ GError* _tmp13_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = ioerr;
+#line 118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp13_, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY)) {
+#line 119 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_NOT_A_FILE;
+#line 119 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 119 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2705 "BatchImport.c"
+ } else {
+ GError* _tmp14_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = ioerr;
+#line 120 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp14_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+#line 121 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_USER_ABORT;
+#line 121 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 121 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2718 "BatchImport.c"
+ } else {
+ GError* _tmp15_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = ioerr;
+#line 122 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp15_, G_IO_ERROR, G_IO_ERROR_READ_ONLY)) {
+#line 123 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_FILE_WRITE_ERROR;
+#line 123 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 123 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2731 "BatchImport.c"
+ } else {
+ GError* _tmp16_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = ioerr;
+#line 124 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp16_, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED)) {
+#line 125 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_FILE_WRITE_ERROR;
+#line 125 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 125 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2744 "BatchImport.c"
+ } else {
+#line 127 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_FILE_ERROR;
+#line 127 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 127 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2752 "BatchImport.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 111 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (ioerr);
+#line 2761 "BatchImport.c"
+ } else {
+ GError* _tmp17_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = err;
+#line 128 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp17_->domain == GPHOTO_ERROR) {
+#line 129 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_CAMERA_ERROR;
+#line 129 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2772 "BatchImport.c"
+ } else {
+ GError* _tmp18_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = err;
+#line 130 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp18_->domain == GDK_PIXBUF_ERROR) {
+#line 2779 "BatchImport.c"
+ GError* pixbuferr = NULL;
+ GError* _tmp19_ = NULL;
+ GError* _tmp20_ = NULL;
+ GError* _tmp21_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = err;
+#line 131 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _g_error_copy0 ((GError*) _tmp19_);
+#line 131 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ pixbuferr = _tmp20_;
+#line 133 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = pixbuferr;
+#line 133 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp21_, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE)) {
+#line 134 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE;
+#line 134 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 134 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2800 "BatchImport.c"
+ } else {
+ GError* _tmp22_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = pixbuferr;
+#line 135 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp22_, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY)) {
+#line 2807 "BatchImport.c"
+ ImportResult _tmp23_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = default_result;
+#line 136 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp23_;
+#line 136 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 136 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2817 "BatchImport.c"
+ } else {
+ GError* _tmp24_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = pixbuferr;
+#line 137 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp24_, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_BAD_OPTION)) {
+#line 2824 "BatchImport.c"
+ ImportResult _tmp25_ = 0;
+#line 138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = default_result;
+#line 138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp25_;
+#line 138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2834 "BatchImport.c"
+ } else {
+ GError* _tmp26_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = pixbuferr;
+#line 139 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp26_, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_UNKNOWN_TYPE)) {
+#line 140 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_UNSUPPORTED_FORMAT;
+#line 140 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 140 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2847 "BatchImport.c"
+ } else {
+ GError* _tmp27_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = pixbuferr;
+#line 141 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp27_, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION)) {
+#line 2854 "BatchImport.c"
+ ImportResult _tmp28_ = 0;
+#line 142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = default_result;
+#line 142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp28_;
+#line 142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2864 "BatchImport.c"
+ } else {
+ GError* _tmp29_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = pixbuferr;
+#line 143 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_error_matches (_tmp29_, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_FAILED)) {
+#line 2871 "BatchImport.c"
+ ImportResult _tmp30_ = 0;
+#line 144 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = default_result;
+#line 144 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp30_;
+#line 144 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 144 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2881 "BatchImport.c"
+ } else {
+ ImportResult _tmp31_ = 0;
+#line 146 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = default_result;
+#line 146 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp31_;
+#line 146 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 146 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2892 "BatchImport.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 130 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (pixbuferr);
+#line 2901 "BatchImport.c"
+ }
+ }
+ }
+ }
+#line 149 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = default_result;
+#line 149 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp32_;
+#line 149 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 2912 "BatchImport.c"
+}
+
+
+GType import_result_get_type (void) {
+ static volatile gsize import_result_type_id__volatile = 0;
+ if (g_once_init_enter (&import_result_type_id__volatile)) {
+ static const GEnumValue values[] = {{IMPORT_RESULT_SUCCESS, "IMPORT_RESULT_SUCCESS", "success"}, {IMPORT_RESULT_FILE_ERROR, "IMPORT_RESULT_FILE_ERROR", "file-error"}, {IMPORT_RESULT_DECODE_ERROR, "IMPORT_RESULT_DECODE_ERROR", "decode-error"}, {IMPORT_RESULT_DATABASE_ERROR, "IMPORT_RESULT_DATABASE_ERROR", "database-error"}, {IMPORT_RESULT_USER_ABORT, "IMPORT_RESULT_USER_ABORT", "user-abort"}, {IMPORT_RESULT_NOT_A_FILE, "IMPORT_RESULT_NOT_A_FILE", "not-a-file"}, {IMPORT_RESULT_PHOTO_EXISTS, "IMPORT_RESULT_PHOTO_EXISTS", "photo-exists"}, {IMPORT_RESULT_UNSUPPORTED_FORMAT, "IMPORT_RESULT_UNSUPPORTED_FORMAT", "unsupported-format"}, {IMPORT_RESULT_NOT_AN_IMAGE, "IMPORT_RESULT_NOT_AN_IMAGE", "not-an-image"}, {IMPORT_RESULT_DISK_FAILURE, "IMPORT_RESULT_DISK_FAILURE", "disk-failure"}, {IMPORT_RESULT_DISK_FULL, "IMPORT_RESULT_DISK_FULL", "disk-full"}, {IMPORT_RESULT_CAMERA_ERROR, "IMPORT_RESULT_CAMERA_ERROR", "camera-error"}, {IMPORT_RESULT_FILE_WRITE_ERROR, "IMPORT_RESULT_FILE_WRITE_ERROR", "file-write-error"}, {IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE, "IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE", "pixbuf-corrupt-image"}, {0, NULL, NULL}};
+ GType import_result_type_id;
+ import_result_type_id = g_enum_register_static ("ImportResult", values);
+ g_once_init_leave (&import_result_type_id__volatile, import_result_type_id);
+ }
+ return import_result_type_id__volatile;
+}
+
+
+static gchar* batch_import_job_real_get_dest_identifier (BatchImportJob* self) {
+#line 161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_get_dest_identifier'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 2933 "BatchImport.c"
+}
+
+
+gchar* batch_import_job_get_dest_identifier (BatchImportJob* self) {
+#line 161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), NULL);
+#line 161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->get_dest_identifier (self);
+#line 2942 "BatchImport.c"
+}
+
+
+static gchar* batch_import_job_real_get_source_identifier (BatchImportJob* self) {
+#line 163 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_get_source_identifier'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 163 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 2951 "BatchImport.c"
+}
+
+
+gchar* batch_import_job_get_source_identifier (BatchImportJob* self) {
+#line 163 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), NULL);
+#line 163 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->get_source_identifier (self);
+#line 2960 "BatchImport.c"
+}
+
+
+static gboolean batch_import_job_real_is_directory (BatchImportJob* self) {
+#line 165 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_is_directory'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 165 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return FALSE;
+#line 2969 "BatchImport.c"
+}
+
+
+gboolean batch_import_job_is_directory (BatchImportJob* self) {
+#line 165 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), FALSE);
+#line 165 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->is_directory (self);
+#line 2978 "BatchImport.c"
+}
+
+
+static gchar* batch_import_job_real_get_basename (BatchImportJob* self) {
+#line 167 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_get_basename'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 167 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 2987 "BatchImport.c"
+}
+
+
+gchar* batch_import_job_get_basename (BatchImportJob* self) {
+#line 167 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), NULL);
+#line 167 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->get_basename (self);
+#line 2996 "BatchImport.c"
+}
+
+
+static gchar* batch_import_job_real_get_path (BatchImportJob* self) {
+#line 169 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_get_path'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 169 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 3005 "BatchImport.c"
+}
+
+
+gchar* batch_import_job_get_path (BatchImportJob* self) {
+#line 169 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), NULL);
+#line 169 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->get_path (self);
+#line 3014 "BatchImport.c"
+}
+
+
+static DuplicatedFile* batch_import_job_real_get_duplicated_file (BatchImportJob* self) {
+ DuplicatedFile* result = NULL;
+#line 172 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = NULL;
+#line 172 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3024 "BatchImport.c"
+}
+
+
+DuplicatedFile* batch_import_job_get_duplicated_file (BatchImportJob* self) {
+#line 171 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), NULL);
+#line 171 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->get_duplicated_file (self);
+#line 3033 "BatchImport.c"
+}
+
+
+static void batch_import_job_real_set_associated (BatchImportJob* self, BatchImportJob* associated) {
+#line 176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_set_associated'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 3042 "BatchImport.c"
+}
+
+
+void batch_import_job_set_associated (BatchImportJob* self, BatchImportJob* associated) {
+#line 176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (self));
+#line 176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BATCH_IMPORT_JOB_GET_CLASS (self)->set_associated (self, associated);
+#line 3051 "BatchImport.c"
+}
+
+
+static gboolean batch_import_job_real_determine_file_size (BatchImportJob* self, guint64* filesize, GFile** file_or_dir) {
+#line 183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_determine_file_size'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return FALSE;
+#line 3060 "BatchImport.c"
+}
+
+
+gboolean batch_import_job_determine_file_size (BatchImportJob* self, guint64* filesize, GFile** file_or_dir) {
+#line 183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), FALSE);
+#line 183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->determine_file_size (self, filesize, file_or_dir);
+#line 3069 "BatchImport.c"
+}
+
+
+static gboolean batch_import_job_real_prepare (BatchImportJob* self, GFile** file_to_import, gboolean* copy_to_library, GError** error) {
+#line 186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("Type `%s' does not implement abstract method `batch_import_job_prepare'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return FALSE;
+#line 3078 "BatchImport.c"
+}
+
+
+gboolean batch_import_job_prepare (BatchImportJob* self, GFile** file_to_import, gboolean* copy_to_library, GError** error) {
+#line 186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), FALSE);
+#line 186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->prepare (self, file_to_import, copy_to_library, error);
+#line 3087 "BatchImport.c"
+}
+
+
+static gboolean batch_import_job_real_complete (BatchImportJob* self, MediaSource* source, BatchImportRoll* import_roll, GError** error) {
+ gboolean result = FALSE;
+#line 196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_ROLL (import_roll), FALSE);
+#line 197 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 197 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3101 "BatchImport.c"
+}
+
+
+gboolean batch_import_job_complete (BatchImportJob* self, MediaSource* source, BatchImportRoll* import_roll, GError** error) {
+#line 196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), FALSE);
+#line 196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->complete (self, source, import_roll, error);
+#line 3110 "BatchImport.c"
+}
+
+
+static time_t batch_import_job_real_get_exposure_time_override (BatchImportJob* self) {
+ time_t result = 0;
+#line 203 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = (time_t) 0;
+#line 203 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3120 "BatchImport.c"
+}
+
+
+time_t batch_import_job_get_exposure_time_override (BatchImportJob* self) {
+#line 202 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (self), 0);
+#line 202 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return BATCH_IMPORT_JOB_GET_CLASS (self)->get_exposure_time_override (self);
+#line 3129 "BatchImport.c"
+}
+
+
+BatchImportJob* batch_import_job_construct (GType object_type) {
+ BatchImportJob* self = NULL;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (BatchImportJob*) g_type_create_instance (object_type);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 3139 "BatchImport.c"
+}
+
+
+static void value_batch_import_job_init (GValue* value) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3146 "BatchImport.c"
+}
+
+
+static void value_batch_import_job_free_value (GValue* value) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_job_unref (value->data[0].v_pointer);
+#line 3155 "BatchImport.c"
+ }
+}
+
+
+static void value_batch_import_job_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = batch_import_job_ref (src_value->data[0].v_pointer);
+#line 3165 "BatchImport.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3169 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_batch_import_job_peek_pointer (const GValue* value) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 3177 "BatchImport.c"
+}
+
+
+static gchar* value_batch_import_job_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 3184 "BatchImport.c"
+ BatchImportJob* object;
+ object = collect_values[0].v_pointer;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3191 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3195 "BatchImport.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = batch_import_job_ref (object);
+#line 3199 "BatchImport.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3203 "BatchImport.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 3207 "BatchImport.c"
+}
+
+
+static gchar* value_batch_import_job_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ BatchImportJob** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3218 "BatchImport.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 3224 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3228 "BatchImport.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = batch_import_job_ref (value->data[0].v_pointer);
+#line 3232 "BatchImport.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 3236 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecBatchImportJob* spec;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_BATCH_IMPORT_JOB), NULL);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 3250 "BatchImport.c"
+}
+
+
+gpointer value_get_batch_import_job (const GValue* value) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_JOB), NULL);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 3259 "BatchImport.c"
+}
+
+
+void value_set_batch_import_job (GValue* value, gpointer v_object) {
+ BatchImportJob* old;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_JOB));
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BATCH_IMPORT_JOB));
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_job_ref (value->data[0].v_pointer);
+#line 3279 "BatchImport.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3283 "BatchImport.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_job_unref (old);
+#line 3289 "BatchImport.c"
+ }
+}
+
+
+void value_take_batch_import_job (GValue* value, gpointer v_object) {
+ BatchImportJob* old;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_JOB));
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BATCH_IMPORT_JOB));
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 3308 "BatchImport.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3312 "BatchImport.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_job_unref (old);
+#line 3318 "BatchImport.c"
+ }
+}
+
+
+static void batch_import_job_class_init (BatchImportJobClass * klass) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_job_parent_class = g_type_class_peek_parent (klass);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->finalize = batch_import_job_finalize;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_dest_identifier = batch_import_job_real_get_dest_identifier;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_source_identifier = batch_import_job_real_get_source_identifier;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->is_directory = batch_import_job_real_is_directory;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_basename = batch_import_job_real_get_basename;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_path = batch_import_job_real_get_path;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_duplicated_file = batch_import_job_real_get_duplicated_file;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->set_associated = batch_import_job_real_set_associated;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->determine_file_size = batch_import_job_real_determine_file_size;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->prepare = batch_import_job_real_prepare;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->complete = batch_import_job_real_complete;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_exposure_time_override = batch_import_job_real_get_exposure_time_override;
+#line 3350 "BatchImport.c"
+}
+
+
+static void batch_import_job_instance_init (BatchImportJob * self) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 3357 "BatchImport.c"
+}
+
+
+static void batch_import_job_finalize (BatchImportJob* obj) {
+ BatchImportJob * self;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BATCH_IMPORT_JOB, BatchImportJob);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 3367 "BatchImport.c"
+}
+
+
+GType batch_import_job_get_type (void) {
+ static volatile gsize batch_import_job_type_id__volatile = 0;
+ if (g_once_init_enter (&batch_import_job_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_batch_import_job_init, value_batch_import_job_free_value, value_batch_import_job_copy_value, value_batch_import_job_peek_pointer, "p", value_batch_import_job_collect_value, "p", value_batch_import_job_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BatchImportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) batch_import_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BatchImportJob), 0, (GInstanceInitFunc) batch_import_job_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType batch_import_job_type_id;
+ batch_import_job_type_id = g_type_register_fundamental (g_type_fundamental_next (), "BatchImportJob", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&batch_import_job_type_id__volatile, batch_import_job_type_id);
+ }
+ return batch_import_job_type_id__volatile;
+}
+
+
+gpointer batch_import_job_ref (gpointer instance) {
+ BatchImportJob* self;
+ self = instance;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 3392 "BatchImport.c"
+}
+
+
+void batch_import_job_unref (gpointer instance) {
+ BatchImportJob* self;
+ self = instance;
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BATCH_IMPORT_JOB_GET_CLASS (self)->finalize (self);
+#line 160 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3405 "BatchImport.c"
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 213 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 3413 "BatchImport.c"
+}
+
+
+FileImportJob* file_import_job_construct (GType object_type, GFile* file_or_dir, gboolean copy_to_library) {
+ FileImportJob* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 212 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_FILE (file_or_dir), NULL);
+#line 212 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (FileImportJob*) batch_import_job_construct (object_type);
+#line 213 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = file_or_dir;
+#line 213 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 213 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->file_or_dir);
+#line 213 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file_or_dir = _tmp1_;
+#line 214 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = copy_to_library;
+#line 214 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->copy_to_library = _tmp2_;
+#line 212 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 3440 "BatchImport.c"
+}
+
+
+FileImportJob* file_import_job_new (GFile* file_or_dir, gboolean copy_to_library) {
+#line 212 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return file_import_job_construct (TYPE_FILE_IMPORT_JOB, file_or_dir, copy_to_library);
+#line 3447 "BatchImport.c"
+}
+
+
+static gchar* file_import_job_real_get_dest_identifier (BatchImportJob* base) {
+ FileImportJob * self;
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 218 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_or_dir;
+#line 218 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 218 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp1_;
+#line 218 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3466 "BatchImport.c"
+}
+
+
+static gchar* file_import_job_real_get_source_identifier (BatchImportJob* base) {
+ FileImportJob * self;
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 222 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_or_dir;
+#line 222 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 222 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp1_;
+#line 222 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3485 "BatchImport.c"
+}
+
+
+static gboolean file_import_job_real_is_directory (BatchImportJob* base) {
+ FileImportJob * self;
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 225 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 226 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_or_dir;
+#line 226 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = query_is_directory (_tmp0_);
+#line 226 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp1_;
+#line 226 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3504 "BatchImport.c"
+}
+
+
+static gchar* file_import_job_real_get_basename (BatchImportJob* base) {
+ FileImportJob * self;
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 230 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_or_dir;
+#line 230 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 230 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp1_;
+#line 230 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3523 "BatchImport.c"
+}
+
+
+static gchar* file_import_job_real_get_path (BatchImportJob* base) {
+ FileImportJob * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 233 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = batch_import_job_is_directory (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BATCH_IMPORT_JOB, BatchImportJob));
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_) {
+#line 3538 "BatchImport.c"
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->priv->file_or_dir;
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp3_;
+#line 3549 "BatchImport.c"
+ } else {
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->priv->file_or_dir;
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = g_file_get_parent (_tmp4_);
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_;
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp7_;
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp6_);
+#line 3569 "BatchImport.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp0_;
+#line 234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3575 "BatchImport.c"
+}
+
+
+static gpointer _batch_import_job_ref0 (gpointer self) {
+#line 238 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? batch_import_job_ref (self) : NULL;
+#line 3582 "BatchImport.c"
+}
+
+
+static void file_import_job_real_set_associated (BatchImportJob* base, BatchImportJob* associated) {
+ FileImportJob * self;
+ BatchImportJob* _tmp0_ = NULL;
+ FileImportJob* _tmp1_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 237 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (associated));
+#line 238 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = associated;
+#line 238 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _batch_import_job_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FILE_IMPORT_JOB) ? ((FileImportJob*) _tmp0_) : NULL);
+#line 238 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->priv->associated);
+#line 238 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->associated = _tmp1_;
+#line 3602 "BatchImport.c"
+}
+
+
+static gboolean file_import_job_real_determine_file_size (BatchImportJob* base, guint64* filesize, GFile** file) {
+ FileImportJob * self;
+ guint64 _vala_filesize = 0ULL;
+ GFile* _vala_file = NULL;
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 241 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 242 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_filesize = (guint64) 0;
+#line 243 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_or_dir;
+#line 243 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 243 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file);
+#line 243 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_file = _tmp1_;
+#line 245 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 245 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (filesize) {
+#line 245 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *filesize = _vala_filesize;
+#line 3631 "BatchImport.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (file) {
+#line 245 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *file = _vala_file;
+#line 3637 "BatchImport.c"
+ } else {
+#line 245 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file);
+#line 3641 "BatchImport.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3645 "BatchImport.c"
+}
+
+
+static gboolean file_import_job_real_prepare (BatchImportJob* base, GFile** file_to_import, gboolean* copy, GError** error) {
+ FileImportJob * self;
+ GFile* _vala_file_to_import = NULL;
+ gboolean _vala_copy = FALSE;
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 248 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 249 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_or_dir;
+#line 249 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 249 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 249 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_file_to_import = _tmp1_;
+#line 250 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->priv->copy_to_library;
+#line 250 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_copy = _tmp2_;
+#line 252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = TRUE;
+#line 252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (file_to_import) {
+#line 252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *file_to_import = _vala_file_to_import;
+#line 3677 "BatchImport.c"
+ } else {
+#line 252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 3681 "BatchImport.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (copy) {
+#line 252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *copy = _vala_copy;
+#line 3687 "BatchImport.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3691 "BatchImport.c"
+}
+
+
+GFile* file_import_job_get_file (FileImportJob* self) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_IMPORT_JOB (self), NULL);
+#line 256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_or_dir;
+#line 256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp1_;
+#line 256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 3709 "BatchImport.c"
+}
+
+
+static void file_import_job_class_init (FileImportJobClass * klass) {
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_import_job_parent_class = g_type_class_peek_parent (klass);
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->finalize = file_import_job_finalize;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_class_add_private (klass, sizeof (FileImportJobPrivate));
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_dest_identifier = file_import_job_real_get_dest_identifier;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_source_identifier = file_import_job_real_get_source_identifier;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->is_directory = file_import_job_real_is_directory;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_basename = file_import_job_real_get_basename;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->get_path = file_import_job_real_get_path;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->set_associated = file_import_job_real_set_associated;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->determine_file_size = file_import_job_real_determine_file_size;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportJobClass *) klass)->prepare = file_import_job_real_prepare;
+#line 3736 "BatchImport.c"
+}
+
+
+static void file_import_job_instance_init (FileImportJob * self) {
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv = FILE_IMPORT_JOB_GET_PRIVATE (self);
+#line 210 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->associated = NULL;
+#line 3745 "BatchImport.c"
+}
+
+
+static void file_import_job_finalize (BatchImportJob* obj) {
+ FileImportJob * self;
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FILE_IMPORT_JOB, FileImportJob);
+#line 208 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->file_or_dir);
+#line 210 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->priv->associated);
+#line 207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BATCH_IMPORT_JOB_CLASS (file_import_job_parent_class)->finalize (obj);
+#line 3759 "BatchImport.c"
+}
+
+
+GType file_import_job_get_type (void) {
+ static volatile gsize file_import_job_type_id__volatile = 0;
+ if (g_once_init_enter (&file_import_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FileImportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) file_import_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FileImportJob), 0, (GInstanceInitFunc) file_import_job_instance_init, NULL };
+ GType file_import_job_type_id;
+ file_import_job_type_id = g_type_register_static (TYPE_BATCH_IMPORT_JOB, "FileImportJob", &g_define_type_info, 0);
+ g_once_init_leave (&file_import_job_type_id__volatile, file_import_job_type_id);
+ }
+ return file_import_job_type_id__volatile;
+}
+
+
+BatchImportRoll* batch_import_roll_construct (GType object_type) {
+ BatchImportRoll* self = NULL;
+ ImportID _tmp0_ = {0};
+#line 267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (BatchImportRoll*) g_type_create_instance (object_type);
+#line 268 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_id_generate (&_tmp0_);
+#line 268 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->import_id = _tmp0_;
+#line 267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 3786 "BatchImport.c"
+}
+
+
+BatchImportRoll* batch_import_roll_new (void) {
+#line 267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return batch_import_roll_construct (TYPE_BATCH_IMPORT_ROLL);
+#line 3793 "BatchImport.c"
+}
+
+
+static void value_batch_import_roll_init (GValue* value) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3800 "BatchImport.c"
+}
+
+
+static void value_batch_import_roll_free_value (GValue* value) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_roll_unref (value->data[0].v_pointer);
+#line 3809 "BatchImport.c"
+ }
+}
+
+
+static void value_batch_import_roll_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = batch_import_roll_ref (src_value->data[0].v_pointer);
+#line 3819 "BatchImport.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3823 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_batch_import_roll_peek_pointer (const GValue* value) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 3831 "BatchImport.c"
+}
+
+
+static gchar* value_batch_import_roll_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 3838 "BatchImport.c"
+ BatchImportRoll* object;
+ object = collect_values[0].v_pointer;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3845 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3849 "BatchImport.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = batch_import_roll_ref (object);
+#line 3853 "BatchImport.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3857 "BatchImport.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 3861 "BatchImport.c"
+}
+
+
+static gchar* value_batch_import_roll_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ BatchImportRoll** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3872 "BatchImport.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 3878 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3882 "BatchImport.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = batch_import_roll_ref (value->data[0].v_pointer);
+#line 3886 "BatchImport.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 3890 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecBatchImportRoll* spec;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_BATCH_IMPORT_ROLL), NULL);
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 3904 "BatchImport.c"
+}
+
+
+gpointer value_get_batch_import_roll (const GValue* value) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_ROLL), NULL);
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 3913 "BatchImport.c"
+}
+
+
+void value_set_batch_import_roll (GValue* value, gpointer v_object) {
+ BatchImportRoll* old;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_ROLL));
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BATCH_IMPORT_ROLL));
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_roll_ref (value->data[0].v_pointer);
+#line 3933 "BatchImport.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3937 "BatchImport.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_roll_unref (old);
+#line 3943 "BatchImport.c"
+ }
+}
+
+
+void value_take_batch_import_roll (GValue* value, gpointer v_object) {
+ BatchImportRoll* old;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_ROLL));
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BATCH_IMPORT_ROLL));
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 3962 "BatchImport.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3966 "BatchImport.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_roll_unref (old);
+#line 3972 "BatchImport.c"
+ }
+}
+
+
+static void batch_import_roll_class_init (BatchImportRollClass * klass) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_roll_parent_class = g_type_class_peek_parent (klass);
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportRollClass *) klass)->finalize = batch_import_roll_finalize;
+#line 3982 "BatchImport.c"
+}
+
+
+static void batch_import_roll_instance_init (BatchImportRoll * self) {
+ ViewCollection* _tmp0_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = view_collection_new ("BatchImportRoll generated events");
+#line 265 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->generated_events = _tmp0_;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 3994 "BatchImport.c"
+}
+
+
+static void batch_import_roll_finalize (BatchImportRoll* obj) {
+ BatchImportRoll * self;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BATCH_IMPORT_ROLL, BatchImportRoll);
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 265 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_collection_unref0 (self->generated_events);
+#line 4006 "BatchImport.c"
+}
+
+
+GType batch_import_roll_get_type (void) {
+ static volatile gsize batch_import_roll_type_id__volatile = 0;
+ if (g_once_init_enter (&batch_import_roll_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_batch_import_roll_init, value_batch_import_roll_free_value, value_batch_import_roll_copy_value, value_batch_import_roll_peek_pointer, "p", value_batch_import_roll_collect_value, "p", value_batch_import_roll_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BatchImportRollClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) batch_import_roll_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BatchImportRoll), 0, (GInstanceInitFunc) batch_import_roll_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType batch_import_roll_type_id;
+ batch_import_roll_type_id = g_type_register_fundamental (g_type_fundamental_next (), "BatchImportRoll", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&batch_import_roll_type_id__volatile, batch_import_roll_type_id);
+ }
+ return batch_import_roll_type_id__volatile;
+}
+
+
+gpointer batch_import_roll_ref (gpointer instance) {
+ BatchImportRoll* self;
+ self = instance;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 4031 "BatchImport.c"
+}
+
+
+void batch_import_roll_unref (gpointer instance) {
+ BatchImportRoll* self;
+ self = instance;
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BATCH_IMPORT_ROLL_GET_CLASS (self)->finalize (self);
+#line 263 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4044 "BatchImport.c"
+ }
+}
+
+
+BatchImportResult* batch_import_result_construct (GType object_type, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, DuplicatedFile* duplicate_of, ImportResult _result_) {
+ BatchImportResult* self = NULL;
+ BatchImportJob* _tmp0_ = NULL;
+ BatchImportJob* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ DuplicatedFile* _tmp8_ = NULL;
+ DuplicatedFile* _tmp9_ = NULL;
+ ImportResult _tmp10_ = 0;
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (job), NULL);
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (src_identifier != NULL, NULL);
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (dest_identifier != NULL, NULL);
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((duplicate_of == NULL) || IS_DUPLICATED_FILE (duplicate_of), NULL);
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (BatchImportResult*) g_type_create_instance (object_type);
+#line 289 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = job;
+#line 289 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _batch_import_job_ref0 (_tmp0_);
+#line 289 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->job);
+#line 289 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->job = _tmp1_;
+#line 290 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = file;
+#line 290 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 290 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->file);
+#line 290 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->file = _tmp3_;
+#line 291 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = src_identifier;
+#line 291 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 291 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->src_identifier);
+#line 291 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->src_identifier = _tmp5_;
+#line 292 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = dest_identifier;
+#line 292 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 292 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->dest_identifier);
+#line 292 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->dest_identifier = _tmp7_;
+#line 293 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = duplicate_of;
+#line 293 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 293 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->duplicate_of);
+#line 293 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->duplicate_of = _tmp9_;
+#line 294 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _result_;
+#line 294 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->result = _tmp10_;
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 4120 "BatchImport.c"
+}
+
+
+BatchImportResult* batch_import_result_new (BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, DuplicatedFile* duplicate_of, ImportResult _result_) {
+#line 287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return batch_import_result_construct (TYPE_BATCH_IMPORT_RESULT, job, file, src_identifier, dest_identifier, duplicate_of, _result_);
+#line 4127 "BatchImport.c"
+}
+
+
+BatchImportResult* batch_import_result_construct_from_error (GType object_type, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, GError* err, ImportResult default_result) {
+ BatchImportResult* self = NULL;
+ BatchImportJob* _tmp0_ = NULL;
+ BatchImportJob* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ ImportResult _tmp9_ = 0;
+ ImportResult _tmp10_ = 0;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (job), NULL);
+#line 297 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 297 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (src_identifier != NULL, NULL);
+#line 297 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (dest_identifier != NULL, NULL);
+#line 297 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (BatchImportResult*) g_type_create_instance (object_type);
+#line 299 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = job;
+#line 299 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _batch_import_job_ref0 (_tmp0_);
+#line 299 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->job);
+#line 299 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->job = _tmp1_;
+#line 300 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = file;
+#line 300 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 300 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->file);
+#line 300 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->file = _tmp3_;
+#line 301 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = src_identifier;
+#line 301 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 301 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->src_identifier);
+#line 301 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->src_identifier = _tmp5_;
+#line 302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = dest_identifier;
+#line 302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->dest_identifier);
+#line 302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->dest_identifier = _tmp7_;
+#line 303 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = err;
+#line 303 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = default_result;
+#line 303 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = import_result_convert_error (_tmp8_, _tmp9_);
+#line 303 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->result = _tmp10_;
+#line 304 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = err;
+#line 304 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = _tmp11_->message;
+#line 304 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 304 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->errmsg);
+#line 304 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->errmsg = _tmp13_;
+#line 297 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 4209 "BatchImport.c"
+}
+
+
+BatchImportResult* batch_import_result_new_from_error (BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, GError* err, ImportResult default_result) {
+#line 297 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return batch_import_result_construct_from_error (TYPE_BATCH_IMPORT_RESULT, job, file, src_identifier, dest_identifier, err, default_result);
+#line 4216 "BatchImport.c"
+}
+
+
+static void value_batch_import_result_init (GValue* value) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 4223 "BatchImport.c"
+}
+
+
+static void value_batch_import_result_free_value (GValue* value) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_result_unref (value->data[0].v_pointer);
+#line 4232 "BatchImport.c"
+ }
+}
+
+
+static void value_batch_import_result_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = batch_import_result_ref (src_value->data[0].v_pointer);
+#line 4242 "BatchImport.c"
+ } else {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4246 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_batch_import_result_peek_pointer (const GValue* value) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 4254 "BatchImport.c"
+}
+
+
+static gchar* value_batch_import_result_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 4261 "BatchImport.c"
+ BatchImportResult* object;
+ object = collect_values[0].v_pointer;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4268 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4272 "BatchImport.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = batch_import_result_ref (object);
+#line 4276 "BatchImport.c"
+ } else {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 4280 "BatchImport.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 4284 "BatchImport.c"
+}
+
+
+static gchar* value_batch_import_result_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ BatchImportResult** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4295 "BatchImport.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 4301 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4305 "BatchImport.c"
+ } else {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = batch_import_result_ref (value->data[0].v_pointer);
+#line 4309 "BatchImport.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 4313 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecBatchImportResult* spec;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_BATCH_IMPORT_RESULT), NULL);
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 4327 "BatchImport.c"
+}
+
+
+gpointer value_get_batch_import_result (const GValue* value) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_RESULT), NULL);
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 4336 "BatchImport.c"
+}
+
+
+void value_set_batch_import_result (GValue* value, gpointer v_object) {
+ BatchImportResult* old;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_RESULT));
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BATCH_IMPORT_RESULT));
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_result_ref (value->data[0].v_pointer);
+#line 4356 "BatchImport.c"
+ } else {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 4360 "BatchImport.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_result_unref (old);
+#line 4366 "BatchImport.c"
+ }
+}
+
+
+void value_take_batch_import_result (GValue* value, gpointer v_object) {
+ BatchImportResult* old;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BATCH_IMPORT_RESULT));
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BATCH_IMPORT_RESULT));
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 4385 "BatchImport.c"
+ } else {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 4389 "BatchImport.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_result_unref (old);
+#line 4395 "BatchImport.c"
+ }
+}
+
+
+static void batch_import_result_class_init (BatchImportResultClass * klass) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_result_parent_class = g_type_class_peek_parent (klass);
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BatchImportResultClass *) klass)->finalize = batch_import_result_finalize;
+#line 4405 "BatchImport.c"
+}
+
+
+static void batch_import_result_instance_init (BatchImportResult * self) {
+#line 284 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->errmsg = NULL;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 4414 "BatchImport.c"
+}
+
+
+static void batch_import_result_finalize (BatchImportResult* obj) {
+ BatchImportResult * self;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BATCH_IMPORT_RESULT, BatchImportResult);
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 279 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->job);
+#line 280 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->file);
+#line 281 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->src_identifier);
+#line 282 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->dest_identifier);
+#line 284 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->errmsg);
+#line 285 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->duplicate_of);
+#line 4436 "BatchImport.c"
+}
+
+
+GType batch_import_result_get_type (void) {
+ static volatile gsize batch_import_result_type_id__volatile = 0;
+ if (g_once_init_enter (&batch_import_result_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_batch_import_result_init, value_batch_import_result_free_value, value_batch_import_result_copy_value, value_batch_import_result_peek_pointer, "p", value_batch_import_result_collect_value, "p", value_batch_import_result_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BatchImportResultClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) batch_import_result_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BatchImportResult), 0, (GInstanceInitFunc) batch_import_result_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType batch_import_result_type_id;
+ batch_import_result_type_id = g_type_register_fundamental (g_type_fundamental_next (), "BatchImportResult", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&batch_import_result_type_id__volatile, batch_import_result_type_id);
+ }
+ return batch_import_result_type_id__volatile;
+}
+
+
+gpointer batch_import_result_ref (gpointer instance) {
+ BatchImportResult* self;
+ self = instance;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 4461 "BatchImport.c"
+}
+
+
+void batch_import_result_unref (gpointer instance) {
+ BatchImportResult* self;
+ self = instance;
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BATCH_IMPORT_RESULT_GET_CLASS (self)->finalize (self);
+#line 278 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4474 "BatchImport.c"
+ }
+}
+
+
+ImportManifest* import_manifest_construct (GType object_type, GeeList* prefailed, GeeList* pre_already_imported) {
+ ImportManifest* self = NULL;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp22_ = NULL;
+#line 321 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((prefailed == NULL) || GEE_IS_LIST (prefailed), NULL);
+#line 321 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((pre_already_imported == NULL) || GEE_IS_LIST (pre_already_imported), NULL);
+#line 321 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (ImportManifest*) g_type_create_instance (object_type);
+#line 323 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = prefailed;
+#line 323 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_ != NULL) {
+#line 4493 "BatchImport.c"
+ {
+ GeeList* _job_list = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _job_size = 0;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _job_index = 0;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = prefailed;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_list = _tmp2_;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _job_list;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_size = _tmp5_;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_index = -1;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 4521 "BatchImport.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ BatchImportJob* job = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ BatchImportResult* batch_result = NULL;
+ BatchImportJob* _tmp12_ = NULL;
+ BatchImportJob* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ BatchImportJob* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ BatchImportResult* _tmp19_ = NULL;
+ BatchImportResult* _tmp20_ = NULL;
+ BatchImportResult* _tmp21_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _job_index;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_index = _tmp6_ + 1;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _job_index;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _job_size;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp7_ < _tmp8_)) {
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4552 "BatchImport.c"
+ }
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _job_list;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _job_index;
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = gee_list_get (_tmp9_, _tmp10_);
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = (BatchImportJob*) _tmp11_;
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = job;
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = job;
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = batch_import_job_get_source_identifier (_tmp13_);
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_;
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = job;
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = batch_import_job_get_dest_identifier (_tmp16_);
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = _tmp17_;
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = batch_import_result_new (_tmp12_, NULL, _tmp15_, _tmp18_, NULL, IMPORT_RESULT_FILE_ERROR);
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_;
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp18_);
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp15_);
+#line 325 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_result = _tmp20_;
+#line 329 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = batch_result;
+#line 329 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_add_result (self, _tmp21_);
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (batch_result);
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 4594 "BatchImport.c"
+ }
+#line 324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_job_list);
+#line 4598 "BatchImport.c"
+ }
+ }
+#line 333 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = pre_already_imported;
+#line 333 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp22_ != NULL) {
+#line 4605 "BatchImport.c"
+ {
+ GeeList* _job_list = NULL;
+ GeeList* _tmp23_ = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _job_size = 0;
+ GeeList* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _job_index = 0;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = pre_already_imported;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_list = _tmp24_;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _job_list;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_size = _tmp27_;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_index = -1;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 4633 "BatchImport.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ BatchImportJob* job = NULL;
+ GeeList* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gpointer _tmp33_ = NULL;
+ BatchImportResult* batch_result = NULL;
+ BatchImportJob* _tmp34_ = NULL;
+ BatchImportJob* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ GFile* _tmp38_ = NULL;
+ GFile* _tmp39_ = NULL;
+ BatchImportJob* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ BatchImportJob* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ BatchImportJob* _tmp46_ = NULL;
+ DuplicatedFile* _tmp47_ = NULL;
+ DuplicatedFile* _tmp48_ = NULL;
+ BatchImportResult* _tmp49_ = NULL;
+ BatchImportResult* _tmp50_ = NULL;
+ BatchImportResult* _tmp51_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _job_index;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_index = _tmp28_ + 1;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = _job_index;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _job_size;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp29_ < _tmp30_)) {
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4672 "BatchImport.c"
+ }
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = _job_list;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = _job_index;
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = gee_list_get (_tmp31_, _tmp32_);
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = (BatchImportJob*) _tmp33_;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = job;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = job;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = batch_import_job_get_basename (_tmp35_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = _tmp36_;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = g_file_new_for_path (_tmp37_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = _tmp38_;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = job;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = batch_import_job_get_source_identifier (_tmp40_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = _tmp41_;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = job;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = batch_import_job_get_dest_identifier (_tmp43_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = _tmp44_;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = job;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = batch_import_job_get_duplicated_file (_tmp46_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = _tmp47_;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = batch_import_result_new (_tmp34_, _tmp39_, _tmp42_, _tmp45_, _tmp48_, IMPORT_RESULT_PHOTO_EXISTS);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = _tmp49_;
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp48_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp45_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp42_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp39_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp37_);
+#line 335 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_result = _tmp50_;
+#line 340 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = batch_result;
+#line 340 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_add_result (self, _tmp51_);
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (batch_result);
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 4736 "BatchImport.c"
+ }
+#line 334 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_job_list);
+#line 4740 "BatchImport.c"
+ }
+ }
+#line 321 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 4745 "BatchImport.c"
+}
+
+
+ImportManifest* import_manifest_new (GeeList* prefailed, GeeList* pre_already_imported) {
+#line 321 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return import_manifest_construct (TYPE_IMPORT_MANIFEST, prefailed, pre_already_imported);
+#line 4752 "BatchImport.c"
+}
+
+
+void import_manifest_add_result (ImportManifest* self, BatchImportResult* batch_result) {
+ gboolean reported = FALSE;
+ BatchImportResult* _tmp0_ = NULL;
+ ImportResult _tmp1_ = 0;
+ gboolean _tmp26_ = FALSE;
+#line 345 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_IMPORT_MANIFEST (self));
+#line 345 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_RESULT (batch_result));
+#line 346 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ reported = TRUE;
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = batch_result;
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _tmp0_->result;
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ switch (_tmp1_) {
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_SUCCESS:
+#line 4775 "BatchImport.c"
+ {
+ GeeList* _tmp2_ = NULL;
+ BatchImportResult* _tmp3_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->success;
+#line 349 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = batch_result;
+#line 349 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), _tmp3_);
+#line 350 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4787 "BatchImport.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_USER_ABORT:
+#line 4791 "BatchImport.c"
+ {
+ gboolean _tmp4_ = FALSE;
+ BatchImportResult* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = batch_result;
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_->file;
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp6_ != NULL) {
+#line 4802 "BatchImport.c"
+ BatchImportResult* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = batch_result;
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_->file;
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = query_is_directory (_tmp8_);
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = !_tmp9_;
+#line 4814 "BatchImport.c"
+ } else {
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = FALSE;
+#line 4818 "BatchImport.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp4_) {
+#line 4822 "BatchImport.c"
+ GeeList* _tmp10_ = NULL;
+ BatchImportResult* _tmp11_ = NULL;
+#line 354 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = self->aborted;
+#line 354 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = batch_result;
+#line 354 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection), _tmp11_);
+#line 4831 "BatchImport.c"
+ } else {
+#line 356 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ reported = FALSE;
+#line 4835 "BatchImport.c"
+ }
+#line 357 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4839 "BatchImport.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_UNSUPPORTED_FORMAT:
+#line 4843 "BatchImport.c"
+ {
+ GeeList* _tmp12_ = NULL;
+ BatchImportResult* _tmp13_ = NULL;
+#line 360 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = self->skipped_photos;
+#line 360 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = batch_result;
+#line 360 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp13_);
+#line 361 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4855 "BatchImport.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_NOT_A_FILE:
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_NOT_AN_IMAGE:
+#line 4861 "BatchImport.c"
+ {
+ GeeList* _tmp14_ = NULL;
+ BatchImportResult* _tmp15_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = self->skipped_files;
+#line 365 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = batch_result;
+#line 365 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 366 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4873 "BatchImport.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_PHOTO_EXISTS:
+#line 4877 "BatchImport.c"
+ {
+ GeeList* _tmp16_ = NULL;
+ BatchImportResult* _tmp17_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = self->already_imported;
+#line 369 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = batch_result;
+#line 369 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection), _tmp17_);
+#line 370 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4889 "BatchImport.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_CAMERA_ERROR:
+#line 4893 "BatchImport.c"
+ {
+ GeeList* _tmp18_ = NULL;
+ BatchImportResult* _tmp19_ = NULL;
+#line 373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = self->camera_failed;
+#line 373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = batch_result;
+#line 373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), _tmp19_);
+#line 374 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4905 "BatchImport.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_FILE_WRITE_ERROR:
+#line 4909 "BatchImport.c"
+ {
+ GeeList* _tmp20_ = NULL;
+ BatchImportResult* _tmp21_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = self->write_failed;
+#line 377 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = batch_result;
+#line 377 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection), _tmp21_);
+#line 378 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4921 "BatchImport.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE:
+#line 4925 "BatchImport.c"
+ {
+ GeeList* _tmp22_ = NULL;
+ BatchImportResult* _tmp23_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = self->corrupt_files;
+#line 381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = batch_result;
+#line 381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), _tmp23_);
+#line 382 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4937 "BatchImport.c"
+ }
+ default:
+ {
+ GeeList* _tmp24_ = NULL;
+ BatchImportResult* _tmp25_ = NULL;
+#line 385 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = self->failed;
+#line 385 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = batch_result;
+#line 385 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 386 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 4951 "BatchImport.c"
+ }
+ }
+#line 389 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = reported;
+#line 389 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp26_) {
+#line 4958 "BatchImport.c"
+ GeeList* _tmp27_ = NULL;
+ BatchImportResult* _tmp28_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = self->all;
+#line 390 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = batch_result;
+#line 390 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection), _tmp28_);
+#line 4967 "BatchImport.c"
+ }
+}
+
+
+static void value_import_manifest_init (GValue* value) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 4975 "BatchImport.c"
+}
+
+
+static void value_import_manifest_free_value (GValue* value) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_unref (value->data[0].v_pointer);
+#line 4984 "BatchImport.c"
+ }
+}
+
+
+static void value_import_manifest_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = import_manifest_ref (src_value->data[0].v_pointer);
+#line 4994 "BatchImport.c"
+ } else {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4998 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_import_manifest_peek_pointer (const GValue* value) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 5006 "BatchImport.c"
+}
+
+
+static gchar* value_import_manifest_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 5013 "BatchImport.c"
+ ImportManifest* object;
+ object = collect_values[0].v_pointer;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5020 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5024 "BatchImport.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = import_manifest_ref (object);
+#line 5028 "BatchImport.c"
+ } else {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 5032 "BatchImport.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 5036 "BatchImport.c"
+}
+
+
+static gchar* value_import_manifest_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ImportManifest** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 5047 "BatchImport.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 5053 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 5057 "BatchImport.c"
+ } else {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = import_manifest_ref (value->data[0].v_pointer);
+#line 5061 "BatchImport.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 5065 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecImportManifest* spec;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_IMPORT_MANIFEST), NULL);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 5079 "BatchImport.c"
+}
+
+
+gpointer value_get_import_manifest (const GValue* value) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_IMPORT_MANIFEST), NULL);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 5088 "BatchImport.c"
+}
+
+
+void value_set_import_manifest (GValue* value, gpointer v_object) {
+ ImportManifest* old;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_IMPORT_MANIFEST));
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_IMPORT_MANIFEST));
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_ref (value->data[0].v_pointer);
+#line 5108 "BatchImport.c"
+ } else {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 5112 "BatchImport.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_unref (old);
+#line 5118 "BatchImport.c"
+ }
+}
+
+
+void value_take_import_manifest (GValue* value, gpointer v_object) {
+ ImportManifest* old;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_IMPORT_MANIFEST));
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_IMPORT_MANIFEST));
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 5137 "BatchImport.c"
+ } else {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 5141 "BatchImport.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_unref (old);
+#line 5147 "BatchImport.c"
+ }
+}
+
+
+static void import_manifest_class_init (ImportManifestClass * klass) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_parent_class = g_type_class_peek_parent (klass);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((ImportManifestClass *) klass)->finalize = import_manifest_finalize;
+#line 5157 "BatchImport.c"
+}
+
+
+static void import_manifest_instance_init (ImportManifest * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+#line 309 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 309 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->imported = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
+#line 310 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 310 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->success = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_LIST, GeeList);
+#line 311 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 311 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->camera_failed = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_LIST, GeeList);
+#line 312 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 312 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->failed = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_LIST, GeeList);
+#line 313 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 313 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->write_failed = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_LIST, GeeList);
+#line 314 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 314 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->skipped_photos = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_LIST, GeeList);
+#line 315 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 315 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->skipped_files = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_LIST, GeeList);
+#line 316 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 316 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->aborted = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_LIST, GeeList);
+#line 317 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 317 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->already_imported = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_LIST, GeeList);
+#line 318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->corrupt_files = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_LIST, GeeList);
+#line 319 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 319 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->all = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_LIST, GeeList);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 5219 "BatchImport.c"
+}
+
+
+static void import_manifest_finalize (ImportManifest* obj) {
+ ImportManifest * self;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IMPORT_MANIFEST, ImportManifest);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 309 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->imported);
+#line 310 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->success);
+#line 311 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->camera_failed);
+#line 312 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->failed);
+#line 313 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->write_failed);
+#line 314 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->skipped_photos);
+#line 315 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->skipped_files);
+#line 316 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->aborted);
+#line 317 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->already_imported);
+#line 318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->corrupt_files);
+#line 319 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->all);
+#line 5251 "BatchImport.c"
+}
+
+
+GType import_manifest_get_type (void) {
+ static volatile gsize import_manifest_type_id__volatile = 0;
+ if (g_once_init_enter (&import_manifest_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_import_manifest_init, value_import_manifest_free_value, value_import_manifest_copy_value, value_import_manifest_peek_pointer, "p", value_import_manifest_collect_value, "p", value_import_manifest_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ImportManifestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_manifest_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportManifest), 0, (GInstanceInitFunc) import_manifest_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType import_manifest_type_id;
+ import_manifest_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ImportManifest", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&import_manifest_type_id__volatile, import_manifest_type_id);
+ }
+ return import_manifest_type_id__volatile;
+}
+
+
+gpointer import_manifest_ref (gpointer instance) {
+ ImportManifest* self;
+ self = instance;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 5276 "BatchImport.c"
+}
+
+
+void import_manifest_unref (gpointer instance) {
+ ImportManifest* self;
+ self = instance;
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ IMPORT_MANIFEST_GET_CLASS (self)->finalize (self);
+#line 308 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 5289 "BatchImport.c"
+ }
+}
+
+
+static void _batch_import_user_halt_application_exiting (Application* _sender, gboolean panicked, gpointer self) {
+#line 508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_user_halt ((BatchImport*) self);
+#line 5297 "BatchImport.c"
+}
+
+
+static gpointer _batch_import_roll_ref0 (gpointer self) {
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? batch_import_roll_ref (self) : NULL;
+#line 5304 "BatchImport.c"
+}
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 491 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 5313 "BatchImport.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 491 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 5322 "BatchImport.c"
+}
+
+
+static gboolean _batch_import_display_imported_timer_gsource_func (gpointer self) {
+ gboolean result;
+ result = batch_import_display_imported_timer ((BatchImport*) self);
+#line 501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 5331 "BatchImport.c"
+}
+
+
+BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest) {
+ BatchImport * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ BatchImportImportReporter _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ ImportManifest* _tmp7_ = NULL;
+ GCancellable* _tmp8_ = NULL;
+ GCancellable* _tmp9_ = NULL;
+ GCancellable* _tmp13_ = NULL;
+ BatchImportRoll* _tmp14_ = NULL;
+ BatchImportRoll* _tmp15_ = NULL;
+ BatchImportRoll* _tmp19_ = NULL;
+ ImportManifest* _tmp20_ = NULL;
+ Application* _tmp38_ = NULL;
+ Application* _tmp39_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (jobs), NULL);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((prefailed == NULL) || GEE_IS_ARRAY_LIST (prefailed), NULL);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((pre_already_imported == NULL) || GEE_IS_ARRAY_LIST (pre_already_imported), NULL);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), NULL);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((import_roll == NULL) || IS_BATCH_IMPORT_ROLL (import_roll), NULL);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((skip_manifest == NULL) || IS_IMPORT_MANIFEST (skip_manifest), NULL);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (BatchImport*) g_object_new (object_type, NULL);
+#line 483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = jobs;
+#line 483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->jobs);
+#line 483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->jobs = _tmp1_;
+#line 484 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = name;
+#line 484 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 484 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->priv->name);
+#line 484 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->name = _tmp3_;
+#line 485 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = reporter;
+#line 485 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4__target = reporter_target;
+#line 485 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->reporter = _tmp4_;
+#line 485 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->reporter_target = _tmp4__target;
+#line 486 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = prefailed;
+#line 486 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = pre_already_imported;
+#line 486 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = import_manifest_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_LIST, GeeList), G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_LIST, GeeList));
+#line 486 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _import_manifest_unref0 (self->priv->manifest);
+#line 486 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->manifest = _tmp7_;
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = cancellable;
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp9_ != NULL) {
+#line 5409 "BatchImport.c"
+ GCancellable* _tmp10_ = NULL;
+ GCancellable* _tmp11_ = NULL;
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = cancellable;
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp8_);
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp11_;
+#line 5420 "BatchImport.c"
+ } else {
+ GCancellable* _tmp12_ = NULL;
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = g_cancellable_new ();
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp8_);
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp12_;
+#line 5429 "BatchImport.c"
+ }
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _g_object_ref0 (_tmp8_);
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->cancellable = _tmp13_;
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = import_roll;
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp15_ != NULL) {
+#line 5441 "BatchImport.c"
+ BatchImportRoll* _tmp16_ = NULL;
+ BatchImportRoll* _tmp17_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = import_roll;
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _batch_import_roll_ref0 (_tmp16_);
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_roll_unref0 (_tmp14_);
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _tmp17_;
+#line 5452 "BatchImport.c"
+ } else {
+ BatchImportRoll* _tmp18_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = batch_import_roll_new ();
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_roll_unref0 (_tmp14_);
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _tmp18_;
+#line 5461 "BatchImport.c"
+ }
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = _batch_import_roll_ref0 (_tmp14_);
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_roll_unref0 (self->priv->import_roll);
+#line 488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->import_roll = _tmp19_;
+#line 490 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = skip_manifest;
+#line 490 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp20_ != NULL) {
+#line 5473 "BatchImport.c"
+ GeeHashSet* _tmp21_ = NULL;
+#line 491 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = gee_hash_set_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 491 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->skipset);
+#line 491 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->skipset = _tmp21_;
+#line 5481 "BatchImport.c"
+ {
+ GeeList* _source_list = NULL;
+ ImportManifest* _tmp22_ = NULL;
+ GeeList* _tmp23_ = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _source_size = 0;
+ GeeList* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _source_index = 0;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = skip_manifest;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = _tmp22_->imported;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _source_list = _tmp24_;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _source_list;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _source_size = _tmp27_;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _source_index = -1;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 5512 "BatchImport.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ MediaSource* source = NULL;
+ GeeList* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gpointer _tmp33_ = NULL;
+ GeeHashSet* _tmp34_ = NULL;
+ MediaSource* _tmp35_ = NULL;
+ GFile* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _source_index;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _source_index = _tmp28_ + 1;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = _source_index;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _source_size;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp29_ < _tmp30_)) {
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 5536 "BatchImport.c"
+ }
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = _source_list;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = _source_index;
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = gee_list_get (_tmp31_, _tmp32_);
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ source = (MediaSource*) _tmp33_;
+#line 493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = self->priv->skipset;
+#line 493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = source;
+#line 493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = media_source_get_file (_tmp35_);
+#line 493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = _tmp36_;
+#line 493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp37_);
+#line 493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp37_);
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (source);
+#line 5560 "BatchImport.c"
+ }
+#line 492 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_source_list);
+#line 5564 "BatchImport.c"
+ }
+ }
+#line 498 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = application_get_instance ();
+#line 498 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = _tmp38_;
+#line 498 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_connect_object (_tmp39_, "exiting", (GCallback) _batch_import_user_halt_application_exiting, self, 0);
+#line 498 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _application_unref0 (_tmp39_);
+#line 501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) BATCH_IMPORT_DISPLAY_QUEUE_TIMER_MSEC, _batch_import_display_imported_timer_gsource_func, g_object_ref (self), g_object_unref);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_roll_unref0 (_tmp14_);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp8_);
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 5583 "BatchImport.c"
+}
+
+
+BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest) {
+#line 478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return batch_import_construct (TYPE_BATCH_IMPORT, jobs, name, reporter, reporter_target, prefailed, pre_already_imported, cancellable, import_roll, skip_manifest);
+#line 5590 "BatchImport.c"
+}
+
+
+gchar* batch_import_get_name (BatchImport* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), NULL);
+#line 512 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->name;
+#line 512 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 512 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp1_;
+#line 512 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 5608 "BatchImport.c"
+}
+
+
+void batch_import_user_halt (BatchImport* self) {
+ GCancellable* _tmp0_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 516 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 516 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_cancellable_cancel (_tmp0_);
+#line 5620 "BatchImport.c"
+}
+
+
+gboolean batch_import_get_untrash_duplicates (BatchImport* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 519 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), FALSE);
+#line 520 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->untrash_duplicates;
+#line 520 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp0_;
+#line 520 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 5635 "BatchImport.c"
+}
+
+
+void batch_import_set_untrash_duplicates (BatchImport* self, gboolean untrash_duplicates) {
+ gboolean _tmp0_ = FALSE;
+#line 523 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 524 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = untrash_duplicates;
+#line 524 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->untrash_duplicates = _tmp0_;
+#line 5647 "BatchImport.c"
+}
+
+
+gboolean batch_import_get_mark_duplicates_online (BatchImport* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), FALSE);
+#line 528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->mark_duplicates_online;
+#line 528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp0_;
+#line 528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 5662 "BatchImport.c"
+}
+
+
+void batch_import_set_mark_duplicates_online (BatchImport* self, gboolean mark_duplicates_online) {
+ gboolean _tmp0_ = FALSE;
+#line 531 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = mark_duplicates_online;
+#line 532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->mark_duplicates_online = _tmp0_;
+#line 5674 "BatchImport.c"
+}
+
+
+static void batch_import_log_status (BatchImport* self, const gchar* where) {
+#line 535 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 535 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (where != NULL);
+#line 5683 "BatchImport.c"
+}
+
+
+static gboolean batch_import_report_failure (BatchImport* self, BatchImportResult* import_result) {
+ gboolean result = FALSE;
+ gboolean proceed = FALSE;
+ ImportManifest* _tmp0_ = NULL;
+ BatchImportResult* _tmp1_ = NULL;
+ BatchImportResult* _tmp2_ = NULL;
+ ImportResult _tmp3_ = 0;
+ gboolean _tmp22_ = FALSE;
+ BatchImportResult* _tmp23_ = NULL;
+ ImportResult _tmp24_ = 0;
+ gboolean _tmp25_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 545 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), FALSE);
+#line 545 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_RESULT (import_result), FALSE);
+#line 546 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ proceed = TRUE;
+#line 548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->manifest;
+#line 548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = import_result;
+#line 548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_add_result (_tmp0_, _tmp1_);
+#line 550 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = import_result;
+#line 550 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _tmp2_->result;
+#line 550 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp3_ != IMPORT_RESULT_SUCCESS) {
+#line 5717 "BatchImport.c"
+ BatchImportResult* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ BatchImportResult* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 551 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = import_result;
+#line 551 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_emit_by_name (self, "import-job-failed", _tmp4_);
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = import_result;
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_->file;
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp7_ != NULL) {
+#line 5732 "BatchImport.c"
+ BatchImportResult* _tmp8_ = NULL;
+ ImportResult _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = import_result;
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_->result;
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = import_result_is_abort (_tmp9_);
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = !_tmp10_;
+#line 5744 "BatchImport.c"
+ } else {
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = FALSE;
+#line 5748 "BatchImport.c"
+ }
+#line 553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp5_) {
+#line 5752 "BatchImport.c"
+ guint64 filesize = 0ULL;
+ guint64 _tmp21_ = 0ULL;
+#line 554 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ filesize = (guint64) 0;
+#line 5757 "BatchImport.c"
+ {
+ guint64 _tmp11_ = 0ULL;
+ BatchImportResult* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ guint64 _tmp14_ = 0ULL;
+#line 557 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = import_result;
+#line 557 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_->file;
+#line 557 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = query_total_file_size (_tmp13_, NULL, &_inner_error_);
+#line 557 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp14_;
+#line 557 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5773 "BatchImport.c"
+ goto __catch397_g_error;
+ }
+#line 557 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ filesize = _tmp11_;
+#line 5778 "BatchImport.c"
+ }
+ goto __finally397;
+ __catch397_g_error:
+ {
+ GError* err = NULL;
+ BatchImportResult* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = import_result;
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = _tmp15_->file;
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = _tmp17_;
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = err;
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_->message;
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:559: Unable to query file size of %s: %s", _tmp18_, _tmp20_);
+#line 559 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp18_);
+#line 555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 5812 "BatchImport.c"
+ }
+ __finally397:
+#line 555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return FALSE;
+#line 5823 "BatchImport.c"
+ }
+#line 563 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = filesize;
+#line 563 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_progress (self, _tmp21_);
+#line 5829 "BatchImport.c"
+ }
+ }
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = import_result;
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = _tmp23_->result;
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = import_result_is_nonuser_abort (_tmp24_);
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp25_) {
+#line 5840 "BatchImport.c"
+ gboolean _tmp26_ = FALSE;
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = proceed;
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = _tmp26_;
+#line 5846 "BatchImport.c"
+ } else {
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = FALSE;
+#line 5850 "BatchImport.c"
+ }
+#line 568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp22_) {
+#line 5854 "BatchImport.c"
+ BatchImportResult* _tmp27_ = NULL;
+ ImportResult _tmp28_ = 0;
+ BatchImportResult* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+#line 569 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = import_result;
+#line 569 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _tmp27_->result;
+#line 569 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = import_result;
+#line 569 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _tmp29_->errmsg;
+#line 569 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_emit_by_name (self, "fatal-error", _tmp28_, _tmp30_);
+#line 570 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ proceed = FALSE;
+#line 5871 "BatchImport.c"
+ }
+#line 573 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = proceed;
+#line 573 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 5877 "BatchImport.c"
+}
+
+
+static void batch_import_report_progress (BatchImport* self, guint64 increment_of_progress) {
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+#line 576 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 577 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed_bytes;
+#line 577 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = increment_of_progress;
+#line 577 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->completed_bytes = _tmp0_ + _tmp1_;
+#line 581 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->priv->completed_bytes;
+#line 581 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp2_ == ((guint64) 0)) {
+#line 5897 "BatchImport.c"
+ gulong now = 0UL;
+ gulong _tmp3_ = 0UL;
+ gulong _tmp4_ = 0UL;
+ gulong _tmp5_ = 0UL;
+#line 582 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = now_ms ();
+#line 582 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ now = _tmp3_;
+#line 583 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = now;
+#line 583 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = self->priv->last_preparing_ms;
+#line 583 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if ((_tmp4_ - _tmp5_) > ((gulong) 250)) {
+#line 5912 "BatchImport.c"
+ gulong _tmp6_ = 0UL;
+#line 584 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = now;
+#line 584 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->last_preparing_ms = _tmp6_;
+#line 585 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_emit_by_name (self, "preparing");
+#line 5920 "BatchImport.c"
+ }
+ } else {
+ guint64 _tmp7_ = 0ULL;
+#line 587 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = increment_of_progress;
+#line 587 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp7_ > ((guint64) 0)) {
+#line 5928 "BatchImport.c"
+ gulong now = 0UL;
+ gulong _tmp8_ = 0UL;
+ gulong _tmp9_ = 0UL;
+ gulong _tmp10_ = 0UL;
+#line 588 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = now_ms ();
+#line 588 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ now = _tmp8_;
+#line 589 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = now;
+#line 589 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = self->priv->last_preparing_ms;
+#line 589 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if ((_tmp9_ - _tmp10_) > ((gulong) 250)) {
+#line 5943 "BatchImport.c"
+ gulong _tmp11_ = 0UL;
+ guint64 _tmp12_ = 0ULL;
+ guint64 _tmp13_ = 0ULL;
+#line 590 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = now;
+#line 590 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->last_preparing_ms = _tmp11_;
+#line 591 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = self->priv->completed_bytes;
+#line 591 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = self->priv->total_bytes;
+#line 591 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_emit_by_name (self, "progress", _tmp12_, _tmp13_);
+#line 5957 "BatchImport.c"
+ }
+ }
+ }
+}
+
+
+static gboolean batch_import_report_failures (BatchImport* self, BackgroundImportJob* background_job) {
+ gboolean result = FALSE;
+ gboolean proceed = FALSE;
+#line 596 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), FALSE);
+#line 596 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BACKGROUND_IMPORT_JOB (background_job), FALSE);
+#line 597 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ proceed = TRUE;
+#line 5973 "BatchImport.c"
+ {
+ GeeList* _import_result_list = NULL;
+ BackgroundImportJob* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _import_result_size = 0;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _import_result_index = 0;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = background_job;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _tmp0_->failed;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _import_result_list = _tmp2_;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _import_result_list;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _import_result_size = _tmp5_;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _import_result_index = -1;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 6004 "BatchImport.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ BatchImportResult* import_result = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ BatchImportResult* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _import_result_index;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _import_result_index = _tmp6_ + 1;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _import_result_index;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _import_result_size;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp7_ < _tmp8_)) {
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 6026 "BatchImport.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _import_result_list;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _import_result_index;
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = gee_list_get (_tmp9_, _tmp10_);
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_result = (BatchImportResult*) _tmp11_;
+#line 600 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = import_result;
+#line 600 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = batch_import_report_failure (self, _tmp12_);
+#line 600 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp13_) {
+#line 601 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ proceed = FALSE;
+#line 6044 "BatchImport.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (import_result);
+#line 6048 "BatchImport.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_import_result_list);
+#line 6052 "BatchImport.c"
+ }
+#line 604 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = proceed;
+#line 604 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 6058 "BatchImport.c"
+}
+
+
+static void batch_import_report_completed (BatchImport* self, const gchar* where) {
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ BatchImportImportReporter _tmp5_ = NULL;
+ void* _tmp5__target = NULL;
+ ImportManifest* _tmp9_ = NULL;
+ BatchImportRoll* _tmp10_ = NULL;
+#line 607 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 607 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (where != NULL);
+#line 608 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 608 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_) {
+#line 6079 "BatchImport.c"
+ const gchar* _tmp1_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = where;
+#line 609 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_error ("BatchImport.vala:609: Attempted to complete already-completed import: " \
+"%s", _tmp1_);
+#line 6085 "BatchImport.c"
+ }
+#line 611 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->completed = TRUE;
+#line 613 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_ready_sources (self);
+#line 615 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = where;
+#line 615 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_strdup_printf ("Import completed: %s", _tmp2_);
+#line 615 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp3_;
+#line 615 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, _tmp4_);
+#line 615 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp4_);
+#line 618 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = self->priv->reporter;
+#line 618 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5__target = self->priv->reporter_target;
+#line 618 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp5_ != NULL) {
+#line 6107 "BatchImport.c"
+ BatchImportImportReporter _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ ImportManifest* _tmp7_ = NULL;
+ BatchImportRoll* _tmp8_ = NULL;
+#line 619 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = self->priv->reporter;
+#line 619 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6__target = self->priv->reporter_target;
+#line 619 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = self->priv->manifest;
+#line 619 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = self->priv->import_roll;
+#line 619 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ (_tmp7_, _tmp8_, _tmp6__target);
+#line 6122 "BatchImport.c"
+ }
+#line 621 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = self->priv->manifest;
+#line 621 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = self->priv->import_roll;
+#line 621 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_emit_by_name (self, "import-complete", _tmp9_, _tmp10_);
+#line 6130 "BatchImport.c"
+}
+
+
+static void batch_import_file_import_complete (BatchImport* self) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gboolean _tmp4_ = FALSE;
+ gint _tmp5_ = 0;
+#line 625 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 627 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file_imports_completed;
+#line 627 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file_imports_completed = _tmp0_ + 1;
+#line 628 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->priv->file_imports_to_perform;
+#line 628 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ != -1) {
+#line 6149 "BatchImport.c"
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 629 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->priv->file_imports_completed;
+#line 629 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->priv->file_imports_to_perform;
+#line 629 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp2_ <= _tmp3_, "file_imports_completed <= file_imports_to_perform");
+#line 6158 "BatchImport.c"
+ }
+#line 633 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = self->priv->file_imports_to_perform;
+#line 633 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp5_ != -1) {
+#line 6164 "BatchImport.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 633 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = self->priv->file_imports_completed;
+#line 633 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = self->priv->file_imports_to_perform;
+#line 633 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp6_ == _tmp7_;
+#line 6173 "BatchImport.c"
+ } else {
+#line 633 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = FALSE;
+#line 6177 "BatchImport.c"
+ }
+#line 633 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp4_) {
+#line 634 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_completed (self, "completed preparing files, all outstanding imports completed");
+#line 6183 "BatchImport.c"
+ }
+}
+
+
+static void _batch_import_on_work_sniffed_out_completion_callback (BackgroundJob* job, gpointer self) {
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_work_sniffed_out ((BatchImport*) self, job);
+#line 6191 "BatchImport.c"
+}
+
+
+static void _batch_import_on_sniffer_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_sniffer_cancelled ((BatchImport*) self, job);
+#line 6198 "BatchImport.c"
+}
+
+
+static gboolean _batch_import_on_sniffer_working_gsource_func (gpointer self) {
+ gboolean result;
+ result = batch_import_on_sniffer_working ((BatchImport*) self);
+#line 646 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 6207 "BatchImport.c"
+}
+
+
+void batch_import_schedule (BatchImport* self) {
+ gboolean _tmp0_ = FALSE;
+ Workers* _tmp1_ = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ WorkSniffer* _tmp5_ = NULL;
+ WorkSniffer* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 637 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 638 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->scheduled;
+#line 638 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp0_ == FALSE, "scheduled == false");
+#line 639 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->scheduled = TRUE;
+#line 641 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_emit_by_name (self, "starting");
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = batch_import_feeder_workers;
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->priv->jobs;
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->priv->cancellable;
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->priv->skipset;
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = work_sniffer_new (self, _tmp2_, _batch_import_on_work_sniffed_out_completion_callback, self, _tmp3_, _batch_import_on_sniffer_cancelled_cancellation_callback, self, _tmp4_);
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_;
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ workers_enqueue (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (_tmp6_);
+#line 646 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) BATCH_IMPORT_WORK_SNIFFER_THROBBER_MSEC, _batch_import_on_sniffer_working_gsource_func, g_object_ref (self), g_object_unref);
+#line 646 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->throbber_id = _tmp7_;
+#line 6250 "BatchImport.c"
+}
+
+
+static gboolean batch_import_on_sniffer_working (BatchImport* self) {
+ gboolean result = FALSE;
+#line 653 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), FALSE);
+#line 654 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_progress (self, (guint64) 0);
+#line 656 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = TRUE;
+#line 656 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 6264 "BatchImport.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 662 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 6271 "BatchImport.c"
+}
+
+
+static void _batch_import_on_file_prepared_notification_callback (BackgroundJob* job, NotificationObject* user, gpointer self) {
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_file_prepared ((BatchImport*) self, job, user);
+#line 6278 "BatchImport.c"
+}
+
+
+static void _batch_import_on_files_prepared_completion_callback (BackgroundJob* job, gpointer self) {
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_files_prepared ((BatchImport*) self, job);
+#line 6285 "BatchImport.c"
+}
+
+
+static void _batch_import_on_file_prepare_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_file_prepare_cancelled ((BatchImport*) self, job);
+#line 6292 "BatchImport.c"
+}
+
+
+static void batch_import_on_work_sniffed_out (BatchImport* self, BackgroundJob* j) {
+ gboolean _tmp0_ = FALSE;
+ WorkSniffer* sniffer = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ WorkSniffer* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ WorkSniffer* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ WorkSniffer* _tmp10_ = NULL;
+ guint64 _tmp11_ = 0ULL;
+ PrepareFilesJob* prepare_files_job = NULL;
+ WorkSniffer* _tmp12_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ GCancellable* _tmp14_ = NULL;
+ PrepareFilesJob* _tmp15_ = NULL;
+ Workers* _tmp16_ = NULL;
+ PrepareFilesJob* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+#line 659 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 659 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 660 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 660 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 662 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = j;
+#line 662 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_WORK_SNIFFER, WorkSniffer));
+#line 662 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ sniffer = _tmp2_;
+#line 664 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, "on_work_sniffed_out");
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = sniffer;
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = batch_import_report_failures (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob));
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp5_) {
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = TRUE;
+#line 6338 "BatchImport.c"
+ } else {
+ WorkSniffer* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = sniffer;
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_->files_to_prepare;
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_;
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _tmp9_ == 0;
+#line 6354 "BatchImport.c"
+ }
+#line 666 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp3_) {
+#line 667 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_completed (self, "work sniffed out: nothing to do");
+#line 669 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (sniffer);
+#line 669 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 6364 "BatchImport.c"
+ }
+#line 672 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = sniffer;
+#line 672 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp10_->total_bytes;
+#line 672 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->total_bytes = _tmp11_;
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = sniffer;
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_->files_to_prepare;
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = self->priv->cancellable;
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = prepare_files_job_new (self, _tmp13_, _batch_import_on_file_prepared_notification_callback, self, _batch_import_on_files_prepared_completion_callback, self, _tmp14_, _batch_import_on_file_prepare_cancelled_cancellation_callback, self);
+#line 679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepare_files_job = _tmp15_;
+#line 682 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = batch_import_feeder_workers;
+#line 682 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = prepare_files_job;
+#line 682 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ workers_enqueue (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 684 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = self->priv->throbber_id;
+#line 684 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp18_ > ((guint) 0)) {
+#line 6392 "BatchImport.c"
+ guint _tmp19_ = 0U;
+#line 685 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = self->priv->throbber_id;
+#line 685 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_source_remove (_tmp19_);
+#line 686 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->throbber_id = (guint) 0;
+#line 6400 "BatchImport.c"
+ }
+#line 659 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (prepare_files_job);
+#line 659 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (sniffer);
+#line 6406 "BatchImport.c"
+}
+
+
+static void batch_import_on_sniffer_cancelled (BatchImport* self, BackgroundJob* j) {
+ gboolean _tmp0_ = FALSE;
+ WorkSniffer* sniffer = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ WorkSniffer* _tmp2_ = NULL;
+ WorkSniffer* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+#line 690 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 690 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 691 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 691 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 693 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = j;
+#line 693 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_WORK_SNIFFER, WorkSniffer));
+#line 693 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ sniffer = _tmp2_;
+#line 695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, "on_sniffer_cancelled");
+#line 697 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = sniffer;
+#line 697 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failures (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob));
+#line 698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_completed (self, "work sniffer cancelled");
+#line 700 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->priv->throbber_id;
+#line 700 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp4_ > ((guint) 0)) {
+#line 6443 "BatchImport.c"
+ guint _tmp5_ = 0U;
+#line 701 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = self->priv->throbber_id;
+#line 701 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_source_remove (_tmp5_);
+#line 702 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->throbber_id = (guint) 0;
+#line 6451 "BatchImport.c"
+ }
+#line 690 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (sniffer);
+#line 6455 "BatchImport.c"
+}
+
+
+static void _batch_import_on_thumbnail_writer_completed_completion_callback (BackgroundJob* job, gpointer self) {
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_thumbnail_writer_completed ((BatchImport*) self, job);
+#line 6462 "BatchImport.c"
+}
+
+
+static void _batch_import_on_thumbnail_writer_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_thumbnail_writer_cancelled ((BatchImport*) self, job);
+#line 6469 "BatchImport.c"
+}
+
+
+static void _batch_import_on_import_files_completed_completion_callback (BackgroundJob* job, gpointer self) {
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_import_files_completed ((BatchImport*) self, job);
+#line 6476 "BatchImport.c"
+}
+
+
+static void _batch_import_on_import_files_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_on_import_files_cancelled ((BatchImport*) self, job);
+#line 6483 "BatchImport.c"
+}
+
+
+static void batch_import_flush_import_jobs (BatchImport* self) {
+#line 710 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 6492 "BatchImport.c"
+ gboolean _tmp0_ = FALSE;
+ GeeList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ Workers* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ CompletedImportObject* _tmp10_ = NULL;
+ GCancellable* _tmp11_ = NULL;
+ ThumbnailWriterJob* _tmp12_ = NULL;
+ ThumbnailWriterJob* _tmp13_ = NULL;
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->priv->ready_thumbnails;
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _tmp2_;
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp3_ > 0) {
+#line 6512 "BatchImport.c"
+ Workers* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ guint _tmp6_ = 0U;
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = batch_import_import_workers;
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = workers_get_pending_job_count (_tmp4_);
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = self->priv->max_outstanding_import_jobs;
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = ((guint) _tmp5_) < _tmp6_;
+#line 6524 "BatchImport.c"
+ } else {
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = FALSE;
+#line 6528 "BatchImport.c"
+ }
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp0_) {
+#line 715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 6534 "BatchImport.c"
+ }
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = batch_import_import_workers;
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = self->priv->ready_thumbnails;
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = gee_list_remove_at (_tmp8_, 0);
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = (CompletedImportObject*) _tmp9_;
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = self->priv->cancellable;
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = thumbnail_writer_job_new (self, _tmp10_, _batch_import_on_thumbnail_writer_completed_completion_callback, self, _tmp11_, _batch_import_on_thumbnail_writer_cancelled_cancellation_callback, self);
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_;
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ workers_enqueue (_tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (_tmp13_);
+#line 716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (_tmp10_);
+#line 6556 "BatchImport.c"
+ }
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 6560 "BatchImport.c"
+ gboolean _tmp14_ = FALSE;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ Workers* _tmp21_ = NULL;
+ GeeList* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+ PreparedFile* _tmp24_ = NULL;
+ BatchImportRoll* _tmp25_ = NULL;
+ ImportID _tmp26_ = {0};
+ GCancellable* _tmp27_ = NULL;
+ PreparedFileImportJob* _tmp28_ = NULL;
+ PreparedFileImportJob* _tmp29_ = NULL;
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = self->priv->ready_files;
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_;
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp17_ > 0) {
+#line 6582 "BatchImport.c"
+ Workers* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ guint _tmp20_ = 0U;
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = batch_import_import_workers;
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = workers_get_pending_job_count (_tmp18_);
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = self->priv->max_outstanding_import_jobs;
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = ((guint) _tmp19_) < _tmp20_;
+#line 6594 "BatchImport.c"
+ } else {
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = FALSE;
+#line 6598 "BatchImport.c"
+ }
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp14_) {
+#line 720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 6604 "BatchImport.c"
+ }
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = batch_import_import_workers;
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = self->priv->ready_files;
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = gee_list_remove_at (_tmp22_, 0);
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = (PreparedFile*) _tmp23_;
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = self->priv->import_roll;
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = _tmp25_->import_id;
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = self->priv->cancellable;
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = prepared_file_import_job_new (self, _tmp24_, &_tmp26_, _batch_import_on_import_files_completed_completion_callback, self, _tmp27_, _batch_import_on_import_files_cancelled_cancellation_callback, self);
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = _tmp28_;
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ workers_enqueue (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (_tmp29_);
+#line 721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_tmp24_);
+#line 6630 "BatchImport.c"
+ }
+}
+
+
+static GFile* batch_import_get_in_current_import (BatchImport* self, PreparedFile* prepared_file) {
+ GFile* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ PreparedFile* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PreparedFile* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), NULL);
+#line 729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_PREPARED_FILE (prepared_file), NULL);
+#line 731 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = prepared_file;
+#line 731 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _tmp1_->full_md5;
+#line 731 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp2_ != NULL) {
+#line 6652 "BatchImport.c"
+ GeeHashMap* _tmp3_ = NULL;
+ PreparedFile* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 732 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->priv->imported_full_md5_table;
+#line 732 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = prepared_file;
+#line 732 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_->full_md5;
+#line 732 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_);
+#line 732 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp6_;
+#line 6667 "BatchImport.c"
+ } else {
+#line 731 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = FALSE;
+#line 6671 "BatchImport.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_) {
+#line 6675 "BatchImport.c"
+ GeeHashMap* _tmp7_ = NULL;
+ PreparedFile* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+#line 734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = self->priv->imported_full_md5_table;
+#line 734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = prepared_file;
+#line 734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_->full_md5;
+#line 734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp9_);
+#line 734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = (GFile*) _tmp10_;
+#line 734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 6692 "BatchImport.c"
+ }
+#line 738 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = prepared_file;
+#line 738 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = _tmp11_->full_md5;
+#line 738 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp12_ != NULL) {
+#line 6700 "BatchImport.c"
+ GeeHashMap* _tmp13_ = NULL;
+ PreparedFile* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ PreparedFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+#line 739 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = self->priv->imported_full_md5_table;
+#line 739 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = prepared_file;
+#line 739 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_->full_md5;
+#line 739 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = prepared_file;
+#line 739 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_->file;
+#line 739 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp15_, _tmp17_);
+#line 6718 "BatchImport.c"
+ }
+#line 741 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = NULL;
+#line 741 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 6724 "BatchImport.c"
+}
+
+
+static gpointer _notification_object_ref0 (gpointer self) {
+#line 748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? notification_object_ref (self) : NULL;
+#line 6731 "BatchImport.c"
+}
+
+
+static void batch_import_on_file_prepared (BatchImport* self, BackgroundJob* j, NotificationObject* user) {
+ gboolean _tmp0_ = FALSE;
+ PreparedFileCluster* cluster = NULL;
+ NotificationObject* _tmp1_ = NULL;
+ PreparedFileCluster* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+#line 745 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 745 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 745 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail ((user == NULL) || IS_NOTIFICATION_OBJECT (user));
+#line 746 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 746 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = user;
+#line 748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _notification_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PREPARED_FILE_CLUSTER, PreparedFileCluster));
+#line 748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ cluster = _tmp2_;
+#line 750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = cluster->list;
+#line 750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_;
+#line 750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = g_strdup_printf ("on_file_prepared (%d files)", _tmp5_);
+#line 750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_;
+#line 750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, _tmp7_);
+#line 750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp7_);
+#line 752 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = cluster->list;
+#line 752 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_process_prepared_files (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_LIST, GeeList), NULL, NULL);
+#line 745 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _notification_object_unref0 (cluster);
+#line 6782 "BatchImport.c"
+}
+
+
+static void batch_import_process_prepared_files_data_free (gpointer _data) {
+ BatchImportProcessPreparedFilesData* _data_;
+ _data_ = _data;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->list);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->self);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_slice_free (BatchImportProcessPreparedFilesData, _data_);
+#line 6795 "BatchImport.c"
+}
+
+
+static void batch_import_process_prepared_files (BatchImport* self, GeeList* list, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ BatchImportProcessPreparedFilesData* _data_;
+ BatchImport* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_ = g_slice_new0 (BatchImportProcessPreparedFilesData);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, batch_import_process_prepared_files);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, batch_import_process_prepared_files_data_free);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->self = _tmp0_;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = list;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->list);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->list = _tmp2_;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_process_prepared_files_co (_data_);
+#line 6824 "BatchImport.c"
+}
+
+
+static void batch_import_process_prepared_files_finish (BatchImport* self, GAsyncResult* _res_) {
+ BatchImportProcessPreparedFilesData* _data_;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 6832 "BatchImport.c"
+}
+
+
+static gboolean _batch_import_process_prepared_files_co_gsource_func (gpointer self) {
+ gboolean result;
+ result = batch_import_process_prepared_files_co (self);
+#line 759 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 6841 "BatchImport.c"
+}
+
+
+static gboolean batch_import_process_prepared_files_co (BatchImportProcessPreparedFilesData* _data_) {
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ switch (_data_->_state_) {
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case 0:
+#line 6850 "BatchImport.c"
+ goto _state_0;
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case 1:
+#line 6854 "BatchImport.c"
+ goto _state_1;
+ default:
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_assert_not_reached ();
+#line 6859 "BatchImport.c"
+ }
+ _state_0:
+ {
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp0_ = NULL;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp0_ = _data_->list;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp1_ = NULL;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp1_ = _g_object_ref0 (_data_->_tmp0_);
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_prepared_file_list = _data_->_tmp1_;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp2_ = NULL;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp2_ = _data_->_prepared_file_list;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp3_ = 0;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp4_ = 0;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp4_ = _data_->_tmp3_;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_prepared_file_size = _data_->_tmp4_;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_prepared_file_index = -1;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp5_ = 0;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp5_ = _data_->_prepared_file_index;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_prepared_file_index = _data_->_tmp5_ + 1;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp6_ = 0;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp6_ = _data_->_prepared_file_index;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp7_ = 0;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp7_ = _data_->_prepared_file_size;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_data_->_tmp6_ < _data_->_tmp7_)) {
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 6909 "BatchImport.c"
+ }
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp8_ = NULL;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp8_ = _data_->_prepared_file_list;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp9_ = 0;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp9_ = _data_->_prepared_file_index;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp10_ = NULL;
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp10_ = gee_list_get (_data_->_tmp8_, _data_->_tmp9_);
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->prepared_file = (PreparedFile*) _data_->_tmp10_;
+#line 759 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, _batch_import_process_prepared_files_co_gsource_func, _data_, NULL);
+#line 760 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_state_ = 1;
+#line 760 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return FALSE;
+#line 6931 "BatchImport.c"
+ _state_1:
+ ;
+#line 762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->import_result = NULL;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp11_ = NULL;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp11_ = library_photo_global;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp12_ = NULL;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp12_ = _data_->prepared_file;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp13_ = NULL;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp13_ = _data_->_tmp12_->file;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp14_ = 0;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp15_ = NULL;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp15_ = library_photo_source_collection_get_state_by_file (_data_->_tmp11_, _data_->_tmp13_, &_data_->_tmp14_);
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo_state = _data_->_tmp14_;
+#line 767 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo = _data_->_tmp15_;
+#line 769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp16_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp16_ = _data_->photo;
+#line 769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp16_ != NULL) {
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp17_ = 0;
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp17_ = _data_->photo_state;
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ switch (_data_->_tmp17_) {
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 6978 "BatchImport.c"
+ {
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp18_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp18_ = _data_->prepared_file;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp19_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp19_ = _data_->_tmp18_->job;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp20_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp20_ = _data_->prepared_file;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp21_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp21_ = _data_->_tmp20_->file;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp22_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp22_ = _data_->prepared_file;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp23_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp23_ = _data_->_tmp22_->file;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp24_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp24_ = g_file_get_path (_data_->_tmp23_);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp25_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp25_ = _data_->_tmp24_;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp26_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp26_ = _data_->prepared_file;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp27_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp27_ = _data_->_tmp26_->file;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp28_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp28_ = g_file_get_path (_data_->_tmp27_);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp29_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp29_ = _data_->_tmp28_;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp30_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp30_ = _data_->photo;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp31_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp31_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp30_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp32_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp32_ = _data_->_tmp31_;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp33_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp33_ = duplicated_file_create_from_file (_data_->_tmp32_);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp34_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp34_ = _data_->_tmp33_;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp35_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp35_ = batch_import_result_new (_data_->_tmp19_, _data_->_tmp21_, _data_->_tmp25_, _data_->_tmp29_, _data_->_tmp34_, IMPORT_RESULT_PHOTO_EXISTS);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->import_result = _data_->_tmp35_;
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_tmp34_);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_tmp32_);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp29_);
+#line 775 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp25_);
+#line 780 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp36_ = 0;
+#line 780 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp36_ = _data_->photo_state;
+#line 780 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp36_ == LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE) {
+#line 781 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp37_ = NULL;
+#line 781 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp37_ = _data_->photo;
+#line 781 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_source_mark_online (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp37_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 7076 "BatchImport.c"
+ }
+#line 782 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 7080 "BatchImport.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 7084 "BatchImport.c"
+ {
+#line 786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 7088 "BatchImport.c"
+ }
+ default:
+ {
+#line 789 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp38_ = 0;
+#line 789 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp38_ = _data_->photo_state;
+#line 789 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ memset (&_data_->_tmp39_, 0, sizeof (GEnumValue*));
+#line 789 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp39_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _data_->_tmp38_);
+#line 789 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_error ("BatchImport.vala:789: Unknown LibraryPhotoSourceCollection state: %s", (_data_->_tmp39_ != NULL) ? _data_->_tmp39_->value_name : NULL);
+#line 7102 "BatchImport.c"
+ }
+ }
+ }
+#line 793 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp40_ = NULL;
+#line 793 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp40_ = _data_->import_result;
+#line 793 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp40_ != NULL) {
+#line 794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp41_ = NULL;
+#line 794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp41_ = _data_->import_result;
+#line 794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (_data_->self, _data_->_tmp41_);
+#line 795 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (_data_->self);
+#line 797 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 797 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 797 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_data_->prepared_file);
+#line 797 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 7128 "BatchImport.c"
+ }
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp42_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp42_ = video_global;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp43_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp43_ = _data_->prepared_file;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp44_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp44_ = _data_->_tmp43_->file;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp45_ = 0;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp46_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp46_ = video_source_collection_get_state_by_file (_data_->_tmp42_, _data_->_tmp44_, &_data_->_tmp45_);
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->video_state = _data_->_tmp45_;
+#line 801 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->video = _data_->_tmp46_;
+#line 802 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp47_ = NULL;
+#line 802 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp47_ = _data_->video;
+#line 802 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp47_ != NULL) {
+#line 803 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp48_ = 0;
+#line 803 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp48_ = _data_->video_state;
+#line 803 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ switch (_data_->_tmp48_) {
+#line 803 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case VIDEO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 803 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case VIDEO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 7168 "BatchImport.c"
+ {
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp49_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp49_ = _data_->prepared_file;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp50_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp50_ = _data_->_tmp49_->job;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp51_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp51_ = _data_->prepared_file;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp52_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp52_ = _data_->_tmp51_->file;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp53_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp53_ = _data_->prepared_file;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp54_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp54_ = _data_->_tmp53_->file;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp55_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp55_ = g_file_get_path (_data_->_tmp54_);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp56_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp56_ = _data_->_tmp55_;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp57_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp57_ = _data_->prepared_file;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp58_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp58_ = _data_->_tmp57_->file;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp59_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp59_ = g_file_get_path (_data_->_tmp58_);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp60_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp60_ = _data_->_tmp59_;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp61_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp61_ = _data_->video;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp62_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp62_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp61_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp63_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp63_ = _data_->_tmp62_;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp64_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp64_ = duplicated_file_create_from_file (_data_->_tmp63_);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp65_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp65_ = _data_->_tmp64_;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp66_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp66_ = batch_import_result_new (_data_->_tmp50_, _data_->_tmp52_, _data_->_tmp56_, _data_->_tmp60_, _data_->_tmp65_, IMPORT_RESULT_PHOTO_EXISTS);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->import_result = _data_->_tmp66_;
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_tmp65_);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_tmp63_);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp60_);
+#line 806 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp56_);
+#line 811 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp67_ = 0;
+#line 811 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp67_ = _data_->video_state;
+#line 811 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp67_ == VIDEO_SOURCE_COLLECTION_STATE_OFFLINE) {
+#line 812 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp68_ = NULL;
+#line 812 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp68_ = _data_->video;
+#line 812 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_source_mark_online (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp68_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 7266 "BatchImport.c"
+ }
+#line 813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 7270 "BatchImport.c"
+ }
+#line 803 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ case VIDEO_SOURCE_COLLECTION_STATE_TRASH:
+#line 7274 "BatchImport.c"
+ {
+#line 817 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 7278 "BatchImport.c"
+ }
+ default:
+ {
+#line 820 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp69_ = 0;
+#line 820 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp69_ = _data_->video_state;
+#line 820 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ memset (&_data_->_tmp70_, 0, sizeof (GEnumValue*));
+#line 820 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp70_ = g_enum_get_value (g_type_class_ref (VIDEO_SOURCE_COLLECTION_TYPE_STATE), _data_->_tmp69_);
+#line 820 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_error ("BatchImport.vala:820: Unknown VideoSourceCollection state: %s", (_data_->_tmp70_ != NULL) ? _data_->_tmp70_->value_name : NULL);
+#line 7292 "BatchImport.c"
+ }
+ }
+ }
+#line 824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp71_ = NULL;
+#line 824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp71_ = _data_->import_result;
+#line 824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp71_ != NULL) {
+#line 825 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp72_ = NULL;
+#line 825 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp72_ = _data_->import_result;
+#line 825 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (_data_->self, _data_->_tmp72_);
+#line 826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (_data_->self);
+#line 828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->video);
+#line 828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_data_->prepared_file);
+#line 828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 7320 "BatchImport.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp74_ = NULL;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp74_ = _data_->prepared_file;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp75_ = FALSE;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp75_ = _data_->_tmp74_->is_video;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp75_) {
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp76_ = NULL;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp76_ = _data_->prepared_file;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp77_ = NULL;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp77_ = _data_->_tmp76_->file;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp78_ = NULL;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp78_ = _data_->prepared_file;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp79_ = NULL;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp79_ = _data_->_tmp78_->full_md5;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp80_ = FALSE;
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp80_ = video_is_duplicate (_data_->_tmp77_, _data_->_tmp79_);
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp73_ = _data_->_tmp80_;
+#line 7354 "BatchImport.c"
+ } else {
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp73_ = FALSE;
+#line 7358 "BatchImport.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp73_) {
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp81_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp81_ = video_table_get_instance ();
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp82_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp82_ = _data_->_tmp81_;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp83_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp83_ = _data_->prepared_file;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp84_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp84_ = _data_->_tmp83_->file;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp85_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp85_ = _data_->prepared_file;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp86_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp86_ = _data_->_tmp85_->full_md5;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp87_ = 0;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp88_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp88_ = video_table_get_duplicate_ids (_data_->_tmp82_, _data_->_tmp84_, _data_->_tmp86_, &_data_->_tmp87_);
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp89_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp89__length1 = 0;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp89_ = _data_->_tmp88_;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp89__length1 = _data_->_tmp87_;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _database_table_unref0 (_data_->_tmp82_);
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->duplicate_ids_length1 = 0;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_duplicate_ids_size_ = 0;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->duplicate_ids = _data_->_tmp89_;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->duplicate_ids_length1 = _data_->_tmp89__length1;
+#line 834 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_duplicate_ids_size_ = _data_->duplicate_ids_length1;
+#line 837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp90_ = NULL;
+#line 837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp90__length1 = 0;
+#line 837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp90_ = _data_->duplicate_ids;
+#line 837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp90__length1 = _data_->duplicate_ids_length1;
+#line 837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_data_->_tmp90__length1 > 0, "duplicate_ids.length > 0");
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp91_ = NULL;
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp91__length1 = 0;
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp91_ = _data_->duplicate_ids;
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp91__length1 = _data_->duplicate_ids_length1;
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ memset (&_data_->_tmp92_, 0, sizeof (VideoID));
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp92_ = _data_->_tmp91_[0];
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp93_ = NULL;
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp93_ = duplicated_file_create_from_video_id (&_data_->_tmp92_);
+#line 839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->duplicated_file = _data_->_tmp93_;
+#line 842 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->result_code = IMPORT_RESULT_PHOTO_EXISTS;
+#line 843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp94_ = FALSE;
+#line 843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp94_ = _data_->self->priv->mark_duplicates_online;
+#line 843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp94_) {
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp95_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp95_ = video_global;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp96_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp96_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp95_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp97_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp97_ = _data_->_tmp96_;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp98_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp98_ = _data_->prepared_file;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp99_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp99_ = _data_->_tmp98_->file;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp100_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp100_ = media_source_holding_tank_fetch_by_master_file (_data_->_tmp97_, _data_->_tmp99_);
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp101_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp101_ = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp100_, TYPE_VIDEO, Video);
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _source_holding_tank_unref0 (_data_->_tmp97_);
+#line 844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->dupe_video = _data_->_tmp101_;
+#line 846 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp102_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp102_ = _data_->dupe_video;
+#line 846 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp102_ == NULL) {
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp103_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp103_ = video_global;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp104_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp104_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp103_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp105_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp105_ = _data_->_tmp104_;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp106_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp106_ = _data_->prepared_file;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp107_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp107_ = _data_->_tmp106_->full_md5;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp108_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp108_ = media_source_holding_tank_fetch_by_md5 (_data_->_tmp105_, _data_->_tmp107_);
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->dupe_video);
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->dupe_video = G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp108_, TYPE_VIDEO, Video);
+#line 847 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _source_holding_tank_unref0 (_data_->_tmp105_);
+#line 7516 "BatchImport.c"
+ }
+#line 849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp109_ = NULL;
+#line 849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp109_ = _data_->dupe_video;
+#line 849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp109_ != NULL) {
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp110_ = NULL;
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp110_ = _data_->prepared_file;
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp111_ = NULL;
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp111_ = _data_->_tmp110_->file;
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp112_ = NULL;
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp112_ = g_file_get_path (_data_->_tmp111_);
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp113_ = NULL;
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp113_ = _data_->_tmp112_;
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:850: duplicate video found offline, marking as online" \
+": %s", _data_->_tmp113_);
+#line 850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp113_);
+#line 853 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp114_ = NULL;
+#line 853 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp114_ = _data_->dupe_video;
+#line 853 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp115_ = NULL;
+#line 853 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp115_ = _data_->prepared_file;
+#line 853 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp116_ = NULL;
+#line 853 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp116_ = _data_->_tmp115_->file;
+#line 853 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ monitorable_set_master_file (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp114_, TYPE_MONITORABLE, Monitorable), _data_->_tmp116_);
+#line 854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp117_ = NULL;
+#line 854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp117_ = _data_->dupe_video;
+#line 854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_source_mark_online (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp117_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 856 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->duplicated_file);
+#line 856 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->duplicated_file = NULL;
+#line 858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp118_ = NULL;
+#line 858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp118_ = _data_->self->priv->manifest;
+#line 858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp119_ = NULL;
+#line 858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp119_ = _data_->_tmp118_->imported;
+#line 858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp120_ = NULL;
+#line 858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp120_ = _data_->dupe_video;
+#line 858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp119_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp120_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 859 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp121_ = NULL;
+#line 859 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp121_ = _data_->dupe_video;
+#line 859 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp122_ = 0ULL;
+#line 859 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp122_ = media_source_get_filesize (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp121_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 859 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_progress (_data_->self, _data_->_tmp122_);
+#line 860 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (_data_->self);
+#line 862 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->result_code = IMPORT_RESULT_SUCCESS;
+#line 7596 "BatchImport.c"
+ }
+#line 843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->dupe_video);
+#line 7600 "BatchImport.c"
+ }
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp123_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp123_ = _data_->prepared_file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp124_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp124_ = _data_->_tmp123_->job;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp125_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp125_ = _data_->prepared_file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp126_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp126_ = _data_->_tmp125_->file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp127_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp127_ = _data_->prepared_file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp128_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp128_ = _data_->_tmp127_->file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp129_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp129_ = g_file_get_path (_data_->_tmp128_);
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp130_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp130_ = _data_->_tmp129_;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp131_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp131_ = _data_->prepared_file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp132_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp132_ = _data_->_tmp131_->file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp133_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp133_ = g_file_get_path (_data_->_tmp132_);
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp134_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp134_ = _data_->_tmp133_;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp135_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp135_ = _data_->duplicated_file;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp136_ = 0;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp136_ = _data_->result_code;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp137_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp137_ = batch_import_result_new (_data_->_tmp124_, _data_->_tmp126_, _data_->_tmp130_, _data_->_tmp134_, _data_->_tmp135_, _data_->_tmp136_);
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->import_result = _data_->_tmp137_;
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp134_);
+#line 866 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp130_);
+#line 870 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp138_ = 0;
+#line 870 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp138_ = _data_->result_code;
+#line 870 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp138_ == IMPORT_RESULT_SUCCESS) {
+#line 871 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp139_ = NULL;
+#line 871 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp139_ = _data_->self->priv->manifest;
+#line 871 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp140_ = NULL;
+#line 871 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp140_ = _data_->import_result;
+#line 871 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_add_result (_data_->_tmp139_, _data_->_tmp140_);
+#line 873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->duplicated_file);
+#line 873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->duplicate_ids = (g_free (_data_->duplicate_ids), NULL);
+#line 873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->video);
+#line 873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_data_->prepared_file);
+#line 873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 7700 "BatchImport.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->duplicated_file);
+#line 833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->duplicate_ids = (g_free (_data_->duplicate_ids), NULL);
+#line 7706 "BatchImport.c"
+ }
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp141_ = NULL;
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp141_ = _data_->prepared_file;
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp142_ = NULL;
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp142_ = batch_import_get_in_current_import (_data_->self, _data_->_tmp141_);
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp143_ = NULL;
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp143_ = _data_->_tmp142_;
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp144_ = FALSE;
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp144_ = _data_->_tmp143_ != NULL;
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_tmp143_);
+#line 877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp144_) {
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp145_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp145_ = _data_->prepared_file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp146_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp146_ = _data_->_tmp145_->job;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp147_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp147_ = _data_->prepared_file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp148_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp148_ = _data_->_tmp147_->file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp149_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp149_ = _data_->prepared_file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp150_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp150_ = _data_->_tmp149_->file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp151_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp151_ = g_file_get_path (_data_->_tmp150_);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp152_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp152_ = _data_->_tmp151_;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp153_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp153_ = _data_->prepared_file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp154_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp154_ = _data_->_tmp153_->file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp155_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp155_ = g_file_get_path (_data_->_tmp154_);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp156_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp156_ = _data_->_tmp155_;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp157_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp157_ = _data_->prepared_file;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp158_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp158_ = batch_import_get_in_current_import (_data_->self, _data_->_tmp157_);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp159_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp159_ = _data_->_tmp158_;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp160_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp160_ = duplicated_file_create_from_file (_data_->_tmp159_);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp161_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp161_ = _data_->_tmp160_;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp162_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp162_ = batch_import_result_new (_data_->_tmp146_, _data_->_tmp148_, _data_->_tmp152_, _data_->_tmp156_, _data_->_tmp161_, IMPORT_RESULT_PHOTO_EXISTS);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->import_result = _data_->_tmp162_;
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_tmp161_);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_tmp159_);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp156_);
+#line 880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp152_);
+#line 7812 "BatchImport.c"
+ } else {
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp163_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp163_ = _data_->prepared_file;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp164_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp164_ = _data_->_tmp163_->file;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp165_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp165_ = _data_->prepared_file;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp166_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp166_ = _data_->_tmp165_->full_md5;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp167_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp167_ = _data_->prepared_file;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp168_ = 0;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp168_ = _data_->_tmp167_->file_format;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp169_ = FALSE;
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp169_ = photo_is_duplicate (_data_->_tmp164_, NULL, _data_->_tmp166_, _data_->_tmp168_);
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp169_) {
+#line 886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp170_ = FALSE;
+#line 886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp170_ = _data_->self->priv->untrash_duplicates;
+#line 886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp170_) {
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp171_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp171_ = library_photo_global;
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp172_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp172_ = _data_->prepared_file;
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp173_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp173_ = _data_->_tmp172_->file;
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp174_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp174_ = library_photo_source_collection_get_trashed_by_file (_data_->_tmp171_, _data_->_tmp173_);
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo = _data_->_tmp174_;
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp176_ = NULL;
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp176_ = _data_->photo;
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp176_ == NULL) {
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp177_ = NULL;
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp177_ = _data_->prepared_file;
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp178_ = NULL;
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp178_ = _data_->_tmp177_->full_md5;
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp175_ = _data_->_tmp178_ != NULL;
+#line 7886 "BatchImport.c"
+ } else {
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp175_ = FALSE;
+#line 7890 "BatchImport.c"
+ }
+#line 891 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp175_) {
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp179_ = NULL;
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp179_ = library_photo_global;
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp180_ = NULL;
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp180_ = _data_->prepared_file;
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp181_ = NULL;
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp181_ = _data_->_tmp180_->full_md5;
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp182_ = NULL;
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp182_ = library_photo_source_collection_get_trashed_by_md5 (_data_->_tmp179_, _data_->_tmp181_);
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 892 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo = _data_->_tmp182_;
+#line 7914 "BatchImport.c"
+ }
+#line 894 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp183_ = NULL;
+#line 894 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp183_ = _data_->photo;
+#line 894 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp183_ != NULL) {
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp184_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp184_ = _data_->prepared_file;
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp185_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp185_ = _data_->_tmp184_->file;
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp186_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp186_ = g_file_get_path (_data_->_tmp185_);
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp187_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp187_ = _data_->_tmp186_;
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:895: duplicate linked photo found in trash, untrashin" \
+"g and removing transforms for %s", _data_->_tmp187_);
+#line 895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp187_);
+#line 898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp188_ = NULL;
+#line 898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp188_ = _data_->photo;
+#line 898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp189_ = NULL;
+#line 898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp189_ = _data_->prepared_file;
+#line 898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp190_ = NULL;
+#line 898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp190_ = _data_->_tmp189_->file;
+#line 898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ monitorable_set_master_file (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp188_, TYPE_MONITORABLE, Monitorable), _data_->_tmp190_);
+#line 899 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp191_ = NULL;
+#line 899 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp191_ = _data_->photo;
+#line 899 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_source_untrash (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp191_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp192_ = NULL;
+#line 900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp192_ = _data_->photo;
+#line 900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo_remove_all_transformations (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp192_, TYPE_PHOTO, Photo));
+#line 7968 "BatchImport.c"
+ }
+ }
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp194_ = NULL;
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp194_ = _data_->photo;
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp194_ == NULL) {
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp195_ = FALSE;
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp195_ = _data_->self->priv->mark_duplicates_online;
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp193_ = _data_->_tmp195_;
+#line 7983 "BatchImport.c"
+ } else {
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp193_ = FALSE;
+#line 7987 "BatchImport.c"
+ }
+#line 904 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp193_) {
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp196_ = NULL;
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp196_ = library_photo_global;
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp197_ = NULL;
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp197_ = _data_->prepared_file;
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp198_ = NULL;
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp198_ = _data_->_tmp197_->file;
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp199_ = NULL;
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp199_ = library_photo_source_collection_get_offline_by_file (_data_->_tmp196_, _data_->_tmp198_);
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 906 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo = _data_->_tmp199_;
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp201_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp201_ = _data_->photo;
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp201_ == NULL) {
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp202_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp202_ = _data_->prepared_file;
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp203_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp203_ = _data_->_tmp202_->full_md5;
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp200_ = _data_->_tmp203_ != NULL;
+#line 8027 "BatchImport.c"
+ } else {
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp200_ = FALSE;
+#line 8031 "BatchImport.c"
+ }
+#line 908 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp200_) {
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp204_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp204_ = library_photo_global;
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp205_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp205_ = _data_->prepared_file;
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp206_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp206_ = _data_->_tmp205_->full_md5;
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp207_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp207_ = library_photo_source_collection_get_offline_by_md5 (_data_->_tmp204_, _data_->_tmp206_);
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo = _data_->_tmp207_;
+#line 8055 "BatchImport.c"
+ }
+#line 911 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp208_ = NULL;
+#line 911 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp208_ = _data_->photo;
+#line 911 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp208_ != NULL) {
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp209_ = NULL;
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp209_ = _data_->prepared_file;
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp210_ = NULL;
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp210_ = _data_->_tmp209_->file;
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp211_ = NULL;
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp211_ = g_file_get_path (_data_->_tmp210_);
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp212_ = NULL;
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp212_ = _data_->_tmp211_;
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:912: duplicate photo found marked offline, marking on" \
+"line: %s", _data_->_tmp212_);
+#line 912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp212_);
+#line 915 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp213_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp213_ = _data_->photo;
+#line 915 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp214_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp214_ = _data_->prepared_file;
+#line 915 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp215_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp215_ = _data_->_tmp214_->file;
+#line 915 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ monitorable_set_master_file (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp213_, TYPE_MONITORABLE, Monitorable), _data_->_tmp215_);
+#line 916 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp216_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp216_ = _data_->photo;
+#line 916 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_source_mark_online (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp216_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 8103 "BatchImport.c"
+ }
+ }
+#line 920 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp217_ = NULL;
+#line 920 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp217_ = _data_->photo;
+#line 920 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp217_ != NULL) {
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp218_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp218_ = _data_->prepared_file;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp219_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp219_ = _data_->_tmp218_->job;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp220_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp220_ = _data_->prepared_file;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp221_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp221_ = _data_->_tmp220_->file;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp222_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp222_ = _data_->prepared_file;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp223_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp223_ = _data_->_tmp222_->file;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp224_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp224_ = g_file_get_path (_data_->_tmp223_);
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp225_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp225_ = _data_->_tmp224_;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp226_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp226_ = _data_->prepared_file;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp227_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp227_ = _data_->_tmp226_->file;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp228_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp228_ = g_file_get_path (_data_->_tmp227_);
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp229_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp229_ = _data_->_tmp228_;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp230_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp230_ = batch_import_result_new (_data_->_tmp219_, _data_->_tmp221_, _data_->_tmp225_, _data_->_tmp229_, NULL, IMPORT_RESULT_SUCCESS);
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->import_result = _data_->_tmp230_;
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp229_);
+#line 921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp225_);
+#line 925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp231_ = NULL;
+#line 925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp231_ = _data_->self->priv->manifest;
+#line 925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp232_ = NULL;
+#line 925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp232_ = _data_->_tmp231_->imported;
+#line 925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp233_ = NULL;
+#line 925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp233_ = _data_->photo;
+#line 925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp232_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp233_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 926 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp234_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp234_ = _data_->self->priv->manifest;
+#line 926 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp235_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp235_ = _data_->import_result;
+#line 926 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_add_result (_data_->_tmp234_, _data_->_tmp235_);
+#line 928 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp236_ = NULL;
+#line 928 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp236_ = _data_->photo;
+#line 928 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp237_ = 0ULL;
+#line 928 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp237_ = media_source_get_filesize (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp236_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 928 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_progress (_data_->self, _data_->_tmp237_);
+#line 929 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (_data_->self);
+#line 931 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->video);
+#line 931 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 931 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 931 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_data_->prepared_file);
+#line 931 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 8218 "BatchImport.c"
+ }
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp238_ = NULL;
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp238_ = _data_->prepared_file;
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp239_ = NULL;
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp239_ = _data_->_tmp238_->file;
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp240_ = NULL;
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp240_ = g_file_get_path (_data_->_tmp239_);
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp241_ = NULL;
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp241_ = _data_->_tmp240_;
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:934: duplicate photo detected, not importing %s", _data_->_tmp241_);
+#line 934 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp241_);
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp242_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp242_ = photo_table_get_instance ();
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp243_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp243_ = _data_->_tmp242_;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp244_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp244_ = _data_->prepared_file;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp245_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp245_ = _data_->_tmp244_->file;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp246_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp246_ = _data_->prepared_file;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp247_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp247_ = _data_->_tmp246_->full_md5;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp248_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp248_ = _data_->prepared_file;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp249_ = 0;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp249_ = _data_->_tmp248_->file_format;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp250_ = 0;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp251_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp251_ = photo_table_get_duplicate_ids (_data_->_tmp243_, _data_->_tmp245_, NULL, _data_->_tmp247_, _data_->_tmp249_, &_data_->_tmp250_);
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp252_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp252__length1 = 0;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp252_ = _data_->_tmp251_;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp252__length1 = _data_->_tmp250_;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _database_table_unref0 (_data_->_tmp243_);
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo_ids_length1 = 0;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_photo_ids_size_ = 0;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo_ids = _data_->_tmp252_;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo_ids_length1 = _data_->_tmp252__length1;
+#line 936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_photo_ids_size_ = _data_->photo_ids_length1;
+#line 939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp253_ = NULL;
+#line 939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp253__length1 = 0;
+#line 939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp253_ = _data_->photo_ids;
+#line 939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp253__length1 = _data_->photo_ids_length1;
+#line 939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_data_->_tmp253__length1 > 0, "photo_ids.length > 0");
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp254_ = NULL;
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp254__length1 = 0;
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp254_ = _data_->photo_ids;
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp254__length1 = _data_->photo_ids_length1;
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ memset (&_data_->_tmp255_, 0, sizeof (PhotoID));
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp255_ = _data_->_tmp254_[0];
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp256_ = NULL;
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp256_ = duplicated_file_create_from_photo_id (&_data_->_tmp255_);
+#line 941 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_vala1_duplicated_file = _data_->_tmp256_;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp257_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp257_ = _data_->prepared_file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp258_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp258_ = _data_->_tmp257_->job;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp259_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp259_ = _data_->prepared_file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp260_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp260_ = _data_->_tmp259_->file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp261_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp261_ = _data_->prepared_file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp262_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp262_ = _data_->_tmp261_->file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp263_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp263_ = g_file_get_path (_data_->_tmp262_);
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp264_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp264_ = _data_->_tmp263_;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp265_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp265_ = _data_->prepared_file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp266_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp266_ = _data_->_tmp265_->file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp267_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp267_ = g_file_get_path (_data_->_tmp266_);
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp268_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp268_ = _data_->_tmp267_;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp269_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp269_ = _data_->_vala1_duplicated_file;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp270_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp270_ = batch_import_result_new (_data_->_tmp258_, _data_->_tmp260_, _data_->_tmp264_, _data_->_tmp268_, _data_->_tmp269_, IMPORT_RESULT_PHOTO_EXISTS);
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->import_result = _data_->_tmp270_;
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp268_);
+#line 943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_data_->_tmp264_);
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_vala1_duplicated_file);
+#line 884 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->photo_ids = (g_free (_data_->photo_ids), NULL);
+#line 8394 "BatchImport.c"
+ }
+ }
+#line 948 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp271_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp271_ = _data_->import_result;
+#line 948 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_tmp271_ != NULL) {
+#line 949 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp272_ = NULL;
+#line 949 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp272_ = _data_->import_result;
+#line 949 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (_data_->self, _data_->_tmp272_);
+#line 950 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (_data_->self);
+#line 952 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->video);
+#line 952 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 952 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 952 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_data_->prepared_file);
+#line 952 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 8421 "BatchImport.c"
+ }
+#line 955 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_progress (_data_->self, (guint64) 0);
+#line 956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp273_ = NULL;
+#line 956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp273_ = _data_->self->priv->ready_files;
+#line 956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp274_ = NULL;
+#line 956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _data_->_tmp274_ = _data_->prepared_file;
+#line 956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp273_, GEE_TYPE_COLLECTION, GeeCollection), _data_->_tmp274_);
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->video);
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->photo);
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_data_->import_result);
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_data_->prepared_file);
+#line 8443 "BatchImport.c"
+ }
+#line 758 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_data_->_prepared_file_list);
+#line 8447 "BatchImport.c"
+ }
+#line 959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_import_jobs (_data_->self);
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_data_->_state_ == 0) {
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 8455 "BatchImport.c"
+ } else {
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 8459 "BatchImport.c"
+ }
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_object_unref (_data_->_async_result);
+#line 757 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return FALSE;
+#line 8465 "BatchImport.c"
+}
+
+
+static void batch_import_done_preparing_files (BatchImport* self, BackgroundJob* j, const gchar* caller) {
+ gboolean _tmp0_ = FALSE;
+ PrepareFilesJob* prepare_files_job = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ PrepareFilesJob* _tmp2_ = NULL;
+ PrepareFilesJob* _tmp3_ = NULL;
+ PrepareFilesJob* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gint _tmp10_ = 0;
+#line 962 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 962 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 962 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (caller != NULL);
+#line 963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 965 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = j;
+#line 965 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PREPARE_FILES_JOB, PrepareFilesJob));
+#line 965 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepare_files_job = _tmp2_;
+#line 967 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = prepare_files_job;
+#line 967 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failures (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob));
+#line 970 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = prepare_files_job;
+#line 970 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_->prepared_files;
+#line 970 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file_imports_to_perform = _tmp5_;
+#line 971 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = self->priv->file_imports_to_perform;
+#line 971 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = self->priv->file_imports_completed;
+#line 971 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp6_ >= _tmp7_, "file_imports_to_perform >= file_imports_completed");
+#line 973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = caller;
+#line 973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, _tmp8_);
+#line 976 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_import_jobs (self);
+#line 980 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = self->priv->file_imports_to_perform;
+#line 980 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp10_ == 0) {
+#line 8524 "BatchImport.c"
+ gboolean _tmp11_ = FALSE;
+#line 980 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = self->priv->completed;
+#line 980 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = !_tmp11_;
+#line 8530 "BatchImport.c"
+ } else {
+#line 980 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = FALSE;
+#line 8534 "BatchImport.c"
+ }
+#line 980 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp9_) {
+#line 981 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_completed (self, "no files prepared for import");
+#line 8540 "BatchImport.c"
+ } else {
+ gboolean _tmp12_ = FALSE;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 982 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = self->priv->file_imports_completed;
+#line 982 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = self->priv->file_imports_to_perform;
+#line 982 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp13_ == _tmp14_) {
+#line 8551 "BatchImport.c"
+ gboolean _tmp15_ = FALSE;
+#line 982 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = self->priv->completed;
+#line 982 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = !_tmp15_;
+#line 8557 "BatchImport.c"
+ } else {
+#line 982 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = FALSE;
+#line 8561 "BatchImport.c"
+ }
+#line 982 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp12_) {
+#line 983 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_completed (self, "completed preparing files, all outstanding imports completed");
+#line 8567 "BatchImport.c"
+ }
+ }
+#line 962 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (prepare_files_job);
+#line 8572 "BatchImport.c"
+}
+
+
+static void batch_import_on_files_prepared (BatchImport* self, BackgroundJob* j) {
+ BackgroundJob* _tmp0_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 987 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = j;
+#line 987 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_done_preparing_files (self, _tmp0_, "on_files_prepared");
+#line 8586 "BatchImport.c"
+}
+
+
+static void batch_import_on_file_prepare_cancelled (BatchImport* self, BackgroundJob* j) {
+ BackgroundJob* _tmp0_ = NULL;
+#line 990 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 990 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 991 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = j;
+#line 991 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_done_preparing_files (self, _tmp0_, "on_file_prepare_cancelled");
+#line 8600 "BatchImport.c"
+}
+
+
+static void batch_import_on_import_files_completed (BatchImport* self, BackgroundJob* j) {
+ gboolean _tmp0_ = FALSE;
+ PreparedFileImportJob* job = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ PreparedFileImportJob* _tmp2_ = NULL;
+ PreparedFileImportJob* _tmp3_ = NULL;
+ PreparedFile* _tmp4_ = NULL;
+ PreparedFileImportJob* _tmp5_ = NULL;
+ BatchImportResult* _tmp6_ = NULL;
+ PreparedFileImportJob* _tmp12_ = NULL;
+ ReadyForImport* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 998 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 998 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 999 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 999 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 1001 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = j;
+#line 1001 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJob));
+#line 1001 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = _tmp2_;
+#line 1003 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, "on_import_files_completed");
+#line 1006 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = job;
+#line 1006 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp3_->not_ready;
+#line 1006 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp4_ == NULL, "job.not_ready == null");
+#line 1009 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = job;
+#line 1009 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_->failed;
+#line 1009 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp6_ != NULL) {
+#line 8644 "BatchImport.c"
+ PreparedFileImportJob* _tmp7_ = NULL;
+ BatchImportResult* _tmp8_ = NULL;
+ ImportResult _tmp9_ = 0;
+ PreparedFileImportJob* _tmp10_ = NULL;
+ BatchImportResult* _tmp11_ = NULL;
+#line 1010 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = job;
+#line 1010 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_->failed;
+#line 1010 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_->result;
+#line 1010 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp9_ != IMPORT_RESULT_SUCCESS, "job.failed.result != ImportResult.SUCCESS");
+#line 1012 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = job;
+#line 1012 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp10_->failed;
+#line 1012 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (self, _tmp11_);
+#line 1013 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 8666 "BatchImport.c"
+ }
+#line 1018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = job;
+#line 1018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_->ready;
+#line 1018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp13_ != NULL) {
+#line 8674 "BatchImport.c"
+ PreparedFileImportJob* _tmp14_ = NULL;
+ ReadyForImport* _tmp15_ = NULL;
+ BatchImportResult* _tmp16_ = NULL;
+ ImportResult _tmp17_ = 0;
+ Tombstone* tombstone = NULL;
+ TombstoneSourceCollection* _tmp18_ = NULL;
+ PreparedFileImportJob* _tmp19_ = NULL;
+ ReadyForImport* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ Tombstone* _tmp22_ = NULL;
+ Tombstone* _tmp23_ = NULL;
+ MediaSource* source = NULL;
+ PreparedFileImportJob* _tmp26_ = NULL;
+ ReadyForImport* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ PreparedFileImportJob* _tmp87_ = NULL;
+ ReadyForImport* _tmp88_ = NULL;
+ BatchImportResult* _tmp89_ = NULL;
+ ImportResult _tmp90_ = 0;
+#line 1019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = job;
+#line 1019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_->ready;
+#line 1019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = _tmp15_->batch_result;
+#line 1019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_->result;
+#line 1019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp17_ == IMPORT_RESULT_SUCCESS, "job.ready.batch_result.result == ImportResult.SUCCESS");
+#line 1021 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = tombstone_global;
+#line 1021 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = job;
+#line 1021 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_->ready;
+#line 1021 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = _tmp20_->final_file;
+#line 1021 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = tombstone_source_collection_locate (_tmp18_, _tmp21_);
+#line 1021 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ tombstone = _tmp22_;
+#line 1022 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = tombstone;
+#line 1022 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp23_ != NULL) {
+#line 8720 "BatchImport.c"
+ TombstoneSourceCollection* _tmp24_ = NULL;
+ Tombstone* _tmp25_ = NULL;
+#line 1023 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = tombstone_global;
+#line 1023 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = tombstone;
+#line 1023 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ tombstone_source_collection_resurrect (_tmp24_, _tmp25_);
+#line 8729 "BatchImport.c"
+ }
+#line 1026 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ source = NULL;
+#line 1027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = job;
+#line 1027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_->ready;
+#line 1027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _tmp27_->is_video;
+#line 1027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp28_) {
+#line 8741 "BatchImport.c"
+ PreparedFileImportJob* _tmp29_ = NULL;
+ ReadyForImport* _tmp30_ = NULL;
+ BatchImportResult* _tmp31_ = NULL;
+ PreparedFileImportJob* _tmp32_ = NULL;
+ ReadyForImport* _tmp33_ = NULL;
+ VideoImportParams* _tmp34_ = NULL;
+ Video* _tmp35_ = NULL;
+ ImportResult _tmp36_ = 0;
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = job;
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _tmp29_->ready;
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = _tmp30_->batch_result;
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = job;
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = _tmp32_->ready;
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _tmp33_->video_import_params;
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = video_import_create (_tmp34_, &_tmp35_);
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (source);
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ source = G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 1028 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_->result = _tmp36_;
+#line 8770 "BatchImport.c"
+ } else {
+ PreparedFileImportJob* _tmp37_ = NULL;
+ ReadyForImport* _tmp38_ = NULL;
+ BatchImportResult* _tmp39_ = NULL;
+ PreparedFileImportJob* _tmp40_ = NULL;
+ ReadyForImport* _tmp41_ = NULL;
+ PhotoImportParams* _tmp42_ = NULL;
+ LibraryPhoto* _tmp43_ = NULL;
+ ImportResult _tmp44_ = 0;
+ Photo* photo = NULL;
+ MediaSource* _tmp45_ = NULL;
+ Photo* _tmp46_ = NULL;
+ PreparedFileImportJob* _tmp47_ = NULL;
+ ReadyForImport* _tmp48_ = NULL;
+ PhotoImportParams* _tmp49_ = NULL;
+ GFile* _tmp50_ = NULL;
+ Photo* _tmp72_ = NULL;
+ PhotoFileFormat _tmp73_ = 0;
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = job;
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = _tmp37_->ready;
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = _tmp38_->batch_result;
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = job;
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = _tmp40_->ready;
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = _tmp41_->photo_import_params;
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = library_photo_import_create (_tmp42_, &_tmp43_);
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (source);
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ source = G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 1031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_->result = _tmp44_;
+#line 1033 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = source;
+#line 1033 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp45_, TYPE_PHOTO) ? ((Photo*) _tmp45_) : NULL);
+#line 1033 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo = _tmp46_;
+#line 1035 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = job;
+#line 1035 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = _tmp47_->ready;
+#line 1035 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = _tmp48_->photo_import_params;
+#line 1035 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = _tmp49_->final_associated_file;
+#line 1035 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp50_ != NULL) {
+#line 8825 "BatchImport.c"
+ BackingPhotoRow* bpr = NULL;
+ BackingPhotoRow* _tmp51_ = NULL;
+ BackingPhotoRow* _tmp52_ = NULL;
+ BackingPhotoRow* _tmp53_ = NULL;
+ PreparedFileImportJob* _tmp54_ = NULL;
+ ReadyForImport* _tmp55_ = NULL;
+ PhotoImportParams* _tmp56_ = NULL;
+ GFile* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ MediaSource* _tmp59_ = NULL;
+ GFile* _tmp60_ = NULL;
+ GFile* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ BackingPhotoRow* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+#line 1037 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = backing_photo_row_new ();
+#line 1037 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ bpr = _tmp51_;
+#line 1038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_ = bpr;
+#line 1038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_->file_format = PHOTO_FILE_FORMAT_JFIF;
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_ = bpr;
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp54_ = job;
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp55_ = _tmp54_->ready;
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp56_ = _tmp55_->photo_import_params;
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57_ = _tmp56_->final_associated_file;
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58_ = g_file_get_path (_tmp57_);
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp53_->filepath);
+#line 1039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_->filepath = _tmp58_;
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp59_ = source;
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp60_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, TYPE_PHOTO, Photo), TYPE_MEDIA_SOURCE, MediaSource));
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp61_ = _tmp60_;
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp62_ = g_file_get_path (_tmp61_);
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp63_ = _tmp62_;
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64_ = bpr;
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp65_ = _tmp64_->filepath;
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:1040: Associating %s with sibling %s", _tmp63_, _tmp65_);
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp63_);
+#line 1040 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp61_);
+#line 8886 "BatchImport.c"
+ {
+ MediaSource* _tmp66_ = NULL;
+ BackingPhotoRow* _tmp67_ = NULL;
+#line 1043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp66_ = source;
+#line 1043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp67_ = bpr;
+#line 1043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo_add_backing_photo_for_development (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, TYPE_PHOTO, Photo), RAW_DEVELOPER_CAMERA, _tmp67_, &_inner_error_);
+#line 1043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8898 "BatchImport.c"
+ goto __catch398_g_error;
+ }
+ }
+ goto __finally398;
+ __catch398_g_error:
+ {
+ GError* e = NULL;
+ BackingPhotoRow* _tmp68_ = NULL;
+ const gchar* _tmp69_ = NULL;
+ GError* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ e = _inner_error_;
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1045 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp68_ = bpr;
+#line 1045 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp69_ = _tmp68_->filepath;
+#line 1045 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp70_ = e;
+#line 1045 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp71_ = _tmp70_->message;
+#line 1045 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1045: Unable to associate JPEG with RAW. File: %s Err" \
+"or: %s", _tmp69_, _tmp71_);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (e);
+#line 8926 "BatchImport.c"
+ }
+ __finally398:
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (photo);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (source);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (tombstone);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (job);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1042 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 8947 "BatchImport.c"
+ }
+#line 1035 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 8951 "BatchImport.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp72_ = photo;
+#line 1051 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp73_ = photo_get_master_file_format (_tmp72_);
+#line 1051 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp73_ == PHOTO_FILE_FORMAT_RAW) {
+#line 8959 "BatchImport.c"
+ RawDeveloper d = 0;
+ ConfigFacade* _tmp74_ = NULL;
+ ConfigFacade* _tmp75_ = NULL;
+ RawDeveloper _tmp76_ = 0;
+ RawDeveloper _tmp77_ = 0;
+ gboolean _tmp78_ = FALSE;
+ RawDeveloper _tmp79_ = 0;
+ Photo* _tmp83_ = NULL;
+ RawDeveloper _tmp84_ = 0;
+ Photo* _tmp85_ = NULL;
+ RawDeveloper _tmp86_ = 0;
+#line 1052 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp74_ = config_facade_get_instance ();
+#line 1052 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp75_ = _tmp74_;
+#line 1052 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp76_ = configuration_facade_get_default_raw_developer (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1052 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp77_ = _tmp76_;
+#line 1052 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp75_);
+#line 1052 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ d = _tmp77_;
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp79_ = d;
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp79_ == RAW_DEVELOPER_CAMERA) {
+#line 8987 "BatchImport.c"
+ Photo* _tmp80_ = NULL;
+ RawDeveloper _tmp81_ = 0;
+ gboolean _tmp82_ = FALSE;
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp80_ = photo;
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp81_ = d;
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp82_ = photo_is_raw_developer_available (_tmp80_, _tmp81_);
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp78_ = !_tmp82_;
+#line 8999 "BatchImport.c"
+ } else {
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp78_ = FALSE;
+#line 9003 "BatchImport.c"
+ }
+#line 1053 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp78_) {
+#line 1054 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ d = RAW_DEVELOPER_EMBEDDED;
+#line 9009 "BatchImport.c"
+ }
+#line 1056 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp83_ = photo;
+#line 1056 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp84_ = d;
+#line 1056 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo_set_default_raw_developer (_tmp83_, _tmp84_);
+#line 1057 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp85_ = photo;
+#line 1057 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp86_ = d;
+#line 1057 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo_set_raw_developer (_tmp85_, _tmp86_);
+#line 9023 "BatchImport.c"
+ }
+#line 1027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (photo);
+#line 9027 "BatchImport.c"
+ }
+#line 1061 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp87_ = job;
+#line 1061 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp88_ = _tmp87_->ready;
+#line 1061 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp89_ = _tmp88_->batch_result;
+#line 1061 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp90_ = _tmp89_->result;
+#line 1061 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp90_ != IMPORT_RESULT_SUCCESS) {
+#line 9039 "BatchImport.c"
+ PreparedFileImportJob* _tmp91_ = NULL;
+ ReadyForImport* _tmp92_ = NULL;
+ BatchImportResult* _tmp93_ = NULL;
+ ImportResult _tmp94_ = 0;
+ gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ PreparedFileImportJob* _tmp97_ = NULL;
+ ReadyForImport* _tmp98_ = NULL;
+ BatchImportResult* _tmp99_ = NULL;
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp91_ = job;
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp92_ = _tmp91_->ready;
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp93_ = _tmp92_->batch_result;
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp94_ = _tmp93_->result;
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp95_ = import_result_to_string (_tmp94_);
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp96_ = _tmp95_;
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:1062: on_import_file_completed: %s", _tmp96_);
+#line 1062 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp96_);
+#line 1064 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp97_ = job;
+#line 1064 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp98_ = _tmp97_->ready;
+#line 1064 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp99_ = _tmp98_->batch_result;
+#line 1064 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (self, _tmp99_);
+#line 1065 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 9075 "BatchImport.c"
+ } else {
+ GeeList* _tmp100_ = NULL;
+ MediaSource* _tmp101_ = NULL;
+ PreparedFileImportJob* _tmp102_ = NULL;
+ ReadyForImport* _tmp103_ = NULL;
+ Thumbnails* _tmp104_ = NULL;
+ Thumbnails* _tmp105_ = NULL;
+ PreparedFileImportJob* _tmp106_ = NULL;
+ ReadyForImport* _tmp107_ = NULL;
+ PreparedFile* _tmp108_ = NULL;
+ BatchImportJob* _tmp109_ = NULL;
+ PreparedFileImportJob* _tmp110_ = NULL;
+ ReadyForImport* _tmp111_ = NULL;
+ BatchImportResult* _tmp112_ = NULL;
+ CompletedImportObject* _tmp113_ = NULL;
+ CompletedImportObject* _tmp114_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp100_ = self->priv->ready_thumbnails;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp101_ = source;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp102_ = job;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp103_ = _tmp102_->ready;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp104_ = ready_for_import_get_thumbnails (_tmp103_);
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp105_ = _tmp104_;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp106_ = job;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp107_ = _tmp106_->ready;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp108_ = _tmp107_->prepared_file;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp109_ = _tmp108_->job;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp110_ = job;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp111_ = _tmp110_->ready;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp112_ = _tmp111_->batch_result;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp113_ = completed_import_object_new (_tmp101_, _tmp105_, _tmp109_, _tmp112_);
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp114_ = _tmp113_;
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, GEE_TYPE_COLLECTION, GeeCollection), _tmp114_);
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (_tmp114_);
+#line 1067 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _thumbnails_unref0 (_tmp105_);
+#line 9128 "BatchImport.c"
+ }
+#line 1018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (source);
+#line 1018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (tombstone);
+#line 9134 "BatchImport.c"
+ }
+#line 1072 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_import_jobs (self);
+#line 998 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (job);
+#line 9140 "BatchImport.c"
+}
+
+
+static void batch_import_on_import_files_cancelled (BatchImport* self, BackgroundJob* j) {
+ gboolean _tmp0_ = FALSE;
+ PreparedFileImportJob* job = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ PreparedFileImportJob* _tmp2_ = NULL;
+ PreparedFileImportJob* _tmp3_ = NULL;
+ PreparedFile* _tmp4_ = NULL;
+ PreparedFileImportJob* _tmp23_ = NULL;
+ BatchImportResult* _tmp24_ = NULL;
+ PreparedFileImportJob* _tmp27_ = NULL;
+ ReadyForImport* _tmp28_ = NULL;
+#line 1075 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 1075 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1076 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 1076 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 1078 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = j;
+#line 1078 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJob));
+#line 1078 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = _tmp2_;
+#line 1080 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, "on_import_files_cancelled");
+#line 1082 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = job;
+#line 1082 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp3_->not_ready;
+#line 1082 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp4_ != NULL) {
+#line 9177 "BatchImport.c"
+ PreparedFileImportJob* _tmp5_ = NULL;
+ PreparedFile* _tmp6_ = NULL;
+ BatchImportJob* _tmp7_ = NULL;
+ PreparedFileImportJob* _tmp8_ = NULL;
+ PreparedFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ PreparedFileImportJob* _tmp11_ = NULL;
+ PreparedFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ PreparedFileImportJob* _tmp16_ = NULL;
+ PreparedFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ BatchImportResult* _tmp21_ = NULL;
+ BatchImportResult* _tmp22_ = NULL;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = job;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_->not_ready;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_->job;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = job;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_->not_ready;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _tmp9_->file;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = job;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = _tmp11_->not_ready;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_->file;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = job;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_->not_ready;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = _tmp17_->file;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = g_file_get_path (_tmp18_);
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = batch_import_result_new (_tmp7_, _tmp10_, _tmp15_, _tmp20_, NULL, IMPORT_RESULT_USER_ABORT);
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = _tmp21_;
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (self, _tmp22_);
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_tmp22_);
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp20_);
+#line 1083 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp15_);
+#line 1086 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 9242 "BatchImport.c"
+ }
+#line 1089 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = job;
+#line 1089 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = _tmp23_->failed;
+#line 1089 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp24_ != NULL) {
+#line 9250 "BatchImport.c"
+ PreparedFileImportJob* _tmp25_ = NULL;
+ BatchImportResult* _tmp26_ = NULL;
+#line 1090 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = job;
+#line 1090 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = _tmp25_->failed;
+#line 1090 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (self, _tmp26_);
+#line 1091 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 9261 "BatchImport.c"
+ }
+#line 1094 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = job;
+#line 1094 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _tmp27_->ready;
+#line 1094 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp28_ != NULL) {
+#line 9269 "BatchImport.c"
+ PreparedFileImportJob* _tmp29_ = NULL;
+ ReadyForImport* _tmp30_ = NULL;
+ BatchImportResult* _tmp31_ = NULL;
+ BatchImportResult* _tmp32_ = NULL;
+#line 1095 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = job;
+#line 1095 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _tmp29_->ready;
+#line 1095 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = ready_for_import_abort (_tmp30_);
+#line 1095 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = _tmp31_;
+#line 1095 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (self, _tmp32_);
+#line 1095 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_tmp32_);
+#line 1096 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 9288 "BatchImport.c"
+ }
+#line 1099 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_import_jobs (self);
+#line 1075 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (job);
+#line 9294 "BatchImport.c"
+}
+
+
+static gpointer _completed_import_object_ref0 (gpointer self) {
+#line 1113 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? completed_import_object_ref (self) : NULL;
+#line 9301 "BatchImport.c"
+}
+
+
+static void batch_import_on_thumbnail_writer_completed (BatchImport* self, BackgroundJob* j) {
+ gboolean _tmp0_ = FALSE;
+ ThumbnailWriterJob* job = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ ThumbnailWriterJob* _tmp2_ = NULL;
+ CompletedImportObject* completed = NULL;
+ ThumbnailWriterJob* _tmp3_ = NULL;
+ CompletedImportObject* _tmp4_ = NULL;
+ CompletedImportObject* _tmp5_ = NULL;
+ CompletedImportObject* _tmp6_ = NULL;
+ BatchImportResult* _tmp7_ = NULL;
+ ImportResult _tmp8_ = 0;
+#line 1109 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 1109 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1110 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 1110 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 1112 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = j;
+#line 1112 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_THUMBNAIL_WRITER_JOB, ThumbnailWriterJob));
+#line 1112 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = _tmp2_;
+#line 1113 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = job;
+#line 1113 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp3_->completed_import_source;
+#line 1113 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _completed_import_object_ref0 (_tmp4_);
+#line 1113 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed = _tmp5_;
+#line 1115 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, "on_thumbnail_writer_completed");
+#line 1117 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = completed;
+#line 1117 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_->batch_result;
+#line 1117 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_->result;
+#line 1117 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp8_ != IMPORT_RESULT_SUCCESS) {
+#line 9349 "BatchImport.c"
+ CompletedImportObject* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ CompletedImportObject* _tmp13_ = NULL;
+ BatchImportResult* _tmp14_ = NULL;
+ ImportResult _tmp15_ = 0;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ CompletedImportObject* _tmp18_ = NULL;
+ MediaSource* _tmp19_ = NULL;
+ CompletedImportObject* _tmp26_ = NULL;
+ BatchImportResult* _tmp27_ = NULL;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = completed;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _tmp9_->source;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = _tmp11_;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = completed;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _tmp13_->batch_result;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_->result;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = import_result_to_string (_tmp15_);
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_;
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1118: Failed to import %s: unable to write thumbnails" \
+" (%s)", _tmp12_, _tmp17_);
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp17_);
+#line 1118 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp12_);
+#line 1121 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = completed;
+#line 1121 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = _tmp18_->source;
+#line 1121 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_LIBRARY_PHOTO)) {
+#line 9393 "BatchImport.c"
+ CompletedImportObject* _tmp20_ = NULL;
+ MediaSource* _tmp21_ = NULL;
+#line 1122 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = completed;
+#line 1122 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = _tmp20_->source;
+#line 1122 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ library_photo_import_failed (G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp21_) : NULL);
+#line 9402 "BatchImport.c"
+ } else {
+ CompletedImportObject* _tmp22_ = NULL;
+ MediaSource* _tmp23_ = NULL;
+#line 1123 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = completed;
+#line 1123 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = _tmp22_->source;
+#line 1123 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp23_, TYPE_VIDEO)) {
+#line 9412 "BatchImport.c"
+ CompletedImportObject* _tmp24_ = NULL;
+ MediaSource* _tmp25_ = NULL;
+#line 1124 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = completed;
+#line 1124 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _tmp24_->source;
+#line 1124 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ video_import_failed (G_TYPE_CHECK_INSTANCE_TYPE (_tmp25_, TYPE_VIDEO) ? ((Video*) _tmp25_) : NULL);
+#line 9421 "BatchImport.c"
+ }
+ }
+#line 1126 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = completed;
+#line 1126 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_->batch_result;
+#line 1126 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (self, _tmp27_);
+#line 1127 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 9432 "BatchImport.c"
+ } else {
+ ImportManifest* _tmp28_ = NULL;
+ GeeList* _tmp29_ = NULL;
+ CompletedImportObject* _tmp30_ = NULL;
+ MediaSource* _tmp31_ = NULL;
+ ImportManifest* _tmp32_ = NULL;
+ CompletedImportObject* _tmp33_ = NULL;
+ BatchImportResult* _tmp34_ = NULL;
+ GeeList* _tmp35_ = NULL;
+ CompletedImportObject* _tmp36_ = NULL;
+#line 1129 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = self->priv->manifest;
+#line 1129 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = _tmp28_->imported;
+#line 1129 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = completed;
+#line 1129 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = _tmp30_->source;
+#line 1129 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection), _tmp31_);
+#line 1130 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = self->priv->manifest;
+#line 1130 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = completed;
+#line 1130 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _tmp33_->batch_result;
+#line 1130 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ import_manifest_add_result (_tmp32_, _tmp34_);
+#line 1132 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = self->priv->display_imported_queue;
+#line 1132 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = completed;
+#line 1132 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_COLLECTION, GeeCollection), _tmp36_);
+#line 9467 "BatchImport.c"
+ }
+#line 1135 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_import_jobs (self);
+#line 1109 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (completed);
+#line 1109 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (job);
+#line 9475 "BatchImport.c"
+}
+
+
+static void batch_import_on_thumbnail_writer_cancelled (BatchImport* self, BackgroundJob* j) {
+ gboolean _tmp0_ = FALSE;
+ ThumbnailWriterJob* job = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ ThumbnailWriterJob* _tmp2_ = NULL;
+ CompletedImportObject* completed = NULL;
+ ThumbnailWriterJob* _tmp3_ = NULL;
+ CompletedImportObject* _tmp4_ = NULL;
+ CompletedImportObject* _tmp5_ = NULL;
+ CompletedImportObject* _tmp6_ = NULL;
+ MediaSource* _tmp7_ = NULL;
+ CompletedImportObject* _tmp14_ = NULL;
+ BatchImportResult* _tmp15_ = NULL;
+#line 1138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 1138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1139 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->completed;
+#line 1139 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (!_tmp0_, "!completed");
+#line 1141 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = j;
+#line 1141 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_THUMBNAIL_WRITER_JOB, ThumbnailWriterJob));
+#line 1141 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = _tmp2_;
+#line 1142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = job;
+#line 1142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp3_->completed_import_source;
+#line 1142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _completed_import_object_ref0 (_tmp4_);
+#line 1142 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed = _tmp5_;
+#line 1144 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, "on_thumbnail_writer_cancelled");
+#line 1146 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = completed;
+#line 1146 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_->source;
+#line 1146 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, TYPE_LIBRARY_PHOTO)) {
+#line 9522 "BatchImport.c"
+ CompletedImportObject* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+#line 1147 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = completed;
+#line 1147 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_->source;
+#line 1147 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ library_photo_import_failed (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp9_) : NULL);
+#line 9531 "BatchImport.c"
+ } else {
+ CompletedImportObject* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+#line 1148 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = completed;
+#line 1148 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp10_->source;
+#line 1148 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_VIDEO)) {
+#line 9541 "BatchImport.c"
+ CompletedImportObject* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+#line 1149 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = completed;
+#line 1149 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_->source;
+#line 1149 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ video_import_failed (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_VIDEO) ? ((Video*) _tmp13_) : NULL);
+#line 9550 "BatchImport.c"
+ }
+ }
+#line 1151 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = completed;
+#line 1151 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_->batch_result;
+#line 1151 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_failure (self, _tmp15_);
+#line 1152 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 1154 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_import_jobs (self);
+#line 1138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (completed);
+#line 1138 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _background_job_unref0 (job);
+#line 9567 "BatchImport.c"
+}
+
+
+static void batch_import_flush_ready_sources (BatchImport* self) {
+ GeeList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GeeArrayList* all = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ GeeArrayList* videos = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ GeeHashMap* completion_list = NULL;
+ GeeHashMap* _tmp11_ = NULL;
+ MediaCollectionRegistry* _tmp41_ = NULL;
+ MediaCollectionRegistry* _tmp42_ = NULL;
+ EventSourceCollection* _tmp43_ = NULL;
+ TagSourceCollection* _tmp44_ = NULL;
+ LibraryPhotoSourceCollection* _tmp45_ = NULL;
+ GeeArrayList* _tmp46_ = NULL;
+ VideoSourceCollection* _tmp47_ = NULL;
+ GeeArrayList* _tmp48_ = NULL;
+ GeeArrayList* _tmp70_ = NULL;
+ BatchImportRoll* _tmp71_ = NULL;
+ ViewCollection* _tmp72_ = NULL;
+ TagSourceCollection* _tmp73_ = NULL;
+ EventSourceCollection* _tmp74_ = NULL;
+ MediaCollectionRegistry* _tmp75_ = NULL;
+ MediaCollectionRegistry* _tmp76_ = NULL;
+ GeeList* _tmp77_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (self));
+#line 1162 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->ready_sources;
+#line 1162 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1162 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _tmp1_;
+#line 1162 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp2_ == 0) {
+#line 1163 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 9617 "BatchImport.c"
+ }
+#line 1168 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->priv->ready_sources;
+#line 1168 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1168 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_;
+#line 1168 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = g_strdup_printf ("flush_ready_sources (%d)", _tmp5_);
+#line 1168 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_;
+#line 1168 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, _tmp7_);
+#line 1168 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp7_);
+#line 1170 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1170 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ all = _tmp8_;
+#line 1171 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1171 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photos = _tmp9_;
+#line 1172 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1172 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ videos = _tmp10_;
+#line 1173 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = gee_hash_map_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_BATCH_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1173 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completion_list = _tmp11_;
+#line 9649 "BatchImport.c"
+ {
+ GeeList* _completed_list = NULL;
+ GeeList* _tmp12_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ gint _completed_size = 0;
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _completed_index = 0;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = self->priv->ready_sources;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_list = _tmp13_;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _completed_list;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = _tmp15_;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_size = _tmp16_;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_index = -1;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 9677 "BatchImport.c"
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ CompletedImportObject* completed = NULL;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gpointer _tmp22_ = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+ CompletedImportObject* _tmp24_ = NULL;
+ MediaSource* _tmp25_ = NULL;
+ CompletedImportObject* _tmp26_ = NULL;
+ MediaSource* _tmp27_ = NULL;
+ GeeHashMap* _tmp36_ = NULL;
+ CompletedImportObject* _tmp37_ = NULL;
+ MediaSource* _tmp38_ = NULL;
+ CompletedImportObject* _tmp39_ = NULL;
+ BatchImportJob* _tmp40_ = NULL;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _completed_index;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_index = _tmp17_ + 1;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = _completed_index;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = _completed_size;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp18_ < _tmp19_)) {
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 9707 "BatchImport.c"
+ }
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _completed_list;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = _completed_index;
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = gee_list_get (_tmp20_, _tmp21_);
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed = (CompletedImportObject*) _tmp22_;
+#line 1176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = all;
+#line 1176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = completed;
+#line 1176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _tmp24_->source;
+#line 1176 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp25_);
+#line 1178 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = completed;
+#line 1178 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_->source;
+#line 1178 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp27_, TYPE_LIBRARY_PHOTO)) {
+#line 9731 "BatchImport.c"
+ GeeArrayList* _tmp28_ = NULL;
+ CompletedImportObject* _tmp29_ = NULL;
+ MediaSource* _tmp30_ = NULL;
+#line 1179 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = photos;
+#line 1179 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = completed;
+#line 1179 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _tmp29_->source;
+#line 1179 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 9743 "BatchImport.c"
+ } else {
+ CompletedImportObject* _tmp31_ = NULL;
+ MediaSource* _tmp32_ = NULL;
+#line 1180 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = completed;
+#line 1180 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = _tmp31_->source;
+#line 1180 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp32_, TYPE_VIDEO)) {
+#line 9753 "BatchImport.c"
+ GeeArrayList* _tmp33_ = NULL;
+ CompletedImportObject* _tmp34_ = NULL;
+ MediaSource* _tmp35_ = NULL;
+#line 1181 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = videos;
+#line 1181 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = completed;
+#line 1181 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = _tmp34_->source;
+#line 1181 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_VIDEO, Video));
+#line 9765 "BatchImport.c"
+ }
+ }
+#line 1183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = completion_list;
+#line 1183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = completed;
+#line 1183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = _tmp37_->source;
+#line 1183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = completed;
+#line 1183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = _tmp39_->original_job;
+#line 1183 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp38_, _tmp40_);
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (completed);
+#line 9782 "BatchImport.c"
+ }
+#line 1175 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_completed_list);
+#line 9786 "BatchImport.c"
+ }
+#line 1186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = media_collection_registry_get_instance ();
+#line 1186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = _tmp41_;
+#line 1186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_collection_registry_begin_transaction_on_all (_tmp42_);
+#line 1186 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _media_collection_registry_unref0 (_tmp42_);
+#line 1187 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = event_global;
+#line 1187 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1188 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = tag_global;
+#line 1188 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1190 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = library_photo_global;
+#line 1190 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = photos;
+#line 1190 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_source_collection_import_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1191 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = video_global;
+#line 1191 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = videos;
+#line 1191 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_source_collection_import_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 9816 "BatchImport.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeHashMap* _tmp49_ = NULL;
+ GeeSet* _tmp50_ = NULL;
+ GeeSet* _tmp51_ = NULL;
+ GeeSet* _tmp52_ = NULL;
+ GeeIterator* _tmp53_ = NULL;
+ GeeIterator* _tmp54_ = NULL;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = completion_list;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_MAP, GeeMap));
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = _tmp50_;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_ = _tmp51_;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp54_ = _tmp53_;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp52_);
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _media_it = _tmp54_;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 9843 "BatchImport.c"
+ GeeIterator* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp57_ = NULL;
+ gpointer _tmp58_ = NULL;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp55_ = _media_it;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp56_ = gee_iterator_next (_tmp55_);
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp56_) {
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 9857 "BatchImport.c"
+ }
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57_ = _media_it;
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58_ = gee_iterator_get (_tmp57_);
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media = (MediaSource*) _tmp58_;
+#line 9865 "BatchImport.c"
+ {
+ GeeHashMap* _tmp59_ = NULL;
+ MediaSource* _tmp60_ = NULL;
+ gpointer _tmp61_ = NULL;
+ BatchImportJob* _tmp62_ = NULL;
+ MediaSource* _tmp63_ = NULL;
+ BatchImportRoll* _tmp64_ = NULL;
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp59_ = completion_list;
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp60_ = media;
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp61_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp60_);
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp62_ = (BatchImportJob*) _tmp61_;
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp63_ = media;
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64_ = self->priv->import_roll;
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_job_complete (_tmp62_, _tmp63_, _tmp64_, &_inner_error_);
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (_tmp62_);
+#line 1196 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9891 "BatchImport.c"
+ goto __catch399_g_error;
+ }
+ }
+ goto __finally399;
+ __catch399_g_error:
+ {
+ GError* err = NULL;
+ MediaSource* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ GError* _tmp68_ = NULL;
+ const gchar* _tmp69_ = NULL;
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1198 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp65_ = media;
+#line 1198 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp66_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp65_, TYPE_DATA_OBJECT, DataObject));
+#line 1198 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp67_ = _tmp66_;
+#line 1198 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp68_ = err;
+#line 1198 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp69_ = _tmp68_->message;
+#line 1198 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1198: Completion error when finalizing import of %s: " \
+"%s", _tmp67_, _tmp69_);
+#line 1198 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp67_);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 9924 "BatchImport.c"
+ }
+ __finally399:
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (media);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_media_it);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (completion_list);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (videos);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (photos);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (all);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1195 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 9947 "BatchImport.c"
+ }
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (media);
+#line 9951 "BatchImport.c"
+ }
+#line 1194 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_media_it);
+#line 9955 "BatchImport.c"
+ }
+#line 1204 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp70_ = all;
+#line 1204 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp71_ = self->priv->import_roll;
+#line 1204 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp72_ = _tmp71_->generated_events;
+#line 1204 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ event_generate_many_events (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, GEE_TYPE_COLLECTION, GeeCollection), _tmp72_);
+#line 1206 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp73_ = tag_global;
+#line 1206 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp74_ = event_global;
+#line 1207 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1208 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp75_ = media_collection_registry_get_instance ();
+#line 1208 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp76_ = _tmp75_;
+#line 1208 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ media_collection_registry_commit_transaction_on_all (_tmp76_);
+#line 1208 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _media_collection_registry_unref0 (_tmp76_);
+#line 1210 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp77_ = self->priv->ready_sources;
+#line 1210 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (completion_list);
+#line 1161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (videos);
+#line 1161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (photos);
+#line 1161 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (all);
+#line 9993 "BatchImport.c"
+}
+
+
+static gboolean batch_import_display_imported_timer (BatchImport* self) {
+ gboolean result = FALSE;
+ GeeList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GCancellable* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gint total = 0;
+ GCancellable* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gint _tmp18_ = 0;
+ GeeList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gboolean _tmp40_ = FALSE;
+ GeeList* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+#line 1215 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (self), FALSE);
+#line 1216 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->display_imported_queue;
+#line 1216 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1216 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _tmp1_;
+#line 1216 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp2_ == 0) {
+#line 10026 "BatchImport.c"
+ gboolean _tmp3_ = FALSE;
+#line 1217 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->priv->completed;
+#line 1217 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = !_tmp3_;
+#line 1217 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10034 "BatchImport.c"
+ }
+#line 1219 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->priv->cancellable;
+#line 1219 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = g_cancellable_is_cancelled (_tmp4_);
+#line 1219 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp5_) {
+#line 10042 "BatchImport.c"
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 1220 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = self->priv->display_imported_queue;
+#line 1220 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1220 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_;
+#line 1220 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:1220: Importing %d photos at once", _tmp8_);
+#line 10054 "BatchImport.c"
+ }
+#line 1222 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_log_status (self, "display_imported_timer");
+#line 1232 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ total = 1;
+#line 1233 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = self->priv->cancellable;
+#line 1233 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = g_cancellable_is_cancelled (_tmp9_);
+#line 1233 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp10_) {
+#line 10066 "BatchImport.c"
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 1234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = self->priv->display_imported_queue;
+#line 1234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_;
+#line 1234 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp13_ > BATCH_IMPORT_DISPLAY_QUEUE_HYSTERESIS_OVERFLOW) {
+#line 10078 "BatchImport.c"
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 1235 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = self->priv->display_imported_queue;
+#line 1235 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1235 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = _tmp15_;
+#line 1235 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = CLAMP ((_tmp16_ / BATCH_IMPORT_DISPLAY_QUEUE_HYSTERESIS_OVERFLOW) + 2, 0, 16);
+#line 1235 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ total = 1 << _tmp17_;
+#line 10093 "BatchImport.c"
+ }
+ } else {
+#line 1239 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ total = BATCH_IMPORT_DISPLAY_QUEUE_HYSTERESIS_OVERFLOW;
+#line 10098 "BatchImport.c"
+ }
+#line 1242 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = total;
+#line 1242 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = self->priv->display_imported_queue;
+#line 1242 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1242 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = _tmp20_;
+#line 1242 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = MIN (_tmp18_, _tmp21_);
+#line 1242 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ total = _tmp22_;
+#line 1252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 10114 "BatchImport.c"
+ gint _tmp23_ = 0;
+ CompletedImportObject* completed_object = NULL;
+ GeeList* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ GdkPixbuf* user_preview = NULL;
+ CompletedImportObject* _tmp26_ = NULL;
+ GdkPixbuf* _tmp27_ = NULL;
+ GdkPixbuf* _tmp28_ = NULL;
+ CompletedImportObject* _tmp29_ = NULL;
+ CompletedImportObject* _tmp30_ = NULL;
+ GeeList* _tmp31_ = NULL;
+ CompletedImportObject* _tmp32_ = NULL;
+ CompletedImportObject* _tmp33_ = NULL;
+ MediaSource* _tmp34_ = NULL;
+ GdkPixbuf* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ CompletedImportObject* _tmp37_ = NULL;
+ MediaSource* _tmp38_ = NULL;
+ guint64 _tmp39_ = 0ULL;
+#line 1252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = total;
+#line 1252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ total = _tmp23_ - 1;
+#line 1252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp23_ > 0)) {
+#line 1252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 10142 "BatchImport.c"
+ }
+#line 1253 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = self->priv->display_imported_queue;
+#line 1253 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = gee_list_remove_at (_tmp24_, 0);
+#line 1253 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed_object = (CompletedImportObject*) _tmp25_;
+#line 1256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = completed_object;
+#line 1256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_->user_preview;
+#line 1256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 1256 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ user_preview = _tmp28_;
+#line 1259 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = completed_object;
+#line 1259 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp29_->user_preview);
+#line 1259 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_->user_preview = NULL;
+#line 1260 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = completed_object;
+#line 1260 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _thumbnails_unref0 (_tmp30_->thumbnails);
+#line 1260 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_->thumbnails = NULL;
+#line 1265 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = self->priv->ready_sources;
+#line 1265 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = completed_object;
+#line 1265 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection), _tmp32_);
+#line 1267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = completed_object;
+#line 1267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _tmp33_->source;
+#line 1267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = user_preview;
+#line 1267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = total;
+#line 1267 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_emit_by_name (self, "imported", _tmp34_, _tmp35_, _tmp36_);
+#line 1268 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = completed_object;
+#line 1268 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = _tmp37_->source;
+#line 1268 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = media_source_get_filesize (_tmp38_);
+#line 1268 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_report_progress (self, _tmp39_);
+#line 1269 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_file_import_complete (self);
+#line 1252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (user_preview);
+#line 1252 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (completed_object);
+#line 10200 "BatchImport.c"
+ }
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = self->priv->ready_sources;
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = _tmp42_;
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp43_ >= BATCH_IMPORT_READY_SOURCES_COUNT_OVERFLOW) {
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = TRUE;
+#line 10212 "BatchImport.c"
+ } else {
+ GCancellable* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = self->priv->cancellable;
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = g_cancellable_is_cancelled (_tmp44_);
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = _tmp45_;
+#line 10222 "BatchImport.c"
+ }
+#line 1272 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp40_) {
+#line 1273 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_flush_ready_sources (self);
+#line 10228 "BatchImport.c"
+ }
+#line 1275 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = TRUE;
+#line 1275 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10234 "BatchImport.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__UINT64_UINT64 (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__UINT64_UINT64) (gpointer data1, guint64 arg_1, guint64 arg_2, gpointer data2);
+ register GMarshalFunc_VOID__UINT64_UINT64 callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = closure->data;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 10253 "BatchImport.c"
+ } else {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = closure->data;
+#line 10259 "BatchImport.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback = (GMarshalFunc_VOID__UINT64_UINT64) (marshal_data ? marshal_data : cc->callback);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback (data1, g_value_get_uint64 (param_values + 1), g_value_get_uint64 (param_values + 2), data2);
+#line 10265 "BatchImport.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_INT) (gpointer data1, gpointer arg_1, gpointer arg_2, gint arg_3, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT_INT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (n_param_values == 4);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = closure->data;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 10284 "BatchImport.c"
+ } else {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = closure->data;
+#line 10290 "BatchImport.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT_INT) (marshal_data ? marshal_data : cc->callback);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_int (param_values + 3), data2);
+#line 10296 "BatchImport.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__ENUM_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__ENUM_STRING) (gpointer data1, gint arg_1, const char* arg_2, gpointer data2);
+ register GMarshalFunc_VOID__ENUM_STRING callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = closure->data;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 10315 "BatchImport.c"
+ } else {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = closure->data;
+#line 10321 "BatchImport.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback = (GMarshalFunc_VOID__ENUM_STRING) (marshal_data ? marshal_data : cc->callback);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback (data1, g_value_get_enum (param_values + 1), g_value_get_string (param_values + 2), data2);
+#line 10327 "BatchImport.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__BATCH_IMPORT_RESULT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__BATCH_IMPORT_RESULT) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__BATCH_IMPORT_RESULT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = closure->data;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 10346 "BatchImport.c"
+ } else {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = closure->data;
+#line 10352 "BatchImport.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback = (GMarshalFunc_VOID__BATCH_IMPORT_RESULT) (marshal_data ? marshal_data : cc->callback);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback (data1, value_get_batch_import_result (param_values + 1), data2);
+#line 10358 "BatchImport.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__IMPORT_MANIFEST_BATCH_IMPORT_ROLL (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__IMPORT_MANIFEST_BATCH_IMPORT_ROLL) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__IMPORT_MANIFEST_BATCH_IMPORT_ROLL callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = closure->data;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 10377 "BatchImport.c"
+ } else {
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ data2 = closure->data;
+#line 10383 "BatchImport.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback = (GMarshalFunc_VOID__IMPORT_MANIFEST_BATCH_IMPORT_ROLL) (marshal_data ? marshal_data : cc->callback);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ callback (data1, value_get_import_manifest (param_values + 1), value_get_batch_import_roll (param_values + 2), data2);
+#line 10389 "BatchImport.c"
+}
+
+
+static void batch_import_class_init (BatchImportClass * klass) {
+ Workers* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Workers* _tmp2_ = NULL;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_parent_class = g_type_class_peek_parent (klass);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_class_add_private (klass, sizeof (BatchImportPrivate));
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_OBJECT_CLASS (klass)->finalize = batch_import_finalize;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_new ("starting", TYPE_BATCH_IMPORT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_new ("preparing", TYPE_BATCH_IMPORT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_new ("progress", TYPE_BATCH_IMPORT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__UINT64_UINT64, G_TYPE_NONE, 2, G_TYPE_UINT64, G_TYPE_UINT64);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_new ("imported", TYPE_BATCH_IMPORT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_INT, G_TYPE_NONE, 3, TYPE_MEDIA_SOURCE, GDK_TYPE_PIXBUF, G_TYPE_INT);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_new ("fatal_error", TYPE_BATCH_IMPORT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__ENUM_STRING, G_TYPE_NONE, 2, TYPE_IMPORT_RESULT, G_TYPE_STRING);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_new ("import_job_failed", TYPE_BATCH_IMPORT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BATCH_IMPORT_RESULT, G_TYPE_NONE, 1, TYPE_BATCH_IMPORT_RESULT);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_new ("import_complete", TYPE_BATCH_IMPORT, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__IMPORT_MANIFEST_BATCH_IMPORT_ROLL, G_TYPE_NONE, 2, TYPE_IMPORT_MANIFEST, TYPE_BATCH_IMPORT_ROLL);
+#line 413 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = workers_new ((guint) 1, FALSE);
+#line 413 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_feeder_workers = _tmp0_;
+#line 414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = workers_thread_per_cpu_minus_one ();
+#line 414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = workers_new (_tmp1_, FALSE);
+#line 414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_import_import_workers = _tmp2_;
+#line 10427 "BatchImport.c"
+}
+
+
+static void batch_import_instance_init (BatchImport * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GeeLinkedList* _tmp2_ = NULL;
+ GeeLinkedList* _tmp3_ = NULL;
+ GeeLinkedList* _tmp4_ = NULL;
+ GeeLinkedList* _tmp5_ = NULL;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv = BATCH_IMPORT_GET_PRIVATE (self);
+#line 419 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->completed_bytes = (guint64) 0;
+#line 420 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->total_bytes = (guint64) 0;
+#line 423 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->scheduled = FALSE;
+#line 424 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->completed = FALSE;
+#line 425 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file_imports_to_perform = -1;
+#line 426 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file_imports_completed = 0;
+#line 427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->cancellable = NULL;
+#line 428 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->last_preparing_ms = (gulong) 0;
+#line 431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->imported_full_md5_table = _tmp0_;
+#line 433 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->throbber_id = (guint) 0;
+#line 434 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = workers_thread_per_cpu_minus_one ();
+#line 434 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->max_outstanding_import_jobs = _tmp1_;
+#line 435 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->untrash_duplicates = TRUE;
+#line 436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->mark_duplicates_online = TRUE;
+#line 440 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = gee_linked_list_new (TYPE_PREPARED_FILE, (GBoxedCopyFunc) prepared_file_ref, prepared_file_unref, NULL, NULL, NULL);
+#line 440 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->ready_files = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_LIST, GeeList);
+#line 441 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = gee_linked_list_new (TYPE_COMPLETED_IMPORT_OBJECT, (GBoxedCopyFunc) completed_import_object_ref, completed_import_object_unref, NULL, NULL, NULL);
+#line 441 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->ready_thumbnails = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_LIST, GeeList);
+#line 443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = gee_linked_list_new (TYPE_COMPLETED_IMPORT_OBJECT, (GBoxedCopyFunc) completed_import_object_ref, completed_import_object_unref, NULL, NULL, NULL);
+#line 443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->display_imported_queue = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_LIST, GeeList);
+#line 445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = gee_linked_list_new (TYPE_COMPLETED_IMPORT_OBJECT, (GBoxedCopyFunc) completed_import_object_ref, completed_import_object_unref, NULL, NULL, NULL);
+#line 445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->ready_sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_LIST, GeeList);
+#line 10486 "BatchImport.c"
+}
+
+
+static void batch_import_finalize (GObject* obj) {
+ BatchImport * self;
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BATCH_IMPORT, BatchImport);
+#line 508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = application_get_instance ();
+#line 508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _tmp0_;
+#line 508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_parse_name ("exiting", TYPE_APPLICATION, &_tmp2_, NULL, FALSE);
+#line 508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _batch_import_user_halt_application_exiting, self);
+#line 508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _application_unref0 (_tmp1_);
+#line 416 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->jobs);
+#line 417 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_roll_unref0 (self->priv->import_roll);
+#line 418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->priv->name);
+#line 422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _import_manifest_unref0 (self->priv->manifest);
+#line 427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 429 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->skipset);
+#line 431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->imported_full_md5_table);
+#line 440 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->ready_files);
+#line 441 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->ready_thumbnails);
+#line 443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->display_imported_queue);
+#line 445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->ready_sources);
+#line 402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_OBJECT_CLASS (batch_import_parent_class)->finalize (obj);
+#line 10531 "BatchImport.c"
+}
+
+
+GType batch_import_get_type (void) {
+ static volatile gsize batch_import_type_id__volatile = 0;
+ if (g_once_init_enter (&batch_import_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (BatchImportClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) batch_import_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BatchImport), 0, (GInstanceInitFunc) batch_import_instance_init, NULL };
+ GType batch_import_type_id;
+ batch_import_type_id = g_type_register_static (G_TYPE_OBJECT, "BatchImport", &g_define_type_info, 0);
+ g_once_init_leave (&batch_import_type_id__volatile, batch_import_type_id);
+ }
+ return batch_import_type_id__volatile;
+}
+
+
+static DuplicatedFile* duplicated_file_construct (GType object_type) {
+ DuplicatedFile * self = NULL;
+#line 1284 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (DuplicatedFile*) g_object_new (object_type, NULL);
+#line 1285 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_id_free0 (self->priv->video_id);
+#line 1285 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->video_id = NULL;
+#line 1286 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_id_free0 (self->priv->photo_id);
+#line 1286 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->photo_id = NULL;
+#line 1287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->file);
+#line 1287 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file = NULL;
+#line 1284 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 10565 "BatchImport.c"
+}
+
+
+static DuplicatedFile* duplicated_file_new (void) {
+#line 1284 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return duplicated_file_construct (TYPE_DUPLICATED_FILE);
+#line 10572 "BatchImport.c"
+}
+
+
+static gpointer _photo_id_dup0 (gpointer self) {
+#line 1294 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? photo_id_dup (self) : NULL;
+#line 10579 "BatchImport.c"
+}
+
+
+DuplicatedFile* duplicated_file_create_from_photo_id (PhotoID* photo_id) {
+ DuplicatedFile* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ DuplicatedFile* _result_ = NULL;
+ DuplicatedFile* _tmp1_ = NULL;
+ PhotoID _tmp2_ = {0};
+ PhotoID* _tmp3_ = NULL;
+#line 1290 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (photo_id != NULL, NULL);
+#line 1291 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = photo_id_is_valid (photo_id);
+#line 1291 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp0_, "photo_id.is_valid()");
+#line 1293 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = duplicated_file_new ();
+#line 1293 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp1_;
+#line 1294 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = *photo_id;
+#line 1294 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _photo_id_dup0 (&_tmp2_);
+#line 1294 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_id_free0 (_result_->priv->photo_id);
+#line 1294 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_->priv->photo_id = _tmp3_;
+#line 1295 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _result_;
+#line 1295 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10612 "BatchImport.c"
+}
+
+
+static gpointer _video_id_dup0 (gpointer self) {
+#line 1302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? video_id_dup (self) : NULL;
+#line 10619 "BatchImport.c"
+}
+
+
+DuplicatedFile* duplicated_file_create_from_video_id (VideoID* video_id) {
+ DuplicatedFile* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ DuplicatedFile* _result_ = NULL;
+ DuplicatedFile* _tmp1_ = NULL;
+ VideoID _tmp2_ = {0};
+ VideoID* _tmp3_ = NULL;
+#line 1298 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (video_id != NULL, NULL);
+#line 1299 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = video_id_is_valid (video_id);
+#line 1299 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp0_, "video_id.is_valid()");
+#line 1301 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = duplicated_file_new ();
+#line 1301 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp1_;
+#line 1302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = *video_id;
+#line 1302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _video_id_dup0 (&_tmp2_);
+#line 1302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_id_free0 (_result_->priv->video_id);
+#line 1302 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_->priv->video_id = _tmp3_;
+#line 1303 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _result_;
+#line 1303 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10652 "BatchImport.c"
+}
+
+
+DuplicatedFile* duplicated_file_create_from_file (GFile* file) {
+ DuplicatedFile* result = NULL;
+ DuplicatedFile* _result_ = NULL;
+ DuplicatedFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 1306 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 1307 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = duplicated_file_new ();
+#line 1307 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp0_;
+#line 1309 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = file;
+#line 1309 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1309 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_result_->priv->file);
+#line 1309 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_->priv->file = _tmp2_;
+#line 1311 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _result_;
+#line 1311 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10680 "BatchImport.c"
+}
+
+
+GFile* duplicated_file_get_file (DuplicatedFile* self) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+#line 1314 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_DUPLICATED_FILE (self), NULL);
+#line 1315 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->file;
+#line 1315 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_ != NULL) {
+#line 10693 "BatchImport.c"
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 1316 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->priv->file;
+#line 1316 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1316 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp2_;
+#line 1316 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10704 "BatchImport.c"
+ } else {
+ PhotoID* _tmp3_ = NULL;
+#line 1317 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->priv->photo_id;
+#line 1317 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp3_ != NULL) {
+#line 10711 "BatchImport.c"
+ Photo* photo_object = NULL;
+ LibraryPhotoSourceCollection* _tmp4_ = NULL;
+ PhotoID* _tmp5_ = NULL;
+ PhotoID _tmp6_ = {0};
+ LibraryPhoto* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+#line 1318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = library_photo_global;
+#line 1318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = self->priv->photo_id;
+#line 1318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = *_tmp5_;
+#line 1318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = library_photo_source_collection_fetch (_tmp4_, &_tmp6_);
+#line 1318 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo_object = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PHOTO, Photo);
+#line 1319 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = photo_object;
+#line 1319 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1319 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->file);
+#line 1319 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file = _tmp9_;
+#line 1320 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = self->priv->file;
+#line 1320 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 1320 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp11_;
+#line 1320 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (photo_object);
+#line 1320 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10749 "BatchImport.c"
+ } else {
+ VideoID* _tmp12_ = NULL;
+#line 1321 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = self->priv->video_id;
+#line 1321 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp12_ != NULL) {
+#line 10756 "BatchImport.c"
+ Video* video_object = NULL;
+ VideoSourceCollection* _tmp13_ = NULL;
+ VideoID* _tmp14_ = NULL;
+ VideoID _tmp15_ = {0};
+ Video* _tmp16_ = NULL;
+ Video* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+#line 1322 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = video_global;
+#line 1322 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = self->priv->video_id;
+#line 1322 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = *_tmp14_;
+#line 1322 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = video_source_collection_fetch (_tmp13_, &_tmp15_);
+#line 1322 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ video_object = G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_VIDEO, Video);
+#line 1323 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = video_object;
+#line 1323 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1323 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->file);
+#line 1323 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->file = _tmp18_;
+#line 1324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = self->priv->file;
+#line 1324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 1324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp20_;
+#line 1324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (video_object);
+#line 1324 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10794 "BatchImport.c"
+ } else {
+#line 1326 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_assert_not_reached ();
+#line 10798 "BatchImport.c"
+ }
+ }
+ }
+}
+
+
+static void duplicated_file_class_init (DuplicatedFileClass * klass) {
+#line 1279 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ duplicated_file_parent_class = g_type_class_peek_parent (klass);
+#line 1279 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_class_add_private (klass, sizeof (DuplicatedFilePrivate));
+#line 1279 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_OBJECT_CLASS (klass)->finalize = duplicated_file_finalize;
+#line 10812 "BatchImport.c"
+}
+
+
+static void duplicated_file_instance_init (DuplicatedFile * self) {
+#line 1279 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv = DUPLICATED_FILE_GET_PRIVATE (self);
+#line 10819 "BatchImport.c"
+}
+
+
+static void duplicated_file_finalize (GObject* obj) {
+ DuplicatedFile * self;
+#line 1279 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DUPLICATED_FILE, DuplicatedFile);
+#line 1280 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_id_free0 (self->priv->video_id);
+#line 1281 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_id_free0 (self->priv->photo_id);
+#line 1282 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->file);
+#line 1279 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_OBJECT_CLASS (duplicated_file_parent_class)->finalize (obj);
+#line 10835 "BatchImport.c"
+}
+
+
+GType duplicated_file_get_type (void) {
+ static volatile gsize duplicated_file_type_id__volatile = 0;
+ if (g_once_init_enter (&duplicated_file_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DuplicatedFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) duplicated_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DuplicatedFile), 0, (GInstanceInitFunc) duplicated_file_instance_init, NULL };
+ GType duplicated_file_type_id;
+ duplicated_file_type_id = g_type_register_static (G_TYPE_OBJECT, "DuplicatedFile", &g_define_type_info, 0);
+ g_once_init_leave (&duplicated_file_type_id__volatile, duplicated_file_type_id);
+ }
+ return duplicated_file_type_id__volatile;
+}
+
+
+BackgroundImportJob* background_import_job_construct (GType object_type, BatchImport* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target) {
+ BackgroundImportJob* self = NULL;
+ BatchImport* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GCancellable* _tmp2_ = NULL;
+ CancellationCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+#line 1353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (owner), NULL);
+#line 1353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 1355 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = owner;
+#line 1355 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = callback;
+#line 1355 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1__target = callback_target;
+#line 1355 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = cancellable;
+#line 1355 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = cancellation;
+#line 1355 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3__target = cancellation_target;
+#line 1355 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (BackgroundImportJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _tmp1_, _tmp1__target, _tmp2_, _tmp3_, _tmp3__target, NULL);
+#line 1353 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 10879 "BatchImport.c"
+}
+
+
+ImportResult background_import_job_abort_check (BackgroundImportJob* self) {
+ ImportResult result = 0;
+ gboolean _tmp0_ = FALSE;
+ ImportResult _tmp1_ = 0;
+ ImportResult _tmp3_ = 0;
+#line 1360 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BACKGROUND_IMPORT_JOB (self), 0);
+#line 1361 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->abort_flag;
+#line 1361 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ == IMPORT_RESULT_SUCCESS) {
+#line 10894 "BatchImport.c"
+ gboolean _tmp2_ = FALSE;
+#line 1361 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = background_job_is_cancelled (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1361 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp2_;
+#line 10900 "BatchImport.c"
+ } else {
+#line 1361 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = FALSE;
+#line 10904 "BatchImport.c"
+ }
+#line 1361 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_) {
+#line 1362 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->abort_flag = IMPORT_RESULT_USER_ABORT;
+#line 10910 "BatchImport.c"
+ }
+#line 1364 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->abort_flag;
+#line 1364 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp3_;
+#line 1364 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 10918 "BatchImport.c"
+}
+
+
+void background_import_job_abort (BackgroundImportJob* self, ImportResult _result_) {
+ ImportResult _tmp0_ = 0;
+#line 1367 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_IMPORT_JOB (self));
+#line 1369 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->abort_flag;
+#line 1369 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_ == IMPORT_RESULT_SUCCESS) {
+#line 10930 "BatchImport.c"
+ ImportResult _tmp1_ = 0;
+#line 1370 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _result_;
+#line 1370 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->abort_flag = _tmp1_;
+#line 10936 "BatchImport.c"
+ }
+}
+
+
+void background_import_job_report_failure (BackgroundImportJob* self, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, ImportResult _result_) {
+ ImportResult _tmp0_ = 0;
+ ImportResult _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ GeeList* _tmp8_ = NULL;
+ BatchImportJob* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ ImportResult _tmp13_ = 0;
+ BatchImportResult* _tmp14_ = NULL;
+ BatchImportResult* _tmp15_ = NULL;
+#line 1373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_IMPORT_JOB (self));
+#line 1373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (job));
+#line 1373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail ((file == NULL) || G_IS_FILE (file));
+#line 1373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (src_identifier != NULL);
+#line 1373 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (dest_identifier != NULL);
+#line 1375 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _result_;
+#line 1375 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp0_ != IMPORT_RESULT_SUCCESS, "result != ImportResult.SUCCESS");
+#line 1378 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _result_;
+#line 1378 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = import_result_is_abort (_tmp1_);
+#line 1378 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp2_) {
+#line 10973 "BatchImport.c"
+ ImportResult _tmp3_ = 0;
+#line 1379 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _result_;
+#line 1379 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_abort (self, _tmp3_);
+#line 10979 "BatchImport.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+ ImportResult _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = src_identifier;
+#line 1381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _result_;
+#line 1381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = import_result_to_string (_tmp5_);
+#line 1381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_;
+#line 1381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1381: Import failure %s: %s", _tmp4_, _tmp7_);
+#line 1381 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp7_);
+#line 10997 "BatchImport.c"
+ }
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = self->failed;
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = job;
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = file;
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = src_identifier;
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = dest_identifier;
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _result_;
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = batch_import_result_new (_tmp9_, _tmp10_, _tmp11_, _tmp12_, NULL, _tmp13_);
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_;
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 1383 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_tmp15_);
+#line 11019 "BatchImport.c"
+}
+
+
+void background_import_job_report_error (BackgroundImportJob* self, BatchImportJob* job, GFile* file, const gchar* src_identifier, const gchar* dest_identifier, GError* err, ImportResult default_result) {
+ ImportResult _result_ = 0;
+ GError* _tmp0_ = NULL;
+ ImportResult _tmp1_ = 0;
+ ImportResult _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ ImportResult _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ ImportResult _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+ GeeList* _tmp12_ = NULL;
+ BatchImportJob* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+ ImportResult _tmp18_ = 0;
+ BatchImportResult* _tmp19_ = NULL;
+ BatchImportResult* _tmp20_ = NULL;
+#line 1387 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BACKGROUND_IMPORT_JOB (self));
+#line 1387 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (job));
+#line 1387 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail ((file == NULL) || G_IS_FILE (file));
+#line 1387 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (src_identifier != NULL);
+#line 1387 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (dest_identifier != NULL);
+#line 1389 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = err;
+#line 1389 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = default_result;
+#line 1389 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = import_result_convert_error (_tmp0_, _tmp1_);
+#line 1389 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp2_;
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = src_identifier;
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = err;
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_->message;
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _result_;
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = import_result_to_string (_tmp6_);
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_;
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1391: Import error %s: %s (%s)", _tmp3_, _tmp5_, _tmp8_);
+#line 1391 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp8_);
+#line 1393 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _result_;
+#line 1393 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = import_result_is_abort (_tmp9_);
+#line 1393 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp10_) {
+#line 11085 "BatchImport.c"
+ ImportResult _tmp11_ = 0;
+#line 1394 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _result_;
+#line 1394 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_abort (self, _tmp11_);
+#line 11091 "BatchImport.c"
+ }
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = self->failed;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = job;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = file;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = src_identifier;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = dest_identifier;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = err;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = default_result;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = batch_import_result_new_from_error (_tmp13_, _tmp14_, _tmp15_, _tmp16_, _tmp17_, _tmp18_);
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_;
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp20_);
+#line 1396 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (_tmp20_);
+#line 11115 "BatchImport.c"
+}
+
+
+static void background_import_job_class_init (BackgroundImportJobClass * klass) {
+#line 1349 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_parent_class = g_type_class_peek_parent (klass);
+#line 1349 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->finalize = background_import_job_finalize;
+#line 11124 "BatchImport.c"
+}
+
+
+static void background_import_job_instance_init (BackgroundImportJob * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 1350 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->abort_flag = IMPORT_RESULT_SUCCESS;
+#line 1351 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = gee_array_list_new (TYPE_BATCH_IMPORT_RESULT, (GBoxedCopyFunc) batch_import_result_ref, batch_import_result_unref, NULL, NULL, NULL);
+#line 1351 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->failed = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
+#line 11136 "BatchImport.c"
+}
+
+
+static void background_import_job_finalize (BackgroundJob* obj) {
+ BackgroundImportJob * self;
+#line 1349 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob);
+#line 1351 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->failed);
+#line 1349 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BACKGROUND_JOB_CLASS (background_import_job_parent_class)->finalize (obj);
+#line 11148 "BatchImport.c"
+}
+
+
+GType background_import_job_get_type (void) {
+ static volatile gsize background_import_job_type_id__volatile = 0;
+ if (g_once_init_enter (&background_import_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (BackgroundImportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) background_import_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BackgroundImportJob), 0, (GInstanceInitFunc) background_import_job_instance_init, NULL };
+ GType background_import_job_type_id;
+ background_import_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "BackgroundImportJob", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&background_import_job_type_id__volatile, background_import_job_type_id);
+ }
+ return background_import_job_type_id__volatile;
+}
+
+
+FileToPrepare* file_to_prepare_construct (GType object_type, BatchImportJob* job, GFile* file, gboolean copy_to_library) {
+ FileToPrepare* self = NULL;
+ BatchImportJob* _tmp0_ = NULL;
+ BatchImportJob* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 1407 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (job), NULL);
+#line 1407 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 1407 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (FileToPrepare*) g_type_create_instance (object_type);
+#line 1408 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = job;
+#line 1408 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _batch_import_job_ref0 (_tmp0_);
+#line 1408 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->job);
+#line 1408 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->job = _tmp1_;
+#line 1409 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = file;
+#line 1409 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 1409 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->file);
+#line 1409 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->file = _tmp3_;
+#line 1410 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = copy_to_library;
+#line 1410 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->copy_to_library = _tmp4_;
+#line 1407 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 11199 "BatchImport.c"
+}
+
+
+FileToPrepare* file_to_prepare_new (BatchImportJob* job, GFile* file, gboolean copy_to_library) {
+#line 1407 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return file_to_prepare_construct (TYPE_FILE_TO_PREPARE, job, file, copy_to_library);
+#line 11206 "BatchImport.c"
+}
+
+
+static gpointer _file_to_prepare_ref0 (gpointer self) {
+#line 1414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? file_to_prepare_ref (self) : NULL;
+#line 11213 "BatchImport.c"
+}
+
+
+void file_to_prepare_set_associated (FileToPrepare* self, FileToPrepare* a) {
+ FileToPrepare* _tmp0_ = NULL;
+ FileToPrepare* _tmp1_ = NULL;
+#line 1413 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_FILE_TO_PREPARE (self));
+#line 1413 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail ((a == NULL) || IS_FILE_TO_PREPARE (a));
+#line 1414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = a;
+#line 1414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _file_to_prepare_ref0 (_tmp0_);
+#line 1414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (self->associated);
+#line 1414 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->associated = _tmp1_;
+#line 11232 "BatchImport.c"
+}
+
+
+gchar* file_to_prepare_get_parent_path (FileToPrepare* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 1417 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (self), NULL);
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->file;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ != NULL) {
+#line 11246 "BatchImport.c"
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->file;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_file_get_parent (_tmp2_);
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp3_;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = g_file_get_path (_tmp4_);
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp5_;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp4_);
+#line 11265 "BatchImport.c"
+ } else {
+ BatchImportJob* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = self->job;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = batch_import_job_get_path (_tmp6_);
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp7_;
+#line 11277 "BatchImport.c"
+ }
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp0_;
+#line 1418 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 11283 "BatchImport.c"
+}
+
+
+gchar* file_to_prepare_get_path (FileToPrepare* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 1421 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (self), NULL);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->file;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ != NULL) {
+#line 11297 "BatchImport.c"
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->file;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp3_;
+#line 11308 "BatchImport.c"
+ } else {
+ BatchImportJob* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ BatchImportJob* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->job;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = batch_import_job_get_path (_tmp4_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = g_file_new_for_path (_tmp6_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = self->job;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = batch_import_job_get_basename (_tmp9_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp10_;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = g_file_get_child (_tmp8_, _tmp11_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp14_;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp13_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp11_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp6_);
+#line 11355 "BatchImport.c"
+ }
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp0_;
+#line 1422 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 11361 "BatchImport.c"
+}
+
+
+gchar* file_to_prepare_get_basename (FileToPrepare* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 1426 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (self), NULL);
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->file;
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ != NULL) {
+#line 11375 "BatchImport.c"
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->file;
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_file_get_basename (_tmp2_);
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp3_;
+#line 11386 "BatchImport.c"
+ } else {
+ BatchImportJob* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->job;
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = batch_import_job_get_basename (_tmp4_);
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp0_);
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp5_;
+#line 11398 "BatchImport.c"
+ }
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp0_;
+#line 1427 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 11404 "BatchImport.c"
+}
+
+
+gboolean file_to_prepare_is_directory (FileToPrepare* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+#line 1430 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (self), FALSE);
+#line 1431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->file;
+#line 1431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ != NULL) {
+#line 11418 "BatchImport.c"
+ GFile* _tmp2_ = NULL;
+ GFileType _tmp3_ = 0;
+#line 1431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->file;
+#line 1431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = g_file_query_file_type (_tmp2_, G_FILE_QUERY_INFO_NONE, NULL);
+#line 1431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp3_ == G_FILE_TYPE_DIRECTORY;
+#line 11427 "BatchImport.c"
+ } else {
+ BatchImportJob* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1432 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->job;
+#line 1432 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = batch_import_job_is_directory (_tmp4_);
+#line 1432 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp5_;
+#line 11437 "BatchImport.c"
+ }
+#line 1431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp0_;
+#line 1431 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 11443 "BatchImport.c"
+}
+
+
+static void value_file_to_prepare_init (GValue* value) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 11450 "BatchImport.c"
+}
+
+
+static void value_file_to_prepare_free_value (GValue* value) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare_unref (value->data[0].v_pointer);
+#line 11459 "BatchImport.c"
+ }
+}
+
+
+static void value_file_to_prepare_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = file_to_prepare_ref (src_value->data[0].v_pointer);
+#line 11469 "BatchImport.c"
+ } else {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 11473 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_file_to_prepare_peek_pointer (const GValue* value) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 11481 "BatchImport.c"
+}
+
+
+static gchar* value_file_to_prepare_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 11488 "BatchImport.c"
+ FileToPrepare* object;
+ object = collect_values[0].v_pointer;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 11495 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 11499 "BatchImport.c"
+ }
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = file_to_prepare_ref (object);
+#line 11503 "BatchImport.c"
+ } else {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 11507 "BatchImport.c"
+ }
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 11511 "BatchImport.c"
+}
+
+
+static gchar* value_file_to_prepare_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ FileToPrepare** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 11522 "BatchImport.c"
+ }
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 11528 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 11532 "BatchImport.c"
+ } else {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = file_to_prepare_ref (value->data[0].v_pointer);
+#line 11536 "BatchImport.c"
+ }
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 11540 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_file_to_prepare (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecFileToPrepare* spec;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_FILE_TO_PREPARE), NULL);
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 11554 "BatchImport.c"
+}
+
+
+gpointer value_get_file_to_prepare (const GValue* value) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_FILE_TO_PREPARE), NULL);
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 11563 "BatchImport.c"
+}
+
+
+void value_set_file_to_prepare (GValue* value, gpointer v_object) {
+ FileToPrepare* old;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_FILE_TO_PREPARE));
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_FILE_TO_PREPARE));
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare_ref (value->data[0].v_pointer);
+#line 11583 "BatchImport.c"
+ } else {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 11587 "BatchImport.c"
+ }
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare_unref (old);
+#line 11593 "BatchImport.c"
+ }
+}
+
+
+void value_take_file_to_prepare (GValue* value, gpointer v_object) {
+ FileToPrepare* old;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_FILE_TO_PREPARE));
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_FILE_TO_PREPARE));
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 11612 "BatchImport.c"
+ } else {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 11616 "BatchImport.c"
+ }
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare_unref (old);
+#line 11622 "BatchImport.c"
+ }
+}
+
+
+static void file_to_prepare_class_init (FileToPrepareClass * klass) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare_parent_class = g_type_class_peek_parent (klass);
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((FileToPrepareClass *) klass)->finalize = file_to_prepare_finalize;
+#line 11632 "BatchImport.c"
+}
+
+
+static void file_to_prepare_instance_init (FileToPrepare * self) {
+#line 1405 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->associated = NULL;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 11641 "BatchImport.c"
+}
+
+
+static void file_to_prepare_finalize (FileToPrepare* obj) {
+ FileToPrepare * self;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FILE_TO_PREPARE, FileToPrepare);
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 1402 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->job);
+#line 1403 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->file);
+#line 1405 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (self->associated);
+#line 11657 "BatchImport.c"
+}
+
+
+GType file_to_prepare_get_type (void) {
+ static volatile gsize file_to_prepare_type_id__volatile = 0;
+ if (g_once_init_enter (&file_to_prepare_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_file_to_prepare_init, value_file_to_prepare_free_value, value_file_to_prepare_copy_value, value_file_to_prepare_peek_pointer, "p", value_file_to_prepare_collect_value, "p", value_file_to_prepare_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (FileToPrepareClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) file_to_prepare_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FileToPrepare), 0, (GInstanceInitFunc) file_to_prepare_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType file_to_prepare_type_id;
+ file_to_prepare_type_id = g_type_register_fundamental (g_type_fundamental_next (), "FileToPrepare", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&file_to_prepare_type_id__volatile, file_to_prepare_type_id);
+ }
+ return file_to_prepare_type_id__volatile;
+}
+
+
+gpointer file_to_prepare_ref (gpointer instance) {
+ FileToPrepare* self;
+ self = instance;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 11682 "BatchImport.c"
+}
+
+
+void file_to_prepare_unref (gpointer instance) {
+ FileToPrepare* self;
+ self = instance;
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ FILE_TO_PREPARE_GET_CLASS (self)->finalize (self);
+#line 1401 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 11695 "BatchImport.c"
+ }
+}
+
+
+WorkSniffer* work_sniffer_construct (GType object_type, BatchImport* owner, GeeIterable* jobs, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, GeeHashSet* skipset) {
+ WorkSniffer* self = NULL;
+ BatchImport* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GCancellable* _tmp2_ = NULL;
+ CancellationCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ GeeIterable* _tmp4_ = NULL;
+ GeeIterable* _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ GeeHashSet* _tmp7_ = NULL;
+#line 1443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (owner), NULL);
+#line 1443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (jobs), NULL);
+#line 1443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 1443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((skipset == NULL) || GEE_IS_HASH_SET (skipset), NULL);
+#line 1445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = owner;
+#line 1445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = callback;
+#line 1445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1__target = callback_target;
+#line 1445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = cancellable;
+#line 1445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = cancellation;
+#line 1445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3__target = cancellation_target;
+#line 1445 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (WorkSniffer*) background_import_job_construct (object_type, _tmp0_, _tmp1_, _tmp1__target, _tmp2_, _tmp3_, _tmp3__target);
+#line 1447 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = jobs;
+#line 1447 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 1447 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->jobs);
+#line 1447 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->jobs = _tmp5_;
+#line 1448 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = skipset;
+#line 1448 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 1448 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->skipset);
+#line 1448 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->skipset = _tmp7_;
+#line 1443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 11752 "BatchImport.c"
+}
+
+
+WorkSniffer* work_sniffer_new (BatchImport* owner, GeeIterable* jobs, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, GeeHashSet* skipset) {
+#line 1443 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return work_sniffer_construct (TYPE_WORK_SNIFFER, owner, jobs, callback, callback_target, cancellable, cancellation, cancellation_target, skipset);
+#line 11759 "BatchImport.c"
+}
+
+
+static gint __lambda11_ (WorkSniffer* self, FileToPrepare* a, FileToPrepare* b) {
+ gint result = 0;
+ FileToPrepare* file_a = NULL;
+ FileToPrepare* _tmp0_ = NULL;
+ FileToPrepare* _tmp1_ = NULL;
+ FileToPrepare* file_b = NULL;
+ FileToPrepare* _tmp2_ = NULL;
+ FileToPrepare* _tmp3_ = NULL;
+ gchar* sa = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* sb = NULL;
+ gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 1483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (a), 0);
+#line 1483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (b), 0);
+#line 1484 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = a;
+#line 1484 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _file_to_prepare_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_FILE_TO_PREPARE, FileToPrepare));
+#line 1484 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_a = _tmp1_;
+#line 1485 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = b;
+#line 1485 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _file_to_prepare_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_FILE_TO_PREPARE, FileToPrepare));
+#line 1485 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_b = _tmp3_;
+#line 1486 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = file_to_prepare_get_path (file_a);
+#line 1486 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ sa = _tmp4_;
+#line 1487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = file_to_prepare_get_path (file_b);
+#line 1487 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ sb = _tmp5_;
+#line 1488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = utf8_cs_compare (sa, sb);
+#line 1488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp6_;
+#line 1488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (sb);
+#line 1488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (sa);
+#line 1488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (file_b);
+#line 1488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (file_a);
+#line 1488 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 11814 "BatchImport.c"
+}
+
+
+static gint ___lambda11__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = __lambda11_ ((WorkSniffer*) self, (FileToPrepare*) a, (FileToPrepare*) b);
+#line 1483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 11823 "BatchImport.c"
+}
+
+
+static void work_sniffer_real_execute (BackgroundJob* base) {
+ WorkSniffer * self;
+ GeeList* sorted = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ GeeList* _tmp42_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1451 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_WORK_SNIFFER, WorkSniffer);
+#line 11835 "BatchImport.c"
+ {
+ GeeIterator* _job_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->priv->jobs;
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _job_it = _tmp1_;
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 11848 "BatchImport.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ BatchImportJob* job = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ ImportResult _result_ = 0;
+ ImportResult _tmp6_ = 0;
+ ImportResult _tmp7_ = 0;
+ gboolean _tmp25_ = FALSE;
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _job_it;
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp3_) {
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 11866 "BatchImport.c"
+ }
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _job_it;
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = (BatchImportJob*) _tmp5_;
+#line 1456 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = background_import_job_abort_check (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob));
+#line 1456 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp6_;
+#line 1457 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _result_;
+#line 1457 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp7_ != IMPORT_RESULT_SUCCESS) {
+#line 11882 "BatchImport.c"
+ BatchImportJob* _tmp8_ = NULL;
+ BatchImportJob* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ BatchImportJob* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ ImportResult _tmp15_ = 0;
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = job;
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = job;
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = batch_import_job_get_source_identifier (_tmp9_);
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp10_;
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = job;
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = batch_import_job_get_dest_identifier (_tmp12_);
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _tmp13_;
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _result_;
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_failure (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp8_, NULL, _tmp11_, _tmp14_, _tmp15_);
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp14_);
+#line 1458 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp11_);
+#line 1461 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 1461 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 11917 "BatchImport.c"
+ }
+ {
+ BatchImportJob* _tmp16_ = NULL;
+#line 1465 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = job;
+#line 1465 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ work_sniffer_sniff_job (self, _tmp16_, &_inner_error_);
+#line 1465 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 11927 "BatchImport.c"
+ goto __catch400_g_error;
+ }
+ }
+ goto __finally400;
+ __catch400_g_error:
+ {
+ GError* err = NULL;
+ BatchImportJob* _tmp17_ = NULL;
+ BatchImportJob* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ BatchImportJob* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ GError* _tmp24_ = NULL;
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = job;
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = job;
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = batch_import_job_get_source_identifier (_tmp18_);
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_;
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = job;
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = batch_import_job_get_dest_identifier (_tmp21_);
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = _tmp22_;
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = err;
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_error (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp17_, NULL, _tmp20_, _tmp23_, _tmp24_, IMPORT_RESULT_FILE_ERROR);
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp23_);
+#line 1467 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp20_);
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 11971 "BatchImport.c"
+ }
+ __finally400:
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_job_it);
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1464 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 11986 "BatchImport.c"
+ }
+#line 1471 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = background_job_is_cancelled (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1471 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp25_) {
+#line 1472 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 1472 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 11996 "BatchImport.c"
+ }
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 12000 "BatchImport.c"
+ }
+#line 1455 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_job_it);
+#line 12004 "BatchImport.c"
+ }
+#line 1478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = gee_array_list_new (TYPE_FILE_TO_PREPARE, (GBoxedCopyFunc) file_to_prepare_ref, file_to_prepare_unref, NULL, NULL, NULL);
+#line 1478 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ sorted = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_LIST, GeeList);
+#line 12010 "BatchImport.c"
+ {
+ GeeList* _ftp_list = NULL;
+ GeeList* _tmp27_ = NULL;
+ GeeList* _tmp28_ = NULL;
+ gint _ftp_size = 0;
+ GeeList* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _ftp_index = 0;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = self->files_to_prepare;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _ftp_list = _tmp28_;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = _ftp_list;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = _tmp30_;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _ftp_size = _tmp31_;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _ftp_index = -1;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 12038 "BatchImport.c"
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ FileToPrepare* ftp = NULL;
+ GeeList* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gpointer _tmp37_ = NULL;
+ FileToPrepare* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = _ftp_index;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _ftp_index = _tmp32_ + 1;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = _ftp_index;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _ftp_size;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp33_ < _tmp34_)) {
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 12060 "BatchImport.c"
+ }
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = _ftp_list;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = _ftp_index;
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = gee_list_get (_tmp35_, _tmp36_);
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ftp = (FileToPrepare*) _tmp37_;
+#line 1480 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = ftp;
+#line 1480 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = file_to_prepare_is_directory (_tmp38_);
+#line 1480 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp39_) {
+#line 12076 "BatchImport.c"
+ GeeList* _tmp40_ = NULL;
+ FileToPrepare* _tmp41_ = NULL;
+#line 1481 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = sorted;
+#line 1481 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = ftp;
+#line 1481 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_COLLECTION, GeeCollection), _tmp41_);
+#line 12085 "BatchImport.c"
+ }
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (ftp);
+#line 12089 "BatchImport.c"
+ }
+#line 1479 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_ftp_list);
+#line 12093 "BatchImport.c"
+ }
+#line 1483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = sorted;
+#line 1483 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_list_sort (_tmp42_, ___lambda11__gcompare_data_func, background_job_ref (self), background_job_unref);
+#line 12099 "BatchImport.c"
+ {
+ gint i = 0;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ i = 0;
+#line 12104 "BatchImport.c"
+ {
+ gboolean _tmp43_ = FALSE;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = TRUE;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 12111 "BatchImport.c"
+ gint _tmp45_ = 0;
+ GeeList* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ FileToPrepare* ftp = NULL;
+ GeeList* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gpointer _tmp51_ = NULL;
+ FileToPrepare* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+ RawFileFormatProperties* _tmp59_ = NULL;
+ RawFileFormatProperties* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ gboolean _tmp63_ = FALSE;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp43_) {
+#line 12136 "BatchImport.c"
+ gint _tmp44_ = 0;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = i;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ i = _tmp44_ + 1;
+#line 12142 "BatchImport.c"
+ }
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = FALSE;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = i;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = sorted;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = _tmp47_;
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp45_ < _tmp48_)) {
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 12158 "BatchImport.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = sorted;
+#line 1495 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = i;
+#line 1495 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = gee_list_get (_tmp49_, _tmp50_);
+#line 1495 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ftp = (FileToPrepare*) _tmp51_;
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_ = ftp;
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_ = file_to_prepare_get_basename (_tmp52_);
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp54_ = _tmp53_;
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ disassemble_filename (_tmp54_, &_tmp55_, &_tmp56_);
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (name);
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ name = _tmp55_;
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (ext);
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ext = _tmp56_;
+#line 1496 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp54_);
+#line 1498 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57_ = ext;
+#line 1498 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58_ = is_string_empty (_tmp57_);
+#line 1498 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp58_) {
+#line 1499 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (ftp);
+#line 1499 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (ext);
+#line 1499 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (name);
+#line 1499 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 12200 "BatchImport.c"
+ }
+#line 1501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp59_ = raw_file_format_properties_get_instance ();
+#line 1501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp60_ = _tmp59_;
+#line 1501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp61_ = ext;
+#line 1501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp62_ = photo_file_format_properties_is_recognized_extension (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties), _tmp61_);
+#line 1501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp63_ = _tmp62_;
+#line 1501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_file_format_properties_unref0 (_tmp60_);
+#line 1501 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp63_) {
+#line 12216 "BatchImport.c"
+ gboolean _tmp64_ = FALSE;
+ gint _tmp65_ = 0;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp65_ = i;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp65_ > 0) {
+#line 12223 "BatchImport.c"
+ FileToPrepare* _tmp66_ = NULL;
+ GeeList* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ gpointer _tmp69_ = NULL;
+ FileToPrepare* _tmp70_ = NULL;
+ gboolean _tmp71_ = FALSE;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp66_ = ftp;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp67_ = sorted;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp68_ = i;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp69_ = gee_list_get (_tmp67_, _tmp68_ - 1);
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp70_ = (FileToPrepare*) _tmp69_;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp71_ = work_sniffer_is_paired (self, _tmp66_, _tmp70_);
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64_ = _tmp71_;
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (_tmp70_);
+#line 12246 "BatchImport.c"
+ } else {
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64_ = FALSE;
+#line 12250 "BatchImport.c"
+ }
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp64_) {
+#line 12254 "BatchImport.c"
+ FileToPrepare* associated_file = NULL;
+ GeeList* _tmp72_ = NULL;
+ gint _tmp73_ = 0;
+ gpointer _tmp74_ = NULL;
+ GeeList* _tmp75_ = NULL;
+ FileToPrepare* _tmp76_ = NULL;
+ FileToPrepare* _tmp77_ = NULL;
+ FileToPrepare* _tmp78_ = NULL;
+#line 1505 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp72_ = sorted;
+#line 1505 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp73_ = i;
+#line 1505 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp74_ = gee_list_get (_tmp72_, _tmp73_ - 1);
+#line 1505 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ associated_file = (FileToPrepare*) _tmp74_;
+#line 1506 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp75_ = self->files_to_prepare;
+#line 1506 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp76_ = associated_file;
+#line 1506 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, GEE_TYPE_COLLECTION, GeeCollection), _tmp76_);
+#line 1507 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp77_ = ftp;
+#line 1507 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp78_ = associated_file;
+#line 1507 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare_set_associated (_tmp77_, _tmp78_);
+#line 1504 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (associated_file);
+#line 12285 "BatchImport.c"
+ } else {
+ gboolean _tmp79_ = FALSE;
+ gint _tmp80_ = 0;
+ GeeList* _tmp81_ = NULL;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp80_ = i;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp81_ = sorted;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp82_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp83_ = _tmp82_;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp80_ < (_tmp83_ - 1)) {
+#line 12302 "BatchImport.c"
+ FileToPrepare* _tmp84_ = NULL;
+ GeeList* _tmp85_ = NULL;
+ gint _tmp86_ = 0;
+ gpointer _tmp87_ = NULL;
+ FileToPrepare* _tmp88_ = NULL;
+ gboolean _tmp89_ = FALSE;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp84_ = ftp;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp85_ = sorted;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp86_ = i;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp87_ = gee_list_get (_tmp85_, _tmp86_ + 1);
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp88_ = (FileToPrepare*) _tmp87_;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp89_ = work_sniffer_is_paired (self, _tmp84_, _tmp88_);
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp79_ = _tmp89_;
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (_tmp88_);
+#line 12325 "BatchImport.c"
+ } else {
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp79_ = FALSE;
+#line 12329 "BatchImport.c"
+ }
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp79_) {
+#line 12333 "BatchImport.c"
+ FileToPrepare* associated_file = NULL;
+ GeeList* _tmp90_ = NULL;
+ gint _tmp91_ = 0;
+ gpointer _tmp92_ = NULL;
+ GeeList* _tmp93_ = NULL;
+ FileToPrepare* _tmp94_ = NULL;
+ FileToPrepare* _tmp95_ = NULL;
+ FileToPrepare* _tmp96_ = NULL;
+#line 1509 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp90_ = sorted;
+#line 1509 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp91_ = i;
+#line 1509 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp92_ = gee_list_get (_tmp90_, _tmp91_ + 1);
+#line 1509 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ associated_file = (FileToPrepare*) _tmp92_;
+#line 1510 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp93_ = self->files_to_prepare;
+#line 1510 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp94_ = associated_file;
+#line 1510 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, GEE_TYPE_COLLECTION, GeeCollection), _tmp94_);
+#line 1511 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp95_ = ftp;
+#line 1511 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp96_ = associated_file;
+#line 1511 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare_set_associated (_tmp95_, _tmp96_);
+#line 1508 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (associated_file);
+#line 12364 "BatchImport.c"
+ }
+ }
+ }
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (ftp);
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (ext);
+#line 1493 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (name);
+#line 12374 "BatchImport.c"
+ }
+ }
+ }
+#line 1451 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (sorted);
+#line 12380 "BatchImport.c"
+}
+
+
+static gboolean work_sniffer_is_paired (WorkSniffer* self, FileToPrepare* raw, FileToPrepare* maybe_paired) {
+ gboolean result = FALSE;
+ FileToPrepare* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ FileToPrepare* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ gchar* test_name = NULL;
+ gchar* test_ext = NULL;
+ FileToPrepare* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ JfifFileFormatProperties* _tmp12_ = NULL;
+ JfifFileFormatProperties* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ FileToPrepare* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 1520 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_WORK_SNIFFER (self), FALSE);
+#line 1520 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (raw), FALSE);
+#line 1520 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_FILE_TO_PREPARE (maybe_paired), FALSE);
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = raw;
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = file_to_prepare_get_parent_path (_tmp0_);
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _tmp1_;
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = maybe_paired;
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = file_to_prepare_get_parent_path (_tmp3_);
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_;
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = g_strcmp0 (_tmp2_, _tmp5_) != 0;
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp5_);
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp2_);
+#line 1521 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp6_) {
+#line 1522 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 1522 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 12444 "BatchImport.c"
+ }
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = maybe_paired;
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = file_to_prepare_get_basename (_tmp7_);
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_;
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ disassemble_filename (_tmp9_, &_tmp10_, &_tmp11_);
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (test_name);
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ test_name = _tmp10_;
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (test_ext);
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ test_ext = _tmp11_;
+#line 1525 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp9_);
+#line 1527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = jfif_file_format_properties_get_instance ();
+#line 1527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_;
+#line 1527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = test_ext;
+#line 1527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = photo_file_format_properties_is_recognized_extension (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties), _tmp14_);
+#line 1527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = !_tmp15_;
+#line 1527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_file_format_properties_unref0 (_tmp13_);
+#line 1527 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp16_) {
+#line 1528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 1528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (test_ext);
+#line 1528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (test_name);
+#line 1528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (ext);
+#line 1528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (name);
+#line 1528 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 12490 "BatchImport.c"
+ }
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = raw;
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = file_to_prepare_get_basename (_tmp17_);
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = _tmp18_;
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ disassemble_filename (_tmp19_, &_tmp20_, &_tmp21_);
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (name);
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ name = _tmp20_;
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (ext);
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ext = _tmp21_;
+#line 1530 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp19_);
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = name;
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = test_name;
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = g_strcmp0 (_tmp22_, _tmp23_) == 0;
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (test_ext);
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (test_name);
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (ext);
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (name);
+#line 1532 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 12526 "BatchImport.c"
+}
+
+
+static void work_sniffer_sniff_job (WorkSniffer* self, BatchImportJob* job, GError** error) {
+ guint64 size = 0ULL;
+ GFile* file_or_dir = NULL;
+ gboolean determined_size = FALSE;
+ BatchImportJob* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ BatchImportJob* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1535 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_WORK_SNIFFER (self));
+#line 1535 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (job));
+#line 1538 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = job;
+#line 1538 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = batch_import_job_determine_file_size (_tmp0_, &_tmp1_, &_tmp2_);
+#line 1538 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ size = _tmp1_;
+#line 1538 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file_or_dir);
+#line 1538 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_or_dir = _tmp2_;
+#line 1538 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ determined_size = _tmp3_;
+#line 1539 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = determined_size;
+#line 1539 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp4_) {
+#line 12562 "BatchImport.c"
+ guint64 _tmp5_ = 0ULL;
+ guint64 _tmp6_ = 0ULL;
+#line 1540 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = self->total_bytes;
+#line 1540 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = size;
+#line 1540 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->total_bytes = _tmp5_ + _tmp6_;
+#line 12571 "BatchImport.c"
+ }
+#line 1542 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = job;
+#line 1542 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = batch_import_job_is_directory (_tmp7_);
+#line 1542 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp8_) {
+#line 12579 "BatchImport.c"
+ GFile* dir = NULL;
+ gboolean copy_to_library = FALSE;
+ gboolean _tmp9_ = FALSE;
+ BatchImportJob* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ GFile* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = job;
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = batch_import_job_prepare (_tmp10_, &_tmp11_, &_tmp12_, &_inner_error_);
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (dir);
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dir = _tmp11_;
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ copy_to_library = _tmp12_;
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp13_;
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (dir);
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file_or_dir);
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 12611 "BatchImport.c"
+ }
+#line 1547 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp9_) {
+#line 12615 "BatchImport.c"
+ BatchImportJob* _tmp14_ = NULL;
+ BatchImportJob* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ BatchImportJob* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = job;
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = job;
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = batch_import_job_get_source_identifier (_tmp15_);
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_;
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = job;
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = batch_import_job_get_dest_identifier (_tmp18_);
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_;
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_failure (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp14_, NULL, _tmp17_, _tmp20_, IMPORT_RESULT_FILE_ERROR);
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp20_);
+#line 1548 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp17_);
+#line 1551 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (dir);
+#line 1551 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file_or_dir);
+#line 1551 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 12649 "BatchImport.c"
+ }
+#line 1553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = dir;
+#line 1553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = query_is_directory (_tmp21_);
+#line 1553 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp22_, "query_is_directory(dir)");
+#line 12657 "BatchImport.c"
+ {
+ BatchImportJob* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 1556 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = job;
+#line 1556 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = dir;
+#line 1556 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = copy_to_library;
+#line 1556 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ work_sniffer_search_dir (self, _tmp23_, _tmp24_, _tmp25_, &_inner_error_);
+#line 1556 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12672 "BatchImport.c"
+ goto __catch401_g_error;
+ }
+ }
+ goto __finally401;
+ __catch401_g_error:
+ {
+ GError* err = NULL;
+ BatchImportJob* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ BatchImportJob* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ GError* _tmp34_ = NULL;
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = job;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = dir;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = job;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = batch_import_job_get_source_identifier (_tmp28_);
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _tmp29_;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = dir;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = g_file_get_path (_tmp31_);
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = _tmp32_;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = err;
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_error (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp26_, _tmp27_, _tmp30_, _tmp33_, _tmp34_, IMPORT_RESULT_FILE_ERROR);
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp33_);
+#line 1558 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp30_);
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 12719 "BatchImport.c"
+ }
+ __finally401:
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (dir);
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file_or_dir);
+#line 1555 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 12732 "BatchImport.c"
+ }
+#line 1542 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (dir);
+#line 12736 "BatchImport.c"
+ } else {
+ gboolean _tmp35_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+ gboolean _tmp44_ = FALSE;
+ GFile* _tmp45_ = NULL;
+ GeeList* _tmp50_ = NULL;
+ BatchImportJob* _tmp51_ = NULL;
+ FileToPrepare* _tmp52_ = NULL;
+ FileToPrepare* _tmp53_ = NULL;
+#line 1563 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = determined_size;
+#line 1563 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp35_) {
+#line 12750 "BatchImport.c"
+ guint64 _tmp36_ = 0ULL;
+ GFile* _tmp37_ = NULL;
+ GCancellable* _tmp38_ = NULL;
+ GCancellable* _tmp39_ = NULL;
+ guint64 _tmp40_ = 0ULL;
+ guint64 _tmp41_ = 0ULL;
+ guint64 _tmp42_ = 0ULL;
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = file_or_dir;
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = background_job_get_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = _tmp38_;
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = query_total_file_size (_tmp37_, _tmp39_, &_inner_error_);
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = _tmp40_;
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp39_);
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = _tmp41_;
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file_or_dir);
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 12780 "BatchImport.c"
+ }
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = self->total_bytes;
+#line 1564 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->total_bytes = _tmp42_ + _tmp36_;
+#line 12786 "BatchImport.c"
+ }
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = file_or_dir;
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp45_ != NULL) {
+#line 12792 "BatchImport.c"
+ GeeHashSet* _tmp46_ = NULL;
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = self->priv->skipset;
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = _tmp46_ != NULL;
+#line 12798 "BatchImport.c"
+ } else {
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = FALSE;
+#line 12802 "BatchImport.c"
+ }
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp44_) {
+#line 12806 "BatchImport.c"
+ GeeHashSet* _tmp47_ = NULL;
+ GFile* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = self->priv->skipset;
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = file_or_dir;
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp48_);
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = _tmp49_;
+#line 12818 "BatchImport.c"
+ } else {
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = FALSE;
+#line 12822 "BatchImport.c"
+ }
+#line 1567 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp43_) {
+#line 1568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file_or_dir);
+#line 1568 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 12830 "BatchImport.c"
+ }
+#line 1571 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = self->files_to_prepare;
+#line 1571 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = job;
+#line 1571 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_ = file_to_prepare_new (_tmp51_, NULL, TRUE);
+#line 1571 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_ = _tmp52_;
+#line 1571 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection), _tmp53_);
+#line 1571 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (_tmp53_);
+#line 12844 "BatchImport.c"
+ }
+#line 1535 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file_or_dir);
+#line 12848 "BatchImport.c"
+}
+
+
+void work_sniffer_search_dir (WorkSniffer* self, BatchImportJob* job, GFile* dir, gboolean copy_to_library, GError** error) {
+ GFileEnumerator* enumerator = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileEnumerator* _tmp1_ = NULL;
+ GFileInfo* info = NULL;
+ GError * _inner_error_ = NULL;
+#line 1575 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_WORK_SNIFFER (self));
+#line 1575 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (job));
+#line 1575 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 1576 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = dir;
+#line 1576 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = g_file_enumerate_children (_tmp0_, "standard::*", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 1576 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ enumerator = _tmp1_;
+#line 1576 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1576 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1576 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 12876 "BatchImport.c"
+ }
+#line 1579 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ info = NULL;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 12882 "BatchImport.c"
+ GFileInfo* _tmp2_ = NULL;
+ GFileEnumerator* _tmp3_ = NULL;
+ GCancellable* _tmp4_ = NULL;
+ GCancellable* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GFile* child = NULL;
+ GFile* _tmp11_ = NULL;
+ GFileInfo* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFileType file_type = 0;
+ GFileInfo* _tmp15_ = NULL;
+ GFileType _tmp16_ = 0;
+ GFileType _tmp17_ = 0;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = enumerator;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = background_job_get_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = g_file_enumerator_next_file (_tmp3_, _tmp5_, &_inner_error_);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _tmp7_;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (info);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (enumerator);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 12925 "BatchImport.c"
+ }
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp2_;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = NULL;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (info);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ info = _tmp8_;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = info;
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp9_ != NULL)) {
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 12943 "BatchImport.c"
+ }
+#line 1582 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = background_job_is_cancelled (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1582 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp10_) {
+#line 1583 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1583 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 12953 "BatchImport.c"
+ }
+#line 1585 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = dir;
+#line 1585 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = info;
+#line 1585 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = g_file_info_get_name (_tmp12_);
+#line 1585 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = g_file_get_child (_tmp11_, _tmp13_);
+#line 1585 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ child = _tmp14_;
+#line 1586 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = info;
+#line 1586 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = g_file_info_get_file_type (_tmp15_);
+#line 1586 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_type = _tmp16_;
+#line 1588 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = file_type;
+#line 1588 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp17_ == G_FILE_TYPE_DIRECTORY) {
+#line 12975 "BatchImport.c"
+ GFileInfo* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 1589 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = info;
+#line 1589 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = g_file_info_get_name (_tmp18_);
+#line 1589 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = g_str_has_prefix (_tmp19_, ".");
+#line 1589 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp20_) {
+#line 1590 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (child);
+#line 1590 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1590 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 12993 "BatchImport.c"
+ }
+ {
+ BatchImportJob* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 1593 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = job;
+#line 1593 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = child;
+#line 1593 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = copy_to_library;
+#line 1593 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ work_sniffer_search_dir (self, _tmp21_, _tmp22_, _tmp23_, &_inner_error_);
+#line 1593 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 13009 "BatchImport.c"
+ goto __catch402_g_error;
+ }
+ }
+ goto __finally402;
+ __catch402_g_error:
+ {
+ GError* err = NULL;
+ BatchImportJob* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ GError* _tmp32_ = NULL;
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = job;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = child;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = child;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = g_file_get_path (_tmp26_);
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _tmp27_;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = child;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = g_file_get_path (_tmp29_);
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = _tmp30_;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = err;
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_error (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp24_, _tmp25_, _tmp28_, _tmp31_, _tmp32_, IMPORT_RESULT_FILE_ERROR);
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp31_);
+#line 1595 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp28_);
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 13056 "BatchImport.c"
+ }
+ __finally402:
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (child);
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (info);
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (enumerator);
+#line 1592 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 13073 "BatchImport.c"
+ }
+ } else {
+ GFileType _tmp33_ = 0;
+#line 1598 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = file_type;
+#line 1598 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp33_ == G_FILE_TYPE_REGULAR) {
+#line 13081 "BatchImport.c"
+ gboolean _tmp34_ = FALSE;
+ GeeHashSet* _tmp35_ = NULL;
+ gboolean _tmp39_ = FALSE;
+ gboolean _tmp40_ = FALSE;
+ GFile* _tmp41_ = NULL;
+ gboolean _tmp42_ = FALSE;
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = self->priv->skipset;
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp35_ != NULL) {
+#line 13092 "BatchImport.c"
+ GeeHashSet* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = self->priv->skipset;
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = child;
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp37_);
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _tmp38_;
+#line 13104 "BatchImport.c"
+ } else {
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = FALSE;
+#line 13108 "BatchImport.c"
+ }
+#line 1599 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp34_) {
+#line 1600 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (child);
+#line 1600 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1600 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 13118 "BatchImport.c"
+ }
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = child;
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = photo_is_file_image (_tmp41_);
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp42_) {
+#line 13126 "BatchImport.c"
+ GFile* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = child;
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = photo_file_format_is_file_supported (_tmp43_);
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = _tmp44_;
+#line 13135 "BatchImport.c"
+ } else {
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = FALSE;
+#line 13139 "BatchImport.c"
+ }
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp40_) {
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = TRUE;
+#line 13145 "BatchImport.c"
+ } else {
+ GFile* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+#line 1603 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = child;
+#line 1603 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = video_reader_is_supported_video_file (_tmp45_);
+#line 1603 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = _tmp46_;
+#line 13155 "BatchImport.c"
+ }
+#line 1602 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp39_) {
+#line 13159 "BatchImport.c"
+ guint64 _tmp47_ = 0ULL;
+ GFileInfo* _tmp48_ = NULL;
+ gint64 _tmp49_ = 0LL;
+ GeeList* _tmp50_ = NULL;
+ BatchImportJob* _tmp51_ = NULL;
+ GFile* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+ FileToPrepare* _tmp54_ = NULL;
+ FileToPrepare* _tmp55_ = NULL;
+#line 1604 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = self->total_bytes;
+#line 1604 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = info;
+#line 1604 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = g_file_info_get_size (_tmp48_);
+#line 1604 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->total_bytes = _tmp47_ + _tmp49_;
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = self->files_to_prepare;
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = job;
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_ = child;
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_ = copy_to_library;
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp54_ = file_to_prepare_new (_tmp51_, _tmp52_, _tmp53_);
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp55_ = _tmp54_;
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection), _tmp55_);
+#line 1605 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (_tmp55_);
+#line 1607 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (child);
+#line 1607 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1607 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 13199 "BatchImport.c"
+ }
+ } else {
+ GFile* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ GFileType _tmp59_ = 0;
+#line 1610 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp56_ = child;
+#line 1610 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57_ = g_file_get_path (_tmp56_);
+#line 1610 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58_ = _tmp57_;
+#line 1610 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp59_ = file_type;
+#line 1610 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1610: Ignoring import of %s file type %d", _tmp58_, (gint) _tmp59_);
+#line 1610 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp58_);
+#line 13218 "BatchImport.c"
+ }
+ }
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (child);
+#line 1580 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 13225 "BatchImport.c"
+ }
+#line 1575 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (info);
+#line 1575 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (enumerator);
+#line 13231 "BatchImport.c"
+}
+
+
+static void work_sniffer_class_init (WorkSnifferClass * klass) {
+#line 1436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ work_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 1436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->finalize = work_sniffer_finalize;
+#line 1436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_class_add_private (klass, sizeof (WorkSnifferPrivate));
+#line 1436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->execute = work_sniffer_real_execute;
+#line 13244 "BatchImport.c"
+}
+
+
+static void work_sniffer_instance_init (WorkSniffer * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 1436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv = WORK_SNIFFER_GET_PRIVATE (self);
+#line 1437 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = gee_array_list_new (TYPE_FILE_TO_PREPARE, (GBoxedCopyFunc) file_to_prepare_ref, file_to_prepare_unref, NULL, NULL, NULL);
+#line 1437 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->files_to_prepare = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
+#line 1438 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->total_bytes = (guint64) 0;
+#line 13258 "BatchImport.c"
+}
+
+
+static void work_sniffer_finalize (BackgroundJob* obj) {
+ WorkSniffer * self;
+#line 1436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_WORK_SNIFFER, WorkSniffer);
+#line 1437 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->files_to_prepare);
+#line 1440 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->jobs);
+#line 1441 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->skipset);
+#line 1436 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BACKGROUND_JOB_CLASS (work_sniffer_parent_class)->finalize (obj);
+#line 13274 "BatchImport.c"
+}
+
+
+GType work_sniffer_get_type (void) {
+ static volatile gsize work_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&work_sniffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (WorkSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) work_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WorkSniffer), 0, (GInstanceInitFunc) work_sniffer_instance_init, NULL };
+ GType work_sniffer_type_id;
+ work_sniffer_type_id = g_type_register_static (TYPE_BACKGROUND_IMPORT_JOB, "WorkSniffer", &g_define_type_info, 0);
+ g_once_init_leave (&work_sniffer_type_id__volatile, work_sniffer_type_id);
+ }
+ return work_sniffer_type_id__volatile;
+}
+
+
+PreparedFile* prepared_file_construct (GType object_type, BatchImportJob* job, GFile* file, GFile* associated_file, const gchar* source_id, const gchar* dest_id, gboolean copy_to_library, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, guint64 filesize, gboolean is_video) {
+ PreparedFile* self = NULL;
+ BatchImportJob* _tmp0_ = NULL;
+ BatchImportJob* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ PhotoFileFormat _tmp17_ = 0;
+ guint64 _tmp18_ = 0ULL;
+ gboolean _tmp19_ = FALSE;
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (job), NULL);
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((associated_file == NULL) || G_IS_FILE (associated_file), NULL);
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (source_id != NULL, NULL);
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (dest_id != NULL, NULL);
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (PreparedFile*) g_type_create_instance (object_type);
+#line 1634 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = job;
+#line 1634 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _batch_import_job_ref0 (_tmp0_);
+#line 1634 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->job);
+#line 1634 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->job = _tmp1_;
+#line 1635 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->result = IMPORT_RESULT_SUCCESS;
+#line 1636 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = file;
+#line 1636 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 1636 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->file);
+#line 1636 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->file = _tmp3_;
+#line 1637 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = associated_file;
+#line 1637 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 1637 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->associated_file);
+#line 1637 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->associated_file = _tmp5_;
+#line 1638 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = source_id;
+#line 1638 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 1638 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->source_id);
+#line 1638 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->source_id = _tmp7_;
+#line 1639 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = dest_id;
+#line 1639 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 1639 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->dest_id);
+#line 1639 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->dest_id = _tmp9_;
+#line 1640 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = copy_to_library;
+#line 1640 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->copy_to_library = _tmp10_;
+#line 1641 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = exif_md5;
+#line 1641 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 1641 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->exif_md5);
+#line 1641 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->exif_md5 = _tmp12_;
+#line 1642 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = thumbnail_md5;
+#line 1642 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = g_strdup (_tmp13_);
+#line 1642 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->thumbnail_md5);
+#line 1642 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->thumbnail_md5 = _tmp14_;
+#line 1643 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = full_md5;
+#line 1643 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 1643 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->full_md5);
+#line 1643 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->full_md5 = _tmp16_;
+#line 1644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = file_format;
+#line 1644 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->file_format = _tmp17_;
+#line 1645 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = filesize;
+#line 1645 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->filesize = _tmp18_;
+#line 1646 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = is_video;
+#line 1646 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->is_video = _tmp19_;
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 13408 "BatchImport.c"
+}
+
+
+PreparedFile* prepared_file_new (BatchImportJob* job, GFile* file, GFile* associated_file, const gchar* source_id, const gchar* dest_id, gboolean copy_to_library, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, guint64 filesize, gboolean is_video) {
+#line 1631 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return prepared_file_construct (TYPE_PREPARED_FILE, job, file, associated_file, source_id, dest_id, copy_to_library, exif_md5, thumbnail_md5, full_md5, file_format, filesize, is_video);
+#line 13415 "BatchImport.c"
+}
+
+
+static void value_prepared_file_init (GValue* value) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 13422 "BatchImport.c"
+}
+
+
+static void value_prepared_file_free_value (GValue* value) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file_unref (value->data[0].v_pointer);
+#line 13431 "BatchImport.c"
+ }
+}
+
+
+static void value_prepared_file_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = prepared_file_ref (src_value->data[0].v_pointer);
+#line 13441 "BatchImport.c"
+ } else {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 13445 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_prepared_file_peek_pointer (const GValue* value) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 13453 "BatchImport.c"
+}
+
+
+static gchar* value_prepared_file_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 13460 "BatchImport.c"
+ PreparedFile* object;
+ object = collect_values[0].v_pointer;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 13467 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 13471 "BatchImport.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = prepared_file_ref (object);
+#line 13475 "BatchImport.c"
+ } else {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 13479 "BatchImport.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 13483 "BatchImport.c"
+}
+
+
+static gchar* value_prepared_file_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PreparedFile** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 13494 "BatchImport.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 13500 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 13504 "BatchImport.c"
+ } else {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = prepared_file_ref (value->data[0].v_pointer);
+#line 13508 "BatchImport.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 13512 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_prepared_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPreparedFile* spec;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PREPARED_FILE), NULL);
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 13526 "BatchImport.c"
+}
+
+
+gpointer value_get_prepared_file (const GValue* value) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PREPARED_FILE), NULL);
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 13535 "BatchImport.c"
+}
+
+
+void value_set_prepared_file (GValue* value, gpointer v_object) {
+ PreparedFile* old;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PREPARED_FILE));
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PREPARED_FILE));
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file_ref (value->data[0].v_pointer);
+#line 13555 "BatchImport.c"
+ } else {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 13559 "BatchImport.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file_unref (old);
+#line 13565 "BatchImport.c"
+ }
+}
+
+
+void value_take_prepared_file (GValue* value, gpointer v_object) {
+ PreparedFile* old;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PREPARED_FILE));
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PREPARED_FILE));
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 13584 "BatchImport.c"
+ } else {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 13588 "BatchImport.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file_unref (old);
+#line 13594 "BatchImport.c"
+ }
+}
+
+
+static void prepared_file_class_init (PreparedFileClass * klass) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file_parent_class = g_type_class_peek_parent (klass);
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((PreparedFileClass *) klass)->finalize = prepared_file_finalize;
+#line 13604 "BatchImport.c"
+}
+
+
+static void prepared_file_instance_init (PreparedFile * self) {
+#line 1620 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->associated_file = NULL;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 13613 "BatchImport.c"
+}
+
+
+static void prepared_file_finalize (PreparedFile* obj) {
+ PreparedFile * self;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PREPARED_FILE, PreparedFile);
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 1617 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->job);
+#line 1619 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->file);
+#line 1620 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->associated_file);
+#line 1621 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->source_id);
+#line 1622 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->dest_id);
+#line 1624 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->exif_md5);
+#line 1625 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->thumbnail_md5);
+#line 1626 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (self->full_md5);
+#line 13639 "BatchImport.c"
+}
+
+
+GType prepared_file_get_type (void) {
+ static volatile gsize prepared_file_type_id__volatile = 0;
+ if (g_once_init_enter (&prepared_file_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_prepared_file_init, value_prepared_file_free_value, value_prepared_file_copy_value, value_prepared_file_peek_pointer, "p", value_prepared_file_collect_value, "p", value_prepared_file_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PreparedFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prepared_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PreparedFile), 0, (GInstanceInitFunc) prepared_file_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType prepared_file_type_id;
+ prepared_file_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PreparedFile", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&prepared_file_type_id__volatile, prepared_file_type_id);
+ }
+ return prepared_file_type_id__volatile;
+}
+
+
+gpointer prepared_file_ref (gpointer instance) {
+ PreparedFile* self;
+ self = instance;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 13664 "BatchImport.c"
+}
+
+
+void prepared_file_unref (gpointer instance) {
+ PreparedFile* self;
+ self = instance;
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ PREPARED_FILE_GET_CLASS (self)->finalize (self);
+#line 1616 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 13677 "BatchImport.c"
+ }
+}
+
+
+PreparedFileCluster* prepared_file_cluster_construct (GType object_type, GeeArrayList* list) {
+ PreparedFileCluster* self = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 1653 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (GEE_IS_ARRAY_LIST (list), NULL);
+#line 1653 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (PreparedFileCluster*) interlocked_notification_object_construct (object_type);
+#line 1654 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = list;
+#line 1654 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1654 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->list);
+#line 1654 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->list = _tmp1_;
+#line 1653 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 13700 "BatchImport.c"
+}
+
+
+PreparedFileCluster* prepared_file_cluster_new (GeeArrayList* list) {
+#line 1653 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return prepared_file_cluster_construct (TYPE_PREPARED_FILE_CLUSTER, list);
+#line 13707 "BatchImport.c"
+}
+
+
+static void prepared_file_cluster_class_init (PreparedFileClusterClass * klass) {
+#line 1650 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file_cluster_parent_class = g_type_class_peek_parent (klass);
+#line 1650 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((NotificationObjectClass *) klass)->finalize = prepared_file_cluster_finalize;
+#line 13716 "BatchImport.c"
+}
+
+
+static void prepared_file_cluster_instance_init (PreparedFileCluster * self) {
+}
+
+
+static void prepared_file_cluster_finalize (NotificationObject* obj) {
+ PreparedFileCluster * self;
+#line 1650 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PREPARED_FILE_CLUSTER, PreparedFileCluster);
+#line 1651 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->list);
+#line 1650 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ NOTIFICATION_OBJECT_CLASS (prepared_file_cluster_parent_class)->finalize (obj);
+#line 13732 "BatchImport.c"
+}
+
+
+GType prepared_file_cluster_get_type (void) {
+ static volatile gsize prepared_file_cluster_type_id__volatile = 0;
+ if (g_once_init_enter (&prepared_file_cluster_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PreparedFileClusterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prepared_file_cluster_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PreparedFileCluster), 0, (GInstanceInitFunc) prepared_file_cluster_instance_init, NULL };
+ GType prepared_file_cluster_type_id;
+ prepared_file_cluster_type_id = g_type_register_static (TYPE_INTERLOCKED_NOTIFICATION_OBJECT, "PreparedFileCluster", &g_define_type_info, 0);
+ g_once_init_leave (&prepared_file_cluster_type_id__volatile, prepared_file_cluster_type_id);
+ }
+ return prepared_file_cluster_type_id__volatile;
+}
+
+
+PrepareFilesJob* prepare_files_job_construct (GType object_type, BatchImport* owner, GeeList* files_to_prepare, NotificationCallback notification, void* notification_target, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target) {
+ PrepareFilesJob* self = NULL;
+ BatchImport* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GCancellable* _tmp2_ = NULL;
+ CancellationCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ NotificationCallback _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ GFile* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 1671 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (owner), NULL);
+#line 1671 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (GEE_IS_LIST (files_to_prepare), NULL);
+#line 1671 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 1674 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = owner;
+#line 1674 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = callback;
+#line 1674 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1__target = callback_target;
+#line 1674 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = cancellable;
+#line 1674 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = cancellation;
+#line 1674 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3__target = cancellation_target;
+#line 1674 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (PrepareFilesJob*) background_import_job_construct (object_type, _tmp0_, _tmp1_, _tmp1__target, _tmp2_, _tmp3_, _tmp3__target);
+#line 1676 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = files_to_prepare;
+#line 1676 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 1676 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->files_to_prepare);
+#line 1676 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->files_to_prepare = _tmp5_;
+#line 1677 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = notification;
+#line 1677 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6__target = notification_target;
+#line 1677 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->notification = _tmp6_;
+#line 1677 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->notification_target = _tmp6__target;
+#line 1678 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = app_dirs_get_import_dir ();
+#line 1678 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->library_dir);
+#line 1678 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->library_dir = _tmp7_;
+#line 1679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = prepare_files_job_get_test_variable ("SHOTWELL_FAIL_EVERY");
+#line 1679 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->fail_every = _tmp8_;
+#line 1680 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = prepare_files_job_get_test_variable ("SHOTWELL_SKIP_EVERY");
+#line 1680 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->skip_every = _tmp9_;
+#line 1682 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_job_set_notification_priority (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob), G_PRIORITY_LOW);
+#line 1671 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 13817 "BatchImport.c"
+}
+
+
+PrepareFilesJob* prepare_files_job_new (BatchImport* owner, GeeList* files_to_prepare, NotificationCallback notification, void* notification_target, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target) {
+#line 1671 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return prepare_files_job_construct (TYPE_PREPARE_FILES_JOB, owner, files_to_prepare, notification, notification_target, callback, callback_target, cancellable, cancellation, cancellation_target);
+#line 13824 "BatchImport.c"
+}
+
+
+static gint prepare_files_job_get_test_variable (const gchar* name) {
+ gint result = 0;
+ gchar* value = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ const gchar* _tmp5_ = NULL;
+#line 1685 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (name != NULL, 0);
+#line 1686 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = name;
+#line 1686 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = g_getenv (_tmp0_);
+#line 1686 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 1686 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value = _tmp2_;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = value;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp5_ == NULL) {
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = TRUE;
+#line 13853 "BatchImport.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = value;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = strlen (_tmp6_);
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp8_ == 0;
+#line 13866 "BatchImport.c"
+ }
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp4_) {
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = 0;
+#line 13872 "BatchImport.c"
+ } else {
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = value;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = atoi (_tmp9_);
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _tmp10_;
+#line 13882 "BatchImport.c"
+ }
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp3_;
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (value);
+#line 1688 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 13890 "BatchImport.c"
+}
+
+
+static void prepare_files_job_real_execute (BackgroundJob* base) {
+ PrepareFilesJob * self;
+ GTimer* timer = NULL;
+ GTimer* _tmp0_ = NULL;
+ GeeArrayList* list = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeArrayList* _tmp90_ = NULL;
+ gint _tmp91_ = 0;
+ gint _tmp92_ = 0;
+#line 1691 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PREPARE_FILES_JOB, PrepareFilesJob);
+#line 1692 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = g_timer_new ();
+#line 1692 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ timer = _tmp0_;
+#line 1694 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = gee_array_list_new (TYPE_PREPARED_FILE, (GBoxedCopyFunc) prepared_file_ref, prepared_file_unref, NULL, NULL, NULL);
+#line 1694 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ list = _tmp1_;
+#line 13913 "BatchImport.c"
+ {
+ GeeList* _file_to_prepare_list = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _file_to_prepare_size = 0;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _file_to_prepare_index = 0;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->priv->files_to_prepare;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_list = _tmp3_;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _file_to_prepare_list;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_size = _tmp6_;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_index = -1;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 13941 "BatchImport.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ FileToPrepare* file_to_prepare = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ ImportResult _result_ = 0;
+ ImportResult _tmp13_ = 0;
+ ImportResult _tmp14_ = 0;
+ BatchImportJob* job = NULL;
+ FileToPrepare* _tmp26_ = NULL;
+ BatchImportJob* _tmp27_ = NULL;
+ BatchImportJob* _tmp28_ = NULL;
+ GFile* file = NULL;
+ FileToPrepare* _tmp29_ = NULL;
+ GFile* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+ FileToPrepare* _tmp33_ = NULL;
+ FileToPrepare* _tmp34_ = NULL;
+ GFile* associated = NULL;
+ GFile* _tmp38_ = NULL;
+ gboolean copy_to_library = FALSE;
+ FileToPrepare* _tmp39_ = NULL;
+ gboolean _tmp40_ = FALSE;
+ GFile* _tmp41_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ GFile* _tmp47_ = NULL;
+ PreparedFile* prepared_file = NULL;
+ BatchImportJob* _tmp55_ = NULL;
+ GFile* _tmp56_ = NULL;
+ GFile* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+ PreparedFile* _tmp59_ = NULL;
+ ImportResult _tmp60_ = 0;
+ ImportResult _tmp61_ = 0;
+ gboolean _tmp74_ = FALSE;
+ GeeArrayList* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _file_to_prepare_index;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_index = _tmp7_ + 1;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _file_to_prepare_index;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _file_to_prepare_size;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 13995 "BatchImport.c"
+ }
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _file_to_prepare_list;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _file_to_prepare_index;
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = gee_list_get (_tmp10_, _tmp11_);
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_to_prepare = (FileToPrepare*) _tmp12_;
+#line 1696 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = background_import_job_abort_check (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob));
+#line 1696 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp13_;
+#line 1697 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _result_;
+#line 1697 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp14_ != IMPORT_RESULT_SUCCESS) {
+#line 14013 "BatchImport.c"
+ FileToPrepare* _tmp15_ = NULL;
+ BatchImportJob* _tmp16_ = NULL;
+ FileToPrepare* _tmp17_ = NULL;
+ BatchImportJob* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ FileToPrepare* _tmp21_ = NULL;
+ BatchImportJob* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ ImportResult _tmp25_ = 0;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = file_to_prepare;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = _tmp15_->job;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = file_to_prepare;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = _tmp17_->job;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = batch_import_job_get_dest_identifier (_tmp18_);
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp19_;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = file_to_prepare;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = _tmp21_->job;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = batch_import_job_get_source_identifier (_tmp22_);
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = _tmp23_;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _result_;
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_failure (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp16_, NULL, _tmp20_, _tmp24_, _tmp25_);
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp24_);
+#line 1698 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp20_);
+#line 1701 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (file_to_prepare);
+#line 1701 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 14057 "BatchImport.c"
+ }
+#line 1704 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = file_to_prepare;
+#line 1704 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_->job;
+#line 1704 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _batch_import_job_ref0 (_tmp27_);
+#line 1704 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ job = _tmp28_;
+#line 1705 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = file_to_prepare;
+#line 1705 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _tmp29_->file;
+#line 1705 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 1705 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file = _tmp31_;
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = file_to_prepare;
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _tmp33_->associated;
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp34_ != NULL) {
+#line 14081 "BatchImport.c"
+ FileToPrepare* _tmp35_ = NULL;
+ FileToPrepare* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = file_to_prepare;
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = _tmp35_->associated;
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = _tmp36_->file;
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = _tmp37_;
+#line 14093 "BatchImport.c"
+ } else {
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = NULL;
+#line 14097 "BatchImport.c"
+ }
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = _g_object_ref0 (_tmp32_);
+#line 1706 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ associated = _tmp38_;
+#line 1707 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = file_to_prepare;
+#line 1707 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = _tmp39_->copy_to_library;
+#line 1707 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ copy_to_library = _tmp40_;
+#line 1710 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = file;
+#line 1710 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp41_ == NULL) {
+#line 14113 "BatchImport.c"
+ BatchImportJob* _tmp42_ = NULL;
+ GFile* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+#line 1711 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = job;
+#line 1711 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = prepare_files_job_create_file (self, _tmp42_, &_tmp43_, &_tmp44_);
+#line 1711 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file);
+#line 1711 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file = _tmp43_;
+#line 1711 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ copy_to_library = _tmp44_;
+#line 1711 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp45_) {
+#line 1712 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (associated);
+#line 1712 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file);
+#line 1712 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 1712 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (file_to_prepare);
+#line 1712 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ continue;
+#line 14140 "BatchImport.c"
+ }
+ }
+#line 1715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = associated;
+#line 1715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp47_ == NULL) {
+#line 14147 "BatchImport.c"
+ FileToPrepare* _tmp48_ = NULL;
+ FileToPrepare* _tmp49_ = NULL;
+#line 1715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = file_to_prepare;
+#line 1715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = _tmp48_->associated;
+#line 1715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = _tmp49_ != NULL;
+#line 14156 "BatchImport.c"
+ } else {
+#line 1715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = FALSE;
+#line 14160 "BatchImport.c"
+ }
+#line 1715 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp46_) {
+#line 14164 "BatchImport.c"
+ FileToPrepare* _tmp50_ = NULL;
+ FileToPrepare* _tmp51_ = NULL;
+ BatchImportJob* _tmp52_ = NULL;
+ GFile* _tmp53_ = NULL;
+ gboolean _tmp54_ = FALSE;
+#line 1716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = file_to_prepare;
+#line 1716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = _tmp50_->associated;
+#line 1716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_ = _tmp51_->job;
+#line 1716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepare_files_job_create_file (self, _tmp52_, &_tmp53_, &_tmp54_);
+#line 1716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (associated);
+#line 1716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ associated = _tmp53_;
+#line 1716 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ copy_to_library = _tmp54_;
+#line 14184 "BatchImport.c"
+ }
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp55_ = job;
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp56_ = file;
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57_ = associated;
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58_ = copy_to_library;
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp60_ = prepare_files_job_prepare_file (self, _tmp55_, _tmp56_, _tmp57_, _tmp58_, &_tmp59_);
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file = _tmp59_;
+#line 1720 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp60_;
+#line 1721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp61_ = _result_;
+#line 1721 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp61_ == IMPORT_RESULT_SUCCESS) {
+#line 14206 "BatchImport.c"
+ gint _tmp62_ = 0;
+ GeeArrayList* _tmp63_ = NULL;
+ PreparedFile* _tmp64_ = NULL;
+#line 1722 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp62_ = self->prepared_files;
+#line 1722 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->prepared_files = _tmp62_ + 1;
+#line 1723 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp63_ = list;
+#line 1723 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64_ = prepared_file;
+#line 1723 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp64_);
+#line 14220 "BatchImport.c"
+ } else {
+ BatchImportJob* _tmp65_ = NULL;
+ GFile* _tmp66_ = NULL;
+ BatchImportJob* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ GFile* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ ImportResult _tmp73_ = 0;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp65_ = job;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp66_ = file;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp67_ = job;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp68_ = batch_import_job_get_source_identifier (_tmp67_);
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp69_ = _tmp68_;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp70_ = file;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp71_ = g_file_get_path (_tmp70_);
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp72_ = _tmp71_;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp73_ = _result_;
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_failure (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp65_, _tmp66_, _tmp69_, _tmp72_, _tmp73_);
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp72_);
+#line 1725 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp69_);
+#line 14255 "BatchImport.c"
+ }
+#line 1729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp75_ = list;
+#line 1729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp76_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp77_ = _tmp76_;
+#line 1729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp77_ >= BATCH_IMPORT_REPORT_EVERY_N_PREPARED_FILES) {
+#line 1729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp74_ = TRUE;
+#line 14267 "BatchImport.c"
+ } else {
+ gboolean _tmp78_ = FALSE;
+ GTimer* _tmp79_ = NULL;
+ gdouble _tmp80_ = 0.0;
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp79_ = timer;
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp80_ = g_timer_elapsed (_tmp79_, NULL);
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if ((_tmp80_ * 1000.0) > ((gdouble) BATCH_IMPORT_REPORT_PREPARED_FILES_EVERY_N_MSEC)) {
+#line 14278 "BatchImport.c"
+ GeeArrayList* _tmp81_ = NULL;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp81_ = list;
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp82_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp83_ = _tmp82_;
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp78_ = _tmp83_ > 0;
+#line 14290 "BatchImport.c"
+ } else {
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp78_ = FALSE;
+#line 14294 "BatchImport.c"
+ }
+#line 1730 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp74_ = _tmp78_;
+#line 14298 "BatchImport.c"
+ }
+#line 1729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp74_) {
+#line 14302 "BatchImport.c"
+ PreparedFileCluster* cluster = NULL;
+ GeeArrayList* _tmp84_ = NULL;
+ PreparedFileCluster* _tmp85_ = NULL;
+ GeeArrayList* _tmp86_ = NULL;
+ NotificationCallback _tmp87_ = NULL;
+ void* _tmp87__target = NULL;
+ PreparedFileCluster* _tmp88_ = NULL;
+ GTimer* _tmp89_ = NULL;
+#line 1734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp84_ = list;
+#line 1734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp85_ = prepared_file_cluster_new (_tmp84_);
+#line 1734 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ cluster = _tmp85_;
+#line 1735 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp86_ = gee_array_list_new (TYPE_PREPARED_FILE, (GBoxedCopyFunc) prepared_file_ref, prepared_file_unref, NULL, NULL, NULL);
+#line 1735 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (list);
+#line 1735 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ list = _tmp86_;
+#line 1736 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp87_ = self->priv->notification;
+#line 1736 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp87__target = self->priv->notification_target;
+#line 1736 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp88_ = cluster;
+#line 1736 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_job_notify (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob), _tmp87_, _tmp87__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp88_, TYPE_NOTIFICATION_OBJECT, NotificationObject));
+#line 1737 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp89_ = timer;
+#line 1737 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_timer_start (_tmp89_);
+#line 1729 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _notification_object_unref0 (cluster);
+#line 14337 "BatchImport.c"
+ }
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (associated);
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (file);
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (job);
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _file_to_prepare_unref0 (file_to_prepare);
+#line 14349 "BatchImport.c"
+ }
+#line 1695 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_file_to_prepare_list);
+#line 14353 "BatchImport.c"
+ }
+#line 1741 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp90_ = list;
+#line 1741 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp91_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1741 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp92_ = _tmp91_;
+#line 1741 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp92_ > 0) {
+#line 14363 "BatchImport.c"
+ ImportResult _result_ = 0;
+ ImportResult _tmp93_ = 0;
+ ImportResult _tmp94_ = 0;
+#line 1742 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp93_ = background_import_job_abort_check (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob));
+#line 1742 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp93_;
+#line 1743 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp94_ = _result_;
+#line 1743 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp94_ == IMPORT_RESULT_SUCCESS) {
+#line 14375 "BatchImport.c"
+ NotificationCallback _tmp95_ = NULL;
+ void* _tmp95__target = NULL;
+ GeeArrayList* _tmp96_ = NULL;
+ PreparedFileCluster* _tmp97_ = NULL;
+ PreparedFileCluster* _tmp98_ = NULL;
+#line 1744 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp95_ = self->priv->notification;
+#line 1744 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp95__target = self->priv->notification_target;
+#line 1744 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp96_ = list;
+#line 1744 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp97_ = prepared_file_cluster_new (_tmp96_);
+#line 1744 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp98_ = _tmp97_;
+#line 1744 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_job_notify (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob), _tmp95_, _tmp95__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp98_, TYPE_NOTIFICATION_OBJECT, NotificationObject));
+#line 1744 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _notification_object_unref0 (_tmp98_);
+#line 14395 "BatchImport.c"
+ } else {
+ gint _tmp99_ = 0;
+ GeeArrayList* _tmp100_ = NULL;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ GeeArrayList* _tmp104_ = NULL;
+ gint _tmp105_ = 0;
+ gint _tmp106_ = 0;
+#line 1747 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp99_ = self->prepared_files;
+#line 1747 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp100_ = list;
+#line 1747 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp101_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1747 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp102_ = _tmp101_;
+#line 1747 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp99_ >= _tmp102_, "prepared_files >= list.size");
+#line 1748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp103_ = self->prepared_files;
+#line 1748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp104_ = list;
+#line 1748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp105_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp104_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp106_ = _tmp105_;
+#line 1748 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->prepared_files = _tmp103_ - _tmp106_;
+#line 14425 "BatchImport.c"
+ {
+ GeeArrayList* _prepared_file_list = NULL;
+ GeeArrayList* _tmp107_ = NULL;
+ GeeArrayList* _tmp108_ = NULL;
+ gint _prepared_file_size = 0;
+ GeeArrayList* _tmp109_ = NULL;
+ gint _tmp110_ = 0;
+ gint _tmp111_ = 0;
+ gint _prepared_file_index = 0;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp107_ = list;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp108_ = _g_object_ref0 (_tmp107_);
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_list = _tmp108_;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp109_ = _prepared_file_list;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp110_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp111_ = _tmp110_;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_size = _tmp111_;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_index = -1;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ while (TRUE) {
+#line 14453 "BatchImport.c"
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ PreparedFile* prepared_file = NULL;
+ GeeArrayList* _tmp115_ = NULL;
+ gint _tmp116_ = 0;
+ gpointer _tmp117_ = NULL;
+ PreparedFile* _tmp118_ = NULL;
+ BatchImportJob* _tmp119_ = NULL;
+ PreparedFile* _tmp120_ = NULL;
+ GFile* _tmp121_ = NULL;
+ PreparedFile* _tmp122_ = NULL;
+ BatchImportJob* _tmp123_ = NULL;
+ gchar* _tmp124_ = NULL;
+ gchar* _tmp125_ = NULL;
+ PreparedFile* _tmp126_ = NULL;
+ GFile* _tmp127_ = NULL;
+ gchar* _tmp128_ = NULL;
+ gchar* _tmp129_ = NULL;
+ ImportResult _tmp130_ = 0;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp112_ = _prepared_file_index;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_index = _tmp112_ + 1;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp113_ = _prepared_file_index;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp114_ = _prepared_file_size;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!(_tmp113_ < _tmp114_)) {
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ break;
+#line 14486 "BatchImport.c"
+ }
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp115_ = _prepared_file_list;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp116_ = _prepared_file_index;
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp117_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp115_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp116_);
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file = (PreparedFile*) _tmp117_;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp118_ = prepared_file;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp119_ = _tmp118_->job;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp120_ = prepared_file;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp121_ = _tmp120_->file;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp122_ = prepared_file;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp123_ = _tmp122_->job;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp124_ = batch_import_job_get_source_identifier (_tmp123_);
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp125_ = _tmp124_;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp126_ = prepared_file;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp127_ = _tmp126_->file;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp128_ = g_file_get_path (_tmp127_);
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp129_ = _tmp128_;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp130_ = _result_;
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_failure (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp119_, _tmp121_, _tmp125_, _tmp129_, _tmp130_);
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp129_);
+#line 1751 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp125_);
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 14530 "BatchImport.c"
+ }
+#line 1750 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_prepared_file_list);
+#line 14534 "BatchImport.c"
+ }
+ }
+ }
+#line 1691 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (list);
+#line 1691 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_timer_destroy0 (timer);
+#line 14542 "BatchImport.c"
+}
+
+
+static gboolean prepare_files_job_create_file (PrepareFilesJob* self, BatchImportJob* job, GFile** file, gboolean* copy_to_library) {
+ GFile* _vala_file = NULL;
+ gboolean _vala_copy_to_library = FALSE;
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1760 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_PREPARE_FILES_JOB (self), FALSE);
+#line 1760 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (job), FALSE);
+#line 14555 "BatchImport.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ BatchImportJob* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = job;
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = batch_import_job_prepare (_tmp1_, &_tmp2_, &_tmp3_, &_inner_error_);
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file);
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_file = _tmp2_;
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_copy_to_library = _tmp3_;
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp4_;
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 14576 "BatchImport.c"
+ goto __catch403_g_error;
+ }
+#line 1762 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp0_) {
+#line 14581 "BatchImport.c"
+ BatchImportJob* _tmp5_ = NULL;
+ BatchImportJob* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ BatchImportJob* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = job;
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = job;
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = batch_import_job_get_source_identifier (_tmp6_);
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = _tmp7_;
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = job;
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = batch_import_job_get_dest_identifier (_tmp9_);
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp10_;
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_failure (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp5_, NULL, _tmp8_, _tmp11_, IMPORT_RESULT_FILE_ERROR);
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp11_);
+#line 1763 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp8_);
+#line 1766 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 1766 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (file) {
+#line 1766 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *file = _vala_file;
+#line 14615 "BatchImport.c"
+ } else {
+#line 1766 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file);
+#line 14619 "BatchImport.c"
+ }
+#line 1766 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (copy_to_library) {
+#line 1766 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *copy_to_library = _vala_copy_to_library;
+#line 14625 "BatchImport.c"
+ }
+#line 1766 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 14629 "BatchImport.c"
+ }
+ }
+ goto __finally403;
+ __catch403_g_error:
+ {
+ GError* err = NULL;
+ BatchImportJob* _tmp12_ = NULL;
+ BatchImportJob* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ BatchImportJob* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+#line 1761 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1761 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = job;
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = job;
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = batch_import_job_get_source_identifier (_tmp13_);
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_;
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = job;
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = batch_import_job_get_dest_identifier (_tmp16_);
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = _tmp17_;
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = err;
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_import_job_report_error (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_IMPORT_JOB, BackgroundImportJob), _tmp12_, NULL, _tmp15_, _tmp18_, _tmp19_, IMPORT_RESULT_FILE_ERROR);
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp18_);
+#line 1769 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp15_);
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = FALSE;
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (file) {
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *file = _vala_file;
+#line 14678 "BatchImport.c"
+ } else {
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file);
+#line 14682 "BatchImport.c"
+ }
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (copy_to_library) {
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *copy_to_library = _vala_copy_to_library;
+#line 14688 "BatchImport.c"
+ }
+#line 1772 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 14692 "BatchImport.c"
+ }
+ __finally403:
+#line 1761 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1761 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1761 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1761 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return FALSE;
+#line 14703 "BatchImport.c"
+ }
+#line 1774 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = TRUE;
+#line 1774 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (file) {
+#line 1774 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *file = _vala_file;
+#line 14711 "BatchImport.c"
+ } else {
+#line 1774 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_vala_file);
+#line 14715 "BatchImport.c"
+ }
+#line 1774 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (copy_to_library) {
+#line 1774 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *copy_to_library = _vala_copy_to_library;
+#line 14721 "BatchImport.c"
+ }
+#line 1774 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 14725 "BatchImport.c"
+}
+
+
+static ImportResult prepare_files_job_prepare_file (PrepareFilesJob* self, BatchImportJob* job, GFile* file, GFile* associated_file, gboolean copy_to_library, PreparedFile** prepared_file) {
+ PreparedFile* _vala_prepared_file = NULL;
+ ImportResult result = 0;
+ gboolean is_video = FALSE;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp14_ = 0;
+ gchar* exif_only_md5 = NULL;
+ gchar* thumbnail_md5 = NULL;
+ gchar* full_md5 = NULL;
+ PhotoFileFormat file_format = 0;
+ GFile* _tmp28_ = NULL;
+ PhotoFileFormat _tmp29_ = 0;
+ gboolean _tmp30_ = FALSE;
+ guint64 filesize = 0ULL;
+ gboolean is_in_library_dir = FALSE;
+ GFile* _tmp82_ = NULL;
+ GFile* _tmp83_ = NULL;
+ gboolean _tmp84_ = FALSE;
+ gboolean _tmp85_ = FALSE;
+ gboolean _tmp86_ = FALSE;
+ BatchImportJob* _tmp88_ = NULL;
+ GFile* _tmp89_ = NULL;
+ GFile* _tmp90_ = NULL;
+ BatchImportJob* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ BatchImportJob* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ const gchar* _tmp97_ = NULL;
+ const gchar* _tmp98_ = NULL;
+ const gchar* _tmp99_ = NULL;
+ PhotoFileFormat _tmp100_ = 0;
+ guint64 _tmp101_ = 0ULL;
+ gboolean _tmp102_ = FALSE;
+ PreparedFile* _tmp103_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1777 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_PREPARE_FILES_JOB (self), 0);
+#line 1777 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (job), 0);
+#line 1777 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), 0);
+#line 1777 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((associated_file == NULL) || G_IS_FILE (associated_file), 0);
+#line 1779 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 1779 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_prepared_file = NULL;
+#line 1781 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = file;
+#line 1781 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = video_reader_is_supported_video_file (_tmp0_);
+#line 1781 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ is_video = _tmp1_;
+#line 1783 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = is_video;
+#line 1783 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp3_) {
+#line 14795 "BatchImport.c"
+ GFile* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1783 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = file;
+#line 1783 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = photo_is_file_image (_tmp4_);
+#line 1783 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = !_tmp5_;
+#line 14804 "BatchImport.c"
+ } else {
+#line 1783 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = FALSE;
+#line 14808 "BatchImport.c"
+ }
+#line 1783 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp2_) {
+#line 1784 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_NOT_AN_IMAGE;
+#line 1784 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1784 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 14818 "BatchImport.c"
+ } else {
+#line 1784 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 14822 "BatchImport.c"
+ }
+#line 1784 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 14826 "BatchImport.c"
+ }
+#line 1786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = is_video;
+#line 1786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp7_) {
+#line 14832 "BatchImport.c"
+ GFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 1786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = file;
+#line 1786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = photo_file_format_is_file_supported (_tmp8_);
+#line 1786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = !_tmp9_;
+#line 14841 "BatchImport.c"
+ } else {
+#line 1786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = FALSE;
+#line 14845 "BatchImport.c"
+ }
+#line 1786 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp6_) {
+#line 1787 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_UNSUPPORTED_FORMAT;
+#line 1787 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1787 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 14855 "BatchImport.c"
+ } else {
+#line 1787 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 14859 "BatchImport.c"
+ }
+#line 1787 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 14863 "BatchImport.c"
+ }
+#line 1789 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = self->priv->import_file_count;
+#line 1789 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->import_file_count = _tmp10_ + 1;
+#line 1792 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = self->priv->fail_every;
+#line 1792 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp11_ > 0) {
+#line 14873 "BatchImport.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 1793 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = self->priv->import_file_count;
+#line 1793 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = self->priv->fail_every;
+#line 1793 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if ((_tmp12_ % _tmp13_) == 0) {
+#line 1794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_FILE_ERROR;
+#line 1794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 14888 "BatchImport.c"
+ } else {
+#line 1794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 14892 "BatchImport.c"
+ }
+#line 1794 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 14896 "BatchImport.c"
+ }
+ }
+#line 1798 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = self->priv->skip_every;
+#line 1798 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp14_ > 0) {
+#line 14903 "BatchImport.c"
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 1799 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = self->priv->import_file_count;
+#line 1799 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = self->priv->skip_every;
+#line 1799 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if ((_tmp15_ % _tmp16_) == 0) {
+#line 1800 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_NOT_A_FILE;
+#line 1800 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1800 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 14918 "BatchImport.c"
+ } else {
+#line 1800 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 14922 "BatchImport.c"
+ }
+#line 1800 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 14926 "BatchImport.c"
+ }
+ }
+#line 1803 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ exif_only_md5 = NULL;
+#line 1804 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ thumbnail_md5 = NULL;
+#line 1805 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ full_md5 = NULL;
+#line 14935 "BatchImport.c"
+ {
+ gchar* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = file;
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = md5_file (_tmp18_, &_inner_error_);
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp19_;
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 14949 "BatchImport.c"
+ goto __catch404_g_error;
+ }
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = _tmp17_;
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = NULL;
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1808 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ full_md5 = _tmp20_;
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp17_);
+#line 14962 "BatchImport.c"
+ }
+ goto __finally404;
+ __catch404_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ GError* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ GError* _tmp26_ = NULL;
+ ImportResult _tmp27_ = 0;
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = file;
+#line 1813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = g_file_get_path (_tmp21_);
+#line 1813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = _tmp22_;
+#line 1813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = err;
+#line 1813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _tmp24_->message;
+#line 1813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1813: Unable to perform MD5 checksum on file %s: %s", _tmp23_, _tmp25_);
+#line 1813 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp23_);
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = err;
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = import_result_convert_error (_tmp26_, IMPORT_RESULT_FILE_ERROR);
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp27_;
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 15011 "BatchImport.c"
+ } else {
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 15015 "BatchImport.c"
+ }
+#line 1816 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 15019 "BatchImport.c"
+ }
+ __finally404:
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1807 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return 0;
+#line 15036 "BatchImport.c"
+ }
+#line 1821 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = file;
+#line 1821 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = photo_file_format_get_by_file_extension (_tmp28_);
+#line 1821 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ file_format = _tmp29_;
+#line 1822 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = is_video;
+#line 1822 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!_tmp30_) {
+#line 15048 "BatchImport.c"
+ PhotoFileFormat _tmp31_ = 0;
+ PhotoFileReader* reader = NULL;
+ PhotoFileFormat _tmp35_ = 0;
+ GFile* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ PhotoFileReader* _tmp39_ = NULL;
+ PhotoFileReader* _tmp40_ = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp50_ = NULL;
+#line 1823 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = file_format;
+#line 1823 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp31_ == PHOTO_FILE_FORMAT_UNKNOWN) {
+#line 15063 "BatchImport.c"
+ GFile* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+#line 1824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = file;
+#line 1824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = g_file_get_path (_tmp32_);
+#line 1824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _tmp33_;
+#line 1824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1824: Skipping %s: unrecognized file extension", _tmp34_);
+#line 1824 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp34_);
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_UNSUPPORTED_FORMAT;
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 15089 "BatchImport.c"
+ } else {
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 15093 "BatchImport.c"
+ }
+#line 1826 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 15097 "BatchImport.c"
+ }
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = file_format;
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = file;
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = g_file_get_path (_tmp36_);
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = _tmp37_;
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = photo_file_format_create_reader (_tmp35_, _tmp38_);
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = _tmp39_;
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp38_);
+#line 1828 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ reader = _tmp40_;
+#line 1829 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ metadata = NULL;
+#line 15117 "BatchImport.c"
+ {
+ PhotoMetadata* _tmp41_ = NULL;
+ PhotoFileReader* _tmp42_ = NULL;
+ PhotoMetadata* _tmp43_ = NULL;
+ PhotoMetadata* _tmp44_ = NULL;
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = reader;
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = photo_file_reader_read_metadata (_tmp42_, &_inner_error_);
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = _tmp43_;
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 15131 "BatchImport.c"
+ goto __catch405_g_error;
+ }
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = _tmp41_;
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = NULL;
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _media_metadata_unref0 (metadata);
+#line 1831 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ metadata = _tmp44_;
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _media_metadata_unref0 (_tmp41_);
+#line 15144 "BatchImport.c"
+ }
+ goto __finally405;
+ __catch405_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ GError* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = file;
+#line 1833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = g_file_get_path (_tmp45_);
+#line 1833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = _tmp46_;
+#line 1833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = err;
+#line 1833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = _tmp48_->message;
+#line 1833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1833: Unable to read metadata for %s (%s): continuing" \
+" to attempt import", _tmp47_, _tmp49_);
+#line 1833 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp47_);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 15175 "BatchImport.c"
+ }
+ __finally405:
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _media_metadata_unref0 (metadata);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1830 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return 0;
+#line 15196 "BatchImport.c"
+ }
+#line 1837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = metadata;
+#line 1837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp50_ != NULL) {
+#line 15202 "BatchImport.c"
+ guint8* flattened_sans_thumbnail = NULL;
+ PhotoMetadata* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+ guint8* _tmp53_ = NULL;
+ gint flattened_sans_thumbnail_length1 = 0;
+ gint _flattened_sans_thumbnail_size_ = 0;
+ gboolean _tmp54_ = FALSE;
+ guint8* _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ guint8* flattened_thumbnail = NULL;
+ PhotoMetadata* _tmp60_ = NULL;
+ gint _tmp61_ = 0;
+ guint8* _tmp62_ = NULL;
+ gint flattened_thumbnail_length1 = 0;
+ gint _flattened_thumbnail_size_ = 0;
+ gboolean _tmp63_ = FALSE;
+ guint8* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+#line 1838 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = metadata;
+#line 1838 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_ = photo_metadata_flatten_exif (_tmp51_, FALSE, &_tmp52_);
+#line 1838 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ flattened_sans_thumbnail = _tmp53_;
+#line 1838 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ flattened_sans_thumbnail_length1 = _tmp52_;
+#line 1838 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _flattened_sans_thumbnail_size_ = flattened_sans_thumbnail_length1;
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp55_ = flattened_sans_thumbnail;
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp55__length1 = flattened_sans_thumbnail_length1;
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp55_ != NULL) {
+#line 15237 "BatchImport.c"
+ guint8* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp56_ = flattened_sans_thumbnail;
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp56__length1 = flattened_sans_thumbnail_length1;
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp54_ = _tmp56__length1 > 0;
+#line 15246 "BatchImport.c"
+ } else {
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp54_ = FALSE;
+#line 15250 "BatchImport.c"
+ }
+#line 1839 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp54_) {
+#line 15254 "BatchImport.c"
+ guint8* _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ guint8* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gchar* _tmp59_ = NULL;
+#line 1840 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57_ = flattened_sans_thumbnail;
+#line 1840 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57__length1 = flattened_sans_thumbnail_length1;
+#line 1840 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58_ = flattened_sans_thumbnail;
+#line 1840 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58__length1 = flattened_sans_thumbnail_length1;
+#line 1840 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp59_ = md5_binary (_tmp57_, (gsize) _tmp58__length1);
+#line 1840 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1840 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ exif_only_md5 = _tmp59_;
+#line 15274 "BatchImport.c"
+ }
+#line 1842 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp60_ = metadata;
+#line 1842 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp62_ = photo_metadata_flatten_exif_preview (_tmp60_, &_tmp61_);
+#line 1842 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ flattened_thumbnail = _tmp62_;
+#line 1842 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ flattened_thumbnail_length1 = _tmp61_;
+#line 1842 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _flattened_thumbnail_size_ = flattened_thumbnail_length1;
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64_ = flattened_thumbnail;
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64__length1 = flattened_thumbnail_length1;
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp64_ != NULL) {
+#line 15292 "BatchImport.c"
+ guint8* _tmp65_ = NULL;
+ gint _tmp65__length1 = 0;
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp65_ = flattened_thumbnail;
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp65__length1 = flattened_thumbnail_length1;
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp63_ = _tmp65__length1 > 0;
+#line 15301 "BatchImport.c"
+ } else {
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp63_ = FALSE;
+#line 15305 "BatchImport.c"
+ }
+#line 1843 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp63_) {
+#line 15309 "BatchImport.c"
+ guint8* _tmp66_ = NULL;
+ gint _tmp66__length1 = 0;
+ guint8* _tmp67_ = NULL;
+ gint _tmp67__length1 = 0;
+ gchar* _tmp68_ = NULL;
+#line 1844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp66_ = flattened_thumbnail;
+#line 1844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp66__length1 = flattened_thumbnail_length1;
+#line 1844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp67_ = flattened_thumbnail;
+#line 1844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp67__length1 = flattened_thumbnail_length1;
+#line 1844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp68_ = md5_binary (_tmp66_, (gsize) _tmp67__length1);
+#line 1844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1844 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ thumbnail_md5 = _tmp68_;
+#line 15329 "BatchImport.c"
+ }
+#line 1837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ flattened_thumbnail = (g_free (flattened_thumbnail), NULL);
+#line 1837 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ flattened_sans_thumbnail = (g_free (flattened_sans_thumbnail), NULL);
+#line 15335 "BatchImport.c"
+ }
+#line 1822 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _media_metadata_unref0 (metadata);
+#line 1822 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 15341 "BatchImport.c"
+ }
+#line 1848 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ filesize = (guint64) 0;
+#line 15345 "BatchImport.c"
+ {
+ guint64 _tmp69_ = 0ULL;
+ GFile* _tmp70_ = NULL;
+ GCancellable* _tmp71_ = NULL;
+ GCancellable* _tmp72_ = NULL;
+ guint64 _tmp73_ = 0ULL;
+ guint64 _tmp74_ = 0ULL;
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp70_ = file;
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp71_ = background_job_get_cancellable (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp72_ = _tmp71_;
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp73_ = query_total_file_size (_tmp70_, _tmp72_, &_inner_error_);
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp74_ = _tmp73_;
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp72_);
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp69_ = _tmp74_;
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 15369 "BatchImport.c"
+ goto __catch406_g_error;
+ }
+#line 1850 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ filesize = _tmp69_;
+#line 15374 "BatchImport.c"
+ }
+ goto __finally406;
+ __catch406_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ GError* _tmp78_ = NULL;
+ const gchar* _tmp79_ = NULL;
+ GError* _tmp80_ = NULL;
+ ImportResult _tmp81_ = 0;
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1852 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp75_ = file;
+#line 1852 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp76_ = g_file_get_path (_tmp75_);
+#line 1852 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp77_ = _tmp76_;
+#line 1852 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp78_ = err;
+#line 1852 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp79_ = _tmp78_->message;
+#line 1852 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1852: Unable to query file size of %s: %s", _tmp77_, _tmp79_);
+#line 1852 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp77_);
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp80_ = err;
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp81_ = import_result_convert_error (_tmp80_, IMPORT_RESULT_FILE_ERROR);
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp81_;
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 15423 "BatchImport.c"
+ } else {
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 15427 "BatchImport.c"
+ }
+#line 1854 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 15431 "BatchImport.c"
+ }
+ __finally406:
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1849 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return 0;
+#line 15448 "BatchImport.c"
+ }
+#line 1858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp82_ = file;
+#line 1858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp83_ = self->priv->library_dir;
+#line 1858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp84_ = g_file_has_prefix (_tmp82_, _tmp83_);
+#line 1858 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ is_in_library_dir = _tmp84_;
+#line 1862 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp86_ = copy_to_library;
+#line 1862 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp86_) {
+#line 15462 "BatchImport.c"
+ gboolean _tmp87_ = FALSE;
+#line 1862 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp87_ = is_in_library_dir;
+#line 1862 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp85_ = !_tmp87_;
+#line 15468 "BatchImport.c"
+ } else {
+#line 1862 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp85_ = FALSE;
+#line 15472 "BatchImport.c"
+ }
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp88_ = job;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp89_ = file;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp90_ = associated_file;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp91_ = job;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp92_ = batch_import_job_get_source_identifier (_tmp91_);
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp93_ = _tmp92_;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp94_ = job;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp95_ = batch_import_job_get_dest_identifier (_tmp94_);
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp96_ = _tmp95_;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp97_ = exif_only_md5;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp98_ = thumbnail_md5;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp99_ = full_md5;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp100_ = file_format;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp101_ = filesize;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp102_ = is_video;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp103_ = prepared_file_new (_tmp88_, _tmp89_, _tmp90_, _tmp93_, _tmp96_, _tmp85_, _tmp97_, _tmp98_, _tmp99_, _tmp100_, _tmp101_, _tmp102_);
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_prepared_file = _tmp103_;
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp96_);
+#line 1861 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp93_);
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (full_md5);
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (thumbnail_md5);
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (exif_only_md5);
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (prepared_file) {
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *prepared_file = _vala_prepared_file;
+#line 15526 "BatchImport.c"
+ } else {
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (_vala_prepared_file);
+#line 15530 "BatchImport.c"
+ }
+#line 1865 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 15534 "BatchImport.c"
+}
+
+
+static void prepare_files_job_class_init (PrepareFilesJobClass * klass) {
+#line 1658 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepare_files_job_parent_class = g_type_class_peek_parent (klass);
+#line 1658 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->finalize = prepare_files_job_finalize;
+#line 1658 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_class_add_private (klass, sizeof (PrepareFilesJobPrivate));
+#line 1658 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->execute = prepare_files_job_real_execute;
+#line 15547 "BatchImport.c"
+}
+
+
+static void prepare_files_job_instance_init (PrepareFilesJob * self) {
+#line 1658 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv = PREPARE_FILES_JOB_GET_PRIVATE (self);
+#line 1660 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->prepared_files = 0;
+#line 1667 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->import_file_count = 0;
+#line 1668 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->fail_every = 0;
+#line 1669 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->skip_every = 0;
+#line 15562 "BatchImport.c"
+}
+
+
+static void prepare_files_job_finalize (BackgroundJob* obj) {
+ PrepareFilesJob * self;
+#line 1658 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PREPARE_FILES_JOB, PrepareFilesJob);
+#line 1662 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->files_to_prepare);
+#line 1664 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->priv->library_dir);
+#line 1658 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BACKGROUND_JOB_CLASS (prepare_files_job_parent_class)->finalize (obj);
+#line 15576 "BatchImport.c"
+}
+
+
+GType prepare_files_job_get_type (void) {
+ static volatile gsize prepare_files_job_type_id__volatile = 0;
+ if (g_once_init_enter (&prepare_files_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PrepareFilesJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prepare_files_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PrepareFilesJob), 0, (GInstanceInitFunc) prepare_files_job_instance_init, NULL };
+ GType prepare_files_job_type_id;
+ prepare_files_job_type_id = g_type_register_static (TYPE_BACKGROUND_IMPORT_JOB, "PrepareFilesJob", &g_define_type_info, 0);
+ g_once_init_leave (&prepare_files_job_type_id__volatile, prepare_files_job_type_id);
+ }
+ return prepare_files_job_type_id__volatile;
+}
+
+
+static gpointer _prepared_file_ref0 (gpointer self) {
+#line 1886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? prepared_file_ref (self) : NULL;
+#line 15595 "BatchImport.c"
+}
+
+
+static gpointer _batch_import_result_ref0 (gpointer self) {
+#line 1887 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? batch_import_result_ref (self) : NULL;
+#line 15602 "BatchImport.c"
+}
+
+
+static gpointer _video_import_params_ref0 (gpointer self) {
+#line 1888 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? video_import_params_ref (self) : NULL;
+#line 15609 "BatchImport.c"
+}
+
+
+static gpointer _photo_import_params_ref0 (gpointer self) {
+#line 1889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? photo_import_params_ref (self) : NULL;
+#line 15616 "BatchImport.c"
+}
+
+
+ReadyForImport* ready_for_import_construct (GType object_type, GFile* final_file, PreparedFile* prepared_file, PhotoImportParams* photo_import_params, VideoImportParams* video_import_params, BatchImportResult* batch_result) {
+ ReadyForImport* self = NULL;
+ PreparedFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ PreparedFile* _tmp10_ = NULL;
+ PreparedFile* _tmp11_ = NULL;
+ BatchImportResult* _tmp12_ = NULL;
+ BatchImportResult* _tmp13_ = NULL;
+ VideoImportParams* _tmp14_ = NULL;
+ VideoImportParams* _tmp15_ = NULL;
+ PhotoImportParams* _tmp16_ = NULL;
+ PhotoImportParams* _tmp17_ = NULL;
+ PreparedFile* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_FILE (final_file), NULL);
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_PREPARED_FILE (prepared_file), NULL);
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((photo_import_params == NULL) || IS_PHOTO_IMPORT_PARAMS (photo_import_params), NULL);
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail ((video_import_params == NULL) || IS_VIDEO_IMPORT_PARAMS (video_import_params), NULL);
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_RESULT (batch_result), NULL);
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (ReadyForImport*) g_type_create_instance (object_type);
+#line 1880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = prepared_file;
+#line 1880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _tmp0_->is_video;
+#line 1880 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_) {
+#line 15654 "BatchImport.c"
+ gboolean _tmp2_ = FALSE;
+ VideoImportParams* _tmp3_ = NULL;
+#line 1881 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = video_import_params;
+#line 1881 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp3_ != NULL) {
+#line 15661 "BatchImport.c"
+ PhotoImportParams* _tmp4_ = NULL;
+#line 1881 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = photo_import_params;
+#line 1881 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = _tmp4_ == NULL;
+#line 15667 "BatchImport.c"
+ } else {
+#line 1881 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = FALSE;
+#line 15671 "BatchImport.c"
+ }
+#line 1881 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp2_, "(video_import_params != null) && (photo_import_params == null)");
+#line 15675 "BatchImport.c"
+ } else {
+ gboolean _tmp5_ = FALSE;
+ VideoImportParams* _tmp6_ = NULL;
+#line 1883 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = video_import_params;
+#line 1883 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp6_ == NULL) {
+#line 15683 "BatchImport.c"
+ PhotoImportParams* _tmp7_ = NULL;
+#line 1883 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = photo_import_params;
+#line 1883 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp7_ != NULL;
+#line 15689 "BatchImport.c"
+ } else {
+#line 1883 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = FALSE;
+#line 15693 "BatchImport.c"
+ }
+#line 1883 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp5_, "(video_import_params == null) && (photo_import_params != null)");
+#line 15697 "BatchImport.c"
+ }
+#line 1885 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = final_file;
+#line 1885 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 1885 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->final_file);
+#line 1885 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->final_file = _tmp9_;
+#line 1886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = prepared_file;
+#line 1886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _prepared_file_ref0 (_tmp10_);
+#line 1886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (self->prepared_file);
+#line 1886 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->prepared_file = _tmp11_;
+#line 1887 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = batch_result;
+#line 1887 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _batch_import_result_ref0 (_tmp12_);
+#line 1887 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->batch_result);
+#line 1887 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->batch_result = _tmp13_;
+#line 1888 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = video_import_params;
+#line 1888 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _video_import_params_ref0 (_tmp14_);
+#line 1888 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_import_params_unref0 (self->video_import_params);
+#line 1888 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->video_import_params = _tmp15_;
+#line 1889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = photo_import_params;
+#line 1889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _photo_import_params_ref0 (_tmp16_);
+#line 1889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_import_params_unref0 (self->photo_import_params);
+#line 1889 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->photo_import_params = _tmp17_;
+#line 1890 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = prepared_file;
+#line 1890 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = _tmp18_->is_video;
+#line 1890 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->is_video = _tmp19_;
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 15747 "BatchImport.c"
+}
+
+
+ReadyForImport* ready_for_import_new (GFile* final_file, PreparedFile* prepared_file, PhotoImportParams* photo_import_params, VideoImportParams* video_import_params, BatchImportResult* batch_result) {
+#line 1877 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return ready_for_import_construct (TYPE_READY_FOR_IMPORT, final_file, prepared_file, photo_import_params, video_import_params, batch_result);
+#line 15754 "BatchImport.c"
+}
+
+
+BatchImportResult* ready_for_import_abort (ReadyForImport* self) {
+ BatchImportResult* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ PreparedFile* _tmp14_ = NULL;
+ BatchImportJob* _tmp15_ = NULL;
+ PreparedFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ PreparedFile* _tmp18_ = NULL;
+ BatchImportJob* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ PreparedFile* _tmp22_ = NULL;
+ BatchImportJob* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ BatchImportResult* _tmp26_ = NULL;
+ BatchImportResult* _tmp27_ = NULL;
+ BatchImportResult* _tmp28_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1893 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_READY_FOR_IMPORT (self), NULL);
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->final_file;
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ != NULL) {
+#line 15784 "BatchImport.c"
+ GFile* _tmp2_ = NULL;
+ PreparedFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->final_file;
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = self->prepared_file;
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _tmp3_->file;
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp2_ != _tmp4_;
+#line 15796 "BatchImport.c"
+ } else {
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = FALSE;
+#line 15800 "BatchImport.c"
+ }
+#line 1895 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp0_) {
+#line 15804 "BatchImport.c"
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1896 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = self->final_file;
+#line 1896 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 1896 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_;
+#line 1896 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:1896: Deleting aborted import copy %s", _tmp7_);
+#line 1896 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp7_);
+#line 15818 "BatchImport.c"
+ {
+ GFile* _tmp8_ = NULL;
+#line 1898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = self->final_file;
+#line 1898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_file_delete (_tmp8_, NULL, &_inner_error_);
+#line 1898 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 15827 "BatchImport.c"
+ goto __catch407_g_error;
+ }
+ }
+ goto __finally407;
+ __catch407_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GError* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 1897 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1897 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = self->final_file;
+#line 1900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = g_file_get_path (_tmp9_);
+#line 1900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = _tmp10_;
+#line 1900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = err;
+#line 1900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = _tmp12_->message;
+#line 1900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1900: Unable to delete copy of imported file (aborted" \
+" import) %s: %s", _tmp11_, _tmp13_);
+#line 1900 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp11_);
+#line 1897 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 15860 "BatchImport.c"
+ }
+ __finally407:
+#line 1897 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1897 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1897 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1897 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 15871 "BatchImport.c"
+ }
+ }
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = self->prepared_file;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = _tmp14_->job;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = self->prepared_file;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_->file;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = self->prepared_file;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = _tmp18_->job;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = batch_import_job_get_source_identifier (_tmp19_);
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = _tmp20_;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = self->prepared_file;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = _tmp22_->job;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = batch_import_job_get_dest_identifier (_tmp23_);
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _tmp24_;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = batch_import_result_new (_tmp15_, _tmp17_, _tmp21_, _tmp25_, NULL, IMPORT_RESULT_USER_ABORT);
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->batch_result);
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->batch_result = _tmp26_;
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp25_);
+#line 1905 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp21_);
+#line 1909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = self->batch_result;
+#line 1909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = _batch_import_result_ref0 (_tmp27_);
+#line 1909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp28_;
+#line 1909 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 15916 "BatchImport.c"
+}
+
+
+static gpointer _thumbnails_ref0 (gpointer self) {
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self ? thumbnails_ref (self) : NULL;
+#line 15923 "BatchImport.c"
+}
+
+
+Thumbnails* ready_for_import_get_thumbnails (ReadyForImport* self) {
+ Thumbnails* result = NULL;
+ Thumbnails* _tmp0_ = NULL;
+ PhotoImportParams* _tmp1_ = NULL;
+ Thumbnails* _tmp6_ = NULL;
+#line 1912 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_READY_FOR_IMPORT (self), NULL);
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = self->photo_import_params;
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp1_ != NULL) {
+#line 15938 "BatchImport.c"
+ PhotoImportParams* _tmp2_ = NULL;
+ Thumbnails* _tmp3_ = NULL;
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->photo_import_params;
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _tmp2_->thumbnails;
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp3_;
+#line 15947 "BatchImport.c"
+ } else {
+ VideoImportParams* _tmp4_ = NULL;
+ Thumbnails* _tmp5_ = NULL;
+#line 1914 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->video_import_params;
+#line 1914 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_->thumbnails;
+#line 1914 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = _tmp5_;
+#line 15957 "BatchImport.c"
+ }
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _thumbnails_ref0 (_tmp0_);
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ result = _tmp6_;
+#line 1913 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return result;
+#line 15965 "BatchImport.c"
+}
+
+
+static void value_ready_for_import_init (GValue* value) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 15972 "BatchImport.c"
+}
+
+
+static void value_ready_for_import_free_value (GValue* value) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ready_for_import_unref (value->data[0].v_pointer);
+#line 15981 "BatchImport.c"
+ }
+}
+
+
+static void value_ready_for_import_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = ready_for_import_ref (src_value->data[0].v_pointer);
+#line 15991 "BatchImport.c"
+ } else {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 15995 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_ready_for_import_peek_pointer (const GValue* value) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 16003 "BatchImport.c"
+}
+
+
+static gchar* value_ready_for_import_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 16010 "BatchImport.c"
+ ReadyForImport* object;
+ object = collect_values[0].v_pointer;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 16017 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 16021 "BatchImport.c"
+ }
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = ready_for_import_ref (object);
+#line 16025 "BatchImport.c"
+ } else {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 16029 "BatchImport.c"
+ }
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 16033 "BatchImport.c"
+}
+
+
+static gchar* value_ready_for_import_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ReadyForImport** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 16044 "BatchImport.c"
+ }
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 16050 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 16054 "BatchImport.c"
+ } else {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = ready_for_import_ref (value->data[0].v_pointer);
+#line 16058 "BatchImport.c"
+ }
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 16062 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_ready_for_import (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecReadyForImport* spec;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_READY_FOR_IMPORT), NULL);
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 16076 "BatchImport.c"
+}
+
+
+gpointer value_get_ready_for_import (const GValue* value) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_READY_FOR_IMPORT), NULL);
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 16085 "BatchImport.c"
+}
+
+
+void value_set_ready_for_import (GValue* value, gpointer v_object) {
+ ReadyForImport* old;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_READY_FOR_IMPORT));
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_READY_FOR_IMPORT));
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ready_for_import_ref (value->data[0].v_pointer);
+#line 16105 "BatchImport.c"
+ } else {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 16109 "BatchImport.c"
+ }
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ready_for_import_unref (old);
+#line 16115 "BatchImport.c"
+ }
+}
+
+
+void value_take_ready_for_import (GValue* value, gpointer v_object) {
+ ReadyForImport* old;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_READY_FOR_IMPORT));
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_READY_FOR_IMPORT));
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 16134 "BatchImport.c"
+ } else {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 16138 "BatchImport.c"
+ }
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ready_for_import_unref (old);
+#line 16144 "BatchImport.c"
+ }
+}
+
+
+static void ready_for_import_class_init (ReadyForImportClass * klass) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ready_for_import_parent_class = g_type_class_peek_parent (klass);
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((ReadyForImportClass *) klass)->finalize = ready_for_import_finalize;
+#line 16154 "BatchImport.c"
+}
+
+
+static void ready_for_import_instance_init (ReadyForImport * self) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 16161 "BatchImport.c"
+}
+
+
+static void ready_for_import_finalize (ReadyForImport* obj) {
+ ReadyForImport * self;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_READY_FOR_IMPORT, ReadyForImport);
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 1870 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->final_file);
+#line 1871 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (self->prepared_file);
+#line 1872 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_import_params_unref0 (self->photo_import_params);
+#line 1873 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_import_params_unref0 (self->video_import_params);
+#line 1874 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->batch_result);
+#line 16181 "BatchImport.c"
+}
+
+
+GType ready_for_import_get_type (void) {
+ static volatile gsize ready_for_import_type_id__volatile = 0;
+ if (g_once_init_enter (&ready_for_import_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_ready_for_import_init, value_ready_for_import_free_value, value_ready_for_import_copy_value, value_ready_for_import_peek_pointer, "p", value_ready_for_import_collect_value, "p", value_ready_for_import_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ReadyForImportClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) ready_for_import_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadyForImport), 0, (GInstanceInitFunc) ready_for_import_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType ready_for_import_type_id;
+ ready_for_import_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ReadyForImport", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&ready_for_import_type_id__volatile, ready_for_import_type_id);
+ }
+ return ready_for_import_type_id__volatile;
+}
+
+
+gpointer ready_for_import_ref (gpointer instance) {
+ ReadyForImport* self;
+ self = instance;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 16206 "BatchImport.c"
+}
+
+
+void ready_for_import_unref (gpointer instance) {
+ ReadyForImport* self;
+ self = instance;
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ READY_FOR_IMPORT_GET_CLASS (self)->finalize (self);
+#line 1869 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 16219 "BatchImport.c"
+ }
+}
+
+
+PreparedFileImportJob* prepared_file_import_job_construct (GType object_type, BatchImport* owner, PreparedFile* prepared_file, ImportID* import_id, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target) {
+ PreparedFileImportJob* self = NULL;
+ BatchImport* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GCancellable* _tmp2_ = NULL;
+ CancellationCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ ImportID _tmp4_ = {0};
+ PreparedFile* _tmp5_ = NULL;
+ PreparedFile* _tmp6_ = NULL;
+#line 1925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (owner), NULL);
+#line 1925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_PREPARED_FILE (prepared_file), NULL);
+#line 1925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (import_id != NULL, NULL);
+#line 1925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 1927 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = owner;
+#line 1927 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = callback;
+#line 1927 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1__target = callback_target;
+#line 1927 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = cancellable;
+#line 1927 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = cancellation;
+#line 1927 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3__target = cancellation_target;
+#line 1927 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (PreparedFileImportJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _tmp1_, _tmp1__target, _tmp2_, _tmp3_, _tmp3__target, NULL);
+#line 1929 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = *import_id;
+#line 1929 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv->import_id = _tmp4_;
+#line 1930 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = prepared_file;
+#line 1930 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _prepared_file_ref0 (_tmp5_);
+#line 1930 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (self->not_ready);
+#line 1930 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->not_ready = _tmp6_;
+#line 1932 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_job_set_completion_priority (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob), G_PRIORITY_LOW);
+#line 1925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 16273 "BatchImport.c"
+}
+
+
+PreparedFileImportJob* prepared_file_import_job_new (BatchImport* owner, PreparedFile* prepared_file, ImportID* import_id, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target) {
+#line 1925 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return prepared_file_import_job_construct (TYPE_PREPARED_FILE_IMPORT_JOB, owner, prepared_file, import_id, callback, callback_target, cancellable, cancellation, cancellation_target);
+#line 16280 "BatchImport.c"
+}
+
+
+static void prepared_file_import_job_real_execute (BackgroundJob* base) {
+ PreparedFileImportJob * self;
+ PreparedFile* prepared_file = NULL;
+ PreparedFile* _tmp0_ = NULL;
+ PreparedFile* _tmp1_ = NULL;
+ GFile* final_file = NULL;
+ PreparedFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* final_associated_file = NULL;
+ PreparedFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ PreparedFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GFile* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ ImportResult _result_ = 0;
+ VideoImportParams* video_import_params = NULL;
+ PhotoImportParams* photo_import_params = NULL;
+ PreparedFile* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ gboolean _tmp82_ = FALSE;
+ ImportResult _tmp83_ = 0;
+ BatchImportResult* batch_result = NULL;
+ PreparedFile* _tmp96_ = NULL;
+ BatchImportJob* _tmp97_ = NULL;
+ GFile* _tmp98_ = NULL;
+ GFile* _tmp99_ = NULL;
+ gchar* _tmp100_ = NULL;
+ gchar* _tmp101_ = NULL;
+ GFile* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+ gchar* _tmp104_ = NULL;
+ ImportResult _tmp105_ = 0;
+ BatchImportResult* _tmp106_ = NULL;
+ BatchImportResult* _tmp107_ = NULL;
+ BatchImportResult* _tmp108_ = NULL;
+ ImportResult _tmp109_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1935 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJob);
+#line 1936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->not_ready;
+#line 1936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _prepared_file_ref0 (_tmp0_);
+#line 1936 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file = _tmp1_;
+#line 1937 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (self->not_ready);
+#line 1937 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->not_ready = NULL;
+#line 1939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = prepared_file;
+#line 1939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _tmp2_->file;
+#line 1939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 1939 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ final_file = _tmp4_;
+#line 1940 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = prepared_file;
+#line 1940 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = _tmp5_->associated_file;
+#line 1940 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 1940 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ final_associated_file = _tmp7_;
+#line 1942 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = prepared_file;
+#line 1942 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = _tmp8_->copy_to_library;
+#line 1942 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp9_) {
+#line 16359 "BatchImport.c"
+ {
+ GFile* _tmp10_ = NULL;
+ PreparedFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp29_ = NULL;
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp11_ = prepared_file;
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp12_ = _tmp11_->file;
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp13_ = library_files_duplicate (_tmp12_, NULL, NULL, TRUE, &_inner_error_);
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = _tmp13_;
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 16378 "BatchImport.c"
+ goto __catch408_g_error;
+ }
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp14_ = _tmp10_;
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = NULL;
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_file);
+#line 1945 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ final_file = _tmp14_;
+#line 1946 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp15_ = final_file;
+#line 1946 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp15_ == NULL) {
+#line 16393 "BatchImport.c"
+ PreparedFile* _tmp16_ = NULL;
+ BatchImportJob* _tmp17_ = NULL;
+ PreparedFile* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ PreparedFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ PreparedFile* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ BatchImportResult* _tmp28_ = NULL;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp16_ = prepared_file;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp17_ = _tmp16_->job;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp18_ = prepared_file;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp19_ = _tmp18_->file;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp20_ = prepared_file;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp21_ = _tmp20_->file;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp22_ = g_file_get_path (_tmp21_);
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp23_ = _tmp22_;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp24_ = prepared_file;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp25_ = _tmp24_->file;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp26_ = g_file_get_path (_tmp25_);
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp27_ = _tmp26_;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp28_ = batch_import_result_new (_tmp17_, _tmp19_, _tmp23_, _tmp27_, NULL, IMPORT_RESULT_FILE_ERROR);
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->failed);
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->failed = _tmp28_;
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp27_);
+#line 1947 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp23_);
+#line 1951 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1951 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_associated_file);
+#line 1951 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_file);
+#line 1951 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 1951 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 16451 "BatchImport.c"
+ }
+#line 1955 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp29_ = final_associated_file;
+#line 1955 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp29_ != NULL) {
+#line 16457 "BatchImport.c"
+ GFile* _tmp30_ = NULL;
+ PreparedFile* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp31_ = prepared_file;
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp32_ = _tmp31_->associated_file;
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp33_ = library_files_duplicate (_tmp32_, NULL, NULL, TRUE, &_inner_error_);
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = _tmp33_;
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp10_);
+#line 16475 "BatchImport.c"
+ goto __catch408_g_error;
+ }
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp34_ = _tmp30_;
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp30_ = NULL;
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_associated_file);
+#line 1956 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ final_associated_file = _tmp34_;
+#line 1955 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp30_);
+#line 16488 "BatchImport.c"
+ }
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (_tmp10_);
+#line 16492 "BatchImport.c"
+ }
+ goto __finally408;
+ __catch408_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp35_ = NULL;
+ GFile* _tmp36_ = NULL;
+ gchar* filename = NULL;
+ gchar* _tmp42_ = NULL;
+ PreparedFile* _tmp43_ = NULL;
+ BatchImportJob* _tmp44_ = NULL;
+ PreparedFile* _tmp45_ = NULL;
+ GFile* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ GError* _tmp49_ = NULL;
+ BatchImportResult* _tmp50_ = NULL;
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp36_ = final_file;
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp36_ != NULL) {
+#line 16518 "BatchImport.c"
+ GFile* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp37_ = final_file;
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp38_ = g_file_get_path (_tmp37_);
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp35_);
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = _tmp38_;
+#line 16529 "BatchImport.c"
+ } else {
+ PreparedFile* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp39_ = prepared_file;
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp40_ = _tmp39_->source_id;
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp41_ = g_strdup (_tmp40_);
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp35_);
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp35_ = _tmp41_;
+#line 16544 "BatchImport.c"
+ }
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp42_ = g_strdup (_tmp35_);
+#line 1959 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ filename = _tmp42_;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp43_ = prepared_file;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp44_ = _tmp43_->job;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp45_ = prepared_file;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp46_ = _tmp45_->file;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp47_ = filename;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp48_ = filename;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp49_ = err;
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp50_ = batch_import_result_new_from_error (_tmp44_, _tmp46_, _tmp47_, _tmp48_, _tmp49_, IMPORT_RESULT_FILE_ERROR);
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->failed);
+#line 1960 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->failed = _tmp50_;
+#line 1963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (filename);
+#line 1963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp35_);
+#line 1963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 1963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_associated_file);
+#line 1963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_file);
+#line 1963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 1963 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 16584 "BatchImport.c"
+ }
+ __finally408:
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_associated_file);
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_file);
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1943 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 16601 "BatchImport.c"
+ }
+ }
+#line 1967 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp51_ = final_file;
+#line 1967 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp52_ = g_file_get_path (_tmp51_);
+#line 1967 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp53_ = _tmp52_;
+#line 1967 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:1967: Importing %s", _tmp53_);
+#line 1967 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp53_);
+#line 1969 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = IMPORT_RESULT_SUCCESS;
+#line 1970 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ video_import_params = NULL;
+#line 1971 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo_import_params = NULL;
+#line 1972 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp54_ = prepared_file;
+#line 1972 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp55_ = _tmp54_->is_video;
+#line 1972 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp55_) {
+#line 16626 "BatchImport.c"
+ GFile* _tmp56_ = NULL;
+ ImportID _tmp57_ = {0};
+ PreparedFile* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ Thumbnails* _tmp60_ = NULL;
+ Thumbnails* _tmp61_ = NULL;
+ PreparedFile* _tmp62_ = NULL;
+ BatchImportJob* _tmp63_ = NULL;
+ time_t _tmp64_ = 0;
+ VideoImportParams* _tmp65_ = NULL;
+ VideoImportParams* _tmp66_ = NULL;
+ ImportResult _tmp67_ = 0;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp56_ = final_file;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp57_ = self->priv->import_id;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp58_ = prepared_file;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp59_ = _tmp58_->full_md5;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp60_ = thumbnails_new ();
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp61_ = _tmp60_;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp62_ = prepared_file;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp63_ = _tmp62_->job;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp64_ = batch_import_job_get_exposure_time_override (_tmp63_);
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp65_ = video_import_params_new (_tmp56_, &_tmp57_, _tmp59_, _tmp61_, _tmp64_);
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_import_params_unref0 (video_import_params);
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ video_import_params = _tmp65_;
+#line 1973 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _thumbnails_unref0 (_tmp61_);
+#line 1977 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp66_ = video_import_params;
+#line 1977 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp67_ = video_reader_prepare_for_import (_tmp66_);
+#line 1977 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp67_;
+#line 16671 "BatchImport.c"
+ } else {
+ GFile* _tmp68_ = NULL;
+ GFile* _tmp69_ = NULL;
+ ImportID _tmp70_ = {0};
+ PreparedFile* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ PreparedFile* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ PreparedFile* _tmp75_ = NULL;
+ const gchar* _tmp76_ = NULL;
+ Thumbnails* _tmp77_ = NULL;
+ Thumbnails* _tmp78_ = NULL;
+ PhotoImportParams* _tmp79_ = NULL;
+ PhotoImportParams* _tmp80_ = NULL;
+ ImportResult _tmp81_ = 0;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp68_ = final_file;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp69_ = final_associated_file;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp70_ = self->priv->import_id;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp71_ = prepared_file;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp72_ = _tmp71_->exif_md5;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp73_ = prepared_file;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp74_ = _tmp73_->thumbnail_md5;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp75_ = prepared_file;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp76_ = _tmp75_->full_md5;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp77_ = thumbnails_new ();
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp78_ = _tmp77_;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp79_ = photo_import_params_new (_tmp68_, _tmp69_, &_tmp70_, PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL, _tmp72_, _tmp74_, _tmp76_, _tmp78_);
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_import_params_unref0 (photo_import_params);
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ photo_import_params = _tmp79_;
+#line 1979 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _thumbnails_unref0 (_tmp78_);
+#line 1983 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp80_ = photo_import_params;
+#line 1983 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp81_ = photo_prepare_for_import (_tmp80_);
+#line 1983 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _result_ = _tmp81_;
+#line 16723 "BatchImport.c"
+ }
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp83_ = _result_;
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp83_ != IMPORT_RESULT_SUCCESS) {
+#line 16729 "BatchImport.c"
+ GFile* _tmp84_ = NULL;
+ PreparedFile* _tmp85_ = NULL;
+ GFile* _tmp86_ = NULL;
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp84_ = final_file;
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp85_ = prepared_file;
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp86_ = _tmp85_->file;
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp82_ = _tmp84_ != _tmp86_;
+#line 16741 "BatchImport.c"
+ } else {
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp82_ = FALSE;
+#line 16745 "BatchImport.c"
+ }
+#line 1986 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp82_) {
+#line 16749 "BatchImport.c"
+ GFile* _tmp87_ = NULL;
+ gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+#line 1987 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp87_ = final_file;
+#line 1987 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp88_ = g_file_get_path (_tmp87_);
+#line 1987 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp89_ = _tmp88_;
+#line 1987 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_debug ("BatchImport.vala:1987: Deleting failed imported copy %s", _tmp89_);
+#line 1987 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp89_);
+#line 16763 "BatchImport.c"
+ {
+ GFile* _tmp90_ = NULL;
+#line 1989 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp90_ = final_file;
+#line 1989 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_file_delete (_tmp90_, NULL, &_inner_error_);
+#line 1989 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 16772 "BatchImport.c"
+ goto __catch409_g_error;
+ }
+ }
+ goto __finally409;
+ __catch409_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ GError* _tmp94_ = NULL;
+ const gchar* _tmp95_ = NULL;
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 1992 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp91_ = final_file;
+#line 1992 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp92_ = g_file_get_path (_tmp91_);
+#line 1992 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp93_ = _tmp92_;
+#line 1992 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp94_ = err;
+#line 1992 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp95_ = _tmp94_->message;
+#line 1992 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_warning ("BatchImport.vala:1992: Unable to delete copy of imported file %s: %s", _tmp93_, _tmp95_);
+#line 1992 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp93_);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 16805 "BatchImport.c"
+ }
+ __finally409:
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_import_params_unref0 (photo_import_params);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_import_params_unref0 (video_import_params);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_associated_file);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_file);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 1988 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 16826 "BatchImport.c"
+ }
+ }
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp96_ = prepared_file;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp97_ = _tmp96_->job;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp98_ = final_file;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp99_ = final_file;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp100_ = g_file_get_path (_tmp99_);
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp101_ = _tmp100_;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp102_ = final_file;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp103_ = g_file_get_path (_tmp102_);
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp104_ = _tmp103_;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp105_ = _result_;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp106_ = batch_import_result_new (_tmp97_, _tmp98_, _tmp101_, _tmp104_, NULL, _tmp105_);
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp107_ = _tmp106_;
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp104_);
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_free0 (_tmp101_);
+#line 1997 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ batch_result = _tmp107_;
+#line 1999 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp108_ = batch_result;
+#line 1999 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp109_ = _tmp108_->result;
+#line 1999 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (_tmp109_ != IMPORT_RESULT_SUCCESS) {
+#line 16865 "BatchImport.c"
+ BatchImportResult* _tmp110_ = NULL;
+ BatchImportResult* _tmp111_ = NULL;
+#line 2000 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp110_ = batch_result;
+#line 2000 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp111_ = _batch_import_result_ref0 (_tmp110_);
+#line 2000 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->failed);
+#line 2000 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->failed = _tmp111_;
+#line 16876 "BatchImport.c"
+ } else {
+ GFile* _tmp112_ = NULL;
+ PreparedFile* _tmp113_ = NULL;
+ PhotoImportParams* _tmp114_ = NULL;
+ VideoImportParams* _tmp115_ = NULL;
+ BatchImportResult* _tmp116_ = NULL;
+ ReadyForImport* _tmp117_ = NULL;
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp112_ = final_file;
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp113_ = prepared_file;
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp114_ = photo_import_params;
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp115_ = video_import_params;
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp116_ = batch_result;
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp117_ = ready_for_import_new (_tmp112_, _tmp113_, _tmp114_, _tmp115_, _tmp116_);
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _ready_for_import_unref0 (self->ready);
+#line 2002 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ready = _tmp117_;
+#line 16900 "BatchImport.c"
+ }
+#line 1935 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (batch_result);
+#line 1935 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _photo_import_params_unref0 (photo_import_params);
+#line 1935 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _video_import_params_unref0 (video_import_params);
+#line 1935 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_associated_file);
+#line 1935 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (final_file);
+#line 1935 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (prepared_file);
+#line 16914 "BatchImport.c"
+}
+
+
+static void prepared_file_import_job_class_init (PreparedFileImportJobClass * klass) {
+#line 1918 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ prepared_file_import_job_parent_class = g_type_class_peek_parent (klass);
+#line 1918 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->finalize = prepared_file_import_job_finalize;
+#line 1918 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_class_add_private (klass, sizeof (PreparedFileImportJobPrivate));
+#line 1918 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->execute = prepared_file_import_job_real_execute;
+#line 16927 "BatchImport.c"
+}
+
+
+static void prepared_file_import_job_instance_init (PreparedFileImportJob * self) {
+#line 1918 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->priv = PREPARED_FILE_IMPORT_JOB_GET_PRIVATE (self);
+#line 1920 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ready = NULL;
+#line 1921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->failed = NULL;
+#line 16938 "BatchImport.c"
+}
+
+
+static void prepared_file_import_job_finalize (BackgroundJob* obj) {
+ PreparedFileImportJob * self;
+#line 1918 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PREPARED_FILE_IMPORT_JOB, PreparedFileImportJob);
+#line 1919 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _prepared_file_unref0 (self->not_ready);
+#line 1920 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _ready_for_import_unref0 (self->ready);
+#line 1921 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->failed);
+#line 1918 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BACKGROUND_JOB_CLASS (prepared_file_import_job_parent_class)->finalize (obj);
+#line 16954 "BatchImport.c"
+}
+
+
+GType prepared_file_import_job_get_type (void) {
+ static volatile gsize prepared_file_import_job_type_id__volatile = 0;
+ if (g_once_init_enter (&prepared_file_import_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PreparedFileImportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prepared_file_import_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PreparedFileImportJob), 0, (GInstanceInitFunc) prepared_file_import_job_instance_init, NULL };
+ GType prepared_file_import_job_type_id;
+ prepared_file_import_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "PreparedFileImportJob", &g_define_type_info, 0);
+ g_once_init_leave (&prepared_file_import_job_type_id__volatile, prepared_file_import_job_type_id);
+ }
+ return prepared_file_import_job_type_id__volatile;
+}
+
+
+CompletedImportObject* completed_import_object_construct (GType object_type, MediaSource* source, Thumbnails* thumbnails, BatchImportJob* original_job, BatchImportResult* import_result) {
+ CompletedImportObject* self = NULL;
+ Thumbnails* _tmp0_ = NULL;
+ Thumbnails* _tmp1_ = NULL;
+ BatchImportResult* _tmp2_ = NULL;
+ BatchImportResult* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ MediaSource* _tmp5_ = NULL;
+ BatchImportJob* _tmp6_ = NULL;
+ BatchImportJob* _tmp7_ = NULL;
+ Thumbnails* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 2014 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 2014 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_THUMBNAILS (thumbnails), NULL);
+#line 2014 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_JOB (original_job), NULL);
+#line 2014 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_RESULT (import_result), NULL);
+#line 2014 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (CompletedImportObject*) g_type_create_instance (object_type);
+#line 2016 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = thumbnails;
+#line 2016 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _thumbnails_ref0 (_tmp0_);
+#line 2016 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _thumbnails_unref0 (self->thumbnails);
+#line 2016 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->thumbnails = _tmp1_;
+#line 2017 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = import_result;
+#line 2017 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _batch_import_result_ref0 (_tmp2_);
+#line 2017 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->batch_result);
+#line 2017 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->batch_result = _tmp3_;
+#line 2018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = source;
+#line 2018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 2018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->source);
+#line 2018 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->source = _tmp5_;
+#line 2019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = original_job;
+#line 2019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _batch_import_job_ref0 (_tmp6_);
+#line 2019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->original_job);
+#line 2019 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->original_job = _tmp7_;
+#line 2020 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = thumbnails;
+#line 2020 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = thumbnails_get (_tmp8_, THUMBNAIL_CACHE_SIZE_LARGEST);
+#line 2020 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->user_preview);
+#line 2020 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->user_preview = _tmp9_;
+#line 2014 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 17034 "BatchImport.c"
+}
+
+
+CompletedImportObject* completed_import_object_new (MediaSource* source, Thumbnails* thumbnails, BatchImportJob* original_job, BatchImportResult* import_result) {
+#line 2014 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return completed_import_object_construct (TYPE_COMPLETED_IMPORT_OBJECT, source, thumbnails, original_job, import_result);
+#line 17041 "BatchImport.c"
+}
+
+
+static void value_completed_import_object_init (GValue* value) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 17048 "BatchImport.c"
+}
+
+
+static void value_completed_import_object_free_value (GValue* value) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (value->data[0].v_pointer) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed_import_object_unref (value->data[0].v_pointer);
+#line 17057 "BatchImport.c"
+ }
+}
+
+
+static void value_completed_import_object_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = completed_import_object_ref (src_value->data[0].v_pointer);
+#line 17067 "BatchImport.c"
+ } else {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 17071 "BatchImport.c"
+ }
+}
+
+
+static gpointer value_completed_import_object_peek_pointer (const GValue* value) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 17079 "BatchImport.c"
+}
+
+
+static gchar* value_completed_import_object_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (collect_values[0].v_pointer) {
+#line 17086 "BatchImport.c"
+ CompletedImportObject* object;
+ object = collect_values[0].v_pointer;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 17093 "BatchImport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 17097 "BatchImport.c"
+ }
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = completed_import_object_ref (object);
+#line 17101 "BatchImport.c"
+ } else {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 17105 "BatchImport.c"
+ }
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 17109 "BatchImport.c"
+}
+
+
+static gchar* value_completed_import_object_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ CompletedImportObject** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!object_p) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 17120 "BatchImport.c"
+ }
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (!value->data[0].v_pointer) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = NULL;
+#line 17126 "BatchImport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 17130 "BatchImport.c"
+ } else {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ *object_p = completed_import_object_ref (value->data[0].v_pointer);
+#line 17134 "BatchImport.c"
+ }
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return NULL;
+#line 17138 "BatchImport.c"
+}
+
+
+GParamSpec* param_spec_completed_import_object (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecCompletedImportObject* spec;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_COMPLETED_IMPORT_OBJECT), NULL);
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return G_PARAM_SPEC (spec);
+#line 17152 "BatchImport.c"
+}
+
+
+gpointer value_get_completed_import_object (const GValue* value) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_COMPLETED_IMPORT_OBJECT), NULL);
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return value->data[0].v_pointer;
+#line 17161 "BatchImport.c"
+}
+
+
+void value_set_completed_import_object (GValue* value, gpointer v_object) {
+ CompletedImportObject* old;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_COMPLETED_IMPORT_OBJECT));
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_COMPLETED_IMPORT_OBJECT));
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed_import_object_ref (value->data[0].v_pointer);
+#line 17181 "BatchImport.c"
+ } else {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 17185 "BatchImport.c"
+ }
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed_import_object_unref (old);
+#line 17191 "BatchImport.c"
+ }
+}
+
+
+void value_take_completed_import_object (GValue* value, gpointer v_object) {
+ CompletedImportObject* old;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_COMPLETED_IMPORT_OBJECT));
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ old = value->data[0].v_pointer;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (v_object) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_COMPLETED_IMPORT_OBJECT));
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = v_object;
+#line 17210 "BatchImport.c"
+ } else {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ value->data[0].v_pointer = NULL;
+#line 17214 "BatchImport.c"
+ }
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (old) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed_import_object_unref (old);
+#line 17220 "BatchImport.c"
+ }
+}
+
+
+static void completed_import_object_class_init (CompletedImportObjectClass * klass) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ completed_import_object_parent_class = g_type_class_peek_parent (klass);
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((CompletedImportObjectClass *) klass)->finalize = completed_import_object_finalize;
+#line 17230 "BatchImport.c"
+}
+
+
+static void completed_import_object_instance_init (CompletedImportObject * self) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->ref_count = 1;
+#line 17237 "BatchImport.c"
+}
+
+
+static void completed_import_object_finalize (CompletedImportObject* obj) {
+ CompletedImportObject * self;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_COMPLETED_IMPORT_OBJECT, CompletedImportObject);
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_signal_handlers_destroy (self);
+#line 2008 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _thumbnails_unref0 (self->thumbnails);
+#line 2009 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_result_unref0 (self->batch_result);
+#line 2010 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->source);
+#line 2011 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _batch_import_job_unref0 (self->original_job);
+#line 2012 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_object_unref0 (self->user_preview);
+#line 17257 "BatchImport.c"
+}
+
+
+GType completed_import_object_get_type (void) {
+ static volatile gsize completed_import_object_type_id__volatile = 0;
+ if (g_once_init_enter (&completed_import_object_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_completed_import_object_init, value_completed_import_object_free_value, value_completed_import_object_copy_value, value_completed_import_object_peek_pointer, "p", value_completed_import_object_collect_value, "p", value_completed_import_object_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (CompletedImportObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) completed_import_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CompletedImportObject), 0, (GInstanceInitFunc) completed_import_object_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType completed_import_object_type_id;
+ completed_import_object_type_id = g_type_register_fundamental (g_type_fundamental_next (), "CompletedImportObject", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&completed_import_object_type_id__volatile, completed_import_object_type_id);
+ }
+ return completed_import_object_type_id__volatile;
+}
+
+
+gpointer completed_import_object_ref (gpointer instance) {
+ CompletedImportObject* self;
+ self = instance;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return instance;
+#line 17282 "BatchImport.c"
+}
+
+
+void completed_import_object_unref (gpointer instance) {
+ CompletedImportObject* self;
+ self = instance;
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ COMPLETED_IMPORT_OBJECT_GET_CLASS (self)->finalize (self);
+#line 2007 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 17295 "BatchImport.c"
+ }
+}
+
+
+ThumbnailWriterJob* thumbnail_writer_job_construct (GType object_type, BatchImport* owner, CompletedImportObject* completed_import_source, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancel_callback, void* cancel_callback_target) {
+ ThumbnailWriterJob* self = NULL;
+ BatchImport* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GCancellable* _tmp2_ = NULL;
+ CancellationCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ CompletedImportObject* _tmp4_ = NULL;
+ Thumbnails* _tmp5_ = NULL;
+ CompletedImportObject* _tmp6_ = NULL;
+ CompletedImportObject* _tmp7_ = NULL;
+#line 2027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT (owner), NULL);
+#line 2027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (IS_COMPLETED_IMPORT_OBJECT (completed_import_source), NULL);
+#line 2027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 2029 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = owner;
+#line 2029 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = callback;
+#line 2029 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1__target = callback_target;
+#line 2029 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = cancellable;
+#line 2029 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = cancel_callback;
+#line 2029 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3__target = cancel_callback_target;
+#line 2029 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = (ThumbnailWriterJob*) background_import_job_construct (object_type, _tmp0_, _tmp1_, _tmp1__target, _tmp2_, _tmp3_, _tmp3__target);
+#line 2031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = completed_import_source;
+#line 2031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_->thumbnails;
+#line 2031 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _vala_assert (_tmp5_ != NULL, "completed_import_source.thumbnails != null");
+#line 2032 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = completed_import_source;
+#line 2032 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _completed_import_object_ref0 (_tmp6_);
+#line 2032 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (self->completed_import_source);
+#line 2032 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self->completed_import_source = _tmp7_;
+#line 2034 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ background_job_set_completion_priority (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob), G_PRIORITY_LOW);
+#line 2027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return self;
+#line 17350 "BatchImport.c"
+}
+
+
+ThumbnailWriterJob* thumbnail_writer_job_new (BatchImport* owner, CompletedImportObject* completed_import_source, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancel_callback, void* cancel_callback_target) {
+#line 2027 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return thumbnail_writer_job_construct (TYPE_THUMBNAIL_WRITER_JOB, owner, completed_import_source, callback, callback_target, cancellable, cancel_callback, cancel_callback_target);
+#line 17357 "BatchImport.c"
+}
+
+
+static void thumbnail_writer_job_real_execute (BackgroundJob* base) {
+ ThumbnailWriterJob * self;
+ CompletedImportObject* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2037 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL_WRITER_JOB, ThumbnailWriterJob);
+#line 17367 "BatchImport.c"
+ {
+ CompletedImportObject* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ CompletedImportObject* _tmp2_ = NULL;
+ Thumbnails* _tmp3_ = NULL;
+ CompletedImportObject* _tmp4_ = NULL;
+ BatchImportResult* _tmp5_ = NULL;
+#line 2039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp0_ = self->completed_import_source;
+#line 2039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp1_ = _tmp0_->source;
+#line 2039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp2_ = self->completed_import_source;
+#line 2039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp3_ = _tmp2_->thumbnails;
+#line 2039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ thumbnail_cache_import_thumbnails (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp3_, TRUE, &_inner_error_);
+#line 2039 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17387 "BatchImport.c"
+ goto __catch410_g_error;
+ }
+#line 2041 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp4_ = self->completed_import_source;
+#line 2041 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_ = _tmp4_->batch_result;
+#line 2041 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp5_->result = IMPORT_RESULT_SUCCESS;
+#line 17396 "BatchImport.c"
+ }
+ goto __finally410;
+ __catch410_g_error:
+ {
+ GError* err = NULL;
+ CompletedImportObject* _tmp6_ = NULL;
+ BatchImportResult* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ ImportResult _tmp9_ = 0;
+#line 2038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ err = _inner_error_;
+#line 2038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _inner_error_ = NULL;
+#line 2043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp6_ = self->completed_import_source;
+#line 2043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_ = _tmp6_->batch_result;
+#line 2043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp8_ = err;
+#line 2043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp9_ = import_result_convert_error (_tmp8_, IMPORT_RESULT_FILE_ERROR);
+#line 2043 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp7_->result = _tmp9_;
+#line 2038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _g_error_free0 (err);
+#line 17422 "BatchImport.c"
+ }
+ __finally410:
+#line 2038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ g_clear_error (&_inner_error_);
+#line 2038 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ return;
+#line 17433 "BatchImport.c"
+ }
+#line 2048 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_ = self->completed_import_source;
+#line 2048 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _thumbnails_unref0 (_tmp10_->thumbnails);
+#line 2048 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _tmp10_->thumbnails = NULL;
+#line 17441 "BatchImport.c"
+}
+
+
+static void thumbnail_writer_job_class_init (ThumbnailWriterJobClass * klass) {
+#line 2024 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ thumbnail_writer_job_parent_class = g_type_class_peek_parent (klass);
+#line 2024 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->finalize = thumbnail_writer_job_finalize;
+#line 2024 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ ((BackgroundJobClass *) klass)->execute = thumbnail_writer_job_real_execute;
+#line 17452 "BatchImport.c"
+}
+
+
+static void thumbnail_writer_job_instance_init (ThumbnailWriterJob * self) {
+}
+
+
+static void thumbnail_writer_job_finalize (BackgroundJob* obj) {
+ ThumbnailWriterJob * self;
+#line 2024 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_THUMBNAIL_WRITER_JOB, ThumbnailWriterJob);
+#line 2025 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ _completed_import_object_unref0 (self->completed_import_source);
+#line 2024 "/home/jens/Source/shotwell/src/BatchImport.vala"
+ BACKGROUND_JOB_CLASS (thumbnail_writer_job_parent_class)->finalize (obj);
+#line 17468 "BatchImport.c"
+}
+
+
+GType thumbnail_writer_job_get_type (void) {
+ static volatile gsize thumbnail_writer_job_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_writer_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailWriterJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnail_writer_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ThumbnailWriterJob), 0, (GInstanceInitFunc) thumbnail_writer_job_instance_init, NULL };
+ GType thumbnail_writer_job_type_id;
+ thumbnail_writer_job_type_id = g_type_register_static (TYPE_BACKGROUND_IMPORT_JOB, "ThumbnailWriterJob", &g_define_type_info, 0);
+ g_once_init_leave (&thumbnail_writer_job_type_id__volatile, thumbnail_writer_job_type_id);
+ }
+ return thumbnail_writer_job_type_id__volatile;
+}
+
+
+
diff --git a/src/Box.c b/src/Box.c
new file mode 100644
index 0000000..0ebb6da
--- /dev/null
+++ b/src/Box.c
@@ -0,0 +1,2922 @@
+/* Box.c generated by valac 0.32.1, the Vala compiler
+ * generated from Box.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <gtk/gtk.h>
+#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+
+
+#define TYPE_BOX_LOCATION (box_location_get_type ())
+
+#define TYPE_BOX_COMPLEMENTS (box_complements_get_type ())
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ BOX_LOCATION_OUTSIDE,
+ BOX_LOCATION_INSIDE,
+ BOX_LOCATION_TOP_SIDE,
+ BOX_LOCATION_LEFT_SIDE,
+ BOX_LOCATION_RIGHT_SIDE,
+ BOX_LOCATION_BOTTOM_SIDE,
+ BOX_LOCATION_TOP_LEFT,
+ BOX_LOCATION_BOTTOM_LEFT,
+ BOX_LOCATION_TOP_RIGHT,
+ BOX_LOCATION_BOTTOM_RIGHT
+} BoxLocation;
+
+typedef enum {
+ BOX_COMPLEMENTS_NONE,
+ BOX_COMPLEMENTS_VERTICAL,
+ BOX_COMPLEMENTS_HORIZONTAL,
+ BOX_COMPLEMENTS_BOTH
+} BoxComplements;
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+
+
+GType box_location_get_type (void) G_GNUC_CONST;
+GType box_complements_get_type (void) G_GNUC_CONST;
+BoxComplements box_complements_derive (gboolean horizontal_complement, gboolean vertical_complement);
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+#define BOX_HAND_GRENADES 12
+void box_init (Box *self, gint left, gint top, gint right, gint bottom);
+void box_from_rectangle (GdkRectangle* rect, Box* result);
+void box_from_allocation (GtkAllocation* alloc, Box* result);
+void box_from_points (GdkPoint* corner1, GdkPoint* corner2, Box* result);
+void box_from_center (GdkPoint* center, gint width, gint height, Box* result);
+gint box_get_width (Box *self);
+gint box_get_height (Box *self);
+gboolean box_is_valid (Box *self);
+gboolean box_equals (Box *self, Box* box);
+void box_adjust_width (Box *self, gint width);
+void box_adjust_height (Box *self, gint height);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+void box_get_scaled (Box *self, Dimensions* scaled, Box* result);
+void box_get_dimensions (Box *self, Dimensions* result);
+void dimensions_get_scale_ratios (Dimensions *self, Dimensions* scaled, gdouble* width_ratio, gdouble* height_ratio);
+void box_get_scaled_similar (Box *self, Dimensions* original, Dimensions* scaled, Box* result);
+void box_get_offset (Box *self, gint xofs, gint yofs, Box* result);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void box_get_points (Box *self, GdkPoint* top_left, GdkPoint* bottom_right);
+void box_get_rectangle (Box *self, GdkRectangle* result);
+void box_get_center (Box *self, GdkPoint* result);
+void box_rotate_clockwise (Box *self, Dimensions* space, Box* result);
+void box_rotate_counterclockwise (Box *self, Dimensions* space, Box* result);
+void box_flip_left_to_right (Box *self, Dimensions* space, Box* result);
+void box_flip_top_to_bottom (Box *self, Dimensions* space, Box* result);
+gboolean box_intersects (Box *self, Box* compare);
+void box_get_reduced (Box *self, gint amount, Box* result);
+void box_get_expanded (Box *self, gint amount, Box* result);
+gboolean box_contains (Box *self, GdkPoint* point);
+BoxComplements box_resized_complements (Box *self, Box* resized, Box* horizontal, gboolean* horizontal_enlarged, Box* vertical, gboolean* vertical_enlarged);
+BoxComplements box_shifted_complements (Box *self, Box* shifted, Box* horizontal_this, Box* vertical_this, Box* horizontal_shifted, Box* vertical_shifted);
+void box_rubber_band (Box *self, GdkPoint* point, Box* result);
+gchar* box_to_string (Box *self);
+gchar* dimensions_to_string (Dimensions *self);
+static gboolean box_in_zone (gdouble pos, gint zone);
+static gboolean box_in_between (gdouble pos, gint top, gint bottom);
+static gboolean box_near_in_between (gdouble pos, gint top, gint bottom);
+BoxLocation box_approx_location (Box *self, gint x, gint y);
+
+
+GType box_location_get_type (void) {
+ static volatile gsize box_location_type_id__volatile = 0;
+ if (g_once_init_enter (&box_location_type_id__volatile)) {
+ static const GEnumValue values[] = {{BOX_LOCATION_OUTSIDE, "BOX_LOCATION_OUTSIDE", "outside"}, {BOX_LOCATION_INSIDE, "BOX_LOCATION_INSIDE", "inside"}, {BOX_LOCATION_TOP_SIDE, "BOX_LOCATION_TOP_SIDE", "top-side"}, {BOX_LOCATION_LEFT_SIDE, "BOX_LOCATION_LEFT_SIDE", "left-side"}, {BOX_LOCATION_RIGHT_SIDE, "BOX_LOCATION_RIGHT_SIDE", "right-side"}, {BOX_LOCATION_BOTTOM_SIDE, "BOX_LOCATION_BOTTOM_SIDE", "bottom-side"}, {BOX_LOCATION_TOP_LEFT, "BOX_LOCATION_TOP_LEFT", "top-left"}, {BOX_LOCATION_BOTTOM_LEFT, "BOX_LOCATION_BOTTOM_LEFT", "bottom-left"}, {BOX_LOCATION_TOP_RIGHT, "BOX_LOCATION_TOP_RIGHT", "top-right"}, {BOX_LOCATION_BOTTOM_RIGHT, "BOX_LOCATION_BOTTOM_RIGHT", "bottom-right"}, {0, NULL, NULL}};
+ GType box_location_type_id;
+ box_location_type_id = g_enum_register_static ("BoxLocation", values);
+ g_once_init_leave (&box_location_type_id__volatile, box_location_type_id);
+ }
+ return box_location_type_id__volatile;
+}
+
+
+BoxComplements box_complements_derive (gboolean horizontal_complement, gboolean vertical_complement) {
+ BoxComplements result = 0;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 27 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = horizontal_complement;
+#line 27 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp1_) {
+#line 140 "Box.c"
+ gboolean _tmp2_ = FALSE;
+#line 27 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = vertical_complement;
+#line 27 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = _tmp2_;
+#line 146 "Box.c"
+ } else {
+#line 27 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = FALSE;
+#line 150 "Box.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp0_) {
+#line 28 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_COMPLEMENTS_BOTH;
+#line 28 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 158 "Box.c"
+ } else {
+ gboolean _tmp3_ = FALSE;
+#line 29 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = horizontal_complement;
+#line 29 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp3_) {
+#line 30 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_COMPLEMENTS_HORIZONTAL;
+#line 30 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 169 "Box.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = vertical_complement;
+#line 31 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp4_) {
+#line 32 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_COMPLEMENTS_VERTICAL;
+#line 32 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 180 "Box.c"
+ }
+ }
+ }
+#line 34 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_COMPLEMENTS_NONE;
+#line 34 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 188 "Box.c"
+}
+
+
+GType box_complements_get_type (void) {
+ static volatile gsize box_complements_type_id__volatile = 0;
+ if (g_once_init_enter (&box_complements_type_id__volatile)) {
+ static const GEnumValue values[] = {{BOX_COMPLEMENTS_NONE, "BOX_COMPLEMENTS_NONE", "none"}, {BOX_COMPLEMENTS_VERTICAL, "BOX_COMPLEMENTS_VERTICAL", "vertical"}, {BOX_COMPLEMENTS_HORIZONTAL, "BOX_COMPLEMENTS_HORIZONTAL", "horizontal"}, {BOX_COMPLEMENTS_BOTH, "BOX_COMPLEMENTS_BOTH", "both"}, {0, NULL, NULL}};
+ GType box_complements_type_id;
+ box_complements_type_id = g_enum_register_static ("BoxComplements", values);
+ g_once_init_leave (&box_complements_type_id__volatile, box_complements_type_id);
+ }
+ return box_complements_type_id__volatile;
+}
+
+
+void box_init (Box *self, gint left, gint top, gint right, gint bottom) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 46 "/home/jens/Source/shotwell/src/Box.vala"
+ memset (self, 0, sizeof (Box));
+#line 48 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = left;
+#line 48 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = CLAMP (_tmp0_, 0, G_MAXINT);
+#line 48 "/home/jens/Source/shotwell/src/Box.vala"
+ left = _tmp1_;
+#line 49 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = top;
+#line 49 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = CLAMP (_tmp2_, 0, G_MAXINT);
+#line 49 "/home/jens/Source/shotwell/src/Box.vala"
+ top = _tmp3_;
+#line 53 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = right;
+#line 53 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = left;
+#line 53 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp4_ <= _tmp5_) {
+#line 237 "Box.c"
+ gint _tmp6_ = 0;
+#line 54 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = left;
+#line 54 "/home/jens/Source/shotwell/src/Box.vala"
+ right = _tmp6_ + 1;
+#line 243 "Box.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = bottom;
+#line 56 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = top;
+#line 56 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp7_ <= _tmp8_) {
+#line 251 "Box.c"
+ gint _tmp9_ = 0;
+#line 57 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = top;
+#line 57 "/home/jens/Source/shotwell/src/Box.vala"
+ bottom = _tmp9_ + 1;
+#line 257 "Box.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = left;
+#line 59 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).left = _tmp10_;
+#line 60 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = top;
+#line 60 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).top = _tmp11_;
+#line 61 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = right;
+#line 61 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).right = _tmp12_;
+#line 62 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = bottom;
+#line 62 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).bottom = _tmp13_;
+#line 275 "Box.c"
+}
+
+
+void box_from_rectangle (GdkRectangle* rect, Box* result) {
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Box _tmp12_ = {0};
+#line 65 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (rect != NULL);
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *rect;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.x;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = *rect;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = _tmp2_.y;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = *rect;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = _tmp4_.x;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = *rect;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = _tmp6_.width;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = *rect;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = _tmp8_.y;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = *rect;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = _tmp10_.height;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp12_, _tmp1_, _tmp3_, (_tmp5_ + _tmp7_) - 1, (_tmp9_ + _tmp11_) - 1);
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp12_;
+#line 66 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 325 "Box.c"
+}
+
+
+void box_from_allocation (GtkAllocation* alloc, Box* result) {
+ GtkAllocation _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GtkAllocation _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GtkAllocation _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GtkAllocation _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GtkAllocation _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GtkAllocation _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Box _tmp12_ = {0};
+#line 69 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (alloc != NULL);
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *alloc;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.x;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = *alloc;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = _tmp2_.y;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = *alloc;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = _tmp4_.x;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = *alloc;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = _tmp6_.width;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = *alloc;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = _tmp8_.y;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = *alloc;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = _tmp10_.height;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp12_, _tmp1_, _tmp3_, (_tmp5_ + _tmp7_) - 1, (_tmp9_ + _tmp11_) - 1);
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp12_;
+#line 70 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 375 "Box.c"
+}
+
+
+void box_from_points (GdkPoint* corner1, GdkPoint* corner2, Box* result) {
+ GdkPoint _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkPoint _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ GdkPoint _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkPoint _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ GdkPoint _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkPoint _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ Box _tmp20_ = {0};
+#line 75 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (corner1 != NULL);
+#line 75 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (corner2 != NULL);
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *corner1;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.x;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = *corner2;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = _tmp2_.x;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = MIN (_tmp1_, _tmp3_);
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = *corner1;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = _tmp5_.y;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = *corner2;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = _tmp7_.y;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = MIN (_tmp6_, _tmp8_);
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = *corner1;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = _tmp10_.x;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = *corner2;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = _tmp12_.x;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = MAX (_tmp11_, _tmp13_);
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = *corner1;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = _tmp15_.y;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = *corner2;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = _tmp17_.y;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = MAX (_tmp16_, _tmp18_);
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp20_, _tmp4_, _tmp9_, _tmp14_, _tmp19_);
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp20_;
+#line 76 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 451 "Box.c"
+}
+
+
+void box_from_center (GdkPoint* center, gint width, gint height, Box* result) {
+ GdkPoint _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GdkPoint _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ Box _tmp12_ = {0};
+#line 80 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (center != NULL);
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *center;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.x;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = width;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = *center;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = _tmp3_.y;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = height;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = *center;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = _tmp6_.x;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = width;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = *center;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = _tmp9_.y;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = height;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp12_, _tmp1_ - (_tmp2_ / 2), _tmp4_ - (_tmp5_ / 2), _tmp7_ + (_tmp8_ / 2), _tmp10_ + (_tmp11_ / 2));
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp12_;
+#line 81 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 501 "Box.c"
+}
+
+
+gint box_get_width (Box *self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 86 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).right;
+#line 86 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).left;
+#line 86 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_assert (_tmp0_ >= _tmp1_, "right >= left");
+#line 88 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).right;
+#line 88 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).left;
+#line 88 "/home/jens/Source/shotwell/src/Box.vala"
+ result = (_tmp2_ - _tmp3_) + 1;
+#line 88 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 525 "Box.c"
+}
+
+
+gint box_get_height (Box *self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 92 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).bottom;
+#line 92 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).top;
+#line 92 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_assert (_tmp0_ >= _tmp1_, "bottom >= top");
+#line 94 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).bottom;
+#line 94 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).top;
+#line 94 "/home/jens/Source/shotwell/src/Box.vala"
+ result = (_tmp2_ - _tmp3_) + 1;
+#line 94 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 549 "Box.c"
+}
+
+
+gboolean box_is_valid (Box *self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).left;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp3_ >= 0) {
+#line 563 "Box.c"
+ gint _tmp4_ = 0;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).top;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = _tmp4_ >= 0;
+#line 569 "Box.c"
+ } else {
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = FALSE;
+#line 573 "Box.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp2_) {
+#line 577 "Box.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = (*self).right;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).left;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp5_ >= _tmp6_;
+#line 586 "Box.c"
+ } else {
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = FALSE;
+#line 590 "Box.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp1_) {
+#line 594 "Box.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = (*self).bottom;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = (*self).top;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = _tmp7_ >= _tmp8_;
+#line 603 "Box.c"
+ } else {
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = FALSE;
+#line 607 "Box.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp0_;
+#line 98 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 613 "Box.c"
+}
+
+
+gboolean box_equals (Box *self, Box* box) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+ Box _tmp4_ = {0};
+ gint _tmp5_ = 0;
+#line 101 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_val_if_fail (box != NULL, FALSE);
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).left;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = *box;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = _tmp4_.left;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp3_ == _tmp5_) {
+#line 635 "Box.c"
+ gint _tmp6_ = 0;
+ Box _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).top;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = *box;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = _tmp7_.top;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = _tmp6_ == _tmp8_;
+#line 647 "Box.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = FALSE;
+#line 651 "Box.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp2_) {
+#line 655 "Box.c"
+ gint _tmp9_ = 0;
+ Box _tmp10_ = {0};
+ gint _tmp11_ = 0;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = (*self).right;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = *box;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = _tmp10_.right;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp9_ == _tmp11_;
+#line 667 "Box.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = FALSE;
+#line 671 "Box.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp1_) {
+#line 675 "Box.c"
+ gint _tmp12_ = 0;
+ Box _tmp13_ = {0};
+ gint _tmp14_ = 0;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = (*self).bottom;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = *box;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = _tmp13_.bottom;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = _tmp12_ == _tmp14_;
+#line 687 "Box.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = FALSE;
+#line 691 "Box.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp0_;
+#line 102 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 697 "Box.c"
+}
+
+
+void box_adjust_width (Box *self, gint width) {
+ gint center_x = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 107 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 107 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).right;
+#line 107 "/home/jens/Source/shotwell/src/Box.vala"
+ center_x = (_tmp0_ + _tmp1_) / 2;
+#line 108 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = width;
+#line 108 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).left = center_x - (_tmp2_ / 2);
+#line 109 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = width;
+#line 109 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).right = center_x + (_tmp3_ / 2);
+#line 721 "Box.c"
+}
+
+
+void box_adjust_height (Box *self, gint height) {
+ gint center_y = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 114 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).top;
+#line 114 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).bottom;
+#line 114 "/home/jens/Source/shotwell/src/Box.vala"
+ center_y = (_tmp0_ + _tmp1_) / 2;
+#line 115 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = height;
+#line 115 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).top = center_y - (_tmp2_ / 2);
+#line 116 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = height;
+#line 116 "/home/jens/Source/shotwell/src/Box.vala"
+ (*self).bottom = center_y + (_tmp3_ / 2);
+#line 745 "Box.c"
+}
+
+
+void box_get_scaled (Box *self, Dimensions* scaled, Box* result) {
+ gdouble x_scale = 0.0;
+ gdouble y_scale = 0.0;
+ Dimensions _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gint l = 0;
+ gint _tmp4_ = 0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gint t = 0;
+ gint _tmp7_ = 0;
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ gint r = 0;
+ gint _tmp10_ = 0;
+ Dimensions _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ gint b = 0;
+ gint _tmp13_ = 0;
+ Dimensions _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ Box box = {0};
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gboolean _tmp20_ = FALSE;
+ gint _tmp21_ = 0;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+#line 119 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (scaled != NULL);
+#line 121 "/home/jens/Source/shotwell/src/Box.vala"
+ box_get_dimensions (&(*self), &_tmp0_);
+#line 121 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = *scaled;
+#line 121 "/home/jens/Source/shotwell/src/Box.vala"
+ dimensions_get_scale_ratios (&_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
+#line 121 "/home/jens/Source/shotwell/src/Box.vala"
+ x_scale = _tmp2_;
+#line 121 "/home/jens/Source/shotwell/src/Box.vala"
+ y_scale = _tmp3_;
+#line 123 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).left;
+#line 123 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = x_scale;
+#line 123 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = round (((gdouble) _tmp4_) * _tmp5_);
+#line 123 "/home/jens/Source/shotwell/src/Box.vala"
+ l = (gint) _tmp6_;
+#line 124 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = (*self).top;
+#line 124 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = y_scale;
+#line 124 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = round (((gdouble) _tmp7_) * _tmp8_);
+#line 124 "/home/jens/Source/shotwell/src/Box.vala"
+ t = (gint) _tmp9_;
+#line 127 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = l;
+#line 127 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = *scaled;
+#line 127 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = _tmp11_.width;
+#line 127 "/home/jens/Source/shotwell/src/Box.vala"
+ r = (_tmp10_ + _tmp12_) - 1;
+#line 128 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = t;
+#line 128 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = *scaled;
+#line 128 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = _tmp14_.height;
+#line 128 "/home/jens/Source/shotwell/src/Box.vala"
+ b = (_tmp13_ + _tmp15_) - 1;
+#line 130 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = l;
+#line 130 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = t;
+#line 130 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = r;
+#line 130 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = b;
+#line 130 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&box, _tmp16_, _tmp17_, _tmp18_, _tmp19_);
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp21_ = box_get_width (&box);
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp22_ = *scaled;
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp23_ = _tmp22_.width;
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp21_ == _tmp23_) {
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp20_ = TRUE;
+#line 845 "Box.c"
+ } else {
+ gint _tmp24_ = 0;
+ Dimensions _tmp25_ = {0};
+ gint _tmp26_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp24_ = box_get_height (&box);
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp25_ = *scaled;
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp26_ = _tmp25_.height;
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp20_ = _tmp24_ == _tmp26_;
+#line 858 "Box.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_assert (_tmp20_, "box.get_width() == scaled.width || box.get_height() == scaled.height");
+#line 133 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = box;
+#line 133 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 866 "Box.c"
+}
+
+
+void box_get_scaled_similar (Box *self, Dimensions* original, Dimensions* scaled, Box* result) {
+ gdouble x_scale = 0.0;
+ gdouble y_scale = 0.0;
+ Dimensions _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gint l = 0;
+ gint _tmp3_ = 0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gint t = 0;
+ gint _tmp6_ = 0;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gint r = 0;
+ gint _tmp9_ = 0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ gint b = 0;
+ gint _tmp12_ = 0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ gint _tmp15_ = 0;
+ Dimensions _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ gint _tmp20_ = 0;
+ Dimensions _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ Box _tmp29_ = {0};
+#line 136 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (original != NULL);
+#line 136 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (scaled != NULL);
+#line 138 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *scaled;
+#line 138 "/home/jens/Source/shotwell/src/Box.vala"
+ dimensions_get_scale_ratios (original, &_tmp0_, &_tmp1_, &_tmp2_);
+#line 138 "/home/jens/Source/shotwell/src/Box.vala"
+ x_scale = _tmp1_;
+#line 138 "/home/jens/Source/shotwell/src/Box.vala"
+ y_scale = _tmp2_;
+#line 140 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).left;
+#line 140 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = x_scale;
+#line 140 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = round (((gdouble) _tmp3_) * _tmp4_);
+#line 140 "/home/jens/Source/shotwell/src/Box.vala"
+ l = (gint) _tmp5_;
+#line 141 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).top;
+#line 141 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = y_scale;
+#line 141 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = round (((gdouble) _tmp6_) * _tmp7_);
+#line 141 "/home/jens/Source/shotwell/src/Box.vala"
+ t = (gint) _tmp8_;
+#line 142 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = (*self).right;
+#line 142 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = x_scale;
+#line 142 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = round (((gdouble) _tmp9_) * _tmp10_);
+#line 142 "/home/jens/Source/shotwell/src/Box.vala"
+ r = (gint) _tmp11_;
+#line 143 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = (*self).bottom;
+#line 143 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = y_scale;
+#line 143 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = round (((gdouble) _tmp12_) * _tmp13_);
+#line 143 "/home/jens/Source/shotwell/src/Box.vala"
+ b = (gint) _tmp14_;
+#line 146 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = r;
+#line 146 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = *scaled;
+#line 146 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = _tmp16_.width;
+#line 146 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp15_ >= _tmp17_) {
+#line 955 "Box.c"
+ Dimensions _tmp18_ = {0};
+ gint _tmp19_ = 0;
+#line 147 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = *scaled;
+#line 147 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = _tmp18_.width;
+#line 147 "/home/jens/Source/shotwell/src/Box.vala"
+ r = _tmp19_ - 1;
+#line 964 "Box.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp20_ = b;
+#line 149 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp21_ = *scaled;
+#line 149 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp22_ = _tmp21_.height;
+#line 149 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp20_ >= _tmp22_) {
+#line 974 "Box.c"
+ Dimensions _tmp23_ = {0};
+ gint _tmp24_ = 0;
+#line 150 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp23_ = *scaled;
+#line 150 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp24_ = _tmp23_.height;
+#line 150 "/home/jens/Source/shotwell/src/Box.vala"
+ b = _tmp24_ - 1;
+#line 983 "Box.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp25_ = l;
+#line 152 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp26_ = t;
+#line 152 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp27_ = r;
+#line 152 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp28_ = b;
+#line 152 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp29_, _tmp25_, _tmp26_, _tmp27_, _tmp28_);
+#line 152 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp29_;
+#line 152 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 999 "Box.c"
+}
+
+
+void box_get_offset (Box *self, gint xofs, gint yofs, Box* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = xofs;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).top;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = yofs;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).right;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = xofs;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).bottom;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = yofs;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp8_, _tmp0_ + _tmp1_, _tmp2_ + _tmp3_, _tmp4_ + _tmp5_, _tmp6_ + _tmp7_);
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp8_;
+#line 156 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1035 "Box.c"
+}
+
+
+void box_get_dimensions (Box *self, Dimensions* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+#line 160 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = box_get_width (&(*self));
+#line 160 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = box_get_height (&(*self));
+#line 160 "/home/jens/Source/shotwell/src/Box.vala"
+ dimensions_init (&_tmp2_, _tmp0_, _tmp1_);
+#line 160 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp2_;
+#line 160 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1053 "Box.c"
+}
+
+
+void box_get_points (Box *self, GdkPoint* top_left, GdkPoint* bottom_right) {
+ GdkPoint _vala_top_left = {0};
+ GdkPoint _vala_bottom_right = {0};
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+#line 164 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 164 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).top;
+#line 164 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_.x = _tmp0_;
+#line 164 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_.y = _tmp1_;
+#line 164 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_top_left = _tmp2_;
+#line 165 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).right;
+#line 165 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).bottom;
+#line 165 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_.x = _tmp3_;
+#line 165 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_.y = _tmp4_;
+#line 165 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_bottom_right = _tmp5_;
+#line 163 "/home/jens/Source/shotwell/src/Box.vala"
+ if (top_left) {
+#line 163 "/home/jens/Source/shotwell/src/Box.vala"
+ *top_left = _vala_top_left;
+#line 1090 "Box.c"
+ }
+#line 163 "/home/jens/Source/shotwell/src/Box.vala"
+ if (bottom_right) {
+#line 163 "/home/jens/Source/shotwell/src/Box.vala"
+ *bottom_right = _vala_bottom_right;
+#line 1096 "Box.c"
+ }
+}
+
+
+void box_get_rectangle (Box *self, GdkRectangle* result) {
+ GdkRectangle rect = {0};
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 169 "/home/jens/Source/shotwell/src/Box.vala"
+ memset (&rect, 0, sizeof (GdkRectangle));
+#line 170 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 170 "/home/jens/Source/shotwell/src/Box.vala"
+ rect.x = _tmp0_;
+#line 171 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).top;
+#line 171 "/home/jens/Source/shotwell/src/Box.vala"
+ rect.y = _tmp1_;
+#line 172 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = box_get_width (&(*self));
+#line 172 "/home/jens/Source/shotwell/src/Box.vala"
+ rect.width = _tmp2_;
+#line 173 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = box_get_height (&(*self));
+#line 173 "/home/jens/Source/shotwell/src/Box.vala"
+ rect.height = _tmp3_;
+#line 175 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = rect;
+#line 175 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1129 "Box.c"
+}
+
+
+void box_get_center (Box *self, GdkPoint* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GdkPoint _tmp4_ = {0};
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).right;
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).top;
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).bottom;
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_.x = (_tmp0_ + _tmp1_) / 2;
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_.y = (_tmp2_ + _tmp3_) / 2;
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp4_;
+#line 179 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1155 "Box.c"
+}
+
+
+void box_rotate_clockwise (Box *self, Dimensions* space, Box* result) {
+ gint l = 0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint t = 0;
+ gint _tmp3_ = 0;
+ gint r = 0;
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint b = 0;
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+#line 182 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (space != NULL);
+#line 183 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *space;
+#line 183 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.width;
+#line 183 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).bottom;
+#line 183 "/home/jens/Source/shotwell/src/Box.vala"
+ l = (_tmp1_ - _tmp2_) - 1;
+#line 184 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).left;
+#line 184 "/home/jens/Source/shotwell/src/Box.vala"
+ t = _tmp3_;
+#line 185 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = *space;
+#line 185 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = _tmp4_.width;
+#line 185 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).top;
+#line 185 "/home/jens/Source/shotwell/src/Box.vala"
+ r = (_tmp5_ - _tmp6_) - 1;
+#line 186 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = (*self).right;
+#line 186 "/home/jens/Source/shotwell/src/Box.vala"
+ b = _tmp7_;
+#line 188 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp8_, l, t, r, b);
+#line 188 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp8_;
+#line 188 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1205 "Box.c"
+}
+
+
+void box_rotate_counterclockwise (Box *self, Dimensions* space, Box* result) {
+ gint l = 0;
+ gint _tmp0_ = 0;
+ gint t = 0;
+ Dimensions _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint r = 0;
+ gint _tmp4_ = 0;
+ gint b = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+#line 191 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (space != NULL);
+#line 192 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).top;
+#line 192 "/home/jens/Source/shotwell/src/Box.vala"
+ l = _tmp0_;
+#line 193 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = *space;
+#line 193 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = _tmp1_.height;
+#line 193 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).right;
+#line 193 "/home/jens/Source/shotwell/src/Box.vala"
+ t = (_tmp2_ - _tmp3_) - 1;
+#line 194 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).bottom;
+#line 194 "/home/jens/Source/shotwell/src/Box.vala"
+ r = _tmp4_;
+#line 195 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = *space;
+#line 195 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = _tmp5_.height;
+#line 195 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = (*self).left;
+#line 195 "/home/jens/Source/shotwell/src/Box.vala"
+ b = (_tmp6_ - _tmp7_) - 1;
+#line 197 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp8_, l, t, r, b);
+#line 197 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp8_;
+#line 197 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1255 "Box.c"
+}
+
+
+void box_flip_left_to_right (Box *self, Dimensions* space, Box* result) {
+ gint l = 0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint r = 0;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+#line 200 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (space != NULL);
+#line 201 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *space;
+#line 201 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.width;
+#line 201 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).right;
+#line 201 "/home/jens/Source/shotwell/src/Box.vala"
+ l = (_tmp1_ - _tmp2_) - 1;
+#line 202 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = *space;
+#line 202 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = _tmp3_.width;
+#line 202 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = (*self).left;
+#line 202 "/home/jens/Source/shotwell/src/Box.vala"
+ r = (_tmp4_ - _tmp5_) - 1;
+#line 204 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).top;
+#line 204 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = (*self).bottom;
+#line 204 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp8_, l, _tmp6_, r, _tmp7_);
+#line 204 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp8_;
+#line 204 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1299 "Box.c"
+}
+
+
+void box_flip_top_to_bottom (Box *self, Dimensions* space, Box* result) {
+ gint t = 0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint b = 0;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+#line 207 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (space != NULL);
+#line 208 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *space;
+#line 208 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.height;
+#line 208 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).bottom;
+#line 208 "/home/jens/Source/shotwell/src/Box.vala"
+ t = (_tmp1_ - _tmp2_) - 1;
+#line 209 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = *space;
+#line 209 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = _tmp3_.height;
+#line 209 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = (*self).top;
+#line 209 "/home/jens/Source/shotwell/src/Box.vala"
+ b = (_tmp4_ - _tmp5_) - 1;
+#line 211 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).left;
+#line 211 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = (*self).right;
+#line 211 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp8_, _tmp6_, t, _tmp7_, b);
+#line 211 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp8_;
+#line 211 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1343 "Box.c"
+}
+
+
+gboolean box_intersects (Box *self, Box* compare) {
+ gboolean result = FALSE;
+ gint left_intersect = 0;
+ gint _tmp0_ = 0;
+ Box _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint top_intersect = 0;
+ gint _tmp4_ = 0;
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint right_intersect = 0;
+ gint _tmp8_ = 0;
+ Box _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint bottom_intersect = 0;
+ gint _tmp12_ = 0;
+ Box _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gboolean _tmp16_ = FALSE;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 214 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_val_if_fail (compare != NULL, FALSE);
+#line 215 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 215 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = *compare;
+#line 215 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = _tmp1_.left;
+#line 215 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = MAX (_tmp0_, _tmp2_);
+#line 215 "/home/jens/Source/shotwell/src/Box.vala"
+ left_intersect = _tmp3_;
+#line 216 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).top;
+#line 216 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = *compare;
+#line 216 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = _tmp5_.top;
+#line 216 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = MAX (_tmp4_, _tmp6_);
+#line 216 "/home/jens/Source/shotwell/src/Box.vala"
+ top_intersect = _tmp7_;
+#line 217 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = (*self).right;
+#line 217 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = *compare;
+#line 217 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = _tmp9_.right;
+#line 217 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = MIN (_tmp8_, _tmp10_);
+#line 217 "/home/jens/Source/shotwell/src/Box.vala"
+ right_intersect = _tmp11_;
+#line 218 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = (*self).bottom;
+#line 218 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = *compare;
+#line 218 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = _tmp13_.bottom;
+#line 218 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = MIN (_tmp12_, _tmp14_);
+#line 218 "/home/jens/Source/shotwell/src/Box.vala"
+ bottom_intersect = _tmp15_;
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = right_intersect;
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = left_intersect;
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp17_ >= _tmp18_) {
+#line 1420 "Box.c"
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = bottom_intersect;
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp20_ = top_intersect;
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = _tmp19_ >= _tmp20_;
+#line 1429 "Box.c"
+ } else {
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = FALSE;
+#line 1433 "Box.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp16_;
+#line 220 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 1439 "Box.c"
+}
+
+
+void box_get_reduced (Box *self, gint amount, Box* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = amount;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).top;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = amount;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).right;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = amount;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).bottom;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = amount;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp8_, _tmp0_ + _tmp1_, _tmp2_ + _tmp3_, _tmp4_ - _tmp5_, _tmp6_ - _tmp7_);
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp8_;
+#line 224 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1475 "Box.c"
+}
+
+
+void box_get_expanded (Box *self, gint amount, Box* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = amount;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).top;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = amount;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).right;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = amount;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).bottom;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = amount;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp8_, _tmp0_ - _tmp1_, _tmp2_ - _tmp3_, _tmp4_ + _tmp5_, _tmp6_ + _tmp7_);
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp8_;
+#line 228 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 1511 "Box.c"
+}
+
+
+gboolean box_contains (Box *self, GdkPoint* point) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 231 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_val_if_fail (point != NULL, FALSE);
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = *point;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = _tmp3_.x;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = (*self).left;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp4_ >= _tmp5_) {
+#line 1533 "Box.c"
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = *point;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = _tmp6_.x;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = (*self).right;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = _tmp7_ <= _tmp8_;
+#line 1545 "Box.c"
+ } else {
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = FALSE;
+#line 1549 "Box.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp2_) {
+#line 1553 "Box.c"
+ GdkPoint _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = *point;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = _tmp9_.y;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = (*self).top;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp10_ >= _tmp11_;
+#line 1565 "Box.c"
+ } else {
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = FALSE;
+#line 1569 "Box.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp1_) {
+#line 1573 "Box.c"
+ GdkPoint _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = *point;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = _tmp12_.y;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = (*self).bottom;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = _tmp13_ <= _tmp14_;
+#line 1585 "Box.c"
+ } else {
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = FALSE;
+#line 1589 "Box.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp0_;
+#line 232 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 1595 "Box.c"
+}
+
+
+BoxComplements box_resized_complements (Box *self, Box* resized, Box* horizontal, gboolean* horizontal_enlarged, Box* vertical, gboolean* vertical_enlarged) {
+ Box _vala_horizontal = {0};
+ gboolean _vala_horizontal_enlarged = FALSE;
+ Box _vala_vertical = {0};
+ gboolean _vala_vertical_enlarged = FALSE;
+ BoxComplements result = 0;
+ gboolean horizontal_complement = FALSE;
+ Box _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean vertical_complement = FALSE;
+ Box _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gboolean _tmp72_ = FALSE;
+ gboolean _tmp73_ = FALSE;
+ BoxComplements _tmp74_ = 0;
+#line 238 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_val_if_fail (resized != NULL, 0);
+#line 241 "/home/jens/Source/shotwell/src/Box.vala"
+ horizontal_complement = TRUE;
+#line 242 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *resized;
+#line 242 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.top;
+#line 242 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).top;
+#line 242 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp1_ < _tmp2_) {
+#line 1628 "Box.c"
+ Box _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Box _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = *resized;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = _tmp3_.left;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = *resized;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = _tmp5_.top;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = *resized;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = _tmp7_.right;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = (*self).top;
+#line 244 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal, _tmp4_, _tmp6_, _tmp8_, _tmp9_);
+#line 245 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_horizontal_enlarged = TRUE;
+#line 1654 "Box.c"
+ } else {
+ Box _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 246 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = *resized;
+#line 246 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = _tmp10_.top;
+#line 246 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = (*self).top;
+#line 246 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp11_ > _tmp12_) {
+#line 1667 "Box.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ Box _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 248 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = (*self).left;
+#line 248 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = (*self).top;
+#line 248 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = (*self).right;
+#line 248 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = *resized;
+#line 248 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = _tmp16_.top;
+#line 248 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal, _tmp13_, _tmp14_, _tmp15_, _tmp17_);
+#line 249 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_horizontal_enlarged = FALSE;
+#line 1687 "Box.c"
+ } else {
+ Box _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 250 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = *resized;
+#line 250 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = _tmp18_.bottom;
+#line 250 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp20_ = (*self).bottom;
+#line 250 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp19_ < _tmp20_) {
+#line 1700 "Box.c"
+ gint _tmp21_ = 0;
+ Box _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 252 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp21_ = (*self).left;
+#line 252 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp22_ = *resized;
+#line 252 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp23_ = _tmp22_.bottom;
+#line 252 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp24_ = (*self).right;
+#line 252 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp25_ = (*self).bottom;
+#line 252 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal, _tmp21_, _tmp23_, _tmp24_, _tmp25_);
+#line 253 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_horizontal_enlarged = FALSE;
+#line 1720 "Box.c"
+ } else {
+ Box _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+#line 254 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp26_ = *resized;
+#line 254 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp27_ = _tmp26_.bottom;
+#line 254 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp28_ = (*self).bottom;
+#line 254 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp27_ > _tmp28_) {
+#line 1733 "Box.c"
+ Box _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ Box _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ Box _tmp34_ = {0};
+ gint _tmp35_ = 0;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp29_ = *resized;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp30_ = _tmp29_.left;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp31_ = (*self).bottom;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp32_ = *resized;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp33_ = _tmp32_.right;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp34_ = *resized;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp35_ = _tmp34_.bottom;
+#line 256 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal, _tmp30_, _tmp31_, _tmp33_, _tmp35_);
+#line 257 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_horizontal_enlarged = TRUE;
+#line 1759 "Box.c"
+ } else {
+#line 259 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal, 0, 0, 0, 0);
+#line 260 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_horizontal_enlarged = FALSE;
+#line 261 "/home/jens/Source/shotwell/src/Box.vala"
+ horizontal_complement = FALSE;
+#line 1767 "Box.c"
+ }
+ }
+ }
+ }
+#line 264 "/home/jens/Source/shotwell/src/Box.vala"
+ vertical_complement = TRUE;
+#line 265 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp36_ = *resized;
+#line 265 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp37_ = _tmp36_.left;
+#line 265 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp38_ = (*self).left;
+#line 265 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp37_ < _tmp38_) {
+#line 1782 "Box.c"
+ Box _tmp39_ = {0};
+ gint _tmp40_ = 0;
+ Box _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ Box _tmp44_ = {0};
+ gint _tmp45_ = 0;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp39_ = *resized;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp40_ = _tmp39_.left;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp41_ = *resized;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp42_ = _tmp41_.top;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp43_ = (*self).left;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp44_ = *resized;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp45_ = _tmp44_.bottom;
+#line 267 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical, _tmp40_, _tmp42_, _tmp43_, _tmp45_);
+#line 268 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_vertical_enlarged = TRUE;
+#line 1808 "Box.c"
+ } else {
+ Box _tmp46_ = {0};
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+#line 269 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp46_ = *resized;
+#line 269 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp47_ = _tmp46_.left;
+#line 269 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp48_ = (*self).left;
+#line 269 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp47_ > _tmp48_) {
+#line 1821 "Box.c"
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ Box _tmp51_ = {0};
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+#line 271 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp49_ = (*self).left;
+#line 271 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp50_ = (*self).top;
+#line 271 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp51_ = *resized;
+#line 271 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp52_ = _tmp51_.left;
+#line 271 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp53_ = (*self).bottom;
+#line 271 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical, _tmp49_, _tmp50_, _tmp52_, _tmp53_);
+#line 272 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_vertical_enlarged = FALSE;
+#line 1841 "Box.c"
+ } else {
+ Box _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+#line 273 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp54_ = *resized;
+#line 273 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp55_ = _tmp54_.right;
+#line 273 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp56_ = (*self).right;
+#line 273 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp55_ < _tmp56_) {
+#line 1854 "Box.c"
+ Box _tmp57_ = {0};
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+#line 275 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp57_ = *resized;
+#line 275 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp58_ = _tmp57_.right;
+#line 275 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp59_ = (*self).top;
+#line 275 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp60_ = (*self).right;
+#line 275 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp61_ = (*self).bottom;
+#line 275 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical, _tmp58_, _tmp59_, _tmp60_, _tmp61_);
+#line 276 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_vertical_enlarged = FALSE;
+#line 1874 "Box.c"
+ } else {
+ Box _tmp62_ = {0};
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+#line 277 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp62_ = *resized;
+#line 277 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp63_ = _tmp62_.right;
+#line 277 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp64_ = (*self).right;
+#line 277 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp63_ > _tmp64_) {
+#line 1887 "Box.c"
+ gint _tmp65_ = 0;
+ Box _tmp66_ = {0};
+ gint _tmp67_ = 0;
+ Box _tmp68_ = {0};
+ gint _tmp69_ = 0;
+ Box _tmp70_ = {0};
+ gint _tmp71_ = 0;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp65_ = (*self).right;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp66_ = *resized;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp67_ = _tmp66_.top;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp68_ = *resized;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp69_ = _tmp68_.right;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp70_ = *resized;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp71_ = _tmp70_.bottom;
+#line 279 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical, _tmp65_, _tmp67_, _tmp69_, _tmp71_);
+#line 280 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_vertical_enlarged = TRUE;
+#line 1913 "Box.c"
+ } else {
+#line 282 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical, 0, 0, 0, 0);
+#line 283 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_vertical_enlarged = FALSE;
+#line 284 "/home/jens/Source/shotwell/src/Box.vala"
+ vertical_complement = FALSE;
+#line 1921 "Box.c"
+ }
+ }
+ }
+ }
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp72_ = horizontal_complement;
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp73_ = vertical_complement;
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp74_ = box_complements_derive (_tmp72_, _tmp73_);
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp74_;
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ if (horizontal) {
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ *horizontal = _vala_horizontal;
+#line 1938 "Box.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ if (horizontal_enlarged) {
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ *horizontal_enlarged = _vala_horizontal_enlarged;
+#line 1944 "Box.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ if (vertical) {
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ *vertical = _vala_vertical;
+#line 1950 "Box.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ if (vertical_enlarged) {
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ *vertical_enlarged = _vala_vertical_enlarged;
+#line 1956 "Box.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 1960 "Box.c"
+}
+
+
+BoxComplements box_shifted_complements (Box *self, Box* shifted, Box* horizontal_this, Box* vertical_this, Box* horizontal_shifted, Box* vertical_shifted) {
+ Box _vala_horizontal_this = {0};
+ Box _vala_vertical_this = {0};
+ Box _vala_horizontal_shifted = {0};
+ Box _vala_vertical_shifted = {0};
+ BoxComplements result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean horizontal_complement = FALSE;
+ gboolean _tmp4_ = FALSE;
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean vertical_complement = FALSE;
+ gboolean _tmp42_ = FALSE;
+ Box _tmp43_ = {0};
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gboolean _tmp80_ = FALSE;
+ gboolean _tmp81_ = FALSE;
+ BoxComplements _tmp82_ = 0;
+#line 293 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_val_if_fail (shifted != NULL, 0);
+#line 295 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = box_get_width (&(*self));
+#line 295 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = box_get_width (shifted);
+#line 295 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_assert (_tmp0_ == _tmp1_, "get_width() == shifted.get_width()");
+#line 296 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = box_get_height (&(*self));
+#line 296 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = box_get_height (shifted);
+#line 296 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_assert (_tmp2_ == _tmp3_, "get_height() == shifted.get_height()");
+#line 298 "/home/jens/Source/shotwell/src/Box.vala"
+ horizontal_complement = TRUE;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = *shifted;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = _tmp5_.top;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = (*self).top;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp6_ < _tmp7_) {
+#line 2011 "Box.c"
+ Box _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = *shifted;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = _tmp8_.bottom;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = (*self).top;
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = _tmp9_ > _tmp10_;
+#line 2023 "Box.c"
+ } else {
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = FALSE;
+#line 2027 "Box.c"
+ }
+#line 299 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp4_) {
+#line 2031 "Box.c"
+ gint _tmp11_ = 0;
+ Box _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ Box _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ Box _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ Box _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+#line 301 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = (*self).left;
+#line 301 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = *shifted;
+#line 301 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = _tmp12_.bottom;
+#line 301 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = (*self).right;
+#line 301 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = (*self).bottom;
+#line 301 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal_this, _tmp11_, _tmp13_, _tmp14_, _tmp15_);
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = *shifted;
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = _tmp16_.left;
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = *shifted;
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = _tmp18_.top;
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp20_ = *shifted;
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp21_ = _tmp20_.right;
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp22_ = (*self).top;
+#line 302 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal_shifted, _tmp17_, _tmp19_, _tmp21_, _tmp22_);
+#line 2072 "Box.c"
+ } else {
+ gboolean _tmp23_ = FALSE;
+ Box _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp24_ = *shifted;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp25_ = _tmp24_.top;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp26_ = (*self).top;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp25_ > _tmp26_) {
+#line 2086 "Box.c"
+ Box _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp27_ = *shifted;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp28_ = _tmp27_.top;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp29_ = (*self).bottom;
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp23_ = _tmp28_ < _tmp29_;
+#line 2098 "Box.c"
+ } else {
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp23_ = FALSE;
+#line 2102 "Box.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp23_) {
+#line 2106 "Box.c"
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ Box _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ Box _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ Box _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ Box _tmp40_ = {0};
+ gint _tmp41_ = 0;
+#line 305 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp30_ = (*self).left;
+#line 305 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp31_ = (*self).top;
+#line 305 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp32_ = (*self).right;
+#line 305 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp33_ = *shifted;
+#line 305 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp34_ = _tmp33_.top;
+#line 305 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal_this, _tmp30_, _tmp31_, _tmp32_, _tmp34_);
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp35_ = *shifted;
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp36_ = _tmp35_.left;
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp37_ = (*self).bottom;
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp38_ = *shifted;
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp39_ = _tmp38_.right;
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp40_ = *shifted;
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp41_ = _tmp40_.bottom;
+#line 306 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal_shifted, _tmp36_, _tmp37_, _tmp39_, _tmp41_);
+#line 2147 "Box.c"
+ } else {
+#line 309 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal_this, 0, 0, 0, 0);
+#line 310 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_horizontal_shifted, 0, 0, 0, 0);
+#line 311 "/home/jens/Source/shotwell/src/Box.vala"
+ horizontal_complement = FALSE;
+#line 2155 "Box.c"
+ }
+ }
+#line 314 "/home/jens/Source/shotwell/src/Box.vala"
+ vertical_complement = TRUE;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp43_ = *shifted;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp44_ = _tmp43_.left;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp45_ = (*self).left;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp44_ < _tmp45_) {
+#line 2168 "Box.c"
+ Box _tmp46_ = {0};
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp46_ = *shifted;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp47_ = _tmp46_.right;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp48_ = (*self).left;
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp42_ = _tmp47_ > _tmp48_;
+#line 2180 "Box.c"
+ } else {
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp42_ = FALSE;
+#line 2184 "Box.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp42_) {
+#line 2188 "Box.c"
+ Box _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ Box _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ Box _tmp56_ = {0};
+ gint _tmp57_ = 0;
+ gint _tmp58_ = 0;
+ Box _tmp59_ = {0};
+ gint _tmp60_ = 0;
+#line 317 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp49_ = *shifted;
+#line 317 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp50_ = _tmp49_.right;
+#line 317 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp51_ = (*self).top;
+#line 317 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp52_ = (*self).right;
+#line 317 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp53_ = (*self).bottom;
+#line 317 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical_this, _tmp50_, _tmp51_, _tmp52_, _tmp53_);
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp54_ = *shifted;
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp55_ = _tmp54_.left;
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp56_ = *shifted;
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp57_ = _tmp56_.top;
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp58_ = (*self).left;
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp59_ = *shifted;
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp60_ = _tmp59_.bottom;
+#line 318 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical_shifted, _tmp55_, _tmp57_, _tmp58_, _tmp60_);
+#line 2229 "Box.c"
+ } else {
+ gboolean _tmp61_ = FALSE;
+ Box _tmp62_ = {0};
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp62_ = *shifted;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp63_ = _tmp62_.left;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp64_ = (*self).left;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp63_ > _tmp64_) {
+#line 2243 "Box.c"
+ Box _tmp65_ = {0};
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp65_ = *shifted;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp66_ = _tmp65_.left;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp67_ = (*self).right;
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp61_ = _tmp66_ < _tmp67_;
+#line 2255 "Box.c"
+ } else {
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp61_ = FALSE;
+#line 2259 "Box.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp61_) {
+#line 2263 "Box.c"
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ Box _tmp70_ = {0};
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ Box _tmp74_ = {0};
+ gint _tmp75_ = 0;
+ Box _tmp76_ = {0};
+ gint _tmp77_ = 0;
+ Box _tmp78_ = {0};
+ gint _tmp79_ = 0;
+#line 321 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp68_ = (*self).left;
+#line 321 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp69_ = (*self).top;
+#line 321 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp70_ = *shifted;
+#line 321 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp71_ = _tmp70_.left;
+#line 321 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp72_ = (*self).bottom;
+#line 321 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical_this, _tmp68_, _tmp69_, _tmp71_, _tmp72_);
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp73_ = (*self).right;
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp74_ = *shifted;
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp75_ = _tmp74_.top;
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp76_ = *shifted;
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp77_ = _tmp76_.right;
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp78_ = *shifted;
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp79_ = _tmp78_.bottom;
+#line 322 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical_shifted, _tmp73_, _tmp75_, _tmp77_, _tmp79_);
+#line 2304 "Box.c"
+ } else {
+#line 325 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical_this, 0, 0, 0, 0);
+#line 326 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_vala_vertical_shifted, 0, 0, 0, 0);
+#line 327 "/home/jens/Source/shotwell/src/Box.vala"
+ vertical_complement = FALSE;
+#line 2312 "Box.c"
+ }
+ }
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp80_ = horizontal_complement;
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp81_ = vertical_complement;
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp82_ = box_complements_derive (_tmp80_, _tmp81_);
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp82_;
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ if (horizontal_this) {
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ *horizontal_this = _vala_horizontal_this;
+#line 2327 "Box.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ if (vertical_this) {
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ *vertical_this = _vala_vertical_this;
+#line 2333 "Box.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ if (horizontal_shifted) {
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ *horizontal_shifted = _vala_horizontal_shifted;
+#line 2339 "Box.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ if (vertical_shifted) {
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ *vertical_shifted = _vala_vertical_shifted;
+#line 2345 "Box.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2349 "Box.c"
+}
+
+
+void box_rubber_band (Box *self, GdkPoint* point, Box* result) {
+ GdkPoint _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint t = 0;
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint b = 0;
+ gint _tmp8_ = 0;
+ GdkPoint _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint l = 0;
+ gint _tmp12_ = 0;
+ GdkPoint _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint r = 0;
+ gint _tmp16_ = 0;
+ GdkPoint _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ Box _tmp20_ = {0};
+#line 333 "/home/jens/Source/shotwell/src/Box.vala"
+ g_return_if_fail (point != NULL);
+#line 334 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = *point;
+#line 334 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp0_.x;
+#line 334 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_assert (_tmp1_ >= 0, "point.x >= 0");
+#line 335 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = *point;
+#line 335 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = _tmp2_.y;
+#line 335 "/home/jens/Source/shotwell/src/Box.vala"
+ _vala_assert (_tmp3_ >= 0, "point.y >= 0");
+#line 337 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = (*self).top;
+#line 337 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = *point;
+#line 337 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = _tmp5_.y;
+#line 337 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = MIN (_tmp4_, _tmp6_);
+#line 337 "/home/jens/Source/shotwell/src/Box.vala"
+ t = _tmp7_;
+#line 338 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = (*self).bottom;
+#line 338 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = *point;
+#line 338 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = _tmp9_.y;
+#line 338 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = MAX (_tmp8_, _tmp10_);
+#line 338 "/home/jens/Source/shotwell/src/Box.vala"
+ b = _tmp11_;
+#line 339 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = (*self).left;
+#line 339 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = *point;
+#line 339 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = _tmp13_.x;
+#line 339 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = MIN (_tmp12_, _tmp14_);
+#line 339 "/home/jens/Source/shotwell/src/Box.vala"
+ l = _tmp15_;
+#line 340 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = (*self).right;
+#line 340 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = *point;
+#line 340 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = _tmp17_.x;
+#line 340 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = MAX (_tmp16_, _tmp18_);
+#line 340 "/home/jens/Source/shotwell/src/Box.vala"
+ r = _tmp19_;
+#line 342 "/home/jens/Source/shotwell/src/Box.vala"
+ box_init (&_tmp20_, l, t, r, b);
+#line 342 "/home/jens/Source/shotwell/src/Box.vala"
+ *result = _tmp20_;
+#line 342 "/home/jens/Source/shotwell/src/Box.vala"
+ return;
+#line 2439 "Box.c"
+}
+
+
+gchar* box_to_string (Box *self) {
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = (*self).left;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).top;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).right;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = (*self).bottom;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ box_get_dimensions (&(*self), &_tmp4_);
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = dimensions_to_string (&_tmp4_);
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = _tmp5_;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = g_strdup_printf ("%d,%d %d,%d (%s)", _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp6_);
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = _tmp7_;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ _g_free0 (_tmp6_);
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp8_;
+#line 346 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2478 "Box.c"
+}
+
+
+static gboolean box_in_zone (gdouble pos, gint zone) {
+ gboolean result = FALSE;
+ gint top_zone = 0;
+ gint _tmp0_ = 0;
+ gint bottom_zone = 0;
+ gint _tmp1_ = 0;
+ gdouble _tmp2_ = 0.0;
+ gboolean _tmp3_ = FALSE;
+#line 350 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = zone;
+#line 350 "/home/jens/Source/shotwell/src/Box.vala"
+ top_zone = _tmp0_ - BOX_HAND_GRENADES;
+#line 351 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = zone;
+#line 351 "/home/jens/Source/shotwell/src/Box.vala"
+ bottom_zone = _tmp1_ + BOX_HAND_GRENADES;
+#line 353 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = pos;
+#line 353 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = box_in_between (_tmp2_, top_zone, bottom_zone);
+#line 353 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp3_;
+#line 353 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2506 "Box.c"
+}
+
+
+static gboolean box_in_between (gdouble pos, gint top, gint bottom) {
+ gboolean result = FALSE;
+ gint ipos = 0;
+ gdouble _tmp0_ = 0.0;
+ gboolean _tmp1_ = FALSE;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 357 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = pos;
+#line 357 "/home/jens/Source/shotwell/src/Box.vala"
+ ipos = (gint) _tmp0_;
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = ipos;
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = top;
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp2_ > _tmp3_) {
+#line 2527 "Box.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = ipos;
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = bottom;
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = _tmp4_ < _tmp5_;
+#line 2536 "Box.c"
+ } else {
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = FALSE;
+#line 2540 "Box.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp1_;
+#line 359 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2546 "Box.c"
+}
+
+
+static gboolean box_near_in_between (gdouble pos, gint top, gint bottom) {
+ gboolean result = FALSE;
+ gint ipos = 0;
+ gdouble _tmp0_ = 0.0;
+ gint top_zone = 0;
+ gint _tmp1_ = 0;
+ gint bottom_zone = 0;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 363 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = pos;
+#line 363 "/home/jens/Source/shotwell/src/Box.vala"
+ ipos = (gint) _tmp0_;
+#line 364 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = top;
+#line 364 "/home/jens/Source/shotwell/src/Box.vala"
+ top_zone = _tmp1_ - BOX_HAND_GRENADES;
+#line 365 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = bottom;
+#line 365 "/home/jens/Source/shotwell/src/Box.vala"
+ bottom_zone = _tmp2_ + BOX_HAND_GRENADES;
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = ipos;
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = top_zone;
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp4_ > _tmp5_) {
+#line 2579 "Box.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = ipos;
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = bottom_zone;
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = _tmp6_ < _tmp7_;
+#line 2588 "Box.c"
+ } else {
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = FALSE;
+#line 2592 "Box.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ result = _tmp3_;
+#line 367 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2598 "Box.c"
+}
+
+
+BoxLocation box_approx_location (Box *self, gint x, gint y) {
+ BoxLocation result = 0;
+ gboolean near_width = FALSE;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean near_height = FALSE;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+#line 371 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp0_ = x;
+#line 371 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp1_ = (*self).left;
+#line 371 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp2_ = (*self).right;
+#line 371 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp3_ = box_near_in_between ((gdouble) _tmp0_, _tmp1_, _tmp2_);
+#line 371 "/home/jens/Source/shotwell/src/Box.vala"
+ near_width = _tmp3_;
+#line 372 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp4_ = y;
+#line 372 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp5_ = (*self).top;
+#line 372 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp6_ = (*self).bottom;
+#line 372 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp7_ = box_near_in_between ((gdouble) _tmp4_, _tmp5_, _tmp6_);
+#line 372 "/home/jens/Source/shotwell/src/Box.vala"
+ near_height = _tmp7_;
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp9_ = x;
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp10_ = (*self).left;
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp11_ = box_in_zone ((gdouble) _tmp9_, _tmp10_);
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp11_) {
+#line 2646 "Box.c"
+ gboolean _tmp12_ = FALSE;
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp12_ = near_height;
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = _tmp12_;
+#line 2652 "Box.c"
+ } else {
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp8_ = FALSE;
+#line 2656 "Box.c"
+ }
+#line 374 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp8_) {
+#line 2660 "Box.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gboolean _tmp15_ = FALSE;
+#line 375 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp13_ = y;
+#line 375 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp14_ = (*self).top;
+#line 375 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp15_ = box_in_zone ((gdouble) _tmp13_, _tmp14_);
+#line 375 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp15_) {
+#line 376 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_TOP_LEFT;
+#line 376 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2676 "Box.c"
+ } else {
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gboolean _tmp18_ = FALSE;
+#line 377 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp16_ = y;
+#line 377 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp17_ = (*self).bottom;
+#line 377 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp18_ = box_in_zone ((gdouble) _tmp16_, _tmp17_);
+#line 377 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp18_) {
+#line 378 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_BOTTOM_LEFT;
+#line 378 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2693 "Box.c"
+ } else {
+#line 380 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_LEFT_SIDE;
+#line 380 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2699 "Box.c"
+ }
+ }
+ } else {
+ gboolean _tmp19_ = FALSE;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gboolean _tmp22_ = FALSE;
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp20_ = x;
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp21_ = (*self).right;
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp22_ = box_in_zone ((gdouble) _tmp20_, _tmp21_);
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp22_) {
+#line 2715 "Box.c"
+ gboolean _tmp23_ = FALSE;
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp23_ = near_height;
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = _tmp23_;
+#line 2721 "Box.c"
+ } else {
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp19_ = FALSE;
+#line 2725 "Box.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp19_) {
+#line 2729 "Box.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gboolean _tmp26_ = FALSE;
+#line 383 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp24_ = y;
+#line 383 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp25_ = (*self).top;
+#line 383 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp26_ = box_in_zone ((gdouble) _tmp24_, _tmp25_);
+#line 383 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp26_) {
+#line 384 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_TOP_RIGHT;
+#line 384 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2745 "Box.c"
+ } else {
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gboolean _tmp29_ = FALSE;
+#line 385 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp27_ = y;
+#line 385 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp28_ = (*self).bottom;
+#line 385 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp29_ = box_in_zone ((gdouble) _tmp27_, _tmp28_);
+#line 385 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp29_) {
+#line 386 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_BOTTOM_RIGHT;
+#line 386 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2762 "Box.c"
+ } else {
+#line 388 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_RIGHT_SIDE;
+#line 388 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2768 "Box.c"
+ }
+ }
+ } else {
+ gboolean _tmp30_ = FALSE;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gboolean _tmp33_ = FALSE;
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp31_ = y;
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp32_ = (*self).top;
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp33_ = box_in_zone ((gdouble) _tmp31_, _tmp32_);
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp33_) {
+#line 2784 "Box.c"
+ gboolean _tmp34_ = FALSE;
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp34_ = near_width;
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp30_ = _tmp34_;
+#line 2790 "Box.c"
+ } else {
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp30_ = FALSE;
+#line 2794 "Box.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp30_) {
+#line 392 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_TOP_SIDE;
+#line 392 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2802 "Box.c"
+ } else {
+ gboolean _tmp35_ = FALSE;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gboolean _tmp38_ = FALSE;
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp36_ = y;
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp37_ = (*self).bottom;
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp38_ = box_in_zone ((gdouble) _tmp36_, _tmp37_);
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp38_) {
+#line 2816 "Box.c"
+ gboolean _tmp39_ = FALSE;
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp39_ = near_width;
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp35_ = _tmp39_;
+#line 2822 "Box.c"
+ } else {
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp35_ = FALSE;
+#line 2826 "Box.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp35_) {
+#line 395 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_BOTTOM_SIDE;
+#line 395 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2834 "Box.c"
+ } else {
+ gboolean _tmp40_ = FALSE;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gboolean _tmp44_ = FALSE;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp41_ = x;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp42_ = (*self).left;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp43_ = (*self).right;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp44_ = box_in_between ((gdouble) _tmp41_, _tmp42_, _tmp43_);
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp44_) {
+#line 2851 "Box.c"
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ gboolean _tmp48_ = FALSE;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp45_ = y;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp46_ = (*self).top;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp47_ = (*self).bottom;
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp48_ = box_in_between ((gdouble) _tmp45_, _tmp46_, _tmp47_);
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp40_ = _tmp48_;
+#line 2866 "Box.c"
+ } else {
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ _tmp40_ = FALSE;
+#line 2870 "Box.c"
+ }
+#line 396 "/home/jens/Source/shotwell/src/Box.vala"
+ if (_tmp40_) {
+#line 397 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_INSIDE;
+#line 397 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2878 "Box.c"
+ } else {
+#line 399 "/home/jens/Source/shotwell/src/Box.vala"
+ result = BOX_LOCATION_OUTSIDE;
+#line 399 "/home/jens/Source/shotwell/src/Box.vala"
+ return result;
+#line 2884 "Box.c"
+ }
+ }
+ }
+ }
+ }
+}
+
+
+Box* box_dup (const Box* self) {
+ Box* dup;
+#line 38 "/home/jens/Source/shotwell/src/Box.vala"
+ dup = g_new0 (Box, 1);
+#line 38 "/home/jens/Source/shotwell/src/Box.vala"
+ memcpy (dup, self, sizeof (Box));
+#line 38 "/home/jens/Source/shotwell/src/Box.vala"
+ return dup;
+#line 2901 "Box.c"
+}
+
+
+void box_free (Box* self) {
+#line 38 "/home/jens/Source/shotwell/src/Box.vala"
+ g_free (self);
+#line 2908 "Box.c"
+}
+
+
+GType box_get_type (void) {
+ static volatile gsize box_type_id__volatile = 0;
+ if (g_once_init_enter (&box_type_id__volatile)) {
+ GType box_type_id;
+ box_type_id = g_boxed_type_register_static ("Box", (GBoxedCopyFunc) box_dup, (GBoxedFreeFunc) box_free);
+ g_once_init_leave (&box_type_id__volatile, box_type_id);
+ }
+ return box_type_id__volatile;
+}
+
+
+
diff --git a/src/Box.vala b/src/Box.vala
index a1067bc..eaf70a0 100644
--- a/src/Box.vala
+++ b/src/Box.vala
@@ -36,7 +36,7 @@ public enum BoxComplements {
}
public struct Box {
- public static const int HAND_GRENADES = 12;
+ public const int HAND_GRENADES = 12;
public int left;
public int top;
diff --git a/src/CheckerboardLayout.c b/src/CheckerboardLayout.c
new file mode 100644
index 0000000..a6d5bf1
--- /dev/null
+++ b/src/CheckerboardLayout.c
@@ -0,0 +1,12514 @@
+/* CheckerboardLayout.c generated by valac 0.32.1, the Vala compiler
+ * generated from CheckerboardLayout.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk/gdk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <pango/pango.h>
+#include <gtk/gtk.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+#include <pango/pangocairo.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_CHECKERBOARD_ITEM_TEXT (checkerboard_item_text_get_type ())
+#define CHECKERBOARD_ITEM_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM_TEXT, CheckerboardItemText))
+#define CHECKERBOARD_ITEM_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM_TEXT, CheckerboardItemTextClass))
+#define IS_CHECKERBOARD_ITEM_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM_TEXT))
+#define IS_CHECKERBOARD_ITEM_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM_TEXT))
+#define CHECKERBOARD_ITEM_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM_TEXT, CheckerboardItemTextClass))
+
+typedef struct _CheckerboardItemText CheckerboardItemText;
+typedef struct _CheckerboardItemTextClass CheckerboardItemTextClass;
+typedef struct _CheckerboardItemTextPrivate CheckerboardItemTextPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+typedef struct _ParamSpecCheckerboardItemText ParamSpecCheckerboardItemText;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+#define _checkerboard_item_text_unref0(var) ((var == NULL) ? NULL : (var = (checkerboard_item_text_unref (var), NULL)))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define __vala_GValue_free0(var) ((var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL)))
+#define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))
+
+#define TYPE_CHECKERBOARD_LAYOUT (checkerboard_layout_get_type ())
+#define CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout))
+#define CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))
+#define IS_CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_LAYOUT))
+#define IS_CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_LAYOUT))
+#define CHECKERBOARD_LAYOUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))
+
+typedef struct _CheckerboardLayout CheckerboardLayout;
+typedef struct _CheckerboardLayoutClass CheckerboardLayoutClass;
+typedef struct _CheckerboardLayoutPrivate CheckerboardLayoutPrivate;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW (checkerboard_layout_layout_row_get_type ())
+#define CHECKERBOARD_LAYOUT_LAYOUT_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW, CheckerboardLayoutLayoutRow))
+#define CHECKERBOARD_LAYOUT_LAYOUT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW, CheckerboardLayoutLayoutRowClass))
+#define CHECKERBOARD_LAYOUT_IS_LAYOUT_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW))
+#define CHECKERBOARD_LAYOUT_IS_LAYOUT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW))
+#define CHECKERBOARD_LAYOUT_LAYOUT_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW, CheckerboardLayoutLayoutRowClass))
+
+typedef struct _CheckerboardLayoutLayoutRow CheckerboardLayoutLayoutRow;
+typedef struct _CheckerboardLayoutLayoutRowClass CheckerboardLayoutLayoutRowClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+typedef struct _CheckerboardLayoutLayoutRowPrivate CheckerboardLayoutLayoutRowPrivate;
+#define _checkerboard_layout_layout_row_unref0(var) ((var == NULL) ? NULL : (var = (checkerboard_layout_layout_row_unref (var), NULL)))
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_COMPASS_POINT (compass_point_get_type ())
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+typedef struct _CheckerboardLayoutParamSpecLayoutRow CheckerboardLayoutParamSpecLayoutRow;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _CheckerboardItemText {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CheckerboardItemTextPrivate * priv;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemTextClass {
+ GTypeClass parent_class;
+ void (*finalize) (CheckerboardItemText *self);
+};
+
+struct _CheckerboardItemTextPrivate {
+ gchar* text;
+ gboolean marked_up;
+ PangoAlignment alignment;
+ PangoLayout* layout;
+ gboolean single_line;
+ gint height;
+};
+
+struct _ParamSpecCheckerboardItemText {
+ GParamSpec parent_instance;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _CheckerboardItemPrivate {
+ gboolean exposure;
+ CheckerboardItemText* title;
+ gboolean title_visible;
+ CheckerboardItemText* comment;
+ gboolean comment_visible;
+ CheckerboardItemText* subtitle;
+ gboolean subtitle_visible;
+ gboolean is_cursor;
+ PangoAlignment tag_alignment;
+ GeeList* user_visible_tag_list;
+ GeeCollection* tags;
+ GdkPixbuf* pixbuf;
+ GdkPixbuf* display_pixbuf;
+ GdkPixbuf* brightened;
+ Dimensions pixbuf_dim;
+ gint col;
+ gint row;
+ gint horizontal_trinket_offset;
+ gboolean _has_tags;
+};
+
+struct _CheckerboardLayout {
+ GtkDrawingArea parent_instance;
+ CheckerboardLayoutPrivate * priv;
+};
+
+struct _CheckerboardLayoutClass {
+ GtkDrawingAreaClass parent_class;
+};
+
+struct _CheckerboardLayoutPrivate {
+ ViewCollection* view;
+ gchar* page_name;
+ CheckerboardLayoutLayoutRow** item_rows;
+ gint item_rows_length1;
+ gint _item_rows_size_;
+ GeeHashSet* exposed_items;
+ GtkAdjustment* hadjustment;
+ GtkAdjustment* vadjustment;
+ gchar* message;
+ GdkRGBA selected_color;
+ GdkRGBA unselected_color;
+ GdkRGBA border_color;
+ GdkRGBA bg_color;
+ GdkRectangle visible_page;
+ gint last_width;
+ gint columns;
+ gint rows;
+ GdkPoint drag_origin;
+ GdkPoint drag_endpoint;
+ GdkRectangle selection_band;
+ gint scale;
+ gboolean flow_scheduled;
+ gboolean exposure_dirty;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+ gboolean in_center_on_anchor;
+ gboolean size_allocate_due_to_reflow;
+ gboolean is_in_view;
+ gboolean reflow_needed;
+};
+
+struct _CheckerboardLayoutLayoutRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CheckerboardLayoutLayoutRowPrivate * priv;
+ gint y;
+ gint height;
+ CheckerboardItem** items;
+ gint items_length1;
+ gint _items_size_;
+};
+
+struct _CheckerboardLayoutLayoutRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (CheckerboardLayoutLayoutRow *self);
+};
+
+typedef enum {
+ COMPASS_POINT_NORTH,
+ COMPASS_POINT_SOUTH,
+ COMPASS_POINT_EAST,
+ COMPASS_POINT_WEST
+} CompassPoint;
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+struct _CheckerboardLayoutParamSpecLayoutRow {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer checkerboard_item_text_parent_class = NULL;
+static gint checkerboard_item_text_one_line_height;
+static gint checkerboard_item_text_one_line_height = 0;
+static gpointer checkerboard_item_parent_class = NULL;
+static gpointer checkerboard_layout_parent_class = NULL;
+static gpointer checkerboard_layout_layout_row_parent_class = NULL;
+
+gpointer checkerboard_item_text_ref (gpointer instance);
+void checkerboard_item_text_unref (gpointer instance);
+GParamSpec* param_spec_checkerboard_item_text (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_checkerboard_item_text (GValue* value, gpointer v_object);
+void value_take_checkerboard_item_text (GValue* value, gpointer v_object);
+gpointer value_get_checkerboard_item_text (const GValue* value);
+GType checkerboard_item_text_get_type (void) G_GNUC_CONST;
+#define CHECKERBOARD_ITEM_TEXT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CHECKERBOARD_ITEM_TEXT, CheckerboardItemTextPrivate))
+enum {
+ CHECKERBOARD_ITEM_TEXT_DUMMY_PROPERTY
+};
+CheckerboardItemText* checkerboard_item_text_new (const gchar* text, PangoAlignment alignment, gboolean marked_up);
+CheckerboardItemText* checkerboard_item_text_construct (GType object_type, const gchar* text, PangoAlignment alignment, gboolean marked_up);
+static gboolean checkerboard_item_text_is_single_line (CheckerboardItemText* self);
+gboolean string_contains_char (const gchar* haystack, gunichar needle);
+gboolean checkerboard_item_text_is_marked_up (CheckerboardItemText* self);
+gboolean checkerboard_item_text_is_set_to (CheckerboardItemText* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+gchar* checkerboard_item_text_get_text (CheckerboardItemText* self);
+gint checkerboard_item_text_get_height (CheckerboardItemText* self);
+static void checkerboard_item_text_update_height (CheckerboardItemText* self);
+PangoLayout* checkerboard_item_text_get_pango_layout (CheckerboardItemText* self, gint max_width);
+static void checkerboard_item_text_create_pango (CheckerboardItemText* self);
+void checkerboard_item_text_clear_pango_layout (CheckerboardItemText* self);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+static void checkerboard_item_text_finalize (CheckerboardItemText* obj);
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType tag_get_type (void) G_GNUC_CONST;
+#define CHECKERBOARD_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CHECKERBOARD_ITEM, CheckerboardItemPrivate))
+enum {
+ CHECKERBOARD_ITEM_DUMMY_PROPERTY,
+ CHECKERBOARD_ITEM_HAS_TAGS
+};
+void dimensions_init (Dimensions *self, gint width, gint height);
+#define CHECKERBOARD_ITEM_PROP_SHOW_TITLES "show-titles"
+#define CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS "show-comments"
+#define CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES "show-subtitles"
+#define CHECKERBOARD_ITEM_FRAME_WIDTH 8
+#define CHECKERBOARD_ITEM_LABEL_PADDING 4
+#define CHECKERBOARD_ITEM_BORDER_WIDTH 1
+#define CHECKERBOARD_ITEM_SHADOW_RADIUS 4
+#define CHECKERBOARD_ITEM_SHADOW_INITIAL_ALPHA 0.5f
+#define CHECKERBOARD_ITEM_TRINKET_SCALE 12
+#define CHECKERBOARD_ITEM_TRINKET_PADDING 1
+#define CHECKERBOARD_ITEM_BRIGHTEN_SHIFT 0x18
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+CheckerboardItem* checkerboard_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+ThumbnailView* thumbnail_view_new (ThumbnailSource* source);
+ThumbnailView* thumbnail_view_construct (GType object_type, ThumbnailSource* source);
+static gchar* checkerboard_item_real_get_name (DataObject* base);
+gchar* data_object_get_name (DataObject* self);
+gchar* checkerboard_item_get_title (CheckerboardItem* self);
+gchar* checkerboard_item_get_comment (CheckerboardItem* self);
+void checkerboard_item_set_title (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+static void checkerboard_item_recalc_size (CheckerboardItem* self, const gchar* reason);
+void data_view_notify_view_altered (DataView* self);
+void checkerboard_item_clear_title (CheckerboardItem* self);
+static void checkerboard_item_set_title_visible (CheckerboardItem* self, gboolean visible);
+void checkerboard_item_set_comment (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+void checkerboard_item_clear_comment (CheckerboardItem* self);
+static void checkerboard_item_set_comment_visible (CheckerboardItem* self, gboolean visible);
+void checkerboard_item_set_tags (CheckerboardItem* self, GeeCollection* tags, PangoAlignment alignment);
+static void checkerboard_item_set_has_tags (CheckerboardItem* self, gboolean value);
+gboolean checkerboard_item_get_has_tags (CheckerboardItem* self);
+GeeList* tag_make_user_visible_tag_list (GeeCollection* tags);
+gchar* tag_make_tag_markup_string (GeeList* tags, gint highlight_index);
+void checkerboard_item_clear_tags (CheckerboardItem* self);
+void checkerboard_item_clear_subtitle (CheckerboardItem* self);
+void checkerboard_item_highlight_user_visible_tag (CheckerboardItem* self, gint index);
+Tag* checkerboard_item_get_user_visible_tag (CheckerboardItem* self, gint index);
+PangoLayout* checkerboard_item_get_tag_list_layout (CheckerboardItem* self);
+void checkerboard_item_get_subtitle_allocation (CheckerboardItem* self, GdkRectangle* result);
+gchar* checkerboard_item_get_subtitle (CheckerboardItem* self);
+void checkerboard_item_set_subtitle (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+static void checkerboard_item_set_subtitle_visible (CheckerboardItem* self, gboolean visible);
+void checkerboard_item_set_is_cursor (CheckerboardItem* self, gboolean is_cursor);
+gboolean checkerboard_item_get_is_cusor (CheckerboardItem* self);
+static void checkerboard_item_real_notify_membership_changed (DataObject* base, DataCollection* collection);
+GValue* data_object_get_collection_property (DataObject* self, const gchar* name, GValue* def);
+static void _vala_GValue_free (GValue* self);
+gboolean dimensions_has_area (Dimensions *self);
+void data_object_notify_membership_changed (DataObject* self, DataCollection* collection);
+static void checkerboard_item_real_notify_collection_property_set (DataObject* base, const gchar* name, GValue* old, GValue* val);
+void data_object_notify_collection_property_set (DataObject* self, const gchar* name, GValue* old, GValue* val);
+gint checkerboard_item_get_alignment_point (CheckerboardItem* self);
+void checkerboard_item_exposed (CheckerboardItem* self);
+static void checkerboard_item_real_exposed (CheckerboardItem* self);
+void checkerboard_item_unexposed (CheckerboardItem* self);
+static void checkerboard_item_real_unexposed (CheckerboardItem* self);
+gboolean checkerboard_item_is_exposed (CheckerboardItem* self);
+static gboolean checkerboard_item_real_is_exposed (CheckerboardItem* self);
+gboolean checkerboard_item_has_image (CheckerboardItem* self);
+GdkPixbuf* checkerboard_item_get_image (CheckerboardItem* self);
+void checkerboard_item_set_image (CheckerboardItem* self, GdkPixbuf* pixbuf);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+void checkerboard_item_clear_image (CheckerboardItem* self, Dimensions* dim);
+gint checkerboard_item_get_max_width (gint scale);
+gboolean dimensions_approx_equals (Dimensions *self, Dimensions* dim, gint fudge);
+void data_view_notify_geometry_altered (DataView* self);
+void checkerboard_item_get_border_dimensions (Dimensions* object_dim, gint border_width, Dimensions* result);
+void checkerboard_item_get_border_origin (GdkPoint* object_origin, gint border_width, GdkPoint* result);
+void checkerboard_item_paint_shadow (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+static void checkerboard_item_real_paint_shadow (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+void checkerboard_item_paint_shadow_in_corner (CheckerboardItem* self, cairo_t* ctx, gint x, gint y, gdouble rgb_all, gfloat radius, gfloat initial_alpha, gdouble arc1, gdouble arc2);
+void checkerboard_item_paint_border (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+static void checkerboard_item_real_paint_border (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+void draw_rounded_corners_filled (cairo_t* ctx, Dimensions* dim, GdkPoint* origin, gdouble radius_proportion);
+void checkerboard_item_paint_image (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+static void checkerboard_item_real_paint_image (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+static gint checkerboard_item_get_selection_border_width (CheckerboardItem* self, gint scale);
+gint thumbnail_get_MIN_SCALE (void);
+gint thumbnail_get_MAX_SCALE (void);
+GdkPixbuf* checkerboard_item_get_top_left_trinket (CheckerboardItem* self, gint scale);
+static GdkPixbuf* checkerboard_item_real_get_top_left_trinket (CheckerboardItem* self, gint scale);
+GdkPixbuf* checkerboard_item_get_top_right_trinket (CheckerboardItem* self, gint scale);
+static GdkPixbuf* checkerboard_item_real_get_top_right_trinket (CheckerboardItem* self, gint scale);
+GdkPixbuf* checkerboard_item_get_bottom_left_trinket (CheckerboardItem* self, gint scale);
+static GdkPixbuf* checkerboard_item_real_get_bottom_left_trinket (CheckerboardItem* self, gint scale);
+GdkPixbuf* checkerboard_item_get_bottom_right_trinket (CheckerboardItem* self, gint scale);
+static GdkPixbuf* checkerboard_item_real_get_bottom_right_trinket (CheckerboardItem* self, gint scale);
+void checkerboard_item_paint (CheckerboardItem* self, cairo_t* ctx, GdkRGBA* bg_color, GdkRGBA* selected_color, GdkRGBA* text_color, GdkRGBA* border_color);
+gboolean data_view_is_selected (DataView* self);
+gint checkerboard_item_get_horizontal_trinket_offset (CheckerboardItem* self);
+void checkerboard_item_set_horizontal_trinket_offset (CheckerboardItem* self, gint horizontal_trinket_offset);
+void checkerboard_item_set_grid_coordinates (CheckerboardItem* self, gint col, gint row);
+gint checkerboard_item_get_column (CheckerboardItem* self);
+gint checkerboard_item_get_row (CheckerboardItem* self);
+void checkerboard_item_brighten (CheckerboardItem* self);
+void shift_colors (GdkPixbuf* pixbuf, gint red, gint green, gint blue, gint alpha);
+void checkerboard_item_unbrighten (CheckerboardItem* self);
+static void checkerboard_item_real_visibility_changed (DataView* base, gboolean visible);
+static gboolean checkerboard_item_query_tooltip_on_text (CheckerboardItem* self, CheckerboardItemText* text, GtkTooltip* tooltip);
+gboolean checkerboard_item_query_tooltip (CheckerboardItem* self, gint x, gint y, GtkTooltip* tooltip);
+gboolean coord_in_rectangle (gint x, gint y, GdkRectangle* rect);
+static void checkerboard_item_finalize (GObject* obj);
+static void _vala_checkerboard_item_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_checkerboard_item_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType checkerboard_layout_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+static gpointer checkerboard_layout_layout_row_ref (gpointer instance);
+static void checkerboard_layout_layout_row_unref (gpointer instance);
+static GParamSpec* checkerboard_layout_param_spec_layout_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void checkerboard_layout_value_set_layout_row (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void checkerboard_layout_value_take_layout_row (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer checkerboard_layout_value_get_layout_row (const GValue* value) G_GNUC_UNUSED;
+static GType checkerboard_layout_layout_row_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define CHECKERBOARD_LAYOUT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutPrivate))
+enum {
+ CHECKERBOARD_LAYOUT_DUMMY_PROPERTY
+};
+static void checkerboard_layout_on_contents_altered (CheckerboardLayout* self, GeeIterable* added, GeeIterable* removed);
+static void _checkerboard_layout_on_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void checkerboard_layout_on_items_altered (CheckerboardLayout* self);
+static void _checkerboard_layout_on_items_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void checkerboard_layout_on_items_state_changed (CheckerboardLayout* self, GeeIterable* changed);
+static void _checkerboard_layout_on_items_state_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
+static void checkerboard_layout_on_items_visibility_changed (CheckerboardLayout* self, GeeIterable* changed);
+static void _checkerboard_layout_on_items_visibility_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self);
+static void checkerboard_layout_on_ordering_changed (CheckerboardLayout* self);
+static void _checkerboard_layout_on_ordering_changed_data_collection_ordering_changed (DataCollection* _sender, gpointer self);
+static void checkerboard_layout_on_views_altered (CheckerboardLayout* self, GeeCollection* altered);
+static void _checkerboard_layout_on_views_altered_view_collection_views_altered (ViewCollection* _sender, GeeCollection* views, gpointer self);
+static void checkerboard_layout_on_geometries_altered (CheckerboardLayout* self);
+static void _checkerboard_layout_on_geometries_altered_view_collection_geometries_altered (ViewCollection* _sender, GeeCollection* views, gpointer self);
+static void checkerboard_layout_on_items_selection_changed (CheckerboardLayout* self);
+static void _checkerboard_layout_on_items_selection_changed_view_collection_items_selected (ViewCollection* _sender, GeeIterable* selected, gpointer self);
+static void _checkerboard_layout_on_items_selection_changed_view_collection_items_unselected (ViewCollection* _sender, GeeIterable* unselected, gpointer self);
+static void checkerboard_layout_on_viewport_shifted (CheckerboardLayout* self);
+static void _checkerboard_layout_on_viewport_shifted_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self);
+static void checkerboard_layout_on_viewport_resized (CheckerboardLayout* self);
+static void _checkerboard_layout_on_viewport_resized_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+static void checkerboard_layout_on_colors_changed (CheckerboardLayout* self);
+static void _checkerboard_layout_on_colors_changed_config_facade_colors_changed (ConfigFacade* _sender, gpointer self);
+#define CHECKERBOARD_LAYOUT_TOP_PADDING 16
+#define CHECKERBOARD_LAYOUT_BOTTOM_PADDING 16
+#define CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING 24
+#define CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING 24
+#define CHECKERBOARD_LAYOUT_SELECTION_ALPHA 0.40
+#define CHECKERBOARD_LAYOUT_SCROLLBAR_PLACEHOLDER_WIDTH 1
+CheckerboardLayout* checkerboard_layout_new (ViewCollection* view);
+CheckerboardLayout* checkerboard_layout_construct (GType object_type, ViewCollection* view);
+void checkerboard_layout_clear_drag_select (CheckerboardLayout* self);
+void config_facade_get_bg_color (ConfigFacade* self, GdkRGBA* result);
+void checkerboard_layout_set_adjustments (CheckerboardLayout* self, GtkAdjustment* hadjustment, GtkAdjustment* vadjustment);
+void checkerboard_layout_set_scale (CheckerboardLayout* self, gint scale);
+gint checkerboard_layout_get_scale (CheckerboardLayout* self);
+void checkerboard_layout_set_name (CheckerboardLayout* self, const gchar* name);
+static void checkerboard_layout_viewport_resized (CheckerboardLayout* self);
+static void checkerboard_layout_clear_anchor (CheckerboardLayout* self);
+static void checkerboard_layout_update_visible_page (CheckerboardLayout* self);
+static void checkerboard_layout_need_exposure (CheckerboardLayout* self, const gchar* caller);
+static void checkerboard_layout_update_anchor (CheckerboardLayout* self);
+GeeList* checkerboard_layout_intersection (CheckerboardLayout* self, GdkRectangle* area);
+static void checkerboard_layout_center_on_anchor (CheckerboardLayout* self, gdouble upper);
+void checkerboard_layout_set_cursor (CheckerboardLayout* self, CheckerboardItem* item);
+gboolean data_collection_contains (DataCollection* self, DataObject* object);
+CheckerboardItem* checkerboard_layout_get_cursor (CheckerboardLayout* self);
+static void checkerboard_layout_need_reflow (CheckerboardLayout* self, const gchar* caller);
+static void checkerboard_layout_items_dirty (CheckerboardLayout* self, const gchar* reason, GeeIterable* items);
+static gboolean checkerboard_layout_do_reflow (CheckerboardLayout* self);
+static gboolean _checkerboard_layout_do_reflow_gsource_func (gpointer self);
+static void checkerboard_layout_reflow (CheckerboardLayout* self, const gchar* caller);
+void checkerboard_layout_set_message (CheckerboardLayout* self, const gchar* text);
+void checkerboard_layout_unset_message (CheckerboardLayout* self);
+void get_adjustment_page (GtkAdjustment* hadj, GtkAdjustment* vadj, GdkRectangle* result);
+void checkerboard_layout_set_in_view (CheckerboardLayout* self, gboolean in_view);
+static void checkerboard_layout_unexpose_items (CheckerboardLayout* self, const gchar* caller);
+CheckerboardItem* checkerboard_layout_get_item_at_pixel (CheckerboardLayout* self, gdouble xd, gdouble yd);
+gint checkerboard_layout_get_tag_index_at_pos (const gchar* tag_list, gint pos);
+#define TAG_TAG_LIST_SEPARATOR_STRING ", "
+static gint checkerboard_layout_internal_handle_tag_mouse_event (CheckerboardLayout* self, CheckerboardItem* item, gint x, gint y);
+gboolean checkerboard_layout_handle_mouse_motion (CheckerboardLayout* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+gboolean checkerboard_layout_is_drag_select_active (CheckerboardLayout* self);
+gboolean checkerboard_layout_handle_left_click (CheckerboardLayout* self, CheckerboardItem* item, gdouble xd, gdouble yd, GdkModifierType mask);
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_switch_to_tag (LibraryWindow* self, Tag* tag);
+GeeList* checkerboard_layout_get_visible_items (CheckerboardLayout* self);
+GType compass_point_get_type (void) G_GNUC_CONST;
+CheckerboardItem* checkerboard_layout_get_item_relative_to (CheckerboardLayout* self, CheckerboardItem* item, CompassPoint point);
+gint data_collection_get_count (DataCollection* self);
+CheckerboardItem* checkerboard_layout_get_item_at_coordinate (CheckerboardLayout* self, gint col, gint row);
+DataView* view_collection_get_last (ViewCollection* self);
+void checkerboard_layout_set_drag_select_origin (CheckerboardLayout* self, gint x, gint y);
+void checkerboard_layout_set_drag_select_endpoint (CheckerboardLayout* self, gint x, gint y);
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+void box_from_points (GdkPoint* corner1, GdkPoint* corner2, Box* result);
+void box_get_rectangle (Box *self, GdkRectangle* result);
+GeeList* checkerboard_layout_items_in_selection_band (CheckerboardLayout* self);
+void dimensions_for_rectangle (GdkRectangle* rect, Dimensions* result);
+static void checkerboard_layout_expose_items (CheckerboardLayout* self, const gchar* caller);
+void data_collection_freeze_notifications (DataCollection* self);
+void data_collection_thaw_notifications (DataCollection* self);
+gboolean data_view_is_visible (DataView* self);
+DataObject* data_collection_get_at (DataCollection* self, gint index);
+static CheckerboardLayoutLayoutRow* checkerboard_layout_layout_row_new (gint y, gint height, gint num_in_row);
+static CheckerboardLayoutLayoutRow* checkerboard_layout_layout_row_construct (GType object_type, gint y, gint height, gint num_in_row);
+static void checkerboard_layout_real_map (GtkWidget* base);
+static void checkerboard_layout_set_colors (CheckerboardLayout* self, gboolean in_focus);
+void config_facade_get_selected_color (ConfigFacade* self, gboolean in_focus, GdkRGBA* result);
+void config_facade_get_unselected_color (ConfigFacade* self, GdkRGBA* result);
+void config_facade_get_border_color (ConfigFacade* self, GdkRGBA* result);
+static void checkerboard_layout_real_size_allocate (GtkWidget* base, GtkAllocation* allocation);
+static gboolean checkerboard_layout_real_draw (GtkWidget* base, cairo_t* ctx);
+static void checkerboard_layout_draw_selection_band (CheckerboardLayout* self, cairo_t* ctx);
+static gboolean checkerboard_layout_real_query_tooltip (GtkWidget* base, gint x, gint y, gboolean keyboard_mode, GtkTooltip* tooltip);
+static gboolean checkerboard_layout_real_focus_in_event (GtkWidget* base, GdkEventFocus* event);
+GeeList* view_collection_get_selected (ViewCollection* self);
+static gboolean checkerboard_layout_real_focus_out_event (GtkWidget* base, GdkEventFocus* event);
+enum {
+ CHECKERBOARD_LAYOUT_LAYOUT_ROW_DUMMY_PROPERTY
+};
+static void checkerboard_layout_layout_row_finalize (CheckerboardLayoutLayoutRow* obj);
+static void checkerboard_layout_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+CheckerboardItemText* checkerboard_item_text_construct (GType object_type, const gchar* text, PangoAlignment alignment, gboolean marked_up) {
+ CheckerboardItemText* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ PangoAlignment _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+#line 19 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (text != NULL, NULL);
+#line 19 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = (CheckerboardItemText*) g_type_create_instance (object_type);
+#line 21 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = text;
+#line 21 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 21 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (self->priv->text);
+#line 21 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->text = _tmp1_;
+#line 22 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = marked_up;
+#line 22 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->marked_up = _tmp2_;
+#line 23 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = alignment;
+#line 23 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->alignment = _tmp3_;
+#line 25 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = checkerboard_item_text_is_single_line (self);
+#line 25 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->single_line = _tmp4_;
+#line 19 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return self;
+#line 754 "CheckerboardLayout.c"
+}
+
+
+CheckerboardItemText* checkerboard_item_text_new (const gchar* text, PangoAlignment alignment, gboolean marked_up) {
+#line 19 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return checkerboard_item_text_construct (TYPE_CHECKERBOARD_ITEM_TEXT, text, alignment, marked_up);
+#line 761 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_item_text_is_single_line (CheckerboardItemText* self) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 28 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self), FALSE);
+#line 29 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->text;
+#line 29 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = string_contains_char (_tmp0_, (gunichar) '\n');
+#line 29 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = !_tmp1_;
+#line 29 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 779 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_item_text_is_marked_up (CheckerboardItemText* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 32 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self), FALSE);
+#line 33 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->marked_up;
+#line 33 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 33 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 794 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_item_text_is_set_to (CheckerboardItemText* self, const gchar* text, gboolean marked_up, PangoAlignment alignment) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 36 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self), FALSE);
+#line 36 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->marked_up;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = marked_up;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_ == _tmp3_) {
+#line 814 "CheckerboardLayout.c"
+ PangoAlignment _tmp4_ = 0;
+ PangoAlignment _tmp5_ = 0;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->alignment;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = alignment;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp4_ == _tmp5_;
+#line 823 "CheckerboardLayout.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = FALSE;
+#line 827 "CheckerboardLayout.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 831 "CheckerboardLayout.c"
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = self->priv->text;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = text;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = g_strcmp0 (_tmp6_, _tmp7_) == 0;
+#line 840 "CheckerboardLayout.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 844 "CheckerboardLayout.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 37 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 850 "CheckerboardLayout.c"
+}
+
+
+gchar* checkerboard_item_text_get_text (CheckerboardItemText* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self), NULL);
+#line 41 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->text;
+#line 41 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp1_;
+#line 41 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 868 "CheckerboardLayout.c"
+}
+
+
+gint checkerboard_item_text_get_height (CheckerboardItemText* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 44 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self), 0);
+#line 45 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->height;
+#line 45 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == 0) {
+#line 46 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_update_height (self);
+#line 884 "CheckerboardLayout.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->height;
+#line 48 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 892 "CheckerboardLayout.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 58 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 899 "CheckerboardLayout.c"
+}
+
+
+PangoLayout* checkerboard_item_text_get_pango_layout (CheckerboardItemText* self, gint max_width) {
+ PangoLayout* result = NULL;
+ PangoLayout* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ PangoLayout* _tmp4_ = NULL;
+ PangoLayout* _tmp5_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self), NULL);
+#line 52 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->layout;
+#line 52 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == NULL) {
+#line 53 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_create_pango (self);
+#line 917 "CheckerboardLayout.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = max_width;
+#line 55 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ > 0) {
+#line 923 "CheckerboardLayout.c"
+ PangoLayout* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 56 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->layout;
+#line 56 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = max_width;
+#line 56 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout_set_width (_tmp2_, _tmp3_ * PANGO_SCALE);
+#line 932 "CheckerboardLayout.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->layout;
+#line 58 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 58 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp5_;
+#line 58 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 942 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_text_clear_pango_layout (CheckerboardItemText* self) {
+#line 61 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self));
+#line 62 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->layout);
+#line 62 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->layout = NULL;
+#line 953 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_text_update_height (CheckerboardItemText* self) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 65 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self));
+#line 66 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = checkerboard_item_text_one_line_height;
+#line 66 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != 0) {
+#line 966 "CheckerboardLayout.c"
+ gboolean _tmp2_ = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->single_line;
+#line 66 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp2_;
+#line 972 "CheckerboardLayout.c"
+ } else {
+#line 66 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 976 "CheckerboardLayout.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 980 "CheckerboardLayout.c"
+ gint _tmp3_ = 0;
+#line 67 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = checkerboard_item_text_one_line_height;
+#line 67 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->height = _tmp3_;
+#line 986 "CheckerboardLayout.c"
+ } else {
+#line 69 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_create_pango (self);
+#line 990 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_item_text_create_pango (CheckerboardItemText* self) {
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ PangoLayout* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PangoLayout* _tmp8_ = NULL;
+ PangoLayout* _tmp9_ = NULL;
+ PangoAlignment _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ gint _tmp12_ = 0;
+#line 72 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM_TEXT (self));
+#line 74 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 74 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_;
+#line 74 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = gtk_widget_create_pango_layout (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), NULL);
+#line 74 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->layout);
+#line 74 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->layout = _tmp2_;
+#line 74 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp1_);
+#line 75 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->marked_up;
+#line 75 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp3_) {
+#line 1023 "CheckerboardLayout.c"
+ PangoLayout* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->layout;
+#line 76 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->text;
+#line 76 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout_set_text (_tmp4_, _tmp5_, -1);
+#line 1032 "CheckerboardLayout.c"
+ } else {
+ PangoLayout* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 78 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = self->priv->layout;
+#line 78 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = self->priv->text;
+#line 78 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout_set_markup (_tmp6_, _tmp7_, -1);
+#line 1042 "CheckerboardLayout.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = self->priv->layout;
+#line 80 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout_set_ellipsize (_tmp8_, PANGO_ELLIPSIZE_END);
+#line 81 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->layout;
+#line 81 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = self->priv->alignment;
+#line 81 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout_set_alignment (_tmp9_, _tmp10_);
+#line 85 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = checkerboard_item_text_one_line_height;
+#line 85 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp12_ != 0) {
+#line 1058 "CheckerboardLayout.c"
+ gboolean _tmp13_ = FALSE;
+#line 85 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = self->priv->single_line;
+#line 85 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _tmp13_;
+#line 1064 "CheckerboardLayout.c"
+ } else {
+#line 85 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = FALSE;
+#line 1068 "CheckerboardLayout.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp11_) {
+#line 1072 "CheckerboardLayout.c"
+ gint _tmp14_ = 0;
+#line 86 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = checkerboard_item_text_one_line_height;
+#line 86 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->height = _tmp14_;
+#line 1078 "CheckerboardLayout.c"
+ } else {
+ gint width = 0;
+ PangoLayout* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gboolean _tmp18_ = FALSE;
+ gint _tmp19_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = self->priv->layout;
+#line 89 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout_get_pixel_size (_tmp15_, &_tmp16_, &_tmp17_);
+#line 89 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ width = _tmp16_;
+#line 89 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->height = _tmp17_;
+#line 92 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = checkerboard_item_text_one_line_height;
+#line 92 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp19_ == 0) {
+#line 1098 "CheckerboardLayout.c"
+ gboolean _tmp20_ = FALSE;
+#line 92 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = self->priv->single_line;
+#line 92 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = _tmp20_;
+#line 1104 "CheckerboardLayout.c"
+ } else {
+#line 92 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = FALSE;
+#line 1108 "CheckerboardLayout.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp18_) {
+#line 1112 "CheckerboardLayout.c"
+ gint _tmp21_ = 0;
+#line 93 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = self->priv->height;
+#line 93 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_one_line_height = _tmp21_;
+#line 1118 "CheckerboardLayout.c"
+ }
+ }
+}
+
+
+static void value_checkerboard_item_text_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 1127 "CheckerboardLayout.c"
+}
+
+
+static void value_checkerboard_item_text_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_unref (value->data[0].v_pointer);
+#line 1136 "CheckerboardLayout.c"
+ }
+}
+
+
+static void value_checkerboard_item_text_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dest_value->data[0].v_pointer = checkerboard_item_text_ref (src_value->data[0].v_pointer);
+#line 1146 "CheckerboardLayout.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1150 "CheckerboardLayout.c"
+ }
+}
+
+
+static gpointer value_checkerboard_item_text_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return value->data[0].v_pointer;
+#line 1158 "CheckerboardLayout.c"
+}
+
+
+static gchar* value_checkerboard_item_text_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (collect_values[0].v_pointer) {
+#line 1165 "CheckerboardLayout.c"
+ CheckerboardItemText* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1172 "CheckerboardLayout.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1176 "CheckerboardLayout.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = checkerboard_item_text_ref (object);
+#line 1180 "CheckerboardLayout.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 1184 "CheckerboardLayout.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return NULL;
+#line 1188 "CheckerboardLayout.c"
+}
+
+
+static gchar* value_checkerboard_item_text_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ CheckerboardItemText** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1199 "CheckerboardLayout.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *object_p = NULL;
+#line 1205 "CheckerboardLayout.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1209 "CheckerboardLayout.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *object_p = checkerboard_item_text_ref (value->data[0].v_pointer);
+#line 1213 "CheckerboardLayout.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return NULL;
+#line 1217 "CheckerboardLayout.c"
+}
+
+
+GParamSpec* param_spec_checkerboard_item_text (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecCheckerboardItemText* spec;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_CHECKERBOARD_ITEM_TEXT), NULL);
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return G_PARAM_SPEC (spec);
+#line 1231 "CheckerboardLayout.c"
+}
+
+
+gpointer value_get_checkerboard_item_text (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CHECKERBOARD_ITEM_TEXT), NULL);
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return value->data[0].v_pointer;
+#line 1240 "CheckerboardLayout.c"
+}
+
+
+void value_set_checkerboard_item_text (GValue* value, gpointer v_object) {
+ CheckerboardItemText* old;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CHECKERBOARD_ITEM_TEXT));
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_CHECKERBOARD_ITEM_TEXT));
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_ref (value->data[0].v_pointer);
+#line 1260 "CheckerboardLayout.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 1264 "CheckerboardLayout.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_unref (old);
+#line 1270 "CheckerboardLayout.c"
+ }
+}
+
+
+void value_take_checkerboard_item_text (GValue* value, gpointer v_object) {
+ CheckerboardItemText* old;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CHECKERBOARD_ITEM_TEXT));
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_CHECKERBOARD_ITEM_TEXT));
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = v_object;
+#line 1289 "CheckerboardLayout.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 1293 "CheckerboardLayout.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_unref (old);
+#line 1299 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_item_text_class_init (CheckerboardItemTextClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemTextClass *) klass)->finalize = checkerboard_item_text_finalize;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_type_class_add_private (klass, sizeof (CheckerboardItemTextPrivate));
+#line 1311 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_text_instance_init (CheckerboardItemText * self) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv = CHECKERBOARD_ITEM_TEXT_GET_PRIVATE (self);
+#line 13 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->layout = NULL;
+#line 14 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->single_line = TRUE;
+#line 15 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->height = 0;
+#line 17 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&self->allocation, 0, sizeof (GdkRectangle));
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->ref_count = 1;
+#line 1328 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_text_finalize (CheckerboardItemText* obj) {
+ CheckerboardItemText * self;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CHECKERBOARD_ITEM_TEXT, CheckerboardItemText);
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_destroy (self);
+#line 10 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (self->priv->text);
+#line 13 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->layout);
+#line 1342 "CheckerboardLayout.c"
+}
+
+
+GType checkerboard_item_text_get_type (void) {
+ static volatile gsize checkerboard_item_text_type_id__volatile = 0;
+ if (g_once_init_enter (&checkerboard_item_text_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_checkerboard_item_text_init, value_checkerboard_item_text_free_value, value_checkerboard_item_text_copy_value, value_checkerboard_item_text_peek_pointer, "p", value_checkerboard_item_text_collect_value, "p", value_checkerboard_item_text_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (CheckerboardItemTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) checkerboard_item_text_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CheckerboardItemText), 0, (GInstanceInitFunc) checkerboard_item_text_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType checkerboard_item_text_type_id;
+ checkerboard_item_text_type_id = g_type_register_fundamental (g_type_fundamental_next (), "CheckerboardItemText", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&checkerboard_item_text_type_id__volatile, checkerboard_item_text_type_id);
+ }
+ return checkerboard_item_text_type_id__volatile;
+}
+
+
+gpointer checkerboard_item_text_ref (gpointer instance) {
+ CheckerboardItemText* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return instance;
+#line 1367 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_text_unref (gpointer instance) {
+ CheckerboardItemText* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ CHECKERBOARD_ITEM_TEXT_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1380 "CheckerboardLayout.c"
+ }
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 1394 "CheckerboardLayout.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1425 "CheckerboardLayout.c"
+ goto __catch229_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1434 "CheckerboardLayout.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1450 "CheckerboardLayout.c"
+ goto __catch229_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1461 "CheckerboardLayout.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1475 "CheckerboardLayout.c"
+ }
+ goto __finally229;
+ __catch229_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 1489 "CheckerboardLayout.c"
+ }
+ __finally229:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1500 "CheckerboardLayout.c"
+ }
+}
+
+
+CheckerboardItem* checkerboard_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment) {
+ CheckerboardItem * self = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ const gchar* _tmp2_ = NULL;
+ PangoAlignment _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ CheckerboardItemText* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), NULL);
+#line 141 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (initial_pixbuf_dim != NULL, NULL);
+#line 141 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (title != NULL, NULL);
+#line 143 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = source;
+#line 143 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = (CheckerboardItem*) thumbnail_view_construct (object_type, _tmp0_);
+#line 145 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = *initial_pixbuf_dim;
+#line 145 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->pixbuf_dim = _tmp1_;
+#line 146 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = title;
+#line 146 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = alignment;
+#line 146 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = marked_up;
+#line 146 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = checkerboard_item_text_new (_tmp2_, _tmp3_, _tmp4_);
+#line 146 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->title);
+#line 146 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->title = _tmp5_;
+#line 152 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = comment;
+#line 152 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_ != NULL) {
+#line 1544 "CheckerboardLayout.c"
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ PangoAlignment _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ CheckerboardItemText* _tmp12_ = NULL;
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = comment;
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = string_replace (_tmp7_, "\n", " ");
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = _tmp8_;
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = alignment;
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = marked_up;
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = checkerboard_item_text_new (_tmp9_, _tmp10_, _tmp11_);
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->comment);
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->comment = _tmp12_;
+#line 153 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp9_);
+#line 1569 "CheckerboardLayout.c"
+ }
+#line 141 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return self;
+#line 1573 "CheckerboardLayout.c"
+}
+
+
+static gchar* checkerboard_item_real_get_name (DataObject* base) {
+ CheckerboardItem * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ CheckerboardItemText* _tmp1_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->title;
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 1588 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->title;
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = checkerboard_item_text_get_text (_tmp2_);
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp3_;
+#line 1599 "CheckerboardLayout.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = DATA_OBJECT_CLASS (checkerboard_item_parent_class)->get_name (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_VIEW, ThumbnailView), TYPE_DATA_OBJECT, DataObject));
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_;
+#line 1608 "CheckerboardLayout.c"
+ }
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 164 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 1614 "CheckerboardLayout.c"
+}
+
+
+gchar* checkerboard_item_get_title (CheckerboardItem* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ CheckerboardItemText* _tmp1_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->title;
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 1628 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->title;
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = checkerboard_item_text_get_text (_tmp2_);
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp3_;
+#line 1639 "CheckerboardLayout.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = g_strdup ("");
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_;
+#line 1648 "CheckerboardLayout.c"
+ }
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 1654 "CheckerboardLayout.c"
+}
+
+
+gchar* checkerboard_item_get_comment (CheckerboardItem* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ CheckerboardItemText* _tmp1_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->comment;
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 1668 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->comment;
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = checkerboard_item_text_get_text (_tmp2_);
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp3_;
+#line 1679 "CheckerboardLayout.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = g_strdup ("");
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_;
+#line 1688 "CheckerboardLayout.c"
+ }
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 1694 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_title (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment) {
+ gboolean _tmp0_ = FALSE;
+ CheckerboardItemText* _tmp1_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ PangoAlignment _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ CheckerboardItemText* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 175 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 175 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (text != NULL);
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->title;
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 1714 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ PangoAlignment _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->title;
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = text;
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = marked_up;
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = alignment;
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = checkerboard_item_text_is_set_to (_tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp6_;
+#line 1732 "CheckerboardLayout.c"
+ } else {
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 1736 "CheckerboardLayout.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 178 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 1742 "CheckerboardLayout.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = text;
+#line 180 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = alignment;
+#line 180 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = marked_up;
+#line 180 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = checkerboard_item_text_new (_tmp7_, _tmp8_, _tmp9_);
+#line 180 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->title);
+#line 180 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->title = _tmp10_;
+#line 182 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->title_visible;
+#line 182 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp11_) {
+#line 183 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_title");
+#line 184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 1764 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_item_clear_title (CheckerboardItem* self) {
+ CheckerboardItemText* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 188 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 189 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->title;
+#line 189 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == NULL) {
+#line 190 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 1780 "CheckerboardLayout.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->title);
+#line 192 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->title = NULL;
+#line 194 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->title_visible;
+#line 194 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 195 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "clear_title");
+#line 196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 1794 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_item_set_title_visible (CheckerboardItem* self, gboolean visible) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 200 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 201 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->title_visible;
+#line 201 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = visible;
+#line 201 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 202 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 1813 "CheckerboardLayout.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = visible;
+#line 204 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->title_visible = _tmp2_;
+#line 206 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_title_visible");
+#line 207 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 1823 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_comment (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment) {
+ gboolean _tmp0_ = FALSE;
+ CheckerboardItemText* _tmp1_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ PangoAlignment _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ CheckerboardItemText* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 210 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 210 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (text != NULL);
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->comment;
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 1845 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ PangoAlignment _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->comment;
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = text;
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = marked_up;
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = alignment;
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = checkerboard_item_text_is_set_to (_tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp6_;
+#line 1863 "CheckerboardLayout.c"
+ } else {
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 1867 "CheckerboardLayout.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 213 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 1873 "CheckerboardLayout.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = text;
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = string_replace (_tmp7_, "\n", " ");
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = _tmp8_;
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = alignment;
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = marked_up;
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = checkerboard_item_text_new (_tmp9_, _tmp10_, _tmp11_);
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->comment);
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->comment = _tmp12_;
+#line 215 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp9_);
+#line 217 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = self->priv->comment_visible;
+#line 217 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp13_) {
+#line 218 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_comment");
+#line 219 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 1901 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_item_clear_comment (CheckerboardItem* self) {
+ CheckerboardItemText* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 223 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 224 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->comment;
+#line 224 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == NULL) {
+#line 225 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 1917 "CheckerboardLayout.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->comment);
+#line 227 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->comment = NULL;
+#line 229 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->comment_visible;
+#line 229 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 230 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "clear_comment");
+#line 231 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 1931 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_item_set_comment_visible (CheckerboardItem* self, gboolean visible) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 235 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 236 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->comment_visible;
+#line 236 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = visible;
+#line 236 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 237 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 1950 "CheckerboardLayout.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = visible;
+#line 239 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->comment_visible = _tmp2_;
+#line 241 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_comment_visible");
+#line 242 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 1960 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_tags (CheckerboardItem* self, GeeCollection* tags, PangoAlignment alignment) {
+ gboolean _tmp0_ = FALSE;
+ GeeCollection* _tmp1_ = NULL;
+ PangoAlignment _tmp5_ = 0;
+ gchar* text = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ CheckerboardItemText* _tmp15_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ PangoAlignment _tmp21_ = 0;
+ CheckerboardItemText* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail ((tags == NULL) || GEE_IS_COLLECTION (tags));
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = tags;
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 1984 "CheckerboardLayout.c"
+ GeeCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = tags;
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = gee_collection_get_size (_tmp2_);
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_;
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_ > 0;
+#line 1996 "CheckerboardLayout.c"
+ } else {
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 2000 "CheckerboardLayout.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_has_tags (self, _tmp0_);
+#line 248 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = alignment;
+#line 248 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->tag_alignment = _tmp5_;
+#line 250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = self->priv->_has_tags;
+#line 250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_) {
+#line 2012 "CheckerboardLayout.c"
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ GeeList* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = tags;
+#line 251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->tags);
+#line 251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->tags = _tmp8_;
+#line 252 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = tags;
+#line 252 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = tag_make_user_visible_tag_list (_tmp9_);
+#line 252 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->user_visible_tag_list);
+#line 252 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->user_visible_tag_list = _tmp10_;
+#line 253 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->user_visible_tag_list;
+#line 253 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = tag_make_tag_markup_string (_tmp11_, -1);
+#line 253 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (text);
+#line 253 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text = _tmp12_;
+#line 2043 "CheckerboardLayout.c"
+ } else {
+ gchar* _tmp13_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = g_strdup ("<small>.</small>");
+#line 255 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (text);
+#line 255 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text = _tmp13_;
+#line 2052 "CheckerboardLayout.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = self->priv->subtitle;
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp15_ != NULL) {
+#line 2058 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ PangoAlignment _tmp18_ = 0;
+ gboolean _tmp19_ = FALSE;
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = self->priv->subtitle;
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = text;
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = alignment;
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = checkerboard_item_text_is_set_to (_tmp16_, _tmp17_, TRUE, _tmp18_);
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp19_;
+#line 2073 "CheckerboardLayout.c"
+ } else {
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = FALSE;
+#line 2077 "CheckerboardLayout.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp14_) {
+#line 259 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (text);
+#line 259 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 2085 "CheckerboardLayout.c"
+ }
+#line 260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = text;
+#line 260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = alignment;
+#line 260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = checkerboard_item_text_new (_tmp20_, _tmp21_, TRUE);
+#line 260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->subtitle);
+#line 260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle = _tmp22_;
+#line 262 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = self->priv->subtitle_visible;
+#line 262 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp23_) {
+#line 263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_subtitle");
+#line 264 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2105 "CheckerboardLayout.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (text);
+#line 2109 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_clear_tags (CheckerboardItem* self) {
+#line 268 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 269 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_clear_subtitle (self);
+#line 270 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_has_tags (self, FALSE);
+#line 271 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->user_visible_tag_list);
+#line 271 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->user_visible_tag_list = NULL;
+#line 2124 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_highlight_user_visible_tag (CheckerboardItem* self, gint index) {
+ GeeList* _tmp0_ = NULL;
+ gchar* text = NULL;
+ GeeList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ PangoAlignment _tmp5_ = 0;
+ CheckerboardItemText* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 274 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 274 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->user_visible_tag_list;
+#line 274 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_return_if_fail (_tmp0_ != NULL, "user_visible_tag_list != null");
+#line 276 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->user_visible_tag_list;
+#line 276 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = index;
+#line 276 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = tag_make_tag_markup_string (_tmp1_, _tmp2_);
+#line 276 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text = _tmp3_;
+#line 277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = text;
+#line 277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->tag_alignment;
+#line 277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = checkerboard_item_text_new (_tmp4_, _tmp5_, TRUE);
+#line 277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->subtitle);
+#line 277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle = _tmp6_;
+#line 279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = self->priv->subtitle_visible;
+#line 279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp7_) {
+#line 280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2168 "CheckerboardLayout.c"
+ }
+#line 274 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (text);
+#line 2172 "CheckerboardLayout.c"
+}
+
+
+Tag* checkerboard_item_get_user_visible_tag (CheckerboardItem* self, gint index) {
+ Tag* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GeeList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gpointer _tmp7_ = NULL;
+#line 283 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 283 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = index;
+#line 283 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = index;
+#line 283 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->user_visible_tag_list;
+#line 283 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 283 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_;
+#line 283 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_return_val_if_fail ((_tmp0_ >= 0) && (_tmp1_ < _tmp4_), "index >= 0 && index < user_visible_tag_list.size", NULL);
+#line 285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->user_visible_tag_list;
+#line 285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = index;
+#line 285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = gee_list_get (_tmp5_, _tmp6_);
+#line 285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = (Tag*) _tmp7_;
+#line 285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2210 "CheckerboardLayout.c"
+}
+
+
+PangoLayout* checkerboard_item_get_tag_list_layout (CheckerboardItem* self) {
+ PangoLayout* result = NULL;
+ PangoLayout* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 288 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->_has_tags;
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 2224 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ PangoLayout* _tmp3_ = NULL;
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->subtitle;
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = checkerboard_item_text_get_pango_layout (_tmp2_, 0);
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp0_);
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp3_;
+#line 2235 "CheckerboardLayout.c"
+ } else {
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp0_);
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = NULL;
+#line 2241 "CheckerboardLayout.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2247 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_get_subtitle_allocation (CheckerboardItem* self, GdkRectangle* result) {
+ CheckerboardItemText* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+#line 292 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->subtitle;
+#line 293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_->allocation;
+#line 293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *result = _tmp1_;
+#line 293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 2264 "CheckerboardLayout.c"
+}
+
+
+gchar* checkerboard_item_get_subtitle (CheckerboardItem* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ CheckerboardItemText* _tmp1_ = NULL;
+#line 296 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->subtitle;
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 2278 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->subtitle;
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = checkerboard_item_text_get_text (_tmp2_);
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp3_;
+#line 2289 "CheckerboardLayout.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = g_strdup ("");
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp0_);
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_;
+#line 2298 "CheckerboardLayout.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2304 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_subtitle (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment) {
+ gboolean _tmp0_ = FALSE;
+ CheckerboardItemText* _tmp1_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ PangoAlignment _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ CheckerboardItemText* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 300 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 300 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (text != NULL);
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->subtitle;
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 2324 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ PangoAlignment _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->subtitle;
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = text;
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = marked_up;
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = alignment;
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = checkerboard_item_text_is_set_to (_tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp6_;
+#line 2342 "CheckerboardLayout.c"
+ } else {
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 2346 "CheckerboardLayout.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 303 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 2352 "CheckerboardLayout.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = text;
+#line 305 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = alignment;
+#line 305 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = marked_up;
+#line 305 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = checkerboard_item_text_new (_tmp7_, _tmp8_, _tmp9_);
+#line 305 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->subtitle);
+#line 305 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle = _tmp10_;
+#line 307 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->subtitle_visible;
+#line 307 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp11_) {
+#line 308 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_subtitle");
+#line 309 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2374 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_item_clear_subtitle (CheckerboardItem* self) {
+ CheckerboardItemText* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 314 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->subtitle;
+#line 314 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == NULL) {
+#line 315 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 2390 "CheckerboardLayout.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->subtitle);
+#line 317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle = NULL;
+#line 319 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->subtitle_visible;
+#line 319 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 320 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "clear_subtitle");
+#line 321 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2404 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_item_set_subtitle_visible (CheckerboardItem* self, gboolean visible) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 325 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 326 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->subtitle_visible;
+#line 326 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = visible;
+#line 326 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 327 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 2423 "CheckerboardLayout.c"
+ }
+#line 329 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = visible;
+#line 329 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle_visible = _tmp2_;
+#line 331 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_subtitle_visible");
+#line 332 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2433 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_is_cursor (CheckerboardItem* self, gboolean is_cursor) {
+ gboolean _tmp0_ = FALSE;
+#line 335 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = is_cursor;
+#line 336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->is_cursor = _tmp0_;
+#line 2445 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_item_get_is_cusor (CheckerboardItem* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 339 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), FALSE);
+#line 340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->is_cursor;
+#line 340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2460 "CheckerboardLayout.c"
+}
+
+
+static void _vala_GValue_free (GValue* self) {
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_unset (self);
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_free (self);
+#line 2469 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_notify_membership_changed (DataObject* base, DataCollection* collection) {
+ CheckerboardItem * self;
+ gboolean title_visible = FALSE;
+ GValue* _tmp0_ = NULL;
+ GValue* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean comment_visible = FALSE;
+ GValue* _tmp3_ = NULL;
+ GValue* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean subtitle_visible = FALSE;
+ GValue* _tmp6_ = NULL;
+ GValue* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean altered = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ DataCollection* _tmp21_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 343 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail ((collection == NULL) || IS_DATA_COLLECTION (collection));
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = g_new0 (GValue, 1);
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_init (_tmp0_, G_TYPE_BOOLEAN);
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_set_boolean (_tmp0_, TRUE);
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = data_object_get_collection_property (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), CHECKERBOARD_ITEM_PROP_SHOW_TITLES, _tmp0_);
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = g_value_get_boolean (_tmp1_);
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ __vala_GValue_free0 (_tmp0_);
+#line 344 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ title_visible = _tmp2_;
+#line 345 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = g_new0 (GValue, 1);
+#line 345 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_init (_tmp3_, G_TYPE_BOOLEAN);
+#line 345 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_set_boolean (_tmp3_, TRUE);
+#line 345 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = data_object_get_collection_property (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS, _tmp3_);
+#line 345 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = g_value_get_boolean (_tmp4_);
+#line 345 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ __vala_GValue_free0 (_tmp3_);
+#line 345 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ comment_visible = _tmp5_;
+#line 346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = g_new0 (GValue, 1);
+#line 346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_init (_tmp6_, G_TYPE_BOOLEAN);
+#line 346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_set_boolean (_tmp6_, FALSE);
+#line 346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = data_object_get_collection_property (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES, _tmp6_);
+#line 346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = g_value_get_boolean (_tmp7_);
+#line 346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ __vala_GValue_free0 (_tmp6_);
+#line 346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ subtitle_visible = _tmp8_;
+#line 348 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ altered = FALSE;
+#line 349 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->title_visible;
+#line 349 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = title_visible;
+#line 349 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp9_ != _tmp10_) {
+#line 2551 "CheckerboardLayout.c"
+ gboolean _tmp11_ = FALSE;
+#line 350 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = title_visible;
+#line 350 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->title_visible = _tmp11_;
+#line 351 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ altered = TRUE;
+#line 2559 "CheckerboardLayout.c"
+ }
+#line 354 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = self->priv->comment_visible;
+#line 354 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = comment_visible;
+#line 354 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp12_ != _tmp13_) {
+#line 2567 "CheckerboardLayout.c"
+ gboolean _tmp14_ = FALSE;
+#line 355 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = comment_visible;
+#line 355 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->comment_visible = _tmp14_;
+#line 356 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ altered = TRUE;
+#line 2575 "CheckerboardLayout.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = self->priv->subtitle_visible;
+#line 359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = subtitle_visible;
+#line 359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp15_ != _tmp16_) {
+#line 2583 "CheckerboardLayout.c"
+ gboolean _tmp17_ = FALSE;
+#line 360 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = subtitle_visible;
+#line 360 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle_visible = _tmp17_;
+#line 361 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ altered = TRUE;
+#line 2591 "CheckerboardLayout.c"
+ }
+#line 364 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = altered;
+#line 364 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp19_) {
+#line 364 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = TRUE;
+#line 2599 "CheckerboardLayout.c"
+ } else {
+ gboolean _tmp20_ = FALSE;
+#line 364 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = dimensions_has_area (&self->requisition);
+#line 364 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = !_tmp20_;
+#line 2606 "CheckerboardLayout.c"
+ }
+#line 364 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp18_) {
+#line 365 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "notify_membership_changed");
+#line 366 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2614 "CheckerboardLayout.c"
+ }
+#line 369 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = collection;
+#line 369 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ DATA_OBJECT_CLASS (checkerboard_item_parent_class)->notify_membership_changed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_VIEW, ThumbnailView), TYPE_DATA_OBJECT, DataObject), _tmp21_);
+#line 2620 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_notify_collection_property_set (DataObject* base, const gchar* name, GValue* old, GValue* val) {
+ CheckerboardItem * self;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+ const gchar* _tmp7_ = NULL;
+ GValue* _tmp8_ = NULL;
+ GValue _tmp9_ = {0};
+#line 372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (name != NULL);
+#line 372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (val != NULL);
+#line 373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = name;
+#line 373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_;
+#line 373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp3_ == g_quark_from_string (CHECKERBOARD_ITEM_PROP_SHOW_TITLES)) {
+#line 373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ switch (0) {
+#line 2648 "CheckerboardLayout.c"
+ default:
+ {
+ GValue _tmp4_ = {0};
+#line 375 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = *val;
+#line 375 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_title_visible (self, g_value_get_boolean (&_tmp4_));
+#line 376 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 2658 "CheckerboardLayout.c"
+ }
+ }
+ } else if (_tmp3_ == g_quark_from_string (CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS)) {
+#line 373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ switch (0) {
+#line 2664 "CheckerboardLayout.c"
+ default:
+ {
+ GValue _tmp5_ = {0};
+#line 379 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = *val;
+#line 379 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_comment_visible (self, g_value_get_boolean (&_tmp5_));
+#line 380 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 2674 "CheckerboardLayout.c"
+ }
+ }
+ } else if (_tmp3_ == g_quark_from_string (CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES)) {
+#line 373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ switch (0) {
+#line 2680 "CheckerboardLayout.c"
+ default:
+ {
+ GValue _tmp6_ = {0};
+#line 383 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = *val;
+#line 383 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_subtitle_visible (self, g_value_get_boolean (&_tmp6_));
+#line 384 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 2690 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 387 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = name;
+#line 387 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = old;
+#line 387 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = *val;
+#line 387 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ DATA_OBJECT_CLASS (checkerboard_item_parent_class)->notify_collection_property_set (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_VIEW, ThumbnailView), TYPE_DATA_OBJECT, DataObject), _tmp7_, _tmp8_, &_tmp9_);
+#line 2702 "CheckerboardLayout.c"
+}
+
+
+gint checkerboard_item_get_alignment_point (CheckerboardItem* self) {
+ gint result = 0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+#line 393 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), 0);
+#line 394 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->pixbuf_dim;
+#line 394 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_.height;
+#line 394 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = (CHECKERBOARD_ITEM_FRAME_WIDTH + CHECKERBOARD_ITEM_BORDER_WIDTH) + _tmp1_;
+#line 394 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2720 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_exposed (CheckerboardItem* self) {
+#line 398 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposure = TRUE;
+#line 2727 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_exposed (CheckerboardItem* self) {
+#line 397 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 397 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ CHECKERBOARD_ITEM_GET_CLASS (self)->exposed (self);
+#line 2736 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_unexposed (CheckerboardItem* self) {
+ CheckerboardItemText* _tmp0_ = NULL;
+ CheckerboardItemText* _tmp2_ = NULL;
+ CheckerboardItemText* _tmp4_ = NULL;
+#line 402 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposure = FALSE;
+#line 404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->title;
+#line 404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ != NULL) {
+#line 2750 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp1_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->title;
+#line 405 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_clear_pango_layout (_tmp1_);
+#line 2756 "CheckerboardLayout.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->comment;
+#line 407 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_ != NULL) {
+#line 2762 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp3_ = NULL;
+#line 408 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->comment;
+#line 408 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_clear_pango_layout (_tmp3_);
+#line 2768 "CheckerboardLayout.c"
+ }
+#line 410 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->subtitle;
+#line 410 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp4_ != NULL) {
+#line 2774 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp5_ = NULL;
+#line 411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->subtitle;
+#line 411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_text_clear_pango_layout (_tmp5_);
+#line 2780 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_item_unexposed (CheckerboardItem* self) {
+#line 401 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 401 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ CHECKERBOARD_ITEM_GET_CLASS (self)->unexposed (self);
+#line 2790 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_item_real_is_exposed (CheckerboardItem* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 415 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->exposure;
+#line 415 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 415 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2803 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_item_is_exposed (CheckerboardItem* self) {
+#line 414 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), FALSE);
+#line 414 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return CHECKERBOARD_ITEM_GET_CLASS (self)->is_exposed (self);
+#line 2812 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_item_has_image (CheckerboardItem* self) {
+ gboolean result = FALSE;
+ GdkPixbuf* _tmp0_ = NULL;
+#line 418 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), FALSE);
+#line 419 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->pixbuf;
+#line 419 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_ != NULL;
+#line 419 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2827 "CheckerboardLayout.c"
+}
+
+
+GdkPixbuf* checkerboard_item_get_image (CheckerboardItem* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 422 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 423 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->pixbuf;
+#line 423 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 423 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp1_;
+#line 423 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2845 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_image (CheckerboardItem* self, GdkPixbuf* pixbuf) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+#line 426 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 426 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 427 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = pixbuf;
+#line 427 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 427 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->pixbuf);
+#line 427 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->pixbuf = _tmp1_;
+#line 428 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = pixbuf;
+#line 428 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 428 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->display_pixbuf);
+#line 428 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->display_pixbuf = _tmp3_;
+#line 429 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = pixbuf;
+#line 429 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions_for_pixbuf (_tmp4_, &_tmp5_);
+#line 429 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->pixbuf_dim = _tmp5_;
+#line 431 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "set_image");
+#line 432 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2886 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_clear_image (CheckerboardItem* self, Dimensions* dim) {
+ gboolean had_image = FALSE;
+ GdkPixbuf* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 435 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 435 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (dim != NULL);
+#line 436 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->pixbuf;
+#line 436 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ had_image = _tmp0_ != NULL;
+#line 438 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->pixbuf);
+#line 438 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->pixbuf = NULL;
+#line 439 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->display_pixbuf);
+#line 439 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->display_pixbuf = NULL;
+#line 440 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = *dim;
+#line 440 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->pixbuf_dim = _tmp1_;
+#line 442 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_recalc_size (self, "clear_image");
+#line 444 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = had_image;
+#line 444 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_) {
+#line 445 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 2923 "CheckerboardLayout.c"
+ }
+}
+
+
+gint checkerboard_item_get_max_width (gint scale) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 451 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = scale;
+#line 451 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = (CHECKERBOARD_ITEM_FRAME_WIDTH * 2) + _tmp0_;
+#line 451 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 2937 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_recalc_size (CheckerboardItem* self, const gchar* reason) {
+ Dimensions old_requisition = {0};
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ CheckerboardItemText* _tmp3_ = NULL;
+ gint title_height = 0;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ CheckerboardItemText* _tmp9_ = NULL;
+ gint comment_height = 0;
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ CheckerboardItemText* _tmp15_ = NULL;
+ gint subtitle_height = 0;
+ Dimensions _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ Dimensions _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ Dimensions _tmp26_ = {0};
+ gboolean _tmp27_ = FALSE;
+#line 454 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 454 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (reason != NULL);
+#line 455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->requisition;
+#line 455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ old_requisition = _tmp0_;
+#line 458 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->title;
+#line 458 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp3_ != NULL) {
+#line 2977 "CheckerboardLayout.c"
+ gboolean _tmp4_ = FALSE;
+#line 458 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->title_visible;
+#line 458 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp4_;
+#line 2983 "CheckerboardLayout.c"
+ } else {
+#line 458 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = FALSE;
+#line 2987 "CheckerboardLayout.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_) {
+#line 2991 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 459 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->title;
+#line 459 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = checkerboard_item_text_get_height (_tmp5_);
+#line 459 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp6_ + CHECKERBOARD_ITEM_LABEL_PADDING;
+#line 3000 "CheckerboardLayout.c"
+ } else {
+#line 459 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = 0;
+#line 3004 "CheckerboardLayout.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ title_height = _tmp1_;
+#line 460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->comment;
+#line 460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp9_ != NULL) {
+#line 3012 "CheckerboardLayout.c"
+ gboolean _tmp10_ = FALSE;
+#line 460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = self->priv->comment_visible;
+#line 460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp10_;
+#line 3018 "CheckerboardLayout.c"
+ } else {
+#line 460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = FALSE;
+#line 3022 "CheckerboardLayout.c"
+ }
+#line 460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp8_) {
+#line 3026 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+#line 461 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->comment;
+#line 461 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = checkerboard_item_text_get_height (_tmp11_);
+#line 461 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp12_ + CHECKERBOARD_ITEM_LABEL_PADDING;
+#line 3035 "CheckerboardLayout.c"
+ } else {
+#line 461 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = 0;
+#line 3039 "CheckerboardLayout.c"
+ }
+#line 460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ comment_height = _tmp7_;
+#line 462 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = self->priv->subtitle;
+#line 462 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp15_ != NULL) {
+#line 3047 "CheckerboardLayout.c"
+ gboolean _tmp16_ = FALSE;
+#line 462 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = self->priv->subtitle_visible;
+#line 462 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp16_;
+#line 3053 "CheckerboardLayout.c"
+ } else {
+#line 462 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = FALSE;
+#line 3057 "CheckerboardLayout.c"
+ }
+#line 462 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp14_) {
+#line 3061 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = self->priv->subtitle;
+#line 463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = checkerboard_item_text_get_height (_tmp17_);
+#line 463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp18_ + CHECKERBOARD_ITEM_LABEL_PADDING;
+#line 3070 "CheckerboardLayout.c"
+ } else {
+#line 463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = 0;
+#line 3074 "CheckerboardLayout.c"
+ }
+#line 462 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ subtitle_height = _tmp13_;
+#line 467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = self->priv->pixbuf_dim;
+#line 467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = _tmp19_.width;
+#line 467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->requisition.width = ((CHECKERBOARD_ITEM_FRAME_WIDTH * 2) + (CHECKERBOARD_ITEM_BORDER_WIDTH * 2)) + _tmp20_;
+#line 471 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = self->priv->pixbuf_dim;
+#line 471 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _tmp21_.height;
+#line 471 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = title_height;
+#line 471 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = comment_height;
+#line 471 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = subtitle_height;
+#line 471 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->requisition.height = (((((CHECKERBOARD_ITEM_FRAME_WIDTH * 2) + (CHECKERBOARD_ITEM_BORDER_WIDTH * 2)) + _tmp22_) + _tmp23_) + _tmp24_) + _tmp25_;
+#line 480 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = old_requisition;
+#line 480 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = dimensions_approx_equals (&self->requisition, &_tmp26_, 1);
+#line 480 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp27_) {
+#line 484 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_geometry_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 3104 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_item_get_border_dimensions (Dimensions* object_dim, gint border_width, Dimensions* result) {
+ Dimensions dimensions = {0};
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 488 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (object_dim != NULL);
+#line 489 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions_init (&dimensions, 0, 0);
+#line 490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = *object_dim;
+#line 490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_.width;
+#line 490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = border_width;
+#line 490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions.width = _tmp1_ + (_tmp2_ * 2);
+#line 491 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = *object_dim;
+#line 491 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.height;
+#line 491 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = border_width;
+#line 491 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions.height = _tmp4_ + (_tmp5_ * 2);
+#line 492 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *result = dimensions;
+#line 492 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 3141 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_get_border_origin (GdkPoint* object_origin, gint border_width, GdkPoint* result) {
+ GdkPoint origin = {0};
+ GdkPoint _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 495 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (object_origin != NULL);
+#line 496 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&origin, 0, sizeof (GdkPoint));
+#line 497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = *object_origin;
+#line 497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_.x;
+#line 497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = border_width;
+#line 497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ origin.x = _tmp1_ - _tmp2_;
+#line 498 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = *object_origin;
+#line 498 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.y;
+#line 498 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = border_width;
+#line 498 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ origin.y = _tmp4_ - _tmp5_;
+#line 499 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *result = origin;
+#line 499 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 3177 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_paint_shadow (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha) {
+ gdouble rgb_all = 0.0;
+ cairo_t* _tmp0_ = NULL;
+ GdkPoint _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gfloat _tmp9_ = 0.0F;
+ cairo_t* _tmp10_ = NULL;
+ GdkPoint _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ Dimensions _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ GdkPoint _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gfloat _tmp20_ = 0.0F;
+ cairo_t* _tmp21_ = NULL;
+ GdkPoint _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ GdkPoint _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ Dimensions _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gfloat _tmp30_ = 0.0F;
+ cairo_pattern_t* lr = NULL;
+ GdkPoint _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ Dimensions _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ GdkPoint _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ Dimensions _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ cairo_pattern_t* _tmp40_ = NULL;
+ gfloat _tmp41_ = 0.0F;
+ cairo_t* _tmp42_ = NULL;
+ cairo_t* _tmp43_ = NULL;
+ GdkPoint _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ GdkPoint _tmp47_ = {0};
+ gint _tmp48_ = 0;
+ Dimensions _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ Dimensions _tmp51_ = {0};
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ cairo_t* _tmp55_ = NULL;
+ cairo_pattern_t* td = NULL;
+ GdkPoint _tmp56_ = {0};
+ gint _tmp57_ = 0;
+ Dimensions _tmp58_ = {0};
+ gint _tmp59_ = 0;
+ GdkPoint _tmp60_ = {0};
+ gint _tmp61_ = 0;
+ Dimensions _tmp62_ = {0};
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+ cairo_pattern_t* _tmp65_ = NULL;
+ gfloat _tmp66_ = 0.0F;
+ cairo_t* _tmp67_ = NULL;
+ cairo_t* _tmp68_ = NULL;
+ GdkPoint _tmp69_ = {0};
+ gint _tmp70_ = 0;
+ Dimensions _tmp71_ = {0};
+ gint _tmp72_ = 0;
+ GdkPoint _tmp73_ = {0};
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+ Dimensions _tmp77_ = {0};
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ cairo_t* _tmp80_ = NULL;
+#line 502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (ctx != NULL);
+#line 502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (dimensions != NULL);
+#line 502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (origin != NULL);
+#line 504 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ rgb_all = 0.0;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = ctx;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = *origin;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_.x;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = *dimensions;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.width;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = *origin;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.y;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = radius;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = radius;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = initial_alpha;
+#line 507 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_shadow_in_corner (self, _tmp0_, _tmp2_ + _tmp4_, _tmp6_ + _tmp7_, rgb_all, (gfloat) _tmp8_, _tmp9_, (-0.5) * G_PI, (gdouble) 0);
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = ctx;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = *origin;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _tmp11_.x;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = *dimensions;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp13_.width;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = *origin;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = _tmp15_.y;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = *dimensions;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = _tmp17_.height;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = radius;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = initial_alpha;
+#line 510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_shadow_in_corner (self, _tmp10_, _tmp12_ + _tmp14_, _tmp16_ + _tmp18_, rgb_all, (gfloat) _tmp19_, _tmp20_, (gdouble) 0, 0.5 * G_PI);
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = ctx;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = *origin;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = _tmp22_.x;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = radius;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = *origin;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = _tmp25_.y;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = *dimensions;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = _tmp27_.height;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = radius;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = initial_alpha;
+#line 513 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_shadow_in_corner (self, _tmp21_, _tmp23_ + _tmp24_, _tmp26_ + _tmp28_, rgb_all, (gfloat) _tmp29_, _tmp30_, 0.5 * G_PI, G_PI);
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = *origin;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = _tmp31_.y;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = *dimensions;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = _tmp33_.height;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = *origin;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = _tmp35_.y;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = *dimensions;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = _tmp37_.height;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = radius;
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = cairo_pattern_create_linear ((gdouble) 0, (gdouble) (_tmp32_ + _tmp34_), (gdouble) 0, (gdouble) ((_tmp36_ + _tmp38_) + _tmp39_));
+#line 517 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ lr = _tmp40_;
+#line 519 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = initial_alpha;
+#line 519 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_pattern_add_color_stop_rgba (lr, 0.0, rgb_all, rgb_all, rgb_all, (gdouble) _tmp41_);
+#line 520 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_pattern_add_color_stop_rgba (lr, 1.0, rgb_all, rgb_all, rgb_all, 0.0);
+#line 521 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = ctx;
+#line 521 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source (_tmp42_, lr);
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = ctx;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = *origin;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = _tmp44_.x;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = radius;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = *origin;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = _tmp47_.y;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = *dimensions;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp50_ = _tmp49_.height;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp51_ = *dimensions;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp52_ = _tmp51_.width;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp53_ = radius;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp54_ = radius;
+#line 522 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp43_, (gdouble) (_tmp45_ + _tmp46_), (gdouble) (_tmp48_ + _tmp50_), (gdouble) (_tmp52_ - _tmp53_), (gdouble) _tmp54_);
+#line 523 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp55_ = ctx;
+#line 523 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp55_);
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp56_ = *origin;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp57_ = _tmp56_.x;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp58_ = *dimensions;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp59_ = _tmp58_.width;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp60_ = *origin;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp61_ = _tmp60_.x;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp62_ = *dimensions;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp63_ = _tmp62_.width;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp64_ = radius;
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp65_ = cairo_pattern_create_linear ((gdouble) (_tmp57_ + _tmp59_), (gdouble) 0, (gdouble) ((_tmp61_ + _tmp63_) + _tmp64_), (gdouble) 0);
+#line 526 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ td = _tmp65_;
+#line 528 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp66_ = initial_alpha;
+#line 528 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_pattern_add_color_stop_rgba (td, 0.0, rgb_all, rgb_all, rgb_all, (gdouble) _tmp66_);
+#line 529 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_pattern_add_color_stop_rgba (td, 1.0, rgb_all, rgb_all, rgb_all, 0.0);
+#line 530 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp67_ = ctx;
+#line 530 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source (_tmp67_, td);
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp68_ = ctx;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp69_ = *origin;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp70_ = _tmp69_.x;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp71_ = *dimensions;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp72_ = _tmp71_.width;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp73_ = *origin;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp74_ = _tmp73_.y;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp75_ = radius;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp76_ = radius;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp77_ = *dimensions;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp78_ = _tmp77_.height;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp79_ = radius;
+#line 531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp68_, (gdouble) (_tmp70_ + _tmp72_), (gdouble) (_tmp74_ + _tmp75_), (gdouble) _tmp76_, (gdouble) (_tmp78_ - _tmp79_));
+#line 533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp80_ = ctx;
+#line 533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp80_);
+#line 502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _cairo_pattern_destroy0 (td);
+#line 502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _cairo_pattern_destroy0 (lr);
+#line 3470 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_paint_shadow (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha) {
+#line 502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ CHECKERBOARD_ITEM_GET_CLASS (self)->paint_shadow (self, ctx, dimensions, origin, radius, initial_alpha);
+#line 3479 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_paint_shadow_in_corner (CheckerboardItem* self, cairo_t* ctx, gint x, gint y, gdouble rgb_all, gfloat radius, gfloat initial_alpha, gdouble arc1, gdouble arc2) {
+ cairo_pattern_t* p = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gfloat _tmp4_ = 0.0F;
+ cairo_pattern_t* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gfloat _tmp9_ = 0.0F;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ gdouble _tmp12_ = 0.0;
+ cairo_t* _tmp13_ = NULL;
+ cairo_t* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ cairo_t* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gfloat _tmp20_ = 0.0F;
+ gdouble _tmp21_ = 0.0;
+ gdouble _tmp22_ = 0.0;
+ cairo_t* _tmp23_ = NULL;
+ cairo_t* _tmp24_ = NULL;
+#line 536 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 536 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (ctx != NULL);
+#line 538 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = x;
+#line 538 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = y;
+#line 538 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = x;
+#line 538 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = y;
+#line 538 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = radius;
+#line 538 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = cairo_pattern_create_radial ((gdouble) _tmp0_, (gdouble) _tmp1_, (gdouble) 0, (gdouble) _tmp2_, (gdouble) _tmp3_, (gdouble) _tmp4_);
+#line 538 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ p = _tmp5_;
+#line 539 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = rgb_all;
+#line 539 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = rgb_all;
+#line 539 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = rgb_all;
+#line 539 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = initial_alpha;
+#line 539 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_pattern_add_color_stop_rgba (p, 0.0, _tmp6_, _tmp7_, _tmp8_, (gdouble) _tmp9_);
+#line 540 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = rgb_all;
+#line 540 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = rgb_all;
+#line 540 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = rgb_all;
+#line 540 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_pattern_add_color_stop_rgba (p, 1.0, _tmp10_, _tmp11_, _tmp12_, (gdouble) 0);
+#line 541 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = ctx;
+#line 541 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source (_tmp13_, p);
+#line 542 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = ctx;
+#line 542 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = x;
+#line 542 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = y;
+#line 542 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_move_to (_tmp14_, (gdouble) _tmp15_, (gdouble) _tmp16_);
+#line 543 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = ctx;
+#line 543 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = x;
+#line 543 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = y;
+#line 543 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = radius;
+#line 543 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = arc1;
+#line 543 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = arc2;
+#line 543 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_arc (_tmp17_, (gdouble) _tmp18_, (gdouble) _tmp19_, (gdouble) _tmp20_, _tmp21_, _tmp22_);
+#line 544 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = ctx;
+#line 544 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_close_path (_tmp23_);
+#line 545 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = ctx;
+#line 545 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp24_);
+#line 536 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _cairo_pattern_destroy0 (p);
+#line 3582 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_paint_border (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width) {
+ gint _tmp0_ = 0;
+#line 548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (ctx != NULL);
+#line 548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (object_dimensions != NULL);
+#line 548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (object_origin != NULL);
+#line 550 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = border_width;
+#line 550 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == 1) {
+#line 3598 "CheckerboardLayout.c"
+ cairo_t* _tmp1_ = NULL;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ Dimensions _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ cairo_t* _tmp14_ = NULL;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = ctx;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = *object_origin;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp2_.x;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = border_width;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = *object_origin;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.y;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = border_width;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = *object_dimensions;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = _tmp8_.width;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = border_width;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = *object_dimensions;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _tmp11_.height;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = border_width;
+#line 551 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp1_, (gdouble) (_tmp3_ - _tmp4_), (gdouble) (_tmp6_ - _tmp7_), (gdouble) (_tmp9_ + (_tmp10_ * 2)), (gdouble) (_tmp12_ + (_tmp13_ * 2)));
+#line 554 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = ctx;
+#line 554 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp14_);
+#line 3645 "CheckerboardLayout.c"
+ } else {
+ Dimensions dimensions = {0};
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ GdkPoint origin = {0};
+ GdkPoint _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gdouble scale = 0.0;
+ Dimensions _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ Dimensions _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ cairo_t* _tmp26_ = NULL;
+ Dimensions _tmp27_ = {0};
+ GdkPoint _tmp28_ = {0};
+ gdouble _tmp29_ = 0.0;
+#line 556 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = *object_dimensions;
+#line 556 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = border_width;
+#line 556 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_get_border_dimensions (&_tmp15_, _tmp16_, &_tmp17_);
+#line 556 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions = _tmp17_;
+#line 557 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = *object_origin;
+#line 557 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = border_width;
+#line 557 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_get_border_origin (&_tmp18_, _tmp19_, &_tmp20_);
+#line 557 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ origin = _tmp20_;
+#line 560 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = *object_dimensions;
+#line 560 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _tmp21_.width;
+#line 560 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = *object_dimensions;
+#line 560 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = _tmp23_.height;
+#line 560 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = MAX (_tmp22_, _tmp24_);
+#line 560 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ scale = (gdouble) _tmp25_;
+#line 561 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = ctx;
+#line 561 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = dimensions;
+#line 561 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = origin;
+#line 561 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = scale;
+#line 561 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ draw_rounded_corners_filled (_tmp26_, &_tmp27_, &_tmp28_, 0.25 * _tmp29_);
+#line 3703 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_item_paint_border (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width) {
+#line 548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ CHECKERBOARD_ITEM_GET_CLASS (self)->paint_border (self, ctx, object_dimensions, object_origin, border_width);
+#line 3713 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_paint_image (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin) {
+ GdkPixbuf* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ cairo_t* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPoint _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ GdkPoint _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ cairo_t* _tmp18_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (ctx != NULL);
+#line 565 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 565 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (origin != NULL);
+#line 566 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = pixbuf;
+#line 566 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = gdk_pixbuf_get_has_alpha (_tmp0_);
+#line 566 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 3739 "CheckerboardLayout.c"
+ cairo_t* _tmp2_ = NULL;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkPixbuf* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ GdkPixbuf* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ cairo_t* _tmp11_ = NULL;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = ctx;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = *origin;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.x;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = *origin;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.y;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = pixbuf;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = gdk_pixbuf_get_width (_tmp7_);
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = pixbuf;
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = gdk_pixbuf_get_height (_tmp9_);
+#line 567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp2_, (gdouble) _tmp4_, (gdouble) _tmp6_, (gdouble) _tmp8_, (gdouble) _tmp10_);
+#line 568 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = ctx;
+#line 568 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp11_);
+#line 3774 "CheckerboardLayout.c"
+ }
+#line 570 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = ctx;
+#line 570 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = pixbuf;
+#line 570 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = *origin;
+#line 570 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = _tmp14_.x;
+#line 570 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = *origin;
+#line 570 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = _tmp16_.y;
+#line 570 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_cairo_set_source_pixbuf (_tmp12_, _tmp13_, (gdouble) _tmp15_, (gdouble) _tmp17_);
+#line 571 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = ctx;
+#line 571 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_paint (_tmp18_);
+#line 3794 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_paint_image (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin) {
+#line 565 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 565 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ CHECKERBOARD_ITEM_GET_CLASS (self)->paint_image (self, ctx, pixbuf, origin);
+#line 3803 "CheckerboardLayout.c"
+}
+
+
+static gint checkerboard_item_get_selection_border_width (CheckerboardItem* self, gint scale) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 574 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), 0);
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = scale;
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = thumbnail_get_MIN_SCALE ();
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp2_;
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = thumbnail_get_MAX_SCALE ();
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _tmp4_;
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ <= ((_tmp3_ + _tmp5_) / 3)) {
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = 2;
+#line 3831 "CheckerboardLayout.c"
+ } else {
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = 3;
+#line 3835 "CheckerboardLayout.c"
+ }
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_ + CHECKERBOARD_ITEM_BORDER_WIDTH;
+#line 575 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 3841 "CheckerboardLayout.c"
+}
+
+
+static GdkPixbuf* checkerboard_item_real_get_top_left_trinket (CheckerboardItem* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 580 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 580 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 3851 "CheckerboardLayout.c"
+}
+
+
+GdkPixbuf* checkerboard_item_get_top_left_trinket (CheckerboardItem* self, gint scale) {
+#line 579 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 579 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return CHECKERBOARD_ITEM_GET_CLASS (self)->get_top_left_trinket (self, scale);
+#line 3860 "CheckerboardLayout.c"
+}
+
+
+static GdkPixbuf* checkerboard_item_real_get_top_right_trinket (CheckerboardItem* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 3870 "CheckerboardLayout.c"
+}
+
+
+GdkPixbuf* checkerboard_item_get_top_right_trinket (CheckerboardItem* self, gint scale) {
+#line 583 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 583 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return CHECKERBOARD_ITEM_GET_CLASS (self)->get_top_right_trinket (self, scale);
+#line 3879 "CheckerboardLayout.c"
+}
+
+
+static GdkPixbuf* checkerboard_item_real_get_bottom_left_trinket (CheckerboardItem* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 588 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 588 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 3889 "CheckerboardLayout.c"
+}
+
+
+GdkPixbuf* checkerboard_item_get_bottom_left_trinket (CheckerboardItem* self, gint scale) {
+#line 587 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 587 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return CHECKERBOARD_ITEM_GET_CLASS (self)->get_bottom_left_trinket (self, scale);
+#line 3898 "CheckerboardLayout.c"
+}
+
+
+static GdkPixbuf* checkerboard_item_real_get_bottom_right_trinket (CheckerboardItem* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 592 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 592 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 3908 "CheckerboardLayout.c"
+}
+
+
+GdkPixbuf* checkerboard_item_get_bottom_right_trinket (CheckerboardItem* self, gint scale) {
+#line 591 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), NULL);
+#line 591 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return CHECKERBOARD_ITEM_GET_CLASS (self)->get_bottom_right_trinket (self, scale);
+#line 3917 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_paint (CheckerboardItem* self, cairo_t* ctx, GdkRGBA* bg_color, GdkRGBA* selected_color, GdkRGBA* text_color, GdkRGBA* border_color) {
+ GdkPoint pixbuf_origin = {0};
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ cairo_t* _tmp4_ = NULL;
+ cairo_t* _tmp5_ = NULL;
+ GdkRGBA _tmp6_ = {0};
+ gdouble _tmp7_ = 0.0;
+ GdkRGBA _tmp8_ = {0};
+ gdouble _tmp9_ = 0.0;
+ GdkRGBA _tmp10_ = {0};
+ gdouble _tmp11_ = 0.0;
+ GdkRGBA _tmp12_ = {0};
+ gdouble _tmp13_ = 0.0;
+ GdkRGBA* _tmp14_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+ GdkRGBA* _tmp57_ = NULL;
+ GdkPixbuf* _tmp72_ = NULL;
+ cairo_t* _tmp87_ = NULL;
+ GdkRGBA _tmp88_ = {0};
+ gdouble _tmp89_ = 0.0;
+ GdkRGBA _tmp90_ = {0};
+ gdouble _tmp91_ = 0.0;
+ GdkRGBA _tmp92_ = {0};
+ gdouble _tmp93_ = 0.0;
+ GdkRGBA _tmp94_ = {0};
+ gdouble _tmp95_ = 0.0;
+ gint text_y = 0;
+ GdkRectangle _tmp96_ = {0};
+ gint _tmp97_ = 0;
+ Dimensions _tmp98_ = {0};
+ gint _tmp99_ = 0;
+ gboolean _tmp100_ = FALSE;
+ CheckerboardItemText* _tmp101_ = NULL;
+ gboolean _tmp130_ = FALSE;
+ CheckerboardItemText* _tmp131_ = NULL;
+ gboolean _tmp160_ = FALSE;
+ CheckerboardItemText* _tmp161_ = NULL;
+ cairo_t* _tmp187_ = NULL;
+ GdkRGBA _tmp188_ = {0};
+ gdouble _tmp189_ = 0.0;
+ GdkRGBA _tmp190_ = {0};
+ gdouble _tmp191_ = 0.0;
+ GdkRGBA _tmp192_ = {0};
+ gdouble _tmp193_ = 0.0;
+ GdkRGBA _tmp194_ = {0};
+ gdouble _tmp195_ = 0.0;
+ GdkPixbuf* trinket = NULL;
+ GdkPixbuf* _tmp196_ = NULL;
+ GdkPixbuf* _tmp197_ = NULL;
+ GdkPixbuf* _tmp219_ = NULL;
+ GdkPixbuf* _tmp220_ = NULL;
+ GdkPixbuf* _tmp238_ = NULL;
+ GdkPixbuf* _tmp239_ = NULL;
+ GdkPixbuf* _tmp262_ = NULL;
+ GdkPixbuf* _tmp263_ = NULL;
+#line 595 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 595 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (ctx != NULL);
+#line 595 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (bg_color != NULL);
+#line 595 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (selected_color != NULL);
+#line 595 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (text_color != NULL);
+#line 598 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&pixbuf_origin, 0, sizeof (GdkPoint));
+#line 599 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->allocation;
+#line 599 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_.x;
+#line 599 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pixbuf_origin.x = (_tmp1_ + CHECKERBOARD_ITEM_FRAME_WIDTH) + CHECKERBOARD_ITEM_BORDER_WIDTH;
+#line 600 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->allocation;
+#line 600 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp2_.y;
+#line 600 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pixbuf_origin.y = (_tmp3_ + CHECKERBOARD_ITEM_FRAME_WIDTH) + CHECKERBOARD_ITEM_BORDER_WIDTH;
+#line 602 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = ctx;
+#line 602 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_line_width (_tmp4_, (gdouble) CHECKERBOARD_ITEM_FRAME_WIDTH);
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = ctx;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = *selected_color;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp6_.red;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = *selected_color;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = _tmp8_.green;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = *selected_color;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _tmp10_.blue;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = *selected_color;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp12_.alpha;
+#line 603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgba (_tmp5_, _tmp7_, _tmp9_, _tmp11_, _tmp13_);
+#line 607 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = border_color;
+#line 607 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp14_ != NULL) {
+#line 4032 "CheckerboardLayout.c"
+ cairo_t* _tmp15_ = NULL;
+ Dimensions shadow_dim = {0};
+ Dimensions _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ Dimensions _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ cairo_t* _tmp20_ = NULL;
+ Dimensions _tmp21_ = {0};
+ GdkPoint _tmp22_ = {0};
+ cairo_t* _tmp23_ = NULL;
+#line 608 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = ctx;
+#line 608 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_save (_tmp15_);
+#line 609 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions_init (&shadow_dim, 0, 0);
+#line 610 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = self->priv->pixbuf_dim;
+#line 610 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = _tmp16_.width;
+#line 610 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ shadow_dim.width = _tmp17_ + CHECKERBOARD_ITEM_BORDER_WIDTH;
+#line 611 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = self->priv->pixbuf_dim;
+#line 611 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = _tmp18_.height;
+#line 611 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ shadow_dim.height = _tmp19_ + CHECKERBOARD_ITEM_BORDER_WIDTH;
+#line 612 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = ctx;
+#line 612 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = shadow_dim;
+#line 612 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = pixbuf_origin;
+#line 612 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_shadow (self, _tmp20_, &_tmp21_, &_tmp22_, CHECKERBOARD_ITEM_SHADOW_RADIUS, CHECKERBOARD_ITEM_SHADOW_INITIAL_ALPHA);
+#line 613 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = ctx;
+#line 613 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_restore (_tmp23_);
+#line 4073 "CheckerboardLayout.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = self->priv->is_cursor;
+#line 617 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp24_) {
+#line 4079 "CheckerboardLayout.c"
+ cairo_t* _tmp25_ = NULL;
+ cairo_t* _tmp26_ = NULL;
+ GdkRGBA* _tmp27_ = NULL;
+ gdouble _tmp28_ = 0.0;
+ GdkRGBA* _tmp29_ = NULL;
+ gdouble _tmp30_ = 0.0;
+ GdkRGBA* _tmp31_ = NULL;
+ gdouble _tmp32_ = 0.0;
+ GdkRGBA* _tmp33_ = NULL;
+ gdouble _tmp34_ = 0.0;
+ cairo_t* _tmp35_ = NULL;
+ Dimensions _tmp36_ = {0};
+ GdkPoint _tmp37_ = {0};
+ Dimensions _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ Dimensions _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ cairo_t* _tmp44_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = ctx;
+#line 618 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_save (_tmp25_);
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = ctx;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = border_color;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = (*_tmp27_).red;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = border_color;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = (*_tmp29_).green;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = border_color;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = (*_tmp31_).blue;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = border_color;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = (*_tmp33_).alpha;
+#line 619 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgba (_tmp26_, _tmp28_, _tmp30_, _tmp32_, _tmp34_);
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = ctx;
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = self->priv->pixbuf_dim;
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = pixbuf_origin;
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = self->priv->pixbuf_dim;
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = _tmp38_.width;
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = self->priv->pixbuf_dim;
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = _tmp40_.height;
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = MAX (_tmp39_, _tmp41_);
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = checkerboard_item_get_selection_border_width (self, _tmp42_);
+#line 621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_border (self, _tmp35_, &_tmp36_, &_tmp37_, _tmp43_);
+#line 623 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = ctx;
+#line 623 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_restore (_tmp44_);
+#line 4148 "CheckerboardLayout.c"
+ }
+#line 627 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 627 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp45_) {
+#line 4154 "CheckerboardLayout.c"
+ cairo_t* _tmp46_ = NULL;
+ cairo_t* _tmp47_ = NULL;
+ Dimensions _tmp48_ = {0};
+ GdkPoint _tmp49_ = {0};
+ Dimensions _tmp50_ = {0};
+ gint _tmp51_ = 0;
+ Dimensions _tmp52_ = {0};
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ cairo_t* _tmp56_ = NULL;
+#line 629 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = ctx;
+#line 629 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_save (_tmp46_);
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = ctx;
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = self->priv->pixbuf_dim;
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = pixbuf_origin;
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp50_ = self->priv->pixbuf_dim;
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp51_ = _tmp50_.width;
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp52_ = self->priv->pixbuf_dim;
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp53_ = _tmp52_.height;
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp54_ = MAX (_tmp51_, _tmp53_);
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp55_ = checkerboard_item_get_selection_border_width (self, _tmp54_);
+#line 630 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_border (self, _tmp47_, &_tmp48_, &_tmp49_, _tmp55_);
+#line 632 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp56_ = ctx;
+#line 632 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_restore (_tmp56_);
+#line 4194 "CheckerboardLayout.c"
+ }
+#line 636 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp57_ = border_color;
+#line 636 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp57_ != NULL) {
+#line 4200 "CheckerboardLayout.c"
+ cairo_t* _tmp58_ = NULL;
+ cairo_t* _tmp59_ = NULL;
+ GdkRGBA* _tmp60_ = NULL;
+ gdouble _tmp61_ = 0.0;
+ GdkRGBA* _tmp62_ = NULL;
+ gdouble _tmp63_ = 0.0;
+ GdkRGBA* _tmp64_ = NULL;
+ gdouble _tmp65_ = 0.0;
+ GdkRGBA* _tmp66_ = NULL;
+ gdouble _tmp67_ = 0.0;
+ cairo_t* _tmp68_ = NULL;
+ Dimensions _tmp69_ = {0};
+ GdkPoint _tmp70_ = {0};
+ cairo_t* _tmp71_ = NULL;
+#line 637 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp58_ = ctx;
+#line 637 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_save (_tmp58_);
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp59_ = ctx;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp60_ = border_color;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp61_ = (*_tmp60_).red;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp62_ = border_color;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp63_ = (*_tmp62_).green;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp64_ = border_color;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp65_ = (*_tmp64_).blue;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp66_ = border_color;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp67_ = (*_tmp66_).alpha;
+#line 638 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgba (_tmp59_, _tmp61_, _tmp63_, _tmp65_, _tmp67_);
+#line 640 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp68_ = ctx;
+#line 640 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp69_ = self->priv->pixbuf_dim;
+#line 640 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp70_ = pixbuf_origin;
+#line 640 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_border (self, _tmp68_, &_tmp69_, &_tmp70_, CHECKERBOARD_ITEM_BORDER_WIDTH);
+#line 641 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp71_ = ctx;
+#line 641 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_restore (_tmp71_);
+#line 4251 "CheckerboardLayout.c"
+ }
+#line 644 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp72_ = self->priv->display_pixbuf;
+#line 644 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp72_ != NULL) {
+#line 4257 "CheckerboardLayout.c"
+ cairo_t* _tmp73_ = NULL;
+ cairo_t* _tmp74_ = NULL;
+ GdkRGBA _tmp75_ = {0};
+ gdouble _tmp76_ = 0.0;
+ GdkRGBA _tmp77_ = {0};
+ gdouble _tmp78_ = 0.0;
+ GdkRGBA _tmp79_ = {0};
+ gdouble _tmp80_ = 0.0;
+ GdkRGBA _tmp81_ = {0};
+ gdouble _tmp82_ = 0.0;
+ cairo_t* _tmp83_ = NULL;
+ GdkPixbuf* _tmp84_ = NULL;
+ GdkPoint _tmp85_ = {0};
+ cairo_t* _tmp86_ = NULL;
+#line 645 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp73_ = ctx;
+#line 645 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_save (_tmp73_);
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp74_ = ctx;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp75_ = *bg_color;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp76_ = _tmp75_.red;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp77_ = *bg_color;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp78_ = _tmp77_.green;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp79_ = *bg_color;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp80_ = _tmp79_.blue;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp81_ = *bg_color;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp82_ = _tmp81_.alpha;
+#line 646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgba (_tmp74_, _tmp76_, _tmp78_, _tmp80_, _tmp82_);
+#line 647 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp83_ = ctx;
+#line 647 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp84_ = self->priv->display_pixbuf;
+#line 647 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp85_ = pixbuf_origin;
+#line 647 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint_image (self, _tmp83_, _tmp84_, &_tmp85_);
+#line 648 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp86_ = ctx;
+#line 648 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_restore (_tmp86_);
+#line 4308 "CheckerboardLayout.c"
+ }
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp87_ = ctx;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp88_ = *text_color;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp89_ = _tmp88_.red;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp90_ = *text_color;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp91_ = _tmp90_.green;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp92_ = *text_color;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp93_ = _tmp92_.blue;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp94_ = *text_color;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp95_ = _tmp94_.alpha;
+#line 651 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgba (_tmp87_, _tmp89_, _tmp91_, _tmp93_, _tmp95_);
+#line 654 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp96_ = self->allocation;
+#line 654 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp97_ = _tmp96_.y;
+#line 654 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp98_ = self->priv->pixbuf_dim;
+#line 654 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp99_ = _tmp98_.height;
+#line 654 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text_y = (((_tmp97_ + CHECKERBOARD_ITEM_FRAME_WIDTH) + _tmp99_) + CHECKERBOARD_ITEM_FRAME_WIDTH) + CHECKERBOARD_ITEM_LABEL_PADDING;
+#line 655 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp101_ = self->priv->title;
+#line 655 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp101_ != NULL) {
+#line 4344 "CheckerboardLayout.c"
+ gboolean _tmp102_ = FALSE;
+#line 655 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp102_ = self->priv->title_visible;
+#line 655 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp100_ = _tmp102_;
+#line 4350 "CheckerboardLayout.c"
+ } else {
+#line 655 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp100_ = FALSE;
+#line 4354 "CheckerboardLayout.c"
+ }
+#line 655 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp100_) {
+#line 4358 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp103_ = NULL;
+ GdkRectangle _tmp104_ = {0};
+ gint _tmp105_ = 0;
+ CheckerboardItemText* _tmp106_ = NULL;
+ gint _tmp107_ = 0;
+ CheckerboardItemText* _tmp108_ = NULL;
+ Dimensions _tmp109_ = {0};
+ gint _tmp110_ = 0;
+ CheckerboardItemText* _tmp111_ = NULL;
+ CheckerboardItemText* _tmp112_ = NULL;
+ gint _tmp113_ = 0;
+ cairo_t* _tmp114_ = NULL;
+ CheckerboardItemText* _tmp115_ = NULL;
+ GdkRectangle _tmp116_ = {0};
+ gint _tmp117_ = 0;
+ CheckerboardItemText* _tmp118_ = NULL;
+ GdkRectangle _tmp119_ = {0};
+ gint _tmp120_ = 0;
+ cairo_t* _tmp121_ = NULL;
+ CheckerboardItemText* _tmp122_ = NULL;
+ Dimensions _tmp123_ = {0};
+ gint _tmp124_ = 0;
+ PangoLayout* _tmp125_ = NULL;
+ PangoLayout* _tmp126_ = NULL;
+ gint _tmp127_ = 0;
+ CheckerboardItemText* _tmp128_ = NULL;
+ gint _tmp129_ = 0;
+#line 658 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp103_ = self->priv->title;
+#line 658 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp104_ = self->allocation;
+#line 658 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp105_ = _tmp104_.x;
+#line 658 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp103_->allocation.x = _tmp105_ + CHECKERBOARD_ITEM_FRAME_WIDTH;
+#line 659 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp106_ = self->priv->title;
+#line 659 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp107_ = text_y;
+#line 659 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp106_->allocation.y = _tmp107_;
+#line 660 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp108_ = self->priv->title;
+#line 660 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp109_ = self->priv->pixbuf_dim;
+#line 660 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp110_ = _tmp109_.width;
+#line 660 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp108_->allocation.width = _tmp110_;
+#line 661 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp111_ = self->priv->title;
+#line 661 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp112_ = self->priv->title;
+#line 661 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp113_ = checkerboard_item_text_get_height (_tmp112_);
+#line 661 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp111_->allocation.height = _tmp113_;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp114_ = ctx;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp115_ = self->priv->title;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp116_ = _tmp115_->allocation;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp117_ = _tmp116_.x;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp118_ = self->priv->title;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp119_ = _tmp118_->allocation;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp120_ = _tmp119_.y;
+#line 663 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_move_to (_tmp114_, (gdouble) _tmp117_, (gdouble) _tmp120_);
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp121_ = ctx;
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp122_ = self->priv->title;
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp123_ = self->priv->pixbuf_dim;
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp124_ = _tmp123_.width;
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp125_ = checkerboard_item_text_get_pango_layout (_tmp122_, _tmp124_);
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp126_ = _tmp125_;
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_cairo_show_layout (_tmp121_, _tmp126_);
+#line 664 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp126_);
+#line 666 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp127_ = text_y;
+#line 666 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp128_ = self->priv->title;
+#line 666 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp129_ = checkerboard_item_text_get_height (_tmp128_);
+#line 666 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text_y = _tmp127_ + (_tmp129_ + CHECKERBOARD_ITEM_LABEL_PADDING);
+#line 4456 "CheckerboardLayout.c"
+ }
+#line 669 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp131_ = self->priv->comment;
+#line 669 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp131_ != NULL) {
+#line 4462 "CheckerboardLayout.c"
+ gboolean _tmp132_ = FALSE;
+#line 669 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp132_ = self->priv->comment_visible;
+#line 669 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp130_ = _tmp132_;
+#line 4468 "CheckerboardLayout.c"
+ } else {
+#line 669 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp130_ = FALSE;
+#line 4472 "CheckerboardLayout.c"
+ }
+#line 669 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp130_) {
+#line 4476 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp133_ = NULL;
+ GdkRectangle _tmp134_ = {0};
+ gint _tmp135_ = 0;
+ CheckerboardItemText* _tmp136_ = NULL;
+ gint _tmp137_ = 0;
+ CheckerboardItemText* _tmp138_ = NULL;
+ Dimensions _tmp139_ = {0};
+ gint _tmp140_ = 0;
+ CheckerboardItemText* _tmp141_ = NULL;
+ CheckerboardItemText* _tmp142_ = NULL;
+ gint _tmp143_ = 0;
+ cairo_t* _tmp144_ = NULL;
+ CheckerboardItemText* _tmp145_ = NULL;
+ GdkRectangle _tmp146_ = {0};
+ gint _tmp147_ = 0;
+ CheckerboardItemText* _tmp148_ = NULL;
+ GdkRectangle _tmp149_ = {0};
+ gint _tmp150_ = 0;
+ cairo_t* _tmp151_ = NULL;
+ CheckerboardItemText* _tmp152_ = NULL;
+ Dimensions _tmp153_ = {0};
+ gint _tmp154_ = 0;
+ PangoLayout* _tmp155_ = NULL;
+ PangoLayout* _tmp156_ = NULL;
+ gint _tmp157_ = 0;
+ CheckerboardItemText* _tmp158_ = NULL;
+ gint _tmp159_ = 0;
+#line 670 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp133_ = self->priv->comment;
+#line 670 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp134_ = self->allocation;
+#line 670 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp135_ = _tmp134_.x;
+#line 670 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp133_->allocation.x = _tmp135_ + CHECKERBOARD_ITEM_FRAME_WIDTH;
+#line 671 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp136_ = self->priv->comment;
+#line 671 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp137_ = text_y;
+#line 671 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp136_->allocation.y = _tmp137_;
+#line 672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp138_ = self->priv->comment;
+#line 672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp139_ = self->priv->pixbuf_dim;
+#line 672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp140_ = _tmp139_.width;
+#line 672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp138_->allocation.width = _tmp140_;
+#line 673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp141_ = self->priv->comment;
+#line 673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp142_ = self->priv->comment;
+#line 673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp143_ = checkerboard_item_text_get_height (_tmp142_);
+#line 673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp141_->allocation.height = _tmp143_;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp144_ = ctx;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp145_ = self->priv->comment;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp146_ = _tmp145_->allocation;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp147_ = _tmp146_.x;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp148_ = self->priv->comment;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp149_ = _tmp148_->allocation;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp150_ = _tmp149_.y;
+#line 675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_move_to (_tmp144_, (gdouble) _tmp147_, (gdouble) _tmp150_);
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp151_ = ctx;
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp152_ = self->priv->comment;
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp153_ = self->priv->pixbuf_dim;
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp154_ = _tmp153_.width;
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp155_ = checkerboard_item_text_get_pango_layout (_tmp152_, _tmp154_);
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp156_ = _tmp155_;
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_cairo_show_layout (_tmp151_, _tmp156_);
+#line 676 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp156_);
+#line 678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp157_ = text_y;
+#line 678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp158_ = self->priv->comment;
+#line 678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp159_ = checkerboard_item_text_get_height (_tmp158_);
+#line 678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text_y = _tmp157_ + (_tmp159_ + CHECKERBOARD_ITEM_LABEL_PADDING);
+#line 4574 "CheckerboardLayout.c"
+ }
+#line 681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp161_ = self->priv->subtitle;
+#line 681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp161_ != NULL) {
+#line 4580 "CheckerboardLayout.c"
+ gboolean _tmp162_ = FALSE;
+#line 681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp162_ = self->priv->subtitle_visible;
+#line 681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp160_ = _tmp162_;
+#line 4586 "CheckerboardLayout.c"
+ } else {
+#line 681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp160_ = FALSE;
+#line 4590 "CheckerboardLayout.c"
+ }
+#line 681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp160_) {
+#line 4594 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp163_ = NULL;
+ GdkRectangle _tmp164_ = {0};
+ gint _tmp165_ = 0;
+ CheckerboardItemText* _tmp166_ = NULL;
+ gint _tmp167_ = 0;
+ CheckerboardItemText* _tmp168_ = NULL;
+ Dimensions _tmp169_ = {0};
+ gint _tmp170_ = 0;
+ CheckerboardItemText* _tmp171_ = NULL;
+ CheckerboardItemText* _tmp172_ = NULL;
+ gint _tmp173_ = 0;
+ cairo_t* _tmp174_ = NULL;
+ CheckerboardItemText* _tmp175_ = NULL;
+ GdkRectangle _tmp176_ = {0};
+ gint _tmp177_ = 0;
+ CheckerboardItemText* _tmp178_ = NULL;
+ GdkRectangle _tmp179_ = {0};
+ gint _tmp180_ = 0;
+ cairo_t* _tmp181_ = NULL;
+ CheckerboardItemText* _tmp182_ = NULL;
+ Dimensions _tmp183_ = {0};
+ gint _tmp184_ = 0;
+ PangoLayout* _tmp185_ = NULL;
+ PangoLayout* _tmp186_ = NULL;
+#line 682 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp163_ = self->priv->subtitle;
+#line 682 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp164_ = self->allocation;
+#line 682 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp165_ = _tmp164_.x;
+#line 682 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp163_->allocation.x = _tmp165_ + CHECKERBOARD_ITEM_FRAME_WIDTH;
+#line 683 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp166_ = self->priv->subtitle;
+#line 683 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp167_ = text_y;
+#line 683 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp166_->allocation.y = _tmp167_;
+#line 684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp168_ = self->priv->subtitle;
+#line 684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp169_ = self->priv->pixbuf_dim;
+#line 684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp170_ = _tmp169_.width;
+#line 684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp168_->allocation.width = _tmp170_;
+#line 685 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp171_ = self->priv->subtitle;
+#line 685 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp172_ = self->priv->subtitle;
+#line 685 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp173_ = checkerboard_item_text_get_height (_tmp172_);
+#line 685 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp171_->allocation.height = _tmp173_;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp174_ = ctx;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp175_ = self->priv->subtitle;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp176_ = _tmp175_->allocation;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp177_ = _tmp176_.x;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp178_ = self->priv->subtitle;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp179_ = _tmp178_->allocation;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp180_ = _tmp179_.y;
+#line 687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_move_to (_tmp174_, (gdouble) _tmp177_, (gdouble) _tmp180_);
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp181_ = ctx;
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp182_ = self->priv->subtitle;
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp183_ = self->priv->pixbuf_dim;
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp184_ = _tmp183_.width;
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp185_ = checkerboard_item_text_get_pango_layout (_tmp182_, _tmp184_);
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp186_ = _tmp185_;
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_cairo_show_layout (_tmp181_, _tmp186_);
+#line 688 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp186_);
+#line 4681 "CheckerboardLayout.c"
+ }
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp187_ = ctx;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp188_ = *selected_color;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp189_ = _tmp188_.red;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp190_ = *selected_color;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp191_ = _tmp190_.green;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp192_ = *selected_color;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp193_ = _tmp192_.blue;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp194_ = *selected_color;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp195_ = _tmp194_.alpha;
+#line 693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgba (_tmp187_, _tmp189_, _tmp191_, _tmp193_, _tmp195_);
+#line 697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp196_ = checkerboard_item_get_bottom_left_trinket (self, CHECKERBOARD_ITEM_TRINKET_SCALE);
+#line 697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ trinket = _tmp196_;
+#line 698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp197_ = trinket;
+#line 698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp197_ != NULL) {
+#line 4711 "CheckerboardLayout.c"
+ gint x = 0;
+ GdkPoint _tmp198_ = {0};
+ gint _tmp199_ = 0;
+ gint _tmp200_ = 0;
+ gint y = 0;
+ GdkPoint _tmp201_ = {0};
+ gint _tmp202_ = 0;
+ Dimensions _tmp203_ = {0};
+ gint _tmp204_ = 0;
+ GdkPixbuf* _tmp205_ = NULL;
+ gint _tmp206_ = 0;
+ cairo_t* _tmp207_ = NULL;
+ GdkPixbuf* _tmp208_ = NULL;
+ gint _tmp209_ = 0;
+ gint _tmp210_ = 0;
+ cairo_t* _tmp211_ = NULL;
+ gint _tmp212_ = 0;
+ gint _tmp213_ = 0;
+ GdkPixbuf* _tmp214_ = NULL;
+ gint _tmp215_ = 0;
+ GdkPixbuf* _tmp216_ = NULL;
+ gint _tmp217_ = 0;
+ cairo_t* _tmp218_ = NULL;
+#line 699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp198_ = pixbuf_origin;
+#line 699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp199_ = _tmp198_.x;
+#line 699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp200_ = checkerboard_item_get_horizontal_trinket_offset (self);
+#line 699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = (_tmp199_ + CHECKERBOARD_ITEM_TRINKET_PADDING) + _tmp200_;
+#line 700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp201_ = pixbuf_origin;
+#line 700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp202_ = _tmp201_.y;
+#line 700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp203_ = self->priv->pixbuf_dim;
+#line 700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp204_ = _tmp203_.height;
+#line 700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp205_ = trinket;
+#line 700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp206_ = gdk_pixbuf_get_height (_tmp205_);
+#line 700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = ((_tmp202_ + _tmp204_) - _tmp206_) - CHECKERBOARD_ITEM_TRINKET_PADDING;
+#line 702 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp207_ = ctx;
+#line 702 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp208_ = trinket;
+#line 702 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp209_ = x;
+#line 702 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp210_ = y;
+#line 702 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_cairo_set_source_pixbuf (_tmp207_, _tmp208_, (gdouble) _tmp209_, (gdouble) _tmp210_);
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp211_ = ctx;
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp212_ = x;
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp213_ = y;
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp214_ = trinket;
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp215_ = gdk_pixbuf_get_width (_tmp214_);
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp216_ = trinket;
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp217_ = gdk_pixbuf_get_height (_tmp216_);
+#line 703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp211_, (gdouble) _tmp212_, (gdouble) _tmp213_, (gdouble) _tmp215_, (gdouble) _tmp217_);
+#line 704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp218_ = ctx;
+#line 704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp218_);
+#line 4787 "CheckerboardLayout.c"
+ }
+#line 707 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp219_ = checkerboard_item_get_top_left_trinket (self, CHECKERBOARD_ITEM_TRINKET_SCALE);
+#line 707 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (trinket);
+#line 707 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ trinket = _tmp219_;
+#line 708 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp220_ = trinket;
+#line 708 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp220_ != NULL) {
+#line 4799 "CheckerboardLayout.c"
+ gint x = 0;
+ GdkPoint _tmp221_ = {0};
+ gint _tmp222_ = 0;
+ gint _tmp223_ = 0;
+ gint y = 0;
+ GdkPoint _tmp224_ = {0};
+ gint _tmp225_ = 0;
+ cairo_t* _tmp226_ = NULL;
+ GdkPixbuf* _tmp227_ = NULL;
+ gint _tmp228_ = 0;
+ gint _tmp229_ = 0;
+ cairo_t* _tmp230_ = NULL;
+ gint _tmp231_ = 0;
+ gint _tmp232_ = 0;
+ GdkPixbuf* _tmp233_ = NULL;
+ gint _tmp234_ = 0;
+ GdkPixbuf* _tmp235_ = NULL;
+ gint _tmp236_ = 0;
+ cairo_t* _tmp237_ = NULL;
+#line 709 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp221_ = pixbuf_origin;
+#line 709 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp222_ = _tmp221_.x;
+#line 709 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp223_ = checkerboard_item_get_horizontal_trinket_offset (self);
+#line 709 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = (_tmp222_ + CHECKERBOARD_ITEM_TRINKET_PADDING) + _tmp223_;
+#line 710 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp224_ = pixbuf_origin;
+#line 710 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp225_ = _tmp224_.y;
+#line 710 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = _tmp225_ + CHECKERBOARD_ITEM_TRINKET_PADDING;
+#line 711 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp226_ = ctx;
+#line 711 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp227_ = trinket;
+#line 711 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp228_ = x;
+#line 711 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp229_ = y;
+#line 711 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_cairo_set_source_pixbuf (_tmp226_, _tmp227_, (gdouble) _tmp228_, (gdouble) _tmp229_);
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp230_ = ctx;
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp231_ = x;
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp232_ = y;
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp233_ = trinket;
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp234_ = gdk_pixbuf_get_width (_tmp233_);
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp235_ = trinket;
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp236_ = gdk_pixbuf_get_height (_tmp235_);
+#line 712 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp230_, (gdouble) _tmp231_, (gdouble) _tmp232_, (gdouble) _tmp234_, (gdouble) _tmp236_);
+#line 713 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp237_ = ctx;
+#line 713 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp237_);
+#line 4863 "CheckerboardLayout.c"
+ }
+#line 716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp238_ = checkerboard_item_get_top_right_trinket (self, CHECKERBOARD_ITEM_TRINKET_SCALE);
+#line 716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (trinket);
+#line 716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ trinket = _tmp238_;
+#line 717 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp239_ = trinket;
+#line 717 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp239_ != NULL) {
+#line 4875 "CheckerboardLayout.c"
+ gint x = 0;
+ GdkPoint _tmp240_ = {0};
+ gint _tmp241_ = 0;
+ Dimensions _tmp242_ = {0};
+ gint _tmp243_ = 0;
+ GdkPixbuf* _tmp244_ = NULL;
+ gint _tmp245_ = 0;
+ gint _tmp246_ = 0;
+ gint _tmp247_ = 0;
+ gint y = 0;
+ GdkPoint _tmp248_ = {0};
+ gint _tmp249_ = 0;
+ cairo_t* _tmp250_ = NULL;
+ GdkPixbuf* _tmp251_ = NULL;
+ gint _tmp252_ = 0;
+ gint _tmp253_ = 0;
+ cairo_t* _tmp254_ = NULL;
+ gint _tmp255_ = 0;
+ gint _tmp256_ = 0;
+ GdkPixbuf* _tmp257_ = NULL;
+ gint _tmp258_ = 0;
+ GdkPixbuf* _tmp259_ = NULL;
+ gint _tmp260_ = 0;
+ cairo_t* _tmp261_ = NULL;
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp240_ = pixbuf_origin;
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp241_ = _tmp240_.x;
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp242_ = self->priv->pixbuf_dim;
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp243_ = _tmp242_.width;
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp244_ = trinket;
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp245_ = gdk_pixbuf_get_width (_tmp244_);
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp246_ = _tmp245_;
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp247_ = checkerboard_item_get_horizontal_trinket_offset (self);
+#line 718 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = (((_tmp241_ + _tmp243_) - _tmp246_) - _tmp247_) - CHECKERBOARD_ITEM_TRINKET_PADDING;
+#line 720 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp248_ = pixbuf_origin;
+#line 720 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp249_ = _tmp248_.y;
+#line 720 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = _tmp249_ + CHECKERBOARD_ITEM_TRINKET_PADDING;
+#line 721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp250_ = ctx;
+#line 721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp251_ = trinket;
+#line 721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp252_ = x;
+#line 721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp253_ = y;
+#line 721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_cairo_set_source_pixbuf (_tmp250_, _tmp251_, (gdouble) _tmp252_, (gdouble) _tmp253_);
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp254_ = ctx;
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp255_ = x;
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp256_ = y;
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp257_ = trinket;
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp258_ = gdk_pixbuf_get_width (_tmp257_);
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp259_ = trinket;
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp260_ = gdk_pixbuf_get_height (_tmp259_);
+#line 722 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp254_, (gdouble) _tmp255_, (gdouble) _tmp256_, (gdouble) _tmp258_, (gdouble) _tmp260_);
+#line 723 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp261_ = ctx;
+#line 723 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp261_);
+#line 4954 "CheckerboardLayout.c"
+ }
+#line 726 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp262_ = checkerboard_item_get_bottom_right_trinket (self, CHECKERBOARD_ITEM_TRINKET_SCALE);
+#line 726 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (trinket);
+#line 726 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ trinket = _tmp262_;
+#line 727 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp263_ = trinket;
+#line 727 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp263_ != NULL) {
+#line 4966 "CheckerboardLayout.c"
+ gint x = 0;
+ GdkPoint _tmp264_ = {0};
+ gint _tmp265_ = 0;
+ Dimensions _tmp266_ = {0};
+ gint _tmp267_ = 0;
+ GdkPixbuf* _tmp268_ = NULL;
+ gint _tmp269_ = 0;
+ gint _tmp270_ = 0;
+ gint _tmp271_ = 0;
+ gint y = 0;
+ GdkPoint _tmp272_ = {0};
+ gint _tmp273_ = 0;
+ Dimensions _tmp274_ = {0};
+ gint _tmp275_ = 0;
+ GdkPixbuf* _tmp276_ = NULL;
+ gint _tmp277_ = 0;
+ gint _tmp278_ = 0;
+ cairo_t* _tmp279_ = NULL;
+ GdkPixbuf* _tmp280_ = NULL;
+ gint _tmp281_ = 0;
+ gint _tmp282_ = 0;
+ cairo_t* _tmp283_ = NULL;
+ gint _tmp284_ = 0;
+ gint _tmp285_ = 0;
+ GdkPixbuf* _tmp286_ = NULL;
+ gint _tmp287_ = 0;
+ GdkPixbuf* _tmp288_ = NULL;
+ gint _tmp289_ = 0;
+ cairo_t* _tmp290_ = NULL;
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp264_ = pixbuf_origin;
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp265_ = _tmp264_.x;
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp266_ = self->priv->pixbuf_dim;
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp267_ = _tmp266_.width;
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp268_ = trinket;
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp269_ = gdk_pixbuf_get_width (_tmp268_);
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp270_ = _tmp269_;
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp271_ = checkerboard_item_get_horizontal_trinket_offset (self);
+#line 728 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = (((_tmp265_ + _tmp267_) - _tmp270_) - _tmp271_) - CHECKERBOARD_ITEM_TRINKET_PADDING;
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp272_ = pixbuf_origin;
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp273_ = _tmp272_.y;
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp274_ = self->priv->pixbuf_dim;
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp275_ = _tmp274_.height;
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp276_ = trinket;
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp277_ = gdk_pixbuf_get_height (_tmp276_);
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp278_ = _tmp277_;
+#line 730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = ((_tmp273_ + _tmp275_) - _tmp278_) - CHECKERBOARD_ITEM_TRINKET_PADDING;
+#line 732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp279_ = ctx;
+#line 732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp280_ = trinket;
+#line 732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp281_ = x;
+#line 732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp282_ = y;
+#line 732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_cairo_set_source_pixbuf (_tmp279_, _tmp280_, (gdouble) _tmp281_, (gdouble) _tmp282_);
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp283_ = ctx;
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp284_ = x;
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp285_ = y;
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp286_ = trinket;
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp287_ = gdk_pixbuf_get_width (_tmp286_);
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp288_ = trinket;
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp289_ = gdk_pixbuf_get_height (_tmp288_);
+#line 733 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp283_, (gdouble) _tmp284_, (gdouble) _tmp285_, (gdouble) _tmp287_, (gdouble) _tmp289_);
+#line 734 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp290_ = ctx;
+#line 734 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp290_);
+#line 5060 "CheckerboardLayout.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (trinket);
+#line 5064 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_horizontal_trinket_offset (CheckerboardItem* self, gint horizontal_trinket_offset) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 738 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 739 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = horizontal_trinket_offset;
+#line 739 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp0_ >= 0, "horizontal_trinket_offset >= 0");
+#line 740 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = horizontal_trinket_offset;
+#line 740 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->horizontal_trinket_offset = _tmp1_;
+#line 5081 "CheckerboardLayout.c"
+}
+
+
+gint checkerboard_item_get_horizontal_trinket_offset (CheckerboardItem* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 743 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), 0);
+#line 744 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->horizontal_trinket_offset;
+#line 744 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 744 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5096 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_set_grid_coordinates (CheckerboardItem* self, gint col, gint row) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 747 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 748 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = col;
+#line 748 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->col = _tmp0_;
+#line 749 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = row;
+#line 749 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->row = _tmp1_;
+#line 5113 "CheckerboardLayout.c"
+}
+
+
+gint checkerboard_item_get_column (CheckerboardItem* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 752 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), 0);
+#line 753 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->col;
+#line 753 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 753 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5128 "CheckerboardLayout.c"
+}
+
+
+gint checkerboard_item_get_row (CheckerboardItem* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 756 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), 0);
+#line 757 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->row;
+#line 757 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 757 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5143 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_brighten (CheckerboardItem* self) {
+ gboolean _tmp0_ = FALSE;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 762 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->brightened;
+#line 762 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 762 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = TRUE;
+#line 5163 "CheckerboardLayout.c"
+ } else {
+ GdkPixbuf* _tmp2_ = NULL;
+#line 762 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->pixbuf;
+#line 762 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 5170 "CheckerboardLayout.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 763 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 5176 "CheckerboardLayout.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->pixbuf;
+#line 766 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = gdk_pixbuf_copy (_tmp3_);
+#line 766 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->brightened);
+#line 766 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->brightened = _tmp4_;
+#line 767 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->brightened;
+#line 767 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ shift_colors (_tmp5_, CHECKERBOARD_ITEM_BRIGHTEN_SHIFT, CHECKERBOARD_ITEM_BRIGHTEN_SHIFT, CHECKERBOARD_ITEM_BRIGHTEN_SHIFT, 0);
+#line 769 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = self->priv->brightened;
+#line 769 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 769 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->display_pixbuf);
+#line 769 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->display_pixbuf = _tmp7_;
+#line 771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 5200 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_item_unbrighten (CheckerboardItem* self) {
+ gboolean _tmp0_ = FALSE;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 774 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 776 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->brightened;
+#line 776 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ == NULL) {
+#line 776 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = TRUE;
+#line 5217 "CheckerboardLayout.c"
+ } else {
+ GdkPixbuf* _tmp2_ = NULL;
+#line 776 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->pixbuf;
+#line 776 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 5224 "CheckerboardLayout.c"
+ }
+#line 776 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 777 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 5230 "CheckerboardLayout.c"
+ }
+#line 779 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->brightened);
+#line 779 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->brightened = NULL;
+#line 782 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->pixbuf;
+#line 782 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 782 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->display_pixbuf);
+#line 782 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->display_pixbuf = _tmp4_;
+#line 784 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 5246 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_real_visibility_changed (DataView* base, gboolean visible) {
+ CheckerboardItem * self;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 787 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 789 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = visible;
+#line 789 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp0_) {
+#line 790 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_unbrighten (self);
+#line 5262 "CheckerboardLayout.c"
+ }
+#line 792 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = visible;
+#line 792 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ DATA_VIEW_CLASS (checkerboard_item_parent_class)->visibility_changed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_VIEW, ThumbnailView), TYPE_DATA_VIEW, DataView), _tmp1_);
+#line 5268 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_item_query_tooltip_on_text (CheckerboardItem* self, CheckerboardItemText* text, GtkTooltip* tooltip) {
+ gboolean result = FALSE;
+ CheckerboardItemText* _tmp0_ = NULL;
+ PangoLayout* _tmp1_ = NULL;
+ PangoLayout* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ CheckerboardItemText* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 795 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), FALSE);
+#line 795 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM_TEXT (text), FALSE);
+#line 795 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (GTK_IS_TOOLTIP (tooltip), FALSE);
+#line 796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = text;
+#line 796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = checkerboard_item_text_get_pango_layout (_tmp0_, 0);
+#line 796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_;
+#line 796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = pango_layout_is_ellipsized (_tmp2_);
+#line 796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = !_tmp3_;
+#line 796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp2_);
+#line 796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp4_) {
+#line 797 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = FALSE;
+#line 797 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5305 "CheckerboardLayout.c"
+ }
+#line 799 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = text;
+#line 799 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = checkerboard_item_text_is_marked_up (_tmp5_);
+#line 799 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_) {
+#line 5313 "CheckerboardLayout.c"
+ GtkTooltip* _tmp7_ = NULL;
+ CheckerboardItemText* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = tooltip;
+#line 800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = text;
+#line 800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = checkerboard_item_text_get_text (_tmp8_);
+#line 800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _tmp9_;
+#line 800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_tooltip_set_markup (_tmp7_, _tmp10_);
+#line 800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp10_);
+#line 5330 "CheckerboardLayout.c"
+ } else {
+ GtkTooltip* _tmp11_ = NULL;
+ CheckerboardItemText* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = tooltip;
+#line 802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = text;
+#line 802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = checkerboard_item_text_get_text (_tmp12_);
+#line 802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp13_;
+#line 802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_tooltip_set_text (_tmp11_, _tmp14_);
+#line 802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp14_);
+#line 5348 "CheckerboardLayout.c"
+ }
+#line 804 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = TRUE;
+#line 804 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5354 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_item_query_tooltip (CheckerboardItem* self, gint x, gint y, GtkTooltip* tooltip) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ CheckerboardItemText* _tmp2_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ CheckerboardItemText* _tmp14_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ CheckerboardItemText* _tmp26_ = NULL;
+#line 807 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), FALSE);
+#line 807 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (GTK_IS_TOOLTIP (tooltip), FALSE);
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->title;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_ != NULL) {
+#line 5377 "CheckerboardLayout.c"
+ gboolean _tmp3_ = FALSE;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->title_visible;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp3_;
+#line 5383 "CheckerboardLayout.c"
+ } else {
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = FALSE;
+#line 5387 "CheckerboardLayout.c"
+ }
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 5391 "CheckerboardLayout.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ CheckerboardItemText* _tmp6_ = NULL;
+ GdkRectangle _tmp7_ = {0};
+ gboolean _tmp8_ = FALSE;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = x;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = y;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = self->priv->title;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp6_->allocation;
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = coord_in_rectangle (_tmp4_, _tmp5_, &_tmp7_);
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp8_;
+#line 5409 "CheckerboardLayout.c"
+ } else {
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 5413 "CheckerboardLayout.c"
+ }
+#line 808 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 5417 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp9_ = NULL;
+ GtkTooltip* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->title;
+#line 809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = tooltip;
+#line 809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = checkerboard_item_query_tooltip_on_text (self, _tmp9_, _tmp10_);
+#line 809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp11_;
+#line 809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5431 "CheckerboardLayout.c"
+ }
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = self->priv->comment;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp14_ != NULL) {
+#line 5437 "CheckerboardLayout.c"
+ gboolean _tmp15_ = FALSE;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = self->priv->comment_visible;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp15_;
+#line 5443 "CheckerboardLayout.c"
+ } else {
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = FALSE;
+#line 5447 "CheckerboardLayout.c"
+ }
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp13_) {
+#line 5451 "CheckerboardLayout.c"
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ CheckerboardItemText* _tmp18_ = NULL;
+ GdkRectangle _tmp19_ = {0};
+ gboolean _tmp20_ = FALSE;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = x;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = y;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = self->priv->comment;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = _tmp18_->allocation;
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = coord_in_rectangle (_tmp16_, _tmp17_, &_tmp19_);
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _tmp20_;
+#line 5469 "CheckerboardLayout.c"
+ } else {
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = FALSE;
+#line 5473 "CheckerboardLayout.c"
+ }
+#line 811 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp12_) {
+#line 5477 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp21_ = NULL;
+ GtkTooltip* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 812 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = self->priv->comment;
+#line 812 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = tooltip;
+#line 812 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = checkerboard_item_query_tooltip_on_text (self, _tmp21_, _tmp22_);
+#line 812 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp23_;
+#line 812 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5491 "CheckerboardLayout.c"
+ }
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = self->priv->subtitle;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp26_ != NULL) {
+#line 5497 "CheckerboardLayout.c"
+ gboolean _tmp27_ = FALSE;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = self->priv->subtitle_visible;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = _tmp27_;
+#line 5503 "CheckerboardLayout.c"
+ } else {
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = FALSE;
+#line 5507 "CheckerboardLayout.c"
+ }
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp25_) {
+#line 5511 "CheckerboardLayout.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ CheckerboardItemText* _tmp30_ = NULL;
+ GdkRectangle _tmp31_ = {0};
+ gboolean _tmp32_ = FALSE;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = x;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = y;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = self->priv->subtitle;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = _tmp30_->allocation;
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = coord_in_rectangle (_tmp28_, _tmp29_, &_tmp31_);
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = _tmp32_;
+#line 5529 "CheckerboardLayout.c"
+ } else {
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = FALSE;
+#line 5533 "CheckerboardLayout.c"
+ }
+#line 814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp24_) {
+#line 5537 "CheckerboardLayout.c"
+ CheckerboardItemText* _tmp33_ = NULL;
+ GtkTooltip* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = self->priv->subtitle;
+#line 815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = tooltip;
+#line 815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = checkerboard_item_query_tooltip_on_text (self, _tmp33_, _tmp34_);
+#line 815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp35_;
+#line 815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5551 "CheckerboardLayout.c"
+ }
+#line 817 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = FALSE;
+#line 817 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5557 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_item_get_has_tags (CheckerboardItem* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (self), FALSE);
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->_has_tags;
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 5572 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_set_has_tags (CheckerboardItem* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (self));
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = value;
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->_has_tags = _tmp0_;
+#line 161 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_object_notify ((GObject *) self, "has-tags");
+#line 5586 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_class_init (CheckerboardItemClass * klass) {
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_parent_class = g_type_class_peek_parent (klass);
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_type_class_add_private (klass, sizeof (CheckerboardItemPrivate));
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((DataObjectClass *) klass)->get_name = checkerboard_item_real_get_name;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((DataObjectClass *) klass)->notify_membership_changed = checkerboard_item_real_notify_membership_changed;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((DataObjectClass *) klass)->notify_collection_property_set = checkerboard_item_real_notify_collection_property_set;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->exposed = checkerboard_item_real_exposed;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->unexposed = checkerboard_item_real_unexposed;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->is_exposed = checkerboard_item_real_is_exposed;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->paint_shadow = checkerboard_item_real_paint_shadow;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->paint_border = checkerboard_item_real_paint_border;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->paint_image = checkerboard_item_real_paint_image;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->get_top_left_trinket = checkerboard_item_real_get_top_left_trinket;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->get_top_right_trinket = checkerboard_item_real_get_top_right_trinket;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->get_bottom_left_trinket = checkerboard_item_real_get_bottom_left_trinket;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardItemClass *) klass)->get_bottom_right_trinket = checkerboard_item_real_get_bottom_right_trinket;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((DataViewClass *) klass)->visibility_changed = checkerboard_item_real_visibility_changed;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_checkerboard_item_get_property;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_checkerboard_item_set_property;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_CLASS (klass)->finalize = checkerboard_item_finalize;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), CHECKERBOARD_ITEM_HAS_TAGS, g_param_spec_boolean ("has-tags", "has-tags", "has-tags", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 5631 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_instance_init (CheckerboardItem * self) {
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv = CHECKERBOARD_ITEM_GET_PRIVATE (self);
+#line 119 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions_init (&self->requisition, 0, 0);
+#line 120 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&self->allocation, 0, sizeof (GdkRectangle));
+#line 122 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposure = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->title = NULL;
+#line 124 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->title_visible = TRUE;
+#line 125 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->comment = NULL;
+#line 126 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->comment_visible = TRUE;
+#line 127 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle = NULL;
+#line 128 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->subtitle_visible = FALSE;
+#line 129 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->is_cursor = FALSE;
+#line 130 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->tag_alignment = PANGO_ALIGN_LEFT;
+#line 131 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->user_visible_tag_list = NULL;
+#line 133 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->pixbuf = NULL;
+#line 134 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->display_pixbuf = NULL;
+#line 135 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->brightened = NULL;
+#line 136 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions_init (&self->priv->pixbuf_dim, 0, 0);
+#line 137 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->col = -1;
+#line 138 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->row = -1;
+#line 139 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->horizontal_trinket_offset = 0;
+#line 5676 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_item_finalize (GObject* obj) {
+ CheckerboardItem * self;
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 123 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->title);
+#line 125 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->comment);
+#line 127 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_item_text_unref0 (self->priv->subtitle);
+#line 131 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->user_visible_tag_list);
+#line 132 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->tags);
+#line 133 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->pixbuf);
+#line 134 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->display_pixbuf);
+#line 135 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->brightened);
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_CLASS (checkerboard_item_parent_class)->finalize (obj);
+#line 5702 "CheckerboardLayout.c"
+}
+
+
+GType checkerboard_item_get_type (void) {
+ static volatile gsize checkerboard_item_type_id__volatile = 0;
+ if (g_once_init_enter (&checkerboard_item_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CheckerboardItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) checkerboard_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CheckerboardItem), 0, (GInstanceInitFunc) checkerboard_item_instance_init, NULL };
+ GType checkerboard_item_type_id;
+ checkerboard_item_type_id = g_type_register_static (TYPE_THUMBNAIL_VIEW, "CheckerboardItem", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&checkerboard_item_type_id__volatile, checkerboard_item_type_id);
+ }
+ return checkerboard_item_type_id__volatile;
+}
+
+
+static void _vala_checkerboard_item_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ CheckerboardItem * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ switch (property_id) {
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ case CHECKERBOARD_ITEM_HAS_TAGS:
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_value_set_boolean (value, checkerboard_item_get_has_tags (self));
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 5729 "CheckerboardLayout.c"
+ default:
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 5735 "CheckerboardLayout.c"
+ }
+}
+
+
+static void _vala_checkerboard_item_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ CheckerboardItem * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ switch (property_id) {
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ case CHECKERBOARD_ITEM_HAS_TAGS:
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_has_tags (self, g_value_get_boolean (value));
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 5751 "CheckerboardLayout.c"
+ default:
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 98 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 5757 "CheckerboardLayout.c"
+ }
+}
+
+
+static void _checkerboard_layout_on_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 907 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_contents_altered ((CheckerboardLayout*) self, added, removed);
+#line 5765 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_items_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 908 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_items_altered ((CheckerboardLayout*) self);
+#line 5772 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_items_state_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
+#line 909 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_items_state_changed ((CheckerboardLayout*) self, changed);
+#line 5779 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_items_visibility_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self) {
+#line 910 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_items_visibility_changed ((CheckerboardLayout*) self, changed);
+#line 5786 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_ordering_changed_data_collection_ordering_changed (DataCollection* _sender, gpointer self) {
+#line 911 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_ordering_changed ((CheckerboardLayout*) self);
+#line 5793 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_views_altered_view_collection_views_altered (ViewCollection* _sender, GeeCollection* views, gpointer self) {
+#line 912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_views_altered ((CheckerboardLayout*) self, views);
+#line 5800 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_geometries_altered_view_collection_geometries_altered (ViewCollection* _sender, GeeCollection* views, gpointer self) {
+#line 913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_geometries_altered ((CheckerboardLayout*) self);
+#line 5807 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_items_selection_changed_view_collection_items_selected (ViewCollection* _sender, GeeIterable* selected, gpointer self) {
+#line 914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_items_selection_changed ((CheckerboardLayout*) self);
+#line 5814 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_items_selection_changed_view_collection_items_unselected (ViewCollection* _sender, GeeIterable* unselected, gpointer self) {
+#line 915 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_items_selection_changed ((CheckerboardLayout*) self);
+#line 5821 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_viewport_shifted_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) {
+#line 918 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_viewport_shifted ((CheckerboardLayout*) self);
+#line 5828 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_viewport_resized_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self) {
+#line 924 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_viewport_resized ((CheckerboardLayout*) self);
+#line 5835 "CheckerboardLayout.c"
+}
+
+
+static void _checkerboard_layout_on_colors_changed_config_facade_colors_changed (ConfigFacade* _sender, gpointer self) {
+#line 926 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_colors_changed ((CheckerboardLayout*) self);
+#line 5842 "CheckerboardLayout.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 879 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 5849 "CheckerboardLayout.c"
+}
+
+
+CheckerboardLayout* checkerboard_layout_construct (GType object_type, ViewCollection* view) {
+ CheckerboardLayout * self = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ ConfigFacade* _tmp11_ = NULL;
+ ConfigFacade* _tmp12_ = NULL;
+ GdkRGBA _tmp13_ = {0};
+ ConfigFacade* _tmp14_ = NULL;
+ ConfigFacade* _tmp15_ = NULL;
+#line 878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (view), NULL);
+#line 878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = (CheckerboardLayout*) g_object_new (object_type, NULL);
+#line 879 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = view;
+#line 879 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 879 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 879 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->view = _tmp1_;
+#line 881 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_clear_drag_select (self);
+#line 884 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = view;
+#line 884 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _checkerboard_layout_on_contents_altered_data_collection_contents_altered, self, 0);
+#line 885 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = view;
+#line 885 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _checkerboard_layout_on_items_altered_data_collection_items_altered, self, 0);
+#line 886 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = view;
+#line 886 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp4_, "items-state-changed", (GCallback) _checkerboard_layout_on_items_state_changed_view_collection_items_state_changed, self, 0);
+#line 887 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = view;
+#line 887 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp5_, "items-visibility-changed", (GCallback) _checkerboard_layout_on_items_visibility_changed_view_collection_items_visibility_changed, self, 0);
+#line 888 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = view;
+#line 888 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection), "ordering-changed", (GCallback) _checkerboard_layout_on_ordering_changed_data_collection_ordering_changed, self, 0);
+#line 889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = view;
+#line 889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp7_, "views-altered", (GCallback) _checkerboard_layout_on_views_altered_view_collection_views_altered, self, 0);
+#line 890 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = view;
+#line 890 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp8_, "geometries-altered", (GCallback) _checkerboard_layout_on_geometries_altered_view_collection_geometries_altered, self, 0);
+#line 891 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = view;
+#line 891 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp9_, "items-selected", (GCallback) _checkerboard_layout_on_items_selection_changed_view_collection_items_selected, self, 0);
+#line 892 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = view;
+#line 892 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp10_, "items-unselected", (GCallback) _checkerboard_layout_on_items_selection_changed_view_collection_items_unselected, self, 0);
+#line 894 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = config_facade_get_instance ();
+#line 894 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _tmp11_;
+#line 894 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ config_facade_get_bg_color (_tmp12_, &_tmp13_);
+#line 894 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_override_background_color (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), GTK_STATE_FLAG_NORMAL, &_tmp13_);
+#line 894 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp12_);
+#line 896 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = config_facade_get_instance ();
+#line 896 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = _tmp14_;
+#line 896 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp15_, "colors-changed", (GCallback) _checkerboard_layout_on_colors_changed_config_facade_colors_changed, self, 0);
+#line 896 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp15_);
+#line 899 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_set_has_tooltip (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return self;
+#line 5943 "CheckerboardLayout.c"
+}
+
+
+CheckerboardLayout* checkerboard_layout_new (ViewCollection* view) {
+#line 878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return checkerboard_layout_construct (TYPE_CHECKERBOARD_LAYOUT, view);
+#line 5950 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_set_adjustments (CheckerboardLayout* self, GtkAdjustment* hadjustment, GtkAdjustment* vadjustment) {
+ GtkAdjustment* _tmp0_ = NULL;
+ GtkAdjustment* _tmp1_ = NULL;
+ GtkAdjustment* _tmp2_ = NULL;
+ GtkAdjustment* _tmp3_ = NULL;
+ GtkAdjustment* _tmp4_ = NULL;
+ GtkAdjustment* _tmp5_ = NULL;
+ GtkContainer* _tmp6_ = NULL;
+ GtkContainer* _tmp7_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 929 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GTK_IS_ADJUSTMENT (hadjustment));
+#line 929 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GTK_IS_ADJUSTMENT (vadjustment));
+#line 930 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = hadjustment;
+#line 930 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 930 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->hadjustment);
+#line 930 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->hadjustment = _tmp1_;
+#line 931 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = vadjustment;
+#line 931 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 931 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->vadjustment);
+#line 931 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->vadjustment = _tmp3_;
+#line 934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = hadjustment;
+#line 934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp4_, "value-changed", (GCallback) _checkerboard_layout_on_viewport_shifted_gtk_adjustment_value_changed, self, 0);
+#line 935 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = vadjustment;
+#line 935 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (_tmp5_, "value-changed", (GCallback) _checkerboard_layout_on_viewport_shifted_gtk_adjustment_value_changed, self, 0);
+#line 938 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 938 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp6_;
+#line 938 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), "size-allocate", (GCallback) _checkerboard_layout_on_viewport_resized_gtk_widget_size_allocate, self, 0);
+#line 5999 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_set_scale (CheckerboardLayout* self, gint scale) {
+ gint _tmp0_ = 0;
+#line 943 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 944 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = scale;
+#line 944 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->scale = _tmp0_;
+#line 6011 "CheckerboardLayout.c"
+}
+
+
+gint checkerboard_layout_get_scale (CheckerboardLayout* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), 0);
+#line 948 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->scale;
+#line 948 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 948 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 6026 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_set_name (CheckerboardLayout* self, const gchar* name) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 951 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 951 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (name != NULL);
+#line 952 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = name;
+#line 952 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 952 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (self->priv->page_name);
+#line 952 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->page_name = _tmp1_;
+#line 6045 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_viewport_resized (CheckerboardLayout* self) {
+ GtkRequisition req = {0};
+ GtkRequisition _tmp0_ = {0};
+ GtkAllocation parent_allocation = {0};
+ GtkContainer* _tmp1_ = NULL;
+ GtkContainer* _tmp2_ = NULL;
+ GtkAllocation _tmp3_ = {0};
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 955 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 957 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_preferred_size (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), NULL, &_tmp0_);
+#line 957 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ req = _tmp0_;
+#line 960 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 960 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_;
+#line 960 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), &_tmp3_);
+#line 960 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ parent_allocation = _tmp3_;
+#line 962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->message;
+#line 962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp4_ == NULL) {
+#line 6076 "CheckerboardLayout.c"
+ GtkRequisition _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 971 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = req;
+#line 971 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.height;
+#line 971 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_ != 0) {
+#line 6085 "CheckerboardLayout.c"
+ GtkAllocation _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GtkRequisition _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 972 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = parent_allocation;
+#line 972 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp7_.width;
+#line 972 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = req;
+#line 972 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _tmp9_.height;
+#line 972 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp8_ - CHECKERBOARD_LAYOUT_SCROLLBAR_PLACEHOLDER_WIDTH, _tmp10_);
+#line 6100 "CheckerboardLayout.c"
+ }
+ } else {
+ GtkAllocation _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GtkAllocation _tmp13_ = {0};
+ gint _tmp14_ = 0;
+#line 976 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = parent_allocation;
+#line 976 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _tmp11_.width;
+#line 976 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = parent_allocation;
+#line 976 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp13_.height;
+#line 976 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp12_, _tmp14_);
+#line 6117 "CheckerboardLayout.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_viewport_resized (self);
+#line 983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = self->priv->size_allocate_due_to_reflow;
+#line 983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp15_) {
+#line 984 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_clear_anchor (self);
+#line 6127 "CheckerboardLayout.c"
+ } else {
+#line 986 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->size_allocate_due_to_reflow = FALSE;
+#line 6131 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_layout_on_viewport_shifted (CheckerboardLayout* self) {
+#line 989 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 990 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_update_visible_page (self);
+#line 991 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_exposure (self, "on_viewport_shift");
+#line 993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_clear_anchor (self);
+#line 6145 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_items_selection_changed (CheckerboardLayout* self) {
+#line 996 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 997 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_clear_anchor (self);
+#line 6154 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_clear_anchor (CheckerboardLayout* self) {
+ gboolean _tmp0_ = FALSE;
+#line 1000 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1001 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->in_center_on_anchor;
+#line 1001 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 1002 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6168 "CheckerboardLayout.c"
+ }
+#line 1004 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->anchor);
+#line 1004 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->anchor = NULL;
+#line 6174 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_update_anchor (CheckerboardLayout* self) {
+ gboolean _tmp0_ = FALSE;
+ GeeList* items_on_page = NULL;
+ GdkRectangle _tmp1_ = {0};
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GtkAdjustment* _tmp21_ = NULL;
+ gdouble _tmp22_ = 0.0;
+ GeeList* _tmp23_ = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gpointer _tmp27_ = NULL;
+#line 1007 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1008 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->in_center_on_anchor;
+#line 1008 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (!_tmp0_, "!in_center_on_anchor");
+#line 1010 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->visible_page;
+#line 1010 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = checkerboard_layout_intersection (self, &_tmp1_);
+#line 1010 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ items_on_page = _tmp2_;
+#line 1011 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = items_on_page;
+#line 1011 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1011 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _tmp4_;
+#line 1011 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp5_ == 0) {
+#line 1012 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->anchor);
+#line 1012 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->anchor = NULL;
+#line 1013 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (items_on_page);
+#line 1013 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6221 "CheckerboardLayout.c"
+ }
+ {
+ GeeList* _item_list = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ gint _item_size = 0;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _item_index = 0;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = items_on_page;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_list = _tmp7_;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _item_list;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _tmp9_;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_size = _tmp10_;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_index = -1;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 6250 "CheckerboardLayout.c"
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ CheckerboardItem* item = NULL;
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gpointer _tmp16_ = NULL;
+ CheckerboardItem* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _item_index;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_index = _tmp11_ + 1;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _item_index;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _item_size;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp12_ < _tmp13_)) {
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 6272 "CheckerboardLayout.c"
+ }
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _item_list;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = _item_index;
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = gee_list_get (_tmp14_, _tmp15_);
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = (CheckerboardItem*) _tmp16_;
+#line 1017 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = item;
+#line 1017 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_VIEW, DataView));
+#line 1017 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp18_) {
+#line 6288 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp19_ = NULL;
+ CheckerboardItem* _tmp20_ = NULL;
+#line 1018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = item;
+#line 1018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 1018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->anchor);
+#line 1018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->anchor = _tmp20_;
+#line 1019 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1019 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_item_list);
+#line 1019 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (items_on_page);
+#line 1019 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6307 "CheckerboardLayout.c"
+ }
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 6311 "CheckerboardLayout.c"
+ }
+#line 1016 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_item_list);
+#line 6315 "CheckerboardLayout.c"
+ }
+#line 1023 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = self->priv->vadjustment;
+#line 1023 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = gtk_adjustment_get_value (_tmp21_);
+#line 1023 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp22_ == ((gdouble) 0)) {
+#line 1024 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->anchor);
+#line 1024 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->anchor = NULL;
+#line 1025 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (items_on_page);
+#line 1025 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6331 "CheckerboardLayout.c"
+ }
+#line 1030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = items_on_page;
+#line 1030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = items_on_page;
+#line 1030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = _tmp25_;
+#line 1030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = gee_list_get (_tmp23_, ((gint) _tmp26_) / 2);
+#line 1030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->anchor);
+#line 1030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->anchor = (CheckerboardItem*) _tmp27_;
+#line 1007 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (items_on_page);
+#line 6349 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_center_on_anchor (CheckerboardLayout* self, gdouble upper) {
+ CheckerboardItem* _tmp0_ = NULL;
+ gdouble anchor_pos = 0.0;
+ CheckerboardItem* _tmp1_ = NULL;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ CheckerboardItem* _tmp4_ = NULL;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GtkAdjustment* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GtkAdjustment* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ GtkAdjustment* _tmp11_ = NULL;
+ gdouble _tmp12_ = 0.0;
+ GtkAdjustment* _tmp13_ = NULL;
+ gdouble _tmp14_ = 0.0;
+ GtkAdjustment* _tmp15_ = NULL;
+ gdouble _tmp16_ = 0.0;
+ gdouble _tmp17_ = 0.0;
+#line 1033 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1034 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->anchor;
+#line 1034 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ == NULL) {
+#line 1035 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6381 "CheckerboardLayout.c"
+ }
+#line 1037 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->in_center_on_anchor = TRUE;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->anchor;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_->allocation;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp2_.y;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->anchor;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _tmp4_->allocation;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.height;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = self->priv->vadjustment;
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = gtk_adjustment_get_page_size (_tmp7_);
+#line 1039 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ anchor_pos = (_tmp3_ + (_tmp6_ / 2)) - (_tmp8_ / 2);
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->vadjustment;
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = anchor_pos;
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->vadjustment;
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = gtk_adjustment_get_lower (_tmp11_);
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = self->priv->vadjustment;
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = gtk_adjustment_get_upper (_tmp13_);
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = self->priv->vadjustment;
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = gtk_adjustment_get_page_size (_tmp15_);
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = CLAMP (_tmp10_, _tmp12_, _tmp14_ - _tmp16_);
+#line 1041 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_adjustment_set_value (_tmp9_, _tmp17_);
+#line 1044 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->in_center_on_anchor = FALSE;
+#line 6425 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_set_cursor (CheckerboardLayout* self, CheckerboardItem* item) {
+ GeeHashSet* collection = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ CheckerboardItem* _tmp1_ = NULL;
+ CheckerboardItem* _tmp8_ = NULL;
+ CheckerboardItem* _tmp9_ = NULL;
+ CheckerboardItem* _tmp10_ = NULL;
+ GeeHashSet* _tmp11_ = NULL;
+ CheckerboardItem* _tmp12_ = NULL;
+ GeeHashSet* _tmp13_ = NULL;
+#line 1047 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1047 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
+#line 1048 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1048 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ collection = _tmp0_;
+#line 1049 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->cursor;
+#line 1049 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 6451 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ CheckerboardItem* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1050 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->cursor;
+#line 1050 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_is_cursor (_tmp2_, FALSE);
+#line 1052 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->view;
+#line 1052 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->cursor;
+#line 1052 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_OBJECT, DataObject));
+#line 1052 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp5_) {
+#line 6468 "CheckerboardLayout.c"
+ GeeHashSet* _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+#line 1053 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = collection;
+#line 1053 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = self->priv->cursor;
+#line 1053 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_VIEW, DataView));
+#line 6477 "CheckerboardLayout.c"
+ }
+ }
+#line 1056 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = item;
+#line 1056 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_is_cursor (_tmp8_, TRUE);
+#line 1057 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = item;
+#line 1057 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 1057 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->cursor);
+#line 1057 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->cursor = _tmp10_;
+#line 1058 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = collection;
+#line 1058 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = item;
+#line 1058 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_VIEW, DataView));
+#line 1059 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = collection;
+#line 1059 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_on_items_state_changed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1047 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (collection);
+#line 6504 "CheckerboardLayout.c"
+}
+
+
+CheckerboardItem* checkerboard_layout_get_cursor (CheckerboardLayout* self) {
+ CheckerboardItem* result = NULL;
+ CheckerboardItem* _tmp0_ = NULL;
+ CheckerboardItem* _tmp1_ = NULL;
+#line 1062 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), NULL);
+#line 1063 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->cursor;
+#line 1063 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1063 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp1_;
+#line 1063 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 6522 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_contents_altered (CheckerboardLayout* self, GeeIterable* added, GeeIterable* removed) {
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1067 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 1067 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 1069 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = added;
+#line 1069 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ != NULL) {
+#line 1070 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (self->priv->message);
+#line 1070 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->message = NULL;
+#line 6543 "CheckerboardLayout.c"
+ }
+#line 1072 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = removed;
+#line 1072 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 6549 "CheckerboardLayout.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = removed;
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = gee_iterable_iterator (_tmp2_);
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _object_it = _tmp3_;
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 6562 "CheckerboardLayout.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ GeeHashSet* _tmp8_ = NULL;
+ DataObject* _tmp9_ = NULL;
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _object_it;
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp5_) {
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 6578 "CheckerboardLayout.c"
+ }
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _object_it;
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ object = (DataObject*) _tmp7_;
+#line 1074 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = self->priv->exposed_items;
+#line 1074 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = object;
+#line 1074 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (object);
+#line 6594 "CheckerboardLayout.c"
+ }
+#line 1073 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_object_it);
+#line 6598 "CheckerboardLayout.c"
+ }
+ }
+#line 1079 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = (_vala_array_free (self->priv->item_rows, self->priv->item_rows_length1, (GDestroyNotify) checkerboard_layout_layout_row_unref), NULL);
+#line 1079 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = NULL;
+#line 1079 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows_length1 = 0;
+#line 1079 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->_item_rows_size_ = self->priv->item_rows_length1;
+#line 1081 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, "on_contents_altered");
+#line 6611 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_items_altered (CheckerboardLayout* self) {
+#line 1084 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1085 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, "on_items_altered");
+#line 6620 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_items_state_changed (CheckerboardLayout* self, GeeIterable* changed) {
+ GeeIterable* _tmp0_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1088 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (changed));
+#line 1089 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = changed;
+#line 1089 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_items_dirty (self, "on_items_state_changed", _tmp0_);
+#line 6634 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_items_visibility_changed (CheckerboardLayout* self, GeeIterable* changed) {
+#line 1092 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1092 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (changed));
+#line 1093 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, "on_items_visibility_changed");
+#line 6645 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_ordering_changed (CheckerboardLayout* self) {
+#line 1096 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1097 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, "on_ordering_changed");
+#line 6654 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_views_altered (CheckerboardLayout* self, GeeCollection* altered) {
+ GeeCollection* _tmp0_ = NULL;
+#line 1100 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1100 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (altered));
+#line 1101 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = altered;
+#line 1101 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_items_dirty (self, "on_views_altered", G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 6668 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_geometries_altered (CheckerboardLayout* self) {
+#line 1104 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1105 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, "on_geometries_altered");
+#line 6677 "CheckerboardLayout.c"
+}
+
+
+static gboolean _checkerboard_layout_do_reflow_gsource_func (gpointer self) {
+ gboolean result;
+ result = checkerboard_layout_do_reflow ((CheckerboardLayout*) self);
+#line 1121 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 6686 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_need_reflow (CheckerboardLayout* self, const gchar* caller) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 1108 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1108 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (caller != NULL);
+#line 1109 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->flow_scheduled;
+#line 1109 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 1110 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6703 "CheckerboardLayout.c"
+ }
+#line 1112 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->is_in_view;
+#line 1112 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp1_) {
+#line 1113 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->reflow_needed = TRUE;
+#line 1114 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6713 "CheckerboardLayout.c"
+ }
+#line 1120 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->flow_scheduled = TRUE;
+#line 1121 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_idle_add_full (G_PRIORITY_HIGH, _checkerboard_layout_do_reflow_gsource_func, g_object_ref (self), g_object_unref);
+#line 6719 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_layout_do_reflow (CheckerboardLayout* self) {
+ gboolean result = FALSE;
+#line 1124 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), FALSE);
+#line 1125 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_reflow (self, "do_reflow");
+#line 1126 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_exposure (self, "do_reflow");
+#line 1128 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->flow_scheduled = FALSE;
+#line 1130 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = FALSE;
+#line 1130 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 6737 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_need_exposure (CheckerboardLayout* self, const gchar* caller) {
+#line 1133 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1133 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (caller != NULL);
+#line 1137 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposure_dirty = TRUE;
+#line 1138 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 6750 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_set_message (CheckerboardLayout* self, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 1141 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1142 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = text;
+#line 1142 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->message;
+#line 1142 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (g_strcmp0 (_tmp0_, _tmp1_) == 0) {
+#line 1143 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 6770 "CheckerboardLayout.c"
+ }
+#line 1145 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = text;
+#line 1145 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 1145 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (self->priv->message);
+#line 1145 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->message = _tmp3_;
+#line 1147 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = text;
+#line 1147 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp4_ != NULL) {
+#line 6784 "CheckerboardLayout.c"
+ GtkContainer* _tmp5_ = NULL;
+ GtkContainer* _tmp6_ = NULL;
+#line 1150 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1150 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_;
+#line 1150 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_ != NULL) {
+#line 6793 "CheckerboardLayout.c"
+ GtkAllocation parent_allocation = {0};
+ GtkContainer* _tmp7_ = NULL;
+ GtkContainer* _tmp8_ = NULL;
+ GtkAllocation _tmp9_ = {0};
+ GtkAllocation _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GtkAllocation _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 1152 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1152 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp7_;
+#line 1152 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), &_tmp9_);
+#line 1152 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ parent_allocation = _tmp9_;
+#line 1154 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = parent_allocation;
+#line 1154 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _tmp10_.width;
+#line 1154 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = parent_allocation;
+#line 1154 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp12_.height;
+#line 1154 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp11_, _tmp13_);
+#line 6820 "CheckerboardLayout.c"
+ }
+ } else {
+#line 1158 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, "set_message");
+#line 6825 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_layout_unset_message (CheckerboardLayout* self) {
+#line 1162 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1163 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_set_message (self, NULL);
+#line 6835 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_update_visible_page (CheckerboardLayout* self) {
+ gboolean _tmp0_ = FALSE;
+ GtkAdjustment* _tmp1_ = NULL;
+#line 1166 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1167 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->hadjustment;
+#line 1167 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 6848 "CheckerboardLayout.c"
+ GtkAdjustment* _tmp2_ = NULL;
+#line 1167 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->vadjustment;
+#line 1167 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 6854 "CheckerboardLayout.c"
+ } else {
+#line 1167 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 6858 "CheckerboardLayout.c"
+ }
+#line 1167 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 6862 "CheckerboardLayout.c"
+ GtkAdjustment* _tmp3_ = NULL;
+ GtkAdjustment* _tmp4_ = NULL;
+ GdkRectangle _tmp5_ = {0};
+#line 1168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->hadjustment;
+#line 1168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->vadjustment;
+#line 1168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ get_adjustment_page (_tmp3_, _tmp4_, &_tmp5_);
+#line 1168 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->visible_page = _tmp5_;
+#line 6874 "CheckerboardLayout.c"
+ }
+}
+
+
+void checkerboard_layout_set_in_view (CheckerboardLayout* self, gboolean in_view) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 1171 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = in_view;
+#line 1172 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->is_in_view = _tmp0_;
+#line 1174 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = in_view;
+#line 1174 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_) {
+#line 6892 "CheckerboardLayout.c"
+ gboolean _tmp2_ = FALSE;
+#line 1175 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->reflow_needed;
+#line 1175 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_) {
+#line 1176 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, "set_in_view (true)");
+#line 6900 "CheckerboardLayout.c"
+ } else {
+#line 1178 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_exposure (self, "set_in_view (true)");
+#line 6904 "CheckerboardLayout.c"
+ }
+ } else {
+#line 1180 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_unexpose_items (self, "set_in_view (false)");
+#line 6909 "CheckerboardLayout.c"
+ }
+}
+
+
+static gpointer _checkerboard_layout_layout_row_ref0 (gpointer self) {
+#line 1196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return self ? checkerboard_layout_layout_row_ref (self) : NULL;
+#line 6917 "CheckerboardLayout.c"
+}
+
+
+CheckerboardItem* checkerboard_layout_get_item_at_pixel (CheckerboardLayout* self, gdouble xd, gdouble yd) {
+ CheckerboardItem* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ gint x = 0;
+ gdouble _tmp3_ = 0.0;
+ gint y = 0;
+ gdouble _tmp4_ = 0.0;
+ CheckerboardLayoutLayoutRow* in_range = NULL;
+ gint min = 0;
+ gint max = 0;
+ CheckerboardLayoutLayoutRow** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ CheckerboardLayoutLayoutRow* _tmp30_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp31_ = NULL;
+ CheckerboardItem** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+#line 1183 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), NULL);
+#line 1184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->message;
+#line 1184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != NULL) {
+#line 1184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = TRUE;
+#line 6946 "CheckerboardLayout.c"
+ } else {
+ CheckerboardLayoutLayoutRow** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 1184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->item_rows;
+#line 1184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2__length1 = self->priv->item_rows_length1;
+#line 1184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 6956 "CheckerboardLayout.c"
+ }
+#line 1184 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 1185 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1185 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 6964 "CheckerboardLayout.c"
+ }
+#line 1187 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = xd;
+#line 1187 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = (gint) _tmp3_;
+#line 1188 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = yd;
+#line 1188 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = (gint) _tmp4_;
+#line 1191 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ in_range = NULL;
+#line 1192 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ min = 0;
+#line 1193 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->item_rows;
+#line 1193 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5__length1 = self->priv->item_rows_length1;
+#line 1193 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max = _tmp5__length1;
+#line 6984 "CheckerboardLayout.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 1194 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = TRUE;
+#line 1194 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 6991 "CheckerboardLayout.c"
+ gint mid = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ CheckerboardLayoutLayoutRow* row = NULL;
+ CheckerboardLayoutLayoutRow** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp12_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ CheckerboardLayoutLayoutRow* _tmp15_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 1194 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp6_) {
+#line 7008 "CheckerboardLayout.c"
+ }
+#line 1194 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = FALSE;
+#line 1195 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = min;
+#line 1195 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = max;
+#line 1195 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = min;
+#line 1195 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ mid = _tmp7_ + ((_tmp8_ - _tmp9_) / 2);
+#line 1196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = self->priv->item_rows;
+#line 1196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10__length1 = self->priv->item_rows_length1;
+#line 1196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = mid;
+#line 1196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _tmp10_[_tmp11_];
+#line 1196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _checkerboard_layout_layout_row_ref0 (_tmp12_);
+#line 1196 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp13_;
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = row;
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp15_ == NULL) {
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = TRUE;
+#line 7038 "CheckerboardLayout.c"
+ } else {
+ gint _tmp16_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = y;
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = row;
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = _tmp17_->y;
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp16_ < _tmp18_;
+#line 7051 "CheckerboardLayout.c"
+ }
+#line 1198 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp14_) {
+#line 7055 "CheckerboardLayout.c"
+ gint _tmp19_ = 0;
+#line 1201 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = mid;
+#line 1201 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max = _tmp19_ - 1;
+#line 7061 "CheckerboardLayout.c"
+ } else {
+ gint _tmp20_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+#line 1202 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = y;
+#line 1202 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = row;
+#line 1202 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _tmp21_->y;
+#line 1202 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = row;
+#line 1202 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = _tmp23_->height;
+#line 1202 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp20_ > (_tmp22_ + _tmp24_)) {
+#line 7080 "CheckerboardLayout.c"
+ gint _tmp25_ = 0;
+#line 1204 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = mid;
+#line 1204 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ min = _tmp25_ + 1;
+#line 7086 "CheckerboardLayout.c"
+ } else {
+ CheckerboardLayoutLayoutRow* _tmp26_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp27_ = NULL;
+#line 1207 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = row;
+#line 1207 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = _checkerboard_layout_layout_row_ref0 (_tmp26_);
+#line 1207 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (in_range);
+#line 1207 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ in_range = _tmp27_;
+#line 1209 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (row);
+#line 1209 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 7102 "CheckerboardLayout.c"
+ }
+ }
+#line 1212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = min;
+#line 1212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = max;
+#line 1212 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp28_ > _tmp29_) {
+#line 1213 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (row);
+#line 1213 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 7115 "CheckerboardLayout.c"
+ }
+#line 1194 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (row);
+#line 7119 "CheckerboardLayout.c"
+ }
+ }
+#line 1216 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = in_range;
+#line 1216 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp30_ == NULL) {
+#line 1217 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1217 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (in_range);
+#line 1217 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7132 "CheckerboardLayout.c"
+ }
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = in_range;
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = _tmp31_->items;
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32__length1 = _tmp31_->items_length1;
+#line 7140 "CheckerboardLayout.c"
+ {
+ CheckerboardItem** item_collection = NULL;
+ gint item_collection_length1 = 0;
+ gint _item_collection_size_ = 0;
+ gint item_it = 0;
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item_collection = _tmp32_;
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item_collection_length1 = _tmp32__length1;
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ for (item_it = 0; item_it < _tmp32__length1; item_it = item_it + 1) {
+#line 7152 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp33_ = NULL;
+ CheckerboardItem* item = NULL;
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = _g_object_ref0 (item_collection[item_it]);
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = _tmp33_;
+#line 7159 "CheckerboardLayout.c"
+ {
+ CheckerboardItem* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ CheckerboardItem* _tmp36_ = NULL;
+ GdkRectangle _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ gboolean _tmp39_ = FALSE;
+ gboolean _tmp40_ = FALSE;
+ gint _tmp41_ = 0;
+ CheckerboardItem* _tmp42_ = NULL;
+ GdkRectangle _tmp43_ = {0};
+ gint _tmp44_ = 0;
+ CheckerboardItem* _tmp45_ = NULL;
+ GdkRectangle _tmp46_ = {0};
+ gint _tmp47_ = 0;
+#line 1223 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = item;
+#line 1223 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp34_ == NULL) {
+#line 1224 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1224 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ continue;
+#line 7183 "CheckerboardLayout.c"
+ }
+#line 1226 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = x;
+#line 1226 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = item;
+#line 1226 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = _tmp36_->allocation;
+#line 1226 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = _tmp37_.x;
+#line 1226 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp35_ < _tmp38_) {
+#line 1228 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1228 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 7199 "CheckerboardLayout.c"
+ }
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = x;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = item;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = _tmp42_->allocation;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = _tmp43_.x;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = item;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = _tmp45_->allocation;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = _tmp46_.width;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp41_ <= (_tmp44_ + _tmp47_)) {
+#line 7217 "CheckerboardLayout.c"
+ gint _tmp48_ = 0;
+ CheckerboardItem* _tmp49_ = NULL;
+ GdkRectangle _tmp50_ = {0};
+ gint _tmp51_ = 0;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = y;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = item;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp50_ = _tmp49_->allocation;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp51_ = _tmp50_.y;
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = _tmp48_ >= _tmp51_;
+#line 7232 "CheckerboardLayout.c"
+ } else {
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = FALSE;
+#line 7236 "CheckerboardLayout.c"
+ }
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp40_) {
+#line 7240 "CheckerboardLayout.c"
+ gint _tmp52_ = 0;
+ CheckerboardItem* _tmp53_ = NULL;
+ GdkRectangle _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ CheckerboardItem* _tmp56_ = NULL;
+ GdkRectangle _tmp57_ = {0};
+ gint _tmp58_ = 0;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp52_ = y;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp53_ = item;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp54_ = _tmp53_->allocation;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp55_ = _tmp54_.y;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp56_ = item;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp57_ = _tmp56_->allocation;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp58_ = _tmp57_.height;
+#line 1234 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = _tmp52_ <= (_tmp55_ + _tmp58_);
+#line 7264 "CheckerboardLayout.c"
+ } else {
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = FALSE;
+#line 7268 "CheckerboardLayout.c"
+ }
+#line 1233 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp39_) {
+#line 1235 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = item;
+#line 1235 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (in_range);
+#line 1235 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7278 "CheckerboardLayout.c"
+ }
+#line 1220 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 7282 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 1238 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1238 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (in_range);
+#line 1238 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7292 "CheckerboardLayout.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 7310 "CheckerboardLayout.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 7333 "CheckerboardLayout.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 7341 "CheckerboardLayout.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 7353 "CheckerboardLayout.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 7377 "CheckerboardLayout.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 7383 "CheckerboardLayout.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 7387 "CheckerboardLayout.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 7391 "CheckerboardLayout.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 7403 "CheckerboardLayout.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 7413 "CheckerboardLayout.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 7419 "CheckerboardLayout.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 7433 "CheckerboardLayout.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 7443 "CheckerboardLayout.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 7449 "CheckerboardLayout.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 7458 "CheckerboardLayout.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 7478 "CheckerboardLayout.c"
+}
+
+
+gint checkerboard_layout_get_tag_index_at_pos (const gchar* tag_list, gint pos) {
+ gint result = 0;
+ gint sep_len = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint len = 0;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gint _tmp7_ = 0;
+ gint index = 0;
+#line 1241 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (tag_list != NULL, 0);
+#line 1242 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = strlen (TAG_TAG_LIST_SEPARATOR_STRING);
+#line 1242 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_;
+#line 1242 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ sep_len = _tmp1_;
+#line 1243 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = sep_len;
+#line 1243 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp2_ > 0, "sep_len > 0");
+#line 1244 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = tag_list;
+#line 1244 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = strlen (_tmp3_);
+#line 1244 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _tmp4_;
+#line 1244 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ len = _tmp5_;
+#line 1245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = pos;
+#line 1245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp7_ < 0) {
+#line 1245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = TRUE;
+#line 7521 "CheckerboardLayout.c"
+ } else {
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 1245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = pos;
+#line 1245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = len;
+#line 1245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp8_ >= _tmp9_;
+#line 7531 "CheckerboardLayout.c"
+ }
+#line 1245 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_) {
+#line 1246 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = -1;
+#line 1246 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7539 "CheckerboardLayout.c"
+ }
+ {
+ gint i = 0;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ i = 0;
+#line 7545 "CheckerboardLayout.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = TRUE;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 7552 "CheckerboardLayout.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ const gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gchar _tmp17_ = '\0';
+ gint _tmp18_ = 0;
+ gchar _tmp19_ = '\0';
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp10_) {
+#line 7563 "CheckerboardLayout.c"
+ gint _tmp11_ = 0;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = i;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ i = _tmp11_ + 1;
+#line 7569 "CheckerboardLayout.c"
+ }
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = FALSE;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = i;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = sep_len;
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp12_ < _tmp13_)) {
+#line 1249 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 7581 "CheckerboardLayout.c"
+ }
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = tag_list;
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = pos;
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = string_get (_tmp15_, (glong) _tmp16_);
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = i;
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = string_get (TAG_TAG_LIST_SEPARATOR_STRING, (glong) _tmp18_);
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp17_ == _tmp19_) {
+#line 7595 "CheckerboardLayout.c"
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = pos;
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = i;
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp20_ >= _tmp21_;
+#line 7604 "CheckerboardLayout.c"
+ } else {
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = FALSE;
+#line 7608 "CheckerboardLayout.c"
+ }
+#line 1250 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp14_) {
+#line 7612 "CheckerboardLayout.c"
+ const gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = tag_list;
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = pos;
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = i;
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = sep_len;
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = string_substring (_tmp22_, (glong) (_tmp23_ - _tmp24_), (glong) _tmp25_);
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = _tmp26_;
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = g_strcmp0 (_tmp27_, TAG_TAG_LIST_SEPARATOR_STRING) == 0;
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp27_);
+#line 1251 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp28_) {
+#line 1252 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = -1;
+#line 1252 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7642 "CheckerboardLayout.c"
+ }
+ }
+ }
+ }
+ }
+#line 1259 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ index = 0;
+#line 7650 "CheckerboardLayout.c"
+ {
+ gint i = 0;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ i = 0;
+#line 7655 "CheckerboardLayout.c"
+ {
+ gboolean _tmp29_ = FALSE;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = TRUE;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 7662 "CheckerboardLayout.c"
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gboolean _tmp33_ = FALSE;
+ gboolean _tmp34_ = FALSE;
+ const gchar* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gchar _tmp37_ = '\0';
+ gchar _tmp38_ = '\0';
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp29_) {
+#line 7673 "CheckerboardLayout.c"
+ gint _tmp30_ = 0;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = i;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ i = _tmp30_ + 1;
+#line 7679 "CheckerboardLayout.c"
+ }
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = FALSE;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = i;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = pos;
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp31_ < _tmp32_)) {
+#line 1260 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 7691 "CheckerboardLayout.c"
+ }
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = tag_list;
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = i;
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = string_get (_tmp35_, (glong) _tmp36_);
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = string_get (TAG_TAG_LIST_SEPARATOR_STRING, (glong) 0);
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp37_ == _tmp38_) {
+#line 7703 "CheckerboardLayout.c"
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+#line 1262 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = i;
+#line 1262 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = sep_len;
+#line 1262 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = len;
+#line 1262 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = (_tmp39_ + _tmp40_) <= _tmp41_;
+#line 7715 "CheckerboardLayout.c"
+ } else {
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = FALSE;
+#line 7719 "CheckerboardLayout.c"
+ }
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp34_) {
+#line 7723 "CheckerboardLayout.c"
+ const gchar* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+#line 1263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = tag_list;
+#line 1263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = i;
+#line 1263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = sep_len;
+#line 1263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = string_substring (_tmp42_, (glong) _tmp43_, (glong) _tmp44_);
+#line 1263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = _tmp45_;
+#line 1263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = g_strcmp0 (_tmp46_, TAG_TAG_LIST_SEPARATOR_STRING) == 0;
+#line 1263 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp46_);
+#line 7743 "CheckerboardLayout.c"
+ } else {
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = FALSE;
+#line 7747 "CheckerboardLayout.c"
+ }
+#line 1261 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp33_) {
+#line 7751 "CheckerboardLayout.c"
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+#line 1264 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = index;
+#line 1264 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ index = _tmp47_ + 1;
+#line 1265 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = i;
+#line 1265 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = sep_len;
+#line 1265 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ i = _tmp48_ + (_tmp49_ - 1);
+#line 7765 "CheckerboardLayout.c"
+ }
+ }
+ }
+ }
+#line 1268 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = index;
+#line 1268 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7774 "CheckerboardLayout.c"
+}
+
+
+static gint checkerboard_layout_internal_handle_tag_mouse_event (CheckerboardLayout* self, CheckerboardItem* item, gint x, gint y) {
+ gint result = 0;
+ PangoLayout* layout = NULL;
+ CheckerboardItem* _tmp0_ = NULL;
+ PangoLayout* _tmp1_ = NULL;
+ PangoLayout* _tmp2_ = NULL;
+ GdkRectangle rect = {0};
+ CheckerboardItem* _tmp3_ = NULL;
+ GdkRectangle _tmp4_ = {0};
+ gint index = 0;
+ gint trailing = 0;
+ gint px = 0;
+ gint _tmp5_ = 0;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint py = 0;
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ PangoLayout* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gboolean _tmp16_ = FALSE;
+#line 1271 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), 0);
+#line 1271 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (item), 0);
+#line 1272 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = item;
+#line 1272 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = checkerboard_item_get_tag_list_layout (_tmp0_);
+#line 1272 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ layout = _tmp1_;
+#line 1273 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = layout;
+#line 1273 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_ == NULL) {
+#line 1274 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = -1;
+#line 1274 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (layout);
+#line 1274 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7823 "CheckerboardLayout.c"
+ }
+#line 1275 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = item;
+#line 1275 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_get_subtitle_allocation (_tmp3_, &_tmp4_);
+#line 1275 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ rect = _tmp4_;
+#line 1277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = x;
+#line 1277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = rect;
+#line 1277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp6_.x;
+#line 1277 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ px = (_tmp5_ - _tmp7_) * PANGO_SCALE;
+#line 1278 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = y;
+#line 1278 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = rect;
+#line 1278 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _tmp9_.y;
+#line 1278 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ py = (_tmp8_ - _tmp10_) * PANGO_SCALE;
+#line 1279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = layout;
+#line 1279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = px;
+#line 1279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = py;
+#line 1279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = pango_layout_xy_to_index (_tmp11_, _tmp12_, _tmp13_, &_tmp14_, &_tmp15_);
+#line 1279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ index = _tmp14_;
+#line 1279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ trailing = _tmp15_;
+#line 1279 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp16_) {
+#line 7861 "CheckerboardLayout.c"
+ PangoLayout* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 1280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = layout;
+#line 1280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = pango_layout_get_text (_tmp17_);
+#line 1280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = index;
+#line 1280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = checkerboard_layout_get_tag_index_at_pos (_tmp18_, _tmp19_);
+#line 1280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp20_;
+#line 1280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (layout);
+#line 1280 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7880 "CheckerboardLayout.c"
+ }
+#line 1281 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = -1;
+#line 1281 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (layout);
+#line 1281 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7888 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_layout_handle_mouse_motion (CheckerboardLayout* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ CheckerboardItem* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gint tag_index = 0;
+ CheckerboardItem* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ CheckerboardItem* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 1284 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), FALSE);
+#line 1284 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (item), FALSE);
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = item;
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = checkerboard_item_get_has_tags (_tmp1_);
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp2_;
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp3_) {
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = TRUE;
+#line 7920 "CheckerboardLayout.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = checkerboard_layout_is_drag_select_active (self);
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_;
+#line 7927 "CheckerboardLayout.c"
+ }
+#line 1285 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 1286 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = FALSE;
+#line 1286 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7935 "CheckerboardLayout.c"
+ }
+#line 1287 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = item;
+#line 1287 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = x;
+#line 1287 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = y;
+#line 1287 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = checkerboard_layout_internal_handle_tag_mouse_event (self, _tmp5_, _tmp6_, _tmp7_);
+#line 1287 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ tag_index = _tmp8_;
+#line 1288 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = item;
+#line 1288 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = tag_index;
+#line 1288 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_highlight_user_visible_tag (_tmp9_, _tmp10_);
+#line 1289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = tag_index;
+#line 1289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp11_ >= 0;
+#line 1289 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 7959 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_layout_handle_left_click (CheckerboardLayout* self, CheckerboardItem* item, gdouble xd, gdouble yd, GdkModifierType mask) {
+ gboolean result = FALSE;
+ gint tag_index = 0;
+ CheckerboardItem* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 1292 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), FALSE);
+#line 1292 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (item), FALSE);
+#line 1293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = item;
+#line 1293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = xd;
+#line 1293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = round (_tmp1_);
+#line 1293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = yd;
+#line 1293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = round (_tmp3_);
+#line 1293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = checkerboard_layout_internal_handle_tag_mouse_event (self, _tmp0_, (gint) _tmp2_, (gint) _tmp4_);
+#line 1293 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ tag_index = _tmp5_;
+#line 1294 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = tag_index;
+#line 1294 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_ >= 0) {
+#line 7995 "CheckerboardLayout.c"
+ Tag* tag = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ Tag* _tmp9_ = NULL;
+ LibraryWindow* _tmp10_ = NULL;
+ LibraryWindow* _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+#line 1295 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = item;
+#line 1295 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = tag_index;
+#line 1295 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = checkerboard_item_get_user_visible_tag (_tmp7_, _tmp8_);
+#line 1295 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ tag = _tmp9_;
+#line 1296 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = library_window_get_app ();
+#line 1296 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _tmp10_;
+#line 1296 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = tag;
+#line 1296 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ library_window_switch_to_tag (_tmp11_, _tmp12_);
+#line 1296 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = TRUE;
+#line 1297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (tag);
+#line 1297 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8027 "CheckerboardLayout.c"
+ }
+#line 1299 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = FALSE;
+#line 1299 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8033 "CheckerboardLayout.c"
+}
+
+
+GeeList* checkerboard_layout_get_visible_items (CheckerboardLayout* self) {
+ GeeList* result = NULL;
+ GdkRectangle _tmp0_ = {0};
+ GeeList* _tmp1_ = NULL;
+#line 1302 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), NULL);
+#line 1303 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->visible_page;
+#line 1303 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = checkerboard_layout_intersection (self, &_tmp0_);
+#line 1303 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp1_;
+#line 1303 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8051 "CheckerboardLayout.c"
+}
+
+
+GeeList* checkerboard_layout_intersection (CheckerboardLayout* self, GdkRectangle* area) {
+ GeeList* result = NULL;
+ GeeArrayList* intersects = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GtkAllocation allocation = {0};
+ GtkAllocation _tmp1_ = {0};
+ GdkRectangle bitbucket = {0};
+ CheckerboardLayoutLayoutRow** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 1306 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), NULL);
+#line 1306 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (area != NULL, NULL);
+#line 1307 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = gee_array_list_new (TYPE_CHECKERBOARD_ITEM, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1307 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ intersects = _tmp0_;
+#line 1310 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp1_);
+#line 1310 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ allocation = _tmp1_;
+#line 1312 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&bitbucket, 0, sizeof (GdkRectangle));
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->item_rows;
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2__length1 = self->priv->item_rows_length1;
+#line 8082 "CheckerboardLayout.c"
+ {
+ CheckerboardLayoutLayoutRow** row_collection = NULL;
+ gint row_collection_length1 = 0;
+ gint _row_collection_size_ = 0;
+ gint row_it = 0;
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_collection = _tmp2_;
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_collection_length1 = _tmp2__length1;
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ for (row_it = 0; row_it < _tmp2__length1; row_it = row_it + 1) {
+#line 8094 "CheckerboardLayout.c"
+ CheckerboardLayoutLayoutRow* _tmp3_ = NULL;
+ CheckerboardLayoutLayoutRow* row = NULL;
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _checkerboard_layout_layout_row_ref0 (row_collection[row_it]);
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp3_;
+#line 8101 "CheckerboardLayout.c"
+ {
+ CheckerboardLayoutLayoutRow* _tmp4_ = NULL;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkRectangle row_rect = {0};
+ CheckerboardLayoutLayoutRow* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ GtkAllocation _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ GdkRectangle _tmp23_ = {0};
+ GdkRectangle _tmp24_ = {0};
+ gboolean _tmp25_ = FALSE;
+#line 1314 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = row;
+#line 1314 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp4_ == NULL) {
+#line 1315 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (row);
+#line 1315 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ continue;
+#line 8134 "CheckerboardLayout.c"
+ }
+#line 1317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = *area;
+#line 1317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.y;
+#line 1317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = *area;
+#line 1317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp7_.height;
+#line 1317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = row;
+#line 1317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _tmp9_->y;
+#line 1317 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if ((_tmp6_ + _tmp8_) < _tmp10_) {
+#line 1319 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (row);
+#line 1319 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 8154 "CheckerboardLayout.c"
+ }
+#line 1322 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = row;
+#line 1322 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _tmp11_->y;
+#line 1322 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = row;
+#line 1322 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _tmp13_->height;
+#line 1322 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = *area;
+#line 1322 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = _tmp15_.y;
+#line 1322 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if ((_tmp12_ + _tmp14_) < _tmp16_) {
+#line 1324 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (row);
+#line 1324 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ continue;
+#line 8174 "CheckerboardLayout.c"
+ }
+#line 1328 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&row_rect, 0, sizeof (GdkRectangle));
+#line 1329 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_rect.x = 0;
+#line 1330 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = row;
+#line 1330 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = _tmp17_->y;
+#line 1330 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_rect.y = _tmp18_;
+#line 1331 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = allocation;
+#line 1331 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = _tmp19_.width;
+#line 1331 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_rect.width = _tmp20_;
+#line 1332 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = row;
+#line 1332 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _tmp21_->height;
+#line 1332 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_rect.height = _tmp22_;
+#line 1334 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = row_rect;
+#line 1334 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = gdk_rectangle_intersect (area, &_tmp23_, &_tmp24_);
+#line 1334 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ bitbucket = _tmp24_;
+#line 1334 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp25_) {
+#line 8206 "CheckerboardLayout.c"
+ CheckerboardLayoutLayoutRow* _tmp26_ = NULL;
+ CheckerboardItem** _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = row;
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = _tmp26_->items;
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27__length1 = _tmp26_->items_length1;
+#line 8216 "CheckerboardLayout.c"
+ {
+ CheckerboardItem** item_collection = NULL;
+ gint item_collection_length1 = 0;
+ gint _item_collection_size_ = 0;
+ gint item_it = 0;
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item_collection = _tmp27_;
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item_collection_length1 = _tmp27__length1;
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ for (item_it = 0; item_it < _tmp27__length1; item_it = item_it + 1) {
+#line 8228 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp28_ = NULL;
+ CheckerboardItem* item = NULL;
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = _g_object_ref0 (item_collection[item_it]);
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = _tmp28_;
+#line 8235 "CheckerboardLayout.c"
+ {
+ CheckerboardItem* _tmp29_ = NULL;
+ CheckerboardItem* _tmp30_ = NULL;
+ GdkRectangle _tmp31_ = {0};
+ GdkRectangle _tmp32_ = {0};
+ gboolean _tmp33_ = FALSE;
+#line 1337 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = item;
+#line 1337 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp29_ == NULL) {
+#line 1338 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1338 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ continue;
+#line 8250 "CheckerboardLayout.c"
+ }
+#line 1340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = item;
+#line 1340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = _tmp30_->allocation;
+#line 1340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = gdk_rectangle_intersect (area, &_tmp31_, &_tmp32_);
+#line 1340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ bitbucket = _tmp32_;
+#line 1340 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp33_) {
+#line 8262 "CheckerboardLayout.c"
+ GeeArrayList* _tmp34_ = NULL;
+ CheckerboardItem* _tmp35_ = NULL;
+#line 1341 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = intersects;
+#line 1341 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = item;
+#line 1341 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp35_);
+#line 8271 "CheckerboardLayout.c"
+ }
+#line 1336 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 8275 "CheckerboardLayout.c"
+ }
+ }
+ }
+ }
+#line 1313 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (row);
+#line 8282 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 1346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (intersects, GEE_TYPE_LIST, GeeList);
+#line 1346 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8290 "CheckerboardLayout.c"
+}
+
+
+CheckerboardItem* checkerboard_layout_get_item_relative_to (CheckerboardLayout* self, CheckerboardItem* item, CompassPoint point) {
+ CheckerboardItem* result = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint col = 0;
+ CheckerboardItem* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint row = 0;
+ CheckerboardItem* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ gint _tmp9_ = 0;
+ CompassPoint _tmp14_ = 0;
+ CheckerboardItem* new_item = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ CheckerboardItem* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ CheckerboardItem* _tmp39_ = NULL;
+ CheckerboardItem* _tmp47_ = NULL;
+ CheckerboardItem* _tmp48_ = NULL;
+ CheckerboardItem* _tmp51_ = NULL;
+#line 1349 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), NULL);
+#line 1349 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_ITEM (item), NULL);
+#line 1350 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->view;
+#line 1350 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1350 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ == 0) {
+#line 1351 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1351 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8332 "CheckerboardLayout.c"
+ }
+#line 1353 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->columns;
+#line 1353 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp2_ > 0, "columns > 0");
+#line 1354 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->rows;
+#line 1354 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp3_ > 0, "rows > 0");
+#line 1356 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = item;
+#line 1356 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = checkerboard_item_get_column (_tmp4_);
+#line 1356 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp5_;
+#line 1357 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = item;
+#line 1357 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = checkerboard_item_get_row (_tmp6_);
+#line 1357 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp7_;
+#line 1359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = col;
+#line 1359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp9_ < 0) {
+#line 1359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = TRUE;
+#line 8360 "CheckerboardLayout.c"
+ } else {
+ gint _tmp10_ = 0;
+#line 1359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = row;
+#line 1359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp10_ < 0;
+#line 8367 "CheckerboardLayout.c"
+ }
+#line 1359 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp8_) {
+#line 8371 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 1360 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = item;
+#line 1360 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = checkerboard_item_get_title (_tmp11_);
+#line 1360 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp12_;
+#line 1360 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_critical ("CheckerboardLayout.vala:1360: Attempting to locate item not placed in " \
+"layout: %s", _tmp13_);
+#line 1360 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp13_);
+#line 1362 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1362 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8389 "CheckerboardLayout.c"
+ }
+#line 1365 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = point;
+#line 1365 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ switch (_tmp14_) {
+#line 1365 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ case COMPASS_POINT_NORTH:
+#line 8397 "CheckerboardLayout.c"
+ {
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 1367 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = row;
+#line 1367 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp15_ - 1;
+#line 1367 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = row;
+#line 1367 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp16_ < 0) {
+#line 1368 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = 0;
+#line 8411 "CheckerboardLayout.c"
+ }
+#line 1369 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 8415 "CheckerboardLayout.c"
+ }
+#line 1365 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ case COMPASS_POINT_SOUTH:
+#line 8419 "CheckerboardLayout.c"
+ {
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 1372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = row;
+#line 1372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp17_ + 1;
+#line 1372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = row;
+#line 1372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = self->priv->rows;
+#line 1372 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp18_ >= _tmp19_) {
+#line 8434 "CheckerboardLayout.c"
+ gint _tmp20_ = 0;
+#line 1373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = self->priv->rows;
+#line 1373 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp20_ - 1;
+#line 8440 "CheckerboardLayout.c"
+ }
+#line 1374 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 8444 "CheckerboardLayout.c"
+ }
+#line 1365 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ case COMPASS_POINT_EAST:
+#line 8448 "CheckerboardLayout.c"
+ {
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 1377 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = col;
+#line 1377 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp21_ + 1;
+#line 1377 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = col;
+#line 1377 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = self->priv->columns;
+#line 1377 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp22_ >= _tmp23_) {
+#line 8463 "CheckerboardLayout.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 1378 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = row;
+#line 1378 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp24_ + 1;
+#line 1378 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = row;
+#line 1378 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = self->priv->rows;
+#line 1378 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp25_ >= _tmp26_) {
+#line 8477 "CheckerboardLayout.c"
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+#line 1379 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = self->priv->rows;
+#line 1379 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp27_ - 1;
+#line 1380 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = self->priv->columns;
+#line 1380 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp28_ - 1;
+#line 8488 "CheckerboardLayout.c"
+ } else {
+#line 1382 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 8492 "CheckerboardLayout.c"
+ }
+ }
+#line 1385 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 8497 "CheckerboardLayout.c"
+ }
+#line 1365 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ case COMPASS_POINT_WEST:
+#line 8501 "CheckerboardLayout.c"
+ {
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+#line 1388 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = col;
+#line 1388 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp29_ - 1;
+#line 1388 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = col;
+#line 1388 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp30_ < 0) {
+#line 8513 "CheckerboardLayout.c"
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+#line 1389 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = row;
+#line 1389 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp31_ - 1;
+#line 1389 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = row;
+#line 1389 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp32_ < 0) {
+#line 1390 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = 0;
+#line 1391 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 8528 "CheckerboardLayout.c"
+ } else {
+ gint _tmp33_ = 0;
+#line 1393 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = self->priv->columns;
+#line 1393 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp33_ - 1;
+#line 8535 "CheckerboardLayout.c"
+ }
+ }
+#line 1396 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 8540 "CheckerboardLayout.c"
+ }
+ default:
+ {
+ CompassPoint _tmp34_ = 0;
+#line 1399 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = point;
+#line 1399 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_error ("CheckerboardLayout.vala:1399: Bad compass point %d", (gint) _tmp34_);
+#line 8549 "CheckerboardLayout.c"
+ }
+ }
+#line 1402 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = col;
+#line 1402 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = row;
+#line 1402 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = checkerboard_layout_get_item_at_coordinate (self, _tmp35_, _tmp36_);
+#line 1402 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ new_item = _tmp37_;
+#line 1404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = new_item;
+#line 1404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp39_ == NULL) {
+#line 8564 "CheckerboardLayout.c"
+ CompassPoint _tmp40_ = 0;
+#line 1404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = point;
+#line 1404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = _tmp40_ == COMPASS_POINT_SOUTH;
+#line 8570 "CheckerboardLayout.c"
+ } else {
+#line 1404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = FALSE;
+#line 8574 "CheckerboardLayout.c"
+ }
+#line 1404 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp38_) {
+#line 8578 "CheckerboardLayout.c"
+ ViewCollection* _tmp41_ = NULL;
+ DataView* _tmp42_ = NULL;
+ CheckerboardItem* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ CheckerboardItem* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+#line 1406 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = self->priv->view;
+#line 1406 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = view_collection_get_last (_tmp41_);
+#line 1406 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (new_item);
+#line 1406 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ new_item = G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1407 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = new_item;
+#line 1407 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = checkerboard_item_get_row (_tmp43_);
+#line 1407 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = item;
+#line 1407 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = checkerboard_item_get_row (_tmp45_);
+#line 1407 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp44_ <= _tmp46_) {
+#line 1408 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (new_item);
+#line 1408 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ new_item = NULL;
+#line 8607 "CheckerboardLayout.c"
+ }
+ }
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = new_item;
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp48_ != NULL) {
+#line 8614 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp49_ = NULL;
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = new_item;
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = _tmp49_;
+#line 8620 "CheckerboardLayout.c"
+ } else {
+ CheckerboardItem* _tmp50_ = NULL;
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp50_ = item;
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = _tmp50_;
+#line 8627 "CheckerboardLayout.c"
+ }
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp51_ = _g_object_ref0 (_tmp47_);
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp51_;
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (new_item);
+#line 1411 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8637 "CheckerboardLayout.c"
+}
+
+
+CheckerboardItem* checkerboard_layout_get_item_at_coordinate (CheckerboardLayout* self, gint col, gint row) {
+ CheckerboardItem* result = NULL;
+ gint _tmp0_ = 0;
+ CheckerboardLayoutLayoutRow** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ CheckerboardLayoutLayoutRow* item_row = NULL;
+ CheckerboardLayoutLayoutRow** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gint _tmp3_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp4_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp5_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp8_ = NULL;
+ CheckerboardItem** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ CheckerboardLayoutLayoutRow* _tmp10_ = NULL;
+ CheckerboardItem** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gint _tmp12_ = 0;
+ CheckerboardItem* _tmp13_ = NULL;
+ CheckerboardItem* _tmp14_ = NULL;
+#line 1414 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), NULL);
+#line 1415 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = row;
+#line 1415 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->item_rows;
+#line 1415 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1__length1 = self->priv->item_rows_length1;
+#line 1415 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ >= _tmp1__length1) {
+#line 1416 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1416 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8677 "CheckerboardLayout.c"
+ }
+#line 1418 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->item_rows;
+#line 1418 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2__length1 = self->priv->item_rows_length1;
+#line 1418 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = row;
+#line 1418 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp2_[_tmp3_];
+#line 1418 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _checkerboard_layout_layout_row_ref0 (_tmp4_);
+#line 1418 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item_row = _tmp5_;
+#line 1419 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = item_row;
+#line 1419 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_ == NULL) {
+#line 1420 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1420 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (item_row);
+#line 1420 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8701 "CheckerboardLayout.c"
+ }
+#line 1422 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = col;
+#line 1422 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = item_row;
+#line 1422 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = _tmp8_->items;
+#line 1422 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9__length1 = _tmp8_->items_length1;
+#line 1422 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp7_ >= _tmp9__length1) {
+#line 1423 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1423 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (item_row);
+#line 1423 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8719 "CheckerboardLayout.c"
+ }
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = item_row;
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _tmp10_->items;
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11__length1 = _tmp10_->items_length1;
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = col;
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp11_[_tmp12_];
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _g_object_ref0 (_tmp13_);
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp14_;
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (item_row);
+#line 1425 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8739 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_set_drag_select_origin (CheckerboardLayout* self, gint x, gint y) {
+ GtkAllocation allocation = {0};
+ GtkAllocation _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GtkAllocation _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GtkAllocation _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 1428 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1429 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_clear_drag_select (self);
+#line 1432 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp0_);
+#line 1432 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ allocation = _tmp0_;
+#line 1434 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = x;
+#line 1434 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = allocation;
+#line 1434 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp2_.width;
+#line 1434 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = CLAMP (_tmp1_, 0, _tmp3_);
+#line 1434 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_origin.x = _tmp4_;
+#line 1435 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = y;
+#line 1435 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = allocation;
+#line 1435 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp6_.height;
+#line 1435 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = CLAMP (_tmp5_, 0, _tmp7_);
+#line 1435 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_origin.y = _tmp8_;
+#line 8782 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_set_drag_select_endpoint (CheckerboardLayout* self, gint x, gint y) {
+ GtkAllocation allocation = {0};
+ GtkAllocation _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GtkAllocation _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GtkAllocation _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GdkRectangle old_selection_band = {0};
+ GdkRectangle _tmp9_ = {0};
+ GdkPoint _tmp10_ = {0};
+ GdkPoint _tmp11_ = {0};
+ Box _tmp12_ = {0};
+ GdkRectangle _tmp13_ = {0};
+ GdkWindow* _tmp14_ = NULL;
+#line 1438 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1440 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp0_);
+#line 1440 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ allocation = _tmp0_;
+#line 1442 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = x;
+#line 1442 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = allocation;
+#line 1442 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp2_.width;
+#line 1442 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = CLAMP (_tmp1_, 0, _tmp3_);
+#line 1442 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_endpoint.x = _tmp4_;
+#line 1443 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = y;
+#line 1443 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = allocation;
+#line 1443 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp6_.height;
+#line 1443 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = CLAMP (_tmp5_, 0, _tmp7_);
+#line 1443 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_endpoint.y = _tmp8_;
+#line 1447 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->selection_band;
+#line 1447 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ old_selection_band = _tmp9_;
+#line 1448 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = self->priv->drag_origin;
+#line 1448 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->drag_endpoint;
+#line 1448 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ box_from_points (&_tmp10_, &_tmp11_, &_tmp12_);
+#line 1448 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ box_get_rectangle (&_tmp12_, &_tmp13_);
+#line 1448 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->selection_band = _tmp13_;
+#line 1451 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1451 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp14_ != NULL) {
+#line 8848 "CheckerboardLayout.c"
+ GdkRectangle _union_ = {0};
+ GdkRectangle _tmp15_ = {0};
+ GdkRectangle _tmp16_ = {0};
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ GdkRectangle _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ GdkRectangle _tmp23_ = {0};
+ gint _tmp24_ = 0;
+#line 1453 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = old_selection_band;
+#line 1453 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_rectangle_union (&self->priv->selection_band, &_tmp15_, &_tmp16_);
+#line 1453 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _union_ = _tmp16_;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = _union_;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = _tmp17_.x;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = _union_;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = _tmp19_.y;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = _union_;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _tmp21_.width;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = _union_;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = _tmp23_.height;
+#line 1455 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_queue_draw_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp18_, _tmp20_, _tmp22_, _tmp24_);
+#line 8884 "CheckerboardLayout.c"
+ }
+}
+
+
+GeeList* checkerboard_layout_items_in_selection_band (CheckerboardLayout* self) {
+ GeeList* result = NULL;
+ GdkRectangle _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ GdkRectangle _tmp3_ = {0};
+ GeeList* _tmp4_ = NULL;
+#line 1459 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), NULL);
+#line 1460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->selection_band;
+#line 1460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dimensions_for_rectangle (&_tmp0_, &_tmp1_);
+#line 1460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = dimensions_has_area (&_tmp1_);
+#line 1460 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp2_) {
+#line 1461 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = NULL;
+#line 1461 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8910 "CheckerboardLayout.c"
+ }
+#line 1463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->selection_band;
+#line 1463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = checkerboard_layout_intersection (self, &_tmp3_);
+#line 1463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp4_;
+#line 1463 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8920 "CheckerboardLayout.c"
+}
+
+
+gboolean checkerboard_layout_is_drag_select_active (CheckerboardLayout* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GdkPoint _tmp1_ = {0};
+ gint _tmp2_ = 0;
+#line 1466 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_LAYOUT (self), FALSE);
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->drag_origin;
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_.x;
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_ >= 0) {
+#line 8937 "CheckerboardLayout.c"
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->drag_origin;
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.y;
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_ >= 0;
+#line 8946 "CheckerboardLayout.c"
+ } else {
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = FALSE;
+#line 8950 "CheckerboardLayout.c"
+ }
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp0_;
+#line 1467 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 8956 "CheckerboardLayout.c"
+}
+
+
+void checkerboard_layout_clear_drag_select (CheckerboardLayout* self) {
+#line 1470 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1471 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&self->priv->selection_band, 0, sizeof (GdkRectangle));
+#line 1472 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_origin.x = -1;
+#line 1473 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_origin.y = -1;
+#line 1474 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_endpoint.x = -1;
+#line 1475 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->drag_endpoint.y = -1;
+#line 1478 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 8975 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_viewport_resized (CheckerboardLayout* self) {
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1481 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1483 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_update_visible_page (self);
+#line 1486 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->visible_page;
+#line 1486 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_.width;
+#line 1486 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->last_width;
+#line 1486 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp1_ != _tmp2_) {
+#line 8995 "CheckerboardLayout.c"
+ gint old_width = 0;
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 1487 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->last_width;
+#line 1487 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ old_width = _tmp3_;
+#line 1488 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->visible_page;
+#line 1488 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _tmp4_.width;
+#line 1488 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->last_width = _tmp5_;
+#line 1490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = old_width;
+#line 1490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = self->priv->visible_page;
+#line 1490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp7_.width;
+#line 1490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = g_strdup_printf ("viewport_resized (%d -> %d)", _tmp6_, _tmp8_);
+#line 1490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _tmp9_;
+#line 1490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, _tmp10_);
+#line 1490 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp10_);
+#line 9029 "CheckerboardLayout.c"
+ } else {
+ gint _tmp11_ = 0;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 1493 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->last_width;
+#line 1493 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = g_strdup_printf ("viewport_resized (same width=%d)", _tmp11_);
+#line 1493 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp12_;
+#line 1493 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_exposure (self, _tmp13_);
+#line 1493 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp13_);
+#line 9044 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_layout_expose_items (CheckerboardLayout* self, const gchar* caller) {
+ GeeHashSet* new_exposed_items = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* items = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeHashSet* _tmp27_ = NULL;
+ GeeHashSet* _tmp28_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+#line 1497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (caller != NULL);
+#line 1500 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_CHECKERBOARD_ITEM, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1500 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ new_exposed_items = _tmp0_;
+#line 1502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->view;
+#line 1502 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1504 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = checkerboard_layout_get_visible_items (self);
+#line 1504 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ items = _tmp2_;
+#line 9074 "CheckerboardLayout.c"
+ {
+ GeeList* _item_list = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _item_size = 0;
+ GeeList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _item_index = 0;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = items;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_list = _tmp4_;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _item_list;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _tmp6_;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_size = _tmp7_;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_index = -1;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 9102 "CheckerboardLayout.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ CheckerboardItem* item = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gpointer _tmp13_ = NULL;
+ GeeHashSet* _tmp14_ = NULL;
+ CheckerboardItem* _tmp15_ = NULL;
+ GeeHashSet* _tmp16_ = NULL;
+ CheckerboardItem* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _item_index;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_index = _tmp8_ + 1;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = _item_index;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = _item_size;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp9_ < _tmp10_)) {
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 9127 "CheckerboardLayout.c"
+ }
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _item_list;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = _item_index;
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = gee_list_get (_tmp11_, _tmp12_);
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = (CheckerboardItem*) _tmp13_;
+#line 1506 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = new_exposed_items;
+#line 1506 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = item;
+#line 1506 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 1509 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = self->priv->exposed_items;
+#line 1509 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = item;
+#line 1509 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp17_);
+#line 1509 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp18_) {
+#line 9151 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp19_ = NULL;
+#line 1510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = item;
+#line 1510 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_exposed (_tmp19_);
+#line 9157 "CheckerboardLayout.c"
+ }
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 9161 "CheckerboardLayout.c"
+ }
+#line 1505 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_item_list);
+#line 9165 "CheckerboardLayout.c"
+ }
+ {
+ GeeIterator* _item_it = NULL;
+ GeeHashSet* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = self->priv->exposed_items;
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_it = _tmp21_;
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 9179 "CheckerboardLayout.c"
+ GeeIterator* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ CheckerboardItem* item = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ CheckerboardItem* _tmp26_ = NULL;
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _item_it;
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = gee_iterator_next (_tmp22_);
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp23_) {
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 9194 "CheckerboardLayout.c"
+ }
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = _item_it;
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = gee_iterator_get (_tmp24_);
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = (CheckerboardItem*) _tmp25_;
+#line 1515 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = item;
+#line 1515 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_unexposed (_tmp26_);
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 9208 "CheckerboardLayout.c"
+ }
+#line 1514 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_item_it);
+#line 9212 "CheckerboardLayout.c"
+ }
+#line 1518 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = new_exposed_items;
+#line 1518 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 1518 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->exposed_items);
+#line 1518 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposed_items = _tmp28_;
+#line 1519 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposure_dirty = FALSE;
+#line 1524 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = self->priv->view;
+#line 1524 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (items);
+#line 1497 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (new_exposed_items);
+#line 9232 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_unexpose_items (CheckerboardLayout* self, const gchar* caller) {
+ ViewCollection* _tmp0_ = NULL;
+ GeeHashSet* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+#line 1530 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1530 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (caller != NULL);
+#line 1531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->view;
+#line 1531 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 9248 "CheckerboardLayout.c"
+ {
+ GeeIterator* _item_it = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->exposed_items;
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_it = _tmp2_;
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 9261 "CheckerboardLayout.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ CheckerboardItem* item = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _item_it;
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp4_) {
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 9276 "CheckerboardLayout.c"
+ }
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _item_it;
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = (CheckerboardItem*) _tmp6_;
+#line 1534 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = item;
+#line 1534 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_unexposed (_tmp7_);
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 9290 "CheckerboardLayout.c"
+ }
+#line 1533 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_item_it);
+#line 9294 "CheckerboardLayout.c"
+ }
+#line 1536 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = self->priv->exposed_items;
+#line 1536 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 1537 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposure_dirty = FALSE;
+#line 1542 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->view;
+#line 1542 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection));
+#line 9306 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_reflow (CheckerboardLayout* self, const gchar* caller) {
+ const gchar* _tmp0_ = NULL;
+ GtkAllocation allocation = {0};
+ GtkAllocation _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint visible_width = 0;
+ gint _tmp9_ = 0;
+ gint total_items = 0;
+ ViewCollection* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gboolean _tmp15_ = FALSE;
+ CheckerboardItem* _tmp16_ = NULL;
+ gint max_cols = 0;
+ gint _tmp19_ = 0;
+ gint _tmp64_ = 0;
+ gint max_rows = 0;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gint row = 0;
+ gint tallest = 0;
+ gint widest = 0;
+ gint row_alignment_point = 0;
+ gint total_width = 0;
+ gint col = 0;
+ gint* column_widths = NULL;
+ gint _tmp67_ = 0;
+ gint* _tmp68_ = NULL;
+ gint column_widths_length1 = 0;
+ gint _column_widths_size_ = 0;
+ gint* row_heights = NULL;
+ gint _tmp69_ = 0;
+ gint* _tmp70_ = NULL;
+ gint row_heights_length1 = 0;
+ gint _row_heights_size_ = 0;
+ gint* alignment_points = NULL;
+ gint _tmp71_ = 0;
+ gint* _tmp72_ = NULL;
+ gint alignment_points_length1 = 0;
+ gint _alignment_points_size_ = 0;
+ gint gutter = 0;
+ gint _tmp183_ = 0;
+ CheckerboardLayoutLayoutRow** _tmp184_ = NULL;
+ gint x = 0;
+ gint _tmp185_ = 0;
+ gint y = 0;
+ CheckerboardLayoutLayoutRow* current_row = NULL;
+ CheckerboardLayoutLayoutRow* _tmp255_ = NULL;
+ gint _tmp261_ = 0;
+ gint _tmp262_ = 0;
+ gint _tmp263_ = 0;
+ gint _tmp264_ = 0;
+ gint total_height = 0;
+ gint _tmp265_ = 0;
+ gint* _tmp266_ = NULL;
+ gint _tmp266__length1 = 0;
+ gint _tmp267_ = 0;
+ gint _tmp268_ = 0;
+ gboolean _tmp269_ = FALSE;
+ gint _tmp270_ = 0;
+ GtkAllocation _tmp271_ = {0};
+ gint _tmp272_ = 0;
+#line 1548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (caller != NULL);
+#line 1549 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->reflow_needed = FALSE;
+#line 1552 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->message;
+#line 1552 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_ != NULL) {
+#line 1553 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 9386 "CheckerboardLayout.c"
+ }
+#line 1556 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp1_);
+#line 1556 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ allocation = _tmp1_;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->visible_page;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.width;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp4_ > 0) {
+#line 9398 "CheckerboardLayout.c"
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = self->priv->visible_page;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.width;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp6_;
+#line 9407 "CheckerboardLayout.c"
+ } else {
+ GtkAllocation _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = allocation;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp7_.width;
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp8_;
+#line 9417 "CheckerboardLayout.c"
+ }
+#line 1558 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ visible_width = _tmp2_;
+#line 1566 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = visible_width;
+#line 1566 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp9_ <= 1) {
+#line 1567 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 9427 "CheckerboardLayout.c"
+ }
+#line 1569 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = self->priv->view;
+#line 1569 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1569 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ total_items = _tmp11_;
+#line 1572 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = total_items;
+#line 1572 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp12_ == 0) {
+#line 9439 "CheckerboardLayout.c"
+ gint _tmp13_ = 0;
+ CheckerboardLayoutLayoutRow** _tmp14_ = NULL;
+#line 1573 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = visible_width;
+#line 1573 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp13_, 0);
+#line 1574 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = g_new0 (CheckerboardLayoutLayoutRow*, 0 + 1);
+#line 1574 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = (_vala_array_free (self->priv->item_rows, self->priv->item_rows_length1, (GDestroyNotify) checkerboard_layout_layout_row_unref), NULL);
+#line 1574 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = _tmp14_;
+#line 1574 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows_length1 = 0;
+#line 1574 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->_item_rows_size_ = self->priv->item_rows_length1;
+#line 1576 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 9458 "CheckerboardLayout.c"
+ }
+#line 1584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = self->priv->anchor;
+#line 1584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp16_ == NULL) {
+#line 1584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = TRUE;
+#line 9466 "CheckerboardLayout.c"
+ } else {
+ CheckerboardItem* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 1584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = self->priv->anchor;
+#line 1584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = data_view_is_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_VIEW, DataView));
+#line 1584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = !_tmp18_;
+#line 9476 "CheckerboardLayout.c"
+ }
+#line 1584 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp15_) {
+#line 1585 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_update_anchor (self);
+#line 9482 "CheckerboardLayout.c"
+ }
+#line 1588 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = (_vala_array_free (self->priv->item_rows, self->priv->item_rows_length1, (GDestroyNotify) checkerboard_layout_layout_row_unref), NULL);
+#line 1588 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = NULL;
+#line 1588 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows_length1 = 0;
+#line 1588 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->_item_rows_size_ = self->priv->item_rows_length1;
+#line 1593 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = 0;
+#line 1594 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = self->priv->scale;
+#line 1594 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp19_ > 0) {
+#line 9498 "CheckerboardLayout.c"
+ gint remaining_width = 0;
+ gint _tmp20_ = 0;
+ gint max_item_width = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+#line 1596 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = visible_width;
+#line 1596 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ remaining_width = _tmp20_ - (CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING * 2);
+#line 1597 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = self->priv->scale;
+#line 1597 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = checkerboard_item_get_max_width (_tmp21_);
+#line 1597 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_item_width = _tmp22_;
+#line 1598 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = remaining_width;
+#line 1598 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = max_item_width;
+#line 1598 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = _tmp23_ / _tmp24_;
+#line 1599 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = max_cols;
+#line 1599 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp25_ <= 0) {
+#line 1600 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = 1;
+#line 9531 "CheckerboardLayout.c"
+ }
+#line 1603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 9535 "CheckerboardLayout.c"
+ gboolean _tmp26_ = FALSE;
+ gint _tmp27_ = 0;
+ gint _tmp32_ = 0;
+#line 1603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = max_cols;
+#line 1603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp27_ > 1) {
+#line 9543 "CheckerboardLayout.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+#line 1604 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = max_cols;
+#line 1604 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = max_item_width;
+#line 1604 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = max_cols;
+#line 1604 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = remaining_width;
+#line 1604 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = ((_tmp28_ * _tmp29_) + ((_tmp30_ - 1) * CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING)) > _tmp31_;
+#line 9558 "CheckerboardLayout.c"
+ } else {
+#line 1603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = FALSE;
+#line 9562 "CheckerboardLayout.c"
+ }
+#line 1603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp26_) {
+#line 1603 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 9568 "CheckerboardLayout.c"
+ }
+#line 1609 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = max_cols;
+#line 1609 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = _tmp32_ - 1;
+#line 9574 "CheckerboardLayout.c"
+ }
+#line 1613 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = total_items;
+#line 1613 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = max_cols;
+#line 1613 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp33_ < _tmp34_) {
+#line 9582 "CheckerboardLayout.c"
+ gint _tmp35_ = 0;
+#line 1614 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = total_items;
+#line 1614 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = _tmp35_;
+#line 9588 "CheckerboardLayout.c"
+ }
+ } else {
+ gint x = 0;
+ gint col = 0;
+ gint row_width = 0;
+ gint widest_row = 0;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+#line 1621 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING;
+#line 1622 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1623 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_width = 0;
+#line 1624 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ widest_row = 0;
+#line 9605 "CheckerboardLayout.c"
+ {
+ gint ctr = 0;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = 0;
+#line 9610 "CheckerboardLayout.c"
+ {
+ gboolean _tmp36_ = FALSE;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = TRUE;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 9617 "CheckerboardLayout.c"
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ CheckerboardItem* item = NULL;
+ ViewCollection* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ DataObject* _tmp42_ = NULL;
+ Dimensions req = {0};
+ CheckerboardItem* _tmp43_ = NULL;
+ Dimensions _tmp44_ = {0};
+ gboolean _tmp45_ = FALSE;
+ gint _tmp46_ = 0;
+ Dimensions _tmp47_ = {0};
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gint _tmp54_ = 0;
+ Dimensions _tmp55_ = {0};
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ Dimensions _tmp58_ = {0};
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp36_) {
+#line 9641 "CheckerboardLayout.c"
+ gint _tmp37_ = 0;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = ctr;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = _tmp37_ + 1;
+#line 9647 "CheckerboardLayout.c"
+ }
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = FALSE;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = ctr;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = total_items;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp38_ < _tmp39_)) {
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 9659 "CheckerboardLayout.c"
+ }
+#line 1627 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = self->priv->view;
+#line 1627 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = ctr;
+#line 1627 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_DATA_COLLECTION, DataCollection), _tmp41_);
+#line 1627 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1628 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = item;
+#line 1628 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = _tmp43_->requisition;
+#line 1628 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ req = _tmp44_;
+#line 1631 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = dimensions_has_area (&req);
+#line 1631 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp45_, "req.has_area()");
+#line 1634 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = x;
+#line 1634 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = req;
+#line 1634 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = _tmp47_.width;
+#line 1634 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = visible_width;
+#line 1634 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (((_tmp46_ + _tmp48_) + CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING) > _tmp49_) {
+#line 9689 "CheckerboardLayout.c"
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+#line 1635 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp50_ = row_width;
+#line 1635 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp51_ = widest_row;
+#line 1635 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp50_ > _tmp51_) {
+#line 9698 "CheckerboardLayout.c"
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+#line 1636 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp52_ = row_width;
+#line 1636 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ widest_row = _tmp52_;
+#line 1637 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp53_ = col;
+#line 1637 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = _tmp53_;
+#line 9709 "CheckerboardLayout.c"
+ }
+#line 1640 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1641 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING;
+#line 1642 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_width = 0;
+#line 9717 "CheckerboardLayout.c"
+ }
+#line 1645 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp54_ = x;
+#line 1645 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp55_ = req;
+#line 1645 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp56_ = _tmp55_.width;
+#line 1645 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = _tmp54_ + (_tmp56_ + CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING);
+#line 1646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp57_ = row_width;
+#line 1646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp58_ = req;
+#line 1646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp59_ = _tmp58_.width;
+#line 1646 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_width = _tmp57_ + _tmp59_;
+#line 1648 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp60_ = col;
+#line 1648 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp60_ + 1;
+#line 1626 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 9741 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 1652 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp61_ = row_width;
+#line 1652 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp62_ = widest_row;
+#line 1652 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp61_ > _tmp62_) {
+#line 9751 "CheckerboardLayout.c"
+ gint _tmp63_ = 0;
+#line 1653 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp63_ = col;
+#line 1653 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = _tmp63_;
+#line 9757 "CheckerboardLayout.c"
+ }
+ }
+#line 1661 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp64_ = max_cols;
+#line 1661 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp64_ > 0, "max_cols > 0");
+#line 1662 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp65_ = total_items;
+#line 1662 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp66_ = max_cols;
+#line 1662 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_rows = (_tmp65_ / _tmp66_) + 1;
+#line 1666 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = 0;
+#line 1667 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ tallest = 0;
+#line 1668 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ widest = 0;
+#line 1669 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_alignment_point = 0;
+#line 1670 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ total_width = 0;
+#line 1671 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp67_ = max_cols;
+#line 1672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp68_ = g_new0 (gint, _tmp67_);
+#line 1672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ column_widths = _tmp68_;
+#line 1672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ column_widths_length1 = _tmp67_;
+#line 1672 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _column_widths_size_ = column_widths_length1;
+#line 1673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp69_ = max_rows;
+#line 1673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp70_ = g_new0 (gint, _tmp69_);
+#line 1673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_heights = _tmp70_;
+#line 1673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_heights_length1 = _tmp69_;
+#line 1673 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _row_heights_size_ = row_heights_length1;
+#line 1674 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp71_ = max_rows;
+#line 1674 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp72_ = g_new0 (gint, _tmp71_);
+#line 1674 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ alignment_points = _tmp72_;
+#line 1674 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ alignment_points_length1 = _tmp71_;
+#line 1674 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _alignment_points_size_ = alignment_points_length1;
+#line 1675 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gutter = 0;
+#line 9814 "CheckerboardLayout.c"
+ {
+ gboolean _tmp73_ = FALSE;
+#line 1677 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp73_ = TRUE;
+#line 1677 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 9821 "CheckerboardLayout.c"
+ gint _tmp129_ = 0;
+ gint _tmp138_ = 0;
+ gint _tmp139_ = 0;
+ gint _tmp140_ = 0;
+ gint _tmp141_ = 0;
+ gint _tmp142_ = 0;
+#line 1677 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp73_) {
+#line 9830 "CheckerboardLayout.c"
+ }
+#line 1677 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp73_ = FALSE;
+#line 9834 "CheckerboardLayout.c"
+ {
+ gint ctr = 0;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = 0;
+#line 9839 "CheckerboardLayout.c"
+ {
+ gboolean _tmp74_ = FALSE;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp74_ = TRUE;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 9846 "CheckerboardLayout.c"
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+ CheckerboardItem* item = NULL;
+ ViewCollection* _tmp78_ = NULL;
+ gint _tmp79_ = 0;
+ DataObject* _tmp80_ = NULL;
+ Dimensions req = {0};
+ CheckerboardItem* _tmp81_ = NULL;
+ Dimensions _tmp82_ = {0};
+ gint alignment_point = 0;
+ CheckerboardItem* _tmp83_ = NULL;
+ gint _tmp84_ = 0;
+ gint _tmp85_ = 0;
+ Dimensions _tmp86_ = {0};
+ gint _tmp87_ = 0;
+ Dimensions _tmp88_ = {0};
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ Dimensions _tmp93_ = {0};
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ gint _tmp98_ = 0;
+ gint _tmp99_ = 0;
+ gint* _tmp101_ = NULL;
+ gint _tmp101__length1 = 0;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ Dimensions _tmp104_ = {0};
+ gint _tmp105_ = 0;
+ gint _tmp118_ = 0;
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp74_) {
+#line 9881 "CheckerboardLayout.c"
+ gint _tmp75_ = 0;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp75_ = ctr;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = _tmp75_ + 1;
+#line 9887 "CheckerboardLayout.c"
+ }
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp74_ = FALSE;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp76_ = ctr;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp77_ = total_items;
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp76_ < _tmp77_)) {
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 9899 "CheckerboardLayout.c"
+ }
+#line 1679 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp78_ = self->priv->view;
+#line 1679 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp79_ = ctr;
+#line 1679 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp80_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, TYPE_DATA_COLLECTION, DataCollection), _tmp79_);
+#line 1679 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1680 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp81_ = item;
+#line 1680 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp82_ = _tmp81_->requisition;
+#line 1680 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ req = _tmp82_;
+#line 1681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp83_ = item;
+#line 1681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp84_ = checkerboard_item_get_alignment_point (_tmp83_);
+#line 1681 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ alignment_point = _tmp84_;
+#line 1684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp85_ = alignment_point;
+#line 1684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp86_ = req;
+#line 1684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp87_ = _tmp86_.height;
+#line 1684 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp85_ < _tmp87_, "alignment_point < req.height");
+#line 1686 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp88_ = req;
+#line 1686 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp89_ = _tmp88_.height;
+#line 1686 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp90_ = tallest;
+#line 1686 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp89_ > _tmp90_) {
+#line 9937 "CheckerboardLayout.c"
+ Dimensions _tmp91_ = {0};
+ gint _tmp92_ = 0;
+#line 1687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp91_ = req;
+#line 1687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp92_ = _tmp91_.height;
+#line 1687 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ tallest = _tmp92_;
+#line 9946 "CheckerboardLayout.c"
+ }
+#line 1689 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp93_ = req;
+#line 1689 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp94_ = _tmp93_.width;
+#line 1689 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp95_ = widest;
+#line 1689 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp94_ > _tmp95_) {
+#line 9956 "CheckerboardLayout.c"
+ Dimensions _tmp96_ = {0};
+ gint _tmp97_ = 0;
+#line 1690 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp96_ = req;
+#line 1690 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp97_ = _tmp96_.width;
+#line 1690 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ widest = _tmp97_;
+#line 9965 "CheckerboardLayout.c"
+ }
+#line 1692 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp98_ = alignment_point;
+#line 1692 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp99_ = row_alignment_point;
+#line 1692 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp98_ > _tmp99_) {
+#line 9973 "CheckerboardLayout.c"
+ gint _tmp100_ = 0;
+#line 1693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp100_ = alignment_point;
+#line 1693 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_alignment_point = _tmp100_;
+#line 9979 "CheckerboardLayout.c"
+ }
+#line 1697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp101_ = column_widths;
+#line 1697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp101__length1 = column_widths_length1;
+#line 1697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp102_ = col;
+#line 1697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp103_ = _tmp101_[_tmp102_];
+#line 1697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp104_ = req;
+#line 1697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp105_ = _tmp104_.width;
+#line 1697 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp103_ < _tmp105_) {
+#line 9995 "CheckerboardLayout.c"
+ gint _tmp106_ = 0;
+ gint* _tmp107_ = NULL;
+ gint _tmp107__length1 = 0;
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ gint* _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ gint _tmp111_ = 0;
+ Dimensions _tmp112_ = {0};
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ gint _tmp115_ = 0;
+ Dimensions _tmp116_ = {0};
+ gint _tmp117_ = 0;
+#line 1698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp106_ = total_width;
+#line 1698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp107_ = column_widths;
+#line 1698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp107__length1 = column_widths_length1;
+#line 1698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp108_ = col;
+#line 1698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp109_ = _tmp107_[_tmp108_];
+#line 1698 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ total_width = _tmp106_ - _tmp109_;
+#line 1699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp110_ = column_widths;
+#line 1699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp110__length1 = column_widths_length1;
+#line 1699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp111_ = col;
+#line 1699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp112_ = req;
+#line 1699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp113_ = _tmp112_.width;
+#line 1699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp110_[_tmp111_] = _tmp113_;
+#line 1699 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp114_ = _tmp110_[_tmp111_];
+#line 1700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp115_ = total_width;
+#line 1700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp116_ = req;
+#line 1700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp117_ = _tmp116_.width;
+#line 1700 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ total_width = _tmp115_ + _tmp117_;
+#line 10044 "CheckerboardLayout.c"
+ }
+#line 1703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp118_ = col;
+#line 1703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp118_ + 1;
+#line 1703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp119_ = col;
+#line 1703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp120_ = max_cols;
+#line 1703 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp119_ >= _tmp120_) {
+#line 10056 "CheckerboardLayout.c"
+ gint* _tmp121_ = NULL;
+ gint _tmp121__length1 = 0;
+ gint _tmp122_ = 0;
+ gint _tmp123_ = 0;
+ gint _tmp124_ = 0;
+ gint* _tmp125_ = NULL;
+ gint _tmp125__length1 = 0;
+ gint _tmp126_ = 0;
+ gint _tmp127_ = 0;
+ gint _tmp128_ = 0;
+#line 1704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp121_ = alignment_points;
+#line 1704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp121__length1 = alignment_points_length1;
+#line 1704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp122_ = row;
+#line 1704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp123_ = row_alignment_point;
+#line 1704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp121_[_tmp122_] = _tmp123_;
+#line 1704 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp124_ = _tmp121_[_tmp122_];
+#line 1705 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp125_ = row_heights;
+#line 1705 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp125__length1 = row_heights_length1;
+#line 1705 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp126_ = row;
+#line 1705 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp126_ + 1;
+#line 1705 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp127_ = tallest;
+#line 1705 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp125_[_tmp126_] = _tmp127_;
+#line 1705 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp128_ = _tmp125_[_tmp126_];
+#line 1707 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1708 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_alignment_point = 0;
+#line 1709 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ tallest = 0;
+#line 10099 "CheckerboardLayout.c"
+ }
+#line 1678 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 10103 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 1714 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp129_ = col;
+#line 1714 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp129_ != 0) {
+#line 10111 "CheckerboardLayout.c"
+ gint* _tmp130_ = NULL;
+ gint _tmp130__length1 = 0;
+ gint _tmp131_ = 0;
+ gint _tmp132_ = 0;
+ gint _tmp133_ = 0;
+ gint* _tmp134_ = NULL;
+ gint _tmp134__length1 = 0;
+ gint _tmp135_ = 0;
+ gint _tmp136_ = 0;
+ gint _tmp137_ = 0;
+#line 1715 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp130_ = alignment_points;
+#line 1715 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp130__length1 = alignment_points_length1;
+#line 1715 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp131_ = row;
+#line 1715 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp132_ = row_alignment_point;
+#line 1715 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp130_[_tmp131_] = _tmp132_;
+#line 1715 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp133_ = _tmp130_[_tmp131_];
+#line 1716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp134_ = row_heights;
+#line 1716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp134__length1 = row_heights_length1;
+#line 1716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp135_ = row;
+#line 1716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp136_ = tallest;
+#line 1716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp134_[_tmp135_] = _tmp136_;
+#line 1716 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp137_ = _tmp134_[_tmp135_];
+#line 10146 "CheckerboardLayout.c"
+ }
+#line 1721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp138_ = visible_width;
+#line 1721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp139_ = total_width;
+#line 1721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp140_ = max_cols;
+#line 1721 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gutter = (_tmp138_ - _tmp139_) / (_tmp140_ + 1);
+#line 1724 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp141_ = max_cols;
+#line 1724 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp141_ == 1) {
+#line 1725 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 10162 "CheckerboardLayout.c"
+ }
+#line 1730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp142_ = gutter;
+#line 1730 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp142_ < CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING) {
+#line 10168 "CheckerboardLayout.c"
+ gint _tmp143_ = 0;
+ gint _tmp144_ = 0;
+ gint _tmp145_ = 0;
+ gint _tmp146_ = 0;
+ gint* _tmp147_ = NULL;
+ gint _tmp148_ = 0;
+ gint* _tmp149_ = NULL;
+ gint _tmp150_ = 0;
+ gint* _tmp151_ = NULL;
+#line 1731 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp143_ = max_cols;
+#line 1731 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_cols = _tmp143_ - 1;
+#line 1732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp144_ = total_items;
+#line 1732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp145_ = max_cols;
+#line 1732 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ max_rows = (_tmp144_ / _tmp145_) + 1;
+#line 1739 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1740 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = 0;
+#line 1741 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ tallest = 0;
+#line 1742 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ widest = 0;
+#line 1743 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ total_width = 0;
+#line 1744 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_alignment_point = 0;
+#line 1745 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp146_ = max_cols;
+#line 1745 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp147_ = g_new0 (gint, _tmp146_);
+#line 1745 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ column_widths = (g_free (column_widths), NULL);
+#line 1745 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ column_widths = _tmp147_;
+#line 1745 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ column_widths_length1 = _tmp146_;
+#line 1745 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _column_widths_size_ = column_widths_length1;
+#line 1746 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp148_ = max_rows;
+#line 1746 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp149_ = g_new0 (gint, _tmp148_);
+#line 1746 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_heights = (g_free (row_heights), NULL);
+#line 1746 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_heights = _tmp149_;
+#line 1746 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_heights_length1 = _tmp148_;
+#line 1746 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _row_heights_size_ = row_heights_length1;
+#line 1747 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp150_ = max_rows;
+#line 1747 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp151_ = g_new0 (gint, _tmp150_);
+#line 1747 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ alignment_points = (g_free (alignment_points), NULL);
+#line 1747 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ alignment_points = _tmp151_;
+#line 1747 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ alignment_points_length1 = _tmp150_;
+#line 1747 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _alignment_points_size_ = alignment_points_length1;
+#line 10236 "CheckerboardLayout.c"
+ } else {
+#line 1749 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 10240 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 1761 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1762 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = 0;
+#line 10248 "CheckerboardLayout.c"
+ {
+ gint ctr = 0;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = 0;
+#line 10253 "CheckerboardLayout.c"
+ {
+ gboolean _tmp152_ = FALSE;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp152_ = TRUE;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 10260 "CheckerboardLayout.c"
+ gint _tmp154_ = 0;
+ gint _tmp155_ = 0;
+ CheckerboardItem* item = NULL;
+ ViewCollection* _tmp156_ = NULL;
+ gint _tmp157_ = 0;
+ DataObject* _tmp158_ = NULL;
+ Dimensions req = {0};
+ CheckerboardItem* _tmp159_ = NULL;
+ Dimensions _tmp160_ = {0};
+ gint true_height = 0;
+ Dimensions _tmp161_ = {0};
+ gint _tmp162_ = 0;
+ gint* _tmp163_ = NULL;
+ gint _tmp163__length1 = 0;
+ gint _tmp164_ = 0;
+ gint _tmp165_ = 0;
+ CheckerboardItem* _tmp166_ = NULL;
+ gint _tmp167_ = 0;
+ gint _tmp168_ = 0;
+ Dimensions _tmp169_ = {0};
+ gint _tmp170_ = 0;
+ gint _tmp171_ = 0;
+ gint* _tmp172_ = NULL;
+ gint _tmp172__length1 = 0;
+ gint _tmp173_ = 0;
+ gint _tmp174_ = 0;
+ gint _tmp179_ = 0;
+ gint _tmp180_ = 0;
+ gint _tmp181_ = 0;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp152_) {
+#line 10292 "CheckerboardLayout.c"
+ gint _tmp153_ = 0;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp153_ = ctr;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = _tmp153_ + 1;
+#line 10298 "CheckerboardLayout.c"
+ }
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp152_ = FALSE;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp154_ = ctr;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp155_ = total_items;
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp154_ < _tmp155_)) {
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 10310 "CheckerboardLayout.c"
+ }
+#line 1765 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp156_ = self->priv->view;
+#line 1765 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp157_ = ctr;
+#line 1765 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp158_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp156_, TYPE_DATA_COLLECTION, DataCollection), _tmp157_);
+#line 1765 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = G_TYPE_CHECK_INSTANCE_CAST (_tmp158_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1766 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp159_ = item;
+#line 1766 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp160_ = _tmp159_->requisition;
+#line 1766 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ req = _tmp160_;
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp161_ = req;
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp162_ = _tmp161_.height;
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp163_ = alignment_points;
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp163__length1 = alignment_points_length1;
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp164_ = row;
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp165_ = _tmp163_[_tmp164_];
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp166_ = item;
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp167_ = checkerboard_item_get_alignment_point (_tmp166_);
+#line 1771 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ true_height = _tmp162_ + (_tmp165_ - _tmp167_);
+#line 1772 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp168_ = true_height;
+#line 1772 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp169_ = req;
+#line 1772 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp170_ = _tmp169_.height;
+#line 1772 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp168_ >= _tmp170_, "true_height >= req.height");
+#line 1775 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp171_ = true_height;
+#line 1775 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp172_ = row_heights;
+#line 1775 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp172__length1 = row_heights_length1;
+#line 1775 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp173_ = row;
+#line 1775 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp174_ = _tmp172_[_tmp173_];
+#line 1775 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp171_ > _tmp174_) {
+#line 10364 "CheckerboardLayout.c"
+ gint* _tmp175_ = NULL;
+ gint _tmp175__length1 = 0;
+ gint _tmp176_ = 0;
+ gint _tmp177_ = 0;
+ gint _tmp178_ = 0;
+#line 1780 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp175_ = row_heights;
+#line 1780 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp175__length1 = row_heights_length1;
+#line 1780 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp176_ = row;
+#line 1780 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp177_ = true_height;
+#line 1780 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp175_[_tmp176_] = _tmp177_;
+#line 1780 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp178_ = _tmp175_[_tmp176_];
+#line 10382 "CheckerboardLayout.c"
+ }
+#line 1784 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp179_ = col;
+#line 1784 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp179_ + 1;
+#line 1784 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp180_ = col;
+#line 1784 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp181_ = max_cols;
+#line 1784 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp180_ >= _tmp181_) {
+#line 10394 "CheckerboardLayout.c"
+ gint _tmp182_ = 0;
+#line 1785 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1786 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp182_ = row;
+#line 1786 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp182_ + 1;
+#line 10402 "CheckerboardLayout.c"
+ }
+#line 1764 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 10406 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 1791 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp183_ = max_rows;
+#line 1791 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp184_ = g_new0 (CheckerboardLayoutLayoutRow*, _tmp183_ + 1);
+#line 1791 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = (_vala_array_free (self->priv->item_rows, self->priv->item_rows_length1, (GDestroyNotify) checkerboard_layout_layout_row_unref), NULL);
+#line 1791 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = _tmp184_;
+#line 1791 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows_length1 = _tmp183_;
+#line 1791 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->_item_rows_size_ = self->priv->item_rows_length1;
+#line 1794 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp185_ = gutter;
+#line 1794 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = _tmp185_;
+#line 1795 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = CHECKERBOARD_LAYOUT_TOP_PADDING;
+#line 1796 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1797 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = 0;
+#line 1798 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ current_row = NULL;
+#line 10434 "CheckerboardLayout.c"
+ {
+ gint ctr = 0;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = 0;
+#line 10439 "CheckerboardLayout.c"
+ {
+ gboolean _tmp186_ = FALSE;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp186_ = TRUE;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 10446 "CheckerboardLayout.c"
+ gint _tmp188_ = 0;
+ gint _tmp189_ = 0;
+ CheckerboardItem* item = NULL;
+ ViewCollection* _tmp190_ = NULL;
+ gint _tmp191_ = 0;
+ DataObject* _tmp192_ = NULL;
+ Dimensions req = {0};
+ CheckerboardItem* _tmp193_ = NULL;
+ Dimensions _tmp194_ = {0};
+ gint xpadding = 0;
+ gint* _tmp195_ = NULL;
+ gint _tmp195__length1 = 0;
+ gint _tmp196_ = 0;
+ gint _tmp197_ = 0;
+ Dimensions _tmp198_ = {0};
+ gint _tmp199_ = 0;
+ gint _tmp200_ = 0;
+ gint ypadding = 0;
+ gint* _tmp201_ = NULL;
+ gint _tmp201__length1 = 0;
+ gint _tmp202_ = 0;
+ gint _tmp203_ = 0;
+ CheckerboardItem* _tmp204_ = NULL;
+ gint _tmp205_ = 0;
+ gint _tmp206_ = 0;
+ CheckerboardItem* _tmp207_ = NULL;
+ gint _tmp208_ = 0;
+ gint _tmp209_ = 0;
+ CheckerboardItem* _tmp210_ = NULL;
+ gint _tmp211_ = 0;
+ gint _tmp212_ = 0;
+ CheckerboardItem* _tmp213_ = NULL;
+ Dimensions _tmp214_ = {0};
+ gint _tmp215_ = 0;
+ CheckerboardItem* _tmp216_ = NULL;
+ Dimensions _tmp217_ = {0};
+ gint _tmp218_ = 0;
+ CheckerboardItem* _tmp219_ = NULL;
+ gint _tmp220_ = 0;
+ gint _tmp221_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp222_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp229_ = NULL;
+ CheckerboardItem** _tmp230_ = NULL;
+ gint _tmp230__length1 = 0;
+ gint _tmp231_ = 0;
+ CheckerboardItem* _tmp232_ = NULL;
+ CheckerboardItem* _tmp233_ = NULL;
+ CheckerboardItem* _tmp234_ = NULL;
+ gint _tmp235_ = 0;
+ gint* _tmp236_ = NULL;
+ gint _tmp236__length1 = 0;
+ gint _tmp237_ = 0;
+ gint _tmp238_ = 0;
+ gint _tmp239_ = 0;
+ gint _tmp240_ = 0;
+ gint _tmp241_ = 0;
+ gint _tmp242_ = 0;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp186_) {
+#line 10506 "CheckerboardLayout.c"
+ gint _tmp187_ = 0;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp187_ = ctr;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ctr = _tmp187_ + 1;
+#line 10512 "CheckerboardLayout.c"
+ }
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp186_ = FALSE;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp188_ = ctr;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp189_ = total_items;
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp188_ < _tmp189_)) {
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 10524 "CheckerboardLayout.c"
+ }
+#line 1801 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp190_ = self->priv->view;
+#line 1801 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp191_ = ctr;
+#line 1801 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp192_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp190_, TYPE_DATA_COLLECTION, DataCollection), _tmp191_);
+#line 1801 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = G_TYPE_CHECK_INSTANCE_CAST (_tmp192_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp193_ = item;
+#line 1802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp194_ = _tmp193_->requisition;
+#line 1802 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ req = _tmp194_;
+#line 1805 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp195_ = column_widths;
+#line 1805 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp195__length1 = column_widths_length1;
+#line 1805 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp196_ = col;
+#line 1805 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp197_ = _tmp195_[_tmp196_];
+#line 1805 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp198_ = req;
+#line 1805 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp199_ = _tmp198_.width;
+#line 1805 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ xpadding = (_tmp197_ - _tmp199_) / 2;
+#line 1806 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp200_ = xpadding;
+#line 1806 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp200_ >= 0, "xpadding >= 0");
+#line 1809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp201_ = alignment_points;
+#line 1809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp201__length1 = alignment_points_length1;
+#line 1809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp202_ = row;
+#line 1809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp203_ = _tmp201_[_tmp202_];
+#line 1809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp204_ = item;
+#line 1809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp205_ = checkerboard_item_get_alignment_point (_tmp204_);
+#line 1809 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ypadding = _tmp203_ - _tmp205_;
+#line 1810 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp206_ = ypadding;
+#line 1810 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp206_ >= 0, "ypadding >= 0");
+#line 1813 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp207_ = item;
+#line 1813 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp208_ = x;
+#line 1813 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp209_ = xpadding;
+#line 1813 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp207_->allocation.x = _tmp208_ + _tmp209_;
+#line 1814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp210_ = item;
+#line 1814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp211_ = y;
+#line 1814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp212_ = ypadding;
+#line 1814 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp210_->allocation.y = _tmp211_ + _tmp212_;
+#line 1815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp213_ = item;
+#line 1815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp214_ = req;
+#line 1815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp215_ = _tmp214_.width;
+#line 1815 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp213_->allocation.width = _tmp215_;
+#line 1816 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp216_ = item;
+#line 1816 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp217_ = req;
+#line 1816 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp218_ = _tmp217_.height;
+#line 1816 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp216_->allocation.height = _tmp218_;
+#line 1817 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp219_ = item;
+#line 1817 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp220_ = col;
+#line 1817 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp221_ = row;
+#line 1817 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_set_grid_coordinates (_tmp219_, _tmp220_, _tmp221_);
+#line 1820 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp222_ = current_row;
+#line 1820 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp222_ == NULL) {
+#line 10620 "CheckerboardLayout.c"
+ gint _tmp223_ = 0;
+ gint* _tmp224_ = NULL;
+ gint _tmp224__length1 = 0;
+ gint _tmp225_ = 0;
+ gint _tmp226_ = 0;
+ gint _tmp227_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp228_ = NULL;
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp223_ = y;
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp224_ = row_heights;
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp224__length1 = row_heights_length1;
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp225_ = row;
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp226_ = _tmp224_[_tmp225_];
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp227_ = max_cols;
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp228_ = checkerboard_layout_layout_row_new (_tmp223_, _tmp226_, _tmp227_);
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (current_row);
+#line 1821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ current_row = _tmp228_;
+#line 10646 "CheckerboardLayout.c"
+ }
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp229_ = current_row;
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp230_ = _tmp229_->items;
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp230__length1 = _tmp229_->items_length1;
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp231_ = col;
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp232_ = item;
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp233_ = _g_object_ref0 (_tmp232_);
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp230_[_tmp231_]);
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp230_[_tmp231_] = _tmp233_;
+#line 1823 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp234_ = _tmp230_[_tmp231_];
+#line 1825 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp235_ = x;
+#line 1825 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp236_ = column_widths;
+#line 1825 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp236__length1 = column_widths_length1;
+#line 1825 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp237_ = col;
+#line 1825 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp238_ = _tmp236_[_tmp237_];
+#line 1825 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp239_ = gutter;
+#line 1825 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = _tmp235_ + (_tmp238_ + _tmp239_);
+#line 1828 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp240_ = col;
+#line 1828 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = _tmp240_ + 1;
+#line 1828 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp241_ = col;
+#line 1828 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp242_ = max_cols;
+#line 1828 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp241_ >= _tmp242_) {
+#line 10690 "CheckerboardLayout.c"
+ CheckerboardLayoutLayoutRow* _tmp243_ = NULL;
+ CheckerboardLayoutLayoutRow** _tmp244_ = NULL;
+ gint _tmp244__length1 = 0;
+ gint _tmp245_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp246_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp247_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp248_ = NULL;
+ gint _tmp249_ = 0;
+ gint _tmp250_ = 0;
+ gint* _tmp251_ = NULL;
+ gint _tmp251__length1 = 0;
+ gint _tmp252_ = 0;
+ gint _tmp253_ = 0;
+ gint _tmp254_ = 0;
+#line 1829 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp243_ = current_row;
+#line 1829 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp243_ != NULL, "current_row != null");
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp244_ = self->priv->item_rows;
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp244__length1 = self->priv->item_rows_length1;
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp245_ = row;
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp246_ = current_row;
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp247_ = _checkerboard_layout_layout_row_ref0 (_tmp246_);
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (_tmp244_[_tmp245_]);
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp244_[_tmp245_] = _tmp247_;
+#line 1830 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp248_ = _tmp244_[_tmp245_];
+#line 1831 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (current_row);
+#line 1831 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ current_row = NULL;
+#line 1833 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp249_ = gutter;
+#line 1833 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = _tmp249_;
+#line 1834 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp250_ = y;
+#line 1834 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp251_ = row_heights;
+#line 1834 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp251__length1 = row_heights_length1;
+#line 1834 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp252_ = row;
+#line 1834 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp253_ = _tmp251_[_tmp252_];
+#line 1834 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = _tmp250_ + (_tmp253_ + CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING);
+#line 1835 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ col = 0;
+#line 1836 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp254_ = row;
+#line 1836 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row = _tmp254_ + 1;
+#line 10751 "CheckerboardLayout.c"
+ }
+#line 1800 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 10755 "CheckerboardLayout.c"
+ }
+ }
+ }
+#line 1841 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp255_ = current_row;
+#line 1841 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp255_ != NULL) {
+#line 10763 "CheckerboardLayout.c"
+ CheckerboardLayoutLayoutRow** _tmp256_ = NULL;
+ gint _tmp256__length1 = 0;
+ gint _tmp257_ = 0;
+ CheckerboardLayoutLayoutRow* _tmp258_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp259_ = NULL;
+ CheckerboardLayoutLayoutRow* _tmp260_ = NULL;
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp256_ = self->priv->item_rows;
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp256__length1 = self->priv->item_rows_length1;
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp257_ = row;
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp258_ = current_row;
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp259_ = _checkerboard_layout_layout_row_ref0 (_tmp258_);
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (_tmp256_[_tmp257_]);
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp256_[_tmp257_] = _tmp259_;
+#line 1842 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp260_ = _tmp256_[_tmp257_];
+#line 10786 "CheckerboardLayout.c"
+ }
+#line 1845 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp261_ = max_cols;
+#line 1845 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->columns = _tmp261_;
+#line 1846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp262_ = row;
+#line 1846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->rows = _tmp262_ + 1;
+#line 1847 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp263_ = self->priv->rows;
+#line 1847 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp264_ = max_rows;
+#line 1847 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp263_ == _tmp264_, "rows == max_rows");
+#line 1851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp265_ = y;
+#line 1851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp266_ = row_heights;
+#line 1851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp266__length1 = row_heights_length1;
+#line 1851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp267_ = row;
+#line 1851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp268_ = _tmp266_[_tmp267_];
+#line 1851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ total_height = (_tmp265_ + _tmp268_) + CHECKERBOARD_LAYOUT_BOTTOM_PADDING;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp270_ = visible_width;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp271_ = allocation;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp272_ = _tmp271_.width;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp270_ != _tmp272_) {
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp269_ = TRUE;
+#line 10824 "CheckerboardLayout.c"
+ } else {
+ gint _tmp273_ = 0;
+ GtkAllocation _tmp274_ = {0};
+ gint _tmp275_ = 0;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp273_ = total_height;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp274_ = allocation;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp275_ = _tmp274_.height;
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp269_ = _tmp273_ != _tmp275_;
+#line 10837 "CheckerboardLayout.c"
+ }
+#line 1852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp269_) {
+#line 10841 "CheckerboardLayout.c"
+ gint _tmp276_ = 0;
+ gint _tmp277_ = 0;
+ gint _tmp278_ = 0;
+#line 1857 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp276_ = visible_width;
+#line 1857 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp277_ = total_height;
+#line 1857 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp276_, _tmp277_);
+#line 1858 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->size_allocate_due_to_reflow = TRUE;
+#line 1861 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp278_ = total_height;
+#line 1861 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_center_on_anchor (self, (gdouble) _tmp278_);
+#line 10857 "CheckerboardLayout.c"
+ }
+#line 1548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _checkerboard_layout_layout_row_unref0 (current_row);
+#line 1548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ alignment_points = (g_free (alignment_points), NULL);
+#line 1548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ row_heights = (g_free (row_heights), NULL);
+#line 1548 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ column_widths = (g_free (column_widths), NULL);
+#line 10867 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_items_dirty (CheckerboardLayout* self, const gchar* reason, GeeIterable* items) {
+ GdkRectangle dirty = {0};
+ gboolean _tmp35_ = FALSE;
+ GdkRectangle _tmp36_ = {0};
+ gint _tmp37_ = 0;
+#line 1865 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1865 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (reason != NULL);
+#line 1865 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (items));
+#line 1866 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&dirty, 0, sizeof (GdkRectangle));
+#line 10884 "CheckerboardLayout.c"
+ {
+ GeeIterator* _data_view_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = items;
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _data_view_it = _tmp1_;
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 10897 "CheckerboardLayout.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataView* data_view = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ CheckerboardItem* item = NULL;
+ DataView* _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+ CheckerboardItem* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ ViewCollection* _tmp10_ = NULL;
+ CheckerboardItem* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ CheckerboardItem* _tmp14_ = NULL;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkRectangle intersection = {0};
+ CheckerboardItem* _tmp23_ = NULL;
+ GdkRectangle _tmp24_ = {0};
+ GdkRectangle _tmp25_ = {0};
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ GdkRectangle _tmp28_ = {0};
+ gint _tmp29_ = 0;
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _data_view_it;
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp3_) {
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 10931 "CheckerboardLayout.c"
+ }
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _data_view_it;
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ data_view = (DataView*) _tmp5_;
+#line 1868 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = data_view;
+#line 1868 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1868 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = _tmp7_;
+#line 1870 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = item;
+#line 1870 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = data_view_is_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_VIEW, DataView));
+#line 1870 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp9_) {
+#line 1871 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1871 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (data_view);
+#line 1871 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ continue;
+#line 10957 "CheckerboardLayout.c"
+ }
+#line 1873 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = self->priv->view;
+#line 1873 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = item;
+#line 1873 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_OBJECT, DataObject));
+#line 1873 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _vala_assert (_tmp12_, "view.contains(item)");
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = item;
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = _tmp14_->allocation;
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = _tmp15_.width;
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp16_ <= 0) {
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = TRUE;
+#line 10977 "CheckerboardLayout.c"
+ } else {
+ CheckerboardItem* _tmp17_ = NULL;
+ GdkRectangle _tmp18_ = {0};
+ gint _tmp19_ = 0;
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = item;
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = _tmp17_->allocation;
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = _tmp18_.height;
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp19_ <= 0;
+#line 10990 "CheckerboardLayout.c"
+ }
+#line 1877 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp13_) {
+#line 10994 "CheckerboardLayout.c"
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 1878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = reason;
+#line 1878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = g_strdup_printf ("items_dirty: %s", _tmp20_);
+#line 1878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _tmp21_;
+#line 1878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_need_reflow (self, _tmp22_);
+#line 1878 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (_tmp22_);
+#line 1880 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1880 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (data_view);
+#line 1880 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_data_view_it);
+#line 1880 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 11016 "CheckerboardLayout.c"
+ }
+#line 1884 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&intersection, 0, sizeof (GdkRectangle));
+#line 1885 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = item;
+#line 1885 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = _tmp23_->allocation;
+#line 1885 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = gdk_rectangle_intersect (&self->priv->visible_page, &_tmp24_, &_tmp25_);
+#line 1885 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ intersection = _tmp25_;
+#line 1885 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!_tmp26_) {
+#line 1886 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1886 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (data_view);
+#line 1886 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ continue;
+#line 11036 "CheckerboardLayout.c"
+ }
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = dirty;
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = _tmp28_.width;
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp29_ == 0) {
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = TRUE;
+#line 11046 "CheckerboardLayout.c"
+ } else {
+ GdkRectangle _tmp30_ = {0};
+ gint _tmp31_ = 0;
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = dirty;
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = _tmp30_.height;
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = _tmp31_ == 0;
+#line 11056 "CheckerboardLayout.c"
+ }
+#line 1889 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp27_) {
+#line 11060 "CheckerboardLayout.c"
+ GdkRectangle _tmp32_ = {0};
+#line 1890 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = intersection;
+#line 1890 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dirty = _tmp32_;
+#line 11066 "CheckerboardLayout.c"
+ } else {
+ GdkRectangle _tmp33_ = {0};
+ GdkRectangle _tmp34_ = {0};
+#line 1892 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = intersection;
+#line 1892 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_rectangle_union (&dirty, &_tmp33_, &_tmp34_);
+#line 1892 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dirty = _tmp34_;
+#line 11076 "CheckerboardLayout.c"
+ }
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (data_view);
+#line 11082 "CheckerboardLayout.c"
+ }
+#line 1867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_data_view_it);
+#line 11086 "CheckerboardLayout.c"
+ }
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = dirty;
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = _tmp36_.width;
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp37_ > 0) {
+#line 11094 "CheckerboardLayout.c"
+ GdkRectangle _tmp38_ = {0};
+ gint _tmp39_ = 0;
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = dirty;
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = _tmp38_.height;
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = _tmp39_ > 0;
+#line 11103 "CheckerboardLayout.c"
+ } else {
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = FALSE;
+#line 11107 "CheckerboardLayout.c"
+ }
+#line 1895 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp35_) {
+#line 11111 "CheckerboardLayout.c"
+ GdkRectangle _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ GdkRectangle _tmp42_ = {0};
+ gint _tmp43_ = 0;
+ GdkRectangle _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ GdkRectangle _tmp46_ = {0};
+ gint _tmp47_ = 0;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = dirty;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = _tmp40_.x;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = dirty;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = _tmp42_.y;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = dirty;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = _tmp44_.width;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = dirty;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = _tmp46_.height;
+#line 1900 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_queue_draw_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp41_, _tmp43_, _tmp45_, _tmp47_);
+#line 11138 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_layout_real_map (GtkWidget* base) {
+ CheckerboardLayout * self;
+#line 1904 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout);
+#line 1905 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ GTK_WIDGET_CLASS (checkerboard_layout_parent_class)->map (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_drawing_area_get_type (), GtkDrawingArea), gtk_widget_get_type (), GtkWidget));
+#line 1907 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_set_colors (self, TRUE);
+#line 11151 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_set_colors (CheckerboardLayout* self, gboolean in_focus) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GdkRGBA _tmp3_ = {0};
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ GdkRGBA _tmp6_ = {0};
+ ConfigFacade* _tmp7_ = NULL;
+ ConfigFacade* _tmp8_ = NULL;
+ GdkRGBA _tmp9_ = {0};
+ GtkStyleContext* _tmp10_ = NULL;
+ GdkRGBA _tmp11_ = {0};
+#line 1910 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 1912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_;
+#line 1912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = in_focus;
+#line 1912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ config_facade_get_selected_color (_tmp1_, _tmp2_, &_tmp3_);
+#line 1912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->selected_color = _tmp3_;
+#line 1912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 1913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _tmp4_;
+#line 1913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ config_facade_get_unselected_color (_tmp5_, &_tmp6_);
+#line 1913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->unselected_color = _tmp6_;
+#line 1913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = config_facade_get_instance ();
+#line 1914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = _tmp7_;
+#line 1914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ config_facade_get_border_color (_tmp8_, &_tmp9_);
+#line 1914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->border_color = _tmp9_;
+#line 1914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1915 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1915 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_style_context_get_background_color (_tmp10_, GTK_STATE_FLAG_NORMAL, &_tmp11_);
+#line 1915 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->bg_color = _tmp11_;
+#line 11208 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_real_size_allocate (GtkWidget* base, GtkAllocation* allocation) {
+ CheckerboardLayout * self;
+ GtkAllocation _tmp0_ = {0};
+#line 1918 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout);
+#line 1918 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (allocation != NULL);
+#line 1919 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = *allocation;
+#line 1919 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ GTK_WIDGET_CLASS (checkerboard_layout_parent_class)->size_allocate (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_drawing_area_get_type (), GtkDrawingArea), gtk_widget_get_type (), GtkWidget), &_tmp0_);
+#line 1921 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_viewport_resized (self);
+#line 11225 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_layout_real_draw (GtkWidget* base, cairo_t* ctx) {
+ CheckerboardLayout * self;
+ gboolean result = FALSE;
+ GtkAllocation allocation = {0};
+ GtkAllocation _tmp0_ = {0};
+ GtkStyleContext* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ GtkAllocation _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GtkAllocation _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp60_ = FALSE;
+ gboolean _result_ = FALSE;
+ cairo_t* _tmp63_ = NULL;
+#line 1924 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout);
+#line 1924 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (ctx != NULL, FALSE);
+#line 1933 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp0_);
+#line 1933 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ allocation = _tmp0_;
+#line 1934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = ctx;
+#line 1934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = allocation;
+#line 1934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.width;
+#line 1934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = allocation;
+#line 1934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = _tmp5_.height;
+#line 1934 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_render_background (_tmp1_, _tmp2_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp4_, (gdouble) _tmp6_);
+#line 1937 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = self->priv->message;
+#line 1937 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp7_ == NULL) {
+#line 11270 "CheckerboardLayout.c"
+ gboolean _tmp8_ = FALSE;
+#line 1942 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = self->priv->exposure_dirty;
+#line 1942 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp8_) {
+#line 1943 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_expose_items (self, "draw");
+#line 11278 "CheckerboardLayout.c"
+ }
+ {
+ GeeList* _item_list = NULL;
+ GdkRectangle _tmp9_ = {0};
+ GeeList* _tmp10_ = NULL;
+ gint _item_size = 0;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _item_index = 0;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->visible_page;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = checkerboard_layout_intersection (self, &_tmp9_);
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_list = _tmp10_;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = _item_list;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp12_;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_size = _tmp13_;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_index = -1;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ while (TRUE) {
+#line 11307 "CheckerboardLayout.c"
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ CheckerboardItem* item = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gpointer _tmp19_ = NULL;
+ GdkRGBA _tmp20_ = {0};
+ CheckerboardItem* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ CheckerboardItem* _tmp25_ = NULL;
+ cairo_t* _tmp26_ = NULL;
+ GdkRGBA _tmp27_ = {0};
+ GdkRGBA _tmp28_ = {0};
+ GdkRGBA _tmp29_ = {0};
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = _item_index;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _item_index = _tmp14_ + 1;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = _item_index;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = _item_size;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!(_tmp15_ < _tmp16_)) {
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ break;
+#line 11335 "CheckerboardLayout.c"
+ }
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = _item_list;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = _item_index;
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = gee_list_get (_tmp17_, _tmp18_);
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = (CheckerboardItem*) _tmp19_;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = item;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_VIEW, DataView));
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp22_) {
+#line 11351 "CheckerboardLayout.c"
+ GdkRGBA _tmp23_ = {0};
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = self->priv->selected_color;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = _tmp23_;
+#line 11357 "CheckerboardLayout.c"
+ } else {
+ GdkRGBA _tmp24_ = {0};
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = self->priv->unselected_color;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = _tmp24_;
+#line 11364 "CheckerboardLayout.c"
+ }
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = item;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = ctx;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = self->priv->bg_color;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = self->priv->unselected_color;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = self->priv->border_color;
+#line 1947 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_item_paint (_tmp25_, _tmp26_, &_tmp27_, &_tmp20_, &_tmp28_, &_tmp29_);
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 11380 "CheckerboardLayout.c"
+ }
+#line 1946 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_item_list);
+#line 11384 "CheckerboardLayout.c"
+ }
+ } else {
+ PangoLayout* pango_layout = NULL;
+ const gchar* _tmp30_ = NULL;
+ PangoLayout* _tmp31_ = NULL;
+ gint text_width = 0;
+ gint text_height = 0;
+ PangoLayout* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ GtkAllocation _tmp35_ = {0};
+ gint x = 0;
+ GtkAllocation _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint y = 0;
+ GtkAllocation _tmp42_ = {0};
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ cairo_t* _tmp48_ = NULL;
+ GdkRGBA _tmp49_ = {0};
+ gdouble _tmp50_ = 0.0;
+ GdkRGBA _tmp51_ = {0};
+ gdouble _tmp52_ = 0.0;
+ GdkRGBA _tmp53_ = {0};
+ gdouble _tmp54_ = 0.0;
+ cairo_t* _tmp55_ = NULL;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ cairo_t* _tmp58_ = NULL;
+ PangoLayout* _tmp59_ = NULL;
+#line 1952 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = self->priv->message;
+#line 1952 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = gtk_widget_create_pango_layout (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp30_);
+#line 1952 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout = _tmp31_;
+#line 1954 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = pango_layout;
+#line 1954 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_layout_get_pixel_size (_tmp32_, &_tmp33_, &_tmp34_);
+#line 1954 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text_width = _tmp33_;
+#line 1954 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ text_height = _tmp34_;
+#line 1956 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp35_);
+#line 1956 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ allocation = _tmp35_;
+#line 1958 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = allocation;
+#line 1958 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = _tmp36_.width;
+#line 1958 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = text_width;
+#line 1958 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = _tmp37_ - _tmp38_;
+#line 1959 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = x;
+#line 1959 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp40_ > 0) {
+#line 11450 "CheckerboardLayout.c"
+ gint _tmp41_ = 0;
+#line 1959 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = x;
+#line 1959 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = _tmp41_ / 2;
+#line 11456 "CheckerboardLayout.c"
+ } else {
+#line 1959 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = 0;
+#line 11460 "CheckerboardLayout.c"
+ }
+#line 1959 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ x = _tmp39_;
+#line 1961 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = allocation;
+#line 1961 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = _tmp42_.height;
+#line 1961 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = text_height;
+#line 1961 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = _tmp43_ - _tmp44_;
+#line 1962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = y;
+#line 1962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp46_ > 0) {
+#line 11476 "CheckerboardLayout.c"
+ gint _tmp47_ = 0;
+#line 1962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = y;
+#line 1962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = _tmp47_ / 2;
+#line 11482 "CheckerboardLayout.c"
+ } else {
+#line 1962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = 0;
+#line 11486 "CheckerboardLayout.c"
+ }
+#line 1962 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ y = _tmp45_;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = ctx;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = self->priv->unselected_color;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp50_ = _tmp49_.red;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp51_ = self->priv->unselected_color;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp52_ = _tmp51_.green;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp53_ = self->priv->unselected_color;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp54_ = _tmp53_.blue;
+#line 1964 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgb (_tmp48_, _tmp50_, _tmp52_, _tmp54_);
+#line 1965 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp55_ = ctx;
+#line 1965 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp56_ = x;
+#line 1965 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp57_ = y;
+#line 1965 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_move_to (_tmp55_, (gdouble) _tmp56_, (gdouble) _tmp57_);
+#line 1966 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp58_ = ctx;
+#line 1966 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp59_ = pango_layout;
+#line 1966 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ pango_cairo_show_layout (_tmp58_, _tmp59_);
+#line 1937 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (pango_layout);
+#line 11522 "CheckerboardLayout.c"
+ }
+#line 1969 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (GTK_WIDGET_CLASS (checkerboard_layout_parent_class)->draw != NULL) {
+#line 11526 "CheckerboardLayout.c"
+ cairo_t* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+#line 1969 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp61_ = ctx;
+#line 1969 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp62_ = GTK_WIDGET_CLASS (checkerboard_layout_parent_class)->draw (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_drawing_area_get_type (), GtkDrawingArea), gtk_widget_get_type (), GtkWidget), _tmp61_);
+#line 1969 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp60_ = _tmp62_;
+#line 11535 "CheckerboardLayout.c"
+ } else {
+#line 1969 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp60_ = TRUE;
+#line 11539 "CheckerboardLayout.c"
+ }
+#line 1969 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _result_ = _tmp60_;
+#line 1972 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp63_ = ctx;
+#line 1972 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_draw_selection_band (self, _tmp63_);
+#line 1974 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _result_;
+#line 1974 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 11551 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_draw_selection_band (CheckerboardLayout* self, cairo_t* ctx) {
+ gboolean _tmp0_ = FALSE;
+ GdkRectangle _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ gboolean _tmp5_ = FALSE;
+ GtkAdjustment* _tmp6_ = NULL;
+ GdkRectangle visible_page = {0};
+ GtkAdjustment* _tmp8_ = NULL;
+ GtkAdjustment* _tmp9_ = NULL;
+ GdkRectangle _tmp10_ = {0};
+ GdkRectangle visible_band = {0};
+ GdkRectangle _tmp11_ = {0};
+ GdkRectangle _tmp12_ = {0};
+ gboolean _tmp13_ = FALSE;
+ GdkRectangle _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ cairo_t* _tmp35_ = NULL;
+ cairo_t* _tmp36_ = NULL;
+ cairo_t* _tmp37_ = NULL;
+ GdkRGBA _tmp38_ = {0};
+ gdouble _tmp39_ = 0.0;
+ GdkRGBA _tmp40_ = {0};
+ gdouble _tmp41_ = 0.0;
+ GdkRGBA _tmp42_ = {0};
+ gdouble _tmp43_ = 0.0;
+ cairo_t* _tmp44_ = NULL;
+ GdkRectangle _tmp45_ = {0};
+ gint _tmp46_ = 0;
+ GdkRectangle _tmp47_ = {0};
+ gint _tmp48_ = 0;
+ GdkRectangle _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ GdkRectangle _tmp51_ = {0};
+ gint _tmp52_ = 0;
+ cairo_t* _tmp53_ = NULL;
+#line 1977 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 1977 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (ctx != NULL);
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = self->priv->selection_band;
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_.width;
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp2_ <= 1) {
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = TRUE;
+#line 11602 "CheckerboardLayout.c"
+ } else {
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = self->priv->selection_band;
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = _tmp3_.height;
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = _tmp4_ <= 1;
+#line 11612 "CheckerboardLayout.c"
+ }
+#line 1979 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp0_) {
+#line 1980 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 11618 "CheckerboardLayout.c"
+ }
+#line 1983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = self->priv->hadjustment;
+#line 1983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp6_ == NULL) {
+#line 1983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = TRUE;
+#line 11626 "CheckerboardLayout.c"
+ } else {
+ GtkAdjustment* _tmp7_ = NULL;
+#line 1983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = self->priv->vadjustment;
+#line 1983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = _tmp7_ == NULL;
+#line 11633 "CheckerboardLayout.c"
+ }
+#line 1983 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp5_) {
+#line 1984 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return;
+#line 11639 "CheckerboardLayout.c"
+ }
+#line 1987 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = self->priv->hadjustment;
+#line 1987 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = self->priv->vadjustment;
+#line 1987 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ get_adjustment_page (_tmp8_, _tmp9_, &_tmp10_);
+#line 1987 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ visible_page = _tmp10_;
+#line 1988 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&visible_band, 0, sizeof (GdkRectangle));
+#line 1989 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp11_ = self->priv->selection_band;
+#line 1989 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gdk_rectangle_intersect (&visible_page, &_tmp11_, &_tmp12_);
+#line 1989 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ visible_band = _tmp12_;
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = visible_band;
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp15_ = _tmp14_.width;
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp15_ > 1) {
+#line 11663 "CheckerboardLayout.c"
+ GdkRectangle _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = visible_band;
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp17_ = _tmp16_.height;
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = _tmp17_ > 1;
+#line 11672 "CheckerboardLayout.c"
+ } else {
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp13_ = FALSE;
+#line 11676 "CheckerboardLayout.c"
+ }
+#line 1992 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp13_) {
+#line 11680 "CheckerboardLayout.c"
+ cairo_t* _tmp18_ = NULL;
+ GdkRGBA _tmp19_ = {0};
+ gdouble _tmp20_ = 0.0;
+ GdkRGBA _tmp21_ = {0};
+ gdouble _tmp22_ = 0.0;
+ GdkRGBA _tmp23_ = {0};
+ gdouble _tmp24_ = 0.0;
+ cairo_t* _tmp25_ = NULL;
+ GdkRectangle _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ GdkRectangle _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ GdkRectangle _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ GdkRectangle _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ cairo_t* _tmp34_ = NULL;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = ctx;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = self->priv->selected_color;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp20_ = _tmp19_.red;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = self->priv->selected_color;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = _tmp21_.green;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp23_ = self->priv->selected_color;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = _tmp23_.blue;
+#line 1993 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgba (_tmp18_, _tmp20_, _tmp22_, _tmp24_, CHECKERBOARD_LAYOUT_SELECTION_ALPHA);
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = ctx;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = visible_band;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = _tmp26_.x;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp28_ = visible_band;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = _tmp28_.y;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = visible_band;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp31_ = _tmp30_.width;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp32_ = visible_band;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp33_ = _tmp32_.height;
+#line 1995 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp25_, (gdouble) _tmp27_, (gdouble) _tmp29_, (gdouble) _tmp31_, (gdouble) _tmp33_);
+#line 1997 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp34_ = ctx;
+#line 1997 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_fill (_tmp34_);
+#line 11738 "CheckerboardLayout.c"
+ }
+#line 2003 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp35_ = ctx;
+#line 2003 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_line_width (_tmp35_, 1.0);
+#line 2004 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp36_ = ctx;
+#line 2004 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_line_cap (_tmp36_, CAIRO_LINE_CAP_SQUARE);
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp37_ = ctx;
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp38_ = self->priv->selected_color;
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp39_ = _tmp38_.red;
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp40_ = self->priv->selected_color;
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp41_ = _tmp40_.green;
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp42_ = self->priv->selected_color;
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp43_ = _tmp42_.blue;
+#line 2005 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_set_source_rgb (_tmp37_, _tmp39_, _tmp41_, _tmp43_);
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp44_ = ctx;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp45_ = self->priv->selection_band;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp46_ = _tmp45_.x;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp47_ = self->priv->selection_band;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp48_ = _tmp47_.y;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp49_ = self->priv->selection_band;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp50_ = _tmp49_.width;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp51_ = self->priv->selection_band;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp52_ = _tmp51_.height;
+#line 2006 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_rectangle (_tmp44_, ((gdouble) _tmp46_) + 0.5, ((gdouble) _tmp48_) + 0.5, ((gdouble) _tmp50_) - 1.0, ((gdouble) _tmp52_) - 1.0);
+#line 2008 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp53_ = ctx;
+#line 2008 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ cairo_stroke (_tmp53_);
+#line 11788 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_layout_real_query_tooltip (GtkWidget* base, gint x, gint y, gboolean keyboard_mode, GtkTooltip* tooltip) {
+ CheckerboardLayout * self;
+ gboolean result = FALSE;
+ CheckerboardItem* item = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ CheckerboardItem* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ CheckerboardItem* _tmp4_ = NULL;
+#line 2011 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout);
+#line 2011 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (GTK_IS_TOOLTIP (tooltip), FALSE);
+#line 2012 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = x;
+#line 2012 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = y;
+#line 2012 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = checkerboard_layout_get_item_at_pixel (self, (gdouble) _tmp0_, (gdouble) _tmp1_);
+#line 2012 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ item = _tmp2_;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = item;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp4_ != NULL) {
+#line 11817 "CheckerboardLayout.c"
+ CheckerboardItem* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ GtkTooltip* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp5_ = item;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = x;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp7_ = y;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = tooltip;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp9_ = checkerboard_item_query_tooltip (_tmp5_, _tmp6_, _tmp7_, _tmp8_);
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = _tmp9_;
+#line 11835 "CheckerboardLayout.c"
+ } else {
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = FALSE;
+#line 11839 "CheckerboardLayout.c"
+ }
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp3_;
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (item);
+#line 2014 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 11847 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_on_colors_changed (CheckerboardLayout* self) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ GdkRGBA _tmp2_ = {0};
+#line 2017 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (IS_CHECKERBOARD_LAYOUT (self));
+#line 2018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 2018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = _tmp0_;
+#line 2018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ config_facade_get_bg_color (_tmp1_, &_tmp2_);
+#line 2018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ gtk_widget_override_background_color (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), GTK_STATE_FLAG_NORMAL, &_tmp2_);
+#line 2018 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2019 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_set_colors (self, TRUE);
+#line 11869 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_layout_real_focus_in_event (GtkWidget* base, GdkEventFocus* event) {
+ CheckerboardLayout * self;
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GdkEventFocus* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2022 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout);
+#line 2022 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2023 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_set_colors (self, TRUE);
+#line 2024 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->view;
+#line 2024 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = view_collection_get_selected (_tmp0_);
+#line 2024 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_;
+#line 2024 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_items_dirty (self, "focus_in_event", G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2024 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2026 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = event;
+#line 2026 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = GTK_WIDGET_CLASS (checkerboard_layout_parent_class)->focus_in_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_drawing_area_get_type (), GtkDrawingArea), gtk_widget_get_type (), GtkWidget), _tmp3_);
+#line 2026 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp4_;
+#line 2026 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 11905 "CheckerboardLayout.c"
+}
+
+
+static gboolean checkerboard_layout_real_focus_out_event (GtkWidget* base, GdkEventFocus* event) {
+ CheckerboardLayout * self;
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GdkEventFocus* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2029 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout);
+#line 2029 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2030 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_set_colors (self, FALSE);
+#line 2031 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->view;
+#line 2031 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = view_collection_get_selected (_tmp0_);
+#line 2031 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = _tmp1_;
+#line 2031 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_items_dirty (self, "focus_out_event", G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2031 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2033 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = event;
+#line 2033 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = GTK_WIDGET_CLASS (checkerboard_layout_parent_class)->focus_out_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_drawing_area_get_type (), GtkDrawingArea), gtk_widget_get_type (), GtkWidget), _tmp3_);
+#line 2033 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ result = _tmp4_;
+#line 2033 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return result;
+#line 11941 "CheckerboardLayout.c"
+}
+
+
+static CheckerboardLayoutLayoutRow* checkerboard_layout_layout_row_construct (GType object_type, gint y, gint height, gint num_in_row) {
+ CheckerboardLayoutLayoutRow* self = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ CheckerboardItem** _tmp3_ = NULL;
+#line 843 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = (CheckerboardLayoutLayoutRow*) g_type_create_instance (object_type);
+#line 844 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = y;
+#line 844 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->y = _tmp0_;
+#line 845 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = height;
+#line 845 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->height = _tmp1_;
+#line 846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = num_in_row;
+#line 846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp3_ = g_new0 (CheckerboardItem*, _tmp2_ + 1);
+#line 846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->items = (_vala_array_free (self->items, self->items_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->items = _tmp3_;
+#line 846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->items_length1 = _tmp2_;
+#line 846 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->_items_size_ = self->items_length1;
+#line 843 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return self;
+#line 11975 "CheckerboardLayout.c"
+}
+
+
+static CheckerboardLayoutLayoutRow* checkerboard_layout_layout_row_new (gint y, gint height, gint num_in_row) {
+#line 843 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return checkerboard_layout_layout_row_construct (CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW, y, height, num_in_row);
+#line 11982 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_value_layout_row_init (GValue* value) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 11989 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_value_layout_row_free_value (GValue* value) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (value->data[0].v_pointer) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_layout_row_unref (value->data[0].v_pointer);
+#line 11998 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_layout_value_layout_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (src_value->data[0].v_pointer) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dest_value->data[0].v_pointer = checkerboard_layout_layout_row_ref (src_value->data[0].v_pointer);
+#line 12008 "CheckerboardLayout.c"
+ } else {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 12012 "CheckerboardLayout.c"
+ }
+}
+
+
+static gpointer checkerboard_layout_value_layout_row_peek_pointer (const GValue* value) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return value->data[0].v_pointer;
+#line 12020 "CheckerboardLayout.c"
+}
+
+
+static gchar* checkerboard_layout_value_layout_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (collect_values[0].v_pointer) {
+#line 12027 "CheckerboardLayout.c"
+ CheckerboardLayoutLayoutRow* object;
+ object = collect_values[0].v_pointer;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 12034 "CheckerboardLayout.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 12038 "CheckerboardLayout.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = checkerboard_layout_layout_row_ref (object);
+#line 12042 "CheckerboardLayout.c"
+ } else {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 12046 "CheckerboardLayout.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return NULL;
+#line 12050 "CheckerboardLayout.c"
+}
+
+
+static gchar* checkerboard_layout_value_layout_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ CheckerboardLayoutLayoutRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!object_p) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 12061 "CheckerboardLayout.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (!value->data[0].v_pointer) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *object_p = NULL;
+#line 12067 "CheckerboardLayout.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *object_p = value->data[0].v_pointer;
+#line 12071 "CheckerboardLayout.c"
+ } else {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ *object_p = checkerboard_layout_layout_row_ref (value->data[0].v_pointer);
+#line 12075 "CheckerboardLayout.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return NULL;
+#line 12079 "CheckerboardLayout.c"
+}
+
+
+static GParamSpec* checkerboard_layout_param_spec_layout_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ CheckerboardLayoutParamSpecLayoutRow* spec;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW), NULL);
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return G_PARAM_SPEC (spec);
+#line 12093 "CheckerboardLayout.c"
+}
+
+
+static gpointer checkerboard_layout_value_get_layout_row (const GValue* value) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW), NULL);
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return value->data[0].v_pointer;
+#line 12102 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_value_set_layout_row (GValue* value, gpointer v_object) {
+ CheckerboardLayoutLayoutRow* old;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW));
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ old = value->data[0].v_pointer;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (v_object) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW));
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = v_object;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_layout_row_ref (value->data[0].v_pointer);
+#line 12122 "CheckerboardLayout.c"
+ } else {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 12126 "CheckerboardLayout.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (old) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_layout_row_unref (old);
+#line 12132 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_layout_value_take_layout_row (GValue* value, gpointer v_object) {
+ CheckerboardLayoutLayoutRow* old;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW));
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ old = value->data[0].v_pointer;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (v_object) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW));
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = v_object;
+#line 12151 "CheckerboardLayout.c"
+ } else {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ value->data[0].v_pointer = NULL;
+#line 12155 "CheckerboardLayout.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (old) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_layout_row_unref (old);
+#line 12161 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_layout_layout_row_class_init (CheckerboardLayoutLayoutRowClass * klass) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_layout_row_parent_class = g_type_class_peek_parent (klass);
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((CheckerboardLayoutLayoutRowClass *) klass)->finalize = checkerboard_layout_layout_row_finalize;
+#line 12171 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_layout_row_instance_init (CheckerboardLayoutLayoutRow * self) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->ref_count = 1;
+#line 12178 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_layout_row_finalize (CheckerboardLayoutLayoutRow* obj) {
+ CheckerboardLayoutLayoutRow * self;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, CHECKERBOARD_LAYOUT_TYPE_LAYOUT_ROW, CheckerboardLayoutLayoutRow);
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_destroy (self);
+#line 841 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->items = (_vala_array_free (self->items, self->items_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 12190 "CheckerboardLayout.c"
+}
+
+
+static GType checkerboard_layout_layout_row_get_type (void) {
+ static volatile gsize checkerboard_layout_layout_row_type_id__volatile = 0;
+ if (g_once_init_enter (&checkerboard_layout_layout_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { checkerboard_layout_value_layout_row_init, checkerboard_layout_value_layout_row_free_value, checkerboard_layout_value_layout_row_copy_value, checkerboard_layout_value_layout_row_peek_pointer, "p", checkerboard_layout_value_layout_row_collect_value, "p", checkerboard_layout_value_layout_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (CheckerboardLayoutLayoutRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) checkerboard_layout_layout_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CheckerboardLayoutLayoutRow), 0, (GInstanceInitFunc) checkerboard_layout_layout_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType checkerboard_layout_layout_row_type_id;
+ checkerboard_layout_layout_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "CheckerboardLayoutLayoutRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&checkerboard_layout_layout_row_type_id__volatile, checkerboard_layout_layout_row_type_id);
+ }
+ return checkerboard_layout_layout_row_type_id__volatile;
+}
+
+
+static gpointer checkerboard_layout_layout_row_ref (gpointer instance) {
+ CheckerboardLayoutLayoutRow* self;
+ self = instance;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ return instance;
+#line 12215 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_layout_row_unref (gpointer instance) {
+ CheckerboardLayoutLayoutRow* self;
+ self = instance;
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ CHECKERBOARD_LAYOUT_LAYOUT_ROW_GET_CLASS (self)->finalize (self);
+#line 838 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 12228 "CheckerboardLayout.c"
+ }
+}
+
+
+static void checkerboard_layout_class_init (CheckerboardLayoutClass * klass) {
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ checkerboard_layout_parent_class = g_type_class_peek_parent (klass);
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_type_class_add_private (klass, sizeof (CheckerboardLayoutPrivate));
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((GtkWidgetClass *) klass)->map = checkerboard_layout_real_map;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((GtkWidgetClass *) klass)->size_allocate = checkerboard_layout_real_size_allocate;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((GtkWidgetClass *) klass)->draw = checkerboard_layout_real_draw;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((GtkWidgetClass *) klass)->query_tooltip = checkerboard_layout_real_query_tooltip;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((GtkWidgetClass *) klass)->focus_in_event = checkerboard_layout_real_focus_in_event;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ ((GtkWidgetClass *) klass)->focus_out_event = checkerboard_layout_real_focus_out_event;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_CLASS (klass)->finalize = checkerboard_layout_finalize;
+#line 12252 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_instance_init (CheckerboardLayout * self) {
+ gchar* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv = CHECKERBOARD_LAYOUT_GET_PRIVATE (self);
+#line 851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = g_strdup ("");
+#line 851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->page_name = _tmp0_;
+#line 852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = NULL;
+#line 852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows_length1 = 0;
+#line 852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->_item_rows_size_ = self->priv->item_rows_length1;
+#line 853 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp1_ = gee_hash_set_new (TYPE_CHECKERBOARD_ITEM, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 853 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposed_items = _tmp1_;
+#line 854 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->hadjustment = NULL;
+#line 855 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->vadjustment = NULL;
+#line 856 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->message = NULL;
+#line 861 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&self->priv->visible_page, 0, sizeof (GdkRectangle));
+#line 862 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->last_width = 0;
+#line 863 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->columns = 0;
+#line 864 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->rows = 0;
+#line 865 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&self->priv->drag_origin, 0, sizeof (GdkPoint));
+#line 866 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&self->priv->drag_endpoint, 0, sizeof (GdkPoint));
+#line 867 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ memset (&self->priv->selection_band, 0, sizeof (GdkRectangle));
+#line 868 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->scale = 0;
+#line 869 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->flow_scheduled = FALSE;
+#line 870 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->exposure_dirty = TRUE;
+#line 871 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->anchor = NULL;
+#line 872 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->cursor = NULL;
+#line 873 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->in_center_on_anchor = FALSE;
+#line 874 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->size_allocate_due_to_reflow = FALSE;
+#line 875 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->is_in_view = FALSE;
+#line 876 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->reflow_needed = FALSE;
+#line 12313 "CheckerboardLayout.c"
+}
+
+
+static void checkerboard_layout_finalize (GObject* obj) {
+ CheckerboardLayout * self;
+ ViewCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ ViewCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ ViewCollection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ ViewCollection* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ ViewCollection* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ ViewCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ ViewCollection* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ ViewCollection* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ ViewCollection* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+ GtkAdjustment* _tmp18_ = NULL;
+ GtkAdjustment* _tmp21_ = NULL;
+ GtkContainer* _tmp24_ = NULL;
+ GtkContainer* _tmp25_ = NULL;
+ ConfigFacade* _tmp29_ = NULL;
+ ConfigFacade* _tmp30_ = NULL;
+ guint _tmp31_ = 0U;
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout);
+#line 907 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp0_ = self->priv->view;
+#line 907 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 907 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _checkerboard_layout_on_contents_altered_data_collection_contents_altered, self);
+#line 908 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp2_ = self->priv->view;
+#line 908 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 908 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _checkerboard_layout_on_items_altered_data_collection_items_altered, self);
+#line 909 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp4_ = self->priv->view;
+#line 909 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("items-state-changed", TYPE_VIEW_COLLECTION, &_tmp5_, NULL, FALSE);
+#line 909 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _checkerboard_layout_on_items_state_changed_view_collection_items_state_changed, self);
+#line 910 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp6_ = self->priv->view;
+#line 910 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("items-visibility-changed", TYPE_VIEW_COLLECTION, &_tmp7_, NULL, FALSE);
+#line 910 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _checkerboard_layout_on_items_visibility_changed_view_collection_items_visibility_changed, self);
+#line 911 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp8_ = self->priv->view;
+#line 911 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("ordering-changed", TYPE_DATA_COLLECTION, &_tmp9_, NULL, FALSE);
+#line 911 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _checkerboard_layout_on_ordering_changed_data_collection_ordering_changed, self);
+#line 912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp10_ = self->priv->view;
+#line 912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("views-altered", TYPE_VIEW_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 912 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _checkerboard_layout_on_views_altered_view_collection_views_altered, self);
+#line 913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp12_ = self->priv->view;
+#line 913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("geometries-altered", TYPE_VIEW_COLLECTION, &_tmp13_, NULL, FALSE);
+#line 913 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _checkerboard_layout_on_geometries_altered_view_collection_geometries_altered, self);
+#line 914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp14_ = self->priv->view;
+#line 914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("items-selected", TYPE_VIEW_COLLECTION, &_tmp15_, NULL, FALSE);
+#line 914 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp14_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _checkerboard_layout_on_items_selection_changed_view_collection_items_selected, self);
+#line 915 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp16_ = self->priv->view;
+#line 915 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("items-unselected", TYPE_VIEW_COLLECTION, &_tmp17_, NULL, FALSE);
+#line 915 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp16_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp17_, 0, NULL, (GCallback) _checkerboard_layout_on_items_selection_changed_view_collection_items_unselected, self);
+#line 917 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp18_ = self->priv->hadjustment;
+#line 917 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp18_ != NULL) {
+#line 12404 "CheckerboardLayout.c"
+ GtkAdjustment* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+#line 918 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp19_ = self->priv->hadjustment;
+#line 918 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("value-changed", gtk_adjustment_get_type (), &_tmp20_, NULL, FALSE);
+#line 918 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp19_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp20_, 0, NULL, (GCallback) _checkerboard_layout_on_viewport_shifted_gtk_adjustment_value_changed, self);
+#line 12413 "CheckerboardLayout.c"
+ }
+#line 920 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp21_ = self->priv->vadjustment;
+#line 920 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp21_ != NULL) {
+#line 12419 "CheckerboardLayout.c"
+ GtkAdjustment* _tmp22_ = NULL;
+ guint _tmp23_ = 0U;
+#line 921 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp22_ = self->priv->vadjustment;
+#line 921 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("value-changed", gtk_adjustment_get_type (), &_tmp23_, NULL, FALSE);
+#line 921 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp22_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp23_, 0, NULL, (GCallback) _checkerboard_layout_on_viewport_shifted_gtk_adjustment_value_changed, self);
+#line 12428 "CheckerboardLayout.c"
+ }
+#line 923 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp24_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 923 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp25_ = _tmp24_;
+#line 923 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ if (_tmp25_ != NULL) {
+#line 12436 "CheckerboardLayout.c"
+ GtkContainer* _tmp26_ = NULL;
+ GtkContainer* _tmp27_ = NULL;
+ guint _tmp28_ = 0U;
+#line 924 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp26_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 924 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp27_ = _tmp26_;
+#line 924 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("size-allocate", gtk_widget_get_type (), &_tmp28_, NULL, FALSE);
+#line 924 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp28_, 0, NULL, (GCallback) _checkerboard_layout_on_viewport_resized_gtk_widget_size_allocate, self);
+#line 12448 "CheckerboardLayout.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp29_ = config_facade_get_instance ();
+#line 926 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _tmp30_ = _tmp29_;
+#line 926 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_parse_name ("colors-changed", CONFIG_TYPE_FACADE, &_tmp31_, NULL, FALSE);
+#line 926 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ g_signal_handlers_disconnect_matched (_tmp30_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp31_, 0, NULL, (GCallback) _checkerboard_layout_on_colors_changed_config_facade_colors_changed, self);
+#line 926 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (_tmp30_);
+#line 850 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 851 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (self->priv->page_name);
+#line 852 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ self->priv->item_rows = (_vala_array_free (self->priv->item_rows, self->priv->item_rows_length1, (GDestroyNotify) checkerboard_layout_layout_row_unref), NULL);
+#line 853 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->exposed_items);
+#line 854 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->hadjustment);
+#line 855 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->vadjustment);
+#line 856 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_free0 (self->priv->message);
+#line 871 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->anchor);
+#line 872 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ _g_object_unref0 (self->priv->cursor);
+#line 821 "/home/jens/Source/shotwell/src/CheckerboardLayout.vala"
+ G_OBJECT_CLASS (checkerboard_layout_parent_class)->finalize (obj);
+#line 12480 "CheckerboardLayout.c"
+}
+
+
+GType checkerboard_layout_get_type (void) {
+ static volatile gsize checkerboard_layout_type_id__volatile = 0;
+ if (g_once_init_enter (&checkerboard_layout_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CheckerboardLayoutClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) checkerboard_layout_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CheckerboardLayout), 0, (GInstanceInitFunc) checkerboard_layout_instance_init, NULL };
+ GType checkerboard_layout_type_id;
+ checkerboard_layout_type_id = g_type_register_static (gtk_drawing_area_get_type (), "CheckerboardLayout", &g_define_type_info, 0);
+ g_once_init_leave (&checkerboard_layout_type_id__volatile, checkerboard_layout_type_id);
+ }
+ return checkerboard_layout_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/CheckerboardLayout.vala b/src/CheckerboardLayout.vala
index 032235f..f2acc30 100644
--- a/src/CheckerboardLayout.vala
+++ b/src/CheckerboardLayout.vala
@@ -127,6 +127,9 @@ public abstract class CheckerboardItem : ThumbnailView {
private CheckerboardItemText? subtitle = null;
private bool subtitle_visible = false;
private bool is_cursor = false;
+ private Pango.Alignment tag_alignment = Pango.Alignment.LEFT;
+ private Gee.List<Tag>? user_visible_tag_list = null;
+ private Gee.Collection<Tag> tags;
private Gdk.Pixbuf pixbuf = null;
private Gdk.Pixbuf display_pixbuf = null;
private Gdk.Pixbuf brightened = null;
@@ -154,7 +157,9 @@ public abstract class CheckerboardItem : ThumbnailView {
// (notify_membership_changed) and calculate when the collection's property settings
// are known
}
-
+
+ public bool has_tags { get; private set; }
+
public override string get_name() {
return (title != null) ? title.get_text() : base.get_name();
}
@@ -236,8 +241,58 @@ public abstract class CheckerboardItem : ThumbnailView {
recalc_size("set_comment_visible");
notify_view_altered();
}
-
-
+
+ public void set_tags(Gee.Collection<Tag>? tags,
+ Pango.Alignment alignment = Pango.Alignment.LEFT) {
+ has_tags = (tags != null && tags.size > 0);
+ tag_alignment = alignment;
+ string text;
+ if (has_tags) {
+ this.tags = tags;
+ user_visible_tag_list = Tag.make_user_visible_tag_list(tags);
+ text = Tag.make_tag_markup_string(user_visible_tag_list);
+ } else {
+ text = "<small>.</small>";
+ }
+
+ if (subtitle != null && subtitle.is_set_to(text, true, alignment))
+ return;
+ subtitle = new CheckerboardItemText(text, alignment, true);
+
+ if (subtitle_visible) {
+ recalc_size("set_subtitle");
+ notify_view_altered();
+ }
+ }
+
+ public void clear_tags() {
+ clear_subtitle();
+ has_tags = false;
+ user_visible_tag_list = null;
+ }
+
+ public void highlight_user_visible_tag(int index)
+ requires (user_visible_tag_list != null) {
+ string text = Tag.make_tag_markup_string(user_visible_tag_list, index);
+ subtitle = new CheckerboardItemText(text, tag_alignment, true);
+
+ if (subtitle_visible)
+ notify_view_altered();
+ }
+
+ public Tag get_user_visible_tag(int index)
+ requires (index >= 0 && index < user_visible_tag_list.size) {
+ return user_visible_tag_list.get(index);
+ }
+
+ public Pango.Layout? get_tag_list_layout() {
+ return has_tags ? subtitle.get_pango_layout() : null;
+ }
+
+ public Gdk.Rectangle get_subtitle_allocation() {
+ return subtitle.allocation;
+ }
+
public string get_subtitle() {
return (subtitle != null) ? subtitle.get_text() : "";
}
@@ -1182,7 +1237,68 @@ public class CheckerboardLayout : Gtk.DrawingArea {
return null;
}
-
+
+ public static int get_tag_index_at_pos(string tag_list, int pos) {
+ int sep_len = Tag.TAG_LIST_SEPARATOR_STRING.length;
+ assert (sep_len > 0);
+ int len = tag_list.length;
+ if (pos < 0 || pos >= len)
+ return -1;
+
+ // check if we're hovering on a separator
+ for (int i = 0; i < sep_len; ++i) {
+ if (tag_list[pos] == Tag.TAG_LIST_SEPARATOR_STRING[i] && pos >= i) {
+ if (tag_list.substring(pos - i, sep_len) == Tag.TAG_LIST_SEPARATOR_STRING)
+ return -1;
+ }
+ }
+
+ // Determine the tag index by counting the number of separators before
+ // the requested position. This only works if the separator string
+ // contains the delimiter used to delimit tags (i.e. the comma `,'.)
+ int index = 0;
+ for (int i = 0; i < pos; ++i) {
+ if (tag_list[i] == Tag.TAG_LIST_SEPARATOR_STRING[0] &&
+ i + sep_len <= len &&
+ tag_list.substring(i, sep_len) == Tag.TAG_LIST_SEPARATOR_STRING) {
+ ++index;
+ i += sep_len - 1;
+ }
+ }
+ return index;
+ }
+
+ private int internal_handle_tag_mouse_event(CheckerboardItem item, int x, int y) {
+ Pango.Layout? layout = item.get_tag_list_layout();
+ if (layout == null)
+ return -1;
+ Gdk.Rectangle rect = item.get_subtitle_allocation();
+ int index, trailing;
+ int px = (x - rect.x) * Pango.SCALE;
+ int py = (y - rect.y) * Pango.SCALE;
+ if (layout.xy_to_index(px, py, out index, out trailing))
+ return get_tag_index_at_pos(layout.get_text(), index);
+ return -1;
+ }
+
+ public bool handle_mouse_motion(CheckerboardItem item, int x, int y, Gdk.ModifierType mask) {
+ if (!item.has_tags || is_drag_select_active())
+ return false;
+ int tag_index = internal_handle_tag_mouse_event(item, x, y);
+ item.highlight_user_visible_tag(tag_index);
+ return (tag_index >= 0);
+ }
+
+ public bool handle_left_click(CheckerboardItem item, double xd, double yd, Gdk.ModifierType mask) {
+ int tag_index = internal_handle_tag_mouse_event(item, (int)Math.round(xd), (int)Math.round(yd));
+ if (tag_index >= 0) {
+ Tag tag = item.get_user_visible_tag(tag_index);
+ LibraryWindow.get_app().switch_to_tag(tag);
+ return true;
+ }
+ return false;
+ }
+
public Gee.List<CheckerboardItem> get_visible_items() {
return intersection(visible_page);
}
diff --git a/src/CollectionPage.c b/src/CollectionPage.c
new file mode 100644
index 0000000..a5b1c04
--- /dev/null
+++ b/src/CollectionPage.c
@@ -0,0 +1,7216 @@
+/* CollectionPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from CollectionPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <time.h>
+
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_COLLECTION_VIEW_MANAGER (collection_view_manager_get_type ())
+#define COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager))
+#define COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+#define IS_COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_VIEW_MANAGER))
+#define IS_COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_VIEW_MANAGER))
+#define COLLECTION_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+
+typedef struct _CollectionViewManager CollectionViewManager;
+typedef struct _CollectionViewManagerClass CollectionViewManagerClass;
+typedef struct _CollectionViewManagerPrivate CollectionViewManagerPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+
+#define TYPE_EXPORTER_UI (exporter_ui_get_type ())
+#define EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER_UI, ExporterUI))
+#define EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER_UI, ExporterUIClass))
+#define IS_EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER_UI))
+#define IS_EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER_UI))
+#define EXPORTER_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER_UI, ExporterUIClass))
+
+typedef struct _ExporterUI ExporterUI;
+typedef struct _ExporterUIClass ExporterUIClass;
+
+#define TYPE_DEFAULT_SEARCH_VIEW_FILTER (default_search_view_filter_get_type ())
+#define DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilter))
+#define DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define DEFAULT_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+
+typedef struct _DefaultSearchViewFilter DefaultSearchViewFilter;
+typedef struct _DefaultSearchViewFilterClass DefaultSearchViewFilterClass;
+
+#define COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER (collection_page_collection_search_view_filter_get_type ())
+#define COLLECTION_PAGE_COLLECTION_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, CollectionPageCollectionSearchViewFilter))
+#define COLLECTION_PAGE_COLLECTION_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, CollectionPageCollectionSearchViewFilterClass))
+#define COLLECTION_PAGE_IS_COLLECTION_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER))
+#define COLLECTION_PAGE_IS_COLLECTION_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER))
+#define COLLECTION_PAGE_COLLECTION_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, CollectionPageCollectionSearchViewFilterClass))
+
+typedef struct _CollectionPageCollectionSearchViewFilter CollectionPageCollectionSearchViewFilter;
+typedef struct _CollectionPageCollectionSearchViewFilterClass CollectionPageCollectionSearchViewFilterClass;
+#define _exporter_ui_unref0(var) ((var == NULL) ? NULL : (var = (exporter_ui_unref (var), NULL)))
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY (media_page_zoom_slider_assembly_get_type ())
+#define MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssembly))
+#define MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssemblyClass))
+#define MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY))
+#define MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY))
+#define MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssemblyClass))
+
+typedef struct _MediaPageZoomSliderAssembly MediaPageZoomSliderAssembly;
+typedef struct _MediaPageZoomSliderAssemblyClass MediaPageZoomSliderAssemblyClass;
+#define _injection_group_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_unref (var), NULL)))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_PRINT_MANAGER (print_manager_get_type ())
+#define PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRINT_MANAGER, PrintManager))
+#define PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRINT_MANAGER, PrintManagerClass))
+#define IS_PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRINT_MANAGER))
+#define IS_PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRINT_MANAGER))
+#define PRINT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRINT_MANAGER, PrintManagerClass))
+
+typedef struct _PrintManager PrintManager;
+typedef struct _PrintManagerClass PrintManagerClass;
+#define _print_manager_unref0(var) ((var == NULL) ? NULL : (var = (print_manager_unref (var), NULL)))
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+
+#define TYPE_THUMBNAIL (thumbnail_get_type ())
+#define THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL, Thumbnail))
+#define THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL, ThumbnailClass))
+#define IS_THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL))
+#define IS_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL))
+#define THUMBNAIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL, ThumbnailClass))
+
+typedef struct _Thumbnail Thumbnail;
+typedef struct _ThumbnailClass ThumbnailClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_EXPORTER (exporter_get_type ())
+#define EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER, Exporter))
+#define EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER, ExporterClass))
+#define IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER))
+#define IS_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER))
+#define EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER, ExporterClass))
+
+typedef struct _Exporter Exporter;
+typedef struct _ExporterClass ExporterClass;
+
+#define TYPE_EXPORT_DIALOG (export_dialog_get_type ())
+#define EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORT_DIALOG, ExportDialog))
+#define EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORT_DIALOG, ExportDialogClass))
+#define IS_EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORT_DIALOG))
+#define IS_EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORT_DIALOG))
+#define EXPORT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORT_DIALOG, ExportDialogClass))
+
+typedef struct _ExportDialog ExportDialog;
+typedef struct _ExportDialogClass ExportDialogClass;
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_MULTIPLE_DATA_SOURCE_COMMAND (multiple_data_source_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand))
+#define MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+
+typedef struct _MultipleDataSourceCommand MultipleDataSourceCommand;
+typedef struct _MultipleDataSourceCommandClass MultipleDataSourceCommandClass;
+
+#define TYPE_ROTATE_MULTIPLE_COMMAND (rotate_multiple_command_get_type ())
+#define ROTATE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommand))
+#define ROTATE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommandClass))
+#define IS_ROTATE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ROTATE_MULTIPLE_COMMAND))
+#define IS_ROTATE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ROTATE_MULTIPLE_COMMAND))
+#define ROTATE_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommandClass))
+
+typedef struct _RotateMultipleCommand RotateMultipleCommand;
+typedef struct _RotateMultipleCommandClass RotateMultipleCommandClass;
+
+#define TYPE_ROTATION (rotation_get_type ())
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND (multiple_photo_transformation_command_get_type ())
+#define MULTIPLE_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommand))
+#define MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommandClass))
+#define IS_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND))
+#define IS_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND))
+#define MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommandClass))
+
+typedef struct _MultiplePhotoTransformationCommand MultiplePhotoTransformationCommand;
+typedef struct _MultiplePhotoTransformationCommandClass MultiplePhotoTransformationCommandClass;
+
+#define TYPE_REVERT_MULTIPLE_COMMAND (revert_multiple_command_get_type ())
+#define REVERT_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REVERT_MULTIPLE_COMMAND, RevertMultipleCommand))
+#define REVERT_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REVERT_MULTIPLE_COMMAND, RevertMultipleCommandClass))
+#define IS_REVERT_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REVERT_MULTIPLE_COMMAND))
+#define IS_REVERT_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REVERT_MULTIPLE_COMMAND))
+#define REVERT_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REVERT_MULTIPLE_COMMAND, RevertMultipleCommandClass))
+
+typedef struct _RevertMultipleCommand RevertMultipleCommand;
+typedef struct _RevertMultipleCommandClass RevertMultipleCommandClass;
+
+#define TYPE_PIXEL_TRANSFORMATION_BUNDLE (pixel_transformation_bundle_get_type ())
+#define PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundle))
+#define PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define PIXEL_TRANSFORMATION_BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+
+typedef struct _PixelTransformationBundle PixelTransformationBundle;
+typedef struct _PixelTransformationBundleClass PixelTransformationBundleClass;
+#define _pixel_transformation_bundle_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_bundle_unref (var), NULL)))
+
+#define TYPE_ADJUST_COLORS_MULTIPLE_COMMAND (adjust_colors_multiple_command_get_type ())
+#define ADJUST_COLORS_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommand))
+#define ADJUST_COLORS_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommandClass))
+#define IS_ADJUST_COLORS_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND))
+#define IS_ADJUST_COLORS_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND))
+#define ADJUST_COLORS_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommandClass))
+
+typedef struct _AdjustColorsMultipleCommand AdjustColorsMultipleCommand;
+typedef struct _AdjustColorsMultipleCommandClass AdjustColorsMultipleCommandClass;
+
+#define TYPE_ENHANCE_MULTIPLE_COMMAND (enhance_multiple_command_get_type ())
+#define ENHANCE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENHANCE_MULTIPLE_COMMAND, EnhanceMultipleCommand))
+#define ENHANCE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENHANCE_MULTIPLE_COMMAND, EnhanceMultipleCommandClass))
+#define IS_ENHANCE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENHANCE_MULTIPLE_COMMAND))
+#define IS_ENHANCE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENHANCE_MULTIPLE_COMMAND))
+#define ENHANCE_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENHANCE_MULTIPLE_COMMAND, EnhanceMultipleCommandClass))
+
+typedef struct _EnhanceMultipleCommand EnhanceMultipleCommand;
+typedef struct _EnhanceMultipleCommandClass EnhanceMultipleCommandClass;
+
+#define TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND (duplicate_multiple_photos_command_get_type ())
+#define DUPLICATE_MULTIPLE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommand))
+#define DUPLICATE_MULTIPLE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommandClass))
+#define IS_DUPLICATE_MULTIPLE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND))
+#define IS_DUPLICATE_MULTIPLE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND))
+#define DUPLICATE_MULTIPLE_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommandClass))
+
+typedef struct _DuplicateMultiplePhotosCommand DuplicateMultiplePhotosCommand;
+typedef struct _DuplicateMultiplePhotosCommandClass DuplicateMultiplePhotosCommandClass;
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+
+#define TYPE_ADJUST_DATE_TIME_DIALOG (adjust_date_time_dialog_get_type ())
+#define ADJUST_DATE_TIME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialog))
+#define ADJUST_DATE_TIME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialogClass))
+#define IS_ADJUST_DATE_TIME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_DATE_TIME_DIALOG))
+#define IS_ADJUST_DATE_TIME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_DATE_TIME_DIALOG))
+#define ADJUST_DATE_TIME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialogClass))
+
+typedef struct _AdjustDateTimeDialog AdjustDateTimeDialog;
+typedef struct _AdjustDateTimeDialogClass AdjustDateTimeDialogClass;
+
+#define TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND (adjust_date_time_photos_command_get_type ())
+#define ADJUST_DATE_TIME_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommand))
+#define ADJUST_DATE_TIME_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommandClass))
+#define IS_ADJUST_DATE_TIME_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND))
+#define IS_ADJUST_DATE_TIME_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND))
+#define ADJUST_DATE_TIME_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommandClass))
+
+typedef struct _AdjustDateTimePhotosCommand AdjustDateTimePhotosCommand;
+typedef struct _AdjustDateTimePhotosCommandClass AdjustDateTimePhotosCommandClass;
+
+#define TYPE_SET_BACKGROUND_DIALOG (set_background_dialog_get_type ())
+#define SET_BACKGROUND_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog))
+#define SET_BACKGROUND_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialogClass))
+#define IS_SET_BACKGROUND_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_DIALOG))
+#define IS_SET_BACKGROUND_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_DIALOG))
+#define SET_BACKGROUND_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialogClass))
+
+typedef struct _SetBackgroundDialog SetBackgroundDialog;
+typedef struct _SetBackgroundDialogClass SetBackgroundDialogClass;
+
+#define TYPE_SET_BACKGROUND_PHOTO_DIALOG (set_background_photo_dialog_get_type ())
+#define SET_BACKGROUND_PHOTO_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialog))
+#define SET_BACKGROUND_PHOTO_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialogClass))
+#define IS_SET_BACKGROUND_PHOTO_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG))
+#define IS_SET_BACKGROUND_PHOTO_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_PHOTO_DIALOG))
+#define SET_BACKGROUND_PHOTO_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialogClass))
+
+typedef struct _SetBackgroundPhotoDialog SetBackgroundPhotoDialog;
+typedef struct _SetBackgroundPhotoDialogClass SetBackgroundPhotoDialogClass;
+#define _set_background_dialog_unref0(var) ((var == NULL) ? NULL : (var = (set_background_dialog_unref (var), NULL)))
+
+#define TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG (set_background_slideshow_dialog_get_type ())
+#define SET_BACKGROUND_SLIDESHOW_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialog))
+#define SET_BACKGROUND_SLIDESHOW_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialogClass))
+#define IS_SET_BACKGROUND_SLIDESHOW_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG))
+#define IS_SET_BACKGROUND_SLIDESHOW_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG))
+#define SET_BACKGROUND_SLIDESHOW_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialogClass))
+
+typedef struct _SetBackgroundSlideshowDialog SetBackgroundSlideshowDialog;
+typedef struct _SetBackgroundSlideshowDialogClass SetBackgroundSlideshowDialogClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+
+#define TYPE_SLIDESHOW_PAGE (slideshow_page_get_type ())
+#define SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPage))
+#define SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+#define IS_SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SLIDESHOW_PAGE))
+#define IS_SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SLIDESHOW_PAGE))
+#define SLIDESHOW_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+
+typedef struct _SlideshowPage SlideshowPage;
+typedef struct _SlideshowPageClass SlideshowPageClass;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _SearchViewFilterPrivate SearchViewFilterPrivate;
+typedef struct _DefaultSearchViewFilterPrivate DefaultSearchViewFilterPrivate;
+typedef struct _CollectionPageCollectionSearchViewFilterPrivate CollectionPageCollectionSearchViewFilterPrivate;
+
+#define TYPE_SEARCH_FILTER_CRITERIA (search_filter_criteria_get_type ())
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _CollectionViewManager {
+ ViewManager parent_instance;
+ CollectionViewManagerPrivate * priv;
+};
+
+struct _CollectionViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _CollectionViewManagerPrivate {
+ CollectionPage* page;
+};
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _CollectionPagePrivate {
+ ExporterUI* exporter;
+ CollectionPageCollectionSearchViewFilter* search_filter;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef void (*ExporterCompletionCallback) (Exporter* exporter, gboolean is_cancelled, void* user_data);
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef enum {
+ ROTATION_CLOCKWISE,
+ ROTATION_COUNTERCLOCKWISE,
+ ROTATION_MIRROR,
+ ROTATION_UPSIDE_DOWN
+} Rotation;
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _SearchViewFilter {
+ ViewFilter parent_instance;
+ SearchViewFilterPrivate * priv;
+};
+
+struct _SearchViewFilterClass {
+ ViewFilterClass parent_class;
+ guint (*get_criteria) (SearchViewFilter* self);
+};
+
+struct _DefaultSearchViewFilter {
+ SearchViewFilter parent_instance;
+ DefaultSearchViewFilterPrivate * priv;
+};
+
+struct _DefaultSearchViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+struct _CollectionPageCollectionSearchViewFilter {
+ DefaultSearchViewFilter parent_instance;
+ CollectionPageCollectionSearchViewFilterPrivate * priv;
+};
+
+struct _CollectionPageCollectionSearchViewFilterClass {
+ DefaultSearchViewFilterClass parent_class;
+};
+
+typedef enum {
+ SEARCH_FILTER_CRITERIA_NONE = 0,
+ SEARCH_FILTER_CRITERIA_RECURSIVE = 1 << 0,
+ SEARCH_FILTER_CRITERIA_TEXT = 1 << 1,
+ SEARCH_FILTER_CRITERIA_FLAG = 1 << 2,
+ SEARCH_FILTER_CRITERIA_MEDIA = 1 << 3,
+ SEARCH_FILTER_CRITERIA_RATING = 1 << 4,
+ SEARCH_FILTER_CRITERIA_SAVEDSEARCH = 1 << 5,
+ SEARCH_FILTER_CRITERIA_ALL = 0xFFFFFFFFLL
+} SearchFilterCriteria;
+
+
+static gpointer collection_view_manager_parent_class = NULL;
+static gpointer collection_page_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+static gpointer collection_page_collection_search_view_filter_parent_class = NULL;
+
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType collection_view_manager_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+#define COLLECTION_VIEW_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerPrivate))
+enum {
+ COLLECTION_VIEW_MANAGER_DUMMY_PROPERTY
+};
+CollectionViewManager* collection_view_manager_new (CollectionPage* page);
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page);
+ViewManager* view_manager_construct (GType object_type);
+static DataView* collection_view_manager_real_create_view (ViewManager* base, DataSource* source);
+DataView* media_page_create_thumbnail (MediaPage* self, DataSource* source);
+static void collection_view_manager_finalize (ViewManager* obj);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+gpointer exporter_ui_ref (gpointer instance);
+void exporter_ui_unref (gpointer instance);
+GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_exporter_ui (GValue* value, gpointer v_object);
+void value_take_exporter_ui (GValue* value, gpointer v_object);
+gpointer value_get_exporter_ui (const GValue* value);
+GType exporter_ui_get_type (void) G_GNUC_CONST;
+GType default_search_view_filter_get_type (void) G_GNUC_CONST;
+GType collection_page_collection_search_view_filter_get_type (void) G_GNUC_CONST;
+#define COLLECTION_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_COLLECTION_PAGE, CollectionPagePrivate))
+enum {
+ COLLECTION_PAGE_DUMMY_PROPERTY
+};
+CollectionPageCollectionSearchViewFilter* collection_page_collection_search_view_filter_new (void);
+CollectionPageCollectionSearchViewFilter* collection_page_collection_search_view_filter_construct (GType object_type);
+#define COLLECTION_PAGE_DESKTOP_SLIDESHOW_TRANSITION_SEC 2.0
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+MediaPage* media_page_construct (GType object_type, const gchar* page_name);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void collection_page_on_photos_altered (CollectionPage* self, GeeMap* altered);
+static void _collection_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path);
+void page_init_toolbar (Page* self, const gchar* path);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+static void collection_page_on_external_app_changed (CollectionPage* self);
+static void _collection_page_on_external_app_changed_configuration_facade_external_app_changed (ConfigurationFacade* _sender, gpointer self);
+static GtkToolbar* collection_page_real_get_toolbar (Page* base);
+GtkToolbar* page_get_toolbar (Page* self);
+GType media_page_zoom_slider_assembly_get_type (void) G_GNUC_CONST;
+MediaPageZoomSliderAssembly* media_page_create_zoom_slider_assembly (MediaPage* self);
+void media_page_connect_slider (MediaPage* self, MediaPageZoomSliderAssembly* slider);
+static InjectionGroup* collection_page_create_file_menu_injectables (void);
+InjectionGroup* injection_group_new (const gchar* path);
+InjectionGroup* injection_group_construct (GType object_type, const gchar* path);
+void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action);
+void injection_group_add_separator (InjectionGroup* self);
+static InjectionGroup* collection_page_create_edit_menu_injectables (void);
+static InjectionGroup* collection_page_create_view_menu_fullscreen_injectables (void);
+static InjectionGroup* collection_page_create_photos_menu_edits_injectables (void);
+static InjectionGroup* collection_page_create_photos_menu_date_injectables (void);
+static InjectionGroup* collection_page_create_photos_menu_externals_injectables (void);
+static void collection_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* collection_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define RESOURCES_PRINT_LABEL _ ("_Print")
+#define TRANSLATABLE "translatable"
+static void collection_page_on_print (CollectionPage* self);
+static void _collection_page_on_print_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PRINT_MENU _ ("_Print...")
+static void _vala_array_add171 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_PUBLISH "applications-internet"
+static void collection_page_on_publish (CollectionPage* self);
+static void _collection_page_on_publish_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PUBLISH_MENU _ ("Pu_blish...")
+#define RESOURCES_PUBLISH_TOOLTIP _ ("Publish to various websites")
+static void _vala_array_add172 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_CLOCKWISE "object-rotate-right"
+static void collection_page_on_rotate_clockwise (CollectionPage* self);
+static void _collection_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ROTATE_CW_MENU _ ("Rotate _Right")
+#define RESOURCES_ROTATE_CW_TOOLTIP _ ("Rotate the photos right (press Ctrl to rotate left)")
+static void _vala_array_add173 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_COUNTERCLOCKWISE "object-rotate-left"
+static void collection_page_on_rotate_counterclockwise (CollectionPage* self);
+static void _collection_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ROTATE_CCW_MENU _ ("Rotate _Left")
+#define RESOURCES_ROTATE_CCW_TOOLTIP _ ("Rotate the photos left")
+static void _vala_array_add174 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_HFLIP "object-flip-horizontal"
+static void collection_page_on_flip_horizontally (CollectionPage* self);
+static void _collection_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_HFLIP_MENU _ ("Flip Hori_zontally")
+static void _vala_array_add175 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_VFLIP "object-flip-vertical"
+static void collection_page_on_flip_vertically (CollectionPage* self);
+static void _collection_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_VFLIP_MENU _ ("Flip Verti_cally")
+static void _vala_array_add176 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ENHANCE "shotwell-auto-enhance"
+static void collection_page_on_enhance (CollectionPage* self);
+static void _collection_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ENHANCE_MENU _ ("_Enhance")
+#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo's appearance")
+static void _vala_array_add177 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void collection_page_on_copy_adjustments (CollectionPage* self);
+static void _collection_page_on_copy_adjustments_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_COPY_ADJUSTMENTS_MENU _ ("_Copy Color Adjustments")
+#define RESOURCES_COPY_ADJUSTMENTS_TOOLTIP _ ("Copy the color adjustments applied to the photo")
+static void _vala_array_add178 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void collection_page_on_paste_adjustments (CollectionPage* self);
+static void _collection_page_on_paste_adjustments_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PASTE_ADJUSTMENTS_MENU _ ("_Paste Color Adjustments")
+#define RESOURCES_PASTE_ADJUSTMENTS_TOOLTIP _ ("Apply copied color adjustments to the selected photos")
+static void _vala_array_add179 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void collection_page_on_revert (CollectionPage* self);
+static void _collection_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_REVERT_MENU _ ("Re_vert to Original")
+static void _vala_array_add180 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void collection_page_on_set_background (CollectionPage* self);
+static void _collection_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_SET_BACKGROUND_MENU _ ("Set as _Desktop Background")
+#define RESOURCES_SET_BACKGROUND_TOOLTIP _ ("Set selected image to be the new desktop background")
+static void _vala_array_add181 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void collection_page_on_duplicate_photo (CollectionPage* self);
+static void _collection_page_on_duplicate_photo_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_DUPLICATE_PHOTO_MENU _ ("_Duplicate")
+#define RESOURCES_DUPLICATE_PHOTO_TOOLTIP _ ("Make a duplicate of the photo")
+static void _vala_array_add182 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void collection_page_on_adjust_date_time (CollectionPage* self);
+static void _collection_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ADJUST_DATE_TIME_MENU _ ("_Adjust Date and Time...")
+static void _vala_array_add183 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_EDIT_LABEL _ ("_Edit")
+static void collection_page_on_external_edit (CollectionPage* self);
+static void _collection_page_on_external_edit_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EXTERNAL_EDIT_MENU _ ("Open With E_xternal Editor")
+static void _vala_array_add184 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void collection_page_on_external_edit_raw (CollectionPage* self);
+static void _collection_page_on_external_edit_raw_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EXTERNAL_EDIT_RAW_MENU _ ("Open With RA_W Editor")
+static void _vala_array_add185 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void collection_page_on_slideshow (CollectionPage* self);
+static void _collection_page_on_slideshow_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add186 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static InjectionGroup** collection_page_real_init_collect_injection_groups (Page* base, int* result_length1);
+InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1);
+static void _vala_array_add187 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add188 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add189 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add190 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add191 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add192 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static gboolean collection_page_selection_has_video (CollectionPage* self);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gboolean media_source_collection_has_video (GeeCollection* media);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+static gboolean collection_page_page_has_photo (CollectionPage* self);
+gboolean media_source_collection_has_photo (GeeCollection* media);
+GeeCollection* view_collection_get_sources (ViewCollection* self);
+static gboolean collection_page_selection_has_photo (CollectionPage* self);
+static void collection_page_real_init_actions (Page* base, gint selected_count, gint count);
+void page_init_actions (Page* self, gint selected_count, gint count);
+void page_set_action_short_label (Page* self, const gchar* name, const gchar* short_label);
+#define RESOURCES_ROTATE_CW_LABEL _ ("Rotate")
+#define RESOURCES_ROTATE_CCW_LABEL _ ("Rotate")
+#define RESOURCES_PUBLISH_LABEL _ ("Publish")
+void page_set_action_important (Page* self, const gchar* name, gboolean important);
+static void collection_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_update_actions (Page* self, gint selected_count, gint count);
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+DataSource* data_view_get_source (DataView* self);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void page_set_action_visible (Page* self, const gchar* name, gboolean visible);
+gboolean is_string_empty (const gchar* s);
+gchar* configuration_facade_get_external_photo_app (ConfigurationFacade* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+gchar* configuration_facade_get_external_raw_app (ConfigurationFacade* self);
+static gboolean collection_page_can_revert_selected (CollectionPage* self);
+gboolean photo_has_color_adjustments (Photo* self);
+gboolean pixel_transformation_bundle_has_copied_color_adjustments (void);
+GtkAction* page_get_action (Page* self, const gchar* name);
+#define RESOURCES_SET_BACKGROUND_SLIDESHOW_MENU _ ("Set as _Desktop Slideshow...")
+gboolean data_view_is_selected (DataView* self);
+gboolean alteration_has_subject (Alteration* self, const gchar* subject);
+GType library_photo_get_type (void) G_GNUC_CONST;
+gint view_collection_get_selected_count (ViewCollection* self);
+gpointer print_manager_ref (gpointer instance);
+void print_manager_unref (gpointer instance);
+GParamSpec* param_spec_print_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_print_manager (GValue* value, gpointer v_object);
+void value_take_print_manager (GValue* value, gpointer v_object);
+gpointer value_get_print_manager (const GValue* value);
+GType print_manager_get_type (void) G_GNUC_CONST;
+PrintManager* print_manager_get_instance (void);
+void print_manager_spool_photo (PrintManager* self, GeeCollection* to_print);
+GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t);
+static void collection_page_real_on_item_activated (CheckerboardPage* base, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+GType media_source_item_get_type (void) G_GNUC_CONST;
+GType thumbnail_get_type (void) G_GNUC_CONST;
+MediaSource* thumbnail_get_media_source (Thumbnail* self);
+void media_page_on_play_video (MediaPage* self);
+gchar* data_object_to_string (DataObject* self);
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_switch_to_photo_page (LibraryWindow* self, CollectionPage* controller, Photo* current);
+static gboolean collection_page_real_on_app_key_pressed (Page* base, GdkEventKey* event);
+void page_activate_action (Page* self, const gchar* name);
+gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event);
+static void collection_page_real_on_export (MediaPage* base);
+GType exporter_get_type (void) G_GNUC_CONST;
+ExporterUI* video_export_many (GeeCollection* videos, ExporterCompletionCallback done, void* done_target, gboolean export_in_place);
+static void collection_page_on_export_completed (CollectionPage* self);
+static void _collection_page_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self);
+GType export_dialog_get_type (void) G_GNUC_CONST;
+ExportDialog* export_dialog_new (const gchar* title);
+ExportDialog* export_dialog_construct (GType object_type, const gchar* title);
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+void export_format_parameters_current (ExportFormatParameters* result);
+void export_format_parameters_last (ExportFormatParameters* result);
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+gboolean export_dialog_execute (ExportDialog* self, gint* scale, ScaleConstraint* constraint, ExportFormatParameters* parameters);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void scaling_for_constraint (ScaleConstraint constraint, gint scale, gboolean scale_up, Scaling* result);
+GFile* export_ui_choose_file (const gchar* current_file_basename);
+gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params);
+AppWindow* app_window_get_instance (void);
+void page_window_set_busy_cursor (PageWindow* self);
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error);
+PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params);
+void page_window_set_normal_cursor (PageWindow* self);
+GtkResponseType export_error_dialog (GFile* dest, gboolean photos_remaining);
+GFile* export_ui_choose_dir (const gchar* user_title);
+Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+ExporterUI* exporter_ui_new (Exporter* exporter);
+ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter);
+void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target);
+gboolean photo_has_transformations (Photo* self);
+gboolean photo_has_editable (Photo* self);
+static gboolean collection_page_can_revert_editable_selected (CollectionPage* self);
+GType command_get_type (void) G_GNUC_CONST;
+GType page_command_get_type (void) G_GNUC_CONST;
+GType multiple_data_source_command_get_type (void) G_GNUC_CONST;
+GType rotate_multiple_command_get_type (void) G_GNUC_CONST;
+GeeList* view_collection_get_selected (ViewCollection* self);
+GType rotation_get_type (void) G_GNUC_CONST;
+#define RESOURCES_ROTATE_CW_FULL_LABEL _ ("Rotate Right")
+RotateMultipleCommand* rotate_multiple_command_new (GeeIterable* iter, Rotation rotation, const gchar* name, const gchar* explanation, const gchar* progress_text, const gchar* undo_progress_text);
+RotateMultipleCommand* rotate_multiple_command_construct (GType object_type, GeeIterable* iter, Rotation rotation, const gchar* name, const gchar* explanation, const gchar* progress_text, const gchar* undo_progress_text);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+void command_manager_execute (CommandManager* self, Command* command);
+void publishing_ui_publishing_dialog_go (GeeCollection* to_publish);
+#define RESOURCES_ROTATE_CCW_FULL_LABEL _ ("Rotate Left")
+#define RESOURCES_HFLIP_LABEL _ ("Flip Horizontally")
+#define RESOURCES_VFLIP_LABEL _ ("Flip Vertically")
+gboolean revert_editable_dialog (GtkWindow* owner, GeeCollection* photos);
+void photo_revert_to_master (Photo* self, gboolean notify);
+GType multiple_photo_transformation_command_get_type (void) G_GNUC_CONST;
+GType revert_multiple_command_get_type (void) G_GNUC_CONST;
+RevertMultipleCommand* revert_multiple_command_new (GeeIterable* iter);
+RevertMultipleCommand* revert_multiple_command_construct (GType object_type, GeeIterable* iter);
+gpointer pixel_transformation_bundle_ref (gpointer instance);
+void pixel_transformation_bundle_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation_bundle (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation_bundle (GValue* value, gpointer v_object);
+void value_take_pixel_transformation_bundle (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation_bundle (const GValue* value);
+GType pixel_transformation_bundle_get_type (void) G_GNUC_CONST;
+void pixel_transformation_bundle_set_copied_color_adjustments (PixelTransformationBundle* adjustments);
+PixelTransformationBundle* photo_get_color_adjustments (Photo* self);
+PixelTransformationBundle* pixel_transformation_bundle_get_copied_color_adjustments (void);
+GType adjust_colors_multiple_command_get_type (void) G_GNUC_CONST;
+#define RESOURCES_PASTE_ADJUSTMENTS_LABEL _ ("Paste Color Adjustments")
+AdjustColorsMultipleCommand* adjust_colors_multiple_command_new (GeeIterable* iter, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+AdjustColorsMultipleCommand* adjust_colors_multiple_command_construct (GType object_type, GeeIterable* iter, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+GType enhance_multiple_command_get_type (void) G_GNUC_CONST;
+EnhanceMultipleCommand* enhance_multiple_command_new (GeeIterable* iter);
+EnhanceMultipleCommand* enhance_multiple_command_construct (GType object_type, GeeIterable* iter);
+GType duplicate_multiple_photos_command_get_type (void) G_GNUC_CONST;
+DuplicateMultiplePhotosCommand* duplicate_multiple_photos_command_new (GeeIterable* iter);
+DuplicateMultiplePhotosCommand* duplicate_multiple_photos_command_construct (GType object_type, GeeIterable* iter);
+GType dateable_get_type (void) G_GNUC_CONST;
+GType adjust_date_time_dialog_get_type (void) G_GNUC_CONST;
+AdjustDateTimeDialog* adjust_date_time_dialog_new (Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video);
+AdjustDateTimeDialog* adjust_date_time_dialog_construct (GType object_type, Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video);
+gboolean adjust_date_time_dialog_execute (AdjustDateTimeDialog* self, gint64* time_shift, gboolean* keep_relativity, gboolean* modify_originals);
+GType adjust_date_time_photos_command_get_type (void) G_GNUC_CONST;
+AdjustDateTimePhotosCommand* adjust_date_time_photos_command_new (GeeIterable* iter, gint64 time_shift, gboolean keep_relativity, gboolean modify_originals);
+AdjustDateTimePhotosCommand* adjust_date_time_photos_command_construct (GType object_type, GeeIterable* iter, gint64 time_shift, gboolean keep_relativity, gboolean modify_originals);
+void photo_open_with_external_editor (Photo* self, GError** error);
+void open_external_editor_error_dialog (GError* err, Photo* photo);
+void photo_open_with_raw_external_editor (Photo* self, GError** error);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gchar* resources_launch_editor_failed (GError* err);
+void media_source_collection_filter_media (GeeCollection* media, GeeCollection* photos, GeeCollection* videos);
+gpointer set_background_dialog_ref (gpointer instance);
+void set_background_dialog_unref (gpointer instance);
+GParamSpec* param_spec_set_background_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_set_background_dialog (GValue* value, gpointer v_object);
+void value_take_set_background_dialog (GValue* value, gpointer v_object);
+gpointer value_get_set_background_dialog (const GValue* value);
+GType set_background_dialog_get_type (void) G_GNUC_CONST;
+GType set_background_photo_dialog_get_type (void) G_GNUC_CONST;
+SetBackgroundPhotoDialog* set_background_photo_dialog_new (void);
+SetBackgroundPhotoDialog* set_background_photo_dialog_construct (GType object_type);
+gboolean set_background_photo_dialog_execute (SetBackgroundPhotoDialog* self, gboolean* desktop_background, gboolean* screensaver);
+void desktop_integration_set_background (Photo* photo, gboolean desktop, gboolean screensaver);
+GType set_background_slideshow_dialog_get_type (void) G_GNUC_CONST;
+SetBackgroundSlideshowDialog* set_background_slideshow_dialog_new (void);
+SetBackgroundSlideshowDialog* set_background_slideshow_dialog_construct (GType object_type);
+gboolean set_background_slideshow_dialog_execute (SetBackgroundSlideshowDialog* self, gint* delay_value, gboolean* desktop_background, gboolean* screensaver);
+void desktop_integration_set_background_slideshow (GeeCollection* photos, gdouble duration, gdouble transition, gboolean desktop_background, gboolean screensaver);
+gint data_collection_get_count (DataCollection* self);
+GeeList* view_collection_get_sources_of_type (ViewCollection* self, GType t);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+void app_window_go_fullscreen (AppWindow* self, Page* page);
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+SlideshowPage* slideshow_page_new (SourceCollection* sources, ViewCollection* controller, Photo* start);
+SlideshowPage* slideshow_page_construct (GType object_type, SourceCollection* sources, ViewCollection* controller, Photo* start);
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType slideshow_page_get_type (void) G_GNUC_CONST;
+static gboolean collection_page_real_on_ctrl_pressed (Page* base, GdkEventKey* event);
+gboolean page_on_ctrl_pressed (Page* self, GdkEventKey* event);
+static gboolean collection_page_real_on_ctrl_released (Page* base, GdkEventKey* event);
+gboolean page_on_ctrl_released (Page* self, GdkEventKey* event);
+static SearchViewFilter* collection_page_real_get_search_view_filter (CheckerboardPage* base);
+enum {
+ COLLECTION_PAGE_COLLECTION_SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+static guint collection_page_collection_search_view_filter_real_get_criteria (SearchViewFilter* base);
+GType search_filter_criteria_get_type (void) G_GNUC_CONST;
+DefaultSearchViewFilter* default_search_view_filter_construct (GType object_type);
+static void collection_page_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 11 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1451 "CollectionPage.c"
+}
+
+
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page) {
+ CollectionViewManager* self = NULL;
+ CollectionPage* _tmp0_ = NULL;
+ CollectionPage* _tmp1_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (page), NULL);
+#line 10 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = (CollectionViewManager*) view_manager_construct (object_type);
+#line 11 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page;
+#line 11 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 11 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (self->priv->page);
+#line 11 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv->page = _tmp1_;
+#line 10 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return self;
+#line 1473 "CollectionPage.c"
+}
+
+
+CollectionViewManager* collection_view_manager_new (CollectionPage* page) {
+#line 10 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return collection_view_manager_construct (TYPE_COLLECTION_VIEW_MANAGER, page);
+#line 1480 "CollectionPage.c"
+}
+
+
+static DataView* collection_view_manager_real_create_view (ViewManager* base, DataSource* source) {
+ CollectionViewManager * self;
+ DataView* result = NULL;
+ CollectionPage* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager);
+#line 14 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 15 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = self->priv->page;
+#line 15 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = source;
+#line 15 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = media_page_create_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_PAGE, MediaPage), _tmp1_);
+#line 15 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp2_;
+#line 15 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1504 "CollectionPage.c"
+}
+
+
+static void collection_view_manager_class_init (CollectionViewManagerClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((ViewManagerClass *) klass)->finalize = collection_view_manager_finalize;
+#line 7 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_type_class_add_private (klass, sizeof (CollectionViewManagerPrivate));
+#line 7 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((ViewManagerClass *) klass)->create_view = collection_view_manager_real_create_view;
+#line 1517 "CollectionPage.c"
+}
+
+
+static void collection_view_manager_instance_init (CollectionViewManager * self) {
+#line 7 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv = COLLECTION_VIEW_MANAGER_GET_PRIVATE (self);
+#line 1524 "CollectionPage.c"
+}
+
+
+static void collection_view_manager_finalize (ViewManager* obj) {
+ CollectionViewManager * self;
+#line 7 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager);
+#line 8 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (self->priv->page);
+#line 7 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ VIEW_MANAGER_CLASS (collection_view_manager_parent_class)->finalize (obj);
+#line 1536 "CollectionPage.c"
+}
+
+
+GType collection_view_manager_get_type (void) {
+ static volatile gsize collection_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&collection_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CollectionViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) collection_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CollectionViewManager), 0, (GInstanceInitFunc) collection_view_manager_instance_init, NULL };
+ GType collection_view_manager_type_id;
+ collection_view_manager_type_id = g_type_register_static (TYPE_VIEW_MANAGER, "CollectionViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&collection_view_manager_type_id__volatile, collection_view_manager_type_id);
+ }
+ return collection_view_manager_type_id__volatile;
+}
+
+
+static void _collection_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 35 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_photos_altered ((CollectionPage*) self, items);
+#line 1555 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_external_app_changed_configuration_facade_external_app_changed (ConfigurationFacade* _sender, gpointer self) {
+#line 43 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_external_app_changed ((CollectionPage*) self);
+#line 1562 "CollectionPage.c"
+}
+
+
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name) {
+ CollectionPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (page_name != NULL, NULL);
+#line 33 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_name;
+#line 33 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = (CollectionPage*) media_page_construct (object_type, _tmp0_);
+#line 35 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 35 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = _tmp1_;
+#line 35 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _collection_page_on_photos_altered_data_collection_items_altered, self, 0);
+#line 35 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 37 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ checkerboard_page_init_item_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/CollectionContextMenu");
+#line 38 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_init_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "/CollectionToolbar");
+#line 40 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 43 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 43 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = _tmp3_;
+#line 43 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), "external-app-changed", (GCallback) _collection_page_on_external_app_changed_configuration_facade_external_app_changed, self, 0);
+#line 43 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 32 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return self;
+#line 1603 "CollectionPage.c"
+}
+
+
+static GtkToolbar* collection_page_real_get_toolbar (Page* base) {
+ CollectionPage * self;
+ GtkToolbar* result = NULL;
+ GtkToolbar* _tmp0_ = NULL;
+ GtkToolbar* _tmp20_ = NULL;
+ GtkToolbar* _tmp21_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 47 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 47 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp0_ == NULL) {
+#line 1619 "CollectionPage.c"
+ GtkToolbar* _tmp1_ = NULL;
+ GtkToolbar* _tmp2_ = NULL;
+ GtkSeparatorToolItem* separator = NULL;
+ GtkSeparatorToolItem* _tmp3_ = NULL;
+ GtkSeparatorToolItem* _tmp4_ = NULL;
+ GtkSeparatorToolItem* _tmp5_ = NULL;
+ GtkToolbar* _tmp6_ = NULL;
+ GtkToolbar* _tmp7_ = NULL;
+ GtkSeparatorToolItem* _tmp8_ = NULL;
+ GtkSeparatorToolItem* drawn_separator = NULL;
+ GtkSeparatorToolItem* _tmp9_ = NULL;
+ GtkSeparatorToolItem* _tmp10_ = NULL;
+ GtkSeparatorToolItem* _tmp11_ = NULL;
+ GtkToolbar* _tmp12_ = NULL;
+ GtkToolbar* _tmp13_ = NULL;
+ GtkSeparatorToolItem* _tmp14_ = NULL;
+ MediaPageZoomSliderAssembly* zoom_slider_assembly = NULL;
+ MediaPageZoomSliderAssembly* _tmp15_ = NULL;
+ MediaPageZoomSliderAssembly* _tmp16_ = NULL;
+ GtkToolbar* _tmp17_ = NULL;
+ GtkToolbar* _tmp18_ = NULL;
+ MediaPageZoomSliderAssembly* _tmp19_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = PAGE_CLASS (collection_page_parent_class)->get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page));
+#line 48 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 51 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 51 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_object_ref_sink (_tmp3_);
+#line 51 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ separator = _tmp3_;
+#line 52 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = separator;
+#line 52 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_tool_item_set_expand (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 53 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = separator;
+#line 53 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_separator_tool_item_set_draw (_tmp5_, FALSE);
+#line 54 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 54 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 54 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = separator;
+#line 54 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_toolbar_insert (_tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 54 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 56 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 56 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_object_ref_sink (_tmp9_);
+#line 56 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ drawn_separator = _tmp9_;
+#line 57 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = drawn_separator;
+#line 57 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_tool_item_set_expand (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_tool_item_get_type (), GtkToolItem), FALSE);
+#line 58 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = drawn_separator;
+#line 58 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_separator_tool_item_set_draw (_tmp11_, TRUE);
+#line 60 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 60 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 60 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = drawn_separator;
+#line 60 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_toolbar_insert (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 60 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp13_);
+#line 63 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = media_page_create_zoom_slider_assembly (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage));
+#line 63 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ zoom_slider_assembly = _tmp15_;
+#line 64 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = zoom_slider_assembly;
+#line 64 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ media_page_connect_slider (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), _tmp16_);
+#line 65 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 65 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = _tmp17_;
+#line 65 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = zoom_slider_assembly;
+#line 65 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_toolbar_insert (_tmp18_, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 65 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 47 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (zoom_slider_assembly);
+#line 47 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (drawn_separator);
+#line 47 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (separator);
+#line 1720 "CollectionPage.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 68 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 68 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp21_;
+#line 68 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1730 "CollectionPage.c"
+}
+
+
+static InjectionGroup* collection_page_create_file_menu_injectables (void) {
+ InjectionGroup* result = NULL;
+ InjectionGroup* group = NULL;
+ InjectionGroup* _tmp0_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = injection_group_new ("/MenuBar/FileMenu/FileExtrasPlaceholder");
+#line 72 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ group = _tmp0_;
+#line 74 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "Print", NULL);
+#line 75 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_separator (group);
+#line 76 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "Publish", NULL);
+#line 77 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "SendTo", NULL);
+#line 78 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "SetBackground", NULL);
+#line 80 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = group;
+#line 80 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1756 "CollectionPage.c"
+}
+
+
+static InjectionGroup* collection_page_create_edit_menu_injectables (void) {
+ InjectionGroup* result = NULL;
+ InjectionGroup* group = NULL;
+ InjectionGroup* _tmp0_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = injection_group_new ("/MenuBar/EditMenu/EditExtrasPlaceholder");
+#line 84 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ group = _tmp0_;
+#line 86 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "Duplicate", NULL);
+#line 88 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = group;
+#line 88 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1774 "CollectionPage.c"
+}
+
+
+static InjectionGroup* collection_page_create_view_menu_fullscreen_injectables (void) {
+ InjectionGroup* result = NULL;
+ InjectionGroup* group = NULL;
+ InjectionGroup* _tmp0_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = injection_group_new ("/MenuBar/ViewMenu/ViewExtrasFullscreenSlideshowPlaceholder");
+#line 92 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ group = _tmp0_;
+#line 94 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "Fullscreen", "CommonFullscreen");
+#line 95 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_separator (group);
+#line 96 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "Slideshow", NULL);
+#line 98 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = group;
+#line 98 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1796 "CollectionPage.c"
+}
+
+
+static InjectionGroup* collection_page_create_photos_menu_edits_injectables (void) {
+ InjectionGroup* result = NULL;
+ InjectionGroup* group = NULL;
+ InjectionGroup* _tmp0_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = injection_group_new ("/MenuBar/PhotosMenu/PhotosExtrasEditsPlaceholder");
+#line 102 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ group = _tmp0_;
+#line 104 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "RotateClockwise", NULL);
+#line 105 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "RotateCounterclockwise", NULL);
+#line 106 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "FlipHorizontally", NULL);
+#line 107 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "FlipVertically", NULL);
+#line 108 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_separator (group);
+#line 109 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "Enhance", NULL);
+#line 110 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "Revert", NULL);
+#line 111 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_separator (group);
+#line 112 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "CopyColorAdjustments", NULL);
+#line 113 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "PasteColorAdjustments", NULL);
+#line 115 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = group;
+#line 115 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1832 "CollectionPage.c"
+}
+
+
+static InjectionGroup* collection_page_create_photos_menu_date_injectables (void) {
+ InjectionGroup* result = NULL;
+ InjectionGroup* group = NULL;
+ InjectionGroup* _tmp0_ = NULL;
+#line 119 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = injection_group_new ("/MenuBar/PhotosMenu/PhotosExtrasDateTimePlaceholder");
+#line 119 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ group = _tmp0_;
+#line 121 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "AdjustDateTime", NULL);
+#line 123 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = group;
+#line 123 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1850 "CollectionPage.c"
+}
+
+
+static InjectionGroup* collection_page_create_photos_menu_externals_injectables (void) {
+ InjectionGroup* result = NULL;
+ InjectionGroup* group = NULL;
+ InjectionGroup* _tmp0_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = injection_group_new ("/MenuBar/PhotosMenu/PhotosExtrasExternalsPlaceholder");
+#line 127 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ group = _tmp0_;
+#line 129 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "ExternalEdit", NULL);
+#line 130 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "ExternalEditRAW", NULL);
+#line 131 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ injection_group_add_menu_item (group, "PlayVideo", NULL);
+#line 133 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = group;
+#line 133 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 1872 "CollectionPage.c"
+}
+
+
+static void collection_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ CollectionPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 136 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 136 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 137 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = ui_filenames;
+#line 137 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ PAGE_CLASS (collection_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), _tmp0_);
+#line 139 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = ui_filenames;
+#line 139 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "collection.ui");
+#line 1892 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_print_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_print ((CollectionPage*) self);
+#line 1899 "CollectionPage.c"
+}
+
+
+static void _vala_array_add171 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1910 "CollectionPage.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1914 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_publish_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_publish ((CollectionPage*) self);
+#line 1921 "CollectionPage.c"
+}
+
+
+static void _vala_array_add172 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1932 "CollectionPage.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1936 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_rotate_clockwise ((CollectionPage*) self);
+#line 1943 "CollectionPage.c"
+}
+
+
+static void _vala_array_add173 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1954 "CollectionPage.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1958 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_rotate_counterclockwise ((CollectionPage*) self);
+#line 1965 "CollectionPage.c"
+}
+
+
+static void _vala_array_add174 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1976 "CollectionPage.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1980 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_flip_horizontally ((CollectionPage*) self);
+#line 1987 "CollectionPage.c"
+}
+
+
+static void _vala_array_add175 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1998 "CollectionPage.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2002 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_flip_vertically ((CollectionPage*) self);
+#line 2009 "CollectionPage.c"
+}
+
+
+static void _vala_array_add176 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2020 "CollectionPage.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2024 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_enhance ((CollectionPage*) self);
+#line 2031 "CollectionPage.c"
+}
+
+
+static void _vala_array_add177 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2042 "CollectionPage.c"
+ }
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2046 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_copy_adjustments_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_copy_adjustments ((CollectionPage*) self);
+#line 2053 "CollectionPage.c"
+}
+
+
+static void _vala_array_add178 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2064 "CollectionPage.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2068 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_paste_adjustments_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_paste_adjustments ((CollectionPage*) self);
+#line 2075 "CollectionPage.c"
+}
+
+
+static void _vala_array_add179 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2086 "CollectionPage.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2090 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_revert ((CollectionPage*) self);
+#line 2097 "CollectionPage.c"
+}
+
+
+static void _vala_array_add180 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2108 "CollectionPage.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2112 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_set_background ((CollectionPage*) self);
+#line 2119 "CollectionPage.c"
+}
+
+
+static void _vala_array_add181 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2130 "CollectionPage.c"
+ }
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2134 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_duplicate_photo_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_duplicate_photo ((CollectionPage*) self);
+#line 2141 "CollectionPage.c"
+}
+
+
+static void _vala_array_add182 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2152 "CollectionPage.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2156 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_adjust_date_time ((CollectionPage*) self);
+#line 2163 "CollectionPage.c"
+}
+
+
+static void _vala_array_add183 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2174 "CollectionPage.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2178 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_external_edit_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_external_edit ((CollectionPage*) self);
+#line 2185 "CollectionPage.c"
+}
+
+
+static void _vala_array_add184 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2196 "CollectionPage.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2200 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_external_edit_raw_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_external_edit_raw ((CollectionPage*) self);
+#line 2207 "CollectionPage.c"
+}
+
+
+static void _vala_array_add185 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2218 "CollectionPage.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2222 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_slideshow_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_slideshow ((CollectionPage*) self);
+#line 2229 "CollectionPage.c"
+}
+
+
+static void _vala_array_add186 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2240 "CollectionPage.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2244 "CollectionPage.c"
+}
+
+
+static GtkActionEntry* collection_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ CollectionPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry print = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry publish = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry rotate_right = {0};
+ GtkActionEntry _tmp8_ = {0};
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry rotate_left = {0};
+ GtkActionEntry _tmp11_ = {0};
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkActionEntry _tmp13_ = {0};
+ GtkActionEntry hflip = {0};
+ GtkActionEntry _tmp14_ = {0};
+ GtkActionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GtkActionEntry _tmp16_ = {0};
+ GtkActionEntry vflip = {0};
+ GtkActionEntry _tmp17_ = {0};
+ GtkActionEntry* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ GtkActionEntry _tmp19_ = {0};
+ GtkActionEntry enhance = {0};
+ GtkActionEntry _tmp20_ = {0};
+ GtkActionEntry* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GtkActionEntry _tmp22_ = {0};
+ GtkActionEntry copy_adjustments = {0};
+ GtkActionEntry _tmp23_ = {0};
+ GtkActionEntry* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ GtkActionEntry _tmp25_ = {0};
+ GtkActionEntry paste_adjustments = {0};
+ GtkActionEntry _tmp26_ = {0};
+ GtkActionEntry* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ GtkActionEntry _tmp28_ = {0};
+ GtkActionEntry revert = {0};
+ GtkActionEntry _tmp29_ = {0};
+ GtkActionEntry* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ GtkActionEntry _tmp31_ = {0};
+ GtkActionEntry set_background = {0};
+ GtkActionEntry _tmp32_ = {0};
+ GtkActionEntry* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ GtkActionEntry _tmp34_ = {0};
+ GtkActionEntry duplicate = {0};
+ GtkActionEntry _tmp35_ = {0};
+ GtkActionEntry* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ GtkActionEntry _tmp37_ = {0};
+ GtkActionEntry adjust_date_time = {0};
+ GtkActionEntry _tmp38_ = {0};
+ GtkActionEntry* _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ GtkActionEntry _tmp40_ = {0};
+ GtkActionEntry external_edit = {0};
+ GtkActionEntry _tmp41_ = {0};
+ GtkActionEntry* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ GtkActionEntry _tmp43_ = {0};
+ GtkActionEntry edit_raw = {0};
+ GtkActionEntry _tmp44_ = {0};
+ GtkActionEntry* _tmp45_ = NULL;
+ gint _tmp45__length1 = 0;
+ GtkActionEntry _tmp46_ = {0};
+ GtkActionEntry slideshow = {0};
+ GtkActionEntry _tmp47_ = {0};
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ GtkActionEntry* _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ GtkActionEntry _tmp51_ = {0};
+ GtkActionEntry* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+#line 142 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 143 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = PAGE_CLASS (collection_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), &_tmp0_);
+#line 143 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ actions = _tmp1_;
+#line 143 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ actions_length1 = _tmp0_;
+#line 143 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _actions_size_ = actions_length1;
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_.name = "Print";
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_.stock_id = RESOURCES_PRINT_LABEL;
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_.accelerator = "<Ctrl>P";
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_.callback = (GCallback) _collection_page_on_print_gtk_action_callback;
+#line 145 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ print = _tmp2_;
+#line 147 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ print.label = RESOURCES_PRINT_MENU;
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = actions;
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3__length1 = actions_length1;
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = print;
+#line 148 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add171 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_.name = "Publish";
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_.stock_id = RESOURCES_PUBLISH;
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_.accelerator = "<Ctrl><Shift>P";
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_.callback = (GCallback) _collection_page_on_publish_gtk_action_callback;
+#line 150 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ publish = _tmp5_;
+#line 152 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ publish.label = RESOURCES_PUBLISH_MENU;
+#line 153 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ publish.tooltip = RESOURCES_PUBLISH_TOOLTIP;
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = actions;
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6__length1 = actions_length1;
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = publish;
+#line 154 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add172 (&actions, &actions_length1, &_actions_size_, &_tmp7_);
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_.name = "RotateClockwise";
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_.stock_id = RESOURCES_CLOCKWISE;
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_.accelerator = "<Ctrl>R";
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_.tooltip = TRANSLATABLE;
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_.callback = (GCallback) _collection_page_on_rotate_clockwise_gtk_action_callback;
+#line 156 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_right = _tmp8_;
+#line 158 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_right.label = RESOURCES_ROTATE_CW_MENU;
+#line 159 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_right.tooltip = RESOURCES_ROTATE_CW_TOOLTIP;
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = actions;
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9__length1 = actions_length1;
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = rotate_right;
+#line 160 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add173 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_.name = "RotateCounterclockwise";
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_.stock_id = RESOURCES_COUNTERCLOCKWISE;
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_.label = TRANSLATABLE;
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_.accelerator = "<Ctrl><Shift>R";
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_.tooltip = TRANSLATABLE;
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_.callback = (GCallback) _collection_page_on_rotate_counterclockwise_gtk_action_callback;
+#line 162 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_left = _tmp11_;
+#line 164 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_left.label = RESOURCES_ROTATE_CCW_MENU;
+#line 165 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_left.tooltip = RESOURCES_ROTATE_CCW_TOOLTIP;
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = actions;
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12__length1 = actions_length1;
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = rotate_left;
+#line 166 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add174 (&actions, &actions_length1, &_actions_size_, &_tmp13_);
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_.name = "FlipHorizontally";
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_.stock_id = RESOURCES_HFLIP;
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_.label = TRANSLATABLE;
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_.accelerator = NULL;
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_.tooltip = TRANSLATABLE;
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_.callback = (GCallback) _collection_page_on_flip_horizontally_gtk_action_callback;
+#line 168 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ hflip = _tmp14_;
+#line 170 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ hflip.label = RESOURCES_HFLIP_MENU;
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = actions;
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15__length1 = actions_length1;
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = hflip;
+#line 171 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add175 (&actions, &actions_length1, &_actions_size_, &_tmp16_);
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_.name = "FlipVertically";
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_.stock_id = RESOURCES_VFLIP;
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_.label = TRANSLATABLE;
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_.accelerator = NULL;
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_.tooltip = TRANSLATABLE;
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_.callback = (GCallback) _collection_page_on_flip_vertically_gtk_action_callback;
+#line 173 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ vflip = _tmp17_;
+#line 175 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ vflip.label = RESOURCES_VFLIP_MENU;
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = actions;
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18__length1 = actions_length1;
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = vflip;
+#line 176 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add176 (&actions, &actions_length1, &_actions_size_, &_tmp19_);
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_.name = "Enhance";
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_.stock_id = RESOURCES_ENHANCE;
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_.label = TRANSLATABLE;
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_.accelerator = "<Ctrl>E";
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_.tooltip = TRANSLATABLE;
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_.callback = (GCallback) _collection_page_on_enhance_gtk_action_callback;
+#line 178 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ enhance = _tmp20_;
+#line 180 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ enhance.label = RESOURCES_ENHANCE_MENU;
+#line 181 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ enhance.tooltip = RESOURCES_ENHANCE_TOOLTIP;
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = actions;
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21__length1 = actions_length1;
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = enhance;
+#line 182 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add177 (&actions, &actions_length1, &_actions_size_, &_tmp22_);
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_.name = "CopyColorAdjustments";
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_.stock_id = NULL;
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_.label = TRANSLATABLE;
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_.accelerator = "<Ctrl><Shift>C";
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_.tooltip = TRANSLATABLE;
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_.callback = (GCallback) _collection_page_on_copy_adjustments_gtk_action_callback;
+#line 184 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ copy_adjustments = _tmp23_;
+#line 186 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ copy_adjustments.label = RESOURCES_COPY_ADJUSTMENTS_MENU;
+#line 187 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ copy_adjustments.tooltip = RESOURCES_COPY_ADJUSTMENTS_TOOLTIP;
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = actions;
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24__length1 = actions_length1;
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = copy_adjustments;
+#line 188 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add178 (&actions, &actions_length1, &_actions_size_, &_tmp25_);
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_.name = "PasteColorAdjustments";
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_.stock_id = NULL;
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_.label = TRANSLATABLE;
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_.accelerator = "<Ctrl><Shift>V";
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_.tooltip = TRANSLATABLE;
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_.callback = (GCallback) _collection_page_on_paste_adjustments_gtk_action_callback;
+#line 190 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ paste_adjustments = _tmp26_;
+#line 192 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ paste_adjustments.label = RESOURCES_PASTE_ADJUSTMENTS_MENU;
+#line 193 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ paste_adjustments.tooltip = RESOURCES_PASTE_ADJUSTMENTS_TOOLTIP;
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = actions;
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27__length1 = actions_length1;
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp28_ = paste_adjustments;
+#line 194 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add179 (&actions, &actions_length1, &_actions_size_, &_tmp28_);
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_.name = "Revert";
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_.stock_id = NULL;
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_.label = TRANSLATABLE;
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_.accelerator = NULL;
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_.tooltip = TRANSLATABLE;
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_.callback = (GCallback) _collection_page_on_revert_gtk_action_callback;
+#line 196 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ revert = _tmp29_;
+#line 198 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ revert.label = RESOURCES_REVERT_MENU;
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp30_ = actions;
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp30__length1 = actions_length1;
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp31_ = revert;
+#line 199 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add180 (&actions, &actions_length1, &_actions_size_, &_tmp31_);
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_.name = "SetBackground";
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_.stock_id = NULL;
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_.label = TRANSLATABLE;
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_.accelerator = "<Ctrl>B";
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_.tooltip = TRANSLATABLE;
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_.callback = (GCallback) _collection_page_on_set_background_gtk_action_callback;
+#line 201 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ set_background = _tmp32_;
+#line 203 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ set_background.label = RESOURCES_SET_BACKGROUND_MENU;
+#line 204 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ set_background.tooltip = RESOURCES_SET_BACKGROUND_TOOLTIP;
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = actions;
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33__length1 = actions_length1;
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp34_ = set_background;
+#line 205 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add181 (&actions, &actions_length1, &_actions_size_, &_tmp34_);
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_.name = "Duplicate";
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_.stock_id = NULL;
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_.label = TRANSLATABLE;
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_.accelerator = "<Ctrl>D";
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_.tooltip = TRANSLATABLE;
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_.callback = (GCallback) _collection_page_on_duplicate_photo_gtk_action_callback;
+#line 207 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ duplicate = _tmp35_;
+#line 209 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ duplicate.label = RESOURCES_DUPLICATE_PHOTO_MENU;
+#line 210 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ duplicate.tooltip = RESOURCES_DUPLICATE_PHOTO_TOOLTIP;
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp36_ = actions;
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp36__length1 = actions_length1;
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp37_ = duplicate;
+#line 211 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add182 (&actions, &actions_length1, &_actions_size_, &_tmp37_);
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_.name = "AdjustDateTime";
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_.stock_id = NULL;
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_.label = TRANSLATABLE;
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_.accelerator = NULL;
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_.tooltip = TRANSLATABLE;
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_.callback = (GCallback) _collection_page_on_adjust_date_time_gtk_action_callback;
+#line 213 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ adjust_date_time = _tmp38_;
+#line 215 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ adjust_date_time.label = RESOURCES_ADJUST_DATE_TIME_MENU;
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp39_ = actions;
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp39__length1 = actions_length1;
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp40_ = adjust_date_time;
+#line 216 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add183 (&actions, &actions_length1, &_actions_size_, &_tmp40_);
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_.name = "ExternalEdit";
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_.stock_id = RESOURCES_EDIT_LABEL;
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_.label = TRANSLATABLE;
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_.accelerator = "<Ctrl>Return";
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_.tooltip = TRANSLATABLE;
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_.callback = (GCallback) _collection_page_on_external_edit_gtk_action_callback;
+#line 218 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ external_edit = _tmp41_;
+#line 220 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ external_edit.label = RESOURCES_EXTERNAL_EDIT_MENU;
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp42_ = actions;
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp42__length1 = actions_length1;
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp43_ = external_edit;
+#line 221 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add184 (&actions, &actions_length1, &_actions_size_, &_tmp43_);
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_.name = "ExternalEditRAW";
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_.stock_id = NULL;
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_.label = TRANSLATABLE;
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_.accelerator = "<Ctrl><Shift>Return";
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_.tooltip = TRANSLATABLE;
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_.callback = (GCallback) _collection_page_on_external_edit_raw_gtk_action_callback;
+#line 223 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ edit_raw = _tmp44_;
+#line 225 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ edit_raw.label = RESOURCES_EXTERNAL_EDIT_RAW_MENU;
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp45_ = actions;
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp45__length1 = actions_length1;
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp46_ = edit_raw;
+#line 226 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add185 (&actions, &actions_length1, &_actions_size_, &_tmp46_);
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_.name = "Slideshow";
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_.stock_id = NULL;
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_.label = TRANSLATABLE;
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_.accelerator = "F5";
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_.tooltip = TRANSLATABLE;
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_.callback = (GCallback) _collection_page_on_slideshow_gtk_action_callback;
+#line 228 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ slideshow = _tmp47_;
+#line 230 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp48_ = _ ("S_lideshow");
+#line 230 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ slideshow.label = _tmp48_;
+#line 231 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp49_ = _ ("Play a slideshow");
+#line 231 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ slideshow.tooltip = _tmp49_;
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp50_ = actions;
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp50__length1 = actions_length1;
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp51_ = slideshow;
+#line 232 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add186 (&actions, &actions_length1, &_actions_size_, &_tmp51_);
+#line 234 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp52_ = actions;
+#line 234 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp52__length1 = actions_length1;
+#line 234 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (result_length1) {
+#line 234 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *result_length1 = _tmp52__length1;
+#line 2764 "CollectionPage.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp52_;
+#line 234 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 2770 "CollectionPage.c"
+}
+
+
+static void _vala_array_add187 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2781 "CollectionPage.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = value;
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[*length] = NULL;
+#line 2787 "CollectionPage.c"
+}
+
+
+static void _vala_array_add188 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2798 "CollectionPage.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = value;
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[*length] = NULL;
+#line 2804 "CollectionPage.c"
+}
+
+
+static void _vala_array_add189 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2815 "CollectionPage.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = value;
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[*length] = NULL;
+#line 2821 "CollectionPage.c"
+}
+
+
+static void _vala_array_add190 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2832 "CollectionPage.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = value;
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[*length] = NULL;
+#line 2838 "CollectionPage.c"
+}
+
+
+static void _vala_array_add191 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2849 "CollectionPage.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = value;
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[*length] = NULL;
+#line 2855 "CollectionPage.c"
+}
+
+
+static void _vala_array_add192 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((*length) == (*size)) {
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2866 "CollectionPage.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[(*length)++] = value;
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ (*array)[*length] = NULL;
+#line 2872 "CollectionPage.c"
+}
+
+
+static InjectionGroup** collection_page_real_init_collect_injection_groups (Page* base, int* result_length1) {
+ CollectionPage * self;
+ InjectionGroup** result = NULL;
+ InjectionGroup** groups = NULL;
+ gint _tmp0_ = 0;
+ InjectionGroup** _tmp1_ = NULL;
+ gint groups_length1 = 0;
+ gint _groups_size_ = 0;
+ InjectionGroup** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ InjectionGroup* _tmp3_ = NULL;
+ InjectionGroup** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ InjectionGroup* _tmp5_ = NULL;
+ InjectionGroup** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ InjectionGroup* _tmp7_ = NULL;
+ InjectionGroup** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ InjectionGroup* _tmp9_ = NULL;
+ InjectionGroup** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ InjectionGroup* _tmp11_ = NULL;
+ InjectionGroup** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ InjectionGroup* _tmp13_ = NULL;
+ InjectionGroup** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+#line 237 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 238 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = PAGE_CLASS (collection_page_parent_class)->init_collect_injection_groups (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), &_tmp0_);
+#line 238 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ groups = _tmp1_;
+#line 238 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ groups_length1 = _tmp0_;
+#line 238 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _groups_size_ = groups_length1;
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = groups;
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2__length1 = groups_length1;
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = collection_page_create_file_menu_injectables ();
+#line 240 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add187 (&groups, &groups_length1, &_groups_size_, _tmp3_);
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = groups;
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4__length1 = groups_length1;
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = collection_page_create_edit_menu_injectables ();
+#line 241 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add188 (&groups, &groups_length1, &_groups_size_, _tmp5_);
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = groups;
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6__length1 = groups_length1;
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = collection_page_create_view_menu_fullscreen_injectables ();
+#line 242 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add189 (&groups, &groups_length1, &_groups_size_, _tmp7_);
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = groups;
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8__length1 = groups_length1;
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = collection_page_create_photos_menu_edits_injectables ();
+#line 243 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add190 (&groups, &groups_length1, &_groups_size_, _tmp9_);
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = groups;
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10__length1 = groups_length1;
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = collection_page_create_photos_menu_date_injectables ();
+#line 244 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add191 (&groups, &groups_length1, &_groups_size_, _tmp11_);
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = groups;
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12__length1 = groups_length1;
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = collection_page_create_photos_menu_externals_injectables ();
+#line 245 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_array_add192 (&groups, &groups_length1, &_groups_size_, _tmp13_);
+#line 247 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = groups;
+#line 247 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14__length1 = groups_length1;
+#line 247 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (result_length1) {
+#line 247 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ *result_length1 = _tmp14__length1;
+#line 2970 "CollectionPage.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp14_;
+#line 247 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 2976 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_selection_has_video (CollectionPage* self) {
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 250 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (self), FALSE);
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_sources (_tmp1_);
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = media_source_collection_has_video (_tmp3_);
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp5_;
+#line 251 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 3010 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_page_has_photo (CollectionPage* self) {
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (self), FALSE);
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_sources (_tmp1_);
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = media_source_collection_has_photo (_tmp3_);
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp5_;
+#line 255 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 3044 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_selection_has_photo (CollectionPage* self) {
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 258 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (self), FALSE);
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_sources (_tmp1_);
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = media_source_collection_has_photo (_tmp3_);
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp5_;
+#line 259 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 3078 "CollectionPage.c"
+}
+
+
+static void collection_page_real_init_actions (Page* base, gint selected_count, gint count) {
+ CollectionPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 263 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = selected_count;
+#line 263 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = count;
+#line 263 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ PAGE_CLASS (collection_page_parent_class)->init_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), _tmp0_, _tmp1_);
+#line 265 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_short_label (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", RESOURCES_ROTATE_CW_LABEL);
+#line 266 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_short_label (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", RESOURCES_ROTATE_CCW_LABEL);
+#line 267 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_short_label (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Publish", RESOURCES_PUBLISH_LABEL);
+#line 269 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", TRUE);
+#line 270 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", TRUE);
+#line 271 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", TRUE);
+#line 272 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Publish", TRUE);
+#line 3108 "CollectionPage.c"
+}
+
+
+static void collection_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ CollectionPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gboolean one_selected = FALSE;
+ gint _tmp2_ = 0;
+ gboolean has_selected = FALSE;
+ gint _tmp3_ = 0;
+ gboolean primary_is_video = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean selection_has_videos = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean page_has_photos = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp42_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+ gboolean _tmp46_ = FALSE;
+ gboolean _tmp48_ = FALSE;
+ gboolean _tmp49_ = FALSE;
+ gboolean _tmp50_ = FALSE;
+ gboolean _tmp59_ = FALSE;
+ gboolean _tmp60_ = FALSE;
+ gboolean _tmp61_ = FALSE;
+ gboolean _tmp64_ = FALSE;
+ gboolean _tmp65_ = FALSE;
+ gboolean _tmp67_ = FALSE;
+ gboolean _tmp68_ = FALSE;
+ gboolean _tmp70_ = FALSE;
+ gboolean _tmp71_ = FALSE;
+ gboolean _tmp73_ = FALSE;
+ gboolean _tmp74_ = FALSE;
+ gboolean _tmp76_ = FALSE;
+ gboolean _tmp77_ = FALSE;
+ gboolean _tmp78_ = FALSE;
+ gboolean _tmp79_ = FALSE;
+ gboolean _tmp80_ = FALSE;
+ gboolean _tmp81_ = FALSE;
+ gboolean _tmp83_ = FALSE;
+ gboolean _tmp84_ = FALSE;
+ gboolean _tmp86_ = FALSE;
+ gboolean _tmp87_ = FALSE;
+ gboolean _tmp88_ = FALSE;
+ gboolean _tmp90_ = FALSE;
+#line 275 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 276 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = selected_count;
+#line 276 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = count;
+#line 276 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ PAGE_CLASS (collection_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), _tmp0_, _tmp1_);
+#line 278 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = selected_count;
+#line 278 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ one_selected = _tmp2_ == 1;
+#line 279 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = selected_count;
+#line 279 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ has_selected = _tmp3_ > 0;
+#line 281 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ primary_is_video = FALSE;
+#line 282 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = has_selected;
+#line 282 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp4_) {
+#line 3187 "CollectionPage.c"
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _tmp5_;
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = view_collection_get_selected_at (_tmp6_, 0);
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _tmp7_;
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = data_view_get_source (_tmp8_);
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = _tmp9_;
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_VIDEO);
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 283 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp11_) {
+#line 284 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ primary_is_video = TRUE;
+#line 3219 "CollectionPage.c"
+ }
+ }
+#line 286 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = collection_page_selection_has_video (self);
+#line 286 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ selection_has_videos = _tmp12_;
+#line 287 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = collection_page_page_has_photo (self);
+#line 287 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_has_photos = _tmp13_;
+#line 291 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = has_selected;
+#line 291 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp15_) {
+#line 3234 "CollectionPage.c"
+ gboolean _tmp16_ = FALSE;
+#line 291 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = selection_has_videos;
+#line 291 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = !_tmp16_;
+#line 3240 "CollectionPage.c"
+ } else {
+#line 291 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = FALSE;
+#line 3244 "CollectionPage.c"
+ }
+#line 291 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Duplicate", _tmp14_);
+#line 292 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = primary_is_video;
+#line 292 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_visible (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEdit", !_tmp17_);
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = one_selected;
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp19_) {
+#line 3256 "CollectionPage.c"
+ ConfigFacade* _tmp20_ = NULL;
+ ConfigFacade* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = config_facade_get_instance ();
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = _tmp20_;
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = configuration_facade_get_external_photo_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = _tmp22_;
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = is_string_empty (_tmp23_);
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = !_tmp24_;
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (_tmp23_);
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 3278 "CollectionPage.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = FALSE;
+#line 3282 "CollectionPage.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEdit", _tmp18_);
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp28_ = one_selected;
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp28_) {
+#line 3290 "CollectionPage.c"
+ gboolean _tmp29_ = FALSE;
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_ = primary_is_video;
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = !_tmp29_;
+#line 3296 "CollectionPage.c"
+ } else {
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = FALSE;
+#line 3300 "CollectionPage.c"
+ }
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp27_) {
+#line 3304 "CollectionPage.c"
+ ViewCollection* _tmp30_ = NULL;
+ ViewCollection* _tmp31_ = NULL;
+ DataView* _tmp32_ = NULL;
+ DataView* _tmp33_ = NULL;
+ DataSource* _tmp34_ = NULL;
+ Photo* _tmp35_ = NULL;
+ PhotoFileFormat _tmp36_ = 0;
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp30_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp31_ = _tmp30_;
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_ = view_collection_get_selected_at (_tmp31_, 0);
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = _tmp32_;
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp34_ = data_view_get_source (_tmp33_);
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_PHOTO, Photo);
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp36_ = photo_get_master_file_format (_tmp35_);
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = _tmp36_ == PHOTO_FILE_FORMAT_RAW;
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp35_);
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 297 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp31_);
+#line 3334 "CollectionPage.c"
+ } else {
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = FALSE;
+#line 3338 "CollectionPage.c"
+ }
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp26_) {
+#line 3342 "CollectionPage.c"
+ ConfigFacade* _tmp37_ = NULL;
+ ConfigFacade* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp37_ = config_facade_get_instance ();
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_ = _tmp37_;
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp39_ = configuration_facade_get_external_raw_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp40_ = _tmp39_;
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_ = is_string_empty (_tmp40_);
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = !_tmp41_;
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (_tmp40_);
+#line 299 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp38_);
+#line 3364 "CollectionPage.c"
+ } else {
+#line 296 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = FALSE;
+#line 3368 "CollectionPage.c"
+ }
+#line 295 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_visible (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEditRAW", _tmp25_);
+#line 300 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp43_ = selection_has_videos;
+#line 300 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp43_) {
+#line 3376 "CollectionPage.c"
+ gboolean _tmp44_ = FALSE;
+#line 300 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_ = collection_page_can_revert_selected (self);
+#line 300 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp42_ = _tmp44_;
+#line 3382 "CollectionPage.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp42_ = FALSE;
+#line 3386 "CollectionPage.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp42_);
+#line 301 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp46_ = selection_has_videos;
+#line 301 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp46_) {
+#line 3394 "CollectionPage.c"
+ gboolean _tmp47_ = FALSE;
+#line 301 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_ = has_selected;
+#line 301 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp45_ = _tmp47_;
+#line 3400 "CollectionPage.c"
+ } else {
+#line 301 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp45_ = FALSE;
+#line 3404 "CollectionPage.c"
+ }
+#line 301 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", _tmp45_);
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp50_ = selection_has_videos;
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp50_) {
+#line 3412 "CollectionPage.c"
+ gboolean _tmp51_ = FALSE;
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp51_ = one_selected;
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp49_ = _tmp51_;
+#line 3418 "CollectionPage.c"
+ } else {
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp49_ = FALSE;
+#line 3422 "CollectionPage.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp49_) {
+#line 3426 "CollectionPage.c"
+ ViewCollection* _tmp52_ = NULL;
+ ViewCollection* _tmp53_ = NULL;
+ DataView* _tmp54_ = NULL;
+ DataView* _tmp55_ = NULL;
+ DataSource* _tmp56_ = NULL;
+ Photo* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp52_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp53_ = _tmp52_;
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp54_ = view_collection_get_selected_at (_tmp53_, 0);
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp55_ = _tmp54_;
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp56_ = data_view_get_source (_tmp55_);
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp57_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_PHOTO, Photo);
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp58_ = photo_has_color_adjustments (_tmp57_);
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp48_ = _tmp58_;
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp57_);
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp55_);
+#line 303 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp53_);
+#line 3456 "CollectionPage.c"
+ } else {
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp48_ = FALSE;
+#line 3460 "CollectionPage.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CopyColorAdjustments", _tmp48_);
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp61_ = selection_has_videos;
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp61_) {
+#line 3468 "CollectionPage.c"
+ gboolean _tmp62_ = FALSE;
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp62_ = has_selected;
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp60_ = _tmp62_;
+#line 3474 "CollectionPage.c"
+ } else {
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp60_ = FALSE;
+#line 3478 "CollectionPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp60_) {
+#line 3482 "CollectionPage.c"
+ gboolean _tmp63_ = FALSE;
+#line 305 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp63_ = pixel_transformation_bundle_has_copied_color_adjustments ();
+#line 305 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp59_ = _tmp63_;
+#line 3488 "CollectionPage.c"
+ } else {
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp59_ = FALSE;
+#line 3492 "CollectionPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PasteColorAdjustments", _tmp59_);
+#line 306 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp65_ = selection_has_videos;
+#line 306 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp65_) {
+#line 3500 "CollectionPage.c"
+ gboolean _tmp66_ = FALSE;
+#line 306 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp66_ = has_selected;
+#line 306 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp64_ = _tmp66_;
+#line 3506 "CollectionPage.c"
+ } else {
+#line 306 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp64_ = FALSE;
+#line 3510 "CollectionPage.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp64_);
+#line 307 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp68_ = selection_has_videos;
+#line 307 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp68_) {
+#line 3518 "CollectionPage.c"
+ gboolean _tmp69_ = FALSE;
+#line 307 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp69_ = has_selected;
+#line 307 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp67_ = _tmp69_;
+#line 3524 "CollectionPage.c"
+ } else {
+#line 307 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp67_ = FALSE;
+#line 3528 "CollectionPage.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp67_);
+#line 308 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp71_ = selection_has_videos;
+#line 308 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp71_) {
+#line 3536 "CollectionPage.c"
+ gboolean _tmp72_ = FALSE;
+#line 308 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp72_ = has_selected;
+#line 308 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp70_ = _tmp72_;
+#line 3542 "CollectionPage.c"
+ } else {
+#line 308 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp70_ = FALSE;
+#line 3546 "CollectionPage.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp70_);
+#line 309 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp74_ = selection_has_videos;
+#line 309 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp74_) {
+#line 3554 "CollectionPage.c"
+ gboolean _tmp75_ = FALSE;
+#line 309 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp75_ = has_selected;
+#line 309 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp73_ = _tmp75_;
+#line 3560 "CollectionPage.c"
+ } else {
+#line 309 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp73_ = FALSE;
+#line 3564 "CollectionPage.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp73_);
+#line 313 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp76_ = has_selected;
+#line 313 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", _tmp76_);
+#line 315 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp77_ = has_selected;
+#line 315 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "NewEvent", _tmp77_);
+#line 316 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp78_ = has_selected;
+#line 316 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AddTags", _tmp78_);
+#line 317 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp79_ = one_selected;
+#line 317 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ModifyTags", _tmp79_);
+#line 318 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp81_ = page_has_photos;
+#line 318 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp81_) {
+#line 3588 "CollectionPage.c"
+ gboolean _tmp82_ = FALSE;
+#line 318 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp82_ = primary_is_video;
+#line 318 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp80_ = !_tmp82_;
+#line 3594 "CollectionPage.c"
+ } else {
+#line 318 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp80_ = FALSE;
+#line 3598 "CollectionPage.c"
+ }
+#line 318 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Slideshow", _tmp80_);
+#line 319 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp84_ = selection_has_videos;
+#line 319 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp84_) {
+#line 3606 "CollectionPage.c"
+ gboolean _tmp85_ = FALSE;
+#line 319 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp85_ = has_selected;
+#line 319 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp83_ = _tmp85_;
+#line 3612 "CollectionPage.c"
+ } else {
+#line 319 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp83_ = FALSE;
+#line 3616 "CollectionPage.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Print", _tmp83_);
+#line 320 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp86_ = has_selected;
+#line 320 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Publish", _tmp86_);
+#line 322 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp88_ = selection_has_videos;
+#line 322 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp88_) {
+#line 3628 "CollectionPage.c"
+ gboolean _tmp89_ = FALSE;
+#line 322 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp89_ = has_selected;
+#line 322 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp87_ = _tmp89_;
+#line 3634 "CollectionPage.c"
+ } else {
+#line 322 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp87_ = FALSE;
+#line 3638 "CollectionPage.c"
+ }
+#line 322 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp87_);
+#line 323 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp90_ = has_selected;
+#line 323 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp90_) {
+#line 3646 "CollectionPage.c"
+ GtkAction* set_background = NULL;
+ GtkAction* _tmp91_ = NULL;
+ GtkAction* _tmp92_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp91_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground");
+#line 324 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ set_background = _tmp91_;
+#line 325 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp92_ = set_background;
+#line 325 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp92_ != NULL) {
+#line 3658 "CollectionPage.c"
+ const gchar* _tmp93_ = NULL;
+ gboolean _tmp94_ = FALSE;
+ GtkAction* _tmp95_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp94_ = one_selected;
+#line 326 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp94_) {
+#line 327 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp93_ = RESOURCES_SET_BACKGROUND_MENU;
+#line 3668 "CollectionPage.c"
+ } else {
+#line 328 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp93_ = RESOURCES_SET_BACKGROUND_SLIDESHOW_MENU;
+#line 3672 "CollectionPage.c"
+ }
+#line 326 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp95_ = set_background;
+#line 326 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_action_set_label (_tmp95_, _tmp93_);
+#line 3678 "CollectionPage.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (set_background);
+#line 3682 "CollectionPage.c"
+ }
+}
+
+
+static void collection_page_on_photos_altered (CollectionPage* self, GeeMap* altered) {
+#line 333 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 333 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (GEE_IS_MAP (altered));
+#line 3692 "CollectionPage.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = altered;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = _tmp1_;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _object_it = _tmp5_;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ while (TRUE) {
+#line 3719 "CollectionPage.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ DataView* view = NULL;
+ DataObject* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ DataView* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ DataView* _tmp20_ = NULL;
+ DataSource* _tmp21_ = NULL;
+ LibraryPhoto* _tmp22_ = NULL;
+ LibraryPhoto* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ LibraryPhoto* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _object_it;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp7_) {
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 3747 "CollectionPage.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _object_it;
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ object = (DataObject*) _tmp9_;
+#line 337 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = object;
+#line 337 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_VIEW, DataView));
+#line 337 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ view = _tmp11_;
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = view;
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = data_view_is_selected (_tmp13_);
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp14_) {
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = TRUE;
+#line 3769 "CollectionPage.c"
+ } else {
+ GeeMap* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ Alteration* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = altered;
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = view;
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = gee_map_get (_tmp15_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_OBJECT, DataObject));
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = (Alteration*) _tmp17_;
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = alteration_has_subject (_tmp18_, "image");
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = !_tmp19_;
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _alteration_unref0 (_tmp18_);
+#line 3790 "CollectionPage.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp12_) {
+#line 340 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (view);
+#line 340 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (object);
+#line 340 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ continue;
+#line 3800 "CollectionPage.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = view;
+#line 342 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = data_view_get_source (_tmp20_);
+#line 342 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp21_) : NULL;
+#line 342 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp22_ == NULL) {
+#line 342 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 3812 "CollectionPage.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp22_;
+#line 343 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = photo;
+#line 343 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp23_ == NULL) {
+#line 344 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 344 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (view);
+#line 344 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (object);
+#line 344 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ continue;
+#line 3828 "CollectionPage.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = collection_page_can_revert_selected (self);
+#line 348 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp24_);
+#line 349 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = photo;
+#line 349 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = photo_has_color_adjustments (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_PHOTO, Photo));
+#line 349 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CopyColorAdjustments", _tmp26_);
+#line 351 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 351 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (view);
+#line 351 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (object);
+#line 351 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 3848 "CollectionPage.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_object_it);
+#line 3852 "CollectionPage.c"
+ }
+}
+
+
+static void collection_page_on_print (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 355 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 356 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 356 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 356 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 356 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ > 0;
+#line 356 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 356 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 3876 "CollectionPage.c"
+ PrintManager* _tmp4_ = NULL;
+ PrintManager* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = print_manager_get_instance ();
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = view_collection_get_selected_sources_of_type (_tmp7_, TYPE_PHOTO);
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ print_manager_spool_photo (_tmp5_, _tmp9_);
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 357 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _print_manager_unref0 (_tmp5_);
+#line 3903 "CollectionPage.c"
+ }
+}
+
+
+static void collection_page_on_external_app_changed (CollectionPage* self) {
+ gint selected_count = 0;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ gint _tmp5_ = 0;
+#line 362 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 363 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 363 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 363 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 363 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_;
+#line 363 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 363 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ selected_count = _tmp3_;
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = selected_count;
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp5_ == 1) {
+#line 3934 "CollectionPage.c"
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = configuration_facade_get_external_photo_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _tmp8_;
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = g_strcmp0 (_tmp9_, "") != 0;
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (_tmp9_);
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 3953 "CollectionPage.c"
+ } else {
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = FALSE;
+#line 3957 "CollectionPage.c"
+ }
+#line 365 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEdit", _tmp4_);
+#line 3961 "CollectionPage.c"
+}
+
+
+static void collection_page_real_on_item_activated (CheckerboardPage* base, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers) {
+ CollectionPage * self;
+ Thumbnail* thumbnail = NULL;
+ CheckerboardItem* _tmp0_ = NULL;
+ Thumbnail* _tmp1_ = NULL;
+ Thumbnail* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ Thumbnail* _tmp6_ = NULL;
+ MediaSource* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ CheckerboardPageActivator _tmp13_ = 0;
+#line 374 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 374 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
+#line 374 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (modifiers != NULL);
+#line 376 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = item;
+#line 376 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL, Thumbnail));
+#line 376 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ thumbnail = _tmp1_;
+#line 381 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = thumbnail;
+#line 381 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = thumbnail_get_media_source (_tmp2_);
+#line 381 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = _tmp3_;
+#line 381 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, TYPE_VIDEO);
+#line 381 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 381 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp5_) {
+#line 382 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ media_page_on_play_video (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage));
+#line 383 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (thumbnail);
+#line 383 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4013 "CollectionPage.c"
+ }
+#line 386 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = thumbnail;
+#line 386 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = thumbnail_get_media_source (_tmp6_);
+#line 386 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp7_) : NULL;
+#line 386 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp8_ == NULL) {
+#line 386 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 4025 "CollectionPage.c"
+ }
+#line 386 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp8_;
+#line 387 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = photo;
+#line 387 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp9_ == NULL) {
+#line 388 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 388 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (thumbnail);
+#line 388 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4039 "CollectionPage.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = photo;
+#line 391 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 391 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = _tmp11_;
+#line 391 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_debug ("CollectionPage.vala:391: activating %s", _tmp12_);
+#line 391 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (_tmp12_);
+#line 393 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = activator;
+#line 393 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp13_ == CHECKERBOARD_PAGE_ACTIVATOR_MOUSE) {
+#line 4055 "CollectionPage.c"
+ CheckerboardPageKeyboardModifiers _tmp14_ = {0};
+ gboolean _tmp15_ = FALSE;
+#line 394 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = *modifiers;
+#line 394 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = _tmp14_.super_pressed;
+#line 394 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp15_) {
+#line 395 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_external_edit (self);
+#line 4066 "CollectionPage.c"
+ } else {
+ LibraryWindow* _tmp16_ = NULL;
+ LibraryWindow* _tmp17_ = NULL;
+ LibraryPhoto* _tmp18_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = library_window_get_app ();
+#line 397 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = _tmp16_;
+#line 397 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = photo;
+#line 397 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ library_window_switch_to_photo_page (_tmp17_, self, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_PHOTO, Photo));
+#line 397 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp17_);
+#line 4081 "CollectionPage.c"
+ }
+ } else {
+ CheckerboardPageActivator _tmp19_ = 0;
+#line 398 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = activator;
+#line 398 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp19_ == CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD) {
+#line 4089 "CollectionPage.c"
+ gboolean _tmp20_ = FALSE;
+ CheckerboardPageKeyboardModifiers _tmp21_ = {0};
+ gboolean _tmp22_ = FALSE;
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = *modifiers;
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = _tmp21_.shift_pressed;
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp22_) {
+#line 4099 "CollectionPage.c"
+ CheckerboardPageKeyboardModifiers _tmp23_ = {0};
+ gboolean _tmp24_ = FALSE;
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = *modifiers;
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = _tmp23_.ctrl_pressed;
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = !_tmp24_;
+#line 4108 "CollectionPage.c"
+ } else {
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = FALSE;
+#line 4112 "CollectionPage.c"
+ }
+#line 399 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp20_) {
+#line 4116 "CollectionPage.c"
+ LibraryWindow* _tmp25_ = NULL;
+ LibraryWindow* _tmp26_ = NULL;
+ LibraryPhoto* _tmp27_ = NULL;
+#line 400 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = library_window_get_app ();
+#line 400 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = _tmp25_;
+#line 400 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = photo;
+#line 400 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ library_window_switch_to_photo_page (_tmp26_, self, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_PHOTO, Photo));
+#line 400 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp26_);
+#line 4130 "CollectionPage.c"
+ }
+ }
+ }
+#line 374 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 374 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (thumbnail);
+#line 4138 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_real_on_app_key_pressed (Page* base, GdkEventKey* event) {
+ CollectionPage * self;
+ gboolean result = FALSE;
+ gboolean handled = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GQuark _tmp5_ = 0U;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label0 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label1 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label2 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label3 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label4 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label5 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label6 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label7 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label8 = 0;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ static GQuark _tmp4_label9 = 0;
+#line 4171 "CollectionPage.c"
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 404 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 404 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 405 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ handled = TRUE;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = event;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_;
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if ((((((((_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("Page_Up")))) || (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("KP_Page_Up"))))) || (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("Page_Down"))))) || (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("KP_Page_Down"))))) || (_tmp5_ == ((0 != _tmp4_label4) ? _tmp4_label4 : (_tmp4_label4 = g_quark_from_static_string ("Home"))))) || (_tmp5_ == ((0 != _tmp4_label5) ? _tmp4_label5 : (_tmp4_label5 = g_quark_from_static_string ("KP_Home"))))) || (_tmp5_ == ((0 != _tmp4_label6) ? _tmp4_label6 : (_tmp4_label6 = g_quark_from_static_string ("End"))))) || (_tmp5_ == ((0 != _tmp4_label7) ? _tmp4_label7 : (_tmp4_label7 = g_quark_from_static_string ("KP_End"))))) {
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ switch (0) {
+#line 4194 "CollectionPage.c"
+ default:
+ {
+ GdkEventKey* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 415 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = event;
+#line 415 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "key-press-event", _tmp6_, &_tmp7_);
+#line 416 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 4205 "CollectionPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label8) ? _tmp4_label8 : (_tmp4_label8 = g_quark_from_static_string ("bracketright")))) {
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ switch (0) {
+#line 4211 "CollectionPage.c"
+ default:
+ {
+#line 419 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise");
+#line 420 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 4218 "CollectionPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label9) ? _tmp4_label9 : (_tmp4_label9 = g_quark_from_static_string ("bracketleft")))) {
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ switch (0) {
+#line 4224 "CollectionPage.c"
+ default:
+ {
+#line 423 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise");
+#line 424 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 4231 "CollectionPage.c"
+ }
+ }
+ } else {
+#line 406 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ switch (0) {
+#line 4237 "CollectionPage.c"
+ default:
+ {
+#line 427 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ handled = FALSE;
+#line 428 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 4244 "CollectionPage.c"
+ }
+ }
+ }
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = handled;
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp9_) {
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = TRUE;
+#line 4254 "CollectionPage.c"
+ } else {
+ GdkEventKey* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = event;
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = PAGE_CLASS (collection_page_parent_class)->on_app_key_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), _tmp10_);
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _tmp11_;
+#line 4264 "CollectionPage.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp8_;
+#line 431 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 4270 "CollectionPage.c"
+}
+
+
+static void _collection_page_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self) {
+#line 450 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_on_export_completed ((CollectionPage*) self);
+#line 4277 "CollectionPage.c"
+}
+
+
+static void collection_page_real_on_export (MediaPage* base) {
+ CollectionPage * self;
+ ExporterUI* _tmp0_ = NULL;
+ GeeCollection* export_list = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean has_some_photos = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean has_some_videos = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gchar* title = NULL;
+ gboolean _tmp16_ = FALSE;
+ ExportDialog* export_dialog = NULL;
+ const gchar* _tmp31_ = NULL;
+ ExportDialog* _tmp32_ = NULL;
+ ExportFormatParameters _tmp33_ = {0};
+ gboolean _tmp34_ = FALSE;
+ ExportFormatParameters export_params = {0};
+ gint scale = 0;
+ ScaleConstraint constraint = 0;
+ ExportDialog* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ ScaleConstraint _tmp39_ = 0;
+ gboolean _tmp40_ = FALSE;
+ Scaling scaling = {0};
+ ScaleConstraint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ Scaling _tmp43_ = {0};
+ GeeCollection* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ GFile* export_dir = NULL;
+ const gchar* _tmp81_ = NULL;
+ GFile* _tmp82_ = NULL;
+ GFile* _tmp83_ = NULL;
+ GeeCollection* _tmp84_ = NULL;
+ GFile* _tmp85_ = NULL;
+ Scaling _tmp86_ = {0};
+ ExportFormatParameters _tmp87_ = {0};
+ Exporter* _tmp88_ = NULL;
+ Exporter* _tmp89_ = NULL;
+ ExporterUI* _tmp90_ = NULL;
+ ExporterUI* _tmp91_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 435 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = self->priv->exporter;
+#line 435 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp0_ != NULL) {
+#line 436 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4341 "CollectionPage.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 438 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = _tmp1_;
+#line 438 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = view_collection_get_selected_sources (_tmp2_);
+#line 438 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 438 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 438 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ export_list = _tmp4_;
+#line 440 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = export_list;
+#line 440 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = gee_collection_get_size (_tmp5_);
+#line 440 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 440 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp7_ == 0) {
+#line 441 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 441 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4367 "CollectionPage.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = collection_page_selection_has_photo (self);
+#line 443 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ has_some_photos = _tmp8_;
+#line 444 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = collection_page_selection_has_video (self);
+#line 444 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ has_some_videos = _tmp9_;
+#line 445 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = has_some_photos;
+#line 445 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp11_) {
+#line 445 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = TRUE;
+#line 4383 "CollectionPage.c"
+ } else {
+ gboolean _tmp12_ = FALSE;
+#line 445 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = has_some_videos;
+#line 445 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = _tmp12_;
+#line 4390 "CollectionPage.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _vala_assert (_tmp10_, "has_some_photos || has_some_videos");
+#line 449 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = has_some_photos;
+#line 449 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp13_) {
+#line 4398 "CollectionPage.c"
+ GeeCollection* _tmp14_ = NULL;
+ ExporterUI* _tmp15_ = NULL;
+#line 450 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = export_list;
+#line 450 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = video_export_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection), _collection_page_on_export_completed_exporter_completion_callback, self, FALSE);
+#line 450 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _exporter_ui_unref0 (self->priv->exporter);
+#line 450 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv->exporter = _tmp15_;
+#line 451 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 451 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4413 "CollectionPage.c"
+ }
+#line 454 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ title = NULL;
+#line 455 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = has_some_videos;
+#line 455 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp16_) {
+#line 4421 "CollectionPage.c"
+ const gchar* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gchar* _tmp23_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = export_list;
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = gee_collection_get_size (_tmp18_);
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = _tmp19_;
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp20_ == 1) {
+#line 4435 "CollectionPage.c"
+ const gchar* _tmp21_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = _ ("Export Photo/Video");
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = _tmp21_;
+#line 4441 "CollectionPage.c"
+ } else {
+ const gchar* _tmp22_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = _ ("Export Photos/Videos");
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = _tmp22_;
+#line 4448 "CollectionPage.c"
+ }
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = g_strdup (_tmp17_);
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 456 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ title = _tmp23_;
+#line 4456 "CollectionPage.c"
+ } else {
+ const gchar* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gchar* _tmp30_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = export_list;
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = gee_collection_get_size (_tmp25_);
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = _tmp26_;
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp27_ == 1) {
+#line 4471 "CollectionPage.c"
+ const gchar* _tmp28_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp28_ = _ ("Export Photo");
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = _tmp28_;
+#line 4477 "CollectionPage.c"
+ } else {
+ const gchar* _tmp29_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_ = _ ("Export Photos");
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = _tmp29_;
+#line 4484 "CollectionPage.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp30_ = g_strdup (_tmp24_);
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 458 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ title = _tmp30_;
+#line 4492 "CollectionPage.c"
+ }
+#line 459 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp31_ = title;
+#line 459 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_ = export_dialog_new (_tmp31_);
+#line 459 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_object_ref_sink (_tmp32_);
+#line 459 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ export_dialog = _tmp32_;
+#line 469 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp34_ = has_some_videos;
+#line 469 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp34_) {
+#line 4506 "CollectionPage.c"
+ ExportFormatParameters _tmp35_ = {0};
+#line 469 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ export_format_parameters_current (&_tmp35_);
+#line 469 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = _tmp35_;
+#line 4512 "CollectionPage.c"
+ } else {
+ ExportFormatParameters _tmp36_ = {0};
+#line 470 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ export_format_parameters_last (&_tmp36_);
+#line 470 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = _tmp36_;
+#line 4519 "CollectionPage.c"
+ }
+#line 469 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ export_params = _tmp33_;
+#line 474 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp37_ = export_dialog;
+#line 474 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp40_ = export_dialog_execute (_tmp37_, &_tmp38_, &_tmp39_, &export_params);
+#line 474 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ scale = _tmp38_;
+#line 474 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ constraint = _tmp39_;
+#line 474 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp40_) {
+#line 475 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 475 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 475 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 475 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4541 "CollectionPage.c"
+ }
+#line 477 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_ = constraint;
+#line 477 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp42_ = scale;
+#line 477 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ scaling_for_constraint (_tmp41_, _tmp42_, FALSE, &_tmp43_);
+#line 477 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ scaling = _tmp43_;
+#line 480 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_ = export_list;
+#line 480 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp45_ = gee_collection_get_size (_tmp44_);
+#line 480 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp46_ = _tmp45_;
+#line 480 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp46_ == 1) {
+#line 4559 "CollectionPage.c"
+ LibraryPhoto* photo = NULL;
+ GFile* save_as = NULL;
+ LibraryPhoto* _tmp55_ = NULL;
+ ExportFormatParameters _tmp56_ = {0};
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ GFile* _tmp59_ = NULL;
+ GFile* _tmp60_ = NULL;
+ GFile* _tmp61_ = NULL;
+#line 481 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = NULL;
+#line 4571 "CollectionPage.c"
+ {
+ GeeIterator* _p_it = NULL;
+ GeeCollection* _tmp47_ = NULL;
+ GeeIterator* _tmp48_ = NULL;
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_ = export_list;
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp48_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GEE_TYPE_COLLECTION, GeeCollection), GEE_TYPE_ITERABLE, GeeIterable));
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _p_it = _tmp48_;
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ while (TRUE) {
+#line 4584 "CollectionPage.c"
+ GeeIterator* _tmp49_ = NULL;
+ gboolean _tmp50_ = FALSE;
+ LibraryPhoto* p = NULL;
+ GeeIterator* _tmp51_ = NULL;
+ gpointer _tmp52_ = NULL;
+ LibraryPhoto* _tmp53_ = NULL;
+ LibraryPhoto* _tmp54_ = NULL;
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp49_ = _p_it;
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp50_ = gee_iterator_next (_tmp49_);
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!_tmp50_) {
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 4600 "CollectionPage.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp51_ = _p_it;
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp52_ = gee_iterator_get (_tmp51_);
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ p = (LibraryPhoto*) _tmp52_;
+#line 483 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp53_ = p;
+#line 483 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp54_ = _g_object_ref0 (_tmp53_);
+#line 483 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 483 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp54_;
+#line 484 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (p);
+#line 484 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 4620 "CollectionPage.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_p_it);
+#line 4624 "CollectionPage.c"
+ }
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp55_ = photo;
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp56_ = export_params;
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp57_ = photo_get_export_basename_for_parameters (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, TYPE_PHOTO, Photo), &_tmp56_);
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp58_ = _tmp57_;
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp59_ = export_ui_choose_file (_tmp58_);
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp60_ = _tmp59_;
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (_tmp58_);
+#line 487 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ save_as = _tmp60_;
+#line 489 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp61_ = save_as;
+#line 489 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp61_ == NULL) {
+#line 490 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (save_as);
+#line 490 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 490 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 490 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 490 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 490 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4658 "CollectionPage.c"
+ }
+ {
+ AppWindow* _tmp62_ = NULL;
+ AppWindow* _tmp63_ = NULL;
+ LibraryPhoto* _tmp64_ = NULL;
+ GFile* _tmp65_ = NULL;
+ Scaling _tmp66_ = {0};
+ ExportFormatParameters _tmp67_ = {0};
+ JpegQuality _tmp68_ = 0;
+ LibraryPhoto* _tmp69_ = NULL;
+ ExportFormatParameters _tmp70_ = {0};
+ PhotoFileFormat _tmp71_ = 0;
+ ExportFormatParameters _tmp72_ = {0};
+ ExportFormatMode _tmp73_ = 0;
+ ExportFormatParameters _tmp74_ = {0};
+ gboolean _tmp75_ = FALSE;
+ AppWindow* _tmp76_ = NULL;
+ AppWindow* _tmp77_ = NULL;
+#line 493 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp62_ = app_window_get_instance ();
+#line 493 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp63_ = _tmp62_;
+#line 493 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, TYPE_PAGE_WINDOW, PageWindow));
+#line 493 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp63_);
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp64_ = photo;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp65_ = save_as;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp66_ = scaling;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp67_ = export_params;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp68_ = _tmp67_.quality;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp69_ = photo;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp70_ = export_params;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp71_ = photo_get_export_format_for_parameters (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, TYPE_PHOTO, Photo), &_tmp70_);
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp72_ = export_params;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp73_ = _tmp72_.mode;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp74_ = export_params;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp75_ = _tmp74_.export_metadata;
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo_export (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, TYPE_PHOTO, Photo), _tmp65_, &_tmp66_, _tmp68_, _tmp71_, _tmp73_ == EXPORT_FORMAT_MODE_UNMODIFIED, _tmp75_, &_inner_error_);
+#line 494 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4713 "CollectionPage.c"
+ goto __catch220_g_error;
+ }
+#line 497 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp76_ = app_window_get_instance ();
+#line 497 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp77_ = _tmp76_;
+#line 497 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, TYPE_PAGE_WINDOW, PageWindow));
+#line 497 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp77_);
+#line 4724 "CollectionPage.c"
+ }
+ goto __finally220;
+ __catch220_g_error:
+ {
+ GError* err = NULL;
+ AppWindow* _tmp78_ = NULL;
+ AppWindow* _tmp79_ = NULL;
+ GFile* _tmp80_ = NULL;
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ err = _inner_error_;
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _inner_error_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp78_ = app_window_get_instance ();
+#line 499 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp79_ = _tmp78_;
+#line 499 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, TYPE_PAGE_WINDOW, PageWindow));
+#line 499 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp79_);
+#line 500 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp80_ = save_as;
+#line 500 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ export_error_dialog (_tmp80_, FALSE);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_error_free0 (err);
+#line 4751 "CollectionPage.c"
+ }
+ __finally220:
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (save_as);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_clear_error (&_inner_error_);
+#line 492 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4772 "CollectionPage.c"
+ }
+#line 503 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (save_as);
+#line 503 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 503 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 503 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 503 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 503 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4786 "CollectionPage.c"
+ }
+#line 507 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp81_ = title;
+#line 507 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp82_ = export_ui_choose_dir (_tmp81_);
+#line 507 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ export_dir = _tmp82_;
+#line 508 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp83_ = export_dir;
+#line 508 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp83_ == NULL) {
+#line 509 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dir);
+#line 509 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 509 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 509 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 509 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 4808 "CollectionPage.c"
+ }
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp84_ = export_list;
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp85_ = export_dir;
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp86_ = scaling;
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp87_ = export_params;
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp88_ = exporter_new (_tmp84_, _tmp85_, &_tmp86_, &_tmp87_, FALSE);
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp89_ = _tmp88_;
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp90_ = exporter_ui_new (_tmp89_);
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _exporter_ui_unref0 (self->priv->exporter);
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv->exporter = _tmp90_;
+#line 511 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp89_);
+#line 512 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp91_ = self->priv->exporter;
+#line 512 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ exporter_ui_export (_tmp91_, _collection_page_on_export_completed_exporter_completion_callback, self);
+#line 434 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dir);
+#line 434 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 434 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (title);
+#line 434 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (export_list);
+#line 4842 "CollectionPage.c"
+}
+
+
+static void collection_page_on_export_completed (CollectionPage* self) {
+#line 515 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 516 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _exporter_ui_unref0 (self->priv->exporter);
+#line 516 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv->exporter = NULL;
+#line 4853 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_can_revert_selected (CollectionPage* self) {
+ gboolean result = FALSE;
+#line 519 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (self), FALSE);
+#line 4861 "CollectionPage.c"
+ {
+ GeeList* _source_list = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _source_size = 0;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _source_index = 0;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_sources (_tmp1_);
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_list = _tmp3_;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = _source_list;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _tmp5_;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_size = _tmp6_;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_index = -1;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ while (TRUE) {
+#line 4897 "CollectionPage.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ DataSource* source = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ LibraryPhoto* _tmp16_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _source_index;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_index = _tmp7_ + 1;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _source_index;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _source_size;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 4922 "CollectionPage.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = _source_list;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _source_index;
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = gee_list_get (_tmp10_, _tmp11_);
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ source = (DataSource*) _tmp12_;
+#line 521 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = source;
+#line 521 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp13_) : NULL);
+#line 521 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp14_;
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = photo;
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp16_ != NULL) {
+#line 4942 "CollectionPage.c"
+ gboolean _tmp17_ = FALSE;
+ LibraryPhoto* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = photo;
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = photo_has_transformations (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_PHOTO, Photo));
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp19_) {
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = TRUE;
+#line 4954 "CollectionPage.c"
+ } else {
+ LibraryPhoto* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = photo;
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = photo_has_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_PHOTO, Photo));
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = _tmp21_;
+#line 4964 "CollectionPage.c"
+ }
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = _tmp17_;
+#line 4968 "CollectionPage.c"
+ } else {
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = FALSE;
+#line 4972 "CollectionPage.c"
+ }
+#line 522 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp15_) {
+#line 523 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = TRUE;
+#line 523 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 523 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (source);
+#line 523 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_source_list);
+#line 523 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 4986 "CollectionPage.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (source);
+#line 4992 "CollectionPage.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_source_list);
+#line 4996 "CollectionPage.c"
+ }
+#line 526 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = FALSE;
+#line 526 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 5002 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_can_revert_editable_selected (CollectionPage* self) {
+ gboolean result = FALSE;
+#line 529 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (self), FALSE);
+#line 5010 "CollectionPage.c"
+ {
+ GeeList* _source_list = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _source_size = 0;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _source_index = 0;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_sources (_tmp1_);
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_list = _tmp3_;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = _source_list;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _tmp5_;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_size = _tmp6_;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_index = -1;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ while (TRUE) {
+#line 5046 "CollectionPage.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ DataSource* source = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ LibraryPhoto* _tmp16_ = NULL;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _source_index;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _source_index = _tmp7_ + 1;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _source_index;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _source_size;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 5071 "CollectionPage.c"
+ }
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = _source_list;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _source_index;
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = gee_list_get (_tmp10_, _tmp11_);
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ source = (DataSource*) _tmp12_;
+#line 531 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = source;
+#line 531 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp13_) : NULL);
+#line 531 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp14_;
+#line 532 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = photo;
+#line 532 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp16_ != NULL) {
+#line 5091 "CollectionPage.c"
+ LibraryPhoto* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 532 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = photo;
+#line 532 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = photo_has_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_PHOTO, Photo));
+#line 532 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = _tmp18_;
+#line 5100 "CollectionPage.c"
+ } else {
+#line 532 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = FALSE;
+#line 5104 "CollectionPage.c"
+ }
+#line 532 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp15_) {
+#line 533 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = TRUE;
+#line 533 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 533 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (source);
+#line 533 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_source_list);
+#line 533 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 5118 "CollectionPage.c"
+ }
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (source);
+#line 5124 "CollectionPage.c"
+ }
+#line 530 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_source_list);
+#line 5128 "CollectionPage.c"
+ }
+#line 536 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = FALSE;
+#line 536 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 5134 "CollectionPage.c"
+}
+
+
+static void collection_page_on_rotate_clockwise (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ RotateMultipleCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ RotateMultipleCommand* _tmp10_ = NULL;
+ RotateMultipleCommand* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ CommandManager* _tmp13_ = NULL;
+ RotateMultipleCommand* _tmp14_ = NULL;
+#line 539 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 540 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 540 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 540 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 540 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 540 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 540 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 541 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5171 "CollectionPage.c"
+ }
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _ ("Rotating");
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _ ("Undoing Rotate");
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = rotate_multiple_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable), ROTATION_CLOCKWISE, RESOURCES_ROTATE_CW_FULL_LABEL, RESOURCES_ROTATE_CW_TOOLTIP, _tmp8_, _tmp9_);
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _tmp10_;
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 543 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp11_;
+#line 546 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 546 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 546 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = command;
+#line 546 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_COMMAND, Command));
+#line 546 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp13_);
+#line 539 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 5207 "CollectionPage.c"
+}
+
+
+static void collection_page_on_publish (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 549 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 550 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 550 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 550 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 550 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ > 0;
+#line 550 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 550 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 5230 "CollectionPage.c"
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+#line 551 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 551 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 551 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected_sources (_tmp5_);
+#line 551 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 551 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ publishing_ui_publishing_dialog_go (_tmp7_);
+#line 551 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 551 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 5249 "CollectionPage.c"
+ }
+}
+
+
+static void collection_page_on_rotate_counterclockwise (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ RotateMultipleCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ RotateMultipleCommand* _tmp10_ = NULL;
+ RotateMultipleCommand* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ CommandManager* _tmp13_ = NULL;
+ RotateMultipleCommand* _tmp14_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 556 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 556 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 556 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 556 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 556 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 556 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 557 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5287 "CollectionPage.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _ ("Rotating");
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _ ("Undoing Rotate");
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = rotate_multiple_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable), ROTATION_COUNTERCLOCKWISE, RESOURCES_ROTATE_CCW_FULL_LABEL, RESOURCES_ROTATE_CCW_TOOLTIP, _tmp8_, _tmp9_);
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _tmp10_;
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 559 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp11_;
+#line 562 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 562 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 562 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = command;
+#line 562 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_COMMAND, Command));
+#line 562 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp13_);
+#line 555 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 5323 "CollectionPage.c"
+}
+
+
+static void collection_page_on_flip_horizontally (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ RotateMultipleCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ RotateMultipleCommand* _tmp10_ = NULL;
+ RotateMultipleCommand* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ CommandManager* _tmp13_ = NULL;
+ RotateMultipleCommand* _tmp14_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 566 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 566 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 566 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 566 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 566 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 566 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 567 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5360 "CollectionPage.c"
+ }
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _ ("Flipping Horizontally");
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _ ("Undoing Flip Horizontally");
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = rotate_multiple_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable), ROTATION_MIRROR, RESOURCES_HFLIP_LABEL, "", _tmp8_, _tmp9_);
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _tmp10_;
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 569 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp11_;
+#line 572 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 572 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 572 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = command;
+#line 572 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_COMMAND, Command));
+#line 572 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp13_);
+#line 565 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 5396 "CollectionPage.c"
+}
+
+
+static void collection_page_on_flip_vertically (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ RotateMultipleCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ RotateMultipleCommand* _tmp10_ = NULL;
+ RotateMultipleCommand* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ CommandManager* _tmp13_ = NULL;
+ RotateMultipleCommand* _tmp14_ = NULL;
+#line 575 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 576 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 576 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 576 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 576 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 576 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 576 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 577 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5433 "CollectionPage.c"
+ }
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _ ("Flipping Vertically");
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _ ("Undoing Flip Vertically");
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = rotate_multiple_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable), ROTATION_UPSIDE_DOWN, RESOURCES_VFLIP_LABEL, "", _tmp8_, _tmp9_);
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _tmp10_;
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 579 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp11_;
+#line 582 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 582 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 582 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = command;
+#line 582 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_COMMAND, Command));
+#line 582 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp13_);
+#line 575 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 5469 "CollectionPage.c"
+}
+
+
+static void collection_page_on_revert (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ RevertMultipleCommand* command = NULL;
+ ViewCollection* _tmp27_ = NULL;
+ ViewCollection* _tmp28_ = NULL;
+ GeeList* _tmp29_ = NULL;
+ GeeList* _tmp30_ = NULL;
+ RevertMultipleCommand* _tmp31_ = NULL;
+ RevertMultipleCommand* _tmp32_ = NULL;
+ CommandManager* _tmp33_ = NULL;
+ CommandManager* _tmp34_ = NULL;
+ RevertMultipleCommand* _tmp35_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 586 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 586 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 586 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 586 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 586 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 586 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 587 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5505 "CollectionPage.c"
+ }
+#line 589 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = collection_page_can_revert_editable_selected (self);
+#line 589 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp4_) {
+#line 5511 "CollectionPage.c"
+ AppWindow* _tmp5_ = NULL;
+ AppWindow* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = app_window_get_instance ();
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _tmp5_;
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _tmp7_;
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = view_collection_get_selected_sources (_tmp8_);
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = revert_editable_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_window_get_type (), GtkWindow), _tmp10_);
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = !_tmp11_;
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 590 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp12_) {
+#line 592 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5546 "CollectionPage.c"
+ }
+ {
+ GeeList* _object_list = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ GeeList* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ gint _object_size = 0;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _object_index = 0;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = _tmp13_;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = view_collection_get_selected_sources (_tmp14_);
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = _tmp15_;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _object_list = _tmp16_;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = _object_list;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = _tmp18_;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _object_size = _tmp19_;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _object_index = -1;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ while (TRUE) {
+#line 5583 "CollectionPage.c"
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ DataObject* object = NULL;
+ GeeList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gpointer _tmp25_ = NULL;
+ DataObject* _tmp26_ = NULL;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = _object_index;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _object_index = _tmp20_ + 1;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = _object_index;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = _object_size;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!(_tmp21_ < _tmp22_)) {
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 5604 "CollectionPage.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = _object_list;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = _object_index;
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = gee_list_get (_tmp23_, _tmp24_);
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ object = G_TYPE_CHECK_INSTANCE_CAST ((DataSource*) _tmp25_, TYPE_DATA_OBJECT, DataObject);
+#line 596 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = object;
+#line 596 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo_revert_to_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_PHOTO, Photo), TRUE);
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (object);
+#line 5620 "CollectionPage.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_object_list);
+#line 5624 "CollectionPage.c"
+ }
+ }
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp28_ = _tmp27_;
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_ = view_collection_get_selected (_tmp28_);
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp30_ = _tmp29_;
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp31_ = revert_multiple_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_ = _tmp31_;
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp30_);
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp28_);
+#line 599 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp32_;
+#line 600 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 600 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp34_ = _tmp33_;
+#line 600 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_ = command;
+#line 600 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp34_, G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_COMMAND, Command));
+#line 600 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp34_);
+#line 585 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 5657 "CollectionPage.c"
+}
+
+
+void collection_page_on_copy_adjustments (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ Photo* photo = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ PixelTransformationBundle* _tmp11_ = NULL;
+ PixelTransformationBundle* _tmp12_ = NULL;
+#line 603 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 604 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 604 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 604 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 604 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 604 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 604 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 605 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5692 "CollectionPage.c"
+ }
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected_at (_tmp5_, 0);
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo);
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 606 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp9_;
+#line 607 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = photo;
+#line 607 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = photo_get_color_adjustments (_tmp10_);
+#line 607 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = _tmp11_;
+#line 607 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ pixel_transformation_bundle_set_copied_color_adjustments (_tmp12_);
+#line 607 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _pixel_transformation_bundle_unref0 (_tmp12_);
+#line 608 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PasteColorAdjustments", TRUE);
+#line 603 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 5726 "CollectionPage.c"
+}
+
+
+void collection_page_on_paste_adjustments (CollectionPage* self) {
+ PixelTransformationBundle* copied_adjustments = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+ AdjustColorsMultipleCommand* command = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ PixelTransformationBundle* _tmp11_ = NULL;
+ AdjustColorsMultipleCommand* _tmp12_ = NULL;
+ AdjustColorsMultipleCommand* _tmp13_ = NULL;
+ CommandManager* _tmp14_ = NULL;
+ CommandManager* _tmp15_ = NULL;
+ AdjustColorsMultipleCommand* _tmp16_ = NULL;
+#line 611 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 612 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = pixel_transformation_bundle_get_copied_color_adjustments ();
+#line 612 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ copied_adjustments = _tmp0_;
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_;
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = view_collection_get_selected_count (_tmp3_);
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_ == 0;
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp5_) {
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = TRUE;
+#line 5769 "CollectionPage.c"
+ } else {
+ PixelTransformationBundle* _tmp6_ = NULL;
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = copied_adjustments;
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp6_ == NULL;
+#line 5776 "CollectionPage.c"
+ }
+#line 613 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp1_) {
+#line 614 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _pixel_transformation_bundle_unref0 (copied_adjustments);
+#line 614 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5784 "CollectionPage.c"
+ }
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _tmp7_;
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = view_collection_get_selected (_tmp8_);
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = _tmp9_;
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = copied_adjustments;
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = adjust_colors_multiple_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable), _tmp11_, RESOURCES_PASTE_ADJUSTMENTS_LABEL, RESOURCES_PASTE_ADJUSTMENTS_TOOLTIP);
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 616 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp13_;
+#line 618 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 618 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = _tmp14_;
+#line 618 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = command;
+#line 618 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp15_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_COMMAND, Command));
+#line 618 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp15_);
+#line 611 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 611 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _pixel_transformation_bundle_unref0 (copied_adjustments);
+#line 5820 "CollectionPage.c"
+}
+
+
+static void collection_page_on_enhance (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ EnhanceMultipleCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ EnhanceMultipleCommand* _tmp8_ = NULL;
+ EnhanceMultipleCommand* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ EnhanceMultipleCommand* _tmp12_ = NULL;
+#line 621 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 622 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 622 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 622 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 622 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 622 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 622 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 623 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5855 "CollectionPage.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = enhance_multiple_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _tmp8_;
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 625 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp9_;
+#line 626 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 626 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _tmp10_;
+#line 626 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = command;
+#line 626 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_COMMAND, Command));
+#line 626 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp11_);
+#line 621 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 5887 "CollectionPage.c"
+}
+
+
+static void collection_page_on_duplicate_photo (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ DuplicateMultiplePhotosCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ DuplicateMultiplePhotosCommand* _tmp8_ = NULL;
+ DuplicateMultiplePhotosCommand* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ DuplicateMultiplePhotosCommand* _tmp12_ = NULL;
+#line 629 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 630 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 630 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 630 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 630 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 630 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 630 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 631 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 5922 "CollectionPage.c"
+ }
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = duplicate_multiple_photos_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = _tmp8_;
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 633 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp9_;
+#line 635 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 635 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _tmp10_;
+#line 635 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = command;
+#line 635 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_COMMAND, Command));
+#line 635 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp11_);
+#line 629 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 5954 "CollectionPage.c"
+}
+
+
+static void collection_page_on_adjust_date_time (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean selected_has_videos = FALSE;
+ gboolean only_videos_selected = FALSE;
+ Dateable* photo_source = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ ViewCollection* _tmp22_ = NULL;
+ DataView* _tmp23_ = NULL;
+ DataView* _tmp24_ = NULL;
+ DataSource* _tmp25_ = NULL;
+ Dateable* _tmp26_ = NULL;
+ AdjustDateTimeDialog* dialog = NULL;
+ Dateable* _tmp27_ = NULL;
+ ViewCollection* _tmp28_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp32_ = FALSE;
+ AdjustDateTimeDialog* _tmp33_ = NULL;
+ AdjustDateTimeDialog* _tmp34_ = NULL;
+ gint64 time_shift = 0LL;
+ gboolean keep_relativity = FALSE;
+ gboolean modify_originals = FALSE;
+ AdjustDateTimeDialog* _tmp35_ = NULL;
+ gint64 _tmp36_ = 0LL;
+ gboolean _tmp37_ = FALSE;
+ gboolean _tmp38_ = FALSE;
+ gboolean _tmp39_ = FALSE;
+#line 638 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 639 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 639 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 639 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 639 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 639 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 639 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 640 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6005 "CollectionPage.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ selected_has_videos = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ only_videos_selected = TRUE;
+#line 6011 "CollectionPage.c"
+ {
+ GeeList* _dv_list = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ gint _dv_size = 0;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _dv_index = 0;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _dv_list = _tmp7_;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _dv_list;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = _tmp9_;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _dv_size = _tmp10_;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _dv_index = -1;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ while (TRUE) {
+#line 6047 "CollectionPage.c"
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ DataView* dv = NULL;
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gpointer _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _dv_index;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _dv_index = _tmp11_ + 1;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = _dv_index;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _dv_size;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (!(_tmp12_ < _tmp13_)) {
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ break;
+#line 6071 "CollectionPage.c"
+ }
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = _dv_list;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = _dv_index;
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = gee_list_get (_tmp14_, _tmp15_);
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ dv = (DataView*) _tmp16_;
+#line 646 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = dv;
+#line 646 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = data_view_get_source (_tmp17_);
+#line 646 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = _tmp18_;
+#line 646 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_VIDEO);
+#line 646 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 646 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp20_) {
+#line 647 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ selected_has_videos = TRUE;
+#line 6095 "CollectionPage.c"
+ } else {
+#line 649 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ only_videos_selected = FALSE;
+#line 6099 "CollectionPage.c"
+ }
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (dv);
+#line 6103 "CollectionPage.c"
+ }
+#line 645 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_dv_list);
+#line 6107 "CollectionPage.c"
+ }
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = _tmp21_;
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = view_collection_get_selected_at (_tmp22_, 0);
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = _tmp23_;
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = data_view_get_source (_tmp24_);
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATEABLE, Dateable);
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp24_);
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp22_);
+#line 652 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo_source = _tmp26_;
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = photo_source;
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp28_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_ = _tmp28_;
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp30_ = view_collection_get_selected_count (_tmp29_);
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp31_ = selected_has_videos;
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_ = only_videos_selected;
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = adjust_date_time_dialog_new (_tmp27_, _tmp30_, TRUE, _tmp31_, _tmp32_);
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_object_ref_sink (_tmp33_);
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp34_ = _tmp33_;
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp29_);
+#line 654 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ dialog = _tmp34_;
+#line 659 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_ = dialog;
+#line 659 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp39_ = adjust_date_time_dialog_execute (_tmp35_, &_tmp36_, &_tmp37_, &_tmp38_);
+#line 659 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ time_shift = _tmp36_;
+#line 659 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ keep_relativity = _tmp37_;
+#line 659 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ modify_originals = _tmp38_;
+#line 659 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp39_) {
+#line 6161 "CollectionPage.c"
+ AdjustDateTimePhotosCommand* command = NULL;
+ ViewCollection* _tmp40_ = NULL;
+ ViewCollection* _tmp41_ = NULL;
+ GeeList* _tmp42_ = NULL;
+ GeeList* _tmp43_ = NULL;
+ gint64 _tmp44_ = 0LL;
+ gboolean _tmp45_ = FALSE;
+ gboolean _tmp46_ = FALSE;
+ AdjustDateTimePhotosCommand* _tmp47_ = NULL;
+ AdjustDateTimePhotosCommand* _tmp48_ = NULL;
+ CommandManager* _tmp49_ = NULL;
+ CommandManager* _tmp50_ = NULL;
+ AdjustDateTimePhotosCommand* _tmp51_ = NULL;
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp40_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp41_ = _tmp40_;
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp42_ = view_collection_get_selected (_tmp41_);
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp43_ = _tmp42_;
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp44_ = time_shift;
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp45_ = keep_relativity;
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp46_ = modify_originals;
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp47_ = adjust_date_time_photos_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, GEE_TYPE_ITERABLE, GeeIterable), _tmp44_, _tmp45_, _tmp46_);
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp48_ = _tmp47_;
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp43_);
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp41_);
+#line 660 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command = _tmp48_;
+#line 662 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp49_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 662 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp50_ = _tmp49_;
+#line 662 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp51_ = command;
+#line 662 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ command_manager_execute (_tmp50_, G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_COMMAND, Command));
+#line 662 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _command_manager_unref0 (_tmp50_);
+#line 659 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (command);
+#line 6211 "CollectionPage.c"
+ }
+#line 638 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (dialog);
+#line 638 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo_source);
+#line 6217 "CollectionPage.c"
+}
+
+
+static void collection_page_on_external_edit (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ Photo* photo = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 667 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 667 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 667 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 667 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 667 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 667 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 668 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6250 "CollectionPage.c"
+ }
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected_at (_tmp5_, 0);
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo);
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 670 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp9_;
+#line 6270 "CollectionPage.c"
+ {
+ AppWindow* _tmp10_ = NULL;
+ AppWindow* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ AppWindow* _tmp13_ = NULL;
+ AppWindow* _tmp14_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = app_window_get_instance ();
+#line 672 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = _tmp10_;
+#line 672 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PAGE_WINDOW, PageWindow));
+#line 672 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 673 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = photo;
+#line 673 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo_open_with_external_editor (_tmp12_, &_inner_error_);
+#line 673 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6291 "CollectionPage.c"
+ goto __catch221_g_error;
+ }
+#line 674 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = app_window_get_instance ();
+#line 674 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = _tmp13_;
+#line 674 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PAGE_WINDOW, PageWindow));
+#line 674 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 6302 "CollectionPage.c"
+ }
+ goto __finally221;
+ __catch221_g_error:
+ {
+ GError* err = NULL;
+ AppWindow* _tmp15_ = NULL;
+ AppWindow* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+ Photo* _tmp18_ = NULL;
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ err = _inner_error_;
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _inner_error_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = app_window_get_instance ();
+#line 676 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = _tmp15_;
+#line 676 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PAGE_WINDOW, PageWindow));
+#line 676 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 677 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = err;
+#line 677 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = photo;
+#line 677 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ open_external_editor_error_dialog (_tmp17_, _tmp18_);
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_error_free0 (err);
+#line 6332 "CollectionPage.c"
+ }
+ __finally221:
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_clear_error (&_inner_error_);
+#line 671 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6345 "CollectionPage.c"
+ }
+#line 666 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 6349 "CollectionPage.c"
+}
+
+
+static void collection_page_on_external_edit_raw (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ Photo* photo = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ PhotoFileFormat _tmp11_ = 0;
+ GError * _inner_error_ = NULL;
+#line 681 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 682 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 682 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 682 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 682 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 682 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 682 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 683 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6384 "CollectionPage.c"
+ }
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = _tmp4_;
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = view_collection_get_selected_at (_tmp5_, 0);
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = _tmp6_;
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo);
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 685 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp9_;
+#line 686 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = photo;
+#line 686 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = photo_get_master_file_format (_tmp10_);
+#line 686 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp11_ != PHOTO_FILE_FORMAT_RAW) {
+#line 687 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 687 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6414 "CollectionPage.c"
+ }
+ {
+ AppWindow* _tmp12_ = NULL;
+ AppWindow* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ AppWindow* _tmp15_ = NULL;
+ AppWindow* _tmp16_ = NULL;
+#line 690 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = app_window_get_instance ();
+#line 690 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 690 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PAGE_WINDOW, PageWindow));
+#line 690 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp13_);
+#line 691 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = photo;
+#line 691 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo_open_with_raw_external_editor (_tmp14_, &_inner_error_);
+#line 691 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6436 "CollectionPage.c"
+ goto __catch222_g_error;
+ }
+#line 692 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = app_window_get_instance ();
+#line 692 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = _tmp15_;
+#line 692 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PAGE_WINDOW, PageWindow));
+#line 692 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 6447 "CollectionPage.c"
+ }
+ goto __finally222;
+ __catch222_g_error:
+ {
+ GError* err = NULL;
+ AppWindow* _tmp17_ = NULL;
+ AppWindow* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ err = _inner_error_;
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _inner_error_ = NULL;
+#line 694 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = app_window_get_instance ();
+#line 694 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = _tmp17_;
+#line 694 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_PAGE_WINDOW, PageWindow));
+#line 694 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 695 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = err;
+#line 695 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = resources_launch_editor_failed (_tmp19_);
+#line 695 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = _tmp20_;
+#line 695 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ app_window_error_message (_tmp21_, NULL);
+#line 695 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_free0 (_tmp21_);
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_error_free0 (err);
+#line 6482 "CollectionPage.c"
+ }
+ __finally222:
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_clear_error (&_inner_error_);
+#line 689 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6495 "CollectionPage.c"
+ }
+#line 681 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 6499 "CollectionPage.c"
+}
+
+
+void collection_page_on_set_background (CollectionPage* self) {
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ gboolean desktop = FALSE;
+ gboolean screensaver = FALSE;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 699 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 700 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 700 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photos = _tmp0_;
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = _tmp1_;
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = view_collection_get_selected_sources (_tmp2_);
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = photos;
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ media_source_collection_filter_media (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection), NULL);
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 701 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 705 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = photos;
+#line 705 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 705 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _tmp7_;
+#line 705 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp8_ == 1) {
+#line 6546 "CollectionPage.c"
+ SetBackgroundPhotoDialog* dialog = NULL;
+ SetBackgroundPhotoDialog* _tmp9_ = NULL;
+ SetBackgroundPhotoDialog* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 706 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = set_background_photo_dialog_new ();
+#line 706 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ dialog = _tmp9_;
+#line 707 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = dialog;
+#line 707 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = set_background_photo_dialog_execute (_tmp10_, &_tmp11_, &_tmp12_);
+#line 707 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ desktop = _tmp11_;
+#line 707 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ screensaver = _tmp12_;
+#line 707 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp13_) {
+#line 6567 "CollectionPage.c"
+ AppWindow* _tmp14_ = NULL;
+ AppWindow* _tmp15_ = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ LibraryPhoto* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ AppWindow* _tmp21_ = NULL;
+ AppWindow* _tmp22_ = NULL;
+#line 708 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = app_window_get_instance ();
+#line 708 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = _tmp14_;
+#line 708 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PAGE_WINDOW, PageWindow));
+#line 708 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 709 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = photos;
+#line 709 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 709 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = (LibraryPhoto*) _tmp17_;
+#line 709 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = desktop;
+#line 709 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = screensaver;
+#line 709 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ desktop_integration_set_background (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_PHOTO, Photo), _tmp19_, _tmp20_);
+#line 709 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 710 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = app_window_get_instance ();
+#line 710 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = _tmp21_;
+#line 710 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_PAGE_WINDOW, PageWindow));
+#line 710 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 6607 "CollectionPage.c"
+ }
+#line 705 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _set_background_dialog_unref0 (dialog);
+#line 6611 "CollectionPage.c"
+ } else {
+ GeeArrayList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 712 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = photos;
+#line 712 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 712 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = _tmp24_;
+#line 712 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp25_ > 1) {
+#line 6624 "CollectionPage.c"
+ SetBackgroundSlideshowDialog* dialog = NULL;
+ SetBackgroundSlideshowDialog* _tmp26_ = NULL;
+ gint delay = 0;
+ SetBackgroundSlideshowDialog* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+#line 713 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = set_background_slideshow_dialog_new ();
+#line 713 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ dialog = _tmp26_;
+#line 715 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = dialog;
+#line 715 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp31_ = set_background_slideshow_dialog_execute (_tmp27_, &_tmp28_, &_tmp29_, &_tmp30_);
+#line 715 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ delay = _tmp28_;
+#line 715 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ desktop = _tmp29_;
+#line 715 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ screensaver = _tmp30_;
+#line 715 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp31_) {
+#line 6649 "CollectionPage.c"
+ AppWindow* _tmp32_ = NULL;
+ AppWindow* _tmp33_ = NULL;
+ GeeArrayList* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gboolean _tmp36_ = FALSE;
+ gboolean _tmp37_ = FALSE;
+ AppWindow* _tmp38_ = NULL;
+ AppWindow* _tmp39_ = NULL;
+#line 716 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_ = app_window_get_instance ();
+#line 716 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = _tmp32_;
+#line 716 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_PAGE_WINDOW, PageWindow));
+#line 716 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 717 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp34_ = photos;
+#line 717 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_ = delay;
+#line 717 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp36_ = desktop;
+#line 717 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp37_ = screensaver;
+#line 717 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ desktop_integration_set_background_slideshow (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection), (gdouble) _tmp35_, COLLECTION_PAGE_DESKTOP_SLIDESHOW_TRANSITION_SEC, _tmp36_, _tmp37_);
+#line 719 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_ = app_window_get_instance ();
+#line 719 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp39_ = _tmp38_;
+#line 719 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_PAGE_WINDOW, PageWindow));
+#line 719 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp39_);
+#line 6684 "CollectionPage.c"
+ }
+#line 712 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _set_background_dialog_unref0 (dialog);
+#line 6688 "CollectionPage.c"
+ }
+ }
+#line 699 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photos);
+#line 6693 "CollectionPage.c"
+}
+
+
+static void collection_page_on_slideshow (CollectionPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ GeeList* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ GeeList* sources = NULL;
+ GeeList* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ GeeList* _tmp17_ = NULL;
+ Thumbnail* thumbnail = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ ViewCollection* _tmp22_ = NULL;
+ GeeList* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ DataSource* _tmp25_ = NULL;
+ DataView* _tmp26_ = NULL;
+ Thumbnail* _tmp27_ = NULL;
+ Thumbnail* _tmp28_ = NULL;
+ LibraryPhoto* photo = NULL;
+ Thumbnail* _tmp29_ = NULL;
+ MediaSource* _tmp30_ = NULL;
+ LibraryPhoto* _tmp31_ = NULL;
+ LibraryPhoto* _tmp32_ = NULL;
+ AppWindow* _tmp33_ = NULL;
+ AppWindow* _tmp34_ = NULL;
+ LibraryPhotoSourceCollection* _tmp35_ = NULL;
+ ViewCollection* _tmp36_ = NULL;
+ ViewCollection* _tmp37_ = NULL;
+ LibraryPhoto* _tmp38_ = NULL;
+ SlideshowPage* _tmp39_ = NULL;
+ SlideshowPage* _tmp40_ = NULL;
+#line 724 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (self));
+#line 725 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 725 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _tmp0_;
+#line 725 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 725 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 725 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 725 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_) {
+#line 726 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6749 "CollectionPage.c"
+ }
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _tmp5_;
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = view_collection_get_selected_count (_tmp6_);
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = _tmp7_ > 0;
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp8_) {
+#line 6763 "CollectionPage.c"
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ GeeList* _tmp11_ = NULL;
+#line 730 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 730 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp10_ = _tmp9_;
+#line 730 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp11_ = view_collection_get_selected_sources_of_type (_tmp10_, TYPE_LIBRARY_PHOTO);
+#line 730 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 730 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = _tmp11_;
+#line 730 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp10_);
+#line 6779 "CollectionPage.c"
+ } else {
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ GeeList* _tmp14_ = NULL;
+#line 731 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp12_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 731 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp13_ = _tmp12_;
+#line 731 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp14_ = view_collection_get_sources_of_type (_tmp13_, TYPE_LIBRARY_PHOTO);
+#line 731 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 731 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = _tmp14_;
+#line 731 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 6796 "CollectionPage.c"
+ }
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp15_ = _g_object_ref0 (_tmp4_);
+#line 729 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ sources = _tmp15_;
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp17_ = sources;
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp17_ == NULL) {
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = TRUE;
+#line 6808 "CollectionPage.c"
+ } else {
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp18_ = sources;
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp20_ = _tmp19_;
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp16_ = _tmp20_ == 0;
+#line 6821 "CollectionPage.c"
+ }
+#line 732 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp16_) {
+#line 733 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (sources);
+#line 733 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 733 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6831 "CollectionPage.c"
+ }
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp21_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp22_ = _tmp21_;
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp23_ = sources;
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp24_ = gee_list_get (_tmp23_, 0);
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp25_ = (DataSource*) _tmp24_;
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp26_ = view_collection_get_view_for_source (_tmp22_, _tmp25_);
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_THUMBNAIL, Thumbnail);
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp25_);
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp22_);
+#line 735 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ thumbnail = _tmp27_;
+#line 736 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp28_ = thumbnail;
+#line 736 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp28_ == NULL) {
+#line 737 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (thumbnail);
+#line 737 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (sources);
+#line 737 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 737 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6865 "CollectionPage.c"
+ }
+#line 739 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp29_ = thumbnail;
+#line 739 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp30_ = thumbnail_get_media_source (_tmp29_);
+#line 739 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp31_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp30_) : NULL;
+#line 739 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp31_ == NULL) {
+#line 739 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp30_);
+#line 6877 "CollectionPage.c"
+ }
+#line 739 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ photo = _tmp31_;
+#line 740 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp32_ = photo;
+#line 740 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp32_ == NULL) {
+#line 741 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 741 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (thumbnail);
+#line 741 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (sources);
+#line 741 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 741 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return;
+#line 6895 "CollectionPage.c"
+ }
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp33_ = app_window_get_instance ();
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp34_ = _tmp33_;
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp35_ = library_photo_global;
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp36_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp37_ = _tmp36_;
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp38_ = photo;
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp39_ = slideshow_page_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp37_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_PHOTO, Photo));
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_object_ref_sink (_tmp39_);
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp40_ = _tmp39_;
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ app_window_go_fullscreen (_tmp34_, G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_PAGE, Page));
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp40_);
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _data_collection_unref0 (_tmp37_);
+#line 743 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp34_);
+#line 724 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (photo);
+#line 724 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (thumbnail);
+#line 724 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (sources);
+#line 724 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 6931 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_real_on_ctrl_pressed (Page* base, GdkEventKey* event) {
+ CollectionPage * self;
+ gboolean result = FALSE;
+ GtkToolButton* rotate_button = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GtkToolButton* _tmp2_ = NULL;
+ GtkToolButton* _tmp3_ = NULL;
+ GdkEventKey* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 747 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 748 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->ui;
+#line 748 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = gtk_ui_manager_get_widget (_tmp0_, "/CollectionToolbar/ToolRotate");
+#line 748 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_tool_button_get_type ()) ? ((GtkToolButton*) _tmp1_) : NULL);
+#line 748 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_button = _tmp2_;
+#line 750 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = rotate_button;
+#line 750 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_ != NULL) {
+#line 6959 "CollectionPage.c"
+ GtkToolButton* _tmp4_ = NULL;
+ GtkAction* _tmp5_ = NULL;
+ GtkAction* _tmp6_ = NULL;
+#line 751 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = rotate_button;
+#line 751 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise");
+#line 751 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _tmp5_;
+#line 751 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_activatable_set_related_action (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GTK_TYPE_ACTIVATABLE, GtkActivatable), _tmp6_);
+#line 751 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 6973 "CollectionPage.c"
+ }
+#line 753 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = event;
+#line 753 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = PAGE_CLASS (collection_page_parent_class)->on_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), _tmp7_);
+#line 753 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp8_;
+#line 753 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (rotate_button);
+#line 753 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 6985 "CollectionPage.c"
+}
+
+
+static gboolean collection_page_real_on_ctrl_released (Page* base, GdkEventKey* event) {
+ CollectionPage * self;
+ gboolean result = FALSE;
+ GtkToolButton* rotate_button = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GtkToolButton* _tmp2_ = NULL;
+ GtkToolButton* _tmp3_ = NULL;
+ GdkEventKey* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 756 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 757 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->ui;
+#line 757 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = gtk_ui_manager_get_widget (_tmp0_, "/CollectionToolbar/ToolRotate");
+#line 757 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_tool_button_get_type ()) ? ((GtkToolButton*) _tmp1_) : NULL);
+#line 757 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ rotate_button = _tmp2_;
+#line 759 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp3_ = rotate_button;
+#line 759 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ if (_tmp3_ != NULL) {
+#line 7013 "CollectionPage.c"
+ GtkToolButton* _tmp4_ = NULL;
+ GtkAction* _tmp5_ = NULL;
+ GtkAction* _tmp6_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp4_ = rotate_button;
+#line 760 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp5_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise");
+#line 760 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp6_ = _tmp5_;
+#line 760 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ gtk_activatable_set_related_action (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GTK_TYPE_ACTIVATABLE, GtkActivatable), _tmp6_);
+#line 760 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 7027 "CollectionPage.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp7_ = event;
+#line 762 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp8_ = PAGE_CLASS (collection_page_parent_class)->on_ctrl_released (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage), TYPE_PAGE, Page), _tmp7_);
+#line 762 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp8_;
+#line 762 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _g_object_unref0 (rotate_button);
+#line 762 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 7039 "CollectionPage.c"
+}
+
+
+static gpointer _view_filter_ref0 (gpointer self) {
+#line 766 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return self ? view_filter_ref (self) : NULL;
+#line 7046 "CollectionPage.c"
+}
+
+
+static SearchViewFilter* collection_page_real_get_search_view_filter (CheckerboardPage* base) {
+ CollectionPage * self;
+ SearchViewFilter* result = NULL;
+ CollectionPageCollectionSearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+#line 765 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 766 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 766 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp1_ = _view_filter_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 766 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = _tmp1_;
+#line 766 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 7065 "CollectionPage.c"
+}
+
+
+static guint collection_page_collection_search_view_filter_real_get_criteria (SearchViewFilter* base) {
+ CollectionPageCollectionSearchViewFilter * self;
+ guint result = 0U;
+#line 23 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, CollectionPageCollectionSearchViewFilter);
+#line 24 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ result = (guint) ((((SEARCH_FILTER_CRITERIA_TEXT | SEARCH_FILTER_CRITERIA_FLAG) | SEARCH_FILTER_CRITERIA_MEDIA) | SEARCH_FILTER_CRITERIA_RATING) | SEARCH_FILTER_CRITERIA_SAVEDSEARCH);
+#line 24 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return result;
+#line 7078 "CollectionPage.c"
+}
+
+
+CollectionPageCollectionSearchViewFilter* collection_page_collection_search_view_filter_construct (GType object_type) {
+ CollectionPageCollectionSearchViewFilter* self = NULL;
+#line 22 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = (CollectionPageCollectionSearchViewFilter*) default_search_view_filter_construct (object_type);
+#line 22 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return self;
+#line 7088 "CollectionPage.c"
+}
+
+
+CollectionPageCollectionSearchViewFilter* collection_page_collection_search_view_filter_new (void) {
+#line 22 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ return collection_page_collection_search_view_filter_construct (COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER);
+#line 7095 "CollectionPage.c"
+}
+
+
+static void collection_page_collection_search_view_filter_class_init (CollectionPageCollectionSearchViewFilterClass * klass) {
+#line 22 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_collection_search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 22 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = collection_page_collection_search_view_filter_real_get_criteria;
+#line 7104 "CollectionPage.c"
+}
+
+
+static void collection_page_collection_search_view_filter_instance_init (CollectionPageCollectionSearchViewFilter * self) {
+}
+
+
+GType collection_page_collection_search_view_filter_get_type (void) {
+ static volatile gsize collection_page_collection_search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&collection_page_collection_search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CollectionPageCollectionSearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) collection_page_collection_search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CollectionPageCollectionSearchViewFilter), 0, (GInstanceInitFunc) collection_page_collection_search_view_filter_instance_init, NULL };
+ GType collection_page_collection_search_view_filter_type_id;
+ collection_page_collection_search_view_filter_type_id = g_type_register_static (TYPE_DEFAULT_SEARCH_VIEW_FILTER, "CollectionPageCollectionSearchViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&collection_page_collection_search_view_filter_type_id__volatile, collection_page_collection_search_view_filter_type_id);
+ }
+ return collection_page_collection_search_view_filter_type_id__volatile;
+}
+
+
+static void collection_page_class_init (CollectionPageClass * klass) {
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ collection_page_parent_class = g_type_class_peek_parent (klass);
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ g_type_class_add_private (klass, sizeof (CollectionPagePrivate));
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->get_toolbar = collection_page_real_get_toolbar;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = collection_page_real_init_collect_ui_filenames;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = collection_page_real_init_collect_action_entries;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->init_collect_injection_groups = collection_page_real_init_collect_injection_groups;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->init_actions = collection_page_real_init_actions;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->update_actions = collection_page_real_update_actions;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((CheckerboardPageClass *) klass)->on_item_activated = collection_page_real_on_item_activated;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->on_app_key_pressed = collection_page_real_on_app_key_pressed;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((MediaPageClass *) klass)->on_export = collection_page_real_on_export;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->on_ctrl_pressed = collection_page_real_on_ctrl_pressed;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((PageClass *) klass)->on_ctrl_released = collection_page_real_on_ctrl_released;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ ((CheckerboardPageClass *) klass)->get_search_view_filter = collection_page_real_get_search_view_filter;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = collection_page_finalize;
+#line 7155 "CollectionPage.c"
+}
+
+
+static void collection_page_instance_init (CollectionPage * self) {
+ CollectionPageCollectionSearchViewFilter* _tmp0_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv = COLLECTION_PAGE_GET_PRIVATE (self);
+#line 29 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv->exporter = NULL;
+#line 30 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _tmp0_ = collection_page_collection_search_view_filter_new ();
+#line 30 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self->priv->search_filter = _tmp0_;
+#line 7169 "CollectionPage.c"
+}
+
+
+static void collection_page_finalize (GObject* obj) {
+ CollectionPage * self;
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_COLLECTION_PAGE, CollectionPage);
+#line 29 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _exporter_ui_unref0 (self->priv->exporter);
+#line 30 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 19 "/home/jens/Source/shotwell/src/CollectionPage.vala"
+ G_OBJECT_CLASS (collection_page_parent_class)->finalize (obj);
+#line 7183 "CollectionPage.c"
+}
+
+
+GType collection_page_get_type (void) {
+ static volatile gsize collection_page_type_id__volatile = 0;
+ if (g_once_init_enter (&collection_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CollectionPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) collection_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CollectionPage), 0, (GInstanceInitFunc) collection_page_instance_init, NULL };
+ GType collection_page_type_id;
+ collection_page_type_id = g_type_register_static (TYPE_MEDIA_PAGE, "CollectionPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&collection_page_type_id__volatile, collection_page_type_id);
+ }
+ return collection_page_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/CollectionPage.vala b/src/CollectionPage.vala
index c5fcbee..953f9b5 100644
--- a/src/CollectionPage.vala
+++ b/src/CollectionPage.vala
@@ -22,7 +22,7 @@ public abstract class CollectionPage : MediaPage {
protected class CollectionSearchViewFilter : DefaultSearchViewFilter {
public override uint get_criteria() {
return SearchFilterCriteria.TEXT | SearchFilterCriteria.FLAG |
- SearchFilterCriteria.MEDIA | SearchFilterCriteria.RATING;
+ SearchFilterCriteria.MEDIA | SearchFilterCriteria.RATING | SearchFilterCriteria.SAVEDSEARCH;
}
}
diff --git a/src/ColorTransformation.c b/src/ColorTransformation.c
new file mode 100644
index 0000000..2a3e7c4
--- /dev/null
+++ b/src/ColorTransformation.c
@@ -0,0 +1,13612 @@
+/* ColorTransformation.c generated by valac 0.32.1, the Vala compiler
+ * generated from ColorTransformation.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <float.h>
+#include <math.h>
+#include <string.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <stdio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_RGB_ANALYTIC_PIXEL (rgb_analytic_pixel_get_type ())
+typedef struct _RGBAnalyticPixel RGBAnalyticPixel;
+
+#define TYPE_HSV_ANALYTIC_PIXEL (hsv_analytic_pixel_get_type ())
+typedef struct _HSVAnalyticPixel HSVAnalyticPixel;
+
+#define TYPE_COMPOSITION_MODE (composition_mode_get_type ())
+
+#define TYPE_PIXEL_FORMAT (pixel_format_get_type ())
+
+#define TYPE_PIXEL_TRANSFORMATION_TYPE (pixel_transformation_type_get_type ())
+
+#define TYPE_PIXEL_TRANSFORMATION_BUNDLE (pixel_transformation_bundle_get_type ())
+#define PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundle))
+#define PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define PIXEL_TRANSFORMATION_BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+
+typedef struct _PixelTransformationBundle PixelTransformationBundle;
+typedef struct _PixelTransformationBundleClass PixelTransformationBundleClass;
+typedef struct _PixelTransformationBundlePrivate PixelTransformationBundlePrivate;
+
+#define TYPE_PIXEL_TRANSFORMATION (pixel_transformation_get_type ())
+#define PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformation))
+#define PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+#define IS_PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION))
+#define IS_PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION))
+#define PIXEL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+
+typedef struct _PixelTransformation PixelTransformation;
+typedef struct _PixelTransformationClass PixelTransformationClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _pixel_transformation_bundle_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_bundle_unref (var), NULL)))
+
+#define TYPE_HSV_TRANSFORMATION (hsv_transformation_get_type ())
+#define HSV_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HSV_TRANSFORMATION, HSVTransformation))
+#define HSV_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HSV_TRANSFORMATION, HSVTransformationClass))
+#define IS_HSV_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HSV_TRANSFORMATION))
+#define IS_HSV_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HSV_TRANSFORMATION))
+#define HSV_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HSV_TRANSFORMATION, HSVTransformationClass))
+
+typedef struct _HSVTransformation HSVTransformation;
+typedef struct _HSVTransformationClass HSVTransformationClass;
+
+#define TYPE_EXPANSION_TRANSFORMATION (expansion_transformation_get_type ())
+#define EXPANSION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation))
+#define EXPANSION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformationClass))
+#define IS_EXPANSION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPANSION_TRANSFORMATION))
+#define IS_EXPANSION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPANSION_TRANSFORMATION))
+#define EXPANSION_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformationClass))
+
+typedef struct _ExpansionTransformation ExpansionTransformation;
+typedef struct _ExpansionTransformationClass ExpansionTransformationClass;
+#define _pixel_transformation_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_unref (var), NULL)))
+
+#define TYPE_SHADOW_DETAIL_TRANSFORMATION (shadow_detail_transformation_get_type ())
+#define SHADOW_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation))
+#define SHADOW_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformationClass))
+#define IS_SHADOW_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SHADOW_DETAIL_TRANSFORMATION))
+#define IS_SHADOW_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SHADOW_DETAIL_TRANSFORMATION))
+#define SHADOW_DETAIL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformationClass))
+
+typedef struct _ShadowDetailTransformation ShadowDetailTransformation;
+typedef struct _ShadowDetailTransformationClass ShadowDetailTransformationClass;
+
+#define TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION (highlight_detail_transformation_get_type ())
+#define HIGHLIGHT_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation))
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformationClass))
+#define IS_HIGHLIGHT_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION))
+#define IS_HIGHLIGHT_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION))
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformationClass))
+
+typedef struct _HighlightDetailTransformation HighlightDetailTransformation;
+typedef struct _HighlightDetailTransformationClass HighlightDetailTransformationClass;
+
+#define TYPE_RGB_TRANSFORMATION (rgb_transformation_get_type ())
+#define RGB_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_TRANSFORMATION, RGBTransformation))
+#define RGB_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_TRANSFORMATION, RGBTransformationClass))
+#define IS_RGB_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_TRANSFORMATION))
+#define IS_RGB_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_TRANSFORMATION))
+#define RGB_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_TRANSFORMATION, RGBTransformationClass))
+
+typedef struct _RGBTransformation RGBTransformation;
+typedef struct _RGBTransformationClass RGBTransformationClass;
+
+#define TYPE_TEMPERATURE_TRANSFORMATION (temperature_transformation_get_type ())
+#define TEMPERATURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation))
+#define TEMPERATURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformationClass))
+#define IS_TEMPERATURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEMPERATURE_TRANSFORMATION))
+#define IS_TEMPERATURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEMPERATURE_TRANSFORMATION))
+#define TEMPERATURE_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformationClass))
+
+typedef struct _TemperatureTransformation TemperatureTransformation;
+typedef struct _TemperatureTransformationClass TemperatureTransformationClass;
+
+#define TYPE_TINT_TRANSFORMATION (tint_transformation_get_type ())
+#define TINT_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TINT_TRANSFORMATION, TintTransformation))
+#define TINT_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TINT_TRANSFORMATION, TintTransformationClass))
+#define IS_TINT_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TINT_TRANSFORMATION))
+#define IS_TINT_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TINT_TRANSFORMATION))
+#define TINT_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TINT_TRANSFORMATION, TintTransformationClass))
+
+typedef struct _TintTransformation TintTransformation;
+typedef struct _TintTransformationClass TintTransformationClass;
+
+#define TYPE_SATURATION_TRANSFORMATION (saturation_transformation_get_type ())
+#define SATURATION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SATURATION_TRANSFORMATION, SaturationTransformation))
+#define SATURATION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SATURATION_TRANSFORMATION, SaturationTransformationClass))
+#define IS_SATURATION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SATURATION_TRANSFORMATION))
+#define IS_SATURATION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SATURATION_TRANSFORMATION))
+#define SATURATION_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SATURATION_TRANSFORMATION, SaturationTransformationClass))
+
+typedef struct _SaturationTransformation SaturationTransformation;
+typedef struct _SaturationTransformationClass SaturationTransformationClass;
+
+#define TYPE_EXPOSURE_TRANSFORMATION (exposure_transformation_get_type ())
+#define EXPOSURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation))
+#define EXPOSURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformationClass))
+#define IS_EXPOSURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPOSURE_TRANSFORMATION))
+#define IS_EXPOSURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPOSURE_TRANSFORMATION))
+#define EXPOSURE_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformationClass))
+
+typedef struct _ExposureTransformation ExposureTransformation;
+typedef struct _ExposureTransformationClass ExposureTransformationClass;
+
+#define TYPE_KEY_VALUE_MAP (key_value_map_get_type ())
+#define KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_VALUE_MAP, KeyValueMap))
+#define KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+#define IS_KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_VALUE_MAP))
+#define IS_KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_VALUE_MAP))
+#define KEY_VALUE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+
+typedef struct _KeyValueMap KeyValueMap;
+typedef struct _KeyValueMapClass KeyValueMapClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _key_value_map_unref0(var) ((var == NULL) ? NULL : (var = (key_value_map_unref (var), NULL)))
+
+#define TYPE_PIXEL_TRANSFORMER (pixel_transformer_get_type ())
+#define PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformer))
+#define PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+#define IS_PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMER))
+#define IS_PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMER))
+#define PIXEL_TRANSFORMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+
+typedef struct _PixelTransformer PixelTransformer;
+typedef struct _PixelTransformerClass PixelTransformerClass;
+#define _pixel_transformer_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformer_unref (var), NULL)))
+typedef struct _ParamSpecPixelTransformationBundle ParamSpecPixelTransformationBundle;
+typedef struct _PixelTransformationPrivate PixelTransformationPrivate;
+typedef struct _ParamSpecPixelTransformation ParamSpecPixelTransformation;
+typedef struct _RGBTransformationPrivate RGBTransformationPrivate;
+typedef struct _HSVTransformationPrivate HSVTransformationPrivate;
+typedef struct _TintTransformationPrivate TintTransformationPrivate;
+typedef struct _TemperatureTransformationPrivate TemperatureTransformationPrivate;
+typedef struct _SaturationTransformationPrivate SaturationTransformationPrivate;
+typedef struct _ExposureTransformationPrivate ExposureTransformationPrivate;
+typedef struct _PixelTransformerPrivate PixelTransformerPrivate;
+typedef struct _ParamSpecPixelTransformer ParamSpecPixelTransformer;
+
+#define TYPE_RGB_HISTOGRAM (rgb_histogram_get_type ())
+#define RGB_HISTOGRAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_HISTOGRAM, RGBHistogram))
+#define RGB_HISTOGRAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_HISTOGRAM, RGBHistogramClass))
+#define IS_RGB_HISTOGRAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_HISTOGRAM))
+#define IS_RGB_HISTOGRAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_HISTOGRAM))
+#define RGB_HISTOGRAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_HISTOGRAM, RGBHistogramClass))
+
+typedef struct _RGBHistogram RGBHistogram;
+typedef struct _RGBHistogramClass RGBHistogramClass;
+typedef struct _RGBHistogramPrivate RGBHistogramPrivate;
+typedef struct _ParamSpecRGBHistogram ParamSpecRGBHistogram;
+
+#define TYPE_INTENSITY_HISTOGRAM (intensity_histogram_get_type ())
+#define INTENSITY_HISTOGRAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INTENSITY_HISTOGRAM, IntensityHistogram))
+#define INTENSITY_HISTOGRAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INTENSITY_HISTOGRAM, IntensityHistogramClass))
+#define IS_INTENSITY_HISTOGRAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INTENSITY_HISTOGRAM))
+#define IS_INTENSITY_HISTOGRAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INTENSITY_HISTOGRAM))
+#define INTENSITY_HISTOGRAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INTENSITY_HISTOGRAM, IntensityHistogramClass))
+
+typedef struct _IntensityHistogram IntensityHistogram;
+typedef struct _IntensityHistogramClass IntensityHistogramClass;
+typedef struct _IntensityHistogramPrivate IntensityHistogramPrivate;
+typedef struct _ParamSpecIntensityHistogram ParamSpecIntensityHistogram;
+typedef struct _ExpansionTransformationPrivate ExpansionTransformationPrivate;
+typedef struct _ShadowDetailTransformationPrivate ShadowDetailTransformationPrivate;
+
+#define TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION (hermite_gamma_approximation_function_get_type ())
+#define HERMITE_GAMMA_APPROXIMATION_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION, HermiteGammaApproximationFunction))
+#define HERMITE_GAMMA_APPROXIMATION_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION, HermiteGammaApproximationFunctionClass))
+#define IS_HERMITE_GAMMA_APPROXIMATION_FUNCTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION))
+#define IS_HERMITE_GAMMA_APPROXIMATION_FUNCTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION))
+#define HERMITE_GAMMA_APPROXIMATION_FUNCTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION, HermiteGammaApproximationFunctionClass))
+
+typedef struct _HermiteGammaApproximationFunction HermiteGammaApproximationFunction;
+typedef struct _HermiteGammaApproximationFunctionClass HermiteGammaApproximationFunctionClass;
+#define _hermite_gamma_approximation_function_unref0(var) ((var == NULL) ? NULL : (var = (hermite_gamma_approximation_function_unref (var), NULL)))
+typedef struct _HermiteGammaApproximationFunctionPrivate HermiteGammaApproximationFunctionPrivate;
+typedef struct _ParamSpecHermiteGammaApproximationFunction ParamSpecHermiteGammaApproximationFunction;
+typedef struct _HighlightDetailTransformationPrivate HighlightDetailTransformationPrivate;
+#define _intensity_histogram_unref0(var) ((var == NULL) ? NULL : (var = (intensity_histogram_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _RGBAnalyticPixel {
+ gfloat red;
+ gfloat green;
+ gfloat blue;
+};
+
+struct _HSVAnalyticPixel {
+ gfloat hue;
+ gfloat saturation;
+ gfloat light_value;
+};
+
+typedef enum {
+ COMPOSITION_MODE_NONE,
+ COMPOSITION_MODE_RGB_MATRIX
+} CompositionMode;
+
+typedef enum {
+ PIXEL_FORMAT_RGB,
+ PIXEL_FORMAT_HSV
+} PixelFormat;
+
+typedef enum {
+ PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION,
+ PIXEL_TRANSFORMATION_TYPE_SHADOWS,
+ PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS,
+ PIXEL_TRANSFORMATION_TYPE_TEMPERATURE,
+ PIXEL_TRANSFORMATION_TYPE_TINT,
+ PIXEL_TRANSFORMATION_TYPE_SATURATION,
+ PIXEL_TRANSFORMATION_TYPE_EXPOSURE
+} PixelTransformationType;
+
+struct _PixelTransformationBundle {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PixelTransformationBundlePrivate * priv;
+};
+
+struct _PixelTransformationBundleClass {
+ GTypeClass parent_class;
+ void (*finalize) (PixelTransformationBundle *self);
+};
+
+struct _PixelTransformationBundlePrivate {
+ GeeHashMap* map;
+};
+
+struct _ParamSpecPixelTransformationBundle {
+ GParamSpec parent_instance;
+};
+
+struct _PixelTransformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PixelTransformationPrivate * priv;
+};
+
+struct _PixelTransformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (PixelTransformation *self);
+ PixelFormat (*get_preferred_format) (PixelTransformation* self);
+ CompositionMode (*get_composition_mode) (PixelTransformation* self);
+ void (*compose_with) (PixelTransformation* self, PixelTransformation* other);
+ gboolean (*is_identity) (PixelTransformation* self);
+ void (*transform_pixel_hsv) (PixelTransformation* self, HSVAnalyticPixel* p, HSVAnalyticPixel* result);
+ void (*transform_pixel_rgb) (PixelTransformation* self, RGBAnalyticPixel* p, RGBAnalyticPixel* result);
+ gchar* (*to_string) (PixelTransformation* self);
+ PixelTransformation* (*copy) (PixelTransformation* self);
+};
+
+struct _PixelTransformationPrivate {
+ PixelTransformationType type;
+};
+
+struct _ParamSpecPixelTransformation {
+ GParamSpec parent_instance;
+};
+
+struct _RGBTransformation {
+ PixelTransformation parent_instance;
+ RGBTransformationPrivate * priv;
+ gfloat* matrix_entries;
+ gint matrix_entries_length1;
+ gboolean identity;
+};
+
+struct _RGBTransformationClass {
+ PixelTransformationClass parent_class;
+};
+
+struct _HSVTransformation {
+ PixelTransformation parent_instance;
+ HSVTransformationPrivate * priv;
+};
+
+struct _HSVTransformationClass {
+ PixelTransformationClass parent_class;
+};
+
+struct _TintTransformation {
+ RGBTransformation parent_instance;
+ TintTransformationPrivate * priv;
+};
+
+struct _TintTransformationClass {
+ RGBTransformationClass parent_class;
+};
+
+struct _TintTransformationPrivate {
+ gfloat parameter;
+};
+
+struct _TemperatureTransformation {
+ RGBTransformation parent_instance;
+ TemperatureTransformationPrivate * priv;
+};
+
+struct _TemperatureTransformationClass {
+ RGBTransformationClass parent_class;
+};
+
+struct _TemperatureTransformationPrivate {
+ gfloat parameter;
+};
+
+struct _SaturationTransformation {
+ RGBTransformation parent_instance;
+ SaturationTransformationPrivate * priv;
+};
+
+struct _SaturationTransformationClass {
+ RGBTransformationClass parent_class;
+};
+
+struct _SaturationTransformationPrivate {
+ gfloat parameter;
+};
+
+struct _ExposureTransformation {
+ RGBTransformation parent_instance;
+ ExposureTransformationPrivate * priv;
+};
+
+struct _ExposureTransformationClass {
+ RGBTransformationClass parent_class;
+};
+
+struct _ExposureTransformationPrivate {
+ gfloat parameter;
+};
+
+struct _PixelTransformer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PixelTransformerPrivate * priv;
+};
+
+struct _PixelTransformerClass {
+ GTypeClass parent_class;
+ void (*finalize) (PixelTransformer *self);
+};
+
+struct _PixelTransformerPrivate {
+ GeeArrayList* transformations;
+ PixelTransformation** optimized_transformations;
+ gint optimized_transformations_length1;
+ gint _optimized_transformations_size_;
+ gint optimized_slots_used;
+};
+
+struct _ParamSpecPixelTransformer {
+ GParamSpec parent_instance;
+};
+
+struct _RGBHistogram {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ RGBHistogramPrivate * priv;
+};
+
+struct _RGBHistogramClass {
+ GTypeClass parent_class;
+ void (*finalize) (RGBHistogram *self);
+};
+
+struct _RGBHistogramPrivate {
+ gint* red_counts;
+ gint red_counts_length1;
+ gint _red_counts_size_;
+ gint* green_counts;
+ gint green_counts_length1;
+ gint _green_counts_size_;
+ gint* blue_counts;
+ gint blue_counts_length1;
+ gint _blue_counts_size_;
+ gint* qualitative_red_counts;
+ gint qualitative_red_counts_length1;
+ gint _qualitative_red_counts_size_;
+ gint* qualitative_green_counts;
+ gint qualitative_green_counts_length1;
+ gint _qualitative_green_counts_size_;
+ gint* qualitative_blue_counts;
+ gint qualitative_blue_counts_length1;
+ gint _qualitative_blue_counts_size_;
+ GdkPixbuf* graphic;
+};
+
+struct _ParamSpecRGBHistogram {
+ GParamSpec parent_instance;
+};
+
+struct _IntensityHistogram {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ IntensityHistogramPrivate * priv;
+};
+
+struct _IntensityHistogramClass {
+ GTypeClass parent_class;
+ void (*finalize) (IntensityHistogram *self);
+};
+
+struct _IntensityHistogramPrivate {
+ gint* counts;
+ gint counts_length1;
+ gint _counts_size_;
+ gfloat* probabilities;
+ gint probabilities_length1;
+ gint _probabilities_size_;
+ gfloat* cumulative_probabilities;
+ gint cumulative_probabilities_length1;
+ gint _cumulative_probabilities_size_;
+};
+
+struct _ParamSpecIntensityHistogram {
+ GParamSpec parent_instance;
+};
+
+struct _ExpansionTransformation {
+ HSVTransformation parent_instance;
+ ExpansionTransformationPrivate * priv;
+};
+
+struct _ExpansionTransformationClass {
+ HSVTransformationClass parent_class;
+};
+
+struct _ExpansionTransformationPrivate {
+ gfloat* remap_table;
+ gint remap_table_length1;
+ gint _remap_table_size_;
+ gint low_kink;
+ gint high_kink;
+};
+
+struct _ShadowDetailTransformation {
+ HSVTransformation parent_instance;
+ ShadowDetailTransformationPrivate * priv;
+};
+
+struct _ShadowDetailTransformationClass {
+ HSVTransformationClass parent_class;
+};
+
+struct _ShadowDetailTransformationPrivate {
+ gfloat intensity;
+ gfloat* remap_table;
+ gint remap_table_length1;
+ gint _remap_table_size_;
+};
+
+struct _HermiteGammaApproximationFunction {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ HermiteGammaApproximationFunctionPrivate * priv;
+};
+
+struct _HermiteGammaApproximationFunctionClass {
+ GTypeClass parent_class;
+ void (*finalize) (HermiteGammaApproximationFunction *self);
+};
+
+struct _HermiteGammaApproximationFunctionPrivate {
+ gfloat x_scale;
+ gfloat nonzero_interval_upper;
+};
+
+struct _ParamSpecHermiteGammaApproximationFunction {
+ GParamSpec parent_instance;
+};
+
+struct _HighlightDetailTransformation {
+ HSVTransformation parent_instance;
+ HighlightDetailTransformationPrivate * priv;
+};
+
+struct _HighlightDetailTransformationClass {
+ HSVTransformationClass parent_class;
+};
+
+struct _HighlightDetailTransformationPrivate {
+ gfloat intensity;
+ gfloat* remap_table;
+ gint remap_table_length1;
+ gint _remap_table_size_;
+};
+
+
+static gpointer pixel_transformation_bundle_parent_class = NULL;
+static PixelTransformationBundle* pixel_transformation_bundle_copied_color_adjustments;
+static PixelTransformationBundle* pixel_transformation_bundle_copied_color_adjustments = NULL;
+static gpointer pixel_transformation_parent_class = NULL;
+static gpointer rgb_transformation_parent_class = NULL;
+static gpointer hsv_transformation_parent_class = NULL;
+static gpointer tint_transformation_parent_class = NULL;
+static gpointer temperature_transformation_parent_class = NULL;
+static gpointer saturation_transformation_parent_class = NULL;
+static gpointer exposure_transformation_parent_class = NULL;
+static gpointer pixel_transformer_parent_class = NULL;
+static gpointer rgb_histogram_parent_class = NULL;
+static gpointer intensity_histogram_parent_class = NULL;
+static gpointer expansion_transformation_parent_class = NULL;
+static gpointer shadow_detail_transformation_parent_class = NULL;
+static gpointer hermite_gamma_approximation_function_parent_class = NULL;
+static gpointer highlight_detail_transformation_parent_class = NULL;
+
+GType rgb_analytic_pixel_get_type (void) G_GNUC_CONST;
+RGBAnalyticPixel* rgb_analytic_pixel_dup (const RGBAnalyticPixel* self);
+void rgb_analytic_pixel_free (RGBAnalyticPixel* self);
+#define RGB_ANALYTIC_PIXEL_INV_255 (1.0f / 255.0f)
+void rgb_analytic_pixel_init (RGBAnalyticPixel *self);
+void rgb_analytic_pixel_init_from_components (RGBAnalyticPixel *self, gfloat red, gfloat green, gfloat blue);
+void rgb_analytic_pixel_init_from_quantized_components (RGBAnalyticPixel *self, guchar red_quantized, guchar green_quantized, guchar blue_quantized);
+GType hsv_analytic_pixel_get_type (void) G_GNUC_CONST;
+HSVAnalyticPixel* hsv_analytic_pixel_dup (const HSVAnalyticPixel* self);
+void hsv_analytic_pixel_free (HSVAnalyticPixel* self);
+void rgb_analytic_pixel_init_from_hsv (RGBAnalyticPixel *self, HSVAnalyticPixel* hsv_pixel);
+void hsv_analytic_pixel_to_rgb (HSVAnalyticPixel *self, RGBAnalyticPixel* result);
+guchar rgb_analytic_pixel_quantized_red (RGBAnalyticPixel *self);
+guchar rgb_analytic_pixel_quantized_green (RGBAnalyticPixel *self);
+guchar rgb_analytic_pixel_quantized_blue (RGBAnalyticPixel *self);
+gboolean rgb_analytic_pixel_equals (RGBAnalyticPixel *self, RGBAnalyticPixel* rhs);
+guint rgb_analytic_pixel_hash_code (RGBAnalyticPixel *self);
+void rgb_analytic_pixel_to_hsv (RGBAnalyticPixel *self, HSVAnalyticPixel* result);
+void hsv_analytic_pixel_init_from_rgb (HSVAnalyticPixel *self, RGBAnalyticPixel* p);
+#define HSV_ANALYTIC_PIXEL_INV_255 (1.0f / 255.0f)
+void hsv_analytic_pixel_init (HSVAnalyticPixel *self);
+void hsv_analytic_pixel_init_from_components (HSVAnalyticPixel *self, gfloat hue, gfloat saturation, gfloat light_value);
+void hsv_analytic_pixel_init_from_quantized_components (HSVAnalyticPixel *self, guchar hue_quantized, guchar saturation_quantized, guchar light_value_quantized);
+gboolean hsv_analytic_pixel_equals (HSVAnalyticPixel *self, HSVAnalyticPixel* rhs);
+guint hsv_analytic_pixel_hash_code (HSVAnalyticPixel *self);
+GType composition_mode_get_type (void) G_GNUC_CONST;
+GType pixel_format_get_type (void) G_GNUC_CONST;
+GType pixel_transformation_type_get_type (void) G_GNUC_CONST;
+gpointer pixel_transformation_bundle_ref (gpointer instance);
+void pixel_transformation_bundle_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation_bundle (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation_bundle (GValue* value, gpointer v_object);
+void value_take_pixel_transformation_bundle (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation_bundle (const GValue* value);
+GType pixel_transformation_bundle_get_type (void) G_GNUC_CONST;
+gpointer pixel_transformation_ref (gpointer instance);
+void pixel_transformation_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation (GValue* value, gpointer v_object);
+void value_take_pixel_transformation (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation (const GValue* value);
+GType pixel_transformation_get_type (void) G_GNUC_CONST;
+#define PIXEL_TRANSFORMATION_BUNDLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundlePrivate))
+enum {
+ PIXEL_TRANSFORMATION_BUNDLE_DUMMY_PROPERTY
+};
+PixelTransformationBundle* pixel_transformation_bundle_new (void);
+PixelTransformationBundle* pixel_transformation_bundle_construct (GType object_type);
+PixelTransformationBundle* pixel_transformation_bundle_get_copied_color_adjustments (void);
+void pixel_transformation_bundle_set_copied_color_adjustments (PixelTransformationBundle* adjustments);
+gboolean pixel_transformation_bundle_has_copied_color_adjustments (void);
+void pixel_transformation_bundle_set (PixelTransformationBundle* self, PixelTransformation* transformation);
+PixelTransformationType pixel_transformation_get_transformation_type (PixelTransformation* self);
+void pixel_transformation_bundle_set_to_identity (PixelTransformationBundle* self);
+ExpansionTransformation* expansion_transformation_new_from_extrema (gint black_point, gint white_point);
+ExpansionTransformation* expansion_transformation_construct_from_extrema (GType object_type, gint black_point, gint white_point);
+GType hsv_transformation_get_type (void) G_GNUC_CONST;
+GType expansion_transformation_get_type (void) G_GNUC_CONST;
+ShadowDetailTransformation* shadow_detail_transformation_new (gfloat user_intensity);
+ShadowDetailTransformation* shadow_detail_transformation_construct (GType object_type, gfloat user_intensity);
+GType shadow_detail_transformation_get_type (void) G_GNUC_CONST;
+HighlightDetailTransformation* highlight_detail_transformation_new (gfloat user_intensity);
+HighlightDetailTransformation* highlight_detail_transformation_construct (GType object_type, gfloat user_intensity);
+GType highlight_detail_transformation_get_type (void) G_GNUC_CONST;
+TemperatureTransformation* temperature_transformation_new (gfloat client_parameter);
+TemperatureTransformation* temperature_transformation_construct (GType object_type, gfloat client_parameter);
+GType rgb_transformation_get_type (void) G_GNUC_CONST;
+GType temperature_transformation_get_type (void) G_GNUC_CONST;
+TintTransformation* tint_transformation_new (gfloat client_param);
+TintTransformation* tint_transformation_construct (GType object_type, gfloat client_param);
+GType tint_transformation_get_type (void) G_GNUC_CONST;
+SaturationTransformation* saturation_transformation_new (gfloat client_parameter);
+SaturationTransformation* saturation_transformation_construct (GType object_type, gfloat client_parameter);
+GType saturation_transformation_get_type (void) G_GNUC_CONST;
+ExposureTransformation* exposure_transformation_new (gfloat client_parameter);
+ExposureTransformation* exposure_transformation_construct (GType object_type, gfloat client_parameter);
+GType exposure_transformation_get_type (void) G_GNUC_CONST;
+gpointer key_value_map_ref (gpointer instance);
+void key_value_map_unref (gpointer instance);
+GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_key_value_map (GValue* value, gpointer v_object);
+void value_take_key_value_map (GValue* value, gpointer v_object);
+gpointer value_get_key_value_map (const GValue* value);
+GType key_value_map_get_type (void) G_GNUC_CONST;
+void pixel_transformation_bundle_load (PixelTransformationBundle* self, KeyValueMap* store);
+gchar* key_value_map_get_string (KeyValueMap* self, const gchar* key, const gchar* def);
+ExpansionTransformation* expansion_transformation_new_from_string (const gchar* encoded_transformation);
+ExpansionTransformation* expansion_transformation_construct_from_string (GType object_type, const gchar* encoded_transformation);
+gfloat key_value_map_get_float (KeyValueMap* self, const gchar* key, gfloat def);
+KeyValueMap* pixel_transformation_bundle_save (PixelTransformationBundle* self, const gchar* group);
+KeyValueMap* key_value_map_new (const gchar* group);
+KeyValueMap* key_value_map_construct (GType object_type, const gchar* group);
+PixelTransformation* pixel_transformation_bundle_get_transformation (PixelTransformationBundle* self, PixelTransformationType type);
+void key_value_map_set_string (KeyValueMap* self, const gchar* key, const gchar* value);
+gchar* pixel_transformation_to_string (PixelTransformation* self);
+void key_value_map_set_float (KeyValueMap* self, const gchar* key, gfloat value);
+gfloat shadow_detail_transformation_get_parameter (ShadowDetailTransformation* self);
+gfloat highlight_detail_transformation_get_parameter (HighlightDetailTransformation* self);
+gfloat temperature_transformation_get_parameter (TemperatureTransformation* self);
+gfloat tint_transformation_get_parameter (TintTransformation* self);
+gfloat saturation_transformation_get_parameter (SaturationTransformation* self);
+gfloat exposure_transformation_get_parameter (ExposureTransformation* self);
+gint pixel_transformation_bundle_get_count (PixelTransformationBundle* self);
+GeeIterable* pixel_transformation_bundle_get_transformations (PixelTransformationBundle* self);
+gboolean pixel_transformation_bundle_is_identity (PixelTransformationBundle* self);
+gboolean pixel_transformation_is_identity (PixelTransformation* self);
+gpointer pixel_transformer_ref (gpointer instance);
+void pixel_transformer_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformer (GValue* value, gpointer v_object);
+void value_take_pixel_transformer (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformer (const GValue* value);
+GType pixel_transformer_get_type (void) G_GNUC_CONST;
+PixelTransformer* pixel_transformation_bundle_generate_transformer (PixelTransformationBundle* self);
+PixelTransformer* pixel_transformer_new (void);
+PixelTransformer* pixel_transformer_construct (GType object_type);
+void pixel_transformer_attach_transformation (PixelTransformer* self, PixelTransformation* trans);
+PixelTransformationBundle* pixel_transformation_bundle_copy (PixelTransformationBundle* self);
+static void pixel_transformation_bundle_finalize (PixelTransformationBundle* obj);
+#define PIXEL_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PIXEL_TRANSFORMATION, PixelTransformationPrivate))
+enum {
+ PIXEL_TRANSFORMATION_DUMMY_PROPERTY
+};
+PixelTransformation* pixel_transformation_construct (GType object_type, PixelTransformationType type);
+PixelFormat pixel_transformation_get_preferred_format (PixelTransformation* self);
+static PixelFormat pixel_transformation_real_get_preferred_format (PixelTransformation* self);
+CompositionMode pixel_transformation_get_composition_mode (PixelTransformation* self);
+static CompositionMode pixel_transformation_real_get_composition_mode (PixelTransformation* self);
+void pixel_transformation_compose_with (PixelTransformation* self, PixelTransformation* other);
+static void pixel_transformation_real_compose_with (PixelTransformation* self, PixelTransformation* other);
+static gboolean pixel_transformation_real_is_identity (PixelTransformation* self);
+void pixel_transformation_transform_pixel_hsv (PixelTransformation* self, HSVAnalyticPixel* p, HSVAnalyticPixel* result);
+static void pixel_transformation_real_transform_pixel_hsv (PixelTransformation* self, HSVAnalyticPixel* p, HSVAnalyticPixel* result);
+void pixel_transformation_transform_pixel_rgb (PixelTransformation* self, RGBAnalyticPixel* p, RGBAnalyticPixel* result);
+static void pixel_transformation_real_transform_pixel_rgb (PixelTransformation* self, RGBAnalyticPixel* p, RGBAnalyticPixel* result);
+static gchar* pixel_transformation_real_to_string (PixelTransformation* self);
+PixelTransformation* pixel_transformation_copy (PixelTransformation* self);
+static PixelTransformation* pixel_transformation_real_copy (PixelTransformation* self);
+static void pixel_transformation_finalize (PixelTransformation* obj);
+enum {
+ RGB_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define RGB_TRANSFORMATION_MATRIX_SIZE 16
+RGBTransformation* rgb_transformation_new (PixelTransformationType type);
+RGBTransformation* rgb_transformation_construct (GType object_type, PixelTransformationType type);
+static PixelFormat rgb_transformation_real_get_preferred_format (PixelTransformation* base);
+static CompositionMode rgb_transformation_real_get_composition_mode (PixelTransformation* base);
+static void rgb_transformation_real_compose_with (PixelTransformation* base, PixelTransformation* other);
+static void rgb_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* p, HSVAnalyticPixel* result);
+static void rgb_transformation_real_transform_pixel_rgb (PixelTransformation* base, RGBAnalyticPixel* p, RGBAnalyticPixel* result);
+static gboolean rgb_transformation_real_is_identity (PixelTransformation* base);
+static PixelTransformation* rgb_transformation_real_copy (PixelTransformation* base);
+static void rgb_transformation_finalize (PixelTransformation* obj);
+enum {
+ HSV_TRANSFORMATION_DUMMY_PROPERTY
+};
+HSVTransformation* hsv_transformation_construct (GType object_type, PixelTransformationType type);
+static PixelFormat hsv_transformation_real_get_preferred_format (PixelTransformation* base);
+static void hsv_transformation_real_transform_pixel_rgb (PixelTransformation* base, RGBAnalyticPixel* p, RGBAnalyticPixel* result);
+#define TINT_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TINT_TRANSFORMATION, TintTransformationPrivate))
+enum {
+ TINT_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define TINT_TRANSFORMATION_INTENSITY_FACTOR 0.25f
+#define TINT_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define TINT_TRANSFORMATION_MAX_PARAMETER 16.0f
+static void tint_transformation_finalize (PixelTransformation* obj);
+#define TEMPERATURE_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformationPrivate))
+enum {
+ TEMPERATURE_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define TEMPERATURE_TRANSFORMATION_INTENSITY_FACTOR 0.33f
+#define TEMPERATURE_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define TEMPERATURE_TRANSFORMATION_MAX_PARAMETER 16.0f
+static void temperature_transformation_finalize (PixelTransformation* obj);
+#define SATURATION_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SATURATION_TRANSFORMATION, SaturationTransformationPrivate))
+enum {
+ SATURATION_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define SATURATION_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define SATURATION_TRANSFORMATION_MAX_PARAMETER 16.0f
+static void saturation_transformation_finalize (PixelTransformation* obj);
+#define EXPOSURE_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformationPrivate))
+enum {
+ EXPOSURE_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define EXPOSURE_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define EXPOSURE_TRANSFORMATION_MAX_PARAMETER 16.0f
+static void exposure_transformation_finalize (PixelTransformation* obj);
+#define PIXEL_TRANSFORMER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PIXEL_TRANSFORMER, PixelTransformerPrivate))
+enum {
+ PIXEL_TRANSFORMER_DUMMY_PROPERTY
+};
+PixelTransformer* pixel_transformer_copy (PixelTransformer* self);
+static void pixel_transformer_build_optimized_transformations (PixelTransformer* self);
+static void pixel_transformer_apply_transformations (PixelTransformer* self, RGBAnalyticPixel* p, RGBAnalyticPixel* result);
+void pixel_transformer_detach_transformation (PixelTransformer* self, PixelTransformation* victim);
+void pixel_transformer_replace_transformation (PixelTransformer* self, PixelTransformation* old_trans, PixelTransformation* new_trans);
+void pixel_transformer_transform_pixbuf (PixelTransformer* self, GdkPixbuf* pixbuf, GCancellable* cancellable);
+void pixel_transformer_transform_to_other_pixbuf (PixelTransformer* self, GdkPixbuf* source, GdkPixbuf* dest, GCancellable* cancellable);
+void pixel_transformer_transform_from_fp (PixelTransformer* self, gfloat** fp_pixel_cache, int* fp_pixel_cache_length1, GdkPixbuf* dest);
+static void pixel_transformer_finalize (PixelTransformer* obj);
+gpointer rgb_histogram_ref (gpointer instance);
+void rgb_histogram_unref (gpointer instance);
+GParamSpec* param_spec_rgb_histogram (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_rgb_histogram (GValue* value, gpointer v_object);
+void value_take_rgb_histogram (GValue* value, gpointer v_object);
+gpointer value_get_rgb_histogram (const GValue* value);
+GType rgb_histogram_get_type (void) G_GNUC_CONST;
+#define RGB_HISTOGRAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_RGB_HISTOGRAM, RGBHistogramPrivate))
+enum {
+ RGB_HISTOGRAM_DUMMY_PROPERTY
+};
+#define RGB_HISTOGRAM_MARKED_BACKGROUND ((guchar) 30)
+#define RGB_HISTOGRAM_MARKED_FOREGROUND ((guchar) 210)
+#define RGB_HISTOGRAM_UNMARKED_BACKGROUND ((guchar) 120)
+#define RGB_HISTOGRAM_GRAPHIC_WIDTH 256
+#define RGB_HISTOGRAM_GRAPHIC_HEIGHT 100
+RGBHistogram* rgb_histogram_new (GdkPixbuf* pixbuf);
+RGBHistogram* rgb_histogram_construct (GType object_type, GdkPixbuf* pixbuf);
+static gint rgb_histogram_correct_snap_to_quantization (RGBHistogram* self, gint* buckets, int buckets_length1, gint i);
+static gint rgb_histogram_correct_snap_from_quantization (RGBHistogram* self, gint* buckets, int buckets_length1, gint i);
+static void rgb_histogram_smooth_extrema (RGBHistogram* self, gint** count_data, int* count_data_length1);
+static void rgb_histogram_prepare_qualitative_counts (RGBHistogram* self);
+GdkPixbuf* rgb_histogram_get_graphic (RGBHistogram* self);
+static void rgb_histogram_finalize (RGBHistogram* obj);
+gpointer intensity_histogram_ref (gpointer instance);
+void intensity_histogram_unref (gpointer instance);
+GParamSpec* param_spec_intensity_histogram (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_intensity_histogram (GValue* value, gpointer v_object);
+void value_take_intensity_histogram (GValue* value, gpointer v_object);
+gpointer value_get_intensity_histogram (const GValue* value);
+GType intensity_histogram_get_type (void) G_GNUC_CONST;
+#define INTENSITY_HISTOGRAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_INTENSITY_HISTOGRAM, IntensityHistogramPrivate))
+enum {
+ INTENSITY_HISTOGRAM_DUMMY_PROPERTY
+};
+IntensityHistogram* intensity_histogram_new (GdkPixbuf* pixbuf);
+IntensityHistogram* intensity_histogram_construct (GType object_type, GdkPixbuf* pixbuf);
+gfloat intensity_histogram_get_cumulative_probability (IntensityHistogram* self, gint level);
+static void intensity_histogram_finalize (IntensityHistogram* obj);
+#define EXPANSION_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformationPrivate))
+enum {
+ EXPANSION_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define EXPANSION_TRANSFORMATION_LOW_DISCARD_MASS 0.02f
+#define EXPANSION_TRANSFORMATION_HIGH_DISCARD_MASS 0.02f
+ExpansionTransformation* expansion_transformation_new (IntensityHistogram* histogram);
+ExpansionTransformation* expansion_transformation_construct (GType object_type, IntensityHistogram* histogram);
+static void expansion_transformation_build_remap_table (ExpansionTransformation* self);
+static void expansion_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* pixel, HSVAnalyticPixel* result);
+static gchar* expansion_transformation_real_to_string (PixelTransformation* base);
+gint expansion_transformation_get_white_point (ExpansionTransformation* self);
+gint expansion_transformation_get_black_point (ExpansionTransformation* self);
+static gboolean expansion_transformation_real_is_identity (PixelTransformation* base);
+static PixelTransformation* expansion_transformation_real_copy (PixelTransformation* base);
+static void expansion_transformation_finalize (PixelTransformation* obj);
+#define SHADOW_DETAIL_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformationPrivate))
+enum {
+ SHADOW_DETAIL_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define SHADOW_DETAIL_TRANSFORMATION_MAX_EFFECT_SHIFT 0.5f
+#define SHADOW_DETAIL_TRANSFORMATION_MIN_TONAL_WIDTH 0.1f
+#define SHADOW_DETAIL_TRANSFORMATION_MAX_TONAL_WIDTH 1.0f
+#define SHADOW_DETAIL_TRANSFORMATION_TONAL_WIDTH 1.0f
+#define SHADOW_DETAIL_TRANSFORMATION_MIN_PARAMETER 0.0f
+#define SHADOW_DETAIL_TRANSFORMATION_MAX_PARAMETER 32.0f
+gpointer hermite_gamma_approximation_function_ref (gpointer instance);
+void hermite_gamma_approximation_function_unref (gpointer instance);
+GParamSpec* param_spec_hermite_gamma_approximation_function (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hermite_gamma_approximation_function (GValue* value, gpointer v_object);
+void value_take_hermite_gamma_approximation_function (GValue* value, gpointer v_object);
+gpointer value_get_hermite_gamma_approximation_function (const GValue* value);
+GType hermite_gamma_approximation_function_get_type (void) G_GNUC_CONST;
+HermiteGammaApproximationFunction* hermite_gamma_approximation_function_new (gfloat user_interval_upper);
+HermiteGammaApproximationFunction* hermite_gamma_approximation_function_construct (GType object_type, gfloat user_interval_upper);
+gfloat hermite_gamma_approximation_function_evaluate (HermiteGammaApproximationFunction* self, gfloat x);
+static void shadow_detail_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* pixel, HSVAnalyticPixel* result);
+static PixelTransformation* shadow_detail_transformation_real_copy (PixelTransformation* base);
+static gboolean shadow_detail_transformation_real_is_identity (PixelTransformation* base);
+static void shadow_detail_transformation_finalize (PixelTransformation* obj);
+#define HERMITE_GAMMA_APPROXIMATION_FUNCTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION, HermiteGammaApproximationFunctionPrivate))
+enum {
+ HERMITE_GAMMA_APPROXIMATION_FUNCTION_DUMMY_PROPERTY
+};
+static void hermite_gamma_approximation_function_finalize (HermiteGammaApproximationFunction* obj);
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformationPrivate))
+enum {
+ HIGHLIGHT_DETAIL_TRANSFORMATION_DUMMY_PROPERTY
+};
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_MAX_EFFECT_SHIFT 0.5f
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_MIN_TONAL_WIDTH 0.1f
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_MAX_TONAL_WIDTH 1.0f
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_TONAL_WIDTH 1.0f
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_MIN_PARAMETER (-32.0f)
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_MAX_PARAMETER 0.0f
+static void highlight_detail_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* pixel, HSVAnalyticPixel* result);
+static PixelTransformation* highlight_detail_transformation_real_copy (PixelTransformation* base);
+static gboolean highlight_detail_transformation_real_is_identity (PixelTransformation* base);
+static void highlight_detail_transformation_finalize (PixelTransformation* obj);
+#define AUTO_ENHANCE_SHADOW_DETECT_MIN_INTENSITY 8
+#define AUTO_ENHANCE_SHADOW_DETECT_MAX_INTENSITY 100
+#define AUTO_ENHANCE_SHADOW_DETECT_INTENSITY_RANGE (AUTO_ENHANCE_SHADOW_DETECT_MAX_INTENSITY - AUTO_ENHANCE_SHADOW_DETECT_MIN_INTENSITY)
+#define AUTO_ENHANCE_SHADOW_MODE_HIGH_DISCARD_MASS 0.02f
+#define AUTO_ENHANCE_SHADOW_AGGRESSIVENESS_MUL 0.4f
+#define AUTO_ENHANCE_EMPIRICAL_DARK 30
+PixelTransformationBundle* auto_enhance_create_auto_enhance_adjustments (GdkPixbuf* pixbuf);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+void rgb_analytic_pixel_init (RGBAnalyticPixel *self) {
+#line 14 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (RGBAnalyticPixel));
+#line 15 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).red = 0.0f;
+#line 16 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).green = 0.0f;
+#line 17 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).blue = 0.0f;
+#line 875 "ColorTransformation.c"
+}
+
+
+void rgb_analytic_pixel_init_from_components (RGBAnalyticPixel *self, gfloat red, gfloat green, gfloat blue) {
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat _tmp5_ = 0.0F;
+#line 20 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (RGBAnalyticPixel));
+#line 22 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = red;
+#line 22 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, 0.0f, 1.0f);
+#line 22 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).red = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = green;
+#line 23 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = CLAMP (_tmp2_, 0.0f, 1.0f);
+#line 23 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).green = _tmp3_;
+#line 24 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = blue;
+#line 24 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = CLAMP (_tmp4_, 0.0f, 1.0f);
+#line 24 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).blue = _tmp5_;
+#line 906 "ColorTransformation.c"
+}
+
+
+void rgb_analytic_pixel_init_from_quantized_components (RGBAnalyticPixel *self, guchar red_quantized, guchar green_quantized, guchar blue_quantized) {
+ guchar _tmp0_ = '\0';
+ guchar _tmp1_ = '\0';
+ guchar _tmp2_ = '\0';
+#line 27 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (RGBAnalyticPixel));
+#line 29 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = red_quantized;
+#line 29 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).red = ((gfloat) _tmp0_) * RGB_ANALYTIC_PIXEL_INV_255;
+#line 30 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = green_quantized;
+#line 30 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).green = ((gfloat) _tmp1_) * RGB_ANALYTIC_PIXEL_INV_255;
+#line 31 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = blue_quantized;
+#line 31 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).blue = ((gfloat) _tmp2_) * RGB_ANALYTIC_PIXEL_INV_255;
+#line 928 "ColorTransformation.c"
+}
+
+
+void rgb_analytic_pixel_init_from_hsv (RGBAnalyticPixel *self, HSVAnalyticPixel* hsv_pixel) {
+ RGBAnalyticPixel from_hsv = {0};
+ RGBAnalyticPixel _tmp0_ = {0};
+ RGBAnalyticPixel _tmp1_ = {0};
+ gfloat _tmp2_ = 0.0F;
+ RGBAnalyticPixel _tmp3_ = {0};
+ gfloat _tmp4_ = 0.0F;
+ RGBAnalyticPixel _tmp5_ = {0};
+ gfloat _tmp6_ = 0.0F;
+#line 34 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (hsv_pixel != NULL);
+#line 34 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (RGBAnalyticPixel));
+#line 35 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_to_rgb (hsv_pixel, &_tmp0_);
+#line 35 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ from_hsv = _tmp0_;
+#line 36 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = from_hsv;
+#line 36 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _tmp1_.red;
+#line 36 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).red = _tmp2_;
+#line 37 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = from_hsv;
+#line 37 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp3_.green;
+#line 37 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).green = _tmp4_;
+#line 38 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = from_hsv;
+#line 38 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp5_.blue;
+#line 38 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).blue = _tmp6_;
+#line 967 "ColorTransformation.c"
+}
+
+
+guchar rgb_analytic_pixel_quantized_red (RGBAnalyticPixel *self) {
+ guchar result = '\0';
+ gfloat _tmp0_ = 0.0F;
+#line 42 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = (*self).red;
+#line 42 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = (guchar) (_tmp0_ * 255.0f);
+#line 42 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 980 "ColorTransformation.c"
+}
+
+
+guchar rgb_analytic_pixel_quantized_green (RGBAnalyticPixel *self) {
+ guchar result = '\0';
+ gfloat _tmp0_ = 0.0F;
+#line 46 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = (*self).green;
+#line 46 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = (guchar) (_tmp0_ * 255.0f);
+#line 46 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 993 "ColorTransformation.c"
+}
+
+
+guchar rgb_analytic_pixel_quantized_blue (RGBAnalyticPixel *self) {
+ guchar result = '\0';
+ gfloat _tmp0_ = 0.0F;
+#line 50 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = (*self).blue;
+#line 50 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = (guchar) (_tmp0_ * 255.0f);
+#line 50 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 1006 "ColorTransformation.c"
+}
+
+
+gboolean rgb_analytic_pixel_equals (RGBAnalyticPixel *self, RGBAnalyticPixel* rhs) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gfloat _tmp2_ = 0.0F;
+ RGBAnalyticPixel* _tmp3_ = NULL;
+ gfloat _tmp4_ = 0.0F;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = (*self).red;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = rhs;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = (*_tmp3_).red;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ == _tmp4_) {
+#line 1025 "ColorTransformation.c"
+ gfloat _tmp5_ = 0.0F;
+ RGBAnalyticPixel* _tmp6_ = NULL;
+ gfloat _tmp7_ = 0.0F;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = (*self).green;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = rhs;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = (*_tmp6_).green;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp5_ == _tmp7_;
+#line 1037 "ColorTransformation.c"
+ } else {
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = FALSE;
+#line 1041 "ColorTransformation.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp1_) {
+#line 1045 "ColorTransformation.c"
+ gfloat _tmp8_ = 0.0F;
+ RGBAnalyticPixel* _tmp9_ = NULL;
+ gfloat _tmp10_ = 0.0F;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = (*self).blue;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = rhs;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = (*_tmp9_).blue;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = _tmp8_ == _tmp10_;
+#line 1057 "ColorTransformation.c"
+ } else {
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = FALSE;
+#line 1061 "ColorTransformation.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 54 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 1067 "ColorTransformation.c"
+}
+
+
+guint rgb_analytic_pixel_hash_code (RGBAnalyticPixel *self) {
+ guint result = 0U;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 58 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = (*self).red;
+#line 58 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = (*self).green;
+#line 58 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = (*self).blue;
+#line 58 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = ((((guint) (_tmp0_ * 255.0f)) << 16) + (((guint) (_tmp1_ * 255.0f)) << 8)) + ((guint) (_tmp2_ * 255.0f));
+#line 58 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 1086 "ColorTransformation.c"
+}
+
+
+void rgb_analytic_pixel_to_hsv (RGBAnalyticPixel *self, HSVAnalyticPixel* result) {
+ HSVAnalyticPixel _tmp0_ = {0};
+#line 63 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_init_from_rgb (&_tmp0_, &(*self));
+#line 63 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _tmp0_;
+#line 63 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 1098 "ColorTransformation.c"
+}
+
+
+RGBAnalyticPixel* rgb_analytic_pixel_dup (const RGBAnalyticPixel* self) {
+ RGBAnalyticPixel* dup;
+#line 7 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dup = g_new0 (RGBAnalyticPixel, 1);
+#line 7 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memcpy (dup, self, sizeof (RGBAnalyticPixel));
+#line 7 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return dup;
+#line 1110 "ColorTransformation.c"
+}
+
+
+void rgb_analytic_pixel_free (RGBAnalyticPixel* self) {
+#line 7 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_free (self);
+#line 1117 "ColorTransformation.c"
+}
+
+
+GType rgb_analytic_pixel_get_type (void) {
+ static volatile gsize rgb_analytic_pixel_type_id__volatile = 0;
+ if (g_once_init_enter (&rgb_analytic_pixel_type_id__volatile)) {
+ GType rgb_analytic_pixel_type_id;
+ rgb_analytic_pixel_type_id = g_boxed_type_register_static ("RGBAnalyticPixel", (GBoxedCopyFunc) rgb_analytic_pixel_dup, (GBoxedFreeFunc) rgb_analytic_pixel_free);
+ g_once_init_leave (&rgb_analytic_pixel_type_id__volatile, rgb_analytic_pixel_type_id);
+ }
+ return rgb_analytic_pixel_type_id__volatile;
+}
+
+
+void hsv_analytic_pixel_init (HSVAnalyticPixel *self) {
+#line 74 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (HSVAnalyticPixel));
+#line 75 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = 0.0f;
+#line 76 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).saturation = 0.0f;
+#line 77 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).light_value = 0.0f;
+#line 1141 "ColorTransformation.c"
+}
+
+
+void hsv_analytic_pixel_init_from_components (HSVAnalyticPixel *self, gfloat hue, gfloat saturation, gfloat light_value) {
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat _tmp5_ = 0.0F;
+#line 80 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (HSVAnalyticPixel));
+#line 82 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = hue;
+#line 82 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, 0.0f, 1.0f);
+#line 82 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = _tmp1_;
+#line 83 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = saturation;
+#line 83 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = CLAMP (_tmp2_, 0.0f, 1.0f);
+#line 83 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).saturation = _tmp3_;
+#line 84 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = light_value;
+#line 84 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = CLAMP (_tmp4_, 0.0f, 1.0f);
+#line 84 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).light_value = _tmp5_;
+#line 1172 "ColorTransformation.c"
+}
+
+
+void hsv_analytic_pixel_init_from_quantized_components (HSVAnalyticPixel *self, guchar hue_quantized, guchar saturation_quantized, guchar light_value_quantized) {
+ guchar _tmp0_ = '\0';
+ guchar _tmp1_ = '\0';
+ guchar _tmp2_ = '\0';
+#line 87 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (HSVAnalyticPixel));
+#line 89 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = hue_quantized;
+#line 89 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = ((gfloat) _tmp0_) * HSV_ANALYTIC_PIXEL_INV_255;
+#line 90 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = saturation_quantized;
+#line 90 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).saturation = ((gfloat) _tmp1_) * HSV_ANALYTIC_PIXEL_INV_255;
+#line 91 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = light_value_quantized;
+#line 91 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).light_value = ((gfloat) _tmp2_) * HSV_ANALYTIC_PIXEL_INV_255;
+#line 1194 "ColorTransformation.c"
+}
+
+
+void hsv_analytic_pixel_init_from_rgb (HSVAnalyticPixel *self, RGBAnalyticPixel* p) {
+ gfloat max_component = 0.0F;
+ RGBAnalyticPixel _tmp0_ = {0};
+ gfloat _tmp1_ = 0.0F;
+ RGBAnalyticPixel _tmp2_ = {0};
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ RGBAnalyticPixel _tmp5_ = {0};
+ gfloat _tmp6_ = 0.0F;
+ gfloat _tmp7_ = 0.0F;
+ gfloat min_component = 0.0F;
+ RGBAnalyticPixel _tmp8_ = {0};
+ gfloat _tmp9_ = 0.0F;
+ RGBAnalyticPixel _tmp10_ = {0};
+ gfloat _tmp11_ = 0.0F;
+ gfloat _tmp12_ = 0.0F;
+ RGBAnalyticPixel _tmp13_ = {0};
+ gfloat _tmp14_ = 0.0F;
+ gfloat _tmp15_ = 0.0F;
+ gfloat _tmp16_ = 0.0F;
+ gfloat _tmp17_ = 0.0F;
+ gfloat _tmp18_ = 0.0F;
+ gfloat _tmp22_ = 0.0F;
+ gfloat _tmp53_ = 0.0F;
+ gfloat _tmp54_ = 0.0F;
+ gfloat _tmp55_ = 0.0F;
+ gfloat _tmp56_ = 0.0F;
+ gfloat _tmp57_ = 0.0F;
+ gfloat _tmp58_ = 0.0F;
+#line 94 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (p != NULL);
+#line 94 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memset (self, 0, sizeof (HSVAnalyticPixel));
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *p;
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp0_.red;
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = *p;
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_.green;
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = MAX (_tmp1_, _tmp3_);
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = *p;
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp5_.blue;
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = MAX (_tmp4_, _tmp6_);
+#line 95 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ max_component = _tmp7_;
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = *p;
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = _tmp8_.red;
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = *p;
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp10_.green;
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = MIN (_tmp9_, _tmp11_);
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = *p;
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = _tmp13_.blue;
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = MIN (_tmp12_, _tmp14_);
+#line 96 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ min_component = _tmp15_;
+#line 98 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = max_component;
+#line 98 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).light_value = _tmp16_;
+#line 99 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = max_component;
+#line 99 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp18_ != 0.0f) {
+#line 1275 "ColorTransformation.c"
+ gfloat _tmp19_ = 0.0F;
+ gfloat _tmp20_ = 0.0F;
+ gfloat _tmp21_ = 0.0F;
+#line 99 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = max_component;
+#line 99 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = min_component;
+#line 99 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = max_component;
+#line 99 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = (_tmp19_ - _tmp20_) / _tmp21_;
+#line 1287 "ColorTransformation.c"
+ } else {
+#line 100 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = 0.0f;
+#line 1291 "ColorTransformation.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).saturation = _tmp17_;
+#line 102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = (*self).saturation;
+#line 102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp22_ == 0.0f) {
+#line 103 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = 0.0f;
+#line 1301 "ColorTransformation.c"
+ } else {
+ gfloat delta = 0.0F;
+ gfloat _tmp23_ = 0.0F;
+ gfloat _tmp24_ = 0.0F;
+ RGBAnalyticPixel _tmp25_ = {0};
+ gfloat _tmp26_ = 0.0F;
+ gfloat _tmp27_ = 0.0F;
+ gfloat _tmp49_ = 0.0F;
+ gfloat _tmp50_ = 0.0F;
+ gfloat _tmp52_ = 0.0F;
+#line 105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = max_component;
+#line 105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = min_component;
+#line 105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ delta = _tmp23_ - _tmp24_;
+#line 106 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = *p;
+#line 106 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = _tmp25_.red;
+#line 106 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = max_component;
+#line 106 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp26_ == _tmp27_) {
+#line 1326 "ColorTransformation.c"
+ RGBAnalyticPixel _tmp28_ = {0};
+ gfloat _tmp29_ = 0.0F;
+ RGBAnalyticPixel _tmp30_ = {0};
+ gfloat _tmp31_ = 0.0F;
+ gfloat _tmp32_ = 0.0F;
+#line 107 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = *p;
+#line 107 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = _tmp28_.green;
+#line 107 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = *p;
+#line 107 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = _tmp30_.blue;
+#line 107 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = delta;
+#line 107 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = (_tmp29_ - _tmp31_) / _tmp32_;
+#line 1344 "ColorTransformation.c"
+ } else {
+ RGBAnalyticPixel _tmp33_ = {0};
+ gfloat _tmp34_ = 0.0F;
+ gfloat _tmp35_ = 0.0F;
+#line 108 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = *p;
+#line 108 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = _tmp33_.green;
+#line 108 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = max_component;
+#line 108 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp34_ == _tmp35_) {
+#line 1357 "ColorTransformation.c"
+ RGBAnalyticPixel _tmp36_ = {0};
+ gfloat _tmp37_ = 0.0F;
+ RGBAnalyticPixel _tmp38_ = {0};
+ gfloat _tmp39_ = 0.0F;
+ gfloat _tmp40_ = 0.0F;
+#line 109 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = *p;
+#line 109 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = _tmp36_.blue;
+#line 109 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = *p;
+#line 109 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = _tmp38_.red;
+#line 109 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = delta;
+#line 109 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = 2.0f + ((_tmp37_ - _tmp39_) / _tmp40_);
+#line 1375 "ColorTransformation.c"
+ } else {
+ RGBAnalyticPixel _tmp41_ = {0};
+ gfloat _tmp42_ = 0.0F;
+ gfloat _tmp43_ = 0.0F;
+#line 110 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = *p;
+#line 110 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = _tmp41_.blue;
+#line 110 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = max_component;
+#line 110 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp42_ == _tmp43_) {
+#line 1388 "ColorTransformation.c"
+ RGBAnalyticPixel _tmp44_ = {0};
+ gfloat _tmp45_ = 0.0F;
+ RGBAnalyticPixel _tmp46_ = {0};
+ gfloat _tmp47_ = 0.0F;
+ gfloat _tmp48_ = 0.0F;
+#line 111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = *p;
+#line 111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = _tmp44_.red;
+#line 111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = *p;
+#line 111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = _tmp46_.green;
+#line 111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = delta;
+#line 111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = 4.0f + ((_tmp45_ - _tmp47_) / _tmp48_);
+#line 1406 "ColorTransformation.c"
+ }
+ }
+ }
+#line 114 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = (*self).hue;
+#line 114 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = _tmp49_ * 60.0f;
+#line 115 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = (*self).hue;
+#line 115 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp50_ < 0.0f) {
+#line 1418 "ColorTransformation.c"
+ gfloat _tmp51_ = 0.0F;
+#line 116 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = (*self).hue;
+#line 116 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = _tmp51_ + 360.0f;
+#line 1424 "ColorTransformation.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = (*self).hue;
+#line 118 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = _tmp52_ / 360.0f;
+#line 1430 "ColorTransformation.c"
+ }
+#line 121 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = (*self).hue;
+#line 121 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = CLAMP (_tmp53_, 0.0f, 1.0f);
+#line 121 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).hue = _tmp54_;
+#line 122 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = (*self).saturation;
+#line 122 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = CLAMP (_tmp55_, 0.0f, 1.0f);
+#line 122 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).saturation = _tmp56_;
+#line 123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp57_ = (*self).light_value;
+#line 123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = CLAMP (_tmp57_, 0.0f, 1.0f);
+#line 123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ (*self).light_value = _tmp58_;
+#line 1450 "ColorTransformation.c"
+}
+
+
+void hsv_analytic_pixel_to_rgb (HSVAnalyticPixel *self, RGBAnalyticPixel* result) {
+ RGBAnalyticPixel _result_ = {0};
+ gfloat _tmp0_ = 0.0F;
+#line 127 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_init (&_result_);
+#line 129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = (*self).saturation;
+#line 129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp0_ == 0.0f) {
+#line 1463 "ColorTransformation.c"
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+#line 130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = (*self).light_value;
+#line 130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.red = _tmp1_;
+#line 131 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = (*self).light_value;
+#line 131 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.green = _tmp2_;
+#line 132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = (*self).light_value;
+#line 132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.blue = _tmp3_;
+#line 1479 "ColorTransformation.c"
+ } else {
+ gfloat hue_denorm = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat _tmp5_ = 0.0F;
+ gfloat hue_hexant = 0.0F;
+ gfloat _tmp6_ = 0.0F;
+ gint hexant_i_part = 0;
+ gfloat _tmp7_ = 0.0F;
+ gfloat hexant_f_part = 0.0F;
+ gfloat _tmp8_ = 0.0F;
+ gint _tmp9_ = 0;
+ gfloat p = 0.0F;
+ gfloat _tmp10_ = 0.0F;
+ gfloat _tmp11_ = 0.0F;
+ gfloat q = 0.0F;
+ gfloat _tmp12_ = 0.0F;
+ gfloat _tmp13_ = 0.0F;
+ gfloat _tmp14_ = 0.0F;
+ gfloat t = 0.0F;
+ gfloat _tmp15_ = 0.0F;
+ gfloat _tmp16_ = 0.0F;
+ gfloat _tmp17_ = 0.0F;
+ gint _tmp18_ = 0;
+#line 134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = (*self).hue;
+#line 134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hue_denorm = _tmp4_ * 360.0f;
+#line 135 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = hue_denorm;
+#line 135 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp5_ == 360.0f) {
+#line 136 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hue_denorm = 0.0f;
+#line 1513 "ColorTransformation.c"
+ }
+#line 138 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = hue_denorm;
+#line 138 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hue_hexant = _tmp6_ / 60.0f;
+#line 140 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = hue_hexant;
+#line 140 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hexant_i_part = (gint) _tmp7_;
+#line 142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = hue_hexant;
+#line 142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = hexant_i_part;
+#line 142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hexant_f_part = _tmp8_ - ((gfloat) _tmp9_);
+#line 145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = (*self).light_value;
+#line 145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = (*self).saturation;
+#line 145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ p = _tmp10_ * (1.0f - _tmp11_);
+#line 146 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = (*self).light_value;
+#line 146 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = (*self).saturation;
+#line 146 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = hexant_f_part;
+#line 146 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ q = _tmp12_ * (1.0f - (_tmp13_ * _tmp14_));
+#line 147 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = (*self).light_value;
+#line 147 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = (*self).saturation;
+#line 147 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = hexant_f_part;
+#line 147 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ t = _tmp15_ * (1.0f - (_tmp16_ * (1.0f - _tmp17_)));
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = hexant_i_part;
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ switch (_tmp18_) {
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ case 0:
+#line 1557 "ColorTransformation.c"
+ {
+ gfloat _tmp19_ = 0.0F;
+ gfloat _tmp20_ = 0.0F;
+ gfloat _tmp21_ = 0.0F;
+#line 159 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = (*self).light_value;
+#line 159 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.red = _tmp19_;
+#line 160 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = t;
+#line 160 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.green = _tmp20_;
+#line 161 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = p;
+#line 161 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.blue = _tmp21_;
+#line 162 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 1576 "ColorTransformation.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ case 1:
+#line 1580 "ColorTransformation.c"
+ {
+ gfloat _tmp22_ = 0.0F;
+ gfloat _tmp23_ = 0.0F;
+ gfloat _tmp24_ = 0.0F;
+#line 165 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = q;
+#line 165 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.red = _tmp22_;
+#line 166 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = (*self).light_value;
+#line 166 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.green = _tmp23_;
+#line 167 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = p;
+#line 167 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.blue = _tmp24_;
+#line 168 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 1599 "ColorTransformation.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ case 2:
+#line 1603 "ColorTransformation.c"
+ {
+ gfloat _tmp25_ = 0.0F;
+ gfloat _tmp26_ = 0.0F;
+ gfloat _tmp27_ = 0.0F;
+#line 171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = p;
+#line 171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.red = _tmp25_;
+#line 172 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = (*self).light_value;
+#line 172 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.green = _tmp26_;
+#line 173 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = t;
+#line 173 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.blue = _tmp27_;
+#line 174 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 1622 "ColorTransformation.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ case 3:
+#line 1626 "ColorTransformation.c"
+ {
+ gfloat _tmp28_ = 0.0F;
+ gfloat _tmp29_ = 0.0F;
+ gfloat _tmp30_ = 0.0F;
+#line 177 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = p;
+#line 177 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.red = _tmp28_;
+#line 178 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = q;
+#line 178 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.green = _tmp29_;
+#line 179 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = (*self).light_value;
+#line 179 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.blue = _tmp30_;
+#line 180 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 1645 "ColorTransformation.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ case 4:
+#line 1649 "ColorTransformation.c"
+ {
+ gfloat _tmp31_ = 0.0F;
+ gfloat _tmp32_ = 0.0F;
+ gfloat _tmp33_ = 0.0F;
+#line 183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = t;
+#line 183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.red = _tmp31_;
+#line 184 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = p;
+#line 184 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.green = _tmp32_;
+#line 185 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = (*self).light_value;
+#line 185 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.blue = _tmp33_;
+#line 186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 1668 "ColorTransformation.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ case 5:
+#line 1672 "ColorTransformation.c"
+ {
+ gfloat _tmp34_ = 0.0F;
+ gfloat _tmp35_ = 0.0F;
+ gfloat _tmp36_ = 0.0F;
+#line 189 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = (*self).light_value;
+#line 189 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.red = _tmp34_;
+#line 190 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = p;
+#line 190 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.green = _tmp35_;
+#line 191 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = q;
+#line 191 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.blue = _tmp36_;
+#line 192 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 1691 "ColorTransformation.c"
+ }
+ default:
+ {
+#line 195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_error ("ColorTransformation.vala:195: bad color hexant in HSV-to-RGB conversio" \
+"n");
+#line 1697 "ColorTransformation.c"
+ }
+ }
+ }
+#line 199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _result_;
+#line 199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 1705 "ColorTransformation.c"
+}
+
+
+gboolean hsv_analytic_pixel_equals (HSVAnalyticPixel *self, HSVAnalyticPixel* rhs) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gfloat _tmp2_ = 0.0F;
+ HSVAnalyticPixel _tmp3_ = {0};
+ gfloat _tmp4_ = 0.0F;
+#line 202 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (rhs != NULL, FALSE);
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = (*self).hue;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = *rhs;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp3_.hue;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ == _tmp4_) {
+#line 1726 "ColorTransformation.c"
+ gfloat _tmp5_ = 0.0F;
+ HSVAnalyticPixel _tmp6_ = {0};
+ gfloat _tmp7_ = 0.0F;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = (*self).saturation;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = *rhs;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp6_.saturation;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp5_ == _tmp7_;
+#line 1738 "ColorTransformation.c"
+ } else {
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = FALSE;
+#line 1742 "ColorTransformation.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp1_) {
+#line 1746 "ColorTransformation.c"
+ gfloat _tmp8_ = 0.0F;
+ HSVAnalyticPixel _tmp9_ = {0};
+ gfloat _tmp10_ = 0.0F;
+#line 204 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = (*self).light_value;
+#line 204 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = *rhs;
+#line 204 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _tmp9_.light_value;
+#line 204 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = _tmp8_ == _tmp10_;
+#line 1758 "ColorTransformation.c"
+ } else {
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = FALSE;
+#line 1762 "ColorTransformation.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 203 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 1768 "ColorTransformation.c"
+}
+
+
+guint hsv_analytic_pixel_hash_code (HSVAnalyticPixel *self) {
+ guint result = 0U;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 208 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = (*self).hue;
+#line 208 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = (*self).saturation;
+#line 208 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = (*self).light_value;
+#line 208 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = ((((guint) (_tmp0_ * 255.0f)) << 16) + (((guint) (_tmp1_ * 255.0f)) << 8)) + ((guint) (_tmp2_ * 255.0f));
+#line 208 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 1787 "ColorTransformation.c"
+}
+
+
+HSVAnalyticPixel* hsv_analytic_pixel_dup (const HSVAnalyticPixel* self) {
+ HSVAnalyticPixel* dup;
+#line 67 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dup = g_new0 (HSVAnalyticPixel, 1);
+#line 67 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ memcpy (dup, self, sizeof (HSVAnalyticPixel));
+#line 67 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return dup;
+#line 1799 "ColorTransformation.c"
+}
+
+
+void hsv_analytic_pixel_free (HSVAnalyticPixel* self) {
+#line 67 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_free (self);
+#line 1806 "ColorTransformation.c"
+}
+
+
+GType hsv_analytic_pixel_get_type (void) {
+ static volatile gsize hsv_analytic_pixel_type_id__volatile = 0;
+ if (g_once_init_enter (&hsv_analytic_pixel_type_id__volatile)) {
+ GType hsv_analytic_pixel_type_id;
+ hsv_analytic_pixel_type_id = g_boxed_type_register_static ("HSVAnalyticPixel", (GBoxedCopyFunc) hsv_analytic_pixel_dup, (GBoxedFreeFunc) hsv_analytic_pixel_free);
+ g_once_init_leave (&hsv_analytic_pixel_type_id__volatile, hsv_analytic_pixel_type_id);
+ }
+ return hsv_analytic_pixel_type_id__volatile;
+}
+
+
+GType composition_mode_get_type (void) {
+ static volatile gsize composition_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&composition_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{COMPOSITION_MODE_NONE, "COMPOSITION_MODE_NONE", "none"}, {COMPOSITION_MODE_RGB_MATRIX, "COMPOSITION_MODE_RGB_MATRIX", "rgb-matrix"}, {0, NULL, NULL}};
+ GType composition_mode_type_id;
+ composition_mode_type_id = g_enum_register_static ("CompositionMode", values);
+ g_once_init_leave (&composition_mode_type_id__volatile, composition_mode_type_id);
+ }
+ return composition_mode_type_id__volatile;
+}
+
+
+GType pixel_format_get_type (void) {
+ static volatile gsize pixel_format_type_id__volatile = 0;
+ if (g_once_init_enter (&pixel_format_type_id__volatile)) {
+ static const GEnumValue values[] = {{PIXEL_FORMAT_RGB, "PIXEL_FORMAT_RGB", "rgb"}, {PIXEL_FORMAT_HSV, "PIXEL_FORMAT_HSV", "hsv"}, {0, NULL, NULL}};
+ GType pixel_format_type_id;
+ pixel_format_type_id = g_enum_register_static ("PixelFormat", values);
+ g_once_init_leave (&pixel_format_type_id__volatile, pixel_format_type_id);
+ }
+ return pixel_format_type_id__volatile;
+}
+
+
+GType pixel_transformation_type_get_type (void) {
+ static volatile gsize pixel_transformation_type_type_id__volatile = 0;
+ if (g_once_init_enter (&pixel_transformation_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION, "PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION", "tone-expansion"}, {PIXEL_TRANSFORMATION_TYPE_SHADOWS, "PIXEL_TRANSFORMATION_TYPE_SHADOWS", "shadows"}, {PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS, "PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS", "highlights"}, {PIXEL_TRANSFORMATION_TYPE_TEMPERATURE, "PIXEL_TRANSFORMATION_TYPE_TEMPERATURE", "temperature"}, {PIXEL_TRANSFORMATION_TYPE_TINT, "PIXEL_TRANSFORMATION_TYPE_TINT", "tint"}, {PIXEL_TRANSFORMATION_TYPE_SATURATION, "PIXEL_TRANSFORMATION_TYPE_SATURATION", "saturation"}, {PIXEL_TRANSFORMATION_TYPE_EXPOSURE, "PIXEL_TRANSFORMATION_TYPE_EXPOSURE", "exposure"}, {0, NULL, NULL}};
+ GType pixel_transformation_type_type_id;
+ pixel_transformation_type_type_id = g_enum_register_static ("PixelTransformationType", values);
+ g_once_init_leave (&pixel_transformation_type_type_id__volatile, pixel_transformation_type_type_id);
+ }
+ return pixel_transformation_type_type_id__volatile;
+}
+
+
+PixelTransformationBundle* pixel_transformation_bundle_construct (GType object_type) {
+ PixelTransformationBundle* self = NULL;
+#line 239 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (PixelTransformationBundle*) g_type_create_instance (object_type);
+#line 239 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 1863 "ColorTransformation.c"
+}
+
+
+PixelTransformationBundle* pixel_transformation_bundle_new (void) {
+#line 239 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return pixel_transformation_bundle_construct (TYPE_PIXEL_TRANSFORMATION_BUNDLE);
+#line 1870 "ColorTransformation.c"
+}
+
+
+static gpointer _pixel_transformation_bundle_ref0 (gpointer self) {
+#line 243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self ? pixel_transformation_bundle_ref (self) : NULL;
+#line 1877 "ColorTransformation.c"
+}
+
+
+PixelTransformationBundle* pixel_transformation_bundle_get_copied_color_adjustments (void) {
+ PixelTransformationBundle* result = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformation_bundle_copied_color_adjustments;
+#line 243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _pixel_transformation_bundle_ref0 (_tmp0_);
+#line 243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp1_;
+#line 243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 1893 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_bundle_set_copied_color_adjustments (PixelTransformationBundle* adjustments) {
+ PixelTransformationBundle* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (adjustments));
+#line 247 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = adjustments;
+#line 247 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _pixel_transformation_bundle_ref0 (_tmp0_);
+#line 247 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_bundle_unref0 (pixel_transformation_bundle_copied_color_adjustments);
+#line 247 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_copied_color_adjustments = _tmp1_;
+#line 1910 "ColorTransformation.c"
+}
+
+
+gboolean pixel_transformation_bundle_has_copied_color_adjustments (void) {
+ gboolean result = FALSE;
+ PixelTransformationBundle* _tmp0_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformation_bundle_copied_color_adjustments;
+#line 251 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_ != NULL;
+#line 251 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 1923 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_bundle_set (PixelTransformationBundle* self, PixelTransformation* transformation) {
+ GeeHashMap* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+ PixelTransformationType _tmp2_ = 0;
+ PixelTransformation* _tmp3_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self));
+#line 254 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (transformation));
+#line 255 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->map;
+#line 255 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = transformation;
+#line 255 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = pixel_transformation_get_transformation_type (_tmp1_);
+#line 255 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = transformation;
+#line 255 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) ((gint) _tmp2_)), _tmp3_);
+#line 1946 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_bundle_set_to_identity (PixelTransformationBundle* self) {
+ ExpansionTransformation* _tmp0_ = NULL;
+ ExpansionTransformation* _tmp1_ = NULL;
+ ShadowDetailTransformation* _tmp2_ = NULL;
+ ShadowDetailTransformation* _tmp3_ = NULL;
+ HighlightDetailTransformation* _tmp4_ = NULL;
+ HighlightDetailTransformation* _tmp5_ = NULL;
+ TemperatureTransformation* _tmp6_ = NULL;
+ TemperatureTransformation* _tmp7_ = NULL;
+ TintTransformation* _tmp8_ = NULL;
+ TintTransformation* _tmp9_ = NULL;
+ SaturationTransformation* _tmp10_ = NULL;
+ SaturationTransformation* _tmp11_ = NULL;
+ ExposureTransformation* _tmp12_ = NULL;
+ ExposureTransformation* _tmp13_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self));
+#line 259 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = expansion_transformation_new_from_extrema (0, 255);
+#line 259 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp0_;
+#line 259 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 259 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp1_);
+#line 260 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = shadow_detail_transformation_new (0.0f);
+#line 260 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_;
+#line 260 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 260 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp3_);
+#line 261 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = highlight_detail_transformation_new (0.0f);
+#line 261 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _tmp4_;
+#line 261 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 261 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp5_);
+#line 262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = temperature_transformation_new (0.0f);
+#line 262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp6_;
+#line 262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp7_);
+#line 263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = tint_transformation_new (0.0f);
+#line 263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = _tmp8_;
+#line 263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp9_);
+#line 264 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = saturation_transformation_new (0.0f);
+#line 264 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp10_;
+#line 264 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 264 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp11_);
+#line 265 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = exposure_transformation_new (0.0f);
+#line 265 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp12_;
+#line 265 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 265 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp13_);
+#line 2023 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_bundle_load (PixelTransformationBundle* self, KeyValueMap* store) {
+ gchar* expansion_params_encoded = NULL;
+ KeyValueMap* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ KeyValueMap* _tmp8_ = NULL;
+ gfloat _tmp9_ = 0.0F;
+ ShadowDetailTransformation* _tmp10_ = NULL;
+ ShadowDetailTransformation* _tmp11_ = NULL;
+ KeyValueMap* _tmp12_ = NULL;
+ gfloat _tmp13_ = 0.0F;
+ HighlightDetailTransformation* _tmp14_ = NULL;
+ HighlightDetailTransformation* _tmp15_ = NULL;
+ KeyValueMap* _tmp16_ = NULL;
+ gfloat _tmp17_ = 0.0F;
+ TemperatureTransformation* _tmp18_ = NULL;
+ TemperatureTransformation* _tmp19_ = NULL;
+ KeyValueMap* _tmp20_ = NULL;
+ gfloat _tmp21_ = 0.0F;
+ TintTransformation* _tmp22_ = NULL;
+ TintTransformation* _tmp23_ = NULL;
+ KeyValueMap* _tmp24_ = NULL;
+ gfloat _tmp25_ = 0.0F;
+ SaturationTransformation* _tmp26_ = NULL;
+ SaturationTransformation* _tmp27_ = NULL;
+ KeyValueMap* _tmp28_ = NULL;
+ gfloat _tmp29_ = 0.0F;
+ ExposureTransformation* _tmp30_ = NULL;
+ ExposureTransformation* _tmp31_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self));
+#line 268 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (store));
+#line 269 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = store;
+#line 269 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = key_value_map_get_string (_tmp0_, "expansion", "-");
+#line 269 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ expansion_params_encoded = _tmp1_;
+#line 270 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = expansion_params_encoded;
+#line 270 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (g_strcmp0 (_tmp2_, "-") == 0) {
+#line 2070 "ColorTransformation.c"
+ ExpansionTransformation* _tmp3_ = NULL;
+ ExpansionTransformation* _tmp4_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = expansion_transformation_new_from_extrema (0, 255);
+#line 271 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp3_;
+#line 271 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 271 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp4_);
+#line 2081 "ColorTransformation.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+ ExpansionTransformation* _tmp6_ = NULL;
+ ExpansionTransformation* _tmp7_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = expansion_params_encoded;
+#line 273 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = expansion_transformation_new_from_string (_tmp5_);
+#line 273 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp6_;
+#line 273 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 273 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp7_);
+#line 2096 "ColorTransformation.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = store;
+#line 275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = key_value_map_get_float (_tmp8_, "shadows", 0.0f);
+#line 275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = shadow_detail_transformation_new (_tmp9_);
+#line 275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp10_;
+#line 275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp11_);
+#line 276 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = store;
+#line 276 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = key_value_map_get_float (_tmp12_, "highlights", 0.0f);
+#line 276 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = highlight_detail_transformation_new (_tmp13_);
+#line 276 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = _tmp14_;
+#line 276 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 276 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp15_);
+#line 277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = store;
+#line 277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = key_value_map_get_float (_tmp16_, "temperature", 0.0f);
+#line 277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = temperature_transformation_new (_tmp17_);
+#line 277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = _tmp18_;
+#line 277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp19_);
+#line 278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = store;
+#line 278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = key_value_map_get_float (_tmp20_, "tint", 0.0f);
+#line 278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = tint_transformation_new (_tmp21_);
+#line 278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = _tmp22_;
+#line 278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp23_);
+#line 279 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = store;
+#line 279 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = key_value_map_get_float (_tmp24_, "saturation", 0.0f);
+#line 279 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = saturation_transformation_new (_tmp25_);
+#line 279 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = _tmp26_;
+#line 279 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 279 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp27_);
+#line 280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = store;
+#line 280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = key_value_map_get_float (_tmp28_, "exposure", 0.0f);
+#line 280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = exposure_transformation_new (_tmp29_);
+#line 280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = _tmp30_;
+#line 280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp31_);
+#line 268 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_free0 (expansion_params_encoded);
+#line 2172 "ColorTransformation.c"
+}
+
+
+KeyValueMap* pixel_transformation_bundle_save (PixelTransformationBundle* self, const gchar* group) {
+ KeyValueMap* result = NULL;
+ KeyValueMap* store = NULL;
+ const gchar* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ ExpansionTransformation* new_expansion_trans = NULL;
+ PixelTransformation* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ ShadowDetailTransformation* new_shadows_trans = NULL;
+ PixelTransformation* _tmp5_ = NULL;
+ gfloat _tmp6_ = 0.0F;
+ HighlightDetailTransformation* new_highlight_trans = NULL;
+ PixelTransformation* _tmp7_ = NULL;
+ gfloat _tmp8_ = 0.0F;
+ TemperatureTransformation* new_temp_trans = NULL;
+ PixelTransformation* _tmp9_ = NULL;
+ gfloat _tmp10_ = 0.0F;
+ TintTransformation* new_tint_trans = NULL;
+ PixelTransformation* _tmp11_ = NULL;
+ gfloat _tmp12_ = 0.0F;
+ SaturationTransformation* new_sat_trans = NULL;
+ PixelTransformation* _tmp13_ = NULL;
+ gfloat _tmp14_ = 0.0F;
+ ExposureTransformation* new_exposure_trans = NULL;
+ PixelTransformation* _tmp15_ = NULL;
+ gfloat _tmp16_ = 0.0F;
+#line 283 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self), NULL);
+#line 283 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (group != NULL, NULL);
+#line 284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = group;
+#line 284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = key_value_map_new (_tmp0_);
+#line 284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ store = _tmp1_;
+#line 286 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = pixel_transformation_bundle_get_transformation (self, PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION);
+#line 286 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ new_expansion_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
+#line 288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (new_expansion_trans != NULL, "new_expansion_trans != null");
+#line 289 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = pixel_transformation_to_string (G_TYPE_CHECK_INSTANCE_CAST (new_expansion_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 289 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp3_;
+#line 289 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ key_value_map_set_string (store, "expansion", _tmp4_);
+#line 289 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_free0 (_tmp4_);
+#line 291 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = pixel_transformation_bundle_get_transformation (self, PIXEL_TRANSFORMATION_TYPE_SHADOWS);
+#line 291 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ new_shadows_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation);
+#line 293 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (new_shadows_trans != NULL, "new_shadows_trans != null");
+#line 294 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = shadow_detail_transformation_get_parameter (new_shadows_trans);
+#line 294 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ key_value_map_set_float (store, "shadows", _tmp6_);
+#line 296 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = pixel_transformation_bundle_get_transformation (self, PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS);
+#line 296 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ new_highlight_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation);
+#line 298 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (new_highlight_trans != NULL, "new_highlight_trans != null");
+#line 299 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = highlight_detail_transformation_get_parameter (new_highlight_trans);
+#line 299 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ key_value_map_set_float (store, "highlights", _tmp8_);
+#line 301 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = pixel_transformation_bundle_get_transformation (self, PIXEL_TRANSFORMATION_TYPE_TEMPERATURE);
+#line 301 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ new_temp_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation);
+#line 303 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (new_temp_trans != NULL, "new_temp_trans != null");
+#line 304 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = temperature_transformation_get_parameter (new_temp_trans);
+#line 304 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ key_value_map_set_float (store, "temperature", _tmp10_);
+#line 306 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = pixel_transformation_bundle_get_transformation (self, PIXEL_TRANSFORMATION_TYPE_TINT);
+#line 306 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ new_tint_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_TINT_TRANSFORMATION, TintTransformation);
+#line 308 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (new_tint_trans != NULL, "new_tint_trans != null");
+#line 309 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = tint_transformation_get_parameter (new_tint_trans);
+#line 309 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ key_value_map_set_float (store, "tint", _tmp12_);
+#line 311 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = pixel_transformation_bundle_get_transformation (self, PIXEL_TRANSFORMATION_TYPE_SATURATION);
+#line 311 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ new_sat_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_SATURATION_TRANSFORMATION, SaturationTransformation);
+#line 313 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (new_sat_trans != NULL, "new_sat_trans != null");
+#line 314 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = saturation_transformation_get_parameter (new_sat_trans);
+#line 314 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ key_value_map_set_float (store, "saturation", _tmp14_);
+#line 316 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = pixel_transformation_bundle_get_transformation (self, PIXEL_TRANSFORMATION_TYPE_EXPOSURE);
+#line 316 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ new_exposure_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation);
+#line 318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (new_exposure_trans != NULL, "new_exposure_trans != null");
+#line 319 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = exposure_transformation_get_parameter (new_exposure_trans);
+#line 319 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ key_value_map_set_float (store, "exposure", _tmp16_);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = store;
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (new_exposure_trans);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (new_sat_trans);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (new_tint_trans);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (new_temp_trans);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (new_highlight_trans);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (new_shadows_trans);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (new_expansion_trans);
+#line 321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2305 "ColorTransformation.c"
+}
+
+
+gint pixel_transformation_bundle_get_count (PixelTransformationBundle* self) {
+ gint result = 0;
+ GeeHashMap* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 324 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self), 0);
+#line 325 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->map;
+#line 325 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 325 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _tmp1_;
+#line 325 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp2_;
+#line 325 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2326 "ColorTransformation.c"
+}
+
+
+PixelTransformation* pixel_transformation_bundle_get_transformation (PixelTransformationBundle* self, PixelTransformationType type) {
+ PixelTransformation* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ PixelTransformationType _tmp1_ = 0;
+ gpointer _tmp2_ = NULL;
+#line 328 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self), NULL);
+#line 329 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->map;
+#line 329 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = type;
+#line 329 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) ((gint) _tmp1_)));
+#line 329 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = (PixelTransformation*) _tmp2_;
+#line 329 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2347 "ColorTransformation.c"
+}
+
+
+GeeIterable* pixel_transformation_bundle_get_transformations (PixelTransformationBundle* self) {
+ GeeIterable* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+#line 332 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self), NULL);
+#line 333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->map;
+#line 333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _tmp1_;
+#line 333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable);
+#line 333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2368 "ColorTransformation.c"
+}
+
+
+gboolean pixel_transformation_bundle_is_identity (PixelTransformationBundle* self) {
+ gboolean result = FALSE;
+#line 336 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self), FALSE);
+#line 2376 "ColorTransformation.c"
+ {
+ GeeIterator* _adjustment_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformation_bundle_get_transformations (self);
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp0_;
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_;
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _adjustment_it = _tmp3_;
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 2397 "ColorTransformation.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ PixelTransformation* adjustment = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ PixelTransformation* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _adjustment_it;
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp5_) {
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 2413 "ColorTransformation.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _adjustment_it;
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjustment = (PixelTransformation*) _tmp7_;
+#line 338 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = adjustment;
+#line 338 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = pixel_transformation_is_identity (_tmp8_);
+#line 338 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp9_) {
+#line 339 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = FALSE;
+#line 339 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (adjustment);
+#line 339 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_adjustment_it);
+#line 339 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2435 "ColorTransformation.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (adjustment);
+#line 2439 "ColorTransformation.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_adjustment_it);
+#line 2443 "ColorTransformation.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = TRUE;
+#line 342 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2449 "ColorTransformation.c"
+}
+
+
+PixelTransformer* pixel_transformation_bundle_generate_transformer (PixelTransformationBundle* self) {
+ PixelTransformer* result = NULL;
+ PixelTransformer* transformer = NULL;
+ PixelTransformer* _tmp0_ = NULL;
+#line 345 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self), NULL);
+#line 346 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformer_new ();
+#line 346 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ transformer = _tmp0_;
+#line 2463 "ColorTransformation.c"
+ {
+ GeeIterator* _transformation_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = pixel_transformation_bundle_get_transformations (self);
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _tmp1_;
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = gee_iterable_iterator (_tmp2_);
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp3_;
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_tmp2_);
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _transformation_it = _tmp4_;
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 2484 "ColorTransformation.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ PixelTransformation* transformation = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ PixelTransformer* _tmp9_ = NULL;
+ PixelTransformation* _tmp10_ = NULL;
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _transformation_it;
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp6_) {
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 2500 "ColorTransformation.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _transformation_it;
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ transformation = (PixelTransformation*) _tmp8_;
+#line 348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = transformer;
+#line 348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = transformation;
+#line 348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_attach_transformation (_tmp9_, _tmp10_);
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (transformation);
+#line 2516 "ColorTransformation.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_transformation_it);
+#line 2520 "ColorTransformation.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = transformer;
+#line 350 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2526 "ColorTransformation.c"
+}
+
+
+PixelTransformationBundle* pixel_transformation_bundle_copy (PixelTransformationBundle* self) {
+ PixelTransformationBundle* result = NULL;
+ PixelTransformationBundle* bundle = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+#line 353 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (self), NULL);
+#line 354 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformation_bundle_new ();
+#line 354 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ bundle = _tmp0_;
+#line 2540 "ColorTransformation.c"
+ {
+ GeeIterator* _transformation_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = pixel_transformation_bundle_get_transformations (self);
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _tmp1_;
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = gee_iterable_iterator (_tmp2_);
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp3_;
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_tmp2_);
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _transformation_it = _tmp4_;
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 2561 "ColorTransformation.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ PixelTransformation* transformation = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ PixelTransformationBundle* _tmp9_ = NULL;
+ PixelTransformation* _tmp10_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _transformation_it;
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp6_) {
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 2577 "ColorTransformation.c"
+ }
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _transformation_it;
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ transformation = (PixelTransformation*) _tmp8_;
+#line 356 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = bundle;
+#line 356 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = transformation;
+#line 356 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp9_, _tmp10_);
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (transformation);
+#line 2593 "ColorTransformation.c"
+ }
+#line 355 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_transformation_it);
+#line 2597 "ColorTransformation.c"
+ }
+#line 358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = bundle;
+#line 358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2603 "ColorTransformation.c"
+}
+
+
+static void value_pixel_transformation_bundle_init (GValue* value) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 2610 "ColorTransformation.c"
+}
+
+
+static void value_pixel_transformation_bundle_free_value (GValue* value) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (value->data[0].v_pointer) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_unref (value->data[0].v_pointer);
+#line 2619 "ColorTransformation.c"
+ }
+}
+
+
+static void value_pixel_transformation_bundle_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = pixel_transformation_bundle_ref (src_value->data[0].v_pointer);
+#line 2629 "ColorTransformation.c"
+ } else {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2633 "ColorTransformation.c"
+ }
+}
+
+
+static gpointer value_pixel_transformation_bundle_peek_pointer (const GValue* value) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 2641 "ColorTransformation.c"
+}
+
+
+static gchar* value_pixel_transformation_bundle_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (collect_values[0].v_pointer) {
+#line 2648 "ColorTransformation.c"
+ PixelTransformationBundle* object;
+ object = collect_values[0].v_pointer;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2655 "ColorTransformation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2659 "ColorTransformation.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = pixel_transformation_bundle_ref (object);
+#line 2663 "ColorTransformation.c"
+ } else {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 2667 "ColorTransformation.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 2671 "ColorTransformation.c"
+}
+
+
+static gchar* value_pixel_transformation_bundle_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PixelTransformationBundle** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!object_p) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2682 "ColorTransformation.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!value->data[0].v_pointer) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = NULL;
+#line 2688 "ColorTransformation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2692 "ColorTransformation.c"
+ } else {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = pixel_transformation_bundle_ref (value->data[0].v_pointer);
+#line 2696 "ColorTransformation.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 2700 "ColorTransformation.c"
+}
+
+
+GParamSpec* param_spec_pixel_transformation_bundle (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPixelTransformationBundle* spec;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PIXEL_TRANSFORMATION_BUNDLE), NULL);
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return G_PARAM_SPEC (spec);
+#line 2714 "ColorTransformation.c"
+}
+
+
+gpointer value_get_pixel_transformation_bundle (const GValue* value) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMATION_BUNDLE), NULL);
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 2723 "ColorTransformation.c"
+}
+
+
+void value_set_pixel_transformation_bundle (GValue* value, gpointer v_object) {
+ PixelTransformationBundle* old;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMATION_BUNDLE));
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXEL_TRANSFORMATION_BUNDLE));
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_ref (value->data[0].v_pointer);
+#line 2743 "ColorTransformation.c"
+ } else {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 2747 "ColorTransformation.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_unref (old);
+#line 2753 "ColorTransformation.c"
+ }
+}
+
+
+void value_take_pixel_transformation_bundle (GValue* value, gpointer v_object) {
+ PixelTransformationBundle* old;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMATION_BUNDLE));
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXEL_TRANSFORMATION_BUNDLE));
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 2772 "ColorTransformation.c"
+ } else {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 2776 "ColorTransformation.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_unref (old);
+#line 2782 "ColorTransformation.c"
+ }
+}
+
+
+static void pixel_transformation_bundle_class_init (PixelTransformationBundleClass * klass) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_parent_class = g_type_class_peek_parent (klass);
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationBundleClass *) klass)->finalize = pixel_transformation_bundle_finalize;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (PixelTransformationBundlePrivate));
+#line 2794 "ColorTransformation.c"
+}
+
+
+static void pixel_transformation_bundle_instance_init (PixelTransformationBundle * self) {
+ void* _tmp0_ = NULL;
+ GDestroyNotify _tmp1_ = NULL;
+ GeeHashDataFunc _tmp2_ = NULL;
+ void* _tmp3_ = NULL;
+ GDestroyNotify _tmp4_ = NULL;
+ GeeEqualDataFunc _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = PIXEL_TRANSFORMATION_BUNDLE_GET_PRIVATE (self);
+#line 236 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = gee_functions_get_hash_func_for (G_TYPE_INT, &_tmp0_, &_tmp1_);
+#line 236 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = gee_functions_get_equal_func_for (G_TYPE_INT, &_tmp3_, &_tmp4_);
+#line 236 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = gee_hash_map_new (G_TYPE_INT, NULL, NULL, TYPE_PIXEL_TRANSFORMATION, (GBoxedCopyFunc) pixel_transformation_ref, pixel_transformation_unref, _tmp2_, _tmp0_, _tmp1_, _tmp5_, _tmp3_, _tmp4_, NULL, NULL, NULL);
+#line 236 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->map = _tmp6_;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->ref_count = 1;
+#line 2818 "ColorTransformation.c"
+}
+
+
+static void pixel_transformation_bundle_finalize (PixelTransformationBundle* obj) {
+ PixelTransformationBundle * self;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundle);
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_signal_handlers_destroy (self);
+#line 236 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (self->priv->map);
+#line 2830 "ColorTransformation.c"
+}
+
+
+GType pixel_transformation_bundle_get_type (void) {
+ static volatile gsize pixel_transformation_bundle_type_id__volatile = 0;
+ if (g_once_init_enter (&pixel_transformation_bundle_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_pixel_transformation_bundle_init, value_pixel_transformation_bundle_free_value, value_pixel_transformation_bundle_copy_value, value_pixel_transformation_bundle_peek_pointer, "p", value_pixel_transformation_bundle_collect_value, "p", value_pixel_transformation_bundle_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PixelTransformationBundleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixel_transformation_bundle_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixelTransformationBundle), 0, (GInstanceInitFunc) pixel_transformation_bundle_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType pixel_transformation_bundle_type_id;
+ pixel_transformation_bundle_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PixelTransformationBundle", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&pixel_transformation_bundle_type_id__volatile, pixel_transformation_bundle_type_id);
+ }
+ return pixel_transformation_bundle_type_id__volatile;
+}
+
+
+gpointer pixel_transformation_bundle_ref (gpointer instance) {
+ PixelTransformationBundle* self;
+ self = instance;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return instance;
+#line 2855 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_bundle_unref (gpointer instance) {
+ PixelTransformationBundle* self;
+ self = instance;
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_BUNDLE_GET_CLASS (self)->finalize (self);
+#line 233 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2868 "ColorTransformation.c"
+ }
+}
+
+
+PixelTransformation* pixel_transformation_construct (GType object_type, PixelTransformationType type) {
+ PixelTransformation* self = NULL;
+ PixelTransformationType _tmp0_ = 0;
+#line 365 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (PixelTransformation*) g_type_create_instance (object_type);
+#line 366 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = type;
+#line 366 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->type = _tmp0_;
+#line 365 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 2884 "ColorTransformation.c"
+}
+
+
+PixelTransformationType pixel_transformation_get_transformation_type (PixelTransformation* self) {
+ PixelTransformationType result = 0;
+ PixelTransformationType _tmp0_ = 0;
+#line 369 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (self), 0);
+#line 370 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->type;
+#line 370 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 370 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2899 "ColorTransformation.c"
+}
+
+
+static PixelFormat pixel_transformation_real_get_preferred_format (PixelTransformation* self) {
+#line 373 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_critical ("Type `%s' does not implement abstract method `pixel_transformation_get_preferred_format'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 373 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return 0;
+#line 2908 "ColorTransformation.c"
+}
+
+
+PixelFormat pixel_transformation_get_preferred_format (PixelTransformation* self) {
+#line 373 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (self), 0);
+#line 373 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return PIXEL_TRANSFORMATION_GET_CLASS (self)->get_preferred_format (self);
+#line 2917 "ColorTransformation.c"
+}
+
+
+static CompositionMode pixel_transformation_real_get_composition_mode (PixelTransformation* self) {
+ CompositionMode result = 0;
+#line 376 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = COMPOSITION_MODE_NONE;
+#line 376 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2927 "ColorTransformation.c"
+}
+
+
+CompositionMode pixel_transformation_get_composition_mode (PixelTransformation* self) {
+#line 375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (self), 0);
+#line 375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return PIXEL_TRANSFORMATION_GET_CLASS (self)->get_composition_mode (self);
+#line 2936 "ColorTransformation.c"
+}
+
+
+static void pixel_transformation_real_compose_with (PixelTransformation* self, PixelTransformation* other) {
+#line 379 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (other));
+#line 380 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_error ("ColorTransformation.vala:380: %s", "PixelTransformation: compose_with( ): this type of pixel " "transformation doesn't support composition.");
+#line 2945 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_compose_with (PixelTransformation* self, PixelTransformation* other) {
+#line 379 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (self));
+#line 379 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_GET_CLASS (self)->compose_with (self, other);
+#line 2954 "ColorTransformation.c"
+}
+
+
+static gboolean pixel_transformation_real_is_identity (PixelTransformation* self) {
+ gboolean result = FALSE;
+#line 385 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = TRUE;
+#line 385 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 2964 "ColorTransformation.c"
+}
+
+
+gboolean pixel_transformation_is_identity (PixelTransformation* self) {
+#line 384 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (self), FALSE);
+#line 384 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return PIXEL_TRANSFORMATION_GET_CLASS (self)->is_identity (self);
+#line 2973 "ColorTransformation.c"
+}
+
+
+static void pixel_transformation_real_transform_pixel_hsv (PixelTransformation* self, HSVAnalyticPixel* p, HSVAnalyticPixel* result) {
+ HSVAnalyticPixel _tmp0_ = {0};
+#line 388 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (p != NULL);
+#line 389 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *p;
+#line 389 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _tmp0_;
+#line 389 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 2987 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_transform_pixel_hsv (PixelTransformation* self, HSVAnalyticPixel* p, HSVAnalyticPixel* result) {
+#line 388 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (self));
+#line 388 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_GET_CLASS (self)->transform_pixel_hsv (self, p, result);
+#line 2996 "ColorTransformation.c"
+}
+
+
+static void pixel_transformation_real_transform_pixel_rgb (PixelTransformation* self, RGBAnalyticPixel* p, RGBAnalyticPixel* result) {
+ RGBAnalyticPixel _tmp0_ = {0};
+#line 392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (p != NULL);
+#line 393 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *p;
+#line 393 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _tmp0_;
+#line 393 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 3010 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_transform_pixel_rgb (PixelTransformation* self, RGBAnalyticPixel* p, RGBAnalyticPixel* result) {
+#line 392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (self));
+#line 392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_GET_CLASS (self)->transform_pixel_rgb (self, p, result);
+#line 3019 "ColorTransformation.c"
+}
+
+
+static gchar* pixel_transformation_real_to_string (PixelTransformation* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = g_strdup ("PixelTransformation");
+#line 397 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 397 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 3032 "ColorTransformation.c"
+}
+
+
+gchar* pixel_transformation_to_string (PixelTransformation* self) {
+#line 396 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (self), NULL);
+#line 396 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return PIXEL_TRANSFORMATION_GET_CLASS (self)->to_string (self);
+#line 3041 "ColorTransformation.c"
+}
+
+
+static PixelTransformation* pixel_transformation_real_copy (PixelTransformation* self) {
+#line 400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_critical ("Type `%s' does not implement abstract method `pixel_transformation_copy'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 3050 "ColorTransformation.c"
+}
+
+
+PixelTransformation* pixel_transformation_copy (PixelTransformation* self) {
+#line 400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (self), NULL);
+#line 400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return PIXEL_TRANSFORMATION_GET_CLASS (self)->copy (self);
+#line 3059 "ColorTransformation.c"
+}
+
+
+static void value_pixel_transformation_init (GValue* value) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 3066 "ColorTransformation.c"
+}
+
+
+static void value_pixel_transformation_free_value (GValue* value) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (value->data[0].v_pointer) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_unref (value->data[0].v_pointer);
+#line 3075 "ColorTransformation.c"
+ }
+}
+
+
+static void value_pixel_transformation_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = pixel_transformation_ref (src_value->data[0].v_pointer);
+#line 3085 "ColorTransformation.c"
+ } else {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3089 "ColorTransformation.c"
+ }
+}
+
+
+static gpointer value_pixel_transformation_peek_pointer (const GValue* value) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 3097 "ColorTransformation.c"
+}
+
+
+static gchar* value_pixel_transformation_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (collect_values[0].v_pointer) {
+#line 3104 "ColorTransformation.c"
+ PixelTransformation* object;
+ object = collect_values[0].v_pointer;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3111 "ColorTransformation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3115 "ColorTransformation.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = pixel_transformation_ref (object);
+#line 3119 "ColorTransformation.c"
+ } else {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 3123 "ColorTransformation.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 3127 "ColorTransformation.c"
+}
+
+
+static gchar* value_pixel_transformation_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PixelTransformation** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!object_p) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3138 "ColorTransformation.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!value->data[0].v_pointer) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = NULL;
+#line 3144 "ColorTransformation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3148 "ColorTransformation.c"
+ } else {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = pixel_transformation_ref (value->data[0].v_pointer);
+#line 3152 "ColorTransformation.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 3156 "ColorTransformation.c"
+}
+
+
+GParamSpec* param_spec_pixel_transformation (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPixelTransformation* spec;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PIXEL_TRANSFORMATION), NULL);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return G_PARAM_SPEC (spec);
+#line 3170 "ColorTransformation.c"
+}
+
+
+gpointer value_get_pixel_transformation (const GValue* value) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMATION), NULL);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 3179 "ColorTransformation.c"
+}
+
+
+void value_set_pixel_transformation (GValue* value, gpointer v_object) {
+ PixelTransformation* old;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMATION));
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXEL_TRANSFORMATION));
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_ref (value->data[0].v_pointer);
+#line 3199 "ColorTransformation.c"
+ } else {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 3203 "ColorTransformation.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_unref (old);
+#line 3209 "ColorTransformation.c"
+ }
+}
+
+
+void value_take_pixel_transformation (GValue* value, gpointer v_object) {
+ PixelTransformation* old;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMATION));
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXEL_TRANSFORMATION));
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 3228 "ColorTransformation.c"
+ } else {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 3232 "ColorTransformation.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_unref (old);
+#line 3238 "ColorTransformation.c"
+ }
+}
+
+
+static void pixel_transformation_class_init (PixelTransformationClass * klass) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = pixel_transformation_finalize;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (PixelTransformationPrivate));
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->get_preferred_format = pixel_transformation_real_get_preferred_format;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->get_composition_mode = pixel_transformation_real_get_composition_mode;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->compose_with = pixel_transformation_real_compose_with;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->is_identity = pixel_transformation_real_is_identity;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_hsv = pixel_transformation_real_transform_pixel_hsv;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_rgb = pixel_transformation_real_transform_pixel_rgb;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->to_string = pixel_transformation_real_to_string;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->copy = pixel_transformation_real_copy;
+#line 3266 "ColorTransformation.c"
+}
+
+
+static void pixel_transformation_instance_init (PixelTransformation * self) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = PIXEL_TRANSFORMATION_GET_PRIVATE (self);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->ref_count = 1;
+#line 3275 "ColorTransformation.c"
+}
+
+
+static void pixel_transformation_finalize (PixelTransformation* obj) {
+ PixelTransformation * self;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PIXEL_TRANSFORMATION, PixelTransformation);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_signal_handlers_destroy (self);
+#line 3285 "ColorTransformation.c"
+}
+
+
+GType pixel_transformation_get_type (void) {
+ static volatile gsize pixel_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&pixel_transformation_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_pixel_transformation_init, value_pixel_transformation_free_value, value_pixel_transformation_copy_value, value_pixel_transformation_peek_pointer, "p", value_pixel_transformation_collect_value, "p", value_pixel_transformation_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PixelTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixel_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixelTransformation), 0, (GInstanceInitFunc) pixel_transformation_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType pixel_transformation_type_id;
+ pixel_transformation_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PixelTransformation", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&pixel_transformation_type_id__volatile, pixel_transformation_type_id);
+ }
+ return pixel_transformation_type_id__volatile;
+}
+
+
+gpointer pixel_transformation_ref (gpointer instance) {
+ PixelTransformation* self;
+ self = instance;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return instance;
+#line 3310 "ColorTransformation.c"
+}
+
+
+void pixel_transformation_unref (gpointer instance) {
+ PixelTransformation* self;
+ self = instance;
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_GET_CLASS (self)->finalize (self);
+#line 362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3323 "ColorTransformation.c"
+ }
+}
+
+
+RGBTransformation* rgb_transformation_construct (GType object_type, PixelTransformationType type) {
+ RGBTransformation* self = NULL;
+ PixelTransformationType _tmp0_ = 0;
+ gfloat* _tmp1_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = type;
+#line 413 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (RGBTransformation*) pixel_transformation_construct (object_type, _tmp0_);
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = g_new0 (gfloat, 16);
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[0] = 1.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[1] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[2] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[3] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[4] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[5] = 1.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[6] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[7] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[8] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[9] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[10] = 1.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[11] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[12] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[13] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[14] = 0.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[15] = 1.0f;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->matrix_entries = (g_free (self->matrix_entries), NULL);
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->matrix_entries = _tmp1_;
+#line 419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->matrix_entries_length1 = 16;
+#line 412 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 3378 "ColorTransformation.c"
+}
+
+
+RGBTransformation* rgb_transformation_new (PixelTransformationType type) {
+#line 412 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return rgb_transformation_construct (TYPE_RGB_TRANSFORMATION, type);
+#line 3385 "ColorTransformation.c"
+}
+
+
+static PixelFormat rgb_transformation_real_get_preferred_format (PixelTransformation* base) {
+ RGBTransformation * self;
+ PixelFormat result = 0;
+#line 426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 427 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = PIXEL_FORMAT_RGB;
+#line 427 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 3398 "ColorTransformation.c"
+}
+
+
+static CompositionMode rgb_transformation_real_get_composition_mode (PixelTransformation* base) {
+ RGBTransformation * self;
+ CompositionMode result = 0;
+#line 430 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 431 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = COMPOSITION_MODE_RGB_MATRIX;
+#line 431 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 3411 "ColorTransformation.c"
+}
+
+
+static gpointer _pixel_transformation_ref0 (gpointer self) {
+#line 439 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self ? pixel_transformation_ref (self) : NULL;
+#line 3418 "ColorTransformation.c"
+}
+
+
+static void rgb_transformation_real_compose_with (PixelTransformation* base, PixelTransformation* other) {
+ RGBTransformation * self;
+ PixelTransformation* _tmp0_ = NULL;
+ CompositionMode _tmp1_ = 0;
+ RGBTransformation* transform = NULL;
+ PixelTransformation* _tmp2_ = NULL;
+ RGBTransformation* _tmp3_ = NULL;
+ gfloat* result_matrix_entries = NULL;
+ gfloat* _tmp4_ = NULL;
+ gint result_matrix_entries_length1 = 0;
+ gint _result_matrix_entries_size_ = 0;
+ gfloat* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ RGBTransformation* _tmp6_ = NULL;
+ gfloat* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gfloat _tmp8_ = 0.0F;
+ gfloat* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gfloat _tmp10_ = 0.0F;
+ RGBTransformation* _tmp11_ = NULL;
+ gfloat* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gfloat _tmp13_ = 0.0F;
+ gfloat* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gfloat _tmp15_ = 0.0F;
+ RGBTransformation* _tmp16_ = NULL;
+ gfloat* _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ gfloat _tmp18_ = 0.0F;
+ gfloat* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gfloat _tmp20_ = 0.0F;
+ RGBTransformation* _tmp21_ = NULL;
+ gfloat* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gfloat _tmp23_ = 0.0F;
+ gfloat* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gfloat _tmp25_ = 0.0F;
+ gfloat _tmp26_ = 0.0F;
+ gfloat* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ RGBTransformation* _tmp28_ = NULL;
+ gfloat* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gfloat _tmp30_ = 0.0F;
+ gfloat* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gfloat _tmp32_ = 0.0F;
+ RGBTransformation* _tmp33_ = NULL;
+ gfloat* _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ gfloat _tmp35_ = 0.0F;
+ gfloat* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gfloat _tmp37_ = 0.0F;
+ RGBTransformation* _tmp38_ = NULL;
+ gfloat* _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ gfloat _tmp40_ = 0.0F;
+ gfloat* _tmp41_ = NULL;
+ gint _tmp41__length1 = 0;
+ gfloat _tmp42_ = 0.0F;
+ RGBTransformation* _tmp43_ = NULL;
+ gfloat* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ gfloat _tmp45_ = 0.0F;
+ gfloat* _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ gfloat _tmp47_ = 0.0F;
+ gfloat _tmp48_ = 0.0F;
+ gfloat* _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ RGBTransformation* _tmp50_ = NULL;
+ gfloat* _tmp51_ = NULL;
+ gint _tmp51__length1 = 0;
+ gfloat _tmp52_ = 0.0F;
+ gfloat* _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ gfloat _tmp54_ = 0.0F;
+ RGBTransformation* _tmp55_ = NULL;
+ gfloat* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ gfloat _tmp57_ = 0.0F;
+ gfloat* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gfloat _tmp59_ = 0.0F;
+ RGBTransformation* _tmp60_ = NULL;
+ gfloat* _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+ gfloat _tmp62_ = 0.0F;
+ gfloat* _tmp63_ = NULL;
+ gint _tmp63__length1 = 0;
+ gfloat _tmp64_ = 0.0F;
+ RGBTransformation* _tmp65_ = NULL;
+ gfloat* _tmp66_ = NULL;
+ gint _tmp66__length1 = 0;
+ gfloat _tmp67_ = 0.0F;
+ gfloat* _tmp68_ = NULL;
+ gint _tmp68__length1 = 0;
+ gfloat _tmp69_ = 0.0F;
+ gfloat _tmp70_ = 0.0F;
+ gfloat* _tmp71_ = NULL;
+ gint _tmp71__length1 = 0;
+ RGBTransformation* _tmp72_ = NULL;
+ gfloat* _tmp73_ = NULL;
+ gint _tmp73__length1 = 0;
+ gfloat _tmp74_ = 0.0F;
+ gfloat* _tmp75_ = NULL;
+ gint _tmp75__length1 = 0;
+ gfloat _tmp76_ = 0.0F;
+ RGBTransformation* _tmp77_ = NULL;
+ gfloat* _tmp78_ = NULL;
+ gint _tmp78__length1 = 0;
+ gfloat _tmp79_ = 0.0F;
+ gfloat* _tmp80_ = NULL;
+ gint _tmp80__length1 = 0;
+ gfloat _tmp81_ = 0.0F;
+ RGBTransformation* _tmp82_ = NULL;
+ gfloat* _tmp83_ = NULL;
+ gint _tmp83__length1 = 0;
+ gfloat _tmp84_ = 0.0F;
+ gfloat* _tmp85_ = NULL;
+ gint _tmp85__length1 = 0;
+ gfloat _tmp86_ = 0.0F;
+ RGBTransformation* _tmp87_ = NULL;
+ gfloat* _tmp88_ = NULL;
+ gint _tmp88__length1 = 0;
+ gfloat _tmp89_ = 0.0F;
+ gfloat* _tmp90_ = NULL;
+ gint _tmp90__length1 = 0;
+ gfloat _tmp91_ = 0.0F;
+ gfloat _tmp92_ = 0.0F;
+ gfloat* _tmp93_ = NULL;
+ gint _tmp93__length1 = 0;
+ RGBTransformation* _tmp94_ = NULL;
+ gfloat* _tmp95_ = NULL;
+ gint _tmp95__length1 = 0;
+ gfloat _tmp96_ = 0.0F;
+ gfloat* _tmp97_ = NULL;
+ gint _tmp97__length1 = 0;
+ gfloat _tmp98_ = 0.0F;
+ RGBTransformation* _tmp99_ = NULL;
+ gfloat* _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gfloat _tmp101_ = 0.0F;
+ gfloat* _tmp102_ = NULL;
+ gint _tmp102__length1 = 0;
+ gfloat _tmp103_ = 0.0F;
+ RGBTransformation* _tmp104_ = NULL;
+ gfloat* _tmp105_ = NULL;
+ gint _tmp105__length1 = 0;
+ gfloat _tmp106_ = 0.0F;
+ gfloat* _tmp107_ = NULL;
+ gint _tmp107__length1 = 0;
+ gfloat _tmp108_ = 0.0F;
+ RGBTransformation* _tmp109_ = NULL;
+ gfloat* _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ gfloat _tmp111_ = 0.0F;
+ gfloat* _tmp112_ = NULL;
+ gint _tmp112__length1 = 0;
+ gfloat _tmp113_ = 0.0F;
+ gfloat _tmp114_ = 0.0F;
+ gfloat* _tmp115_ = NULL;
+ gint _tmp115__length1 = 0;
+ RGBTransformation* _tmp116_ = NULL;
+ gfloat* _tmp117_ = NULL;
+ gint _tmp117__length1 = 0;
+ gfloat _tmp118_ = 0.0F;
+ gfloat* _tmp119_ = NULL;
+ gint _tmp119__length1 = 0;
+ gfloat _tmp120_ = 0.0F;
+ RGBTransformation* _tmp121_ = NULL;
+ gfloat* _tmp122_ = NULL;
+ gint _tmp122__length1 = 0;
+ gfloat _tmp123_ = 0.0F;
+ gfloat* _tmp124_ = NULL;
+ gint _tmp124__length1 = 0;
+ gfloat _tmp125_ = 0.0F;
+ RGBTransformation* _tmp126_ = NULL;
+ gfloat* _tmp127_ = NULL;
+ gint _tmp127__length1 = 0;
+ gfloat _tmp128_ = 0.0F;
+ gfloat* _tmp129_ = NULL;
+ gint _tmp129__length1 = 0;
+ gfloat _tmp130_ = 0.0F;
+ RGBTransformation* _tmp131_ = NULL;
+ gfloat* _tmp132_ = NULL;
+ gint _tmp132__length1 = 0;
+ gfloat _tmp133_ = 0.0F;
+ gfloat* _tmp134_ = NULL;
+ gint _tmp134__length1 = 0;
+ gfloat _tmp135_ = 0.0F;
+ gfloat _tmp136_ = 0.0F;
+ gfloat* _tmp137_ = NULL;
+ gint _tmp137__length1 = 0;
+ RGBTransformation* _tmp138_ = NULL;
+ gfloat* _tmp139_ = NULL;
+ gint _tmp139__length1 = 0;
+ gfloat _tmp140_ = 0.0F;
+ gfloat* _tmp141_ = NULL;
+ gint _tmp141__length1 = 0;
+ gfloat _tmp142_ = 0.0F;
+ RGBTransformation* _tmp143_ = NULL;
+ gfloat* _tmp144_ = NULL;
+ gint _tmp144__length1 = 0;
+ gfloat _tmp145_ = 0.0F;
+ gfloat* _tmp146_ = NULL;
+ gint _tmp146__length1 = 0;
+ gfloat _tmp147_ = 0.0F;
+ RGBTransformation* _tmp148_ = NULL;
+ gfloat* _tmp149_ = NULL;
+ gint _tmp149__length1 = 0;
+ gfloat _tmp150_ = 0.0F;
+ gfloat* _tmp151_ = NULL;
+ gint _tmp151__length1 = 0;
+ gfloat _tmp152_ = 0.0F;
+ RGBTransformation* _tmp153_ = NULL;
+ gfloat* _tmp154_ = NULL;
+ gint _tmp154__length1 = 0;
+ gfloat _tmp155_ = 0.0F;
+ gfloat* _tmp156_ = NULL;
+ gint _tmp156__length1 = 0;
+ gfloat _tmp157_ = 0.0F;
+ gfloat _tmp158_ = 0.0F;
+ gfloat* _tmp159_ = NULL;
+ gint _tmp159__length1 = 0;
+ RGBTransformation* _tmp160_ = NULL;
+ gfloat* _tmp161_ = NULL;
+ gint _tmp161__length1 = 0;
+ gfloat _tmp162_ = 0.0F;
+ gfloat* _tmp163_ = NULL;
+ gint _tmp163__length1 = 0;
+ gfloat _tmp164_ = 0.0F;
+ RGBTransformation* _tmp165_ = NULL;
+ gfloat* _tmp166_ = NULL;
+ gint _tmp166__length1 = 0;
+ gfloat _tmp167_ = 0.0F;
+ gfloat* _tmp168_ = NULL;
+ gint _tmp168__length1 = 0;
+ gfloat _tmp169_ = 0.0F;
+ RGBTransformation* _tmp170_ = NULL;
+ gfloat* _tmp171_ = NULL;
+ gint _tmp171__length1 = 0;
+ gfloat _tmp172_ = 0.0F;
+ gfloat* _tmp173_ = NULL;
+ gint _tmp173__length1 = 0;
+ gfloat _tmp174_ = 0.0F;
+ RGBTransformation* _tmp175_ = NULL;
+ gfloat* _tmp176_ = NULL;
+ gint _tmp176__length1 = 0;
+ gfloat _tmp177_ = 0.0F;
+ gfloat* _tmp178_ = NULL;
+ gint _tmp178__length1 = 0;
+ gfloat _tmp179_ = 0.0F;
+ gfloat _tmp180_ = 0.0F;
+ gfloat* _tmp181_ = NULL;
+ gint _tmp181__length1 = 0;
+ RGBTransformation* _tmp182_ = NULL;
+ gfloat* _tmp183_ = NULL;
+ gint _tmp183__length1 = 0;
+ gfloat _tmp184_ = 0.0F;
+ gfloat* _tmp185_ = NULL;
+ gint _tmp185__length1 = 0;
+ gfloat _tmp186_ = 0.0F;
+ RGBTransformation* _tmp187_ = NULL;
+ gfloat* _tmp188_ = NULL;
+ gint _tmp188__length1 = 0;
+ gfloat _tmp189_ = 0.0F;
+ gfloat* _tmp190_ = NULL;
+ gint _tmp190__length1 = 0;
+ gfloat _tmp191_ = 0.0F;
+ RGBTransformation* _tmp192_ = NULL;
+ gfloat* _tmp193_ = NULL;
+ gint _tmp193__length1 = 0;
+ gfloat _tmp194_ = 0.0F;
+ gfloat* _tmp195_ = NULL;
+ gint _tmp195__length1 = 0;
+ gfloat _tmp196_ = 0.0F;
+ RGBTransformation* _tmp197_ = NULL;
+ gfloat* _tmp198_ = NULL;
+ gint _tmp198__length1 = 0;
+ gfloat _tmp199_ = 0.0F;
+ gfloat* _tmp200_ = NULL;
+ gint _tmp200__length1 = 0;
+ gfloat _tmp201_ = 0.0F;
+ gfloat _tmp202_ = 0.0F;
+ gfloat* _tmp203_ = NULL;
+ gint _tmp203__length1 = 0;
+ RGBTransformation* _tmp204_ = NULL;
+ gfloat* _tmp205_ = NULL;
+ gint _tmp205__length1 = 0;
+ gfloat _tmp206_ = 0.0F;
+ gfloat* _tmp207_ = NULL;
+ gint _tmp207__length1 = 0;
+ gfloat _tmp208_ = 0.0F;
+ RGBTransformation* _tmp209_ = NULL;
+ gfloat* _tmp210_ = NULL;
+ gint _tmp210__length1 = 0;
+ gfloat _tmp211_ = 0.0F;
+ gfloat* _tmp212_ = NULL;
+ gint _tmp212__length1 = 0;
+ gfloat _tmp213_ = 0.0F;
+ RGBTransformation* _tmp214_ = NULL;
+ gfloat* _tmp215_ = NULL;
+ gint _tmp215__length1 = 0;
+ gfloat _tmp216_ = 0.0F;
+ gfloat* _tmp217_ = NULL;
+ gint _tmp217__length1 = 0;
+ gfloat _tmp218_ = 0.0F;
+ RGBTransformation* _tmp219_ = NULL;
+ gfloat* _tmp220_ = NULL;
+ gint _tmp220__length1 = 0;
+ gfloat _tmp221_ = 0.0F;
+ gfloat* _tmp222_ = NULL;
+ gint _tmp222__length1 = 0;
+ gfloat _tmp223_ = 0.0F;
+ gfloat _tmp224_ = 0.0F;
+ gfloat* _tmp225_ = NULL;
+ gint _tmp225__length1 = 0;
+ RGBTransformation* _tmp226_ = NULL;
+ gfloat* _tmp227_ = NULL;
+ gint _tmp227__length1 = 0;
+ gfloat _tmp228_ = 0.0F;
+ gfloat* _tmp229_ = NULL;
+ gint _tmp229__length1 = 0;
+ gfloat _tmp230_ = 0.0F;
+ RGBTransformation* _tmp231_ = NULL;
+ gfloat* _tmp232_ = NULL;
+ gint _tmp232__length1 = 0;
+ gfloat _tmp233_ = 0.0F;
+ gfloat* _tmp234_ = NULL;
+ gint _tmp234__length1 = 0;
+ gfloat _tmp235_ = 0.0F;
+ RGBTransformation* _tmp236_ = NULL;
+ gfloat* _tmp237_ = NULL;
+ gint _tmp237__length1 = 0;
+ gfloat _tmp238_ = 0.0F;
+ gfloat* _tmp239_ = NULL;
+ gint _tmp239__length1 = 0;
+ gfloat _tmp240_ = 0.0F;
+ RGBTransformation* _tmp241_ = NULL;
+ gfloat* _tmp242_ = NULL;
+ gint _tmp242__length1 = 0;
+ gfloat _tmp243_ = 0.0F;
+ gfloat* _tmp244_ = NULL;
+ gint _tmp244__length1 = 0;
+ gfloat _tmp245_ = 0.0F;
+ gfloat _tmp246_ = 0.0F;
+ gfloat* _tmp247_ = NULL;
+ gint _tmp247__length1 = 0;
+ RGBTransformation* _tmp248_ = NULL;
+ gfloat* _tmp249_ = NULL;
+ gint _tmp249__length1 = 0;
+ gfloat _tmp250_ = 0.0F;
+ gfloat* _tmp251_ = NULL;
+ gint _tmp251__length1 = 0;
+ gfloat _tmp252_ = 0.0F;
+ RGBTransformation* _tmp253_ = NULL;
+ gfloat* _tmp254_ = NULL;
+ gint _tmp254__length1 = 0;
+ gfloat _tmp255_ = 0.0F;
+ gfloat* _tmp256_ = NULL;
+ gint _tmp256__length1 = 0;
+ gfloat _tmp257_ = 0.0F;
+ RGBTransformation* _tmp258_ = NULL;
+ gfloat* _tmp259_ = NULL;
+ gint _tmp259__length1 = 0;
+ gfloat _tmp260_ = 0.0F;
+ gfloat* _tmp261_ = NULL;
+ gint _tmp261__length1 = 0;
+ gfloat _tmp262_ = 0.0F;
+ RGBTransformation* _tmp263_ = NULL;
+ gfloat* _tmp264_ = NULL;
+ gint _tmp264__length1 = 0;
+ gfloat _tmp265_ = 0.0F;
+ gfloat* _tmp266_ = NULL;
+ gint _tmp266__length1 = 0;
+ gfloat _tmp267_ = 0.0F;
+ gfloat _tmp268_ = 0.0F;
+ gfloat* _tmp269_ = NULL;
+ gint _tmp269__length1 = 0;
+ RGBTransformation* _tmp270_ = NULL;
+ gfloat* _tmp271_ = NULL;
+ gint _tmp271__length1 = 0;
+ gfloat _tmp272_ = 0.0F;
+ gfloat* _tmp273_ = NULL;
+ gint _tmp273__length1 = 0;
+ gfloat _tmp274_ = 0.0F;
+ RGBTransformation* _tmp275_ = NULL;
+ gfloat* _tmp276_ = NULL;
+ gint _tmp276__length1 = 0;
+ gfloat _tmp277_ = 0.0F;
+ gfloat* _tmp278_ = NULL;
+ gint _tmp278__length1 = 0;
+ gfloat _tmp279_ = 0.0F;
+ RGBTransformation* _tmp280_ = NULL;
+ gfloat* _tmp281_ = NULL;
+ gint _tmp281__length1 = 0;
+ gfloat _tmp282_ = 0.0F;
+ gfloat* _tmp283_ = NULL;
+ gint _tmp283__length1 = 0;
+ gfloat _tmp284_ = 0.0F;
+ RGBTransformation* _tmp285_ = NULL;
+ gfloat* _tmp286_ = NULL;
+ gint _tmp286__length1 = 0;
+ gfloat _tmp287_ = 0.0F;
+ gfloat* _tmp288_ = NULL;
+ gint _tmp288__length1 = 0;
+ gfloat _tmp289_ = 0.0F;
+ gfloat _tmp290_ = 0.0F;
+ gfloat* _tmp291_ = NULL;
+ gint _tmp291__length1 = 0;
+ RGBTransformation* _tmp292_ = NULL;
+ gfloat* _tmp293_ = NULL;
+ gint _tmp293__length1 = 0;
+ gfloat _tmp294_ = 0.0F;
+ gfloat* _tmp295_ = NULL;
+ gint _tmp295__length1 = 0;
+ gfloat _tmp296_ = 0.0F;
+ RGBTransformation* _tmp297_ = NULL;
+ gfloat* _tmp298_ = NULL;
+ gint _tmp298__length1 = 0;
+ gfloat _tmp299_ = 0.0F;
+ gfloat* _tmp300_ = NULL;
+ gint _tmp300__length1 = 0;
+ gfloat _tmp301_ = 0.0F;
+ RGBTransformation* _tmp302_ = NULL;
+ gfloat* _tmp303_ = NULL;
+ gint _tmp303__length1 = 0;
+ gfloat _tmp304_ = 0.0F;
+ gfloat* _tmp305_ = NULL;
+ gint _tmp305__length1 = 0;
+ gfloat _tmp306_ = 0.0F;
+ RGBTransformation* _tmp307_ = NULL;
+ gfloat* _tmp308_ = NULL;
+ gint _tmp308__length1 = 0;
+ gfloat _tmp309_ = 0.0F;
+ gfloat* _tmp310_ = NULL;
+ gint _tmp310__length1 = 0;
+ gfloat _tmp311_ = 0.0F;
+ gfloat _tmp312_ = 0.0F;
+ gfloat* _tmp313_ = NULL;
+ gint _tmp313__length1 = 0;
+ RGBTransformation* _tmp314_ = NULL;
+ gfloat* _tmp315_ = NULL;
+ gint _tmp315__length1 = 0;
+ gfloat _tmp316_ = 0.0F;
+ gfloat* _tmp317_ = NULL;
+ gint _tmp317__length1 = 0;
+ gfloat _tmp318_ = 0.0F;
+ RGBTransformation* _tmp319_ = NULL;
+ gfloat* _tmp320_ = NULL;
+ gint _tmp320__length1 = 0;
+ gfloat _tmp321_ = 0.0F;
+ gfloat* _tmp322_ = NULL;
+ gint _tmp322__length1 = 0;
+ gfloat _tmp323_ = 0.0F;
+ RGBTransformation* _tmp324_ = NULL;
+ gfloat* _tmp325_ = NULL;
+ gint _tmp325__length1 = 0;
+ gfloat _tmp326_ = 0.0F;
+ gfloat* _tmp327_ = NULL;
+ gint _tmp327__length1 = 0;
+ gfloat _tmp328_ = 0.0F;
+ RGBTransformation* _tmp329_ = NULL;
+ gfloat* _tmp330_ = NULL;
+ gint _tmp330__length1 = 0;
+ gfloat _tmp331_ = 0.0F;
+ gfloat* _tmp332_ = NULL;
+ gint _tmp332__length1 = 0;
+ gfloat _tmp333_ = 0.0F;
+ gfloat _tmp334_ = 0.0F;
+ gfloat* _tmp335_ = NULL;
+ gint _tmp335__length1 = 0;
+ RGBTransformation* _tmp336_ = NULL;
+ gfloat* _tmp337_ = NULL;
+ gint _tmp337__length1 = 0;
+ gfloat _tmp338_ = 0.0F;
+ gfloat* _tmp339_ = NULL;
+ gint _tmp339__length1 = 0;
+ gfloat _tmp340_ = 0.0F;
+ RGBTransformation* _tmp341_ = NULL;
+ gfloat* _tmp342_ = NULL;
+ gint _tmp342__length1 = 0;
+ gfloat _tmp343_ = 0.0F;
+ gfloat* _tmp344_ = NULL;
+ gint _tmp344__length1 = 0;
+ gfloat _tmp345_ = 0.0F;
+ RGBTransformation* _tmp346_ = NULL;
+ gfloat* _tmp347_ = NULL;
+ gint _tmp347__length1 = 0;
+ gfloat _tmp348_ = 0.0F;
+ gfloat* _tmp349_ = NULL;
+ gint _tmp349__length1 = 0;
+ gfloat _tmp350_ = 0.0F;
+ RGBTransformation* _tmp351_ = NULL;
+ gfloat* _tmp352_ = NULL;
+ gint _tmp352__length1 = 0;
+ gfloat _tmp353_ = 0.0F;
+ gfloat* _tmp354_ = NULL;
+ gint _tmp354__length1 = 0;
+ gfloat _tmp355_ = 0.0F;
+ gfloat _tmp356_ = 0.0F;
+ gboolean _tmp366_ = FALSE;
+ gboolean _tmp367_ = FALSE;
+#line 434 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 434 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (other));
+#line 435 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = other;
+#line 435 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = pixel_transformation_get_composition_mode (_tmp0_);
+#line 435 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp1_ != COMPOSITION_MODE_RGB_MATRIX) {
+#line 436 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_error ("ColorTransformation.vala:436: %s", "RGBTransformation: compose_with( ): 'other' transformation " "does not support RGB_MATRIX composition mode");
+#line 3943 "ColorTransformation.c"
+ }
+#line 439 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = other;
+#line 439 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _pixel_transformation_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_RGB_TRANSFORMATION, RGBTransformation));
+#line 439 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ transform = _tmp3_;
+#line 441 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = g_new0 (gfloat, 16);
+#line 441 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result_matrix_entries = _tmp4_;
+#line 441 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result_matrix_entries_length1 = 16;
+#line 441 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_matrix_entries_size_ = result_matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = result_matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5__length1 = result_matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = transform;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp6_->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7__length1 = _tmp6_->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = _tmp7_[0];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = self->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9__length1 = self->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _tmp9_[0];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = transform;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = _tmp11_->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12__length1 = _tmp11_->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp12_[1];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = self->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14__length1 = self->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = _tmp14_[4];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = transform;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = _tmp16_->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17__length1 = _tmp16_->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = _tmp17_[2];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = self->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19__length1 = self->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = _tmp19_[8];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = transform;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = _tmp21_->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22__length1 = _tmp21_->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = _tmp22_[3];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = self->matrix_entries;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24__length1 = self->matrix_entries_length1;
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = _tmp24_[12];
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_[0] = (((_tmp8_ * _tmp10_) + (_tmp13_ * _tmp15_)) + (_tmp18_ * _tmp20_)) + (_tmp23_ * _tmp25_);
+#line 444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = _tmp5_[0];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = result_matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27__length1 = result_matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = transform;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = _tmp28_->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29__length1 = _tmp28_->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = _tmp29_[0];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = self->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31__length1 = self->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = _tmp31_[1];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = transform;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = _tmp33_->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34__length1 = _tmp33_->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = _tmp34_[1];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = self->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36__length1 = self->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = _tmp36_[5];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = transform;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = _tmp38_->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39__length1 = _tmp38_->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = _tmp39_[2];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = self->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41__length1 = self->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = _tmp41_[9];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = transform;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = _tmp43_->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44__length1 = _tmp43_->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = _tmp44_[3];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = self->matrix_entries;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46__length1 = self->matrix_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = _tmp46_[13];
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_[1] = (((_tmp30_ * _tmp32_) + (_tmp35_ * _tmp37_)) + (_tmp40_ * _tmp42_)) + (_tmp45_ * _tmp47_);
+#line 450 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = _tmp27_[1];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = result_matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49__length1 = result_matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = transform;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = _tmp50_->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51__length1 = _tmp50_->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = _tmp51_[0];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = self->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53__length1 = self->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = _tmp53_[2];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = transform;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = _tmp55_->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56__length1 = _tmp55_->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp57_ = _tmp56_[1];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = self->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58__length1 = self->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp59_ = _tmp58_[6];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60_ = transform;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61_ = _tmp60_->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61__length1 = _tmp60_->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_ = _tmp61_[2];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63_ = self->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63__length1 = self->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64_ = _tmp63_[10];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp65_ = transform;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66_ = _tmp65_->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66__length1 = _tmp65_->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp67_ = _tmp66_[3];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68_ = self->matrix_entries;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68__length1 = self->matrix_entries_length1;
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp69_ = _tmp68_[14];
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_[2] = (((_tmp52_ * _tmp54_) + (_tmp57_ * _tmp59_)) + (_tmp62_ * _tmp64_)) + (_tmp67_ * _tmp69_);
+#line 456 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70_ = _tmp49_[2];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp71_ = result_matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp71__length1 = result_matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp72_ = transform;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73_ = _tmp72_->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73__length1 = _tmp72_->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp74_ = _tmp73_[0];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp75_ = self->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp75__length1 = self->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp76_ = _tmp75_[3];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp77_ = transform;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp78_ = _tmp77_->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp78__length1 = _tmp77_->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp79_ = _tmp78_[1];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp80_ = self->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp80__length1 = self->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp81_ = _tmp80_[7];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp82_ = transform;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp83_ = _tmp82_->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp83__length1 = _tmp82_->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp84_ = _tmp83_[2];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp85_ = self->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp85__length1 = self->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp86_ = _tmp85_[11];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp87_ = transform;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp88_ = _tmp87_->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp88__length1 = _tmp87_->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp89_ = _tmp88_[3];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp90_ = self->matrix_entries;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp90__length1 = self->matrix_entries_length1;
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp91_ = _tmp90_[15];
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp71_[3] = (((_tmp74_ * _tmp76_) + (_tmp79_ * _tmp81_)) + (_tmp84_ * _tmp86_)) + (_tmp89_ * _tmp91_);
+#line 462 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92_ = _tmp71_[3];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp93_ = result_matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp93__length1 = result_matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp94_ = transform;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp95_ = _tmp94_->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp95__length1 = _tmp94_->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp96_ = _tmp95_[4];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97_ = self->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97__length1 = self->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp98_ = _tmp97_[0];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp99_ = transform;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp100_ = _tmp99_->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp100__length1 = _tmp99_->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp101_ = _tmp100_[5];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102_ = self->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102__length1 = self->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp103_ = _tmp102_[4];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp104_ = transform;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp105_ = _tmp104_->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp105__length1 = _tmp104_->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp106_ = _tmp105_[6];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp107_ = self->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp107__length1 = self->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp108_ = _tmp107_[8];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp109_ = transform;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp110_ = _tmp109_->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp110__length1 = _tmp109_->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp111_ = _tmp110_[7];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp112_ = self->matrix_entries;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp112__length1 = self->matrix_entries_length1;
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp113_ = _tmp112_[12];
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp93_[4] = (((_tmp96_ * _tmp98_) + (_tmp101_ * _tmp103_)) + (_tmp106_ * _tmp108_)) + (_tmp111_ * _tmp113_);
+#line 469 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp114_ = _tmp93_[4];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp115_ = result_matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp115__length1 = result_matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp116_ = transform;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp117_ = _tmp116_->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp117__length1 = _tmp116_->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp118_ = _tmp117_[4];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp119_ = self->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp119__length1 = self->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp120_ = _tmp119_[1];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp121_ = transform;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp122_ = _tmp121_->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp122__length1 = _tmp121_->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp123_ = _tmp122_[5];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp124_ = self->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp124__length1 = self->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp125_ = _tmp124_[5];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp126_ = transform;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp127_ = _tmp126_->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp127__length1 = _tmp126_->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp128_ = _tmp127_[6];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp129_ = self->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp129__length1 = self->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp130_ = _tmp129_[9];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp131_ = transform;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp132_ = _tmp131_->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp132__length1 = _tmp131_->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp133_ = _tmp132_[7];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp134_ = self->matrix_entries;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp134__length1 = self->matrix_entries_length1;
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp135_ = _tmp134_[13];
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp115_[5] = (((_tmp118_ * _tmp120_) + (_tmp123_ * _tmp125_)) + (_tmp128_ * _tmp130_)) + (_tmp133_ * _tmp135_);
+#line 475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp136_ = _tmp115_[5];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp137_ = result_matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp137__length1 = result_matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp138_ = transform;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp139_ = _tmp138_->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp139__length1 = _tmp138_->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp140_ = _tmp139_[4];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp141_ = self->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp141__length1 = self->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp142_ = _tmp141_[2];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp143_ = transform;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp144_ = _tmp143_->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp144__length1 = _tmp143_->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp145_ = _tmp144_[5];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp146_ = self->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp146__length1 = self->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp147_ = _tmp146_[6];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp148_ = transform;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp149_ = _tmp148_->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp149__length1 = _tmp148_->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp150_ = _tmp149_[6];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp151_ = self->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp151__length1 = self->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp152_ = _tmp151_[10];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp153_ = transform;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp154_ = _tmp153_->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp154__length1 = _tmp153_->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp155_ = _tmp154_[7];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp156_ = self->matrix_entries;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp156__length1 = self->matrix_entries_length1;
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp157_ = _tmp156_[14];
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp137_[6] = (((_tmp140_ * _tmp142_) + (_tmp145_ * _tmp147_)) + (_tmp150_ * _tmp152_)) + (_tmp155_ * _tmp157_);
+#line 481 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp158_ = _tmp137_[6];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp159_ = result_matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp159__length1 = result_matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp160_ = transform;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp161_ = _tmp160_->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp161__length1 = _tmp160_->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp162_ = _tmp161_[4];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp163_ = self->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp163__length1 = self->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp164_ = _tmp163_[3];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp165_ = transform;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp166_ = _tmp165_->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp166__length1 = _tmp165_->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp167_ = _tmp166_[5];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp168_ = self->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp168__length1 = self->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp169_ = _tmp168_[7];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp170_ = transform;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp171_ = _tmp170_->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp171__length1 = _tmp170_->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp172_ = _tmp171_[6];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp173_ = self->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp173__length1 = self->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp174_ = _tmp173_[11];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp175_ = transform;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp176_ = _tmp175_->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp176__length1 = _tmp175_->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp177_ = _tmp176_[7];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp178_ = self->matrix_entries;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp178__length1 = self->matrix_entries_length1;
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp179_ = _tmp178_[15];
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp159_[7] = (((_tmp162_ * _tmp164_) + (_tmp167_ * _tmp169_)) + (_tmp172_ * _tmp174_)) + (_tmp177_ * _tmp179_);
+#line 487 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp180_ = _tmp159_[7];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp181_ = result_matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp181__length1 = result_matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp182_ = transform;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp183_ = _tmp182_->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp183__length1 = _tmp182_->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp184_ = _tmp183_[8];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp185_ = self->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp185__length1 = self->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp186_ = _tmp185_[0];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp187_ = transform;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp188_ = _tmp187_->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp188__length1 = _tmp187_->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp189_ = _tmp188_[9];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp190_ = self->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp190__length1 = self->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp191_ = _tmp190_[4];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp192_ = transform;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp193_ = _tmp192_->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp193__length1 = _tmp192_->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp194_ = _tmp193_[10];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp195_ = self->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp195__length1 = self->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp196_ = _tmp195_[8];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp197_ = transform;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp198_ = _tmp197_->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp198__length1 = _tmp197_->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp199_ = _tmp198_[11];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp200_ = self->matrix_entries;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp200__length1 = self->matrix_entries_length1;
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp201_ = _tmp200_[12];
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp181_[8] = (((_tmp184_ * _tmp186_) + (_tmp189_ * _tmp191_)) + (_tmp194_ * _tmp196_)) + (_tmp199_ * _tmp201_);
+#line 494 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp202_ = _tmp181_[8];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp203_ = result_matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp203__length1 = result_matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp204_ = transform;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp205_ = _tmp204_->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp205__length1 = _tmp204_->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp206_ = _tmp205_[8];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp207_ = self->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp207__length1 = self->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp208_ = _tmp207_[1];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp209_ = transform;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp210_ = _tmp209_->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp210__length1 = _tmp209_->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp211_ = _tmp210_[9];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp212_ = self->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp212__length1 = self->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp213_ = _tmp212_[5];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp214_ = transform;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp215_ = _tmp214_->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp215__length1 = _tmp214_->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp216_ = _tmp215_[10];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp217_ = self->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp217__length1 = self->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp218_ = _tmp217_[9];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp219_ = transform;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp220_ = _tmp219_->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp220__length1 = _tmp219_->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp221_ = _tmp220_[11];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp222_ = self->matrix_entries;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp222__length1 = self->matrix_entries_length1;
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp223_ = _tmp222_[13];
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp203_[9] = (((_tmp206_ * _tmp208_) + (_tmp211_ * _tmp213_)) + (_tmp216_ * _tmp218_)) + (_tmp221_ * _tmp223_);
+#line 500 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp224_ = _tmp203_[9];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp225_ = result_matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp225__length1 = result_matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp226_ = transform;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp227_ = _tmp226_->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp227__length1 = _tmp226_->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp228_ = _tmp227_[8];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp229_ = self->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp229__length1 = self->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp230_ = _tmp229_[2];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp231_ = transform;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp232_ = _tmp231_->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp232__length1 = _tmp231_->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp233_ = _tmp232_[9];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp234_ = self->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp234__length1 = self->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp235_ = _tmp234_[6];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp236_ = transform;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp237_ = _tmp236_->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp237__length1 = _tmp236_->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp238_ = _tmp237_[10];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp239_ = self->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp239__length1 = self->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp240_ = _tmp239_[10];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp241_ = transform;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp242_ = _tmp241_->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp242__length1 = _tmp241_->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp243_ = _tmp242_[11];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp244_ = self->matrix_entries;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp244__length1 = self->matrix_entries_length1;
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp245_ = _tmp244_[14];
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp225_[10] = (((_tmp228_ * _tmp230_) + (_tmp233_ * _tmp235_)) + (_tmp238_ * _tmp240_)) + (_tmp243_ * _tmp245_);
+#line 506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp246_ = _tmp225_[10];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp247_ = result_matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp247__length1 = result_matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp248_ = transform;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp249_ = _tmp248_->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp249__length1 = _tmp248_->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp250_ = _tmp249_[8];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp251_ = self->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp251__length1 = self->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp252_ = _tmp251_[3];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp253_ = transform;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp254_ = _tmp253_->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp254__length1 = _tmp253_->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp255_ = _tmp254_[9];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp256_ = self->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp256__length1 = self->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp257_ = _tmp256_[7];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp258_ = transform;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp259_ = _tmp258_->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp259__length1 = _tmp258_->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp260_ = _tmp259_[10];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp261_ = self->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp261__length1 = self->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp262_ = _tmp261_[11];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp263_ = transform;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp264_ = _tmp263_->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp264__length1 = _tmp263_->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp265_ = _tmp264_[11];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp266_ = self->matrix_entries;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp266__length1 = self->matrix_entries_length1;
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp267_ = _tmp266_[15];
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp247_[11] = (((_tmp250_ * _tmp252_) + (_tmp255_ * _tmp257_)) + (_tmp260_ * _tmp262_)) + (_tmp265_ * _tmp267_);
+#line 512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp268_ = _tmp247_[11];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp269_ = result_matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp269__length1 = result_matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp270_ = transform;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp271_ = _tmp270_->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp271__length1 = _tmp270_->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp272_ = _tmp271_[12];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp273_ = self->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp273__length1 = self->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp274_ = _tmp273_[0];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp275_ = transform;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp276_ = _tmp275_->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp276__length1 = _tmp275_->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp277_ = _tmp276_[13];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp278_ = self->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp278__length1 = self->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp279_ = _tmp278_[4];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp280_ = transform;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp281_ = _tmp280_->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp281__length1 = _tmp280_->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp282_ = _tmp281_[14];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp283_ = self->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp283__length1 = self->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp284_ = _tmp283_[8];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp285_ = transform;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp286_ = _tmp285_->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp286__length1 = _tmp285_->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp287_ = _tmp286_[15];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp288_ = self->matrix_entries;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp288__length1 = self->matrix_entries_length1;
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp289_ = _tmp288_[12];
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp269_[12] = (((_tmp272_ * _tmp274_) + (_tmp277_ * _tmp279_)) + (_tmp282_ * _tmp284_)) + (_tmp287_ * _tmp289_);
+#line 519 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp290_ = _tmp269_[12];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp291_ = result_matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp291__length1 = result_matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp292_ = transform;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp293_ = _tmp292_->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp293__length1 = _tmp292_->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp294_ = _tmp293_[12];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp295_ = self->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp295__length1 = self->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp296_ = _tmp295_[1];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp297_ = transform;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp298_ = _tmp297_->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp298__length1 = _tmp297_->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp299_ = _tmp298_[13];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp300_ = self->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp300__length1 = self->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp301_ = _tmp300_[5];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp302_ = transform;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp303_ = _tmp302_->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp303__length1 = _tmp302_->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp304_ = _tmp303_[14];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp305_ = self->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp305__length1 = self->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp306_ = _tmp305_[9];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp307_ = transform;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp308_ = _tmp307_->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp308__length1 = _tmp307_->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp309_ = _tmp308_[15];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp310_ = self->matrix_entries;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp310__length1 = self->matrix_entries_length1;
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp311_ = _tmp310_[13];
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp291_[13] = (((_tmp294_ * _tmp296_) + (_tmp299_ * _tmp301_)) + (_tmp304_ * _tmp306_)) + (_tmp309_ * _tmp311_);
+#line 525 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp312_ = _tmp291_[13];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp313_ = result_matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp313__length1 = result_matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp314_ = transform;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp315_ = _tmp314_->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp315__length1 = _tmp314_->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp316_ = _tmp315_[12];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp317_ = self->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp317__length1 = self->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp318_ = _tmp317_[2];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp319_ = transform;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp320_ = _tmp319_->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp320__length1 = _tmp319_->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp321_ = _tmp320_[13];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp322_ = self->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp322__length1 = self->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp323_ = _tmp322_[6];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp324_ = transform;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp325_ = _tmp324_->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp325__length1 = _tmp324_->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp326_ = _tmp325_[14];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp327_ = self->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp327__length1 = self->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp328_ = _tmp327_[10];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp329_ = transform;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp330_ = _tmp329_->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp330__length1 = _tmp329_->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp331_ = _tmp330_[15];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp332_ = self->matrix_entries;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp332__length1 = self->matrix_entries_length1;
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp333_ = _tmp332_[14];
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp313_[14] = (((_tmp316_ * _tmp318_) + (_tmp321_ * _tmp323_)) + (_tmp326_ * _tmp328_)) + (_tmp331_ * _tmp333_);
+#line 531 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp334_ = _tmp313_[14];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp335_ = result_matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp335__length1 = result_matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp336_ = transform;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp337_ = _tmp336_->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp337__length1 = _tmp336_->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp338_ = _tmp337_[12];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp339_ = self->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp339__length1 = self->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp340_ = _tmp339_[3];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp341_ = transform;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp342_ = _tmp341_->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp342__length1 = _tmp341_->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp343_ = _tmp342_[13];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp344_ = self->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp344__length1 = self->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp345_ = _tmp344_[7];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp346_ = transform;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp347_ = _tmp346_->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp347__length1 = _tmp346_->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp348_ = _tmp347_[14];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp349_ = self->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp349__length1 = self->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp350_ = _tmp349_[11];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp351_ = transform;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp352_ = _tmp351_->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp352__length1 = _tmp351_->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp353_ = _tmp352_[15];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp354_ = self->matrix_entries;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp354__length1 = self->matrix_entries_length1;
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp355_ = _tmp354_[15];
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp335_[15] = (((_tmp338_ * _tmp340_) + (_tmp343_ * _tmp345_)) + (_tmp348_ * _tmp350_)) + (_tmp353_ * _tmp355_);
+#line 537 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp356_ = _tmp335_[15];
+#line 4983 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 4988 "ColorTransformation.c"
+ {
+ gboolean _tmp357_ = FALSE;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp357_ = TRUE;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 4995 "ColorTransformation.c"
+ gint _tmp359_ = 0;
+ gfloat* _tmp360_ = NULL;
+ gint _tmp360__length1 = 0;
+ gint _tmp361_ = 0;
+ gfloat* _tmp362_ = NULL;
+ gint _tmp362__length1 = 0;
+ gint _tmp363_ = 0;
+ gfloat _tmp364_ = 0.0F;
+ gfloat _tmp365_ = 0.0F;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp357_) {
+#line 5007 "ColorTransformation.c"
+ gint _tmp358_ = 0;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp358_ = i;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp358_ + 1;
+#line 5013 "ColorTransformation.c"
+ }
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp357_ = FALSE;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp359_ = i;
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp359_ < RGB_TRANSFORMATION_MATRIX_SIZE)) {
+#line 543 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 5023 "ColorTransformation.c"
+ }
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp360_ = self->matrix_entries;
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp360__length1 = self->matrix_entries_length1;
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp361_ = i;
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp362_ = result_matrix_entries;
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp362__length1 = result_matrix_entries_length1;
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp363_ = i;
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp364_ = _tmp362_[_tmp363_];
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp360_[_tmp361_] = _tmp364_;
+#line 544 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp365_ = _tmp360_[_tmp361_];
+#line 5043 "ColorTransformation.c"
+ }
+ }
+ }
+#line 546 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp367_ = self->identity;
+#line 546 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp367_) {
+#line 5051 "ColorTransformation.c"
+ RGBTransformation* _tmp368_ = NULL;
+ gboolean _tmp369_ = FALSE;
+#line 546 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp368_ = transform;
+#line 546 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp369_ = _tmp368_->identity;
+#line 546 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp366_ = _tmp369_;
+#line 5060 "ColorTransformation.c"
+ } else {
+#line 546 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp366_ = FALSE;
+#line 5064 "ColorTransformation.c"
+ }
+#line 546 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->identity = _tmp366_;
+#line 434 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result_matrix_entries = (g_free (result_matrix_entries), NULL);
+#line 434 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (transform);
+#line 5072 "ColorTransformation.c"
+}
+
+
+static void rgb_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* p, HSVAnalyticPixel* result) {
+ RGBTransformation * self;
+ RGBAnalyticPixel _tmp0_ = {0};
+ RGBAnalyticPixel _tmp1_ = {0};
+ HSVAnalyticPixel _tmp2_ = {0};
+#line 549 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 549 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (p != NULL);
+#line 550 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_to_rgb (p, &_tmp0_);
+#line 550 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_transform_pixel_rgb (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), &_tmp0_, &_tmp1_);
+#line 550 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_to_hsv (&_tmp1_, &_tmp2_);
+#line 550 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _tmp2_;
+#line 550 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 5095 "ColorTransformation.c"
+}
+
+
+static void rgb_transformation_real_transform_pixel_rgb (PixelTransformation* base, RGBAnalyticPixel* p, RGBAnalyticPixel* result) {
+ RGBTransformation * self;
+ gfloat red_out = 0.0F;
+ RGBAnalyticPixel _tmp0_ = {0};
+ gfloat _tmp1_ = 0.0F;
+ gfloat* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gfloat _tmp3_ = 0.0F;
+ RGBAnalyticPixel _tmp4_ = {0};
+ gfloat _tmp5_ = 0.0F;
+ gfloat* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gfloat _tmp7_ = 0.0F;
+ RGBAnalyticPixel _tmp8_ = {0};
+ gfloat _tmp9_ = 0.0F;
+ gfloat* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gfloat _tmp11_ = 0.0F;
+ gfloat* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gfloat _tmp13_ = 0.0F;
+ gfloat _tmp14_ = 0.0F;
+ gfloat _tmp15_ = 0.0F;
+ gfloat green_out = 0.0F;
+ RGBAnalyticPixel _tmp16_ = {0};
+ gfloat _tmp17_ = 0.0F;
+ gfloat* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gfloat _tmp19_ = 0.0F;
+ RGBAnalyticPixel _tmp20_ = {0};
+ gfloat _tmp21_ = 0.0F;
+ gfloat* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gfloat _tmp23_ = 0.0F;
+ RGBAnalyticPixel _tmp24_ = {0};
+ gfloat _tmp25_ = 0.0F;
+ gfloat* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gfloat _tmp27_ = 0.0F;
+ gfloat* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gfloat _tmp29_ = 0.0F;
+ gfloat _tmp30_ = 0.0F;
+ gfloat _tmp31_ = 0.0F;
+ gfloat blue_out = 0.0F;
+ RGBAnalyticPixel _tmp32_ = {0};
+ gfloat _tmp33_ = 0.0F;
+ gfloat* _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ gfloat _tmp35_ = 0.0F;
+ RGBAnalyticPixel _tmp36_ = {0};
+ gfloat _tmp37_ = 0.0F;
+ gfloat* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ gfloat _tmp39_ = 0.0F;
+ RGBAnalyticPixel _tmp40_ = {0};
+ gfloat _tmp41_ = 0.0F;
+ gfloat* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ gfloat _tmp43_ = 0.0F;
+ gfloat* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ gfloat _tmp45_ = 0.0F;
+ gfloat _tmp46_ = 0.0F;
+ gfloat _tmp47_ = 0.0F;
+ gfloat _tmp48_ = 0.0F;
+ gfloat _tmp49_ = 0.0F;
+ gfloat _tmp50_ = 0.0F;
+ RGBAnalyticPixel _tmp51_ = {0};
+#line 553 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 553 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (p != NULL);
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *p;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp0_.red;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->matrix_entries;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2__length1 = self->matrix_entries_length1;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_[0];
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = *p;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _tmp4_.green;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = self->matrix_entries;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6__length1 = self->matrix_entries_length1;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp6_[1];
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = *p;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = _tmp8_.blue;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = self->matrix_entries;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10__length1 = self->matrix_entries_length1;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp10_[2];
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = self->matrix_entries;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12__length1 = self->matrix_entries_length1;
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp12_[3];
+#line 554 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ red_out = (((_tmp1_ * _tmp3_) + (_tmp5_ * _tmp7_)) + (_tmp9_ * _tmp11_)) + _tmp13_;
+#line 558 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = red_out;
+#line 558 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = CLAMP (_tmp14_, 0.0f, 1.0f);
+#line 558 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ red_out = _tmp15_;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = *p;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = _tmp16_.red;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = self->matrix_entries;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18__length1 = self->matrix_entries_length1;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = _tmp18_[4];
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = *p;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = _tmp20_.green;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = self->matrix_entries;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22__length1 = self->matrix_entries_length1;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = _tmp22_[5];
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = *p;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = _tmp24_.blue;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = self->matrix_entries;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26__length1 = self->matrix_entries_length1;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = _tmp26_[6];
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = self->matrix_entries;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28__length1 = self->matrix_entries_length1;
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = _tmp28_[7];
+#line 560 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ green_out = (((_tmp17_ * _tmp19_) + (_tmp21_ * _tmp23_)) + (_tmp25_ * _tmp27_)) + _tmp29_;
+#line 564 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = green_out;
+#line 564 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = CLAMP (_tmp30_, 0.0f, 1.0f);
+#line 564 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ green_out = _tmp31_;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = *p;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = _tmp32_.red;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = self->matrix_entries;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34__length1 = self->matrix_entries_length1;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = _tmp34_[8];
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = *p;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = _tmp36_.green;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = self->matrix_entries;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38__length1 = self->matrix_entries_length1;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = _tmp38_[9];
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = *p;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = _tmp40_.blue;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = self->matrix_entries;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42__length1 = self->matrix_entries_length1;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = _tmp42_[10];
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = self->matrix_entries;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44__length1 = self->matrix_entries_length1;
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = _tmp44_[11];
+#line 566 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ blue_out = (((_tmp33_ * _tmp35_) + (_tmp37_ * _tmp39_)) + (_tmp41_ * _tmp43_)) + _tmp45_;
+#line 570 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = blue_out;
+#line 570 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = CLAMP (_tmp46_, 0.0f, 1.0f);
+#line 570 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ blue_out = _tmp47_;
+#line 572 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = red_out;
+#line 572 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = green_out;
+#line 572 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = blue_out;
+#line 572 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_init_from_components (&_tmp51_, _tmp48_, _tmp49_, _tmp50_);
+#line 572 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _tmp51_;
+#line 572 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 5316 "ColorTransformation.c"
+}
+
+
+static gboolean rgb_transformation_real_is_identity (PixelTransformation* base) {
+ RGBTransformation * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 575 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 576 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->identity;
+#line 576 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 576 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 5332 "ColorTransformation.c"
+}
+
+
+static PixelTransformation* rgb_transformation_real_copy (PixelTransformation* base) {
+ RGBTransformation * self;
+ PixelTransformation* result = NULL;
+ RGBTransformation* _result_ = NULL;
+ PixelTransformationType _tmp0_ = 0;
+ RGBTransformation* _tmp1_ = NULL;
+#line 579 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 580 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformation_get_transformation_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 580 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = rgb_transformation_new (_tmp0_);
+#line 580 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_ = _tmp1_;
+#line 5350 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 5355 "ColorTransformation.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = TRUE;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 5362 "ColorTransformation.c"
+ gint _tmp4_ = 0;
+ RGBTransformation* _tmp5_ = NULL;
+ gfloat* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ gfloat* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ gfloat _tmp10_ = 0.0F;
+ gfloat _tmp11_ = 0.0F;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp2_) {
+#line 5375 "ColorTransformation.c"
+ gint _tmp3_ = 0;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = i;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp3_ + 1;
+#line 5381 "ColorTransformation.c"
+ }
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = FALSE;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = i;
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp4_ < RGB_TRANSFORMATION_MATRIX_SIZE)) {
+#line 582 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 5391 "ColorTransformation.c"
+ }
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _result_;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp5_->matrix_entries;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6__length1 = _tmp5_->matrix_entries_length1;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = i;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = self->matrix_entries;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8__length1 = self->matrix_entries_length1;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = i;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_[_tmp7_] = _tmp10_;
+#line 583 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp6_[_tmp7_];
+#line 5413 "ColorTransformation.c"
+ }
+ }
+ }
+#line 586 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_result_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation);
+#line 586 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 5421 "ColorTransformation.c"
+}
+
+
+static void rgb_transformation_class_init (RGBTransformationClass * klass) {
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = rgb_transformation_finalize;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->get_preferred_format = rgb_transformation_real_get_preferred_format;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->get_composition_mode = rgb_transformation_real_get_composition_mode;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->compose_with = rgb_transformation_real_compose_with;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_hsv = rgb_transformation_real_transform_pixel_hsv;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_rgb = rgb_transformation_real_transform_pixel_rgb;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->is_identity = rgb_transformation_real_is_identity;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->copy = rgb_transformation_real_copy;
+#line 5444 "ColorTransformation.c"
+}
+
+
+static void rgb_transformation_instance_init (RGBTransformation * self) {
+#line 410 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->identity = TRUE;
+#line 5451 "ColorTransformation.c"
+}
+
+
+static void rgb_transformation_finalize (PixelTransformation* obj) {
+ RGBTransformation * self;
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RGB_TRANSFORMATION, RGBTransformation);
+#line 406 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->matrix_entries = (g_free (self->matrix_entries), NULL);
+#line 403 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (rgb_transformation_parent_class)->finalize (obj);
+#line 5463 "ColorTransformation.c"
+}
+
+
+GType rgb_transformation_get_type (void) {
+ static volatile gsize rgb_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&rgb_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RGBTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rgb_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RGBTransformation), 0, (GInstanceInitFunc) rgb_transformation_instance_init, NULL };
+ GType rgb_transformation_type_id;
+ rgb_transformation_type_id = g_type_register_static (TYPE_PIXEL_TRANSFORMATION, "RGBTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&rgb_transformation_type_id__volatile, rgb_transformation_type_id);
+ }
+ return rgb_transformation_type_id__volatile;
+}
+
+
+HSVTransformation* hsv_transformation_construct (GType object_type, PixelTransformationType type) {
+ HSVTransformation* self = NULL;
+ PixelTransformationType _tmp0_ = 0;
+#line 592 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = type;
+#line 592 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (HSVTransformation*) pixel_transformation_construct (object_type, _tmp0_);
+#line 591 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 5488 "ColorTransformation.c"
+}
+
+
+static PixelFormat hsv_transformation_real_get_preferred_format (PixelTransformation* base) {
+ HSVTransformation * self;
+ PixelFormat result = 0;
+#line 595 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HSV_TRANSFORMATION, HSVTransformation);
+#line 596 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = PIXEL_FORMAT_HSV;
+#line 596 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 5501 "ColorTransformation.c"
+}
+
+
+static void hsv_transformation_real_transform_pixel_rgb (PixelTransformation* base, RGBAnalyticPixel* p, RGBAnalyticPixel* result) {
+ HSVTransformation * self;
+ HSVAnalyticPixel _tmp0_ = {0};
+ HSVAnalyticPixel _tmp1_ = {0};
+ RGBAnalyticPixel _tmp2_ = {0};
+#line 599 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HSV_TRANSFORMATION, HSVTransformation);
+#line 599 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (p != NULL);
+#line 600 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_to_hsv (p, &_tmp0_);
+#line 600 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_transform_pixel_hsv (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), &_tmp0_, &_tmp1_);
+#line 600 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_to_rgb (&_tmp1_, &_tmp2_);
+#line 600 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _tmp2_;
+#line 600 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 5524 "ColorTransformation.c"
+}
+
+
+static void hsv_transformation_class_init (HSVTransformationClass * klass) {
+#line 590 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 590 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->get_preferred_format = hsv_transformation_real_get_preferred_format;
+#line 590 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_rgb = hsv_transformation_real_transform_pixel_rgb;
+#line 5535 "ColorTransformation.c"
+}
+
+
+static void hsv_transformation_instance_init (HSVTransformation * self) {
+}
+
+
+GType hsv_transformation_get_type (void) {
+ static volatile gsize hsv_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&hsv_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (HSVTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hsv_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HSVTransformation), 0, (GInstanceInitFunc) hsv_transformation_instance_init, NULL };
+ GType hsv_transformation_type_id;
+ hsv_transformation_type_id = g_type_register_static (TYPE_PIXEL_TRANSFORMATION, "HSVTransformation", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&hsv_transformation_type_id__volatile, hsv_transformation_type_id);
+ }
+ return hsv_transformation_type_id__volatile;
+}
+
+
+TintTransformation* tint_transformation_construct (GType object_type, gfloat client_param) {
+ TintTransformation* self = NULL;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 612 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (TintTransformation*) rgb_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_TINT);
+#line 614 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = client_param;
+#line 614 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, TINT_TRANSFORMATION_MIN_PARAMETER, TINT_TRANSFORMATION_MAX_PARAMETER);
+#line 614 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->parameter = _tmp1_;
+#line 616 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->parameter;
+#line 616 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ != 0.0f) {
+#line 5572 "ColorTransformation.c"
+ gfloat adjusted_param = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gfloat _tmp6_ = 0.0F;
+ gfloat _tmp7_ = 0.0F;
+ gfloat* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gfloat _tmp9_ = 0.0F;
+ gfloat _tmp10_ = 0.0F;
+ gfloat* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gfloat _tmp12_ = 0.0F;
+ gfloat _tmp13_ = 0.0F;
+#line 617 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->parameter;
+#line 617 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjusted_param = _tmp3_ / TINT_TRANSFORMATION_MAX_PARAMETER;
+#line 618 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = adjusted_param;
+#line 618 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjusted_param = _tmp4_ * TINT_TRANSFORMATION_INTENSITY_FACTOR;
+#line 620 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 620 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 620 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = adjusted_param;
+#line 620 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_[11] -= _tmp6_ / 2;
+#line 620 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp5_[11];
+#line 621 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 621 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 621 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = adjusted_param;
+#line 621 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_[7] += _tmp9_;
+#line 621 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _tmp8_[7];
+#line 622 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 622 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 622 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = adjusted_param;
+#line 622 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_[3] -= _tmp12_ / 2;
+#line 622 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp11_[3];
+#line 624 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->identity = FALSE;
+#line 5628 "ColorTransformation.c"
+ }
+#line 611 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 5632 "ColorTransformation.c"
+}
+
+
+TintTransformation* tint_transformation_new (gfloat client_param) {
+#line 611 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return tint_transformation_construct (TYPE_TINT_TRANSFORMATION, client_param);
+#line 5639 "ColorTransformation.c"
+}
+
+
+gfloat tint_transformation_get_parameter (TintTransformation* self) {
+ gfloat result = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+#line 628 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_TINT_TRANSFORMATION (self), 0.0F);
+#line 629 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->parameter;
+#line 629 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 629 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 5654 "ColorTransformation.c"
+}
+
+
+static void tint_transformation_class_init (TintTransformationClass * klass) {
+#line 604 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ tint_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 604 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = tint_transformation_finalize;
+#line 604 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (TintTransformationPrivate));
+#line 5665 "ColorTransformation.c"
+}
+
+
+static void tint_transformation_instance_init (TintTransformation * self) {
+#line 604 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = TINT_TRANSFORMATION_GET_PRIVATE (self);
+#line 5672 "ColorTransformation.c"
+}
+
+
+static void tint_transformation_finalize (PixelTransformation* obj) {
+ TintTransformation * self;
+#line 604 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TINT_TRANSFORMATION, TintTransformation);
+#line 604 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (tint_transformation_parent_class)->finalize (obj);
+#line 5682 "ColorTransformation.c"
+}
+
+
+GType tint_transformation_get_type (void) {
+ static volatile gsize tint_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&tint_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TintTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tint_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TintTransformation), 0, (GInstanceInitFunc) tint_transformation_instance_init, NULL };
+ GType tint_transformation_type_id;
+ tint_transformation_type_id = g_type_register_static (TYPE_RGB_TRANSFORMATION, "TintTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&tint_transformation_type_id__volatile, tint_transformation_type_id);
+ }
+ return tint_transformation_type_id__volatile;
+}
+
+
+TemperatureTransformation* temperature_transformation_construct (GType object_type, gfloat client_parameter) {
+ TemperatureTransformation* self = NULL;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 641 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (TemperatureTransformation*) rgb_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_TEMPERATURE);
+#line 643 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = client_parameter;
+#line 643 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, TEMPERATURE_TRANSFORMATION_MIN_PARAMETER, TEMPERATURE_TRANSFORMATION_MAX_PARAMETER);
+#line 643 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->parameter = _tmp1_;
+#line 645 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->parameter;
+#line 645 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ != 0.0f) {
+#line 5715 "ColorTransformation.c"
+ gfloat adjusted_param = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gfloat _tmp6_ = 0.0F;
+ gfloat _tmp7_ = 0.0F;
+ gfloat* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gfloat _tmp9_ = 0.0F;
+ gfloat _tmp10_ = 0.0F;
+ gfloat* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gfloat _tmp12_ = 0.0F;
+ gfloat _tmp13_ = 0.0F;
+#line 646 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->parameter;
+#line 646 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjusted_param = _tmp3_ / TEMPERATURE_TRANSFORMATION_MAX_PARAMETER;
+#line 647 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = adjusted_param;
+#line 647 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjusted_param = _tmp4_ * TEMPERATURE_TRANSFORMATION_INTENSITY_FACTOR;
+#line 649 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 649 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 649 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = adjusted_param;
+#line 649 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_[11] -= _tmp6_;
+#line 649 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp5_[11];
+#line 650 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 650 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 650 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = adjusted_param;
+#line 650 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_[7] += _tmp9_ / 2;
+#line 650 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _tmp8_[7];
+#line 651 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 651 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 651 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = adjusted_param;
+#line 651 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_[3] += _tmp12_ / 2;
+#line 651 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp11_[3];
+#line 653 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->identity = FALSE;
+#line 5771 "ColorTransformation.c"
+ }
+#line 640 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 5775 "ColorTransformation.c"
+}
+
+
+TemperatureTransformation* temperature_transformation_new (gfloat client_parameter) {
+#line 640 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return temperature_transformation_construct (TYPE_TEMPERATURE_TRANSFORMATION, client_parameter);
+#line 5782 "ColorTransformation.c"
+}
+
+
+gfloat temperature_transformation_get_parameter (TemperatureTransformation* self) {
+ gfloat result = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+#line 657 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_TEMPERATURE_TRANSFORMATION (self), 0.0F);
+#line 658 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->parameter;
+#line 658 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 658 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 5797 "ColorTransformation.c"
+}
+
+
+static void temperature_transformation_class_init (TemperatureTransformationClass * klass) {
+#line 633 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temperature_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 633 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = temperature_transformation_finalize;
+#line 633 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (TemperatureTransformationPrivate));
+#line 5808 "ColorTransformation.c"
+}
+
+
+static void temperature_transformation_instance_init (TemperatureTransformation * self) {
+#line 633 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = TEMPERATURE_TRANSFORMATION_GET_PRIVATE (self);
+#line 5815 "ColorTransformation.c"
+}
+
+
+static void temperature_transformation_finalize (PixelTransformation* obj) {
+ TemperatureTransformation * self;
+#line 633 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation);
+#line 633 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (temperature_transformation_parent_class)->finalize (obj);
+#line 5825 "ColorTransformation.c"
+}
+
+
+GType temperature_transformation_get_type (void) {
+ static volatile gsize temperature_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&temperature_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TemperatureTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) temperature_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TemperatureTransformation), 0, (GInstanceInitFunc) temperature_transformation_instance_init, NULL };
+ GType temperature_transformation_type_id;
+ temperature_transformation_type_id = g_type_register_static (TYPE_RGB_TRANSFORMATION, "TemperatureTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&temperature_transformation_type_id__volatile, temperature_transformation_type_id);
+ }
+ return temperature_transformation_type_id__volatile;
+}
+
+
+SaturationTransformation* saturation_transformation_construct (GType object_type, gfloat client_parameter) {
+ SaturationTransformation* self = NULL;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 669 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (SaturationTransformation*) rgb_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_SATURATION);
+#line 671 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = client_parameter;
+#line 671 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, SATURATION_TRANSFORMATION_MIN_PARAMETER, SATURATION_TRANSFORMATION_MAX_PARAMETER);
+#line 671 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->parameter = _tmp1_;
+#line 673 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->parameter;
+#line 673 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ != 0.0f) {
+#line 5858 "ColorTransformation.c"
+ gfloat adjusted_param = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat one_third = 0.0F;
+ gfloat* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gfloat _tmp6_ = 0.0F;
+ gfloat _tmp7_ = 0.0F;
+ gfloat _tmp8_ = 0.0F;
+ gfloat _tmp9_ = 0.0F;
+ gfloat* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gfloat _tmp11_ = 0.0F;
+ gfloat _tmp12_ = 0.0F;
+ gfloat _tmp13_ = 0.0F;
+ gfloat* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gfloat _tmp15_ = 0.0F;
+ gfloat _tmp16_ = 0.0F;
+ gfloat _tmp17_ = 0.0F;
+ gfloat* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gfloat _tmp19_ = 0.0F;
+ gfloat _tmp20_ = 0.0F;
+ gfloat _tmp21_ = 0.0F;
+ gfloat* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gfloat _tmp23_ = 0.0F;
+ gfloat _tmp24_ = 0.0F;
+ gfloat _tmp25_ = 0.0F;
+ gfloat _tmp26_ = 0.0F;
+ gfloat* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ gfloat _tmp28_ = 0.0F;
+ gfloat _tmp29_ = 0.0F;
+ gfloat _tmp30_ = 0.0F;
+ gfloat* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gfloat _tmp32_ = 0.0F;
+ gfloat _tmp33_ = 0.0F;
+ gfloat _tmp34_ = 0.0F;
+ gfloat* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ gfloat _tmp36_ = 0.0F;
+ gfloat _tmp37_ = 0.0F;
+ gfloat _tmp38_ = 0.0F;
+ gfloat* _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ gfloat _tmp40_ = 0.0F;
+ gfloat _tmp41_ = 0.0F;
+ gfloat _tmp42_ = 0.0F;
+ gfloat _tmp43_ = 0.0F;
+#line 674 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->parameter;
+#line 674 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjusted_param = _tmp3_ / SATURATION_TRANSFORMATION_MAX_PARAMETER;
+#line 675 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = adjusted_param;
+#line 675 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjusted_param = _tmp4_ + 1.0f;
+#line 677 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ one_third = 0.3333333f;
+#line 679 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 679 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 679 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = adjusted_param;
+#line 679 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = one_third;
+#line 679 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = adjusted_param;
+#line 679 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_[0] = ((1.0f - _tmp6_) * _tmp7_) + _tmp8_;
+#line 679 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = _tmp5_[0];
+#line 681 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 681 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 681 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = adjusted_param;
+#line 681 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = one_third;
+#line 681 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_[1] = (1.0f - _tmp11_) * _tmp12_;
+#line 681 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp10_[1];
+#line 682 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 682 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 682 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = adjusted_param;
+#line 682 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = one_third;
+#line 682 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_[2] = (1.0f - _tmp15_) * _tmp16_;
+#line 682 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = _tmp14_[2];
+#line 684 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 684 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 684 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = adjusted_param;
+#line 684 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = one_third;
+#line 684 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_[4] = (1.0f - _tmp19_) * _tmp20_;
+#line 684 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = _tmp18_[4];
+#line 685 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 685 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 685 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = adjusted_param;
+#line 685 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = one_third;
+#line 685 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = adjusted_param;
+#line 685 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_[5] = ((1.0f - _tmp23_) * _tmp24_) + _tmp25_;
+#line 685 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = _tmp22_[5];
+#line 687 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 687 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 687 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = adjusted_param;
+#line 687 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = one_third;
+#line 687 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_[6] = (1.0f - _tmp28_) * _tmp29_;
+#line 687 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = _tmp27_[6];
+#line 689 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 689 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 689 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = adjusted_param;
+#line 689 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = one_third;
+#line 689 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_[8] = (1.0f - _tmp32_) * _tmp33_;
+#line 689 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = _tmp31_[8];
+#line 690 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 690 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 690 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = adjusted_param;
+#line 690 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = one_third;
+#line 690 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_[9] = (1.0f - _tmp36_) * _tmp37_;
+#line 690 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = _tmp35_[9];
+#line 691 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 691 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 691 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = adjusted_param;
+#line 691 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = one_third;
+#line 691 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = adjusted_param;
+#line 691 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_[10] = ((1.0f - _tmp40_) * _tmp41_) + _tmp42_;
+#line 691 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = _tmp39_[10];
+#line 694 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->identity = FALSE;
+#line 6037 "ColorTransformation.c"
+ }
+#line 668 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 6041 "ColorTransformation.c"
+}
+
+
+SaturationTransformation* saturation_transformation_new (gfloat client_parameter) {
+#line 668 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return saturation_transformation_construct (TYPE_SATURATION_TRANSFORMATION, client_parameter);
+#line 6048 "ColorTransformation.c"
+}
+
+
+gfloat saturation_transformation_get_parameter (SaturationTransformation* self) {
+ gfloat result = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+#line 698 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_SATURATION_TRANSFORMATION (self), 0.0F);
+#line 699 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->parameter;
+#line 699 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 699 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 6063 "ColorTransformation.c"
+}
+
+
+static void saturation_transformation_class_init (SaturationTransformationClass * klass) {
+#line 662 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ saturation_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 662 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = saturation_transformation_finalize;
+#line 662 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (SaturationTransformationPrivate));
+#line 6074 "ColorTransformation.c"
+}
+
+
+static void saturation_transformation_instance_init (SaturationTransformation * self) {
+#line 662 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = SATURATION_TRANSFORMATION_GET_PRIVATE (self);
+#line 6081 "ColorTransformation.c"
+}
+
+
+static void saturation_transformation_finalize (PixelTransformation* obj) {
+ SaturationTransformation * self;
+#line 662 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SATURATION_TRANSFORMATION, SaturationTransformation);
+#line 662 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (saturation_transformation_parent_class)->finalize (obj);
+#line 6091 "ColorTransformation.c"
+}
+
+
+GType saturation_transformation_get_type (void) {
+ static volatile gsize saturation_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&saturation_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SaturationTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saturation_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SaturationTransformation), 0, (GInstanceInitFunc) saturation_transformation_instance_init, NULL };
+ GType saturation_transformation_type_id;
+ saturation_transformation_type_id = g_type_register_static (TYPE_RGB_TRANSFORMATION, "SaturationTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&saturation_transformation_type_id__volatile, saturation_transformation_type_id);
+ }
+ return saturation_transformation_type_id__volatile;
+}
+
+
+ExposureTransformation* exposure_transformation_construct (GType object_type, gfloat client_parameter) {
+ ExposureTransformation* self = NULL;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 710 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (ExposureTransformation*) rgb_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_EXPOSURE);
+#line 712 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = client_parameter;
+#line 712 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, EXPOSURE_TRANSFORMATION_MIN_PARAMETER, EXPOSURE_TRANSFORMATION_MAX_PARAMETER);
+#line 712 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->parameter = _tmp1_;
+#line 714 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->parameter;
+#line 714 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ != 0.0f) {
+#line 6124 "ColorTransformation.c"
+ gfloat adjusted_param = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ gfloat _tmp5_ = 0.0F;
+ gfloat _tmp6_ = 0.0F;
+ gfloat* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gfloat _tmp8_ = 0.0F;
+ gfloat _tmp9_ = 0.0F;
+ gfloat* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gfloat _tmp11_ = 0.0F;
+ gfloat _tmp12_ = 0.0F;
+#line 716 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->parameter;
+#line 716 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjusted_param = ((_tmp3_ + 16.0f) / 32.0f) + 0.5f;
+#line 718 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 718 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 718 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = adjusted_param;
+#line 718 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_[0] = _tmp5_;
+#line 718 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp4_[0];
+#line 719 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 719 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 719 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = adjusted_param;
+#line 719 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_[5] = _tmp8_;
+#line 719 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = _tmp7_[5];
+#line 720 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries;
+#line 720 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10__length1 = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->matrix_entries_length1;
+#line 720 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = adjusted_param;
+#line 720 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_[10] = _tmp11_;
+#line 720 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = _tmp10_[10];
+#line 722 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_RGB_TRANSFORMATION, RGBTransformation)->identity = FALSE;
+#line 6175 "ColorTransformation.c"
+ }
+#line 709 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 6179 "ColorTransformation.c"
+}
+
+
+ExposureTransformation* exposure_transformation_new (gfloat client_parameter) {
+#line 709 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return exposure_transformation_construct (TYPE_EXPOSURE_TRANSFORMATION, client_parameter);
+#line 6186 "ColorTransformation.c"
+}
+
+
+gfloat exposure_transformation_get_parameter (ExposureTransformation* self) {
+ gfloat result = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+#line 726 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_EXPOSURE_TRANSFORMATION (self), 0.0F);
+#line 727 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->parameter;
+#line 727 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 727 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 6201 "ColorTransformation.c"
+}
+
+
+static void exposure_transformation_class_init (ExposureTransformationClass * klass) {
+#line 703 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ exposure_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 703 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = exposure_transformation_finalize;
+#line 703 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (ExposureTransformationPrivate));
+#line 6212 "ColorTransformation.c"
+}
+
+
+static void exposure_transformation_instance_init (ExposureTransformation * self) {
+#line 703 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = EXPOSURE_TRANSFORMATION_GET_PRIVATE (self);
+#line 6219 "ColorTransformation.c"
+}
+
+
+static void exposure_transformation_finalize (PixelTransformation* obj) {
+ ExposureTransformation * self;
+#line 703 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation);
+#line 703 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (exposure_transformation_parent_class)->finalize (obj);
+#line 6229 "ColorTransformation.c"
+}
+
+
+GType exposure_transformation_get_type (void) {
+ static volatile gsize exposure_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&exposure_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ExposureTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) exposure_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExposureTransformation), 0, (GInstanceInitFunc) exposure_transformation_instance_init, NULL };
+ GType exposure_transformation_type_id;
+ exposure_transformation_type_id = g_type_register_static (TYPE_RGB_TRANSFORMATION, "ExposureTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&exposure_transformation_type_id__volatile, exposure_transformation_type_id);
+ }
+ return exposure_transformation_type_id__volatile;
+}
+
+
+PixelTransformer* pixel_transformer_construct (GType object_type) {
+ PixelTransformer* self = NULL;
+#line 737 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (PixelTransformer*) g_type_create_instance (object_type);
+#line 737 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 6251 "ColorTransformation.c"
+}
+
+
+PixelTransformer* pixel_transformer_new (void) {
+#line 737 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return pixel_transformer_construct (TYPE_PIXEL_TRANSFORMER);
+#line 6258 "ColorTransformation.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 6265 "ColorTransformation.c"
+}
+
+
+PixelTransformer* pixel_transformer_copy (PixelTransformer* self) {
+ PixelTransformer* result = NULL;
+ PixelTransformer* clone = NULL;
+ PixelTransformer* _tmp0_ = NULL;
+#line 740 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMER (self), NULL);
+#line 741 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformer_new ();
+#line 741 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ clone = _tmp0_;
+#line 6279 "ColorTransformation.c"
+ {
+ GeeArrayList* _transformation_list = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ gint _transformation_size = 0;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _transformation_index = 0;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->transformations;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _transformation_list = _tmp2_;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _transformation_list;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _tmp4_;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _transformation_size = _tmp5_;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _transformation_index = -1;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 6307 "ColorTransformation.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ PixelTransformation* transformation = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ PixelTransformer* _tmp12_ = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ PixelTransformation* _tmp14_ = NULL;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _transformation_index;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _transformation_index = _tmp6_ + 1;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _transformation_index;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = _transformation_size;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp7_ < _tmp8_)) {
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 6330 "ColorTransformation.c"
+ }
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = _transformation_list;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _transformation_index;
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp10_);
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ transformation = (PixelTransformation*) _tmp11_;
+#line 744 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = clone;
+#line 744 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp12_->priv->transformations;
+#line 744 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = transformation;
+#line 744 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp14_);
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (transformation);
+#line 6350 "ColorTransformation.c"
+ }
+#line 743 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (_transformation_list);
+#line 6354 "ColorTransformation.c"
+ }
+#line 746 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = clone;
+#line 746 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 6360 "ColorTransformation.c"
+}
+
+
+static void pixel_transformer_build_optimized_transformations (PixelTransformer* self) {
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ PixelTransformation** _tmp3_ = NULL;
+ PixelTransformation* pre_trans = NULL;
+#line 749 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->transformations;
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _tmp1_;
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = g_new0 (PixelTransformation*, _tmp2_ + 1);
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = (_vala_array_free (self->priv->optimized_transformations, self->priv->optimized_transformations_length1, (GDestroyNotify) pixel_transformation_unref), NULL);
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = _tmp3_;
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations_length1 = _tmp2_;
+#line 750 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_optimized_transformations_size_ = self->priv->optimized_transformations_length1;
+#line 752 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pre_trans = NULL;
+#line 753 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_slots_used = 0;
+#line 6392 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 6397 "ColorTransformation.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = TRUE;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 6404 "ColorTransformation.c"
+ gint _tmp6_ = 0;
+ GeeArrayList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ PixelTransformation* trans = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ PixelTransformation* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ PixelTransformation* this_trans = NULL;
+ PixelTransformation* _tmp15_ = NULL;
+ CompositionMode _tmp16_ = 0;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ PixelTransformation* _tmp23_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp4_) {
+#line 6423 "ColorTransformation.c"
+ gint _tmp5_ = 0;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = i;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp5_ + 1;
+#line 6429 "ColorTransformation.c"
+ }
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = FALSE;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = i;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = self->priv->transformations;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = _tmp8_;
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp6_ < _tmp9_)) {
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 6445 "ColorTransformation.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = self->priv->transformations;
+#line 755 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = i;
+#line 755 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp11_);
+#line 755 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ trans = (PixelTransformation*) _tmp12_;
+#line 757 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = trans;
+#line 757 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = pixel_transformation_is_identity (_tmp13_);
+#line 757 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp14_) {
+#line 758 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (trans);
+#line 758 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ continue;
+#line 6465 "ColorTransformation.c"
+ }
+#line 760 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ this_trans = NULL;
+#line 761 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = trans;
+#line 761 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = pixel_transformation_get_composition_mode (_tmp15_);
+#line 761 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp16_ == COMPOSITION_MODE_NONE) {
+#line 6475 "ColorTransformation.c"
+ PixelTransformation* _tmp17_ = NULL;
+ PixelTransformation* _tmp18_ = NULL;
+#line 762 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = trans;
+#line 762 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = _pixel_transformation_ref0 (_tmp17_);
+#line 762 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (this_trans);
+#line 762 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ this_trans = _tmp18_;
+#line 6486 "ColorTransformation.c"
+ } else {
+ PixelTransformation* _tmp19_ = NULL;
+ PixelTransformation* _tmp20_ = NULL;
+#line 764 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = trans;
+#line 764 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = pixel_transformation_copy (_tmp19_);
+#line 764 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (this_trans);
+#line 764 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ this_trans = _tmp20_;
+#line 6498 "ColorTransformation.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = pre_trans;
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp23_ != NULL) {
+#line 6504 "ColorTransformation.c"
+ PixelTransformation* _tmp24_ = NULL;
+ CompositionMode _tmp25_ = 0;
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = this_trans;
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = pixel_transformation_get_composition_mode (_tmp24_);
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = _tmp25_ != COMPOSITION_MODE_NONE;
+#line 6513 "ColorTransformation.c"
+ } else {
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = FALSE;
+#line 6517 "ColorTransformation.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp22_) {
+#line 6521 "ColorTransformation.c"
+ PixelTransformation* _tmp26_ = NULL;
+ CompositionMode _tmp27_ = 0;
+ PixelTransformation* _tmp28_ = NULL;
+ CompositionMode _tmp29_ = 0;
+#line 767 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = this_trans;
+#line 767 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = pixel_transformation_get_composition_mode (_tmp26_);
+#line 767 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = pre_trans;
+#line 767 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = pixel_transformation_get_composition_mode (_tmp28_);
+#line 767 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = _tmp27_ == _tmp29_;
+#line 6536 "ColorTransformation.c"
+ } else {
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = FALSE;
+#line 6540 "ColorTransformation.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp21_) {
+#line 6544 "ColorTransformation.c"
+ PixelTransformation* _tmp30_ = NULL;
+ PixelTransformation* _tmp31_ = NULL;
+#line 768 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = pre_trans;
+#line 768 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = this_trans;
+#line 768 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_compose_with (_tmp30_, _tmp31_);
+#line 6553 "ColorTransformation.c"
+ } else {
+ PixelTransformation** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gint _tmp33_ = 0;
+ PixelTransformation* _tmp34_ = NULL;
+ PixelTransformation* _tmp35_ = NULL;
+ PixelTransformation* _tmp36_ = NULL;
+ PixelTransformation* _tmp37_ = NULL;
+ PixelTransformation* _tmp38_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = self->priv->optimized_transformations;
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32__length1 = self->priv->optimized_transformations_length1;
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = self->priv->optimized_slots_used;
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_slots_used = _tmp33_ + 1;
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = this_trans;
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = _pixel_transformation_ref0 (_tmp34_);
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp32_[_tmp33_]);
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_[_tmp33_] = _tmp35_;
+#line 770 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = _tmp32_[_tmp33_];
+#line 771 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = this_trans;
+#line 771 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = _pixel_transformation_ref0 (_tmp37_);
+#line 771 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (pre_trans);
+#line 771 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pre_trans = _tmp38_;
+#line 6589 "ColorTransformation.c"
+ }
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (this_trans);
+#line 754 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (trans);
+#line 6595 "ColorTransformation.c"
+ }
+ }
+ }
+#line 749 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (pre_trans);
+#line 6601 "ColorTransformation.c"
+}
+
+
+static void pixel_transformer_apply_transformations (PixelTransformer* self, RGBAnalyticPixel* p, RGBAnalyticPixel* result) {
+ PixelFormat current_format = 0;
+ RGBAnalyticPixel p_rgb = {0};
+ RGBAnalyticPixel _tmp0_ = {0};
+ HSVAnalyticPixel p_hsv = {0};
+ PixelFormat _tmp21_ = 0;
+#line 776 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 776 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (p != NULL);
+#line 777 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ current_format = PIXEL_FORMAT_RGB;
+#line 778 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *p;
+#line 778 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ p_rgb = _tmp0_;
+#line 779 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_init (&p_hsv);
+#line 6623 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 6628 "ColorTransformation.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = TRUE;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 6635 "ColorTransformation.c"
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ PixelTransformation* trans = NULL;
+ PixelTransformation** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ PixelTransformation* _tmp7_ = NULL;
+ PixelTransformation* _tmp8_ = NULL;
+ PixelTransformation* _tmp9_ = NULL;
+ PixelFormat _tmp10_ = 0;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp1_) {
+#line 6648 "ColorTransformation.c"
+ gint _tmp2_ = 0;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = i;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp2_ + 1;
+#line 6654 "ColorTransformation.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = FALSE;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = i;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = self->priv->optimized_slots_used;
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp3_ < _tmp4_)) {
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 6666 "ColorTransformation.c"
+ }
+#line 782 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = self->priv->optimized_transformations;
+#line 782 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5__length1 = self->priv->optimized_transformations_length1;
+#line 782 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = i;
+#line 782 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 782 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = _pixel_transformation_ref0 (_tmp7_);
+#line 782 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ trans = _tmp8_;
+#line 783 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = trans;
+#line 783 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = pixel_transformation_get_preferred_format (_tmp9_);
+#line 783 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp10_ == PIXEL_FORMAT_RGB) {
+#line 6686 "ColorTransformation.c"
+ PixelFormat _tmp11_ = 0;
+ PixelTransformation* _tmp13_ = NULL;
+ RGBAnalyticPixel _tmp14_ = {0};
+ RGBAnalyticPixel _tmp15_ = {0};
+#line 784 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = current_format;
+#line 784 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp11_ == PIXEL_FORMAT_HSV) {
+#line 6695 "ColorTransformation.c"
+ RGBAnalyticPixel _tmp12_ = {0};
+#line 785 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_to_rgb (&p_hsv, &_tmp12_);
+#line 785 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ p_rgb = _tmp12_;
+#line 786 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ current_format = PIXEL_FORMAT_RGB;
+#line 6703 "ColorTransformation.c"
+ }
+#line 788 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = trans;
+#line 788 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = p_rgb;
+#line 788 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_transform_pixel_rgb (_tmp13_, &_tmp14_, &_tmp15_);
+#line 788 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ p_rgb = _tmp15_;
+#line 6713 "ColorTransformation.c"
+ } else {
+ PixelFormat _tmp16_ = 0;
+ PixelTransformation* _tmp18_ = NULL;
+ HSVAnalyticPixel _tmp19_ = {0};
+ HSVAnalyticPixel _tmp20_ = {0};
+#line 790 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = current_format;
+#line 790 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp16_ == PIXEL_FORMAT_RGB) {
+#line 6723 "ColorTransformation.c"
+ HSVAnalyticPixel _tmp17_ = {0};
+#line 791 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_to_hsv (&p_rgb, &_tmp17_);
+#line 791 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ p_hsv = _tmp17_;
+#line 792 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ current_format = PIXEL_FORMAT_HSV;
+#line 6731 "ColorTransformation.c"
+ }
+#line 794 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = trans;
+#line 794 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = p_hsv;
+#line 794 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_transform_pixel_hsv (_tmp18_, &_tmp19_, &_tmp20_);
+#line 794 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ p_hsv = _tmp20_;
+#line 6741 "ColorTransformation.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (trans);
+#line 6745 "ColorTransformation.c"
+ }
+ }
+ }
+#line 798 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = current_format;
+#line 798 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp21_ == PIXEL_FORMAT_HSV) {
+#line 6753 "ColorTransformation.c"
+ RGBAnalyticPixel _tmp22_ = {0};
+#line 799 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_to_rgb (&p_hsv, &_tmp22_);
+#line 799 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ p_rgb = _tmp22_;
+#line 6759 "ColorTransformation.c"
+ }
+#line 801 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = p_rgb;
+#line 801 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 6765 "ColorTransformation.c"
+}
+
+
+void pixel_transformer_attach_transformation (PixelTransformer* self, PixelTransformation* trans) {
+ GeeArrayList* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+#line 807 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 807 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (trans));
+#line 808 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->transformations;
+#line 808 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = trans;
+#line 808 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 809 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = (_vala_array_free (self->priv->optimized_transformations, self->priv->optimized_transformations_length1, (GDestroyNotify) pixel_transformation_unref), NULL);
+#line 809 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = NULL;
+#line 809 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations_length1 = 0;
+#line 809 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_optimized_transformations_size_ = self->priv->optimized_transformations_length1;
+#line 6790 "ColorTransformation.c"
+}
+
+
+void pixel_transformer_detach_transformation (PixelTransformer* self, PixelTransformation* victim) {
+ GeeArrayList* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+#line 814 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 814 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (victim));
+#line 815 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->transformations;
+#line 815 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = victim;
+#line 815 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 816 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = (_vala_array_free (self->priv->optimized_transformations, self->priv->optimized_transformations_length1, (GDestroyNotify) pixel_transformation_unref), NULL);
+#line 816 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = NULL;
+#line 816 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations_length1 = 0;
+#line 816 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_optimized_transformations_size_ = self->priv->optimized_transformations_length1;
+#line 6815 "ColorTransformation.c"
+}
+
+
+void pixel_transformer_replace_transformation (PixelTransformer* self, PixelTransformation* old_trans, PixelTransformation* new_trans) {
+#line 821 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 821 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (old_trans));
+#line 821 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (new_trans));
+#line 6826 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 6831 "ColorTransformation.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = TRUE;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 6838 "ColorTransformation.c"
+ gint _tmp2_ = 0;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gpointer _tmp8_ = NULL;
+ PixelTransformation* _tmp9_ = NULL;
+ PixelTransformation* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp0_) {
+#line 6851 "ColorTransformation.c"
+ gint _tmp1_ = 0;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = i;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp1_ + 1;
+#line 6857 "ColorTransformation.c"
+ }
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = i;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->transformations;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _tmp4_;
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp2_ < _tmp5_)) {
+#line 823 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 6873 "ColorTransformation.c"
+ }
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = self->priv->transformations;
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = i;
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp7_);
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = (PixelTransformation*) _tmp8_;
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = old_trans;
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp9_ == _tmp10_;
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp9_);
+#line 824 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp11_) {
+#line 6891 "ColorTransformation.c"
+ GeeArrayList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ PixelTransformation* _tmp14_ = NULL;
+#line 825 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = self->priv->transformations;
+#line 825 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = i;
+#line 825 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = new_trans;
+#line 825 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ gee_abstract_list_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp13_, _tmp14_);
+#line 827 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = (_vala_array_free (self->priv->optimized_transformations, self->priv->optimized_transformations_length1, (GDestroyNotify) pixel_transformation_unref), NULL);
+#line 827 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = NULL;
+#line 827 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations_length1 = 0;
+#line 827 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_optimized_transformations_size_ = self->priv->optimized_transformations_length1;
+#line 828 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 6913 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+#line 831 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_error ("ColorTransformation.vala:831: %s", "PixelTransformer: replace_transformation( ): old_trans is not present " \
+"in " "transformation collection");
+#line 6920 "ColorTransformation.c"
+}
+
+
+void pixel_transformer_transform_pixbuf (PixelTransformer* self, GdkPixbuf* pixbuf, GCancellable* cancellable) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+#line 835 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 835 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 835 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 836 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixbuf;
+#line 836 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = pixbuf;
+#line 836 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = cancellable;
+#line 836 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_transform_to_other_pixbuf (self, _tmp0_, _tmp1_, _tmp2_);
+#line 6942 "ColorTransformation.c"
+}
+
+
+void pixel_transformer_transform_from_fp (PixelTransformer* self, gfloat** fp_pixel_cache, int* fp_pixel_cache_length1, GdkPixbuf* dest) {
+ PixelTransformation** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gint dest_width = 0;
+ GdkPixbuf* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint dest_height = 0;
+ GdkPixbuf* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint dest_num_channels = 0;
+ GdkPixbuf* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint dest_rowstride = 0;
+ GdkPixbuf* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ guchar* dest_pixels = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ guint8* _tmp10_ = NULL;
+ gint dest_pixels_length1 = 0;
+ gint _dest_pixels_size_ = 0;
+ gint cache_pixel_ticker = 0;
+#line 839 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 839 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (dest));
+#line 840 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->optimized_transformations;
+#line 840 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0__length1 = self->priv->optimized_transformations_length1;
+#line 840 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp0_ == NULL) {
+#line 841 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_build_optimized_transformations (self);
+#line 6979 "ColorTransformation.c"
+ }
+#line 843 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = dest;
+#line 843 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = gdk_pixbuf_get_width (_tmp1_);
+#line 843 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_width = _tmp2_;
+#line 844 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = dest;
+#line 844 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = gdk_pixbuf_get_height (_tmp3_);
+#line 844 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_height = _tmp4_;
+#line 845 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = dest;
+#line 845 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = gdk_pixbuf_get_n_channels (_tmp5_);
+#line 845 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_num_channels = _tmp6_;
+#line 846 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = dest;
+#line 846 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = gdk_pixbuf_get_rowstride (_tmp7_);
+#line 846 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_rowstride = _tmp8_;
+#line 847 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = dest;
+#line 847 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = gdk_pixbuf_get_pixels (_tmp9_);
+#line 847 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_pixels = _tmp10_;
+#line 847 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_pixels_length1 = -1;
+#line 847 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _dest_pixels_size_ = dest_pixels_length1;
+#line 849 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ cache_pixel_ticker = 0;
+#line 7017 "ColorTransformation.c"
+ {
+ gint j = 0;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ j = 0;
+#line 7022 "ColorTransformation.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = TRUE;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 7029 "ColorTransformation.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint row_start_index = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint row_end_index = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp11_) {
+#line 7041 "ColorTransformation.c"
+ gint _tmp12_ = 0;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = j;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ j = _tmp12_ + 1;
+#line 7047 "ColorTransformation.c"
+ }
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = FALSE;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = j;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = dest_height;
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 851 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 7059 "ColorTransformation.c"
+ }
+#line 852 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = j;
+#line 852 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = dest_rowstride;
+#line 852 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_start_index = _tmp15_ * _tmp16_;
+#line 853 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = row_start_index;
+#line 853 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = dest_width;
+#line 853 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = dest_num_channels;
+#line 853 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_end_index = _tmp17_ + (_tmp18_ * _tmp19_);
+#line 7075 "ColorTransformation.c"
+ {
+ gint i = 0;
+ gint _tmp20_ = 0;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = row_start_index;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp20_;
+#line 7083 "ColorTransformation.c"
+ {
+ gboolean _tmp21_ = FALSE;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = TRUE;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 7090 "ColorTransformation.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ RGBAnalyticPixel pixel = {0};
+ gfloat* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gint _tmp27_ = 0;
+ gfloat _tmp28_ = 0.0F;
+ gfloat* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gint _tmp30_ = 0;
+ gfloat _tmp31_ = 0.0F;
+ gfloat* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gint _tmp33_ = 0;
+ gfloat _tmp34_ = 0.0F;
+ gint _tmp35_ = 0;
+ RGBAnalyticPixel _tmp36_ = {0};
+ RGBAnalyticPixel _tmp37_ = {0};
+ guchar* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ gint _tmp39_ = 0;
+ RGBAnalyticPixel _tmp40_ = {0};
+ gfloat _tmp41_ = 0.0F;
+ guchar _tmp42_ = '\0';
+ guchar* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gint _tmp44_ = 0;
+ RGBAnalyticPixel _tmp45_ = {0};
+ gfloat _tmp46_ = 0.0F;
+ guchar _tmp47_ = '\0';
+ guchar* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ gint _tmp49_ = 0;
+ RGBAnalyticPixel _tmp50_ = {0};
+ gfloat _tmp51_ = 0.0F;
+ guchar _tmp52_ = '\0';
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp21_) {
+#line 7129 "ColorTransformation.c"
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = i;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = dest_num_channels;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp22_ + _tmp23_;
+#line 7138 "ColorTransformation.c"
+ }
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = FALSE;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = i;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = row_end_index;
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp24_ < _tmp25_)) {
+#line 854 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 7150 "ColorTransformation.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = *fp_pixel_cache;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26__length1 = *fp_pixel_cache_length1;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = cache_pixel_ticker;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = _tmp26_[_tmp27_];
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = *fp_pixel_cache;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29__length1 = *fp_pixel_cache_length1;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = cache_pixel_ticker;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = _tmp29_[_tmp30_ + 1];
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = *fp_pixel_cache;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32__length1 = *fp_pixel_cache_length1;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = cache_pixel_ticker;
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = _tmp32_[_tmp33_ + 2];
+#line 855 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_init_from_components (&pixel, _tmp28_, _tmp31_, _tmp34_);
+#line 860 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = cache_pixel_ticker;
+#line 860 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ cache_pixel_ticker = _tmp35_ + 3;
+#line 862 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = pixel;
+#line 862 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_apply_transformations (self, &_tmp36_, &_tmp37_);
+#line 862 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel = _tmp37_;
+#line 864 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = dest_pixels;
+#line 864 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38__length1 = dest_pixels_length1;
+#line 864 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = i;
+#line 864 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = pixel;
+#line 864 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = _tmp40_.red;
+#line 864 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_[_tmp39_] = (guchar) (_tmp41_ * 255.0f);
+#line 864 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = _tmp38_[_tmp39_];
+#line 865 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = dest_pixels;
+#line 865 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43__length1 = dest_pixels_length1;
+#line 865 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = i;
+#line 865 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = pixel;
+#line 865 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = _tmp45_.green;
+#line 865 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_[_tmp44_ + 1] = (guchar) (_tmp46_ * 255.0f);
+#line 865 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = _tmp43_[_tmp44_ + 1];
+#line 866 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = dest_pixels;
+#line 866 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48__length1 = dest_pixels_length1;
+#line 866 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = i;
+#line 866 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = pixel;
+#line 866 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = _tmp50_.blue;
+#line 866 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_[_tmp49_ + 2] = (guchar) (_tmp51_ * 255.0f);
+#line 866 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = _tmp48_[_tmp49_ + 2];
+#line 7230 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+void pixel_transformer_transform_to_other_pixbuf (PixelTransformer* self, GdkPixbuf* source, GdkPixbuf* dest, GCancellable* cancellable) {
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GdkPixbuf* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GdkPixbuf* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GdkPixbuf* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ GdkPixbuf* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ PixelTransformation** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gint n_channels = 0;
+ GdkPixbuf* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint rowstride = 0;
+ GdkPixbuf* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint width = 0;
+ GdkPixbuf* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint height = 0;
+ GdkPixbuf* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint rowbytes = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ guchar* source_pixels = NULL;
+ GdkPixbuf* _tmp29_ = NULL;
+ guint8* _tmp30_ = NULL;
+ gint source_pixels_length1 = 0;
+ gint _source_pixels_size_ = 0;
+ guchar* dest_pixels = NULL;
+ GdkPixbuf* _tmp31_ = NULL;
+ guint8* _tmp32_ = NULL;
+ gint dest_pixels_length1 = 0;
+ gint _dest_pixels_size_ = 0;
+#line 871 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMER (self));
+#line 871 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (source));
+#line 871 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (dest));
+#line 871 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 873 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = source;
+#line 873 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = gdk_pixbuf_get_width (_tmp0_);
+#line 873 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = _tmp1_;
+#line 873 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = dest;
+#line 873 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = gdk_pixbuf_get_width (_tmp3_);
+#line 873 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _tmp4_;
+#line 873 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ != _tmp5_) {
+#line 874 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_error ("ColorTransformation.vala:874: PixelTransformer: source and destination" \
+" pixbufs must have the same width");
+#line 7310 "ColorTransformation.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = source;
+#line 876 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = gdk_pixbuf_get_height (_tmp6_);
+#line 876 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = _tmp7_;
+#line 876 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = dest;
+#line 876 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = gdk_pixbuf_get_height (_tmp9_);
+#line 876 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp10_;
+#line 876 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp8_ != _tmp11_) {
+#line 877 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_error ("ColorTransformation.vala:877: PixelTransformer: source and destination" \
+" pixbufs must have the same height");
+#line 7328 "ColorTransformation.c"
+ }
+#line 879 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = source;
+#line 879 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = gdk_pixbuf_get_n_channels (_tmp12_);
+#line 879 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = _tmp13_;
+#line 879 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = dest;
+#line 879 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = gdk_pixbuf_get_n_channels (_tmp15_);
+#line 879 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = _tmp16_;
+#line 879 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp14_ != _tmp17_) {
+#line 880 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_error ("ColorTransformation.vala:880: %s", "PixelTransformer: source and destination pixbufs must have the same nu" \
+"mber " "of channels");
+#line 7346 "ColorTransformation.c"
+ }
+#line 883 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = self->priv->optimized_transformations;
+#line 883 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18__length1 = self->priv->optimized_transformations_length1;
+#line 883 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp18_ == NULL) {
+#line 884 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_build_optimized_transformations (self);
+#line 7356 "ColorTransformation.c"
+ }
+#line 886 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = source;
+#line 886 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = gdk_pixbuf_get_n_channels (_tmp19_);
+#line 886 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ n_channels = _tmp20_;
+#line 887 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = source;
+#line 887 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = gdk_pixbuf_get_rowstride (_tmp21_);
+#line 887 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rowstride = _tmp22_;
+#line 888 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = source;
+#line 888 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = gdk_pixbuf_get_width (_tmp23_);
+#line 888 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ width = _tmp24_;
+#line 889 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = source;
+#line 889 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = gdk_pixbuf_get_height (_tmp25_);
+#line 889 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ height = _tmp26_;
+#line 890 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = n_channels;
+#line 890 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = width;
+#line 890 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rowbytes = _tmp27_ * _tmp28_;
+#line 891 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = source;
+#line 891 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = gdk_pixbuf_get_pixels (_tmp29_);
+#line 891 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ source_pixels = _tmp30_;
+#line 891 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ source_pixels_length1 = -1;
+#line 891 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _source_pixels_size_ = source_pixels_length1;
+#line 892 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = dest;
+#line 892 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = gdk_pixbuf_get_pixels (_tmp31_);
+#line 892 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_pixels = _tmp32_;
+#line 892 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_pixels_length1 = -1;
+#line 892 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _dest_pixels_size_ = dest_pixels_length1;
+#line 7408 "ColorTransformation.c"
+ {
+ gint j = 0;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ j = 0;
+#line 7413 "ColorTransformation.c"
+ {
+ gboolean _tmp33_ = FALSE;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = TRUE;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 7420 "ColorTransformation.c"
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint row_start_index = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint row_end_index = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gboolean _tmp70_ = FALSE;
+ GCancellable* _tmp71_ = NULL;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp33_) {
+#line 7433 "ColorTransformation.c"
+ gint _tmp34_ = 0;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = j;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ j = _tmp34_ + 1;
+#line 7439 "ColorTransformation.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = FALSE;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = j;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = height;
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp35_ < _tmp36_)) {
+#line 893 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 7451 "ColorTransformation.c"
+ }
+#line 894 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = j;
+#line 894 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = rowstride;
+#line 894 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_start_index = _tmp37_ * _tmp38_;
+#line 895 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = row_start_index;
+#line 895 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = rowbytes;
+#line 895 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_end_index = _tmp39_ + _tmp40_;
+#line 7465 "ColorTransformation.c"
+ {
+ gint i = 0;
+ gint _tmp41_ = 0;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = row_start_index;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp41_;
+#line 7473 "ColorTransformation.c"
+ {
+ gboolean _tmp42_ = FALSE;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = TRUE;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 7480 "ColorTransformation.c"
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ RGBAnalyticPixel current_pixel = {0};
+ guchar* _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ gint _tmp48_ = 0;
+ guchar _tmp49_ = '\0';
+ guchar* _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ gint _tmp51_ = 0;
+ guchar _tmp52_ = '\0';
+ guchar* _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ gint _tmp54_ = 0;
+ guchar _tmp55_ = '\0';
+ RGBAnalyticPixel _tmp56_ = {0};
+ RGBAnalyticPixel _tmp57_ = {0};
+ guchar* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gint _tmp59_ = 0;
+ guchar _tmp60_ = '\0';
+ guchar _tmp61_ = '\0';
+ guchar* _tmp62_ = NULL;
+ gint _tmp62__length1 = 0;
+ gint _tmp63_ = 0;
+ guchar _tmp64_ = '\0';
+ guchar _tmp65_ = '\0';
+ guchar* _tmp66_ = NULL;
+ gint _tmp66__length1 = 0;
+ gint _tmp67_ = 0;
+ guchar _tmp68_ = '\0';
+ guchar _tmp69_ = '\0';
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp42_) {
+#line 7515 "ColorTransformation.c"
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = i;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = n_channels;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp43_ + _tmp44_;
+#line 7524 "ColorTransformation.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = FALSE;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = i;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = row_end_index;
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp45_ < _tmp46_)) {
+#line 896 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 7536 "ColorTransformation.c"
+ }
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = source_pixels;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47__length1 = source_pixels_length1;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = i;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = _tmp47_[_tmp48_];
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = source_pixels;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50__length1 = source_pixels_length1;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = i;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = _tmp50_[_tmp51_ + 1];
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = source_pixels;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53__length1 = source_pixels_length1;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = i;
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = _tmp53_[_tmp54_ + 2];
+#line 897 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_init_from_quantized_components (&current_pixel, _tmp49_, _tmp52_, _tmp55_);
+#line 900 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = current_pixel;
+#line 900 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_apply_transformations (self, &_tmp56_, &_tmp57_);
+#line 900 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ current_pixel = _tmp57_;
+#line 902 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = dest_pixels;
+#line 902 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58__length1 = dest_pixels_length1;
+#line 902 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp59_ = i;
+#line 902 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60_ = rgb_analytic_pixel_quantized_red (&current_pixel);
+#line 902 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_[_tmp59_] = _tmp60_;
+#line 902 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61_ = _tmp58_[_tmp59_];
+#line 903 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_ = dest_pixels;
+#line 903 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62__length1 = dest_pixels_length1;
+#line 903 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63_ = i;
+#line 903 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64_ = rgb_analytic_pixel_quantized_green (&current_pixel);
+#line 903 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_[_tmp63_ + 1] = _tmp64_;
+#line 903 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp65_ = _tmp62_[_tmp63_ + 1];
+#line 904 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66_ = dest_pixels;
+#line 904 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66__length1 = dest_pixels_length1;
+#line 904 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp67_ = i;
+#line 904 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68_ = rgb_analytic_pixel_quantized_blue (&current_pixel);
+#line 904 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66_[_tmp67_ + 2] = _tmp68_;
+#line 904 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp69_ = _tmp66_[_tmp67_ + 2];
+#line 7606 "ColorTransformation.c"
+ }
+ }
+ }
+#line 907 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp71_ = cancellable;
+#line 907 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp71_ != NULL) {
+#line 7614 "ColorTransformation.c"
+ GCancellable* _tmp72_ = NULL;
+ gboolean _tmp73_ = FALSE;
+#line 907 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp72_ = cancellable;
+#line 907 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73_ = g_cancellable_is_cancelled (_tmp72_);
+#line 907 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70_ = _tmp73_;
+#line 7623 "ColorTransformation.c"
+ } else {
+#line 907 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70_ = FALSE;
+#line 7627 "ColorTransformation.c"
+ }
+#line 907 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp70_) {
+#line 908 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 7633 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+}
+
+
+static void value_pixel_transformer_init (GValue* value) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 7644 "ColorTransformation.c"
+}
+
+
+static void value_pixel_transformer_free_value (GValue* value) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (value->data[0].v_pointer) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_unref (value->data[0].v_pointer);
+#line 7653 "ColorTransformation.c"
+ }
+}
+
+
+static void value_pixel_transformer_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = pixel_transformer_ref (src_value->data[0].v_pointer);
+#line 7663 "ColorTransformation.c"
+ } else {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 7667 "ColorTransformation.c"
+ }
+}
+
+
+static gpointer value_pixel_transformer_peek_pointer (const GValue* value) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 7675 "ColorTransformation.c"
+}
+
+
+static gchar* value_pixel_transformer_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (collect_values[0].v_pointer) {
+#line 7682 "ColorTransformation.c"
+ PixelTransformer* object;
+ object = collect_values[0].v_pointer;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 7689 "ColorTransformation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 7693 "ColorTransformation.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = pixel_transformer_ref (object);
+#line 7697 "ColorTransformation.c"
+ } else {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 7701 "ColorTransformation.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 7705 "ColorTransformation.c"
+}
+
+
+static gchar* value_pixel_transformer_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PixelTransformer** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!object_p) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 7716 "ColorTransformation.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!value->data[0].v_pointer) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = NULL;
+#line 7722 "ColorTransformation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 7726 "ColorTransformation.c"
+ } else {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = pixel_transformer_ref (value->data[0].v_pointer);
+#line 7730 "ColorTransformation.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 7734 "ColorTransformation.c"
+}
+
+
+GParamSpec* param_spec_pixel_transformer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPixelTransformer* spec;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PIXEL_TRANSFORMER), NULL);
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return G_PARAM_SPEC (spec);
+#line 7748 "ColorTransformation.c"
+}
+
+
+gpointer value_get_pixel_transformer (const GValue* value) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMER), NULL);
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 7757 "ColorTransformation.c"
+}
+
+
+void value_set_pixel_transformer (GValue* value, gpointer v_object) {
+ PixelTransformer* old;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMER));
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXEL_TRANSFORMER));
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_ref (value->data[0].v_pointer);
+#line 7777 "ColorTransformation.c"
+ } else {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 7781 "ColorTransformation.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_unref (old);
+#line 7787 "ColorTransformation.c"
+ }
+}
+
+
+void value_take_pixel_transformer (GValue* value, gpointer v_object) {
+ PixelTransformer* old;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PIXEL_TRANSFORMER));
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PIXEL_TRANSFORMER));
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 7806 "ColorTransformation.c"
+ } else {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 7810 "ColorTransformation.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_unref (old);
+#line 7816 "ColorTransformation.c"
+ }
+}
+
+
+static void pixel_transformer_class_init (PixelTransformerClass * klass) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformer_parent_class = g_type_class_peek_parent (klass);
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformerClass *) klass)->finalize = pixel_transformer_finalize;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (PixelTransformerPrivate));
+#line 7828 "ColorTransformation.c"
+}
+
+
+static void pixel_transformer_instance_init (PixelTransformer * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = PIXEL_TRANSFORMER_GET_PRIVATE (self);
+#line 732 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = gee_array_list_new (TYPE_PIXEL_TRANSFORMATION, (GBoxedCopyFunc) pixel_transformation_ref, pixel_transformation_unref, NULL, NULL, NULL);
+#line 732 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->transformations = _tmp0_;
+#line 734 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = NULL;
+#line 734 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations_length1 = 0;
+#line 734 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_optimized_transformations_size_ = self->priv->optimized_transformations_length1;
+#line 735 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_slots_used = 0;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->ref_count = 1;
+#line 7850 "ColorTransformation.c"
+}
+
+
+static void pixel_transformer_finalize (PixelTransformer* obj) {
+ PixelTransformer * self;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PIXEL_TRANSFORMER, PixelTransformer);
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_signal_handlers_destroy (self);
+#line 732 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (self->priv->transformations);
+#line 734 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->optimized_transformations = (_vala_array_free (self->priv->optimized_transformations, self->priv->optimized_transformations_length1, (GDestroyNotify) pixel_transformation_unref), NULL);
+#line 7864 "ColorTransformation.c"
+}
+
+
+GType pixel_transformer_get_type (void) {
+ static volatile gsize pixel_transformer_type_id__volatile = 0;
+ if (g_once_init_enter (&pixel_transformer_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_pixel_transformer_init, value_pixel_transformer_free_value, value_pixel_transformer_copy_value, value_pixel_transformer_peek_pointer, "p", value_pixel_transformer_collect_value, "p", value_pixel_transformer_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PixelTransformerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixel_transformer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixelTransformer), 0, (GInstanceInitFunc) pixel_transformer_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType pixel_transformer_type_id;
+ pixel_transformer_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PixelTransformer", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&pixel_transformer_type_id__volatile, pixel_transformer_type_id);
+ }
+ return pixel_transformer_type_id__volatile;
+}
+
+
+gpointer pixel_transformer_ref (gpointer instance) {
+ PixelTransformer* self;
+ self = instance;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return instance;
+#line 7889 "ColorTransformation.c"
+}
+
+
+void pixel_transformer_unref (gpointer instance) {
+ PixelTransformer* self;
+ self = instance;
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMER_GET_CLASS (self)->finalize (self);
+#line 731 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 7902 "ColorTransformation.c"
+ }
+}
+
+
+RGBHistogram* rgb_histogram_construct (GType object_type, GdkPixbuf* pixbuf) {
+ RGBHistogram* self = NULL;
+ gint sample_bytes = 0;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint pixel_bytes = 0;
+ gint _tmp2_ = 0;
+ GdkPixbuf* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint row_length_bytes = 0;
+ gint _tmp5_ = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ guchar* pixel_data = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ guint8* _tmp10_ = NULL;
+ gint pixel_data_length1 = 0;
+ gint _pixel_data_size_ = 0;
+#line 930 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 930 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (RGBHistogram*) g_type_create_instance (object_type);
+#line 931 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixbuf;
+#line 931 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = gdk_pixbuf_get_bits_per_sample (_tmp0_);
+#line 931 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ sample_bytes = _tmp1_ / 8;
+#line 932 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = sample_bytes;
+#line 932 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = pixbuf;
+#line 932 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = gdk_pixbuf_get_n_channels (_tmp3_);
+#line 932 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_bytes = _tmp2_ * _tmp4_;
+#line 933 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = pixel_bytes;
+#line 933 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = pixbuf;
+#line 933 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = gdk_pixbuf_get_width (_tmp6_);
+#line 933 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = _tmp7_;
+#line 933 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_length_bytes = _tmp5_ * _tmp8_;
+#line 935 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = pixbuf;
+#line 935 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = gdk_pixbuf_get_pixels (_tmp9_);
+#line 935 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_data = _tmp10_;
+#line 935 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_data_length1 = -1;
+#line 935 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_data_size_ = pixel_data_length1;
+#line 7964 "ColorTransformation.c"
+ {
+ gint y = 0;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ y = 0;
+#line 7969 "ColorTransformation.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = TRUE;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 7976 "ColorTransformation.c"
+ gint _tmp13_ = 0;
+ GdkPixbuf* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint row_start_offset = 0;
+ gint _tmp17_ = 0;
+ GdkPixbuf* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint r_offset = 0;
+ gint _tmp21_ = 0;
+ gint g_offset = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint b_offset = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp11_) {
+#line 7997 "ColorTransformation.c"
+ gint _tmp12_ = 0;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = y;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ y = _tmp12_ + 1;
+#line 8003 "ColorTransformation.c"
+ }
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = FALSE;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = y;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = pixbuf;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = gdk_pixbuf_get_height (_tmp14_);
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = _tmp15_;
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp13_ < _tmp16_)) {
+#line 937 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 8019 "ColorTransformation.c"
+ }
+#line 938 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = y;
+#line 938 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = pixbuf;
+#line 938 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = gdk_pixbuf_get_rowstride (_tmp18_);
+#line 938 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = _tmp19_;
+#line 938 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_start_offset = _tmp17_ * _tmp20_;
+#line 940 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = row_start_offset;
+#line 940 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ r_offset = _tmp21_;
+#line 941 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = row_start_offset;
+#line 941 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = sample_bytes;
+#line 941 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_offset = _tmp22_ + _tmp23_;
+#line 942 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = row_start_offset;
+#line 942 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = sample_bytes;
+#line 942 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = sample_bytes;
+#line 942 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ b_offset = (_tmp24_ + _tmp25_) + _tmp26_;
+#line 944 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 8051 "ColorTransformation.c"
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ guchar* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gint _tmp32_ = 0;
+ guchar _tmp33_ = '\0';
+ gint _tmp34_ = 0;
+ gint* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ guchar* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gint _tmp37_ = 0;
+ guchar _tmp38_ = '\0';
+ gint _tmp39_ = 0;
+ gint* _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ guchar* _tmp41_ = NULL;
+ gint _tmp41__length1 = 0;
+ gint _tmp42_ = 0;
+ guchar _tmp43_ = '\0';
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+#line 944 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = b_offset;
+#line 944 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = row_start_offset;
+#line 944 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = row_length_bytes;
+#line 944 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp27_ < (_tmp28_ + _tmp29_))) {
+#line 944 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 8092 "ColorTransformation.c"
+ }
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = self->priv->red_counts;
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30__length1 = self->priv->red_counts_length1;
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = pixel_data;
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31__length1 = pixel_data_length1;
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = r_offset;
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = _tmp31_[_tmp32_];
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_[_tmp33_] += 1;
+#line 945 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = _tmp30_[_tmp33_];
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = self->priv->green_counts;
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35__length1 = self->priv->green_counts_length1;
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = pixel_data;
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36__length1 = pixel_data_length1;
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = g_offset;
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = _tmp36_[_tmp37_];
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_[_tmp38_] += 1;
+#line 946 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = _tmp35_[_tmp38_];
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = self->priv->blue_counts;
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40__length1 = self->priv->blue_counts_length1;
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = pixel_data;
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41__length1 = pixel_data_length1;
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = b_offset;
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = _tmp41_[_tmp42_];
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_[_tmp43_] += 1;
+#line 947 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = _tmp40_[_tmp43_];
+#line 949 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = r_offset;
+#line 949 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = pixel_bytes;
+#line 949 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ r_offset = _tmp45_ + _tmp46_;
+#line 950 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = g_offset;
+#line 950 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = pixel_bytes;
+#line 950 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_offset = _tmp47_ + _tmp48_;
+#line 951 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = b_offset;
+#line 951 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = pixel_bytes;
+#line 951 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ b_offset = _tmp49_ + _tmp50_;
+#line 8160 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+#line 930 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 8167 "ColorTransformation.c"
+}
+
+
+RGBHistogram* rgb_histogram_new (GdkPixbuf* pixbuf) {
+#line 930 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return rgb_histogram_construct (TYPE_RGB_HISTOGRAM, pixbuf);
+#line 8174 "ColorTransformation.c"
+}
+
+
+static gint rgb_histogram_correct_snap_to_quantization (RGBHistogram* self, gint* buckets, int buckets_length1, gint i) {
+ gint result = 0;
+ gint* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gboolean _tmp1_ = FALSE;
+ gint _tmp2_ = 0;
+ gint _tmp4_ = 0;
+ gint* _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+#line 956 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM (self), 0);
+#line 957 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = buckets;
+#line 957 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0__length1 = buckets_length1;
+#line 957 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (_tmp0__length1 == 256, "buckets.length == 256");
+#line 958 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = i;
+#line 958 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ >= 0) {
+#line 8201 "ColorTransformation.c"
+ gint _tmp3_ = 0;
+#line 958 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = i;
+#line 958 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp3_ <= 255;
+#line 8207 "ColorTransformation.c"
+ } else {
+#line 958 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = FALSE;
+#line 8211 "ColorTransformation.c"
+ }
+#line 958 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (_tmp1_, "(i >= 0) && (i <= 255)");
+#line 960 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = i;
+#line 960 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp4_ == 0) {
+#line 8219 "ColorTransformation.c"
+ gint* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 961 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = buckets;
+#line 961 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5__length1 = buckets_length1;
+#line 961 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = i;
+#line 961 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 961 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp7_ > 0) {
+#line 8234 "ColorTransformation.c"
+ gint* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 962 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = buckets;
+#line 962 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8__length1 = buckets_length1;
+#line 962 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = i;
+#line 962 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _tmp8_[_tmp9_ + 1];
+#line 962 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp10_ > 0) {
+#line 8249 "ColorTransformation.c"
+ gint* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = buckets;
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11__length1 = buckets_length1;
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = i;
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp11_[_tmp12_];
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = buckets;
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14__length1 = buckets_length1;
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = i;
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = _tmp14_[_tmp15_ + 1];
+#line 963 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp13_ > (2 * _tmp16_)) {
+#line 8276 "ColorTransformation.c"
+ gint* _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 964 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = buckets;
+#line 964 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17__length1 = buckets_length1;
+#line 964 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = i;
+#line 964 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = _tmp17_[_tmp18_ + 1];
+#line 964 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp19_;
+#line 964 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8293 "ColorTransformation.c"
+ }
+ }
+ }
+ } else {
+ gint _tmp20_ = 0;
+#line 965 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = i;
+#line 965 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp20_ == 255) {
+#line 8303 "ColorTransformation.c"
+ gint* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 966 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = buckets;
+#line 966 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21__length1 = buckets_length1;
+#line 966 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = i;
+#line 966 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = _tmp21_[_tmp22_];
+#line 966 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp23_ > 0) {
+#line 8318 "ColorTransformation.c"
+ gint* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 967 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = buckets;
+#line 967 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24__length1 = buckets_length1;
+#line 967 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = i;
+#line 967 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = _tmp24_[_tmp25_ - 1];
+#line 967 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp26_ > 0) {
+#line 8333 "ColorTransformation.c"
+ gint* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = buckets;
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27__length1 = buckets_length1;
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = i;
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = _tmp27_[_tmp28_];
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = buckets;
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30__length1 = buckets_length1;
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = i;
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = _tmp30_[_tmp31_ - 1];
+#line 968 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp29_ > (2 * _tmp32_)) {
+#line 8360 "ColorTransformation.c"
+ gint* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 969 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = buckets;
+#line 969 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33__length1 = buckets_length1;
+#line 969 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = i;
+#line 969 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = _tmp33_[_tmp34_ - 1];
+#line 969 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp35_;
+#line 969 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8377 "ColorTransformation.c"
+ }
+ }
+ }
+ } else {
+ gint* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 971 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = buckets;
+#line 971 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36__length1 = buckets_length1;
+#line 971 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = i;
+#line 971 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = _tmp36_[_tmp37_];
+#line 971 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp38_ > 0) {
+#line 8396 "ColorTransformation.c"
+ gint* _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ gint* _tmp45_ = NULL;
+ gint _tmp45__length1 = 0;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = buckets;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39__length1 = buckets_length1;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = i;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = _tmp39_[_tmp40_];
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = buckets;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42__length1 = buckets_length1;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = i;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = _tmp42_[_tmp43_ - 1];
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = buckets;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45__length1 = buckets_length1;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = i;
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = _tmp45_[_tmp46_ + 1];
+#line 972 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp41_ > ((_tmp44_ + _tmp47_) / 2)) {
+#line 8435 "ColorTransformation.c"
+ gint* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ gint* _tmp51_ = NULL;
+ gint _tmp51__length1 = 0;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = buckets;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48__length1 = buckets_length1;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = i;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = _tmp48_[_tmp49_ - 1];
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = buckets;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51__length1 = buckets_length1;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = i;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = _tmp51_[_tmp52_ + 1];
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = (_tmp50_ + _tmp53_) / 2;
+#line 973 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8464 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+#line 976 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = buckets;
+#line 976 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54__length1 = buckets_length1;
+#line 976 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = i;
+#line 976 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = _tmp54_[_tmp55_];
+#line 976 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp56_;
+#line 976 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8481 "ColorTransformation.c"
+}
+
+
+static gint rgb_histogram_correct_snap_from_quantization (RGBHistogram* self, gint* buckets, int buckets_length1, gint i) {
+ gint result = 0;
+ gint* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gboolean _tmp1_ = FALSE;
+ gint _tmp2_ = 0;
+ gint _tmp4_ = 0;
+ gint* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 979 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM (self), 0);
+#line 980 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = buckets;
+#line 980 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0__length1 = buckets_length1;
+#line 980 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (_tmp0__length1 == 256, "buckets.length == 256");
+#line 981 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = i;
+#line 981 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ >= 0) {
+#line 8508 "ColorTransformation.c"
+ gint _tmp3_ = 0;
+#line 981 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = i;
+#line 981 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp3_ <= 255;
+#line 8514 "ColorTransformation.c"
+ } else {
+#line 981 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = FALSE;
+#line 8518 "ColorTransformation.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (_tmp1_, "(i >= 0) && (i <= 255)");
+#line 983 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = i;
+#line 983 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp4_ == 0) {
+#line 8526 "ColorTransformation.c"
+ gint* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 984 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = buckets;
+#line 984 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5__length1 = buckets_length1;
+#line 984 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = i;
+#line 984 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 984 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp7_;
+#line 984 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8543 "ColorTransformation.c"
+ } else {
+ gint _tmp8_ = 0;
+#line 985 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = i;
+#line 985 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp8_ == 255) {
+#line 8550 "ColorTransformation.c"
+ gint* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 986 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = buckets;
+#line 986 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9__length1 = buckets_length1;
+#line 986 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = i;
+#line 986 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp9_[_tmp10_];
+#line 986 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp11_;
+#line 986 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8567 "ColorTransformation.c"
+ } else {
+ gint* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 988 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = buckets;
+#line 988 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12__length1 = buckets_length1;
+#line 988 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = i;
+#line 988 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = _tmp12_[_tmp13_];
+#line 988 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp14_ == 0) {
+#line 8583 "ColorTransformation.c"
+ gint* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 989 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = buckets;
+#line 989 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15__length1 = buckets_length1;
+#line 989 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = i;
+#line 989 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = _tmp15_[_tmp16_ - 1];
+#line 989 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp17_ > 0) {
+#line 8598 "ColorTransformation.c"
+ gint* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 990 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = buckets;
+#line 990 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18__length1 = buckets_length1;
+#line 990 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = i;
+#line 990 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = _tmp18_[_tmp19_ + 1];
+#line 990 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp20_ > 0) {
+#line 8613 "ColorTransformation.c"
+ gint* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = buckets;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21__length1 = buckets_length1;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = i;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = _tmp21_[_tmp22_ - 1];
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = buckets;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24__length1 = buckets_length1;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = i;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = _tmp24_[_tmp25_ + 1];
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = (_tmp23_ + _tmp26_) / 2;
+#line 991 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8642 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+ }
+#line 994 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = buckets;
+#line 994 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27__length1 = buckets_length1;
+#line 994 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = i;
+#line 994 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = _tmp27_[_tmp28_];
+#line 994 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp29_;
+#line 994 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 8660 "ColorTransformation.c"
+}
+
+
+static void rgb_histogram_smooth_extrema (RGBHistogram* self, gint** count_data, int* count_data_length1) {
+ gint* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gint* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gint* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gint _tmp3_ = 0;
+ gint* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ gint _tmp5_ = 0;
+ gint* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gint* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ gint* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gint _tmp13_ = 0;
+ gint* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gint _tmp15_ = 0;
+ gint* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gint* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint _tmp21_ = 0;
+ gint* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ gint* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ gint* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gint _tmp27_ = 0;
+ gint* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gint* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gint _tmp33_ = 0;
+ gint* _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ gint _tmp35_ = 0;
+ gint* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gint _tmp37_ = 0;
+ gint* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ gint _tmp39_ = 0;
+ gint* _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gint* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ gint _tmp45_ = 0;
+ gint* _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ gint _tmp47_ = 0;
+ gint* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ gint _tmp49_ = 0;
+ gint* _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ gint _tmp51_ = 0;
+ gint* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ gint* _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ gint* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ gint _tmp57_ = 0;
+ gint* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gint _tmp59_ = 0;
+ gint* _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gint* _tmp63_ = NULL;
+ gint _tmp63__length1 = 0;
+ gint* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gint _tmp65_ = 0;
+ gint* _tmp66_ = NULL;
+ gint _tmp66__length1 = 0;
+ gint _tmp67_ = 0;
+ gint* _tmp68_ = NULL;
+ gint _tmp68__length1 = 0;
+ gint _tmp69_ = 0;
+ gint* _tmp70_ = NULL;
+ gint _tmp70__length1 = 0;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint* _tmp73_ = NULL;
+ gint _tmp73__length1 = 0;
+ gint* _tmp74_ = NULL;
+ gint _tmp74__length1 = 0;
+ gint _tmp75_ = 0;
+ gint* _tmp76_ = NULL;
+ gint _tmp76__length1 = 0;
+ gint _tmp77_ = 0;
+ gint* _tmp78_ = NULL;
+ gint _tmp78__length1 = 0;
+ gint _tmp79_ = 0;
+ gint* _tmp80_ = NULL;
+ gint _tmp80__length1 = 0;
+ gint _tmp81_ = 0;
+ gint* _tmp82_ = NULL;
+ gint _tmp82__length1 = 0;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+ gint* _tmp85_ = NULL;
+ gint _tmp85__length1 = 0;
+ gint* _tmp86_ = NULL;
+ gint _tmp86__length1 = 0;
+ gint _tmp87_ = 0;
+ gint* _tmp88_ = NULL;
+ gint _tmp88__length1 = 0;
+ gint _tmp89_ = 0;
+ gint* _tmp90_ = NULL;
+ gint _tmp90__length1 = 0;
+ gint _tmp91_ = 0;
+ gint* _tmp92_ = NULL;
+ gint _tmp92__length1 = 0;
+ gint _tmp93_ = 0;
+ gint* _tmp94_ = NULL;
+ gint _tmp94__length1 = 0;
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ gint* _tmp97_ = NULL;
+ gint _tmp97__length1 = 0;
+ gint* _tmp98_ = NULL;
+ gint _tmp98__length1 = 0;
+ gint _tmp99_ = 0;
+ gint* _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gint _tmp101_ = 0;
+ gint* _tmp102_ = NULL;
+ gint _tmp102__length1 = 0;
+ gint _tmp103_ = 0;
+ gint* _tmp104_ = NULL;
+ gint _tmp104__length1 = 0;
+ gint _tmp105_ = 0;
+ gint* _tmp106_ = NULL;
+ gint _tmp106__length1 = 0;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+#line 997 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM (self));
+#line 998 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *count_data;
+#line 998 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0__length1 = *count_data_length1;
+#line 998 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (_tmp0__length1 == 256, "count_data.length == 256");
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = *count_data;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1__length1 = *count_data_length1;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = *count_data;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2__length1 = *count_data_length1;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_[0];
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = *count_data;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4__length1 = *count_data_length1;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _tmp4_[1];
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = *count_data;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6__length1 = *count_data_length1;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = _tmp6_[2];
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_[0] = (((5 * _tmp3_) + (3 * _tmp5_)) + (2 * _tmp7_)) / 10;
+#line 1004 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = _tmp1_[0];
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = *count_data;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9__length1 = *count_data_length1;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = *count_data;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10__length1 = *count_data_length1;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = _tmp10_[0];
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = *count_data;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12__length1 = *count_data_length1;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp12_[1];
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = *count_data;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14__length1 = *count_data_length1;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = _tmp14_[2];
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = *count_data;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16__length1 = *count_data_length1;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = _tmp16_[3];
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_[1] = ((((3 * _tmp11_) + (5 * _tmp13_)) + (3 * _tmp15_)) + (2 * _tmp17_)) / 13;
+#line 1006 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = _tmp9_[1];
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = *count_data;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19__length1 = *count_data_length1;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = *count_data;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20__length1 = *count_data_length1;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = _tmp20_[0];
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = *count_data;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22__length1 = *count_data_length1;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = _tmp22_[1];
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = *count_data;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24__length1 = *count_data_length1;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = _tmp24_[2];
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = *count_data;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26__length1 = *count_data_length1;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = _tmp26_[3];
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = *count_data;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28__length1 = *count_data_length1;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = _tmp28_[4];
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_[2] = (((((2 * _tmp21_) + (3 * _tmp23_)) + (5 * _tmp25_)) + (3 * _tmp27_)) + (2 * _tmp29_)) / 15;
+#line 1008 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = _tmp19_[2];
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = *count_data;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31__length1 = *count_data_length1;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = *count_data;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32__length1 = *count_data_length1;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = _tmp32_[1];
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = *count_data;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34__length1 = *count_data_length1;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = _tmp34_[2];
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = *count_data;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36__length1 = *count_data_length1;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = _tmp36_[3];
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = *count_data;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38__length1 = *count_data_length1;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = _tmp38_[4];
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = *count_data;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40__length1 = *count_data_length1;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = _tmp40_[5];
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_[3] = (((((2 * _tmp33_) + (3 * _tmp35_)) + (5 * _tmp37_)) + (3 * _tmp39_)) + (2 * _tmp41_)) / 15;
+#line 1010 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = _tmp31_[3];
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = *count_data;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43__length1 = *count_data_length1;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = *count_data;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44__length1 = *count_data_length1;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = _tmp44_[2];
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = *count_data;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46__length1 = *count_data_length1;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = _tmp46_[3];
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = *count_data;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48__length1 = *count_data_length1;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = _tmp48_[4];
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = *count_data;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50__length1 = *count_data_length1;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = _tmp50_[5];
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = *count_data;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52__length1 = *count_data_length1;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = _tmp52_[6];
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_[4] = (((((2 * _tmp45_) + (3 * _tmp47_)) + (5 * _tmp49_)) + (3 * _tmp51_)) + (2 * _tmp53_)) / 15;
+#line 1012 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = _tmp43_[4];
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = *count_data;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55__length1 = *count_data_length1;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = *count_data;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56__length1 = *count_data_length1;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp57_ = _tmp56_[255];
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = *count_data;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58__length1 = *count_data_length1;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp59_ = _tmp58_[254];
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60_ = *count_data;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60__length1 = *count_data_length1;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61_ = _tmp60_[253];
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_[255] = (((5 * _tmp57_) + (3 * _tmp59_)) + (2 * _tmp61_)) / 10;
+#line 1015 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_ = _tmp55_[255];
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63_ = *count_data;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63__length1 = *count_data_length1;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64_ = *count_data;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64__length1 = *count_data_length1;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp65_ = _tmp64_[255];
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66_ = *count_data;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66__length1 = *count_data_length1;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp67_ = _tmp66_[254];
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68_ = *count_data;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68__length1 = *count_data_length1;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp69_ = _tmp68_[253];
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70_ = *count_data;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70__length1 = *count_data_length1;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp71_ = _tmp70_[252];
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63_[254] = ((((3 * _tmp65_) + (5 * _tmp67_)) + (3 * _tmp69_)) + (2 * _tmp71_)) / 13;
+#line 1017 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp72_ = _tmp63_[254];
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73_ = *count_data;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73__length1 = *count_data_length1;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp74_ = *count_data;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp74__length1 = *count_data_length1;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp75_ = _tmp74_[255];
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp76_ = *count_data;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp76__length1 = *count_data_length1;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp77_ = _tmp76_[254];
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp78_ = *count_data;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp78__length1 = *count_data_length1;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp79_ = _tmp78_[253];
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp80_ = *count_data;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp80__length1 = *count_data_length1;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp81_ = _tmp80_[252];
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp82_ = *count_data;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp82__length1 = *count_data_length1;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp83_ = _tmp82_[251];
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73_[253] = (((((2 * _tmp75_) + (3 * _tmp77_)) + (5 * _tmp79_)) + (3 * _tmp81_)) + (2 * _tmp83_)) / 15;
+#line 1019 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp84_ = _tmp73_[253];
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp85_ = *count_data;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp85__length1 = *count_data_length1;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp86_ = *count_data;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp86__length1 = *count_data_length1;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp87_ = _tmp86_[254];
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp88_ = *count_data;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp88__length1 = *count_data_length1;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp89_ = _tmp88_[253];
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp90_ = *count_data;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp90__length1 = *count_data_length1;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp91_ = _tmp90_[252];
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92_ = *count_data;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92__length1 = *count_data_length1;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp93_ = _tmp92_[251];
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp94_ = *count_data;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp94__length1 = *count_data_length1;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp95_ = _tmp94_[250];
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp85_[252] = (((((2 * _tmp87_) + (3 * _tmp89_)) + (5 * _tmp91_)) + (3 * _tmp93_)) + (2 * _tmp95_)) / 15;
+#line 1021 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp96_ = _tmp85_[252];
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97_ = *count_data;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97__length1 = *count_data_length1;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp98_ = *count_data;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp98__length1 = *count_data_length1;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp99_ = _tmp98_[253];
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp100_ = *count_data;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp100__length1 = *count_data_length1;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp101_ = _tmp100_[252];
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102_ = *count_data;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102__length1 = *count_data_length1;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp103_ = _tmp102_[251];
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp104_ = *count_data;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp104__length1 = *count_data_length1;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp105_ = _tmp104_[250];
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp106_ = *count_data;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp106__length1 = *count_data_length1;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp107_ = _tmp106_[249];
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97_[251] = (((((2 * _tmp99_) + (3 * _tmp101_)) + (5 * _tmp103_)) + (3 * _tmp105_)) + (2 * _tmp107_)) / 15;
+#line 1023 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp108_ = _tmp97_[251];
+#line 9181 "ColorTransformation.c"
+}
+
+
+static void rgb_histogram_prepare_qualitative_counts (RGBHistogram* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gint* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gint* _tmp5_ = NULL;
+ gint* _tmp6_ = NULL;
+ gint* _tmp7_ = NULL;
+ gint* temp_red_counts = NULL;
+ gint* _tmp8_ = NULL;
+ gint temp_red_counts_length1 = 0;
+ gint _temp_red_counts_size_ = 0;
+ gint* temp_green_counts = NULL;
+ gint* _tmp9_ = NULL;
+ gint temp_green_counts_length1 = 0;
+ gint _temp_green_counts_size_ = 0;
+ gint* temp_blue_counts = NULL;
+ gint* _tmp10_ = NULL;
+ gint temp_blue_counts_length1 = 0;
+ gint _temp_blue_counts_size_ = 0;
+ gint mean_qual_count = 0;
+ gint _tmp87_ = 0;
+ gint constrained_max_qual_count = 0;
+ gint _tmp88_ = 0;
+#line 1027 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM (self));
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->qualitative_red_counts;
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2__length1 = self->priv->qualitative_red_counts_length1;
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp2_ != NULL) {
+#line 9217 "ColorTransformation.c"
+ gint* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->qualitative_green_counts;
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3__length1 = self->priv->qualitative_green_counts_length1;
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 9226 "ColorTransformation.c"
+ } else {
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = FALSE;
+#line 9230 "ColorTransformation.c"
+ }
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp1_) {
+#line 9234 "ColorTransformation.c"
+ gint* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 1029 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = self->priv->qualitative_blue_counts;
+#line 1029 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1029 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = _tmp4_ != NULL;
+#line 9243 "ColorTransformation.c"
+ } else {
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = FALSE;
+#line 9247 "ColorTransformation.c"
+ }
+#line 1028 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp0_) {
+#line 1030 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 9253 "ColorTransformation.c"
+ }
+#line 1032 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = g_new0 (gint, 256);
+#line 1032 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_red_counts = (g_free (self->priv->qualitative_red_counts), NULL);
+#line 1032 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_red_counts = _tmp5_;
+#line 1032 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_red_counts_length1 = 256;
+#line 1032 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_qualitative_red_counts_size_ = self->priv->qualitative_red_counts_length1;
+#line 1033 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = g_new0 (gint, 256);
+#line 1033 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_green_counts = (g_free (self->priv->qualitative_green_counts), NULL);
+#line 1033 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_green_counts = _tmp6_;
+#line 1033 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_green_counts_length1 = 256;
+#line 1033 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_qualitative_green_counts_size_ = self->priv->qualitative_green_counts_length1;
+#line 1034 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = g_new0 (gint, 256);
+#line 1034 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_blue_counts = (g_free (self->priv->qualitative_blue_counts), NULL);
+#line 1034 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_blue_counts = _tmp7_;
+#line 1034 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_blue_counts_length1 = 256;
+#line 1034 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_qualitative_blue_counts_size_ = self->priv->qualitative_blue_counts_length1;
+#line 1036 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = g_new0 (gint, 256);
+#line 1036 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_red_counts = _tmp8_;
+#line 1036 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_red_counts_length1 = 256;
+#line 1036 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _temp_red_counts_size_ = temp_red_counts_length1;
+#line 1037 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = g_new0 (gint, 256);
+#line 1037 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_green_counts = _tmp9_;
+#line 1037 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_green_counts_length1 = 256;
+#line 1037 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _temp_green_counts_size_ = temp_green_counts_length1;
+#line 1038 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = g_new0 (gint, 256);
+#line 1038 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_blue_counts = _tmp10_;
+#line 1038 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_blue_counts_length1 = 256;
+#line 1038 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _temp_blue_counts_size_ = temp_blue_counts_length1;
+#line 9309 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 9314 "ColorTransformation.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = TRUE;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 9321 "ColorTransformation.c"
+ gint _tmp13_ = 0;
+ gint* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gint _tmp15_ = 0;
+ gint* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint _tmp21_ = 0;
+ gint* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gint _tmp27_ = 0;
+ gint* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp11_) {
+#line 9349 "ColorTransformation.c"
+ gint _tmp12_ = 0;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = i;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp12_ + 1;
+#line 9355 "ColorTransformation.c"
+ }
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = FALSE;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = i;
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp13_ < 256)) {
+#line 1044 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 9365 "ColorTransformation.c"
+ }
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = self->priv->qualitative_red_counts;
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14__length1 = self->priv->qualitative_red_counts_length1;
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = i;
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = self->priv->red_counts;
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16__length1 = self->priv->red_counts_length1;
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = i;
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = rgb_histogram_correct_snap_from_quantization (self, _tmp16_, _tmp16__length1, _tmp17_);
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_[_tmp15_] = _tmp18_;
+#line 1045 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = _tmp14_[_tmp15_];
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = self->priv->qualitative_green_counts;
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20__length1 = self->priv->qualitative_green_counts_length1;
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = i;
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = self->priv->green_counts;
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22__length1 = self->priv->green_counts_length1;
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = i;
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = rgb_histogram_correct_snap_from_quantization (self, _tmp22_, _tmp22__length1, _tmp23_);
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_[_tmp21_] = _tmp24_;
+#line 1047 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = _tmp20_[_tmp21_];
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = self->priv->qualitative_blue_counts;
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = i;
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = self->priv->blue_counts;
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28__length1 = self->priv->blue_counts_length1;
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = i;
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = rgb_histogram_correct_snap_from_quantization (self, _tmp28_, _tmp28__length1, _tmp29_);
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_[_tmp27_] = _tmp30_;
+#line 1049 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = _tmp26_[_tmp27_];
+#line 9421 "ColorTransformation.c"
+ }
+ }
+ }
+ {
+ gint i = 0;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 9429 "ColorTransformation.c"
+ {
+ gboolean _tmp32_ = FALSE;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = TRUE;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 9436 "ColorTransformation.c"
+ gint _tmp34_ = 0;
+ gint* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ gint _tmp36_ = 0;
+ gint* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint* _tmp41_ = NULL;
+ gint _tmp41__length1 = 0;
+ gint _tmp42_ = 0;
+ gint* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gint* _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ gint _tmp48_ = 0;
+ gint* _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ gint _tmp52_ = 0;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp32_) {
+#line 9464 "ColorTransformation.c"
+ gint _tmp33_ = 0;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = i;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp33_ + 1;
+#line 9470 "ColorTransformation.c"
+ }
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = FALSE;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = i;
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp34_ < 256)) {
+#line 1053 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 9480 "ColorTransformation.c"
+ }
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = temp_red_counts;
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35__length1 = temp_red_counts_length1;
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = i;
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = self->priv->qualitative_red_counts;
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37__length1 = self->priv->qualitative_red_counts_length1;
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = i;
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = _tmp37_[_tmp38_];
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_[_tmp36_] = _tmp39_;
+#line 1054 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = _tmp35_[_tmp36_];
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = temp_green_counts;
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41__length1 = temp_green_counts_length1;
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = i;
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = self->priv->qualitative_green_counts;
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43__length1 = self->priv->qualitative_green_counts_length1;
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = i;
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = _tmp43_[_tmp44_];
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_[_tmp42_] = _tmp45_;
+#line 1055 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = _tmp41_[_tmp42_];
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = temp_blue_counts;
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47__length1 = temp_blue_counts_length1;
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = i;
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = self->priv->qualitative_blue_counts;
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = i;
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = _tmp49_[_tmp50_];
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_[_tmp48_] = _tmp51_;
+#line 1056 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = _tmp47_[_tmp48_];
+#line 9536 "ColorTransformation.c"
+ }
+ }
+ }
+ {
+ gint i = 0;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 9544 "ColorTransformation.c"
+ {
+ gboolean _tmp53_ = FALSE;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = TRUE;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 9551 "ColorTransformation.c"
+ gint _tmp55_ = 0;
+ gint* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ gint _tmp57_ = 0;
+ gint* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+ gint* _tmp62_ = NULL;
+ gint _tmp62__length1 = 0;
+ gint _tmp63_ = 0;
+ gint* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint* _tmp68_ = NULL;
+ gint _tmp68__length1 = 0;
+ gint _tmp69_ = 0;
+ gint* _tmp70_ = NULL;
+ gint _tmp70__length1 = 0;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp53_) {
+#line 9579 "ColorTransformation.c"
+ gint _tmp54_ = 0;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = i;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp54_ + 1;
+#line 9585 "ColorTransformation.c"
+ }
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = FALSE;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = i;
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp55_ < 256)) {
+#line 1061 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 9595 "ColorTransformation.c"
+ }
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = self->priv->qualitative_red_counts;
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56__length1 = self->priv->qualitative_red_counts_length1;
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp57_ = i;
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = temp_red_counts;
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58__length1 = temp_red_counts_length1;
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp59_ = i;
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60_ = rgb_histogram_correct_snap_to_quantization (self, _tmp58_, _tmp58__length1, _tmp59_);
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_[_tmp57_] = _tmp60_;
+#line 1062 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61_ = _tmp56_[_tmp57_];
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_ = self->priv->qualitative_green_counts;
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62__length1 = self->priv->qualitative_green_counts_length1;
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63_ = i;
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64_ = temp_green_counts;
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64__length1 = temp_green_counts_length1;
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp65_ = i;
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66_ = rgb_histogram_correct_snap_to_quantization (self, _tmp64_, _tmp64__length1, _tmp65_);
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_[_tmp63_] = _tmp66_;
+#line 1064 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp67_ = _tmp62_[_tmp63_];
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68_ = self->priv->qualitative_blue_counts;
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp69_ = i;
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70_ = temp_blue_counts;
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70__length1 = temp_blue_counts_length1;
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp71_ = i;
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp72_ = rgb_histogram_correct_snap_to_quantization (self, _tmp70_, _tmp70__length1, _tmp71_);
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68_[_tmp69_] = _tmp72_;
+#line 1066 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73_ = _tmp68_[_tmp69_];
+#line 9651 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1072 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ mean_qual_count = 0;
+#line 9657 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 9662 "ColorTransformation.c"
+ {
+ gboolean _tmp74_ = FALSE;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp74_ = TRUE;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 9669 "ColorTransformation.c"
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+ gint* _tmp78_ = NULL;
+ gint _tmp78__length1 = 0;
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+ gint* _tmp81_ = NULL;
+ gint _tmp81__length1 = 0;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ gint* _tmp84_ = NULL;
+ gint _tmp84__length1 = 0;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp74_) {
+#line 9686 "ColorTransformation.c"
+ gint _tmp75_ = 0;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp75_ = i;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp75_ + 1;
+#line 9692 "ColorTransformation.c"
+ }
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp74_ = FALSE;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp76_ = i;
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp76_ < 256)) {
+#line 1073 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 9702 "ColorTransformation.c"
+ }
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp77_ = mean_qual_count;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp78_ = self->priv->qualitative_red_counts;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp78__length1 = self->priv->qualitative_red_counts_length1;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp79_ = i;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp80_ = _tmp78_[_tmp79_];
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp81_ = self->priv->qualitative_green_counts;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp81__length1 = self->priv->qualitative_green_counts_length1;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp82_ = i;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp83_ = _tmp81_[_tmp82_];
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp84_ = self->priv->qualitative_blue_counts;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp84__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp85_ = i;
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp86_ = _tmp84_[_tmp85_];
+#line 1074 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ mean_qual_count = _tmp77_ + ((_tmp80_ + _tmp83_) + _tmp86_);
+#line 9732 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1077 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp87_ = mean_qual_count;
+#line 1077 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ mean_qual_count = _tmp87_ / (256 * 3);
+#line 1078 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp88_ = mean_qual_count;
+#line 1078 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ constrained_max_qual_count = 8 * _tmp88_;
+#line 9744 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 9749 "ColorTransformation.c"
+ {
+ gboolean _tmp89_ = FALSE;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp89_ = TRUE;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 9756 "ColorTransformation.c"
+ gint _tmp91_ = 0;
+ gint* _tmp92_ = NULL;
+ gint _tmp92__length1 = 0;
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ gint* _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ gint* _tmp108_ = NULL;
+ gint _tmp108__length1 = 0;
+ gint _tmp109_ = 0;
+ gint _tmp110_ = 0;
+ gint _tmp111_ = 0;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp89_) {
+#line 9775 "ColorTransformation.c"
+ gint _tmp90_ = 0;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp90_ = i;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp90_ + 1;
+#line 9781 "ColorTransformation.c"
+ }
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp89_ = FALSE;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp91_ = i;
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp91_ < 256)) {
+#line 1079 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 9791 "ColorTransformation.c"
+ }
+#line 1080 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92_ = self->priv->qualitative_red_counts;
+#line 1080 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92__length1 = self->priv->qualitative_red_counts_length1;
+#line 1080 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp93_ = i;
+#line 1080 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp94_ = _tmp92_[_tmp93_];
+#line 1080 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp95_ = constrained_max_qual_count;
+#line 1080 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp94_ > _tmp95_) {
+#line 9805 "ColorTransformation.c"
+ gint* _tmp96_ = NULL;
+ gint _tmp96__length1 = 0;
+ gint _tmp97_ = 0;
+ gint _tmp98_ = 0;
+ gint _tmp99_ = 0;
+#line 1081 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp96_ = self->priv->qualitative_red_counts;
+#line 1081 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp96__length1 = self->priv->qualitative_red_counts_length1;
+#line 1081 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97_ = i;
+#line 1081 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp98_ = constrained_max_qual_count;
+#line 1081 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp96_[_tmp97_] = _tmp98_;
+#line 1081 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp99_ = _tmp96_[_tmp97_];
+#line 9823 "ColorTransformation.c"
+ }
+#line 1083 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp100_ = self->priv->qualitative_green_counts;
+#line 1083 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp100__length1 = self->priv->qualitative_green_counts_length1;
+#line 1083 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp101_ = i;
+#line 1083 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102_ = _tmp100_[_tmp101_];
+#line 1083 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp103_ = constrained_max_qual_count;
+#line 1083 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp102_ > _tmp103_) {
+#line 9837 "ColorTransformation.c"
+ gint* _tmp104_ = NULL;
+ gint _tmp104__length1 = 0;
+ gint _tmp105_ = 0;
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+#line 1084 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp104_ = self->priv->qualitative_green_counts;
+#line 1084 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp104__length1 = self->priv->qualitative_green_counts_length1;
+#line 1084 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp105_ = i;
+#line 1084 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp106_ = constrained_max_qual_count;
+#line 1084 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp104_[_tmp105_] = _tmp106_;
+#line 1084 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp107_ = _tmp104_[_tmp105_];
+#line 9855 "ColorTransformation.c"
+ }
+#line 1086 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp108_ = self->priv->qualitative_blue_counts;
+#line 1086 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp108__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1086 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp109_ = i;
+#line 1086 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp110_ = _tmp108_[_tmp109_];
+#line 1086 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp111_ = constrained_max_qual_count;
+#line 1086 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp110_ > _tmp111_) {
+#line 9869 "ColorTransformation.c"
+ gint* _tmp112_ = NULL;
+ gint _tmp112__length1 = 0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ gint _tmp115_ = 0;
+#line 1087 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp112_ = self->priv->qualitative_blue_counts;
+#line 1087 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp112__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1087 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp113_ = i;
+#line 1087 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp114_ = constrained_max_qual_count;
+#line 1087 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp112_[_tmp113_] = _tmp114_;
+#line 1087 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp115_ = _tmp112_[_tmp113_];
+#line 9887 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+#line 1090 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_smooth_extrema (self, &self->priv->qualitative_red_counts, &self->priv->qualitative_red_counts_length1);
+#line 1091 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_smooth_extrema (self, &self->priv->qualitative_green_counts, &self->priv->qualitative_green_counts_length1);
+#line 1092 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_smooth_extrema (self, &self->priv->qualitative_blue_counts, &self->priv->qualitative_blue_counts_length1);
+#line 1027 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_blue_counts = (g_free (temp_blue_counts), NULL);
+#line 1027 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_green_counts = (g_free (temp_green_counts), NULL);
+#line 1027 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ temp_red_counts = (g_free (temp_red_counts), NULL);
+#line 9904 "ColorTransformation.c"
+}
+
+
+GdkPixbuf* rgb_histogram_get_graphic (RGBHistogram* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp121_ = NULL;
+ GdkPixbuf* _tmp122_ = NULL;
+#line 1095 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM (self), NULL);
+#line 1096 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->graphic;
+#line 1096 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp0_ == NULL) {
+#line 9919 "ColorTransformation.c"
+ gint max_count = 0;
+ GdkPixbuf* _tmp25_ = NULL;
+ gint rowstride = 0;
+ GdkPixbuf* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gint sample_bytes = 0;
+ GdkPixbuf* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint pixel_bytes = 0;
+ gint _tmp31_ = 0;
+ GdkPixbuf* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gdouble scale_bar = 0.0;
+ gint _tmp34_ = 0;
+ guchar* pixel_data = NULL;
+ GdkPixbuf* _tmp35_ = NULL;
+ guint8* _tmp36_ = NULL;
+ gint pixel_data_length1 = 0;
+ gint _pixel_data_size_ = 0;
+ gint _tmp37_ = 0;
+#line 1097 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_prepare_qualitative_counts (self);
+#line 1098 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ max_count = 0;
+#line 9945 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 9950 "ColorTransformation.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = TRUE;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 9957 "ColorTransformation.c"
+ gint _tmp3_ = 0;
+ gint* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp1_) {
+#line 9976 "ColorTransformation.c"
+ gint _tmp2_ = 0;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = i;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp2_ + 1;
+#line 9982 "ColorTransformation.c"
+ }
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = FALSE;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = i;
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp3_ < 256)) {
+#line 1099 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 9992 "ColorTransformation.c"
+ }
+#line 1100 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = self->priv->qualitative_red_counts;
+#line 1100 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4__length1 = self->priv->qualitative_red_counts_length1;
+#line 1100 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = i;
+#line 1100 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp4_[_tmp5_];
+#line 1100 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = max_count;
+#line 1100 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp6_ > _tmp7_) {
+#line 10006 "ColorTransformation.c"
+ gint* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 1101 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = self->priv->qualitative_red_counts;
+#line 1101 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8__length1 = self->priv->qualitative_red_counts_length1;
+#line 1101 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = i;
+#line 1101 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 1101 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ max_count = _tmp10_;
+#line 10021 "ColorTransformation.c"
+ }
+#line 1102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = self->priv->qualitative_green_counts;
+#line 1102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11__length1 = self->priv->qualitative_green_counts_length1;
+#line 1102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = i;
+#line 1102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = _tmp11_[_tmp12_];
+#line 1102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = max_count;
+#line 1102 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp13_ > _tmp14_) {
+#line 10035 "ColorTransformation.c"
+ gint* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 1103 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = self->priv->qualitative_green_counts;
+#line 1103 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15__length1 = self->priv->qualitative_green_counts_length1;
+#line 1103 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = i;
+#line 1103 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = _tmp15_[_tmp16_];
+#line 1103 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ max_count = _tmp17_;
+#line 10050 "ColorTransformation.c"
+ }
+#line 1104 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = self->priv->qualitative_blue_counts;
+#line 1104 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1104 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = i;
+#line 1104 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = _tmp18_[_tmp19_];
+#line 1104 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = max_count;
+#line 1104 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp20_ > _tmp21_) {
+#line 10064 "ColorTransformation.c"
+ gint* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 1105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = self->priv->qualitative_blue_counts;
+#line 1105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = i;
+#line 1105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = _tmp22_[_tmp23_];
+#line 1105 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ max_count = _tmp24_;
+#line 10079 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+#line 1108 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, RGB_HISTOGRAM_GRAPHIC_WIDTH, RGB_HISTOGRAM_GRAPHIC_HEIGHT);
+#line 1108 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (self->priv->graphic);
+#line 1108 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->graphic = _tmp25_;
+#line 1111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = self->priv->graphic;
+#line 1111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = gdk_pixbuf_get_rowstride (_tmp26_);
+#line 1111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = _tmp27_;
+#line 1111 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rowstride = _tmp28_;
+#line 1112 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = self->priv->graphic;
+#line 1112 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = gdk_pixbuf_get_bits_per_sample (_tmp29_);
+#line 1112 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ sample_bytes = _tmp30_ / 8;
+#line 1113 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = sample_bytes;
+#line 1113 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = self->priv->graphic;
+#line 1113 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = gdk_pixbuf_get_n_channels (_tmp32_);
+#line 1113 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_bytes = _tmp31_ * _tmp33_;
+#line 1115 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = max_count;
+#line 1115 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ scale_bar = (0.98 * ((gdouble) RGB_HISTOGRAM_GRAPHIC_HEIGHT)) / ((gdouble) _tmp34_);
+#line 1118 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = self->priv->graphic;
+#line 1118 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = gdk_pixbuf_get_pixels (_tmp35_);
+#line 1118 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_data = _tmp36_;
+#line 1118 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_data_length1 = -1;
+#line 1118 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_data_size_ = pixel_data_length1;
+#line 1122 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = max_count;
+#line 1122 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp37_ == 0) {
+#line 10130 "ColorTransformation.c"
+ GdkPixbuf* _tmp51_ = NULL;
+ GdkPixbuf* _tmp52_ = NULL;
+ {
+ gint i = 0;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 10137 "ColorTransformation.c"
+ {
+ gboolean _tmp38_ = FALSE;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = TRUE;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 10144 "ColorTransformation.c"
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ GdkPixbuf* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ GdkPixbuf* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ guchar* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ gint _tmp49_ = 0;
+ guchar _tmp50_ = '\0';
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp38_) {
+#line 10159 "ColorTransformation.c"
+ gint _tmp39_ = 0;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = i;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp39_ + 1;
+#line 10165 "ColorTransformation.c"
+ }
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = FALSE;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = i;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = pixel_bytes;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = self->priv->graphic;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = gdk_pixbuf_get_width (_tmp42_);
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = _tmp43_;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = self->priv->graphic;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = gdk_pixbuf_get_height (_tmp45_);
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = _tmp46_;
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp40_ < ((_tmp41_ * _tmp44_) * _tmp47_))) {
+#line 1123 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 10189 "ColorTransformation.c"
+ }
+#line 1124 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = pixel_data;
+#line 1124 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48__length1 = pixel_data_length1;
+#line 1124 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = i;
+#line 1124 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_[_tmp49_] = RGB_HISTOGRAM_UNMARKED_BACKGROUND;
+#line 1124 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = _tmp48_[_tmp49_];
+#line 10201 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1126 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = self->priv->graphic;
+#line 1126 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = _g_object_ref0 (_tmp51_);
+#line 1126 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp52_;
+#line 1126 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 10213 "ColorTransformation.c"
+ }
+ {
+ gint x = 0;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ x = 0;
+#line 10219 "ColorTransformation.c"
+ {
+ gboolean _tmp53_ = FALSE;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = TRUE;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 10226 "ColorTransformation.c"
+ gint _tmp55_ = 0;
+ gint red_bar_height = 0;
+ gint* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ gint _tmp57_ = 0;
+ gint _tmp58_ = 0;
+ gdouble _tmp59_ = 0.0;
+ gint green_bar_height = 0;
+ gint* _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gdouble _tmp63_ = 0.0;
+ gint blue_bar_height = 0;
+ gint* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gdouble _tmp67_ = 0.0;
+ gint max_bar_height = 0;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint y = 0;
+ gint pixel_index = 0;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp53_) {
+#line 10260 "ColorTransformation.c"
+ gint _tmp54_ = 0;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = x;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ x = _tmp54_ + 1;
+#line 10266 "ColorTransformation.c"
+ }
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = FALSE;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = x;
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp55_ < 256)) {
+#line 1129 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 10276 "ColorTransformation.c"
+ }
+#line 1130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = self->priv->qualitative_red_counts;
+#line 1130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56__length1 = self->priv->qualitative_red_counts_length1;
+#line 1130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp57_ = x;
+#line 1130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = _tmp56_[_tmp57_];
+#line 1130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp59_ = scale_bar;
+#line 1130 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ red_bar_height = (gint) (((gdouble) _tmp58_) * _tmp59_);
+#line 1132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60_ = self->priv->qualitative_green_counts;
+#line 1132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60__length1 = self->priv->qualitative_green_counts_length1;
+#line 1132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61_ = x;
+#line 1132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_ = _tmp60_[_tmp61_];
+#line 1132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63_ = scale_bar;
+#line 1132 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ green_bar_height = (gint) (((gdouble) _tmp62_) * _tmp63_);
+#line 1134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64_ = self->priv->qualitative_blue_counts;
+#line 1134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64__length1 = self->priv->qualitative_blue_counts_length1;
+#line 1134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp65_ = x;
+#line 1134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp66_ = _tmp64_[_tmp65_];
+#line 1134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp67_ = scale_bar;
+#line 1134 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ blue_bar_height = (gint) (((gdouble) _tmp66_) * _tmp67_);
+#line 1137 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp68_ = red_bar_height;
+#line 1137 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp69_ = green_bar_height;
+#line 1137 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp70_ = MAX (_tmp68_, _tmp69_);
+#line 1137 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp71_ = blue_bar_height;
+#line 1137 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp72_ = MAX (_tmp70_, _tmp71_);
+#line 1137 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ max_bar_height = _tmp72_;
+#line 1140 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ y = RGB_HISTOGRAM_GRAPHIC_HEIGHT - 1;
+#line 1141 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp73_ = x;
+#line 1141 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp74_ = pixel_bytes;
+#line 1141 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp75_ = y;
+#line 1141 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp76_ = rowstride;
+#line 1141 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_index = (_tmp73_ * _tmp74_) + (_tmp75_ * _tmp76_);
+#line 10338 "ColorTransformation.c"
+ {
+ gboolean _tmp77_ = FALSE;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp77_ = TRUE;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 10345 "ColorTransformation.c"
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+ guchar* _tmp81_ = NULL;
+ gint _tmp81__length1 = 0;
+ gint _tmp82_ = 0;
+ guchar _tmp83_ = '\0';
+ guchar* _tmp84_ = NULL;
+ gint _tmp84__length1 = 0;
+ gint _tmp85_ = 0;
+ guchar _tmp86_ = '\0';
+ guchar* _tmp87_ = NULL;
+ gint _tmp87__length1 = 0;
+ gint _tmp88_ = 0;
+ guchar _tmp89_ = '\0';
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ gint _tmp105_ = 0;
+ gint _tmp106_ = 0;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp77_) {
+#line 10370 "ColorTransformation.c"
+ gint _tmp78_ = 0;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp78_ = y;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ y = _tmp78_ - 1;
+#line 10376 "ColorTransformation.c"
+ }
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp77_ = FALSE;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp79_ = y;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp80_ = max_bar_height;
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp79_ >= (RGB_HISTOGRAM_GRAPHIC_HEIGHT - _tmp80_))) {
+#line 1142 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 10388 "ColorTransformation.c"
+ }
+#line 1143 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp81_ = pixel_data;
+#line 1143 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp81__length1 = pixel_data_length1;
+#line 1143 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp82_ = pixel_index;
+#line 1143 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp81_[_tmp82_] = RGB_HISTOGRAM_MARKED_BACKGROUND;
+#line 1143 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp83_ = _tmp81_[_tmp82_];
+#line 1144 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp84_ = pixel_data;
+#line 1144 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp84__length1 = pixel_data_length1;
+#line 1144 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp85_ = pixel_index;
+#line 1144 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp84_[_tmp85_ + 1] = RGB_HISTOGRAM_MARKED_BACKGROUND;
+#line 1144 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp86_ = _tmp84_[_tmp85_ + 1];
+#line 1145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp87_ = pixel_data;
+#line 1145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp87__length1 = pixel_data_length1;
+#line 1145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp88_ = pixel_index;
+#line 1145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp87_[_tmp88_ + 2] = RGB_HISTOGRAM_MARKED_BACKGROUND;
+#line 1145 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp89_ = _tmp87_[_tmp88_ + 2];
+#line 1147 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp90_ = y;
+#line 1147 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp91_ = red_bar_height;
+#line 1147 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp90_ >= ((RGB_HISTOGRAM_GRAPHIC_HEIGHT - _tmp91_) - 1)) {
+#line 10426 "ColorTransformation.c"
+ guchar* _tmp92_ = NULL;
+ gint _tmp92__length1 = 0;
+ gint _tmp93_ = 0;
+ guchar _tmp94_ = '\0';
+#line 1148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92_ = pixel_data;
+#line 1148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92__length1 = pixel_data_length1;
+#line 1148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp93_ = pixel_index;
+#line 1148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp92_[_tmp93_] = RGB_HISTOGRAM_MARKED_FOREGROUND;
+#line 1148 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp94_ = _tmp92_[_tmp93_];
+#line 10441 "ColorTransformation.c"
+ }
+#line 1149 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp95_ = y;
+#line 1149 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp96_ = green_bar_height;
+#line 1149 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp95_ >= ((RGB_HISTOGRAM_GRAPHIC_HEIGHT - _tmp96_) - 1)) {
+#line 10449 "ColorTransformation.c"
+ guchar* _tmp97_ = NULL;
+ gint _tmp97__length1 = 0;
+ gint _tmp98_ = 0;
+ guchar _tmp99_ = '\0';
+#line 1150 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97_ = pixel_data;
+#line 1150 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97__length1 = pixel_data_length1;
+#line 1150 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp98_ = pixel_index;
+#line 1150 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp97_[_tmp98_ + 1] = RGB_HISTOGRAM_MARKED_FOREGROUND;
+#line 1150 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp99_ = _tmp97_[_tmp98_ + 1];
+#line 10464 "ColorTransformation.c"
+ }
+#line 1151 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp100_ = y;
+#line 1151 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp101_ = blue_bar_height;
+#line 1151 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp100_ >= ((RGB_HISTOGRAM_GRAPHIC_HEIGHT - _tmp101_) - 1)) {
+#line 10472 "ColorTransformation.c"
+ guchar* _tmp102_ = NULL;
+ gint _tmp102__length1 = 0;
+ gint _tmp103_ = 0;
+ guchar _tmp104_ = '\0';
+#line 1152 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102_ = pixel_data;
+#line 1152 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102__length1 = pixel_data_length1;
+#line 1152 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp103_ = pixel_index;
+#line 1152 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp102_[_tmp103_ + 2] = RGB_HISTOGRAM_MARKED_FOREGROUND;
+#line 1152 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp104_ = _tmp102_[_tmp103_ + 2];
+#line 10487 "ColorTransformation.c"
+ }
+#line 1154 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp105_ = pixel_index;
+#line 1154 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp106_ = rowstride;
+#line 1154 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_index = _tmp105_ - _tmp106_;
+#line 10495 "ColorTransformation.c"
+ }
+ }
+ {
+ gboolean _tmp107_ = FALSE;
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp107_ = TRUE;
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 10504 "ColorTransformation.c"
+ gint _tmp109_ = 0;
+ guchar* _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ gint _tmp111_ = 0;
+ guchar _tmp112_ = '\0';
+ guchar* _tmp113_ = NULL;
+ gint _tmp113__length1 = 0;
+ gint _tmp114_ = 0;
+ guchar _tmp115_ = '\0';
+ guchar* _tmp116_ = NULL;
+ gint _tmp116__length1 = 0;
+ gint _tmp117_ = 0;
+ guchar _tmp118_ = '\0';
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp107_) {
+#line 10522 "ColorTransformation.c"
+ gint _tmp108_ = 0;
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp108_ = y;
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ y = _tmp108_ - 1;
+#line 10528 "ColorTransformation.c"
+ }
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp107_ = FALSE;
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp109_ = y;
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp109_ >= 0)) {
+#line 1157 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 10538 "ColorTransformation.c"
+ }
+#line 1158 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp110_ = pixel_data;
+#line 1158 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp110__length1 = pixel_data_length1;
+#line 1158 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp111_ = pixel_index;
+#line 1158 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp110_[_tmp111_] = RGB_HISTOGRAM_UNMARKED_BACKGROUND;
+#line 1158 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp112_ = _tmp110_[_tmp111_];
+#line 1159 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp113_ = pixel_data;
+#line 1159 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp113__length1 = pixel_data_length1;
+#line 1159 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp114_ = pixel_index;
+#line 1159 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp113_[_tmp114_ + 1] = RGB_HISTOGRAM_UNMARKED_BACKGROUND;
+#line 1159 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp115_ = _tmp113_[_tmp114_ + 1];
+#line 1160 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp116_ = pixel_data;
+#line 1160 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp116__length1 = pixel_data_length1;
+#line 1160 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp117_ = pixel_index;
+#line 1160 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp116_[_tmp117_ + 2] = RGB_HISTOGRAM_UNMARKED_BACKGROUND;
+#line 1160 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp118_ = _tmp116_[_tmp117_ + 2];
+#line 1162 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp119_ = pixel_index;
+#line 1162 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp120_ = rowstride;
+#line 1162 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_index = _tmp119_ - _tmp120_;
+#line 10576 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 1167 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp121_ = self->priv->graphic;
+#line 1167 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp122_ = _g_object_ref0 (_tmp121_);
+#line 1167 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp122_;
+#line 1167 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 10591 "ColorTransformation.c"
+}
+
+
+static void value_rgb_histogram_init (GValue* value) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 10598 "ColorTransformation.c"
+}
+
+
+static void value_rgb_histogram_free_value (GValue* value) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (value->data[0].v_pointer) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_unref (value->data[0].v_pointer);
+#line 10607 "ColorTransformation.c"
+ }
+}
+
+
+static void value_rgb_histogram_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = rgb_histogram_ref (src_value->data[0].v_pointer);
+#line 10617 "ColorTransformation.c"
+ } else {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 10621 "ColorTransformation.c"
+ }
+}
+
+
+static gpointer value_rgb_histogram_peek_pointer (const GValue* value) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 10629 "ColorTransformation.c"
+}
+
+
+static gchar* value_rgb_histogram_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (collect_values[0].v_pointer) {
+#line 10636 "ColorTransformation.c"
+ RGBHistogram* object;
+ object = collect_values[0].v_pointer;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 10643 "ColorTransformation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 10647 "ColorTransformation.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = rgb_histogram_ref (object);
+#line 10651 "ColorTransformation.c"
+ } else {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 10655 "ColorTransformation.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 10659 "ColorTransformation.c"
+}
+
+
+static gchar* value_rgb_histogram_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ RGBHistogram** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!object_p) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 10670 "ColorTransformation.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!value->data[0].v_pointer) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = NULL;
+#line 10676 "ColorTransformation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 10680 "ColorTransformation.c"
+ } else {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = rgb_histogram_ref (value->data[0].v_pointer);
+#line 10684 "ColorTransformation.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 10688 "ColorTransformation.c"
+}
+
+
+GParamSpec* param_spec_rgb_histogram (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecRGBHistogram* spec;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_RGB_HISTOGRAM), NULL);
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return G_PARAM_SPEC (spec);
+#line 10702 "ColorTransformation.c"
+}
+
+
+gpointer value_get_rgb_histogram (const GValue* value) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_RGB_HISTOGRAM), NULL);
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 10711 "ColorTransformation.c"
+}
+
+
+void value_set_rgb_histogram (GValue* value, gpointer v_object) {
+ RGBHistogram* old;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_RGB_HISTOGRAM));
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_RGB_HISTOGRAM));
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_ref (value->data[0].v_pointer);
+#line 10731 "ColorTransformation.c"
+ } else {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 10735 "ColorTransformation.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_unref (old);
+#line 10741 "ColorTransformation.c"
+ }
+}
+
+
+void value_take_rgb_histogram (GValue* value, gpointer v_object) {
+ RGBHistogram* old;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_RGB_HISTOGRAM));
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_RGB_HISTOGRAM));
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 10760 "ColorTransformation.c"
+ } else {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 10764 "ColorTransformation.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_unref (old);
+#line 10770 "ColorTransformation.c"
+ }
+}
+
+
+static void rgb_histogram_class_init (RGBHistogramClass * klass) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_histogram_parent_class = g_type_class_peek_parent (klass);
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((RGBHistogramClass *) klass)->finalize = rgb_histogram_finalize;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (RGBHistogramPrivate));
+#line 10782 "ColorTransformation.c"
+}
+
+
+static void rgb_histogram_instance_init (RGBHistogram * self) {
+ gint* _tmp0_ = NULL;
+ gint* _tmp1_ = NULL;
+ gint* _tmp2_ = NULL;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = RGB_HISTOGRAM_GET_PRIVATE (self);
+#line 922 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = g_new0 (gint, 256);
+#line 922 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->red_counts = _tmp0_;
+#line 922 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->red_counts_length1 = 256;
+#line 922 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_red_counts_size_ = self->priv->red_counts_length1;
+#line 923 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = g_new0 (gint, 256);
+#line 923 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->green_counts = _tmp1_;
+#line 923 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->green_counts_length1 = 256;
+#line 923 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_green_counts_size_ = self->priv->green_counts_length1;
+#line 924 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = g_new0 (gint, 256);
+#line 924 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->blue_counts = _tmp2_;
+#line 924 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->blue_counts_length1 = 256;
+#line 924 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_blue_counts_size_ = self->priv->blue_counts_length1;
+#line 925 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_red_counts = NULL;
+#line 925 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_red_counts_length1 = 0;
+#line 925 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_qualitative_red_counts_size_ = self->priv->qualitative_red_counts_length1;
+#line 926 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_green_counts = NULL;
+#line 926 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_green_counts_length1 = 0;
+#line 926 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_qualitative_green_counts_size_ = self->priv->qualitative_green_counts_length1;
+#line 927 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_blue_counts = NULL;
+#line 927 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_blue_counts_length1 = 0;
+#line 927 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_qualitative_blue_counts_size_ = self->priv->qualitative_blue_counts_length1;
+#line 928 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->graphic = NULL;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->ref_count = 1;
+#line 10838 "ColorTransformation.c"
+}
+
+
+static void rgb_histogram_finalize (RGBHistogram* obj) {
+ RGBHistogram * self;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RGB_HISTOGRAM, RGBHistogram);
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_signal_handlers_destroy (self);
+#line 922 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->red_counts = (g_free (self->priv->red_counts), NULL);
+#line 923 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->green_counts = (g_free (self->priv->green_counts), NULL);
+#line 924 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->blue_counts = (g_free (self->priv->blue_counts), NULL);
+#line 925 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_red_counts = (g_free (self->priv->qualitative_red_counts), NULL);
+#line 926 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_green_counts = (g_free (self->priv->qualitative_green_counts), NULL);
+#line 927 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->qualitative_blue_counts = (g_free (self->priv->qualitative_blue_counts), NULL);
+#line 928 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_object_unref0 (self->priv->graphic);
+#line 10862 "ColorTransformation.c"
+}
+
+
+GType rgb_histogram_get_type (void) {
+ static volatile gsize rgb_histogram_type_id__volatile = 0;
+ if (g_once_init_enter (&rgb_histogram_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_rgb_histogram_init, value_rgb_histogram_free_value, value_rgb_histogram_copy_value, value_rgb_histogram_peek_pointer, "p", value_rgb_histogram_collect_value, "p", value_rgb_histogram_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (RGBHistogramClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rgb_histogram_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RGBHistogram), 0, (GInstanceInitFunc) rgb_histogram_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType rgb_histogram_type_id;
+ rgb_histogram_type_id = g_type_register_fundamental (g_type_fundamental_next (), "RGBHistogram", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&rgb_histogram_type_id__volatile, rgb_histogram_type_id);
+ }
+ return rgb_histogram_type_id__volatile;
+}
+
+
+gpointer rgb_histogram_ref (gpointer instance) {
+ RGBHistogram* self;
+ self = instance;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return instance;
+#line 10887 "ColorTransformation.c"
+}
+
+
+void rgb_histogram_unref (gpointer instance) {
+ RGBHistogram* self;
+ self = instance;
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ RGB_HISTOGRAM_GET_CLASS (self)->finalize (self);
+#line 914 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 10900 "ColorTransformation.c"
+ }
+}
+
+
+IntensityHistogram* intensity_histogram_construct (GType object_type, GdkPixbuf* pixbuf) {
+ IntensityHistogram* self = NULL;
+ gint n_channels = 0;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint rowstride = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint width = 0;
+ GdkPixbuf* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint height = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint rowbytes = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ guchar* pixels = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ guint8* _tmp11_ = NULL;
+ gint pixels_length1 = 0;
+ gint _pixels_size_ = 0;
+ gfloat pixel_count = 0.0F;
+ GdkPixbuf* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ GdkPixbuf* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gfloat accumulator = 0.0F;
+#line 1176 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 1176 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (IntensityHistogram*) g_type_create_instance (object_type);
+#line 1177 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixbuf;
+#line 1177 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = gdk_pixbuf_get_n_channels (_tmp0_);
+#line 1177 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ n_channels = _tmp1_;
+#line 1178 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = pixbuf;
+#line 1178 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = gdk_pixbuf_get_rowstride (_tmp2_);
+#line 1178 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rowstride = _tmp3_;
+#line 1179 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = pixbuf;
+#line 1179 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = gdk_pixbuf_get_width (_tmp4_);
+#line 1179 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ width = _tmp5_;
+#line 1180 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = pixbuf;
+#line 1180 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = gdk_pixbuf_get_height (_tmp6_);
+#line 1180 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ height = _tmp7_;
+#line 1181 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = n_channels;
+#line 1181 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = width;
+#line 1181 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rowbytes = _tmp8_ * _tmp9_;
+#line 1182 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = pixbuf;
+#line 1182 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = gdk_pixbuf_get_pixels (_tmp10_);
+#line 1182 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixels = _tmp11_;
+#line 1182 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixels_length1 = -1;
+#line 1182 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixels_size_ = pixels_length1;
+#line 10979 "ColorTransformation.c"
+ {
+ gint j = 0;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ j = 0;
+#line 10984 "ColorTransformation.c"
+ {
+ gboolean _tmp12_ = FALSE;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = TRUE;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 10991 "ColorTransformation.c"
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint row_start_index = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint row_end_index = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp12_) {
+#line 11002 "ColorTransformation.c"
+ gint _tmp13_ = 0;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = j;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ j = _tmp13_ + 1;
+#line 11008 "ColorTransformation.c"
+ }
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = FALSE;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = j;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = height;
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp14_ < _tmp15_)) {
+#line 1183 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 11020 "ColorTransformation.c"
+ }
+#line 1184 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = j;
+#line 1184 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = rowstride;
+#line 1184 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_start_index = _tmp16_ * _tmp17_;
+#line 1185 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = row_start_index;
+#line 1185 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = rowbytes;
+#line 1185 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ row_end_index = _tmp18_ + _tmp19_;
+#line 11034 "ColorTransformation.c"
+ {
+ gint i = 0;
+ gint _tmp20_ = 0;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = row_start_index;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp20_;
+#line 11042 "ColorTransformation.c"
+ {
+ gboolean _tmp21_ = FALSE;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = TRUE;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 11049 "ColorTransformation.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ RGBAnalyticPixel pix_rgb = {0};
+ guchar* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gint _tmp27_ = 0;
+ guchar _tmp28_ = '\0';
+ guchar* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gint _tmp30_ = 0;
+ guchar _tmp31_ = '\0';
+ guchar* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gint _tmp33_ = 0;
+ guchar _tmp34_ = '\0';
+ HSVAnalyticPixel pix_hsi = {0};
+ RGBAnalyticPixel _tmp35_ = {0};
+ gint quantized_light_value = 0;
+ HSVAnalyticPixel _tmp36_ = {0};
+ gfloat _tmp37_ = 0.0F;
+ gint* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp21_) {
+#line 11076 "ColorTransformation.c"
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = i;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = n_channels;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp22_ + _tmp23_;
+#line 11085 "ColorTransformation.c"
+ }
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = FALSE;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = i;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = row_end_index;
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp24_ < _tmp25_)) {
+#line 1186 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 11097 "ColorTransformation.c"
+ }
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = pixels;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26__length1 = pixels_length1;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = i;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = _tmp26_[_tmp27_];
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = pixels;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29__length1 = pixels_length1;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = i;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = _tmp29_[_tmp30_ + 1];
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = pixels;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32__length1 = pixels_length1;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = i;
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = _tmp32_[_tmp33_ + 2];
+#line 1187 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ rgb_analytic_pixel_init_from_quantized_components (&pix_rgb, _tmp28_, _tmp31_, _tmp34_);
+#line 1189 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = pix_rgb;
+#line 1189 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hsv_analytic_pixel_init_from_rgb (&pix_hsi, &_tmp35_);
+#line 1190 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = pix_hsi;
+#line 1190 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = _tmp36_.light_value;
+#line 1190 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ quantized_light_value = (gint) (_tmp37_ * 255.0f);
+#line 1191 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = self->priv->counts;
+#line 1191 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38__length1 = self->priv->counts_length1;
+#line 1191 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = quantized_light_value;
+#line 1191 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_[_tmp39_] += 1;
+#line 1191 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = _tmp38_[_tmp39_];
+#line 11145 "ColorTransformation.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 1195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = pixbuf;
+#line 1195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = gdk_pixbuf_get_width (_tmp41_);
+#line 1195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = _tmp42_;
+#line 1195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = pixbuf;
+#line 1195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = gdk_pixbuf_get_height (_tmp44_);
+#line 1195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = _tmp45_;
+#line 1195 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_count = (gfloat) (_tmp43_ * _tmp46_);
+#line 1196 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ accumulator = 0.0f;
+#line 11168 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 11173 "ColorTransformation.c"
+ {
+ gboolean _tmp47_ = FALSE;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = TRUE;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 11180 "ColorTransformation.c"
+ gint _tmp49_ = 0;
+ gfloat* _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ gint _tmp51_ = 0;
+ gint* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ gfloat _tmp55_ = 0.0F;
+ gfloat _tmp56_ = 0.0F;
+ gfloat _tmp57_ = 0.0F;
+ gfloat* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gint _tmp59_ = 0;
+ gfloat _tmp60_ = 0.0F;
+ gfloat* _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+ gint _tmp62_ = 0;
+ gfloat _tmp63_ = 0.0F;
+ gfloat _tmp64_ = 0.0F;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp47_) {
+#line 11203 "ColorTransformation.c"
+ gint _tmp48_ = 0;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = i;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp48_ + 1;
+#line 11209 "ColorTransformation.c"
+ }
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = FALSE;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = i;
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp49_ < 256)) {
+#line 1197 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 11219 "ColorTransformation.c"
+ }
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = self->priv->probabilities;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50__length1 = self->priv->probabilities_length1;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = i;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = self->priv->counts;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52__length1 = self->priv->counts_length1;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = i;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = _tmp52_[_tmp53_];
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = pixel_count;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_[_tmp51_] = ((gfloat) _tmp54_) / _tmp55_;
+#line 1198 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = _tmp50_[_tmp51_];
+#line 1199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp57_ = accumulator;
+#line 1199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = self->priv->probabilities;
+#line 1199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58__length1 = self->priv->probabilities_length1;
+#line 1199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp59_ = i;
+#line 1199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60_ = _tmp58_[_tmp59_];
+#line 1199 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ accumulator = _tmp57_ + _tmp60_;
+#line 1200 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61_ = self->priv->cumulative_probabilities;
+#line 1200 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61__length1 = self->priv->cumulative_probabilities_length1;
+#line 1200 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp62_ = i;
+#line 1200 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp63_ = accumulator;
+#line 1200 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp61_[_tmp62_] = _tmp63_;
+#line 1200 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp64_ = _tmp61_[_tmp62_];
+#line 11265 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1176 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 11271 "ColorTransformation.c"
+}
+
+
+IntensityHistogram* intensity_histogram_new (GdkPixbuf* pixbuf) {
+#line 1176 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return intensity_histogram_construct (TYPE_INTENSITY_HISTOGRAM, pixbuf);
+#line 11278 "ColorTransformation.c"
+}
+
+
+gfloat intensity_histogram_get_cumulative_probability (IntensityHistogram* self, gint level) {
+ gfloat result = 0.0F;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gfloat* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gint _tmp3_ = 0;
+ gfloat _tmp4_ = 0.0F;
+#line 1204 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_INTENSITY_HISTOGRAM (self), 0.0F);
+#line 1206 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = level;
+#line 1206 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, 0, 255);
+#line 1206 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ level = _tmp1_;
+#line 1207 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->cumulative_probabilities;
+#line 1207 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2__length1 = self->priv->cumulative_probabilities_length1;
+#line 1207 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = level;
+#line 1207 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp2_[_tmp3_];
+#line 1207 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp4_;
+#line 1207 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 11310 "ColorTransformation.c"
+}
+
+
+static void value_intensity_histogram_init (GValue* value) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 11317 "ColorTransformation.c"
+}
+
+
+static void value_intensity_histogram_free_value (GValue* value) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (value->data[0].v_pointer) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intensity_histogram_unref (value->data[0].v_pointer);
+#line 11326 "ColorTransformation.c"
+ }
+}
+
+
+static void value_intensity_histogram_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = intensity_histogram_ref (src_value->data[0].v_pointer);
+#line 11336 "ColorTransformation.c"
+ } else {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 11340 "ColorTransformation.c"
+ }
+}
+
+
+static gpointer value_intensity_histogram_peek_pointer (const GValue* value) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 11348 "ColorTransformation.c"
+}
+
+
+static gchar* value_intensity_histogram_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (collect_values[0].v_pointer) {
+#line 11355 "ColorTransformation.c"
+ IntensityHistogram* object;
+ object = collect_values[0].v_pointer;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 11362 "ColorTransformation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 11366 "ColorTransformation.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = intensity_histogram_ref (object);
+#line 11370 "ColorTransformation.c"
+ } else {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 11374 "ColorTransformation.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 11378 "ColorTransformation.c"
+}
+
+
+static gchar* value_intensity_histogram_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ IntensityHistogram** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!object_p) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 11389 "ColorTransformation.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!value->data[0].v_pointer) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = NULL;
+#line 11395 "ColorTransformation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 11399 "ColorTransformation.c"
+ } else {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = intensity_histogram_ref (value->data[0].v_pointer);
+#line 11403 "ColorTransformation.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 11407 "ColorTransformation.c"
+}
+
+
+GParamSpec* param_spec_intensity_histogram (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecIntensityHistogram* spec;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_INTENSITY_HISTOGRAM), NULL);
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return G_PARAM_SPEC (spec);
+#line 11421 "ColorTransformation.c"
+}
+
+
+gpointer value_get_intensity_histogram (const GValue* value) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INTENSITY_HISTOGRAM), NULL);
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 11430 "ColorTransformation.c"
+}
+
+
+void value_set_intensity_histogram (GValue* value, gpointer v_object) {
+ IntensityHistogram* old;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INTENSITY_HISTOGRAM));
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_INTENSITY_HISTOGRAM));
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intensity_histogram_ref (value->data[0].v_pointer);
+#line 11450 "ColorTransformation.c"
+ } else {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 11454 "ColorTransformation.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intensity_histogram_unref (old);
+#line 11460 "ColorTransformation.c"
+ }
+}
+
+
+void value_take_intensity_histogram (GValue* value, gpointer v_object) {
+ IntensityHistogram* old;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INTENSITY_HISTOGRAM));
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_INTENSITY_HISTOGRAM));
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 11479 "ColorTransformation.c"
+ } else {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 11483 "ColorTransformation.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intensity_histogram_unref (old);
+#line 11489 "ColorTransformation.c"
+ }
+}
+
+
+static void intensity_histogram_class_init (IntensityHistogramClass * klass) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intensity_histogram_parent_class = g_type_class_peek_parent (klass);
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((IntensityHistogramClass *) klass)->finalize = intensity_histogram_finalize;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (IntensityHistogramPrivate));
+#line 11501 "ColorTransformation.c"
+}
+
+
+static void intensity_histogram_instance_init (IntensityHistogram * self) {
+ gint* _tmp0_ = NULL;
+ gfloat* _tmp1_ = NULL;
+ gfloat* _tmp2_ = NULL;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = INTENSITY_HISTOGRAM_GET_PRIVATE (self);
+#line 1172 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = g_new0 (gint, 256);
+#line 1172 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->counts = _tmp0_;
+#line 1172 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->counts_length1 = 256;
+#line 1172 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_counts_size_ = self->priv->counts_length1;
+#line 1173 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = g_new0 (gfloat, 256);
+#line 1173 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->probabilities = _tmp1_;
+#line 1173 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->probabilities_length1 = 256;
+#line 1173 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_probabilities_size_ = self->priv->probabilities_length1;
+#line 1174 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = g_new0 (gfloat, 256);
+#line 1174 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->cumulative_probabilities = _tmp2_;
+#line 1174 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->cumulative_probabilities_length1 = 256;
+#line 1174 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_cumulative_probabilities_size_ = self->priv->cumulative_probabilities_length1;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->ref_count = 1;
+#line 11537 "ColorTransformation.c"
+}
+
+
+static void intensity_histogram_finalize (IntensityHistogram* obj) {
+ IntensityHistogram * self;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_INTENSITY_HISTOGRAM, IntensityHistogram);
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_signal_handlers_destroy (self);
+#line 1172 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->counts = (g_free (self->priv->counts), NULL);
+#line 1173 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->probabilities = (g_free (self->priv->probabilities), NULL);
+#line 1174 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->cumulative_probabilities = (g_free (self->priv->cumulative_probabilities), NULL);
+#line 11553 "ColorTransformation.c"
+}
+
+
+GType intensity_histogram_get_type (void) {
+ static volatile gsize intensity_histogram_type_id__volatile = 0;
+ if (g_once_init_enter (&intensity_histogram_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_intensity_histogram_init, value_intensity_histogram_free_value, value_intensity_histogram_copy_value, value_intensity_histogram_peek_pointer, "p", value_intensity_histogram_collect_value, "p", value_intensity_histogram_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (IntensityHistogramClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) intensity_histogram_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IntensityHistogram), 0, (GInstanceInitFunc) intensity_histogram_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType intensity_histogram_type_id;
+ intensity_histogram_type_id = g_type_register_fundamental (g_type_fundamental_next (), "IntensityHistogram", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&intensity_histogram_type_id__volatile, intensity_histogram_type_id);
+ }
+ return intensity_histogram_type_id__volatile;
+}
+
+
+gpointer intensity_histogram_ref (gpointer instance) {
+ IntensityHistogram* self;
+ self = instance;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return instance;
+#line 11578 "ColorTransformation.c"
+}
+
+
+void intensity_histogram_unref (gpointer instance) {
+ IntensityHistogram* self;
+ self = instance;
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ INTENSITY_HISTOGRAM_GET_CLASS (self)->finalize (self);
+#line 1171 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 11591 "ColorTransformation.c"
+ }
+}
+
+
+ExpansionTransformation* expansion_transformation_construct (GType object_type, IntensityHistogram* histogram) {
+ ExpansionTransformation* self = NULL;
+ gfloat* _tmp0_ = NULL;
+ gfloat LOW_KINK_MASS = 0.0F;
+ gfloat HIGH_KINK_MASS = 0.0F;
+#line 1219 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_INTENSITY_HISTOGRAM (histogram), NULL);
+#line 1220 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (ExpansionTransformation*) hsv_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION);
+#line 1222 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = g_new0 (gfloat, 256);
+#line 1222 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = (g_free (self->priv->remap_table), NULL);
+#line 1222 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = _tmp0_;
+#line 1222 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table_length1 = 256;
+#line 1222 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_remap_table_size_ = self->priv->remap_table_length1;
+#line 1224 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ LOW_KINK_MASS = EXPANSION_TRANSFORMATION_LOW_DISCARD_MASS;
+#line 1225 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->low_kink = 0;
+#line 1226 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 11621 "ColorTransformation.c"
+ IntensityHistogram* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gint _tmp5_ = 0;
+#line 1226 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = histogram;
+#line 1226 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->low_kink;
+#line 1226 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = intensity_histogram_get_cumulative_probability (_tmp1_, _tmp2_);
+#line 1226 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = LOW_KINK_MASS;
+#line 1226 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp3_ < _tmp4_)) {
+#line 1226 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 11639 "ColorTransformation.c"
+ }
+#line 1227 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = self->priv->low_kink;
+#line 1227 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->low_kink = _tmp5_ + 1;
+#line 11645 "ColorTransformation.c"
+ }
+#line 1229 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ HIGH_KINK_MASS = 1.0f - EXPANSION_TRANSFORMATION_HIGH_DISCARD_MASS;
+#line 1230 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->high_kink = 255;
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 11653 "ColorTransformation.c"
+ gboolean _tmp6_ = FALSE;
+ IntensityHistogram* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gfloat _tmp9_ = 0.0F;
+ gfloat _tmp10_ = 0.0F;
+ gint _tmp12_ = 0;
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = histogram;
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = self->priv->high_kink;
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = intensity_histogram_get_cumulative_probability (_tmp7_, _tmp8_);
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = HIGH_KINK_MASS;
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp9_ > _tmp10_) {
+#line 11670 "ColorTransformation.c"
+ gint _tmp11_ = 0;
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = self->priv->high_kink;
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp11_ > 0;
+#line 11676 "ColorTransformation.c"
+ } else {
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = FALSE;
+#line 11680 "ColorTransformation.c"
+ }
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp6_) {
+#line 1231 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 11686 "ColorTransformation.c"
+ }
+#line 1232 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = self->priv->high_kink;
+#line 1232 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->high_kink = _tmp12_ - 1;
+#line 11692 "ColorTransformation.c"
+ }
+#line 1234 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ expansion_transformation_build_remap_table (self);
+#line 1219 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 11698 "ColorTransformation.c"
+}
+
+
+ExpansionTransformation* expansion_transformation_new (IntensityHistogram* histogram) {
+#line 1219 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return expansion_transformation_construct (TYPE_EXPANSION_TRANSFORMATION, histogram);
+#line 11705 "ColorTransformation.c"
+}
+
+
+ExpansionTransformation* expansion_transformation_construct_from_extrema (GType object_type, gint black_point, gint white_point) {
+ ExpansionTransformation* self = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 1238 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (ExpansionTransformation*) hsv_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION);
+#line 1240 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = white_point;
+#line 1240 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, 0, 255);
+#line 1240 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ white_point = _tmp1_;
+#line 1241 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = black_point;
+#line 1241 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = CLAMP (_tmp2_, 0, 255);
+#line 1241 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ black_point = _tmp3_;
+#line 1243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = black_point;
+#line 1243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = white_point;
+#line 1243 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp4_ == _tmp5_) {
+#line 11739 "ColorTransformation.c"
+ gint _tmp6_ = 0;
+#line 1244 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = black_point;
+#line 1244 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp6_ == 0) {
+#line 1245 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ white_point = 1;
+#line 11747 "ColorTransformation.c"
+ } else {
+ gint _tmp7_ = 0;
+#line 1246 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = white_point;
+#line 1246 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp7_ == 255) {
+#line 1247 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ black_point = 254;
+#line 11756 "ColorTransformation.c"
+ } else {
+ gint _tmp8_ = 0;
+#line 1249 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = white_point;
+#line 1249 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ black_point = _tmp8_ - 1;
+#line 11763 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1252 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = black_point;
+#line 1252 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->low_kink = _tmp9_;
+#line 1253 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = white_point;
+#line 1253 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->high_kink = _tmp10_;
+#line 1255 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ expansion_transformation_build_remap_table (self);
+#line 1237 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 11779 "ColorTransformation.c"
+}
+
+
+ExpansionTransformation* expansion_transformation_new_from_extrema (gint black_point, gint white_point) {
+#line 1237 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return expansion_transformation_construct_from_extrema (TYPE_EXPANSION_TRANSFORMATION, black_point, white_point);
+#line 11786 "ColorTransformation.c"
+}
+
+
+static gchar* string_chug (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1199 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1200 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1200 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1201 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1201 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strchug (_tmp1_);
+#line 1202 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1202 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 11809 "ColorTransformation.c"
+}
+
+
+static gchar* string_chomp (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1191 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1192 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1192 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1193 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1193 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strchomp (_tmp1_);
+#line 1194 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1194 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 11832 "ColorTransformation.c"
+}
+
+
+ExpansionTransformation* expansion_transformation_construct_from_string (GType object_type, const gchar* encoded_transformation) {
+ ExpansionTransformation* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gint num_captured = 0;
+ const gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 1258 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (encoded_transformation != NULL, NULL);
+#line 1259 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (ExpansionTransformation*) hsv_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION);
+#line 1261 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = encoded_transformation;
+#line 1261 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_strcanon (_tmp0_, "0123456789. ", ' ');
+#line 1262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = encoded_transformation;
+#line 1262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = string_chug (_tmp1_);
+#line 1262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_;
+#line 1262 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_free0 (_tmp3_);
+#line 1263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = encoded_transformation;
+#line 1263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = string_chomp (_tmp4_);
+#line 1263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp5_;
+#line 1263 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _g_free0 (_tmp6_);
+#line 1265 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = encoded_transformation;
+#line 1265 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = sscanf (_tmp7_, "%d %d", &self->priv->low_kink, &self->priv->high_kink);
+#line 1265 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ num_captured = _tmp8_;
+#line 1268 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _vala_assert (num_captured == 2, "num_captured == 2");
+#line 1270 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ expansion_transformation_build_remap_table (self);
+#line 1258 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 11884 "ColorTransformation.c"
+}
+
+
+ExpansionTransformation* expansion_transformation_new_from_string (const gchar* encoded_transformation) {
+#line 1258 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return expansion_transformation_construct_from_string (TYPE_EXPANSION_TRANSFORMATION, encoded_transformation);
+#line 11891 "ColorTransformation.c"
+}
+
+
+static void expansion_transformation_build_remap_table (ExpansionTransformation* self) {
+ gfloat* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gfloat low_kink_f = 0.0F;
+ gint _tmp2_ = 0;
+ gfloat high_kink_f = 0.0F;
+ gint _tmp3_ = 0;
+ gfloat slope = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat _tmp5_ = 0.0F;
+ gfloat intercept = 0.0F;
+ gfloat _tmp6_ = 0.0F;
+ gfloat _tmp7_ = 0.0F;
+ gfloat _tmp8_ = 0.0F;
+ gint i = 0;
+#line 1273 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (IS_EXPANSION_TRANSFORMATION (self));
+#line 1274 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->remap_table;
+#line 1274 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0__length1 = self->priv->remap_table_length1;
+#line 1274 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp0_ == NULL) {
+#line 11918 "ColorTransformation.c"
+ gfloat* _tmp1_ = NULL;
+#line 1275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = g_new0 (gfloat, 256);
+#line 1275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = (g_free (self->priv->remap_table), NULL);
+#line 1275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = _tmp1_;
+#line 1275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table_length1 = 256;
+#line 1275 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_remap_table_size_ = self->priv->remap_table_length1;
+#line 11930 "ColorTransformation.c"
+ }
+#line 1277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->low_kink;
+#line 1277 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ low_kink_f = ((gfloat) _tmp2_) / 255.0f;
+#line 1278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->high_kink;
+#line 1278 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ high_kink_f = ((gfloat) _tmp3_) / 255.0f;
+#line 1280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = high_kink_f;
+#line 1280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = low_kink_f;
+#line 1280 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ slope = 1.0f / (_tmp4_ - _tmp5_);
+#line 1281 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = low_kink_f;
+#line 1281 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = high_kink_f;
+#line 1281 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = low_kink_f;
+#line 1281 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intercept = -(_tmp6_ / (_tmp7_ - _tmp8_));
+#line 1283 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 11956 "ColorTransformation.c"
+ {
+ gboolean _tmp9_ = FALSE;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = TRUE;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 11963 "ColorTransformation.c"
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gfloat* _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp14_ = 0;
+ gfloat _tmp15_ = 0.0F;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp9_) {
+#line 11972 "ColorTransformation.c"
+ gint _tmp10_ = 0;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = i;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp10_ + 1;
+#line 11978 "ColorTransformation.c"
+ }
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = FALSE;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = i;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = self->priv->low_kink;
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp11_ <= _tmp12_)) {
+#line 1284 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 11990 "ColorTransformation.c"
+ }
+#line 1285 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = self->priv->remap_table;
+#line 1285 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13__length1 = self->priv->remap_table_length1;
+#line 1285 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = i;
+#line 1285 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_[_tmp14_] = 0.0f;
+#line 1285 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = _tmp13_[_tmp14_];
+#line 12002 "ColorTransformation.c"
+ }
+ }
+ {
+ gboolean _tmp16_ = FALSE;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = TRUE;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 12011 "ColorTransformation.c"
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gfloat* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint _tmp21_ = 0;
+ gfloat _tmp22_ = 0.0F;
+ gint _tmp23_ = 0;
+ gfloat _tmp24_ = 0.0F;
+ gfloat _tmp25_ = 0.0F;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp16_) {
+#line 12023 "ColorTransformation.c"
+ gint _tmp17_ = 0;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = i;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp17_ + 1;
+#line 12029 "ColorTransformation.c"
+ }
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = FALSE;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = i;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = self->priv->high_kink;
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp18_ < _tmp19_)) {
+#line 1287 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 12041 "ColorTransformation.c"
+ }
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = self->priv->remap_table;
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20__length1 = self->priv->remap_table_length1;
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = i;
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = slope;
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = i;
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = intercept;
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_[_tmp21_] = (_tmp22_ * (((gfloat) _tmp23_) / 255.0f)) + _tmp24_;
+#line 1288 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = _tmp20_[_tmp21_];
+#line 12059 "ColorTransformation.c"
+ }
+ }
+ {
+ gboolean _tmp26_ = FALSE;
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = TRUE;
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 12068 "ColorTransformation.c"
+ gint _tmp28_ = 0;
+ gfloat* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gint _tmp30_ = 0;
+ gfloat _tmp31_ = 0.0F;
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp26_) {
+#line 12076 "ColorTransformation.c"
+ gint _tmp27_ = 0;
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = i;
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp27_ + 1;
+#line 12082 "ColorTransformation.c"
+ }
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = FALSE;
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = i;
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp28_ < 256)) {
+#line 1290 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 12092 "ColorTransformation.c"
+ }
+#line 1291 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = self->priv->remap_table;
+#line 1291 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29__length1 = self->priv->remap_table_length1;
+#line 1291 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = i;
+#line 1291 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_[_tmp30_] = 1.0f;
+#line 1291 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = _tmp29_[_tmp30_];
+#line 12104 "ColorTransformation.c"
+ }
+ }
+}
+
+
+static void expansion_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* pixel, HSVAnalyticPixel* result) {
+ ExpansionTransformation * self;
+ gint remap_index = 0;
+ HSVAnalyticPixel _tmp0_ = {0};
+ gfloat _tmp1_ = 0.0F;
+ HSVAnalyticPixel _result_ = {0};
+ HSVAnalyticPixel _tmp2_ = {0};
+ gfloat* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gfloat _tmp4_ = 0.0F;
+ HSVAnalyticPixel _tmp5_ = {0};
+ gfloat _tmp6_ = 0.0F;
+ gfloat _tmp7_ = 0.0F;
+#line 1294 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
+#line 1294 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (pixel != NULL);
+#line 1295 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *pixel;
+#line 1295 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = _tmp0_.light_value;
+#line 1295 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ remap_index = (gint) (_tmp1_ * 255.0f);
+#line 1297 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = *pixel;
+#line 1297 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_ = _tmp2_;
+#line 1298 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->remap_table;
+#line 1298 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3__length1 = self->priv->remap_table_length1;
+#line 1298 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp3_[remap_index];
+#line 1298 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.light_value = _tmp4_;
+#line 1300 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = _result_;
+#line 1300 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = _tmp5_.light_value;
+#line 1300 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = CLAMP (_tmp6_, 0.0f, 1.0f);
+#line 1300 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.light_value = _tmp7_;
+#line 1302 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _result_;
+#line 1302 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 12157 "ColorTransformation.c"
+}
+
+
+static gchar* expansion_transformation_real_to_string (PixelTransformation* base) {
+ ExpansionTransformation * self;
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+#line 1305 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
+#line 1306 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->low_kink;
+#line 1306 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->high_kink;
+#line 1306 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = g_strdup_printf ("{ %d, %d }", _tmp0_, _tmp1_);
+#line 1306 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp2_;
+#line 1306 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12179 "ColorTransformation.c"
+}
+
+
+gint expansion_transformation_get_white_point (ExpansionTransformation* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 1309 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_EXPANSION_TRANSFORMATION (self), 0);
+#line 1310 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->high_kink;
+#line 1310 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 1310 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12194 "ColorTransformation.c"
+}
+
+
+gint expansion_transformation_get_black_point (ExpansionTransformation* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 1313 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_EXPANSION_TRANSFORMATION (self), 0);
+#line 1314 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->low_kink;
+#line 1314 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 1314 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12209 "ColorTransformation.c"
+}
+
+
+static gboolean expansion_transformation_real_is_identity (PixelTransformation* base) {
+ ExpansionTransformation * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 1317 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
+#line 1318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->low_kink;
+#line 1318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp1_ == 0) {
+#line 12224 "ColorTransformation.c"
+ gint _tmp2_ = 0;
+#line 1318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->high_kink;
+#line 1318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = _tmp2_ == 255;
+#line 12230 "ColorTransformation.c"
+ } else {
+#line 1318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = FALSE;
+#line 12234 "ColorTransformation.c"
+ }
+#line 1318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 1318 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12240 "ColorTransformation.c"
+}
+
+
+static PixelTransformation* expansion_transformation_real_copy (PixelTransformation* base) {
+ ExpansionTransformation * self;
+ PixelTransformation* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ ExpansionTransformation* _tmp2_ = NULL;
+#line 1321 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
+#line 1322 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->low_kink;
+#line 1322 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->high_kink;
+#line 1322 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = expansion_transformation_new_from_extrema (_tmp0_, _tmp1_);
+#line 1322 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation);
+#line 1322 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12262 "ColorTransformation.c"
+}
+
+
+static void expansion_transformation_class_init (ExpansionTransformationClass * klass) {
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ expansion_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = expansion_transformation_finalize;
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (ExpansionTransformationPrivate));
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_hsv = expansion_transformation_real_transform_pixel_hsv;
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->to_string = expansion_transformation_real_to_string;
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->is_identity = expansion_transformation_real_is_identity;
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->copy = expansion_transformation_real_copy;
+#line 12281 "ColorTransformation.c"
+}
+
+
+static void expansion_transformation_instance_init (ExpansionTransformation * self) {
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = EXPANSION_TRANSFORMATION_GET_PRIVATE (self);
+#line 1212 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = NULL;
+#line 1212 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table_length1 = 0;
+#line 1212 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_remap_table_size_ = self->priv->remap_table_length1;
+#line 12294 "ColorTransformation.c"
+}
+
+
+static void expansion_transformation_finalize (PixelTransformation* obj) {
+ ExpansionTransformation * self;
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
+#line 1212 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = (g_free (self->priv->remap_table), NULL);
+#line 1211 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (expansion_transformation_parent_class)->finalize (obj);
+#line 12306 "ColorTransformation.c"
+}
+
+
+GType expansion_transformation_get_type (void) {
+ static volatile gsize expansion_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&expansion_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ExpansionTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) expansion_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExpansionTransformation), 0, (GInstanceInitFunc) expansion_transformation_instance_init, NULL };
+ GType expansion_transformation_type_id;
+ expansion_transformation_type_id = g_type_register_static (TYPE_HSV_TRANSFORMATION, "ExpansionTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&expansion_transformation_type_id__volatile, expansion_transformation_type_id);
+ }
+ return expansion_transformation_type_id__volatile;
+}
+
+
+ShadowDetailTransformation* shadow_detail_transformation_construct (GType object_type, gfloat user_intensity) {
+ ShadowDetailTransformation* self = NULL;
+ gfloat _tmp0_ = 0.0F;
+ gfloat intensity_adj = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+ gfloat effect_shift = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ HermiteGammaApproximationFunction* func = NULL;
+ HermiteGammaApproximationFunction* _tmp4_ = NULL;
+ gfloat* _tmp5_ = NULL;
+#line 1339 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (ShadowDetailTransformation*) hsv_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_SHADOWS);
+#line 1341 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = user_intensity;
+#line 1341 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->intensity = _tmp0_;
+#line 1342 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->intensity;
+#line 1342 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = CLAMP (_tmp1_ / SHADOW_DETAIL_TRANSFORMATION_MAX_PARAMETER, 0.0f, 1.0f);
+#line 1342 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intensity_adj = _tmp2_;
+#line 1344 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = intensity_adj;
+#line 1344 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ effect_shift = SHADOW_DETAIL_TRANSFORMATION_MAX_EFFECT_SHIFT * _tmp3_;
+#line 1345 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = hermite_gamma_approximation_function_new (SHADOW_DETAIL_TRANSFORMATION_TONAL_WIDTH);
+#line 1345 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ func = _tmp4_;
+#line 1348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = g_new0 (gfloat, 256);
+#line 1348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = (g_free (self->priv->remap_table), NULL);
+#line 1348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = _tmp5_;
+#line 1348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table_length1 = 256;
+#line 1348 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_remap_table_size_ = self->priv->remap_table_length1;
+#line 12363 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 12368 "ColorTransformation.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = TRUE;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 12375 "ColorTransformation.c"
+ gint _tmp8_ = 0;
+ gfloat x = 0.0F;
+ gint _tmp9_ = 0;
+ gfloat weight = 0.0F;
+ HermiteGammaApproximationFunction* _tmp10_ = NULL;
+ gfloat _tmp11_ = 0.0F;
+ gfloat _tmp12_ = 0.0F;
+ gfloat* _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp14_ = 0;
+ gfloat _tmp15_ = 0.0F;
+ gfloat _tmp16_ = 0.0F;
+ gfloat _tmp17_ = 0.0F;
+ gfloat _tmp18_ = 0.0F;
+ gfloat _tmp19_ = 0.0F;
+ gfloat _tmp20_ = 0.0F;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp6_) {
+#line 12394 "ColorTransformation.c"
+ gint _tmp7_ = 0;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = i;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp7_ + 1;
+#line 12400 "ColorTransformation.c"
+ }
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = FALSE;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = i;
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp8_ < 256)) {
+#line 1349 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 12410 "ColorTransformation.c"
+ }
+#line 1350 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = i;
+#line 1350 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ x = ((gfloat) _tmp9_) / 255.0f;
+#line 1351 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = func;
+#line 1351 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = x;
+#line 1351 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = hermite_gamma_approximation_function_evaluate (_tmp10_, _tmp11_);
+#line 1351 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ weight = _tmp12_;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = self->priv->remap_table;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13__length1 = self->priv->remap_table_length1;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = i;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = weight;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = x;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = effect_shift;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = weight;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = x;
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_[_tmp14_] = (_tmp15_ * (_tmp16_ + _tmp17_)) + ((1.0f - _tmp18_) * _tmp19_);
+#line 1352 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = _tmp13_[_tmp14_];
+#line 12444 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1338 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _hermite_gamma_approximation_function_unref0 (func);
+#line 1338 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 12452 "ColorTransformation.c"
+}
+
+
+ShadowDetailTransformation* shadow_detail_transformation_new (gfloat user_intensity) {
+#line 1338 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return shadow_detail_transformation_construct (TYPE_SHADOW_DETAIL_TRANSFORMATION, user_intensity);
+#line 12459 "ColorTransformation.c"
+}
+
+
+static void shadow_detail_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* pixel, HSVAnalyticPixel* result) {
+ ShadowDetailTransformation * self;
+ HSVAnalyticPixel _result_ = {0};
+ HSVAnalyticPixel _tmp0_ = {0};
+ gfloat* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ HSVAnalyticPixel _tmp2_ = {0};
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat _tmp5_ = 0.0F;
+#line 1356 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation);
+#line 1356 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (pixel != NULL);
+#line 1357 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *pixel;
+#line 1357 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_ = _tmp0_;
+#line 1358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->remap_table;
+#line 1358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1__length1 = self->priv->remap_table_length1;
+#line 1358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = *pixel;
+#line 1358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_.light_value;
+#line 1358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp1_[(gint) (_tmp3_ * 255.0f)];
+#line 1358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = CLAMP (_tmp4_, 0.0f, 1.0f);
+#line 1358 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.light_value = _tmp5_;
+#line 1359 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _result_;
+#line 1359 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 12499 "ColorTransformation.c"
+}
+
+
+static PixelTransformation* shadow_detail_transformation_real_copy (PixelTransformation* base) {
+ ShadowDetailTransformation * self;
+ PixelTransformation* result = NULL;
+ gfloat _tmp0_ = 0.0F;
+ ShadowDetailTransformation* _tmp1_ = NULL;
+#line 1362 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation);
+#line 1363 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->intensity;
+#line 1363 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = shadow_detail_transformation_new (_tmp0_);
+#line 1363 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation);
+#line 1363 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12518 "ColorTransformation.c"
+}
+
+
+static gboolean shadow_detail_transformation_real_is_identity (PixelTransformation* base) {
+ ShadowDetailTransformation * self;
+ gboolean result = FALSE;
+ gfloat _tmp0_ = 0.0F;
+#line 1366 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation);
+#line 1367 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->intensity;
+#line 1367 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_ == 0.0f;
+#line 1367 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12534 "ColorTransformation.c"
+}
+
+
+gfloat shadow_detail_transformation_get_parameter (ShadowDetailTransformation* self) {
+ gfloat result = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+#line 1370 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_SHADOW_DETAIL_TRANSFORMATION (self), 0.0F);
+#line 1371 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->intensity;
+#line 1371 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 1371 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12549 "ColorTransformation.c"
+}
+
+
+static void shadow_detail_transformation_class_init (ShadowDetailTransformationClass * klass) {
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ shadow_detail_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = shadow_detail_transformation_finalize;
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (ShadowDetailTransformationPrivate));
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_hsv = shadow_detail_transformation_real_transform_pixel_hsv;
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->copy = shadow_detail_transformation_real_copy;
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->is_identity = shadow_detail_transformation_real_is_identity;
+#line 12566 "ColorTransformation.c"
+}
+
+
+static void shadow_detail_transformation_instance_init (ShadowDetailTransformation * self) {
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = SHADOW_DETAIL_TRANSFORMATION_GET_PRIVATE (self);
+#line 1332 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->intensity = 0.0f;
+#line 1333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = NULL;
+#line 1333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table_length1 = 0;
+#line 1333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_remap_table_size_ = self->priv->remap_table_length1;
+#line 12581 "ColorTransformation.c"
+}
+
+
+static void shadow_detail_transformation_finalize (PixelTransformation* obj) {
+ ShadowDetailTransformation * self;
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation);
+#line 1333 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = (g_free (self->priv->remap_table), NULL);
+#line 1326 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (shadow_detail_transformation_parent_class)->finalize (obj);
+#line 12593 "ColorTransformation.c"
+}
+
+
+GType shadow_detail_transformation_get_type (void) {
+ static volatile gsize shadow_detail_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&shadow_detail_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ShadowDetailTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) shadow_detail_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ShadowDetailTransformation), 0, (GInstanceInitFunc) shadow_detail_transformation_instance_init, NULL };
+ GType shadow_detail_transformation_type_id;
+ shadow_detail_transformation_type_id = g_type_register_static (TYPE_HSV_TRANSFORMATION, "ShadowDetailTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&shadow_detail_transformation_type_id__volatile, shadow_detail_transformation_type_id);
+ }
+ return shadow_detail_transformation_type_id__volatile;
+}
+
+
+HermiteGammaApproximationFunction* hermite_gamma_approximation_function_construct (GType object_type, gfloat user_interval_upper) {
+ HermiteGammaApproximationFunction* self = NULL;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 1379 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (HermiteGammaApproximationFunction*) g_type_create_instance (object_type);
+#line 1380 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = user_interval_upper;
+#line 1380 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = CLAMP (_tmp0_, 0.1f, 1.0f);
+#line 1380 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->nonzero_interval_upper = _tmp1_;
+#line 1381 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->nonzero_interval_upper;
+#line 1381 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->x_scale = 1.0f / _tmp2_;
+#line 1379 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 12628 "ColorTransformation.c"
+}
+
+
+HermiteGammaApproximationFunction* hermite_gamma_approximation_function_new (gfloat user_interval_upper) {
+#line 1379 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return hermite_gamma_approximation_function_construct (TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION, user_interval_upper);
+#line 12635 "ColorTransformation.c"
+}
+
+
+gfloat hermite_gamma_approximation_function_evaluate (HermiteGammaApproximationFunction* self, gfloat x) {
+ gfloat result = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+#line 1384 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_HERMITE_GAMMA_APPROXIMATION_FUNCTION (self), 0.0F);
+#line 1385 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = x;
+#line 1385 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp0_ < 0.0f) {
+#line 1386 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = 0.0f;
+#line 1386 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12652 "ColorTransformation.c"
+ } else {
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+#line 1387 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = x;
+#line 1387 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = self->priv->nonzero_interval_upper;
+#line 1387 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp1_ > _tmp2_) {
+#line 1388 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = 0.0f;
+#line 1388 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12666 "ColorTransformation.c"
+ } else {
+ gfloat indep_var = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat dep_var = 0.0F;
+ gfloat _tmp5_ = 0.0F;
+ gfloat _tmp6_ = 0.0F;
+ gfloat _tmp7_ = 0.0F;
+ gfloat _tmp8_ = 0.0F;
+ gfloat _tmp9_ = 0.0F;
+ gfloat _tmp10_ = 0.0F;
+ gfloat _tmp11_ = 0.0F;
+ gfloat _tmp12_ = 0.0F;
+#line 1390 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = self->priv->x_scale;
+#line 1390 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = x;
+#line 1390 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ indep_var = _tmp3_ * _tmp4_;
+#line 1392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = indep_var;
+#line 1392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = indep_var;
+#line 1392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = indep_var;
+#line 1392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = indep_var;
+#line 1392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = indep_var;
+#line 1392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = indep_var;
+#line 1392 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dep_var = 6.0f * ((((_tmp5_ * _tmp6_) * _tmp7_) - (2.0f * (_tmp8_ * _tmp9_))) + _tmp10_);
+#line 1395 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = dep_var;
+#line 1395 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = CLAMP (_tmp11_, 0.0f, 1.0f);
+#line 1395 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp12_;
+#line 1395 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 12708 "ColorTransformation.c"
+ }
+ }
+}
+
+
+static void value_hermite_gamma_approximation_function_init (GValue* value) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 12717 "ColorTransformation.c"
+}
+
+
+static void value_hermite_gamma_approximation_function_free_value (GValue* value) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (value->data[0].v_pointer) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hermite_gamma_approximation_function_unref (value->data[0].v_pointer);
+#line 12726 "ColorTransformation.c"
+ }
+}
+
+
+static void value_hermite_gamma_approximation_function_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = hermite_gamma_approximation_function_ref (src_value->data[0].v_pointer);
+#line 12736 "ColorTransformation.c"
+ } else {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 12740 "ColorTransformation.c"
+ }
+}
+
+
+static gpointer value_hermite_gamma_approximation_function_peek_pointer (const GValue* value) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 12748 "ColorTransformation.c"
+}
+
+
+static gchar* value_hermite_gamma_approximation_function_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (collect_values[0].v_pointer) {
+#line 12755 "ColorTransformation.c"
+ HermiteGammaApproximationFunction* object;
+ object = collect_values[0].v_pointer;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 12762 "ColorTransformation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 12766 "ColorTransformation.c"
+ }
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = hermite_gamma_approximation_function_ref (object);
+#line 12770 "ColorTransformation.c"
+ } else {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 12774 "ColorTransformation.c"
+ }
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 12778 "ColorTransformation.c"
+}
+
+
+static gchar* value_hermite_gamma_approximation_function_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ HermiteGammaApproximationFunction** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!object_p) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 12789 "ColorTransformation.c"
+ }
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!value->data[0].v_pointer) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = NULL;
+#line 12795 "ColorTransformation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 12799 "ColorTransformation.c"
+ } else {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *object_p = hermite_gamma_approximation_function_ref (value->data[0].v_pointer);
+#line 12803 "ColorTransformation.c"
+ }
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return NULL;
+#line 12807 "ColorTransformation.c"
+}
+
+
+GParamSpec* param_spec_hermite_gamma_approximation_function (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecHermiteGammaApproximationFunction* spec;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION), NULL);
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return G_PARAM_SPEC (spec);
+#line 12821 "ColorTransformation.c"
+}
+
+
+gpointer value_get_hermite_gamma_approximation_function (const GValue* value) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION), NULL);
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return value->data[0].v_pointer;
+#line 12830 "ColorTransformation.c"
+}
+
+
+void value_set_hermite_gamma_approximation_function (GValue* value, gpointer v_object) {
+ HermiteGammaApproximationFunction* old;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION));
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION));
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hermite_gamma_approximation_function_ref (value->data[0].v_pointer);
+#line 12850 "ColorTransformation.c"
+ } else {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 12854 "ColorTransformation.c"
+ }
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hermite_gamma_approximation_function_unref (old);
+#line 12860 "ColorTransformation.c"
+ }
+}
+
+
+void value_take_hermite_gamma_approximation_function (GValue* value, gpointer v_object) {
+ HermiteGammaApproximationFunction* old;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION));
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ old = value->data[0].v_pointer;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (v_object) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION));
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = v_object;
+#line 12879 "ColorTransformation.c"
+ } else {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ value->data[0].v_pointer = NULL;
+#line 12883 "ColorTransformation.c"
+ }
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (old) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hermite_gamma_approximation_function_unref (old);
+#line 12889 "ColorTransformation.c"
+ }
+}
+
+
+static void hermite_gamma_approximation_function_class_init (HermiteGammaApproximationFunctionClass * klass) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ hermite_gamma_approximation_function_parent_class = g_type_class_peek_parent (klass);
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((HermiteGammaApproximationFunctionClass *) klass)->finalize = hermite_gamma_approximation_function_finalize;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (HermiteGammaApproximationFunctionPrivate));
+#line 12901 "ColorTransformation.c"
+}
+
+
+static void hermite_gamma_approximation_function_instance_init (HermiteGammaApproximationFunction * self) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = HERMITE_GAMMA_APPROXIMATION_FUNCTION_GET_PRIVATE (self);
+#line 1376 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->x_scale = 1.0f;
+#line 1377 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->nonzero_interval_upper = 1.0f;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->ref_count = 1;
+#line 12914 "ColorTransformation.c"
+}
+
+
+static void hermite_gamma_approximation_function_finalize (HermiteGammaApproximationFunction* obj) {
+ HermiteGammaApproximationFunction * self;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HERMITE_GAMMA_APPROXIMATION_FUNCTION, HermiteGammaApproximationFunction);
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_signal_handlers_destroy (self);
+#line 12924 "ColorTransformation.c"
+}
+
+
+GType hermite_gamma_approximation_function_get_type (void) {
+ static volatile gsize hermite_gamma_approximation_function_type_id__volatile = 0;
+ if (g_once_init_enter (&hermite_gamma_approximation_function_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_hermite_gamma_approximation_function_init, value_hermite_gamma_approximation_function_free_value, value_hermite_gamma_approximation_function_copy_value, value_hermite_gamma_approximation_function_peek_pointer, "p", value_hermite_gamma_approximation_function_collect_value, "p", value_hermite_gamma_approximation_function_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (HermiteGammaApproximationFunctionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hermite_gamma_approximation_function_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HermiteGammaApproximationFunction), 0, (GInstanceInitFunc) hermite_gamma_approximation_function_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType hermite_gamma_approximation_function_type_id;
+ hermite_gamma_approximation_function_type_id = g_type_register_fundamental (g_type_fundamental_next (), "HermiteGammaApproximationFunction", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&hermite_gamma_approximation_function_type_id__volatile, hermite_gamma_approximation_function_type_id);
+ }
+ return hermite_gamma_approximation_function_type_id__volatile;
+}
+
+
+gpointer hermite_gamma_approximation_function_ref (gpointer instance) {
+ HermiteGammaApproximationFunction* self;
+ self = instance;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return instance;
+#line 12949 "ColorTransformation.c"
+}
+
+
+void hermite_gamma_approximation_function_unref (gpointer instance) {
+ HermiteGammaApproximationFunction* self;
+ self = instance;
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ HERMITE_GAMMA_APPROXIMATION_FUNCTION_GET_CLASS (self)->finalize (self);
+#line 1375 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 12962 "ColorTransformation.c"
+ }
+}
+
+
+HighlightDetailTransformation* highlight_detail_transformation_construct (GType object_type, gfloat user_intensity) {
+ HighlightDetailTransformation* self = NULL;
+ gfloat _tmp0_ = 0.0F;
+ gfloat intensity_adj = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+ gfloat effect_shift = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ HermiteGammaApproximationFunction* func = NULL;
+ HermiteGammaApproximationFunction* _tmp4_ = NULL;
+ gfloat* _tmp5_ = NULL;
+#line 1413 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = (HighlightDetailTransformation*) hsv_transformation_construct (object_type, PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS);
+#line 1415 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = user_intensity;
+#line 1415 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->intensity = _tmp0_;
+#line 1416 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->intensity;
+#line 1416 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = CLAMP (_tmp1_ / HIGHLIGHT_DETAIL_TRANSFORMATION_MIN_PARAMETER, 0.0f, 1.0f);
+#line 1416 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ intensity_adj = _tmp2_;
+#line 1418 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = intensity_adj;
+#line 1418 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ effect_shift = HIGHLIGHT_DETAIL_TRANSFORMATION_MAX_EFFECT_SHIFT * _tmp3_;
+#line 1419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = hermite_gamma_approximation_function_new (HIGHLIGHT_DETAIL_TRANSFORMATION_TONAL_WIDTH);
+#line 1419 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ func = _tmp4_;
+#line 1422 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = g_new0 (gfloat, 256);
+#line 1422 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = (g_free (self->priv->remap_table), NULL);
+#line 1422 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = _tmp5_;
+#line 1422 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table_length1 = 256;
+#line 1422 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_remap_table_size_ = self->priv->remap_table_length1;
+#line 13008 "ColorTransformation.c"
+ {
+ gint i = 0;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = 0;
+#line 13013 "ColorTransformation.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = TRUE;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 13020 "ColorTransformation.c"
+ gint _tmp8_ = 0;
+ gfloat x = 0.0F;
+ gint _tmp9_ = 0;
+ gfloat weight = 0.0F;
+ HermiteGammaApproximationFunction* _tmp10_ = NULL;
+ gfloat _tmp11_ = 0.0F;
+ gfloat _tmp12_ = 0.0F;
+ gfloat* _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp14_ = 0;
+ gfloat _tmp15_ = 0.0F;
+ gfloat _tmp16_ = 0.0F;
+ gfloat _tmp17_ = 0.0F;
+ gfloat _tmp18_ = 0.0F;
+ gfloat _tmp19_ = 0.0F;
+ gfloat _tmp20_ = 0.0F;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp6_) {
+#line 13039 "ColorTransformation.c"
+ gint _tmp7_ = 0;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = i;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ i = _tmp7_ + 1;
+#line 13045 "ColorTransformation.c"
+ }
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = FALSE;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = i;
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp8_ < 256)) {
+#line 1423 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 13055 "ColorTransformation.c"
+ }
+#line 1424 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = i;
+#line 1424 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ x = ((gfloat) _tmp9_) / 255.0f;
+#line 1425 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = func;
+#line 1425 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = x;
+#line 1425 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = hermite_gamma_approximation_function_evaluate (_tmp10_, 1.0f - _tmp11_);
+#line 1425 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ weight = _tmp12_;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = self->priv->remap_table;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13__length1 = self->priv->remap_table_length1;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = i;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = weight;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = x;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = effect_shift;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = weight;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = x;
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_[_tmp14_] = (_tmp15_ * (_tmp16_ - _tmp17_)) + ((1.0f - _tmp18_) * _tmp19_);
+#line 1426 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = _tmp13_[_tmp14_];
+#line 13089 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1412 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _hermite_gamma_approximation_function_unref0 (func);
+#line 1412 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return self;
+#line 13097 "ColorTransformation.c"
+}
+
+
+HighlightDetailTransformation* highlight_detail_transformation_new (gfloat user_intensity) {
+#line 1412 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return highlight_detail_transformation_construct (TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, user_intensity);
+#line 13104 "ColorTransformation.c"
+}
+
+
+static void highlight_detail_transformation_real_transform_pixel_hsv (PixelTransformation* base, HSVAnalyticPixel* pixel, HSVAnalyticPixel* result) {
+ HighlightDetailTransformation * self;
+ HSVAnalyticPixel _result_ = {0};
+ HSVAnalyticPixel _tmp0_ = {0};
+ gfloat* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ HSVAnalyticPixel _tmp2_ = {0};
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ gfloat _tmp5_ = 0.0F;
+#line 1430 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation);
+#line 1430 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_if_fail (pixel != NULL);
+#line 1431 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = *pixel;
+#line 1431 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_ = _tmp0_;
+#line 1432 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = self->priv->remap_table;
+#line 1432 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1__length1 = self->priv->remap_table_length1;
+#line 1432 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = *pixel;
+#line 1432 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = _tmp2_.light_value;
+#line 1432 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = _tmp1_[(gint) (_tmp3_ * 255.0f)];
+#line 1432 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = CLAMP (_tmp4_, 0.0f, 1.0f);
+#line 1432 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _result_.light_value = _tmp5_;
+#line 1433 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ *result = _result_;
+#line 1433 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return;
+#line 13144 "ColorTransformation.c"
+}
+
+
+static PixelTransformation* highlight_detail_transformation_real_copy (PixelTransformation* base) {
+ HighlightDetailTransformation * self;
+ PixelTransformation* result = NULL;
+ gfloat _tmp0_ = 0.0F;
+ HighlightDetailTransformation* _tmp1_ = NULL;
+#line 1436 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation);
+#line 1437 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->intensity;
+#line 1437 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = highlight_detail_transformation_new (_tmp0_);
+#line 1437 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation);
+#line 1437 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 13163 "ColorTransformation.c"
+}
+
+
+static gboolean highlight_detail_transformation_real_is_identity (PixelTransformation* base) {
+ HighlightDetailTransformation * self;
+ gboolean result = FALSE;
+ gfloat _tmp0_ = 0.0F;
+#line 1440 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation);
+#line 1441 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->intensity;
+#line 1441 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_ == 0.0f;
+#line 1441 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 13179 "ColorTransformation.c"
+}
+
+
+gfloat highlight_detail_transformation_get_parameter (HighlightDetailTransformation* self) {
+ gfloat result = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+#line 1444 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (IS_HIGHLIGHT_DETAIL_TRANSFORMATION (self), 0.0F);
+#line 1445 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = self->priv->intensity;
+#line 1445 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = _tmp0_;
+#line 1445 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 13194 "ColorTransformation.c"
+}
+
+
+static void highlight_detail_transformation_class_init (HighlightDetailTransformationClass * klass) {
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ highlight_detail_transformation_parent_class = g_type_class_peek_parent (klass);
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->finalize = highlight_detail_transformation_finalize;
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_type_class_add_private (klass, sizeof (HighlightDetailTransformationPrivate));
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->transform_pixel_hsv = highlight_detail_transformation_real_transform_pixel_hsv;
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->copy = highlight_detail_transformation_real_copy;
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ ((PixelTransformationClass *) klass)->is_identity = highlight_detail_transformation_real_is_identity;
+#line 13211 "ColorTransformation.c"
+}
+
+
+static void highlight_detail_transformation_instance_init (HighlightDetailTransformation * self) {
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv = HIGHLIGHT_DETAIL_TRANSFORMATION_GET_PRIVATE (self);
+#line 1406 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->intensity = 0.0f;
+#line 1407 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = NULL;
+#line 1407 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table_length1 = 0;
+#line 1407 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->_remap_table_size_ = self->priv->remap_table_length1;
+#line 13226 "ColorTransformation.c"
+}
+
+
+static void highlight_detail_transformation_finalize (PixelTransformation* obj) {
+ HighlightDetailTransformation * self;
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation);
+#line 1407 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ self->priv->remap_table = (g_free (self->priv->remap_table), NULL);
+#line 1400 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ PIXEL_TRANSFORMATION_CLASS (highlight_detail_transformation_parent_class)->finalize (obj);
+#line 13238 "ColorTransformation.c"
+}
+
+
+GType highlight_detail_transformation_get_type (void) {
+ static volatile gsize highlight_detail_transformation_type_id__volatile = 0;
+ if (g_once_init_enter (&highlight_detail_transformation_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (HighlightDetailTransformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) highlight_detail_transformation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HighlightDetailTransformation), 0, (GInstanceInitFunc) highlight_detail_transformation_instance_init, NULL };
+ GType highlight_detail_transformation_type_id;
+ highlight_detail_transformation_type_id = g_type_register_static (TYPE_HSV_TRANSFORMATION, "HighlightDetailTransformation", &g_define_type_info, 0);
+ g_once_init_leave (&highlight_detail_transformation_type_id__volatile, highlight_detail_transformation_type_id);
+ }
+ return highlight_detail_transformation_type_id__volatile;
+}
+
+
+PixelTransformationBundle* auto_enhance_create_auto_enhance_adjustments (GdkPixbuf* pixbuf) {
+ PixelTransformationBundle* result = NULL;
+ PixelTransformationBundle* adjustments = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ IntensityHistogram* analysis_histogram = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ IntensityHistogram* _tmp2_ = NULL;
+ gfloat pct_in_range = 0.0F;
+ IntensityHistogram* _tmp3_ = NULL;
+ gfloat _tmp4_ = 0.0F;
+ IntensityHistogram* _tmp5_ = NULL;
+ gfloat _tmp6_ = 0.0F;
+ gfloat shadow_range_mean_prob_val = 0.0F;
+ IntensityHistogram* _tmp7_ = NULL;
+ gfloat _tmp8_ = 0.0F;
+ IntensityHistogram* _tmp9_ = NULL;
+ gfloat _tmp10_ = 0.0F;
+ gint shadow_mean_intensity = 0;
+ gboolean _tmp18_ = FALSE;
+ gfloat _tmp19_ = 0.0F;
+ PixelTransformationBundle* _tmp46_ = NULL;
+ HighlightDetailTransformation* _tmp47_ = NULL;
+ HighlightDetailTransformation* _tmp48_ = NULL;
+ PixelTransformationBundle* _tmp49_ = NULL;
+ TemperatureTransformation* _tmp50_ = NULL;
+ TemperatureTransformation* _tmp51_ = NULL;
+ PixelTransformationBundle* _tmp52_ = NULL;
+ TintTransformation* _tmp53_ = NULL;
+ TintTransformation* _tmp54_ = NULL;
+ PixelTransformationBundle* _tmp55_ = NULL;
+ ExposureTransformation* _tmp56_ = NULL;
+ ExposureTransformation* _tmp57_ = NULL;
+ PixelTransformationBundle* _tmp58_ = NULL;
+ SaturationTransformation* _tmp59_ = NULL;
+ SaturationTransformation* _tmp60_ = NULL;
+#line 1458 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 1459 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp0_ = pixel_transformation_bundle_new ();
+#line 1459 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ adjustments = _tmp0_;
+#line 1461 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp1_ = pixbuf;
+#line 1461 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp2_ = intensity_histogram_new (_tmp1_);
+#line 1461 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ analysis_histogram = _tmp2_;
+#line 1464 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp3_ = analysis_histogram;
+#line 1464 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp4_ = intensity_histogram_get_cumulative_probability (_tmp3_, AUTO_ENHANCE_SHADOW_DETECT_MAX_INTENSITY);
+#line 1464 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp5_ = analysis_histogram;
+#line 1464 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp6_ = intensity_histogram_get_cumulative_probability (_tmp5_, AUTO_ENHANCE_SHADOW_DETECT_MIN_INTENSITY);
+#line 1464 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pct_in_range = 100.0f * (_tmp4_ - _tmp6_);
+#line 1470 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp7_ = analysis_histogram;
+#line 1470 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp8_ = intensity_histogram_get_cumulative_probability (_tmp7_, AUTO_ENHANCE_SHADOW_DETECT_MIN_INTENSITY);
+#line 1470 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp9_ = analysis_histogram;
+#line 1470 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp10_ = intensity_histogram_get_cumulative_probability (_tmp9_, AUTO_ENHANCE_SHADOW_DETECT_MAX_INTENSITY);
+#line 1470 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ shadow_range_mean_prob_val = (_tmp8_ + _tmp10_) * 0.5f;
+#line 1473 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ shadow_mean_intensity = AUTO_ENHANCE_SHADOW_DETECT_MIN_INTENSITY;
+#line 13323 "ColorTransformation.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = TRUE;
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 13330 "ColorTransformation.c"
+ gint _tmp13_ = 0;
+ IntensityHistogram* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gfloat _tmp16_ = 0.0F;
+ gfloat _tmp17_ = 0.0F;
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp11_) {
+#line 13338 "ColorTransformation.c"
+ gint _tmp12_ = 0;
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp12_ = shadow_mean_intensity;
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ shadow_mean_intensity = _tmp12_ + 1;
+#line 13344 "ColorTransformation.c"
+ }
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp11_ = FALSE;
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp13_ = shadow_mean_intensity;
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp13_ <= AUTO_ENHANCE_SHADOW_DETECT_MAX_INTENSITY)) {
+#line 1474 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 13354 "ColorTransformation.c"
+ }
+#line 1475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp14_ = analysis_histogram;
+#line 1475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp15_ = shadow_mean_intensity;
+#line 1475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp16_ = intensity_histogram_get_cumulative_probability (_tmp14_, _tmp15_);
+#line 1475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp17_ = shadow_range_mean_prob_val;
+#line 1475 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp16_ >= _tmp17_) {
+#line 1476 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 13368 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp19_ = pct_in_range;
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp19_ > 40.0f) {
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = TRUE;
+#line 13378 "ColorTransformation.c"
+ } else {
+ gboolean _tmp20_ = FALSE;
+ gfloat _tmp21_ = 0.0F;
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp21_ = pct_in_range;
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp21_ > 20.0f) {
+#line 13386 "ColorTransformation.c"
+ gint _tmp22_ = 0;
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp22_ = shadow_mean_intensity;
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = _tmp22_ < AUTO_ENHANCE_EMPIRICAL_DARK;
+#line 13392 "ColorTransformation.c"
+ } else {
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp20_ = FALSE;
+#line 13396 "ColorTransformation.c"
+ }
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp18_ = _tmp20_;
+#line 13400 "ColorTransformation.c"
+ }
+#line 1484 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (_tmp18_) {
+#line 13404 "ColorTransformation.c"
+ gfloat shadow_trans_effect_size = 0.0F;
+ gint _tmp23_ = 0;
+ gfloat _tmp24_ = 0.0F;
+ PixelTransformationBundle* _tmp25_ = NULL;
+ gfloat _tmp26_ = 0.0F;
+ ShadowDetailTransformation* _tmp27_ = NULL;
+ ShadowDetailTransformation* _tmp28_ = NULL;
+ gint discard_point = 0;
+ PixelTransformationBundle* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ ExpansionTransformation* _tmp37_ = NULL;
+ ExpansionTransformation* _tmp38_ = NULL;
+#line 1485 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp23_ = shadow_mean_intensity;
+#line 1485 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ shadow_trans_effect_size = ((((gfloat) AUTO_ENHANCE_SHADOW_DETECT_MAX_INTENSITY) - ((gfloat) _tmp23_)) / ((gfloat) AUTO_ENHANCE_SHADOW_DETECT_INTENSITY_RANGE)) * SHADOW_DETAIL_TRANSFORMATION_MAX_PARAMETER;
+#line 1489 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp24_ = shadow_trans_effect_size;
+#line 1489 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ shadow_trans_effect_size = _tmp24_ * AUTO_ENHANCE_SHADOW_AGGRESSIVENESS_MUL;
+#line 1491 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp25_ = adjustments;
+#line 1491 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp26_ = shadow_trans_effect_size;
+#line 1491 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp27_ = shadow_detail_transformation_new (_tmp26_);
+#line 1491 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp28_ = _tmp27_;
+#line 1491 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp25_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1491 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp28_);
+#line 1495 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ discard_point = 255;
+#line 13439 "ColorTransformation.c"
+ {
+ gboolean _tmp29_ = FALSE;
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = TRUE;
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ while (TRUE) {
+#line 13446 "ColorTransformation.c"
+ gint _tmp31_ = 0;
+ IntensityHistogram* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gfloat _tmp34_ = 0.0F;
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!_tmp29_) {
+#line 13453 "ColorTransformation.c"
+ gint _tmp30_ = 0;
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp30_ = discard_point;
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ discard_point = _tmp30_ - 1;
+#line 13459 "ColorTransformation.c"
+ }
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp29_ = FALSE;
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp31_ = discard_point;
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if (!(_tmp31_ > -1)) {
+#line 1496 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 13469 "ColorTransformation.c"
+ }
+#line 1497 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp32_ = analysis_histogram;
+#line 1497 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp33_ = discard_point;
+#line 1497 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp34_ = intensity_histogram_get_cumulative_probability (_tmp32_, _tmp33_);
+#line 1497 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ if ((1.0f - _tmp34_) > AUTO_ENHANCE_SHADOW_MODE_HIGH_DISCARD_MASS) {
+#line 1499 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ break;
+#line 13481 "ColorTransformation.c"
+ }
+ }
+ }
+#line 1502 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp35_ = adjustments;
+#line 1502 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp36_ = discard_point;
+#line 1502 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp37_ = expansion_transformation_new_from_extrema (0, _tmp36_);
+#line 1502 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp38_ = _tmp37_;
+#line 1502 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp35_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1502 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp38_);
+#line 13497 "ColorTransformation.c"
+ } else {
+ PixelTransformationBundle* _tmp39_ = NULL;
+ IntensityHistogram* _tmp40_ = NULL;
+ ExpansionTransformation* _tmp41_ = NULL;
+ ExpansionTransformation* _tmp42_ = NULL;
+ PixelTransformationBundle* _tmp43_ = NULL;
+ ShadowDetailTransformation* _tmp44_ = NULL;
+ ShadowDetailTransformation* _tmp45_ = NULL;
+#line 1505 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp39_ = adjustments;
+#line 1505 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp40_ = analysis_histogram;
+#line 1505 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp41_ = expansion_transformation_new (_tmp40_);
+#line 1505 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp42_ = _tmp41_;
+#line 1505 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp39_, G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1505 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp42_);
+#line 1506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp43_ = adjustments;
+#line 1506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp44_ = shadow_detail_transformation_new ((gfloat) 0);
+#line 1506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp45_ = _tmp44_;
+#line 1506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp43_, G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1506 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp45_);
+#line 13528 "ColorTransformation.c"
+ }
+#line 1510 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp46_ = adjustments;
+#line 1510 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp47_ = highlight_detail_transformation_new (0.0f);
+#line 1510 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp48_ = _tmp47_;
+#line 1510 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp46_, G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1510 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp48_);
+#line 1511 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp49_ = adjustments;
+#line 1511 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp50_ = temperature_transformation_new (0.0f);
+#line 1511 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp51_ = _tmp50_;
+#line 1511 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp49_, G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1511 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp51_);
+#line 1512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp52_ = adjustments;
+#line 1512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp53_ = tint_transformation_new (0.0f);
+#line 1512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp54_ = _tmp53_;
+#line 1512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp52_, G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1512 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp54_);
+#line 1513 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp55_ = adjustments;
+#line 1513 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp56_ = exposure_transformation_new (0.0f);
+#line 1513 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp57_ = _tmp56_;
+#line 1513 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp55_, G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1513 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp57_);
+#line 1514 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp58_ = adjustments;
+#line 1514 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp59_ = saturation_transformation_new (0.0f);
+#line 1514 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _tmp60_ = _tmp59_;
+#line 1514 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ pixel_transformation_bundle_set (_tmp58_, G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 1514 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _pixel_transformation_unref0 (_tmp60_);
+#line 1516 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ result = adjustments;
+#line 1516 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ _intensity_histogram_unref0 (analysis_histogram);
+#line 1516 "/home/jens/Source/shotwell/src/ColorTransformation.vala"
+ return result;
+#line 13586 "ColorTransformation.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/CommandManager.c b/src/CommandManager.c
new file mode 100644
index 0000000..60cb438
--- /dev/null
+++ b/src/CommandManager.c
@@ -0,0 +1,1290 @@
+/* CommandManager.c generated by valac 0.32.1, the Vala compiler
+ * generated from CommandManager.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_COMMAND_DESCRIPTION (command_description_get_type ())
+#define COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescription))
+#define IS_COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_DESCRIPTION))
+#define COMMAND_DESCRIPTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescriptionIface))
+
+typedef struct _CommandDescription CommandDescription;
+typedef struct _CommandDescriptionIface CommandDescriptionIface;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+typedef struct _CommandPrivate CommandPrivate;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _CommandManagerPrivate CommandManagerPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecCommandManager ParamSpecCommandManager;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _CommandDescriptionIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (CommandDescription* self);
+ gchar* (*get_explanation) (CommandDescription* self);
+};
+
+struct _Command {
+ GObject parent_instance;
+ CommandPrivate * priv;
+};
+
+struct _CommandClass {
+ GObjectClass parent_class;
+ void (*prepare) (Command* self);
+ void (*execute) (Command* self);
+ void (*undo) (Command* self);
+ void (*redo) (Command* self);
+ gboolean (*compress) (Command* self, Command* command);
+ gchar* (*get_name) (Command* self);
+ gchar* (*get_explanation) (Command* self);
+};
+
+struct _CommandPrivate {
+ gchar* name;
+ gchar* explanation;
+ CommandManager* manager;
+};
+
+struct _CommandManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CommandManagerPrivate * priv;
+};
+
+struct _CommandManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (CommandManager *self);
+};
+
+struct _CommandManagerPrivate {
+ gint depth;
+ GeeArrayList* undo_stack;
+ GeeArrayList* redo_stack;
+};
+
+struct _ParamSpecCommandManager {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer command_parent_class = NULL;
+static CommandDescriptionIface* command_command_description_parent_iface = NULL;
+static gpointer command_manager_parent_class = NULL;
+
+GType command_description_get_type (void) G_GNUC_CONST;
+gchar* command_description_get_name (CommandDescription* self);
+gchar* command_description_get_explanation (CommandDescription* self);
+GType command_get_type (void) G_GNUC_CONST;
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+#define COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_COMMAND, CommandPrivate))
+enum {
+ COMMAND_DUMMY_PROPERTY
+};
+Command* command_construct (GType object_type, const gchar* name, const gchar* explanation);
+void command_prepare (Command* self);
+static void command_real_prepare (Command* self);
+void command_execute (Command* self);
+static void command_real_execute (Command* self);
+void command_undo (Command* self);
+static void command_real_undo (Command* self);
+void command_redo (Command* self);
+static void command_real_redo (Command* self);
+gboolean command_compress (Command* self, Command* command);
+static gboolean command_real_compress (Command* self, Command* command);
+gchar* command_get_name (Command* self);
+static gchar* command_real_get_name (Command* self);
+gchar* command_get_explanation (Command* self);
+static gchar* command_real_get_explanation (Command* self);
+CommandManager* command_get_command_manager (Command* self);
+void command_internal_set_command_manager (Command* self, CommandManager* manager);
+static void command_finalize (GObject* obj);
+#define COMMAND_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_COMMAND_MANAGER, CommandManagerPrivate))
+enum {
+ COMMAND_MANAGER_DUMMY_PROPERTY
+};
+#define COMMAND_MANAGER_DEFAULT_DEPTH 20
+CommandManager* command_manager_new (gint depth);
+CommandManager* command_manager_construct (GType object_type, gint depth);
+void command_manager_reset (CommandManager* self);
+void command_manager_execute (CommandManager* self, Command* command);
+static Command* command_manager_top (CommandManager* self, GeeArrayList* stack);
+static void command_manager_push (CommandManager* self, GeeArrayList* stack, Command* command);
+gboolean command_manager_can_undo (CommandManager* self);
+gboolean command_manager_can_redo (CommandManager* self);
+CommandDescription* command_manager_get_undo_description (CommandManager* self);
+gboolean command_manager_undo (CommandManager* self);
+static Command* command_manager_pop (CommandManager* self, GeeArrayList* stack);
+CommandDescription* command_manager_get_redo_description (CommandManager* self);
+gboolean command_manager_redo (CommandManager* self);
+static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void command_manager_finalize (CommandManager* obj);
+
+
+gchar* command_description_get_name (CommandDescription* self) {
+#line 8 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_DESCRIPTION (self), NULL);
+#line 8 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return COMMAND_DESCRIPTION_GET_INTERFACE (self)->get_name (self);
+#line 170 "CommandManager.c"
+}
+
+
+gchar* command_description_get_explanation (CommandDescription* self) {
+#line 10 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_DESCRIPTION (self), NULL);
+#line 10 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return COMMAND_DESCRIPTION_GET_INTERFACE (self)->get_explanation (self);
+#line 179 "CommandManager.c"
+}
+
+
+static void command_description_base_init (CommandDescriptionIface * iface) {
+#line 7 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ static gboolean initialized = FALSE;
+#line 7 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (!initialized) {
+#line 7 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ initialized = TRUE;
+#line 190 "CommandManager.c"
+ }
+}
+
+
+GType command_description_get_type (void) {
+ static volatile gsize command_description_type_id__volatile = 0;
+ if (g_once_init_enter (&command_description_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CommandDescriptionIface), (GBaseInitFunc) command_description_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType command_description_type_id;
+ command_description_type_id = g_type_register_static (G_TYPE_INTERFACE, "CommandDescription", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (command_description_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&command_description_type_id__volatile, command_description_type_id);
+ }
+ return command_description_type_id__volatile;
+}
+
+
+Command* command_construct (GType object_type, const gchar* name, const gchar* explanation) {
+ Command * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 32 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 32 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self = (Command*) g_object_new (object_type, NULL);
+#line 33 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = name;
+#line 33 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 33 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_free0 (self->priv->name);
+#line 33 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv->name = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = explanation;
+#line 34 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 34 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_free0 (self->priv->explanation);
+#line 34 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv->explanation = _tmp3_;
+#line 32 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return self;
+#line 238 "CommandManager.c"
+}
+
+
+static void command_real_prepare (Command* self) {
+}
+
+
+void command_prepare (Command* self) {
+#line 43 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND (self));
+#line 43 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ COMMAND_GET_CLASS (self)->prepare (self);
+#line 251 "CommandManager.c"
+}
+
+
+static void command_real_execute (Command* self) {
+#line 46 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_critical ("Type `%s' does not implement abstract method `command_execute'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 46 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return;
+#line 260 "CommandManager.c"
+}
+
+
+void command_execute (Command* self) {
+#line 46 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND (self));
+#line 46 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ COMMAND_GET_CLASS (self)->execute (self);
+#line 269 "CommandManager.c"
+}
+
+
+static void command_real_undo (Command* self) {
+#line 48 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_critical ("Type `%s' does not implement abstract method `command_undo'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 48 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return;
+#line 278 "CommandManager.c"
+}
+
+
+void command_undo (Command* self) {
+#line 48 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND (self));
+#line 48 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ COMMAND_GET_CLASS (self)->undo (self);
+#line 287 "CommandManager.c"
+}
+
+
+static void command_real_redo (Command* self) {
+#line 51 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_execute (self);
+#line 294 "CommandManager.c"
+}
+
+
+void command_redo (Command* self) {
+#line 50 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND (self));
+#line 50 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ COMMAND_GET_CLASS (self)->redo (self);
+#line 303 "CommandManager.c"
+}
+
+
+static gboolean command_real_compress (Command* self, Command* command) {
+ gboolean result = FALSE;
+#line 56 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 57 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = FALSE;
+#line 57 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 315 "CommandManager.c"
+}
+
+
+gboolean command_compress (Command* self, Command* command) {
+#line 56 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND (self), FALSE);
+#line 56 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return COMMAND_GET_CLASS (self)->compress (self, command);
+#line 324 "CommandManager.c"
+}
+
+
+static gchar* command_real_get_name (Command* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->name;
+#line 61 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 61 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = _tmp1_;
+#line 61 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 340 "CommandManager.c"
+}
+
+
+gchar* command_get_name (Command* self) {
+#line 60 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND (self), NULL);
+#line 60 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return COMMAND_GET_CLASS (self)->get_name (self);
+#line 349 "CommandManager.c"
+}
+
+
+static gchar* command_real_get_explanation (Command* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->explanation;
+#line 65 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 65 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = _tmp1_;
+#line 65 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 365 "CommandManager.c"
+}
+
+
+gchar* command_get_explanation (Command* self) {
+#line 64 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND (self), NULL);
+#line 64 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return COMMAND_GET_CLASS (self)->get_explanation (self);
+#line 374 "CommandManager.c"
+}
+
+
+static gpointer _command_manager_ref0 (gpointer self) {
+#line 69 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return self ? command_manager_ref (self) : NULL;
+#line 381 "CommandManager.c"
+}
+
+
+CommandManager* command_get_command_manager (Command* self) {
+ CommandManager* result = NULL;
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND (self), NULL);
+#line 69 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->manager;
+#line 69 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = _command_manager_ref0 (_tmp0_);
+#line 69 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = _tmp1_;
+#line 69 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 399 "CommandManager.c"
+}
+
+
+void command_internal_set_command_manager (Command* self, CommandManager* manager) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND (self));
+#line 73 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND_MANAGER (manager));
+#line 74 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->manager;
+#line 74 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _vala_assert (_tmp0_ == NULL, "this.manager == null");
+#line 76 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = manager;
+#line 76 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv->manager = _tmp1_;
+#line 418 "CommandManager.c"
+}
+
+
+static void command_class_init (CommandClass * klass) {
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_parent_class = g_type_class_peek_parent (klass);
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_type_class_add_private (klass, sizeof (CommandPrivate));
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandClass *) klass)->prepare = command_real_prepare;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandClass *) klass)->execute = command_real_execute;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandClass *) klass)->undo = command_real_undo;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandClass *) klass)->redo = command_real_redo;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandClass *) klass)->compress = command_real_compress;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandClass *) klass)->get_name = command_real_get_name;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandClass *) klass)->get_explanation = command_real_get_explanation;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ G_OBJECT_CLASS (klass)->finalize = command_finalize;
+#line 443 "CommandManager.c"
+}
+
+
+static void command_command_description_interface_init (CommandDescriptionIface * iface) {
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_command_description_parent_iface = g_type_interface_peek_parent (iface);
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ iface->get_name = (gchar* (*)(CommandDescription*)) command_get_name;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ iface->get_explanation = (gchar* (*)(CommandDescription*)) command_get_explanation;
+#line 454 "CommandManager.c"
+}
+
+
+static void command_instance_init (Command * self) {
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv = COMMAND_GET_PRIVATE (self);
+#line 30 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv->manager = NULL;
+#line 463 "CommandManager.c"
+}
+
+
+static void command_finalize (GObject* obj) {
+ Command * self;
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_COMMAND, Command);
+#line 28 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_free0 (self->priv->name);
+#line 29 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_free0 (self->priv->explanation);
+#line 27 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ G_OBJECT_CLASS (command_parent_class)->finalize (obj);
+#line 477 "CommandManager.c"
+}
+
+
+GType command_get_type (void) {
+ static volatile gsize command_type_id__volatile = 0;
+ if (g_once_init_enter (&command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Command), 0, (GInstanceInitFunc) command_instance_init, NULL };
+ static const GInterfaceInfo command_description_info = { (GInterfaceInitFunc) command_command_description_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType command_type_id;
+ command_type_id = g_type_register_static (G_TYPE_OBJECT, "Command", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_type_add_interface_static (command_type_id, TYPE_COMMAND_DESCRIPTION, &command_description_info);
+ g_once_init_leave (&command_type_id__volatile, command_type_id);
+ }
+ return command_type_id__volatile;
+}
+
+
+CommandManager* command_manager_construct (GType object_type, gint depth) {
+ CommandManager* self = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self = (CommandManager*) g_type_create_instance (object_type);
+#line 90 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = depth;
+#line 90 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _vala_assert (_tmp0_ > 0, "depth > 0");
+#line 92 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = depth;
+#line 92 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv->depth = _tmp1_;
+#line 89 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return self;
+#line 511 "CommandManager.c"
+}
+
+
+CommandManager* command_manager_new (gint depth) {
+#line 89 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return command_manager_construct (TYPE_COMMAND_MANAGER, depth);
+#line 518 "CommandManager.c"
+}
+
+
+void command_manager_reset (CommandManager* self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND_MANAGER (self));
+#line 96 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->undo_stack;
+#line 96 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 97 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = self->priv->redo_stack;
+#line 97 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 99 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_signal_emit_by_name (self, "altered", FALSE, FALSE);
+#line 537 "CommandManager.c"
+}
+
+
+void command_manager_execute (CommandManager* self, Command* command) {
+ Command* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ Command* top_command = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ Command* _tmp3_ = NULL;
+ Command* _tmp4_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ Command* _tmp9_ = NULL;
+ Command* _tmp10_ = NULL;
+ Command* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 102 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND_MANAGER (self));
+#line 102 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND (command));
+#line 104 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = command;
+#line 104 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_internal_set_command_manager (_tmp0_, self);
+#line 107 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = self->priv->redo_stack;
+#line 107 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 110 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = self->priv->undo_stack;
+#line 110 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp3_ = command_manager_top (self, _tmp2_);
+#line 110 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ top_command = _tmp3_;
+#line 111 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp4_ = top_command;
+#line 111 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (_tmp4_ != NULL) {
+#line 576 "CommandManager.c"
+ Command* _tmp5_ = NULL;
+ Command* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 112 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp5_ = top_command;
+#line 112 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp6_ = command;
+#line 112 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp7_ = command_compress (_tmp5_, _tmp6_);
+#line 112 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (_tmp7_) {
+#line 113 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (top_command);
+#line 113 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return;
+#line 592 "CommandManager.c"
+ }
+ }
+#line 117 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp8_ = self->priv->undo_stack;
+#line 117 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp9_ = command;
+#line 117 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_push (self, _tmp8_, _tmp9_);
+#line 119 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp10_ = command;
+#line 119 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_prepare (_tmp10_);
+#line 120 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp11_ = command;
+#line 120 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_execute (_tmp11_);
+#line 123 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp12_ = command_manager_can_undo (self);
+#line 123 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp13_ = command_manager_can_redo (self);
+#line 123 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_signal_emit_by_name (self, "altered", _tmp12_, _tmp13_);
+#line 102 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (top_command);
+#line 617 "CommandManager.c"
+}
+
+
+gboolean command_manager_can_undo (CommandManager* self) {
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 126 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), FALSE);
+#line 127 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->undo_stack;
+#line 127 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 127 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = _tmp1_;
+#line 127 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = _tmp2_ > 0;
+#line 127 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 638 "CommandManager.c"
+}
+
+
+CommandDescription* command_manager_get_undo_description (CommandManager* self) {
+ CommandDescription* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Command* _tmp1_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), NULL);
+#line 131 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->undo_stack;
+#line 131 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = command_manager_top (self, _tmp0_);
+#line 131 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_COMMAND_DESCRIPTION, CommandDescription);
+#line 131 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 656 "CommandManager.c"
+}
+
+
+gboolean command_manager_undo (CommandManager* self) {
+ gboolean result = FALSE;
+ Command* command = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Command* _tmp1_ = NULL;
+ Command* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ Command* _tmp4_ = NULL;
+ Command* _tmp5_ = NULL;
+ Command* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 134 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), FALSE);
+#line 135 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->undo_stack;
+#line 135 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = command_manager_pop (self, _tmp0_);
+#line 135 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command = _tmp1_;
+#line 136 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = command;
+#line 136 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (_tmp2_ == NULL) {
+#line 137 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (command);
+#line 137 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 690 "CommandManager.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp3_ = self->priv->redo_stack;
+#line 140 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp4_ = command;
+#line 140 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_push (self, _tmp3_, _tmp4_);
+#line 143 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp5_ = command;
+#line 143 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_prepare (_tmp5_);
+#line 144 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp6_ = command;
+#line 144 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_undo (_tmp6_);
+#line 147 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp7_ = command_manager_can_undo (self);
+#line 147 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp8_ = command_manager_can_redo (self);
+#line 147 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_signal_emit_by_name (self, "altered", _tmp7_, _tmp8_);
+#line 149 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = TRUE;
+#line 149 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (command);
+#line 149 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 718 "CommandManager.c"
+}
+
+
+gboolean command_manager_can_redo (CommandManager* self) {
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 152 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), FALSE);
+#line 153 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->redo_stack;
+#line 153 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 153 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = _tmp1_;
+#line 153 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = _tmp2_ > 0;
+#line 153 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 739 "CommandManager.c"
+}
+
+
+CommandDescription* command_manager_get_redo_description (CommandManager* self) {
+ CommandDescription* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Command* _tmp1_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), NULL);
+#line 157 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->redo_stack;
+#line 157 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = command_manager_top (self, _tmp0_);
+#line 157 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_COMMAND_DESCRIPTION, CommandDescription);
+#line 157 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 757 "CommandManager.c"
+}
+
+
+gboolean command_manager_redo (CommandManager* self) {
+ gboolean result = FALSE;
+ Command* command = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Command* _tmp1_ = NULL;
+ Command* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ Command* _tmp4_ = NULL;
+ Command* _tmp5_ = NULL;
+ Command* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 160 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), FALSE);
+#line 161 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = self->priv->redo_stack;
+#line 161 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = command_manager_pop (self, _tmp0_);
+#line 161 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command = _tmp1_;
+#line 162 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = command;
+#line 162 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (_tmp2_ == NULL) {
+#line 163 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = FALSE;
+#line 163 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (command);
+#line 163 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 791 "CommandManager.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp3_ = self->priv->undo_stack;
+#line 166 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp4_ = command;
+#line 166 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_push (self, _tmp3_, _tmp4_);
+#line 169 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp5_ = command;
+#line 169 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_prepare (_tmp5_);
+#line 170 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp6_ = command;
+#line 170 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_redo (_tmp6_);
+#line 173 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp7_ = command_manager_can_undo (self);
+#line 173 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp8_ = command_manager_can_redo (self);
+#line 173 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_signal_emit_by_name (self, "altered", _tmp7_, _tmp8_);
+#line 175 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = TRUE;
+#line 175 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (command);
+#line 175 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 819 "CommandManager.c"
+}
+
+
+static Command* command_manager_top (CommandManager* self, GeeArrayList* stack) {
+ Command* result = NULL;
+ Command* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 178 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), NULL);
+#line 178 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (GEE_IS_ARRAY_LIST (stack), NULL);
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = stack;
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp3_ = _tmp2_;
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (_tmp3_ > 0) {
+#line 841 "CommandManager.c"
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gpointer _tmp8_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp4_ = stack;
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp5_ = stack;
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp6_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp7_ = _tmp6_;
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp8_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp7_ - 1);
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (_tmp0_);
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = (Command*) _tmp8_;
+#line 861 "CommandManager.c"
+ } else {
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (_tmp0_);
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = NULL;
+#line 867 "CommandManager.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = _tmp0_;
+#line 179 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 873 "CommandManager.c"
+}
+
+
+static void command_manager_push (CommandManager* self, GeeArrayList* stack, Command* command) {
+ GeeArrayList* _tmp0_ = NULL;
+ Command* _tmp1_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND_MANAGER (self));
+#line 182 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (GEE_IS_ARRAY_LIST (stack));
+#line 182 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (IS_COMMAND (command));
+#line 183 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = stack;
+#line 183 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = command;
+#line 183 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 186 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ while (TRUE) {
+#line 894 "CommandManager.c"
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GeeArrayList* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Command* _tmp8_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = stack;
+#line 186 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 186 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp4_ = _tmp3_;
+#line 186 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp5_ = self->priv->depth;
+#line 186 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (!(_tmp4_ >= _tmp5_)) {
+#line 186 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ break;
+#line 914 "CommandManager.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp6_ = stack;
+#line 187 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp7_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 187 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp8_ = (Command*) _tmp7_;
+#line 187 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (_tmp8_);
+#line 924 "CommandManager.c"
+ }
+}
+
+
+static Command* command_manager_pop (CommandManager* self, GeeArrayList* stack) {
+ Command* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ Command* command = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gpointer _tmp7_ = NULL;
+ gboolean removed = FALSE;
+ GeeArrayList* _tmp8_ = NULL;
+ Command* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+#line 190 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (IS_COMMAND_MANAGER (self), NULL);
+#line 190 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (GEE_IS_ARRAY_LIST (stack), NULL);
+#line 191 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = stack;
+#line 191 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 191 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp2_ = _tmp1_;
+#line 191 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (_tmp2_ <= 0) {
+#line 192 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = NULL;
+#line 192 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 961 "CommandManager.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp3_ = stack;
+#line 194 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp4_ = stack;
+#line 194 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp5_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 194 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp6_ = _tmp5_;
+#line 194 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp7_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp6_ - 1);
+#line 194 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command = (Command*) _tmp7_;
+#line 195 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp8_ = stack;
+#line 195 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp9_ = command;
+#line 195 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp10_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp9_);
+#line 195 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ removed = _tmp10_;
+#line 196 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp11_ = removed;
+#line 196 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _vala_assert (_tmp11_, "removed");
+#line 198 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ result = command;
+#line 198 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return result;
+#line 991 "CommandManager.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__BOOLEAN_BOOLEAN) (gpointer data1, gboolean arg_1, gboolean arg_2, gpointer data2);
+ register GMarshalFunc_VOID__BOOLEAN_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ data1 = closure->data;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 1010 "CommandManager.c"
+ } else {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ data2 = closure->data;
+#line 1016 "CommandManager.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ callback = (GMarshalFunc_VOID__BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ callback (data1, g_value_get_boolean (param_values + 1), g_value_get_boolean (param_values + 2), data2);
+#line 1022 "CommandManager.c"
+}
+
+
+static void value_command_manager_init (GValue* value) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ value->data[0].v_pointer = NULL;
+#line 1029 "CommandManager.c"
+}
+
+
+static void value_command_manager_free_value (GValue* value) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (value->data[0].v_pointer) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_unref (value->data[0].v_pointer);
+#line 1038 "CommandManager.c"
+ }
+}
+
+
+static void value_command_manager_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (src_value->data[0].v_pointer) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ dest_value->data[0].v_pointer = command_manager_ref (src_value->data[0].v_pointer);
+#line 1048 "CommandManager.c"
+ } else {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1052 "CommandManager.c"
+ }
+}
+
+
+static gpointer value_command_manager_peek_pointer (const GValue* value) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return value->data[0].v_pointer;
+#line 1060 "CommandManager.c"
+}
+
+
+static gchar* value_command_manager_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (collect_values[0].v_pointer) {
+#line 1067 "CommandManager.c"
+ CommandManager* object;
+ object = collect_values[0].v_pointer;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1074 "CommandManager.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1078 "CommandManager.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ value->data[0].v_pointer = command_manager_ref (object);
+#line 1082 "CommandManager.c"
+ } else {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ value->data[0].v_pointer = NULL;
+#line 1086 "CommandManager.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return NULL;
+#line 1090 "CommandManager.c"
+}
+
+
+static gchar* value_command_manager_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ CommandManager** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (!object_p) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1101 "CommandManager.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (!value->data[0].v_pointer) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ *object_p = NULL;
+#line 1107 "CommandManager.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1111 "CommandManager.c"
+ } else {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ *object_p = command_manager_ref (value->data[0].v_pointer);
+#line 1115 "CommandManager.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return NULL;
+#line 1119 "CommandManager.c"
+}
+
+
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecCommandManager* spec;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_COMMAND_MANAGER), NULL);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return G_PARAM_SPEC (spec);
+#line 1133 "CommandManager.c"
+}
+
+
+gpointer value_get_command_manager (const GValue* value) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_COMMAND_MANAGER), NULL);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return value->data[0].v_pointer;
+#line 1142 "CommandManager.c"
+}
+
+
+void value_set_command_manager (GValue* value, gpointer v_object) {
+ CommandManager* old;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_COMMAND_MANAGER));
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ old = value->data[0].v_pointer;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (v_object) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_COMMAND_MANAGER));
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ value->data[0].v_pointer = v_object;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_ref (value->data[0].v_pointer);
+#line 1162 "CommandManager.c"
+ } else {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ value->data[0].v_pointer = NULL;
+#line 1166 "CommandManager.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (old) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_unref (old);
+#line 1172 "CommandManager.c"
+ }
+}
+
+
+void value_take_command_manager (GValue* value, gpointer v_object) {
+ CommandManager* old;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_COMMAND_MANAGER));
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ old = value->data[0].v_pointer;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (v_object) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_COMMAND_MANAGER));
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ value->data[0].v_pointer = v_object;
+#line 1191 "CommandManager.c"
+ } else {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ value->data[0].v_pointer = NULL;
+#line 1195 "CommandManager.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (old) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_unref (old);
+#line 1201 "CommandManager.c"
+ }
+}
+
+
+static void command_manager_class_init (CommandManagerClass * klass) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ command_manager_parent_class = g_type_class_peek_parent (klass);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ ((CommandManagerClass *) klass)->finalize = command_manager_finalize;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_type_class_add_private (klass, sizeof (CommandManagerPrivate));
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_signal_new ("altered", TYPE_COMMAND_MANAGER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+#line 1215 "CommandManager.c"
+}
+
+
+static void command_manager_instance_init (CommandManager * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv = COMMAND_MANAGER_GET_PRIVATE (self);
+#line 84 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp0_ = gee_array_list_new (TYPE_COMMAND, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 84 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv->undo_stack = _tmp0_;
+#line 85 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _tmp1_ = gee_array_list_new (TYPE_COMMAND, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 85 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->priv->redo_stack = _tmp1_;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self->ref_count = 1;
+#line 1234 "CommandManager.c"
+}
+
+
+static void command_manager_finalize (CommandManager* obj) {
+ CommandManager * self;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_COMMAND_MANAGER, CommandManager);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_signal_handlers_destroy (self);
+#line 84 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (self->priv->undo_stack);
+#line 85 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ _g_object_unref0 (self->priv->redo_stack);
+#line 1248 "CommandManager.c"
+}
+
+
+GType command_manager_get_type (void) {
+ static volatile gsize command_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&command_manager_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_command_manager_init, value_command_manager_free_value, value_command_manager_copy_value, value_command_manager_peek_pointer, "p", value_command_manager_collect_value, "p", value_command_manager_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (CommandManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) command_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CommandManager), 0, (GInstanceInitFunc) command_manager_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType command_manager_type_id;
+ command_manager_type_id = g_type_register_fundamental (g_type_fundamental_next (), "CommandManager", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&command_manager_type_id__volatile, command_manager_type_id);
+ }
+ return command_manager_type_id__volatile;
+}
+
+
+gpointer command_manager_ref (gpointer instance) {
+ CommandManager* self;
+ self = instance;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ return instance;
+#line 1273 "CommandManager.c"
+}
+
+
+void command_manager_unref (gpointer instance) {
+ CommandManager* self;
+ self = instance;
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ COMMAND_MANAGER_GET_CLASS (self)->finalize (self);
+#line 80 "/home/jens/Source/shotwell/src/CommandManager.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1286 "CommandManager.c"
+ }
+}
+
+
+
diff --git a/src/Commands.c b/src/Commands.c
new file mode 100644
index 0000000..a9d9bc5
--- /dev/null
+++ b/src/Commands.c
@@ -0,0 +1,22110 @@
+/* Commands.c generated by valac 0.32.1, the Vala compiler
+ * generated from Commands.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* PageCommand stores the current page when a Command is created. Subclasses can call return_to_page()*/
+/* if it's appropriate to return to that page when executing an undo() or redo().*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <float.h>
+#include <math.h>
+#include <gio/gio.h>
+#include <glib/gi18n-lib.h>
+#include <gdk/gdk.h>
+#include <time.h>
+
+
+#define TYPE_COMMAND_DESCRIPTION (command_description_get_type ())
+#define COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescription))
+#define IS_COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_DESCRIPTION))
+#define COMMAND_DESCRIPTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescriptionIface))
+
+typedef struct _CommandDescription CommandDescription;
+typedef struct _CommandDescriptionIface CommandDescriptionIface;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+typedef struct _CommandPrivate CommandPrivate;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+typedef struct _PageCommandPrivate PageCommandPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+
+#define TYPE_EDITING_HOST_PAGE (editing_host_page_get_type ())
+#define EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPage))
+#define EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+#define IS_EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDITING_HOST_PAGE))
+#define IS_EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDITING_HOST_PAGE))
+#define EDITING_HOST_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+
+typedef struct _EditingHostPage EditingHostPage;
+typedef struct _EditingHostPageClass EditingHostPageClass;
+
+#define TYPE_LIBRARY_PHOTO_PAGE (library_photo_page_get_type ())
+#define LIBRARY_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage))
+#define LIBRARY_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPageClass))
+#define IS_LIBRARY_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_PAGE))
+#define IS_LIBRARY_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_PAGE))
+#define LIBRARY_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPageClass))
+
+typedef struct _LibraryPhotoPage LibraryPhotoPage;
+typedef struct _LibraryPhotoPageClass LibraryPhotoPageClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+
+#define TYPE_THUMBNAIL (thumbnail_get_type ())
+#define THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL, Thumbnail))
+#define THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL, ThumbnailClass))
+#define IS_THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL))
+#define IS_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL))
+#define THUMBNAIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL, ThumbnailClass))
+
+typedef struct _Thumbnail Thumbnail;
+typedef struct _ThumbnailClass ThumbnailClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+typedef struct _SingleDataSourceCommandPrivate SingleDataSourceCommandPrivate;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_SIMPLE_PROXYABLE_COMMAND (simple_proxyable_command_get_type ())
+#define SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand))
+#define SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+#define IS_SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define IS_SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define SIMPLE_PROXYABLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+
+typedef struct _SimpleProxyableCommand SimpleProxyableCommand;
+typedef struct _SimpleProxyableCommandClass SimpleProxyableCommandClass;
+typedef struct _SimpleProxyableCommandPrivate SimpleProxyableCommandPrivate;
+
+#define TYPE_SOURCE_PROXY (source_proxy_get_type ())
+#define SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_PROXY, SourceProxy))
+#define SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_PROXY, SourceProxyClass))
+#define IS_SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_PROXY))
+#define IS_SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_PROXY))
+#define SOURCE_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_PROXY, SourceProxyClass))
+
+typedef struct _SourceProxy SourceProxy;
+typedef struct _SourceProxyClass SourceProxyClass;
+#define _source_proxy_unref0(var) ((var == NULL) ? NULL : (var = (source_proxy_unref (var), NULL)))
+
+#define TYPE_PROXYABLE (proxyable_get_type ())
+#define PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROXYABLE, Proxyable))
+#define IS_PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROXYABLE))
+#define PROXYABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_PROXYABLE, ProxyableIface))
+
+typedef struct _Proxyable Proxyable;
+typedef struct _ProxyableIface ProxyableIface;
+
+#define TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND (single_photo_transformation_command_get_type ())
+#define SINGLE_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND, SinglePhotoTransformationCommand))
+#define SINGLE_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND, SinglePhotoTransformationCommandClass))
+#define IS_SINGLE_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND))
+#define IS_SINGLE_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND))
+#define SINGLE_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND, SinglePhotoTransformationCommandClass))
+
+typedef struct _SinglePhotoTransformationCommand SinglePhotoTransformationCommand;
+typedef struct _SinglePhotoTransformationCommandClass SinglePhotoTransformationCommandClass;
+typedef struct _SinglePhotoTransformationCommandPrivate SinglePhotoTransformationCommandPrivate;
+
+#define TYPE_PHOTO_TRANSFORMATION_STATE (photo_transformation_state_get_type ())
+#define PHOTO_TRANSFORMATION_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationState))
+#define PHOTO_TRANSFORMATION_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationStateClass))
+#define IS_PHOTO_TRANSFORMATION_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TRANSFORMATION_STATE))
+#define IS_PHOTO_TRANSFORMATION_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TRANSFORMATION_STATE))
+#define PHOTO_TRANSFORMATION_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationStateClass))
+
+typedef struct _PhotoTransformationState PhotoTransformationState;
+typedef struct _PhotoTransformationStateClass PhotoTransformationStateClass;
+
+#define TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND (generic_photo_transformation_command_get_type ())
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+
+typedef struct _GenericPhotoTransformationCommand GenericPhotoTransformationCommand;
+typedef struct _GenericPhotoTransformationCommandClass GenericPhotoTransformationCommandClass;
+typedef struct _GenericPhotoTransformationCommandPrivate GenericPhotoTransformationCommandPrivate;
+
+#define TYPE_MULTIPLE_DATA_SOURCE_COMMAND (multiple_data_source_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand))
+#define MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+
+typedef struct _MultipleDataSourceCommand MultipleDataSourceCommand;
+typedef struct _MultipleDataSourceCommandClass MultipleDataSourceCommandClass;
+typedef struct _MultipleDataSourceCommandPrivate MultipleDataSourceCommandPrivate;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+
+#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
+#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
+#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
+#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
+#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+
+typedef struct _ProgressDialog ProgressDialog;
+typedef struct _ProgressDialogClass ProgressDialogClass;
+
+#define TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND (multiple_data_source_at_once_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommand))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+
+typedef struct _MultipleDataSourceAtOnceCommand MultipleDataSourceAtOnceCommand;
+typedef struct _MultipleDataSourceAtOnceCommandClass MultipleDataSourceAtOnceCommandClass;
+typedef struct _MultipleDataSourceAtOnceCommandPrivate MultipleDataSourceAtOnceCommandPrivate;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND (multiple_photo_transformation_command_get_type ())
+#define MULTIPLE_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommand))
+#define MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommandClass))
+#define IS_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND))
+#define IS_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND))
+#define MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommandClass))
+
+typedef struct _MultiplePhotoTransformationCommand MultiplePhotoTransformationCommand;
+typedef struct _MultiplePhotoTransformationCommandClass MultiplePhotoTransformationCommandClass;
+typedef struct _MultiplePhotoTransformationCommandPrivate MultiplePhotoTransformationCommandPrivate;
+
+#define TYPE_ROTATE_SINGLE_COMMAND (rotate_single_command_get_type ())
+#define ROTATE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommand))
+#define ROTATE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommandClass))
+#define IS_ROTATE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ROTATE_SINGLE_COMMAND))
+#define IS_ROTATE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ROTATE_SINGLE_COMMAND))
+#define ROTATE_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommandClass))
+
+typedef struct _RotateSingleCommand RotateSingleCommand;
+typedef struct _RotateSingleCommandClass RotateSingleCommandClass;
+typedef struct _RotateSingleCommandPrivate RotateSingleCommandPrivate;
+
+#define TYPE_ROTATION (rotation_get_type ())
+
+#define TYPE_ROTATE_MULTIPLE_COMMAND (rotate_multiple_command_get_type ())
+#define ROTATE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommand))
+#define ROTATE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommandClass))
+#define IS_ROTATE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ROTATE_MULTIPLE_COMMAND))
+#define IS_ROTATE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ROTATE_MULTIPLE_COMMAND))
+#define ROTATE_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommandClass))
+
+typedef struct _RotateMultipleCommand RotateMultipleCommand;
+typedef struct _RotateMultipleCommandClass RotateMultipleCommandClass;
+typedef struct _RotateMultipleCommandPrivate RotateMultipleCommandPrivate;
+
+#define TYPE_EDIT_TITLE_COMMAND (edit_title_command_get_type ())
+#define EDIT_TITLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_TITLE_COMMAND, EditTitleCommand))
+#define EDIT_TITLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_TITLE_COMMAND, EditTitleCommandClass))
+#define IS_EDIT_TITLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_TITLE_COMMAND))
+#define IS_EDIT_TITLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_TITLE_COMMAND))
+#define EDIT_TITLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_TITLE_COMMAND, EditTitleCommandClass))
+
+typedef struct _EditTitleCommand EditTitleCommand;
+typedef struct _EditTitleCommandClass EditTitleCommandClass;
+typedef struct _EditTitleCommandPrivate EditTitleCommandPrivate;
+
+#define TYPE_EDIT_COMMENT_COMMAND (edit_comment_command_get_type ())
+#define EDIT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_COMMENT_COMMAND, EditCommentCommand))
+#define EDIT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_COMMENT_COMMAND, EditCommentCommandClass))
+#define IS_EDIT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_COMMENT_COMMAND))
+#define IS_EDIT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_COMMENT_COMMAND))
+#define EDIT_COMMENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_COMMENT_COMMAND, EditCommentCommandClass))
+
+typedef struct _EditCommentCommand EditCommentCommand;
+typedef struct _EditCommentCommandClass EditCommentCommandClass;
+typedef struct _EditCommentCommandPrivate EditCommentCommandPrivate;
+
+#define TYPE_EDIT_MULTIPLE_TITLES_COMMAND (edit_multiple_titles_command_get_type ())
+#define EDIT_MULTIPLE_TITLES_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommand))
+#define EDIT_MULTIPLE_TITLES_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommandClass))
+#define IS_EDIT_MULTIPLE_TITLES_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_MULTIPLE_TITLES_COMMAND))
+#define IS_EDIT_MULTIPLE_TITLES_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_MULTIPLE_TITLES_COMMAND))
+#define EDIT_MULTIPLE_TITLES_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommandClass))
+
+typedef struct _EditMultipleTitlesCommand EditMultipleTitlesCommand;
+typedef struct _EditMultipleTitlesCommandClass EditMultipleTitlesCommandClass;
+typedef struct _EditMultipleTitlesCommandPrivate EditMultipleTitlesCommandPrivate;
+
+#define TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND (edit_multiple_comments_command_get_type ())
+#define EDIT_MULTIPLE_COMMENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommand))
+#define EDIT_MULTIPLE_COMMENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommandClass))
+#define IS_EDIT_MULTIPLE_COMMENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND))
+#define IS_EDIT_MULTIPLE_COMMENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND))
+#define EDIT_MULTIPLE_COMMENTS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommandClass))
+
+typedef struct _EditMultipleCommentsCommand EditMultipleCommentsCommand;
+typedef struct _EditMultipleCommentsCommandClass EditMultipleCommentsCommandClass;
+typedef struct _EditMultipleCommentsCommandPrivate EditMultipleCommentsCommandPrivate;
+
+#define TYPE_RENAME_EVENT_COMMAND (rename_event_command_get_type ())
+#define RENAME_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RENAME_EVENT_COMMAND, RenameEventCommand))
+#define RENAME_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RENAME_EVENT_COMMAND, RenameEventCommandClass))
+#define IS_RENAME_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RENAME_EVENT_COMMAND))
+#define IS_RENAME_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RENAME_EVENT_COMMAND))
+#define RENAME_EVENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RENAME_EVENT_COMMAND, RenameEventCommandClass))
+
+typedef struct _RenameEventCommand RenameEventCommand;
+typedef struct _RenameEventCommandClass RenameEventCommandClass;
+typedef struct _RenameEventCommandPrivate RenameEventCommandPrivate;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_EDIT_EVENT_COMMENT_COMMAND (edit_event_comment_command_get_type ())
+#define EDIT_EVENT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommand))
+#define EDIT_EVENT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommandClass))
+#define IS_EDIT_EVENT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND))
+#define IS_EDIT_EVENT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_EVENT_COMMENT_COMMAND))
+#define EDIT_EVENT_COMMENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommandClass))
+
+typedef struct _EditEventCommentCommand EditEventCommentCommand;
+typedef struct _EditEventCommentCommandClass EditEventCommentCommandClass;
+typedef struct _EditEventCommentCommandPrivate EditEventCommentCommandPrivate;
+
+#define TYPE_SET_KEY_PHOTO_COMMAND (set_key_photo_command_get_type ())
+#define SET_KEY_PHOTO_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_KEY_PHOTO_COMMAND, SetKeyPhotoCommand))
+#define SET_KEY_PHOTO_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_KEY_PHOTO_COMMAND, SetKeyPhotoCommandClass))
+#define IS_SET_KEY_PHOTO_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_KEY_PHOTO_COMMAND))
+#define IS_SET_KEY_PHOTO_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_KEY_PHOTO_COMMAND))
+#define SET_KEY_PHOTO_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_KEY_PHOTO_COMMAND, SetKeyPhotoCommandClass))
+
+typedef struct _SetKeyPhotoCommand SetKeyPhotoCommand;
+typedef struct _SetKeyPhotoCommandClass SetKeyPhotoCommandClass;
+typedef struct _SetKeyPhotoCommandPrivate SetKeyPhotoCommandPrivate;
+
+#define TYPE_REVERT_SINGLE_COMMAND (revert_single_command_get_type ())
+#define REVERT_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommand))
+#define REVERT_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommandClass))
+#define IS_REVERT_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REVERT_SINGLE_COMMAND))
+#define IS_REVERT_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REVERT_SINGLE_COMMAND))
+#define REVERT_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommandClass))
+
+typedef struct _RevertSingleCommand RevertSingleCommand;
+typedef struct _RevertSingleCommandClass RevertSingleCommandClass;
+typedef struct _RevertSingleCommandPrivate RevertSingleCommandPrivate;
+
+#define TYPE_REVERT_MULTIPLE_COMMAND (revert_multiple_command_get_type ())
+#define REVERT_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REVERT_MULTIPLE_COMMAND, RevertMultipleCommand))
+#define REVERT_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REVERT_MULTIPLE_COMMAND, RevertMultipleCommandClass))
+#define IS_REVERT_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REVERT_MULTIPLE_COMMAND))
+#define IS_REVERT_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REVERT_MULTIPLE_COMMAND))
+#define REVERT_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REVERT_MULTIPLE_COMMAND, RevertMultipleCommandClass))
+
+typedef struct _RevertMultipleCommand RevertMultipleCommand;
+typedef struct _RevertMultipleCommandClass RevertMultipleCommandClass;
+typedef struct _RevertMultipleCommandPrivate RevertMultipleCommandPrivate;
+
+#define TYPE_ENHANCE_SINGLE_COMMAND (enhance_single_command_get_type ())
+#define ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommand))
+#define ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))
+#define IS_ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENHANCE_SINGLE_COMMAND))
+#define IS_ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENHANCE_SINGLE_COMMAND))
+#define ENHANCE_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))
+
+typedef struct _EnhanceSingleCommand EnhanceSingleCommand;
+typedef struct _EnhanceSingleCommandClass EnhanceSingleCommandClass;
+typedef struct _EnhanceSingleCommandPrivate EnhanceSingleCommandPrivate;
+
+#define TYPE_ENHANCE_MULTIPLE_COMMAND (enhance_multiple_command_get_type ())
+#define ENHANCE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENHANCE_MULTIPLE_COMMAND, EnhanceMultipleCommand))
+#define ENHANCE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENHANCE_MULTIPLE_COMMAND, EnhanceMultipleCommandClass))
+#define IS_ENHANCE_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENHANCE_MULTIPLE_COMMAND))
+#define IS_ENHANCE_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENHANCE_MULTIPLE_COMMAND))
+#define ENHANCE_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENHANCE_MULTIPLE_COMMAND, EnhanceMultipleCommandClass))
+
+typedef struct _EnhanceMultipleCommand EnhanceMultipleCommand;
+typedef struct _EnhanceMultipleCommandClass EnhanceMultipleCommandClass;
+typedef struct _EnhanceMultipleCommandPrivate EnhanceMultipleCommandPrivate;
+
+#define TYPE_STRAIGHTEN_COMMAND (straighten_command_get_type ())
+#define STRAIGHTEN_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STRAIGHTEN_COMMAND, StraightenCommand))
+#define STRAIGHTEN_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STRAIGHTEN_COMMAND, StraightenCommandClass))
+#define IS_STRAIGHTEN_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STRAIGHTEN_COMMAND))
+#define IS_STRAIGHTEN_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STRAIGHTEN_COMMAND))
+#define STRAIGHTEN_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STRAIGHTEN_COMMAND, StraightenCommandClass))
+
+typedef struct _StraightenCommand StraightenCommand;
+typedef struct _StraightenCommandClass StraightenCommandClass;
+typedef struct _StraightenCommandPrivate StraightenCommandPrivate;
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+
+#define TYPE_CROP_COMMAND (crop_command_get_type ())
+#define CROP_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CROP_COMMAND, CropCommand))
+#define CROP_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CROP_COMMAND, CropCommandClass))
+#define IS_CROP_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CROP_COMMAND))
+#define IS_CROP_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CROP_COMMAND))
+#define CROP_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CROP_COMMAND, CropCommandClass))
+
+typedef struct _CropCommand CropCommand;
+typedef struct _CropCommandClass CropCommandClass;
+typedef struct _CropCommandPrivate CropCommandPrivate;
+
+#define TYPE_ADJUST_COLORS_SINGLE_COMMAND (adjust_colors_single_command_get_type ())
+#define ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommand))
+#define ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))
+#define IS_ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
+#define IS_ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
+#define ADJUST_COLORS_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))
+
+typedef struct _AdjustColorsSingleCommand AdjustColorsSingleCommand;
+typedef struct _AdjustColorsSingleCommandClass AdjustColorsSingleCommandClass;
+typedef struct _AdjustColorsSingleCommandPrivate AdjustColorsSingleCommandPrivate;
+
+#define TYPE_PIXEL_TRANSFORMATION_BUNDLE (pixel_transformation_bundle_get_type ())
+#define PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundle))
+#define PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define PIXEL_TRANSFORMATION_BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+
+typedef struct _PixelTransformationBundle PixelTransformationBundle;
+typedef struct _PixelTransformationBundleClass PixelTransformationBundleClass;
+#define _pixel_transformation_bundle_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_bundle_unref (var), NULL)))
+
+#define TYPE_ADJUST_COLORS_MULTIPLE_COMMAND (adjust_colors_multiple_command_get_type ())
+#define ADJUST_COLORS_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommand))
+#define ADJUST_COLORS_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommandClass))
+#define IS_ADJUST_COLORS_MULTIPLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND))
+#define IS_ADJUST_COLORS_MULTIPLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND))
+#define ADJUST_COLORS_MULTIPLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommandClass))
+
+typedef struct _AdjustColorsMultipleCommand AdjustColorsMultipleCommand;
+typedef struct _AdjustColorsMultipleCommandClass AdjustColorsMultipleCommandClass;
+typedef struct _AdjustColorsMultipleCommandPrivate AdjustColorsMultipleCommandPrivate;
+
+#define TYPE_REDEYE_COMMAND (redeye_command_get_type ())
+#define REDEYE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REDEYE_COMMAND, RedeyeCommand))
+#define REDEYE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REDEYE_COMMAND, RedeyeCommandClass))
+#define IS_REDEYE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REDEYE_COMMAND))
+#define IS_REDEYE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REDEYE_COMMAND))
+#define REDEYE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REDEYE_COMMAND, RedeyeCommandClass))
+
+typedef struct _RedeyeCommand RedeyeCommand;
+typedef struct _RedeyeCommandClass RedeyeCommandClass;
+typedef struct _RedeyeCommandPrivate RedeyeCommandPrivate;
+
+#define EDITING_TOOLS_TYPE_REDEYE_INSTANCE (editing_tools_redeye_instance_get_type ())
+typedef struct _EditingToolsRedeyeInstance EditingToolsRedeyeInstance;
+
+#define TYPE_MOVE_PHOTOS_COMMAND (move_photos_command_get_type ())
+#define MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand))
+#define MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+#define IS_MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOVE_PHOTOS_COMMAND))
+#define IS_MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOVE_PHOTOS_COMMAND))
+#define MOVE_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+
+typedef struct _MovePhotosCommand MovePhotosCommand;
+typedef struct _MovePhotosCommandClass MovePhotosCommandClass;
+typedef struct _MovePhotosCommandPrivate MovePhotosCommandPrivate;
+
+#define MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND (move_photos_command_real_move_photos_command_get_type ())
+#define MOVE_PHOTOS_COMMAND_REAL_MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommand))
+#define MOVE_PHOTOS_COMMAND_REAL_MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommandClass))
+#define MOVE_PHOTOS_COMMAND_IS_REAL_MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND))
+#define MOVE_PHOTOS_COMMAND_IS_REAL_MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND))
+#define MOVE_PHOTOS_COMMAND_REAL_MOVE_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommandClass))
+
+typedef struct _MovePhotosCommandRealMovePhotosCommand MovePhotosCommandRealMovePhotosCommand;
+typedef struct _MovePhotosCommandRealMovePhotosCommandClass MovePhotosCommandRealMovePhotosCommandClass;
+typedef struct _MovePhotosCommandRealMovePhotosCommandPrivate MovePhotosCommandRealMovePhotosCommandPrivate;
+
+#define TYPE_EVENT_PAGE (event_page_get_type ())
+#define EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_PAGE, EventPage))
+#define EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_PAGE, EventPageClass))
+#define IS_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_PAGE))
+#define IS_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_PAGE))
+#define EVENT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_PAGE, EventPageClass))
+
+typedef struct _EventPage EventPage;
+typedef struct _EventPageClass EventPageClass;
+
+#define TYPE_NEW_EVENT_COMMAND (new_event_command_get_type ())
+#define NEW_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NEW_EVENT_COMMAND, NewEventCommand))
+#define NEW_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NEW_EVENT_COMMAND, NewEventCommandClass))
+#define IS_NEW_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NEW_EVENT_COMMAND))
+#define IS_NEW_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NEW_EVENT_COMMAND))
+#define NEW_EVENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NEW_EVENT_COMMAND, NewEventCommandClass))
+
+typedef struct _NewEventCommand NewEventCommand;
+typedef struct _NewEventCommandClass NewEventCommandClass;
+typedef struct _NewEventCommandPrivate NewEventCommandPrivate;
+
+#define TYPE_SET_EVENT_COMMAND (set_event_command_get_type ())
+#define SET_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_EVENT_COMMAND, SetEventCommand))
+#define SET_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_EVENT_COMMAND, SetEventCommandClass))
+#define IS_SET_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_EVENT_COMMAND))
+#define IS_SET_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_EVENT_COMMAND))
+#define SET_EVENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_EVENT_COMMAND, SetEventCommandClass))
+
+typedef struct _SetEventCommand SetEventCommand;
+typedef struct _SetEventCommandClass SetEventCommandClass;
+typedef struct _SetEventCommandPrivate SetEventCommandPrivate;
+
+#define TYPE_MERGE_EVENTS_COMMAND (merge_events_command_get_type ())
+#define MERGE_EVENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MERGE_EVENTS_COMMAND, MergeEventsCommand))
+#define MERGE_EVENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MERGE_EVENTS_COMMAND, MergeEventsCommandClass))
+#define IS_MERGE_EVENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MERGE_EVENTS_COMMAND))
+#define IS_MERGE_EVENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MERGE_EVENTS_COMMAND))
+#define MERGE_EVENTS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MERGE_EVENTS_COMMAND, MergeEventsCommandClass))
+
+typedef struct _MergeEventsCommand MergeEventsCommand;
+typedef struct _MergeEventsCommandClass MergeEventsCommandClass;
+typedef struct _MergeEventsCommandPrivate MergeEventsCommandPrivate;
+
+#define TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND (duplicate_multiple_photos_command_get_type ())
+#define DUPLICATE_MULTIPLE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommand))
+#define DUPLICATE_MULTIPLE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommandClass))
+#define IS_DUPLICATE_MULTIPLE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND))
+#define IS_DUPLICATE_MULTIPLE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND))
+#define DUPLICATE_MULTIPLE_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommandClass))
+
+typedef struct _DuplicateMultiplePhotosCommand DuplicateMultiplePhotosCommand;
+typedef struct _DuplicateMultiplePhotosCommandClass DuplicateMultiplePhotosCommandClass;
+typedef struct _DuplicateMultiplePhotosCommandPrivate DuplicateMultiplePhotosCommandPrivate;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SET_RATING_SINGLE_COMMAND (set_rating_single_command_get_type ())
+#define SET_RATING_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommand))
+#define SET_RATING_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommandClass))
+#define IS_SET_RATING_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_RATING_SINGLE_COMMAND))
+#define IS_SET_RATING_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_RATING_SINGLE_COMMAND))
+#define SET_RATING_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommandClass))
+
+typedef struct _SetRatingSingleCommand SetRatingSingleCommand;
+typedef struct _SetRatingSingleCommandClass SetRatingSingleCommandClass;
+typedef struct _SetRatingSingleCommandPrivate SetRatingSingleCommandPrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_SET_RATING_COMMAND (set_rating_command_get_type ())
+#define SET_RATING_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_RATING_COMMAND, SetRatingCommand))
+#define SET_RATING_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_RATING_COMMAND, SetRatingCommandClass))
+#define IS_SET_RATING_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_RATING_COMMAND))
+#define IS_SET_RATING_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_RATING_COMMAND))
+#define SET_RATING_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_RATING_COMMAND, SetRatingCommandClass))
+
+typedef struct _SetRatingCommand SetRatingCommand;
+typedef struct _SetRatingCommandClass SetRatingCommandClass;
+typedef struct _SetRatingCommandPrivate SetRatingCommandPrivate;
+
+#define TYPE_SET_RAW_DEVELOPER_COMMAND (set_raw_developer_command_get_type ())
+#define SET_RAW_DEVELOPER_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand))
+#define SET_RAW_DEVELOPER_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommandClass))
+#define IS_SET_RAW_DEVELOPER_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND))
+#define IS_SET_RAW_DEVELOPER_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_RAW_DEVELOPER_COMMAND))
+#define SET_RAW_DEVELOPER_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommandClass))
+
+typedef struct _SetRawDeveloperCommand SetRawDeveloperCommand;
+typedef struct _SetRawDeveloperCommandClass SetRawDeveloperCommandClass;
+typedef struct _SetRawDeveloperCommandPrivate SetRawDeveloperCommandPrivate;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND (adjust_date_time_photo_command_get_type ())
+#define ADJUST_DATE_TIME_PHOTO_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommand))
+#define ADJUST_DATE_TIME_PHOTO_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommandClass))
+#define IS_ADJUST_DATE_TIME_PHOTO_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND))
+#define IS_ADJUST_DATE_TIME_PHOTO_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND))
+#define ADJUST_DATE_TIME_PHOTO_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommandClass))
+
+typedef struct _AdjustDateTimePhotoCommand AdjustDateTimePhotoCommand;
+typedef struct _AdjustDateTimePhotoCommandClass AdjustDateTimePhotoCommandClass;
+typedef struct _AdjustDateTimePhotoCommandPrivate AdjustDateTimePhotoCommandPrivate;
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+
+#define TYPE_EVENT_VIEW (event_view_get_type ())
+#define EVENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_VIEW, EventView))
+#define EVENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_VIEW, EventViewClass))
+#define IS_EVENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_VIEW))
+#define IS_EVENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_VIEW))
+#define EVENT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_VIEW, EventViewClass))
+
+typedef struct _EventView EventView;
+typedef struct _EventViewClass EventViewClass;
+
+#define TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND (adjust_date_time_photos_command_get_type ())
+#define ADJUST_DATE_TIME_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommand))
+#define ADJUST_DATE_TIME_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommandClass))
+#define IS_ADJUST_DATE_TIME_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND))
+#define IS_ADJUST_DATE_TIME_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND))
+#define ADJUST_DATE_TIME_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommandClass))
+
+typedef struct _AdjustDateTimePhotosCommand AdjustDateTimePhotosCommand;
+typedef struct _AdjustDateTimePhotosCommandClass AdjustDateTimePhotosCommandClass;
+typedef struct _AdjustDateTimePhotosCommandPrivate AdjustDateTimePhotosCommandPrivate;
+
+#define TYPE_ADD_TAGS_COMMAND (add_tags_command_get_type ())
+#define ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommand))
+#define ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+#define IS_ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_COMMAND))
+#define IS_ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_COMMAND))
+#define ADD_TAGS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+
+typedef struct _AddTagsCommand AddTagsCommand;
+typedef struct _AddTagsCommandClass AddTagsCommandClass;
+typedef struct _AddTagsCommandPrivate AddTagsCommandPrivate;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_RENAME_TAG_COMMAND (rename_tag_command_get_type ())
+#define RENAME_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RENAME_TAG_COMMAND, RenameTagCommand))
+#define RENAME_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RENAME_TAG_COMMAND, RenameTagCommandClass))
+#define IS_RENAME_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RENAME_TAG_COMMAND))
+#define IS_RENAME_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RENAME_TAG_COMMAND))
+#define RENAME_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RENAME_TAG_COMMAND, RenameTagCommandClass))
+
+typedef struct _RenameTagCommand RenameTagCommand;
+typedef struct _RenameTagCommandClass RenameTagCommandClass;
+typedef struct _RenameTagCommandPrivate RenameTagCommandPrivate;
+
+#define TYPE_DELETE_TAG_COMMAND (delete_tag_command_get_type ())
+#define DELETE_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELETE_TAG_COMMAND, DeleteTagCommand))
+#define DELETE_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELETE_TAG_COMMAND, DeleteTagCommandClass))
+#define IS_DELETE_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELETE_TAG_COMMAND))
+#define IS_DELETE_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELETE_TAG_COMMAND))
+#define DELETE_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELETE_TAG_COMMAND, DeleteTagCommandClass))
+
+typedef struct _DeleteTagCommand DeleteTagCommand;
+typedef struct _DeleteTagCommandClass DeleteTagCommandClass;
+typedef struct _DeleteTagCommandPrivate DeleteTagCommandPrivate;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_NEW_CHILD_TAG_COMMAND (new_child_tag_command_get_type ())
+#define NEW_CHILD_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommand))
+#define NEW_CHILD_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommandClass))
+#define IS_NEW_CHILD_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NEW_CHILD_TAG_COMMAND))
+#define IS_NEW_CHILD_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NEW_CHILD_TAG_COMMAND))
+#define NEW_CHILD_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommandClass))
+
+typedef struct _NewChildTagCommand NewChildTagCommand;
+typedef struct _NewChildTagCommandClass NewChildTagCommandClass;
+typedef struct _NewChildTagCommandPrivate NewChildTagCommandPrivate;
+
+#define TYPE_NEW_ROOT_TAG_COMMAND (new_root_tag_command_get_type ())
+#define NEW_ROOT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommand))
+#define NEW_ROOT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommandClass))
+#define IS_NEW_ROOT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NEW_ROOT_TAG_COMMAND))
+#define IS_NEW_ROOT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NEW_ROOT_TAG_COMMAND))
+#define NEW_ROOT_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommandClass))
+
+typedef struct _NewRootTagCommand NewRootTagCommand;
+typedef struct _NewRootTagCommandClass NewRootTagCommandClass;
+typedef struct _NewRootTagCommandPrivate NewRootTagCommandPrivate;
+
+#define TYPE_REPARENT_TAG_COMMAND (reparent_tag_command_get_type ())
+#define REPARENT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REPARENT_TAG_COMMAND, ReparentTagCommand))
+#define REPARENT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REPARENT_TAG_COMMAND, ReparentTagCommandClass))
+#define IS_REPARENT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REPARENT_TAG_COMMAND))
+#define IS_REPARENT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REPARENT_TAG_COMMAND))
+#define REPARENT_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REPARENT_TAG_COMMAND, ReparentTagCommandClass))
+
+typedef struct _ReparentTagCommand ReparentTagCommand;
+typedef struct _ReparentTagCommandClass ReparentTagCommandClass;
+typedef struct _ReparentTagCommandPrivate ReparentTagCommandPrivate;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+
+#define TYPE_MODIFY_TAGS_COMMAND (modify_tags_command_get_type ())
+#define MODIFY_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommand))
+#define MODIFY_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommandClass))
+#define IS_MODIFY_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFY_TAGS_COMMAND))
+#define IS_MODIFY_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFY_TAGS_COMMAND))
+#define MODIFY_TAGS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommandClass))
+
+typedef struct _ModifyTagsCommand ModifyTagsCommand;
+typedef struct _ModifyTagsCommandClass ModifyTagsCommandClass;
+typedef struct _ModifyTagsCommandPrivate ModifyTagsCommandPrivate;
+
+#define TYPE_TAG_UNTAG_PHOTOS_COMMAND (tag_untag_photos_command_get_type ())
+#define TAG_UNTAG_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommand))
+#define TAG_UNTAG_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommandClass))
+#define IS_TAG_UNTAG_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND))
+#define IS_TAG_UNTAG_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_UNTAG_PHOTOS_COMMAND))
+#define TAG_UNTAG_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommandClass))
+
+typedef struct _TagUntagPhotosCommand TagUntagPhotosCommand;
+typedef struct _TagUntagPhotosCommandClass TagUntagPhotosCommandClass;
+typedef struct _TagUntagPhotosCommandPrivate TagUntagPhotosCommandPrivate;
+
+#define TYPE_RENAME_SAVED_SEARCH_COMMAND (rename_saved_search_command_get_type ())
+#define RENAME_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommand))
+#define RENAME_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommandClass))
+#define IS_RENAME_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RENAME_SAVED_SEARCH_COMMAND))
+#define IS_RENAME_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RENAME_SAVED_SEARCH_COMMAND))
+#define RENAME_SAVED_SEARCH_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommandClass))
+
+typedef struct _RenameSavedSearchCommand RenameSavedSearchCommand;
+typedef struct _RenameSavedSearchCommandClass RenameSavedSearchCommandClass;
+typedef struct _RenameSavedSearchCommandPrivate RenameSavedSearchCommandPrivate;
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+
+#define TYPE_DELETE_SAVED_SEARCH_COMMAND (delete_saved_search_command_get_type ())
+#define DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommand))
+#define DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+#define IS_DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define IS_DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define DELETE_SAVED_SEARCH_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+
+typedef struct _DeleteSavedSearchCommand DeleteSavedSearchCommand;
+typedef struct _DeleteSavedSearchCommandClass DeleteSavedSearchCommandClass;
+typedef struct _DeleteSavedSearchCommandPrivate DeleteSavedSearchCommandPrivate;
+
+#define TYPE_SAVED_SEARCH_TABLE (saved_search_table_get_type ())
+#define SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTable))
+#define SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+#define IS_SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_TABLE))
+#define IS_SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_TABLE))
+#define SAVED_SEARCH_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+
+typedef struct _SavedSearchTable SavedSearchTable;
+typedef struct _SavedSearchTableClass SavedSearchTableClass;
+#define _saved_search_table_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_table_unref (var), NULL)))
+
+#define TYPE_TRASH_UNTRASH_PHOTOS_COMMAND (trash_untrash_photos_command_get_type ())
+#define TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+
+typedef struct _TrashUntrashPhotosCommand TrashUntrashPhotosCommand;
+typedef struct _TrashUntrashPhotosCommandClass TrashUntrashPhotosCommandClass;
+typedef struct _TrashUntrashPhotosCommandPrivate TrashUntrashPhotosCommandPrivate;
+
+#define TYPE_FLAG_UNFLAG_COMMAND (flag_unflag_command_get_type ())
+#define FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommand))
+#define FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+#define IS_FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAG_UNFLAG_COMMAND))
+#define IS_FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FLAG_UNFLAG_COMMAND))
+#define FLAG_UNFLAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+
+typedef struct _FlagUnflagCommand FlagUnflagCommand;
+typedef struct _FlagUnflagCommandClass FlagUnflagCommandClass;
+typedef struct _FlagUnflagCommandPrivate FlagUnflagCommandPrivate;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _CommandDescriptionIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (CommandDescription* self);
+ gchar* (*get_explanation) (CommandDescription* self);
+};
+
+struct _Command {
+ GObject parent_instance;
+ CommandPrivate * priv;
+};
+
+struct _CommandClass {
+ GObjectClass parent_class;
+ void (*prepare) (Command* self);
+ void (*execute) (Command* self);
+ void (*undo) (Command* self);
+ void (*redo) (Command* self);
+ gboolean (*compress) (Command* self, Command* command);
+ gchar* (*get_name) (Command* self);
+ gchar* (*get_explanation) (Command* self);
+};
+
+struct _PageCommand {
+ Command parent_instance;
+ PageCommandPrivate * priv;
+};
+
+struct _PageCommandClass {
+ CommandClass parent_class;
+};
+
+struct _PageCommandPrivate {
+ Page* page;
+ gboolean auto_return;
+ Photo* library_photo;
+ CollectionPage* collection_page;
+};
+
+struct _SingleDataSourceCommand {
+ PageCommand parent_instance;
+ SingleDataSourceCommandPrivate * priv;
+ DataSource* source;
+};
+
+struct _SingleDataSourceCommandClass {
+ PageCommandClass parent_class;
+};
+
+struct _SimpleProxyableCommand {
+ PageCommand parent_instance;
+ SimpleProxyableCommandPrivate * priv;
+};
+
+struct _SimpleProxyableCommandClass {
+ PageCommandClass parent_class;
+ void (*execute_on_source) (SimpleProxyableCommand* self, DataSource* source);
+ void (*undo_on_source) (SimpleProxyableCommand* self, DataSource* source);
+};
+
+struct _SimpleProxyableCommandPrivate {
+ SourceProxy* proxy;
+ GeeHashSet* proxies;
+};
+
+struct _ProxyableIface {
+ GTypeInterface parent_iface;
+ SourceProxy* (*get_proxy) (Proxyable* self);
+};
+
+struct _SinglePhotoTransformationCommand {
+ SingleDataSourceCommand parent_instance;
+ SinglePhotoTransformationCommandPrivate * priv;
+};
+
+struct _SinglePhotoTransformationCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _SinglePhotoTransformationCommandPrivate {
+ PhotoTransformationState* state;
+};
+
+struct _GenericPhotoTransformationCommand {
+ SingleDataSourceCommand parent_instance;
+ GenericPhotoTransformationCommandPrivate * priv;
+};
+
+struct _GenericPhotoTransformationCommandClass {
+ SingleDataSourceCommandClass parent_class;
+ void (*execute_on_photo) (GenericPhotoTransformationCommand* self, Photo* photo);
+ gboolean (*can_compress) (GenericPhotoTransformationCommand* self, Command* command);
+};
+
+struct _GenericPhotoTransformationCommandPrivate {
+ PhotoTransformationState* original_state;
+ PhotoTransformationState* transformed_state;
+};
+
+struct _MultipleDataSourceCommand {
+ PageCommand parent_instance;
+ MultipleDataSourceCommandPrivate * priv;
+ GeeArrayList* source_list;
+};
+
+struct _MultipleDataSourceCommandClass {
+ PageCommandClass parent_class;
+ void (*execute_on_source) (MultipleDataSourceCommand* self, DataSource* source);
+ void (*undo_on_source) (MultipleDataSourceCommand* self, DataSource* source);
+};
+
+struct _MultipleDataSourceCommandPrivate {
+ gchar* progress_text;
+ gchar* undo_progress_text;
+ GeeArrayList* acted_upon;
+ GeeHashSet* hooked_collections;
+};
+
+struct _MultipleDataSourceAtOnceCommand {
+ PageCommand parent_instance;
+ MultipleDataSourceAtOnceCommandPrivate * priv;
+};
+
+struct _MultipleDataSourceAtOnceCommandClass {
+ PageCommandClass parent_class;
+ void (*execute_on_all) (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources);
+ void (*undo_on_all) (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources);
+};
+
+struct _MultipleDataSourceAtOnceCommandPrivate {
+ GeeHashSet* sources;
+ GeeHashSet* hooked_collections;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _MultiplePhotoTransformationCommand {
+ MultipleDataSourceCommand parent_instance;
+ MultiplePhotoTransformationCommandPrivate * priv;
+};
+
+struct _MultiplePhotoTransformationCommandClass {
+ MultipleDataSourceCommandClass parent_class;
+};
+
+struct _MultiplePhotoTransformationCommandPrivate {
+ GeeHashMap* map;
+};
+
+struct _RotateSingleCommand {
+ SingleDataSourceCommand parent_instance;
+ RotateSingleCommandPrivate * priv;
+};
+
+struct _RotateSingleCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+typedef enum {
+ ROTATION_CLOCKWISE,
+ ROTATION_COUNTERCLOCKWISE,
+ ROTATION_MIRROR,
+ ROTATION_UPSIDE_DOWN
+} Rotation;
+
+struct _RotateSingleCommandPrivate {
+ Rotation rotation;
+};
+
+struct _RotateMultipleCommand {
+ MultipleDataSourceCommand parent_instance;
+ RotateMultipleCommandPrivate * priv;
+};
+
+struct _RotateMultipleCommandClass {
+ MultipleDataSourceCommandClass parent_class;
+};
+
+struct _RotateMultipleCommandPrivate {
+ Rotation rotation;
+};
+
+struct _EditTitleCommand {
+ SingleDataSourceCommand parent_instance;
+ EditTitleCommandPrivate * priv;
+};
+
+struct _EditTitleCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _EditTitleCommandPrivate {
+ gchar* new_title;
+ gchar* old_title;
+};
+
+struct _EditCommentCommand {
+ SingleDataSourceCommand parent_instance;
+ EditCommentCommandPrivate * priv;
+};
+
+struct _EditCommentCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _EditCommentCommandPrivate {
+ gchar* new_comment;
+ gchar* old_comment;
+};
+
+struct _EditMultipleTitlesCommand {
+ MultipleDataSourceAtOnceCommand parent_instance;
+ EditMultipleTitlesCommandPrivate * priv;
+ gchar* new_title;
+ GeeHashMap* old_titles;
+};
+
+struct _EditMultipleTitlesCommandClass {
+ MultipleDataSourceAtOnceCommandClass parent_class;
+};
+
+struct _EditMultipleCommentsCommand {
+ MultipleDataSourceAtOnceCommand parent_instance;
+ EditMultipleCommentsCommandPrivate * priv;
+ gchar* new_comment;
+ GeeHashMap* old_comments;
+};
+
+struct _EditMultipleCommentsCommandClass {
+ MultipleDataSourceAtOnceCommandClass parent_class;
+};
+
+struct _RenameEventCommand {
+ SimpleProxyableCommand parent_instance;
+ RenameEventCommandPrivate * priv;
+};
+
+struct _RenameEventCommandClass {
+ SimpleProxyableCommandClass parent_class;
+};
+
+struct _RenameEventCommandPrivate {
+ gchar* new_name;
+ gchar* old_name;
+};
+
+struct _EditEventCommentCommand {
+ SimpleProxyableCommand parent_instance;
+ EditEventCommentCommandPrivate * priv;
+};
+
+struct _EditEventCommentCommandClass {
+ SimpleProxyableCommandClass parent_class;
+};
+
+struct _EditEventCommentCommandPrivate {
+ gchar* new_comment;
+ gchar* old_comment;
+};
+
+struct _SetKeyPhotoCommand {
+ SingleDataSourceCommand parent_instance;
+ SetKeyPhotoCommandPrivate * priv;
+};
+
+struct _SetKeyPhotoCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _SetKeyPhotoCommandPrivate {
+ MediaSource* new_primary_source;
+ MediaSource* old_primary_source;
+};
+
+struct _RevertSingleCommand {
+ GenericPhotoTransformationCommand parent_instance;
+ RevertSingleCommandPrivate * priv;
+};
+
+struct _RevertSingleCommandClass {
+ GenericPhotoTransformationCommandClass parent_class;
+};
+
+struct _RevertMultipleCommand {
+ MultiplePhotoTransformationCommand parent_instance;
+ RevertMultipleCommandPrivate * priv;
+};
+
+struct _RevertMultipleCommandClass {
+ MultiplePhotoTransformationCommandClass parent_class;
+};
+
+struct _EnhanceSingleCommand {
+ GenericPhotoTransformationCommand parent_instance;
+ EnhanceSingleCommandPrivate * priv;
+};
+
+struct _EnhanceSingleCommandClass {
+ GenericPhotoTransformationCommandClass parent_class;
+};
+
+struct _EnhanceMultipleCommand {
+ MultiplePhotoTransformationCommand parent_instance;
+ EnhanceMultipleCommandPrivate * priv;
+};
+
+struct _EnhanceMultipleCommandClass {
+ MultiplePhotoTransformationCommandClass parent_class;
+};
+
+struct _StraightenCommand {
+ GenericPhotoTransformationCommand parent_instance;
+ StraightenCommandPrivate * priv;
+};
+
+struct _StraightenCommandClass {
+ GenericPhotoTransformationCommandClass parent_class;
+};
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+struct _StraightenCommandPrivate {
+ gdouble theta;
+ Box crop;
+};
+
+struct _CropCommand {
+ GenericPhotoTransformationCommand parent_instance;
+ CropCommandPrivate * priv;
+};
+
+struct _CropCommandClass {
+ GenericPhotoTransformationCommandClass parent_class;
+};
+
+struct _CropCommandPrivate {
+ Box crop;
+};
+
+struct _AdjustColorsSingleCommand {
+ GenericPhotoTransformationCommand parent_instance;
+ AdjustColorsSingleCommandPrivate * priv;
+};
+
+struct _AdjustColorsSingleCommandClass {
+ GenericPhotoTransformationCommandClass parent_class;
+};
+
+struct _AdjustColorsSingleCommandPrivate {
+ PixelTransformationBundle* transformations;
+};
+
+struct _AdjustColorsMultipleCommand {
+ MultiplePhotoTransformationCommand parent_instance;
+ AdjustColorsMultipleCommandPrivate * priv;
+};
+
+struct _AdjustColorsMultipleCommandClass {
+ MultiplePhotoTransformationCommandClass parent_class;
+};
+
+struct _AdjustColorsMultipleCommandPrivate {
+ PixelTransformationBundle* transformations;
+};
+
+struct _RedeyeCommand {
+ GenericPhotoTransformationCommand parent_instance;
+ RedeyeCommandPrivate * priv;
+};
+
+struct _RedeyeCommandClass {
+ GenericPhotoTransformationCommandClass parent_class;
+};
+
+struct _EditingToolsRedeyeInstance {
+ GdkPoint center;
+ gint radius;
+};
+
+struct _RedeyeCommandPrivate {
+ EditingToolsRedeyeInstance redeye_instance;
+};
+
+struct _MovePhotosCommand {
+ Command parent_instance;
+ MovePhotosCommandPrivate * priv;
+ MovePhotosCommandRealMovePhotosCommand* real_command;
+};
+
+struct _MovePhotosCommandClass {
+ CommandClass parent_class;
+};
+
+struct _MovePhotosCommandRealMovePhotosCommand {
+ MultipleDataSourceCommand parent_instance;
+ MovePhotosCommandRealMovePhotosCommandPrivate * priv;
+};
+
+struct _MovePhotosCommandRealMovePhotosCommandClass {
+ MultipleDataSourceCommandClass parent_class;
+};
+
+struct _MovePhotosCommandRealMovePhotosCommandPrivate {
+ SourceProxy* new_event_proxy;
+ GeeHashMap* old_events;
+};
+
+struct _NewEventCommand {
+ MovePhotosCommand parent_instance;
+ NewEventCommandPrivate * priv;
+};
+
+struct _NewEventCommandClass {
+ MovePhotosCommandClass parent_class;
+};
+
+struct _SetEventCommand {
+ MovePhotosCommand parent_instance;
+ SetEventCommandPrivate * priv;
+};
+
+struct _SetEventCommandClass {
+ MovePhotosCommandClass parent_class;
+};
+
+struct _MergeEventsCommand {
+ MovePhotosCommand parent_instance;
+ MergeEventsCommandPrivate * priv;
+};
+
+struct _MergeEventsCommandClass {
+ MovePhotosCommandClass parent_class;
+};
+
+struct _DuplicateMultiplePhotosCommand {
+ MultipleDataSourceCommand parent_instance;
+ DuplicateMultiplePhotosCommandPrivate * priv;
+};
+
+struct _DuplicateMultiplePhotosCommandClass {
+ MultipleDataSourceCommandClass parent_class;
+};
+
+struct _DuplicateMultiplePhotosCommandPrivate {
+ GeeHashMap* dupes;
+ gint failed;
+};
+
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _SetRatingSingleCommand {
+ SingleDataSourceCommand parent_instance;
+ SetRatingSingleCommandPrivate * priv;
+};
+
+struct _SetRatingSingleCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _SetRatingSingleCommandPrivate {
+ Rating last_rating;
+ Rating new_rating;
+ gboolean set_direct;
+ gboolean incrementing;
+};
+
+struct _SetRatingCommand {
+ MultipleDataSourceCommand parent_instance;
+ SetRatingCommandPrivate * priv;
+};
+
+struct _SetRatingCommandClass {
+ MultipleDataSourceCommandClass parent_class;
+};
+
+struct _SetRatingCommandPrivate {
+ GeeHashMap* last_rating_map;
+ Rating new_rating;
+ gboolean set_direct;
+ gboolean incrementing;
+ gint action_count;
+};
+
+struct _SetRawDeveloperCommand {
+ MultipleDataSourceCommand parent_instance;
+ SetRawDeveloperCommandPrivate * priv;
+};
+
+struct _SetRawDeveloperCommandClass {
+ MultipleDataSourceCommandClass parent_class;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _SetRawDeveloperCommandPrivate {
+ GeeHashMap* last_developer_map;
+ GeeHashMap* last_transformation_map;
+ RawDeveloper new_developer;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _AdjustDateTimePhotoCommand {
+ SingleDataSourceCommand parent_instance;
+ AdjustDateTimePhotoCommandPrivate * priv;
+};
+
+struct _AdjustDateTimePhotoCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+struct _AdjustDateTimePhotoCommandPrivate {
+ Dateable* dateable;
+ Event* prev_event;
+ gint64 time_shift;
+ gboolean modify_original;
+};
+
+struct _AdjustDateTimePhotosCommand {
+ MultipleDataSourceCommand parent_instance;
+ AdjustDateTimePhotosCommandPrivate * priv;
+};
+
+struct _AdjustDateTimePhotosCommandClass {
+ MultipleDataSourceCommandClass parent_class;
+};
+
+struct _AdjustDateTimePhotosCommandPrivate {
+ gint64 time_shift;
+ gboolean keep_relativity;
+ gboolean modify_originals;
+ GeeMap* prev_events;
+ time_t* new_time;
+ GeeHashMap* old_times;
+ GeeArrayList* error_list;
+};
+
+struct _AddTagsCommand {
+ PageCommand parent_instance;
+ AddTagsCommandPrivate * priv;
+};
+
+struct _AddTagsCommandClass {
+ PageCommandClass parent_class;
+};
+
+struct _AddTagsCommandPrivate {
+ GeeHashMap* map;
+};
+
+struct _RenameTagCommand {
+ SimpleProxyableCommand parent_instance;
+ RenameTagCommandPrivate * priv;
+};
+
+struct _RenameTagCommandClass {
+ SimpleProxyableCommandClass parent_class;
+};
+
+struct _RenameTagCommandPrivate {
+ gchar* old_name;
+ gchar* new_name;
+};
+
+struct _DeleteTagCommand {
+ SimpleProxyableCommand parent_instance;
+ DeleteTagCommandPrivate * priv;
+};
+
+struct _DeleteTagCommandClass {
+ SimpleProxyableCommandClass parent_class;
+};
+
+struct _DeleteTagCommandPrivate {
+ GeeList* recursive_victim_proxies;
+};
+
+struct _NewChildTagCommand {
+ SimpleProxyableCommand parent_instance;
+ NewChildTagCommandPrivate * priv;
+};
+
+struct _NewChildTagCommandClass {
+ SimpleProxyableCommandClass parent_class;
+};
+
+struct _NewChildTagCommandPrivate {
+ Tag* created_child;
+};
+
+struct _NewRootTagCommand {
+ PageCommand parent_instance;
+ NewRootTagCommandPrivate * priv;
+};
+
+struct _NewRootTagCommandClass {
+ PageCommandClass parent_class;
+};
+
+struct _NewRootTagCommandPrivate {
+ SourceProxy* created_proxy;
+};
+
+struct _ReparentTagCommand {
+ PageCommand parent_instance;
+ ReparentTagCommandPrivate * priv;
+};
+
+struct _ReparentTagCommandClass {
+ PageCommandClass parent_class;
+};
+
+struct _ReparentTagCommandPrivate {
+ gchar* from_path;
+ gchar* to_path;
+ gchar* to_path_parent_path;
+ GeeList* src_before_state;
+ GeeList* dest_before_state;
+ GeeList* after_state;
+ GeeHashSet* sources_in_play;
+ GeeMap* dest_parent_attachments;
+ GeeMap* src_parent_detachments;
+ GeeMap* in_play_child_structure;
+ GeeMap* existing_dest_child_structure;
+ GeeSet* existing_dest_membership;
+ gboolean to_path_exists;
+};
+
+struct _ModifyTagsCommand {
+ SingleDataSourceCommand parent_instance;
+ ModifyTagsCommandPrivate * priv;
+};
+
+struct _ModifyTagsCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _ModifyTagsCommandPrivate {
+ MediaSource* media;
+ GeeArrayList* to_add;
+ GeeArrayList* to_remove;
+};
+
+struct _TagUntagPhotosCommand {
+ SimpleProxyableCommand parent_instance;
+ TagUntagPhotosCommandPrivate * priv;
+};
+
+struct _TagUntagPhotosCommandClass {
+ SimpleProxyableCommandClass parent_class;
+};
+
+struct _TagUntagPhotosCommandPrivate {
+ GeeCollection* sources;
+ gboolean attach;
+ GeeMultiMap* detached_from;
+ GeeList* attached_to;
+};
+
+struct _RenameSavedSearchCommand {
+ SingleDataSourceCommand parent_instance;
+ RenameSavedSearchCommandPrivate * priv;
+};
+
+struct _RenameSavedSearchCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _RenameSavedSearchCommandPrivate {
+ SavedSearch* search;
+ gchar* old_name;
+ gchar* new_name;
+};
+
+struct _DeleteSavedSearchCommand {
+ SingleDataSourceCommand parent_instance;
+ DeleteSavedSearchCommandPrivate * priv;
+};
+
+struct _DeleteSavedSearchCommandClass {
+ SingleDataSourceCommandClass parent_class;
+};
+
+struct _DeleteSavedSearchCommandPrivate {
+ SavedSearch* search;
+};
+
+struct _TrashUntrashPhotosCommand {
+ PageCommand parent_instance;
+ TrashUntrashPhotosCommandPrivate * priv;
+};
+
+struct _TrashUntrashPhotosCommandClass {
+ PageCommandClass parent_class;
+};
+
+struct _TrashUntrashPhotosCommandPrivate {
+ GeeCollection* sources;
+ gboolean to_trash;
+};
+
+struct _FlagUnflagCommand {
+ MultipleDataSourceAtOnceCommand parent_instance;
+ FlagUnflagCommandPrivate * priv;
+};
+
+struct _FlagUnflagCommandClass {
+ MultipleDataSourceAtOnceCommandClass parent_class;
+};
+
+struct _FlagUnflagCommandPrivate {
+ gboolean flag;
+ ProgressDialog* progress_dialog;
+};
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+
+static gpointer page_command_parent_class = NULL;
+static gpointer single_data_source_command_parent_class = NULL;
+static gpointer simple_proxyable_command_parent_class = NULL;
+static gpointer single_photo_transformation_command_parent_class = NULL;
+static gpointer generic_photo_transformation_command_parent_class = NULL;
+static gpointer multiple_data_source_command_parent_class = NULL;
+static gpointer multiple_data_source_at_once_command_parent_class = NULL;
+static gpointer multiple_photo_transformation_command_parent_class = NULL;
+static gpointer rotate_single_command_parent_class = NULL;
+static gpointer rotate_multiple_command_parent_class = NULL;
+static gpointer edit_title_command_parent_class = NULL;
+static gpointer edit_comment_command_parent_class = NULL;
+static gpointer edit_multiple_titles_command_parent_class = NULL;
+static gpointer edit_multiple_comments_command_parent_class = NULL;
+static gpointer rename_event_command_parent_class = NULL;
+static gpointer edit_event_comment_command_parent_class = NULL;
+static gpointer set_key_photo_command_parent_class = NULL;
+static gpointer revert_single_command_parent_class = NULL;
+static gpointer revert_multiple_command_parent_class = NULL;
+static gpointer enhance_single_command_parent_class = NULL;
+static gpointer enhance_multiple_command_parent_class = NULL;
+static gpointer straighten_command_parent_class = NULL;
+static gpointer crop_command_parent_class = NULL;
+static gpointer adjust_colors_single_command_parent_class = NULL;
+static gpointer adjust_colors_multiple_command_parent_class = NULL;
+static gpointer redeye_command_parent_class = NULL;
+static gpointer move_photos_command_parent_class = NULL;
+static gpointer move_photos_command_real_move_photos_command_parent_class = NULL;
+static gpointer new_event_command_parent_class = NULL;
+static gpointer set_event_command_parent_class = NULL;
+static gpointer merge_events_command_parent_class = NULL;
+static gpointer duplicate_multiple_photos_command_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+static gpointer set_rating_single_command_parent_class = NULL;
+static gpointer set_rating_command_parent_class = NULL;
+static gpointer set_raw_developer_command_parent_class = NULL;
+static gpointer adjust_date_time_photo_command_parent_class = NULL;
+extern EventSourceCollection* event_global;
+static gpointer adjust_date_time_photos_command_parent_class = NULL;
+static gpointer add_tags_command_parent_class = NULL;
+extern VideoSourceCollection* video_global;
+static gpointer rename_tag_command_parent_class = NULL;
+static gpointer delete_tag_command_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+static gpointer new_child_tag_command_parent_class = NULL;
+static gpointer new_root_tag_command_parent_class = NULL;
+static gpointer reparent_tag_command_parent_class = NULL;
+static gpointer modify_tags_command_parent_class = NULL;
+static gpointer tag_untag_photos_command_parent_class = NULL;
+static gpointer rename_saved_search_command_parent_class = NULL;
+static gpointer delete_saved_search_command_parent_class = NULL;
+static gpointer trash_untrash_photos_command_parent_class = NULL;
+static gpointer flag_unflag_command_parent_class = NULL;
+
+GType command_description_get_type (void) G_GNUC_CONST;
+GType command_get_type (void) G_GNUC_CONST;
+GType page_command_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+#define PAGE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PAGE_COMMAND, PageCommandPrivate))
+enum {
+ PAGE_COMMAND_DUMMY_PROPERTY
+};
+static void page_command_on_page_destroyed (PageCommand* self);
+static void _page_command_on_page_destroyed_gtk_widget_destroy (GtkWidget* _sender, gpointer self);
+static void page_command_on_photo_destroyed (PageCommand* self);
+static void _page_command_on_photo_destroyed_data_source_destroyed (DataSource* _sender, gpointer self);
+static void page_command_on_controller_destroyed (PageCommand* self);
+static void _page_command_on_controller_destroyed_gtk_widget_destroy (GtkWidget* _sender, gpointer self);
+PageCommand* page_command_construct (GType object_type, const gchar* name, const gchar* explanation);
+Command* command_construct (GType object_type, const gchar* name, const gchar* explanation);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+Page* page_window_get_current_page (PageWindow* self);
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType editing_host_page_get_type (void) G_GNUC_CONST;
+GType library_photo_page_get_type (void) G_GNUC_CONST;
+Photo* editing_host_page_get_photo (EditingHostPage* self);
+CollectionPage* library_photo_page_get_controller_page (LibraryPhotoPage* self);
+void page_command_set_auto_return_to_page (PageCommand* self, gboolean auto_return);
+static void page_command_real_prepare (Command* base);
+void page_command_return_to_page (PageCommand* self);
+void command_prepare (Command* self);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gint data_collection_get_count (DataCollection* self);
+DataObject* data_collection_get_at (DataCollection* self, gint index);
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType media_source_item_get_type (void) G_GNUC_CONST;
+GType thumbnail_get_type (void) G_GNUC_CONST;
+MediaSource* thumbnail_get_media_source (Thumbnail* self);
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_switch_to_photo_page (LibraryWindow* self, CollectionPage* controller, Photo* current);
+void page_window_set_current_page (PageWindow* self, Page* page);
+static void page_command_finalize (GObject* obj);
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+enum {
+ SINGLE_DATA_SOURCE_COMMAND_DUMMY_PROPERTY
+};
+static void single_data_source_command_on_source_destroyed (SingleDataSourceCommand* self);
+static void _single_data_source_command_on_source_destroyed_data_source_destroyed (DataSource* _sender, gpointer self);
+SingleDataSourceCommand* single_data_source_command_construct (GType object_type, DataSource* source, const gchar* name, const gchar* explanation);
+DataSource* single_data_source_command_get_source (SingleDataSourceCommand* self);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* command_get_command_manager (Command* self);
+void command_manager_reset (CommandManager* self);
+static void single_data_source_command_finalize (GObject* obj);
+GType simple_proxyable_command_get_type (void) G_GNUC_CONST;
+gpointer source_proxy_ref (gpointer instance);
+void source_proxy_unref (gpointer instance);
+GParamSpec* param_spec_source_proxy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_proxy (GValue* value, gpointer v_object);
+void value_take_source_proxy (GValue* value, gpointer v_object);
+gpointer value_get_source_proxy (const GValue* value);
+GType source_proxy_get_type (void) G_GNUC_CONST;
+#define SIMPLE_PROXYABLE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandPrivate))
+enum {
+ SIMPLE_PROXYABLE_COMMAND_DUMMY_PROPERTY
+};
+static void simple_proxyable_command_on_proxy_broken (SimpleProxyableCommand* self);
+static void _simple_proxyable_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self);
+void simple_proxyable_command_clear_added_proxies (SimpleProxyableCommand* self);
+GType proxyable_get_type (void) G_GNUC_CONST;
+SimpleProxyableCommand* simple_proxyable_command_construct (GType object_type, Proxyable* proxyable, const gchar* name, const gchar* explanation);
+SourceProxy* proxyable_get_proxy (Proxyable* self);
+static void simple_proxyable_command_real_execute (Command* base);
+void simple_proxyable_command_execute_on_source (SimpleProxyableCommand* self, DataSource* source);
+DataSource* source_proxy_get_source (SourceProxy* self);
+static void simple_proxyable_command_real_execute_on_source (SimpleProxyableCommand* self, DataSource* source);
+static void simple_proxyable_command_real_undo (Command* base);
+void simple_proxyable_command_undo_on_source (SimpleProxyableCommand* self, DataSource* source);
+static void simple_proxyable_command_real_undo_on_source (SimpleProxyableCommand* self, DataSource* source);
+void simple_proxyable_command_add_proxyables (SimpleProxyableCommand* self, GeeCollection* proxyables);
+static void simple_proxyable_command_finalize (GObject* obj);
+GType single_photo_transformation_command_get_type (void) G_GNUC_CONST;
+GType photo_transformation_state_get_type (void) G_GNUC_CONST;
+#define SINGLE_PHOTO_TRANSFORMATION_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND, SinglePhotoTransformationCommandPrivate))
+enum {
+ SINGLE_PHOTO_TRANSFORMATION_COMMAND_DUMMY_PROPERTY
+};
+static void single_photo_transformation_command_on_state_broken (SinglePhotoTransformationCommand* self);
+static void _single_photo_transformation_command_on_state_broken_photo_transformation_state_broken (PhotoTransformationState* _sender, gpointer self);
+SinglePhotoTransformationCommand* single_photo_transformation_command_construct (GType object_type, Photo* photo, const gchar* name, const gchar* explanation);
+PhotoTransformationState* photo_save_transformation_state (Photo* self);
+static void single_photo_transformation_command_real_undo (Command* base);
+gboolean photo_load_transformation_state (Photo* self, PhotoTransformationState* state);
+static void single_photo_transformation_command_finalize (GObject* obj);
+GType generic_photo_transformation_command_get_type (void) G_GNUC_CONST;
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandPrivate))
+enum {
+ GENERIC_PHOTO_TRANSFORMATION_COMMAND_DUMMY_PROPERTY
+};
+static void generic_photo_transformation_command_on_state_broken (GenericPhotoTransformationCommand* self);
+static void _generic_photo_transformation_command_on_state_broken_photo_transformation_state_broken (PhotoTransformationState* _sender, gpointer self);
+GenericPhotoTransformationCommand* generic_photo_transformation_command_construct (GType object_type, Photo* photo, const gchar* name, const gchar* explanation);
+static void generic_photo_transformation_command_real_execute (Command* base);
+void generic_photo_transformation_command_execute_on_photo (GenericPhotoTransformationCommand* self, Photo* photo);
+static void generic_photo_transformation_command_real_execute_on_photo (GenericPhotoTransformationCommand* self, Photo* photo);
+static void generic_photo_transformation_command_real_undo (Command* base);
+static void generic_photo_transformation_command_real_redo (Command* base);
+gboolean generic_photo_transformation_command_can_compress (GenericPhotoTransformationCommand* self, Command* command);
+static gboolean generic_photo_transformation_command_real_can_compress (GenericPhotoTransformationCommand* self, Command* command);
+static gboolean generic_photo_transformation_command_real_compress (Command* base, Command* command);
+void command_execute (Command* self);
+static void generic_photo_transformation_command_finalize (GObject* obj);
+GType multiple_data_source_command_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+#define MULTIPLE_DATA_SOURCE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandPrivate))
+enum {
+ MULTIPLE_DATA_SOURCE_COMMAND_DUMMY_PROPERTY
+};
+static void multiple_data_source_command_on_source_destroyed (MultipleDataSourceCommand* self, DataSource* source);
+static void _multiple_data_source_command_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+#define MULTIPLE_DATA_SOURCE_COMMAND_MIN_OPS_FOR_PROGRESS_WINDOW 5
+MultipleDataSourceCommand* multiple_data_source_command_construct (GType object_type, GeeIterable* iter, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation);
+DataSource* data_view_get_source (DataView* self);
+DataCollection* data_object_get_membership (DataObject* self);
+GeeIterable* multiple_data_source_command_get_sources (MultipleDataSourceCommand* self);
+gint multiple_data_source_command_get_source_count (MultipleDataSourceCommand* self);
+static void multiple_data_source_command_real_execute (Command* base);
+static void multiple_data_source_command_start_transaction (MultipleDataSourceCommand* self);
+static void multiple_data_source_command_execute_all (MultipleDataSourceCommand* self, gboolean exec, gboolean can_cancel, GeeArrayList* todo, GeeArrayList* completed);
+static void multiple_data_source_command_commit_transaction (MultipleDataSourceCommand* self);
+void multiple_data_source_command_execute_on_source (MultipleDataSourceCommand* self, DataSource* source);
+static void multiple_data_source_command_real_execute_on_source (MultipleDataSourceCommand* self, DataSource* source);
+static void multiple_data_source_command_real_undo (Command* base);
+void multiple_data_source_command_undo_on_source (MultipleDataSourceCommand* self, DataSource* source);
+static void multiple_data_source_command_real_undo_on_source (MultipleDataSourceCommand* self, DataSource* source);
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+TransactionController* media_source_collection_get_transaction_controller (MediaSourceCollection* self);
+void transaction_controller_begin (TransactionController* self);
+void transaction_controller_commit (TransactionController* self);
+void page_window_set_busy_cursor (PageWindow* self);
+GType progress_dialog_get_type (void) G_GNUC_CONST;
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+void progress_dialog_set_fraction (ProgressDialog* self, gint current, gint total);
+void spin_event_loop (void);
+void progress_dialog_close (ProgressDialog* self);
+void page_window_set_normal_cursor (PageWindow* self);
+static void multiple_data_source_command_finalize (GObject* obj);
+GType multiple_data_source_at_once_command_get_type (void) G_GNUC_CONST;
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandPrivate))
+enum {
+ MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_DUMMY_PROPERTY
+};
+static void multiple_data_source_at_once_command_on_sources_destroyed (MultipleDataSourceAtOnceCommand* self, GeeCollection* destroyed);
+static void _multiple_data_source_at_once_command_on_sources_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self);
+MultipleDataSourceAtOnceCommand* multiple_data_source_at_once_command_construct (GType object_type, GeeCollection* sources, const gchar* name, const gchar* explanation);
+static void multiple_data_source_at_once_command_real_execute (Command* base);
+void database_table_begin_transaction (void);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+void media_collection_registry_freeze_all (MediaCollectionRegistry* self);
+void multiple_data_source_at_once_command_execute_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources);
+void media_collection_registry_thaw_all (MediaCollectionRegistry* self);
+GQuark database_error_quark (void);
+void database_table_commit_transaction (GError** error);
+void app_window_database_error (GError* err);
+static void multiple_data_source_at_once_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources);
+static void multiple_data_source_at_once_command_real_undo (Command* base);
+void multiple_data_source_at_once_command_undo_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources);
+static void multiple_data_source_at_once_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources);
+static void multiple_data_source_at_once_command_finalize (GObject* obj);
+GType multiple_photo_transformation_command_get_type (void) G_GNUC_CONST;
+#define MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommandPrivate))
+enum {
+ MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_DUMMY_PROPERTY
+};
+static void multiple_photo_transformation_command_on_state_broken (MultiplePhotoTransformationCommand* self);
+static void _multiple_photo_transformation_command_on_state_broken_photo_transformation_state_broken (PhotoTransformationState* _sender, gpointer self);
+MultiplePhotoTransformationCommand* multiple_photo_transformation_command_construct (GType object_type, GeeIterable* iter, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation);
+static void multiple_photo_transformation_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void multiple_photo_transformation_command_finalize (GObject* obj);
+GType rotate_single_command_get_type (void) G_GNUC_CONST;
+GType rotation_get_type (void) G_GNUC_CONST;
+#define ROTATE_SINGLE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommandPrivate))
+enum {
+ ROTATE_SINGLE_COMMAND_DUMMY_PROPERTY
+};
+RotateSingleCommand* rotate_single_command_new (Photo* photo, Rotation rotation, const gchar* name, const gchar* explanation);
+RotateSingleCommand* rotate_single_command_construct (GType object_type, Photo* photo, Rotation rotation, const gchar* name, const gchar* explanation);
+static void rotate_single_command_real_execute (Command* base);
+void photo_rotate (Photo* self, Rotation rotation);
+static void rotate_single_command_real_undo (Command* base);
+Rotation rotation_opposite (Rotation self);
+static void rotate_single_command_finalize (GObject* obj);
+GType rotate_multiple_command_get_type (void) G_GNUC_CONST;
+#define ROTATE_MULTIPLE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommandPrivate))
+enum {
+ ROTATE_MULTIPLE_COMMAND_DUMMY_PROPERTY
+};
+RotateMultipleCommand* rotate_multiple_command_new (GeeIterable* iter, Rotation rotation, const gchar* name, const gchar* explanation, const gchar* progress_text, const gchar* undo_progress_text);
+RotateMultipleCommand* rotate_multiple_command_construct (GType object_type, GeeIterable* iter, Rotation rotation, const gchar* name, const gchar* explanation, const gchar* progress_text, const gchar* undo_progress_text);
+static void rotate_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void rotate_multiple_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void rotate_multiple_command_finalize (GObject* obj);
+GType edit_title_command_get_type (void) G_GNUC_CONST;
+#define EDIT_TITLE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EDIT_TITLE_COMMAND, EditTitleCommandPrivate))
+enum {
+ EDIT_TITLE_COMMAND_DUMMY_PROPERTY
+};
+EditTitleCommand* edit_title_command_new (MediaSource* source, const gchar* new_title);
+EditTitleCommand* edit_title_command_construct (GType object_type, MediaSource* source, const gchar* new_title);
+#define RESOURCES_EDIT_TITLE_LABEL "Edit Title"
+gchar* media_source_get_title (MediaSource* self);
+static void edit_title_command_real_execute (Command* base);
+void media_source_set_title (MediaSource* self, const gchar* title);
+static void edit_title_command_real_undo (Command* base);
+static void edit_title_command_finalize (GObject* obj);
+GType edit_comment_command_get_type (void) G_GNUC_CONST;
+#define EDIT_COMMENT_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EDIT_COMMENT_COMMAND, EditCommentCommandPrivate))
+enum {
+ EDIT_COMMENT_COMMAND_DUMMY_PROPERTY
+};
+EditCommentCommand* edit_comment_command_new (MediaSource* source, const gchar* new_comment);
+EditCommentCommand* edit_comment_command_construct (GType object_type, MediaSource* source, const gchar* new_comment);
+#define RESOURCES_EDIT_COMMENT_LABEL _ ("Edit Comment")
+gchar* media_source_get_comment (MediaSource* self);
+static void edit_comment_command_real_execute (Command* base);
+gboolean media_source_set_comment (MediaSource* self, const gchar* comment);
+static void edit_comment_command_real_undo (Command* base);
+static void edit_comment_command_finalize (GObject* obj);
+GType edit_multiple_titles_command_get_type (void) G_GNUC_CONST;
+enum {
+ EDIT_MULTIPLE_TITLES_COMMAND_DUMMY_PROPERTY
+};
+EditMultipleTitlesCommand* edit_multiple_titles_command_new (GeeCollection* media_sources, const gchar* new_title);
+EditMultipleTitlesCommand* edit_multiple_titles_command_construct (GType object_type, GeeCollection* media_sources, const gchar* new_title);
+static void edit_multiple_titles_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources);
+static void edit_multiple_titles_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources);
+static void edit_multiple_titles_command_finalize (GObject* obj);
+GType edit_multiple_comments_command_get_type (void) G_GNUC_CONST;
+enum {
+ EDIT_MULTIPLE_COMMENTS_COMMAND_DUMMY_PROPERTY
+};
+EditMultipleCommentsCommand* edit_multiple_comments_command_new (GeeCollection* media_sources, const gchar* new_comment);
+EditMultipleCommentsCommand* edit_multiple_comments_command_construct (GType object_type, GeeCollection* media_sources, const gchar* new_comment);
+static void edit_multiple_comments_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources);
+static void edit_multiple_comments_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources);
+static void edit_multiple_comments_command_finalize (GObject* obj);
+GType rename_event_command_get_type (void) G_GNUC_CONST;
+#define RENAME_EVENT_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_RENAME_EVENT_COMMAND, RenameEventCommandPrivate))
+enum {
+ RENAME_EVENT_COMMAND_DUMMY_PROPERTY
+};
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+RenameEventCommand* rename_event_command_new (Event* event, const gchar* new_name);
+RenameEventCommand* rename_event_command_construct (GType object_type, Event* event, const gchar* new_name);
+#define RESOURCES_RENAME_EVENT_LABEL _ ("Rename Event")
+gchar* event_get_raw_name (Event* self);
+static void rename_event_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source);
+gboolean event_rename (Event* self, const gchar* name);
+static void rename_event_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source);
+static void rename_event_command_finalize (GObject* obj);
+GType edit_event_comment_command_get_type (void) G_GNUC_CONST;
+#define EDIT_EVENT_COMMENT_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommandPrivate))
+enum {
+ EDIT_EVENT_COMMENT_COMMAND_DUMMY_PROPERTY
+};
+EditEventCommentCommand* edit_event_comment_command_new (Event* event, const gchar* new_comment);
+EditEventCommentCommand* edit_event_comment_command_construct (GType object_type, Event* event, const gchar* new_comment);
+gchar* event_source_get_comment (EventSource* self);
+static void edit_event_comment_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source);
+gboolean event_source_set_comment (EventSource* self, const gchar* comment);
+static void edit_event_comment_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source);
+static void edit_event_comment_command_finalize (GObject* obj);
+GType set_key_photo_command_get_type (void) G_GNUC_CONST;
+#define SET_KEY_PHOTO_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SET_KEY_PHOTO_COMMAND, SetKeyPhotoCommandPrivate))
+enum {
+ SET_KEY_PHOTO_COMMAND_DUMMY_PROPERTY
+};
+SetKeyPhotoCommand* set_key_photo_command_new (Event* event, MediaSource* new_primary_source);
+SetKeyPhotoCommand* set_key_photo_command_construct (GType object_type, Event* event, MediaSource* new_primary_source);
+#define RESOURCES_MAKE_KEY_PHOTO_LABEL _ ("Make Key Photo for Event")
+MediaSource* event_get_primary_source (Event* self);
+static void set_key_photo_command_real_execute (Command* base);
+gboolean event_set_primary_source (Event* self, MediaSource* source);
+static void set_key_photo_command_real_undo (Command* base);
+static void set_key_photo_command_finalize (GObject* obj);
+GType revert_single_command_get_type (void) G_GNUC_CONST;
+enum {
+ REVERT_SINGLE_COMMAND_DUMMY_PROPERTY
+};
+RevertSingleCommand* revert_single_command_new (Photo* photo);
+RevertSingleCommand* revert_single_command_construct (GType object_type, Photo* photo);
+#define RESOURCES_REVERT_LABEL _ ("Revert to Original")
+static void revert_single_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo);
+void photo_remove_all_transformations (Photo* self);
+static gboolean revert_single_command_real_compress (Command* base, Command* command);
+GType revert_multiple_command_get_type (void) G_GNUC_CONST;
+enum {
+ REVERT_MULTIPLE_COMMAND_DUMMY_PROPERTY
+};
+RevertMultipleCommand* revert_multiple_command_new (GeeIterable* iter);
+RevertMultipleCommand* revert_multiple_command_construct (GType object_type, GeeIterable* iter);
+static void revert_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+GType enhance_single_command_get_type (void) G_GNUC_CONST;
+enum {
+ ENHANCE_SINGLE_COMMAND_DUMMY_PROPERTY
+};
+EnhanceSingleCommand* enhance_single_command_new (Photo* photo);
+EnhanceSingleCommand* enhance_single_command_construct (GType object_type, Photo* photo);
+#define RESOURCES_ENHANCE_LABEL _ ("Enhance")
+#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo's appearance")
+static void enhance_single_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo);
+gboolean photo_enhance (Photo* self);
+static gboolean enhance_single_command_real_compress (Command* base, Command* command);
+GType enhance_multiple_command_get_type (void) G_GNUC_CONST;
+enum {
+ ENHANCE_MULTIPLE_COMMAND_DUMMY_PROPERTY
+};
+EnhanceMultipleCommand* enhance_multiple_command_new (GeeIterable* iter);
+EnhanceMultipleCommand* enhance_multiple_command_construct (GType object_type, GeeIterable* iter);
+static void enhance_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+GType straighten_command_get_type (void) G_GNUC_CONST;
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+#define STRAIGHTEN_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_STRAIGHTEN_COMMAND, StraightenCommandPrivate))
+enum {
+ STRAIGHTEN_COMMAND_DUMMY_PROPERTY
+};
+StraightenCommand* straighten_command_new (Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation);
+StraightenCommand* straighten_command_construct (GType object_type, Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation);
+static void straighten_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo);
+void data_collection_freeze_notifications (DataCollection* self);
+void photo_set_straighten (Photo* self, gdouble theta);
+void photo_set_crop (Photo* self, Box* crop);
+void data_collection_thaw_notifications (DataCollection* self);
+static void straighten_command_finalize (GObject* obj);
+GType crop_command_get_type (void) G_GNUC_CONST;
+#define CROP_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CROP_COMMAND, CropCommandPrivate))
+enum {
+ CROP_COMMAND_DUMMY_PROPERTY
+};
+CropCommand* crop_command_new (Photo* photo, Box* crop, const gchar* name, const gchar* explanation);
+CropCommand* crop_command_construct (GType object_type, Photo* photo, Box* crop, const gchar* name, const gchar* explanation);
+static void crop_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo);
+static void crop_command_finalize (GObject* obj);
+GType adjust_colors_single_command_get_type (void) G_GNUC_CONST;
+gpointer pixel_transformation_bundle_ref (gpointer instance);
+void pixel_transformation_bundle_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation_bundle (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation_bundle (GValue* value, gpointer v_object);
+void value_take_pixel_transformation_bundle (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation_bundle (const GValue* value);
+GType pixel_transformation_bundle_get_type (void) G_GNUC_CONST;
+#define ADJUST_COLORS_SINGLE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandPrivate))
+enum {
+ ADJUST_COLORS_SINGLE_COMMAND_DUMMY_PROPERTY
+};
+AdjustColorsSingleCommand* adjust_colors_single_command_new (Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+AdjustColorsSingleCommand* adjust_colors_single_command_construct (GType object_type, Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+static void adjust_colors_single_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo);
+void photo_set_color_adjustments (Photo* self, PixelTransformationBundle* new_adjustments);
+static gboolean adjust_colors_single_command_real_can_compress (GenericPhotoTransformationCommand* base, Command* command);
+static void adjust_colors_single_command_finalize (GObject* obj);
+GType adjust_colors_multiple_command_get_type (void) G_GNUC_CONST;
+#define ADJUST_COLORS_MULTIPLE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommandPrivate))
+enum {
+ ADJUST_COLORS_MULTIPLE_COMMAND_DUMMY_PROPERTY
+};
+AdjustColorsMultipleCommand* adjust_colors_multiple_command_new (GeeIterable* iter, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+AdjustColorsMultipleCommand* adjust_colors_multiple_command_construct (GType object_type, GeeIterable* iter, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+static void adjust_colors_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void adjust_colors_multiple_command_finalize (GObject* obj);
+GType redeye_command_get_type (void) G_GNUC_CONST;
+GType editing_tools_redeye_instance_get_type (void) G_GNUC_CONST;
+EditingToolsRedeyeInstance* editing_tools_redeye_instance_dup (const EditingToolsRedeyeInstance* self);
+void editing_tools_redeye_instance_free (EditingToolsRedeyeInstance* self);
+#define REDEYE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_REDEYE_COMMAND, RedeyeCommandPrivate))
+enum {
+ REDEYE_COMMAND_DUMMY_PROPERTY
+};
+RedeyeCommand* redeye_command_new (Photo* photo, EditingToolsRedeyeInstance* redeye_instance, const gchar* name, const gchar* explanation);
+RedeyeCommand* redeye_command_construct (GType object_type, Photo* photo, EditingToolsRedeyeInstance* redeye_instance, const gchar* name, const gchar* explanation);
+static void redeye_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo);
+void photo_add_redeye_instance (Photo* self, EditingToolsRedeyeInstance* redeye);
+static void redeye_command_finalize (GObject* obj);
+GType move_photos_command_get_type (void) G_GNUC_CONST;
+GType move_photos_command_real_move_photos_command_get_type (void) G_GNUC_CONST;
+enum {
+ MOVE_PHOTOS_COMMAND_DUMMY_PROPERTY
+};
+MovePhotosCommand* move_photos_command_construct (GType object_type, const gchar* name, const gchar* explanation);
+static void move_photos_command_real_prepare (Command* base);
+static void move_photos_command_real_execute (Command* base);
+static void move_photos_command_real_undo (Command* base);
+void command_undo (Command* self);
+#define MOVE_PHOTOS_COMMAND_REAL_MOVE_PHOTOS_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommandPrivate))
+enum {
+ MOVE_PHOTOS_COMMAND_REAL_MOVE_PHOTOS_COMMAND_DUMMY_PROPERTY
+};
+static void move_photos_command_real_move_photos_command_on_proxy_broken (MovePhotosCommandRealMovePhotosCommand* self);
+static void _move_photos_command_real_move_photos_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self);
+MovePhotosCommandRealMovePhotosCommand* move_photos_command_real_move_photos_command_new (Event* new_event, GeeIterable* source_views, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation);
+MovePhotosCommandRealMovePhotosCommand* move_photos_command_real_move_photos_command_construct (GType object_type, Event* new_event, GeeIterable* source_views, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation);
+Event* media_source_get_event (MediaSource* self);
+static void move_photos_command_real_move_photos_command_real_execute (Command* base);
+GType event_page_get_type (void) G_GNUC_CONST;
+Event* event_page_get_event (EventPage* self);
+gint event_source_get_media_count (EventSource* self);
+void library_window_switch_to_event (LibraryWindow* self, Event* event);
+static void move_photos_command_real_move_photos_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+gboolean media_source_set_event (MediaSource* self, Event* new_event);
+static void move_photos_command_real_move_photos_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void move_photos_command_real_move_photos_command_finalize (GObject* obj);
+static void move_photos_command_finalize (GObject* obj);
+GType new_event_command_get_type (void) G_GNUC_CONST;
+enum {
+ NEW_EVENT_COMMAND_DUMMY_PROPERTY
+};
+NewEventCommand* new_event_command_new (GeeIterable* iter);
+NewEventCommand* new_event_command_construct (GType object_type, GeeIterable* iter);
+#define RESOURCES_NEW_EVENT_LABEL _ ("New Event")
+Event* event_create_empty_event (MediaSource* source);
+GType set_event_command_get_type (void) G_GNUC_CONST;
+enum {
+ SET_EVENT_COMMAND_DUMMY_PROPERTY
+};
+SetEventCommand* set_event_command_new (GeeIterable* iter, Event* new_event);
+SetEventCommand* set_event_command_construct (GType object_type, GeeIterable* iter, Event* new_event);
+#define RESOURCES_SET_PHOTO_EVENT_LABEL _ ("Move Photos")
+#define RESOURCES_SET_PHOTO_EVENT_TOOLTIP _ ("Move photos to an event")
+GType merge_events_command_get_type (void) G_GNUC_CONST;
+enum {
+ MERGE_EVENTS_COMMAND_DUMMY_PROPERTY
+};
+MergeEventsCommand* merge_events_command_new (GeeIterable* iter);
+MergeEventsCommand* merge_events_command_construct (GType object_type, GeeIterable* iter);
+#define RESOURCES_MERGE_LABEL _ ("Merge")
+gboolean event_has_name (Event* self);
+GeeCollection* event_source_get_media (EventSource* self);
+ThumbnailView* thumbnail_view_new (ThumbnailSource* source);
+ThumbnailView* thumbnail_view_construct (GType object_type, ThumbnailSource* source);
+GType duplicate_multiple_photos_command_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+#define DUPLICATE_MULTIPLE_PHOTOS_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommandPrivate))
+enum {
+ DUPLICATE_MULTIPLE_PHOTOS_COMMAND_DUMMY_PROPERTY
+};
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+static void duplicate_multiple_photos_command_on_photo_destroyed (DuplicateMultiplePhotosCommand* self, DataSource* source);
+static void _duplicate_multiple_photos_command_on_photo_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+DuplicateMultiplePhotosCommand* duplicate_multiple_photos_command_new (GeeIterable* iter);
+DuplicateMultiplePhotosCommand* duplicate_multiple_photos_command_construct (GType object_type, GeeIterable* iter);
+#define RESOURCES_DUPLICATE_PHOTO_LABEL _ ("Duplicate")
+#define RESOURCES_DUPLICATE_PHOTO_TOOLTIP _ ("Make a duplicate of the photo")
+static void duplicate_multiple_photos_command_real_execute (Command* base);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+static void duplicate_multiple_photos_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+LibraryPhoto* library_photo_duplicate (LibraryPhoto* self, GError** error);
+GFile* media_source_get_file (MediaSource* self);
+static void duplicate_multiple_photos_command_real_undo (Command* base);
+static void duplicate_multiple_photos_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source);
+GType marker_get_type (void) G_GNUC_CONST;
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+gint source_collection_destroy_marked (SourceCollection* self, Marker* marker, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+static void duplicate_multiple_photos_command_finalize (GObject* obj);
+GType set_rating_single_command_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+#define SET_RATING_SINGLE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommandPrivate))
+enum {
+ SET_RATING_SINGLE_COMMAND_DUMMY_PROPERTY
+};
+SetRatingSingleCommand* set_rating_single_command_new (DataSource* source, Rating rating);
+SetRatingSingleCommand* set_rating_single_command_construct (GType object_type, DataSource* source, Rating rating);
+const gchar* resources_rating_label (Rating rating);
+Rating media_source_get_rating (MediaSource* self);
+SetRatingSingleCommand* set_rating_single_command_new_inc_dec (DataSource* source, gboolean is_incrementing);
+SetRatingSingleCommand* set_rating_single_command_construct_inc_dec (GType object_type, DataSource* source, gboolean is_incrementing);
+#define RESOURCES_INCREASE_RATING_LABEL _ ("Increase Rating")
+#define RESOURCES_DECREASE_RATING_LABEL _ ("Decrease Rating")
+static void set_rating_single_command_real_execute (Command* base);
+void media_source_set_rating (MediaSource* self, Rating rating);
+void media_source_increase_rating (MediaSource* self);
+void media_source_decrease_rating (MediaSource* self);
+static void set_rating_single_command_real_undo (Command* base);
+static void set_rating_single_command_finalize (GObject* obj);
+GType set_rating_command_get_type (void) G_GNUC_CONST;
+#define SET_RATING_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SET_RATING_COMMAND, SetRatingCommandPrivate))
+enum {
+ SET_RATING_COMMAND_DUMMY_PROPERTY
+};
+SetRatingCommand* set_rating_command_new (GeeIterable* iter, Rating rating);
+SetRatingCommand* set_rating_command_construct (GType object_type, GeeIterable* iter, Rating rating);
+gchar* resources_rating_progress (Rating rating);
+static void set_rating_command_save_source_states (SetRatingCommand* self, GeeIterable* iter);
+SetRatingCommand* set_rating_command_new_inc_dec (GeeIterable* iter, gboolean is_incrementing);
+SetRatingCommand* set_rating_command_construct_inc_dec (GType object_type, GeeIterable* iter, gboolean is_incrementing);
+static void set_rating_command_real_execute (Command* base);
+static void set_rating_command_real_undo (Command* base);
+static void set_rating_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void set_rating_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void set_rating_command_finalize (GObject* obj);
+GType set_raw_developer_command_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+#define SET_RAW_DEVELOPER_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommandPrivate))
+enum {
+ SET_RAW_DEVELOPER_COMMAND_DUMMY_PROPERTY
+};
+SetRawDeveloperCommand* set_raw_developer_command_new (GeeIterable* iter, RawDeveloper developer);
+SetRawDeveloperCommand* set_raw_developer_command_construct (GType object_type, GeeIterable* iter, RawDeveloper developer);
+static void set_raw_developer_command_save_source_states (SetRawDeveloperCommand* self, GeeIterable* iter);
+static gboolean set_raw_developer_command_is_raw_photo (SetRawDeveloperCommand* self, Photo* photo);
+RawDeveloper photo_get_raw_developer (Photo* self);
+static void set_raw_developer_command_real_execute (Command* base);
+static void set_raw_developer_command_real_undo (Command* base);
+static void set_raw_developer_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+void photo_set_raw_developer (Photo* self, RawDeveloper d);
+static void set_raw_developer_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+static void set_raw_developer_command_finalize (GObject* obj);
+GType adjust_date_time_photo_command_get_type (void) G_GNUC_CONST;
+GType dateable_get_type (void) G_GNUC_CONST;
+#define ADJUST_DATE_TIME_PHOTO_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommandPrivate))
+enum {
+ ADJUST_DATE_TIME_PHOTO_COMMAND_DUMMY_PROPERTY
+};
+AdjustDateTimePhotoCommand* adjust_date_time_photo_command_new (Dateable* dateable, gint64 time_shift, gboolean modify_original);
+AdjustDateTimePhotoCommand* adjust_date_time_photo_command_construct (GType object_type, Dateable* dateable, gint64 time_shift, gboolean modify_original);
+#define RESOURCES_ADJUST_DATE_TIME_LABEL _ ("Adjust Date and Time")
+static void adjust_date_time_photo_command_real_execute (Command* base);
+static void adjust_date_time_photo_command_set_time (AdjustDateTimePhotoCommand* self, Dateable* dateable, time_t exposure_time);
+time_t dateable_get_exposure_time (Dateable* self);
+ViewCollection* view_collection_new (const gchar* name);
+ViewCollection* view_collection_construct (GType object_type, const gchar* name);
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+GeeCollection* data_collection_get_all (DataCollection* self);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+EventView* event_view_new (EventSource* source);
+EventView* event_view_construct (GType object_type, EventSource* source);
+GType event_view_get_type (void) G_GNUC_CONST;
+void event_generate_single_event (MediaSource* media, ViewCollection* events_so_far, const gchar* event_name);
+static void adjust_date_time_photo_command_real_undo (Command* base);
+void photo_set_exposure_time_persistent (Photo* self, time_t time, GError** error);
+void dateable_set_exposure_time (Dateable* self, time_t target_time);
+static void adjust_date_time_photo_command_finalize (GObject* obj);
+GType adjust_date_time_photos_command_get_type (void) G_GNUC_CONST;
+#define ADJUST_DATE_TIME_PHOTOS_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommandPrivate))
+enum {
+ ADJUST_DATE_TIME_PHOTOS_COMMAND_DUMMY_PROPERTY
+};
+AdjustDateTimePhotosCommand* adjust_date_time_photos_command_new (GeeIterable* iter, gint64 time_shift, gboolean keep_relativity, gboolean modify_originals);
+AdjustDateTimePhotosCommand* adjust_date_time_photos_command_construct (GType object_type, GeeIterable* iter, gint64 time_shift, gboolean keep_relativity, gboolean modify_originals);
+static time_t* _time_t_dup (time_t* self);
+static void adjust_date_time_photos_command_real_execute (Command* base);
+void multiple_object_error_dialog (GeeArrayList* objects, const gchar* message, const gchar* title);
+static void adjust_date_time_photos_command_real_undo (Command* base);
+static void adjust_date_time_photos_command_set_time (AdjustDateTimePhotosCommand* self, Dateable* dateable, time_t exposure_time);
+static void adjust_date_time_photos_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void adjust_date_time_photos_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source);
+static void adjust_date_time_photos_command_finalize (GObject* obj);
+GType add_tags_command_get_type (void) G_GNUC_CONST;
+#define ADD_TAGS_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADD_TAGS_COMMAND, AddTagsCommandPrivate))
+enum {
+ ADD_TAGS_COMMAND_DUMMY_PROPERTY
+};
+static void add_tags_command_on_proxy_broken (AddTagsCommand* self);
+static void _add_tags_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self);
+static void add_tags_command_on_source_destroyed (AddTagsCommand* self, DataSource* source);
+static void _add_tags_command_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+AddTagsCommand* add_tags_command_new (gchar** paths, int paths_length1, GeeCollection* sources);
+AddTagsCommand* add_tags_command_construct (GType object_type, gchar** paths, int paths_length1, GeeCollection* sources);
+gchar* resources_add_tags_label (gchar** names, int names_length1);
+GeeList* hierarchical_tag_utilities_enumerate_parent_paths (const gchar* in_path);
+GType tag_get_type (void) G_GNUC_CONST;
+Tag* tag_for_path (const gchar* name);
+gboolean tag_contains (Tag* self, MediaSource* source);
+static void add_tags_command_real_execute (Command* base);
+void tag_attach_many (Tag* self, GeeCollection* sources);
+static void add_tags_command_real_undo (Command* base);
+GeeMultiMap* tag_detach_many (Tag* self, GeeCollection* sources);
+static void add_tags_command_finalize (GObject* obj);
+GType rename_tag_command_get_type (void) G_GNUC_CONST;
+#define RENAME_TAG_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_RENAME_TAG_COMMAND, RenameTagCommandPrivate))
+enum {
+ RENAME_TAG_COMMAND_DUMMY_PROPERTY
+};
+RenameTagCommand* rename_tag_command_new (Tag* tag, const gchar* new_name);
+RenameTagCommand* rename_tag_command_construct (GType object_type, Tag* tag, const gchar* new_name);
+gchar* resources_rename_tag_label (const gchar* old_name, const gchar* new_name);
+gchar* tag_get_user_visible_name (Tag* self);
+gchar* data_object_get_name (DataObject* self);
+static void rename_tag_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source);
+gboolean tag_rename (Tag* self, const gchar* name);
+gchar* resources_rename_tag_exists_message (const gchar* name);
+static void rename_tag_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source);
+static void rename_tag_command_finalize (GObject* obj);
+GType delete_tag_command_get_type (void) G_GNUC_CONST;
+#define DELETE_TAG_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DELETE_TAG_COMMAND, DeleteTagCommandPrivate))
+enum {
+ DELETE_TAG_COMMAND_DUMMY_PROPERTY
+};
+DeleteTagCommand* delete_tag_command_new (Tag* tag);
+DeleteTagCommand* delete_tag_command_construct (GType object_type, Tag* tag);
+gchar* resources_delete_tag_label (const gchar* name);
+static void delete_tag_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source);
+GeeList* tag_get_hierarchical_children (Tag* self);
+static void delete_tag_command_on_proxy_broken (DeleteTagCommand* self);
+static void _delete_tag_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self);
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+static void delete_tag_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source);
+static void delete_tag_command_finalize (GObject* obj);
+GType new_child_tag_command_get_type (void) G_GNUC_CONST;
+#define NEW_CHILD_TAG_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommandPrivate))
+enum {
+ NEW_CHILD_TAG_COMMAND_DUMMY_PROPERTY
+};
+NewChildTagCommand* new_child_tag_command_new (Tag* tag);
+NewChildTagCommand* new_child_tag_command_construct (GType object_type, Tag* tag);
+static void new_child_tag_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source);
+Tag* tag_create_new_child (Tag* self);
+static void new_child_tag_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source);
+Tag* new_child_tag_command_get_created_child (NewChildTagCommand* self);
+static void new_child_tag_command_finalize (GObject* obj);
+GType new_root_tag_command_get_type (void) G_GNUC_CONST;
+#define NEW_ROOT_TAG_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommandPrivate))
+enum {
+ NEW_ROOT_TAG_COMMAND_DUMMY_PROPERTY
+};
+NewRootTagCommand* new_root_tag_command_new (void);
+NewRootTagCommand* new_root_tag_command_construct (GType object_type);
+static void new_root_tag_command_real_execute (Command* base);
+Tag* tag_create_new_root (void);
+static void new_root_tag_command_real_undo (Command* base);
+Tag* new_root_tag_command_get_created_tag (NewRootTagCommand* self);
+static void new_root_tag_command_finalize (GObject* obj);
+GType reparent_tag_command_get_type (void) G_GNUC_CONST;
+#define REPARENT_TAG_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_REPARENT_TAG_COMMAND, ReparentTagCommandPrivate))
+enum {
+ REPARENT_TAG_COMMAND_DUMMY_PROPERTY
+};
+static void reparent_tag_command_on_items_destroyed (ReparentTagCommand* self, GeeCollection* destroyed);
+static void _reparent_tag_command_on_items_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self);
+ReparentTagCommand* reparent_tag_command_new (Tag* tag, const gchar* new_parent_path);
+ReparentTagCommand* reparent_tag_command_construct (GType object_type, Tag* tag, const gchar* new_parent_path);
+gchar* tag_get_path (Tag* self);
+#define TAG_PATH_SEPARATOR_STRING "/"
+gchar* hierarchical_tag_utilities_get_root_path_form (const gchar* client_path);
+gboolean tag_source_collection_exists (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root);
+GeeCollection* tag_get_sources (Tag* self);
+static GeeMap* reparent_tag_command_get_child_structure_at (ReparentTagCommand* self, const gchar* client_path);
+static void reparent_tag_command_restore_child_attachments_at (ReparentTagCommand* self, const gchar* client_path, GeeMap* child_structure);
+void tag_promote (Tag* self);
+void tag_attach (Tag* self, MediaSource* source);
+static void reparent_tag_command_reattach_in_play_sources_at (ReparentTagCommand* self, const gchar* client_path);
+static void reparent_tag_command_save_before_state (ReparentTagCommand* self);
+static void reparent_tag_command_restore_before_state (ReparentTagCommand* self);
+GeeList* tag_detach (Tag* self, MediaSource* source);
+static void reparent_tag_command_save_after_state (ReparentTagCommand* self);
+static void reparent_tag_command_restore_after_state (ReparentTagCommand* self);
+static void reparent_tag_command_prepare_parent (ReparentTagCommand* self, const gchar* path);
+static void reparent_tag_command_do_source_parent_detachments (ReparentTagCommand* self);
+Tag* tag_get_hierarchical_parent (Tag* self);
+gint tag_get_attachment_count (Tag* self, MediaSource* source);
+static void reparent_tag_command_do_source_parent_reattachments (ReparentTagCommand* self);
+static void reparent_tag_command_do_destination_parent_detachments (ReparentTagCommand* self);
+static void reparent_tag_command_do_destination_parent_reattachments (ReparentTagCommand* self);
+static void reparent_tag_command_copy_subtree (ReparentTagCommand* self, const gchar* from, const gchar* to);
+static void reparent_tag_command_destroy_subtree (ReparentTagCommand* self, const gchar* client_path);
+static void reparent_tag_command_real_execute (Command* base);
+static void reparent_tag_command_real_undo (Command* base);
+void hierarchical_tag_utilities_cleanup_root_path (const gchar* path);
+static void reparent_tag_command_finalize (GObject* obj);
+GType modify_tags_command_get_type (void) G_GNUC_CONST;
+#define MODIFY_TAGS_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommandPrivate))
+enum {
+ MODIFY_TAGS_COMMAND_DUMMY_PROPERTY
+};
+static void modify_tags_command_on_proxy_broken (ModifyTagsCommand* self);
+static void _modify_tags_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self);
+ModifyTagsCommand* modify_tags_command_new (MediaSource* media, GeeCollection* new_tag_list);
+ModifyTagsCommand* modify_tags_command_construct (GType object_type, MediaSource* media, GeeCollection* new_tag_list);
+#define RESOURCES_MODIFY_TAGS_LABEL _ ("Modify Tags")
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
+static void modify_tags_command_real_execute (Command* base);
+static void modify_tags_command_real_undo (Command* base);
+static void modify_tags_command_finalize (GObject* obj);
+GType tag_untag_photos_command_get_type (void) G_GNUC_CONST;
+#define TAG_UNTAG_PHOTOS_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommandPrivate))
+enum {
+ TAG_UNTAG_PHOTOS_COMMAND_DUMMY_PROPERTY
+};
+static void tag_untag_photos_command_on_source_destroyed (TagUntagPhotosCommand* self, DataSource* source);
+static void _tag_untag_photos_command_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+TagUntagPhotosCommand* tag_untag_photos_command_new (Tag* tag, GeeCollection* sources, gint count, gboolean attach);
+TagUntagPhotosCommand* tag_untag_photos_command_construct (GType object_type, Tag* tag, GeeCollection* sources, gint count, gboolean attach);
+gchar* resources_tag_photos_label (const gchar* name, gint count);
+gchar* resources_untag_photos_label (const gchar* name, gint count);
+static void tag_untag_photos_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source);
+static void tag_untag_photos_command_do_attach (TagUntagPhotosCommand* self, Tag* tag);
+static void tag_untag_photos_command_do_detach (TagUntagPhotosCommand* self, Tag* tag);
+static void tag_untag_photos_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source);
+gchar* data_object_to_string (DataObject* self);
+static void tag_untag_photos_command_finalize (GObject* obj);
+GType rename_saved_search_command_get_type (void) G_GNUC_CONST;
+GType saved_search_get_type (void) G_GNUC_CONST;
+#define RENAME_SAVED_SEARCH_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommandPrivate))
+enum {
+ RENAME_SAVED_SEARCH_COMMAND_DUMMY_PROPERTY
+};
+RenameSavedSearchCommand* rename_saved_search_command_new (SavedSearch* search, const gchar* new_name);
+RenameSavedSearchCommand* rename_saved_search_command_construct (GType object_type, SavedSearch* search, const gchar* new_name);
+gchar* resources_rename_search_label (const gchar* old_name, const gchar* new_name);
+static void rename_saved_search_command_real_execute (Command* base);
+gboolean saved_search_rename (SavedSearch* self, const gchar* new_name);
+gchar* resources_rename_search_exists_message (const gchar* name);
+static void rename_saved_search_command_real_undo (Command* base);
+static void rename_saved_search_command_finalize (GObject* obj);
+GType delete_saved_search_command_get_type (void) G_GNUC_CONST;
+#define DELETE_SAVED_SEARCH_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandPrivate))
+enum {
+ DELETE_SAVED_SEARCH_COMMAND_DUMMY_PROPERTY
+};
+DeleteSavedSearchCommand* delete_saved_search_command_new (SavedSearch* search);
+DeleteSavedSearchCommand* delete_saved_search_command_construct (GType object_type, SavedSearch* search);
+gchar* resources_delete_search_label (const gchar* name);
+static void delete_saved_search_command_real_execute (Command* base);
+gpointer saved_search_table_ref (gpointer instance);
+void saved_search_table_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_table (GValue* value, gpointer v_object);
+void value_take_saved_search_table (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_table (const GValue* value);
+GType saved_search_table_get_type (void) G_GNUC_CONST;
+SavedSearchTable* saved_search_table_get_instance (void);
+void saved_search_table_remove (SavedSearchTable* self, SavedSearch* search);
+static void delete_saved_search_command_real_undo (Command* base);
+void saved_search_reconstitute (SavedSearch* self);
+static void delete_saved_search_command_finalize (GObject* obj);
+GType trash_untrash_photos_command_get_type (void) G_GNUC_CONST;
+#define TRASH_UNTRASH_PHOTOS_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandPrivate))
+enum {
+ TRASH_UNTRASH_PHOTOS_COMMAND_DUMMY_PROPERTY
+};
+static void trash_untrash_photos_command_on_photo_destroyed (TrashUntrashPhotosCommand* self, DataSource* source);
+static void _trash_untrash_photos_command_on_photo_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_new (GeeCollection* sources, gboolean to_trash);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_construct (GType object_type, GeeCollection* sources, gboolean to_trash);
+static ProgressDialog* trash_untrash_photos_command_get_progress_dialog (TrashUntrashPhotosCommand* self, gboolean to_trash);
+void progress_dialog_update_display_every (ProgressDialog* self, gint update_every);
+static void trash_untrash_photos_command_real_execute (Command* base);
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+static void trash_untrash_photos_command_trash (TrashUntrashPhotosCommand* self, ProgressMonitor monitor, void* monitor_target);
+static void trash_untrash_photos_command_untrash (TrashUntrashPhotosCommand* self, ProgressMonitor monitor, void* monitor_target);
+static void trash_untrash_photos_command_real_undo (Command* base);
+void media_source_trash (MediaSource* self);
+void media_source_untrash (MediaSource* self);
+static void trash_untrash_photos_command_finalize (GObject* obj);
+GType flag_unflag_command_get_type (void) G_GNUC_CONST;
+#define FLAG_UNFLAG_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandPrivate))
+enum {
+ FLAG_UNFLAG_COMMAND_DUMMY_PROPERTY
+};
+#define FLAG_UNFLAG_COMMAND_MIN_PROGRESS_BAR_THRESHOLD 1000
+#define FLAG_UNFLAG_COMMAND_FLAG_SELECTED_STRING _ ("Flag selected photos")
+#define FLAG_UNFLAG_COMMAND_UNFLAG_SELECTED_STRING _ ("Unflag selected photos")
+#define FLAG_UNFLAG_COMMAND_FLAG_PROGRESS _ ("Flagging selected photos")
+#define FLAG_UNFLAG_COMMAND_UNFLAG_PROGRESS _ ("Unflagging selected photos")
+FlagUnflagCommand* flag_unflag_command_new (GeeCollection* sources, gboolean flag);
+FlagUnflagCommand* flag_unflag_command_construct (GType object_type, GeeCollection* sources, gboolean flag);
+static void flag_unflag_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources);
+static void flag_unflag_command_flag_unflag (FlagUnflagCommand* self, DataSource* source, gboolean flag);
+static void flag_unflag_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources);
+GType flaggable_get_type (void) G_GNUC_CONST;
+void flaggable_mark_flagged (Flaggable* self);
+void flaggable_mark_unflagged (Flaggable* self);
+static void flag_unflag_command_finalize (GObject* obj);
+
+
+static void _page_command_on_page_destroyed_gtk_widget_destroy (GtkWidget* _sender, gpointer self) {
+#line 45 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_command_on_page_destroyed ((PageCommand*) self);
+#line 2757 "Commands.c"
+}
+
+
+static void _page_command_on_photo_destroyed_data_source_destroyed (DataSource* _sender, gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_command_on_photo_destroyed ((PageCommand*) self);
+#line 2764 "Commands.c"
+}
+
+
+static void _page_command_on_controller_destroyed_gtk_widget_destroy (GtkWidget* _sender, gpointer self) {
+#line 51 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_command_on_controller_destroyed ((PageCommand*) self);
+#line 2771 "Commands.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 27 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2778 "Commands.c"
+}
+
+
+PageCommand* page_command_construct (GType object_type, const gchar* name, const gchar* explanation) {
+ PageCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 15 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 16 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = name;
+#line 16 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = explanation;
+#line 16 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (PageCommand*) command_construct (object_type, _tmp0_, _tmp1_);
+#line 18 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 18 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 18 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PAGE_WINDOW, PageWindow));
+#line 18 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->page);
+#line 18 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->page = _tmp4_;
+#line 18 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 20 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->page;
+#line 20 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp5_ != NULL) {
+#line 2816 "Commands.c"
+ Page* _tmp6_ = NULL;
+ LibraryPhotoPage* photo_page = NULL;
+ Page* _tmp7_ = NULL;
+ LibraryPhotoPage* _tmp8_ = NULL;
+ LibraryPhotoPage* _tmp9_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->page;
+#line 21 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), "destroy", (GCallback) _page_command_on_page_destroyed_gtk_widget_destroy, self, 0);
+#line 27 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->page;
+#line 27 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, TYPE_LIBRARY_PHOTO_PAGE) ? ((LibraryPhotoPage*) _tmp7_) : NULL);
+#line 27 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_page = _tmp8_;
+#line 28 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = photo_page;
+#line 28 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp9_ != NULL) {
+#line 2836 "Commands.c"
+ LibraryPhotoPage* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+ LibraryPhotoPage* _tmp12_ = NULL;
+ CollectionPage* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ Photo* _tmp15_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = photo_page;
+#line 29 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 29 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->library_photo);
+#line 29 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->library_photo = _tmp11_;
+#line 30 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = photo_page;
+#line 30 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = library_photo_page_get_controller_page (_tmp12_);
+#line 30 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->collection_page);
+#line 30 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->collection_page = _tmp13_;
+#line 32 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = self->priv->library_photo;
+#line 32 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp15_ != NULL) {
+#line 2863 "Commands.c"
+ CollectionPage* _tmp16_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = self->priv->collection_page;
+#line 32 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _tmp16_ != NULL;
+#line 2869 "Commands.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = FALSE;
+#line 2873 "Commands.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp14_) {
+#line 2877 "Commands.c"
+ Photo* _tmp17_ = NULL;
+ CollectionPage* _tmp18_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = self->priv->library_photo;
+#line 33 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_SOURCE, DataSource), "destroyed", (GCallback) _page_command_on_photo_destroyed_data_source_destroyed, self, 0);
+#line 34 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = self->priv->collection_page;
+#line 34 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), "destroy", (GCallback) _page_command_on_controller_destroyed_gtk_widget_destroy, self, 0);
+#line 2888 "Commands.c"
+ } else {
+#line 36 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->library_photo);
+#line 36 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->library_photo = NULL;
+#line 37 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->collection_page);
+#line 37 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->collection_page = NULL;
+#line 2898 "Commands.c"
+ }
+ }
+#line 20 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo_page);
+#line 2903 "Commands.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 2907 "Commands.c"
+}
+
+
+void page_command_set_auto_return_to_page (PageCommand* self, gboolean auto_return) {
+ gboolean _tmp0_ = FALSE;
+#line 54 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PAGE_COMMAND (self));
+#line 55 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = auto_return;
+#line 55 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->auto_return = _tmp0_;
+#line 2919 "Commands.c"
+}
+
+
+static void page_command_real_prepare (Command* base) {
+ PageCommand * self;
+ gboolean _tmp0_ = FALSE;
+#line 58 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE_COMMAND, PageCommand);
+#line 59 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->auto_return;
+#line 59 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_) {
+#line 60 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_command_return_to_page (self);
+#line 2934 "Commands.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (page_command_parent_class)->prepare (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 2938 "Commands.c"
+}
+
+
+void page_command_return_to_page (PageCommand* self) {
+ LibraryPhotoPage* photo_page = NULL;
+ Page* _tmp0_ = NULL;
+ LibraryPhotoPage* _tmp1_ = NULL;
+ LibraryPhotoPage* _tmp2_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PAGE_COMMAND (self));
+#line 66 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->page;
+#line 66 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO_PAGE) ? ((LibraryPhotoPage*) _tmp0_) : NULL);
+#line 66 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_page = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = photo_page;
+#line 68 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ != NULL) {
+#line 2959 "Commands.c"
+ gboolean _tmp3_ = FALSE;
+ Photo* _tmp4_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->library_photo;
+#line 69 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_ != NULL) {
+#line 2966 "Commands.c"
+ CollectionPage* _tmp5_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->collection_page;
+#line 69 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp5_ != NULL;
+#line 2972 "Commands.c"
+ } else {
+#line 69 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = FALSE;
+#line 2976 "Commands.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_) {
+#line 2980 "Commands.c"
+ gboolean photo_in_collection = FALSE;
+ gint count = 0;
+ CollectionPage* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gboolean _tmp25_ = FALSE;
+#line 70 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_in_collection = FALSE;
+#line 71 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->collection_page;
+#line 71 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PAGE, Page));
+#line 71 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 71 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection));
+#line 71 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 71 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 71 "/home/jens/Source/shotwell/src/Commands.vala"
+ count = _tmp10_;
+#line 3005 "Commands.c"
+ {
+ gint i = 0;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = 0;
+#line 3010 "Commands.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = TRUE;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 3017 "Commands.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ CollectionPage* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ DataObject* _tmp19_ = NULL;
+ Thumbnail* _tmp20_ = NULL;
+ MediaSource* _tmp21_ = NULL;
+ MediaSource* _tmp22_ = NULL;
+ Photo* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp11_) {
+#line 3032 "Commands.c"
+ gint _tmp12_ = 0;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = i;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp12_ + 1;
+#line 3038 "Commands.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = FALSE;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = i;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = count;
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 72 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 3050 "Commands.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = self->priv->collection_page;
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PAGE, Page));
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = i;
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection), _tmp18_);
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_THUMBNAIL, Thumbnail);
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = thumbnail_get_media_source (_tmp20_);
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _tmp21_;
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = self->priv->library_photo;
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _tmp22_ == G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp22_);
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp20_);
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 73 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp24_) {
+#line 74 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_in_collection = TRUE;
+#line 75 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 3084 "Commands.c"
+ }
+ }
+ }
+ }
+#line 79 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = photo_in_collection;
+#line 79 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp25_) {
+#line 3093 "Commands.c"
+ LibraryWindow* _tmp26_ = NULL;
+ LibraryWindow* _tmp27_ = NULL;
+ CollectionPage* _tmp28_ = NULL;
+ Photo* _tmp29_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = library_window_get_app ();
+#line 80 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = _tmp26_;
+#line 80 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = self->priv->collection_page;
+#line 80 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = self->priv->library_photo;
+#line 80 "/home/jens/Source/shotwell/src/Commands.vala"
+ library_window_switch_to_photo_page (_tmp27_, _tmp28_, _tmp29_);
+#line 80 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp27_);
+#line 3110 "Commands.c"
+ }
+ }
+ } else {
+ Page* _tmp30_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = self->priv->page;
+#line 82 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp30_ != NULL) {
+#line 3119 "Commands.c"
+ AppWindow* _tmp31_ = NULL;
+ AppWindow* _tmp32_ = NULL;
+ Page* _tmp33_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = app_window_get_instance ();
+#line 83 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = _tmp31_;
+#line 83 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = self->priv->page;
+#line 83 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_current_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_PAGE_WINDOW, PageWindow), _tmp33_);
+#line 83 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp32_);
+#line 3133 "Commands.c"
+ }
+ }
+#line 65 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo_page);
+#line 3138 "Commands.c"
+}
+
+
+static void page_command_on_page_destroyed (PageCommand* self) {
+ Page* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 86 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PAGE_COMMAND (self));
+#line 87 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->page;
+#line 87 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("destroy", gtk_widget_get_type (), &_tmp1_, NULL, FALSE);
+#line 87 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _page_command_on_page_destroyed_gtk_widget_destroy, self);
+#line 88 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->page);
+#line 88 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->page = NULL;
+#line 3157 "Commands.c"
+}
+
+
+static void page_command_on_photo_destroyed (PageCommand* self) {
+ Photo* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 91 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PAGE_COMMAND (self));
+#line 92 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->library_photo;
+#line 92 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("destroyed", TYPE_DATA_SOURCE, &_tmp1_, NULL, FALSE);
+#line 92 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _page_command_on_photo_destroyed_data_source_destroyed, self);
+#line 93 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->library_photo);
+#line 93 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->library_photo = NULL;
+#line 3176 "Commands.c"
+}
+
+
+static void page_command_on_controller_destroyed (PageCommand* self) {
+ CollectionPage* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 96 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PAGE_COMMAND (self));
+#line 97 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->collection_page;
+#line 97 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("destroy", gtk_widget_get_type (), &_tmp1_, NULL, FALSE);
+#line 97 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _page_command_on_controller_destroyed_gtk_widget_destroy, self);
+#line 98 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->collection_page);
+#line 98 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->collection_page = NULL;
+#line 3195 "Commands.c"
+}
+
+
+static void page_command_class_init (PageCommandClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_command_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (PageCommandPrivate));
+#line 9 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->prepare = page_command_real_prepare;
+#line 9 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = page_command_finalize;
+#line 3208 "Commands.c"
+}
+
+
+static void page_command_instance_init (PageCommand * self) {
+#line 9 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = PAGE_COMMAND_GET_PRIVATE (self);
+#line 11 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->auto_return = TRUE;
+#line 12 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->library_photo = NULL;
+#line 13 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->collection_page = NULL;
+#line 3221 "Commands.c"
+}
+
+
+static void page_command_finalize (GObject* obj) {
+ PageCommand * self;
+ Page* _tmp0_ = NULL;
+ Photo* _tmp3_ = NULL;
+ CollectionPage* _tmp6_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PAGE_COMMAND, PageCommand);
+#line 44 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->page;
+#line 44 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_ != NULL) {
+#line 3236 "Commands.c"
+ Page* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 45 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->page;
+#line 45 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("destroy", gtk_widget_get_type (), &_tmp2_, NULL, FALSE);
+#line 45 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _page_command_on_page_destroyed_gtk_widget_destroy, self);
+#line 3245 "Commands.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->library_photo;
+#line 47 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_ != NULL) {
+#line 3251 "Commands.c"
+ Photo* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 48 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->library_photo;
+#line 48 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("destroyed", TYPE_DATA_SOURCE, &_tmp5_, NULL, FALSE);
+#line 48 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _page_command_on_photo_destroyed_data_source_destroyed, self);
+#line 3260 "Commands.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->collection_page;
+#line 50 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ != NULL) {
+#line 3266 "Commands.c"
+ CollectionPage* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 51 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->collection_page;
+#line 51 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("destroy", gtk_widget_get_type (), &_tmp8_, NULL, FALSE);
+#line 51 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _page_command_on_controller_destroyed_gtk_widget_destroy, self);
+#line 3275 "Commands.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->page);
+#line 12 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->library_photo);
+#line 13 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->collection_page);
+#line 9 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (page_command_parent_class)->finalize (obj);
+#line 3285 "Commands.c"
+}
+
+
+GType page_command_get_type (void) {
+ static volatile gsize page_command_type_id__volatile = 0;
+ if (g_once_init_enter (&page_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PageCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) page_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PageCommand), 0, (GInstanceInitFunc) page_command_instance_init, NULL };
+ GType page_command_type_id;
+ page_command_type_id = g_type_register_static (TYPE_COMMAND, "PageCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&page_command_type_id__volatile, page_command_type_id);
+ }
+ return page_command_type_id__volatile;
+}
+
+
+static void _single_data_source_command_on_source_destroyed_data_source_destroyed (DataSource* _sender, gpointer self) {
+#line 115 "/home/jens/Source/shotwell/src/Commands.vala"
+ single_data_source_command_on_source_destroyed ((SingleDataSourceCommand*) self);
+#line 3304 "Commands.c"
+}
+
+
+SingleDataSourceCommand* single_data_source_command_construct (GType object_type, DataSource* source, const gchar* name, const gchar* explanation) {
+ SingleDataSourceCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 106 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 106 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 107 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = name;
+#line 107 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = explanation;
+#line 107 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SingleDataSourceCommand*) page_command_construct (object_type, _tmp0_, _tmp1_);
+#line 109 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = source;
+#line 109 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 109 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->source);
+#line 109 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->source = _tmp3_;
+#line 111 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = source;
+#line 111 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp4_, "destroyed", (GCallback) _single_data_source_command_on_source_destroyed_data_source_destroyed, self, 0);
+#line 106 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 3341 "Commands.c"
+}
+
+
+DataSource* single_data_source_command_get_source (SingleDataSourceCommand* self) {
+ DataSource* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_SINGLE_DATA_SOURCE_COMMAND (self), NULL);
+#line 119 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->source;
+#line 119 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 119 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = _tmp1_;
+#line 119 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 3359 "Commands.c"
+}
+
+
+static void single_data_source_command_on_source_destroyed (SingleDataSourceCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SINGLE_DATA_SOURCE_COMMAND (self));
+#line 125 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 125 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 125 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 125 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 3376 "Commands.c"
+}
+
+
+static void single_data_source_command_class_init (SingleDataSourceCommandClass * klass) {
+#line 103 "/home/jens/Source/shotwell/src/Commands.vala"
+ single_data_source_command_parent_class = g_type_class_peek_parent (klass);
+#line 103 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = single_data_source_command_finalize;
+#line 3385 "Commands.c"
+}
+
+
+static void single_data_source_command_instance_init (SingleDataSourceCommand * self) {
+}
+
+
+static void single_data_source_command_finalize (GObject* obj) {
+ SingleDataSourceCommand * self;
+ DataSource* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 103 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand);
+#line 115 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->source;
+#line 115 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("destroyed", TYPE_DATA_SOURCE, &_tmp1_, NULL, FALSE);
+#line 115 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _single_data_source_command_on_source_destroyed_data_source_destroyed, self);
+#line 104 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->source);
+#line 103 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (single_data_source_command_parent_class)->finalize (obj);
+#line 3409 "Commands.c"
+}
+
+
+GType single_data_source_command_get_type (void) {
+ static volatile gsize single_data_source_command_type_id__volatile = 0;
+ if (g_once_init_enter (&single_data_source_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SingleDataSourceCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) single_data_source_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SingleDataSourceCommand), 0, (GInstanceInitFunc) single_data_source_command_instance_init, NULL };
+ GType single_data_source_command_type_id;
+ single_data_source_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "SingleDataSourceCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&single_data_source_command_type_id__volatile, single_data_source_command_type_id);
+ }
+ return single_data_source_command_type_id__volatile;
+}
+
+
+static void _simple_proxyable_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self) {
+#line 141 "/home/jens/Source/shotwell/src/Commands.vala"
+ simple_proxyable_command_on_proxy_broken ((SimpleProxyableCommand*) self);
+#line 3428 "Commands.c"
+}
+
+
+SimpleProxyableCommand* simple_proxyable_command_construct (GType object_type, Proxyable* proxyable, const gchar* name, const gchar* explanation) {
+ SimpleProxyableCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ Proxyable* _tmp2_ = NULL;
+ SourceProxy* _tmp3_ = NULL;
+ SourceProxy* _tmp4_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PROXYABLE (proxyable), NULL);
+#line 133 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 133 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 134 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = name;
+#line 134 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = explanation;
+#line 134 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SimpleProxyableCommand*) page_command_construct (object_type, _tmp0_, _tmp1_);
+#line 136 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = proxyable;
+#line 136 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = proxyable_get_proxy (_tmp2_);
+#line 136 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (self->priv->proxy);
+#line 136 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->proxy = _tmp3_;
+#line 137 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->proxy;
+#line 137 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp4_, "broken", (GCallback) _simple_proxyable_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 133 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 3465 "Commands.c"
+}
+
+
+static void simple_proxyable_command_real_execute (Command* base) {
+ SimpleProxyableCommand * self;
+ SourceProxy* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand);
+#line 146 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->proxy;
+#line 146 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source_proxy_get_source (_tmp0_);
+#line 146 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 146 "/home/jens/Source/shotwell/src/Commands.vala"
+ simple_proxyable_command_execute_on_source (self, _tmp2_);
+#line 146 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp2_);
+#line 3486 "Commands.c"
+}
+
+
+static void simple_proxyable_command_real_execute_on_source (SimpleProxyableCommand* self, DataSource* source) {
+#line 149 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Type `%s' does not implement abstract method `simple_proxyable_command_execute_on_source'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 149 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 3495 "Commands.c"
+}
+
+
+void simple_proxyable_command_execute_on_source (SimpleProxyableCommand* self, DataSource* source) {
+#line 149 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SIMPLE_PROXYABLE_COMMAND (self));
+#line 149 "/home/jens/Source/shotwell/src/Commands.vala"
+ SIMPLE_PROXYABLE_COMMAND_GET_CLASS (self)->execute_on_source (self, source);
+#line 3504 "Commands.c"
+}
+
+
+static void simple_proxyable_command_real_undo (Command* base) {
+ SimpleProxyableCommand * self;
+ SourceProxy* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand);
+#line 152 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->proxy;
+#line 152 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source_proxy_get_source (_tmp0_);
+#line 152 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 152 "/home/jens/Source/shotwell/src/Commands.vala"
+ simple_proxyable_command_undo_on_source (self, _tmp2_);
+#line 152 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp2_);
+#line 3525 "Commands.c"
+}
+
+
+static void simple_proxyable_command_real_undo_on_source (SimpleProxyableCommand* self, DataSource* source) {
+#line 155 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Type `%s' does not implement abstract method `simple_proxyable_command_undo_on_source'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 155 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 3534 "Commands.c"
+}
+
+
+void simple_proxyable_command_undo_on_source (SimpleProxyableCommand* self, DataSource* source) {
+#line 155 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SIMPLE_PROXYABLE_COMMAND (self));
+#line 155 "/home/jens/Source/shotwell/src/Commands.vala"
+ SIMPLE_PROXYABLE_COMMAND_GET_CLASS (self)->undo_on_source (self, source);
+#line 3543 "Commands.c"
+}
+
+
+void simple_proxyable_command_add_proxyables (SimpleProxyableCommand* self, GeeCollection* proxyables) {
+#line 161 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SIMPLE_PROXYABLE_COMMAND (self));
+#line 161 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (proxyables));
+#line 3552 "Commands.c"
+ {
+ GeeIterator* _proxyable_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = proxyables;
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxyable_it = _tmp1_;
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 3565 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ Proxyable* proxyable = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceProxy* added_proxy = NULL;
+ Proxyable* _tmp6_ = NULL;
+ SourceProxy* _tmp7_ = NULL;
+ SourceProxy* _tmp8_ = NULL;
+ GeeHashSet* _tmp9_ = NULL;
+ SourceProxy* _tmp10_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _proxyable_it;
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 3585 "Commands.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _proxyable_it;
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxyable = (Proxyable*) _tmp5_;
+#line 163 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = proxyable;
+#line 163 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = proxyable_get_proxy (_tmp6_);
+#line 163 "/home/jens/Source/shotwell/src/Commands.vala"
+ added_proxy = _tmp7_;
+#line 164 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = added_proxy;
+#line 164 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp8_, "broken", (GCallback) _simple_proxyable_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 165 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->proxies;
+#line 165 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = added_proxy;
+#line 165 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (added_proxy);
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (proxyable);
+#line 3613 "Commands.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxyable_it);
+#line 3617 "Commands.c"
+ }
+}
+
+
+void simple_proxyable_command_clear_added_proxies (SimpleProxyableCommand* self) {
+ GeeHashSet* _tmp8_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SIMPLE_PROXYABLE_COMMAND (self));
+#line 3626 "Commands.c"
+ {
+ GeeIterator* _added_proxy_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->proxies;
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _added_proxy_it = _tmp1_;
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 3639 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceProxy* added_proxy = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceProxy* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _added_proxy_it;
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 3655 "Commands.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _added_proxy_it;
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ added_proxy = (SourceProxy*) _tmp5_;
+#line 172 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = added_proxy;
+#line 172 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp7_, NULL, FALSE);
+#line 172 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _simple_proxyable_command_on_proxy_broken_source_proxy_broken, self);
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (added_proxy);
+#line 3671 "Commands.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_added_proxy_it);
+#line 3675 "Commands.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = self->priv->proxies;
+#line 174 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 3681 "Commands.c"
+}
+
+
+static void simple_proxyable_command_on_proxy_broken (SimpleProxyableCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SIMPLE_PROXYABLE_COMMAND (self));
+#line 178 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_debug ("Commands.vala:178: on_proxy_broken");
+#line 179 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 179 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 179 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 179 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 3700 "Commands.c"
+}
+
+
+static void simple_proxyable_command_class_init (SimpleProxyableCommandClass * klass) {
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ simple_proxyable_command_parent_class = g_type_class_peek_parent (klass);
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (SimpleProxyableCommandPrivate));
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = simple_proxyable_command_real_execute;
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->execute_on_source = simple_proxyable_command_real_execute_on_source;
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = simple_proxyable_command_real_undo;
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->undo_on_source = simple_proxyable_command_real_undo_on_source;
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = simple_proxyable_command_finalize;
+#line 3719 "Commands.c"
+}
+
+
+static void simple_proxyable_command_instance_init (SimpleProxyableCommand * self) {
+ GeeHashSet* _tmp0_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = SIMPLE_PROXYABLE_COMMAND_GET_PRIVATE (self);
+#line 131 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 131 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->proxies = _tmp0_;
+#line 3731 "Commands.c"
+}
+
+
+static void simple_proxyable_command_finalize (GObject* obj) {
+ SimpleProxyableCommand * self;
+ SourceProxy* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand);
+#line 141 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->proxy;
+#line 141 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp1_, NULL, FALSE);
+#line 141 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _simple_proxyable_command_on_proxy_broken_source_proxy_broken, self);
+#line 142 "/home/jens/Source/shotwell/src/Commands.vala"
+ simple_proxyable_command_clear_added_proxies (self);
+#line 130 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (self->priv->proxy);
+#line 131 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->proxies);
+#line 129 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (simple_proxyable_command_parent_class)->finalize (obj);
+#line 3755 "Commands.c"
+}
+
+
+GType simple_proxyable_command_get_type (void) {
+ static volatile gsize simple_proxyable_command_type_id__volatile = 0;
+ if (g_once_init_enter (&simple_proxyable_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SimpleProxyableCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) simple_proxyable_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SimpleProxyableCommand), 0, (GInstanceInitFunc) simple_proxyable_command_instance_init, NULL };
+ GType simple_proxyable_command_type_id;
+ simple_proxyable_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "SimpleProxyableCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&simple_proxyable_command_type_id__volatile, simple_proxyable_command_type_id);
+ }
+ return simple_proxyable_command_type_id__volatile;
+}
+
+
+static void _single_photo_transformation_command_on_state_broken_photo_transformation_state_broken (PhotoTransformationState* _sender, gpointer self) {
+#line 194 "/home/jens/Source/shotwell/src/Commands.vala"
+ single_photo_transformation_command_on_state_broken ((SinglePhotoTransformationCommand*) self);
+#line 3774 "Commands.c"
+}
+
+
+SinglePhotoTransformationCommand* single_photo_transformation_command_construct (GType object_type, Photo* photo, const gchar* name, const gchar* explanation) {
+ SinglePhotoTransformationCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ PhotoTransformationState* _tmp4_ = NULL;
+ PhotoTransformationState* _tmp5_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 186 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 186 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = name;
+#line 187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = explanation;
+#line 187 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SinglePhotoTransformationCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), _tmp1_, _tmp2_);
+#line 189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = photo;
+#line 189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = photo_save_transformation_state (_tmp3_);
+#line 189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->state);
+#line 189 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->state = _tmp4_;
+#line 190 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->state;
+#line 190 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp5_, "broken", (GCallback) _single_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self, 0);
+#line 186 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 3814 "Commands.c"
+}
+
+
+static void single_photo_transformation_command_real_undo (Command* base) {
+ SinglePhotoTransformationCommand * self;
+ DataSource* _tmp0_ = NULL;
+ PhotoTransformationState* _tmp1_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND, SinglePhotoTransformationCommand);
+#line 198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->state;
+#line 198 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_load_transformation_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp1_);
+#line 3830 "Commands.c"
+}
+
+
+static void single_photo_transformation_command_on_state_broken (SinglePhotoTransformationCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_TRANSFORMATION_COMMAND (self));
+#line 202 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 202 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 202 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 202 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 3847 "Commands.c"
+}
+
+
+static void single_photo_transformation_command_class_init (SinglePhotoTransformationCommandClass * klass) {
+#line 183 "/home/jens/Source/shotwell/src/Commands.vala"
+ single_photo_transformation_command_parent_class = g_type_class_peek_parent (klass);
+#line 183 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (SinglePhotoTransformationCommandPrivate));
+#line 183 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = single_photo_transformation_command_real_undo;
+#line 183 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = single_photo_transformation_command_finalize;
+#line 3860 "Commands.c"
+}
+
+
+static void single_photo_transformation_command_instance_init (SinglePhotoTransformationCommand * self) {
+#line 183 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = SINGLE_PHOTO_TRANSFORMATION_COMMAND_GET_PRIVATE (self);
+#line 3867 "Commands.c"
+}
+
+
+static void single_photo_transformation_command_finalize (GObject* obj) {
+ SinglePhotoTransformationCommand * self;
+ PhotoTransformationState* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 183 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SINGLE_PHOTO_TRANSFORMATION_COMMAND, SinglePhotoTransformationCommand);
+#line 194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->state;
+#line 194 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_PHOTO_TRANSFORMATION_STATE, &_tmp1_, NULL, FALSE);
+#line 194 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _single_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self);
+#line 184 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->state);
+#line 183 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (single_photo_transformation_command_parent_class)->finalize (obj);
+#line 3887 "Commands.c"
+}
+
+
+GType single_photo_transformation_command_get_type (void) {
+ static volatile gsize single_photo_transformation_command_type_id__volatile = 0;
+ if (g_once_init_enter (&single_photo_transformation_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SinglePhotoTransformationCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) single_photo_transformation_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SinglePhotoTransformationCommand), 0, (GInstanceInitFunc) single_photo_transformation_command_instance_init, NULL };
+ GType single_photo_transformation_command_type_id;
+ single_photo_transformation_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "SinglePhotoTransformationCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&single_photo_transformation_command_type_id__volatile, single_photo_transformation_command_type_id);
+ }
+ return single_photo_transformation_command_type_id__volatile;
+}
+
+
+static void _generic_photo_transformation_command_on_state_broken_photo_transformation_state_broken (PhotoTransformationState* _sender, gpointer self) {
+#line 216 "/home/jens/Source/shotwell/src/Commands.vala"
+ generic_photo_transformation_command_on_state_broken ((GenericPhotoTransformationCommand*) self);
+#line 3906 "Commands.c"
+}
+
+
+GenericPhotoTransformationCommand* generic_photo_transformation_command_construct (GType object_type, Photo* photo, const gchar* name, const gchar* explanation) {
+ GenericPhotoTransformationCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 210 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 210 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 211 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 211 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = name;
+#line 211 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = explanation;
+#line 211 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (GenericPhotoTransformationCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), _tmp1_, _tmp2_);
+#line 210 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 3931 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_real_execute (Command* base) {
+ GenericPhotoTransformationCommand * self;
+ Photo* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ PhotoTransformationState* _tmp2_ = NULL;
+ PhotoTransformationState* _tmp3_ = NULL;
+ PhotoTransformationState* _tmp4_ = NULL;
+ PhotoTransformationState* _tmp5_ = NULL;
+#line 222 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand);
+#line 223 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 223 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo));
+#line 223 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp1_;
+#line 225 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = photo_save_transformation_state (photo);
+#line 225 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->original_state);
+#line 225 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->original_state = _tmp2_;
+#line 226 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->original_state;
+#line 226 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp3_, "broken", (GCallback) _generic_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self, 0);
+#line 228 "/home/jens/Source/shotwell/src/Commands.vala"
+ generic_photo_transformation_command_execute_on_photo (self, photo);
+#line 230 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = photo_save_transformation_state (photo);
+#line 230 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->transformed_state);
+#line 230 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->transformed_state = _tmp4_;
+#line 231 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->transformed_state;
+#line 231 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp5_, "broken", (GCallback) _generic_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self, 0);
+#line 222 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 3976 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_real_execute_on_photo (GenericPhotoTransformationCommand* self, Photo* photo) {
+#line 234 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Type `%s' does not implement abstract method `generic_photo_transformation_command_execute_on_photo'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 234 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 3985 "Commands.c"
+}
+
+
+void generic_photo_transformation_command_execute_on_photo (GenericPhotoTransformationCommand* self, Photo* photo) {
+#line 234 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND (self));
+#line 234 "/home/jens/Source/shotwell/src/Commands.vala"
+ GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS (self)->execute_on_photo (self, photo);
+#line 3994 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_real_undo (Command* base) {
+ GenericPhotoTransformationCommand * self;
+ DataSource* _tmp0_ = NULL;
+ PhotoTransformationState* _tmp1_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand);
+#line 238 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 238 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->original_state;
+#line 238 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_load_transformation_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp1_);
+#line 4010 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_real_redo (Command* base) {
+ GenericPhotoTransformationCommand * self;
+ DataSource* _tmp0_ = NULL;
+ PhotoTransformationState* _tmp1_ = NULL;
+#line 241 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand);
+#line 243 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 243 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->transformed_state;
+#line 243 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_load_transformation_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp1_);
+#line 4026 "Commands.c"
+}
+
+
+static gboolean generic_photo_transformation_command_real_can_compress (GenericPhotoTransformationCommand* self, Command* command) {
+ gboolean result = FALSE;
+#line 246 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 247 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 4038 "Commands.c"
+}
+
+
+gboolean generic_photo_transformation_command_can_compress (GenericPhotoTransformationCommand* self, Command* command) {
+#line 246 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND (self), FALSE);
+#line 246 "/home/jens/Source/shotwell/src/Commands.vala"
+ return GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS (self)->can_compress (self, command);
+#line 4047 "Commands.c"
+}
+
+
+static gboolean generic_photo_transformation_command_real_compress (Command* base, Command* command) {
+ GenericPhotoTransformationCommand * self;
+ gboolean result = FALSE;
+ Command* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GenericPhotoTransformationCommand* generic = NULL;
+ Command* _tmp2_ = NULL;
+ GenericPhotoTransformationCommand* _tmp3_ = NULL;
+ GenericPhotoTransformationCommand* _tmp4_ = NULL;
+ GenericPhotoTransformationCommand* _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ GenericPhotoTransformationCommand* _tmp8_ = NULL;
+ GenericPhotoTransformationCommand* _tmp9_ = NULL;
+ PhotoTransformationState* _tmp10_ = NULL;
+ PhotoTransformationState* _tmp11_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand);
+#line 250 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 251 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command;
+#line 251 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = generic_photo_transformation_command_can_compress (self, _tmp0_);
+#line 251 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp1_) {
+#line 252 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 252 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 4081 "Commands.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = command;
+#line 254 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND) ? ((GenericPhotoTransformationCommand*) _tmp2_) : NULL);
+#line 254 "/home/jens/Source/shotwell/src/Commands.vala"
+ generic = _tmp3_;
+#line 255 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = generic;
+#line 255 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_ == NULL) {
+#line 256 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 256 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (generic);
+#line 256 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 4099 "Commands.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = generic;
+#line 258 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 258 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 258 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ != _tmp7_) {
+#line 259 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 259 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (generic);
+#line 259 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 4115 "Commands.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = generic;
+#line 262 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_execute (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_COMMAND, Command));
+#line 265 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = generic;
+#line 265 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_->priv->transformed_state;
+#line 265 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 265 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->transformed_state);
+#line 265 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->transformed_state = _tmp11_;
+#line 267 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = TRUE;
+#line 267 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (generic);
+#line 267 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 4137 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_on_state_broken (GenericPhotoTransformationCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND (self));
+#line 271 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 271 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 271 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 271 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 4154 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_class_init (GenericPhotoTransformationCommandClass * klass) {
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ generic_photo_transformation_command_parent_class = g_type_class_peek_parent (klass);
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (GenericPhotoTransformationCommandPrivate));
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = generic_photo_transformation_command_real_execute;
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->execute_on_photo = generic_photo_transformation_command_real_execute_on_photo;
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = generic_photo_transformation_command_real_undo;
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->redo = generic_photo_transformation_command_real_redo;
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->can_compress = generic_photo_transformation_command_real_can_compress;
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->compress = generic_photo_transformation_command_real_compress;
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = generic_photo_transformation_command_finalize;
+#line 4177 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_instance_init (GenericPhotoTransformationCommand * self) {
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_PRIVATE (self);
+#line 207 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->original_state = NULL;
+#line 208 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->transformed_state = NULL;
+#line 4188 "Commands.c"
+}
+
+
+static void generic_photo_transformation_command_finalize (GObject* obj) {
+ GenericPhotoTransformationCommand * self;
+ PhotoTransformationState* _tmp0_ = NULL;
+ PhotoTransformationState* _tmp3_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand);
+#line 215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->original_state;
+#line 215 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_ != NULL) {
+#line 4202 "Commands.c"
+ PhotoTransformationState* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 216 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->original_state;
+#line 216 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_PHOTO_TRANSFORMATION_STATE, &_tmp2_, NULL, FALSE);
+#line 216 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _generic_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self);
+#line 4211 "Commands.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->transformed_state;
+#line 218 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_ != NULL) {
+#line 4217 "Commands.c"
+ PhotoTransformationState* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 219 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->transformed_state;
+#line 219 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_PHOTO_TRANSFORMATION_STATE, &_tmp5_, NULL, FALSE);
+#line 219 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _generic_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self);
+#line 4226 "Commands.c"
+ }
+#line 207 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->original_state);
+#line 208 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->transformed_state);
+#line 206 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (generic_photo_transformation_command_parent_class)->finalize (obj);
+#line 4234 "Commands.c"
+}
+
+
+GType generic_photo_transformation_command_get_type (void) {
+ static volatile gsize generic_photo_transformation_command_type_id__volatile = 0;
+ if (g_once_init_enter (&generic_photo_transformation_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (GenericPhotoTransformationCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) generic_photo_transformation_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GenericPhotoTransformationCommand), 0, (GInstanceInitFunc) generic_photo_transformation_command_instance_init, NULL };
+ GType generic_photo_transformation_command_type_id;
+ generic_photo_transformation_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "GenericPhotoTransformationCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&generic_photo_transformation_command_type_id__volatile, generic_photo_transformation_command_type_id);
+ }
+ return generic_photo_transformation_command_type_id__volatile;
+}
+
+
+static void _multiple_data_source_command_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 309 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_on_source_destroyed ((MultipleDataSourceCommand*) self, source);
+#line 4253 "Commands.c"
+}
+
+
+MultipleDataSourceCommand* multiple_data_source_command_construct (GType object_type, GeeIterable* iter, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation) {
+ MultipleDataSourceCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 285 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 285 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (progress_text != NULL, NULL);
+#line 285 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (undo_progress_text != NULL, NULL);
+#line 285 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 285 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 287 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = name;
+#line 287 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = explanation;
+#line 287 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (MultipleDataSourceCommand*) page_command_construct (object_type, _tmp0_, _tmp1_);
+#line 289 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = progress_text;
+#line 289 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 289 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->progress_text);
+#line 289 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->progress_text = _tmp3_;
+#line 290 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = undo_progress_text;
+#line 290 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 290 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->undo_progress_text);
+#line 290 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->undo_progress_text = _tmp5_;
+#line 4297 "Commands.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = iter;
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterable_iterator (_tmp6_);
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _view_it = _tmp7_;
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 4310 "Commands.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ DataSource* source = NULL;
+ DataView* _tmp12_ = NULL;
+ DataSource* _tmp13_ = NULL;
+ SourceCollection* collection = NULL;
+ DataSource* _tmp14_ = NULL;
+ DataCollection* _tmp15_ = NULL;
+ SourceCollection* _tmp16_ = NULL;
+ GeeArrayList* _tmp19_ = NULL;
+ DataSource* _tmp20_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _view_it;
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp9_) {
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 4333 "Commands.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _view_it;
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ view = (DataView*) _tmp11_;
+#line 293 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = view;
+#line 293 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = data_view_get_source (_tmp12_);
+#line 293 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = _tmp13_;
+#line 294 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = source;
+#line 294 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 294 "/home/jens/Source/shotwell/src/Commands.vala"
+ collection = G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_SOURCE_COLLECTION, SourceCollection);
+#line 296 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = collection;
+#line 296 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp16_ != NULL) {
+#line 4357 "Commands.c"
+ GeeHashSet* _tmp17_ = NULL;
+ SourceCollection* _tmp18_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = self->priv->hooked_collections;
+#line 297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = collection;
+#line 297 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp18_);
+#line 4366 "Commands.c"
+ }
+#line 299 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = self->source_list;
+#line 299 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = source;
+#line 299 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp20_);
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (collection);
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 4380 "Commands.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_view_it);
+#line 4384 "Commands.c"
+ }
+ {
+ GeeIterator* _current_collection_it = NULL;
+ GeeHashSet* _tmp21_ = NULL;
+ GeeIterator* _tmp22_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = self->priv->hooked_collections;
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _current_collection_it = _tmp22_;
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 4398 "Commands.c"
+ GeeIterator* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ SourceCollection* current_collection = NULL;
+ GeeIterator* _tmp25_ = NULL;
+ gpointer _tmp26_ = NULL;
+ SourceCollection* _tmp27_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _current_collection_it;
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = gee_iterator_next (_tmp23_);
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp24_) {
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 4413 "Commands.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _current_collection_it;
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = gee_iterator_get (_tmp25_);
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_collection = (SourceCollection*) _tmp26_;
+#line 303 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = current_collection;
+#line 303 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp27_, "item-destroyed", (GCallback) _multiple_data_source_command_on_source_destroyed_source_collection_item_destroyed, self, 0);
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (current_collection);
+#line 4427 "Commands.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_current_collection_it);
+#line 4431 "Commands.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 4435 "Commands.c"
+}
+
+
+GeeIterable* multiple_data_source_command_get_sources (MultipleDataSourceCommand* self) {
+ GeeIterable* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+#line 313 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self), NULL);
+#line 314 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->source_list;
+#line 314 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 314 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = _tmp1_;
+#line 314 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 4453 "Commands.c"
+}
+
+
+gint multiple_data_source_command_get_source_count (MultipleDataSourceCommand* self) {
+ gint result = 0;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 317 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self), 0);
+#line 318 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->source_list;
+#line 318 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 318 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 318 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = _tmp2_;
+#line 318 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 4474 "Commands.c"
+}
+
+
+static void multiple_data_source_command_on_source_destroyed (MultipleDataSourceCommand* self, DataSource* source) {
+ GeeArrayList* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 321 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self));
+#line 321 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 324 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->source_list;
+#line 324 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source;
+#line 324 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 324 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_) {
+#line 4494 "Commands.c"
+ CommandManager* _tmp3_ = NULL;
+ CommandManager* _tmp4_ = NULL;
+#line 325 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 325 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 325 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp4_);
+#line 325 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp4_);
+#line 4505 "Commands.c"
+ }
+}
+
+
+static void multiple_data_source_command_real_execute (Command* base) {
+ MultipleDataSourceCommand * self;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+#line 328 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand);
+#line 329 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->acted_upon;
+#line 329 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 331 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_start_transaction (self);
+#line 332 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->source_list;
+#line 332 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->acted_upon;
+#line 332 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_execute_all (self, TRUE, TRUE, _tmp1_, _tmp2_);
+#line 333 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_commit_transaction (self);
+#line 4531 "Commands.c"
+}
+
+
+static void multiple_data_source_command_real_execute_on_source (MultipleDataSourceCommand* self, DataSource* source) {
+#line 336 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Type `%s' does not implement abstract method `multiple_data_source_command_execute_on_source'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 336 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 4540 "Commands.c"
+}
+
+
+void multiple_data_source_command_execute_on_source (MultipleDataSourceCommand* self, DataSource* source) {
+#line 336 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self));
+#line 336 "/home/jens/Source/shotwell/src/Commands.vala"
+ MULTIPLE_DATA_SOURCE_COMMAND_GET_CLASS (self)->execute_on_source (self, source);
+#line 4549 "Commands.c"
+}
+
+
+static void multiple_data_source_command_real_undo (Command* base) {
+ MultipleDataSourceCommand * self;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 338 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand);
+#line 339 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->acted_upon;
+#line 339 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 339 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 339 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ > 0) {
+#line 4568 "Commands.c"
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_start_transaction (self);
+#line 341 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->acted_upon;
+#line 341 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_execute_all (self, FALSE, FALSE, _tmp3_, NULL);
+#line 342 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_commit_transaction (self);
+#line 344 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->acted_upon;
+#line 344 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 4583 "Commands.c"
+ }
+}
+
+
+static void multiple_data_source_command_real_undo_on_source (MultipleDataSourceCommand* self, DataSource* source) {
+#line 348 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Type `%s' does not implement abstract method `multiple_data_source_command_undo_on_source'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 348 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 4593 "Commands.c"
+}
+
+
+void multiple_data_source_command_undo_on_source (MultipleDataSourceCommand* self, DataSource* source) {
+#line 348 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self));
+#line 348 "/home/jens/Source/shotwell/src/Commands.vala"
+ MULTIPLE_DATA_SOURCE_COMMAND_GET_CLASS (self)->undo_on_source (self, source);
+#line 4602 "Commands.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 352 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 4609 "Commands.c"
+}
+
+
+static void multiple_data_source_command_start_transaction (MultipleDataSourceCommand* self) {
+#line 350 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self));
+#line 4616 "Commands.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->hooked_collections;
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _sources_it = _tmp1_;
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 4629 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* sources = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ MediaSourceCollection* media_collection = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ MediaSourceCollection* _tmp7_ = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _sources_it;
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 4647 "Commands.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _sources_it;
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ sources = (SourceCollection*) _tmp5_;
+#line 352 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = sources;
+#line 352 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _data_collection_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_MEDIA_SOURCE_COLLECTION) ? ((MediaSourceCollection*) _tmp6_) : NULL);
+#line 352 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_collection = _tmp7_;
+#line 353 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = media_collection;
+#line 353 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp8_ != NULL) {
+#line 4665 "Commands.c"
+ MediaSourceCollection* _tmp9_ = NULL;
+ TransactionController* _tmp10_ = NULL;
+ TransactionController* _tmp11_ = NULL;
+#line 354 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = media_collection;
+#line 354 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = media_source_collection_get_transaction_controller (_tmp9_);
+#line 354 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 354 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_begin (_tmp11_);
+#line 4677 "Commands.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (media_collection);
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (sources);
+#line 4683 "Commands.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_sources_it);
+#line 4687 "Commands.c"
+ }
+}
+
+
+static void multiple_data_source_command_commit_transaction (MultipleDataSourceCommand* self) {
+#line 358 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self));
+#line 4695 "Commands.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->hooked_collections;
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _sources_it = _tmp1_;
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 4708 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* sources = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ MediaSourceCollection* media_collection = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ MediaSourceCollection* _tmp7_ = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _sources_it;
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 4726 "Commands.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _sources_it;
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ sources = (SourceCollection*) _tmp5_;
+#line 360 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = sources;
+#line 360 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _data_collection_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_MEDIA_SOURCE_COLLECTION) ? ((MediaSourceCollection*) _tmp6_) : NULL);
+#line 360 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_collection = _tmp7_;
+#line 361 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = media_collection;
+#line 361 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp8_ != NULL) {
+#line 4744 "Commands.c"
+ MediaSourceCollection* _tmp9_ = NULL;
+ TransactionController* _tmp10_ = NULL;
+ TransactionController* _tmp11_ = NULL;
+#line 362 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = media_collection;
+#line 362 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = media_source_collection_get_transaction_controller (_tmp9_);
+#line 362 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 362 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_commit (_tmp11_);
+#line 4756 "Commands.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (media_collection);
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (sources);
+#line 4762 "Commands.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_sources_it);
+#line 4766 "Commands.c"
+ }
+}
+
+
+static void multiple_data_source_command_execute_all (MultipleDataSourceCommand* self, gboolean exec, gboolean can_cancel, GeeArrayList* todo, GeeArrayList* completed) {
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ gint count = 0;
+ gint total = 0;
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint two_percent = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gchar* text = NULL;
+ gchar* _tmp11_ = NULL;
+ GCancellable* cancellable = NULL;
+ ProgressDialog* progress = NULL;
+ gint _tmp12_ = 0;
+ ProgressDialog* _tmp50_ = NULL;
+ AppWindow* _tmp52_ = NULL;
+ AppWindow* _tmp53_ = NULL;
+#line 366 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_COMMAND (self));
+#line 366 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_ARRAY_LIST (todo));
+#line 366 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail ((completed == NULL) || GEE_IS_ARRAY_LIST (completed));
+#line 368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 368 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow));
+#line 368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp1_);
+#line 370 "/home/jens/Source/shotwell/src/Commands.vala"
+ count = 0;
+#line 371 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = todo;
+#line 371 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 371 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 371 "/home/jens/Source/shotwell/src/Commands.vala"
+ total = _tmp4_;
+#line 372 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = total;
+#line 372 "/home/jens/Source/shotwell/src/Commands.vala"
+ two_percent = (gint) (((gdouble) _tmp5_) / 50.0);
+#line 373 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = two_percent;
+#line 373 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ <= 0) {
+#line 374 "/home/jens/Source/shotwell/src/Commands.vala"
+ two_percent = 1;
+#line 4826 "Commands.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = exec;
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp8_) {
+#line 4832 "Commands.c"
+ const gchar* _tmp9_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->progress_text;
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp9_;
+#line 4838 "Commands.c"
+ } else {
+ const gchar* _tmp10_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->undo_progress_text;
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp10_;
+#line 4845 "Commands.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = g_strdup (_tmp7_);
+#line 376 "/home/jens/Source/shotwell/src/Commands.vala"
+ text = _tmp11_;
+#line 378 "/home/jens/Source/shotwell/src/Commands.vala"
+ cancellable = NULL;
+#line 379 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress = NULL;
+#line 380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = total;
+#line 380 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp12_ >= MULTIPLE_DATA_SOURCE_COMMAND_MIN_OPS_FOR_PROGRESS_WINDOW) {
+#line 4859 "Commands.c"
+ GCancellable* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ GCancellable* _tmp16_ = NULL;
+ AppWindow* _tmp17_ = NULL;
+ AppWindow* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GCancellable* _tmp20_ = NULL;
+ ProgressDialog* _tmp21_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = can_cancel;
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp14_) {
+#line 4872 "Commands.c"
+ GCancellable* _tmp15_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = g_cancellable_new ();
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp13_);
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _tmp15_;
+#line 4880 "Commands.c"
+ } else {
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp13_);
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = NULL;
+#line 4886 "Commands.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _g_object_ref0 (_tmp13_);
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (cancellable);
+#line 381 "/home/jens/Source/shotwell/src/Commands.vala"
+ cancellable = _tmp16_;
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = app_window_get_instance ();
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _tmp17_;
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = text;
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = cancellable;
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_window_get_type (), GtkWindow), _tmp19_, _tmp20_);
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_object_ref_sink (_tmp21_);
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (progress);
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress = _tmp21_;
+#line 382 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp18_);
+#line 380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp13_);
+#line 4914 "Commands.c"
+ }
+ {
+ GeeArrayList* _source_list = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+ gint _source_size = 0;
+ GeeArrayList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _source_index = 0;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = todo;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _g_object_ref0 (_tmp22_);
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_list = _tmp23_;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _source_list;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _tmp25_;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_size = _tmp26_;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_index = -1;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 4943 "Commands.c"
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ DataSource* source = NULL;
+ GeeArrayList* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gpointer _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ GeeArrayList* _tmp36_ = NULL;
+ ProgressDialog* _tmp39_ = NULL;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = _source_index;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_index = _tmp27_ + 1;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = _source_index;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = _source_size;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp28_ < _tmp29_)) {
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 4966 "Commands.c"
+ }
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = _source_list;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = _source_index;
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp31_);
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp32_;
+#line 386 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = exec;
+#line 386 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp33_) {
+#line 4980 "Commands.c"
+ DataSource* _tmp34_ = NULL;
+#line 387 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = source;
+#line 387 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_execute_on_source (self, _tmp34_);
+#line 4986 "Commands.c"
+ } else {
+ DataSource* _tmp35_ = NULL;
+#line 389 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = source;
+#line 389 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_undo_on_source (self, _tmp35_);
+#line 4993 "Commands.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = completed;
+#line 391 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp36_ != NULL) {
+#line 4999 "Commands.c"
+ GeeArrayList* _tmp37_ = NULL;
+ DataSource* _tmp38_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = completed;
+#line 392 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = source;
+#line 392 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp38_);
+#line 5008 "Commands.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = progress;
+#line 394 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp39_ != NULL) {
+#line 5014 "Commands.c"
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gboolean _tmp46_ = FALSE;
+ GCancellable* _tmp47_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = count;
+#line 395 "/home/jens/Source/shotwell/src/Commands.vala"
+ count = _tmp40_ + 1;
+#line 395 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = count;
+#line 395 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = two_percent;
+#line 395 "/home/jens/Source/shotwell/src/Commands.vala"
+ if ((_tmp41_ % _tmp42_) == 0) {
+#line 5030 "Commands.c"
+ ProgressDialog* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+#line 396 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = progress;
+#line 396 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = count;
+#line 396 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = total;
+#line 396 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress_dialog_set_fraction (_tmp43_, _tmp44_, _tmp45_);
+#line 397 "/home/jens/Source/shotwell/src/Commands.vala"
+ spin_event_loop ();
+#line 5044 "Commands.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = cancellable;
+#line 400 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp47_ != NULL) {
+#line 5050 "Commands.c"
+ GCancellable* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+#line 400 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = cancellable;
+#line 400 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = g_cancellable_is_cancelled (_tmp48_);
+#line 400 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = _tmp49_;
+#line 5059 "Commands.c"
+ } else {
+#line 400 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = FALSE;
+#line 5063 "Commands.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp46_) {
+#line 401 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 401 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5071 "Commands.c"
+ }
+ }
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 5076 "Commands.c"
+ }
+#line 385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_list);
+#line 5080 "Commands.c"
+ }
+#line 405 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = progress;
+#line 405 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp50_ != NULL) {
+#line 5086 "Commands.c"
+ ProgressDialog* _tmp51_ = NULL;
+#line 406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = progress;
+#line 406 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress_dialog_close (_tmp51_);
+#line 5092 "Commands.c"
+ }
+#line 408 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = app_window_get_instance ();
+#line 408 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = _tmp52_;
+#line 408 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, TYPE_PAGE_WINDOW, PageWindow));
+#line 408 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp53_);
+#line 366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (progress);
+#line 366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (cancellable);
+#line 366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (text);
+#line 5108 "Commands.c"
+}
+
+
+static void multiple_data_source_command_class_init (MultipleDataSourceCommandClass * klass) {
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_command_parent_class = g_type_class_peek_parent (klass);
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (MultipleDataSourceCommandPrivate));
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = multiple_data_source_command_real_execute;
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = multiple_data_source_command_real_execute_on_source;
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = multiple_data_source_command_real_undo;
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = multiple_data_source_command_real_undo_on_source;
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = multiple_data_source_command_finalize;
+#line 5127 "Commands.c"
+}
+
+
+static void multiple_data_source_command_instance_init (MultipleDataSourceCommand * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeHashSet* _tmp2_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = MULTIPLE_DATA_SOURCE_COMMAND_GET_PRIVATE (self);
+#line 278 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 278 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->source_list = _tmp0_;
+#line 282 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 282 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->acted_upon = _tmp1_;
+#line 283 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_hash_set_new (TYPE_SOURCE_COLLECTION, (GBoxedCopyFunc) data_collection_ref, data_collection_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 283 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->hooked_collections = _tmp2_;
+#line 5149 "Commands.c"
+}
+
+
+static void multiple_data_source_command_finalize (GObject* obj) {
+ MultipleDataSourceCommand * self;
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand);
+#line 5157 "Commands.c"
+ {
+ GeeIterator* _current_collection_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->hooked_collections;
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _current_collection_it = _tmp1_;
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 5170 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* current_collection = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _current_collection_it;
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5186 "Commands.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _current_collection_it;
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_collection = (SourceCollection*) _tmp5_;
+#line 309 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = current_collection;
+#line 309 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp7_, NULL, FALSE);
+#line 309 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _multiple_data_source_command_on_source_destroyed_source_collection_item_destroyed, self);
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (current_collection);
+#line 5202 "Commands.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_current_collection_it);
+#line 5206 "Commands.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->source_list);
+#line 280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->progress_text);
+#line 281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->undo_progress_text);
+#line 282 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->acted_upon);
+#line 283 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->hooked_collections);
+#line 275 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (multiple_data_source_command_parent_class)->finalize (obj);
+#line 5220 "Commands.c"
+}
+
+
+GType multiple_data_source_command_get_type (void) {
+ static volatile gsize multiple_data_source_command_type_id__volatile = 0;
+ if (g_once_init_enter (&multiple_data_source_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MultipleDataSourceCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multiple_data_source_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultipleDataSourceCommand), 0, (GInstanceInitFunc) multiple_data_source_command_instance_init, NULL };
+ GType multiple_data_source_command_type_id;
+ multiple_data_source_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "MultipleDataSourceCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&multiple_data_source_command_type_id__volatile, multiple_data_source_command_type_id);
+ }
+ return multiple_data_source_command_type_id__volatile;
+}
+
+
+static void _multiple_data_source_at_once_command_on_sources_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self) {
+#line 435 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_at_once_command_on_sources_destroyed ((MultipleDataSourceAtOnceCommand*) self, destroyed);
+#line 5239 "Commands.c"
+}
+
+
+MultipleDataSourceAtOnceCommand* multiple_data_source_at_once_command_construct (GType object_type, GeeCollection* sources, const gchar* name, const gchar* explanation) {
+ MultipleDataSourceAtOnceCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GeeHashSet* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 417 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (sources), NULL);
+#line 417 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 417 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 419 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = name;
+#line 419 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = explanation;
+#line 419 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (MultipleDataSourceAtOnceCommand*) page_command_construct (object_type, _tmp0_, _tmp1_);
+#line 421 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->sources;
+#line 421 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = sources;
+#line 421 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), _tmp3_);
+#line 5267 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->sources;
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp5_;
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 5280 "Commands.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ SourceCollection* membership = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataCollection* _tmp11_ = NULL;
+ SourceCollection* _tmp12_ = NULL;
+ SourceCollection* _tmp13_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _source_it;
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp7_) {
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5299 "Commands.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _source_it;
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp9_;
+#line 424 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = source;
+#line 424 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 424 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_SOURCE_COLLECTION) ? ((SourceCollection*) _tmp11_) : NULL;
+#line 424 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp12_ == NULL) {
+#line 424 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 5317 "Commands.c"
+ }
+#line 424 "/home/jens/Source/shotwell/src/Commands.vala"
+ membership = _tmp12_;
+#line 425 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = membership;
+#line 425 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp13_ != NULL) {
+#line 5325 "Commands.c"
+ GeeHashSet* _tmp14_ = NULL;
+ SourceCollection* _tmp15_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = self->priv->hooked_collections;
+#line 426 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = membership;
+#line 426 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 5334 "Commands.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (membership);
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 5340 "Commands.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 5344 "Commands.c"
+ }
+ {
+ GeeIterator* _source_collection_it = NULL;
+ GeeHashSet* _tmp16_ = NULL;
+ GeeIterator* _tmp17_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = self->priv->hooked_collections;
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_collection_it = _tmp17_;
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 5358 "Commands.c"
+ GeeIterator* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ SourceCollection* source_collection = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ SourceCollection* _tmp22_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _source_collection_it;
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = gee_iterator_next (_tmp18_);
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp19_) {
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5373 "Commands.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _source_collection_it;
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = gee_iterator_get (_tmp20_);
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection = (SourceCollection*) _tmp21_;
+#line 430 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = source_collection;
+#line 430 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp22_, "items-destroyed", (GCallback) _multiple_data_source_at_once_command_on_sources_destroyed_source_collection_items_destroyed, self, 0);
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (source_collection);
+#line 5387 "Commands.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_collection_it);
+#line 5391 "Commands.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 5395 "Commands.c"
+}
+
+
+static void multiple_data_source_at_once_command_real_execute (Command* base) {
+ MultipleDataSourceAtOnceCommand * self;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ MediaCollectionRegistry* _tmp2_ = NULL;
+ MediaCollectionRegistry* _tmp3_ = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ MediaCollectionRegistry* _tmp5_ = NULL;
+ MediaCollectionRegistry* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 438 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommand);
+#line 439 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 439 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 439 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow));
+#line 439 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp1_);
+#line 441 "/home/jens/Source/shotwell/src/Commands.vala"
+ database_table_begin_transaction ();
+#line 442 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = media_collection_registry_get_instance ();
+#line 442 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 442 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_collection_registry_freeze_all (_tmp3_);
+#line 442 "/home/jens/Source/shotwell/src/Commands.vala"
+ _media_collection_registry_unref0 (_tmp3_);
+#line 444 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->sources;
+#line 444 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_at_once_command_execute_on_all (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = media_collection_registry_get_instance ();
+#line 446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 446 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_collection_registry_thaw_all (_tmp6_);
+#line 446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _media_collection_registry_unref0 (_tmp6_);
+#line 5441 "Commands.c"
+ {
+#line 448 "/home/jens/Source/shotwell/src/Commands.vala"
+ database_table_commit_transaction (&_inner_error_);
+#line 448 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 448 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5449 "Commands.c"
+ goto __catch444_database_error;
+ }
+ {
+ AppWindow* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE_WINDOW, PageWindow));
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp8_);
+#line 5463 "Commands.c"
+ }
+#line 448 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 448 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_clear_error (&_inner_error_);
+#line 448 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 5471 "Commands.c"
+ }
+ }
+ goto __finally444;
+ __catch444_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+#line 447 "/home/jens/Source/shotwell/src/Commands.vala"
+ err = _inner_error_;
+#line 447 "/home/jens/Source/shotwell/src/Commands.vala"
+ _inner_error_ = NULL;
+#line 450 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = err;
+#line 450 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_database_error (_tmp9_);
+#line 447 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_error_free0 (err);
+#line 5489 "Commands.c"
+ }
+ __finally444:
+ {
+ AppWindow* _tmp10_ = NULL;
+ AppWindow* _tmp11_ = NULL;
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = app_window_get_instance ();
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PAGE_WINDOW, PageWindow));
+#line 452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp11_);
+#line 5503 "Commands.c"
+ }
+#line 447 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 447 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 447 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_clear_error (&_inner_error_);
+#line 447 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 5513 "Commands.c"
+ }
+}
+
+
+static void multiple_data_source_at_once_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources) {
+#line 456 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Type `%s' does not implement abstract method `multiple_data_source_at_once_command_execute_on_all'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 456 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 5523 "Commands.c"
+}
+
+
+void multiple_data_source_at_once_command_execute_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources) {
+#line 456 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND (self));
+#line 456 "/home/jens/Source/shotwell/src/Commands.vala"
+ MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_CLASS (self)->execute_on_all (self, sources);
+#line 5532 "Commands.c"
+}
+
+
+static void multiple_data_source_at_once_command_real_undo (Command* base) {
+ MultipleDataSourceAtOnceCommand * self;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ MediaCollectionRegistry* _tmp2_ = NULL;
+ MediaCollectionRegistry* _tmp3_ = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ MediaCollectionRegistry* _tmp5_ = NULL;
+ MediaCollectionRegistry* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommand);
+#line 459 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 459 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 459 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow));
+#line 459 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp1_);
+#line 461 "/home/jens/Source/shotwell/src/Commands.vala"
+ database_table_begin_transaction ();
+#line 462 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = media_collection_registry_get_instance ();
+#line 462 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 462 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_collection_registry_freeze_all (_tmp3_);
+#line 462 "/home/jens/Source/shotwell/src/Commands.vala"
+ _media_collection_registry_unref0 (_tmp3_);
+#line 464 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->sources;
+#line 464 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_at_once_command_undo_on_all (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 466 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = media_collection_registry_get_instance ();
+#line 466 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 466 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_collection_registry_thaw_all (_tmp6_);
+#line 466 "/home/jens/Source/shotwell/src/Commands.vala"
+ _media_collection_registry_unref0 (_tmp6_);
+#line 5578 "Commands.c"
+ {
+#line 468 "/home/jens/Source/shotwell/src/Commands.vala"
+ database_table_commit_transaction (&_inner_error_);
+#line 468 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 468 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5586 "Commands.c"
+ goto __catch445_database_error;
+ }
+ {
+ AppWindow* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE_WINDOW, PageWindow));
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp8_);
+#line 5600 "Commands.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 468 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_clear_error (&_inner_error_);
+#line 468 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 5608 "Commands.c"
+ }
+ }
+ goto __finally445;
+ __catch445_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+#line 467 "/home/jens/Source/shotwell/src/Commands.vala"
+ err = _inner_error_;
+#line 467 "/home/jens/Source/shotwell/src/Commands.vala"
+ _inner_error_ = NULL;
+#line 470 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = err;
+#line 470 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_database_error (_tmp9_);
+#line 467 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_error_free0 (err);
+#line 5626 "Commands.c"
+ }
+ __finally445:
+ {
+ AppWindow* _tmp10_ = NULL;
+ AppWindow* _tmp11_ = NULL;
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = app_window_get_instance ();
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PAGE_WINDOW, PageWindow));
+#line 472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp11_);
+#line 5640 "Commands.c"
+ }
+#line 467 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 467 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 467 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_clear_error (&_inner_error_);
+#line 467 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 5650 "Commands.c"
+ }
+}
+
+
+static void multiple_data_source_at_once_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources) {
+#line 476 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Type `%s' does not implement abstract method `multiple_data_source_at_once_command_undo_on_all'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 476 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 5660 "Commands.c"
+}
+
+
+void multiple_data_source_at_once_command_undo_on_all (MultipleDataSourceAtOnceCommand* self, GeeCollection* sources) {
+#line 476 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND (self));
+#line 476 "/home/jens/Source/shotwell/src/Commands.vala"
+ MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_CLASS (self)->undo_on_all (self, sources);
+#line 5669 "Commands.c"
+}
+
+
+static void multiple_data_source_at_once_command_on_sources_destroyed (MultipleDataSourceAtOnceCommand* self, GeeCollection* destroyed) {
+#line 478 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND (self));
+#line 478 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (destroyed));
+#line 5678 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = destroyed;
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 5691 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5708 "Commands.c"
+ }
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 480 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->sources;
+#line 480 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = source;
+#line 480 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp7_);
+#line 480 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp8_) {
+#line 5724 "Commands.c"
+ CommandManager* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+#line 481 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 481 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 481 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp10_);
+#line 481 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp10_);
+#line 483 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 483 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5739 "Commands.c"
+ }
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 5743 "Commands.c"
+ }
+#line 479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 5747 "Commands.c"
+ }
+}
+
+
+static void multiple_data_source_at_once_command_class_init (MultipleDataSourceAtOnceCommandClass * klass) {
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_data_source_at_once_command_parent_class = g_type_class_peek_parent (klass);
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (MultipleDataSourceAtOnceCommandPrivate));
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = multiple_data_source_at_once_command_real_execute;
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->execute_on_all = multiple_data_source_at_once_command_real_execute_on_all;
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = multiple_data_source_at_once_command_real_undo;
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->undo_on_all = multiple_data_source_at_once_command_real_undo_on_all;
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = multiple_data_source_at_once_command_finalize;
+#line 5767 "Commands.c"
+}
+
+
+static void multiple_data_source_at_once_command_instance_init (MultipleDataSourceAtOnceCommand * self) {
+ GeeHashSet* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_PRIVATE (self);
+#line 414 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 414 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->sources = _tmp0_;
+#line 415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_hash_set_new (TYPE_SOURCE_COLLECTION, (GBoxedCopyFunc) data_collection_ref, data_collection_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 415 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->hooked_collections = _tmp1_;
+#line 5784 "Commands.c"
+}
+
+
+static void multiple_data_source_at_once_command_finalize (GObject* obj) {
+ MultipleDataSourceAtOnceCommand * self;
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommand);
+#line 5792 "Commands.c"
+ {
+ GeeIterator* _source_collection_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->hooked_collections;
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_collection_it = _tmp1_;
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 5805 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* source_collection = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_collection_it;
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5821 "Commands.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_collection_it;
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection = (SourceCollection*) _tmp5_;
+#line 435 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = source_collection;
+#line 435 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("items-destroyed", TYPE_SOURCE_COLLECTION, &_tmp7_, NULL, FALSE);
+#line 435 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _multiple_data_source_at_once_command_on_sources_destroyed_source_collection_items_destroyed, self);
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (source_collection);
+#line 5837 "Commands.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_collection_it);
+#line 5841 "Commands.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->sources);
+#line 415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->hooked_collections);
+#line 413 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (multiple_data_source_at_once_command_parent_class)->finalize (obj);
+#line 5849 "Commands.c"
+}
+
+
+GType multiple_data_source_at_once_command_get_type (void) {
+ static volatile gsize multiple_data_source_at_once_command_type_id__volatile = 0;
+ if (g_once_init_enter (&multiple_data_source_at_once_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MultipleDataSourceAtOnceCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multiple_data_source_at_once_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultipleDataSourceAtOnceCommand), 0, (GInstanceInitFunc) multiple_data_source_at_once_command_instance_init, NULL };
+ GType multiple_data_source_at_once_command_type_id;
+ multiple_data_source_at_once_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "MultipleDataSourceAtOnceCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&multiple_data_source_at_once_command_type_id__volatile, multiple_data_source_at_once_command_type_id);
+ }
+ return multiple_data_source_at_once_command_type_id__volatile;
+}
+
+
+static void _multiple_photo_transformation_command_on_state_broken_photo_transformation_state_broken (PhotoTransformationState* _sender, gpointer self) {
+#line 508 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_photo_transformation_command_on_state_broken ((MultiplePhotoTransformationCommand*) self);
+#line 5868 "Commands.c"
+}
+
+
+MultiplePhotoTransformationCommand* multiple_photo_transformation_command_construct (GType object_type, GeeIterable* iter, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation) {
+ MultiplePhotoTransformationCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 493 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 493 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (progress_text != NULL, NULL);
+#line 493 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (undo_progress_text != NULL, NULL);
+#line 493 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 493 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 495 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 495 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = progress_text;
+#line 495 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = undo_progress_text;
+#line 495 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = name;
+#line 495 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = explanation;
+#line 495 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (MultiplePhotoTransformationCommand*) multiple_data_source_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 5901 "Commands.c"
+ {
+ GeeArrayList* _source_list = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _source_size = 0;
+ GeeArrayList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _source_index = 0;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand)->source_list;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_list = _tmp6_;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _source_list;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_size = _tmp9_;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_index = -1;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 5929 "Commands.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ DataSource* source = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gpointer _tmp15_ = NULL;
+ Photo* photo = NULL;
+ DataSource* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ PhotoTransformationState* state = NULL;
+ Photo* _tmp18_ = NULL;
+ PhotoTransformationState* _tmp19_ = NULL;
+ PhotoTransformationState* _tmp20_ = NULL;
+ GeeHashMap* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ PhotoTransformationState* _tmp23_ = NULL;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _source_index;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_index = _tmp10_ + 1;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _source_index;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _source_size;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp11_ < _tmp12_)) {
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 5959 "Commands.c"
+ }
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _source_list;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _source_index;
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp14_);
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp15_;
+#line 498 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = source;
+#line 498 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PHOTO, Photo));
+#line 498 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp17_;
+#line 499 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = photo;
+#line 499 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = photo_save_transformation_state (_tmp18_);
+#line 499 "/home/jens/Source/shotwell/src/Commands.vala"
+ state = _tmp19_;
+#line 500 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = state;
+#line 500 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp20_, "broken", (GCallback) _multiple_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self, 0);
+#line 502 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = self->priv->map;
+#line 502 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = photo;
+#line 502 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = state;
+#line 502 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp22_, _tmp23_);
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (state);
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 5999 "Commands.c"
+ }
+#line 497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_list);
+#line 6003 "Commands.c"
+ }
+#line 493 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 6007 "Commands.c"
+}
+
+
+static void multiple_photo_transformation_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ MultiplePhotoTransformationCommand * self;
+ Photo* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ PhotoTransformationState* state = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ gpointer _tmp3_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommand);
+#line 511 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 512 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 512 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo));
+#line 512 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp1_;
+#line 514 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->map;
+#line 514 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), photo);
+#line 514 "/home/jens/Source/shotwell/src/Commands.vala"
+ state = (PhotoTransformationState*) _tmp3_;
+#line 515 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (state != NULL, "state != null");
+#line 517 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_load_transformation_state (photo, state);
+#line 511 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (state);
+#line 511 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 6043 "Commands.c"
+}
+
+
+static void multiple_photo_transformation_command_on_state_broken (MultiplePhotoTransformationCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND (self));
+#line 521 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 521 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 521 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 521 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 6060 "Commands.c"
+}
+
+
+static void multiple_photo_transformation_command_class_init (MultiplePhotoTransformationCommandClass * klass) {
+#line 489 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_photo_transformation_command_parent_class = g_type_class_peek_parent (klass);
+#line 489 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (MultiplePhotoTransformationCommandPrivate));
+#line 489 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = multiple_photo_transformation_command_real_undo_on_source;
+#line 489 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = multiple_photo_transformation_command_finalize;
+#line 6073 "Commands.c"
+}
+
+
+static void multiple_photo_transformation_command_instance_init (MultiplePhotoTransformationCommand * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 489 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = MULTIPLE_PHOTO_TRANSFORMATION_COMMAND_GET_PRIVATE (self);
+#line 490 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_PHOTO_TRANSFORMATION_STATE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 490 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->map = _tmp0_;
+#line 6085 "Commands.c"
+}
+
+
+static void multiple_photo_transformation_command_finalize (GObject* obj) {
+ MultiplePhotoTransformationCommand * self;
+#line 489 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, MultiplePhotoTransformationCommand);
+#line 6093 "Commands.c"
+ {
+ GeeIterator* _state_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->map;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _state_it = _tmp5_;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 6120 "Commands.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PhotoTransformationState* state = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ PhotoTransformationState* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _state_it;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp7_) {
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 6136 "Commands.c"
+ }
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _state_it;
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ state = (PhotoTransformationState*) _tmp9_;
+#line 508 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = state;
+#line 508 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_PHOTO_TRANSFORMATION_STATE, &_tmp11_, NULL, FALSE);
+#line 508 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _multiple_photo_transformation_command_on_state_broken_photo_transformation_state_broken, self);
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (state);
+#line 6152 "Commands.c"
+ }
+#line 507 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_state_it);
+#line 6156 "Commands.c"
+ }
+#line 490 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->map);
+#line 489 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (multiple_photo_transformation_command_parent_class)->finalize (obj);
+#line 6162 "Commands.c"
+}
+
+
+GType multiple_photo_transformation_command_get_type (void) {
+ static volatile gsize multiple_photo_transformation_command_type_id__volatile = 0;
+ if (g_once_init_enter (&multiple_photo_transformation_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MultiplePhotoTransformationCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multiple_photo_transformation_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiplePhotoTransformationCommand), 0, (GInstanceInitFunc) multiple_photo_transformation_command_instance_init, NULL };
+ GType multiple_photo_transformation_command_type_id;
+ multiple_photo_transformation_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_COMMAND, "MultiplePhotoTransformationCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&multiple_photo_transformation_command_type_id__volatile, multiple_photo_transformation_command_type_id);
+ }
+ return multiple_photo_transformation_command_type_id__volatile;
+}
+
+
+RotateSingleCommand* rotate_single_command_construct (GType object_type, Photo* photo, Rotation rotation, const gchar* name, const gchar* explanation) {
+ RotateSingleCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ Rotation _tmp3_ = 0;
+#line 528 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 528 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 528 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = name;
+#line 529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = explanation;
+#line 529 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RotateSingleCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), _tmp1_, _tmp2_);
+#line 531 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = rotation;
+#line 531 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->rotation = _tmp3_;
+#line 528 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 6204 "Commands.c"
+}
+
+
+RotateSingleCommand* rotate_single_command_new (Photo* photo, Rotation rotation, const gchar* name, const gchar* explanation) {
+#line 528 "/home/jens/Source/shotwell/src/Commands.vala"
+ return rotate_single_command_construct (TYPE_ROTATE_SINGLE_COMMAND, photo, rotation, name, explanation);
+#line 6211 "Commands.c"
+}
+
+
+static void rotate_single_command_real_execute (Command* base) {
+ RotateSingleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ Rotation _tmp1_ = 0;
+#line 534 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommand);
+#line 535 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 535 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->rotation;
+#line 535 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_rotate (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp1_);
+#line 6227 "Commands.c"
+}
+
+
+static void rotate_single_command_real_undo (Command* base) {
+ RotateSingleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ Rotation _tmp1_ = 0;
+ Rotation _tmp2_ = 0;
+#line 538 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommand);
+#line 539 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 539 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->rotation;
+#line 539 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = rotation_opposite (_tmp1_);
+#line 539 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_rotate (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp2_);
+#line 6246 "Commands.c"
+}
+
+
+static void rotate_single_command_class_init (RotateSingleCommandClass * klass) {
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ rotate_single_command_parent_class = g_type_class_peek_parent (klass);
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (RotateSingleCommandPrivate));
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = rotate_single_command_real_execute;
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = rotate_single_command_real_undo;
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = rotate_single_command_finalize;
+#line 6261 "Commands.c"
+}
+
+
+static void rotate_single_command_instance_init (RotateSingleCommand * self) {
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = ROTATE_SINGLE_COMMAND_GET_PRIVATE (self);
+#line 6268 "Commands.c"
+}
+
+
+static void rotate_single_command_finalize (GObject* obj) {
+ RotateSingleCommand * self;
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommand);
+#line 525 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (rotate_single_command_parent_class)->finalize (obj);
+#line 6278 "Commands.c"
+}
+
+
+GType rotate_single_command_get_type (void) {
+ static volatile gsize rotate_single_command_type_id__volatile = 0;
+ if (g_once_init_enter (&rotate_single_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RotateSingleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rotate_single_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RotateSingleCommand), 0, (GInstanceInitFunc) rotate_single_command_instance_init, NULL };
+ GType rotate_single_command_type_id;
+ rotate_single_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "RotateSingleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&rotate_single_command_type_id__volatile, rotate_single_command_type_id);
+ }
+ return rotate_single_command_type_id__volatile;
+}
+
+
+RotateMultipleCommand* rotate_multiple_command_construct (GType object_type, GeeIterable* iter, Rotation rotation, const gchar* name, const gchar* explanation, const gchar* progress_text, const gchar* undo_progress_text) {
+ RotateMultipleCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ Rotation _tmp5_ = 0;
+#line 546 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 546 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 546 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 546 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (progress_text != NULL, NULL);
+#line 546 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (undo_progress_text != NULL, NULL);
+#line 548 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 548 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = progress_text;
+#line 548 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = undo_progress_text;
+#line 548 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = name;
+#line 548 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = explanation;
+#line 548 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RotateMultipleCommand*) multiple_data_source_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 550 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = rotation;
+#line 550 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->rotation = _tmp5_;
+#line 546 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 6330 "Commands.c"
+}
+
+
+RotateMultipleCommand* rotate_multiple_command_new (GeeIterable* iter, Rotation rotation, const gchar* name, const gchar* explanation, const gchar* progress_text, const gchar* undo_progress_text) {
+#line 546 "/home/jens/Source/shotwell/src/Commands.vala"
+ return rotate_multiple_command_construct (TYPE_ROTATE_MULTIPLE_COMMAND, iter, rotation, name, explanation, progress_text, undo_progress_text);
+#line 6337 "Commands.c"
+}
+
+
+static void rotate_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ RotateMultipleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ Rotation _tmp1_ = 0;
+#line 553 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommand);
+#line 553 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 554 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 554 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->rotation;
+#line 554 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_rotate (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp1_);
+#line 6355 "Commands.c"
+}
+
+
+static void rotate_multiple_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ RotateMultipleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ Rotation _tmp1_ = 0;
+ Rotation _tmp2_ = 0;
+#line 557 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommand);
+#line 557 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 558 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 558 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->rotation;
+#line 558 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = rotation_opposite (_tmp1_);
+#line 558 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_rotate (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp2_);
+#line 6376 "Commands.c"
+}
+
+
+static void rotate_multiple_command_class_init (RotateMultipleCommandClass * klass) {
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ rotate_multiple_command_parent_class = g_type_class_peek_parent (klass);
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (RotateMultipleCommandPrivate));
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = rotate_multiple_command_real_execute_on_source;
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = rotate_multiple_command_real_undo_on_source;
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = rotate_multiple_command_finalize;
+#line 6391 "Commands.c"
+}
+
+
+static void rotate_multiple_command_instance_init (RotateMultipleCommand * self) {
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = ROTATE_MULTIPLE_COMMAND_GET_PRIVATE (self);
+#line 6398 "Commands.c"
+}
+
+
+static void rotate_multiple_command_finalize (GObject* obj) {
+ RotateMultipleCommand * self;
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ROTATE_MULTIPLE_COMMAND, RotateMultipleCommand);
+#line 543 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (rotate_multiple_command_parent_class)->finalize (obj);
+#line 6408 "Commands.c"
+}
+
+
+GType rotate_multiple_command_get_type (void) {
+ static volatile gsize rotate_multiple_command_type_id__volatile = 0;
+ if (g_once_init_enter (&rotate_multiple_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RotateMultipleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rotate_multiple_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RotateMultipleCommand), 0, (GInstanceInitFunc) rotate_multiple_command_instance_init, NULL };
+ GType rotate_multiple_command_type_id;
+ rotate_multiple_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_COMMAND, "RotateMultipleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&rotate_multiple_command_type_id__volatile, rotate_multiple_command_type_id);
+ }
+ return rotate_multiple_command_type_id__volatile;
+}
+
+
+EditTitleCommand* edit_title_command_construct (GType object_type, MediaSource* source, const gchar* new_title) {
+ EditTitleCommand * self = NULL;
+ gchar* title = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ MediaSource* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 566 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 566 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_title != NULL, NULL);
+#line 567 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = g_dpgettext2 (NULL, "Button Label", RESOURCES_EDIT_TITLE_LABEL);
+#line 567 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 567 "/home/jens/Source/shotwell/src/Commands.vala"
+ title = _tmp1_;
+#line 569 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = source;
+#line 569 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (EditTitleCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_SOURCE, DataSource), title, "");
+#line 571 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = new_title;
+#line 571 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 571 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_title);
+#line 571 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_title = _tmp4_;
+#line 572 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = source;
+#line 572 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = media_source_get_title (_tmp5_);
+#line 572 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_title);
+#line 572 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_title = _tmp6_;
+#line 566 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (title);
+#line 566 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 6468 "Commands.c"
+}
+
+
+EditTitleCommand* edit_title_command_new (MediaSource* source, const gchar* new_title) {
+#line 566 "/home/jens/Source/shotwell/src/Commands.vala"
+ return edit_title_command_construct (TYPE_EDIT_TITLE_COMMAND, source, new_title);
+#line 6475 "Commands.c"
+}
+
+
+static void edit_title_command_real_execute (Command* base) {
+ EditTitleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 575 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_TITLE_COMMAND, EditTitleCommand);
+#line 576 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 576 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_title;
+#line 576 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), _tmp1_);
+#line 6491 "Commands.c"
+}
+
+
+static void edit_title_command_real_undo (Command* base) {
+ EditTitleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 579 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_TITLE_COMMAND, EditTitleCommand);
+#line 580 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 580 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->old_title;
+#line 580 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), _tmp1_);
+#line 6507 "Commands.c"
+}
+
+
+static void edit_title_command_class_init (EditTitleCommandClass * klass) {
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ edit_title_command_parent_class = g_type_class_peek_parent (klass);
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (EditTitleCommandPrivate));
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = edit_title_command_real_execute;
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = edit_title_command_real_undo;
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = edit_title_command_finalize;
+#line 6522 "Commands.c"
+}
+
+
+static void edit_title_command_instance_init (EditTitleCommand * self) {
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = EDIT_TITLE_COMMAND_GET_PRIVATE (self);
+#line 6529 "Commands.c"
+}
+
+
+static void edit_title_command_finalize (GObject* obj) {
+ EditTitleCommand * self;
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EDIT_TITLE_COMMAND, EditTitleCommand);
+#line 563 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_title);
+#line 564 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_title);
+#line 562 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (edit_title_command_parent_class)->finalize (obj);
+#line 6543 "Commands.c"
+}
+
+
+GType edit_title_command_get_type (void) {
+ static volatile gsize edit_title_command_type_id__volatile = 0;
+ if (g_once_init_enter (&edit_title_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditTitleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edit_title_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditTitleCommand), 0, (GInstanceInitFunc) edit_title_command_instance_init, NULL };
+ GType edit_title_command_type_id;
+ edit_title_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "EditTitleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&edit_title_command_type_id__volatile, edit_title_command_type_id);
+ }
+ return edit_title_command_type_id__volatile;
+}
+
+
+EditCommentCommand* edit_comment_command_construct (GType object_type, MediaSource* source, const gchar* new_comment) {
+ EditCommentCommand * self = NULL;
+ MediaSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 588 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 588 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_comment != NULL, NULL);
+#line 589 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 589 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (EditCommentCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), RESOURCES_EDIT_COMMENT_LABEL, "");
+#line 591 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = new_comment;
+#line 591 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 591 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_comment);
+#line 591 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_comment = _tmp2_;
+#line 592 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = source;
+#line 592 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = media_source_get_comment (_tmp3_);
+#line 592 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_comment);
+#line 592 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_comment = _tmp4_;
+#line 588 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 6592 "Commands.c"
+}
+
+
+EditCommentCommand* edit_comment_command_new (MediaSource* source, const gchar* new_comment) {
+#line 588 "/home/jens/Source/shotwell/src/Commands.vala"
+ return edit_comment_command_construct (TYPE_EDIT_COMMENT_COMMAND, source, new_comment);
+#line 6599 "Commands.c"
+}
+
+
+static void edit_comment_command_real_execute (Command* base) {
+ EditCommentCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 595 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_COMMENT_COMMAND, EditCommentCommand);
+#line 596 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 596 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_comment;
+#line 596 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), _tmp1_);
+#line 6615 "Commands.c"
+}
+
+
+static void edit_comment_command_real_undo (Command* base) {
+ EditCommentCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 599 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_COMMENT_COMMAND, EditCommentCommand);
+#line 600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->old_comment;
+#line 600 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), _tmp1_);
+#line 6631 "Commands.c"
+}
+
+
+static void edit_comment_command_class_init (EditCommentCommandClass * klass) {
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ edit_comment_command_parent_class = g_type_class_peek_parent (klass);
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (EditCommentCommandPrivate));
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = edit_comment_command_real_execute;
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = edit_comment_command_real_undo;
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = edit_comment_command_finalize;
+#line 6646 "Commands.c"
+}
+
+
+static void edit_comment_command_instance_init (EditCommentCommand * self) {
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = EDIT_COMMENT_COMMAND_GET_PRIVATE (self);
+#line 6653 "Commands.c"
+}
+
+
+static void edit_comment_command_finalize (GObject* obj) {
+ EditCommentCommand * self;
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EDIT_COMMENT_COMMAND, EditCommentCommand);
+#line 585 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_comment);
+#line 586 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_comment);
+#line 584 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (edit_comment_command_parent_class)->finalize (obj);
+#line 6667 "Commands.c"
+}
+
+
+GType edit_comment_command_get_type (void) {
+ static volatile gsize edit_comment_command_type_id__volatile = 0;
+ if (g_once_init_enter (&edit_comment_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditCommentCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edit_comment_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditCommentCommand), 0, (GInstanceInitFunc) edit_comment_command_instance_init, NULL };
+ GType edit_comment_command_type_id;
+ edit_comment_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "EditCommentCommand", &g_define_type_info, 0);
+ g_once_init_leave (&edit_comment_command_type_id__volatile, edit_comment_command_type_id);
+ }
+ return edit_comment_command_type_id__volatile;
+}
+
+
+EditMultipleTitlesCommand* edit_multiple_titles_command_construct (GType object_type, GeeCollection* media_sources, const gchar* new_title) {
+ EditMultipleTitlesCommand * self = NULL;
+ gchar* title = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 608 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (media_sources), NULL);
+#line 608 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_title != NULL, NULL);
+#line 609 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = g_dpgettext2 (NULL, "Button Label", RESOURCES_EDIT_TITLE_LABEL);
+#line 609 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 609 "/home/jens/Source/shotwell/src/Commands.vala"
+ title = _tmp1_;
+#line 611 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = media_sources;
+#line 611 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = title;
+#line 611 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (EditMultipleTitlesCommand*) multiple_data_source_at_once_command_construct (object_type, _tmp2_, _tmp3_, "");
+#line 613 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = new_title;
+#line 613 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 613 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->new_title);
+#line 613 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->new_title = _tmp5_;
+#line 6716 "Commands.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = media_sources;
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _media_it = _tmp7_;
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 6729 "Commands.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _media_it;
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp9_) {
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 6748 "Commands.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _media_it;
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ media = (MediaSource*) _tmp11_;
+#line 615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = self->old_titles;
+#line 615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = media;
+#line 615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = media;
+#line 615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = media_source_get_title (_tmp14_);
+#line 615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tmp15_;
+#line 615 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_, _tmp16_);
+#line 615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp16_);
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (media);
+#line 6772 "Commands.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_media_it);
+#line 6776 "Commands.c"
+ }
+#line 608 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (title);
+#line 608 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 6782 "Commands.c"
+}
+
+
+EditMultipleTitlesCommand* edit_multiple_titles_command_new (GeeCollection* media_sources, const gchar* new_title) {
+#line 608 "/home/jens/Source/shotwell/src/Commands.vala"
+ return edit_multiple_titles_command_construct (TYPE_EDIT_MULTIPLE_TITLES_COMMAND, media_sources, new_title);
+#line 6789 "Commands.c"
+}
+
+
+static void edit_multiple_titles_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources) {
+ EditMultipleTitlesCommand * self;
+#line 618 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommand);
+#line 618 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 6799 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = sources;
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 6812 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 6828 "Commands.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 620 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = source;
+#line 620 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->new_title;
+#line 620 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource), _tmp7_);
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 6844 "Commands.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 6848 "Commands.c"
+ }
+}
+
+
+static void edit_multiple_titles_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources) {
+ EditMultipleTitlesCommand * self;
+#line 623 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommand);
+#line 623 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 6859 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = sources;
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 6872 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 6891 "Commands.c"
+ }
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 625 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = source;
+#line 625 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->old_titles;
+#line 625 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = source;
+#line 625 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 625 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = (gchar*) _tmp9_;
+#line 625 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource), _tmp10_);
+#line 625 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp10_);
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 6915 "Commands.c"
+ }
+#line 624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 6919 "Commands.c"
+ }
+}
+
+
+static void edit_multiple_titles_command_class_init (EditMultipleTitlesCommandClass * klass) {
+#line 604 "/home/jens/Source/shotwell/src/Commands.vala"
+ edit_multiple_titles_command_parent_class = g_type_class_peek_parent (klass);
+#line 604 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->execute_on_all = edit_multiple_titles_command_real_execute_on_all;
+#line 604 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->undo_on_all = edit_multiple_titles_command_real_undo_on_all;
+#line 604 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = edit_multiple_titles_command_finalize;
+#line 6933 "Commands.c"
+}
+
+
+static void edit_multiple_titles_command_instance_init (EditMultipleTitlesCommand * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 606 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 606 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->old_titles = _tmp0_;
+#line 6943 "Commands.c"
+}
+
+
+static void edit_multiple_titles_command_finalize (GObject* obj) {
+ EditMultipleTitlesCommand * self;
+#line 604 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommand);
+#line 605 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->new_title);
+#line 606 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->old_titles);
+#line 604 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (edit_multiple_titles_command_parent_class)->finalize (obj);
+#line 6957 "Commands.c"
+}
+
+
+GType edit_multiple_titles_command_get_type (void) {
+ static volatile gsize edit_multiple_titles_command_type_id__volatile = 0;
+ if (g_once_init_enter (&edit_multiple_titles_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditMultipleTitlesCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edit_multiple_titles_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditMultipleTitlesCommand), 0, (GInstanceInitFunc) edit_multiple_titles_command_instance_init, NULL };
+ GType edit_multiple_titles_command_type_id;
+ edit_multiple_titles_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, "EditMultipleTitlesCommand", &g_define_type_info, 0);
+ g_once_init_leave (&edit_multiple_titles_command_type_id__volatile, edit_multiple_titles_command_type_id);
+ }
+ return edit_multiple_titles_command_type_id__volatile;
+}
+
+
+EditMultipleCommentsCommand* edit_multiple_comments_command_construct (GType object_type, GeeCollection* media_sources, const gchar* new_comment) {
+ EditMultipleCommentsCommand * self = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 633 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (media_sources), NULL);
+#line 633 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_comment != NULL, NULL);
+#line 634 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = media_sources;
+#line 634 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (EditMultipleCommentsCommand*) multiple_data_source_at_once_command_construct (object_type, _tmp0_, RESOURCES_EDIT_COMMENT_LABEL, "");
+#line 636 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = new_comment;
+#line 636 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 636 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->new_comment);
+#line 636 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->new_comment = _tmp2_;
+#line 6994 "Commands.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = media_sources;
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _media_it = _tmp4_;
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 7007 "Commands.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _media_it;
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp6_) {
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 7026 "Commands.c"
+ }
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _media_it;
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ media = (MediaSource*) _tmp8_;
+#line 638 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->old_comments;
+#line 638 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = media;
+#line 638 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = media;
+#line 638 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = media_source_get_comment (_tmp11_);
+#line 638 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _tmp12_;
+#line 638 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_, _tmp13_);
+#line 638 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp13_);
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (media);
+#line 7050 "Commands.c"
+ }
+#line 637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_media_it);
+#line 7054 "Commands.c"
+ }
+#line 633 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7058 "Commands.c"
+}
+
+
+EditMultipleCommentsCommand* edit_multiple_comments_command_new (GeeCollection* media_sources, const gchar* new_comment) {
+#line 633 "/home/jens/Source/shotwell/src/Commands.vala"
+ return edit_multiple_comments_command_construct (TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, media_sources, new_comment);
+#line 7065 "Commands.c"
+}
+
+
+static void edit_multiple_comments_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources) {
+ EditMultipleCommentsCommand * self;
+#line 641 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommand);
+#line 641 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 7075 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = sources;
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 7088 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 7104 "Commands.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 643 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = source;
+#line 643 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->new_comment;
+#line 643 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource), _tmp7_);
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 7120 "Commands.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 7124 "Commands.c"
+ }
+}
+
+
+static void edit_multiple_comments_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources) {
+ EditMultipleCommentsCommand * self;
+#line 646 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommand);
+#line 646 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 7135 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = sources;
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 7148 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 7167 "Commands.c"
+ }
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 648 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = source;
+#line 648 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->old_comments;
+#line 648 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = source;
+#line 648 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 648 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = (gchar*) _tmp9_;
+#line 648 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource), _tmp10_);
+#line 648 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp10_);
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 7191 "Commands.c"
+ }
+#line 647 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 7195 "Commands.c"
+ }
+}
+
+
+static void edit_multiple_comments_command_class_init (EditMultipleCommentsCommandClass * klass) {
+#line 629 "/home/jens/Source/shotwell/src/Commands.vala"
+ edit_multiple_comments_command_parent_class = g_type_class_peek_parent (klass);
+#line 629 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->execute_on_all = edit_multiple_comments_command_real_execute_on_all;
+#line 629 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->undo_on_all = edit_multiple_comments_command_real_undo_on_all;
+#line 629 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = edit_multiple_comments_command_finalize;
+#line 7209 "Commands.c"
+}
+
+
+static void edit_multiple_comments_command_instance_init (EditMultipleCommentsCommand * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 631 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 631 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->old_comments = _tmp0_;
+#line 7219 "Commands.c"
+}
+
+
+static void edit_multiple_comments_command_finalize (GObject* obj) {
+ EditMultipleCommentsCommand * self;
+#line 629 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommand);
+#line 630 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->new_comment);
+#line 631 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->old_comments);
+#line 629 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (edit_multiple_comments_command_parent_class)->finalize (obj);
+#line 7233 "Commands.c"
+}
+
+
+GType edit_multiple_comments_command_get_type (void) {
+ static volatile gsize edit_multiple_comments_command_type_id__volatile = 0;
+ if (g_once_init_enter (&edit_multiple_comments_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditMultipleCommentsCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edit_multiple_comments_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditMultipleCommentsCommand), 0, (GInstanceInitFunc) edit_multiple_comments_command_instance_init, NULL };
+ GType edit_multiple_comments_command_type_id;
+ edit_multiple_comments_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, "EditMultipleCommentsCommand", &g_define_type_info, 0);
+ g_once_init_leave (&edit_multiple_comments_command_type_id__volatile, edit_multiple_comments_command_type_id);
+ }
+ return edit_multiple_comments_command_type_id__volatile;
+}
+
+
+RenameEventCommand* rename_event_command_construct (GType object_type, Event* event, const gchar* new_name) {
+ RenameEventCommand * self = NULL;
+ Event* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ Event* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 656 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_name != NULL, NULL);
+#line 657 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = event;
+#line 657 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RenameEventCommand*) simple_proxyable_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PROXYABLE, Proxyable), RESOURCES_RENAME_EVENT_LABEL, "");
+#line 659 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = new_name;
+#line 659 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 659 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_name);
+#line 659 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_name = _tmp2_;
+#line 660 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = event;
+#line 660 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = event_get_raw_name (_tmp3_);
+#line 660 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_name);
+#line 660 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_name = _tmp4_;
+#line 656 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7282 "Commands.c"
+}
+
+
+RenameEventCommand* rename_event_command_new (Event* event, const gchar* new_name) {
+#line 656 "/home/jens/Source/shotwell/src/Commands.vala"
+ return rename_event_command_construct (TYPE_RENAME_EVENT_COMMAND, event, new_name);
+#line 7289 "Commands.c"
+}
+
+
+static void rename_event_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ RenameEventCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 663 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RENAME_EVENT_COMMAND, RenameEventCommand);
+#line 663 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 664 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 664 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_name;
+#line 664 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_rename (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event), _tmp1_);
+#line 7307 "Commands.c"
+}
+
+
+static void rename_event_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ RenameEventCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 667 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RENAME_EVENT_COMMAND, RenameEventCommand);
+#line 667 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 668 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 668 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->old_name;
+#line 668 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_rename (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event), _tmp1_);
+#line 7325 "Commands.c"
+}
+
+
+static void rename_event_command_class_init (RenameEventCommandClass * klass) {
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ rename_event_command_parent_class = g_type_class_peek_parent (klass);
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (RenameEventCommandPrivate));
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->execute_on_source = rename_event_command_real_execute_on_source;
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->undo_on_source = rename_event_command_real_undo_on_source;
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = rename_event_command_finalize;
+#line 7340 "Commands.c"
+}
+
+
+static void rename_event_command_instance_init (RenameEventCommand * self) {
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = RENAME_EVENT_COMMAND_GET_PRIVATE (self);
+#line 7347 "Commands.c"
+}
+
+
+static void rename_event_command_finalize (GObject* obj) {
+ RenameEventCommand * self;
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RENAME_EVENT_COMMAND, RenameEventCommand);
+#line 653 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_name);
+#line 654 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_name);
+#line 652 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (rename_event_command_parent_class)->finalize (obj);
+#line 7361 "Commands.c"
+}
+
+
+GType rename_event_command_get_type (void) {
+ static volatile gsize rename_event_command_type_id__volatile = 0;
+ if (g_once_init_enter (&rename_event_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RenameEventCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rename_event_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RenameEventCommand), 0, (GInstanceInitFunc) rename_event_command_instance_init, NULL };
+ GType rename_event_command_type_id;
+ rename_event_command_type_id = g_type_register_static (TYPE_SIMPLE_PROXYABLE_COMMAND, "RenameEventCommand", &g_define_type_info, 0);
+ g_once_init_leave (&rename_event_command_type_id__volatile, rename_event_command_type_id);
+ }
+ return rename_event_command_type_id__volatile;
+}
+
+
+EditEventCommentCommand* edit_event_comment_command_construct (GType object_type, Event* event, const gchar* new_comment) {
+ EditEventCommentCommand * self = NULL;
+ Event* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ Event* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 676 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_comment != NULL, NULL);
+#line 677 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = event;
+#line 677 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (EditEventCommentCommand*) simple_proxyable_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PROXYABLE, Proxyable), RESOURCES_EDIT_COMMENT_LABEL, "");
+#line 679 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = new_comment;
+#line 679 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 679 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_comment);
+#line 679 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_comment = _tmp2_;
+#line 680 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = event;
+#line 680 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_EVENT_SOURCE, EventSource));
+#line 680 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_comment);
+#line 680 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_comment = _tmp4_;
+#line 676 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7410 "Commands.c"
+}
+
+
+EditEventCommentCommand* edit_event_comment_command_new (Event* event, const gchar* new_comment) {
+#line 676 "/home/jens/Source/shotwell/src/Commands.vala"
+ return edit_event_comment_command_construct (TYPE_EDIT_EVENT_COMMENT_COMMAND, event, new_comment);
+#line 7417 "Commands.c"
+}
+
+
+static void edit_event_comment_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ EditEventCommentCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 683 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommand);
+#line 683 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 684 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 684 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_comment;
+#line 684 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event), TYPE_EVENT_SOURCE, EventSource), _tmp1_);
+#line 7435 "Commands.c"
+}
+
+
+static void edit_event_comment_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ EditEventCommentCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 687 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommand);
+#line 687 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 688 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 688 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->old_comment;
+#line 688 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event), TYPE_EVENT_SOURCE, EventSource), _tmp1_);
+#line 7453 "Commands.c"
+}
+
+
+static void edit_event_comment_command_class_init (EditEventCommentCommandClass * klass) {
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ edit_event_comment_command_parent_class = g_type_class_peek_parent (klass);
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (EditEventCommentCommandPrivate));
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->execute_on_source = edit_event_comment_command_real_execute_on_source;
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->undo_on_source = edit_event_comment_command_real_undo_on_source;
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = edit_event_comment_command_finalize;
+#line 7468 "Commands.c"
+}
+
+
+static void edit_event_comment_command_instance_init (EditEventCommentCommand * self) {
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = EDIT_EVENT_COMMENT_COMMAND_GET_PRIVATE (self);
+#line 7475 "Commands.c"
+}
+
+
+static void edit_event_comment_command_finalize (GObject* obj) {
+ EditEventCommentCommand * self;
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommand);
+#line 673 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_comment);
+#line 674 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_comment);
+#line 672 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (edit_event_comment_command_parent_class)->finalize (obj);
+#line 7489 "Commands.c"
+}
+
+
+GType edit_event_comment_command_get_type (void) {
+ static volatile gsize edit_event_comment_command_type_id__volatile = 0;
+ if (g_once_init_enter (&edit_event_comment_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditEventCommentCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edit_event_comment_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditEventCommentCommand), 0, (GInstanceInitFunc) edit_event_comment_command_instance_init, NULL };
+ GType edit_event_comment_command_type_id;
+ edit_event_comment_command_type_id = g_type_register_static (TYPE_SIMPLE_PROXYABLE_COMMAND, "EditEventCommentCommand", &g_define_type_info, 0);
+ g_once_init_leave (&edit_event_comment_command_type_id__volatile, edit_event_comment_command_type_id);
+ }
+ return edit_event_comment_command_type_id__volatile;
+}
+
+
+SetKeyPhotoCommand* set_key_photo_command_construct (GType object_type, Event* event, MediaSource* new_primary_source) {
+ SetKeyPhotoCommand * self = NULL;
+ Event* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ Event* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+#line 696 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 696 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (new_primary_source), NULL);
+#line 697 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = event;
+#line 697 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SetKeyPhotoCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), RESOURCES_MAKE_KEY_PHOTO_LABEL, "");
+#line 699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = new_primary_source;
+#line 699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->new_primary_source);
+#line 699 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_primary_source = _tmp2_;
+#line 700 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = event;
+#line 700 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = event_get_primary_source (_tmp3_);
+#line 700 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->old_primary_source);
+#line 700 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_primary_source = _tmp4_;
+#line 696 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7538 "Commands.c"
+}
+
+
+SetKeyPhotoCommand* set_key_photo_command_new (Event* event, MediaSource* new_primary_source) {
+#line 696 "/home/jens/Source/shotwell/src/Commands.vala"
+ return set_key_photo_command_construct (TYPE_SET_KEY_PHOTO_COMMAND, event, new_primary_source);
+#line 7545 "Commands.c"
+}
+
+
+static void set_key_photo_command_real_execute (Command* base) {
+ SetKeyPhotoCommand * self;
+ DataSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+#line 703 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_KEY_PHOTO_COMMAND, SetKeyPhotoCommand);
+#line 704 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 704 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_primary_source;
+#line 704 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_set_primary_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event), _tmp1_);
+#line 7561 "Commands.c"
+}
+
+
+static void set_key_photo_command_real_undo (Command* base) {
+ SetKeyPhotoCommand * self;
+ DataSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+#line 707 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_KEY_PHOTO_COMMAND, SetKeyPhotoCommand);
+#line 708 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 708 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->old_primary_source;
+#line 708 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_set_primary_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event), _tmp1_);
+#line 7577 "Commands.c"
+}
+
+
+static void set_key_photo_command_class_init (SetKeyPhotoCommandClass * klass) {
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_key_photo_command_parent_class = g_type_class_peek_parent (klass);
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (SetKeyPhotoCommandPrivate));
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = set_key_photo_command_real_execute;
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = set_key_photo_command_real_undo;
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = set_key_photo_command_finalize;
+#line 7592 "Commands.c"
+}
+
+
+static void set_key_photo_command_instance_init (SetKeyPhotoCommand * self) {
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = SET_KEY_PHOTO_COMMAND_GET_PRIVATE (self);
+#line 7599 "Commands.c"
+}
+
+
+static void set_key_photo_command_finalize (GObject* obj) {
+ SetKeyPhotoCommand * self;
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SET_KEY_PHOTO_COMMAND, SetKeyPhotoCommand);
+#line 693 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->new_primary_source);
+#line 694 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->old_primary_source);
+#line 692 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (set_key_photo_command_parent_class)->finalize (obj);
+#line 7613 "Commands.c"
+}
+
+
+GType set_key_photo_command_get_type (void) {
+ static volatile gsize set_key_photo_command_type_id__volatile = 0;
+ if (g_once_init_enter (&set_key_photo_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SetKeyPhotoCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_key_photo_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetKeyPhotoCommand), 0, (GInstanceInitFunc) set_key_photo_command_instance_init, NULL };
+ GType set_key_photo_command_type_id;
+ set_key_photo_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "SetKeyPhotoCommand", &g_define_type_info, 0);
+ g_once_init_leave (&set_key_photo_command_type_id__volatile, set_key_photo_command_type_id);
+ }
+ return set_key_photo_command_type_id__volatile;
+}
+
+
+RevertSingleCommand* revert_single_command_construct (GType object_type, Photo* photo) {
+ RevertSingleCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+#line 713 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 714 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 714 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RevertSingleCommand*) generic_photo_transformation_command_construct (object_type, _tmp0_, RESOURCES_REVERT_LABEL, "");
+#line 713 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7640 "Commands.c"
+}
+
+
+RevertSingleCommand* revert_single_command_new (Photo* photo) {
+#line 713 "/home/jens/Source/shotwell/src/Commands.vala"
+ return revert_single_command_construct (TYPE_REVERT_SINGLE_COMMAND, photo);
+#line 7647 "Commands.c"
+}
+
+
+static void revert_single_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo) {
+ RevertSingleCommand * self;
+ Photo* _tmp0_ = NULL;
+#line 717 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommand);
+#line 717 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 718 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 718 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_remove_all_transformations (_tmp0_);
+#line 7662 "Commands.c"
+}
+
+
+static gboolean revert_single_command_real_compress (Command* base, Command* command) {
+ RevertSingleCommand * self;
+ gboolean result = FALSE;
+ RevertSingleCommand* revert_single_command = NULL;
+ Command* _tmp0_ = NULL;
+ RevertSingleCommand* _tmp1_ = NULL;
+ RevertSingleCommand* _tmp2_ = NULL;
+ RevertSingleCommand* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommand);
+#line 721 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 722 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command;
+#line 722 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_REVERT_SINGLE_COMMAND) ? ((RevertSingleCommand*) _tmp0_) : NULL);
+#line 722 "/home/jens/Source/shotwell/src/Commands.vala"
+ revert_single_command = _tmp1_;
+#line 723 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = revert_single_command;
+#line 723 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ == NULL) {
+#line 724 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 724 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (revert_single_command);
+#line 724 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 7696 "Commands.c"
+ }
+#line 726 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = revert_single_command;
+#line 726 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 726 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 726 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_ != _tmp5_) {
+#line 727 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 727 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (revert_single_command);
+#line 727 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 7712 "Commands.c"
+ }
+#line 731 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = TRUE;
+#line 731 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (revert_single_command);
+#line 731 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 7720 "Commands.c"
+}
+
+
+static void revert_single_command_class_init (RevertSingleCommandClass * klass) {
+#line 712 "/home/jens/Source/shotwell/src/Commands.vala"
+ revert_single_command_parent_class = g_type_class_peek_parent (klass);
+#line 712 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->execute_on_photo = revert_single_command_real_execute_on_photo;
+#line 712 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->compress = revert_single_command_real_compress;
+#line 7731 "Commands.c"
+}
+
+
+static void revert_single_command_instance_init (RevertSingleCommand * self) {
+}
+
+
+GType revert_single_command_get_type (void) {
+ static volatile gsize revert_single_command_type_id__volatile = 0;
+ if (g_once_init_enter (&revert_single_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RevertSingleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) revert_single_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RevertSingleCommand), 0, (GInstanceInitFunc) revert_single_command_instance_init, NULL };
+ GType revert_single_command_type_id;
+ revert_single_command_type_id = g_type_register_static (TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, "RevertSingleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&revert_single_command_type_id__volatile, revert_single_command_type_id);
+ }
+ return revert_single_command_type_id__volatile;
+}
+
+
+RevertMultipleCommand* revert_multiple_command_construct (GType object_type, GeeIterable* iter) {
+ RevertMultipleCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 736 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _ ("Reverting");
+#line 737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Undoing Revert");
+#line 737 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RevertMultipleCommand*) multiple_photo_transformation_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, RESOURCES_REVERT_LABEL, "");
+#line 736 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7768 "Commands.c"
+}
+
+
+RevertMultipleCommand* revert_multiple_command_new (GeeIterable* iter) {
+#line 736 "/home/jens/Source/shotwell/src/Commands.vala"
+ return revert_multiple_command_construct (TYPE_REVERT_MULTIPLE_COMMAND, iter);
+#line 7775 "Commands.c"
+}
+
+
+static void revert_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ RevertMultipleCommand * self;
+ DataSource* _tmp0_ = NULL;
+#line 741 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_REVERT_MULTIPLE_COMMAND, RevertMultipleCommand);
+#line 741 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 742 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 742 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_remove_all_transformations (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo));
+#line 7790 "Commands.c"
+}
+
+
+static void revert_multiple_command_class_init (RevertMultipleCommandClass * klass) {
+#line 735 "/home/jens/Source/shotwell/src/Commands.vala"
+ revert_multiple_command_parent_class = g_type_class_peek_parent (klass);
+#line 735 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = revert_multiple_command_real_execute_on_source;
+#line 7799 "Commands.c"
+}
+
+
+static void revert_multiple_command_instance_init (RevertMultipleCommand * self) {
+}
+
+
+GType revert_multiple_command_get_type (void) {
+ static volatile gsize revert_multiple_command_type_id__volatile = 0;
+ if (g_once_init_enter (&revert_multiple_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RevertMultipleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) revert_multiple_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RevertMultipleCommand), 0, (GInstanceInitFunc) revert_multiple_command_instance_init, NULL };
+ GType revert_multiple_command_type_id;
+ revert_multiple_command_type_id = g_type_register_static (TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, "RevertMultipleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&revert_multiple_command_type_id__volatile, revert_multiple_command_type_id);
+ }
+ return revert_multiple_command_type_id__volatile;
+}
+
+
+EnhanceSingleCommand* enhance_single_command_construct (GType object_type, Photo* photo) {
+ EnhanceSingleCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+#line 747 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 748 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (EnhanceSingleCommand*) generic_photo_transformation_command_construct (object_type, _tmp0_, RESOURCES_ENHANCE_LABEL, RESOURCES_ENHANCE_TOOLTIP);
+#line 747 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7830 "Commands.c"
+}
+
+
+EnhanceSingleCommand* enhance_single_command_new (Photo* photo) {
+#line 747 "/home/jens/Source/shotwell/src/Commands.vala"
+ return enhance_single_command_construct (TYPE_ENHANCE_SINGLE_COMMAND, photo);
+#line 7837 "Commands.c"
+}
+
+
+static void enhance_single_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo) {
+ EnhanceSingleCommand * self;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+#line 751 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommand);
+#line 751 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 752 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow));
+#line 752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp1_);
+#line 757 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = photo;
+#line 757 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_enhance (_tmp2_);
+#line 763 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = app_window_get_instance ();
+#line 763 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 763 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PAGE_WINDOW, PageWindow));
+#line 763 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp4_);
+#line 7872 "Commands.c"
+}
+
+
+static gboolean enhance_single_command_real_compress (Command* base, Command* command) {
+ EnhanceSingleCommand * self;
+ gboolean result = FALSE;
+ EnhanceSingleCommand* enhance_single_command = NULL;
+ Command* _tmp0_ = NULL;
+ EnhanceSingleCommand* _tmp1_ = NULL;
+ EnhanceSingleCommand* _tmp2_ = NULL;
+ EnhanceSingleCommand* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+#line 766 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommand);
+#line 766 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command;
+#line 767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_ENHANCE_SINGLE_COMMAND) ? ((EnhanceSingleCommand*) _tmp0_) : NULL);
+#line 767 "/home/jens/Source/shotwell/src/Commands.vala"
+ enhance_single_command = _tmp1_;
+#line 768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = enhance_single_command;
+#line 768 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ == NULL) {
+#line 769 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 769 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (enhance_single_command);
+#line 769 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 7906 "Commands.c"
+ }
+#line 771 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = enhance_single_command;
+#line 771 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 771 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 771 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_ != _tmp5_) {
+#line 772 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = FALSE;
+#line 772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (enhance_single_command);
+#line 772 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 7922 "Commands.c"
+ }
+#line 775 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = TRUE;
+#line 775 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (enhance_single_command);
+#line 775 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 7930 "Commands.c"
+}
+
+
+static void enhance_single_command_class_init (EnhanceSingleCommandClass * klass) {
+#line 746 "/home/jens/Source/shotwell/src/Commands.vala"
+ enhance_single_command_parent_class = g_type_class_peek_parent (klass);
+#line 746 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->execute_on_photo = enhance_single_command_real_execute_on_photo;
+#line 746 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->compress = enhance_single_command_real_compress;
+#line 7941 "Commands.c"
+}
+
+
+static void enhance_single_command_instance_init (EnhanceSingleCommand * self) {
+}
+
+
+GType enhance_single_command_get_type (void) {
+ static volatile gsize enhance_single_command_type_id__volatile = 0;
+ if (g_once_init_enter (&enhance_single_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EnhanceSingleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) enhance_single_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EnhanceSingleCommand), 0, (GInstanceInitFunc) enhance_single_command_instance_init, NULL };
+ GType enhance_single_command_type_id;
+ enhance_single_command_type_id = g_type_register_static (TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, "EnhanceSingleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&enhance_single_command_type_id__volatile, enhance_single_command_type_id);
+ }
+ return enhance_single_command_type_id__volatile;
+}
+
+
+EnhanceMultipleCommand* enhance_multiple_command_construct (GType object_type, GeeIterable* iter) {
+ EnhanceMultipleCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 780 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 781 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 781 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _ ("Enhancing");
+#line 781 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Undoing Enhance");
+#line 781 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (EnhanceMultipleCommand*) multiple_photo_transformation_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, RESOURCES_ENHANCE_LABEL, RESOURCES_ENHANCE_TOOLTIP);
+#line 780 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 7978 "Commands.c"
+}
+
+
+EnhanceMultipleCommand* enhance_multiple_command_new (GeeIterable* iter) {
+#line 780 "/home/jens/Source/shotwell/src/Commands.vala"
+ return enhance_multiple_command_construct (TYPE_ENHANCE_MULTIPLE_COMMAND, iter);
+#line 7985 "Commands.c"
+}
+
+
+static void enhance_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ EnhanceMultipleCommand * self;
+ DataSource* _tmp0_ = NULL;
+#line 785 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ENHANCE_MULTIPLE_COMMAND, EnhanceMultipleCommand);
+#line 785 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 786 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 786 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_enhance (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo));
+#line 8000 "Commands.c"
+}
+
+
+static void enhance_multiple_command_class_init (EnhanceMultipleCommandClass * klass) {
+#line 779 "/home/jens/Source/shotwell/src/Commands.vala"
+ enhance_multiple_command_parent_class = g_type_class_peek_parent (klass);
+#line 779 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = enhance_multiple_command_real_execute_on_source;
+#line 8009 "Commands.c"
+}
+
+
+static void enhance_multiple_command_instance_init (EnhanceMultipleCommand * self) {
+}
+
+
+GType enhance_multiple_command_get_type (void) {
+ static volatile gsize enhance_multiple_command_type_id__volatile = 0;
+ if (g_once_init_enter (&enhance_multiple_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EnhanceMultipleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) enhance_multiple_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EnhanceMultipleCommand), 0, (GInstanceInitFunc) enhance_multiple_command_instance_init, NULL };
+ GType enhance_multiple_command_type_id;
+ enhance_multiple_command_type_id = g_type_register_static (TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, "EnhanceMultipleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&enhance_multiple_command_type_id__volatile, enhance_multiple_command_type_id);
+ }
+ return enhance_multiple_command_type_id__volatile;
+}
+
+
+StraightenCommand* straighten_command_construct (GType object_type, Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation) {
+ StraightenCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ Box _tmp4_ = {0};
+#line 794 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 794 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (crop != NULL, NULL);
+#line 794 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 794 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 795 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 795 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = name;
+#line 795 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = explanation;
+#line 795 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (StraightenCommand*) generic_photo_transformation_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 797 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = theta;
+#line 797 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->theta = _tmp3_;
+#line 798 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = *crop;
+#line 798 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->crop = _tmp4_;
+#line 794 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 8062 "Commands.c"
+}
+
+
+StraightenCommand* straighten_command_new (Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation) {
+#line 794 "/home/jens/Source/shotwell/src/Commands.vala"
+ return straighten_command_construct (TYPE_STRAIGHTEN_COMMAND, photo, theta, crop, name, explanation);
+#line 8069 "Commands.c"
+}
+
+
+static void straighten_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo) {
+ StraightenCommand * self;
+ DataCollection* collection = NULL;
+ Photo* _tmp0_ = NULL;
+ DataCollection* _tmp1_ = NULL;
+ DataCollection* _tmp2_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ Photo* _tmp6_ = NULL;
+ Box _tmp7_ = {0};
+ DataCollection* _tmp8_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_STRAIGHTEN_COMMAND, StraightenCommand);
+#line 801 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 803 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 803 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 803 "/home/jens/Source/shotwell/src/Commands.vala"
+ collection = _tmp1_;
+#line 804 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = collection;
+#line 804 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ != NULL) {
+#line 8098 "Commands.c"
+ DataCollection* _tmp3_ = NULL;
+#line 805 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = collection;
+#line 805 "/home/jens/Source/shotwell/src/Commands.vala"
+ data_collection_freeze_notifications (_tmp3_);
+#line 8104 "Commands.c"
+ }
+#line 807 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = photo;
+#line 807 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->theta;
+#line 807 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_straighten (_tmp4_, _tmp5_);
+#line 808 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = photo;
+#line 808 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->crop;
+#line 808 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_crop (_tmp6_, &_tmp7_);
+#line 810 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = collection;
+#line 810 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp8_ != NULL) {
+#line 8122 "Commands.c"
+ DataCollection* _tmp9_ = NULL;
+#line 811 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = collection;
+#line 811 "/home/jens/Source/shotwell/src/Commands.vala"
+ data_collection_thaw_notifications (_tmp9_);
+#line 8128 "Commands.c"
+ }
+#line 801 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (collection);
+#line 8132 "Commands.c"
+}
+
+
+static void straighten_command_class_init (StraightenCommandClass * klass) {
+#line 790 "/home/jens/Source/shotwell/src/Commands.vala"
+ straighten_command_parent_class = g_type_class_peek_parent (klass);
+#line 790 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (StraightenCommandPrivate));
+#line 790 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->execute_on_photo = straighten_command_real_execute_on_photo;
+#line 790 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = straighten_command_finalize;
+#line 8145 "Commands.c"
+}
+
+
+static void straighten_command_instance_init (StraightenCommand * self) {
+#line 790 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = STRAIGHTEN_COMMAND_GET_PRIVATE (self);
+#line 8152 "Commands.c"
+}
+
+
+static void straighten_command_finalize (GObject* obj) {
+ StraightenCommand * self;
+#line 790 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_STRAIGHTEN_COMMAND, StraightenCommand);
+#line 790 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (straighten_command_parent_class)->finalize (obj);
+#line 8162 "Commands.c"
+}
+
+
+GType straighten_command_get_type (void) {
+ static volatile gsize straighten_command_type_id__volatile = 0;
+ if (g_once_init_enter (&straighten_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (StraightenCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) straighten_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (StraightenCommand), 0, (GInstanceInitFunc) straighten_command_instance_init, NULL };
+ GType straighten_command_type_id;
+ straighten_command_type_id = g_type_register_static (TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, "StraightenCommand", &g_define_type_info, 0);
+ g_once_init_leave (&straighten_command_type_id__volatile, straighten_command_type_id);
+ }
+ return straighten_command_type_id__volatile;
+}
+
+
+CropCommand* crop_command_construct (GType object_type, Photo* photo, Box* crop, const gchar* name, const gchar* explanation) {
+ CropCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ Box _tmp3_ = {0};
+#line 818 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 818 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (crop != NULL, NULL);
+#line 818 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 818 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 819 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 819 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = name;
+#line 819 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = explanation;
+#line 819 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (CropCommand*) generic_photo_transformation_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 821 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = *crop;
+#line 821 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->crop = _tmp3_;
+#line 818 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 8206 "Commands.c"
+}
+
+
+CropCommand* crop_command_new (Photo* photo, Box* crop, const gchar* name, const gchar* explanation) {
+#line 818 "/home/jens/Source/shotwell/src/Commands.vala"
+ return crop_command_construct (TYPE_CROP_COMMAND, photo, crop, name, explanation);
+#line 8213 "Commands.c"
+}
+
+
+static void crop_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo) {
+ CropCommand * self;
+ Photo* _tmp0_ = NULL;
+ Box _tmp1_ = {0};
+#line 824 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CROP_COMMAND, CropCommand);
+#line 824 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->crop;
+#line 825 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_crop (_tmp0_, &_tmp1_);
+#line 8231 "Commands.c"
+}
+
+
+static void crop_command_class_init (CropCommandClass * klass) {
+#line 815 "/home/jens/Source/shotwell/src/Commands.vala"
+ crop_command_parent_class = g_type_class_peek_parent (klass);
+#line 815 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (CropCommandPrivate));
+#line 815 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->execute_on_photo = crop_command_real_execute_on_photo;
+#line 815 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = crop_command_finalize;
+#line 8244 "Commands.c"
+}
+
+
+static void crop_command_instance_init (CropCommand * self) {
+#line 815 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = CROP_COMMAND_GET_PRIVATE (self);
+#line 8251 "Commands.c"
+}
+
+
+static void crop_command_finalize (GObject* obj) {
+ CropCommand * self;
+#line 815 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CROP_COMMAND, CropCommand);
+#line 815 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (crop_command_parent_class)->finalize (obj);
+#line 8261 "Commands.c"
+}
+
+
+GType crop_command_get_type (void) {
+ static volatile gsize crop_command_type_id__volatile = 0;
+ if (g_once_init_enter (&crop_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CropCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) crop_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CropCommand), 0, (GInstanceInitFunc) crop_command_instance_init, NULL };
+ GType crop_command_type_id;
+ crop_command_type_id = g_type_register_static (TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, "CropCommand", &g_define_type_info, 0);
+ g_once_init_leave (&crop_command_type_id__volatile, crop_command_type_id);
+ }
+ return crop_command_type_id__volatile;
+}
+
+
+static gpointer _pixel_transformation_bundle_ref0 (gpointer self) {
+#line 836 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self ? pixel_transformation_bundle_ref (self) : NULL;
+#line 8280 "Commands.c"
+}
+
+
+AdjustColorsSingleCommand* adjust_colors_single_command_construct (GType object_type, Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation) {
+ AdjustColorsSingleCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp3_ = NULL;
+ PixelTransformationBundle* _tmp4_ = NULL;
+#line 832 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 832 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (transformations), NULL);
+#line 832 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 832 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 834 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 834 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = name;
+#line 834 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = explanation;
+#line 834 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (AdjustColorsSingleCommand*) generic_photo_transformation_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 836 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = transformations;
+#line 836 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _pixel_transformation_bundle_ref0 (_tmp3_);
+#line 836 "/home/jens/Source/shotwell/src/Commands.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->transformations);
+#line 836 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->transformations = _tmp4_;
+#line 832 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 8317 "Commands.c"
+}
+
+
+AdjustColorsSingleCommand* adjust_colors_single_command_new (Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation) {
+#line 832 "/home/jens/Source/shotwell/src/Commands.vala"
+ return adjust_colors_single_command_construct (TYPE_ADJUST_COLORS_SINGLE_COMMAND, photo, transformations, name, explanation);
+#line 8324 "Commands.c"
+}
+
+
+static void adjust_colors_single_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo) {
+ AdjustColorsSingleCommand * self;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+#line 839 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommand);
+#line 839 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 840 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 840 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 840 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow));
+#line 840 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp1_);
+#line 842 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = photo;
+#line 842 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->transformations;
+#line 842 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_color_adjustments (_tmp2_, _tmp3_);
+#line 844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 844 "/home/jens/Source/shotwell/src/Commands.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PAGE_WINDOW, PageWindow));
+#line 844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp5_);
+#line 8362 "Commands.c"
+}
+
+
+static gboolean adjust_colors_single_command_real_can_compress (GenericPhotoTransformationCommand* base, Command* command) {
+ AdjustColorsSingleCommand * self;
+ gboolean result = FALSE;
+ Command* _tmp0_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommand);
+#line 847 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 848 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command;
+#line 848 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_ADJUST_COLORS_SINGLE_COMMAND);
+#line 848 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 8380 "Commands.c"
+}
+
+
+static void adjust_colors_single_command_class_init (AdjustColorsSingleCommandClass * klass) {
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_colors_single_command_parent_class = g_type_class_peek_parent (klass);
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (AdjustColorsSingleCommandPrivate));
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->execute_on_photo = adjust_colors_single_command_real_execute_on_photo;
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->can_compress = adjust_colors_single_command_real_can_compress;
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = adjust_colors_single_command_finalize;
+#line 8395 "Commands.c"
+}
+
+
+static void adjust_colors_single_command_instance_init (AdjustColorsSingleCommand * self) {
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = ADJUST_COLORS_SINGLE_COMMAND_GET_PRIVATE (self);
+#line 8402 "Commands.c"
+}
+
+
+static void adjust_colors_single_command_finalize (GObject* obj) {
+ AdjustColorsSingleCommand * self;
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommand);
+#line 830 "/home/jens/Source/shotwell/src/Commands.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->transformations);
+#line 829 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (adjust_colors_single_command_parent_class)->finalize (obj);
+#line 8414 "Commands.c"
+}
+
+
+GType adjust_colors_single_command_get_type (void) {
+ static volatile gsize adjust_colors_single_command_type_id__volatile = 0;
+ if (g_once_init_enter (&adjust_colors_single_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AdjustColorsSingleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) adjust_colors_single_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AdjustColorsSingleCommand), 0, (GInstanceInitFunc) adjust_colors_single_command_instance_init, NULL };
+ GType adjust_colors_single_command_type_id;
+ adjust_colors_single_command_type_id = g_type_register_static (TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, "AdjustColorsSingleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&adjust_colors_single_command_type_id__volatile, adjust_colors_single_command_type_id);
+ }
+ return adjust_colors_single_command_type_id__volatile;
+}
+
+
+AdjustColorsMultipleCommand* adjust_colors_multiple_command_construct (GType object_type, GeeIterable* iter, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation) {
+ AdjustColorsMultipleCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ PixelTransformationBundle* _tmp5_ = NULL;
+ PixelTransformationBundle* _tmp6_ = NULL;
+#line 855 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 855 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (transformations), NULL);
+#line 855 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 855 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _ ("Applying Color Transformations");
+#line 857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Undoing Color Transformations");
+#line 857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = name;
+#line 857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = explanation;
+#line 857 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (AdjustColorsMultipleCommand*) multiple_photo_transformation_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 860 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = transformations;
+#line 860 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _pixel_transformation_bundle_ref0 (_tmp5_);
+#line 860 "/home/jens/Source/shotwell/src/Commands.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->transformations);
+#line 860 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->transformations = _tmp6_;
+#line 855 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 8469 "Commands.c"
+}
+
+
+AdjustColorsMultipleCommand* adjust_colors_multiple_command_new (GeeIterable* iter, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation) {
+#line 855 "/home/jens/Source/shotwell/src/Commands.vala"
+ return adjust_colors_multiple_command_construct (TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, iter, transformations, name, explanation);
+#line 8476 "Commands.c"
+}
+
+
+static void adjust_colors_multiple_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ AdjustColorsMultipleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+#line 863 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommand);
+#line 863 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 864 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 864 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->transformations;
+#line 864 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_color_adjustments (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo), _tmp1_);
+#line 8494 "Commands.c"
+}
+
+
+static void adjust_colors_multiple_command_class_init (AdjustColorsMultipleCommandClass * klass) {
+#line 852 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_colors_multiple_command_parent_class = g_type_class_peek_parent (klass);
+#line 852 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (AdjustColorsMultipleCommandPrivate));
+#line 852 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = adjust_colors_multiple_command_real_execute_on_source;
+#line 852 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = adjust_colors_multiple_command_finalize;
+#line 8507 "Commands.c"
+}
+
+
+static void adjust_colors_multiple_command_instance_init (AdjustColorsMultipleCommand * self) {
+#line 852 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = ADJUST_COLORS_MULTIPLE_COMMAND_GET_PRIVATE (self);
+#line 8514 "Commands.c"
+}
+
+
+static void adjust_colors_multiple_command_finalize (GObject* obj) {
+ AdjustColorsMultipleCommand * self;
+#line 852 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADJUST_COLORS_MULTIPLE_COMMAND, AdjustColorsMultipleCommand);
+#line 853 "/home/jens/Source/shotwell/src/Commands.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->transformations);
+#line 852 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (adjust_colors_multiple_command_parent_class)->finalize (obj);
+#line 8526 "Commands.c"
+}
+
+
+GType adjust_colors_multiple_command_get_type (void) {
+ static volatile gsize adjust_colors_multiple_command_type_id__volatile = 0;
+ if (g_once_init_enter (&adjust_colors_multiple_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AdjustColorsMultipleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) adjust_colors_multiple_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AdjustColorsMultipleCommand), 0, (GInstanceInitFunc) adjust_colors_multiple_command_instance_init, NULL };
+ GType adjust_colors_multiple_command_type_id;
+ adjust_colors_multiple_command_type_id = g_type_register_static (TYPE_MULTIPLE_PHOTO_TRANSFORMATION_COMMAND, "AdjustColorsMultipleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&adjust_colors_multiple_command_type_id__volatile, adjust_colors_multiple_command_type_id);
+ }
+ return adjust_colors_multiple_command_type_id__volatile;
+}
+
+
+RedeyeCommand* redeye_command_construct (GType object_type, Photo* photo, EditingToolsRedeyeInstance* redeye_instance, const gchar* name, const gchar* explanation) {
+ RedeyeCommand * self = NULL;
+ Photo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ EditingToolsRedeyeInstance _tmp3_ = {0};
+#line 871 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 871 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (redeye_instance != NULL, NULL);
+#line 871 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 871 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = name;
+#line 873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = explanation;
+#line 873 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RedeyeCommand*) generic_photo_transformation_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = *redeye_instance;
+#line 875 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->redeye_instance = _tmp3_;
+#line 871 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 8570 "Commands.c"
+}
+
+
+RedeyeCommand* redeye_command_new (Photo* photo, EditingToolsRedeyeInstance* redeye_instance, const gchar* name, const gchar* explanation) {
+#line 871 "/home/jens/Source/shotwell/src/Commands.vala"
+ return redeye_command_construct (TYPE_REDEYE_COMMAND, photo, redeye_instance, name, explanation);
+#line 8577 "Commands.c"
+}
+
+
+static void redeye_command_real_execute_on_photo (GenericPhotoTransformationCommand* base, Photo* photo) {
+ RedeyeCommand * self;
+ Photo* _tmp0_ = NULL;
+ EditingToolsRedeyeInstance _tmp1_ = {0};
+#line 878 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_REDEYE_COMMAND, RedeyeCommand);
+#line 878 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 879 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = photo;
+#line 879 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->redeye_instance;
+#line 879 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_add_redeye_instance (_tmp0_, &_tmp1_);
+#line 8595 "Commands.c"
+}
+
+
+static void redeye_command_class_init (RedeyeCommandClass * klass) {
+#line 868 "/home/jens/Source/shotwell/src/Commands.vala"
+ redeye_command_parent_class = g_type_class_peek_parent (klass);
+#line 868 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (RedeyeCommandPrivate));
+#line 868 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((GenericPhotoTransformationCommandClass *) klass)->execute_on_photo = redeye_command_real_execute_on_photo;
+#line 868 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = redeye_command_finalize;
+#line 8608 "Commands.c"
+}
+
+
+static void redeye_command_instance_init (RedeyeCommand * self) {
+#line 868 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = REDEYE_COMMAND_GET_PRIVATE (self);
+#line 8615 "Commands.c"
+}
+
+
+static void redeye_command_finalize (GObject* obj) {
+ RedeyeCommand * self;
+#line 868 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_REDEYE_COMMAND, RedeyeCommand);
+#line 868 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (redeye_command_parent_class)->finalize (obj);
+#line 8625 "Commands.c"
+}
+
+
+GType redeye_command_get_type (void) {
+ static volatile gsize redeye_command_type_id__volatile = 0;
+ if (g_once_init_enter (&redeye_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RedeyeCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) redeye_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RedeyeCommand), 0, (GInstanceInitFunc) redeye_command_instance_init, NULL };
+ GType redeye_command_type_id;
+ redeye_command_type_id = g_type_register_static (TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, "RedeyeCommand", &g_define_type_info, 0);
+ g_once_init_leave (&redeye_command_type_id__volatile, redeye_command_type_id);
+ }
+ return redeye_command_type_id__volatile;
+}
+
+
+MovePhotosCommand* move_photos_command_construct (GType object_type, const gchar* name, const gchar* explanation) {
+ MovePhotosCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 967 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 967 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 968 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = name;
+#line 968 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = explanation;
+#line 968 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (MovePhotosCommand*) command_construct (object_type, _tmp0_, _tmp1_);
+#line 967 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 8657 "Commands.c"
+}
+
+
+static void move_photos_command_real_prepare (Command* base) {
+ MovePhotosCommand * self;
+ MovePhotosCommandRealMovePhotosCommand* _tmp0_ = NULL;
+ MovePhotosCommandRealMovePhotosCommand* _tmp1_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand);
+#line 972 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->real_command;
+#line 972 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "real_command != null");
+#line 973 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->real_command;
+#line 973 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_prepare (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_COMMAND, Command));
+#line 8675 "Commands.c"
+}
+
+
+static void move_photos_command_real_execute (Command* base) {
+ MovePhotosCommand * self;
+ MovePhotosCommandRealMovePhotosCommand* _tmp0_ = NULL;
+ MovePhotosCommandRealMovePhotosCommand* _tmp1_ = NULL;
+#line 976 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand);
+#line 977 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->real_command;
+#line 977 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "real_command != null");
+#line 978 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->real_command;
+#line 978 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_execute (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_COMMAND, Command));
+#line 8693 "Commands.c"
+}
+
+
+static void move_photos_command_real_undo (Command* base) {
+ MovePhotosCommand * self;
+ MovePhotosCommandRealMovePhotosCommand* _tmp0_ = NULL;
+ MovePhotosCommandRealMovePhotosCommand* _tmp1_ = NULL;
+#line 981 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand);
+#line 982 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->real_command;
+#line 982 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "real_command != null");
+#line 983 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->real_command;
+#line 983 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_undo (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_COMMAND, Command));
+#line 8711 "Commands.c"
+}
+
+
+static void _move_photos_command_real_move_photos_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self) {
+#line 914 "/home/jens/Source/shotwell/src/Commands.vala"
+ move_photos_command_real_move_photos_command_on_proxy_broken ((MovePhotosCommandRealMovePhotosCommand*) self);
+#line 8718 "Commands.c"
+}
+
+
+static gpointer _source_proxy_ref0 (gpointer self) {
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self ? source_proxy_ref (self) : NULL;
+#line 8725 "Commands.c"
+}
+
+
+MovePhotosCommandRealMovePhotosCommand* move_photos_command_real_move_photos_command_construct (GType object_type, Event* new_event, GeeIterable* source_views, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation) {
+ MovePhotosCommandRealMovePhotosCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ Event* _tmp30_ = NULL;
+ SourceProxy* _tmp31_ = NULL;
+ SourceProxy* _tmp32_ = NULL;
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail ((new_event == NULL) || IS_EVENT (new_event), NULL);
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (source_views), NULL);
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (progress_text != NULL, NULL);
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (undo_progress_text != NULL, NULL);
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source_views;
+#line 893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = progress_text;
+#line 893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = undo_progress_text;
+#line 893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = name;
+#line 893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = explanation;
+#line 893 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (MovePhotosCommandRealMovePhotosCommand*) multiple_data_source_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 8763 "Commands.c"
+ {
+ GeeArrayList* _source_list = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _source_size = 0;
+ GeeArrayList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _source_index = 0;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand)->source_list;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_list = _tmp6_;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _source_list;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_size = _tmp9_;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_index = -1;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 8791 "Commands.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ DataSource* source = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gpointer _tmp15_ = NULL;
+ MediaSource* current_media = NULL;
+ DataSource* _tmp16_ = NULL;
+ MediaSource* _tmp17_ = NULL;
+ Event* old_event = NULL;
+ MediaSource* _tmp18_ = NULL;
+ Event* _tmp19_ = NULL;
+ SourceProxy* _tmp20_ = NULL;
+ Event* _tmp21_ = NULL;
+ SourceProxy* old_event_proxy = NULL;
+ SourceProxy* _tmp24_ = NULL;
+ SourceProxy* _tmp25_ = NULL;
+ GeeHashMap* _tmp27_ = NULL;
+ MediaSource* _tmp28_ = NULL;
+ SourceProxy* _tmp29_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _source_index;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_index = _tmp10_ + 1;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _source_index;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _source_size;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp11_ < _tmp12_)) {
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 8825 "Commands.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _source_list;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _source_index;
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp14_);
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp15_;
+#line 897 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = source;
+#line 897 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 897 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_media = _tmp17_;
+#line 898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = current_media;
+#line 898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = media_source_get_event (_tmp18_);
+#line 898 "/home/jens/Source/shotwell/src/Commands.vala"
+ old_event = _tmp19_;
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = old_event;
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp21_ != NULL) {
+#line 8851 "Commands.c"
+ Event* _tmp22_ = NULL;
+ SourceProxy* _tmp23_ = NULL;
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = old_event;
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_PROXYABLE, Proxyable));
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp20_);
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _tmp23_;
+#line 8862 "Commands.c"
+ } else {
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp20_);
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = NULL;
+#line 8868 "Commands.c"
+ }
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _source_proxy_ref0 (_tmp20_);
+#line 899 "/home/jens/Source/shotwell/src/Commands.vala"
+ old_event_proxy = _tmp24_;
+#line 902 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = old_event_proxy;
+#line 902 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp25_ != NULL) {
+#line 8878 "Commands.c"
+ SourceProxy* _tmp26_ = NULL;
+#line 903 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = old_event_proxy;
+#line 903 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp26_, "broken", (GCallback) _move_photos_command_real_move_photos_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 8884 "Commands.c"
+ }
+#line 905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = self->priv->old_events;
+#line 905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = current_media;
+#line 905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = old_event_proxy;
+#line 905 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp28_, _tmp29_);
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (old_event_proxy);
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp20_);
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (old_event);
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_media);
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 8904 "Commands.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_list);
+#line 8908 "Commands.c"
+ }
+#line 909 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = new_event;
+#line 909 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_PROXYABLE, Proxyable));
+#line 909 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (self->priv->new_event_proxy);
+#line 909 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_event_proxy = _tmp31_;
+#line 910 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = self->priv->new_event_proxy;
+#line 910 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp32_, "broken", (GCallback) _move_photos_command_real_move_photos_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 8924 "Commands.c"
+}
+
+
+MovePhotosCommandRealMovePhotosCommand* move_photos_command_real_move_photos_command_new (Event* new_event, GeeIterable* source_views, const gchar* progress_text, const gchar* undo_progress_text, const gchar* name, const gchar* explanation) {
+#line 891 "/home/jens/Source/shotwell/src/Commands.vala"
+ return move_photos_command_real_move_photos_command_construct (MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, new_event, source_views, progress_text, undo_progress_text, name, explanation);
+#line 8931 "Commands.c"
+}
+
+
+static void move_photos_command_real_move_photos_command_real_execute (Command* base) {
+ MovePhotosCommandRealMovePhotosCommand * self;
+ LibraryWindow* _tmp0_ = NULL;
+ LibraryWindow* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 922 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommand);
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = library_window_get_app ();
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow));
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_EVENT_PAGE);
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp1_);
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_) {
+#line 8960 "Commands.c"
+ Event* evt = NULL;
+ LibraryWindow* _tmp5_ = NULL;
+ LibraryWindow* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ EventPage* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ Event* _tmp10_ = NULL;
+ Event* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = library_window_get_app ();
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PAGE_WINDOW, PageWindow));
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_EVENT_PAGE, EventPage);
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = event_page_get_event (_tmp8_);
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp8_);
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp6_);
+#line 925 "/home/jens/Source/shotwell/src/Commands.vala"
+ evt = _tmp10_;
+#line 928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = evt;
+#line 928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_EVENT_SOURCE, EventSource));
+#line 928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand)->source_list;
+#line 928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tmp14_;
+#line 928 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp12_ == _tmp15_) {
+#line 9003 "Commands.c"
+ LibraryWindow* _tmp16_ = NULL;
+ LibraryWindow* _tmp17_ = NULL;
+ SourceProxy* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+ Event* _tmp20_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = library_window_get_app ();
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = self->priv->new_event_proxy;
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = source_proxy_get_source (_tmp18_);
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_EVENT, Event);
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ library_window_switch_to_event (_tmp17_, _tmp20_);
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp20_);
+#line 931 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp17_);
+#line 9025 "Commands.c"
+ }
+#line 924 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (evt);
+#line 9029 "Commands.c"
+ } else {
+ SourceProxy* _tmp21_ = NULL;
+ DataSource* _tmp22_ = NULL;
+ Event* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gboolean _tmp25_ = FALSE;
+#line 937 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = self->priv->new_event_proxy;
+#line 937 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = source_proxy_get_source (_tmp21_);
+#line 937 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_EVENT, Event);
+#line 937 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_EVENT_SOURCE, EventSource));
+#line 937 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _tmp24_ == 0;
+#line 937 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 937 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp25_) {
+#line 9050 "Commands.c"
+ LibraryWindow* _tmp26_ = NULL;
+ LibraryWindow* _tmp27_ = NULL;
+ SourceProxy* _tmp28_ = NULL;
+ DataSource* _tmp29_ = NULL;
+ Event* _tmp30_ = NULL;
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = library_window_get_app ();
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = _tmp26_;
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = self->priv->new_event_proxy;
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = source_proxy_get_source (_tmp28_);
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_EVENT, Event);
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ library_window_switch_to_event (_tmp27_, _tmp30_);
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp30_);
+#line 939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp27_);
+#line 9072 "Commands.c"
+ }
+ }
+#line 946 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (move_photos_command_real_move_photos_command_parent_class)->execute (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 9077 "Commands.c"
+}
+
+
+static void move_photos_command_real_move_photos_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ MovePhotosCommandRealMovePhotosCommand * self;
+ DataSource* _tmp0_ = NULL;
+ SourceProxy* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ Event* _tmp3_ = NULL;
+#line 949 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommand);
+#line 949 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_event_proxy;
+#line 950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = source_proxy_get_source (_tmp1_);
+#line 950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_EVENT, Event);
+#line 950 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), _tmp3_);
+#line 950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 9103 "Commands.c"
+}
+
+
+static void move_photos_command_real_move_photos_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ MovePhotosCommandRealMovePhotosCommand * self;
+ MediaSource* current_media = NULL;
+ DataSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ SourceProxy* event_proxy = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ gpointer _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+ SourceProxy* _tmp6_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+#line 953 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommand);
+#line 953 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 954 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_media = _tmp1_;
+#line 955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->old_events;
+#line 955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = current_media;
+#line 955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_);
+#line 955 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_proxy = (SourceProxy*) _tmp4_;
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = event_proxy;
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ != NULL) {
+#line 9141 "Commands.c"
+ SourceProxy* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = event_proxy;
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = source_proxy_get_source (_tmp7_);
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp5_);
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_EVENT, Event);
+#line 9152 "Commands.c"
+ } else {
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp5_);
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = NULL;
+#line 9158 "Commands.c"
+ }
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = current_media;
+#line 957 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_event (_tmp9_, _tmp5_);
+#line 953 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp5_);
+#line 953 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (event_proxy);
+#line 953 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_media);
+#line 9170 "Commands.c"
+}
+
+
+static void move_photos_command_real_move_photos_command_on_proxy_broken (MovePhotosCommandRealMovePhotosCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 960 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (MOVE_PHOTOS_COMMAND_IS_REAL_MOVE_PHOTOS_COMMAND (self));
+#line 961 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 961 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 961 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 961 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 9187 "Commands.c"
+}
+
+
+static void move_photos_command_real_move_photos_command_class_init (MovePhotosCommandRealMovePhotosCommandClass * klass) {
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ move_photos_command_real_move_photos_command_parent_class = g_type_class_peek_parent (klass);
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (MovePhotosCommandRealMovePhotosCommandPrivate));
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = move_photos_command_real_move_photos_command_real_execute;
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = move_photos_command_real_move_photos_command_real_execute_on_source;
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = move_photos_command_real_move_photos_command_real_undo_on_source;
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = move_photos_command_real_move_photos_command_finalize;
+#line 9204 "Commands.c"
+}
+
+
+static void move_photos_command_real_move_photos_command_instance_init (MovePhotosCommandRealMovePhotosCommand * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = MOVE_PHOTOS_COMMAND_REAL_MOVE_PHOTOS_COMMAND_GET_PRIVATE (self);
+#line 887 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_event_proxy = NULL;
+#line 888 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 888 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_events = _tmp0_;
+#line 9218 "Commands.c"
+}
+
+
+static void move_photos_command_real_move_photos_command_finalize (GObject* obj) {
+ MovePhotosCommandRealMovePhotosCommand * self;
+ SourceProxy* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, MOVE_PHOTOS_COMMAND_TYPE_REAL_MOVE_PHOTOS_COMMAND, MovePhotosCommandRealMovePhotosCommand);
+#line 914 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->new_event_proxy;
+#line 914 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp1_, NULL, FALSE);
+#line 914 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _move_photos_command_real_move_photos_command_on_proxy_broken_source_proxy_broken, self);
+#line 9234 "Commands.c"
+ {
+ GeeIterator* _proxy_it = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->old_events;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp6_;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp5_);
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_it = _tmp7_;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 9261 "Commands.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ SourceProxy* proxy = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ SourceProxy* _tmp12_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _proxy_it;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp9_) {
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 9276 "Commands.c"
+ }
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _proxy_it;
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp11_;
+#line 917 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = proxy;
+#line 917 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp12_ != NULL) {
+#line 9288 "Commands.c"
+ SourceProxy* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+#line 918 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = proxy;
+#line 918 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp14_, NULL, FALSE);
+#line 918 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp13_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _move_photos_command_real_move_photos_command_on_proxy_broken_source_proxy_broken, self);
+#line 9297 "Commands.c"
+ }
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 9301 "Commands.c"
+ }
+#line 916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxy_it);
+#line 9305 "Commands.c"
+ }
+#line 887 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (self->priv->new_event_proxy);
+#line 888 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->old_events);
+#line 886 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (move_photos_command_real_move_photos_command_parent_class)->finalize (obj);
+#line 9313 "Commands.c"
+}
+
+
+GType move_photos_command_real_move_photos_command_get_type (void) {
+ static volatile gsize move_photos_command_real_move_photos_command_type_id__volatile = 0;
+ if (g_once_init_enter (&move_photos_command_real_move_photos_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MovePhotosCommandRealMovePhotosCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) move_photos_command_real_move_photos_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MovePhotosCommandRealMovePhotosCommand), 0, (GInstanceInitFunc) move_photos_command_real_move_photos_command_instance_init, NULL };
+ GType move_photos_command_real_move_photos_command_type_id;
+ move_photos_command_real_move_photos_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_COMMAND, "MovePhotosCommandRealMovePhotosCommand", &g_define_type_info, 0);
+ g_once_init_leave (&move_photos_command_real_move_photos_command_type_id__volatile, move_photos_command_real_move_photos_command_type_id);
+ }
+ return move_photos_command_real_move_photos_command_type_id__volatile;
+}
+
+
+static void move_photos_command_class_init (MovePhotosCommandClass * klass) {
+#line 883 "/home/jens/Source/shotwell/src/Commands.vala"
+ move_photos_command_parent_class = g_type_class_peek_parent (klass);
+#line 883 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->prepare = move_photos_command_real_prepare;
+#line 883 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = move_photos_command_real_execute;
+#line 883 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = move_photos_command_real_undo;
+#line 883 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = move_photos_command_finalize;
+#line 9340 "Commands.c"
+}
+
+
+static void move_photos_command_instance_init (MovePhotosCommand * self) {
+}
+
+
+static void move_photos_command_finalize (GObject* obj) {
+ MovePhotosCommand * self;
+#line 883 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand);
+#line 965 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->real_command);
+#line 883 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (move_photos_command_parent_class)->finalize (obj);
+#line 9356 "Commands.c"
+}
+
+
+GType move_photos_command_get_type (void) {
+ static volatile gsize move_photos_command_type_id__volatile = 0;
+ if (g_once_init_enter (&move_photos_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MovePhotosCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) move_photos_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MovePhotosCommand), 0, (GInstanceInitFunc) move_photos_command_instance_init, NULL };
+ GType move_photos_command_type_id;
+ move_photos_command_type_id = g_type_register_static (TYPE_COMMAND, "MovePhotosCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&move_photos_command_type_id__volatile, move_photos_command_type_id);
+ }
+ return move_photos_command_type_id__volatile;
+}
+
+
+NewEventCommand* new_event_command_construct (GType object_type, GeeIterable* iter) {
+ NewEventCommand * self = NULL;
+ MediaSource* key_source = NULL;
+ MediaSource* _tmp11_ = NULL;
+ Event* new_event = NULL;
+ MediaSource* _tmp12_ = NULL;
+ Event* _tmp13_ = NULL;
+ GeeIterable* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ MovePhotosCommandRealMovePhotosCommand* _tmp17_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 989 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (NewEventCommand*) move_photos_command_construct (object_type, RESOURCES_NEW_EVENT_LABEL, "");
+#line 992 "/home/jens/Source/shotwell/src/Commands.vala"
+ key_source = NULL;
+#line 9389 "Commands.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _view_it = _tmp1_;
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 9402 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ MediaSource* current_source = NULL;
+ DataView* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _view_it;
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 9420 "Commands.c"
+ }
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _view_it;
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ view = (DataView*) _tmp5_;
+#line 994 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = view;
+#line 994 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = data_view_get_source (_tmp6_);
+#line 994 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_source = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = key_source;
+#line 996 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp8_ == NULL) {
+#line 9438 "Commands.c"
+ MediaSource* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+#line 997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = current_source;
+#line 997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (key_source);
+#line 997 "/home/jens/Source/shotwell/src/Commands.vala"
+ key_source = _tmp10_;
+#line 998 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_source);
+#line 998 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 998 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 9455 "Commands.c"
+ }
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_source);
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 9461 "Commands.c"
+ }
+#line 993 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_view_it);
+#line 9465 "Commands.c"
+ }
+#line 1003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = key_source;
+#line 1003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp11_ != NULL, "key_source != null");
+#line 1005 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = key_source;
+#line 1005 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = event_create_empty_event (_tmp12_);
+#line 1005 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_event = _tmp13_;
+#line 1007 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = iter;
+#line 1007 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _ ("Creating New Event");
+#line 1007 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _ ("Removing Event");
+#line 1007 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = move_photos_command_real_move_photos_command_new (new_event, _tmp14_, _tmp15_, _tmp16_, RESOURCES_NEW_EVENT_LABEL, "");
+#line 1007 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand)->real_command);
+#line 1007 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand)->real_command = _tmp17_;
+#line 988 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (new_event);
+#line 988 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (key_source);
+#line 988 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 9495 "Commands.c"
+}
+
+
+NewEventCommand* new_event_command_new (GeeIterable* iter) {
+#line 988 "/home/jens/Source/shotwell/src/Commands.vala"
+ return new_event_command_construct (TYPE_NEW_EVENT_COMMAND, iter);
+#line 9502 "Commands.c"
+}
+
+
+static void new_event_command_class_init (NewEventCommandClass * klass) {
+#line 987 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_event_command_parent_class = g_type_class_peek_parent (klass);
+#line 9509 "Commands.c"
+}
+
+
+static void new_event_command_instance_init (NewEventCommand * self) {
+}
+
+
+GType new_event_command_get_type (void) {
+ static volatile gsize new_event_command_type_id__volatile = 0;
+ if (g_once_init_enter (&new_event_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NewEventCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) new_event_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NewEventCommand), 0, (GInstanceInitFunc) new_event_command_instance_init, NULL };
+ GType new_event_command_type_id;
+ new_event_command_type_id = g_type_register_static (TYPE_MOVE_PHOTOS_COMMAND, "NewEventCommand", &g_define_type_info, 0);
+ g_once_init_leave (&new_event_command_type_id__volatile, new_event_command_type_id);
+ }
+ return new_event_command_type_id__volatile;
+}
+
+
+SetEventCommand* set_event_command_construct (GType object_type, GeeIterable* iter, Event* new_event) {
+ SetEventCommand * self = NULL;
+ Event* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ MovePhotosCommandRealMovePhotosCommand* _tmp4_ = NULL;
+#line 1014 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 1014 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_EVENT (new_event), NULL);
+#line 1015 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SetEventCommand*) move_photos_command_construct (object_type, RESOURCES_SET_PHOTO_EVENT_LABEL, RESOURCES_SET_PHOTO_EVENT_TOOLTIP);
+#line 1017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = new_event;
+#line 1017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = iter;
+#line 1017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Moving Photos to New Event");
+#line 1017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _ ("Setting Photos to Previous Event");
+#line 1017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = move_photos_command_real_move_photos_command_new (_tmp0_, _tmp1_, _tmp2_, _tmp3_, RESOURCES_SET_PHOTO_EVENT_LABEL, "");
+#line 1017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand)->real_command);
+#line 1017 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand)->real_command = _tmp4_;
+#line 1014 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 9558 "Commands.c"
+}
+
+
+SetEventCommand* set_event_command_new (GeeIterable* iter, Event* new_event) {
+#line 1014 "/home/jens/Source/shotwell/src/Commands.vala"
+ return set_event_command_construct (TYPE_SET_EVENT_COMMAND, iter, new_event);
+#line 9565 "Commands.c"
+}
+
+
+static void set_event_command_class_init (SetEventCommandClass * klass) {
+#line 1013 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_event_command_parent_class = g_type_class_peek_parent (klass);
+#line 9572 "Commands.c"
+}
+
+
+static void set_event_command_instance_init (SetEventCommand * self) {
+}
+
+
+GType set_event_command_get_type (void) {
+ static volatile gsize set_event_command_type_id__volatile = 0;
+ if (g_once_init_enter (&set_event_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SetEventCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_event_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetEventCommand), 0, (GInstanceInitFunc) set_event_command_instance_init, NULL };
+ GType set_event_command_type_id;
+ set_event_command_type_id = g_type_register_static (TYPE_MOVE_PHOTOS_COMMAND, "SetEventCommand", &g_define_type_info, 0);
+ g_once_init_leave (&set_event_command_type_id__volatile, set_event_command_type_id);
+ }
+ return set_event_command_type_id__volatile;
+}
+
+
+MergeEventsCommand* merge_events_command_construct (GType object_type, GeeIterable* iter) {
+ MergeEventsCommand * self = NULL;
+ Event* master_event = NULL;
+ gint named_evt_src_count = 0;
+ gint unnamed_evt_src_count = 0;
+ GeeArrayList* media_thumbs = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Event* _tmp48_ = NULL;
+ GeeArrayList* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ Event* _tmp52_ = NULL;
+ GeeArrayList* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ MovePhotosCommandRealMovePhotosCommand* _tmp56_ = NULL;
+#line 1024 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 1025 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (MergeEventsCommand*) move_photos_command_construct (object_type, RESOURCES_MERGE_LABEL, "");
+#line 1031 "/home/jens/Source/shotwell/src/Commands.vala"
+ master_event = NULL;
+#line 1032 "/home/jens/Source/shotwell/src/Commands.vala"
+ named_evt_src_count = 0;
+#line 1033 "/home/jens/Source/shotwell/src/Commands.vala"
+ unnamed_evt_src_count = 0;
+#line 1034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_array_list_new (TYPE_THUMBNAIL_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1034 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_thumbs = _tmp0_;
+#line 9622 "Commands.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = iter;
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _view_it = _tmp2_;
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 9635 "Commands.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Event* event = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _view_it;
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp4_) {
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 9653 "Commands.c"
+ }
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _view_it;
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ view = (DataView*) _tmp6_;
+#line 1037 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = view;
+#line 1037 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 1037 "/home/jens/Source/shotwell/src/Commands.vala"
+ event = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_EVENT, Event);
+#line 1040 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = master_event;
+#line 1040 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp9_ == NULL) {
+#line 9671 "Commands.c"
+ Event* _tmp10_ = NULL;
+ Event* _tmp11_ = NULL;
+ Event* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ Event* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 1043 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = event;
+#line 1043 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 1043 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (master_event);
+#line 1043 "/home/jens/Source/shotwell/src/Commands.vala"
+ master_event = _tmp11_;
+#line 1044 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = master_event;
+#line 1044 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_EVENT_SOURCE, EventSource));
+#line 1044 "/home/jens/Source/shotwell/src/Commands.vala"
+ unnamed_evt_src_count = _tmp13_;
+#line 1045 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = event;
+#line 1045 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = event_has_name (_tmp14_);
+#line 1045 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp15_) {
+#line 9698 "Commands.c"
+ Event* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+#line 1046 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = master_event;
+#line 1046 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_EVENT_SOURCE, EventSource));
+#line 1046 "/home/jens/Source/shotwell/src/Commands.vala"
+ named_evt_src_count = _tmp17_;
+#line 9707 "Commands.c"
+ }
+ } else {
+ Event* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 1050 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = event;
+#line 1050 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = event_has_name (_tmp18_);
+#line 1050 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp19_) {
+#line 9718 "Commands.c"
+ Event* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+#line 1051 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = event;
+#line 1051 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_EVENT_SOURCE, EventSource));
+#line 1051 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = named_evt_src_count;
+#line 1051 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp21_ > _tmp22_) {
+#line 9730 "Commands.c"
+ Event* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ Event* _tmp25_ = NULL;
+ Event* _tmp26_ = NULL;
+#line 1052 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = event;
+#line 1052 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_EVENT_SOURCE, EventSource));
+#line 1052 "/home/jens/Source/shotwell/src/Commands.vala"
+ named_evt_src_count = _tmp24_;
+#line 1053 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = event;
+#line 1053 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _g_object_ref0 (_tmp25_);
+#line 1053 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (master_event);
+#line 1053 "/home/jens/Source/shotwell/src/Commands.vala"
+ master_event = _tmp26_;
+#line 9749 "Commands.c"
+ }
+ } else {
+ gint _tmp27_ = 0;
+#line 1055 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = named_evt_src_count;
+#line 1055 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp27_ == 0) {
+#line 9757 "Commands.c"
+ Event* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+#line 1059 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = event;
+#line 1059 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_EVENT_SOURCE, EventSource));
+#line 1059 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = unnamed_evt_src_count;
+#line 1059 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp29_ > _tmp30_) {
+#line 9769 "Commands.c"
+ Event* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ Event* _tmp33_ = NULL;
+ Event* _tmp34_ = NULL;
+#line 1060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = event;
+#line 1060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_EVENT_SOURCE, EventSource));
+#line 1060 "/home/jens/Source/shotwell/src/Commands.vala"
+ unnamed_evt_src_count = _tmp32_;
+#line 1061 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = event;
+#line 1061 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = _g_object_ref0 (_tmp33_);
+#line 1061 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (master_event);
+#line 1061 "/home/jens/Source/shotwell/src/Commands.vala"
+ master_event = _tmp34_;
+#line 9788 "Commands.c"
+ }
+ }
+ }
+ }
+ {
+ GeeIterator* _media_source_it = NULL;
+ Event* _tmp35_ = NULL;
+ GeeCollection* _tmp36_ = NULL;
+ GeeCollection* _tmp37_ = NULL;
+ GeeIterator* _tmp38_ = NULL;
+ GeeIterator* _tmp39_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = event;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = event_source_get_media (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_EVENT_SOURCE, EventSource));
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = _tmp36_;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = _tmp38_;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp37_);
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _media_source_it = _tmp39_;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 9816 "Commands.c"
+ GeeIterator* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+ MediaSource* media_source = NULL;
+ GeeIterator* _tmp42_ = NULL;
+ gpointer _tmp43_ = NULL;
+ GeeArrayList* _tmp44_ = NULL;
+ MediaSource* _tmp45_ = NULL;
+ ThumbnailView* _tmp46_ = NULL;
+ ThumbnailView* _tmp47_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = _media_source_it;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = gee_iterator_next (_tmp40_);
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp41_) {
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 9834 "Commands.c"
+ }
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = _media_source_it;
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = gee_iterator_get (_tmp42_);
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source = (MediaSource*) _tmp43_;
+#line 1069 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = media_thumbs;
+#line 1069 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = media_source;
+#line 1069 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 1069 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = _tmp46_;
+#line 1069 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp47_);
+#line 1069 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp47_);
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (media_source);
+#line 9856 "Commands.c"
+ }
+#line 1068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_media_source_it);
+#line 9860 "Commands.c"
+ }
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (event);
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 9866 "Commands.c"
+ }
+#line 1036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_view_it);
+#line 9870 "Commands.c"
+ }
+#line 1072 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = master_event;
+#line 1072 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp48_ != NULL, "master_event != null");
+#line 1073 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = media_thumbs;
+#line 1073 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1073 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = _tmp50_;
+#line 1073 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp51_ > 0, "media_thumbs.size > 0");
+#line 1075 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = master_event;
+#line 1075 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = media_thumbs;
+#line 1075 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp54_ = _ ("Merging");
+#line 1075 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp55_ = _ ("Unmerging");
+#line 1075 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp56_ = move_photos_command_real_move_photos_command_new (_tmp52_, G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_ITERABLE, GeeIterable), _tmp54_, _tmp55_, RESOURCES_MERGE_LABEL, "");
+#line 1075 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand)->real_command);
+#line 1075 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand)->real_command = _tmp56_;
+#line 1024 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (media_thumbs);
+#line 1024 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (master_event);
+#line 1024 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 9904 "Commands.c"
+}
+
+
+MergeEventsCommand* merge_events_command_new (GeeIterable* iter) {
+#line 1024 "/home/jens/Source/shotwell/src/Commands.vala"
+ return merge_events_command_construct (TYPE_MERGE_EVENTS_COMMAND, iter);
+#line 9911 "Commands.c"
+}
+
+
+static void merge_events_command_class_init (MergeEventsCommandClass * klass) {
+#line 1023 "/home/jens/Source/shotwell/src/Commands.vala"
+ merge_events_command_parent_class = g_type_class_peek_parent (klass);
+#line 9918 "Commands.c"
+}
+
+
+static void merge_events_command_instance_init (MergeEventsCommand * self) {
+}
+
+
+GType merge_events_command_get_type (void) {
+ static volatile gsize merge_events_command_type_id__volatile = 0;
+ if (g_once_init_enter (&merge_events_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MergeEventsCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) merge_events_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MergeEventsCommand), 0, (GInstanceInitFunc) merge_events_command_instance_init, NULL };
+ GType merge_events_command_type_id;
+ merge_events_command_type_id = g_type_register_static (TYPE_MOVE_PHOTOS_COMMAND, "MergeEventsCommand", &g_define_type_info, 0);
+ g_once_init_leave (&merge_events_command_type_id__volatile, merge_events_command_type_id);
+ }
+ return merge_events_command_type_id__volatile;
+}
+
+
+static void _duplicate_multiple_photos_command_on_photo_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 1092 "/home/jens/Source/shotwell/src/Commands.vala"
+ duplicate_multiple_photos_command_on_photo_destroyed ((DuplicateMultiplePhotosCommand*) self, source);
+#line 9941 "Commands.c"
+}
+
+
+DuplicateMultiplePhotosCommand* duplicate_multiple_photos_command_construct (GType object_type, GeeIterable* iter) {
+ DuplicateMultiplePhotosCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+#line 1084 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 1085 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 1085 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _ ("Duplicating photos");
+#line 1085 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Removing duplicated photos");
+#line 1085 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (DuplicateMultiplePhotosCommand*) multiple_data_source_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, RESOURCES_DUPLICATE_PHOTO_LABEL, RESOURCES_DUPLICATE_PHOTO_TOOLTIP);
+#line 1088 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = library_photo_global;
+#line 1088 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _duplicate_multiple_photos_command_on_photo_destroyed_source_collection_item_destroyed, self, 0);
+#line 1084 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 9967 "Commands.c"
+}
+
+
+DuplicateMultiplePhotosCommand* duplicate_multiple_photos_command_new (GeeIterable* iter) {
+#line 1084 "/home/jens/Source/shotwell/src/Commands.vala"
+ return duplicate_multiple_photos_command_construct (TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, iter);
+#line 9974 "Commands.c"
+}
+
+
+static void duplicate_multiple_photos_command_on_photo_destroyed (DuplicateMultiplePhotosCommand* self, DataSource* source) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 1095 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DUPLICATE_MULTIPLE_PHOTOS_COMMAND (self));
+#line 1095 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->dupes;
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = source;
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_collection_contains (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1097 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_) {
+#line 10008 "Commands.c"
+ CommandManager* _tmp7_ = NULL;
+ CommandManager* _tmp8_ = NULL;
+#line 1098 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 1098 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 1098 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp8_);
+#line 1098 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp8_);
+#line 10019 "Commands.c"
+ }
+}
+
+
+static void duplicate_multiple_photos_command_real_execute (Command* base) {
+ DuplicateMultiplePhotosCommand * self;
+ GeeHashMap* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 1101 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommand);
+#line 1102 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->dupes;
+#line 1102 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
+#line 1103 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->failed = 0;
+#line 1105 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (duplicate_multiple_photos_command_parent_class)->execute (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 1107 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->failed;
+#line 1107 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_ > 0) {
+#line 10042 "Commands.c"
+ gchar* error_string = NULL;
+ gint _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 1108 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->failed;
+#line 1108 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = ngettext ("Unable to duplicate one photo due to a file error", "Unable to duplicate %d photos due to file errors", (gulong) _tmp2_);
+#line 1108 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->failed;
+#line 1108 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = g_strdup_printf (_tmp3_, _tmp4_);
+#line 1108 "/home/jens/Source/shotwell/src/Commands.vala"
+ error_string = _tmp5_;
+#line 1110 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = error_string;
+#line 1110 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_error_message (_tmp6_, NULL);
+#line 1107 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (error_string);
+#line 10065 "Commands.c"
+ }
+}
+
+
+static void duplicate_multiple_photos_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ DuplicateMultiplePhotosCommand * self;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1114 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommand);
+#line 1114 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1115 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1115 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 1115 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp1_;
+#line 10086 "Commands.c"
+ {
+ LibraryPhoto* dupe = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+#line 1118 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = library_photo_duplicate (photo, &_inner_error_);
+#line 1118 "/home/jens/Source/shotwell/src/Commands.vala"
+ dupe = _tmp2_;
+#line 1118 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10097 "Commands.c"
+ goto __catch446_g_error;
+ }
+#line 1119 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->dupes;
+#line 1119 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), photo, dupe);
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (dupe);
+#line 10106 "Commands.c"
+ }
+ goto __finally446;
+ __catch446_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ err = _inner_error_;
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ _inner_error_ = NULL;
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (photo, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp6_;
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = err;
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_->message;
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("Commands.vala:1121: Unable to duplicate file %s: %s", _tmp7_, _tmp9_);
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp7_);
+#line 1121 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1122 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->failed;
+#line 1122 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->failed = _tmp10_ + 1;
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_error_free0 (err);
+#line 10147 "Commands.c"
+ }
+ __finally446:
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_clear_error (&_inner_error_);
+#line 1117 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 10160 "Commands.c"
+ }
+#line 1114 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 10164 "Commands.c"
+}
+
+
+static void duplicate_multiple_photos_command_real_undo (Command* base) {
+ DuplicateMultiplePhotosCommand * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GeeHashMap* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+#line 1126 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommand);
+#line 1128 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = library_photo_global;
+#line 1128 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 1128 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _duplicate_multiple_photos_command_on_photo_destroyed_source_collection_item_destroyed, self);
+#line 1130 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (duplicate_multiple_photos_command_parent_class)->undo (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 1133 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->dupes;
+#line 1133 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
+#line 1134 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->failed = 0;
+#line 1137 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = library_photo_global;
+#line 1137 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _duplicate_multiple_photos_command_on_photo_destroyed_source_collection_item_destroyed, self, 0);
+#line 10194 "Commands.c"
+}
+
+
+static void duplicate_multiple_photos_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ DuplicateMultiplePhotosCommand * self;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ Marker* marker = NULL;
+ LibraryPhotoSourceCollection* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ gpointer _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ Marker* _tmp6_ = NULL;
+ Marker* _tmp7_ = NULL;
+ LibraryPhotoSourceCollection* _tmp8_ = NULL;
+#line 1140 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommand);
+#line 1140 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1141 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1141 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 1141 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp1_;
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = library_photo_global;
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->dupes;
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), photo);
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = (LibraryPhoto*) _tmp4_;
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp6_;
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1143 "/home/jens/Source/shotwell/src/Commands.vala"
+ marker = _tmp7_;
+#line 1144 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = library_photo_global;
+#line 1144 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_SOURCE_COLLECTION, SourceCollection), marker, TRUE, NULL, NULL, NULL);
+#line 1140 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (marker);
+#line 1140 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 10245 "Commands.c"
+}
+
+
+static void duplicate_multiple_photos_command_class_init (DuplicateMultiplePhotosCommandClass * klass) {
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ duplicate_multiple_photos_command_parent_class = g_type_class_peek_parent (klass);
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (DuplicateMultiplePhotosCommandPrivate));
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = duplicate_multiple_photos_command_real_execute;
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = duplicate_multiple_photos_command_real_execute_on_source;
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = duplicate_multiple_photos_command_real_undo;
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = duplicate_multiple_photos_command_real_undo_on_source;
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = duplicate_multiple_photos_command_finalize;
+#line 10264 "Commands.c"
+}
+
+
+static void duplicate_multiple_photos_command_instance_init (DuplicateMultiplePhotosCommand * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = DUPLICATE_MULTIPLE_PHOTOS_COMMAND_GET_PRIVATE (self);
+#line 1081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1081 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->dupes = _tmp0_;
+#line 1082 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->failed = 0;
+#line 10278 "Commands.c"
+}
+
+
+static void duplicate_multiple_photos_command_finalize (GObject* obj) {
+ DuplicateMultiplePhotosCommand * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DUPLICATE_MULTIPLE_PHOTOS_COMMAND, DuplicateMultiplePhotosCommand);
+#line 1092 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = library_photo_global;
+#line 1092 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 1092 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _duplicate_multiple_photos_command_on_photo_destroyed_source_collection_item_destroyed, self);
+#line 1081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->dupes);
+#line 1080 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (duplicate_multiple_photos_command_parent_class)->finalize (obj);
+#line 10298 "Commands.c"
+}
+
+
+GType duplicate_multiple_photos_command_get_type (void) {
+ static volatile gsize duplicate_multiple_photos_command_type_id__volatile = 0;
+ if (g_once_init_enter (&duplicate_multiple_photos_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DuplicateMultiplePhotosCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) duplicate_multiple_photos_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DuplicateMultiplePhotosCommand), 0, (GInstanceInitFunc) duplicate_multiple_photos_command_instance_init, NULL };
+ GType duplicate_multiple_photos_command_type_id;
+ duplicate_multiple_photos_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_COMMAND, "DuplicateMultiplePhotosCommand", &g_define_type_info, 0);
+ g_once_init_leave (&duplicate_multiple_photos_command_type_id__volatile, duplicate_multiple_photos_command_type_id);
+ }
+ return duplicate_multiple_photos_command_type_id__volatile;
+}
+
+
+SetRatingSingleCommand* set_rating_single_command_construct (GType object_type, DataSource* source, Rating rating) {
+ SetRatingSingleCommand * self = NULL;
+ DataSource* _tmp0_ = NULL;
+ Rating _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ Rating _tmp3_ = 0;
+ DataSource* _tmp4_ = NULL;
+ Rating _tmp5_ = 0;
+#line 1154 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 1155 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1155 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = rating;
+#line 1155 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = resources_rating_label (_tmp1_);
+#line 1155 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SetRatingSingleCommand*) single_data_source_command_construct (object_type, _tmp0_, _tmp2_, "");
+#line 1156 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->set_direct = TRUE;
+#line 1157 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = rating;
+#line 1157 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_rating = _tmp3_;
+#line 1159 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = source;
+#line 1159 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_MEDIA_SOURCE, MediaSource));
+#line 1159 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->last_rating = _tmp5_;
+#line 1154 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 10346 "Commands.c"
+}
+
+
+SetRatingSingleCommand* set_rating_single_command_new (DataSource* source, Rating rating) {
+#line 1154 "/home/jens/Source/shotwell/src/Commands.vala"
+ return set_rating_single_command_construct (TYPE_SET_RATING_SINGLE_COMMAND, source, rating);
+#line 10353 "Commands.c"
+}
+
+
+SetRatingSingleCommand* set_rating_single_command_construct_inc_dec (GType object_type, DataSource* source, gboolean is_incrementing) {
+ SetRatingSingleCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ DataSource* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* _tmp4_ = NULL;
+ Rating _tmp5_ = 0;
+#line 1162 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 1163 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = is_incrementing;
+#line 1163 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 1163 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = RESOURCES_INCREASE_RATING_LABEL;
+#line 10373 "Commands.c"
+ } else {
+#line 1164 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = RESOURCES_DECREASE_RATING_LABEL;
+#line 10377 "Commands.c"
+ }
+#line 1163 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = source;
+#line 1163 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SetRatingSingleCommand*) single_data_source_command_construct (object_type, _tmp2_, _tmp0_, "");
+#line 1165 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->set_direct = FALSE;
+#line 1166 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = is_incrementing;
+#line 1166 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->incrementing = _tmp3_;
+#line 1168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = source;
+#line 1168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1168 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->last_rating = _tmp5_;
+#line 1162 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 10397 "Commands.c"
+}
+
+
+SetRatingSingleCommand* set_rating_single_command_new_inc_dec (DataSource* source, gboolean is_incrementing) {
+#line 1162 "/home/jens/Source/shotwell/src/Commands.vala"
+ return set_rating_single_command_construct_inc_dec (TYPE_SET_RATING_SINGLE_COMMAND, source, is_incrementing);
+#line 10404 "Commands.c"
+}
+
+
+static void set_rating_single_command_real_execute (Command* base) {
+ SetRatingSingleCommand * self;
+ gboolean _tmp0_ = FALSE;
+#line 1171 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommand);
+#line 1172 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->set_direct;
+#line 1172 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_) {
+#line 10417 "Commands.c"
+ DataSource* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+#line 1173 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 1173 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->new_rating;
+#line 1173 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource), _tmp2_);
+#line 10426 "Commands.c"
+ } else {
+ gboolean _tmp3_ = FALSE;
+#line 1175 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->incrementing;
+#line 1175 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_) {
+#line 10433 "Commands.c"
+ DataSource* _tmp4_ = NULL;
+#line 1176 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 1176 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_increase_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 10439 "Commands.c"
+ } else {
+ DataSource* _tmp5_ = NULL;
+#line 1178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 1178 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_decrease_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 10446 "Commands.c"
+ }
+ }
+}
+
+
+static void set_rating_single_command_real_undo (Command* base) {
+ SetRatingSingleCommand * self;
+ DataSource* _tmp0_ = NULL;
+ Rating _tmp1_ = 0;
+#line 1182 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommand);
+#line 1183 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand)->source;
+#line 1183 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->last_rating;
+#line 1183 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), _tmp1_);
+#line 10464 "Commands.c"
+}
+
+
+static void set_rating_single_command_class_init (SetRatingSingleCommandClass * klass) {
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_rating_single_command_parent_class = g_type_class_peek_parent (klass);
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (SetRatingSingleCommandPrivate));
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = set_rating_single_command_real_execute;
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = set_rating_single_command_real_undo;
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = set_rating_single_command_finalize;
+#line 10479 "Commands.c"
+}
+
+
+static void set_rating_single_command_instance_init (SetRatingSingleCommand * self) {
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = SET_RATING_SINGLE_COMMAND_GET_PRIVATE (self);
+#line 10486 "Commands.c"
+}
+
+
+static void set_rating_single_command_finalize (GObject* obj) {
+ SetRatingSingleCommand * self;
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommand);
+#line 1148 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (set_rating_single_command_parent_class)->finalize (obj);
+#line 10496 "Commands.c"
+}
+
+
+GType set_rating_single_command_get_type (void) {
+ static volatile gsize set_rating_single_command_type_id__volatile = 0;
+ if (g_once_init_enter (&set_rating_single_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SetRatingSingleCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_rating_single_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetRatingSingleCommand), 0, (GInstanceInitFunc) set_rating_single_command_instance_init, NULL };
+ GType set_rating_single_command_type_id;
+ set_rating_single_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "SetRatingSingleCommand", &g_define_type_info, 0);
+ g_once_init_leave (&set_rating_single_command_type_id__volatile, set_rating_single_command_type_id);
+ }
+ return set_rating_single_command_type_id__volatile;
+}
+
+
+SetRatingCommand* set_rating_command_construct (GType object_type, GeeIterable* iter, Rating rating) {
+ SetRatingCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ Rating _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ Rating _tmp5_ = 0;
+ const gchar* _tmp6_ = NULL;
+ Rating _tmp7_ = 0;
+ GeeIterable* _tmp8_ = NULL;
+#line 1194 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = rating;
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = resources_rating_progress (_tmp1_);
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _ ("Restoring previous rating");
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = rating;
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = resources_rating_label (_tmp5_);
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SetRatingCommand*) multiple_data_source_command_construct (object_type, _tmp0_, _tmp3_, _tmp4_, _tmp6_, "");
+#line 1195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp3_);
+#line 1197 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->set_direct = TRUE;
+#line 1198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = rating;
+#line 1198 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_rating = _tmp7_;
+#line 1200 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = iter;
+#line 1200 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_rating_command_save_source_states (self, _tmp8_);
+#line 1194 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 10555 "Commands.c"
+}
+
+
+SetRatingCommand* set_rating_command_new (GeeIterable* iter, Rating rating) {
+#line 1194 "/home/jens/Source/shotwell/src/Commands.vala"
+ return set_rating_command_construct (TYPE_SET_RATING_COMMAND, iter, rating);
+#line 10562 "Commands.c"
+}
+
+
+SetRatingCommand* set_rating_command_construct_inc_dec (GType object_type, GeeIterable* iter, gboolean is_incrementing) {
+ SetRatingCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GeeIterable* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GeeIterable* _tmp12_ = NULL;
+#line 1203 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 1205 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = is_incrementing;
+#line 1205 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 10583 "Commands.c"
+ const gchar* _tmp2_ = NULL;
+#line 1205 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Increasing ratings");
+#line 1205 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp2_;
+#line 10589 "Commands.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 1205 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _ ("Decreasing ratings");
+#line 1205 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp3_;
+#line 10596 "Commands.c"
+ }
+#line 1206 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = is_incrementing;
+#line 1206 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp5_) {
+#line 10602 "Commands.c"
+ const gchar* _tmp6_ = NULL;
+#line 1206 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _ ("Decreasing ratings");
+#line 1206 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp6_;
+#line 10608 "Commands.c"
+ } else {
+ const gchar* _tmp7_ = NULL;
+#line 1206 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _ ("Increasing ratings");
+#line 1206 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp7_;
+#line 10615 "Commands.c"
+ }
+#line 1207 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = is_incrementing;
+#line 1207 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp9_) {
+#line 1207 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = RESOURCES_INCREASE_RATING_LABEL;
+#line 10623 "Commands.c"
+ } else {
+#line 1207 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = RESOURCES_DECREASE_RATING_LABEL;
+#line 10627 "Commands.c"
+ }
+#line 1204 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = iter;
+#line 1204 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SetRatingCommand*) multiple_data_source_command_construct (object_type, _tmp10_, _tmp0_, _tmp4_, _tmp8_, "");
+#line 1209 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->set_direct = FALSE;
+#line 1210 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = is_incrementing;
+#line 1210 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->incrementing = _tmp11_;
+#line 1212 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = iter;
+#line 1212 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_rating_command_save_source_states (self, _tmp12_);
+#line 1203 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 10645 "Commands.c"
+}
+
+
+SetRatingCommand* set_rating_command_new_inc_dec (GeeIterable* iter, gboolean is_incrementing) {
+#line 1203 "/home/jens/Source/shotwell/src/Commands.vala"
+ return set_rating_command_construct_inc_dec (TYPE_SET_RATING_COMMAND, iter, is_incrementing);
+#line 10652 "Commands.c"
+}
+
+
+static void set_rating_command_save_source_states (SetRatingCommand* self, GeeIterable* iter) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 1215 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SET_RATING_COMMAND (self));
+#line 1215 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (iter));
+#line 1216 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_RATING, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1216 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->last_rating_map);
+#line 1216 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->last_rating_map = _tmp0_;
+#line 10668 "Commands.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = iter;
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _view_it = _tmp2_;
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 10681 "Commands.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataSource* source = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ Rating _tmp12_ = 0;
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _view_it;
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp4_) {
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 10702 "Commands.c"
+ }
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _view_it;
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ view = (DataView*) _tmp6_;
+#line 1219 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = view;
+#line 1219 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 1219 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = _tmp8_;
+#line 1220 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->last_rating_map;
+#line 1220 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = source;
+#line 1220 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = source;
+#line 1220 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1220 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_, (gpointer) ((gintptr) _tmp12_));
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 10730 "Commands.c"
+ }
+#line 1218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_view_it);
+#line 10734 "Commands.c"
+ }
+}
+
+
+static void set_rating_command_real_execute (Command* base) {
+ SetRatingCommand * self;
+#line 1224 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RATING_COMMAND, SetRatingCommand);
+#line 1225 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->action_count = 0;
+#line 1226 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (set_rating_command_parent_class)->execute (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 10747 "Commands.c"
+}
+
+
+static void set_rating_command_real_undo (Command* base) {
+ SetRatingCommand * self;
+#line 1229 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RATING_COMMAND, SetRatingCommand);
+#line 1230 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->action_count = 0;
+#line 1231 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (set_rating_command_parent_class)->undo (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 10759 "Commands.c"
+}
+
+
+static void set_rating_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ SetRatingCommand * self;
+ gboolean _tmp0_ = FALSE;
+#line 1234 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RATING_COMMAND, SetRatingCommand);
+#line 1234 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1235 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->set_direct;
+#line 1235 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_) {
+#line 10774 "Commands.c"
+ DataSource* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+#line 1236 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source;
+#line 1236 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->new_rating;
+#line 1236 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource), _tmp2_);
+#line 10783 "Commands.c"
+ } else {
+ gboolean _tmp3_ = FALSE;
+#line 1238 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->incrementing;
+#line 1238 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_) {
+#line 10790 "Commands.c"
+ DataSource* _tmp4_ = NULL;
+#line 1239 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = source;
+#line 1239 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_increase_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 10796 "Commands.c"
+ } else {
+ DataSource* _tmp5_ = NULL;
+#line 1241 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = source;
+#line 1241 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_decrease_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 10803 "Commands.c"
+ }
+ }
+}
+
+
+static void set_rating_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ SetRatingCommand * self;
+ DataSource* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ gpointer _tmp3_ = NULL;
+#line 1245 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RATING_COMMAND, SetRatingCommand);
+#line 1245 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1246 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1246 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->last_rating_map;
+#line 1246 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = source;
+#line 1246 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_);
+#line 1246 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), (Rating) ((gintptr) _tmp3_));
+#line 10829 "Commands.c"
+}
+
+
+static void set_rating_command_class_init (SetRatingCommandClass * klass) {
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_rating_command_parent_class = g_type_class_peek_parent (klass);
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (SetRatingCommandPrivate));
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = set_rating_command_real_execute;
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = set_rating_command_real_undo;
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = set_rating_command_real_execute_on_source;
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = set_rating_command_real_undo_on_source;
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = set_rating_command_finalize;
+#line 10848 "Commands.c"
+}
+
+
+static void set_rating_command_instance_init (SetRatingCommand * self) {
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = SET_RATING_COMMAND_GET_PRIVATE (self);
+#line 1192 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->action_count = 0;
+#line 10857 "Commands.c"
+}
+
+
+static void set_rating_command_finalize (GObject* obj) {
+ SetRatingCommand * self;
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SET_RATING_COMMAND, SetRatingCommand);
+#line 1188 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->last_rating_map);
+#line 1187 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (set_rating_command_parent_class)->finalize (obj);
+#line 10869 "Commands.c"
+}
+
+
+GType set_rating_command_get_type (void) {
+ static volatile gsize set_rating_command_type_id__volatile = 0;
+ if (g_once_init_enter (&set_rating_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SetRatingCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_rating_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetRatingCommand), 0, (GInstanceInitFunc) set_rating_command_instance_init, NULL };
+ GType set_rating_command_type_id;
+ set_rating_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_COMMAND, "SetRatingCommand", &g_define_type_info, 0);
+ g_once_init_leave (&set_rating_command_type_id__volatile, set_rating_command_type_id);
+ }
+ return set_rating_command_type_id__volatile;
+}
+
+
+SetRawDeveloperCommand* set_raw_developer_command_construct (GType object_type, GeeIterable* iter, RawDeveloper developer) {
+ SetRawDeveloperCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ RawDeveloper _tmp4_ = 0;
+ GeeIterable* _tmp5_ = NULL;
+#line 1255 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 1256 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 1256 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _ ("Setting RAW developer");
+#line 1256 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Restoring previous RAW developer");
+#line 1256 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _ ("Set Developer");
+#line 1256 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (SetRawDeveloperCommand*) multiple_data_source_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp3_, "");
+#line 1258 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = developer;
+#line 1258 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_developer = _tmp4_;
+#line 1259 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = iter;
+#line 1259 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_raw_developer_command_save_source_states (self, _tmp5_);
+#line 1255 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 10915 "Commands.c"
+}
+
+
+SetRawDeveloperCommand* set_raw_developer_command_new (GeeIterable* iter, RawDeveloper developer) {
+#line 1255 "/home/jens/Source/shotwell/src/Commands.vala"
+ return set_raw_developer_command_construct (TYPE_SET_RAW_DEVELOPER_COMMAND, iter, developer);
+#line 10922 "Commands.c"
+}
+
+
+static void set_raw_developer_command_save_source_states (SetRawDeveloperCommand* self, GeeIterable* iter) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+#line 1262 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_SET_RAW_DEVELOPER_COMMAND (self));
+#line 1262 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (iter));
+#line 1263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_RAW_DEVELOPER, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->last_developer_map);
+#line 1263 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->last_developer_map = _tmp0_;
+#line 1264 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_hash_map_new (TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_PHOTO_TRANSFORMATION_STATE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1264 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->last_transformation_map);
+#line 1264 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->last_transformation_map = _tmp1_;
+#line 10945 "Commands.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = iter;
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterable_iterator (_tmp2_);
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _view_it = _tmp3_;
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 10958 "Commands.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Photo* photo = NULL;
+ DataView* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _view_it;
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp5_) {
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 10978 "Commands.c"
+ }
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _view_it;
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ view = (DataView*) _tmp7_;
+#line 1267 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = view;
+#line 1267 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = data_view_get_source (_tmp8_);
+#line 1267 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_PHOTO) ? ((Photo*) _tmp9_) : NULL;
+#line 1267 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp10_ == NULL) {
+#line 1267 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp9_);
+#line 10996 "Commands.c"
+ }
+#line 1267 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp10_;
+#line 1268 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = photo;
+#line 1268 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = set_raw_developer_command_is_raw_photo (self, _tmp11_);
+#line 1268 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp12_) {
+#line 11006 "Commands.c"
+ GeeHashMap* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ RawDeveloper _tmp16_ = 0;
+ GeeHashMap* _tmp17_ = NULL;
+ Photo* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ PhotoTransformationState* _tmp20_ = NULL;
+ PhotoTransformationState* _tmp21_ = NULL;
+#line 1269 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = self->priv->last_developer_map;
+#line 1269 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = photo;
+#line 1269 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = photo;
+#line 1269 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = photo_get_raw_developer (_tmp15_);
+#line 1269 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp14_, (gpointer) ((gintptr) _tmp16_));
+#line 1270 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = self->priv->last_transformation_map;
+#line 1270 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = photo;
+#line 1270 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = photo;
+#line 1270 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = photo_save_transformation_state (_tmp19_);
+#line 1270 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = _tmp20_;
+#line 1270 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp18_, _tmp21_);
+#line 1270 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp21_);
+#line 11040 "Commands.c"
+ }
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 11046 "Commands.c"
+ }
+#line 1266 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_view_it);
+#line 11050 "Commands.c"
+ }
+}
+
+
+static void set_raw_developer_command_real_execute (Command* base) {
+ SetRawDeveloperCommand * self;
+#line 1275 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand);
+#line 1276 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (set_raw_developer_command_parent_class)->execute (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 11061 "Commands.c"
+}
+
+
+static void set_raw_developer_command_real_undo (Command* base) {
+ SetRawDeveloperCommand * self;
+#line 1279 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand);
+#line 1280 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (set_raw_developer_command_parent_class)->undo (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 11071 "Commands.c"
+}
+
+
+static void set_raw_developer_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ SetRawDeveloperCommand * self;
+ Photo* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1283 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand);
+#line 1283 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1284 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1284 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO) ? ((Photo*) _tmp0_) : NULL);
+#line 1284 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp1_;
+#line 1285 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = photo;
+#line 1285 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = set_raw_developer_command_is_raw_photo (self, _tmp2_);
+#line 1285 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_) {
+#line 11098 "Commands.c"
+ gboolean _tmp4_ = FALSE;
+ RawDeveloper _tmp5_ = 0;
+#line 1286 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->new_developer;
+#line 1286 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp5_ == RAW_DEVELOPER_CAMERA) {
+#line 11105 "Commands.c"
+ Photo* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 1286 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = photo;
+#line 1286 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = photo_is_raw_developer_available (_tmp6_, RAW_DEVELOPER_CAMERA);
+#line 1286 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = !_tmp7_;
+#line 11114 "Commands.c"
+ } else {
+#line 1286 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = FALSE;
+#line 11118 "Commands.c"
+ }
+#line 1286 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_) {
+#line 11122 "Commands.c"
+ Photo* _tmp8_ = NULL;
+#line 1287 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = photo;
+#line 1287 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_raw_developer (_tmp8_, RAW_DEVELOPER_EMBEDDED);
+#line 11128 "Commands.c"
+ } else {
+ Photo* _tmp9_ = NULL;
+ RawDeveloper _tmp10_ = 0;
+#line 1289 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = photo;
+#line 1289 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->new_developer;
+#line 1289 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_raw_developer (_tmp9_, _tmp10_);
+#line 11138 "Commands.c"
+ }
+ }
+#line 1283 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 11143 "Commands.c"
+}
+
+
+static void set_raw_developer_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ SetRawDeveloperCommand * self;
+ Photo* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1293 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand);
+#line 1293 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1294 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1294 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO) ? ((Photo*) _tmp0_) : NULL);
+#line 1294 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp1_;
+#line 1295 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = photo;
+#line 1295 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = set_raw_developer_command_is_raw_photo (self, _tmp2_);
+#line 1295 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_) {
+#line 11170 "Commands.c"
+ Photo* _tmp4_ = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ PhotoTransformationState* _tmp12_ = NULL;
+#line 1296 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = photo;
+#line 1296 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->last_developer_map;
+#line 1296 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = photo;
+#line 1296 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_);
+#line 1296 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_raw_developer (_tmp4_, (RawDeveloper) ((gintptr) _tmp7_));
+#line 1297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = photo;
+#line 1297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->last_transformation_map;
+#line 1297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = photo;
+#line 1297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_);
+#line 1297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = (PhotoTransformationState*) _tmp11_;
+#line 1297 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_load_transformation_state (_tmp8_, _tmp12_);
+#line 1297 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp12_);
+#line 11204 "Commands.c"
+ }
+#line 1293 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 11208 "Commands.c"
+}
+
+
+static gboolean set_raw_developer_command_is_raw_photo (SetRawDeveloperCommand* self, Photo* photo) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ Photo* _tmp1_ = NULL;
+#line 1301 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_SET_RAW_DEVELOPER_COMMAND (self), FALSE);
+#line 1301 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail ((photo == NULL) || IS_PHOTO (photo), FALSE);
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = photo;
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_ != NULL) {
+#line 11224 "Commands.c"
+ Photo* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = photo;
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = photo_get_master_file_format (_tmp2_);
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp3_ == PHOTO_FILE_FORMAT_RAW;
+#line 11233 "Commands.c"
+ } else {
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = FALSE;
+#line 11237 "Commands.c"
+ }
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = _tmp0_;
+#line 1302 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 11243 "Commands.c"
+}
+
+
+static void set_raw_developer_command_class_init (SetRawDeveloperCommandClass * klass) {
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ set_raw_developer_command_parent_class = g_type_class_peek_parent (klass);
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (SetRawDeveloperCommandPrivate));
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = set_raw_developer_command_real_execute;
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = set_raw_developer_command_real_undo;
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = set_raw_developer_command_real_execute_on_source;
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = set_raw_developer_command_real_undo_on_source;
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = set_raw_developer_command_finalize;
+#line 11262 "Commands.c"
+}
+
+
+static void set_raw_developer_command_instance_init (SetRawDeveloperCommand * self) {
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = SET_RAW_DEVELOPER_COMMAND_GET_PRIVATE (self);
+#line 11269 "Commands.c"
+}
+
+
+static void set_raw_developer_command_finalize (GObject* obj) {
+ SetRawDeveloperCommand * self;
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand);
+#line 1251 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->last_developer_map);
+#line 1252 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->last_transformation_map);
+#line 1250 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (set_raw_developer_command_parent_class)->finalize (obj);
+#line 11283 "Commands.c"
+}
+
+
+GType set_raw_developer_command_get_type (void) {
+ static volatile gsize set_raw_developer_command_type_id__volatile = 0;
+ if (g_once_init_enter (&set_raw_developer_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SetRawDeveloperCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_raw_developer_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetRawDeveloperCommand), 0, (GInstanceInitFunc) set_raw_developer_command_instance_init, NULL };
+ GType set_raw_developer_command_type_id;
+ set_raw_developer_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_COMMAND, "SetRawDeveloperCommand", &g_define_type_info, 0);
+ g_once_init_leave (&set_raw_developer_command_type_id__volatile, set_raw_developer_command_type_id);
+ }
+ return set_raw_developer_command_type_id__volatile;
+}
+
+
+AdjustDateTimePhotoCommand* adjust_date_time_photo_command_construct (GType object_type, Dateable* dateable, gint64 time_shift, gboolean modify_original) {
+ AdjustDateTimePhotoCommand * self = NULL;
+ Dateable* _tmp0_ = NULL;
+ Dateable* _tmp1_ = NULL;
+ Dateable* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+ gboolean _tmp4_ = FALSE;
+#line 1312 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_DATEABLE (dateable), NULL);
+#line 1313 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = dateable;
+#line 1313 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (AdjustDateTimePhotoCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), RESOURCES_ADJUST_DATE_TIME_LABEL, "");
+#line 1315 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = dateable;
+#line 1315 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1315 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->dateable);
+#line 1315 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->dateable = _tmp2_;
+#line 1316 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = time_shift;
+#line 1316 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->time_shift = _tmp3_;
+#line 1317 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = modify_original;
+#line 1317 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->modify_original = _tmp4_;
+#line 1312 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 11330 "Commands.c"
+}
+
+
+AdjustDateTimePhotoCommand* adjust_date_time_photo_command_new (Dateable* dateable, gint64 time_shift, gboolean modify_original) {
+#line 1312 "/home/jens/Source/shotwell/src/Commands.vala"
+ return adjust_date_time_photo_command_construct (TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, dateable, time_shift, modify_original);
+#line 11337 "Commands.c"
+}
+
+
+static void adjust_date_time_photo_command_real_execute (Command* base) {
+ AdjustDateTimePhotoCommand * self;
+ Dateable* _tmp0_ = NULL;
+ Dateable* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+ gint64 _tmp3_ = 0LL;
+ Dateable* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+ ViewCollection* all_events = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ Dateable* _tmp23_ = NULL;
+ ViewCollection* _tmp24_ = NULL;
+#line 1320 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommand);
+#line 1321 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->dateable;
+#line 1321 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->dateable;
+#line 1321 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = dateable_get_exposure_time (_tmp1_);
+#line 1321 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->time_shift;
+#line 1321 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photo_command_set_time (self, _tmp0_, _tmp2_ + ((time_t) _tmp3_));
+#line 1323 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->dateable;
+#line 1323 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = media_source_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1323 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->prev_event);
+#line 1323 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->prev_event = _tmp5_;
+#line 1325 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = view_collection_new ("tmp");
+#line 1325 "/home/jens/Source/shotwell/src/Commands.vala"
+ all_events = _tmp6_;
+#line 11377 "Commands.c"
+ {
+ GeeIterator* _dobj_it = NULL;
+ EventSourceCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = event_global;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _dobj_it = _tmp11_;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 11401 "Commands.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ DataObject* dobj = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ Event* event = NULL;
+ DataObject* _tmp16_ = NULL;
+ Event* _tmp17_ = NULL;
+ Event* _tmp18_ = NULL;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _dobj_it;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp13_) {
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 11419 "Commands.c"
+ }
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _dobj_it;
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ dobj = (DataObject*) _tmp15_;
+#line 1328 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = dobj;
+#line 1328 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_EVENT) ? ((Event*) _tmp16_) : NULL);
+#line 1328 "/home/jens/Source/shotwell/src/Commands.vala"
+ event = _tmp17_;
+#line 1329 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = event;
+#line 1329 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp18_ != NULL) {
+#line 11437 "Commands.c"
+ ViewCollection* _tmp19_ = NULL;
+ Event* _tmp20_ = NULL;
+ EventView* _tmp21_ = NULL;
+ EventView* _tmp22_ = NULL;
+#line 1330 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = all_events;
+#line 1330 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = event;
+#line 1330 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = event_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_EVENT_SOURCE, EventSource));
+#line 1330 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _tmp21_;
+#line 1330 "/home/jens/Source/shotwell/src/Commands.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_OBJECT, DataObject));
+#line 1330 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp22_);
+#line 11454 "Commands.c"
+ }
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (event);
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (dobj);
+#line 11460 "Commands.c"
+ }
+#line 1327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_dobj_it);
+#line 11464 "Commands.c"
+ }
+#line 1333 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = self->priv->dateable;
+#line 1333 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = all_events;
+#line 1333 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_generate_single_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_MEDIA_SOURCE, MediaSource), _tmp24_, NULL);
+#line 1320 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (all_events);
+#line 11474 "Commands.c"
+}
+
+
+static void adjust_date_time_photo_command_real_undo (Command* base) {
+ AdjustDateTimePhotoCommand * self;
+ Dateable* _tmp0_ = NULL;
+ Dateable* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+ gint64 _tmp3_ = 0LL;
+ Dateable* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+#line 1336 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommand);
+#line 1337 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->dateable;
+#line 1337 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->dateable;
+#line 1337 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = dateable_get_exposure_time (_tmp1_);
+#line 1337 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->time_shift;
+#line 1337 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photo_command_set_time (self, _tmp0_, _tmp2_ - ((time_t) _tmp3_));
+#line 1339 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->dateable;
+#line 1339 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->prev_event;
+#line 1339 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource), _tmp5_);
+#line 11504 "Commands.c"
+}
+
+
+static void adjust_date_time_photo_command_set_time (AdjustDateTimePhotoCommand* self, Dateable* dateable, time_t exposure_time) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1342 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_ADJUST_DATE_TIME_PHOTO_COMMAND (self));
+#line 1342 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATEABLE (dateable));
+#line 1343 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->modify_original;
+#line 1343 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 11520 "Commands.c"
+ Dateable* _tmp2_ = NULL;
+#line 1343 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = dateable;
+#line 1343 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_PHOTO);
+#line 11526 "Commands.c"
+ } else {
+#line 1343 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = FALSE;
+#line 11530 "Commands.c"
+ }
+#line 1343 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_) {
+#line 11534 "Commands.c"
+ {
+ Dateable* _tmp3_ = NULL;
+ time_t _tmp4_ = 0;
+#line 1345 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = dateable;
+#line 1345 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = exposure_time;
+#line 1345 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_exposure_time_persistent (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PHOTO, Photo), _tmp4_, &_inner_error_);
+#line 1345 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 11546 "Commands.c"
+ goto __catch447_g_error;
+ }
+ }
+ goto __finally447;
+ __catch447_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 1344 "/home/jens/Source/shotwell/src/Commands.vala"
+ err = _inner_error_;
+#line 1344 "/home/jens/Source/shotwell/src/Commands.vala"
+ _inner_error_ = NULL;
+#line 1347 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _ ("Original photo could not be adjusted.");
+#line 1347 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_error_message (_tmp5_, NULL);
+#line 1344 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_error_free0 (err);
+#line 11565 "Commands.c"
+ }
+ __finally447:
+#line 1344 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1344 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1344 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_clear_error (&_inner_error_);
+#line 1344 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 11576 "Commands.c"
+ }
+ } else {
+ Dateable* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+#line 1350 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = dateable;
+#line 1350 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = exposure_time;
+#line 1350 "/home/jens/Source/shotwell/src/Commands.vala"
+ dateable_set_exposure_time (_tmp6_, _tmp7_);
+#line 11587 "Commands.c"
+ }
+}
+
+
+static void adjust_date_time_photo_command_class_init (AdjustDateTimePhotoCommandClass * klass) {
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photo_command_parent_class = g_type_class_peek_parent (klass);
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (AdjustDateTimePhotoCommandPrivate));
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = adjust_date_time_photo_command_real_execute;
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = adjust_date_time_photo_command_real_undo;
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = adjust_date_time_photo_command_finalize;
+#line 11603 "Commands.c"
+}
+
+
+static void adjust_date_time_photo_command_instance_init (AdjustDateTimePhotoCommand * self) {
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = ADJUST_DATE_TIME_PHOTO_COMMAND_GET_PRIVATE (self);
+#line 11610 "Commands.c"
+}
+
+
+static void adjust_date_time_photo_command_finalize (GObject* obj) {
+ AdjustDateTimePhotoCommand * self;
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommand);
+#line 1307 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->dateable);
+#line 1308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->prev_event);
+#line 1306 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (adjust_date_time_photo_command_parent_class)->finalize (obj);
+#line 11624 "Commands.c"
+}
+
+
+GType adjust_date_time_photo_command_get_type (void) {
+ static volatile gsize adjust_date_time_photo_command_type_id__volatile = 0;
+ if (g_once_init_enter (&adjust_date_time_photo_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AdjustDateTimePhotoCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) adjust_date_time_photo_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AdjustDateTimePhotoCommand), 0, (GInstanceInitFunc) adjust_date_time_photo_command_instance_init, NULL };
+ GType adjust_date_time_photo_command_type_id;
+ adjust_date_time_photo_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "AdjustDateTimePhotoCommand", &g_define_type_info, 0);
+ g_once_init_leave (&adjust_date_time_photo_command_type_id__volatile, adjust_date_time_photo_command_type_id);
+ }
+ return adjust_date_time_photo_command_type_id__volatile;
+}
+
+
+static time_t* _time_t_dup (time_t* self) {
+ time_t* dup;
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ dup = g_new0 (time_t, 1);
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ memcpy (dup, self, sizeof (time_t));
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ return dup;
+#line 11648 "Commands.c"
+}
+
+
+static gpointer __time_t_dup0 (gpointer self) {
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self ? _time_t_dup (self) : NULL;
+#line 11655 "Commands.c"
+}
+
+
+AdjustDateTimePhotosCommand* adjust_date_time_photos_command_construct (GType object_type, GeeIterable* iter, gint64 time_shift, gboolean keep_relativity, gboolean modify_originals) {
+ AdjustDateTimePhotosCommand * self = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GeeHashMap* _tmp6_ = NULL;
+ GeeHashMap* _tmp32_ = NULL;
+#line 1366 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (iter), NULL);
+#line 1368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = iter;
+#line 1368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _ ("Adjusting Date and Time");
+#line 1368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Undoing Date and Time Adjustment");
+#line 1368 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (AdjustDateTimePhotosCommand*) multiple_data_source_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_, RESOURCES_ADJUST_DATE_TIME_LABEL, "");
+#line 1371 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = time_shift;
+#line 1371 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->time_shift = _tmp3_;
+#line 1372 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = keep_relativity;
+#line 1372 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->keep_relativity = _tmp4_;
+#line 1373 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = modify_originals;
+#line 1373 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->modify_originals = _tmp5_;
+#line 1377 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_hash_map_new (TYPE_DATEABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_EVENT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1377 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->prev_events);
+#line 1377 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->prev_events = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_MAP, GeeMap);
+#line 11697 "Commands.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = iter;
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_iterable_iterator (_tmp7_);
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _view_it = _tmp8_;
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 11710 "Commands.c"
+ GeeIterator* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ GeeMap* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ DataSource* _tmp15_ = NULL;
+ Dateable* _tmp16_ = NULL;
+ Dateable* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+ MediaSource* _tmp20_ = NULL;
+ MediaSource* _tmp21_ = NULL;
+ Event* _tmp22_ = NULL;
+ Event* _tmp23_ = NULL;
+ time_t* _tmp24_ = NULL;
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _view_it;
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterator_next (_tmp9_);
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp10_) {
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 11736 "Commands.c"
+ }
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _view_it;
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = gee_iterator_get (_tmp11_);
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ view = (DataView*) _tmp12_;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = self->priv->prev_events;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = view;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = data_view_get_source (_tmp14_);
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, TYPE_DATEABLE) ? ((Dateable*) _tmp15_) : NULL;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp16_ == NULL) {
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp15_);
+#line 11756 "Commands.c"
+ }
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = view;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = data_view_get_source (_tmp18_);
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_MEDIA_SOURCE) ? ((MediaSource*) _tmp19_) : NULL;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp20_ == NULL) {
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp19_);
+#line 11770 "Commands.c"
+ }
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = _tmp20_;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = media_source_get_event (_tmp21_);
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _tmp22_;
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_map_set (_tmp13_, _tmp17_, _tmp23_);
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp21_);
+#line 1381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp17_);
+#line 1383 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = self->priv->new_time;
+#line 1383 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp24_ == NULL) {
+#line 11790 "Commands.c"
+ DataView* _tmp25_ = NULL;
+ DataSource* _tmp26_ = NULL;
+ Dateable* _tmp27_ = NULL;
+ time_t _tmp28_ = 0;
+ gint64 _tmp29_ = 0LL;
+ time_t _tmp30_ = 0;
+ time_t* _tmp31_ = NULL;
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = view;
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = data_view_get_source (_tmp25_);
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATEABLE, Dateable);
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = dateable_get_exposure_time (_tmp27_);
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = time_shift;
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = _tmp28_ + ((time_t) _tmp29_);
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = __time_t_dup0 (&_tmp30_);
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_time);
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_time = _tmp31_;
+#line 1384 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp27_);
+#line 1386 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 1386 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 11822 "Commands.c"
+ }
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (view);
+#line 11826 "Commands.c"
+ }
+#line 1380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_view_it);
+#line 11830 "Commands.c"
+ }
+#line 1390 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = gee_hash_map_new (TYPE_DATEABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_INVALID, (GBoxedCopyFunc) _time_t_dup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1390 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->old_times);
+#line 1390 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_times = _tmp32_;
+#line 1366 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 11840 "Commands.c"
+}
+
+
+AdjustDateTimePhotosCommand* adjust_date_time_photos_command_new (GeeIterable* iter, gint64 time_shift, gboolean keep_relativity, gboolean modify_originals) {
+#line 1366 "/home/jens/Source/shotwell/src/Commands.vala"
+ return adjust_date_time_photos_command_construct (TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, iter, time_shift, keep_relativity, modify_originals);
+#line 11847 "Commands.c"
+}
+
+
+static void adjust_date_time_photos_command_real_execute (Command* base) {
+ AdjustDateTimePhotosCommand * self;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ ViewCollection* all_events = NULL;
+ ViewCollection* _tmp10_ = NULL;
+#line 1393 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommand);
+#line 1394 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATEABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1394 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->error_list);
+#line 1394 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->error_list = _tmp0_;
+#line 1395 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (adjust_date_time_photos_command_parent_class)->execute (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 1397 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->error_list;
+#line 1397 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1397 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1397 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_ > 0) {
+#line 11877 "Commands.c"
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 1398 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->error_list;
+#line 1398 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->error_list;
+#line 1398 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1398 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp6_;
+#line 1398 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = ngettext ("One original photo could not be adjusted.", "The following original photos could not be adjusted.", (gulong) _tmp7_);
+#line 1398 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _ ("Time Adjustment Error");
+#line 1398 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_object_error_dialog (_tmp4_, _tmp8_, _tmp9_);
+#line 11898 "Commands.c"
+ }
+#line 1404 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = view_collection_new ("tmp");
+#line 1404 "/home/jens/Source/shotwell/src/Commands.vala"
+ all_events = _tmp10_;
+#line 11904 "Commands.c"
+ {
+ GeeIterator* _d_it = NULL;
+ GeeMap* _tmp11_ = NULL;
+ GeeSet* _tmp12_ = NULL;
+ GeeSet* _tmp13_ = NULL;
+ GeeSet* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = self->priv->prev_events;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = gee_map_get_keys (_tmp11_);
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _tmp12_;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _tmp13_;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tmp15_;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp14_);
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _d_it = _tmp16_;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 11931 "Commands.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ Dateable* d = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ Dateable* _tmp37_ = NULL;
+ ViewCollection* _tmp38_ = NULL;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _d_it;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp18_) {
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 11947 "Commands.c"
+ }
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _d_it;
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ d = (Dateable*) _tmp20_;
+#line 11955 "Commands.c"
+ {
+ GeeIterator* _dobj_it = NULL;
+ EventSourceCollection* _tmp21_ = NULL;
+ GeeCollection* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ GeeIterator* _tmp25_ = NULL;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = event_global;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _tmp22_;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _tmp24_;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _dobj_it = _tmp25_;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 11979 "Commands.c"
+ GeeIterator* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ DataObject* dobj = NULL;
+ GeeIterator* _tmp28_ = NULL;
+ gpointer _tmp29_ = NULL;
+ Event* event = NULL;
+ DataObject* _tmp30_ = NULL;
+ Event* _tmp31_ = NULL;
+ Event* _tmp32_ = NULL;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _dobj_it;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = gee_iterator_next (_tmp26_);
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp27_) {
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 11997 "Commands.c"
+ }
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = _dobj_it;
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = gee_iterator_get (_tmp28_);
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ dobj = (DataObject*) _tmp29_;
+#line 1408 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = dobj;
+#line 1408 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, TYPE_EVENT) ? ((Event*) _tmp30_) : NULL);
+#line 1408 "/home/jens/Source/shotwell/src/Commands.vala"
+ event = _tmp31_;
+#line 1409 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = event;
+#line 1409 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp32_ != NULL) {
+#line 12015 "Commands.c"
+ ViewCollection* _tmp33_ = NULL;
+ Event* _tmp34_ = NULL;
+ EventView* _tmp35_ = NULL;
+ EventView* _tmp36_ = NULL;
+#line 1410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = all_events;
+#line 1410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = event;
+#line 1410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = event_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_EVENT_SOURCE, EventSource));
+#line 1410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = _tmp35_;
+#line 1410 "/home/jens/Source/shotwell/src/Commands.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_DATA_OBJECT, DataObject));
+#line 1410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp36_);
+#line 12032 "Commands.c"
+ }
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (event);
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (dobj);
+#line 12038 "Commands.c"
+ }
+#line 1407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_dobj_it);
+#line 12042 "Commands.c"
+ }
+#line 1413 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = d;
+#line 1413 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = all_events;
+#line 1413 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_generate_single_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, TYPE_MEDIA_SOURCE, MediaSource), _tmp38_, NULL);
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (d);
+#line 12052 "Commands.c"
+ }
+#line 1406 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_d_it);
+#line 12056 "Commands.c"
+ }
+#line 1393 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (all_events);
+#line 12060 "Commands.c"
+}
+
+
+static void adjust_date_time_photos_command_real_undo (Command* base) {
+ AdjustDateTimePhotosCommand * self;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 1417 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommand);
+#line 1418 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATEABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1418 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->error_list);
+#line 1418 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->error_list = _tmp0_;
+#line 1419 "/home/jens/Source/shotwell/src/Commands.vala"
+ COMMAND_CLASS (adjust_date_time_photos_command_parent_class)->undo (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand), TYPE_COMMAND, Command));
+#line 1421 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->error_list;
+#line 1421 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1421 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1421 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_ > 0) {
+#line 12088 "Commands.c"
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 1422 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->error_list;
+#line 1422 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->error_list;
+#line 1422 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1422 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp6_;
+#line 1422 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = ngettext ("Time adjustments could not be undone on the following photo file.", "Time adjustments could not be undone on the following photo files.", (gulong) _tmp7_);
+#line 1422 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _ ("Time Adjustment Error");
+#line 1422 "/home/jens/Source/shotwell/src/Commands.vala"
+ multiple_object_error_dialog (_tmp4_, _tmp8_, _tmp9_);
+#line 12109 "Commands.c"
+ }
+}
+
+
+static void adjust_date_time_photos_command_set_time (AdjustDateTimePhotosCommand* self, Dateable* dateable, time_t exposure_time) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1429 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_ADJUST_DATE_TIME_PHOTOS_COMMAND (self));
+#line 1429 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATEABLE (dateable));
+#line 1433 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->modify_originals;
+#line 1433 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 12126 "Commands.c"
+ Dateable* _tmp2_ = NULL;
+#line 1433 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = dateable;
+#line 1433 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_PHOTO);
+#line 12132 "Commands.c"
+ } else {
+#line 1433 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = FALSE;
+#line 12136 "Commands.c"
+ }
+#line 1433 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_) {
+#line 12140 "Commands.c"
+ {
+ Dateable* _tmp3_ = NULL;
+ time_t _tmp4_ = 0;
+#line 1435 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = dateable;
+#line 1435 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = exposure_time;
+#line 1435 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo_set_exposure_time_persistent (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PHOTO, Photo), _tmp4_, &_inner_error_);
+#line 1435 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12152 "Commands.c"
+ goto __catch448_g_error;
+ }
+ }
+ goto __finally448;
+ __catch448_g_error:
+ {
+ GError* err = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ Dateable* _tmp6_ = NULL;
+#line 1434 "/home/jens/Source/shotwell/src/Commands.vala"
+ err = _inner_error_;
+#line 1434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _inner_error_ = NULL;
+#line 1437 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->error_list;
+#line 1437 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = dateable;
+#line 1437 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp6_);
+#line 1434 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_error_free0 (err);
+#line 12174 "Commands.c"
+ }
+ __finally448:
+#line 1434 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1434 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1434 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_clear_error (&_inner_error_);
+#line 1434 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 12185 "Commands.c"
+ }
+ } else {
+ Dateable* _tmp7_ = NULL;
+ time_t _tmp8_ = 0;
+#line 1442 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = dateable;
+#line 1442 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = exposure_time;
+#line 1442 "/home/jens/Source/shotwell/src/Commands.vala"
+ dateable_set_exposure_time (_tmp7_, _tmp8_);
+#line 12196 "Commands.c"
+ }
+}
+
+
+static void adjust_date_time_photos_command_real_execute_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ AdjustDateTimePhotosCommand * self;
+ Dateable* dateable = NULL;
+ DataSource* _tmp0_ = NULL;
+ Dateable* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ ViewCollection* all_events = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ Dateable* _tmp33_ = NULL;
+ ViewCollection* _tmp34_ = NULL;
+#line 1446 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommand);
+#line 1446 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1447 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1447 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATEABLE, Dateable));
+#line 1447 "/home/jens/Source/shotwell/src/Commands.vala"
+ dateable = _tmp1_;
+#line 1449 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->keep_relativity;
+#line 1449 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_) {
+#line 12226 "Commands.c"
+ Dateable* _tmp4_ = NULL;
+ time_t _tmp5_ = 0;
+#line 1449 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = dateable;
+#line 1449 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = dateable_get_exposure_time (_tmp4_);
+#line 1449 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp5_ != ((time_t) 0);
+#line 12235 "Commands.c"
+ } else {
+#line 1449 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = FALSE;
+#line 12239 "Commands.c"
+ }
+#line 1449 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_) {
+#line 12243 "Commands.c"
+ Dateable* _tmp6_ = NULL;
+ Dateable* _tmp7_ = NULL;
+ time_t _tmp8_ = 0;
+ gint64 _tmp9_ = 0LL;
+#line 1450 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = dateable;
+#line 1450 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = dateable;
+#line 1450 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = dateable_get_exposure_time (_tmp7_);
+#line 1450 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->time_shift;
+#line 1450 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photos_command_set_time (self, _tmp6_, _tmp8_ + ((time_t) _tmp9_));
+#line 12258 "Commands.c"
+ } else {
+ GeeHashMap* _tmp10_ = NULL;
+ Dateable* _tmp11_ = NULL;
+ Dateable* _tmp12_ = NULL;
+ time_t _tmp13_ = 0;
+ Dateable* _tmp14_ = NULL;
+ time_t* _tmp15_ = NULL;
+#line 1452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->old_times;
+#line 1452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = dateable;
+#line 1452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = dateable;
+#line 1452 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = dateable_get_exposure_time (_tmp12_);
+#line 1452 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, &_tmp13_);
+#line 1453 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = dateable;
+#line 1453 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = self->priv->new_time;
+#line 1453 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photos_command_set_time (self, _tmp14_, *_tmp15_);
+#line 12282 "Commands.c"
+ }
+#line 1456 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = view_collection_new ("tmp");
+#line 1456 "/home/jens/Source/shotwell/src/Commands.vala"
+ all_events = _tmp16_;
+#line 12288 "Commands.c"
+ {
+ GeeIterator* _dobj_it = NULL;
+ EventSourceCollection* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = event_global;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _tmp18_;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = _tmp20_;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp19_);
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _dobj_it = _tmp21_;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 12312 "Commands.c"
+ GeeIterator* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ DataObject* dobj = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ Event* event = NULL;
+ DataObject* _tmp26_ = NULL;
+ Event* _tmp27_ = NULL;
+ Event* _tmp28_ = NULL;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _dobj_it;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = gee_iterator_next (_tmp22_);
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp23_) {
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 12330 "Commands.c"
+ }
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _dobj_it;
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = gee_iterator_get (_tmp24_);
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ dobj = (DataObject*) _tmp25_;
+#line 1459 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = dobj;
+#line 1459 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp26_, TYPE_EVENT) ? ((Event*) _tmp26_) : NULL);
+#line 1459 "/home/jens/Source/shotwell/src/Commands.vala"
+ event = _tmp27_;
+#line 1460 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = event;
+#line 1460 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp28_ != NULL) {
+#line 12348 "Commands.c"
+ ViewCollection* _tmp29_ = NULL;
+ Event* _tmp30_ = NULL;
+ EventView* _tmp31_ = NULL;
+ EventView* _tmp32_ = NULL;
+#line 1461 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = all_events;
+#line 1461 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = event;
+#line 1461 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = event_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_EVENT_SOURCE, EventSource));
+#line 1461 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = _tmp31_;
+#line 1461 "/home/jens/Source/shotwell/src/Commands.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_DATA_OBJECT, DataObject));
+#line 1461 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp32_);
+#line 12365 "Commands.c"
+ }
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (event);
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (dobj);
+#line 12371 "Commands.c"
+ }
+#line 1458 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_dobj_it);
+#line 12375 "Commands.c"
+ }
+#line 1464 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = dateable;
+#line 1464 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = all_events;
+#line 1464 "/home/jens/Source/shotwell/src/Commands.vala"
+ event_generate_single_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_MEDIA_SOURCE, MediaSource), _tmp34_, NULL);
+#line 1446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _data_collection_unref0 (all_events);
+#line 1446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (dateable);
+#line 12387 "Commands.c"
+}
+
+
+static void adjust_date_time_photos_command_real_undo_on_source (MultipleDataSourceCommand* base, DataSource* source) {
+ AdjustDateTimePhotosCommand * self;
+ Dateable* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ Dateable* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ Dateable* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* _tmp16_ = NULL;
+ GeeMap* _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ Event* _tmp20_ = NULL;
+#line 1467 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommand);
+#line 1467 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1468 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1468 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATEABLE, Dateable));
+#line 1468 "/home/jens/Source/shotwell/src/Commands.vala"
+ photo = _tmp1_;
+#line 1470 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->old_times;
+#line 1470 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = photo;
+#line 1470 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_);
+#line 1470 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_) {
+#line 12422 "Commands.c"
+ Dateable* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ Dateable* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ time_t* _tmp9_ = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ Dateable* _tmp11_ = NULL;
+#line 1471 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = photo;
+#line 1471 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->old_times;
+#line 1471 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = photo;
+#line 1471 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 1471 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = (time_t*) _tmp8_;
+#line 1471 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photos_command_set_time (self, _tmp5_, *_tmp9_);
+#line 1471 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp9_);
+#line 1472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->old_times;
+#line 1472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = photo;
+#line 1472 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL);
+#line 12450 "Commands.c"
+ } else {
+ Dateable* _tmp12_ = NULL;
+ Dateable* _tmp13_ = NULL;
+ time_t _tmp14_ = 0;
+ gint64 _tmp15_ = 0LL;
+#line 1474 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = photo;
+#line 1474 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = photo;
+#line 1474 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = dateable_get_exposure_time (_tmp13_);
+#line 1474 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = self->priv->time_shift;
+#line 1474 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photos_command_set_time (self, _tmp12_, _tmp14_ - ((time_t) _tmp15_));
+#line 12466 "Commands.c"
+ }
+#line 1477 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = source;
+#line 1477 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = self->priv->prev_events;
+#line 1477 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = source;
+#line 1477 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = gee_map_get (_tmp17_, G_TYPE_CHECK_INSTANCE_TYPE (_tmp18_, TYPE_DATEABLE) ? ((Dateable*) _tmp18_) : NULL);
+#line 1477 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = (Event*) _tmp19_;
+#line 1477 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_set_event (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_MEDIA_SOURCE) ? ((MediaSource*) _tmp16_) : NULL, _tmp20_);
+#line 1477 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1467 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (photo);
+#line 12484 "Commands.c"
+}
+
+
+static void adjust_date_time_photos_command_class_init (AdjustDateTimePhotosCommandClass * klass) {
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ adjust_date_time_photos_command_parent_class = g_type_class_peek_parent (klass);
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (AdjustDateTimePhotosCommandPrivate));
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = adjust_date_time_photos_command_real_execute;
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = adjust_date_time_photos_command_real_undo;
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->execute_on_source = adjust_date_time_photos_command_real_execute_on_source;
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceCommandClass *) klass)->undo_on_source = adjust_date_time_photos_command_real_undo_on_source;
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = adjust_date_time_photos_command_finalize;
+#line 12503 "Commands.c"
+}
+
+
+static void adjust_date_time_photos_command_instance_init (AdjustDateTimePhotosCommand * self) {
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = ADJUST_DATE_TIME_PHOTOS_COMMAND_GET_PRIVATE (self);
+#line 1362 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_time = NULL;
+#line 12512 "Commands.c"
+}
+
+
+static void adjust_date_time_photos_command_finalize (GObject* obj) {
+ AdjustDateTimePhotosCommand * self;
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADJUST_DATE_TIME_PHOTOS_COMMAND, AdjustDateTimePhotosCommand);
+#line 1359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->prev_events);
+#line 1362 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_time);
+#line 1363 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->old_times);
+#line 1364 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->error_list);
+#line 1355 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (adjust_date_time_photos_command_parent_class)->finalize (obj);
+#line 12530 "Commands.c"
+}
+
+
+GType adjust_date_time_photos_command_get_type (void) {
+ static volatile gsize adjust_date_time_photos_command_type_id__volatile = 0;
+ if (g_once_init_enter (&adjust_date_time_photos_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AdjustDateTimePhotosCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) adjust_date_time_photos_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AdjustDateTimePhotosCommand), 0, (GInstanceInitFunc) adjust_date_time_photos_command_instance_init, NULL };
+ GType adjust_date_time_photos_command_type_id;
+ adjust_date_time_photos_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_COMMAND, "AdjustDateTimePhotosCommand", &g_define_type_info, 0);
+ g_once_init_leave (&adjust_date_time_photos_command_type_id__volatile, adjust_date_time_photos_command_type_id);
+ }
+ return adjust_date_time_photos_command_type_id__volatile;
+}
+
+
+static void _add_tags_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self) {
+#line 1521 "/home/jens/Source/shotwell/src/Commands.vala"
+ add_tags_command_on_proxy_broken ((AddTagsCommand*) self);
+#line 12549 "Commands.c"
+}
+
+
+static void _add_tags_command_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 1523 "/home/jens/Source/shotwell/src/Commands.vala"
+ add_tags_command_on_source_destroyed ((AddTagsCommand*) self, source);
+#line 12556 "Commands.c"
+}
+
+
+AddTagsCommand* add_tags_command_construct (GType object_type, gchar** paths, int paths_length1, GeeCollection* sources) {
+ AddTagsCommand * self = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ LibraryPhotoSourceCollection* _tmp43_ = NULL;
+ VideoSourceCollection* _tmp44_ = NULL;
+#line 1485 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (sources), NULL);
+#line 1486 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = paths;
+#line 1486 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0__length1 = paths_length1;
+#line 1486 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = resources_add_tags_label (_tmp0_, _tmp0__length1);
+#line 1486 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 1486 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (AddTagsCommand*) page_command_construct (object_type, _tmp2_, "");
+#line 1486 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp2_);
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = paths;
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3__length1 = paths_length1;
+#line 12588 "Commands.c"
+ {
+ gchar** path_collection = NULL;
+ gint path_collection_length1 = 0;
+ gint _path_collection_size_ = 0;
+ gint path_it = 0;
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ path_collection = _tmp3_;
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ path_collection_length1 = _tmp3__length1;
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ for (path_it = 0; path_it < _tmp3__length1; path_it = path_it + 1) {
+#line 12600 "Commands.c"
+ gchar* _tmp4_ = NULL;
+ gchar* path = NULL;
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = g_strdup (path_collection[path_it]);
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ path = _tmp4_;
+#line 12607 "Commands.c"
+ {
+ GeeList* paths_to_create = NULL;
+ const gchar* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 1492 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = path;
+#line 1492 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp5_);
+#line 1492 "/home/jens/Source/shotwell/src/Commands.vala"
+ paths_to_create = _tmp6_;
+#line 1494 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = paths_to_create;
+#line 1494 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = path;
+#line 1494 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), _tmp8_);
+#line 12626 "Commands.c"
+ {
+ GeeList* _create_path_list = NULL;
+ GeeList* _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _create_path_size = 0;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _create_path_index = 0;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = paths_to_create;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _create_path_list = _tmp10_;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _create_path_list;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _tmp12_;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _create_path_size = _tmp13_;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _create_path_index = -1;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 12654 "Commands.c"
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gchar* create_path = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gpointer _tmp19_ = NULL;
+ Tag* tag = NULL;
+ const gchar* _tmp20_ = NULL;
+ Tag* _tmp21_ = NULL;
+ SourceProxy* tag_proxy = NULL;
+ Tag* _tmp22_ = NULL;
+ SourceProxy* _tmp23_ = NULL;
+ GeeArrayList* add_sources = NULL;
+ GeeArrayList* _tmp24_ = NULL;
+ GeeArrayList* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _create_path_index;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _create_path_index = _tmp14_ + 1;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _create_path_index;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _create_path_size;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp15_ < _tmp16_)) {
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 12685 "Commands.c"
+ }
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _create_path_list;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _create_path_index;
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = gee_list_get (_tmp17_, _tmp18_);
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ create_path = (gchar*) _tmp19_;
+#line 1497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = create_path;
+#line 1497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = tag_for_path (_tmp20_);
+#line 1497 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = _tmp21_;
+#line 1498 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = tag;
+#line 1498 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_PROXYABLE, Proxyable));
+#line 1498 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_proxy = _tmp23_;
+#line 1502 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1502 "/home/jens/Source/shotwell/src/Commands.vala"
+ add_sources = _tmp24_;
+#line 12711 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ GeeIterator* _tmp26_ = NULL;
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = sources;
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp26_;
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 12724 "Commands.c"
+ GeeIterator* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp29_ = NULL;
+ gpointer _tmp30_ = NULL;
+ Tag* _tmp31_ = NULL;
+ MediaSource* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = _source_it;
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = gee_iterator_next (_tmp27_);
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp28_) {
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 12741 "Commands.c"
+ }
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = _source_it;
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = gee_iterator_get (_tmp29_);
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp30_;
+#line 1504 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = tag;
+#line 1504 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = source;
+#line 1504 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = tag_contains (_tmp31_, _tmp32_);
+#line 1504 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp33_) {
+#line 12757 "Commands.c"
+ GeeArrayList* _tmp34_ = NULL;
+ MediaSource* _tmp35_ = NULL;
+#line 1505 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = add_sources;
+#line 1505 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = source;
+#line 1505 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp35_);
+#line 12766 "Commands.c"
+ }
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 12770 "Commands.c"
+ }
+#line 1503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 12774 "Commands.c"
+ }
+#line 1508 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = add_sources;
+#line 1508 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1508 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = _tmp37_;
+#line 1508 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp38_ > 0) {
+#line 12784 "Commands.c"
+ SourceProxy* _tmp39_ = NULL;
+ GeeHashMap* _tmp40_ = NULL;
+ SourceProxy* _tmp41_ = NULL;
+ GeeArrayList* _tmp42_ = NULL;
+#line 1509 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = tag_proxy;
+#line 1509 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp39_, "broken", (GCallback) _add_tags_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 1510 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = self->priv->map;
+#line 1510 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = tag_proxy;
+#line 1510 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = add_sources;
+#line 1510 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp41_, _tmp42_);
+#line 12801 "Commands.c"
+ }
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (add_sources);
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (tag_proxy);
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (create_path);
+#line 12811 "Commands.c"
+ }
+#line 1496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_create_path_list);
+#line 12815 "Commands.c"
+ }
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (paths_to_create);
+#line 1491 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 12821 "Commands.c"
+ }
+ }
+ }
+#line 1515 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = library_photo_global;
+#line 1515 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _add_tags_command_on_source_destroyed_source_collection_item_destroyed, self, 0);
+#line 1516 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = video_global;
+#line 1516 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _add_tags_command_on_source_destroyed_source_collection_item_destroyed, self, 0);
+#line 1485 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 12835 "Commands.c"
+}
+
+
+AddTagsCommand* add_tags_command_new (gchar** paths, int paths_length1, GeeCollection* sources) {
+#line 1485 "/home/jens/Source/shotwell/src/Commands.vala"
+ return add_tags_command_construct (TYPE_ADD_TAGS_COMMAND, paths, paths_length1, sources);
+#line 12842 "Commands.c"
+}
+
+
+static void add_tags_command_real_execute (Command* base) {
+ AddTagsCommand * self;
+#line 1527 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADD_TAGS_COMMAND, AddTagsCommand);
+#line 12850 "Commands.c"
+ {
+ GeeIterator* _tag_proxy_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->map;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tag_proxy_it = _tmp5_;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 12877 "Commands.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ SourceProxy* tag_proxy = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ SourceProxy* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+ GeeHashMap* _tmp13_ = NULL;
+ SourceProxy* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tag_proxy_it;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp7_) {
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 12898 "Commands.c"
+ }
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tag_proxy_it;
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_proxy = (SourceProxy*) _tmp9_;
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = tag_proxy;
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = source_proxy_get_source (_tmp10_);
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_TAG, Tag);
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = self->priv->map;
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = tag_proxy;
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp14_);
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = (GeeArrayList*) _tmp15_;
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach_many (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp16_);
+#line 1529 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (tag_proxy);
+#line 12928 "Commands.c"
+ }
+#line 1528 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tag_proxy_it);
+#line 12932 "Commands.c"
+ }
+}
+
+
+static void add_tags_command_real_undo (Command* base) {
+ AddTagsCommand * self;
+#line 1532 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADD_TAGS_COMMAND, AddTagsCommand);
+#line 12941 "Commands.c"
+ {
+ GeeIterator* _tag_proxy_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->map;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tag_proxy_it = _tmp5_;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 12968 "Commands.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ SourceProxy* tag_proxy = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Tag* tag = NULL;
+ SourceProxy* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+ GeeHashMap* _tmp13_ = NULL;
+ SourceProxy* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+ GeeMultiMap* _tmp17_ = NULL;
+ GeeMultiMap* _tmp18_ = NULL;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tag_proxy_it;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp7_) {
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 12992 "Commands.c"
+ }
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tag_proxy_it;
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_proxy = (SourceProxy*) _tmp9_;
+#line 1534 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = tag_proxy;
+#line 1534 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = source_proxy_get_source (_tmp10_);
+#line 1534 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_TAG, Tag);
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = tag;
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = self->priv->map;
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = tag_proxy;
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp14_);
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = (GeeArrayList*) _tmp15_;
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = tag_detach_many (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _tmp17_;
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp18_);
+#line 1536 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp16_);
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (tag_proxy);
+#line 13028 "Commands.c"
+ }
+#line 1533 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tag_proxy_it);
+#line 13032 "Commands.c"
+ }
+}
+
+
+static void add_tags_command_on_source_destroyed (AddTagsCommand* self, DataSource* source) {
+#line 1540 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_ADD_TAGS_COMMAND (self));
+#line 1540 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 13042 "Commands.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->map;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _sources_it = _tmp5_;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 13069 "Commands.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeArrayList* sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _sources_it;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp7_) {
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 13086 "Commands.c"
+ }
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _sources_it;
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ sources = (GeeArrayList*) _tmp9_;
+#line 1542 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = sources;
+#line 1542 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = source;
+#line 1542 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1542 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp12_) {
+#line 13102 "Commands.c"
+ CommandManager* _tmp13_ = NULL;
+ CommandManager* _tmp14_ = NULL;
+#line 1543 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 1543 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _tmp13_;
+#line 1543 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp14_);
+#line 1543 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp14_);
+#line 1545 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (sources);
+#line 1545 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_sources_it);
+#line 1545 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 13119 "Commands.c"
+ }
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (sources);
+#line 13123 "Commands.c"
+ }
+#line 1541 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_sources_it);
+#line 13127 "Commands.c"
+ }
+}
+
+
+static void add_tags_command_on_proxy_broken (AddTagsCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 1550 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_ADD_TAGS_COMMAND (self));
+#line 1551 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 1551 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 1551 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 1551 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 13145 "Commands.c"
+}
+
+
+static void add_tags_command_class_init (AddTagsCommandClass * klass) {
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ add_tags_command_parent_class = g_type_class_peek_parent (klass);
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (AddTagsCommandPrivate));
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = add_tags_command_real_execute;
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = add_tags_command_real_undo;
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = add_tags_command_finalize;
+#line 13160 "Commands.c"
+}
+
+
+static void add_tags_command_instance_init (AddTagsCommand * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = ADD_TAGS_COMMAND_GET_PRIVATE (self);
+#line 1482 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1482 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->map = _tmp0_;
+#line 13172 "Commands.c"
+}
+
+
+static void add_tags_command_finalize (GObject* obj) {
+ AddTagsCommand * self;
+ LibraryPhotoSourceCollection* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ VideoSourceCollection* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADD_TAGS_COMMAND, AddTagsCommand);
+#line 13184 "Commands.c"
+ {
+ GeeIterator* _tag_proxy_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->map;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tag_proxy_it = _tmp5_;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 13211 "Commands.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ SourceProxy* tag_proxy = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ SourceProxy* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tag_proxy_it;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp7_) {
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 13227 "Commands.c"
+ }
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tag_proxy_it;
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_proxy = (SourceProxy*) _tmp9_;
+#line 1521 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = tag_proxy;
+#line 1521 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp11_, NULL, FALSE);
+#line 1521 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _add_tags_command_on_proxy_broken_source_proxy_broken, self);
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (tag_proxy);
+#line 13243 "Commands.c"
+ }
+#line 1520 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tag_proxy_it);
+#line 13247 "Commands.c"
+ }
+#line 1523 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = library_photo_global;
+#line 1523 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp13_, NULL, FALSE);
+#line 1523 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _add_tags_command_on_source_destroyed_source_collection_item_destroyed, self);
+#line 1524 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = video_global;
+#line 1524 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp15_, NULL, FALSE);
+#line 1524 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _add_tags_command_on_source_destroyed_source_collection_item_destroyed, self);
+#line 1482 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->map);
+#line 1481 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (add_tags_command_parent_class)->finalize (obj);
+#line 13265 "Commands.c"
+}
+
+
+GType add_tags_command_get_type (void) {
+ static volatile gsize add_tags_command_type_id__volatile = 0;
+ if (g_once_init_enter (&add_tags_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AddTagsCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) add_tags_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AddTagsCommand), 0, (GInstanceInitFunc) add_tags_command_instance_init, NULL };
+ GType add_tags_command_type_id;
+ add_tags_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "AddTagsCommand", &g_define_type_info, 0);
+ g_once_init_leave (&add_tags_command_type_id__volatile, add_tags_command_type_id);
+ }
+ return add_tags_command_type_id__volatile;
+}
+
+
+RenameTagCommand* rename_tag_command_construct (GType object_type, Tag* tag, const gchar* new_name) {
+ RenameTagCommand * self = NULL;
+ Tag* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ Tag* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ Tag* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 1560 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 1560 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_name != NULL, NULL);
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = tag;
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag;
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_get_user_visible_name (_tmp1_);
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = new_name;
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = resources_rename_tag_label (_tmp3_, _tmp4_);
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = tag;
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_OBJECT, DataObject));
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_;
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RenameTagCommand*) simple_proxyable_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PROXYABLE, Proxyable), _tmp6_, _tmp9_);
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp9_);
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp6_);
+#line 1561 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp3_);
+#line 1564 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = tag;
+#line 1564 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = tag_get_user_visible_name (_tmp10_);
+#line 1564 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_name);
+#line 1564 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_name = _tmp11_;
+#line 1565 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = new_name;
+#line 1565 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 1565 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_name);
+#line 1565 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_name = _tmp13_;
+#line 1560 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 13347 "Commands.c"
+}
+
+
+RenameTagCommand* rename_tag_command_new (Tag* tag, const gchar* new_name) {
+#line 1560 "/home/jens/Source/shotwell/src/Commands.vala"
+ return rename_tag_command_construct (TYPE_RENAME_TAG_COMMAND, tag, new_name);
+#line 13354 "Commands.c"
+}
+
+
+static void rename_tag_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ RenameTagCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1568 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RENAME_TAG_COMMAND, RenameTagCommand);
+#line 1568 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1569 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1569 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_name;
+#line 1569 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_rename (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag), _tmp1_);
+#line 1569 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp2_) {
+#line 13375 "Commands.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1570 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->new_name;
+#line 1570 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = resources_rename_tag_exists_message (_tmp3_);
+#line 1570 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1570 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_error_message (_tmp5_, NULL);
+#line 1570 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp5_);
+#line 13389 "Commands.c"
+ }
+}
+
+
+static void rename_tag_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ RenameTagCommand * self;
+ DataSource* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1573 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RENAME_TAG_COMMAND, RenameTagCommand);
+#line 1573 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1574 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1574 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->old_name;
+#line 1574 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_rename (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag), _tmp1_);
+#line 1574 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp2_) {
+#line 13411 "Commands.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1575 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->old_name;
+#line 1575 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = resources_rename_tag_exists_message (_tmp3_);
+#line 1575 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1575 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_error_message (_tmp5_, NULL);
+#line 1575 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp5_);
+#line 13425 "Commands.c"
+ }
+}
+
+
+static void rename_tag_command_class_init (RenameTagCommandClass * klass) {
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ rename_tag_command_parent_class = g_type_class_peek_parent (klass);
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (RenameTagCommandPrivate));
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->execute_on_source = rename_tag_command_real_execute_on_source;
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->undo_on_source = rename_tag_command_real_undo_on_source;
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = rename_tag_command_finalize;
+#line 13441 "Commands.c"
+}
+
+
+static void rename_tag_command_instance_init (RenameTagCommand * self) {
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = RENAME_TAG_COMMAND_GET_PRIVATE (self);
+#line 13448 "Commands.c"
+}
+
+
+static void rename_tag_command_finalize (GObject* obj) {
+ RenameTagCommand * self;
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RENAME_TAG_COMMAND, RenameTagCommand);
+#line 1556 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_name);
+#line 1557 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_name);
+#line 1555 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (rename_tag_command_parent_class)->finalize (obj);
+#line 13462 "Commands.c"
+}
+
+
+GType rename_tag_command_get_type (void) {
+ static volatile gsize rename_tag_command_type_id__volatile = 0;
+ if (g_once_init_enter (&rename_tag_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RenameTagCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rename_tag_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RenameTagCommand), 0, (GInstanceInitFunc) rename_tag_command_instance_init, NULL };
+ GType rename_tag_command_type_id;
+ rename_tag_command_type_id = g_type_register_static (TYPE_SIMPLE_PROXYABLE_COMMAND, "RenameTagCommand", &g_define_type_info, 0);
+ g_once_init_leave (&rename_tag_command_type_id__volatile, rename_tag_command_type_id);
+ }
+ return rename_tag_command_type_id__volatile;
+}
+
+
+DeleteTagCommand* delete_tag_command_construct (GType object_type, Tag* tag) {
+ DeleteTagCommand * self = NULL;
+ Tag* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 1582 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = tag;
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag;
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_get_user_visible_name (_tmp1_);
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = resources_delete_tag_label (_tmp3_);
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = tag;
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_OBJECT, DataObject));
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (DeleteTagCommand*) simple_proxyable_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PROXYABLE, Proxyable), _tmp5_, _tmp8_);
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp8_);
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp5_);
+#line 1583 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp3_);
+#line 1582 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 13519 "Commands.c"
+}
+
+
+DeleteTagCommand* delete_tag_command_new (Tag* tag) {
+#line 1582 "/home/jens/Source/shotwell/src/Commands.vala"
+ return delete_tag_command_construct (TYPE_DELETE_TAG_COMMAND, tag);
+#line 13526 "Commands.c"
+}
+
+
+static void _delete_tag_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self) {
+#line 1597 "/home/jens/Source/shotwell/src/Commands.vala"
+ delete_tag_command_on_proxy_broken ((DeleteTagCommand*) self);
+#line 13533 "Commands.c"
+}
+
+
+static void delete_tag_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ DeleteTagCommand * self;
+ Tag* tag = NULL;
+ DataSource* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ GeeList* recursive_victims = NULL;
+ Tag* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ TagSourceCollection* _tmp29_ = NULL;
+ TagSourceCollection* _tmp30_ = NULL;
+ DataSource* _tmp31_ = NULL;
+ Marker* _tmp32_ = NULL;
+ Marker* _tmp33_ = NULL;
+#line 1586 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DELETE_TAG_COMMAND, DeleteTagCommand);
+#line 1586 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1587 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1587 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag));
+#line 1587 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = _tmp1_;
+#line 1590 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag;
+#line 1590 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = tag_get_hierarchical_children (_tmp2_);
+#line 1590 "/home/jens/Source/shotwell/src/Commands.vala"
+ recursive_victims = _tmp3_;
+#line 1591 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = recursive_victims;
+#line 1591 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1591 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 1591 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ > 0) {
+#line 13577 "Commands.c"
+ GeeArrayList* _tmp7_ = NULL;
+#line 1594 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_array_list_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL);
+#line 1594 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->recursive_victim_proxies);
+#line 1594 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->recursive_victim_proxies = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_LIST, GeeList);
+#line 13585 "Commands.c"
+ {
+ GeeList* _victim_list = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _victim_size = 0;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _victim_index = 0;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = recursive_victims;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _victim_list = _tmp9_;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _victim_list;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _tmp11_;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _victim_size = _tmp12_;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _victim_index = -1;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 13613 "Commands.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ Tag* victim = NULL;
+ GeeList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gpointer _tmp18_ = NULL;
+ SourceProxy* proxy = NULL;
+ Tag* _tmp19_ = NULL;
+ SourceProxy* _tmp20_ = NULL;
+ SourceProxy* _tmp21_ = NULL;
+ GeeList* _tmp22_ = NULL;
+ SourceProxy* _tmp23_ = NULL;
+ TagSourceCollection* _tmp24_ = NULL;
+ TagSourceCollection* _tmp25_ = NULL;
+ Tag* _tmp26_ = NULL;
+ Marker* _tmp27_ = NULL;
+ Marker* _tmp28_ = NULL;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _victim_index;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _victim_index = _tmp13_ + 1;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _victim_index;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _victim_size;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp14_ < _tmp15_)) {
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 13644 "Commands.c"
+ }
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _victim_list;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _victim_index;
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = gee_list_get (_tmp16_, _tmp17_);
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ victim = (Tag*) _tmp18_;
+#line 1596 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = victim;
+#line 1596 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_PROXYABLE, Proxyable));
+#line 1596 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = _tmp20_;
+#line 1597 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = proxy;
+#line 1597 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp21_, "broken", (GCallback) _delete_tag_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 1598 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = self->priv->recursive_victim_proxies;
+#line 1598 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = proxy;
+#line 1598 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), _tmp23_);
+#line 1600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = tag_global;
+#line 1600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = tag_global;
+#line 1600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = victim;
+#line 1600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_OBJECT, DataObject));
+#line 1600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = _tmp27_;
+#line 1600 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp28_, FALSE, NULL, NULL, NULL);
+#line 1600 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp28_);
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (victim);
+#line 13688 "Commands.c"
+ }
+#line 1595 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_victim_list);
+#line 13692 "Commands.c"
+ }
+ }
+#line 1605 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = tag_global;
+#line 1605 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = tag_global;
+#line 1605 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = source;
+#line 1605 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_OBJECT, DataObject));
+#line 1605 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = _tmp32_;
+#line 1605 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp33_, FALSE, NULL, NULL, NULL);
+#line 1605 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp33_);
+#line 1586 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (recursive_victims);
+#line 1586 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 13713 "Commands.c"
+}
+
+
+static void delete_tag_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ DeleteTagCommand * self;
+ DataSource* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 1608 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DELETE_TAG_COMMAND, DeleteTagCommand);
+#line 1608 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1611 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1611 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_TAG), "source is Tag");
+#line 1614 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->recursive_victim_proxies;
+#line 1614 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_ != NULL) {
+#line 13733 "Commands.c"
+ {
+ gint i = 0;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->recursive_victim_proxies;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp4_ - 1;
+#line 13747 "Commands.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = TRUE;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 13754 "Commands.c"
+ gint _tmp7_ = 0;
+ SourceProxy* proxy = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ DataSource* victim_source = NULL;
+ SourceProxy* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ DataSource* _tmp13_ = NULL;
+ SourceProxy* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp5_) {
+#line 13768 "Commands.c"
+ gint _tmp6_ = 0;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = i;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp6_ - 1;
+#line 13774 "Commands.c"
+ }
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = FALSE;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = i;
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp7_ >= 0)) {
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 13784 "Commands.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = self->priv->recursive_victim_proxies;
+#line 1616 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = i;
+#line 1616 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_list_get (_tmp8_, _tmp9_);
+#line 1616 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp10_;
+#line 1618 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = proxy;
+#line 1618 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = source_proxy_get_source (_tmp11_);
+#line 1618 "/home/jens/Source/shotwell/src/Commands.vala"
+ victim_source = _tmp12_;
+#line 1619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = victim_source;
+#line 1619 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_TAG), "victim_source is Tag");
+#line 1621 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = proxy;
+#line 1621 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp15_, NULL, FALSE);
+#line 1621 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp14_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _delete_tag_command_on_proxy_broken_source_proxy_broken, self);
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (victim_source);
+#line 1615 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 13814 "Commands.c"
+ }
+ }
+ }
+#line 1624 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->recursive_victim_proxies);
+#line 1624 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->recursive_victim_proxies = NULL;
+#line 13822 "Commands.c"
+ }
+}
+
+
+static void delete_tag_command_on_proxy_broken (DeleteTagCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 1628 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DELETE_TAG_COMMAND (self));
+#line 1629 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 1629 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 1629 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 1629 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 13840 "Commands.c"
+}
+
+
+static void delete_tag_command_class_init (DeleteTagCommandClass * klass) {
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ delete_tag_command_parent_class = g_type_class_peek_parent (klass);
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (DeleteTagCommandPrivate));
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->execute_on_source = delete_tag_command_real_execute_on_source;
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->undo_on_source = delete_tag_command_real_undo_on_source;
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = delete_tag_command_finalize;
+#line 13855 "Commands.c"
+}
+
+
+static void delete_tag_command_instance_init (DeleteTagCommand * self) {
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = DELETE_TAG_COMMAND_GET_PRIVATE (self);
+#line 1580 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->recursive_victim_proxies = NULL;
+#line 13864 "Commands.c"
+}
+
+
+static void delete_tag_command_finalize (GObject* obj) {
+ DeleteTagCommand * self;
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DELETE_TAG_COMMAND, DeleteTagCommand);
+#line 1580 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->recursive_victim_proxies);
+#line 1579 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (delete_tag_command_parent_class)->finalize (obj);
+#line 13876 "Commands.c"
+}
+
+
+GType delete_tag_command_get_type (void) {
+ static volatile gsize delete_tag_command_type_id__volatile = 0;
+ if (g_once_init_enter (&delete_tag_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DeleteTagCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) delete_tag_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DeleteTagCommand), 0, (GInstanceInitFunc) delete_tag_command_instance_init, NULL };
+ GType delete_tag_command_type_id;
+ delete_tag_command_type_id = g_type_register_static (TYPE_SIMPLE_PROXYABLE_COMMAND, "DeleteTagCommand", &g_define_type_info, 0);
+ g_once_init_leave (&delete_tag_command_type_id__volatile, delete_tag_command_type_id);
+ }
+ return delete_tag_command_type_id__volatile;
+}
+
+
+NewChildTagCommand* new_child_tag_command_construct (GType object_type, Tag* tag) {
+ NewChildTagCommand * self = NULL;
+ Tag* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 1636 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 1637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = tag;
+#line 1637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _ ("Create Tag");
+#line 1637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag;
+#line 1637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 1637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 1637 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (NewChildTagCommand*) simple_proxyable_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PROXYABLE, Proxyable), _tmp1_, _tmp4_);
+#line 1637 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp4_);
+#line 1636 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 13917 "Commands.c"
+}
+
+
+NewChildTagCommand* new_child_tag_command_new (Tag* tag) {
+#line 1636 "/home/jens/Source/shotwell/src/Commands.vala"
+ return new_child_tag_command_construct (TYPE_NEW_CHILD_TAG_COMMAND, tag);
+#line 13924 "Commands.c"
+}
+
+
+static void new_child_tag_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ NewChildTagCommand * self;
+ Tag* tag = NULL;
+ DataSource* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+#line 1640 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommand);
+#line 1640 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1641 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 1641 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag));
+#line 1641 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = _tmp1_;
+#line 1642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_create_new_child (tag);
+#line 1642 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->created_child);
+#line 1642 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->created_child = _tmp2_;
+#line 1640 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 13952 "Commands.c"
+}
+
+
+static void new_child_tag_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ NewChildTagCommand * self;
+ TagSourceCollection* _tmp0_ = NULL;
+ TagSourceCollection* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ Marker* _tmp3_ = NULL;
+ Marker* _tmp4_ = NULL;
+#line 1645 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommand);
+#line 1645 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1646 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = tag_global;
+#line 1646 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag_global;
+#line 1646 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->created_child;
+#line 1646 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 1646 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 1646 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp4_, TRUE, NULL, NULL, NULL);
+#line 1646 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp4_);
+#line 13981 "Commands.c"
+}
+
+
+Tag* new_child_tag_command_get_created_child (NewChildTagCommand* self) {
+ Tag* result = NULL;
+ Tag* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+#line 1649 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_NEW_CHILD_TAG_COMMAND (self), NULL);
+#line 1650 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->created_child;
+#line 1650 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "created_child != null");
+#line 1652 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->created_child;
+#line 1652 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1652 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = _tmp2_;
+#line 1652 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 14004 "Commands.c"
+}
+
+
+static void new_child_tag_command_class_init (NewChildTagCommandClass * klass) {
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_child_tag_command_parent_class = g_type_class_peek_parent (klass);
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (NewChildTagCommandPrivate));
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->execute_on_source = new_child_tag_command_real_execute_on_source;
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->undo_on_source = new_child_tag_command_real_undo_on_source;
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = new_child_tag_command_finalize;
+#line 14019 "Commands.c"
+}
+
+
+static void new_child_tag_command_instance_init (NewChildTagCommand * self) {
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = NEW_CHILD_TAG_COMMAND_GET_PRIVATE (self);
+#line 1634 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->created_child = NULL;
+#line 14028 "Commands.c"
+}
+
+
+static void new_child_tag_command_finalize (GObject* obj) {
+ NewChildTagCommand * self;
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommand);
+#line 1634 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->created_child);
+#line 1633 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (new_child_tag_command_parent_class)->finalize (obj);
+#line 14040 "Commands.c"
+}
+
+
+GType new_child_tag_command_get_type (void) {
+ static volatile gsize new_child_tag_command_type_id__volatile = 0;
+ if (g_once_init_enter (&new_child_tag_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NewChildTagCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) new_child_tag_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NewChildTagCommand), 0, (GInstanceInitFunc) new_child_tag_command_instance_init, NULL };
+ GType new_child_tag_command_type_id;
+ new_child_tag_command_type_id = g_type_register_static (TYPE_SIMPLE_PROXYABLE_COMMAND, "NewChildTagCommand", &g_define_type_info, 0);
+ g_once_init_leave (&new_child_tag_command_type_id__volatile, new_child_tag_command_type_id);
+ }
+ return new_child_tag_command_type_id__volatile;
+}
+
+
+NewRootTagCommand* new_root_tag_command_construct (GType object_type) {
+ NewRootTagCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 1660 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _ ("Create Tag");
+#line 1660 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (NewRootTagCommand*) page_command_construct (object_type, _tmp0_, "");
+#line 1659 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 14065 "Commands.c"
+}
+
+
+NewRootTagCommand* new_root_tag_command_new (void) {
+#line 1659 "/home/jens/Source/shotwell/src/Commands.vala"
+ return new_root_tag_command_construct (TYPE_NEW_ROOT_TAG_COMMAND);
+#line 14072 "Commands.c"
+}
+
+
+static void new_root_tag_command_real_execute (Command* base) {
+ NewRootTagCommand * self;
+ SourceProxy* _tmp0_ = NULL;
+#line 1663 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommand);
+#line 1664 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->created_proxy;
+#line 1664 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_ == NULL) {
+#line 14085 "Commands.c"
+ Tag* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ SourceProxy* _tmp3_ = NULL;
+#line 1665 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag_create_new_root ();
+#line 1665 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 1665 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PROXYABLE, Proxyable));
+#line 1665 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (self->priv->created_proxy);
+#line 1665 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->created_proxy = _tmp3_;
+#line 1665 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp2_);
+#line 14101 "Commands.c"
+ } else {
+ SourceProxy* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+#line 1667 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->created_proxy;
+#line 1667 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = source_proxy_get_source (_tmp4_);
+#line 1667 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 1667 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp6_);
+#line 14114 "Commands.c"
+ }
+}
+
+
+static void new_root_tag_command_real_undo (Command* base) {
+ NewRootTagCommand * self;
+ TagSourceCollection* _tmp0_ = NULL;
+ TagSourceCollection* _tmp1_ = NULL;
+ SourceProxy* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ Marker* _tmp5_ = NULL;
+ Marker* _tmp6_ = NULL;
+#line 1670 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommand);
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = tag_global;
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag_global;
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->created_proxy;
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = source_proxy_get_source (_tmp2_);
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_OBJECT, DataObject));
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp6_, TRUE, NULL, NULL, NULL);
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1671 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp4_);
+#line 14150 "Commands.c"
+}
+
+
+Tag* new_root_tag_command_get_created_tag (NewRootTagCommand* self) {
+ Tag* result = NULL;
+ SourceProxy* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+#line 1674 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_NEW_ROOT_TAG_COMMAND (self), NULL);
+#line 1675 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->created_proxy;
+#line 1675 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source_proxy_get_source (_tmp0_);
+#line 1675 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_TAG, Tag);
+#line 1675 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 14168 "Commands.c"
+}
+
+
+static void new_root_tag_command_class_init (NewRootTagCommandClass * klass) {
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_root_tag_command_parent_class = g_type_class_peek_parent (klass);
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (NewRootTagCommandPrivate));
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = new_root_tag_command_real_execute;
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = new_root_tag_command_real_undo;
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = new_root_tag_command_finalize;
+#line 14183 "Commands.c"
+}
+
+
+static void new_root_tag_command_instance_init (NewRootTagCommand * self) {
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = NEW_ROOT_TAG_COMMAND_GET_PRIVATE (self);
+#line 1657 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->created_proxy = NULL;
+#line 14192 "Commands.c"
+}
+
+
+static void new_root_tag_command_finalize (GObject* obj) {
+ NewRootTagCommand * self;
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommand);
+#line 1657 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (self->priv->created_proxy);
+#line 1656 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (new_root_tag_command_parent_class)->finalize (obj);
+#line 14204 "Commands.c"
+}
+
+
+GType new_root_tag_command_get_type (void) {
+ static volatile gsize new_root_tag_command_type_id__volatile = 0;
+ if (g_once_init_enter (&new_root_tag_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NewRootTagCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) new_root_tag_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NewRootTagCommand), 0, (GInstanceInitFunc) new_root_tag_command_instance_init, NULL };
+ GType new_root_tag_command_type_id;
+ new_root_tag_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "NewRootTagCommand", &g_define_type_info, 0);
+ g_once_init_leave (&new_root_tag_command_type_id__volatile, new_root_tag_command_type_id);
+ }
+ return new_root_tag_command_type_id__volatile;
+}
+
+
+static void _reparent_tag_command_on_items_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self) {
+#line 1724 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_on_items_destroyed ((ReparentTagCommand*) self, destroyed);
+#line 14223 "Commands.c"
+}
+
+
+ReparentTagCommand* reparent_tag_command_construct (GType object_type, Tag* tag, const gchar* new_parent_path) {
+ ReparentTagCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gboolean has_children = FALSE;
+ Tag* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gboolean _tmp13_ = FALSE;
+ gchar* basename = NULL;
+ Tag* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* new_to_path = NULL;
+ const gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ TagSourceCollection* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+ GeeHashSet* _tmp46_ = NULL;
+ Tag* _tmp47_ = NULL;
+ GeeCollection* _tmp48_ = NULL;
+ GeeCollection* _tmp49_ = NULL;
+ LibraryPhotoSourceCollection* _tmp50_ = NULL;
+ VideoSourceCollection* _tmp51_ = NULL;
+#line 1694 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 1694 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_parent_path != NULL, NULL);
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _ ("Move Tag \"%s\"");
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag;
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_get_user_visible_name (_tmp1_);
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = g_strdup_printf (_tmp0_, _tmp3_);
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (ReparentTagCommand*) page_command_construct (object_type, _tmp5_, "");
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp5_);
+#line 1695 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp3_);
+#line 1697 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = tag;
+#line 1697 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = tag_get_path (_tmp6_);
+#line 1697 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->from_path);
+#line 1697 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->from_path = _tmp7_;
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = tag;
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = tag_get_hierarchical_children (_tmp8_);
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _tmp11_;
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _tmp12_ > 0;
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1699 "/home/jens/Source/shotwell/src/Commands.vala"
+ has_children = _tmp13_;
+#line 1700 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = tag;
+#line 1700 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = tag_get_user_visible_name (_tmp14_);
+#line 1700 "/home/jens/Source/shotwell/src/Commands.vala"
+ basename = _tmp15_;
+#line 1702 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = new_parent_path;
+#line 1702 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (g_strcmp0 (_tmp16_, TAG_PATH_SEPARATOR_STRING) == 0) {
+#line 14317 "Commands.c"
+ gchar* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gchar* _tmp23_ = NULL;
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = has_children;
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp18_) {
+#line 14325 "Commands.c"
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = basename;
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp19_, NULL);
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp17_);
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp20_;
+#line 14336 "Commands.c"
+ } else {
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = basename;
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = g_strdup (_tmp21_);
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp17_);
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp22_;
+#line 14348 "Commands.c"
+ }
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = g_strdup (_tmp17_);
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path);
+#line 1703 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path = _tmp23_;
+#line 1702 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp17_);
+#line 14358 "Commands.c"
+ } else {
+ const gchar* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 1704 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = new_parent_path;
+#line 1704 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = g_str_has_prefix (_tmp24_, TAG_PATH_SEPARATOR_STRING);
+#line 1704 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp25_) {
+#line 14368 "Commands.c"
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = new_parent_path;
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = g_strconcat (_tmp26_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = _tmp27_;
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = basename;
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = g_strconcat (_tmp28_, _tmp29_, NULL);
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path);
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path = _tmp30_;
+#line 1705 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp28_);
+#line 14390 "Commands.c"
+ } else {
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = new_parent_path;
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp31_, NULL);
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = _tmp32_;
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = g_strconcat (_tmp33_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = _tmp34_;
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = basename;
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = g_strconcat (_tmp35_, _tmp36_, NULL);
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path);
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path = _tmp37_;
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp35_);
+#line 1707 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp33_);
+#line 14421 "Commands.c"
+ }
+ }
+#line 1710 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = self->priv->to_path;
+#line 1710 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = hierarchical_tag_utilities_get_root_path_form (_tmp38_);
+#line 1710 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_to_path = _tmp39_;
+#line 1711 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = new_to_path;
+#line 1711 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp40_ != NULL) {
+#line 14434 "Commands.c"
+ const gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+#line 1712 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = new_to_path;
+#line 1712 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = g_strdup (_tmp41_);
+#line 1712 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path);
+#line 1712 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path = _tmp42_;
+#line 14445 "Commands.c"
+ }
+#line 1714 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = tag_global;
+#line 1714 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = self->priv->to_path;
+#line 1714 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = tag_source_collection_exists (_tmp43_, _tmp44_, FALSE);
+#line 1714 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp45_) {
+#line 1715 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path_exists = TRUE;
+#line 14457 "Commands.c"
+ }
+#line 1717 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = self->priv->sources_in_play;
+#line 1717 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = tag;
+#line 1717 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = tag_get_sources (_tmp47_);
+#line 1717 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = _tmp48_;
+#line 1717 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GEE_TYPE_COLLECTION, GeeCollection), _tmp49_);
+#line 1717 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp49_);
+#line 1719 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = library_photo_global;
+#line 1719 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_SOURCE_COLLECTION, SourceCollection), "items-destroyed", (GCallback) _reparent_tag_command_on_items_destroyed_source_collection_items_destroyed, self, 0);
+#line 1720 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = video_global;
+#line 1720 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_SOURCE_COLLECTION, SourceCollection), "items-destroyed", (GCallback) _reparent_tag_command_on_items_destroyed_source_collection_items_destroyed, self, 0);
+#line 1694 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (new_to_path);
+#line 1694 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (basename);
+#line 1694 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 14485 "Commands.c"
+}
+
+
+ReparentTagCommand* reparent_tag_command_new (Tag* tag, const gchar* new_parent_path) {
+#line 1694 "/home/jens/Source/shotwell/src/Commands.vala"
+ return reparent_tag_command_construct (TYPE_REPARENT_TAG_COMMAND, tag, new_parent_path);
+#line 14492 "Commands.c"
+}
+
+
+static void reparent_tag_command_on_items_destroyed (ReparentTagCommand* self, GeeCollection* destroyed) {
+#line 1728 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1728 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (destroyed));
+#line 14501 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = destroyed;
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 14514 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 14531 "Commands.c"
+ }
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 1730 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->sources_in_play;
+#line 1730 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = source;
+#line 1730 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1730 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp8_) {
+#line 14547 "Commands.c"
+ CommandManager* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+#line 1731 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 1731 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 1731 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp10_);
+#line 1731 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp10_);
+#line 14558 "Commands.c"
+ }
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 14562 "Commands.c"
+ }
+#line 1729 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 14566 "Commands.c"
+ }
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 14580 "Commands.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 14611 "Commands.c"
+ goto __catch449_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 14620 "Commands.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 14636 "Commands.c"
+ goto __catch449_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 14647 "Commands.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 14661 "Commands.c"
+ }
+ goto __finally449;
+ __catch449_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 14675 "Commands.c"
+ }
+ __finally449:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 14686 "Commands.c"
+ }
+}
+
+
+static GeeMap* reparent_tag_command_get_child_structure_at (ReparentTagCommand* self, const gchar* client_path) {
+ GeeMap* result = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GeeMap* _result_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ TagSourceCollection* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ Tag* tag = NULL;
+ const gchar* _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+ gchar* path_prefix = NULL;
+ Tag* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 1735 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_REPARENT_TAG_COMMAND (self), NULL);
+#line 1735 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (client_path != NULL, NULL);
+#line 1736 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = client_path;
+#line 1736 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = hierarchical_tag_utilities_get_root_path_form (_tmp0_);
+#line 1736 "/home/jens/Source/shotwell/src/Commands.vala"
+ path = _tmp1_;
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = path;
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_ != NULL) {
+#line 14727 "Commands.c"
+ const gchar* _tmp4_ = NULL;
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = path;
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp4_;
+#line 14733 "Commands.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = client_path;
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp5_;
+#line 14740 "Commands.c"
+ }
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = g_strdup (_tmp2_);
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 1737 "/home/jens/Source/shotwell/src/Commands.vala"
+ path = _tmp6_;
+#line 1739 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_SET, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1739 "/home/jens/Source/shotwell/src/Commands.vala"
+ _result_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_MAP, GeeMap);
+#line 1742 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = tag_global;
+#line 1742 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = path;
+#line 1742 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = tag_source_collection_exists (_tmp8_, _tmp9_, FALSE);
+#line 1742 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp10_) {
+#line 1743 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = _result_;
+#line 1743 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 1743 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 14766 "Commands.c"
+ }
+#line 1745 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = path;
+#line 1745 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = tag_for_path (_tmp11_);
+#line 1745 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = _tmp12_;
+#line 1747 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = tag;
+#line 1747 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = tag_get_path (_tmp13_);
+#line 1747 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tmp14_;
+#line 1747 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = g_strconcat (_tmp15_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 1747 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 1747 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp15_);
+#line 1747 "/home/jens/Source/shotwell/src/Commands.vala"
+ path_prefix = _tmp17_;
+#line 14788 "Commands.c"
+ {
+ GeeList* _t_list = NULL;
+ Tag* _tmp18_ = NULL;
+ GeeList* _tmp19_ = NULL;
+ gint _t_size = 0;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _t_index = 0;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = tag;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = tag_get_hierarchical_children (_tmp18_);
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_list = _tmp19_;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _t_list;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _tmp21_;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_size = _tmp22_;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_index = -1;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 14816 "Commands.c"
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ Tag* t = NULL;
+ GeeList* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gpointer _tmp28_ = NULL;
+ gchar* child_subpath = NULL;
+ Tag* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ GeeMap* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ GeeHashSet* _tmp37_ = NULL;
+ GeeHashSet* _tmp38_ = NULL;
+ GeeMap* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gpointer _tmp41_ = NULL;
+ GeeSet* _tmp42_ = NULL;
+ Tag* _tmp43_ = NULL;
+ GeeCollection* _tmp44_ = NULL;
+ GeeCollection* _tmp45_ = NULL;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _t_index;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_index = _tmp23_ + 1;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _t_index;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _t_size;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp24_ < _tmp25_)) {
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 14854 "Commands.c"
+ }
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _t_list;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = _t_index;
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = gee_list_get (_tmp26_, _tmp27_);
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ t = (Tag*) _tmp28_;
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = t;
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = tag_get_path (_tmp29_);
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = _tmp30_;
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = path_prefix;
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = string_replace (_tmp31_, _tmp32_, "");
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = _tmp33_;
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp31_);
+#line 1749 "/home/jens/Source/shotwell/src/Commands.vala"
+ child_subpath = _tmp34_;
+#line 1751 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = _result_;
+#line 1751 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = child_subpath;
+#line 1751 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1751 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = _tmp37_;
+#line 1751 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_map_set (_tmp35_, _tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_SET, GeeSet));
+#line 1751 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp38_);
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = _result_;
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = child_subpath;
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = gee_map_get (_tmp39_, _tmp40_);
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = (GeeSet*) _tmp41_;
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = t;
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = tag_get_sources (_tmp43_);
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = _tmp44_;
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_COLLECTION, GeeCollection), _tmp45_);
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp45_);
+#line 1752 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp42_);
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (child_subpath);
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (t);
+#line 14916 "Commands.c"
+ }
+#line 1748 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_t_list);
+#line 14920 "Commands.c"
+ }
+#line 1755 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = _result_;
+#line 1755 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path_prefix);
+#line 1755 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 1755 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 1755 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 14932 "Commands.c"
+}
+
+
+static void reparent_tag_command_restore_child_attachments_at (ReparentTagCommand* self, const gchar* client_path, GeeMap* child_structure) {
+ gchar* new_path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* path = NULL;
+ gchar* _tmp6_ = NULL;
+ TagSourceCollection* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ Tag* tag = NULL;
+ const gchar* _tmp10_ = NULL;
+ Tag* _tmp11_ = NULL;
+#line 1758 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1758 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (client_path != NULL);
+#line 1758 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_MAP (child_structure));
+#line 1761 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = client_path;
+#line 1761 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = hierarchical_tag_utilities_get_root_path_form (_tmp0_);
+#line 1761 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_path = _tmp1_;
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = new_path;
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_ != NULL) {
+#line 14966 "Commands.c"
+ const gchar* _tmp4_ = NULL;
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = new_path;
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp4_;
+#line 14972 "Commands.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = client_path;
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp5_;
+#line 14979 "Commands.c"
+ }
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = g_strdup (_tmp2_);
+#line 1762 "/home/jens/Source/shotwell/src/Commands.vala"
+ path = _tmp6_;
+#line 1764 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = tag_global;
+#line 1764 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = path;
+#line 1764 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = tag_source_collection_exists (_tmp7_, _tmp8_, FALSE);
+#line 1764 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp9_, "Tag.global.exists(path)");
+#line 1765 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = path;
+#line 1765 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = tag_for_path (_tmp10_);
+#line 1765 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = _tmp11_;
+#line 14999 "Commands.c"
+ {
+ GeeIterator* _child_subpath_it = NULL;
+ GeeMap* _tmp12_ = NULL;
+ GeeSet* _tmp13_ = NULL;
+ GeeSet* _tmp14_ = NULL;
+ GeeSet* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ GeeIterator* _tmp17_ = NULL;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = child_structure;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_map_get_keys (_tmp12_);
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _tmp13_;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tmp14_;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp15_);
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _child_subpath_it = _tmp17_;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 15026 "Commands.c"
+ GeeIterator* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gchar* child_subpath = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ gchar* child_path = NULL;
+ Tag* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ Tag* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ gboolean _tmp34_ = FALSE;
+ TagSourceCollection* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _child_subpath_it;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = gee_iterator_next (_tmp18_);
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp19_) {
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 15057 "Commands.c"
+ }
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _child_subpath_it;
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = gee_iterator_get (_tmp20_);
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ child_subpath = (gchar*) _tmp21_;
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = tag;
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = tag_get_path (_tmp22_);
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _tmp23_;
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = g_strconcat (_tmp24_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _tmp25_;
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = child_subpath;
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = g_strconcat (_tmp26_, _tmp27_, NULL);
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = _tmp28_;
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp26_);
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp24_);
+#line 1768 "/home/jens/Source/shotwell/src/Commands.vala"
+ child_path = _tmp29_;
+#line 1770 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = tag;
+#line 1770 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = tag_get_path (_tmp30_);
+#line 1770 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = _tmp31_;
+#line 1770 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = g_str_has_prefix (_tmp32_, TAG_PATH_SEPARATOR_STRING);
+#line 1770 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = !_tmp33_;
+#line 1770 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp32_);
+#line 1770 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp34_) {
+#line 15101 "Commands.c"
+ Tag* _tmp35_ = NULL;
+ Tag* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+#line 1771 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = tag;
+#line 1771 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_promote (_tmp35_);
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = tag;
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = tag_get_path (_tmp36_);
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = _tmp37_;
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = g_strconcat (_tmp38_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = _tmp39_;
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = child_subpath;
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = g_strconcat (_tmp40_, _tmp41_, NULL);
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (child_path);
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ child_path = _tmp42_;
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp40_);
+#line 1772 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp38_);
+#line 15136 "Commands.c"
+ }
+#line 1775 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = tag_global;
+#line 1775 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = child_path;
+#line 1775 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = tag_source_collection_exists (_tmp43_, _tmp44_, FALSE);
+#line 1775 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp45_, "Tag.global.exists(child_path)");
+#line 15146 "Commands.c"
+ {
+ GeeIterator* _s_it = NULL;
+ GeeMap* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ gpointer _tmp48_ = NULL;
+ GeeSet* _tmp49_ = NULL;
+ GeeIterator* _tmp50_ = NULL;
+ GeeIterator* _tmp51_ = NULL;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = child_structure;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = child_subpath;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = gee_map_get (_tmp46_, _tmp47_);
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = (GeeSet*) _tmp48_;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = _tmp50_;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp49_);
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _s_it = _tmp51_;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 15173 "Commands.c"
+ GeeIterator* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+ MediaSource* s = NULL;
+ GeeIterator* _tmp54_ = NULL;
+ gpointer _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ Tag* _tmp57_ = NULL;
+ Tag* _tmp58_ = NULL;
+ MediaSource* _tmp59_ = NULL;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = _s_it;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = gee_iterator_next (_tmp52_);
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp53_) {
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 15191 "Commands.c"
+ }
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp54_ = _s_it;
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp55_ = gee_iterator_get (_tmp54_);
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ s = (MediaSource*) _tmp55_;
+#line 1778 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp56_ = child_path;
+#line 1778 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp57_ = tag_for_path (_tmp56_);
+#line 1778 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp58_ = _tmp57_;
+#line 1778 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp59_ = s;
+#line 1778 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp58_, _tmp59_);
+#line 1778 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp58_);
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (s);
+#line 15213 "Commands.c"
+ }
+#line 1777 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_s_it);
+#line 15217 "Commands.c"
+ }
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (child_path);
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (child_subpath);
+#line 15223 "Commands.c"
+ }
+#line 1767 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_child_subpath_it);
+#line 15227 "Commands.c"
+ }
+#line 1758 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 1758 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 1758 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (new_path);
+#line 15235 "Commands.c"
+}
+
+
+static void reparent_tag_command_reattach_in_play_sources_at (ReparentTagCommand* self, const gchar* client_path) {
+ gchar* new_path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* path = NULL;
+ gchar* _tmp6_ = NULL;
+ TagSourceCollection* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ Tag* tag = NULL;
+ const gchar* _tmp10_ = NULL;
+ Tag* _tmp11_ = NULL;
+#line 1782 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1782 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (client_path != NULL);
+#line 1783 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = client_path;
+#line 1783 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = hierarchical_tag_utilities_get_root_path_form (_tmp0_);
+#line 1783 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_path = _tmp1_;
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = new_path;
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_ != NULL) {
+#line 15267 "Commands.c"
+ const gchar* _tmp4_ = NULL;
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = new_path;
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp4_;
+#line 15273 "Commands.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = client_path;
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp5_;
+#line 15280 "Commands.c"
+ }
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = g_strdup (_tmp2_);
+#line 1784 "/home/jens/Source/shotwell/src/Commands.vala"
+ path = _tmp6_;
+#line 1786 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = tag_global;
+#line 1786 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = path;
+#line 1786 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = tag_source_collection_exists (_tmp7_, _tmp8_, FALSE);
+#line 1786 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp9_, "Tag.global.exists(path)");
+#line 1788 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = path;
+#line 1788 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = tag_for_path (_tmp10_);
+#line 1788 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = _tmp11_;
+#line 15300 "Commands.c"
+ {
+ GeeIterator* _s_it = NULL;
+ GeeHashSet* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = self->priv->sources_in_play;
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _s_it = _tmp13_;
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 15313 "Commands.c"
+ GeeIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ MediaSource* s = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ Tag* _tmp18_ = NULL;
+ MediaSource* _tmp19_ = NULL;
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _s_it;
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_iterator_next (_tmp14_);
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp15_) {
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 15329 "Commands.c"
+ }
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _s_it;
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = gee_iterator_get (_tmp16_);
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ s = (MediaSource*) _tmp17_;
+#line 1791 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = tag;
+#line 1791 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = s;
+#line 1791 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp18_, _tmp19_);
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (s);
+#line 15345 "Commands.c"
+ }
+#line 1790 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_s_it);
+#line 15349 "Commands.c"
+ }
+#line 1782 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 1782 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 1782 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (new_path);
+#line 15357 "Commands.c"
+}
+
+
+static void reparent_tag_command_save_before_state (ReparentTagCommand* self) {
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeMap* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GeeMap* _tmp6_ = NULL;
+ TagSourceCollection* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ Tag* from_tag = NULL;
+ const gchar* _tmp10_ = NULL;
+ Tag* _tmp11_ = NULL;
+ GeeList* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ SourceProxy* _tmp14_ = NULL;
+ SourceProxy* _tmp15_ = NULL;
+ GeeList* parent_paths = NULL;
+ const gchar* _tmp16_ = NULL;
+ GeeList* _tmp17_ = NULL;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ const gchar* _tmp26_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ GeeList* from_children = NULL;
+ Tag* _tmp66_ = NULL;
+ GeeList* _tmp67_ = NULL;
+ const gchar* _tmp81_ = NULL;
+ const gchar* _tmp100_ = NULL;
+#line 1794 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1795 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->src_before_state;
+#line 1795 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ == NULL, "src_before_state == null");
+#line 1796 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->dest_before_state;
+#line 1796 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp1_ == NULL, "dest_before_state == null");
+#line 1798 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_array_list_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL);
+#line 1798 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->src_before_state);
+#line 1798 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->src_before_state = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_LIST, GeeList);
+#line 1799 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_array_list_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL);
+#line 1799 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->dest_before_state);
+#line 1799 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->dest_before_state = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_LIST, GeeList);
+#line 1802 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->in_play_child_structure;
+#line 1802 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp4_ == NULL, "in_play_child_structure == null");
+#line 1803 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->from_path;
+#line 1803 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = reparent_tag_command_get_child_structure_at (self, _tmp5_);
+#line 1803 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->in_play_child_structure);
+#line 1803 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->in_play_child_structure = _tmp6_;
+#line 1806 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = tag_global;
+#line 1806 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = self->priv->from_path;
+#line 1806 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = tag_source_collection_exists (_tmp7_, _tmp8_, FALSE);
+#line 1806 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp9_, "Tag.global.exists(from_path)");
+#line 1807 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->from_path;
+#line 1807 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = tag_for_path (_tmp10_);
+#line 1807 "/home/jens/Source/shotwell/src/Commands.vala"
+ from_tag = _tmp11_;
+#line 1808 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = self->priv->src_before_state;
+#line 1808 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = from_tag;
+#line 1808 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PROXYABLE, Proxyable));
+#line 1808 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tmp14_;
+#line 1808 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 1808 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp15_);
+#line 1811 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = self->priv->to_path;
+#line 1811 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp16_);
+#line 1811 "/home/jens/Source/shotwell/src/Commands.vala"
+ parent_paths = _tmp17_;
+#line 1812 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = parent_paths;
+#line 1812 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1812 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _tmp19_;
+#line 1812 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp20_ > 0) {
+#line 15468 "Commands.c"
+ GeeList* _tmp21_ = NULL;
+ GeeList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gpointer _tmp25_ = NULL;
+#line 1813 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = parent_paths;
+#line 1813 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = parent_paths;
+#line 1813 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1813 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _tmp23_;
+#line 1813 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = gee_list_get (_tmp21_, _tmp24_ - 1);
+#line 1813 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path_parent_path);
+#line 1813 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path_parent_path = (gchar*) _tmp25_;
+#line 15488 "Commands.c"
+ }
+#line 1814 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = self->priv->to_path_parent_path;
+#line 1814 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp26_ != NULL) {
+#line 15494 "Commands.c"
+ GeeMap* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GeeMap* _tmp29_ = NULL;
+#line 1815 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = self->priv->existing_dest_child_structure;
+#line 1815 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp27_ == NULL, "existing_dest_child_structure == null");
+#line 1816 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = self->priv->to_path_parent_path;
+#line 1816 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = reparent_tag_command_get_child_structure_at (self, _tmp28_);
+#line 1816 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->existing_dest_child_structure);
+#line 1816 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->existing_dest_child_structure = _tmp29_;
+#line 15510 "Commands.c"
+ }
+#line 1820 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = self->priv->to_path_parent_path;
+#line 1820 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp30_ == NULL) {
+#line 15516 "Commands.c"
+ GeeMap* _tmp31_ = NULL;
+ GeeSet* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ GeeMap* _tmp34_ = NULL;
+ GeeHashSet* _tmp35_ = NULL;
+ GeeSet* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ Tag* _tmp38_ = NULL;
+ Tag* _tmp39_ = NULL;
+ GeeCollection* _tmp40_ = NULL;
+ GeeCollection* _tmp41_ = NULL;
+#line 1821 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = self->priv->existing_dest_child_structure;
+#line 1821 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp31_ == NULL, "existing_dest_child_structure == null");
+#line 1822 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = self->priv->existing_dest_membership;
+#line 1822 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp32_ == NULL, "existing_dest_membership == null");
+#line 1823 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = self->priv->to_path;
+#line 1823 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = reparent_tag_command_get_child_structure_at (self, _tmp33_);
+#line 1823 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->existing_dest_child_structure);
+#line 1823 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->existing_dest_child_structure = _tmp34_;
+#line 1824 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1824 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->existing_dest_membership);
+#line 1824 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->existing_dest_membership = G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_SET, GeeSet);
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = self->priv->existing_dest_membership;
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = self->priv->to_path;
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = tag_for_path (_tmp37_);
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = _tmp38_;
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = tag_get_sources (_tmp39_);
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = _tmp40_;
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection), _tmp41_);
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp41_);
+#line 1825 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp39_);
+#line 15568 "Commands.c"
+ }
+#line 1829 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = self->priv->to_path_parent_path;
+#line 1829 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp42_ != NULL) {
+#line 15574 "Commands.c"
+ gchar* new_tpp = NULL;
+ const gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ gchar* _tmp49_ = NULL;
+ TagSourceCollection* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ gboolean _tmp52_ = FALSE;
+ GeeList* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ Tag* _tmp55_ = NULL;
+ Tag* _tmp56_ = NULL;
+ SourceProxy* _tmp57_ = NULL;
+ SourceProxy* _tmp58_ = NULL;
+#line 1830 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = self->priv->to_path_parent_path;
+#line 1830 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = hierarchical_tag_utilities_get_root_path_form (_tmp43_);
+#line 1830 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_tpp = _tmp44_;
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = new_tpp;
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp46_ != NULL) {
+#line 15600 "Commands.c"
+ const gchar* _tmp47_ = NULL;
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = new_tpp;
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = _tmp47_;
+#line 15606 "Commands.c"
+ } else {
+ const gchar* _tmp48_ = NULL;
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = self->priv->to_path_parent_path;
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = _tmp48_;
+#line 15613 "Commands.c"
+ }
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = g_strdup (_tmp45_);
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path_parent_path);
+#line 1831 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path_parent_path = _tmp49_;
+#line 1832 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = tag_global;
+#line 1832 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = self->priv->to_path_parent_path;
+#line 1832 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = tag_source_collection_exists (_tmp50_, _tmp51_, FALSE);
+#line 1832 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp52_, "Tag.global.exists(to_path_parent_path)");
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = self->priv->dest_before_state;
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp54_ = self->priv->to_path_parent_path;
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp55_ = tag_for_path (_tmp54_);
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp56_ = _tmp55_;
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp57_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_PROXYABLE, Proxyable));
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp58_ = _tmp57_;
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection), _tmp58_);
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp58_);
+#line 1833 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp56_);
+#line 1829 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (new_tpp);
+#line 15649 "Commands.c"
+ }
+#line 1837 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp59_ = self->priv->to_path_parent_path;
+#line 1837 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp59_ == NULL) {
+#line 15655 "Commands.c"
+ GeeList* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ Tag* _tmp62_ = NULL;
+ Tag* _tmp63_ = NULL;
+ SourceProxy* _tmp64_ = NULL;
+ SourceProxy* _tmp65_ = NULL;
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp60_ = self->priv->dest_before_state;
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp61_ = self->priv->to_path;
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp62_ = tag_for_path (_tmp61_);
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp63_ = _tmp62_;
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp64_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, TYPE_PROXYABLE, Proxyable));
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp65_ = _tmp64_;
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, GEE_TYPE_COLLECTION, GeeCollection), _tmp65_);
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp65_);
+#line 1838 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp63_);
+#line 15680 "Commands.c"
+ }
+#line 1842 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp66_ = from_tag;
+#line 1842 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp67_ = tag_get_hierarchical_children (_tmp66_);
+#line 1842 "/home/jens/Source/shotwell/src/Commands.vala"
+ from_children = _tmp67_;
+#line 15688 "Commands.c"
+ {
+ gint i = 0;
+ GeeList* _tmp68_ = NULL;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp68_ = from_children;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp69_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp70_ = _tmp69_;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp70_ - 1;
+#line 15702 "Commands.c"
+ {
+ gboolean _tmp71_ = FALSE;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp71_ = TRUE;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 15709 "Commands.c"
+ gint _tmp73_ = 0;
+ GeeList* _tmp74_ = NULL;
+ GeeList* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ gpointer _tmp77_ = NULL;
+ Tag* _tmp78_ = NULL;
+ SourceProxy* _tmp79_ = NULL;
+ SourceProxy* _tmp80_ = NULL;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp71_) {
+#line 15720 "Commands.c"
+ gint _tmp72_ = 0;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp72_ = i;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp72_ - 1;
+#line 15726 "Commands.c"
+ }
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp71_ = FALSE;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp73_ = i;
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp73_ >= 0)) {
+#line 1843 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 15736 "Commands.c"
+ }
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp74_ = self->priv->src_before_state;
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp75_ = from_children;
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp76_ = i;
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp77_ = gee_list_get (_tmp75_, _tmp76_);
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp78_ = (Tag*) _tmp77_;
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp79_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, TYPE_PROXYABLE, Proxyable));
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp80_ = _tmp79_;
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, GEE_TYPE_COLLECTION, GeeCollection), _tmp80_);
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp80_);
+#line 1844 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp78_);
+#line 15758 "Commands.c"
+ }
+ }
+ }
+#line 1848 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp81_ = self->priv->to_path_parent_path;
+#line 1848 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp81_ != NULL) {
+#line 15766 "Commands.c"
+ GeeList* to_children = NULL;
+ const gchar* _tmp82_ = NULL;
+ Tag* _tmp83_ = NULL;
+ Tag* _tmp84_ = NULL;
+ GeeList* _tmp85_ = NULL;
+ GeeList* _tmp86_ = NULL;
+#line 1849 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp82_ = self->priv->to_path_parent_path;
+#line 1849 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp83_ = tag_for_path (_tmp82_);
+#line 1849 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp84_ = _tmp83_;
+#line 1849 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp85_ = tag_get_hierarchical_children (_tmp84_);
+#line 1849 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp86_ = _tmp85_;
+#line 1849 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp84_);
+#line 1849 "/home/jens/Source/shotwell/src/Commands.vala"
+ to_children = _tmp86_;
+#line 15787 "Commands.c"
+ {
+ gint i = 0;
+ GeeList* _tmp87_ = NULL;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp87_ = to_children;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp88_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp89_ = _tmp88_;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp89_ - 1;
+#line 15801 "Commands.c"
+ {
+ gboolean _tmp90_ = FALSE;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp90_ = TRUE;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 15808 "Commands.c"
+ gint _tmp92_ = 0;
+ GeeList* _tmp93_ = NULL;
+ GeeList* _tmp94_ = NULL;
+ gint _tmp95_ = 0;
+ gpointer _tmp96_ = NULL;
+ Tag* _tmp97_ = NULL;
+ SourceProxy* _tmp98_ = NULL;
+ SourceProxy* _tmp99_ = NULL;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp90_) {
+#line 15819 "Commands.c"
+ gint _tmp91_ = 0;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp91_ = i;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp91_ - 1;
+#line 15825 "Commands.c"
+ }
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp90_ = FALSE;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp92_ = i;
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp92_ >= 0)) {
+#line 1850 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 15835 "Commands.c"
+ }
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp93_ = self->priv->dest_before_state;
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp94_ = to_children;
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp95_ = i;
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp96_ = gee_list_get (_tmp94_, _tmp95_);
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp97_ = (Tag*) _tmp96_;
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp98_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp97_, TYPE_PROXYABLE, Proxyable));
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp99_ = _tmp98_;
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, GEE_TYPE_COLLECTION, GeeCollection), _tmp99_);
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp99_);
+#line 1851 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp97_);
+#line 15857 "Commands.c"
+ }
+ }
+ }
+#line 1848 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (to_children);
+#line 15863 "Commands.c"
+ }
+#line 1856 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp100_ = self->priv->to_path_parent_path;
+#line 1856 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp100_ == NULL) {
+#line 15869 "Commands.c"
+ GeeList* to_children = NULL;
+ const gchar* _tmp101_ = NULL;
+ Tag* _tmp102_ = NULL;
+ Tag* _tmp103_ = NULL;
+ GeeList* _tmp104_ = NULL;
+ GeeList* _tmp105_ = NULL;
+#line 1857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp101_ = self->priv->to_path;
+#line 1857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp102_ = tag_for_path (_tmp101_);
+#line 1857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp103_ = _tmp102_;
+#line 1857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp104_ = tag_get_hierarchical_children (_tmp103_);
+#line 1857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp105_ = _tmp104_;
+#line 1857 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp103_);
+#line 1857 "/home/jens/Source/shotwell/src/Commands.vala"
+ to_children = _tmp105_;
+#line 15890 "Commands.c"
+ {
+ gint i = 0;
+ GeeList* _tmp106_ = NULL;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp106_ = to_children;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp107_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp106_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp108_ = _tmp107_;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp108_ - 1;
+#line 15904 "Commands.c"
+ {
+ gboolean _tmp109_ = FALSE;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp109_ = TRUE;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 15911 "Commands.c"
+ gint _tmp111_ = 0;
+ GeeList* _tmp112_ = NULL;
+ GeeList* _tmp113_ = NULL;
+ gint _tmp114_ = 0;
+ gpointer _tmp115_ = NULL;
+ Tag* _tmp116_ = NULL;
+ SourceProxy* _tmp117_ = NULL;
+ SourceProxy* _tmp118_ = NULL;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp109_) {
+#line 15922 "Commands.c"
+ gint _tmp110_ = 0;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp110_ = i;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp110_ - 1;
+#line 15928 "Commands.c"
+ }
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp109_ = FALSE;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp111_ = i;
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp111_ >= 0)) {
+#line 1858 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 15938 "Commands.c"
+ }
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp112_ = self->priv->dest_before_state;
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp113_ = to_children;
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp114_ = i;
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp115_ = gee_list_get (_tmp113_, _tmp114_);
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp116_ = (Tag*) _tmp115_;
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp117_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp116_, TYPE_PROXYABLE, Proxyable));
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp118_ = _tmp117_;
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp112_, GEE_TYPE_COLLECTION, GeeCollection), _tmp118_);
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp118_);
+#line 1859 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp116_);
+#line 15960 "Commands.c"
+ }
+ }
+ }
+#line 1856 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (to_children);
+#line 15966 "Commands.c"
+ }
+#line 1794 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (from_children);
+#line 1794 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (parent_paths);
+#line 1794 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (from_tag);
+#line 15974 "Commands.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 15997 "Commands.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 16005 "Commands.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 16017 "Commands.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 16041 "Commands.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 16047 "Commands.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 16051 "Commands.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 16055 "Commands.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 16067 "Commands.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 16077 "Commands.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 16083 "Commands.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 16097 "Commands.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 16107 "Commands.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 16113 "Commands.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 16122 "Commands.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 16142 "Commands.c"
+}
+
+
+static void reparent_tag_command_restore_before_state (ReparentTagCommand* self) {
+ GeeList* _tmp0_ = NULL;
+ GeeMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* unwind_target = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp93_ = NULL;
+#line 1863 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1864 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->src_before_state;
+#line 1864 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "src_before_state != null");
+#line 1865 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->existing_dest_child_structure;
+#line 1865 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp1_ != NULL, "existing_dest_child_structure != null");
+#line 1868 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->to_path_parent_path;
+#line 1868 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ != NULL) {
+#line 16169 "Commands.c"
+ gchar* new_tpp = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1869 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->to_path_parent_path;
+#line 1869 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = hierarchical_tag_utilities_get_root_path_form (_tmp3_);
+#line 1869 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_tpp = _tmp4_;
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = new_tpp;
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ != NULL) {
+#line 16186 "Commands.c"
+ const gchar* _tmp7_ = NULL;
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = new_tpp;
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp7_;
+#line 16192 "Commands.c"
+ } else {
+ const gchar* _tmp8_ = NULL;
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = self->priv->to_path_parent_path;
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp8_;
+#line 16199 "Commands.c"
+ }
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = g_strdup (_tmp5_);
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path_parent_path);
+#line 1870 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path_parent_path = _tmp9_;
+#line 1868 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (new_tpp);
+#line 16209 "Commands.c"
+ }
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = self->priv->to_path_parent_path;
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp11_ != NULL) {
+#line 16215 "Commands.c"
+ const gchar* _tmp12_ = NULL;
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = self->priv->to_path_parent_path;
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp12_;
+#line 16221 "Commands.c"
+ } else {
+ const gchar* _tmp13_ = NULL;
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = self->priv->to_path;
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp13_;
+#line 16228 "Commands.c"
+ }
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = g_strdup (_tmp10_);
+#line 1873 "/home/jens/Source/shotwell/src/Commands.vala"
+ unwind_target = _tmp14_;
+#line 16234 "Commands.c"
+ {
+ GeeList* _t_list = NULL;
+ const gchar* _tmp15_ = NULL;
+ Tag* _tmp16_ = NULL;
+ Tag* _tmp17_ = NULL;
+ GeeList* _tmp18_ = NULL;
+ GeeList* _tmp19_ = NULL;
+ gint _t_size = 0;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _t_index = 0;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = unwind_target;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = tag_for_path (_tmp15_);
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = tag_get_hierarchical_children (_tmp17_);
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _tmp18_;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp17_);
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_list = _tmp19_;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _t_list;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _tmp21_;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_size = _tmp22_;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_index = -1;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 16273 "Commands.c"
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ Tag* t = NULL;
+ GeeList* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gpointer _tmp28_ = NULL;
+ gchar* child_subpath = NULL;
+ Tag* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ GeeMap* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _t_index;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_index = _tmp23_ + 1;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _t_index;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _t_size;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp24_ < _tmp25_)) {
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 16305 "Commands.c"
+ }
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _t_list;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = _t_index;
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = gee_list_get (_tmp26_, _tmp27_);
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ t = (Tag*) _tmp28_;
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = t;
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = tag_get_path (_tmp29_);
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = _tmp30_;
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = unwind_target;
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = string_replace (_tmp31_, _tmp32_, "");
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = _tmp33_;
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp31_);
+#line 1875 "/home/jens/Source/shotwell/src/Commands.vala"
+ child_subpath = _tmp34_;
+#line 1876 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = child_subpath;
+#line 1876 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = g_str_has_prefix (_tmp35_, TAG_PATH_SEPARATOR_STRING);
+#line 1876 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp36_) {
+#line 16337 "Commands.c"
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+#line 1877 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = child_subpath;
+#line 1877 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = string_substring (_tmp37_, (glong) 1, (glong) -1);
+#line 1877 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (child_subpath);
+#line 1877 "/home/jens/Source/shotwell/src/Commands.vala"
+ child_subpath = _tmp38_;
+#line 16348 "Commands.c"
+ }
+#line 1879 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = self->priv->existing_dest_child_structure;
+#line 1879 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = child_subpath;
+#line 1879 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = gee_map_has_key (_tmp39_, _tmp40_);
+#line 1879 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp41_) {
+#line 16358 "Commands.c"
+ TagSourceCollection* _tmp42_ = NULL;
+ TagSourceCollection* _tmp43_ = NULL;
+ Tag* _tmp44_ = NULL;
+ Marker* _tmp45_ = NULL;
+ Marker* _tmp46_ = NULL;
+#line 1880 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = tag_global;
+#line 1880 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = tag_global;
+#line 1880 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = t;
+#line 1880 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, TYPE_DATA_OBJECT, DataObject));
+#line 1880 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = _tmp45_;
+#line 1880 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp46_, TRUE, NULL, NULL, NULL);
+#line 1880 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp46_);
+#line 16378 "Commands.c"
+ } else {
+ GeeSet* starting_sources = NULL;
+ GeeHashSet* _tmp47_ = NULL;
+ GeeSet* _tmp48_ = NULL;
+ Tag* _tmp49_ = NULL;
+ GeeCollection* _tmp50_ = NULL;
+ GeeCollection* _tmp51_ = NULL;
+#line 1882 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1882 "/home/jens/Source/shotwell/src/Commands.vala"
+ starting_sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GEE_TYPE_SET, GeeSet);
+#line 1883 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = starting_sources;
+#line 1883 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = t;
+#line 1883 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = tag_get_sources (_tmp49_);
+#line 1883 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = _tmp50_;
+#line 1883 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_COLLECTION, GeeCollection), _tmp51_);
+#line 1883 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp51_);
+#line 16402 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeSet* _tmp52_ = NULL;
+ GeeIterator* _tmp53_ = NULL;
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = starting_sources;
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp53_;
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 16415 "Commands.c"
+ GeeIterator* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp56_ = NULL;
+ gpointer _tmp57_ = NULL;
+ GeeMap* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ gpointer _tmp60_ = NULL;
+ GeeSet* _tmp61_ = NULL;
+ MediaSource* _tmp62_ = NULL;
+ gboolean _tmp63_ = FALSE;
+ gboolean _tmp64_ = FALSE;
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp54_ = _source_it;
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp55_ = gee_iterator_next (_tmp54_);
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp55_) {
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 16436 "Commands.c"
+ }
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp56_ = _source_it;
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp57_ = gee_iterator_get (_tmp56_);
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp57_;
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp58_ = self->priv->existing_dest_child_structure;
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp59_ = child_subpath;
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp60_ = gee_map_get (_tmp58_, _tmp59_);
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp61_ = (GeeSet*) _tmp60_;
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp62_ = source;
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp63_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, GEE_TYPE_COLLECTION, GeeCollection), _tmp62_);
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp64_ = !_tmp63_;
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp61_);
+#line 1885 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp64_) {
+#line 16462 "Commands.c"
+ Tag* _tmp65_ = NULL;
+ MediaSource* _tmp66_ = NULL;
+ GeeList* _tmp67_ = NULL;
+ GeeList* _tmp68_ = NULL;
+#line 1886 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp65_ = t;
+#line 1886 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp66_ = source;
+#line 1886 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp67_ = tag_detach (_tmp65_, _tmp66_);
+#line 1886 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp68_ = _tmp67_;
+#line 1886 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp68_);
+#line 16477 "Commands.c"
+ }
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 16481 "Commands.c"
+ }
+#line 1884 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 16485 "Commands.c"
+ }
+#line 1879 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (starting_sources);
+#line 16489 "Commands.c"
+ }
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (child_subpath);
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (t);
+#line 16495 "Commands.c"
+ }
+#line 1874 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_t_list);
+#line 16499 "Commands.c"
+ }
+ {
+ gint i = 0;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = 0;
+#line 16505 "Commands.c"
+ {
+ gboolean _tmp69_ = FALSE;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp69_ = TRUE;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 16512 "Commands.c"
+ gint _tmp71_ = 0;
+ GeeList* _tmp72_ = NULL;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ GeeList* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ gpointer _tmp77_ = NULL;
+ SourceProxy* _tmp78_ = NULL;
+ DataSource* _tmp79_ = NULL;
+ DataSource* _tmp80_ = NULL;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp69_) {
+#line 16525 "Commands.c"
+ gint _tmp70_ = 0;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp70_ = i;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp70_ + 1;
+#line 16531 "Commands.c"
+ }
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp69_ = FALSE;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp71_ = i;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp72_ = self->priv->src_before_state;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp73_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp74_ = _tmp73_;
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp71_ < _tmp74_)) {
+#line 1890 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 16547 "Commands.c"
+ }
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp75_ = self->priv->src_before_state;
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp76_ = i;
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp77_ = gee_list_get (_tmp75_, _tmp76_);
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp78_ = (SourceProxy*) _tmp77_;
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp79_ = source_proxy_get_source (_tmp78_);
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp80_ = _tmp79_;
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp80_);
+#line 1891 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp78_);
+#line 16565 "Commands.c"
+ }
+ }
+ }
+ {
+ gint i = 0;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = 0;
+#line 16573 "Commands.c"
+ {
+ gboolean _tmp81_ = FALSE;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp81_ = TRUE;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 16580 "Commands.c"
+ gint _tmp83_ = 0;
+ GeeList* _tmp84_ = NULL;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ GeeList* _tmp87_ = NULL;
+ gint _tmp88_ = 0;
+ gpointer _tmp89_ = NULL;
+ SourceProxy* _tmp90_ = NULL;
+ DataSource* _tmp91_ = NULL;
+ DataSource* _tmp92_ = NULL;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp81_) {
+#line 16593 "Commands.c"
+ gint _tmp82_ = 0;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp82_ = i;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp82_ + 1;
+#line 16599 "Commands.c"
+ }
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp81_ = FALSE;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp83_ = i;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp84_ = self->priv->dest_before_state;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp85_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp84_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp86_ = _tmp85_;
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp83_ < _tmp86_)) {
+#line 1893 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 16615 "Commands.c"
+ }
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp87_ = self->priv->dest_before_state;
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp88_ = i;
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp89_ = gee_list_get (_tmp87_, _tmp88_);
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp90_ = (SourceProxy*) _tmp89_;
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp91_ = source_proxy_get_source (_tmp90_);
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp92_ = _tmp91_;
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp92_);
+#line 1894 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp90_);
+#line 16633 "Commands.c"
+ }
+ }
+ }
+#line 1896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp93_ = self->priv->to_path_parent_path;
+#line 1896 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp93_ != NULL) {
+#line 16641 "Commands.c"
+ gchar* new_path = NULL;
+ const gchar* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+ const gchar* _tmp96_ = NULL;
+ const gchar* _tmp97_ = NULL;
+ gchar* path = NULL;
+ gchar* _tmp100_ = NULL;
+ TagSourceCollection* _tmp101_ = NULL;
+ const gchar* _tmp102_ = NULL;
+ gboolean _tmp103_ = FALSE;
+ Tag* t = NULL;
+ const gchar* _tmp104_ = NULL;
+ Tag* _tmp105_ = NULL;
+ GeeList* kids = NULL;
+ Tag* _tmp106_ = NULL;
+ GeeList* _tmp107_ = NULL;
+ const gchar* _tmp125_ = NULL;
+ GeeMap* _tmp126_ = NULL;
+#line 1897 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp94_ = self->priv->to_path_parent_path;
+#line 1897 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp95_ = hierarchical_tag_utilities_get_root_path_form (_tmp94_);
+#line 1897 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_path = _tmp95_;
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp97_ = new_path;
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp97_ != NULL) {
+#line 16670 "Commands.c"
+ const gchar* _tmp98_ = NULL;
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp98_ = new_path;
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp96_ = _tmp98_;
+#line 16676 "Commands.c"
+ } else {
+ const gchar* _tmp99_ = NULL;
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp99_ = self->priv->to_path_parent_path;
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp96_ = _tmp99_;
+#line 16683 "Commands.c"
+ }
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp100_ = g_strdup (_tmp96_);
+#line 1898 "/home/jens/Source/shotwell/src/Commands.vala"
+ path = _tmp100_;
+#line 1900 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp101_ = tag_global;
+#line 1900 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp102_ = path;
+#line 1900 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp103_ = tag_source_collection_exists (_tmp101_, _tmp102_, FALSE);
+#line 1900 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp103_, "Tag.global.exists(path)");
+#line 1902 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp104_ = path;
+#line 1902 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp105_ = tag_for_path (_tmp104_);
+#line 1902 "/home/jens/Source/shotwell/src/Commands.vala"
+ t = _tmp105_;
+#line 1904 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp106_ = t;
+#line 1904 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp107_ = tag_get_hierarchical_children (_tmp106_);
+#line 1904 "/home/jens/Source/shotwell/src/Commands.vala"
+ kids = _tmp107_;
+#line 16709 "Commands.c"
+ {
+ GeeList* _kidtag_list = NULL;
+ GeeList* _tmp108_ = NULL;
+ GeeList* _tmp109_ = NULL;
+ gint _kidtag_size = 0;
+ GeeList* _tmp110_ = NULL;
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ gint _kidtag_index = 0;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp108_ = kids;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp109_ = _g_object_ref0 (_tmp108_);
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_list = _tmp109_;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp110_ = _kidtag_list;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp111_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp110_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp112_ = _tmp111_;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_size = _tmp112_;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_index = -1;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 16737 "Commands.c"
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ gint _tmp115_ = 0;
+ Tag* kidtag = NULL;
+ GeeList* _tmp116_ = NULL;
+ gint _tmp117_ = 0;
+ gpointer _tmp118_ = NULL;
+ Tag* _tmp119_ = NULL;
+ Tag* _tmp120_ = NULL;
+ GeeCollection* _tmp121_ = NULL;
+ GeeCollection* _tmp122_ = NULL;
+ GeeMultiMap* _tmp123_ = NULL;
+ GeeMultiMap* _tmp124_ = NULL;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp113_ = _kidtag_index;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_index = _tmp113_ + 1;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp114_ = _kidtag_index;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp115_ = _kidtag_size;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp114_ < _tmp115_)) {
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 16763 "Commands.c"
+ }
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp116_ = _kidtag_list;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp117_ = _kidtag_index;
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp118_ = gee_list_get (_tmp116_, _tmp117_);
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ kidtag = (Tag*) _tmp118_;
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp119_ = kidtag;
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp120_ = kidtag;
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp121_ = tag_get_sources (_tmp120_);
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp122_ = _tmp121_;
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp123_ = tag_detach_many (_tmp119_, _tmp122_);
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp124_ = _tmp123_;
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp124_);
+#line 1906 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp122_);
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (kidtag);
+#line 16791 "Commands.c"
+ }
+#line 1905 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_kidtag_list);
+#line 16795 "Commands.c"
+ }
+#line 1908 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp125_ = path;
+#line 1908 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp126_ = self->priv->existing_dest_child_structure;
+#line 1908 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_restore_child_attachments_at (self, _tmp125_, _tmp126_);
+#line 1896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (kids);
+#line 1896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (t);
+#line 1896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 1896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (new_path);
+#line 16811 "Commands.c"
+ } else {
+ GeeSet* _tmp127_ = NULL;
+ const gchar* _tmp128_ = NULL;
+ Tag* _tmp129_ = NULL;
+ Tag* _tmp130_ = NULL;
+ const gchar* _tmp131_ = NULL;
+ Tag* _tmp132_ = NULL;
+ Tag* _tmp133_ = NULL;
+ GeeCollection* _tmp134_ = NULL;
+ GeeCollection* _tmp135_ = NULL;
+ GeeMultiMap* _tmp136_ = NULL;
+ GeeMultiMap* _tmp137_ = NULL;
+ const gchar* _tmp138_ = NULL;
+ Tag* _tmp139_ = NULL;
+ Tag* _tmp140_ = NULL;
+ GeeSet* _tmp141_ = NULL;
+ GeeList* kids = NULL;
+ const gchar* _tmp142_ = NULL;
+ Tag* _tmp143_ = NULL;
+ Tag* _tmp144_ = NULL;
+ GeeList* _tmp145_ = NULL;
+ GeeList* _tmp146_ = NULL;
+ const gchar* _tmp164_ = NULL;
+ GeeMap* _tmp165_ = NULL;
+#line 1910 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp127_ = self->priv->existing_dest_membership;
+#line 1910 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp127_ != NULL, "existing_dest_membership != null");
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp128_ = self->priv->to_path;
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp129_ = tag_for_path (_tmp128_);
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp130_ = _tmp129_;
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp131_ = self->priv->to_path;
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp132_ = tag_for_path (_tmp131_);
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp133_ = _tmp132_;
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp134_ = tag_get_sources (_tmp133_);
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp135_ = _tmp134_;
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp136_ = tag_detach_many (_tmp130_, _tmp135_);
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp137_ = _tmp136_;
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp137_);
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp135_);
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp133_);
+#line 1911 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp130_);
+#line 1912 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp138_ = self->priv->to_path;
+#line 1912 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp139_ = tag_for_path (_tmp138_);
+#line 1912 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp140_ = _tmp139_;
+#line 1912 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp141_ = self->priv->existing_dest_membership;
+#line 1912 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach_many (_tmp140_, G_TYPE_CHECK_INSTANCE_CAST (_tmp141_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1912 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp140_);
+#line 1914 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp142_ = self->priv->to_path;
+#line 1914 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp143_ = tag_for_path (_tmp142_);
+#line 1914 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp144_ = _tmp143_;
+#line 1914 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp145_ = tag_get_hierarchical_children (_tmp144_);
+#line 1914 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp146_ = _tmp145_;
+#line 1914 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp144_);
+#line 1914 "/home/jens/Source/shotwell/src/Commands.vala"
+ kids = _tmp146_;
+#line 16894 "Commands.c"
+ {
+ GeeList* _kidtag_list = NULL;
+ GeeList* _tmp147_ = NULL;
+ GeeList* _tmp148_ = NULL;
+ gint _kidtag_size = 0;
+ GeeList* _tmp149_ = NULL;
+ gint _tmp150_ = 0;
+ gint _tmp151_ = 0;
+ gint _kidtag_index = 0;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp147_ = kids;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp148_ = _g_object_ref0 (_tmp147_);
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_list = _tmp148_;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp149_ = _kidtag_list;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp150_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp149_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp151_ = _tmp150_;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_size = _tmp151_;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_index = -1;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 16922 "Commands.c"
+ gint _tmp152_ = 0;
+ gint _tmp153_ = 0;
+ gint _tmp154_ = 0;
+ Tag* kidtag = NULL;
+ GeeList* _tmp155_ = NULL;
+ gint _tmp156_ = 0;
+ gpointer _tmp157_ = NULL;
+ Tag* _tmp158_ = NULL;
+ Tag* _tmp159_ = NULL;
+ GeeCollection* _tmp160_ = NULL;
+ GeeCollection* _tmp161_ = NULL;
+ GeeMultiMap* _tmp162_ = NULL;
+ GeeMultiMap* _tmp163_ = NULL;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp152_ = _kidtag_index;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _kidtag_index = _tmp152_ + 1;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp153_ = _kidtag_index;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp154_ = _kidtag_size;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp153_ < _tmp154_)) {
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 16948 "Commands.c"
+ }
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp155_ = _kidtag_list;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp156_ = _kidtag_index;
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp157_ = gee_list_get (_tmp155_, _tmp156_);
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ kidtag = (Tag*) _tmp157_;
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp158_ = kidtag;
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp159_ = kidtag;
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp160_ = tag_get_sources (_tmp159_);
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp161_ = _tmp160_;
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp162_ = tag_detach_many (_tmp158_, _tmp161_);
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp163_ = _tmp162_;
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp163_);
+#line 1916 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp161_);
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (kidtag);
+#line 16976 "Commands.c"
+ }
+#line 1915 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_kidtag_list);
+#line 16980 "Commands.c"
+ }
+#line 1918 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp164_ = self->priv->to_path;
+#line 1918 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp165_ = self->priv->existing_dest_child_structure;
+#line 1918 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_restore_child_attachments_at (self, _tmp164_, _tmp165_);
+#line 1896 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (kids);
+#line 16990 "Commands.c"
+ }
+#line 1863 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (unwind_target);
+#line 16994 "Commands.c"
+}
+
+
+static void reparent_tag_command_save_after_state (ReparentTagCommand* self) {
+ GeeList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ TagSourceCollection* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ Tag* to_tag = NULL;
+ const gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ Tag* _tmp8_ = NULL;
+ SourceProxy* _tmp9_ = NULL;
+ SourceProxy* _tmp10_ = NULL;
+ GeeList* to_children = NULL;
+ Tag* _tmp11_ = NULL;
+ GeeList* _tmp12_ = NULL;
+#line 1922 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1923 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->after_state;
+#line 1923 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ == NULL, "after_state == null");
+#line 1925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_array_list_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL);
+#line 1925 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->after_state);
+#line 1925 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->after_state = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_LIST, GeeList);
+#line 1928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_global;
+#line 1928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->to_path;
+#line 1928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = tag_source_collection_exists (_tmp2_, _tmp3_, FALSE);
+#line 1928 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp4_, "Tag.global.exists(to_path)");
+#line 1929 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->to_path;
+#line 1929 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = tag_for_path (_tmp5_);
+#line 1929 "/home/jens/Source/shotwell/src/Commands.vala"
+ to_tag = _tmp6_;
+#line 1930 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->after_state;
+#line 1930 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = to_tag;
+#line 1930 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PROXYABLE, Proxyable));
+#line 1930 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 1930 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), _tmp10_);
+#line 1930 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp10_);
+#line 1933 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = to_tag;
+#line 1933 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = tag_get_hierarchical_children (_tmp11_);
+#line 1933 "/home/jens/Source/shotwell/src/Commands.vala"
+ to_children = _tmp12_;
+#line 17058 "Commands.c"
+ {
+ gint i = 0;
+ GeeList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = to_children;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tmp14_;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp15_ - 1;
+#line 17072 "Commands.c"
+ {
+ gboolean _tmp16_ = FALSE;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = TRUE;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17079 "Commands.c"
+ gint _tmp18_ = 0;
+ GeeList* _tmp19_ = NULL;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gpointer _tmp22_ = NULL;
+ Tag* _tmp23_ = NULL;
+ SourceProxy* _tmp24_ = NULL;
+ SourceProxy* _tmp25_ = NULL;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp16_) {
+#line 17090 "Commands.c"
+ gint _tmp17_ = 0;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = i;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp17_ - 1;
+#line 17096 "Commands.c"
+ }
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = FALSE;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = i;
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp18_ >= 0)) {
+#line 1934 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17106 "Commands.c"
+ }
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = self->priv->after_state;
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = to_children;
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = i;
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = gee_list_get (_tmp20_, _tmp21_);
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = (Tag*) _tmp22_;
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_PROXYABLE, Proxyable));
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _tmp24_;
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp25_);
+#line 1935 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 17128 "Commands.c"
+ }
+ }
+ }
+#line 1922 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (to_children);
+#line 1922 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (to_tag);
+#line 17136 "Commands.c"
+}
+
+
+static void reparent_tag_command_restore_after_state (ReparentTagCommand* self) {
+ GeeList* _tmp0_ = NULL;
+#line 1938 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->after_state;
+#line 1939 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "after_state != null");
+#line 17148 "Commands.c"
+ {
+ gint i = 0;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = 0;
+#line 17153 "Commands.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = TRUE;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17160 "Commands.c"
+ gint _tmp3_ = 0;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gpointer _tmp9_ = NULL;
+ SourceProxy* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp1_) {
+#line 17173 "Commands.c"
+ gint _tmp2_ = 0;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = i;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp2_ + 1;
+#line 17179 "Commands.c"
+ }
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = FALSE;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = i;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->after_state;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp3_ < _tmp6_)) {
+#line 1941 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17195 "Commands.c"
+ }
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->after_state;
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = i;
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_list_get (_tmp7_, _tmp8_);
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = (SourceProxy*) _tmp9_;
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = source_proxy_get_source (_tmp10_);
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _tmp11_;
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1942 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (_tmp10_);
+#line 17213 "Commands.c"
+ }
+ }
+ }
+}
+
+
+static void reparent_tag_command_prepare_parent (ReparentTagCommand* self, const gchar* path) {
+ Tag* new_parent = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ Tag* _tmp27_ = NULL;
+#line 1945 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1945 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (path != NULL);
+#line 1947 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_parent = NULL;
+#line 1948 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = path;
+#line 1948 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = g_str_has_prefix (_tmp0_, TAG_PATH_SEPARATOR_STRING);
+#line 1948 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 17237 "Commands.c"
+ GeeList* parent_paths = NULL;
+ const gchar* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 1949 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = path;
+#line 1949 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp2_);
+#line 1949 "/home/jens/Source/shotwell/src/Commands.vala"
+ parent_paths = _tmp3_;
+#line 1950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = parent_paths;
+#line 1950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 1950 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ > 0) {
+#line 17258 "Commands.c"
+ gchar* immediate_parent_path = NULL;
+ GeeList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ TagSourceCollection* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 1951 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = parent_paths;
+#line 1951 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = parent_paths;
+#line 1951 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1951 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 1951 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_list_get (_tmp7_, _tmp10_ - 1);
+#line 1951 "/home/jens/Source/shotwell/src/Commands.vala"
+ immediate_parent_path = (gchar*) _tmp11_;
+#line 1952 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = tag_global;
+#line 1952 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = immediate_parent_path;
+#line 1952 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = tag_source_collection_exists (_tmp12_, _tmp13_, FALSE);
+#line 1952 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp14_) {
+#line 17288 "Commands.c"
+ const gchar* _tmp15_ = NULL;
+ Tag* _tmp16_ = NULL;
+#line 1953 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = immediate_parent_path;
+#line 1953 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = tag_for_path (_tmp15_);
+#line 1953 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (new_parent);
+#line 1953 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_parent = _tmp16_;
+#line 17299 "Commands.c"
+ } else {
+ TagSourceCollection* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = tag_global;
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = immediate_parent_path;
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = string_substring (_tmp18_, (glong) 1, (glong) -1);
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _tmp19_;
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = tag_source_collection_exists (_tmp17_, _tmp20_, FALSE);
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _tmp21_;
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp20_);
+#line 1954 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp22_) {
+#line 17323 "Commands.c"
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ Tag* _tmp26_ = NULL;
+#line 1955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = immediate_parent_path;
+#line 1955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = string_substring (_tmp23_, (glong) 1, (glong) -1);
+#line 1955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _tmp24_;
+#line 1955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = tag_for_path (_tmp25_);
+#line 1955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (new_parent);
+#line 1955 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_parent = _tmp26_;
+#line 1955 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp25_);
+#line 17342 "Commands.c"
+ } else {
+#line 1957 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_assert_not_reached ();
+#line 17346 "Commands.c"
+ }
+ }
+#line 1950 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (immediate_parent_path);
+#line 17351 "Commands.c"
+ }
+#line 1948 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (parent_paths);
+#line 17355 "Commands.c"
+ }
+#line 1960 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = new_parent;
+#line 1960 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp27_ != NULL) {
+#line 17361 "Commands.c"
+ Tag* _tmp28_ = NULL;
+#line 1961 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = new_parent;
+#line 1961 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_promote (_tmp28_);
+#line 17367 "Commands.c"
+ }
+#line 1945 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (new_parent);
+#line 17371 "Commands.c"
+}
+
+
+static void reparent_tag_command_do_source_parent_detachments (ReparentTagCommand* self) {
+ TagSourceCollection* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Tag* from_tag = NULL;
+ const gchar* _tmp3_ = NULL;
+ Tag* _tmp4_ = NULL;
+ GeeMap* _tmp5_ = NULL;
+#line 1964 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 1965 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = tag_global;
+#line 1965 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->from_path;
+#line 1965 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_source_collection_exists (_tmp0_, _tmp1_, FALSE);
+#line 1965 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp2_, "Tag.global.exists(from_path)");
+#line 1966 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->from_path;
+#line 1966 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = tag_for_path (_tmp3_);
+#line 1966 "/home/jens/Source/shotwell/src/Commands.vala"
+ from_tag = _tmp4_;
+#line 1969 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->src_parent_detachments;
+#line 1969 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp5_ == NULL) {
+#line 17403 "Commands.c"
+ GeeHashMap* _tmp6_ = NULL;
+#line 1970 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_SET, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1970 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->src_parent_detachments);
+#line 1970 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->src_parent_detachments = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_MAP, GeeMap);
+#line 17411 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ Tag* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = from_tag;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = tag_get_sources (_tmp7_);
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp11_;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17435 "Commands.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ Tag* current_parent = NULL;
+ Tag* _tmp16_ = NULL;
+ Tag* _tmp17_ = NULL;
+ gint running_attach_count = 0;
+ Tag* _tmp18_ = NULL;
+ MediaSource* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _source_it;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp13_) {
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17456 "Commands.c"
+ }
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _source_it;
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp15_;
+#line 1972 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = from_tag;
+#line 1972 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = tag_get_hierarchical_parent (_tmp16_);
+#line 1972 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_parent = _tmp17_;
+#line 1973 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = from_tag;
+#line 1973 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = source;
+#line 1973 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = tag_get_attachment_count (_tmp18_, _tmp19_);
+#line 1973 "/home/jens/Source/shotwell/src/Commands.vala"
+ running_attach_count = _tmp20_ + 1;
+#line 1974 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17480 "Commands.c"
+ Tag* _tmp21_ = NULL;
+ gchar* current_parent_path = NULL;
+ Tag* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ GeeMap* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ gint curr_parent_attach_count = 0;
+ Tag* _tmp31_ = NULL;
+ MediaSource* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp43_ = 0;
+ Tag* _tmp44_ = NULL;
+ Tag* _tmp45_ = NULL;
+#line 1974 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = current_parent;
+#line 1974 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp21_ != NULL)) {
+#line 1974 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17505 "Commands.c"
+ }
+#line 1975 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = current_parent;
+#line 1975 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = tag_get_path (_tmp22_);
+#line 1975 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_parent_path = _tmp23_;
+#line 1976 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = self->priv->src_parent_detachments;
+#line 1976 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = current_parent_path;
+#line 1976 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = gee_map_has_key (_tmp24_, _tmp25_);
+#line 1976 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp26_) {
+#line 17521 "Commands.c"
+ GeeMap* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GeeHashSet* _tmp29_ = NULL;
+ GeeHashSet* _tmp30_ = NULL;
+#line 1977 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = self->priv->src_parent_detachments;
+#line 1977 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = current_parent_path;
+#line 1977 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1977 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = _tmp29_;
+#line 1977 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_map_set (_tmp27_, _tmp28_, G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_SET, GeeSet));
+#line 1977 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp30_);
+#line 17538 "Commands.c"
+ }
+#line 1979 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = current_parent;
+#line 1979 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = source;
+#line 1979 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = tag_get_attachment_count (_tmp31_, _tmp32_);
+#line 1979 "/home/jens/Source/shotwell/src/Commands.vala"
+ curr_parent_attach_count = _tmp33_;
+#line 1981 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = curr_parent_attach_count;
+#line 1981 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = running_attach_count;
+#line 1981 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp34_ >= _tmp35_, "curr_parent_attach_count >= running_attach_count");
+#line 1985 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = curr_parent_attach_count;
+#line 1985 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = running_attach_count;
+#line 1985 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp36_ == _tmp37_) {
+#line 17560 "Commands.c"
+ GeeMap* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gpointer _tmp40_ = NULL;
+ GeeSet* _tmp41_ = NULL;
+ MediaSource* _tmp42_ = NULL;
+#line 1986 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = self->priv->src_parent_detachments;
+#line 1986 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = current_parent_path;
+#line 1986 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = gee_map_get (_tmp38_, _tmp39_);
+#line 1986 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = (GeeSet*) _tmp40_;
+#line 1986 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = source;
+#line 1986 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_COLLECTION, GeeCollection), _tmp42_);
+#line 1986 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp41_);
+#line 17580 "Commands.c"
+ }
+#line 1988 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = running_attach_count;
+#line 1988 "/home/jens/Source/shotwell/src/Commands.vala"
+ running_attach_count = _tmp43_ + 1;
+#line 1989 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = current_parent;
+#line 1989 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = tag_get_hierarchical_parent (_tmp44_);
+#line 1989 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_parent);
+#line 1989 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_parent = _tmp45_;
+#line 1974 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (current_parent_path);
+#line 17596 "Commands.c"
+ }
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_parent);
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 17602 "Commands.c"
+ }
+#line 1971 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 17606 "Commands.c"
+ }
+ }
+ {
+ GeeIterator* _p_it = NULL;
+ GeeMap* _tmp46_ = NULL;
+ GeeSet* _tmp47_ = NULL;
+ GeeSet* _tmp48_ = NULL;
+ GeeSet* _tmp49_ = NULL;
+ GeeIterator* _tmp50_ = NULL;
+ GeeIterator* _tmp51_ = NULL;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = self->priv->src_parent_detachments;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = gee_map_get_keys (_tmp46_);
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = _tmp47_;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = _tmp48_;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = _tmp50_;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp49_);
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _p_it = _tmp51_;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17635 "Commands.c"
+ GeeIterator* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+ gchar* p = NULL;
+ GeeIterator* _tmp54_ = NULL;
+ gpointer _tmp55_ = NULL;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = _p_it;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = gee_iterator_next (_tmp52_);
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp53_) {
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17649 "Commands.c"
+ }
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp54_ = _p_it;
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp55_ = gee_iterator_get (_tmp54_);
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ p = (gchar*) _tmp55_;
+#line 17657 "Commands.c"
+ {
+ GeeIterator* _s_it = NULL;
+ GeeMap* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ gpointer _tmp58_ = NULL;
+ GeeSet* _tmp59_ = NULL;
+ GeeIterator* _tmp60_ = NULL;
+ GeeIterator* _tmp61_ = NULL;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp56_ = self->priv->src_parent_detachments;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp57_ = p;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp58_ = gee_map_get (_tmp56_, _tmp57_);
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp59_ = (GeeSet*) _tmp58_;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp60_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp61_ = _tmp60_;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp59_);
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _s_it = _tmp61_;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17684 "Commands.c"
+ GeeIterator* _tmp62_ = NULL;
+ gboolean _tmp63_ = FALSE;
+ MediaSource* s = NULL;
+ GeeIterator* _tmp64_ = NULL;
+ gpointer _tmp65_ = NULL;
+ const gchar* _tmp66_ = NULL;
+ Tag* _tmp67_ = NULL;
+ Tag* _tmp68_ = NULL;
+ MediaSource* _tmp69_ = NULL;
+ GeeList* _tmp70_ = NULL;
+ GeeList* _tmp71_ = NULL;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp62_ = _s_it;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp63_ = gee_iterator_next (_tmp62_);
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp63_) {
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17704 "Commands.c"
+ }
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp64_ = _s_it;
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp65_ = gee_iterator_get (_tmp64_);
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ s = (MediaSource*) _tmp65_;
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp66_ = p;
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp67_ = tag_for_path (_tmp66_);
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp68_ = _tmp67_;
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp69_ = s;
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp70_ = tag_detach (_tmp68_, _tmp69_);
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp71_ = _tmp70_;
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp71_);
+#line 1997 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp68_);
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (s);
+#line 17730 "Commands.c"
+ }
+#line 1996 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_s_it);
+#line 17734 "Commands.c"
+ }
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (p);
+#line 17738 "Commands.c"
+ }
+#line 1995 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_p_it);
+#line 17742 "Commands.c"
+ }
+#line 1964 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (from_tag);
+#line 17746 "Commands.c"
+}
+
+
+static void reparent_tag_command_do_source_parent_reattachments (ReparentTagCommand* self) {
+ GeeMap* _tmp0_ = NULL;
+#line 2000 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 2001 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->src_parent_detachments;
+#line 2001 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "src_parent_detachments != null");
+#line 17758 "Commands.c"
+ {
+ GeeIterator* _p_it = NULL;
+ GeeMap* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->src_parent_detachments;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_map_get_keys (_tmp1_);
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp4_);
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _p_it = _tmp6_;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17785 "Commands.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gchar* p = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _p_it;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp8_) {
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17799 "Commands.c"
+ }
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _p_it;
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ p = (gchar*) _tmp10_;
+#line 17807 "Commands.c"
+ {
+ GeeIterator* _s_it = NULL;
+ GeeMap* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ GeeSet* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = self->priv->src_parent_detachments;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = p;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_map_get (_tmp11_, _tmp12_);
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = (GeeSet*) _tmp13_;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tmp15_;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _s_it = _tmp16_;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17834 "Commands.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ MediaSource* s = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ Tag* _tmp23_ = NULL;
+ MediaSource* _tmp24_ = NULL;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _s_it;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp18_) {
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17852 "Commands.c"
+ }
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _s_it;
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ s = (MediaSource*) _tmp20_;
+#line 2005 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = p;
+#line 2005 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = tag_for_path (_tmp21_);
+#line 2005 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _tmp22_;
+#line 2005 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = s;
+#line 2005 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp23_, _tmp24_);
+#line 2005 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (s);
+#line 17874 "Commands.c"
+ }
+#line 2004 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_s_it);
+#line 17878 "Commands.c"
+ }
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (p);
+#line 17882 "Commands.c"
+ }
+#line 2003 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_p_it);
+#line 17886 "Commands.c"
+ }
+}
+
+
+static void reparent_tag_command_do_destination_parent_detachments (ReparentTagCommand* self) {
+ GeeMap* _tmp0_ = NULL;
+#line 2008 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 2009 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->dest_parent_attachments;
+#line 2009 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "dest_parent_attachments != null");
+#line 17899 "Commands.c"
+ {
+ GeeIterator* _p_it = NULL;
+ GeeMap* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->dest_parent_attachments;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_map_get_keys (_tmp1_);
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp4_);
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _p_it = _tmp6_;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17926 "Commands.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gchar* p = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _p_it;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp8_) {
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17940 "Commands.c"
+ }
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _p_it;
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ p = (gchar*) _tmp10_;
+#line 17948 "Commands.c"
+ {
+ GeeIterator* _s_it = NULL;
+ GeeMap* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ GeeSet* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = self->priv->dest_parent_attachments;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = p;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_map_get (_tmp11_, _tmp12_);
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = (GeeSet*) _tmp13_;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tmp15_;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _s_it = _tmp16_;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 17975 "Commands.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ MediaSource* s = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ Tag* _tmp23_ = NULL;
+ MediaSource* _tmp24_ = NULL;
+ GeeList* _tmp25_ = NULL;
+ GeeList* _tmp26_ = NULL;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _s_it;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp18_) {
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 17995 "Commands.c"
+ }
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _s_it;
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ s = (MediaSource*) _tmp20_;
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = p;
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = tag_for_path (_tmp21_);
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _tmp22_;
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = s;
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = tag_detach (_tmp23_, _tmp24_);
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _tmp25_;
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp26_);
+#line 2013 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (s);
+#line 18021 "Commands.c"
+ }
+#line 2012 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_s_it);
+#line 18025 "Commands.c"
+ }
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (p);
+#line 18029 "Commands.c"
+ }
+#line 2011 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_p_it);
+#line 18033 "Commands.c"
+ }
+}
+
+
+static void reparent_tag_command_do_destination_parent_reattachments (ReparentTagCommand* self) {
+ GeeMap* _tmp0_ = NULL;
+#line 2016 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 2017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->dest_parent_attachments;
+#line 2017 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "dest_parent_attachments != null");
+#line 18046 "Commands.c"
+ {
+ GeeIterator* _p_it = NULL;
+ GeeMap* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->dest_parent_attachments;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = gee_map_get_keys (_tmp1_);
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp4_);
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _p_it = _tmp6_;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18073 "Commands.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gchar* p = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _p_it;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp8_) {
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18087 "Commands.c"
+ }
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _p_it;
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ p = (gchar*) _tmp10_;
+#line 18095 "Commands.c"
+ {
+ GeeIterator* _s_it = NULL;
+ GeeMap* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ GeeSet* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = self->priv->dest_parent_attachments;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = p;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_map_get (_tmp11_, _tmp12_);
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = (GeeSet*) _tmp13_;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tmp15_;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _s_it = _tmp16_;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18122 "Commands.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ MediaSource* s = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ Tag* _tmp23_ = NULL;
+ MediaSource* _tmp24_ = NULL;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _s_it;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp18_) {
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18140 "Commands.c"
+ }
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _s_it;
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ s = (MediaSource*) _tmp20_;
+#line 2021 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = p;
+#line 2021 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = tag_for_path (_tmp21_);
+#line 2021 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _tmp22_;
+#line 2021 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = s;
+#line 2021 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp23_, _tmp24_);
+#line 2021 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (s);
+#line 18162 "Commands.c"
+ }
+#line 2020 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_s_it);
+#line 18166 "Commands.c"
+ }
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (p);
+#line 18170 "Commands.c"
+ }
+#line 2019 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_p_it);
+#line 18174 "Commands.c"
+ }
+}
+
+
+static void reparent_tag_command_copy_subtree (ReparentTagCommand* self, const gchar* from, const gchar* to) {
+ TagSourceCollection* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Tag* from_tag = NULL;
+ const gchar* _tmp3_ = NULL;
+ Tag* _tmp4_ = NULL;
+ Tag* to_tag = NULL;
+ const gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ GeeList* from_children = NULL;
+ Tag* _tmp50_ = NULL;
+ GeeList* _tmp51_ = NULL;
+#line 2024 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 2024 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (from != NULL);
+#line 2024 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (to != NULL);
+#line 2025 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = tag_global;
+#line 2025 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = from;
+#line 2025 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag_source_collection_exists (_tmp0_, _tmp1_, FALSE);
+#line 2025 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp2_, "Tag.global.exists(from)");
+#line 2026 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = from;
+#line 2026 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = tag_for_path (_tmp3_);
+#line 2026 "/home/jens/Source/shotwell/src/Commands.vala"
+ from_tag = _tmp4_;
+#line 2029 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = to;
+#line 2029 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = tag_for_path (_tmp5_);
+#line 2029 "/home/jens/Source/shotwell/src/Commands.vala"
+ to_tag = _tmp6_;
+#line 2033 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_SET, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 2033 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->dest_parent_attachments);
+#line 2033 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->dest_parent_attachments = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_MAP, GeeMap);
+#line 18225 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ Tag* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ GeeIterator* _tmp12_ = NULL;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = from_tag;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = tag_get_sources (_tmp8_);
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _tmp11_;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp10_);
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp12_;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18249 "Commands.c"
+ GeeIterator* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ Tag* current_parent = NULL;
+ Tag* _tmp17_ = NULL;
+ Tag* _tmp18_ = NULL;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _source_it;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = gee_iterator_next (_tmp13_);
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp14_) {
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18266 "Commands.c"
+ }
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _source_it;
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = gee_iterator_get (_tmp15_);
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp16_;
+#line 2035 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = to_tag;
+#line 2035 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = tag_get_hierarchical_parent (_tmp17_);
+#line 2035 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_parent = _tmp18_;
+#line 2036 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18282 "Commands.c"
+ Tag* _tmp19_ = NULL;
+ gchar* current_parent_path = NULL;
+ Tag* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ GeeMap* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ Tag* _tmp29_ = NULL;
+ MediaSource* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ Tag* _tmp37_ = NULL;
+ Tag* _tmp38_ = NULL;
+#line 2036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = current_parent;
+#line 2036 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp19_ != NULL)) {
+#line 2036 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18301 "Commands.c"
+ }
+#line 2037 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = current_parent;
+#line 2037 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = tag_get_path (_tmp20_);
+#line 2037 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_parent_path = _tmp21_;
+#line 2038 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = self->priv->dest_parent_attachments;
+#line 2038 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = current_parent_path;
+#line 2038 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = gee_map_has_key (_tmp22_, _tmp23_);
+#line 2038 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp24_) {
+#line 18317 "Commands.c"
+ GeeMap* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ GeeHashSet* _tmp27_ = NULL;
+ GeeHashSet* _tmp28_ = NULL;
+#line 2039 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = self->priv->dest_parent_attachments;
+#line 2039 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = current_parent_path;
+#line 2039 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 2039 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = _tmp27_;
+#line 2039 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_map_set (_tmp25_, _tmp26_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_SET, GeeSet));
+#line 2039 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp28_);
+#line 18334 "Commands.c"
+ }
+#line 2041 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = current_parent;
+#line 2041 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = source;
+#line 2041 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = tag_contains (_tmp29_, _tmp30_);
+#line 2041 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp31_) {
+#line 18344 "Commands.c"
+ GeeMap* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gpointer _tmp34_ = NULL;
+ GeeSet* _tmp35_ = NULL;
+ MediaSource* _tmp36_ = NULL;
+#line 2042 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = self->priv->dest_parent_attachments;
+#line 2042 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = current_parent_path;
+#line 2042 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = gee_map_get (_tmp32_, _tmp33_);
+#line 2042 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = (GeeSet*) _tmp34_;
+#line 2042 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = source;
+#line 2042 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_COLLECTION, GeeCollection), _tmp36_);
+#line 2042 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp35_);
+#line 18364 "Commands.c"
+ }
+#line 2044 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = current_parent;
+#line 2044 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = tag_get_hierarchical_parent (_tmp37_);
+#line 2044 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_parent);
+#line 2044 "/home/jens/Source/shotwell/src/Commands.vala"
+ current_parent = _tmp38_;
+#line 2036 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (current_parent_path);
+#line 18376 "Commands.c"
+ }
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (current_parent);
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 18382 "Commands.c"
+ }
+#line 2034 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 18386 "Commands.c"
+ }
+ {
+ GeeIterator* _source_it = NULL;
+ Tag* _tmp39_ = NULL;
+ GeeCollection* _tmp40_ = NULL;
+ GeeCollection* _tmp41_ = NULL;
+ GeeIterator* _tmp42_ = NULL;
+ GeeIterator* _tmp43_ = NULL;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = from_tag;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = tag_get_sources (_tmp39_);
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = _tmp40_;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = _tmp42_;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp41_);
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp43_;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18411 "Commands.c"
+ GeeIterator* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp46_ = NULL;
+ gpointer _tmp47_ = NULL;
+ Tag* _tmp48_ = NULL;
+ MediaSource* _tmp49_ = NULL;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = _source_it;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = gee_iterator_next (_tmp44_);
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp45_) {
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18427 "Commands.c"
+ }
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = _source_it;
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = gee_iterator_get (_tmp46_);
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp47_;
+#line 2049 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = to_tag;
+#line 2049 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = source;
+#line 2049 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp48_, _tmp49_);
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 18443 "Commands.c"
+ }
+#line 2048 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 18447 "Commands.c"
+ }
+#line 2053 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = from_tag;
+#line 2053 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = tag_get_hierarchical_children (_tmp50_);
+#line 2053 "/home/jens/Source/shotwell/src/Commands.vala"
+ from_children = _tmp51_;
+#line 18455 "Commands.c"
+ {
+ gint i = 0;
+ GeeList* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = from_children;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp54_ = _tmp53_;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp54_ - 1;
+#line 18469 "Commands.c"
+ {
+ gboolean _tmp55_ = FALSE;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp55_ = TRUE;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18476 "Commands.c"
+ gint _tmp57_ = 0;
+ Tag* from_child = NULL;
+ GeeList* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gpointer _tmp60_ = NULL;
+ gchar* child_subpath = NULL;
+ Tag* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ const gchar* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ Tag* to_child = NULL;
+ Tag* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ Tag* _tmp77_ = NULL;
+ Tag* _tmp78_ = NULL;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp55_) {
+#line 18504 "Commands.c"
+ gint _tmp56_ = 0;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp56_ = i;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp56_ - 1;
+#line 18510 "Commands.c"
+ }
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp55_ = FALSE;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp57_ = i;
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp57_ >= 0)) {
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18520 "Commands.c"
+ }
+#line 2055 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp58_ = from_children;
+#line 2055 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp59_ = i;
+#line 2055 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp60_ = gee_list_get (_tmp58_, _tmp59_);
+#line 2055 "/home/jens/Source/shotwell/src/Commands.vala"
+ from_child = (Tag*) _tmp60_;
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp61_ = from_child;
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp62_ = tag_get_path (_tmp61_);
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp63_ = _tmp62_;
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp64_ = from;
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp65_ = g_strconcat (_tmp64_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp66_ = _tmp65_;
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp67_ = string_replace (_tmp63_, _tmp66_, "");
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp68_ = _tmp67_;
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp66_);
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp63_);
+#line 2057 "/home/jens/Source/shotwell/src/Commands.vala"
+ child_subpath = _tmp68_;
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp69_ = to_tag;
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp70_ = tag_get_path (_tmp69_);
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp71_ = _tmp70_;
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp72_ = g_strconcat (_tmp71_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp73_ = _tmp72_;
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp74_ = child_subpath;
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp75_ = g_strconcat (_tmp73_, _tmp74_, NULL);
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp76_ = _tmp75_;
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp77_ = tag_for_path (_tmp76_);
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp78_ = _tmp77_;
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp76_);
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp73_);
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp71_);
+#line 2060 "/home/jens/Source/shotwell/src/Commands.vala"
+ to_child = _tmp78_;
+#line 18580 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ Tag* _tmp79_ = NULL;
+ GeeCollection* _tmp80_ = NULL;
+ GeeCollection* _tmp81_ = NULL;
+ GeeIterator* _tmp82_ = NULL;
+ GeeIterator* _tmp83_ = NULL;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp79_ = from_child;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp80_ = tag_get_sources (_tmp79_);
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp81_ = _tmp80_;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp82_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp83_ = _tmp82_;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp81_);
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp83_;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18604 "Commands.c"
+ GeeIterator* _tmp84_ = NULL;
+ gboolean _tmp85_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp86_ = NULL;
+ gpointer _tmp87_ = NULL;
+ Tag* _tmp88_ = NULL;
+ MediaSource* _tmp89_ = NULL;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp84_ = _source_it;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp85_ = gee_iterator_next (_tmp84_);
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp85_) {
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18620 "Commands.c"
+ }
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp86_ = _source_it;
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp87_ = gee_iterator_get (_tmp86_);
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp87_;
+#line 2064 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp88_ = to_child;
+#line 2064 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp89_ = source;
+#line 2064 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp88_, _tmp89_);
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 18636 "Commands.c"
+ }
+#line 2063 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 18640 "Commands.c"
+ }
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (to_child);
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (child_subpath);
+#line 2054 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (from_child);
+#line 18648 "Commands.c"
+ }
+ }
+ }
+#line 2024 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (from_children);
+#line 2024 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (to_tag);
+#line 2024 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (from_tag);
+#line 18658 "Commands.c"
+}
+
+
+static void reparent_tag_command_destroy_subtree (ReparentTagCommand* self, const gchar* client_path) {
+ gchar* victim_path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ TagSourceCollection* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Tag* victim = NULL;
+ const gchar* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ GeeList* victim_children = NULL;
+ Tag* _tmp10_ = NULL;
+ GeeList* _tmp11_ = NULL;
+ TagSourceCollection* _tmp26_ = NULL;
+ TagSourceCollection* _tmp27_ = NULL;
+ Tag* _tmp28_ = NULL;
+ Marker* _tmp29_ = NULL;
+ Marker* _tmp30_ = NULL;
+#line 2068 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_REPARENT_TAG_COMMAND (self));
+#line 2068 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (client_path != NULL);
+#line 2069 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = client_path;
+#line 2069 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = hierarchical_tag_utilities_get_root_path_form (_tmp0_);
+#line 2069 "/home/jens/Source/shotwell/src/Commands.vala"
+ victim_path = _tmp1_;
+#line 2070 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = victim_path;
+#line 2070 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ == NULL) {
+#line 18695 "Commands.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 2071 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = client_path;
+#line 2071 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 2071 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (victim_path);
+#line 2071 "/home/jens/Source/shotwell/src/Commands.vala"
+ victim_path = _tmp4_;
+#line 18706 "Commands.c"
+ }
+#line 2073 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = tag_global;
+#line 2073 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = victim_path;
+#line 2073 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = tag_source_collection_exists (_tmp5_, _tmp6_, FALSE);
+#line 2073 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp7_) {
+#line 2074 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (victim_path);
+#line 2074 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 18720 "Commands.c"
+ }
+#line 2076 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = victim_path;
+#line 2076 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = tag_for_path (_tmp8_);
+#line 2076 "/home/jens/Source/shotwell/src/Commands.vala"
+ victim = _tmp9_;
+#line 2079 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = victim;
+#line 2079 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = tag_get_hierarchical_children (_tmp10_);
+#line 2079 "/home/jens/Source/shotwell/src/Commands.vala"
+ victim_children = _tmp11_;
+#line 18734 "Commands.c"
+ {
+ gint i = 0;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = 0;
+#line 18739 "Commands.c"
+ {
+ gboolean _tmp12_ = FALSE;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = TRUE;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 18746 "Commands.c"
+ gint _tmp14_ = 0;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ TagSourceCollection* _tmp18_ = NULL;
+ TagSourceCollection* _tmp19_ = NULL;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gpointer _tmp22_ = NULL;
+ Tag* _tmp23_ = NULL;
+ Marker* _tmp24_ = NULL;
+ Marker* _tmp25_ = NULL;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp12_) {
+#line 18761 "Commands.c"
+ gint _tmp13_ = 0;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = i;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ i = _tmp13_ + 1;
+#line 18767 "Commands.c"
+ }
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = FALSE;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = i;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = victim_children;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp14_ < _tmp17_)) {
+#line 2080 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 18783 "Commands.c"
+ }
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = tag_global;
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = tag_global;
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = victim_children;
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = i;
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = gee_list_get (_tmp20_, _tmp21_);
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = (Tag*) _tmp22_;
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_DATA_OBJECT, DataObject));
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _tmp24_;
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp25_, TRUE, NULL, NULL, NULL);
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp25_);
+#line 2081 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp23_);
+#line 18807 "Commands.c"
+ }
+ }
+ }
+#line 2084 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = tag_global;
+#line 2084 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = tag_global;
+#line 2084 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = victim;
+#line 2084 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_DATA_OBJECT, DataObject));
+#line 2084 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = _tmp29_;
+#line 2084 "/home/jens/Source/shotwell/src/Commands.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp30_, TRUE, NULL, NULL, NULL);
+#line 2084 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp30_);
+#line 2068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (victim_children);
+#line 2068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (victim);
+#line 2068 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (victim_path);
+#line 18831 "Commands.c"
+}
+
+
+static void reparent_tag_command_real_execute (Command* base) {
+ ReparentTagCommand * self;
+ GeeList* _tmp0_ = NULL;
+#line 2087 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_REPARENT_TAG_COMMAND, ReparentTagCommand);
+#line 2088 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->after_state;
+#line 2088 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_ == NULL) {
+#line 18844 "Commands.c"
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2089 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_save_before_state (self);
+#line 2091 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->to_path;
+#line 2091 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_prepare_parent (self, _tmp1_);
+#line 2093 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->from_path;
+#line 2093 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->to_path;
+#line 2093 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_copy_subtree (self, _tmp2_, _tmp3_);
+#line 2095 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_save_after_state (self);
+#line 2097 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_do_source_parent_detachments (self);
+#line 2099 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->from_path;
+#line 2099 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_destroy_subtree (self, _tmp4_);
+#line 18869 "Commands.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GeeMap* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 2101 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->to_path;
+#line 2101 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_prepare_parent (self, _tmp5_);
+#line 2103 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_restore_after_state (self);
+#line 2105 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->to_path;
+#line 2105 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->in_play_child_structure;
+#line 2105 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_restore_child_attachments_at (self, _tmp6_, _tmp7_);
+#line 2106 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = self->priv->to_path;
+#line 2106 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_reattach_in_play_sources_at (self, _tmp8_);
+#line 2108 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_do_source_parent_detachments (self);
+#line 2109 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_do_destination_parent_reattachments (self);
+#line 2111 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->from_path;
+#line 2111 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_destroy_subtree (self, _tmp9_);
+#line 18900 "Commands.c"
+ }
+}
+
+
+static void reparent_tag_command_real_undo (Command* base) {
+ ReparentTagCommand * self;
+ GeeList* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ GeeMap* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 2115 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_REPARENT_TAG_COMMAND, ReparentTagCommand);
+#line 2116 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->src_before_state;
+#line 2116 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp0_ != NULL, "src_before_state != null");
+#line 2118 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->from_path;
+#line 2118 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_prepare_parent (self, _tmp1_);
+#line 2120 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_restore_before_state (self);
+#line 2122 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->to_path_exists;
+#line 2122 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp2_) {
+#line 18932 "Commands.c"
+ const gchar* _tmp3_ = NULL;
+#line 2123 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->to_path;
+#line 2123 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_destroy_subtree (self, _tmp3_);
+#line 18938 "Commands.c"
+ }
+#line 2125 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->from_path;
+#line 2125 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = self->priv->in_play_child_structure;
+#line 2125 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_restore_child_attachments_at (self, _tmp4_, _tmp5_);
+#line 2126 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = self->priv->from_path;
+#line 2126 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_reattach_in_play_sources_at (self, _tmp6_);
+#line 2128 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_do_source_parent_reattachments (self);
+#line 2129 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_do_destination_parent_detachments (self);
+#line 2131 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->to_path;
+#line 2131 "/home/jens/Source/shotwell/src/Commands.vala"
+ hierarchical_tag_utilities_cleanup_root_path (_tmp7_);
+#line 2132 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = self->priv->from_path;
+#line 2132 "/home/jens/Source/shotwell/src/Commands.vala"
+ hierarchical_tag_utilities_cleanup_root_path (_tmp8_);
+#line 2133 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->to_path_parent_path;
+#line 2133 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp9_ != NULL) {
+#line 18966 "Commands.c"
+ const gchar* _tmp10_ = NULL;
+#line 2134 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->to_path_parent_path;
+#line 2134 "/home/jens/Source/shotwell/src/Commands.vala"
+ hierarchical_tag_utilities_cleanup_root_path (_tmp10_);
+#line 18972 "Commands.c"
+ }
+}
+
+
+static void reparent_tag_command_class_init (ReparentTagCommandClass * klass) {
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ reparent_tag_command_parent_class = g_type_class_peek_parent (klass);
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (ReparentTagCommandPrivate));
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = reparent_tag_command_real_execute;
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = reparent_tag_command_real_undo;
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = reparent_tag_command_finalize;
+#line 18988 "Commands.c"
+}
+
+
+static void reparent_tag_command_instance_init (ReparentTagCommand * self) {
+ GeeHashSet* _tmp0_ = NULL;
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = REPARENT_TAG_COMMAND_GET_PRIVATE (self);
+#line 1683 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->src_before_state = NULL;
+#line 1684 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->dest_before_state = NULL;
+#line 1685 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->after_state = NULL;
+#line 1686 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1686 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->sources_in_play = _tmp0_;
+#line 1687 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->dest_parent_attachments = NULL;
+#line 1688 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->src_parent_detachments = NULL;
+#line 1689 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->in_play_child_structure = NULL;
+#line 1690 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->existing_dest_child_structure = NULL;
+#line 1691 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->existing_dest_membership = NULL;
+#line 1692 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_path_exists = FALSE;
+#line 19018 "Commands.c"
+}
+
+
+static void reparent_tag_command_finalize (GObject* obj) {
+ ReparentTagCommand * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ VideoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_REPARENT_TAG_COMMAND, ReparentTagCommand);
+#line 1724 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = library_photo_global;
+#line 1724 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("items-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 1724 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _reparent_tag_command_on_items_destroyed_source_collection_items_destroyed, self);
+#line 1725 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = video_global;
+#line 1725 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("items-destroyed", TYPE_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 1725 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _reparent_tag_command_on_items_destroyed_source_collection_items_destroyed, self);
+#line 1680 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->from_path);
+#line 1681 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path);
+#line 1682 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->to_path_parent_path);
+#line 1683 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->src_before_state);
+#line 1684 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->dest_before_state);
+#line 1685 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->after_state);
+#line 1686 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->sources_in_play);
+#line 1687 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->dest_parent_attachments);
+#line 1688 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->src_parent_detachments);
+#line 1689 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->in_play_child_structure);
+#line 1690 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->existing_dest_child_structure);
+#line 1691 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->existing_dest_membership);
+#line 1679 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (reparent_tag_command_parent_class)->finalize (obj);
+#line 19068 "Commands.c"
+}
+
+
+GType reparent_tag_command_get_type (void) {
+ static volatile gsize reparent_tag_command_type_id__volatile = 0;
+ if (g_once_init_enter (&reparent_tag_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ReparentTagCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) reparent_tag_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReparentTagCommand), 0, (GInstanceInitFunc) reparent_tag_command_instance_init, NULL };
+ GType reparent_tag_command_type_id;
+ reparent_tag_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "ReparentTagCommand", &g_define_type_info, 0);
+ g_once_init_leave (&reparent_tag_command_type_id__volatile, reparent_tag_command_type_id);
+ }
+ return reparent_tag_command_type_id__volatile;
+}
+
+
+static void _modify_tags_command_on_proxy_broken_source_proxy_broken (SourceProxy* _sender, gpointer self) {
+#line 2179 "/home/jens/Source/shotwell/src/Commands.vala"
+ modify_tags_command_on_proxy_broken ((ModifyTagsCommand*) self);
+#line 19087 "Commands.c"
+}
+
+
+ModifyTagsCommand* modify_tags_command_construct (GType object_type, MediaSource* media, GeeCollection* new_tag_list) {
+ ModifyTagsCommand * self = NULL;
+ MediaSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ GeeList* original_tags = NULL;
+ TagSourceCollection* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeSortedSet* new_paths = NULL;
+ GeeTreeSet* _tmp23_ = NULL;
+#line 2143 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (media), NULL);
+#line 2143 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (new_tag_list), NULL);
+#line 2144 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = media;
+#line 2144 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (ModifyTagsCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), RESOURCES_MODIFY_TAGS_LABEL, "");
+#line 2146 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = media;
+#line 2146 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 2146 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->media);
+#line 2146 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->media = _tmp2_;
+#line 2149 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = tag_global;
+#line 2149 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = media;
+#line 2149 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = tag_source_collection_fetch_for_source (_tmp3_, _tmp4_);
+#line 2149 "/home/jens/Source/shotwell/src/Commands.vala"
+ original_tags = _tmp5_;
+#line 2150 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = original_tags;
+#line 2150 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp6_ != NULL) {
+#line 19131 "Commands.c"
+ {
+ GeeList* _tag_list = NULL;
+ GeeList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tag_size = 0;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tag_index = 0;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = original_tags;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tag_list = _tmp8_;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tag_list;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tag_size = _tmp11_;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tag_index = -1;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19159 "Commands.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ Tag* tag = NULL;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+ SourceProxy* proxy = NULL;
+ Tag* _tmp18_ = NULL;
+ SourceProxy* _tmp19_ = NULL;
+ GeeArrayList* _tmp20_ = NULL;
+ SourceProxy* _tmp21_ = NULL;
+ SourceProxy* _tmp22_ = NULL;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _tag_index;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tag_index = _tmp12_ + 1;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _tag_index;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _tag_size;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19185 "Commands.c"
+ }
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tag_list;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tag_index;
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = gee_list_get (_tmp15_, _tmp16_);
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag = (Tag*) _tmp17_;
+#line 2152 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = tag;
+#line 2152 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_PROXYABLE, Proxyable));
+#line 2152 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = _tmp19_;
+#line 2153 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = self->priv->to_remove;
+#line 2153 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = proxy;
+#line 2153 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp21_);
+#line 2154 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = proxy;
+#line 2154 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp22_, "broken", (GCallback) _modify_tags_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (tag);
+#line 19215 "Commands.c"
+ }
+#line 2151 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tag_list);
+#line 19219 "Commands.c"
+ }
+ }
+#line 2160 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 2160 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_paths = G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 19226 "Commands.c"
+ {
+ GeeIterator* _new_tag_it = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ GeeIterator* _tmp25_ = NULL;
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = new_tag_list;
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _new_tag_it = _tmp25_;
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19239 "Commands.c"
+ GeeIterator* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ Tag* new_tag = NULL;
+ GeeIterator* _tmp28_ = NULL;
+ gpointer _tmp29_ = NULL;
+ gchar* new_tag_path = NULL;
+ Tag* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ GeeSortedSet* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ GeeSortedSet* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ GeeList* _tmp36_ = NULL;
+ GeeList* _tmp37_ = NULL;
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _new_tag_it;
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = gee_iterator_next (_tmp26_);
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp27_) {
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19262 "Commands.c"
+ }
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = _new_tag_it;
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = gee_iterator_get (_tmp28_);
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_tag = (Tag*) _tmp29_;
+#line 2162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = new_tag;
+#line 2162 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = tag_get_path (_tmp30_);
+#line 2162 "/home/jens/Source/shotwell/src/Commands.vala"
+ new_tag_path = _tmp31_;
+#line 2164 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp32_ = new_paths;
+#line 2164 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp33_ = new_tag_path;
+#line 2164 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_COLLECTION, GeeCollection), _tmp33_);
+#line 2165 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp34_ = new_paths;
+#line 2165 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp35_ = new_tag_path;
+#line 2165 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp36_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp35_);
+#line 2165 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp37_ = _tmp36_;
+#line 2165 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2165 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp37_);
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (new_tag_path);
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (new_tag);
+#line 19298 "Commands.c"
+ }
+#line 2161 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_new_tag_it);
+#line 19302 "Commands.c"
+ }
+ {
+ GeeIterator* _path_it = NULL;
+ GeeSortedSet* _tmp38_ = NULL;
+ GeeIterator* _tmp39_ = NULL;
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp38_ = new_paths;
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp39_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _path_it = _tmp39_;
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19316 "Commands.c"
+ GeeIterator* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp42_ = NULL;
+ gpointer _tmp43_ = NULL;
+ TagSourceCollection* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ SourceProxy* proxy = NULL;
+ const gchar* _tmp47_ = NULL;
+ Tag* _tmp48_ = NULL;
+ Tag* _tmp49_ = NULL;
+ SourceProxy* _tmp50_ = NULL;
+ SourceProxy* _tmp51_ = NULL;
+ GeeArrayList* _tmp52_ = NULL;
+ SourceProxy* _tmp53_ = NULL;
+ SourceProxy* _tmp54_ = NULL;
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp40_ = _path_it;
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp41_ = gee_iterator_next (_tmp40_);
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp41_) {
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19342 "Commands.c"
+ }
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp42_ = _path_it;
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp43_ = gee_iterator_get (_tmp42_);
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ path = (gchar*) _tmp43_;
+#line 2169 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp44_ = tag_global;
+#line 2169 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp45_ = path;
+#line 2169 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp46_ = tag_source_collection_exists (_tmp44_, _tmp45_, FALSE);
+#line 2169 "/home/jens/Source/shotwell/src/Commands.vala"
+ _vala_assert (_tmp46_, "Tag.global.exists(path)");
+#line 2171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp47_ = path;
+#line 2171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp48_ = tag_for_path (_tmp47_);
+#line 2171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp49_ = _tmp48_;
+#line 2171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp50_ = proxyable_get_proxy (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_PROXYABLE, Proxyable));
+#line 2171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp51_ = _tmp50_;
+#line 2171 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp49_);
+#line 2171 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = _tmp51_;
+#line 2172 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp52_ = self->priv->to_add;
+#line 2172 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp53_ = proxy;
+#line 2172 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp53_);
+#line 2173 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp54_ = proxy;
+#line 2173 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (_tmp54_, "broken", (GCallback) _modify_tags_command_on_proxy_broken_source_proxy_broken, self, 0);
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (path);
+#line 19386 "Commands.c"
+ }
+#line 2168 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_path_it);
+#line 19390 "Commands.c"
+ }
+#line 2143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (new_paths);
+#line 2143 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (original_tags);
+#line 2143 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 19398 "Commands.c"
+}
+
+
+ModifyTagsCommand* modify_tags_command_new (MediaSource* media, GeeCollection* new_tag_list) {
+#line 2143 "/home/jens/Source/shotwell/src/Commands.vala"
+ return modify_tags_command_construct (TYPE_MODIFY_TAGS_COMMAND, media, new_tag_list);
+#line 19405 "Commands.c"
+}
+
+
+static void modify_tags_command_real_execute (Command* base) {
+ ModifyTagsCommand * self;
+#line 2185 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommand);
+#line 19413 "Commands.c"
+ {
+ GeeArrayList* _proxy_list = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _proxy_size = 0;
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _proxy_index = 0;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->to_remove;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_list = _tmp1_;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _proxy_list;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_size = _tmp4_;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = -1;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19441 "Commands.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ SourceProxy* proxy = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ SourceProxy* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ GeeList* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _proxy_index;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = _tmp5_ + 1;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _proxy_index;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _proxy_size;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19467 "Commands.c"
+ }
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _proxy_list;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _proxy_index;
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp9_);
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp10_;
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = proxy;
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = source_proxy_get_source (_tmp11_);
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_TAG, Tag);
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = self->priv->media;
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = tag_detach (_tmp13_, _tmp14_);
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tmp15_;
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp16_);
+#line 2187 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp13_);
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 19495 "Commands.c"
+ }
+#line 2186 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxy_list);
+#line 19499 "Commands.c"
+ }
+ {
+ GeeArrayList* _proxy_list = NULL;
+ GeeArrayList* _tmp17_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ gint _proxy_size = 0;
+ GeeArrayList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _proxy_index = 0;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = self->priv->to_add;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_list = _tmp18_;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _proxy_list;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = _tmp20_;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_size = _tmp21_;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = -1;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19528 "Commands.c"
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ SourceProxy* proxy = NULL;
+ GeeArrayList* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gpointer _tmp27_ = NULL;
+ SourceProxy* _tmp28_ = NULL;
+ DataSource* _tmp29_ = NULL;
+ Tag* _tmp30_ = NULL;
+ MediaSource* _tmp31_ = NULL;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _proxy_index;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = _tmp22_ + 1;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _proxy_index;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _proxy_size;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp23_ < _tmp24_)) {
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19552 "Commands.c"
+ }
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _proxy_list;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _proxy_index;
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp26_);
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp27_;
+#line 2190 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = proxy;
+#line 2190 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = source_proxy_get_source (_tmp28_);
+#line 2190 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_TAG, Tag);
+#line 2190 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = self->priv->media;
+#line 2190 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp30_, _tmp31_);
+#line 2190 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp30_);
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 19576 "Commands.c"
+ }
+#line 2189 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxy_list);
+#line 19580 "Commands.c"
+ }
+}
+
+
+static void modify_tags_command_real_undo (Command* base) {
+ ModifyTagsCommand * self;
+#line 2193 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommand);
+#line 19589 "Commands.c"
+ {
+ GeeArrayList* _proxy_list = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _proxy_size = 0;
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _proxy_index = 0;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->to_add;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_list = _tmp1_;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _proxy_list;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_size = _tmp4_;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = -1;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19617 "Commands.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ SourceProxy* proxy = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ SourceProxy* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ GeeList* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _proxy_index;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = _tmp5_ + 1;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _proxy_index;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _proxy_size;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19643 "Commands.c"
+ }
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _proxy_list;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _proxy_index;
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp9_);
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp10_;
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = proxy;
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = source_proxy_get_source (_tmp11_);
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_TAG, Tag);
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = self->priv->media;
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = tag_detach (_tmp13_, _tmp14_);
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _tmp15_;
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp16_);
+#line 2195 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp13_);
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 19671 "Commands.c"
+ }
+#line 2194 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxy_list);
+#line 19675 "Commands.c"
+ }
+ {
+ GeeArrayList* _proxy_list = NULL;
+ GeeArrayList* _tmp17_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ gint _proxy_size = 0;
+ GeeArrayList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _proxy_index = 0;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = self->priv->to_remove;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_list = _tmp18_;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _proxy_list;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = _tmp20_;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_size = _tmp21_;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = -1;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19704 "Commands.c"
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ SourceProxy* proxy = NULL;
+ GeeArrayList* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gpointer _tmp27_ = NULL;
+ SourceProxy* _tmp28_ = NULL;
+ DataSource* _tmp29_ = NULL;
+ Tag* _tmp30_ = NULL;
+ MediaSource* _tmp31_ = NULL;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _proxy_index;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = _tmp22_ + 1;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _proxy_index;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _proxy_size;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp23_ < _tmp24_)) {
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19728 "Commands.c"
+ }
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = _proxy_list;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _proxy_index;
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp26_);
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp27_;
+#line 2198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = proxy;
+#line 2198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = source_proxy_get_source (_tmp28_);
+#line 2198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_TAG, Tag);
+#line 2198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp31_ = self->priv->media;
+#line 2198 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach (_tmp30_, _tmp31_);
+#line 2198 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp30_);
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 19752 "Commands.c"
+ }
+#line 2197 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxy_list);
+#line 19756 "Commands.c"
+ }
+}
+
+
+static void modify_tags_command_on_proxy_broken (ModifyTagsCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 2201 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_MODIFY_TAGS_COMMAND (self));
+#line 2202 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 2202 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 2202 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp1_);
+#line 2202 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 19774 "Commands.c"
+}
+
+
+static void modify_tags_command_class_init (ModifyTagsCommandClass * klass) {
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ modify_tags_command_parent_class = g_type_class_peek_parent (klass);
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (ModifyTagsCommandPrivate));
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = modify_tags_command_real_execute;
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = modify_tags_command_real_undo;
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = modify_tags_command_finalize;
+#line 19789 "Commands.c"
+}
+
+
+static void modify_tags_command_instance_init (ModifyTagsCommand * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = MODIFY_TAGS_COMMAND_GET_PRIVATE (self);
+#line 2140 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = gee_array_list_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL);
+#line 2140 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_add = _tmp0_;
+#line 2141 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_array_list_new (TYPE_SOURCE_PROXY, (GBoxedCopyFunc) source_proxy_ref, source_proxy_unref, NULL, NULL, NULL);
+#line 2141 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_remove = _tmp1_;
+#line 19806 "Commands.c"
+}
+
+
+static void modify_tags_command_finalize (GObject* obj) {
+ ModifyTagsCommand * self;
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommand);
+#line 19814 "Commands.c"
+ {
+ GeeArrayList* _proxy_list = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _proxy_size = 0;
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _proxy_index = 0;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->to_add;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_list = _tmp1_;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _proxy_list;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_size = _tmp4_;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = -1;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19842 "Commands.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ SourceProxy* proxy = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ SourceProxy* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _proxy_index;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = _tmp5_ + 1;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _proxy_index;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _proxy_size;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19864 "Commands.c"
+ }
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _proxy_list;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _proxy_index;
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp9_);
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp10_;
+#line 2179 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = proxy;
+#line 2179 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp12_, NULL, FALSE);
+#line 2179 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp11_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _modify_tags_command_on_proxy_broken_source_proxy_broken, self);
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 19882 "Commands.c"
+ }
+#line 2178 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxy_list);
+#line 19886 "Commands.c"
+ }
+ {
+ GeeArrayList* _proxy_list = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ gint _proxy_size = 0;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _proxy_index = 0;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = self->priv->to_remove;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _g_object_ref0 (_tmp13_);
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_list = _tmp14_;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _proxy_list;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _tmp16_;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_size = _tmp17_;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = -1;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 19915 "Commands.c"
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ SourceProxy* proxy = NULL;
+ GeeArrayList* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gpointer _tmp23_ = NULL;
+ SourceProxy* _tmp24_ = NULL;
+ guint _tmp25_ = 0U;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _proxy_index;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _proxy_index = _tmp18_ + 1;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = _proxy_index;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _proxy_size;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp19_ < _tmp20_)) {
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 19937 "Commands.c"
+ }
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = _proxy_list;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _proxy_index;
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp22_);
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ proxy = (SourceProxy*) _tmp23_;
+#line 2182 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = proxy;
+#line 2182 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("broken", TYPE_SOURCE_PROXY, &_tmp25_, NULL, FALSE);
+#line 2182 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (_tmp24_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp25_, 0, NULL, (GCallback) _modify_tags_command_on_proxy_broken_source_proxy_broken, self);
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_proxy_unref0 (proxy);
+#line 19955 "Commands.c"
+ }
+#line 2181 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_proxy_list);
+#line 19959 "Commands.c"
+ }
+#line 2139 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->media);
+#line 2140 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->to_add);
+#line 2141 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->to_remove);
+#line 2138 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (modify_tags_command_parent_class)->finalize (obj);
+#line 19969 "Commands.c"
+}
+
+
+GType modify_tags_command_get_type (void) {
+ static volatile gsize modify_tags_command_type_id__volatile = 0;
+ if (g_once_init_enter (&modify_tags_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ModifyTagsCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) modify_tags_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ModifyTagsCommand), 0, (GInstanceInitFunc) modify_tags_command_instance_init, NULL };
+ GType modify_tags_command_type_id;
+ modify_tags_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "ModifyTagsCommand", &g_define_type_info, 0);
+ g_once_init_leave (&modify_tags_command_type_id__volatile, modify_tags_command_type_id);
+ }
+ return modify_tags_command_type_id__volatile;
+}
+
+
+static void _tag_untag_photos_command_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 2226 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_untag_photos_command_on_source_destroyed ((TagUntagPhotosCommand*) self, source);
+#line 19988 "Commands.c"
+}
+
+
+TagUntagPhotosCommand* tag_untag_photos_command_construct (GType object_type, Tag* tag, GeeCollection* sources, gint count, gboolean attach) {
+ TagUntagPhotosCommand * self = NULL;
+ gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ Tag* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ LibraryPhotoSourceCollection* _tmp19_ = NULL;
+ VideoSourceCollection* _tmp20_ = NULL;
+#line 2212 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 2212 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (sources), NULL);
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = attach;
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 20013 "Commands.c"
+ Tag* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = tag;
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = tag_get_user_visible_name (_tmp2_);
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = count;
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = resources_tag_photos_label (_tmp4_, _tmp5_);
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp0_);
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp6_;
+#line 2214 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp4_);
+#line 20035 "Commands.c"
+ } else {
+ Tag* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gchar* _tmp11_ = NULL;
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = tag;
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = tag_get_user_visible_name (_tmp7_);
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_;
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = count;
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = resources_untag_photos_label (_tmp9_, _tmp10_);
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp0_);
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp11_;
+#line 2215 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp9_);
+#line 20058 "Commands.c"
+ }
+#line 2213 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = tag;
+#line 2213 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = tag;
+#line 2213 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_OBJECT, DataObject));
+#line 2213 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tmp14_;
+#line 2213 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (TagUntagPhotosCommand*) simple_proxyable_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PROXYABLE, Proxyable), _tmp0_, _tmp15_);
+#line 2213 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp15_);
+#line 2218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = sources;
+#line 2218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = _g_object_ref0 (_tmp16_);
+#line 2218 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->sources);
+#line 2218 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->sources = _tmp17_;
+#line 2219 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = attach;
+#line 2219 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->attach = _tmp18_;
+#line 2221 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = library_photo_global;
+#line 2221 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _tag_untag_photos_command_on_source_destroyed_source_collection_item_destroyed, self, 0);
+#line 2222 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = video_global;
+#line 2222 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _tag_untag_photos_command_on_source_destroyed_source_collection_item_destroyed, self, 0);
+#line 2212 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp0_);
+#line 2212 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 20096 "Commands.c"
+}
+
+
+TagUntagPhotosCommand* tag_untag_photos_command_new (Tag* tag, GeeCollection* sources, gint count, gboolean attach) {
+#line 2212 "/home/jens/Source/shotwell/src/Commands.vala"
+ return tag_untag_photos_command_construct (TYPE_TAG_UNTAG_PHOTOS_COMMAND, tag, sources, count, attach);
+#line 20103 "Commands.c"
+}
+
+
+static void tag_untag_photos_command_real_execute_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ TagUntagPhotosCommand * self;
+ gboolean _tmp0_ = FALSE;
+#line 2230 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommand);
+#line 2230 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 2231 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->attach;
+#line 2231 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_) {
+#line 20118 "Commands.c"
+ DataSource* _tmp1_ = NULL;
+#line 2232 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source;
+#line 2232 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_untag_photos_command_do_attach (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_TAG, Tag));
+#line 20124 "Commands.c"
+ } else {
+ DataSource* _tmp2_ = NULL;
+#line 2234 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = source;
+#line 2234 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_untag_photos_command_do_detach (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_TAG, Tag));
+#line 20131 "Commands.c"
+ }
+}
+
+
+static void tag_untag_photos_command_real_undo_on_source (SimpleProxyableCommand* base, DataSource* source) {
+ TagUntagPhotosCommand * self;
+ gboolean _tmp0_ = FALSE;
+#line 2237 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommand);
+#line 2237 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 2238 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->attach;
+#line 2238 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_) {
+#line 20147 "Commands.c"
+ DataSource* _tmp1_ = NULL;
+#line 2239 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source;
+#line 2239 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_untag_photos_command_do_detach (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_TAG, Tag));
+#line 20153 "Commands.c"
+ } else {
+ DataSource* _tmp2_ = NULL;
+#line 2241 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = source;
+#line 2241 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_untag_photos_command_do_attach (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_TAG, Tag));
+#line 20160 "Commands.c"
+ }
+}
+
+
+static void tag_untag_photos_command_do_attach (TagUntagPhotosCommand* self, Tag* tag) {
+ GeeMultiMap* _tmp0_ = NULL;
+#line 2244 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TAG_UNTAG_PHOTOS_COMMAND (self));
+#line 2244 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TAG (tag));
+#line 2246 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->detached_from;
+#line 2246 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_ == NULL) {
+#line 20175 "Commands.c"
+ Tag* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ Tag* curr_tmp = NULL;
+ Tag* _tmp4_ = NULL;
+ Tag* _tmp5_ = NULL;
+#line 2247 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag;
+#line 2247 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->sources;
+#line 2247 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach_many (_tmp1_, _tmp2_);
+#line 2249 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2249 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->attached_to);
+#line 2249 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->attached_to = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_LIST, GeeList);
+#line 2251 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = tag;
+#line 2251 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 2251 "/home/jens/Source/shotwell/src/Commands.vala"
+ curr_tmp = _tmp5_;
+#line 2253 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 20202 "Commands.c"
+ Tag* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ Tag* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ Tag* _tmp10_ = NULL;
+#line 2253 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = curr_tmp;
+#line 2253 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp6_ != NULL)) {
+#line 2253 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 20214 "Commands.c"
+ }
+#line 2254 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->attached_to;
+#line 2254 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = curr_tmp;
+#line 2254 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), _tmp8_);
+#line 2255 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = curr_tmp;
+#line 2255 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = tag_get_hierarchical_parent (_tmp9_);
+#line 2255 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (curr_tmp);
+#line 2255 "/home/jens/Source/shotwell/src/Commands.vala"
+ curr_tmp = _tmp10_;
+#line 20230 "Commands.c"
+ }
+#line 2258 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (curr_tmp);
+#line 2258 "/home/jens/Source/shotwell/src/Commands.vala"
+ return;
+#line 20236 "Commands.c"
+ }
+ {
+ GeeIterator* _detached_tag_it = NULL;
+ GeeMultiMap* _tmp11_ = NULL;
+ GeeMultiSet* _tmp12_ = NULL;
+ GeeMultiSet* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = self->priv->detached_from;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = gee_multi_map_get_all_keys (_tmp11_);
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _tmp12_;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _tmp14_;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp13_);
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _detached_tag_it = _tmp15_;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 20261 "Commands.c"
+ GeeIterator* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ Tag* detached_tag = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ Tag* _tmp20_ = NULL;
+ GeeMultiMap* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _detached_tag_it;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = gee_iterator_next (_tmp16_);
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp17_) {
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 20280 "Commands.c"
+ }
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = _detached_tag_it;
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ detached_tag = (Tag*) _tmp19_;
+#line 2263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = detached_tag;
+#line 2263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = self->priv->detached_from;
+#line 2263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = detached_tag;
+#line 2263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = gee_multi_map_get (_tmp21_, _tmp22_);
+#line 2263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = _tmp23_;
+#line 2263 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_attach_many (_tmp20_, _tmp24_);
+#line 2263 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp24_);
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (detached_tag);
+#line 20304 "Commands.c"
+ }
+#line 2262 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_detached_tag_it);
+#line 20308 "Commands.c"
+ }
+#line 2265 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->detached_from);
+#line 2265 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->detached_from = NULL;
+#line 2266 "/home/jens/Source/shotwell/src/Commands.vala"
+ simple_proxyable_command_clear_added_proxies (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand));
+#line 20316 "Commands.c"
+}
+
+
+static void tag_untag_photos_command_do_detach (TagUntagPhotosCommand* self, Tag* tag) {
+ GeeList* _tmp0_ = NULL;
+#line 2269 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TAG_UNTAG_PHOTOS_COMMAND (self));
+#line 2269 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TAG (tag));
+#line 2270 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->attached_to;
+#line 2270 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp0_ == NULL) {
+#line 20330 "Commands.c"
+ Tag* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeMultiMap* _tmp3_ = NULL;
+ GeeMultiMap* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ GeeSet* _tmp6_ = NULL;
+#line 2274 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = tag;
+#line 2274 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->sources;
+#line 2274 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = tag_detach_many (_tmp1_, _tmp2_);
+#line 2274 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->detached_from);
+#line 2274 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->detached_from = _tmp3_;
+#line 2278 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->detached_from;
+#line 2278 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_multi_map_get_keys (_tmp4_);
+#line 2278 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 2278 "/home/jens/Source/shotwell/src/Commands.vala"
+ simple_proxyable_command_add_proxyables (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand), G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2278 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp6_);
+#line 20357 "Commands.c"
+ } else {
+ {
+ GeeList* _t_list = NULL;
+ GeeList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _t_size = 0;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _t_index = 0;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->attached_to;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_list = _tmp8_;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _t_list;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _tmp10_;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_size = _tmp11_;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_index = -1;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 20386 "Commands.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ Tag* t = NULL;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = _t_index;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _t_index = _tmp12_ + 1;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _t_index;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _t_size;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 20406 "Commands.c"
+ }
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = _t_list;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = _t_index;
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = gee_list_get (_tmp15_, _tmp16_);
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ t = (Tag*) _tmp17_;
+#line 20416 "Commands.c"
+ {
+ GeeIterator* _ms_it = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeIterator* _tmp19_ = NULL;
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = self->priv->sources;
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _ms_it = _tmp19_;
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 20429 "Commands.c"
+ GeeIterator* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ MediaSource* ms = NULL;
+ GeeIterator* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+ Tag* _tmp24_ = NULL;
+ MediaSource* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = _ms_it;
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = gee_iterator_next (_tmp20_);
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp21_) {
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 20446 "Commands.c"
+ }
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = _ms_it;
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = gee_iterator_get (_tmp22_);
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ ms = (MediaSource*) _tmp23_;
+#line 2283 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = t;
+#line 2283 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = ms;
+#line 2283 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = tag_get_attachment_count (_tmp24_, _tmp25_);
+#line 2283 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp26_ < 2) {
+#line 20462 "Commands.c"
+ Tag* _tmp27_ = NULL;
+ MediaSource* _tmp28_ = NULL;
+ GeeList* _tmp29_ = NULL;
+ GeeList* _tmp30_ = NULL;
+#line 2285 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp27_ = t;
+#line 2285 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp28_ = ms;
+#line 2285 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp29_ = tag_detach (_tmp27_, _tmp28_);
+#line 2285 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp30_ = _tmp29_;
+#line 2285 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp30_);
+#line 20477 "Commands.c"
+ }
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (ms);
+#line 20481 "Commands.c"
+ }
+#line 2281 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_ms_it);
+#line 20485 "Commands.c"
+ }
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (t);
+#line 20489 "Commands.c"
+ }
+#line 2280 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_t_list);
+#line 20493 "Commands.c"
+ }
+ }
+}
+
+
+static void tag_untag_photos_command_on_source_destroyed (TagUntagPhotosCommand* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 2292 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TAG_UNTAG_PHOTOS_COMMAND (self));
+#line 2292 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 2293 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 2293 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 2293 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 2293 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_debug ("Commands.vala:2293: on_source_destroyed: %s", _tmp2_);
+#line 2293 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp2_);
+#line 2294 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->sources;
+#line 2294 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = source;
+#line 2294 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_collection_contains (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 2294 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp5_) {
+#line 20528 "Commands.c"
+ CommandManager* _tmp6_ = NULL;
+ CommandManager* _tmp7_ = NULL;
+#line 2295 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 2295 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _tmp6_;
+#line 2295 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp7_);
+#line 2295 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp7_);
+#line 20539 "Commands.c"
+ }
+}
+
+
+static void tag_untag_photos_command_class_init (TagUntagPhotosCommandClass * klass) {
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ tag_untag_photos_command_parent_class = g_type_class_peek_parent (klass);
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (TagUntagPhotosCommandPrivate));
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->execute_on_source = tag_untag_photos_command_real_execute_on_source;
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((SimpleProxyableCommandClass *) klass)->undo_on_source = tag_untag_photos_command_real_undo_on_source;
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = tag_untag_photos_command_finalize;
+#line 20555 "Commands.c"
+}
+
+
+static void tag_untag_photos_command_instance_init (TagUntagPhotosCommand * self) {
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = TAG_UNTAG_PHOTOS_COMMAND_GET_PRIVATE (self);
+#line 2209 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->detached_from = NULL;
+#line 2210 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->attached_to = NULL;
+#line 20566 "Commands.c"
+}
+
+
+static void tag_untag_photos_command_finalize (GObject* obj) {
+ TagUntagPhotosCommand * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ VideoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommand);
+#line 2226 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = library_photo_global;
+#line 2226 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 2226 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _tag_untag_photos_command_on_source_destroyed_source_collection_item_destroyed, self);
+#line 2227 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = video_global;
+#line 2227 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 2227 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _tag_untag_photos_command_on_source_destroyed_source_collection_item_destroyed, self);
+#line 2207 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->sources);
+#line 2209 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->detached_from);
+#line 2210 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->attached_to);
+#line 2206 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (tag_untag_photos_command_parent_class)->finalize (obj);
+#line 20598 "Commands.c"
+}
+
+
+GType tag_untag_photos_command_get_type (void) {
+ static volatile gsize tag_untag_photos_command_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_untag_photos_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagUntagPhotosCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_untag_photos_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagUntagPhotosCommand), 0, (GInstanceInitFunc) tag_untag_photos_command_instance_init, NULL };
+ GType tag_untag_photos_command_type_id;
+ tag_untag_photos_command_type_id = g_type_register_static (TYPE_SIMPLE_PROXYABLE_COMMAND, "TagUntagPhotosCommand", &g_define_type_info, 0);
+ g_once_init_leave (&tag_untag_photos_command_type_id__volatile, tag_untag_photos_command_type_id);
+ }
+ return tag_untag_photos_command_type_id__volatile;
+}
+
+
+RenameSavedSearchCommand* rename_saved_search_command_construct (GType object_type, SavedSearch* search, const gchar* new_name) {
+ RenameSavedSearchCommand * self = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ SavedSearch* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ SavedSearch* _tmp10_ = NULL;
+ SavedSearch* _tmp11_ = NULL;
+ SavedSearch* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 2304 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), NULL);
+#line 2304 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (new_name != NULL, NULL);
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = search;
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = search;
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = new_name;
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = resources_rename_search_label (_tmp3_, _tmp4_);
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = search;
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_OBJECT, DataObject));
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _tmp8_;
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (RenameSavedSearchCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), _tmp6_, _tmp9_);
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp9_);
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp6_);
+#line 2305 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp3_);
+#line 2307 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = search;
+#line 2307 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 2307 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->search);
+#line 2307 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->search = _tmp11_;
+#line 2308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = search;
+#line 2308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 2308 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_name);
+#line 2308 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->old_name = _tmp13_;
+#line 2309 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = new_name;
+#line 2309 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 2309 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_name);
+#line 2309 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->new_name = _tmp15_;
+#line 2304 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 20690 "Commands.c"
+}
+
+
+RenameSavedSearchCommand* rename_saved_search_command_new (SavedSearch* search, const gchar* new_name) {
+#line 2304 "/home/jens/Source/shotwell/src/Commands.vala"
+ return rename_saved_search_command_construct (TYPE_RENAME_SAVED_SEARCH_COMMAND, search, new_name);
+#line 20697 "Commands.c"
+}
+
+
+static void rename_saved_search_command_real_execute (Command* base) {
+ RenameSavedSearchCommand * self;
+ SavedSearch* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2312 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommand);
+#line 2313 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->search;
+#line 2313 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->new_name;
+#line 2313 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = saved_search_rename (_tmp0_, _tmp1_);
+#line 2313 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp2_) {
+#line 20716 "Commands.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 2314 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->new_name;
+#line 2314 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = resources_rename_search_exists_message (_tmp3_);
+#line 2314 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 2314 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_error_message (_tmp5_, NULL);
+#line 2314 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp5_);
+#line 20730 "Commands.c"
+ }
+}
+
+
+static void rename_saved_search_command_real_undo (Command* base) {
+ RenameSavedSearchCommand * self;
+ SavedSearch* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2317 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommand);
+#line 2318 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->search;
+#line 2318 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = self->priv->old_name;
+#line 2318 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = saved_search_rename (_tmp0_, _tmp1_);
+#line 2318 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp2_) {
+#line 20750 "Commands.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 2319 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = self->priv->old_name;
+#line 2319 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = resources_rename_search_exists_message (_tmp3_);
+#line 2319 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 2319 "/home/jens/Source/shotwell/src/Commands.vala"
+ app_window_error_message (_tmp5_, NULL);
+#line 2319 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp5_);
+#line 20764 "Commands.c"
+ }
+}
+
+
+static void rename_saved_search_command_class_init (RenameSavedSearchCommandClass * klass) {
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ rename_saved_search_command_parent_class = g_type_class_peek_parent (klass);
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (RenameSavedSearchCommandPrivate));
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = rename_saved_search_command_real_execute;
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = rename_saved_search_command_real_undo;
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = rename_saved_search_command_finalize;
+#line 20780 "Commands.c"
+}
+
+
+static void rename_saved_search_command_instance_init (RenameSavedSearchCommand * self) {
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = RENAME_SAVED_SEARCH_COMMAND_GET_PRIVATE (self);
+#line 20787 "Commands.c"
+}
+
+
+static void rename_saved_search_command_finalize (GObject* obj) {
+ RenameSavedSearchCommand * self;
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommand);
+#line 2300 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->search);
+#line 2301 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->old_name);
+#line 2302 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (self->priv->new_name);
+#line 2299 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (rename_saved_search_command_parent_class)->finalize (obj);
+#line 20803 "Commands.c"
+}
+
+
+GType rename_saved_search_command_get_type (void) {
+ static volatile gsize rename_saved_search_command_type_id__volatile = 0;
+ if (g_once_init_enter (&rename_saved_search_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RenameSavedSearchCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rename_saved_search_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RenameSavedSearchCommand), 0, (GInstanceInitFunc) rename_saved_search_command_instance_init, NULL };
+ GType rename_saved_search_command_type_id;
+ rename_saved_search_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "RenameSavedSearchCommand", &g_define_type_info, 0);
+ g_once_init_leave (&rename_saved_search_command_type_id__volatile, rename_saved_search_command_type_id);
+ }
+ return rename_saved_search_command_type_id__volatile;
+}
+
+
+DeleteSavedSearchCommand* delete_saved_search_command_construct (GType object_type, SavedSearch* search) {
+ DeleteSavedSearchCommand * self = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ SavedSearch* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ SavedSearch* _tmp9_ = NULL;
+ SavedSearch* _tmp10_ = NULL;
+#line 2326 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), NULL);
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = search;
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = search;
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp2_;
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = resources_delete_search_label (_tmp3_);
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = search;
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_OBJECT, DataObject));
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (DeleteSavedSearchCommand*) single_data_source_command_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), _tmp5_, _tmp8_);
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp8_);
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp5_);
+#line 2327 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_free0 (_tmp3_);
+#line 2329 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = search;
+#line 2329 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 2329 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->search);
+#line 2329 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->search = _tmp10_;
+#line 2326 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 20870 "Commands.c"
+}
+
+
+DeleteSavedSearchCommand* delete_saved_search_command_new (SavedSearch* search) {
+#line 2326 "/home/jens/Source/shotwell/src/Commands.vala"
+ return delete_saved_search_command_construct (TYPE_DELETE_SAVED_SEARCH_COMMAND, search);
+#line 20877 "Commands.c"
+}
+
+
+static void delete_saved_search_command_real_execute (Command* base) {
+ DeleteSavedSearchCommand * self;
+ SavedSearchTable* _tmp0_ = NULL;
+ SavedSearchTable* _tmp1_ = NULL;
+ SavedSearch* _tmp2_ = NULL;
+#line 2332 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommand);
+#line 2333 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = saved_search_table_get_instance ();
+#line 2333 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _tmp0_;
+#line 2333 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->search;
+#line 2333 "/home/jens/Source/shotwell/src/Commands.vala"
+ saved_search_table_remove (_tmp1_, _tmp2_);
+#line 2333 "/home/jens/Source/shotwell/src/Commands.vala"
+ _saved_search_table_unref0 (_tmp1_);
+#line 20898 "Commands.c"
+}
+
+
+static void delete_saved_search_command_real_undo (Command* base) {
+ DeleteSavedSearchCommand * self;
+ SavedSearch* _tmp0_ = NULL;
+#line 2336 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommand);
+#line 2337 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->search;
+#line 2337 "/home/jens/Source/shotwell/src/Commands.vala"
+ saved_search_reconstitute (_tmp0_);
+#line 20911 "Commands.c"
+}
+
+
+static void delete_saved_search_command_class_init (DeleteSavedSearchCommandClass * klass) {
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ delete_saved_search_command_parent_class = g_type_class_peek_parent (klass);
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (DeleteSavedSearchCommandPrivate));
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = delete_saved_search_command_real_execute;
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = delete_saved_search_command_real_undo;
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = delete_saved_search_command_finalize;
+#line 20926 "Commands.c"
+}
+
+
+static void delete_saved_search_command_instance_init (DeleteSavedSearchCommand * self) {
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = DELETE_SAVED_SEARCH_COMMAND_GET_PRIVATE (self);
+#line 20933 "Commands.c"
+}
+
+
+static void delete_saved_search_command_finalize (GObject* obj) {
+ DeleteSavedSearchCommand * self;
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommand);
+#line 2324 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->search);
+#line 2323 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (delete_saved_search_command_parent_class)->finalize (obj);
+#line 20945 "Commands.c"
+}
+
+
+GType delete_saved_search_command_get_type (void) {
+ static volatile gsize delete_saved_search_command_type_id__volatile = 0;
+ if (g_once_init_enter (&delete_saved_search_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DeleteSavedSearchCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) delete_saved_search_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DeleteSavedSearchCommand), 0, (GInstanceInitFunc) delete_saved_search_command_instance_init, NULL };
+ GType delete_saved_search_command_type_id;
+ delete_saved_search_command_type_id = g_type_register_static (TYPE_SINGLE_DATA_SOURCE_COMMAND, "DeleteSavedSearchCommand", &g_define_type_info, 0);
+ g_once_init_leave (&delete_saved_search_command_type_id__volatile, delete_saved_search_command_type_id);
+ }
+ return delete_saved_search_command_type_id__volatile;
+}
+
+
+static void _trash_untrash_photos_command_on_photo_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 2358 "/home/jens/Source/shotwell/src/Commands.vala"
+ trash_untrash_photos_command_on_photo_destroyed ((TrashUntrashPhotosCommand*) self, source);
+#line 20964 "Commands.c"
+}
+
+
+TrashUntrashPhotosCommand* trash_untrash_photos_command_construct (GType object_type, GeeCollection* sources, gboolean to_trash) {
+ TrashUntrashPhotosCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ LibraryPhotoSourceCollection* _tmp11_ = NULL;
+ VideoSourceCollection* _tmp12_ = NULL;
+#line 2345 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (sources), NULL);
+#line 2347 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = to_trash;
+#line 2347 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 20985 "Commands.c"
+ const gchar* _tmp2_ = NULL;
+#line 2347 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Move Photos to Trash");
+#line 2347 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp2_;
+#line 20991 "Commands.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 2347 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _ ("Restore Photos from Trash");
+#line 2347 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp3_;
+#line 20998 "Commands.c"
+ }
+#line 2348 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = to_trash;
+#line 2348 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp5_) {
+#line 21004 "Commands.c"
+ const gchar* _tmp6_ = NULL;
+#line 2348 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _ ("Move the photos to the Shotwell trash");
+#line 2348 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp6_;
+#line 21010 "Commands.c"
+ } else {
+ const gchar* _tmp7_ = NULL;
+#line 2348 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = _ ("Restore the photos back to the Shotwell library");
+#line 2348 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp7_;
+#line 21017 "Commands.c"
+ }
+#line 2346 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (TrashUntrashPhotosCommand*) page_command_construct (object_type, _tmp0_, _tmp4_);
+#line 2350 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = sources;
+#line 2350 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 2350 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->sources);
+#line 2350 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->sources = _tmp9_;
+#line 2351 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = to_trash;
+#line 2351 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->to_trash = _tmp10_;
+#line 2353 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = library_photo_global;
+#line 2353 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _trash_untrash_photos_command_on_photo_destroyed_source_collection_item_destroyed, self, 0);
+#line 2354 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = video_global;
+#line 2354 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _trash_untrash_photos_command_on_photo_destroyed_source_collection_item_destroyed, self, 0);
+#line 2345 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 21043 "Commands.c"
+}
+
+
+TrashUntrashPhotosCommand* trash_untrash_photos_command_new (GeeCollection* sources, gboolean to_trash) {
+#line 2345 "/home/jens/Source/shotwell/src/Commands.vala"
+ return trash_untrash_photos_command_construct (TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, sources, to_trash);
+#line 21050 "Commands.c"
+}
+
+
+static ProgressDialog* trash_untrash_photos_command_get_progress_dialog (TrashUntrashPhotosCommand* self, gboolean to_trash) {
+ ProgressDialog* result = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ ProgressDialog* dialog = NULL;
+ AppWindow* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+ ProgressDialog* _tmp9_ = NULL;
+ ProgressDialog* _tmp10_ = NULL;
+ ProgressDialog* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 2362 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (IS_TRASH_UNTRASH_PHOTOS_COMMAND (self), NULL);
+#line 2363 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->sources;
+#line 2363 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 2363 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 2363 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ <= 5) {
+#line 2364 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = NULL;
+#line 2364 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 21085 "Commands.c"
+ }
+#line 2367 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = to_trash;
+#line 2367 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_) {
+#line 21091 "Commands.c"
+ const gchar* _tmp5_ = NULL;
+#line 2367 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _ ("Moving Photos to Trash");
+#line 2367 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp5_;
+#line 21097 "Commands.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+#line 2367 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _ ("Restoring Photos From Trash");
+#line 2367 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _tmp6_;
+#line 21104 "Commands.c"
+ }
+#line 2366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 2366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 2366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_window_get_type (), GtkWindow), _tmp3_, NULL);
+#line 2366 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_object_ref_sink (_tmp9_);
+#line 2366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 2366 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_tmp8_);
+#line 2366 "/home/jens/Source/shotwell/src/Commands.vala"
+ dialog = _tmp10_;
+#line 2368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = dialog;
+#line 2368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = self->priv->sources;
+#line 2368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_collection_get_size (_tmp12_);
+#line 2368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _tmp13_;
+#line 2368 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = CLAMP (_tmp14_ / 5, 2, 10);
+#line 2368 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress_dialog_update_display_every (_tmp11_, _tmp15_);
+#line 2370 "/home/jens/Source/shotwell/src/Commands.vala"
+ result = dialog;
+#line 2370 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 21136 "Commands.c"
+}
+
+
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop);
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ return result;
+#line 21145 "Commands.c"
+}
+
+
+static void trash_untrash_photos_command_real_execute (Command* base) {
+ TrashUntrashPhotosCommand * self;
+ ProgressDialog* dialog = NULL;
+ gboolean _tmp0_ = FALSE;
+ ProgressDialog* _tmp1_ = NULL;
+ ProgressMonitor monitor = NULL;
+ void* monitor_target = NULL;
+ GDestroyNotify monitor_target_destroy_notify = NULL;
+ ProgressDialog* _tmp2_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ ProgressDialog* _tmp7_ = NULL;
+#line 2373 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand);
+#line 2374 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->to_trash;
+#line 2374 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = trash_untrash_photos_command_get_progress_dialog (self, _tmp0_);
+#line 2374 "/home/jens/Source/shotwell/src/Commands.vala"
+ dialog = _tmp1_;
+#line 2376 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = NULL;
+#line 2376 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = NULL;
+#line 2376 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2377 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = dialog;
+#line 2377 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ != NULL) {
+#line 21178 "Commands.c"
+ ProgressDialog* _tmp3_ = NULL;
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = dialog;
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = NULL;
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = NULL;
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = _progress_dialog_monitor_progress_monitor;
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = g_object_ref (_tmp3_);
+#line 2378 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = g_object_unref;
+#line 21196 "Commands.c"
+ }
+#line 2380 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->to_trash;
+#line 2380 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_) {
+#line 21202 "Commands.c"
+ ProgressMonitor _tmp5_ = NULL;
+ void* _tmp5__target = NULL;
+#line 2381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = monitor;
+#line 2381 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5__target = monitor_target;
+#line 2381 "/home/jens/Source/shotwell/src/Commands.vala"
+ trash_untrash_photos_command_trash (self, _tmp5_, _tmp5__target);
+#line 21211 "Commands.c"
+ } else {
+ ProgressMonitor _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+#line 2383 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = monitor;
+#line 2383 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6__target = monitor_target;
+#line 2383 "/home/jens/Source/shotwell/src/Commands.vala"
+ trash_untrash_photos_command_untrash (self, _tmp6_, _tmp6__target);
+#line 21221 "Commands.c"
+ }
+#line 2385 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = dialog;
+#line 2385 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp7_ != NULL) {
+#line 21227 "Commands.c"
+ ProgressDialog* _tmp8_ = NULL;
+#line 2386 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = dialog;
+#line 2386 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress_dialog_close (_tmp8_);
+#line 21233 "Commands.c"
+ }
+#line 2373 "/home/jens/Source/shotwell/src/Commands.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 2373 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = NULL;
+#line 2373 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = NULL;
+#line 2373 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2373 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (dialog);
+#line 21245 "Commands.c"
+}
+
+
+static void trash_untrash_photos_command_real_undo (Command* base) {
+ TrashUntrashPhotosCommand * self;
+ ProgressDialog* dialog = NULL;
+ gboolean _tmp0_ = FALSE;
+ ProgressDialog* _tmp1_ = NULL;
+ ProgressMonitor monitor = NULL;
+ void* monitor_target = NULL;
+ GDestroyNotify monitor_target_destroy_notify = NULL;
+ ProgressDialog* _tmp2_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ ProgressDialog* _tmp7_ = NULL;
+#line 2389 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand);
+#line 2390 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->to_trash;
+#line 2390 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = trash_untrash_photos_command_get_progress_dialog (self, !_tmp0_);
+#line 2390 "/home/jens/Source/shotwell/src/Commands.vala"
+ dialog = _tmp1_;
+#line 2392 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = NULL;
+#line 2392 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = NULL;
+#line 2392 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2393 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = dialog;
+#line 2393 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ != NULL) {
+#line 21278 "Commands.c"
+ ProgressDialog* _tmp3_ = NULL;
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = dialog;
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = NULL;
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = NULL;
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = _progress_dialog_monitor_progress_monitor;
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = g_object_ref (_tmp3_);
+#line 2394 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = g_object_unref;
+#line 21296 "Commands.c"
+ }
+#line 2396 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = self->priv->to_trash;
+#line 2396 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_) {
+#line 21302 "Commands.c"
+ ProgressMonitor _tmp5_ = NULL;
+ void* _tmp5__target = NULL;
+#line 2397 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = monitor;
+#line 2397 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5__target = monitor_target;
+#line 2397 "/home/jens/Source/shotwell/src/Commands.vala"
+ trash_untrash_photos_command_untrash (self, _tmp5_, _tmp5__target);
+#line 21311 "Commands.c"
+ } else {
+ ProgressMonitor _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+#line 2399 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = monitor;
+#line 2399 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6__target = monitor_target;
+#line 2399 "/home/jens/Source/shotwell/src/Commands.vala"
+ trash_untrash_photos_command_trash (self, _tmp6_, _tmp6__target);
+#line 21321 "Commands.c"
+ }
+#line 2401 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = dialog;
+#line 2401 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp7_ != NULL) {
+#line 21327 "Commands.c"
+ ProgressDialog* _tmp8_ = NULL;
+#line 2402 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = dialog;
+#line 2402 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress_dialog_close (_tmp8_);
+#line 21333 "Commands.c"
+ }
+#line 2389 "/home/jens/Source/shotwell/src/Commands.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 2389 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor = NULL;
+#line 2389 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target = NULL;
+#line 2389 "/home/jens/Source/shotwell/src/Commands.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2389 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (dialog);
+#line 21345 "Commands.c"
+}
+
+
+static void trash_untrash_photos_command_trash (TrashUntrashPhotosCommand* self, ProgressMonitor monitor, void* monitor_target) {
+ gint ctr = 0;
+ gint count = 0;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ TransactionController* _tmp4_ = NULL;
+ TransactionController* _tmp5_ = NULL;
+ VideoSourceCollection* _tmp6_ = NULL;
+ TransactionController* _tmp7_ = NULL;
+ TransactionController* _tmp8_ = NULL;
+ LibraryPhotoSourceCollection* _tmp21_ = NULL;
+ TransactionController* _tmp22_ = NULL;
+ TransactionController* _tmp23_ = NULL;
+ VideoSourceCollection* _tmp24_ = NULL;
+ TransactionController* _tmp25_ = NULL;
+ TransactionController* _tmp26_ = NULL;
+#line 2405 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TRASH_UNTRASH_PHOTOS_COMMAND (self));
+#line 2406 "/home/jens/Source/shotwell/src/Commands.vala"
+ ctr = 0;
+#line 2407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->sources;
+#line 2407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 2407 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 2407 "/home/jens/Source/shotwell/src/Commands.vala"
+ count = _tmp2_;
+#line 2409 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = library_photo_global;
+#line 2409 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2409 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 2409 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_begin (_tmp5_);
+#line 2410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = video_global;
+#line 2410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2410 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 2410 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_begin (_tmp8_);
+#line 21395 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->sources;
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp10_;
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 21408 "Commands.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ ProgressMonitor _tmp16_ = NULL;
+ void* _tmp16__target = NULL;
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _source_it;
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp12_) {
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 21425 "Commands.c"
+ }
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _source_it;
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp14_;
+#line 2413 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = source;
+#line 2413 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_trash (_tmp15_);
+#line 2414 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = monitor;
+#line 2414 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16__target = monitor_target;
+#line 2414 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp16_ != NULL) {
+#line 21443 "Commands.c"
+ ProgressMonitor _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 2415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = monitor;
+#line 2415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17__target = monitor_target;
+#line 2415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = ctr;
+#line 2415 "/home/jens/Source/shotwell/src/Commands.vala"
+ ctr = _tmp18_ + 1;
+#line 2415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = ctr;
+#line 2415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = count;
+#line 2415 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ ((guint64) _tmp19_, (guint64) _tmp20_, TRUE, _tmp17__target);
+#line 21463 "Commands.c"
+ }
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 21467 "Commands.c"
+ }
+#line 2412 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 21471 "Commands.c"
+ }
+#line 2418 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = library_photo_global;
+#line 2418 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2418 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _tmp22_;
+#line 2418 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_commit (_tmp23_);
+#line 2419 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = video_global;
+#line 2419 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2419 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _tmp25_;
+#line 2419 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_commit (_tmp26_);
+#line 21489 "Commands.c"
+}
+
+
+static void trash_untrash_photos_command_untrash (TrashUntrashPhotosCommand* self, ProgressMonitor monitor, void* monitor_target) {
+ gint ctr = 0;
+ gint count = 0;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ TransactionController* _tmp4_ = NULL;
+ TransactionController* _tmp5_ = NULL;
+ VideoSourceCollection* _tmp6_ = NULL;
+ TransactionController* _tmp7_ = NULL;
+ TransactionController* _tmp8_ = NULL;
+ LibraryPhotoSourceCollection* _tmp21_ = NULL;
+ TransactionController* _tmp22_ = NULL;
+ TransactionController* _tmp23_ = NULL;
+ VideoSourceCollection* _tmp24_ = NULL;
+ TransactionController* _tmp25_ = NULL;
+ TransactionController* _tmp26_ = NULL;
+#line 2422 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TRASH_UNTRASH_PHOTOS_COMMAND (self));
+#line 2423 "/home/jens/Source/shotwell/src/Commands.vala"
+ ctr = 0;
+#line 2424 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->sources;
+#line 2424 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 2424 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _tmp1_;
+#line 2424 "/home/jens/Source/shotwell/src/Commands.vala"
+ count = _tmp2_;
+#line 2426 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = library_photo_global;
+#line 2426 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2426 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = _tmp4_;
+#line 2426 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_begin (_tmp5_);
+#line 2427 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = video_global;
+#line 2427 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2427 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = _tmp7_;
+#line 2427 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_begin (_tmp8_);
+#line 21539 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->sources;
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp10_;
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 21552 "Commands.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ ProgressMonitor _tmp16_ = NULL;
+ void* _tmp16__target = NULL;
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = _source_it;
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp12_) {
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 21569 "Commands.c"
+ }
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = _source_it;
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (MediaSource*) _tmp14_;
+#line 2430 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = source;
+#line 2430 "/home/jens/Source/shotwell/src/Commands.vala"
+ media_source_untrash (_tmp15_);
+#line 2431 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = monitor;
+#line 2431 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16__target = monitor_target;
+#line 2431 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp16_ != NULL) {
+#line 21587 "Commands.c"
+ ProgressMonitor _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 2432 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = monitor;
+#line 2432 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17__target = monitor_target;
+#line 2432 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp18_ = ctr;
+#line 2432 "/home/jens/Source/shotwell/src/Commands.vala"
+ ctr = _tmp18_ + 1;
+#line 2432 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp19_ = ctr;
+#line 2432 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp20_ = count;
+#line 2432 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ ((guint64) _tmp19_, (guint64) _tmp20_, TRUE, _tmp17__target);
+#line 21607 "Commands.c"
+ }
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 21611 "Commands.c"
+ }
+#line 2429 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 21615 "Commands.c"
+ }
+#line 2435 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp21_ = library_photo_global;
+#line 2435 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp22_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2435 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp23_ = _tmp22_;
+#line 2435 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_commit (_tmp23_);
+#line 2436 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp24_ = video_global;
+#line 2436 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp25_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 2436 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp26_ = _tmp25_;
+#line 2436 "/home/jens/Source/shotwell/src/Commands.vala"
+ transaction_controller_commit (_tmp26_);
+#line 21633 "Commands.c"
+}
+
+
+static void trash_untrash_photos_command_on_photo_destroyed (TrashUntrashPhotosCommand* self, DataSource* source) {
+ GeeCollection* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 2439 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_TRASH_UNTRASH_PHOTOS_COMMAND (self));
+#line 2439 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 2442 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = self->priv->sources;
+#line 2442 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = source;
+#line 2442 "/home/jens/Source/shotwell/src/Commands.vala"
+ gee_collection_remove (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 2446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = self->priv->sources;
+#line 2446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_collection_get_size (_tmp2_);
+#line 2446 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _tmp3_;
+#line 2446 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp4_ == 0) {
+#line 21661 "Commands.c"
+ CommandManager* _tmp5_ = NULL;
+ CommandManager* _tmp6_ = NULL;
+#line 2447 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = command_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COMMAND, Command));
+#line 2447 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = _tmp5_;
+#line 2447 "/home/jens/Source/shotwell/src/Commands.vala"
+ command_manager_reset (_tmp6_);
+#line 2447 "/home/jens/Source/shotwell/src/Commands.vala"
+ _command_manager_unref0 (_tmp6_);
+#line 21672 "Commands.c"
+ }
+}
+
+
+static void trash_untrash_photos_command_class_init (TrashUntrashPhotosCommandClass * klass) {
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ trash_untrash_photos_command_parent_class = g_type_class_peek_parent (klass);
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (TrashUntrashPhotosCommandPrivate));
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->execute = trash_untrash_photos_command_real_execute;
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((CommandClass *) klass)->undo = trash_untrash_photos_command_real_undo;
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = trash_untrash_photos_command_finalize;
+#line 21688 "Commands.c"
+}
+
+
+static void trash_untrash_photos_command_instance_init (TrashUntrashPhotosCommand * self) {
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = TRASH_UNTRASH_PHOTOS_COMMAND_GET_PRIVATE (self);
+#line 21695 "Commands.c"
+}
+
+
+static void trash_untrash_photos_command_finalize (GObject* obj) {
+ TrashUntrashPhotosCommand * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ VideoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand);
+#line 2358 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = library_photo_global;
+#line 2358 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 2358 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _trash_untrash_photos_command_on_photo_destroyed_source_collection_item_destroyed, self);
+#line 2359 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = video_global;
+#line 2359 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 2359 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _trash_untrash_photos_command_on_photo_destroyed_source_collection_item_destroyed, self);
+#line 2342 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->sources);
+#line 2341 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (trash_untrash_photos_command_parent_class)->finalize (obj);
+#line 21723 "Commands.c"
+}
+
+
+GType trash_untrash_photos_command_get_type (void) {
+ static volatile gsize trash_untrash_photos_command_type_id__volatile = 0;
+ if (g_once_init_enter (&trash_untrash_photos_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TrashUntrashPhotosCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trash_untrash_photos_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrashUntrashPhotosCommand), 0, (GInstanceInitFunc) trash_untrash_photos_command_instance_init, NULL };
+ GType trash_untrash_photos_command_type_id;
+ trash_untrash_photos_command_type_id = g_type_register_static (TYPE_PAGE_COMMAND, "TrashUntrashPhotosCommand", &g_define_type_info, 0);
+ g_once_init_leave (&trash_untrash_photos_command_type_id__volatile, trash_untrash_photos_command_type_id);
+ }
+ return trash_untrash_photos_command_type_id__volatile;
+}
+
+
+FlagUnflagCommand* flag_unflag_command_construct (GType object_type, GeeCollection* sources, gboolean flag) {
+ FlagUnflagCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeCollection* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeCollection* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 2461 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (sources), NULL);
+#line 2463 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = flag;
+#line 2463 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp1_) {
+#line 21756 "Commands.c"
+ const gchar* _tmp2_ = NULL;
+#line 2463 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _ ("Flag");
+#line 2463 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp2_;
+#line 21762 "Commands.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 2463 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = _ ("Unflag");
+#line 2463 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = _tmp3_;
+#line 21769 "Commands.c"
+ }
+#line 2464 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = flag;
+#line 2464 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp5_) {
+#line 2464 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = FLAG_UNFLAG_COMMAND_FLAG_SELECTED_STRING;
+#line 21777 "Commands.c"
+ } else {
+#line 2464 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = FLAG_UNFLAG_COMMAND_UNFLAG_SELECTED_STRING;
+#line 21781 "Commands.c"
+ }
+#line 2462 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = sources;
+#line 2462 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = (FlagUnflagCommand*) multiple_data_source_at_once_command_construct (object_type, _tmp6_, _tmp0_, _tmp4_);
+#line 2466 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = flag;
+#line 2466 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->flag = _tmp7_;
+#line 2468 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = sources;
+#line 2468 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = gee_collection_get_size (_tmp8_);
+#line 2468 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = _tmp9_;
+#line 2468 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp10_ >= FLAG_UNFLAG_COMMAND_MIN_PROGRESS_BAR_THRESHOLD) {
+#line 21799 "Commands.c"
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ ProgressDialog* _tmp13_ = NULL;
+ ProgressDialog* _tmp14_ = NULL;
+#line 2470 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = flag;
+#line 2470 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp12_) {
+#line 2470 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = FLAG_UNFLAG_COMMAND_FLAG_PROGRESS;
+#line 21810 "Commands.c"
+ } else {
+#line 2470 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = FLAG_UNFLAG_COMMAND_UNFLAG_PROGRESS;
+#line 21814 "Commands.c"
+ }
+#line 2469 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = progress_dialog_new (NULL, _tmp11_, NULL);
+#line 2469 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_object_ref_sink (_tmp13_);
+#line 2469 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 2469 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->progress_dialog = _tmp13_;
+#line 2472 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = self->priv->progress_dialog;
+#line 2472 "/home/jens/Source/shotwell/src/Commands.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget));
+#line 21828 "Commands.c"
+ }
+#line 2461 "/home/jens/Source/shotwell/src/Commands.vala"
+ return self;
+#line 21832 "Commands.c"
+}
+
+
+FlagUnflagCommand* flag_unflag_command_new (GeeCollection* sources, gboolean flag) {
+#line 2461 "/home/jens/Source/shotwell/src/Commands.vala"
+ return flag_unflag_command_construct (TYPE_FLAG_UNFLAG_COMMAND, sources, flag);
+#line 21839 "Commands.c"
+}
+
+
+static void flag_unflag_command_real_execute_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources) {
+ FlagUnflagCommand * self;
+ gint num_processed = 0;
+ ProgressDialog* _tmp16_ = NULL;
+#line 2476 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommand);
+#line 2476 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 2477 "/home/jens/Source/shotwell/src/Commands.vala"
+ num_processed = 0;
+#line 21853 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = sources;
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 21866 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gint _tmp8_ = 0;
+ ProgressDialog* _tmp9_ = NULL;
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 21884 "Commands.c"
+ }
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 2480 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = source;
+#line 2480 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->flag;
+#line 2480 "/home/jens/Source/shotwell/src/Commands.vala"
+ flag_unflag_command_flag_unflag (self, _tmp6_, _tmp7_);
+#line 2482 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp8_ = num_processed;
+#line 2482 "/home/jens/Source/shotwell/src/Commands.vala"
+ num_processed = _tmp8_ + 1;
+#line 2484 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp9_ = self->priv->progress_dialog;
+#line 2484 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp9_ != NULL) {
+#line 21906 "Commands.c"
+ ProgressDialog* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ GeeCollection* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ ProgressDialog* _tmp15_ = NULL;
+#line 2485 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp10_ = self->priv->progress_dialog;
+#line 2485 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp11_ = num_processed;
+#line 2485 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp12_ = sources;
+#line 2485 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp13_ = gee_collection_get_size (_tmp12_);
+#line 2485 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp14_ = _tmp13_;
+#line 2485 "/home/jens/Source/shotwell/src/Commands.vala"
+ progress_dialog_set_fraction (_tmp10_, _tmp11_, _tmp14_);
+#line 2486 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp15_ = self->priv->progress_dialog;
+#line 2486 "/home/jens/Source/shotwell/src/Commands.vala"
+ gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget));
+#line 2487 "/home/jens/Source/shotwell/src/Commands.vala"
+ spin_event_loop ();
+#line 21931 "Commands.c"
+ }
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 21935 "Commands.c"
+ }
+#line 2479 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 21939 "Commands.c"
+ }
+#line 2491 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp16_ = self->priv->progress_dialog;
+#line 2491 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp16_ != NULL) {
+#line 21945 "Commands.c"
+ ProgressDialog* _tmp17_ = NULL;
+#line 2492 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp17_ = self->priv->progress_dialog;
+#line 2492 "/home/jens/Source/shotwell/src/Commands.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget));
+#line 21951 "Commands.c"
+ }
+}
+
+
+static void flag_unflag_command_real_undo_on_all (MultipleDataSourceAtOnceCommand* base, GeeCollection* sources) {
+ FlagUnflagCommand * self;
+#line 2495 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommand);
+#line 2495 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 21962 "Commands.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = sources;
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _source_it = _tmp1_;
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ while (TRUE) {
+#line 21975 "Commands.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = _source_it;
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (!_tmp3_) {
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ break;
+#line 21991 "Commands.c"
+ }
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = _source_it;
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ source = (DataSource*) _tmp5_;
+#line 2497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp6_ = source;
+#line 2497 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp7_ = self->priv->flag;
+#line 2497 "/home/jens/Source/shotwell/src/Commands.vala"
+ flag_unflag_command_flag_unflag (self, _tmp6_, !_tmp7_);
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (source);
+#line 22007 "Commands.c"
+ }
+#line 2496 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (_source_it);
+#line 22011 "Commands.c"
+ }
+}
+
+
+static void flag_unflag_command_flag_unflag (FlagUnflagCommand* self, DataSource* source, gboolean flag) {
+ Flaggable* flaggable = NULL;
+ DataSource* _tmp0_ = NULL;
+ Flaggable* _tmp1_ = NULL;
+ Flaggable* _tmp2_ = NULL;
+#line 2500 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_FLAG_UNFLAG_COMMAND (self));
+#line 2500 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 2501 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp0_ = source;
+#line 2501 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp0_) : NULL);
+#line 2501 "/home/jens/Source/shotwell/src/Commands.vala"
+ flaggable = _tmp1_;
+#line 2502 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp2_ = flaggable;
+#line 2502 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp2_ != NULL) {
+#line 22035 "Commands.c"
+ gboolean _tmp3_ = FALSE;
+#line 2503 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp3_ = flag;
+#line 2503 "/home/jens/Source/shotwell/src/Commands.vala"
+ if (_tmp3_) {
+#line 22041 "Commands.c"
+ Flaggable* _tmp4_ = NULL;
+#line 2504 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp4_ = flaggable;
+#line 2504 "/home/jens/Source/shotwell/src/Commands.vala"
+ flaggable_mark_flagged (_tmp4_);
+#line 22047 "Commands.c"
+ } else {
+ Flaggable* _tmp5_ = NULL;
+#line 2506 "/home/jens/Source/shotwell/src/Commands.vala"
+ _tmp5_ = flaggable;
+#line 2506 "/home/jens/Source/shotwell/src/Commands.vala"
+ flaggable_mark_unflagged (_tmp5_);
+#line 22054 "Commands.c"
+ }
+ }
+#line 2500 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (flaggable);
+#line 22059 "Commands.c"
+}
+
+
+static void flag_unflag_command_class_init (FlagUnflagCommandClass * klass) {
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ flag_unflag_command_parent_class = g_type_class_peek_parent (klass);
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ g_type_class_add_private (klass, sizeof (FlagUnflagCommandPrivate));
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->execute_on_all = flag_unflag_command_real_execute_on_all;
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ ((MultipleDataSourceAtOnceCommandClass *) klass)->undo_on_all = flag_unflag_command_real_undo_on_all;
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (klass)->finalize = flag_unflag_command_finalize;
+#line 22074 "Commands.c"
+}
+
+
+static void flag_unflag_command_instance_init (FlagUnflagCommand * self) {
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv = FLAG_UNFLAG_COMMAND_GET_PRIVATE (self);
+#line 2459 "/home/jens/Source/shotwell/src/Commands.vala"
+ self->priv->progress_dialog = NULL;
+#line 22083 "Commands.c"
+}
+
+
+static void flag_unflag_command_finalize (GObject* obj) {
+ FlagUnflagCommand * self;
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommand);
+#line 2459 "/home/jens/Source/shotwell/src/Commands.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 2451 "/home/jens/Source/shotwell/src/Commands.vala"
+ G_OBJECT_CLASS (flag_unflag_command_parent_class)->finalize (obj);
+#line 22095 "Commands.c"
+}
+
+
+GType flag_unflag_command_get_type (void) {
+ static volatile gsize flag_unflag_command_type_id__volatile = 0;
+ if (g_once_init_enter (&flag_unflag_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FlagUnflagCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) flag_unflag_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FlagUnflagCommand), 0, (GInstanceInitFunc) flag_unflag_command_instance_init, NULL };
+ GType flag_unflag_command_type_id;
+ flag_unflag_command_type_id = g_type_register_static (TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, "FlagUnflagCommand", &g_define_type_info, 0);
+ g_once_init_leave (&flag_unflag_command_type_id__volatile, flag_unflag_command_type_id);
+ }
+ return flag_unflag_command_type_id__volatile;
+}
+
+
+
diff --git a/src/Commands.vala b/src/Commands.vala
index a5816ea..d922c7d 100644
--- a/src/Commands.vala
+++ b/src/Commands.vala
@@ -564,7 +564,9 @@ public class EditTitleCommand : SingleDataSourceCommand {
private string? old_title;
public EditTitleCommand(MediaSource source, string new_title) {
- base(source, Resources.EDIT_TITLE_LABEL, "");
+ var title = GLib.dpgettext2 (null, "Button Label",
+ Resources.EDIT_TITLE_LABEL);
+ base(source, title, "");
this.new_title = new_title;
old_title = source.get_title();
@@ -604,7 +606,9 @@ public class EditMultipleTitlesCommand : MultipleDataSourceAtOnceCommand {
public Gee.HashMap<MediaSource, string?> old_titles = new Gee.HashMap<MediaSource, string?>();
public EditMultipleTitlesCommand(Gee.Collection<MediaSource> media_sources, string new_title) {
- base (media_sources, Resources.EDIT_TITLE_LABEL, "");
+ var title = GLib.dpgettext2 (null, "Button Label",
+ Resources.EDIT_TITLE_LABEL);
+ base (media_sources, title, "");
this.new_title = new_title;
foreach (MediaSource media in media_sources)
diff --git a/src/CustomComponents.c b/src/CustomComponents.c
new file mode 100644
index 0000000..053e2fa
--- /dev/null
+++ b/src/CustomComponents.c
@@ -0,0 +1,3675 @@
+/* CustomComponents.c generated by valac 0.32.1, the Vala compiler
+ * generated from CustomComponents.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+#include <cairo.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_THEME_LOADER (theme_loader_get_type ())
+#define THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THEME_LOADER, ThemeLoader))
+#define THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THEME_LOADER, ThemeLoaderClass))
+#define IS_THEME_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THEME_LOADER))
+#define IS_THEME_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THEME_LOADER))
+#define THEME_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THEME_LOADER, ThemeLoaderClass))
+
+typedef struct _ThemeLoader ThemeLoader;
+typedef struct _ThemeLoaderClass ThemeLoaderClass;
+typedef struct _ThemeLoaderPrivate ThemeLoaderPrivate;
+
+#define THEME_LOADER_TYPE_LIGHTWEIGHT_COLOR (theme_loader_lightweight_color_get_type ())
+typedef struct _ThemeLoaderLightweightColor ThemeLoaderLightweightColor;
+#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL)))
+
+#define TYPE_RGB_ANALYTIC_PIXEL (rgb_analytic_pixel_get_type ())
+typedef struct _RGBAnalyticPixel RGBAnalyticPixel;
+
+#define TYPE_HSV_ANALYTIC_PIXEL (hsv_analytic_pixel_get_type ())
+typedef struct _HSVAnalyticPixel HSVAnalyticPixel;
+#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _rgb_analytic_pixel_free0(var) ((var == NULL) ? NULL : (var = (rgb_analytic_pixel_free (var), NULL)))
+typedef struct _ParamSpecThemeLoader ParamSpecThemeLoader;
+
+#define TYPE_RGB_HISTOGRAM_MANIPULATOR (rgb_histogram_manipulator_get_type ())
+#define RGB_HISTOGRAM_MANIPULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulator))
+#define RGB_HISTOGRAM_MANIPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulatorClass))
+#define IS_RGB_HISTOGRAM_MANIPULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR))
+#define IS_RGB_HISTOGRAM_MANIPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_HISTOGRAM_MANIPULATOR))
+#define RGB_HISTOGRAM_MANIPULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulatorClass))
+
+typedef struct _RGBHistogramManipulator RGBHistogramManipulator;
+typedef struct _RGBHistogramManipulatorClass RGBHistogramManipulatorClass;
+typedef struct _RGBHistogramManipulatorPrivate RGBHistogramManipulatorPrivate;
+
+#define TYPE_RGB_HISTOGRAM (rgb_histogram_get_type ())
+#define RGB_HISTOGRAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_HISTOGRAM, RGBHistogram))
+#define RGB_HISTOGRAM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_HISTOGRAM, RGBHistogramClass))
+#define IS_RGB_HISTOGRAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_HISTOGRAM))
+#define IS_RGB_HISTOGRAM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_HISTOGRAM))
+#define RGB_HISTOGRAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_HISTOGRAM, RGBHistogramClass))
+
+typedef struct _RGBHistogram RGBHistogram;
+typedef struct _RGBHistogramClass RGBHistogramClass;
+
+#define RGB_HISTOGRAM_MANIPULATOR_TYPE_LOCATION_CODE (rgb_histogram_manipulator_location_code_get_type ())
+#define _rgb_histogram_unref0(var) ((var == NULL) ? NULL : (var = (rgb_histogram_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _ThemeLoader {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ThemeLoaderPrivate * priv;
+};
+
+struct _ThemeLoaderClass {
+ GTypeClass parent_class;
+ void (*finalize) (ThemeLoader *self);
+};
+
+struct _ThemeLoaderLightweightColor {
+ guchar red;
+ guchar green;
+ guchar blue;
+};
+
+struct _RGBAnalyticPixel {
+ gfloat red;
+ gfloat green;
+ gfloat blue;
+};
+
+struct _HSVAnalyticPixel {
+ gfloat hue;
+ gfloat saturation;
+ gfloat light_value;
+};
+
+struct _ParamSpecThemeLoader {
+ GParamSpec parent_instance;
+};
+
+struct _RGBHistogramManipulator {
+ GtkDrawingArea parent_instance;
+ RGBHistogramManipulatorPrivate * priv;
+};
+
+struct _RGBHistogramManipulatorClass {
+ GtkDrawingAreaClass parent_class;
+};
+
+struct _RGBHistogramManipulatorPrivate {
+ gint left_nub_max;
+ gint right_nub_min;
+ RGBHistogram* histogram;
+ gint left_nub_position;
+ gint right_nub_position;
+ GdkPixbuf* nub_pixbuf;
+ gboolean is_left_nub_tracking;
+ gboolean is_right_nub_tracking;
+ gint track_start_x;
+ gint track_nub_start_position;
+};
+
+typedef enum {
+ RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_NUB,
+ RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_NUB,
+ RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_TROUGH,
+ RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_TROUGH,
+ RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_INSENSITIVE_AREA
+} RGBHistogramManipulatorLocationCode;
+
+
+static gpointer theme_loader_parent_class = NULL;
+static ThemeLoaderLightweightColor* theme_loader_theme_colors;
+static gint theme_loader_theme_colors_length1;
+static ThemeLoaderLightweightColor* theme_loader_theme_colors = NULL;
+static gint theme_loader_theme_colors_length1 = 0;
+static gint _theme_loader_theme_colors_size_ = 0;
+static gpointer rgb_histogram_manipulator_parent_class = NULL;
+static GtkWidget* rgb_histogram_manipulator_dummy_slider;
+static GtkWidget* rgb_histogram_manipulator_dummy_slider = NULL;
+static GtkWidget* rgb_histogram_manipulator_dummy_frame;
+static GtkWidget* rgb_histogram_manipulator_dummy_frame = NULL;
+static GtkWidgetPath* rgb_histogram_manipulator_slider_draw_path;
+static GtkWidgetPath* rgb_histogram_manipulator_slider_draw_path = NULL;
+static GtkWidgetPath* rgb_histogram_manipulator_frame_draw_path;
+static GtkWidgetPath* rgb_histogram_manipulator_frame_draw_path = NULL;
+static gboolean rgb_histogram_manipulator_paths_setup;
+static gboolean rgb_histogram_manipulator_paths_setup = FALSE;
+
+void qsort (void* p, gsize num, gsize size, GCompareFunc func);
+gpointer theme_loader_ref (gpointer instance);
+void theme_loader_unref (gpointer instance);
+GParamSpec* param_spec_theme_loader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_theme_loader (GValue* value, gpointer v_object);
+void value_take_theme_loader (GValue* value, gpointer v_object);
+gpointer value_get_theme_loader (const GValue* value);
+GType theme_loader_get_type (void) G_GNUC_CONST;
+enum {
+ THEME_LOADER_DUMMY_PROPERTY
+};
+static GType theme_loader_lightweight_color_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static ThemeLoaderLightweightColor* theme_loader_lightweight_color_dup (const ThemeLoaderLightweightColor* self);
+static void theme_loader_lightweight_color_free (ThemeLoaderLightweightColor* self);
+#define THEME_LOADER_NUM_SUPPORTED_INTENSITIES 6
+#define THEME_LOADER_THEME_OUTLINE_COLOR 0
+#define THEME_LOADER_THEME_BEVEL_DARKER_COLOR 1
+#define THEME_LOADER_THEME_BEVEL_DARK_COLOR 2
+#define THEME_LOADER_THEME_BASE_COLOR 3
+#define THEME_LOADER_THEME_BEVEL_LIGHT_COLOR 4
+#define THEME_LOADER_THEME_BEVEL_LIGHTER_COLOR 5
+static void theme_loader_populate_theme_params (void);
+static GdkColor* _gdk_color_dup (GdkColor* self);
+GType rgb_analytic_pixel_get_type (void) G_GNUC_CONST;
+RGBAnalyticPixel* rgb_analytic_pixel_dup (const RGBAnalyticPixel* self);
+void rgb_analytic_pixel_free (RGBAnalyticPixel* self);
+void rgb_analytic_pixel_init_from_quantized_components (RGBAnalyticPixel *self, guchar red_quantized, guchar green_quantized, guchar blue_quantized);
+GType hsv_analytic_pixel_get_type (void) G_GNUC_CONST;
+HSVAnalyticPixel* hsv_analytic_pixel_dup (const HSVAnalyticPixel* self);
+void hsv_analytic_pixel_free (HSVAnalyticPixel* self);
+void hsv_analytic_pixel_init_from_rgb (HSVAnalyticPixel *self, RGBAnalyticPixel* p);
+void hsv_analytic_pixel_to_rgb (HSVAnalyticPixel *self, RGBAnalyticPixel* result);
+static void theme_loader_populate_one_theme_param (RGBAnalyticPixel* from, ThemeLoaderLightweightColor* result);
+static void theme_loader_lightweight_color_init (ThemeLoaderLightweightColor *self);
+GdkPixbuf* theme_loader_load_icon (const gchar* source_basename);
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+static guint theme_loader_rgb_pixel_hash_func (RGBAnalyticPixel* pixel_val);
+static guint _theme_loader_rgb_pixel_hash_func_gee_hash_data_func (gconstpointer v, gpointer self);
+static gboolean theme_loader_rgb_pixel_equal_func (RGBAnalyticPixel* p1, RGBAnalyticPixel* p2);
+static gboolean _theme_loader_rgb_pixel_equal_func_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static gint theme_loader_hsv_pixel_compare_func (void* pixval1, void* pixval2);
+static gint _theme_loader_hsv_pixel_compare_func_gcompare_func (gconstpointer a, gconstpointer b);
+gboolean rgb_analytic_pixel_equals (RGBAnalyticPixel *self, RGBAnalyticPixel* rhs);
+guint rgb_analytic_pixel_hash_code (RGBAnalyticPixel *self);
+ThemeLoader* theme_loader_new (void);
+ThemeLoader* theme_loader_construct (GType object_type);
+static void theme_loader_finalize (ThemeLoader* obj);
+GType rgb_histogram_manipulator_get_type (void) G_GNUC_CONST;
+gpointer rgb_histogram_ref (gpointer instance);
+void rgb_histogram_unref (gpointer instance);
+GParamSpec* param_spec_rgb_histogram (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_rgb_histogram (GValue* value, gpointer v_object);
+void value_take_rgb_histogram (GValue* value, gpointer v_object);
+gpointer value_get_rgb_histogram (const GValue* value);
+GType rgb_histogram_get_type (void) G_GNUC_CONST;
+#define RGB_HISTOGRAM_MANIPULATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulatorPrivate))
+enum {
+ RGB_HISTOGRAM_MANIPULATOR_DUMMY_PROPERTY
+};
+static GType rgb_histogram_manipulator_location_code_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE 13
+#define RGB_HISTOGRAM_MANIPULATOR_NUB_HALF_WIDTH (RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE / 2)
+#define RGB_HISTOGRAM_MANIPULATOR_NUB_V_NUDGE 4
+#define RGB_HISTOGRAM_MANIPULATOR_TROUGH_WIDTH (256 + (2 * RGB_HISTOGRAM_MANIPULATOR_NUB_HALF_WIDTH))
+#define RGB_HISTOGRAM_MANIPULATOR_TROUGH_HEIGHT 4
+#define RGB_HISTOGRAM_MANIPULATOR_TROUGH_BOTTOM_OFFSET 1
+#define RGB_HISTOGRAM_MANIPULATOR_CONTROL_WIDTH (RGB_HISTOGRAM_MANIPULATOR_TROUGH_WIDTH + 2)
+#define RGB_HISTOGRAM_MANIPULATOR_CONTROL_HEIGHT 118
+#define RGB_HISTOGRAM_MANIPULATOR_NUB_V_POSITION (((((RGB_HISTOGRAM_MANIPULATOR_CONTROL_HEIGHT - RGB_HISTOGRAM_MANIPULATOR_TROUGH_HEIGHT) - RGB_HISTOGRAM_MANIPULATOR_TROUGH_BOTTOM_OFFSET) - ((RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE - RGB_HISTOGRAM_MANIPULATOR_TROUGH_HEIGHT) / 2)) - RGB_HISTOGRAM_MANIPULATOR_NUB_V_NUDGE) - 2)
+RGBHistogramManipulator* rgb_histogram_manipulator_new (void);
+RGBHistogramManipulator* rgb_histogram_manipulator_construct (GType object_type);
+static gboolean rgb_histogram_manipulator_on_button_press (RGBHistogramManipulator* self, GdkEventButton* event_record);
+static gboolean _rgb_histogram_manipulator_on_button_press_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static gboolean rgb_histogram_manipulator_on_button_release (RGBHistogramManipulator* self, GdkEventButton* event_record);
+static gboolean _rgb_histogram_manipulator_on_button_release_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static gboolean rgb_histogram_manipulator_on_button_motion (RGBHistogramManipulator* self, GdkEventMotion* event_record);
+static gboolean _rgb_histogram_manipulator_on_button_motion_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self);
+static RGBHistogramManipulatorLocationCode rgb_histogram_manipulator_hit_test_point (RGBHistogramManipulator* self, gint x, gint y);
+static void rgb_histogram_manipulator_force_update (RGBHistogramManipulator* self);
+static void rgb_histogram_manipulator_update_nub_extrema (RGBHistogramManipulator* self);
+static gboolean rgb_histogram_manipulator_real_draw (GtkWidget* base, cairo_t* ctx);
+#define RGB_HISTOGRAM_GRAPHIC_WIDTH 256
+#define RGB_HISTOGRAM_GRAPHIC_HEIGHT 100
+static void rgb_histogram_manipulator_draw_histogram_frame (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area);
+static void rgb_histogram_manipulator_draw_histogram (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area);
+static void rgb_histogram_manipulator_draw_trough (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area);
+static void rgb_histogram_manipulator_draw_nub (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area, gint position);
+GdkPixbuf* rgb_histogram_get_graphic (RGBHistogram* self);
+void rgb_histogram_manipulator_update_histogram (RGBHistogramManipulator* self, GdkPixbuf* source_pixbuf);
+RGBHistogram* rgb_histogram_new (GdkPixbuf* pixbuf);
+RGBHistogram* rgb_histogram_construct (GType object_type, GdkPixbuf* pixbuf);
+gint rgb_histogram_manipulator_get_left_nub_position (RGBHistogramManipulator* self);
+gint rgb_histogram_manipulator_get_right_nub_position (RGBHistogramManipulator* self);
+void rgb_histogram_manipulator_set_left_nub_position (RGBHistogramManipulator* self, gint user_nub_pos);
+void rgb_histogram_manipulator_set_right_nub_position (RGBHistogramManipulator* self, gint user_nub_pos);
+static void rgb_histogram_manipulator_finalize (GObject* obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 36 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 261 "CustomComponents.c"
+}
+
+
+static GdkColor* _gdk_color_dup (GdkColor* self) {
+ GdkColor* dup;
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ dup = g_new0 (GdkColor, 1);
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ memcpy (dup, self, sizeof (GdkColor));
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return dup;
+#line 273 "CustomComponents.c"
+}
+
+
+static gpointer __gdk_color_dup0 (gpointer self) {
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return self ? _gdk_color_dup (self) : NULL;
+#line 280 "CustomComponents.c"
+}
+
+
+static void theme_loader_populate_theme_params (void) {
+ ThemeLoaderLightweightColor* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ ThemeLoaderLightweightColor* _tmp1_ = NULL;
+ GtkSettings* settings = NULL;
+ GtkSettings* _tmp2_ = NULL;
+ GtkSettings* _tmp3_ = NULL;
+ GHashTable* color_table = NULL;
+ GtkSettings* _tmp4_ = NULL;
+ GHashTable* _tmp5_ = NULL;
+ GHashTable* _tmp6_ = NULL;
+ GdkColor* base_color = NULL;
+ GHashTable* _tmp7_ = NULL;
+ gconstpointer _tmp8_ = NULL;
+ GdkColor* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GdkColor* _tmp11_ = NULL;
+ RGBAnalyticPixel base_color_analytic_rgb = {0};
+ GdkColor* _tmp16_ = NULL;
+ guint16 _tmp17_ = 0U;
+ GdkColor* _tmp18_ = NULL;
+ guint16 _tmp19_ = 0U;
+ GdkColor* _tmp20_ = NULL;
+ guint16 _tmp21_ = 0U;
+ HSVAnalyticPixel base_color_analytic_hsv = {0};
+ RGBAnalyticPixel _tmp22_ = {0};
+ HSVAnalyticPixel bevel_light_analytic_hsv = {0};
+ HSVAnalyticPixel _tmp23_ = {0};
+ gfloat _tmp24_ = 0.0F;
+ HSVAnalyticPixel _tmp25_ = {0};
+ gfloat _tmp26_ = 0.0F;
+ gfloat _tmp27_ = 0.0F;
+ HSVAnalyticPixel bevel_lighter_analytic_hsv = {0};
+ HSVAnalyticPixel _tmp28_ = {0};
+ gfloat _tmp29_ = 0.0F;
+ HSVAnalyticPixel _tmp30_ = {0};
+ gfloat _tmp31_ = 0.0F;
+ gfloat _tmp32_ = 0.0F;
+ HSVAnalyticPixel bevel_dark_analytic_hsv = {0};
+ HSVAnalyticPixel _tmp33_ = {0};
+ gfloat _tmp34_ = 0.0F;
+ HSVAnalyticPixel _tmp35_ = {0};
+ gfloat _tmp36_ = 0.0F;
+ gfloat _tmp37_ = 0.0F;
+ HSVAnalyticPixel bevel_darker_analytic_hsv = {0};
+ HSVAnalyticPixel _tmp38_ = {0};
+ gfloat _tmp39_ = 0.0F;
+ HSVAnalyticPixel _tmp40_ = {0};
+ gfloat _tmp41_ = 0.0F;
+ gfloat _tmp42_ = 0.0F;
+ HSVAnalyticPixel outline_analytic_hsv = {0};
+ HSVAnalyticPixel _tmp43_ = {0};
+ gfloat _tmp44_ = 0.0F;
+ HSVAnalyticPixel _tmp45_ = {0};
+ gfloat _tmp46_ = 0.0F;
+ gfloat _tmp47_ = 0.0F;
+ RGBAnalyticPixel outline_analytic_rgb = {0};
+ RGBAnalyticPixel _tmp48_ = {0};
+ ThemeLoaderLightweightColor* _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ RGBAnalyticPixel _tmp50_ = {0};
+ ThemeLoaderLightweightColor _tmp51_ = {0};
+ ThemeLoaderLightweightColor _tmp52_ = {0};
+ RGBAnalyticPixel bevel_darker_analytic_rgb = {0};
+ RGBAnalyticPixel _tmp53_ = {0};
+ ThemeLoaderLightweightColor* _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+ RGBAnalyticPixel _tmp55_ = {0};
+ ThemeLoaderLightweightColor _tmp56_ = {0};
+ ThemeLoaderLightweightColor _tmp57_ = {0};
+ RGBAnalyticPixel bevel_dark_analytic_rgb = {0};
+ RGBAnalyticPixel _tmp58_ = {0};
+ ThemeLoaderLightweightColor* _tmp59_ = NULL;
+ gint _tmp59__length1 = 0;
+ RGBAnalyticPixel _tmp60_ = {0};
+ ThemeLoaderLightweightColor _tmp61_ = {0};
+ ThemeLoaderLightweightColor _tmp62_ = {0};
+ ThemeLoaderLightweightColor* _tmp63_ = NULL;
+ gint _tmp63__length1 = 0;
+ RGBAnalyticPixel _tmp64_ = {0};
+ ThemeLoaderLightweightColor _tmp65_ = {0};
+ ThemeLoaderLightweightColor _tmp66_ = {0};
+ RGBAnalyticPixel bevel_light_analytic_rgb = {0};
+ RGBAnalyticPixel _tmp67_ = {0};
+ ThemeLoaderLightweightColor* _tmp68_ = NULL;
+ gint _tmp68__length1 = 0;
+ RGBAnalyticPixel _tmp69_ = {0};
+ ThemeLoaderLightweightColor _tmp70_ = {0};
+ ThemeLoaderLightweightColor _tmp71_ = {0};
+ RGBAnalyticPixel bevel_lighter_analytic_rgb = {0};
+ RGBAnalyticPixel _tmp72_ = {0};
+ ThemeLoaderLightweightColor* _tmp73_ = NULL;
+ gint _tmp73__length1 = 0;
+ RGBAnalyticPixel _tmp74_ = {0};
+ ThemeLoaderLightweightColor _tmp75_ = {0};
+ ThemeLoaderLightweightColor _tmp76_ = {0};
+#line 31 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = theme_loader_theme_colors;
+#line 31 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0__length1 = theme_loader_theme_colors_length1;
+#line 31 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp0_ != NULL) {
+#line 32 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return;
+#line 388 "CustomComponents.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = g_new0 (ThemeLoaderLightweightColor, THEME_LOADER_NUM_SUPPORTED_INTENSITIES);
+#line 34 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_theme_colors = (g_free (theme_loader_theme_colors), NULL);
+#line 34 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_theme_colors = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_theme_colors_length1 = THEME_LOADER_NUM_SUPPORTED_INTENSITIES;
+#line 34 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _theme_loader_theme_colors_size_ = theme_loader_theme_colors_length1;
+#line 36 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = gtk_settings_get_default ();
+#line 36 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 36 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ settings = _tmp3_;
+#line 37 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = settings;
+#line 37 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_object_get (_tmp4_, "color-hash", &_tmp5_, NULL);
+#line 37 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = _tmp5_;
+#line 37 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ color_table = _tmp6_;
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = color_table;
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = g_hash_table_lookup (_tmp7_, "bg_color");
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = __gdk_color_dup0 ((GdkColor*) _tmp8_);
+#line 38 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ base_color = _tmp9_;
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = base_color;
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp11_ == NULL) {
+#line 426 "CustomComponents.c"
+ GdkColor _tmp12_ = {0};
+ gboolean _tmp13_ = FALSE;
+ GdkColor _tmp14_ = {0};
+ GdkColor* _tmp15_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = gdk_color_parse ("#fff", &_tmp12_);
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_free0 (base_color);
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = _tmp12_;
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = __gdk_color_dup0 (&_tmp14_);
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ base_color = _tmp15_;
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = !_tmp13_;
+#line 443 "CustomComponents.c"
+ } else {
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = FALSE;
+#line 447 "CustomComponents.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp10_) {
+#line 40 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_error ("CustomComponents.vala:40: can't parse color");
+#line 453 "CustomComponents.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = base_color;
+#line 42 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = (*_tmp16_).red;
+#line 42 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = base_color;
+#line 42 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp19_ = (*_tmp18_).green;
+#line 42 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp20_ = base_color;
+#line 42 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp21_ = (*_tmp20_).blue;
+#line 42 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_analytic_pixel_init_from_quantized_components (&base_color_analytic_rgb, (guchar) (_tmp17_ >> 8), (guchar) (_tmp19_ >> 8), (guchar) (_tmp21_ >> 8));
+#line 45 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp22_ = base_color_analytic_rgb;
+#line 45 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_init_from_rgb (&base_color_analytic_hsv, &_tmp22_);
+#line 48 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp23_ = base_color_analytic_hsv;
+#line 48 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_light_analytic_hsv = _tmp23_;
+#line 49 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp24_ = bevel_light_analytic_hsv.light_value;
+#line 49 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_light_analytic_hsv.light_value = _tmp24_ * 1.15f;
+#line 50 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp25_ = bevel_light_analytic_hsv;
+#line 50 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp26_ = _tmp25_.light_value;
+#line 50 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp27_ = CLAMP (_tmp26_, 0.0f, 1.0f);
+#line 50 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_light_analytic_hsv.light_value = _tmp27_;
+#line 53 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp28_ = bevel_light_analytic_hsv;
+#line 53 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_lighter_analytic_hsv = _tmp28_;
+#line 54 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp29_ = bevel_lighter_analytic_hsv.light_value;
+#line 54 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_lighter_analytic_hsv.light_value = _tmp29_ * 1.15f;
+#line 55 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp30_ = bevel_lighter_analytic_hsv;
+#line 55 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp31_ = _tmp30_.light_value;
+#line 55 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp32_ = CLAMP (_tmp31_, 0.0f, 1.0f);
+#line 55 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_lighter_analytic_hsv.light_value = _tmp32_;
+#line 58 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp33_ = base_color_analytic_hsv;
+#line 58 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_dark_analytic_hsv = _tmp33_;
+#line 59 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp34_ = bevel_dark_analytic_hsv.light_value;
+#line 59 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_dark_analytic_hsv.light_value = _tmp34_ * 0.85f;
+#line 60 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp35_ = bevel_dark_analytic_hsv;
+#line 60 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp36_ = _tmp35_.light_value;
+#line 60 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp37_ = CLAMP (_tmp36_, 0.0f, 1.0f);
+#line 60 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_dark_analytic_hsv.light_value = _tmp37_;
+#line 63 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp38_ = bevel_dark_analytic_hsv;
+#line 63 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_darker_analytic_hsv = _tmp38_;
+#line 64 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp39_ = bevel_darker_analytic_hsv.light_value;
+#line 64 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_darker_analytic_hsv.light_value = _tmp39_ * 0.85f;
+#line 65 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp40_ = bevel_darker_analytic_hsv;
+#line 65 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp41_ = _tmp40_.light_value;
+#line 65 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp42_ = CLAMP (_tmp41_, 0.0f, 1.0f);
+#line 65 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_darker_analytic_hsv.light_value = _tmp42_;
+#line 68 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp43_ = bevel_darker_analytic_hsv;
+#line 68 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ outline_analytic_hsv = _tmp43_;
+#line 69 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp44_ = outline_analytic_hsv.light_value;
+#line 69 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ outline_analytic_hsv.light_value = _tmp44_ * 0.66f;
+#line 70 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp45_ = outline_analytic_hsv;
+#line 70 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp46_ = _tmp45_.light_value;
+#line 70 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp47_ = CLAMP (_tmp46_, 0.0f, 1.0f);
+#line 70 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ outline_analytic_hsv.light_value = _tmp47_;
+#line 73 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_to_rgb (&outline_analytic_hsv, &_tmp48_);
+#line 73 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ outline_analytic_rgb = _tmp48_;
+#line 74 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp49_ = theme_loader_theme_colors;
+#line 74 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp49__length1 = theme_loader_theme_colors_length1;
+#line 74 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp50_ = outline_analytic_rgb;
+#line 74 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_populate_one_theme_param (&_tmp50_, &_tmp51_);
+#line 74 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp49_[THEME_LOADER_THEME_OUTLINE_COLOR] = _tmp51_;
+#line 74 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp52_ = _tmp49_[THEME_LOADER_THEME_OUTLINE_COLOR];
+#line 77 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_to_rgb (&bevel_darker_analytic_hsv, &_tmp53_);
+#line 77 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_darker_analytic_rgb = _tmp53_;
+#line 78 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp54_ = theme_loader_theme_colors;
+#line 78 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp54__length1 = theme_loader_theme_colors_length1;
+#line 78 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp55_ = bevel_darker_analytic_rgb;
+#line 78 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_populate_one_theme_param (&_tmp55_, &_tmp56_);
+#line 78 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp54_[THEME_LOADER_THEME_BEVEL_DARKER_COLOR] = _tmp56_;
+#line 78 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp57_ = _tmp54_[THEME_LOADER_THEME_BEVEL_DARKER_COLOR];
+#line 81 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_to_rgb (&bevel_dark_analytic_hsv, &_tmp58_);
+#line 81 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_dark_analytic_rgb = _tmp58_;
+#line 82 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp59_ = theme_loader_theme_colors;
+#line 82 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp59__length1 = theme_loader_theme_colors_length1;
+#line 82 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp60_ = bevel_dark_analytic_rgb;
+#line 82 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_populate_one_theme_param (&_tmp60_, &_tmp61_);
+#line 82 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp59_[THEME_LOADER_THEME_BEVEL_DARK_COLOR] = _tmp61_;
+#line 82 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp62_ = _tmp59_[THEME_LOADER_THEME_BEVEL_DARK_COLOR];
+#line 85 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp63_ = theme_loader_theme_colors;
+#line 85 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp63__length1 = theme_loader_theme_colors_length1;
+#line 85 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp64_ = base_color_analytic_rgb;
+#line 85 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_populate_one_theme_param (&_tmp64_, &_tmp65_);
+#line 85 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp63_[THEME_LOADER_THEME_BASE_COLOR] = _tmp65_;
+#line 85 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp66_ = _tmp63_[THEME_LOADER_THEME_BASE_COLOR];
+#line 88 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_to_rgb (&bevel_light_analytic_hsv, &_tmp67_);
+#line 88 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_light_analytic_rgb = _tmp67_;
+#line 89 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp68_ = theme_loader_theme_colors;
+#line 89 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp68__length1 = theme_loader_theme_colors_length1;
+#line 89 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp69_ = bevel_light_analytic_rgb;
+#line 89 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_populate_one_theme_param (&_tmp69_, &_tmp70_);
+#line 89 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp68_[THEME_LOADER_THEME_BEVEL_LIGHT_COLOR] = _tmp70_;
+#line 89 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp71_ = _tmp68_[THEME_LOADER_THEME_BEVEL_LIGHT_COLOR];
+#line 92 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_to_rgb (&bevel_light_analytic_hsv, &_tmp72_);
+#line 92 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ bevel_lighter_analytic_rgb = _tmp72_;
+#line 93 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp73_ = theme_loader_theme_colors;
+#line 93 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp73__length1 = theme_loader_theme_colors_length1;
+#line 93 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp74_ = bevel_lighter_analytic_rgb;
+#line 93 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_populate_one_theme_param (&_tmp74_, &_tmp75_);
+#line 93 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp73_[THEME_LOADER_THEME_BEVEL_LIGHTER_COLOR] = _tmp75_;
+#line 93 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp76_ = _tmp73_[THEME_LOADER_THEME_BEVEL_LIGHTER_COLOR];
+#line 30 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_free0 (base_color);
+#line 30 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_hash_table_unref0 (color_table);
+#line 30 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (settings);
+#line 651 "CustomComponents.c"
+}
+
+
+static void theme_loader_populate_one_theme_param (RGBAnalyticPixel* from, ThemeLoaderLightweightColor* result) {
+ ThemeLoaderLightweightColor into = {0};
+ RGBAnalyticPixel _tmp0_ = {0};
+ gfloat _tmp1_ = 0.0F;
+ RGBAnalyticPixel _tmp2_ = {0};
+ gfloat _tmp3_ = 0.0F;
+ RGBAnalyticPixel _tmp4_ = {0};
+ gfloat _tmp5_ = 0.0F;
+#line 97 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (from != NULL);
+#line 98 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_lightweight_color_init (&into);
+#line 100 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = *from;
+#line 100 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = _tmp0_.red;
+#line 100 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ into.red = (guchar) (_tmp1_ * 255.0f);
+#line 101 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = *from;
+#line 101 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _tmp2_.green;
+#line 101 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ into.green = (guchar) (_tmp3_ * 255.0f);
+#line 102 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = *from;
+#line 102 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = _tmp4_.blue;
+#line 102 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ into.blue = (guchar) (_tmp5_ * 255.0f);
+#line 104 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ *result = into;
+#line 104 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return;
+#line 689 "CustomComponents.c"
+}
+
+
+static guint _theme_loader_rgb_pixel_hash_func_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = theme_loader_rgb_pixel_hash_func ((RGBAnalyticPixel*) v);
+#line 114 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 698 "CustomComponents.c"
+}
+
+
+static gboolean _theme_loader_rgb_pixel_equal_func_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = theme_loader_rgb_pixel_equal_func ((RGBAnalyticPixel*) a, (RGBAnalyticPixel*) b);
+#line 114 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 707 "CustomComponents.c"
+}
+
+
+static gint _theme_loader_hsv_pixel_compare_func_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = theme_loader_hsv_pixel_compare_func (a, b);
+#line 142 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 716 "CustomComponents.c"
+}
+
+
+GdkPixbuf* theme_loader_load_icon (const gchar* source_basename) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* loaded_pixbuf = NULL;
+ const gchar* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GeeHashSet* colors = NULL;
+ GeeHashSet* _tmp5_ = NULL;
+ guchar* pixel_data = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ guint8* _tmp7_ = NULL;
+ gint pixel_data_length1 = 0;
+ gint _pixel_data_size_ = 0;
+ GeeHashSet* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ HSVAnalyticPixel* hsv_pixels = NULL;
+ HSVAnalyticPixel* _tmp42_ = NULL;
+ gint hsv_pixels_length1 = 0;
+ gint _hsv_pixels_size_ = 0;
+ gint pixel_ticker = 0;
+ HSVAnalyticPixel* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ HSVAnalyticPixel* _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+#line 107 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (source_basename != NULL, NULL);
+#line 108 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_populate_theme_params ();
+#line 110 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = source_basename;
+#line 110 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = resources_get_icon (_tmp0_, 0);
+#line 110 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = _tmp1_;
+#line 110 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = gdk_pixbuf_copy (_tmp2_);
+#line 110 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = _tmp3_;
+#line 110 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (_tmp2_);
+#line 110 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ loaded_pixbuf = _tmp4_;
+#line 114 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = gee_hash_set_new (TYPE_RGB_ANALYTIC_PIXEL, (GBoxedCopyFunc) rgb_analytic_pixel_dup, rgb_analytic_pixel_free, _theme_loader_rgb_pixel_hash_func_gee_hash_data_func, NULL, NULL, _theme_loader_rgb_pixel_equal_func_gee_equal_data_func, NULL, NULL);
+#line 114 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ colors = _tmp5_;
+#line 117 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = loaded_pixbuf;
+#line 117 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = gdk_pixbuf_get_pixels (_tmp6_);
+#line 117 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_data = _tmp7_;
+#line 117 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_data_length1 = -1;
+#line 117 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _pixel_data_size_ = pixel_data_length1;
+#line 779 "CustomComponents.c"
+ {
+ gint j = 0;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ j = 0;
+#line 784 "CustomComponents.c"
+ {
+ gboolean _tmp8_ = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = TRUE;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 791 "CustomComponents.c"
+ gint _tmp10_ = 0;
+ GdkPixbuf* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp8_) {
+#line 798 "CustomComponents.c"
+ gint _tmp9_ = 0;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = j;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ j = _tmp9_ + 1;
+#line 804 "CustomComponents.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = j;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = loaded_pixbuf;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp12_ = gdk_pixbuf_get_height (_tmp11_);
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = _tmp12_;
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp10_ < _tmp13_)) {
+#line 118 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 820 "CustomComponents.c"
+ }
+ {
+ gint i = 0;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = 0;
+#line 826 "CustomComponents.c"
+ {
+ gboolean _tmp14_ = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = TRUE;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 833 "CustomComponents.c"
+ gint _tmp16_ = 0;
+ GdkPixbuf* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint pixel_index = 0;
+ gint _tmp20_ = 0;
+ GdkPixbuf* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ GdkPixbuf* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ RGBAnalyticPixel pixel_color = {0};
+ guchar* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gint _tmp29_ = 0;
+ guchar _tmp30_ = '\0';
+ guchar* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gint _tmp32_ = 0;
+ guchar _tmp33_ = '\0';
+ guchar* _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ gint _tmp35_ = 0;
+ guchar _tmp36_ = '\0';
+ GeeHashSet* _tmp37_ = NULL;
+ RGBAnalyticPixel _tmp38_ = {0};
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp14_) {
+#line 864 "CustomComponents.c"
+ gint _tmp15_ = 0;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = i;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = _tmp15_ + 1;
+#line 870 "CustomComponents.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = i;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = loaded_pixbuf;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = gdk_pixbuf_get_width (_tmp17_);
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp19_ = _tmp18_;
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp16_ < _tmp19_)) {
+#line 119 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 886 "CustomComponents.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp20_ = j;
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp21_ = loaded_pixbuf;
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp22_ = gdk_pixbuf_get_rowstride (_tmp21_);
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp23_ = _tmp22_;
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp24_ = i;
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp25_ = loaded_pixbuf;
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp26_ = gdk_pixbuf_get_n_channels (_tmp25_);
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp27_ = _tmp26_;
+#line 120 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_index = (_tmp20_ * _tmp23_) + (_tmp24_ * _tmp27_);
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp28_ = pixel_data;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp28__length1 = pixel_data_length1;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp29_ = pixel_index;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp30_ = _tmp28_[_tmp29_];
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp31_ = pixel_data;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp31__length1 = pixel_data_length1;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp32_ = pixel_index;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp33_ = _tmp31_[_tmp32_ + 1];
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp34_ = pixel_data;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp34__length1 = pixel_data_length1;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp35_ = pixel_index;
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp36_ = _tmp34_[_tmp35_ + 2];
+#line 122 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_analytic_pixel_init_from_quantized_components (&pixel_color, _tmp30_, _tmp33_, _tmp36_);
+#line 125 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp37_ = colors;
+#line 125 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp38_ = pixel_color;
+#line 125 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), &_tmp38_);
+#line 938 "CustomComponents.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 132 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp39_ = colors;
+#line 132 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp40_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 132 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp41_ = _tmp40_;
+#line 132 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp41_ != THEME_LOADER_NUM_SUPPORTED_INTENSITIES) {
+#line 133 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_error ("CustomComponents.vala:133: %s", "ThemeLoader: load_icon: pixbuf does not contain the correct number " "of unique colors");
+#line 955 "CustomComponents.c"
+ }
+#line 138 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp42_ = g_new0 (HSVAnalyticPixel, 6);
+#line 138 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_pixels = _tmp42_;
+#line 138 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_pixels_length1 = 6;
+#line 138 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _hsv_pixels_size_ = hsv_pixels_length1;
+#line 139 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_ticker = 0;
+#line 967 "CustomComponents.c"
+ {
+ GeeIterator* _rgb_pixel_it = NULL;
+ GeeHashSet* _tmp43_ = NULL;
+ GeeIterator* _tmp44_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp43_ = colors;
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp44_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _rgb_pixel_it = _tmp44_;
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 980 "CustomComponents.c"
+ GeeIterator* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ RGBAnalyticPixel rgb_pixel = {0};
+ GeeIterator* _tmp47_ = NULL;
+ gpointer _tmp48_ = NULL;
+ RGBAnalyticPixel* _tmp49_ = NULL;
+ RGBAnalyticPixel _tmp50_ = {0};
+ HSVAnalyticPixel* _tmp51_ = NULL;
+ gint _tmp51__length1 = 0;
+ gint _tmp52_ = 0;
+ RGBAnalyticPixel _tmp53_ = {0};
+ HSVAnalyticPixel _tmp54_ = {0};
+ HSVAnalyticPixel _tmp55_ = {0};
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp45_ = _rgb_pixel_it;
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp46_ = gee_iterator_next (_tmp45_);
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp46_) {
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 1002 "CustomComponents.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp47_ = _rgb_pixel_it;
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp48_ = gee_iterator_get (_tmp47_);
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp49_ = (RGBAnalyticPixel*) _tmp48_;
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp50_ = *_tmp49_;
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _rgb_analytic_pixel_free0 (_tmp49_);
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_pixel = _tmp50_;
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp51_ = hsv_pixels;
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp51__length1 = hsv_pixels_length1;
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp52_ = pixel_ticker;
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_ticker = _tmp52_ + 1;
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp53_ = rgb_pixel;
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_init_from_rgb (&_tmp54_, &_tmp53_);
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp51_[_tmp52_] = _tmp54_;
+#line 141 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp55_ = _tmp51_[_tmp52_];
+#line 1032 "CustomComponents.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (_rgb_pixel_it);
+#line 1036 "CustomComponents.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp56_ = hsv_pixels;
+#line 142 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp56__length1 = hsv_pixels_length1;
+#line 142 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp57_ = hsv_pixels;
+#line 142 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp57__length1 = hsv_pixels_length1;
+#line 142 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ qsort (_tmp56_, (gsize) _tmp57__length1, (gsize) sizeof (HSVAnalyticPixel), _theme_loader_hsv_pixel_compare_func_gcompare_func);
+#line 1048 "CustomComponents.c"
+ {
+ gint j = 0;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ j = 0;
+#line 1053 "CustomComponents.c"
+ {
+ gboolean _tmp58_ = FALSE;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp58_ = TRUE;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 1060 "CustomComponents.c"
+ gint _tmp60_ = 0;
+ GdkPixbuf* _tmp61_ = NULL;
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp58_) {
+#line 1067 "CustomComponents.c"
+ gint _tmp59_ = 0;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp59_ = j;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ j = _tmp59_ + 1;
+#line 1073 "CustomComponents.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp58_ = FALSE;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp60_ = j;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp61_ = loaded_pixbuf;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp62_ = gdk_pixbuf_get_height (_tmp61_);
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp63_ = _tmp62_;
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp60_ < _tmp63_)) {
+#line 146 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 1089 "CustomComponents.c"
+ }
+ {
+ gint i = 0;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = 0;
+#line 1095 "CustomComponents.c"
+ {
+ gboolean _tmp64_ = FALSE;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp64_ = TRUE;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 1102 "CustomComponents.c"
+ gint _tmp66_ = 0;
+ GdkPixbuf* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gint pixel_index = 0;
+ gint _tmp70_ = 0;
+ GdkPixbuf* _tmp71_ = NULL;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ GdkPixbuf* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+ RGBAnalyticPixel pixel_color = {0};
+ guchar* _tmp78_ = NULL;
+ gint _tmp78__length1 = 0;
+ gint _tmp79_ = 0;
+ guchar _tmp80_ = '\0';
+ guchar* _tmp81_ = NULL;
+ gint _tmp81__length1 = 0;
+ gint _tmp82_ = 0;
+ guchar _tmp83_ = '\0';
+ guchar* _tmp84_ = NULL;
+ gint _tmp84__length1 = 0;
+ gint _tmp85_ = 0;
+ guchar _tmp86_ = '\0';
+ HSVAnalyticPixel pixel_color_hsv = {0};
+ RGBAnalyticPixel _tmp87_ = {0};
+ gint this_intensity = 0;
+ guchar* _tmp98_ = NULL;
+ gint _tmp98__length1 = 0;
+ gint _tmp99_ = 0;
+ ThemeLoaderLightweightColor* _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gint _tmp101_ = 0;
+ ThemeLoaderLightweightColor _tmp102_ = {0};
+ guchar _tmp103_ = '\0';
+ guchar _tmp104_ = '\0';
+ guchar* _tmp105_ = NULL;
+ gint _tmp105__length1 = 0;
+ gint _tmp106_ = 0;
+ ThemeLoaderLightweightColor* _tmp107_ = NULL;
+ gint _tmp107__length1 = 0;
+ gint _tmp108_ = 0;
+ ThemeLoaderLightweightColor _tmp109_ = {0};
+ guchar _tmp110_ = '\0';
+ guchar _tmp111_ = '\0';
+ guchar* _tmp112_ = NULL;
+ gint _tmp112__length1 = 0;
+ gint _tmp113_ = 0;
+ ThemeLoaderLightweightColor* _tmp114_ = NULL;
+ gint _tmp114__length1 = 0;
+ gint _tmp115_ = 0;
+ ThemeLoaderLightweightColor _tmp116_ = {0};
+ guchar _tmp117_ = '\0';
+ guchar _tmp118_ = '\0';
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp64_) {
+#line 1161 "CustomComponents.c"
+ gint _tmp65_ = 0;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp65_ = i;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = _tmp65_ + 1;
+#line 1167 "CustomComponents.c"
+ }
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp64_ = FALSE;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp66_ = i;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp67_ = loaded_pixbuf;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp68_ = gdk_pixbuf_get_width (_tmp67_);
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp69_ = _tmp68_;
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp66_ < _tmp69_)) {
+#line 147 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 1183 "CustomComponents.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp70_ = j;
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp71_ = loaded_pixbuf;
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp72_ = gdk_pixbuf_get_rowstride (_tmp71_);
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp73_ = _tmp72_;
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp74_ = i;
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp75_ = loaded_pixbuf;
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp76_ = gdk_pixbuf_get_n_channels (_tmp75_);
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp77_ = _tmp76_;
+#line 148 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_index = (_tmp70_ * _tmp73_) + (_tmp74_ * _tmp77_);
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp78_ = pixel_data;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp78__length1 = pixel_data_length1;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp79_ = pixel_index;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp80_ = _tmp78_[_tmp79_];
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp81_ = pixel_data;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp81__length1 = pixel_data_length1;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp82_ = pixel_index;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp83_ = _tmp81_[_tmp82_ + 1];
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp84_ = pixel_data;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp84__length1 = pixel_data_length1;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp85_ = pixel_index;
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp86_ = _tmp84_[_tmp85_ + 2];
+#line 149 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_analytic_pixel_init_from_quantized_components (&pixel_color, _tmp80_, _tmp83_, _tmp86_);
+#line 152 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp87_ = pixel_color;
+#line 152 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_analytic_pixel_init_from_rgb (&pixel_color_hsv, &_tmp87_);
+#line 153 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ this_intensity = 0;
+#line 1235 "CustomComponents.c"
+ {
+ gint k = 0;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ k = 0;
+#line 1240 "CustomComponents.c"
+ {
+ gboolean _tmp88_ = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp88_ = TRUE;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 1247 "CustomComponents.c"
+ gint _tmp90_ = 0;
+ HSVAnalyticPixel* _tmp91_ = NULL;
+ gint _tmp91__length1 = 0;
+ gint _tmp92_ = 0;
+ HSVAnalyticPixel _tmp93_ = {0};
+ gfloat _tmp94_ = 0.0F;
+ HSVAnalyticPixel _tmp95_ = {0};
+ gfloat _tmp96_ = 0.0F;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp88_) {
+#line 1258 "CustomComponents.c"
+ gint _tmp89_ = 0;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp89_ = k;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ k = _tmp89_ + 1;
+#line 1264 "CustomComponents.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp88_ = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp90_ = k;
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp90_ < THEME_LOADER_NUM_SUPPORTED_INTENSITIES)) {
+#line 154 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 1274 "CustomComponents.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp91_ = hsv_pixels;
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp91__length1 = hsv_pixels_length1;
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp92_ = k;
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp93_ = _tmp91_[_tmp92_];
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp94_ = _tmp93_.light_value;
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp95_ = pixel_color_hsv;
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp96_ = _tmp95_.light_value;
+#line 155 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp94_ == _tmp96_) {
+#line 1292 "CustomComponents.c"
+ gint _tmp97_ = 0;
+#line 156 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp97_ = k;
+#line 156 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ this_intensity = _tmp97_;
+#line 157 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 1300 "CustomComponents.c"
+ }
+ }
+ }
+ }
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp98_ = pixel_data;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp98__length1 = pixel_data_length1;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp99_ = pixel_index;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp100_ = theme_loader_theme_colors;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp100__length1 = theme_loader_theme_colors_length1;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp101_ = this_intensity;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp102_ = _tmp100_[_tmp101_];
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp103_ = _tmp102_.red;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp98_[_tmp99_] = _tmp103_;
+#line 160 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp104_ = _tmp98_[_tmp99_];
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp105_ = pixel_data;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp105__length1 = pixel_data_length1;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp106_ = pixel_index;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp107_ = theme_loader_theme_colors;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp107__length1 = theme_loader_theme_colors_length1;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp108_ = this_intensity;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp109_ = _tmp107_[_tmp108_];
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp110_ = _tmp109_.green;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp105_[_tmp106_ + 1] = _tmp110_;
+#line 161 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp111_ = _tmp105_[_tmp106_ + 1];
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp112_ = pixel_data;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp112__length1 = pixel_data_length1;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp113_ = pixel_index;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp114_ = theme_loader_theme_colors;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp114__length1 = theme_loader_theme_colors_length1;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp115_ = this_intensity;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp116_ = _tmp114_[_tmp115_];
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp117_ = _tmp116_.blue;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp112_[_tmp113_ + 2] = _tmp117_;
+#line 162 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp118_ = _tmp112_[_tmp113_ + 2];
+#line 1365 "CustomComponents.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 166 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = loaded_pixbuf;
+#line 166 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ hsv_pixels = (g_free (hsv_pixels), NULL);
+#line 166 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (colors);
+#line 166 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1380 "CustomComponents.c"
+}
+
+
+static gint theme_loader_hsv_pixel_compare_func (void* pixval1, void* pixval2) {
+ gint result = 0;
+ HSVAnalyticPixel pixel_val_1 = {0};
+ void* _tmp0_ = NULL;
+ HSVAnalyticPixel pixel_val_2 = {0};
+ void* _tmp1_ = NULL;
+ HSVAnalyticPixel _tmp2_ = {0};
+ gfloat _tmp3_ = 0.0F;
+ HSVAnalyticPixel _tmp4_ = {0};
+ gfloat _tmp5_ = 0.0F;
+#line 170 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = pixval1;
+#line 170 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_val_1 = *((HSVAnalyticPixel*) _tmp0_);
+#line 171 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = pixval2;
+#line 171 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_val_2 = *((HSVAnalyticPixel*) _tmp1_);
+#line 173 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = pixel_val_1;
+#line 173 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _tmp2_.light_value;
+#line 173 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = pixel_val_2;
+#line 173 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = _tmp4_.light_value;
+#line 173 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = (gint) (255.0f * (_tmp3_ - _tmp5_));
+#line 173 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1414 "CustomComponents.c"
+}
+
+
+static gboolean theme_loader_rgb_pixel_equal_func (RGBAnalyticPixel* p1, RGBAnalyticPixel* p2) {
+ gboolean result = FALSE;
+ RGBAnalyticPixel* _tmp0_ = NULL;
+ RGBAnalyticPixel* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = p1;
+#line 177 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = p2;
+#line 177 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = rgb_analytic_pixel_equals (_tmp0_, _tmp1_);
+#line 177 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = _tmp2_;
+#line 177 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1433 "CustomComponents.c"
+}
+
+
+static guint theme_loader_rgb_pixel_hash_func (RGBAnalyticPixel* pixel_val) {
+ guint result = 0U;
+ RGBAnalyticPixel* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 181 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = pixel_val;
+#line 181 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = rgb_analytic_pixel_hash_code (_tmp0_);
+#line 181 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = _tmp1_;
+#line 181 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1449 "CustomComponents.c"
+}
+
+
+ThemeLoader* theme_loader_construct (GType object_type) {
+ ThemeLoader* self = NULL;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self = (ThemeLoader*) g_type_create_instance (object_type);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return self;
+#line 1459 "CustomComponents.c"
+}
+
+
+ThemeLoader* theme_loader_new (void) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return theme_loader_construct (TYPE_THEME_LOADER);
+#line 1466 "CustomComponents.c"
+}
+
+
+static void theme_loader_lightweight_color_init (ThemeLoaderLightweightColor *self) {
+ guchar _tmp0_ = '\0';
+ guchar _tmp1_ = '\0';
+#line 15 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ memset (self, 0, sizeof (ThemeLoaderLightweightColor));
+#line 16 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ (*self).blue = (guchar) 0;
+#line 16 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = (*self).blue;
+#line 16 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ (*self).green = _tmp0_;
+#line 16 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = (*self).green;
+#line 16 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ (*self).red = _tmp1_;
+#line 1485 "CustomComponents.c"
+}
+
+
+static ThemeLoaderLightweightColor* theme_loader_lightweight_color_dup (const ThemeLoaderLightweightColor* self) {
+ ThemeLoaderLightweightColor* dup;
+#line 10 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ dup = g_new0 (ThemeLoaderLightweightColor, 1);
+#line 10 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ memcpy (dup, self, sizeof (ThemeLoaderLightweightColor));
+#line 10 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return dup;
+#line 1497 "CustomComponents.c"
+}
+
+
+static void theme_loader_lightweight_color_free (ThemeLoaderLightweightColor* self) {
+#line 10 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_free (self);
+#line 1504 "CustomComponents.c"
+}
+
+
+static GType theme_loader_lightweight_color_get_type (void) {
+ static volatile gsize theme_loader_lightweight_color_type_id__volatile = 0;
+ if (g_once_init_enter (&theme_loader_lightweight_color_type_id__volatile)) {
+ GType theme_loader_lightweight_color_type_id;
+ theme_loader_lightweight_color_type_id = g_boxed_type_register_static ("ThemeLoaderLightweightColor", (GBoxedCopyFunc) theme_loader_lightweight_color_dup, (GBoxedFreeFunc) theme_loader_lightweight_color_free);
+ g_once_init_leave (&theme_loader_lightweight_color_type_id__volatile, theme_loader_lightweight_color_type_id);
+ }
+ return theme_loader_lightweight_color_type_id__volatile;
+}
+
+
+static void value_theme_loader_init (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ value->data[0].v_pointer = NULL;
+#line 1522 "CustomComponents.c"
+}
+
+
+static void value_theme_loader_free_value (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_unref (value->data[0].v_pointer);
+#line 1531 "CustomComponents.c"
+ }
+}
+
+
+static void value_theme_loader_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (src_value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ dest_value->data[0].v_pointer = theme_loader_ref (src_value->data[0].v_pointer);
+#line 1541 "CustomComponents.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1545 "CustomComponents.c"
+ }
+}
+
+
+static gpointer value_theme_loader_peek_pointer (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return value->data[0].v_pointer;
+#line 1553 "CustomComponents.c"
+}
+
+
+static gchar* value_theme_loader_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (collect_values[0].v_pointer) {
+#line 1560 "CustomComponents.c"
+ ThemeLoader* object;
+ object = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1567 "CustomComponents.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1571 "CustomComponents.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ value->data[0].v_pointer = theme_loader_ref (object);
+#line 1575 "CustomComponents.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ value->data[0].v_pointer = NULL;
+#line 1579 "CustomComponents.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return NULL;
+#line 1583 "CustomComponents.c"
+}
+
+
+static gchar* value_theme_loader_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ThemeLoader** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!object_p) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1594 "CustomComponents.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ *object_p = NULL;
+#line 1600 "CustomComponents.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1604 "CustomComponents.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ *object_p = theme_loader_ref (value->data[0].v_pointer);
+#line 1608 "CustomComponents.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return NULL;
+#line 1612 "CustomComponents.c"
+}
+
+
+GParamSpec* param_spec_theme_loader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecThemeLoader* spec;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_THEME_LOADER), NULL);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return G_PARAM_SPEC (spec);
+#line 1626 "CustomComponents.c"
+}
+
+
+gpointer value_get_theme_loader (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_THEME_LOADER), NULL);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return value->data[0].v_pointer;
+#line 1635 "CustomComponents.c"
+}
+
+
+void value_set_theme_loader (GValue* value, gpointer v_object) {
+ ThemeLoader* old;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_THEME_LOADER));
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_THEME_LOADER));
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ value->data[0].v_pointer = v_object;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_ref (value->data[0].v_pointer);
+#line 1655 "CustomComponents.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ value->data[0].v_pointer = NULL;
+#line 1659 "CustomComponents.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_unref (old);
+#line 1665 "CustomComponents.c"
+ }
+}
+
+
+void value_take_theme_loader (GValue* value, gpointer v_object) {
+ ThemeLoader* old;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_THEME_LOADER));
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_THEME_LOADER));
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ value->data[0].v_pointer = v_object;
+#line 1684 "CustomComponents.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ value->data[0].v_pointer = NULL;
+#line 1688 "CustomComponents.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_unref (old);
+#line 1694 "CustomComponents.c"
+ }
+}
+
+
+static void theme_loader_class_init (ThemeLoaderClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ theme_loader_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ ((ThemeLoaderClass *) klass)->finalize = theme_loader_finalize;
+#line 1704 "CustomComponents.c"
+}
+
+
+static void theme_loader_instance_init (ThemeLoader * self) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->ref_count = 1;
+#line 1711 "CustomComponents.c"
+}
+
+
+static void theme_loader_finalize (ThemeLoader* obj) {
+ ThemeLoader * self;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_THEME_LOADER, ThemeLoader);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_handlers_destroy (self);
+#line 1721 "CustomComponents.c"
+}
+
+
+GType theme_loader_get_type (void) {
+ static volatile gsize theme_loader_type_id__volatile = 0;
+ if (g_once_init_enter (&theme_loader_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_theme_loader_init, value_theme_loader_free_value, value_theme_loader_copy_value, value_theme_loader_peek_pointer, "p", value_theme_loader_collect_value, "p", value_theme_loader_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ThemeLoaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) theme_loader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ThemeLoader), 0, (GInstanceInitFunc) theme_loader_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType theme_loader_type_id;
+ theme_loader_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ThemeLoader", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&theme_loader_type_id__volatile, theme_loader_type_id);
+ }
+ return theme_loader_type_id__volatile;
+}
+
+
+gpointer theme_loader_ref (gpointer instance) {
+ ThemeLoader* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return instance;
+#line 1746 "CustomComponents.c"
+}
+
+
+void theme_loader_unref (gpointer instance) {
+ ThemeLoader* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ THEME_LOADER_GET_CLASS (self)->finalize (self);
+#line 9 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1759 "CustomComponents.c"
+ }
+}
+
+
+static GType rgb_histogram_manipulator_location_code_get_type (void) {
+ static volatile gsize rgb_histogram_manipulator_location_code_type_id__volatile = 0;
+ if (g_once_init_enter (&rgb_histogram_manipulator_location_code_type_id__volatile)) {
+ static const GEnumValue values[] = {{RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_NUB, "RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_NUB", "left-nub"}, {RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_NUB, "RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_NUB", "right-nub"}, {RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_TROUGH, "RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_TROUGH", "left-trough"}, {RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_TROUGH, "RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_TROUGH", "right-trough"}, {RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_INSENSITIVE_AREA, "RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_INSENSITIVE_AREA", "insensitive-area"}, {0, NULL, NULL}};
+ GType rgb_histogram_manipulator_location_code_type_id;
+ rgb_histogram_manipulator_location_code_type_id = g_enum_register_static ("RGBHistogramManipulatorLocationCode", values);
+ g_once_init_leave (&rgb_histogram_manipulator_location_code_type_id__volatile, rgb_histogram_manipulator_location_code_type_id);
+ }
+ return rgb_histogram_manipulator_location_code_type_id__volatile;
+}
+
+
+static gboolean _rgb_histogram_manipulator_on_button_press_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = rgb_histogram_manipulator_on_button_press ((RGBHistogramManipulator*) self, event);
+#line 240 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1781 "CustomComponents.c"
+}
+
+
+static gboolean _rgb_histogram_manipulator_on_button_release_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = rgb_histogram_manipulator_on_button_release ((RGBHistogramManipulator*) self, event);
+#line 241 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1790 "CustomComponents.c"
+}
+
+
+static gboolean _rgb_histogram_manipulator_on_button_motion_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self) {
+ gboolean result;
+ result = rgb_histogram_manipulator_on_button_motion ((RGBHistogramManipulator*) self, event);
+#line 242 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1799 "CustomComponents.c"
+}
+
+
+RGBHistogramManipulator* rgb_histogram_manipulator_construct (GType object_type) {
+ RGBHistogramManipulator * self = NULL;
+ GtkWidget* _tmp0_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 216 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self = (RGBHistogramManipulator*) g_object_new (object_type, NULL);
+#line 217 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), RGB_HISTOGRAM_MANIPULATOR_CONTROL_WIDTH, RGB_HISTOGRAM_MANIPULATOR_CONTROL_HEIGHT);
+#line 219 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = rgb_histogram_manipulator_dummy_slider;
+#line 219 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp0_ == NULL) {
+#line 1816 "CustomComponents.c"
+ GtkScale* _tmp1_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = (GtkScale*) gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, NULL);
+#line 220 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_object_ref_sink (_tmp1_);
+#line 220 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (rgb_histogram_manipulator_dummy_slider);
+#line 220 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_dummy_slider = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget);
+#line 1826 "CustomComponents.c"
+ }
+#line 222 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = rgb_histogram_manipulator_dummy_frame;
+#line 222 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp2_ == NULL) {
+#line 1832 "CustomComponents.c"
+ GtkFrame* _tmp3_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = (GtkFrame*) gtk_frame_new (NULL);
+#line 223 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_object_ref_sink (_tmp3_);
+#line 223 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (rgb_histogram_manipulator_dummy_frame);
+#line 223 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_dummy_frame = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget);
+#line 1842 "CustomComponents.c"
+ }
+#line 225 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = rgb_histogram_manipulator_paths_setup;
+#line 225 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp4_) {
+#line 1848 "CustomComponents.c"
+ GtkWidgetPath* _tmp5_ = NULL;
+ GtkWidgetPath* _tmp6_ = NULL;
+ GtkWidgetPath* _tmp7_ = NULL;
+ GtkWidgetPath* _tmp8_ = NULL;
+ GtkWidgetPath* _tmp9_ = NULL;
+#line 226 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = rgb_histogram_manipulator_slider_draw_path;
+#line 226 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_append_type (_tmp5_, gtk_scale_get_type ());
+#line 227 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = rgb_histogram_manipulator_slider_draw_path;
+#line 227 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_iter_add_class (_tmp6_, 0, "scale");
+#line 228 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = rgb_histogram_manipulator_slider_draw_path;
+#line 228 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_iter_add_class (_tmp7_, 0, "range");
+#line 230 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = rgb_histogram_manipulator_frame_draw_path;
+#line 230 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_append_type (_tmp8_, gtk_frame_get_type ());
+#line 231 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = rgb_histogram_manipulator_frame_draw_path;
+#line 231 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_iter_add_class (_tmp9_, 0, "default");
+#line 233 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_paths_setup = TRUE;
+#line 1876 "CustomComponents.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) GDK_BUTTON_PRESS_MASK);
+#line 237 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) GDK_BUTTON_RELEASE_MASK);
+#line 238 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) GDK_BUTTON_MOTION_MASK);
+#line 240 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _rgb_histogram_manipulator_on_button_press_gtk_widget_button_press_event, self, 0);
+#line 241 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "button-release-event", (GCallback) _rgb_histogram_manipulator_on_button_release_gtk_widget_button_release_event, self, 0);
+#line 242 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "motion-notify-event", (GCallback) _rgb_histogram_manipulator_on_button_motion_gtk_widget_motion_notify_event, self, 0);
+#line 216 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return self;
+#line 1892 "CustomComponents.c"
+}
+
+
+RGBHistogramManipulator* rgb_histogram_manipulator_new (void) {
+#line 216 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return rgb_histogram_manipulator_construct (TYPE_RGB_HISTOGRAM_MANIPULATOR);
+#line 1899 "CustomComponents.c"
+}
+
+
+static RGBHistogramManipulatorLocationCode rgb_histogram_manipulator_hit_test_point (RGBHistogramManipulator* self, gint x, gint y) {
+ RGBHistogramManipulatorLocationCode result = 0;
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 245 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self), 0);
+#line 246 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = y;
+#line 246 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp0_ < RGB_HISTOGRAM_MANIPULATOR_NUB_V_POSITION) {
+#line 247 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_INSENSITIVE_AREA;
+#line 247 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1931 "CustomComponents.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = x;
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = self->priv->left_nub_position;
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp2_ > _tmp3_) {
+#line 1939 "CustomComponents.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = x;
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = self->priv->left_nub_position;
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = _tmp4_ < (_tmp5_ + RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE);
+#line 1948 "CustomComponents.c"
+ } else {
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = FALSE;
+#line 1952 "CustomComponents.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp1_) {
+#line 250 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_NUB;
+#line 250 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1960 "CustomComponents.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = x;
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = self->priv->right_nub_position;
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp7_ > _tmp8_) {
+#line 1968 "CustomComponents.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = x;
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = self->priv->right_nub_position;
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = _tmp9_ < (_tmp10_ + RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE);
+#line 1977 "CustomComponents.c"
+ } else {
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = FALSE;
+#line 1981 "CustomComponents.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp6_) {
+#line 253 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_NUB;
+#line 253 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1989 "CustomComponents.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = y;
+#line 255 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp11_ < ((RGB_HISTOGRAM_MANIPULATOR_NUB_V_POSITION + RGB_HISTOGRAM_MANIPULATOR_NUB_V_NUDGE) + 1)) {
+#line 256 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_INSENSITIVE_AREA;
+#line 256 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 1999 "CustomComponents.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp12_ = x;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = self->priv->left_nub_position;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = x;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = self->priv->left_nub_position;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = x;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = self->priv->right_nub_position;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = x;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp19_ = self->priv->right_nub_position;
+#line 258 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (((_tmp12_ - _tmp13_) * (_tmp14_ - _tmp15_)) < ((_tmp16_ - _tmp17_) * (_tmp18_ - _tmp19_))) {
+#line 260 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_TROUGH;
+#line 260 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2023 "CustomComponents.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_TROUGH;
+#line 262 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2029 "CustomComponents.c"
+ }
+}
+
+
+static gboolean rgb_histogram_manipulator_on_button_press (RGBHistogramManipulator* self, GdkEventButton* event_record) {
+ gboolean result = FALSE;
+ RGBHistogramManipulatorLocationCode loc = 0;
+ GdkEventButton* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ GdkEventButton* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ RGBHistogramManipulatorLocationCode _tmp4_ = 0;
+ RGBHistogramManipulatorLocationCode _tmp5_ = 0;
+#line 265 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self), FALSE);
+#line 265 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (event_record != NULL, FALSE);
+#line 266 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = event_record;
+#line 266 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = _tmp0_->x;
+#line 266 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = event_record;
+#line 266 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _tmp2_->y;
+#line 266 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = rgb_histogram_manipulator_hit_test_point (self, (gint) _tmp1_, (gint) _tmp3_);
+#line 266 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ loc = _tmp4_;
+#line 268 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = loc;
+#line 268 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ switch (_tmp5_) {
+#line 268 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ case RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_NUB:
+#line 2065 "CustomComponents.c"
+ {
+ GdkEventButton* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ gint _tmp8_ = 0;
+#line 270 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = event_record;
+#line 270 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = _tmp6_->x;
+#line 270 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->track_start_x = (gint) _tmp7_;
+#line 271 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = self->priv->left_nub_position;
+#line 271 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->track_nub_start_position = _tmp8_;
+#line 272 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->is_left_nub_tracking = TRUE;
+#line 273 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = TRUE;
+#line 273 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2086 "CustomComponents.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ case RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_NUB:
+#line 2090 "CustomComponents.c"
+ {
+ GdkEventButton* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ gint _tmp11_ = 0;
+#line 276 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = event_record;
+#line 276 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = _tmp9_->x;
+#line 276 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->track_start_x = (gint) _tmp10_;
+#line 277 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = self->priv->right_nub_position;
+#line 277 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->track_nub_start_position = _tmp11_;
+#line 278 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->is_right_nub_tracking = TRUE;
+#line 279 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = TRUE;
+#line 279 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2111 "CustomComponents.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ case RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_LEFT_TROUGH:
+#line 2115 "CustomComponents.c"
+ {
+ GdkEventButton* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 282 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp12_ = event_record;
+#line 282 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = _tmp12_->x;
+#line 282 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_position = ((gint) _tmp13_) - RGB_HISTOGRAM_MANIPULATOR_NUB_HALF_WIDTH;
+#line 283 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = self->priv->left_nub_position;
+#line 283 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = self->priv->left_nub_max;
+#line 283 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = CLAMP (_tmp14_, 0, _tmp15_);
+#line 283 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_position = _tmp16_;
+#line 284 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_force_update (self);
+#line 285 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_emit_by_name (self, "nub-position-changed");
+#line 286 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_update_nub_extrema (self);
+#line 287 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = TRUE;
+#line 287 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2146 "CustomComponents.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ case RGB_HISTOGRAM_MANIPULATOR_LOCATION_CODE_RIGHT_TROUGH:
+#line 2150 "CustomComponents.c"
+ {
+ GdkEventButton* _tmp17_ = NULL;
+ gdouble _tmp18_ = 0.0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 290 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = event_record;
+#line 290 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = _tmp17_->x;
+#line 290 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_position = ((gint) _tmp18_) - RGB_HISTOGRAM_MANIPULATOR_NUB_HALF_WIDTH;
+#line 291 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp19_ = self->priv->right_nub_position;
+#line 291 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp20_ = self->priv->right_nub_min;
+#line 291 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp21_ = CLAMP (_tmp19_, _tmp20_, 255);
+#line 291 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_position = _tmp21_;
+#line 292 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_force_update (self);
+#line 293 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_emit_by_name (self, "nub-position-changed");
+#line 294 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_update_nub_extrema (self);
+#line 295 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = TRUE;
+#line 295 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2181 "CustomComponents.c"
+ }
+ default:
+ {
+#line 298 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = FALSE;
+#line 298 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2189 "CustomComponents.c"
+ }
+ }
+}
+
+
+static gboolean rgb_histogram_manipulator_on_button_release (RGBHistogramManipulator* self, GdkEventButton* event_record) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 302 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self), FALSE);
+#line 302 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (event_record != NULL, FALSE);
+#line 303 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = self->priv->is_left_nub_tracking;
+#line 303 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp1_) {
+#line 303 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = TRUE;
+#line 2209 "CustomComponents.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 303 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = self->priv->is_right_nub_tracking;
+#line 303 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = _tmp2_;
+#line 2216 "CustomComponents.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp0_) {
+#line 304 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_emit_by_name (self, "nub-position-changed");
+#line 305 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_update_nub_extrema (self);
+#line 2224 "CustomComponents.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->is_left_nub_tracking = FALSE;
+#line 309 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->is_right_nub_tracking = FALSE;
+#line 311 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = FALSE;
+#line 311 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2234 "CustomComponents.c"
+}
+
+
+static gboolean rgb_histogram_manipulator_on_button_motion (RGBHistogramManipulator* self, GdkEventMotion* event_record) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 314 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self), FALSE);
+#line 314 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (event_record != NULL, FALSE);
+#line 315 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = self->priv->is_left_nub_tracking;
+#line 315 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp1_) {
+#line 2251 "CustomComponents.c"
+ gboolean _tmp2_ = FALSE;
+#line 315 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = self->priv->is_right_nub_tracking;
+#line 315 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = !_tmp2_;
+#line 2257 "CustomComponents.c"
+ } else {
+#line 315 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = FALSE;
+#line 2261 "CustomComponents.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp0_) {
+#line 316 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = FALSE;
+#line 316 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2269 "CustomComponents.c"
+ }
+#line 318 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = self->priv->is_left_nub_tracking;
+#line 318 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp3_) {
+#line 2275 "CustomComponents.c"
+ gint track_x_delta = 0;
+ GdkEventMotion* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 319 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = event_record;
+#line 319 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = _tmp4_->x;
+#line 319 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = self->priv->track_start_x;
+#line 319 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ track_x_delta = ((gint) _tmp5_) - _tmp6_;
+#line 320 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = self->priv->track_nub_start_position;
+#line 320 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = track_x_delta;
+#line 320 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_position = _tmp7_ + _tmp8_;
+#line 321 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = self->priv->left_nub_position;
+#line 321 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = self->priv->left_nub_max;
+#line 321 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = CLAMP (_tmp9_, 0, _tmp10_);
+#line 321 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_position = _tmp11_;
+#line 2307 "CustomComponents.c"
+ } else {
+ gint track_x_delta = 0;
+ GdkEventMotion* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 323 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp12_ = event_record;
+#line 323 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = _tmp12_->x;
+#line 323 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = self->priv->track_start_x;
+#line 323 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ track_x_delta = ((gint) _tmp13_) - _tmp14_;
+#line 324 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = self->priv->track_nub_start_position;
+#line 324 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = track_x_delta;
+#line 324 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_position = _tmp15_ + _tmp16_;
+#line 325 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = self->priv->right_nub_position;
+#line 325 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = self->priv->right_nub_min;
+#line 325 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp19_ = CLAMP (_tmp17_, _tmp18_, 255);
+#line 325 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_position = _tmp19_;
+#line 2340 "CustomComponents.c"
+ }
+#line 328 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_force_update (self);
+#line 329 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = TRUE;
+#line 329 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2348 "CustomComponents.c"
+}
+
+
+static gboolean rgb_histogram_manipulator_real_draw (GtkWidget* base, cairo_t* ctx) {
+ RGBHistogramManipulator * self;
+ gboolean result = FALSE;
+ GtkBorder padding = {0};
+ GtkStyleContext* _tmp0_ = NULL;
+ GtkBorder _tmp1_ = {0};
+ GdkRectangle area = {0};
+ GtkBorder _tmp2_ = {0};
+ gint16 _tmp3_ = 0;
+ GtkBorder _tmp4_ = {0};
+ gint16 _tmp5_ = 0;
+ GtkBorder _tmp6_ = {0};
+ gint16 _tmp7_ = 0;
+ GtkBorder _tmp8_ = {0};
+ gint16 _tmp9_ = 0;
+ cairo_t* _tmp10_ = NULL;
+ GdkRectangle _tmp11_ = {0};
+ cairo_t* _tmp12_ = NULL;
+ GdkRectangle _tmp13_ = {0};
+ cairo_t* _tmp14_ = NULL;
+ GdkRectangle _tmp15_ = {0};
+ cairo_t* _tmp16_ = NULL;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ cairo_t* _tmp19_ = NULL;
+ GdkRectangle _tmp20_ = {0};
+ gint _tmp21_ = 0;
+#line 332 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulator);
+#line 332 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (ctx != NULL, FALSE);
+#line 333 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 333 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_get_padding (_tmp0_, GTK_STATE_FLAG_NORMAL, &_tmp1_);
+#line 333 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ padding = _tmp1_;
+#line 335 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ memset (&area, 0, sizeof (GdkRectangle));
+#line 336 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = padding;
+#line 336 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _tmp2_.left;
+#line 336 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ area.x = (gint) _tmp3_;
+#line 337 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = padding;
+#line 337 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = _tmp4_.top;
+#line 337 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ area.y = (gint) _tmp5_;
+#line 338 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = padding;
+#line 338 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = _tmp6_.right;
+#line 338 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ area.width = RGB_HISTOGRAM_GRAPHIC_WIDTH + _tmp7_;
+#line 339 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = padding;
+#line 339 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = _tmp8_.bottom;
+#line 339 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ area.height = RGB_HISTOGRAM_GRAPHIC_HEIGHT + _tmp9_;
+#line 341 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = ctx;
+#line 341 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = area;
+#line 341 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_draw_histogram_frame (self, _tmp10_, &_tmp11_);
+#line 342 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp12_ = ctx;
+#line 342 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = area;
+#line 342 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_draw_histogram (self, _tmp12_, &_tmp13_);
+#line 343 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = ctx;
+#line 343 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = area;
+#line 343 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_draw_trough (self, _tmp14_, &_tmp15_);
+#line 344 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = ctx;
+#line 344 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = area;
+#line 344 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = self->priv->left_nub_position;
+#line 344 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_draw_nub (self, _tmp16_, &_tmp17_, _tmp18_);
+#line 345 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp19_ = ctx;
+#line 345 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp20_ = area;
+#line 345 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp21_ = self->priv->right_nub_position;
+#line 345 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_draw_nub (self, _tmp19_, &_tmp20_, _tmp21_);
+#line 347 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = TRUE;
+#line 347 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 2453 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_draw_histogram_frame (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area) {
+ GdkRectangle framed_area = {0};
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GtkStyleContext* stylectx = NULL;
+ GtkWidget* _tmp5_ = NULL;
+ GtkStyleContext* _tmp6_ = NULL;
+ GtkStyleContext* _tmp7_ = NULL;
+ GtkWidgetPath* _tmp8_ = NULL;
+ GtkWidgetPath* _tmp9_ = NULL;
+ cairo_t* _tmp10_ = NULL;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkRectangle _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+#line 350 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 350 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (ctx != NULL);
+#line 350 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (area != NULL);
+#line 353 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = *area;
+#line 353 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ framed_area = _tmp0_;
+#line 354 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = framed_area.x;
+#line 354 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ framed_area.x = _tmp1_ + 5;
+#line 355 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = framed_area.y;
+#line 355 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ framed_area.y = _tmp2_ + 1;
+#line 356 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = framed_area.width;
+#line 356 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ framed_area.width = _tmp3_ - 8;
+#line 357 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = framed_area.height;
+#line 357 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ framed_area.height = _tmp4_ - 12;
+#line 359 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = rgb_histogram_manipulator_dummy_frame;
+#line 359 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = gtk_widget_get_style_context (_tmp5_);
+#line 359 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 359 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ stylectx = _tmp7_;
+#line 360 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_save (stylectx);
+#line 362 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = gtk_style_context_get_path (stylectx);
+#line 362 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_append_type (_tmp8_, gtk_frame_get_type ());
+#line 363 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = gtk_style_context_get_path (stylectx);
+#line 363 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_iter_add_class (_tmp9_, 0, "default");
+#line 364 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_add_class (stylectx, GTK_STYLE_CLASS_TROUGH);
+#line 365 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_set_junction_sides (stylectx, ((GTK_JUNCTION_TOP | GTK_JUNCTION_BOTTOM) | GTK_JUNCTION_LEFT) | GTK_JUNCTION_RIGHT);
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = ctx;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = framed_area;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp12_ = _tmp11_.x;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = framed_area;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = _tmp13_.y;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = framed_area;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = _tmp15_.width;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = framed_area;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = _tmp17_.height;
+#line 368 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_render_frame (stylectx, _tmp10_, (gdouble) _tmp12_, (gdouble) _tmp14_, (gdouble) _tmp16_, (gdouble) _tmp18_);
+#line 371 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_restore (stylectx);
+#line 350 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (stylectx);
+#line 2551 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_draw_histogram (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area) {
+ RGBHistogram* _tmp0_ = NULL;
+ GdkPixbuf* histogram_graphic = NULL;
+ RGBHistogram* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ guchar* pixel_data = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ guint8* _tmp7_ = NULL;
+ gint pixel_data_length1 = 0;
+ gint _pixel_data_size_ = 0;
+ gint edge_blend_red = 0;
+ gint edge_blend_green = 0;
+ gint edge_blend_blue = 0;
+ gint body_blend_red = 0;
+ gint body_blend_green = 0;
+ gint body_blend_blue = 0;
+ gint _tmp8_ = 0;
+ gint _tmp80_ = 0;
+ cairo_t* _tmp158_ = NULL;
+ GdkPixbuf* _tmp159_ = NULL;
+ GdkRectangle _tmp160_ = {0};
+ gint _tmp161_ = 0;
+ GdkRectangle _tmp162_ = {0};
+ gint _tmp163_ = 0;
+ cairo_t* _tmp164_ = NULL;
+#line 374 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 374 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (ctx != NULL);
+#line 374 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (area != NULL);
+#line 375 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = self->priv->histogram;
+#line 375 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp0_ == NULL) {
+#line 376 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return;
+#line 2595 "CustomComponents.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = self->priv->histogram;
+#line 378 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = rgb_histogram_get_graphic (_tmp1_);
+#line 378 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _tmp2_;
+#line 378 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = gdk_pixbuf_copy (_tmp3_);
+#line 378 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = _tmp4_;
+#line 378 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (_tmp3_);
+#line 378 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ histogram_graphic = _tmp5_;
+#line 379 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = histogram_graphic;
+#line 379 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = gdk_pixbuf_get_pixels (_tmp6_);
+#line 379 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_data = _tmp7_;
+#line 379 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ pixel_data_length1 = -1;
+#line 379 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _pixel_data_size_ = pixel_data_length1;
+#line 381 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_blend_red = 0;
+#line 382 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_blend_green = 0;
+#line 383 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_blend_blue = 0;
+#line 384 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_blend_red = 20;
+#line 385 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_blend_green = 20;
+#line 386 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_blend_blue = 20;
+#line 388 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = self->priv->left_nub_position;
+#line 388 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp8_ > 0) {
+#line 2637 "CustomComponents.c"
+ gint edge_pixel_index = 0;
+ GdkPixbuf* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 389 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = histogram_graphic;
+#line 389 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp10_ = gdk_pixbuf_get_n_channels (_tmp9_);
+#line 389 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp11_ = _tmp10_;
+#line 389 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp12_ = self->priv->left_nub_position;
+#line 389 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_pixel_index = _tmp11_ * _tmp12_;
+#line 2653 "CustomComponents.c"
+ {
+ gint i = 0;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = 0;
+#line 2658 "CustomComponents.c"
+ {
+ gboolean _tmp13_ = FALSE;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = TRUE;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 2665 "CustomComponents.c"
+ gint _tmp15_ = 0;
+ GdkPixbuf* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint body_pixel_index = 0;
+ gint _tmp19_ = 0;
+ GdkPixbuf* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint row_last_pixel = 0;
+ gint _tmp23_ = 0;
+ GdkPixbuf* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ guchar* _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ gint _tmp56_ = 0;
+ guchar* _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ gint _tmp58_ = 0;
+ guchar _tmp59_ = '\0';
+ gint _tmp60_ = 0;
+ guchar _tmp61_ = '\0';
+ guchar* _tmp62_ = NULL;
+ gint _tmp62__length1 = 0;
+ gint _tmp63_ = 0;
+ guchar* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gint _tmp65_ = 0;
+ guchar _tmp66_ = '\0';
+ gint _tmp67_ = 0;
+ guchar _tmp68_ = '\0';
+ guchar* _tmp69_ = NULL;
+ gint _tmp69__length1 = 0;
+ gint _tmp70_ = 0;
+ guchar* _tmp71_ = NULL;
+ gint _tmp71__length1 = 0;
+ gint _tmp72_ = 0;
+ guchar _tmp73_ = '\0';
+ gint _tmp74_ = 0;
+ guchar _tmp75_ = '\0';
+ gint _tmp76_ = 0;
+ GdkPixbuf* _tmp77_ = NULL;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp13_) {
+#line 2714 "CustomComponents.c"
+ gint _tmp14_ = 0;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp14_ = i;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = _tmp14_ + 1;
+#line 2720 "CustomComponents.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp13_ = FALSE;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp15_ = i;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp16_ = histogram_graphic;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp17_ = gdk_pixbuf_get_height (_tmp16_);
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp18_ = _tmp17_;
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp15_ < _tmp18_)) {
+#line 390 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 2736 "CustomComponents.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp19_ = i;
+#line 391 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp20_ = histogram_graphic;
+#line 391 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp21_ = gdk_pixbuf_get_rowstride (_tmp20_);
+#line 391 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp22_ = _tmp21_;
+#line 391 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_pixel_index = _tmp19_ * _tmp22_;
+#line 392 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp23_ = body_pixel_index;
+#line 392 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp24_ = histogram_graphic;
+#line 392 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp25_ = gdk_pixbuf_get_n_channels (_tmp24_);
+#line 392 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp26_ = _tmp25_;
+#line 392 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp27_ = self->priv->left_nub_position;
+#line 392 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ row_last_pixel = _tmp23_ + (_tmp26_ * _tmp27_);
+#line 394 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 2762 "CustomComponents.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ guchar* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ gint _tmp31_ = 0;
+ guchar* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gint _tmp33_ = 0;
+ guchar _tmp34_ = '\0';
+ gint _tmp35_ = 0;
+ guchar _tmp36_ = '\0';
+ guchar* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ gint _tmp38_ = 0;
+ guchar* _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ gint _tmp40_ = 0;
+ guchar _tmp41_ = '\0';
+ gint _tmp42_ = 0;
+ guchar _tmp43_ = '\0';
+ guchar* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ gint _tmp45_ = 0;
+ guchar* _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ gint _tmp47_ = 0;
+ guchar _tmp48_ = '\0';
+ gint _tmp49_ = 0;
+ guchar _tmp50_ = '\0';
+ gint _tmp51_ = 0;
+ GdkPixbuf* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+#line 394 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp28_ = body_pixel_index;
+#line 394 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp29_ = row_last_pixel;
+#line 394 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp28_ < _tmp29_)) {
+#line 394 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 2804 "CustomComponents.c"
+ }
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp30_ = pixel_data;
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp30__length1 = pixel_data_length1;
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp31_ = body_pixel_index;
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp32_ = pixel_data;
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp32__length1 = pixel_data_length1;
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp33_ = body_pixel_index;
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp34_ = _tmp32_[_tmp33_];
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp35_ = body_blend_red;
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp30_[_tmp31_] = (guchar) ((_tmp34_ + _tmp35_) / 2);
+#line 395 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp36_ = _tmp30_[_tmp31_];
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp37_ = pixel_data;
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp37__length1 = pixel_data_length1;
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp38_ = body_pixel_index;
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp39_ = pixel_data;
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp39__length1 = pixel_data_length1;
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp40_ = body_pixel_index;
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp41_ = _tmp39_[_tmp40_ + 1];
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp42_ = body_blend_green;
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp37_[_tmp38_ + 1] = (guchar) ((_tmp41_ + _tmp42_) / 2);
+#line 397 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp43_ = _tmp37_[_tmp38_ + 1];
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp44_ = pixel_data;
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp44__length1 = pixel_data_length1;
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp45_ = body_pixel_index;
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp46_ = pixel_data;
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp46__length1 = pixel_data_length1;
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp47_ = body_pixel_index;
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp48_ = _tmp46_[_tmp47_ + 2];
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp49_ = body_blend_blue;
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp44_[_tmp45_ + 2] = (guchar) ((_tmp48_ + _tmp49_) / 2);
+#line 399 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp50_ = _tmp44_[_tmp45_ + 2];
+#line 402 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp51_ = body_pixel_index;
+#line 402 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp52_ = histogram_graphic;
+#line 402 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp53_ = gdk_pixbuf_get_n_channels (_tmp52_);
+#line 402 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp54_ = _tmp53_;
+#line 402 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_pixel_index = _tmp51_ + _tmp54_;
+#line 2876 "CustomComponents.c"
+ }
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp55_ = pixel_data;
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp55__length1 = pixel_data_length1;
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp56_ = edge_pixel_index;
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp57_ = pixel_data;
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp57__length1 = pixel_data_length1;
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp58_ = edge_pixel_index;
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp59_ = _tmp57_[_tmp58_];
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp60_ = edge_blend_red;
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp55_[_tmp56_] = (guchar) ((_tmp59_ + _tmp60_) / 2);
+#line 405 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp61_ = _tmp55_[_tmp56_];
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp62_ = pixel_data;
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp62__length1 = pixel_data_length1;
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp63_ = edge_pixel_index;
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp64_ = pixel_data;
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp64__length1 = pixel_data_length1;
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp65_ = edge_pixel_index;
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp66_ = _tmp64_[_tmp65_ + 1];
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp67_ = edge_blend_green;
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp62_[_tmp63_ + 1] = (guchar) ((_tmp66_ + _tmp67_) / 2);
+#line 407 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp68_ = _tmp62_[_tmp63_ + 1];
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp69_ = pixel_data;
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp69__length1 = pixel_data_length1;
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp70_ = edge_pixel_index;
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp71_ = pixel_data;
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp71__length1 = pixel_data_length1;
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp72_ = edge_pixel_index;
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp73_ = _tmp71_[_tmp72_ + 2];
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp74_ = edge_blend_blue;
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp69_[_tmp70_ + 2] = (guchar) ((_tmp73_ + _tmp74_) / 2);
+#line 409 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp75_ = _tmp69_[_tmp70_ + 2];
+#line 412 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp76_ = edge_pixel_index;
+#line 412 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp77_ = histogram_graphic;
+#line 412 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp78_ = gdk_pixbuf_get_rowstride (_tmp77_);
+#line 412 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp79_ = _tmp78_;
+#line 412 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_pixel_index = _tmp76_ + _tmp79_;
+#line 2948 "CustomComponents.c"
+ }
+ }
+ }
+ }
+#line 416 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_blend_red = 250;
+#line 417 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_blend_green = 250;
+#line 418 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_blend_blue = 250;
+#line 419 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_blend_red = 200;
+#line 420 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_blend_green = 200;
+#line 421 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_blend_blue = 200;
+#line 423 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp80_ = self->priv->right_nub_position;
+#line 423 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp80_ < 255) {
+#line 2969 "CustomComponents.c"
+ gint edge_pixel_index = 0;
+ GdkPixbuf* _tmp81_ = NULL;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+#line 424 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp81_ = histogram_graphic;
+#line 424 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp82_ = gdk_pixbuf_get_n_channels (_tmp81_);
+#line 424 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp83_ = _tmp82_;
+#line 424 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp84_ = self->priv->right_nub_position;
+#line 424 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_pixel_index = _tmp83_ * _tmp84_;
+#line 2985 "CustomComponents.c"
+ {
+ gint i = 0;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = 0;
+#line 2990 "CustomComponents.c"
+ {
+ gboolean _tmp85_ = FALSE;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp85_ = TRUE;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 2997 "CustomComponents.c"
+ gint _tmp87_ = 0;
+ GdkPixbuf* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ gint body_pixel_index = 0;
+ gint _tmp91_ = 0;
+ GdkPixbuf* _tmp92_ = NULL;
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ GdkPixbuf* _tmp95_ = NULL;
+ gint _tmp96_ = 0;
+ gint _tmp97_ = 0;
+ gint row_last_pixel = 0;
+ gint _tmp98_ = 0;
+ GdkPixbuf* _tmp99_ = NULL;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ GdkPixbuf* _tmp102_ = NULL;
+ gint _tmp103_ = 0;
+ gint _tmp104_ = 0;
+ gint _tmp105_ = 0;
+ guchar* _tmp133_ = NULL;
+ gint _tmp133__length1 = 0;
+ gint _tmp134_ = 0;
+ guchar* _tmp135_ = NULL;
+ gint _tmp135__length1 = 0;
+ gint _tmp136_ = 0;
+ guchar _tmp137_ = '\0';
+ gint _tmp138_ = 0;
+ guchar _tmp139_ = '\0';
+ guchar* _tmp140_ = NULL;
+ gint _tmp140__length1 = 0;
+ gint _tmp141_ = 0;
+ guchar* _tmp142_ = NULL;
+ gint _tmp142__length1 = 0;
+ gint _tmp143_ = 0;
+ guchar _tmp144_ = '\0';
+ gint _tmp145_ = 0;
+ guchar _tmp146_ = '\0';
+ guchar* _tmp147_ = NULL;
+ gint _tmp147__length1 = 0;
+ gint _tmp148_ = 0;
+ guchar* _tmp149_ = NULL;
+ gint _tmp149__length1 = 0;
+ gint _tmp150_ = 0;
+ guchar _tmp151_ = '\0';
+ gint _tmp152_ = 0;
+ guchar _tmp153_ = '\0';
+ gint _tmp154_ = 0;
+ GdkPixbuf* _tmp155_ = NULL;
+ gint _tmp156_ = 0;
+ gint _tmp157_ = 0;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!_tmp85_) {
+#line 3052 "CustomComponents.c"
+ gint _tmp86_ = 0;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp86_ = i;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ i = _tmp86_ + 1;
+#line 3058 "CustomComponents.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp85_ = FALSE;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp87_ = i;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp88_ = histogram_graphic;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp89_ = gdk_pixbuf_get_height (_tmp88_);
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp90_ = _tmp89_;
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp87_ < _tmp90_)) {
+#line 425 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 3074 "CustomComponents.c"
+ }
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp91_ = i;
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp92_ = histogram_graphic;
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp93_ = gdk_pixbuf_get_rowstride (_tmp92_);
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp94_ = _tmp93_;
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp95_ = histogram_graphic;
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp96_ = gdk_pixbuf_get_n_channels (_tmp95_);
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp97_ = _tmp96_;
+#line 426 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_pixel_index = (_tmp91_ * _tmp94_) + (_tmp97_ * 255);
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp98_ = i;
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp99_ = histogram_graphic;
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp100_ = gdk_pixbuf_get_rowstride (_tmp99_);
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp101_ = _tmp100_;
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp102_ = histogram_graphic;
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp103_ = gdk_pixbuf_get_n_channels (_tmp102_);
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp104_ = _tmp103_;
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp105_ = self->priv->right_nub_position;
+#line 428 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ row_last_pixel = (_tmp98_ * _tmp101_) + (_tmp104_ * _tmp105_);
+#line 430 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ while (TRUE) {
+#line 3112 "CustomComponents.c"
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+ guchar* _tmp108_ = NULL;
+ gint _tmp108__length1 = 0;
+ gint _tmp109_ = 0;
+ guchar* _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ gint _tmp111_ = 0;
+ guchar _tmp112_ = '\0';
+ gint _tmp113_ = 0;
+ guchar _tmp114_ = '\0';
+ guchar* _tmp115_ = NULL;
+ gint _tmp115__length1 = 0;
+ gint _tmp116_ = 0;
+ guchar* _tmp117_ = NULL;
+ gint _tmp117__length1 = 0;
+ gint _tmp118_ = 0;
+ guchar _tmp119_ = '\0';
+ gint _tmp120_ = 0;
+ guchar _tmp121_ = '\0';
+ guchar* _tmp122_ = NULL;
+ gint _tmp122__length1 = 0;
+ gint _tmp123_ = 0;
+ guchar* _tmp124_ = NULL;
+ gint _tmp124__length1 = 0;
+ gint _tmp125_ = 0;
+ guchar _tmp126_ = '\0';
+ gint _tmp127_ = 0;
+ guchar _tmp128_ = '\0';
+ gint _tmp129_ = 0;
+ GdkPixbuf* _tmp130_ = NULL;
+ gint _tmp131_ = 0;
+ gint _tmp132_ = 0;
+#line 430 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp106_ = body_pixel_index;
+#line 430 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp107_ = row_last_pixel;
+#line 430 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (!(_tmp106_ > _tmp107_)) {
+#line 430 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ break;
+#line 3154 "CustomComponents.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp108_ = pixel_data;
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp108__length1 = pixel_data_length1;
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp109_ = body_pixel_index;
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp110_ = pixel_data;
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp110__length1 = pixel_data_length1;
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp111_ = body_pixel_index;
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp112_ = _tmp110_[_tmp111_];
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp113_ = body_blend_red;
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp108_[_tmp109_] = (guchar) ((_tmp112_ + _tmp113_) / 2);
+#line 431 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp114_ = _tmp108_[_tmp109_];
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp115_ = pixel_data;
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp115__length1 = pixel_data_length1;
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp116_ = body_pixel_index;
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp117_ = pixel_data;
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp117__length1 = pixel_data_length1;
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp118_ = body_pixel_index;
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp119_ = _tmp117_[_tmp118_ + 1];
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp120_ = body_blend_green;
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp115_[_tmp116_ + 1] = (guchar) ((_tmp119_ + _tmp120_) / 2);
+#line 433 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp121_ = _tmp115_[_tmp116_ + 1];
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp122_ = pixel_data;
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp122__length1 = pixel_data_length1;
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp123_ = body_pixel_index;
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp124_ = pixel_data;
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp124__length1 = pixel_data_length1;
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp125_ = body_pixel_index;
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp126_ = _tmp124_[_tmp125_ + 2];
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp127_ = body_blend_blue;
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp122_[_tmp123_ + 2] = (guchar) ((_tmp126_ + _tmp127_) / 2);
+#line 435 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp128_ = _tmp122_[_tmp123_ + 2];
+#line 438 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp129_ = body_pixel_index;
+#line 438 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp130_ = histogram_graphic;
+#line 438 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp131_ = gdk_pixbuf_get_n_channels (_tmp130_);
+#line 438 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp132_ = _tmp131_;
+#line 438 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ body_pixel_index = _tmp129_ - _tmp132_;
+#line 3226 "CustomComponents.c"
+ }
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp133_ = pixel_data;
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp133__length1 = pixel_data_length1;
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp134_ = edge_pixel_index;
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp135_ = pixel_data;
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp135__length1 = pixel_data_length1;
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp136_ = edge_pixel_index;
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp137_ = _tmp135_[_tmp136_];
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp138_ = edge_blend_red;
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp133_[_tmp134_] = (guchar) ((_tmp137_ + _tmp138_) / 2);
+#line 440 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp139_ = _tmp133_[_tmp134_];
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp140_ = pixel_data;
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp140__length1 = pixel_data_length1;
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp141_ = edge_pixel_index;
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp142_ = pixel_data;
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp142__length1 = pixel_data_length1;
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp143_ = edge_pixel_index;
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp144_ = _tmp142_[_tmp143_ + 1];
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp145_ = edge_blend_green;
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp140_[_tmp141_ + 1] = (guchar) ((_tmp144_ + _tmp145_) / 2);
+#line 442 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp146_ = _tmp140_[_tmp141_ + 1];
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp147_ = pixel_data;
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp147__length1 = pixel_data_length1;
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp148_ = edge_pixel_index;
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp149_ = pixel_data;
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp149__length1 = pixel_data_length1;
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp150_ = edge_pixel_index;
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp151_ = _tmp149_[_tmp150_ + 2];
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp152_ = edge_blend_blue;
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp147_[_tmp148_ + 2] = (guchar) ((_tmp151_ + _tmp152_) / 2);
+#line 444 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp153_ = _tmp147_[_tmp148_ + 2];
+#line 447 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp154_ = edge_pixel_index;
+#line 447 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp155_ = histogram_graphic;
+#line 447 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp156_ = gdk_pixbuf_get_rowstride (_tmp155_);
+#line 447 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp157_ = _tmp156_;
+#line 447 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ edge_pixel_index = _tmp154_ + _tmp157_;
+#line 3298 "CustomComponents.c"
+ }
+ }
+ }
+ }
+#line 451 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp158_ = ctx;
+#line 451 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp159_ = histogram_graphic;
+#line 451 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp160_ = *area;
+#line 451 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp161_ = _tmp160_.x;
+#line 451 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp162_ = *area;
+#line 451 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp163_ = _tmp162_.y;
+#line 451 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gdk_cairo_set_source_pixbuf (_tmp158_, _tmp159_, (gdouble) (_tmp161_ + RGB_HISTOGRAM_MANIPULATOR_NUB_HALF_WIDTH), (gdouble) (_tmp163_ + 2));
+#line 452 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp164_ = ctx;
+#line 452 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ cairo_paint (_tmp164_);
+#line 374 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (histogram_graphic);
+#line 3323 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_draw_trough (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area) {
+ gint trough_x = 0;
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint trough_y = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GtkStyleContext* stylectx = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ GtkStyleContext* _tmp5_ = NULL;
+ GtkStyleContext* _tmp6_ = NULL;
+ GtkWidgetPath* _tmp7_ = NULL;
+ GtkWidgetPath* _tmp8_ = NULL;
+ cairo_t* _tmp9_ = NULL;
+#line 455 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 455 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (ctx != NULL);
+#line 455 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (area != NULL);
+#line 456 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = *area;
+#line 456 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = _tmp0_.x;
+#line 456 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ trough_x = _tmp1_;
+#line 457 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = *area;
+#line 457 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _tmp2_.y;
+#line 457 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ trough_y = _tmp3_ + (((RGB_HISTOGRAM_MANIPULATOR_CONTROL_HEIGHT - RGB_HISTOGRAM_MANIPULATOR_TROUGH_HEIGHT) - RGB_HISTOGRAM_MANIPULATOR_TROUGH_BOTTOM_OFFSET) - 3);
+#line 459 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = rgb_histogram_manipulator_dummy_slider;
+#line 459 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = gtk_widget_get_style_context (_tmp4_);
+#line 459 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 459 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ stylectx = _tmp6_;
+#line 460 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_save (stylectx);
+#line 462 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = gtk_style_context_get_path (stylectx);
+#line 462 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_append_type (_tmp7_, gtk_scale_get_type ());
+#line 463 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp8_ = gtk_style_context_get_path (stylectx);
+#line 463 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_widget_path_iter_add_class (_tmp8_, 0, "scale");
+#line 464 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_add_class (stylectx, GTK_STYLE_CLASS_TROUGH);
+#line 466 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp9_ = ctx;
+#line 466 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_render_activity (stylectx, _tmp9_, (gdouble) trough_x, (gdouble) trough_y, (gdouble) RGB_HISTOGRAM_MANIPULATOR_TROUGH_WIDTH, (gdouble) RGB_HISTOGRAM_MANIPULATOR_TROUGH_HEIGHT);
+#line 468 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gtk_style_context_restore (stylectx);
+#line 455 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (stylectx);
+#line 3387 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_draw_nub (RGBHistogramManipulator* self, cairo_t* ctx, GdkRectangle* area, gint position) {
+ cairo_t* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ cairo_t* _tmp7_ = NULL;
+#line 471 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 471 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (ctx != NULL);
+#line 471 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (area != NULL);
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = ctx;
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = self->priv->nub_pixbuf;
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = *area;
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = _tmp2_.x;
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = position;
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = *area;
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp6_ = _tmp5_.y;
+#line 472 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gdk_cairo_set_source_pixbuf (_tmp0_, _tmp1_, (gdouble) (_tmp3_ + _tmp4_), (gdouble) (_tmp6_ + RGB_HISTOGRAM_MANIPULATOR_NUB_V_POSITION));
+#line 473 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp7_ = ctx;
+#line 473 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ cairo_paint (_tmp7_);
+#line 3426 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_force_update (RGBHistogramManipulator* self) {
+ GdkWindow* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+#line 476 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 477 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 477 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gdk_window_invalidate_rect (_tmp0_, NULL, TRUE);
+#line 478 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 478 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ gdk_window_process_updates (_tmp1_, TRUE);
+#line 3443 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_update_nub_extrema (RGBHistogramManipulator* self) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 481 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 482 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = self->priv->left_nub_position;
+#line 482 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_min = (_tmp0_ + RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE) + 1;
+#line 483 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = self->priv->right_nub_position;
+#line 483 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_max = (_tmp1_ - RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE) - 1;
+#line 3460 "CustomComponents.c"
+}
+
+
+void rgb_histogram_manipulator_update_histogram (RGBHistogramManipulator* self, GdkPixbuf* source_pixbuf) {
+ GdkPixbuf* _tmp0_ = NULL;
+ RGBHistogram* _tmp1_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 488 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (source_pixbuf));
+#line 489 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = source_pixbuf;
+#line 489 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = rgb_histogram_new (_tmp0_);
+#line 489 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _rgb_histogram_unref0 (self->priv->histogram);
+#line 489 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->histogram = _tmp1_;
+#line 490 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_force_update (self);
+#line 3481 "CustomComponents.c"
+}
+
+
+gint rgb_histogram_manipulator_get_left_nub_position (RGBHistogramManipulator* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 493 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self), 0);
+#line 494 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = self->priv->left_nub_position;
+#line 494 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = _tmp0_;
+#line 494 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 3496 "CustomComponents.c"
+}
+
+
+gint rgb_histogram_manipulator_get_right_nub_position (RGBHistogramManipulator* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 497 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_val_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self), 0);
+#line 498 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = self->priv->right_nub_position;
+#line 498 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ result = _tmp0_;
+#line 498 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ return result;
+#line 3511 "CustomComponents.c"
+}
+
+
+void rgb_histogram_manipulator_set_left_nub_position (RGBHistogramManipulator* self, gint user_nub_pos) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 501 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 502 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = user_nub_pos;
+#line 502 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp1_ >= 0) {
+#line 3527 "CustomComponents.c"
+ gint _tmp2_ = 0;
+#line 502 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = user_nub_pos;
+#line 502 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = _tmp2_ <= 255;
+#line 3533 "CustomComponents.c"
+ } else {
+#line 502 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = FALSE;
+#line 3537 "CustomComponents.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _vala_assert (_tmp0_, "(user_nub_pos >= 0) && (user_nub_pos <= 255)");
+#line 503 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = user_nub_pos;
+#line 503 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = self->priv->left_nub_max;
+#line 503 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = CLAMP (_tmp3_, 0, _tmp4_);
+#line 503 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_position = _tmp5_;
+#line 504 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_update_nub_extrema (self);
+#line 3551 "CustomComponents.c"
+}
+
+
+void rgb_histogram_manipulator_set_right_nub_position (RGBHistogramManipulator* self, gint user_nub_pos) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 507 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_return_if_fail (IS_RGB_HISTOGRAM_MANIPULATOR (self));
+#line 508 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = user_nub_pos;
+#line 508 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ if (_tmp1_ >= 0) {
+#line 3567 "CustomComponents.c"
+ gint _tmp2_ = 0;
+#line 508 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp2_ = user_nub_pos;
+#line 508 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = _tmp2_ <= 255;
+#line 3573 "CustomComponents.c"
+ } else {
+#line 508 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = FALSE;
+#line 3577 "CustomComponents.c"
+ }
+#line 508 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _vala_assert (_tmp0_, "(user_nub_pos >= 0) && (user_nub_pos <= 255)");
+#line 509 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp3_ = user_nub_pos;
+#line 509 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp4_ = self->priv->right_nub_min;
+#line 509 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp5_ = CLAMP (_tmp3_, _tmp4_, 255);
+#line 509 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_position = _tmp5_;
+#line 510 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_update_nub_extrema (self);
+#line 3591 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_class_init (RGBHistogramManipulatorClass * klass) {
+ GtkWidgetPath* _tmp0_ = NULL;
+ GtkWidgetPath* _tmp1_ = NULL;
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_parent_class = g_type_class_peek_parent (klass);
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_type_class_add_private (klass, sizeof (RGBHistogramManipulatorPrivate));
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ ((GtkWidgetClass *) klass)->draw = rgb_histogram_manipulator_real_draw;
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ G_OBJECT_CLASS (klass)->finalize = rgb_histogram_manipulator_finalize;
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ g_signal_new ("nub_position_changed", TYPE_RGB_HISTOGRAM_MANIPULATOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 203 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = gtk_widget_path_new ();
+#line 203 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_slider_draw_path = _tmp0_;
+#line 204 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp1_ = gtk_widget_path_new ();
+#line 204 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ rgb_histogram_manipulator_frame_draw_path = _tmp1_;
+#line 3616 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_instance_init (RGBHistogramManipulator * self) {
+ GdkPixbuf* _tmp0_ = NULL;
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv = RGB_HISTOGRAM_MANIPULATOR_GET_PRIVATE (self);
+#line 198 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_max = (255 - RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE) - 1;
+#line 199 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_min = RGB_HISTOGRAM_MANIPULATOR_NUB_SIZE + 1;
+#line 207 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->histogram = NULL;
+#line 208 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->left_nub_position = 0;
+#line 209 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->right_nub_position = 255;
+#line 210 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _tmp0_ = theme_loader_load_icon ("drag_nub.png");
+#line 210 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->nub_pixbuf = _tmp0_;
+#line 211 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->is_left_nub_tracking = FALSE;
+#line 212 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->is_right_nub_tracking = FALSE;
+#line 213 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->track_start_x = 0;
+#line 214 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self->priv->track_nub_start_position = 0;
+#line 3646 "CustomComponents.c"
+}
+
+
+static void rgb_histogram_manipulator_finalize (GObject* obj) {
+ RGBHistogramManipulator * self;
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulator);
+#line 207 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _rgb_histogram_unref0 (self->priv->histogram);
+#line 210 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ _g_object_unref0 (self->priv->nub_pixbuf);
+#line 185 "/home/jens/Source/shotwell/src/CustomComponents.vala"
+ G_OBJECT_CLASS (rgb_histogram_manipulator_parent_class)->finalize (obj);
+#line 3660 "CustomComponents.c"
+}
+
+
+GType rgb_histogram_manipulator_get_type (void) {
+ static volatile gsize rgb_histogram_manipulator_type_id__volatile = 0;
+ if (g_once_init_enter (&rgb_histogram_manipulator_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RGBHistogramManipulatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) rgb_histogram_manipulator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RGBHistogramManipulator), 0, (GInstanceInitFunc) rgb_histogram_manipulator_instance_init, NULL };
+ GType rgb_histogram_manipulator_type_id;
+ rgb_histogram_manipulator_type_id = g_type_register_static (gtk_drawing_area_get_type (), "RGBHistogramManipulator", &g_define_type_info, 0);
+ g_once_init_leave (&rgb_histogram_manipulator_type_id__volatile, rgb_histogram_manipulator_type_id);
+ }
+ return rgb_histogram_manipulator_type_id__volatile;
+}
+
+
+
diff --git a/src/Debug.c b/src/Debug.c
new file mode 100644
index 0000000..9cc7e01
--- /dev/null
+++ b/src/Debug.c
@@ -0,0 +1,747 @@
+/* Debug.c generated by valac 0.32.1, the Vala compiler
+ * generated from Debug.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+#include <time.h>
+#include <unistd.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _fclose0(var) ((var == NULL) ? NULL : (var = (fclose (var), NULL)))
+
+
+extern GLogLevelFlags debug_log_mask;
+GLogLevelFlags debug_log_mask = 0;
+extern gchar* debug_log_app_version_prefix;
+gchar* debug_log_app_version_prefix = NULL;
+extern FILE* debug_log_out;
+FILE* debug_log_out = NULL;
+extern FILE* debug_log_err;
+FILE* debug_log_err = NULL;
+extern FILE* debug_log_file_stream;
+FILE* debug_log_file_stream = NULL;
+
+#define DEBUG_DEFAULT_LOG_MASK ((G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING) | G_LOG_LEVEL_MESSAGE)
+#define DEBUG_VIEWER_PREFIX "V"
+#define DEBUG_LIBRARY_PREFIX "L"
+void debug_init (const gchar* app_version_prefix);
+GFile* app_dirs_get_log_file (void);
+void debug_info_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message);
+static void _debug_info_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+void debug_debug_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message);
+static void _debug_debug_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+void debug_message_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message);
+static void _debug_message_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+void debug_warning_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message);
+static void _debug_warning_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+void debug_critical_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message);
+static void _debug_critical_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+void debug_terminate (void);
+gboolean debug_is_enabled (GLogLevelFlags flag);
+void debug_log (FILE* stream, const gchar* prefix, const gchar* message);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 61 "Debug.c"
+}
+
+
+static void _debug_info_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 82 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_info_handler (log_domain, log_levels, message);
+#line 68 "Debug.c"
+}
+
+
+static void _debug_debug_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 83 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_debug_handler (log_domain, log_levels, message);
+#line 75 "Debug.c"
+}
+
+
+static void _debug_message_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 84 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_message_handler (log_domain, log_levels, message);
+#line 82 "Debug.c"
+}
+
+
+static void _debug_warning_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 85 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_warning_handler (log_domain, log_levels, message);
+#line 89 "Debug.c"
+}
+
+
+static void _debug_critical_handler_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 86 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_critical_handler (log_domain, log_levels, message);
+#line 96 "Debug.c"
+}
+
+
+void debug_init (const gchar* app_version_prefix) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ FILE* _tmp2_ = NULL;
+ FILE* _tmp3_ = NULL;
+ gchar* log_file_error_msg = NULL;
+ GFile* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GFile* log_file = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ GLogLevelFlags _tmp56_ = 0;
+ const gchar* _tmp58_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (app_version_prefix != NULL);
+#line 28 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = app_version_prefix;
+#line 28 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 28 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (debug_log_app_version_prefix);
+#line 28 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_app_version_prefix = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp2_ = stdout;
+#line 31 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_out = _tmp2_;
+#line 32 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp3_ = stderr;
+#line 32 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_err = _tmp3_;
+#line 34 "/home/jens/Source/shotwell/src/Debug.vala"
+ log_file_error_msg = NULL;
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp5_ = debug_log_app_version_prefix;
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (g_strcmp0 (_tmp5_, DEBUG_LIBRARY_PREFIX) == 0) {
+#line 140 "Debug.c"
+ GFile* _tmp6_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp6_ = app_dirs_get_log_file ();
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (_tmp4_);
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp4_ = _tmp6_;
+#line 148 "Debug.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (_tmp4_);
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp4_ = NULL;
+#line 154 "Debug.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp7_ = _g_object_ref0 (_tmp4_);
+#line 37 "/home/jens/Source/shotwell/src/Debug.vala"
+ log_file = _tmp7_;
+#line 38 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp8_ = log_file;
+#line 38 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp8_ != NULL) {
+#line 164 "Debug.c"
+ GFile* log_dir = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ FILE* _tmp26_ = NULL;
+ FILE* _tmp27_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp9_ = log_file;
+#line 39 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp10_ = g_file_get_parent (_tmp9_);
+#line 39 "/home/jens/Source/shotwell/src/Debug.vala"
+ log_dir = _tmp10_;
+#line 179 "Debug.c"
+ {
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 41 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp11_ = log_dir;
+#line 41 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp12_ = g_file_query_exists (_tmp11_, NULL);
+#line 41 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp12_ == FALSE) {
+#line 189 "Debug.c"
+ gboolean _tmp13_ = FALSE;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 42 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp14_ = log_dir;
+#line 42 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp15_ = g_file_make_directory_with_parents (_tmp14_, NULL, &_inner_error_);
+#line 42 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp13_ = _tmp15_;
+#line 42 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 201 "Debug.c"
+ goto __catch421_g_error;
+ }
+#line 42 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (!_tmp13_) {
+#line 206 "Debug.c"
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp16_ = log_dir;
+#line 43 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 43 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp18_ = _tmp17_;
+#line 43 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp19_ = g_strdup_printf ("Unable to create data directory %s", _tmp18_);
+#line 43 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (log_file_error_msg);
+#line 43 "/home/jens/Source/shotwell/src/Debug.vala"
+ log_file_error_msg = _tmp19_;
+#line 43 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (_tmp18_);
+#line 225 "Debug.c"
+ }
+ }
+ }
+ goto __finally421;
+ __catch421_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ err = _inner_error_;
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ _inner_error_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp20_ = err;
+#line 47 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp21_ = _tmp20_->message;
+#line 47 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp22_ = g_strdup (_tmp21_);
+#line 47 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (log_file_error_msg);
+#line 47 "/home/jens/Source/shotwell/src/Debug.vala"
+ log_file_error_msg = _tmp22_;
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_error_free0 (err);
+#line 252 "Debug.c"
+ }
+ __finally421:
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (log_dir);
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (log_file);
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (_tmp4_);
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (log_file_error_msg);
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_clear_error (&_inner_error_);
+#line 40 "/home/jens/Source/shotwell/src/Debug.vala"
+ return;
+#line 271 "Debug.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp23_ = log_file;
+#line 53 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp24_ = g_file_get_path (_tmp23_);
+#line 53 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp25_ = _tmp24_;
+#line 53 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp26_ = g_fopen (_tmp25_, "w");
+#line 53 "/home/jens/Source/shotwell/src/Debug.vala"
+ _fclose0 (debug_log_file_stream);
+#line 53 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_file_stream = _tmp26_;
+#line 53 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (_tmp25_);
+#line 54 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp27_ = debug_log_file_stream;
+#line 54 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp27_ != NULL) {
+#line 291 "Debug.c"
+ FILE* _tmp28_ = NULL;
+ FILE* _tmp29_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp28_ = debug_log_file_stream;
+#line 55 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_out = _tmp28_;
+#line 56 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp29_ = debug_log_file_stream;
+#line 56 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_err = _tmp29_;
+#line 302 "Debug.c"
+ } else {
+ GFile* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp30_ = log_file;
+#line 58 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp31_ = g_file_get_path (_tmp30_);
+#line 58 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp32_ = _tmp31_;
+#line 58 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp33_ = g_strdup_printf ("Unable to open or create log file %s", _tmp32_);
+#line 58 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (log_file_error_msg);
+#line 58 "/home/jens/Source/shotwell/src/Debug.vala"
+ log_file_error_msg = _tmp33_;
+#line 58 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (_tmp32_);
+#line 322 "Debug.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (log_dir);
+#line 326 "Debug.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp34_ = g_getenv ("SHOTWELL_LOG");
+#line 62 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp34_ != NULL) {
+#line 63 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_mask = G_LOG_LEVEL_MASK;
+#line 334 "Debug.c"
+ } else {
+ GLogLevelFlags _tmp35_ = 0;
+ const gchar* _tmp36_ = NULL;
+ GLogLevelFlags _tmp39_ = 0;
+ const gchar* _tmp40_ = NULL;
+ GLogLevelFlags _tmp43_ = 0;
+ const gchar* _tmp44_ = NULL;
+ GLogLevelFlags _tmp47_ = 0;
+ const gchar* _tmp48_ = NULL;
+ GLogLevelFlags _tmp51_ = 0;
+ const gchar* _tmp52_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp36_ = g_getenv ("SHOTWELL_INFO");
+#line 65 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp36_ != NULL) {
+#line 350 "Debug.c"
+ GLogLevelFlags _tmp37_ = 0;
+#line 66 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp37_ = debug_log_mask;
+#line 66 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp35_ = _tmp37_ | G_LOG_LEVEL_INFO;
+#line 356 "Debug.c"
+ } else {
+ GLogLevelFlags _tmp38_ = 0;
+#line 67 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp38_ = debug_log_mask;
+#line 67 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp35_ = _tmp38_;
+#line 363 "Debug.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_mask = _tmp35_;
+#line 68 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp40_ = g_getenv ("SHOTWELL_DEBUG");
+#line 68 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp40_ != NULL) {
+#line 371 "Debug.c"
+ GLogLevelFlags _tmp41_ = 0;
+#line 69 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp41_ = debug_log_mask;
+#line 69 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp39_ = _tmp41_ | G_LOG_LEVEL_DEBUG;
+#line 377 "Debug.c"
+ } else {
+ GLogLevelFlags _tmp42_ = 0;
+#line 70 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp42_ = debug_log_mask;
+#line 70 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp39_ = _tmp42_;
+#line 384 "Debug.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_mask = _tmp39_;
+#line 71 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp44_ = g_getenv ("SHOTWELL_MESSAGE");
+#line 71 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp44_ != NULL) {
+#line 392 "Debug.c"
+ GLogLevelFlags _tmp45_ = 0;
+#line 72 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp45_ = debug_log_mask;
+#line 72 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp43_ = _tmp45_ | G_LOG_LEVEL_MESSAGE;
+#line 398 "Debug.c"
+ } else {
+ GLogLevelFlags _tmp46_ = 0;
+#line 73 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp46_ = debug_log_mask;
+#line 73 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp43_ = _tmp46_;
+#line 405 "Debug.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_mask = _tmp43_;
+#line 74 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp48_ = g_getenv ("SHOTWELL_WARNING");
+#line 74 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp48_ != NULL) {
+#line 413 "Debug.c"
+ GLogLevelFlags _tmp49_ = 0;
+#line 75 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp49_ = debug_log_mask;
+#line 75 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp47_ = _tmp49_ | G_LOG_LEVEL_WARNING;
+#line 419 "Debug.c"
+ } else {
+ GLogLevelFlags _tmp50_ = 0;
+#line 76 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp50_ = debug_log_mask;
+#line 76 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp47_ = _tmp50_;
+#line 426 "Debug.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_mask = _tmp47_;
+#line 77 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp52_ = g_getenv ("SHOTWELL_CRITICAL");
+#line 77 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp52_ != NULL) {
+#line 434 "Debug.c"
+ GLogLevelFlags _tmp53_ = 0;
+#line 78 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp53_ = debug_log_mask;
+#line 78 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp51_ = _tmp53_ | G_LOG_LEVEL_CRITICAL;
+#line 440 "Debug.c"
+ } else {
+ GLogLevelFlags _tmp54_ = 0;
+#line 79 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp54_ = debug_log_mask;
+#line 79 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp51_ = _tmp54_;
+#line 447 "Debug.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_mask = _tmp51_;
+#line 451 "Debug.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_log_set_handler (NULL, G_LOG_LEVEL_INFO, _debug_info_handler_glog_func, NULL);
+#line 83 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, _debug_debug_handler_glog_func, NULL);
+#line 84 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_log_set_handler (NULL, G_LOG_LEVEL_MESSAGE, _debug_message_handler_glog_func, NULL);
+#line 85 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_log_set_handler (NULL, G_LOG_LEVEL_WARNING, _debug_warning_handler_glog_func, NULL);
+#line 86 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_log_set_handler (NULL, G_LOG_LEVEL_CRITICAL, _debug_critical_handler_glog_func, NULL);
+#line 88 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp56_ = debug_log_mask;
+#line 88 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp56_ == 0) {
+#line 467 "Debug.c"
+ GFile* _tmp57_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp57_ = log_file;
+#line 88 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp55_ = _tmp57_ != NULL;
+#line 473 "Debug.c"
+ } else {
+#line 88 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp55_ = FALSE;
+#line 477 "Debug.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp55_) {
+#line 91 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log_mask = DEBUG_DEFAULT_LOG_MASK;
+#line 483 "Debug.c"
+ }
+#line 94 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp58_ = log_file_error_msg;
+#line 94 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp58_ != NULL) {
+#line 489 "Debug.c"
+ const gchar* _tmp59_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp59_ = log_file_error_msg;
+#line 95 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_warning ("Debug.vala:95: %s", _tmp59_);
+#line 495 "Debug.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (log_file);
+#line 27 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_object_unref0 (_tmp4_);
+#line 27 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (log_file_error_msg);
+#line 503 "Debug.c"
+}
+
+
+void debug_terminate (void) {
+}
+
+
+gboolean debug_is_enabled (GLogLevelFlags flag) {
+ gboolean result = FALSE;
+ GLogLevelFlags _tmp0_ = 0;
+ GLogLevelFlags _tmp1_ = 0;
+#line 103 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = debug_log_mask;
+#line 103 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = flag;
+#line 103 "/home/jens/Source/shotwell/src/Debug.vala"
+ result = (_tmp0_ & _tmp1_) > 0;
+#line 103 "/home/jens/Source/shotwell/src/Debug.vala"
+ return result;
+#line 523 "Debug.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 538 "Debug.c"
+}
+
+
+static gchar* g_time_to_string (struct tm *self) {
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = (*self).tm_year;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = (*self).tm_mon;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = (*self).tm_mday;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = (*self).tm_hour;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = (*self).tm_min;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = (*self).tm_sec;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = g_strdup_printf ("%04d-%02d-%02d %02d:%02d:%02d", _tmp0_ + 1900, _tmp1_ + 1, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp6_;
+#line 2706 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 569 "Debug.c"
+}
+
+
+void debug_log (FILE* stream, const gchar* prefix, const gchar* message) {
+ time_t now = 0;
+ time_t _tmp0_ = 0;
+ FILE* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ pid_t _tmp3_ = 0;
+ struct tm _tmp4_ = {0};
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ FILE* _tmp9_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (stream != NULL);
+#line 106 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (prefix != NULL);
+#line 106 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (message != NULL);
+#line 107 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = time (NULL);
+#line 107 "/home/jens/Source/shotwell/src/Debug.vala"
+ now = _tmp0_;
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = stream;
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp2_ = debug_log_app_version_prefix;
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp3_ = getpid ();
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_time_local (now, &_tmp4_);
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp5_ = g_time_to_string (&_tmp4_);
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp6_ = _tmp5_;
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp7_ = prefix;
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp8_ = message;
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ fprintf (_tmp1_, "%s %d %s [%s] %s\n", _tmp2_, (gint) _tmp3_, _tmp6_, _tmp7_, _tmp8_);
+#line 108 "/home/jens/Source/shotwell/src/Debug.vala"
+ _g_free0 (_tmp6_);
+#line 115 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp9_ = stream;
+#line 115 "/home/jens/Source/shotwell/src/Debug.vala"
+ fflush (_tmp9_);
+#line 619 "Debug.c"
+}
+
+
+void debug_info_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message) {
+ gboolean _tmp0_ = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (message != NULL);
+#line 119 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = debug_is_enabled (G_LOG_LEVEL_INFO);
+#line 119 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp0_) {
+#line 631 "Debug.c"
+ FILE* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = debug_log_out;
+#line 120 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp2_ = message;
+#line 120 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log (_tmp1_, "INF", _tmp2_);
+#line 640 "Debug.c"
+ }
+}
+
+
+void debug_debug_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message) {
+ gboolean _tmp0_ = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (message != NULL);
+#line 124 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = debug_is_enabled (G_LOG_LEVEL_DEBUG);
+#line 124 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp0_) {
+#line 653 "Debug.c"
+ FILE* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = debug_log_out;
+#line 125 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp2_ = message;
+#line 125 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log (_tmp1_, "DBG", _tmp2_);
+#line 662 "Debug.c"
+ }
+}
+
+
+void debug_message_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message) {
+ gboolean _tmp0_ = FALSE;
+#line 128 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (message != NULL);
+#line 129 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = debug_is_enabled (G_LOG_LEVEL_MESSAGE);
+#line 129 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp0_) {
+#line 675 "Debug.c"
+ FILE* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = debug_log_err;
+#line 130 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp2_ = message;
+#line 130 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log (_tmp1_, "MSG", _tmp2_);
+#line 684 "Debug.c"
+ }
+}
+
+
+void debug_warning_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message) {
+ gboolean _tmp0_ = FALSE;
+#line 133 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (message != NULL);
+#line 134 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = debug_is_enabled (G_LOG_LEVEL_WARNING);
+#line 134 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp0_) {
+#line 697 "Debug.c"
+ FILE* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = debug_log_err;
+#line 135 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp2_ = message;
+#line 135 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log (_tmp1_, "WRN", _tmp2_);
+#line 706 "Debug.c"
+ }
+}
+
+
+void debug_critical_handler (const gchar* domain, GLogLevelFlags flags, const gchar* message) {
+ gboolean _tmp0_ = FALSE;
+#line 138 "/home/jens/Source/shotwell/src/Debug.vala"
+ g_return_if_fail (message != NULL);
+#line 139 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp0_ = debug_is_enabled (G_LOG_LEVEL_CRITICAL);
+#line 139 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp0_) {
+#line 719 "Debug.c"
+ FILE* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ FILE* _tmp3_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp1_ = debug_log_err;
+#line 140 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp2_ = message;
+#line 140 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log (_tmp1_, "CRT", _tmp2_);
+#line 141 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp3_ = debug_log_file_stream;
+#line 141 "/home/jens/Source/shotwell/src/Debug.vala"
+ if (_tmp3_ != NULL) {
+#line 733 "Debug.c"
+ FILE* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp4_ = stderr;
+#line 142 "/home/jens/Source/shotwell/src/Debug.vala"
+ _tmp5_ = message;
+#line 142 "/home/jens/Source/shotwell/src/Debug.vala"
+ debug_log (_tmp4_, "CRT", _tmp5_);
+#line 742 "Debug.c"
+ }
+ }
+}
+
+
+
diff --git a/src/DesktopIntegration.c b/src/DesktopIntegration.c
new file mode 100644
index 0000000..f0e3b6d
--- /dev/null
+++ b/src/DesktopIntegration.c
@@ -0,0 +1,2960 @@
+/* DesktopIntegration.c generated by valac 0.32.1, the Vala compiler
+ * generated from DesktopIntegration.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <glib/gstdio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_EXPORTER_UI (exporter_ui_get_type ())
+#define EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER_UI, ExporterUI))
+#define EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER_UI, ExporterUIClass))
+#define IS_EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER_UI))
+#define IS_EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER_UI))
+#define EXPORTER_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER_UI, ExporterUIClass))
+
+typedef struct _ExporterUI ExporterUI;
+typedef struct _ExporterUIClass ExporterUIClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_EXPORT_DIALOG (export_dialog_get_type ())
+#define EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORT_DIALOG, ExportDialog))
+#define EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORT_DIALOG, ExportDialogClass))
+#define IS_EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORT_DIALOG))
+#define IS_EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORT_DIALOG))
+#define EXPORT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORT_DIALOG, ExportDialogClass))
+
+typedef struct _ExportDialog ExportDialog;
+typedef struct _ExportDialogClass ExportDialogClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_EXPORTER (exporter_get_type ())
+#define EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER, Exporter))
+#define EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER, ExporterClass))
+#define IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER))
+#define IS_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER))
+#define EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER, ExporterClass))
+
+typedef struct _Exporter Exporter;
+typedef struct _ExporterClass ExporterClass;
+#define _exporter_ui_unref0(var) ((var == NULL) ? NULL : (var = (exporter_ui_unref (var), NULL)))
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER (desktop_integration_background_slideshow_xml_builder_get_type ())
+#define DESKTOP_INTEGRATION_BACKGROUND_SLIDESHOW_XML_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER, DesktopIntegrationBackgroundSlideshowXMLBuilder))
+#define DESKTOP_INTEGRATION_BACKGROUND_SLIDESHOW_XML_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER, DesktopIntegrationBackgroundSlideshowXMLBuilderClass))
+#define DESKTOP_INTEGRATION_IS_BACKGROUND_SLIDESHOW_XML_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER))
+#define DESKTOP_INTEGRATION_IS_BACKGROUND_SLIDESHOW_XML_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER))
+#define DESKTOP_INTEGRATION_BACKGROUND_SLIDESHOW_XML_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER, DesktopIntegrationBackgroundSlideshowXMLBuilderClass))
+
+typedef struct _DesktopIntegrationBackgroundSlideshowXMLBuilder DesktopIntegrationBackgroundSlideshowXMLBuilder;
+typedef struct _DesktopIntegrationBackgroundSlideshowXMLBuilderClass DesktopIntegrationBackgroundSlideshowXMLBuilderClass;
+typedef struct _DesktopIntegrationBackgroundSlideshowXMLBuilderPrivate DesktopIntegrationBackgroundSlideshowXMLBuilderPrivate;
+typedef struct _DesktopIntegrationParamSpecBackgroundSlideshowXMLBuilder DesktopIntegrationParamSpecBackgroundSlideshowXMLBuilder;
+#define _desktop_integration_background_slideshow_xml_builder_unref0(var) ((var == NULL) ? NULL : (var = (desktop_integration_background_slideshow_xml_builder_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef void (*ExporterCompletionCallback) (Exporter* exporter, gboolean is_cancelled, void* user_data);
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _DesktopIntegrationBackgroundSlideshowXMLBuilder {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DesktopIntegrationBackgroundSlideshowXMLBuilderPrivate * priv;
+};
+
+struct _DesktopIntegrationBackgroundSlideshowXMLBuilderClass {
+ GTypeClass parent_class;
+ void (*finalize) (DesktopIntegrationBackgroundSlideshowXMLBuilder *self);
+};
+
+struct _DesktopIntegrationBackgroundSlideshowXMLBuilderPrivate {
+ GFile* destination;
+ gdouble duration;
+ gdouble transition;
+ GFile* tmp_file;
+ GDataOutputStream* outs;
+ GFile* first_file;
+ GFile* last_file;
+};
+
+struct _DesktopIntegrationParamSpecBackgroundSlideshowXMLBuilder {
+ GParamSpec parent_instance;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+
+extern gint desktop_integration_init_count;
+gint desktop_integration_init_count = 0;
+extern gboolean desktop_integration_send_to_installed;
+gboolean desktop_integration_send_to_installed = FALSE;
+extern ExporterUI* desktop_integration_send_to_exporter;
+ExporterUI* desktop_integration_send_to_exporter = NULL;
+extern ExporterUI* desktop_integration_desktop_slideshow_exporter;
+ExporterUI* desktop_integration_desktop_slideshow_exporter = NULL;
+extern gdouble desktop_integration_desktop_slideshow_transition;
+gdouble desktop_integration_desktop_slideshow_transition = 0.0;
+extern gdouble desktop_integration_desktop_slideshow_duration;
+gdouble desktop_integration_desktop_slideshow_duration = 0.0;
+extern gboolean desktop_integration_set_desktop_background;
+gboolean desktop_integration_set_desktop_background = FALSE;
+extern gboolean desktop_integration_set_screensaver;
+gboolean desktop_integration_set_screensaver = FALSE;
+static gpointer desktop_integration_background_slideshow_xml_builder_parent_class = NULL;
+
+#define DESKTOP_INTEGRATION_SENDTO_EXEC "nautilus-sendto"
+#define DESKTOP_INTEGRATION_DESKTOP_SLIDESHOW_XML_FILENAME "wallpaper.xml"
+gpointer exporter_ui_ref (gpointer instance);
+void exporter_ui_unref (gpointer instance);
+GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_exporter_ui (GValue* value, gpointer v_object);
+void value_take_exporter_ui (GValue* value, gpointer v_object);
+gpointer value_get_exporter_ui (const GValue* value);
+GType exporter_ui_get_type (void) G_GNUC_CONST;
+void desktop_integration_init (void);
+void desktop_integration_terminate (void);
+GAppInfo* desktop_integration_get_default_app_for_mime_types (gchar** mime_types, int mime_types_length1, GeeArrayList* preferred_apps);
+GType sorted_list_get_type (void) G_GNUC_CONST;
+SortedList* desktop_integration_get_apps_for_mime_types (gchar** mime_types, int mime_types_length1);
+gint64 desktop_integration_app_info_comparator (void* a, void* b);
+static gint64 _desktop_integration_app_info_comparator_comparator (void* a, void* b, gpointer self);
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+#define RESOURCES_APP_TITLE "Shotwell"
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+gchar* desktop_integration_get_app_open_command (GAppInfo* app_info);
+gboolean desktop_integration_is_send_to_installed (void);
+void desktop_integration_files_send_to (GFile** files, int files_length1);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void page_window_set_busy_cursor (PageWindow* self);
+void page_window_set_normal_cursor (PageWindow* self);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+void desktop_integration_send_to (GeeCollection* media);
+GType export_dialog_get_type (void) G_GNUC_CONST;
+ExportDialog* export_dialog_new (const gchar* title);
+ExportDialog* export_dialog_construct (GType object_type, const gchar* title);
+gboolean media_source_collection_has_video (GeeCollection* media);
+gboolean media_source_collection_has_photo (GeeCollection* media);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+GType exporter_get_type (void) G_GNUC_CONST;
+ExporterUI* video_export_many (GeeCollection* videos, ExporterCompletionCallback done, void* done_target, gboolean export_in_place);
+void desktop_integration_on_send_to_export_completed (Exporter* exporter, gboolean is_cancelled);
+static void _desktop_integration_on_send_to_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self);
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+void export_format_parameters_current (ExportFormatParameters* result);
+gboolean export_dialog_execute (ExportDialog* self, gint* scale, ScaleConstraint* constraint, ExportFormatParameters* parameters);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void scaling_for_constraint (ScaleConstraint constraint, gint scale, gboolean scale_up, Scaling* result);
+Exporter* exporter_new_for_temp_file (GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params);
+Exporter* exporter_construct_for_temp_file (GType object_type, GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params);
+ExporterUI* exporter_ui_new (Exporter* exporter);
+ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter);
+void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target);
+GFile** exporter_get_exported_files (Exporter* self, int* result_length1);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+void desktop_integration_set_background (Photo* photo, gboolean desktop, gboolean screensaver);
+PhotoFileFormat photo_get_best_export_file_format (Photo* self);
+GFile* app_dirs_get_data_subdir (const gchar* name, const gchar* subname);
+gchar* photo_file_format_get_default_basename (PhotoFileFormat self, const gchar* name);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gchar* configuration_facade_get_desktop_background (ConfigurationFacade* self);
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error);
+void scaling_for_original (Scaling* result);
+void configuration_facade_set_desktop_background (ConfigurationFacade* self, const gchar* filename);
+void configuration_facade_set_screensaver (ConfigurationFacade* self, const gchar* filename);
+gpointer desktop_integration_background_slideshow_xml_builder_ref (gpointer instance);
+void desktop_integration_background_slideshow_xml_builder_unref (gpointer instance);
+GParamSpec* desktop_integration_param_spec_background_slideshow_xml_builder (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void desktop_integration_value_set_background_slideshow_xml_builder (GValue* value, gpointer v_object);
+void desktop_integration_value_take_background_slideshow_xml_builder (GValue* value, gpointer v_object);
+gpointer desktop_integration_value_get_background_slideshow_xml_builder (const GValue* value);
+GType desktop_integration_background_slideshow_xml_builder_get_type (void) G_GNUC_CONST;
+#define DESKTOP_INTEGRATION_BACKGROUND_SLIDESHOW_XML_BUILDER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER, DesktopIntegrationBackgroundSlideshowXMLBuilderPrivate))
+enum {
+ DESKTOP_INTEGRATION_BACKGROUND_SLIDESHOW_XML_BUILDER_DUMMY_PROPERTY
+};
+DesktopIntegrationBackgroundSlideshowXMLBuilder* desktop_integration_background_slideshow_xml_builder_new (GFile* destination, gdouble duration, gdouble transition);
+DesktopIntegrationBackgroundSlideshowXMLBuilder* desktop_integration_background_slideshow_xml_builder_construct (GType object_type, GFile* destination, gdouble duration, gdouble transition);
+void desktop_integration_background_slideshow_xml_builder_open (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GError** error);
+static void desktop_integration_background_slideshow_xml_builder_write_transition (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GFile* from, GFile* to, GError** error);
+static void desktop_integration_background_slideshow_xml_builder_write_static (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GFile* file, GError** error);
+void desktop_integration_background_slideshow_xml_builder_add_photo (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GFile* file, GError** error);
+GFile* desktop_integration_background_slideshow_xml_builder_close (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GError** error);
+static void desktop_integration_background_slideshow_xml_builder_finalize (DesktopIntegrationBackgroundSlideshowXMLBuilder* obj);
+void desktop_integration_set_background_slideshow (GeeCollection* photos, gdouble duration, gdouble transition, gboolean desktop_background, gboolean screensaver);
+void delete_all_files (GFile* dir, GeeSet* exceptions, ProgressMonitor monitor, void* monitor_target, guint64 file_count, GCancellable* cancellable, GError** error);
+void scaling_to_fill_screen (GtkWindow* window, Scaling* result);
+Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+void desktop_integration_on_desktop_slideshow_exported (Exporter* exporter, gboolean is_cancelled);
+static void _desktop_integration_on_desktop_slideshow_exported_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+void desktop_integration_init (void) {
+ gint _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = desktop_integration_init_count;
+#line 23 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_init_count = _tmp0_ + 1;
+#line 23 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp0_ != 0) {
+#line 24 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 445 "DesktopIntegration.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = g_find_program_in_path (DESKTOP_INTEGRATION_SENDTO_EXEC);
+#line 26 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = _tmp1_;
+#line 26 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_send_to_installed = _tmp2_ != NULL;
+#line 26 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp2_);
+#line 455 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_terminate (void) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 30 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = desktop_integration_init_count;
+#line 30 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_init_count = _tmp0_ - 1;
+#line 30 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = desktop_integration_init_count;
+#line 30 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp1_ == 0) {
+#line 31 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 472 "DesktopIntegration.c"
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 480 "DesktopIntegration.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 500 "DesktopIntegration.c"
+}
+
+
+GAppInfo* desktop_integration_get_default_app_for_mime_types (gchar** mime_types, int mime_types_length1, GeeArrayList* preferred_apps) {
+ GAppInfo* result = NULL;
+ SortedList* external_apps = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ SortedList* _tmp1_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_val_if_fail (GEE_IS_ARRAY_LIST (preferred_apps), NULL);
+#line 36 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = mime_types;
+#line 36 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0__length1 = mime_types_length1;
+#line 36 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = desktop_integration_get_apps_for_mime_types (_tmp0_, _tmp0__length1);
+#line 36 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ external_apps = _tmp1_;
+#line 520 "DesktopIntegration.c"
+ {
+ GeeArrayList* _preferred_app_list = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _preferred_app_size = 0;
+ GeeArrayList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _preferred_app_index = 0;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = preferred_apps;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _preferred_app_list = _tmp3_;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = _preferred_app_list;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = _tmp5_;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _preferred_app_size = _tmp6_;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _preferred_app_index = -1;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ while (TRUE) {
+#line 548 "DesktopIntegration.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gchar* preferred_app = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = _preferred_app_index;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _preferred_app_index = _tmp7_ + 1;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = _preferred_app_index;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = _preferred_app_size;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ break;
+#line 568 "DesktopIntegration.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = _preferred_app_list;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = _preferred_app_index;
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp11_);
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ preferred_app = (gchar*) _tmp12_;
+#line 578 "DesktopIntegration.c"
+ {
+ GeeIterator* _external_app_it = NULL;
+ SortedList* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = external_apps;
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _external_app_it = _tmp14_;
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ while (TRUE) {
+#line 591 "DesktopIntegration.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ GAppInfo* external_app = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ GAppInfo* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = _external_app_it;
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!_tmp16_) {
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ break;
+#line 609 "DesktopIntegration.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp17_ = _external_app_it;
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ external_app = (GAppInfo*) _tmp18_;
+#line 40 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19_ = external_app;
+#line 40 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp20_ = g_app_info_get_name (_tmp19_);
+#line 40 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp21_ = preferred_app;
+#line 40 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp22_ = string_contains (_tmp20_, _tmp21_);
+#line 40 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp22_) {
+#line 41 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = external_app;
+#line 41 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_external_app_it);
+#line 41 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (preferred_app);
+#line 41 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_preferred_app_list);
+#line 41 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (external_apps);
+#line 41 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 639 "DesktopIntegration.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (external_app);
+#line 643 "DesktopIntegration.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_external_app_it);
+#line 647 "DesktopIntegration.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (preferred_app);
+#line 651 "DesktopIntegration.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_preferred_app_list);
+#line 655 "DesktopIntegration.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = NULL;
+#line 45 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (external_apps);
+#line 45 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 663 "DesktopIntegration.c"
+}
+
+
+gint64 desktop_integration_app_info_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ void* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint64 _tmp9_ = 0LL;
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = a;
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = g_app_info_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, g_app_info_get_type (), GAppInfo));
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = g_utf8_strdown (_tmp1_, (gssize) -1);
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = _tmp2_;
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = b;
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = g_app_info_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, g_app_info_get_type (), GAppInfo));
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = g_utf8_strdown (_tmp5_, (gssize) -1);
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = _tmp6_;
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = g_utf8_collate (_tmp3_, _tmp7_);
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = (gint64) _tmp8_;
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp7_);
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp3_);
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = _tmp9_;
+#line 50 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 707 "DesktopIntegration.c"
+}
+
+
+static gint64 _desktop_integration_app_info_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = desktop_integration_app_info_comparator (a, b);
+#line 54 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 716 "DesktopIntegration.c"
+}
+
+
+static void _g_object_unref0_ (gpointer var) {
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+#line 723 "DesktopIntegration.c"
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_list_free (self);
+#line 732 "DesktopIntegration.c"
+}
+
+
+SortedList* desktop_integration_get_apps_for_mime_types (gchar** mime_types, int mime_types_length1) {
+ SortedList* result = NULL;
+ SortedList* external_apps = NULL;
+ SortedList* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 54 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = sorted_list_new (g_app_info_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, _desktop_integration_app_info_comparator_comparator, NULL);
+#line 54 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ external_apps = _tmp0_;
+#line 56 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = mime_types;
+#line 56 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1__length1 = mime_types_length1;
+#line 56 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp1__length1 == 0) {
+#line 57 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = external_apps;
+#line 57 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 758 "DesktopIntegration.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = mime_types;
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2__length1 = mime_types_length1;
+#line 764 "DesktopIntegration.c"
+ {
+ gchar** mime_type_collection = NULL;
+ gint mime_type_collection_length1 = 0;
+ gint _mime_type_collection_size_ = 0;
+ gint mime_type_it = 0;
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ mime_type_collection = _tmp2_;
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ mime_type_collection_length1 = _tmp2__length1;
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ for (mime_type_it = 0; mime_type_it < _tmp2__length1; mime_type_it = mime_type_it + 1) {
+#line 776 "DesktopIntegration.c"
+ gchar* _tmp3_ = NULL;
+ gchar* mime_type = NULL;
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = g_strdup (mime_type_collection[mime_type_it]);
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ mime_type = _tmp3_;
+#line 783 "DesktopIntegration.c"
+ {
+ gchar* content_type = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GList* _tmp8_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = mime_type;
+#line 62 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = g_content_type_from_mime_type (_tmp4_);
+#line 62 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ content_type = _tmp5_;
+#line 63 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = content_type;
+#line 63 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp6_ == NULL) {
+#line 64 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (content_type);
+#line 64 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (mime_type);
+#line 64 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ break;
+#line 807 "DesktopIntegration.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = content_type;
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = g_app_info_get_all_for_type (_tmp7_);
+#line 813 "DesktopIntegration.c"
+ {
+ GList* external_app_collection = NULL;
+ GList* external_app_it = NULL;
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ external_app_collection = _tmp8_;
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ for (external_app_it = external_app_collection; external_app_it != NULL; external_app_it = external_app_it->next) {
+#line 821 "DesktopIntegration.c"
+ GAppInfo* _tmp9_ = NULL;
+ GAppInfo* external_app = NULL;
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = _g_object_ref0 ((GAppInfo*) external_app_it->data);
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ external_app = _tmp9_;
+#line 828 "DesktopIntegration.c"
+ {
+ gboolean already_contains = FALSE;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+#line 68 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ already_contains = FALSE;
+#line 835 "DesktopIntegration.c"
+ {
+ GeeIterator* _app_it = NULL;
+ SortedList* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = external_apps;
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _app_it = _tmp11_;
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ while (TRUE) {
+#line 848 "DesktopIntegration.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GAppInfo* app = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GAppInfo* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GAppInfo* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = _app_it;
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!_tmp13_) {
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ break;
+#line 866 "DesktopIntegration.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = _app_it;
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ app = (GAppInfo*) _tmp15_;
+#line 71 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp16_ = app;
+#line 71 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp17_ = g_app_info_get_name (_tmp16_);
+#line 71 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp18_ = external_app;
+#line 71 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19_ = g_app_info_get_name (_tmp18_);
+#line 71 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (g_strcmp0 (_tmp17_, _tmp19_) == 0) {
+#line 72 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ already_contains = TRUE;
+#line 73 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (app);
+#line 73 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ break;
+#line 890 "DesktopIntegration.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (app);
+#line 894 "DesktopIntegration.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_app_it);
+#line 898 "DesktopIntegration.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp21_ = already_contains;
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!_tmp21_) {
+#line 904 "DesktopIntegration.c"
+ GAppInfo* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp22_ = external_app;
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp23_ = g_app_info_get_name (_tmp22_);
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp24_ = string_contains (_tmp23_, RESOURCES_APP_TITLE);
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp20_ = !_tmp24_;
+#line 916 "DesktopIntegration.c"
+ } else {
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp20_ = FALSE;
+#line 920 "DesktopIntegration.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp20_) {
+#line 924 "DesktopIntegration.c"
+ SortedList* _tmp25_ = NULL;
+ GAppInfo* _tmp26_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp25_ = external_apps;
+#line 79 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp26_ = external_app;
+#line 79 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection), _tmp26_);
+#line 933 "DesktopIntegration.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (external_app);
+#line 937 "DesktopIntegration.c"
+ }
+ }
+#line 66 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ __g_list_free__g_object_unref0_0 (external_app_collection);
+#line 942 "DesktopIntegration.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (content_type);
+#line 61 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (mime_type);
+#line 948 "DesktopIntegration.c"
+ }
+ }
+ }
+#line 83 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = external_apps;
+#line 83 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 956 "DesktopIntegration.c"
+}
+
+
+gchar* desktop_integration_get_app_open_command (GAppInfo* app_info) {
+ gchar* result = NULL;
+ gchar* str = NULL;
+ GAppInfo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_val_if_fail (G_IS_APP_INFO (app_info), NULL);
+#line 87 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = app_info;
+#line 87 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = g_app_info_get_commandline (_tmp0_);
+#line 87 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 87 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ str = _tmp2_;
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = str;
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp4_ != NULL) {
+#line 983 "DesktopIntegration.c"
+ const gchar* _tmp5_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = str;
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = _tmp5_;
+#line 989 "DesktopIntegration.c"
+ } else {
+ GAppInfo* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = app_info;
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = g_app_info_get_executable (_tmp6_);
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = _tmp7_;
+#line 999 "DesktopIntegration.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = g_strdup (_tmp3_);
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = _tmp8_;
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (str);
+#line 89 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 1009 "DesktopIntegration.c"
+}
+
+
+gboolean desktop_integration_is_send_to_installed (void) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 93 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = desktop_integration_send_to_installed;
+#line 93 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = _tmp0_;
+#line 93 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 1022 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_files_send_to (GFile** files, int files_length1) {
+ GFile** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** argv = NULL;
+ GFile** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint argv_length1 = 0;
+ gint _argv_size_ = 0;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = files;
+#line 97 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0__length1 = files_length1;
+#line 97 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp0__length1 == 0) {
+#line 98 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1048 "DesktopIntegration.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = files;
+#line 100 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1__length1 = files_length1;
+#line 100 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = g_new0 (gchar*, (_tmp1__length1 + 1) + 1);
+#line 100 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ argv = _tmp2_;
+#line 100 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ argv_length1 = _tmp1__length1 + 1;
+#line 100 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _argv_size_ = argv_length1;
+#line 101 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = argv;
+#line 101 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3__length1 = argv_length1;
+#line 101 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = g_strdup (DESKTOP_INTEGRATION_SENDTO_EXEC);
+#line 101 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp3_[0]);
+#line 101 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_[0] = _tmp4_;
+#line 101 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = _tmp3_[0];
+#line 1074 "DesktopIntegration.c"
+ {
+ gint ctr = 0;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ ctr = 0;
+#line 1079 "DesktopIntegration.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = TRUE;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ while (TRUE) {
+#line 1086 "DesktopIntegration.c"
+ gint _tmp8_ = 0;
+ GFile** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ GFile** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gint _tmp13_ = 0;
+ GFile* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!_tmp6_) {
+#line 1101 "DesktopIntegration.c"
+ gint _tmp7_ = 0;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = ctr;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ ctr = _tmp7_ + 1;
+#line 1107 "DesktopIntegration.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = FALSE;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = ctr;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = files;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9__length1 = files_length1;
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!(_tmp8_ < _tmp9__length1)) {
+#line 103 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ break;
+#line 1121 "DesktopIntegration.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = argv;
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10__length1 = argv_length1;
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = ctr;
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = files;
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12__length1 = files_length1;
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = ctr;
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = _tmp12_[_tmp13_];
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = g_file_get_path (_tmp14_);
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp10_[_tmp11_ + 1]);
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_[_tmp11_ + 1] = _tmp15_;
+#line 104 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp16_ = _tmp10_[_tmp11_ + 1];
+#line 1145 "DesktopIntegration.c"
+ }
+ }
+ }
+ {
+ AppWindow* _tmp17_ = NULL;
+ AppWindow* _tmp18_ = NULL;
+ GPid child_pid = 0;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ GPid _tmp20_ = 0;
+ AppWindow* _tmp21_ = NULL;
+ AppWindow* _tmp22_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp17_ = app_window_get_instance ();
+#line 107 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp18_ = _tmp17_;
+#line 107 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_PAGE_WINDOW, PageWindow));
+#line 107 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp18_);
+#line 110 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19_ = argv;
+#line 110 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19__length1 = argv_length1;
+#line 110 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_spawn_async ("/", _tmp19_, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &_tmp20_, &_inner_error_);
+#line 110 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ child_pid = _tmp20_;
+#line 110 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1176 "DesktopIntegration.c"
+ goto __catch554_g_error;
+ }
+#line 118 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp21_ = app_window_get_instance ();
+#line 118 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp22_ = _tmp21_;
+#line 118 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_PAGE_WINDOW, PageWindow));
+#line 118 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1187 "DesktopIntegration.c"
+ }
+ goto __finally554;
+ __catch554_g_error:
+ {
+ GError* err = NULL;
+ AppWindow* _tmp23_ = NULL;
+ AppWindow* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ GError* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ err = _inner_error_;
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _inner_error_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp23_ = app_window_get_instance ();
+#line 120 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp24_ = _tmp23_;
+#line 120 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_PAGE_WINDOW, PageWindow));
+#line 120 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp24_);
+#line 121 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp25_ = _ ("Unable to launch Nautilus Send-To: %s");
+#line 121 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp26_ = err;
+#line 121 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp27_ = _tmp26_->message;
+#line 121 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp28_ = g_strdup_printf (_tmp25_, _tmp27_);
+#line 121 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp29_ = _tmp28_;
+#line 121 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ app_window_error_message (_tmp29_, NULL);
+#line 121 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp29_);
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_error_free0 (err);
+#line 1228 "DesktopIntegration.c"
+ }
+ __finally554:
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_clear_error (&_inner_error_);
+#line 106 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1241 "DesktopIntegration.c"
+ }
+#line 96 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 1245 "DesktopIntegration.c"
+}
+
+
+static void _desktop_integration_on_send_to_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self) {
+#line 135 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_on_send_to_export_completed (exporter, is_cancelled);
+#line 1252 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_send_to (GeeCollection* media) {
+ gboolean _tmp0_ = FALSE;
+ GeeCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ ExportDialog* dialog = NULL;
+ const gchar* _tmp5_ = NULL;
+ ExportDialog* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeCollection* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gint scale = 0;
+ ScaleConstraint constraint = 0;
+ ExportFormatParameters export_params = {0};
+ ExportFormatParameters _tmp14_ = {0};
+ ExportDialog* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ ScaleConstraint _tmp17_ = 0;
+ gboolean _tmp18_ = FALSE;
+ GeeCollection* _tmp19_ = NULL;
+ ScaleConstraint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ Scaling _tmp22_ = {0};
+ ExportFormatParameters _tmp23_ = {0};
+ Exporter* _tmp24_ = NULL;
+ Exporter* _tmp25_ = NULL;
+ ExporterUI* _tmp26_ = NULL;
+ ExporterUI* _tmp27_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = media;
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = gee_collection_get_size (_tmp1_);
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = _tmp2_;
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp3_ == 0) {
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = TRUE;
+#line 1296 "DesktopIntegration.c"
+ } else {
+ ExporterUI* _tmp4_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = desktop_integration_send_to_exporter;
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = _tmp4_ != NULL;
+#line 1303 "DesktopIntegration.c"
+ }
+#line 126 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp0_) {
+#line 127 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1309 "DesktopIntegration.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = _ ("Send To");
+#line 129 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = export_dialog_new (_tmp5_);
+#line 129 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_object_ref_sink (_tmp6_);
+#line 129 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ dialog = _tmp6_;
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = media;
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = media_source_collection_has_video (_tmp8_);
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp9_) {
+#line 1325 "DesktopIntegration.c"
+ GeeCollection* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = media;
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = media_source_collection_has_photo (_tmp10_);
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = !_tmp11_;
+#line 1334 "DesktopIntegration.c"
+ } else {
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = FALSE;
+#line 1338 "DesktopIntegration.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp7_) {
+#line 1342 "DesktopIntegration.c"
+ GeeCollection* _tmp12_ = NULL;
+ ExporterUI* _tmp13_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = media;
+#line 135 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = video_export_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _desktop_integration_on_send_to_export_completed_exporter_completion_callback, NULL, TRUE);
+#line 135 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _exporter_ui_unref0 (desktop_integration_send_to_exporter);
+#line 135 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_send_to_exporter = _tmp13_;
+#line 137 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (dialog);
+#line 137 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1357 "DesktopIntegration.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ export_format_parameters_current (&_tmp14_);
+#line 142 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ export_params = _tmp14_;
+#line 143 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = dialog;
+#line 143 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp18_ = export_dialog_execute (_tmp15_, &_tmp16_, &_tmp17_, &export_params);
+#line 143 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ scale = _tmp16_;
+#line 143 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ constraint = _tmp17_;
+#line 143 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!_tmp18_) {
+#line 144 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (dialog);
+#line 144 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1377 "DesktopIntegration.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19_ = media;
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp20_ = constraint;
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp21_ = scale;
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ scaling_for_constraint (_tmp20_, _tmp21_, FALSE, &_tmp22_);
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp23_ = export_params;
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp24_ = exporter_new_for_temp_file (_tmp19_, &_tmp22_, &_tmp23_);
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp25_ = _tmp24_;
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp26_ = exporter_ui_new (_tmp25_);
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _exporter_ui_unref0 (desktop_integration_send_to_exporter);
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_send_to_exporter = _tmp26_;
+#line 146 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp25_);
+#line 148 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp27_ = desktop_integration_send_to_exporter;
+#line 148 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ exporter_ui_export (_tmp27_, _desktop_integration_on_send_to_export_completed_exporter_completion_callback, NULL);
+#line 125 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (dialog);
+#line 1407 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_on_send_to_export_completed (Exporter* exporter, gboolean is_cancelled) {
+ gboolean _tmp0_ = FALSE;
+#line 151 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (IS_EXPORTER (exporter));
+#line 152 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = is_cancelled;
+#line 152 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!_tmp0_) {
+#line 1419 "DesktopIntegration.c"
+ Exporter* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GFile** _tmp3_ = NULL;
+ GFile** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 153 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = exporter;
+#line 153 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = exporter_get_exported_files (_tmp1_, &_tmp2_);
+#line 153 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = _tmp3_;
+#line 153 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4__length1 = _tmp2_;
+#line 153 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_files_send_to (_tmp4_, _tmp2_);
+#line 153 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_object_unref), NULL);
+#line 1437 "DesktopIntegration.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _exporter_ui_unref0 (desktop_integration_send_to_exporter);
+#line 155 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_send_to_exporter = NULL;
+#line 1443 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_set_background (Photo* photo, gboolean desktop, gboolean screensaver) {
+ PhotoFileFormat file_format = 0;
+ Photo* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+ GFile* save_as = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ PhotoFileFormat _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ ConfigFacade* _tmp9_ = NULL;
+ ConfigFacade* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ gboolean _tmp41_ = FALSE;
+ GFile* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 161 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = photo;
+#line 161 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = photo_get_best_export_file_format (_tmp0_);
+#line 161 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ file_format = _tmp1_;
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = app_dirs_get_data_subdir ("wallpaper", NULL);
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = _tmp2_;
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = file_format;
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = photo_file_format_get_default_basename (_tmp4_, "wallpaper");
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = _tmp5_;
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = g_file_get_child (_tmp3_, _tmp6_);
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = _tmp7_;
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp6_);
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp3_);
+#line 163 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ save_as = _tmp8_;
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = config_facade_get_instance ();
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = _tmp9_;
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = configuration_facade_get_desktop_background (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = _tmp11_;
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = save_as;
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = _tmp14_;
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp16_ = g_strcmp0 (_tmp12_, _tmp15_) == 0;
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp15_);
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp12_);
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp10_);
+#line 166 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp16_) {
+#line 1525 "DesktopIntegration.c"
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ PhotoFileFormat _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp17_ = app_dirs_get_data_subdir ("wallpaper", NULL);
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp18_ = _tmp17_;
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19_ = file_format;
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp20_ = photo_file_format_get_default_basename (_tmp19_, "wallpaper_alt");
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp21_ = _tmp20_;
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp22_ = g_file_get_child (_tmp18_, _tmp21_);
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (save_as);
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ save_as = _tmp22_;
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp21_);
+#line 167 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp18_);
+#line 1552 "DesktopIntegration.c"
+ }
+ {
+ Photo* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ Scaling _tmp25_ = {0};
+ PhotoFileFormat _tmp26_ = 0;
+#line 172 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp23_ = photo;
+#line 172 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp24_ = save_as;
+#line 172 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ scaling_for_original (&_tmp25_);
+#line 172 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp26_ = file_format;
+#line 172 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ photo_export (_tmp23_, _tmp24_, &_tmp25_, JPEG_QUALITY_HIGH, _tmp26_, FALSE, TRUE, &_inner_error_);
+#line 172 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1571 "DesktopIntegration.c"
+ goto __catch555_g_error;
+ }
+ }
+ goto __finally555;
+ __catch555_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ GError* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ err = _inner_error_;
+#line 171 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _inner_error_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp27_ = _ ("Unable to export background to %s: %s");
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp28_ = save_as;
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp29_ = g_file_get_path (_tmp28_);
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp30_ = _tmp29_;
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp31_ = err;
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp32_ = _tmp31_->message;
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp33_ = g_strdup_printf (_tmp27_, _tmp30_, _tmp32_);
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp34_ = _tmp33_;
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ app_window_error_message (_tmp34_, NULL);
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp34_);
+#line 174 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp30_);
+#line 177 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_error_free0 (err);
+#line 177 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (save_as);
+#line 177 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1619 "DesktopIntegration.c"
+ }
+ __finally555:
+#line 171 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 171 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (save_as);
+#line 171 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 171 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_clear_error (&_inner_error_);
+#line 171 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1632 "DesktopIntegration.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp35_ = desktop;
+#line 180 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp35_) {
+#line 1638 "DesktopIntegration.c"
+ ConfigFacade* _tmp36_ = NULL;
+ ConfigFacade* _tmp37_ = NULL;
+ GFile* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp36_ = config_facade_get_instance ();
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp37_ = _tmp36_;
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp38_ = save_as;
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp39_ = g_file_get_path (_tmp38_);
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp40_ = _tmp39_;
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ configuration_facade_set_desktop_background (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp40_);
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp40_);
+#line 181 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp37_);
+#line 1660 "DesktopIntegration.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp41_ = screensaver;
+#line 183 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp41_) {
+#line 1666 "DesktopIntegration.c"
+ ConfigFacade* _tmp42_ = NULL;
+ ConfigFacade* _tmp43_ = NULL;
+ GFile* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp42_ = config_facade_get_instance ();
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp43_ = _tmp42_;
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp44_ = save_as;
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp45_ = g_file_get_path (_tmp44_);
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp46_ = _tmp45_;
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ configuration_facade_set_screensaver (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp46_);
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp46_);
+#line 184 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp43_);
+#line 1688 "DesktopIntegration.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp47_ = save_as;
+#line 187 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp48_ = g_file_get_parse_name (_tmp47_);
+#line 187 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp49_ = _tmp48_;
+#line 187 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_chmod (_tmp49_, 0644);
+#line 187 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp49_);
+#line 158 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (save_as);
+#line 1702 "DesktopIntegration.c"
+}
+
+
+DesktopIntegrationBackgroundSlideshowXMLBuilder* desktop_integration_background_slideshow_xml_builder_construct (GType object_type, GFile* destination, gdouble duration, gdouble transition) {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_val_if_fail (G_IS_FILE (destination), NULL);
+#line 202 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self = (DesktopIntegrationBackgroundSlideshowXMLBuilder*) g_type_create_instance (object_type);
+#line 203 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = destination;
+#line 203 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 203 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->destination);
+#line 203 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->destination = _tmp1_;
+#line 204 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = duration;
+#line 204 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->duration = _tmp2_;
+#line 205 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = transition;
+#line 205 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->transition = _tmp3_;
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = destination;
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = g_file_get_parent (_tmp4_);
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = _tmp5_;
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = destination;
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = g_file_get_basename (_tmp7_);
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = _tmp8_;
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = g_strconcat (_tmp9_, ".tmp", NULL);
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = _tmp10_;
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = g_file_get_child (_tmp6_, _tmp11_);
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->tmp_file);
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->tmp_file = _tmp12_;
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp11_);
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp9_);
+#line 207 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp6_);
+#line 202 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return self;
+#line 1771 "DesktopIntegration.c"
+}
+
+
+DesktopIntegrationBackgroundSlideshowXMLBuilder* desktop_integration_background_slideshow_xml_builder_new (GFile* destination, gdouble duration, gdouble transition) {
+#line 202 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return desktop_integration_background_slideshow_xml_builder_construct (DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER, destination, duration, transition);
+#line 1778 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_background_slideshow_xml_builder_open (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GError** error) {
+ GFileOutputStream* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileOutputStream* _tmp2_ = NULL;
+ GDataOutputStream* _tmp3_ = NULL;
+ GDataOutputStream* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (DESKTOP_INTEGRATION_IS_BACKGROUND_SLIDESHOW_XML_BUILDER (self));
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = self->priv->tmp_file;
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = g_file_replace (_tmp1_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = _tmp2_;
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1803 "DesktopIntegration.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = g_data_output_stream_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OUTPUT_STREAM, GOutputStream));
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->outs);
+#line 211 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->outs = _tmp3_;
+#line 212 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = self->priv->outs;
+#line 212 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp4_, "<background>\n", NULL, &_inner_error_);
+#line 212 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 212 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 212 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp0_);
+#line 212 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1823 "DesktopIntegration.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp0_);
+#line 1827 "DesktopIntegration.c"
+}
+
+
+static void desktop_integration_background_slideshow_xml_builder_write_transition (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GFile* from, GFile* to, GError** error) {
+ GDataOutputStream* _tmp0_ = NULL;
+ GDataOutputStream* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GDataOutputStream* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GDataOutputStream* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GDataOutputStream* _tmp17_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (DESKTOP_INTEGRATION_IS_BACKGROUND_SLIDESHOW_XML_BUILDER (self));
+#line 215 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_IS_FILE (from));
+#line 215 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_IS_FILE (to));
+#line 216 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = self->priv->outs;
+#line 216 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp0_, " <transition>\n", NULL, &_inner_error_);
+#line 216 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 216 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 216 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1867 "DesktopIntegration.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = self->priv->outs;
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = self->priv->transition;
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = g_strdup_printf (" <duration>%2.2f</duration>\n", _tmp2_);
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = _tmp3_;
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp1_, _tmp4_, NULL, &_inner_error_);
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp4_);
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 217 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1887 "DesktopIntegration.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = self->priv->outs;
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = from;
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = _tmp7_;
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = g_strdup_printf (" <from>%s</from>\n", _tmp8_);
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = _tmp9_;
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp5_, _tmp10_, NULL, &_inner_error_);
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp10_);
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp8_);
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 218 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1913 "DesktopIntegration.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = self->priv->outs;
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = to;
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = g_file_get_path (_tmp12_);
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = _tmp13_;
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = g_strdup_printf (" <to>%s</to>\n", _tmp14_);
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp16_ = _tmp15_;
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp11_, _tmp16_, NULL, &_inner_error_);
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp16_);
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp14_);
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 219 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1939 "DesktopIntegration.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp17_ = self->priv->outs;
+#line 220 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp17_, " </transition>\n", NULL, &_inner_error_);
+#line 220 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 220 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 220 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1951 "DesktopIntegration.c"
+ }
+}
+
+
+static void desktop_integration_background_slideshow_xml_builder_write_static (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GFile* file, GError** error) {
+ GDataOutputStream* _tmp0_ = NULL;
+ GDataOutputStream* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GDataOutputStream* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GDataOutputStream* _tmp11_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (DESKTOP_INTEGRATION_IS_BACKGROUND_SLIDESHOW_XML_BUILDER (self));
+#line 223 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 224 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = self->priv->outs;
+#line 224 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp0_, " <static>\n", NULL, &_inner_error_);
+#line 224 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 224 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 224 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 1984 "DesktopIntegration.c"
+ }
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = self->priv->outs;
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = self->priv->duration;
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = g_strdup_printf (" <duration>%2.2f</duration>\n", _tmp2_);
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = _tmp3_;
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp1_, _tmp4_, NULL, &_inner_error_);
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp4_);
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 225 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2004 "DesktopIntegration.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = self->priv->outs;
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = file;
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = _tmp7_;
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = g_strdup_printf (" <file>%s</file>\n", _tmp8_);
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = _tmp9_;
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp5_, _tmp10_, NULL, &_inner_error_);
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp10_);
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp8_);
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 226 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2030 "DesktopIntegration.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = self->priv->outs;
+#line 227 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp11_, " </static>\n", NULL, &_inner_error_);
+#line 227 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 227 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 227 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2042 "DesktopIntegration.c"
+ }
+}
+
+
+void desktop_integration_background_slideshow_xml_builder_add_photo (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GFile* file, GError** error) {
+ GDataOutputStream* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (DESKTOP_INTEGRATION_IS_BACKGROUND_SLIDESHOW_XML_BUILDER (self));
+#line 230 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 231 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = self->priv->outs;
+#line 231 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _vala_assert (_tmp0_ != NULL, "outs != null");
+#line 233 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = self->priv->first_file;
+#line 233 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp1_ == NULL) {
+#line 2067 "DesktopIntegration.c"
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = file;
+#line 234 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 234 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->first_file);
+#line 234 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->first_file = _tmp3_;
+#line 2078 "DesktopIntegration.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = self->priv->last_file;
+#line 236 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp4_ != NULL) {
+#line 2084 "DesktopIntegration.c"
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = self->priv->last_file;
+#line 237 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = file;
+#line 237 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_write_transition (self, _tmp5_, _tmp6_, &_inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 237 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2099 "DesktopIntegration.c"
+ }
+ }
+#line 239 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = file;
+#line 239 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_write_static (self, _tmp7_, &_inner_error_);
+#line 239 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 239 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 239 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2112 "DesktopIntegration.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = file;
+#line 241 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 241 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->last_file);
+#line 241 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->last_file = _tmp9_;
+#line 2122 "DesktopIntegration.c"
+}
+
+
+GFile* desktop_integration_background_slideshow_xml_builder_close (DesktopIntegrationBackgroundSlideshowXMLBuilder* self, GError** error) {
+ GFile* result = NULL;
+ GDataOutputStream* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+ GDataOutputStream* _tmp6_ = NULL;
+ GDataOutputStream* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_val_if_fail (DESKTOP_INTEGRATION_IS_BACKGROUND_SLIDESHOW_XML_BUILDER (self), NULL);
+#line 245 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = self->priv->outs;
+#line 245 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp0_ == NULL) {
+#line 246 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = NULL;
+#line 246 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 2151 "DesktopIntegration.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = self->priv->first_file;
+#line 249 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp2_ != NULL) {
+#line 2157 "DesktopIntegration.c"
+ GFile* _tmp3_ = NULL;
+#line 249 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = self->priv->last_file;
+#line 249 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 2163 "DesktopIntegration.c"
+ } else {
+#line 249 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = FALSE;
+#line 2167 "DesktopIntegration.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp1_) {
+#line 2171 "DesktopIntegration.c"
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = self->priv->last_file;
+#line 250 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = self->priv->first_file;
+#line 250 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_write_transition (self, _tmp4_, _tmp5_, &_inner_error_);
+#line 250 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 250 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 250 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return NULL;
+#line 2186 "DesktopIntegration.c"
+ }
+ }
+#line 252 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = self->priv->outs;
+#line 252 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_data_output_stream_put_string (_tmp6_, "</background>\n", NULL, &_inner_error_);
+#line 252 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 252 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 252 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return NULL;
+#line 2199 "DesktopIntegration.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = self->priv->outs;
+#line 254 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_output_stream_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, G_TYPE_OUTPUT_STREAM, GOutputStream), NULL, &_inner_error_);
+#line 254 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 254 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 254 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return NULL;
+#line 2211 "DesktopIntegration.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->outs);
+#line 255 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->outs = NULL;
+#line 258 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = self->priv->tmp_file;
+#line 258 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = self->priv->destination;
+#line 258 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_file_move (_tmp8_, _tmp9_, G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, &_inner_error_);
+#line 258 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 258 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_propagate_error (error, _inner_error_);
+#line 258 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return NULL;
+#line 2229 "DesktopIntegration.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = self->priv->destination;
+#line 259 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = g_file_get_parse_name (_tmp10_);
+#line 259 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = _tmp11_;
+#line 259 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_chmod (_tmp12_, 0644);
+#line 259 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp12_);
+#line 261 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = self->priv->destination;
+#line 261 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = _g_object_ref0 (_tmp13_);
+#line 261 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ result = _tmp14_;
+#line 261 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return result;
+#line 2249 "DesktopIntegration.c"
+}
+
+
+static void desktop_integration_value_background_slideshow_xml_builder_init (GValue* value) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2256 "DesktopIntegration.c"
+}
+
+
+static void desktop_integration_value_background_slideshow_xml_builder_free_value (GValue* value) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (value->data[0].v_pointer) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_unref (value->data[0].v_pointer);
+#line 2265 "DesktopIntegration.c"
+ }
+}
+
+
+static void desktop_integration_value_background_slideshow_xml_builder_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (src_value->data[0].v_pointer) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ dest_value->data[0].v_pointer = desktop_integration_background_slideshow_xml_builder_ref (src_value->data[0].v_pointer);
+#line 2275 "DesktopIntegration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2279 "DesktopIntegration.c"
+ }
+}
+
+
+static gpointer desktop_integration_value_background_slideshow_xml_builder_peek_pointer (const GValue* value) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return value->data[0].v_pointer;
+#line 2287 "DesktopIntegration.c"
+}
+
+
+static gchar* desktop_integration_value_background_slideshow_xml_builder_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (collect_values[0].v_pointer) {
+#line 2294 "DesktopIntegration.c"
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* object;
+ object = collect_values[0].v_pointer;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2301 "DesktopIntegration.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2305 "DesktopIntegration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ value->data[0].v_pointer = desktop_integration_background_slideshow_xml_builder_ref (object);
+#line 2309 "DesktopIntegration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2313 "DesktopIntegration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return NULL;
+#line 2317 "DesktopIntegration.c"
+}
+
+
+static gchar* desktop_integration_value_background_slideshow_xml_builder_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!object_p) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2328 "DesktopIntegration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (!value->data[0].v_pointer) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ *object_p = NULL;
+#line 2334 "DesktopIntegration.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2338 "DesktopIntegration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ *object_p = desktop_integration_background_slideshow_xml_builder_ref (value->data[0].v_pointer);
+#line 2342 "DesktopIntegration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return NULL;
+#line 2346 "DesktopIntegration.c"
+}
+
+
+GParamSpec* desktop_integration_param_spec_background_slideshow_xml_builder (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ DesktopIntegrationParamSpecBackgroundSlideshowXMLBuilder* spec;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER), NULL);
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return G_PARAM_SPEC (spec);
+#line 2360 "DesktopIntegration.c"
+}
+
+
+gpointer desktop_integration_value_get_background_slideshow_xml_builder (const GValue* value) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER), NULL);
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return value->data[0].v_pointer;
+#line 2369 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_value_set_background_slideshow_xml_builder (GValue* value, gpointer v_object) {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* old;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER));
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ old = value->data[0].v_pointer;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (v_object) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER));
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ value->data[0].v_pointer = v_object;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_ref (value->data[0].v_pointer);
+#line 2389 "DesktopIntegration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2393 "DesktopIntegration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (old) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_unref (old);
+#line 2399 "DesktopIntegration.c"
+ }
+}
+
+
+void desktop_integration_value_take_background_slideshow_xml_builder (GValue* value, gpointer v_object) {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* old;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER));
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ old = value->data[0].v_pointer;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (v_object) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER));
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ value->data[0].v_pointer = v_object;
+#line 2418 "DesktopIntegration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2422 "DesktopIntegration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (old) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_unref (old);
+#line 2428 "DesktopIntegration.c"
+ }
+}
+
+
+static void desktop_integration_background_slideshow_xml_builder_class_init (DesktopIntegrationBackgroundSlideshowXMLBuilderClass * klass) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_parent_class = g_type_class_peek_parent (klass);
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ ((DesktopIntegrationBackgroundSlideshowXMLBuilderClass *) klass)->finalize = desktop_integration_background_slideshow_xml_builder_finalize;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_type_class_add_private (klass, sizeof (DesktopIntegrationBackgroundSlideshowXMLBuilderPrivate));
+#line 2440 "DesktopIntegration.c"
+}
+
+
+static void desktop_integration_background_slideshow_xml_builder_instance_init (DesktopIntegrationBackgroundSlideshowXMLBuilder * self) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv = DESKTOP_INTEGRATION_BACKGROUND_SLIDESHOW_XML_BUILDER_GET_PRIVATE (self);
+#line 198 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->outs = NULL;
+#line 199 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->first_file = NULL;
+#line 200 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->priv->last_file = NULL;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self->ref_count = 1;
+#line 2455 "DesktopIntegration.c"
+}
+
+
+static void desktop_integration_background_slideshow_xml_builder_finalize (DesktopIntegrationBackgroundSlideshowXMLBuilder* obj) {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder * self;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DESKTOP_INTEGRATION_TYPE_BACKGROUND_SLIDESHOW_XML_BUILDER, DesktopIntegrationBackgroundSlideshowXMLBuilder);
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_signal_handlers_destroy (self);
+#line 194 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->destination);
+#line 197 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->tmp_file);
+#line 198 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->outs);
+#line 199 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->first_file);
+#line 200 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (self->priv->last_file);
+#line 2475 "DesktopIntegration.c"
+}
+
+
+GType desktop_integration_background_slideshow_xml_builder_get_type (void) {
+ static volatile gsize desktop_integration_background_slideshow_xml_builder_type_id__volatile = 0;
+ if (g_once_init_enter (&desktop_integration_background_slideshow_xml_builder_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { desktop_integration_value_background_slideshow_xml_builder_init, desktop_integration_value_background_slideshow_xml_builder_free_value, desktop_integration_value_background_slideshow_xml_builder_copy_value, desktop_integration_value_background_slideshow_xml_builder_peek_pointer, "p", desktop_integration_value_background_slideshow_xml_builder_collect_value, "p", desktop_integration_value_background_slideshow_xml_builder_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DesktopIntegrationBackgroundSlideshowXMLBuilderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) desktop_integration_background_slideshow_xml_builder_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DesktopIntegrationBackgroundSlideshowXMLBuilder), 0, (GInstanceInitFunc) desktop_integration_background_slideshow_xml_builder_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType desktop_integration_background_slideshow_xml_builder_type_id;
+ desktop_integration_background_slideshow_xml_builder_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DesktopIntegrationBackgroundSlideshowXMLBuilder", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&desktop_integration_background_slideshow_xml_builder_type_id__volatile, desktop_integration_background_slideshow_xml_builder_type_id);
+ }
+ return desktop_integration_background_slideshow_xml_builder_type_id__volatile;
+}
+
+
+gpointer desktop_integration_background_slideshow_xml_builder_ref (gpointer instance) {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* self;
+ self = instance;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return instance;
+#line 2500 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_background_slideshow_xml_builder_unref (gpointer instance) {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* self;
+ self = instance;
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ DESKTOP_INTEGRATION_BACKGROUND_SLIDESHOW_XML_BUILDER_GET_CLASS (self)->finalize (self);
+#line 193 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2513 "DesktopIntegration.c"
+ }
+}
+
+
+static void _desktop_integration_on_desktop_slideshow_exported_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self) {
+#line 290 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_on_desktop_slideshow_exported (exporter, is_cancelled);
+#line 2521 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_set_background_slideshow (GeeCollection* photos, gdouble duration, gdouble transition, gboolean desktop_background, gboolean screensaver) {
+ ExporterUI* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GFile* wallpaper_dir = NULL;
+ GFile* _tmp3_ = NULL;
+ GeeSet* exceptions = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ Exporter* exporter = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ AppWindow* _tmp14_ = NULL;
+ AppWindow* _tmp15_ = NULL;
+ Scaling _tmp16_ = {0};
+ ExportFormatParameters _tmp17_ = {0};
+ Exporter* _tmp18_ = NULL;
+ Exporter* _tmp19_ = NULL;
+ Exporter* _tmp20_ = NULL;
+ ExporterUI* _tmp21_ = NULL;
+ ExporterUI* _tmp22_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (photos));
+#line 267 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = desktop_integration_desktop_slideshow_exporter;
+#line 267 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp0_ != NULL) {
+#line 268 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2557 "DesktopIntegration.c"
+ }
+#line 270 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = desktop_background;
+#line 270 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_set_desktop_background = _tmp1_;
+#line 271 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = screensaver;
+#line 271 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_set_screensaver = _tmp2_;
+#line 273 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = app_dirs_get_data_subdir ("wallpaper", NULL);
+#line 273 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ wallpaper_dir = _tmp3_;
+#line 275 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 275 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ exceptions = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_SET, GeeSet);
+#line 276 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = exceptions;
+#line 276 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection), DESKTOP_INTEGRATION_DESKTOP_SLIDESHOW_XML_FILENAME);
+#line 2579 "DesktopIntegration.c"
+ {
+ GFile* _tmp6_ = NULL;
+ GeeSet* _tmp7_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = wallpaper_dir;
+#line 278 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = exceptions;
+#line 278 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ delete_all_files (_tmp6_, _tmp7_, NULL, NULL, (guint64) 0, NULL, &_inner_error_);
+#line 278 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2591 "DesktopIntegration.c"
+ goto __catch556_g_error;
+ }
+ }
+ goto __finally556;
+ __catch556_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ err = _inner_error_;
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _inner_error_ = NULL;
+#line 280 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = err;
+#line 280 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = _tmp8_->message;
+#line 280 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_warning ("DesktopIntegration.vala:280: Error attempting to clear wallpaper direc" \
+"tory: %s", _tmp9_);
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_error_free0 (err);
+#line 2613 "DesktopIntegration.c"
+ }
+ __finally556:
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (exceptions);
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (wallpaper_dir);
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_clear_error (&_inner_error_);
+#line 277 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2628 "DesktopIntegration.c"
+ }
+#line 283 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = duration;
+#line 283 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_desktop_slideshow_duration = _tmp10_;
+#line 284 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp11_ = transition;
+#line 284 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_desktop_slideshow_transition = _tmp11_;
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = photos;
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = wallpaper_dir;
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = app_window_get_instance ();
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = _tmp14_;
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ scaling_to_fill_screen (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_window_get_type (), GtkWindow), &_tmp16_);
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ export_format_parameters_current (&_tmp17_);
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp18_ = exporter_new (_tmp12_, _tmp13_, &_tmp16_, &_tmp17_, TRUE);
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19_ = _tmp18_;
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp15_);
+#line 286 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ exporter = _tmp19_;
+#line 289 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp20_ = exporter;
+#line 289 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp21_ = exporter_ui_new (_tmp20_);
+#line 289 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _exporter_ui_unref0 (desktop_integration_desktop_slideshow_exporter);
+#line 289 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_desktop_slideshow_exporter = _tmp21_;
+#line 290 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp22_ = desktop_integration_desktop_slideshow_exporter;
+#line 290 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ exporter_ui_export (_tmp22_, _desktop_integration_on_desktop_slideshow_exported_exporter_completion_callback, NULL);
+#line 265 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (exporter);
+#line 265 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (exceptions);
+#line 265 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (wallpaper_dir);
+#line 2676 "DesktopIntegration.c"
+}
+
+
+void desktop_integration_on_desktop_slideshow_exported (Exporter* exporter, gboolean is_cancelled) {
+ gboolean _tmp0_ = FALSE;
+ GFile* xml_file = NULL;
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* xml_builder = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* _tmp7_ = NULL;
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* _tmp8_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_return_if_fail (IS_EXPORTER (exporter));
+#line 294 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _exporter_ui_unref0 (desktop_integration_desktop_slideshow_exporter);
+#line 294 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_desktop_slideshow_exporter = NULL;
+#line 296 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp0_ = is_cancelled;
+#line 296 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp0_) {
+#line 297 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2707 "DesktopIntegration.c"
+ }
+#line 299 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ xml_file = NULL;
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp1_ = app_dirs_get_data_subdir ("wallpaper", NULL);
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp2_ = _tmp1_;
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp3_ = g_file_get_child (_tmp2_, DESKTOP_INTEGRATION_DESKTOP_SLIDESHOW_XML_FILENAME);
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp4_ = _tmp3_;
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp5_ = desktop_integration_desktop_slideshow_duration;
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp6_ = desktop_integration_desktop_slideshow_transition;
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp7_ = desktop_integration_background_slideshow_xml_builder_new (_tmp4_, _tmp5_, _tmp6_);
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp8_ = _tmp7_;
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp4_);
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp2_);
+#line 300 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ xml_builder = _tmp8_;
+#line 2733 "DesktopIntegration.c"
+ {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* _tmp9_ = NULL;
+ Exporter* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ GFile** _tmp12_ = NULL;
+ GFile* _tmp16_ = NULL;
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+#line 304 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp9_ = xml_builder;
+#line 304 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_open (_tmp9_, &_inner_error_);
+#line 304 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2749 "DesktopIntegration.c"
+ goto __catch557_g_error;
+ }
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp10_ = exporter;
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp12_ = exporter_get_exported_files (_tmp10_, &_tmp11_);
+#line 2756 "DesktopIntegration.c"
+ {
+ GFile** file_collection = NULL;
+ gint file_collection_length1 = 0;
+ gint _file_collection_size_ = 0;
+ gint file_it = 0;
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ file_collection = _tmp12_;
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ file_collection_length1 = _tmp11_;
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ for (file_it = 0; file_it < _tmp11_; file_it = file_it + 1) {
+#line 2768 "DesktopIntegration.c"
+ GFile* _tmp13_ = NULL;
+ GFile* file = NULL;
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp13_ = _g_object_ref0 (file_collection[file_it]);
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ file = _tmp13_;
+#line 2775 "DesktopIntegration.c"
+ {
+ DesktopIntegrationBackgroundSlideshowXMLBuilder* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp14_ = xml_builder;
+#line 307 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp15_ = file;
+#line 307 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ desktop_integration_background_slideshow_xml_builder_add_photo (_tmp14_, _tmp15_, &_inner_error_);
+#line 307 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 307 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (file);
+#line 307 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ file_collection = (_vala_array_free (file_collection, file_collection_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 2791 "DesktopIntegration.c"
+ goto __catch557_g_error;
+ }
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (file);
+#line 2796 "DesktopIntegration.c"
+ }
+ }
+#line 306 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ file_collection = (_vala_array_free (file_collection, file_collection_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 2801 "DesktopIntegration.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp17_ = xml_builder;
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp18_ = desktop_integration_background_slideshow_xml_builder_close (_tmp17_, &_inner_error_);
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp16_ = _tmp18_;
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2811 "DesktopIntegration.c"
+ goto __catch557_g_error;
+ }
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp19_ = _tmp16_;
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp16_ = NULL;
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (xml_file);
+#line 309 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ xml_file = _tmp19_;
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp16_);
+#line 2824 "DesktopIntegration.c"
+ }
+ goto __finally557;
+ __catch557_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp20_ = NULL;
+ GError* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ err = _inner_error_;
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _inner_error_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp20_ = _ ("Unable to prepare desktop slideshow: %s");
+#line 311 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp21_ = err;
+#line 311 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp22_ = _tmp21_->message;
+#line 311 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp23_ = g_strdup_printf (_tmp20_, _tmp22_);
+#line 311 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp24_ = _tmp23_;
+#line 311 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ app_window_error_message (_tmp24_, NULL);
+#line 311 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp24_);
+#line 314 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_error_free0 (err);
+#line 314 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _desktop_integration_background_slideshow_xml_builder_unref0 (xml_builder);
+#line 314 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (xml_file);
+#line 314 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2861 "DesktopIntegration.c"
+ }
+ __finally557:
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _desktop_integration_background_slideshow_xml_builder_unref0 (xml_builder);
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (xml_file);
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ g_clear_error (&_inner_error_);
+#line 303 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ return;
+#line 2876 "DesktopIntegration.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp25_ = desktop_integration_set_desktop_background;
+#line 317 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp25_) {
+#line 2882 "DesktopIntegration.c"
+ ConfigFacade* _tmp26_ = NULL;
+ ConfigFacade* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp26_ = config_facade_get_instance ();
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp27_ = _tmp26_;
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp28_ = xml_file;
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp29_ = g_file_get_path (_tmp28_);
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp30_ = _tmp29_;
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ configuration_facade_set_desktop_background (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp30_);
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp30_);
+#line 318 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp27_);
+#line 2904 "DesktopIntegration.c"
+ }
+#line 320 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp31_ = desktop_integration_set_screensaver;
+#line 320 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ if (_tmp31_) {
+#line 2910 "DesktopIntegration.c"
+ ConfigFacade* _tmp32_ = NULL;
+ ConfigFacade* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp32_ = config_facade_get_instance ();
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp33_ = _tmp32_;
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp34_ = xml_file;
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp35_ = g_file_get_path (_tmp34_);
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _tmp36_ = _tmp35_;
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ configuration_facade_set_screensaver (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp36_);
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_free0 (_tmp36_);
+#line 321 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (_tmp33_);
+#line 2932 "DesktopIntegration.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _desktop_integration_background_slideshow_xml_builder_unref0 (xml_builder);
+#line 293 "/home/jens/Source/shotwell/src/DesktopIntegration.vala"
+ _g_object_unref0 (xml_file);
+#line 2938 "DesktopIntegration.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/Dialogs.c b/src/Dialogs.c
new file mode 100644
index 0000000..6928c51
--- /dev/null
+++ b/src/Dialogs.c
@@ -0,0 +1,21888 @@
+/* Dialogs.c generated by valac 0.32.1, the Vala compiler
+ * generated from Dialogs.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* namespace for future migration of AppWindow alert and other question dialogs into single*/
+/* place: http://trac.yorba.org/ticket/3452*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <gee.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+#include <time.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_EXPORT_DIALOG (export_dialog_get_type ())
+#define EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORT_DIALOG, ExportDialog))
+#define EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORT_DIALOG, ExportDialogClass))
+#define IS_EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORT_DIALOG))
+#define IS_EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORT_DIALOG))
+#define EXPORT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORT_DIALOG, ExportDialogClass))
+
+typedef struct _ExportDialog ExportDialog;
+typedef struct _ExportDialogClass ExportDialogClass;
+typedef struct _ExportDialogPrivate ExportDialogPrivate;
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT_RESULT (batch_import_result_get_type ())
+#define BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResult))
+#define BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+#define IS_BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_RESULT))
+#define IS_BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_RESULT))
+#define BATCH_IMPORT_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+
+typedef struct _BatchImportResult BatchImportResult;
+typedef struct _BatchImportResultClass BatchImportResultClass;
+typedef struct _BatchImportResultPrivate BatchImportResultPrivate;
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+
+#define TYPE_DUPLICATED_FILE (duplicated_file_get_type ())
+#define DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATED_FILE, DuplicatedFile))
+#define DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+#define IS_DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATED_FILE))
+#define IS_DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATED_FILE))
+#define DUPLICATED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+
+typedef struct _DuplicatedFile DuplicatedFile;
+typedef struct _DuplicatedFileClass DuplicatedFileClass;
+#define _batch_import_result_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_result_unref (var), NULL)))
+
+#define IMPORT_UI_TYPE_QUESTION_PARAMS (import_ui_question_params_get_type ())
+#define IMPORT_UI_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParams))
+#define IMPORT_UI_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+#define IMPORT_UI_IS_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_IS_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_QUESTION_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+
+typedef struct _ImportUIQuestionParams ImportUIQuestionParams;
+typedef struct _ImportUIQuestionParamsClass ImportUIQuestionParamsClass;
+typedef struct _ImportUIQuestionParamsPrivate ImportUIQuestionParamsPrivate;
+typedef struct _ImportUIParamSpecQuestionParams ImportUIParamSpecQuestionParams;
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+typedef struct _ImportManifestPrivate ImportManifestPrivate;
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_TEXT_ENTRY_DIALOG_MEDIATOR (text_entry_dialog_mediator_get_type ())
+#define TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+
+typedef struct _TextEntryDialogMediator TextEntryDialogMediator;
+typedef struct _TextEntryDialogMediatorClass TextEntryDialogMediatorClass;
+typedef struct _TextEntryDialogMediatorPrivate TextEntryDialogMediatorPrivate;
+
+#define TYPE_TEXT_ENTRY_DIALOG (text_entry_dialog_get_type ())
+#define TEXT_ENTRY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEXT_ENTRY_DIALOG, TextEntryDialog))
+#define TEXT_ENTRY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEXT_ENTRY_DIALOG, TextEntryDialogClass))
+#define IS_TEXT_ENTRY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEXT_ENTRY_DIALOG))
+#define IS_TEXT_ENTRY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEXT_ENTRY_DIALOG))
+#define TEXT_ENTRY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEXT_ENTRY_DIALOG, TextEntryDialogClass))
+
+typedef struct _TextEntryDialog TextEntryDialog;
+typedef struct _TextEntryDialogClass TextEntryDialogClass;
+typedef struct _ParamSpecTextEntryDialogMediator ParamSpecTextEntryDialogMediator;
+
+#define TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR (multi_text_entry_dialog_mediator_get_type ())
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediator))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+
+typedef struct _MultiTextEntryDialogMediator MultiTextEntryDialogMediator;
+typedef struct _MultiTextEntryDialogMediatorClass MultiTextEntryDialogMediatorClass;
+typedef struct _MultiTextEntryDialogMediatorPrivate MultiTextEntryDialogMediatorPrivate;
+
+#define TYPE_MULTI_TEXT_ENTRY_DIALOG (multi_text_entry_dialog_get_type ())
+#define MULTI_TEXT_ENTRY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG, MultiTextEntryDialog))
+#define MULTI_TEXT_ENTRY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG, MultiTextEntryDialogClass))
+#define IS_MULTI_TEXT_ENTRY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG))
+#define MULTI_TEXT_ENTRY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG, MultiTextEntryDialogClass))
+
+typedef struct _MultiTextEntryDialog MultiTextEntryDialog;
+typedef struct _MultiTextEntryDialogClass MultiTextEntryDialogClass;
+typedef struct _ParamSpecMultiTextEntryDialogMediator ParamSpecMultiTextEntryDialogMediator;
+
+#define TYPE_ENTRY_MULTI_COMPLETION (entry_multi_completion_get_type ())
+#define ENTRY_MULTI_COMPLETION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENTRY_MULTI_COMPLETION, EntryMultiCompletion))
+#define ENTRY_MULTI_COMPLETION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENTRY_MULTI_COMPLETION, EntryMultiCompletionClass))
+#define IS_ENTRY_MULTI_COMPLETION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENTRY_MULTI_COMPLETION))
+#define IS_ENTRY_MULTI_COMPLETION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENTRY_MULTI_COMPLETION))
+#define ENTRY_MULTI_COMPLETION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENTRY_MULTI_COMPLETION, EntryMultiCompletionClass))
+
+typedef struct _EntryMultiCompletion EntryMultiCompletion;
+typedef struct _EntryMultiCompletionClass EntryMultiCompletionClass;
+typedef struct _EntryMultiCompletionPrivate EntryMultiCompletionPrivate;
+
+#define TYPE_SET_BACKGROUND_DIALOG (set_background_dialog_get_type ())
+#define SET_BACKGROUND_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog))
+#define SET_BACKGROUND_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialogClass))
+#define IS_SET_BACKGROUND_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_DIALOG))
+#define IS_SET_BACKGROUND_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_DIALOG))
+#define SET_BACKGROUND_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialogClass))
+
+typedef struct _SetBackgroundDialog SetBackgroundDialog;
+typedef struct _SetBackgroundDialogClass SetBackgroundDialogClass;
+typedef struct _SetBackgroundDialogPrivate SetBackgroundDialogPrivate;
+typedef struct _ParamSpecSetBackgroundDialog ParamSpecSetBackgroundDialog;
+
+#define TYPE_SET_BACKGROUND_PHOTO_DIALOG (set_background_photo_dialog_get_type ())
+#define SET_BACKGROUND_PHOTO_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialog))
+#define SET_BACKGROUND_PHOTO_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialogClass))
+#define IS_SET_BACKGROUND_PHOTO_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG))
+#define IS_SET_BACKGROUND_PHOTO_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_PHOTO_DIALOG))
+#define SET_BACKGROUND_PHOTO_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialogClass))
+
+typedef struct _SetBackgroundPhotoDialog SetBackgroundPhotoDialog;
+typedef struct _SetBackgroundPhotoDialogClass SetBackgroundPhotoDialogClass;
+typedef struct _SetBackgroundPhotoDialogPrivate SetBackgroundPhotoDialogPrivate;
+
+#define TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG (set_background_slideshow_dialog_get_type ())
+#define SET_BACKGROUND_SLIDESHOW_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialog))
+#define SET_BACKGROUND_SLIDESHOW_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialogClass))
+#define IS_SET_BACKGROUND_SLIDESHOW_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG))
+#define IS_SET_BACKGROUND_SLIDESHOW_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG))
+#define SET_BACKGROUND_SLIDESHOW_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialogClass))
+
+typedef struct _SetBackgroundSlideshowDialog SetBackgroundSlideshowDialog;
+typedef struct _SetBackgroundSlideshowDialogClass SetBackgroundSlideshowDialogClass;
+typedef struct _SetBackgroundSlideshowDialogPrivate SetBackgroundSlideshowDialogPrivate;
+typedef struct _TextEntryDialogPrivate TextEntryDialogPrivate;
+typedef struct _MultiTextEntryDialogPrivate MultiTextEntryDialogPrivate;
+
+#define TYPE_EVENT_RENAME_DIALOG (event_rename_dialog_get_type ())
+#define EVENT_RENAME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_RENAME_DIALOG, EventRenameDialog))
+#define EVENT_RENAME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_RENAME_DIALOG, EventRenameDialogClass))
+#define IS_EVENT_RENAME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_RENAME_DIALOG))
+#define IS_EVENT_RENAME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_RENAME_DIALOG))
+#define EVENT_RENAME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_RENAME_DIALOG, EventRenameDialogClass))
+
+typedef struct _EventRenameDialog EventRenameDialog;
+typedef struct _EventRenameDialogClass EventRenameDialogClass;
+typedef struct _EventRenameDialogPrivate EventRenameDialogPrivate;
+
+#define TYPE_EDIT_TITLE_DIALOG (edit_title_dialog_get_type ())
+#define EDIT_TITLE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_TITLE_DIALOG, EditTitleDialog))
+#define EDIT_TITLE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_TITLE_DIALOG, EditTitleDialogClass))
+#define IS_EDIT_TITLE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_TITLE_DIALOG))
+#define IS_EDIT_TITLE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_TITLE_DIALOG))
+#define EDIT_TITLE_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_TITLE_DIALOG, EditTitleDialogClass))
+
+typedef struct _EditTitleDialog EditTitleDialog;
+typedef struct _EditTitleDialogClass EditTitleDialogClass;
+typedef struct _EditTitleDialogPrivate EditTitleDialogPrivate;
+
+#define TYPE_EDIT_COMMENT_DIALOG (edit_comment_dialog_get_type ())
+#define EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialog))
+#define EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+#define IS_EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_COMMENT_DIALOG))
+#define IS_EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_COMMENT_DIALOG))
+#define EDIT_COMMENT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+
+typedef struct _EditCommentDialog EditCommentDialog;
+typedef struct _EditCommentDialogClass EditCommentDialogClass;
+typedef struct _EditCommentDialogPrivate EditCommentDialogPrivate;
+
+#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
+#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
+#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
+#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
+#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+
+typedef struct _ProgressDialog ProgressDialog;
+typedef struct _ProgressDialogClass ProgressDialogClass;
+typedef struct _ProgressDialogPrivate ProgressDialogPrivate;
+
+#define TYPE_ADJUST_DATE_TIME_DIALOG (adjust_date_time_dialog_get_type ())
+#define ADJUST_DATE_TIME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialog))
+#define ADJUST_DATE_TIME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialogClass))
+#define IS_ADJUST_DATE_TIME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_DATE_TIME_DIALOG))
+#define IS_ADJUST_DATE_TIME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_DATE_TIME_DIALOG))
+#define ADJUST_DATE_TIME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialogClass))
+
+typedef struct _AdjustDateTimeDialog AdjustDateTimeDialog;
+typedef struct _AdjustDateTimeDialogClass AdjustDateTimeDialogClass;
+typedef struct _AdjustDateTimeDialogPrivate AdjustDateTimeDialogPrivate;
+
+#define ADJUST_DATE_TIME_DIALOG_TYPE_TIME_SYSTEM (adjust_date_time_dialog_time_system_get_type ())
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_TAGS_DIALOG (tags_dialog_get_type ())
+#define TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAGS_DIALOG, TagsDialog))
+#define TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAGS_DIALOG, TagsDialogClass))
+#define IS_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAGS_DIALOG))
+#define IS_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAGS_DIALOG))
+#define TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAGS_DIALOG, TagsDialogClass))
+
+typedef struct _TagsDialog TagsDialog;
+typedef struct _TagsDialogClass TagsDialogClass;
+typedef struct _TagsDialogPrivate TagsDialogPrivate;
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+
+#define TYPE_ADD_TAGS_DIALOG (add_tags_dialog_get_type ())
+#define ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialog))
+#define ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+#define IS_ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_DIALOG))
+#define IS_ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_DIALOG))
+#define ADD_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+
+typedef struct _AddTagsDialog AddTagsDialog;
+typedef struct _AddTagsDialogClass AddTagsDialogClass;
+typedef struct _AddTagsDialogPrivate AddTagsDialogPrivate;
+
+#define TYPE_MODIFY_TAGS_DIALOG (modify_tags_dialog_get_type ())
+#define MODIFY_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialog))
+#define MODIFY_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialogClass))
+#define IS_MODIFY_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFY_TAGS_DIALOG))
+#define IS_MODIFY_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFY_TAGS_DIALOG))
+#define MODIFY_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialogClass))
+
+typedef struct _ModifyTagsDialog ModifyTagsDialog;
+typedef struct _ModifyTagsDialogClass ModifyTagsDialogClass;
+typedef struct _ModifyTagsDialogPrivate ModifyTagsDialogPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_WELCOME_SERVICE_ENTRY (welcome_service_entry_get_type ())
+#define WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntry))
+#define IS_WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_SERVICE_ENTRY))
+#define WELCOME_SERVICE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntryIface))
+
+typedef struct _WelcomeServiceEntry WelcomeServiceEntry;
+typedef struct _WelcomeServiceEntryIface WelcomeServiceEntryIface;
+
+#define TYPE_WELCOME_DIALOG (welcome_dialog_get_type ())
+#define WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_DIALOG, WelcomeDialog))
+#define WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WELCOME_DIALOG, WelcomeDialogClass))
+#define IS_WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_DIALOG))
+#define IS_WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WELCOME_DIALOG))
+#define WELCOME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WELCOME_DIALOG, WelcomeDialogClass))
+
+typedef struct _WelcomeDialog WelcomeDialog;
+typedef struct _WelcomeDialogClass WelcomeDialogClass;
+typedef struct _WelcomeDialogPrivate WelcomeDialogPrivate;
+
+#define SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST (spit_data_imports_welcome_import_meta_host_get_type ())
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHost))
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHostClass))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST))
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHostClass))
+
+typedef struct _SpitDataImportsWelcomeImportMetaHost SpitDataImportsWelcomeImportMetaHost;
+typedef struct _SpitDataImportsWelcomeImportMetaHostClass SpitDataImportsWelcomeImportMetaHostClass;
+
+#define TYPE_PREFERENCES_DIALOG (preferences_dialog_get_type ())
+#define PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialog))
+#define PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass))
+#define IS_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREFERENCES_DIALOG))
+#define IS_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREFERENCES_DIALOG))
+#define PREFERENCES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass))
+
+typedef struct _PreferencesDialog PreferencesDialog;
+typedef struct _PreferencesDialogClass PreferencesDialogClass;
+typedef struct _PreferencesDialogPrivate PreferencesDialogPrivate;
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+
+#define PREFERENCES_DIALOG_TYPE_PATH_FORMAT (preferences_dialog_path_format_get_type ())
+#define PREFERENCES_DIALOG_PATH_FORMAT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PREFERENCES_DIALOG_TYPE_PATH_FORMAT, PreferencesDialogPathFormat))
+#define PREFERENCES_DIALOG_PATH_FORMAT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PREFERENCES_DIALOG_TYPE_PATH_FORMAT, PreferencesDialogPathFormatClass))
+#define PREFERENCES_DIALOG_IS_PATH_FORMAT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PREFERENCES_DIALOG_TYPE_PATH_FORMAT))
+#define PREFERENCES_DIALOG_IS_PATH_FORMAT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PREFERENCES_DIALOG_TYPE_PATH_FORMAT))
+#define PREFERENCES_DIALOG_PATH_FORMAT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PREFERENCES_DIALOG_TYPE_PATH_FORMAT, PreferencesDialogPathFormatClass))
+
+typedef struct _PreferencesDialogPathFormat PreferencesDialogPathFormat;
+typedef struct _PreferencesDialogPathFormatClass PreferencesDialogPathFormatClass;
+
+#define PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR (plugins_manifest_widget_mediator_get_type ())
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediator))
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))
+#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
+#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))
+
+typedef struct _PluginsManifestWidgetMediator PluginsManifestWidgetMediator;
+typedef struct _PluginsManifestWidgetMediatorClass PluginsManifestWidgetMediatorClass;
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+#define _plugins_manifest_widget_mediator_unref0(var) ((var == NULL) ? NULL : (var = (plugins_manifest_widget_mediator_unref (var), NULL)))
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _PreferencesDialogPathFormatPrivate PreferencesDialogPathFormatPrivate;
+#define _preferences_dialog_path_format_unref0(var) ((var == NULL) ? NULL : (var = (preferences_dialog_path_format_unref (var), NULL)))
+#define _preferences_dialog_unref0(var) ((var == NULL) ? NULL : (var = (preferences_dialog_unref (var), NULL)))
+typedef struct _PreferencesDialogParamSpecPathFormat PreferencesDialogParamSpecPathFormat;
+typedef struct _ParamSpecPreferencesDialog ParamSpecPreferencesDialog;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _ExportDialog {
+ GtkDialog parent_instance;
+ ExportDialogPrivate * priv;
+};
+
+struct _ExportDialogClass {
+ GtkDialogClass parent_class;
+};
+
+struct _ExportDialogPrivate {
+ GtkGrid* table;
+ GtkComboBoxText* quality_combo;
+ GtkComboBoxText* constraint_combo;
+ GtkComboBoxText* format_combo;
+ GtkCheckButton* export_metadata;
+ GeeArrayList* format_options;
+ GtkEntry* pixels_entry;
+ GtkWidget* ok_button;
+ gboolean in_insert;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+struct _BatchImportResult {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportResultPrivate * priv;
+ BatchImportJob* job;
+ GFile* file;
+ gchar* src_identifier;
+ gchar* dest_identifier;
+ ImportResult result;
+ gchar* errmsg;
+ DuplicatedFile* duplicate_of;
+};
+
+struct _BatchImportResultClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportResult *self);
+};
+
+struct _ImportUIQuestionParams {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ImportUIQuestionParamsPrivate * priv;
+ gchar* question;
+ gchar* yes_button;
+ gchar* no_button;
+};
+
+struct _ImportUIQuestionParamsClass {
+ GTypeClass parent_class;
+ void (*finalize) (ImportUIQuestionParams *self);
+};
+
+struct _ImportUIParamSpecQuestionParams {
+ GParamSpec parent_instance;
+};
+
+struct _ImportManifest {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ImportManifestPrivate * priv;
+ GeeList* imported;
+ GeeList* success;
+ GeeList* camera_failed;
+ GeeList* failed;
+ GeeList* write_failed;
+ GeeList* skipped_photos;
+ GeeList* skipped_files;
+ GeeList* aborted;
+ GeeList* already_imported;
+ GeeList* corrupt_files;
+ GeeList* all;
+};
+
+struct _ImportManifestClass {
+ GTypeClass parent_class;
+ void (*finalize) (ImportManifest *self);
+};
+
+struct _TextEntryDialogMediator {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TextEntryDialogMediatorPrivate * priv;
+};
+
+struct _TextEntryDialogMediatorClass {
+ GTypeClass parent_class;
+ void (*finalize) (TextEntryDialogMediator *self);
+ gboolean (*on_modify_validate) (TextEntryDialogMediator* self, const gchar* text);
+};
+
+struct _TextEntryDialogMediatorPrivate {
+ TextEntryDialog* dialog;
+};
+
+typedef gboolean (*TextEntryDialogOnModifyValidateType) (const gchar* text, void* user_data);
+struct _ParamSpecTextEntryDialogMediator {
+ GParamSpec parent_instance;
+};
+
+struct _MultiTextEntryDialogMediator {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MultiTextEntryDialogMediatorPrivate * priv;
+};
+
+struct _MultiTextEntryDialogMediatorClass {
+ GTypeClass parent_class;
+ void (*finalize) (MultiTextEntryDialogMediator *self);
+ gboolean (*on_modify_validate) (MultiTextEntryDialogMediator* self, const gchar* text);
+};
+
+struct _MultiTextEntryDialogMediatorPrivate {
+ MultiTextEntryDialog* dialog;
+};
+
+typedef gboolean (*MultiTextEntryDialogOnModifyValidateType) (const gchar* text, void* user_data);
+struct _ParamSpecMultiTextEntryDialogMediator {
+ GParamSpec parent_instance;
+};
+
+struct _EntryMultiCompletion {
+ GtkEntryCompletion parent_instance;
+ EntryMultiCompletionPrivate * priv;
+};
+
+struct _EntryMultiCompletionClass {
+ GtkEntryCompletionClass parent_class;
+};
+
+struct _EntryMultiCompletionPrivate {
+ gchar* delimiter;
+};
+
+struct _SetBackgroundDialog {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SetBackgroundDialogPrivate * priv;
+ GtkDialog* dialog;
+ GtkCheckButton* desktop_background_button;
+ GtkCheckButton* screensaver_button;
+ GtkButton* ok_button;
+ gboolean desktop;
+ gboolean screensaver;
+};
+
+struct _SetBackgroundDialogClass {
+ GTypeClass parent_class;
+ void (*finalize) (SetBackgroundDialog *self);
+};
+
+struct _ParamSpecSetBackgroundDialog {
+ GParamSpec parent_instance;
+};
+
+struct _SetBackgroundPhotoDialog {
+ SetBackgroundDialog parent_instance;
+ SetBackgroundPhotoDialogPrivate * priv;
+};
+
+struct _SetBackgroundPhotoDialogClass {
+ SetBackgroundDialogClass parent_class;
+};
+
+struct _SetBackgroundSlideshowDialog {
+ SetBackgroundDialog parent_instance;
+ SetBackgroundSlideshowDialogPrivate * priv;
+};
+
+struct _SetBackgroundSlideshowDialogClass {
+ SetBackgroundDialogClass parent_class;
+};
+
+struct _SetBackgroundSlideshowDialogPrivate {
+ GtkLabel* delay_value_label;
+ GtkScale* delay_scale;
+ gint delay_value;
+};
+
+struct _TextEntryDialog {
+ GtkDialog parent_instance;
+ TextEntryDialogPrivate * priv;
+};
+
+struct _TextEntryDialogClass {
+ GtkDialogClass parent_class;
+};
+
+struct _TextEntryDialogPrivate {
+ TextEntryDialogOnModifyValidateType on_modify_validate;
+ gpointer on_modify_validate_target;
+ GtkEntry* entry;
+ GtkBuilder* builder;
+ GtkButton* button1;
+ GtkButton* button2;
+ GtkButtonBox* action_area_box;
+};
+
+struct _MultiTextEntryDialog {
+ GtkDialog parent_instance;
+ MultiTextEntryDialogPrivate * priv;
+};
+
+struct _MultiTextEntryDialogClass {
+ GtkDialogClass parent_class;
+};
+
+struct _MultiTextEntryDialogPrivate {
+ MultiTextEntryDialogOnModifyValidateType on_modify_validate;
+ gpointer on_modify_validate_target;
+ GtkTextView* entry;
+ GtkBuilder* builder;
+ GtkButton* button1;
+ GtkButton* button2;
+ GtkButtonBox* action_area_box;
+};
+
+struct _EventRenameDialog {
+ TextEntryDialogMediator parent_instance;
+ EventRenameDialogPrivate * priv;
+};
+
+struct _EventRenameDialogClass {
+ TextEntryDialogMediatorClass parent_class;
+ gchar* (*execute) (EventRenameDialog* self);
+};
+
+struct _EditTitleDialog {
+ TextEntryDialogMediator parent_instance;
+ EditTitleDialogPrivate * priv;
+};
+
+struct _EditTitleDialogClass {
+ TextEntryDialogMediatorClass parent_class;
+ gchar* (*execute) (EditTitleDialog* self);
+};
+
+struct _EditCommentDialog {
+ MultiTextEntryDialogMediator parent_instance;
+ EditCommentDialogPrivate * priv;
+};
+
+struct _EditCommentDialogClass {
+ MultiTextEntryDialogMediatorClass parent_class;
+ gchar* (*execute) (EditCommentDialog* self);
+};
+
+struct _ProgressDialog {
+ GtkWindow parent_instance;
+ ProgressDialogPrivate * priv;
+};
+
+struct _ProgressDialogClass {
+ GtkWindowClass parent_class;
+};
+
+struct _ProgressDialogPrivate {
+ GtkProgressBar* progress_bar;
+ GtkButton* cancel_button;
+ GCancellable* cancellable;
+ guint64 last_count;
+ gint update_every;
+ gint minimum_on_screen_time_msec;
+ gulong time_started;
+};
+
+struct _AdjustDateTimeDialog {
+ GtkDialog parent_instance;
+ AdjustDateTimeDialogPrivate * priv;
+};
+
+struct _AdjustDateTimeDialogClass {
+ GtkDialogClass parent_class;
+};
+
+typedef enum {
+ ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_AM,
+ ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_PM,
+ ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_24HR
+} AdjustDateTimeDialogTimeSystem;
+
+struct _AdjustDateTimeDialogPrivate {
+ gboolean no_original_time;
+ time_t original_time;
+ GtkLabel* original_time_label;
+ GtkCalendar* calendar;
+ GtkSpinButton* hour;
+ GtkSpinButton* minute;
+ GtkSpinButton* second;
+ GtkComboBoxText* system;
+ GtkRadioButton* relativity_radio_button;
+ GtkRadioButton* batch_radio_button;
+ GtkCheckButton* modify_originals_check_button;
+ GtkLabel* notification;
+ AdjustDateTimeDialogTimeSystem previous_time_system;
+};
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+struct _TagsDialog {
+ TextEntryDialogMediator parent_instance;
+ TagsDialogPrivate * priv;
+};
+
+struct _TagsDialogClass {
+ TextEntryDialogMediatorClass parent_class;
+};
+
+struct _AddTagsDialog {
+ TagsDialog parent_instance;
+ AddTagsDialogPrivate * priv;
+};
+
+struct _AddTagsDialogClass {
+ TagsDialogClass parent_class;
+};
+
+struct _ModifyTagsDialog {
+ TagsDialog parent_instance;
+ ModifyTagsDialogPrivate * priv;
+};
+
+struct _ModifyTagsDialogClass {
+ TagsDialogClass parent_class;
+};
+
+struct _WelcomeServiceEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_service_name) (WelcomeServiceEntry* self);
+ void (*execute) (WelcomeServiceEntry* self);
+};
+
+struct _WelcomeDialog {
+ GtkDialog parent_instance;
+ WelcomeDialogPrivate * priv;
+};
+
+struct _WelcomeDialogClass {
+ GtkDialogClass parent_class;
+};
+
+struct _WelcomeDialogPrivate {
+ GtkCheckButton* hide_button;
+ GtkCheckButton* system_pictures_import_check;
+ GtkCheckButton** external_import_checks;
+ gint external_import_checks_length1;
+ gint _external_import_checks_size_;
+ WelcomeServiceEntry** external_import_entries;
+ gint external_import_entries_length1;
+ gint _external_import_entries_size_;
+ GtkLabel* secondary_text;
+ GtkLabel* instruction_header;
+ GtkBox* import_content;
+ GtkBox* import_action_checkbox_packer;
+ GtkBox* external_import_action_checkbox_packer;
+ SpitDataImportsWelcomeImportMetaHost* import_meta_host;
+ gboolean import_content_already_installed;
+ gboolean ok_clicked;
+};
+
+struct _PreferencesDialog {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PreferencesDialogPrivate * priv;
+};
+
+struct _PreferencesDialogClass {
+ GTypeClass parent_class;
+ void (*finalize) (PreferencesDialog *self);
+};
+
+struct _PreferencesDialogPrivate {
+ GtkDialog* dialog;
+ GtkBuilder* builder;
+ GtkAdjustment* bg_color_adjustment;
+ GtkScale* bg_color_slider;
+ GtkComboBox* photo_editor_combo;
+ GtkComboBox* raw_editor_combo;
+ SortedList* external_raw_apps;
+ SortedList* external_photo_apps;
+ GtkFileChooserButton* library_dir_button;
+ GtkComboBoxText* dir_pattern_combo;
+ GtkEntry* dir_pattern_entry;
+ GtkLabel* dir_pattern_example;
+ gboolean allow_closing;
+ gchar* lib_dir;
+ GeeArrayList* path_formats;
+ GDateTime* example_date;
+ GtkCheckButton* lowercase;
+ PluginsManifestWidgetMediator* plugins_mediator;
+ GtkComboBoxText* default_raw_developer_combo;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _PreferencesDialogPathFormat {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PreferencesDialogPathFormatPrivate * priv;
+ gchar* name;
+ gchar* pattern;
+};
+
+struct _PreferencesDialogPathFormatClass {
+ GTypeClass parent_class;
+ void (*finalize) (PreferencesDialogPathFormat *self);
+};
+
+struct _PreferencesDialogParamSpecPathFormat {
+ GParamSpec parent_instance;
+};
+
+struct _ParamSpecPreferencesDialog {
+ GParamSpec parent_instance;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+
+extern GFile* export_ui_current_export_dir;
+GFile* export_ui_current_export_dir = NULL;
+static gpointer export_dialog_parent_class = NULL;
+static ScaleConstraint export_dialog_current_constraint;
+static ScaleConstraint export_dialog_current_constraint = SCALE_CONSTRAINT_ORIGINAL;
+static ExportFormatParameters export_dialog_current_parameters;
+static ExportFormatParameters export_dialog_current_parameters = {0};
+static gint export_dialog_current_scale;
+static gint export_dialog_current_scale = 0;
+static gpointer import_ui_question_params_parent_class = NULL;
+static gpointer text_entry_dialog_mediator_parent_class = NULL;
+static gpointer multi_text_entry_dialog_mediator_parent_class = NULL;
+static gpointer entry_multi_completion_parent_class = NULL;
+static gpointer set_background_dialog_parent_class = NULL;
+static gpointer set_background_photo_dialog_parent_class = NULL;
+static gpointer set_background_slideshow_dialog_parent_class = NULL;
+static gpointer text_entry_dialog_parent_class = NULL;
+static gpointer multi_text_entry_dialog_parent_class = NULL;
+static gpointer event_rename_dialog_parent_class = NULL;
+static gpointer edit_title_dialog_parent_class = NULL;
+static gpointer edit_comment_dialog_parent_class = NULL;
+static gpointer progress_dialog_parent_class = NULL;
+static gpointer adjust_date_time_dialog_parent_class = NULL;
+static gpointer tags_dialog_parent_class = NULL;
+static gpointer add_tags_dialog_parent_class = NULL;
+static gpointer modify_tags_dialog_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+static gpointer welcome_dialog_parent_class = NULL;
+static gpointer preferences_dialog_parent_class = NULL;
+static PreferencesDialog* preferences_dialog_preferences_dialog;
+static PreferencesDialog* preferences_dialog_preferences_dialog = NULL;
+static gpointer preferences_dialog_path_format_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType tag_get_type (void) G_GNUC_CONST;
+gboolean dialogs_confirm_delete_tag (Tag* tag);
+gint tag_get_sources_count (Tag* self);
+gchar* tag_get_user_visible_name (Tag* self);
+gboolean app_window_negate_affirm_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* title, GtkWindow* parent);
+#define RESOURCES_DELETE_TAG_TITLE _ ("Delete Tag")
+GType saved_search_get_type (void) G_GNUC_CONST;
+gboolean dialogs_confirm_delete_saved_search (SavedSearch* search);
+gchar* data_object_get_name (DataObject* self);
+#define RESOURCES_DELETE_SAVED_SEARCH_DIALOG_TITLE _ ("Delete Search")
+gboolean dialogs_confirm_warn_developer_changed (gint number);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+GFile* export_ui_choose_file (const gchar* current_file_basename);
+gboolean video_reader_is_supported_video_filename (const gchar* filename);
+#define RESOURCES_SAVE_LABEL _ ("_Save")
+void suppress_warnings (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message);
+static void _suppress_warnings_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+GFile* export_ui_choose_dir (const gchar* user_title);
+#define RESOURCES_OK_LABEL _ ("_OK")
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+void open_external_editor_error_dialog (GError* err, Photo* photo);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+GFile* media_source_get_master_file (MediaSource* self);
+gchar* resources_launch_editor_failed (GError* err);
+GtkResponseType export_error_dialog (GFile* dest, gboolean photos_remaining);
+GtkResponseType app_window_affirm_cancel_question (const gchar* message, const gchar* affirmative, const gchar* title, GtkWindow* parent);
+GType export_dialog_get_type (void) G_GNUC_CONST;
+#define EXPORT_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXPORT_DIALOG, ExportDialogPrivate))
+enum {
+ EXPORT_DIALOG_DUMMY_PROPERTY
+};
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+void export_format_parameters_current (ExportFormatParameters* result);
+#define EXPORT_DIALOG_DEFAULT_SCALE 1200
+#define EXPORT_DIALOG_NUM_SPECIAL_FORMATS 2
+#define EXPORT_DIALOG_UNMODIFIED_FORMAT_LABEL _ ("Unmodified")
+#define EXPORT_DIALOG_CURRENT_FORMAT_LABEL _ ("Current")
+ExportDialog* export_dialog_new (const gchar* title);
+ExportDialog* export_dialog_construct (GType object_type, const gchar* title);
+gchar* jpeg_quality_to_string (JpegQuality self);
+gchar* scale_constraint_to_string (ScaleConstraint self);
+static void export_dialog_format_add_option (ExportDialog* self, const gchar* format_name);
+PhotoFileFormat* photo_file_format_get_writeable (int* result_length1);
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+PhotoFileFormatProperties* photo_file_format_get_properties (PhotoFileFormat self);
+gchar* photo_file_format_properties_get_user_visible_name (PhotoFileFormatProperties* self);
+static void export_dialog_on_constraint_changed (ExportDialog* self);
+static void _export_dialog_on_constraint_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void export_dialog_on_format_changed (ExportDialog* self);
+static void _export_dialog_on_format_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void export_dialog_on_pixels_changed (ExportDialog* self);
+static void _export_dialog_on_pixels_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
+static void export_dialog_on_pixels_insert_text (ExportDialog* self, const gchar* text, gint length, gint* position);
+static void _export_dialog_on_pixels_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self);
+static void export_dialog_on_activate (ExportDialog* self);
+static void _export_dialog_on_activate_gtk_entry_activate (GtkEntry* _sender, gpointer self);
+static void export_dialog_add_label (ExportDialog* self, const gchar* text, gint x, gint y, GtkWidget* widget);
+static void export_dialog_add_control (ExportDialog* self, GtkWidget* widget, gint x, gint y);
+static void export_dialog_format_set_active_text (ExportDialog* self, const gchar* text);
+static PhotoFileFormat export_dialog_get_specified_format (ExportDialog* self);
+static gchar* export_dialog_get_label_for_parameters (ExportDialog* self, ExportFormatParameters* params);
+gboolean export_dialog_execute (ExportDialog* self, gint* scale, ScaleConstraint* constraint, ExportFormatParameters* parameters);
+gboolean photo_file_format_can_write (PhotoFileFormat self);
+PhotoFileFormat photo_file_format_get_system_default_format (void);
+static void export_dialog_finalize (GObject* obj);
+#define IMPORT_UI_REPORT_FAILURE_COUNT 4
+#define IMPORT_UI_SAVE_RESULTS_BUTTON_NAME _ ("Save Details...")
+#define IMPORT_UI_SAVE_RESULTS_FILE_CHOOSER_TITLE _ ("Save Details")
+#define IMPORT_UI_SAVE_RESULTS_RESPONSE_ID 1024
+gpointer batch_import_result_ref (gpointer instance);
+void batch_import_result_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_result (GValue* value, gpointer v_object);
+void value_take_batch_import_result (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_result (const GValue* value);
+GType batch_import_result_get_type (void) G_GNUC_CONST;
+gchar* import_ui_generate_import_failure_list (GeeList* failed, gboolean show_dest_id);
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+GType import_result_get_type (void) G_GNUC_CONST;
+GType duplicated_file_get_type (void) G_GNUC_CONST;
+gpointer import_ui_question_params_ref (gpointer instance);
+void import_ui_question_params_unref (gpointer instance);
+GParamSpec* import_ui_param_spec_question_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void import_ui_value_set_question_params (GValue* value, gpointer v_object);
+void import_ui_value_take_question_params (GValue* value, gpointer v_object);
+gpointer import_ui_value_get_question_params (const GValue* value);
+GType import_ui_question_params_get_type (void) G_GNUC_CONST;
+enum {
+ IMPORT_UI_QUESTION_PARAMS_DUMMY_PROPERTY
+};
+ImportUIQuestionParams* import_ui_question_params_new (const gchar* question, const gchar* yes_button, const gchar* no_button);
+ImportUIQuestionParams* import_ui_question_params_construct (GType object_type, const gchar* question, const gchar* yes_button, const gchar* no_button);
+static void import_ui_question_params_finalize (ImportUIQuestionParams* obj);
+gboolean import_ui_import_has_photos (GeeCollection* import_collection);
+PhotoFileFormat photo_file_format_get_by_file_extension (GFile* file);
+gboolean import_ui_import_has_videos (GeeCollection* import_collection);
+gboolean video_reader_is_supported_video_file (GFile* file);
+gchar* import_ui_get_media_specific_string (GeeCollection* import_collection, const gchar* photos_msg, const gchar* videos_msg, const gchar* both_msg, const gchar* neither_msg);
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+gchar* import_ui_create_result_report_from_manifest (ImportManifest* manifest);
+#define RESOURCES_APP_VERSION _VERSION
+GFile* duplicated_file_get_file (DuplicatedFile* self);
+gboolean import_ui_report_manifest (ImportManifest* manifest, gboolean show_dest_id, ImportUIQuestionParams* question);
+void import_ui_save_import_results (GtkWindow* chooser_dialog_parent, const gchar* results_log);
+#define RESOURCES_SAVE_AS_LABEL _ ("Save _As")
+gpointer text_entry_dialog_mediator_ref (gpointer instance);
+void text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_text_entry_dialog_mediator (const GValue* value);
+GType text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType text_entry_dialog_get_type (void) G_GNUC_CONST;
+#define TEXT_ENTRY_DIALOG_MEDIATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorPrivate))
+enum {
+ TEXT_ENTRY_DIALOG_MEDIATOR_DUMMY_PROPERTY
+};
+TextEntryDialogMediator* text_entry_dialog_mediator_construct (GType object_type, const gchar* title, const gchar* label, const gchar* initial_text, GeeCollection* completion_list, const gchar* completion_delimiter);
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+TextEntryDialog* text_entry_dialog_new (void);
+TextEntryDialog* text_entry_dialog_construct (GType object_type);
+void text_entry_dialog_set_builder (TextEntryDialog* self, GtkBuilder* builder);
+void text_entry_dialog_setup (TextEntryDialog* self, TextEntryDialogOnModifyValidateType modify_validate, void* modify_validate_target, const gchar* title, const gchar* label, const gchar* initial_text, GeeCollection* completion_list, const gchar* completion_delimiter);
+gboolean text_entry_dialog_mediator_on_modify_validate (TextEntryDialogMediator* self, const gchar* text);
+static gboolean _text_entry_dialog_mediator_on_modify_validate_text_entry_dialog_on_modify_validate_type (const gchar* text, gpointer self);
+static gboolean text_entry_dialog_mediator_real_on_modify_validate (TextEntryDialogMediator* self, const gchar* text);
+gchar* _text_entry_dialog_mediator_execute (TextEntryDialogMediator* self);
+gchar* text_entry_dialog_execute (TextEntryDialog* self);
+static void text_entry_dialog_mediator_finalize (TextEntryDialogMediator* obj);
+gpointer multi_text_entry_dialog_mediator_ref (gpointer instance);
+void multi_text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_multi_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_multi_text_entry_dialog_mediator (const GValue* value);
+GType multi_text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType multi_text_entry_dialog_get_type (void) G_GNUC_CONST;
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorPrivate))
+enum {
+ MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_DUMMY_PROPERTY
+};
+MultiTextEntryDialogMediator* multi_text_entry_dialog_mediator_construct (GType object_type, const gchar* title, const gchar* label, const gchar* initial_text);
+MultiTextEntryDialog* multi_text_entry_dialog_new (void);
+MultiTextEntryDialog* multi_text_entry_dialog_construct (GType object_type);
+void multi_text_entry_dialog_set_builder (MultiTextEntryDialog* self, GtkBuilder* builder);
+void multi_text_entry_dialog_setup (MultiTextEntryDialog* self, MultiTextEntryDialogOnModifyValidateType modify_validate, void* modify_validate_target, const gchar* title, const gchar* label, const gchar* initial_text);
+gboolean multi_text_entry_dialog_mediator_on_modify_validate (MultiTextEntryDialogMediator* self, const gchar* text);
+static gboolean _multi_text_entry_dialog_mediator_on_modify_validate_multi_text_entry_dialog_on_modify_validate_type (const gchar* text, gpointer self);
+static gboolean multi_text_entry_dialog_mediator_real_on_modify_validate (MultiTextEntryDialogMediator* self, const gchar* text);
+gchar* _multi_text_entry_dialog_mediator_execute (MultiTextEntryDialogMediator* self);
+gchar* multi_text_entry_dialog_execute (MultiTextEntryDialog* self);
+static void multi_text_entry_dialog_mediator_finalize (MultiTextEntryDialogMediator* obj);
+gchar* build_alert_body_text (const gchar* primary_text, const gchar* secondary_text, gboolean should_escape);
+gchar* guarded_markup_escape_text (const gchar* plain);
+GType entry_multi_completion_get_type (void) G_GNUC_CONST;
+#define ENTRY_MULTI_COMPLETION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ENTRY_MULTI_COMPLETION, EntryMultiCompletionPrivate))
+enum {
+ ENTRY_MULTI_COMPLETION_DUMMY_PROPERTY
+};
+EntryMultiCompletion* entry_multi_completion_new (GeeCollection* completion_list, const gchar* delimiter);
+EntryMultiCompletion* entry_multi_completion_construct (GType object_type, GeeCollection* completion_list, const gchar* delimiter);
+static GtkListStore* entry_multi_completion_create_completion_store (GeeCollection* completion_list);
+static gboolean entry_multi_completion_match_func (EntryMultiCompletion* self, GtkEntryCompletion* completion, const gchar* key, GtkTreeIter* iter);
+static gboolean _entry_multi_completion_match_func_gtk_entry_completion_match_func (GtkEntryCompletion* completion, const gchar* key, GtkTreeIter* iter, gpointer self);
+static gchar* entry_multi_completion_get_last_part (const gchar* s, const gchar* delimiter);
+static gboolean entry_multi_completion_real_match_selected (GtkEntryCompletion* base, GtkTreeModel* model, GtkTreeIter* iter);
+static void entry_multi_completion_finalize (GObject* obj);
+gpointer set_background_dialog_ref (gpointer instance);
+void set_background_dialog_unref (gpointer instance);
+GParamSpec* param_spec_set_background_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_set_background_dialog (GValue* value, gpointer v_object);
+void value_take_set_background_dialog (GValue* value, gpointer v_object);
+gpointer value_get_set_background_dialog (const GValue* value);
+GType set_background_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ SET_BACKGROUND_DIALOG_DUMMY_PROPERTY
+};
+SetBackgroundDialog* set_background_dialog_construct (GType object_type, GtkBuilder* builder);
+void set_background_dialog_on_checkbox_clicked (SetBackgroundDialog* self);
+static void _set_background_dialog_on_checkbox_clicked_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self);
+gboolean set_background_dialog_execute_base (SetBackgroundDialog* self);
+static void set_background_dialog_finalize (SetBackgroundDialog* obj);
+GType set_background_photo_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ SET_BACKGROUND_PHOTO_DIALOG_DUMMY_PROPERTY
+};
+SetBackgroundPhotoDialog* set_background_photo_dialog_new (void);
+SetBackgroundPhotoDialog* set_background_photo_dialog_construct (GType object_type);
+gboolean set_background_photo_dialog_execute (SetBackgroundPhotoDialog* self, gboolean* desktop_background, gboolean* screensaver);
+GType set_background_slideshow_dialog_get_type (void) G_GNUC_CONST;
+#define SET_BACKGROUND_SLIDESHOW_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialogPrivate))
+enum {
+ SET_BACKGROUND_SLIDESHOW_DIALOG_DUMMY_PROPERTY
+};
+SetBackgroundSlideshowDialog* set_background_slideshow_dialog_new (void);
+SetBackgroundSlideshowDialog* set_background_slideshow_dialog_construct (GType object_type);
+static void set_background_slideshow_dialog_on_delay_scale_value_changed (SetBackgroundSlideshowDialog* self);
+static void _set_background_slideshow_dialog_on_delay_scale_value_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+gboolean set_background_slideshow_dialog_execute (SetBackgroundSlideshowDialog* self, gint* delay_value, gboolean* desktop_background, gboolean* screensaver);
+static void set_background_slideshow_dialog_finalize (SetBackgroundDialog* obj);
+#define TEXT_ENTRY_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TEXT_ENTRY_DIALOG, TextEntryDialogPrivate))
+enum {
+ TEXT_ENTRY_DIALOG_DUMMY_PROPERTY
+};
+void text_entry_dialog_on_entry_changed (TextEntryDialog* self);
+static void _text_entry_dialog_on_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
+static void text_entry_dialog_finalize (GObject* obj);
+#define MULTI_TEXT_ENTRY_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MULTI_TEXT_ENTRY_DIALOG, MultiTextEntryDialogPrivate))
+enum {
+ MULTI_TEXT_ENTRY_DIALOG_DUMMY_PROPERTY
+};
+static void multi_text_entry_dialog_finalize (GObject* obj);
+GType event_rename_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ EVENT_RENAME_DIALOG_DUMMY_PROPERTY
+};
+EventRenameDialog* event_rename_dialog_new (const gchar* event_name);
+EventRenameDialog* event_rename_dialog_construct (GType object_type, const gchar* event_name);
+gchar* event_rename_dialog_execute (EventRenameDialog* self);
+static gchar* event_rename_dialog_real_execute (EventRenameDialog* self);
+gchar* event_prep_event_name (const gchar* name);
+GType edit_title_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ EDIT_TITLE_DIALOG_DUMMY_PROPERTY
+};
+EditTitleDialog* edit_title_dialog_new (const gchar* photo_title);
+EditTitleDialog* edit_title_dialog_construct (GType object_type, const gchar* photo_title);
+gchar* edit_title_dialog_execute (EditTitleDialog* self);
+static gchar* edit_title_dialog_real_execute (EditTitleDialog* self);
+gchar* media_source_prep_title (const gchar* title);
+static gboolean edit_title_dialog_real_on_modify_validate (TextEntryDialogMediator* base, const gchar* text);
+GType edit_comment_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ EDIT_COMMENT_DIALOG_DUMMY_PROPERTY
+};
+EditCommentDialog* edit_comment_dialog_new (const gchar* comment, gboolean is_event);
+EditCommentDialog* edit_comment_dialog_construct (GType object_type, const gchar* comment, gboolean is_event);
+gchar* edit_comment_dialog_execute (EditCommentDialog* self);
+static gchar* edit_comment_dialog_real_execute (EditCommentDialog* self);
+gchar* media_source_prep_comment (const gchar* comment);
+static gboolean edit_comment_dialog_real_on_modify_validate (MultiTextEntryDialogMediator* base, const gchar* text);
+GtkResponseType remove_from_library_dialog (GtkWindow* owner, const gchar* title, const gchar* user_message, gint count);
+GtkResponseType remove_from_filesystem_dialog (GtkWindow* owner, const gchar* title, const gchar* user_message);
+gboolean revert_editable_dialog (GtkWindow* owner, GeeCollection* photos);
+gboolean photo_has_editable (Photo* self);
+gboolean remove_offline_dialog (GtkWindow* owner, gint count);
+GType progress_dialog_get_type (void) G_GNUC_CONST;
+#define PROGRESS_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROGRESS_DIALOG, ProgressDialogPrivate))
+enum {
+ PROGRESS_DIALOG_DUMMY_PROPERTY
+};
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+static void progress_dialog_on_cancel (ProgressDialog* self);
+static void _progress_dialog_on_cancel_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static gboolean progress_dialog_on_window_closed (ProgressDialog* self);
+static gboolean _progress_dialog_on_window_closed_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+gulong now_ms (void);
+static void progress_dialog_real_realize (GtkWidget* base);
+void progress_dialog_update_display_every (ProgressDialog* self, gint update_every);
+void progress_dialog_set_minimum_on_screen_time_msec (ProgressDialog* self, gint minimum_on_screen_time_msec);
+void progress_dialog_set_fraction (ProgressDialog* self, gint current, gint total);
+void progress_dialog_set_percentage (ProgressDialog* self, gdouble pct);
+static void progress_dialog_maybe_show_all (ProgressDialog* self, gdouble pct);
+void progress_dialog_set_status (ProgressDialog* self, const gchar* text);
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
+void spin_event_loop (void);
+void progress_dialog_close (ProgressDialog* self);
+static void progress_dialog_finalize (GObject* obj);
+GType adjust_date_time_dialog_get_type (void) G_GNUC_CONST;
+static GType adjust_date_time_dialog_time_system_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define ADJUST_DATE_TIME_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialogPrivate))
+enum {
+ ADJUST_DATE_TIME_DIALOG_DUMMY_PROPERTY
+};
+#define ADJUST_DATE_TIME_DIALOG_SECONDS_IN_DAY ((gint64) ((60 * 60) * 24))
+#define ADJUST_DATE_TIME_DIALOG_SECONDS_IN_HOUR ((gint64) (60 * 60))
+#define ADJUST_DATE_TIME_DIALOG_SECONDS_IN_MINUTE ((gint64) 60)
+#define ADJUST_DATE_TIME_DIALOG_YEAR_OFFSET 1900
+#define ADJUST_DATE_TIME_DIALOG_CALENDAR_THUMBNAIL_SCALE 1
+GType dateable_get_type (void) G_GNUC_CONST;
+AdjustDateTimeDialog* adjust_date_time_dialog_new (Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video);
+AdjustDateTimeDialog* adjust_date_time_dialog_construct (GType object_type, Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video);
+#define RESOURCES_ADJUST_DATE_TIME_LABEL _ ("Adjust Date and Time")
+static void adjust_date_time_dialog_on_time_changed (AdjustDateTimeDialog* self);
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_day_selected (GtkCalendar* _sender, gpointer self);
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_month_changed (GtkCalendar* _sender, gpointer self);
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_next_year (GtkCalendar* _sender, gpointer self);
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_prev_year (GtkCalendar* _sender, gpointer self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_use_24_hour_time (ConfigurationFacade* self);
+static gboolean adjust_date_time_dialog_on_spin_button_output (AdjustDateTimeDialog* self, GtkSpinButton* button);
+static gboolean _adjust_date_time_dialog_on_spin_button_output_gtk_spin_button_output (GtkSpinButton* _sender, gpointer self);
+static void adjust_date_time_dialog_on_time_system_changed (AdjustDateTimeDialog* self);
+static void _adjust_date_time_dialog_on_time_system_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+gboolean configuration_facade_get_keep_relativity (ConfigurationFacade* self);
+static void _adjust_date_time_dialog_on_time_changed_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self);
+gboolean configuration_facade_get_commit_metadata_to_masters (ConfigurationFacade* self);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+gchar* data_object_to_string (DataObject* self);
+time_t dateable_get_exposure_time (Dateable* self);
+static void adjust_date_time_dialog_set_time (AdjustDateTimeDialog* self, struct tm* time);
+static void adjust_date_time_dialog_set_original_time_label (AdjustDateTimeDialog* self, gboolean use_24_hr_format);
+static time_t adjust_date_time_dialog_get_time (AdjustDateTimeDialog* self);
+gboolean adjust_date_time_dialog_execute (AdjustDateTimeDialog* self, gint64* time_shift, gboolean* keep_relativity, gboolean* modify_originals);
+void configuration_facade_set_keep_relativity (ConfigurationFacade* self, gboolean keep_relativity);
+void configuration_facade_set_modify_originals (ConfigurationFacade* self, gboolean modify_originals);
+void configuration_facade_set_use_24_hour_time (ConfigurationFacade* self, gboolean use_24_hour_time);
+static void adjust_date_time_dialog_finalize (GObject* obj);
+#define MAX_OBJECTS_DISPLAYED 3
+void multiple_object_error_dialog (GeeArrayList* objects, const gchar* message, const gchar* title);
+GType tags_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ TAGS_DIALOG_DUMMY_PROPERTY
+};
+TagsDialog* tags_dialog_construct (GType object_type, const gchar* title, const gchar* label, const gchar* initial_text);
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+HierarchicalTagIndex* hierarchical_tag_index_get_global_index (void);
+GeeCollection* hierarchical_tag_index_get_all_tags (HierarchicalTagIndex* self);
+GType add_tags_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ ADD_TAGS_DIALOG_DUMMY_PROPERTY
+};
+AddTagsDialog* add_tags_dialog_new (void);
+AddTagsDialog* add_tags_dialog_construct (GType object_type);
+#define RESOURCES_ADD_TAGS_TITLE "Add Tags"
+gchar** add_tags_dialog_execute (AddTagsDialog* self, int* result_length1);
+gchar** tag_prep_tag_names (gchar** names, int names_length1, int* result_length1);
+static gboolean add_tags_dialog_real_on_modify_validate (TextEntryDialogMediator* base, const gchar* text);
+#define TAG_PATH_SEPARATOR_STRING "/"
+GType modify_tags_dialog_get_type (void) G_GNUC_CONST;
+enum {
+ MODIFY_TAGS_DIALOG_DUMMY_PROPERTY
+};
+ModifyTagsDialog* modify_tags_dialog_new (MediaSource* source);
+ModifyTagsDialog* modify_tags_dialog_construct (GType object_type, MediaSource* source);
+#define RESOURCES_MODIFY_TAGS_LABEL _ ("Modify Tags")
+static gchar* modify_tags_dialog_get_initial_text (MediaSource* source);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
+GeeCollection* tag_get_terminal_tags (GeeCollection* tags);
+gchar* hierarchical_tag_utilities_get_basename (const gchar* in_path);
+gchar* tag_get_path (Tag* self);
+GeeArrayList* modify_tags_dialog_execute (ModifyTagsDialog* self);
+gboolean is_string_empty (const gchar* s);
+gchar** hierarchical_tag_index_get_paths_for_names_array (HierarchicalTagIndex* self, gchar** names, int names_length1, int* result_length1);
+Tag* tag_for_path (const gchar* name);
+static gboolean modify_tags_dialog_real_on_modify_validate (TextEntryDialogMediator* base, const gchar* text);
+GType welcome_service_entry_get_type (void) G_GNUC_CONST;
+gchar* welcome_service_entry_get_service_name (WelcomeServiceEntry* self);
+void welcome_service_entry_execute (WelcomeServiceEntry* self);
+GType welcome_dialog_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_welcome_import_meta_host_get_type (void) G_GNUC_CONST;
+#define WELCOME_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_WELCOME_DIALOG, WelcomeDialogPrivate))
+enum {
+ WELCOME_DIALOG_DUMMY_PROPERTY
+};
+WelcomeDialog* welcome_dialog_new (GtkWindow* owner);
+WelcomeDialog* welcome_dialog_construct (GType object_type, GtkWindow* owner);
+SpitDataImportsWelcomeImportMetaHost* spit_data_imports_welcome_import_meta_host_new (WelcomeDialog* dialog);
+SpitDataImportsWelcomeImportMetaHost* spit_data_imports_welcome_import_meta_host_construct (GType object_type, WelcomeDialog* dialog);
+static gboolean welcome_dialog_is_system_pictures_import_possible (void);
+gchar* get_display_pathname (GFile* file);
+GFile* app_dirs_get_import_dir (void);
+static void welcome_dialog_install_import_content (WelcomeDialog* self);
+void spit_data_imports_welcome_import_meta_host_start (SpitDataImportsWelcomeImportMetaHost* self);
+void welcome_dialog_install_service_entry (WelcomeDialog* self, WelcomeServiceEntry* entry);
+static void _vala_array_add275 (WelcomeServiceEntry*** array, int* length, int* size, WelcomeServiceEntry* value);
+static void _vala_array_add276 (GtkCheckButton*** array, int* length, int* size, GtkCheckButton* value);
+static void welcome_dialog_on_dismiss (WelcomeDialog* self, gint resp);
+gboolean welcome_dialog_execute (WelcomeDialog* self, WelcomeServiceEntry*** selected_import_entries, int* selected_import_entries_length1, gboolean* do_system_pictures_import);
+static void _welcome_dialog_on_dismiss_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+static void _vala_array_add277 (WelcomeServiceEntry*** array, int* length, int* size, WelcomeServiceEntry* value);
+static WelcomeServiceEntry** _vala_array_dup30 (WelcomeServiceEntry** self, int length);
+static void welcome_dialog_finalize (GObject* obj);
+gpointer preferences_dialog_ref (gpointer instance);
+void preferences_dialog_unref (gpointer instance);
+GParamSpec* param_spec_preferences_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_preferences_dialog (GValue* value, gpointer v_object);
+void value_take_preferences_dialog (GValue* value, gpointer v_object);
+gpointer value_get_preferences_dialog (const GValue* value);
+GType preferences_dialog_get_type (void) G_GNUC_CONST;
+GType sorted_list_get_type (void) G_GNUC_CONST;
+static gpointer preferences_dialog_path_format_ref (gpointer instance);
+static void preferences_dialog_path_format_unref (gpointer instance);
+static GParamSpec* preferences_dialog_param_spec_path_format (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void preferences_dialog_value_set_path_format (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void preferences_dialog_value_take_path_format (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer preferences_dialog_value_get_path_format (const GValue* value) G_GNUC_UNUSED;
+static GType preferences_dialog_path_format_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gpointer plugins_manifest_widget_mediator_ref (gpointer instance);
+void plugins_manifest_widget_mediator_unref (gpointer instance);
+GParamSpec* plugins_param_spec_manifest_widget_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_manifest_widget_mediator (GValue* value, gpointer v_object);
+void plugins_value_take_manifest_widget_mediator (GValue* value, gpointer v_object);
+gpointer plugins_value_get_manifest_widget_mediator (const GValue* value);
+GType plugins_manifest_widget_mediator_get_type (void) G_GNUC_CONST;
+#define PREFERENCES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PREFERENCES_DIALOG, PreferencesDialogPrivate))
+enum {
+ PREFERENCES_DIALOG_DUMMY_PROPERTY
+};
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_new (void);
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_construct (GType object_type);
+static PreferencesDialog* preferences_dialog_new (void);
+static PreferencesDialog* preferences_dialog_construct (GType object_type);
+static gboolean preferences_dialog_on_delete (PreferencesDialog* self);
+static gboolean _preferences_dialog_on_delete_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+static void preferences_dialog_on_close (PreferencesDialog* self);
+static void _preferences_dialog_on_close_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+void config_facade_get_bg_color (ConfigFacade* self, GdkRGBA* result);
+static void preferences_dialog_on_value_changed (PreferencesDialog* self);
+static void _preferences_dialog_on_value_changed_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self);
+static gboolean preferences_dialog_on_bg_color_reset (PreferencesDialog* self, GdkEventButton* event);
+static gboolean _preferences_dialog_on_bg_color_reset_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+gchar* resources_get_help_path (void);
+#define RESOURCES_DIR_PATTERN_URI_SYSWIDE "help:shotwell/other-files"
+static gboolean preferences_dialog_on_local_pattern_help (PreferencesDialog* self, const gchar* ignore);
+static gboolean _preferences_dialog_on_local_pattern_help_gtk_label_activate_link (GtkLabel* _sender, const gchar* uri, gpointer self);
+static void preferences_dialog_add_to_dir_formats (PreferencesDialog* self, const gchar* name, const gchar* pattern);
+static void preferences_dialog_on_dir_pattern_combo_changed (PreferencesDialog* self);
+static void _preferences_dialog_on_dir_pattern_combo_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void preferences_dialog_on_dir_pattern_entry_changed (PreferencesDialog* self);
+static void _preferences_dialog_on_dir_pattern_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
+static void preferences_dialog_on_lowercase_toggled (PreferencesDialog* self);
+static void _preferences_dialog_on_lowercase_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self);
+GtkWidget* plugins_manifest_widget_mediator_get_widget (PluginsManifestWidgetMediator* self);
+void preferences_dialog_populate_preference_options (PreferencesDialog* self);
+static void preferences_dialog_on_photo_editor_changed (PreferencesDialog* self);
+static void _preferences_dialog_on_photo_editor_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void preferences_dialog_on_raw_editor_changed (PreferencesDialog* self);
+static void _preferences_dialog_on_raw_editor_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+gboolean configuration_facade_get_auto_import_from_library (ConfigurationFacade* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+gchar* raw_developer_get_label (RawDeveloper self);
+static void preferences_dialog_set_raw_developer_combo (PreferencesDialog* self, RawDeveloper d);
+RawDeveloper configuration_facade_get_default_raw_developer (ConfigurationFacade* self);
+static void preferences_dialog_on_default_raw_developer_changed (PreferencesDialog* self);
+static void _preferences_dialog_on_default_raw_developer_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static gboolean preferences_dialog_map_event (PreferencesDialog* self);
+static gboolean _preferences_dialog_map_event_gtk_widget_map_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+static void preferences_dialog_populate_app_combo_box (PreferencesDialog* self, GtkComboBox* combo_box, gchar** mime_types, int mime_types_length1, const gchar* current_app_executable, SortedList** external_apps);
+gchar** photo_file_format_get_editable_mime_types (int* result_length1);
+gchar* configuration_facade_get_external_photo_app (ConfigurationFacade* self);
+gchar** photo_file_format_get_mime_types (PhotoFileFormat self, int* result_length1);
+gchar* configuration_facade_get_external_raw_app (ConfigurationFacade* self);
+static void preferences_dialog_setup_dir_pattern (PreferencesDialog* self, GtkComboBox* combo_box, GtkEntry* entry);
+gboolean configuration_facade_get_use_lowercase_filenames (ConfigurationFacade* self);
+void resources_launch_help (GdkScreen* screen, const gchar* anchor, GError** error);
+SortedList* desktop_integration_get_apps_for_mime_types (gchar** mime_types, int mime_types_length1);
+GdkPixbuf* scale_pixbuf (GdkPixbuf* pixbuf, gint scale, GdkInterpType interp, gboolean scale_up);
+#define RESOURCES_DEFAULT_ICON_SCALE 24
+gint sorted_list_index_of (SortedList* self, gconstpointer search);
+gchar* configuration_facade_get_directory_pattern (ConfigurationFacade* self);
+gchar* configuration_facade_get_directory_pattern_custom (ConfigurationFacade* self);
+void preferences_dialog_show (void);
+static void preferences_dialog_commit_on_close (PreferencesDialog* self);
+void config_facade_commit_bg_color (ConfigFacade* self);
+void configuration_facade_set_auto_import_from_library (ConfigurationFacade* self, gboolean auto_import);
+void configuration_facade_set_commit_metadata_to_masters (ConfigurationFacade* self, gboolean commit_metadata);
+void app_dirs_set_import_dir (const gchar* path);
+void configuration_facade_set_directory_pattern_custom (ConfigurationFacade* self, const gchar* s);
+void configuration_facade_set_directory_pattern (ConfigurationFacade* self, const gchar* s);
+static gboolean preferences_dialog_get_allow_closing (PreferencesDialog* self);
+static void preferences_dialog_set_background_color (PreferencesDialog* self, gdouble bg_color_value);
+gboolean has_only_key_modifier (GdkModifierType field, GdkModifierType mask);
+void parse_color (const gchar* spec, GdkRGBA* result);
+#define CONFIG_FACADE_DEFAULT_BG_COLOR "#444"
+static void preferences_dialog_set_allow_closing (PreferencesDialog* self, gboolean allow);
+void config_facade_set_bg_color (ConfigFacade* self, GdkRGBA* color);
+static void preferences_dialog_to_grayscale (PreferencesDialog* self, gdouble color_value, GdkRGBA* result);
+gpointer sorted_list_get_at (SortedList* self, gint index);
+void configuration_facade_set_external_photo_app (ConfigurationFacade* self, const gchar* external_photo_app);
+gchar* desktop_integration_get_app_open_command (GAppInfo* app_info);
+void configuration_facade_set_external_raw_app (ConfigurationFacade* self, const gchar* external_raw_app);
+static RawDeveloper preferences_dialog_raw_developer_from_combo (PreferencesDialog* self);
+void configuration_facade_set_default_raw_developer (ConfigurationFacade* self, RawDeveloper d);
+static void preferences_dialog_on_current_folder_changed (PreferencesDialog* self);
+static void _preferences_dialog_on_current_folder_changed_gtk_file_chooser_current_folder_changed (GtkFileChooser* _sender, gpointer self);
+static PreferencesDialogPathFormat* preferences_dialog_path_format_new (const gchar* name, const gchar* pattern);
+static PreferencesDialogPathFormat* preferences_dialog_path_format_construct (GType object_type, const gchar* name, const gchar* pattern);
+void configuration_facade_set_use_lowercase_filenames (ConfigurationFacade* self, gboolean b);
+enum {
+ PREFERENCES_DIALOG_PATH_FORMAT_DUMMY_PROPERTY
+};
+static void preferences_dialog_path_format_finalize (PreferencesDialogPathFormat* obj);
+static void preferences_dialog_finalize (PreferencesDialog* obj);
+GtkResponseType copy_files_dialog (void);
+GType library_photo_get_type (void) G_GNUC_CONST;
+void remove_photos_from_library (GeeCollection* photos);
+void remove_from_app (GeeCollection* sources, const gchar* dialog_title, const gchar* progress_dialog_text);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void media_source_collection_filter_media (GeeCollection* media, GeeCollection* photos, GeeCollection* videos);
+void page_window_set_busy_cursor (PageWindow* self);
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+void media_source_collection_remove_from_app (MediaSourceCollection* self, GeeCollection* sources, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+void media_source_collection_delete_backing_files (MediaSourceCollection* self, GeeCollection* sources, ProgressMonitor monitor, void* monitor_target, GeeList* not_deleted);
+void app_window_error_message_with_title (const gchar* title, const gchar* message, GtkWindow* parent, gboolean should_escape);
+void page_window_set_normal_cursor (PageWindow* self);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+const ScaleConstraint EXPORT_DIALOG_CONSTRAINT_ARRAY[4] = {SCALE_CONSTRAINT_ORIGINAL, SCALE_CONSTRAINT_DIMENSIONS, SCALE_CONSTRAINT_WIDTH, SCALE_CONSTRAINT_HEIGHT};
+const JpegQuality EXPORT_DIALOG_QUALITY_ARRAY[4] = {JPEG_QUALITY_LOW, JPEG_QUALITY_MEDIUM, JPEG_QUALITY_HIGH, JPEG_QUALITY_MAXIMUM};
+
+gboolean dialogs_confirm_delete_tag (Tag* tag) {
+ gboolean result = FALSE;
+ gint count = 0;
+ Tag* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar* msg = NULL;
+ gint _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ Tag* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 11 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_TAG (tag), FALSE);
+#line 12 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = tag;
+#line 12 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = tag_get_sources_count (_tmp0_);
+#line 12 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ count = _tmp1_;
+#line 13 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = count;
+#line 13 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_ == 0) {
+#line 14 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 14 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 1746 "Dialogs.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = count;
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = ngettext ("This will remove the tag \"%s\" from one photo. Continue?", "This will remove the tag \"%s\" from %d photos. Continue?", (gulong) _tmp3_);
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = tag;
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = tag_get_user_visible_name (_tmp5_);
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = count;
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_strdup_printf (_tmp4_, _tmp7_, _tmp8_);
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp7_);
+#line 15 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ msg = _tmp10_;
+#line 20 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = msg;
+#line 20 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _ ("_Cancel");
+#line 20 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _ ("_Delete");
+#line 20 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = app_window_negate_affirm_question (_tmp11_, _tmp12_, _tmp13_, RESOURCES_DELETE_TAG_TITLE, NULL);
+#line 20 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp14_;
+#line 20 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (msg);
+#line 20 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 1782 "Dialogs.c"
+}
+
+
+gboolean dialogs_confirm_delete_saved_search (SavedSearch* search) {
+ gboolean result = FALSE;
+ gchar* msg = NULL;
+ const gchar* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 24 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), FALSE);
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _ ("This will remove the saved search \"%s\". Continue?");
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = search;
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_strdup_printf (_tmp0_, _tmp3_);
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp3_);
+#line 25 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ msg = _tmp5_;
+#line 28 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _ ("_Cancel");
+#line 28 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _ ("_Delete");
+#line 28 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = app_window_negate_affirm_question (msg, _tmp6_, _tmp7_, RESOURCES_DELETE_SAVED_SEARCH_DIALOG_TITLE, NULL);
+#line 28 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp8_;
+#line 28 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (msg);
+#line 28 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 1828 "Dialogs.c"
+}
+
+
+gboolean dialogs_confirm_warn_developer_changed (gint number) {
+ gboolean result = FALSE;
+ GtkMessageDialog* dialog = NULL;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ GtkMessageDialog* _tmp4_ = NULL;
+ GtkMessageDialog* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gint response = 0;
+ gint _tmp7_ = 0;
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = number;
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = ngettext ("Switching developers will undo all changes you have made to this photo" \
+" in Shotwell", "Switching developers will undo all changes you have made to these phot" \
+"os in Shotwell", (gulong) _tmp2_);
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = (GtkMessageDialog*) gtk_message_dialog_new_with_markup (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, "<span weight=\"bold\" size=\"larger\">%s</span>", _tmp3_);
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp4_);
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp5_;
+#line 39 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, NULL);
+#line 40 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _ ("_Switch Developer");
+#line 40 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp6_, GTK_RESPONSE_YES, NULL);
+#line 42 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 42 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ response = _tmp7_;
+#line 44 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 46 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = response == ((gint) GTK_RESPONSE_YES);
+#line 46 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 46 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 1880 "Dialogs.c"
+}
+
+
+static void _suppress_warnings_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 71 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ suppress_warnings (log_domain, log_levels, message);
+#line 1887 "Dialogs.c"
+}
+
+
+GFile* export_ui_choose_file (const gchar* current_file_basename) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gchar* file_chooser_title = NULL;
+ gchar* _tmp8_ = NULL;
+ GtkFileChooserDialog* chooser = NULL;
+ const gchar* _tmp9_ = NULL;
+ AppWindow* _tmp10_ = NULL;
+ AppWindow* _tmp11_ = NULL;
+ GtkFileChooserDialog* _tmp12_ = NULL;
+ GtkFileChooserDialog* _tmp13_ = NULL;
+ GtkFileChooserDialog* _tmp14_ = NULL;
+ GtkFileChooserDialog* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ GtkFileChooserDialog* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ GtkFileChooserDialog* _tmp21_ = NULL;
+ GFile* file = NULL;
+ GtkFileChooserDialog* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ GLogFunc _tmp30_ = NULL;
+ void* _tmp30__target = NULL;
+ GtkFileChooserDialog* _tmp31_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (current_file_basename != NULL, NULL);
+#line 55 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = export_ui_current_export_dir;
+#line 55 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == NULL) {
+#line 1925 "Dialogs.c"
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_get_home_dir ();
+#line 56 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+#line 56 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (export_ui_current_export_dir);
+#line 56 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_ui_current_export_dir = _tmp2_;
+#line 1936 "Dialogs.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = current_file_basename;
+#line 58 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = video_reader_is_supported_video_filename (_tmp4_);
+#line 58 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_) {
+#line 1944 "Dialogs.c"
+ const gchar* _tmp6_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _ ("Export Video");
+#line 59 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp6_;
+#line 1950 "Dialogs.c"
+ } else {
+ const gchar* _tmp7_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _ ("Export Photo");
+#line 59 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp7_;
+#line 1957 "Dialogs.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = g_strdup (_tmp3_);
+#line 58 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ file_chooser_title = _tmp8_;
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = file_chooser_title;
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = app_window_get_instance ();
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_window_get_type (), GtkWindow), GTK_FILE_CHOOSER_ACTION_SAVE, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_SAVE_LABEL, GTK_RESPONSE_ACCEPT, NULL, NULL);
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp12_);
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_;
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp11_);
+#line 61 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ chooser = _tmp13_;
+#line 64 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = chooser;
+#line 64 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_do_overwrite_confirmation (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), TRUE);
+#line 65 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = chooser;
+#line 65 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = export_ui_current_export_dir;
+#line 65 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 65 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp17_;
+#line 65 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp18_);
+#line 65 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp18_);
+#line 66 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = chooser;
+#line 66 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = current_file_basename;
+#line 66 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_current_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp20_);
+#line 67 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = chooser;
+#line 67 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_local_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
+#line 71 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, _suppress_warnings_glog_func, NULL);
+#line 72 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ file = NULL;
+#line 73 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = chooser;
+#line 73 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_dialog_get_type (), GtkDialog));
+#line 73 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp23_ == ((gint) GTK_RESPONSE_ACCEPT)) {
+#line 2015 "Dialogs.c"
+ GtkFileChooserDialog* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = chooser;
+#line 74 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = gtk_file_chooser_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 74 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = _tmp25_;
+#line 74 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = g_file_new_for_path (_tmp26_);
+#line 74 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (file);
+#line 74 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ file = _tmp27_;
+#line 74 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp26_);
+#line 75 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = file;
+#line 75 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = g_file_get_parent (_tmp28_);
+#line 75 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (export_ui_current_export_dir);
+#line 75 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_ui_current_export_dir = _tmp29_;
+#line 2044 "Dialogs.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = g_log_default_handler;
+#line 77 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30__target = NULL;
+#line 77 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, _tmp30_, _tmp30__target);
+#line 78 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = chooser;
+#line 78 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget));
+#line 80 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = file;
+#line 80 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (chooser);
+#line 80 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (file_chooser_title);
+#line 80 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 2064 "Dialogs.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 99 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2071 "Dialogs.c"
+}
+
+
+GFile* export_ui_choose_dir (const gchar* user_title) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkFileChooserDialog* chooser = NULL;
+ const gchar* _tmp5_ = NULL;
+ AppWindow* _tmp6_ = NULL;
+ AppWindow* _tmp7_ = NULL;
+ GtkFileChooserDialog* _tmp8_ = NULL;
+ GtkFileChooserDialog* _tmp9_ = NULL;
+ GtkFileChooserDialog* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GtkFileChooserDialog* _tmp14_ = NULL;
+ GFile* dir = NULL;
+ GtkFileChooserDialog* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ GtkFileChooserDialog* _tmp23_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = export_ui_current_export_dir;
+#line 84 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == NULL) {
+#line 2098 "Dialogs.c"
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_get_home_dir ();
+#line 85 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+#line 85 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (export_ui_current_export_dir);
+#line 85 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_ui_current_export_dir = _tmp2_;
+#line 2109 "Dialogs.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = user_title;
+#line 87 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp3_ == NULL) {
+#line 2115 "Dialogs.c"
+ const gchar* _tmp4_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _ ("Export Photos");
+#line 88 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ user_title = _tmp4_;
+#line 2121 "Dialogs.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = user_title;
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = app_window_get_instance ();
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_window_get_type (), GtkWindow), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_ACCEPT, NULL, NULL);
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp8_);
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp7_);
+#line 90 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ chooser = _tmp9_;
+#line 93 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = chooser;
+#line 93 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = export_ui_current_export_dir;
+#line 93 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 93 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_;
+#line 93 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp13_);
+#line 93 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp13_);
+#line 94 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = chooser;
+#line 94 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_local_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
+#line 96 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dir = NULL;
+#line 97 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = chooser;
+#line 97 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_dialog_get_type (), GtkDialog));
+#line 97 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp16_ == ((gint) GTK_RESPONSE_ACCEPT)) {
+#line 2163 "Dialogs.c"
+ GtkFileChooserDialog* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = chooser;
+#line 98 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = gtk_file_chooser_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 98 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp18_;
+#line 98 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = g_file_new_for_path (_tmp19_);
+#line 98 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dir);
+#line 98 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dir = _tmp20_;
+#line 98 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp19_);
+#line 99 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = dir;
+#line 99 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _g_object_ref0 (_tmp21_);
+#line 99 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (export_ui_current_export_dir);
+#line 99 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_ui_current_export_dir = _tmp22_;
+#line 2192 "Dialogs.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = chooser;
+#line 102 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget));
+#line 104 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = dir;
+#line 104 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (chooser);
+#line 104 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 2204 "Dialogs.c"
+}
+
+
+void open_external_editor_error_dialog (GError* err, Photo* photo) {
+ gboolean _tmp0_ = FALSE;
+ GError* _tmp1_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = err;
+#line 113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_error_matches (_tmp1_, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED)) {
+#line 113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = TRUE;
+#line 2219 "Dialogs.c"
+ } else {
+ GError* _tmp2_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = err;
+#line 113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = g_error_matches (_tmp2_, G_FILE_ERROR, G_FILE_ERROR_PERM);
+#line 2226 "Dialogs.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 2230 "Dialogs.c"
+ const gchar* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _ ("Shotwell couldn't create a file for editing this photo because you do " \
+"not have permission to write to %s.");
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = photo;
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp5_;
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = g_file_get_parent (_tmp6_);
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_file_get_path (_tmp8_);
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = g_strdup_printf (_tmp3_, _tmp10_);
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp11_;
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app_window_error_message (_tmp12_, NULL);
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp12_);
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp10_);
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp8_);
+#line 115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp6_);
+#line 2271 "Dialogs.c"
+ } else {
+ GError* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = err;
+#line 120 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = resources_launch_editor_failed (_tmp13_);
+#line 120 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = _tmp14_;
+#line 120 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app_window_error_message (_tmp15_, NULL);
+#line 120 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp15_);
+#line 2286 "Dialogs.c"
+ }
+}
+
+
+GtkResponseType export_error_dialog (GFile* dest, gboolean photos_remaining) {
+ GtkResponseType result = 0;
+ gchar* message = NULL;
+ const gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GtkResponseType response = 0;
+ gboolean _tmp6_ = FALSE;
+#line 124 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (G_IS_FILE (dest), 0);
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _ ("Unable to export the following photo due to a file error.\n\n");
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = dest;
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_strconcat (_tmp0_, _tmp3_, NULL);
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp3_);
+#line 125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp5_;
+#line 128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ response = GTK_RESPONSE_NONE;
+#line 130 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = photos_remaining;
+#line 130 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp6_) {
+#line 2326 "Dialogs.c"
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GtkResponseType _tmp12_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = message;
+#line 131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _ ("\n\nWould you like to continue exporting?");
+#line 131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
+#line 131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp9_;
+#line 132 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = message;
+#line 132 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _ ("Con_tinue");
+#line 132 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = app_window_affirm_cancel_question (_tmp10_, _tmp11_, NULL, NULL);
+#line 132 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ response = _tmp12_;
+#line 2351 "Dialogs.c"
+ } else {
+ const gchar* _tmp13_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = message;
+#line 134 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app_window_error_message (_tmp13_, NULL);
+#line 2358 "Dialogs.c"
+ }
+#line 137 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = response;
+#line 137 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 137 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 2366 "Dialogs.c"
+}
+
+
+static void _export_dialog_on_constraint_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 209 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_on_constraint_changed ((ExportDialog*) self);
+#line 2373 "Dialogs.c"
+}
+
+
+static void _export_dialog_on_format_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_on_format_changed ((ExportDialog*) self);
+#line 2380 "Dialogs.c"
+}
+
+
+static void _export_dialog_on_pixels_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
+#line 211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_on_pixels_changed ((ExportDialog*) self);
+#line 2387 "Dialogs.c"
+}
+
+
+static void _export_dialog_on_pixels_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self) {
+#line 212 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_on_pixels_insert_text ((ExportDialog*) self, new_text, new_text_length, position);
+#line 2394 "Dialogs.c"
+}
+
+
+static void _export_dialog_on_activate_gtk_entry_activate (GtkEntry* _sender, gpointer self) {
+#line 213 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_on_activate ((ExportDialog*) self);
+#line 2401 "Dialogs.c"
+}
+
+
+ExportDialog* export_dialog_construct (GType object_type, const gchar* title) {
+ ExportDialog * self = NULL;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ GtkComboBoxText* _tmp4_ = NULL;
+ gint ctr = 0;
+ GtkComboBoxText* _tmp15_ = NULL;
+ GtkComboBoxText* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ PhotoFileFormat* _tmp27_ = NULL;
+ GtkEntry* _tmp33_ = NULL;
+ GtkEntry* _tmp34_ = NULL;
+ GtkEntry* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ GtkComboBoxText* _tmp39_ = NULL;
+ GtkComboBoxText* _tmp40_ = NULL;
+ GtkEntry* _tmp41_ = NULL;
+ GtkEntry* _tmp42_ = NULL;
+ GtkEntry* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ GtkComboBoxText* _tmp45_ = NULL;
+ GtkComboBoxText* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ GtkComboBoxText* _tmp48_ = NULL;
+ GtkComboBoxText* _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ GtkComboBoxText* _tmp51_ = NULL;
+ GtkComboBoxText* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ GtkEntry* _tmp54_ = NULL;
+ GtkEntry* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ GtkCheckButton* _tmp57_ = NULL;
+ GtkCheckButton* _tmp58_ = NULL;
+ GtkCheckButton* _tmp59_ = NULL;
+ GtkGrid* _tmp60_ = NULL;
+ GtkGrid* _tmp61_ = NULL;
+ GtkGrid* _tmp62_ = NULL;
+ GtkBox* _tmp63_ = NULL;
+ GtkGrid* _tmp64_ = NULL;
+ GtkWidget* _tmp65_ = NULL;
+ GtkWidget* _tmp66_ = NULL;
+ GtkWidget* _tmp67_ = NULL;
+ GtkWidget* _tmp68_ = NULL;
+ GtkWidget* _tmp69_ = NULL;
+ ScaleConstraint _tmp70_ = 0;
+ GtkWidget* _tmp73_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (title != NULL, NULL);
+#line 173 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = gtk_settings_get_default ();
+#line 173 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 174 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = use_header;
+#line 174 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_) {
+#line 174 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = 1;
+#line 2469 "Dialogs.c"
+ } else {
+#line 174 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = 0;
+#line 2473 "Dialogs.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (ExportDialog*) g_object_new (object_type, "use-header-bar", _tmp1_, NULL);
+#line 176 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = title;
+#line 176 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp3_);
+#line 177 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp4_);
+#line 179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->quality_combo);
+#line 179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->quality_combo = _tmp4_;
+#line 180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = 0;
+#line 2493 "Dialogs.c"
+ {
+ JpegQuality* quality_collection = NULL;
+ gint quality_collection_length1 = 0;
+ gint _quality_collection_size_ = 0;
+ gint quality_it = 0;
+#line 181 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ quality_collection = EXPORT_DIALOG_QUALITY_ARRAY;
+#line 181 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ quality_collection_length1 = G_N_ELEMENTS (EXPORT_DIALOG_QUALITY_ARRAY);
+#line 181 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ for (quality_it = 0; quality_it < G_N_ELEMENTS (EXPORT_DIALOG_QUALITY_ARRAY); quality_it = quality_it + 1) {
+#line 2505 "Dialogs.c"
+ JpegQuality quality = 0;
+#line 181 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ quality = quality_collection[quality_it];
+#line 2509 "Dialogs.c"
+ {
+ GtkComboBoxText* _tmp5_ = NULL;
+ JpegQuality _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ JpegQuality _tmp9_ = 0;
+ ExportFormatParameters _tmp10_ = {0};
+ JpegQuality _tmp11_ = 0;
+ gint _tmp14_ = 0;
+#line 182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->quality_combo;
+#line 182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = quality;
+#line 182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = jpeg_quality_to_string (_tmp6_);
+#line 182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp5_, _tmp8_);
+#line 182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp8_);
+#line 183 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = quality;
+#line 183 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = export_dialog_current_parameters;
+#line 183 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_.quality;
+#line 183 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_ == _tmp11_) {
+#line 2539 "Dialogs.c"
+ GtkComboBoxText* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+#line 184 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->quality_combo;
+#line 184 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = ctr;
+#line 184 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_combo_box_get_type (), GtkComboBox), _tmp13_);
+#line 2548 "Dialogs.c"
+ }
+#line 185 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = ctr;
+#line 185 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = _tmp14_ + 1;
+#line 2554 "Dialogs.c"
+ }
+ }
+ }
+#line 188 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 188 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp15_);
+#line 188 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->constraint_combo);
+#line 188 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->constraint_combo = _tmp15_;
+#line 189 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = 0;
+#line 2568 "Dialogs.c"
+ {
+ ScaleConstraint* constraint_collection = NULL;
+ gint constraint_collection_length1 = 0;
+ gint _constraint_collection_size_ = 0;
+ gint constraint_it = 0;
+#line 190 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ constraint_collection = EXPORT_DIALOG_CONSTRAINT_ARRAY;
+#line 190 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ constraint_collection_length1 = G_N_ELEMENTS (EXPORT_DIALOG_CONSTRAINT_ARRAY);
+#line 190 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ for (constraint_it = 0; constraint_it < G_N_ELEMENTS (EXPORT_DIALOG_CONSTRAINT_ARRAY); constraint_it = constraint_it + 1) {
+#line 2580 "Dialogs.c"
+ ScaleConstraint constraint = 0;
+#line 190 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ constraint = constraint_collection[constraint_it];
+#line 2584 "Dialogs.c"
+ {
+ GtkComboBoxText* _tmp16_ = NULL;
+ ScaleConstraint _tmp17_ = 0;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ ScaleConstraint _tmp20_ = 0;
+ ScaleConstraint _tmp21_ = 0;
+ gint _tmp24_ = 0;
+#line 191 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->constraint_combo;
+#line 191 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = constraint;
+#line 191 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = scale_constraint_to_string (_tmp17_);
+#line 191 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp18_;
+#line 191 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp16_, _tmp19_);
+#line 191 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp19_);
+#line 192 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = constraint;
+#line 192 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = export_dialog_current_constraint;
+#line 192 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp20_ == _tmp21_) {
+#line 2611 "Dialogs.c"
+ GtkComboBoxText* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+#line 193 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->priv->constraint_combo;
+#line 193 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = ctr;
+#line 193 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_combo_box_get_type (), GtkComboBox), _tmp23_);
+#line 2620 "Dialogs.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = ctr;
+#line 194 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = _tmp24_ + 1;
+#line 2626 "Dialogs.c"
+ }
+ }
+ }
+#line 197 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 197 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp25_);
+#line 197 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->format_combo);
+#line 197 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->format_combo = _tmp25_;
+#line 198 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_format_add_option (self, EXPORT_DIALOG_UNMODIFIED_FORMAT_LABEL);
+#line 199 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_format_add_option (self, EXPORT_DIALOG_CURRENT_FORMAT_LABEL);
+#line 200 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = photo_file_format_get_writeable (&_tmp26_);
+#line 2644 "Dialogs.c"
+ {
+ PhotoFileFormat* format_collection = NULL;
+ gint format_collection_length1 = 0;
+ gint _format_collection_size_ = 0;
+ gint format_it = 0;
+#line 200 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ format_collection = _tmp27_;
+#line 200 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ format_collection_length1 = _tmp26_;
+#line 200 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ for (format_it = 0; format_it < _tmp26_; format_it = format_it + 1) {
+#line 2656 "Dialogs.c"
+ PhotoFileFormat format = 0;
+#line 200 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ format = format_collection[format_it];
+#line 2660 "Dialogs.c"
+ {
+ PhotoFileFormat _tmp28_ = 0;
+ PhotoFileFormatProperties* _tmp29_ = NULL;
+ PhotoFileFormatProperties* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = format;
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = photo_file_format_get_properties (_tmp28_);
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = _tmp29_;
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = photo_file_format_properties_get_user_visible_name (_tmp30_);
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = _tmp31_;
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_format_add_option (self, _tmp32_);
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp32_);
+#line 201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _photo_file_format_properties_unref0 (_tmp30_);
+#line 2683 "Dialogs.c"
+ }
+ }
+#line 200 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ format_collection = (g_free (format_collection), NULL);
+#line 2688 "Dialogs.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = (GtkEntry*) gtk_entry_new ();
+#line 204 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp33_);
+#line 204 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->pixels_entry);
+#line 204 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->pixels_entry = _tmp33_;
+#line 205 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = self->priv->pixels_entry;
+#line 205 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_max_length (_tmp34_, 6);
+#line 206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = self->priv->pixels_entry;
+#line 206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = export_dialog_current_scale;
+#line 206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = g_strdup_printf ("%d", _tmp36_);
+#line 206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = _tmp37_;
+#line 206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_text (_tmp35_, _tmp38_);
+#line 206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp38_);
+#line 209 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = self->priv->constraint_combo;
+#line 209 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _export_dialog_on_constraint_changed_gtk_combo_box_changed, self, 0);
+#line 210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = self->priv->format_combo;
+#line 210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _export_dialog_on_format_changed_gtk_combo_box_changed, self, 0);
+#line 211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = self->priv->pixels_entry;
+#line 211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GTK_TYPE_EDITABLE, GtkEditable), "changed", (GCallback) _export_dialog_on_pixels_changed_gtk_editable_changed, self, 0);
+#line 212 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = self->priv->pixels_entry;
+#line 212 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GTK_TYPE_EDITABLE, GtkEditable), "insert-text", (GCallback) _export_dialog_on_pixels_insert_text_gtk_editable_insert_text, self, 0);
+#line 213 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = self->priv->pixels_entry;
+#line 213 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp43_, "activate", (GCallback) _export_dialog_on_activate_gtk_entry_activate, self, 0);
+#line 216 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = _ ("_Format:");
+#line 216 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = self->priv->format_combo;
+#line 216 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_label (self, _tmp44_, 0, 0, G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, gtk_widget_get_type (), GtkWidget));
+#line 217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = self->priv->format_combo;
+#line 217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_control (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget), 1, 0);
+#line 219 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = _ ("_Quality:");
+#line 219 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = self->priv->quality_combo;
+#line 219 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_label (self, _tmp47_, 0, 1, G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_widget_get_type (), GtkWidget));
+#line 220 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = self->priv->quality_combo;
+#line 220 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_control (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_widget_get_type (), GtkWidget), 1, 1);
+#line 222 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = _ ("_Scaling constraint:");
+#line 222 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = self->priv->constraint_combo;
+#line 222 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_label (self, _tmp50_, 0, 2, G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, gtk_widget_get_type (), GtkWidget));
+#line 223 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = self->priv->constraint_combo;
+#line 223 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_control (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, gtk_widget_get_type (), GtkWidget), 1, 2);
+#line 225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = _ ("_Pixels:");
+#line 225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = self->priv->pixels_entry;
+#line 225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_label (self, _tmp53_, 0, 3, G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, gtk_widget_get_type (), GtkWidget));
+#line 226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = self->priv->pixels_entry;
+#line 226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_control (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, gtk_widget_get_type (), GtkWidget), 1, 3);
+#line 228 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = _ ("Export metadata");
+#line 228 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp56_);
+#line 228 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp57_);
+#line 228 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->export_metadata);
+#line 228 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->export_metadata = _tmp57_;
+#line 229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = self->priv->export_metadata;
+#line 229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_add_control (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, gtk_widget_get_type (), GtkWidget), 1, 4);
+#line 230 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = self->priv->export_metadata;
+#line 230 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 232 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp60_ = self->priv->table;
+#line 232 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_grid_set_row_spacing (_tmp60_, (guint) 5);
+#line 233 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = self->priv->table;
+#line 233 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_grid_set_column_spacing (_tmp61_, (guint) 5);
+#line 234 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = self->priv->table;
+#line 234 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, gtk_container_get_type (), GtkContainer), (guint) 3);
+#line 236 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 236 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = self->priv->table;
+#line 236 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, gtk_box_get_type (), GtkBox), gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_widget_get_type (), GtkWidget));
+#line 239 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_CANCEL_LABEL, (gint) GTK_RESPONSE_CANCEL);
+#line 240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_OK_LABEL, (gint) GTK_RESPONSE_OK);
+#line 240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = _g_object_ref0 (_tmp65_);
+#line 240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->ok_button);
+#line 240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->ok_button = _tmp66_;
+#line 241 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
+#line 243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = self->priv->ok_button;
+#line 243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_can_default (_tmp67_, TRUE);
+#line 244 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = self->priv->ok_button;
+#line 244 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_set (_tmp68_, "has-default", TRUE, NULL);
+#line 245 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = self->priv->ok_button;
+#line 245 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_default (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp69_);
+#line 247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = export_dialog_current_constraint;
+#line 247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp70_ == SCALE_CONSTRAINT_ORIGINAL) {
+#line 2838 "Dialogs.c"
+ GtkEntry* _tmp71_ = NULL;
+ GtkComboBoxText* _tmp72_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = self->priv->pixels_entry;
+#line 248 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp72_ = self->priv->quality_combo;
+#line 249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 2849 "Dialogs.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp73_ = self->priv->ok_button;
+#line 252 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_grab_focus (_tmp73_);
+#line 171 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 2857 "Dialogs.c"
+}
+
+
+ExportDialog* export_dialog_new (const gchar* title) {
+#line 171 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return export_dialog_construct (TYPE_EXPORT_DIALOG, title);
+#line 2864 "Dialogs.c"
+}
+
+
+static void export_dialog_format_add_option (ExportDialog* self, const gchar* format_name) {
+ GeeArrayList* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 255 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (format_name != NULL);
+#line 256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->format_options;
+#line 256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = format_name;
+#line 256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->format_combo;
+#line 257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = format_name;
+#line 257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp2_, _tmp3_);
+#line 2889 "Dialogs.c"
+}
+
+
+static void export_dialog_format_set_active_text (ExportDialog* self, const gchar* text) {
+ gint selection_ticker = 0;
+ const gchar* _tmp16_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 260 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (text != NULL);
+#line 261 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ selection_ticker = 0;
+#line 2902 "Dialogs.c"
+ {
+ GeeArrayList* _current_text_list = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _current_text_size = 0;
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _current_text_index = 0;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->format_options;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _current_text_list = _tmp1_;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _current_text_list;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _current_text_size = _tmp4_;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _current_text_index = -1;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 2930 "Dialogs.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gchar* current_text = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gint _tmp15_ = 0;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _current_text_index;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _current_text_index = _tmp5_ + 1;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _current_text_index;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _current_text_size;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 2953 "Dialogs.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _current_text_list;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _current_text_index;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp9_);
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_text = (gchar*) _tmp10_;
+#line 264 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = current_text;
+#line 264 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = text;
+#line 264 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_strcmp0 (_tmp11_, _tmp12_) == 0) {
+#line 2969 "Dialogs.c"
+ GtkComboBoxText* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+#line 265 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->format_combo;
+#line 265 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = selection_ticker;
+#line 265 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_combo_box_get_type (), GtkComboBox), _tmp14_);
+#line 266 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_text);
+#line 266 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_current_text_list);
+#line 266 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 2984 "Dialogs.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = selection_ticker;
+#line 268 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ selection_ticker = _tmp15_ + 1;
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_text);
+#line 2992 "Dialogs.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_current_text_list);
+#line 2996 "Dialogs.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = text;
+#line 271 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_error ("Dialogs.vala:271: format_set_active_text: text '%s' isn't in combo box", _tmp16_);
+#line 3002 "Dialogs.c"
+}
+
+
+static PhotoFileFormat export_dialog_get_specified_format (ExportDialog* self) {
+ PhotoFileFormat result = 0;
+ gint index = 0;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ PhotoFileFormat* writeable_formats = NULL;
+ gint _tmp4_ = 0;
+ PhotoFileFormat* _tmp5_ = NULL;
+ gint writeable_formats_length1 = 0;
+ gint _writeable_formats_size_ = 0;
+ gint _tmp6_ = 0;
+ PhotoFileFormat _tmp7_ = 0;
+#line 274 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_EXPORT_DIALOG (self), 0);
+#line 275 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->format_combo;
+#line 275 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox));
+#line 275 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ index = _tmp1_;
+#line 276 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = index;
+#line 276 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_ < EXPORT_DIALOG_NUM_SPECIAL_FORMATS) {
+#line 277 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ index = EXPORT_DIALOG_NUM_SPECIAL_FORMATS;
+#line 3034 "Dialogs.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = index;
+#line 279 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ index = _tmp3_ - EXPORT_DIALOG_NUM_SPECIAL_FORMATS;
+#line 280 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = photo_file_format_get_writeable (&_tmp4_);
+#line 280 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ writeable_formats = _tmp5_;
+#line 280 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ writeable_formats_length1 = _tmp4_;
+#line 280 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _writeable_formats_size_ = writeable_formats_length1;
+#line 281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = index;
+#line 281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = writeable_formats[_tmp6_];
+#line 281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp7_;
+#line 281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ writeable_formats = (g_free (writeable_formats), NULL);
+#line 281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 3058 "Dialogs.c"
+}
+
+
+static gchar* export_dialog_get_label_for_parameters (ExportDialog* self, ExportFormatParameters* params) {
+ gchar* result = NULL;
+ ExportFormatParameters _tmp0_ = {0};
+ ExportFormatMode _tmp1_ = 0;
+#line 284 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_EXPORT_DIALOG (self), NULL);
+#line 284 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (params != NULL, NULL);
+#line 285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = *params;
+#line 285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_.mode;
+#line 285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ switch (_tmp1_) {
+#line 285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ case EXPORT_FORMAT_MODE_UNMODIFIED:
+#line 3078 "Dialogs.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = g_strdup (EXPORT_DIALOG_UNMODIFIED_FORMAT_LABEL);
+#line 287 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp2_;
+#line 287 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 3087 "Dialogs.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ case EXPORT_FORMAT_MODE_CURRENT:
+#line 3091 "Dialogs.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 290 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = g_strdup (EXPORT_DIALOG_CURRENT_FORMAT_LABEL);
+#line 290 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp3_;
+#line 290 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 3100 "Dialogs.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ case EXPORT_FORMAT_MODE_SPECIFIED:
+#line 3104 "Dialogs.c"
+ {
+ ExportFormatParameters _tmp4_ = {0};
+ PhotoFileFormat _tmp5_ = 0;
+ PhotoFileFormatProperties* _tmp6_ = NULL;
+ PhotoFileFormatProperties* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = *params;
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_.specified_format;
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = photo_file_format_get_properties (_tmp5_);
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = photo_file_format_properties_get_user_visible_name (_tmp7_);
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _photo_file_format_properties_unref0 (_tmp7_);
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp9_;
+#line 293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 3130 "Dialogs.c"
+ }
+ default:
+ {
+#line 296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_error ("Dialogs.vala:296: get_label_for_parameters: unrecognized export format" \
+" mode");
+#line 3136 "Dialogs.c"
+ }
+ }
+}
+
+
+gboolean export_dialog_execute (ExportDialog* self, gint* scale, ScaleConstraint* constraint, ExportFormatParameters* parameters) {
+ gint _vala_scale = 0;
+ ScaleConstraint _vala_constraint = 0;
+ gboolean result = FALSE;
+ ExportFormatParameters _tmp0_ = {0};
+ ExportFormatMode _tmp1_ = 0;
+ ExportFormatParameters _tmp4_ = {0};
+ ExportFormatMode _tmp5_ = 0;
+ ExportFormatParameters _tmp14_ = {0};
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gboolean ok = FALSE;
+ gint _tmp17_ = 0;
+ gboolean _tmp18_ = FALSE;
+#line 303 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_EXPORT_DIALOG (self), FALSE);
+#line 303 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (parameters != NULL, FALSE);
+#line 305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = *parameters;
+#line 309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_.mode;
+#line 309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_ != EXPORT_FORMAT_MODE_LAST) {
+#line 3168 "Dialogs.c"
+ ScaleConstraint _tmp2_ = 0;
+ GtkComboBoxText* _tmp3_ = NULL;
+#line 310 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_constraint = SCALE_CONSTRAINT_ORIGINAL;
+#line 310 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _vala_constraint;
+#line 310 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_constraint = _tmp2_;
+#line 311 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->constraint_combo;
+#line 311 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 3181 "Dialogs.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = *parameters;
+#line 314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_.mode;
+#line 314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_ == EXPORT_FORMAT_MODE_LAST) {
+#line 3189 "Dialogs.c"
+ ExportFormatParameters _tmp6_ = {0};
+#line 315 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = export_dialog_current_parameters;
+#line 315 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *parameters = _tmp6_;
+#line 3195 "Dialogs.c"
+ } else {
+ gboolean _tmp7_ = FALSE;
+ ExportFormatParameters _tmp8_ = {0};
+ ExportFormatMode _tmp9_ = 0;
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = *parameters;
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_.mode;
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_ == EXPORT_FORMAT_MODE_SPECIFIED) {
+#line 3206 "Dialogs.c"
+ ExportFormatParameters _tmp10_ = {0};
+ PhotoFileFormat _tmp11_ = 0;
+ gboolean _tmp12_ = FALSE;
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = *parameters;
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_.specified_format;
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = photo_file_format_can_write (_tmp11_);
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = !_tmp12_;
+#line 3218 "Dialogs.c"
+ } else {
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = FALSE;
+#line 3222 "Dialogs.c"
+ }
+#line 316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp7_) {
+#line 3226 "Dialogs.c"
+ PhotoFileFormat _tmp13_ = 0;
+#line 317 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = photo_file_format_get_system_default_format ();
+#line 317 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*parameters).specified_format = _tmp13_;
+#line 3232 "Dialogs.c"
+ }
+ }
+#line 319 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = *parameters;
+#line 319 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = export_dialog_get_label_for_parameters (self, &_tmp14_);
+#line 319 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_;
+#line 319 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_format_set_active_text (self, _tmp16_);
+#line 319 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp16_);
+#line 320 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_on_format_changed (self);
+#line 322 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 322 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ok = _tmp17_ == ((gint) GTK_RESPONSE_OK);
+#line 323 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = ok;
+#line 323 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp18_) {
+#line 3255 "Dialogs.c"
+ gint index = 0;
+ GtkComboBoxText* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ ScaleConstraint _tmp23_ = 0;
+ ScaleConstraint _tmp24_ = 0;
+ GtkEntry* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ ScaleConstraint _tmp28_ = 0;
+ gint _tmp30_ = 0;
+ gboolean _tmp31_ = FALSE;
+ GtkCheckButton* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ gboolean _tmp34_ = FALSE;
+ GtkComboBoxText* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+#line 324 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = self->priv->constraint_combo;
+#line 324 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_combo_box_get_type (), GtkComboBox));
+#line 324 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ index = _tmp20_;
+#line 325 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = index;
+#line 325 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_assert (_tmp21_ >= 0, "index >= 0");
+#line 326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = index;
+#line 326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = EXPORT_DIALOG_CONSTRAINT_ARRAY[_tmp22_];
+#line 326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_constraint = _tmp23_;
+#line 327 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = _vala_constraint;
+#line 327 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_constraint = _tmp24_;
+#line 329 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = self->priv->pixels_entry;
+#line 329 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = gtk_entry_get_text (_tmp25_);
+#line 329 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = atoi (_tmp26_);
+#line 329 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_scale = _tmp27_;
+#line 330 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = _vala_constraint;
+#line 330 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp28_ != SCALE_CONSTRAINT_ORIGINAL) {
+#line 3308 "Dialogs.c"
+ gint _tmp29_ = 0;
+#line 331 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = _vala_scale;
+#line 331 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_assert (_tmp29_ > 0, "scale > 0");
+#line 3314 "Dialogs.c"
+ }
+#line 332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = _vala_scale;
+#line 332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_scale = _tmp30_;
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = self->priv->export_metadata;
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = gtk_widget_get_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget));
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = _tmp33_;
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp34_) {
+#line 3328 "Dialogs.c"
+ GtkCheckButton* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ gboolean _tmp37_ = FALSE;
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = self->priv->export_metadata;
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = _tmp36_;
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = _tmp37_;
+#line 3340 "Dialogs.c"
+ } else {
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = FALSE;
+#line 3344 "Dialogs.c"
+ }
+#line 334 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*parameters).export_metadata = _tmp31_;
+#line 336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = self->priv->format_combo;
+#line 336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = gtk_combo_box_text_get_active_text (_tmp38_);
+#line 336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = _tmp39_;
+#line 336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = g_strcmp0 (_tmp40_, EXPORT_DIALOG_UNMODIFIED_FORMAT_LABEL) == 0;
+#line 336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp40_);
+#line 336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp41_) {
+#line 3360 "Dialogs.c"
+ ExportFormatMode _tmp42_ = 0;
+#line 337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_parameters.mode = EXPORT_FORMAT_MODE_UNMODIFIED;
+#line 337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = export_dialog_current_parameters.mode;
+#line 337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*parameters).mode = _tmp42_;
+#line 3368 "Dialogs.c"
+ } else {
+ GtkComboBoxText* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+#line 338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = self->priv->format_combo;
+#line 338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = gtk_combo_box_text_get_active_text (_tmp43_);
+#line 338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = _tmp44_;
+#line 338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = g_strcmp0 (_tmp45_, EXPORT_DIALOG_CURRENT_FORMAT_LABEL) == 0;
+#line 338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp45_);
+#line 338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp46_) {
+#line 3386 "Dialogs.c"
+ ExportFormatMode _tmp47_ = 0;
+#line 339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_parameters.mode = EXPORT_FORMAT_MODE_CURRENT;
+#line 339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = export_dialog_current_parameters.mode;
+#line 339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*parameters).mode = _tmp47_;
+#line 3394 "Dialogs.c"
+ } else {
+ ExportFormatMode _tmp48_ = 0;
+ PhotoFileFormat _tmp49_ = 0;
+ PhotoFileFormat _tmp50_ = 0;
+ ExportFormatParameters _tmp51_ = {0};
+ PhotoFileFormat _tmp52_ = 0;
+#line 341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_parameters.mode = EXPORT_FORMAT_MODE_SPECIFIED;
+#line 341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = export_dialog_current_parameters.mode;
+#line 341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*parameters).mode = _tmp48_;
+#line 342 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = export_dialog_get_specified_format (self);
+#line 342 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_parameters.specified_format = _tmp49_;
+#line 342 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = export_dialog_current_parameters.specified_format;
+#line 342 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*parameters).specified_format = _tmp50_;
+#line 343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = export_dialog_current_parameters;
+#line 343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = _tmp51_.specified_format;
+#line 343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp52_ == PHOTO_FILE_FORMAT_JFIF) {
+#line 3421 "Dialogs.c"
+ GtkComboBoxText* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ JpegQuality _tmp55_ = 0;
+ JpegQuality _tmp56_ = 0;
+#line 344 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = self->priv->quality_combo;
+#line 344 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_combo_box_get_type (), GtkComboBox));
+#line 344 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = EXPORT_DIALOG_QUALITY_ARRAY[_tmp54_];
+#line 344 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_parameters.quality = _tmp55_;
+#line 344 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = export_dialog_current_parameters.quality;
+#line 344 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*parameters).quality = _tmp56_;
+#line 3438 "Dialogs.c"
+ }
+ }
+ }
+ } else {
+#line 347 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_scale = 0;
+#line 348 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_constraint = SCALE_CONSTRAINT_ORIGINAL;
+#line 3447 "Dialogs.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 353 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = ok;
+#line 353 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (scale) {
+#line 353 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *scale = _vala_scale;
+#line 3457 "Dialogs.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (constraint) {
+#line 353 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *constraint = _vala_constraint;
+#line 3463 "Dialogs.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 3467 "Dialogs.c"
+}
+
+
+static void export_dialog_add_label (ExportDialog* self, const gchar* text, gint x, gint y, GtkWidget* widget) {
+ GtkAlignment* left_aligned = NULL;
+ GtkAlignment* _tmp0_ = NULL;
+ GtkLabel* new_label = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkLabel* _tmp2_ = NULL;
+ GtkLabel* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ GtkAlignment* _tmp7_ = NULL;
+ GtkLabel* _tmp8_ = NULL;
+ GtkGrid* _tmp9_ = NULL;
+ GtkAlignment* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (text != NULL);
+#line 356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail ((widget == NULL) || GTK_IS_WIDGET (widget));
+#line 357 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 1, 0.5f, (gfloat) 0, (gfloat) 0);
+#line 357 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp0_);
+#line 357 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ left_aligned = _tmp0_;
+#line 359 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = text;
+#line 359 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp1_);
+#line 359 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp2_);
+#line 359 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ new_label = _tmp2_;
+#line 360 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = new_label;
+#line 360 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_use_underline (_tmp3_, TRUE);
+#line 362 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = widget;
+#line 362 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp4_ != NULL) {
+#line 3513 "Dialogs.c"
+ GtkLabel* _tmp5_ = NULL;
+ GtkWidget* _tmp6_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = new_label;
+#line 363 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = widget;
+#line 363 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_mnemonic_widget (_tmp5_, _tmp6_);
+#line 3522 "Dialogs.c"
+ }
+#line 365 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = left_aligned;
+#line 365 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = new_label;
+#line 365 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
+#line 367 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->table;
+#line 367 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = left_aligned;
+#line 367 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = x;
+#line 367 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = y;
+#line 367 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_grid_attach (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), _tmp11_, _tmp12_, 1, 1);
+#line 356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (new_label);
+#line 356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (left_aligned);
+#line 3544 "Dialogs.c"
+}
+
+
+static void export_dialog_add_control (ExportDialog* self, GtkWidget* widget, gint x, gint y) {
+ GtkAlignment* left_aligned = NULL;
+ GtkAlignment* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GtkGrid* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, 0.5f, (gfloat) 1, (gfloat) 0);
+#line 371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp0_);
+#line 371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ left_aligned = _tmp0_;
+#line 372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = widget;
+#line 372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (left_aligned, gtk_container_get_type (), GtkContainer), _tmp1_);
+#line 374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->table;
+#line 374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = x;
+#line 374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = y;
+#line 374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_grid_attach (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (left_aligned, gtk_widget_get_type (), GtkWidget), _tmp3_, _tmp4_, 1, 1);
+#line 370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (left_aligned);
+#line 3579 "Dialogs.c"
+}
+
+
+static void export_dialog_on_constraint_changed (ExportDialog* self) {
+ gboolean original = FALSE;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ ScaleConstraint _tmp2_ = 0;
+ gboolean jpeg = FALSE;
+ GtkComboBoxText* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ PhotoFileFormatProperties* _tmp6_ = NULL;
+ PhotoFileFormatProperties* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GtkEntry* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ GtkComboBoxText* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 377 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->constraint_combo;
+#line 378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox));
+#line 378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = EXPORT_DIALOG_CONSTRAINT_ARRAY[_tmp1_];
+#line 378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ original = _tmp2_ == SCALE_CONSTRAINT_ORIGINAL;
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->format_combo;
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_combo_box_text_get_active_text (_tmp3_);
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = photo_file_format_get_properties (PHOTO_FILE_FORMAT_JFIF);
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = photo_file_format_properties_get_user_visible_name (_tmp7_);
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = g_strcmp0 (_tmp5_, _tmp9_) == 0;
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp9_);
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _photo_file_format_properties_unref0 (_tmp7_);
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp5_);
+#line 379 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ jpeg = _tmp10_;
+#line 381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->pixels_entry;
+#line 381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = original;
+#line 381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), !_tmp12_);
+#line 382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = original;
+#line 382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp14_) {
+#line 3647 "Dialogs.c"
+ gboolean _tmp15_ = FALSE;
+#line 382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = jpeg;
+#line 382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp15_;
+#line 3653 "Dialogs.c"
+ } else {
+#line 382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = FALSE;
+#line 3657 "Dialogs.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->quality_combo;
+#line 382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), _tmp13_);
+#line 383 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = original;
+#line 383 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp17_) {
+#line 3667 "Dialogs.c"
+ GtkWidget* _tmp18_ = NULL;
+#line 384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->ok_button;
+#line 384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (_tmp18_, TRUE);
+#line 3673 "Dialogs.c"
+ } else {
+#line 386 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_on_pixels_changed (self);
+#line 3677 "Dialogs.c"
+ }
+}
+
+
+static void export_dialog_on_format_changed (ExportDialog* self) {
+ gboolean original = FALSE;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ ScaleConstraint _tmp2_ = 0;
+ GtkComboBoxText* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 389 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->constraint_combo;
+#line 390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox));
+#line 390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = EXPORT_DIALOG_CONSTRAINT_ARRAY[_tmp1_];
+#line 390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ original = _tmp2_ == SCALE_CONSTRAINT_ORIGINAL;
+#line 392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->format_combo;
+#line 392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_combo_box_text_get_active_text (_tmp3_);
+#line 392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = g_strcmp0 (_tmp5_, EXPORT_DIALOG_UNMODIFIED_FORMAT_LABEL) == 0;
+#line 392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp5_);
+#line 392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp6_) {
+#line 3713 "Dialogs.c"
+ GtkComboBoxText* _tmp7_ = NULL;
+ GtkComboBoxText* _tmp8_ = NULL;
+ GtkComboBoxText* _tmp9_ = NULL;
+ GtkEntry* _tmp10_ = NULL;
+ GtkCheckButton* _tmp11_ = NULL;
+ GtkCheckButton* _tmp12_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->constraint_combo;
+#line 397 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 398 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->constraint_combo;
+#line 398 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 399 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->quality_combo;
+#line 399 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 400 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->pixels_entry;
+#line 400 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 401 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->export_metadata;
+#line 401 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_toggle_button_get_type (), GtkToggleButton), FALSE);
+#line 402 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->export_metadata;
+#line 402 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 3744 "Dialogs.c"
+ } else {
+ GtkComboBoxText* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->format_combo;
+#line 403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = gtk_combo_box_text_get_active_text (_tmp13_);
+#line 403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = _tmp14_;
+#line 403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = g_strcmp0 (_tmp15_, EXPORT_DIALOG_CURRENT_FORMAT_LABEL) == 0;
+#line 403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp15_);
+#line 403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp16_) {
+#line 3762 "Dialogs.c"
+ GtkComboBoxText* _tmp17_ = NULL;
+ GtkComboBoxText* _tmp18_ = NULL;
+ GtkEntry* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ GtkCheckButton* _tmp21_ = NULL;
+#line 410 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->constraint_combo;
+#line 410 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 411 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->quality_combo;
+#line 411 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 412 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = self->priv->pixels_entry;
+#line 412 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = original;
+#line 412 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), !_tmp20_);
+#line 413 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->priv->export_metadata;
+#line 413 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 3786 "Dialogs.c"
+ } else {
+ GtkComboBoxText* _tmp22_ = NULL;
+ gboolean jpeg = FALSE;
+ PhotoFileFormat _tmp23_ = 0;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ GtkComboBoxText* _tmp27_ = NULL;
+ GtkCheckButton* _tmp28_ = NULL;
+#line 418 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->priv->constraint_combo;
+#line 418 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 419 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = export_dialog_get_specified_format (self);
+#line 419 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ jpeg = _tmp23_ == PHOTO_FILE_FORMAT_JFIF;
+#line 420 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = original;
+#line 420 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp25_) {
+#line 3807 "Dialogs.c"
+ gboolean _tmp26_ = FALSE;
+#line 420 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = jpeg;
+#line 420 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = _tmp26_;
+#line 3813 "Dialogs.c"
+ } else {
+#line 420 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = FALSE;
+#line 3817 "Dialogs.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = self->priv->quality_combo;
+#line 420 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), _tmp24_);
+#line 421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = self->priv->export_metadata;
+#line 421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 3827 "Dialogs.c"
+ }
+ }
+}
+
+
+static void export_dialog_on_activate (ExportDialog* self) {
+#line 425 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 426 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
+#line 3838 "Dialogs.c"
+}
+
+
+static void export_dialog_on_pixels_changed (ExportDialog* self) {
+ gboolean _tmp0_ = FALSE;
+ GtkEntry* _tmp1_ = NULL;
+ guint16 _tmp2_ = 0U;
+ GtkWidget* _tmp6_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->pixels_entry;
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_entry_get_text_length (_tmp1_);
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (((gint) _tmp2_) > 0) {
+#line 3855 "Dialogs.c"
+ GtkEntry* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->pixels_entry;
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_entry_get_text (_tmp3_);
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = atoi (_tmp4_);
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp5_ > 0;
+#line 3867 "Dialogs.c"
+ } else {
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = FALSE;
+#line 3871 "Dialogs.c"
+ }
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->ok_button;
+#line 430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (_tmp6_, _tmp0_);
+#line 3877 "Dialogs.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3895 "Dialogs.c"
+}
+
+
+static void export_dialog_on_pixels_insert_text (ExportDialog* self, const gchar* text, gint length, gint* position) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gchar* new_text = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ GtkEntry* _tmp29_ = NULL;
+#line 433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_EXPORT_DIALOG (self));
+#line 433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (text != NULL);
+#line 435 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->in_insert;
+#line 435 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 436 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 3918 "Dialogs.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->in_insert = TRUE;
+#line 440 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = length;
+#line 440 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_ == -1) {
+#line 3926 "Dialogs.c"
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = text;
+#line 441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = strlen (_tmp2_);
+#line 441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ length = (gint) _tmp4_;
+#line 3938 "Dialogs.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = g_strdup ("");
+#line 444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ new_text = _tmp5_;
+#line 3944 "Dialogs.c"
+ {
+ gint ctr = 0;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = 0;
+#line 3949 "Dialogs.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = TRUE;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 3956 "Dialogs.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar _tmp12_ = '\0';
+ gboolean _tmp13_ = FALSE;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp6_) {
+#line 3965 "Dialogs.c"
+ gint _tmp7_ = 0;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = ctr;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = _tmp7_ + 1;
+#line 3971 "Dialogs.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = FALSE;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = ctr;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = length;
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 445 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 3983 "Dialogs.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = text;
+#line 446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = ctr;
+#line 446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = string_get (_tmp10_, (glong) _tmp11_);
+#line 446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = g_ascii_isdigit (_tmp12_);
+#line 446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp13_) {
+#line 3995 "Dialogs.c"
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gchar _tmp17_ = '\0';
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = new_text;
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = text;
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = ctr;
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = string_get (_tmp15_, (glong) _tmp16_);
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = g_strdup_printf ("%c", (gchar) _tmp17_);
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp18_;
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = g_strconcat (_tmp14_, _tmp19_, NULL);
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (new_text);
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ new_text = _tmp20_;
+#line 447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp19_);
+#line 4023 "Dialogs.c"
+ }
+ }
+ }
+ }
+#line 451 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = new_text;
+#line 451 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = strlen (_tmp21_);
+#line 451 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = _tmp22_;
+#line 451 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp23_ > 0) {
+#line 4036 "Dialogs.c"
+ GtkEntry* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+#line 452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = self->priv->pixels_entry;
+#line 452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = new_text;
+#line 452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = new_text;
+#line 452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = strlen (_tmp26_);
+#line 452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = _tmp27_;
+#line 452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_editable_insert_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GTK_TYPE_EDITABLE, GtkEditable), _tmp25_, (gint) _tmp28_, position);
+#line 4054 "Dialogs.c"
+ }
+#line 454 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = self->priv->pixels_entry;
+#line 454 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_stop_emission_by_name (_tmp29_, "insert-text");
+#line 456 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->in_insert = FALSE;
+#line 433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (new_text);
+#line 4064 "Dialogs.c"
+}
+
+
+static void export_dialog_class_init (ExportDialogClass * klass) {
+ ExportFormatParameters _tmp0_ = {0};
+#line 141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (ExportDialogPrivate));
+#line 141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (klass)->finalize = export_dialog_finalize;
+#line 158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_format_parameters_current (&_tmp0_);
+#line 158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_parameters = _tmp0_;
+#line 159 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ export_dialog_current_scale = EXPORT_DIALOG_DEFAULT_SCALE;
+#line 4082 "Dialogs.c"
+}
+
+
+static void export_dialog_instance_init (ExportDialog * self) {
+ GtkGrid* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = EXPORT_DIALOG_GET_PRIVATE (self);
+#line 161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = (GtkGrid*) gtk_grid_new ();
+#line 161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp0_);
+#line 161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->table = _tmp0_;
+#line 166 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 166 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->format_options = _tmp1_;
+#line 169 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->in_insert = FALSE;
+#line 4103 "Dialogs.c"
+}
+
+
+static void export_dialog_finalize (GObject* obj) {
+ ExportDialog * self;
+#line 141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXPORT_DIALOG, ExportDialog);
+#line 161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->table);
+#line 162 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->quality_combo);
+#line 163 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->constraint_combo);
+#line 164 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->format_combo);
+#line 165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->export_metadata);
+#line 166 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->format_options);
+#line 167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->pixels_entry);
+#line 168 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->ok_button);
+#line 141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (export_dialog_parent_class)->finalize (obj);
+#line 4129 "Dialogs.c"
+}
+
+
+GType export_dialog_get_type (void) {
+ static volatile gsize export_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&export_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ExportDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) export_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExportDialog), 0, (GInstanceInitFunc) export_dialog_instance_init, NULL };
+ GType export_dialog_type_id;
+ export_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "ExportDialog", &g_define_type_info, 0);
+ g_once_init_leave (&export_dialog_type_id__volatile, export_dialog_type_id);
+ }
+ return export_dialog_type_id__volatile;
+}
+
+
+gchar* import_ui_generate_import_failure_list (GeeList* failed, gboolean show_dest_id) {
+ gchar* result = NULL;
+ GeeList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar* list = NULL;
+ gchar* _tmp3_ = NULL;
+ gint remaining = 0;
+ GeeList* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+#line 466 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GEE_IS_LIST (failed), NULL);
+#line 467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = failed;
+#line 467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_ == 0) {
+#line 468 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = NULL;
+#line 468 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4171 "Dialogs.c"
+ }
+#line 470 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = g_strdup ("");
+#line 470 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ list = _tmp3_;
+#line 4177 "Dialogs.c"
+ {
+ gint ctr = 0;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = 0;
+#line 4182 "Dialogs.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = TRUE;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 4189 "Dialogs.c"
+ gboolean _tmp6_ = FALSE;
+ gint _tmp7_ = 0;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp4_) {
+#line 4200 "Dialogs.c"
+ gint _tmp5_ = 0;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = ctr;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ctr = _tmp5_ + 1;
+#line 4206 "Dialogs.c"
+ }
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = FALSE;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = ctr;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp7_ < IMPORT_UI_REPORT_FAILURE_COUNT) {
+#line 4214 "Dialogs.c"
+ gint _tmp8_ = 0;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = ctr;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = failed;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp8_ < _tmp11_;
+#line 4229 "Dialogs.c"
+ } else {
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = FALSE;
+#line 4233 "Dialogs.c"
+ }
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp6_) {
+#line 471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 4239 "Dialogs.c"
+ }
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = show_dest_id;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp13_) {
+#line 4245 "Dialogs.c"
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gpointer _tmp16_ = NULL;
+ BatchImportResult* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = failed;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = ctr;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = gee_list_get (_tmp14_, _tmp15_);
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = (BatchImportResult*) _tmp16_;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp17_->dest_identifier;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp18_;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_tmp17_);
+#line 4265 "Dialogs.c"
+ } else {
+ GeeList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gpointer _tmp21_ = NULL;
+ BatchImportResult* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = failed;
+#line 473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = ctr;
+#line 473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = gee_list_get (_tmp19_, _tmp20_);
+#line 473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = (BatchImportResult*) _tmp21_;
+#line 473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = _tmp22_->src_identifier;
+#line 473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp23_;
+#line 473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_tmp22_);
+#line 4286 "Dialogs.c"
+ }
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = list;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = g_strdup_printf ("%s\n", _tmp12_);
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = _tmp25_;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = g_strconcat (_tmp24_, _tmp26_, NULL);
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (list);
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ list = _tmp27_;
+#line 472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp26_);
+#line 4302 "Dialogs.c"
+ }
+ }
+ }
+#line 476 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = failed;
+#line 476 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 476 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = _tmp29_;
+#line 476 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ remaining = _tmp30_ - IMPORT_UI_REPORT_FAILURE_COUNT;
+#line 477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = remaining;
+#line 477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp31_ > 0) {
+#line 4318 "Dialogs.c"
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = list;
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = _ ("(and %d more)\n");
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = remaining;
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = g_strdup_printf (_tmp33_, _tmp34_);
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = _tmp35_;
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = g_strconcat (_tmp32_, _tmp36_, NULL);
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (list);
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ list = _tmp37_;
+#line 478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp36_);
+#line 4343 "Dialogs.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = list;
+#line 480 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4349 "Dialogs.c"
+}
+
+
+ImportUIQuestionParams* import_ui_question_params_construct (GType object_type, const gchar* question, const gchar* yes_button, const gchar* no_button) {
+ ImportUIQuestionParams* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (question != NULL, NULL);
+#line 488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (yes_button != NULL, NULL);
+#line 488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (no_button != NULL, NULL);
+#line 488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (ImportUIQuestionParams*) g_type_create_instance (object_type);
+#line 489 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = question;
+#line 489 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 489 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->question);
+#line 489 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->question = _tmp1_;
+#line 490 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = yes_button;
+#line 490 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 490 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->yes_button);
+#line 490 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->yes_button = _tmp3_;
+#line 491 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = no_button;
+#line 491 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 491 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->no_button);
+#line 491 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->no_button = _tmp5_;
+#line 488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 4395 "Dialogs.c"
+}
+
+
+ImportUIQuestionParams* import_ui_question_params_new (const gchar* question, const gchar* yes_button, const gchar* no_button) {
+#line 488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return import_ui_question_params_construct (IMPORT_UI_TYPE_QUESTION_PARAMS, question, yes_button, no_button);
+#line 4402 "Dialogs.c"
+}
+
+
+static void import_ui_value_question_params_init (GValue* value) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 4409 "Dialogs.c"
+}
+
+
+static void import_ui_value_question_params_free_value (GValue* value) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (value->data[0].v_pointer) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ import_ui_question_params_unref (value->data[0].v_pointer);
+#line 4418 "Dialogs.c"
+ }
+}
+
+
+static void import_ui_value_question_params_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (src_value->data[0].v_pointer) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = import_ui_question_params_ref (src_value->data[0].v_pointer);
+#line 4428 "Dialogs.c"
+ } else {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4432 "Dialogs.c"
+ }
+}
+
+
+static gpointer import_ui_value_question_params_peek_pointer (const GValue* value) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 4440 "Dialogs.c"
+}
+
+
+static gchar* import_ui_value_question_params_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (collect_values[0].v_pointer) {
+#line 4447 "Dialogs.c"
+ ImportUIQuestionParams* object;
+ object = collect_values[0].v_pointer;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4454 "Dialogs.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4458 "Dialogs.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = import_ui_question_params_ref (object);
+#line 4462 "Dialogs.c"
+ } else {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 4466 "Dialogs.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 4470 "Dialogs.c"
+}
+
+
+static gchar* import_ui_value_question_params_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ImportUIQuestionParams** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!object_p) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4481 "Dialogs.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!value->data[0].v_pointer) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = NULL;
+#line 4487 "Dialogs.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4491 "Dialogs.c"
+ } else {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = import_ui_question_params_ref (value->data[0].v_pointer);
+#line 4495 "Dialogs.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 4499 "Dialogs.c"
+}
+
+
+GParamSpec* import_ui_param_spec_question_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ImportUIParamSpecQuestionParams* spec;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, IMPORT_UI_TYPE_QUESTION_PARAMS), NULL);
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return G_PARAM_SPEC (spec);
+#line 4513 "Dialogs.c"
+}
+
+
+gpointer import_ui_value_get_question_params (const GValue* value) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, IMPORT_UI_TYPE_QUESTION_PARAMS), NULL);
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 4522 "Dialogs.c"
+}
+
+
+void import_ui_value_set_question_params (GValue* value, gpointer v_object) {
+ ImportUIQuestionParams* old;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, IMPORT_UI_TYPE_QUESTION_PARAMS));
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, IMPORT_UI_TYPE_QUESTION_PARAMS));
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ import_ui_question_params_ref (value->data[0].v_pointer);
+#line 4542 "Dialogs.c"
+ } else {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 4546 "Dialogs.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ import_ui_question_params_unref (old);
+#line 4552 "Dialogs.c"
+ }
+}
+
+
+void import_ui_value_take_question_params (GValue* value, gpointer v_object) {
+ ImportUIQuestionParams* old;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, IMPORT_UI_TYPE_QUESTION_PARAMS));
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, IMPORT_UI_TYPE_QUESTION_PARAMS));
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 4571 "Dialogs.c"
+ } else {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 4575 "Dialogs.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ import_ui_question_params_unref (old);
+#line 4581 "Dialogs.c"
+ }
+}
+
+
+static void import_ui_question_params_class_init (ImportUIQuestionParamsClass * klass) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ import_ui_question_params_parent_class = g_type_class_peek_parent (klass);
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((ImportUIQuestionParamsClass *) klass)->finalize = import_ui_question_params_finalize;
+#line 4591 "Dialogs.c"
+}
+
+
+static void import_ui_question_params_instance_init (ImportUIQuestionParams * self) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->ref_count = 1;
+#line 4598 "Dialogs.c"
+}
+
+
+static void import_ui_question_params_finalize (ImportUIQuestionParams* obj) {
+ ImportUIQuestionParams * self;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParams);
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_destroy (self);
+#line 484 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->question);
+#line 485 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->yes_button);
+#line 486 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->no_button);
+#line 4614 "Dialogs.c"
+}
+
+
+GType import_ui_question_params_get_type (void) {
+ static volatile gsize import_ui_question_params_type_id__volatile = 0;
+ if (g_once_init_enter (&import_ui_question_params_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { import_ui_value_question_params_init, import_ui_value_question_params_free_value, import_ui_value_question_params_copy_value, import_ui_value_question_params_peek_pointer, "p", import_ui_value_question_params_collect_value, "p", import_ui_value_question_params_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ImportUIQuestionParamsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_ui_question_params_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportUIQuestionParams), 0, (GInstanceInitFunc) import_ui_question_params_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType import_ui_question_params_type_id;
+ import_ui_question_params_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ImportUIQuestionParams", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&import_ui_question_params_type_id__volatile, import_ui_question_params_type_id);
+ }
+ return import_ui_question_params_type_id__volatile;
+}
+
+
+gpointer import_ui_question_params_ref (gpointer instance) {
+ ImportUIQuestionParams* self;
+ self = instance;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return instance;
+#line 4639 "Dialogs.c"
+}
+
+
+void import_ui_question_params_unref (gpointer instance) {
+ ImportUIQuestionParams* self;
+ self = instance;
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ IMPORT_UI_QUESTION_PARAMS_GET_CLASS (self)->finalize (self);
+#line 483 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4652 "Dialogs.c"
+ }
+}
+
+
+gboolean import_ui_import_has_photos (GeeCollection* import_collection) {
+ gboolean result = FALSE;
+#line 495 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (import_collection), FALSE);
+#line 4661 "Dialogs.c"
+ {
+ GeeIterator* _current_result_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = import_collection;
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _current_result_it = _tmp1_;
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 4674 "Dialogs.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ BatchImportResult* current_result = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ BatchImportResult* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _current_result_it;
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp3_) {
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 4691 "Dialogs.c"
+ }
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _current_result_it;
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_result = (BatchImportResult*) _tmp5_;
+#line 497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = current_result;
+#line 497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_->file;
+#line 497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp8_ != NULL) {
+#line 4705 "Dialogs.c"
+ BatchImportResult* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ PhotoFileFormat _tmp11_ = 0;
+#line 498 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = current_result;
+#line 498 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_->file;
+#line 498 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = photo_file_format_get_by_file_extension (_tmp10_);
+#line 498 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp11_ != PHOTO_FILE_FORMAT_UNKNOWN;
+#line 4717 "Dialogs.c"
+ } else {
+#line 497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = FALSE;
+#line 4721 "Dialogs.c"
+ }
+#line 497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp6_) {
+#line 499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (current_result);
+#line 499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_current_result_it);
+#line 499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4733 "Dialogs.c"
+ }
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (current_result);
+#line 4737 "Dialogs.c"
+ }
+#line 496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_current_result_it);
+#line 4741 "Dialogs.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 502 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4747 "Dialogs.c"
+}
+
+
+gboolean import_ui_import_has_videos (GeeCollection* import_collection) {
+ gboolean result = FALSE;
+#line 505 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (import_collection), FALSE);
+#line 4755 "Dialogs.c"
+ {
+ GeeIterator* _current_result_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = import_collection;
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _current_result_it = _tmp1_;
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 4768 "Dialogs.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ BatchImportResult* current_result = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ BatchImportResult* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _current_result_it;
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp3_) {
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 4785 "Dialogs.c"
+ }
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _current_result_it;
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_result = (BatchImportResult*) _tmp5_;
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = current_result;
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_->file;
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp8_ != NULL) {
+#line 4799 "Dialogs.c"
+ BatchImportResult* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = current_result;
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_->file;
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = video_reader_is_supported_video_file (_tmp10_);
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp11_;
+#line 4811 "Dialogs.c"
+ } else {
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = FALSE;
+#line 4815 "Dialogs.c"
+ }
+#line 507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp6_) {
+#line 508 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 508 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (current_result);
+#line 508 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_current_result_it);
+#line 508 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4827 "Dialogs.c"
+ }
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (current_result);
+#line 4831 "Dialogs.c"
+ }
+#line 506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_current_result_it);
+#line 4835 "Dialogs.c"
+ }
+#line 510 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 510 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4841 "Dialogs.c"
+}
+
+
+gchar* import_ui_get_media_specific_string (GeeCollection* import_collection, const gchar* photos_msg, const gchar* videos_msg, const gchar* both_msg, const gchar* neither_msg) {
+ gchar* result = NULL;
+ gboolean has_photos = FALSE;
+ GeeCollection* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean has_videos = FALSE;
+ GeeCollection* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (import_collection), NULL);
+#line 513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (photos_msg != NULL, NULL);
+#line 513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (videos_msg != NULL, NULL);
+#line 513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (both_msg != NULL, NULL);
+#line 513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (neither_msg != NULL, NULL);
+#line 515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = import_collection;
+#line 515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = import_ui_import_has_photos (_tmp0_);
+#line 515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ has_photos = _tmp1_;
+#line 516 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = import_collection;
+#line 516 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = import_ui_import_has_videos (_tmp2_);
+#line 516 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ has_videos = _tmp3_;
+#line 518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = has_photos;
+#line 518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_) {
+#line 4881 "Dialogs.c"
+ gboolean _tmp6_ = FALSE;
+#line 518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = has_videos;
+#line 518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp6_;
+#line 4887 "Dialogs.c"
+ } else {
+#line 518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = FALSE;
+#line 4891 "Dialogs.c"
+ }
+#line 518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp4_) {
+#line 4895 "Dialogs.c"
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 519 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = both_msg;
+#line 519 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 519 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp8_;
+#line 519 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4906 "Dialogs.c"
+ } else {
+ gboolean _tmp9_ = FALSE;
+#line 520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = has_photos;
+#line 520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_) {
+#line 4913 "Dialogs.c"
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = photos_msg;
+#line 521 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 521 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp11_;
+#line 521 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4924 "Dialogs.c"
+ } else {
+ gboolean _tmp12_ = FALSE;
+#line 522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = has_videos;
+#line 522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp12_) {
+#line 4931 "Dialogs.c"
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = videos_msg;
+#line 523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = g_strdup (_tmp13_);
+#line 523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp14_;
+#line 523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4942 "Dialogs.c"
+ } else {
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = neither_msg;
+#line 525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp16_;
+#line 525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 4954 "Dialogs.c"
+ }
+ }
+ }
+}
+
+
+gchar* import_ui_create_result_report_from_manifest (ImportManifest* manifest) {
+ gchar* result = NULL;
+ GString* builder = NULL;
+ GString* _tmp0_ = NULL;
+ gchar* header = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GTimeVal _tmp8_ = {0};
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GString* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* subhead = NULL;
+ ImportManifest* _tmp17_ = NULL;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ const gchar* _tmp21_ = NULL;
+ ImportManifest* _tmp22_ = NULL;
+ GeeList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ ImportManifest* _tmp30_ = NULL;
+ GeeList* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ const gchar* _tmp34_ = NULL;
+ ImportManifest* _tmp35_ = NULL;
+ GeeList* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ GString* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ gchar* current_file_summary = NULL;
+ gchar* _tmp46_ = NULL;
+ ImportManifest* _tmp47_ = NULL;
+ GeeList* _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ ImportManifest* _tmp87_ = NULL;
+ GeeList* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ ImportManifest* _tmp123_ = NULL;
+ GeeList* _tmp124_ = NULL;
+ gint _tmp125_ = 0;
+ gint _tmp126_ = 0;
+ ImportManifest* _tmp159_ = NULL;
+ GeeList* _tmp160_ = NULL;
+ gint _tmp161_ = 0;
+ gint _tmp162_ = 0;
+ ImportManifest* _tmp195_ = NULL;
+ GeeList* _tmp196_ = NULL;
+ gint _tmp197_ = 0;
+ gint _tmp198_ = 0;
+ ImportManifest* _tmp236_ = NULL;
+ GeeList* _tmp237_ = NULL;
+ gint _tmp238_ = 0;
+ gint _tmp239_ = 0;
+ ImportManifest* _tmp272_ = NULL;
+ GeeList* _tmp273_ = NULL;
+ gint _tmp274_ = 0;
+ gint _tmp275_ = 0;
+ GString* _tmp308_ = NULL;
+ const gchar* _tmp309_ = NULL;
+ gchar* _tmp310_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_IMPORT_MANIFEST (manifest), NULL);
+#line 529 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = g_string_new ("");
+#line 529 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ builder = _tmp0_;
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _ ("Import Results Report");
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = g_strconcat (_tmp1_, " (Shotwell ", NULL);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_strconcat (_tmp3_, RESOURCES_APP_VERSION, NULL);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = g_strconcat (_tmp5_, " @ ", NULL);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_get_current_time (&_tmp8_);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_time_val_to_iso8601 (&_tmp8_);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = g_strconcat (_tmp7_, _tmp10_, NULL);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp11_;
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = g_strconcat (_tmp12_, ")\n\n", NULL);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp12_);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp10_);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp7_);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp5_);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp3_);
+#line 531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ header = _tmp14_;
+#line 533 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = builder;
+#line 533 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = header;
+#line 533 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp15_, _tmp16_);
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = manifest;
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp17_->all;
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = _tmp19_;
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = ngettext ("Attempted to import %d file.", "Attempted to import %d files.", (gulong) _tmp20_);
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = manifest;
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = _tmp22_->all;
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = _tmp24_;
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = g_strdup_printf (_tmp21_, _tmp25_);
+#line 535 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ subhead = _tmp26_;
+#line 537 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = subhead;
+#line 537 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = g_strconcat (_tmp27_, " ", NULL);
+#line 537 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (subhead);
+#line 537 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ subhead = _tmp28_;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = subhead;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = manifest;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = _tmp30_->success;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = _tmp32_;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = ngettext ("Of these, %d file was successfully imported.", "Of these, %d files were successfully imported.", (gulong) _tmp33_);
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = manifest;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = _tmp35_->success;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = _tmp37_;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = g_strdup_printf (_tmp34_, _tmp38_);
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = _tmp39_;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = g_strconcat (_tmp29_, _tmp40_, NULL);
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (subhead);
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ subhead = _tmp41_;
+#line 538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp40_);
+#line 541 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = subhead;
+#line 541 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = g_strconcat (_tmp42_, "\n\n", NULL);
+#line 541 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (subhead);
+#line 541 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ subhead = _tmp43_;
+#line 542 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = builder;
+#line 542 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = subhead;
+#line 542 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp44_, _tmp45_);
+#line 544 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = g_strdup ("");
+#line 544 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp46_;
+#line 549 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = manifest;
+#line 549 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = _tmp47_->already_imported;
+#line 549 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 549 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = _tmp49_;
+#line 549 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp50_ > 0) {
+#line 5187 "Dialogs.c"
+ GString* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = builder;
+#line 550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = _ ("Duplicate Photos/Videos Not Imported:");
+#line 550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = g_strconcat (_tmp52_, "\n\n", NULL);
+#line 550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = _tmp53_;
+#line 550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp51_, _tmp54_);
+#line 550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp54_);
+#line 5204 "Dialogs.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp55_ = NULL;
+ GeeList* _tmp56_ = NULL;
+ GeeList* _tmp57_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ gint _result_index = 0;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = manifest;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = _tmp55_->already_imported;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = _g_object_ref0 (_tmp56_);
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_list = _tmp57_;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = _result_list;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp60_ = _tmp59_;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_size = _tmp60_;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = -1;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 5235 "Dialogs.c"
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+ gpointer _tmp66_ = NULL;
+ BatchImportResult* _tmp67_ = NULL;
+ const gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ BatchImportResult* _tmp76_ = NULL;
+ DuplicatedFile* _tmp77_ = NULL;
+ GFile* _tmp78_ = NULL;
+ GFile* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ GString* _tmp85_ = NULL;
+ const gchar* _tmp86_ = NULL;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = _result_index;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = _tmp61_ + 1;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = _result_index;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = _result_size;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp62_ < _tmp63_)) {
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 5275 "Dialogs.c"
+ }
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = _result_list;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = _result_index;
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = gee_list_get (_tmp64_, _tmp65_);
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (BatchImportResult*) _tmp66_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = _result_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = _tmp67_->src_identifier;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = g_strconcat (_tmp68_, " ", NULL);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = _tmp69_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = _ ("duplicates existing media item");
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp72_ = g_strconcat (_tmp70_, _tmp71_, NULL);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp73_ = _tmp72_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp74_ = g_strconcat (_tmp73_, "\n\t", NULL);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75_ = _tmp74_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp76_ = _result_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp77_ = _tmp76_->duplicate_of;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp78_ = duplicated_file_get_file (_tmp77_);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp79_ = _tmp78_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp80_ = g_file_get_path (_tmp79_);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp81_ = _tmp80_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp82_ = g_strconcat (_tmp75_, _tmp81_, NULL);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp83_ = _tmp82_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp84_ = g_strconcat (_tmp83_, "\n\n", NULL);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp84_;
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp83_);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp81_);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp79_);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp75_);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp73_);
+#line 553 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp70_);
+#line 557 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp85_ = builder;
+#line 557 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp86_ = current_file_summary;
+#line 557 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp85_, _tmp86_);
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_result_);
+#line 5345 "Dialogs.c"
+ }
+#line 552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_result_list);
+#line 5349 "Dialogs.c"
+ }
+ }
+#line 564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp87_ = manifest;
+#line 564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp88_ = _tmp87_->camera_failed;
+#line 564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp89_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp88_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp90_ = _tmp89_;
+#line 564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp90_ > 0) {
+#line 5362 "Dialogs.c"
+ GString* _tmp91_ = NULL;
+ const gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ gchar* _tmp94_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp91_ = builder;
+#line 565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp92_ = _ ("Photos/Videos Not Imported Due to Camera Errors:");
+#line 565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp93_ = g_strconcat (_tmp92_, "\n\n", NULL);
+#line 565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp94_ = _tmp93_;
+#line 565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp91_, _tmp94_);
+#line 565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp94_);
+#line 5379 "Dialogs.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp95_ = NULL;
+ GeeList* _tmp96_ = NULL;
+ GeeList* _tmp97_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp98_ = NULL;
+ gint _tmp99_ = 0;
+ gint _tmp100_ = 0;
+ gint _result_index = 0;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp95_ = manifest;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp96_ = _tmp95_->camera_failed;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp97_ = _g_object_ref0 (_tmp96_);
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_list = _tmp97_;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp98_ = _result_list;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp99_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp98_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp100_ = _tmp99_;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_size = _tmp100_;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = -1;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 5410 "Dialogs.c"
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp104_ = NULL;
+ gint _tmp105_ = 0;
+ gpointer _tmp106_ = NULL;
+ BatchImportResult* _tmp107_ = NULL;
+ const gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ const gchar* _tmp111_ = NULL;
+ gchar* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ gchar* _tmp115_ = NULL;
+ BatchImportResult* _tmp116_ = NULL;
+ const gchar* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ gchar* _tmp120_ = NULL;
+ GString* _tmp121_ = NULL;
+ const gchar* _tmp122_ = NULL;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp101_ = _result_index;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = _tmp101_ + 1;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp102_ = _result_index;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp103_ = _result_size;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp102_ < _tmp103_)) {
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 5446 "Dialogs.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp104_ = _result_list;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp105_ = _result_index;
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp106_ = gee_list_get (_tmp104_, _tmp105_);
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (BatchImportResult*) _tmp106_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp107_ = _result_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp108_ = _tmp107_->src_identifier;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp109_ = g_strconcat (_tmp108_, "\n\t", NULL);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp110_ = _tmp109_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp111_ = _ ("error message:");
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp112_ = g_strconcat (_tmp110_, _tmp111_, NULL);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp113_ = _tmp112_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp114_ = g_strconcat (_tmp113_, " ", NULL);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp115_ = _tmp114_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp116_ = _result_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp117_ = _tmp116_->errmsg;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp118_ = g_strconcat (_tmp115_, _tmp117_, NULL);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp119_ = _tmp118_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp120_ = g_strconcat (_tmp119_, "\n\n", NULL);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp120_;
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp119_);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp115_);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp113_);
+#line 568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp110_);
+#line 571 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp121_ = builder;
+#line 571 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp122_ = current_file_summary;
+#line 571 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp121_, _tmp122_);
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_result_);
+#line 5504 "Dialogs.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_result_list);
+#line 5508 "Dialogs.c"
+ }
+ }
+#line 578 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp123_ = manifest;
+#line 578 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp124_ = _tmp123_->skipped_files;
+#line 578 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp125_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp124_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 578 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp126_ = _tmp125_;
+#line 578 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp126_ > 0) {
+#line 5521 "Dialogs.c"
+ GString* _tmp127_ = NULL;
+ const gchar* _tmp128_ = NULL;
+ gchar* _tmp129_ = NULL;
+ gchar* _tmp130_ = NULL;
+#line 579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp127_ = builder;
+#line 579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp128_ = _ ("Files Not Imported Because They Weren't Recognized as Photos or Videos" \
+":");
+#line 579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp129_ = g_strconcat (_tmp128_, "\n\n", NULL);
+#line 579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp130_ = _tmp129_;
+#line 579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp127_, _tmp130_);
+#line 579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp130_);
+#line 5538 "Dialogs.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp131_ = NULL;
+ GeeList* _tmp132_ = NULL;
+ GeeList* _tmp133_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp134_ = NULL;
+ gint _tmp135_ = 0;
+ gint _tmp136_ = 0;
+ gint _result_index = 0;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp131_ = manifest;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp132_ = _tmp131_->skipped_files;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp133_ = _g_object_ref0 (_tmp132_);
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_list = _tmp133_;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp134_ = _result_list;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp135_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp134_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp136_ = _tmp135_;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_size = _tmp136_;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = -1;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 5569 "Dialogs.c"
+ gint _tmp137_ = 0;
+ gint _tmp138_ = 0;
+ gint _tmp139_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp140_ = NULL;
+ gint _tmp141_ = 0;
+ gpointer _tmp142_ = NULL;
+ BatchImportResult* _tmp143_ = NULL;
+ const gchar* _tmp144_ = NULL;
+ gchar* _tmp145_ = NULL;
+ gchar* _tmp146_ = NULL;
+ const gchar* _tmp147_ = NULL;
+ gchar* _tmp148_ = NULL;
+ gchar* _tmp149_ = NULL;
+ gchar* _tmp150_ = NULL;
+ gchar* _tmp151_ = NULL;
+ BatchImportResult* _tmp152_ = NULL;
+ const gchar* _tmp153_ = NULL;
+ gchar* _tmp154_ = NULL;
+ gchar* _tmp155_ = NULL;
+ gchar* _tmp156_ = NULL;
+ GString* _tmp157_ = NULL;
+ const gchar* _tmp158_ = NULL;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp137_ = _result_index;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = _tmp137_ + 1;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp138_ = _result_index;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp139_ = _result_size;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp138_ < _tmp139_)) {
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 5605 "Dialogs.c"
+ }
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp140_ = _result_list;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp141_ = _result_index;
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp142_ = gee_list_get (_tmp140_, _tmp141_);
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (BatchImportResult*) _tmp142_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp143_ = _result_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp144_ = _tmp143_->src_identifier;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp145_ = g_strconcat (_tmp144_, "\n\t", NULL);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp146_ = _tmp145_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp147_ = _ ("error message:");
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp148_ = g_strconcat (_tmp146_, _tmp147_, NULL);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp149_ = _tmp148_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp150_ = g_strconcat (_tmp149_, " ", NULL);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp151_ = _tmp150_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp152_ = _result_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp153_ = _tmp152_->errmsg;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp154_ = g_strconcat (_tmp151_, _tmp153_, NULL);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp155_ = _tmp154_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp156_ = g_strconcat (_tmp155_, "\n\n", NULL);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp156_;
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp155_);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp151_);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp149_);
+#line 583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp146_);
+#line 586 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp157_ = builder;
+#line 586 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp158_ = current_file_summary;
+#line 586 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp157_, _tmp158_);
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_result_);
+#line 5663 "Dialogs.c"
+ }
+#line 582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_result_list);
+#line 5667 "Dialogs.c"
+ }
+ }
+#line 593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp159_ = manifest;
+#line 593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp160_ = _tmp159_->skipped_photos;
+#line 593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp161_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp160_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp162_ = _tmp161_;
+#line 593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp162_ > 0) {
+#line 5680 "Dialogs.c"
+ GString* _tmp163_ = NULL;
+ const gchar* _tmp164_ = NULL;
+ gchar* _tmp165_ = NULL;
+ gchar* _tmp166_ = NULL;
+#line 594 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp163_ = builder;
+#line 594 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp164_ = _ ("Photos/Videos Not Imported Because They Weren't in a Format Shotwell U" \
+"nderstands:");
+#line 594 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp165_ = g_strconcat (_tmp164_, "\n\n", NULL);
+#line 594 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp166_ = _tmp165_;
+#line 594 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp163_, _tmp166_);
+#line 594 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp166_);
+#line 5697 "Dialogs.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp167_ = NULL;
+ GeeList* _tmp168_ = NULL;
+ GeeList* _tmp169_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp170_ = NULL;
+ gint _tmp171_ = 0;
+ gint _tmp172_ = 0;
+ gint _result_index = 0;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp167_ = manifest;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp168_ = _tmp167_->skipped_photos;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp169_ = _g_object_ref0 (_tmp168_);
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_list = _tmp169_;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp170_ = _result_list;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp171_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp170_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp172_ = _tmp171_;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_size = _tmp172_;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = -1;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 5728 "Dialogs.c"
+ gint _tmp173_ = 0;
+ gint _tmp174_ = 0;
+ gint _tmp175_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp176_ = NULL;
+ gint _tmp177_ = 0;
+ gpointer _tmp178_ = NULL;
+ BatchImportResult* _tmp179_ = NULL;
+ const gchar* _tmp180_ = NULL;
+ gchar* _tmp181_ = NULL;
+ gchar* _tmp182_ = NULL;
+ const gchar* _tmp183_ = NULL;
+ gchar* _tmp184_ = NULL;
+ gchar* _tmp185_ = NULL;
+ gchar* _tmp186_ = NULL;
+ gchar* _tmp187_ = NULL;
+ BatchImportResult* _tmp188_ = NULL;
+ const gchar* _tmp189_ = NULL;
+ gchar* _tmp190_ = NULL;
+ gchar* _tmp191_ = NULL;
+ gchar* _tmp192_ = NULL;
+ GString* _tmp193_ = NULL;
+ const gchar* _tmp194_ = NULL;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp173_ = _result_index;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = _tmp173_ + 1;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp174_ = _result_index;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp175_ = _result_size;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp174_ < _tmp175_)) {
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 5764 "Dialogs.c"
+ }
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp176_ = _result_list;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp177_ = _result_index;
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp178_ = gee_list_get (_tmp176_, _tmp177_);
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (BatchImportResult*) _tmp178_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp179_ = _result_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp180_ = _tmp179_->src_identifier;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp181_ = g_strconcat (_tmp180_, "\n\t", NULL);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp182_ = _tmp181_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp183_ = _ ("error message:");
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp184_ = g_strconcat (_tmp182_, _tmp183_, NULL);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp185_ = _tmp184_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp186_ = g_strconcat (_tmp185_, " ", NULL);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp187_ = _tmp186_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp188_ = _result_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp189_ = _tmp188_->errmsg;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp190_ = g_strconcat (_tmp187_, _tmp189_, NULL);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp191_ = _tmp190_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp192_ = g_strconcat (_tmp191_, "\n\n", NULL);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp192_;
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp191_);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp187_);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp185_);
+#line 598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp182_);
+#line 601 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp193_ = builder;
+#line 601 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp194_ = current_file_summary;
+#line 601 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp193_, _tmp194_);
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_result_);
+#line 5822 "Dialogs.c"
+ }
+#line 597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_result_list);
+#line 5826 "Dialogs.c"
+ }
+ }
+#line 608 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp195_ = manifest;
+#line 608 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp196_ = _tmp195_->write_failed;
+#line 608 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp197_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp196_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 608 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp198_ = _tmp197_;
+#line 608 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp198_ > 0) {
+#line 5839 "Dialogs.c"
+ GString* _tmp199_ = NULL;
+ const gchar* _tmp200_ = NULL;
+ gchar* _tmp201_ = NULL;
+ gchar* _tmp202_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp199_ = builder;
+#line 609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp200_ = _ ("Photos/Videos Not Imported Because Shotwell Couldn't Copy Them into it" \
+"s Library:");
+#line 609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp201_ = g_strconcat (_tmp200_, "\n\n", NULL);
+#line 609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp202_ = _tmp201_;
+#line 609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp199_, _tmp202_);
+#line 609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp202_);
+#line 5856 "Dialogs.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp203_ = NULL;
+ GeeList* _tmp204_ = NULL;
+ GeeList* _tmp205_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp206_ = NULL;
+ gint _tmp207_ = 0;
+ gint _tmp208_ = 0;
+ gint _result_index = 0;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp203_ = manifest;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp204_ = _tmp203_->write_failed;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp205_ = _g_object_ref0 (_tmp204_);
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_list = _tmp205_;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp206_ = _result_list;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp207_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp206_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp208_ = _tmp207_;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_size = _tmp208_;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = -1;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 5887 "Dialogs.c"
+ gint _tmp209_ = 0;
+ gint _tmp210_ = 0;
+ gint _tmp211_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp212_ = NULL;
+ gint _tmp213_ = 0;
+ gpointer _tmp214_ = NULL;
+ const gchar* _tmp215_ = NULL;
+ BatchImportResult* _tmp216_ = NULL;
+ const gchar* _tmp217_ = NULL;
+ BatchImportResult* _tmp218_ = NULL;
+ const gchar* _tmp219_ = NULL;
+ gchar* _tmp220_ = NULL;
+ gchar* _tmp221_ = NULL;
+ gchar* _tmp222_ = NULL;
+ gchar* _tmp223_ = NULL;
+ const gchar* _tmp224_ = NULL;
+ gchar* _tmp225_ = NULL;
+ gchar* _tmp226_ = NULL;
+ gchar* _tmp227_ = NULL;
+ gchar* _tmp228_ = NULL;
+ BatchImportResult* _tmp229_ = NULL;
+ const gchar* _tmp230_ = NULL;
+ gchar* _tmp231_ = NULL;
+ gchar* _tmp232_ = NULL;
+ gchar* _tmp233_ = NULL;
+ GString* _tmp234_ = NULL;
+ const gchar* _tmp235_ = NULL;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp209_ = _result_index;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = _tmp209_ + 1;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp210_ = _result_index;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp211_ = _result_size;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp210_ < _tmp211_)) {
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 5928 "Dialogs.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp212_ = _result_list;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp213_ = _result_index;
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp214_ = gee_list_get (_tmp212_, _tmp213_);
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (BatchImportResult*) _tmp214_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp215_ = _ ("couldn't copy %s\n\tto %s");
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp216_ = _result_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp217_ = _tmp216_->src_identifier;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp218_ = _result_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp219_ = _tmp218_->dest_identifier;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp220_ = g_strdup_printf (_tmp215_, _tmp217_, _tmp219_);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp221_ = _tmp220_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp222_ = g_strconcat (_tmp221_, "\n\t", NULL);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp223_ = _tmp222_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp224_ = _ ("error message:");
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp225_ = g_strconcat (_tmp223_, _tmp224_, NULL);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp226_ = _tmp225_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp227_ = g_strconcat (_tmp226_, " ", NULL);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp228_ = _tmp227_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp229_ = _result_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp230_ = _tmp229_->errmsg;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp231_ = g_strconcat (_tmp228_, _tmp230_, NULL);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp232_ = _tmp231_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp233_ = g_strconcat (_tmp232_, "\n\n", NULL);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp233_;
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp232_);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp228_);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp226_);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp223_);
+#line 613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp221_);
+#line 617 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp234_ = builder;
+#line 617 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp235_ = current_file_summary;
+#line 617 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp234_, _tmp235_);
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_result_);
+#line 5998 "Dialogs.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_result_list);
+#line 6002 "Dialogs.c"
+ }
+ }
+#line 624 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp236_ = manifest;
+#line 624 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp237_ = _tmp236_->corrupt_files;
+#line 624 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp238_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp237_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 624 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp239_ = _tmp238_;
+#line 624 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp239_ > 0) {
+#line 6015 "Dialogs.c"
+ GString* _tmp240_ = NULL;
+ const gchar* _tmp241_ = NULL;
+ gchar* _tmp242_ = NULL;
+ gchar* _tmp243_ = NULL;
+#line 625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp240_ = builder;
+#line 625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp241_ = _ ("Photos/Videos Not Imported Because Files Are Corrupt:");
+#line 625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp242_ = g_strconcat (_tmp241_, "\n\n", NULL);
+#line 625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp243_ = _tmp242_;
+#line 625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp240_, _tmp243_);
+#line 625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp243_);
+#line 6032 "Dialogs.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp244_ = NULL;
+ GeeList* _tmp245_ = NULL;
+ GeeList* _tmp246_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp247_ = NULL;
+ gint _tmp248_ = 0;
+ gint _tmp249_ = 0;
+ gint _result_index = 0;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp244_ = manifest;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp245_ = _tmp244_->corrupt_files;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp246_ = _g_object_ref0 (_tmp245_);
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_list = _tmp246_;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp247_ = _result_list;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp248_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp247_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp249_ = _tmp248_;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_size = _tmp249_;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = -1;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 6063 "Dialogs.c"
+ gint _tmp250_ = 0;
+ gint _tmp251_ = 0;
+ gint _tmp252_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp253_ = NULL;
+ gint _tmp254_ = 0;
+ gpointer _tmp255_ = NULL;
+ BatchImportResult* _tmp256_ = NULL;
+ const gchar* _tmp257_ = NULL;
+ gchar* _tmp258_ = NULL;
+ gchar* _tmp259_ = NULL;
+ const gchar* _tmp260_ = NULL;
+ gchar* _tmp261_ = NULL;
+ gchar* _tmp262_ = NULL;
+ gchar* _tmp263_ = NULL;
+ gchar* _tmp264_ = NULL;
+ BatchImportResult* _tmp265_ = NULL;
+ const gchar* _tmp266_ = NULL;
+ gchar* _tmp267_ = NULL;
+ gchar* _tmp268_ = NULL;
+ gchar* _tmp269_ = NULL;
+ GString* _tmp270_ = NULL;
+ const gchar* _tmp271_ = NULL;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp250_ = _result_index;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = _tmp250_ + 1;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp251_ = _result_index;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp252_ = _result_size;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp251_ < _tmp252_)) {
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 6099 "Dialogs.c"
+ }
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp253_ = _result_list;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp254_ = _result_index;
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp255_ = gee_list_get (_tmp253_, _tmp254_);
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (BatchImportResult*) _tmp255_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp256_ = _result_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp257_ = _tmp256_->src_identifier;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp258_ = g_strconcat (_tmp257_, "\n\t", NULL);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp259_ = _tmp258_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp260_ = _ ("error message:");
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp261_ = g_strconcat (_tmp259_, _tmp260_, NULL);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp262_ = _tmp261_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp263_ = g_strconcat (_tmp262_, " |", NULL);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp264_ = _tmp263_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp265_ = _result_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp266_ = _tmp265_->errmsg;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp267_ = g_strconcat (_tmp264_, _tmp266_, NULL);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp268_ = _tmp267_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp269_ = g_strconcat (_tmp268_, "|\n\n", NULL);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp269_;
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp268_);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp264_);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp262_);
+#line 629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp259_);
+#line 632 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp270_ = builder;
+#line 632 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp271_ = current_file_summary;
+#line 632 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp270_, _tmp271_);
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_result_);
+#line 6157 "Dialogs.c"
+ }
+#line 628 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_result_list);
+#line 6161 "Dialogs.c"
+ }
+ }
+#line 639 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp272_ = manifest;
+#line 639 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp273_ = _tmp272_->failed;
+#line 639 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp274_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp273_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 639 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp275_ = _tmp274_;
+#line 639 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp275_ > 0) {
+#line 6174 "Dialogs.c"
+ GString* _tmp276_ = NULL;
+ const gchar* _tmp277_ = NULL;
+ gchar* _tmp278_ = NULL;
+ gchar* _tmp279_ = NULL;
+#line 640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp276_ = builder;
+#line 640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp277_ = _ ("Photos/Videos Not Imported for Other Reasons:");
+#line 640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp278_ = g_strconcat (_tmp277_, "\n\n", NULL);
+#line 640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp279_ = _tmp278_;
+#line 640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp276_, _tmp279_);
+#line 640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp279_);
+#line 6191 "Dialogs.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp280_ = NULL;
+ GeeList* _tmp281_ = NULL;
+ GeeList* _tmp282_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp283_ = NULL;
+ gint _tmp284_ = 0;
+ gint _tmp285_ = 0;
+ gint _result_index = 0;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp280_ = manifest;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp281_ = _tmp280_->failed;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp282_ = _g_object_ref0 (_tmp281_);
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_list = _tmp282_;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp283_ = _result_list;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp284_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp283_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp285_ = _tmp284_;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_size = _tmp285_;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = -1;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 6222 "Dialogs.c"
+ gint _tmp286_ = 0;
+ gint _tmp287_ = 0;
+ gint _tmp288_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp289_ = NULL;
+ gint _tmp290_ = 0;
+ gpointer _tmp291_ = NULL;
+ BatchImportResult* _tmp292_ = NULL;
+ const gchar* _tmp293_ = NULL;
+ gchar* _tmp294_ = NULL;
+ gchar* _tmp295_ = NULL;
+ const gchar* _tmp296_ = NULL;
+ gchar* _tmp297_ = NULL;
+ gchar* _tmp298_ = NULL;
+ gchar* _tmp299_ = NULL;
+ gchar* _tmp300_ = NULL;
+ BatchImportResult* _tmp301_ = NULL;
+ const gchar* _tmp302_ = NULL;
+ gchar* _tmp303_ = NULL;
+ gchar* _tmp304_ = NULL;
+ gchar* _tmp305_ = NULL;
+ GString* _tmp306_ = NULL;
+ const gchar* _tmp307_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp286_ = _result_index;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_index = _tmp286_ + 1;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp287_ = _result_index;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp288_ = _result_size;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp287_ < _tmp288_)) {
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 6258 "Dialogs.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp289_ = _result_list;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp290_ = _result_index;
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp291_ = gee_list_get (_tmp289_, _tmp290_);
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (BatchImportResult*) _tmp291_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp292_ = _result_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp293_ = _tmp292_->src_identifier;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp294_ = g_strconcat (_tmp293_, "\n\t", NULL);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp295_ = _tmp294_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp296_ = _ ("error message:");
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp297_ = g_strconcat (_tmp295_, _tmp296_, NULL);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp298_ = _tmp297_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp299_ = g_strconcat (_tmp298_, " ", NULL);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp300_ = _tmp299_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp301_ = _result_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp302_ = _tmp301_->errmsg;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp303_ = g_strconcat (_tmp300_, _tmp302_, NULL);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp304_ = _tmp303_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp305_ = g_strconcat (_tmp304_, "\n\n", NULL);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_file_summary = _tmp305_;
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp304_);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp300_);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp298_);
+#line 643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp295_);
+#line 646 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp306_ = builder;
+#line 646 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp307_ = current_file_summary;
+#line 646 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_string_append (_tmp306_, _tmp307_);
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _batch_import_result_unref0 (_result_);
+#line 6316 "Dialogs.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_result_list);
+#line 6320 "Dialogs.c"
+ }
+ }
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp308_ = builder;
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp309_ = _tmp308_->str;
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp310_ = g_strdup (_tmp309_);
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp310_;
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (current_file_summary);
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (subhead);
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (header);
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_string_free0 (builder);
+#line 650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 6341 "Dialogs.c"
+}
+
+
+gboolean import_ui_report_manifest (ImportManifest* manifest, gboolean show_dest_id, ImportUIQuestionParams* question) {
+ gboolean result = FALSE;
+ gchar* message = NULL;
+ gchar* _tmp0_ = NULL;
+ ImportManifest* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ ImportManifest* _tmp52_ = NULL;
+ GeeList* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ ImportManifest* _tmp118_ = NULL;
+ GeeList* _tmp119_ = NULL;
+ gint _tmp120_ = 0;
+ gint _tmp121_ = 0;
+ ImportManifest* _tmp184_ = NULL;
+ GeeList* _tmp185_ = NULL;
+ gint _tmp186_ = 0;
+ gint _tmp187_ = 0;
+ ImportManifest* _tmp250_ = NULL;
+ GeeList* _tmp251_ = NULL;
+ gint _tmp252_ = 0;
+ gint _tmp253_ = 0;
+ ImportManifest* _tmp316_ = NULL;
+ GeeList* _tmp317_ = NULL;
+ gint _tmp318_ = 0;
+ gint _tmp319_ = 0;
+ ImportManifest* _tmp345_ = NULL;
+ GeeList* _tmp346_ = NULL;
+ gint _tmp347_ = 0;
+ gint _tmp348_ = 0;
+ ImportManifest* _tmp367_ = NULL;
+ GeeList* _tmp368_ = NULL;
+ gint _tmp369_ = 0;
+ gint _tmp370_ = 0;
+ ImportManifest* _tmp433_ = NULL;
+ GeeList* _tmp434_ = NULL;
+ gint _tmp435_ = 0;
+ gint _tmp436_ = 0;
+ gint total = 0;
+ ImportManifest* _tmp481_ = NULL;
+ GeeList* _tmp482_ = NULL;
+ gint _tmp483_ = 0;
+ gint _tmp484_ = 0;
+ ImportManifest* _tmp485_ = NULL;
+ GeeList* _tmp486_ = NULL;
+ gint _tmp487_ = 0;
+ gint _tmp488_ = 0;
+ ImportManifest* _tmp489_ = NULL;
+ GeeList* _tmp490_ = NULL;
+ gint _tmp491_ = 0;
+ gint _tmp492_ = 0;
+ ImportManifest* _tmp493_ = NULL;
+ GeeList* _tmp494_ = NULL;
+ gint _tmp495_ = 0;
+ gint _tmp496_ = 0;
+ ImportManifest* _tmp497_ = NULL;
+ GeeList* _tmp498_ = NULL;
+ gint _tmp499_ = 0;
+ gint _tmp500_ = 0;
+ ImportManifest* _tmp501_ = NULL;
+ GeeList* _tmp502_ = NULL;
+ gint _tmp503_ = 0;
+ gint _tmp504_ = 0;
+ ImportManifest* _tmp505_ = NULL;
+ GeeList* _tmp506_ = NULL;
+ gint _tmp507_ = 0;
+ gint _tmp508_ = 0;
+ ImportManifest* _tmp509_ = NULL;
+ GeeList* _tmp510_ = NULL;
+ gint _tmp511_ = 0;
+ gint _tmp512_ = 0;
+ ImportManifest* _tmp513_ = NULL;
+ GeeList* _tmp514_ = NULL;
+ gint _tmp515_ = 0;
+ gint _tmp516_ = 0;
+ gint _tmp517_ = 0;
+ ImportManifest* _tmp518_ = NULL;
+ GeeList* _tmp519_ = NULL;
+ gint _tmp520_ = 0;
+ gint _tmp521_ = 0;
+ gint _tmp522_ = 0;
+ GtkMessageDialog* dialog = NULL;
+ gint dialog_response = 0;
+ ImportUIQuestionParams* _tmp526_ = NULL;
+ gint _tmp606_ = 0;
+#line 655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_IMPORT_MANIFEST (manifest), FALSE);
+#line 655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail ((question == NULL) || IMPORT_UI_IS_QUESTION_PARAMS (question), FALSE);
+#line 657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = g_strdup ("");
+#line 657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp0_;
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = manifest;
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_->already_imported;
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp4_ > 0) {
+#line 6450 "Dialogs.c"
+ gchar* photos_message = NULL;
+ ImportManifest* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ const gchar* _tmp9_ = NULL;
+ ImportManifest* _tmp10_ = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* videos_message = NULL;
+ ImportManifest* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ const gchar* _tmp19_ = NULL;
+ ImportManifest* _tmp20_ = NULL;
+ GeeList* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gchar* _tmp24_ = NULL;
+ gchar* both_message = NULL;
+ ImportManifest* _tmp25_ = NULL;
+ GeeList* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ const gchar* _tmp29_ = NULL;
+ ImportManifest* _tmp30_ = NULL;
+ GeeList* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gchar* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ ImportManifest* _tmp36_ = NULL;
+ GeeList* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ ImportManifest* _tmp46_ = NULL;
+ GeeList* _tmp47_ = NULL;
+ gboolean _tmp48_ = FALSE;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = manifest;
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp5_->already_imported;
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = ngettext ("1 duplicate photo was not imported:\n", "%d duplicate photos were not imported:\n", (gulong) _tmp8_);
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = manifest;
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_->already_imported;
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_;
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = g_strdup_printf (_tmp9_, _tmp13_);
+#line 660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos_message = _tmp14_;
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = manifest;
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_->already_imported;
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp17_;
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = ngettext ("1 duplicate video was not imported:\n", "%d duplicate videos were not imported:\n", (gulong) _tmp18_);
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = manifest;
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = _tmp20_->already_imported;
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = _tmp22_;
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = g_strdup_printf (_tmp19_, _tmp23_);
+#line 663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos_message = _tmp24_;
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = manifest;
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = _tmp25_->already_imported;
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = _tmp27_;
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = ngettext ("1 duplicate photo/video was not imported:\n", "%d duplicate photos/videos were not imported:\n", (gulong) _tmp28_);
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = manifest;
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = _tmp30_->already_imported;
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = _tmp32_;
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = g_strdup_printf (_tmp29_, _tmp33_);
+#line 666 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ both_message = _tmp34_;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = message;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = manifest;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = _tmp36_->already_imported;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = photos_message;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = videos_message;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = both_message;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = both_message;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection), _tmp38_, _tmp39_, _tmp40_, _tmp41_);
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = _tmp42_;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = g_strconcat (_tmp35_, _tmp43_, NULL);
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp44_;
+#line 670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp43_);
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = message;
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = manifest;
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = _tmp46_->already_imported;
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = show_dest_id;
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = import_ui_generate_import_failure_list (_tmp47_, _tmp48_);
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = _tmp49_;
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = g_strconcat (_tmp45_, _tmp50_, NULL);
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp51_;
+#line 673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp50_);
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (both_message);
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (videos_message);
+#line 659 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (photos_message);
+#line 6619 "Dialogs.c"
+ }
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = manifest;
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = _tmp52_->failed;
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = _tmp54_;
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp55_ > 0) {
+#line 6631 "Dialogs.c"
+ const gchar* _tmp56_ = NULL;
+ gint _tmp57_ = 0;
+ gint _tmp58_ = 0;
+ gchar* photos_message = NULL;
+ ImportManifest* _tmp61_ = NULL;
+ GeeList* _tmp62_ = NULL;
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+ const gchar* _tmp65_ = NULL;
+ ImportManifest* _tmp66_ = NULL;
+ GeeList* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gchar* _tmp70_ = NULL;
+ gchar* videos_message = NULL;
+ ImportManifest* _tmp71_ = NULL;
+ GeeList* _tmp72_ = NULL;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ const gchar* _tmp75_ = NULL;
+ ImportManifest* _tmp76_ = NULL;
+ GeeList* _tmp77_ = NULL;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ gchar* _tmp80_ = NULL;
+ gchar* both_message = NULL;
+ ImportManifest* _tmp81_ = NULL;
+ GeeList* _tmp82_ = NULL;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+ const gchar* _tmp85_ = NULL;
+ ImportManifest* _tmp86_ = NULL;
+ GeeList* _tmp87_ = NULL;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+ gchar* _tmp90_ = NULL;
+ gchar* neither_message = NULL;
+ ImportManifest* _tmp91_ = NULL;
+ GeeList* _tmp92_ = NULL;
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ const gchar* _tmp95_ = NULL;
+ ImportManifest* _tmp96_ = NULL;
+ GeeList* _tmp97_ = NULL;
+ gint _tmp98_ = 0;
+ gint _tmp99_ = 0;
+ gchar* _tmp100_ = NULL;
+ const gchar* _tmp101_ = NULL;
+ ImportManifest* _tmp102_ = NULL;
+ GeeList* _tmp103_ = NULL;
+ const gchar* _tmp104_ = NULL;
+ const gchar* _tmp105_ = NULL;
+ const gchar* _tmp106_ = NULL;
+ const gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ const gchar* _tmp111_ = NULL;
+ ImportManifest* _tmp112_ = NULL;
+ GeeList* _tmp113_ = NULL;
+ gboolean _tmp114_ = FALSE;
+ gchar* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+#line 677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = message;
+#line 677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = strlen (_tmp56_);
+#line 677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = _tmp57_;
+#line 677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp58_ > 0) {
+#line 6704 "Dialogs.c"
+ const gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+#line 678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = message;
+#line 678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp60_ = g_strconcat (_tmp59_, "\n", NULL);
+#line 678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp60_;
+#line 6715 "Dialogs.c"
+ }
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = manifest;
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = _tmp61_->failed;
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = _tmp63_;
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = ngettext ("1 photo failed to import due to a file or hardware error:\n", "%d photos failed to import due to a file or hardware error:\n", (gulong) _tmp64_);
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = manifest;
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = _tmp66_->failed;
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = _tmp68_;
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = g_strdup_printf (_tmp65_, _tmp69_);
+#line 680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos_message = _tmp70_;
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = manifest;
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp72_ = _tmp71_->failed;
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp73_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp74_ = _tmp73_;
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75_ = ngettext ("1 video failed to import due to a file or hardware error:\n", "%d videos failed to import due to a file or hardware error:\n", (gulong) _tmp74_);
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp76_ = manifest;
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp77_ = _tmp76_->failed;
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp78_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp79_ = _tmp78_;
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp80_ = g_strdup_printf (_tmp75_, _tmp79_);
+#line 683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos_message = _tmp80_;
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp81_ = manifest;
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp82_ = _tmp81_->failed;
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp83_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp84_ = _tmp83_;
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp85_ = ngettext ("1 photo/video failed to import due to a file or hardware error:\n", "%d photos/videos failed to import due to a file or hardware error:\n", (gulong) _tmp84_);
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp86_ = manifest;
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp87_ = _tmp86_->failed;
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp88_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp89_ = _tmp88_;
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp90_ = g_strdup_printf (_tmp85_, _tmp89_);
+#line 686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ both_message = _tmp90_;
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp91_ = manifest;
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp92_ = _tmp91_->failed;
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp93_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp92_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp94_ = _tmp93_;
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp95_ = ngettext ("1 file failed to import due to a file or hardware error:\n", "%d files failed to import due to a file or hardware error:\n", (gulong) _tmp94_);
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp96_ = manifest;
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp97_ = _tmp96_->failed;
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp98_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp97_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp99_ = _tmp98_;
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp100_ = g_strdup_printf (_tmp95_, _tmp99_);
+#line 689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ neither_message = _tmp100_;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp101_ = message;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp102_ = manifest;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp103_ = _tmp102_->failed;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp104_ = photos_message;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp105_ = videos_message;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp106_ = both_message;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp107_ = neither_message;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp108_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp103_, GEE_TYPE_COLLECTION, GeeCollection), _tmp104_, _tmp105_, _tmp106_, _tmp107_);
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp109_ = _tmp108_;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp110_ = g_strconcat (_tmp101_, _tmp109_, NULL);
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp110_;
+#line 693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp109_);
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp111_ = message;
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp112_ = manifest;
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp113_ = _tmp112_->failed;
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp114_ = show_dest_id;
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp115_ = import_ui_generate_import_failure_list (_tmp113_, _tmp114_);
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp116_ = _tmp115_;
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp117_ = g_strconcat (_tmp111_, _tmp116_, NULL);
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp117_;
+#line 696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp116_);
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (neither_message);
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (both_message);
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (videos_message);
+#line 676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (photos_message);
+#line 6859 "Dialogs.c"
+ }
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp118_ = manifest;
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp119_ = _tmp118_->write_failed;
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp120_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp119_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp121_ = _tmp120_;
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp121_ > 0) {
+#line 6871 "Dialogs.c"
+ const gchar* _tmp122_ = NULL;
+ gint _tmp123_ = 0;
+ gint _tmp124_ = 0;
+ gchar* photos_message = NULL;
+ ImportManifest* _tmp127_ = NULL;
+ GeeList* _tmp128_ = NULL;
+ gint _tmp129_ = 0;
+ gint _tmp130_ = 0;
+ const gchar* _tmp131_ = NULL;
+ ImportManifest* _tmp132_ = NULL;
+ GeeList* _tmp133_ = NULL;
+ gint _tmp134_ = 0;
+ gint _tmp135_ = 0;
+ gchar* _tmp136_ = NULL;
+ gchar* videos_message = NULL;
+ ImportManifest* _tmp137_ = NULL;
+ GeeList* _tmp138_ = NULL;
+ gint _tmp139_ = 0;
+ gint _tmp140_ = 0;
+ const gchar* _tmp141_ = NULL;
+ ImportManifest* _tmp142_ = NULL;
+ GeeList* _tmp143_ = NULL;
+ gint _tmp144_ = 0;
+ gint _tmp145_ = 0;
+ gchar* _tmp146_ = NULL;
+ gchar* both_message = NULL;
+ ImportManifest* _tmp147_ = NULL;
+ GeeList* _tmp148_ = NULL;
+ gint _tmp149_ = 0;
+ gint _tmp150_ = 0;
+ const gchar* _tmp151_ = NULL;
+ ImportManifest* _tmp152_ = NULL;
+ GeeList* _tmp153_ = NULL;
+ gint _tmp154_ = 0;
+ gint _tmp155_ = 0;
+ gchar* _tmp156_ = NULL;
+ gchar* neither_message = NULL;
+ ImportManifest* _tmp157_ = NULL;
+ GeeList* _tmp158_ = NULL;
+ gint _tmp159_ = 0;
+ gint _tmp160_ = 0;
+ const gchar* _tmp161_ = NULL;
+ ImportManifest* _tmp162_ = NULL;
+ GeeList* _tmp163_ = NULL;
+ gint _tmp164_ = 0;
+ gint _tmp165_ = 0;
+ gchar* _tmp166_ = NULL;
+ const gchar* _tmp167_ = NULL;
+ ImportManifest* _tmp168_ = NULL;
+ GeeList* _tmp169_ = NULL;
+ const gchar* _tmp170_ = NULL;
+ const gchar* _tmp171_ = NULL;
+ const gchar* _tmp172_ = NULL;
+ const gchar* _tmp173_ = NULL;
+ gchar* _tmp174_ = NULL;
+ gchar* _tmp175_ = NULL;
+ gchar* _tmp176_ = NULL;
+ const gchar* _tmp177_ = NULL;
+ ImportManifest* _tmp178_ = NULL;
+ GeeList* _tmp179_ = NULL;
+ gboolean _tmp180_ = FALSE;
+ gchar* _tmp181_ = NULL;
+ gchar* _tmp182_ = NULL;
+ gchar* _tmp183_ = NULL;
+#line 700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp122_ = message;
+#line 700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp123_ = strlen (_tmp122_);
+#line 700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp124_ = _tmp123_;
+#line 700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp124_ > 0) {
+#line 6944 "Dialogs.c"
+ const gchar* _tmp125_ = NULL;
+ gchar* _tmp126_ = NULL;
+#line 701 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp125_ = message;
+#line 701 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp126_ = g_strconcat (_tmp125_, "\n", NULL);
+#line 701 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 701 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp126_;
+#line 6955 "Dialogs.c"
+ }
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp127_ = manifest;
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp128_ = _tmp127_->write_failed;
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp129_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp128_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp130_ = _tmp129_;
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp131_ = ngettext ("1 photo failed to import because the photo library folder was not writ" \
+"able:\n", "%d photos failed to import because the photo library folder was not wr" \
+"itable:\n", (gulong) _tmp130_);
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp132_ = manifest;
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp133_ = _tmp132_->write_failed;
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp134_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp133_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp135_ = _tmp134_;
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp136_ = g_strdup_printf (_tmp131_, _tmp135_);
+#line 703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos_message = _tmp136_;
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp137_ = manifest;
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp138_ = _tmp137_->write_failed;
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp139_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp138_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp140_ = _tmp139_;
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp141_ = ngettext ("1 video failed to import because the photo library folder was not writ" \
+"able:\n", "%d videos failed to import because the photo library folder was not wr" \
+"itable:\n", (gulong) _tmp140_);
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp142_ = manifest;
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp143_ = _tmp142_->write_failed;
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp144_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp143_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp145_ = _tmp144_;
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp146_ = g_strdup_printf (_tmp141_, _tmp145_);
+#line 706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos_message = _tmp146_;
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp147_ = manifest;
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp148_ = _tmp147_->write_failed;
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp149_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp148_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp150_ = _tmp149_;
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp151_ = ngettext ("1 photo/video failed to import because the photo library folder was no" \
+"t writable:\n", "%d photos/videos failed to import because the photo library folder was" \
+" not writable:\n", (gulong) _tmp150_);
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp152_ = manifest;
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp153_ = _tmp152_->write_failed;
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp154_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp153_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp155_ = _tmp154_;
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp156_ = g_strdup_printf (_tmp151_, _tmp155_);
+#line 709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ both_message = _tmp156_;
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp157_ = manifest;
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp158_ = _tmp157_->write_failed;
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp159_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp158_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp160_ = _tmp159_;
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp161_ = ngettext ("1 file failed to import because the photo library folder was not writa" \
+"ble:\n", "%d files failed to import because the photo library folder was not wri" \
+"table:\n", (gulong) _tmp160_);
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp162_ = manifest;
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp163_ = _tmp162_->write_failed;
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp164_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp163_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp165_ = _tmp164_;
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp166_ = g_strdup_printf (_tmp161_, _tmp165_);
+#line 712 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ neither_message = _tmp166_;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp167_ = message;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp168_ = manifest;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp169_ = _tmp168_->write_failed;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp170_ = photos_message;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp171_ = videos_message;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp172_ = both_message;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp173_ = neither_message;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp174_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp169_, GEE_TYPE_COLLECTION, GeeCollection), _tmp170_, _tmp171_, _tmp172_, _tmp173_);
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp175_ = _tmp174_;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp176_ = g_strconcat (_tmp167_, _tmp175_, NULL);
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp176_;
+#line 716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp175_);
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp177_ = message;
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp178_ = manifest;
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp179_ = _tmp178_->write_failed;
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp180_ = show_dest_id;
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp181_ = import_ui_generate_import_failure_list (_tmp179_, _tmp180_);
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp182_ = _tmp181_;
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp183_ = g_strconcat (_tmp177_, _tmp182_, NULL);
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp183_;
+#line 719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp182_);
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (neither_message);
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (both_message);
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (videos_message);
+#line 699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (photos_message);
+#line 7099 "Dialogs.c"
+ }
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp184_ = manifest;
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp185_ = _tmp184_->camera_failed;
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp186_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp185_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp187_ = _tmp186_;
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp187_ > 0) {
+#line 7111 "Dialogs.c"
+ const gchar* _tmp188_ = NULL;
+ gint _tmp189_ = 0;
+ gint _tmp190_ = 0;
+ gchar* photos_message = NULL;
+ ImportManifest* _tmp193_ = NULL;
+ GeeList* _tmp194_ = NULL;
+ gint _tmp195_ = 0;
+ gint _tmp196_ = 0;
+ const gchar* _tmp197_ = NULL;
+ ImportManifest* _tmp198_ = NULL;
+ GeeList* _tmp199_ = NULL;
+ gint _tmp200_ = 0;
+ gint _tmp201_ = 0;
+ gchar* _tmp202_ = NULL;
+ gchar* videos_message = NULL;
+ ImportManifest* _tmp203_ = NULL;
+ GeeList* _tmp204_ = NULL;
+ gint _tmp205_ = 0;
+ gint _tmp206_ = 0;
+ const gchar* _tmp207_ = NULL;
+ ImportManifest* _tmp208_ = NULL;
+ GeeList* _tmp209_ = NULL;
+ gint _tmp210_ = 0;
+ gint _tmp211_ = 0;
+ gchar* _tmp212_ = NULL;
+ gchar* both_message = NULL;
+ ImportManifest* _tmp213_ = NULL;
+ GeeList* _tmp214_ = NULL;
+ gint _tmp215_ = 0;
+ gint _tmp216_ = 0;
+ const gchar* _tmp217_ = NULL;
+ ImportManifest* _tmp218_ = NULL;
+ GeeList* _tmp219_ = NULL;
+ gint _tmp220_ = 0;
+ gint _tmp221_ = 0;
+ gchar* _tmp222_ = NULL;
+ gchar* neither_message = NULL;
+ ImportManifest* _tmp223_ = NULL;
+ GeeList* _tmp224_ = NULL;
+ gint _tmp225_ = 0;
+ gint _tmp226_ = 0;
+ const gchar* _tmp227_ = NULL;
+ ImportManifest* _tmp228_ = NULL;
+ GeeList* _tmp229_ = NULL;
+ gint _tmp230_ = 0;
+ gint _tmp231_ = 0;
+ gchar* _tmp232_ = NULL;
+ const gchar* _tmp233_ = NULL;
+ ImportManifest* _tmp234_ = NULL;
+ GeeList* _tmp235_ = NULL;
+ const gchar* _tmp236_ = NULL;
+ const gchar* _tmp237_ = NULL;
+ const gchar* _tmp238_ = NULL;
+ const gchar* _tmp239_ = NULL;
+ gchar* _tmp240_ = NULL;
+ gchar* _tmp241_ = NULL;
+ gchar* _tmp242_ = NULL;
+ const gchar* _tmp243_ = NULL;
+ ImportManifest* _tmp244_ = NULL;
+ GeeList* _tmp245_ = NULL;
+ gboolean _tmp246_ = FALSE;
+ gchar* _tmp247_ = NULL;
+ gchar* _tmp248_ = NULL;
+ gchar* _tmp249_ = NULL;
+#line 723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp188_ = message;
+#line 723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp189_ = strlen (_tmp188_);
+#line 723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp190_ = _tmp189_;
+#line 723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp190_ > 0) {
+#line 7184 "Dialogs.c"
+ const gchar* _tmp191_ = NULL;
+ gchar* _tmp192_ = NULL;
+#line 724 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp191_ = message;
+#line 724 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp192_ = g_strconcat (_tmp191_, "\n", NULL);
+#line 724 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 724 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp192_;
+#line 7195 "Dialogs.c"
+ }
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp193_ = manifest;
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp194_ = _tmp193_->camera_failed;
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp195_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp194_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp196_ = _tmp195_;
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp197_ = ngettext ("1 photo failed to import due to a camera error:\n", "%d photos failed to import due to a camera error:\n", (gulong) _tmp196_);
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp198_ = manifest;
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp199_ = _tmp198_->camera_failed;
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp200_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp199_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp201_ = _tmp200_;
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp202_ = g_strdup_printf (_tmp197_, _tmp201_);
+#line 726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos_message = _tmp202_;
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp203_ = manifest;
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp204_ = _tmp203_->camera_failed;
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp205_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp204_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp206_ = _tmp205_;
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp207_ = ngettext ("1 video failed to import due to a camera error:\n", "%d videos failed to import due to a camera error:\n", (gulong) _tmp206_);
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp208_ = manifest;
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp209_ = _tmp208_->camera_failed;
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp210_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp209_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp211_ = _tmp210_;
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp212_ = g_strdup_printf (_tmp207_, _tmp211_);
+#line 729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos_message = _tmp212_;
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp213_ = manifest;
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp214_ = _tmp213_->camera_failed;
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp215_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp214_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp216_ = _tmp215_;
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp217_ = ngettext ("1 photo/video failed to import due to a camera error:\n", "%d photos/videos failed to import due to a camera error:\n", (gulong) _tmp216_);
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp218_ = manifest;
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp219_ = _tmp218_->camera_failed;
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp220_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp219_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp221_ = _tmp220_;
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp222_ = g_strdup_printf (_tmp217_, _tmp221_);
+#line 732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ both_message = _tmp222_;
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp223_ = manifest;
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp224_ = _tmp223_->camera_failed;
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp225_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp224_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp226_ = _tmp225_;
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp227_ = ngettext ("1 file failed to import due to a camera error:\n", "%d files failed to import due to a camera error:\n", (gulong) _tmp226_);
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp228_ = manifest;
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp229_ = _tmp228_->camera_failed;
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp230_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp229_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp231_ = _tmp230_;
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp232_ = g_strdup_printf (_tmp227_, _tmp231_);
+#line 735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ neither_message = _tmp232_;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp233_ = message;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp234_ = manifest;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp235_ = _tmp234_->camera_failed;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp236_ = photos_message;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp237_ = videos_message;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp238_ = both_message;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp239_ = neither_message;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp240_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp235_, GEE_TYPE_COLLECTION, GeeCollection), _tmp236_, _tmp237_, _tmp238_, _tmp239_);
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp241_ = _tmp240_;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp242_ = g_strconcat (_tmp233_, _tmp241_, NULL);
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp242_;
+#line 739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp241_);
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp243_ = message;
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp244_ = manifest;
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp245_ = _tmp244_->camera_failed;
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp246_ = show_dest_id;
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp247_ = import_ui_generate_import_failure_list (_tmp245_, _tmp246_);
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp248_ = _tmp247_;
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp249_ = g_strconcat (_tmp243_, _tmp248_, NULL);
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp249_;
+#line 742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp248_);
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (neither_message);
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (both_message);
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (videos_message);
+#line 722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (photos_message);
+#line 7339 "Dialogs.c"
+ }
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp250_ = manifest;
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp251_ = _tmp250_->corrupt_files;
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp252_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp251_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp253_ = _tmp252_;
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp253_ > 0) {
+#line 7351 "Dialogs.c"
+ const gchar* _tmp254_ = NULL;
+ gint _tmp255_ = 0;
+ gint _tmp256_ = 0;
+ gchar* photos_message = NULL;
+ ImportManifest* _tmp259_ = NULL;
+ GeeList* _tmp260_ = NULL;
+ gint _tmp261_ = 0;
+ gint _tmp262_ = 0;
+ const gchar* _tmp263_ = NULL;
+ ImportManifest* _tmp264_ = NULL;
+ GeeList* _tmp265_ = NULL;
+ gint _tmp266_ = 0;
+ gint _tmp267_ = 0;
+ gchar* _tmp268_ = NULL;
+ gchar* videos_message = NULL;
+ ImportManifest* _tmp269_ = NULL;
+ GeeList* _tmp270_ = NULL;
+ gint _tmp271_ = 0;
+ gint _tmp272_ = 0;
+ const gchar* _tmp273_ = NULL;
+ ImportManifest* _tmp274_ = NULL;
+ GeeList* _tmp275_ = NULL;
+ gint _tmp276_ = 0;
+ gint _tmp277_ = 0;
+ gchar* _tmp278_ = NULL;
+ gchar* both_message = NULL;
+ ImportManifest* _tmp279_ = NULL;
+ GeeList* _tmp280_ = NULL;
+ gint _tmp281_ = 0;
+ gint _tmp282_ = 0;
+ const gchar* _tmp283_ = NULL;
+ ImportManifest* _tmp284_ = NULL;
+ GeeList* _tmp285_ = NULL;
+ gint _tmp286_ = 0;
+ gint _tmp287_ = 0;
+ gchar* _tmp288_ = NULL;
+ gchar* neither_message = NULL;
+ ImportManifest* _tmp289_ = NULL;
+ GeeList* _tmp290_ = NULL;
+ gint _tmp291_ = 0;
+ gint _tmp292_ = 0;
+ const gchar* _tmp293_ = NULL;
+ ImportManifest* _tmp294_ = NULL;
+ GeeList* _tmp295_ = NULL;
+ gint _tmp296_ = 0;
+ gint _tmp297_ = 0;
+ gchar* _tmp298_ = NULL;
+ const gchar* _tmp299_ = NULL;
+ ImportManifest* _tmp300_ = NULL;
+ GeeList* _tmp301_ = NULL;
+ const gchar* _tmp302_ = NULL;
+ const gchar* _tmp303_ = NULL;
+ const gchar* _tmp304_ = NULL;
+ const gchar* _tmp305_ = NULL;
+ gchar* _tmp306_ = NULL;
+ gchar* _tmp307_ = NULL;
+ gchar* _tmp308_ = NULL;
+ const gchar* _tmp309_ = NULL;
+ ImportManifest* _tmp310_ = NULL;
+ GeeList* _tmp311_ = NULL;
+ gboolean _tmp312_ = FALSE;
+ gchar* _tmp313_ = NULL;
+ gchar* _tmp314_ = NULL;
+ gchar* _tmp315_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp254_ = message;
+#line 746 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp255_ = strlen (_tmp254_);
+#line 746 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp256_ = _tmp255_;
+#line 746 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp256_ > 0) {
+#line 7424 "Dialogs.c"
+ const gchar* _tmp257_ = NULL;
+ gchar* _tmp258_ = NULL;
+#line 747 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp257_ = message;
+#line 747 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp258_ = g_strconcat (_tmp257_, "\n", NULL);
+#line 747 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 747 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp258_;
+#line 7435 "Dialogs.c"
+ }
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp259_ = manifest;
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp260_ = _tmp259_->corrupt_files;
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp261_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp260_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp262_ = _tmp261_;
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp263_ = ngettext ("1 photo failed to import because it was corrupt:\n", "%d photos failed to import because they were corrupt:\n", (gulong) _tmp262_);
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp264_ = manifest;
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp265_ = _tmp264_->corrupt_files;
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp266_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp265_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp267_ = _tmp266_;
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp268_ = g_strdup_printf (_tmp263_, _tmp267_);
+#line 749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos_message = _tmp268_;
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp269_ = manifest;
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp270_ = _tmp269_->corrupt_files;
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp271_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp270_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp272_ = _tmp271_;
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp273_ = ngettext ("1 video failed to import because it was corrupt:\n", "%d videos failed to import because they were corrupt:\n", (gulong) _tmp272_);
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp274_ = manifest;
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp275_ = _tmp274_->corrupt_files;
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp276_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp275_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp277_ = _tmp276_;
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp278_ = g_strdup_printf (_tmp273_, _tmp277_);
+#line 752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos_message = _tmp278_;
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp279_ = manifest;
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp280_ = _tmp279_->corrupt_files;
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp281_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp280_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp282_ = _tmp281_;
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp283_ = ngettext ("1 photo/video failed to import because it was corrupt:\n", "%d photos/videos failed to import because they were corrupt:\n", (gulong) _tmp282_);
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp284_ = manifest;
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp285_ = _tmp284_->corrupt_files;
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp286_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp285_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp287_ = _tmp286_;
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp288_ = g_strdup_printf (_tmp283_, _tmp287_);
+#line 755 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ both_message = _tmp288_;
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp289_ = manifest;
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp290_ = _tmp289_->corrupt_files;
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp291_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp290_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp292_ = _tmp291_;
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp293_ = ngettext ("1 file failed to import because it was corrupt:\n", "%d files failed to import because it was corrupt:\n", (gulong) _tmp292_);
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp294_ = manifest;
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp295_ = _tmp294_->corrupt_files;
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp296_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp295_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp297_ = _tmp296_;
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp298_ = g_strdup_printf (_tmp293_, _tmp297_);
+#line 758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ neither_message = _tmp298_;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp299_ = message;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp300_ = manifest;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp301_ = _tmp300_->corrupt_files;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp302_ = photos_message;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp303_ = videos_message;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp304_ = both_message;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp305_ = neither_message;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp306_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp301_, GEE_TYPE_COLLECTION, GeeCollection), _tmp302_, _tmp303_, _tmp304_, _tmp305_);
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp307_ = _tmp306_;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp308_ = g_strconcat (_tmp299_, _tmp307_, NULL);
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp308_;
+#line 762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp307_);
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp309_ = message;
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp310_ = manifest;
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp311_ = _tmp310_->corrupt_files;
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp312_ = show_dest_id;
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp313_ = import_ui_generate_import_failure_list (_tmp311_, _tmp312_);
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp314_ = _tmp313_;
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp315_ = g_strconcat (_tmp309_, _tmp314_, NULL);
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp315_;
+#line 765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp314_);
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (neither_message);
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (both_message);
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (videos_message);
+#line 745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (photos_message);
+#line 7579 "Dialogs.c"
+ }
+#line 768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp316_ = manifest;
+#line 768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp317_ = _tmp316_->skipped_photos;
+#line 768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp318_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp317_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp319_ = _tmp318_;
+#line 768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp319_ > 0) {
+#line 7591 "Dialogs.c"
+ const gchar* _tmp320_ = NULL;
+ gint _tmp321_ = 0;
+ gint _tmp322_ = 0;
+ gchar* skipped_photos_message = NULL;
+ ImportManifest* _tmp325_ = NULL;
+ GeeList* _tmp326_ = NULL;
+ gint _tmp327_ = 0;
+ gint _tmp328_ = 0;
+ const gchar* _tmp329_ = NULL;
+ ImportManifest* _tmp330_ = NULL;
+ GeeList* _tmp331_ = NULL;
+ gint _tmp332_ = 0;
+ gint _tmp333_ = 0;
+ gchar* _tmp334_ = NULL;
+ const gchar* _tmp335_ = NULL;
+ const gchar* _tmp336_ = NULL;
+ gchar* _tmp337_ = NULL;
+ const gchar* _tmp338_ = NULL;
+ ImportManifest* _tmp339_ = NULL;
+ GeeList* _tmp340_ = NULL;
+ gboolean _tmp341_ = FALSE;
+ gchar* _tmp342_ = NULL;
+ gchar* _tmp343_ = NULL;
+ gchar* _tmp344_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp320_ = message;
+#line 769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp321_ = strlen (_tmp320_);
+#line 769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp322_ = _tmp321_;
+#line 769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp322_ > 0) {
+#line 7624 "Dialogs.c"
+ const gchar* _tmp323_ = NULL;
+ gchar* _tmp324_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp323_ = message;
+#line 770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp324_ = g_strconcat (_tmp323_, "\n", NULL);
+#line 770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp324_;
+#line 7635 "Dialogs.c"
+ }
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp325_ = manifest;
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp326_ = _tmp325_->skipped_photos;
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp327_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp326_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp328_ = _tmp327_;
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp329_ = ngettext ("1 unsupported photo skipped:\n", "%d unsupported photos skipped:\n", (gulong) _tmp328_);
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp330_ = manifest;
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp331_ = _tmp330_->skipped_photos;
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp332_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp331_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp333_ = _tmp332_;
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp334_ = g_strdup_printf (_tmp329_, _tmp333_);
+#line 775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ skipped_photos_message = _tmp334_;
+#line 779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp335_ = message;
+#line 779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp336_ = skipped_photos_message;
+#line 779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp337_ = g_strconcat (_tmp335_, _tmp336_, NULL);
+#line 779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp337_;
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp338_ = message;
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp339_ = manifest;
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp340_ = _tmp339_->skipped_photos;
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp341_ = show_dest_id;
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp342_ = import_ui_generate_import_failure_list (_tmp340_, _tmp341_);
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp343_ = _tmp342_;
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp344_ = g_strconcat (_tmp338_, _tmp343_, NULL);
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp344_;
+#line 781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp343_);
+#line 768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (skipped_photos_message);
+#line 7691 "Dialogs.c"
+ }
+#line 784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp345_ = manifest;
+#line 784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp346_ = _tmp345_->skipped_files;
+#line 784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp347_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp346_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp348_ = _tmp347_;
+#line 784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp348_ > 0) {
+#line 7703 "Dialogs.c"
+ const gchar* _tmp349_ = NULL;
+ gint _tmp350_ = 0;
+ gint _tmp351_ = 0;
+ gchar* skipped_files_message = NULL;
+ ImportManifest* _tmp354_ = NULL;
+ GeeList* _tmp355_ = NULL;
+ gint _tmp356_ = 0;
+ gint _tmp357_ = 0;
+ const gchar* _tmp358_ = NULL;
+ ImportManifest* _tmp359_ = NULL;
+ GeeList* _tmp360_ = NULL;
+ gint _tmp361_ = 0;
+ gint _tmp362_ = 0;
+ gchar* _tmp363_ = NULL;
+ const gchar* _tmp364_ = NULL;
+ const gchar* _tmp365_ = NULL;
+ gchar* _tmp366_ = NULL;
+#line 785 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp349_ = message;
+#line 785 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp350_ = strlen (_tmp349_);
+#line 785 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp351_ = _tmp350_;
+#line 785 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp351_ > 0) {
+#line 7729 "Dialogs.c"
+ const gchar* _tmp352_ = NULL;
+ gchar* _tmp353_ = NULL;
+#line 786 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp352_ = message;
+#line 786 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp353_ = g_strconcat (_tmp352_, "\n", NULL);
+#line 786 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 786 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp353_;
+#line 7740 "Dialogs.c"
+ }
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp354_ = manifest;
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp355_ = _tmp354_->skipped_files;
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp356_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp355_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp357_ = _tmp356_;
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp358_ = ngettext ("1 non-image file skipped.\n", "%d non-image files skipped.\n", (gulong) _tmp357_);
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp359_ = manifest;
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp360_ = _tmp359_->skipped_files;
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp361_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp360_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp362_ = _tmp361_;
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp363_ = g_strdup_printf (_tmp358_, _tmp362_);
+#line 790 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ skipped_files_message = _tmp363_;
+#line 794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp364_ = message;
+#line 794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp365_ = skipped_files_message;
+#line 794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp366_ = g_strconcat (_tmp364_, _tmp365_, NULL);
+#line 794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp366_;
+#line 784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (skipped_files_message);
+#line 7776 "Dialogs.c"
+ }
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp367_ = manifest;
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp368_ = _tmp367_->aborted;
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp369_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp368_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp370_ = _tmp369_;
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp370_ > 0) {
+#line 7788 "Dialogs.c"
+ const gchar* _tmp371_ = NULL;
+ gint _tmp372_ = 0;
+ gint _tmp373_ = 0;
+ gchar* photos_message = NULL;
+ ImportManifest* _tmp376_ = NULL;
+ GeeList* _tmp377_ = NULL;
+ gint _tmp378_ = 0;
+ gint _tmp379_ = 0;
+ const gchar* _tmp380_ = NULL;
+ ImportManifest* _tmp381_ = NULL;
+ GeeList* _tmp382_ = NULL;
+ gint _tmp383_ = 0;
+ gint _tmp384_ = 0;
+ gchar* _tmp385_ = NULL;
+ gchar* videos_message = NULL;
+ ImportManifest* _tmp386_ = NULL;
+ GeeList* _tmp387_ = NULL;
+ gint _tmp388_ = 0;
+ gint _tmp389_ = 0;
+ const gchar* _tmp390_ = NULL;
+ ImportManifest* _tmp391_ = NULL;
+ GeeList* _tmp392_ = NULL;
+ gint _tmp393_ = 0;
+ gint _tmp394_ = 0;
+ gchar* _tmp395_ = NULL;
+ gchar* both_message = NULL;
+ ImportManifest* _tmp396_ = NULL;
+ GeeList* _tmp397_ = NULL;
+ gint _tmp398_ = 0;
+ gint _tmp399_ = 0;
+ const gchar* _tmp400_ = NULL;
+ ImportManifest* _tmp401_ = NULL;
+ GeeList* _tmp402_ = NULL;
+ gint _tmp403_ = 0;
+ gint _tmp404_ = 0;
+ gchar* _tmp405_ = NULL;
+ gchar* neither_message = NULL;
+ ImportManifest* _tmp406_ = NULL;
+ GeeList* _tmp407_ = NULL;
+ gint _tmp408_ = 0;
+ gint _tmp409_ = 0;
+ const gchar* _tmp410_ = NULL;
+ ImportManifest* _tmp411_ = NULL;
+ GeeList* _tmp412_ = NULL;
+ gint _tmp413_ = 0;
+ gint _tmp414_ = 0;
+ gchar* _tmp415_ = NULL;
+ const gchar* _tmp416_ = NULL;
+ ImportManifest* _tmp417_ = NULL;
+ GeeList* _tmp418_ = NULL;
+ const gchar* _tmp419_ = NULL;
+ const gchar* _tmp420_ = NULL;
+ const gchar* _tmp421_ = NULL;
+ const gchar* _tmp422_ = NULL;
+ gchar* _tmp423_ = NULL;
+ gchar* _tmp424_ = NULL;
+ gchar* _tmp425_ = NULL;
+ const gchar* _tmp426_ = NULL;
+ ImportManifest* _tmp427_ = NULL;
+ GeeList* _tmp428_ = NULL;
+ gboolean _tmp429_ = FALSE;
+ gchar* _tmp430_ = NULL;
+ gchar* _tmp431_ = NULL;
+ gchar* _tmp432_ = NULL;
+#line 798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp371_ = message;
+#line 798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp372_ = strlen (_tmp371_);
+#line 798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp373_ = _tmp372_;
+#line 798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp373_ > 0) {
+#line 7861 "Dialogs.c"
+ const gchar* _tmp374_ = NULL;
+ gchar* _tmp375_ = NULL;
+#line 799 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp374_ = message;
+#line 799 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp375_ = g_strconcat (_tmp374_, "\n", NULL);
+#line 799 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 799 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp375_;
+#line 7872 "Dialogs.c"
+ }
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp376_ = manifest;
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp377_ = _tmp376_->aborted;
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp378_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp377_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp379_ = _tmp378_;
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp380_ = ngettext ("1 photo skipped due to user cancel:\n", "%d photos skipped due to user cancel:\n", (gulong) _tmp379_);
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp381_ = manifest;
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp382_ = _tmp381_->aborted;
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp383_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp382_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp384_ = _tmp383_;
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp385_ = g_strdup_printf (_tmp380_, _tmp384_);
+#line 801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos_message = _tmp385_;
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp386_ = manifest;
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp387_ = _tmp386_->aborted;
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp388_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp387_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp389_ = _tmp388_;
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp390_ = ngettext ("1 video skipped due to user cancel:\n", "%d videos skipped due to user cancel:\n", (gulong) _tmp389_);
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp391_ = manifest;
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp392_ = _tmp391_->aborted;
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp393_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp392_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp394_ = _tmp393_;
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp395_ = g_strdup_printf (_tmp390_, _tmp394_);
+#line 804 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos_message = _tmp395_;
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp396_ = manifest;
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp397_ = _tmp396_->aborted;
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp398_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp397_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp399_ = _tmp398_;
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp400_ = ngettext ("1 photo/video skipped due to user cancel:\n", "%d photos/videos skipped due to user cancel:\n", (gulong) _tmp399_);
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp401_ = manifest;
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp402_ = _tmp401_->aborted;
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp403_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp402_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp404_ = _tmp403_;
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp405_ = g_strdup_printf (_tmp400_, _tmp404_);
+#line 807 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ both_message = _tmp405_;
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp406_ = manifest;
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp407_ = _tmp406_->aborted;
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp408_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp407_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp409_ = _tmp408_;
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp410_ = ngettext ("1 file skipped due to user cancel:\n", "%d file skipped due to user cancel:\n", (gulong) _tmp409_);
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp411_ = manifest;
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp412_ = _tmp411_->aborted;
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp413_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp412_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp414_ = _tmp413_;
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp415_ = g_strdup_printf (_tmp410_, _tmp414_);
+#line 810 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ neither_message = _tmp415_;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp416_ = message;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp417_ = manifest;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp418_ = _tmp417_->aborted;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp419_ = photos_message;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp420_ = videos_message;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp421_ = both_message;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp422_ = neither_message;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp423_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp418_, GEE_TYPE_COLLECTION, GeeCollection), _tmp419_, _tmp420_, _tmp421_, _tmp422_);
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp424_ = _tmp423_;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp425_ = g_strconcat (_tmp416_, _tmp424_, NULL);
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp425_;
+#line 814 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp424_);
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp426_ = message;
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp427_ = manifest;
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp428_ = _tmp427_->aborted;
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp429_ = show_dest_id;
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp430_ = import_ui_generate_import_failure_list (_tmp428_, _tmp429_);
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp431_ = _tmp430_;
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp432_ = g_strconcat (_tmp426_, _tmp431_, NULL);
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp432_;
+#line 817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp431_);
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (neither_message);
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (both_message);
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (videos_message);
+#line 797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (photos_message);
+#line 8016 "Dialogs.c"
+ }
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp433_ = manifest;
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp434_ = _tmp433_->success;
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp435_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp434_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp436_ = _tmp435_;
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp436_ > 0) {
+#line 8028 "Dialogs.c"
+ const gchar* _tmp437_ = NULL;
+ gint _tmp438_ = 0;
+ gint _tmp439_ = 0;
+ gchar* photos_message = NULL;
+ ImportManifest* _tmp442_ = NULL;
+ GeeList* _tmp443_ = NULL;
+ gint _tmp444_ = 0;
+ gint _tmp445_ = 0;
+ const gchar* _tmp446_ = NULL;
+ ImportManifest* _tmp447_ = NULL;
+ GeeList* _tmp448_ = NULL;
+ gint _tmp449_ = 0;
+ gint _tmp450_ = 0;
+ gchar* _tmp451_ = NULL;
+ gchar* videos_message = NULL;
+ ImportManifest* _tmp452_ = NULL;
+ GeeList* _tmp453_ = NULL;
+ gint _tmp454_ = 0;
+ gint _tmp455_ = 0;
+ const gchar* _tmp456_ = NULL;
+ ImportManifest* _tmp457_ = NULL;
+ GeeList* _tmp458_ = NULL;
+ gint _tmp459_ = 0;
+ gint _tmp460_ = 0;
+ gchar* _tmp461_ = NULL;
+ gchar* both_message = NULL;
+ ImportManifest* _tmp462_ = NULL;
+ GeeList* _tmp463_ = NULL;
+ gint _tmp464_ = 0;
+ gint _tmp465_ = 0;
+ const gchar* _tmp466_ = NULL;
+ ImportManifest* _tmp467_ = NULL;
+ GeeList* _tmp468_ = NULL;
+ gint _tmp469_ = 0;
+ gint _tmp470_ = 0;
+ gchar* _tmp471_ = NULL;
+ const gchar* _tmp472_ = NULL;
+ ImportManifest* _tmp473_ = NULL;
+ GeeList* _tmp474_ = NULL;
+ const gchar* _tmp475_ = NULL;
+ const gchar* _tmp476_ = NULL;
+ const gchar* _tmp477_ = NULL;
+ gchar* _tmp478_ = NULL;
+ gchar* _tmp479_ = NULL;
+ gchar* _tmp480_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp437_ = message;
+#line 821 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp438_ = strlen (_tmp437_);
+#line 821 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp439_ = _tmp438_;
+#line 821 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp439_ > 0) {
+#line 8082 "Dialogs.c"
+ const gchar* _tmp440_ = NULL;
+ gchar* _tmp441_ = NULL;
+#line 822 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp440_ = message;
+#line 822 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp441_ = g_strconcat (_tmp440_, "\n", NULL);
+#line 822 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 822 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp441_;
+#line 8093 "Dialogs.c"
+ }
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp442_ = manifest;
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp443_ = _tmp442_->success;
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp444_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp443_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp445_ = _tmp444_;
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp446_ = ngettext ("1 photo successfully imported.\n", "%d photos successfully imported.\n", (gulong) _tmp445_);
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp447_ = manifest;
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp448_ = _tmp447_->success;
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp449_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp448_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp450_ = _tmp449_;
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp451_ = g_strdup_printf (_tmp446_, _tmp450_);
+#line 824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos_message = _tmp451_;
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp452_ = manifest;
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp453_ = _tmp452_->success;
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp454_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp453_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp455_ = _tmp454_;
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp456_ = ngettext ("1 video successfully imported.\n", "%d videos successfully imported.\n", (gulong) _tmp455_);
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp457_ = manifest;
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp458_ = _tmp457_->success;
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp459_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp458_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp460_ = _tmp459_;
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp461_ = g_strdup_printf (_tmp456_, _tmp460_);
+#line 827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos_message = _tmp461_;
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp462_ = manifest;
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp463_ = _tmp462_->success;
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp464_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp463_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp465_ = _tmp464_;
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp466_ = ngettext ("1 photo/video successfully imported.\n", "%d photos/videos successfully imported.\n", (gulong) _tmp465_);
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp467_ = manifest;
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp468_ = _tmp467_->success;
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp469_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp468_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp470_ = _tmp469_;
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp471_ = g_strdup_printf (_tmp466_, _tmp470_);
+#line 830 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ both_message = _tmp471_;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp472_ = message;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp473_ = manifest;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp474_ = _tmp473_->success;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp475_ = photos_message;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp476_ = videos_message;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp477_ = both_message;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp478_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp474_, GEE_TYPE_COLLECTION, GeeCollection), _tmp475_, _tmp476_, _tmp477_, "");
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp479_ = _tmp478_;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp480_ = g_strconcat (_tmp472_, _tmp479_, NULL);
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp480_;
+#line 834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp479_);
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (both_message);
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (videos_message);
+#line 820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (photos_message);
+#line 8191 "Dialogs.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp481_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp482_ = _tmp481_->success;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp483_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp482_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp484_ = _tmp483_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp485_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp486_ = _tmp485_->failed;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp487_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp486_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp488_ = _tmp487_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp489_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp490_ = _tmp489_->camera_failed;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp491_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp490_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp492_ = _tmp491_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp493_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp494_ = _tmp493_->skipped_photos;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp495_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp494_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp496_ = _tmp495_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp497_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp498_ = _tmp497_->skipped_files;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp499_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp498_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp500_ = _tmp499_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp501_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp502_ = _tmp501_->corrupt_files;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp503_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp502_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp504_ = _tmp503_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp505_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp506_ = _tmp505_->already_imported;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp507_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp506_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp508_ = _tmp507_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp509_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp510_ = _tmp509_->aborted;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp511_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp510_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp512_ = _tmp511_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp513_ = manifest;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp514_ = _tmp513_->write_failed;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp515_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp514_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp516_ = _tmp515_;
+#line 838 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ total = (((((((_tmp484_ + _tmp488_) + _tmp492_) + _tmp496_) + _tmp500_) + _tmp504_) + _tmp508_) + _tmp512_) + _tmp516_;
+#line 841 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp517_ = total;
+#line 841 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp518_ = manifest;
+#line 841 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp519_ = _tmp518_->all;
+#line 841 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp520_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp519_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 841 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp521_ = _tmp520_;
+#line 841 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_assert (_tmp517_ == _tmp521_, "total == manifest.all.size");
+#line 845 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp522_ = total;
+#line 845 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp522_ == 0) {
+#line 8283 "Dialogs.c"
+ const gchar* _tmp523_ = NULL;
+ const gchar* _tmp524_ = NULL;
+ gchar* _tmp525_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp523_ = message;
+#line 846 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp524_ = _ ("No photos or videos imported.\n");
+#line 846 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp525_ = g_strconcat (_tmp523_, _tmp524_, NULL);
+#line 846 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 846 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp525_;
+#line 8297 "Dialogs.c"
+ }
+#line 848 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = NULL;
+#line 849 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_response = (gint) GTK_RESPONSE_NONE;
+#line 850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp526_ = question;
+#line 850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp526_ == NULL) {
+#line 8307 "Dialogs.c"
+ AppWindow* _tmp527_ = NULL;
+ AppWindow* _tmp528_ = NULL;
+ const gchar* _tmp529_ = NULL;
+ GtkMessageDialog* _tmp530_ = NULL;
+ GtkMessageDialog* _tmp531_ = NULL;
+ const gchar* _tmp532_ = NULL;
+ GtkWidget* save_results_button = NULL;
+ GtkMessageDialog* _tmp533_ = NULL;
+ GtkWidget* _tmp534_ = NULL;
+ GtkWidget* _tmp535_ = NULL;
+ GtkWidget* _tmp536_ = NULL;
+ ImportManifest* _tmp537_ = NULL;
+ GeeList* _tmp538_ = NULL;
+ gint _tmp539_ = 0;
+ gint _tmp540_ = 0;
+ ImportManifest* _tmp541_ = NULL;
+ GeeList* _tmp542_ = NULL;
+ gint _tmp543_ = 0;
+ gint _tmp544_ = 0;
+ GtkWidget* ok_button = NULL;
+ GtkMessageDialog* _tmp545_ = NULL;
+ GtkWidget* _tmp546_ = NULL;
+ GtkWidget* _tmp547_ = NULL;
+ GtkMessageDialog* _tmp548_ = NULL;
+ GtkWidget* _tmp549_ = NULL;
+ GtkWindow* dialog_parent = NULL;
+ GtkMessageDialog* _tmp550_ = NULL;
+ GtkContainer* _tmp551_ = NULL;
+ GtkWindow* _tmp552_ = NULL;
+ GtkMessageDialog* _tmp553_ = NULL;
+ gint _tmp554_ = 0;
+ GtkMessageDialog* _tmp555_ = NULL;
+ gint _tmp556_ = 0;
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp527_ = app_window_get_instance ();
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp528_ = _tmp527_;
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp529_ = message;
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp530_ = (GtkMessageDialog*) gtk_message_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp528_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_NONE, "%s", _tmp529_);
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp530_);
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp530_;
+#line 851 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp528_);
+#line 853 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp531_ = dialog;
+#line 853 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp532_ = _ ("Import Complete");
+#line 853 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp531_, gtk_window_get_type (), GtkWindow), _tmp532_);
+#line 854 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp533_ = dialog;
+#line 854 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp534_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp533_, gtk_dialog_get_type (), GtkDialog), IMPORT_UI_SAVE_RESULTS_BUTTON_NAME, IMPORT_UI_SAVE_RESULTS_RESPONSE_ID);
+#line 854 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp535_ = _g_object_ref0 (_tmp534_);
+#line 854 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ save_results_button = _tmp535_;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp536_ = save_results_button;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp537_ = manifest;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp538_ = _tmp537_->success;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp539_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp538_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp540_ = _tmp539_;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp541_ = manifest;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp542_ = _tmp541_->all;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp543_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp542_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp544_ = _tmp543_;
+#line 856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_visible (_tmp536_, _tmp540_ < _tmp544_);
+#line 857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp545_ = dialog;
+#line 857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp546_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp545_, gtk_dialog_get_type (), GtkDialog), RESOURCES_OK_LABEL, (gint) GTK_RESPONSE_OK);
+#line 857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp547_ = _g_object_ref0 (_tmp546_);
+#line 857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ok_button = _tmp547_;
+#line 858 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp548_ = dialog;
+#line 858 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp549_ = ok_button;
+#line 858 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp548_, gtk_window_get_type (), GtkWindow), _tmp549_);
+#line 860 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp550_ = dialog;
+#line 860 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp551_ = (GtkContainer*) gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (_tmp550_, gtk_widget_get_type (), GtkWidget));
+#line 860 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp552_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp551_, gtk_window_get_type (), GtkWindow));
+#line 860 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_parent = _tmp552_;
+#line 861 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp553_ = dialog;
+#line 861 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp554_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp553_, gtk_dialog_get_type (), GtkDialog));
+#line 861 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_response = _tmp554_;
+#line 862 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp555_ = dialog;
+#line 862 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp555_, gtk_widget_get_type (), GtkWidget));
+#line 864 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp556_ = dialog_response;
+#line 864 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp556_ == IMPORT_UI_SAVE_RESULTS_RESPONSE_ID) {
+#line 8427 "Dialogs.c"
+ GtkWindow* _tmp557_ = NULL;
+ ImportManifest* _tmp558_ = NULL;
+ gchar* _tmp559_ = NULL;
+ gchar* _tmp560_ = NULL;
+#line 865 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp557_ = dialog_parent;
+#line 865 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp558_ = manifest;
+#line 865 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp559_ = import_ui_create_result_report_from_manifest (_tmp558_);
+#line 865 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp560_ = _tmp559_;
+#line 865 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ import_ui_save_import_results (_tmp557_, _tmp560_);
+#line 865 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp560_);
+#line 8444 "Dialogs.c"
+ }
+#line 850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog_parent);
+#line 850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (ok_button);
+#line 850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (save_results_button);
+#line 8452 "Dialogs.c"
+ } else {
+ const gchar* _tmp561_ = NULL;
+ ImportUIQuestionParams* _tmp562_ = NULL;
+ const gchar* _tmp563_ = NULL;
+ gchar* _tmp564_ = NULL;
+ gchar* _tmp565_ = NULL;
+ gchar* _tmp566_ = NULL;
+ AppWindow* _tmp567_ = NULL;
+ AppWindow* _tmp568_ = NULL;
+ const gchar* _tmp569_ = NULL;
+ GtkMessageDialog* _tmp570_ = NULL;
+ GtkMessageDialog* _tmp571_ = NULL;
+ const gchar* _tmp572_ = NULL;
+ GtkWidget* save_results_button = NULL;
+ GtkMessageDialog* _tmp573_ = NULL;
+ GtkWidget* _tmp574_ = NULL;
+ GtkWidget* _tmp575_ = NULL;
+ GtkWidget* _tmp576_ = NULL;
+ ImportManifest* _tmp577_ = NULL;
+ GeeList* _tmp578_ = NULL;
+ gint _tmp579_ = 0;
+ gint _tmp580_ = 0;
+ ImportManifest* _tmp581_ = NULL;
+ GeeList* _tmp582_ = NULL;
+ gint _tmp583_ = 0;
+ gint _tmp584_ = 0;
+ GtkWidget* no_button = NULL;
+ GtkMessageDialog* _tmp585_ = NULL;
+ ImportUIQuestionParams* _tmp586_ = NULL;
+ const gchar* _tmp587_ = NULL;
+ GtkWidget* _tmp588_ = NULL;
+ GtkWidget* _tmp589_ = NULL;
+ GtkMessageDialog* _tmp590_ = NULL;
+ ImportUIQuestionParams* _tmp591_ = NULL;
+ const gchar* _tmp592_ = NULL;
+ GtkMessageDialog* _tmp593_ = NULL;
+ GtkWidget* _tmp594_ = NULL;
+ GtkMessageDialog* _tmp595_ = NULL;
+ gint _tmp596_ = 0;
+ GtkMessageDialog* _tmp604_ = NULL;
+ GtkMessageDialog* _tmp605_ = NULL;
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp561_ = message;
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp562_ = question;
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp563_ = _tmp562_->question;
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp564_ = g_strconcat ("\n", _tmp563_, NULL);
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp565_ = _tmp564_;
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp566_ = g_strconcat (_tmp561_, _tmp565_, NULL);
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ message = _tmp566_;
+#line 868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp565_);
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp567_ = app_window_get_instance ();
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp568_ = _tmp567_;
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp569_ = message;
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp570_ = (GtkMessageDialog*) gtk_message_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp568_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", _tmp569_);
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp570_);
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp570_;
+#line 870 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp568_);
+#line 872 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp571_ = dialog;
+#line 872 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp572_ = _ ("Import Complete");
+#line 872 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp571_, gtk_window_get_type (), GtkWindow), _tmp572_);
+#line 873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp573_ = dialog;
+#line 873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp574_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp573_, gtk_dialog_get_type (), GtkDialog), IMPORT_UI_SAVE_RESULTS_BUTTON_NAME, IMPORT_UI_SAVE_RESULTS_RESPONSE_ID);
+#line 873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp575_ = _g_object_ref0 (_tmp574_);
+#line 873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ save_results_button = _tmp575_;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp576_ = save_results_button;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp577_ = manifest;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp578_ = _tmp577_->success;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp579_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp578_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp580_ = _tmp579_;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp581_ = manifest;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp582_ = _tmp581_->all;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp583_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp582_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp584_ = _tmp583_;
+#line 875 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_visible (_tmp576_, _tmp580_ < _tmp584_);
+#line 876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp585_ = dialog;
+#line 876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp586_ = question;
+#line 876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp587_ = _tmp586_->no_button;
+#line 876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp588_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp585_, gtk_dialog_get_type (), GtkDialog), _tmp587_, (gint) GTK_RESPONSE_NO);
+#line 876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp589_ = _g_object_ref0 (_tmp588_);
+#line 876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ no_button = _tmp589_;
+#line 877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp590_ = dialog;
+#line 877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp591_ = question;
+#line 877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp592_ = _tmp591_->yes_button;
+#line 877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp590_, gtk_dialog_get_type (), GtkDialog), _tmp592_, (gint) GTK_RESPONSE_YES);
+#line 878 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp593_ = dialog;
+#line 878 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp594_ = no_button;
+#line 878 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp593_, gtk_window_get_type (), GtkWindow), _tmp594_);
+#line 880 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp595_ = dialog;
+#line 880 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp596_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp595_, gtk_dialog_get_type (), GtkDialog));
+#line 880 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_response = _tmp596_;
+#line 881 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 8596 "Dialogs.c"
+ gint _tmp597_ = 0;
+ GtkMessageDialog* _tmp598_ = NULL;
+ ImportManifest* _tmp599_ = NULL;
+ gchar* _tmp600_ = NULL;
+ gchar* _tmp601_ = NULL;
+ GtkMessageDialog* _tmp602_ = NULL;
+ gint _tmp603_ = 0;
+#line 881 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp597_ = dialog_response;
+#line 881 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp597_ == IMPORT_UI_SAVE_RESULTS_RESPONSE_ID)) {
+#line 881 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 8610 "Dialogs.c"
+ }
+#line 882 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp598_ = dialog;
+#line 882 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp599_ = manifest;
+#line 882 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp600_ = import_ui_create_result_report_from_manifest (_tmp599_);
+#line 882 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp601_ = _tmp600_;
+#line 882 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ import_ui_save_import_results (G_TYPE_CHECK_INSTANCE_CAST (_tmp598_, gtk_window_get_type (), GtkWindow), _tmp601_);
+#line 882 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp601_);
+#line 883 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp602_ = dialog;
+#line 883 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp603_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp602_, gtk_dialog_get_type (), GtkDialog));
+#line 883 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_response = _tmp603_;
+#line 8630 "Dialogs.c"
+ }
+#line 886 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp604_ = dialog;
+#line 886 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp604_, gtk_widget_get_type (), GtkWidget));
+#line 887 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp605_ = dialog;
+#line 887 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp605_, gtk_widget_get_type (), GtkWidget));
+#line 850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (no_button);
+#line 850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (save_results_button);
+#line 8644 "Dialogs.c"
+ }
+#line 890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp606_ = dialog_response;
+#line 890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp606_ == ((gint) GTK_RESPONSE_YES);
+#line 890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (message);
+#line 890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 8656 "Dialogs.c"
+}
+
+
+static guint8* string_get_data (const gchar* self, int* result_length1) {
+ guint8* result;
+ guint8* res = NULL;
+ gint res_length1 = 0;
+ gint _res_size_ = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ guint8* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ guint8* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 1398 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1399 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res = (guint8*) self;
+#line 1399 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res_length1 = -1;
+#line 1399 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _res_size_ = res_length1;
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res_length1 = (gint) _tmp1_;
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = res_length1;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = res;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = res_length1;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4__length1 = _tmp3__length1;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (result_length1) {
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result_length1 = _tmp4__length1;
+#line 8700 "Dialogs.c"
+ }
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8706 "Dialogs.c"
+}
+
+
+void import_ui_save_import_results (GtkWindow* chooser_dialog_parent, const gchar* results_log) {
+ GtkFileChooserDialog* chooser_dialog = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkFileChooserDialog* _tmp1_ = NULL;
+ GtkFileChooserDialog* _tmp2_ = NULL;
+ GtkFileChooserDialog* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkFileChooserDialog* _tmp5_ = NULL;
+ GtkFileChooserDialog* _tmp6_ = NULL;
+ gint dialog_result = 0;
+ GtkFileChooserDialog* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ GFile* chosen_file = NULL;
+ GtkFileChooserDialog* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GtkFileChooserDialog* _tmp11_ = NULL;
+ GtkFileChooserDialog* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gint _tmp14_ = 0;
+ GError * _inner_error_ = NULL;
+#line 893 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail ((chooser_dialog_parent == NULL) || GTK_IS_WINDOW (chooser_dialog_parent));
+#line 893 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (results_log != NULL);
+#line 894 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = chooser_dialog_parent;
+#line 894 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (IMPORT_UI_SAVE_RESULTS_FILE_CHOOSER_TITLE, _tmp0_, GTK_FILE_CHOOSER_ACTION_SAVE, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_SAVE_AS_LABEL, GTK_RESPONSE_ACCEPT, NULL, NULL);
+#line 894 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp1_);
+#line 894 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ chooser_dialog = _tmp1_;
+#line 897 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = chooser_dialog;
+#line 897 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_do_overwrite_confirmation (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), TRUE);
+#line 898 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = chooser_dialog;
+#line 898 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_get_home_dir ();
+#line 898 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp4_);
+#line 899 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = chooser_dialog;
+#line 899 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_current_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), "Shotwell Import Log.txt");
+#line 900 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = chooser_dialog;
+#line 900 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_local_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
+#line 902 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = chooser_dialog;
+#line 902 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_dialog_get_type (), GtkDialog));
+#line 902 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_result = _tmp8_;
+#line 903 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = chooser_dialog;
+#line 903 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gtk_file_chooser_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 903 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ chosen_file = _tmp10_;
+#line 904 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = chooser_dialog;
+#line 904 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
+#line 905 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = chooser_dialog;
+#line 905 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = dialog_result;
+#line 907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp14_ == ((gint) GTK_RESPONSE_ACCEPT)) {
+#line 8784 "Dialogs.c"
+ GFile* _tmp15_ = NULL;
+#line 907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = chosen_file;
+#line 907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp15_ != NULL;
+#line 8790 "Dialogs.c"
+ } else {
+#line 907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = FALSE;
+#line 8794 "Dialogs.c"
+ }
+#line 907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp13_) {
+#line 8798 "Dialogs.c"
+ {
+ GFileOutputStream* outstream = NULL;
+ GFile* _tmp16_ = NULL;
+ GFileOutputStream* _tmp17_ = NULL;
+ GFileOutputStream* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ guint8* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ guint8* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GFileOutputStream* _tmp22_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = chosen_file;
+#line 909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = g_file_replace (_tmp16_, NULL, FALSE, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ outstream = _tmp17_;
+#line 909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8818 "Dialogs.c"
+ goto __catch411_g_error;
+ }
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = outstream;
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = results_log;
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = string_get_data (_tmp19_, &_tmp20__length1);
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = _tmp20_;
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21__length1 = _tmp20__length1;
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_output_stream_write (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, G_TYPE_OUTPUT_STREAM, GOutputStream), _tmp21_, (gsize) _tmp21__length1, NULL, &_inner_error_);
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 910 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (outstream);
+#line 8837 "Dialogs.c"
+ goto __catch411_g_error;
+ }
+#line 911 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = outstream;
+#line 911 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_output_stream_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, G_TYPE_OUTPUT_STREAM, GOutputStream), NULL, &_inner_error_);
+#line 911 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 911 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (outstream);
+#line 8848 "Dialogs.c"
+ goto __catch411_g_error;
+ }
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (outstream);
+#line 8853 "Dialogs.c"
+ }
+ goto __finally411;
+ __catch411_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ GError* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ err = _inner_error_;
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _inner_error_ = NULL;
+#line 913 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = chosen_file;
+#line 913 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = g_file_get_path (_tmp23_);
+#line 913 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = _tmp24_;
+#line 913 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = err;
+#line 913 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = _tmp26_->message;
+#line 913 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_critical ("Dialogs.vala:913: couldn't save import results to log file %s: %s", _tmp25_, _tmp27_);
+#line 913 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp25_);
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_error_free0 (err);
+#line 8884 "Dialogs.c"
+ }
+ __finally411:
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (chosen_file);
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (chooser_dialog);
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_clear_error (&_inner_error_);
+#line 908 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 8899 "Dialogs.c"
+ }
+ }
+#line 893 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (chosen_file);
+#line 893 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (chooser_dialog);
+#line 8906 "Dialogs.c"
+}
+
+
+static gboolean _text_entry_dialog_mediator_on_modify_validate_text_entry_dialog_on_modify_validate_type (const gchar* text, gpointer self) {
+ gboolean result;
+ result = text_entry_dialog_mediator_on_modify_validate ((TextEntryDialogMediator*) self, text);
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 8915 "Dialogs.c"
+}
+
+
+TextEntryDialogMediator* text_entry_dialog_mediator_construct (GType object_type, const gchar* title, const gchar* label, const gchar* initial_text, GeeCollection* completion_list, const gchar* completion_delimiter) {
+ TextEntryDialogMediator* self = NULL;
+ GtkBuilder* builder = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ TextEntryDialog* _tmp1_ = NULL;
+ TextEntryDialog* _tmp2_ = NULL;
+ GtkBox* _tmp3_ = NULL;
+ GObject* _tmp4_ = NULL;
+ TextEntryDialog* _tmp5_ = NULL;
+ TextEntryDialog* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (title != NULL, NULL);
+#line 924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (label != NULL, NULL);
+#line 924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail ((completion_list == NULL) || GEE_IS_COLLECTION (completion_list), NULL);
+#line 924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (TextEntryDialogMediator*) g_type_create_instance (object_type);
+#line 926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ builder = _tmp0_;
+#line 927 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = text_entry_dialog_new ();
+#line 927 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp1_);
+#line 927 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 927 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->dialog = _tmp1_;
+#line 928 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->dialog;
+#line 928 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_dialog_get_type (), GtkDialog));
+#line 928 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_builder_get_object (builder, "dialog-vbox2");
+#line 928 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_box_get_type (), GtkBox), gtk_widget_get_type (), GtkWidget));
+#line 929 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->dialog;
+#line 929 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_set_builder (_tmp5_, builder);
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->dialog;
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = title;
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = label;
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = initial_text;
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = completion_list;
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = completion_delimiter;
+#line 930 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_setup (_tmp6_, _text_entry_dialog_mediator_on_modify_validate_text_entry_dialog_on_modify_validate_type, self, _tmp7_, _tmp8_, _tmp9_, _tmp10_, _tmp11_);
+#line 924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (builder);
+#line 924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 8984 "Dialogs.c"
+}
+
+
+static gboolean text_entry_dialog_mediator_real_on_modify_validate (TextEntryDialogMediator* self, const gchar* text) {
+ gboolean result = FALSE;
+#line 933 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 934 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 934 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 8996 "Dialogs.c"
+}
+
+
+gboolean text_entry_dialog_mediator_on_modify_validate (TextEntryDialogMediator* self, const gchar* text) {
+#line 933 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_TEXT_ENTRY_DIALOG_MEDIATOR (self), FALSE);
+#line 933 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS (self)->on_modify_validate (self, text);
+#line 9005 "Dialogs.c"
+}
+
+
+gchar* _text_entry_dialog_mediator_execute (TextEntryDialogMediator* self) {
+ gchar* result = NULL;
+ TextEntryDialog* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 937 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_TEXT_ENTRY_DIALOG_MEDIATOR (self), NULL);
+#line 938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->dialog;
+#line 938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = text_entry_dialog_execute (_tmp0_);
+#line 938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp1_;
+#line 938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9023 "Dialogs.c"
+}
+
+
+static void value_text_entry_dialog_mediator_init (GValue* value) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9030 "Dialogs.c"
+}
+
+
+static void value_text_entry_dialog_mediator_free_value (GValue* value) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (value->data[0].v_pointer) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_mediator_unref (value->data[0].v_pointer);
+#line 9039 "Dialogs.c"
+ }
+}
+
+
+static void value_text_entry_dialog_mediator_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (src_value->data[0].v_pointer) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = text_entry_dialog_mediator_ref (src_value->data[0].v_pointer);
+#line 9049 "Dialogs.c"
+ } else {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 9053 "Dialogs.c"
+ }
+}
+
+
+static gpointer value_text_entry_dialog_mediator_peek_pointer (const GValue* value) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 9061 "Dialogs.c"
+}
+
+
+static gchar* value_text_entry_dialog_mediator_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (collect_values[0].v_pointer) {
+#line 9068 "Dialogs.c"
+ TextEntryDialogMediator* object;
+ object = collect_values[0].v_pointer;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9075 "Dialogs.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9079 "Dialogs.c"
+ }
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = text_entry_dialog_mediator_ref (object);
+#line 9083 "Dialogs.c"
+ } else {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9087 "Dialogs.c"
+ }
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 9091 "Dialogs.c"
+}
+
+
+static gchar* value_text_entry_dialog_mediator_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TextEntryDialogMediator** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!object_p) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 9102 "Dialogs.c"
+ }
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!value->data[0].v_pointer) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = NULL;
+#line 9108 "Dialogs.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = value->data[0].v_pointer;
+#line 9112 "Dialogs.c"
+ } else {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = text_entry_dialog_mediator_ref (value->data[0].v_pointer);
+#line 9116 "Dialogs.c"
+ }
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 9120 "Dialogs.c"
+}
+
+
+GParamSpec* param_spec_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTextEntryDialogMediator* spec;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR), NULL);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return G_PARAM_SPEC (spec);
+#line 9134 "Dialogs.c"
+}
+
+
+gpointer value_get_text_entry_dialog_mediator (const GValue* value) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR), NULL);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 9143 "Dialogs.c"
+}
+
+
+void value_set_text_entry_dialog_mediator (GValue* value, gpointer v_object) {
+ TextEntryDialogMediator* old;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_mediator_ref (value->data[0].v_pointer);
+#line 9163 "Dialogs.c"
+ } else {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9167 "Dialogs.c"
+ }
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_mediator_unref (old);
+#line 9173 "Dialogs.c"
+ }
+}
+
+
+void value_take_text_entry_dialog_mediator (GValue* value, gpointer v_object) {
+ TextEntryDialogMediator* old;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 9192 "Dialogs.c"
+ } else {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9196 "Dialogs.c"
+ }
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_mediator_unref (old);
+#line 9202 "Dialogs.c"
+ }
+}
+
+
+static void text_entry_dialog_mediator_class_init (TextEntryDialogMediatorClass * klass) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_mediator_parent_class = g_type_class_peek_parent (klass);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((TextEntryDialogMediatorClass *) klass)->finalize = text_entry_dialog_mediator_finalize;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (TextEntryDialogMediatorPrivate));
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((TextEntryDialogMediatorClass *) klass)->on_modify_validate = text_entry_dialog_mediator_real_on_modify_validate;
+#line 9216 "Dialogs.c"
+}
+
+
+static void text_entry_dialog_mediator_instance_init (TextEntryDialogMediator * self) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = TEXT_ENTRY_DIALOG_MEDIATOR_GET_PRIVATE (self);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->ref_count = 1;
+#line 9225 "Dialogs.c"
+}
+
+
+static void text_entry_dialog_mediator_finalize (TextEntryDialogMediator* obj) {
+ TextEntryDialogMediator * self;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_destroy (self);
+#line 922 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 9237 "Dialogs.c"
+}
+
+
+GType text_entry_dialog_mediator_get_type (void) {
+ static volatile gsize text_entry_dialog_mediator_type_id__volatile = 0;
+ if (g_once_init_enter (&text_entry_dialog_mediator_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_text_entry_dialog_mediator_init, value_text_entry_dialog_mediator_free_value, value_text_entry_dialog_mediator_copy_value, value_text_entry_dialog_mediator_peek_pointer, "p", value_text_entry_dialog_mediator_collect_value, "p", value_text_entry_dialog_mediator_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TextEntryDialogMediatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) text_entry_dialog_mediator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TextEntryDialogMediator), 0, (GInstanceInitFunc) text_entry_dialog_mediator_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType text_entry_dialog_mediator_type_id;
+ text_entry_dialog_mediator_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TextEntryDialogMediator", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&text_entry_dialog_mediator_type_id__volatile, text_entry_dialog_mediator_type_id);
+ }
+ return text_entry_dialog_mediator_type_id__volatile;
+}
+
+
+gpointer text_entry_dialog_mediator_ref (gpointer instance) {
+ TextEntryDialogMediator* self;
+ self = instance;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return instance;
+#line 9262 "Dialogs.c"
+}
+
+
+void text_entry_dialog_mediator_unref (gpointer instance) {
+ TextEntryDialogMediator* self;
+ self = instance;
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS (self)->finalize (self);
+#line 921 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 9275 "Dialogs.c"
+ }
+}
+
+
+static gboolean _multi_text_entry_dialog_mediator_on_modify_validate_multi_text_entry_dialog_on_modify_validate_type (const gchar* text, gpointer self) {
+ gboolean result;
+ result = multi_text_entry_dialog_mediator_on_modify_validate ((MultiTextEntryDialogMediator*) self, text);
+#line 950 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9285 "Dialogs.c"
+}
+
+
+MultiTextEntryDialogMediator* multi_text_entry_dialog_mediator_construct (GType object_type, const gchar* title, const gchar* label, const gchar* initial_text) {
+ MultiTextEntryDialogMediator* self = NULL;
+ GtkBuilder* builder = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ MultiTextEntryDialog* _tmp1_ = NULL;
+ MultiTextEntryDialog* _tmp2_ = NULL;
+ GtkBox* _tmp3_ = NULL;
+ GObject* _tmp4_ = NULL;
+ MultiTextEntryDialog* _tmp5_ = NULL;
+ MultiTextEntryDialog* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 945 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (title != NULL, NULL);
+#line 945 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (label != NULL, NULL);
+#line 945 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (MultiTextEntryDialogMediator*) g_type_create_instance (object_type);
+#line 946 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 946 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ builder = _tmp0_;
+#line 947 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = multi_text_entry_dialog_new ();
+#line 947 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp1_);
+#line 947 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 947 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->dialog = _tmp1_;
+#line 948 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->dialog;
+#line 948 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_dialog_get_type (), GtkDialog));
+#line 948 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_builder_get_object (builder, "dialog-vbox4");
+#line 948 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_box_get_type (), GtkBox), gtk_widget_get_type (), GtkWidget));
+#line 949 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->dialog;
+#line 949 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_set_builder (_tmp5_, builder);
+#line 950 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->dialog;
+#line 950 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = title;
+#line 950 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = label;
+#line 950 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = initial_text;
+#line 950 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_setup (_tmp6_, _multi_text_entry_dialog_mediator_on_modify_validate_multi_text_entry_dialog_on_modify_validate_type, self, _tmp7_, _tmp8_, _tmp9_);
+#line 945 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (builder);
+#line 945 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 9346 "Dialogs.c"
+}
+
+
+static gboolean multi_text_entry_dialog_mediator_real_on_modify_validate (MultiTextEntryDialogMediator* self, const gchar* text) {
+ gboolean result = FALSE;
+#line 953 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 954 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 954 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9358 "Dialogs.c"
+}
+
+
+gboolean multi_text_entry_dialog_mediator_on_modify_validate (MultiTextEntryDialogMediator* self, const gchar* text) {
+#line 953 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR (self), FALSE);
+#line 953 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS (self)->on_modify_validate (self, text);
+#line 9367 "Dialogs.c"
+}
+
+
+gchar* _multi_text_entry_dialog_mediator_execute (MultiTextEntryDialogMediator* self) {
+ gchar* result = NULL;
+ MultiTextEntryDialog* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR (self), NULL);
+#line 958 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->dialog;
+#line 958 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = multi_text_entry_dialog_execute (_tmp0_);
+#line 958 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp1_;
+#line 958 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9385 "Dialogs.c"
+}
+
+
+static void value_multi_text_entry_dialog_mediator_init (GValue* value) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9392 "Dialogs.c"
+}
+
+
+static void value_multi_text_entry_dialog_mediator_free_value (GValue* value) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (value->data[0].v_pointer) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_mediator_unref (value->data[0].v_pointer);
+#line 9401 "Dialogs.c"
+ }
+}
+
+
+static void value_multi_text_entry_dialog_mediator_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (src_value->data[0].v_pointer) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = multi_text_entry_dialog_mediator_ref (src_value->data[0].v_pointer);
+#line 9411 "Dialogs.c"
+ } else {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 9415 "Dialogs.c"
+ }
+}
+
+
+static gpointer value_multi_text_entry_dialog_mediator_peek_pointer (const GValue* value) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 9423 "Dialogs.c"
+}
+
+
+static gchar* value_multi_text_entry_dialog_mediator_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (collect_values[0].v_pointer) {
+#line 9430 "Dialogs.c"
+ MultiTextEntryDialogMediator* object;
+ object = collect_values[0].v_pointer;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9437 "Dialogs.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9441 "Dialogs.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = multi_text_entry_dialog_mediator_ref (object);
+#line 9445 "Dialogs.c"
+ } else {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9449 "Dialogs.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 9453 "Dialogs.c"
+}
+
+
+static gchar* value_multi_text_entry_dialog_mediator_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ MultiTextEntryDialogMediator** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!object_p) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 9464 "Dialogs.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!value->data[0].v_pointer) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = NULL;
+#line 9470 "Dialogs.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = value->data[0].v_pointer;
+#line 9474 "Dialogs.c"
+ } else {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = multi_text_entry_dialog_mediator_ref (value->data[0].v_pointer);
+#line 9478 "Dialogs.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 9482 "Dialogs.c"
+}
+
+
+GParamSpec* param_spec_multi_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecMultiTextEntryDialogMediator* spec;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR), NULL);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return G_PARAM_SPEC (spec);
+#line 9496 "Dialogs.c"
+}
+
+
+gpointer value_get_multi_text_entry_dialog_mediator (const GValue* value) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR), NULL);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 9505 "Dialogs.c"
+}
+
+
+void value_set_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object) {
+ MultiTextEntryDialogMediator* old;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_mediator_ref (value->data[0].v_pointer);
+#line 9525 "Dialogs.c"
+ } else {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9529 "Dialogs.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_mediator_unref (old);
+#line 9535 "Dialogs.c"
+ }
+}
+
+
+void value_take_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object) {
+ MultiTextEntryDialogMediator* old;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR));
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 9554 "Dialogs.c"
+ } else {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 9558 "Dialogs.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_mediator_unref (old);
+#line 9564 "Dialogs.c"
+ }
+}
+
+
+static void multi_text_entry_dialog_mediator_class_init (MultiTextEntryDialogMediatorClass * klass) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_mediator_parent_class = g_type_class_peek_parent (klass);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((MultiTextEntryDialogMediatorClass *) klass)->finalize = multi_text_entry_dialog_mediator_finalize;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (MultiTextEntryDialogMediatorPrivate));
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((MultiTextEntryDialogMediatorClass *) klass)->on_modify_validate = multi_text_entry_dialog_mediator_real_on_modify_validate;
+#line 9578 "Dialogs.c"
+}
+
+
+static void multi_text_entry_dialog_mediator_instance_init (MultiTextEntryDialogMediator * self) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_PRIVATE (self);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->ref_count = 1;
+#line 9587 "Dialogs.c"
+}
+
+
+static void multi_text_entry_dialog_mediator_finalize (MultiTextEntryDialogMediator* obj) {
+ MultiTextEntryDialogMediator * self;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediator);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_destroy (self);
+#line 943 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 9599 "Dialogs.c"
+}
+
+
+GType multi_text_entry_dialog_mediator_get_type (void) {
+ static volatile gsize multi_text_entry_dialog_mediator_type_id__volatile = 0;
+ if (g_once_init_enter (&multi_text_entry_dialog_mediator_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_multi_text_entry_dialog_mediator_init, value_multi_text_entry_dialog_mediator_free_value, value_multi_text_entry_dialog_mediator_copy_value, value_multi_text_entry_dialog_mediator_peek_pointer, "p", value_multi_text_entry_dialog_mediator_collect_value, "p", value_multi_text_entry_dialog_mediator_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (MultiTextEntryDialogMediatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_text_entry_dialog_mediator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiTextEntryDialogMediator), 0, (GInstanceInitFunc) multi_text_entry_dialog_mediator_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType multi_text_entry_dialog_mediator_type_id;
+ multi_text_entry_dialog_mediator_type_id = g_type_register_fundamental (g_type_fundamental_next (), "MultiTextEntryDialogMediator", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&multi_text_entry_dialog_mediator_type_id__volatile, multi_text_entry_dialog_mediator_type_id);
+ }
+ return multi_text_entry_dialog_mediator_type_id__volatile;
+}
+
+
+gpointer multi_text_entry_dialog_mediator_ref (gpointer instance) {
+ MultiTextEntryDialogMediator* self;
+ self = instance;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return instance;
+#line 9624 "Dialogs.c"
+}
+
+
+void multi_text_entry_dialog_mediator_unref (gpointer instance) {
+ MultiTextEntryDialogMediator* self;
+ self = instance;
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS (self)->finalize (self);
+#line 942 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 9637 "Dialogs.c"
+ }
+}
+
+
+gchar* build_alert_body_text (const gchar* primary_text, const gchar* secondary_text, gboolean should_escape) {
+ gchar* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 967 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = should_escape;
+#line 967 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 9655 "Dialogs.c"
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = primary_text;
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = guarded_markup_escape_text (_tmp1_);
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = secondary_text;
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = guarded_markup_escape_text (_tmp4_);
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp5_;
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = g_strdup_printf ("<span weight=\"Bold\" size=\"larger\">%s</span>\n%s", _tmp3_, _tmp6_);
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp6_);
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp3_);
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp8_;
+#line 968 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9688 "Dialogs.c"
+ }
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = primary_text;
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = guarded_markup_escape_text (_tmp9_);
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = secondary_text;
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = g_strdup_printf ("<span weight=\"Bold\" size=\"larger\">%s</span>\n%s", _tmp11_, _tmp12_);
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp11_);
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp14_;
+#line 972 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9708 "Dialogs.c"
+}
+
+
+static gboolean _entry_multi_completion_match_func_gtk_entry_completion_match_func (GtkEntryCompletion* completion, const gchar* key, GtkTreeIter* iter, gpointer self) {
+ gboolean result;
+ result = entry_multi_completion_match_func ((EntryMultiCompletion*) self, completion, key, iter);
+#line 987 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9717 "Dialogs.c"
+}
+
+
+EntryMultiCompletion* entry_multi_completion_construct (GType object_type, GeeCollection* completion_list, const gchar* delimiter) {
+ EntryMultiCompletion * self = NULL;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GtkListStore* _tmp8_ = NULL;
+ GtkListStore* _tmp9_ = NULL;
+#line 981 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (completion_list), NULL);
+#line 981 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (EntryMultiCompletion*) g_object_new (object_type, NULL);
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = delimiter;
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_ == NULL) {
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = TRUE;
+#line 9740 "Dialogs.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = delimiter;
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = strlen (_tmp2_);
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp4_ == 1;
+#line 9753 "Dialogs.c"
+ }
+#line 982 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_assert (_tmp0_, "delimiter == null || delimiter.length == 1");
+#line 983 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = delimiter;
+#line 983 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 983 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->priv->delimiter);
+#line 983 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delimiter = _tmp6_;
+#line 985 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = completion_list;
+#line 985 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = entry_multi_completion_create_completion_store (_tmp7_);
+#line 985 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 985 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_completion_set_model (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_entry_completion_get_type (), GtkEntryCompletion), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 985 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp9_);
+#line 986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_completion_set_text_column (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_entry_completion_get_type (), GtkEntryCompletion), 0);
+#line 987 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_completion_set_match_func (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_entry_completion_get_type (), GtkEntryCompletion), _entry_multi_completion_match_func_gtk_entry_completion_match_func, g_object_ref (self), g_object_unref);
+#line 981 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 9781 "Dialogs.c"
+}
+
+
+EntryMultiCompletion* entry_multi_completion_new (GeeCollection* completion_list, const gchar* delimiter) {
+#line 981 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return entry_multi_completion_construct (TYPE_ENTRY_MULTI_COMPLETION, completion_list, delimiter);
+#line 9788 "Dialogs.c"
+}
+
+
+static GtkListStore* entry_multi_completion_create_completion_store (GeeCollection* completion_list) {
+ GtkListStore* result = NULL;
+ GtkListStore* completion_store = NULL;
+ GtkListStore* _tmp0_ = NULL;
+ GtkTreeIter store_iter = {0};
+ GeeIterator* completion_iter = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (completion_list), NULL);
+#line 991 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = gtk_list_store_new (1, G_TYPE_STRING, -1);
+#line 991 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ completion_store = _tmp0_;
+#line 993 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = completion_list;
+#line 993 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 993 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ completion_iter = _tmp2_;
+#line 994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 9814 "Dialogs.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkListStore* _tmp5_ = NULL;
+ GtkTreeIter _tmp6_ = {0};
+ GtkListStore* _tmp7_ = NULL;
+ GtkTreeIter _tmp8_ = {0};
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = completion_iter;
+#line 994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp4_) {
+#line 994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 9832 "Dialogs.c"
+ }
+#line 995 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = completion_store;
+#line 995 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_list_store_append (_tmp5_, &_tmp6_);
+#line 995 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ store_iter = _tmp6_;
+#line 996 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = completion_store;
+#line 996 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = store_iter;
+#line 996 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = completion_iter;
+#line 996 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 996 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = (gchar*) _tmp10_;
+#line 996 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_list_store_set (_tmp7_, &_tmp8_, 0, _tmp11_, -1, -1);
+#line 996 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp11_);
+#line 9854 "Dialogs.c"
+ }
+#line 999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = completion_store;
+#line 999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (completion_iter);
+#line 999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 9862 "Dialogs.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 9885 "Dialogs.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 9905 "Dialogs.c"
+}
+
+
+static gint string_last_index_of_char (const gchar* self, gunichar c, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ gunichar _tmp1_ = 0U;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1017 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = c;
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = g_utf8_strrchr (((gchar*) self) + _tmp0_, (gssize) -1, _tmp1_);
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 1020 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 1020 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 9930 "Dialogs.c"
+ gchar* _tmp4_ = NULL;
+#line 1021 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 1021 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 1021 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 9938 "Dialogs.c"
+ } else {
+#line 1023 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = -1;
+#line 1023 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 9944 "Dialogs.c"
+ }
+}
+
+
+static gboolean entry_multi_completion_match_func (EntryMultiCompletion* self, GtkEntryCompletion* completion, const gchar* key, GtkTreeIter* iter) {
+ gboolean result = FALSE;
+ GtkTreeModel* model = NULL;
+ GtkEntryCompletion* _tmp0_ = NULL;
+ GtkTreeModel* _tmp1_ = NULL;
+ GtkTreeModel* _tmp2_ = NULL;
+ gchar* possible_match = NULL;
+ GtkTreeModel* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* normed_key = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 1002 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_ENTRY_MULTI_COMPLETION (self), FALSE);
+#line 1002 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_ENTRY_COMPLETION (completion), FALSE);
+#line 1002 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 1002 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (iter != NULL, FALSE);
+#line 1003 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = completion;
+#line 1003 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_entry_completion_get_model (_tmp0_);
+#line 1003 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1003 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ model = _tmp2_;
+#line 1005 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = model;
+#line 1005 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = *iter;
+#line 1005 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_tree_model_get (_tmp3_, &_tmp4_, 0, &possible_match, -1);
+#line 1011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = possible_match;
+#line 1011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = g_utf8_casefold (_tmp5_, (gssize) -1);
+#line 1011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 1011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = g_utf8_normalize (_tmp7_, (gssize) -1, G_NORMALIZE_ALL_COMPOSE);
+#line 1011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (possible_match);
+#line 1011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ possible_match = _tmp8_;
+#line 1011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp7_);
+#line 1012 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = key;
+#line 1012 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = g_utf8_normalize (_tmp9_, (gssize) -1, G_NORMALIZE_ALL_COMPOSE);
+#line 1012 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ normed_key = _tmp10_;
+#line 1014 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->delimiter;
+#line 1014 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp11_ == NULL) {
+#line 10012 "Dialogs.c"
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = possible_match;
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = normed_key;
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = string_strip (_tmp13_);
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = _tmp14_;
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = g_str_has_prefix (_tmp12_, _tmp15_);
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = _tmp16_;
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp15_);
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp17_;
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (normed_key);
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (possible_match);
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (model);
+#line 1015 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10043 "Dialogs.c"
+ } else {
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gchar* last_part = NULL;
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ const gchar* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+#line 1017 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = normed_key;
+#line 1017 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = self->priv->delimiter;
+#line 1017 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = string_contains (_tmp18_, _tmp19_);
+#line 1017 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp20_) {
+#line 10072 "Dialogs.c"
+ gint offset = 0;
+ const gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar _tmp24_ = '\0';
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint position = 0;
+ GtkWidget* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+#line 1019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = normed_key;
+#line 1019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = normed_key;
+#line 1019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->priv->delimiter;
+#line 1019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = string_get (_tmp23_, (glong) 0);
+#line 1019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = string_last_index_of_char (_tmp22_, (gunichar) _tmp24_, 0);
+#line 1019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = g_utf8_strlen (_tmp21_, (gssize) _tmp25_);
+#line 1019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ offset = _tmp26_;
+#line 1020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = gtk_entry_completion_get_entry (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_entry_completion_get_type (), GtkEntryCompletion));
+#line 1020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = gtk_editable_get_position (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_entry_get_type (), GtkEntry), GTK_TYPE_EDITABLE, GtkEditable));
+#line 1020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ position = _tmp28_;
+#line 1021 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = position;
+#line 1021 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = offset;
+#line 1021 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp29_ <= _tmp30_) {
+#line 1022 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 1022 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (normed_key);
+#line 1022 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (possible_match);
+#line 1022 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (model);
+#line 1022 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10121 "Dialogs.c"
+ }
+ }
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = normed_key;
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = string_strip (_tmp31_);
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = _tmp32_;
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = self->priv->delimiter;
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = entry_multi_completion_get_last_part (_tmp33_, _tmp34_);
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = _tmp35_;
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp33_);
+#line 1025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ last_part = _tmp36_;
+#line 1027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = last_part;
+#line 1027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = strlen (_tmp37_);
+#line 1027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = _tmp38_;
+#line 1027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp39_ == 0) {
+#line 1028 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 1028 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (last_part);
+#line 1028 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (normed_key);
+#line 1028 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (possible_match);
+#line 1028 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (model);
+#line 1028 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10160 "Dialogs.c"
+ }
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = possible_match;
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = last_part;
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = string_strip (_tmp41_);
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = _tmp42_;
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = g_str_has_prefix (_tmp40_, _tmp43_);
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = _tmp44_;
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp43_);
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp45_;
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (last_part);
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (normed_key);
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (possible_match);
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (model);
+#line 1030 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10188 "Dialogs.c"
+ }
+#line 1002 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (normed_key);
+#line 1002 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (possible_match);
+#line 1002 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (model);
+#line 10196 "Dialogs.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 10219 "Dialogs.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 10227 "Dialogs.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 10239 "Dialogs.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 10263 "Dialogs.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 10269 "Dialogs.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 10273 "Dialogs.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 10277 "Dialogs.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 10289 "Dialogs.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 10299 "Dialogs.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 10305 "Dialogs.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 10319 "Dialogs.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 10329 "Dialogs.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 10335 "Dialogs.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 10344 "Dialogs.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 10364 "Dialogs.c"
+}
+
+
+static gboolean entry_multi_completion_real_match_selected (GtkEntryCompletion* base, GtkTreeModel* model, GtkTreeIter* iter) {
+ EntryMultiCompletion * self;
+ gboolean result = FALSE;
+ gchar* match = NULL;
+ GtkTreeModel* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ GtkEntry* entry = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkEntry* _tmp3_ = NULL;
+ gchar* old_text = NULL;
+ GtkEntry* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ const gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* new_text = NULL;
+ const gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ GtkEntry* _tmp35_ = NULL;
+ GtkEntry* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 1034 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ENTRY_MULTI_COMPLETION, EntryMultiCompletion);
+#line 1034 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
+#line 1034 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (iter != NULL, FALSE);
+#line 1036 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = model;
+#line 1036 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = *iter;
+#line 1036 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_tree_model_get (_tmp0_, &_tmp1_, 0, &match, -1);
+#line 1038 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_entry_completion_get_entry (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_entry_completion_get_type (), GtkEntryCompletion));
+#line 1038 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_entry_get_type (), GtkEntry));
+#line 1038 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ entry = _tmp3_;
+#line 1040 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = entry;
+#line 1040 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = gtk_entry_get_text (_tmp4_);
+#line 1040 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = g_utf8_normalize (_tmp5_, (gssize) -1, G_NORMALIZE_ALL_COMPOSE);
+#line 1040 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old_text = _tmp6_;
+#line 1041 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = old_text;
+#line 1041 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = strlen (_tmp7_);
+#line 1041 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 1041 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_ > 0) {
+#line 10434 "Dialogs.c"
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 1042 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = old_text;
+#line 1042 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->delimiter;
+#line 1042 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = string_contains (_tmp10_, _tmp11_);
+#line 1042 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp12_) {
+#line 10446 "Dialogs.c"
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar _tmp18_ = '\0';
+ gint _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = self->priv->delimiter;
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_strcmp0 (_tmp14_, " ") != 0) {
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = " ";
+#line 10463 "Dialogs.c"
+ } else {
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = "";
+#line 10467 "Dialogs.c"
+ }
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = old_text;
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = old_text;
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->delimiter;
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = string_get (_tmp17_, (glong) 0);
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = string_last_index_of_char (_tmp16_, (gunichar) _tmp18_, 0);
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = string_substring (_tmp15_, (glong) 0, (glong) (_tmp19_ + 1));
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = _tmp20_;
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = g_strconcat (_tmp21_, _tmp13_, NULL);
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (old_text);
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old_text = _tmp22_;
+#line 1043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp21_);
+#line 10491 "Dialogs.c"
+ } else {
+ gchar* _tmp23_ = NULL;
+#line 1045 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = g_strdup ("");
+#line 1045 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (old_text);
+#line 1045 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old_text = _tmp23_;
+#line 10500 "Dialogs.c"
+ }
+ }
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = self->priv->delimiter;
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_strcmp0 (_tmp25_, " ") != 0) {
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = " ";
+#line 10509 "Dialogs.c"
+ } else {
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = "";
+#line 10513 "Dialogs.c"
+ }
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = old_text;
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = match;
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = g_strconcat (_tmp26_, _tmp27_, NULL);
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = _tmp28_;
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = self->priv->delimiter;
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = g_strconcat (_tmp29_, _tmp30_, NULL);
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = _tmp31_;
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = g_strconcat (_tmp32_, _tmp24_, NULL);
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = _tmp33_;
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp32_);
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp29_);
+#line 1048 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ new_text = _tmp34_;
+#line 1049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = entry;
+#line 1049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_text (_tmp35_, new_text);
+#line 1050 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = entry;
+#line 1050 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = strlen (new_text);
+#line 1050 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = _tmp37_;
+#line 1050 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_editable_set_position (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GTK_TYPE_EDITABLE, GtkEditable), (gint) _tmp38_);
+#line 1052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 1052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (new_text);
+#line 1052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (old_text);
+#line 1052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (entry);
+#line 1052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (match);
+#line 1052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10563 "Dialogs.c"
+}
+
+
+static gchar* entry_multi_completion_get_last_part (const gchar* s, const gchar* delimiter) {
+ gchar* result = NULL;
+ gchar** split = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint split_length1 = 0;
+ gint _split_size_ = 0;
+ gboolean _tmp4_ = FALSE;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 1056 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (s != NULL, NULL);
+#line 1056 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (delimiter != NULL, NULL);
+#line 1057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = s;
+#line 1057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = delimiter;
+#line 1057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_ = g_strsplit (_tmp0_, _tmp1_, 0);
+#line 1057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ split = _tmp3_;
+#line 1057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ split_length1 = _vala_array_length (_tmp2_);
+#line 1057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _split_size_ = split_length1;
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = split;
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5__length1 = split_length1;
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_ != NULL) {
+#line 10601 "Dialogs.c"
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ const gchar* _tmp7_ = NULL;
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = split;
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6__length1 = split_length1;
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_[0];
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp7_ != NULL;
+#line 10613 "Dialogs.c"
+ } else {
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = FALSE;
+#line 10617 "Dialogs.c"
+ }
+#line 1059 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp4_) {
+#line 10621 "Dialogs.c"
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = split;
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8__length1 = split_length1;
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = split;
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9__length1 = split_length1;
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp8_[_tmp9__length1 - 1];
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp11_;
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ split = (_vala_array_free (split, split_length1, (GDestroyNotify) g_free), NULL);
+#line 1060 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10646 "Dialogs.c"
+ } else {
+ gchar* _tmp12_ = NULL;
+#line 1062 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = g_strdup ("");
+#line 1062 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp12_;
+#line 1062 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ split = (_vala_array_free (split, split_length1, (GDestroyNotify) g_free), NULL);
+#line 1062 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10657 "Dialogs.c"
+ }
+#line 1056 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ split = (_vala_array_free (split, split_length1, (GDestroyNotify) g_free), NULL);
+#line 10661 "Dialogs.c"
+}
+
+
+static void entry_multi_completion_class_init (EntryMultiCompletionClass * klass) {
+#line 978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ entry_multi_completion_parent_class = g_type_class_peek_parent (klass);
+#line 978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (EntryMultiCompletionPrivate));
+#line 978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((GtkEntryCompletionClass *) klass)->match_selected = entry_multi_completion_real_match_selected;
+#line 978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (klass)->finalize = entry_multi_completion_finalize;
+#line 10674 "Dialogs.c"
+}
+
+
+static void entry_multi_completion_instance_init (EntryMultiCompletion * self) {
+#line 978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = ENTRY_MULTI_COMPLETION_GET_PRIVATE (self);
+#line 10681 "Dialogs.c"
+}
+
+
+static void entry_multi_completion_finalize (GObject* obj) {
+ EntryMultiCompletion * self;
+#line 978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ENTRY_MULTI_COMPLETION, EntryMultiCompletion);
+#line 979 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->priv->delimiter);
+#line 978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (entry_multi_completion_parent_class)->finalize (obj);
+#line 10693 "Dialogs.c"
+}
+
+
+GType entry_multi_completion_get_type (void) {
+ static volatile gsize entry_multi_completion_type_id__volatile = 0;
+ if (g_once_init_enter (&entry_multi_completion_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EntryMultiCompletionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) entry_multi_completion_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EntryMultiCompletion), 0, (GInstanceInitFunc) entry_multi_completion_instance_init, NULL };
+ GType entry_multi_completion_type_id;
+ entry_multi_completion_type_id = g_type_register_static (gtk_entry_completion_get_type (), "EntryMultiCompletion", &g_define_type_info, 0);
+ g_once_init_leave (&entry_multi_completion_type_id__volatile, entry_multi_completion_type_id);
+ }
+ return entry_multi_completion_type_id__volatile;
+}
+
+
+static void _set_background_dialog_on_checkbox_clicked_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) {
+#line 1086 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_dialog_on_checkbox_clicked ((SetBackgroundDialog*) self);
+#line 10712 "Dialogs.c"
+}
+
+
+SetBackgroundDialog* set_background_dialog_construct (GType object_type, GtkBuilder* builder) {
+ SetBackgroundDialog* self = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+ GtkDialog* _tmp2_ = NULL;
+ GtkDialog* _tmp3_ = NULL;
+ GtkDialog* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+ AppWindow* _tmp6_ = NULL;
+ GdkWindow* _tmp7_ = NULL;
+ GtkDialog* _tmp8_ = NULL;
+ AppWindow* _tmp9_ = NULL;
+ AppWindow* _tmp10_ = NULL;
+ GtkDialog* _tmp11_ = NULL;
+ GtkBuilder* _tmp12_ = NULL;
+ GObject* _tmp13_ = NULL;
+ GtkCheckButton* _tmp14_ = NULL;
+ GtkCheckButton* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ GtkCheckButton* _tmp17_ = NULL;
+ GtkBuilder* _tmp18_ = NULL;
+ GObject* _tmp19_ = NULL;
+ GtkCheckButton* _tmp20_ = NULL;
+ GtkCheckButton* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ GtkCheckButton* _tmp23_ = NULL;
+ GtkBuilder* _tmp24_ = NULL;
+ GObject* _tmp25_ = NULL;
+ GtkButton* _tmp26_ = NULL;
+#line 1076 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_BUILDER (builder), NULL);
+#line 1076 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (SetBackgroundDialog*) g_type_create_instance (object_type);
+#line 1078 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = builder;
+#line 1078 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "dialog1");
+#line 1078 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_dialog_get_type ()) ? ((GtkDialog*) _tmp1_) : NULL);
+#line 1078 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->dialog);
+#line 1078 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->dialog = _tmp2_;
+#line 1079 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->dialog;
+#line 1079 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_type_hint (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_window_get_type (), GtkWindow), GDK_WINDOW_TYPE_HINT_DIALOG);
+#line 1080 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = self->dialog;
+#line 1080 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = app_window_get_instance ();
+#line 1080 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp5_;
+#line 1080 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = gtk_widget_get_parent_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
+#line 1080 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_parent_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), _tmp7_);
+#line 1080 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1081 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->dialog;
+#line 1081 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = app_window_get_instance ();
+#line 1081 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 1081 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_window_get_type (), GtkWindow));
+#line 1081 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1082 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->dialog;
+#line 1082 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_default_response (_tmp11_, (gint) GTK_RESPONSE_OK);
+#line 1084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = builder;
+#line 1084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = gtk_builder_get_object (_tmp12_, "desktop_background_checkbox");
+#line 1084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp13_) : NULL);
+#line 1084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->desktop_background_button);
+#line 1084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->desktop_background_button = _tmp14_;
+#line 1085 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = self->desktop_background_button;
+#line 1085 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->desktop;
+#line 1085 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp16_);
+#line 1086 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->desktop_background_button;
+#line 1086 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_toggle_button_get_type (), GtkToggleButton), "toggled", (GCallback) _set_background_dialog_on_checkbox_clicked_gtk_toggle_button_toggled, self);
+#line 1087 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = builder;
+#line 1087 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = gtk_builder_get_object (_tmp18_, "screensaver_checkbox");
+#line 1087 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp19_) : NULL);
+#line 1087 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->screensaver_button);
+#line 1087 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->screensaver_button = _tmp20_;
+#line 1088 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->screensaver_button;
+#line 1088 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->screensaver;
+#line 1088 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp22_);
+#line 1089 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->screensaver_button;
+#line 1089 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_toggle_button_get_type (), GtkToggleButton), "toggled", (GCallback) _set_background_dialog_on_checkbox_clicked_gtk_toggle_button_toggled, self);
+#line 1091 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = builder;
+#line 1091 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = gtk_builder_get_object (_tmp24_, "ok_button");
+#line 1091 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp25_, gtk_button_get_type ()) ? ((GtkButton*) _tmp25_) : NULL);
+#line 1091 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->ok_button);
+#line 1091 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->ok_button = _tmp26_;
+#line 1076 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 10841 "Dialogs.c"
+}
+
+
+void set_background_dialog_on_checkbox_clicked (SetBackgroundDialog* self) {
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GtkCheckButton* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 1094 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_SET_BACKGROUND_DIALOG (self));
+#line 1095 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->desktop_background_button;
+#line 1095 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 1095 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 1095 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->desktop = _tmp2_;
+#line 1096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->screensaver_button;
+#line 1096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 1096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 1096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->screensaver = _tmp5_;
+#line 1098 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->desktop;
+#line 1098 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp7_) {
+#line 10876 "Dialogs.c"
+ gboolean _tmp8_ = FALSE;
+#line 1098 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->screensaver;
+#line 1098 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = !_tmp8_;
+#line 10882 "Dialogs.c"
+ } else {
+#line 1098 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = FALSE;
+#line 10886 "Dialogs.c"
+ }
+#line 1098 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp6_) {
+#line 10890 "Dialogs.c"
+ GtkButton* _tmp9_ = NULL;
+#line 1099 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->ok_button;
+#line 1099 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 10896 "Dialogs.c"
+ } else {
+ GtkButton* _tmp10_ = NULL;
+#line 1101 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->ok_button;
+#line 1101 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 10903 "Dialogs.c"
+ }
+}
+
+
+gboolean set_background_dialog_execute_base (SetBackgroundDialog* self) {
+ gboolean result = FALSE;
+ GtkDialog* _tmp0_ = NULL;
+ gboolean _result_ = FALSE;
+ GtkDialog* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GtkDialog* _tmp3_ = NULL;
+#line 1105 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_SET_BACKGROUND_DIALOG (self), FALSE);
+#line 1106 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->dialog;
+#line 1106 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 1107 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->dialog;
+#line 1107 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_dialog_run (_tmp1_);
+#line 1107 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = _tmp2_ == ((gint) GTK_RESPONSE_OK);
+#line 1108 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->dialog;
+#line 1108 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 1110 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _result_;
+#line 1110 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 10935 "Dialogs.c"
+}
+
+
+static void value_set_background_dialog_init (GValue* value) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 10942 "Dialogs.c"
+}
+
+
+static void value_set_background_dialog_free_value (GValue* value) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (value->data[0].v_pointer) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_dialog_unref (value->data[0].v_pointer);
+#line 10951 "Dialogs.c"
+ }
+}
+
+
+static void value_set_background_dialog_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = set_background_dialog_ref (src_value->data[0].v_pointer);
+#line 10961 "Dialogs.c"
+ } else {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 10965 "Dialogs.c"
+ }
+}
+
+
+static gpointer value_set_background_dialog_peek_pointer (const GValue* value) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 10973 "Dialogs.c"
+}
+
+
+static gchar* value_set_background_dialog_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (collect_values[0].v_pointer) {
+#line 10980 "Dialogs.c"
+ SetBackgroundDialog* object;
+ object = collect_values[0].v_pointer;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 10987 "Dialogs.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 10991 "Dialogs.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = set_background_dialog_ref (object);
+#line 10995 "Dialogs.c"
+ } else {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 10999 "Dialogs.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 11003 "Dialogs.c"
+}
+
+
+static gchar* value_set_background_dialog_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SetBackgroundDialog** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!object_p) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 11014 "Dialogs.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!value->data[0].v_pointer) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = NULL;
+#line 11020 "Dialogs.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = value->data[0].v_pointer;
+#line 11024 "Dialogs.c"
+ } else {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = set_background_dialog_ref (value->data[0].v_pointer);
+#line 11028 "Dialogs.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 11032 "Dialogs.c"
+}
+
+
+GParamSpec* param_spec_set_background_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSetBackgroundDialog* spec;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SET_BACKGROUND_DIALOG), NULL);
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return G_PARAM_SPEC (spec);
+#line 11046 "Dialogs.c"
+}
+
+
+gpointer value_get_set_background_dialog (const GValue* value) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SET_BACKGROUND_DIALOG), NULL);
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 11055 "Dialogs.c"
+}
+
+
+void value_set_set_background_dialog (GValue* value, gpointer v_object) {
+ SetBackgroundDialog* old;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SET_BACKGROUND_DIALOG));
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SET_BACKGROUND_DIALOG));
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_dialog_ref (value->data[0].v_pointer);
+#line 11075 "Dialogs.c"
+ } else {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 11079 "Dialogs.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_dialog_unref (old);
+#line 11085 "Dialogs.c"
+ }
+}
+
+
+void value_take_set_background_dialog (GValue* value, gpointer v_object) {
+ SetBackgroundDialog* old;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SET_BACKGROUND_DIALOG));
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SET_BACKGROUND_DIALOG));
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 11104 "Dialogs.c"
+ } else {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 11108 "Dialogs.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_dialog_unref (old);
+#line 11114 "Dialogs.c"
+ }
+}
+
+
+static void set_background_dialog_class_init (SetBackgroundDialogClass * klass) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((SetBackgroundDialogClass *) klass)->finalize = set_background_dialog_finalize;
+#line 11124 "Dialogs.c"
+}
+
+
+static void set_background_dialog_instance_init (SetBackgroundDialog * self) {
+#line 1073 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->desktop = TRUE;
+#line 1074 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->screensaver = FALSE;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->ref_count = 1;
+#line 11135 "Dialogs.c"
+}
+
+
+static void set_background_dialog_finalize (SetBackgroundDialog* obj) {
+ SetBackgroundDialog * self;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog);
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_destroy (self);
+#line 1068 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->dialog);
+#line 1069 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->desktop_background_button);
+#line 1070 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->screensaver_button);
+#line 1071 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->ok_button);
+#line 11153 "Dialogs.c"
+}
+
+
+GType set_background_dialog_get_type (void) {
+ static volatile gsize set_background_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&set_background_dialog_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_set_background_dialog_init, value_set_background_dialog_free_value, value_set_background_dialog_copy_value, value_set_background_dialog_peek_pointer, "p", value_set_background_dialog_collect_value, "p", value_set_background_dialog_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SetBackgroundDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_background_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetBackgroundDialog), 0, (GInstanceInitFunc) set_background_dialog_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType set_background_dialog_type_id;
+ set_background_dialog_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SetBackgroundDialog", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&set_background_dialog_type_id__volatile, set_background_dialog_type_id);
+ }
+ return set_background_dialog_type_id__volatile;
+}
+
+
+gpointer set_background_dialog_ref (gpointer instance) {
+ SetBackgroundDialog* self;
+ self = instance;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return instance;
+#line 11178 "Dialogs.c"
+}
+
+
+void set_background_dialog_unref (gpointer instance) {
+ SetBackgroundDialog* self;
+ self = instance;
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ SET_BACKGROUND_DIALOG_GET_CLASS (self)->finalize (self);
+#line 1067 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 11191 "Dialogs.c"
+ }
+}
+
+
+SetBackgroundPhotoDialog* set_background_photo_dialog_construct (GType object_type) {
+ SetBackgroundPhotoDialog* self = NULL;
+ GtkBuilder* builder = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+#line 1117 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_window_create_builder ("set_background_dialog.ui", self);
+#line 1117 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ builder = _tmp0_;
+#line 1118 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (SetBackgroundPhotoDialog*) set_background_dialog_construct (object_type, builder);
+#line 1116 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (builder);
+#line 1116 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 11210 "Dialogs.c"
+}
+
+
+SetBackgroundPhotoDialog* set_background_photo_dialog_new (void) {
+#line 1116 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return set_background_photo_dialog_construct (TYPE_SET_BACKGROUND_PHOTO_DIALOG);
+#line 11217 "Dialogs.c"
+}
+
+
+gboolean set_background_photo_dialog_execute (SetBackgroundPhotoDialog* self, gboolean* desktop_background, gboolean* screensaver) {
+ gboolean _vala_desktop_background = FALSE;
+ gboolean _vala_screensaver = FALSE;
+ gboolean result = FALSE;
+ gboolean _result_ = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1121 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_SET_BACKGROUND_PHOTO_DIALOG (self), FALSE);
+#line 1122 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = set_background_dialog_execute_base (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog));
+#line 1122 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = _tmp0_;
+#line 1124 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog)->desktop;
+#line 1124 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_desktop_background = _tmp1_;
+#line 1125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog)->screensaver;
+#line 1125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_screensaver = _tmp2_;
+#line 1127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _result_;
+#line 1127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (desktop_background) {
+#line 1127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *desktop_background = _vala_desktop_background;
+#line 11249 "Dialogs.c"
+ }
+#line 1127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (screensaver) {
+#line 1127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *screensaver = _vala_screensaver;
+#line 11255 "Dialogs.c"
+ }
+#line 1127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 11259 "Dialogs.c"
+}
+
+
+static void set_background_photo_dialog_class_init (SetBackgroundPhotoDialogClass * klass) {
+#line 1114 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_photo_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 11266 "Dialogs.c"
+}
+
+
+static void set_background_photo_dialog_instance_init (SetBackgroundPhotoDialog * self) {
+}
+
+
+GType set_background_photo_dialog_get_type (void) {
+ static volatile gsize set_background_photo_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&set_background_photo_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SetBackgroundPhotoDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_background_photo_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetBackgroundPhotoDialog), 0, (GInstanceInitFunc) set_background_photo_dialog_instance_init, NULL };
+ GType set_background_photo_dialog_type_id;
+ set_background_photo_dialog_type_id = g_type_register_static (TYPE_SET_BACKGROUND_DIALOG, "SetBackgroundPhotoDialog", &g_define_type_info, 0);
+ g_once_init_leave (&set_background_photo_dialog_type_id__volatile, set_background_photo_dialog_type_id);
+ }
+ return set_background_photo_dialog_type_id__volatile;
+}
+
+
+static void _set_background_slideshow_dialog_on_delay_scale_value_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 1143 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_slideshow_dialog_on_delay_scale_value_changed ((SetBackgroundSlideshowDialog*) self);
+#line 11289 "Dialogs.c"
+}
+
+
+SetBackgroundSlideshowDialog* set_background_slideshow_dialog_construct (GType object_type) {
+ SetBackgroundSlideshowDialog* self = NULL;
+ GtkBuilder* builder = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+ GtkLabel* _tmp2_ = NULL;
+ GObject* _tmp3_ = NULL;
+ GtkScale* _tmp4_ = NULL;
+ GtkScale* _tmp5_ = NULL;
+ GtkScale* _tmp6_ = NULL;
+ GtkAdjustment* _tmp7_ = NULL;
+ GtkAdjustment* _tmp8_ = NULL;
+#line 1137 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_window_create_builder ("set_background_slideshow_dialog.ui", self);
+#line 1137 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ builder = _tmp0_;
+#line 1138 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (SetBackgroundSlideshowDialog*) set_background_dialog_construct (object_type, builder);
+#line 1140 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_builder_get_object (builder, "delay_value_label");
+#line 1140 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp1_) : NULL);
+#line 1140 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->delay_value_label);
+#line 1140 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delay_value_label = _tmp2_;
+#line 1142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_builder_get_object (builder, "delay_scale");
+#line 1142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_scale_get_type ()) ? ((GtkScale*) _tmp3_) : NULL);
+#line 1142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->delay_scale);
+#line 1142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delay_scale = _tmp4_;
+#line 1143 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->delay_scale;
+#line 1143 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _set_background_slideshow_dialog_on_delay_scale_value_changed_gtk_range_value_changed, self);
+#line 1144 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->delay_scale;
+#line 1144 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = gtk_range_get_adjustment (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_range_get_type (), GtkRange));
+#line 1144 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 1144 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_adjustment_set_value (_tmp8_, (gdouble) 50);
+#line 1136 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (builder);
+#line 1136 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 11343 "Dialogs.c"
+}
+
+
+SetBackgroundSlideshowDialog* set_background_slideshow_dialog_new (void) {
+#line 1136 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return set_background_slideshow_dialog_construct (TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG);
+#line 11350 "Dialogs.c"
+}
+
+
+static void set_background_slideshow_dialog_on_delay_scale_value_changed (SetBackgroundSlideshowDialog* self) {
+ gdouble value = 0.0;
+ GtkScale* _tmp0_ = NULL;
+ GtkAdjustment* _tmp1_ = NULL;
+ GtkAdjustment* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+ gchar* text = NULL;
+ gint _tmp8_ = 0;
+ GtkLabel* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+#line 1147 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_SET_BACKGROUND_SLIDESHOW_DIALOG (self));
+#line 1148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->delay_scale;
+#line 1148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_range_get_adjustment (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange));
+#line 1148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 1148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_adjustment_get_value (_tmp2_);
+#line 1148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 1148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value = _tmp4_;
+#line 1153 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = value;
+#line 1153 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = pow (_tmp5_, (gdouble) 5);
+#line 1153 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = pow ((gdouble) 90, (gdouble) 5);
+#line 1153 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delay_value = (gint) (((((_tmp6_ / _tmp7_) * 60) * 60) * 24) + 5);
+#line 1157 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->delay_value;
+#line 1157 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp8_ < 60) {
+#line 11394 "Dialogs.c"
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar* _tmp12_ = NULL;
+#line 1158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->delay_value;
+#line 1158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = ngettext ("%d second", "%d seconds", (gulong) _tmp9_);
+#line 1158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->delay_value;
+#line 1158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = g_strdup_printf (_tmp10_, _tmp11_);
+#line 1158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp12_;
+#line 11411 "Dialogs.c"
+ } else {
+ gint _tmp13_ = 0;
+#line 1159 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->delay_value;
+#line 1159 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp13_ < (60 * 60)) {
+#line 11418 "Dialogs.c"
+ gint minutes = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ const gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+#line 1160 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = self->priv->delay_value;
+#line 1160 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ minutes = _tmp14_ / 60;
+#line 1161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = minutes;
+#line 1161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = ngettext ("%d minute", "%d minutes", (gulong) _tmp15_);
+#line 1161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = minutes;
+#line 1161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = g_strdup_printf (_tmp16_, _tmp17_);
+#line 1161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1161 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp18_;
+#line 1162 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = minutes;
+#line 1162 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delay_value = _tmp19_ * 60;
+#line 11446 "Dialogs.c"
+ } else {
+ gint _tmp20_ = 0;
+#line 1163 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = self->priv->delay_value;
+#line 1163 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp20_ < ((60 * 60) * 24)) {
+#line 11453 "Dialogs.c"
+ gint hours = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ const gchar* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gchar* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+#line 1164 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->priv->delay_value;
+#line 1164 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ hours = _tmp21_ / (60 * 60);
+#line 1165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = hours;
+#line 1165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = ngettext ("%d hour", "%d hours", (gulong) _tmp22_);
+#line 1165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = hours;
+#line 1165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = g_strdup_printf (_tmp23_, _tmp24_);
+#line 1165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp25_;
+#line 1166 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = hours;
+#line 1166 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delay_value = _tmp26_ * (60 * 60);
+#line 11481 "Dialogs.c"
+ } else {
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+#line 1168 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = _ ("1 day");
+#line 1168 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = g_strdup (_tmp27_);
+#line 1168 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1168 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp28_;
+#line 1169 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delay_value = (60 * 60) * 24;
+#line 11495 "Dialogs.c"
+ }
+ }
+ }
+#line 1172 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = self->priv->delay_value_label;
+#line 1172 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = text;
+#line 1172 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_label (_tmp29_, _tmp30_);
+#line 1147 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 11507 "Dialogs.c"
+}
+
+
+gboolean set_background_slideshow_dialog_execute (SetBackgroundSlideshowDialog* self, gint* delay_value, gboolean* desktop_background, gboolean* screensaver) {
+ gint _vala_delay_value = 0;
+ gboolean _vala_desktop_background = FALSE;
+ gboolean _vala_screensaver = FALSE;
+ gboolean result = FALSE;
+ gboolean _result_ = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 1175 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_SET_BACKGROUND_SLIDESHOW_DIALOG (self), FALSE);
+#line 1176 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = set_background_dialog_execute_base (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog));
+#line 1176 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = _tmp0_;
+#line 1178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->delay_value;
+#line 1178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_delay_value = _tmp1_;
+#line 1179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog)->desktop;
+#line 1179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_desktop_background = _tmp2_;
+#line 1180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog)->screensaver;
+#line 1180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_screensaver = _tmp3_;
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _result_;
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (delay_value) {
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *delay_value = _vala_delay_value;
+#line 11545 "Dialogs.c"
+ }
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (desktop_background) {
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *desktop_background = _vala_desktop_background;
+#line 11551 "Dialogs.c"
+ }
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (screensaver) {
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *screensaver = _vala_screensaver;
+#line 11557 "Dialogs.c"
+ }
+#line 1182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 11561 "Dialogs.c"
+}
+
+
+static void set_background_slideshow_dialog_class_init (SetBackgroundSlideshowDialogClass * klass) {
+#line 1131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ set_background_slideshow_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((SetBackgroundDialogClass *) klass)->finalize = set_background_slideshow_dialog_finalize;
+#line 1131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (SetBackgroundSlideshowDialogPrivate));
+#line 11572 "Dialogs.c"
+}
+
+
+static void set_background_slideshow_dialog_instance_init (SetBackgroundSlideshowDialog * self) {
+#line 1131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = SET_BACKGROUND_SLIDESHOW_DIALOG_GET_PRIVATE (self);
+#line 1134 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->delay_value = 0;
+#line 11581 "Dialogs.c"
+}
+
+
+static void set_background_slideshow_dialog_finalize (SetBackgroundDialog* obj) {
+ SetBackgroundSlideshowDialog * self;
+#line 1131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SET_BACKGROUND_SLIDESHOW_DIALOG, SetBackgroundSlideshowDialog);
+#line 1132 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->delay_value_label);
+#line 1133 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->delay_scale);
+#line 1131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ SET_BACKGROUND_DIALOG_CLASS (set_background_slideshow_dialog_parent_class)->finalize (obj);
+#line 11595 "Dialogs.c"
+}
+
+
+GType set_background_slideshow_dialog_get_type (void) {
+ static volatile gsize set_background_slideshow_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&set_background_slideshow_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SetBackgroundSlideshowDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_background_slideshow_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetBackgroundSlideshowDialog), 0, (GInstanceInitFunc) set_background_slideshow_dialog_instance_init, NULL };
+ GType set_background_slideshow_dialog_type_id;
+ set_background_slideshow_dialog_type_id = g_type_register_static (TYPE_SET_BACKGROUND_DIALOG, "SetBackgroundSlideshowDialog", &g_define_type_info, 0);
+ g_once_init_leave (&set_background_slideshow_dialog_type_id__volatile, set_background_slideshow_dialog_type_id);
+ }
+ return set_background_slideshow_dialog_type_id__volatile;
+}
+
+
+TextEntryDialog* text_entry_dialog_construct (GType object_type) {
+ TextEntryDialog * self = NULL;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 1198 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = gtk_settings_get_default ();
+#line 1198 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 1199 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = use_header;
+#line 1199 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_) {
+#line 1199 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = 1;
+#line 11627 "Dialogs.c"
+ } else {
+#line 1199 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = 0;
+#line 11631 "Dialogs.c"
+ }
+#line 1199 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (TextEntryDialog*) g_object_new (object_type, "use-header-bar", _tmp1_, NULL);
+#line 1196 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 11637 "Dialogs.c"
+}
+
+
+TextEntryDialog* text_entry_dialog_new (void) {
+#line 1196 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return text_entry_dialog_construct (TYPE_TEXT_ENTRY_DIALOG);
+#line 11644 "Dialogs.c"
+}
+
+
+void text_entry_dialog_set_builder (TextEntryDialog* self, GtkBuilder* builder) {
+ GtkBuilder* _tmp0_ = NULL;
+ GtkBuilder* _tmp1_ = NULL;
+#line 1202 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_TEXT_ENTRY_DIALOG (self));
+#line 1202 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GTK_IS_BUILDER (builder));
+#line 1203 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = builder;
+#line 1203 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1203 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 1203 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->builder = _tmp1_;
+#line 11663 "Dialogs.c"
+}
+
+
+static void _text_entry_dialog_on_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
+#line 1220 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_on_entry_changed ((TextEntryDialog*) self);
+#line 11670 "Dialogs.c"
+}
+
+
+void text_entry_dialog_setup (TextEntryDialog* self, TextEntryDialogOnModifyValidateType modify_validate, void* modify_validate_target, const gchar* title, const gchar* label, const gchar* initial_text, GeeCollection* completion_list, const gchar* completion_delimiter) {
+ const gchar* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ GdkWindow* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+ TextEntryDialogOnModifyValidateType _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ GtkLabel* name_label = NULL;
+ GtkBuilder* _tmp7_ = NULL;
+ GObject* _tmp8_ = NULL;
+ GtkLabel* _tmp9_ = NULL;
+ GtkLabel* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GtkBuilder* _tmp12_ = NULL;
+ GObject* _tmp13_ = NULL;
+ GtkEntry* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GtkEntry* _tmp18_ = NULL;
+ GtkEntry* _tmp19_ = NULL;
+ GtkEntry* _tmp20_ = NULL;
+ GtkWidget* _tmp21_ = NULL;
+ GtkButtonBox* _tmp22_ = NULL;
+ GtkButtonBox* _tmp23_ = NULL;
+ GtkWidget* _tmp24_ = NULL;
+ GtkButton* _tmp25_ = NULL;
+ GtkWidget* _tmp26_ = NULL;
+ GtkButton* _tmp27_ = NULL;
+ GeeCollection* _tmp28_ = NULL;
+#line 1206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_TEXT_ENTRY_DIALOG (self));
+#line 1206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (title != NULL);
+#line 1206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (label != NULL);
+#line 1206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail ((completion_list == NULL) || GEE_IS_COLLECTION (completion_list));
+#line 1208 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = title;
+#line 1208 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp0_);
+#line 1209 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 1210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = app_window_get_instance ();
+#line 1210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 1210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_widget_get_parent_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 1210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_parent_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp3_);
+#line 1210 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 1211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 1211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_window_get_type (), GtkWindow));
+#line 1211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1212 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = modify_validate;
+#line 1212 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6__target = modify_validate_target;
+#line 1212 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->on_modify_validate = _tmp6_;
+#line 1212 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->on_modify_validate_target = _tmp6__target;
+#line 1214 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->builder;
+#line 1214 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = gtk_builder_get_object (_tmp7_, "label");
+#line 1214 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp8_) : NULL);
+#line 1214 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ name_label = _tmp9_;
+#line 1215 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = name_label;
+#line 1215 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = label;
+#line 1215 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_text (_tmp10_, _tmp11_);
+#line 1217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->builder;
+#line 1217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = gtk_builder_get_object (_tmp12_, "entry");
+#line 1217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp13_) : NULL);
+#line 1217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->entry);
+#line 1217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->entry = _tmp14_;
+#line 1218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = initial_text;
+#line 1218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp16_ != NULL) {
+#line 11773 "Dialogs.c"
+ const gchar* _tmp17_ = NULL;
+#line 1218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = initial_text;
+#line 1218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = _tmp17_;
+#line 11779 "Dialogs.c"
+ } else {
+#line 1218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = "";
+#line 11783 "Dialogs.c"
+ }
+#line 1218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->entry;
+#line 1218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_text (_tmp18_, _tmp15_);
+#line 1219 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = self->priv->entry;
+#line 1219 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget));
+#line 1220 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = self->priv->entry;
+#line 1220 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GTK_TYPE_EDITABLE, GtkEditable), "changed", (GCallback) _text_entry_dialog_on_entry_changed_gtk_editable_changed, self, 0);
+#line 1222 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = gtk_dialog_get_action_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 1222 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_button_box_get_type (), GtkButtonBox));
+#line 1222 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->action_area_box);
+#line 1222 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->action_area_box = _tmp22_;
+#line 1223 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->priv->action_area_box;
+#line 1223 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_button_box_set_layout (_tmp23_, GTK_BUTTONBOX_END);
+#line 1225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_CANCEL_LABEL, (gint) GTK_RESPONSE_CANCEL);
+#line 1225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_button_get_type (), GtkButton));
+#line 1225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button1);
+#line 1225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->button1 = _tmp25_;
+#line 1226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_SAVE_LABEL, (gint) GTK_RESPONSE_OK);
+#line 1226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_button_get_type (), GtkButton));
+#line 1226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button2);
+#line 1226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->button2 = _tmp27_;
+#line 1227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
+#line 1229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = completion_list;
+#line 1229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp28_ != NULL) {
+#line 11831 "Dialogs.c"
+ EntryMultiCompletion* completion = NULL;
+ GeeCollection* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ EntryMultiCompletion* _tmp31_ = NULL;
+ GtkEntry* _tmp32_ = NULL;
+ EntryMultiCompletion* _tmp33_ = NULL;
+#line 1230 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = completion_list;
+#line 1230 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = completion_delimiter;
+#line 1230 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = entry_multi_completion_new (_tmp29_, _tmp30_);
+#line 1230 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ completion = _tmp31_;
+#line 1232 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = self->priv->entry;
+#line 1232 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = completion;
+#line 1232 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_completion (_tmp32_, G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_entry_completion_get_type (), GtkEntryCompletion));
+#line 1229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (completion);
+#line 11854 "Dialogs.c"
+ }
+#line 1235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
+#line 1236 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_has_resize_grip (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 1206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (name_label);
+#line 11862 "Dialogs.c"
+}
+
+
+gchar* text_entry_dialog_execute (TextEntryDialog* self) {
+ gchar* result = NULL;
+ gchar* text = NULL;
+ TextEntryDialogOnModifyValidateType _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gint _tmp4_ = 0;
+ GtkEntry* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+#line 1239 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_TEXT_ENTRY_DIALOG (self), NULL);
+#line 1240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = NULL;
+#line 1243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->on_modify_validate;
+#line 1243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0__target = self->priv->on_modify_validate_target;
+#line 1243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->entry;
+#line 1243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_entry_get_text (_tmp1_);
+#line 1243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp0_ (_tmp2_, _tmp0__target);
+#line 1243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_response_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK, _tmp3_);
+#line 1245 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 1247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp4_ == ((gint) GTK_RESPONSE_OK)) {
+#line 11899 "Dialogs.c"
+ GtkEntry* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1248 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->entry;
+#line 1248 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = gtk_entry_get_text (_tmp5_);
+#line 1248 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 1248 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1248 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp7_;
+#line 11913 "Dialogs.c"
+ }
+#line 1250 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->entry;
+#line 1250 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_parse_name ("changed", GTK_TYPE_EDITABLE, &_tmp9_, NULL, FALSE);
+#line 1250 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GTK_TYPE_EDITABLE, GtkEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _text_entry_dialog_on_entry_changed_gtk_editable_changed, self);
+#line 1251 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1253 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = text;
+#line 1253 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 11927 "Dialogs.c"
+}
+
+
+void text_entry_dialog_on_entry_changed (TextEntryDialog* self) {
+ TextEntryDialogOnModifyValidateType _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_TEXT_ENTRY_DIALOG (self));
+#line 1257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->on_modify_validate;
+#line 1257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0__target = self->priv->on_modify_validate_target;
+#line 1257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->entry;
+#line 1257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_entry_get_text (_tmp1_);
+#line 1257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp0_ (_tmp2_, _tmp0__target);
+#line 1257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_response_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK, _tmp3_);
+#line 11951 "Dialogs.c"
+}
+
+
+static void text_entry_dialog_class_init (TextEntryDialogClass * klass) {
+#line 1186 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_entry_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1186 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (TextEntryDialogPrivate));
+#line 1186 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (klass)->finalize = text_entry_dialog_finalize;
+#line 11962 "Dialogs.c"
+}
+
+
+static void text_entry_dialog_instance_init (TextEntryDialog * self) {
+#line 1186 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = TEXT_ENTRY_DIALOG_GET_PRIVATE (self);
+#line 11969 "Dialogs.c"
+}
+
+
+static void text_entry_dialog_finalize (GObject* obj) {
+ TextEntryDialog * self;
+#line 1186 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TEXT_ENTRY_DIALOG, TextEntryDialog);
+#line 1190 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->entry);
+#line 1191 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 1192 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button1);
+#line 1193 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button2);
+#line 1194 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->action_area_box);
+#line 1186 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (text_entry_dialog_parent_class)->finalize (obj);
+#line 11989 "Dialogs.c"
+}
+
+
+GType text_entry_dialog_get_type (void) {
+ static volatile gsize text_entry_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&text_entry_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TextEntryDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) text_entry_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TextEntryDialog), 0, (GInstanceInitFunc) text_entry_dialog_instance_init, NULL };
+ GType text_entry_dialog_type_id;
+ text_entry_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "TextEntryDialog", &g_define_type_info, 0);
+ g_once_init_leave (&text_entry_dialog_type_id__volatile, text_entry_dialog_type_id);
+ }
+ return text_entry_dialog_type_id__volatile;
+}
+
+
+MultiTextEntryDialog* multi_text_entry_dialog_construct (GType object_type) {
+ MultiTextEntryDialog * self = NULL;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 1273 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = gtk_settings_get_default ();
+#line 1273 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 1274 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = use_header;
+#line 1274 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_) {
+#line 1274 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = 1;
+#line 12021 "Dialogs.c"
+ } else {
+#line 1274 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = 0;
+#line 12025 "Dialogs.c"
+ }
+#line 1274 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (MultiTextEntryDialog*) g_object_new (object_type, "use-header-bar", _tmp1_, NULL);
+#line 1271 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 12031 "Dialogs.c"
+}
+
+
+MultiTextEntryDialog* multi_text_entry_dialog_new (void) {
+#line 1271 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return multi_text_entry_dialog_construct (TYPE_MULTI_TEXT_ENTRY_DIALOG);
+#line 12038 "Dialogs.c"
+}
+
+
+void multi_text_entry_dialog_set_builder (MultiTextEntryDialog* self, GtkBuilder* builder) {
+ GtkBuilder* _tmp0_ = NULL;
+ GtkBuilder* _tmp1_ = NULL;
+#line 1277 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_MULTI_TEXT_ENTRY_DIALOG (self));
+#line 1277 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GTK_IS_BUILDER (builder));
+#line 1278 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = builder;
+#line 1278 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1278 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 1278 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->builder = _tmp1_;
+#line 12057 "Dialogs.c"
+}
+
+
+void multi_text_entry_dialog_setup (MultiTextEntryDialog* self, MultiTextEntryDialogOnModifyValidateType modify_validate, void* modify_validate_target, const gchar* title, const gchar* label, const gchar* initial_text) {
+ const gchar* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ GdkWindow* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+ MultiTextEntryDialogOnModifyValidateType _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ GtkBuilder* _tmp7_ = NULL;
+ GObject* _tmp8_ = NULL;
+ GtkTextView* _tmp9_ = NULL;
+ GtkTextView* _tmp10_ = NULL;
+ GtkTextView* _tmp11_ = NULL;
+ GtkTextBuffer* _tmp12_ = NULL;
+ GtkTextBuffer* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GtkTextView* _tmp17_ = NULL;
+ GtkTextBuffer* _tmp18_ = NULL;
+ GtkTextBuffer* _tmp19_ = NULL;
+ GtkTextView* _tmp20_ = NULL;
+ GtkWidget* _tmp21_ = NULL;
+ GtkButtonBox* _tmp22_ = NULL;
+ GtkButtonBox* _tmp23_ = NULL;
+ GtkWidget* _tmp24_ = NULL;
+ GtkButton* _tmp25_ = NULL;
+ GtkWidget* _tmp26_ = NULL;
+ GtkButton* _tmp27_ = NULL;
+#line 1281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_MULTI_TEXT_ENTRY_DIALOG (self));
+#line 1281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (title != NULL);
+#line 1281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (label != NULL);
+#line 1282 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = title;
+#line 1282 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp0_);
+#line 1283 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 1284 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_default_size (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), 500, 300);
+#line 1285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = app_window_get_instance ();
+#line 1285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 1285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_widget_get_parent_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 1285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_parent_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp3_);
+#line 1285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1286 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 1286 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 1286 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_window_get_type (), GtkWindow));
+#line 1286 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1287 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = modify_validate;
+#line 1287 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6__target = modify_validate_target;
+#line 1287 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->on_modify_validate = _tmp6_;
+#line 1287 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->on_modify_validate_target = _tmp6__target;
+#line 1289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->builder;
+#line 1289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = gtk_builder_get_object (_tmp7_, "textview1");
+#line 1289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, gtk_text_view_get_type ()) ? ((GtkTextView*) _tmp8_) : NULL);
+#line 1289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->entry);
+#line 1289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->entry = _tmp9_;
+#line 1290 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->entry;
+#line 1290 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_text_view_set_wrap_mode (_tmp10_, GTK_WRAP_WORD);
+#line 1291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->entry;
+#line 1291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = gtk_text_buffer_new (NULL);
+#line 1291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_;
+#line 1291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_text_view_set_buffer (_tmp11_, _tmp13_);
+#line 1291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp13_);
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = initial_text;
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp15_ != NULL) {
+#line 12158 "Dialogs.c"
+ const gchar* _tmp16_ = NULL;
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = initial_text;
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp16_;
+#line 12164 "Dialogs.c"
+ } else {
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = "";
+#line 12168 "Dialogs.c"
+ }
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->entry;
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = gtk_text_view_get_buffer (_tmp17_);
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp18_;
+#line 1292 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_set (_tmp19_, "text", _tmp14_, NULL);
+#line 1294 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = self->priv->entry;
+#line 1294 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget));
+#line 1296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = gtk_dialog_get_action_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 1296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_button_box_get_type (), GtkButtonBox));
+#line 1296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->action_area_box);
+#line 1296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->action_area_box = _tmp22_;
+#line 1297 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->priv->action_area_box;
+#line 1297 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_button_box_set_layout (_tmp23_, GTK_BUTTONBOX_END);
+#line 1299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_CANCEL_LABEL, (gint) GTK_RESPONSE_CANCEL);
+#line 1299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_button_get_type (), GtkButton));
+#line 1299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button1);
+#line 1299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->button1 = _tmp25_;
+#line 1300 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_SAVE_LABEL, (gint) GTK_RESPONSE_OK);
+#line 1300 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_button_get_type (), GtkButton));
+#line 1300 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button2);
+#line 1300 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->button2 = _tmp27_;
+#line 1301 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
+#line 1303 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_has_resize_grip (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 12214 "Dialogs.c"
+}
+
+
+gchar* multi_text_entry_dialog_execute (MultiTextEntryDialog* self) {
+ gchar* result = NULL;
+ gchar* text = NULL;
+ gint _tmp0_ = 0;
+#line 1306 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_MULTI_TEXT_ENTRY_DIALOG (self), NULL);
+#line 1307 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = NULL;
+#line 1309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1311 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 1311 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == ((gint) GTK_RESPONSE_OK)) {
+#line 12232 "Dialogs.c"
+ GtkTextView* _tmp1_ = NULL;
+ GtkTextBuffer* _tmp2_ = NULL;
+ GtkTextBuffer* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->entry;
+#line 1312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_text_view_get_buffer (_tmp1_);
+#line 1312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 1312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_get (_tmp3_, "text", &_tmp4_, NULL);
+#line 1312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 1312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp5_;
+#line 12252 "Dialogs.c"
+ }
+#line 1314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = text;
+#line 1316 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12260 "Dialogs.c"
+}
+
+
+static void multi_text_entry_dialog_class_init (MultiTextEntryDialogClass * klass) {
+#line 1261 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ multi_text_entry_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1261 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (MultiTextEntryDialogPrivate));
+#line 1261 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (klass)->finalize = multi_text_entry_dialog_finalize;
+#line 12271 "Dialogs.c"
+}
+
+
+static void multi_text_entry_dialog_instance_init (MultiTextEntryDialog * self) {
+#line 1261 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = MULTI_TEXT_ENTRY_DIALOG_GET_PRIVATE (self);
+#line 12278 "Dialogs.c"
+}
+
+
+static void multi_text_entry_dialog_finalize (GObject* obj) {
+ MultiTextEntryDialog * self;
+#line 1261 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MULTI_TEXT_ENTRY_DIALOG, MultiTextEntryDialog);
+#line 1265 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->entry);
+#line 1266 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 1267 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button1);
+#line 1268 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->button2);
+#line 1269 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->action_area_box);
+#line 1261 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (multi_text_entry_dialog_parent_class)->finalize (obj);
+#line 12298 "Dialogs.c"
+}
+
+
+GType multi_text_entry_dialog_get_type (void) {
+ static volatile gsize multi_text_entry_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&multi_text_entry_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MultiTextEntryDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_text_entry_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiTextEntryDialog), 0, (GInstanceInitFunc) multi_text_entry_dialog_instance_init, NULL };
+ GType multi_text_entry_dialog_type_id;
+ multi_text_entry_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "MultiTextEntryDialog", &g_define_type_info, 0);
+ g_once_init_leave (&multi_text_entry_dialog_type_id__volatile, multi_text_entry_dialog_type_id);
+ }
+ return multi_text_entry_dialog_type_id__volatile;
+}
+
+
+EventRenameDialog* event_rename_dialog_construct (GType object_type, const gchar* event_name) {
+ EventRenameDialog* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1322 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _ ("Rename Event");
+#line 1322 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _ ("Name:");
+#line 1322 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = event_name;
+#line 1322 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (EventRenameDialog*) text_entry_dialog_mediator_construct (object_type, _tmp0_, _tmp1_, _tmp2_, NULL, NULL);
+#line 1321 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 12329 "Dialogs.c"
+}
+
+
+EventRenameDialog* event_rename_dialog_new (const gchar* event_name) {
+#line 1321 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return event_rename_dialog_construct (TYPE_EVENT_RENAME_DIALOG, event_name);
+#line 12336 "Dialogs.c"
+}
+
+
+static gchar* event_rename_dialog_real_execute (EventRenameDialog* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _text_entry_dialog_mediator_execute (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator));
+#line 1326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 1326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = event_prep_event_name (_tmp1_);
+#line 1326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 1326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp1_);
+#line 1326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp3_;
+#line 1326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12360 "Dialogs.c"
+}
+
+
+gchar* event_rename_dialog_execute (EventRenameDialog* self) {
+#line 1325 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_EVENT_RENAME_DIALOG (self), NULL);
+#line 1325 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return EVENT_RENAME_DIALOG_GET_CLASS (self)->execute (self);
+#line 12369 "Dialogs.c"
+}
+
+
+static void event_rename_dialog_class_init (EventRenameDialogClass * klass) {
+#line 1320 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ event_rename_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1320 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((EventRenameDialogClass *) klass)->execute = event_rename_dialog_real_execute;
+#line 12378 "Dialogs.c"
+}
+
+
+static void event_rename_dialog_instance_init (EventRenameDialog * self) {
+}
+
+
+GType event_rename_dialog_get_type (void) {
+ static volatile gsize event_rename_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&event_rename_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventRenameDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_rename_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventRenameDialog), 0, (GInstanceInitFunc) event_rename_dialog_instance_init, NULL };
+ GType event_rename_dialog_type_id;
+ event_rename_dialog_type_id = g_type_register_static (TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, "EventRenameDialog", &g_define_type_info, 0);
+ g_once_init_leave (&event_rename_dialog_type_id__volatile, event_rename_dialog_type_id);
+ }
+ return event_rename_dialog_type_id__volatile;
+}
+
+
+EditTitleDialog* edit_title_dialog_construct (GType object_type, const gchar* photo_title) {
+ EditTitleDialog* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1333 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = C_ ("Dialog Title", "Edit Title");
+#line 1333 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _ ("Title:");
+#line 1333 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = photo_title;
+#line 1333 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (EditTitleDialog*) text_entry_dialog_mediator_construct (object_type, _tmp0_, _tmp1_, _tmp2_, NULL, NULL);
+#line 1331 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 12413 "Dialogs.c"
+}
+
+
+EditTitleDialog* edit_title_dialog_new (const gchar* photo_title) {
+#line 1331 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return edit_title_dialog_construct (TYPE_EDIT_TITLE_DIALOG, photo_title);
+#line 12420 "Dialogs.c"
+}
+
+
+static gchar* edit_title_dialog_real_execute (EditTitleDialog* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _text_entry_dialog_mediator_execute (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator));
+#line 1338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 1338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = media_source_prep_title (_tmp1_);
+#line 1338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 1338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp1_);
+#line 1338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp3_;
+#line 1338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12444 "Dialogs.c"
+}
+
+
+gchar* edit_title_dialog_execute (EditTitleDialog* self) {
+#line 1337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_EDIT_TITLE_DIALOG (self), NULL);
+#line 1337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return EDIT_TITLE_DIALOG_GET_CLASS (self)->execute (self);
+#line 12453 "Dialogs.c"
+}
+
+
+static gboolean edit_title_dialog_real_on_modify_validate (TextEntryDialogMediator* base, const gchar* text) {
+ EditTitleDialog * self;
+ gboolean result = FALSE;
+#line 1341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_TITLE_DIALOG, EditTitleDialog);
+#line 1341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 1342 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 1342 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12468 "Dialogs.c"
+}
+
+
+static void edit_title_dialog_class_init (EditTitleDialogClass * klass) {
+#line 1330 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ edit_title_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1330 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((EditTitleDialogClass *) klass)->execute = edit_title_dialog_real_execute;
+#line 1330 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((TextEntryDialogMediatorClass *) klass)->on_modify_validate = edit_title_dialog_real_on_modify_validate;
+#line 12479 "Dialogs.c"
+}
+
+
+static void edit_title_dialog_instance_init (EditTitleDialog * self) {
+}
+
+
+GType edit_title_dialog_get_type (void) {
+ static volatile gsize edit_title_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&edit_title_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditTitleDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edit_title_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditTitleDialog), 0, (GInstanceInitFunc) edit_title_dialog_instance_init, NULL };
+ GType edit_title_dialog_type_id;
+ edit_title_dialog_type_id = g_type_register_static (TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, "EditTitleDialog", &g_define_type_info, 0);
+ g_once_init_leave (&edit_title_dialog_type_id__volatile, edit_title_dialog_type_id);
+ }
+ return edit_title_dialog_type_id__volatile;
+}
+
+
+EditCommentDialog* edit_comment_dialog_construct (GType object_type, const gchar* comment, gboolean is_event) {
+ EditCommentDialog* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gchar* title_tmp = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 1348 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = is_event;
+#line 1348 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_) {
+#line 12511 "Dialogs.c"
+ const gchar* _tmp2_ = NULL;
+#line 1350 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _ ("Edit Event Comment");
+#line 1350 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp2_;
+#line 12517 "Dialogs.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 1351 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _ ("Edit Photo/Video Comment");
+#line 1351 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp3_;
+#line 12524 "Dialogs.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_strdup (_tmp0_);
+#line 1348 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ title_tmp = _tmp4_;
+#line 1352 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _ ("Comment:");
+#line 1352 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = comment;
+#line 1352 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (EditCommentDialog*) multi_text_entry_dialog_mediator_construct (object_type, title_tmp, _tmp5_, _tmp6_);
+#line 1347 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (title_tmp);
+#line 1347 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 12540 "Dialogs.c"
+}
+
+
+EditCommentDialog* edit_comment_dialog_new (const gchar* comment, gboolean is_event) {
+#line 1347 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return edit_comment_dialog_construct (TYPE_EDIT_COMMENT_DIALOG, comment, is_event);
+#line 12547 "Dialogs.c"
+}
+
+
+static gchar* edit_comment_dialog_real_execute (EditCommentDialog* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _multi_text_entry_dialog_mediator_execute (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediator));
+#line 1356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 1356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = media_source_prep_comment (_tmp1_);
+#line 1356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 1356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp1_);
+#line 1356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp3_;
+#line 1356 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12571 "Dialogs.c"
+}
+
+
+gchar* edit_comment_dialog_execute (EditCommentDialog* self) {
+#line 1355 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_EDIT_COMMENT_DIALOG (self), NULL);
+#line 1355 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return EDIT_COMMENT_DIALOG_GET_CLASS (self)->execute (self);
+#line 12580 "Dialogs.c"
+}
+
+
+static gboolean edit_comment_dialog_real_on_modify_validate (MultiTextEntryDialogMediator* base, const gchar* text) {
+ EditCommentDialog * self;
+ gboolean result = FALSE;
+#line 1359 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDIT_COMMENT_DIALOG, EditCommentDialog);
+#line 1359 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 1360 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 1360 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12595 "Dialogs.c"
+}
+
+
+static void edit_comment_dialog_class_init (EditCommentDialogClass * klass) {
+#line 1346 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ edit_comment_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1346 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((EditCommentDialogClass *) klass)->execute = edit_comment_dialog_real_execute;
+#line 1346 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((MultiTextEntryDialogMediatorClass *) klass)->on_modify_validate = edit_comment_dialog_real_on_modify_validate;
+#line 12606 "Dialogs.c"
+}
+
+
+static void edit_comment_dialog_instance_init (EditCommentDialog * self) {
+}
+
+
+GType edit_comment_dialog_get_type (void) {
+ static volatile gsize edit_comment_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&edit_comment_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditCommentDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) edit_comment_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditCommentDialog), 0, (GInstanceInitFunc) edit_comment_dialog_instance_init, NULL };
+ GType edit_comment_dialog_type_id;
+ edit_comment_dialog_type_id = g_type_register_static (TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, "EditCommentDialog", &g_define_type_info, 0);
+ g_once_init_leave (&edit_comment_dialog_type_id__volatile, edit_comment_dialog_type_id);
+ }
+ return edit_comment_dialog_type_id__volatile;
+}
+
+
+GtkResponseType remove_from_library_dialog (GtkWindow* owner, const gchar* title, const gchar* user_message, gint count) {
+ GtkResponseType result = 0;
+ gchar* trash_action = NULL;
+ gint _tmp0_ = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ GtkWindow* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkMessageDialog* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GtkResponseType _result_ = 0;
+ gint _tmp11_ = 0;
+#line 1366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (owner), 0);
+#line 1366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (title != NULL, 0);
+#line 1366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (user_message != NULL, 0);
+#line 1368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = count;
+#line 1368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = ngettext ("Remove and _Trash File", "Remove and _Trash Files", (gulong) _tmp0_);
+#line 1368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 1368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ trash_action = _tmp2_;
+#line 1370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = owner;
+#line 1370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = user_message;
+#line 1370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = (GtkMessageDialog*) gtk_message_dialog_new (_tmp3_, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_CANCEL, "%s", _tmp4_);
+#line 1370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp5_);
+#line 1370 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp5_;
+#line 1372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _ ("_Remove From Library");
+#line 1372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp6_, (gint) GTK_RESPONSE_NO);
+#line 1373 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), trash_action, (gint) GTK_RESPONSE_YES);
+#line 1378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = title;
+#line 1378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = user_message;
+#line 1378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = build_alert_body_text (_tmp7_, _tmp8_, TRUE);
+#line 1378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 1378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_message_dialog_set_markup (dialog, _tmp10_);
+#line 1378 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp10_);
+#line 1380 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 1380 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (GtkResponseType) _tmp11_;
+#line 1382 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 1384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _result_;
+#line 1384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 1384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (trash_action);
+#line 1384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12699 "Dialogs.c"
+}
+
+
+GtkResponseType remove_from_filesystem_dialog (GtkWindow* owner, const gchar* title, const gchar* user_message) {
+ GtkResponseType result = 0;
+ GtkMessageDialog* dialog = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkMessageDialog* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GtkResponseType _result_ = 0;
+ gint _tmp9_ = 0;
+#line 1388 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (owner), 0);
+#line 1388 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (title != NULL, 0);
+#line 1388 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (user_message != NULL, 0);
+#line 1390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = owner;
+#line 1390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = user_message;
+#line 1390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = (GtkMessageDialog*) gtk_message_dialog_new (_tmp0_, GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", _tmp1_);
+#line 1390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp2_);
+#line 1390 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp2_;
+#line 1392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _ ("_Keep");
+#line 1392 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp3_, (gint) GTK_RESPONSE_NO);
+#line 1393 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _ ("_Delete");
+#line 1393 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp4_, (gint) GTK_RESPONSE_YES);
+#line 1394 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_NO);
+#line 1396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = title;
+#line 1396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = user_message;
+#line 1396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = build_alert_body_text (_tmp5_, _tmp6_, TRUE);
+#line 1396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 1396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_message_dialog_set_markup (dialog, _tmp8_);
+#line 1396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp8_);
+#line 1398 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 1398 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (GtkResponseType) _tmp9_;
+#line 1400 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 1402 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _result_;
+#line 1402 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 1402 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12767 "Dialogs.c"
+}
+
+
+gboolean revert_editable_dialog (GtkWindow* owner, GeeCollection* photos) {
+ gboolean result = FALSE;
+ gint count = 0;
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar* headline = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* msg = NULL;
+ gint _tmp15_ = 0;
+ const gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gchar* action = NULL;
+ gchar* _tmp23_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ GtkWindow* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ GtkMessageDialog* _tmp26_ = NULL;
+ GtkMessageDialog* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GtkMessageDialog* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ GtkMessageDialog* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ GtkResponseType _result_ = 0;
+ GtkMessageDialog* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ GtkMessageDialog* _tmp38_ = NULL;
+ GtkResponseType _tmp39_ = 0;
+#line 1405 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (owner), FALSE);
+#line 1405 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (photos), FALSE);
+#line 1406 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ count = 0;
+#line 12812 "Dialogs.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = photos;
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _photo_it = _tmp1_;
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 12825 "Dialogs.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ Photo* photo = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _photo_it;
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp3_) {
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 12841 "Dialogs.c"
+ }
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _photo_it;
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photo = (Photo*) _tmp5_;
+#line 1408 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = photo;
+#line 1408 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = photo_has_editable (_tmp6_);
+#line 1408 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp7_) {
+#line 12855 "Dialogs.c"
+ gint _tmp8_ = 0;
+#line 1409 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = count;
+#line 1409 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ count = _tmp8_ + 1;
+#line 12861 "Dialogs.c"
+ }
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (photo);
+#line 12865 "Dialogs.c"
+ }
+#line 1407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_photo_it);
+#line 12869 "Dialogs.c"
+ }
+#line 1412 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = count;
+#line 1412 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_ == 0) {
+#line 1413 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 1413 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12879 "Dialogs.c"
+ }
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = count;
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp11_ == 1) {
+#line 12885 "Dialogs.c"
+ const gchar* _tmp12_ = NULL;
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _ ("Revert External Edit?");
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp12_;
+#line 12891 "Dialogs.c"
+ } else {
+ const gchar* _tmp13_ = NULL;
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _ ("Revert External Edits?");
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp13_;
+#line 12898 "Dialogs.c"
+ }
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = g_strdup (_tmp10_);
+#line 1415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ headline = _tmp14_;
+#line 1416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = count;
+#line 1416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = ngettext ("This will destroy all changes made to the external file. Continue?", "This will destroy all changes made to %d external files. Continue?", (gulong) _tmp15_);
+#line 1416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = count;
+#line 1416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = g_strdup_printf (_tmp16_, _tmp17_);
+#line 1416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ msg = _tmp18_;
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = count;
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp20_ == 1) {
+#line 12918 "Dialogs.c"
+ const gchar* _tmp21_ = NULL;
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = _ ("Re_vert External Edit");
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp21_;
+#line 12924 "Dialogs.c"
+ } else {
+ const gchar* _tmp22_ = NULL;
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _ ("Re_vert External Edits");
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp22_;
+#line 12931 "Dialogs.c"
+ }
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = g_strdup (_tmp19_);
+#line 1421 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ action = _tmp23_;
+#line 1423 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = owner;
+#line 1423 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = msg;
+#line 1423 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = (GtkMessageDialog*) gtk_message_dialog_new (_tmp24_, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, "%s", _tmp25_);
+#line 1423 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp26_);
+#line 1423 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp26_;
+#line 1425 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = dialog;
+#line 1425 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = _ ("_Cancel");
+#line 1425 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_dialog_get_type (), GtkDialog), _tmp28_, (gint) GTK_RESPONSE_CANCEL);
+#line 1426 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = dialog;
+#line 1426 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = action;
+#line 1426 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_dialog_get_type (), GtkDialog), _tmp30_, (gint) GTK_RESPONSE_YES);
+#line 1428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = dialog;
+#line 1428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = headline;
+#line 1428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = msg;
+#line 1428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = build_alert_body_text (_tmp32_, _tmp33_, TRUE);
+#line 1428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = _tmp34_;
+#line 1428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_message_dialog_set_markup (_tmp31_, _tmp35_);
+#line 1428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp35_);
+#line 1430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = dialog;
+#line 1430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_dialog_get_type (), GtkDialog));
+#line 1430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (GtkResponseType) _tmp37_;
+#line 1432 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = dialog;
+#line 1432 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget));
+#line 1434 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = _result_;
+#line 1434 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp39_ == GTK_RESPONSE_YES;
+#line 1434 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 1434 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (action);
+#line 1434 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (msg);
+#line 1434 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (headline);
+#line 1434 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 12997 "Dialogs.c"
+}
+
+
+gboolean remove_offline_dialog (GtkWindow* owner, gint count) {
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ gchar* msg = NULL;
+ gint _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ GtkWindow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkMessageDialog* _tmp7_ = NULL;
+ GtkMessageDialog* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GtkMessageDialog* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ GtkMessageDialog* _tmp16_ = NULL;
+ GtkResponseType _result_ = 0;
+ GtkMessageDialog* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ GtkMessageDialog* _tmp19_ = NULL;
+ GtkResponseType _tmp20_ = 0;
+#line 1437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (owner), FALSE);
+#line 1438 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = count;
+#line 1438 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == 0) {
+#line 1439 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 1439 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 13035 "Dialogs.c"
+ }
+#line 1441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = count;
+#line 1441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = ngettext ("This will remove the photo from the library. Continue?", "This will remove %d photos from the library. Continue?", (gulong) _tmp1_);
+#line 1441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = count;
+#line 1441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_strdup_printf (_tmp2_, _tmp3_);
+#line 1441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ msg = _tmp4_;
+#line 1446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = owner;
+#line 1446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = msg;
+#line 1446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = (GtkMessageDialog*) gtk_message_dialog_new (_tmp5_, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_NONE, "%s", _tmp6_);
+#line 1446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp7_);
+#line 1446 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp7_;
+#line 1448 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = dialog;
+#line 1448 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _ ("_Cancel");
+#line 1448 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_dialog_get_type (), GtkDialog), _tmp9_, (gint) GTK_RESPONSE_CANCEL);
+#line 1449 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = dialog;
+#line 1449 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _ ("_Remove");
+#line 1449 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_dialog_get_type (), GtkDialog), _tmp11_, (gint) GTK_RESPONSE_OK);
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = count;
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp13_ == 1) {
+#line 13073 "Dialogs.c"
+ const gchar* _tmp14_ = NULL;
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _ ("Remove Photo From Library");
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp14_;
+#line 13079 "Dialogs.c"
+ } else {
+ const gchar* _tmp15_ = NULL;
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = _ ("Remove Photos From Library");
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp15_;
+#line 13086 "Dialogs.c"
+ }
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = dialog;
+#line 1450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_window_get_type (), GtkWindow), _tmp12_);
+#line 1452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = dialog;
+#line 1452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_dialog_get_type (), GtkDialog));
+#line 1452 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (GtkResponseType) _tmp18_;
+#line 1454 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = dialog;
+#line 1454 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget));
+#line 1456 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = _result_;
+#line 1456 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp20_ == GTK_RESPONSE_OK;
+#line 1456 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 1456 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (msg);
+#line 1456 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 13112 "Dialogs.c"
+}
+
+
+static void _progress_dialog_on_cancel_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1489 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress_dialog_on_cancel ((ProgressDialog*) self);
+#line 13119 "Dialogs.c"
+}
+
+
+static gboolean _progress_dialog_on_window_closed_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = progress_dialog_on_window_closed ((ProgressDialog*) self);
+#line 1490 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 13128 "Dialogs.c"
+}
+
+
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable) {
+ ProgressDialog * self = NULL;
+ GCancellable* _tmp0_ = NULL;
+ GCancellable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkWindow* _tmp3_ = NULL;
+ GtkProgressBar* _tmp5_ = NULL;
+ GtkProgressBar* _tmp6_ = NULL;
+ GtkBox* vbox_bar = NULL;
+ GtkBox* _tmp7_ = NULL;
+ GtkBox* _tmp8_ = NULL;
+ GtkProgressBar* _tmp9_ = NULL;
+ GCancellable* _tmp10_ = NULL;
+ GtkBox* hbox = NULL;
+ GtkBox* _tmp13_ = NULL;
+ GtkBox* _tmp14_ = NULL;
+ GtkBox* _tmp15_ = NULL;
+ GtkButton* _tmp16_ = NULL;
+ GtkLabel* primary_text_label = NULL;
+ GtkLabel* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ GtkBox* vbox = NULL;
+ GtkBox* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ GtkAlignment* alignment = NULL;
+ GtkAlignment* _tmp25_ = NULL;
+ gulong _tmp26_ = 0UL;
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail ((owner == NULL) || GTK_IS_WINDOW (owner), NULL);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (text != NULL, NULL);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), NULL);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (ProgressDialog*) g_object_new (object_type, NULL);
+#line 1472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = cancellable;
+#line 1472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 1472 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->cancellable = _tmp1_;
+#line 1474 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = text;
+#line 1474 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp2_);
+#line 1475 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 1476 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = owner;
+#line 1476 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp3_ != NULL) {
+#line 13187 "Dialogs.c"
+ GtkWindow* _tmp4_ = NULL;
+#line 1477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = owner;
+#line 1477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp4_);
+#line 13193 "Dialogs.c"
+ }
+#line 1478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 1479 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_type_hint (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), GDK_WINDOW_TYPE_HINT_DIALOG);
+#line 1481 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->progress_bar;
+#line 1481 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), 300, -1);
+#line 1482 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->progress_bar;
+#line 1482 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_progress_bar_set_show_text (_tmp6_, TRUE);
+#line 1484 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 1484 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp7_);
+#line 1484 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ vbox_bar = _tmp7_;
+#line 1485 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = vbox_bar;
+#line 1485 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->progress_bar;
+#line 1485 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1487 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = cancellable;
+#line 1487 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp10_ != NULL) {
+#line 13223 "Dialogs.c"
+ GtkButton* _tmp11_ = NULL;
+ GtkButton* _tmp12_ = NULL;
+#line 1488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
+#line 1488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp11_);
+#line 1488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->cancel_button);
+#line 1488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->cancel_button = _tmp11_;
+#line 1489 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->cancel_button;
+#line 1489 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp12_, "clicked", (GCallback) _progress_dialog_on_cancel_gtk_button_clicked, self, 0);
+#line 1490 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "delete-event", (GCallback) _progress_dialog_on_window_closed_gtk_widget_delete_event, self, 0);
+#line 13240 "Dialogs.c"
+ }
+#line 1493 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
+#line 1493 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp13_);
+#line 1493 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ hbox = _tmp13_;
+#line 1494 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = hbox;
+#line 1494 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = vbox_bar;
+#line 1494 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp14_, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1495 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->cancel_button;
+#line 1495 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp16_ != NULL) {
+#line 13258 "Dialogs.c"
+ GtkBox* _tmp17_ = NULL;
+ GtkButton* _tmp18_ = NULL;
+#line 1496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = hbox;
+#line 1496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->cancel_button;
+#line 1496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_end (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 13267 "Dialogs.c"
+ }
+#line 1498 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = (GtkLabel*) gtk_label_new ("");
+#line 1498 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp19_);
+#line 1498 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ primary_text_label = _tmp19_;
+#line 1499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = text;
+#line 1499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = g_strdup_printf ("<span weight=\"bold\">%s</span>", _tmp20_);
+#line 1499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _tmp21_;
+#line 1499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_markup (primary_text_label, _tmp22_);
+#line 1499 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp22_);
+#line 1500 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (primary_text_label, gtk_misc_get_type (), GtkMisc), (gfloat) 0, 0.5f);
+#line 1502 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
+#line 1502 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp23_);
+#line 1502 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ vbox = _tmp23_;
+#line 1503 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (vbox, G_TYPE_CHECK_INSTANCE_CAST (primary_text_label, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1504 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = hbox;
+#line 1504 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (vbox, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = (GtkAlignment*) gtk_alignment_new (0.5f, 0.5f, 1.0f, 1.0f);
+#line 1506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp25_);
+#line 1506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ alignment = _tmp25_;
+#line 1507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_alignment_set_padding (alignment, (guint) 12, (guint) 12, (guint) 12, (guint) 12);
+#line 1508 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (alignment, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (vbox, gtk_widget_get_type (), GtkWidget));
+#line 1510 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (alignment, gtk_widget_get_type (), GtkWidget));
+#line 1512 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = now_ms ();
+#line 1512 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->time_started = _tmp26_;
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (alignment);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (vbox);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (primary_text_label);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (hbox);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (vbox_bar);
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 13327 "Dialogs.c"
+}
+
+
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable) {
+#line 1471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return progress_dialog_construct (TYPE_PROGRESS_DIALOG, owner, text, cancellable);
+#line 13334 "Dialogs.c"
+}
+
+
+static void progress_dialog_real_realize (GtkWidget* base) {
+ ProgressDialog * self;
+ GCancellable* _tmp0_ = NULL;
+#line 1515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PROGRESS_DIALOG, ProgressDialog);
+#line 1516 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ GTK_WIDGET_CLASS (progress_dialog_parent_class)->realize (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget));
+#line 1519 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 1519 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == NULL) {
+#line 13349 "Dialogs.c"
+ GdkWindow* _tmp1_ = NULL;
+#line 1520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gdk_window_set_functions (_tmp1_, GDK_FUNC_MOVE);
+#line 13355 "Dialogs.c"
+ }
+}
+
+
+void progress_dialog_update_display_every (ProgressDialog* self, gint update_every) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 1523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1524 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = update_every;
+#line 1524 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_assert (_tmp0_ >= 1, "update_every >= 1");
+#line 1526 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = update_every;
+#line 1526 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->update_every = _tmp1_;
+#line 13373 "Dialogs.c"
+}
+
+
+void progress_dialog_set_minimum_on_screen_time_msec (ProgressDialog* self, gint minimum_on_screen_time_msec) {
+ gint _tmp0_ = 0;
+#line 1529 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1530 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = minimum_on_screen_time_msec;
+#line 1530 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->minimum_on_screen_time_msec = _tmp0_;
+#line 13385 "Dialogs.c"
+}
+
+
+void progress_dialog_set_fraction (ProgressDialog* self, gint current, gint total) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 1533 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1534 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = current;
+#line 1534 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = total;
+#line 1534 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress_dialog_set_percentage (self, ((gdouble) _tmp0_) / ((gdouble) _tmp1_));
+#line 13400 "Dialogs.c"
+}
+
+
+void progress_dialog_set_percentage (ProgressDialog* self, gdouble pct) {
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ GtkProgressBar* _tmp3_ = NULL;
+ gdouble _tmp4_ = 0.0;
+ GtkProgressBar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1537 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = pct;
+#line 1538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = CLAMP (_tmp0_, 0.0, 1.0);
+#line 1538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pct = _tmp1_;
+#line 1540 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = pct;
+#line 1540 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress_dialog_maybe_show_all (self, _tmp2_);
+#line 1542 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->progress_bar;
+#line 1542 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = pct;
+#line 1542 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_progress_bar_set_fraction (_tmp3_, _tmp4_);
+#line 1543 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->progress_bar;
+#line 1543 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _ ("%d%%");
+#line 1543 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = pct;
+#line 1543 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = g_strdup_printf (_tmp6_, (gint) (_tmp7_ * 100.0));
+#line 1543 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 1543 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_progress_bar_set_text (_tmp5_, _tmp9_);
+#line 1543 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp9_);
+#line 13447 "Dialogs.c"
+}
+
+
+void progress_dialog_set_status (ProgressDialog* self, const gchar* text) {
+ GtkProgressBar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (text != NULL);
+#line 1552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->progress_bar;
+#line 1552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = text;
+#line 1552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_progress_bar_set_text (_tmp0_, _tmp1_);
+#line 1558 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 13466 "Dialogs.c"
+}
+
+
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ guint64 _tmp1_ = 0ULL;
+ gboolean _tmp8_ = FALSE;
+ GCancellable* _tmp9_ = NULL;
+ gboolean keep_going = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 1562 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PROGRESS_DIALOG (self), FALSE);
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->last_count;
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_ == G_MAXUINT64) {
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = TRUE;
+#line 13486 "Dialogs.c"
+ } else {
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ gint _tmp4_ = 0;
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = count;
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->last_count;
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = self->priv->update_every;
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = (_tmp2_ - _tmp3_) >= ((guint64) _tmp4_);
+#line 13499 "Dialogs.c"
+ }
+#line 1563 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 13503 "Dialogs.c"
+ guint64 _tmp5_ = 0ULL;
+ guint64 _tmp6_ = 0ULL;
+ guint64 _tmp7_ = 0ULL;
+#line 1564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = count;
+#line 1564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = total;
+#line 1564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress_dialog_set_percentage (self, ((gdouble) _tmp5_) / ((gdouble) _tmp6_));
+#line 1565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = count;
+#line 1565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->last_count = _tmp7_;
+#line 13517 "Dialogs.c"
+ }
+#line 1568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->cancellable;
+#line 1568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_ != NULL) {
+#line 13523 "Dialogs.c"
+ GCancellable* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 1568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->cancellable;
+#line 1568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = g_cancellable_is_cancelled (_tmp10_);
+#line 1568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = !_tmp11_;
+#line 13532 "Dialogs.c"
+ } else {
+#line 1568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = TRUE;
+#line 13536 "Dialogs.c"
+ }
+#line 1568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ keep_going = _tmp8_;
+#line 1576 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = do_event_loop;
+#line 1576 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp12_) {
+#line 1577 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spin_event_loop ();
+#line 13546 "Dialogs.c"
+ }
+#line 1579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = keep_going;
+#line 1579 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 13552 "Dialogs.c"
+}
+
+
+void progress_dialog_close (ProgressDialog* self) {
+#line 1582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1587 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1588 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 13563 "Dialogs.c"
+}
+
+
+static gboolean progress_dialog_on_window_closed (ProgressDialog* self) {
+ gboolean result = FALSE;
+#line 1591 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PROGRESS_DIALOG (self), FALSE);
+#line 1592 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress_dialog_on_cancel (self);
+#line 1593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 1593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 13577 "Dialogs.c"
+}
+
+
+static void progress_dialog_on_cancel (ProgressDialog* self) {
+ GCancellable* _tmp0_ = NULL;
+ GtkButton* _tmp2_ = NULL;
+#line 1597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 1598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ != NULL) {
+#line 13590 "Dialogs.c"
+ GCancellable* _tmp1_ = NULL;
+#line 1599 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->cancellable;
+#line 1599 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_cancellable_cancel (_tmp1_);
+#line 13596 "Dialogs.c"
+ }
+#line 1601 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->cancel_button;
+#line 1601 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 13602 "Dialogs.c"
+}
+
+
+static void progress_dialog_maybe_show_all (ProgressDialog* self, gdouble pct) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1604 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PROGRESS_DIALOG (self));
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp2_) {
+#line 13618 "Dialogs.c"
+ gulong _tmp3_ = 0UL;
+ gulong _tmp4_ = 0UL;
+ gint _tmp5_ = 0;
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = now_ms ();
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = self->priv->time_started;
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->minimum_on_screen_time_msec;
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = (_tmp3_ - _tmp4_) > ((gulong) _tmp5_);
+#line 13630 "Dialogs.c"
+ } else {
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = FALSE;
+#line 13634 "Dialogs.c"
+ }
+#line 1607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 13638 "Dialogs.c"
+ gdouble pps = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gint _tmp7_ = 0;
+ gdouble ttc = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ gint _tmp10_ = 0;
+#line 1609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = pct;
+#line 1609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->minimum_on_screen_time_msec;
+#line 1609 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pps = (_tmp6_ * 100.0) / _tmp7_;
+#line 1611 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = pps;
+#line 1611 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ttc = 100.0 / _tmp8_;
+#line 1614 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = ttc;
+#line 1614 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->minimum_on_screen_time_msec;
+#line 1614 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_ > ((gdouble) _tmp10_)) {
+#line 1619 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1620 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spin_event_loop ();
+#line 13666 "Dialogs.c"
+ }
+ }
+}
+
+
+static void progress_dialog_class_init (ProgressDialogClass * klass) {
+#line 1459 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1459 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (ProgressDialogPrivate));
+#line 1459 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((GtkWidgetClass *) klass)->realize = progress_dialog_real_realize;
+#line 1459 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (klass)->finalize = progress_dialog_finalize;
+#line 13681 "Dialogs.c"
+}
+
+
+static void progress_dialog_instance_init (ProgressDialog * self) {
+ GtkProgressBar* _tmp0_ = NULL;
+#line 1459 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = PROGRESS_DIALOG_GET_PRIVATE (self);
+#line 1460 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = (GtkProgressBar*) gtk_progress_bar_new ();
+#line 1460 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1460 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->progress_bar = _tmp0_;
+#line 1461 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->cancel_button = NULL;
+#line 1463 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->last_count = G_MAXUINT64;
+#line 1464 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->update_every = 1;
+#line 1465 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->minimum_on_screen_time_msec = 500;
+#line 13703 "Dialogs.c"
+}
+
+
+static void progress_dialog_finalize (GObject* obj) {
+ ProgressDialog * self;
+#line 1459 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROGRESS_DIALOG, ProgressDialog);
+#line 1460 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->progress_bar);
+#line 1461 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->cancel_button);
+#line 1462 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 1459 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (progress_dialog_parent_class)->finalize (obj);
+#line 13719 "Dialogs.c"
+}
+
+
+GType progress_dialog_get_type (void) {
+ static volatile gsize progress_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&progress_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ProgressDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) progress_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ProgressDialog), 0, (GInstanceInitFunc) progress_dialog_instance_init, NULL };
+ GType progress_dialog_type_id;
+ progress_dialog_type_id = g_type_register_static (gtk_window_get_type (), "ProgressDialog", &g_define_type_info, 0);
+ g_once_init_leave (&progress_dialog_type_id__volatile, progress_dialog_type_id);
+ }
+ return progress_dialog_type_id__volatile;
+}
+
+
+static GType adjust_date_time_dialog_time_system_get_type (void) {
+ static volatile gsize adjust_date_time_dialog_time_system_type_id__volatile = 0;
+ if (g_once_init_enter (&adjust_date_time_dialog_time_system_type_id__volatile)) {
+ static const GEnumValue values[] = {{ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_AM, "ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_AM", "am"}, {ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_PM, "ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_PM", "pm"}, {ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_24HR, "ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_24HR", "24hr"}, {0, NULL, NULL}};
+ GType adjust_date_time_dialog_time_system_type_id;
+ adjust_date_time_dialog_time_system_type_id = g_enum_register_static ("AdjustDateTimeDialogTimeSystem", values);
+ g_once_init_leave (&adjust_date_time_dialog_time_system_type_id__volatile, adjust_date_time_dialog_time_system_type_id);
+ }
+ return adjust_date_time_dialog_time_system_type_id__volatile;
+}
+
+
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_day_selected (GtkCalendar* _sender, gpointer self) {
+#line 1672 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_changed ((AdjustDateTimeDialog*) self);
+#line 13750 "Dialogs.c"
+}
+
+
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_month_changed (GtkCalendar* _sender, gpointer self) {
+#line 1673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_changed ((AdjustDateTimeDialog*) self);
+#line 13757 "Dialogs.c"
+}
+
+
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_next_year (GtkCalendar* _sender, gpointer self) {
+#line 1674 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_changed ((AdjustDateTimeDialog*) self);
+#line 13764 "Dialogs.c"
+}
+
+
+static void _adjust_date_time_dialog_on_time_changed_gtk_calendar_prev_year (GtkCalendar* _sender, gpointer self) {
+#line 1675 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_changed ((AdjustDateTimeDialog*) self);
+#line 13771 "Dialogs.c"
+}
+
+
+static gboolean _adjust_date_time_dialog_on_spin_button_output_gtk_spin_button_output (GtkSpinButton* _sender, gpointer self) {
+ gboolean result;
+ result = adjust_date_time_dialog_on_spin_button_output ((AdjustDateTimeDialog*) self, _sender);
+#line 1682 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 13780 "Dialogs.c"
+}
+
+
+static void _adjust_date_time_dialog_on_time_system_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 1700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_system_changed ((AdjustDateTimeDialog*) self);
+#line 13787 "Dialogs.c"
+}
+
+
+static void _adjust_date_time_dialog_on_time_changed_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) {
+#line 1722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_changed ((AdjustDateTimeDialog*) self);
+#line 13794 "Dialogs.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 13809 "Dialogs.c"
+}
+
+
+AdjustDateTimeDialog* adjust_date_time_dialog_construct (GType object_type, Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video) {
+ AdjustDateTimeDialog * self = NULL;
+ Dateable* _tmp0_ = NULL;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ AppWindow* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+ GtkCalendar* _tmp6_ = NULL;
+ GtkCalendar* _tmp7_ = NULL;
+ GtkCalendar* _tmp8_ = NULL;
+ GtkCalendar* _tmp9_ = NULL;
+ GtkCalendar* _tmp10_ = NULL;
+ ConfigFacade* _tmp11_ = NULL;
+ ConfigFacade* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ GtkSpinButton* _tmp17_ = NULL;
+ GtkSpinButton* _tmp18_ = NULL;
+ GtkSpinButton* _tmp19_ = NULL;
+ GtkSpinButton* _tmp20_ = NULL;
+ GtkSpinButton* _tmp21_ = NULL;
+ GtkSpinButton* _tmp22_ = NULL;
+ GtkSpinButton* _tmp23_ = NULL;
+ GtkSpinButton* _tmp24_ = NULL;
+ GtkSpinButton* _tmp25_ = NULL;
+ GtkSpinButton* _tmp26_ = NULL;
+ GtkSpinButton* _tmp27_ = NULL;
+ GtkComboBoxText* _tmp28_ = NULL;
+ GtkComboBoxText* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ GtkComboBoxText* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ GtkComboBoxText* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ GtkComboBoxText* _tmp35_ = NULL;
+ GtkBox* clock = NULL;
+ GtkBox* _tmp36_ = NULL;
+ GtkBox* _tmp37_ = NULL;
+ GtkSpinButton* _tmp38_ = NULL;
+ GtkBox* _tmp39_ = NULL;
+ GtkLabel* _tmp40_ = NULL;
+ GtkLabel* _tmp41_ = NULL;
+ GtkBox* _tmp42_ = NULL;
+ GtkSpinButton* _tmp43_ = NULL;
+ GtkBox* _tmp44_ = NULL;
+ GtkLabel* _tmp45_ = NULL;
+ GtkLabel* _tmp46_ = NULL;
+ GtkBox* _tmp47_ = NULL;
+ GtkSpinButton* _tmp48_ = NULL;
+ GtkBox* _tmp49_ = NULL;
+ GtkComboBoxText* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ GtkRadioButton* _tmp52_ = NULL;
+ GtkRadioButton* _tmp53_ = NULL;
+ ConfigFacade* _tmp54_ = NULL;
+ ConfigFacade* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ gboolean _tmp57_ = FALSE;
+ gboolean _tmp58_ = FALSE;
+ GtkRadioButton* _tmp60_ = NULL;
+ GtkRadioButton* _tmp61_ = NULL;
+ GSList* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+ GtkRadioButton* _tmp64_ = NULL;
+ GtkRadioButton* _tmp65_ = NULL;
+ ConfigFacade* _tmp66_ = NULL;
+ ConfigFacade* _tmp67_ = NULL;
+ gboolean _tmp68_ = FALSE;
+ gboolean _tmp69_ = FALSE;
+ gboolean _tmp70_ = FALSE;
+ GtkRadioButton* _tmp72_ = NULL;
+ GtkRadioButton* _tmp73_ = NULL;
+ gboolean _tmp74_ = FALSE;
+ gboolean _tmp85_ = FALSE;
+ ConfigFacade* _tmp86_ = NULL;
+ ConfigFacade* _tmp87_ = NULL;
+ gboolean _tmp88_ = FALSE;
+ gboolean _tmp89_ = FALSE;
+ GtkCheckButton* _tmp91_ = NULL;
+ gboolean _tmp92_ = FALSE;
+ gboolean _tmp93_ = FALSE;
+ GtkCheckButton* _tmp100_ = NULL;
+ GtkBox* time_content = NULL;
+ GtkBox* _tmp101_ = NULL;
+ GtkBox* _tmp102_ = NULL;
+ GtkCalendar* _tmp103_ = NULL;
+ GtkBox* _tmp104_ = NULL;
+ GtkBox* _tmp105_ = NULL;
+ gboolean _tmp106_ = FALSE;
+ GdkPixbuf* preview = NULL;
+ GtkBox* image_content = NULL;
+ GtkBox* _tmp120_ = NULL;
+ GtkBox* _tmp121_ = NULL;
+ GtkBox* _tmp122_ = NULL;
+ GtkImage* _tmp123_ = NULL;
+ GdkPixbuf* _tmp124_ = NULL;
+ GtkImage* image = NULL;
+ GtkImage* _tmp128_ = NULL;
+ GtkLabel* _tmp129_ = NULL;
+ GtkBox* _tmp130_ = NULL;
+ GtkImage* _tmp131_ = NULL;
+ GtkBox* _tmp132_ = NULL;
+ GtkLabel* _tmp133_ = NULL;
+ GtkBox* hbox = NULL;
+ GtkBox* _tmp134_ = NULL;
+ GtkBox* _tmp135_ = NULL;
+ GtkBox* _tmp136_ = NULL;
+ GtkBox* _tmp137_ = NULL;
+ GtkBox* _tmp138_ = NULL;
+ GtkBox* _tmp139_ = NULL;
+ GtkAlignment* hbox_alignment = NULL;
+ GtkAlignment* _tmp140_ = NULL;
+ GtkAlignment* _tmp141_ = NULL;
+ GtkBox* _tmp142_ = NULL;
+ GtkBox* _tmp143_ = NULL;
+ GtkAlignment* _tmp144_ = NULL;
+ GtkLabel* _tmp145_ = NULL;
+ GtkLabel* _tmp146_ = NULL;
+ GtkLabel* _tmp147_ = NULL;
+ GtkBox* _tmp148_ = NULL;
+ GtkLabel* _tmp149_ = NULL;
+ Dateable* _tmp150_ = NULL;
+ time_t _tmp151_ = 0;
+ time_t _tmp152_ = 0;
+ time_t _tmp154_ = 0;
+ struct tm _tmp155_ = {0};
+ ConfigFacade* _tmp156_ = NULL;
+ ConfigFacade* _tmp157_ = NULL;
+ gboolean _tmp158_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_DATEABLE (source), NULL);
+#line 1657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = source;
+#line 1657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_assert (_tmp0_ != NULL, "source != null");
+#line 1660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_settings_get_default ();
+#line 1660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 1661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = use_header;
+#line 1661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp3_) {
+#line 1661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = 1;
+#line 13961 "Dialogs.c"
+ } else {
+#line 1661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = 0;
+#line 13965 "Dialogs.c"
+ }
+#line 1661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (AdjustDateTimeDialog*) g_object_new (object_type, "use-header-bar", _tmp2_, NULL);
+#line 1663 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 1664 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 1665 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 1665 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 1665 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_window_get_type (), GtkWindow));
+#line 1665 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1667 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_OK, NULL);
+#line 1669 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), RESOURCES_ADJUST_DATE_TIME_LABEL);
+#line 1671 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = (GtkCalendar*) gtk_calendar_new ();
+#line 1671 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp6_);
+#line 1671 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->calendar);
+#line 1671 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->calendar = _tmp6_;
+#line 1672 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->calendar;
+#line 1672 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp7_, "day-selected", (GCallback) _adjust_date_time_dialog_on_time_changed_gtk_calendar_day_selected, self, 0);
+#line 1673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->calendar;
+#line 1673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp8_, "month-changed", (GCallback) _adjust_date_time_dialog_on_time_changed_gtk_calendar_month_changed, self, 0);
+#line 1674 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->calendar;
+#line 1674 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp9_, "next-year", (GCallback) _adjust_date_time_dialog_on_time_changed_gtk_calendar_next_year, self, 0);
+#line 1675 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->calendar;
+#line 1675 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp10_, "prev-year", (GCallback) _adjust_date_time_dialog_on_time_changed_gtk_calendar_prev_year, self, 0);
+#line 1677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = config_facade_get_instance ();
+#line 1677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp11_;
+#line 1677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = configuration_facade_get_use_24_hour_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 1677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1677 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp14_) {
+#line 14021 "Dialogs.c"
+ GtkSpinButton* _tmp15_ = NULL;
+#line 1678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = (GtkSpinButton*) gtk_spin_button_new_with_range ((gdouble) 0, (gdouble) 23, (gdouble) 1);
+#line 1678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp15_);
+#line 1678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->hour);
+#line 1678 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->hour = _tmp15_;
+#line 14031 "Dialogs.c"
+ } else {
+ GtkSpinButton* _tmp16_ = NULL;
+#line 1680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = (GtkSpinButton*) gtk_spin_button_new_with_range ((gdouble) 1, (gdouble) 12, (gdouble) 1);
+#line 1680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp16_);
+#line 1680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->hour);
+#line 1680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->hour = _tmp16_;
+#line 14042 "Dialogs.c"
+ }
+#line 1682 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->hour;
+#line 1682 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp17_, "output", (GCallback) _adjust_date_time_dialog_on_spin_button_output_gtk_spin_button_output, self, 0);
+#line 1683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->hour;
+#line 1683 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_width_chars (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_entry_get_type (), GtkEntry), 2);
+#line 1684 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = self->priv->hour;
+#line 1684 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_max_width_chars (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_entry_get_type (), GtkEntry), 2);
+#line 1686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = (GtkSpinButton*) gtk_spin_button_new_with_range ((gdouble) 0, (gdouble) 59, (gdouble) 1);
+#line 1686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp20_);
+#line 1686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->minute);
+#line 1686 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->minute = _tmp20_;
+#line 1687 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->priv->minute;
+#line 1687 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_width_chars (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_entry_get_type (), GtkEntry), 2);
+#line 1688 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->priv->minute;
+#line 1688 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_max_width_chars (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_entry_get_type (), GtkEntry), 2);
+#line 1689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->priv->minute;
+#line 1689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp23_, "output", (GCallback) _adjust_date_time_dialog_on_spin_button_output_gtk_spin_button_output, self, 0);
+#line 1691 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = (GtkSpinButton*) gtk_spin_button_new_with_range ((gdouble) 0, (gdouble) 59, (gdouble) 1);
+#line 1691 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp24_);
+#line 1691 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->second);
+#line 1691 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->second = _tmp24_;
+#line 1692 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = self->priv->second;
+#line 1692 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_width_chars (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_entry_get_type (), GtkEntry), 2);
+#line 1693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = self->priv->second;
+#line 1693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_max_width_chars (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_entry_get_type (), GtkEntry), 2);
+#line 1694 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = self->priv->second;
+#line 1694 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (_tmp27_, "output", (GCallback) _adjust_date_time_dialog_on_spin_button_output_gtk_spin_button_output, self, 0);
+#line 1696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 1696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp28_);
+#line 1696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->system);
+#line 1696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->system = _tmp28_;
+#line 1697 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = self->priv->system;
+#line 1697 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = _ ("AM");
+#line 1697 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp29_, _tmp30_);
+#line 1698 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = self->priv->system;
+#line 1698 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = _ ("PM");
+#line 1698 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp31_, _tmp32_);
+#line 1699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = self->priv->system;
+#line 1699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = _ ("24 Hr");
+#line 1699 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp33_, _tmp34_);
+#line 1700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = self->priv->system;
+#line 1700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _adjust_date_time_dialog_on_time_system_changed_gtk_combo_box_changed, self, 0);
+#line 1702 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 1702 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp36_);
+#line 1702 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ clock = _tmp36_;
+#line 1704 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = clock;
+#line 1704 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = self->priv->hour;
+#line 1704 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp37_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = clock;
+#line 1705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = (GtkLabel*) gtk_label_new (":");
+#line 1705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp40_);
+#line 1705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = _tmp40_;
+#line 1705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp39_, G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp41_);
+#line 1706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = clock;
+#line 1706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = self->priv->minute;
+#line 1706 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp42_, G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1707 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = clock;
+#line 1707 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = (GtkLabel*) gtk_label_new (":");
+#line 1707 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp45_);
+#line 1707 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = _tmp45_;
+#line 1707 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp44_, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1707 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp46_);
+#line 1708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = clock;
+#line 1708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = self->priv->second;
+#line 1708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp47_, G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = clock;
+#line 1709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = self->priv->system;
+#line 1709 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp49_, G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1711 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
+#line 1713 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = _ ("_Shift photos/videos by the same amount");
+#line 1713 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = (GtkRadioButton*) gtk_radio_button_new_with_mnemonic (NULL, _tmp51_);
+#line 1713 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp52_);
+#line 1713 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->relativity_radio_button);
+#line 1713 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->relativity_radio_button = _tmp52_;
+#line 1715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = self->priv->relativity_radio_button;
+#line 1715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = config_facade_get_instance ();
+#line 1715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = _tmp54_;
+#line 1715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = configuration_facade_get_keep_relativity (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp56_);
+#line 1715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp55_);
+#line 1716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = display_options;
+#line 1716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp58_) {
+#line 14208 "Dialogs.c"
+ gint _tmp59_ = 0;
+#line 1716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = photo_count;
+#line 1716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = _tmp59_ > 1;
+#line 14214 "Dialogs.c"
+ } else {
+#line 1716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = FALSE;
+#line 14218 "Dialogs.c"
+ }
+#line 1716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp60_ = self->priv->relativity_radio_button;
+#line 1716 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, gtk_widget_get_type (), GtkWidget), _tmp57_);
+#line 1718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = self->priv->relativity_radio_button;
+#line 1718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = gtk_radio_button_get_group (_tmp61_);
+#line 1718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = _ ("Set _all photos/videos to this time");
+#line 1718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = (GtkRadioButton*) gtk_radio_button_new_with_mnemonic (_tmp62_, _tmp63_);
+#line 1718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp64_);
+#line 1718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->batch_radio_button);
+#line 1718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->batch_radio_button = _tmp64_;
+#line 1720 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = self->priv->batch_radio_button;
+#line 1720 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = config_facade_get_instance ();
+#line 1720 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = _tmp66_;
+#line 1720 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = configuration_facade_get_keep_relativity (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1720 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp65_, gtk_toggle_button_get_type (), GtkToggleButton), !_tmp68_);
+#line 1720 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp67_);
+#line 1721 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = display_options;
+#line 1721 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp70_) {
+#line 14254 "Dialogs.c"
+ gint _tmp71_ = 0;
+#line 1721 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = photo_count;
+#line 1721 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = _tmp71_ > 1;
+#line 14260 "Dialogs.c"
+ } else {
+#line 1721 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = FALSE;
+#line 14264 "Dialogs.c"
+ }
+#line 1721 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp72_ = self->priv->batch_radio_button;
+#line 1721 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, gtk_widget_get_type (), GtkWidget), _tmp69_);
+#line 1722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp73_ = self->priv->batch_radio_button;
+#line 1722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, gtk_toggle_button_get_type (), GtkToggleButton), "toggled", (GCallback) _adjust_date_time_dialog_on_time_changed_gtk_toggle_button_toggled, self, 0);
+#line 1724 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp74_ = contains_video;
+#line 1724 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp74_) {
+#line 14278 "Dialogs.c"
+ const gchar* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ GtkCheckButton* _tmp79_ = NULL;
+#line 1725 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp76_ = photo_count;
+#line 1725 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp76_ == 1) {
+#line 14286 "Dialogs.c"
+ const gchar* _tmp77_ = NULL;
+#line 1726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp77_ = _ ("_Modify original photo file");
+#line 1726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75_ = _tmp77_;
+#line 14292 "Dialogs.c"
+ } else {
+ const gchar* _tmp78_ = NULL;
+#line 1726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp78_ = _ ("_Modify original photo files");
+#line 1726 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75_ = _tmp78_;
+#line 14299 "Dialogs.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp79_ = (GtkCheckButton*) gtk_check_button_new_with_mnemonic (_tmp75_);
+#line 1725 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp79_);
+#line 1725 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->modify_originals_check_button);
+#line 1725 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->modify_originals_check_button = _tmp79_;
+#line 14309 "Dialogs.c"
+ } else {
+ const gchar* _tmp80_ = NULL;
+ gint _tmp81_ = 0;
+ GtkCheckButton* _tmp84_ = NULL;
+#line 1728 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp81_ = photo_count;
+#line 1728 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp81_ == 1) {
+#line 14318 "Dialogs.c"
+ const gchar* _tmp82_ = NULL;
+#line 1729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp82_ = _ ("_Modify original file");
+#line 1729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp80_ = _tmp82_;
+#line 14324 "Dialogs.c"
+ } else {
+ const gchar* _tmp83_ = NULL;
+#line 1729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp83_ = _ ("_Modify original files");
+#line 1729 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp80_ = _tmp83_;
+#line 14331 "Dialogs.c"
+ }
+#line 1728 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp84_ = (GtkCheckButton*) gtk_check_button_new_with_mnemonic (_tmp80_);
+#line 1728 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp84_);
+#line 1728 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->modify_originals_check_button);
+#line 1728 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->modify_originals_check_button = _tmp84_;
+#line 14341 "Dialogs.c"
+ }
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp86_ = config_facade_get_instance ();
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp87_ = _tmp86_;
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp88_ = configuration_facade_get_commit_metadata_to_masters (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp89_ = _tmp88_;
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp87_);
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp89_) {
+#line 14355 "Dialogs.c"
+ gboolean _tmp90_ = FALSE;
+#line 1733 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp90_ = display_options;
+#line 1733 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp85_ = _tmp90_;
+#line 14361 "Dialogs.c"
+ } else {
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp85_ = FALSE;
+#line 14365 "Dialogs.c"
+ }
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp91_ = self->priv->modify_originals_check_button;
+#line 1732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp91_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp85_);
+#line 1734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp93_ = only_video;
+#line 1734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp93_) {
+#line 14375 "Dialogs.c"
+ gboolean _tmp94_ = FALSE;
+ ConfigFacade* _tmp95_ = NULL;
+ ConfigFacade* _tmp96_ = NULL;
+ gboolean _tmp97_ = FALSE;
+ gboolean _tmp98_ = FALSE;
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp95_ = config_facade_get_instance ();
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp96_ = _tmp95_;
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp97_ = configuration_facade_get_commit_metadata_to_masters (G_TYPE_CHECK_INSTANCE_CAST (_tmp96_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp98_ = !_tmp97_;
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp96_);
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp98_) {
+#line 14393 "Dialogs.c"
+ gboolean _tmp99_ = FALSE;
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp99_ = display_options;
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp94_ = _tmp99_;
+#line 14399 "Dialogs.c"
+ } else {
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp94_ = FALSE;
+#line 14403 "Dialogs.c"
+ }
+#line 1735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp92_ = _tmp94_;
+#line 14407 "Dialogs.c"
+ } else {
+#line 1734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp92_ = FALSE;
+#line 14411 "Dialogs.c"
+ }
+#line 1734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp100_ = self->priv->modify_originals_check_button;
+#line 1734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, gtk_widget_get_type (), GtkWidget), _tmp92_);
+#line 1737 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp101_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+#line 1737 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp101_);
+#line 1737 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time_content = _tmp101_;
+#line 1739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp102_ = time_content;
+#line 1739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp103_ = self->priv->calendar;
+#line 1739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp102_, G_TYPE_CHECK_INSTANCE_CAST (_tmp103_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1740 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp104_ = time_content;
+#line 1740 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp105_ = clock;
+#line 1740 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp104_, G_TYPE_CHECK_INSTANCE_CAST (_tmp105_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp106_ = display_options;
+#line 1742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp106_) {
+#line 14439 "Dialogs.c"
+ GtkBox* _tmp107_ = NULL;
+ GtkRadioButton* _tmp108_ = NULL;
+ GtkBox* _tmp109_ = NULL;
+ GtkRadioButton* _tmp110_ = NULL;
+ GtkBox* _tmp111_ = NULL;
+ GtkCheckButton* _tmp112_ = NULL;
+#line 1743 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp107_ = time_content;
+#line 1743 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp108_ = self->priv->relativity_radio_button;
+#line 1743 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp107_, G_TYPE_CHECK_INSTANCE_CAST (_tmp108_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp109_ = time_content;
+#line 1744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp110_ = self->priv->batch_radio_button;
+#line 1744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp109_, G_TYPE_CHECK_INSTANCE_CAST (_tmp110_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp111_ = time_content;
+#line 1745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp112_ = self->priv->modify_originals_check_button;
+#line 1745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp111_, G_TYPE_CHECK_INSTANCE_CAST (_tmp112_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 14464 "Dialogs.c"
+ }
+#line 1748 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preview = NULL;
+#line 14468 "Dialogs.c"
+ {
+ GdkPixbuf* _tmp113_ = NULL;
+ Dateable* _tmp114_ = NULL;
+ GdkPixbuf* _tmp115_ = NULL;
+ GdkPixbuf* _tmp116_ = NULL;
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp114_ = source;
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp115_ = thumbnail_source_get_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (_tmp114_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), ADJUST_DATE_TIME_DIALOG_CALENDAR_THUMBNAIL_SCALE, &_inner_error_);
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp113_ = _tmp115_;
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 14482 "Dialogs.c"
+ goto __catch412_g_error;
+ }
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp116_ = _tmp113_;
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp113_ = NULL;
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (preview);
+#line 1752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preview = _tmp116_;
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp113_);
+#line 14495 "Dialogs.c"
+ }
+ goto __finally412;
+ __catch412_g_error:
+ {
+ GError* err = NULL;
+ Dateable* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ err = _inner_error_;
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _inner_error_ = NULL;
+#line 1754 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp117_ = source;
+#line 1754 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp118_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp117_, TYPE_DATA_OBJECT, DataObject));
+#line 1754 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp119_ = _tmp118_;
+#line 1754 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_warning ("Dialogs.vala:1754: Unable to fetch preview for %s", _tmp119_);
+#line 1754 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp119_);
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_error_free0 (err);
+#line 14520 "Dialogs.c"
+ }
+ __finally412:
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (preview);
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (time_content);
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (clock);
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_clear_error (&_inner_error_);
+#line 1749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 14537 "Dialogs.c"
+ }
+#line 1757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp120_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 1757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp120_);
+#line 1757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ image_content = _tmp120_;
+#line 1758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp121_ = image_content;
+#line 1758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_valign (G_TYPE_CHECK_INSTANCE_CAST (_tmp121_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
+#line 1759 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp122_ = image_content;
+#line 1759 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_set_homogeneous (_tmp122_, TRUE);
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp124_ = preview;
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp124_ != NULL) {
+#line 14557 "Dialogs.c"
+ GdkPixbuf* _tmp125_ = NULL;
+ GtkImage* _tmp126_ = NULL;
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp125_ = preview;
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp126_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp125_);
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp126_);
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp123_);
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp123_ = _tmp126_;
+#line 14570 "Dialogs.c"
+ } else {
+ GtkImage* _tmp127_ = NULL;
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp127_ = (GtkImage*) gtk_image_new ();
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp127_);
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp123_);
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp123_ = _tmp127_;
+#line 14581 "Dialogs.c"
+ }
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp128_ = _g_object_ref0 (_tmp123_);
+#line 1760 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ image = _tmp128_;
+#line 1761 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp129_ = (GtkLabel*) gtk_label_new (NULL);
+#line 1761 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp129_);
+#line 1761 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->original_time_label);
+#line 1761 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->original_time_label = _tmp129_;
+#line 1762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp130_ = image_content;
+#line 1762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp131_ = image;
+#line 1762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp130_, G_TYPE_CHECK_INSTANCE_CAST (_tmp131_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1763 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp132_ = image_content;
+#line 1763 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp133_ = self->priv->original_time_label;
+#line 1763 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp132_, G_TYPE_CHECK_INSTANCE_CAST (_tmp133_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp134_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
+#line 1765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp134_);
+#line 1765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ hbox = _tmp134_;
+#line 1766 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp135_ = hbox;
+#line 1766 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp135_, gtk_container_get_type (), GtkContainer), (guint) 3);
+#line 1767 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp136_ = hbox;
+#line 1767 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp137_ = image_content;
+#line 1767 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp136_, G_TYPE_CHECK_INSTANCE_CAST (_tmp137_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp138_ = hbox;
+#line 1768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp139_ = time_content;
+#line 1768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp138_, G_TYPE_CHECK_INSTANCE_CAST (_tmp139_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp140_ = (GtkAlignment*) gtk_alignment_new (0.5f, 0.5f, (gfloat) 0, (gfloat) 0);
+#line 1770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp140_);
+#line 1770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ hbox_alignment = _tmp140_;
+#line 1771 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp141_ = hbox_alignment;
+#line 1771 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp142_ = hbox;
+#line 1771 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp141_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, gtk_widget_get_type (), GtkWidget));
+#line 1773 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp143_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 1773 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp144_ = hbox_alignment;
+#line 1773 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp143_, gtk_box_get_type (), GtkBox), G_TYPE_CHECK_INSTANCE_CAST (_tmp144_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 0);
+#line 1775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp145_ = (GtkLabel*) gtk_label_new ("");
+#line 1775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp145_);
+#line 1775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->notification);
+#line 1775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->notification = _tmp145_;
+#line 1776 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp146_ = self->priv->notification;
+#line 1776 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_line_wrap (_tmp146_, TRUE);
+#line 1777 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp147_ = self->priv->notification;
+#line 1777 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_justify (_tmp147_, GTK_JUSTIFY_CENTER);
+#line 1779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp148_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 1779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp149_ = self->priv->notification;
+#line 1779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp148_, gtk_box_get_type (), GtkBox), G_TYPE_CHECK_INSTANCE_CAST (_tmp149_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 1781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp150_ = source;
+#line 1781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp151_ = dateable_get_exposure_time (_tmp150_);
+#line 1781 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->original_time = _tmp151_;
+#line 1783 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp152_ = self->priv->original_time;
+#line 1783 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp152_ == ((time_t) 0)) {
+#line 14679 "Dialogs.c"
+ time_t _tmp153_ = 0;
+#line 1784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp153_ = time (NULL);
+#line 1784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->original_time = _tmp153_;
+#line 1785 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->no_original_time = TRUE;
+#line 14687 "Dialogs.c"
+ }
+#line 1788 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp154_ = self->priv->original_time;
+#line 1788 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_time_local (_tmp154_, &_tmp155_);
+#line 1788 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_set_time (self, &_tmp155_);
+#line 1789 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp156_ = config_facade_get_instance ();
+#line 1789 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp157_ = _tmp156_;
+#line 1789 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp158_ = configuration_facade_get_use_24_hour_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp157_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1789 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_set_original_time_label (self, _tmp158_);
+#line 1789 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp157_);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (hbox_alignment);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (hbox);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (image);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp123_);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (image_content);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (preview);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (time_content);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (clock);
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 14723 "Dialogs.c"
+}
+
+
+AdjustDateTimeDialog* adjust_date_time_dialog_new (Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video) {
+#line 1655 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return adjust_date_time_dialog_construct (TYPE_ADJUST_DATE_TIME_DIALOG, source, photo_count, display_options, contains_video, only_video);
+#line 14730 "Dialogs.c"
+}
+
+
+static void adjust_date_time_dialog_set_time (AdjustDateTimeDialog* self, struct tm* time) {
+ GtkCalendar* _tmp0_ = NULL;
+ struct tm _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ struct tm _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GtkCalendar* _tmp5_ = NULL;
+ struct tm _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ ConfigFacade* _tmp8_ = NULL;
+ ConfigFacade* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ GtkSpinButton* _tmp26_ = NULL;
+ struct tm _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GtkSpinButton* _tmp29_ = NULL;
+ struct tm _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ GtkComboBoxText* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+#line 1792 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_ADJUST_DATE_TIME_DIALOG (self));
+#line 1792 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (time != NULL);
+#line 1793 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->calendar;
+#line 1793 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = *time;
+#line 1793 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_.tm_mon;
+#line 1793 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = *time;
+#line 1793 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_.tm_year;
+#line 1793 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_calendar_select_month (_tmp0_, (guint) _tmp2_, (guint) (_tmp4_ + ADJUST_DATE_TIME_DIALOG_YEAR_OFFSET));
+#line 1794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->calendar;
+#line 1794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = *time;
+#line 1794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_.tm_mday;
+#line 1794 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_calendar_select_day (_tmp5_, (guint) _tmp7_);
+#line 1796 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = config_facade_get_instance ();
+#line 1796 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 1796 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = configuration_facade_get_use_24_hour_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1796 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 1796 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1796 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp11_) {
+#line 14791 "Dialogs.c"
+ GtkComboBoxText* _tmp12_ = NULL;
+ GtkSpinButton* _tmp13_ = NULL;
+ struct tm _tmp14_ = {0};
+ gint _tmp15_ = 0;
+#line 1797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->system;
+#line 1797 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_combo_box_get_type (), GtkComboBox), (gint) ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_24HR);
+#line 1798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->hour;
+#line 1798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = *time;
+#line 1798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = _tmp14_.tm_hour;
+#line 1798 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_value (_tmp13_, (gdouble) _tmp15_);
+#line 14808 "Dialogs.c"
+ } else {
+ gint AMPM_hour = 0;
+ struct tm _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GtkSpinButton* _tmp21_ = NULL;
+ AdjustDateTimeDialogTimeSystem _tmp22_ = 0;
+ struct tm _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ GtkComboBoxText* _tmp25_ = NULL;
+#line 1800 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = *time;
+#line 1800 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = _tmp16_.tm_hour;
+#line 1800 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ AMPM_hour = _tmp17_ % 12;
+#line 1801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = AMPM_hour;
+#line 1801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp19_ == 0) {
+#line 1801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = 12;
+#line 14832 "Dialogs.c"
+ } else {
+ gint _tmp20_ = 0;
+#line 1801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = AMPM_hour;
+#line 1801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp20_;
+#line 14839 "Dialogs.c"
+ }
+#line 1801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->priv->hour;
+#line 1801 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_value (_tmp21_, (gdouble) _tmp18_);
+#line 1802 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = *time;
+#line 1802 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = _tmp23_.tm_hour;
+#line 1802 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp24_ >= 12) {
+#line 1802 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_PM;
+#line 14853 "Dialogs.c"
+ } else {
+#line 1802 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_AM;
+#line 14857 "Dialogs.c"
+ }
+#line 1802 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = self->priv->system;
+#line 1802 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp22_);
+#line 14863 "Dialogs.c"
+ }
+#line 1805 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = self->priv->minute;
+#line 1805 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = *time;
+#line 1805 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = _tmp27_.tm_min;
+#line 1805 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_value (_tmp26_, (gdouble) _tmp28_);
+#line 1806 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = self->priv->second;
+#line 1806 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = *time;
+#line 1806 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = _tmp30_.tm_sec;
+#line 1806 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_value (_tmp29_, (gdouble) _tmp31_);
+#line 1808 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = self->priv->system;
+#line 1808 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_combo_box_get_type (), GtkComboBox));
+#line 1808 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->previous_time_system = (AdjustDateTimeDialogTimeSystem) _tmp33_;
+#line 14887 "Dialogs.c"
+}
+
+
+static gchar* g_time_format (struct tm *self, const gchar* format) {
+ gchar* result = NULL;
+ gchar* buffer = NULL;
+ gchar* _tmp0_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+#line 2709 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (format != NULL, NULL);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 64);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = _tmp0_;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer_length1 = 64;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _buffer_size_ = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = buffer;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = format;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ strftime (_tmp1_, _tmp1__length1, _tmp2_, &(*self));
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = buffer;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = buffer_length1;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_strdup ((const gchar*) _tmp3_);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = (g_free (buffer), NULL);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 14933 "Dialogs.c"
+}
+
+
+static void adjust_date_time_dialog_set_original_time_label (AdjustDateTimeDialog* self, gboolean use_24_hr_format) {
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GtkLabel* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+ struct tm _tmp8_ = {0};
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 1811 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_ADJUST_DATE_TIME_DIALOG (self));
+#line 1812 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->no_original_time;
+#line 1812 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 1813 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 14957 "Dialogs.c"
+ }
+#line 1816 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = use_24_hr_format;
+#line 1816 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_) {
+#line 14963 "Dialogs.c"
+ const gchar* _tmp3_ = NULL;
+#line 1816 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _ ("%m/%d/%Y, %H:%M:%S");
+#line 1816 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp3_;
+#line 14969 "Dialogs.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 1817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _ ("%m/%d/%Y, %I:%M:%S %p");
+#line 1817 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp4_;
+#line 14976 "Dialogs.c"
+ }
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->original_time_label;
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _ ("Original: ");
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->original_time;
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_time_local (_tmp7_, &_tmp8_);
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_time_format (&_tmp8_, _tmp1_);
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = g_strconcat (_tmp6_, _tmp10_, NULL);
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp11_;
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_text (_tmp5_, _tmp12_);
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp12_);
+#line 1815 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp10_);
+#line 15000 "Dialogs.c"
+}
+
+
+static time_t adjust_date_time_dialog_get_time (AdjustDateTimeDialog* self) {
+ time_t result = 0;
+ struct tm time = {0};
+ GtkSpinButton* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ GtkSpinButton* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ gint hour = 0;
+ GtkSpinButton* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gint _tmp8_ = 0;
+ gint _tmp12_ = 0;
+ GtkComboBoxText* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ guint year = 0U;
+ guint month = 0U;
+ guint day = 0U;
+ GtkCalendar* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+ guint _tmp18_ = 0U;
+ guint _tmp19_ = 0U;
+ time_t _tmp20_ = 0;
+#line 1820 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_ADJUST_DATE_TIME_DIALOG (self), 0);
+#line 1821 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ memset (&time, 0, sizeof (struct tm));
+#line 1823 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->second;
+#line 1823 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_spin_button_get_value (_tmp0_);
+#line 1823 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_sec = (gint) _tmp1_;
+#line 1824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->minute;
+#line 1824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_spin_button_get_value (_tmp2_);
+#line 1824 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_min = (gint) _tmp3_;
+#line 1827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = self->priv->hour;
+#line 1827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = gtk_spin_button_get_value (_tmp4_);
+#line 1827 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ hour = (gint) _tmp5_;
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = hour;
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp8_ == 12) {
+#line 15055 "Dialogs.c"
+ GtkComboBoxText* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->system;
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_combo_box_get_type (), GtkComboBox));
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp10_ != ((gint) ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_24HR);
+#line 15064 "Dialogs.c"
+ } else {
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = FALSE;
+#line 15068 "Dialogs.c"
+ }
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp7_) {
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = 0;
+#line 15074 "Dialogs.c"
+ } else {
+ gint _tmp11_ = 0;
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = hour;
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp11_;
+#line 15081 "Dialogs.c"
+ }
+#line 1828 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_hour = _tmp6_;
+#line 1829 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->system;
+#line 1829 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_combo_box_get_type (), GtkComboBox));
+#line 1829 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp14_ == ((gint) ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_PM)) {
+#line 1829 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = 12;
+#line 15093 "Dialogs.c"
+ } else {
+#line 1829 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = 0;
+#line 15097 "Dialogs.c"
+ }
+#line 1829 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = time.tm_hour;
+#line 1829 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_hour = _tmp15_ + _tmp12_;
+#line 1832 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->calendar;
+#line 1832 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_calendar_get_date (_tmp16_, &_tmp17_, &_tmp18_, &_tmp19_);
+#line 1832 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ year = _tmp17_;
+#line 1832 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ month = _tmp18_;
+#line 1832 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ day = _tmp19_;
+#line 1833 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_year = ((gint) year) - ADJUST_DATE_TIME_DIALOG_YEAR_OFFSET;
+#line 1834 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_mon = (gint) month;
+#line 1835 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_mday = (gint) day;
+#line 1837 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time.tm_isdst = -1;
+#line 1839 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = mktime (&time);
+#line 1839 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp20_;
+#line 1839 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 15127 "Dialogs.c"
+}
+
+
+gboolean adjust_date_time_dialog_execute (AdjustDateTimeDialog* self, gint64* time_shift, gboolean* keep_relativity, gboolean* modify_originals) {
+ gint64 _vala_time_shift = 0LL;
+ gboolean _vala_keep_relativity = FALSE;
+ gboolean _vala_modify_originals = FALSE;
+ gboolean result = FALSE;
+ gboolean response = FALSE;
+ gint _tmp0_ = 0;
+#line 1842 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_ADJUST_DATE_TIME_DIALOG (self), FALSE);
+#line 1844 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1846 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ response = FALSE;
+#line 1848 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 1848 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == ((gint) GTK_RESPONSE_OK)) {
+#line 15148 "Dialogs.c"
+ gboolean _tmp1_ = FALSE;
+ GtkRadioButton* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GtkRadioButton* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ GtkCheckButton* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ GtkCheckButton* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 1849 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->no_original_time;
+#line 1849 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_) {
+#line 15164 "Dialogs.c"
+ time_t _tmp2_ = 0;
+#line 1850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = adjust_date_time_dialog_get_time (self);
+#line 1850 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_time_shift = (gint64) _tmp2_;
+#line 15170 "Dialogs.c"
+ } else {
+ time_t _tmp3_ = 0;
+ time_t _tmp4_ = 0;
+#line 1852 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = adjust_date_time_dialog_get_time (self);
+#line 1852 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = self->priv->original_time;
+#line 1852 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_time_shift = (gint64) (_tmp3_ - _tmp4_);
+#line 15180 "Dialogs.c"
+ }
+#line 1854 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->relativity_radio_button;
+#line 1854 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 1854 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_keep_relativity = _tmp6_;
+#line 1856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->relativity_radio_button;
+#line 1856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = gtk_widget_get_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 1856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 1856 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp9_) {
+#line 15196 "Dialogs.c"
+ ConfigFacade* _tmp10_ = NULL;
+ ConfigFacade* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 1857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = config_facade_get_instance ();
+#line 1857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 1857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _vala_keep_relativity;
+#line 1857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_keep_relativity (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp12_);
+#line 1857 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp11_);
+#line 15210 "Dialogs.c"
+ }
+#line 1859 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->modify_originals_check_button;
+#line 1859 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 1859 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_modify_originals = _tmp14_;
+#line 1861 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = self->priv->modify_originals_check_button;
+#line 1861 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = gtk_widget_get_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget));
+#line 1861 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = _tmp16_;
+#line 1861 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp17_) {
+#line 15226 "Dialogs.c"
+ ConfigFacade* _tmp18_ = NULL;
+ ConfigFacade* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 1862 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = config_facade_get_instance ();
+#line 1862 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp18_;
+#line 1862 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = _vala_modify_originals;
+#line 1862 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_modify_originals (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp20_);
+#line 1862 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp19_);
+#line 15240 "Dialogs.c"
+ }
+#line 1864 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ response = TRUE;
+#line 15244 "Dialogs.c"
+ } else {
+#line 1866 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_time_shift = (gint64) 0;
+#line 1867 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_keep_relativity = TRUE;
+#line 1868 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_modify_originals = FALSE;
+#line 15252 "Dialogs.c"
+ }
+#line 1871 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = response;
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (time_shift) {
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *time_shift = _vala_time_shift;
+#line 15262 "Dialogs.c"
+ }
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (keep_relativity) {
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *keep_relativity = _vala_keep_relativity;
+#line 15268 "Dialogs.c"
+ }
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (modify_originals) {
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *modify_originals = _vala_modify_originals;
+#line 15274 "Dialogs.c"
+ }
+#line 1873 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 15278 "Dialogs.c"
+}
+
+
+static gboolean adjust_date_time_dialog_on_spin_button_output (AdjustDateTimeDialog* self, GtkSpinButton* button) {
+ gboolean result = FALSE;
+ GtkSpinButton* _tmp0_ = NULL;
+ GtkSpinButton* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 1876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_ADJUST_DATE_TIME_DIALOG (self), FALSE);
+#line 1876 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_SPIN_BUTTON (button), FALSE);
+#line 1877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = button;
+#line 1877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = button;
+#line 1877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_spin_button_get_value (_tmp1_);
+#line 1877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = g_strdup_printf ("%02d", (gint) _tmp2_);
+#line 1877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 1877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_entry_get_type (), GtkEntry), _tmp4_);
+#line 1877 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp4_);
+#line 1879 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_changed (self);
+#line 1881 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 1881 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 15313 "Dialogs.c"
+}
+
+
+static void adjust_date_time_dialog_on_time_changed (AdjustDateTimeDialog* self) {
+ gint64 time_shift = 0LL;
+ time_t _tmp0_ = 0;
+ time_t _tmp1_ = 0;
+ GtkComboBoxText* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gint64 _tmp6_ = 0LL;
+#line 1884 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_ADJUST_DATE_TIME_DIALOG (self));
+#line 1885 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = adjust_date_time_dialog_get_time (self);
+#line 1885 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->original_time;
+#line 1885 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time_shift = ((gint64) _tmp0_) - ((gint64) _tmp1_);
+#line 1887 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->system;
+#line 1887 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox));
+#line 1887 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->previous_time_system = (AdjustDateTimeDialogTimeSystem) _tmp3_;
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = time_shift;
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp6_ == ((gint64) 0)) {
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = TRUE;
+#line 15346 "Dialogs.c"
+ } else {
+ gboolean _tmp7_ = FALSE;
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->no_original_time;
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp7_;
+#line 15353 "Dialogs.c"
+ }
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_) {
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = TRUE;
+#line 15359 "Dialogs.c"
+ } else {
+ gboolean _tmp8_ = FALSE;
+ GtkRadioButton* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->batch_radio_button;
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp10_) {
+#line 15370 "Dialogs.c"
+ GtkRadioButton* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 1890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->batch_radio_button;
+#line 1890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = gtk_widget_get_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
+#line 1890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_;
+#line 1890 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp13_;
+#line 15382 "Dialogs.c"
+ } else {
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = FALSE;
+#line 15386 "Dialogs.c"
+ }
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp8_;
+#line 15390 "Dialogs.c"
+ }
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp4_) {
+#line 15394 "Dialogs.c"
+ GtkLabel* _tmp14_ = NULL;
+#line 1891 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = self->priv->notification;
+#line 1891 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget));
+#line 15400 "Dialogs.c"
+ } else {
+ gboolean forward = FALSE;
+ gint64 _tmp15_ = 0LL;
+ gint days = 0;
+ gint hours = 0;
+ gint minutes = 0;
+ gint seconds = 0;
+ gint64 _tmp16_ = 0LL;
+ gint64 _tmp17_ = 0LL;
+ gint64 _tmp18_ = 0LL;
+ gint64 _tmp19_ = 0LL;
+ gint64 _tmp20_ = 0LL;
+ gint64 _tmp21_ = 0LL;
+ gint64 _tmp22_ = 0LL;
+ gint64 _tmp23_ = 0LL;
+ const gchar* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ gchar* shift_status = NULL;
+ gchar* _tmp28_ = NULL;
+ GtkLabel* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ const gchar* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ const gchar* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ const gchar* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ const gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ GtkLabel* _tmp45_ = NULL;
+#line 1893 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = time_shift;
+#line 1893 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ forward = _tmp15_ > ((gint64) 0);
+#line 1896 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = time_shift;
+#line 1896 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = llabs (_tmp16_);
+#line 1896 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time_shift = _tmp17_;
+#line 1898 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = time_shift;
+#line 1898 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ days = (gint) (_tmp18_ / ADJUST_DATE_TIME_DIALOG_SECONDS_IN_DAY);
+#line 1899 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = time_shift;
+#line 1899 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time_shift = _tmp19_ % ADJUST_DATE_TIME_DIALOG_SECONDS_IN_DAY;
+#line 1900 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = time_shift;
+#line 1900 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ hours = (gint) (_tmp20_ / ADJUST_DATE_TIME_DIALOG_SECONDS_IN_HOUR);
+#line 1901 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = time_shift;
+#line 1901 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time_shift = _tmp21_ % ADJUST_DATE_TIME_DIALOG_SECONDS_IN_HOUR;
+#line 1902 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = time_shift;
+#line 1902 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ minutes = (gint) (_tmp22_ / ADJUST_DATE_TIME_DIALOG_SECONDS_IN_MINUTE);
+#line 1903 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = time_shift;
+#line 1903 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ seconds = (gint) (_tmp23_ % ADJUST_DATE_TIME_DIALOG_SECONDS_IN_MINUTE);
+#line 1905 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = forward;
+#line 1905 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp25_) {
+#line 15475 "Dialogs.c"
+ const gchar* _tmp26_ = NULL;
+#line 1906 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = _ ("Exposure time will be shifted forward by\n" \
+"%d %s, %d %s, %d %s, and %d %s.");
+#line 1906 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = _tmp26_;
+#line 15481 "Dialogs.c"
+ } else {
+ const gchar* _tmp27_ = NULL;
+#line 1907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = _ ("Exposure time will be shifted backward by\n" \
+"%d %s, %d %s, %d %s, and %d %s.");
+#line 1907 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = _tmp27_;
+#line 15488 "Dialogs.c"
+ }
+#line 1905 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = g_strdup (_tmp24_);
+#line 1905 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ shift_status = _tmp28_;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = self->priv->notification;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = shift_status;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = days;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = days;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = ngettext ("day", "days", (gulong) _tmp32_);
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = hours;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = hours;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = ngettext ("hour", "hours", (gulong) _tmp35_);
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = minutes;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = minutes;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = ngettext ("minute", "minutes", (gulong) _tmp38_);
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = seconds;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = seconds;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = ngettext ("second", "seconds", (gulong) _tmp41_);
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = g_strdup_printf (_tmp30_, _tmp31_, _tmp33_, _tmp34_, _tmp36_, _tmp37_, _tmp39_, _tmp40_, _tmp42_);
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = _tmp43_;
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_text (_tmp29_, _tmp44_);
+#line 1909 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp44_);
+#line 1914 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = self->priv->notification;
+#line 1914 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, gtk_widget_get_type (), GtkWidget));
+#line 1889 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (shift_status);
+#line 15536 "Dialogs.c"
+ }
+}
+
+
+static void adjust_date_time_dialog_on_time_system_changed (AdjustDateTimeDialog* self) {
+ AdjustDateTimeDialogTimeSystem _tmp0_ = 0;
+ GtkComboBoxText* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ GtkComboBoxText* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ GtkComboBoxText* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 1918 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_ADJUST_DATE_TIME_DIALOG (self));
+#line 1919 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->previous_time_system;
+#line 1919 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->system;
+#line 1919 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_combo_box_get_type (), GtkComboBox));
+#line 1919 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == _tmp2_) {
+#line 1920 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 15563 "Dialogs.c"
+ }
+#line 1922 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 1922 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 1922 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->system;
+#line 1922 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_combo_box_get_type (), GtkComboBox));
+#line 1922 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_use_24_hour_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp6_ == ((gint) ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_24HR));
+#line 1922 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->system;
+#line 1924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_combo_box_get_type (), GtkComboBox));
+#line 1924 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp8_ == ((gint) ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_24HR)) {
+#line 15583 "Dialogs.c"
+ gint _tmp9_ = 0;
+ GtkSpinButton* _tmp10_ = NULL;
+ gdouble _tmp11_ = 0.0;
+ gint time = 0;
+ gint _tmp14_ = 0;
+ AdjustDateTimeDialogTimeSystem _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GtkSpinButton* _tmp17_ = NULL;
+ GtkSpinButton* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->hour;
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = gtk_spin_button_get_value (_tmp10_);
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp11_ == 12.0) {
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = 0;
+#line 15602 "Dialogs.c"
+ } else {
+ GtkSpinButton* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->hour;
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = gtk_spin_button_get_value (_tmp12_);
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = (gint) _tmp13_;
+#line 15612 "Dialogs.c"
+ }
+#line 1925 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time = _tmp9_;
+#line 1926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = self->priv->previous_time_system;
+#line 1926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp15_ == ADJUST_DATE_TIME_DIALOG_TIME_SYSTEM_PM) {
+#line 1926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = 12;
+#line 15622 "Dialogs.c"
+ } else {
+#line 1926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = 0;
+#line 15626 "Dialogs.c"
+ }
+#line 1926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = time;
+#line 1926 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ time = _tmp16_ + _tmp14_;
+#line 1928 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->hour;
+#line 1928 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_range (_tmp17_, (gdouble) 0, (gdouble) 23);
+#line 1929 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_set_original_time_label (self, TRUE);
+#line 1931 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->hour;
+#line 1931 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = time;
+#line 1931 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_value (_tmp18_, (gdouble) _tmp19_);
+#line 15644 "Dialogs.c"
+ } else {
+ gint AMPM_hour = 0;
+ GtkSpinButton* _tmp20_ = NULL;
+ gdouble _tmp21_ = 0.0;
+ GtkSpinButton* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ GtkSpinButton* _tmp26_ = NULL;
+#line 1933 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = self->priv->hour;
+#line 1933 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = gtk_spin_button_get_value (_tmp20_);
+#line 1933 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ AMPM_hour = ((gint) _tmp21_) % 12;
+#line 1935 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->priv->hour;
+#line 1935 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_range (_tmp22_, (gdouble) 1, (gdouble) 12);
+#line 1936 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_set_original_time_label (self, FALSE);
+#line 1938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = AMPM_hour;
+#line 1938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp24_ == 0) {
+#line 1938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = 12;
+#line 15671 "Dialogs.c"
+ } else {
+ gint _tmp25_ = 0;
+#line 1938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = AMPM_hour;
+#line 1938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = _tmp25_;
+#line 15678 "Dialogs.c"
+ }
+#line 1938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = self->priv->hour;
+#line 1938 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_spin_button_set_value (_tmp26_, (gdouble) _tmp23_);
+#line 15684 "Dialogs.c"
+ }
+#line 1941 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_on_time_changed (self);
+#line 15688 "Dialogs.c"
+}
+
+
+static void adjust_date_time_dialog_class_init (AdjustDateTimeDialogClass * klass) {
+#line 1626 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ adjust_date_time_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1626 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (AdjustDateTimeDialogPrivate));
+#line 1626 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (klass)->finalize = adjust_date_time_dialog_finalize;
+#line 15699 "Dialogs.c"
+}
+
+
+static void adjust_date_time_dialog_instance_init (AdjustDateTimeDialog * self) {
+#line 1626 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = ADJUST_DATE_TIME_DIALOG_GET_PRIVATE (self);
+#line 1631 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->no_original_time = FALSE;
+#line 15708 "Dialogs.c"
+}
+
+
+static void adjust_date_time_dialog_finalize (GObject* obj) {
+ AdjustDateTimeDialog * self;
+#line 1626 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialog);
+#line 1636 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->original_time_label);
+#line 1637 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->calendar);
+#line 1638 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->hour);
+#line 1639 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->minute);
+#line 1640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->second);
+#line 1641 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->system);
+#line 1642 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->relativity_radio_button);
+#line 1643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->batch_radio_button);
+#line 1644 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->modify_originals_check_button);
+#line 1645 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->notification);
+#line 1626 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (adjust_date_time_dialog_parent_class)->finalize (obj);
+#line 15738 "Dialogs.c"
+}
+
+
+GType adjust_date_time_dialog_get_type (void) {
+ static volatile gsize adjust_date_time_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&adjust_date_time_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AdjustDateTimeDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) adjust_date_time_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AdjustDateTimeDialog), 0, (GInstanceInitFunc) adjust_date_time_dialog_instance_init, NULL };
+ GType adjust_date_time_dialog_type_id;
+ adjust_date_time_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "AdjustDateTimeDialog", &g_define_type_info, 0);
+ g_once_init_leave (&adjust_date_time_dialog_type_id__volatile, adjust_date_time_dialog_type_id);
+ }
+ return adjust_date_time_dialog_type_id__volatile;
+}
+
+
+void multiple_object_error_dialog (GeeArrayList* objects, const gchar* message, const gchar* title) {
+ gchar* dialog_message = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gint remainder = 0;
+ GeeArrayList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ GtkMessageDialog* dialog = NULL;
+ AppWindow* _tmp31_ = NULL;
+ AppWindow* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ GtkMessageDialog* _tmp34_ = NULL;
+ GtkMessageDialog* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+#line 1946 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GEE_IS_ARRAY_LIST (objects));
+#line 1946 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (message != NULL);
+#line 1946 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (title != NULL);
+#line 1948 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = message;
+#line 1948 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_strconcat (_tmp0_, "\n", NULL);
+#line 1948 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_message = _tmp1_;
+#line 15782 "Dialogs.c"
+ {
+ gint i = 0;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ i = 0;
+#line 15787 "Dialogs.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = TRUE;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 15794 "Dialogs.c"
+ gboolean _tmp4_ = FALSE;
+ gint _tmp5_ = 0;
+ const gchar* _tmp10_ = NULL;
+ GeeArrayList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gpointer _tmp13_ = NULL;
+ DataObject* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp2_) {
+#line 15809 "Dialogs.c"
+ gint _tmp3_ = 0;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = i;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ i = _tmp3_ + 1;
+#line 15815 "Dialogs.c"
+ }
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = FALSE;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = i;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_ < MAX_OBJECTS_DISPLAYED) {
+#line 15823 "Dialogs.c"
+ GeeArrayList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = objects;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = i;
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp8_ > _tmp9_;
+#line 15838 "Dialogs.c"
+ } else {
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = FALSE;
+#line 15842 "Dialogs.c"
+ }
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp4_) {
+#line 1951 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 15848 "Dialogs.c"
+ }
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = dialog_message;
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = objects;
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = i;
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp12_);
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = (DataObject*) _tmp13_;
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = data_object_to_string (_tmp14_);
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_;
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = g_strconcat ("\n", _tmp16_, NULL);
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp17_;
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = g_strconcat (_tmp10_, _tmp18_, NULL);
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (dialog_message);
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_message = _tmp19_;
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp18_);
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp16_);
+#line 1952 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp14_);
+#line 15880 "Dialogs.c"
+ }
+ }
+ }
+#line 1954 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = objects;
+#line 1954 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1954 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _tmp21_;
+#line 1954 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ remainder = _tmp22_ - MAX_OBJECTS_DISPLAYED;
+#line 1955 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = remainder;
+#line 1955 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp23_ > 0) {
+#line 15896 "Dialogs.c"
+ const gchar* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ const gchar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = dialog_message;
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = remainder;
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = ngettext ("\n\nAnd %d other.", "\n\nAnd %d others.", (gulong) _tmp25_);
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = remainder;
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = g_strdup_printf (_tmp26_, _tmp27_);
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = _tmp28_;
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = g_strconcat (_tmp24_, _tmp29_, NULL);
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (dialog_message);
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog_message = _tmp30_;
+#line 1956 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp29_);
+#line 15924 "Dialogs.c"
+ }
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = app_window_get_instance ();
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = _tmp31_;
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = dialog_message;
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = (GtkMessageDialog*) gtk_message_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", _tmp33_);
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp34_);
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = _tmp34_;
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp32_);
+#line 1960 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp35_;
+#line 1963 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = title;
+#line 1963 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_window_get_type (), GtkWindow), _tmp36_);
+#line 1965 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 1966 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 1946 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 1946 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (dialog_message);
+#line 15954 "Dialogs.c"
+}
+
+
+TagsDialog* tags_dialog_construct (GType object_type, const gchar* title, const gchar* label, const gchar* initial_text) {
+ TagsDialog* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ HierarchicalTagIndex* _tmp3_ = NULL;
+ HierarchicalTagIndex* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+#line 1970 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (title != NULL, NULL);
+#line 1970 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (label != NULL, NULL);
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = title;
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = label;
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = initial_text;
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = hierarchical_tag_index_get_global_index ();
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = hierarchical_tag_index_get_all_tags (_tmp4_);
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp5_;
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (TagsDialog*) text_entry_dialog_mediator_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp6_, ",");
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1971 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _hierarchical_tag_index_unref0 (_tmp4_);
+#line 1970 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 15993 "Dialogs.c"
+}
+
+
+static void tags_dialog_class_init (TagsDialogClass * klass) {
+#line 1969 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tags_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 16000 "Dialogs.c"
+}
+
+
+static void tags_dialog_instance_init (TagsDialog * self) {
+}
+
+
+GType tags_dialog_get_type (void) {
+ static volatile gsize tags_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&tags_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagsDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tags_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagsDialog), 0, (GInstanceInitFunc) tags_dialog_instance_init, NULL };
+ GType tags_dialog_type_id;
+ tags_dialog_type_id = g_type_register_static (TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, "TagsDialog", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&tags_dialog_type_id__volatile, tags_dialog_type_id);
+ }
+ return tags_dialog_type_id__volatile;
+}
+
+
+AddTagsDialog* add_tags_dialog_construct (GType object_type) {
+ AddTagsDialog* self = NULL;
+ gchar* title = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = g_dpgettext2 (NULL, "Dialog Title", RESOURCES_ADD_TAGS_TITLE);
+#line 1978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 1978 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ title = _tmp1_;
+#line 1980 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _ ("Tags (separated by commas):");
+#line 1980 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (AddTagsDialog*) tags_dialog_construct (object_type, title, _tmp2_, NULL);
+#line 1977 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (title);
+#line 1977 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 16040 "Dialogs.c"
+}
+
+
+AddTagsDialog* add_tags_dialog_new (void) {
+#line 1977 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return add_tags_dialog_construct (TYPE_ADD_TAGS_DIALOG);
+#line 16047 "Dialogs.c"
+}
+
+
+gchar** add_tags_dialog_execute (AddTagsDialog* self, int* result_length1) {
+ gchar** result = NULL;
+ gchar* text = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ gchar** _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 1983 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_ADD_TAGS_DIALOG (self), NULL);
+#line 1984 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _text_entry_dialog_mediator_execute (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator));
+#line 1984 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp0_;
+#line 1985 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = text;
+#line 1985 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_ == NULL) {
+#line 16077 "Dialogs.c"
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 1986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = NULL;
+#line 1986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2__length1 = 0;
+#line 1986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (result_length1) {
+#line 1986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *result_length1 = _tmp2__length1;
+#line 16088 "Dialogs.c"
+ }
+#line 1986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp2_;
+#line 1986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1986 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16096 "Dialogs.c"
+ }
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = text;
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, ",", 0);
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp5_;
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6__length1 = _vala_array_length (_tmp4_);
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = tag_prep_tag_names (_tmp6_, _vala_array_length (_tmp4_), &_tmp7_);
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9__length1 = _tmp7_;
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10__length1 = _tmp9__length1;
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (result_length1) {
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *result_length1 = _tmp10__length1;
+#line 16122 "Dialogs.c"
+ }
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp10_;
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 1990 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16130 "Dialogs.c"
+}
+
+
+static gboolean add_tags_dialog_real_on_modify_validate (TextEntryDialogMediator* base, const gchar* text) {
+ AddTagsDialog * self;
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gchar** names = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ gchar** _tmp7_ = NULL;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint names_length1 = 0;
+ gint _names_size_ = 0;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+#line 1993 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_ADD_TAGS_DIALOG, AddTagsDialog);
+#line 1993 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 1994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = text;
+#line 1994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = string_contains (_tmp0_, TAG_PATH_SEPARATOR_STRING);
+#line 1994 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_) {
+#line 1995 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 1995 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16167 "Dialogs.c"
+ }
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = text;
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_ = g_strsplit (_tmp2_, ",", 0);
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5__length1 = _vala_array_length (_tmp3_);
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = tag_prep_tag_names (_tmp5_, _vala_array_length (_tmp3_), &_tmp6_);
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8__length1 = _tmp6_;
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ names = _tmp8_;
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ names_length1 = _tmp8__length1;
+#line 1999 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _names_size_ = names_length1;
+#line 2001 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = names;
+#line 2001 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9__length1 = names_length1;
+#line 2001 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp9__length1 > 0;
+#line 2001 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+#line 2001 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16201 "Dialogs.c"
+}
+
+
+static void add_tags_dialog_class_init (AddTagsDialogClass * klass) {
+#line 1976 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ add_tags_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 1976 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((TextEntryDialogMediatorClass *) klass)->on_modify_validate = add_tags_dialog_real_on_modify_validate;
+#line 16210 "Dialogs.c"
+}
+
+
+static void add_tags_dialog_instance_init (AddTagsDialog * self) {
+}
+
+
+GType add_tags_dialog_get_type (void) {
+ static volatile gsize add_tags_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&add_tags_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (AddTagsDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) add_tags_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AddTagsDialog), 0, (GInstanceInitFunc) add_tags_dialog_instance_init, NULL };
+ GType add_tags_dialog_type_id;
+ add_tags_dialog_type_id = g_type_register_static (TYPE_TAGS_DIALOG, "AddTagsDialog", &g_define_type_info, 0);
+ g_once_init_leave (&add_tags_dialog_type_id__volatile, add_tags_dialog_type_id);
+ }
+ return add_tags_dialog_type_id__volatile;
+}
+
+
+ModifyTagsDialog* modify_tags_dialog_construct (GType object_type, MediaSource* source) {
+ ModifyTagsDialog* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 2006 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 2007 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _ ("Tags (separated by commas):");
+#line 2007 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = source;
+#line 2007 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = modify_tags_dialog_get_initial_text (_tmp1_);
+#line 2007 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 2007 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (ModifyTagsDialog*) tags_dialog_construct (object_type, RESOURCES_MODIFY_TAGS_LABEL, _tmp0_, _tmp3_);
+#line 2007 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp3_);
+#line 2006 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 16252 "Dialogs.c"
+}
+
+
+ModifyTagsDialog* modify_tags_dialog_new (MediaSource* source) {
+#line 2006 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return modify_tags_dialog_construct (TYPE_MODIFY_TAGS_DIALOG, source);
+#line 16259 "Dialogs.c"
+}
+
+
+static gchar* modify_tags_dialog_get_initial_text (MediaSource* source) {
+ gchar* result = NULL;
+ GeeCollection* source_tags = NULL;
+ TagSourceCollection* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* terminal_tags = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeSortedSet* tag_basenames = NULL;
+ GeeTreeSet* _tmp6_ = NULL;
+ gchar* text = NULL;
+#line 2011 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 2012 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = tag_global;
+#line 2012 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = source;
+#line 2012 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = tag_source_collection_fetch_for_source (_tmp0_, _tmp1_);
+#line 2012 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ source_tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2013 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = source_tags;
+#line 2013 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp3_ == NULL) {
+#line 2014 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = NULL;
+#line 2014 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (source_tags);
+#line 2014 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16296 "Dialogs.c"
+ }
+#line 2016 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = source_tags;
+#line 2016 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = tag_get_terminal_tags (_tmp4_);
+#line 2016 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ terminal_tags = _tmp5_;
+#line 2018 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 2018 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag_basenames = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 16308 "Dialogs.c"
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = terminal_tags;
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tag_it = _tmp8_;
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 16321 "Dialogs.c"
+ GeeIterator* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ GeeSortedSet* _tmp13_ = NULL;
+ Tag* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tag_it;
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gee_iterator_next (_tmp9_);
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp10_) {
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 16341 "Dialogs.c"
+ }
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tag_it;
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = gee_iterator_get (_tmp11_);
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag = (Tag*) _tmp12_;
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = tag_basenames;
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = tag;
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = tag_get_path (_tmp14_);
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_;
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = hierarchical_tag_utilities_get_basename (_tmp16_);
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp17_;
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection), _tmp18_);
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp18_);
+#line 2020 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp16_);
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (tag);
+#line 16369 "Dialogs.c"
+ }
+#line 2019 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tag_it);
+#line 16373 "Dialogs.c"
+ }
+#line 2022 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = NULL;
+#line 16377 "Dialogs.c"
+ {
+ GeeIterator* _name_it = NULL;
+ GeeSortedSet* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = tag_basenames;
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _name_it = _tmp20_;
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 16390 "Dialogs.c"
+ GeeIterator* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gchar* name = NULL;
+ GeeIterator* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = _name_it;
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = gee_iterator_next (_tmp21_);
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp22_) {
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 16408 "Dialogs.c"
+ }
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = _name_it;
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = gee_iterator_get (_tmp23_);
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ name = (gchar*) _tmp24_;
+#line 2024 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = text;
+#line 2024 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp25_ == NULL) {
+#line 16420 "Dialogs.c"
+ gchar* _tmp26_ = NULL;
+#line 2025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = g_strdup ("");
+#line 2025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 2025 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp26_;
+#line 16428 "Dialogs.c"
+ } else {
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+#line 2027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = text;
+#line 2027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = g_strconcat (_tmp27_, ", ", NULL);
+#line 2027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 2027 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp28_;
+#line 16440 "Dialogs.c"
+ }
+#line 2029 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = text;
+#line 2029 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = name;
+#line 2029 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = g_strconcat (_tmp29_, _tmp30_, NULL);
+#line 2029 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 2029 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp31_;
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (name);
+#line 16454 "Dialogs.c"
+ }
+#line 2023 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_name_it);
+#line 16458 "Dialogs.c"
+ }
+#line 2032 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = text;
+#line 2032 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (tag_basenames);
+#line 2032 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (terminal_tags);
+#line 2032 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (source_tags);
+#line 2032 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16470 "Dialogs.c"
+}
+
+
+GeeArrayList* modify_tags_dialog_execute (ModifyTagsDialog* self) {
+ GeeArrayList* result = NULL;
+ gchar* text = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GeeArrayList* new_tags = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gchar** tag_names = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ gchar** _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gint tag_names_length1 = 0;
+ gint _tag_names_size_ = 0;
+ HierarchicalTagIndex* _tmp12_ = NULL;
+ HierarchicalTagIndex* _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gint _tmp15_ = 0;
+ gchar** _tmp16_ = NULL;
+ gchar** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+#line 2035 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_MODIFY_TAGS_DIALOG (self), NULL);
+#line 2036 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _text_entry_dialog_mediator_execute (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator));
+#line 2036 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text = _tmp0_;
+#line 2037 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = text;
+#line 2037 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_ == NULL) {
+#line 2038 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = NULL;
+#line 2038 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 2038 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16519 "Dialogs.c"
+ }
+#line 2040 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2040 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ new_tags = _tmp2_;
+#line 2043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = text;
+#line 2043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = is_string_empty (_tmp3_);
+#line 2043 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp4_) {
+#line 2044 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = new_tags;
+#line 2044 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 2044 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16537 "Dialogs.c"
+ }
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = text;
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_ = g_strsplit (_tmp5_, ",", 0);
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8__length1 = _vala_array_length (_tmp6_);
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = tag_prep_tag_names (_tmp8_, _vala_array_length (_tmp6_), &_tmp9_);
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11__length1 = _tmp9_;
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = (_vala_array_free (_tmp8_, _tmp8__length1, (GDestroyNotify) g_free), NULL);
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag_names = _tmp11_;
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag_names_length1 = _tmp11__length1;
+#line 2047 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tag_names_size_ = tag_names_length1;
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = hierarchical_tag_index_get_global_index ();
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_;
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = tag_names;
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14__length1 = tag_names_length1;
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = hierarchical_tag_index_get_paths_for_names_array (_tmp13_, _tmp14_, _tmp14__length1, &_tmp15_);
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag_names = (_vala_array_free (tag_names, tag_names_length1, (GDestroyNotify) g_free), NULL);
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag_names = _tmp16_;
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag_names_length1 = _tmp15_;
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tag_names_size_ = tag_names_length1;
+#line 2049 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _hierarchical_tag_index_unref0 (_tmp13_);
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = tag_names;
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17__length1 = tag_names_length1;
+#line 16585 "Dialogs.c"
+ {
+ gchar** name_collection = NULL;
+ gint name_collection_length1 = 0;
+ gint _name_collection_size_ = 0;
+ gint name_it = 0;
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ name_collection = _tmp17_;
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ name_collection_length1 = _tmp17__length1;
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ for (name_it = 0; name_it < _tmp17__length1; name_it = name_it + 1) {
+#line 16597 "Dialogs.c"
+ gchar* _tmp18_ = NULL;
+ gchar* name = NULL;
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = g_strdup (name_collection[name_it]);
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ name = _tmp18_;
+#line 16604 "Dialogs.c"
+ {
+ GeeArrayList* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ Tag* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+#line 2052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = new_tags;
+#line 2052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = name;
+#line 2052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = tag_for_path (_tmp20_);
+#line 2052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _tmp21_;
+#line 2052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp22_);
+#line 2052 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp22_);
+#line 2051 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (name);
+#line 16624 "Dialogs.c"
+ }
+ }
+ }
+#line 2054 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = new_tags;
+#line 2054 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ tag_names = (_vala_array_free (tag_names, tag_names_length1, (GDestroyNotify) g_free), NULL);
+#line 2054 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (text);
+#line 2054 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16636 "Dialogs.c"
+}
+
+
+static gboolean modify_tags_dialog_real_on_modify_validate (TextEntryDialogMediator* base, const gchar* text) {
+ ModifyTagsDialog * self;
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 2057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialog);
+#line 2057 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 2058 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = text;
+#line 2058 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = string_contains (_tmp0_, TAG_PATH_SEPARATOR_STRING);
+#line 2058 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = !_tmp1_;
+#line 2058 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 16657 "Dialogs.c"
+}
+
+
+static void modify_tags_dialog_class_init (ModifyTagsDialogClass * klass) {
+#line 2005 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ modify_tags_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 2005 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((TextEntryDialogMediatorClass *) klass)->on_modify_validate = modify_tags_dialog_real_on_modify_validate;
+#line 16666 "Dialogs.c"
+}
+
+
+static void modify_tags_dialog_instance_init (ModifyTagsDialog * self) {
+}
+
+
+GType modify_tags_dialog_get_type (void) {
+ static volatile gsize modify_tags_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&modify_tags_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ModifyTagsDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) modify_tags_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ModifyTagsDialog), 0, (GInstanceInitFunc) modify_tags_dialog_instance_init, NULL };
+ GType modify_tags_dialog_type_id;
+ modify_tags_dialog_type_id = g_type_register_static (TYPE_TAGS_DIALOG, "ModifyTagsDialog", &g_define_type_info, 0);
+ g_once_init_leave (&modify_tags_dialog_type_id__volatile, modify_tags_dialog_type_id);
+ }
+ return modify_tags_dialog_type_id__volatile;
+}
+
+
+gchar* welcome_service_entry_get_service_name (WelcomeServiceEntry* self) {
+#line 2064 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_WELCOME_SERVICE_ENTRY (self), NULL);
+#line 2064 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return WELCOME_SERVICE_ENTRY_GET_INTERFACE (self)->get_service_name (self);
+#line 16691 "Dialogs.c"
+}
+
+
+void welcome_service_entry_execute (WelcomeServiceEntry* self) {
+#line 2066 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_WELCOME_SERVICE_ENTRY (self));
+#line 2066 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ WELCOME_SERVICE_ENTRY_GET_INTERFACE (self)->execute (self);
+#line 16700 "Dialogs.c"
+}
+
+
+static void welcome_service_entry_base_init (WelcomeServiceEntryIface * iface) {
+#line 2063 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ static gboolean initialized = FALSE;
+#line 2063 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!initialized) {
+#line 2063 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ initialized = TRUE;
+#line 16711 "Dialogs.c"
+ }
+}
+
+
+GType welcome_service_entry_get_type (void) {
+ static volatile gsize welcome_service_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&welcome_service_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (WelcomeServiceEntryIface), (GBaseInitFunc) welcome_service_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType welcome_service_entry_type_id;
+ welcome_service_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "WelcomeServiceEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (welcome_service_entry_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&welcome_service_entry_type_id__volatile, welcome_service_entry_type_id);
+ }
+ return welcome_service_entry_type_id__volatile;
+}
+
+
+WelcomeDialog* welcome_dialog_construct (GType object_type, GtkWindow* owner) {
+ WelcomeDialog * self = NULL;
+ SpitDataImportsWelcomeImportMetaHost* _tmp0_ = NULL;
+ gboolean show_system_pictures_import = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GtkWidget* ok_button = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkWindow* _tmp5_ = NULL;
+ GtkLabel* primary_text = NULL;
+ GtkLabel* _tmp6_ = NULL;
+ GtkLabel* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GtkLabel* _tmp11_ = NULL;
+ GtkLabel* _tmp12_ = NULL;
+ GtkLabel* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GtkLabel* _tmp17_ = NULL;
+ GtkImage* image = NULL;
+ GtkImage* _tmp18_ = NULL;
+ GtkBox* header_text = NULL;
+ GtkBox* _tmp19_ = NULL;
+ GtkBox* _tmp20_ = NULL;
+ GtkLabel* _tmp21_ = NULL;
+ GtkBox* _tmp22_ = NULL;
+ GtkLabel* _tmp23_ = NULL;
+ GtkBox* header_content = NULL;
+ GtkBox* _tmp24_ = NULL;
+ GtkBox* _tmp25_ = NULL;
+ GtkImage* _tmp26_ = NULL;
+ GtkBox* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+ GtkLabel* instructions = NULL;
+ GtkLabel* _tmp29_ = NULL;
+ gchar* indent_prefix = NULL;
+ gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ GtkTextDirection _tmp32_ = 0;
+ gchar* arrow_glyph = NULL;
+ gchar* _tmp33_ = NULL;
+ GtkLabel* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ GtkLabel* _tmp56_ = NULL;
+ GtkBox* _tmp57_ = NULL;
+ GtkBox* _tmp58_ = NULL;
+ GtkBox* _tmp59_ = NULL;
+ GtkBox* _tmp60_ = NULL;
+ gboolean _tmp61_ = FALSE;
+ const gchar* _tmp73_ = NULL;
+ GtkLabel* _tmp74_ = NULL;
+ GtkLabel* _tmp75_ = NULL;
+ GtkLabel* _tmp76_ = NULL;
+ GtkBox* content = NULL;
+ GtkBox* _tmp77_ = NULL;
+ GtkBox* _tmp78_ = NULL;
+ GtkBox* _tmp79_ = NULL;
+ GtkBox* _tmp80_ = NULL;
+ GtkLabel* _tmp81_ = NULL;
+ const gchar* _tmp82_ = NULL;
+ GtkCheckButton* _tmp83_ = NULL;
+ GtkCheckButton* _tmp84_ = NULL;
+ GtkCheckButton* _tmp85_ = NULL;
+ GtkAlignment* alignment = NULL;
+ GtkAlignment* _tmp86_ = NULL;
+ GtkBox* _tmp87_ = NULL;
+ GtkWidget* _tmp88_ = NULL;
+ SpitDataImportsWelcomeImportMetaHost* _tmp89_ = NULL;
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (owner), NULL);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (WelcomeDialog*) g_object_new (object_type, NULL);
+#line 2084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = spit_data_imports_welcome_import_meta_host_new (self);
+#line 2084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->import_meta_host);
+#line 2084 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->import_meta_host = _tmp0_;
+#line 2085 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = welcome_dialog_is_system_pictures_import_possible ();
+#line 2085 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ show_system_pictures_import = _tmp1_;
+#line 2086 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_OK_LABEL, (gint) GTK_RESPONSE_OK);
+#line 2086 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 2086 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ok_button = _tmp3_;
+#line 2087 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _ ("Welcome!");
+#line 2087 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp4_);
+#line 2088 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 2089 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_type_hint (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), GDK_WINDOW_TYPE_HINT_DIALOG);
+#line 2090 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = owner;
+#line 2090 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp5_);
+#line 2092 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = (GtkLabel*) gtk_label_new ("");
+#line 2092 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp6_);
+#line 2092 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ primary_text = _tmp6_;
+#line 2093 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = primary_text;
+#line 2093 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _ ("Welcome to Shotwell!");
+#line 2093 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_strdup_printf ("<span size=\"large\" weight=\"bold\">%s</span>", _tmp8_);
+#line 2093 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 2093 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_markup (_tmp7_, _tmp10_);
+#line 2093 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp10_);
+#line 2095 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = primary_text;
+#line 2095 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_misc_get_type (), GtkMisc), (gfloat) 0, 0.5f);
+#line 2096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = (GtkLabel*) gtk_label_new ("");
+#line 2096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp12_);
+#line 2096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->secondary_text);
+#line 2096 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->secondary_text = _tmp12_;
+#line 2097 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->secondary_text;
+#line 2097 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _ ("To get started, import photos in any of these ways:");
+#line 2097 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = g_strdup_printf ("<span weight=\"normal\">%s</span>", _tmp14_);
+#line 2097 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_;
+#line 2097 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_markup (_tmp13_, _tmp16_);
+#line 2097 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp16_);
+#line 2099 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->secondary_text;
+#line 2099 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_misc_get_type (), GtkMisc), (gfloat) 0, 0.5f);
+#line 2100 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = (GtkImage*) gtk_image_new_from_icon_name ("shotwell", GTK_ICON_SIZE_DIALOG);
+#line 2100 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp18_);
+#line 2100 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ image = _tmp18_;
+#line 2102 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 2102 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp19_);
+#line 2102 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ header_text = _tmp19_;
+#line 2103 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = header_text;
+#line 2103 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = primary_text;
+#line 2103 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp20_, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 5);
+#line 2104 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = header_text;
+#line 2104 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->priv->secondary_text;
+#line 2104 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp22_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 2106 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
+#line 2106 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp24_);
+#line 2106 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ header_content = _tmp24_;
+#line 2107 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = header_content;
+#line 2107 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = image;
+#line 2107 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp25_, G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 2108 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = header_content;
+#line 2108 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = header_text;
+#line 2108 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (_tmp27_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 2110 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = (GtkLabel*) gtk_label_new ("");
+#line 2110 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp29_);
+#line 2110 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ instructions = _tmp29_;
+#line 2111 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = g_strdup (" ");
+#line 2111 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ indent_prefix = _tmp30_;
+#line 2113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = gtk_widget_get_direction (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 2113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp32_ == GTK_TEXT_DIR_RTL) {
+#line 2113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = "◂";
+#line 16957 "Dialogs.c"
+ } else {
+#line 2113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = "▸";
+#line 16961 "Dialogs.c"
+ }
+#line 2113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = g_strdup (_tmp31_);
+#line 2113 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ arrow_glyph = _tmp33_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = instructions;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = indent_prefix;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = g_strconcat (_tmp35_, "&#8226; %s\n", NULL);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = _tmp36_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = indent_prefix;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = g_strconcat (_tmp38_, "&#8226; %s\n", NULL);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = _tmp39_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = g_strconcat (_tmp37_, _tmp40_, NULL);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = _tmp41_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = indent_prefix;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = g_strconcat (_tmp43_, "&#8226; %s", NULL);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = _tmp44_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = g_strconcat (_tmp42_, _tmp45_, NULL);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = _tmp46_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = _ ("Choose <span weight=\"bold\">File %s Import From Folder</span>");
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = arrow_glyph;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = g_strdup_printf (_tmp48_, _tmp49_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = _tmp50_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = _ ("Drag and drop photos onto the Shotwell window");
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = _ ("Connect a camera to your computer and import");
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = g_strdup_printf (_tmp47_, _tmp51_, _tmp52_, _tmp53_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = _tmp54_;
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_markup (_tmp34_, _tmp55_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp55_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp51_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp47_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp45_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp42_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp40_);
+#line 2115 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp37_);
+#line 2120 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = instructions;
+#line 2120 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, gtk_misc_get_type (), GtkMisc), (gfloat) 0, 0.5f);
+#line 2122 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
+#line 2122 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp57_);
+#line 2122 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->import_action_checkbox_packer);
+#line 2122 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->import_action_checkbox_packer = _tmp57_;
+#line 2124 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
+#line 2124 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp58_);
+#line 2124 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->external_import_action_checkbox_packer);
+#line 2124 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_import_action_checkbox_packer = _tmp58_;
+#line 2125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = self->priv->import_action_checkbox_packer;
+#line 2125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp60_ = self->priv->external_import_action_checkbox_packer;
+#line 2125 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, gtk_widget_get_type (), GtkWidget));
+#line 2127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = show_system_pictures_import;
+#line 2127 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp61_) {
+#line 17057 "Dialogs.c"
+ const gchar* _tmp62_ = NULL;
+ GFile* _tmp63_ = NULL;
+ GFile* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ GtkCheckButton* _tmp69_ = NULL;
+ GtkBox* _tmp70_ = NULL;
+ GtkCheckButton* _tmp71_ = NULL;
+ GtkCheckButton* _tmp72_ = NULL;
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = _ ("_Import photos from your %s folder");
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = app_dirs_get_import_dir ();
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = _tmp63_;
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = get_display_pathname (_tmp64_);
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = _tmp65_;
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = g_strdup_printf (_tmp62_, _tmp66_);
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = _tmp67_;
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = (GtkCheckButton*) gtk_check_button_new_with_mnemonic (_tmp68_);
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp69_);
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->system_pictures_import_check);
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->system_pictures_import_check = _tmp69_;
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp68_);
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp66_);
+#line 2128 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp64_);
+#line 2131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = self->priv->import_action_checkbox_packer;
+#line 2131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = self->priv->system_pictures_import_check;
+#line 2131 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, gtk_widget_get_type (), GtkWidget));
+#line 2132 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp72_ = self->priv->system_pictures_import_check;
+#line 2132 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 17107 "Dialogs.c"
+ }
+#line 2135 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp73_ = _ ("You can also import photos in any of these ways:");
+#line 2135 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp74_ = (GtkLabel*) gtk_label_new (_tmp73_);
+#line 2135 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp74_);
+#line 2135 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->instruction_header);
+#line 2135 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->instruction_header = _tmp74_;
+#line 2137 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75_ = self->priv->instruction_header;
+#line 2137 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 2138 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp76_ = self->priv->instruction_header;
+#line 2138 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_margin_top (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, gtk_widget_get_type (), GtkWidget), 20);
+#line 2140 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp77_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 16);
+#line 2140 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp77_);
+#line 2140 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ content = _tmp77_;
+#line 2141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp78_ = header_content;
+#line 2141 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (content, G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 2142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp79_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 2);
+#line 2142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp79_);
+#line 2142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->import_content);
+#line 2142 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->import_content = _tmp79_;
+#line 2143 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp80_ = self->priv->import_content;
+#line 2143 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (content, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, gtk_widget_get_type (), GtkWidget));
+#line 2144 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp81_ = instructions;
+#line 2144 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (content, G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 2146 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp82_ = _ ("_Don't show this message again");
+#line 2146 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp83_ = (GtkCheckButton*) gtk_check_button_new_with_mnemonic (_tmp82_);
+#line 2146 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp83_);
+#line 2146 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->hide_button);
+#line 2146 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->hide_button = _tmp83_;
+#line 2147 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp84_ = self->priv->hide_button;
+#line 2147 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp84_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 2148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp85_ = self->priv->hide_button;
+#line 2148 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (content, G_TYPE_CHECK_INSTANCE_CAST (_tmp85_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 6);
+#line 2150 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp86_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 0, (gfloat) 0);
+#line 2150 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp86_);
+#line 2150 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ alignment = _tmp86_;
+#line 2151 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_alignment_set_padding (alignment, (guint) 12, (guint) 0, (guint) 12, (guint) 12);
+#line 2152 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (alignment, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (content, gtk_widget_get_type (), GtkWidget));
+#line 2154 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp87_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 2154 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_box_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, gtk_box_get_type (), GtkBox), G_TYPE_CHECK_INSTANCE_CAST (alignment, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 2156 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_has_resize_grip (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 2158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp88_ = ok_button;
+#line 2158 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_grab_focus (_tmp88_);
+#line 2160 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ welcome_dialog_install_import_content (self);
+#line 2162 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp89_ = self->priv->import_meta_host;
+#line 2162 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spit_data_imports_welcome_import_meta_host_start (_tmp89_);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (alignment);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (content);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (arrow_glyph);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (indent_prefix);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (instructions);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (header_content);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (header_text);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (image);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (primary_text);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (ok_button);
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 17219 "Dialogs.c"
+}
+
+
+WelcomeDialog* welcome_dialog_new (GtkWindow* owner) {
+#line 2083 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return welcome_dialog_construct (TYPE_WELCOME_DIALOG, owner);
+#line 17226 "Dialogs.c"
+}
+
+
+static void welcome_dialog_install_import_content (WelcomeDialog* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GtkCheckButton** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 2165 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_WELCOME_DIALOG (self));
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->external_import_checks;
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2__length1 = self->priv->external_import_checks_length1;
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2__length1 > 0) {
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = TRUE;
+#line 17245 "Dialogs.c"
+ } else {
+ GtkCheckButton* _tmp3_ = NULL;
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->system_pictures_import_check;
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 17252 "Dialogs.c"
+ }
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_) {
+#line 17256 "Dialogs.c"
+ gboolean _tmp4_ = FALSE;
+#line 2168 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = self->priv->import_content_already_installed;
+#line 2168 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp4_ == FALSE;
+#line 17262 "Dialogs.c"
+ } else {
+#line 2167 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = FALSE;
+#line 17266 "Dialogs.c"
+ }
+#line 2166 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 17270 "Dialogs.c"
+ GtkLabel* _tmp5_ = NULL;
+ GtkBox* _tmp6_ = NULL;
+ GtkBox* _tmp7_ = NULL;
+ GtkBox* _tmp8_ = NULL;
+ GtkLabel* _tmp9_ = NULL;
+#line 2170 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->secondary_text;
+#line 2170 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_markup (_tmp5_, "");
+#line 2171 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->import_content;
+#line 2171 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = self->priv->import_action_checkbox_packer;
+#line 2171 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 2172 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->import_content;
+#line 2172 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->instruction_header;
+#line 2172 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 2173 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->import_content_already_installed = TRUE;
+#line 17294 "Dialogs.c"
+ }
+}
+
+
+static void _vala_array_add275 (WelcomeServiceEntry*** array, int* length, int* size, WelcomeServiceEntry* value) {
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if ((*length) == (*size)) {
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *array = g_renew (WelcomeServiceEntry*, *array, (*size) + 1);
+#line 17306 "Dialogs.c"
+ }
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*array)[(*length)++] = value;
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*array)[*length] = NULL;
+#line 17312 "Dialogs.c"
+}
+
+
+static void _vala_array_add276 (GtkCheckButton*** array, int* length, int* size, GtkCheckButton* value) {
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if ((*length) == (*size)) {
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *array = g_renew (GtkCheckButton*, *array, (*size) + 1);
+#line 17323 "Dialogs.c"
+ }
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*array)[(*length)++] = value;
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*array)[*length] = NULL;
+#line 17329 "Dialogs.c"
+}
+
+
+void welcome_dialog_install_service_entry (WelcomeDialog* self, WelcomeServiceEntry* entry) {
+ WelcomeServiceEntry* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ WelcomeServiceEntry** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ WelcomeServiceEntry* _tmp6_ = NULL;
+ WelcomeServiceEntry* _tmp7_ = NULL;
+ GtkCheckButton* entry_check = NULL;
+ const gchar* _tmp8_ = NULL;
+ WelcomeServiceEntry* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GtkCheckButton* _tmp14_ = NULL;
+ GtkCheckButton* _tmp15_ = NULL;
+ GtkCheckButton** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ GtkCheckButton* _tmp17_ = NULL;
+ GtkBox* _tmp18_ = NULL;
+#line 2177 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_WELCOME_DIALOG (self));
+#line 2177 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_WELCOME_SERVICE_ENTRY (entry));
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = entry;
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = welcome_service_entry_get_service_name (_tmp0_);
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = g_strdup_printf ("WelcomeDialog: Installing service entry for %s", _tmp2_);
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_;
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_debug ("Dialogs.vala:2178: %s", _tmp4_);
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp4_);
+#line 2178 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp2_);
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->external_import_entries;
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5__length1 = self->priv->external_import_entries_length1;
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = entry;
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 2179 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_array_add275 (&self->priv->external_import_entries, &self->priv->external_import_entries_length1, &self->priv->_external_import_entries_size_, _tmp7_);
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _ ("Import photos from your %s library");
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = entry;
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = welcome_service_entry_get_service_name (_tmp9_);
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = g_strdup_printf (_tmp8_, _tmp11_);
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_;
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp13_);
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp14_);
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = _tmp14_;
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp13_);
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp11_);
+#line 2180 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ entry_check = _tmp15_;
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->external_import_checks;
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16__length1 = self->priv->external_import_checks_length1;
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = _g_object_ref0 (entry_check);
+#line 2182 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_array_add276 (&self->priv->external_import_checks, &self->priv->external_import_checks_length1, &self->priv->_external_import_checks_size_, _tmp17_);
+#line 2183 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (entry_check, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 2184 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->external_import_action_checkbox_packer;
+#line 2184 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (entry_check, gtk_widget_get_type (), GtkWidget));
+#line 2185 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ welcome_dialog_install_import_content (self);
+#line 2177 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (entry_check);
+#line 17428 "Dialogs.c"
+}
+
+
+/**
+ * Connected to the 'response' signal. This is part of a workaround
+ * for the fact that run()-ning this dialog can interfere with displaying
+ * images from a camera; please see #4997 for details.
+ */
+static void welcome_dialog_on_dismiss (WelcomeDialog* self, gint resp) {
+ gint _tmp0_ = 0;
+#line 2193 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_WELCOME_DIALOG (self));
+#line 2194 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = resp;
+#line 2194 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == ((gint) GTK_RESPONSE_OK)) {
+#line 2195 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->ok_clicked = TRUE;
+#line 17447 "Dialogs.c"
+ }
+#line 2197 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 2198 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_main_quit ();
+#line 17453 "Dialogs.c"
+}
+
+
+static void _welcome_dialog_on_dismiss_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 2204 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ welcome_dialog_on_dismiss ((WelcomeDialog*) self, response_id);
+#line 17460 "Dialogs.c"
+}
+
+
+static void _vala_array_add277 (WelcomeServiceEntry*** array, int* length, int* size, WelcomeServiceEntry* value) {
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if ((*length) == (*size)) {
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *array = g_renew (WelcomeServiceEntry*, *array, (*size) + 1);
+#line 17471 "Dialogs.c"
+ }
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*array)[(*length)++] = value;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (*array)[*length] = NULL;
+#line 17477 "Dialogs.c"
+}
+
+
+static WelcomeServiceEntry** _vala_array_dup30 (WelcomeServiceEntry** self, int length) {
+ WelcomeServiceEntry** result;
+ int i;
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = g_new0 (WelcomeServiceEntry*, length + 1);
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ for (i = 0; i < length; i++) {
+#line 17488 "Dialogs.c"
+ WelcomeServiceEntry* _tmp0_ = NULL;
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result[i] = _tmp0_;
+#line 17494 "Dialogs.c"
+ }
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17498 "Dialogs.c"
+}
+
+
+gboolean welcome_dialog_execute (WelcomeDialog* self, WelcomeServiceEntry*** selected_import_entries, int* selected_import_entries_length1, gboolean* do_system_pictures_import) {
+ WelcomeServiceEntry** _vala_selected_import_entries = NULL;
+ int _vala_selected_import_entries_length1 = 0;
+ gboolean _vala_do_system_pictures_import = FALSE;
+ gboolean result = FALSE;
+ guint _tmp0_ = 0U;
+ gboolean ok = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean show_dialog = FALSE;
+ gboolean _tmp2_ = FALSE;
+ WelcomeServiceEntry** _result_ = NULL;
+ WelcomeServiceEntry** _tmp5_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ WelcomeServiceEntry** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ WelcomeServiceEntry** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gboolean _tmp21_ = FALSE;
+ GtkCheckButton* _tmp22_ = NULL;
+#line 2201 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_WELCOME_DIALOG (self), FALSE);
+#line 2204 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), "response", (GCallback) _welcome_dialog_on_dismiss_gtk_dialog_response, self, 0);
+#line 2205 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 2206 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 2211 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_main ();
+#line 2215 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_parse_name ("response", gtk_dialog_get_type (), &_tmp0_, NULL, FALSE);
+#line 2215 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _welcome_dialog_on_dismiss_gtk_dialog_response, self);
+#line 2217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->ok_clicked;
+#line 2217 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ok = _tmp1_;
+#line 2218 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ show_dialog = TRUE;
+#line 2220 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = ok;
+#line 2220 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_) {
+#line 17546 "Dialogs.c"
+ GtkCheckButton* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2221 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->hide_button;
+#line 2221 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 2221 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ show_dialog = !_tmp4_;
+#line 17555 "Dialogs.c"
+ }
+#line 2224 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = g_new0 (WelcomeServiceEntry*, 0 + 1);
+#line 2224 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = _tmp5_;
+#line 2224 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result__length1 = 0;
+#line 2224 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ __result__size_ = _result__length1;
+#line 17565 "Dialogs.c"
+ {
+ gint i = 0;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ i = 0;
+#line 17570 "Dialogs.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = TRUE;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 17577 "Dialogs.c"
+ gint _tmp8_ = 0;
+ WelcomeServiceEntry** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkCheckButton** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ GtkCheckButton* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp6_) {
+#line 17588 "Dialogs.c"
+ gint _tmp7_ = 0;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = i;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ i = _tmp7_ + 1;
+#line 17594 "Dialogs.c"
+ }
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = FALSE;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = i;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->external_import_entries;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9__length1 = self->priv->external_import_entries_length1;
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp8_ < _tmp9__length1)) {
+#line 2225 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 17608 "Dialogs.c"
+ }
+#line 2226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->external_import_checks;
+#line 2226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10__length1 = self->priv->external_import_checks_length1;
+#line 2226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = i;
+#line 2226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp10_[_tmp11_];
+#line 2226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 2226 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp13_ == TRUE) {
+#line 17622 "Dialogs.c"
+ WelcomeServiceEntry** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ WelcomeServiceEntry** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gint _tmp16_ = 0;
+ WelcomeServiceEntry* _tmp17_ = NULL;
+ WelcomeServiceEntry* _tmp18_ = NULL;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _result_;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14__length1 = _result__length1;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = self->priv->external_import_entries;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15__length1 = self->priv->external_import_entries_length1;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = i;
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = _tmp15_[_tmp16_];
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 2227 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_array_add277 (&_result_, &_result__length1, &__result__size_, _tmp18_);
+#line 17646 "Dialogs.c"
+ }
+ }
+ }
+ }
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _result_;
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19__length1 = _result__length1;
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = (_tmp19_ != NULL) ? _vala_array_dup30 (_tmp19_, _tmp19__length1) : ((gpointer) _tmp19_);
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20__length1 = _tmp19__length1;
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_selected_import_entries = (_vala_array_free (_vala_selected_import_entries, _vala_selected_import_entries_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_selected_import_entries = _tmp20_;
+#line 2229 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_selected_import_entries_length1 = _tmp20__length1;
+#line 2231 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->priv->system_pictures_import_check;
+#line 2231 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp22_ != NULL) {
+#line 17669 "Dialogs.c"
+ GtkCheckButton* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 2231 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->priv->system_pictures_import_check;
+#line 2231 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 2231 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = _tmp24_;
+#line 17678 "Dialogs.c"
+ } else {
+#line 2231 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = FALSE;
+#line 17682 "Dialogs.c"
+ }
+#line 2230 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_do_system_pictures_import = _tmp21_;
+#line 2233 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = show_dialog;
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (_vala_array_free (_result_, _result__length1, (GDestroyNotify) g_object_unref), NULL);
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (selected_import_entries) {
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *selected_import_entries = _vala_selected_import_entries;
+#line 17696 "Dialogs.c"
+ } else {
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_selected_import_entries = (_vala_array_free (_vala_selected_import_entries, _vala_selected_import_entries_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 17700 "Dialogs.c"
+ }
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (selected_import_entries_length1) {
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *selected_import_entries_length1 = _vala_selected_import_entries_length1;
+#line 17706 "Dialogs.c"
+ }
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (do_system_pictures_import) {
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *do_system_pictures_import = _vala_do_system_pictures_import;
+#line 17712 "Dialogs.c"
+ }
+#line 2235 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17716 "Dialogs.c"
+}
+
+
+static gboolean welcome_dialog_is_system_pictures_import_possible (void) {
+ gboolean result = FALSE;
+ GFile* system_pictures = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GFile* _tmp3_ = NULL;
+ GFileType _tmp4_ = 0;
+ GError * _inner_error_ = NULL;
+#line 2239 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_dirs_get_import_dir ();
+#line 2239 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ system_pictures = _tmp0_;
+#line 2240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = system_pictures;
+#line 2240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = g_file_query_exists (_tmp1_, NULL);
+#line 2240 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp2_) {
+#line 2241 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 2241 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (system_pictures);
+#line 2241 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17745 "Dialogs.c"
+ }
+#line 2243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = system_pictures;
+#line 2243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_file_query_file_type (_tmp3_, G_FILE_QUERY_INFO_NONE, NULL);
+#line 2243 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp4_ == G_FILE_TYPE_DIRECTORY)) {
+#line 2244 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 2244 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (system_pictures);
+#line 2244 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17759 "Dialogs.c"
+ }
+ {
+ GFileEnumerator* syspics_child_enum = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileEnumerator* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileEnumerator* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ GFileInfo* _tmp10_ = NULL;
+ GFileInfo* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 2247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = system_pictures;
+#line 2247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = g_file_enumerate_children (_tmp5_, "standard::*", G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+#line 2247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ syspics_child_enum = _tmp6_;
+#line 2247 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17779 "Dialogs.c"
+ goto __catch413_g_error;
+ }
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = syspics_child_enum;
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_file_enumerator_next_file (_tmp8_, NULL, &_inner_error_);
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp9_;
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (syspics_child_enum);
+#line 17792 "Dialogs.c"
+ goto __catch413_g_error;
+ }
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp7_;
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = NULL;
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp11_ != NULL;
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp11_);
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp12_;
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (syspics_child_enum);
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (system_pictures);
+#line 2249 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17815 "Dialogs.c"
+ }
+ goto __finally413;
+ __catch413_g_error:
+ {
+ GError* e = NULL;
+#line 2246 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ e = _inner_error_;
+#line 2246 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _inner_error_ = NULL;
+#line 2251 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 2251 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_error_free0 (e);
+#line 2251 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (system_pictures);
+#line 2251 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17833 "Dialogs.c"
+ }
+ __finally413:
+#line 2246 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (system_pictures);
+#line 2246 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2246 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_clear_error (&_inner_error_);
+#line 2246 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return FALSE;
+#line 17844 "Dialogs.c"
+}
+
+
+static void welcome_dialog_class_init (WelcomeDialogClass * klass) {
+#line 2069 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ welcome_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 2069 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (WelcomeDialogPrivate));
+#line 2069 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (klass)->finalize = welcome_dialog_finalize;
+#line 17855 "Dialogs.c"
+}
+
+
+static void welcome_dialog_instance_init (WelcomeDialog * self) {
+ GtkCheckButton** _tmp0_ = NULL;
+ WelcomeServiceEntry** _tmp1_ = NULL;
+#line 2069 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = WELCOME_DIALOG_GET_PRIVATE (self);
+#line 2071 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->system_pictures_import_check = NULL;
+#line 2072 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = g_new0 (GtkCheckButton*, 0 + 1);
+#line 2072 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_import_checks = _tmp0_;
+#line 2072 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_import_checks_length1 = 0;
+#line 2072 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->_external_import_checks_size_ = self->priv->external_import_checks_length1;
+#line 2073 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_new0 (WelcomeServiceEntry*, 0 + 1);
+#line 2073 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_import_entries = _tmp1_;
+#line 2073 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_import_entries_length1 = 0;
+#line 2073 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->_external_import_entries_size_ = self->priv->external_import_entries_length1;
+#line 2080 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->import_content_already_installed = FALSE;
+#line 2081 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->ok_clicked = FALSE;
+#line 17886 "Dialogs.c"
+}
+
+
+static void welcome_dialog_finalize (GObject* obj) {
+ WelcomeDialog * self;
+#line 2069 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_WELCOME_DIALOG, WelcomeDialog);
+#line 2070 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->hide_button);
+#line 2071 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->system_pictures_import_check);
+#line 2072 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_import_checks = (_vala_array_free (self->priv->external_import_checks, self->priv->external_import_checks_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 2073 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_import_entries = (_vala_array_free (self->priv->external_import_entries, self->priv->external_import_entries_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 2074 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->secondary_text);
+#line 2075 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->instruction_header);
+#line 2076 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->import_content);
+#line 2077 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->import_action_checkbox_packer);
+#line 2078 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->external_import_action_checkbox_packer);
+#line 2079 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->import_meta_host);
+#line 2069 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_OBJECT_CLASS (welcome_dialog_parent_class)->finalize (obj);
+#line 17916 "Dialogs.c"
+}
+
+
+GType welcome_dialog_get_type (void) {
+ static volatile gsize welcome_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&welcome_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (WelcomeDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) welcome_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WelcomeDialog), 0, (GInstanceInitFunc) welcome_dialog_instance_init, NULL };
+ GType welcome_dialog_type_id;
+ welcome_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "WelcomeDialog", &g_define_type_info, 0);
+ g_once_init_leave (&welcome_dialog_type_id__volatile, welcome_dialog_type_id);
+ }
+ return welcome_dialog_type_id__volatile;
+}
+
+
+static gboolean _preferences_dialog_on_delete_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = preferences_dialog_on_delete ((PreferencesDialog*) self);
+#line 2300 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17937 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_close_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 2301 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_close ((PreferencesDialog*) self);
+#line 17944 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_value_changed_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) {
+#line 2307 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_value_changed ((PreferencesDialog*) self);
+#line 17951 "Dialogs.c"
+}
+
+
+static gboolean _preferences_dialog_on_bg_color_reset_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = preferences_dialog_on_bg_color_reset ((PreferencesDialog*) self, event);
+#line 2310 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17960 "Dialogs.c"
+}
+
+
+static gboolean _preferences_dialog_on_local_pattern_help_gtk_label_activate_link (GtkLabel* _sender, const gchar* uri, gpointer self) {
+ gboolean result;
+ result = preferences_dialog_on_local_pattern_help ((PreferencesDialog*) self, uri);
+#line 2333 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 17969 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_dir_pattern_combo_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 2349 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_dir_pattern_combo_changed ((PreferencesDialog*) self);
+#line 17976 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_dir_pattern_entry_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
+#line 2350 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_dir_pattern_entry_changed ((PreferencesDialog*) self);
+#line 17983 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_lowercase_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) {
+#line 2355 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_lowercase_toggled ((PreferencesDialog*) self);
+#line 17990 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_photo_editor_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 2362 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_photo_editor_changed ((PreferencesDialog*) self);
+#line 17997 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_raw_editor_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 2363 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_raw_editor_changed ((PreferencesDialog*) self);
+#line 18004 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_default_raw_developer_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 2375 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_default_raw_developer_changed ((PreferencesDialog*) self);
+#line 18011 "Dialogs.c"
+}
+
+
+static gboolean _preferences_dialog_map_event_gtk_widget_map_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = preferences_dialog_map_event ((PreferencesDialog*) self);
+#line 2377 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 18020 "Dialogs.c"
+}
+
+
+static PreferencesDialog* preferences_dialog_construct (GType object_type) {
+ PreferencesDialog* self = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ GtkBuilder* _tmp1_ = NULL;
+ GObject* _tmp2_ = NULL;
+ GtkDialog* _tmp3_ = NULL;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GtkDialog* _tmp8_ = NULL;
+ AppWindow* _tmp9_ = NULL;
+ AppWindow* _tmp10_ = NULL;
+ GdkWindow* _tmp11_ = NULL;
+ GtkDialog* _tmp12_ = NULL;
+ AppWindow* _tmp13_ = NULL;
+ AppWindow* _tmp14_ = NULL;
+ GtkDialog* _tmp15_ = NULL;
+ GtkDialog* _tmp16_ = NULL;
+ GtkDialog* _tmp17_ = NULL;
+ GtkBuilder* _tmp18_ = NULL;
+ GObject* _tmp19_ = NULL;
+ GtkAdjustment* _tmp20_ = NULL;
+ GtkAdjustment* _tmp21_ = NULL;
+ GtkAdjustment* _tmp22_ = NULL;
+ gdouble _tmp23_ = 0.0;
+ ConfigFacade* _tmp24_ = NULL;
+ ConfigFacade* _tmp25_ = NULL;
+ GdkRGBA _tmp26_ = {0};
+ gdouble _tmp27_ = 0.0;
+ GtkAdjustment* _tmp28_ = NULL;
+ GtkBuilder* _tmp29_ = NULL;
+ GObject* _tmp30_ = NULL;
+ GtkScale* _tmp31_ = NULL;
+ GtkScale* _tmp32_ = NULL;
+ GtkBuilder* _tmp33_ = NULL;
+ GObject* _tmp34_ = NULL;
+ GtkFileChooserButton* _tmp35_ = NULL;
+ GtkBuilder* _tmp36_ = NULL;
+ GObject* _tmp37_ = NULL;
+ GtkComboBox* _tmp38_ = NULL;
+ GtkBuilder* _tmp39_ = NULL;
+ GObject* _tmp40_ = NULL;
+ GtkComboBox* _tmp41_ = NULL;
+ GtkLabel* pattern_help = NULL;
+ GtkBuilder* _tmp42_ = NULL;
+ GObject* _tmp43_ = NULL;
+ GtkLabel* _tmp44_ = NULL;
+ gchar* help_path = NULL;
+ gchar* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ GtkComboBoxText* _tmp60_ = NULL;
+ GtkAlignment* dir_choser_align = NULL;
+ GtkBuilder* _tmp61_ = NULL;
+ GObject* _tmp62_ = NULL;
+ GtkAlignment* _tmp63_ = NULL;
+ GtkComboBoxText* _tmp64_ = NULL;
+ GtkBuilder* _tmp65_ = NULL;
+ GObject* _tmp66_ = NULL;
+ GtkEntry* _tmp67_ = NULL;
+ GtkBuilder* _tmp68_ = NULL;
+ GObject* _tmp69_ = NULL;
+ GtkLabel* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ const gchar* _tmp80_ = NULL;
+ const gchar* _tmp81_ = NULL;
+ GtkComboBoxText* _tmp82_ = NULL;
+ GtkEntry* _tmp83_ = NULL;
+ GtkBuilder* _tmp84_ = NULL;
+ GObject* _tmp85_ = NULL;
+ GtkComboBoxText* _tmp86_ = NULL;
+ GtkBuilder* _tmp87_ = NULL;
+ GObject* _tmp88_ = NULL;
+ GtkCheckButton* _tmp89_ = NULL;
+ GtkCheckButton* _tmp90_ = NULL;
+ GtkBin* plugin_manifest_container = NULL;
+ GtkBuilder* _tmp91_ = NULL;
+ GObject* _tmp92_ = NULL;
+ GtkBin* _tmp93_ = NULL;
+ PluginsManifestWidgetMediator* _tmp94_ = NULL;
+ GtkWidget* _tmp95_ = NULL;
+ GtkWidget* _tmp96_ = NULL;
+ GtkComboBox* _tmp97_ = NULL;
+ GtkComboBox* _tmp98_ = NULL;
+ GtkCheckButton* auto_import_button = NULL;
+ GtkBuilder* _tmp99_ = NULL;
+ GObject* _tmp100_ = NULL;
+ GtkCheckButton* _tmp101_ = NULL;
+ ConfigFacade* _tmp102_ = NULL;
+ ConfigFacade* _tmp103_ = NULL;
+ gboolean _tmp104_ = FALSE;
+ GtkCheckButton* commit_metadata_button = NULL;
+ GtkBuilder* _tmp105_ = NULL;
+ GObject* _tmp106_ = NULL;
+ GtkCheckButton* _tmp107_ = NULL;
+ ConfigFacade* _tmp108_ = NULL;
+ ConfigFacade* _tmp109_ = NULL;
+ gboolean _tmp110_ = FALSE;
+ GtkBuilder* _tmp111_ = NULL;
+ GObject* _tmp112_ = NULL;
+ GtkComboBoxText* _tmp113_ = NULL;
+ GtkComboBoxText* _tmp114_ = NULL;
+ gchar* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+ GtkComboBoxText* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ ConfigFacade* _tmp120_ = NULL;
+ ConfigFacade* _tmp121_ = NULL;
+ RawDeveloper _tmp122_ = 0;
+ GtkComboBoxText* _tmp123_ = NULL;
+ GtkDialog* _tmp124_ = NULL;
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (PreferencesDialog*) g_type_create_instance (object_type);
+#line 2289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 2289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 2289 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->builder = _tmp0_;
+#line 2291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->builder;
+#line 2291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_builder_get_object (_tmp1_, "preferences_dialog");
+#line 2291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_dialog_get_type ()) ? ((GtkDialog*) _tmp2_) : NULL);
+#line 2291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 2291 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->dialog = _tmp3_;
+#line 2293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gtk_settings_get_default ();
+#line 2293 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 2294 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = use_header;
+#line 2294 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp5_) {
+#line 18169 "Dialogs.c"
+ GtkWidget* null_titlebar = NULL;
+ GtkDialog* _tmp6_ = NULL;
+ GtkWidget* _tmp7_ = NULL;
+#line 2295 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ null_titlebar = NULL;
+#line 2296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->dialog;
+#line 2296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = null_titlebar;
+#line 2296 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_titlebar (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_window_get_type (), GtkWindow), _tmp7_);
+#line 2294 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (null_titlebar);
+#line 18183 "Dialogs.c"
+ }
+#line 2298 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->dialog;
+#line 2298 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = app_window_get_instance ();
+#line 2298 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 2298 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = gtk_widget_get_parent_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
+#line 2298 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_parent_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), _tmp11_);
+#line 2298 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp10_);
+#line 2299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->dialog;
+#line 2299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = app_window_get_instance ();
+#line 2299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 2299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_window_get_type (), GtkWindow));
+#line 2299 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2300 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = self->priv->dialog;
+#line 2300 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), "delete-event", (GCallback) _preferences_dialog_on_delete_gtk_widget_delete_event, self);
+#line 2301 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->dialog;
+#line 2301 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (_tmp16_, "response", (GCallback) _preferences_dialog_on_close_gtk_dialog_response, self);
+#line 2302 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->dialog;
+#line 2302 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_has_resize_grip (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_window_get_type (), GtkWindow), FALSE);
+#line 2304 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->builder;
+#line 2304 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = gtk_builder_get_object (_tmp18_, "bg_color_adjustment");
+#line 2304 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, gtk_adjustment_get_type ()) ? ((GtkAdjustment*) _tmp19_) : NULL);
+#line 2304 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->bg_color_adjustment);
+#line 2304 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->bg_color_adjustment = _tmp20_;
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->priv->bg_color_adjustment;
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->priv->bg_color_adjustment;
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = gtk_adjustment_get_upper (_tmp22_);
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = config_facade_get_instance ();
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = _tmp24_;
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ config_facade_get_bg_color (_tmp25_, &_tmp26_);
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = _tmp26_.red;
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_adjustment_set_value (_tmp21_, _tmp23_ - (_tmp27_ * 65535.0));
+#line 2305 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp25_);
+#line 2307 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = self->priv->bg_color_adjustment;
+#line 2307 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (_tmp28_, "value-changed", (GCallback) _preferences_dialog_on_value_changed_gtk_adjustment_value_changed, self);
+#line 2309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = self->priv->builder;
+#line 2309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = gtk_builder_get_object (_tmp29_, "bg_color_slider");
+#line 2309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, gtk_scale_get_type ()) ? ((GtkScale*) _tmp30_) : NULL);
+#line 2309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->bg_color_slider);
+#line 2309 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->bg_color_slider = _tmp31_;
+#line 2310 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = self->priv->bg_color_slider;
+#line 2310 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _preferences_dialog_on_bg_color_reset_gtk_widget_button_press_event, self);
+#line 2312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = self->priv->builder;
+#line 2312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = gtk_builder_get_object (_tmp33_, "library_dir_button");
+#line 2312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp34_, gtk_file_chooser_button_get_type ()) ? ((GtkFileChooserButton*) _tmp34_) : NULL);
+#line 2312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->library_dir_button);
+#line 2312 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->library_dir_button = _tmp35_;
+#line 2314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = self->priv->builder;
+#line 2314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = gtk_builder_get_object (_tmp36_, "external_photo_editor_combo");
+#line 2314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp37_, gtk_combo_box_get_type ()) ? ((GtkComboBox*) _tmp37_) : NULL);
+#line 2314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->photo_editor_combo);
+#line 2314 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->photo_editor_combo = _tmp38_;
+#line 2315 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = self->priv->builder;
+#line 2315 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = gtk_builder_get_object (_tmp39_, "external_raw_editor_combo");
+#line 2315 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp40_, gtk_combo_box_get_type ()) ? ((GtkComboBox*) _tmp40_) : NULL);
+#line 2315 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->raw_editor_combo);
+#line 2315 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->raw_editor_combo = _tmp41_;
+#line 2317 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = self->priv->builder;
+#line 2317 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = gtk_builder_get_object (_tmp42_, "pattern_help");
+#line 2317 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp43_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp43_) : NULL);
+#line 2317 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pattern_help = _tmp44_;
+#line 2324 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = resources_get_help_path ();
+#line 2324 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ help_path = _tmp45_;
+#line 2326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = help_path;
+#line 2326 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp46_ == NULL) {
+#line 18311 "Dialogs.c"
+ GtkLabel* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = pattern_help;
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = _ ("(Help)");
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = g_strconcat ("<a href=\"" RESOURCES_DIR_PATTERN_URI_SYSWIDE "\">", _tmp48_, NULL);
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = _tmp49_;
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = g_strconcat (_tmp50_, "</a>", NULL);
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = _tmp51_;
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_markup (_tmp47_, _tmp52_);
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp52_);
+#line 2328 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp50_);
+#line 18336 "Dialogs.c"
+ } else {
+ GtkLabel* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ GtkLabel* _tmp59_ = NULL;
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = pattern_help;
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = _ ("(Help)");
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = g_strconcat ("<a href=\"dummy:\">", _tmp54_, NULL);
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = _tmp55_;
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = g_strconcat (_tmp56_, "</a>", NULL);
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = _tmp57_;
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_markup (_tmp53_, _tmp58_);
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp58_);
+#line 2332 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp56_);
+#line 2333 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = pattern_help;
+#line 2333 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (_tmp59_, "activate-link", (GCallback) _preferences_dialog_on_local_pattern_help_gtk_label_activate_link, self);
+#line 18367 "Dialogs.c"
+ }
+#line 2336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp60_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 2336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp60_);
+#line 2336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dir_pattern_combo);
+#line 2336 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->dir_pattern_combo = _tmp60_;
+#line 2337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = self->priv->builder;
+#line 2337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = gtk_builder_get_object (_tmp61_, "dir choser");
+#line 2337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp62_, gtk_alignment_get_type ()) ? ((GtkAlignment*) _tmp62_) : NULL);
+#line 2337 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dir_choser_align = _tmp63_;
+#line 2338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = self->priv->dir_pattern_combo;
+#line 2338 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (dir_choser_align, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_widget_get_type (), GtkWidget));
+#line 2339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = self->priv->builder;
+#line 2339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = gtk_builder_get_object (_tmp65_, "dir_pattern_entry");
+#line 2339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp66_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp66_) : NULL);
+#line 2339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dir_pattern_entry);
+#line 2339 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->dir_pattern_entry = _tmp67_;
+#line 2340 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = self->priv->builder;
+#line 2340 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = gtk_builder_get_object (_tmp68_, "dynamic example");
+#line 2340 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp69_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp69_) : NULL);
+#line 2340 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dir_pattern_example);
+#line 2340 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->dir_pattern_example = _tmp70_;
+#line 2341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = _ ("Year%sMonth%sDay");
+#line 2341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp72_ = g_strdup_printf (_tmp71_, G_DIR_SEPARATOR_S, G_DIR_SEPARATOR_S);
+#line 2341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp73_ = _tmp72_;
+#line 2341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_add_to_dir_formats (self, _tmp73_, "%Y" G_DIR_SEPARATOR_S "%m" G_DIR_SEPARATOR_S "%d");
+#line 2341 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp73_);
+#line 2343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp74_ = _ ("Year%sMonth");
+#line 2343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75_ = g_strdup_printf (_tmp74_, G_DIR_SEPARATOR_S);
+#line 2343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp76_ = _tmp75_;
+#line 2343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_add_to_dir_formats (self, _tmp76_, "%Y" G_DIR_SEPARATOR_S "%m");
+#line 2343 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp76_);
+#line 2345 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp77_ = _ ("Year%sMonth-Day");
+#line 2345 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp78_ = g_strdup_printf (_tmp77_, G_DIR_SEPARATOR_S);
+#line 2345 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp79_ = _tmp78_;
+#line 2345 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_add_to_dir_formats (self, _tmp79_, "%Y" G_DIR_SEPARATOR_S "%m-%d");
+#line 2345 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp79_);
+#line 2347 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp80_ = _ ("Year-Month-Day");
+#line 2347 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_add_to_dir_formats (self, _tmp80_, "%Y-%m-%d");
+#line 2348 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp81_ = _ ("Custom");
+#line 2348 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_add_to_dir_formats (self, _tmp81_, NULL);
+#line 2349 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp82_ = self->priv->dir_pattern_combo;
+#line 2349 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _preferences_dialog_on_dir_pattern_combo_changed_gtk_combo_box_changed, self);
+#line 2350 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp83_ = self->priv->dir_pattern_entry;
+#line 2350 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, GTK_TYPE_EDITABLE, GtkEditable), "changed", (GCallback) _preferences_dialog_on_dir_pattern_entry_changed_gtk_editable_changed, self);
+#line 2352 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp84_ = self->priv->builder;
+#line 2352 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp85_ = gtk_builder_get_object (_tmp84_, "dir_structure_label");
+#line 2352 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp86_ = self->priv->dir_pattern_combo;
+#line 2352 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_mnemonic_widget (G_TYPE_CHECK_INSTANCE_TYPE (_tmp85_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp85_) : NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp86_, gtk_widget_get_type (), GtkWidget));
+#line 2354 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp87_ = self->priv->builder;
+#line 2354 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp88_ = gtk_builder_get_object (_tmp87_, "lowercase");
+#line 2354 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp89_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp88_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp88_) : NULL);
+#line 2354 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->lowercase);
+#line 2354 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->lowercase = _tmp89_;
+#line 2355 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp90_ = self->priv->lowercase;
+#line 2355 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, gtk_toggle_button_get_type (), GtkToggleButton), "toggled", (GCallback) _preferences_dialog_on_lowercase_toggled_gtk_toggle_button_toggled, self);
+#line 2357 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp91_ = self->priv->builder;
+#line 2357 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp92_ = gtk_builder_get_object (_tmp91_, "plugin-manifest-bin");
+#line 2357 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp93_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp92_, gtk_bin_get_type ()) ? ((GtkBin*) _tmp92_) : NULL);
+#line 2357 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ plugin_manifest_container = _tmp93_;
+#line 2358 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp94_ = self->priv->plugins_mediator;
+#line 2358 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp95_ = plugins_manifest_widget_mediator_get_widget (_tmp94_);
+#line 2358 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp96_ = _tmp95_;
+#line 2358 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (plugin_manifest_container, gtk_container_get_type (), GtkContainer), _tmp96_);
+#line 2360 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_populate_preference_options (self);
+#line 2362 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp97_ = self->priv->photo_editor_combo;
+#line 2362 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (_tmp97_, "changed", (GCallback) _preferences_dialog_on_photo_editor_changed_gtk_combo_box_changed, self);
+#line 2363 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp98_ = self->priv->raw_editor_combo;
+#line 2363 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (_tmp98_, "changed", (GCallback) _preferences_dialog_on_raw_editor_changed_gtk_combo_box_changed, self);
+#line 2365 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp99_ = self->priv->builder;
+#line 2365 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp100_ = gtk_builder_get_object (_tmp99_, "autoimport");
+#line 2365 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp101_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp100_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp100_) : NULL);
+#line 2365 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ auto_import_button = _tmp101_;
+#line 2366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp102_ = config_facade_get_instance ();
+#line 2366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp103_ = _tmp102_;
+#line 2366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp104_ = configuration_facade_get_auto_import_from_library (G_TYPE_CHECK_INSTANCE_CAST (_tmp103_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (auto_import_button, gtk_toggle_button_get_type (), GtkToggleButton), _tmp104_);
+#line 2366 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp103_);
+#line 2368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp105_ = self->priv->builder;
+#line 2368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp106_ = gtk_builder_get_object (_tmp105_, "write_metadata");
+#line 2368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp107_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp106_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp106_) : NULL);
+#line 2368 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ commit_metadata_button = _tmp107_;
+#line 2369 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp108_ = config_facade_get_instance ();
+#line 2369 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp109_ = _tmp108_;
+#line 2369 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp110_ = configuration_facade_get_commit_metadata_to_masters (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2369 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (commit_metadata_button, gtk_toggle_button_get_type (), GtkToggleButton), _tmp110_);
+#line 2369 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp109_);
+#line 2371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp111_ = self->priv->builder;
+#line 2371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp112_ = gtk_builder_get_object (_tmp111_, "default_raw_developer");
+#line 2371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp113_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp112_, gtk_combo_box_text_get_type ()) ? ((GtkComboBoxText*) _tmp112_) : NULL);
+#line 2371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->default_raw_developer_combo);
+#line 2371 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->default_raw_developer_combo = _tmp113_;
+#line 2372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp114_ = self->priv->default_raw_developer_combo;
+#line 2372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp115_ = raw_developer_get_label (RAW_DEVELOPER_CAMERA);
+#line 2372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp116_ = _tmp115_;
+#line 2372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp114_, _tmp116_);
+#line 2372 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp116_);
+#line 2373 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp117_ = self->priv->default_raw_developer_combo;
+#line 2373 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp118_ = raw_developer_get_label (RAW_DEVELOPER_SHOTWELL);
+#line 2373 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp119_ = _tmp118_;
+#line 2373 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp117_, _tmp119_);
+#line 2373 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp119_);
+#line 2374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp120_ = config_facade_get_instance ();
+#line 2374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp121_ = _tmp120_;
+#line 2374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp122_ = configuration_facade_get_default_raw_developer (G_TYPE_CHECK_INSTANCE_CAST (_tmp121_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_set_raw_developer_combo (self, _tmp122_);
+#line 2374 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp121_);
+#line 2375 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp123_ = self->priv->default_raw_developer_combo;
+#line 2375 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp123_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _preferences_dialog_on_default_raw_developer_changed_gtk_combo_box_changed, self);
+#line 2377 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp124_ = self->priv->dialog;
+#line 2377 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp124_, gtk_widget_get_type (), GtkWidget), "map-event", (GCallback) _preferences_dialog_map_event_gtk_widget_map_event, self);
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (commit_metadata_button);
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (auto_import_button);
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (plugin_manifest_container);
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dir_choser_align);
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (help_path);
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (pattern_help);
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 18601 "Dialogs.c"
+}
+
+
+static PreferencesDialog* preferences_dialog_new (void) {
+#line 2288 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return preferences_dialog_construct (TYPE_PREFERENCES_DIALOG);
+#line 18608 "Dialogs.c"
+}
+
+
+void preferences_dialog_populate_preference_options (PreferencesDialog* self) {
+ GtkComboBox* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar** _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ SortedList* _tmp8_ = NULL;
+ GtkComboBox* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gchar** _tmp11_ = NULL;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ ConfigFacade* _tmp13_ = NULL;
+ ConfigFacade* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ SortedList* _tmp17_ = NULL;
+ GtkComboBoxText* _tmp18_ = NULL;
+ GtkEntry* _tmp19_ = NULL;
+ GtkCheckButton* _tmp20_ = NULL;
+ ConfigFacade* _tmp21_ = NULL;
+ ConfigFacade* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 2380 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->photo_editor_combo;
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = photo_file_format_get_editable_mime_types (&_tmp1_);
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3__length1 = _tmp1_;
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = configuration_facade_get_external_photo_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_populate_app_combo_box (self, _tmp0_, _tmp3_, _tmp1_, _tmp7_, &_tmp8_);
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->external_photo_apps);
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_photo_apps = _tmp8_;
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp7_);
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2381 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->raw_editor_combo;
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = photo_file_format_get_mime_types (PHOTO_FILE_FORMAT_RAW, &_tmp10_);
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp11_;
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12__length1 = _tmp10_;
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = config_facade_get_instance ();
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = configuration_facade_get_external_raw_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_;
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_populate_app_combo_box (self, _tmp9_, _tmp12_, _tmp10_, _tmp16_, &_tmp17_);
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->external_raw_apps);
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->external_raw_apps = _tmp17_;
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp16_);
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2384 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
+#line 2387 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->dir_pattern_combo;
+#line 2387 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = self->priv->dir_pattern_entry;
+#line 2387 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_setup_dir_pattern (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_combo_box_get_type (), GtkComboBox), _tmp19_);
+#line 2389 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = self->priv->lowercase;
+#line 2389 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = config_facade_get_instance ();
+#line 2389 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _tmp21_;
+#line 2389 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = configuration_facade_get_use_lowercase_filenames (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2389 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp23_);
+#line 2389 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp22_);
+#line 18715 "Dialogs.c"
+}
+
+
+static gboolean preferences_dialog_on_local_pattern_help (PreferencesDialog* self, const gchar* ignore) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2394 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PREFERENCES_DIALOG (self), FALSE);
+#line 2394 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (ignore != NULL, FALSE);
+#line 18726 "Dialogs.c"
+ {
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ GdkScreen* _tmp2_ = NULL;
+#line 2396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 2396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 2396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_window_get_screen (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_window_get_type (), GtkWindow));
+#line 2396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ resources_launch_help (_tmp2_, "other-files.page", &_inner_error_);
+#line 2396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2396 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 18743 "Dialogs.c"
+ goto __catch414_g_error;
+ }
+ }
+ goto __finally414;
+ __catch414_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2395 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ e = _inner_error_;
+#line 2395 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _inner_error_ = NULL;
+#line 2398 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = e;
+#line 2398 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_->message;
+#line 2398 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_message ("Dialogs.vala:2398: Unable to launch help: %s", _tmp4_);
+#line 2395 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_error_free0 (e);
+#line 18765 "Dialogs.c"
+ }
+ __finally414:
+#line 2395 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2395 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2395 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_clear_error (&_inner_error_);
+#line 2395 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return FALSE;
+#line 18776 "Dialogs.c"
+ }
+#line 2400 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 2400 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 18782 "Dialogs.c"
+}
+
+
+static void preferences_dialog_populate_app_combo_box (PreferencesDialog* self, GtkComboBox* combo_box, gchar** mime_types, int mime_types_length1, const gchar* current_app_executable, SortedList** external_apps) {
+ SortedList* _vala_external_apps = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ SortedList* _tmp2_ = NULL;
+ SortedList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GtkCellRendererPixbuf* pixbuf_renderer = NULL;
+ GtkCellRendererPixbuf* _tmp6_ = NULL;
+ GtkCellRendererText* text_renderer = NULL;
+ GtkCellRendererText* _tmp7_ = NULL;
+ GtkComboBox* _tmp8_ = NULL;
+ GtkComboBox* _tmp9_ = NULL;
+ GtkCellRendererPixbuf* _tmp10_ = NULL;
+ GtkComboBox* _tmp11_ = NULL;
+ GtkCellRendererText* _tmp12_ = NULL;
+ GtkComboBox* _tmp13_ = NULL;
+ GtkCellRendererPixbuf* _tmp14_ = NULL;
+ GtkComboBox* _tmp15_ = NULL;
+ GtkCellRendererText* _tmp16_ = NULL;
+ GtkListStore* combo_store = NULL;
+ GtkListStore* _tmp17_ = NULL;
+ GtkTreeIter iter = {0};
+ gint current_app = 0;
+ GtkComboBox* _tmp67_ = NULL;
+ GtkListStore* _tmp68_ = NULL;
+ gint _tmp69_ = 0;
+ GError * _inner_error_ = NULL;
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (current_app_executable != NULL);
+#line 2406 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = mime_types;
+#line 2406 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0__length1 = mime_types_length1;
+#line 2406 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_assert (_tmp0__length1 != 0, "mime_types.length != 0");
+#line 2407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = mime_types;
+#line 2407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1__length1 = mime_types_length1;
+#line 2407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = desktop_integration_get_apps_for_mime_types (_tmp1_, _tmp1__length1);
+#line 2407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_vala_external_apps);
+#line 2407 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _vala_external_apps = _tmp2_;
+#line 2409 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _vala_external_apps;
+#line 2409 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2409 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 2409 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_ == 0) {
+#line 2410 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (external_apps) {
+#line 2410 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *external_apps = _vala_external_apps;
+#line 18851 "Dialogs.c"
+ } else {
+#line 2410 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_vala_external_apps);
+#line 18855 "Dialogs.c"
+ }
+#line 2410 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 18859 "Dialogs.c"
+ }
+#line 2413 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+#line 2413 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp6_);
+#line 2413 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pixbuf_renderer = _tmp6_;
+#line 2414 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 2414 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp7_);
+#line 2414 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ text_renderer = _tmp7_;
+#line 2415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = combo_box;
+#line 2415 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_cell_layout_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout));
+#line 2416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = combo_box;
+#line 2416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = pixbuf_renderer;
+#line 2416 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_cell_renderer_get_type (), GtkCellRenderer), FALSE);
+#line 2417 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = combo_box;
+#line 2417 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = text_renderer;
+#line 2417 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_cell_renderer_get_type (), GtkCellRenderer), FALSE);
+#line 2418 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = combo_box;
+#line 2418 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = pixbuf_renderer;
+#line 2418 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_cell_renderer_get_type (), GtkCellRenderer), "pixbuf", 0);
+#line 2419 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = combo_box;
+#line 2419 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = text_renderer;
+#line 2419 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", 1);
+#line 2422 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING, -1);
+#line 2422 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ combo_store = _tmp17_;
+#line 2425 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_app = -1;
+#line 18907 "Dialogs.c"
+ {
+ GeeIterator* _app_it = NULL;
+ SortedList* _tmp18_ = NULL;
+ GeeIterator* _tmp19_ = NULL;
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _vala_external_apps;
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _app_it = _tmp19_;
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 18920 "Dialogs.c"
+ GeeIterator* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ GAppInfo* app = NULL;
+ GeeIterator* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+ GtkListStore* _tmp24_ = NULL;
+ GtkTreeIter _tmp25_ = {0};
+ GIcon* app_icon = NULL;
+ GAppInfo* _tmp26_ = NULL;
+ GIcon* _tmp27_ = NULL;
+ GIcon* _tmp28_ = NULL;
+ GtkListStore* _tmp56_ = NULL;
+ GtkTreeIter _tmp57_ = {0};
+ GAppInfo* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ GValue _tmp60_ = {0};
+ GAppInfo* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = _app_it;
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = gee_iterator_next (_tmp20_);
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp21_) {
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 18948 "Dialogs.c"
+ }
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = _app_it;
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = gee_iterator_get (_tmp22_);
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app = (GAppInfo*) _tmp23_;
+#line 2428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = combo_store;
+#line 2428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_list_store_append (_tmp24_, &_tmp25_);
+#line 2428 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ iter = _tmp25_;
+#line 2430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = app;
+#line 2430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = g_app_info_get_icon (_tmp26_);
+#line 2430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 2430 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app_icon = _tmp28_;
+#line 18970 "Dialogs.c"
+ {
+ GIcon* _tmp29_ = NULL;
+#line 2432 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = app_icon;
+#line 2432 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp29_, g_file_icon_get_type ())) {
+#line 18977 "Dialogs.c"
+ GdkPixbuf* _tmp30_ = NULL;
+ GIcon* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ GdkPixbuf* _tmp35_ = NULL;
+ GdkPixbuf* _tmp36_ = NULL;
+ GtkListStore* _tmp37_ = NULL;
+ GtkTreeIter _tmp38_ = {0};
+ GdkPixbuf* _tmp39_ = NULL;
+ GValue _tmp40_ = {0};
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = app_icon;
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = g_file_icon_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, g_file_icon_get_type (), GFileIcon));
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = g_file_get_path (_tmp32_);
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = _tmp33_;
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = gdk_pixbuf_new_from_file (_tmp34_, &_inner_error_);
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = _tmp35_;
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp34_);
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = _tmp36_;
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19007 "Dialogs.c"
+ goto __catch415_g_error;
+ }
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = combo_store;
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = iter;
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = scale_pixbuf (_tmp30_, RESOURCES_DEFAULT_ICON_SCALE, GDK_INTERP_BILINEAR, FALSE);
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_value_init (&_tmp40_, GDK_TYPE_PIXBUF);
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_value_take_object (&_tmp40_, _tmp39_);
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_list_store_set_value (_tmp37_, &_tmp38_, 0, &_tmp40_);
+#line 2433 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_IS_VALUE (&_tmp40_) ? (g_value_unset (&_tmp40_), NULL) : NULL;
+#line 2432 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp30_);
+#line 19026 "Dialogs.c"
+ } else {
+ GIcon* _tmp41_ = NULL;
+#line 2436 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = app_icon;
+#line 2436 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp41_, g_themed_icon_get_type ())) {
+#line 19033 "Dialogs.c"
+ GdkPixbuf* icon_pixbuf = NULL;
+ GtkIconTheme* _tmp42_ = NULL;
+ GIcon* _tmp43_ = NULL;
+ gchar** _tmp44_ = NULL;
+ gchar** _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ GdkPixbuf* _tmp47_ = NULL;
+ GtkListStore* _tmp48_ = NULL;
+ GtkTreeIter _tmp49_ = {0};
+ GdkPixbuf* _tmp50_ = NULL;
+ GValue _tmp51_ = {0};
+#line 2437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = gtk_icon_theme_get_default ();
+#line 2437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = app_icon;
+#line 2437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = _tmp44_ = g_themed_icon_get_names (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, g_themed_icon_get_type (), GThemedIcon));
+#line 2437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = _tmp45_[0];
+#line 2437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = gtk_icon_theme_load_icon (_tmp42_, _tmp46_, RESOURCES_DEFAULT_ICON_SCALE, GTK_ICON_LOOKUP_FORCE_SIZE, &_inner_error_);
+#line 2437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ icon_pixbuf = _tmp47_;
+#line 2437 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19059 "Dialogs.c"
+ goto __catch415_g_error;
+ }
+#line 2441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = combo_store;
+#line 2441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = iter;
+#line 2441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = icon_pixbuf;
+#line 2441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_value_init (&_tmp51_, GDK_TYPE_PIXBUF);
+#line 2441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_value_set_object (&_tmp51_, _tmp50_);
+#line 2441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_list_store_set_value (_tmp48_, &_tmp49_, 0, &_tmp51_);
+#line 2441 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_IS_VALUE (&_tmp51_) ? (g_value_unset (&_tmp51_), NULL) : NULL;
+#line 2436 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (icon_pixbuf);
+#line 19078 "Dialogs.c"
+ }
+ }
+ }
+ goto __finally415;
+ __catch415_g_error:
+ {
+ GError* _error_ = NULL;
+ GError* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _error_ = _inner_error_;
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _inner_error_ = NULL;
+#line 2444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = _error_;
+#line 2444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = _tmp52_->message;
+#line 2444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = g_strconcat ("Error loading icon pixbuf: ", _tmp53_, NULL);
+#line 2444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = _tmp54_;
+#line 2444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_warning ("Dialogs.vala:2444: %s", _tmp55_);
+#line 2444 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp55_);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_error_free0 (_error_);
+#line 19108 "Dialogs.c"
+ }
+ __finally415:
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (app_icon);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (app);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_app_it);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (combo_store);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (text_renderer);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (pixbuf_renderer);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_clear_error (&_inner_error_);
+#line 2431 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 19131 "Dialogs.c"
+ }
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = combo_store;
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = iter;
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = app;
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = g_app_info_get_name (_tmp58_);
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_value_init (&_tmp60_, G_TYPE_STRING);
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_value_set_string (&_tmp60_, _tmp59_);
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_list_store_set_value (_tmp56_, &_tmp57_, 1, &_tmp60_);
+#line 2447 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_IS_VALUE (&_tmp60_) ? (g_value_unset (&_tmp60_), NULL) : NULL;
+#line 2449 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = app;
+#line 2449 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = g_app_info_get_commandline (_tmp61_);
+#line 2449 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = current_app_executable;
+#line 2449 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_strcmp0 (_tmp62_, _tmp63_) == 0) {
+#line 19157 "Dialogs.c"
+ SortedList* _tmp64_ = NULL;
+ GAppInfo* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+#line 2450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = _vala_external_apps;
+#line 2450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = app;
+#line 2450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = sorted_list_index_of (_tmp64_, _tmp65_);
+#line 2450 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ current_app = _tmp66_;
+#line 19169 "Dialogs.c"
+ }
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (app_icon);
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (app);
+#line 19175 "Dialogs.c"
+ }
+#line 2427 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_app_it);
+#line 19179 "Dialogs.c"
+ }
+#line 2455 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = combo_box;
+#line 2455 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = combo_store;
+#line 2455 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_model (_tmp67_, G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 2457 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = current_app;
+#line 2457 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp69_ != -1) {
+#line 19191 "Dialogs.c"
+ GtkComboBox* _tmp70_ = NULL;
+ gint _tmp71_ = 0;
+#line 2458 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = combo_box;
+#line 2458 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = current_app;
+#line 2458 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (_tmp70_, _tmp71_);
+#line 19200 "Dialogs.c"
+ }
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (combo_store);
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (text_renderer);
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (pixbuf_renderer);
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (external_apps) {
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *external_apps = _vala_external_apps;
+#line 19212 "Dialogs.c"
+ } else {
+#line 2403 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_vala_external_apps);
+#line 19216 "Dialogs.c"
+ }
+}
+
+
+static void preferences_dialog_setup_dir_pattern (PreferencesDialog* self, GtkComboBox* combo_box, GtkEntry* entry) {
+ gchar* pattern = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean found = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp32_ = FALSE;
+#line 2461 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2461 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
+#line 2461 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GTK_IS_ENTRY (entry));
+#line 2462 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 2462 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 2462 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = configuration_facade_get_directory_pattern (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2462 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 2462 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2462 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pattern = _tmp3_;
+#line 2463 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ found = FALSE;
+#line 2464 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = pattern;
+#line 2464 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (NULL != _tmp4_) {
+#line 19254 "Dialogs.c"
+ gint i = 0;
+#line 2466 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ i = 0;
+#line 19258 "Dialogs.c"
+ {
+ GeeArrayList* _pf_list = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _pf_size = 0;
+ GeeArrayList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _pf_index = 0;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = self->priv->path_formats;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _pf_list = _tmp6_;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _pf_list;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _pf_size = _tmp9_;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _pf_index = -1;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ while (TRUE) {
+#line 19286 "Dialogs.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ PreferencesDialogPathFormat* pf = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gpointer _tmp15_ = NULL;
+ PreferencesDialogPathFormat* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp21_ = 0;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _pf_index;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _pf_index = _tmp10_ + 1;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _pf_index;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _pf_size;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!(_tmp11_ < _tmp12_)) {
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 19310 "Dialogs.c"
+ }
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _pf_list;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _pf_index;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp14_);
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pf = (PreferencesDialogPathFormat*) _tmp15_;
+#line 2468 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = pf;
+#line 2468 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = _tmp16_->pattern;
+#line 2468 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = pattern;
+#line 2468 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_strcmp0 (_tmp17_, _tmp18_) == 0) {
+#line 19328 "Dialogs.c"
+ GtkComboBox* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+#line 2469 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = combo_box;
+#line 2469 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = i;
+#line 2469 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (_tmp19_, _tmp20_);
+#line 2470 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ found = TRUE;
+#line 2471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _preferences_dialog_path_format_unref0 (pf);
+#line 2471 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ break;
+#line 19343 "Dialogs.c"
+ }
+#line 2473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = i;
+#line 2473 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ i = _tmp21_ + 1;
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _preferences_dialog_path_format_unref0 (pf);
+#line 19351 "Dialogs.c"
+ }
+#line 2467 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_pf_list);
+#line 19355 "Dialogs.c"
+ }
+ } else {
+ gchar* s = NULL;
+ ConfigFacade* _tmp22_ = NULL;
+ ConfigFacade* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 2477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = config_facade_get_instance ();
+#line 2477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = _tmp22_;
+#line 2477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = configuration_facade_get_directory_pattern_custom (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = _tmp24_;
+#line 2477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp23_);
+#line 2477 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ s = _tmp25_;
+#line 2478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = s;
+#line 2478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = is_string_empty (_tmp26_);
+#line 2478 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp27_) {
+#line 19383 "Dialogs.c"
+ GtkComboBox* _tmp28_ = NULL;
+ GeeArrayList* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+#line 2479 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = combo_box;
+#line 2479 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = self->priv->path_formats;
+#line 2479 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2479 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = _tmp30_;
+#line 2479 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (_tmp28_, _tmp31_ - 1);
+#line 2480 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ found = TRUE;
+#line 19400 "Dialogs.c"
+ }
+#line 2464 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (s);
+#line 19404 "Dialogs.c"
+ }
+#line 2484 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = found;
+#line 2484 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp32_) {
+#line 19410 "Dialogs.c"
+ GtkComboBox* _tmp33_ = NULL;
+#line 2485 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = combo_box;
+#line 2485 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (_tmp33_, 0);
+#line 19416 "Dialogs.c"
+ }
+#line 2488 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_dir_pattern_combo_changed (self);
+#line 2461 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (pattern);
+#line 19422 "Dialogs.c"
+}
+
+
+void preferences_dialog_show (void) {
+ PreferencesDialog* _tmp0_ = NULL;
+ PreferencesDialog* _tmp2_ = NULL;
+ PreferencesDialog* _tmp3_ = NULL;
+ GtkDialog* _tmp4_ = NULL;
+ PreferencesDialog* _tmp5_ = NULL;
+ GtkFileChooserButton* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ PreferencesDialog* _tmp11_ = NULL;
+ GtkDialog* _tmp12_ = NULL;
+#line 2492 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = preferences_dialog_preferences_dialog;
+#line 2492 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == NULL) {
+#line 19443 "Dialogs.c"
+ PreferencesDialog* _tmp1_ = NULL;
+#line 2493 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = preferences_dialog_new ();
+#line 2493 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _preferences_dialog_unref0 (preferences_dialog_preferences_dialog);
+#line 2493 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_preferences_dialog = _tmp1_;
+#line 19451 "Dialogs.c"
+ }
+#line 2495 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = preferences_dialog_preferences_dialog;
+#line 2495 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_populate_preference_options (_tmp2_);
+#line 2496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = preferences_dialog_preferences_dialog;
+#line 2496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _tmp3_->priv->dialog;
+#line 2496 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = preferences_dialog_preferences_dialog;
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _tmp5_->priv->library_dir_button;
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = app_dirs_get_import_dir ();
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _tmp7_;
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = g_file_get_path (_tmp8_);
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp10_);
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp10_);
+#line 2497 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp8_);
+#line 2501 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = preferences_dialog_preferences_dialog;
+#line 2501 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = _tmp11_->priv->dialog;
+#line 2501 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_present (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_window_get_type (), GtkWindow));
+#line 19487 "Dialogs.c"
+}
+
+
+static void preferences_dialog_commit_on_close (PreferencesDialog* self) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ GtkCheckButton* autoimport = NULL;
+ GtkBuilder* _tmp2_ = NULL;
+ GObject* _tmp3_ = NULL;
+ GtkCheckButton* _tmp4_ = NULL;
+ GtkCheckButton* _tmp5_ = NULL;
+ GtkCheckButton* commit_metadata = NULL;
+ GtkBuilder* _tmp11_ = NULL;
+ GObject* _tmp12_ = NULL;
+ GtkCheckButton* _tmp13_ = NULL;
+ GtkCheckButton* _tmp14_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ PreferencesDialogPathFormat* pf = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ GtkComboBoxText* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gpointer _tmp25_ = NULL;
+ PreferencesDialogPathFormat* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 2506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 2507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 2507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ config_facade_commit_bg_color (_tmp1_);
+#line 2507 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2509 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->builder;
+#line 2509 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_builder_get_object (_tmp2_, "autoimport");
+#line 2509 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp3_) : NULL);
+#line 2509 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ autoimport = _tmp4_;
+#line 2510 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = autoimport;
+#line 2510 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_ != NULL) {
+#line 19534 "Dialogs.c"
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ GtkCheckButton* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 2511 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 2511 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 2511 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = autoimport;
+#line 2511 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 2511 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 2511 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_auto_import_from_library (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp10_);
+#line 2511 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp7_);
+#line 19554 "Dialogs.c"
+ }
+#line 2513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->builder;
+#line 2513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = gtk_builder_get_object (_tmp11_, "write_metadata");
+#line 2513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp12_) : NULL);
+#line 2513 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ commit_metadata = _tmp13_;
+#line 2514 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = commit_metadata;
+#line 2514 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp14_ != NULL) {
+#line 19568 "Dialogs.c"
+ ConfigFacade* _tmp15_ = NULL;
+ ConfigFacade* _tmp16_ = NULL;
+ GtkCheckButton* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 2515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = config_facade_get_instance ();
+#line 2515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_;
+#line 2515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = commit_metadata;
+#line 2515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 2515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp18_;
+#line 2515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_commit_metadata_to_masters (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp19_);
+#line 2515 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp16_);
+#line 19588 "Dialogs.c"
+ }
+#line 2517 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = self->priv->lib_dir;
+#line 2517 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp20_ != NULL) {
+#line 19594 "Dialogs.c"
+ const gchar* _tmp21_ = NULL;
+#line 2518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->priv->lib_dir;
+#line 2518 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app_dirs_set_import_dir (_tmp21_);
+#line 19600 "Dialogs.c"
+ }
+#line 2520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = self->priv->path_formats;
+#line 2520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = self->priv->dir_pattern_combo;
+#line 2520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_combo_box_get_type (), GtkComboBox));
+#line 2520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp24_);
+#line 2520 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pf = (PreferencesDialogPathFormat*) _tmp25_;
+#line 2521 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = pf;
+#line 2521 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = _tmp26_->pattern;
+#line 2521 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (NULL == _tmp27_) {
+#line 19618 "Dialogs.c"
+ ConfigFacade* _tmp28_ = NULL;
+ ConfigFacade* _tmp29_ = NULL;
+ GtkEntry* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ ConfigFacade* _tmp33_ = NULL;
+ ConfigFacade* _tmp34_ = NULL;
+#line 2522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = config_facade_get_instance ();
+#line 2522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = _tmp28_;
+#line 2522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = self->priv->dir_pattern_entry;
+#line 2522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = gtk_entry_get_text (_tmp30_);
+#line 2522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = _tmp31_;
+#line 2522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_directory_pattern_custom (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp32_);
+#line 2522 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp29_);
+#line 2523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = config_facade_get_instance ();
+#line 2523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = _tmp33_;
+#line 2523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_directory_pattern (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), NULL);
+#line 2523 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp34_);
+#line 19648 "Dialogs.c"
+ } else {
+ ConfigFacade* _tmp35_ = NULL;
+ ConfigFacade* _tmp36_ = NULL;
+ PreferencesDialogPathFormat* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+#line 2525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = config_facade_get_instance ();
+#line 2525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = _tmp35_;
+#line 2525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = pf;
+#line 2525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = _tmp37_->pattern;
+#line 2525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_directory_pattern (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp38_);
+#line 2525 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp36_);
+#line 19666 "Dialogs.c"
+ }
+#line 2506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _preferences_dialog_path_format_unref0 (pf);
+#line 2506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (commit_metadata);
+#line 2506 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (autoimport);
+#line 19674 "Dialogs.c"
+}
+
+
+static gboolean preferences_dialog_on_delete (PreferencesDialog* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GtkDialog* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2529 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PREFERENCES_DIALOG (self), FALSE);
+#line 2530 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = preferences_dialog_get_allow_closing (self);
+#line 2530 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp0_) {
+#line 2531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 2531 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 19693 "Dialogs.c"
+ }
+#line 2533 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_commit_on_close (self);
+#line 2534 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->dialog;
+#line 2534 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_widget_hide_on_delete (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 2534 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp2_;
+#line 2534 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 19705 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_close (PreferencesDialog* self) {
+ gboolean _tmp0_ = FALSE;
+ GtkDialog* _tmp1_ = NULL;
+#line 2537 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = preferences_dialog_get_allow_closing (self);
+#line 2538 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp0_) {
+#line 2539 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 19720 "Dialogs.c"
+ }
+#line 2541 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->dialog;
+#line 2541 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 2542 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_commit_on_close (self);
+#line 19728 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_value_changed (PreferencesDialog* self) {
+ GtkAdjustment* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ GtkAdjustment* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+#line 2545 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2546 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->bg_color_adjustment;
+#line 2546 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_adjustment_get_upper (_tmp0_);
+#line 2546 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->bg_color_adjustment;
+#line 2546 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_adjustment_get_value (_tmp2_);
+#line 2546 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_set_background_color (self, ((gdouble) (_tmp1_ - _tmp3_)) / 65535.0);
+#line 19749 "Dialogs.c"
+}
+
+
+static gboolean preferences_dialog_on_bg_color_reset (PreferencesDialog* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkEventButton* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 2550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PREFERENCES_DIALOG (self), FALSE);
+#line 2550 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = event;
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_->button;
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp3_ == ((guint) 1)) {
+#line 19769 "Dialogs.c"
+ GdkEventButton* _tmp4_ = NULL;
+ GdkEventType _tmp5_ = 0;
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = event;
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_->type;
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp5_ == GDK_BUTTON_PRESS;
+#line 19778 "Dialogs.c"
+ } else {
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = FALSE;
+#line 19782 "Dialogs.c"
+ }
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_) {
+#line 19786 "Dialogs.c"
+ GdkEventButton* _tmp6_ = NULL;
+ GdkModifierType _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+#line 2552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = event;
+#line 2552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_->state;
+#line 2552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = has_only_key_modifier (_tmp7_, GDK_CONTROL_MASK);
+#line 2552 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp8_;
+#line 19798 "Dialogs.c"
+ } else {
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = FALSE;
+#line 19802 "Dialogs.c"
+ }
+#line 2551 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_) {
+#line 19806 "Dialogs.c"
+ GtkScale* _tmp9_ = NULL;
+ GtkAdjustment* _tmp10_ = NULL;
+ gdouble _tmp11_ = 0.0;
+ GdkRGBA _tmp12_ = {0};
+ gdouble _tmp13_ = 0.0;
+#line 2554 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = self->priv->bg_color_slider;
+#line 2554 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = self->priv->bg_color_adjustment;
+#line 2554 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = gtk_adjustment_get_upper (_tmp10_);
+#line 2554 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ parse_color (CONFIG_FACADE_DEFAULT_BG_COLOR, &_tmp12_);
+#line 2554 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _tmp12_.red;
+#line 2554 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_range_get_type (), GtkRange), _tmp11_ - (_tmp13_ * 65536.0f));
+#line 2556 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_value_changed (self);
+#line 2558 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 2558 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 19830 "Dialogs.c"
+ }
+#line 2561 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = FALSE;
+#line 2561 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 19836 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_dir_pattern_combo_changed (PreferencesDialog* self) {
+ PreferencesDialogPathFormat* pf = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GtkComboBoxText* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gpointer _tmp3_ = NULL;
+ PreferencesDialogPathFormat* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 2564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->path_formats;
+#line 2565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->dir_pattern_combo;
+#line 2565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_combo_box_get_type (), GtkComboBox));
+#line 2565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp2_);
+#line 2565 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pf = (PreferencesDialogPathFormat*) _tmp3_;
+#line 2566 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = pf;
+#line 2566 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_->pattern;
+#line 2566 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (NULL == _tmp5_) {
+#line 19866 "Dialogs.c"
+ gchar* dir_pattern = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GtkEntry* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkEntry* _tmp15_ = NULL;
+ GtkEntry* _tmp16_ = NULL;
+#line 2568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 2568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _tmp6_;
+#line 2568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = configuration_facade_get_directory_pattern_custom (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = _tmp8_;
+#line 2568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2568 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dir_pattern = _tmp9_;
+#line 2569 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = dir_pattern;
+#line 2569 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = is_string_empty (_tmp10_);
+#line 2569 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp11_) {
+#line 19896 "Dialogs.c"
+ gchar* _tmp12_ = NULL;
+#line 2570 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = g_strdup ("");
+#line 2570 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (dir_pattern);
+#line 2570 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dir_pattern = _tmp12_;
+#line 19904 "Dialogs.c"
+ }
+#line 2571 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = self->priv->dir_pattern_entry;
+#line 2571 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = dir_pattern;
+#line 2571 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_text (_tmp13_, _tmp14_);
+#line 2572 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = self->priv->dir_pattern_entry;
+#line 2572 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_set (_tmp15_, "editable", TRUE, NULL);
+#line 2573 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->dir_pattern_entry;
+#line 2573 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 2566 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (dir_pattern);
+#line 19922 "Dialogs.c"
+ } else {
+ GtkEntry* _tmp17_ = NULL;
+ PreferencesDialogPathFormat* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GtkEntry* _tmp20_ = NULL;
+ GtkEntry* _tmp21_ = NULL;
+#line 2575 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = self->priv->dir_pattern_entry;
+#line 2575 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = pf;
+#line 2575 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = _tmp18_->pattern;
+#line 2575 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_text (_tmp17_, _tmp19_);
+#line 2576 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = self->priv->dir_pattern_entry;
+#line 2576 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_set (_tmp20_, "editable", FALSE, NULL);
+#line 2577 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = self->priv->dir_pattern_entry;
+#line 2577 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 19945 "Dialogs.c"
+ }
+#line 2564 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _preferences_dialog_path_format_unref0 (pf);
+#line 19949 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_dir_pattern_entry_changed (PreferencesDialog* self) {
+ gchar* example = NULL;
+ GDateTime* _tmp0_ = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 2581 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->example_date;
+#line 2582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->dir_pattern_entry;
+#line 2582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_entry_get_text (_tmp1_);
+#line 2582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 2582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = g_date_time_format (_tmp0_, _tmp3_);
+#line 2582 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ example = _tmp4_;
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = example;
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = is_string_empty (_tmp6_);
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp7_) {
+#line 19983 "Dialogs.c"
+ GtkEntry* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->dir_pattern_entry;
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = gtk_entry_get_text (_tmp8_);
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = is_string_empty (_tmp10_);
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = !_tmp11_;
+#line 19998 "Dialogs.c"
+ } else {
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = FALSE;
+#line 20002 "Dialogs.c"
+ }
+#line 2583 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp5_) {
+#line 20006 "Dialogs.c"
+ GtkLabel* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GtkEntry* _tmp14_ = NULL;
+ GtkEntry* _tmp15_ = NULL;
+#line 2585 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = self->priv->dir_pattern_example;
+#line 2585 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = _ ("Invalid pattern");
+#line 2585 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_text (_tmp12_, _tmp13_);
+#line 2586 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = self->priv->dir_pattern_entry;
+#line 2586 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_icon_from_icon_name (_tmp14_, GTK_ENTRY_ICON_SECONDARY, "dialog-error");
+#line 2587 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = self->priv->dir_pattern_entry;
+#line 2587 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_icon_activatable (_tmp15_, GTK_ENTRY_ICON_SECONDARY, FALSE);
+#line 2588 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_set_allow_closing (self, FALSE);
+#line 20027 "Dialogs.c"
+ } else {
+ GtkLabel* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GtkEntry* _tmp18_ = NULL;
+#line 2591 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = self->priv->dir_pattern_example;
+#line 2591 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = example;
+#line 2591 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_label_set_text (_tmp16_, _tmp17_);
+#line 2592 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = self->priv->dir_pattern_entry;
+#line 2592 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_entry_set_icon_from_icon_name (_tmp18_, GTK_ENTRY_ICON_SECONDARY, NULL);
+#line 2593 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_set_allow_closing (self, TRUE);
+#line 20044 "Dialogs.c"
+ }
+#line 2581 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (example);
+#line 20048 "Dialogs.c"
+}
+
+
+static void preferences_dialog_set_allow_closing (PreferencesDialog* self, gboolean allow) {
+ GtkDialog* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 2597 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->dialog;
+#line 2598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = allow;
+#line 2598 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_deletable (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_window_get_type (), GtkWindow), _tmp1_);
+#line 2599 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = allow;
+#line 2599 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->allow_closing = _tmp2_;
+#line 20068 "Dialogs.c"
+}
+
+
+static gboolean preferences_dialog_get_allow_closing (PreferencesDialog* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 2602 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PREFERENCES_DIALOG (self), FALSE);
+#line 2603 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->allow_closing;
+#line 2603 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _tmp0_;
+#line 2603 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 20083 "Dialogs.c"
+}
+
+
+static void preferences_dialog_set_background_color (PreferencesDialog* self, gdouble bg_color_value) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ GdkRGBA _tmp3_ = {0};
+#line 2606 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 2607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 2607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = bg_color_value;
+#line 2607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_to_grayscale (self, _tmp2_, &_tmp3_);
+#line 2607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ config_facade_set_bg_color (_tmp1_, &_tmp3_);
+#line 2607 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 20106 "Dialogs.c"
+}
+
+
+static void preferences_dialog_to_grayscale (PreferencesDialog* self, gdouble color_value, GdkRGBA* result) {
+ GdkRGBA color = {0};
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+#line 2610 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2611 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ memset (&color, 0, sizeof (GdkRGBA));
+#line 2613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = color_value;
+#line 2613 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ color.red = _tmp0_;
+#line 2614 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = color_value;
+#line 2614 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ color.green = _tmp1_;
+#line 2615 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = color_value;
+#line 2615 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ color.blue = _tmp2_;
+#line 2616 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ color.alpha = 1.0;
+#line 2618 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *result = color;
+#line 2618 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 20137 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_photo_editor_changed (PreferencesDialog* self) {
+ gint _tmp0_ = 0;
+ GtkComboBox* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ SortedList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint photo_app_choice_index = 0;
+ GAppInfo* app = NULL;
+ SortedList* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ ConfigFacade* _tmp13_ = NULL;
+ ConfigFacade* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 2621 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2622 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->photo_editor_combo;
+#line 2622 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_combo_box_get_active (_tmp1_);
+#line 2622 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->external_photo_apps;
+#line 2622 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2622 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 2622 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_ < _tmp5_) {
+#line 20172 "Dialogs.c"
+ GtkComboBox* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+#line 2623 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->photo_editor_combo;
+#line 2623 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = gtk_combo_box_get_active (_tmp6_);
+#line 2623 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp7_;
+#line 20181 "Dialogs.c"
+ } else {
+ SortedList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 2623 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->external_photo_apps;
+#line 2623 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2623 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 2623 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp10_;
+#line 20194 "Dialogs.c"
+ }
+#line 2622 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photo_app_choice_index = _tmp0_;
+#line 2625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->external_photo_apps;
+#line 2625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = sorted_list_get_at (_tmp11_, photo_app_choice_index);
+#line 2625 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app = (GAppInfo*) _tmp12_;
+#line 2627 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = config_facade_get_instance ();
+#line 2627 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 2627 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = desktop_integration_get_app_open_command (app);
+#line 2627 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = _tmp15_;
+#line 2627 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_external_photo_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp16_);
+#line 2627 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp16_);
+#line 2627 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = desktop_integration_get_app_open_command (app);
+#line 2629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = _tmp17_;
+#line 2629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_debug ("Dialogs.vala:2629: setting external photo editor to: %s", _tmp18_);
+#line 2629 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (_tmp18_);
+#line 2621 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (app);
+#line 20228 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_raw_editor_changed (PreferencesDialog* self) {
+ gint _tmp0_ = 0;
+ GtkComboBox* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ SortedList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint raw_app_choice_index = 0;
+ GAppInfo* app = NULL;
+ SortedList* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ ConfigFacade* _tmp13_ = NULL;
+ ConfigFacade* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 2632 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2633 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->raw_editor_combo;
+#line 2633 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gtk_combo_box_get_active (_tmp1_);
+#line 2633 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->external_raw_apps;
+#line 2633 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2633 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 2633 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_ < _tmp5_) {
+#line 20261 "Dialogs.c"
+ GtkComboBox* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+#line 2634 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = self->priv->raw_editor_combo;
+#line 2634 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = gtk_combo_box_get_active (_tmp6_);
+#line 2634 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp7_;
+#line 20270 "Dialogs.c"
+ } else {
+ SortedList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 2634 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = self->priv->external_raw_apps;
+#line 2634 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2634 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = _tmp9_;
+#line 2634 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp10_;
+#line 20283 "Dialogs.c"
+ }
+#line 2633 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ raw_app_choice_index = _tmp0_;
+#line 2636 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = self->priv->external_raw_apps;
+#line 2636 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = sorted_list_get_at (_tmp11_, raw_app_choice_index);
+#line 2636 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app = (GAppInfo*) _tmp12_;
+#line 2638 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = config_facade_get_instance ();
+#line 2638 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 2638 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = g_app_info_get_commandline (app);
+#line 2638 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_external_raw_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp15_);
+#line 2638 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = g_app_info_get_commandline (app);
+#line 2640 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_debug ("Dialogs.vala:2640: setting external raw editor to: %s", _tmp16_);
+#line 2632 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (app);
+#line 20309 "Dialogs.c"
+}
+
+
+static RawDeveloper preferences_dialog_raw_developer_from_combo (PreferencesDialog* self) {
+ RawDeveloper result = 0;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 2643 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PREFERENCES_DIALOG (self), 0);
+#line 2644 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->default_raw_developer_combo;
+#line 2644 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox));
+#line 2644 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp1_ == 0) {
+#line 2645 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = RAW_DEVELOPER_CAMERA;
+#line 2645 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 20329 "Dialogs.c"
+ }
+#line 2646 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = RAW_DEVELOPER_SHOTWELL;
+#line 2646 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 20335 "Dialogs.c"
+}
+
+
+static void preferences_dialog_set_raw_developer_combo (PreferencesDialog* self, RawDeveloper d) {
+ RawDeveloper _tmp0_ = 0;
+#line 2649 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = d;
+#line 2650 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp0_ == RAW_DEVELOPER_CAMERA) {
+#line 20347 "Dialogs.c"
+ GtkComboBoxText* _tmp1_ = NULL;
+#line 2651 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = self->priv->default_raw_developer_combo;
+#line 2651 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 20353 "Dialogs.c"
+ } else {
+ GtkComboBoxText* _tmp2_ = NULL;
+#line 2653 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->default_raw_developer_combo;
+#line 2653 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), 1);
+#line 20360 "Dialogs.c"
+ }
+}
+
+
+static void preferences_dialog_on_default_raw_developer_changed (PreferencesDialog* self) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ RawDeveloper _tmp2_ = 0;
+#line 2656 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 2657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 2657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = preferences_dialog_raw_developer_from_combo (self);
+#line 2657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_default_raw_developer (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_);
+#line 2657 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 20381 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_current_folder_changed (PreferencesDialog* self) {
+ GtkFileChooserButton* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 2660 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->library_dir_button;
+#line 2661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gtk_file_chooser_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 2661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->priv->lib_dir);
+#line 2661 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->lib_dir = _tmp1_;
+#line 20398 "Dialogs.c"
+}
+
+
+static void _preferences_dialog_on_current_folder_changed_gtk_file_chooser_current_folder_changed (GtkFileChooser* _sender, gpointer self) {
+#line 2669 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_on_current_folder_changed ((PreferencesDialog*) self);
+#line 20405 "Dialogs.c"
+}
+
+
+static gboolean preferences_dialog_map_event (PreferencesDialog* self) {
+ gboolean result = FALSE;
+ GtkFileChooserButton* _tmp0_ = NULL;
+#line 2664 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (IS_PREFERENCES_DIALOG (self), FALSE);
+#line 2669 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = self->priv->library_dir_button;
+#line 2669 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), "current-folder-changed", (GCallback) _preferences_dialog_on_current_folder_changed_gtk_file_chooser_current_folder_changed, self);
+#line 2670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = TRUE;
+#line 2670 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 20422 "Dialogs.c"
+}
+
+
+static void preferences_dialog_add_to_dir_formats (PreferencesDialog* self, const gchar* name, const gchar* pattern) {
+ PreferencesDialogPathFormat* pf = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ PreferencesDialogPathFormat* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GtkComboBoxText* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 2673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (name != NULL);
+#line 2674 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = name;
+#line 2674 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = pattern;
+#line 2674 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = preferences_dialog_path_format_new (_tmp0_, _tmp1_);
+#line 2674 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ pf = _tmp2_;
+#line 2675 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = self->priv->path_formats;
+#line 2675 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), pf);
+#line 2676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = self->priv->dir_pattern_combo;
+#line 2676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = name;
+#line 2676 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_combo_box_text_append_text (_tmp4_, _tmp5_);
+#line 2673 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _preferences_dialog_path_format_unref0 (pf);
+#line 20458 "Dialogs.c"
+}
+
+
+static void preferences_dialog_on_lowercase_toggled (PreferencesDialog* self) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ GtkCheckButton* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 2679 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (IS_PREFERENCES_DIALOG (self));
+#line 2680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 2680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = _tmp0_;
+#line 2680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = self->priv->lowercase;
+#line 2680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 2680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ configuration_facade_set_use_lowercase_filenames (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp3_);
+#line 2680 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp1_);
+#line 20481 "Dialogs.c"
+}
+
+
+static PreferencesDialogPathFormat* preferences_dialog_path_format_construct (GType object_type, const gchar* name, const gchar* pattern) {
+ PreferencesDialogPathFormat* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 2258 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 2258 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = (PreferencesDialogPathFormat*) g_type_create_instance (object_type);
+#line 2259 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = name;
+#line 2259 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 2259 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->name);
+#line 2259 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->name = _tmp1_;
+#line 2260 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = pattern;
+#line 2260 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 2260 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->pattern);
+#line 2260 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->pattern = _tmp3_;
+#line 2258 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return self;
+#line 20513 "Dialogs.c"
+}
+
+
+static PreferencesDialogPathFormat* preferences_dialog_path_format_new (const gchar* name, const gchar* pattern) {
+#line 2258 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return preferences_dialog_path_format_construct (PREFERENCES_DIALOG_TYPE_PATH_FORMAT, name, pattern);
+#line 20520 "Dialogs.c"
+}
+
+
+static void preferences_dialog_value_path_format_init (GValue* value) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20527 "Dialogs.c"
+}
+
+
+static void preferences_dialog_value_path_format_free_value (GValue* value) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (value->data[0].v_pointer) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_path_format_unref (value->data[0].v_pointer);
+#line 20536 "Dialogs.c"
+ }
+}
+
+
+static void preferences_dialog_value_path_format_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (src_value->data[0].v_pointer) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = preferences_dialog_path_format_ref (src_value->data[0].v_pointer);
+#line 20546 "Dialogs.c"
+ } else {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 20550 "Dialogs.c"
+ }
+}
+
+
+static gpointer preferences_dialog_value_path_format_peek_pointer (const GValue* value) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 20558 "Dialogs.c"
+}
+
+
+static gchar* preferences_dialog_value_path_format_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (collect_values[0].v_pointer) {
+#line 20565 "Dialogs.c"
+ PreferencesDialogPathFormat* object;
+ object = collect_values[0].v_pointer;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 20572 "Dialogs.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 20576 "Dialogs.c"
+ }
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = preferences_dialog_path_format_ref (object);
+#line 20580 "Dialogs.c"
+ } else {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20584 "Dialogs.c"
+ }
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 20588 "Dialogs.c"
+}
+
+
+static gchar* preferences_dialog_value_path_format_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PreferencesDialogPathFormat** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!object_p) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 20599 "Dialogs.c"
+ }
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!value->data[0].v_pointer) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = NULL;
+#line 20605 "Dialogs.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = value->data[0].v_pointer;
+#line 20609 "Dialogs.c"
+ } else {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = preferences_dialog_path_format_ref (value->data[0].v_pointer);
+#line 20613 "Dialogs.c"
+ }
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 20617 "Dialogs.c"
+}
+
+
+static GParamSpec* preferences_dialog_param_spec_path_format (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PreferencesDialogParamSpecPathFormat* spec;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PREFERENCES_DIALOG_TYPE_PATH_FORMAT), NULL);
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return G_PARAM_SPEC (spec);
+#line 20631 "Dialogs.c"
+}
+
+
+static gpointer preferences_dialog_value_get_path_format (const GValue* value) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PREFERENCES_DIALOG_TYPE_PATH_FORMAT), NULL);
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 20640 "Dialogs.c"
+}
+
+
+static void preferences_dialog_value_set_path_format (GValue* value, gpointer v_object) {
+ PreferencesDialogPathFormat* old;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PREFERENCES_DIALOG_TYPE_PATH_FORMAT));
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PREFERENCES_DIALOG_TYPE_PATH_FORMAT));
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_path_format_ref (value->data[0].v_pointer);
+#line 20660 "Dialogs.c"
+ } else {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20664 "Dialogs.c"
+ }
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_path_format_unref (old);
+#line 20670 "Dialogs.c"
+ }
+}
+
+
+static void preferences_dialog_value_take_path_format (GValue* value, gpointer v_object) {
+ PreferencesDialogPathFormat* old;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PREFERENCES_DIALOG_TYPE_PATH_FORMAT));
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PREFERENCES_DIALOG_TYPE_PATH_FORMAT));
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 20689 "Dialogs.c"
+ } else {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20693 "Dialogs.c"
+ }
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_path_format_unref (old);
+#line 20699 "Dialogs.c"
+ }
+}
+
+
+static void preferences_dialog_path_format_class_init (PreferencesDialogPathFormatClass * klass) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_path_format_parent_class = g_type_class_peek_parent (klass);
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((PreferencesDialogPathFormatClass *) klass)->finalize = preferences_dialog_path_format_finalize;
+#line 20709 "Dialogs.c"
+}
+
+
+static void preferences_dialog_path_format_instance_init (PreferencesDialogPathFormat * self) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->ref_count = 1;
+#line 20716 "Dialogs.c"
+}
+
+
+static void preferences_dialog_path_format_finalize (PreferencesDialogPathFormat* obj) {
+ PreferencesDialogPathFormat * self;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PREFERENCES_DIALOG_TYPE_PATH_FORMAT, PreferencesDialogPathFormat);
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_destroy (self);
+#line 2262 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->name);
+#line 2263 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->pattern);
+#line 20730 "Dialogs.c"
+}
+
+
+static GType preferences_dialog_path_format_get_type (void) {
+ static volatile gsize preferences_dialog_path_format_type_id__volatile = 0;
+ if (g_once_init_enter (&preferences_dialog_path_format_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { preferences_dialog_value_path_format_init, preferences_dialog_value_path_format_free_value, preferences_dialog_value_path_format_copy_value, preferences_dialog_value_path_format_peek_pointer, "p", preferences_dialog_value_path_format_collect_value, "p", preferences_dialog_value_path_format_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PreferencesDialogPathFormatClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) preferences_dialog_path_format_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PreferencesDialogPathFormat), 0, (GInstanceInitFunc) preferences_dialog_path_format_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType preferences_dialog_path_format_type_id;
+ preferences_dialog_path_format_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PreferencesDialogPathFormat", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&preferences_dialog_path_format_type_id__volatile, preferences_dialog_path_format_type_id);
+ }
+ return preferences_dialog_path_format_type_id__volatile;
+}
+
+
+static gpointer preferences_dialog_path_format_ref (gpointer instance) {
+ PreferencesDialogPathFormat* self;
+ self = instance;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return instance;
+#line 20755 "Dialogs.c"
+}
+
+
+static void preferences_dialog_path_format_unref (gpointer instance) {
+ PreferencesDialogPathFormat* self;
+ self = instance;
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ PREFERENCES_DIALOG_PATH_FORMAT_GET_CLASS (self)->finalize (self);
+#line 2257 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 20768 "Dialogs.c"
+ }
+}
+
+
+static void value_preferences_dialog_init (GValue* value) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20776 "Dialogs.c"
+}
+
+
+static void value_preferences_dialog_free_value (GValue* value) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (value->data[0].v_pointer) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_unref (value->data[0].v_pointer);
+#line 20785 "Dialogs.c"
+ }
+}
+
+
+static void value_preferences_dialog_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (src_value->data[0].v_pointer) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = preferences_dialog_ref (src_value->data[0].v_pointer);
+#line 20795 "Dialogs.c"
+ } else {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 20799 "Dialogs.c"
+ }
+}
+
+
+static gpointer value_preferences_dialog_peek_pointer (const GValue* value) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 20807 "Dialogs.c"
+}
+
+
+static gchar* value_preferences_dialog_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (collect_values[0].v_pointer) {
+#line 20814 "Dialogs.c"
+ PreferencesDialog* object;
+ object = collect_values[0].v_pointer;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 20821 "Dialogs.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 20825 "Dialogs.c"
+ }
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = preferences_dialog_ref (object);
+#line 20829 "Dialogs.c"
+ } else {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20833 "Dialogs.c"
+ }
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 20837 "Dialogs.c"
+}
+
+
+static gchar* value_preferences_dialog_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PreferencesDialog** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!object_p) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 20848 "Dialogs.c"
+ }
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!value->data[0].v_pointer) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = NULL;
+#line 20854 "Dialogs.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = value->data[0].v_pointer;
+#line 20858 "Dialogs.c"
+ } else {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ *object_p = preferences_dialog_ref (value->data[0].v_pointer);
+#line 20862 "Dialogs.c"
+ }
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return NULL;
+#line 20866 "Dialogs.c"
+}
+
+
+GParamSpec* param_spec_preferences_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPreferencesDialog* spec;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PREFERENCES_DIALOG), NULL);
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return G_PARAM_SPEC (spec);
+#line 20880 "Dialogs.c"
+}
+
+
+gpointer value_get_preferences_dialog (const GValue* value) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PREFERENCES_DIALOG), NULL);
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return value->data[0].v_pointer;
+#line 20889 "Dialogs.c"
+}
+
+
+void value_set_preferences_dialog (GValue* value, gpointer v_object) {
+ PreferencesDialog* old;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PREFERENCES_DIALOG));
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PREFERENCES_DIALOG));
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_ref (value->data[0].v_pointer);
+#line 20909 "Dialogs.c"
+ } else {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20913 "Dialogs.c"
+ }
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_unref (old);
+#line 20919 "Dialogs.c"
+ }
+}
+
+
+void value_take_preferences_dialog (GValue* value, gpointer v_object) {
+ PreferencesDialog* old;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PREFERENCES_DIALOG));
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ old = value->data[0].v_pointer;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (v_object) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PREFERENCES_DIALOG));
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = v_object;
+#line 20938 "Dialogs.c"
+ } else {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ value->data[0].v_pointer = NULL;
+#line 20942 "Dialogs.c"
+ }
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (old) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_unref (old);
+#line 20948 "Dialogs.c"
+ }
+}
+
+
+static void preferences_dialog_class_init (PreferencesDialogClass * klass) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ preferences_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ ((PreferencesDialogClass *) klass)->finalize = preferences_dialog_finalize;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_class_add_private (klass, sizeof (PreferencesDialogPrivate));
+#line 20960 "Dialogs.c"
+}
+
+
+static void preferences_dialog_instance_init (PreferencesDialog * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GDateTime* _tmp1_ = NULL;
+ PluginsManifestWidgetMediator* _tmp2_ = NULL;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv = PREFERENCES_DIALOG_GET_PRIVATE (self);
+#line 2280 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->allow_closing = FALSE;
+#line 2281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->lib_dir = NULL;
+#line 2282 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = gee_array_list_new (PREFERENCES_DIALOG_TYPE_PATH_FORMAT, (GBoxedCopyFunc) preferences_dialog_path_format_ref, preferences_dialog_path_format_unref, NULL, NULL, NULL);
+#line 2282 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->path_formats = _tmp0_;
+#line 2283 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_date_time_new_local (2009, 3, 10, 18, 16, (gdouble) 11);
+#line 2283 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->example_date = _tmp1_;
+#line 2285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = plugins_manifest_widget_mediator_new ();
+#line 2285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->priv->plugins_mediator = _tmp2_;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self->ref_count = 1;
+#line 20988 "Dialogs.c"
+}
+
+
+static void preferences_dialog_finalize (PreferencesDialog* obj) {
+ PreferencesDialog * self;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PREFERENCES_DIALOG, PreferencesDialog);
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_signal_handlers_destroy (self);
+#line 2268 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 2269 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 2270 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->bg_color_adjustment);
+#line 2271 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->bg_color_slider);
+#line 2272 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->photo_editor_combo);
+#line 2273 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->raw_editor_combo);
+#line 2274 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->external_raw_apps);
+#line 2275 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->external_photo_apps);
+#line 2276 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->library_dir_button);
+#line 2277 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dir_pattern_combo);
+#line 2278 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dir_pattern_entry);
+#line 2279 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->dir_pattern_example);
+#line 2281 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (self->priv->lib_dir);
+#line 2282 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->path_formats);
+#line 2283 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_date_time_unref0 (self->priv->example_date);
+#line 2284 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->lowercase);
+#line 2285 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _plugins_manifest_widget_mediator_unref0 (self->priv->plugins_mediator);
+#line 2286 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (self->priv->default_raw_developer_combo);
+#line 21034 "Dialogs.c"
+}
+
+
+GType preferences_dialog_get_type (void) {
+ static volatile gsize preferences_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&preferences_dialog_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_preferences_dialog_init, value_preferences_dialog_free_value, value_preferences_dialog_copy_value, value_preferences_dialog_peek_pointer, "p", value_preferences_dialog_collect_value, "p", value_preferences_dialog_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PreferencesDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) preferences_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PreferencesDialog), 0, (GInstanceInitFunc) preferences_dialog_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType preferences_dialog_type_id;
+ preferences_dialog_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PreferencesDialog", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&preferences_dialog_type_id__volatile, preferences_dialog_type_id);
+ }
+ return preferences_dialog_type_id__volatile;
+}
+
+
+gpointer preferences_dialog_ref (gpointer instance) {
+ PreferencesDialog* self;
+ self = instance;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return instance;
+#line 21059 "Dialogs.c"
+}
+
+
+void preferences_dialog_unref (gpointer instance) {
+ PreferencesDialog* self;
+ self = instance;
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ PREFERENCES_DIALOG_GET_CLASS (self)->finalize (self);
+#line 2256 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 21072 "Dialogs.c"
+ }
+}
+
+
+GtkResponseType copy_files_dialog (void) {
+ GtkResponseType result = 0;
+ gchar* msg = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ GtkMessageDialog* _tmp4_ = NULL;
+ GtkMessageDialog* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkResponseType _result_ = 0;
+ gint _tmp9_ = 0;
+#line 2687 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _ ("Shotwell can copy the photos into your library folder or it can import" \
+" them without copying.");
+#line 2687 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 2687 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ msg = _tmp1_;
+#line 2689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 2689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 2689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = (GtkMessageDialog*) gtk_message_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_CANCEL, "%s", msg);
+#line 2689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp4_);
+#line 2689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _tmp4_;
+#line 2689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2689 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ dialog = _tmp5_;
+#line 2692 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = _ ("Co_py Photos");
+#line 2692 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp6_, (gint) GTK_RESPONSE_ACCEPT);
+#line 2693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _ ("_Import in Place");
+#line 2693 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog), _tmp7_, (gint) GTK_RESPONSE_REJECT);
+#line 2694 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = _ ("Import to Library");
+#line 2694 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_window_get_type (), GtkWindow), _tmp8_);
+#line 2696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_dialog_get_type (), GtkDialog));
+#line 2696 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = (GtkResponseType) _tmp9_;
+#line 2698 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (dialog, gtk_widget_get_type (), GtkWidget));
+#line 2700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result = _result_;
+#line 2700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (dialog);
+#line 2700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (msg);
+#line 2700 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 21138 "Dialogs.c"
+}
+
+
+void remove_photos_from_library (GeeCollection* photos) {
+ const gchar* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeCollection* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 2703 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (photos));
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = photos;
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = gee_collection_get_size (_tmp1_);
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = _tmp2_;
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp3_ == 1) {
+#line 21159 "Dialogs.c"
+ const gchar* _tmp4_ = NULL;
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = _ ("Removing Photo From Library");
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp4_;
+#line 21165 "Dialogs.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = _ ("Removing Photos From Library");
+#line 2705 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = _tmp5_;
+#line 21172 "Dialogs.c"
+ }
+#line 2704 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = photos;
+#line 2704 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = _ ("Remove From Library");
+#line 2704 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ remove_from_app (_tmp6_, _tmp7_, _tmp0_);
+#line 21180 "Dialogs.c"
+}
+
+
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop);
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return result;
+#line 21189 "Dialogs.c"
+}
+
+
+void remove_from_app (GeeCollection* sources, const gchar* dialog_title, const gchar* progress_dialog_text) {
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* videos = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ gchar* user_message = NULL;
+ gboolean _tmp8_ = FALSE;
+ GeeArrayList* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ GtkResponseType _result_ = 0;
+ AppWindow* _tmp42_ = NULL;
+ AppWindow* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ GeeCollection* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ GtkResponseType _tmp49_ = 0;
+ GtkResponseType _tmp50_ = 0;
+ gboolean _tmp51_ = FALSE;
+ GtkResponseType _tmp52_ = 0;
+ gboolean delete_backing = FALSE;
+ GtkResponseType _tmp54_ = 0;
+ AppWindow* _tmp55_ = NULL;
+ AppWindow* _tmp56_ = NULL;
+ ProgressDialog* progress = NULL;
+ ProgressMonitor monitor = NULL;
+ void* monitor_target = NULL;
+ GDestroyNotify monitor_target_destroy_notify = NULL;
+ GeeCollection* _tmp57_ = NULL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ GeeArrayList* not_removed_photos = NULL;
+ GeeArrayList* _tmp65_ = NULL;
+ GeeArrayList* not_removed_videos = NULL;
+ GeeArrayList* _tmp66_ = NULL;
+ LibraryPhotoSourceCollection* _tmp67_ = NULL;
+ GeeArrayList* _tmp68_ = NULL;
+ gboolean _tmp69_ = FALSE;
+ ProgressMonitor _tmp70_ = NULL;
+ void* _tmp70__target = NULL;
+ GeeArrayList* _tmp71_ = NULL;
+ VideoSourceCollection* _tmp72_ = NULL;
+ GeeArrayList* _tmp73_ = NULL;
+ gboolean _tmp74_ = FALSE;
+ ProgressMonitor _tmp75_ = NULL;
+ void* _tmp75__target = NULL;
+ GeeArrayList* _tmp76_ = NULL;
+ gint num_not_removed = 0;
+ GeeArrayList* _tmp77_ = NULL;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ GeeArrayList* _tmp80_ = NULL;
+ gint _tmp81_ = 0;
+ gint _tmp82_ = 0;
+ gboolean _tmp83_ = FALSE;
+ gboolean _tmp84_ = FALSE;
+ ProgressDialog* _tmp122_ = NULL;
+ AppWindow* _tmp124_ = NULL;
+ AppWindow* _tmp125_ = NULL;
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (dialog_title != NULL);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_return_if_fail (progress_dialog_text != NULL);
+#line 2710 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp0_ = sources;
+#line 2710 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 2710 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp2_ = _tmp1_;
+#line 2710 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp2_ == 0) {
+#line 2711 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 21276 "Dialogs.c"
+ }
+#line 2713 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp3_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2713 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ photos = _tmp3_;
+#line 2714 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp4_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2714 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ videos = _tmp4_;
+#line 2715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp5_ = sources;
+#line 2715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp6_ = photos;
+#line 2715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp7_ = videos;
+#line 2715 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ media_source_collection_filter_media (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2717 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ user_message = NULL;
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp9_ = photos;
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp10_ = gee_collection_get_is_empty (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp11_ = _tmp10_;
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp11_) {
+#line 21304 "Dialogs.c"
+ GeeArrayList* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp12_ = videos;
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp13_ = gee_collection_get_is_empty (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp14_ = _tmp13_;
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = !_tmp14_;
+#line 21316 "Dialogs.c"
+ } else {
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp8_ = FALSE;
+#line 21320 "Dialogs.c"
+ }
+#line 2718 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp8_) {
+#line 21324 "Dialogs.c"
+ GeeCollection* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ const gchar* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gchar* _tmp22_ = NULL;
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp15_ = sources;
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp16_ = gee_collection_get_size (_tmp15_);
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp17_ = _tmp16_;
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp18_ = ngettext ("This will remove the photo/video from your Shotwell library. Would yo" \
+"u also like to move the file to your desktop trash?\n" \
+"\n" \
+"This action cannot be undone.", "This will remove %d photos/videos from your Shotwell library. Would y" \
+"ou also like to move the files to your desktop trash?\n" \
+"\n" \
+"This action cannot be undone.", (gulong) _tmp17_);
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp19_ = sources;
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp20_ = gee_collection_get_size (_tmp19_);
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp21_ = _tmp20_;
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp22_ = g_strdup_printf (_tmp18_, _tmp21_);
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (user_message);
+#line 2719 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ user_message = _tmp22_;
+#line 21353 "Dialogs.c"
+ } else {
+ GeeArrayList* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+#line 2722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp23_ = videos;
+#line 2722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp24_ = gee_collection_get_is_empty (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp25_ = _tmp24_;
+#line 2722 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (!_tmp25_) {
+#line 21366 "Dialogs.c"
+ GeeCollection* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ const gchar* _tmp29_ = NULL;
+ GeeCollection* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gchar* _tmp33_ = NULL;
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp26_ = sources;
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp27_ = gee_collection_get_size (_tmp26_);
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp28_ = _tmp27_;
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp29_ = ngettext ("This will remove the video from your Shotwell library. Would you also" \
+" like to move the file to your desktop trash?\n" \
+"\n" \
+"This action cannot be undone.", "This will remove %d videos from your Shotwell library. Would you also" \
+" like to move the files to your desktop trash?\n" \
+"\n" \
+"This action cannot be undone.", (gulong) _tmp28_);
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp30_ = sources;
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp31_ = gee_collection_get_size (_tmp30_);
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp32_ = _tmp31_;
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp33_ = g_strdup_printf (_tmp29_, _tmp32_);
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (user_message);
+#line 2723 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ user_message = _tmp33_;
+#line 21395 "Dialogs.c"
+ } else {
+ GeeCollection* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ const gchar* _tmp37_ = NULL;
+ GeeCollection* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gchar* _tmp41_ = NULL;
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp34_ = sources;
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp35_ = gee_collection_get_size (_tmp34_);
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp36_ = _tmp35_;
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp37_ = ngettext ("This will remove the photo from your Shotwell library. Would you also" \
+" like to move the file to your desktop trash?\n" \
+"\n" \
+"This action cannot be undone.", "This will remove %d photos from your Shotwell library. Would you also" \
+" like to move the files to your desktop trash?\n" \
+"\n" \
+"This action cannot be undone.", (gulong) _tmp36_);
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp38_ = sources;
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp39_ = gee_collection_get_size (_tmp38_);
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp40_ = _tmp39_;
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp41_ = g_strdup_printf (_tmp37_, _tmp40_);
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (user_message);
+#line 2727 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ user_message = _tmp41_;
+#line 21425 "Dialogs.c"
+ }
+ }
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp42_ = app_window_get_instance ();
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp43_ = _tmp42_;
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp44_ = dialog_title;
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp45_ = user_message;
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp46_ = sources;
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp47_ = gee_collection_get_size (_tmp46_);
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp48_ = _tmp47_;
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp49_ = remove_from_library_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_window_get_type (), GtkWindow), _tmp44_, _tmp45_, _tmp48_);
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp50_ = _tmp49_;
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp43_);
+#line 2732 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _result_ = _tmp50_;
+#line 2734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp52_ = _result_;
+#line 2734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp52_ != GTK_RESPONSE_YES) {
+#line 21454 "Dialogs.c"
+ GtkResponseType _tmp53_ = 0;
+#line 2734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp53_ = _result_;
+#line 2734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = _tmp53_ != GTK_RESPONSE_NO;
+#line 21460 "Dialogs.c"
+ } else {
+#line 2734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp51_ = FALSE;
+#line 21464 "Dialogs.c"
+ }
+#line 2734 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp51_) {
+#line 2735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (user_message);
+#line 2735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (videos);
+#line 2735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (photos);
+#line 2735 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ return;
+#line 21476 "Dialogs.c"
+ }
+#line 2737 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp54_ = _result_;
+#line 2737 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ delete_backing = _tmp54_ == GTK_RESPONSE_YES;
+#line 2739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp55_ = app_window_get_instance ();
+#line 2739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp56_ = _tmp55_;
+#line 2739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_PAGE_WINDOW, PageWindow));
+#line 2739 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp56_);
+#line 2741 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress = NULL;
+#line 2742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor = NULL;
+#line 2742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target = NULL;
+#line 2742 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2743 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp57_ = sources;
+#line 2743 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp58_ = gee_collection_get_size (_tmp57_);
+#line 2743 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp59_ = _tmp58_;
+#line 2743 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp59_ >= 20) {
+#line 21506 "Dialogs.c"
+ AppWindow* _tmp60_ = NULL;
+ AppWindow* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ ProgressDialog* _tmp63_ = NULL;
+ ProgressDialog* _tmp64_ = NULL;
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp60_ = app_window_get_instance ();
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp61_ = _tmp60_;
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp62_ = progress_dialog_text;
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp63_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gtk_window_get_type (), GtkWindow), _tmp62_, NULL);
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ g_object_ref_sink (_tmp63_);
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (progress);
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress = _tmp63_;
+#line 2744 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp61_);
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp64_ = progress;
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor = NULL;
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target = NULL;
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor = _progress_dialog_monitor_progress_monitor;
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target = g_object_ref (_tmp64_);
+#line 2745 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target_destroy_notify = g_object_unref;
+#line 21544 "Dialogs.c"
+ }
+#line 2748 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp65_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2748 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ not_removed_photos = _tmp65_;
+#line 2749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp66_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2749 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ not_removed_videos = _tmp66_;
+#line 2752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp67_ = library_photo_global;
+#line 2752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp68_ = photos;
+#line 2752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp69_ = delete_backing;
+#line 2752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70_ = monitor;
+#line 2752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp70__target = monitor_target;
+#line 2752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp71_ = not_removed_photos;
+#line 2752 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ media_source_collection_remove_from_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, GEE_TYPE_COLLECTION, GeeCollection), _tmp69_, _tmp70_, _tmp70__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, GEE_TYPE_LIST, GeeList));
+#line 2753 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp72_ = video_global;
+#line 2753 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp73_ = videos;
+#line 2753 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp74_ = delete_backing;
+#line 2753 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75_ = monitor;
+#line 2753 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp75__target = monitor_target;
+#line 2753 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp76_ = not_removed_videos;
+#line 2753 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ media_source_collection_remove_from_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, GEE_TYPE_COLLECTION, GeeCollection), _tmp74_, _tmp75_, _tmp75__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, GEE_TYPE_LIST, GeeList));
+#line 2756 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp77_ = not_removed_photos;
+#line 2756 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp78_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2756 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp79_ = _tmp78_;
+#line 2756 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp80_ = not_removed_videos;
+#line 2756 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp81_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2756 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp82_ = _tmp81_;
+#line 2756 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ num_not_removed = _tmp79_ + _tmp82_;
+#line 2757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp84_ = delete_backing;
+#line 2757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp84_) {
+#line 21600 "Dialogs.c"
+ gint _tmp85_ = 0;
+#line 2757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp85_ = num_not_removed;
+#line 2757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp83_ = _tmp85_ > 0;
+#line 21606 "Dialogs.c"
+ } else {
+#line 2757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp83_ = FALSE;
+#line 21610 "Dialogs.c"
+ }
+#line 2757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp83_) {
+#line 21614 "Dialogs.c"
+ gchar* not_deleted_message = NULL;
+ gint _tmp86_ = 0;
+ const gchar* _tmp87_ = NULL;
+ gint _tmp88_ = 0;
+ gchar* _tmp89_ = NULL;
+ GtkResponseType result_delete = 0;
+ AppWindow* _tmp90_ = NULL;
+ AppWindow* _tmp91_ = NULL;
+ const gchar* _tmp92_ = NULL;
+ const gchar* _tmp93_ = NULL;
+ GtkResponseType _tmp94_ = 0;
+ GtkResponseType _tmp95_ = 0;
+ GtkResponseType _tmp96_ = 0;
+#line 2758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp86_ = num_not_removed;
+#line 2758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp87_ = ngettext ("The photo or video cannot be moved to your desktop trash. Delete this" \
+" file?", "%d photos/videos cannot be moved to your desktop trash. Delete these " \
+"files?", (gulong) _tmp86_);
+#line 2758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp88_ = num_not_removed;
+#line 2758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp89_ = g_strdup_printf (_tmp87_, _tmp88_);
+#line 2758 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ not_deleted_message = _tmp89_;
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp90_ = app_window_get_instance ();
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp91_ = _tmp90_;
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp92_ = dialog_title;
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp93_ = not_deleted_message;
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp94_ = remove_from_filesystem_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp91_, gtk_window_get_type (), GtkWindow), _tmp92_, _tmp93_);
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp95_ = _tmp94_;
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp91_);
+#line 2762 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ result_delete = _tmp95_;
+#line 2765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp96_ = result_delete;
+#line 2765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (GTK_RESPONSE_YES == _tmp96_) {
+#line 21658 "Dialogs.c"
+ GeeArrayList* not_deleted_photos = NULL;
+ GeeArrayList* _tmp97_ = NULL;
+ GeeArrayList* not_deleted_videos = NULL;
+ GeeArrayList* _tmp98_ = NULL;
+ LibraryPhotoSourceCollection* _tmp99_ = NULL;
+ GeeArrayList* _tmp100_ = NULL;
+ ProgressMonitor _tmp101_ = NULL;
+ void* _tmp101__target = NULL;
+ GeeArrayList* _tmp102_ = NULL;
+ VideoSourceCollection* _tmp103_ = NULL;
+ GeeArrayList* _tmp104_ = NULL;
+ ProgressMonitor _tmp105_ = NULL;
+ void* _tmp105__target = NULL;
+ GeeArrayList* _tmp106_ = NULL;
+ gint num_not_deleted = 0;
+ GeeArrayList* _tmp107_ = NULL;
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ GeeArrayList* _tmp110_ = NULL;
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+#line 2767 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp97_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2767 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ not_deleted_photos = _tmp97_;
+#line 2768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp98_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 2768 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ not_deleted_videos = _tmp98_;
+#line 2769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp99_ = library_photo_global;
+#line 2769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp100_ = not_removed_photos;
+#line 2769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp101_ = monitor;
+#line 2769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp101__target = monitor_target;
+#line 2769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp102_ = not_deleted_photos;
+#line 2769 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ media_source_collection_delete_backing_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, GEE_TYPE_COLLECTION, GeeCollection), _tmp101_, _tmp101__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp102_, GEE_TYPE_LIST, GeeList));
+#line 2770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp103_ = video_global;
+#line 2770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp104_ = not_removed_videos;
+#line 2770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp105_ = monitor;
+#line 2770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp105__target = monitor_target;
+#line 2770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp106_ = not_deleted_videos;
+#line 2770 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ media_source_collection_delete_backing_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp103_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp104_, GEE_TYPE_COLLECTION, GeeCollection), _tmp105_, _tmp105__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp106_, GEE_TYPE_LIST, GeeList));
+#line 2772 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp107_ = not_deleted_photos;
+#line 2772 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp108_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp107_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2772 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp109_ = _tmp108_;
+#line 2772 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp110_ = not_deleted_videos;
+#line 2772 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp111_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp110_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 2772 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp112_ = _tmp111_;
+#line 2772 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ num_not_deleted = _tmp109_ + _tmp112_;
+#line 2773 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp113_ = num_not_deleted;
+#line 2773 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp113_ > 0) {
+#line 21731 "Dialogs.c"
+ gchar* delete_failed_message = NULL;
+ gint _tmp114_ = 0;
+ const gchar* _tmp115_ = NULL;
+ gint _tmp116_ = 0;
+ gchar* _tmp117_ = NULL;
+ const gchar* _tmp118_ = NULL;
+ const gchar* _tmp119_ = NULL;
+ AppWindow* _tmp120_ = NULL;
+ AppWindow* _tmp121_ = NULL;
+#line 2775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp114_ = num_not_deleted;
+#line 2775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp115_ = ngettext ("The photo or video cannot be deleted.", "%d photos/videos cannot be deleted.", (gulong) _tmp114_);
+#line 2775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp116_ = num_not_deleted;
+#line 2775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp117_ = g_strdup_printf (_tmp115_, _tmp116_);
+#line 2775 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ delete_failed_message = _tmp117_;
+#line 2779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp118_ = dialog_title;
+#line 2779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp119_ = delete_failed_message;
+#line 2779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp120_ = app_window_get_instance ();
+#line 2779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp121_ = _tmp120_;
+#line 2779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ app_window_error_message_with_title (_tmp118_, _tmp119_, G_TYPE_CHECK_INSTANCE_CAST (_tmp121_, gtk_window_get_type (), GtkWindow), TRUE);
+#line 2779 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp121_);
+#line 2773 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (delete_failed_message);
+#line 21765 "Dialogs.c"
+ }
+#line 2765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (not_deleted_videos);
+#line 2765 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (not_deleted_photos);
+#line 21771 "Dialogs.c"
+ }
+#line 2757 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (not_deleted_message);
+#line 21775 "Dialogs.c"
+ }
+#line 2784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp122_ = progress;
+#line 2784 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ if (_tmp122_ != NULL) {
+#line 21781 "Dialogs.c"
+ ProgressDialog* _tmp123_ = NULL;
+#line 2785 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp123_ = progress;
+#line 2785 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ progress_dialog_close (_tmp123_);
+#line 21787 "Dialogs.c"
+ }
+#line 2787 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp124_ = app_window_get_instance ();
+#line 2787 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _tmp125_ = _tmp124_;
+#line 2787 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp125_, TYPE_PAGE_WINDOW, PageWindow));
+#line 2787 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (_tmp125_);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (not_removed_videos);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (not_removed_photos);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor = NULL;
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target = NULL;
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ monitor_target_destroy_notify = NULL;
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (progress);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_free0 (user_message);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (videos);
+#line 2708 "/home/jens/Source/shotwell/src/Dialogs.vala"
+ _g_object_unref0 (photos);
+#line 21817 "Dialogs.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/Dialogs.vala b/src/Dialogs.vala
index c208caf..f01e078 100644
--- a/src/Dialogs.vala
+++ b/src/Dialogs.vala
@@ -31,9 +31,10 @@ public bool confirm_delete_saved_search(SavedSearch search) {
public bool confirm_warn_developer_changed(int number) {
Gtk.MessageDialog dialog = new Gtk.MessageDialog.with_markup(AppWindow.get_instance(),
- Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.NONE, "%s",
- "<span weight=\"bold\" size=\"larger\">%s</span>".printf(ngettext("Switching developers will undo all changes you have made to this photo in Shotwell",
- "Switching developers will undo all changes you have made to these photos in Shotwell", number)));
+ Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.NONE,
+ "<span weight=\"bold\" size=\"larger\">%s</span>",
+ ngettext("Switching developers will undo all changes you have made to this photo in Shotwell",
+ "Switching developers will undo all changes you have made to these photos in Shotwell", number));
dialog.add_buttons(Resources.CANCEL_LABEL, Gtk.ResponseType.CANCEL);
dialog.add_buttons(_("_Switch Developer"), Gtk.ResponseType.YES);
@@ -1113,7 +1114,7 @@ public abstract class SetBackgroundDialog {
public class SetBackgroundPhotoDialog : SetBackgroundDialog {
public SetBackgroundPhotoDialog() {
- Gtk.Builder builder = AppWindow.create_builder("set_background_dialog.glade", this);
+ Gtk.Builder builder = AppWindow.create_builder("set_background_dialog.ui", this);
base(builder);
}
@@ -1133,7 +1134,7 @@ public class SetBackgroundSlideshowDialog : SetBackgroundDialog {
private int delay_value = 0;
public SetBackgroundSlideshowDialog() {
- Gtk.Builder builder = AppWindow.create_builder("set_background_slideshow_dialog.glade", this);
+ Gtk.Builder builder = AppWindow.create_builder("set_background_slideshow_dialog.ui", this);
base(builder);
delay_value_label = builder.get_object("delay_value_label") as Gtk.Label;
@@ -1329,7 +1330,7 @@ public class EventRenameDialog : TextEntryDialogMediator {
public class EditTitleDialog : TextEntryDialogMediator {
public EditTitleDialog(string? photo_title) {
// Dialog title
- base (_("Edit Title"),
+ base (C_("Dialog Title", "Edit Title"),
_("Title:"), photo_title);
}
@@ -1974,7 +1975,9 @@ public abstract class TagsDialog : TextEntryDialogMediator {
public class AddTagsDialog : TagsDialog {
public AddTagsDialog() {
- base (Resources.ADD_TAGS_TITLE, _("Tags (separated by commas):"));
+ var title = GLib.dpgettext2 (null, "Dialog Title",
+ Resources.ADD_TAGS_TITLE);
+ base (title, _("Tags (separated by commas):"));
}
public string[]? execute() {
@@ -2325,7 +2328,7 @@ public class PreferencesDialog {
pattern_help.set_markup("<a href=\"" + Resources.DIR_PATTERN_URI_SYSWIDE + "\">" + _("(Help)") + "</a>");
} else {
// We're being run from the build directory; we'll have to handle clicks to this
- // link manually ourselves, due to a limitation ghelp: URIs.
+ // link manually ourselves, due to a limitation of help: URIs.
pattern_help.set_markup("<a href=\"dummy:\">" + _("(Help)") + "</a>");
pattern_help.activate_link.connect(on_local_pattern_help);
}
@@ -2390,7 +2393,7 @@ public class PreferencesDialog {
// the help viewer and specify the full path to the subsection we want...
private bool on_local_pattern_help(string ignore) {
try {
- Resources.launch_help(AppWindow.get_instance().get_screen(), "?other-files");
+ Resources.launch_help(AppWindow.get_instance().get_screen(), "other-files.page");
} catch (Error e) {
message("Unable to launch help: %s", e.message);
}
diff --git a/src/Dimensions.c b/src/Dimensions.c
new file mode 100644
index 0000000..57c20a2
--- /dev/null
+++ b/src/Dimensions.c
@@ -0,0 +1,4422 @@
+/* Dimensions.c generated by valac 0.32.1, the Vala compiler
+ * generated from Dimensions.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gtk/gtk.h>
+#include <cairo.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_SCALING (scaling_get_type ())
+typedef struct _Scaling Scaling;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_ZOOM_STATE (zoom_state_get_type ())
+typedef struct _ZoomState ZoomState;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _ZoomState {
+ Dimensions content_dimensions;
+ Dimensions viewport_dimensions;
+ gdouble zoom_factor;
+ gdouble interpolation_factor;
+ gdouble min_factor;
+ gdouble max_factor;
+ GdkPoint viewport_center;
+};
+
+
+
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+gchar* scale_constraint_to_string (ScaleConstraint self);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+void dimensions_for_allocation (GtkAllocation* allocation, Dimensions* result);
+void dimensions_for_widget_allocation (GtkWidget* widget, Dimensions* result);
+void dimensions_for_rectangle (GdkRectangle* rect, Dimensions* result);
+gboolean dimensions_has_area (Dimensions *self);
+void dimensions_floor (Dimensions *self, Dimensions* min, Dimensions* result);
+gchar* dimensions_to_string (Dimensions *self);
+gboolean dimensions_equals (Dimensions *self, Dimensions* dim);
+gboolean dimensions_approx_equals (Dimensions *self, Dimensions* dim, gint fudge);
+gboolean dimensions_approx_scaled (Dimensions *self, gint scale, gint fudge);
+gint dimensions_major_axis (Dimensions *self);
+gint dimensions_minor_axis (Dimensions *self);
+void dimensions_with_min (Dimensions *self, gint min_width, gint min_height, Dimensions* result);
+void dimensions_with_max (Dimensions *self, gint max_width, gint max_height, Dimensions* result);
+void dimensions_get_scaled (Dimensions *self, gint scale, gboolean scale_up, Dimensions* result);
+void dimensions_get_scaled_by_width (Dimensions *self, gint scale, Dimensions* result);
+void dimensions_get_scaled_by_height (Dimensions *self, gint scale, Dimensions* result);
+void dimensions_get_scale_ratios (Dimensions *self, Dimensions* scaled, gdouble* width_ratio, gdouble* height_ratio);
+gdouble dimensions_get_aspect_ratio (Dimensions *self);
+void dimensions_get_scaled_proportional (Dimensions *self, Dimensions* viewport, Dimensions* result);
+void dimensions_get_scaled_to_fill_viewport (Dimensions *self, Dimensions* viewport, Dimensions* result);
+void dimensions_get_scaled_rectangle (Dimensions *self, Dimensions* scaled, GdkRectangle* rect, GdkRectangle* result);
+void dimensions_get_scaled_similar (Dimensions *self, Dimensions* original, Dimensions* scaled, Dimensions* result);
+void dimensions_get_scaled_by_constraint (Dimensions *self, gint scale, ScaleConstraint constraint, Dimensions* result);
+GType scaling_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+#define SCALING_NO_SCALE 0
+static void scaling_init (Scaling *self, ScaleConstraint constraint, gint scale, Dimensions* viewport, gboolean scale_up);
+void scaling_for_original (Scaling* result);
+void scaling_for_screen (GtkWindow* window, gboolean scale_up, Scaling* result);
+void scaling_for_viewport (Dimensions* viewport, gboolean scale_up, Scaling* result);
+static void scaling_get_screen_dimensions (GtkWindow* window, Dimensions* result);
+void scaling_for_best_fit (gint pixels, gboolean scale_up, Scaling* result);
+void scaling_for_widget (GtkWidget* widget, gboolean scale_up, Scaling* result);
+void scaling_to_fill_viewport (Dimensions* viewport, Scaling* result);
+void scaling_to_fill_screen (GtkWindow* window, Scaling* result);
+void scaling_for_constraint (ScaleConstraint constraint, gint scale, gboolean scale_up, Scaling* result);
+static gint scaling_scale_to_pixels (Scaling *self);
+gboolean scaling_is_unscaled (Scaling *self);
+gboolean scaling_is_best_fit (Scaling *self, Dimensions* original, gint* pixels);
+gboolean scaling_is_best_fit_dimensions (Scaling *self, Dimensions* original, Dimensions* scaled);
+gboolean scaling_is_for_viewport (Scaling *self, Dimensions* original, Dimensions* scaled);
+gboolean scaling_is_fill_viewport (Scaling *self, Dimensions* original, Dimensions* scaled);
+void scaling_get_scaled_dimensions (Scaling *self, Dimensions* original, Dimensions* result);
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up);
+GdkPixbuf* scale_pixbuf (GdkPixbuf* pixbuf, gint scale, GdkInterpType interp, gboolean scale_up);
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
+gchar* scaling_to_string (Scaling *self);
+gboolean scaling_equals (Scaling *self, Scaling* scaling);
+GType zoom_state_get_type (void) G_GNUC_CONST;
+ZoomState* zoom_state_dup (const ZoomState* self);
+void zoom_state_free (ZoomState* self);
+void zoom_state_init (ZoomState *self, Dimensions* content_dimensions, Dimensions* viewport_dimensions, gdouble slider_val, GdkPoint* viewport_center);
+static void zoom_state_compute_zoom_factors (ZoomState *self);
+static void zoom_state_center_viewport (ZoomState *self);
+static void zoom_state_clamp_viewport_center (ZoomState *self);
+void zoom_state_init_rescale (ZoomState *self, ZoomState* existing, gdouble new_slider_val);
+void zoom_state_init_rescale_to_isomorphic (ZoomState *self, ZoomState* existing);
+void zoom_state_init_pan (ZoomState *self, ZoomState* existing, GdkPoint* new_viewport_center);
+gint zoom_state_get_zoomed_width (ZoomState *self);
+gint zoom_state_get_zoomed_height (ZoomState *self);
+gdouble zoom_state_get_interpolation_factor (ZoomState *self);
+void zoom_state_get_viewing_rectangle_wrt_content (ZoomState *self, GdkRectangle* result);
+void zoom_state_get_viewing_rectangle_wrt_screen (ZoomState *self, GdkRectangle* result);
+void zoom_state_get_viewing_rectangle_projection (ZoomState *self, GdkPixbuf* for_pixbuf, GdkRectangle* result);
+gdouble zoom_state_get_zoom_factor (ZoomState *self);
+void zoom_state_get_viewport_center (ZoomState *self, GdkPoint* result);
+gchar* zoom_state_to_string (ZoomState *self);
+gboolean zoom_state_is_min (ZoomState *self);
+gboolean zoom_state_is_default (ZoomState *self);
+gboolean zoom_state_is_isomorphic (ZoomState *self);
+gboolean zoom_state_is_max (ZoomState *self);
+gboolean zoom_state_equals (ZoomState *self, ZoomState* other);
+
+
+gchar* scale_constraint_to_string (ScaleConstraint self) {
+ gchar* result = NULL;
+#line 15 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ switch (self) {
+#line 15 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_ORIGINAL:
+#line 161 "Dimensions.c"
+ {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _ ("Original size");
+#line 17 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 17 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 173 "Dimensions.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_DIMENSIONS:
+#line 177 "Dimensions.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = _ ("Width or height");
+#line 20 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 20 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp3_;
+#line 20 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 189 "Dimensions.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_WIDTH:
+#line 193 "Dimensions.c"
+ {
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _ ("Width");
+#line 23 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 23 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp5_;
+#line 23 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 205 "Dimensions.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_HEIGHT:
+#line 209 "Dimensions.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _ ("Height");
+#line 26 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 26 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp7_;
+#line 26 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 221 "Dimensions.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_FILL_VIEWPORT:
+#line 225 "Dimensions.c"
+ {
+ gchar* _tmp8_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = g_strdup ("Fill Viewport");
+#line 30 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp8_;
+#line 30 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 234 "Dimensions.c"
+ }
+ default:
+#line 15 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ break;
+#line 239 "Dimensions.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_warn_if_reached ();
+#line 35 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = NULL;
+#line 35 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 247 "Dimensions.c"
+}
+
+
+GType scale_constraint_get_type (void) {
+ static volatile gsize scale_constraint_type_id__volatile = 0;
+ if (g_once_init_enter (&scale_constraint_type_id__volatile)) {
+ static const GEnumValue values[] = {{SCALE_CONSTRAINT_ORIGINAL, "SCALE_CONSTRAINT_ORIGINAL", "original"}, {SCALE_CONSTRAINT_DIMENSIONS, "SCALE_CONSTRAINT_DIMENSIONS", "dimensions"}, {SCALE_CONSTRAINT_WIDTH, "SCALE_CONSTRAINT_WIDTH", "width"}, {SCALE_CONSTRAINT_HEIGHT, "SCALE_CONSTRAINT_HEIGHT", "height"}, {SCALE_CONSTRAINT_FILL_VIEWPORT, "SCALE_CONSTRAINT_FILL_VIEWPORT", "fill-viewport"}, {0, NULL, NULL}};
+ GType scale_constraint_type_id;
+ scale_constraint_type_id = g_enum_register_static ("ScaleConstraint", values);
+ g_once_init_leave (&scale_constraint_type_id__volatile, scale_constraint_type_id);
+ }
+ return scale_constraint_type_id__volatile;
+}
+
+
+void dimensions_init (Dimensions *self, gint width, gint height) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 43 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (self, 0, sizeof (Dimensions));
+#line 44 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = width;
+#line 44 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_ < 0) {
+#line 44 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = TRUE;
+#line 280 "Dimensions.c"
+ } else {
+ gint _tmp2_ = 0;
+#line 44 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = height;
+#line 44 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp2_ < 0;
+#line 287 "Dimensions.c"
+ }
+#line 44 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_) {
+#line 45 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_warning ("Dimensions.vala:45: Tried to construct a Dimensions object with negati" \
+"ve width or height - forcing sensible default values.");
+#line 293 "Dimensions.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = width;
+#line 47 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = width;
+#line 47 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = CLAMP (_tmp3_, 0, _tmp4_);
+#line 47 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).width = _tmp5_;
+#line 48 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = height;
+#line 48 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = height;
+#line 48 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = CLAMP (_tmp6_, 0, _tmp7_);
+#line 48 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).height = _tmp8_;
+#line 311 "Dimensions.c"
+}
+
+
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result) {
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+#line 51 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 52 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = pixbuf;
+#line 52 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = gdk_pixbuf_get_width (_tmp0_);
+#line 52 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = pixbuf;
+#line 52 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = gdk_pixbuf_get_height (_tmp2_);
+#line 52 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp4_, _tmp1_, _tmp3_);
+#line 52 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp4_;
+#line 52 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 337 "Dimensions.c"
+}
+
+
+void dimensions_for_allocation (GtkAllocation* allocation, Dimensions* result) {
+ GtkAllocation _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GtkAllocation _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+#line 55 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (allocation != NULL);
+#line 56 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *allocation;
+#line 56 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.width;
+#line 56 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *allocation;
+#line 56 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.height;
+#line 56 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp4_, _tmp1_, _tmp3_);
+#line 56 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp4_;
+#line 56 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 363 "Dimensions.c"
+}
+
+
+void dimensions_for_widget_allocation (GtkWidget* widget, Dimensions* result) {
+ GtkAllocation allocation = {0};
+ GtkWidget* _tmp0_ = NULL;
+ GtkAllocation _tmp1_ = {0};
+ GtkAllocation _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GtkAllocation _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+#line 59 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 61 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = widget;
+#line 61 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ gtk_widget_get_allocation (_tmp0_, &_tmp1_);
+#line 61 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ allocation = _tmp1_;
+#line 63 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = allocation;
+#line 63 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.width;
+#line 63 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = allocation;
+#line 63 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = _tmp4_.height;
+#line 63 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp6_, _tmp3_, _tmp5_);
+#line 63 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp6_;
+#line 63 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 398 "Dimensions.c"
+}
+
+
+void dimensions_for_rectangle (GdkRectangle* rect, Dimensions* result) {
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+#line 66 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (rect != NULL);
+#line 67 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *rect;
+#line 67 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.width;
+#line 67 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *rect;
+#line 67 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.height;
+#line 67 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp4_, _tmp1_, _tmp3_);
+#line 67 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp4_;
+#line 67 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 424 "Dimensions.c"
+}
+
+
+gboolean dimensions_has_area (Dimensions *self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 71 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).width;
+#line 71 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_ > 0) {
+#line 436 "Dimensions.c"
+ gint _tmp2_ = 0;
+#line 71 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).height;
+#line 71 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp2_ > 0;
+#line 442 "Dimensions.c"
+ } else {
+#line 71 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = FALSE;
+#line 446 "Dimensions.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 71 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 452 "Dimensions.c"
+}
+
+
+void dimensions_floor (Dimensions *self, Dimensions* min, Dimensions* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ Dimensions _tmp14_ = {0};
+#line 74 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (min != NULL);
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).width;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *min;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.width;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_ > _tmp3_) {
+#line 476 "Dimensions.c"
+ gint _tmp4_ = 0;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = (*self).width;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp4_;
+#line 482 "Dimensions.c"
+ } else {
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = *min;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_.width;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp6_;
+#line 492 "Dimensions.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = (*self).height;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = *min;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = _tmp9_.height;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp8_ > _tmp10_) {
+#line 502 "Dimensions.c"
+ gint _tmp11_ = 0;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = (*self).height;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = _tmp11_;
+#line 508 "Dimensions.c"
+ } else {
+ Dimensions _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = *min;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = _tmp12_.height;
+#line 76 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = _tmp13_;
+#line 518 "Dimensions.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp14_, _tmp0_, _tmp7_);
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp14_;
+#line 75 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 526 "Dimensions.c"
+}
+
+
+gchar* dimensions_to_string (Dimensions *self) {
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).width;
+#line 80 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).height;
+#line 80 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = g_strdup_printf ("%dx%d", _tmp0_, _tmp1_);
+#line 80 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp2_;
+#line 80 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 545 "Dimensions.c"
+}
+
+
+gboolean dimensions_equals (Dimensions *self, Dimensions* dim) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+#line 83 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (dim != NULL, FALSE);
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).width;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *dim;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.width;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_ == _tmp3_) {
+#line 565 "Dimensions.c"
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = (*self).height;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = *dim;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_.height;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp4_ == _tmp6_;
+#line 577 "Dimensions.c"
+ } else {
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = FALSE;
+#line 581 "Dimensions.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 84 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 587 "Dimensions.c"
+}
+
+
+gboolean dimensions_approx_equals (Dimensions *self, Dimensions* dim, gint fudge) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 88 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (dim != NULL, FALSE);
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).width;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *dim;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.width;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = abs (_tmp1_ - _tmp3_);
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = fudge;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp4_ <= _tmp5_) {
+#line 613 "Dimensions.c"
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = (*self).height;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = *dim;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = _tmp7_.height;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = abs (_tmp6_ - _tmp8_);
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = fudge;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp9_ <= _tmp10_;
+#line 631 "Dimensions.c"
+ } else {
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = FALSE;
+#line 635 "Dimensions.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 89 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 641 "Dimensions.c"
+}
+
+
+gboolean dimensions_approx_scaled (Dimensions *self, gint scale, gint fudge) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).width;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = scale;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = fudge;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_ <= (_tmp2_ + _tmp3_)) {
+#line 659 "Dimensions.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = (*self).height;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = scale;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = fudge;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp4_ <= (_tmp5_ + _tmp6_);
+#line 671 "Dimensions.c"
+ } else {
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = FALSE;
+#line 675 "Dimensions.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 93 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 681 "Dimensions.c"
+}
+
+
+gint dimensions_major_axis (Dimensions *self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 97 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).width;
+#line 97 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).height;
+#line 97 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = MAX (_tmp0_, _tmp1_);
+#line 97 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp2_;
+#line 97 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 700 "Dimensions.c"
+}
+
+
+gint dimensions_minor_axis (Dimensions *self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 101 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).width;
+#line 101 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).height;
+#line 101 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = MIN (_tmp0_, _tmp1_);
+#line 101 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp2_;
+#line 101 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 719 "Dimensions.c"
+}
+
+
+void dimensions_with_min (Dimensions *self, gint min_width, gint min_height, Dimensions* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).width;
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = min_width;
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = MAX (_tmp0_, _tmp1_);
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = (*self).height;
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = min_height;
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = MAX (_tmp3_, _tmp4_);
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp6_, _tmp2_, _tmp5_);
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp6_;
+#line 105 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 749 "Dimensions.c"
+}
+
+
+void dimensions_with_max (Dimensions *self, gint max_width, gint max_height, Dimensions* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).width;
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = max_width;
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = MIN (_tmp0_, _tmp1_);
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = (*self).height;
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = max_height;
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = MIN (_tmp3_, _tmp4_);
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp6_, _tmp2_, _tmp5_);
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp6_;
+#line 109 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 779 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled (Dimensions *self, gint scale, gboolean scale_up, Dimensions* result) {
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+#line 113 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = scale;
+#line 113 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp0_ > 0, "scale > 0");
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = (*self).width;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = scale;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp3_ == _tmp4_) {
+#line 805 "Dimensions.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = (*self).height;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = scale;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = _tmp5_ < _tmp6_;
+#line 814 "Dimensions.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = FALSE;
+#line 818 "Dimensions.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp2_) {
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = TRUE;
+#line 824 "Dimensions.c"
+ } else {
+ gboolean _tmp7_ = FALSE;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = (*self).height;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = scale;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp8_ == _tmp9_) {
+#line 835 "Dimensions.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = (*self).width;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = scale;
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = _tmp10_ < _tmp11_;
+#line 844 "Dimensions.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = FALSE;
+#line 848 "Dimensions.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp7_;
+#line 852 "Dimensions.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_) {
+#line 856 "Dimensions.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ Dimensions _tmp14_ = {0};
+#line 117 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = (*self).width;
+#line 117 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = (*self).height;
+#line 117 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp14_, _tmp12_, _tmp13_);
+#line 117 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp14_;
+#line 117 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 870 "Dimensions.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = scale_up;
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (!_tmp16_) {
+#line 876 "Dimensions.c"
+ gboolean _tmp17_ = FALSE;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = (*self).width;
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = scale;
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp18_ < _tmp19_) {
+#line 886 "Dimensions.c"
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = (*self).height;
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = scale;
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = _tmp20_ < _tmp21_;
+#line 895 "Dimensions.c"
+ } else {
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = FALSE;
+#line 899 "Dimensions.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = _tmp17_;
+#line 903 "Dimensions.c"
+ } else {
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = FALSE;
+#line 907 "Dimensions.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp15_) {
+#line 911 "Dimensions.c"
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ Dimensions _tmp24_ = {0};
+#line 121 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = (*self).width;
+#line 121 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = (*self).height;
+#line 121 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp24_, _tmp22_, _tmp23_);
+#line 121 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp24_;
+#line 121 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 925 "Dimensions.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp25_ = (*self).width;
+#line 123 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp26_ = scale;
+#line 123 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp27_ = (*self).height;
+#line 123 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp28_ = scale;
+#line 123 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if ((_tmp25_ - _tmp26_) > (_tmp27_ - _tmp28_)) {
+#line 937 "Dimensions.c"
+ gint _tmp29_ = 0;
+ Dimensions _tmp30_ = {0};
+#line 124 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp29_ = scale;
+#line 124 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_by_width (&(*self), _tmp29_, &_tmp30_);
+#line 124 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp30_;
+#line 124 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 948 "Dimensions.c"
+ } else {
+ gint _tmp31_ = 0;
+ Dimensions _tmp32_ = {0};
+#line 126 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp31_ = scale;
+#line 126 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_by_height (&(*self), _tmp31_, &_tmp32_);
+#line 126 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp32_;
+#line 126 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 960 "Dimensions.c"
+ }
+}
+
+
+void dimensions_get_scale_ratios (Dimensions *self, Dimensions* scaled, gdouble* width_ratio, gdouble* height_ratio) {
+ gdouble _vala_width_ratio = 0.0;
+ gdouble _vala_height_ratio = 0.0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 129 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (scaled != NULL);
+#line 130 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *scaled;
+#line 130 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.width;
+#line 130 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).width;
+#line 130 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_width_ratio = ((gdouble) _tmp1_) / ((gdouble) _tmp2_);
+#line 131 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = *scaled;
+#line 131 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_.height;
+#line 131 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = (*self).height;
+#line 131 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_height_ratio = ((gdouble) _tmp4_) / ((gdouble) _tmp5_);
+#line 129 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (width_ratio) {
+#line 129 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *width_ratio = _vala_width_ratio;
+#line 996 "Dimensions.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (height_ratio) {
+#line 129 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *height_ratio = _vala_height_ratio;
+#line 1002 "Dimensions.c"
+ }
+}
+
+
+gdouble dimensions_get_aspect_ratio (Dimensions *self) {
+ gdouble result = 0.0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 135 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).width;
+#line 135 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).height;
+#line 135 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = ((gdouble) _tmp0_) / _tmp1_;
+#line 135 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 1019 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled_proportional (Dimensions *self, Dimensions* viewport, Dimensions* result) {
+ gdouble width_ratio = 0.0;
+ gdouble height_ratio = 0.0;
+ Dimensions _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble scaled_width = 0.0;
+ gdouble scaled_height = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ Dimensions scaled = {0};
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ gdouble _tmp15_ = 0.0;
+ gdouble _tmp16_ = 0.0;
+ Dimensions _tmp17_ = {0};
+ Dimensions _tmp18_ = {0};
+ Dimensions _tmp19_ = {0};
+ Dimensions _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ Dimensions _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ Dimensions _tmp26_ = {0};
+ gint _tmp27_ = 0;
+#line 138 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (viewport != NULL);
+#line 140 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *viewport;
+#line 140 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scale_ratios (&(*self), &_tmp0_, &_tmp1_, &_tmp2_);
+#line 140 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ width_ratio = _tmp1_;
+#line 140 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ height_ratio = _tmp2_;
+#line 143 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = width_ratio;
+#line 143 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = height_ratio;
+#line 143 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp3_ < _tmp4_) {
+#line 1065 "Dimensions.c"
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gdouble _tmp8_ = 0.0;
+#line 144 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = *viewport;
+#line 144 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_.width;
+#line 144 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_width = (gdouble) _tmp6_;
+#line 145 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = (*self).height;
+#line 145 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = width_ratio;
+#line 145 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_height = ((gdouble) _tmp7_) * _tmp8_;
+#line 1082 "Dimensions.c"
+ } else {
+ gint _tmp9_ = 0;
+ gdouble _tmp10_ = 0.0;
+ Dimensions _tmp11_ = {0};
+ gint _tmp12_ = 0;
+#line 147 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = (*self).width;
+#line 147 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = height_ratio;
+#line 147 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_width = ((gdouble) _tmp9_) * _tmp10_;
+#line 148 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = *viewport;
+#line 148 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = _tmp11_.height;
+#line 148 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_height = (gdouble) _tmp12_;
+#line 1100 "Dimensions.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = scaled_width;
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = round (_tmp13_);
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = scaled_height;
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = round (_tmp15_);
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp17_, (gint) _tmp14_, (gint) _tmp16_);
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp18_, 1, 1);
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_floor (&_tmp17_, &_tmp18_, &_tmp19_);
+#line 151 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled = _tmp19_;
+#line 153 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = scaled;
+#line 153 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = _tmp20_.height;
+#line 153 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = *viewport;
+#line 153 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = _tmp22_.height;
+#line 153 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp21_ <= _tmp23_, "scaled.height <= viewport.height");
+#line 154 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = scaled;
+#line 154 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp25_ = _tmp24_.width;
+#line 154 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp26_ = *viewport;
+#line 154 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp27_ = _tmp26_.width;
+#line 154 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp25_ <= _tmp27_, "scaled.width <= viewport.width");
+#line 156 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = scaled;
+#line 156 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1142 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled_to_fill_viewport (Dimensions *self, Dimensions* viewport, Dimensions* result) {
+ gdouble width_ratio = 0.0;
+ gdouble height_ratio = 0.0;
+ Dimensions _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble scaled_width = 0.0;
+ gdouble scaled_height = 0.0;
+ gboolean _tmp3_ = FALSE;
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gdouble _tmp32_ = 0.0;
+ gdouble _tmp33_ = 0.0;
+ gdouble _tmp34_ = 0.0;
+ gdouble _tmp35_ = 0.0;
+ Dimensions _tmp36_ = {0};
+ Dimensions _tmp37_ = {0};
+ Dimensions _tmp38_ = {0};
+#line 159 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (viewport != NULL);
+#line 161 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *viewport;
+#line 161 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scale_ratios (&(*self), &_tmp0_, &_tmp1_, &_tmp2_);
+#line 161 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ width_ratio = _tmp1_;
+#line 161 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ height_ratio = _tmp2_;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = (*self).width;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = *viewport;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_.width;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp4_ < _tmp6_) {
+#line 1183 "Dimensions.c"
+ gint _tmp7_ = 0;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = (*self).height;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = *viewport;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = _tmp8_.height;
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp7_ >= _tmp9_;
+#line 1195 "Dimensions.c"
+ } else {
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = FALSE;
+#line 1199 "Dimensions.c"
+ }
+#line 164 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp3_) {
+#line 1203 "Dimensions.c"
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gdouble _tmp13_ = 0.0;
+#line 166 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = *viewport;
+#line 166 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = _tmp10_.width;
+#line 166 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_width = (gdouble) _tmp11_;
+#line 167 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = (*self).height;
+#line 167 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = width_ratio;
+#line 167 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_height = ((gdouble) _tmp12_) * _tmp13_;
+#line 1220 "Dimensions.c"
+ } else {
+ gboolean _tmp14_ = FALSE;
+ gint _tmp15_ = 0;
+ Dimensions _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = (*self).width;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = *viewport;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = _tmp16_.width;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp15_ >= _tmp17_) {
+#line 1234 "Dimensions.c"
+ gint _tmp18_ = 0;
+ Dimensions _tmp19_ = {0};
+ gint _tmp20_ = 0;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = (*self).height;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = *viewport;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = _tmp19_.height;
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = _tmp18_ < _tmp20_;
+#line 1246 "Dimensions.c"
+ } else {
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = FALSE;
+#line 1250 "Dimensions.c"
+ }
+#line 168 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp14_) {
+#line 1254 "Dimensions.c"
+ gint _tmp21_ = 0;
+ gdouble _tmp22_ = 0.0;
+ Dimensions _tmp23_ = {0};
+ gint _tmp24_ = 0;
+#line 170 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = (*self).width;
+#line 170 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = height_ratio;
+#line 170 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_width = ((gdouble) _tmp21_) * _tmp22_;
+#line 171 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = *viewport;
+#line 171 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = _tmp23_.height;
+#line 171 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_height = (gdouble) _tmp24_;
+#line 1271 "Dimensions.c"
+ } else {
+ gdouble ratio = 0.0;
+ gdouble _tmp25_ = 0.0;
+ gdouble _tmp26_ = 0.0;
+ gdouble _tmp27_ = 0.0;
+ gint _tmp28_ = 0;
+ gdouble _tmp29_ = 0.0;
+ gint _tmp30_ = 0;
+ gdouble _tmp31_ = 0.0;
+#line 174 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp25_ = width_ratio;
+#line 174 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp26_ = height_ratio;
+#line 174 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp27_ = MAX (_tmp25_, _tmp26_);
+#line 174 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ ratio = _tmp27_;
+#line 176 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp28_ = (*self).width;
+#line 176 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp29_ = ratio;
+#line 176 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_width = ((gdouble) _tmp28_) * _tmp29_;
+#line 177 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp30_ = (*self).height;
+#line 177 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp31_ = ratio;
+#line 177 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_height = ((gdouble) _tmp30_) * _tmp31_;
+#line 1301 "Dimensions.c"
+ }
+ }
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp32_ = scaled_width;
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp33_ = round (_tmp32_);
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp34_ = scaled_height;
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp35_ = round (_tmp34_);
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp36_, (gint) _tmp33_, (gint) _tmp35_);
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp37_, 1, 1);
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_floor (&_tmp36_, &_tmp37_, &_tmp38_);
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp38_;
+#line 180 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1322 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled_rectangle (Dimensions *self, Dimensions* scaled, GdkRectangle* rect, GdkRectangle* result) {
+ gdouble x_scale = 0.0;
+ gdouble y_scale = 0.0;
+ Dimensions _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ GdkRectangle scaled_rect = {0};
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gdouble _tmp17_ = 0.0;
+ gdouble _tmp18_ = 0.0;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ GdkRectangle _tmp21_ = {0};
+ gint _tmp22_ = 0;
+#line 183 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (scaled != NULL);
+#line 183 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (rect != NULL);
+#line 185 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *scaled;
+#line 185 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scale_ratios (&(*self), &_tmp0_, &_tmp1_, &_tmp2_);
+#line 185 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ x_scale = _tmp1_;
+#line 185 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ y_scale = _tmp2_;
+#line 187 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (&scaled_rect, 0, sizeof (GdkRectangle));
+#line 188 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = *rect;
+#line 188 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_.x;
+#line 188 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = x_scale;
+#line 188 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = round (((gdouble) _tmp4_) * _tmp5_);
+#line 188 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_rect.x = (gint) _tmp6_;
+#line 189 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = *rect;
+#line 189 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = _tmp7_.y;
+#line 189 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = y_scale;
+#line 189 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = round (((gdouble) _tmp8_) * _tmp9_);
+#line 189 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_rect.y = (gint) _tmp10_;
+#line 190 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = *rect;
+#line 190 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = _tmp11_.width;
+#line 190 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = x_scale;
+#line 190 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = round (((gdouble) _tmp12_) * _tmp13_);
+#line 190 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_rect.width = (gint) _tmp14_;
+#line 191 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = *rect;
+#line 191 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = _tmp15_.height;
+#line 191 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = y_scale;
+#line 191 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = round (((gdouble) _tmp16_) * _tmp17_);
+#line 191 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_rect.height = (gint) _tmp18_;
+#line 193 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = scaled_rect;
+#line 193 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = _tmp19_.width;
+#line 193 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp20_ <= 0) {
+#line 194 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_rect.width = 1;
+#line 1415 "Dimensions.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = scaled_rect;
+#line 196 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = _tmp21_.height;
+#line 196 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp22_ <= 0) {
+#line 197 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled_rect.height = 1;
+#line 1425 "Dimensions.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = scaled_rect;
+#line 199 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1431 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled_similar (Dimensions *self, Dimensions* original, Dimensions* scaled, Dimensions* result) {
+ gdouble x_scale = 0.0;
+ gdouble y_scale = 0.0;
+ Dimensions _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble scale = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gint _tmp4_ = 0;
+ gdouble _tmp5_ = 0.0;
+ gint _tmp6_ = 0;
+ gdouble _tmp7_ = 0.0;
+ Dimensions _tmp8_ = {0};
+ Dimensions _tmp9_ = {0};
+ Dimensions _tmp10_ = {0};
+#line 203 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (original != NULL);
+#line 203 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (scaled != NULL);
+#line 205 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *scaled;
+#line 205 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scale_ratios (original, &_tmp0_, &_tmp1_, &_tmp2_);
+#line 205 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ x_scale = _tmp1_;
+#line 205 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ y_scale = _tmp2_;
+#line 207 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = MIN (x_scale, y_scale);
+#line 207 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scale = _tmp3_;
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = (*self).width;
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = round (((gdouble) _tmp4_) * scale);
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = (*self).height;
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = round (((gdouble) _tmp6_) * scale);
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp8_, (gint) _tmp5_, (gint) _tmp7_);
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp9_, 1, 1);
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_floor (&_tmp8_, &_tmp9_, &_tmp10_);
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp10_;
+#line 209 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1484 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled_by_width (Dimensions *self, gint scale, Dimensions* result) {
+ gint _tmp0_ = 0;
+ gdouble ratio = 0.0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gdouble _tmp5_ = 0.0;
+ Dimensions _tmp6_ = {0};
+ Dimensions _tmp7_ = {0};
+ Dimensions _tmp8_ = {0};
+#line 214 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = scale;
+#line 214 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp0_ > 0, "scale > 0");
+#line 216 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = scale;
+#line 216 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).width;
+#line 216 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ ratio = ((gdouble) _tmp1_) / ((gdouble) _tmp2_);
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = scale;
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = (*self).height;
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = round (((gdouble) _tmp4_) * ratio);
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp6_, _tmp3_, (gint) _tmp5_);
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp7_, 1, 1);
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_floor (&_tmp6_, &_tmp7_, &_tmp8_);
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp8_;
+#line 218 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1525 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled_by_height (Dimensions *self, gint scale, Dimensions* result) {
+ gint _tmp0_ = 0;
+ gdouble ratio = 0.0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gdouble _tmp4_ = 0.0;
+ gint _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+ Dimensions _tmp7_ = {0};
+ Dimensions _tmp8_ = {0};
+#line 222 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = scale;
+#line 222 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp0_ > 0, "scale > 0");
+#line 224 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = scale;
+#line 224 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).height;
+#line 224 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ ratio = ((gdouble) _tmp1_) / ((gdouble) _tmp2_);
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = (*self).width;
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = round (((gdouble) _tmp3_) * ratio);
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = scale;
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp6_, (gint) _tmp4_, _tmp5_);
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp7_, 1, 1);
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_floor (&_tmp6_, &_tmp7_, &_tmp8_);
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp8_;
+#line 226 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1566 "Dimensions.c"
+}
+
+
+void dimensions_get_scaled_by_constraint (Dimensions *self, gint scale, ScaleConstraint constraint, Dimensions* result) {
+ ScaleConstraint _tmp0_ = 0;
+#line 230 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = constraint;
+#line 230 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ switch (_tmp0_) {
+#line 230 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_ORIGINAL:
+#line 1578 "Dimensions.c"
+ {
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ Dimensions _tmp3_ = {0};
+#line 232 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).width;
+#line 232 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).height;
+#line 232 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp3_, _tmp1_, _tmp2_);
+#line 232 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp3_;
+#line 232 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1593 "Dimensions.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_DIMENSIONS:
+#line 1597 "Dimensions.c"
+ {
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = (*self).width;
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = (*self).height;
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp5_ >= _tmp6_) {
+#line 1608 "Dimensions.c"
+ gint _tmp7_ = 0;
+ Dimensions _tmp8_ = {0};
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = scale;
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_by_width (&(*self), _tmp7_, &_tmp8_);
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp8_;
+#line 1617 "Dimensions.c"
+ } else {
+ gint _tmp9_ = 0;
+ Dimensions _tmp10_ = {0};
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = scale;
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_by_height (&(*self), _tmp9_, &_tmp10_);
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp10_;
+#line 1627 "Dimensions.c"
+ }
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp4_;
+#line 235 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1633 "Dimensions.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_WIDTH:
+#line 1637 "Dimensions.c"
+ {
+ gint _tmp11_ = 0;
+ Dimensions _tmp12_ = {0};
+#line 238 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = scale;
+#line 238 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_by_width (&(*self), _tmp11_, &_tmp12_);
+#line 238 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp12_;
+#line 238 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1649 "Dimensions.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_HEIGHT:
+#line 1653 "Dimensions.c"
+ {
+ gint _tmp13_ = 0;
+ Dimensions _tmp14_ = {0};
+#line 241 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = scale;
+#line 241 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_by_height (&(*self), _tmp13_, &_tmp14_);
+#line 241 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp14_;
+#line 241 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1665 "Dimensions.c"
+ }
+ default:
+ {
+ ScaleConstraint _tmp15_ = 0;
+#line 244 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = constraint;
+#line 244 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_error ("Dimensions.vala:244: Bad constraint: %d", (gint) _tmp15_);
+#line 1674 "Dimensions.c"
+ }
+ }
+}
+
+
+Dimensions* dimensions_dup (const Dimensions* self) {
+ Dimensions* dup;
+#line 39 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dup = g_new0 (Dimensions, 1);
+#line 39 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memcpy (dup, self, sizeof (Dimensions));
+#line 39 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return dup;
+#line 1688 "Dimensions.c"
+}
+
+
+void dimensions_free (Dimensions* self) {
+#line 39 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_free (self);
+#line 1695 "Dimensions.c"
+}
+
+
+GType dimensions_get_type (void) {
+ static volatile gsize dimensions_type_id__volatile = 0;
+ if (g_once_init_enter (&dimensions_type_id__volatile)) {
+ GType dimensions_type_id;
+ dimensions_type_id = g_boxed_type_register_static ("Dimensions", (GBoxedCopyFunc) dimensions_dup, (GBoxedFreeFunc) dimensions_free);
+ g_once_init_leave (&dimensions_type_id__volatile, dimensions_type_id);
+ }
+ return dimensions_type_id__volatile;
+}
+
+
+static void scaling_init (Scaling *self, ScaleConstraint constraint, gint scale, Dimensions* viewport, gboolean scale_up) {
+ ScaleConstraint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+#line 257 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (viewport != NULL);
+#line 257 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (self, 0, sizeof (Scaling));
+#line 258 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = constraint;
+#line 258 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).constraint = _tmp0_;
+#line 259 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = scale;
+#line 259 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).scale = _tmp1_;
+#line 260 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *viewport;
+#line 260 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport = _tmp2_;
+#line 261 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = scale_up;
+#line 261 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).scale_up = _tmp3_;
+#line 1735 "Dimensions.c"
+}
+
+
+void scaling_for_original (Scaling* result) {
+ Dimensions _tmp0_ = {0};
+ Scaling _tmp1_ = {0};
+#line 265 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 265 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_init (&_tmp1_, SCALE_CONSTRAINT_ORIGINAL, SCALING_NO_SCALE, &_tmp0_, FALSE);
+#line 265 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp1_;
+#line 265 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1750 "Dimensions.c"
+}
+
+
+void scaling_for_screen (GtkWindow* window, gboolean scale_up, Scaling* result) {
+ GtkWindow* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ Scaling _tmp3_ = {0};
+#line 268 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (GTK_IS_WINDOW (window));
+#line 269 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = window;
+#line 269 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_get_screen_dimensions (_tmp0_, &_tmp1_);
+#line 269 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = scale_up;
+#line 269 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_for_viewport (&_tmp1_, _tmp2_, &_tmp3_);
+#line 269 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp3_;
+#line 269 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1773 "Dimensions.c"
+}
+
+
+void scaling_for_best_fit (gint pixels, gboolean scale_up, Scaling* result) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+ Scaling _tmp4_ = {0};
+#line 273 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = pixels;
+#line 273 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp0_ > 0, "pixels > 0");
+#line 275 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = pixels;
+#line 275 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp2_, 0, 0);
+#line 275 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = scale_up;
+#line 275 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_init (&_tmp4_, SCALE_CONSTRAINT_DIMENSIONS, _tmp1_, &_tmp2_, _tmp3_);
+#line 275 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp4_;
+#line 275 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1799 "Dimensions.c"
+}
+
+
+void scaling_for_viewport (Dimensions* viewport, gboolean scale_up, Scaling* result) {
+ gboolean _tmp0_ = FALSE;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ Scaling _tmp3_ = {0};
+#line 278 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (viewport != NULL);
+#line 279 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = dimensions_has_area (viewport);
+#line 279 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp0_, "viewport.has_area()");
+#line 281 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = *viewport;
+#line 281 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = scale_up;
+#line 281 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_init (&_tmp3_, SCALE_CONSTRAINT_DIMENSIONS, SCALING_NO_SCALE, &_tmp1_, _tmp2_);
+#line 281 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp3_;
+#line 281 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1824 "Dimensions.c"
+}
+
+
+void scaling_for_widget (GtkWidget* widget, gboolean scale_up, Scaling* result) {
+ Dimensions viewport = {0};
+ GtkWidget* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Dimensions _tmp8_ = {0};
+ gboolean _tmp9_ = FALSE;
+ Scaling _tmp10_ = {0};
+#line 284 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 285 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = widget;
+#line 285 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_for_widget_allocation (_tmp0_, &_tmp1_);
+#line 285 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ viewport = _tmp1_;
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = viewport;
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_.width;
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp4_ <= 1) {
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = TRUE;
+#line 1854 "Dimensions.c"
+ } else {
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = viewport;
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_.height;
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = _tmp6_ <= 1;
+#line 1864 "Dimensions.c"
+ }
+#line 295 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp2_) {
+#line 1868 "Dimensions.c"
+ Scaling _tmp7_ = {0};
+#line 296 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_for_original (&_tmp7_);
+#line 296 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp7_;
+#line 296 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1876 "Dimensions.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = viewport;
+#line 298 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = scale_up;
+#line 298 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_init (&_tmp10_, SCALE_CONSTRAINT_DIMENSIONS, SCALING_NO_SCALE, &_tmp8_, _tmp9_);
+#line 298 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp10_;
+#line 298 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1888 "Dimensions.c"
+}
+
+
+void scaling_to_fill_viewport (Dimensions* viewport, Scaling* result) {
+ gboolean _tmp0_ = FALSE;
+ Dimensions _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ Dimensions _tmp6_ = {0};
+ Scaling _tmp7_ = {0};
+#line 301 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (viewport != NULL);
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = *viewport;
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = _tmp1_.width;
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp2_ <= 1) {
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = TRUE;
+#line 1908 "Dimensions.c"
+ } else {
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = *viewport;
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_.height;
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp4_ <= 1;
+#line 1918 "Dimensions.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_) {
+#line 1922 "Dimensions.c"
+ Scaling _tmp5_ = {0};
+#line 305 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_for_original (&_tmp5_);
+#line 305 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp5_;
+#line 305 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1930 "Dimensions.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = *viewport;
+#line 307 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_init (&_tmp7_, SCALE_CONSTRAINT_FILL_VIEWPORT, SCALING_NO_SCALE, &_tmp6_, TRUE);
+#line 307 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp7_;
+#line 307 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1940 "Dimensions.c"
+}
+
+
+void scaling_to_fill_screen (GtkWindow* window, Scaling* result) {
+ GtkWindow* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Scaling _tmp2_ = {0};
+#line 310 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (GTK_IS_WINDOW (window));
+#line 311 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = window;
+#line 311 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_get_screen_dimensions (_tmp0_, &_tmp1_);
+#line 311 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_to_fill_viewport (&_tmp1_, &_tmp2_);
+#line 311 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp2_;
+#line 311 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1960 "Dimensions.c"
+}
+
+
+void scaling_for_constraint (ScaleConstraint constraint, gint scale, gboolean scale_up, Scaling* result) {
+ ScaleConstraint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+ Scaling _tmp4_ = {0};
+#line 315 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = constraint;
+#line 315 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = scale;
+#line 315 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp2_, 0, 0);
+#line 315 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = scale_up;
+#line 315 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaling_init (&_tmp4_, _tmp0_, _tmp1_, &_tmp2_, _tmp3_);
+#line 315 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp4_;
+#line 315 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 1984 "Dimensions.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 319 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1991 "Dimensions.c"
+}
+
+
+static void scaling_get_screen_dimensions (GtkWindow* window, Dimensions* result) {
+ GdkScreen* screen = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GdkScreen* _tmp1_ = NULL;
+ GdkScreen* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+#line 318 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (GTK_IS_WINDOW (window));
+#line 319 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = window;
+#line 319 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = gtk_window_get_screen (_tmp0_);
+#line 319 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 319 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ screen = _tmp2_;
+#line 321 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = gdk_screen_get_width (screen);
+#line 321 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = gdk_screen_get_height (screen);
+#line 321 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_tmp5_, _tmp3_, _tmp4_);
+#line 321 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp5_;
+#line 321 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_object_unref0 (screen);
+#line 321 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 2025 "Dimensions.c"
+}
+
+
+static gint scaling_scale_to_pixels (Scaling *self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 325 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).scale;
+#line 325 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_ >= 0) {
+#line 2037 "Dimensions.c"
+ gint _tmp2_ = 0;
+#line 325 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).scale;
+#line 325 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp2_;
+#line 2043 "Dimensions.c"
+ } else {
+#line 325 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = 0;
+#line 2047 "Dimensions.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 325 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2053 "Dimensions.c"
+}
+
+
+gboolean scaling_is_unscaled (Scaling *self) {
+ gboolean result = FALSE;
+ ScaleConstraint _tmp0_ = 0;
+#line 329 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).constraint;
+#line 329 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_ == SCALE_CONSTRAINT_ORIGINAL;
+#line 329 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2066 "Dimensions.c"
+}
+
+
+gboolean scaling_is_best_fit (Scaling *self, Dimensions* original, gint* pixels) {
+ gint _vala_pixels = 0;
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ ScaleConstraint _tmp1_ = 0;
+#line 332 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (original != NULL, FALSE);
+#line 333 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_pixels = 0;
+#line 335 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).scale;
+#line 335 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_ == SCALING_NO_SCALE) {
+#line 336 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 336 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (pixels) {
+#line 336 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *pixels = _vala_pixels;
+#line 2089 "Dimensions.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2093 "Dimensions.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).constraint;
+#line 338 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ switch (_tmp1_) {
+#line 338 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_ORIGINAL:
+#line 338 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_FILL_VIEWPORT:
+#line 2103 "Dimensions.c"
+ {
+#line 341 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 341 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (pixels) {
+#line 341 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *pixels = _vala_pixels;
+#line 2111 "Dimensions.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2115 "Dimensions.c"
+ }
+ default:
+ {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 344 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = scaling_scale_to_pixels (&(*self));
+#line 344 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_pixels = _tmp2_;
+#line 345 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _vala_pixels;
+#line 345 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp3_ > 0, "pixels > 0");
+#line 347 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = TRUE;
+#line 347 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (pixels) {
+#line 347 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *pixels = _vala_pixels;
+#line 2135 "Dimensions.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2139 "Dimensions.c"
+ }
+ }
+#line 332 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (pixels) {
+#line 332 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *pixels = _vala_pixels;
+#line 2146 "Dimensions.c"
+ }
+}
+
+
+gboolean scaling_is_best_fit_dimensions (Scaling *self, Dimensions* original, Dimensions* scaled) {
+ Dimensions _vala_scaled = {0};
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ ScaleConstraint _tmp1_ = 0;
+#line 351 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (original != NULL, FALSE);
+#line 352 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_vala_scaled, 0, 0);
+#line 354 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).scale;
+#line 354 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_ == SCALING_NO_SCALE) {
+#line 355 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 355 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 355 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2170 "Dimensions.c"
+ }
+#line 355 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2174 "Dimensions.c"
+ }
+#line 357 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).constraint;
+#line 357 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ switch (_tmp1_) {
+#line 357 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_ORIGINAL:
+#line 357 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_FILL_VIEWPORT:
+#line 2184 "Dimensions.c"
+ {
+#line 360 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 360 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 360 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2192 "Dimensions.c"
+ }
+#line 360 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2196 "Dimensions.c"
+ }
+ default:
+ {
+ gint pixels = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ ScaleConstraint _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+#line 363 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = scaling_scale_to_pixels (&(*self));
+#line 363 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ pixels = _tmp2_;
+#line 364 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = pixels;
+#line 364 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp3_ > 0, "pixels > 0");
+#line 366 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = pixels;
+#line 366 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = (*self).constraint;
+#line 366 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_by_constraint (original, _tmp4_, _tmp5_, &_tmp6_);
+#line 366 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_scaled = _tmp6_;
+#line 368 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = TRUE;
+#line 368 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 368 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2228 "Dimensions.c"
+ }
+#line 368 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2232 "Dimensions.c"
+ }
+ }
+#line 351 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 351 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2239 "Dimensions.c"
+ }
+}
+
+
+gboolean scaling_is_for_viewport (Scaling *self, Dimensions* original, Dimensions* scaled) {
+ Dimensions _vala_scaled = {0};
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ ScaleConstraint _tmp1_ = 0;
+#line 372 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (original != NULL, FALSE);
+#line 373 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_vala_scaled, 0, 0);
+#line 375 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).scale;
+#line 375 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_ != SCALING_NO_SCALE) {
+#line 376 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 376 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 376 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2263 "Dimensions.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2267 "Dimensions.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).constraint;
+#line 378 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ switch (_tmp1_) {
+#line 378 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_ORIGINAL:
+#line 378 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ case SCALE_CONSTRAINT_FILL_VIEWPORT:
+#line 2277 "Dimensions.c"
+ {
+#line 381 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 381 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 381 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2285 "Dimensions.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2289 "Dimensions.c"
+ }
+ default:
+ {
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 384 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = dimensions_has_area (&(*self).viewport);
+#line 384 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp2_, "viewport.has_area()");
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = (*self).scale_up;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (!_tmp5_) {
+#line 2305 "Dimensions.c"
+ Dimensions _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = *original;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = _tmp6_.width;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = (*self).viewport;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = _tmp8_.width;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp7_ < _tmp9_;
+#line 2320 "Dimensions.c"
+ } else {
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = FALSE;
+#line 2324 "Dimensions.c"
+ }
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp4_) {
+#line 2328 "Dimensions.c"
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Dimensions _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = *original;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = _tmp10_.height;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = (*self).viewport;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = _tmp12_.height;
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp11_ < _tmp13_;
+#line 2343 "Dimensions.c"
+ } else {
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = FALSE;
+#line 2347 "Dimensions.c"
+ }
+#line 386 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp3_) {
+#line 2351 "Dimensions.c"
+ Dimensions _tmp14_ = {0};
+#line 387 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = *original;
+#line 387 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_scaled = _tmp14_;
+#line 2357 "Dimensions.c"
+ } else {
+ Dimensions _tmp15_ = {0};
+ Dimensions _tmp16_ = {0};
+#line 389 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = (*self).viewport;
+#line 389 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_proportional (original, &_tmp15_, &_tmp16_);
+#line 389 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_scaled = _tmp16_;
+#line 2367 "Dimensions.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = TRUE;
+#line 391 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 391 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2375 "Dimensions.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2379 "Dimensions.c"
+ }
+ }
+#line 372 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 372 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2386 "Dimensions.c"
+ }
+}
+
+
+gboolean scaling_is_fill_viewport (Scaling *self, Dimensions* original, Dimensions* scaled) {
+ Dimensions _vala_scaled = {0};
+ gboolean result = FALSE;
+ ScaleConstraint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+#line 395 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (original != NULL, FALSE);
+#line 396 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_init (&_vala_scaled, 0, 0);
+#line 398 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).constraint;
+#line 398 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_ != SCALE_CONSTRAINT_FILL_VIEWPORT) {
+#line 399 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 399 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 399 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2412 "Dimensions.c"
+ }
+#line 399 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2416 "Dimensions.c"
+ }
+#line 401 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = dimensions_has_area (&(*self).viewport);
+#line 401 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp1_, "viewport.has_area()");
+#line 402 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).viewport;
+#line 402 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scaled_to_fill_viewport (original, &_tmp2_, &_tmp3_);
+#line 402 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_scaled = _tmp3_;
+#line 404 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = TRUE;
+#line 404 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (scaled) {
+#line 404 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *scaled = _vala_scaled;
+#line 2434 "Dimensions.c"
+ }
+#line 404 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2438 "Dimensions.c"
+}
+
+
+void scaling_get_scaled_dimensions (Scaling *self, Dimensions* original, Dimensions* result) {
+ gboolean _tmp0_ = FALSE;
+ Dimensions scaled = {0};
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+ Dimensions _tmp5_ = {0};
+ Dimensions _tmp6_ = {0};
+ gboolean _tmp7_ = FALSE;
+ gboolean is_viewport = FALSE;
+ Dimensions _tmp8_ = {0};
+ Dimensions _tmp9_ = {0};
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+#line 407 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (original != NULL);
+#line 408 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = scaling_is_unscaled (&(*self));
+#line 408 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_) {
+#line 2462 "Dimensions.c"
+ Dimensions _tmp1_ = {0};
+#line 409 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = *original;
+#line 409 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp1_;
+#line 409 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 2470 "Dimensions.c"
+ }
+#line 412 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *original;
+#line 412 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = scaling_is_fill_viewport (&(*self), &_tmp2_, &_tmp3_);
+#line 412 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled = _tmp3_;
+#line 412 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp4_) {
+#line 413 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = scaled;
+#line 413 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 2484 "Dimensions.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = *original;
+#line 415 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = scaling_is_best_fit_dimensions (&(*self), &_tmp5_, &_tmp6_);
+#line 415 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled = _tmp6_;
+#line 415 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp7_) {
+#line 416 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = scaled;
+#line 416 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 2498 "Dimensions.c"
+ }
+#line 418 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = *original;
+#line 418 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = scaling_is_for_viewport (&(*self), &_tmp8_, &_tmp9_);
+#line 418 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled = _tmp9_;
+#line 418 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ is_viewport = _tmp10_;
+#line 419 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = is_viewport;
+#line 419 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp11_, "is_viewport");
+#line 421 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = scaled;
+#line 421 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 2516 "Dimensions.c"
+}
+
+
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up) {
+ GdkPixbuf* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ Dimensions pixbuf_dim = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+ gint pixels = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ Dimensions scaled = {0};
+ Dimensions _tmp13_ = {0};
+ Dimensions _tmp14_ = {0};
+ gboolean _tmp15_ = FALSE;
+ gboolean is_viewport = FALSE;
+ Dimensions _tmp20_ = {0};
+ Dimensions _tmp21_ = {0};
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ GdkPixbuf* _tmp24_ = NULL;
+ Dimensions _tmp25_ = {0};
+ GdkInterpType _tmp26_ = 0;
+ GdkPixbuf* _tmp27_ = NULL;
+#line 424 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 425 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = scaling_is_unscaled (&(*self));
+#line 425 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_) {
+#line 2549 "Dimensions.c"
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = pixbuf;
+#line 426 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 426 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp2_;
+#line 426 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2560 "Dimensions.c"
+ }
+#line 428 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = pixbuf;
+#line 428 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_for_pixbuf (_tmp3_, &_tmp4_);
+#line 428 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ pixbuf_dim = _tmp4_;
+#line 431 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = pixbuf_dim;
+#line 431 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = scaling_is_best_fit (&(*self), &_tmp5_, &_tmp6_);
+#line 431 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ pixels = _tmp6_;
+#line 431 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp7_) {
+#line 2576 "Dimensions.c"
+ GdkPixbuf* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ GdkInterpType _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = pixbuf;
+#line 432 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = pixels;
+#line 432 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = interp;
+#line 432 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = scale_up;
+#line 432 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = scale_pixbuf (_tmp8_, _tmp9_, _tmp10_, _tmp11_);
+#line 432 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp12_;
+#line 432 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2596 "Dimensions.c"
+ }
+#line 435 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = pixbuf_dim;
+#line 435 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = scaling_is_fill_viewport (&(*self), &_tmp13_, &_tmp14_);
+#line 435 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled = _tmp14_;
+#line 435 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp15_) {
+#line 2606 "Dimensions.c"
+ GdkPixbuf* _tmp16_ = NULL;
+ Dimensions _tmp17_ = {0};
+ GdkInterpType _tmp18_ = 0;
+ GdkPixbuf* _tmp19_ = NULL;
+#line 436 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = pixbuf;
+#line 436 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = scaled;
+#line 436 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = interp;
+#line 436 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = resize_pixbuf (_tmp16_, &_tmp17_, _tmp18_);
+#line 436 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp19_;
+#line 436 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2623 "Dimensions.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = pixbuf_dim;
+#line 438 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = scaling_is_for_viewport (&(*self), &_tmp20_, &_tmp21_);
+#line 438 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scaled = _tmp21_;
+#line 438 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ is_viewport = _tmp22_;
+#line 439 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = is_viewport;
+#line 439 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _vala_assert (_tmp23_, "is_viewport");
+#line 441 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = pixbuf;
+#line 441 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp25_ = scaled;
+#line 441 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp26_ = interp;
+#line 441 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp27_ = resize_pixbuf (_tmp24_, &_tmp25_, _tmp26_);
+#line 441 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp27_;
+#line 441 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2649 "Dimensions.c"
+}
+
+
+gchar* scaling_to_string (Scaling *self) {
+ gchar* result = NULL;
+ ScaleConstraint _tmp0_ = 0;
+#line 445 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).constraint;
+#line 445 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp0_ == SCALE_CONSTRAINT_ORIGINAL) {
+#line 2660 "Dimensions.c"
+ gchar* _tmp1_ = NULL;
+#line 446 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = g_strdup ("scaling: UNSCALED");
+#line 446 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp1_;
+#line 446 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2668 "Dimensions.c"
+ } else {
+ ScaleConstraint _tmp2_ = 0;
+#line 447 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).constraint;
+#line 447 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp2_ == SCALE_CONSTRAINT_FILL_VIEWPORT) {
+#line 2675 "Dimensions.c"
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = dimensions_to_string (&(*self).viewport);
+#line 448 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_;
+#line 448 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = g_strdup_printf ("scaling: fill viewport %s", _tmp4_);
+#line 448 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_;
+#line 448 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (_tmp4_);
+#line 448 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp6_;
+#line 448 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2694 "Dimensions.c"
+ } else {
+ gint _tmp7_ = 0;
+#line 449 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = (*self).scale;
+#line 449 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp7_ != SCALING_NO_SCALE) {
+#line 2701 "Dimensions.c"
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ ScaleConstraint _tmp10_ = 0;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 451 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = (*self).scale_up;
+#line 451 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp9_) {
+#line 451 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = "scaled up";
+#line 2716 "Dimensions.c"
+ } else {
+#line 451 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = "not scaled up";
+#line 2720 "Dimensions.c"
+ }
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = (*self).constraint;
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = scale_constraint_to_string (_tmp10_);
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = _tmp11_;
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = scaling_scale_to_pixels (&(*self));
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = g_strdup_printf ("scaling: best-fit (%s %d pixels %s)", _tmp12_, _tmp13_, _tmp8_);
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = _tmp14_;
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (_tmp12_);
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp15_;
+#line 450 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2740 "Dimensions.c"
+ } else {
+ const gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 454 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = (*self).scale_up;
+#line 454 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp17_) {
+#line 454 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = "scaled up";
+#line 2754 "Dimensions.c"
+ } else {
+#line 454 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = "not scaled up";
+#line 2758 "Dimensions.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = dimensions_to_string (&(*self).viewport);
+#line 453 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = _tmp18_;
+#line 453 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = g_strdup_printf ("scaling: viewport %s (%s)", _tmp19_, _tmp16_);
+#line 453 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = _tmp20_;
+#line 453 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (_tmp19_);
+#line 453 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp21_;
+#line 453 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2774 "Dimensions.c"
+ }
+ }
+ }
+}
+
+
+gboolean scaling_equals (Scaling *self, Scaling* scaling) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ ScaleConstraint _tmp2_ = 0;
+ Scaling _tmp3_ = {0};
+ ScaleConstraint _tmp4_ = 0;
+#line 457 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).constraint;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = *scaling;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_.constraint;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp2_ == _tmp4_) {
+#line 2798 "Dimensions.c"
+ gint _tmp5_ = 0;
+ Scaling _tmp6_ = {0};
+ gint _tmp7_ = 0;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = (*self).scale;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = *scaling;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = _tmp6_.scale;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp5_ == _tmp7_;
+#line 2810 "Dimensions.c"
+ } else {
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = FALSE;
+#line 2814 "Dimensions.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_) {
+#line 2818 "Dimensions.c"
+ Scaling _tmp8_ = {0};
+ Dimensions _tmp9_ = {0};
+ gboolean _tmp10_ = FALSE;
+#line 459 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = *scaling;
+#line 459 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = _tmp8_.viewport;
+#line 459 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = dimensions_equals (&(*self).viewport, &_tmp9_);
+#line 459 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = _tmp10_;
+#line 2830 "Dimensions.c"
+ } else {
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = FALSE;
+#line 2834 "Dimensions.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 458 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 2840 "Dimensions.c"
+}
+
+
+Scaling* scaling_dup (const Scaling* self) {
+ Scaling* dup;
+#line 249 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dup = g_new0 (Scaling, 1);
+#line 249 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memcpy (dup, self, sizeof (Scaling));
+#line 249 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return dup;
+#line 2852 "Dimensions.c"
+}
+
+
+void scaling_free (Scaling* self) {
+#line 249 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_free (self);
+#line 2859 "Dimensions.c"
+}
+
+
+GType scaling_get_type (void) {
+ static volatile gsize scaling_type_id__volatile = 0;
+ if (g_once_init_enter (&scaling_type_id__volatile)) {
+ GType scaling_type_id;
+ scaling_type_id = g_boxed_type_register_static ("Scaling", (GBoxedCopyFunc) scaling_dup, (GBoxedFreeFunc) scaling_free);
+ g_once_init_leave (&scaling_type_id__volatile, scaling_type_id);
+ }
+ return scaling_type_id__volatile;
+}
+
+
+void zoom_state_init (ZoomState *self, Dimensions* content_dimensions, Dimensions* viewport_dimensions, gdouble slider_val, GdkPoint* viewport_center) {
+ Dimensions _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ gdouble _tmp2_ = 0.0;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ GdkPoint* _tmp5_ = NULL;
+#line 472 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (content_dimensions != NULL);
+#line 472 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (viewport_dimensions != NULL);
+#line 472 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (self, 0, sizeof (ZoomState));
+#line 474 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *content_dimensions;
+#line 474 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).content_dimensions = _tmp0_;
+#line 475 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = *viewport_dimensions;
+#line 475 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_dimensions = _tmp1_;
+#line 476 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = slider_val;
+#line 476 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).interpolation_factor = _tmp2_;
+#line 478 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_compute_zoom_factors (&(*self));
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = viewport_center;
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp5_ == NULL) {
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = TRUE;
+#line 2907 "Dimensions.c"
+ } else {
+ gboolean _tmp6_ = FALSE;
+ GdkPoint* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = viewport_center;
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = (*_tmp7_).x;
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp8_ == 0) {
+#line 2918 "Dimensions.c"
+ GdkPoint* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = viewport_center;
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = (*_tmp9_).y;
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp10_ == 0;
+#line 2927 "Dimensions.c"
+ } else {
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = FALSE;
+#line 2931 "Dimensions.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp6_;
+#line 2935 "Dimensions.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp4_) {
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = TRUE;
+#line 2941 "Dimensions.c"
+ } else {
+ gdouble _tmp11_ = 0.0;
+#line 481 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = slider_val;
+#line 481 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp11_ == 0.0;
+#line 2948 "Dimensions.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp3_) {
+#line 482 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_center_viewport (&(*self));
+#line 2954 "Dimensions.c"
+ } else {
+ GdkPoint* _tmp12_ = NULL;
+#line 484 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = viewport_center;
+#line 484 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center = *_tmp12_;
+#line 485 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_clamp_viewport_center (&(*self));
+#line 2963 "Dimensions.c"
+ }
+}
+
+
+void zoom_state_init_rescale (ZoomState *self, ZoomState* existing, gdouble new_slider_val) {
+ ZoomState _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ ZoomState _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+#line 489 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (existing != NULL);
+#line 489 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (self, 0, sizeof (ZoomState));
+#line 490 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *existing;
+#line 490 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.content_dimensions;
+#line 490 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).content_dimensions = _tmp1_;
+#line 491 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *existing;
+#line 491 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.viewport_dimensions;
+#line 491 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_dimensions = _tmp3_;
+#line 492 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = new_slider_val;
+#line 492 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).interpolation_factor = _tmp4_;
+#line 494 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_compute_zoom_factors (&(*self));
+#line 496 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = new_slider_val;
+#line 496 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp5_ == 0.0) {
+#line 497 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_center_viewport (&(*self));
+#line 3003 "Dimensions.c"
+ } else {
+ gdouble _tmp6_ = 0.0;
+ ZoomState _tmp7_ = {0};
+ GdkPoint _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ ZoomState _tmp10_ = {0};
+ gdouble _tmp11_ = 0.0;
+ gdouble _tmp12_ = 0.0;
+ ZoomState _tmp13_ = {0};
+ GdkPoint _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ ZoomState _tmp16_ = {0};
+ gdouble _tmp17_ = 0.0;
+#line 499 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = (*self).zoom_factor;
+#line 499 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = *existing;
+#line 499 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = _tmp7_.viewport_center;
+#line 499 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = _tmp8_.x;
+#line 499 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = *existing;
+#line 499 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = _tmp10_.zoom_factor;
+#line 499 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.x = (gint) (_tmp6_ * (_tmp9_ / _tmp11_));
+#line 501 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = (*self).zoom_factor;
+#line 501 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = *existing;
+#line 501 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = _tmp13_.viewport_center;
+#line 501 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = _tmp14_.y;
+#line 501 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = *existing;
+#line 501 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = _tmp16_.zoom_factor;
+#line 501 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.y = (gint) (_tmp12_ * (_tmp15_ / _tmp17_));
+#line 503 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_clamp_viewport_center (&(*self));
+#line 3047 "Dimensions.c"
+ }
+}
+
+
+void zoom_state_init_rescale_to_isomorphic (ZoomState *self, ZoomState* existing) {
+ ZoomState _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ ZoomState _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ ZoomState _tmp4_ = {0};
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ ZoomState _tmp7_ = {0};
+ gdouble _tmp8_ = 0.0;
+ ZoomState _tmp9_ = {0};
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ gdouble _tmp12_ = 0.0;
+#line 507 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (existing != NULL);
+#line 507 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (self, 0, sizeof (ZoomState));
+#line 508 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *existing;
+#line 508 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.content_dimensions;
+#line 508 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).content_dimensions = _tmp1_;
+#line 509 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *existing;
+#line 509 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.viewport_dimensions;
+#line 509 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_dimensions = _tmp3_;
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = *existing;
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = _tmp4_.min_factor;
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = log (1.0 / _tmp5_);
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = *existing;
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = _tmp7_.max_factor;
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = *existing;
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = _tmp9_.min_factor;
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = log (_tmp8_ / _tmp10_);
+#line 510 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).interpolation_factor = _tmp6_ / _tmp11_;
+#line 513 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_compute_zoom_factors (&(*self));
+#line 515 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = (*self).interpolation_factor;
+#line 515 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp12_ == 0.0) {
+#line 516 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_center_viewport (&(*self));
+#line 3108 "Dimensions.c"
+ } else {
+ gdouble _tmp13_ = 0.0;
+ ZoomState _tmp14_ = {0};
+ GdkPoint _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ ZoomState _tmp17_ = {0};
+ gdouble _tmp18_ = 0.0;
+ gdouble _tmp19_ = 0.0;
+ ZoomState _tmp20_ = {0};
+ GdkPoint _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ ZoomState _tmp23_ = {0};
+ gdouble _tmp24_ = 0.0;
+#line 518 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = (*self).zoom_factor;
+#line 518 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = *existing;
+#line 518 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = _tmp14_.viewport_center;
+#line 518 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = _tmp15_.x;
+#line 518 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = *existing;
+#line 518 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = _tmp17_.zoom_factor;
+#line 518 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.x = (gint) (_tmp13_ * (_tmp16_ / _tmp18_));
+#line 520 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = (*self).zoom_factor;
+#line 520 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = *existing;
+#line 520 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = _tmp20_.viewport_center;
+#line 520 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = _tmp21_.y;
+#line 520 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = *existing;
+#line 520 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = _tmp23_.zoom_factor;
+#line 520 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.y = (gint) (_tmp19_ * (_tmp22_ / _tmp24_));
+#line 522 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_clamp_viewport_center (&(*self));
+#line 3152 "Dimensions.c"
+ }
+}
+
+
+void zoom_state_init_pan (ZoomState *self, ZoomState* existing, GdkPoint* new_viewport_center) {
+ ZoomState _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ ZoomState _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ ZoomState _tmp4_ = {0};
+ gdouble _tmp5_ = 0.0;
+ GdkPoint _tmp6_ = {0};
+#line 526 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (existing != NULL);
+#line 526 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (new_viewport_center != NULL);
+#line 526 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (self, 0, sizeof (ZoomState));
+#line 527 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *existing;
+#line 527 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.content_dimensions;
+#line 527 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).content_dimensions = _tmp1_;
+#line 528 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = *existing;
+#line 528 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.viewport_dimensions;
+#line 528 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_dimensions = _tmp3_;
+#line 529 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = *existing;
+#line 529 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = _tmp4_.interpolation_factor;
+#line 529 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).interpolation_factor = _tmp5_;
+#line 531 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_compute_zoom_factors (&(*self));
+#line 533 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = *new_viewport_center;
+#line 533 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center = _tmp6_;
+#line 535 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_clamp_viewport_center (&(*self));
+#line 3197 "Dimensions.c"
+}
+
+
+static void zoom_state_clamp_viewport_center (ZoomState *self) {
+ gint zoomed_width = 0;
+ gint _tmp0_ = 0;
+ gint zoomed_height = 0;
+ gint _tmp1_ = 0;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GdkPoint _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ Dimensions _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ Dimensions _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 539 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = zoom_state_get_zoomed_width (&(*self));
+#line 539 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoomed_width = _tmp0_;
+#line 540 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = zoom_state_get_zoomed_height (&(*self));
+#line 540 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoomed_height = _tmp1_;
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).viewport_center;
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.x;
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = (*self).viewport_dimensions;
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = _tmp4_.width;
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = (*self).viewport_dimensions;
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = _tmp6_.width;
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = CLAMP (_tmp3_, _tmp5_ / 2, (zoomed_width - (_tmp7_ / 2)) - 1);
+#line 542 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.x = _tmp8_;
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = (*self).viewport_center;
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = _tmp9_.y;
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = (*self).viewport_dimensions;
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = _tmp11_.height;
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = (*self).viewport_dimensions;
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = _tmp13_.height;
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = CLAMP (_tmp10_, _tmp12_ / 2, (zoomed_height - (_tmp14_ / 2)) - 1);
+#line 544 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.y = _tmp15_;
+#line 3260 "Dimensions.c"
+}
+
+
+static void zoom_state_center_viewport (ZoomState *self) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 549 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = zoom_state_get_zoomed_width (&(*self));
+#line 549 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.x = _tmp0_ / 2;
+#line 550 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = zoom_state_get_zoomed_height (&(*self));
+#line 550 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).viewport_center.y = _tmp1_ / 2;
+#line 3275 "Dimensions.c"
+}
+
+
+static void zoom_state_compute_zoom_factors (ZoomState *self) {
+ gdouble viewport_to_content_x = 0.0;
+ gdouble viewport_to_content_y = 0.0;
+ Dimensions _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+#line 554 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).max_factor = 2.0;
+#line 558 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).viewport_dimensions;
+#line 558 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dimensions_get_scale_ratios (&(*self).content_dimensions, &_tmp0_, &_tmp1_, &_tmp2_);
+#line 558 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ viewport_to_content_x = _tmp1_;
+#line 558 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ viewport_to_content_y = _tmp2_;
+#line 560 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = viewport_to_content_x;
+#line 560 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = viewport_to_content_y;
+#line 560 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = MIN (_tmp3_, _tmp4_);
+#line 560 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).min_factor = _tmp5_;
+#line 561 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = (*self).min_factor;
+#line 561 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp6_ > 1.0) {
+#line 562 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).min_factor = 1.0;
+#line 3318 "Dimensions.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = (*self).min_factor;
+#line 564 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = (*self).max_factor;
+#line 564 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = (*self).min_factor;
+#line 564 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = (*self).interpolation_factor;
+#line 564 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = pow (_tmp8_ / _tmp9_, _tmp10_);
+#line 564 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ (*self).zoom_factor = _tmp7_ * _tmp11_;
+#line 3332 "Dimensions.c"
+}
+
+
+gdouble zoom_state_get_interpolation_factor (ZoomState *self) {
+ gdouble result = 0.0;
+ gdouble _tmp0_ = 0.0;
+#line 568 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).interpolation_factor;
+#line 568 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 568 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 3345 "Dimensions.c"
+}
+
+
+void zoom_state_get_viewing_rectangle_wrt_content (ZoomState *self, GdkRectangle* result) {
+ gint zoomed_width = 0;
+ gint _tmp0_ = 0;
+ gint zoomed_height = 0;
+ gint _tmp1_ = 0;
+ GdkRectangle _result_ = {0};
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ Dimensions _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ gint right = 0;
+ GdkRectangle _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ Dimensions _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp33_ = 0;
+ GdkRectangle _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ gint bottom = 0;
+ GdkRectangle _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ Dimensions _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint _tmp43_ = 0;
+ GdkRectangle _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ GdkRectangle _tmp46_ = {0};
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ GdkRectangle _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+#line 573 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = zoom_state_get_zoomed_width (&(*self));
+#line 573 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoomed_width = _tmp0_;
+#line 574 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = zoom_state_get_zoomed_height (&(*self));
+#line 574 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoomed_height = _tmp1_;
+#line 576 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (&_result_, 0, sizeof (GdkRectangle));
+#line 578 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).viewport_dimensions;
+#line 578 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = _tmp2_.width;
+#line 578 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = zoomed_width;
+#line 578 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp3_ < _tmp4_) {
+#line 3409 "Dimensions.c"
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 579 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = (*self).viewport_center;
+#line 579 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_.x;
+#line 579 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = (*self).viewport_dimensions;
+#line 579 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = _tmp7_.width;
+#line 579 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.x = _tmp6_ - (_tmp8_ / 2);
+#line 3424 "Dimensions.c"
+ } else {
+ gint _tmp9_ = 0;
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+#line 581 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = zoomed_width;
+#line 581 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = (*self).viewport_dimensions;
+#line 581 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = _tmp10_.width;
+#line 581 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.x = (_tmp9_ - _tmp11_) / 2;
+#line 3437 "Dimensions.c"
+ }
+#line 583 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = _result_;
+#line 583 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = _tmp12_.x;
+#line 583 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp13_ < 0) {
+#line 584 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.x = 0;
+#line 3447 "Dimensions.c"
+ }
+#line 586 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = (*self).viewport_dimensions;
+#line 586 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = _tmp14_.height;
+#line 586 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = zoomed_height;
+#line 586 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp15_ < _tmp16_) {
+#line 3457 "Dimensions.c"
+ GdkPoint _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ Dimensions _tmp19_ = {0};
+ gint _tmp20_ = 0;
+#line 587 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = (*self).viewport_center;
+#line 587 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = _tmp17_.y;
+#line 587 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = (*self).viewport_dimensions;
+#line 587 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = _tmp19_.height;
+#line 587 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.y = _tmp18_ - (_tmp20_ / 2);
+#line 3472 "Dimensions.c"
+ } else {
+ gint _tmp21_ = 0;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+#line 589 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = zoomed_height;
+#line 589 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = (*self).viewport_dimensions;
+#line 589 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = _tmp22_.height;
+#line 589 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.y = (_tmp21_ - _tmp23_) / 2;
+#line 3485 "Dimensions.c"
+ }
+#line 591 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = _result_;
+#line 591 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp25_ = _tmp24_.y;
+#line 591 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp25_ < 0) {
+#line 592 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.y = 0;
+#line 3495 "Dimensions.c"
+ }
+#line 594 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp26_ = _result_;
+#line 594 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp27_ = _tmp26_.x;
+#line 594 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp28_ = (*self).viewport_dimensions;
+#line 594 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp29_ = _tmp28_.width;
+#line 594 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ right = _tmp27_ + _tmp29_;
+#line 595 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp30_ = right;
+#line 595 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp31_ = zoomed_width;
+#line 595 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp30_ > _tmp31_) {
+#line 3513 "Dimensions.c"
+ gint _tmp32_ = 0;
+#line 596 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp32_ = zoomed_width;
+#line 596 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ right = _tmp32_;
+#line 3519 "Dimensions.c"
+ }
+#line 597 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp33_ = right;
+#line 597 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp34_ = _result_;
+#line 597 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp35_ = _tmp34_.x;
+#line 597 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.width = _tmp33_ - _tmp35_;
+#line 599 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp36_ = _result_;
+#line 599 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp37_ = _tmp36_.y;
+#line 599 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp38_ = (*self).viewport_dimensions;
+#line 599 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp39_ = _tmp38_.height;
+#line 599 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ bottom = _tmp37_ + _tmp39_;
+#line 600 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp40_ = bottom;
+#line 600 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp41_ = zoomed_height;
+#line 600 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp40_ > _tmp41_) {
+#line 3545 "Dimensions.c"
+ gint _tmp42_ = 0;
+#line 601 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp42_ = zoomed_height;
+#line 601 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ bottom = _tmp42_;
+#line 3551 "Dimensions.c"
+ }
+#line 602 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp43_ = bottom;
+#line 602 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp44_ = _result_;
+#line 602 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp45_ = _tmp44_.y;
+#line 602 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.height = _tmp43_ - _tmp45_;
+#line 604 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp46_ = _result_;
+#line 604 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp47_ = _tmp46_.width;
+#line 604 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp48_ = CLAMP (_tmp47_, 1, G_MAXINT);
+#line 604 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.width = _tmp48_;
+#line 605 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp49_ = _result_;
+#line 605 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp50_ = _tmp49_.height;
+#line 605 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp51_ = CLAMP (_tmp50_, 1, G_MAXINT);
+#line 605 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.height = _tmp51_;
+#line 607 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _result_;
+#line 607 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 3581 "Dimensions.c"
+}
+
+
+void zoom_state_get_viewing_rectangle_wrt_screen (ZoomState *self, GdkRectangle* result) {
+ GdkRectangle wrt_content = {0};
+ GdkRectangle _tmp0_ = {0};
+ GdkRectangle _result_ = {0};
+ Dimensions _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkRectangle _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+#line 613 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (&(*self), &_tmp0_);
+#line 613 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ wrt_content = _tmp0_;
+#line 615 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (&_result_, 0, sizeof (GdkRectangle));
+#line 616 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).viewport_dimensions;
+#line 616 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = _tmp1_.width;
+#line 616 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = wrt_content;
+#line 616 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_.width;
+#line 616 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.x = (_tmp2_ / 2) - (_tmp4_ / 2);
+#line 617 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = _result_;
+#line 617 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = _tmp5_.x;
+#line 617 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp6_ < 0) {
+#line 618 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.x = 0;
+#line 3629 "Dimensions.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = (*self).viewport_dimensions;
+#line 619 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = _tmp7_.height;
+#line 619 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = wrt_content;
+#line 619 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = _tmp9_.height;
+#line 619 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.y = (_tmp8_ / 2) - (_tmp10_ / 2);
+#line 620 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = _result_;
+#line 620 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = _tmp11_.y;
+#line 620 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp12_ < 0) {
+#line 621 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.y = 0;
+#line 3649 "Dimensions.c"
+ }
+#line 622 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = wrt_content;
+#line 622 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = _tmp13_.width;
+#line 622 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.width = _tmp14_;
+#line 623 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = wrt_content;
+#line 623 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = _tmp15_.height;
+#line 623 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.height = _tmp16_;
+#line 625 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _result_;
+#line 625 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 3667 "Dimensions.c"
+}
+
+
+void zoom_state_get_viewing_rectangle_projection (ZoomState *self, GdkPixbuf* for_pixbuf, GdkRectangle* result) {
+ gdouble zoomed_width = 0.0;
+ gint _tmp0_ = 0;
+ gdouble zoomed_height = 0.0;
+ gint _tmp1_ = 0;
+ gdouble horiz_scale = 0.0;
+ GdkPixbuf* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gdouble vert_scale = 0.0;
+ GdkPixbuf* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gdouble scale = 0.0;
+ GdkRectangle viewing_rectangle = {0};
+ GdkRectangle _tmp8_ = {0};
+ GdkRectangle _result_ = {0};
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkPixbuf* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ GdkPixbuf* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint right = 0;
+ GdkRectangle _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ GdkRectangle _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ GdkPixbuf* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gint bottom = 0;
+ GdkRectangle _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ GdkRectangle _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ GdkPixbuf* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ GdkRectangle _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ GdkRectangle _tmp47_ = {0};
+ gint _tmp48_ = 0;
+#line 629 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (for_pixbuf));
+#line 630 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = zoom_state_get_zoomed_width (&(*self));
+#line 630 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoomed_width = (gdouble) _tmp0_;
+#line 631 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = zoom_state_get_zoomed_height (&(*self));
+#line 631 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoomed_height = (gdouble) _tmp1_;
+#line 633 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = for_pixbuf;
+#line 633 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = gdk_pixbuf_get_width (_tmp2_);
+#line 633 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_;
+#line 633 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ horiz_scale = _tmp4_ / zoomed_width;
+#line 634 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = for_pixbuf;
+#line 634 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = gdk_pixbuf_get_height (_tmp5_);
+#line 634 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = _tmp6_;
+#line 634 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ vert_scale = _tmp7_ / zoomed_height;
+#line 635 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ scale = (horiz_scale + vert_scale) / 2.0;
+#line 637 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (&(*self), &_tmp8_);
+#line 637 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ viewing_rectangle = _tmp8_;
+#line 639 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memset (&_result_, 0, sizeof (GdkRectangle));
+#line 640 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = viewing_rectangle;
+#line 640 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = _tmp9_.x;
+#line 640 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.x = (gint) (_tmp10_ * scale);
+#line 641 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = _result_;
+#line 641 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = _tmp11_.x;
+#line 641 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = for_pixbuf;
+#line 641 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = gdk_pixbuf_get_width (_tmp13_);
+#line 641 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = _tmp14_;
+#line 641 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = CLAMP (_tmp12_, 0, _tmp15_);
+#line 641 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.x = _tmp16_;
+#line 642 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = viewing_rectangle;
+#line 642 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = _tmp17_.y;
+#line 642 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.y = (gint) (_tmp18_ * scale);
+#line 643 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = _result_;
+#line 643 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = _tmp19_.y;
+#line 643 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = for_pixbuf;
+#line 643 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = gdk_pixbuf_get_height (_tmp21_);
+#line 643 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = _tmp22_;
+#line 643 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = CLAMP (_tmp20_, 0, _tmp23_);
+#line 643 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.y = _tmp24_;
+#line 644 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp25_ = viewing_rectangle;
+#line 644 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp26_ = _tmp25_.x;
+#line 644 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp27_ = viewing_rectangle;
+#line 644 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp28_ = _tmp27_.width;
+#line 644 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ right = (gint) ((_tmp26_ + _tmp28_) * scale);
+#line 645 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp29_ = right;
+#line 645 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp30_ = for_pixbuf;
+#line 645 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp31_ = gdk_pixbuf_get_width (_tmp30_);
+#line 645 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp32_ = _tmp31_;
+#line 645 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp33_ = CLAMP (_tmp29_, 0, _tmp32_);
+#line 645 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ right = _tmp33_;
+#line 646 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp34_ = viewing_rectangle;
+#line 646 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp35_ = _tmp34_.y;
+#line 646 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp36_ = viewing_rectangle;
+#line 646 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp37_ = _tmp36_.height;
+#line 646 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ bottom = (gint) ((_tmp35_ + _tmp37_) * scale);
+#line 647 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp38_ = bottom;
+#line 647 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp39_ = for_pixbuf;
+#line 647 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp40_ = gdk_pixbuf_get_height (_tmp39_);
+#line 647 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp41_ = _tmp40_;
+#line 647 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp42_ = CLAMP (_tmp38_, 0, _tmp41_);
+#line 647 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ bottom = _tmp42_;
+#line 648 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp43_ = right;
+#line 648 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp44_ = _result_;
+#line 648 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp45_ = _tmp44_.x;
+#line 648 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.width = _tmp43_ - _tmp45_;
+#line 649 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp46_ = bottom;
+#line 649 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp47_ = _result_;
+#line 649 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp48_ = _tmp47_.y;
+#line 649 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _result_.height = _tmp46_ - _tmp48_;
+#line 651 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _result_;
+#line 651 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 3868 "Dimensions.c"
+}
+
+
+gdouble zoom_state_get_zoom_factor (ZoomState *self) {
+ gdouble result = 0.0;
+ gdouble _tmp0_ = 0.0;
+#line 656 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).zoom_factor;
+#line 656 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 656 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 3881 "Dimensions.c"
+}
+
+
+gint zoom_state_get_zoomed_width (ZoomState *self) {
+ gint result = 0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gdouble _tmp2_ = 0.0;
+#line 660 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).content_dimensions;
+#line 660 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.width;
+#line 660 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).zoom_factor;
+#line 660 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = (gint) (_tmp1_ * _tmp2_);
+#line 660 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 3900 "Dimensions.c"
+}
+
+
+gint zoom_state_get_zoomed_height (ZoomState *self) {
+ gint result = 0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gdouble _tmp2_ = 0.0;
+#line 664 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).content_dimensions;
+#line 664 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.height;
+#line 664 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = (*self).zoom_factor;
+#line 664 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = (gint) (_tmp1_ * _tmp2_);
+#line 664 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 3919 "Dimensions.c"
+}
+
+
+void zoom_state_get_viewport_center (ZoomState *self, GdkPoint* result) {
+ GdkPoint _tmp0_ = {0};
+#line 668 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).viewport_center;
+#line 668 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ *result = _tmp0_;
+#line 668 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return;
+#line 3931 "Dimensions.c"
+}
+
+
+gchar* zoom_state_to_string (ZoomState *self) {
+ gchar* result = NULL;
+ gchar* named_modes = NULL;
+ gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ const gchar* _tmp21_ = NULL;
+ GdkRectangle viewing_rect = {0};
+ GdkRectangle _tmp23_ = {0};
+ Dimensions _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ Dimensions _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ Dimensions _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ Dimensions _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ gdouble _tmp32_ = 0.0;
+ gdouble _tmp33_ = 0.0;
+ gdouble _tmp34_ = 0.0;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ const gchar* _tmp37_ = NULL;
+ GdkRectangle _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ GdkRectangle _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ GdkRectangle _tmp42_ = {0};
+ gint _tmp43_ = 0;
+ GdkRectangle _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ GdkPoint _tmp46_ = {0};
+ gint _tmp47_ = 0;
+ GdkPoint _tmp48_ = {0};
+ gint _tmp49_ = 0;
+ gchar* _tmp50_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = g_strdup ("");
+#line 672 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ named_modes = _tmp0_;
+#line 673 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = zoom_state_is_min (&(*self));
+#line 673 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp1_) {
+#line 3981 "Dimensions.c"
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = named_modes;
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (g_strcmp0 (_tmp3_, "") == 0) {
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = "MIN";
+#line 3992 "Dimensions.c"
+ } else {
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = ", MIN";
+#line 3996 "Dimensions.c"
+ }
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = named_modes;
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = g_strconcat (_tmp4_, _tmp2_, NULL);
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (named_modes);
+#line 674 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ named_modes = _tmp5_;
+#line 4006 "Dimensions.c"
+ }
+#line 675 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = zoom_state_is_default (&(*self));
+#line 675 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp6_) {
+#line 4012 "Dimensions.c"
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = named_modes;
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (g_strcmp0 (_tmp8_, "") == 0) {
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = "DEFAULT";
+#line 4023 "Dimensions.c"
+ } else {
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = ", DEFAULT";
+#line 4027 "Dimensions.c"
+ }
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = named_modes;
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = g_strconcat (_tmp9_, _tmp7_, NULL);
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (named_modes);
+#line 676 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ named_modes = _tmp10_;
+#line 4037 "Dimensions.c"
+ }
+#line 677 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = zoom_state_is_isomorphic (&(*self));
+#line 677 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp11_) {
+#line 4043 "Dimensions.c"
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = named_modes;
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (g_strcmp0 (_tmp13_, "") == 0) {
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = "ISOMORPHIC";
+#line 4054 "Dimensions.c"
+ } else {
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = ", ISOMORPHIC";
+#line 4058 "Dimensions.c"
+ }
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = named_modes;
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = g_strconcat (_tmp14_, _tmp12_, NULL);
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (named_modes);
+#line 678 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ named_modes = _tmp15_;
+#line 4068 "Dimensions.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = zoom_state_is_max (&(*self));
+#line 679 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp16_) {
+#line 4074 "Dimensions.c"
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = named_modes;
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (g_strcmp0 (_tmp18_, "") == 0) {
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = "MAX";
+#line 4085 "Dimensions.c"
+ } else {
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = ", MAX";
+#line 4089 "Dimensions.c"
+ }
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = named_modes;
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = g_strconcat (_tmp19_, _tmp17_, NULL);
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (named_modes);
+#line 680 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ named_modes = _tmp20_;
+#line 4099 "Dimensions.c"
+ }
+#line 681 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = named_modes;
+#line 681 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (g_strcmp0 (_tmp21_, "") == 0) {
+#line 4105 "Dimensions.c"
+ gchar* _tmp22_ = NULL;
+#line 682 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = g_strdup ("(none)");
+#line 682 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (named_modes);
+#line 682 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ named_modes = _tmp22_;
+#line 4113 "Dimensions.c"
+ }
+#line 684 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (&(*self), &_tmp23_);
+#line 684 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ viewing_rect = _tmp23_;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = (*self).content_dimensions;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp25_ = _tmp24_.width;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp26_ = (*self).content_dimensions;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp27_ = _tmp26_.height;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp28_ = (*self).viewport_dimensions;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp29_ = _tmp28_.width;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp30_ = (*self).viewport_dimensions;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp31_ = _tmp30_.height;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp32_ = (*self).min_factor;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp33_ = (*self).max_factor;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp34_ = (*self).zoom_factor;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp35_ = zoom_state_get_zoomed_width (&(*self));
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp36_ = zoom_state_get_zoomed_height (&(*self));
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp37_ = named_modes;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp38_ = viewing_rect;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp39_ = _tmp38_.x;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp40_ = viewing_rect;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp41_ = _tmp40_.y;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp42_ = viewing_rect;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp43_ = _tmp42_.width;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp44_ = viewing_rect;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp45_ = _tmp44_.height;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp46_ = (*self).viewport_center;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp47_ = _tmp46_.x;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp48_ = (*self).viewport_center;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp49_ = _tmp48_.y;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp50_ = g_strdup_printf ("ZoomState {\n" \
+" content dimensions = %d x %d;\n" \
+" viewport dimensions = " "%d x %d;\n" \
+" min factor = %f;\n" \
+" max factor = %f;\n" \
+" current factor = %f;" "\n" \
+" zoomed width = %d;\n" \
+" zoomed height = %d;\n" \
+" named modes = %s;" "\n viewing rectangle = { x: %d, y: %d, width: %d, height: %d };" "\n viewport center = (%d, %d);\n}\n", _tmp25_, _tmp27_, _tmp29_, _tmp31_, _tmp32_, _tmp33_, _tmp34_, _tmp35_, _tmp36_, _tmp37_, _tmp39_, _tmp41_, _tmp43_, _tmp45_, _tmp47_, _tmp49_);
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp50_;
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _g_free0 (named_modes);
+#line 686 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4179 "Dimensions.c"
+}
+
+
+gboolean zoom_state_is_min (ZoomState *self) {
+ gboolean result = FALSE;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+#line 698 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).zoom_factor;
+#line 698 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).min_factor;
+#line 698 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_ == _tmp1_;
+#line 698 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4195 "Dimensions.c"
+}
+
+
+gboolean zoom_state_is_default (ZoomState *self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 702 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = zoom_state_is_min (&(*self));
+#line 702 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_;
+#line 702 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4208 "Dimensions.c"
+}
+
+
+gboolean zoom_state_is_max (ZoomState *self) {
+ gboolean result = FALSE;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+#line 706 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).zoom_factor;
+#line 706 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = (*self).max_factor;
+#line 706 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_ == _tmp1_;
+#line 706 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4224 "Dimensions.c"
+}
+
+
+gboolean zoom_state_is_isomorphic (ZoomState *self) {
+ gboolean result = FALSE;
+ gdouble _tmp0_ = 0.0;
+#line 710 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = (*self).zoom_factor;
+#line 710 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = _tmp0_ == 1.0;
+#line 710 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4237 "Dimensions.c"
+}
+
+
+gboolean zoom_state_equals (ZoomState *self, ZoomState* other) {
+ gboolean result = FALSE;
+ ZoomState _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ ZoomState _tmp3_ = {0};
+ Dimensions _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+ gdouble _tmp6_ = 0.0;
+ ZoomState _tmp7_ = {0};
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ ZoomState _tmp10_ = {0};
+ gdouble _tmp11_ = 0.0;
+ gdouble _tmp12_ = 0.0;
+ ZoomState _tmp13_ = {0};
+ gdouble _tmp14_ = 0.0;
+ GdkPoint _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ ZoomState _tmp17_ = {0};
+ GdkPoint _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ ZoomState _tmp22_ = {0};
+ GdkPoint _tmp23_ = {0};
+ gint _tmp24_ = 0;
+#line 713 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_return_val_if_fail (other != NULL, FALSE);
+#line 714 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp0_ = *other;
+#line 714 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp1_ = _tmp0_.content_dimensions;
+#line 714 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp2_ = dimensions_equals (&(*self).content_dimensions, &_tmp1_);
+#line 714 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (!_tmp2_) {
+#line 715 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 715 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4282 "Dimensions.c"
+ }
+#line 716 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp3_ = *other;
+#line 716 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp4_ = _tmp3_.viewport_dimensions;
+#line 716 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp5_ = dimensions_equals (&(*self).viewport_dimensions, &_tmp4_);
+#line 716 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (!_tmp5_) {
+#line 717 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 717 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4296 "Dimensions.c"
+ }
+#line 718 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp6_ = (*self).zoom_factor;
+#line 718 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp7_ = *other;
+#line 718 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp8_ = _tmp7_.zoom_factor;
+#line 718 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp6_ != _tmp8_) {
+#line 719 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 719 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4310 "Dimensions.c"
+ }
+#line 720 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp9_ = (*self).min_factor;
+#line 720 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp10_ = *other;
+#line 720 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp11_ = _tmp10_.min_factor;
+#line 720 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp9_ != _tmp11_) {
+#line 721 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 721 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4324 "Dimensions.c"
+ }
+#line 722 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp12_ = (*self).max_factor;
+#line 722 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp13_ = *other;
+#line 722 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp14_ = _tmp13_.max_factor;
+#line 722 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp12_ != _tmp14_) {
+#line 723 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 723 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4338 "Dimensions.c"
+ }
+#line 724 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp15_ = (*self).viewport_center;
+#line 724 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp16_ = _tmp15_.x;
+#line 724 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp17_ = *other;
+#line 724 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp18_ = _tmp17_.viewport_center;
+#line 724 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp19_ = _tmp18_.x;
+#line 724 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp16_ != _tmp19_) {
+#line 725 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 725 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4356 "Dimensions.c"
+ }
+#line 726 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp20_ = (*self).viewport_center;
+#line 726 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp21_ = _tmp20_.y;
+#line 726 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp22_ = *other;
+#line 726 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp23_ = _tmp22_.viewport_center;
+#line 726 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ _tmp24_ = _tmp23_.y;
+#line 726 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ if (_tmp21_ != _tmp24_) {
+#line 727 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = FALSE;
+#line 727 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4374 "Dimensions.c"
+ }
+#line 729 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ result = TRUE;
+#line 729 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return result;
+#line 4380 "Dimensions.c"
+}
+
+
+ZoomState* zoom_state_dup (const ZoomState* self) {
+ ZoomState* dup;
+#line 463 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ dup = g_new0 (ZoomState, 1);
+#line 463 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ memcpy (dup, self, sizeof (ZoomState));
+#line 463 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ return dup;
+#line 4392 "Dimensions.c"
+}
+
+
+void zoom_state_free (ZoomState* self) {
+#line 463 "/home/jens/Source/shotwell/src/Dimensions.vala"
+ g_free (self);
+#line 4399 "Dimensions.c"
+}
+
+
+GType zoom_state_get_type (void) {
+ static volatile gsize zoom_state_type_id__volatile = 0;
+ if (g_once_init_enter (&zoom_state_type_id__volatile)) {
+ GType zoom_state_type_id;
+ zoom_state_type_id = g_boxed_type_register_static ("ZoomState", (GBoxedCopyFunc) zoom_state_dup, (GBoxedFreeFunc) zoom_state_free);
+ g_once_init_leave (&zoom_state_type_id__volatile, zoom_state_type_id);
+ }
+ return zoom_state_type_id__volatile;
+}
+
+
+
diff --git a/src/DirectoryMonitor.c b/src/DirectoryMonitor.c
new file mode 100644
index 0000000..e451d9d
--- /dev/null
+++ b/src/DirectoryMonitor.c
@@ -0,0 +1,9917 @@
+/* DirectoryMonitor.c generated by valac 0.32.1, the Vala compiler
+ * generated from DirectoryMonitor.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/**/
+/* DirectoryMonitor will monitor an entire directory for changes to all files and directories*/
+/* within it. It uses FileMonitor to monitor all directories it discovers at initialization*/
+/* and reports changes to the files and directories just as FileMonitor reports them. Subclasses*/
+/* can override the notify_* methods to filter or monitor events before the signal is fired,*/
+/* or can override the signals themselves to be notified afterwards.*/
+/**/
+/* start_discovery() must be called to initiate monitoring. Directories and files will be reported*/
+/* as they're discovered. Directories will be monitored as they're discovered as well. Discovery*/
+/* can only be initiated once.*/
+/**/
+/* All signals are virtual and have a corresponding notify_* protected virtual function.*/
+/* Subclasses can either override the notify or the signal to decide when they want to process*/
+/* the event.*/
+/**/
+/* DirectoryMonitor also adds a level of intelligence to GLib's monitoring API.Because certain*/
+/* file/directory events are decomposed by FileMonitor into more atomic events, it's difficult*/
+/* to know when these "composed" events have occurred. (For example, a file move is reported*/
+/* as a DELETED event followed by a CREATED event, with no clue that the two are related.) Later*/
+/* versions added the MOVE event, but we can't rely on those being installed. Also, documentation*/
+/* suggests it's only available with certain back-ends.*/
+/**/
+/* DirectoryMonitor attempts to solve this by deducing when a set of events actually equals*/
+/* a composite event. It requires more memory in order to do this (i.e. it stores all files and*/
+/* their information), but the trade-off is easier file/directory monitoring via familiar*/
+/* semantics.*/
+/**/
+/* DirectoryMonitor also will synthesize events when normal monitor events don't produce expected*/
+/* results. For example, if a directory is moved out of DirectoryMonitor's root, it is reported*/
+/* as a delete event, but none of its children are reported as deleted. Similarly, a directory*/
+/* rename can be captured as a move, but notifications for all its children are not fired and*/
+/* are synthesized by DirectoryMonitor. DirectoryMonitor will fire delete and move notifications*/
+/* for all the directory's children in depth-first order.*/
+/**/
+/* In general, DirectoryMonitor attempts to preserve ordering of events, so that (for example) a*/
+/* file-altered event doesn't fire before a file-created, and so on.*/
+/**/
+/* Because of these requirements, DirectoryMonitor maintains a FileInfo struct on all directories */
+/* and files being monitored. (It maintains the attributes gather during the discovery phase, i.e. */
+/* SUPPLIED_ATTRIBUTES.) This information can be retrieved via get_info(), get_file_id(), and*/
+/* get_etag(). These calls can be made at any time; the information is stored before any signal*/
+/* is fired.*/
+/**/
+/* Note that DirectoryMonitor currently only supports files and directories. Other file types*/
+/* (special, symbolic links, shortcuts, and mount points) are not supported. It has been seen*/
+/* when a temporary file is created for its file type to be reported as "unknown" and when it's*/
+/* altered/deleted to be reported as a regular file. This means it's possible for a file not to*/
+/* be reported as discovered or created but to be reported as altered and/or deleted.*/
+/**/
+/* DirectoryMonitor can be configured to not recurse (in which case it only discovers/monitors*/
+/* the root directory) and to not monitor (in which case only discovery occurs).*/
+/**/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
+#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
+#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
+#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
+#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+
+typedef struct _DirectoryMonitor DirectoryMonitor;
+typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
+typedef struct _DirectoryMonitorPrivate DirectoryMonitorPrivate;
+
+#define DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT (directory_monitor_query_info_queue_element_get_type ())
+#define DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElement))
+#define DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElementClass))
+#define DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT))
+#define DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT))
+#define DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElementClass))
+
+typedef struct _DirectoryMonitorQueryInfoQueueElement DirectoryMonitorQueryInfoQueueElement;
+typedef struct _DirectoryMonitorQueryInfoQueueElementClass DirectoryMonitorQueryInfoQueueElementClass;
+
+#define DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP (directory_monitor_file_info_map_get_type ())
+#define DIRECTORY_MONITOR_FILE_INFO_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMap))
+#define DIRECTORY_MONITOR_FILE_INFO_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMapClass))
+#define DIRECTORY_MONITOR_IS_FILE_INFO_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP))
+#define DIRECTORY_MONITOR_IS_FILE_INFO_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP))
+#define DIRECTORY_MONITOR_FILE_INFO_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMapClass))
+
+typedef struct _DirectoryMonitorFileInfoMap DirectoryMonitorFileInfoMap;
+typedef struct _DirectoryMonitorFileInfoMapClass DirectoryMonitorFileInfoMapClass;
+
+#define DIRECTORY_MONITOR_TYPE_FTYPE (directory_monitor_ftype_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _directory_monitor_file_info_map_unref0(var) ((var == NULL) ? NULL : (var = (directory_monitor_file_info_map_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _DirectoryMonitorAsyncInternalNotifyDirectoryMovedData DirectoryMonitorAsyncInternalNotifyDirectoryMovedData;
+typedef struct _DirectoryMonitorAsyncNotifyDirectoryDeletedData DirectoryMonitorAsyncNotifyDirectoryDeletedData;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
+typedef struct _DirectoryMonitorExploreAsyncData DirectoryMonitorExploreAsyncData;
+typedef struct _DirectoryMonitorNotifyDirectoryFilesData DirectoryMonitorNotifyDirectoryFilesData;
+typedef struct _DirectoryMonitorQueryInfoQueueElementPrivate DirectoryMonitorQueryInfoQueueElementPrivate;
+#define _directory_monitor_query_info_queue_element_unref0(var) ((var == NULL) ? NULL : (var = (directory_monitor_query_info_queue_element_unref (var), NULL)))
+typedef struct _DirectoryMonitorParamSpecQueryInfoQueueElement DirectoryMonitorParamSpecQueryInfoQueueElement;
+typedef struct _DirectoryMonitorFileInfoMapPrivate DirectoryMonitorFileInfoMapPrivate;
+typedef struct _DirectoryMonitorParamSpecFileInfoMap DirectoryMonitorParamSpecFileInfoMap;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DirectoryMonitor {
+ GObject parent_instance;
+ DirectoryMonitorPrivate * priv;
+};
+
+struct _DirectoryMonitorClass {
+ GObjectClass parent_class;
+ void (*notify_root_deleted) (DirectoryMonitor* self, GFile* root);
+ void (*notify_root_moved) (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+ void (*notify_discovery_started) (DirectoryMonitor* self);
+ void (*internal_notify_file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*notify_file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*internal_notify_directory_discovered) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_directory_discovered) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_discovery_failed) (DirectoryMonitor* self, const gchar* reason);
+ void (*notify_discovery_completed) (DirectoryMonitor* self);
+ void (*notify_file_created) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*notify_file_moved) (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+ void (*notify_file_altered) (DirectoryMonitor* self, GFile* file);
+ void (*notify_file_alteration_completed) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*notify_file_attributes_altered) (DirectoryMonitor* self, GFile* file);
+ void (*notify_file_deleted) (DirectoryMonitor* self, GFile* file);
+ void (*notify_directory_created) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_directory_moved) (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
+ void (*notify_directory_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*notify_directory_alteration_completed) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_directory_attributes_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*notify_directory_deleted) (DirectoryMonitor* self, GFile* dir);
+ void (*notify_closed) (DirectoryMonitor* self);
+ void (*close) (DirectoryMonitor* self);
+ void (*root_moved) (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+ void (*root_deleted) (DirectoryMonitor* self, GFile* root);
+ void (*discovery_started) (DirectoryMonitor* self);
+ void (*file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*directory_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*discovery_failed) (DirectoryMonitor* self, const gchar* reason);
+ void (*discovery_completed) (DirectoryMonitor* self);
+ void (*file_created) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*file_moved) (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+ void (*file_altered) (DirectoryMonitor* self, GFile* file);
+ void (*file_alteration_completed) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*file_attributes_altered) (DirectoryMonitor* self, GFile* file);
+ void (*file_deleted) (DirectoryMonitor* self, GFile* file);
+ void (*directory_created) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*directory_moved) (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
+ void (*directory_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*directory_alteration_completed) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*directory_attributes_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*directory_deleted) (DirectoryMonitor* self, GFile* dir);
+ void (*closed) (DirectoryMonitor* self);
+};
+
+struct _DirectoryMonitorPrivate {
+ GFile* root;
+ gboolean recurse;
+ gboolean monitoring;
+ GeeHashMap* monitors;
+ GeeQueue* query_info_queue;
+ DirectoryMonitorFileInfoMap* files;
+ DirectoryMonitorFileInfoMap* parent_moved;
+ GCancellable* cancellable;
+ gint outstanding_exploration_dirs;
+ gboolean started;
+ gboolean has_discovery_started;
+ guint delete_timer_id;
+};
+
+typedef enum {
+ DIRECTORY_MONITOR_FTYPE_FILE,
+ DIRECTORY_MONITOR_FTYPE_DIRECTORY,
+ DIRECTORY_MONITOR_FTYPE_UNSUPPORTED
+} DirectoryMonitorFType;
+
+struct _DirectoryMonitorAsyncInternalNotifyDirectoryMovedData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ DirectoryMonitor* self;
+ GFile* old_dir;
+ GFileInfo* old_dir_info;
+ GFile* new_dir;
+ GFileInfo* new_dir_info;
+ GeeArrayList* file_children;
+ GeeArrayList* _tmp0_;
+ GeeArrayList* dir_children;
+ GeeArrayList* _tmp1_;
+ gint count;
+ DirectoryMonitorFileInfoMap* _tmp2_;
+ GFile* _tmp3_;
+ GeeArrayList* _tmp4_;
+ GeeArrayList* _tmp5_;
+ gint _tmp6_;
+ gint _tmp7_;
+ GeeArrayList* _dir_child_list;
+ GeeArrayList* _tmp8_;
+ GeeArrayList* _tmp9_;
+ gint _dir_child_size;
+ GeeArrayList* _tmp10_;
+ gint _tmp11_;
+ gint _tmp12_;
+ gint _dir_child_index;
+ gint _tmp13_;
+ gint _tmp14_;
+ gint _tmp15_;
+ GFile* dir_child;
+ GeeArrayList* _tmp16_;
+ gint _tmp17_;
+ gpointer _tmp18_;
+ GFileInfo* dir_info;
+ DirectoryMonitorFileInfoMap* _tmp19_;
+ GFile* _tmp20_;
+ GFileInfo* _tmp21_;
+ GFileInfo* _tmp22_;
+ GFile* _tmp23_;
+ gchar* _tmp24_;
+ gchar* _tmp25_;
+ GFile* _tmp26_;
+ GFileInfo* _tmp27_;
+ GFile* _tmp28_;
+ GFile* _tmp29_;
+ gchar* _tmp30_;
+ gchar* _tmp31_;
+ GFile* _tmp32_;
+ GFile* _tmp33_;
+ GFileInfo* _tmp34_;
+ GeeArrayList* _file_child_list;
+ GeeArrayList* _tmp35_;
+ GeeArrayList* _tmp36_;
+ gint _file_child_size;
+ GeeArrayList* _tmp37_;
+ gint _tmp38_;
+ gint _tmp39_;
+ gint _file_child_index;
+ gint _tmp40_;
+ gint _tmp41_;
+ gint _tmp42_;
+ GFile* file_child;
+ GeeArrayList* _tmp43_;
+ gint _tmp44_;
+ gpointer _tmp45_;
+ GFileInfo* file_info;
+ DirectoryMonitorFileInfoMap* _tmp46_;
+ GFile* _tmp47_;
+ GFileInfo* _tmp48_;
+ GFileInfo* _tmp49_;
+ GFile* _tmp50_;
+ gchar* _tmp51_;
+ gchar* _tmp52_;
+ GFile* _tmp53_;
+ GFile* _tmp54_;
+ GFile* _tmp55_;
+ gchar* _tmp56_;
+ gchar* _tmp57_;
+ GFile* _tmp58_;
+ GFile* _tmp59_;
+ GFileInfo* _tmp60_;
+ DirectoryMonitorFileInfoMap* _tmp61_;
+ GFile* _tmp62_;
+ gboolean updated;
+ DirectoryMonitorFileInfoMap* _tmp63_;
+ GFile* _tmp64_;
+ GFileInfo* _tmp65_;
+ gboolean _tmp66_;
+ GFile* _tmp67_;
+ GFileInfo* _tmp68_;
+ GFile* _tmp69_;
+ GFileInfo* _tmp70_;
+ GFile* _tmp71_;
+ GFile* _tmp72_;
+ GFileInfo* _tmp73_;
+};
+
+struct _DirectoryMonitorAsyncNotifyDirectoryDeletedData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ DirectoryMonitor* self;
+ GFile* dir;
+ gboolean already_removed;
+ GeeArrayList* file_children;
+ GeeArrayList* _tmp0_;
+ GeeArrayList* dir_children;
+ GeeArrayList* _tmp1_;
+ gint count;
+ DirectoryMonitorFileInfoMap* _tmp2_;
+ GFile* _tmp3_;
+ GeeArrayList* _tmp4_;
+ GeeArrayList* _tmp5_;
+ gint _tmp6_;
+ gint _tmp7_;
+ GeeArrayList* _dir_child_list;
+ GeeArrayList* _tmp8_;
+ GeeArrayList* _tmp9_;
+ gint _dir_child_size;
+ GeeArrayList* _tmp10_;
+ gint _tmp11_;
+ gint _tmp12_;
+ gint _dir_child_index;
+ gint _tmp13_;
+ gint _tmp14_;
+ gint _tmp15_;
+ GFile* dir_child;
+ GeeArrayList* _tmp16_;
+ gint _tmp17_;
+ gpointer _tmp18_;
+ GFile* _tmp19_;
+ GeeArrayList* _file_child_list;
+ GeeArrayList* _tmp20_;
+ GeeArrayList* _tmp21_;
+ gint _file_child_size;
+ GeeArrayList* _tmp22_;
+ gint _tmp23_;
+ gint _tmp24_;
+ gint _file_child_index;
+ gint _tmp25_;
+ gint _tmp26_;
+ gint _tmp27_;
+ GFile* file_child;
+ GeeArrayList* _tmp28_;
+ gint _tmp29_;
+ gpointer _tmp30_;
+ DirectoryMonitorFileInfoMap* _tmp31_;
+ GFile* _tmp32_;
+ GFile* _tmp33_;
+ gboolean _tmp34_;
+ DirectoryMonitorFileInfoMap* _tmp35_;
+ GFile* _tmp36_;
+ GFile* _tmp37_;
+};
+
+struct _DirectoryMonitorExploreAsyncData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ DirectoryMonitor* self;
+ GFile* dir;
+ GFileInfo* dir_info;
+ gboolean in_discovery;
+ DirectoryMonitorFileInfoMap* _tmp0_;
+ GFile* _tmp1_;
+ GFileInfo* _tmp2_;
+ gboolean _tmp3_;
+ GFile* _tmp4_;
+ gchar* _tmp5_;
+ gchar* _tmp6_;
+ gboolean _tmp7_;
+ GFileInfo* local_dir_info;
+ GFileInfo* _tmp8_;
+ GFileInfo* _tmp9_;
+ GFileInfo* _tmp10_;
+ GFileInfo* _tmp11_;
+ GFile* _tmp12_;
+ GCancellable* _tmp13_;
+ GFileInfo* _tmp14_;
+ GFileInfo* _tmp15_;
+ GError* err;
+ GFile* _tmp16_;
+ gchar* _tmp17_;
+ gchar* _tmp18_;
+ GError* _tmp19_;
+ const gchar* _tmp20_;
+ gboolean _tmp21_;
+ GFileInfo* _tmp22_;
+ gboolean _tmp23_;
+ GFile* _tmp24_;
+ gchar* _tmp25_;
+ gchar* _tmp26_;
+ gboolean _tmp27_;
+ GFileInfo* _tmp28_;
+ gchar* _tmp29_;
+ gchar* _tmp30_;
+ gboolean _tmp31_;
+ GFile* _tmp32_;
+ gchar* _tmp33_;
+ gchar* _tmp34_;
+ gboolean _tmp35_;
+ GFileInfo* _tmp36_;
+ GFileType _tmp37_;
+ const gchar* _tmp38_;
+ GFile* _tmp39_;
+ gchar* _tmp40_;
+ gchar* _tmp41_;
+ GFileInfo* _tmp42_;
+ GFileType _tmp43_;
+ GEnumValue* _tmp44_;
+ gchar* _tmp45_;
+ gchar* _tmp46_;
+ gboolean _tmp47_;
+ GeeHashMap* dir_map;
+ GeeHashMap* file_map;
+ GFileEnumerator* enumerator;
+ GFile* _tmp48_;
+ GCancellable* _tmp49_;
+ GFileEnumerator* _tmp50_;
+ gboolean _tmp51_;
+ GList* infos;
+ GFileEnumerator* _tmp52_;
+ GCancellable* _tmp53_;
+ GList* _tmp54_;
+ GList* _tmp55_;
+ GList* _tmp56_;
+ GList* info_collection;
+ GList* info_it;
+ GFileInfo* _tmp57_;
+ GFileInfo* info;
+ GFileInfo* _tmp58_;
+ gboolean _tmp59_;
+ GFile* _tmp60_;
+ GFileInfo* _tmp61_;
+ const gchar* _tmp62_;
+ GFile* _tmp63_;
+ GFile* _tmp64_;
+ gchar* _tmp65_;
+ gchar* _tmp66_;
+ GFileInfo* _tmp67_;
+ gboolean _tmp68_;
+ GFileInfo* _tmp69_;
+ GFileType _tmp70_;
+ GeeHashMap* _tmp71_;
+ GeeHashMap* _tmp72_;
+ GeeHashMap* _tmp73_;
+ GFile* _tmp74_;
+ GFileInfo* _tmp75_;
+ const gchar* _tmp76_;
+ GFile* _tmp77_;
+ GFile* _tmp78_;
+ GFileInfo* _tmp79_;
+ GeeHashMap* _tmp80_;
+ GeeHashMap* _tmp81_;
+ GeeHashMap* _tmp82_;
+ GFile* _tmp83_;
+ GFileInfo* _tmp84_;
+ const gchar* _tmp85_;
+ GFile* _tmp86_;
+ GFile* _tmp87_;
+ GFileInfo* _tmp88_;
+ GError* err2;
+ GFile* _tmp89_;
+ gchar* _tmp90_;
+ gchar* _tmp91_;
+ GError* _tmp92_;
+ const gchar* _tmp93_;
+ gboolean _tmp94_;
+ gboolean _tmp95_;
+ GFile* _tmp96_;
+ GFileInfo* _tmp97_;
+ GFile* _tmp98_;
+ GFileInfo* _tmp99_;
+ GFile* _tmp100_;
+ GFileInfo* _tmp101_;
+ GeeHashMap* _tmp102_;
+ GeeHashMap* _tmp103_;
+ gboolean _tmp104_;
+ gboolean _tmp105_;
+ gboolean _tmp106_;
+ GeeHashMap* _tmp107_;
+ GeeIterator* _subdir_it;
+ GeeHashMap* _tmp108_;
+ GeeSet* _tmp109_;
+ GeeSet* _tmp110_;
+ GeeSet* _tmp111_;
+ GeeIterator* _tmp112_;
+ GeeIterator* _tmp113_;
+ GeeIterator* _tmp114_;
+ gboolean _tmp115_;
+ GFile* subdir;
+ GeeIterator* _tmp116_;
+ gpointer _tmp117_;
+ gint _tmp118_;
+ gint _tmp119_;
+ GFile* _tmp120_;
+ GeeHashMap* _tmp121_;
+ GFile* _tmp122_;
+ gpointer _tmp123_;
+ GFileInfo* _tmp124_;
+ gboolean _tmp125_;
+ GFile* _tmp126_;
+ GeeHashMap* _tmp127_;
+ GFile* _tmp128_;
+ gpointer _tmp129_;
+ GFileInfo* _tmp130_;
+ gboolean _tmp131_;
+ gboolean _tmp132_;
+ GError * _inner_error_;
+};
+
+struct _DirectoryMonitorNotifyDirectoryFilesData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ DirectoryMonitor* self;
+ GeeMap* map;
+ gboolean in_discovery;
+ GeeMapIterator* iter;
+ GeeMap* _tmp0_;
+ GeeMapIterator* _tmp1_;
+ GeeMapIterator* _tmp2_;
+ gboolean _tmp3_;
+ gboolean _tmp4_;
+ GeeMapIterator* _tmp5_;
+ gpointer _tmp6_;
+ GFile* _tmp7_;
+ GeeMapIterator* _tmp8_;
+ gpointer _tmp9_;
+ GFileInfo* _tmp10_;
+ GeeMapIterator* _tmp11_;
+ gpointer _tmp12_;
+ GFile* _tmp13_;
+ GeeMapIterator* _tmp14_;
+ gpointer _tmp15_;
+ GFileInfo* _tmp16_;
+};
+
+struct _DirectoryMonitorQueryInfoQueueElement {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DirectoryMonitorQueryInfoQueueElementPrivate * priv;
+ DirectoryMonitor* owner;
+ GFile* file;
+ GFile* other_file;
+ GFileMonitorEvent event;
+ guint position;
+ gulong time_created_msec;
+ GFileInfo* info;
+ GError* err;
+ gboolean completed;
+};
+
+struct _DirectoryMonitorQueryInfoQueueElementClass {
+ GTypeClass parent_class;
+ void (*finalize) (DirectoryMonitorQueryInfoQueueElement *self);
+};
+
+struct _DirectoryMonitorParamSpecQueryInfoQueueElement {
+ GParamSpec parent_instance;
+};
+
+struct _DirectoryMonitorFileInfoMap {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DirectoryMonitorFileInfoMapPrivate * priv;
+};
+
+struct _DirectoryMonitorFileInfoMapClass {
+ GTypeClass parent_class;
+ void (*finalize) (DirectoryMonitorFileInfoMap *self);
+};
+
+struct _DirectoryMonitorFileInfoMapPrivate {
+ GeeHashMap* map;
+ GeeHashMap* id_map;
+};
+
+struct _DirectoryMonitorParamSpecFileInfoMap {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer directory_monitor_parent_class = NULL;
+static gpointer directory_monitor_query_info_queue_element_parent_class = NULL;
+static guint directory_monitor_query_info_queue_element_current;
+static guint directory_monitor_query_info_queue_element_current = (guint) 0;
+static gpointer directory_monitor_file_info_map_parent_class = NULL;
+
+GType directory_monitor_get_type (void) G_GNUC_CONST;
+static gpointer directory_monitor_query_info_queue_element_ref (gpointer instance);
+static void directory_monitor_query_info_queue_element_unref (gpointer instance);
+static GParamSpec* directory_monitor_param_spec_query_info_queue_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void directory_monitor_value_set_query_info_queue_element (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void directory_monitor_value_take_query_info_queue_element (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer directory_monitor_value_get_query_info_queue_element (const GValue* value) G_GNUC_UNUSED;
+static GType directory_monitor_query_info_queue_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static gpointer directory_monitor_file_info_map_ref (gpointer instance);
+static void directory_monitor_file_info_map_unref (gpointer instance);
+static GParamSpec* directory_monitor_param_spec_file_info_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void directory_monitor_value_set_file_info_map (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void directory_monitor_value_take_file_info_map (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer directory_monitor_value_get_file_info_map (const GValue* value) G_GNUC_UNUSED;
+static GType directory_monitor_file_info_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define DIRECTORY_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECTORY_MONITOR, DirectoryMonitorPrivate))
+enum {
+ DIRECTORY_MONITOR_DUMMY_PROPERTY
+};
+static GType directory_monitor_ftype_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_new (void);
+static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_construct (GType object_type);
+#define DIRECTORY_MONITOR_DEFAULT_PRIORITY G_PRIORITY_LOW
+#define DIRECTORY_MONITOR_DIR_INFO_FLAGS G_FILE_QUERY_INFO_NONE
+#define DIRECTORY_MONITOR_FILE_INFO_FLAGS G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
+#define DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS G_FILE_QUERY_INFO_NONE
+#define DIRECTORY_MONITOR_SUPPORT_DIR_SYMLINKS TRUE
+#define DIRECTORY_MONITOR_SUPPORT_FILE_SYMLINKS FALSE
+#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
+#define DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES UTIL_FILE_ATTRIBUTES
+#define DIRECTORY_MONITOR_FILE_MONITOR_FLAGS G_FILE_MONITOR_SEND_MOVED
+#define DIRECTORY_MONITOR_DELETED_EXPIRATION_MSEC ((guint) 500)
+#define DIRECTORY_MONITOR_MAX_EXPLORATION_DIRS 5
+DirectoryMonitor* directory_monitor_new (GFile* root, gboolean recurse, gboolean monitoring);
+DirectoryMonitor* directory_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring);
+void directory_monitor_mdbg (const gchar* msg);
+gboolean directory_monitor_is_recursive (DirectoryMonitor* self);
+gboolean directory_monitor_is_monitoring (DirectoryMonitor* self);
+void directory_monitor_notify_root_deleted (DirectoryMonitor* self, GFile* root);
+static void directory_monitor_real_notify_root_deleted (DirectoryMonitor* self, GFile* root);
+static void directory_monitor_internal_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+static gboolean directory_monitor_file_info_map_remove (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
+static gboolean directory_monitor_file_info_map_update (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
+void directory_monitor_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+static void directory_monitor_real_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+void directory_monitor_notify_discovery_started (DirectoryMonitor* self);
+static void directory_monitor_real_notify_discovery_started (DirectoryMonitor* self);
+void directory_monitor_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void directory_monitor_real_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+void directory_monitor_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void directory_monitor_real_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+void directory_monitor_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_real_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+void directory_monitor_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_real_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+void directory_monitor_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason);
+static void directory_monitor_real_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason);
+void directory_monitor_notify_discovery_completed (DirectoryMonitor* self);
+static void directory_monitor_real_notify_discovery_completed (DirectoryMonitor* self);
+static void directory_monitor_internal_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static gboolean directory_monitor_is_file_create_move (DirectoryMonitor* self, GFile* file, GFileInfo* info, GFile** old_file, GFileInfo** old_file_info);
+static void directory_monitor_internal_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+void directory_monitor_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void directory_monitor_real_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+void directory_monitor_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+static void directory_monitor_real_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+void directory_monitor_notify_file_altered (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_real_notify_file_altered (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_internal_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+void directory_monitor_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void directory_monitor_real_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+void directory_monitor_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_real_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_internal_notify_file_deleted (DirectoryMonitor* self, GFile* file);
+void directory_monitor_notify_file_deleted (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_real_notify_file_deleted (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_internal_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_file_info_map_remove_descendents (DirectoryMonitorFileInfoMap* self, GFile* root, DirectoryMonitorFileInfoMap* descendents);
+static void directory_monitor_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info);
+void directory_monitor_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_real_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_async_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void directory_monitor_async_internal_notify_directory_moved_finish (DirectoryMonitor* self, GAsyncResult* _res_);
+static void directory_monitor_async_internal_notify_directory_moved_data_free (gpointer _data);
+static gboolean directory_monitor_async_internal_notify_directory_moved_co (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static gint directory_monitor_file_info_map_get_children (DirectoryMonitorFileInfoMap* self, GFile* root, GeeCollection* files, GeeCollection* dirs);
+static GFileInfo* directory_monitor_file_info_map_get_info (DirectoryMonitorFileInfoMap* self, GFile* file);
+static void directory_monitor_async_internal_notify_directory_moved_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
+static gboolean _directory_monitor_async_internal_notify_directory_moved_co_gsource_func (gpointer self);
+static gboolean directory_monitor_remove_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static gboolean directory_monitor_add_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+void directory_monitor_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
+static void directory_monitor_real_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
+void directory_monitor_notify_directory_altered (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_real_notify_directory_altered (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_internal_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+void directory_monitor_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_real_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+void directory_monitor_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_real_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_internal_notify_directory_deleted (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_async_notify_directory_deleted (DirectoryMonitor* self, GFile* dir, gboolean already_removed, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void directory_monitor_async_notify_directory_deleted_finish (DirectoryMonitor* self, GAsyncResult* _res_);
+static void directory_monitor_async_notify_directory_deleted_data_free (gpointer _data);
+static gboolean directory_monitor_async_notify_directory_deleted_co (DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_);
+static void directory_monitor_async_notify_directory_deleted_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
+static gboolean _directory_monitor_async_notify_directory_deleted_co_gsource_func (gpointer self);
+void directory_monitor_notify_directory_deleted (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_real_notify_directory_deleted (DirectoryMonitor* self, GFile* dir);
+void directory_monitor_notify_closed (DirectoryMonitor* self);
+static void directory_monitor_real_notify_closed (DirectoryMonitor* self);
+GFile* directory_monitor_get_root (DirectoryMonitor* self);
+gboolean directory_monitor_is_in_root (DirectoryMonitor* self, GFile* file);
+gboolean directory_monitor_has_started (DirectoryMonitor* self);
+void directory_monitor_start_discovery (DirectoryMonitor* self);
+static void directory_monitor_explore_async (DirectoryMonitor* self, GFile* dir, GFileInfo* dir_info, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void directory_monitor_explore_finish (DirectoryMonitor* self, GAsyncResult* _res_);
+void directory_monitor_close (DirectoryMonitor* self);
+static void directory_monitor_real_close (DirectoryMonitor* self);
+static void directory_monitor_cancel_monitor (DirectoryMonitor* self, GFileMonitor* monitor);
+static DirectoryMonitorFType directory_monitor_get_ftype (GFileInfo* info);
+const gchar* g_file_type_to_string (GFileType self);
+static void directory_monitor_explore_async_data_free (gpointer _data);
+static gboolean directory_monitor_explore_async_co (DirectoryMonitorExploreAsyncData* _data_);
+static gboolean directory_monitor_file_info_map_contains (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
+static void directory_monitor_explore_directory_completed (DirectoryMonitor* self, gboolean in_discovery);
+static void directory_monitor_explore_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
+gchar* get_file_info_id (GFileInfo* info);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+gboolean directory_monitor_is_file_symlink_supported (GFileInfo* info);
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+static void directory_monitor_notify_directory_files (DirectoryMonitor* self, GeeMap* map, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void directory_monitor_notify_directory_files_finish (DirectoryMonitor* self, GAsyncResult* _res_);
+static void directory_monitor_notify_directory_files_data_free (gpointer _data);
+static gboolean directory_monitor_notify_directory_files_co (DirectoryMonitorNotifyDirectoryFilesData* _data_);
+static gboolean _directory_monitor_notify_directory_files_co_gsource_func (gpointer self);
+static gchar* directory_monitor_file_info_map_get_id (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info);
+static void directory_monitor_on_monitor_notification (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileMonitorEvent event);
+static void _directory_monitor_on_monitor_notification_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self);
+const gchar* g_file_monitor_event_to_string (GFileMonitorEvent self);
+static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_new (DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event);
+static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_construct (GType object_type, DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event);
+static void directory_monitor_query_info_queue_element_on_completed (DirectoryMonitorQueryInfoQueueElement* self, GObject* source, GAsyncResult* aresult);
+static void _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
+static gboolean directory_monitor_check_for_expired_delete_events (DirectoryMonitor* self);
+static gboolean _directory_monitor_check_for_expired_delete_events_gsource_func (gpointer self);
+static void directory_monitor_process_query_queue (DirectoryMonitor* self, DirectoryMonitorQueryInfoQueueElement* query_info);
+static GFile* directory_monitor_file_info_map_find_match (DirectoryMonitorFileInfoMap* self, GFileInfo* match);
+static void directory_monitor_on_monitor_notification_ready (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileInfo* info, GFileMonitorEvent event);
+GFileInfo* directory_monitor_get_file_info (DirectoryMonitor* self, GFile* file);
+gulong now_ms (void);
+GeeCollection* directory_monitor_get_files (DirectoryMonitor* self);
+static GeeCollection* directory_monitor_file_info_map_get_all (DirectoryMonitorFileInfoMap* self);
+GFileInfo* directory_monitor_query_file_info (DirectoryMonitor* self, GFile* file);
+static GFileInfo* directory_monitor_file_info_map_query_info (DirectoryMonitorFileInfoMap* self, GFile* file, GCancellable* cancellable);
+static void directory_monitor_real_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void directory_monitor_real_root_deleted (DirectoryMonitor* self, GFile* root);
+static void directory_monitor_real_discovery_started (DirectoryMonitor* self);
+static void directory_monitor_real_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void directory_monitor_real_directory_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void directory_monitor_real_discovery_failed (DirectoryMonitor* self, const gchar* reason);
+static void directory_monitor_real_discovery_completed (DirectoryMonitor* self);
+static void directory_monitor_real_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void directory_monitor_real_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+static void directory_monitor_real_file_altered (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_real_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+static void directory_monitor_real_file_attributes_altered (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_real_file_deleted (DirectoryMonitor* self, GFile* file);
+static void directory_monitor_real_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_real_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
+static void directory_monitor_real_directory_altered (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_real_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+static void directory_monitor_real_directory_attributes_altered (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_real_directory_deleted (DirectoryMonitor* self, GFile* dir);
+static void directory_monitor_real_closed (DirectoryMonitor* self);
+enum {
+ DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_DUMMY_PROPERTY
+};
+static void directory_monitor_query_info_queue_element_finalize (DirectoryMonitorQueryInfoQueueElement* obj);
+#define DIRECTORY_MONITOR_FILE_INFO_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMapPrivate))
+enum {
+ DIRECTORY_MONITOR_FILE_INFO_MAP_DUMMY_PROPERTY
+};
+static gboolean directory_monitor_file_info_map_normalize_file (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info, GFile** normalized, gchar** id);
+static void directory_monitor_file_info_map_remove_all (DirectoryMonitorFileInfoMap* self, GeeCollection* files);
+static void directory_monitor_file_info_map_finalize (DirectoryMonitorFileInfoMap* obj);
+static void directory_monitor_finalize (GObject* obj);
+
+
+static GType directory_monitor_ftype_get_type (void) {
+ static volatile gsize directory_monitor_ftype_type_id__volatile = 0;
+ if (g_once_init_enter (&directory_monitor_ftype_type_id__volatile)) {
+ static const GEnumValue values[] = {{DIRECTORY_MONITOR_FTYPE_FILE, "DIRECTORY_MONITOR_FTYPE_FILE", "file"}, {DIRECTORY_MONITOR_FTYPE_DIRECTORY, "DIRECTORY_MONITOR_FTYPE_DIRECTORY", "directory"}, {DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "DIRECTORY_MONITOR_FTYPE_UNSUPPORTED", "unsupported"}, {0, NULL, NULL}};
+ GType directory_monitor_ftype_type_id;
+ directory_monitor_ftype_type_id = g_enum_register_static ("DirectoryMonitorFType", values);
+ g_once_init_leave (&directory_monitor_ftype_type_id__volatile, directory_monitor_ftype_type_id);
+ }
+ return directory_monitor_ftype_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 459 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 802 "DirectoryMonitor.c"
+}
+
+
+DirectoryMonitor* directory_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring) {
+ DirectoryMonitor * self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 458 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (root), NULL);
+#line 458 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self = (DirectoryMonitor*) g_object_new (object_type, NULL);
+#line 459 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = root;
+#line 459 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 459 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->root);
+#line 459 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->root = _tmp1_;
+#line 460 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = recurse;
+#line 460 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->recurse = _tmp2_;
+#line 461 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = monitoring;
+#line 461 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->monitoring = _tmp3_;
+#line 458 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return self;
+#line 834 "DirectoryMonitor.c"
+}
+
+
+DirectoryMonitor* directory_monitor_new (GFile* root, gboolean recurse, gboolean monitoring) {
+#line 458 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return directory_monitor_construct (TYPE_DIRECTORY_MONITOR, root, recurse, monitoring);
+#line 841 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_mdbg (const gchar* msg) {
+#line 464 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (msg != NULL);
+#line 848 "DirectoryMonitor.c"
+}
+
+
+gboolean directory_monitor_is_recursive (DirectoryMonitor* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 470 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 471 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->recurse;
+#line 471 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp0_;
+#line 471 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 863 "DirectoryMonitor.c"
+}
+
+
+gboolean directory_monitor_is_monitoring (DirectoryMonitor* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 474 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 475 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->monitoring;
+#line 475 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp0_;
+#line 475 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 878 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_root_deleted (DirectoryMonitor* self, GFile* root) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GFile* _tmp3_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (root));
+#line 479 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->root;
+#line 479 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = root;
+#line 479 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = g_file_equal (_tmp0_, _tmp1_);
+#line 479 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp2_, "this.root.equal(root)");
+#line 481 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg ("root deleted");
+#line 482 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = root;
+#line 482 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "root-deleted", _tmp3_);
+#line 903 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_root_deleted (DirectoryMonitor* self, GFile* root) {
+#line 478 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 478 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_root_deleted (self, root);
+#line 912 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
+ gboolean removed = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean updated = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFileInfo* _tmp11_ = NULL;
+#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_root));
+#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_root));
+#line 485 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_root_info));
+#line 486 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 486 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = old_root;
+#line 486 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = directory_monitor_file_info_map_remove (_tmp0_, _tmp1_, NULL);
+#line 486 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ removed = _tmp2_;
+#line 487 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (removed, "removed");
+#line 489 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = self->priv->files;
+#line 489 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = new_root;
+#line 489 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = new_root_info;
+#line 489 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = directory_monitor_file_info_map_update (_tmp3_, _tmp4_, _tmp5_);
+#line 489 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ updated = _tmp6_;
+#line 490 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (updated, "updated");
+#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = new_root;
+#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->root);
+#line 492 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->root = _tmp8_;
+#line 494 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = old_root;
+#line 494 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = new_root;
+#line 494 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = new_root_info;
+#line 494 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_root_moved (self, _tmp9_, _tmp10_, _tmp11_);
+#line 977 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFileInfo* _tmp13_ = NULL;
+#line 497 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_root));
+#line 497 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_root));
+#line 497 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_root_info));
+#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->root;
+#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = old_root;
+#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = g_file_equal (_tmp0_, _tmp1_);
+#line 498 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp2_, "this.root.equal(old_root)");
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = old_root;
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = new_root;
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = _tmp7_;
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = g_strdup_printf ("root moved: %s -> %s", _tmp5_, _tmp8_);
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = _tmp9_;
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp10_);
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp10_);
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp8_);
+#line 500 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp5_);
+#line 501 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = old_root;
+#line 501 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = new_root;
+#line 501 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = new_root_info;
+#line 501 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "root-moved", _tmp11_, _tmp12_, _tmp13_);
+#line 1042 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
+#line 497 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 497 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_root_moved (self, old_root, new_root, new_root_info);
+#line 1051 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_discovery_started (DirectoryMonitor* self) {
+#line 505 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg ("discovery started");
+#line 506 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "discovery-started");
+#line 1060 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_discovery_started (DirectoryMonitor* self) {
+#line 504 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 504 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_discovery_started (self);
+#line 1069 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 509 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 510 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 510 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = file;
+#line 510 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = info;
+#line 510 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
+#line 510 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp3_) {
+#line 1094 "DirectoryMonitor.c"
+ GFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = file;
+#line 511 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = g_file_get_path (_tmp4_);
+#line 511 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = _tmp5_;
+#line 511 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_debug ("DirectoryMonitor.vala:511: DirectoryMonitor.internal_notify_file_disco" \
+"vered: %s discovered but not added to file map", _tmp6_);
+#line 511 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp6_);
+#line 514 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return;
+#line 1110 "DirectoryMonitor.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = file;
+#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = info;
+#line 517 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_discovered (self, _tmp7_, _tmp8_);
+#line 1118 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_internal_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 509 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 509 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->internal_notify_file_discovered (self, file, info);
+#line 1127 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 520 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("file discovered: %s", _tmp2_);
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 521 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 522 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = file;
+#line 522 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = info;
+#line 522 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "file-discovered", _tmp5_, _tmp6_);
+#line 1165 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 520 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 520 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_discovered (self, file, info);
+#line 1174 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ gboolean updated = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 525 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = dir;
+#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = info;
+#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
+#line 526 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ updated = _tmp3_;
+#line 527 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (updated, "updated");
+#line 529 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = dir;
+#line 529 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = info;
+#line 529 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_discovered (self, _tmp4_, _tmp5_);
+#line 1208 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_internal_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+#line 525 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 525 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->internal_notify_directory_discovered (self, dir, info);
+#line 1217 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = dir;
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("directory discovered: %s", _tmp2_);
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 533 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 534 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = dir;
+#line 534 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = info;
+#line 534 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "directory-discovered", _tmp5_, _tmp6_);
+#line 1255 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_directory_discovered (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 532 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_discovered (self, dir, info);
+#line 1264 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 537 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (reason != NULL);
+#line 538 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = reason;
+#line 538 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:538: discovery failed: %s", _tmp0_);
+#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = reason;
+#line 539 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "discovery-failed", _tmp1_);
+#line 1281 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_discovery_failed (DirectoryMonitor* self, const gchar* reason) {
+#line 537 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 537 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_discovery_failed (self, reason);
+#line 1290 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_discovery_completed (DirectoryMonitor* self) {
+#line 543 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "discovery-completed");
+#line 1297 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_discovery_completed (DirectoryMonitor* self) {
+#line 542 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 542 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_discovery_completed (self);
+#line 1306 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+ GFile* old_file = NULL;
+ GFileInfo* old_file_info = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 546 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 546 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 546 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = info;
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = directory_monitor_is_file_create_move (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_file);
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old_file = _tmp2_;
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_file_info);
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old_file_info = _tmp3_;
+#line 549 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp4_) {
+#line 1340 "DirectoryMonitor.c"
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = old_file;
+#line 550 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = file;
+#line 550 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = info;
+#line 550 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_moved (self, _tmp5_, _tmp6_, _tmp7_);
+#line 1352 "DirectoryMonitor.c"
+ } else {
+ gboolean updated = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFileInfo* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ GFile* _tmp13_ = NULL;
+ GFileInfo* _tmp14_ = NULL;
+#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = self->priv->files;
+#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = file;
+#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = info;
+#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = directory_monitor_file_info_map_update (_tmp8_, _tmp9_, _tmp10_);
+#line 552 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ updated = _tmp11_;
+#line 553 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = updated;
+#line 553 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp12_, "updated");
+#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = file;
+#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = info;
+#line 555 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_created (self, _tmp13_, _tmp14_);
+#line 1382 "DirectoryMonitor.c"
+ }
+#line 546 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_file_info);
+#line 546 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_file);
+#line 1388 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 559 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("file created: %s", _tmp2_);
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 560 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 561 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = file;
+#line 561 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = info;
+#line 561 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "file-created", _tmp5_, _tmp6_);
+#line 1426 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 559 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 559 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_created (self, file, info);
+#line 1435 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean updated = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 564 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 564 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 564 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_file_info));
+#line 567 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 567 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = old_file;
+#line 567 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove (_tmp0_, _tmp1_, NULL);
+#line 569 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = self->priv->files;
+#line 569 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = new_file;
+#line 569 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = new_file_info;
+#line 569 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = directory_monitor_file_info_map_update (_tmp2_, _tmp3_, _tmp4_);
+#line 569 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ updated = _tmp5_;
+#line 570 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (updated, "updated");
+#line 572 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = old_file;
+#line 572 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = new_file;
+#line 572 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = new_file_info;
+#line 572 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_moved (self, _tmp6_, _tmp7_, _tmp8_);
+#line 1484 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFileInfo* _tmp10_ = NULL;
+#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_file_info));
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = old_file;
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = new_file;
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = g_strdup_printf ("file moved: %s -> %s", _tmp2_, _tmp5_);
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp7_);
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp5_);
+#line 576 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 577 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = old_file;
+#line 577 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = new_file;
+#line 577 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = new_file_info;
+#line 577 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "file-moved", _tmp8_, _tmp9_, _tmp10_);
+#line 1538 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
+#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 575 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_moved (self, old_file, new_file, new_file_info);
+#line 1547 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_file_altered (DirectoryMonitor* self, GFile* file) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 580 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("file altered: %s", _tmp2_);
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 581 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = file;
+#line 582 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "file-altered", _tmp5_);
+#line 1580 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_file_altered (DirectoryMonitor* self, GFile* file) {
+#line 580 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 580 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_altered (self, file);
+#line 1589 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+ gboolean updated = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 585 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 585 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = file;
+#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = info;
+#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
+#line 586 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ updated = _tmp3_;
+#line 587 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (updated, "updated");
+#line 589 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = file;
+#line 589 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = info;
+#line 589 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_alteration_completed (self, _tmp4_, _tmp5_);
+#line 1625 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("file alteration completed: %s", _tmp2_);
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 593 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 594 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = file;
+#line 594 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = info;
+#line 594 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "file-alteration-completed", _tmp5_, _tmp6_);
+#line 1663 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 592 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_alteration_completed (self, file, info);
+#line 1672 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 597 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("file attributes altered: %s", _tmp2_);
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 598 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = file;
+#line 599 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "file-attributes-altered", _tmp5_);
+#line 1705 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file) {
+#line 597 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 597 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_attributes_altered (self, file);
+#line 1714 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_file_deleted (DirectoryMonitor* self, GFile* file) {
+ gboolean removed = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GFile* _tmp3_ = NULL;
+#line 602 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 602 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 603 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 603 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = file;
+#line 603 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = directory_monitor_file_info_map_remove (_tmp0_, _tmp1_, NULL);
+#line 603 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ removed = _tmp2_;
+#line 604 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (removed, "removed");
+#line 606 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = file;
+#line 606 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_deleted (self, _tmp3_);
+#line 1742 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_file_deleted (DirectoryMonitor* self, GFile* file) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("file deleted: %s", _tmp2_);
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 610 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 611 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = file;
+#line 611 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "file-deleted", _tmp5_);
+#line 1775 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_file_deleted (DirectoryMonitor* self, GFile* file) {
+#line 609 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 609 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_file_deleted (self, file);
+#line 1784 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ GFile* old_dir = NULL;
+ GFileInfo* old_dir_info = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 614 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 614 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 614 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = dir;
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = info;
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = directory_monitor_is_file_create_move (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_dir);
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old_dir = _tmp2_;
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_dir_info);
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old_dir_info = _tmp3_;
+#line 617 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp4_) {
+#line 1818 "DirectoryMonitor.c"
+ DirectoryMonitorFileInfoMap* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ DirectoryMonitorFileInfoMap* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFileInfo* _tmp11_ = NULL;
+#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = self->priv->files;
+#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = old_dir;
+#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = self->priv->parent_moved;
+#line 623 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove_descendents (_tmp5_, _tmp6_, _tmp7_);
+#line 625 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = old_dir;
+#line 625 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = old_dir_info;
+#line 625 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = dir;
+#line 625 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = info;
+#line 625 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_directory_moved (self, _tmp8_, _tmp9_, _tmp10_, _tmp11_);
+#line 1844 "DirectoryMonitor.c"
+ } else {
+ gboolean updated = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFileInfo* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ GFile* _tmp17_ = NULL;
+ GFileInfo* _tmp18_ = NULL;
+#line 627 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = self->priv->files;
+#line 627 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = dir;
+#line 627 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = info;
+#line 627 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = directory_monitor_file_info_map_update (_tmp12_, _tmp13_, _tmp14_);
+#line 627 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ updated = _tmp15_;
+#line 628 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = updated;
+#line 628 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp16_, "updated");
+#line 630 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = dir;
+#line 630 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = info;
+#line 630 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_created (self, _tmp17_, _tmp18_);
+#line 1874 "DirectoryMonitor.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_dir_info);
+#line 614 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_dir);
+#line 1880 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 634 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 634 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = dir;
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("directory created: %s", _tmp2_);
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 635 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 636 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = dir;
+#line 636 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = info;
+#line 636 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "directory-created", _tmp5_, _tmp6_);
+#line 1918 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+#line 634 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 634 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_created (self, dir, info);
+#line 1927 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info) {
+ GFile* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+#line 639 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 639 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_dir));
+#line 639 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (old_dir_info));
+#line 639 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_dir));
+#line 639 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_dir_info));
+#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = old_dir;
+#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = old_dir_info;
+#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = new_dir;
+#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = new_dir_info;
+#line 641 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_internal_notify_directory_moved (self, _tmp0_, _tmp1_, _tmp2_, _tmp3_, NULL, NULL);
+#line 1956 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_internal_notify_directory_moved_data_free (gpointer _data) {
+ DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
+ _data_ = _data;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->old_dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->old_dir_info);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->new_dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->new_dir_info);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_slice_free (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData, _data_);
+#line 1975 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_internal_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFileInfo* old_dir_info, GFile* new_dir, GFileInfo* new_dir_info, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
+ DirectoryMonitor* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_slice_new0 (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, directory_monitor_async_internal_notify_directory_moved);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, directory_monitor_async_internal_notify_directory_moved_data_free);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->self = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = old_dir;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->old_dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->old_dir = _tmp2_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = old_dir_info;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->old_dir_info);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->old_dir_info = _tmp4_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = new_dir;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->new_dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->new_dir = _tmp6_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = new_dir_info;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->new_dir_info);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->new_dir_info = _tmp8_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_internal_notify_directory_moved_co (_data_);
+#line 2034 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_internal_notify_directory_moved_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
+ DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 2042 "DirectoryMonitor.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 646 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 2051 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_internal_notify_directory_moved_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
+ DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = _user_data_;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_source_object_ = source_object;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_res_ = _res_;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_internal_notify_directory_moved_co (_data_);
+#line 2065 "DirectoryMonitor.c"
+}
+
+
+static gboolean _directory_monitor_async_internal_notify_directory_moved_co_gsource_func (gpointer self) {
+ gboolean result;
+ result = directory_monitor_async_internal_notify_directory_moved_co (self);
+#line 677 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 2074 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_async_internal_notify_directory_moved_co (DirectoryMonitorAsyncInternalNotifyDirectoryMovedData* _data_) {
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_data_->_state_) {
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 0:
+#line 2083 "DirectoryMonitor.c"
+ goto _state_0;
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 1:
+#line 2087 "DirectoryMonitor.c"
+ goto _state_1;
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 2:
+#line 2091 "DirectoryMonitor.c"
+ goto _state_2;
+ default:
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_assert_not_reached ();
+#line 2096 "DirectoryMonitor.c"
+ }
+ _state_0:
+#line 646 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = NULL;
+#line 646 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 646 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->file_children = _data_->_tmp0_;
+#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = NULL;
+#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 647 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_children = _data_->_tmp1_;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = NULL;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = _data_->self->priv->files;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = NULL;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = _data_->old_dir;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = NULL;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = _data_->file_children;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = NULL;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = _data_->dir_children;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = 0;
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = directory_monitor_file_info_map_get_children (_data_->_tmp2_, _data_->_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 648 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->count = _data_->_tmp6_;
+#line 649 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = 0;
+#line 649 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = _data_->count;
+#line 649 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp7_ > 0) {
+#line 2139 "DirectoryMonitor.c"
+ {
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = NULL;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = _data_->dir_children;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = NULL;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = _g_object_ref0 (_data_->_tmp8_);
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_list = _data_->_tmp9_;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = NULL;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = _data_->_dir_child_list;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = 0;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = 0;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = _data_->_tmp11_;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_size = _data_->_tmp12_;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_index = -1;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = 0;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = _data_->_dir_child_index;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_index = _data_->_tmp13_ + 1;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = 0;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = _data_->_dir_child_index;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = 0;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = _data_->_dir_child_size;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!(_data_->_tmp14_ < _data_->_tmp15_)) {
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 2187 "DirectoryMonitor.c"
+ }
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = NULL;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = _data_->_dir_child_list;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp17_ = 0;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp17_ = _data_->_dir_child_index;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp18_ = NULL;
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp18_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp16_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp17_);
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_child = (GFile*) _data_->_tmp18_;
+#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp19_ = NULL;
+#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp19_ = _data_->self->priv->files;
+#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp20_ = NULL;
+#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp20_ = _data_->dir_child;
+#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp21_ = NULL;
+#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp21_ = directory_monitor_file_info_map_get_info (_data_->_tmp19_, _data_->_tmp20_);
+#line 654 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_info = _data_->_tmp21_;
+#line 655 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp22_ = NULL;
+#line 655 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp22_ = _data_->dir_info;
+#line 655 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp22_ == NULL) {
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp23_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp23_ = _data_->dir_child;
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp24_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp24_ = g_file_get_path (_data_->_tmp23_);
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp25_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp25_ = _data_->_tmp24_;
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:656: Unable to retrieve directory-moved info for" \
+" %s", _data_->_tmp25_);
+#line 656 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp25_);
+#line 658 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_info);
+#line 658 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_child);
+#line 658 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 2245 "DirectoryMonitor.c"
+ }
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp26_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp26_ = _data_->dir_child;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp27_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp27_ = _data_->dir_info;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp28_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp28_ = _data_->new_dir;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp29_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp29_ = _data_->dir_child;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp30_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp30_ = g_file_get_basename (_data_->_tmp29_);
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp31_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp31_ = _data_->_tmp30_;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp32_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp32_ = g_file_get_child (_data_->_tmp28_, _data_->_tmp31_);
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp33_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp33_ = _data_->_tmp32_;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp34_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp34_ = _data_->dir_info;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 1;
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_internal_notify_directory_moved (_data_->self, _data_->_tmp26_, _data_->_tmp27_, _data_->_tmp33_, _data_->_tmp34_, directory_monitor_async_internal_notify_directory_moved_ready, _data_);
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 2289 "DirectoryMonitor.c"
+ _state_1:
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_internal_notify_directory_moved_finish (_data_->self, _data_->_res_);
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp33_);
+#line 661 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp31_);
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_info);
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_child);
+#line 2301 "DirectoryMonitor.c"
+ }
+#line 653 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_dir_child_list);
+#line 2305 "DirectoryMonitor.c"
+ }
+ {
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp35_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp35_ = _data_->file_children;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp36_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp36_ = _g_object_ref0 (_data_->_tmp35_);
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_list = _data_->_tmp36_;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp37_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp37_ = _data_->_file_child_list;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp38_ = 0;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp38_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp39_ = 0;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp39_ = _data_->_tmp38_;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_size = _data_->_tmp39_;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_index = -1;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp40_ = 0;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp40_ = _data_->_file_child_index;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_index = _data_->_tmp40_ + 1;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp41_ = 0;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp41_ = _data_->_file_child_index;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp42_ = 0;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp42_ = _data_->_file_child_size;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!(_data_->_tmp41_ < _data_->_tmp42_)) {
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 2354 "DirectoryMonitor.c"
+ }
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp43_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp43_ = _data_->_file_child_list;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp44_ = 0;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp44_ = _data_->_file_child_index;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp45_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp45_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp43_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp44_);
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->file_child = (GFile*) _data_->_tmp45_;
+#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp46_ = NULL;
+#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp46_ = _data_->self->priv->files;
+#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp47_ = NULL;
+#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp47_ = _data_->file_child;
+#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp48_ = NULL;
+#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp48_ = directory_monitor_file_info_map_get_info (_data_->_tmp46_, _data_->_tmp47_);
+#line 667 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->file_info = _data_->_tmp48_;
+#line 668 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp49_ = NULL;
+#line 668 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp49_ = _data_->file_info;
+#line 668 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp49_ == NULL) {
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp50_ = NULL;
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp50_ = _data_->file_child;
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp51_ = NULL;
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp51_ = g_file_get_path (_data_->_tmp50_);
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp52_ = NULL;
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp52_ = _data_->_tmp51_;
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:669: Unable to retrieve directory-moved info for" \
+" %s", _data_->_tmp52_);
+#line 669 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp52_);
+#line 671 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_info);
+#line 671 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_child);
+#line 671 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 2412 "DirectoryMonitor.c"
+ }
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp53_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp53_ = _data_->file_child;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp54_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp54_ = _data_->new_dir;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp55_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp55_ = _data_->file_child;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp56_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp56_ = g_file_get_basename (_data_->_tmp55_);
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp57_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp57_ = _data_->_tmp56_;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp58_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp58_ = g_file_get_child (_data_->_tmp54_, _data_->_tmp57_);
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp59_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp59_ = _data_->_tmp58_;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp60_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp60_ = _data_->file_info;
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_moved (_data_->self, _data_->_tmp53_, _data_->_tmp59_, _data_->_tmp60_);
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp59_);
+#line 674 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp57_);
+#line 677 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_idle_add_full (DIRECTORY_MONITOR_DEFAULT_PRIORITY, _directory_monitor_async_internal_notify_directory_moved_co_gsource_func, _data_, NULL);
+#line 678 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 2;
+#line 678 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 2458 "DirectoryMonitor.c"
+ _state_2:
+ ;
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_info);
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_child);
+#line 2465 "DirectoryMonitor.c"
+ }
+#line 666 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_file_child_list);
+#line 2469 "DirectoryMonitor.c"
+ }
+ }
+#line 684 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp61_ = NULL;
+#line 684 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp61_ = _data_->self->priv->files;
+#line 684 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp62_ = NULL;
+#line 684 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp62_ = _data_->old_dir;
+#line 684 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove (_data_->_tmp61_, _data_->_tmp62_, NULL);
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp63_ = NULL;
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp63_ = _data_->self->priv->files;
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp64_ = NULL;
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp64_ = _data_->new_dir;
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp65_ = NULL;
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp65_ = _data_->new_dir_info;
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp66_ = FALSE;
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp66_ = directory_monitor_file_info_map_update (_data_->_tmp63_, _data_->_tmp64_, _data_->_tmp65_);
+#line 686 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->updated = _data_->_tmp66_;
+#line 687 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_data_->updated, "updated");
+#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp67_ = NULL;
+#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp67_ = _data_->old_dir;
+#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp68_ = NULL;
+#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp68_ = _data_->old_dir_info;
+#line 690 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_remove_monitor (_data_->self, _data_->_tmp67_, _data_->_tmp68_);
+#line 691 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp69_ = NULL;
+#line 691 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp69_ = _data_->new_dir;
+#line 691 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp70_ = NULL;
+#line 691 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp70_ = _data_->new_dir_info;
+#line 691 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_add_monitor (_data_->self, _data_->_tmp69_, _data_->_tmp70_);
+#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp71_ = NULL;
+#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp71_ = _data_->old_dir;
+#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp72_ = NULL;
+#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp72_ = _data_->new_dir;
+#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp73_ = NULL;
+#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp73_ = _data_->new_dir_info;
+#line 693 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_moved (_data_->self, _data_->_tmp71_, _data_->_tmp72_, _data_->_tmp73_);
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_children);
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_children);
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 2544 "DirectoryMonitor.c"
+ } else {
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 2548 "DirectoryMonitor.c"
+ }
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 644 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 2554 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFileInfo* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_dir));
+#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_dir));
+#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_dir_info));
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = old_dir;
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = new_dir;
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = g_strdup_printf ("directory moved: %s -> %s", _tmp2_, _tmp5_);
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp7_);
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp5_);
+#line 697 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 698 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = old_dir;
+#line 698 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = new_dir;
+#line 698 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = new_dir_info;
+#line 698 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "directory-moved", _tmp8_, _tmp9_, _tmp10_);
+#line 700 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = old_dir;
+#line 700 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = self->priv->root;
+#line 700 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = g_file_equal (_tmp11_, _tmp12_);
+#line 700 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp13_) {
+#line 2619 "DirectoryMonitor.c"
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFileInfo* _tmp16_ = NULL;
+#line 701 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = old_dir;
+#line 701 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = new_dir;
+#line 701 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = new_dir_info;
+#line 701 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_root_moved (self, _tmp14_, _tmp15_, _tmp16_);
+#line 2631 "DirectoryMonitor.c"
+ }
+}
+
+
+void directory_monitor_notify_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info) {
+#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 696 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_moved (self, old_dir, new_dir, new_dir_info);
+#line 2641 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_directory_altered (DirectoryMonitor* self, GFile* dir) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 704 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = dir;
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("directory altered: %s", _tmp2_);
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 705 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 706 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = dir;
+#line 706 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "directory-altered", _tmp5_);
+#line 2674 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_directory_altered (DirectoryMonitor* self, GFile* dir) {
+#line 704 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 704 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_altered (self, dir);
+#line 2683 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ gboolean updated = FALSE;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+#line 709 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 709 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 709 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = dir;
+#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = info;
+#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = directory_monitor_file_info_map_update (_tmp0_, _tmp1_, _tmp2_);
+#line 710 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ updated = _tmp3_;
+#line 711 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (updated, "updated");
+#line 713 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = dir;
+#line 713 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = info;
+#line 713 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_alteration_completed (self, _tmp4_, _tmp5_);
+#line 2719 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = dir;
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("directory alteration completed: %s", _tmp2_);
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 717 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 718 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = dir;
+#line 718 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = info;
+#line 718 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "directory-alteration-completed", _tmp5_, _tmp6_);
+#line 2757 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 716 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_alteration_completed (self, dir, info);
+#line 2766 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = dir;
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("directory attributes altered: %s", _tmp2_);
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 722 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = dir;
+#line 723 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "directory-attributes-altered", _tmp5_);
+#line 2799 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_directory_attributes_altered (DirectoryMonitor* self, GFile* dir) {
+#line 721 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 721 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_attributes_altered (self, dir);
+#line 2808 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_internal_notify_directory_deleted (DirectoryMonitor* self, GFile* dir) {
+ GFileInfo* info = NULL;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+#line 726 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 726 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 727 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 727 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = dir;
+#line 727 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = directory_monitor_file_info_map_get_info (_tmp0_, _tmp1_);
+#line 727 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ info = _tmp2_;
+#line 728 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (info != NULL, "info != null");
+#line 731 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = dir;
+#line 731 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_remove_monitor (self, _tmp3_, info);
+#line 733 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = dir;
+#line 733 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_notify_directory_deleted (self, _tmp4_, FALSE, NULL, NULL);
+#line 726 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 2843 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_notify_directory_deleted_data_free (gpointer _data) {
+ DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
+ _data_ = _data;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_slice_free (DirectoryMonitorAsyncNotifyDirectoryDeletedData, _data_);
+#line 2856 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_notify_directory_deleted (DirectoryMonitor* self, GFile* dir, gboolean already_removed, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
+ DirectoryMonitor* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_slice_new0 (DirectoryMonitorAsyncNotifyDirectoryDeletedData);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, directory_monitor_async_notify_directory_deleted);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, directory_monitor_async_notify_directory_deleted_data_free);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->self = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = dir;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir = _tmp2_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = already_removed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->already_removed = _tmp3_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_notify_directory_deleted_co (_data_);
+#line 2890 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_notify_directory_deleted_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
+ DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 2898 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_async_notify_directory_deleted_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
+ DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = _user_data_;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_source_object_ = source_object;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_res_ = _res_;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_notify_directory_deleted_co (_data_);
+#line 2912 "DirectoryMonitor.c"
+}
+
+
+static gboolean _directory_monitor_async_notify_directory_deleted_co_gsource_func (gpointer self) {
+ gboolean result;
+ result = directory_monitor_async_notify_directory_deleted_co (self);
+#line 765 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 2921 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_async_notify_directory_deleted_co (DirectoryMonitorAsyncNotifyDirectoryDeletedData* _data_) {
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_data_->_state_) {
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 0:
+#line 2930 "DirectoryMonitor.c"
+ goto _state_0;
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 1:
+#line 2934 "DirectoryMonitor.c"
+ goto _state_1;
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 2:
+#line 2938 "DirectoryMonitor.c"
+ goto _state_2;
+ default:
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_assert_not_reached ();
+#line 2943 "DirectoryMonitor.c"
+ }
+ _state_0:
+#line 744 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = NULL;
+#line 744 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 744 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->file_children = _data_->_tmp0_;
+#line 745 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = NULL;
+#line 745 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 745 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_children = _data_->_tmp1_;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = _data_->self->priv->files;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = _data_->dir;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = _data_->file_children;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = _data_->dir_children;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = 0;
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = directory_monitor_file_info_map_get_children (_data_->_tmp2_, _data_->_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 746 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->count = _data_->_tmp6_;
+#line 747 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = 0;
+#line 747 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = _data_->count;
+#line 747 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp7_ > 0) {
+#line 2986 "DirectoryMonitor.c"
+ {
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = NULL;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = _data_->dir_children;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = NULL;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = _g_object_ref0 (_data_->_tmp8_);
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_list = _data_->_tmp9_;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = NULL;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = _data_->_dir_child_list;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = _data_->_tmp11_;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_size = _data_->_tmp12_;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_index = -1;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = _data_->_dir_child_index;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_dir_child_index = _data_->_tmp13_ + 1;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = _data_->_dir_child_index;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = _data_->_dir_child_size;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!(_data_->_tmp14_ < _data_->_tmp15_)) {
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 3034 "DirectoryMonitor.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = NULL;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = _data_->_dir_child_list;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp17_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp17_ = _data_->_dir_child_index;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp18_ = NULL;
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp18_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp16_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp17_);
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_child = (GFile*) _data_->_tmp18_;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp19_ = NULL;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp19_ = _data_->dir_child;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 1;
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_notify_directory_deleted (_data_->self, _data_->_tmp19_, FALSE, directory_monitor_async_notify_directory_deleted_ready, _data_);
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3060 "DirectoryMonitor.c"
+ _state_1:
+#line 756 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_async_notify_directory_deleted_finish (_data_->self, _data_->_res_);
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_child);
+#line 3066 "DirectoryMonitor.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_dir_child_list);
+#line 3070 "DirectoryMonitor.c"
+ }
+ {
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp20_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp20_ = _data_->file_children;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp21_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp21_ = _g_object_ref0 (_data_->_tmp20_);
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_list = _data_->_tmp21_;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp22_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp22_ = _data_->_file_child_list;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp23_ = 0;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp23_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp24_ = 0;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp24_ = _data_->_tmp23_;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_size = _data_->_tmp24_;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_index = -1;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp25_ = 0;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp25_ = _data_->_file_child_index;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_file_child_index = _data_->_tmp25_ + 1;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp26_ = 0;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp26_ = _data_->_file_child_index;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp27_ = 0;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp27_ = _data_->_file_child_size;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!(_data_->_tmp26_ < _data_->_tmp27_)) {
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 3119 "DirectoryMonitor.c"
+ }
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp28_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp28_ = _data_->_file_child_list;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp29_ = 0;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp29_ = _data_->_file_child_index;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp30_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp30_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp28_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _data_->_tmp29_);
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->file_child = (GFile*) _data_->_tmp30_;
+#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp31_ = NULL;
+#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp31_ = _data_->self->priv->files;
+#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp32_ = NULL;
+#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp32_ = _data_->file_child;
+#line 761 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove (_data_->_tmp31_, _data_->_tmp32_, NULL);
+#line 763 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp33_ = NULL;
+#line 763 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp33_ = _data_->file_child;
+#line 763 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_deleted (_data_->self, _data_->_tmp33_);
+#line 765 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_idle_add_full (DIRECTORY_MONITOR_DEFAULT_PRIORITY, _directory_monitor_async_notify_directory_deleted_co_gsource_func, _data_, NULL);
+#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 2;
+#line 766 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3157 "DirectoryMonitor.c"
+ _state_2:
+ ;
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_child);
+#line 3162 "DirectoryMonitor.c"
+ }
+#line 760 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_file_child_list);
+#line 3166 "DirectoryMonitor.c"
+ }
+ }
+#line 770 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp34_ = FALSE;
+#line 770 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp34_ = _data_->already_removed;
+#line 770 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_data_->_tmp34_) {
+#line 771 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp35_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp35_ = _data_->self->priv->files;
+#line 771 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp36_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp36_ = _data_->dir;
+#line 771 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove (_data_->_tmp35_, _data_->_tmp36_, NULL);
+#line 3185 "DirectoryMonitor.c"
+ }
+#line 773 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp37_ = NULL;
+#line 773 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp37_ = _data_->dir;
+#line 773 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_deleted (_data_->self, _data_->_tmp37_);
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_children);
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_children);
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3201 "DirectoryMonitor.c"
+ } else {
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 3205 "DirectoryMonitor.c"
+ }
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 736 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3211 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_directory_deleted (DirectoryMonitor* self, GFile* dir) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 776 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = dir;
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("directory deleted: %s", _tmp2_);
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 777 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 778 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = dir;
+#line 778 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "directory-deleted", _tmp5_);
+#line 780 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = dir;
+#line 780 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = self->priv->root;
+#line 780 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = g_file_equal (_tmp6_, _tmp7_);
+#line 780 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp8_) {
+#line 3255 "DirectoryMonitor.c"
+ GFile* _tmp9_ = NULL;
+#line 781 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = dir;
+#line 781 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_root_deleted (self, _tmp9_);
+#line 3261 "DirectoryMonitor.c"
+ }
+}
+
+
+void directory_monitor_notify_directory_deleted (DirectoryMonitor* self, GFile* dir) {
+#line 776 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 776 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_directory_deleted (self, dir);
+#line 3271 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_notify_closed (DirectoryMonitor* self) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->root;
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_strdup_printf ("monitoring of %s closed", _tmp2_);
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp4_);
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp4_);
+#line 785 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp2_);
+#line 786 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_emit_by_name (self, "closed");
+#line 3299 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_notify_closed (DirectoryMonitor* self) {
+#line 784 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 784 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->notify_closed (self);
+#line 3308 "DirectoryMonitor.c"
+}
+
+
+GFile* directory_monitor_get_root (DirectoryMonitor* self) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 789 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
+#line 790 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->root;
+#line 790 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 790 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp1_;
+#line 790 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 3326 "DirectoryMonitor.c"
+}
+
+
+gboolean directory_monitor_is_in_root (DirectoryMonitor* self, GFile* file) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 793 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 793 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 794 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 794 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = self->priv->root;
+#line 794 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = g_file_has_prefix (_tmp0_, _tmp1_);
+#line 794 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp2_;
+#line 794 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 3349 "DirectoryMonitor.c"
+}
+
+
+gboolean directory_monitor_has_started (DirectoryMonitor* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 797 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 798 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->started;
+#line 798 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp0_;
+#line 798 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 3364 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_start_discovery (DirectoryMonitor* self) {
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 802 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->started;
+#line 802 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (!_tmp0_, "!started");
+#line 804 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->has_discovery_started = TRUE;
+#line 805 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->started = TRUE;
+#line 807 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_discovery_started (self);
+#line 810 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->outstanding_exploration_dirs = 1;
+#line 811 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = self->priv->root;
+#line 811 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_async (self, _tmp1_, NULL, TRUE, NULL, NULL);
+#line 3389 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_close (DirectoryMonitor* self) {
+ GCancellable* _tmp0_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+#line 818 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 818 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_cancellable_cancel (_tmp0_);
+#line 3400 "DirectoryMonitor.c"
+ {
+ GeeIterator* _monitor_it = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = self->priv->monitors;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MAP, GeeMap));
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = _tmp5_;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp4_);
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _monitor_it = _tmp6_;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 3427 "DirectoryMonitor.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GFileMonitor* monitor = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ GFileMonitor* _tmp11_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = _monitor_it;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp8_) {
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 3442 "DirectoryMonitor.c"
+ }
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = _monitor_it;
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ monitor = (GFileMonitor*) _tmp10_;
+#line 822 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = monitor;
+#line 822 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_cancel_monitor (self, _tmp11_);
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 3456 "DirectoryMonitor.c"
+ }
+#line 821 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_monitor_it);
+#line 3460 "DirectoryMonitor.c"
+ }
+#line 824 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = self->priv->monitors;
+#line 824 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
+#line 826 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_closed (self);
+#line 3468 "DirectoryMonitor.c"
+}
+
+
+void directory_monitor_close (DirectoryMonitor* self) {
+#line 816 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 816 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_GET_CLASS (self)->close (self);
+#line 3477 "DirectoryMonitor.c"
+}
+
+
+static DirectoryMonitorFType directory_monitor_get_ftype (GFileInfo* info) {
+ DirectoryMonitorFType result = 0;
+ GFileType file_type = 0;
+ GFileInfo* _tmp0_ = NULL;
+ GFileType _tmp1_ = 0;
+ GFileType _tmp2_ = 0;
+#line 829 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), 0);
+#line 830 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = info;
+#line 830 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_info_get_file_type (_tmp0_);
+#line 830 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ file_type = _tmp1_;
+#line 831 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = file_type;
+#line 831 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp2_) {
+#line 831 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_TYPE_REGULAR:
+#line 3501 "DirectoryMonitor.c"
+ {
+#line 833 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = DIRECTORY_MONITOR_FTYPE_FILE;
+#line 833 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 3507 "DirectoryMonitor.c"
+ }
+#line 831 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_TYPE_DIRECTORY:
+#line 3511 "DirectoryMonitor.c"
+ {
+#line 836 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = DIRECTORY_MONITOR_FTYPE_DIRECTORY;
+#line 836 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 3517 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ GFileType _tmp3_ = 0;
+ GEnumValue* _tmp4_;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = file_type;
+#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_enum_get_value (g_type_class_ref (g_file_type_get_type ()), _tmp3_);
+#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = g_strdup_printf ("query_ftype: Unknown file type %s", (_tmp4_ != NULL) ? _tmp4_->value_name : NULL);
+#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = _tmp5_;
+#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp6_);
+#line 839 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp6_);
+#line 840 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = DIRECTORY_MONITOR_FTYPE_UNSUPPORTED;
+#line 840 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 3541 "DirectoryMonitor.c"
+ }
+ }
+}
+
+
+static void directory_monitor_explore_async_data_free (gpointer _data) {
+ DirectoryMonitorExploreAsyncData* _data_;
+ _data_ = _data;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_info);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_slice_free (DirectoryMonitorExploreAsyncData, _data_);
+#line 3558 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_explore_async (DirectoryMonitor* self, GFile* dir, GFileInfo* dir_info, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ DirectoryMonitorExploreAsyncData* _data_;
+ DirectoryMonitor* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_slice_new0 (DirectoryMonitorExploreAsyncData);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, directory_monitor_explore_async);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, directory_monitor_explore_async_data_free);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->self = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = dir;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir = _tmp2_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = dir_info;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_info);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_info = _tmp4_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = in_discovery;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->in_discovery = _tmp5_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_async_co (_data_);
+#line 3602 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_explore_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
+ DirectoryMonitorExploreAsyncData* _data_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 3610 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_explore_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
+ DirectoryMonitorExploreAsyncData* _data_;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = _user_data_;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_source_object_ = source_object;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_res_ = _res_;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_async_co (_data_);
+#line 3624 "DirectoryMonitor.c"
+}
+
+
+static void _g_object_unref0_ (gpointer var) {
+#line 911 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+#line 3631 "DirectoryMonitor.c"
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+#line 911 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+#line 911 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_list_free (self);
+#line 3640 "DirectoryMonitor.c"
+}
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 3649 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_explore_async_co (DirectoryMonitorExploreAsyncData* _data_) {
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_data_->_state_) {
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 0:
+#line 3658 "DirectoryMonitor.c"
+ goto _state_0;
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 1:
+#line 3662 "DirectoryMonitor.c"
+ goto _state_1;
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 2:
+#line 3666 "DirectoryMonitor.c"
+ goto _state_2;
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 3:
+#line 3670 "DirectoryMonitor.c"
+ goto _state_3;
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 4:
+#line 3674 "DirectoryMonitor.c"
+ goto _state_4;
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 5:
+#line 3678 "DirectoryMonitor.c"
+ goto _state_5;
+ default:
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_assert_not_reached ();
+#line 3683 "DirectoryMonitor.c"
+ }
+ _state_0:
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = _data_->self->priv->files;
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = _data_->dir;
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = _data_->dir_info;
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = FALSE;
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = directory_monitor_file_info_map_contains (_data_->_tmp0_, _data_->_tmp1_, _data_->_tmp2_);
+#line 845 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp3_) {
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = _data_->dir;
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = g_file_get_path (_data_->_tmp4_);
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = _data_->_tmp5_;
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:846: Directory loop detected at %s, not explorin" \
+"g", _data_->_tmp6_);
+#line 846 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp6_);
+#line 848 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = FALSE;
+#line 848 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = _data_->in_discovery;
+#line 848 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp7_);
+#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3730 "DirectoryMonitor.c"
+ } else {
+#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 3734 "DirectoryMonitor.c"
+ }
+#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 850 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3740 "DirectoryMonitor.c"
+ }
+#line 854 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = NULL;
+#line 854 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = _data_->dir_info;
+#line 854 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = NULL;
+#line 854 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = _g_object_ref0 (_data_->_tmp8_);
+#line 854 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->local_dir_info = _data_->_tmp9_;
+#line 855 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = NULL;
+#line 855 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = _data_->local_dir_info;
+#line 855 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp10_ == NULL) {
+#line 3758 "DirectoryMonitor.c"
+ {
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = _data_->dir;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = _data_->self->priv->cancellable;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 1;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_query_info_async (_data_->_tmp12_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_DIR_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _data_->_tmp13_, directory_monitor_explore_async_ready, _data_);
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3774 "DirectoryMonitor.c"
+ _state_1:
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = g_file_query_info_finish (_data_->_tmp12_, _data_->_res_, &_data_->_inner_error_);
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = _data_->_tmp14_;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 3784 "DirectoryMonitor.c"
+ goto __catch469_g_error;
+ }
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = _data_->_tmp11_;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 857 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->local_dir_info = _data_->_tmp15_;
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp11_);
+#line 3799 "DirectoryMonitor.c"
+ }
+ goto __finally469;
+ __catch469_g_error:
+ {
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->err = _data_->_inner_error_;
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_inner_error_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = _data_->dir;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp17_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp17_ = g_file_get_path (_data_->_tmp16_);
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp18_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp18_ = _data_->_tmp17_;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp19_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp19_ = _data_->err;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp20_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp20_ = _data_->_tmp19_->message;
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:860: Unable to retrieve info on %s: %s", _data_->_tmp18_, _data_->_tmp20_);
+#line 860 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp18_);
+#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp21_ = FALSE;
+#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp21_ = _data_->in_discovery;
+#line 862 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp21_);
+#line 864 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_error_free0 (_data_->err);
+#line 864 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 864 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 864 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3846 "DirectoryMonitor.c"
+ } else {
+#line 864 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 3850 "DirectoryMonitor.c"
+ }
+#line 864 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 864 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3856 "DirectoryMonitor.c"
+ }
+ __finally469:
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_clear_error (&_data_->_inner_error_);
+#line 856 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3869 "DirectoryMonitor.c"
+ }
+ }
+#line 868 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp22_ = NULL;
+#line 868 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp22_ = _data_->local_dir_info;
+#line 868 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp23_ = FALSE;
+#line 868 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp23_ = g_file_info_get_is_hidden (_data_->_tmp22_);
+#line 868 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp23_) {
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp24_ = NULL;
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp24_ = _data_->dir;
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp25_ = NULL;
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp25_ = g_file_get_path (_data_->_tmp24_);
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp26_ = NULL;
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp26_ = _data_->_tmp25_;
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:869: Ignoring hidden directory %s", _data_->_tmp26_);
+#line 869 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp26_);
+#line 871 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp27_ = FALSE;
+#line 871 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp27_ = _data_->in_discovery;
+#line 871 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp27_);
+#line 873 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 873 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 873 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3910 "DirectoryMonitor.c"
+ } else {
+#line 873 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 3914 "DirectoryMonitor.c"
+ }
+#line 873 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 873 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3920 "DirectoryMonitor.c"
+ }
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp28_ = NULL;
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp28_ = _data_->local_dir_info;
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp29_ = NULL;
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp29_ = get_file_info_id (_data_->_tmp28_);
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp30_ = NULL;
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp30_ = _data_->_tmp29_;
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp31_ = FALSE;
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp31_ = _data_->_tmp30_ == NULL;
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp30_);
+#line 879 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp31_) {
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp32_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp32_ = _data_->dir;
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp33_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp33_ = g_file_get_path (_data_->_tmp32_);
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp34_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp34_ = _data_->_tmp33_;
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:880: Unable to retrieve file ID on %s: skipping", _data_->_tmp34_);
+#line 880 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp34_);
+#line 882 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp35_ = FALSE;
+#line 882 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp35_ = _data_->in_discovery;
+#line 882 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp35_);
+#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3970 "DirectoryMonitor.c"
+ } else {
+#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 3974 "DirectoryMonitor.c"
+ }
+#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 884 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 3980 "DirectoryMonitor.c"
+ }
+#line 888 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp36_ = NULL;
+#line 888 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp36_ = _data_->local_dir_info;
+#line 888 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp37_ = 0;
+#line 888 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp37_ = g_file_info_get_file_type (_data_->_tmp36_);
+#line 888 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp37_ != G_FILE_TYPE_DIRECTORY) {
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp38_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp38_ = _ ("Unable to monitor %s: Not a directory (%s)");
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp39_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp39_ = _data_->dir;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp40_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp40_ = g_file_get_path (_data_->_tmp39_);
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp41_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp41_ = _data_->_tmp40_;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp42_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp42_ = _data_->local_dir_info;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp43_ = 0;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp43_ = g_file_info_get_file_type (_data_->_tmp42_);
+#line 890 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ memset (&_data_->_tmp44_, 0, sizeof (GEnumValue*));
+#line 890 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp44_ = g_enum_get_value (g_type_class_ref (g_file_type_get_type ()), _data_->_tmp43_);
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp45_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp45_ = g_strdup_printf (_data_->_tmp38_, _data_->_tmp41_, (_data_->_tmp44_ != NULL) ? _data_->_tmp44_->value_name : NULL);
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp46_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp46_ = _data_->_tmp45_;
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_discovery_failed (_data_->self, _data_->_tmp46_);
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp46_);
+#line 889 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp41_);
+#line 892 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp47_ = FALSE;
+#line 892 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp47_ = _data_->in_discovery;
+#line 892 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp47_);
+#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 4046 "DirectoryMonitor.c"
+ } else {
+#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 4050 "DirectoryMonitor.c"
+ }
+#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 894 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4056 "DirectoryMonitor.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_map = NULL;
+#line 902 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->file_map = NULL;
+#line 4062 "DirectoryMonitor.c"
+ {
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp48_ = NULL;
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp48_ = _data_->dir;
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp49_ = NULL;
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp49_ = _data_->self->priv->cancellable;
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 2;
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_enumerate_children_async (_data_->_tmp48_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _data_->_tmp49_, directory_monitor_explore_async_ready, _data_);
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4078 "DirectoryMonitor.c"
+ _state_2:
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp50_ = NULL;
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp50_ = g_file_enumerate_children_finish (_data_->_tmp48_, _data_->_res_, &_data_->_inner_error_);
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->enumerator = _data_->_tmp50_;
+#line 905 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 4088 "DirectoryMonitor.c"
+ goto __catch470_g_error;
+ }
+ {
+#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp51_ = TRUE;
+#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_data_->_tmp51_) {
+#line 4098 "DirectoryMonitor.c"
+ }
+#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp51_ = FALSE;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp52_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp52_ = _data_->enumerator;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp53_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp53_ = _data_->self->priv->cancellable;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 3;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_enumerator_next_files_async (_data_->_tmp52_, 10, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _data_->_tmp53_, directory_monitor_explore_async_ready, _data_);
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4116 "DirectoryMonitor.c"
+ _state_3:
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp54_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp54_ = g_file_enumerator_next_files_finish (_data_->_tmp52_, _data_->_res_, &_data_->_inner_error_);
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->infos = _data_->_tmp54_;
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 908 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->enumerator);
+#line 4128 "DirectoryMonitor.c"
+ goto __catch470_g_error;
+ }
+#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp55_ = NULL;
+#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp55_ = _data_->infos;
+#line 910 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp55_ == NULL) {
+#line 911 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ __g_list_free__g_object_unref0_0 (_data_->infos);
+#line 911 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 4141 "DirectoryMonitor.c"
+ }
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp56_ = NULL;
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp56_ = _data_->infos;
+#line 4147 "DirectoryMonitor.c"
+ {
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->info_collection = _data_->_tmp56_;
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ for (_data_->info_it = _data_->info_collection; _data_->info_it != NULL; _data_->info_it = _data_->info_it->next) {
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp57_ = NULL;
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp57_ = _g_object_ref0 ((GFileInfo*) _data_->info_it->data);
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->info = _data_->_tmp57_;
+#line 4159 "DirectoryMonitor.c"
+ {
+#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp58_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp58_ = _data_->info;
+#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp59_ = FALSE;
+#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp59_ = g_file_info_get_is_hidden (_data_->_tmp58_);
+#line 915 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp59_) {
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp60_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp60_ = _data_->dir;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp61_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp61_ = _data_->info;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp62_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp62_ = g_file_info_get_name (_data_->_tmp61_);
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp63_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp63_ = g_file_get_child (_data_->_tmp60_, _data_->_tmp62_);
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp64_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp64_ = _data_->_tmp63_;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp65_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp65_ = g_file_get_path (_data_->_tmp64_);
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp66_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp66_ = _data_->_tmp65_;
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:916: Skipping hidden file/directory %s", _data_->_tmp66_);
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp66_);
+#line 916 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp64_);
+#line 919 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 919 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 4209 "DirectoryMonitor.c"
+ }
+#line 923 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp67_ = NULL;
+#line 923 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp67_ = _data_->info;
+#line 923 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp68_ = FALSE;
+#line 923 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp68_ = directory_monitor_is_file_symlink_supported (_data_->_tmp67_);
+#line 923 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_data_->_tmp68_) {
+#line 924 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 924 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 4225 "DirectoryMonitor.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp69_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp69_ = _data_->info;
+#line 926 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp70_ = 0;
+#line 926 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp70_ = g_file_info_get_file_type (_data_->_tmp69_);
+#line 926 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_data_->_tmp70_) {
+#line 926 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_TYPE_REGULAR:
+#line 4239 "DirectoryMonitor.c"
+ {
+#line 928 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp71_ = NULL;
+#line 928 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp71_ = _data_->file_map;
+#line 928 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp71_ == NULL) {
+#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp72_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp72_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_map);
+#line 929 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->file_map = _data_->_tmp72_;
+#line 4255 "DirectoryMonitor.c"
+ }
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp73_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp73_ = _data_->file_map;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp74_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp74_ = _data_->dir;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp75_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp75_ = _data_->info;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp76_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp76_ = g_file_info_get_name (_data_->_tmp75_);
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp77_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp77_ = g_file_get_child (_data_->_tmp74_, _data_->_tmp76_);
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp78_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp78_ = _data_->_tmp77_;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp79_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp79_ = _data_->info;
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp73_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp78_, _data_->_tmp79_);
+#line 931 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp78_);
+#line 932 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 4291 "DirectoryMonitor.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_TYPE_DIRECTORY:
+#line 4295 "DirectoryMonitor.c"
+ {
+#line 935 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp80_ = NULL;
+#line 935 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp80_ = _data_->dir_map;
+#line 935 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp80_ == NULL) {
+#line 936 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp81_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp81_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 936 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_map);
+#line 936 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->dir_map = _data_->_tmp81_;
+#line 4311 "DirectoryMonitor.c"
+ }
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp82_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp82_ = _data_->dir_map;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp83_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp83_ = _data_->dir;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp84_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp84_ = _data_->info;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp85_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp85_ = g_file_info_get_name (_data_->_tmp84_);
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp86_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp86_ = g_file_get_child (_data_->_tmp83_, _data_->_tmp85_);
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp87_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp87_ = _data_->_tmp86_;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp88_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp88_ = _data_->info;
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp82_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp87_, _data_->_tmp88_);
+#line 938 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp87_);
+#line 939 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 4347 "DirectoryMonitor.c"
+ }
+ default:
+ {
+#line 943 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 4353 "DirectoryMonitor.c"
+ }
+ }
+#line 913 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 4358 "DirectoryMonitor.c"
+ }
+ }
+ }
+#line 907 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ __g_list_free__g_object_unref0_0 (_data_->infos);
+#line 4364 "DirectoryMonitor.c"
+ }
+ }
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->enumerator);
+#line 4369 "DirectoryMonitor.c"
+ }
+ goto __finally470;
+ __catch470_g_error:
+ {
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->err2 = _data_->_inner_error_;
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_inner_error_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp89_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp89_ = _data_->dir;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp90_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp90_ = g_file_get_path (_data_->_tmp89_);
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp91_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp91_ = _data_->_tmp90_;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp92_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp92_ = _data_->err2;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp93_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp93_ = _data_->_tmp92_->message;
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:948: Aborted directory traversal of %s: %s", _data_->_tmp91_, _data_->_tmp93_);
+#line 948 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_data_->_tmp91_);
+#line 950 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp94_ = FALSE;
+#line 950 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp94_ = _data_->in_discovery;
+#line 950 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp94_);
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_error_free0 (_data_->err2);
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_map);
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_map);
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 4420 "DirectoryMonitor.c"
+ } else {
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 4424 "DirectoryMonitor.c"
+ }
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 952 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4430 "DirectoryMonitor.c"
+ }
+ __finally470:
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_map);
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_map);
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_clear_error (&_data_->_inner_error_);
+#line 904 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4447 "DirectoryMonitor.c"
+ }
+#line 956 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp95_ = FALSE;
+#line 956 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp95_ = _data_->in_discovery;
+#line 956 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp95_) {
+#line 957 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp96_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp96_ = _data_->dir;
+#line 957 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp97_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp97_ = _data_->local_dir_info;
+#line 957 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_directory_discovered (_data_->self, _data_->_tmp96_, _data_->_tmp97_);
+#line 4465 "DirectoryMonitor.c"
+ } else {
+#line 959 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp98_ = NULL;
+#line 959 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp98_ = _data_->dir;
+#line 959 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp99_ = NULL;
+#line 959 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp99_ = _data_->local_dir_info;
+#line 959 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_directory_created (_data_->self, _data_->_tmp98_, _data_->_tmp99_);
+#line 4477 "DirectoryMonitor.c"
+ }
+#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp100_ = NULL;
+#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp100_ = _data_->dir;
+#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp101_ = NULL;
+#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp101_ = _data_->local_dir_info;
+#line 963 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_add_monitor (_data_->self, _data_->_tmp100_, _data_->_tmp101_);
+#line 966 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp102_ = NULL;
+#line 966 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp102_ = _data_->file_map;
+#line 966 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp102_ != NULL) {
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp103_ = NULL;
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp103_ = _data_->file_map;
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp104_ = FALSE;
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp104_ = _data_->in_discovery;
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 4;
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_files (_data_->self, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp103_, GEE_TYPE_MAP, GeeMap), _data_->_tmp104_, directory_monitor_explore_async_ready, _data_);
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4509 "DirectoryMonitor.c"
+ _state_4:
+#line 967 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_files_finish (_data_->self, _data_->_res_);
+#line 4513 "DirectoryMonitor.c"
+ }
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp106_ = FALSE;
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp106_ = _data_->self->priv->recurse;
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp106_) {
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp107_ = NULL;
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp107_ = _data_->dir_map;
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp105_ = _data_->_tmp107_ != NULL;
+#line 4527 "DirectoryMonitor.c"
+ } else {
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp105_ = FALSE;
+#line 4531 "DirectoryMonitor.c"
+ }
+#line 970 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp105_) {
+#line 4535 "DirectoryMonitor.c"
+ {
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp108_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp108_ = _data_->dir_map;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp109_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp109_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp108_, GEE_TYPE_MAP, GeeMap));
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp110_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp110_ = _data_->_tmp109_;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp111_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp111_ = _data_->_tmp110_;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp112_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp112_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp111_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp113_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp113_ = _data_->_tmp112_;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp111_);
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_subdir_it = _data_->_tmp113_;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp114_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp114_ = _data_->_subdir_it;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp115_ = FALSE;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp115_ = gee_iterator_next (_data_->_tmp114_);
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_data_->_tmp115_) {
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 4579 "DirectoryMonitor.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp116_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp116_ = _data_->_subdir_it;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp117_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp117_ = gee_iterator_get (_data_->_tmp116_);
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->subdir = (GFile*) _data_->_tmp117_;
+#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp118_ = 0;
+#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp118_ = _data_->self->priv->outstanding_exploration_dirs;
+#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->self->priv->outstanding_exploration_dirs = _data_->_tmp118_ + 1;
+#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp119_ = 0;
+#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp119_ = _data_->self->priv->outstanding_exploration_dirs;
+#line 972 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp119_ > DIRECTORY_MONITOR_MAX_EXPLORATION_DIRS) {
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp120_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp120_ = _data_->subdir;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp121_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp121_ = _data_->dir_map;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp122_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp122_ = _data_->subdir;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp123_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp123_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp121_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp122_);
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp124_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp124_ = (GFileInfo*) _data_->_tmp123_;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp125_ = FALSE;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp125_ = _data_->in_discovery;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 5;
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_async (_data_->self, _data_->_tmp120_, _data_->_tmp124_, _data_->_tmp125_, directory_monitor_explore_async_ready, _data_);
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4633 "DirectoryMonitor.c"
+ _state_5:
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_finish (_data_->self, _data_->_res_);
+#line 973 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp124_);
+#line 4639 "DirectoryMonitor.c"
+ } else {
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp126_ = NULL;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp126_ = _data_->subdir;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp127_ = NULL;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp127_ = _data_->dir_map;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp128_ = NULL;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp128_ = _data_->subdir;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp129_ = NULL;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp129_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp127_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _data_->_tmp128_);
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp130_ = NULL;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp130_ = (GFileInfo*) _data_->_tmp129_;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp131_ = FALSE;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp131_ = _data_->in_discovery;
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_async (_data_->self, _data_->_tmp126_, _data_->_tmp130_, _data_->_tmp131_, NULL, NULL);
+#line 975 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp130_);
+#line 4669 "DirectoryMonitor.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->subdir);
+#line 4673 "DirectoryMonitor.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_subdir_it);
+#line 4677 "DirectoryMonitor.c"
+ }
+ }
+#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp132_ = FALSE;
+#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp132_ = _data_->in_discovery;
+#line 979 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_directory_completed (_data_->self, _data_->_tmp132_);
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->file_map);
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->dir_map);
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->local_dir_info);
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 4696 "DirectoryMonitor.c"
+ } else {
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 4700 "DirectoryMonitor.c"
+ }
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 844 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4706 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_notify_directory_files_data_free (gpointer _data) {
+ DirectoryMonitorNotifyDirectoryFilesData* _data_;
+ _data_ = _data;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->map);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_slice_free (DirectoryMonitorNotifyDirectoryFilesData, _data_);
+#line 4719 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_notify_directory_files (DirectoryMonitor* self, GeeMap* map, gboolean in_discovery, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ DirectoryMonitorNotifyDirectoryFilesData* _data_;
+ DirectoryMonitor* _tmp0_ = NULL;
+ GeeMap* _tmp1_ = NULL;
+ GeeMap* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_slice_new0 (DirectoryMonitorNotifyDirectoryFilesData);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, directory_monitor_notify_directory_files);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, directory_monitor_notify_directory_files_data_free);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->self = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = map;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->map);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->map = _tmp2_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = in_discovery;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->in_discovery = _tmp3_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_files_co (_data_);
+#line 4753 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_notify_directory_files_finish (DirectoryMonitor* self, GAsyncResult* _res_) {
+ DirectoryMonitorNotifyDirectoryFilesData* _data_;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 4761 "DirectoryMonitor.c"
+}
+
+
+static gboolean _directory_monitor_notify_directory_files_co_gsource_func (gpointer self) {
+ gboolean result;
+ result = directory_monitor_notify_directory_files_co (self);
+#line 990 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 4770 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_notify_directory_files_co (DirectoryMonitorNotifyDirectoryFilesData* _data_) {
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_data_->_state_) {
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 0:
+#line 4779 "DirectoryMonitor.c"
+ goto _state_0;
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case 1:
+#line 4783 "DirectoryMonitor.c"
+ goto _state_1;
+ default:
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_assert_not_reached ();
+#line 4788 "DirectoryMonitor.c"
+ }
+ _state_0:
+#line 983 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = NULL;
+#line 983 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp0_ = _data_->map;
+#line 983 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = NULL;
+#line 983 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp1_ = gee_map_map_iterator (_data_->_tmp0_);
+#line 983 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->iter = _data_->_tmp1_;
+#line 984 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 984 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = NULL;
+#line 984 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp2_ = _data_->iter;
+#line 984 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = FALSE;
+#line 984 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp3_ = gee_map_iterator_next (_data_->_tmp2_);
+#line 984 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_data_->_tmp3_) {
+#line 984 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 4815 "DirectoryMonitor.c"
+ }
+#line 985 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = FALSE;
+#line 985 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp4_ = _data_->in_discovery;
+#line 985 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_tmp4_) {
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp5_ = _data_->iter;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp6_ = gee_map_iterator_get_key (_data_->_tmp5_);
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp7_ = (GFile*) _data_->_tmp6_;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp8_ = _data_->iter;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp9_ = gee_map_iterator_get_value (_data_->_tmp8_);
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp10_ = (GFileInfo*) _data_->_tmp9_;
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_discovered (_data_->self, _data_->_tmp7_, _data_->_tmp10_);
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp10_);
+#line 986 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp7_);
+#line 4853 "DirectoryMonitor.c"
+ } else {
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp11_ = _data_->iter;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp12_ = gee_map_iterator_get_key (_data_->_tmp11_);
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp13_ = (GFile*) _data_->_tmp12_;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp14_ = _data_->iter;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp15_ = gee_map_iterator_get_value (_data_->_tmp14_);
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_tmp16_ = (GFileInfo*) _data_->_tmp15_;
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_created (_data_->self, _data_->_tmp13_, _data_->_tmp16_);
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp16_);
+#line 988 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp13_);
+#line 4885 "DirectoryMonitor.c"
+ }
+#line 990 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_idle_add_full (DIRECTORY_MONITOR_DEFAULT_PRIORITY, _directory_monitor_notify_directory_files_co_gsource_func, _data_, NULL);
+#line 991 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _data_->_state_ = 1;
+#line 991 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4893 "DirectoryMonitor.c"
+ _state_1:
+ ;
+ }
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_data_->iter);
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 4903 "DirectoryMonitor.c"
+ } else {
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 4907 "DirectoryMonitor.c"
+ }
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 982 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 4913 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_explore_directory_completed (DirectoryMonitor* self, gboolean in_discovery) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 997 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 998 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->outstanding_exploration_dirs;
+#line 998 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp0_ > 0, "outstanding_exploration_dirs > 0");
+#line 999 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = self->priv->outstanding_exploration_dirs;
+#line 999 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->outstanding_exploration_dirs = _tmp1_ - 1;
+#line 1001 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = in_discovery;
+#line 1001 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp3_) {
+#line 4936 "DirectoryMonitor.c"
+ gint _tmp4_ = 0;
+#line 1001 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = self->priv->outstanding_exploration_dirs;
+#line 1001 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp4_ == 0;
+#line 4942 "DirectoryMonitor.c"
+ } else {
+#line 1001 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = FALSE;
+#line 4946 "DirectoryMonitor.c"
+ }
+#line 1001 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp2_) {
+#line 1002 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_discovery_completed (self);
+#line 4952 "DirectoryMonitor.c"
+ }
+}
+
+
+static void _directory_monitor_on_monitor_notification_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self) {
+#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_on_monitor_notification ((DirectoryMonitor*) self, file, other_file, event_type);
+#line 4960 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_add_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gchar* id = NULL;
+ DirectoryMonitorFileInfoMap* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GFileMonitor* monitor = NULL;
+ GeeHashMap* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GFileMonitor* _tmp20_ = NULL;
+ GFileMonitor* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1008 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 1008 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), FALSE);
+#line 1008 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 1009 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->monitoring;
+#line 1009 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp0_) {
+#line 1010 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1010 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5001 "DirectoryMonitor.c"
+ }
+#line 1012 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = self->priv->files;
+#line 1012 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = dir;
+#line 1012 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = info;
+#line 1012 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = directory_monitor_file_info_map_get_id (_tmp1_, _tmp2_, _tmp3_);
+#line 1012 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp4_;
+#line 1013 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = id;
+#line 1013 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp5_ == NULL) {
+#line 1014 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1014 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1014 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5023 "DirectoryMonitor.c"
+ }
+#line 1017 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = self->priv->monitors;
+#line 1017 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = id;
+#line 1017 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 1017 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp8_) {
+#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1018 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5039 "DirectoryMonitor.c"
+ }
+#line 1020 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ monitor = NULL;
+#line 5043 "DirectoryMonitor.c"
+ {
+ GFileMonitor* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFileMonitor* _tmp11_ = NULL;
+ GFileMonitor* _tmp12_ = NULL;
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = dir;
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = g_file_monitor_directory (_tmp10_, DIRECTORY_MONITOR_FILE_MONITOR_FLAGS, NULL, &_inner_error_);
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = _tmp11_;
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5057 "DirectoryMonitor.c"
+ goto __catch471_g_error;
+ }
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = _tmp9_;
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = NULL;
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 1022 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ monitor = _tmp12_;
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp9_);
+#line 5070 "DirectoryMonitor.c"
+ }
+ goto __finally471;
+ __catch471_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GError* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ err = _inner_error_;
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _inner_error_ = NULL;
+#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = dir;
+#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = _tmp14_;
+#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = err;
+#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = _tmp16_->message;
+#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:1024: Unable to monitor %s: %s", _tmp15_, _tmp17_);
+#line 1024 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp15_);
+#line 1026 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1026 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_error_free0 (err);
+#line 1026 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 1026 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1026 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5109 "DirectoryMonitor.c"
+ }
+ __finally471:
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1021 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return FALSE;
+#line 5124 "DirectoryMonitor.c"
+ }
+#line 1029 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = self->priv->monitors;
+#line 1029 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = id;
+#line 1029 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = monitor;
+#line 1029 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp19_, _tmp20_);
+#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = monitor;
+#line 1030 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_connect_object (_tmp21_, "changed", (GCallback) _directory_monitor_on_monitor_notification_g_file_monitor_changed, self, 0);
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = dir;
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = g_file_get_path (_tmp22_);
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = g_strdup_printf ("Added monitor for %s", _tmp24_);
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = _tmp25_;
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp26_);
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp26_);
+#line 1032 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp24_);
+#line 1034 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = TRUE;
+#line 1034 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 1034 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1034 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5162 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_remove_monitor (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gchar* id = NULL;
+ DirectoryMonitorFileInfoMap* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GFileMonitor* monitor = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ GFileMonitor* _tmp9_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ GFileMonitor* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), FALSE);
+#line 1038 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 1039 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->monitoring;
+#line 1039 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp0_) {
+#line 1040 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1040 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5205 "DirectoryMonitor.c"
+ }
+#line 1042 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = self->priv->files;
+#line 1042 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = dir;
+#line 1042 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = info;
+#line 1042 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = directory_monitor_file_info_map_get_id (_tmp1_, _tmp2_, _tmp3_);
+#line 1042 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp4_;
+#line 1043 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = id;
+#line 1043 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp5_ == NULL) {
+#line 1044 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1044 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1044 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5227 "DirectoryMonitor.c"
+ }
+#line 1046 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = self->priv->monitors;
+#line 1046 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = id;
+#line 1046 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 1046 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ monitor = (GFileMonitor*) _tmp8_;
+#line 1047 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = monitor;
+#line 1047 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp9_ == NULL) {
+#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1048 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5249 "DirectoryMonitor.c"
+ }
+#line 1050 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = self->priv->monitors;
+#line 1050 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = id;
+#line 1050 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL);
+#line 1050 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ removed = _tmp12_;
+#line 1051 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = removed;
+#line 1051 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp13_, "removed");
+#line 1053 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = monitor;
+#line 1053 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_cancel_monitor (self, _tmp14_);
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = dir;
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = g_file_get_path (_tmp15_);
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = _tmp16_;
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = g_strdup_printf ("Removed monitor for %s", _tmp17_);
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = _tmp18_;
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp19_);
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp19_);
+#line 1055 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp17_);
+#line 1057 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = TRUE;
+#line 1057 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 1057 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 1057 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5291 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_cancel_monitor (DirectoryMonitor* self, GFileMonitor* monitor) {
+ GFileMonitor* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GFileMonitor* _tmp2_ = NULL;
+#line 1060 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 1060 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_MONITOR (monitor));
+#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = monitor;
+#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_parse_name ("changed", g_file_monitor_get_type (), &_tmp1_, NULL, FALSE);
+#line 1061 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _directory_monitor_on_monitor_notification_g_file_monitor_changed, self);
+#line 1062 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = monitor;
+#line 1062 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_monitor_cancel (_tmp2_);
+#line 5313 "DirectoryMonitor.c"
+}
+
+
+static void _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
+#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_on_completed ((DirectoryMonitorQueryInfoQueueElement*) self, source_object, res);
+#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_unref (self);
+#line 5322 "DirectoryMonitor.c"
+}
+
+
+static gboolean _directory_monitor_check_for_expired_delete_events_gsource_func (gpointer self) {
+ gboolean result;
+ result = directory_monitor_check_for_expired_delete_events ((DirectoryMonitor*) self);
+#line 1091 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 5331 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_on_monitor_notification (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileMonitorEvent event) {
+ gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileMonitorEvent _tmp5_ = 0;
+ GEnumValue* _tmp6_;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* query_info = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFileMonitorEvent _tmp14_ = 0;
+ DirectoryMonitorQueryInfoQueueElement* _tmp15_ = NULL;
+ GeeQueue* _tmp16_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp17_ = NULL;
+ GFileMonitorEvent _tmp18_ = 0;
+#line 1065 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 1065 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 1065 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail ((other_file == NULL) || G_IS_FILE (other_file));
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = other_file;
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp1_ != NULL) {
+#line 5363 "DirectoryMonitor.c"
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = other_file;
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp0_);
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _tmp3_;
+#line 5374 "DirectoryMonitor.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_strdup ("(none)");
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp0_);
+#line 1067 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _tmp4_;
+#line 5383 "DirectoryMonitor.c"
+ }
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = event;
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp5_);
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = file;
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = g_file_get_path (_tmp7_);
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = g_strdup_printf ("NOTIFY %s: file=%s other_file=%s", (_tmp6_ != NULL) ? _tmp6_->value_name : NULL, _tmp9_, _tmp0_);
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = _tmp10_;
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp11_);
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp11_);
+#line 1066 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp9_);
+#line 1076 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = file;
+#line 1076 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = other_file;
+#line 1076 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = event;
+#line 1076 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = directory_monitor_query_info_queue_element_new (self, _tmp12_, _tmp13_, _tmp14_);
+#line 1076 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ query_info = _tmp15_;
+#line 1077 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = self->priv->query_info_queue;
+#line 1077 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = query_info;
+#line 1077 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_queue_offer (_tmp16_, _tmp17_);
+#line 1079 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = event;
+#line 1079 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp18_) {
+#line 1079 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_CREATED:
+#line 1079 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
+#line 5429 "DirectoryMonitor.c"
+ {
+ GFile* _tmp19_ = NULL;
+ GCancellable* _tmp20_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp21_ = NULL;
+#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = file;
+#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = self->priv->cancellable;
+#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = query_info;
+#line 1082 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_query_info_async (_tmp19_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _tmp20_, _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback, directory_monitor_query_info_queue_element_ref (_tmp21_));
+#line 1084 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 5444 "DirectoryMonitor.c"
+ }
+#line 1079 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_DELETED:
+#line 5448 "DirectoryMonitor.c"
+ {
+ guint _tmp22_ = 0U;
+#line 1090 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = self->priv->delete_timer_id;
+#line 1090 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp22_ == ((guint) 0)) {
+#line 5455 "DirectoryMonitor.c"
+ guint _tmp23_ = 0U;
+#line 1091 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = g_timeout_add_full (G_PRIORITY_DEFAULT, DIRECTORY_MONITOR_DELETED_EXPIRATION_MSEC / 2, _directory_monitor_check_for_expired_delete_events_gsource_func, g_object_ref (self), g_object_unref);
+#line 1091 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->delete_timer_id = _tmp23_;
+#line 5461 "DirectoryMonitor.c"
+ }
+#line 1092 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 5465 "DirectoryMonitor.c"
+ }
+#line 1079 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_MOVED:
+#line 5469 "DirectoryMonitor.c"
+ {
+ GFile* _tmp24_ = NULL;
+#line 1097 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = other_file;
+#line 1097 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp24_ != NULL) {
+#line 5476 "DirectoryMonitor.c"
+ GFile* _tmp25_ = NULL;
+ GCancellable* _tmp26_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp27_ = NULL;
+#line 1098 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = other_file;
+#line 1098 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = self->priv->cancellable;
+#line 1098 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp27_ = query_info;
+#line 1098 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_query_info_async (_tmp25_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _tmp26_, _directory_monitor_query_info_queue_element_on_completed_gasync_ready_callback, directory_monitor_query_info_queue_element_ref (_tmp27_));
+#line 5488 "DirectoryMonitor.c"
+ } else {
+ GeeQueue* _tmp28_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp29_ = NULL;
+#line 1101 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:1101: Unable to process MOVED event: no other_fi" \
+"le");
+#line 1102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp28_ = self->priv->query_info_queue;
+#line 1102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp29_ = query_info;
+#line 1102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection), _tmp29_);
+#line 5500 "DirectoryMonitor.c"
+ }
+#line 1104 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 5504 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorQueryInfoQueueElement* _tmp30_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp31_ = NULL;
+#line 1108 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp30_ = query_info;
+#line 1108 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp30_->completed = TRUE;
+#line 1109 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp31_ = query_info;
+#line 1109 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_process_query_queue (self, _tmp31_);
+#line 1110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 5520 "DirectoryMonitor.c"
+ }
+ }
+#line 1065 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (query_info);
+#line 1065 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp0_);
+#line 5527 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_process_query_queue (DirectoryMonitor* self, DirectoryMonitorQueryInfoQueueElement* query_info) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ DirectoryMonitorQueryInfoQueueElement* _tmp2_ = NULL;
+#line 1114 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 1114 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail ((query_info == NULL) || DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT (query_info));
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = query_info;
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp2_ != NULL) {
+#line 5543 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = query_info;
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _tmp3_->info;
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = _tmp4_ != NULL;
+#line 5552 "DirectoryMonitor.c"
+ } else {
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = FALSE;
+#line 5556 "DirectoryMonitor.c"
+ }
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp1_) {
+#line 5560 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* _tmp5_ = NULL;
+ GFileMonitorEvent _tmp6_ = 0;
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = query_info;
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = _tmp5_->event;
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _tmp6_ == G_FILE_MONITOR_EVENT_CREATED;
+#line 5569 "DirectoryMonitor.c"
+ } else {
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = FALSE;
+#line 5573 "DirectoryMonitor.c"
+ }
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp0_) {
+#line 5577 "DirectoryMonitor.c"
+ GFile* match = NULL;
+ DirectoryMonitorFileInfoMap* _tmp7_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+#line 1120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = self->priv->files;
+#line 1120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = query_info;
+#line 1120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = _tmp8_->info;
+#line 1120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = directory_monitor_file_info_map_find_match (_tmp7_, _tmp9_);
+#line 1120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ match = _tmp10_;
+#line 1121 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = match;
+#line 1121 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp11_ != NULL) {
+#line 5598 "DirectoryMonitor.c"
+ gboolean matched = FALSE;
+ gboolean _tmp48_ = FALSE;
+#line 1122 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ matched = FALSE;
+#line 5603 "DirectoryMonitor.c"
+ {
+ GeeIterator* _enqueued_it = NULL;
+ GeeQueue* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = self->priv->query_info_queue;
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _enqueued_it = _tmp13_;
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 5616 "DirectoryMonitor.c"
+ GeeIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ DirectoryMonitorQueryInfoQueueElement* enqueued = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ DirectoryMonitorQueryInfoQueueElement* _tmp20_ = NULL;
+ GFileMonitorEvent _tmp21_ = 0;
+ DirectoryMonitorQueryInfoQueueElement* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp38_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp39_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp40_ = NULL;
+ GFile* _tmp41_ = NULL;
+ GFile* _tmp42_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp43_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp44_ = NULL;
+ GFileInfo* _tmp45_ = NULL;
+ GFileInfo* _tmp46_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp47_ = NULL;
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = _enqueued_it;
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = gee_iterator_next (_tmp14_);
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp15_) {
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 5654 "DirectoryMonitor.c"
+ }
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = _enqueued_it;
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = gee_iterator_get (_tmp16_);
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ enqueued = (DirectoryMonitorQueryInfoQueueElement*) _tmp17_;
+#line 1124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = enqueued;
+#line 1124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = _tmp20_->event;
+#line 1124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp21_ != G_FILE_MONITOR_EVENT_DELETED) {
+#line 1124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = TRUE;
+#line 5670 "DirectoryMonitor.c"
+ } else {
+ DirectoryMonitorQueryInfoQueueElement* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 1125 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = enqueued;
+#line 1125 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = _tmp22_->completed;
+#line 1125 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = _tmp23_;
+#line 5680 "DirectoryMonitor.c"
+ }
+#line 1124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp19_) {
+#line 1124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = TRUE;
+#line 5686 "DirectoryMonitor.c"
+ } else {
+ GFile* _tmp24_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = match;
+#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = enqueued;
+#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = _tmp25_->file;
+#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp27_ = g_file_equal (_tmp24_, _tmp26_);
+#line 1126 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = !_tmp27_;
+#line 5702 "DirectoryMonitor.c"
+ }
+#line 1124 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp18_) {
+#line 1127 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (enqueued);
+#line 1127 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 5710 "DirectoryMonitor.c"
+ }
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp28_ = query_info;
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp29_ = _tmp28_->file;
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp30_ = g_file_get_path (_tmp29_);
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp31_ = _tmp30_;
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp32_ = enqueued;
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp33_ = _tmp32_->file;
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp34_ = g_file_get_path (_tmp33_);
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp35_ = _tmp34_;
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp36_ = g_strdup_printf ("Matching CREATED %s to DELETED %s for MOVED", _tmp31_, _tmp35_);
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp37_ = _tmp36_;
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp37_);
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp37_);
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp35_);
+#line 1130 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp31_);
+#line 1133 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp38_ = enqueued;
+#line 1133 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp38_->event = G_FILE_MONITOR_EVENT_MOVED;
+#line 1134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp39_ = enqueued;
+#line 1134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp40_ = query_info;
+#line 1134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp41_ = _tmp40_->file;
+#line 1134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp42_ = _g_object_ref0 (_tmp41_);
+#line 1134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp39_->other_file);
+#line 1134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp39_->other_file = _tmp42_;
+#line 1135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp43_ = enqueued;
+#line 1135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp44_ = query_info;
+#line 1135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp45_ = _tmp44_->info;
+#line 1135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp46_ = _g_object_ref0 (_tmp45_);
+#line 1135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp43_->info);
+#line 1135 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp43_->info = _tmp46_;
+#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp47_ = enqueued;
+#line 1136 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp47_->completed = TRUE;
+#line 1138 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ matched = TRUE;
+#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (enqueued);
+#line 1140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 5778 "DirectoryMonitor.c"
+ }
+#line 1123 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_enqueued_it);
+#line 5782 "DirectoryMonitor.c"
+ }
+#line 1143 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp48_ = matched;
+#line 1143 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp48_) {
+#line 5788 "DirectoryMonitor.c"
+ GeeQueue* _tmp49_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp50_ = NULL;
+#line 1144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp49_ = self->priv->query_info_queue;
+#line 1144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp50_ = query_info;
+#line 1144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_COLLECTION, GeeCollection), _tmp50_);
+#line 5797 "DirectoryMonitor.c"
+ }
+ }
+#line 1117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (match);
+#line 5802 "DirectoryMonitor.c"
+ }
+ {
+ gboolean _tmp51_ = FALSE;
+#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp51_ = TRUE;
+#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 5810 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* next = NULL;
+ GeeQueue* _tmp52_ = NULL;
+ gpointer _tmp53_ = NULL;
+ gboolean _tmp54_ = FALSE;
+ DirectoryMonitorQueryInfoQueueElement* _tmp55_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* n = NULL;
+ GeeQueue* _tmp58_ = NULL;
+ gpointer _tmp59_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp60_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp61_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp62_ = NULL;
+ guint _tmp63_ = 0U;
+ DirectoryMonitorQueryInfoQueueElement* _tmp64_ = NULL;
+ GFileMonitorEvent _tmp65_ = 0;
+ GEnumValue* _tmp66_;
+ DirectoryMonitorQueryInfoQueueElement* _tmp67_ = NULL;
+ GFile* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp73_ = NULL;
+ GError* _tmp74_ = NULL;
+ gboolean _tmp87_ = FALSE;
+ DirectoryMonitorQueryInfoQueueElement* _tmp88_ = NULL;
+ GFileInfo* _tmp89_ = NULL;
+ gboolean _tmp103_ = FALSE;
+ DirectoryMonitorQueryInfoQueueElement* _tmp104_ = NULL;
+ GFileInfo* _tmp105_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp118_ = NULL;
+ GFile* _tmp119_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp120_ = NULL;
+ GFile* _tmp121_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp122_ = NULL;
+ GFileInfo* _tmp123_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp124_ = NULL;
+ GFileMonitorEvent _tmp125_ = 0;
+#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp51_) {
+#line 5850 "DirectoryMonitor.c"
+ }
+#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp51_ = FALSE;
+#line 1151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp52_ = self->priv->query_info_queue;
+#line 1151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp53_ = gee_queue_peek (_tmp52_);
+#line 1151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ next = (DirectoryMonitorQueryInfoQueueElement*) _tmp53_;
+#line 1152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp55_ = next;
+#line 1152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp55_ == NULL) {
+#line 1152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp54_ = TRUE;
+#line 5866 "DirectoryMonitor.c"
+ } else {
+ DirectoryMonitorQueryInfoQueueElement* _tmp56_ = NULL;
+ gboolean _tmp57_ = FALSE;
+#line 1152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp56_ = next;
+#line 1152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp57_ = _tmp56_->completed;
+#line 1152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp54_ = !_tmp57_;
+#line 5876 "DirectoryMonitor.c"
+ }
+#line 1152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp54_) {
+#line 1153 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (next);
+#line 1153 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 5884 "DirectoryMonitor.c"
+ }
+#line 1156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp58_ = self->priv->query_info_queue;
+#line 1156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp59_ = gee_queue_poll (_tmp58_);
+#line 1156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ n = (DirectoryMonitorQueryInfoQueueElement*) _tmp59_;
+#line 1157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp60_ = next;
+#line 1157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp61_ = n;
+#line 1157 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp60_ == _tmp61_, "next == n");
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp62_ = next;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp63_ = _tmp62_->position;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp64_ = next;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp65_ = _tmp64_->event;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp66_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp65_);
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp67_ = next;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp68_ = _tmp67_->file;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp69_ = g_file_get_path (_tmp68_);
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp70_ = _tmp69_;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp71_ = g_strdup_printf ("Completed info query %u for %s on %s", _tmp63_, (_tmp66_ != NULL) ? _tmp66_->value_name : NULL, _tmp70_);
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp72_ = _tmp71_;
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp72_);
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp72_);
+#line 1159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp70_);
+#line 1162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp73_ = next;
+#line 1162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp74_ = _tmp73_->err;
+#line 1162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp74_ != NULL) {
+#line 5932 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* _tmp75_ = NULL;
+ GFile* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp79_ = NULL;
+ GFileMonitorEvent _tmp80_ = 0;
+ GEnumValue* _tmp81_;
+ DirectoryMonitorQueryInfoQueueElement* _tmp82_ = NULL;
+ GError* _tmp83_ = NULL;
+ const gchar* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp75_ = next;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp76_ = _tmp75_->file;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp77_ = g_file_get_path (_tmp76_);
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp78_ = _tmp77_;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp79_ = next;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp80_ = _tmp79_->event;
+#line 1164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp81_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp80_);
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp82_ = next;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp83_ = _tmp82_->err;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp84_ = _tmp83_->message;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp85_ = g_strdup_printf ("Unable to retrieve file information for %s, dropping %s: %s", _tmp78_, (_tmp81_ != NULL) ? _tmp81_->value_name : NULL, _tmp84_);
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp86_ = _tmp85_;
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp86_);
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp86_);
+#line 1163 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp78_);
+#line 1166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (n);
+#line 1166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (next);
+#line 1166 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 5981 "DirectoryMonitor.c"
+ }
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp88_ = next;
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp89_ = _tmp88_->info;
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp89_ != NULL) {
+#line 5989 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* _tmp90_ = NULL;
+ GFileInfo* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp90_ = next;
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp91_ = _tmp90_->info;
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp92_ = get_file_info_id (_tmp91_);
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp93_ = _tmp92_;
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp87_ = _tmp93_ == NULL;
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp93_);
+#line 6006 "DirectoryMonitor.c"
+ } else {
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp87_ = FALSE;
+#line 6010 "DirectoryMonitor.c"
+ }
+#line 1170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp87_) {
+#line 6014 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* _tmp94_ = NULL;
+ GFile* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp98_ = NULL;
+ GFileMonitorEvent _tmp99_ = 0;
+ GEnumValue* _tmp100_;
+ gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp94_ = next;
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp95_ = _tmp94_->file;
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp96_ = g_file_get_path (_tmp95_);
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp97_ = _tmp96_;
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp98_ = next;
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp99_ = _tmp98_->event;
+#line 1172 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp100_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp99_);
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp101_ = g_strdup_printf ("Unable to retrieve file ID for %s, dropping %s", _tmp97_, (_tmp100_ != NULL) ? _tmp100_->value_name : NULL);
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp102_ = _tmp101_;
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp102_);
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp102_);
+#line 1171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp97_);
+#line 1174 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (n);
+#line 1174 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (next);
+#line 1174 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 6054 "DirectoryMonitor.c"
+ }
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp104_ = next;
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp105_ = _tmp104_->info;
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp105_ != NULL) {
+#line 6062 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* _tmp106_ = NULL;
+ GFileInfo* _tmp107_ = NULL;
+ gboolean _tmp108_ = FALSE;
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp106_ = next;
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp107_ = _tmp106_->info;
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp108_ = directory_monitor_is_file_symlink_supported (_tmp107_);
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp103_ = !_tmp108_;
+#line 6074 "DirectoryMonitor.c"
+ } else {
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp103_ = FALSE;
+#line 6078 "DirectoryMonitor.c"
+ }
+#line 1178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp103_) {
+#line 6082 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* _tmp109_ = NULL;
+ GFile* _tmp110_ = NULL;
+ gchar* _tmp111_ = NULL;
+ gchar* _tmp112_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp113_ = NULL;
+ GFileMonitorEvent _tmp114_ = 0;
+ GEnumValue* _tmp115_;
+ gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp109_ = next;
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp110_ = _tmp109_->file;
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp111_ = g_file_get_path (_tmp110_);
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp112_ = _tmp111_;
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp113_ = next;
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp114_ = _tmp113_->event;
+#line 1180 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp115_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp114_);
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp116_ = g_strdup_printf ("No symlink support for %s, dropping %s", _tmp112_, (_tmp115_ != NULL) ? _tmp115_->value_name : NULL);
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp117_ = _tmp116_;
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp117_);
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp117_);
+#line 1179 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp112_);
+#line 1182 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (n);
+#line 1182 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (next);
+#line 1182 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 6122 "DirectoryMonitor.c"
+ }
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp118_ = next;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp119_ = _tmp118_->file;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp120_ = next;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp121_ = _tmp120_->other_file;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp122_ = next;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp123_ = _tmp122_->info;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp124_ = next;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp125_ = _tmp124_->event;
+#line 1185 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_on_monitor_notification_ready (self, _tmp119_, _tmp121_, _tmp123_, _tmp125_);
+#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (n);
+#line 1149 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (next);
+#line 6146 "DirectoryMonitor.c"
+ }
+ }
+}
+
+
+static void directory_monitor_on_monitor_notification_ready (DirectoryMonitor* self, GFile* file, GFile* other_file, GFileInfo* info, GFileMonitorEvent event) {
+ gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileMonitorEvent _tmp5_ = 0;
+ GEnumValue* _tmp6_;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GFileMonitorEvent _tmp12_ = 0;
+#line 1189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (IS_DIRECTORY_MONITOR (self));
+#line 1189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 1189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail ((other_file == NULL) || G_IS_FILE (other_file));
+#line 1189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = other_file;
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp1_ != NULL) {
+#line 6175 "DirectoryMonitor.c"
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = other_file;
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp0_);
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _tmp3_;
+#line 6186 "DirectoryMonitor.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_strdup ("(null)");
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp0_);
+#line 1192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = _tmp4_;
+#line 6195 "DirectoryMonitor.c"
+ }
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = event;
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp5_);
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = file;
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = g_file_get_path (_tmp7_);
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = g_strdup_printf ("READY %s: file=%s other_file=%s", (_tmp6_ != NULL) ? _tmp6_->value_name : NULL, _tmp9_, _tmp0_);
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = _tmp10_;
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp11_);
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp11_);
+#line 1191 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp9_);
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = event;
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp12_) {
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_CREATED:
+#line 6223 "DirectoryMonitor.c"
+ {
+ GFileInfo* _tmp13_ = NULL;
+ DirectoryMonitorFType ftype = 0;
+ GFileInfo* _tmp14_ = NULL;
+ DirectoryMonitorFType _tmp15_ = 0;
+ DirectoryMonitorFType _tmp16_ = 0;
+#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = info;
+#line 1198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp13_ != NULL, "info != null");
+#line 1200 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = info;
+#line 1200 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = directory_monitor_get_ftype (_tmp14_);
+#line 1200 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp15_;
+#line 1201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = ftype;
+#line 1201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp16_) {
+#line 1201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 6246 "DirectoryMonitor.c"
+ {
+ GFile* _tmp17_ = NULL;
+ GFileInfo* _tmp18_ = NULL;
+#line 1203 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = file;
+#line 1203 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = info;
+#line 1203 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_created (self, _tmp17_, _tmp18_);
+#line 1204 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6258 "DirectoryMonitor.c"
+ }
+#line 1201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 6262 "DirectoryMonitor.c"
+ {
+ gint _tmp19_ = 0;
+ GFile* _tmp20_ = NULL;
+ GFileInfo* _tmp21_ = NULL;
+#line 1211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = self->priv->outstanding_exploration_dirs;
+#line 1211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->outstanding_exploration_dirs = _tmp19_ + 1;
+#line 1212 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = file;
+#line 1212 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = info;
+#line 1212 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_explore_async (self, _tmp20_, _tmp21_, FALSE, NULL, NULL);
+#line 1213 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6279 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp22_ = 0;
+#line 1216 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = ftype;
+#line 1216 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp22_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 1217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6290 "DirectoryMonitor.c"
+ }
+ }
+#line 1219 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6295 "DirectoryMonitor.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_CHANGED:
+#line 6299 "DirectoryMonitor.c"
+ {
+ GFileInfo* _tmp23_ = NULL;
+ GFileInfo* local_info = NULL;
+ GFile* _tmp24_ = NULL;
+ GFileInfo* _tmp25_ = NULL;
+ GFileInfo* _tmp26_ = NULL;
+ DirectoryMonitorFType ftype = 0;
+ GFileInfo* _tmp32_ = NULL;
+ DirectoryMonitorFType _tmp33_ = 0;
+ DirectoryMonitorFType _tmp34_ = 0;
+#line 1223 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = info;
+#line 1223 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp23_ == NULL, "info == null");
+#line 1225 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = file;
+#line 1225 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = directory_monitor_get_file_info (self, _tmp24_);
+#line 1225 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ local_info = _tmp25_;
+#line 1226 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = local_info;
+#line 1226 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp26_ == NULL) {
+#line 6324 "DirectoryMonitor.c"
+ GFile* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp27_ = file;
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp28_ = g_file_get_path (_tmp27_);
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp29_ = _tmp28_;
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp30_ = g_strdup_printf ("Changed event for unknown file %s", _tmp29_);
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp31_ = _tmp30_;
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg (_tmp31_);
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp31_);
+#line 1227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp29_);
+#line 1229 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 1229 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6350 "DirectoryMonitor.c"
+ }
+#line 1232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp32_ = local_info;
+#line 1232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp33_ = directory_monitor_get_ftype (_tmp32_);
+#line 1232 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp33_;
+#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp34_ = ftype;
+#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp34_) {
+#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 6364 "DirectoryMonitor.c"
+ {
+ GFile* _tmp35_ = NULL;
+#line 1235 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp35_ = file;
+#line 1235 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_altered (self, _tmp35_);
+#line 1236 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6373 "DirectoryMonitor.c"
+ }
+#line 1233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 6377 "DirectoryMonitor.c"
+ {
+ GFile* _tmp36_ = NULL;
+#line 1239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp36_ = file;
+#line 1239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_altered (self, _tmp36_);
+#line 1240 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6386 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp37_ = 0;
+#line 1243 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp37_ = ftype;
+#line 1243 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp37_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 1244 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6397 "DirectoryMonitor.c"
+ }
+ }
+#line 1246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 1246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6404 "DirectoryMonitor.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
+#line 6408 "DirectoryMonitor.c"
+ {
+ GFileInfo* _tmp38_ = NULL;
+ DirectoryMonitorFType ftype = 0;
+ GFileInfo* _tmp39_ = NULL;
+ DirectoryMonitorFType _tmp40_ = 0;
+ DirectoryMonitorFType _tmp41_ = 0;
+#line 1249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp38_ = info;
+#line 1249 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp38_ != NULL, "info != null");
+#line 1251 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp39_ = info;
+#line 1251 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp40_ = directory_monitor_get_ftype (_tmp39_);
+#line 1251 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp40_;
+#line 1252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp41_ = ftype;
+#line 1252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp41_) {
+#line 1252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 6431 "DirectoryMonitor.c"
+ {
+ GFile* _tmp42_ = NULL;
+ GFileInfo* _tmp43_ = NULL;
+#line 1254 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp42_ = file;
+#line 1254 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp43_ = info;
+#line 1254 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_alteration_completed (self, _tmp42_, _tmp43_);
+#line 1255 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6443 "DirectoryMonitor.c"
+ }
+#line 1252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 6447 "DirectoryMonitor.c"
+ {
+ GFile* _tmp44_ = NULL;
+ GFileInfo* _tmp45_ = NULL;
+#line 1258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp44_ = file;
+#line 1258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp45_ = info;
+#line 1258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_directory_alteration_completed (self, _tmp44_, _tmp45_);
+#line 1259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6459 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp46_ = 0;
+#line 1262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp46_ = ftype;
+#line 1262 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp46_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 1263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6470 "DirectoryMonitor.c"
+ }
+ }
+#line 1265 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6475 "DirectoryMonitor.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_MOVED:
+#line 6479 "DirectoryMonitor.c"
+ {
+ GFileInfo* _tmp47_ = NULL;
+ GFile* _tmp48_ = NULL;
+ DirectoryMonitorFType ftype = 0;
+ GFileInfo* _tmp49_ = NULL;
+ DirectoryMonitorFType _tmp50_ = 0;
+ DirectoryMonitorFType _tmp51_ = 0;
+#line 1268 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp47_ = info;
+#line 1268 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp47_ != NULL, "info != null");
+#line 1269 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp48_ = other_file;
+#line 1269 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp48_ != NULL, "other_file != null");
+#line 1273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp49_ = info;
+#line 1273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp50_ = directory_monitor_get_ftype (_tmp49_);
+#line 1273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp50_;
+#line 1274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp51_ = ftype;
+#line 1274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp51_) {
+#line 1274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 6507 "DirectoryMonitor.c"
+ {
+ GFile* _tmp52_ = NULL;
+ GFile* _tmp53_ = NULL;
+ GFileInfo* _tmp54_ = NULL;
+#line 1276 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp52_ = file;
+#line 1276 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp53_ = other_file;
+#line 1276 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp54_ = info;
+#line 1276 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_moved (self, _tmp52_, _tmp53_, _tmp54_);
+#line 1277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6522 "DirectoryMonitor.c"
+ }
+#line 1274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 6526 "DirectoryMonitor.c"
+ {
+ GFileInfo* old_dir_info = NULL;
+ DirectoryMonitorFileInfoMap* _tmp55_ = NULL;
+ GFile* _tmp56_ = NULL;
+ GFileInfo* _tmp57_ = NULL;
+ GFileInfo* _tmp58_ = NULL;
+ GFile* _tmp62_ = NULL;
+ GFileInfo* _tmp63_ = NULL;
+ GFile* _tmp64_ = NULL;
+ GFileInfo* _tmp65_ = NULL;
+#line 1281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp55_ = self->priv->files;
+#line 1281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp56_ = file;
+#line 1281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp57_ = directory_monitor_file_info_map_get_info (_tmp55_, _tmp56_);
+#line 1281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old_dir_info = _tmp57_;
+#line 1282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp58_ = old_dir_info;
+#line 1282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp58_ == NULL) {
+#line 6549 "DirectoryMonitor.c"
+ GFile* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+#line 1283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp59_ = file;
+#line 1283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp60_ = g_file_get_path (_tmp59_);
+#line 1283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp61_ = _tmp60_;
+#line 1283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:1283: Directory moved event for unknown file %s", _tmp61_);
+#line 1283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp61_);
+#line 1285 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_dir_info);
+#line 1285 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6567 "DirectoryMonitor.c"
+ }
+#line 1288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp62_ = file;
+#line 1288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp63_ = old_dir_info;
+#line 1288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp64_ = other_file;
+#line 1288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp65_ = info;
+#line 1288 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_directory_moved (self, _tmp62_, _tmp63_, _tmp64_, _tmp65_);
+#line 1289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (old_dir_info);
+#line 1289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6583 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp66_ = 0;
+#line 1292 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp66_ = ftype;
+#line 1292 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp66_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 1293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6594 "DirectoryMonitor.c"
+ }
+ }
+#line 1295 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6599 "DirectoryMonitor.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_DELETED:
+#line 6603 "DirectoryMonitor.c"
+ {
+ GFileInfo* _tmp67_ = NULL;
+ GFileInfo* local_info = NULL;
+ GFile* _tmp68_ = NULL;
+ GFileInfo* _tmp69_ = NULL;
+ GFileInfo* _tmp70_ = NULL;
+ DirectoryMonitorFType ftype = 0;
+ GFileInfo* _tmp74_ = NULL;
+ DirectoryMonitorFType _tmp75_ = 0;
+ DirectoryMonitorFType _tmp76_ = 0;
+#line 1298 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp67_ = info;
+#line 1298 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp67_ == NULL, "info == null");
+#line 1300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp68_ = file;
+#line 1300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp69_ = directory_monitor_get_file_info (self, _tmp68_);
+#line 1300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ local_info = _tmp69_;
+#line 1301 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp70_ = local_info;
+#line 1301 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp70_ == NULL) {
+#line 6628 "DirectoryMonitor.c"
+ GFile* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+#line 1302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp71_ = file;
+#line 1302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp72_ = g_file_get_path (_tmp71_);
+#line 1302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp73_ = _tmp72_;
+#line 1302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:1302: Deleted event for unknown file %s", _tmp73_);
+#line 1302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp73_);
+#line 1304 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 1304 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6646 "DirectoryMonitor.c"
+ }
+#line 1307 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp74_ = local_info;
+#line 1307 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp75_ = directory_monitor_get_ftype (_tmp74_);
+#line 1307 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp75_;
+#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp76_ = ftype;
+#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp76_) {
+#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 6660 "DirectoryMonitor.c"
+ {
+ GFile* _tmp77_ = NULL;
+#line 1310 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp77_ = file;
+#line 1310 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_file_deleted (self, _tmp77_);
+#line 1311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6669 "DirectoryMonitor.c"
+ }
+#line 1308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 6673 "DirectoryMonitor.c"
+ {
+ GFile* _tmp78_ = NULL;
+#line 1314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp78_ = file;
+#line 1314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_internal_notify_directory_deleted (self, _tmp78_);
+#line 1315 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6682 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp79_ = 0;
+#line 1318 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp79_ = ftype;
+#line 1318 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp79_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 1319 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6693 "DirectoryMonitor.c"
+ }
+ }
+#line 1321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 1321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6700 "DirectoryMonitor.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED:
+#line 6704 "DirectoryMonitor.c"
+ {
+ GFileInfo* _tmp80_ = NULL;
+ GFileInfo* local_info = NULL;
+ GFile* _tmp81_ = NULL;
+ GFileInfo* _tmp82_ = NULL;
+ GFileInfo* _tmp83_ = NULL;
+ DirectoryMonitorFType ftype = 0;
+ GFileInfo* _tmp87_ = NULL;
+ DirectoryMonitorFType _tmp88_ = 0;
+ DirectoryMonitorFType _tmp89_ = 0;
+#line 1325 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp80_ = info;
+#line 1325 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp80_ == NULL, "info == null");
+#line 1327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp81_ = file;
+#line 1327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp82_ = directory_monitor_get_file_info (self, _tmp81_);
+#line 1327 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ local_info = _tmp82_;
+#line 1328 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp83_ = local_info;
+#line 1328 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp83_ == NULL) {
+#line 6729 "DirectoryMonitor.c"
+ GFile* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+#line 1329 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp84_ = file;
+#line 1329 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp85_ = g_file_get_path (_tmp84_);
+#line 1329 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp86_ = _tmp85_;
+#line 1329 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:1329: Attribute changed event for unknown file %" \
+"s", _tmp86_);
+#line 1329 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp86_);
+#line 1331 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 1331 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6747 "DirectoryMonitor.c"
+ }
+#line 1334 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp87_ = local_info;
+#line 1334 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp88_ = directory_monitor_get_ftype (_tmp87_);
+#line 1334 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp88_;
+#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp89_ = ftype;
+#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp89_) {
+#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 6761 "DirectoryMonitor.c"
+ {
+ GFile* _tmp90_ = NULL;
+#line 1337 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp90_ = file;
+#line 1337 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_file_attributes_altered (self, _tmp90_);
+#line 1338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6770 "DirectoryMonitor.c"
+ }
+#line 1335 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 6774 "DirectoryMonitor.c"
+ {
+ GFile* _tmp91_ = NULL;
+#line 1341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp91_ = file;
+#line 1341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_notify_directory_attributes_altered (self, _tmp91_);
+#line 1342 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6783 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp92_ = 0;
+#line 1345 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp92_ = ftype;
+#line 1345 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp92_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 1346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6794 "DirectoryMonitor.c"
+ }
+ }
+#line 1348 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 1348 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6801 "DirectoryMonitor.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_PRE_UNMOUNT:
+#line 1196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case G_FILE_MONITOR_EVENT_UNMOUNTED:
+#line 6807 "DirectoryMonitor.c"
+ {
+#line 1353 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6811 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ GFileMonitorEvent _tmp93_ = 0;
+ GEnumValue* _tmp94_;
+#line 1356 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp93_ = event;
+#line 1356 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp94_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp93_);
+#line 1356 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:1356: Unknown directory monitor event %s", (_tmp94_ != NULL) ? _tmp94_->value_name : NULL);
+#line 1357 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 6825 "DirectoryMonitor.c"
+ }
+ }
+#line 1189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp0_);
+#line 6830 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_is_file_create_move (DirectoryMonitor* self, GFile* file, GFileInfo* info, GFile** old_file, GFileInfo** old_file_info) {
+ GFile* _vala_old_file = NULL;
+ GFileInfo* _vala_old_file_info = NULL;
+ gboolean result = FALSE;
+ GFile* match = NULL;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 1363 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 1363 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 1363 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 1366 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->parent_moved;
+#line 1366 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = info;
+#line 1366 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = directory_monitor_file_info_map_find_match (_tmp0_, _tmp1_);
+#line 1366 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ match = _tmp2_;
+#line 1367 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = match;
+#line 1367 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 6861 "DirectoryMonitor.c"
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ DirectoryMonitorFileInfoMap* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+ DirectoryMonitorFileInfoMap* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFileInfo* _tmp11_ = NULL;
+#line 1368 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = match;
+#line 1368 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 1368 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file);
+#line 1368 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_old_file = _tmp5_;
+#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = self->priv->parent_moved;
+#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = match;
+#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = directory_monitor_file_info_map_get_info (_tmp6_, _tmp7_);
+#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file_info);
+#line 1369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_old_file_info = _tmp8_;
+#line 1371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = self->priv->parent_moved;
+#line 1371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = match;
+#line 1371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = info;
+#line 1371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove (_tmp9_, _tmp10_, _tmp11_);
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = TRUE;
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (match);
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old_file) {
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *old_file = _vala_old_file;
+#line 6904 "DirectoryMonitor.c"
+ } else {
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file);
+#line 6908 "DirectoryMonitor.c"
+ }
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old_file_info) {
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *old_file_info = _vala_old_file_info;
+#line 6914 "DirectoryMonitor.c"
+ } else {
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file_info);
+#line 6918 "DirectoryMonitor.c"
+ }
+#line 1373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 6922 "DirectoryMonitor.c"
+ }
+#line 1376 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file);
+#line 1376 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_old_file = NULL;
+#line 1377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file_info);
+#line 1377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_old_file_info = NULL;
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (match);
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old_file) {
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *old_file = _vala_old_file;
+#line 6940 "DirectoryMonitor.c"
+ } else {
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file);
+#line 6944 "DirectoryMonitor.c"
+ }
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old_file_info) {
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *old_file_info = _vala_old_file_info;
+#line 6950 "DirectoryMonitor.c"
+ } else {
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_old_file_info);
+#line 6954 "DirectoryMonitor.c"
+ }
+#line 1379 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 6958 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_check_for_expired_delete_events (DirectoryMonitor* self) {
+ gboolean result = FALSE;
+ gulong expiration = 0UL;
+ gulong _tmp0_ = 0UL;
+ gboolean any_deleted = FALSE;
+ gboolean any_expired = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+#line 1382 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), FALSE);
+#line 1383 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = now_ms ();
+#line 1383 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ expiration = _tmp0_ - DIRECTORY_MONITOR_DELETED_EXPIRATION_MSEC;
+#line 1385 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ any_deleted = FALSE;
+#line 1386 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ any_expired = FALSE;
+#line 6980 "DirectoryMonitor.c"
+ {
+ GeeIterator* _element_it = NULL;
+ GeeQueue* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = self->priv->query_info_queue;
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _element_it = _tmp2_;
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 6993 "DirectoryMonitor.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DirectoryMonitorQueryInfoQueueElement* element = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp7_ = NULL;
+ GFileMonitorEvent _tmp8_ = 0;
+ DirectoryMonitorQueryInfoQueueElement* _tmp9_ = NULL;
+ gulong _tmp10_ = 0UL;
+ gulong _tmp11_ = 0UL;
+ DirectoryMonitorQueryInfoQueueElement* _tmp12_ = NULL;
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = _element_it;
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp4_) {
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 7013 "DirectoryMonitor.c"
+ }
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _element_it;
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ element = (DirectoryMonitorQueryInfoQueueElement*) _tmp6_;
+#line 1388 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = element;
+#line 1388 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = _tmp7_->event;
+#line 1388 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp8_ != G_FILE_MONITOR_EVENT_DELETED) {
+#line 1389 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (element);
+#line 1389 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 7031 "DirectoryMonitor.c"
+ }
+#line 1391 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ any_deleted = TRUE;
+#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = element;
+#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = _tmp9_->time_created_msec;
+#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = expiration;
+#line 1393 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp10_ > _tmp11_) {
+#line 1394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (element);
+#line 1394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 7047 "DirectoryMonitor.c"
+ }
+#line 1397 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = element;
+#line 1397 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_->completed = TRUE;
+#line 1398 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ any_expired = TRUE;
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_query_info_queue_element_unref0 (element);
+#line 7057 "DirectoryMonitor.c"
+ }
+#line 1387 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_element_it);
+#line 7061 "DirectoryMonitor.c"
+ }
+#line 1401 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = any_expired;
+#line 1401 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp13_) {
+#line 1402 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_process_query_queue (self, NULL);
+#line 7069 "DirectoryMonitor.c"
+ }
+#line 1404 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = any_deleted;
+#line 1404 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp14_) {
+#line 1405 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->delete_timer_id = (guint) 0;
+#line 7077 "DirectoryMonitor.c"
+ }
+#line 1407 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = any_deleted;
+#line 1407 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7083 "DirectoryMonitor.c"
+}
+
+
+GFileInfo* directory_monitor_get_file_info (DirectoryMonitor* self, GFile* file) {
+ GFileInfo* result = NULL;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+#line 1411 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
+#line 1411 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 1412 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 1412 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = file;
+#line 1412 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = directory_monitor_file_info_map_get_info (_tmp0_, _tmp1_);
+#line 1412 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp2_;
+#line 1412 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7106 "DirectoryMonitor.c"
+}
+
+
+GeeCollection* directory_monitor_get_files (DirectoryMonitor* self) {
+ GeeCollection* result = NULL;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 1417 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
+#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = directory_monitor_file_info_map_get_all (_tmp0_);
+#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp1_;
+#line 1418 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7124 "DirectoryMonitor.c"
+}
+
+
+GFileInfo* directory_monitor_query_file_info (DirectoryMonitor* self, GFile* file) {
+ GFileInfo* result = NULL;
+ DirectoryMonitorFileInfoMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+#line 1424 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (self), NULL);
+#line 1424 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 1425 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->files;
+#line 1425 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = file;
+#line 1425 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = self->priv->cancellable;
+#line 1425 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = directory_monitor_file_info_map_query_info (_tmp0_, _tmp1_, _tmp2_);
+#line 1425 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp3_;
+#line 1425 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7150 "DirectoryMonitor.c"
+}
+
+
+gboolean directory_monitor_is_file_symlink_supported (GFileInfo* info) {
+ gboolean result = FALSE;
+ GFileInfo* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ DirectoryMonitorFType ftype = 0;
+ GFileInfo* _tmp2_ = NULL;
+ DirectoryMonitorFType _tmp3_ = 0;
+ DirectoryMonitorFType _tmp4_ = 0;
+#line 1435 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 1436 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = info;
+#line 1436 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = g_file_info_get_is_symlink (_tmp0_);
+#line 1436 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp1_) {
+#line 1437 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = TRUE;
+#line 1437 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7174 "DirectoryMonitor.c"
+ }
+#line 1439 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = info;
+#line 1439 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = directory_monitor_get_ftype (_tmp2_);
+#line 1439 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp3_;
+#line 1440 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = ftype;
+#line 1440 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp4_) {
+#line 1440 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 7188 "DirectoryMonitor.c"
+ {
+#line 1442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = DIRECTORY_MONITOR_SUPPORT_DIR_SYMLINKS;
+#line 1442 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7194 "DirectoryMonitor.c"
+ }
+#line 1440 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 7198 "DirectoryMonitor.c"
+ {
+#line 1445 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = DIRECTORY_MONITOR_SUPPORT_FILE_SYMLINKS;
+#line 1445 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7204 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp5_ = 0;
+#line 1448 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = ftype;
+#line 1448 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp5_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 1450 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 1450 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7217 "DirectoryMonitor.c"
+ }
+ }
+}
+
+
+static void directory_monitor_real_root_moved (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info) {
+#line 380 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_root));
+#line 380 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_root));
+#line 380 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_root_info));
+#line 7230 "DirectoryMonitor.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (n_param_values == 4);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data1 = closure->data;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 7249 "DirectoryMonitor.c"
+ } else {
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data2 = closure->data;
+#line 7255 "DirectoryMonitor.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_object (param_values + 3), data2);
+#line 7261 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_root_deleted (DirectoryMonitor* self, GFile* root) {
+#line 388 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (root));
+#line 7268 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_discovery_started (DirectoryMonitor* self) {
+}
+
+
+static void directory_monitor_real_file_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 394 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 7281 "DirectoryMonitor.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data1 = closure->data;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 7300 "DirectoryMonitor.c"
+ } else {
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ data2 = closure->data;
+#line 7306 "DirectoryMonitor.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 7312 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_directory_discovered (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 397 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 397 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 7321 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_discovery_failed (DirectoryMonitor* self, const gchar* reason) {
+#line 402 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (reason != NULL);
+#line 7328 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_discovery_completed (DirectoryMonitor* self) {
+#line 406 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->has_discovery_started = FALSE;
+#line 407 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_mdbg ("discovery completed");
+#line 7337 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 410 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 410 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 7346 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
+#line 413 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 413 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 413 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_file_info));
+#line 7357 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_file_altered (DirectoryMonitor* self, GFile* file) {
+#line 417 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 7364 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info) {
+#line 422 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 422 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 7373 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_file_attributes_altered (DirectoryMonitor* self, GFile* file) {
+#line 425 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 7380 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_file_deleted (DirectoryMonitor* self, GFile* file) {
+#line 428 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 7387 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_directory_created (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+#line 432 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 432 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 7396 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_directory_moved (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info) {
+#line 436 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_dir));
+#line 436 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_dir));
+#line 436 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_dir_info));
+#line 7407 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_directory_altered (DirectoryMonitor* self, GFile* dir) {
+#line 440 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 7414 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_directory_alteration_completed (DirectoryMonitor* self, GFile* dir, GFileInfo* info) {
+#line 445 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 445 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 7423 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_directory_attributes_altered (DirectoryMonitor* self, GFile* dir) {
+#line 448 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 7430 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_directory_deleted (DirectoryMonitor* self, GFile* dir) {
+#line 452 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 7437 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_real_closed (DirectoryMonitor* self) {
+}
+
+
+static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_construct (GType object_type, DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event) {
+ DirectoryMonitorQueryInfoQueueElement* self = NULL;
+ DirectoryMonitor* _tmp0_ = NULL;
+ DirectoryMonitor* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFileMonitorEvent _tmp6_ = 0;
+ guint _tmp7_ = 0U;
+ gulong _tmp8_ = 0UL;
+#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (IS_DIRECTORY_MONITOR (owner), NULL);
+#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail ((other_file == NULL) || G_IS_FILE (other_file), NULL);
+#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self = (DirectoryMonitorQueryInfoQueueElement*) g_type_create_instance (object_type);
+#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = owner;
+#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->owner);
+#line 98 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->owner = _tmp1_;
+#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = file;
+#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->file);
+#line 99 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->file = _tmp3_;
+#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = other_file;
+#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->other_file);
+#line 100 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->other_file = _tmp5_;
+#line 101 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = event;
+#line 101 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->event = _tmp6_;
+#line 102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = directory_monitor_query_info_queue_element_current;
+#line 102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_current = _tmp7_ + 1;
+#line 102 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->position = _tmp7_;
+#line 103 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = now_ms ();
+#line 103 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->time_created_msec = _tmp8_;
+#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return self;
+#line 7504 "DirectoryMonitor.c"
+}
+
+
+static DirectoryMonitorQueryInfoQueueElement* directory_monitor_query_info_queue_element_new (DirectoryMonitor* owner, GFile* file, GFile* other_file, GFileMonitorEvent event) {
+#line 96 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return directory_monitor_query_info_queue_element_construct (DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, owner, file, other_file, event);
+#line 7511 "DirectoryMonitor.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 7518 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_query_info_queue_element_on_completed (DirectoryMonitorQueryInfoQueueElement* self, GObject* source, GAsyncResult* aresult) {
+ GFile* source_file = NULL;
+ GObject* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ DirectoryMonitor* _tmp8_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (DIRECTORY_MONITOR_IS_QUERY_INFO_QUEUE_ELEMENT (self));
+#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail ((source == NULL) || G_IS_OBJECT (source));
+#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_ASYNC_RESULT (aresult));
+#line 107 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = source;
+#line 107 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_FILE, GFile));
+#line 107 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ source_file = _tmp1_;
+#line 7540 "DirectoryMonitor.c"
+ {
+ GFileInfo* _tmp2_ = NULL;
+ GAsyncResult* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = aresult;
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_file_query_info_finish (source_file, _tmp3_, &_inner_error_);
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp4_;
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7554 "DirectoryMonitor.c"
+ goto __catch472_g_error;
+ }
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _tmp2_;
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->info);
+#line 111 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->info = _tmp5_;
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 7567 "DirectoryMonitor.c"
+ }
+ goto __finally472;
+ __catch472_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ GError* _tmp7_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ err = _inner_error_;
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _inner_error_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = err;
+#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = _g_error_copy0 (_tmp6_);
+#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_error_free0 (self->err);
+#line 113 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->err = _tmp7_;
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_error_free0 (err);
+#line 7589 "DirectoryMonitor.c"
+ }
+ __finally472:
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (source_file);
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 110 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return;
+#line 7602 "DirectoryMonitor.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->completed = TRUE;
+#line 120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = self->owner;
+#line 120 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_process_query_queue (_tmp8_, self);
+#line 106 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (source_file);
+#line 7612 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_value_query_info_queue_element_init (GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 7619 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_value_query_info_queue_element_free_value (GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (value->data[0].v_pointer) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_unref (value->data[0].v_pointer);
+#line 7628 "DirectoryMonitor.c"
+ }
+}
+
+
+static void directory_monitor_value_query_info_queue_element_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (src_value->data[0].v_pointer) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ dest_value->data[0].v_pointer = directory_monitor_query_info_queue_element_ref (src_value->data[0].v_pointer);
+#line 7638 "DirectoryMonitor.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 7642 "DirectoryMonitor.c"
+ }
+}
+
+
+static gpointer directory_monitor_value_query_info_queue_element_peek_pointer (const GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 7650 "DirectoryMonitor.c"
+}
+
+
+static gchar* directory_monitor_value_query_info_queue_element_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (collect_values[0].v_pointer) {
+#line 7657 "DirectoryMonitor.c"
+ DirectoryMonitorQueryInfoQueueElement* object;
+ object = collect_values[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 7664 "DirectoryMonitor.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 7668 "DirectoryMonitor.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = directory_monitor_query_info_queue_element_ref (object);
+#line 7672 "DirectoryMonitor.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 7676 "DirectoryMonitor.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return NULL;
+#line 7680 "DirectoryMonitor.c"
+}
+
+
+static gchar* directory_monitor_value_query_info_queue_element_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DirectoryMonitorQueryInfoQueueElement** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!object_p) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 7691 "DirectoryMonitor.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!value->data[0].v_pointer) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *object_p = NULL;
+#line 7697 "DirectoryMonitor.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *object_p = value->data[0].v_pointer;
+#line 7701 "DirectoryMonitor.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *object_p = directory_monitor_query_info_queue_element_ref (value->data[0].v_pointer);
+#line 7705 "DirectoryMonitor.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return NULL;
+#line 7709 "DirectoryMonitor.c"
+}
+
+
+static GParamSpec* directory_monitor_param_spec_query_info_queue_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ DirectoryMonitorParamSpecQueryInfoQueueElement* spec;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT), NULL);
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return G_PARAM_SPEC (spec);
+#line 7723 "DirectoryMonitor.c"
+}
+
+
+static gpointer directory_monitor_value_get_query_info_queue_element (const GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT), NULL);
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 7732 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_value_set_query_info_queue_element (GValue* value, gpointer v_object) {
+ DirectoryMonitorQueryInfoQueueElement* old;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (v_object) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_ref (value->data[0].v_pointer);
+#line 7752 "DirectoryMonitor.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 7756 "DirectoryMonitor.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_unref (old);
+#line 7762 "DirectoryMonitor.c"
+ }
+}
+
+
+static void directory_monitor_value_take_query_info_queue_element (GValue* value, gpointer v_object) {
+ DirectoryMonitorQueryInfoQueueElement* old;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (v_object) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT));
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 7781 "DirectoryMonitor.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 7785 "DirectoryMonitor.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_unref (old);
+#line 7791 "DirectoryMonitor.c"
+ }
+}
+
+
+static void directory_monitor_query_info_queue_element_class_init (DirectoryMonitorQueryInfoQueueElementClass * klass) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_query_info_queue_element_parent_class = g_type_class_peek_parent (klass);
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorQueryInfoQueueElementClass *) klass)->finalize = directory_monitor_query_info_queue_element_finalize;
+#line 7801 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_query_info_queue_element_instance_init (DirectoryMonitorQueryInfoQueueElement * self) {
+#line 92 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->info = NULL;
+#line 93 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->err = NULL;
+#line 94 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->completed = FALSE;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->ref_count = 1;
+#line 7814 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_query_info_queue_element_finalize (DirectoryMonitorQueryInfoQueueElement* obj) {
+ DirectoryMonitorQueryInfoQueueElement * self;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, DirectoryMonitorQueryInfoQueueElement);
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_handlers_destroy (self);
+#line 86 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->owner);
+#line 87 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->file);
+#line 88 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->other_file);
+#line 92 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->info);
+#line 93 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_error_free0 (self->err);
+#line 7834 "DirectoryMonitor.c"
+}
+
+
+static GType directory_monitor_query_info_queue_element_get_type (void) {
+ static volatile gsize directory_monitor_query_info_queue_element_type_id__volatile = 0;
+ if (g_once_init_enter (&directory_monitor_query_info_queue_element_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { directory_monitor_value_query_info_queue_element_init, directory_monitor_value_query_info_queue_element_free_value, directory_monitor_value_query_info_queue_element_copy_value, directory_monitor_value_query_info_queue_element_peek_pointer, "p", directory_monitor_value_query_info_queue_element_collect_value, "p", directory_monitor_value_query_info_queue_element_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DirectoryMonitorQueryInfoQueueElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) directory_monitor_query_info_queue_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectoryMonitorQueryInfoQueueElement), 0, (GInstanceInitFunc) directory_monitor_query_info_queue_element_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType directory_monitor_query_info_queue_element_type_id;
+ directory_monitor_query_info_queue_element_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DirectoryMonitorQueryInfoQueueElement", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&directory_monitor_query_info_queue_element_type_id__volatile, directory_monitor_query_info_queue_element_type_id);
+ }
+ return directory_monitor_query_info_queue_element_type_id__volatile;
+}
+
+
+static gpointer directory_monitor_query_info_queue_element_ref (gpointer instance) {
+ DirectoryMonitorQueryInfoQueueElement* self;
+ self = instance;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return instance;
+#line 7859 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_query_info_queue_element_unref (gpointer instance) {
+ DirectoryMonitorQueryInfoQueueElement* self;
+ self = instance;
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_QUERY_INFO_QUEUE_ELEMENT_GET_CLASS (self)->finalize (self);
+#line 83 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 7872 "DirectoryMonitor.c"
+ }
+}
+
+
+static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_construct (GType object_type) {
+ DirectoryMonitorFileInfoMap* self = NULL;
+#line 134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self = (DirectoryMonitorFileInfoMap*) g_type_create_instance (object_type);
+#line 134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return self;
+#line 7883 "DirectoryMonitor.c"
+}
+
+
+static DirectoryMonitorFileInfoMap* directory_monitor_file_info_map_new (void) {
+#line 134 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return directory_monitor_file_info_map_construct (DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP);
+#line 7890 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_file_info_map_normalize_file (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info, GFile** normalized, gchar** id) {
+ GFile* _vala_normalized = NULL;
+ gchar* _vala_id = NULL;
+ gboolean result = FALSE;
+ GFileInfo* local_info = NULL;
+ GFileInfo* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ gchar* file_id = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GFile* known_file = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp19_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
+#line 137 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 137 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), FALSE);
+#line 140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = info;
+#line 140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 140 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ local_info = _tmp1_;
+#line 141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = local_info;
+#line 141 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp2_ == NULL) {
+#line 7931 "DirectoryMonitor.c"
+ GeeHashMap* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = self->priv->map;
+#line 142 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = file;
+#line 142 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 142 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 142 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ local_info = (GFileInfo*) _tmp5_;
+#line 143 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = local_info;
+#line 143 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp6_ == NULL) {
+#line 144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_normalized);
+#line 144 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_normalized = NULL;
+#line 145 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_vala_id);
+#line 145 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_id = NULL;
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (normalized) {
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *normalized = _vala_normalized;
+#line 7966 "DirectoryMonitor.c"
+ } else {
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_normalized);
+#line 7970 "DirectoryMonitor.c"
+ }
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (id) {
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *id = _vala_id;
+#line 7976 "DirectoryMonitor.c"
+ } else {
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_vala_id);
+#line 7980 "DirectoryMonitor.c"
+ }
+#line 147 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 7984 "DirectoryMonitor.c"
+ }
+ }
+#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = local_info;
+#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = get_file_info_id (_tmp7_);
+#line 151 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ file_id = _tmp8_;
+#line 152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = file_id;
+#line 152 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp9_ == NULL) {
+#line 153 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_normalized);
+#line 153 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_normalized = NULL;
+#line 154 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_vala_id);
+#line 154 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_id = NULL;
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (file_id);
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (normalized) {
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *normalized = _vala_normalized;
+#line 8015 "DirectoryMonitor.c"
+ } else {
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_normalized);
+#line 8019 "DirectoryMonitor.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (id) {
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *id = _vala_id;
+#line 8025 "DirectoryMonitor.c"
+ } else {
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_vala_id);
+#line 8029 "DirectoryMonitor.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8033 "DirectoryMonitor.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = self->priv->id_map;
+#line 159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = file_id;
+#line 159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_);
+#line 159 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ known_file = (GFile*) _tmp12_;
+#line 161 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = file_id;
+#line 161 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = g_strdup ((const gchar*) _tmp13_);
+#line 161 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_vala_id);
+#line 161 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_id = _tmp14_;
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = known_file;
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp16_ != NULL) {
+#line 8055 "DirectoryMonitor.c"
+ GFile* _tmp17_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = known_file;
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = _tmp17_;
+#line 8061 "DirectoryMonitor.c"
+ } else {
+ GFile* _tmp18_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = file;
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = _tmp18_;
+#line 8068 "DirectoryMonitor.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = _g_object_ref0 (_tmp15_);
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_normalized);
+#line 162 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_normalized = _tmp19_;
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = TRUE;
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (known_file);
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (file_id);
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (local_info);
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (normalized) {
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *normalized = _vala_normalized;
+#line 8088 "DirectoryMonitor.c"
+ } else {
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_vala_normalized);
+#line 8092 "DirectoryMonitor.c"
+ }
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (id) {
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *id = _vala_id;
+#line 8098 "DirectoryMonitor.c"
+ } else {
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_vala_id);
+#line 8102 "DirectoryMonitor.c"
+ }
+#line 164 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8106 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_file_info_map_update (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gchar* existing_id = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ const gchar* _tmp10_ = NULL;
+ gchar* id = NULL;
+ GFile* normalized = NULL;
+ GFile* _tmp18_ = NULL;
+ GFileInfo* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ GeeHashMap* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ GFileInfo* _tmp25_ = NULL;
+ GeeHashMap* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
+#line 167 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 167 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->map;
+#line 169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = file;
+#line 169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 169 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp2_) {
+#line 8147 "DirectoryMonitor.c"
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = self->priv->map;
+#line 170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = file;
+#line 170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, NULL);
+#line 170 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ removed = _tmp5_;
+#line 171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = removed;
+#line 171 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 8165 "DirectoryMonitor.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = info;
+#line 175 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = get_file_info_id (_tmp7_);
+#line 175 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ existing_id = _tmp8_;
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = existing_id;
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp10_ != NULL) {
+#line 8177 "DirectoryMonitor.c"
+ GeeHashMap* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = self->priv->id_map;
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = existing_id;
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_);
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = _tmp13_;
+#line 8189 "DirectoryMonitor.c"
+ } else {
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = FALSE;
+#line 8193 "DirectoryMonitor.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp9_) {
+#line 8197 "DirectoryMonitor.c"
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = self->priv->id_map;
+#line 177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = existing_id;
+#line 177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp15_, NULL);
+#line 177 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ removed = _tmp16_;
+#line 178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = removed;
+#line 178 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp17_, "removed");
+#line 8215 "DirectoryMonitor.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = file;
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = info;
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = directory_monitor_file_info_map_normalize_file (self, _tmp18_, _tmp19_, &_tmp20_, &_tmp21_);
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ normalized = _tmp20_;
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp21_;
+#line 183 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp22_) {
+#line 184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (existing_id);
+#line 184 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8243 "DirectoryMonitor.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = self->priv->map;
+#line 186 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = normalized;
+#line 186 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = info;
+#line 186 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_, _tmp25_);
+#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = self->priv->id_map;
+#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp27_ = id;
+#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp28_ = normalized;
+#line 187 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp27_, _tmp28_);
+#line 189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = TRUE;
+#line 189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (existing_id);
+#line 189 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8271 "DirectoryMonitor.c"
+}
+
+
+static gboolean directory_monitor_file_info_map_remove (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
+ gboolean result = FALSE;
+ gchar* id = NULL;
+ GFile* normalized = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeHashMap* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
+#line 192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 192 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), FALSE);
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = info;
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = directory_monitor_file_info_map_normalize_file (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ normalized = _tmp2_;
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp3_;
+#line 195 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp4_) {
+#line 196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 196 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8318 "DirectoryMonitor.c"
+ }
+#line 198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = self->priv->map;
+#line 198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = normalized;
+#line 198 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_, NULL);
+#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = self->priv->id_map;
+#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = id;
+#line 199 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp8_, NULL);
+#line 201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = TRUE;
+#line 201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 201 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8340 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_file_info_map_remove_all (DirectoryMonitorFileInfoMap* self, GeeCollection* files) {
+#line 206 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self));
+#line 206 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (files));
+#line 8349 "DirectoryMonitor.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = files;
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _file_it = _tmp1_;
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 8362 "DirectoryMonitor.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _file_it;
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp3_) {
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 8377 "DirectoryMonitor.c"
+ }
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = _file_it;
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ file = (GFile*) _tmp5_;
+#line 208 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = file;
+#line 208 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove (self, _tmp6_, NULL);
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (file);
+#line 8391 "DirectoryMonitor.c"
+ }
+#line 207 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 8395 "DirectoryMonitor.c"
+ }
+}
+
+
+static gboolean directory_monitor_file_info_map_contains (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
+ gboolean result = FALSE;
+ gchar* id = NULL;
+ GFile* normalized = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeHashMap* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), FALSE);
+#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 211 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), FALSE);
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = info;
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = directory_monitor_file_info_map_normalize_file (self, _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ normalized = _tmp2_;
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp3_;
+#line 214 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp4_) {
+#line 215 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = FALSE;
+#line 215 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 215 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 215 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8442 "DirectoryMonitor.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = self->priv->id_map;
+#line 217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = id;
+#line 217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_);
+#line 217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp7_;
+#line 217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 217 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8458 "DirectoryMonitor.c"
+}
+
+
+static gchar* directory_monitor_file_info_map_get_id (DirectoryMonitorFileInfoMap* self, GFile* file, GFileInfo* info) {
+ gchar* result = NULL;
+ GFileInfo* _tmp0_ = NULL;
+ gchar* id = NULL;
+ GFile* normalized = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 220 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
+#line 220 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 220 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail ((info == NULL) || G_IS_FILE_INFO (info), NULL);
+#line 222 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = info;
+#line 222 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp0_ != NULL) {
+#line 8481 "DirectoryMonitor.c"
+ GFileInfo* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = info;
+#line 223 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = get_file_info_id (_tmp1_);
+#line 223 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = _tmp2_;
+#line 223 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8492 "DirectoryMonitor.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = file;
+#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = directory_monitor_file_info_map_normalize_file (self, _tmp3_, NULL, &_tmp4_, &_tmp5_);
+#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ normalized = _tmp4_;
+#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp5_;
+#line 227 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp6_) {
+#line 228 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 228 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 228 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 228 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8516 "DirectoryMonitor.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = id;
+#line 230 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 230 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8524 "DirectoryMonitor.c"
+}
+
+
+static GeeCollection* directory_monitor_file_info_map_get_all (DirectoryMonitorFileInfoMap* self) {
+ GeeCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
+#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->map;
+#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 234 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8545 "DirectoryMonitor.c"
+}
+
+
+static GFileInfo* directory_monitor_file_info_map_get_info (DirectoryMonitorFileInfoMap* self, GFile* file) {
+ GFileInfo* result = NULL;
+ GFileInfo* info = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ gchar* id = NULL;
+ GFile* normalized = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeHashMap* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
+#line 237 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->map;
+#line 239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = file;
+#line 239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 239 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ info = (GFileInfo*) _tmp2_;
+#line 240 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = info;
+#line 240 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 241 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = info;
+#line 241 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8585 "DirectoryMonitor.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = file;
+#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = directory_monitor_file_info_map_normalize_file (self, _tmp4_, NULL, &_tmp5_, &_tmp6_);
+#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ normalized = _tmp5_;
+#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp6_;
+#line 245 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp7_) {
+#line 246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 246 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8611 "DirectoryMonitor.c"
+ }
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = self->priv->map;
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = normalized;
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp9_);
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = (GFileInfo*) _tmp10_;
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 248 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8629 "DirectoryMonitor.c"
+}
+
+
+static GFileInfo* directory_monitor_file_info_map_query_info (DirectoryMonitorFileInfoMap* self, GFile* file, GCancellable* cancellable) {
+ GFileInfo* result = NULL;
+ GFileInfo* info = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ GFileInfo* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gchar* id = NULL;
+ GFileInfo* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ GFile* normalized = NULL;
+ GeeHashMap* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ GeeHashMap* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
+#line 251 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 251 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), NULL);
+#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = file;
+#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = directory_monitor_file_info_map_get_info (self, _tmp0_);
+#line 252 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ info = _tmp1_;
+#line 253 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = info;
+#line 253 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp2_ != NULL) {
+#line 254 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = info;
+#line 254 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8675 "DirectoryMonitor.c"
+ }
+ {
+ GFileInfo* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GCancellable* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = file;
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = cancellable;
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = g_file_query_info (_tmp4_, G_FILE_ATTRIBUTE_ID_FILE, DIRECTORY_MONITOR_UNKNOWN_INFO_FLAGS, _tmp5_, &_inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = _tmp6_;
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8693 "DirectoryMonitor.c"
+ goto __catch473_g_error;
+ }
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = _tmp3_;
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = NULL;
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 259 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ info = _tmp7_;
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 8706 "DirectoryMonitor.c"
+ }
+ goto __finally473;
+ __catch473_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ err = _inner_error_;
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _inner_error_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = file;
+#line 261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = g_file_get_path (_tmp8_);
+#line 261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = _tmp9_;
+#line 261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = err;
+#line 261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = _tmp11_->message;
+#line 261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_warning ("DirectoryMonitor.vala:261: Unable to query file ID of %s: %s", _tmp10_, _tmp12_);
+#line 261 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp10_);
+#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_error_free0 (err);
+#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 263 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8743 "DirectoryMonitor.c"
+ }
+ __finally473:
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 258 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return NULL;
+#line 8756 "DirectoryMonitor.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = info;
+#line 266 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = directory_monitor_is_file_symlink_supported (_tmp13_);
+#line 266 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp14_) {
+#line 267 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 267 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 267 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8770 "DirectoryMonitor.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = info;
+#line 269 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = g_file_info_get_attribute_string (_tmp15_, G_FILE_ATTRIBUTE_ID_FILE);
+#line 269 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 269 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ id = _tmp17_;
+#line 270 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = id;
+#line 270 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp18_ == NULL) {
+#line 271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 271 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8792 "DirectoryMonitor.c"
+ }
+#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = self->priv->id_map;
+#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = id;
+#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp20_);
+#line 273 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ normalized = (GFile*) _tmp21_;
+#line 274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = normalized;
+#line 274 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp22_ == NULL) {
+#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 275 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8816 "DirectoryMonitor.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = self->priv->map;
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = file;
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_);
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = (GFileInfo*) _tmp25_;
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (normalized);
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (id);
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 277 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8834 "DirectoryMonitor.c"
+}
+
+
+static GFile* directory_monitor_file_info_map_find_match (DirectoryMonitorFileInfoMap* self, GFileInfo* match) {
+ GFile* result = NULL;
+ gchar* match_id = NULL;
+ GFileInfo* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint64 match_size = 0LL;
+ GFileInfo* _tmp3_ = NULL;
+ gint64 _tmp4_ = 0LL;
+ GTimeVal match_time = {0};
+ GFileInfo* _tmp5_ = NULL;
+ GTimeVal _tmp6_ = {0};
+#line 280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), NULL);
+#line 280 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (match), NULL);
+#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = match;
+#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = get_file_info_id (_tmp0_);
+#line 281 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ match_id = _tmp1_;
+#line 282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = match_id;
+#line 282 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp2_ == NULL) {
+#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (match_id);
+#line 283 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8870 "DirectoryMonitor.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = match;
+#line 286 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_file_info_get_size (_tmp3_);
+#line 286 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ match_size = _tmp4_;
+#line 287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = match;
+#line 287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_info_get_modification_time (_tmp5_, &_tmp6_);
+#line 287 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ match_time = _tmp6_;
+#line 8884 "DirectoryMonitor.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ GeeSet* _tmp8_ = NULL;
+ GeeSet* _tmp9_ = NULL;
+ GeeSet* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ GeeIterator* _tmp12_ = NULL;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = self->priv->map;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_MAP, GeeMap));
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = _tmp9_;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp10_);
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _file_it = _tmp12_;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 8911 "DirectoryMonitor.c"
+ GeeIterator* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ GFileInfo* info = NULL;
+ GeeHashMap* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ GFileInfo* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gint64 _tmp25_ = 0LL;
+ GFileInfo* _tmp26_ = NULL;
+ gint64 _tmp27_ = 0LL;
+ GTimeVal time = {0};
+ GFileInfo* _tmp28_ = NULL;
+ GTimeVal _tmp29_ = {0};
+ GTimeVal _tmp30_ = {0};
+ glong _tmp31_ = 0L;
+ GTimeVal _tmp32_ = {0};
+ glong _tmp33_ = 0L;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = _file_it;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = gee_iterator_next (_tmp13_);
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp14_) {
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 8944 "DirectoryMonitor.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = _file_it;
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = gee_iterator_get (_tmp15_);
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ file = (GFile*) _tmp16_;
+#line 290 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = self->priv->map;
+#line 290 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = file;
+#line 290 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp18_);
+#line 290 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ info = (GFileInfo*) _tmp19_;
+#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = info;
+#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = get_file_info_id (_tmp20_);
+#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = _tmp21_;
+#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = match_id;
+#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = g_strcmp0 (_tmp22_, _tmp23_) == 0;
+#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (_tmp22_);
+#line 293 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp24_) {
+#line 294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = file;
+#line 294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (match_id);
+#line 294 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 8984 "DirectoryMonitor.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = match_size;
+#line 297 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = info;
+#line 297 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp27_ = g_file_info_get_size (_tmp26_);
+#line 297 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp25_ != _tmp27_) {
+#line 298 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 298 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (file);
+#line 298 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 9000 "DirectoryMonitor.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp28_ = info;
+#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_file_info_get_modification_time (_tmp28_, &_tmp29_);
+#line 300 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ time = _tmp29_;
+#line 302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp30_ = time;
+#line 302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp31_ = _tmp30_.tv_sec;
+#line 302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp32_ = match_time;
+#line 302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp33_ = _tmp32_.tv_sec;
+#line 302 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp31_ != _tmp33_) {
+#line 303 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 303 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (file);
+#line 303 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 9024 "DirectoryMonitor.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = file;
+#line 305 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (info);
+#line 305 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 305 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (match_id);
+#line 305 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 9036 "DirectoryMonitor.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 9040 "DirectoryMonitor.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = NULL;
+#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_free0 (match_id);
+#line 308 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 9048 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_file_info_map_remove_descendents (DirectoryMonitorFileInfoMap* self, GFile* root, DirectoryMonitorFileInfoMap* descendents) {
+ GeeArrayList* pruned = NULL;
+ GeeArrayList* _tmp28_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self));
+#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (root));
+#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (descendents));
+#line 312 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ pruned = NULL;
+#line 9063 "DirectoryMonitor.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->map;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _file_it = _tmp5_;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 9090 "DirectoryMonitor.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GFile* parent = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = _file_it;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp7_) {
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 9107 "DirectoryMonitor.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = _file_it;
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ file = (GFile*) _tmp9_;
+#line 314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = file;
+#line 314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = g_file_get_parent (_tmp10_);
+#line 314 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ parent = _tmp11_;
+#line 315 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 9123 "DirectoryMonitor.c"
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = parent;
+#line 315 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!(_tmp12_ != NULL)) {
+#line 315 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 9136 "DirectoryMonitor.c"
+ }
+#line 316 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = parent;
+#line 316 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = root;
+#line 316 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = g_file_equal (_tmp13_, _tmp14_);
+#line 316 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp15_) {
+#line 9146 "DirectoryMonitor.c"
+ GeeArrayList* _tmp16_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ DirectoryMonitorFileInfoMap* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GeeHashMap* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ GFileInfo* _tmp25_ = NULL;
+#line 317 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = pruned;
+#line 317 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp16_ == NULL) {
+#line 9160 "DirectoryMonitor.c"
+ GeeArrayList* _tmp17_ = NULL;
+#line 318 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 318 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (pruned);
+#line 318 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ pruned = _tmp17_;
+#line 9168 "DirectoryMonitor.c"
+ }
+#line 320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = pruned;
+#line 320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = file;
+#line 320 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp19_);
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = descendents;
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = file;
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = self->priv->map;
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = file;
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp23_);
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = (GFileInfo*) _tmp24_;
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_update (_tmp20_, _tmp21_, _tmp25_);
+#line 321 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp25_);
+#line 323 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 9194 "DirectoryMonitor.c"
+ }
+#line 326 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = parent;
+#line 326 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp27_ = g_file_get_parent (_tmp26_);
+#line 326 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (parent);
+#line 326 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ parent = _tmp27_;
+#line 9204 "DirectoryMonitor.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (parent);
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (file);
+#line 9210 "DirectoryMonitor.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 9214 "DirectoryMonitor.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp28_ = pruned;
+#line 330 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp28_ != NULL) {
+#line 9220 "DirectoryMonitor.c"
+ GeeArrayList* _tmp29_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp29_ = pruned;
+#line 331 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_remove_all (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 9226 "DirectoryMonitor.c"
+ }
+#line 311 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (pruned);
+#line 9230 "DirectoryMonitor.c"
+}
+
+
+static gint directory_monitor_file_info_map_get_children (DirectoryMonitorFileInfoMap* self, GFile* root, GeeCollection* files, GeeCollection* dirs) {
+ gint result = 0;
+ gint count = 0;
+#line 336 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (DIRECTORY_MONITOR_IS_FILE_INFO_MAP (self), 0);
+#line 336 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (root), 0);
+#line 336 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (files), 0);
+#line 336 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (dirs), 0);
+#line 337 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ count = 0;
+#line 9247 "DirectoryMonitor.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = self->priv->map;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _file_it = _tmp5_;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ while (TRUE) {
+#line 9274 "DirectoryMonitor.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GFile* parent = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GFile* _tmp13_ = NULL;
+ DirectoryMonitorFType ftype = 0;
+ GeeHashMap* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ GFileInfo* _tmp20_ = NULL;
+ DirectoryMonitorFType _tmp21_ = 0;
+ DirectoryMonitorFType _tmp22_ = 0;
+ DirectoryMonitorFType _tmp23_ = 0;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp6_ = _file_it;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!_tmp7_) {
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 9301 "DirectoryMonitor.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp8_ = _file_it;
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ file = (GFile*) _tmp9_;
+#line 339 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp10_ = file;
+#line 339 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp11_ = g_file_get_parent (_tmp10_);
+#line 339 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ parent = _tmp11_;
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp13_ = parent;
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp13_ == NULL) {
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = TRUE;
+#line 9321 "DirectoryMonitor.c"
+ } else {
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp14_ = parent;
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp15_ = root;
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp16_ = g_file_equal (_tmp14_, _tmp15_);
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp12_ = !_tmp16_;
+#line 9334 "DirectoryMonitor.c"
+ }
+#line 340 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (_tmp12_) {
+#line 341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (parent);
+#line 341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (file);
+#line 341 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ continue;
+#line 9344 "DirectoryMonitor.c"
+ }
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp17_ = self->priv->map;
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp18_ = file;
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp19_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp18_);
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp20_ = (GFileInfo*) _tmp19_;
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp21_ = directory_monitor_get_ftype (_tmp20_);
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp22_ = _tmp21_;
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_tmp20_);
+#line 343 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ftype = _tmp22_;
+#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp23_ = ftype;
+#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ switch (_tmp23_) {
+#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_FILE:
+#line 9368 "DirectoryMonitor.c"
+ {
+ GeeCollection* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp24_ = files;
+#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp25_ = file;
+#line 346 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_collection_add (_tmp24_, _tmp25_);
+#line 347 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp26_ = count;
+#line 347 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ count = _tmp26_ + 1;
+#line 348 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 9385 "DirectoryMonitor.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ case DIRECTORY_MONITOR_FTYPE_DIRECTORY:
+#line 9389 "DirectoryMonitor.c"
+ {
+ GeeCollection* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+#line 351 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp27_ = dirs;
+#line 351 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp28_ = file;
+#line 351 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ gee_collection_add (_tmp27_, _tmp28_);
+#line 352 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp29_ = count;
+#line 352 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ count = _tmp29_ + 1;
+#line 353 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 9406 "DirectoryMonitor.c"
+ }
+ default:
+ {
+ DirectoryMonitorFType _tmp30_ = 0;
+#line 356 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp30_ = ftype;
+#line 356 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _vala_assert (_tmp30_ == DIRECTORY_MONITOR_FTYPE_UNSUPPORTED, "ftype == FType.UNSUPPORTED");
+#line 357 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ break;
+#line 9417 "DirectoryMonitor.c"
+ }
+ }
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (parent);
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (file);
+#line 9424 "DirectoryMonitor.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 9428 "DirectoryMonitor.c"
+ }
+#line 361 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ result = count;
+#line 361 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return result;
+#line 9434 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_value_file_info_map_init (GValue* value) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 9441 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_value_file_info_map_free_value (GValue* value) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (value->data[0].v_pointer) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_unref (value->data[0].v_pointer);
+#line 9450 "DirectoryMonitor.c"
+ }
+}
+
+
+static void directory_monitor_value_file_info_map_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (src_value->data[0].v_pointer) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ dest_value->data[0].v_pointer = directory_monitor_file_info_map_ref (src_value->data[0].v_pointer);
+#line 9460 "DirectoryMonitor.c"
+ } else {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 9464 "DirectoryMonitor.c"
+ }
+}
+
+
+static gpointer directory_monitor_value_file_info_map_peek_pointer (const GValue* value) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 9472 "DirectoryMonitor.c"
+}
+
+
+static gchar* directory_monitor_value_file_info_map_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (collect_values[0].v_pointer) {
+#line 9479 "DirectoryMonitor.c"
+ DirectoryMonitorFileInfoMap* object;
+ object = collect_values[0].v_pointer;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9486 "DirectoryMonitor.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9490 "DirectoryMonitor.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = directory_monitor_file_info_map_ref (object);
+#line 9494 "DirectoryMonitor.c"
+ } else {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 9498 "DirectoryMonitor.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return NULL;
+#line 9502 "DirectoryMonitor.c"
+}
+
+
+static gchar* directory_monitor_value_file_info_map_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DirectoryMonitorFileInfoMap** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!object_p) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 9513 "DirectoryMonitor.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (!value->data[0].v_pointer) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *object_p = NULL;
+#line 9519 "DirectoryMonitor.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *object_p = value->data[0].v_pointer;
+#line 9523 "DirectoryMonitor.c"
+ } else {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ *object_p = directory_monitor_file_info_map_ref (value->data[0].v_pointer);
+#line 9527 "DirectoryMonitor.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return NULL;
+#line 9531 "DirectoryMonitor.c"
+}
+
+
+static GParamSpec* directory_monitor_param_spec_file_info_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ DirectoryMonitorParamSpecFileInfoMap* spec;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP), NULL);
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return G_PARAM_SPEC (spec);
+#line 9545 "DirectoryMonitor.c"
+}
+
+
+static gpointer directory_monitor_value_get_file_info_map (const GValue* value) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP), NULL);
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 9554 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_value_set_file_info_map (GValue* value, gpointer v_object) {
+ DirectoryMonitorFileInfoMap* old;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (v_object) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_ref (value->data[0].v_pointer);
+#line 9574 "DirectoryMonitor.c"
+ } else {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 9578 "DirectoryMonitor.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_unref (old);
+#line 9584 "DirectoryMonitor.c"
+ }
+}
+
+
+static void directory_monitor_value_take_file_info_map (GValue* value, gpointer v_object) {
+ DirectoryMonitorFileInfoMap* old;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (v_object) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP));
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 9603 "DirectoryMonitor.c"
+ } else {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 9607 "DirectoryMonitor.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (old) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_unref (old);
+#line 9613 "DirectoryMonitor.c"
+ }
+}
+
+
+static void directory_monitor_file_info_map_class_init (DirectoryMonitorFileInfoMapClass * klass) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_file_info_map_parent_class = g_type_class_peek_parent (klass);
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorFileInfoMapClass *) klass)->finalize = directory_monitor_file_info_map_finalize;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_type_class_add_private (klass, sizeof (DirectoryMonitorFileInfoMapPrivate));
+#line 9625 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_file_info_map_instance_init (DirectoryMonitorFileInfoMap * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv = DIRECTORY_MONITOR_FILE_INFO_MAP_GET_PRIVATE (self);
+#line 129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->map = _tmp0_;
+#line 131 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 131 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->id_map = _tmp1_;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->ref_count = 1;
+#line 9644 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_file_info_map_finalize (DirectoryMonitorFileInfoMap* obj) {
+ DirectoryMonitorFileInfoMap * self;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DIRECTORY_MONITOR_TYPE_FILE_INFO_MAP, DirectoryMonitorFileInfoMap);
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_handlers_destroy (self);
+#line 129 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->map);
+#line 131 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->id_map);
+#line 9658 "DirectoryMonitor.c"
+}
+
+
+static GType directory_monitor_file_info_map_get_type (void) {
+ static volatile gsize directory_monitor_file_info_map_type_id__volatile = 0;
+ if (g_once_init_enter (&directory_monitor_file_info_map_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { directory_monitor_value_file_info_map_init, directory_monitor_value_file_info_map_free_value, directory_monitor_value_file_info_map_copy_value, directory_monitor_value_file_info_map_peek_pointer, "p", directory_monitor_value_file_info_map_collect_value, "p", directory_monitor_value_file_info_map_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DirectoryMonitorFileInfoMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) directory_monitor_file_info_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectoryMonitorFileInfoMap), 0, (GInstanceInitFunc) directory_monitor_file_info_map_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType directory_monitor_file_info_map_type_id;
+ directory_monitor_file_info_map_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DirectoryMonitorFileInfoMap", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&directory_monitor_file_info_map_type_id__volatile, directory_monitor_file_info_map_type_id);
+ }
+ return directory_monitor_file_info_map_type_id__volatile;
+}
+
+
+static gpointer directory_monitor_file_info_map_ref (gpointer instance) {
+ DirectoryMonitorFileInfoMap* self;
+ self = instance;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ return instance;
+#line 9683 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_file_info_map_unref (gpointer instance) {
+ DirectoryMonitorFileInfoMap* self;
+ self = instance;
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ DIRECTORY_MONITOR_FILE_INFO_MAP_GET_CLASS (self)->finalize (self);
+#line 128 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 9696 "DirectoryMonitor.c"
+ }
+}
+
+
+static void directory_monitor_class_init (DirectoryMonitorClass * klass) {
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ directory_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_type_class_add_private (klass, sizeof (DirectoryMonitorPrivate));
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_root_deleted = directory_monitor_real_notify_root_deleted;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_root_moved = directory_monitor_real_notify_root_moved;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_discovery_started = directory_monitor_real_notify_discovery_started;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->internal_notify_file_discovered = directory_monitor_real_internal_notify_file_discovered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_discovered = directory_monitor_real_notify_file_discovered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->internal_notify_directory_discovered = directory_monitor_real_internal_notify_directory_discovered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_directory_discovered = directory_monitor_real_notify_directory_discovered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_discovery_failed = directory_monitor_real_notify_discovery_failed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_discovery_completed = directory_monitor_real_notify_discovery_completed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_created = directory_monitor_real_notify_file_created;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_moved = directory_monitor_real_notify_file_moved;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_altered = directory_monitor_real_notify_file_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_alteration_completed = directory_monitor_real_notify_file_alteration_completed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_attributes_altered = directory_monitor_real_notify_file_attributes_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_deleted = directory_monitor_real_notify_file_deleted;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_directory_created = directory_monitor_real_notify_directory_created;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_directory_moved = directory_monitor_real_notify_directory_moved;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_directory_altered = directory_monitor_real_notify_directory_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_directory_alteration_completed = directory_monitor_real_notify_directory_alteration_completed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_directory_attributes_altered = directory_monitor_real_notify_directory_attributes_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_directory_deleted = directory_monitor_real_notify_directory_deleted;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_closed = directory_monitor_real_notify_closed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->close = directory_monitor_real_close;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->root_moved = directory_monitor_real_root_moved;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->root_deleted = directory_monitor_real_root_deleted;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->discovery_started = directory_monitor_real_discovery_started;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_discovered = directory_monitor_real_file_discovered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->directory_discovered = directory_monitor_real_directory_discovered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->discovery_failed = directory_monitor_real_discovery_failed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->discovery_completed = directory_monitor_real_discovery_completed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_created = directory_monitor_real_file_created;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_moved = directory_monitor_real_file_moved;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_altered = directory_monitor_real_file_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_alteration_completed = directory_monitor_real_file_alteration_completed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_attributes_altered = directory_monitor_real_file_attributes_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_deleted = directory_monitor_real_file_deleted;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->directory_created = directory_monitor_real_directory_created;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->directory_moved = directory_monitor_real_directory_moved;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->directory_altered = directory_monitor_real_directory_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->directory_alteration_completed = directory_monitor_real_directory_alteration_completed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->directory_attributes_altered = directory_monitor_real_directory_attributes_altered;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->directory_deleted = directory_monitor_real_directory_deleted;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->closed = directory_monitor_real_closed;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ G_OBJECT_CLASS (klass)->finalize = directory_monitor_finalize;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("root_moved", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, root_moved), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT, G_TYPE_NONE, 3, G_TYPE_FILE, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("root_deleted", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, root_deleted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("discovery_started", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, discovery_started), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("file_discovered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_discovered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("directory_discovered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_discovered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("discovery_failed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, discovery_failed), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("discovery_completed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, discovery_completed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("file_created", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_created), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("file_moved", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_moved), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT, G_TYPE_NONE, 3, G_TYPE_FILE, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("file_altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("file_alteration_completed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_alteration_completed), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("file_attributes_altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_attributes_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("file_deleted", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, file_deleted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("directory_created", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_created), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("directory_moved", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_moved), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT, G_TYPE_NONE, 3, G_TYPE_FILE, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("directory_altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("directory_alteration_completed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_alteration_completed), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, g_file_info_get_type ());
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("directory_attributes_altered", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_attributes_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("directory_deleted", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, directory_deleted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ g_signal_new ("closed", TYPE_DIRECTORY_MONITOR, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DirectoryMonitorClass, closed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 9834 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_instance_init (DirectoryMonitor * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeLinkedList* _tmp1_ = NULL;
+ DirectoryMonitorFileInfoMap* _tmp2_ = NULL;
+ DirectoryMonitorFileInfoMap* _tmp3_ = NULL;
+ GCancellable* _tmp4_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv = DIRECTORY_MONITOR_GET_PRIVATE (self);
+#line 368 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, g_file_monitor_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 368 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->monitors = _tmp0_;
+#line 369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp1_ = gee_linked_list_new (DIRECTORY_MONITOR_TYPE_QUERY_INFO_QUEUE_ELEMENT, (GBoxedCopyFunc) directory_monitor_query_info_queue_element_ref, directory_monitor_query_info_queue_element_unref, NULL, NULL, NULL);
+#line 369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->query_info_queue = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_QUEUE, GeeQueue);
+#line 371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp2_ = directory_monitor_file_info_map_new ();
+#line 371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->files = _tmp2_;
+#line 372 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp3_ = directory_monitor_file_info_map_new ();
+#line 372 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->parent_moved = _tmp3_;
+#line 373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _tmp4_ = g_cancellable_new ();
+#line 373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->cancellable = _tmp4_;
+#line 374 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->outstanding_exploration_dirs = 0;
+#line 375 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->started = FALSE;
+#line 376 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->has_discovery_started = FALSE;
+#line 377 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self->priv->delete_timer_id = (guint) 0;
+#line 9874 "DirectoryMonitor.c"
+}
+
+
+static void directory_monitor_finalize (GObject* obj) {
+ DirectoryMonitor * self;
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECTORY_MONITOR, DirectoryMonitor);
+#line 365 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->root);
+#line 368 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->monitors);
+#line 369 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->query_info_queue);
+#line 371 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_file_info_map_unref0 (self->priv->files);
+#line 372 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _directory_monitor_file_info_map_unref0 (self->priv->parent_moved);
+#line 373 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 60 "/home/jens/Source/shotwell/src/DirectoryMonitor.vala"
+ G_OBJECT_CLASS (directory_monitor_parent_class)->finalize (obj);
+#line 9896 "DirectoryMonitor.c"
+}
+
+
+GType directory_monitor_get_type (void) {
+ static volatile gsize directory_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&directory_monitor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectoryMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) directory_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectoryMonitor), 0, (GInstanceInitFunc) directory_monitor_instance_init, NULL };
+ GType directory_monitor_type_id;
+ directory_monitor_type_id = g_type_register_static (G_TYPE_OBJECT, "DirectoryMonitor", &g_define_type_info, 0);
+ g_once_init_leave (&directory_monitor_type_id__volatile, directory_monitor_type_id);
+ }
+ return directory_monitor_type_id__volatile;
+}
+
+
+
diff --git a/src/Event.c b/src/Event.c
new file mode 100644
index 0000000..a68abc5
--- /dev/null
+++ b/src/Event.c
@@ -0,0 +1,7669 @@
+/* Event.c generated by valac 0.32.1, the Vala compiler
+ * generated from Event.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <time.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+typedef struct _ContainerSourceCollectionPrivate ContainerSourceCollectionPrivate;
+
+#define TYPE_CONTAINER_SOURCE (container_source_get_type ())
+#define CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE, ContainerSource))
+#define IS_CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE))
+#define CONTAINER_SOURCE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONTAINER_SOURCE, ContainerSourceIface))
+
+typedef struct _ContainerSource ContainerSource;
+typedef struct _ContainerSourceIface ContainerSourceIface;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+typedef struct _EventSourceCollectionPrivate EventSourceCollectionPrivate;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER (event_source_collection_no_event_view_manager_get_type ())
+#define EVENT_SOURCE_COLLECTION_NO_EVENT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER, EventSourceCollectionNoEventViewManager))
+#define EVENT_SOURCE_COLLECTION_NO_EVENT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER, EventSourceCollectionNoEventViewManagerClass))
+#define EVENT_SOURCE_COLLECTION_IS_NO_EVENT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER))
+#define EVENT_SOURCE_COLLECTION_IS_NO_EVENT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER))
+#define EVENT_SOURCE_COLLECTION_NO_EVENT_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER, EventSourceCollectionNoEventViewManagerClass))
+
+typedef struct _EventSourceCollectionNoEventViewManager EventSourceCollectionNoEventViewManager;
+typedef struct _EventSourceCollectionNoEventViewManagerClass EventSourceCollectionNoEventViewManagerClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _EventSourceCollectionNoEventViewManagerPrivate EventSourceCollectionNoEventViewManagerPrivate;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+typedef struct _EventSourcePrivate EventSourcePrivate;
+
+#define TYPE_PROXYABLE (proxyable_get_type ())
+#define PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROXYABLE, Proxyable))
+#define IS_PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROXYABLE))
+#define PROXYABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_PROXYABLE, ProxyableIface))
+
+typedef struct _Proxyable Proxyable;
+typedef struct _ProxyableIface ProxyableIface;
+
+#define TYPE_SOURCE_PROXY (source_proxy_get_type ())
+#define SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_PROXY, SourceProxy))
+#define SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_PROXY, SourceProxyClass))
+#define IS_SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_PROXY))
+#define IS_SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_PROXY))
+#define SOURCE_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_PROXY, SourceProxyClass))
+
+typedef struct _SourceProxy SourceProxy;
+typedef struct _SourceProxyClass SourceProxyClass;
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+typedef struct _EventPrivate EventPrivate;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_EVENT_TABLE (event_table_get_type ())
+#define EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_TABLE, EventTable))
+#define EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_TABLE, EventTableClass))
+#define IS_EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_TABLE))
+#define IS_EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_TABLE))
+#define EVENT_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_TABLE, EventTableClass))
+
+typedef struct _EventTable EventTable;
+typedef struct _EventTableClass EventTableClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_EVENT_ROW (event_row_get_type ())
+#define EVENT_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_ROW, EventRow))
+#define EVENT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_ROW, EventRowClass))
+#define IS_EVENT_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_ROW))
+#define IS_EVENT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_ROW))
+#define EVENT_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_ROW, EventRowClass))
+
+typedef struct _EventRow EventRow;
+typedef struct _EventRowClass EventRowClass;
+typedef struct _EventRowPrivate EventRowPrivate;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _event_row_unref0(var) ((var == NULL) ? NULL : (var = (event_row_unref (var), NULL)))
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+
+#define TYPE_RATING (rating_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _source_backlink_unref0(var) ((var == NULL) ? NULL : (var = (source_backlink_unref (var), NULL)))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+
+#define TYPE_EVENT_VIEW (event_view_get_type ())
+#define EVENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_VIEW, EventView))
+#define EVENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_VIEW, EventViewClass))
+#define IS_EVENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_VIEW))
+#define IS_EVENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_VIEW))
+#define EVENT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_VIEW, EventViewClass))
+
+typedef struct _EventView EventView;
+typedef struct _EventViewClass EventViewClass;
+
+#define EVENT_TYPE_EVENT_SNAPSHOT (event_event_snapshot_get_type ())
+#define EVENT_EVENT_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENT_TYPE_EVENT_SNAPSHOT, EventEventSnapshot))
+#define EVENT_EVENT_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENT_TYPE_EVENT_SNAPSHOT, EventEventSnapshotClass))
+#define EVENT_IS_EVENT_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENT_TYPE_EVENT_SNAPSHOT))
+#define EVENT_IS_EVENT_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENT_TYPE_EVENT_SNAPSHOT))
+#define EVENT_EVENT_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENT_TYPE_EVENT_SNAPSHOT, EventEventSnapshotClass))
+
+typedef struct _EventEventSnapshot EventEventSnapshot;
+typedef struct _EventEventSnapshotClass EventEventSnapshotClass;
+
+#define EVENT_TYPE_EVENT_PROXY (event_event_proxy_get_type ())
+#define EVENT_EVENT_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENT_TYPE_EVENT_PROXY, EventEventProxy))
+#define EVENT_EVENT_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENT_TYPE_EVENT_PROXY, EventEventProxyClass))
+#define EVENT_IS_EVENT_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENT_TYPE_EVENT_PROXY))
+#define EVENT_IS_EVENT_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENT_TYPE_EVENT_PROXY))
+#define EVENT_EVENT_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENT_TYPE_EVENT_PROXY, EventEventProxyClass))
+
+typedef struct _EventEventProxy EventEventProxy;
+typedef struct _EventEventProxyClass EventEventProxyClass;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+
+#define TYPE_PHOTO_TABLE (photo_table_get_type ())
+#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
+#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
+#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
+#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
+#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))
+
+typedef struct _PhotoTable PhotoTable;
+typedef struct _PhotoTableClass PhotoTableClass;
+
+#define TYPE_VIDEO_TABLE (video_table_get_type ())
+#define VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_TABLE, VideoTable))
+#define VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_TABLE, VideoTableClass))
+#define IS_VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_TABLE))
+#define IS_VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_TABLE))
+#define VIDEO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_TABLE, VideoTableClass))
+
+typedef struct _VideoTable VideoTable;
+typedef struct _VideoTableClass VideoTableClass;
+typedef struct _SourceSnapshotPrivate SourceSnapshotPrivate;
+typedef struct _EventEventSnapshotPrivate EventEventSnapshotPrivate;
+typedef struct _SourceProxyPrivate SourceProxyPrivate;
+typedef struct _EventEventProxyPrivate EventEventProxyPrivate;
+#define _source_snapshot_unref0(var) ((var == NULL) ? NULL : (var = (source_snapshot_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _ContainerSourceIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_links) (ContainerSource* self);
+ SourceBacklink* (*get_backlink) (ContainerSource* self);
+ void (*break_link) (ContainerSource* self, DataSource* source);
+ void (*break_link_many) (ContainerSource* self, GeeCollection* sources);
+ void (*establish_link) (ContainerSource* self, DataSource* source);
+ void (*establish_link_many) (ContainerSource* self, GeeCollection* sources);
+};
+
+struct _ContainerSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ ContainerSourceCollectionPrivate * priv;
+};
+
+struct _ContainerSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+ void (*notify_container_contents_added) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+ void (*notify_container_contents_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+ void (*notify_container_contents_altered) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+ void (*notify_backlink_to_container_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+ GeeCollection* (*get_containers_holding_source) (ContainerSourceCollection* self, DataSource* source);
+ ContainerSource* (*convert_backlink_to_container) (ContainerSourceCollection* self, SourceBacklink* backlink);
+ void (*container_contents_added) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+ void (*container_contents_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+ void (*container_contents_altered) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+ void (*backlink_to_container_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+};
+
+struct _EventSourceCollection {
+ ContainerSourceCollection parent_instance;
+ EventSourceCollectionPrivate * priv;
+};
+
+struct _EventSourceCollectionClass {
+ ContainerSourceCollectionClass parent_class;
+};
+
+struct _EventSourceCollectionPrivate {
+ ViewCollection* no_event;
+};
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+struct _EventID {
+ gint64 id;
+};
+
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _EventSourceCollectionNoEventViewManager {
+ ViewManager parent_instance;
+ EventSourceCollectionNoEventViewManagerPrivate * priv;
+};
+
+struct _EventSourceCollectionNoEventViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _ThumbnailSource {
+ DataSource parent_instance;
+ ThumbnailSourcePrivate * priv;
+};
+
+struct _ThumbnailSourceClass {
+ DataSourceClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailSource* self);
+ GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ gchar* (*get_representative_id) (ThumbnailSource* self);
+ PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self);
+ void (*thumbnail_altered) (ThumbnailSource* self);
+};
+
+struct _EventSource {
+ ThumbnailSource parent_instance;
+ EventSourcePrivate * priv;
+};
+
+struct _EventSourceClass {
+ ThumbnailSourceClass parent_class;
+ time_t (*get_start_time) (EventSource* self);
+ time_t (*get_end_time) (EventSource* self);
+ guint64 (*get_total_filesize) (EventSource* self);
+ gint (*get_media_count) (EventSource* self);
+ GeeCollection* (*get_media) (EventSource* self);
+ gchar* (*get_comment) (EventSource* self);
+ gboolean (*set_comment) (EventSource* self, const gchar* comment);
+};
+
+struct _ProxyableIface {
+ GTypeInterface parent_iface;
+ SourceProxy* (*get_proxy) (Proxyable* self);
+};
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _Event {
+ EventSource parent_instance;
+ EventPrivate * priv;
+};
+
+struct _EventClass {
+ EventSourceClass parent_class;
+};
+
+struct _EventPrivate {
+ EventID event_id;
+ gchar* raw_name;
+ MediaSource* primary_source;
+ ViewCollection* view;
+ gboolean unlinking;
+ gboolean relinking;
+ gchar* indexable_keywords;
+ gchar* comment;
+};
+
+struct _EventRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EventRowPrivate * priv;
+ EventID event_id;
+ gchar* name;
+ time_t time_created;
+ gchar* primary_source_id;
+ gchar* comment;
+};
+
+struct _EventRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (EventRow *self);
+};
+
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef DataView* (*CreateView) (DataSource* source, void* user_data);
+typedef gboolean (*CreateViewPredicate) (DataSource* source, void* user_data);
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _SourceSnapshot {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceSnapshotPrivate * priv;
+};
+
+struct _SourceSnapshotClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceSnapshot *self);
+ void (*notify_broken) (SourceSnapshot* self);
+ void (*broken) (SourceSnapshot* self);
+};
+
+struct _EventEventSnapshot {
+ SourceSnapshot parent_instance;
+ EventEventSnapshotPrivate * priv;
+};
+
+struct _EventEventSnapshotClass {
+ SourceSnapshotClass parent_class;
+};
+
+struct _EventEventSnapshotPrivate {
+ EventRow* row;
+ MediaSource* primary_source;
+ GeeArrayList* attached_sources;
+};
+
+struct _SourceProxy {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceProxyPrivate * priv;
+};
+
+struct _SourceProxyClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceProxy *self);
+ DataSource* (*reconstitute) (SourceProxy* self, gint64 object_id, SourceSnapshot* snapshot);
+ void (*notify_reconstituted) (SourceProxy* self, DataSource* source);
+ void (*notify_dehydrated) (SourceProxy* self);
+ void (*notify_broken) (SourceProxy* self);
+ void (*reconstituted) (SourceProxy* self, DataSource* source);
+ void (*dehydrated) (SourceProxy* self);
+ void (*broken) (SourceProxy* self);
+};
+
+struct _EventEventProxy {
+ SourceProxy parent_instance;
+ EventEventProxyPrivate * priv;
+};
+
+struct _EventEventProxyClass {
+ SourceProxyClass parent_class;
+};
+
+
+static gpointer event_source_collection_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+static gpointer event_source_collection_no_event_view_manager_parent_class = NULL;
+static gpointer event_parent_class = NULL;
+extern EventSourceCollection* event_global;
+EventSourceCollection* event_global = NULL;
+static EventTable* event_event_table;
+static EventTable* event_event_table = NULL;
+static gpointer event_event_snapshot_parent_class = NULL;
+static gpointer event_event_proxy_parent_class = NULL;
+static ContainerSourceIface* event_container_source_parent_iface = NULL;
+static ProxyableIface* event_proxyable_parent_iface = NULL;
+static IndexableIface* event_indexable_parent_iface = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+#define EVENT_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionPrivate))
+enum {
+ EVENT_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+EventSourceCollection* event_source_collection_new (void);
+EventSourceCollection* event_source_collection_construct (GType object_type);
+#define EVENT_TYPENAME "event"
+static gint64 event_source_collection_get_event_key (DataSource* source);
+static gint64 _event_source_collection_get_event_key_get_source_database_key (DataSource* source, gpointer self);
+ContainerSourceCollection* container_source_collection_construct (GType object_type, const gchar* backlink_name, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+void container_source_collection_attach_collection (ContainerSourceCollection* self, SourceCollection* collection);
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+void event_source_collection_init (EventSourceCollection* self);
+ViewCollection* view_collection_new (const gchar* name);
+ViewCollection* view_collection_construct (GType object_type, const gchar* name);
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+static GType event_source_collection_no_event_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static EventSourceCollectionNoEventViewManager* event_source_collection_no_event_view_manager_new (void);
+static EventSourceCollectionNoEventViewManager* event_source_collection_no_event_view_manager_construct (GType object_type);
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+static void event_source_collection_on_no_event_collection_altered (EventSourceCollection* self, GeeIterable* added, GeeIterable* removed);
+static void _event_source_collection_on_no_event_collection_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static gboolean event_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+void event_get_event_id (Event* self, EventID* result);
+Event* event_source_collection_fetch (EventSourceCollection* self, EventID* event_id);
+DataSource* database_source_collection_fetch_by_key (DatabaseSourceCollection* self, gint64 key);
+static GeeCollection* event_source_collection_real_get_containers_holding_source (ContainerSourceCollection* base, DataSource* source);
+GType media_source_get_type (void) G_GNUC_CONST;
+Event* media_source_get_event (MediaSource* self);
+static ContainerSource* event_source_collection_real_convert_backlink_to_container (ContainerSourceCollection* base, SourceBacklink* backlink);
+gint64 source_backlink_get_instance_id (SourceBacklink* self);
+void event_id_init (EventID *self, gint64 id);
+GeeCollection* container_source_collection_get_holding_tank (ContainerSourceCollection* self);
+GeeCollection* event_source_collection_get_no_event_objects (EventSourceCollection* self);
+GeeCollection* view_collection_get_sources (ViewCollection* self);
+GType data_view_get_type (void) G_GNUC_CONST;
+enum {
+ EVENT_SOURCE_COLLECTION_NO_EVENT_VIEW_MANAGER_DUMMY_PROPERTY
+};
+static gboolean event_source_collection_no_event_view_manager_real_include_in_view (ViewManager* base, DataSource* source);
+void media_source_get_event_id (MediaSource* self, EventID* result);
+#define EVENT_ID_INVALID ((gint64) -1)
+gboolean view_manager_include_in_view (ViewManager* self, DataSource* source);
+static DataView* event_source_collection_no_event_view_manager_real_create_view (ViewManager* base, DataSource* source);
+ThumbnailView* thumbnail_view_new (ThumbnailSource* source);
+ThumbnailView* thumbnail_view_construct (GType object_type, ThumbnailSource* source);
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+ViewManager* view_manager_construct (GType object_type);
+static void event_source_collection_finalize (DataCollection* obj);
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+gpointer source_proxy_ref (gpointer instance);
+void source_proxy_unref (gpointer instance);
+GParamSpec* param_spec_source_proxy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_proxy (GValue* value, gpointer v_object);
+void value_take_source_proxy (GValue* value, gpointer v_object);
+gpointer value_get_source_proxy (const GValue* value);
+GType source_proxy_get_type (void) G_GNUC_CONST;
+GType proxyable_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+#define EVENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EVENT, EventPrivate))
+enum {
+ EVENT_DUMMY_PROPERTY
+};
+static void event_on_primary_thumbnail_altered (Event* self);
+static void _event_on_primary_thumbnail_altered_thumbnail_source_thumbnail_altered (ThumbnailSource* _sender, gpointer self);
+static void event_on_media_altered (Event* self, GeeMap* items);
+static void _event_on_media_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void event_on_media_removed (Event* self, GeeIterable* removed);
+static void _event_on_media_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self);
+static void event_on_media_added (Event* self, GeeIterable* added);
+static void _event_on_media_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self);
+static void event_on_media_destroyed (Event* self, DataSource* source);
+static void _event_on_media_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType event_table_get_type (void) G_GNUC_CONST;
+#define EVENT_PROP_SHOW_COMMENTS "show-comments"
+#define EVENT_EVENT_BOUNDARY_HOUR 4
+#define EVENT_TIME_T_DAY ((time_t) ((24 * 60) * 60))
+gpointer event_row_ref (gpointer instance);
+void event_row_unref (gpointer instance);
+GParamSpec* param_spec_event_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_event_row (GValue* value, gpointer v_object);
+void value_take_event_row (GValue* value, gpointer v_object);
+gpointer value_get_event_row (const GValue* value);
+GType event_row_get_type (void) G_GNUC_CONST;
+static Event* event_new (EventRow* event_row, gint64 object_id);
+static Event* event_construct (GType object_type, EventRow* event_row, gint64 object_id);
+EventSource* event_source_construct (GType object_type, gint64 object_id);
+gchar* event_prep_event_name (const gchar* name);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_source_ids_for_event_id (MediaCollectionRegistry* self, EventID* event_id);
+MediaSource* media_collection_registry_fetch_media (MediaCollectionRegistry* self, const gchar* source_id);
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+static gint64 event_view_comparator (void* a, void* b);
+static gint64 _event_view_comparator_comparator (void* a, void* b, gpointer self);
+static gboolean event_view_comparator_predicate (DataObject* object, Alteration* alteration);
+static gboolean _event_view_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+void container_source_collection_notify_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+void container_source_collection_notify_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+gint data_collection_get_count (DataCollection* self);
+DataView* view_collection_get_first_unrejected (ViewCollection* self);
+DataSource* data_view_get_source (DataView* self);
+gboolean event_table_set_primary_source_id (EventTable* self, EventID* event_id, const gchar* primary_source_id);
+gchar* data_source_get_source_id (DataSource* self);
+static void event_update_indexable_keywords (Event* self);
+static gchar* event_real_get_typename (DataSource* base);
+static gint64 event_real_get_instance_id (DataSource* base);
+static gchar* event_real_get_representative_id (ThumbnailSource* base);
+static PhotoFileFormat event_real_get_preferred_thumbnail_format (ThumbnailSource* base);
+PhotoFileFormat thumbnail_source_get_preferred_thumbnail_format (ThumbnailSource* self);
+PhotoFileFormat photo_file_format_get_system_default_format (void);
+static GdkPixbuf* event_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GdkPixbuf* thumbnail_source_create_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+void event_init (ProgressMonitor monitor, void* monitor_target);
+EventTable* event_table_get_instance (void);
+GeeArrayList* event_table_get_events (EventTable* self);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+gint event_source_get_media_count (EventSource* self);
+void data_source_rehydrate_backlinks (DataSource* self, SourceCollection* unlinked_from, const gchar* dehydrated);
+void container_source_collection_init_add_many_unlinked (ContainerSourceCollection* self, GeeCollection* unlinked);
+void event_terminate (void);
+time_t media_source_get_exposure_time (MediaSource* self);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+#define DEFAULT_USER_TEXT_INPUT_LENGTH 1024
+void event_attach (Event* self, MediaSource* source);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+void event_attach_many (Event* self, GeeCollection* media);
+void event_detach (Event* self, MediaSource* source);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+void event_detach_many (Event* self, GeeCollection* media);
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects);
+gboolean event_contains_media_type (Event* self, const gchar* media_type);
+GeeCollection* event_source_get_media (EventSource* self);
+gchar* data_source_get_typename (DataSource* self);
+static GeeArrayList* event_views_to_media (Event* self, GeeIterable* views);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+Alteration* alteration_new_from_list (const gchar* list);
+Alteration* alteration_construct_from_list (GType object_type, const gchar* list);
+void container_source_collection_notify_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+gboolean event_set_primary_source (Event* self, MediaSource* source);
+static void event_release_primary_source (Event* self);
+void container_source_collection_evaporate (ContainerSourceCollection* self, ContainerSource* container);
+static void event_real_notify_relinking (DataSource* base, SourceCollection* sources);
+void data_source_notify_relinking (DataSource* self, SourceCollection* collection);
+gboolean event_has_name (Event* self);
+MediaSource* event_get_primary_source (Event* self);
+GType rating_get_type (void) G_GNUC_CONST;
+Rating media_source_get_rating (MediaSource* self);
+Event* event_create_empty_event (MediaSource* source);
+GQuark database_error_quark (void);
+EventRow* event_table_create (EventTable* self, const gchar* primary_source_id, const gchar* comment, GError** error);
+gchar* data_object_to_string (DataObject* self);
+void app_window_database_error (GError* err);
+static Event* event_reconstitute (gint64 object_id, EventRow* row);
+void event_table_create_from_row (EventTable* self, EventRow* row, EventID* result);
+gboolean data_collection_contains (DataCollection* self, DataObject* object);
+static gboolean event_real_has_links (ContainerSource* base);
+gboolean source_collection_has_backlink (SourceCollection* self, SourceBacklink* backlink);
+SourceBacklink* container_source_get_backlink (ContainerSource* self);
+static SourceBacklink* event_real_get_backlink (ContainerSource* base);
+SourceBacklink* source_backlink_new_from_source (DataSource* source);
+SourceBacklink* source_backlink_construct_from_source (GType object_type, DataSource* source);
+static void event_real_break_link (ContainerSource* base, DataSource* source);
+gboolean media_source_set_event (MediaSource* self, Event* new_event);
+static void event_real_break_link_many (ContainerSource* base, GeeCollection* sources);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void media_source_collection_filter_media (GeeCollection* media, GeeCollection* photos, GeeCollection* videos);
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+void media_source_set_many_to_event (GeeCollection* media_sources, Event* event, TransactionController* controller, GError** error);
+TransactionController* media_source_collection_get_transaction_controller (MediaSourceCollection* self);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+static void event_real_establish_link (ContainerSource* base, DataSource* source);
+static void event_real_establish_link_many (ContainerSource* base, GeeCollection* sources);
+gchar* event_get_raw_name (Event* self);
+gchar* event_source_get_comment (EventSource* self);
+gchar* indexable_prepare_indexable_string (const gchar* str);
+static const gchar* event_real_get_indexable_keywords (Indexable* base);
+gboolean event_is_in_starting_day (Event* self, time_t time);
+DataObject* data_collection_get_at (DataCollection* self, gint index);
+static Event* event_generate_event (MediaSource* media, ViewCollection* events_so_far, const gchar* event_name, gboolean* new_event);
+GType event_view_get_type (void) G_GNUC_CONST;
+gchar* data_object_get_name (DataObject* self);
+gboolean event_rename (Event* self, const gchar* name);
+EventView* event_view_new (EventSource* source);
+EventView* event_view_construct (GType object_type, EventSource* source);
+void event_generate_single_event (MediaSource* media, ViewCollection* events_so_far, const gchar* event_name);
+void event_generate_many_events (GeeCollection* sources, ViewCollection* events_so_far);
+static SourceSnapshot* event_real_save_snapshot (DataSource* base);
+static EventEventSnapshot* event_event_snapshot_new (Event* event);
+static EventEventSnapshot* event_event_snapshot_construct (GType object_type, Event* event);
+static GType event_event_snapshot_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SourceProxy* event_real_get_proxy (Proxyable* base);
+static EventEventProxy* event_event_proxy_new (Event* event);
+static EventEventProxy* event_event_proxy_construct (GType object_type, Event* event);
+static GType event_event_proxy_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static gboolean event_real_equals (DataSource* base, DataSource* source);
+gboolean data_source_equals (DataSource* self, DataSource* source);
+static gchar* event_real_to_string (DataObject* base);
+gint64 data_object_get_object_id (DataObject* self);
+static gchar* event_real_get_name (DataObject* base);
+gchar* event_get_formatted_daterange (Event* self);
+gboolean is_string_empty (const gchar* s);
+time_t event_source_get_start_time (EventSource* self);
+time_t event_source_get_end_time (EventSource* self);
+gchar* format_local_date (struct tm* date);
+gchar* format_local_datespan (struct tm* from_date, struct tm* to_date);
+static gchar* event_real_get_comment (EventSource* base);
+gboolean event_table_rename (EventTable* self, EventID* event_id, const gchar* name);
+static gboolean event_real_set_comment (EventSource* base, const gchar* comment);
+gchar* media_source_prep_comment (const gchar* comment);
+gboolean event_table_set_comment (EventTable* self, EventID* event_id, const gchar* new_comment);
+time_t event_get_creation_time (Event* self);
+time_t event_table_get_time_created (EventTable* self, EventID* event_id);
+static time_t event_real_get_start_time (EventSource* base);
+static time_t event_real_get_end_time (EventSource* base);
+static guint64 event_real_get_total_filesize (EventSource* base);
+guint64 media_source_get_filesize (MediaSource* self);
+static gint event_real_get_media_count (EventSource* base);
+static GeeCollection* event_real_get_media (EventSource* base);
+void event_mirror_photos (Event* self, ViewCollection* view, CreateView mirroring_ctor, void* mirroring_ctor_target);
+void view_collection_mirror (ViewCollection* self, ViewCollection* to_mirror, CreateView mirroring_ctor, void* mirroring_ctor_target, CreateViewPredicate should_mirror, void* should_mirror_target);
+void thumbnail_source_notify_thumbnail_altered (ThumbnailSource* self);
+gboolean view_collection_has_view_for_source (ViewCollection* self, DataSource* source);
+static GdkPixbuf* event_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GdkPixbuf* event_get_preview_pixbuf (Event* self, Scaling* scaling);
+GdkPixbuf* media_source_get_preview_pixbuf (MediaSource* self, Scaling* scaling, GError** error);
+static void event_real_destroy (DataSource* base);
+void view_collection_halt_all_monitoring (ViewCollection* self);
+void event_table_remove (EventTable* self, EventID* event_id, GError** error);
+GType photo_table_get_type (void) G_GNUC_CONST;
+PhotoTable* photo_table_get_instance (void);
+gboolean photo_table_drop_event (PhotoTable* self, EventID* event_id);
+GType video_table_get_type (void) G_GNUC_CONST;
+VideoTable* video_table_get_instance (void);
+gboolean video_table_drop_event (VideoTable* self, EventID* event_id);
+void data_source_destroy (DataSource* self);
+#define EVENT_EVENT_SNAPSHOT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EVENT_TYPE_EVENT_SNAPSHOT, EventEventSnapshotPrivate))
+enum {
+ EVENT_EVENT_SNAPSHOT_DUMMY_PROPERTY
+};
+static void event_event_snapshot_on_attached_source_destroyed (EventEventSnapshot* self, DataSource* source);
+static void _event_event_snapshot_on_attached_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+SourceSnapshot* source_snapshot_construct (GType object_type);
+EventRow* event_table_get_row (EventTable* self, EventID* event_id);
+static EventRow* event_event_snapshot_get_row (EventEventSnapshot* self);
+static void event_event_snapshot_real_notify_broken (SourceSnapshot* base);
+EventRow* event_row_new (void);
+EventRow* event_row_construct (GType object_type);
+void source_snapshot_notify_broken (SourceSnapshot* self);
+static void event_event_snapshot_finalize (SourceSnapshot* obj);
+enum {
+ EVENT_EVENT_PROXY_DUMMY_PROPERTY
+};
+SourceProxy* source_proxy_construct (GType object_type, DataSource* source);
+static DataSource* event_event_proxy_real_reconstitute (SourceProxy* base, gint64 object_id, SourceSnapshot* snapshot);
+static void event_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gint64 _event_source_collection_get_event_key_get_source_database_key (DataSource* source, gpointer self) {
+ gint64 result;
+ result = event_source_collection_get_event_key (source);
+#line 25 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1280 "Event.c"
+}
+
+
+EventSourceCollection* event_source_collection_construct (GType object_type) {
+ EventSourceCollection* self = NULL;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ VideoSourceCollection* _tmp1_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/Event.vala"
+ self = (EventSourceCollection*) container_source_collection_construct (object_type, EVENT_TYPENAME, "EventSourceCollection", _event_source_collection_get_event_key_get_source_database_key, NULL);
+#line 27 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = library_photo_global;
+#line 27 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_attach_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection));
+#line 28 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = video_global;
+#line 28 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_attach_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_COLLECTION, SourceCollection));
+#line 24 "/home/jens/Source/shotwell/src/Event.vala"
+ return self;
+#line 1300 "Event.c"
+}
+
+
+EventSourceCollection* event_source_collection_new (void) {
+#line 24 "/home/jens/Source/shotwell/src/Event.vala"
+ return event_source_collection_construct (TYPE_EVENT_SOURCE_COLLECTION);
+#line 1307 "Event.c"
+}
+
+
+static void _event_source_collection_on_no_event_collection_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 40 "/home/jens/Source/shotwell/src/Event.vala"
+ event_source_collection_on_no_event_collection_altered ((EventSourceCollection*) self, added, removed);
+#line 1314 "Event.c"
+}
+
+
+void event_source_collection_init (EventSourceCollection* self) {
+ ViewCollection* _tmp0_ = NULL;
+ EventSourceCollectionNoEventViewManager* view_manager = NULL;
+ EventSourceCollectionNoEventViewManager* _tmp1_ = NULL;
+ Alteration* filter_alteration = NULL;
+ Alteration* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ LibraryPhotoSourceCollection* _tmp4_ = NULL;
+ ViewCollectionMonitor* _tmp5_ = NULL;
+ ViewCollectionMonitor* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ VideoSourceCollection* _tmp8_ = NULL;
+ ViewCollectionMonitor* _tmp9_ = NULL;
+ ViewCollectionMonitor* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT_SOURCE_COLLECTION (self));
+#line 32 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = view_collection_new ("No Event View Collection");
+#line 32 "/home/jens/Source/shotwell/src/Event.vala"
+ _data_collection_unref0 (self->priv->no_event);
+#line 32 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->no_event = _tmp0_;
+#line 34 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_source_collection_no_event_view_manager_new ();
+#line 34 "/home/jens/Source/shotwell/src/Event.vala"
+ view_manager = _tmp1_;
+#line 35 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = alteration_new ("metadata", "event");
+#line 35 "/home/jens/Source/shotwell/src/Event.vala"
+ filter_alteration = _tmp2_;
+#line 37 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = self->priv->no_event;
+#line 37 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = library_photo_global;
+#line 37 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = view_collection_monitor_source_collection (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (view_manager, TYPE_VIEW_MANAGER, ViewManager), filter_alteration, NULL, NULL, NULL);
+#line 37 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = _tmp5_;
+#line 37 "/home/jens/Source/shotwell/src/Event.vala"
+ _view_collection_monitor_unref0 (_tmp6_);
+#line 38 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = self->priv->no_event;
+#line 38 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = video_global;
+#line 38 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = view_collection_monitor_source_collection (_tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (view_manager, TYPE_VIEW_MANAGER, ViewManager), filter_alteration, NULL, NULL, NULL);
+#line 38 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_;
+#line 38 "/home/jens/Source/shotwell/src/Event.vala"
+ _view_collection_monitor_unref0 (_tmp10_);
+#line 40 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = self->priv->no_event;
+#line 40 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _event_source_collection_on_no_event_collection_altered_data_collection_contents_altered, self);
+#line 31 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (filter_alteration);
+#line 31 "/home/jens/Source/shotwell/src/Event.vala"
+ _view_manager_unref0 (view_manager);
+#line 1377 "Event.c"
+}
+
+
+static gboolean event_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) {
+ EventSourceCollection * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection);
+#line 43 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 44 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 44 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_EVENT);
+#line 44 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1395 "Event.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/Event.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1402 "Event.c"
+}
+
+
+static gint64 event_source_collection_get_event_key (DataSource* source) {
+ gint64 result = 0LL;
+ Event* event = NULL;
+ DataSource* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ EventID event_id = {0};
+ EventID _tmp2_ = {0};
+ EventID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+#line 47 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), 0LL);
+#line 48 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 48 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event));
+#line 48 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp1_;
+#line 49 "/home/jens/Source/shotwell/src/Event.vala"
+ event_get_event_id (event, &_tmp2_);
+#line 49 "/home/jens/Source/shotwell/src/Event.vala"
+ event_id = _tmp2_;
+#line 51 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = event_id;
+#line 51 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = _tmp3_.id;
+#line 51 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp4_;
+#line 51 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 51 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1437 "Event.c"
+}
+
+
+Event* event_source_collection_fetch (EventSourceCollection* self, EventID* event_id) {
+ Event* result = NULL;
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ DataSource* _tmp2_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE_COLLECTION (self), NULL);
+#line 54 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 55 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = *event_id;
+#line 55 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _tmp0_.id;
+#line 55 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = database_source_collection_fetch_by_key (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), _tmp1_);
+#line 55 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_EVENT, Event);
+#line 55 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1460 "Event.c"
+}
+
+
+static GeeCollection* event_source_collection_real_get_containers_holding_source (ContainerSourceCollection* base, DataSource* source) {
+ EventSourceCollection * self;
+ GeeCollection* result = NULL;
+ Event* event = NULL;
+ DataSource* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ Event* _tmp2_ = NULL;
+ GeeArrayList* list = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection);
+#line 58 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 59 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 59 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = media_source_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 59 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp1_;
+#line 60 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event;
+#line 60 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp2_ == NULL) {
+#line 61 "/home/jens/Source/shotwell/src/Event.vala"
+ result = NULL;
+#line 61 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 61 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1495 "Event.c"
+ }
+#line 63 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = gee_array_list_new (TYPE_CONTAINER_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 63 "/home/jens/Source/shotwell/src/Event.vala"
+ list = _tmp3_;
+#line 64 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = list;
+#line 64 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event;
+#line 64 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 66 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (list, GEE_TYPE_COLLECTION, GeeCollection);
+#line 66 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 66 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1513 "Event.c"
+}
+
+
+static ContainerSource* event_source_collection_real_convert_backlink_to_container (ContainerSourceCollection* base, SourceBacklink* backlink) {
+ EventSourceCollection * self;
+ ContainerSource* result = NULL;
+ EventID event_id = {0};
+ SourceBacklink* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ gint64 _tmp2_ = 0LL;
+ Event* event = NULL;
+ EventID _tmp3_ = {0};
+ Event* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection);
+#line 69 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (backlink), NULL);
+#line 70 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = backlink;
+#line 70 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = source_backlink_get_instance_id (_tmp0_);
+#line 70 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp1_;
+#line 70 "/home/jens/Source/shotwell/src/Event.vala"
+ event_id_init (&event_id, _tmp2_);
+#line 72 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = event_id;
+#line 72 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = event_source_collection_fetch (self, &_tmp3_);
+#line 72 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp4_;
+#line 73 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event;
+#line 73 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp5_ != NULL) {
+#line 74 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (event, TYPE_CONTAINER_SOURCE, ContainerSource);
+#line 74 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1554 "Event.c"
+ }
+ {
+ GeeIterator* _container_it = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = container_source_collection_get_holding_tank (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection));
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_;
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _tmp8_;
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp7_);
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _container_it = _tmp9_;
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 1576 "Event.c"
+ GeeIterator* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ ContainerSource* _tmp14_ = NULL;
+ EventID _tmp15_ = {0};
+ gint64 _tmp16_ = 0LL;
+ EventID _tmp17_ = {0};
+ gint64 _tmp18_ = 0LL;
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _container_it;
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = gee_iterator_next (_tmp10_);
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp11_) {
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 1595 "Event.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = _container_it;
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = gee_iterator_get (_tmp12_);
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ container = (ContainerSource*) _tmp13_;
+#line 77 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = container;
+#line 77 "/home/jens/Source/shotwell/src/Event.vala"
+ event_get_event_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_EVENT, Event), &_tmp15_);
+#line 77 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = _tmp15_.id;
+#line 77 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = event_id;
+#line 77 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = _tmp17_.id;
+#line 77 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp16_ == _tmp18_) {
+#line 78 "/home/jens/Source/shotwell/src/Event.vala"
+ result = container;
+#line 78 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_container_it);
+#line 78 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 78 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1623 "Event.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (container);
+#line 1627 "Event.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_container_it);
+#line 1631 "Event.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/Event.vala"
+ result = NULL;
+#line 81 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 81 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1639 "Event.c"
+}
+
+
+GeeCollection* event_source_collection_get_no_event_objects (EventSourceCollection* self) {
+ GeeCollection* result = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE_COLLECTION (self), NULL);
+#line 85 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->no_event;
+#line 85 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = view_collection_get_sources (_tmp0_);
+#line 85 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 85 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1657 "Event.c"
+}
+
+
+static void event_source_collection_on_no_event_collection_altered (EventSourceCollection* self, GeeIterable* added, GeeIterable* removed) {
+#line 88 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT_SOURCE_COLLECTION (self));
+#line 88 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 88 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 90 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_emit_by_name (self, "no-event-collection-altered");
+#line 1670 "Event.c"
+}
+
+
+static gboolean event_source_collection_no_event_view_manager_real_include_in_view (ViewManager* base, DataSource* source) {
+ EventSourceCollectionNoEventViewManager * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ DataSource* _tmp1_ = NULL;
+ EventID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+#line 13 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER, EventSourceCollectionNoEventViewManager);
+#line 13 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 15 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = source;
+#line 15 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_get_event_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource), &_tmp2_);
+#line 15 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_.id;
+#line 15 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp3_ != EVENT_ID_INVALID) {
+#line 15 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = FALSE;
+#line 1695 "Event.c"
+ } else {
+ DataSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 16 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = source;
+#line 16 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = VIEW_MANAGER_CLASS (event_source_collection_no_event_view_manager_parent_class)->include_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_VIEW_MANAGER, ViewManager), _tmp4_);
+#line 16 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp5_;
+#line 1705 "Event.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 15 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1711 "Event.c"
+}
+
+
+static DataView* event_source_collection_no_event_view_manager_real_create_view (ViewManager* base, DataSource* source) {
+ EventSourceCollectionNoEventViewManager * self;
+ DataView* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ ThumbnailView* _tmp1_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER, EventSourceCollectionNoEventViewManager);
+#line 19 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 20 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 20 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 20 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
+#line 20 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1732 "Event.c"
+}
+
+
+static EventSourceCollectionNoEventViewManager* event_source_collection_no_event_view_manager_construct (GType object_type) {
+ EventSourceCollectionNoEventViewManager* self = NULL;
+#line 12 "/home/jens/Source/shotwell/src/Event.vala"
+ self = (EventSourceCollectionNoEventViewManager*) view_manager_construct (object_type);
+#line 12 "/home/jens/Source/shotwell/src/Event.vala"
+ return self;
+#line 1742 "Event.c"
+}
+
+
+static EventSourceCollectionNoEventViewManager* event_source_collection_no_event_view_manager_new (void) {
+#line 12 "/home/jens/Source/shotwell/src/Event.vala"
+ return event_source_collection_no_event_view_manager_construct (EVENT_SOURCE_COLLECTION_TYPE_NO_EVENT_VIEW_MANAGER);
+#line 1749 "Event.c"
+}
+
+
+static void event_source_collection_no_event_view_manager_class_init (EventSourceCollectionNoEventViewManagerClass * klass) {
+#line 12 "/home/jens/Source/shotwell/src/Event.vala"
+ event_source_collection_no_event_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 12 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ViewManagerClass *) klass)->include_in_view = event_source_collection_no_event_view_manager_real_include_in_view;
+#line 12 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ViewManagerClass *) klass)->create_view = event_source_collection_no_event_view_manager_real_create_view;
+#line 1760 "Event.c"
+}
+
+
+static void event_source_collection_no_event_view_manager_instance_init (EventSourceCollectionNoEventViewManager * self) {
+}
+
+
+static GType event_source_collection_no_event_view_manager_get_type (void) {
+ static volatile gsize event_source_collection_no_event_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&event_source_collection_no_event_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventSourceCollectionNoEventViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_source_collection_no_event_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventSourceCollectionNoEventViewManager), 0, (GInstanceInitFunc) event_source_collection_no_event_view_manager_instance_init, NULL };
+ GType event_source_collection_no_event_view_manager_type_id;
+ event_source_collection_no_event_view_manager_type_id = g_type_register_static (TYPE_VIEW_MANAGER, "EventSourceCollectionNoEventViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&event_source_collection_no_event_view_manager_type_id__volatile, event_source_collection_no_event_view_manager_type_id);
+ }
+ return event_source_collection_no_event_view_manager_type_id__volatile;
+}
+
+
+static void event_source_collection_class_init (EventSourceCollectionClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ event_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataCollectionClass *) klass)->finalize = event_source_collection_finalize;
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ g_type_class_add_private (klass, sizeof (EventSourceCollectionPrivate));
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = event_source_collection_real_holds_type_of_source;
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ContainerSourceCollectionClass *) klass)->get_containers_holding_source = event_source_collection_real_get_containers_holding_source;
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ContainerSourceCollectionClass *) klass)->convert_backlink_to_container = event_source_collection_real_convert_backlink_to_container;
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_new ("no_event_collection_altered", TYPE_EVENT_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 1795 "Event.c"
+}
+
+
+static void event_source_collection_instance_init (EventSourceCollection * self) {
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv = EVENT_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 1802 "Event.c"
+}
+
+
+static void event_source_collection_finalize (DataCollection* obj) {
+ EventSourceCollection * self;
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection);
+#line 10 "/home/jens/Source/shotwell/src/Event.vala"
+ _data_collection_unref0 (self->priv->no_event);
+#line 7 "/home/jens/Source/shotwell/src/Event.vala"
+ DATA_COLLECTION_CLASS (event_source_collection_parent_class)->finalize (obj);
+#line 1814 "Event.c"
+}
+
+
+GType event_source_collection_get_type (void) {
+ static volatile gsize event_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&event_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventSourceCollection), 0, (GInstanceInitFunc) event_source_collection_instance_init, NULL };
+ GType event_source_collection_type_id;
+ event_source_collection_type_id = g_type_register_static (TYPE_CONTAINER_SOURCE_COLLECTION, "EventSourceCollection", &g_define_type_info, 0);
+ g_once_init_leave (&event_source_collection_type_id__volatile, event_source_collection_type_id);
+ }
+ return event_source_collection_type_id__volatile;
+}
+
+
+static void _event_on_primary_thumbnail_altered_thumbnail_source_thumbnail_altered (ThumbnailSource* _sender, gpointer self) {
+#line 238 "/home/jens/Source/shotwell/src/Event.vala"
+ event_on_primary_thumbnail_altered ((Event*) self);
+#line 1833 "Event.c"
+}
+
+
+static void _event_on_media_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 240 "/home/jens/Source/shotwell/src/Event.vala"
+ event_on_media_altered ((Event*) self, items);
+#line 1840 "Event.c"
+}
+
+
+static void _event_on_media_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self) {
+#line 241 "/home/jens/Source/shotwell/src/Event.vala"
+ event_on_media_removed ((Event*) self, removed);
+#line 1847 "Event.c"
+}
+
+
+static void _event_on_media_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self) {
+#line 242 "/home/jens/Source/shotwell/src/Event.vala"
+ event_on_media_added ((Event*) self, added);
+#line 1854 "Event.c"
+}
+
+
+static void _event_on_media_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 244 "/home/jens/Source/shotwell/src/Event.vala"
+ event_on_media_destroyed ((Event*) self, source);
+#line 1861 "Event.c"
+}
+
+
+static gint64 _event_view_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = event_view_comparator (a, b);
+#line 201 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1870 "Event.c"
+}
+
+
+static gboolean _event_view_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = event_view_comparator_predicate (object, alteration);
+#line 201 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 1879 "Event.c"
+}
+
+
+static Event* event_construct (GType object_type, EventRow* event_row, gint64 object_id) {
+ Event * self = NULL;
+ gint64 _tmp0_ = 0LL;
+ EventRow* _tmp1_ = NULL;
+ EventRow* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ EventRow* _tmp5_ = NULL;
+ EventID _tmp6_ = {0};
+ EventRow* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ EventRow* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GeeCollection* event_source_ids = NULL;
+ MediaCollectionRegistry* _tmp13_ = NULL;
+ MediaCollectionRegistry* _tmp14_ = NULL;
+ EventID _tmp15_ = {0};
+ GeeCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeArrayList* event_thumbs = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ EventID _tmp35_ = {0};
+ gint64 _tmp36_ = 0LL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ ViewCollection* _tmp41_ = NULL;
+ ViewCollection* _tmp42_ = NULL;
+ ViewCollection* _tmp43_ = NULL;
+ GeeArrayList* _tmp44_ = NULL;
+ GeeCollection* _tmp45_ = NULL;
+ GeeCollection* _tmp46_ = NULL;
+ GeeArrayList* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ MediaCollectionRegistry* _tmp54_ = NULL;
+ MediaCollectionRegistry* _tmp55_ = NULL;
+ EventRow* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ MediaSource* _tmp58_ = NULL;
+ gboolean _tmp59_ = FALSE;
+ MediaSource* _tmp60_ = NULL;
+ MediaSource* _tmp72_ = NULL;
+ ViewCollection* _tmp74_ = NULL;
+ ViewCollection* _tmp75_ = NULL;
+ ViewCollection* _tmp76_ = NULL;
+ LibraryPhotoSourceCollection* _tmp77_ = NULL;
+ VideoSourceCollection* _tmp78_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT_ROW (event_row), NULL);
+#line 181 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = object_id;
+#line 181 "/home/jens/Source/shotwell/src/Event.vala"
+ self = (Event*) event_source_construct (object_type, _tmp0_);
+#line 184 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_row;
+#line 184 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event_row;
+#line 184 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_->name;
+#line 184 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = event_prep_event_name (_tmp3_);
+#line 184 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp1_->name);
+#line 184 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_->name = _tmp4_;
+#line 186 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event_row;
+#line 186 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = _tmp5_->event_id;
+#line 186 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->event_id = _tmp6_;
+#line 187 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = event_row;
+#line 187 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _tmp7_->name;
+#line 187 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 187 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->raw_name);
+#line 187 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->raw_name = _tmp9_;
+#line 188 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = event_row;
+#line 188 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = _tmp10_->comment;
+#line 188 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 188 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->comment);
+#line 188 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->comment = _tmp12_;
+#line 190 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = media_collection_registry_get_instance ();
+#line 190 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = _tmp13_;
+#line 190 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = self->priv->event_id;
+#line 190 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = media_collection_registry_get_source_ids_for_event_id (_tmp14_, &_tmp15_);
+#line 190 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = _tmp16_;
+#line 190 "/home/jens/Source/shotwell/src/Event.vala"
+ _media_collection_registry_unref0 (_tmp14_);
+#line 190 "/home/jens/Source/shotwell/src/Event.vala"
+ event_source_ids = _tmp17_;
+#line 192 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = gee_array_list_new (TYPE_THUMBNAIL_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 192 "/home/jens/Source/shotwell/src/Event.vala"
+ event_thumbs = _tmp18_;
+#line 1996 "Event.c"
+ {
+ GeeIterator* _current_source_id_it = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = event_source_ids;
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_id_it = _tmp20_;
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 2009 "Event.c"
+ GeeIterator* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gchar* current_source_id = NULL;
+ GeeIterator* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ MediaSource* media = NULL;
+ MediaCollectionRegistry* _tmp25_ = NULL;
+ MediaCollectionRegistry* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ MediaSource* _tmp28_ = NULL;
+ MediaSource* _tmp29_ = NULL;
+ MediaSource* _tmp30_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = _current_source_id_it;
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = gee_iterator_next (_tmp21_);
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp22_) {
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 2030 "Event.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = _current_source_id_it;
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = gee_iterator_get (_tmp23_);
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ current_source_id = (gchar*) _tmp24_;
+#line 194 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = media_collection_registry_get_instance ();
+#line 194 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp26_ = _tmp25_;
+#line 194 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp27_ = current_source_id;
+#line 194 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp28_ = media_collection_registry_fetch_media (_tmp26_, _tmp27_);
+#line 194 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp29_ = _tmp28_;
+#line 194 "/home/jens/Source/shotwell/src/Event.vala"
+ _media_collection_registry_unref0 (_tmp26_);
+#line 194 "/home/jens/Source/shotwell/src/Event.vala"
+ media = _tmp29_;
+#line 196 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp30_ = media;
+#line 196 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp30_ != NULL) {
+#line 2056 "Event.c"
+ GeeArrayList* _tmp31_ = NULL;
+ MediaSource* _tmp32_ = NULL;
+ ThumbnailView* _tmp33_ = NULL;
+ ThumbnailView* _tmp34_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp31_ = event_thumbs;
+#line 197 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp32_ = media;
+#line 197 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp33_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 197 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp34_ = _tmp33_;
+#line 197 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp34_);
+#line 197 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp34_);
+#line 2073 "Event.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (current_source_id);
+#line 2079 "Event.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_current_source_id_it);
+#line 2083 "Event.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp35_ = self->priv->event_id;
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp36_ = _tmp35_.id;
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp37_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp36_);
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp38_ = _tmp37_;
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp39_ = g_strdup_printf ("ViewCollection for Event %s", _tmp38_);
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp40_ = _tmp39_;
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp41_ = view_collection_new (_tmp40_);
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->view = _tmp41_;
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp40_);
+#line 200 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp38_);
+#line 201 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp42_ = self->priv->view;
+#line 201 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_DATA_COLLECTION, DataCollection), _event_view_comparator_comparator, NULL, _event_view_comparator_predicate_comparator_predicate, NULL);
+#line 202 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp43_ = self->priv->view;
+#line 202 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp44_ = event_thumbs;
+#line 202 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp45_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 202 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp46_ = _tmp45_;
+#line 202 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp46_);
+#line 206 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp47_ = event_thumbs;
+#line 206 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp48_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 206 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp49_ = _tmp48_;
+#line 206 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp49_ > 0) {
+#line 2129 "Event.c"
+ EventSourceCollection* _tmp50_ = NULL;
+ GeeArrayList* _tmp51_ = NULL;
+ EventSourceCollection* _tmp52_ = NULL;
+ GeeArrayList* _tmp53_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp50_ = event_global;
+#line 207 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp51_ = event_thumbs;
+#line 207 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_notify_container_contents_added (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GEE_TYPE_COLLECTION, GeeCollection), FALSE);
+#line 208 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp52_ = event_global;
+#line 208 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp53_ = event_thumbs;
+#line 208 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_notify_container_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection), FALSE, NULL, FALSE);
+#line 2146 "Event.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp54_ = media_collection_registry_get_instance ();
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp55_ = _tmp54_;
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp56_ = event_row;
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp57_ = _tmp56_->primary_source_id;
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp58_ = media_collection_registry_fetch_media (_tmp55_, _tmp57_);
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->primary_source = _tmp58_;
+#line 213 "/home/jens/Source/shotwell/src/Event.vala"
+ _media_collection_registry_unref0 (_tmp55_);
+#line 214 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp60_ = self->priv->primary_source;
+#line 214 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp60_ == NULL) {
+#line 2168 "Event.c"
+ ViewCollection* _tmp61_ = NULL;
+ gint _tmp62_ = 0;
+#line 214 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp61_ = self->priv->view;
+#line 214 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp62_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, TYPE_DATA_COLLECTION, DataCollection));
+#line 214 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp59_ = _tmp62_ > 0;
+#line 2177 "Event.c"
+ } else {
+#line 214 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp59_ = FALSE;
+#line 2181 "Event.c"
+ }
+#line 214 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp59_) {
+#line 2185 "Event.c"
+ ViewCollection* _tmp63_ = NULL;
+ DataView* _tmp64_ = NULL;
+ DataView* _tmp65_ = NULL;
+ DataSource* _tmp66_ = NULL;
+ EventTable* _tmp67_ = NULL;
+ EventID _tmp68_ = {0};
+ MediaSource* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp63_ = self->priv->view;
+#line 215 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp64_ = view_collection_get_first_unrejected (_tmp63_);
+#line 215 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp65_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, TYPE_DATA_VIEW, DataView);
+#line 215 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp66_ = data_view_get_source (_tmp65_);
+#line 215 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 215 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->primary_source = G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 215 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp65_);
+#line 216 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp67_ = event_event_table;
+#line 216 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp68_ = self->priv->event_id;
+#line 216 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp69_ = self->priv->primary_source;
+#line 216 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp70_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, TYPE_DATA_SOURCE, DataSource));
+#line 216 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp71_ = _tmp70_;
+#line 216 "/home/jens/Source/shotwell/src/Event.vala"
+ event_table_set_primary_source_id (_tmp67_, &_tmp68_, _tmp71_);
+#line 216 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp71_);
+#line 2223 "Event.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp72_ = self->priv->primary_source;
+#line 220 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp72_ != NULL) {
+#line 2229 "Event.c"
+ MediaSource* _tmp73_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp73_ = self->priv->primary_source;
+#line 221 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), "thumbnail-altered", (GCallback) _event_on_primary_thumbnail_altered_thumbnail_source_thumbnail_altered, self, 0);
+#line 2235 "Event.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp74_ = self->priv->view;
+#line 224 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, TYPE_DATA_COLLECTION, DataCollection), "items-added", (GCallback) _event_on_media_added_data_collection_items_added, self, 0);
+#line 225 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp75_ = self->priv->view;
+#line 225 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, TYPE_DATA_COLLECTION, DataCollection), "items-removed", (GCallback) _event_on_media_removed_data_collection_items_removed, self, 0);
+#line 226 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp76_ = self->priv->view;
+#line 226 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _event_on_media_altered_data_collection_items_altered, self, 0);
+#line 230 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp77_ = library_photo_global;
+#line 230 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _event_on_media_destroyed_source_collection_item_destroyed, self, 0);
+#line 231 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp78_ = video_global;
+#line 231 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _event_on_media_destroyed_source_collection_item_destroyed, self, 0);
+#line 233 "/home/jens/Source/shotwell/src/Event.vala"
+ event_update_indexable_keywords (self);
+#line 180 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event_thumbs);
+#line 180 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event_source_ids);
+#line 180 "/home/jens/Source/shotwell/src/Event.vala"
+ return self;
+#line 2265 "Event.c"
+}
+
+
+static Event* event_new (EventRow* event_row, gint64 object_id) {
+#line 180 "/home/jens/Source/shotwell/src/Event.vala"
+ return event_construct (TYPE_EVENT, event_row, object_id);
+#line 2272 "Event.c"
+}
+
+
+static gchar* event_real_get_typename (DataSource* base) {
+ Event * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 249 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = g_strdup (EVENT_TYPENAME);
+#line 249 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 249 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2288 "Event.c"
+}
+
+
+static gint64 event_real_get_instance_id (DataSource* base) {
+ Event * self;
+ gint64 result = 0LL;
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+#line 252 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 253 "/home/jens/Source/shotwell/src/Event.vala"
+ event_get_event_id (self, &_tmp0_);
+#line 253 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _tmp0_.id;
+#line 253 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 253 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2307 "Event.c"
+}
+
+
+static gchar* event_real_get_representative_id (ThumbnailSource* base) {
+ Event * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->primary_source;
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp1_ != NULL) {
+#line 2322 "Event.c"
+ MediaSource* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->primary_source;
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_SOURCE, DataSource));
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp0_);
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp3_;
+#line 2333 "Event.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp0_);
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp4_;
+#line 2342 "Event.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 257 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2348 "Event.c"
+}
+
+
+static PhotoFileFormat event_real_get_preferred_thumbnail_format (ThumbnailSource* base) {
+ Event * self;
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _tmp0_ = 0;
+ MediaSource* _tmp1_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 261 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->primary_source;
+#line 261 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp1_ != NULL) {
+#line 2363 "Event.c"
+ MediaSource* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+#line 261 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->primary_source;
+#line 261 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = thumbnail_source_get_preferred_thumbnail_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 261 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp3_;
+#line 2372 "Event.c"
+ } else {
+ PhotoFileFormat _tmp4_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = photo_file_format_get_system_default_format ();
+#line 262 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp4_;
+#line 2379 "Event.c"
+ }
+#line 261 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 261 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2385 "Event.c"
+}
+
+
+static GdkPixbuf* event_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ Event * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->primary_source;
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp1_ != NULL) {
+#line 2401 "Event.c"
+ MediaSource* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->primary_source;
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = scale;
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = thumbnail_source_create_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp3_, &_inner_error_);
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp0_);
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp4_;
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ g_propagate_error (error, _inner_error_);
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp0_);
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ return NULL;
+#line 2423 "Event.c"
+ }
+ } else {
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp0_);
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = NULL;
+#line 2430 "Event.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 266 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2436 "Event.c"
+}
+
+
+void event_init (ProgressMonitor monitor, void* monitor_target) {
+ EventTable* _tmp0_ = NULL;
+ EventSourceCollection* _tmp1_ = NULL;
+ EventSourceCollection* _tmp2_ = NULL;
+ GeeArrayList* events = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* unlinked = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* event_rows = NULL;
+ EventTable* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gint count = 0;
+ GeeArrayList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ EventSourceCollection* _tmp32_ = NULL;
+ GeeArrayList* _tmp33_ = NULL;
+ GeeCollection* _tmp34_ = NULL;
+ GeeCollection* _tmp35_ = NULL;
+ EventSourceCollection* _tmp36_ = NULL;
+ GeeArrayList* _tmp37_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_table_get_instance ();
+#line 270 "/home/jens/Source/shotwell/src/Event.vala"
+ _database_table_unref0 (event_event_table);
+#line 270 "/home/jens/Source/shotwell/src/Event.vala"
+ event_event_table = _tmp0_;
+#line 271 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_source_collection_new ();
+#line 271 "/home/jens/Source/shotwell/src/Event.vala"
+ _data_collection_unref0 (event_global);
+#line 271 "/home/jens/Source/shotwell/src/Event.vala"
+ event_global = _tmp1_;
+#line 272 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event_global;
+#line 272 "/home/jens/Source/shotwell/src/Event.vala"
+ event_source_collection_init (_tmp2_);
+#line 275 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = gee_array_list_new (TYPE_EVENT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 275 "/home/jens/Source/shotwell/src/Event.vala"
+ events = _tmp3_;
+#line 276 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = gee_array_list_new (TYPE_EVENT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 276 "/home/jens/Source/shotwell/src/Event.vala"
+ unlinked = _tmp4_;
+#line 278 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event_event_table;
+#line 278 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = event_table_get_events (_tmp5_);
+#line 278 "/home/jens/Source/shotwell/src/Event.vala"
+ event_rows = _tmp6_;
+#line 279 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = event_rows;
+#line 279 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 279 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _tmp8_;
+#line 279 "/home/jens/Source/shotwell/src/Event.vala"
+ count = _tmp9_;
+#line 2499 "Event.c"
+ {
+ gint ctr = 0;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ ctr = 0;
+#line 2504 "Event.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = TRUE;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 2511 "Event.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ Event* event = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gpointer _tmp16_ = NULL;
+ EventRow* _tmp17_ = NULL;
+ Event* _tmp18_ = NULL;
+ Event* _tmp19_ = NULL;
+ ProgressMonitor _tmp20_ = NULL;
+ void* _tmp20__target = NULL;
+ Event* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ Event* _tmp28_ = NULL;
+ EventSourceCollection* _tmp29_ = NULL;
+ GeeArrayList* _tmp30_ = NULL;
+ Event* _tmp31_ = NULL;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp10_) {
+#line 2531 "Event.c"
+ gint _tmp11_ = 0;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = ctr;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ ctr = _tmp11_ + 1;
+#line 2537 "Event.c"
+ }
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = FALSE;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = ctr;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = count;
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!(_tmp12_ < _tmp13_)) {
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 2549 "Event.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = event_rows;
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = ctr;
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp15_);
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = (EventRow*) _tmp16_;
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = event_new (_tmp17_, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = _tmp18_;
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ _event_row_unref0 (_tmp17_);
+#line 281 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp19_;
+#line 282 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = monitor;
+#line 282 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20__target = monitor_target;
+#line 282 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp20_ != NULL) {
+#line 2573 "Event.c"
+ ProgressMonitor _tmp21_ = NULL;
+ void* _tmp21__target = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 283 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = monitor;
+#line 283 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21__target = monitor_target;
+#line 283 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = ctr;
+#line 283 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = count;
+#line 283 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ ((guint64) _tmp22_, (guint64) _tmp23_, TRUE, _tmp21__target);
+#line 2588 "Event.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = event;
+#line 285 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_EVENT_SOURCE, EventSource));
+#line 285 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp25_ != 0) {
+#line 2596 "Event.c"
+ GeeArrayList* _tmp26_ = NULL;
+ Event* _tmp27_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp26_ = events;
+#line 286 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp27_ = event;
+#line 286 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp27_);
+#line 288 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 288 "/home/jens/Source/shotwell/src/Event.vala"
+ continue;
+#line 2609 "Event.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp28_ = event;
+#line 294 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp29_ = event_global;
+#line 294 "/home/jens/Source/shotwell/src/Event.vala"
+ data_source_rehydrate_backlinks (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_SOURCE_COLLECTION, SourceCollection), NULL);
+#line 295 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp30_ = unlinked;
+#line 295 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp31_ = event;
+#line 295 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp31_);
+#line 280 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 2625 "Event.c"
+ }
+ }
+ }
+#line 298 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp32_ = event_global;
+#line 298 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp33_ = events;
+#line 298 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp34_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 298 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp35_ = _tmp34_;
+#line 298 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp35_);
+#line 299 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp36_ = event_global;
+#line 299 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp37_ = unlinked;
+#line 299 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_init_add_many_unlinked (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 269 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event_rows);
+#line 269 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (unlinked);
+#line 269 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (events);
+#line 2651 "Event.c"
+}
+
+
+void event_terminate (void) {
+}
+
+
+static gint64 event_view_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ time_t _tmp3_ = 0;
+ void* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+ gint64 _tmp8_ = 0LL;
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = a;
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST ((ThumbnailView*) _tmp0_, TYPE_DATA_VIEW, DataView));
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = media_source_get_exposure_time (_tmp2_);
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = b;
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST ((ThumbnailView*) _tmp4_, TYPE_DATA_VIEW, DataView));
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = media_source_get_exposure_time (_tmp6_);
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = (gint64) (_tmp3_ - _tmp7_);
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp6_);
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp2_);
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp8_;
+#line 306 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2696 "Event.c"
+}
+
+
+static gboolean event_view_comparator_predicate (DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 310 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 310 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 311 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = alteration;
+#line 311 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "exposure-time");
+#line 311 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 311 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2716 "Event.c"
+}
+
+
+gchar* event_prep_event_name (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 319 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = name;
+#line 319 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = prepare_input_text (_tmp0_, (((PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF, DEFAULT_USER_TEXT_INPUT_LENGTH);
+#line 319 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 319 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 2732 "Event.c"
+}
+
+
+void event_attach (Event* self, MediaSource* source) {
+ ViewCollection* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ ThumbnailView* _tmp2_ = NULL;
+ ThumbnailView* _tmp3_ = NULL;
+#line 327 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 327 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (source));
+#line 328 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 328 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = source;
+#line 328 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 328 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_;
+#line 328 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 328 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2757 "Event.c"
+}
+
+
+void event_attach_many (Event* self, GeeCollection* media) {
+ GeeArrayList* views = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 331 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 332 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = gee_array_list_new (TYPE_THUMBNAIL_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 332 "/home/jens/Source/shotwell/src/Event.vala"
+ views = _tmp0_;
+#line 2776 "Event.c"
+ {
+ GeeIterator* _current_source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = media;
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_it = _tmp2_;
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 2789 "Event.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* current_source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ ThumbnailView* _tmp9_ = NULL;
+ ThumbnailView* _tmp10_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _current_source_it;
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp4_) {
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 2807 "Event.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _current_source_it;
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ current_source = (MediaSource*) _tmp6_;
+#line 334 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = views;
+#line 334 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = current_source;
+#line 334 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 334 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_;
+#line 334 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 334 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp10_);
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (current_source);
+#line 2829 "Event.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_current_source_it);
+#line 2833 "Event.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = self->priv->view;
+#line 336 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = views;
+#line 336 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 336 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = _tmp13_;
+#line 336 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp14_);
+#line 331 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (views);
+#line 2847 "Event.c"
+}
+
+
+void event_detach (Event* self, MediaSource* source) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ Marker* _tmp6_ = NULL;
+ Marker* _tmp7_ = NULL;
+#line 342 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 342 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (source));
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->view;
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->view;
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = source;
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = view_collection_get_view_for_source (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_SOURCE, DataSource));
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_;
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), _tmp7_);
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp7_);
+#line 343 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2886 "Event.c"
+}
+
+
+void event_detach_many (Event* self, GeeCollection* media) {
+ GeeArrayList* views = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ Marker* _tmp16_ = NULL;
+ Marker* _tmp17_ = NULL;
+#line 346 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 346 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 347 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = gee_array_list_new (TYPE_THUMBNAIL_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 347 "/home/jens/Source/shotwell/src/Event.vala"
+ views = _tmp0_;
+#line 2906 "Event.c"
+ {
+ GeeIterator* _current_source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = media;
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_it = _tmp2_;
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 2919 "Event.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* current_source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ ThumbnailView* view = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ ThumbnailView* _tmp10_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _current_source_it;
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp4_) {
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 2938 "Event.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _current_source_it;
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ current_source = (MediaSource*) _tmp6_;
+#line 349 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = self->priv->view;
+#line 349 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = current_source;
+#line 349 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = view_collection_get_view_for_source (_tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_SOURCE, DataSource));
+#line 349 "/home/jens/Source/shotwell/src/Event.vala"
+ view = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_THUMBNAIL_VIEW, ThumbnailView);
+#line 350 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = view;
+#line 350 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp10_ != NULL) {
+#line 2958 "Event.c"
+ GeeArrayList* _tmp11_ = NULL;
+ ThumbnailView* _tmp12_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = views;
+#line 351 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = view;
+#line 351 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp12_);
+#line 2967 "Event.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (view);
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (current_source);
+#line 2973 "Event.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_current_source_it);
+#line 2977 "Event.c"
+ }
+#line 354 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = self->priv->view;
+#line 354 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = self->priv->view;
+#line 354 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = views;
+#line 354 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = data_collection_mark_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 354 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = _tmp16_;
+#line 354 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), _tmp17_);
+#line 354 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp17_);
+#line 346 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (views);
+#line 2995 "Event.c"
+}
+
+
+gboolean event_contains_media_type (Event* self, const gchar* media_type) {
+ gboolean result = FALSE;
+#line 360 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), FALSE);
+#line 360 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (media_type != NULL, FALSE);
+#line 3005 "Event.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_source_get_media (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _tmp0_;
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_;
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp1_);
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _media_it = _tmp3_;
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 3026 "Event.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = _media_it;
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp5_) {
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 3045 "Event.c"
+ }
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = _media_it;
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ media = (MediaSource*) _tmp7_;
+#line 362 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = media;
+#line 362 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = data_source_get_typename (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_SOURCE, DataSource));
+#line 362 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_;
+#line 362 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = media_type;
+#line 362 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = g_strcmp0 (_tmp10_, _tmp11_) == 0;
+#line 362 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp10_);
+#line 362 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp12_) {
+#line 363 "/home/jens/Source/shotwell/src/Event.vala"
+ result = TRUE;
+#line 363 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 363 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_media_it);
+#line 363 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3075 "Event.c"
+ }
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 3079 "Event.c"
+ }
+#line 361 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_media_it);
+#line 3083 "Event.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/Event.vala"
+ result = FALSE;
+#line 366 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3089 "Event.c"
+}
+
+
+static GeeArrayList* event_views_to_media (Event* self, GeeIterable* views) {
+ GeeArrayList* result = NULL;
+ GeeArrayList* media = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), NULL);
+#line 369 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (GEE_IS_ITERABLE (views), NULL);
+#line 370 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 370 "/home/jens/Source/shotwell/src/Event.vala"
+ media = _tmp0_;
+#line 3105 "Event.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = views;
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _object_it = _tmp2_;
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 3118 "Event.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ DataObject* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _object_it;
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp4_) {
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 3136 "Event.c"
+ }
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _object_it;
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ object = (DataObject*) _tmp6_;
+#line 372 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = media;
+#line 372 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = object;
+#line 372 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_VIEW, DataView));
+#line 372 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 372 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 372 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp10_);
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (object);
+#line 3158 "Event.c"
+ }
+#line 371 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_object_it);
+#line 3162 "Event.c"
+ }
+#line 374 "/home/jens/Source/shotwell/src/Event.vala"
+ result = media;
+#line 374 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3168 "Event.c"
+}
+
+
+static void event_on_media_added (Event* self, GeeIterable* added) {
+ GeeCollection* media = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ EventSourceCollection* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ EventSourceCollection* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Alteration* _tmp6_ = NULL;
+ Alteration* _tmp7_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 377 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 378 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = added;
+#line 378 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_views_to_media (self, _tmp0_);
+#line 378 "/home/jens/Source/shotwell/src/Event.vala"
+ media = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 379 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event_global;
+#line 379 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = self->priv->relinking;
+#line 379 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_notify_container_contents_added (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), media, _tmp3_);
+#line 380 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = event_global;
+#line 380 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = self->priv->relinking;
+#line 380 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_notify_container_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), media, _tmp5_, NULL, FALSE);
+#line 382 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = alteration_new_from_list ("contents:added, metadata:time");
+#line 382 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_;
+#line 382 "/home/jens/Source/shotwell/src/Event.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp7_);
+#line 382 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (_tmp7_);
+#line 377 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 3214 "Event.c"
+}
+
+
+static void event_on_media_removed (Event* self, GeeIterable* removed) {
+ GeeArrayList* media = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ EventSourceCollection* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ EventSourceCollection* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gint _tmp27_ = 0;
+ Alteration* _tmp29_ = NULL;
+ Alteration* _tmp30_ = NULL;
+#line 386 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 386 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 387 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = removed;
+#line 387 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_views_to_media (self, _tmp0_);
+#line 387 "/home/jens/Source/shotwell/src/Event.vala"
+ media = _tmp1_;
+#line 389 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event_global;
+#line 389 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = media;
+#line 389 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = self->priv->unlinking;
+#line 389 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_notify_container_contents_removed (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection), _tmp4_);
+#line 390 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event_global;
+#line 390 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = media;
+#line 390 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = self->priv->unlinking;
+#line 390 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_notify_container_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), NULL, FALSE, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection), _tmp7_);
+#line 3257 "Event.c"
+ {
+ GeeArrayList* _current_source_list = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ gint _current_source_size = 0;
+ GeeArrayList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _current_source_index = 0;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = media;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_list = _tmp9_;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _current_source_list;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = _tmp11_;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_size = _tmp12_;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_index = -1;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 3285 "Event.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ MediaSource* current_source = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gpointer _tmp18_ = NULL;
+ MediaSource* _tmp19_ = NULL;
+ MediaSource* _tmp20_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = _current_source_index;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_index = _tmp13_ + 1;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = _current_source_index;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = _current_source_size;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!(_tmp14_ < _tmp15_)) {
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 3307 "Event.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = _current_source_list;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = _current_source_index;
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp17_);
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ current_source = (MediaSource*) _tmp18_;
+#line 394 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = current_source;
+#line 394 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = self->priv->primary_source;
+#line 394 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp19_ == _tmp20_) {
+#line 3323 "Event.c"
+ gint _tmp21_ = 0;
+#line 395 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 395 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp21_ > 0) {
+#line 3329 "Event.c"
+ ViewCollection* _tmp22_ = NULL;
+ DataView* _tmp23_ = NULL;
+ DataView* _tmp24_ = NULL;
+ DataSource* _tmp25_ = NULL;
+ MediaSource* _tmp26_ = NULL;
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = self->priv->view;
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = view_collection_get_first_unrejected (_tmp22_);
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = _tmp23_;
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = data_view_get_source (_tmp24_);
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp26_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ event_set_primary_source (self, _tmp26_);
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp26_);
+#line 396 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp24_);
+#line 3351 "Event.c"
+ } else {
+#line 398 "/home/jens/Source/shotwell/src/Event.vala"
+ event_release_primary_source (self);
+#line 3355 "Event.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (current_source);
+#line 400 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 3361 "Event.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (current_source);
+#line 3365 "Event.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_current_source_list);
+#line 3369 "Event.c"
+ }
+#line 405 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp27_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 405 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp27_ == 0) {
+#line 3375 "Event.c"
+ EventSourceCollection* _tmp28_ = NULL;
+#line 406 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp28_ = event_global;
+#line 406 "/home/jens/Source/shotwell/src/Event.vala"
+ container_source_collection_evaporate (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 410 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 410 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 3385 "Event.c"
+ }
+#line 413 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp29_ = alteration_new_from_list ("contents:removed, metadata:time");
+#line 413 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp30_ = _tmp29_;
+#line 413 "/home/jens/Source/shotwell/src/Event.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp30_);
+#line 413 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (_tmp30_);
+#line 386 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 3397 "Event.c"
+}
+
+
+static void event_on_media_destroyed (Event* self, DataSource* source) {
+ ThumbnailView* thumbnail_view = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ ThumbnailView* _tmp3_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 416 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 417 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 417 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = source;
+#line 417 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = view_collection_get_view_for_source (_tmp0_, _tmp1_);
+#line 417 "/home/jens/Source/shotwell/src/Event.vala"
+ thumbnail_view = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_THUMBNAIL_VIEW, ThumbnailView);
+#line 418 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = thumbnail_view;
+#line 418 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp3_ != NULL) {
+#line 3423 "Event.c"
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ThumbnailView* _tmp6_ = NULL;
+ Marker* _tmp7_ = NULL;
+ Marker* _tmp8_ = NULL;
+#line 419 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = self->priv->view;
+#line 419 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = self->priv->view;
+#line 419 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = thumbnail_view;
+#line 419 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_OBJECT, DataObject));
+#line 419 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _tmp7_;
+#line 419 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection), _tmp8_);
+#line 419 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp8_);
+#line 3443 "Event.c"
+ }
+#line 416 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (thumbnail_view);
+#line 3447 "Event.c"
+}
+
+
+static void event_real_notify_relinking (DataSource* base, SourceCollection* sources) {
+ Event * self;
+ gint _tmp0_ = 0;
+ MediaSource* _tmp1_ = NULL;
+ SourceCollection* _tmp7_ = NULL;
+#line 422 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 422 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (sources));
+#line 423 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 423 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_assert (_tmp0_ > 0, "get_media_count() > 0");
+#line 426 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->primary_source;
+#line 426 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp1_ == NULL) {
+#line 3468 "Event.c"
+ ViewCollection* _tmp2_ = NULL;
+ DataView* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->view;
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = view_collection_get_first_unrejected (_tmp2_);
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = _tmp3_;
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = data_view_get_source (_tmp4_);
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ event_set_primary_source (self, _tmp6_);
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp6_);
+#line 427 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3490 "Event.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = sources;
+#line 429 "/home/jens/Source/shotwell/src/Event.vala"
+ DATA_SOURCE_CLASS (event_parent_class)->notify_relinking (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource), TYPE_DATA_SOURCE, DataSource), _tmp7_);
+#line 3496 "Event.c"
+}
+
+
+/** @brief This gets called when one or more media items inside this
+ * event gets modified in some fashion. If the media item's date changes
+ * and the event was previously undated, the name of the event needs to
+ * change as well; all of that happens automatically in here.
+ *
+ * In addition, if the _rating_ of one or more media items has changed,
+ * the thumbnail of this event may need to change, as the primary
+ * image may have been rejected and should not be the thumbnail anymore.
+ */
+static void event_on_media_altered (Event* self, GeeMap* items) {
+ gboolean should_remake_thumb = FALSE;
+ gboolean _tmp21_ = FALSE;
+#line 441 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 441 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 442 "/home/jens/Source/shotwell/src/Event.vala"
+ should_remake_thumb = FALSE;
+#line 3518 "Event.c"
+ {
+ GeeIterator* _alteration_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = items;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = gee_map_get_values (_tmp0_);
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp1_;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp3_);
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_it = _tmp5_;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 3545 "Event.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Alteration* alteration = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Alteration* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ Alteration* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = _alteration_it;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp7_) {
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 3563 "Event.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _alteration_it;
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ alteration = (Alteration*) _tmp9_;
+#line 445 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = alteration;
+#line 445 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = alteration_has_detail (_tmp10_, "metadata", "exposure-time");
+#line 445 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp11_) {
+#line 3577 "Event.c"
+ gchar* alt_list = NULL;
+ gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ const gchar* _tmp16_ = NULL;
+ Alteration* _tmp17_ = NULL;
+ Alteration* _tmp18_ = NULL;
+#line 447 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = g_strdup ("metadata:time");
+#line 447 "/home/jens/Source/shotwell/src/Event.vala"
+ alt_list = _tmp12_;
+#line 449 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = event_has_name (self);
+#line 449 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp13_) {
+#line 3592 "Event.c"
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 450 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = alt_list;
+#line 450 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = g_strconcat (_tmp14_, ", metadata:name", NULL);
+#line 450 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (alt_list);
+#line 450 "/home/jens/Source/shotwell/src/Event.vala"
+ alt_list = _tmp15_;
+#line 3603 "Event.c"
+ }
+#line 452 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = alt_list;
+#line 452 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = alteration_new_from_list (_tmp16_);
+#line 452 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = _tmp17_;
+#line 452 "/home/jens/Source/shotwell/src/Event.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp18_);
+#line 452 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (_tmp18_);
+#line 454 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (alt_list);
+#line 454 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (alteration);
+#line 454 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 3621 "Event.c"
+ }
+#line 457 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = alteration;
+#line 457 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = alteration_has_detail (_tmp19_, "metadata", "rating");
+#line 457 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp20_) {
+#line 458 "/home/jens/Source/shotwell/src/Event.vala"
+ should_remake_thumb = TRUE;
+#line 3631 "Event.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (alteration);
+#line 3635 "Event.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_alteration_it);
+#line 3639 "Event.c"
+ }
+#line 461 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = should_remake_thumb;
+#line 461 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp21_) {
+#line 3645 "Event.c"
+ gboolean _tmp22_ = FALSE;
+ MediaSource* _tmp23_ = NULL;
+ MediaSource* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = event_get_primary_source (self);
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = _tmp23_;
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = _tmp24_ == NULL;
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp24_);
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp25_) {
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = TRUE;
+#line 3662 "Event.c"
+ } else {
+ MediaSource* _tmp26_ = NULL;
+ MediaSource* _tmp27_ = NULL;
+ Rating _tmp28_ = 0;
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp26_ = event_get_primary_source (self);
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp27_ = _tmp26_;
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp28_ = media_source_get_rating (_tmp27_);
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = _tmp28_ == RATING_REJECTED;
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp27_);
+#line 3677 "Event.c"
+ }
+#line 463 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp22_) {
+#line 3681 "Event.c"
+ ViewCollection* _tmp29_ = NULL;
+ DataView* _tmp30_ = NULL;
+ DataView* _tmp31_ = NULL;
+ DataSource* _tmp32_ = NULL;
+ MediaSource* _tmp33_ = NULL;
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp29_ = self->priv->view;
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp30_ = view_collection_get_first_unrejected (_tmp29_);
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp31_ = _tmp30_;
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp32_ = data_view_get_source (_tmp31_);
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp33_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ event_set_primary_source (self, _tmp33_);
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp33_);
+#line 465 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp31_);
+#line 3703 "Event.c"
+ }
+ }
+}
+
+
+Event* event_create_empty_event (MediaSource* source) {
+ Event* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 474 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 3714 "Event.c"
+ {
+ EventRow* _tmp0_ = NULL;
+ EventTable* _tmp1_ = NULL;
+ EventTable* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ EventRow* _tmp6_ = NULL;
+ EventRow* _tmp7_ = NULL;
+ Event* event = NULL;
+ Event* _tmp8_ = NULL;
+ EventSourceCollection* _tmp9_ = NULL;
+ Event* _tmp10_ = NULL;
+ Event* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_table_get_instance ();
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp1_;
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = source;
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_SOURCE, DataSource));
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = event_table_create (_tmp2_, _tmp5_, NULL, &_inner_error_);
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_;
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp5_);
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _database_table_unref0 (_tmp2_);
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp7_;
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3755 "Event.c"
+ goto __catch424_database_error;
+ }
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ return NULL;
+#line 3764 "Event.c"
+ }
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = event_new (_tmp0_, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 476 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp8_;
+#line 477 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = event_global;
+#line 477 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = event;
+#line 477 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 479 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = event;
+#line 479 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_OBJECT, DataObject));
+#line 479 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = _tmp12_;
+#line 479 "/home/jens/Source/shotwell/src/Event.vala"
+ g_debug ("Event.vala:479: Created empty event %s", _tmp13_);
+#line 479 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp13_);
+#line 481 "/home/jens/Source/shotwell/src/Event.vala"
+ result = event;
+#line 481 "/home/jens/Source/shotwell/src/Event.vala"
+ _event_row_unref0 (_tmp0_);
+#line 481 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3792 "Event.c"
+ }
+ goto __finally424;
+ __catch424_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp14_ = NULL;
+#line 475 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 475 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 483 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = err;
+#line 483 "/home/jens/Source/shotwell/src/Event.vala"
+ app_window_database_error (_tmp14_);
+#line 485 "/home/jens/Source/shotwell/src/Event.vala"
+ result = NULL;
+#line 485 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 485 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3813 "Event.c"
+ }
+ __finally424:
+#line 475 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 475 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 475 "/home/jens/Source/shotwell/src/Event.vala"
+ return NULL;
+#line 3822 "Event.c"
+}
+
+
+static Event* event_reconstitute (gint64 object_id, EventRow* row) {
+ Event* result = NULL;
+ EventRow* _tmp0_ = NULL;
+ EventTable* _tmp1_ = NULL;
+ EventTable* _tmp2_ = NULL;
+ EventRow* _tmp3_ = NULL;
+ EventID _tmp4_ = {0};
+ Event* event = NULL;
+ EventRow* _tmp5_ = NULL;
+ gint64 _tmp6_ = 0LL;
+ Event* _tmp7_ = NULL;
+ EventSourceCollection* _tmp8_ = NULL;
+ EventSourceCollection* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 490 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT_ROW (row), NULL);
+#line 491 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = row;
+#line 491 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_table_get_instance ();
+#line 491 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp1_;
+#line 491 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = row;
+#line 491 "/home/jens/Source/shotwell/src/Event.vala"
+ event_table_create_from_row (_tmp2_, _tmp3_, &_tmp4_);
+#line 491 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_->event_id = _tmp4_;
+#line 491 "/home/jens/Source/shotwell/src/Event.vala"
+ _database_table_unref0 (_tmp2_);
+#line 492 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = row;
+#line 492 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = object_id;
+#line 492 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = event_new (_tmp5_, _tmp6_);
+#line 492 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp7_;
+#line 493 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = event_global;
+#line 493 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (event, TYPE_DATA_OBJECT, DataObject));
+#line 494 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = event_global;
+#line 494 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (event, TYPE_DATA_OBJECT, DataObject));
+#line 494 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_assert (_tmp10_, "global.contains(event)");
+#line 496 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (event, TYPE_DATA_OBJECT, DataObject));
+#line 496 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = _tmp11_;
+#line 496 "/home/jens/Source/shotwell/src/Event.vala"
+ g_debug ("Event.vala:496: Reconstituted event %s", _tmp12_);
+#line 496 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp12_);
+#line 498 "/home/jens/Source/shotwell/src/Event.vala"
+ result = event;
+#line 498 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3888 "Event.c"
+}
+
+
+static gboolean event_real_has_links (ContainerSource* base) {
+ Event * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ LibraryPhotoSourceCollection* _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ SourceBacklink* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 501 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = library_photo_global;
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = container_source_get_backlink (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_;
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = source_collection_has_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp3_);
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ _source_backlink_unref0 (_tmp3_);
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp5_) {
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = TRUE;
+#line 3919 "Event.c"
+ } else {
+ VideoSourceCollection* _tmp6_ = NULL;
+ SourceBacklink* _tmp7_ = NULL;
+ SourceBacklink* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 503 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = video_global;
+#line 503 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = container_source_get_backlink (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 503 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _tmp7_;
+#line 503 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = source_collection_has_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp8_);
+#line 503 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp9_;
+#line 503 "/home/jens/Source/shotwell/src/Event.vala"
+ _source_backlink_unref0 (_tmp8_);
+#line 3937 "Event.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 502 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3943 "Event.c"
+}
+
+
+static SourceBacklink* event_real_get_backlink (ContainerSource* base) {
+ Event * self;
+ SourceBacklink* result = NULL;
+ SourceBacklink* _tmp0_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 507 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source_backlink_new_from_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 507 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 507 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 3959 "Event.c"
+}
+
+
+static void event_real_break_link (ContainerSource* base, DataSource* source) {
+ Event * self;
+ DataSource* _tmp0_ = NULL;
+#line 510 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 510 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 511 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->unlinking = TRUE;
+#line 513 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 513 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), NULL);
+#line 515 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->unlinking = FALSE;
+#line 3978 "Event.c"
+}
+
+
+static void event_real_break_link_many (ContainerSource* base, GeeCollection* sources) {
+ Event * self;
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* videos = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 518 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 518 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 519 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->unlinking = TRUE;
+#line 521 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 521 "/home/jens/Source/shotwell/src/Event.vala"
+ photos = _tmp0_;
+#line 522 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 522 "/home/jens/Source/shotwell/src/Event.vala"
+ videos = _tmp1_;
+#line 523 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = sources;
+#line 523 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_collection_filter_media (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (photos, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (videos, GEE_TYPE_COLLECTION, GeeCollection));
+#line 4008 "Event.c"
+ {
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ TransactionController* _tmp4_ = NULL;
+ TransactionController* _tmp5_ = NULL;
+#line 526 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = library_photo_global;
+#line 526 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 526 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 526 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_many_to_event (G_TYPE_CHECK_INSTANCE_CAST (photos, GEE_TYPE_COLLECTION, GeeCollection), NULL, _tmp5_, &_inner_error_);
+#line 526 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4023 "Event.c"
+ goto __catch425_g_error;
+ }
+ }
+ goto __finally425;
+ __catch425_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = err;
+#line 528 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_->message;
+#line 528 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = g_strdup_printf ("%s", _tmp7_);
+#line 528 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _tmp8_;
+#line 528 "/home/jens/Source/shotwell/src/Event.vala"
+ app_window_error_message (_tmp9_, NULL);
+#line 528 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp9_);
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 4053 "Event.c"
+ }
+ __finally425:
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (videos);
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (photos);
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 525 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 4068 "Event.c"
+ }
+ {
+ VideoSourceCollection* _tmp10_ = NULL;
+ TransactionController* _tmp11_ = NULL;
+ TransactionController* _tmp12_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = video_global;
+#line 532 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 532 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = _tmp11_;
+#line 532 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_many_to_event (G_TYPE_CHECK_INSTANCE_CAST (videos, GEE_TYPE_COLLECTION, GeeCollection), NULL, _tmp12_, &_inner_error_);
+#line 532 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4084 "Event.c"
+ goto __catch426_g_error;
+ }
+ }
+ goto __finally426;
+ __catch426_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 534 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = err;
+#line 534 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = _tmp13_->message;
+#line 534 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = g_strdup_printf ("%s", _tmp14_);
+#line 534 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = _tmp15_;
+#line 534 "/home/jens/Source/shotwell/src/Event.vala"
+ app_window_error_message (_tmp16_, NULL);
+#line 534 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp16_);
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 4114 "Event.c"
+ }
+ __finally426:
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (videos);
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (photos);
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 531 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 4129 "Event.c"
+ }
+#line 537 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->unlinking = FALSE;
+#line 518 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (videos);
+#line 518 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (photos);
+#line 4137 "Event.c"
+}
+
+
+static void event_real_establish_link (ContainerSource* base, DataSource* source) {
+ Event * self;
+ DataSource* _tmp0_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 540 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 541 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->relinking = TRUE;
+#line 543 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 543 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), self);
+#line 545 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->relinking = FALSE;
+#line 4156 "Event.c"
+}
+
+
+static void event_real_establish_link_many (ContainerSource* base, GeeCollection* sources) {
+ Event * self;
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* videos = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 548 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 548 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 549 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->relinking = TRUE;
+#line 551 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 551 "/home/jens/Source/shotwell/src/Event.vala"
+ photos = _tmp0_;
+#line 552 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 552 "/home/jens/Source/shotwell/src/Event.vala"
+ videos = _tmp1_;
+#line 553 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = sources;
+#line 553 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_collection_filter_media (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (photos, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (videos, GEE_TYPE_COLLECTION, GeeCollection));
+#line 4186 "Event.c"
+ {
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ TransactionController* _tmp4_ = NULL;
+ TransactionController* _tmp5_ = NULL;
+#line 556 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = library_photo_global;
+#line 556 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 556 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 556 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_many_to_event (G_TYPE_CHECK_INSTANCE_CAST (photos, GEE_TYPE_COLLECTION, GeeCollection), self, _tmp5_, &_inner_error_);
+#line 556 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4201 "Event.c"
+ goto __catch427_g_error;
+ }
+ }
+ goto __finally427;
+ __catch427_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 558 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = err;
+#line 558 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_->message;
+#line 558 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = g_strdup_printf ("%s", _tmp7_);
+#line 558 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _tmp8_;
+#line 558 "/home/jens/Source/shotwell/src/Event.vala"
+ app_window_error_message (_tmp9_, NULL);
+#line 558 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp9_);
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 4231 "Event.c"
+ }
+ __finally427:
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (videos);
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (photos);
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 555 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 4246 "Event.c"
+ }
+ {
+ VideoSourceCollection* _tmp10_ = NULL;
+ TransactionController* _tmp11_ = NULL;
+ TransactionController* _tmp12_ = NULL;
+#line 562 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = video_global;
+#line 562 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 562 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = _tmp11_;
+#line 562 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_many_to_event (G_TYPE_CHECK_INSTANCE_CAST (videos, GEE_TYPE_COLLECTION, GeeCollection), self, _tmp12_, &_inner_error_);
+#line 562 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4262 "Event.c"
+ goto __catch428_g_error;
+ }
+ }
+ goto __finally428;
+ __catch428_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = err;
+#line 564 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = _tmp13_->message;
+#line 564 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = g_strdup_printf ("%s", _tmp14_);
+#line 564 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = _tmp15_;
+#line 564 "/home/jens/Source/shotwell/src/Event.vala"
+ app_window_error_message (_tmp16_, NULL);
+#line 564 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp16_);
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 4292 "Event.c"
+ }
+ __finally428:
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (videos);
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (photos);
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 561 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 4307 "Event.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->relinking = FALSE;
+#line 548 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (videos);
+#line 548 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (photos);
+#line 4315 "Event.c"
+}
+
+
+static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int str_array_length1) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 1054 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = separator;
+#line 1054 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_ == NULL) {
+#line 1055 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ separator = "";
+#line 4332 "Event.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = TRUE;
+#line 4342 "Event.c"
+ } else {
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp4__length1 > 0;
+#line 4352 "Event.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp2_) {
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = TRUE;
+#line 4358 "Event.c"
+ } else {
+ gboolean _tmp5_ = FALSE;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp6__length1 == -1) {
+#line 4369 "Event.c"
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ const gchar* _tmp8_ = NULL;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp7_[0];
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_ != NULL;
+#line 4381 "Event.c"
+ } else {
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = FALSE;
+#line 4385 "Event.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp5_;
+#line 4389 "Event.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_) {
+#line 4393 "Event.c"
+ gint i = 0;
+ gsize len = 0UL;
+ gint _tmp31_ = 0;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gsize _tmp35_ = 0UL;
+ const gchar* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ const gchar* res = NULL;
+ gsize _tmp40_ = 0UL;
+ void* _tmp41_ = NULL;
+ void* ptr = NULL;
+ const gchar* _tmp42_ = NULL;
+ gchar** _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ const gchar* _tmp44_ = NULL;
+ void* _tmp45_ = NULL;
+ const gchar* _tmp62_ = NULL;
+#line 1059 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = (gsize) 1;
+#line 4416 "Event.c"
+ {
+ gboolean _tmp9_ = FALSE;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = TRUE;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ while (TRUE) {
+#line 4425 "Event.c"
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp21_ = 0;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ const gchar* _tmp24_ = NULL;
+ gsize _tmp30_ = 0UL;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!_tmp9_) {
+#line 4438 "Event.c"
+ gint _tmp10_ = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = i;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = _tmp10_ + 1;
+#line 4444 "Event.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = FALSE;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp13__length1 != -1) {
+#line 4454 "Event.c"
+ gint _tmp14_ = 0;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = i;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ < _tmp15__length1;
+#line 4466 "Event.c"
+ } else {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 4470 "Event.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp12_) {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = TRUE;
+#line 4476 "Event.c"
+ } else {
+ gboolean _tmp16_ = FALSE;
+ gchar** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp17__length1 == -1) {
+#line 4487 "Event.c"
+ gchar** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gint _tmp19_ = 0;
+ const gchar* _tmp20_ = NULL;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = i;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = _tmp18_[_tmp19_];
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = _tmp20_ != NULL;
+#line 4502 "Event.c"
+ } else {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = FALSE;
+#line 4506 "Event.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = _tmp16_;
+#line 4510 "Event.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!_tmp11_) {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ break;
+#line 4516 "Event.c"
+ }
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = str_array;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22__length1 = str_array_length1;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp23_ = i;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp24_ = _tmp22_[_tmp23_];
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp24_ != NULL) {
+#line 4528 "Event.c"
+ gchar** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gint _tmp26_ = 0;
+ const gchar* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp25_ = str_array;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp25__length1 = str_array_length1;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp26_ = i;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp27_ = _tmp25_[_tmp26_];
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp28_ = strlen ((const gchar*) _tmp27_);
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp29_ = _tmp28_;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = _tmp29_;
+#line 4549 "Event.c"
+ } else {
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = 0;
+#line 4553 "Event.c"
+ }
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp30_ = len;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp30_ + _tmp21_;
+#line 4559 "Event.c"
+ }
+ }
+#line 1063 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp31_ = i;
+#line 1063 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp31_ == 0) {
+#line 4566 "Event.c"
+ gchar* _tmp32_ = NULL;
+#line 1064 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp32_ = g_strdup ("");
+#line 1064 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp32_;
+#line 1064 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 4574 "Event.c"
+ }
+#line 1066 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp33_ = i;
+#line 1066 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ str_array_length1 = _tmp33_;
+#line 1066 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp34_ = str_array_length1;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp35_ = len;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp36_ = separator;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp37_ = strlen ((const gchar*) _tmp36_);
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp38_ = _tmp37_;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp39_ = i;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
+#line 1069 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp40_ = len;
+#line 1069 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp41_ = g_malloc (_tmp40_);
+#line 1069 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res = _tmp41_;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp42_ = res;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp43_ = str_array;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp43__length1 = str_array_length1;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp44_ = _tmp43_[0];
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ ptr = _tmp45_;
+#line 4612 "Event.c"
+ {
+ gboolean _tmp46_ = FALSE;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = 1;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp46_ = TRUE;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ while (TRUE) {
+#line 4621 "Event.c"
+ gint _tmp48_ = 0;
+ gchar** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ void* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ void* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gchar** _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+ gint _tmp55_ = 0;
+ const gchar* _tmp56_ = NULL;
+ void* _tmp60_ = NULL;
+ void* _tmp61_ = NULL;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!_tmp46_) {
+#line 4637 "Event.c"
+ gint _tmp47_ = 0;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp47_ = i;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = _tmp47_ + 1;
+#line 4643 "Event.c"
+ }
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp46_ = FALSE;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp48_ = i;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp49_ = str_array;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp49__length1 = str_array_length1;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!(_tmp48_ < _tmp49__length1)) {
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ break;
+#line 4657 "Event.c"
+ }
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp50_ = ptr;
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp51_ = separator;
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ ptr = _tmp52_;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp54_ = str_array;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp54__length1 = str_array_length1;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp55_ = i;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp56_ = _tmp54_[_tmp55_];
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp56_ != NULL) {
+#line 4677 "Event.c"
+ gchar** _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ gint _tmp58_ = 0;
+ const gchar* _tmp59_ = NULL;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp57_ = str_array;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp57__length1 = str_array_length1;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp58_ = i;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp59_ = _tmp57_[_tmp58_];
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp53_ = (const gchar*) _tmp59_;
+#line 4692 "Event.c"
+ } else {
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp53_ = "";
+#line 4696 "Event.c"
+ }
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp60_ = ptr;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ ptr = _tmp61_;
+#line 4704 "Event.c"
+ }
+ }
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp62_ = res;
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res = NULL;
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gchar*) _tmp62_;
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 4715 "Event.c"
+ } else {
+ gchar* _tmp63_ = NULL;
+#line 1078 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp63_ = g_strdup ("");
+#line 1078 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp63_;
+#line 1078 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 4724 "Event.c"
+ }
+}
+
+
+static void event_update_indexable_keywords (Event* self) {
+ gchar** components = NULL;
+ gchar** _tmp0_ = NULL;
+ gint components_length1 = 0;
+ gint _components_size_ = 0;
+ gint i = 0;
+ gchar* rawname = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* comment = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gint _tmp15_ = 0;
+#line 570 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 571 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = g_new0 (gchar*, 3 + 1);
+#line 571 "/home/jens/Source/shotwell/src/Event.vala"
+ components = _tmp0_;
+#line 571 "/home/jens/Source/shotwell/src/Event.vala"
+ components_length1 = 3;
+#line 571 "/home/jens/Source/shotwell/src/Event.vala"
+ _components_size_ = components_length1;
+#line 572 "/home/jens/Source/shotwell/src/Event.vala"
+ i = 0;
+#line 574 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_get_raw_name (self);
+#line 574 "/home/jens/Source/shotwell/src/Event.vala"
+ rawname = _tmp1_;
+#line 575 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = rawname;
+#line 575 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp2_ != NULL) {
+#line 4762 "Event.c"
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gint _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = components;
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3__length1 = components_length1;
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = i;
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ i = _tmp4_ + 1;
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = rawname;
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp3_[_tmp4_]);
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_[_tmp4_] = _tmp6_;
+#line 576 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp3_[_tmp4_];
+#line 4787 "Event.c"
+ }
+#line 578 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 578 "/home/jens/Source/shotwell/src/Event.vala"
+ comment = _tmp8_;
+#line 579 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = comment;
+#line 579 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp9_ != NULL) {
+#line 4797 "Event.c"
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = components;
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10__length1 = components_length1;
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = i;
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ i = _tmp11_ + 1;
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = comment;
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp10_[_tmp11_]);
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_[_tmp11_] = _tmp13_;
+#line 580 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = _tmp10_[_tmp11_];
+#line 4822 "Event.c"
+ }
+#line 582 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = i;
+#line 582 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp15_ == 0) {
+#line 583 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 583 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->indexable_keywords = NULL;
+#line 4832 "Event.c"
+ } else {
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint _tmp17_ = 0;
+ gchar* _tmp18_ = NULL;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = components;
+#line 585 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16__length1 = components_length1;
+#line 585 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = i;
+#line 585 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp16_[_tmp17_]);
+#line 585 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_[_tmp17_] = NULL;
+#line 585 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = _tmp16_[_tmp17_];
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = components;
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19__length1 = components_length1;
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = _vala_g_strjoinv (" ", _tmp19_, _tmp19__length1);
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = _tmp20_;
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = indexable_prepare_indexable_string (_tmp21_);
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->indexable_keywords = _tmp22_;
+#line 586 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp21_);
+#line 4871 "Event.c"
+ }
+#line 570 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (comment);
+#line 570 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (rawname);
+#line 570 "/home/jens/Source/shotwell/src/Event.vala"
+ components = (_vala_array_free (components, components_length1, (GDestroyNotify) g_free), NULL);
+#line 4879 "Event.c"
+}
+
+
+static const gchar* event_real_get_indexable_keywords (Indexable* base) {
+ Event * self;
+ const gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 590 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 591 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->indexable_keywords;
+#line 591 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 591 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 4895 "Event.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 4910 "Event.c"
+}
+
+
+gboolean event_is_in_starting_day (Event* self, time_t time) {
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ MediaSource* earliest_media = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ DataObject* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ struct tm earliest_tm = {0};
+ MediaSource* _tmp7_ = NULL;
+ time_t _tmp8_ = 0;
+ struct tm _tmp9_ = {0};
+ struct tm start_boundary_tm = {0};
+ struct tm _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ struct tm _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ struct tm _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ time_t start_boundary = 0;
+ time_t _tmp16_ = 0;
+ struct tm _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ time_t end_boundary = 0;
+ time_t _tmp20_ = 0;
+ gboolean _tmp21_ = FALSE;
+ time_t _tmp22_ = 0;
+ time_t _tmp23_ = 0;
+#line 594 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), FALSE);
+#line 599 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 599 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 599 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp1_ == 0) {
+#line 600 "/home/jens/Source/shotwell/src/Event.vala"
+ result = FALSE;
+#line 600 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 4956 "Event.c"
+ }
+#line 603 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->view;
+#line 603 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), 0);
+#line 603 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_VIEW, DataView);
+#line 603 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = data_view_get_source (_tmp4_);
+#line 603 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 603 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp4_);
+#line 603 "/home/jens/Source/shotwell/src/Event.vala"
+ earliest_media = _tmp6_;
+#line 604 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = earliest_media;
+#line 604 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = media_source_get_exposure_time (_tmp7_);
+#line 604 "/home/jens/Source/shotwell/src/Event.vala"
+ g_time_local (_tmp8_, &_tmp9_);
+#line 604 "/home/jens/Source/shotwell/src/Event.vala"
+ earliest_tm = _tmp9_;
+#line 607 "/home/jens/Source/shotwell/src/Event.vala"
+ memset (&start_boundary_tm, 0, sizeof (struct tm));
+#line 608 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary_tm.tm_sec = 0;
+#line 609 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary_tm.tm_min = 0;
+#line 610 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary_tm.tm_hour = EVENT_EVENT_BOUNDARY_HOUR;
+#line 611 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = earliest_tm;
+#line 611 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = _tmp10_.tm_mday;
+#line 611 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary_tm.tm_mday = _tmp11_;
+#line 612 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = earliest_tm;
+#line 612 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = _tmp12_.tm_mon;
+#line 612 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary_tm.tm_mon = _tmp13_;
+#line 613 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = earliest_tm;
+#line 613 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = _tmp14_.tm_year;
+#line 613 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary_tm.tm_year = _tmp15_;
+#line 614 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary_tm.tm_isdst = -1;
+#line 616 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = mktime (&start_boundary_tm);
+#line 616 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary = _tmp16_;
+#line 620 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = earliest_tm;
+#line 620 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = _tmp17_.tm_hour;
+#line 620 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp18_ < EVENT_EVENT_BOUNDARY_HOUR) {
+#line 5018 "Event.c"
+ time_t _tmp19_ = 0;
+#line 621 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = start_boundary;
+#line 621 "/home/jens/Source/shotwell/src/Event.vala"
+ start_boundary = _tmp19_ - EVENT_TIME_T_DAY;
+#line 5024 "Event.c"
+ }
+#line 623 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = start_boundary;
+#line 623 "/home/jens/Source/shotwell/src/Event.vala"
+ end_boundary = (_tmp20_ + EVENT_TIME_T_DAY) - 1;
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = time;
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = start_boundary;
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp22_ >= _tmp23_) {
+#line 5036 "Event.c"
+ time_t _tmp24_ = 0;
+ time_t _tmp25_ = 0;
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = time;
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = end_boundary;
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = _tmp24_ <= _tmp25_;
+#line 5045 "Event.c"
+ } else {
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = FALSE;
+#line 5049 "Event.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp21_;
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (earliest_media);
+#line 625 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5057 "Event.c"
+}
+
+
+static Event* event_generate_event (MediaSource* media, ViewCollection* events_so_far, const gchar* event_name, gboolean* new_event) {
+ gboolean _vala_new_event = FALSE;
+ Event* result = NULL;
+ time_t exposure_time = 0;
+ MediaSource* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ time_t _tmp3_ = 0;
+ gint count = 0;
+ ViewCollection* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ GError * _inner_error_ = NULL;
+#line 631 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (media), NULL);
+#line 631 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (events_so_far), NULL);
+#line 633 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = media;
+#line 633 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = media_source_get_exposure_time (_tmp0_);
+#line 633 "/home/jens/Source/shotwell/src/Event.vala"
+ exposure_time = _tmp1_;
+#line 635 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = exposure_time;
+#line 635 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp3_ == ((time_t) 0)) {
+#line 5087 "Event.c"
+ const gchar* _tmp4_ = NULL;
+#line 635 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = event_name;
+#line 635 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp4_ == NULL;
+#line 5093 "Event.c"
+ } else {
+#line 635 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = FALSE;
+#line 5097 "Event.c"
+ }
+#line 635 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp2_) {
+#line 5101 "Event.c"
+ MediaSource* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 636 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = media;
+#line 636 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 636 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_;
+#line 636 "/home/jens/Source/shotwell/src/Event.vala"
+ g_debug ("Event.vala:636: Skipping event assignment to %s: no exposure time and " \
+"no event name", _tmp7_);
+#line 636 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp7_);
+#line 637 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_new_event = FALSE;
+#line 639 "/home/jens/Source/shotwell/src/Event.vala"
+ result = NULL;
+#line 639 "/home/jens/Source/shotwell/src/Event.vala"
+ if (new_event) {
+#line 639 "/home/jens/Source/shotwell/src/Event.vala"
+ *new_event = _vala_new_event;
+#line 5123 "Event.c"
+ }
+#line 639 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5127 "Event.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = events_so_far;
+#line 642 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection));
+#line 642 "/home/jens/Source/shotwell/src/Event.vala"
+ count = _tmp9_;
+#line 5135 "Event.c"
+ {
+ gint ctr = 0;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ ctr = 0;
+#line 5140 "Event.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = TRUE;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 5147 "Event.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ Event* event = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ DataObject* _tmp16_ = NULL;
+ EventView* _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ Event* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ const gchar* _tmp23_ = NULL;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp10_) {
+#line 5163 "Event.c"
+ gint _tmp11_ = 0;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = ctr;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ ctr = _tmp11_ + 1;
+#line 5169 "Event.c"
+ }
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = ctr;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = count;
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!(_tmp12_ < _tmp13_)) {
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 5181 "Event.c"
+ }
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = events_so_far;
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = ctr;
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection), _tmp15_);
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_EVENT_VIEW, EventView);
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_VIEW, DataView));
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_EVENT, Event);
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp17_);
+#line 644 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp19_;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = event_name;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp23_ != NULL) {
+#line 5203 "Event.c"
+ Event* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = event;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = event_has_name (_tmp24_);
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = _tmp25_;
+#line 5212 "Event.c"
+ } else {
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = FALSE;
+#line 5216 "Event.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp22_) {
+#line 5220 "Event.c"
+ const gchar* _tmp26_ = NULL;
+ Event* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp26_ = event_name;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp27_ = event;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp28_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_DATA_OBJECT, DataObject));
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp29_ = _tmp28_;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = g_strcmp0 (_tmp26_, _tmp29_) == 0;
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp29_);
+#line 5237 "Event.c"
+ } else {
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = FALSE;
+#line 5241 "Event.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp21_) {
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = TRUE;
+#line 5247 "Event.c"
+ } else {
+ Event* _tmp30_ = NULL;
+ time_t _tmp31_ = 0;
+ gboolean _tmp32_ = FALSE;
+#line 647 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp30_ = event;
+#line 647 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp31_ = exposure_time;
+#line 647 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp32_ = event_is_in_starting_day (_tmp30_, _tmp31_);
+#line 647 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = _tmp32_;
+#line 5260 "Event.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp20_) {
+#line 648 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_new_event = FALSE;
+#line 650 "/home/jens/Source/shotwell/src/Event.vala"
+ result = event;
+#line 650 "/home/jens/Source/shotwell/src/Event.vala"
+ if (new_event) {
+#line 650 "/home/jens/Source/shotwell/src/Event.vala"
+ *new_event = _vala_new_event;
+#line 5272 "Event.c"
+ }
+#line 650 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5276 "Event.c"
+ }
+#line 643 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 5280 "Event.c"
+ }
+ }
+ }
+ {
+ EventRow* _tmp33_ = NULL;
+ EventTable* _tmp34_ = NULL;
+ EventTable* _tmp35_ = NULL;
+ MediaSource* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ EventRow* _tmp39_ = NULL;
+ EventRow* _tmp40_ = NULL;
+ Event* event = NULL;
+ Event* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ ViewCollection* _tmp45_ = NULL;
+ Event* _tmp46_ = NULL;
+ EventView* _tmp47_ = NULL;
+ EventView* _tmp48_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp34_ = event_table_get_instance ();
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp35_ = _tmp34_;
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp36_ = media;
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp37_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_DATA_SOURCE, DataSource));
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp38_ = _tmp37_;
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp39_ = event_table_create (_tmp35_, _tmp38_, NULL, &_inner_error_);
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp40_ = _tmp39_;
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp38_);
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _database_table_unref0 (_tmp35_);
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp33_ = _tmp40_;
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5324 "Event.c"
+ goto __catch429_database_error;
+ }
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ return NULL;
+#line 5333 "Event.c"
+ }
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp41_ = event_new (_tmp33_, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 656 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp41_;
+#line 657 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp42_ = event_name;
+#line 657 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp42_ != NULL) {
+#line 5343 "Event.c"
+ Event* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+#line 658 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp43_ = event;
+#line 658 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp44_ = event_name;
+#line 658 "/home/jens/Source/shotwell/src/Event.vala"
+ event_rename (_tmp43_, _tmp44_);
+#line 5352 "Event.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp45_ = events_so_far;
+#line 660 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp46_ = event;
+#line 660 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp47_ = event_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_EVENT_SOURCE, EventSource));
+#line 660 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp48_ = _tmp47_;
+#line 660 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_DATA_OBJECT, DataObject));
+#line 660 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp48_);
+#line 662 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_new_event = TRUE;
+#line 663 "/home/jens/Source/shotwell/src/Event.vala"
+ result = event;
+#line 663 "/home/jens/Source/shotwell/src/Event.vala"
+ _event_row_unref0 (_tmp33_);
+#line 663 "/home/jens/Source/shotwell/src/Event.vala"
+ if (new_event) {
+#line 663 "/home/jens/Source/shotwell/src/Event.vala"
+ *new_event = _vala_new_event;
+#line 5376 "Event.c"
+ }
+#line 663 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5380 "Event.c"
+ }
+ goto __finally429;
+ __catch429_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp49_ = NULL;
+#line 655 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 655 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 665 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp49_ = err;
+#line 665 "/home/jens/Source/shotwell/src/Event.vala"
+ app_window_database_error (_tmp49_);
+#line 655 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 5397 "Event.c"
+ }
+ __finally429:
+#line 655 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 655 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 655 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 655 "/home/jens/Source/shotwell/src/Event.vala"
+ return NULL;
+#line 5408 "Event.c"
+ }
+#line 668 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_new_event = FALSE;
+#line 670 "/home/jens/Source/shotwell/src/Event.vala"
+ result = NULL;
+#line 670 "/home/jens/Source/shotwell/src/Event.vala"
+ if (new_event) {
+#line 670 "/home/jens/Source/shotwell/src/Event.vala"
+ *new_event = _vala_new_event;
+#line 5418 "Event.c"
+ }
+#line 670 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5422 "Event.c"
+}
+
+
+void event_generate_single_event (MediaSource* media, ViewCollection* events_so_far, const gchar* event_name) {
+ MediaSource* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ Event* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean new_event = FALSE;
+ Event* event = NULL;
+ MediaSource* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Event* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ Event* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 673 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (media));
+#line 673 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (events_so_far));
+#line 676 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = media;
+#line 676 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = media_source_get_event (_tmp0_);
+#line 676 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp1_;
+#line 676 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_ != NULL;
+#line 676 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp2_);
+#line 676 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp3_) {
+#line 677 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 5460 "Event.c"
+ }
+#line 680 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = media;
+#line 680 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = events_so_far;
+#line 680 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = event_name;
+#line 680 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = event_generate_event (_tmp4_, _tmp5_, _tmp6_, &_tmp7_);
+#line 680 "/home/jens/Source/shotwell/src/Event.vala"
+ new_event = _tmp7_;
+#line 680 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp8_;
+#line 681 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = event;
+#line 681 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp9_ == NULL) {
+#line 682 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 682 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 5482 "Event.c"
+ }
+#line 684 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = media;
+#line 684 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = event;
+#line 684 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_event (_tmp10_, _tmp11_);
+#line 686 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = new_event;
+#line 686 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp12_) {
+#line 5494 "Event.c"
+ EventSourceCollection* _tmp13_ = NULL;
+ Event* _tmp14_ = NULL;
+#line 687 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = event_global;
+#line 687 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = event;
+#line 687 "/home/jens/Source/shotwell/src/Event.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 5503 "Event.c"
+ }
+#line 673 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 5507 "Event.c"
+}
+
+
+void event_generate_many_events (GeeCollection* sources, ViewCollection* events_so_far) {
+ GeeCollection* to_add = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeCollection* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 690 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 690 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (events_so_far));
+#line 691 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = gee_array_list_new (TYPE_EVENT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 691 "/home/jens/Source/shotwell/src/Event.vala"
+ to_add = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 5525 "Event.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = sources;
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _media_it = _tmp2_;
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 5538 "Event.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ MediaSource* _tmp7_ = NULL;
+ Event* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean new_event = FALSE;
+ Event* event = NULL;
+ MediaSource* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ Event* _tmp14_ = NULL;
+ Event* _tmp15_ = NULL;
+ MediaSource* _tmp16_ = NULL;
+ Event* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _media_it;
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp4_) {
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 5566 "Event.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _media_it;
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ media = (MediaSource*) _tmp6_;
+#line 694 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = media;
+#line 694 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = media_source_get_event (_tmp7_);
+#line 694 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _tmp8_;
+#line 694 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_ != NULL;
+#line 694 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp9_);
+#line 694 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp10_) {
+#line 695 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 695 "/home/jens/Source/shotwell/src/Event.vala"
+ continue;
+#line 5590 "Event.c"
+ }
+#line 698 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = media;
+#line 698 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = events_so_far;
+#line 698 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = event_generate_event (_tmp11_, _tmp12_, NULL, &_tmp13_);
+#line 698 "/home/jens/Source/shotwell/src/Event.vala"
+ new_event = _tmp13_;
+#line 698 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp14_;
+#line 699 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = event;
+#line 699 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp15_ == NULL) {
+#line 700 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 700 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 700 "/home/jens/Source/shotwell/src/Event.vala"
+ continue;
+#line 5612 "Event.c"
+ }
+#line 702 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = media;
+#line 702 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = event;
+#line 702 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source_set_event (_tmp16_, _tmp17_);
+#line 704 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = new_event;
+#line 704 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp18_) {
+#line 5624 "Event.c"
+ GeeCollection* _tmp19_ = NULL;
+ Event* _tmp20_ = NULL;
+#line 705 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = to_add;
+#line 705 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = event;
+#line 705 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_collection_add (_tmp19_, _tmp20_);
+#line 5633 "Event.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media);
+#line 5639 "Event.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_media_it);
+#line 5643 "Event.c"
+ }
+#line 708 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = to_add;
+#line 708 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = gee_collection_get_size (_tmp21_);
+#line 708 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = _tmp22_;
+#line 708 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp23_ > 0) {
+#line 5653 "Event.c"
+ EventSourceCollection* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+#line 709 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = event_global;
+#line 709 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = to_add;
+#line 709 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp26_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_COLLECTION, DataCollection), _tmp25_, NULL, NULL);
+#line 709 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp27_ = _tmp26_;
+#line 709 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp27_);
+#line 5668 "Event.c"
+ }
+#line 690 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (to_add);
+#line 5672 "Event.c"
+}
+
+
+void event_get_event_id (Event* self, EventID* result) {
+ EventID _tmp0_ = {0};
+#line 712 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 713 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->event_id;
+#line 713 "/home/jens/Source/shotwell/src/Event.vala"
+ *result = _tmp0_;
+#line 713 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 5686 "Event.c"
+}
+
+
+static SourceSnapshot* event_real_save_snapshot (DataSource* base) {
+ Event * self;
+ SourceSnapshot* result = NULL;
+ EventEventSnapshot* _tmp0_ = NULL;
+#line 716 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 717 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_event_snapshot_new (self);
+#line 717 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_SNAPSHOT, SourceSnapshot);
+#line 717 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5702 "Event.c"
+}
+
+
+static SourceProxy* event_real_get_proxy (Proxyable* base) {
+ Event * self;
+ SourceProxy* result = NULL;
+ EventEventProxy* _tmp0_ = NULL;
+#line 720 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 721 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_event_proxy_new (self);
+#line 721 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_PROXY, SourceProxy);
+#line 721 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5718 "Event.c"
+}
+
+
+static gboolean event_real_equals (DataSource* base, DataSource* source) {
+ Event * self;
+ gboolean result = FALSE;
+ Event* event = NULL;
+ DataSource* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ Event* _tmp2_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 724 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 724 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail ((source == NULL) || IS_DATA_SOURCE (source), FALSE);
+#line 726 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 726 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_EVENT) ? ((Event*) _tmp0_) : NULL);
+#line 726 "/home/jens/Source/shotwell/src/Event.vala"
+ event = _tmp1_;
+#line 727 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event;
+#line 727 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp2_ != NULL) {
+#line 5745 "Event.c"
+ Event* _tmp3_ = NULL;
+#line 728 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = event;
+#line 728 "/home/jens/Source/shotwell/src/Event.vala"
+ if (self != _tmp3_) {
+#line 5751 "Event.c"
+ EventID _tmp4_ = {0};
+ gint64 _tmp5_ = 0LL;
+ Event* _tmp6_ = NULL;
+ EventID _tmp7_ = {0};
+ gint64 _tmp8_ = 0LL;
+#line 729 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = self->priv->event_id;
+#line 729 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_.id;
+#line 729 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = event;
+#line 729 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_->priv->event_id;
+#line 729 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _tmp7_.id;
+#line 729 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_assert (_tmp5_ != _tmp8_, "event_id.id != event.event_id.id");
+#line 5769 "Event.c"
+ }
+ }
+#line 733 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = source;
+#line 733 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = DATA_SOURCE_CLASS (event_parent_class)->equals (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource), TYPE_DATA_SOURCE, DataSource), _tmp9_);
+#line 733 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp10_;
+#line 733 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (event);
+#line 733 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5782 "Event.c"
+}
+
+
+static gchar* event_real_to_string (DataObject* base) {
+ Event * self;
+ gchar* result = NULL;
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint64 _tmp4_ = 0LL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 736 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->event_id;
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _tmp0_.id;
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp1_);
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_;
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = data_object_get_object_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp4_);
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = _tmp5_;
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _tmp7_;
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = g_strdup_printf ("Event [%s/%s] %s", _tmp3_, _tmp6_, _tmp8_);
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_;
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp8_);
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp6_);
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp3_);
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp10_;
+#line 737 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5834 "Event.c"
+}
+
+
+gboolean event_has_name (Event* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+#line 740 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), FALSE);
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->raw_name;
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp1_ != NULL) {
+#line 5848 "Event.c"
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->raw_name;
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = strlen (_tmp2_);
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = _tmp3_;
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp4_ > 0;
+#line 5860 "Event.c"
+ } else {
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = FALSE;
+#line 5864 "Event.c"
+ }
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 741 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5870 "Event.c"
+}
+
+
+static gchar* event_real_get_name (DataObject* base) {
+ Event * self;
+ gchar* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gchar* datestring = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 744 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 745 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_has_name (self);
+#line 745 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp0_) {
+#line 5889 "Event.c"
+ gchar* _tmp1_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_get_raw_name (self);
+#line 746 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 746 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5897 "Event.c"
+ }
+#line 749 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event_get_formatted_daterange (self);
+#line 749 "/home/jens/Source/shotwell/src/Event.vala"
+ datestring = _tmp2_;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = datestring;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = is_string_empty (_tmp4_);
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp5_) {
+#line 5909 "Event.c"
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = datestring;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp3_);
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp7_;
+#line 5920 "Event.c"
+ } else {
+ const gchar* _tmp8_ = NULL;
+ EventID _tmp9_ = {0};
+ gint64 _tmp10_ = 0LL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _ ("Event %s");
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = self->priv->event_id;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_.id;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp10_);
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = _tmp11_;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = g_strdup_printf (_tmp8_, _tmp12_);
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp3_);
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp13_;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp12_);
+#line 5946 "Event.c"
+ }
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp3_;
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (datestring);
+#line 751 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 5954 "Event.c"
+}
+
+
+gchar* event_get_formatted_daterange (Event* self) {
+ gchar* result = NULL;
+ time_t start_time = 0;
+ time_t _tmp0_ = 0;
+ time_t end_time = 0;
+ time_t _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ time_t _tmp3_ = 0;
+ gboolean _tmp5_ = FALSE;
+ time_t _tmp6_ = 0;
+ struct tm start = {0};
+ time_t _tmp11_ = 0;
+ struct tm _tmp12_ = {0};
+ struct tm end = {0};
+ time_t _tmp13_ = 0;
+ struct tm _tmp14_ = {0};
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ struct tm _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ struct tm _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ struct tm _tmp32_ = {0};
+ struct tm _tmp33_ = {0};
+ gchar* _tmp34_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), NULL);
+#line 755 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_source_get_start_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 755 "/home/jens/Source/shotwell/src/Event.vala"
+ start_time = _tmp0_;
+#line 756 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_source_get_end_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 756 "/home/jens/Source/shotwell/src/Event.vala"
+ end_time = _tmp1_;
+#line 758 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = end_time;
+#line 758 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp3_ == ((time_t) 0)) {
+#line 5997 "Event.c"
+ time_t _tmp4_ = 0;
+#line 758 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = start_time;
+#line 758 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp4_ == ((time_t) 0);
+#line 6003 "Event.c"
+ } else {
+#line 758 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = FALSE;
+#line 6007 "Event.c"
+ }
+#line 758 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp2_) {
+#line 759 "/home/jens/Source/shotwell/src/Event.vala"
+ result = NULL;
+#line 759 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6015 "Event.c"
+ }
+#line 761 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = end_time;
+#line 761 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp6_ == ((time_t) 0)) {
+#line 6021 "Event.c"
+ time_t _tmp7_ = 0;
+#line 761 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = start_time;
+#line 761 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp7_ != ((time_t) 0);
+#line 6027 "Event.c"
+ } else {
+#line 761 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = FALSE;
+#line 6031 "Event.c"
+ }
+#line 761 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp5_) {
+#line 6035 "Event.c"
+ time_t _tmp8_ = 0;
+ struct tm _tmp9_ = {0};
+ gchar* _tmp10_ = NULL;
+#line 762 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = start_time;
+#line 762 "/home/jens/Source/shotwell/src/Event.vala"
+ g_time_local (_tmp8_, &_tmp9_);
+#line 762 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = format_local_date (&_tmp9_);
+#line 762 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp10_;
+#line 762 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6049 "Event.c"
+ }
+#line 764 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = start_time;
+#line 764 "/home/jens/Source/shotwell/src/Event.vala"
+ g_time_local (_tmp11_, &_tmp12_);
+#line 764 "/home/jens/Source/shotwell/src/Event.vala"
+ start = _tmp12_;
+#line 765 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = end_time;
+#line 765 "/home/jens/Source/shotwell/src/Event.vala"
+ g_time_local (_tmp13_, &_tmp14_);
+#line 765 "/home/jens/Source/shotwell/src/Event.vala"
+ end = _tmp14_;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = start;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = _tmp17_.tm_mday;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = end;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp20_ = _tmp19_.tm_mday;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp18_ == _tmp20_) {
+#line 6073 "Event.c"
+ struct tm _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ struct tm _tmp23_ = {0};
+ gint _tmp24_ = 0;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp21_ = start;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp22_ = _tmp21_.tm_mon;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp23_ = end;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp24_ = _tmp23_.tm_mon;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = _tmp22_ == _tmp24_;
+#line 6088 "Event.c"
+ } else {
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = FALSE;
+#line 6092 "Event.c"
+ }
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp16_) {
+#line 6096 "Event.c"
+ struct tm _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ struct tm _tmp27_ = {0};
+ gint _tmp28_ = 0;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp25_ = start;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp26_ = _tmp25_.tm_mday;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp27_ = end;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp28_ = _tmp27_.tm_mday;
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = _tmp26_ == _tmp28_;
+#line 6111 "Event.c"
+ } else {
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = FALSE;
+#line 6115 "Event.c"
+ }
+#line 767 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp15_) {
+#line 6119 "Event.c"
+ time_t _tmp29_ = 0;
+ struct tm _tmp30_ = {0};
+ gchar* _tmp31_ = NULL;
+#line 768 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp29_ = start_time;
+#line 768 "/home/jens/Source/shotwell/src/Event.vala"
+ g_time_local (_tmp29_, &_tmp30_);
+#line 768 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp31_ = format_local_date (&_tmp30_);
+#line 768 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp31_;
+#line 768 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6133 "Event.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp32_ = start;
+#line 770 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp33_ = end;
+#line 770 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp34_ = format_local_datespan (&_tmp32_, &_tmp33_);
+#line 770 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp34_;
+#line 770 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6145 "Event.c"
+}
+
+
+gchar* event_get_raw_name (Event* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 773 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), NULL);
+#line 774 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->raw_name;
+#line 774 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 774 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 774 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6163 "Event.c"
+}
+
+
+static gchar* event_real_get_comment (EventSource* base) {
+ Event * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 777 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 778 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->comment;
+#line 778 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 778 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 778 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6182 "Event.c"
+}
+
+
+gboolean event_rename (Event* self, const gchar* name) {
+ gboolean result = FALSE;
+ gchar* new_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean renamed = FALSE;
+ EventTable* _tmp7_ = NULL;
+ EventID _tmp8_ = {0};
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+#line 781 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), FALSE);
+#line 782 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = name;
+#line 782 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_prep_event_name (_tmp0_);
+#line 782 "/home/jens/Source/shotwell/src/Event.vala"
+ new_name = _tmp1_;
+#line 785 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = new_name;
+#line 785 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = event_get_formatted_daterange (self);
+#line 785 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = _tmp3_;
+#line 785 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = g_strcmp0 (_tmp2_, _tmp4_) == 0;
+#line 785 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp4_);
+#line 785 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp5_) {
+#line 6221 "Event.c"
+ gchar* _tmp6_ = NULL;
+#line 786 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = g_strdup ("");
+#line 786 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (new_name);
+#line 786 "/home/jens/Source/shotwell/src/Event.vala"
+ new_name = _tmp6_;
+#line 6229 "Event.c"
+ }
+#line 789 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = event_event_table;
+#line 789 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = self->priv->event_id;
+#line 789 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = new_name;
+#line 789 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = event_table_rename (_tmp7_, &_tmp8_, _tmp9_);
+#line 789 "/home/jens/Source/shotwell/src/Event.vala"
+ renamed = _tmp10_;
+#line 790 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = renamed;
+#line 790 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp11_) {
+#line 6245 "Event.c"
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ Alteration* _tmp14_ = NULL;
+ Alteration* _tmp15_ = NULL;
+#line 791 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = new_name;
+#line 791 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 791 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->raw_name);
+#line 791 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->raw_name = _tmp13_;
+#line 792 "/home/jens/Source/shotwell/src/Event.vala"
+ event_update_indexable_keywords (self);
+#line 793 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = alteration_new_from_list ("metadata:name, indexable:keywords");
+#line 793 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = _tmp14_;
+#line 793 "/home/jens/Source/shotwell/src/Event.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp15_);
+#line 793 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (_tmp15_);
+#line 6268 "Event.c"
+ }
+#line 796 "/home/jens/Source/shotwell/src/Event.vala"
+ result = renamed;
+#line 796 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (new_name);
+#line 796 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6276 "Event.c"
+}
+
+
+static gboolean event_real_set_comment (EventSource* base, const gchar* comment) {
+ Event * self;
+ gboolean result = FALSE;
+ gchar* new_comment = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean committed = FALSE;
+ EventTable* _tmp2_ = NULL;
+ EventID _tmp3_ = {0};
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 799 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 800 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = comment;
+#line 800 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = media_source_prep_comment (_tmp0_);
+#line 800 "/home/jens/Source/shotwell/src/Event.vala"
+ new_comment = _tmp1_;
+#line 802 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event_event_table;
+#line 802 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = self->priv->event_id;
+#line 802 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = new_comment;
+#line 802 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event_table_set_comment (_tmp2_, &_tmp3_, _tmp4_);
+#line 802 "/home/jens/Source/shotwell/src/Event.vala"
+ committed = _tmp5_;
+#line 803 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = committed;
+#line 803 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp6_) {
+#line 6314 "Event.c"
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ Alteration* _tmp9_ = NULL;
+ Alteration* _tmp10_ = NULL;
+#line 804 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = new_comment;
+#line 804 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 804 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->comment);
+#line 804 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->comment = _tmp8_;
+#line 805 "/home/jens/Source/shotwell/src/Event.vala"
+ event_update_indexable_keywords (self);
+#line 806 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = alteration_new_from_list ("metadata:comment, indexable:keywords");
+#line 806 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_;
+#line 806 "/home/jens/Source/shotwell/src/Event.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp10_);
+#line 806 "/home/jens/Source/shotwell/src/Event.vala"
+ _alteration_unref0 (_tmp10_);
+#line 6337 "Event.c"
+ }
+#line 809 "/home/jens/Source/shotwell/src/Event.vala"
+ result = committed;
+#line 809 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (new_comment);
+#line 809 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6345 "Event.c"
+}
+
+
+time_t event_get_creation_time (Event* self) {
+ time_t result = 0;
+ EventTable* _tmp0_ = NULL;
+ EventID _tmp1_ = {0};
+ time_t _tmp2_ = 0;
+#line 812 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), 0);
+#line 813 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_event_table;
+#line 813 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->event_id;
+#line 813 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event_table_get_time_created (_tmp0_, &_tmp1_);
+#line 813 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp2_;
+#line 813 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6366 "Event.c"
+}
+
+
+static time_t event_real_get_start_time (EventSource* base) {
+ Event * self;
+ time_t result = 0;
+ gint count = 0;
+ ViewCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 816 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 819 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 819 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 819 "/home/jens/Source/shotwell/src/Event.vala"
+ count = _tmp1_;
+#line 6384 "Event.c"
+ {
+ gint i = 0;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ i = 0;
+#line 6389 "Event.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = TRUE;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 6396 "Event.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ time_t time = 0;
+ ViewCollection* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ DataObject* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ time_t _tmp12_ = 0;
+ time_t _tmp13_ = 0;
+ time_t _tmp14_ = 0;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp2_) {
+#line 6411 "Event.c"
+ gint _tmp3_ = 0;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = i;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ i = _tmp3_ + 1;
+#line 6417 "Event.c"
+ }
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = FALSE;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = i;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = count;
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!(_tmp4_ < _tmp5_)) {
+#line 820 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 6429 "Event.c"
+ }
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = self->priv->view;
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = i;
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection), _tmp7_);
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_VIEW, DataView);
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = media_source_get_exposure_time (_tmp11_);
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = _tmp12_;
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp11_);
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp9_);
+#line 821 "/home/jens/Source/shotwell/src/Event.vala"
+ time = _tmp13_;
+#line 822 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = time;
+#line 822 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp14_ != ((time_t) 0)) {
+#line 823 "/home/jens/Source/shotwell/src/Event.vala"
+ result = time;
+#line 823 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6461 "Event.c"
+ }
+ }
+ }
+ }
+#line 826 "/home/jens/Source/shotwell/src/Event.vala"
+ result = (time_t) 0;
+#line 826 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6470 "Event.c"
+}
+
+
+static time_t event_real_get_end_time (EventSource* base) {
+ Event * self;
+ time_t result = 0;
+ gint count = 0;
+ ViewCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ ViewCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ DataObject* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ time_t _tmp9_ = 0;
+ time_t _tmp10_ = 0;
+#line 829 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 830 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 830 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 830 "/home/jens/Source/shotwell/src/Event.vala"
+ count = _tmp1_;
+#line 834 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = count;
+#line 834 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp2_ == 0) {
+#line 835 "/home/jens/Source/shotwell/src/Event.vala"
+ result = (time_t) 0;
+#line 835 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6505 "Event.c"
+ }
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = self->priv->view;
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = count;
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), _tmp4_ - 1);
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_VIEW, DataView);
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = data_view_get_source (_tmp6_);
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = media_source_get_exposure_time (_tmp8_);
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = _tmp9_;
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp8_);
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp6_);
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp10_;
+#line 837 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6531 "Event.c"
+}
+
+
+static guint64 event_real_get_total_filesize (EventSource* base) {
+ Event * self;
+ guint64 result = 0ULL;
+ guint64 total = 0ULL;
+#line 840 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 841 "/home/jens/Source/shotwell/src/Event.vala"
+ total = (guint64) 0;
+#line 6543 "Event.c"
+ {
+ GeeIterator* _current_source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_source_get_media (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource));
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _tmp0_;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = _tmp2_;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp1_);
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _current_source_it = _tmp3_;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 6564 "Event.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSource* current_source = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ guint64 _tmp8_ = 0ULL;
+ MediaSource* _tmp9_ = NULL;
+ guint64 _tmp10_ = 0ULL;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = _current_source_it;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp5_) {
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 6581 "Event.c"
+ }
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = _current_source_it;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ current_source = (MediaSource*) _tmp7_;
+#line 843 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = total;
+#line 843 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = current_source;
+#line 843 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = media_source_get_filesize (_tmp9_);
+#line 843 "/home/jens/Source/shotwell/src/Event.vala"
+ total = _tmp8_ + _tmp10_;
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (current_source);
+#line 6599 "Event.c"
+ }
+#line 842 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_current_source_it);
+#line 6603 "Event.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/Event.vala"
+ result = total;
+#line 846 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6609 "Event.c"
+}
+
+
+static gint event_real_get_media_count (EventSource* base) {
+ Event * self;
+ gint result = 0;
+ ViewCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 849 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 850 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 850 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 850 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 850 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6628 "Event.c"
+}
+
+
+static GeeCollection* event_real_get_media (EventSource* base) {
+ Event * self;
+ GeeCollection* result = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 853 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 854 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 854 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = view_collection_get_sources (_tmp0_);
+#line 854 "/home/jens/Source/shotwell/src/Event.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 854 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6647 "Event.c"
+}
+
+
+void event_mirror_photos (Event* self, ViewCollection* view, CreateView mirroring_ctor, void* mirroring_ctor_target) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ CreateView _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 857 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 857 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (view));
+#line 858 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = view;
+#line 858 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->view;
+#line 858 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = mirroring_ctor;
+#line 858 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2__target = mirroring_ctor_target;
+#line 858 "/home/jens/Source/shotwell/src/Event.vala"
+ view_collection_mirror (_tmp0_, _tmp1_, _tmp2_, _tmp2__target, NULL, NULL);
+#line 6670 "Event.c"
+}
+
+
+static void event_on_primary_thumbnail_altered (Event* self) {
+#line 861 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 862 "/home/jens/Source/shotwell/src/Event.vala"
+ thumbnail_source_notify_thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 6679 "Event.c"
+}
+
+
+MediaSource* event_get_primary_source (Event* self) {
+ MediaSource* result = NULL;
+ MediaSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+#line 865 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), NULL);
+#line 866 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->primary_source;
+#line 866 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 866 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 866 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6697 "Event.c"
+}
+
+
+gboolean event_set_primary_source (Event* self, MediaSource* source) {
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean committed = FALSE;
+ EventTable* _tmp3_ = NULL;
+ EventID _tmp4_ = {0};
+ MediaSource* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 869 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), FALSE);
+#line 869 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 870 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 870 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = source;
+#line 870 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = view_collection_has_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 870 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_assert (_tmp2_, "view.has_view_for_source(source)");
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = event_event_table;
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = self->priv->event_id;
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = source;
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_SOURCE, DataSource));
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = _tmp6_;
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = event_table_set_primary_source_id (_tmp3_, &_tmp4_, _tmp7_);
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _tmp8_;
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (_tmp7_);
+#line 872 "/home/jens/Source/shotwell/src/Event.vala"
+ committed = _tmp9_;
+#line 873 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = committed;
+#line 873 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp10_) {
+#line 6749 "Event.c"
+ MediaSource* _tmp11_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ MediaSource* _tmp16_ = NULL;
+#line 875 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = self->priv->primary_source;
+#line 875 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp11_ != NULL) {
+#line 6758 "Event.c"
+ MediaSource* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+#line 876 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = self->priv->primary_source;
+#line 876 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("thumbnail-altered", TYPE_THUMBNAIL_SOURCE, &_tmp13_, NULL, FALSE);
+#line 876 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _event_on_primary_thumbnail_altered_thumbnail_source_thumbnail_altered, self);
+#line 6767 "Event.c"
+ }
+#line 878 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = source;
+#line 878 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 878 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 878 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->primary_source = _tmp15_;
+#line 879 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = self->priv->primary_source;
+#line 879 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), "thumbnail-altered", (GCallback) _event_on_primary_thumbnail_altered_thumbnail_source_thumbnail_altered, self, 0);
+#line 881 "/home/jens/Source/shotwell/src/Event.vala"
+ thumbnail_source_notify_thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 6783 "Event.c"
+ }
+#line 884 "/home/jens/Source/shotwell/src/Event.vala"
+ result = committed;
+#line 884 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6789 "Event.c"
+}
+
+
+static void event_release_primary_source (Event* self) {
+ MediaSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 887 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_EVENT (self));
+#line 888 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->primary_source;
+#line 888 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp0_ == NULL) {
+#line 889 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 6805 "Event.c"
+ }
+#line 891 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->primary_source;
+#line 891 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("thumbnail-altered", TYPE_THUMBNAIL_SOURCE, &_tmp2_, NULL, FALSE);
+#line 891 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _event_on_primary_thumbnail_altered_thumbnail_source_thumbnail_altered, self);
+#line 892 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 892 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->primary_source = NULL;
+#line 6817 "Event.c"
+}
+
+
+static GdkPixbuf* event_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ Event * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->primary_source;
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp1_ != NULL) {
+#line 6833 "Event.c"
+ MediaSource* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->primary_source;
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = scale;
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = thumbnail_source_get_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp3_, &_inner_error_);
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp0_);
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp4_;
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ g_propagate_error (error, _inner_error_);
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp0_);
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ return NULL;
+#line 6855 "Event.c"
+ }
+ } else {
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp0_);
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = NULL;
+#line 6862 "Event.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp0_;
+#line 896 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6868 "Event.c"
+}
+
+
+GdkPixbuf* event_get_preview_pixbuf (Event* self, Scaling* scaling) {
+ GdkPixbuf* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 899 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (self), NULL);
+#line 899 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 6879 "Event.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ Scaling _tmp3_ = {0};
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_get_primary_source (self);
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp1_;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = *scaling;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = media_source_get_preview_pixbuf (_tmp2_, &_tmp3_, &_inner_error_);
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp2_);
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = _tmp5_;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6904 "Event.c"
+ goto __catch430_g_error;
+ }
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = _tmp0_;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = NULL;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp6_;
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp0_);
+#line 901 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6917 "Event.c"
+ }
+ goto __finally430;
+ __catch430_g_error:
+ {
+ GError* err = NULL;
+#line 900 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 900 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 903 "/home/jens/Source/shotwell/src/Event.vala"
+ result = NULL;
+#line 903 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 903 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 6933 "Event.c"
+ }
+ __finally430:
+#line 900 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 900 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 900 "/home/jens/Source/shotwell/src/Event.vala"
+ return NULL;
+#line 6942 "Event.c"
+}
+
+
+static void event_real_destroy (DataSource* base) {
+ Event * self;
+ ViewCollection* _tmp0_ = NULL;
+ PhotoTable* _tmp4_ = NULL;
+ PhotoTable* _tmp5_ = NULL;
+ EventID _tmp6_ = {0};
+ VideoTable* _tmp7_ = NULL;
+ VideoTable* _tmp8_ = NULL;
+ EventID _tmp9_ = {0};
+ GError * _inner_error_ = NULL;
+#line 907 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT, Event);
+#line 909 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->view;
+#line 909 "/home/jens/Source/shotwell/src/Event.vala"
+ view_collection_halt_all_monitoring (_tmp0_);
+#line 6962 "Event.c"
+ {
+ EventTable* _tmp1_ = NULL;
+ EventID _tmp2_ = {0};
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = event_event_table;
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = self->priv->event_id;
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ event_table_remove (_tmp1_, &_tmp2_, &_inner_error_);
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6976 "Event.c"
+ goto __catch431_database_error;
+ }
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 913 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 6985 "Event.c"
+ }
+ }
+ goto __finally431;
+ __catch431_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 912 "/home/jens/Source/shotwell/src/Event.vala"
+ err = _inner_error_;
+#line 912 "/home/jens/Source/shotwell/src/Event.vala"
+ _inner_error_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = err;
+#line 915 "/home/jens/Source/shotwell/src/Event.vala"
+ app_window_database_error (_tmp3_);
+#line 912 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_error_free0 (err);
+#line 7003 "Event.c"
+ }
+ __finally431:
+#line 912 "/home/jens/Source/shotwell/src/Event.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 912 "/home/jens/Source/shotwell/src/Event.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 912 "/home/jens/Source/shotwell/src/Event.vala"
+ g_clear_error (&_inner_error_);
+#line 912 "/home/jens/Source/shotwell/src/Event.vala"
+ return;
+#line 7014 "Event.c"
+ }
+#line 919 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = photo_table_get_instance ();
+#line 919 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = _tmp4_;
+#line 919 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = self->priv->event_id;
+#line 919 "/home/jens/Source/shotwell/src/Event.vala"
+ photo_table_drop_event (_tmp5_, &_tmp6_);
+#line 919 "/home/jens/Source/shotwell/src/Event.vala"
+ _database_table_unref0 (_tmp5_);
+#line 920 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = video_table_get_instance ();
+#line 920 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = _tmp7_;
+#line 920 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = self->priv->event_id;
+#line 920 "/home/jens/Source/shotwell/src/Event.vala"
+ video_table_drop_event (_tmp8_, &_tmp9_);
+#line 920 "/home/jens/Source/shotwell/src/Event.vala"
+ _database_table_unref0 (_tmp8_);
+#line 922 "/home/jens/Source/shotwell/src/Event.vala"
+ DATA_SOURCE_CLASS (event_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENT_SOURCE, EventSource), TYPE_DATA_SOURCE, DataSource));
+#line 7038 "Event.c"
+}
+
+
+static void _event_event_snapshot_on_attached_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 126 "/home/jens/Source/shotwell/src/Event.vala"
+ event_event_snapshot_on_attached_source_destroyed ((EventEventSnapshot*) self, source);
+#line 7045 "Event.c"
+}
+
+
+static EventEventSnapshot* event_event_snapshot_construct (GType object_type, Event* event) {
+ EventEventSnapshot* self = NULL;
+ EventTable* _tmp0_ = NULL;
+ EventTable* _tmp1_ = NULL;
+ Event* _tmp2_ = NULL;
+ EventID _tmp3_ = {0};
+ EventRow* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ LibraryPhotoSourceCollection* _tmp18_ = NULL;
+ VideoSourceCollection* _tmp19_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 110 "/home/jens/Source/shotwell/src/Event.vala"
+ self = (EventEventSnapshot*) source_snapshot_construct (object_type);
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_table_get_instance ();
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _tmp0_;
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = event;
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ event_get_event_id (_tmp2_, &_tmp3_);
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = event_table_get_row (_tmp1_, &_tmp3_);
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ _event_row_unref0 (self->priv->row);
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->row = _tmp4_;
+#line 112 "/home/jens/Source/shotwell/src/Event.vala"
+ _database_table_unref0 (_tmp1_);
+#line 113 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event;
+#line 113 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = event_get_primary_source (_tmp5_);
+#line 113 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 113 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->primary_source = _tmp6_;
+#line 7088 "Event.c"
+ {
+ GeeIterator* _source_it = NULL;
+ Event* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = event;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = event_source_get_media (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_EVENT_SOURCE, EventSource));
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = _tmp8_;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = _tmp10_;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_tmp9_);
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _source_it = _tmp11_;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ while (TRUE) {
+#line 7112 "Event.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+ MediaSource* _tmp17_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp12_ = _source_it;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ if (!_tmp13_) {
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ break;
+#line 7128 "Event.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp14_ = _source_it;
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ source = (MediaSource*) _tmp15_;
+#line 119 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp16_ = self->priv->attached_sources;
+#line 119 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp17_ = source;
+#line 119 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp17_);
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (source);
+#line 7144 "Event.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (_source_it);
+#line 7148 "Event.c"
+ }
+#line 121 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp18_ = library_photo_global;
+#line 121 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _event_event_snapshot_on_attached_source_destroyed_source_collection_item_destroyed, self);
+#line 122 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp19_ = video_global;
+#line 122 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _event_event_snapshot_on_attached_source_destroyed_source_collection_item_destroyed, self);
+#line 110 "/home/jens/Source/shotwell/src/Event.vala"
+ return self;
+#line 7160 "Event.c"
+}
+
+
+static EventEventSnapshot* event_event_snapshot_new (Event* event) {
+#line 110 "/home/jens/Source/shotwell/src/Event.vala"
+ return event_event_snapshot_construct (EVENT_TYPE_EVENT_SNAPSHOT, event);
+#line 7167 "Event.c"
+}
+
+
+static gpointer _event_row_ref0 (gpointer self) {
+#line 131 "/home/jens/Source/shotwell/src/Event.vala"
+ return self ? event_row_ref (self) : NULL;
+#line 7174 "Event.c"
+}
+
+
+static EventRow* event_event_snapshot_get_row (EventEventSnapshot* self) {
+ EventRow* result = NULL;
+ EventRow* _tmp0_ = NULL;
+ EventRow* _tmp1_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (EVENT_IS_EVENT_SNAPSHOT (self), NULL);
+#line 131 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->row;
+#line 131 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _event_row_ref0 (_tmp0_);
+#line 131 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp1_;
+#line 131 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 7192 "Event.c"
+}
+
+
+static void event_event_snapshot_real_notify_broken (SourceSnapshot* base) {
+ EventEventSnapshot * self;
+ EventRow* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENT_TYPE_EVENT_SNAPSHOT, EventEventSnapshot);
+#line 135 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event_row_new ();
+#line 135 "/home/jens/Source/shotwell/src/Event.vala"
+ _event_row_unref0 (self->priv->row);
+#line 135 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->row = _tmp0_;
+#line 136 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 136 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->primary_source = NULL;
+#line 137 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->attached_sources;
+#line 137 "/home/jens/Source/shotwell/src/Event.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 139 "/home/jens/Source/shotwell/src/Event.vala"
+ SOURCE_SNAPSHOT_CLASS (event_event_snapshot_parent_class)->notify_broken (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_SNAPSHOT, SourceSnapshot));
+#line 7218 "Event.c"
+}
+
+
+static void event_event_snapshot_on_attached_source_destroyed (EventEventSnapshot* self, DataSource* source) {
+ MediaSource* media_source = NULL;
+ DataSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ MediaSource* _tmp3_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (EVENT_IS_EVENT_SNAPSHOT (self));
+#line 142 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 143 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = source;
+#line 143 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 143 "/home/jens/Source/shotwell/src/Event.vala"
+ media_source = _tmp1_;
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = media_source;
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp3_ != NULL) {
+#line 7242 "Event.c"
+ MediaSource* _tmp4_ = NULL;
+ MediaSource* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = self->priv->primary_source;
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = media_source;
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_SOURCE, DataSource));
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = _tmp6_;
+#line 7254 "Event.c"
+ } else {
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = FALSE;
+#line 7258 "Event.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp2_) {
+#line 147 "/home/jens/Source/shotwell/src/Event.vala"
+ source_snapshot_notify_broken (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_SNAPSHOT, SourceSnapshot));
+#line 7264 "Event.c"
+ } else {
+ GeeArrayList* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 148 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = self->priv->attached_sources;
+#line 148 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp8_ = media_source;
+#line 148 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp8_);
+#line 148 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp9_) {
+#line 149 "/home/jens/Source/shotwell/src/Event.vala"
+ source_snapshot_notify_broken (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_SNAPSHOT, SourceSnapshot));
+#line 7279 "Event.c"
+ }
+ }
+#line 142 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (media_source);
+#line 7284 "Event.c"
+}
+
+
+static void event_event_snapshot_class_init (EventEventSnapshotClass * klass) {
+#line 105 "/home/jens/Source/shotwell/src/Event.vala"
+ event_event_snapshot_parent_class = g_type_class_peek_parent (klass);
+#line 105 "/home/jens/Source/shotwell/src/Event.vala"
+ ((SourceSnapshotClass *) klass)->finalize = event_event_snapshot_finalize;
+#line 105 "/home/jens/Source/shotwell/src/Event.vala"
+ g_type_class_add_private (klass, sizeof (EventEventSnapshotPrivate));
+#line 105 "/home/jens/Source/shotwell/src/Event.vala"
+ ((SourceSnapshotClass *) klass)->notify_broken = event_event_snapshot_real_notify_broken;
+#line 7297 "Event.c"
+}
+
+
+static void event_event_snapshot_instance_init (EventEventSnapshot * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv = EVENT_EVENT_SNAPSHOT_GET_PRIVATE (self);
+#line 108 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 108 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->attached_sources = _tmp0_;
+#line 7309 "Event.c"
+}
+
+
+static void event_event_snapshot_finalize (SourceSnapshot* obj) {
+ EventEventSnapshot * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ VideoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 105 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EVENT_TYPE_EVENT_SNAPSHOT, EventEventSnapshot);
+#line 126 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = library_photo_global;
+#line 126 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 126 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _event_event_snapshot_on_attached_source_destroyed_source_collection_item_destroyed, self);
+#line 127 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = video_global;
+#line 127 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 127 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _event_event_snapshot_on_attached_source_destroyed_source_collection_item_destroyed, self);
+#line 106 "/home/jens/Source/shotwell/src/Event.vala"
+ _event_row_unref0 (self->priv->row);
+#line 107 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 108 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->attached_sources);
+#line 105 "/home/jens/Source/shotwell/src/Event.vala"
+ SOURCE_SNAPSHOT_CLASS (event_event_snapshot_parent_class)->finalize (obj);
+#line 7341 "Event.c"
+}
+
+
+static GType event_event_snapshot_get_type (void) {
+ static volatile gsize event_event_snapshot_type_id__volatile = 0;
+ if (g_once_init_enter (&event_event_snapshot_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventEventSnapshotClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_event_snapshot_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventEventSnapshot), 0, (GInstanceInitFunc) event_event_snapshot_instance_init, NULL };
+ GType event_event_snapshot_type_id;
+ event_event_snapshot_type_id = g_type_register_static (TYPE_SOURCE_SNAPSHOT, "EventEventSnapshot", &g_define_type_info, 0);
+ g_once_init_leave (&event_event_snapshot_type_id__volatile, event_event_snapshot_type_id);
+ }
+ return event_event_snapshot_type_id__volatile;
+}
+
+
+static EventEventProxy* event_event_proxy_construct (GType object_type, Event* event) {
+ EventEventProxy* self = NULL;
+ Event* _tmp0_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 155 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = event;
+#line 155 "/home/jens/Source/shotwell/src/Event.vala"
+ self = (EventEventProxy*) source_proxy_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 154 "/home/jens/Source/shotwell/src/Event.vala"
+ return self;
+#line 7368 "Event.c"
+}
+
+
+static EventEventProxy* event_event_proxy_new (Event* event) {
+#line 154 "/home/jens/Source/shotwell/src/Event.vala"
+ return event_event_proxy_construct (EVENT_TYPE_EVENT_PROXY, event);
+#line 7375 "Event.c"
+}
+
+
+static gpointer _source_snapshot_ref0 (gpointer self) {
+#line 159 "/home/jens/Source/shotwell/src/Event.vala"
+ return self ? source_snapshot_ref (self) : NULL;
+#line 7382 "Event.c"
+}
+
+
+static DataSource* event_event_proxy_real_reconstitute (SourceProxy* base, gint64 object_id, SourceSnapshot* snapshot) {
+ EventEventProxy * self;
+ DataSource* result = NULL;
+ EventEventSnapshot* event_snapshot = NULL;
+ SourceSnapshot* _tmp0_ = NULL;
+ EventEventSnapshot* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ EventRow* _tmp3_ = NULL;
+ EventRow* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENT_TYPE_EVENT_PROXY, EventEventProxy);
+#line 158 "/home/jens/Source/shotwell/src/Event.vala"
+ g_return_val_if_fail (IS_SOURCE_SNAPSHOT (snapshot), NULL);
+#line 159 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = snapshot;
+#line 159 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = _source_snapshot_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, EVENT_TYPE_EVENT_SNAPSHOT) ? ((EventEventSnapshot*) _tmp0_) : NULL);
+#line 159 "/home/jens/Source/shotwell/src/Event.vala"
+ event_snapshot = _tmp1_;
+#line 160 "/home/jens/Source/shotwell/src/Event.vala"
+ _vala_assert (event_snapshot != NULL, "event_snapshot != null");
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp2_ = object_id;
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = event_event_snapshot_get_row (event_snapshot);
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp4_ = _tmp3_;
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = event_reconstitute (_tmp2_, _tmp4_);
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_SOURCE, DataSource);
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ _event_row_unref0 (_tmp4_);
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ result = _tmp6_;
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ _source_snapshot_unref0 (event_snapshot);
+#line 162 "/home/jens/Source/shotwell/src/Event.vala"
+ return result;
+#line 7427 "Event.c"
+}
+
+
+static void event_event_proxy_class_init (EventEventProxyClass * klass) {
+#line 153 "/home/jens/Source/shotwell/src/Event.vala"
+ event_event_proxy_parent_class = g_type_class_peek_parent (klass);
+#line 153 "/home/jens/Source/shotwell/src/Event.vala"
+ ((SourceProxyClass *) klass)->reconstitute = event_event_proxy_real_reconstitute;
+#line 7436 "Event.c"
+}
+
+
+static void event_event_proxy_instance_init (EventEventProxy * self) {
+}
+
+
+static GType event_event_proxy_get_type (void) {
+ static volatile gsize event_event_proxy_type_id__volatile = 0;
+ if (g_once_init_enter (&event_event_proxy_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventEventProxyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_event_proxy_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventEventProxy), 0, (GInstanceInitFunc) event_event_proxy_instance_init, NULL };
+ GType event_event_proxy_type_id;
+ event_event_proxy_type_id = g_type_register_static (TYPE_SOURCE_PROXY, "EventEventProxy", &g_define_type_info, 0);
+ g_once_init_leave (&event_event_proxy_type_id__volatile, event_event_proxy_type_id);
+ }
+ return event_event_proxy_type_id__volatile;
+}
+
+
+static void event_class_init (EventClass * klass) {
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ event_parent_class = g_type_class_peek_parent (klass);
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ g_type_class_add_private (klass, sizeof (EventPrivate));
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataSourceClass *) klass)->get_typename = event_real_get_typename;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataSourceClass *) klass)->get_instance_id = event_real_get_instance_id;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ThumbnailSourceClass *) klass)->get_representative_id = event_real_get_representative_id;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ThumbnailSourceClass *) klass)->get_preferred_thumbnail_format = event_real_get_preferred_thumbnail_format;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ThumbnailSourceClass *) klass)->create_thumbnail = event_real_create_thumbnail;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataSourceClass *) klass)->notify_relinking = event_real_notify_relinking;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataSourceClass *) klass)->save_snapshot = event_real_save_snapshot;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataSourceClass *) klass)->equals = event_real_equals;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataObjectClass *) klass)->to_string = event_real_to_string;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataObjectClass *) klass)->get_name = event_real_get_name;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((EventSourceClass *) klass)->get_comment = event_real_get_comment;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((EventSourceClass *) klass)->set_comment = event_real_set_comment;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((EventSourceClass *) klass)->get_start_time = event_real_get_start_time;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((EventSourceClass *) klass)->get_end_time = event_real_get_end_time;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((EventSourceClass *) klass)->get_total_filesize = event_real_get_total_filesize;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((EventSourceClass *) klass)->get_media_count = event_real_get_media_count;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((EventSourceClass *) klass)->get_media = event_real_get_media;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((ThumbnailSourceClass *) klass)->get_thumbnail = event_real_get_thumbnail;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ ((DataSourceClass *) klass)->destroy = event_real_destroy;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ G_OBJECT_CLASS (klass)->finalize = event_finalize;
+#line 7501 "Event.c"
+}
+
+
+static void event_container_source_interface_init (ContainerSourceIface * iface) {
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ event_container_source_parent_iface = g_type_interface_peek_parent (iface);
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->has_links = (gboolean (*)(ContainerSource*)) event_real_has_links;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->get_backlink = (SourceBacklink* (*)(ContainerSource*)) event_real_get_backlink;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->break_link = (void (*)(ContainerSource*, DataSource*)) event_real_break_link;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->break_link_many = (void (*)(ContainerSource*, GeeCollection*)) event_real_break_link_many;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->establish_link = (void (*)(ContainerSource*, DataSource*)) event_real_establish_link;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->establish_link_many = (void (*)(ContainerSource*, GeeCollection*)) event_real_establish_link_many;
+#line 7520 "Event.c"
+}
+
+
+static void event_proxyable_interface_init (ProxyableIface * iface) {
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ event_proxyable_parent_iface = g_type_interface_peek_parent (iface);
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->get_proxy = (SourceProxy* (*)(Proxyable*)) event_real_get_proxy;
+#line 7529 "Event.c"
+}
+
+
+static void event_indexable_interface_init (IndexableIface * iface) {
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ event_indexable_parent_iface = g_type_interface_peek_parent (iface);
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ iface->get_indexable_keywords = (const gchar* (*)(Indexable*)) event_real_get_indexable_keywords;
+#line 7538 "Event.c"
+}
+
+
+static void event_instance_init (Event * self) {
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv = EVENT_GET_PRIVATE (self);
+#line 175 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->unlinking = FALSE;
+#line 176 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->relinking = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->indexable_keywords = NULL;
+#line 178 "/home/jens/Source/shotwell/src/Event.vala"
+ self->priv->comment = NULL;
+#line 7553 "Event.c"
+}
+
+
+static void event_finalize (GObject* obj) {
+ Event * self;
+ MediaSource* _tmp0_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ ViewCollection* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ ViewCollection* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ LibraryPhotoSourceCollection* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ VideoSourceCollection* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENT, Event);
+#line 237 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp0_ = self->priv->primary_source;
+#line 237 "/home/jens/Source/shotwell/src/Event.vala"
+ if (_tmp0_ != NULL) {
+#line 7576 "Event.c"
+ MediaSource* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 238 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp1_ = self->priv->primary_source;
+#line 238 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("thumbnail-altered", TYPE_THUMBNAIL_SOURCE, &_tmp2_, NULL, FALSE);
+#line 238 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _event_on_primary_thumbnail_altered_thumbnail_source_thumbnail_altered, self);
+#line 7585 "Event.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp3_ = self->priv->view;
+#line 240 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp4_, NULL, FALSE);
+#line 240 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _event_on_media_altered_data_collection_items_altered, self);
+#line 241 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp5_ = self->priv->view;
+#line 241 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("items-removed", TYPE_DATA_COLLECTION, &_tmp6_, NULL, FALSE);
+#line 241 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _event_on_media_removed_data_collection_items_removed, self);
+#line 242 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp7_ = self->priv->view;
+#line 242 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("items-added", TYPE_DATA_COLLECTION, &_tmp8_, NULL, FALSE);
+#line 242 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _event_on_media_added_data_collection_items_added, self);
+#line 244 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp9_ = library_photo_global;
+#line 244 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp10_, NULL, FALSE);
+#line 244 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _event_on_media_destroyed_source_collection_item_destroyed, self);
+#line 245 "/home/jens/Source/shotwell/src/Event.vala"
+ _tmp11_ = video_global;
+#line 245 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp12_, NULL, FALSE);
+#line 245 "/home/jens/Source/shotwell/src/Event.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _event_on_media_destroyed_source_collection_item_destroyed, self);
+#line 172 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->raw_name);
+#line 173 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_object_unref0 (self->priv->primary_source);
+#line 174 "/home/jens/Source/shotwell/src/Event.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 177 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 178 "/home/jens/Source/shotwell/src/Event.vala"
+ _g_free0 (self->priv->comment);
+#line 94 "/home/jens/Source/shotwell/src/Event.vala"
+ G_OBJECT_CLASS (event_parent_class)->finalize (obj);
+#line 7629 "Event.c"
+}
+
+
+GType event_get_type (void) {
+ static volatile gsize event_type_id__volatile = 0;
+ if (g_once_init_enter (&event_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Event), 0, (GInstanceInitFunc) event_instance_init, NULL };
+ static const GInterfaceInfo container_source_info = { (GInterfaceInitFunc) event_container_source_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo proxyable_info = { (GInterfaceInitFunc) event_proxyable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo indexable_info = { (GInterfaceInitFunc) event_indexable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType event_type_id;
+ event_type_id = g_type_register_static (TYPE_EVENT_SOURCE, "Event", &g_define_type_info, 0);
+ g_type_add_interface_static (event_type_id, TYPE_CONTAINER_SOURCE, &container_source_info);
+ g_type_add_interface_static (event_type_id, TYPE_PROXYABLE, &proxyable_info);
+ g_type_add_interface_static (event_type_id, TYPE_INDEXABLE, &indexable_info);
+ g_once_init_leave (&event_type_id__volatile, event_type_id);
+ }
+ return event_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/Exporter.c b/src/Exporter.c
new file mode 100644
index 0000000..1368956
--- /dev/null
+++ b/src/Exporter.c
@@ -0,0 +1,2855 @@
+/* Exporter.c generated by valac 0.32.1, the Vala compiler
+ * generated from Exporter.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_EXPORTER (exporter_get_type ())
+#define EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER, Exporter))
+#define EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER, ExporterClass))
+#define IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER))
+#define IS_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER))
+#define EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER, ExporterClass))
+
+typedef struct _Exporter Exporter;
+typedef struct _ExporterClass ExporterClass;
+typedef struct _ExporterPrivate ExporterPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define EXPORTER_TYPE_OVERWRITE (exporter_overwrite_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define EXPORTER_TYPE_EXPORT_JOB (exporter_export_job_get_type ())
+#define EXPORTER_EXPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob))
+#define EXPORTER_EXPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EXPORTER_TYPE_EXPORT_JOB, ExporterExportJobClass))
+#define EXPORTER_IS_EXPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EXPORTER_TYPE_EXPORT_JOB))
+#define EXPORTER_IS_EXPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EXPORTER_TYPE_EXPORT_JOB))
+#define EXPORTER_EXPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EXPORTER_TYPE_EXPORT_JOB, ExporterExportJobClass))
+
+typedef struct _ExporterExportJob ExporterExportJob;
+typedef struct _ExporterExportJobClass ExporterExportJobClass;
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _ExporterExportJobPrivate ExporterExportJobPrivate;
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _scaling_free0(var) ((var == NULL) ? NULL : (var = (scaling_free (var), NULL)))
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+
+#define TYPE_EXPORTER_UI (exporter_ui_get_type ())
+#define EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER_UI, ExporterUI))
+#define EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER_UI, ExporterUIClass))
+#define IS_EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER_UI))
+#define IS_EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER_UI))
+#define EXPORTER_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER_UI, ExporterUIClass))
+
+typedef struct _ExporterUI ExporterUI;
+typedef struct _ExporterUIClass ExporterUIClass;
+typedef struct _ExporterUIPrivate ExporterUIPrivate;
+
+#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
+#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
+#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
+#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
+#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+
+typedef struct _ProgressDialog ProgressDialog;
+typedef struct _ProgressDialogClass ProgressDialogClass;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+typedef struct _ParamSpecExporterUI ParamSpecExporterUI;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+struct _Exporter {
+ GObject parent_instance;
+ ExporterPrivate * priv;
+};
+
+struct _ExporterClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef void (*ExporterCompletionCallback) (Exporter* exporter, gboolean is_cancelled, void* user_data);
+typedef gboolean (*ExporterExportFailedCallback) (Exporter* exporter, GFile* file, gint remaining, GError* err, void* user_data);
+typedef enum {
+ EXPORTER_OVERWRITE_YES,
+ EXPORTER_OVERWRITE_NO,
+ EXPORTER_OVERWRITE_CANCEL,
+ EXPORTER_OVERWRITE_REPLACE_ALL
+} ExporterOverwrite;
+
+typedef ExporterOverwrite (*ExporterOverwriteCallback) (Exporter* exporter, GFile* file, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _ExporterPrivate {
+ GeeCollection* to_export;
+ GFile** exported_files;
+ gint exported_files_length1;
+ gint _exported_files_size_;
+ GFile* dir;
+ Scaling scaling;
+ gint completed_count;
+ Workers* workers;
+ ExporterCompletionCallback completion_callback;
+ gpointer completion_callback_target;
+ ExporterExportFailedCallback error_callback;
+ gpointer error_callback_target;
+ ExporterOverwriteCallback overwrite_callback;
+ gpointer overwrite_callback_target;
+ ProgressMonitor monitor;
+ gpointer monitor_target;
+ GCancellable* cancellable;
+ gboolean replace_all;
+ gboolean aborted;
+ ExportFormatParameters export_params;
+};
+
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _ExporterExportJob {
+ BackgroundJob parent_instance;
+ ExporterExportJobPrivate * priv;
+ MediaSource* media;
+ GFile* dest;
+ Scaling* scaling;
+ JpegQuality* quality;
+ PhotoFileFormat* format;
+ GError* err;
+ gboolean direct_copy_unmodified;
+ gboolean export_metadata;
+};
+
+struct _ExporterExportJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+struct _ExporterUI {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ExporterUIPrivate * priv;
+};
+
+struct _ExporterUIClass {
+ GTypeClass parent_class;
+ void (*finalize) (ExporterUI *self);
+};
+
+struct _ExporterUIPrivate {
+ Exporter* exporter;
+ GCancellable* cancellable;
+ ProgressDialog* progress_dialog;
+ ExporterCompletionCallback completion_callback;
+ gpointer completion_callback_target;
+};
+
+struct _ParamSpecExporterUI {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer exporter_parent_class = NULL;
+static gpointer exporter_export_job_parent_class = NULL;
+static gpointer exporter_ui_parent_class = NULL;
+
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+static void export_format_parameters_init (ExportFormatParameters *self, ExportFormatMode mode, PhotoFileFormat specified_format, JpegQuality quality);
+void export_format_parameters_current (ExportFormatParameters* result);
+PhotoFileFormat photo_file_format_get_system_default_format (void);
+void export_format_parameters_unmodified (ExportFormatParameters* result);
+void export_format_parameters_for_format (PhotoFileFormat format, ExportFormatParameters* result);
+void export_format_parameters_last (ExportFormatParameters* result);
+void export_format_parameters_for_JPEG (JpegQuality quality, ExportFormatParameters* result);
+GType exporter_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+GType exporter_overwrite_get_type (void) G_GNUC_CONST;
+#define EXPORTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXPORTER, ExporterPrivate))
+enum {
+ EXPORTER_DUMMY_PROPERTY
+};
+guint workers_threads_per_cpu (gint per, gint max);
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+Exporter* exporter_new_for_temp_file (GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params);
+Exporter* exporter_construct_for_temp_file (GType object_type, GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params);
+void exporter_export (Exporter* self, ExporterCompletionCallback completion_callback, void* completion_callback_target, ExporterExportFailedCallback error_callback, void* error_callback_target, ExporterOverwriteCallback overwrite_callback, void* overwrite_callback_target, GCancellable* cancellable, ProgressMonitor monitor, void* monitor_target);
+static gboolean exporter_process_queue (Exporter* self);
+static void exporter_export_completed (Exporter* self, gboolean is_cancelled);
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+static void exporter_on_exported (Exporter* self, BackgroundJob* j);
+static GType exporter_export_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+static void _vala_array_add294 (GFile*** array, int* length, int* size, GFile* value);
+static void exporter_on_export_cancelled (Exporter* self, BackgroundJob* j);
+GFile** exporter_get_exported_files (Exporter* self, int* result_length1);
+static GFile** _vala_array_dup31 (GFile** self, int length);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params);
+gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+gchar* media_source_get_basename (MediaSource* self);
+static void _vala_array_add295 (GFile*** array, int* length, int* size, GFile* value);
+GFile* generate_unique_file (GFile* dir, const gchar* basename, gboolean* collision, GError** error);
+GFile* app_dirs_get_temp_dir (void);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+GFile* media_source_get_file (MediaSource* self);
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static ExporterExportJob* exporter_export_job_new (Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata);
+static ExporterExportJob* exporter_export_job_construct (GType object_type, Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata);
+enum {
+ EXPORTER_EXPORT_JOB_DUMMY_PROPERTY
+};
+static void _exporter_on_exported_completion_callback (BackgroundJob* job, gpointer self);
+static void _exporter_on_export_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+static JpegQuality* _jpeg_quality_dup (JpegQuality* self);
+static PhotoFileFormat* _photo_file_format_dup (PhotoFileFormat* self);
+static void exporter_export_job_real_execute (BackgroundJob* base);
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error);
+void video_export (Video* self, GFile* dest_file, GError** error);
+static void exporter_export_job_finalize (BackgroundJob* obj);
+static void exporter_finalize (GObject* obj);
+gpointer exporter_ui_ref (gpointer instance);
+void exporter_ui_unref (gpointer instance);
+GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_exporter_ui (GValue* value, gpointer v_object);
+void value_take_exporter_ui (GValue* value, gpointer v_object);
+gpointer value_get_exporter_ui (const GValue* value);
+GType exporter_ui_get_type (void) G_GNUC_CONST;
+GType progress_dialog_get_type (void) G_GNUC_CONST;
+#define EXPORTER_UI_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXPORTER_UI, ExporterUIPrivate))
+enum {
+ EXPORTER_UI_DUMMY_PROPERTY
+};
+ExporterUI* exporter_ui_new (Exporter* exporter);
+ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter);
+void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void page_window_set_busy_cursor (PageWindow* self);
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+static void exporter_ui_on_export_completed (ExporterUI* self, Exporter* exporter, gboolean is_cancelled);
+static void _exporter_ui_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self);
+static gboolean exporter_ui_on_export_failed (ExporterUI* self, Exporter* exporter, GFile* file, gint remaining, GError* err);
+static gboolean _exporter_ui_on_export_failed_exporter_export_failed_callback (Exporter* exporter, GFile* file, gint remaining, GError* err, gpointer self);
+static ExporterOverwrite exporter_ui_on_export_overwrite (ExporterUI* self, Exporter* exporter, GFile* file);
+static ExporterOverwrite _exporter_ui_on_export_overwrite_exporter_overwrite_callback (Exporter* exporter, GFile* file, gpointer self);
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+void progress_dialog_close (ProgressDialog* self);
+void page_window_set_normal_cursor (PageWindow* self);
+GtkResponseType app_window_negate_affirm_all_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* affirmative_all, const gchar* title, GtkWindow* parent);
+GtkResponseType export_error_dialog (GFile* dest, gboolean photos_remaining);
+static void exporter_ui_finalize (ExporterUI* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+GType export_format_mode_get_type (void) {
+ static volatile gsize export_format_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&export_format_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{EXPORT_FORMAT_MODE_UNMODIFIED, "EXPORT_FORMAT_MODE_UNMODIFIED", "unmodified"}, {EXPORT_FORMAT_MODE_CURRENT, "EXPORT_FORMAT_MODE_CURRENT", "current"}, {EXPORT_FORMAT_MODE_SPECIFIED, "EXPORT_FORMAT_MODE_SPECIFIED", "specified"}, {EXPORT_FORMAT_MODE_LAST, "EXPORT_FORMAT_MODE_LAST", "last"}, {0, NULL, NULL}};
+ GType export_format_mode_type_id;
+ export_format_mode_type_id = g_enum_register_static ("ExportFormatMode", values);
+ g_once_init_leave (&export_format_mode_type_id__volatile, export_format_mode_type_id);
+ }
+ return export_format_mode_type_id__volatile;
+}
+
+
+static void export_format_parameters_init (ExportFormatParameters *self, ExportFormatMode mode, PhotoFileFormat specified_format, JpegQuality quality) {
+ ExportFormatMode _tmp0_ = 0;
+ PhotoFileFormat _tmp1_ = 0;
+ JpegQuality _tmp2_ = 0;
+#line 20 "/home/jens/Source/shotwell/src/Exporter.vala"
+ memset (self, 0, sizeof (ExportFormatParameters));
+#line 22 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = mode;
+#line 22 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*self).mode = _tmp0_;
+#line 23 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = specified_format;
+#line 23 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*self).specified_format = _tmp1_;
+#line 24 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = quality;
+#line 24 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*self).quality = _tmp2_;
+#line 25 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*self).export_metadata = TRUE;
+#line 555 "Exporter.c"
+}
+
+
+void export_format_parameters_current (ExportFormatParameters* result) {
+ PhotoFileFormat _tmp0_ = 0;
+ ExportFormatParameters _tmp1_ = {0};
+#line 29 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = photo_file_format_get_system_default_format ();
+#line 29 "/home/jens/Source/shotwell/src/Exporter.vala"
+ export_format_parameters_init (&_tmp1_, EXPORT_FORMAT_MODE_CURRENT, _tmp0_, JPEG_QUALITY_HIGH);
+#line 29 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *result = _tmp1_;
+#line 29 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 570 "Exporter.c"
+}
+
+
+void export_format_parameters_unmodified (ExportFormatParameters* result) {
+ PhotoFileFormat _tmp0_ = 0;
+ ExportFormatParameters _tmp1_ = {0};
+#line 34 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = photo_file_format_get_system_default_format ();
+#line 34 "/home/jens/Source/shotwell/src/Exporter.vala"
+ export_format_parameters_init (&_tmp1_, EXPORT_FORMAT_MODE_UNMODIFIED, _tmp0_, JPEG_QUALITY_HIGH);
+#line 34 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *result = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 585 "Exporter.c"
+}
+
+
+void export_format_parameters_for_format (PhotoFileFormat format, ExportFormatParameters* result) {
+ PhotoFileFormat _tmp0_ = 0;
+ ExportFormatParameters _tmp1_ = {0};
+#line 39 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = format;
+#line 39 "/home/jens/Source/shotwell/src/Exporter.vala"
+ export_format_parameters_init (&_tmp1_, EXPORT_FORMAT_MODE_SPECIFIED, _tmp0_, JPEG_QUALITY_HIGH);
+#line 39 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *result = _tmp1_;
+#line 39 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 600 "Exporter.c"
+}
+
+
+void export_format_parameters_last (ExportFormatParameters* result) {
+ PhotoFileFormat _tmp0_ = 0;
+ ExportFormatParameters _tmp1_ = {0};
+#line 43 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = photo_file_format_get_system_default_format ();
+#line 43 "/home/jens/Source/shotwell/src/Exporter.vala"
+ export_format_parameters_init (&_tmp1_, EXPORT_FORMAT_MODE_LAST, _tmp0_, JPEG_QUALITY_HIGH);
+#line 43 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *result = _tmp1_;
+#line 43 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 615 "Exporter.c"
+}
+
+
+void export_format_parameters_for_JPEG (JpegQuality quality, ExportFormatParameters* result) {
+ JpegQuality _tmp0_ = 0;
+ ExportFormatParameters _tmp1_ = {0};
+#line 48 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = quality;
+#line 48 "/home/jens/Source/shotwell/src/Exporter.vala"
+ export_format_parameters_init (&_tmp1_, EXPORT_FORMAT_MODE_SPECIFIED, PHOTO_FILE_FORMAT_JFIF, _tmp0_);
+#line 48 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *result = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 630 "Exporter.c"
+}
+
+
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self) {
+ ExportFormatParameters* dup;
+#line 14 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dup = g_new0 (ExportFormatParameters, 1);
+#line 14 "/home/jens/Source/shotwell/src/Exporter.vala"
+ memcpy (dup, self, sizeof (ExportFormatParameters));
+#line 14 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return dup;
+#line 642 "Exporter.c"
+}
+
+
+void export_format_parameters_free (ExportFormatParameters* self) {
+#line 14 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_free (self);
+#line 649 "Exporter.c"
+}
+
+
+GType export_format_parameters_get_type (void) {
+ static volatile gsize export_format_parameters_type_id__volatile = 0;
+ if (g_once_init_enter (&export_format_parameters_type_id__volatile)) {
+ GType export_format_parameters_type_id;
+ export_format_parameters_type_id = g_boxed_type_register_static ("ExportFormatParameters", (GBoxedCopyFunc) export_format_parameters_dup, (GBoxedFreeFunc) export_format_parameters_free);
+ g_once_init_leave (&export_format_parameters_type_id__volatile, export_format_parameters_type_id);
+ }
+ return export_format_parameters_type_id__volatile;
+}
+
+
+GType exporter_overwrite_get_type (void) {
+ static volatile gsize exporter_overwrite_type_id__volatile = 0;
+ if (g_once_init_enter (&exporter_overwrite_type_id__volatile)) {
+ static const GEnumValue values[] = {{EXPORTER_OVERWRITE_YES, "EXPORTER_OVERWRITE_YES", "yes"}, {EXPORTER_OVERWRITE_NO, "EXPORTER_OVERWRITE_NO", "no"}, {EXPORTER_OVERWRITE_CANCEL, "EXPORTER_OVERWRITE_CANCEL", "cancel"}, {EXPORTER_OVERWRITE_REPLACE_ALL, "EXPORTER_OVERWRITE_REPLACE_ALL", "replace-all"}, {0, NULL, NULL}};
+ GType exporter_overwrite_type_id;
+ exporter_overwrite_type_id = g_enum_register_static ("ExporterOverwrite", values);
+ g_once_init_leave (&exporter_overwrite_type_id__volatile, exporter_overwrite_type_id);
+ }
+ return exporter_overwrite_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 125 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 679 "Exporter.c"
+}
+
+
+Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all) {
+ Exporter * self = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ Scaling _tmp4_ = {0};
+ ExportFormatParameters _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+#line 122 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (to_export), NULL);
+#line 122 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail ((dir == NULL) || G_IS_FILE (dir), NULL);
+#line 122 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 122 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (export_params != NULL, NULL);
+#line 122 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = (Exporter*) g_object_new (object_type, NULL);
+#line 124 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->to_export;
+#line 124 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = to_export;
+#line 124 "/home/jens/Source/shotwell/src/Exporter.vala"
+ gee_collection_add_all (_tmp0_, _tmp1_);
+#line 125 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = dir;
+#line 125 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 125 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->dir);
+#line 125 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->dir = _tmp3_;
+#line 126 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = *scaling;
+#line 126 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->scaling = _tmp4_;
+#line 127 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = *export_params;
+#line 127 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->export_params = _tmp5_;
+#line 128 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = auto_replace_all;
+#line 128 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->replace_all = _tmp6_;
+#line 122 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self;
+#line 730 "Exporter.c"
+}
+
+
+Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all) {
+#line 122 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return exporter_construct (TYPE_EXPORTER, to_export, dir, scaling, export_params, auto_replace_all);
+#line 737 "Exporter.c"
+}
+
+
+Exporter* exporter_construct_for_temp_file (GType object_type, GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params) {
+ Exporter * self = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ Scaling _tmp2_ = {0};
+ ExportFormatParameters _tmp3_ = {0};
+#line 131 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (to_export), NULL);
+#line 131 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 131 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (export_params != NULL, NULL);
+#line 131 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = (Exporter*) g_object_new (object_type, NULL);
+#line 133 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->to_export;
+#line 133 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = to_export;
+#line 133 "/home/jens/Source/shotwell/src/Exporter.vala"
+ gee_collection_add_all (_tmp0_, _tmp1_);
+#line 134 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->dir);
+#line 134 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->dir = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = *scaling;
+#line 135 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->scaling = _tmp2_;
+#line 136 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = *export_params;
+#line 136 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->export_params = _tmp3_;
+#line 131 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self;
+#line 775 "Exporter.c"
+}
+
+
+Exporter* exporter_new_for_temp_file (GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params) {
+#line 131 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return exporter_construct_for_temp_file (TYPE_EXPORTER, to_export, scaling, export_params);
+#line 782 "Exporter.c"
+}
+
+
+void exporter_export (Exporter* self, ExporterCompletionCallback completion_callback, void* completion_callback_target, ExporterExportFailedCallback error_callback, void* error_callback_target, ExporterOverwriteCallback overwrite_callback, void* overwrite_callback_target, GCancellable* cancellable, ProgressMonitor monitor, void* monitor_target) {
+ ExporterCompletionCallback _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ ExporterExportFailedCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ ExporterOverwriteCallback _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ ProgressMonitor _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ GCancellable* _tmp4_ = NULL;
+ GCancellable* _tmp5_ = NULL;
+ GCancellable* _tmp6_ = NULL;
+ GCancellable* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 140 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_EXPORTER (self));
+#line 140 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 142 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = completion_callback;
+#line 142 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0__target = completion_callback_target;
+#line 142 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completion_callback = _tmp0_;
+#line 142 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completion_callback_target = _tmp0__target;
+#line 143 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = error_callback;
+#line 143 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1__target = error_callback_target;
+#line 143 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->error_callback = _tmp1_;
+#line 143 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->error_callback_target = _tmp1__target;
+#line 144 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = overwrite_callback;
+#line 144 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2__target = overwrite_callback_target;
+#line 144 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->overwrite_callback = _tmp2_;
+#line 144 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->overwrite_callback_target = _tmp2__target;
+#line 145 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = monitor;
+#line 145 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3__target = monitor_target;
+#line 145 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->monitor = _tmp3_;
+#line 145 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->monitor_target = _tmp3__target;
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = cancellable;
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = _tmp6_;
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp4_ == NULL) {
+#line 844 "Exporter.c"
+ GCancellable* _tmp7_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = g_cancellable_new ();
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp4_);
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = _tmp7_;
+#line 852 "Exporter.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp8_ = _tmp4_;
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 146 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->cancellable = _tmp8_;
+#line 148 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp9_ = exporter_process_queue (self);
+#line 148 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp9_) {
+#line 149 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_export_completed (self, TRUE);
+#line 868 "Exporter.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp4_);
+#line 872 "Exporter.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 153 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 879 "Exporter.c"
+}
+
+
+static void _vala_array_add294 (GFile*** array, int* length, int* size, GFile* value) {
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if ((*length) == (*size)) {
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 890 "Exporter.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*array)[(*length)++] = value;
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*array)[*length] = NULL;
+#line 896 "Exporter.c"
+}
+
+
+static void exporter_on_exported (Exporter* self, BackgroundJob* j) {
+ ExporterExportJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ ExporterExportJob* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean completed = FALSE;
+ gint _tmp3_ = 0;
+ GeeCollection* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp36_ = FALSE;
+#line 152 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_EXPORTER (self));
+#line 152 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 153 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = j;
+#line 153 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob));
+#line 153 "/home/jens/Source/shotwell/src/Exporter.vala"
+ job = _tmp1_;
+#line 155 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = self->priv->completed_count;
+#line 155 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completed_count = _tmp2_ + 1;
+#line 159 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = self->priv->completed_count;
+#line 159 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = self->priv->to_export;
+#line 159 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = gee_collection_get_size (_tmp4_);
+#line 159 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = _tmp5_;
+#line 159 "/home/jens/Source/shotwell/src/Exporter.vala"
+ completed = _tmp3_ == _tmp6_;
+#line 161 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp8_ = self->priv->aborted;
+#line 161 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp8_) {
+#line 943 "Exporter.c"
+ ExporterExportJob* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp9_ = job;
+#line 161 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp10_ = _tmp9_->err;
+#line 161 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = _tmp10_ != NULL;
+#line 952 "Exporter.c"
+ } else {
+#line 161 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = FALSE;
+#line 956 "Exporter.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp7_) {
+#line 960 "Exporter.c"
+ ExporterExportFailedCallback _tmp11_ = NULL;
+ void* _tmp11__target = NULL;
+ ExporterExportJob* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ ExporterExportJob* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp11_ = self->priv->error_callback;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp11__target = self->priv->error_callback_target;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp12_ = job;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp13_ = _tmp12_->dest;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp14_ = self->priv->to_export;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp15_ = gee_collection_get_size (_tmp14_);
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp16_ = _tmp15_;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp17_ = self->priv->completed_count;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp18_ = job;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp19_ = _tmp18_->err;
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp20_ = _tmp11_ (self, _tmp13_, _tmp16_ - _tmp17_, _tmp19_, _tmp11__target);
+#line 162 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp20_) {
+#line 996 "Exporter.c"
+ gboolean _tmp21_ = FALSE;
+#line 163 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->aborted = TRUE;
+#line 165 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp21_ = completed;
+#line 165 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp21_) {
+#line 166 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _background_job_unref0 (job);
+#line 166 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 1008 "Exporter.c"
+ }
+ }
+ }
+#line 170 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp23_ = self->priv->aborted;
+#line 170 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp23_) {
+#line 1016 "Exporter.c"
+ ProgressMonitor _tmp24_ = NULL;
+ void* _tmp24__target = NULL;
+#line 170 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp24_ = self->priv->monitor;
+#line 170 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp24__target = self->priv->monitor_target;
+#line 170 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp22_ = _tmp24_ != NULL;
+#line 1025 "Exporter.c"
+ } else {
+#line 170 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp22_ = FALSE;
+#line 1029 "Exporter.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp22_) {
+#line 1033 "Exporter.c"
+ ProgressMonitor _tmp25_ = NULL;
+ void* _tmp25__target = NULL;
+ gint _tmp26_ = 0;
+ GeeCollection* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gboolean _tmp30_ = FALSE;
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp25_ = self->priv->monitor;
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp25__target = self->priv->monitor_target;
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp26_ = self->priv->completed_count;
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp27_ = self->priv->to_export;
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp28_ = gee_collection_get_size (_tmp27_);
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp29_ = _tmp28_;
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp30_ = _tmp25_ ((guint64) _tmp26_, (guint64) _tmp29_, FALSE, _tmp25__target);
+#line 171 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp30_) {
+#line 1057 "Exporter.c"
+ gboolean _tmp31_ = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->aborted = TRUE;
+#line 174 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp31_ = completed;
+#line 174 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp31_) {
+#line 175 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _background_job_unref0 (job);
+#line 175 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 1069 "Exporter.c"
+ }
+ } else {
+ GFile** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ ExporterExportJob* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp32_ = self->priv->exported_files;
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp32__length1 = self->priv->exported_files_length1;
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp33_ = job;
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp34_ = _tmp33_->dest;
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp35_ = _g_object_ref0 (_tmp34_);
+#line 177 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _vala_array_add294 (&self->priv->exported_files, &self->priv->exported_files_length1, &self->priv->_exported_files_size_, _tmp35_);
+#line 1089 "Exporter.c"
+ }
+ }
+#line 181 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp36_ = completed;
+#line 181 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp36_) {
+#line 182 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_export_completed (self, FALSE);
+#line 1098 "Exporter.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _background_job_unref0 (job);
+#line 1102 "Exporter.c"
+}
+
+
+static void exporter_on_export_cancelled (Exporter* self, BackgroundJob* j) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GeeCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 185 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_EXPORTER (self));
+#line 185 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 186 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->completed_count;
+#line 186 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completed_count = _tmp0_ + 1;
+#line 186 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = self->priv->completed_count;
+#line 186 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = self->priv->to_export;
+#line 186 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = gee_collection_get_size (_tmp2_);
+#line 186 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = _tmp3_;
+#line 186 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp1_ == _tmp4_) {
+#line 187 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_export_completed (self, TRUE);
+#line 1132 "Exporter.c"
+ }
+}
+
+
+static GFile** _vala_array_dup31 (GFile** self, int length) {
+ GFile** result;
+ int i;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = g_new0 (GFile*, length + 1);
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ for (i = 0; i < length; i++) {
+#line 1144 "Exporter.c"
+ GFile* _tmp0_ = NULL;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result[i] = _tmp0_;
+#line 1150 "Exporter.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 1154 "Exporter.c"
+}
+
+
+GFile** exporter_get_exported_files (Exporter* self, int* result_length1) {
+ GFile** result = NULL;
+ GFile** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ GFile** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ GFile** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 190 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER (self), NULL);
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->exported_files;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0__length1 = self->priv->exported_files_length1;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup31 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = _tmp1_;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (result_length1) {
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *result_length1 = _tmp2__length1;
+#line 1184 "Exporter.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = _tmp2_;
+#line 191 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 1190 "Exporter.c"
+}
+
+
+static void _vala_array_add295 (GFile*** array, int* length, int* size, GFile* value) {
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if ((*length) == (*size)) {
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 1201 "Exporter.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*array)[(*length)++] = value;
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ (*array)[*length] = NULL;
+#line 1207 "Exporter.c"
+}
+
+
+static gboolean exporter_process_queue (Exporter* self) {
+ gboolean result = FALSE;
+ gint submitted = 0;
+ gint _tmp89_ = 0;
+ GError * _inner_error_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER (self), FALSE);
+#line 195 "/home/jens/Source/shotwell/src/Exporter.vala"
+ submitted = 0;
+#line 1220 "Exporter.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->to_export;
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _source_it = _tmp1_;
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ while (TRUE) {
+#line 1233 "Exporter.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GFile* use_source_file = NULL;
+ PhotoFileFormat real_export_format = 0;
+ PhotoFileFormat _tmp6_ = 0;
+ gchar* basename = NULL;
+ MediaSource* _tmp7_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* export_dir = NULL;
+ GFile* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ GFile* dest = NULL;
+ GFile* _tmp35_ = NULL;
+ Workers* _tmp74_ = NULL;
+ MediaSource* _tmp75_ = NULL;
+ GFile* _tmp76_ = NULL;
+ Scaling _tmp77_ = {0};
+ ExportFormatParameters _tmp78_ = {0};
+ JpegQuality _tmp79_ = 0;
+ PhotoFileFormat _tmp80_ = 0;
+ GCancellable* _tmp81_ = NULL;
+ ExportFormatParameters _tmp82_ = {0};
+ ExportFormatMode _tmp83_ = 0;
+ ExportFormatParameters _tmp84_ = {0};
+ gboolean _tmp85_ = FALSE;
+ ExporterExportJob* _tmp86_ = NULL;
+ ExporterExportJob* _tmp87_ = NULL;
+ gint _tmp88_ = 0;
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = _source_it;
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp3_) {
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ break;
+#line 1274 "Exporter.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = _source_it;
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ source = (MediaSource*) _tmp5_;
+#line 197 "/home/jens/Source/shotwell/src/Exporter.vala"
+ use_source_file = NULL;
+#line 198 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = photo_file_format_get_system_default_format ();
+#line 198 "/home/jens/Source/shotwell/src/Exporter.vala"
+ real_export_format = _tmp6_;
+#line 199 "/home/jens/Source/shotwell/src/Exporter.vala"
+ basename = NULL;
+#line 200 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = source;
+#line 200 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, TYPE_PHOTO)) {
+#line 1294 "Exporter.c"
+ Photo* photo = NULL;
+ MediaSource* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ ExportFormatParameters _tmp11_ = {0};
+ PhotoFileFormat _tmp12_ = 0;
+ Photo* _tmp13_ = NULL;
+ ExportFormatParameters _tmp14_ = {0};
+ gchar* _tmp15_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp8_ = source;
+#line 201 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo));
+#line 201 "/home/jens/Source/shotwell/src/Exporter.vala"
+ photo = _tmp9_;
+#line 202 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp10_ = photo;
+#line 202 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp11_ = self->priv->export_params;
+#line 202 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp12_ = photo_get_export_format_for_parameters (_tmp10_, &_tmp11_);
+#line 202 "/home/jens/Source/shotwell/src/Exporter.vala"
+ real_export_format = _tmp12_;
+#line 203 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp13_ = photo;
+#line 203 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp14_ = self->priv->export_params;
+#line 203 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp15_ = photo_get_export_basename_for_parameters (_tmp13_, &_tmp14_);
+#line 203 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 203 "/home/jens/Source/shotwell/src/Exporter.vala"
+ basename = _tmp15_;
+#line 200 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (photo);
+#line 1330 "Exporter.c"
+ } else {
+ MediaSource* _tmp16_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp16_ = source;
+#line 204 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_VIDEO)) {
+#line 1337 "Exporter.c"
+ MediaSource* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp17_ = source;
+#line 205 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp18_ = media_source_get_basename (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_VIDEO, Video), TYPE_MEDIA_SOURCE, MediaSource));
+#line 205 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 205 "/home/jens/Source/shotwell/src/Exporter.vala"
+ basename = _tmp18_;
+#line 1348 "Exporter.c"
+ }
+ }
+#line 207 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp19_ = basename;
+#line 207 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _vala_assert (_tmp19_ != NULL, "basename != null");
+#line 209 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp20_ = use_source_file;
+#line 209 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp20_ != NULL) {
+#line 1359 "Exporter.c"
+ GFile** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GFile* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ ProgressMonitor _tmp25_ = NULL;
+ void* _tmp25__target = NULL;
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp21_ = self->priv->exported_files;
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp21__length1 = self->priv->exported_files_length1;
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp22_ = use_source_file;
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp23_ = _g_object_ref0 (_tmp22_);
+#line 210 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _vala_array_add295 (&self->priv->exported_files, &self->priv->exported_files_length1, &self->priv->_exported_files_size_, _tmp23_);
+#line 212 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp24_ = self->priv->completed_count;
+#line 212 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completed_count = _tmp24_ + 1;
+#line 213 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp25_ = self->priv->monitor;
+#line 213 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp25__target = self->priv->monitor_target;
+#line 213 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp25_ != NULL) {
+#line 1387 "Exporter.c"
+ ProgressMonitor _tmp26_ = NULL;
+ void* _tmp26__target = NULL;
+ gint _tmp27_ = 0;
+ GeeCollection* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gboolean _tmp31_ = FALSE;
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp26_ = self->priv->monitor;
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp26__target = self->priv->monitor_target;
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp27_ = self->priv->completed_count;
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp28_ = self->priv->to_export;
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp29_ = gee_collection_get_size (_tmp28_);
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp30_ = _tmp29_;
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp31_ = _tmp26_ ((guint64) _tmp27_, (guint64) _tmp30_, TRUE, _tmp26__target);
+#line 214 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp31_) {
+#line 1411 "Exporter.c"
+ GCancellable* _tmp32_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp32_ = self->priv->cancellable;
+#line 215 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_cancellable_cancel (_tmp32_);
+#line 217 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = FALSE;
+#line 217 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 217 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (use_source_file);
+#line 217 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (source);
+#line 217 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_source_it);
+#line 217 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 1429 "Exporter.c"
+ }
+ }
+#line 221 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 221 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (use_source_file);
+#line 221 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (source);
+#line 221 "/home/jens/Source/shotwell/src/Exporter.vala"
+ continue;
+#line 1440 "Exporter.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp33_ = self->priv->dir;
+#line 224 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp34_ = _g_object_ref0 (_tmp33_);
+#line 224 "/home/jens/Source/shotwell/src/Exporter.vala"
+ export_dir = _tmp34_;
+#line 225 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dest = NULL;
+#line 227 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp35_ = export_dir;
+#line 227 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp35_ == NULL) {
+#line 1454 "Exporter.c"
+ {
+ gboolean collision = FALSE;
+ GFile* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+ GFile* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gboolean _tmp40_ = FALSE;
+ GFile* _tmp41_ = NULL;
+ GFile* _tmp42_ = NULL;
+ GFile* _tmp43_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp37_ = app_dirs_get_temp_dir ();
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp38_ = _tmp37_;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp39_ = basename;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp41_ = generate_unique_file (_tmp38_, _tmp39_, &_tmp40_, &_inner_error_);
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ collision = _tmp40_;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp42_ = _tmp41_;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp38_);
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp36_ = _tmp42_;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1483 "Exporter.c"
+ goto __catch467_g_error;
+ }
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp43_ = _tmp36_;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp36_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (dest);
+#line 230 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dest = _tmp43_;
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp36_);
+#line 1496 "Exporter.c"
+ }
+ goto __finally467;
+ __catch467_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp44_ = NULL;
+ MediaSource* _tmp45_ = NULL;
+ GFile* _tmp46_ = NULL;
+ GFile* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ GError* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ err = _inner_error_;
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _inner_error_ = NULL;
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp44_ = _ ("Unable to generate a temporary file for %s: %s");
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp45_ = source;
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp46_ = media_source_get_file (_tmp45_);
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp47_ = _tmp46_;
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp48_ = g_file_get_basename (_tmp47_);
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp49_ = _tmp48_;
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp50_ = err;
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp51_ = _tmp50_->message;
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp52_ = g_strdup_printf (_tmp44_, _tmp49_, _tmp51_);
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp53_ = _tmp52_;
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ app_window_error_message (_tmp53_, NULL);
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (_tmp53_);
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (_tmp49_);
+#line 232 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp47_);
+#line 235 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_error_free0 (err);
+#line 235 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (dest);
+#line 235 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (export_dir);
+#line 235 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 235 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (use_source_file);
+#line 235 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (source);
+#line 235 "/home/jens/Source/shotwell/src/Exporter.vala"
+ break;
+#line 1558 "Exporter.c"
+ }
+ __finally467:
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (dest);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (export_dir);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (use_source_file);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (source);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_source_it);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_clear_error (&_inner_error_);
+#line 228 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return FALSE;
+#line 1581 "Exporter.c"
+ }
+ } else {
+ GFile* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ GFile* _tmp56_ = NULL;
+ gboolean _tmp57_ = FALSE;
+ gboolean _tmp58_ = FALSE;
+#line 238 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp54_ = self->priv->dir;
+#line 238 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp55_ = basename;
+#line 238 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp56_ = g_file_get_child (_tmp54_, _tmp55_);
+#line 238 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (dest);
+#line 238 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dest = _tmp56_;
+#line 240 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp58_ = self->priv->replace_all;
+#line 240 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp58_) {
+#line 1603 "Exporter.c"
+ GFile* _tmp59_ = NULL;
+ gboolean _tmp60_ = FALSE;
+#line 240 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp59_ = dest;
+#line 240 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp60_ = g_file_query_exists (_tmp59_, NULL);
+#line 240 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp57_ = _tmp60_;
+#line 1612 "Exporter.c"
+ } else {
+#line 240 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp57_ = FALSE;
+#line 1616 "Exporter.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp57_) {
+#line 1620 "Exporter.c"
+ ExporterOverwriteCallback _tmp61_ = NULL;
+ void* _tmp61__target = NULL;
+ GFile* _tmp62_ = NULL;
+ ExporterOverwrite _tmp63_ = 0;
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp61_ = self->priv->overwrite_callback;
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp61__target = self->priv->overwrite_callback_target;
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp62_ = dest;
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp63_ = _tmp61_ (self, _tmp62_, _tmp61__target);
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ switch (_tmp63_) {
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case EXPORTER_OVERWRITE_YES:
+#line 1637 "Exporter.c"
+ {
+#line 244 "/home/jens/Source/shotwell/src/Exporter.vala"
+ break;
+#line 1641 "Exporter.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case EXPORTER_OVERWRITE_REPLACE_ALL:
+#line 1645 "Exporter.c"
+ {
+#line 247 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->replace_all = TRUE;
+#line 248 "/home/jens/Source/shotwell/src/Exporter.vala"
+ break;
+#line 1651 "Exporter.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case EXPORTER_OVERWRITE_CANCEL:
+#line 1655 "Exporter.c"
+ {
+ GCancellable* _tmp64_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp64_ = self->priv->cancellable;
+#line 251 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_cancellable_cancel (_tmp64_);
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = FALSE;
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (dest);
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (export_dir);
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (use_source_file);
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (source);
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_source_it);
+#line 253 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 1678 "Exporter.c"
+ }
+ default:
+#line 241 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case EXPORTER_OVERWRITE_NO:
+#line 1683 "Exporter.c"
+ {
+ gint _tmp65_ = 0;
+ ProgressMonitor _tmp66_ = NULL;
+ void* _tmp66__target = NULL;
+#line 257 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp65_ = self->priv->completed_count;
+#line 257 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completed_count = _tmp65_ + 1;
+#line 258 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp66_ = self->priv->monitor;
+#line 258 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp66__target = self->priv->monitor_target;
+#line 258 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp66_ != NULL) {
+#line 1698 "Exporter.c"
+ ProgressMonitor _tmp67_ = NULL;
+ void* _tmp67__target = NULL;
+ gint _tmp68_ = 0;
+ GeeCollection* _tmp69_ = NULL;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ gboolean _tmp72_ = FALSE;
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp67_ = self->priv->monitor;
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp67__target = self->priv->monitor_target;
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp68_ = self->priv->completed_count;
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp69_ = self->priv->to_export;
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp70_ = gee_collection_get_size (_tmp69_);
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp71_ = _tmp70_;
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp72_ = _tmp67_ ((guint64) _tmp68_, (guint64) _tmp71_, TRUE, _tmp67__target);
+#line 259 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!_tmp72_) {
+#line 1722 "Exporter.c"
+ GCancellable* _tmp73_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp73_ = self->priv->cancellable;
+#line 260 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_cancellable_cancel (_tmp73_);
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = FALSE;
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (dest);
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (export_dir);
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (use_source_file);
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (source);
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_source_it);
+#line 262 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 1744 "Exporter.c"
+ }
+ }
+#line 266 "/home/jens/Source/shotwell/src/Exporter.vala"
+ continue;
+#line 1749 "Exporter.c"
+ }
+ }
+ }
+ }
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp74_ = self->priv->workers;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp75_ = source;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp76_ = dest;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp77_ = self->priv->scaling;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp78_ = self->priv->export_params;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp79_ = _tmp78_.quality;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp80_ = real_export_format;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp81_ = self->priv->cancellable;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp82_ = self->priv->export_params;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp83_ = _tmp82_.mode;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp84_ = self->priv->export_params;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp85_ = _tmp84_.export_metadata;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp86_ = exporter_export_job_new (self, _tmp75_, _tmp76_, &_tmp77_, &_tmp79_, &_tmp80_, _tmp81_, _tmp83_ == EXPORT_FORMAT_MODE_UNMODIFIED, _tmp85_);
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp87_ = _tmp86_;
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ workers_enqueue (_tmp74_, G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 271 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _background_job_unref0 (_tmp87_);
+#line 273 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp88_ = submitted;
+#line 273 "/home/jens/Source/shotwell/src/Exporter.vala"
+ submitted = _tmp88_ + 1;
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (dest);
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (export_dir);
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (basename);
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (use_source_file);
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (source);
+#line 1800 "Exporter.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_source_it);
+#line 1804 "Exporter.c"
+ }
+#line 276 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp89_ = submitted;
+#line 276 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = _tmp89_ > 0;
+#line 276 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 1812 "Exporter.c"
+}
+
+
+static void exporter_export_completed (Exporter* self, gboolean is_cancelled) {
+ ExporterCompletionCallback _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 279 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_EXPORTER (self));
+#line 280 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->completion_callback;
+#line 280 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0__target = self->priv->completion_callback_target;
+#line 280 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = is_cancelled;
+#line 280 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ (self, _tmp1_, _tmp0__target);
+#line 1830 "Exporter.c"
+}
+
+
+static void _exporter_on_exported_completion_callback (BackgroundJob* job, gpointer self) {
+#line 81 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_on_exported ((Exporter*) self, job);
+#line 1837 "Exporter.c"
+}
+
+
+static void _exporter_on_export_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 81 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_on_export_cancelled ((Exporter*) self, job);
+#line 1844 "Exporter.c"
+}
+
+
+static gpointer _scaling_dup0 (gpointer self) {
+#line 87 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self ? scaling_dup (self) : NULL;
+#line 1851 "Exporter.c"
+}
+
+
+static JpegQuality* _jpeg_quality_dup (JpegQuality* self) {
+ JpegQuality* dup;
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dup = g_new0 (JpegQuality, 1);
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ memcpy (dup, self, sizeof (JpegQuality));
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return dup;
+#line 1863 "Exporter.c"
+}
+
+
+static gpointer __jpeg_quality_dup0 (gpointer self) {
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self ? _jpeg_quality_dup (self) : NULL;
+#line 1870 "Exporter.c"
+}
+
+
+static PhotoFileFormat* _photo_file_format_dup (PhotoFileFormat* self) {
+ PhotoFileFormat* dup;
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dup = g_new0 (PhotoFileFormat, 1);
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ memcpy (dup, self, sizeof (PhotoFileFormat));
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return dup;
+#line 1882 "Exporter.c"
+}
+
+
+static gpointer __photo_file_format_dup0 (gpointer self) {
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self ? _photo_file_format_dup (self) : NULL;
+#line 1889 "Exporter.c"
+}
+
+
+static ExporterExportJob* exporter_export_job_construct (GType object_type, Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata) {
+ ExporterExportJob* self = NULL;
+ Exporter* _tmp0_ = NULL;
+ Exporter* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ Exporter* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* _tmp5_ = NULL;
+ MediaSource* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ Scaling* _tmp11_ = NULL;
+ Scaling* _tmp12_ = NULL;
+ JpegQuality* _tmp13_ = NULL;
+ JpegQuality* _tmp14_ = NULL;
+ PhotoFileFormat* _tmp15_ = NULL;
+ PhotoFileFormat* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+#line 78 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER (owner), NULL);
+#line 78 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (media), NULL);
+#line 78 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (G_IS_FILE (dest), NULL);
+#line 78 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 81 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = owner;
+#line 81 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = owner;
+#line 81 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = cancellable;
+#line 81 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = owner;
+#line 81 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = (ExporterExportJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _exporter_on_exported_completion_callback, _tmp1_, _tmp2_, _exporter_on_export_cancelled_cancellation_callback, _tmp3_, NULL);
+#line 83 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = media;
+#line 83 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_PHOTO)) {
+#line 83 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = TRUE;
+#line 1937 "Exporter.c"
+ } else {
+ MediaSource* _tmp6_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = media;
+#line 83 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_VIDEO);
+#line 1944 "Exporter.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _vala_assert (_tmp4_, "media is Photo || media is Video");
+#line 85 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = media;
+#line 85 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 85 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->media);
+#line 85 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->media = _tmp8_;
+#line 86 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp9_ = dest;
+#line 86 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 86 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->dest);
+#line 86 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->dest = _tmp10_;
+#line 87 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp11_ = scaling;
+#line 87 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp12_ = _scaling_dup0 (_tmp11_);
+#line 87 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _scaling_free0 (self->scaling);
+#line 87 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->scaling = _tmp12_;
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp13_ = quality;
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp14_ = __jpeg_quality_dup0 (_tmp13_);
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (self->quality);
+#line 88 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->quality = _tmp14_;
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp15_ = format;
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp16_ = __photo_file_format_dup0 (_tmp15_);
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (self->format);
+#line 89 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->format = _tmp16_;
+#line 90 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp17_ = direct_copy_unmodified;
+#line 90 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->direct_copy_unmodified = _tmp17_;
+#line 91 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp18_ = export_metadata;
+#line 91 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->export_metadata = _tmp18_;
+#line 78 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self;
+#line 1998 "Exporter.c"
+}
+
+
+static ExporterExportJob* exporter_export_job_new (Exporter* owner, MediaSource* media, GFile* dest, Scaling* scaling, JpegQuality* quality, PhotoFileFormat* format, GCancellable* cancellable, gboolean direct_copy_unmodified, gboolean export_metadata) {
+#line 78 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return exporter_export_job_construct (EXPORTER_TYPE_EXPORT_JOB, owner, media, dest, scaling, quality, format, cancellable, direct_copy_unmodified, export_metadata);
+#line 2005 "Exporter.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 102 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 2012 "Exporter.c"
+}
+
+
+static void exporter_export_job_real_execute (BackgroundJob* base) {
+ ExporterExportJob * self;
+ GError * _inner_error_ = NULL;
+#line 94 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob);
+#line 2021 "Exporter.c"
+ {
+ MediaSource* _tmp0_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->media;
+#line 96 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO)) {
+#line 2028 "Exporter.c"
+ MediaSource* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ Scaling* _tmp3_ = NULL;
+ JpegQuality* _tmp4_ = NULL;
+ PhotoFileFormat* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ Scaling _tmp8_ = {0};
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = self->media;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = self->dest;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = self->scaling;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = self->quality;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = self->format;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = self->direct_copy_unmodified;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = self->export_metadata;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp8_ = *_tmp3_;
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ photo_export (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), _tmp2_, &_tmp8_, *_tmp4_, *_tmp5_, _tmp6_, _tmp7_, &_inner_error_);
+#line 97 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2057 "Exporter.c"
+ goto __catch468_g_error;
+ }
+ } else {
+ MediaSource* _tmp9_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp9_ = self->media;
+#line 98 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_VIDEO)) {
+#line 2066 "Exporter.c"
+ MediaSource* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp10_ = self->media;
+#line 99 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp11_ = self->dest;
+#line 99 "/home/jens/Source/shotwell/src/Exporter.vala"
+ video_export (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_VIDEO, Video), _tmp11_, &_inner_error_);
+#line 99 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2077 "Exporter.c"
+ goto __catch468_g_error;
+ }
+ }
+ }
+ }
+ goto __finally468;
+ __catch468_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/Exporter.vala"
+ err = _inner_error_;
+#line 95 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _inner_error_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp12_ = err;
+#line 102 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp13_ = _g_error_copy0 (_tmp12_);
+#line 102 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_error_free0 (self->err);
+#line 102 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->err = _tmp13_;
+#line 95 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_error_free0 (err);
+#line 2103 "Exporter.c"
+ }
+ __finally468:
+#line 95 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 95 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 95 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_clear_error (&_inner_error_);
+#line 95 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return;
+#line 2114 "Exporter.c"
+ }
+}
+
+
+static void exporter_export_job_class_init (ExporterExportJobClass * klass) {
+#line 68 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_export_job_parent_class = g_type_class_peek_parent (klass);
+#line 68 "/home/jens/Source/shotwell/src/Exporter.vala"
+ ((BackgroundJobClass *) klass)->finalize = exporter_export_job_finalize;
+#line 68 "/home/jens/Source/shotwell/src/Exporter.vala"
+ ((BackgroundJobClass *) klass)->execute = exporter_export_job_real_execute;
+#line 2126 "Exporter.c"
+}
+
+
+static void exporter_export_job_instance_init (ExporterExportJob * self) {
+#line 74 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->err = NULL;
+#line 75 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->direct_copy_unmodified = FALSE;
+#line 76 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->export_metadata = TRUE;
+#line 2137 "Exporter.c"
+}
+
+
+static void exporter_export_job_finalize (BackgroundJob* obj) {
+ ExporterExportJob * self;
+#line 68 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EXPORTER_TYPE_EXPORT_JOB, ExporterExportJob);
+#line 69 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->media);
+#line 70 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->dest);
+#line 71 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _scaling_free0 (self->scaling);
+#line 72 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (self->quality);
+#line 73 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (self->format);
+#line 74 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_error_free0 (self->err);
+#line 68 "/home/jens/Source/shotwell/src/Exporter.vala"
+ BACKGROUND_JOB_CLASS (exporter_export_job_parent_class)->finalize (obj);
+#line 2159 "Exporter.c"
+}
+
+
+static GType exporter_export_job_get_type (void) {
+ static volatile gsize exporter_export_job_type_id__volatile = 0;
+ if (g_once_init_enter (&exporter_export_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ExporterExportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) exporter_export_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExporterExportJob), 0, (GInstanceInitFunc) exporter_export_job_instance_init, NULL };
+ GType exporter_export_job_type_id;
+ exporter_export_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "ExporterExportJob", &g_define_type_info, 0);
+ g_once_init_leave (&exporter_export_job_type_id__volatile, exporter_export_job_type_id);
+ }
+ return exporter_export_job_type_id__volatile;
+}
+
+
+static void exporter_class_init (ExporterClass * klass) {
+#line 53 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_parent_class = g_type_class_peek_parent (klass);
+#line 53 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_type_class_add_private (klass, sizeof (ExporterPrivate));
+#line 53 "/home/jens/Source/shotwell/src/Exporter.vala"
+ G_OBJECT_CLASS (klass)->finalize = exporter_finalize;
+#line 2182 "Exporter.c"
+}
+
+
+static void exporter_instance_init (Exporter * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Workers* _tmp2_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv = EXPORTER_GET_PRIVATE (self);
+#line 107 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 107 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->to_export = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 111 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completed_count = 0;
+#line 112 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = workers_threads_per_cpu (1, 4);
+#line 112 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = workers_new (_tmp1_, FALSE);
+#line 112 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->workers = _tmp2_;
+#line 113 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completion_callback = NULL;
+#line 114 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->error_callback = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->overwrite_callback = NULL;
+#line 116 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->monitor = NULL;
+#line 118 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->replace_all = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->aborted = FALSE;
+#line 2216 "Exporter.c"
+}
+
+
+static void exporter_finalize (GObject* obj) {
+ Exporter * self;
+#line 53 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXPORTER, Exporter);
+#line 107 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->to_export);
+#line 108 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->exported_files = (_vala_array_free (self->priv->exported_files, self->priv->exported_files_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 109 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->dir);
+#line 112 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _workers_unref0 (self->priv->workers);
+#line 117 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 53 "/home/jens/Source/shotwell/src/Exporter.vala"
+ G_OBJECT_CLASS (exporter_parent_class)->finalize (obj);
+#line 2236 "Exporter.c"
+}
+
+
+GType exporter_get_type (void) {
+ static volatile gsize exporter_type_id__volatile = 0;
+ if (g_once_init_enter (&exporter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ExporterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) exporter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Exporter), 0, (GInstanceInitFunc) exporter_instance_init, NULL };
+ GType exporter_type_id;
+ exporter_type_id = g_type_register_static (G_TYPE_OBJECT, "Exporter", &g_define_type_info, 0);
+ g_once_init_leave (&exporter_type_id__volatile, exporter_type_id);
+ }
+ return exporter_type_id__volatile;
+}
+
+
+ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter) {
+ ExporterUI* self = NULL;
+ Exporter* _tmp0_ = NULL;
+ Exporter* _tmp1_ = NULL;
+#line 290 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER (exporter), NULL);
+#line 290 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = (ExporterUI*) g_type_create_instance (object_type);
+#line 291 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = exporter;
+#line 291 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 291 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->exporter);
+#line 291 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->exporter = _tmp1_;
+#line 290 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return self;
+#line 2270 "Exporter.c"
+}
+
+
+ExporterUI* exporter_ui_new (Exporter* exporter) {
+#line 290 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return exporter_ui_construct (TYPE_EXPORTER_UI, exporter);
+#line 2277 "Exporter.c"
+}
+
+
+static void _exporter_ui_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self) {
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_ui_on_export_completed ((ExporterUI*) self, exporter, is_cancelled);
+#line 2284 "Exporter.c"
+}
+
+
+static gboolean _exporter_ui_on_export_failed_exporter_export_failed_callback (Exporter* exporter, GFile* file, gint remaining, GError* err, gpointer self) {
+ gboolean result;
+ result = exporter_ui_on_export_failed ((ExporterUI*) self, exporter, file, remaining, err);
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2293 "Exporter.c"
+}
+
+
+static ExporterOverwrite _exporter_ui_on_export_overwrite_exporter_overwrite_callback (Exporter* exporter, GFile* file, gpointer self) {
+ ExporterOverwrite result;
+ result = exporter_ui_on_export_overwrite ((ExporterUI*) self, exporter, file);
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2302 "Exporter.c"
+}
+
+
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop);
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2311 "Exporter.c"
+}
+
+
+void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target) {
+ ExporterCompletionCallback _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ AppWindow* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GCancellable* _tmp6_ = NULL;
+ ProgressDialog* _tmp7_ = NULL;
+ Exporter* _tmp8_ = NULL;
+ GCancellable* _tmp9_ = NULL;
+ ProgressDialog* _tmp10_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_EXPORTER_UI (self));
+#line 295 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = completion_callback;
+#line 295 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0__target = completion_callback_target;
+#line 295 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completion_callback = _tmp0_;
+#line 295 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completion_callback_target = _tmp0__target;
+#line 297 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = app_window_get_instance ();
+#line 297 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = _tmp1_;
+#line 297 "/home/jens/Source/shotwell/src/Exporter.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PAGE_WINDOW, PageWindow));
+#line 297 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp2_);
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = app_window_get_instance ();
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = _tmp3_;
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = _ ("Exporting");
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = self->priv->cancellable;
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow), _tmp5_, _tmp6_);
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_object_ref_sink (_tmp7_);
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->progress_dialog = _tmp7_;
+#line 299 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp4_);
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp8_ = self->priv->exporter;
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp9_ = self->priv->cancellable;
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp10_ = self->priv->progress_dialog;
+#line 300 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_export (_tmp8_, _exporter_ui_on_export_completed_exporter_completion_callback, self, _exporter_ui_on_export_failed_exporter_export_failed_callback, self, _exporter_ui_on_export_overwrite_exporter_overwrite_callback, self, _tmp9_, _progress_dialog_monitor_progress_monitor, _tmp10_);
+#line 2372 "Exporter.c"
+}
+
+
+static void exporter_ui_on_export_completed (ExporterUI* self, Exporter* exporter, gboolean is_cancelled) {
+ ProgressDialog* _tmp0_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ ExporterCompletionCallback _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+ Exporter* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 304 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_EXPORTER_UI (self));
+#line 304 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (IS_EXPORTER (exporter));
+#line 305 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->progress_dialog;
+#line 305 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (_tmp0_ != NULL) {
+#line 2392 "Exporter.c"
+ ProgressDialog* _tmp1_ = NULL;
+#line 306 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = self->priv->progress_dialog;
+#line 306 "/home/jens/Source/shotwell/src/Exporter.vala"
+ progress_dialog_close (_tmp1_);
+#line 307 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 307 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->progress_dialog = NULL;
+#line 2402 "Exporter.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 310 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = _tmp2_;
+#line 310 "/home/jens/Source/shotwell/src/Exporter.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PAGE_WINDOW, PageWindow));
+#line 310 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (_tmp3_);
+#line 312 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = self->priv->completion_callback;
+#line 312 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4__target = self->priv->completion_callback_target;
+#line 312 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = exporter;
+#line 312 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = is_cancelled;
+#line 312 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ (_tmp5_, _tmp6_, _tmp4__target);
+#line 2422 "Exporter.c"
+}
+
+
+static ExporterOverwrite exporter_ui_on_export_overwrite (ExporterUI* self, Exporter* exporter, GFile* file) {
+ ExporterOverwrite result = 0;
+ ProgressDialog* _tmp0_ = NULL;
+ gchar* question = NULL;
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GtkResponseType response = 0;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GtkResponseType _tmp12_ = 0;
+ ProgressDialog* _tmp13_ = NULL;
+ GtkResponseType _tmp14_ = 0;
+#line 315 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER_UI (self), 0);
+#line 315 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER (exporter), 0);
+#line 315 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (G_IS_FILE (file), 0);
+#line 316 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = self->priv->progress_dialog;
+#line 316 "/home/jens/Source/shotwell/src/Exporter.vala"
+ gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_window_get_type (), GtkWindow), FALSE);
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = _ ("File %s already exists. Replace?");
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = file;
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp3_ = g_file_get_basename (_tmp2_);
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp4_ = _tmp3_;
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp5_ = g_strdup_printf (_tmp1_, _tmp4_);
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp6_ = _tmp5_;
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (_tmp4_);
+#line 317 "/home/jens/Source/shotwell/src/Exporter.vala"
+ question = _tmp6_;
+#line 318 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp7_ = question;
+#line 318 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp8_ = _ ("_Skip");
+#line 318 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp9_ = _ ("_Replace");
+#line 318 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp10_ = _ ("Replace _All");
+#line 318 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp11_ = _ ("Export");
+#line 318 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp12_ = app_window_negate_affirm_all_cancel_question (_tmp7_, _tmp8_, _tmp9_, _tmp10_, _tmp11_, NULL);
+#line 318 "/home/jens/Source/shotwell/src/Exporter.vala"
+ response = _tmp12_;
+#line 321 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp13_ = self->priv->progress_dialog;
+#line 321 "/home/jens/Source/shotwell/src/Exporter.vala"
+ gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_window_get_type (), GtkWindow), TRUE);
+#line 323 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp14_ = response;
+#line 323 "/home/jens/Source/shotwell/src/Exporter.vala"
+ switch (_tmp14_) {
+#line 323 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case GTK_RESPONSE_APPLY:
+#line 2495 "Exporter.c"
+ {
+#line 325 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = EXPORTER_OVERWRITE_REPLACE_ALL;
+#line 325 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (question);
+#line 325 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2503 "Exporter.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case GTK_RESPONSE_YES:
+#line 2507 "Exporter.c"
+ {
+#line 328 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = EXPORTER_OVERWRITE_YES;
+#line 328 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (question);
+#line 328 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2515 "Exporter.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case GTK_RESPONSE_CANCEL:
+#line 2519 "Exporter.c"
+ {
+#line 331 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = EXPORTER_OVERWRITE_CANCEL;
+#line 331 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (question);
+#line 331 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2527 "Exporter.c"
+ }
+ default:
+#line 323 "/home/jens/Source/shotwell/src/Exporter.vala"
+ case GTK_RESPONSE_NO:
+#line 2532 "Exporter.c"
+ {
+#line 335 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = EXPORTER_OVERWRITE_NO;
+#line 335 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (question);
+#line 335 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2540 "Exporter.c"
+ }
+ }
+#line 315 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_free0 (question);
+#line 2545 "Exporter.c"
+}
+
+
+static gboolean exporter_ui_on_export_failed (ExporterUI* self, Exporter* exporter, GFile* file, gint remaining, GError* err) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GtkResponseType _tmp2_ = 0;
+#line 339 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER_UI (self), FALSE);
+#line 339 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (IS_EXPORTER (exporter), FALSE);
+#line 339 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 340 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = file;
+#line 340 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp1_ = remaining;
+#line 340 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp2_ = export_error_dialog (_tmp0_, _tmp1_ > 0);
+#line 340 "/home/jens/Source/shotwell/src/Exporter.vala"
+ result = _tmp2_ != GTK_RESPONSE_CANCEL;
+#line 340 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return result;
+#line 2570 "Exporter.c"
+}
+
+
+static void value_exporter_ui_init (GValue* value) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ value->data[0].v_pointer = NULL;
+#line 2577 "Exporter.c"
+}
+
+
+static void value_exporter_ui_free_value (GValue* value) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (value->data[0].v_pointer) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_ui_unref (value->data[0].v_pointer);
+#line 2586 "Exporter.c"
+ }
+}
+
+
+static void value_exporter_ui_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (src_value->data[0].v_pointer) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dest_value->data[0].v_pointer = exporter_ui_ref (src_value->data[0].v_pointer);
+#line 2596 "Exporter.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2600 "Exporter.c"
+ }
+}
+
+
+static gpointer value_exporter_ui_peek_pointer (const GValue* value) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return value->data[0].v_pointer;
+#line 2608 "Exporter.c"
+}
+
+
+static gchar* value_exporter_ui_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (collect_values[0].v_pointer) {
+#line 2615 "Exporter.c"
+ ExporterUI* object;
+ object = collect_values[0].v_pointer;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2622 "Exporter.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2626 "Exporter.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ value->data[0].v_pointer = exporter_ui_ref (object);
+#line 2630 "Exporter.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ value->data[0].v_pointer = NULL;
+#line 2634 "Exporter.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return NULL;
+#line 2638 "Exporter.c"
+}
+
+
+static gchar* value_exporter_ui_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ExporterUI** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!object_p) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2649 "Exporter.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (!value->data[0].v_pointer) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *object_p = NULL;
+#line 2655 "Exporter.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2659 "Exporter.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ *object_p = exporter_ui_ref (value->data[0].v_pointer);
+#line 2663 "Exporter.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return NULL;
+#line 2667 "Exporter.c"
+}
+
+
+GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecExporterUI* spec;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_EXPORTER_UI), NULL);
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return G_PARAM_SPEC (spec);
+#line 2681 "Exporter.c"
+}
+
+
+gpointer value_get_exporter_ui (const GValue* value) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EXPORTER_UI), NULL);
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return value->data[0].v_pointer;
+#line 2690 "Exporter.c"
+}
+
+
+void value_set_exporter_ui (GValue* value, gpointer v_object) {
+ ExporterUI* old;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EXPORTER_UI));
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ old = value->data[0].v_pointer;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (v_object) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_EXPORTER_UI));
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ value->data[0].v_pointer = v_object;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_ui_ref (value->data[0].v_pointer);
+#line 2710 "Exporter.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ value->data[0].v_pointer = NULL;
+#line 2714 "Exporter.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (old) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_ui_unref (old);
+#line 2720 "Exporter.c"
+ }
+}
+
+
+void value_take_exporter_ui (GValue* value, gpointer v_object) {
+ ExporterUI* old;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EXPORTER_UI));
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ old = value->data[0].v_pointer;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (v_object) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_EXPORTER_UI));
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ value->data[0].v_pointer = v_object;
+#line 2739 "Exporter.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ value->data[0].v_pointer = NULL;
+#line 2743 "Exporter.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (old) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_ui_unref (old);
+#line 2749 "Exporter.c"
+ }
+}
+
+
+static void exporter_ui_class_init (ExporterUIClass * klass) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ exporter_ui_parent_class = g_type_class_peek_parent (klass);
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ ((ExporterUIClass *) klass)->finalize = exporter_ui_finalize;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_type_class_add_private (klass, sizeof (ExporterUIPrivate));
+#line 2761 "Exporter.c"
+}
+
+
+static void exporter_ui_instance_init (ExporterUI * self) {
+ GCancellable* _tmp0_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv = EXPORTER_UI_GET_PRIVATE (self);
+#line 286 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _tmp0_ = g_cancellable_new ();
+#line 286 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->cancellable = _tmp0_;
+#line 287 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->progress_dialog = NULL;
+#line 288 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->priv->completion_callback = NULL;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self->ref_count = 1;
+#line 2779 "Exporter.c"
+}
+
+
+static void exporter_ui_finalize (ExporterUI* obj) {
+ ExporterUI * self;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXPORTER_UI, ExporterUI);
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_signal_handlers_destroy (self);
+#line 285 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->exporter);
+#line 286 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 287 "/home/jens/Source/shotwell/src/Exporter.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 2795 "Exporter.c"
+}
+
+
+GType exporter_ui_get_type (void) {
+ static volatile gsize exporter_ui_type_id__volatile = 0;
+ if (g_once_init_enter (&exporter_ui_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_exporter_ui_init, value_exporter_ui_free_value, value_exporter_ui_copy_value, value_exporter_ui_peek_pointer, "p", value_exporter_ui_collect_value, "p", value_exporter_ui_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ExporterUIClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) exporter_ui_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExporterUI), 0, (GInstanceInitFunc) exporter_ui_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType exporter_ui_type_id;
+ exporter_ui_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ExporterUI", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&exporter_ui_type_id__volatile, exporter_ui_type_id);
+ }
+ return exporter_ui_type_id__volatile;
+}
+
+
+gpointer exporter_ui_ref (gpointer instance) {
+ ExporterUI* self;
+ self = instance;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ return instance;
+#line 2820 "Exporter.c"
+}
+
+
+void exporter_ui_unref (gpointer instance) {
+ ExporterUI* self;
+ self = instance;
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ EXPORTER_UI_GET_CLASS (self)->finalize (self);
+#line 284 "/home/jens/Source/shotwell/src/Exporter.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2833 "Exporter.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/International.c b/src/International.c
new file mode 100644
index 0000000..db54c27
--- /dev/null
+++ b/src/International.c
@@ -0,0 +1,158 @@
+/* International.c generated by valac 0.32.1, the Vala compiler
+ * generated from International.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <locale.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+
+
+#define TRANSLATABLE "translatable"
+#define INTERNATIONAL_SUPPORT_SYSTEM_LOCALE ""
+#define INTERNATIONAL_SUPPORT_LANGUAGE_SUPPORT_DIRECTORY _LANG_SUPPORT_DIR
+void international_support_init (const gchar* package_name, gchar** args, int args_length1, const gchar* locale);
+gchar* international_support_get_langpack_dir_path (gchar** args, int args_length1);
+
+
+void international_support_init (const gchar* package_name, gchar** args, int args_length1, const gchar* locale) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/International.vala"
+ g_return_if_fail (package_name != NULL);
+#line 15 "/home/jens/Source/shotwell/src/International.vala"
+ g_return_if_fail (locale != NULL);
+#line 16 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp0_ = locale;
+#line 16 "/home/jens/Source/shotwell/src/International.vala"
+ setlocale (LC_ALL, _tmp0_);
+#line 18 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp1_ = package_name;
+#line 18 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp2_ = args;
+#line 18 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp2__length1 = args_length1;
+#line 18 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp3_ = international_support_get_langpack_dir_path (_tmp2_, _tmp2__length1);
+#line 18 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp4_ = _tmp3_;
+#line 18 "/home/jens/Source/shotwell/src/International.vala"
+ bindtextdomain (_tmp1_, _tmp4_);
+#line 18 "/home/jens/Source/shotwell/src/International.vala"
+ _g_free0 (_tmp4_);
+#line 19 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp5_ = package_name;
+#line 19 "/home/jens/Source/shotwell/src/International.vala"
+ bind_textdomain_codeset (_tmp5_, "UTF-8");
+#line 20 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp6_ = package_name;
+#line 20 "/home/jens/Source/shotwell/src/International.vala"
+ textdomain (_tmp6_);
+#line 70 "International.c"
+}
+
+
+gchar* international_support_get_langpack_dir_path (gchar** args, int args_length1) {
+ gchar* result = NULL;
+ GFile* local_langpack_dir = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp0_ = args;
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp0__length1 = args_length1;
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp1_ = _tmp0_[0];
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp2_ = g_find_program_in_path (_tmp1_);
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp3_ = _tmp2_;
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp4_ = g_file_new_for_path (_tmp3_);
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp5_ = _tmp4_;
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp6_ = g_file_get_parent (_tmp5_);
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp7_ = _tmp6_;
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp8_ = g_file_get_child (_tmp7_, "locale-langpack");
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp9_ = _tmp8_;
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _g_object_unref0 (_tmp7_);
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _g_object_unref0 (_tmp5_);
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ _g_free0 (_tmp3_);
+#line 24 "/home/jens/Source/shotwell/src/International.vala"
+ local_langpack_dir = _tmp9_;
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp11_ = local_langpack_dir;
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp12_ = g_file_query_exists (_tmp11_, NULL);
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ if (_tmp12_) {
+#line 127 "International.c"
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp13_ = local_langpack_dir;
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ _g_free0 (_tmp10_);
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp10_ = _tmp14_;
+#line 138 "International.c"
+ } else {
+ gchar* _tmp15_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp15_ = g_strdup (INTERNATIONAL_SUPPORT_LANGUAGE_SUPPORT_DIRECTORY);
+#line 29 "/home/jens/Source/shotwell/src/International.vala"
+ _g_free0 (_tmp10_);
+#line 29 "/home/jens/Source/shotwell/src/International.vala"
+ _tmp10_ = _tmp15_;
+#line 147 "International.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ result = _tmp10_;
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ _g_object_unref0 (local_langpack_dir);
+#line 28 "/home/jens/Source/shotwell/src/International.vala"
+ return result;
+#line 155 "International.c"
+}
+
+
+
diff --git a/src/LibraryFiles.c b/src/LibraryFiles.c
new file mode 100644
index 0000000..b0fa855
--- /dev/null
+++ b/src/LibraryFiles.c
@@ -0,0 +1,969 @@
+/* LibraryFiles.c generated by valac 0.32.1, the Vala compiler
+ * generated from LibraryFiles.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <gio/gio.h>
+
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_VIDEO_READER (video_reader_get_type ())
+#define VIDEO_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_READER, VideoReader))
+#define VIDEO_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_READER, VideoReaderClass))
+#define IS_VIDEO_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_READER))
+#define IS_VIDEO_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_READER))
+#define VIDEO_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_READER, VideoReaderClass))
+
+typedef struct _VideoReader VideoReader;
+typedef struct _VideoReaderClass VideoReaderClass;
+
+#define TYPE_VIDEO_METADATA (video_metadata_get_type ())
+#define VIDEO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_METADATA, VideoMetadata))
+#define VIDEO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_METADATA, VideoMetadataClass))
+#define IS_VIDEO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_METADATA))
+#define IS_VIDEO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_METADATA))
+#define VIDEO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_METADATA, VideoMetadataClass))
+
+typedef struct _VideoMetadata VideoMetadata;
+typedef struct _VideoMetadataClass VideoMetadataClass;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _video_reader_unref0(var) ((var == NULL) ? NULL : (var = (video_reader_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL)))
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+
+
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GFile* library_files_generate_unique_file (const gchar* basename, MediaMetadata* metadata, time_t ts, gboolean* collision, GError** error);
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+MetadataDateTime* media_metadata_get_creation_date_time (MediaMetadata* self);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+GFile* app_dirs_get_baked_import_dir (time_t tm);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_use_lowercase_filenames (ConfigurationFacade* self);
+GFile* generate_unique_file (GFile* dir, const gchar* basename, gboolean* collision, GError** error);
+GFile* library_files_duplicate (GFile* src, GFileProgressCallback progress_callback, void* progress_callback_target, gboolean blacklist, GError** error);
+time_t query_file_modified (GFile* file, GError** error);
+gboolean video_reader_is_supported_video_file (GFile* file);
+gpointer video_reader_ref (gpointer instance);
+void video_reader_unref (gpointer instance);
+GParamSpec* param_spec_video_reader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_video_reader (GValue* value, gpointer v_object);
+void value_take_video_reader (GValue* value, gpointer v_object);
+gpointer value_get_video_reader (const GValue* value);
+GType video_reader_get_type (void) G_GNUC_CONST;
+VideoReader* video_reader_new (GFile* file);
+VideoReader* video_reader_construct (GType object_type, GFile* file);
+GType video_metadata_get_type (void) G_GNUC_CONST;
+VideoMetadata* video_reader_read_metadata (VideoReader* self, GError** error);
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_file_format_get_by_file_extension (GFile* file);
+PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath);
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error);
+void library_monitor_blacklist_file (GFile* file, const gchar* reason);
+void library_monitor_unblacklist_file (GFile* file);
+gchar* md5_file (GFile* file, GError** error);
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 33 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 187 "LibraryFiles.c"
+}
+
+
+GFile* library_files_generate_unique_file (const gchar* basename, MediaMetadata* metadata, time_t ts, gboolean* collision, GError** error) {
+ gboolean _vala_collision = FALSE;
+ GFile* result = NULL;
+ time_t timestamp = 0;
+ time_t _tmp0_ = 0;
+ MediaMetadata* _tmp1_ = NULL;
+ GFile* dir = NULL;
+ time_t _tmp9_ = 0;
+ GFile* _tmp10_ = NULL;
+ gchar* newbasename = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ ConfigFacade* _tmp17_ = NULL;
+ ConfigFacade* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ GFile* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ GFile* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_return_val_if_fail (basename != NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_return_val_if_fail ((metadata == NULL) || IS_MEDIA_METADATA (metadata), NULL);
+#line 18 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp0_ = ts;
+#line 18 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ timestamp = _tmp0_;
+#line 19 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp1_ = metadata;
+#line 19 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp1_ != NULL) {
+#line 226 "LibraryFiles.c"
+ MetadataDateTime* date_time = NULL;
+ MediaMetadata* _tmp2_ = NULL;
+ MetadataDateTime* _tmp3_ = NULL;
+ MetadataDateTime* _tmp4_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp2_ = metadata;
+#line 20 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp3_ = media_metadata_get_creation_date_time (_tmp2_);
+#line 20 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ date_time = _tmp3_;
+#line 21 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp4_ = date_time;
+#line 21 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp4_ != NULL) {
+#line 241 "LibraryFiles.c"
+ MetadataDateTime* _tmp5_ = NULL;
+ time_t _tmp6_ = 0;
+#line 22 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp5_ = date_time;
+#line 22 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp6_ = metadata_date_time_get_timestamp (_tmp5_);
+#line 22 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ timestamp = _tmp6_;
+#line 250 "LibraryFiles.c"
+ } else {
+ time_t _tmp7_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp7_ = timestamp;
+#line 23 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp7_ == ((time_t) 0)) {
+#line 257 "LibraryFiles.c"
+ time_t _tmp8_ = 0;
+#line 24 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp8_ = time (NULL);
+#line 24 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ timestamp = _tmp8_;
+#line 263 "LibraryFiles.c"
+ }
+ }
+#line 19 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 268 "LibraryFiles.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp9_ = timestamp;
+#line 28 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp10_ = app_dirs_get_baked_import_dir (_tmp9_);
+#line 28 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ dir = _tmp10_;
+#line 276 "LibraryFiles.c"
+ {
+ GFile* _tmp11_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp11_ = dir;
+#line 30 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_file_make_directory_with_parents (_tmp11_, NULL, &_inner_error_);
+#line 30 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 285 "LibraryFiles.c"
+ goto __catch451_g_error;
+ }
+ }
+ goto __finally451;
+ __catch451_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp12_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ err = _inner_error_;
+#line 29 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp12_ = err;
+#line 32 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (!g_error_matches (_tmp12_, G_IO_ERROR, G_IO_ERROR_EXISTS)) {
+#line 302 "LibraryFiles.c"
+ GError* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp13_ = err;
+#line 33 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp14_ = _g_error_copy0 (_tmp13_);
+#line 33 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = _tmp14_;
+#line 33 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 313 "LibraryFiles.c"
+ goto __finally451;
+ }
+#line 29 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 318 "LibraryFiles.c"
+ }
+ __finally451:
+#line 29 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 29 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 29 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (dir);
+#line 29 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 329 "LibraryFiles.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp15_ = basename;
+#line 39 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 39 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ newbasename = _tmp16_;
+#line 40 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp17_ = config_facade_get_instance ();
+#line 40 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp18_ = _tmp17_;
+#line 40 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp19_ = configuration_facade_get_use_lowercase_filenames (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 40 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp20_ = _tmp19_;
+#line 40 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (_tmp18_);
+#line 40 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp20_) {
+#line 349 "LibraryFiles.c"
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp21_ = newbasename;
+#line 41 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp22_ = g_utf8_strdown (_tmp21_, (gssize) -1);
+#line 41 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (newbasename);
+#line 41 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ newbasename = _tmp22_;
+#line 360 "LibraryFiles.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp24_ = dir;
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp25_ = newbasename;
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp27_ = generate_unique_file (_tmp24_, _tmp25_, &_tmp26_, &_inner_error_);
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _vala_collision = _tmp26_;
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp23_ = _tmp27_;
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (newbasename);
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (dir);
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 382 "LibraryFiles.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp28_ = _tmp23_;
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp23_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ result = _tmp28_;
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (_tmp23_);
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (newbasename);
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (dir);
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (collision) {
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ *collision = _vala_collision;
+#line 400 "LibraryFiles.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return result;
+#line 404 "LibraryFiles.c"
+}
+
+
+GFile* library_files_duplicate (GFile* src, GFileProgressCallback progress_callback, void* progress_callback_target, gboolean blacklist, GError** error) {
+ GFile* result = NULL;
+ time_t timestamp = 0;
+ MediaMetadata* metadata = NULL;
+ GFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean collision = FALSE;
+ GFile* dest = NULL;
+ GFile* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ MediaMetadata* _tmp30_ = NULL;
+ time_t _tmp31_ = 0;
+ gboolean _tmp32_ = FALSE;
+ GFile* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+ gboolean _tmp37_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_return_val_if_fail (G_IS_FILE (src), NULL);
+#line 48 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ timestamp = (time_t) 0;
+#line 431 "LibraryFiles.c"
+ {
+ time_t _tmp0_ = 0;
+ GFile* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+#line 50 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp1_ = src;
+#line 50 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp2_ = query_file_modified (_tmp1_, &_inner_error_);
+#line 50 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp0_ = _tmp2_;
+#line 50 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 444 "LibraryFiles.c"
+ goto __catch452_g_error;
+ }
+#line 50 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ timestamp = _tmp0_;
+#line 449 "LibraryFiles.c"
+ }
+ goto __finally452;
+ __catch452_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ err = _inner_error_;
+#line 49 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp3_ = src;
+#line 52 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 52 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp5_ = _tmp4_;
+#line 52 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp6_ = err;
+#line 52 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp7_ = _tmp6_->message;
+#line 52 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_critical ("LibraryFiles.vala:52: Unable to access file modification for %s: %s", _tmp5_, _tmp7_);
+#line 52 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp5_);
+#line 49 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 480 "LibraryFiles.c"
+ }
+ __finally452:
+#line 49 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 49 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 49 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 489 "LibraryFiles.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ metadata = NULL;
+#line 56 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp8_ = src;
+#line 56 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp9_ = video_reader_is_supported_video_file (_tmp8_);
+#line 56 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp9_) {
+#line 499 "LibraryFiles.c"
+ VideoReader* reader = NULL;
+ GFile* _tmp10_ = NULL;
+ VideoReader* _tmp11_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp10_ = src;
+#line 57 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp11_ = video_reader_new (_tmp10_);
+#line 57 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ reader = _tmp11_;
+#line 509 "LibraryFiles.c"
+ {
+ VideoMetadata* _tmp12_ = NULL;
+ VideoReader* _tmp13_ = NULL;
+ VideoMetadata* _tmp14_ = NULL;
+ VideoMetadata* _tmp15_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp13_ = reader;
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp14_ = video_reader_read_metadata (_tmp13_, &_inner_error_);
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp12_ = _tmp14_;
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 523 "LibraryFiles.c"
+ goto __catch453_g_error;
+ }
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp15_ = _tmp12_;
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp12_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 59 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ metadata = G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_MEDIA_METADATA, MediaMetadata);
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (_tmp12_);
+#line 536 "LibraryFiles.c"
+ }
+ goto __finally453;
+ __catch453_g_error:
+ {
+ GError* err = NULL;
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ err = _inner_error_;
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 548 "LibraryFiles.c"
+ }
+ __finally453:
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _video_reader_unref0 (reader);
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 58 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 561 "LibraryFiles.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _video_reader_unref0 (reader);
+#line 565 "LibraryFiles.c"
+ } else {
+ PhotoFileReader* reader = NULL;
+ GFile* _tmp16_ = NULL;
+ PhotoFileFormat _tmp17_ = 0;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ PhotoFileReader* _tmp21_ = NULL;
+ PhotoFileReader* _tmp22_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp16_ = src;
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp17_ = photo_file_format_get_by_file_extension (_tmp16_);
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp18_ = src;
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp19_ = g_file_get_path (_tmp18_);
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp20_ = _tmp19_;
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp21_ = photo_file_format_create_reader (_tmp17_, _tmp20_);
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp22_ = _tmp21_;
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp20_);
+#line 64 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ reader = _tmp22_;
+#line 593 "LibraryFiles.c"
+ {
+ PhotoMetadata* _tmp23_ = NULL;
+ PhotoFileReader* _tmp24_ = NULL;
+ PhotoMetadata* _tmp25_ = NULL;
+ PhotoMetadata* _tmp26_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp24_ = reader;
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp25_ = photo_file_reader_read_metadata (_tmp24_, &_inner_error_);
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp23_ = _tmp25_;
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 607 "LibraryFiles.c"
+ goto __catch454_g_error;
+ }
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp26_ = _tmp23_;
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp23_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 67 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ metadata = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_MEDIA_METADATA, MediaMetadata);
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (_tmp23_);
+#line 620 "LibraryFiles.c"
+ }
+ goto __finally454;
+ __catch454_g_error:
+ {
+ GError* err = NULL;
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ err = _inner_error_;
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 632 "LibraryFiles.c"
+ }
+ __finally454:
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 66 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 645 "LibraryFiles.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 649 "LibraryFiles.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp27_ = src;
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp28_ = g_file_get_basename (_tmp27_);
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp29_ = _tmp28_;
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp30_ = metadata;
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp31_ = timestamp;
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp33_ = library_files_generate_unique_file (_tmp29_, _tmp30_, _tmp31_, &_tmp32_, &_inner_error_);
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ collision = _tmp32_;
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp34_ = _tmp33_;
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp29_);
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ dest = _tmp34_;
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 74 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 679 "LibraryFiles.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp35_ = dest;
+#line 75 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp35_ == NULL) {
+#line 685 "LibraryFiles.c"
+ GError* _tmp36_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp36_ = g_error_new_literal (G_FILE_ERROR, G_FILE_ERROR_FAILED, "Unable to generate unique pathname for destination");
+#line 76 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = _tmp36_;
+#line 76 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 76 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (dest);
+#line 76 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 76 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 699 "LibraryFiles.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp37_ = blacklist;
+#line 78 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp37_) {
+#line 705 "LibraryFiles.c"
+ GFile* _tmp38_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp38_ = dest;
+#line 79 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ library_monitor_blacklist_file (_tmp38_, "LibraryFiles.duplicate");
+#line 711 "LibraryFiles.c"
+ }
+ {
+ GFile* _tmp39_ = NULL;
+ GFile* _tmp40_ = NULL;
+ GFileProgressCallback _tmp41_ = NULL;
+ void* _tmp41__target = NULL;
+ gboolean _tmp42_ = FALSE;
+#line 82 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp39_ = src;
+#line 82 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp40_ = dest;
+#line 82 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp41_ = progress_callback;
+#line 82 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp41__target = progress_callback_target;
+#line 82 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_file_copy (_tmp39_, _tmp40_, G_FILE_COPY_ALL_METADATA | G_FILE_COPY_OVERWRITE, NULL, _tmp41_, _tmp41__target, &_inner_error_);
+#line 82 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 731 "LibraryFiles.c"
+ goto __catch455_g_error;
+ }
+#line 83 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp42_ = blacklist;
+#line 83 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp42_) {
+#line 738 "LibraryFiles.c"
+ GFile* _tmp43_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp43_ = dest;
+#line 84 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ library_monitor_unblacklist_file (_tmp43_);
+#line 744 "LibraryFiles.c"
+ }
+ }
+ goto __finally455;
+ __catch455_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ GError* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+ gboolean _tmp50_ = FALSE;
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ err = _inner_error_;
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp44_ = src;
+#line 86 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp45_ = g_file_get_path (_tmp44_);
+#line 86 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp46_ = _tmp45_;
+#line 86 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp47_ = err;
+#line 86 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp48_ = _tmp47_->message;
+#line 86 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_message ("LibraryFiles.vala:86: There was a problem copying %s: %s", _tmp46_, _tmp48_);
+#line 86 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp46_);
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp50_ = blacklist;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp50_) {
+#line 780 "LibraryFiles.c"
+ gchar* _tmp51_ = NULL;
+ GFile* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ GFile* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp52_ = src;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp53_ = md5_file (_tmp52_, &_inner_error_);
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp51_ = _tmp53_;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 801 "LibraryFiles.c"
+ goto __finally455;
+ }
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp55_ = dest;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp56_ = md5_file (_tmp55_, &_inner_error_);
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp54_ = _tmp56_;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp51_);
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 816 "LibraryFiles.c"
+ goto __finally455;
+ }
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp57_ = _tmp51_;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp51_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp58_ = _tmp57_;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp59_ = _tmp54_;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp54_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp60_ = _tmp59_;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp49_ = g_strcmp0 (_tmp58_, _tmp60_) != 0;
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp60_);
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp58_);
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp54_);
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_free0 (_tmp51_);
+#line 841 "LibraryFiles.c"
+ } else {
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp49_ = FALSE;
+#line 845 "LibraryFiles.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (_tmp49_) {
+#line 849 "LibraryFiles.c"
+ GFile* _tmp61_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp61_ = dest;
+#line 88 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ library_monitor_unblacklist_file (_tmp61_);
+#line 855 "LibraryFiles.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 859 "LibraryFiles.c"
+ }
+ __finally455:
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (dest);
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 81 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 872 "LibraryFiles.c"
+ }
+ {
+ GFileInfo* info = NULL;
+ GFile* _tmp62_ = NULL;
+ GFileInfo* _tmp63_ = NULL;
+ guint32 mode = 0U;
+ GFileInfo* _tmp64_ = NULL;
+ guint32 _tmp65_ = 0U;
+ gboolean _tmp66_ = FALSE;
+ GFile* _tmp67_ = NULL;
+ guint32 _tmp68_ = 0U;
+ gboolean _tmp69_ = FALSE;
+#line 93 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp62_ = dest;
+#line 93 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp63_ = g_file_query_info (_tmp62_, G_FILE_ATTRIBUTE_UNIX_MODE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+#line 93 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ info = _tmp63_;
+#line 93 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 893 "LibraryFiles.c"
+ goto __catch456_g_error;
+ }
+#line 94 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp64_ = info;
+#line 94 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp65_ = g_file_info_get_attribute_uint32 (_tmp64_, G_FILE_ATTRIBUTE_UNIX_MODE);
+#line 94 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ mode = _tmp65_ | 0600;
+#line 95 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp67_ = dest;
+#line 95 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp68_ = mode;
+#line 95 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp69_ = g_file_set_attribute_uint32 (_tmp67_, G_FILE_ATTRIBUTE_UNIX_MODE, _tmp68_, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+#line 95 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp66_ = _tmp69_;
+#line 95 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 95 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (info);
+#line 914 "LibraryFiles.c"
+ goto __catch456_g_error;
+ }
+#line 95 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (!_tmp66_) {
+#line 96 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_warning ("LibraryFiles.vala:96: Could not make file writable");
+#line 921 "LibraryFiles.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (info);
+#line 925 "LibraryFiles.c"
+ }
+ goto __finally456;
+ __catch456_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ err = _inner_error_;
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _inner_error_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp70_ = err;
+#line 99 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _tmp71_ = _tmp70_->message;
+#line 99 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_warning ("LibraryFiles.vala:99: Could not make file writable: %s", _tmp71_);
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_error_free0 (err);
+#line 945 "LibraryFiles.c"
+ }
+ __finally456:
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ g_propagate_error (error, _inner_error_);
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _g_object_unref0 (dest);
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 92 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return NULL;
+#line 958 "LibraryFiles.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ result = dest;
+#line 102 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ _media_metadata_unref0 (metadata);
+#line 102 "/home/jens/Source/shotwell/src/LibraryFiles.vala"
+ return result;
+#line 966 "LibraryFiles.c"
+}
+
+
+
diff --git a/src/LibraryMonitor.c b/src/LibraryMonitor.c
new file mode 100644
index 0000000..d7cdd2e
--- /dev/null
+++ b/src/LibraryMonitor.c
@@ -0,0 +1,8885 @@
+/* LibraryMonitor.c generated by valac 0.32.1, the Vala compiler
+ * generated from LibraryMonitor.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/**/
+/* LibraryMonitor uses DirectoryMonitor to track assets in the user's library directory and make*/
+/* sure they're reflected in the application.*/
+/**/
+/* NOTE: There appears to be a bug where prior versions of Shotwell (<= 0.6.x) were not*/
+/* properly loading the file modification timestamp during import. This was no issue*/
+/* before but becomes imperative now with file monitoring. A "proper" algorithm is*/
+/* to reimport an entire photo if the modification time in the database is different*/
+/* than the file's, but that's Real Bad when the user first turns on monitoring, as it*/
+/* will cause a lot of reimports (think of a 10,000 photo database) and will blow away*/
+/* ALL transformations, as they are now suspect.*/
+/**/
+/* So: If the modification time is zero and filesize is the same, simply update the*/
+/* timestamp in the database and move on.*/
+/**/
+/* TODO: Although it seems highly unlikely that a file's timestamp could change but the file size*/
+/* has not and the file really be "changed", it *is* possible, even in the case of complex little*/
+/* animals like photo files. We could be more liberal and treat this case as a metadata-changed*/
+/* situation (since that's a likely case).*/
+/**/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <time.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_LIBRARY_MONITOR_POOL (library_monitor_pool_get_type ())
+#define LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPool))
+#define LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+#define IS_LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR_POOL))
+#define IS_LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR_POOL))
+#define LIBRARY_MONITOR_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+
+typedef struct _LibraryMonitorPool LibraryMonitorPool;
+typedef struct _LibraryMonitorPoolClass LibraryMonitorPoolClass;
+typedef struct _LibraryMonitorPoolPrivate LibraryMonitorPoolPrivate;
+
+#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
+#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
+#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
+#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
+#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+
+typedef struct _DirectoryMonitor DirectoryMonitor;
+typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
+
+#define TYPE_LIBRARY_MONITOR (library_monitor_get_type ())
+#define LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitor))
+#define LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+#define IS_LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR))
+#define IS_LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR))
+#define LIBRARY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+
+typedef struct _LibraryMonitor LibraryMonitor;
+typedef struct _LibraryMonitorClass LibraryMonitorClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _library_monitor_pool_unref0(var) ((var == NULL) ? NULL : (var = (library_monitor_pool_unref (var), NULL)))
+typedef struct _ParamSpecLibraryMonitorPool ParamSpecLibraryMonitorPool;
+typedef struct _DirectoryMonitorPrivate DirectoryMonitorPrivate;
+typedef struct _LibraryMonitorPrivate LibraryMonitorPrivate;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_MEDIA_MONITOR (media_monitor_get_type ())
+#define MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_MONITOR, MediaMonitor))
+#define MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+#define IS_MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_MONITOR))
+#define IS_MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_MONITOR))
+#define MEDIA_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+
+typedef struct _MediaMonitor MediaMonitor;
+typedef struct _MediaMonitorClass MediaMonitorClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+
+#define LIBRARY_MONITOR_TYPE_VERIFY_JOB (library_monitor_verify_job_get_type ())
+#define LIBRARY_MONITOR_VERIFY_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_MONITOR_TYPE_VERIFY_JOB, LibraryMonitorVerifyJob))
+#define LIBRARY_MONITOR_VERIFY_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_MONITOR_TYPE_VERIFY_JOB, LibraryMonitorVerifyJobClass))
+#define LIBRARY_MONITOR_IS_VERIFY_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_MONITOR_TYPE_VERIFY_JOB))
+#define LIBRARY_MONITOR_IS_VERIFY_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_MONITOR_TYPE_VERIFY_JOB))
+#define LIBRARY_MONITOR_VERIFY_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_MONITOR_TYPE_VERIFY_JOB, LibraryMonitorVerifyJobClass))
+
+typedef struct _LibraryMonitorVerifyJob LibraryMonitorVerifyJob;
+typedef struct _LibraryMonitorVerifyJobClass LibraryMonitorVerifyJobClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_TIMED_QUEUE (timed_queue_get_type ())
+#define TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TIMED_QUEUE, TimedQueue))
+#define TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TIMED_QUEUE, TimedQueueClass))
+#define IS_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TIMED_QUEUE))
+#define IS_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TIMED_QUEUE))
+#define TIMED_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TIMED_QUEUE, TimedQueueClass))
+
+typedef struct _TimedQueue TimedQueue;
+typedef struct _TimedQueueClass TimedQueueClass;
+
+#define TYPE_HASH_TIMED_QUEUE (hash_timed_queue_get_type ())
+#define HASH_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HASH_TIMED_QUEUE, HashTimedQueue))
+#define HASH_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HASH_TIMED_QUEUE, HashTimedQueueClass))
+#define IS_HASH_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HASH_TIMED_QUEUE))
+#define IS_HASH_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HASH_TIMED_QUEUE))
+#define HASH_TIMED_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HASH_TIMED_QUEUE, HashTimedQueueClass))
+
+typedef struct _HashTimedQueue HashTimedQueue;
+typedef struct _HashTimedQueueClass HashTimedQueueClass;
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+#define _batch_import_roll_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_roll_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define MEDIA_MONITOR_TYPE_DISCOVERED_FILE (media_monitor_discovered_file_get_type ())
+
+#define TYPE_TOMBSTONE_SOURCE_COLLECTION (tombstone_source_collection_get_type ())
+#define TOMBSTONE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollection))
+#define TOMBSTONE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollectionClass))
+#define IS_TOMBSTONE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION))
+#define IS_TOMBSTONE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE_SOURCE_COLLECTION))
+#define TOMBSTONE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollectionClass))
+
+typedef struct _TombstoneSourceCollection TombstoneSourceCollection;
+typedef struct _TombstoneSourceCollectionClass TombstoneSourceCollectionClass;
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB (library_monitor_find_move_job_get_type ())
+#define LIBRARY_MONITOR_FIND_MOVE_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB, LibraryMonitorFindMoveJob))
+#define LIBRARY_MONITOR_FIND_MOVE_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB, LibraryMonitorFindMoveJobClass))
+#define LIBRARY_MONITOR_IS_FIND_MOVE_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB))
+#define LIBRARY_MONITOR_IS_FIND_MOVE_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB))
+#define LIBRARY_MONITOR_FIND_MOVE_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB, LibraryMonitorFindMoveJobClass))
+
+typedef struct _LibraryMonitorFindMoveJob LibraryMonitorFindMoveJob;
+typedef struct _LibraryMonitorFindMoveJobClass LibraryMonitorFindMoveJobClass;
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+typedef struct _LibraryMonitorAsyncDiscoveryCompletedData LibraryMonitorAsyncDiscoveryCompletedData;
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _LibraryMonitorFindMoveJobPrivate LibraryMonitorFindMoveJobPrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_DATABASE_SOURCE_HOLDING_TANK (database_source_holding_tank_get_type ())
+#define DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank))
+#define DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+#define IS_DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define IS_DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define DATABASE_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+
+typedef struct _DatabaseSourceHoldingTank DatabaseSourceHoldingTank;
+typedef struct _DatabaseSourceHoldingTankClass DatabaseSourceHoldingTankClass;
+
+#define TYPE_MEDIA_SOURCE_HOLDING_TANK (media_source_holding_tank_get_type ())
+#define MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank))
+#define MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+#define IS_MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define IS_MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define MEDIA_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+
+typedef struct _MediaSourceHoldingTank MediaSourceHoldingTank;
+typedef struct _MediaSourceHoldingTankClass MediaSourceHoldingTankClass;
+#define _source_holding_tank_unref0(var) ((var == NULL) ? NULL : (var = (source_holding_tank_unref (var), NULL)))
+#define _library_monitor_verify_job_unref0(var) ((var == NULL) ? NULL : (var = (library_monitor_verify_job_unref (var), NULL)))
+typedef struct _LibraryMonitorVerifyJobPrivate LibraryMonitorVerifyJobPrivate;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _LibraryMonitorVerifyMonitorableData LibraryMonitorVerifyMonitorableData;
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+
+#define TYPE_FILE_IMPORT_JOB (file_import_job_get_type ())
+#define FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILE_IMPORT_JOB, FileImportJob))
+#define FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+#define IS_FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILE_IMPORT_JOB))
+#define IS_FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILE_IMPORT_JOB))
+#define FILE_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+
+typedef struct _FileImportJob FileImportJob;
+typedef struct _FileImportJobClass FileImportJobClass;
+#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+typedef struct _ImportManifestPrivate ImportManifestPrivate;
+
+#define TYPE_BATCH_IMPORT_RESULT (batch_import_result_get_type ())
+#define BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResult))
+#define BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+#define IS_BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_RESULT))
+#define IS_BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_RESULT))
+#define BATCH_IMPORT_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+
+typedef struct _BatchImportResult BatchImportResult;
+typedef struct _BatchImportResultClass BatchImportResultClass;
+typedef struct _BatchImportResultPrivate BatchImportResultPrivate;
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+
+#define TYPE_DUPLICATED_FILE (duplicated_file_get_type ())
+#define DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATED_FILE, DuplicatedFile))
+#define DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+#define IS_DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATED_FILE))
+#define IS_DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATED_FILE))
+#define DUPLICATED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+
+typedef struct _DuplicatedFile DuplicatedFile;
+typedef struct _DuplicatedFileClass DuplicatedFileClass;
+#define _batch_import_result_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_result_unref (var), NULL)))
+
+#define TYPE_TOMBSTONED_FILE (tombstoned_file_get_type ())
+#define TOMBSTONED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONED_FILE, TombstonedFile))
+#define TOMBSTONED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONED_FILE, TombstonedFileClass))
+#define IS_TOMBSTONED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONED_FILE))
+#define IS_TOMBSTONED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONED_FILE))
+#define TOMBSTONED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONED_FILE, TombstonedFileClass))
+
+typedef struct _TombstonedFile TombstonedFile;
+typedef struct _TombstonedFileClass TombstonedFileClass;
+#define _tombstoned_file_unref0(var) ((var == NULL) ? NULL : (var = (tombstoned_file_unref (var), NULL)))
+
+#define TOMBSTONE_TYPE_REASON (tombstone_reason_get_type ())
+
+#define LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB (library_monitor_runtime_find_move_job_get_type ())
+#define LIBRARY_MONITOR_RUNTIME_FIND_MOVE_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB, LibraryMonitorRuntimeFindMoveJob))
+#define LIBRARY_MONITOR_RUNTIME_FIND_MOVE_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB, LibraryMonitorRuntimeFindMoveJobClass))
+#define LIBRARY_MONITOR_IS_RUNTIME_FIND_MOVE_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB))
+#define LIBRARY_MONITOR_IS_RUNTIME_FIND_MOVE_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB))
+#define LIBRARY_MONITOR_RUNTIME_FIND_MOVE_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB, LibraryMonitorRuntimeFindMoveJobClass))
+
+typedef struct _LibraryMonitorRuntimeFindMoveJob LibraryMonitorRuntimeFindMoveJob;
+typedef struct _LibraryMonitorRuntimeFindMoveJobClass LibraryMonitorRuntimeFindMoveJobClass;
+typedef struct _LibraryMonitorRuntimeFindMoveJobPrivate LibraryMonitorRuntimeFindMoveJobPrivate;
+
+#define TYPE_TOMBSTONE (tombstone_get_type ())
+#define TOMBSTONE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE, Tombstone))
+#define TOMBSTONE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE, TombstoneClass))
+#define IS_TOMBSTONE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE))
+#define IS_TOMBSTONE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE))
+#define TOMBSTONE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE, TombstoneClass))
+
+typedef struct _Tombstone Tombstone;
+typedef struct _TombstoneClass TombstoneClass;
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+typedef struct _LibraryMonitorParamSpecVerifyJob LibraryMonitorParamSpecVerifyJob;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _LibraryMonitorPool {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ LibraryMonitorPoolPrivate * priv;
+};
+
+struct _LibraryMonitorPoolClass {
+ GTypeClass parent_class;
+ void (*finalize) (LibraryMonitorPool *self);
+};
+
+struct _LibraryMonitorPoolPrivate {
+ LibraryMonitor* monitor;
+ guint timer_id;
+};
+
+struct _ParamSpecLibraryMonitorPool {
+ GParamSpec parent_instance;
+};
+
+struct _DirectoryMonitor {
+ GObject parent_instance;
+ DirectoryMonitorPrivate * priv;
+};
+
+struct _DirectoryMonitorClass {
+ GObjectClass parent_class;
+ void (*notify_root_deleted) (DirectoryMonitor* self, GFile* root);
+ void (*notify_root_moved) (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+ void (*notify_discovery_started) (DirectoryMonitor* self);
+ void (*internal_notify_file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*notify_file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*internal_notify_directory_discovered) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_directory_discovered) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_discovery_failed) (DirectoryMonitor* self, const gchar* reason);
+ void (*notify_discovery_completed) (DirectoryMonitor* self);
+ void (*notify_file_created) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*notify_file_moved) (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+ void (*notify_file_altered) (DirectoryMonitor* self, GFile* file);
+ void (*notify_file_alteration_completed) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*notify_file_attributes_altered) (DirectoryMonitor* self, GFile* file);
+ void (*notify_file_deleted) (DirectoryMonitor* self, GFile* file);
+ void (*notify_directory_created) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_directory_moved) (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
+ void (*notify_directory_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*notify_directory_alteration_completed) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*notify_directory_attributes_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*notify_directory_deleted) (DirectoryMonitor* self, GFile* dir);
+ void (*notify_closed) (DirectoryMonitor* self);
+ void (*close) (DirectoryMonitor* self);
+ void (*root_moved) (DirectoryMonitor* self, GFile* old_root, GFile* new_root, GFileInfo* new_root_info);
+ void (*root_deleted) (DirectoryMonitor* self, GFile* root);
+ void (*discovery_started) (DirectoryMonitor* self);
+ void (*file_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*directory_discovered) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*discovery_failed) (DirectoryMonitor* self, const gchar* reason);
+ void (*discovery_completed) (DirectoryMonitor* self);
+ void (*file_created) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*file_moved) (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+ void (*file_altered) (DirectoryMonitor* self, GFile* file);
+ void (*file_alteration_completed) (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+ void (*file_attributes_altered) (DirectoryMonitor* self, GFile* file);
+ void (*file_deleted) (DirectoryMonitor* self, GFile* file);
+ void (*directory_created) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*directory_moved) (DirectoryMonitor* self, GFile* old_dir, GFile* new_dir, GFileInfo* new_dir_info);
+ void (*directory_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*directory_alteration_completed) (DirectoryMonitor* self, GFile* dir, GFileInfo* info);
+ void (*directory_attributes_altered) (DirectoryMonitor* self, GFile* dir);
+ void (*directory_deleted) (DirectoryMonitor* self, GFile* dir);
+ void (*closed) (DirectoryMonitor* self);
+};
+
+struct _LibraryMonitor {
+ DirectoryMonitor parent_instance;
+ LibraryMonitorPrivate * priv;
+};
+
+struct _LibraryMonitorClass {
+ DirectoryMonitorClass parent_class;
+};
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _LibraryMonitorPrivate {
+ Workers* workers;
+ GCancellable* cancellable;
+ gboolean auto_import;
+ GeeHashSet* unknown_files;
+ GeeList* monitors;
+ GeeHashMap* discovered;
+ GeeHashSet* import_queue;
+ GeeHashSet* pending_imports;
+ GeeArrayList* batch_import_queue;
+ BatchImportRoll* current_import_roll;
+ time_t last_import_roll_use;
+ BatchImport* current_batch_import;
+ gint checksums_completed;
+ gint checksums_total;
+ guint import_queue_timer_id;
+ GeeQueue* verify_queue;
+ gint outstanding_verify_jobs;
+ gint completed_monitorable_verifies;
+ gint total_monitorable_verifies;
+};
+
+typedef void (*DequeuedCallback) (gconstpointer item, void* user_data);
+typedef enum {
+ MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED,
+ MEDIA_MONITOR_DISCOVERED_FILE_IGNORE,
+ MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN
+} MediaMonitorDiscoveredFile;
+
+struct _LibraryMonitorAsyncDiscoveryCompletedData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ LibraryMonitor* self;
+ GeeHashSet* _tmp0_;
+ gint _tmp1_;
+ gint _tmp2_;
+ GeeArrayList* all_candidates;
+ GeeArrayList* _tmp3_;
+ GeeArrayList* adopted;
+ GeeArrayList* _tmp4_;
+ GeeIterator* _file_it;
+ GeeHashSet* _tmp5_;
+ GeeIterator* _tmp6_;
+ GeeIterator* _tmp7_;
+ gboolean _tmp8_;
+ GFile* file;
+ GeeIterator* _tmp9_;
+ gpointer _tmp10_;
+ GFileInfo* info;
+ GFile* _tmp11_;
+ GFileInfo* _tmp12_;
+ GFileInfo* _tmp13_;
+ GeeArrayList* _tmp14_;
+ GeeCollection* candidates;
+ gboolean associated;
+ GeeList* _monitor_list;
+ GeeList* _tmp15_;
+ GeeList* _tmp16_;
+ gint _monitor_size;
+ GeeList* _tmp17_;
+ gint _tmp18_;
+ gint _tmp19_;
+ gint _monitor_index;
+ gint _tmp20_;
+ gint _tmp21_;
+ gint _tmp22_;
+ MediaMonitor* monitor;
+ GeeList* _tmp23_;
+ gint _tmp24_;
+ gpointer _tmp25_;
+ MediaMonitorDiscoveredFile _result_;
+ MediaMonitor* _tmp26_;
+ GFile* _tmp27_;
+ GFileInfo* _tmp28_;
+ MediaMonitorDiscoveredFile _tmp29_;
+ GeeCollection* _tmp30_;
+ gboolean _tmp31_;
+ MediaMonitorDiscoveredFile _tmp32_;
+ MediaMonitorDiscoveredFile _tmp33_;
+ GeeCollection* _tmp34_;
+ GeeArrayList* _tmp35_;
+ GeeCollection* _tmp36_;
+ gboolean _tmp37_;
+ GeeArrayList* _tmp38_;
+ GFile* _tmp39_;
+ GeeArrayList* _tmp40_;
+ gint _tmp41_;
+ gint _tmp42_;
+ GeeArrayList* job_candidates;
+ GeeArrayList* _tmp43_;
+ GeeArrayList* _tmp44_;
+ GeeArrayList* _tmp45_;
+ gint _tmp46_;
+ Workers* _tmp47_;
+ GFile* _tmp48_;
+ GeeArrayList* _tmp49_;
+ LibraryMonitorFindMoveJob* _tmp50_;
+ LibraryMonitorFindMoveJob* _tmp51_;
+ GeeHashSet* _tmp52_;
+ GeeArrayList* _tmp53_;
+ gint _tmp54_;
+ gint _tmp55_;
+ gchar* _tmp56_;
+ gchar* _tmp57_;
+ gint _tmp58_;
+ gint _tmp59_;
+};
+
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _LibraryMonitorFindMoveJob {
+ BackgroundJob parent_instance;
+ LibraryMonitorFindMoveJobPrivate * priv;
+ GFile* file;
+ GeeCollection* candidates;
+ Monitorable* match;
+ GeeArrayList* losers;
+ GError* err;
+};
+
+struct _LibraryMonitorFindMoveJobClass {
+ BackgroundJobClass parent_class;
+};
+
+struct _LibraryMonitorVerifyJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ LibraryMonitorVerifyJobPrivate * priv;
+ Monitorable* monitorable;
+ MediaMonitor* monitor;
+};
+
+struct _LibraryMonitorVerifyJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (LibraryMonitorVerifyJob *self);
+};
+
+struct _LibraryMonitorVerifyMonitorableData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ LibraryMonitor* self;
+ Monitorable* monitorable;
+ MediaMonitor* monitor;
+ GFile** files;
+ GFile** _tmp0_;
+ gint files_length1;
+ gint _files_size_;
+ GFile** _tmp1_;
+ gint _tmp1__length1;
+ MediaMonitor* _tmp2_;
+ Monitorable* _tmp3_;
+ GFile* _tmp4_;
+ GFile* _tmp5_;
+ GFile** aux_files;
+ MediaMonitor* _tmp6_;
+ Monitorable* _tmp7_;
+ gint _tmp8_;
+ GFile** _tmp9_;
+ gint aux_files_length1;
+ gint _aux_files_size_;
+ GFile** _tmp10_;
+ gint _tmp10__length1;
+ GFile** _tmp11_;
+ gint _tmp11__length1;
+ GFile** aux_file_collection;
+ gint aux_file_collection_length1;
+ gint _aux_file_collection_size_;
+ gint aux_file_it;
+ GFile* _tmp12_;
+ GFile* aux_file;
+ GFile** _tmp13_;
+ gint _tmp13__length1;
+ GFile* _tmp14_;
+ GFile* _tmp15_;
+ gint ctr;
+ gboolean _tmp16_;
+ gint _tmp17_;
+ gint _tmp18_;
+ GFile** _tmp19_;
+ gint _tmp19__length1;
+ GFile* file;
+ GFile** _tmp20_;
+ gint _tmp20__length1;
+ gint _tmp21_;
+ GFile* _tmp22_;
+ GFile* _tmp23_;
+ GFileInfo* info;
+ GFile* _tmp24_;
+ GFileInfo* _tmp25_;
+ GFileInfo* _tmp26_;
+ GFileInfo* _tmp27_;
+ GFile* _tmp28_;
+ GCancellable* _tmp29_;
+ GFileInfo* _tmp30_;
+ GFileInfo* _tmp31_;
+ GError* err;
+ gint _tmp32_;
+ gboolean _tmp33_;
+ GFileInfo* _tmp34_;
+ MediaMonitor* _tmp35_;
+ Monitorable* _tmp36_;
+ gboolean _tmp37_;
+ MediaMonitor* _tmp38_;
+ Monitorable* _tmp39_;
+ gboolean _tmp40_;
+ GFileInfo* _tmp41_;
+ MediaMonitor* _tmp42_;
+ Monitorable* _tmp43_;
+ gboolean _tmp44_;
+ MediaMonitor* _tmp45_;
+ Monitorable* _tmp46_;
+ MediaMonitor* _tmp47_;
+ Monitorable* _tmp48_;
+ GFile* _tmp49_;
+ GFileInfo* _tmp50_;
+ gint _tmp51_;
+ gint _tmp52_;
+ gint _tmp53_;
+ gint _tmp54_;
+ gint _tmp55_;
+ GError * _inner_error_;
+};
+
+typedef void (*BatchImportImportReporter) (ImportManifest* manifest, BatchImportRoll* import_roll, void* user_data);
+struct _ImportManifest {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ImportManifestPrivate * priv;
+ GeeList* imported;
+ GeeList* success;
+ GeeList* camera_failed;
+ GeeList* failed;
+ GeeList* write_failed;
+ GeeList* skipped_photos;
+ GeeList* skipped_files;
+ GeeList* aborted;
+ GeeList* already_imported;
+ GeeList* corrupt_files;
+ GeeList* all;
+};
+
+struct _ImportManifestClass {
+ GTypeClass parent_class;
+ void (*finalize) (ImportManifest *self);
+};
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+struct _BatchImportResult {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportResultPrivate * priv;
+ BatchImportJob* job;
+ GFile* file;
+ gchar* src_identifier;
+ gchar* dest_identifier;
+ ImportResult result;
+ gchar* errmsg;
+ DuplicatedFile* duplicate_of;
+};
+
+struct _BatchImportResultClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportResult *self);
+};
+
+typedef enum {
+ TOMBSTONE_REASON_REMOVED_BY_USER = 0,
+ TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE = 1
+} TombstoneReason;
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _LibraryMonitorRuntimeFindMoveJob {
+ BackgroundJob parent_instance;
+ LibraryMonitorRuntimeFindMoveJobPrivate * priv;
+ GFile* file;
+ GeeCollection* candidates;
+ Monitorable* match;
+ GError* err;
+};
+
+struct _LibraryMonitorRuntimeFindMoveJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+struct _LibraryMonitorParamSpecVerifyJob {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer library_monitor_pool_parent_class = NULL;
+static LibraryMonitorPool* library_monitor_pool_instance;
+static LibraryMonitorPool* library_monitor_pool_instance = NULL;
+static gpointer library_monitor_parent_class = NULL;
+static GeeHashSet* library_monitor_blacklist;
+static GRecMutex __lock_library_monitor_blacklist = {0};
+static GeeHashSet* library_monitor_blacklist = NULL;
+static HashTimedQueue* library_monitor_to_unblacklist;
+static HashTimedQueue* library_monitor_to_unblacklist = NULL;
+extern TombstoneSourceCollection* tombstone_global;
+extern gboolean commandline_options_no_runtime_monitoring;
+static gpointer library_monitor_find_move_job_parent_class = NULL;
+static gpointer library_monitor_runtime_find_move_job_parent_class = NULL;
+static gpointer library_monitor_verify_job_parent_class = NULL;
+
+gpointer library_monitor_pool_ref (gpointer instance);
+void library_monitor_pool_unref (gpointer instance);
+GParamSpec* param_spec_library_monitor_pool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_library_monitor_pool (GValue* value, gpointer v_object);
+void value_take_library_monitor_pool (GValue* value, gpointer v_object);
+gpointer value_get_library_monitor_pool (const GValue* value);
+GType library_monitor_pool_get_type (void) G_GNUC_CONST;
+GType directory_monitor_get_type (void) G_GNUC_CONST;
+GType library_monitor_get_type (void) G_GNUC_CONST;
+#define LIBRARY_MONITOR_POOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolPrivate))
+enum {
+ LIBRARY_MONITOR_POOL_DUMMY_PROPERTY
+};
+static LibraryMonitorPool* library_monitor_pool_new (void);
+static LibraryMonitorPool* library_monitor_pool_construct (GType object_type);
+void library_monitor_pool_init (void);
+void library_monitor_pool_terminate (void);
+static void library_monitor_pool_close (LibraryMonitorPool* self);
+LibraryMonitorPool* library_monitor_pool_get_instance (void);
+LibraryMonitor* library_monitor_pool_get_monitor (LibraryMonitorPool* self);
+void library_monitor_pool_replace (LibraryMonitorPool* self, LibraryMonitor* replacement, gint start_msec_delay);
+static gboolean library_monitor_pool_on_start_monitor (LibraryMonitorPool* self);
+static gboolean _library_monitor_pool_on_start_monitor_gsource_func (gpointer self);
+void directory_monitor_close (DirectoryMonitor* self);
+void directory_monitor_start_discovery (DirectoryMonitor* self);
+static void library_monitor_pool_finalize (LibraryMonitorPool* obj);
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+GType media_monitor_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType monitorable_get_type (void) G_GNUC_CONST;
+GType batch_import_get_type (void) G_GNUC_CONST;
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+static gpointer library_monitor_verify_job_ref (gpointer instance);
+static void library_monitor_verify_job_unref (gpointer instance);
+static GParamSpec* library_monitor_param_spec_verify_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void library_monitor_value_set_verify_job (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void library_monitor_value_take_verify_job (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer library_monitor_value_get_verify_job (const GValue* value) G_GNUC_UNUSED;
+static GType library_monitor_verify_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define LIBRARY_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LIBRARY_MONITOR, LibraryMonitorPrivate))
+enum {
+ LIBRARY_MONITOR_DUMMY_PROPERTY
+};
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+static void library_monitor_on_config_changed (LibraryMonitor* self);
+static void _library_monitor_on_config_changed_configuration_facade_auto_import_from_library_changed (ConfigurationFacade* _sender, gpointer self);
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gpointer timed_queue_ref (gpointer instance);
+void timed_queue_unref (gpointer instance);
+GParamSpec* param_spec_timed_queue (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_timed_queue (GValue* value, gpointer v_object);
+void value_take_timed_queue (GValue* value, gpointer v_object);
+gpointer value_get_timed_queue (const GValue* value);
+GType timed_queue_get_type (void) G_GNUC_CONST;
+GType hash_timed_queue_get_type (void) G_GNUC_CONST;
+#define LIBRARY_MONITOR_MIN_BLACKLIST_DURATION_MSEC (5 * 1000)
+static void library_monitor_on_unblacklist_file (GFile* file);
+static void _library_monitor_on_unblacklist_file_dequeued_callback (gconstpointer item, gpointer self);
+HashTimedQueue* hash_timed_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+HashTimedQueue* hash_timed_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+guint workers_thread_per_cpu_minus_one (void);
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+#define LIBRARY_MONITOR_FLUSH_IMPORT_QUEUE_SEC 3
+#define LIBRARY_MONITOR_IMPORT_ROLL_QUIET_SEC (5 * 60)
+#define LIBRARY_MONITOR_MAX_VERIFY_EXISTING_MEDIA_JOBS 5
+LibraryMonitor* library_monitor_new (GFile* root, gboolean recurse, gboolean monitoring);
+LibraryMonitor* library_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring);
+DirectoryMonitor* directory_monitor_new (GFile* root, gboolean recurse, gboolean monitoring);
+DirectoryMonitor* directory_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring);
+gboolean configuration_facade_get_auto_import_from_library (ConfigurationFacade* self);
+static gboolean library_monitor_on_flush_import_queue (LibraryMonitor* self);
+static gboolean _library_monitor_on_flush_import_queue_gsource_func (gpointer self);
+static void library_monitor_real_close (DirectoryMonitor* base);
+void media_monitor_close (MediaMonitor* self);
+static void library_monitor_add_to_discovered_list (LibraryMonitor* self, MediaMonitor* monitor, Monitorable* monitorable);
+static MediaMonitor* library_monitor_get_monitor_for_monitorable (LibraryMonitor* self, Monitorable* monitorable);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+MediaSourceCollection* media_monitor_get_media_source_collection (MediaMonitor* self);
+gboolean source_collection_holds_type_of_source (SourceCollection* self, DataSource* source);
+gchar* data_object_to_string (DataObject* self);
+static void library_monitor_real_discovery_started (DirectoryMonitor* base);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+MediaMonitor* media_source_collection_create_media_monitor (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable);
+void media_monitor_notify_discovery_started (MediaMonitor* self);
+static void library_monitor_real_file_discovered (DirectoryMonitor* base, GFile* file, GFileInfo* info);
+GType media_monitor_discovered_file_get_type (void) G_GNUC_CONST;
+MediaMonitorDiscoveredFile media_monitor_notify_file_discovered (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable);
+GType tombstone_source_collection_get_type (void) G_GNUC_CONST;
+gboolean tombstone_source_collection_matches (TombstoneSourceCollection* self, GFile* file);
+static gboolean library_monitor_is_supported_filetype (LibraryMonitor* self, GFile* file);
+static void library_monitor_real_discovery_completed (DirectoryMonitor* base);
+static void library_monitor_async_discovery_completed (LibraryMonitor* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void library_monitor_async_discovery_completed_finish (LibraryMonitor* self, GAsyncResult* _res_);
+static void library_monitor_async_discovery_completed_data_free (gpointer _data);
+static gboolean library_monitor_async_discovery_completed_co (LibraryMonitorAsyncDiscoveryCompletedData* _data_);
+static void library_monitor_discovery_stage_completed (LibraryMonitor* self);
+GFileInfo* directory_monitor_get_file_info (DirectoryMonitor* self, GFile* file);
+GeeCollection* media_monitor_candidates_for_unknown_file (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static LibraryMonitorFindMoveJob* library_monitor_find_move_job_new (LibraryMonitor* owner, GFile* file, GeeCollection* candidates);
+static LibraryMonitorFindMoveJob* library_monitor_find_move_job_construct (GType object_type, LibraryMonitor* owner, GFile* file, GeeCollection* candidates);
+static GType library_monitor_find_move_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static gboolean _library_monitor_async_discovery_completed_co_gsource_func (gpointer self);
+void directory_monitor_mdbg (const gchar* msg);
+static void library_monitor_report_checksum_job_completed (LibraryMonitor* self);
+static void library_monitor_on_find_move_completed (LibraryMonitor* self, BackgroundJob* j);
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+void media_monitor_update_master_file (MediaMonitor* self, Monitorable* monitorable, GFile* file);
+static void library_monitor_on_find_move_cancelled (LibraryMonitor* self, BackgroundJob* j);
+static void library_monitor_enqueue_verify_monitorable (LibraryMonitor* self, Monitorable* monitorable, MediaMonitor* monitor);
+GeeCollection* data_collection_get_all (DataCollection* self);
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType database_source_holding_tank_get_type (void) G_GNUC_CONST;
+GType media_source_holding_tank_get_type (void) G_GNUC_CONST;
+MediaSourceHoldingTank* media_source_collection_get_offline_bin (MediaSourceCollection* self);
+GeeCollection* source_holding_tank_get_all (SourceHoldingTank* self);
+static void library_monitor_enqueue_import_many (LibraryMonitor* self, GeeCollection* files);
+void tombstone_source_collection_launch_scan (TombstoneSourceCollection* self, DirectoryMonitor* monitor, GCancellable* cancellable);
+static LibraryMonitorVerifyJob* library_monitor_verify_job_new (Monitorable* monitorable, MediaMonitor* monitor);
+static LibraryMonitorVerifyJob* library_monitor_verify_job_construct (GType object_type, Monitorable* monitorable, MediaMonitor* monitor);
+static void library_monitor_execute_next_verify_job (LibraryMonitor* self);
+static void library_monitor_verify_monitorable (LibraryMonitor* self, Monitorable* monitorable, MediaMonitor* monitor, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void library_monitor_verify_monitorable_finish (LibraryMonitor* self, GAsyncResult* _res_);
+static void library_monitor_verify_monitorable_data_free (gpointer _data);
+static gboolean library_monitor_verify_monitorable_co (LibraryMonitorVerifyMonitorableData* _data_);
+GFile* media_monitor_get_master_file (MediaMonitor* self, Monitorable* monitorable);
+GFile** media_monitor_get_auxilliary_backing_files (MediaMonitor* self, Monitorable* monitorable, int* result_length1);
+static void _vala_array_add296 (GFile*** array, int* length, int* size, GFile* value);
+#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
+#define DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES UTIL_FILE_ATTRIBUTES
+#define DIRECTORY_MONITOR_FILE_INFO_FLAGS G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
+#define DIRECTORY_MONITOR_DEFAULT_PRIORITY G_PRIORITY_LOW
+static void library_monitor_verify_monitorable_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
+gboolean media_monitor_is_offline (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_update_online (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_update_offline (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_update_backing_file_info (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info);
+static gboolean _library_monitor_verify_monitorable_co_gsource_func (gpointer self);
+static void library_monitor_import_unrepresented_files (LibraryMonitor* self);
+static void library_monitor_cancel_batch_imports (LibraryMonitor* self);
+static void library_monitor_enqueue_import (LibraryMonitor* self, GFile* file);
+gboolean library_monitor_is_blacklisted (GFile* file);
+static void library_monitor_remove_queued_import (LibraryMonitor* self, GFile* file);
+gulong now_sec (void);
+BatchImportRoll* batch_import_roll_new (void);
+BatchImportRoll* batch_import_roll_construct (GType object_type);
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+FileImportJob* file_import_job_new (GFile* file_or_dir, gboolean copy_to_library);
+FileImportJob* file_import_job_construct (GType object_type, GFile* file_or_dir, gboolean copy_to_library);
+GType file_import_job_get_type (void) G_GNUC_CONST;
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+void batch_import_set_untrash_duplicates (BatchImport* self, gboolean untrash_duplicates);
+void batch_import_set_mark_duplicates_online (BatchImport* self, gboolean mark_duplicates_online);
+static void library_monitor_schedule_next_batch_import (LibraryMonitor* self);
+static void library_monitor_on_import_preparing (LibraryMonitor* self);
+static void _library_monitor_on_import_preparing_batch_import_preparing (BatchImport* _sender, gpointer self);
+static void library_monitor_on_import_progress (LibraryMonitor* self, guint64 completed_bytes, guint64 total_bytes);
+static void _library_monitor_on_import_progress_batch_import_progress (BatchImport* _sender, guint64 completed_bytes, guint64 total_bytes, gpointer self);
+static void library_monitor_on_import_complete (LibraryMonitor* self, BatchImport* batch_import, ImportManifest* manifest, BatchImportRoll* import_roll);
+static void _library_monitor_on_import_complete_batch_import_import_complete (BatchImport* _sender, ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
+void batch_import_schedule (BatchImport* self);
+static void library_monitor_discard_current_batch_import (LibraryMonitor* self);
+void batch_import_user_halt (BatchImport* self);
+gpointer batch_import_result_ref (gpointer instance);
+void batch_import_result_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_result (GValue* value, gpointer v_object);
+void value_take_batch_import_result (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_result (const GValue* value);
+GType batch_import_result_get_type (void) G_GNUC_CONST;
+GType import_result_get_type (void) G_GNUC_CONST;
+GType duplicated_file_get_type (void) G_GNUC_CONST;
+gpointer tombstoned_file_ref (gpointer instance);
+void tombstoned_file_unref (gpointer instance);
+GParamSpec* param_spec_tombstoned_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_tombstoned_file (GValue* value, gpointer v_object);
+void value_take_tombstoned_file (GValue* value, gpointer v_object);
+gpointer value_get_tombstoned_file (const GValue* value);
+GType tombstoned_file_get_type (void) G_GNUC_CONST;
+TombstonedFile* tombstoned_file_new (GFile* file, gint64 filesize, const gchar* md5);
+TombstonedFile* tombstoned_file_construct (GType object_type, GFile* file, gint64 filesize, const gchar* md5);
+GType tombstone_reason_get_type (void) G_GNUC_CONST;
+GQuark database_error_quark (void);
+void tombstone_entomb_many_files (GeeCollection* files, TombstoneReason reason, GError** error);
+void app_window_database_error (GError* err);
+void library_monitor_blacklist_file (GFile* file, const gchar* reason);
+void library_monitor_unblacklist_file (GFile* file);
+gboolean timed_queue_contains (TimedQueue* self, gconstpointer item);
+gboolean timed_queue_enqueue (TimedQueue* self, gconstpointer item);
+MediaSourceCollection* media_collection_registry_get_collection_for_file (MediaCollectionRegistry* self, GFile* file);
+GeeCollection* directory_monitor_get_files (DirectoryMonitor* self);
+gboolean media_monitor_is_file_represented (MediaMonitor* self, GFile* file);
+static void library_monitor_runtime_unknown_file_discovered (LibraryMonitor* self, GFile* file);
+static void library_monitor_real_notify_file_created (DirectoryMonitor* base, GFile* file, GFileInfo* info);
+void directory_monitor_notify_file_created (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+gboolean media_monitor_notify_file_created (MediaMonitor* self, GFile* file, GFileInfo* info);
+gchar* media_monitor_to_string (MediaMonitor* self);
+const gchar* media_monitor_discovered_file_to_string (MediaMonitorDiscoveredFile self);
+static LibraryMonitorRuntimeFindMoveJob* library_monitor_runtime_find_move_job_new (LibraryMonitor* owner, GFile* file, GeeCollection* candidates);
+static LibraryMonitorRuntimeFindMoveJob* library_monitor_runtime_find_move_job_construct (GType object_type, LibraryMonitor* owner, GFile* file, GeeCollection* candidates);
+static GType library_monitor_runtime_find_move_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static void library_monitor_on_runtime_find_move_completed (LibraryMonitor* self, BackgroundJob* j);
+static void library_monitor_real_notify_file_moved (DirectoryMonitor* base, GFile* old_file, GFile* new_file, GFileInfo* new_info);
+void directory_monitor_notify_file_moved (DirectoryMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+gboolean media_monitor_notify_file_moved (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+static void library_monitor_real_notify_file_altered (DirectoryMonitor* base, GFile* file);
+void directory_monitor_notify_file_altered (DirectoryMonitor* self, GFile* file);
+gboolean media_monitor_notify_file_altered (MediaMonitor* self, GFile* file);
+static void library_monitor_real_notify_file_attributes_altered (DirectoryMonitor* base, GFile* file);
+void directory_monitor_notify_file_attributes_altered (DirectoryMonitor* self, GFile* file);
+gboolean media_monitor_notify_file_attributes_altered (MediaMonitor* self, GFile* file);
+static void library_monitor_real_notify_file_alteration_completed (DirectoryMonitor* base, GFile* file, GFileInfo* info);
+void directory_monitor_notify_file_alteration_completed (DirectoryMonitor* self, GFile* file, GFileInfo* info);
+gboolean media_monitor_notify_file_alteration_completed (MediaMonitor* self, GFile* file, GFileInfo* info);
+static void library_monitor_real_notify_file_deleted (DirectoryMonitor* base, GFile* file);
+void directory_monitor_notify_file_deleted (DirectoryMonitor* self, GFile* file);
+gboolean media_monitor_notify_file_deleted (MediaMonitor* self, GFile* file);
+GType tombstone_get_type (void) G_GNUC_CONST;
+Tombstone* tombstone_source_collection_locate (TombstoneSourceCollection* self, GFile* file);
+void tombstone_source_collection_resurrect (TombstoneSourceCollection* self, Tombstone* tombstone);
+static void g_cclosure_user_marshal_VOID__INT_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__UINT64_UINT64 (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+enum {
+ LIBRARY_MONITOR_FIND_MOVE_JOB_DUMMY_PROPERTY
+};
+static void _library_monitor_on_find_move_completed_completion_callback (BackgroundJob* job, gpointer self);
+static void _library_monitor_on_find_move_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+void background_job_set_completion_priority (BackgroundJob* self, gint priority);
+static void library_monitor_find_move_job_real_execute (BackgroundJob* base);
+GFile* media_source_get_master_file (MediaSource* self);
+gchar* md5_file (GFile* file, GError** error);
+gchar* media_source_get_master_md5 (MediaSource* self);
+static void library_monitor_find_move_job_finalize (BackgroundJob* obj);
+enum {
+ LIBRARY_MONITOR_RUNTIME_FIND_MOVE_JOB_DUMMY_PROPERTY
+};
+static void _library_monitor_on_runtime_find_move_completed_completion_callback (BackgroundJob* job, gpointer self);
+static void library_monitor_runtime_find_move_job_real_execute (BackgroundJob* base);
+static void library_monitor_runtime_find_move_job_finalize (BackgroundJob* obj);
+enum {
+ LIBRARY_MONITOR_VERIFY_JOB_DUMMY_PROPERTY
+};
+static void library_monitor_verify_job_finalize (LibraryMonitorVerifyJob* obj);
+static void library_monitor_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static LibraryMonitorPool* library_monitor_pool_construct (GType object_type) {
+ LibraryMonitorPool* self = NULL;
+#line 38 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = (LibraryMonitorPool*) g_type_create_instance (object_type);
+#line 38 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self;
+#line 1218 "LibraryMonitor.c"
+}
+
+
+static LibraryMonitorPool* library_monitor_pool_new (void) {
+#line 38 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return library_monitor_pool_construct (TYPE_LIBRARY_MONITOR_POOL);
+#line 1225 "LibraryMonitor.c"
+}
+
+
+void library_monitor_pool_init (void) {
+}
+
+
+void library_monitor_pool_terminate (void) {
+ LibraryMonitorPool* _tmp0_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = library_monitor_pool_instance;
+#line 45 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_ != NULL) {
+#line 1239 "LibraryMonitor.c"
+ LibraryMonitorPool* _tmp1_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_pool_instance;
+#line 46 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_close (_tmp1_);
+#line 1245 "LibraryMonitor.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _library_monitor_pool_unref0 (library_monitor_pool_instance);
+#line 48 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_instance = NULL;
+#line 1251 "LibraryMonitor.c"
+}
+
+
+static gpointer _library_monitor_pool_ref0 (gpointer self) {
+#line 55 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self ? library_monitor_pool_ref (self) : NULL;
+#line 1258 "LibraryMonitor.c"
+}
+
+
+LibraryMonitorPool* library_monitor_pool_get_instance (void) {
+ LibraryMonitorPool* result = NULL;
+ LibraryMonitorPool* _tmp0_ = NULL;
+ LibraryMonitorPool* _tmp2_ = NULL;
+ LibraryMonitorPool* _tmp3_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = library_monitor_pool_instance;
+#line 52 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_ == NULL) {
+#line 1271 "LibraryMonitor.c"
+ LibraryMonitorPool* _tmp1_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_pool_new ();
+#line 53 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _library_monitor_pool_unref0 (library_monitor_pool_instance);
+#line 53 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_instance = _tmp1_;
+#line 1279 "LibraryMonitor.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = library_monitor_pool_instance;
+#line 55 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _library_monitor_pool_ref0 (_tmp2_);
+#line 55 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = _tmp3_;
+#line 55 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1289 "LibraryMonitor.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1296 "LibraryMonitor.c"
+}
+
+
+LibraryMonitor* library_monitor_pool_get_monitor (LibraryMonitorPool* self) {
+ LibraryMonitor* result = NULL;
+ LibraryMonitor* _tmp0_ = NULL;
+ LibraryMonitor* _tmp1_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_MONITOR_POOL (self), NULL);
+#line 59 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->monitor;
+#line 59 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 59 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = _tmp1_;
+#line 59 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1314 "LibraryMonitor.c"
+}
+
+
+static gboolean _library_monitor_pool_on_start_monitor_gsource_func (gpointer self) {
+ gboolean result;
+ result = library_monitor_pool_on_start_monitor ((LibraryMonitorPool*) self);
+#line 68 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1323 "LibraryMonitor.c"
+}
+
+
+void library_monitor_pool_replace (LibraryMonitorPool* self, LibraryMonitor* replacement, gint start_msec_delay) {
+ LibraryMonitor* _tmp0_ = NULL;
+ LibraryMonitor* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+ LibraryMonitor* _tmp7_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR_POOL (self));
+#line 63 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (replacement));
+#line 64 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_close (self);
+#line 66 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = replacement;
+#line 66 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->monitor);
+#line 66 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->monitor = _tmp1_;
+#line 67 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = start_msec_delay;
+#line 67 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp3_ > 0) {
+#line 1351 "LibraryMonitor.c"
+ guint _tmp4_ = 0U;
+#line 67 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = self->priv->timer_id;
+#line 67 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _tmp4_ == ((guint) 0);
+#line 1357 "LibraryMonitor.c"
+ } else {
+#line 67 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = FALSE;
+#line 1361 "LibraryMonitor.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp2_) {
+#line 1365 "LibraryMonitor.c"
+ gint _tmp5_ = 0;
+ guint _tmp6_ = 0U;
+#line 68 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = start_msec_delay;
+#line 68 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) _tmp5_, _library_monitor_pool_on_start_monitor_gsource_func, library_monitor_pool_ref (self), library_monitor_pool_unref);
+#line 68 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->timer_id = _tmp6_;
+#line 1374 "LibraryMonitor.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = self->priv->monitor;
+#line 70 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (self, "monitor-installed", _tmp7_);
+#line 1380 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_pool_close (LibraryMonitorPool* self) {
+ LibraryMonitor* _tmp0_ = NULL;
+ LibraryMonitor* _tmp1_ = NULL;
+ LibraryMonitor* closed = NULL;
+ LibraryMonitor* _tmp2_ = NULL;
+ LibraryMonitor* _tmp3_ = NULL;
+ LibraryMonitor* _tmp4_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR_POOL (self));
+#line 74 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->monitor;
+#line 74 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_ == NULL) {
+#line 75 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 1399 "LibraryMonitor.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->monitor;
+#line 77 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 78 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->monitor;
+#line 78 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 78 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ closed = _tmp3_;
+#line 79 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->monitor);
+#line 79 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->monitor = NULL;
+#line 81 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = closed;
+#line 81 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (self, "monitor-destroyed", _tmp4_);
+#line 73 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (closed);
+#line 1421 "LibraryMonitor.c"
+}
+
+
+static gboolean library_monitor_pool_on_start_monitor (LibraryMonitorPool* self) {
+ gboolean result = FALSE;
+ LibraryMonitor* _tmp0_ = NULL;
+ LibraryMonitor* _tmp1_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_MONITOR_POOL (self), FALSE);
+#line 86 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->timer_id = (guint) 0;
+#line 88 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->monitor;
+#line 88 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_ == NULL) {
+#line 89 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1441 "LibraryMonitor.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->monitor;
+#line 91 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_start_discovery (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 93 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = FALSE;
+#line 93 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1451 "LibraryMonitor.c"
+}
+
+
+static void value_library_monitor_pool_init (GValue* value) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 1458 "LibraryMonitor.c"
+}
+
+
+static void value_library_monitor_pool_free_value (GValue* value) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (value->data[0].v_pointer) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_unref (value->data[0].v_pointer);
+#line 1467 "LibraryMonitor.c"
+ }
+}
+
+
+static void value_library_monitor_pool_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (src_value->data[0].v_pointer) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ dest_value->data[0].v_pointer = library_monitor_pool_ref (src_value->data[0].v_pointer);
+#line 1477 "LibraryMonitor.c"
+ } else {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1481 "LibraryMonitor.c"
+ }
+}
+
+
+static gpointer value_library_monitor_pool_peek_pointer (const GValue* value) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 1489 "LibraryMonitor.c"
+}
+
+
+static gchar* value_library_monitor_pool_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (collect_values[0].v_pointer) {
+#line 1496 "LibraryMonitor.c"
+ LibraryMonitorPool* object;
+ object = collect_values[0].v_pointer;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1503 "LibraryMonitor.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1507 "LibraryMonitor.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = library_monitor_pool_ref (object);
+#line 1511 "LibraryMonitor.c"
+ } else {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 1515 "LibraryMonitor.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return NULL;
+#line 1519 "LibraryMonitor.c"
+}
+
+
+static gchar* value_library_monitor_pool_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ LibraryMonitorPool** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!object_p) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1530 "LibraryMonitor.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!value->data[0].v_pointer) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *object_p = NULL;
+#line 1536 "LibraryMonitor.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1540 "LibraryMonitor.c"
+ } else {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *object_p = library_monitor_pool_ref (value->data[0].v_pointer);
+#line 1544 "LibraryMonitor.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return NULL;
+#line 1548 "LibraryMonitor.c"
+}
+
+
+GParamSpec* param_spec_library_monitor_pool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecLibraryMonitorPool* spec;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_LIBRARY_MONITOR_POOL), NULL);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return G_PARAM_SPEC (spec);
+#line 1562 "LibraryMonitor.c"
+}
+
+
+gpointer value_get_library_monitor_pool (const GValue* value) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_LIBRARY_MONITOR_POOL), NULL);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 1571 "LibraryMonitor.c"
+}
+
+
+void value_set_library_monitor_pool (GValue* value, gpointer v_object) {
+ LibraryMonitorPool* old;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_LIBRARY_MONITOR_POOL));
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (v_object) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_LIBRARY_MONITOR_POOL));
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_ref (value->data[0].v_pointer);
+#line 1591 "LibraryMonitor.c"
+ } else {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 1595 "LibraryMonitor.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (old) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_unref (old);
+#line 1601 "LibraryMonitor.c"
+ }
+}
+
+
+void value_take_library_monitor_pool (GValue* value, gpointer v_object) {
+ LibraryMonitorPool* old;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_LIBRARY_MONITOR_POOL));
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (v_object) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_LIBRARY_MONITOR_POOL));
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 1620 "LibraryMonitor.c"
+ } else {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 1624 "LibraryMonitor.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (old) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_unref (old);
+#line 1630 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_pool_class_init (LibraryMonitorPoolClass * klass) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_pool_parent_class = g_type_class_peek_parent (klass);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((LibraryMonitorPoolClass *) klass)->finalize = library_monitor_pool_finalize;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_type_class_add_private (klass, sizeof (LibraryMonitorPoolPrivate));
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_new ("monitor_installed", TYPE_LIBRARY_MONITOR_POOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_LIBRARY_MONITOR);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_new ("monitor_destroyed", TYPE_LIBRARY_MONITOR_POOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_LIBRARY_MONITOR);
+#line 1646 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_pool_instance_init (LibraryMonitorPool * self) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv = LIBRARY_MONITOR_POOL_GET_PRIVATE (self);
+#line 31 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->monitor = NULL;
+#line 32 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->timer_id = (guint) 0;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->ref_count = 1;
+#line 1659 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_pool_finalize (LibraryMonitorPool* obj) {
+ LibraryMonitorPool * self;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPool);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_handlers_destroy (self);
+#line 31 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->monitor);
+#line 1671 "LibraryMonitor.c"
+}
+
+
+GType library_monitor_pool_get_type (void) {
+ static volatile gsize library_monitor_pool_type_id__volatile = 0;
+ if (g_once_init_enter (&library_monitor_pool_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_library_monitor_pool_init, value_library_monitor_pool_free_value, value_library_monitor_pool_copy_value, value_library_monitor_pool_peek_pointer, "p", value_library_monitor_pool_collect_value, "p", value_library_monitor_pool_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryMonitorPoolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_monitor_pool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryMonitorPool), 0, (GInstanceInitFunc) library_monitor_pool_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType library_monitor_pool_type_id;
+ library_monitor_pool_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LibraryMonitorPool", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&library_monitor_pool_type_id__volatile, library_monitor_pool_type_id);
+ }
+ return library_monitor_pool_type_id__volatile;
+}
+
+
+gpointer library_monitor_pool_ref (gpointer instance) {
+ LibraryMonitorPool* self;
+ self = instance;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return instance;
+#line 1696 "LibraryMonitor.c"
+}
+
+
+void library_monitor_pool_unref (gpointer instance) {
+ LibraryMonitorPool* self;
+ self = instance;
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ LIBRARY_MONITOR_POOL_GET_CLASS (self)->finalize (self);
+#line 28 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1709 "LibraryMonitor.c"
+ }
+}
+
+
+static void _library_monitor_on_config_changed_configuration_facade_auto_import_from_library_changed (ConfigurationFacade* _sender, gpointer self) {
+#line 247 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_config_changed ((LibraryMonitor*) self);
+#line 1717 "LibraryMonitor.c"
+}
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 206 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1726 "LibraryMonitor.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 206 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1735 "LibraryMonitor.c"
+}
+
+
+static void _library_monitor_on_unblacklist_file_dequeued_callback (gconstpointer item, gpointer self) {
+#line 207 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_unblacklist_file ((GFile*) item);
+#line 1742 "LibraryMonitor.c"
+}
+
+
+static gboolean _library_monitor_on_flush_import_queue_gsource_func (gpointer self) {
+ gboolean result;
+ result = library_monitor_on_flush_import_queue ((LibraryMonitor*) self);
+#line 243 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 1751 "LibraryMonitor.c"
+}
+
+
+LibraryMonitor* library_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring) {
+ LibraryMonitor * self = NULL;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 236 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (root), NULL);
+#line 237 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = root;
+#line 237 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = recurse;
+#line 237 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = monitoring;
+#line 237 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = (LibraryMonitor*) directory_monitor_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 240 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 240 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 240 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = configuration_facade_get_auto_import_from_library (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 240 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->auto_import = _tmp5_;
+#line 240 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp4_);
+#line 241 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 241 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 241 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), "auto-import-from-library-changed", (GCallback) _library_monitor_on_config_changed_configuration_facade_auto_import_from_library_changed, self, 0);
+#line 241 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp7_);
+#line 243 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) LIBRARY_MONITOR_FLUSH_IMPORT_QUEUE_SEC, _library_monitor_on_flush_import_queue_gsource_func, g_object_ref (self), g_object_unref);
+#line 243 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->import_queue_timer_id = _tmp8_;
+#line 236 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self;
+#line 1800 "LibraryMonitor.c"
+}
+
+
+LibraryMonitor* library_monitor_new (GFile* root, gboolean recurse, gboolean monitoring) {
+#line 236 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return library_monitor_construct (TYPE_LIBRARY_MONITOR, root, recurse, monitoring);
+#line 1807 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_close (DirectoryMonitor* base) {
+ LibraryMonitor * self;
+ GCancellable* _tmp0_ = NULL;
+ guint _tmp13_ = 0U;
+#line 250 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 251 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 251 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_cancellable_cancel (_tmp0_);
+#line 1821 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _monitor_index = 0;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->monitors;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp2_;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _monitor_list;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp5_;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 1849 "LibraryMonitor.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ MediaMonitor* _tmp12_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _monitor_index;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp6_ + 1;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _monitor_index;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _monitor_size;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp7_ < _tmp8_)) {
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 1870 "LibraryMonitor.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_list;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _monitor_index;
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = gee_list_get (_tmp9_, _tmp10_);
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp11_;
+#line 254 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = monitor;
+#line 254 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_close (_tmp12_);
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 1886 "LibraryMonitor.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 1890 "LibraryMonitor.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = self->priv->import_queue_timer_id;
+#line 256 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp13_ != ((guint) 0)) {
+#line 1896 "LibraryMonitor.c"
+ guint _tmp14_ = 0U;
+#line 257 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = self->priv->import_queue_timer_id;
+#line 257 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_source_remove (_tmp14_);
+#line 258 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->import_queue_timer_id = (guint) 0;
+#line 1904 "LibraryMonitor.c"
+ }
+#line 261 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->close (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 1908 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_add_to_discovered_list (LibraryMonitor* self, MediaMonitor* monitor, Monitorable* monitorable) {
+ GeeHashMap* _tmp0_ = NULL;
+ MediaMonitor* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashMap* _tmp7_ = NULL;
+ MediaMonitor* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeSet* _tmp10_ = NULL;
+ Monitorable* _tmp11_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 264 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (monitor));
+#line 264 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 265 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->discovered;
+#line 265 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = monitor;
+#line 265 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 265 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp2_) {
+#line 1935 "LibraryMonitor.c"
+ GeeHashMap* _tmp3_ = NULL;
+ MediaMonitor* _tmp4_ = NULL;
+ GeeHashSet* _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+#line 266 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = self->priv->discovered;
+#line 266 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = monitor;
+#line 266 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = gee_hash_set_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 266 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _tmp5_;
+#line 266 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_SET, GeeSet));
+#line 266 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1952 "LibraryMonitor.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = self->priv->discovered;
+#line 268 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = monitor;
+#line 268 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp8_);
+#line 268 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = (GeeSet*) _tmp9_;
+#line 268 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = monitorable;
+#line 268 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection), _tmp11_);
+#line 268 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1968 "LibraryMonitor.c"
+}
+
+
+static MediaMonitor* library_monitor_get_monitor_for_monitorable (LibraryMonitor* self, Monitorable* monitorable) {
+ MediaMonitor* result = NULL;
+ Monitorable* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_MONITOR (self), NULL);
+#line 271 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 1981 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _monitor_index = 0;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->monitors;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp1_;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _monitor_list;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp4_;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 2009 "LibraryMonitor.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ MediaMonitor* _tmp11_ = NULL;
+ MediaSourceCollection* _tmp12_ = NULL;
+ MediaSourceCollection* _tmp13_ = NULL;
+ Monitorable* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _monitor_index;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp5_ + 1;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _monitor_index;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _monitor_size;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2035 "LibraryMonitor.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _monitor_list;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = gee_list_get (_tmp8_, _tmp9_);
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp10_;
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = monitor;
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = media_monitor_get_media_source_collection (_tmp11_);
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = _tmp12_;
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = monitorable;
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = source_collection_holds_type_of_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_SOURCE, DataSource));
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = _tmp15_;
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 273 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp16_) {
+#line 274 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = monitor;
+#line 274 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 274 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 2067 "LibraryMonitor.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 2071 "LibraryMonitor.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 2075 "LibraryMonitor.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = monitorable;
+#line 277 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_OBJECT, DataObject));
+#line 277 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = _tmp18_;
+#line 277 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_error ("LibraryMonitor.vala:277: Unable to locate MediaMonitor for %s", _tmp19_);
+#line 277 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp19_);
+#line 2087 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_discovery_started (DirectoryMonitor* base) {
+ LibraryMonitor * self;
+ GeeHashMap* _tmp28_ = NULL;
+ GeeHashSet* _tmp29_ = NULL;
+#line 280 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 2097 "LibraryMonitor.c"
+ {
+ GeeIterator* _collection_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _tmp0_;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _collection_it = _tmp5_;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 2126 "LibraryMonitor.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* collection = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ MediaSourceCollection* _tmp11_ = NULL;
+ Workers* _tmp12_ = NULL;
+ GCancellable* _tmp13_ = NULL;
+ MediaMonitor* _tmp14_ = NULL;
+ MediaMonitor* _tmp15_ = NULL;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _collection_it;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp7_) {
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2146 "LibraryMonitor.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _collection_it;
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ collection = (MediaSourceCollection*) _tmp9_;
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = self->priv->monitors;
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = collection;
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = self->priv->workers;
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = self->priv->cancellable;
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = media_source_collection_create_media_monitor (_tmp11_, _tmp12_, _tmp13_);
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = _tmp14_;
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 282 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp15_);
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_collection_unref0 (collection);
+#line 2172 "LibraryMonitor.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_collection_it);
+#line 2176 "LibraryMonitor.c"
+ }
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp16_ = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _monitor_index = 0;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = self->priv->monitors;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = _g_object_ref0 (_tmp16_);
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp17_;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = _monitor_list;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = _tmp19_;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp20_;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 2205 "LibraryMonitor.c"
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gpointer _tmp26_ = NULL;
+ MediaMonitor* _tmp27_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = _monitor_index;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp21_ + 1;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = _monitor_index;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = _monitor_size;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp22_ < _tmp23_)) {
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2226 "LibraryMonitor.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = _monitor_list;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = _monitor_index;
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = gee_list_get (_tmp24_, _tmp25_);
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp26_;
+#line 285 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = monitor;
+#line 285 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_notify_discovery_started (_tmp27_);
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 2242 "LibraryMonitor.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 2246 "LibraryMonitor.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = gee_hash_map_new (TYPE_MEDIA_MONITOR, (GBoxedCopyFunc) g_object_ref, g_object_unref, GEE_TYPE_SET, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 287 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->discovered);
+#line 287 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->discovered = _tmp28_;
+#line 288 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = gee_hash_set_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 288 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->unknown_files);
+#line 288 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->unknown_files = _tmp29_;
+#line 290 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->discovery_started (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 2262 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_file_discovered (DirectoryMonitor* base, GFile* file, GFileInfo* info) {
+ LibraryMonitor * self;
+ Monitorable* representation = NULL;
+ MediaMonitor* representing = NULL;
+ gboolean ignore = FALSE;
+ MediaMonitor* _tmp20_ = NULL;
+ GFile* _tmp36_ = NULL;
+ GFileInfo* _tmp37_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 293 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 293 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 294 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ representation = NULL;
+#line 295 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ representing = NULL;
+#line 296 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ignore = FALSE;
+#line 2286 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _monitor_index = 0;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->monitors;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp1_;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _monitor_list;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp4_;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 2314 "LibraryMonitor.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ MediaMonitorDiscoveredFile _result_ = 0;
+ MediaMonitor* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFileInfo* _tmp13_ = NULL;
+ Monitorable* _tmp14_ = NULL;
+ MediaMonitorDiscoveredFile _tmp15_ = 0;
+ MediaMonitorDiscoveredFile _tmp16_ = 0;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _monitor_index;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp5_ + 1;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _monitor_index;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _monitor_size;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2341 "LibraryMonitor.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _monitor_list;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = gee_list_get (_tmp8_, _tmp9_);
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp10_;
+#line 298 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = monitor;
+#line 298 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = file;
+#line 298 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = info;
+#line 298 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = media_monitor_notify_file_discovered (_tmp11_, _tmp12_, _tmp13_, &_tmp14_);
+#line 298 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (representation);
+#line 298 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ representation = _tmp14_;
+#line 298 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_ = _tmp15_;
+#line 300 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = _result_;
+#line 300 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp16_ == MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED) {
+#line 2369 "LibraryMonitor.c"
+ MediaMonitor* _tmp17_ = NULL;
+ MediaMonitor* _tmp18_ = NULL;
+#line 301 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = monitor;
+#line 301 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 301 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (representing);
+#line 301 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ representing = _tmp18_;
+#line 303 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 303 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2384 "LibraryMonitor.c"
+ } else {
+ MediaMonitorDiscoveredFile _tmp19_ = 0;
+#line 304 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = _result_;
+#line 304 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp19_ == MEDIA_MONITOR_DISCOVERED_FILE_IGNORE) {
+#line 306 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ignore = TRUE;
+#line 308 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 308 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2397 "LibraryMonitor.c"
+ }
+ }
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 2402 "LibraryMonitor.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 2406 "LibraryMonitor.c"
+ }
+#line 312 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = representing;
+#line 312 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp20_ != NULL) {
+#line 2412 "LibraryMonitor.c"
+ gboolean _tmp21_ = FALSE;
+ Monitorable* _tmp22_ = NULL;
+ MediaMonitor* _tmp24_ = NULL;
+ Monitorable* _tmp25_ = NULL;
+#line 313 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = representation;
+#line 313 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp22_ != NULL) {
+#line 2421 "LibraryMonitor.c"
+ gboolean _tmp23_ = FALSE;
+#line 313 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = ignore;
+#line 313 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = !_tmp23_;
+#line 2427 "LibraryMonitor.c"
+ } else {
+#line 313 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = FALSE;
+#line 2431 "LibraryMonitor.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (_tmp21_, "representation != null && !ignore");
+#line 314 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = representing;
+#line 314 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = representation;
+#line 314 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_add_to_discovered_list (self, _tmp24_, _tmp25_);
+#line 2441 "LibraryMonitor.c"
+ } else {
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = ignore;
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp28_) {
+#line 2450 "LibraryMonitor.c"
+ TombstoneSourceCollection* _tmp29_ = NULL;
+ GFile* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = tombstone_global;
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = file;
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = tombstone_source_collection_matches (_tmp29_, _tmp30_);
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = !_tmp31_;
+#line 2462 "LibraryMonitor.c"
+ } else {
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = FALSE;
+#line 2466 "LibraryMonitor.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp27_) {
+#line 2470 "LibraryMonitor.c"
+ GFile* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = file;
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = library_monitor_is_supported_filetype (self, _tmp32_);
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = _tmp33_;
+#line 2479 "LibraryMonitor.c"
+ } else {
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = FALSE;
+#line 2483 "LibraryMonitor.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp26_) {
+#line 2487 "LibraryMonitor.c"
+ GeeHashSet* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+#line 316 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp34_ = self->priv->unknown_files;
+#line 316 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = file;
+#line 316 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp35_);
+#line 2496 "LibraryMonitor.c"
+ }
+ }
+#line 319 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = file;
+#line 319 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp37_ = info;
+#line 319 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->file_discovered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp36_, _tmp37_);
+#line 293 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (representing);
+#line 293 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (representation);
+#line 2509 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_discovery_completed (DirectoryMonitor* base) {
+ LibraryMonitor * self;
+#line 322 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 323 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_async_discovery_completed (self, NULL, NULL);
+#line 2519 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_async_discovery_completed_data_free (gpointer _data) {
+ LibraryMonitorAsyncDiscoveryCompletedData* _data_;
+ _data_ = _data;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->self);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_slice_free (LibraryMonitorAsyncDiscoveryCompletedData, _data_);
+#line 2530 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_async_discovery_completed (LibraryMonitor* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ LibraryMonitorAsyncDiscoveryCompletedData* _data_;
+ LibraryMonitor* _tmp0_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_ = g_slice_new0 (LibraryMonitorAsyncDiscoveryCompletedData);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, library_monitor_async_discovery_completed);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, library_monitor_async_discovery_completed_data_free);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->self = _tmp0_;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_async_discovery_completed_co (_data_);
+#line 2549 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_async_discovery_completed_finish (LibraryMonitor* self, GAsyncResult* _res_) {
+ LibraryMonitorAsyncDiscoveryCompletedData* _data_;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 2557 "LibraryMonitor.c"
+}
+
+
+static gboolean _library_monitor_async_discovery_completed_co_gsource_func (gpointer self) {
+ gboolean result;
+ result = library_monitor_async_discovery_completed_co (self);
+#line 378 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 2566 "LibraryMonitor.c"
+}
+
+
+static gboolean library_monitor_async_discovery_completed_co (LibraryMonitorAsyncDiscoveryCompletedData* _data_) {
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ switch (_data_->_state_) {
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ case 0:
+#line 2575 "LibraryMonitor.c"
+ goto _state_0;
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ case 1:
+#line 2579 "LibraryMonitor.c"
+ goto _state_1;
+ default:
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_assert_not_reached ();
+#line 2584 "LibraryMonitor.c"
+ }
+ _state_0:
+#line 331 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp0_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp0_ = _data_->self->priv->unknown_files;
+#line 331 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp1_ = 0;
+#line 331 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 331 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp2_ = 0;
+#line 331 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp2_ = _data_->_tmp1_;
+#line 331 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp2_ == 0) {
+#line 332 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_discovery_stage_completed (_data_->self);
+#line 334 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 334 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 2607 "LibraryMonitor.c"
+ } else {
+#line 334 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 2611 "LibraryMonitor.c"
+ }
+#line 334 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 334 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 2617 "LibraryMonitor.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp3_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp3_ = gee_array_list_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 337 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->all_candidates = _data_->_tmp3_;
+#line 338 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp4_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp4_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 338 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->adopted = _data_->_tmp4_;
+#line 2631 "LibraryMonitor.c"
+ {
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp5_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp5_ = _data_->self->priv->unknown_files;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp6_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp6_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp5_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_file_it = _data_->_tmp6_;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp7_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp7_ = _data_->_file_it;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp8_ = FALSE;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp8_ = gee_iterator_next (_data_->_tmp7_);
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_data_->_tmp8_) {
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2657 "LibraryMonitor.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp9_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp9_ = _data_->_file_it;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp10_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp10_ = gee_iterator_get (_data_->_tmp9_);
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->file = (GFile*) _data_->_tmp10_;
+#line 340 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp11_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp11_ = _data_->file;
+#line 340 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp12_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp12_ = directory_monitor_get_file_info (G_TYPE_CHECK_INSTANCE_CAST (_data_->self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _data_->_tmp11_);
+#line 340 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->info = _data_->_tmp12_;
+#line 341 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp13_ = NULL;
+#line 341 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp13_ = _data_->info;
+#line 341 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp13_ == NULL) {
+#line 342 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 342 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->file);
+#line 342 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 2691 "LibraryMonitor.c"
+ }
+#line 345 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp14_ = NULL;
+#line 345 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp14_ = _data_->all_candidates;
+#line 345 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 347 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->candidates = NULL;
+#line 348 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->associated = FALSE;
+#line 2703 "LibraryMonitor.c"
+ {
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp15_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp15_ = _data_->self->priv->monitors;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp16_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp16_ = _g_object_ref0 (_data_->_tmp15_);
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_monitor_list = _data_->_tmp16_;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp17_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp17_ = _data_->_monitor_list;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp18_ = 0;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp18_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp19_ = 0;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp19_ = _data_->_tmp18_;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_monitor_size = _data_->_tmp19_;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_monitor_index = -1;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp20_ = 0;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp20_ = _data_->_monitor_index;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_monitor_index = _data_->_tmp20_ + 1;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp21_ = 0;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp21_ = _data_->_monitor_index;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp22_ = 0;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp22_ = _data_->_monitor_size;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_data_->_tmp21_ < _data_->_tmp22_)) {
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2751 "LibraryMonitor.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp23_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp23_ = _data_->_monitor_list;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp24_ = 0;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp24_ = _data_->_monitor_index;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp25_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp25_ = gee_list_get (_data_->_tmp23_, _data_->_tmp24_);
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->monitor = (MediaMonitor*) _data_->_tmp25_;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp26_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp26_ = _data_->monitor;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp27_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp27_ = _data_->file;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp28_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp28_ = _data_->info;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp29_ = 0;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp30_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp30_ = media_monitor_candidates_for_unknown_file (_data_->_tmp26_, _data_->_tmp27_, _data_->_tmp28_, &_data_->_tmp29_);
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_result_ = _data_->_tmp29_;
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->candidates);
+#line 351 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->candidates = _data_->_tmp30_;
+#line 352 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp32_ = 0;
+#line 352 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp32_ = _data_->_result_;
+#line 352 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp32_ == MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED) {
+#line 352 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp31_ = TRUE;
+#line 2799 "LibraryMonitor.c"
+ } else {
+#line 353 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp33_ = 0;
+#line 353 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp33_ = _data_->_result_;
+#line 353 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp31_ = _data_->_tmp33_ == MEDIA_MONITOR_DISCOVERED_FILE_IGNORE;
+#line 2807 "LibraryMonitor.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp31_) {
+#line 354 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->associated = TRUE;
+#line 356 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->monitor);
+#line 356 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 2817 "LibraryMonitor.c"
+ } else {
+#line 357 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp34_ = NULL;
+#line 357 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp34_ = _data_->candidates;
+#line 357 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp34_ != NULL) {
+#line 358 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp35_ = NULL;
+#line 358 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp35_ = _data_->all_candidates;
+#line 358 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp36_ = NULL;
+#line 358 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp36_ = _data_->candidates;
+#line 358 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_array_list_add_all (_data_->_tmp35_, _data_->_tmp36_);
+#line 2835 "LibraryMonitor.c"
+ }
+ }
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->monitor);
+#line 2840 "LibraryMonitor.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->_monitor_list);
+#line 2844 "LibraryMonitor.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp37_ = FALSE;
+#line 362 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp37_ = _data_->associated;
+#line 362 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp37_) {
+#line 363 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp38_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp38_ = _data_->adopted;
+#line 363 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp39_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp39_ = _data_->file;
+#line 363 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp38_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _data_->_tmp39_);
+#line 365 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->candidates);
+#line 365 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 365 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->file);
+#line 365 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 2870 "LibraryMonitor.c"
+ }
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp40_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp40_ = _data_->all_candidates;
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp41_ = 0;
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp41_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp40_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp42_ = 0;
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp42_ = _data_->_tmp41_;
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp42_ > 0) {
+#line 371 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp43_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp43_ = _data_->all_candidates;
+#line 371 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp44_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp44_ = _g_object_ref0 (_data_->_tmp43_);
+#line 371 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->job_candidates = _data_->_tmp44_;
+#line 372 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp45_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp45_ = gee_array_list_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 372 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->all_candidates);
+#line 372 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->all_candidates = _data_->_tmp45_;
+#line 374 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp46_ = 0;
+#line 374 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp46_ = _data_->self->priv->checksums_total;
+#line 374 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->self->priv->checksums_total = _data_->_tmp46_ + 1;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp47_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp47_ = _data_->self->priv->workers;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp48_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp48_ = _data_->file;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp49_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp49_ = _data_->job_candidates;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp50_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp50_ = library_monitor_find_move_job_new (_data_->self, _data_->_tmp48_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp49_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp51_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp51_ = _data_->_tmp50_;
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ workers_enqueue (_data_->_tmp47_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp51_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 375 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _background_job_unref0 (_data_->_tmp51_);
+#line 369 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->job_candidates);
+#line 2936 "LibraryMonitor.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, _library_monitor_async_discovery_completed_co_gsource_func, _data_, NULL);
+#line 379 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_state_ = 1;
+#line 379 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 2944 "LibraryMonitor.c"
+ _state_1:
+ ;
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->candidates);
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->file);
+#line 2953 "LibraryMonitor.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->_file_it);
+#line 2957 "LibraryMonitor.c"
+ }
+#line 383 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp52_ = NULL;
+#line 383 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp52_ = _data_->self->priv->unknown_files;
+#line 383 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp53_ = NULL;
+#line 383 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp53_ = _data_->adopted;
+#line 383 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp52_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp53_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 385 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->self->priv->checksums_completed = 0;
+#line 387 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp54_ = 0;
+#line 387 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp54_ = _data_->self->priv->checksums_total;
+#line 387 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp54_ == 0) {
+#line 388 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_discovery_stage_completed (_data_->self);
+#line 2979 "LibraryMonitor.c"
+ } else {
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp55_ = 0;
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp55_ = _data_->self->priv->checksums_total;
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp56_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp56_ = g_strdup_printf ("%d checksum jobs initiated to verify unknown photo files", _data_->_tmp55_);
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp57_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp57_ = _data_->_tmp56_;
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_data_->_tmp57_);
+#line 390 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_data_->_tmp57_);
+#line 391 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp58_ = 0;
+#line 391 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp58_ = _data_->self->priv->checksums_completed;
+#line 391 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp59_ = 0;
+#line 391 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp59_ = _data_->self->priv->checksums_total;
+#line 391 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (_data_->self, "auto-update-progress", _data_->_tmp58_, _data_->_tmp59_);
+#line 3007 "LibraryMonitor.c"
+ }
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->adopted);
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->all_candidates);
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 3017 "LibraryMonitor.c"
+ } else {
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 3021 "LibraryMonitor.c"
+ }
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 326 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 3027 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_report_checksum_job_completed (LibraryMonitor* self) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 395 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 396 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->checksums_completed;
+#line 396 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->checksums_total;
+#line 396 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (_tmp0_ < _tmp1_, "checksums_completed < checksums_total");
+#line 397 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->checksums_completed;
+#line 397 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->checksums_completed = _tmp2_ + 1;
+#line 399 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = self->priv->checksums_completed;
+#line 399 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = self->priv->checksums_total;
+#line 399 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (self, "auto-update-progress", _tmp3_, _tmp4_);
+#line 401 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = self->priv->checksums_completed;
+#line 401 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = self->priv->checksums_total;
+#line 401 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp5_ == _tmp6_) {
+#line 402 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_discovery_stage_completed (self);
+#line 3065 "LibraryMonitor.c"
+ }
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 406 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 3073 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_on_find_move_completed (LibraryMonitor* self, BackgroundJob* j) {
+ LibraryMonitorFindMoveJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp1_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp2_ = NULL;
+ Monitorable* _tmp3_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp28_ = NULL;
+ GError* _tmp29_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 405 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 406 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = j;
+#line 406 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB, LibraryMonitorFindMoveJob));
+#line 406 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ job = _tmp1_;
+#line 411 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = job;
+#line 411 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_->match;
+#line 411 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 3101 "LibraryMonitor.c"
+ LibraryMonitorFindMoveJob* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp8_ = NULL;
+ Monitorable* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ MediaMonitor* monitor = NULL;
+ LibraryMonitorFindMoveJob* _tmp14_ = NULL;
+ Monitorable* _tmp15_ = NULL;
+ MediaMonitor* _tmp16_ = NULL;
+ MediaMonitor* _tmp17_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp18_ = NULL;
+ Monitorable* _tmp19_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GeeHashSet* _tmp22_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ MediaMonitor* _tmp25_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp26_ = NULL;
+ Monitorable* _tmp27_ = NULL;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = job;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _tmp4_->file;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = job;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _tmp8_->match;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _tmp10_;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = g_strdup_printf ("Found moved master file: %s matches %s", _tmp7_, _tmp11_);
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = _tmp12_;
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp13_);
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp13_);
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp11_);
+#line 412 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 415 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = job;
+#line 415 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = _tmp14_->match;
+#line 415 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = library_monitor_get_monitor_for_monitorable (self, _tmp15_);
+#line 415 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = _tmp16_;
+#line 416 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = monitor;
+#line 416 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = job;
+#line 416 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = _tmp18_->match;
+#line 416 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = job;
+#line 416 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = _tmp20_->file;
+#line 416 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_update_master_file (_tmp17_, _tmp19_, _tmp21_);
+#line 417 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = self->priv->unknown_files;
+#line 417 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = job;
+#line 417 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = _tmp23_->file;
+#line 417 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp24_);
+#line 418 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = monitor;
+#line 418 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = job;
+#line 418 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = _tmp26_->match;
+#line 418 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_add_to_discovered_list (self, _tmp25_, _tmp27_);
+#line 411 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 3193 "LibraryMonitor.c"
+ }
+#line 421 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = job;
+#line 421 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = _tmp28_->err;
+#line 421 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp29_ != NULL) {
+#line 3201 "LibraryMonitor.c"
+ LibraryMonitorFindMoveJob* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ LibraryMonitorFindMoveJob* _tmp34_ = NULL;
+ GError* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = job;
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = _tmp30_->file;
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = g_file_get_path (_tmp31_);
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = _tmp32_;
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp34_ = job;
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = _tmp34_->err;
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = _tmp35_->message;
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_warning ("LibraryMonitor.vala:422: Unable to checksum unknown media file %s: %s", _tmp33_, _tmp36_);
+#line 422 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp33_);
+#line 3227 "LibraryMonitor.c"
+ }
+#line 424 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_report_checksum_job_completed (self);
+#line 405 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _background_job_unref0 (job);
+#line 3233 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_on_find_move_cancelled (LibraryMonitor* self, BackgroundJob* j) {
+#line 427 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 427 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 428 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_report_checksum_job_completed (self);
+#line 3244 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_discovery_stage_completed (LibraryMonitor* self) {
+ gboolean _tmp65_ = FALSE;
+ TombstoneSourceCollection* _tmp67_ = NULL;
+ GCancellable* _tmp68_ = NULL;
+#line 431 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 3254 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _monitor_index = 0;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->monitors;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp1_;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _monitor_list;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp4_;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 3282 "LibraryMonitor.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ GeeSet* monitorables = NULL;
+ GeeHashMap* _tmp11_ = NULL;
+ MediaMonitor* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ GeeSet* _tmp14_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _monitor_index;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp5_ + 1;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _monitor_index;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _monitor_size;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 3307 "LibraryMonitor.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _monitor_list;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = gee_list_get (_tmp8_, _tmp9_);
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp10_;
+#line 433 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = self->priv->discovered;
+#line 433 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = monitor;
+#line 433 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_);
+#line 433 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitorables = (GeeSet*) _tmp13_;
+#line 434 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = monitorables;
+#line 434 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp14_ != NULL) {
+#line 3329 "LibraryMonitor.c"
+ {
+ GeeIterator* _monitorable_it = NULL;
+ GeeSet* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = monitorables;
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitorable_it = _tmp16_;
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 3342 "LibraryMonitor.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ Monitorable* monitorable = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ Monitorable* _tmp21_ = NULL;
+ MediaMonitor* _tmp22_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = _monitorable_it;
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp18_) {
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 3358 "LibraryMonitor.c"
+ }
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = _monitorable_it;
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitorable = (Monitorable*) _tmp20_;
+#line 436 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = monitorable;
+#line 436 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = monitor;
+#line 436 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_enqueue_verify_monitorable (self, _tmp21_, _tmp22_);
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 3374 "LibraryMonitor.c"
+ }
+#line 435 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitorable_it);
+#line 3378 "LibraryMonitor.c"
+ }
+ }
+ {
+ GeeIterator* _object_it = NULL;
+ MediaMonitor* _tmp23_ = NULL;
+ MediaSourceCollection* _tmp24_ = NULL;
+ MediaSourceCollection* _tmp25_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+ GeeIterator* _tmp28_ = NULL;
+ GeeIterator* _tmp29_ = NULL;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = monitor;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = media_monitor_get_media_source_collection (_tmp23_);
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = _tmp24_;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_COLLECTION, DataCollection));
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = _tmp26_;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = _tmp28_;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp27_);
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_collection_unref0 (_tmp25_);
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _object_it = _tmp29_;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 3412 "LibraryMonitor.c"
+ GeeIterator* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp32_ = NULL;
+ gpointer _tmp33_ = NULL;
+ Monitorable* monitorable = NULL;
+ DataObject* _tmp34_ = NULL;
+ Monitorable* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ GeeSet* _tmp37_ = NULL;
+ Monitorable* _tmp41_ = NULL;
+ MediaMonitor* _tmp42_ = NULL;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = _object_it;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = gee_iterator_next (_tmp30_);
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp31_) {
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 3433 "LibraryMonitor.c"
+ }
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = _object_it;
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = gee_iterator_get (_tmp32_);
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ object = (DataObject*) _tmp33_;
+#line 440 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp34_ = object;
+#line 440 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_MONITORABLE, Monitorable));
+#line 440 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitorable = _tmp35_;
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp37_ = monitorables;
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp37_ != NULL) {
+#line 3451 "LibraryMonitor.c"
+ GeeSet* _tmp38_ = NULL;
+ Monitorable* _tmp39_ = NULL;
+ gboolean _tmp40_ = FALSE;
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp38_ = monitorables;
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp39_ = monitorable;
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp40_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_COLLECTION, GeeCollection), _tmp39_);
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = _tmp40_;
+#line 3463 "LibraryMonitor.c"
+ } else {
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = FALSE;
+#line 3467 "LibraryMonitor.c"
+ }
+#line 442 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp36_) {
+#line 443 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 443 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (object);
+#line 443 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 3477 "LibraryMonitor.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp41_ = monitorable;
+#line 445 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp42_ = monitor;
+#line 445 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_enqueue_verify_monitorable (self, _tmp41_, _tmp42_);
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (object);
+#line 3489 "LibraryMonitor.c"
+ }
+#line 439 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_object_it);
+#line 3493 "LibraryMonitor.c"
+ }
+ {
+ GeeIterator* _source_it = NULL;
+ MediaMonitor* _tmp43_ = NULL;
+ MediaSourceCollection* _tmp44_ = NULL;
+ MediaSourceCollection* _tmp45_ = NULL;
+ MediaSourceHoldingTank* _tmp46_ = NULL;
+ MediaSourceHoldingTank* _tmp47_ = NULL;
+ GeeCollection* _tmp48_ = NULL;
+ GeeCollection* _tmp49_ = NULL;
+ GeeIterator* _tmp50_ = NULL;
+ GeeIterator* _tmp51_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp43_ = monitor;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp44_ = media_monitor_get_media_source_collection (_tmp43_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp45_ = _tmp44_;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp46_ = media_source_collection_get_offline_bin (_tmp45_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp47_ = _tmp46_;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp48_ = source_holding_tank_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank));
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp49_ = _tmp48_;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp50_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp51_ = _tmp50_;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp49_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _source_holding_tank_unref0 (_tmp47_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_collection_unref0 (_tmp45_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _source_it = _tmp51_;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 3534 "LibraryMonitor.c"
+ GeeIterator* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp54_ = NULL;
+ gpointer _tmp55_ = NULL;
+ Monitorable* monitorable = NULL;
+ DataSource* _tmp56_ = NULL;
+ Monitorable* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+ GeeSet* _tmp59_ = NULL;
+ Monitorable* _tmp63_ = NULL;
+ MediaMonitor* _tmp64_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp52_ = _source_it;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp53_ = gee_iterator_next (_tmp52_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp53_) {
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 3555 "LibraryMonitor.c"
+ }
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp54_ = _source_it;
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp55_ = gee_iterator_get (_tmp54_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ source = (DataSource*) _tmp55_;
+#line 450 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp56_ = source;
+#line 450 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp57_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_MONITORABLE, Monitorable));
+#line 450 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitorable = _tmp57_;
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp59_ = monitorables;
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp59_ != NULL) {
+#line 3573 "LibraryMonitor.c"
+ GeeSet* _tmp60_ = NULL;
+ Monitorable* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp60_ = monitorables;
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp61_ = monitorable;
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp62_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, GEE_TYPE_COLLECTION, GeeCollection), _tmp61_);
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp58_ = _tmp62_;
+#line 3585 "LibraryMonitor.c"
+ } else {
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp58_ = FALSE;
+#line 3589 "LibraryMonitor.c"
+ }
+#line 452 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp58_) {
+#line 453 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 453 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (source);
+#line 453 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 3599 "LibraryMonitor.c"
+ }
+#line 455 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp63_ = monitorable;
+#line 455 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp64_ = monitor;
+#line 455 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_enqueue_verify_monitorable (self, _tmp63_, _tmp64_);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (source);
+#line 3611 "LibraryMonitor.c"
+ }
+#line 448 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_source_it);
+#line 3615 "LibraryMonitor.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitorables);
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 3621 "LibraryMonitor.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 3625 "LibraryMonitor.c"
+ }
+#line 460 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp65_ = self->priv->auto_import;
+#line 460 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp65_) {
+#line 3631 "LibraryMonitor.c"
+ GeeHashSet* _tmp66_ = NULL;
+#line 461 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp66_ = self->priv->unknown_files;
+#line 461 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_enqueue_import_many (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 3637 "LibraryMonitor.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->discovered);
+#line 464 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->discovered = NULL;
+#line 465 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->unknown_files);
+#line 465 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->unknown_files = NULL;
+#line 469 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp67_ = tombstone_global;
+#line 469 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp68_ = self->priv->cancellable;
+#line 469 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ tombstone_source_collection_launch_scan (_tmp67_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp68_);
+#line 472 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->discovery_completed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 3655 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_enqueue_verify_monitorable (LibraryMonitor* self, Monitorable* monitorable, MediaMonitor* monitor) {
+ gboolean offered = FALSE;
+ GeeQueue* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+ MediaMonitor* _tmp2_ = NULL;
+ LibraryMonitorVerifyJob* _tmp3_ = NULL;
+ LibraryMonitorVerifyJob* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 475 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 475 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 475 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (monitor));
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->verify_queue;
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = monitorable;
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = monitor;
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = library_monitor_verify_job_new (_tmp1_, _tmp2_);
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = gee_queue_offer (_tmp0_, _tmp4_);
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _tmp5_;
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _library_monitor_verify_job_unref0 (_tmp4_);
+#line 476 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ offered = _tmp6_;
+#line 477 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (offered, "offered");
+#line 479 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_execute_next_verify_job (self);
+#line 3696 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_execute_next_verify_job (LibraryMonitor* self) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ LibraryMonitorVerifyJob* job = NULL;
+ GeeQueue* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ LibraryMonitorVerifyJob* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ LibraryMonitorVerifyJob* _tmp9_ = NULL;
+ Monitorable* _tmp10_ = NULL;
+ LibraryMonitorVerifyJob* _tmp11_ = NULL;
+ MediaMonitor* _tmp12_ = NULL;
+#line 482 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->outstanding_verify_jobs;
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_ >= LIBRARY_MONITOR_MAX_VERIFY_EXISTING_MEDIA_JOBS) {
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = TRUE;
+#line 3720 "LibraryMonitor.c"
+ } else {
+ GeeQueue* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->verify_queue;
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = _tmp4_ == 0;
+#line 3733 "LibraryMonitor.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_) {
+#line 484 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 3739 "LibraryMonitor.c"
+ }
+#line 486 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = self->priv->verify_queue;
+#line 486 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_queue_poll (_tmp5_);
+#line 486 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ job = (LibraryMonitorVerifyJob*) _tmp6_;
+#line 487 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = job;
+#line 487 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (_tmp7_ != NULL, "job != null");
+#line 489 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = self->priv->outstanding_verify_jobs;
+#line 489 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->outstanding_verify_jobs = _tmp8_ + 1;
+#line 490 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = job;
+#line 490 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _tmp9_->monitorable;
+#line 490 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = job;
+#line 490 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _tmp11_->monitor;
+#line 490 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_monitorable (self, _tmp10_, _tmp12_, NULL, NULL);
+#line 482 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _library_monitor_verify_job_unref0 (job);
+#line 3767 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_verify_monitorable_data_free (gpointer _data) {
+ LibraryMonitorVerifyMonitorableData* _data_;
+ _data_ = _data;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->monitorable);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->monitor);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->self);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_slice_free (LibraryMonitorVerifyMonitorableData, _data_);
+#line 3782 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_verify_monitorable (LibraryMonitor* self, Monitorable* monitorable, MediaMonitor* monitor, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ LibraryMonitorVerifyMonitorableData* _data_;
+ LibraryMonitor* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+ Monitorable* _tmp2_ = NULL;
+ MediaMonitor* _tmp3_ = NULL;
+ MediaMonitor* _tmp4_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_ = g_slice_new0 (LibraryMonitorVerifyMonitorableData);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, library_monitor_verify_monitorable);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, library_monitor_verify_monitorable_data_free);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->self = _tmp0_;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = monitorable;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->monitorable);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->monitorable = _tmp2_;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = monitor;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->monitor);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->monitor = _tmp4_;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_monitorable_co (_data_);
+#line 3821 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_verify_monitorable_finish (LibraryMonitor* self, GAsyncResult* _res_) {
+ LibraryMonitorVerifyMonitorableData* _data_;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 3829 "LibraryMonitor.c"
+}
+
+
+static void _vala_array_add296 (GFile*** array, int* length, int* size, GFile* value) {
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if ((*length) == (*size)) {
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 3840 "LibraryMonitor.c"
+ }
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ (*array)[(*length)++] = value;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ (*array)[*length] = NULL;
+#line 3846 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_verify_monitorable_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
+ LibraryMonitorVerifyMonitorableData* _data_;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_ = _user_data_;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_source_object_ = source_object;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_res_ = _res_;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_monitorable_co (_data_);
+#line 3860 "LibraryMonitor.c"
+}
+
+
+static gboolean _library_monitor_verify_monitorable_co_gsource_func (gpointer self) {
+ gboolean result;
+ result = library_monitor_verify_monitorable_co (self);
+#line 530 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 3869 "LibraryMonitor.c"
+}
+
+
+static gboolean library_monitor_verify_monitorable_co (LibraryMonitorVerifyMonitorableData* _data_) {
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ switch (_data_->_state_) {
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ case 0:
+#line 3878 "LibraryMonitor.c"
+ goto _state_0;
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ case 1:
+#line 3882 "LibraryMonitor.c"
+ goto _state_1;
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ case 2:
+#line 3886 "LibraryMonitor.c"
+ goto _state_2;
+ default:
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_assert_not_reached ();
+#line 3891 "LibraryMonitor.c"
+ }
+ _state_0:
+#line 494 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp0_ = NULL;
+#line 494 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp0_ = g_new0 (GFile*, 1 + 1);
+#line 494 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->files_length1 = 0;
+#line 494 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_files_size_ = 0;
+#line 494 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->files = _data_->_tmp0_;
+#line 494 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->files_length1 = 1;
+#line 494 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_files_size_ = _data_->files_length1;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp1_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp1__length1 = 0;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp1_ = _data_->files;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp1__length1 = _data_->files_length1;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp2_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp2_ = _data_->monitor;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp3_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp3_ = _data_->monitorable;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp4_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp4_ = media_monitor_get_master_file (_data_->_tmp2_, _data_->_tmp3_);
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp1_[0]);
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp1_[0] = _data_->_tmp4_;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp5_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp5_ = _data_->_tmp1_[0];
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp6_ = NULL;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp6_ = _data_->monitor;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp7_ = NULL;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp7_ = _data_->monitorable;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp8_ = 0;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp9_ = NULL;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp9_ = media_monitor_get_auxilliary_backing_files (_data_->_tmp6_, _data_->_tmp7_, &_data_->_tmp8_);
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_files_length1 = 0;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_aux_files_size_ = 0;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_files = _data_->_tmp9_;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_files_length1 = _data_->_tmp8_;
+#line 497 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_aux_files_size_ = _data_->aux_files_length1;
+#line 498 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp10_ = NULL;
+#line 498 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp10__length1 = 0;
+#line 498 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp10_ = _data_->aux_files;
+#line 498 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp10__length1 = _data_->aux_files_length1;
+#line 498 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp10_ != NULL) {
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp11_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp11__length1 = 0;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp11_ = _data_->aux_files;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp11__length1 = _data_->aux_files_length1;
+#line 3978 "LibraryMonitor.c"
+ {
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_file_collection_length1 = 0;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_aux_file_collection_size_ = 0;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_file_collection = _data_->_tmp11_;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_file_collection_length1 = _data_->_tmp11__length1;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ for (_data_->aux_file_it = 0; _data_->aux_file_it < _data_->_tmp11__length1; _data_->aux_file_it = _data_->aux_file_it + 1) {
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp12_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp12_ = _g_object_ref0 (_data_->aux_file_collection[_data_->aux_file_it]);
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_file = _data_->_tmp12_;
+#line 3996 "LibraryMonitor.c"
+ {
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp13_ = NULL;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp13__length1 = 0;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp13_ = _data_->files;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp13__length1 = _data_->files_length1;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp14_ = NULL;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp14_ = _data_->aux_file;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp15_ = NULL;
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp15_ = _g_object_ref0 (_data_->_tmp14_);
+#line 500 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_array_add296 (&_data_->files, &_data_->files_length1, &_data_->_files_size_, _data_->_tmp15_);
+#line 499 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->aux_file);
+#line 4018 "LibraryMonitor.c"
+ }
+ }
+ }
+ }
+ {
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->ctr = 0;
+#line 4026 "LibraryMonitor.c"
+ {
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp16_ = TRUE;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_data_->_tmp16_) {
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp17_ = 0;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp17_ = _data_->ctr;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->ctr = _data_->_tmp17_ + 1;
+#line 4040 "LibraryMonitor.c"
+ }
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp16_ = FALSE;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp18_ = 0;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp18_ = _data_->ctr;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp19_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp19__length1 = 0;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp19_ = _data_->files;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp19__length1 = _data_->files_length1;
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_data_->_tmp18_ < _data_->_tmp19__length1)) {
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 4060 "LibraryMonitor.c"
+ }
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp20_ = NULL;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp20__length1 = 0;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp20_ = _data_->files;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp20__length1 = _data_->files_length1;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp21_ = 0;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp21_ = _data_->ctr;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp22_ = NULL;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp22_ = _data_->_tmp20_[_data_->_tmp21_];
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp23_ = NULL;
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp23_ = _g_object_ref0 (_data_->_tmp22_);
+#line 504 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->file = _data_->_tmp23_;
+#line 506 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp24_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp24_ = _data_->file;
+#line 506 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp25_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp25_ = directory_monitor_get_file_info (G_TYPE_CHECK_INSTANCE_CAST (_data_->self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _data_->_tmp24_);
+#line 506 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->info = _data_->_tmp25_;
+#line 507 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp26_ = NULL;
+#line 507 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp26_ = _data_->info;
+#line 507 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp26_ == NULL) {
+#line 4100 "LibraryMonitor.c"
+ {
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp28_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp28_ = _data_->file;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp29_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp29_ = _data_->self->priv->cancellable;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_state_ = 1;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_file_query_info_async (_data_->_tmp28_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, DIRECTORY_MONITOR_FILE_INFO_FLAGS, DIRECTORY_MONITOR_DEFAULT_PRIORITY, _data_->_tmp29_, library_monitor_verify_monitorable_ready, _data_);
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 4116 "LibraryMonitor.c"
+ _state_1:
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp30_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp30_ = g_file_query_info_finish (_data_->_tmp28_, _data_->_res_, &_data_->_inner_error_);
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp27_ = _data_->_tmp30_;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 4126 "LibraryMonitor.c"
+ goto __catch474_g_error;
+ }
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp31_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp31_ = _data_->_tmp27_;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp27_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 509 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->info = _data_->_tmp31_;
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->_tmp27_);
+#line 4141 "LibraryMonitor.c"
+ }
+ goto __finally474;
+ __catch474_g_error:
+ {
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->err = _data_->_inner_error_;
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_inner_error_ = NULL;
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (_data_->err);
+#line 4152 "LibraryMonitor.c"
+ }
+ __finally474:
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->file);
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_files = (_vala_array_free (_data_->aux_files, _data_->aux_files_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->files = (_vala_array_free (_data_->files, _data_->files_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_data_->_inner_error_);
+#line 508 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 4171 "LibraryMonitor.c"
+ }
+ }
+#line 517 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp32_ = 0;
+#line 517 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp32_ = _data_->ctr;
+#line 517 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp32_ == 0) {
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp34_ = NULL;
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp34_ = _data_->info;
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp34_ != NULL) {
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp35_ = NULL;
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp35_ = _data_->monitor;
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp36_ = NULL;
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp36_ = _data_->monitorable;
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp37_ = FALSE;
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp37_ = media_monitor_is_offline (_data_->_tmp35_, _data_->_tmp36_);
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp33_ = _data_->_tmp37_;
+#line 4200 "LibraryMonitor.c"
+ } else {
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp33_ = FALSE;
+#line 4204 "LibraryMonitor.c"
+ }
+#line 518 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp33_) {
+#line 519 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp38_ = NULL;
+#line 519 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp38_ = _data_->monitor;
+#line 519 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp39_ = NULL;
+#line 519 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp39_ = _data_->monitorable;
+#line 519 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_update_online (_data_->_tmp38_, _data_->_tmp39_);
+#line 4218 "LibraryMonitor.c"
+ } else {
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp41_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp41_ = _data_->info;
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp41_ == NULL) {
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp42_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp42_ = _data_->monitor;
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp43_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp43_ = _data_->monitorable;
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp44_ = FALSE;
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp44_ = media_monitor_is_offline (_data_->_tmp42_, _data_->_tmp43_);
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp40_ = !_data_->_tmp44_;
+#line 4240 "LibraryMonitor.c"
+ } else {
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp40_ = FALSE;
+#line 4244 "LibraryMonitor.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_tmp40_) {
+#line 521 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp45_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp45_ = _data_->monitor;
+#line 521 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp46_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp46_ = _data_->monitorable;
+#line 521 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_update_offline (_data_->_tmp45_, _data_->_tmp46_);
+#line 4258 "LibraryMonitor.c"
+ }
+ }
+ }
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp47_ = NULL;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp47_ = _data_->monitor;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp48_ = NULL;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp48_ = _data_->monitorable;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp49_ = NULL;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp49_ = _data_->file;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp50_ = NULL;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp50_ = _data_->info;
+#line 524 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_update_backing_file_info (_data_->_tmp47_, _data_->_tmp48_, _data_->_tmp49_, _data_->_tmp50_);
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->info);
+#line 503 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_data_->file);
+#line 4284 "LibraryMonitor.c"
+ }
+ }
+ }
+#line 527 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp51_ = 0;
+#line 527 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp51_ = _data_->self->priv->completed_monitorable_verifies;
+#line 527 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->self->priv->completed_monitorable_verifies = _data_->_tmp51_ + 1;
+#line 528 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp52_ = 0;
+#line 528 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp52_ = _data_->self->priv->completed_monitorable_verifies;
+#line 528 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp53_ = 0;
+#line 528 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp53_ = _data_->self->priv->total_monitorable_verifies;
+#line 528 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (_data_->self, "auto-update-progress", _data_->_tmp52_, _data_->_tmp53_);
+#line 530 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_idle_add_full (DIRECTORY_MONITOR_DEFAULT_PRIORITY, _library_monitor_verify_monitorable_co_gsource_func, _data_, NULL);
+#line 531 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_state_ = 2;
+#line 531 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 4310 "LibraryMonitor.c"
+ _state_2:
+ ;
+#line 534 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp54_ = 0;
+#line 534 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp54_ = _data_->self->priv->outstanding_verify_jobs;
+#line 534 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (_data_->_tmp54_ > 0, "outstanding_verify_jobs > 0");
+#line 535 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp55_ = 0;
+#line 535 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->_tmp55_ = _data_->self->priv->outstanding_verify_jobs;
+#line 535 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->self->priv->outstanding_verify_jobs = _data_->_tmp55_ - 1;
+#line 537 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_execute_next_verify_job (_data_->self);
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->aux_files = (_vala_array_free (_data_->aux_files, _data_->aux_files_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_->files = (_vala_array_free (_data_->files, _data_->files_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_data_->_state_ == 0) {
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 4335 "LibraryMonitor.c"
+ } else {
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 4339 "LibraryMonitor.c"
+ }
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_object_unref (_data_->_async_result);
+#line 493 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 4345 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_on_config_changed (LibraryMonitor* self) {
+ gboolean value = FALSE;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 540 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 541 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 541 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _tmp0_;
+#line 541 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = configuration_facade_get_auto_import_from_library (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 541 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 541 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp1_);
+#line 541 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value = _tmp3_;
+#line 543 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = self->priv->auto_import;
+#line 543 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = value;
+#line 543 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp4_ == _tmp5_) {
+#line 544 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 4381 "LibraryMonitor.c"
+ }
+#line 546 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = value;
+#line 546 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->auto_import = _tmp6_;
+#line 547 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = self->priv->auto_import;
+#line 547 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp7_) {
+#line 4391 "LibraryMonitor.c"
+ gboolean _tmp8_ = FALSE;
+#line 548 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = commandline_options_no_runtime_monitoring;
+#line 548 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp8_) {
+#line 549 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_import_unrepresented_files (self);
+#line 4399 "LibraryMonitor.c"
+ }
+ } else {
+#line 551 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_cancel_batch_imports (self);
+#line 4404 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_enqueue_import (LibraryMonitor* self, GFile* file) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GeeHashSet* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 555 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 555 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->pending_imports;
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = file;
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp3_);
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp4_) {
+#line 4427 "LibraryMonitor.c"
+ GFile* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = file;
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = library_monitor_is_supported_filetype (self, _tmp5_);
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _tmp6_;
+#line 4436 "LibraryMonitor.c"
+ } else {
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = FALSE;
+#line 4440 "LibraryMonitor.c"
+ }
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 4444 "LibraryMonitor.c"
+ GFile* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = file;
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = library_monitor_is_blacklisted (_tmp7_);
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = !_tmp8_;
+#line 4453 "LibraryMonitor.c"
+ } else {
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = FALSE;
+#line 4457 "LibraryMonitor.c"
+ }
+#line 556 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_) {
+#line 4461 "LibraryMonitor.c"
+ GeeHashSet* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = self->priv->import_queue;
+#line 557 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = file;
+#line 557 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 4470 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_enqueue_import_many (LibraryMonitor* self, GeeCollection* files) {
+#line 560 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 560 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (files));
+#line 4480 "LibraryMonitor.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = files;
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _file_it = _tmp1_;
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 4493 "LibraryMonitor.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _file_it;
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp3_) {
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 4508 "LibraryMonitor.c"
+ }
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _file_it;
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ file = (GFile*) _tmp5_;
+#line 562 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = file;
+#line 562 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_enqueue_import (self, _tmp6_);
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 4522 "LibraryMonitor.c"
+ }
+#line 561 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 4526 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_remove_queued_import (LibraryMonitor* self, GFile* file) {
+ GeeHashSet* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 565 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 566 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->import_queue;
+#line 566 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = file;
+#line 566 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 4544 "LibraryMonitor.c"
+}
+
+
+static gboolean library_monitor_on_flush_import_queue (LibraryMonitor* self) {
+ gboolean result = FALSE;
+ GCancellable* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeHashSet* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ BatchImport* _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ time_t now = 0;
+ gulong _tmp11_ = 0UL;
+ gboolean _tmp12_ = FALSE;
+ BatchImportRoll* _tmp13_ = NULL;
+ time_t _tmp17_ = 0;
+ GeeArrayList* jobs = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ GeeHashSet* _tmp33_ = NULL;
+ BatchImport* importer = NULL;
+ GeeArrayList* _tmp34_ = NULL;
+ BatchImportRoll* _tmp35_ = NULL;
+ BatchImport* _tmp36_ = NULL;
+ BatchImport* _tmp37_ = NULL;
+ BatchImport* _tmp38_ = NULL;
+ GeeArrayList* _tmp39_ = NULL;
+ BatchImport* _tmp40_ = NULL;
+#line 569 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_MONITOR (self), FALSE);
+#line 570 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 570 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = g_cancellable_is_cancelled (_tmp0_);
+#line 570 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 571 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = FALSE;
+#line 571 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 4589 "LibraryMonitor.c"
+ }
+#line 573 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->import_queue;
+#line 573 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 573 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 573 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp4_ == 0) {
+#line 574 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = TRUE;
+#line 574 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 4603 "LibraryMonitor.c"
+ }
+#line 578 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = self->priv->current_batch_import;
+#line 578 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp5_ != NULL) {
+#line 579 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = TRUE;
+#line 579 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 4613 "LibraryMonitor.c"
+ }
+#line 581 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = self->priv->import_queue;
+#line 581 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 581 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _tmp7_;
+#line 581 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = g_strdup_printf ("Auto-importing %d files", _tmp8_);
+#line 581 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _tmp9_;
+#line 581 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp10_);
+#line 581 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp10_);
+#line 586 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = now_sec ();
+#line 586 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ now = (time_t) _tmp11_;
+#line 587 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = self->priv->current_import_roll;
+#line 587 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp13_ == NULL) {
+#line 587 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = TRUE;
+#line 4639 "LibraryMonitor.c"
+ } else {
+ time_t _tmp14_ = 0;
+ time_t _tmp15_ = 0;
+#line 587 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = now;
+#line 587 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = self->priv->last_import_roll_use;
+#line 587 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = (_tmp14_ - _tmp15_) >= ((time_t) LIBRARY_MONITOR_IMPORT_ROLL_QUIET_SEC);
+#line 4649 "LibraryMonitor.c"
+ }
+#line 587 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp12_) {
+#line 4653 "LibraryMonitor.c"
+ BatchImportRoll* _tmp16_ = NULL;
+#line 588 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = batch_import_roll_new ();
+#line 588 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _batch_import_roll_unref0 (self->priv->current_import_roll);
+#line 588 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->current_import_roll = _tmp16_;
+#line 4661 "LibraryMonitor.c"
+ }
+#line 589 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = now;
+#line 589 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->last_import_roll_use = _tmp17_;
+#line 591 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = gee_array_list_new (TYPE_BATCH_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL);
+#line 591 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ jobs = _tmp18_;
+#line 4671 "LibraryMonitor.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeHashSet* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = self->priv->import_queue;
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _file_it = _tmp20_;
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 4684 "LibraryMonitor.c"
+ GeeIterator* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ GeeArrayList* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ FileImportJob* _tmp29_ = NULL;
+ FileImportJob* _tmp30_ = NULL;
+ GeeHashSet* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = _file_it;
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = gee_iterator_next (_tmp21_);
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp22_) {
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 4706 "LibraryMonitor.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = _file_it;
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = gee_iterator_get (_tmp23_);
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ file = (GFile*) _tmp24_;
+#line 593 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = file;
+#line 593 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = library_monitor_is_blacklisted (_tmp25_);
+#line 593 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp26_) {
+#line 594 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 594 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 4724 "LibraryMonitor.c"
+ }
+#line 596 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = jobs;
+#line 596 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = file;
+#line 596 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = file_import_job_new (_tmp28_, FALSE);
+#line 596 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = _tmp29_;
+#line 596 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_BATCH_IMPORT_JOB, BatchImportJob));
+#line 596 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _batch_import_job_unref0 (_tmp30_);
+#line 597 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = self->priv->pending_imports;
+#line 597 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = file;
+#line 597 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp32_);
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 4746 "LibraryMonitor.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 4750 "LibraryMonitor.c"
+ }
+#line 600 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = self->priv->import_queue;
+#line 600 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 602 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp34_ = jobs;
+#line 602 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = self->priv->current_import_roll;
+#line 602 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = batch_import_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ITERABLE, GeeIterable), "LibraryMonitor autoimport", NULL, NULL, NULL, NULL, NULL, _tmp35_, NULL);
+#line 602 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ importer = _tmp36_;
+#line 604 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp37_ = importer;
+#line 604 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ batch_import_set_untrash_duplicates (_tmp37_, FALSE);
+#line 605 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp38_ = importer;
+#line 605 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ batch_import_set_mark_duplicates_online (_tmp38_, FALSE);
+#line 606 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp39_ = self->priv->batch_import_queue;
+#line 606 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp40_ = importer;
+#line 606 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp40_);
+#line 608 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_schedule_next_batch_import (self);
+#line 610 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = TRUE;
+#line 610 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (importer);
+#line 610 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (jobs);
+#line 610 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 4788 "LibraryMonitor.c"
+}
+
+
+static void _library_monitor_on_import_preparing_batch_import_preparing (BatchImport* _sender, gpointer self) {
+#line 618 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_import_preparing ((LibraryMonitor*) self);
+#line 4795 "LibraryMonitor.c"
+}
+
+
+static void _library_monitor_on_import_progress_batch_import_progress (BatchImport* _sender, guint64 completed_bytes, guint64 total_bytes, gpointer self) {
+#line 619 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_import_progress ((LibraryMonitor*) self, completed_bytes, total_bytes);
+#line 4802 "LibraryMonitor.c"
+}
+
+
+static void _library_monitor_on_import_complete_batch_import_import_complete (BatchImport* _sender, ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
+#line 620 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_import_complete ((LibraryMonitor*) self, _sender, manifest, import_roll);
+#line 4809 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_schedule_next_batch_import (LibraryMonitor* self) {
+ gboolean _tmp0_ = FALSE;
+ BatchImport* _tmp1_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ BatchImport* _tmp7_ = NULL;
+ BatchImport* _tmp8_ = NULL;
+ BatchImport* _tmp9_ = NULL;
+ BatchImport* _tmp10_ = NULL;
+#line 613 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->current_batch_import;
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_ != NULL) {
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = TRUE;
+#line 4830 "LibraryMonitor.c"
+ } else {
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->batch_import_queue;
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = _tmp4_ == 0;
+#line 4843 "LibraryMonitor.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_) {
+#line 615 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 4849 "LibraryMonitor.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = self->priv->batch_import_queue;
+#line 617 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 617 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->current_batch_import);
+#line 617 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->current_batch_import = (BatchImport*) _tmp6_;
+#line 618 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = self->priv->current_batch_import;
+#line 618 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_connect_object (_tmp7_, "preparing", (GCallback) _library_monitor_on_import_preparing_batch_import_preparing, self, 0);
+#line 619 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = self->priv->current_batch_import;
+#line 619 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_connect_object (_tmp8_, "progress", (GCallback) _library_monitor_on_import_progress_batch_import_progress, self, 0);
+#line 620 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = self->priv->current_batch_import;
+#line 620 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_connect_object (_tmp9_, "import-complete", (GCallback) _library_monitor_on_import_complete_batch_import_import_complete, self, 0);
+#line 621 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = self->priv->current_batch_import;
+#line 621 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ batch_import_schedule (_tmp10_);
+#line 4875 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_discard_current_batch_import (LibraryMonitor* self) {
+ BatchImport* _tmp0_ = NULL;
+ gboolean removed = FALSE;
+ GeeArrayList* _tmp1_ = NULL;
+ BatchImport* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ BatchImport* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ BatchImport* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ BatchImport* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ GeeArrayList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 624 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 625 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->current_batch_import;
+#line 625 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (_tmp0_ != NULL, "current_batch_import != null");
+#line 627 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->batch_import_queue;
+#line 627 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->current_batch_import;
+#line 627 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp2_);
+#line 627 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ removed = _tmp3_;
+#line 628 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = removed;
+#line 628 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (_tmp4_, "removed");
+#line 629 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = self->priv->current_batch_import;
+#line 629 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_parse_name ("preparing", TYPE_BATCH_IMPORT, &_tmp6_, NULL, FALSE);
+#line 629 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _library_monitor_on_import_preparing_batch_import_preparing, self);
+#line 630 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = self->priv->current_batch_import;
+#line 630 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_parse_name ("progress", TYPE_BATCH_IMPORT, &_tmp8_, NULL, FALSE);
+#line 630 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _library_monitor_on_import_progress_batch_import_progress, self);
+#line 631 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = self->priv->current_batch_import;
+#line 631 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_parse_name ("import-complete", TYPE_BATCH_IMPORT, &_tmp10_, NULL, FALSE);
+#line 631 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _library_monitor_on_import_complete_batch_import_import_complete, self);
+#line 632 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->current_batch_import);
+#line 632 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->current_batch_import = NULL;
+#line 639 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = self->priv->batch_import_queue;
+#line 639 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 639 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = _tmp12_;
+#line 639 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp13_ == 0) {
+#line 4943 "LibraryMonitor.c"
+ GeeHashSet* _tmp14_ = NULL;
+#line 640 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = self->priv->pending_imports;
+#line 640 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 4949 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_cancel_batch_imports (LibraryMonitor* self) {
+ gint ctr = 0;
+ BatchImport* _tmp16_ = NULL;
+ GeeHashSet* _tmp18_ = NULL;
+#line 643 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 645 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ctr = 0;
+#line 646 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 4964 "LibraryMonitor.c"
+ gint _tmp0_ = 0;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeArrayList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gpointer _tmp6_ = NULL;
+ BatchImport* _tmp7_ = NULL;
+ BatchImport* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GeeArrayList* _tmp11_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ BatchImport* _tmp15_ = NULL;
+#line 646 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = ctr;
+#line 646 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->batch_import_queue;
+#line 646 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 646 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 646 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp0_ < _tmp3_)) {
+#line 646 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 4992 "LibraryMonitor.c"
+ }
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = self->priv->batch_import_queue;
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = ctr;
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp5_);
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = (BatchImport*) _tmp6_;
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = self->priv->current_batch_import;
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _tmp7_ == _tmp8_;
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp7_);
+#line 647 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp9_) {
+#line 5010 "LibraryMonitor.c"
+ gint _tmp10_ = 0;
+#line 648 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = ctr;
+#line 648 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ctr = _tmp10_ + 1;
+#line 650 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 5018 "LibraryMonitor.c"
+ }
+#line 653 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = self->priv->batch_import_queue;
+#line 653 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = self->priv->batch_import_queue;
+#line 653 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = ctr;
+#line 653 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp13_);
+#line 653 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = (BatchImport*) _tmp14_;
+#line 653 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 653 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp15_);
+#line 5034 "LibraryMonitor.c"
+ }
+#line 657 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = self->priv->current_batch_import;
+#line 657 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp16_ != NULL) {
+#line 5040 "LibraryMonitor.c"
+ BatchImport* _tmp17_ = NULL;
+#line 658 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = self->priv->current_batch_import;
+#line 658 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ batch_import_user_halt (_tmp17_);
+#line 5046 "LibraryMonitor.c"
+ }
+#line 661 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = self->priv->pending_imports;
+#line 661 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 5052 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_on_import_preparing (LibraryMonitor* self) {
+#line 664 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 665 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (self, "auto-import-preparing");
+#line 5061 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_on_import_progress (LibraryMonitor* self, guint64 completed_bytes, guint64 total_bytes) {
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+#line 668 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 669 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = completed_bytes;
+#line 669 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = total_bytes;
+#line 669 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (self, "auto-import-progress", _tmp0_, _tmp1_);
+#line 5076 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_on_import_complete (LibraryMonitor* self, BatchImport* batch_import, ImportManifest* manifest, BatchImportRoll* import_roll) {
+ BatchImport* _tmp0_ = NULL;
+ BatchImport* _tmp1_ = NULL;
+ ImportManifest* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ ImportManifest* _tmp25_ = NULL;
+ GeeList* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ GeeHashSet* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 672 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (batch_import));
+#line 672 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_IMPORT_MANIFEST (manifest));
+#line 672 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_ROLL (import_roll));
+#line 674 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = batch_import;
+#line 674 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->priv->current_batch_import;
+#line 674 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _vala_assert (_tmp0_ == _tmp1_, "batch_import == current_batch_import");
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = manifest;
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_->all;
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = g_strdup_printf ("auto-import batch completed %d", _tmp5_);
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp7_);
+#line 676 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 677 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_emit_by_name (self, "auto-import-progress", (guint64) 0, (guint64) 0);
+#line 5131 "LibraryMonitor.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _result_index = 0;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = manifest;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _tmp8_->all;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_list = _tmp10_;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _result_list;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = _tmp12_;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_size = _tmp13_;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_index = -1;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 5162 "LibraryMonitor.c"
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gpointer _tmp19_ = NULL;
+ BatchImportResult* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = _result_index;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_index = _tmp14_ + 1;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = _result_index;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = _result_size;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp15_ < _tmp16_)) {
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 5184 "LibraryMonitor.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = _result_list;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = _result_index;
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = gee_list_get (_tmp17_, _tmp18_);
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_ = (BatchImportResult*) _tmp19_;
+#line 682 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = _result_;
+#line 682 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = _tmp20_->file;
+#line 682 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp21_ != NULL) {
+#line 5200 "LibraryMonitor.c"
+ GeeHashSet* _tmp22_ = NULL;
+ BatchImportResult* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+#line 683 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = self->priv->pending_imports;
+#line 683 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = _result_;
+#line 683 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = _tmp23_->file;
+#line 683 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp24_);
+#line 5212 "LibraryMonitor.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _batch_import_result_unref0 (_result_);
+#line 5216 "LibraryMonitor.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_result_list);
+#line 5220 "LibraryMonitor.c"
+ }
+#line 686 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = manifest;
+#line 686 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = _tmp25_->already_imported;
+#line 686 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 686 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = _tmp27_;
+#line 686 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp28_ > 0) {
+#line 5232 "LibraryMonitor.c"
+ GeeArrayList* to_tombstone = NULL;
+ GeeArrayList* _tmp29_ = NULL;
+#line 687 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = gee_array_list_new (TYPE_TOMBSTONED_FILE, (GBoxedCopyFunc) tombstoned_file_ref, tombstoned_file_unref, NULL, NULL, NULL);
+#line 687 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ to_tombstone = _tmp29_;
+#line 5239 "LibraryMonitor.c"
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp30_ = NULL;
+ GeeList* _tmp31_ = NULL;
+ GeeList* _tmp32_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _result_index = 0;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = manifest;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = _tmp30_->already_imported;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = _g_object_ref0 (_tmp31_);
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_list = _tmp32_;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = _result_list;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp34_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = _tmp34_;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_size = _tmp35_;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_index = -1;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 5270 "LibraryMonitor.c"
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gpointer _tmp41_ = NULL;
+ GFileInfo* info = NULL;
+ BatchImportResult* _tmp42_ = NULL;
+ GFile* _tmp43_ = NULL;
+ GFileInfo* _tmp44_ = NULL;
+ GFileInfo* _tmp45_ = NULL;
+ GeeArrayList* _tmp50_ = NULL;
+ BatchImportResult* _tmp51_ = NULL;
+ GFile* _tmp52_ = NULL;
+ GFileInfo* _tmp53_ = NULL;
+ gint64 _tmp54_ = 0LL;
+ TombstonedFile* _tmp55_ = NULL;
+ TombstonedFile* _tmp56_ = NULL;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = _result_index;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_index = _tmp36_ + 1;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp37_ = _result_index;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp38_ = _result_size;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp37_ < _tmp38_)) {
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 5302 "LibraryMonitor.c"
+ }
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp39_ = _result_list;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp40_ = _result_index;
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp41_ = gee_list_get (_tmp39_, _tmp40_);
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_ = (BatchImportResult*) _tmp41_;
+#line 689 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp42_ = _result_;
+#line 689 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp43_ = _tmp42_->file;
+#line 689 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp44_ = directory_monitor_get_file_info (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp43_);
+#line 689 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ info = _tmp44_;
+#line 690 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp45_ = info;
+#line 690 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp45_ == NULL) {
+#line 5324 "LibraryMonitor.c"
+ BatchImportResult* _tmp46_ = NULL;
+ GFile* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+#line 691 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp46_ = _result_;
+#line 691 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp47_ = _tmp46_->file;
+#line 691 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp48_ = g_file_get_path (_tmp47_);
+#line 691 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp49_ = _tmp48_;
+#line 691 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_warning ("LibraryMonitor.vala:691: Unable to get info for duplicate file %s", _tmp49_);
+#line 691 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp49_);
+#line 693 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 693 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _batch_import_result_unref0 (_result_);
+#line 693 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 5347 "LibraryMonitor.c"
+ }
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp50_ = to_tombstone;
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp51_ = _result_;
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp52_ = _tmp51_->file;
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp53_ = info;
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp54_ = g_file_info_get_size (_tmp53_);
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp55_ = tombstoned_file_new (_tmp52_, _tmp54_, NULL);
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp56_ = _tmp55_;
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp56_);
+#line 696 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tombstoned_file_unref0 (_tmp56_);
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _batch_import_result_unref0 (_result_);
+#line 5371 "LibraryMonitor.c"
+ }
+#line 688 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_result_list);
+#line 5375 "LibraryMonitor.c"
+ }
+ {
+ GeeArrayList* _tmp57_ = NULL;
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp57_ = to_tombstone;
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ tombstone_entomb_many_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, GEE_TYPE_COLLECTION, GeeCollection), TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE, &_inner_error_);
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5387 "LibraryMonitor.c"
+ goto __catch475_database_error;
+ }
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (to_tombstone);
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 700 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 5398 "LibraryMonitor.c"
+ }
+ }
+ goto __finally475;
+ __catch475_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp58_ = NULL;
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ err = _inner_error_;
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _inner_error_ = NULL;
+#line 702 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp58_ = err;
+#line 702 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ app_window_database_error (_tmp58_);
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (err);
+#line 5416 "LibraryMonitor.c"
+ }
+ __finally475:
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (to_tombstone);
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 699 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 5429 "LibraryMonitor.c"
+ }
+#line 686 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (to_tombstone);
+#line 5433 "LibraryMonitor.c"
+ }
+#line 706 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp59_ = self->priv->pending_imports;
+#line 706 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp60_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 706 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp61_ = _tmp60_;
+#line 706 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp62_ = g_strdup_printf ("%d files remain pending for auto-import", _tmp61_);
+#line 706 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp63_ = _tmp62_;
+#line 706 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp63_);
+#line 706 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp63_);
+#line 708 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_discard_current_batch_import (self);
+#line 709 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_schedule_next_batch_import (self);
+#line 5453 "LibraryMonitor.c"
+}
+
+
+void library_monitor_blacklist_file (GFile* file, const gchar* reason) {
+ const gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 725 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 725 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (reason != NULL);
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = reason;
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = file;
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = g_strdup_printf ("[%s] Blacklisting %s", _tmp0_, _tmp3_);
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp5_);
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp5_);
+#line 726 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp3_);
+#line 5487 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp6_ = NULL;
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = library_monitor_blacklist;
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_lock (&__lock_library_monitor_blacklist);
+#line 5494 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+#line 728 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = library_monitor_blacklist;
+#line 728 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = file;
+#line 728 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp8_);
+#line 5504 "LibraryMonitor.c"
+ }
+ __finally476:
+ {
+ GeeHashSet* _tmp9_ = NULL;
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = library_monitor_blacklist;
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_unlock (&__lock_library_monitor_blacklist);
+#line 5513 "LibraryMonitor.c"
+ }
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 727 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 5523 "LibraryMonitor.c"
+ }
+ }
+}
+
+
+void library_monitor_unblacklist_file (GFile* file) {
+ GError * _inner_error_ = NULL;
+#line 732 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 5533 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp0_ = NULL;
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = library_monitor_blacklist;
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_lock (&__lock_library_monitor_blacklist);
+#line 5540 "LibraryMonitor.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ GeeHashSet* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = library_monitor_blacklist;
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = file;
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp3_);
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp4_) {
+#line 5554 "LibraryMonitor.c"
+ HashTimedQueue* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = library_monitor_to_unblacklist;
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = file;
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = timed_queue_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_TIMED_QUEUE, TimedQueue), _tmp6_);
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = !_tmp7_;
+#line 5566 "LibraryMonitor.c"
+ } else {
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = FALSE;
+#line 5570 "LibraryMonitor.c"
+ }
+#line 736 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 5574 "LibraryMonitor.c"
+ HashTimedQueue* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+#line 737 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = library_monitor_to_unblacklist;
+#line 737 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = file;
+#line 737 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ timed_queue_enqueue (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_TIMED_QUEUE, TimedQueue), _tmp9_);
+#line 5583 "LibraryMonitor.c"
+ }
+ }
+ __finally477:
+ {
+ GeeHashSet* _tmp10_ = NULL;
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = library_monitor_blacklist;
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_unlock (&__lock_library_monitor_blacklist);
+#line 5593 "LibraryMonitor.c"
+ }
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 735 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 5603 "LibraryMonitor.c"
+ }
+ }
+}
+
+
+static void library_monitor_on_unblacklist_file (GFile* file) {
+ gboolean removed = FALSE;
+ GError * _inner_error_ = NULL;
+#line 741 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 5614 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp0_ = NULL;
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = library_monitor_blacklist;
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_lock (&__lock_library_monitor_blacklist);
+#line 5621 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 744 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_blacklist;
+#line 744 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 744 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp2_);
+#line 744 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ removed = _tmp3_;
+#line 5634 "LibraryMonitor.c"
+ }
+ __finally478:
+ {
+ GeeHashSet* _tmp4_ = NULL;
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = library_monitor_blacklist;
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_unlock (&__lock_library_monitor_blacklist);
+#line 5643 "LibraryMonitor.c"
+ }
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 743 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 5653 "LibraryMonitor.c"
+ }
+ }
+#line 747 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (removed) {
+#line 5658 "LibraryMonitor.c"
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = file;
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = g_strdup_printf ("Blacklist for %s removed", _tmp7_);
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp9_);
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp9_);
+#line 748 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 5680 "LibraryMonitor.c"
+ } else {
+ GFile* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 750 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = file;
+#line 750 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = g_file_get_path (_tmp10_);
+#line 750 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 750 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_warning ("LibraryMonitor.vala:750: File %s was not blacklisted but unblacklisted", _tmp12_);
+#line 750 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp12_);
+#line 5695 "LibraryMonitor.c"
+ }
+}
+
+
+gboolean library_monitor_is_blacklisted (GFile* file) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 753 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 5705 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp0_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = library_monitor_blacklist;
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_lock (&__lock_library_monitor_blacklist);
+#line 5712 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 755 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_blacklist;
+#line 755 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 755 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp2_);
+#line 755 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = _tmp3_;
+#line 5725 "LibraryMonitor.c"
+ {
+ GeeHashSet* _tmp4_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = library_monitor_blacklist;
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_unlock (&__lock_library_monitor_blacklist);
+#line 5732 "LibraryMonitor.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 5736 "LibraryMonitor.c"
+ }
+ __finally479:
+ {
+ GeeHashSet* _tmp5_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = library_monitor_blacklist;
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_unlock (&__lock_library_monitor_blacklist);
+#line 5745 "LibraryMonitor.c"
+ }
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 754 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return FALSE;
+#line 5753 "LibraryMonitor.c"
+ }
+}
+
+
+static gboolean library_monitor_is_supported_filetype (LibraryMonitor* self, GFile* file) {
+ gboolean result = FALSE;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ MediaSourceCollection* _tmp3_ = NULL;
+ MediaSourceCollection* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 759 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_MONITOR (self), FALSE);
+#line 759 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _tmp0_;
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = media_collection_registry_get_collection_for_file (_tmp1_, _tmp2_);
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _tmp4_ != NULL;
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _data_collection_unref0 (_tmp4_);
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ result = _tmp5_;
+#line 760 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return result;
+#line 5790 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_import_unrepresented_files (LibraryMonitor* self) {
+ gboolean _tmp0_ = FALSE;
+ GeeArrayList* to_import = NULL;
+ GeeArrayList* _tmp42_ = NULL;
+#line 765 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 766 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->priv->auto_import;
+#line 766 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp0_) {
+#line 767 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 5806 "LibraryMonitor.c"
+ }
+#line 769 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ to_import = NULL;
+#line 5810 "LibraryMonitor.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = directory_monitor_get_files (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _file_it = _tmp4_;
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 5831 "LibraryMonitor.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ GFileInfo* info = NULL;
+ GFile* _tmp9_ = NULL;
+ GFileInfo* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GFileInfo* _tmp12_ = NULL;
+ GeeHashSet* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ TombstoneSourceCollection* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean represented = FALSE;
+ gboolean _tmp35_ = FALSE;
+ GFile* _tmp36_ = NULL;
+ gboolean _tmp37_ = FALSE;
+ GeeArrayList* _tmp38_ = NULL;
+ GeeArrayList* _tmp40_ = NULL;
+ GFile* _tmp41_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _file_it;
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp6_) {
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 5863 "LibraryMonitor.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _file_it;
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ file = (GFile*) _tmp8_;
+#line 771 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = file;
+#line 771 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = directory_monitor_get_file_info (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp9_);
+#line 771 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ info = _tmp10_;
+#line 772 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = info;
+#line 772 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp12_ == NULL) {
+#line 772 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = TRUE;
+#line 5883 "LibraryMonitor.c"
+ } else {
+ GFileInfo* _tmp13_ = NULL;
+ GFileType _tmp14_ = 0;
+#line 772 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = info;
+#line 772 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = g_file_info_get_file_type (_tmp13_);
+#line 772 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _tmp14_ != G_FILE_TYPE_REGULAR;
+#line 5893 "LibraryMonitor.c"
+ }
+#line 772 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp11_) {
+#line 773 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 773 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 773 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 5903 "LibraryMonitor.c"
+ }
+#line 775 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = self->priv->pending_imports;
+#line 775 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = file;
+#line 775 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp16_);
+#line 775 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp17_) {
+#line 776 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 776 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 776 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 5919 "LibraryMonitor.c"
+ }
+#line 778 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = tombstone_global;
+#line 778 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = file;
+#line 778 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = tombstone_source_collection_matches (_tmp18_, _tmp19_);
+#line 778 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp20_) {
+#line 779 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 779 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 779 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 5935 "LibraryMonitor.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ represented = FALSE;
+#line 5939 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp21_ = NULL;
+ GeeList* _tmp22_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _monitor_index = 0;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = self->priv->monitors;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = _g_object_ref0 (_tmp21_);
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp22_;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = _monitor_list;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = _tmp24_;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp25_;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 5967 "LibraryMonitor.c"
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gpointer _tmp31_ = NULL;
+ MediaMonitor* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = _monitor_index;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp26_ + 1;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = _monitor_index;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = _monitor_size;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp27_ < _tmp28_)) {
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 5990 "LibraryMonitor.c"
+ }
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = _monitor_list;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = _monitor_index;
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = gee_list_get (_tmp29_, _tmp30_);
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp31_;
+#line 783 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = monitor;
+#line 783 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = file;
+#line 783 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp34_ = media_monitor_is_file_represented (_tmp32_, _tmp33_);
+#line 783 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp34_) {
+#line 784 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ represented = TRUE;
+#line 786 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 786 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6014 "LibraryMonitor.c"
+ }
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 6018 "LibraryMonitor.c"
+ }
+#line 782 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 6022 "LibraryMonitor.c"
+ }
+#line 790 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = represented;
+#line 790 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp35_) {
+#line 791 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 791 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 791 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 6034 "LibraryMonitor.c"
+ }
+#line 793 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = file;
+#line 793 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp37_ = library_monitor_is_supported_filetype (self, _tmp36_);
+#line 793 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp37_) {
+#line 794 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 794 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 794 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 6048 "LibraryMonitor.c"
+ }
+#line 796 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp38_ = to_import;
+#line 796 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp38_ == NULL) {
+#line 6054 "LibraryMonitor.c"
+ GeeArrayList* _tmp39_ = NULL;
+#line 797 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp39_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 797 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (to_import);
+#line 797 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ to_import = _tmp39_;
+#line 6062 "LibraryMonitor.c"
+ }
+#line 799 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp40_ = to_import;
+#line 799 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp41_ = file;
+#line 799 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp41_);
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (info);
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (file);
+#line 6074 "LibraryMonitor.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_file_it);
+#line 6078 "LibraryMonitor.c"
+ }
+#line 802 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp42_ = to_import;
+#line 802 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp42_ != NULL) {
+#line 6084 "LibraryMonitor.c"
+ GeeArrayList* _tmp43_ = NULL;
+#line 803 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp43_ = to_import;
+#line 803 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_enqueue_import_many (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 6090 "LibraryMonitor.c"
+ }
+#line 765 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (to_import);
+#line 6094 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_runtime_unknown_file_discovered (LibraryMonitor* self, GFile* file) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 808 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 808 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = self->priv->auto_import;
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp2_) {
+#line 6110 "LibraryMonitor.c"
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = file;
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = library_monitor_is_supported_filetype (self, _tmp3_);
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _tmp4_;
+#line 6119 "LibraryMonitor.c"
+ } else {
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = FALSE;
+#line 6123 "LibraryMonitor.c"
+ }
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 6127 "LibraryMonitor.c"
+ TombstoneSourceCollection* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = tombstone_global;
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = file;
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = tombstone_source_collection_matches (_tmp5_, _tmp6_);
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = !_tmp7_;
+#line 6139 "LibraryMonitor.c"
+ } else {
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = FALSE;
+#line 6143 "LibraryMonitor.c"
+ }
+#line 809 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_) {
+#line 6147 "LibraryMonitor.c"
+ GFile* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = file;
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = g_file_get_path (_tmp8_);
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _tmp9_;
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = g_strdup_printf ("Unknown file %s discovered, enqueuing for import", _tmp10_);
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp12_);
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp12_);
+#line 810 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp10_);
+#line 811 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = file;
+#line 811 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_enqueue_import (self, _tmp13_);
+#line 6174 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_real_notify_file_created (DirectoryMonitor* base, GFile* file, GFileInfo* info) {
+ LibraryMonitor * self;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean known = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp98_ = FALSE;
+ GFile* _tmp100_ = NULL;
+ GFileInfo* _tmp101_ = NULL;
+#line 815 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 815 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 815 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 816 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = file;
+#line 816 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_is_blacklisted (_tmp0_);
+#line 816 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 6200 "LibraryMonitor.c"
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+#line 817 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 817 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = info;
+#line 817 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_created (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp2_, _tmp3_);
+#line 819 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 6211 "LibraryMonitor.c"
+ }
+#line 822 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = FALSE;
+#line 6215 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _monitor_index = 0;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = self->priv->monitors;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp5_;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _monitor_list;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _tmp7_;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp8_;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 6243 "LibraryMonitor.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ MediaMonitor* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFileInfo* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp9_ + 1;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _monitor_index;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _monitor_size;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6267 "LibraryMonitor.c"
+ }
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _monitor_list;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = _monitor_index;
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp14_;
+#line 824 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = monitor;
+#line 824 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = file;
+#line 824 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = info;
+#line 824 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = media_monitor_notify_file_created (_tmp15_, _tmp16_, _tmp17_);
+#line 824 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp18_) {
+#line 825 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 827 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 827 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6293 "LibraryMonitor.c"
+ }
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 6297 "LibraryMonitor.c"
+ }
+#line 823 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 6301 "LibraryMonitor.c"
+ }
+#line 831 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = known;
+#line 831 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp19_) {
+#line 6307 "LibraryMonitor.c"
+ GeeHashSet* all_candidates = NULL;
+ gboolean _tmp78_ = FALSE;
+ gboolean _tmp79_ = FALSE;
+ gboolean _tmp80_ = FALSE;
+#line 833 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ all_candidates = NULL;
+#line 6314 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp20_ = NULL;
+ GeeList* _tmp21_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _monitor_index = 0;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = self->priv->monitors;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp21_;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = _monitor_list;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp24_;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 6342 "LibraryMonitor.c"
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gpointer _tmp30_ = NULL;
+ MediaMonitorDiscoveredFile _result_ = 0;
+ GeeCollection* candidates = NULL;
+ MediaMonitor* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+ GFileInfo* _tmp33_ = NULL;
+ MediaMonitorDiscoveredFile _tmp34_ = 0;
+ GeeCollection* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ MediaMonitorDiscoveredFile _tmp37_ = 0;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = _monitor_index;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp25_ + 1;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = _monitor_index;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = _monitor_size;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp26_ < _tmp27_)) {
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6371 "LibraryMonitor.c"
+ }
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = _monitor_list;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = _monitor_index;
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = gee_list_get (_tmp28_, _tmp29_);
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp30_;
+#line 836 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = monitor;
+#line 836 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = file;
+#line 836 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = info;
+#line 836 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = media_monitor_candidates_for_unknown_file (_tmp31_, _tmp32_, _tmp33_, &_tmp34_);
+#line 836 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _result_ = _tmp34_;
+#line 836 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ candidates = _tmp35_;
+#line 838 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp37_ = _result_;
+#line 838 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp37_ == MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED) {
+#line 838 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = TRUE;
+#line 6399 "LibraryMonitor.c"
+ } else {
+ MediaMonitorDiscoveredFile _tmp38_ = 0;
+#line 839 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp38_ = _result_;
+#line 839 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = _tmp38_ == MEDIA_MONITOR_DISCOVERED_FILE_IGNORE;
+#line 6406 "LibraryMonitor.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp36_) {
+#line 6410 "LibraryMonitor.c"
+ MediaMonitor* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ MediaMonitorDiscoveredFile _tmp42_ = 0;
+ GEnumValue* _tmp43_;
+ GFile* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp39_ = monitor;
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp40_ = media_monitor_to_string (_tmp39_);
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp41_ = _tmp40_;
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp42_ = _result_;
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp43_ = g_enum_get_value (g_type_class_ref (MEDIA_MONITOR_TYPE_DISCOVERED_FILE), _tmp42_);
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp44_ = file;
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp45_ = g_file_get_path (_tmp44_);
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp46_ = _tmp45_;
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp47_ = g_strdup_printf ("%s %s created file %s", _tmp41_, (_tmp43_ != NULL) ? _tmp43_->value_name : NULL, _tmp46_);
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp48_ = _tmp47_;
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp48_);
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp48_);
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp46_);
+#line 840 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp41_);
+#line 843 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 845 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidates);
+#line 845 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 845 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6457 "LibraryMonitor.c"
+ } else {
+ gboolean _tmp49_ = FALSE;
+ GeeCollection* _tmp50_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp50_ = candidates;
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp50_ != NULL) {
+#line 6465 "LibraryMonitor.c"
+ GeeCollection* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp51_ = candidates;
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp52_ = gee_collection_get_size (_tmp51_);
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp53_ = _tmp52_;
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp49_ = _tmp53_ > 0;
+#line 6477 "LibraryMonitor.c"
+ } else {
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp49_ = FALSE;
+#line 6481 "LibraryMonitor.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp49_) {
+#line 6485 "LibraryMonitor.c"
+ MediaMonitor* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ GeeCollection* _tmp57_ = NULL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ GFile* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ GeeHashSet* _tmp65_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp54_ = monitor;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp55_ = media_monitor_to_string (_tmp54_);
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp56_ = _tmp55_;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp57_ = candidates;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp58_ = gee_collection_get_size (_tmp57_);
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp59_ = _tmp58_;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp60_ = file;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp61_ = g_file_get_path (_tmp60_);
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp62_ = _tmp61_;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp63_ = g_strdup_printf ("%s suggests %d candidates for created file %s", _tmp56_, _tmp59_, _tmp62_);
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp64_ = _tmp63_;
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp64_);
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp64_);
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp62_);
+#line 847 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp56_);
+#line 850 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp65_ = all_candidates;
+#line 850 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp65_ == NULL) {
+#line 6532 "LibraryMonitor.c"
+ GeeHashSet* _tmp66_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp66_ = gee_hash_set_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 851 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (all_candidates);
+#line 851 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ all_candidates = _tmp66_;
+#line 6540 "LibraryMonitor.c"
+ }
+ {
+ GeeIterator* _candidate_it = NULL;
+ GeeCollection* _tmp67_ = NULL;
+ GeeIterator* _tmp68_ = NULL;
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp67_ = candidates;
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp68_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _candidate_it = _tmp68_;
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 6554 "LibraryMonitor.c"
+ GeeIterator* _tmp69_ = NULL;
+ gboolean _tmp70_ = FALSE;
+ Monitorable* candidate = NULL;
+ GeeIterator* _tmp71_ = NULL;
+ gpointer _tmp72_ = NULL;
+ MediaMonitor* _tmp73_ = NULL;
+ Monitorable* _tmp74_ = NULL;
+ gboolean _tmp75_ = FALSE;
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp69_ = _candidate_it;
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp70_ = gee_iterator_next (_tmp69_);
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp70_) {
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6571 "LibraryMonitor.c"
+ }
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp71_ = _candidate_it;
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp72_ = gee_iterator_get (_tmp71_);
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ candidate = (Monitorable*) _tmp72_;
+#line 854 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp73_ = monitor;
+#line 854 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp74_ = candidate;
+#line 854 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp75_ = media_monitor_is_offline (_tmp73_, _tmp74_);
+#line 854 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp75_) {
+#line 6587 "LibraryMonitor.c"
+ GeeHashSet* _tmp76_ = NULL;
+ Monitorable* _tmp77_ = NULL;
+#line 855 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp76_ = all_candidates;
+#line 855 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp77_ = candidate;
+#line 855 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp77_);
+#line 6596 "LibraryMonitor.c"
+ }
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidate);
+#line 6600 "LibraryMonitor.c"
+ }
+#line 853 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_candidate_it);
+#line 6604 "LibraryMonitor.c"
+ }
+ }
+ }
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidates);
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 6612 "LibraryMonitor.c"
+ }
+#line 834 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 6616 "LibraryMonitor.c"
+ }
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp80_ = known;
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp80_) {
+#line 6622 "LibraryMonitor.c"
+ GeeHashSet* _tmp81_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp81_ = all_candidates;
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp79_ = _tmp81_ != NULL;
+#line 6628 "LibraryMonitor.c"
+ } else {
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp79_ = FALSE;
+#line 6632 "LibraryMonitor.c"
+ }
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp79_) {
+#line 6636 "LibraryMonitor.c"
+ GeeHashSet* _tmp82_ = NULL;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp82_ = all_candidates;
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp83_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp84_ = _tmp83_;
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp78_ = _tmp84_ > 0;
+#line 6648 "LibraryMonitor.c"
+ } else {
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp78_ = FALSE;
+#line 6652 "LibraryMonitor.c"
+ }
+#line 860 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp78_) {
+#line 6656 "LibraryMonitor.c"
+ GeeHashSet* _tmp85_ = NULL;
+ gint _tmp86_ = 0;
+ gint _tmp87_ = 0;
+ GFile* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ gchar* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ Workers* _tmp93_ = NULL;
+ GFile* _tmp94_ = NULL;
+ GeeHashSet* _tmp95_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp96_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp97_ = NULL;
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp85_ = all_candidates;
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp86_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp85_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp87_ = _tmp86_;
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp88_ = file;
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp89_ = g_file_get_path (_tmp88_);
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp90_ = _tmp89_;
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp91_ = g_strdup_printf ("%d candidates for created file %s being checksummed", _tmp87_, _tmp90_);
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp92_ = _tmp91_;
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ directory_monitor_mdbg (_tmp92_);
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp92_);
+#line 861 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp90_);
+#line 864 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp93_ = self->priv->workers;
+#line 864 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp94_ = file;
+#line 864 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp95_ = all_candidates;
+#line 864 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp96_ = library_monitor_runtime_find_move_job_new (self, _tmp94_, G_TYPE_CHECK_INSTANCE_CAST (_tmp95_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 864 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp97_ = _tmp96_;
+#line 864 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ workers_enqueue (_tmp93_, G_TYPE_CHECK_INSTANCE_CAST (_tmp97_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 864 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _background_job_unref0 (_tmp97_);
+#line 866 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 6708 "LibraryMonitor.c"
+ }
+#line 831 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (all_candidates);
+#line 6712 "LibraryMonitor.c"
+ }
+#line 870 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp98_ = known;
+#line 870 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp98_) {
+#line 6718 "LibraryMonitor.c"
+ GFile* _tmp99_ = NULL;
+#line 871 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp99_ = file;
+#line 871 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_runtime_unknown_file_discovered (self, _tmp99_);
+#line 6724 "LibraryMonitor.c"
+ }
+#line 873 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp100_ = file;
+#line 873 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp101_ = info;
+#line 873 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_created (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp100_, _tmp101_);
+#line 6732 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_on_runtime_find_move_completed (LibraryMonitor* self, BackgroundJob* j) {
+ LibraryMonitorRuntimeFindMoveJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp1_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp2_ = NULL;
+ GError* _tmp3_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp11_ = NULL;
+ Monitorable* _tmp12_ = NULL;
+#line 876 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (self));
+#line 876 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 877 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = j;
+#line 877 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB, LibraryMonitorRuntimeFindMoveJob));
+#line 877 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ job = _tmp1_;
+#line 879 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = job;
+#line 879 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_->err;
+#line 879 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 6760 "LibraryMonitor.c"
+ LibraryMonitorRuntimeFindMoveJob* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp8_ = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = job;
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _tmp4_->file;
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = job;
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _tmp8_->err;
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _tmp9_->message;
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("LibraryMonitor.vala:880: Error attempting to find a match at runtime f" \
+"or %s: %s", _tmp7_, _tmp10_);
+#line 880 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 6786 "LibraryMonitor.c"
+ }
+#line 884 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = job;
+#line 884 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _tmp11_->match;
+#line 884 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp12_ != NULL) {
+#line 6794 "LibraryMonitor.c"
+ MediaMonitor* monitor = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp13_ = NULL;
+ Monitorable* _tmp14_ = NULL;
+ MediaMonitor* _tmp15_ = NULL;
+ MediaMonitor* _tmp16_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp17_ = NULL;
+ Monitorable* _tmp18_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ MediaMonitor* _tmp21_ = NULL;
+ LibraryMonitorRuntimeFindMoveJob* _tmp22_ = NULL;
+ Monitorable* _tmp23_ = NULL;
+#line 885 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = job;
+#line 885 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = _tmp13_->match;
+#line 885 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = library_monitor_get_monitor_for_monitorable (self, _tmp14_);
+#line 885 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = _tmp15_;
+#line 886 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = monitor;
+#line 886 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = job;
+#line 886 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = _tmp17_->match;
+#line 886 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = job;
+#line 886 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = _tmp19_->file;
+#line 886 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_update_master_file (_tmp16_, _tmp18_, _tmp20_);
+#line 887 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = monitor;
+#line 887 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = job;
+#line 887 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = _tmp22_->match;
+#line 887 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ media_monitor_update_online (_tmp21_, _tmp23_);
+#line 884 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 6837 "LibraryMonitor.c"
+ } else {
+ LibraryMonitorRuntimeFindMoveJob* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+#line 890 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = job;
+#line 890 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = _tmp24_->file;
+#line 890 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_runtime_unknown_file_discovered (self, _tmp25_);
+#line 6847 "LibraryMonitor.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _background_job_unref0 (job);
+#line 6851 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_notify_file_moved (DirectoryMonitor* base, GFile* old_file, GFile* new_file, GFileInfo* new_info) {
+ LibraryMonitor * self;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean known = FALSE;
+ gboolean _tmp24_ = FALSE;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ GFileInfo* _tmp28_ = NULL;
+#line 894 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 894 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 894 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 894 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (new_info));
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = old_file;
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = library_monitor_is_blacklisted (_tmp1_);
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp2_) {
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = TRUE;
+#line 6881 "LibraryMonitor.c"
+ } else {
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = new_file;
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = library_monitor_is_blacklisted (_tmp3_);
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = _tmp4_;
+#line 6891 "LibraryMonitor.c"
+ }
+#line 895 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp0_) {
+#line 6895 "LibraryMonitor.c"
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = old_file;
+#line 896 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = new_file;
+#line 896 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = new_info;
+#line 896 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_moved (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp5_, _tmp6_, _tmp7_);
+#line 898 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 6909 "LibraryMonitor.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = FALSE;
+#line 6913 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _monitor_index = 0;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = self->priv->monitors;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp9_;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _monitor_list;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp12_;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 6941 "LibraryMonitor.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gpointer _tmp18_ = NULL;
+ MediaMonitor* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GFileInfo* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = _monitor_index;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp13_ + 1;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = _monitor_index;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = _monitor_size;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp14_ < _tmp15_)) {
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6966 "LibraryMonitor.c"
+ }
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = _monitor_list;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = _monitor_index;
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = gee_list_get (_tmp16_, _tmp17_);
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp18_;
+#line 903 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = monitor;
+#line 903 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = old_file;
+#line 903 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = new_file;
+#line 903 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = new_info;
+#line 903 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = media_monitor_notify_file_moved (_tmp19_, _tmp20_, _tmp21_, _tmp22_);
+#line 903 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp23_) {
+#line 904 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 906 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 906 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 6994 "LibraryMonitor.c"
+ }
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 6998 "LibraryMonitor.c"
+ }
+#line 902 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 7002 "LibraryMonitor.c"
+ }
+#line 910 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = known;
+#line 910 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp24_) {
+#line 7008 "LibraryMonitor.c"
+ GFile* _tmp25_ = NULL;
+#line 911 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = new_file;
+#line 911 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_runtime_unknown_file_discovered (self, _tmp25_);
+#line 7014 "LibraryMonitor.c"
+ }
+#line 913 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = old_file;
+#line 913 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = new_file;
+#line 913 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = new_info;
+#line 913 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_moved (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp26_, _tmp27_, _tmp28_);
+#line 7024 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_notify_file_altered (DirectoryMonitor* base, GFile* file) {
+ LibraryMonitor * self;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean known = FALSE;
+ gboolean _tmp17_ = FALSE;
+ GFile* _tmp19_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 916 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 917 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = file;
+#line 917 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_is_blacklisted (_tmp0_);
+#line 917 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 7045 "LibraryMonitor.c"
+ GFile* _tmp2_ = NULL;
+#line 918 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 918 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp2_);
+#line 920 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 7053 "LibraryMonitor.c"
+ }
+#line 923 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = FALSE;
+#line 7057 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _monitor_index = 0;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = self->priv->monitors;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp4_;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _monitor_list;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp7_;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 7085 "LibraryMonitor.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gpointer _tmp13_ = NULL;
+ MediaMonitor* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _monitor_index;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp8_ + 1;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _monitor_size;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp9_ < _tmp10_)) {
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7108 "LibraryMonitor.c"
+ }
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _monitor_list;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _monitor_index;
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = gee_list_get (_tmp11_, _tmp12_);
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp13_;
+#line 925 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = monitor;
+#line 925 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = file;
+#line 925 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = media_monitor_notify_file_altered (_tmp14_, _tmp15_);
+#line 925 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp16_) {
+#line 926 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 928 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 928 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7132 "LibraryMonitor.c"
+ }
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 7136 "LibraryMonitor.c"
+ }
+#line 924 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 7140 "LibraryMonitor.c"
+ }
+#line 932 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = known;
+#line 932 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp17_) {
+#line 7146 "LibraryMonitor.c"
+ GFile* _tmp18_ = NULL;
+#line 933 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = file;
+#line 933 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_runtime_unknown_file_discovered (self, _tmp18_);
+#line 7152 "LibraryMonitor.c"
+ }
+#line 935 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = file;
+#line 935 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp19_);
+#line 7158 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_notify_file_attributes_altered (DirectoryMonitor* base, GFile* file) {
+ LibraryMonitor * self;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean known = FALSE;
+ gboolean _tmp17_ = FALSE;
+ GFile* _tmp19_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 938 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 939 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = file;
+#line 939 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_is_blacklisted (_tmp0_);
+#line 939 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 7179 "LibraryMonitor.c"
+ GFile* _tmp2_ = NULL;
+#line 940 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 940 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_attributes_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp2_);
+#line 942 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 7187 "LibraryMonitor.c"
+ }
+#line 945 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = FALSE;
+#line 7191 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _monitor_index = 0;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = self->priv->monitors;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp4_;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _monitor_list;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp7_;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 7219 "LibraryMonitor.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gpointer _tmp13_ = NULL;
+ MediaMonitor* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _monitor_index;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp8_ + 1;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _monitor_size;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp9_ < _tmp10_)) {
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7242 "LibraryMonitor.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _monitor_list;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _monitor_index;
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = gee_list_get (_tmp11_, _tmp12_);
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp13_;
+#line 947 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = monitor;
+#line 947 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = file;
+#line 947 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = media_monitor_notify_file_attributes_altered (_tmp14_, _tmp15_);
+#line 947 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp16_) {
+#line 948 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 950 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 950 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7266 "LibraryMonitor.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 7270 "LibraryMonitor.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 7274 "LibraryMonitor.c"
+ }
+#line 954 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = known;
+#line 954 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp17_) {
+#line 7280 "LibraryMonitor.c"
+ GFile* _tmp18_ = NULL;
+#line 955 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = file;
+#line 955 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_runtime_unknown_file_discovered (self, _tmp18_);
+#line 7286 "LibraryMonitor.c"
+ }
+#line 957 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = file;
+#line 957 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_attributes_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp19_);
+#line 7292 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_notify_file_alteration_completed (DirectoryMonitor* base, GFile* file, GFileInfo* info) {
+ LibraryMonitor * self;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean known = FALSE;
+ gboolean _tmp19_ = FALSE;
+ GFile* _tmp21_ = NULL;
+ GFileInfo* _tmp22_ = NULL;
+#line 960 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 960 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 960 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 961 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = file;
+#line 961 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_is_blacklisted (_tmp0_);
+#line 961 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 7316 "LibraryMonitor.c"
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+#line 962 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 962 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = info;
+#line 962 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_alteration_completed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp2_, _tmp3_);
+#line 964 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 7327 "LibraryMonitor.c"
+ }
+#line 967 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = FALSE;
+#line 7331 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _monitor_index = 0;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = self->priv->monitors;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp5_;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _monitor_list;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _tmp7_;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp8_;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 7359 "LibraryMonitor.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ MediaMonitor* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFileInfo* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp9_ + 1;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _monitor_index;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _monitor_size;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7383 "LibraryMonitor.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _monitor_list;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = _monitor_index;
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp14_;
+#line 969 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = monitor;
+#line 969 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = file;
+#line 969 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = info;
+#line 969 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = media_monitor_notify_file_alteration_completed (_tmp15_, _tmp16_, _tmp17_);
+#line 969 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp18_) {
+#line 970 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 972 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 972 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7409 "LibraryMonitor.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 7413 "LibraryMonitor.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 7417 "LibraryMonitor.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = known;
+#line 976 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp19_) {
+#line 7423 "LibraryMonitor.c"
+ GFile* _tmp20_ = NULL;
+#line 977 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = file;
+#line 977 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_runtime_unknown_file_discovered (self, _tmp20_);
+#line 7429 "LibraryMonitor.c"
+ }
+#line 979 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = file;
+#line 979 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = info;
+#line 979 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_alteration_completed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp21_, _tmp22_);
+#line 7437 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_real_notify_file_deleted (DirectoryMonitor* base, GFile* file) {
+ LibraryMonitor * self;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean known = FALSE;
+ gboolean _tmp17_ = FALSE;
+ GFile* _tmp28_ = NULL;
+#line 982 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 982 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 983 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = file;
+#line 983 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = library_monitor_is_blacklisted (_tmp0_);
+#line 983 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp1_) {
+#line 7458 "LibraryMonitor.c"
+ GFile* _tmp2_ = NULL;
+#line 984 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = file;
+#line 984 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_deleted (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp2_);
+#line 986 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 7466 "LibraryMonitor.c"
+ }
+#line 989 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = FALSE;
+#line 7470 "LibraryMonitor.c"
+ {
+ GeeList* _monitor_list = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _monitor_size = 0;
+ GeeList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _monitor_index = 0;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = self->priv->monitors;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_list = _tmp4_;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _monitor_list;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_size = _tmp7_;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = -1;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 7498 "LibraryMonitor.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ MediaMonitor* monitor = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gpointer _tmp13_ = NULL;
+ MediaMonitor* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _monitor_index;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _monitor_index = _tmp8_ + 1;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = _monitor_index;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _monitor_size;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!(_tmp9_ < _tmp10_)) {
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7521 "LibraryMonitor.c"
+ }
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = _monitor_list;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = _monitor_index;
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = gee_list_get (_tmp11_, _tmp12_);
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ monitor = (MediaMonitor*) _tmp13_;
+#line 991 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = monitor;
+#line 991 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = file;
+#line 991 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = media_monitor_notify_file_deleted (_tmp14_, _tmp15_);
+#line 991 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp16_) {
+#line 992 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ known = TRUE;
+#line 994 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 994 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7545 "LibraryMonitor.c"
+ }
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (monitor);
+#line 7549 "LibraryMonitor.c"
+ }
+#line 990 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_monitor_list);
+#line 7553 "LibraryMonitor.c"
+ }
+#line 998 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = known;
+#line 998 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp17_) {
+#line 7559 "LibraryMonitor.c"
+ Tombstone* tombstone = NULL;
+ TombstoneSourceCollection* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ Tombstone* _tmp20_ = NULL;
+ Tombstone* _tmp21_ = NULL;
+ GFile* _tmp27_ = NULL;
+#line 1000 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = tombstone_global;
+#line 1000 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = file;
+#line 1000 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = tombstone_source_collection_locate (_tmp18_, _tmp19_);
+#line 1000 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ tombstone = _tmp20_;
+#line 1001 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = tombstone;
+#line 1001 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp21_ != NULL) {
+#line 7578 "LibraryMonitor.c"
+ GFile* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ TombstoneSourceCollection* _tmp25_ = NULL;
+ Tombstone* _tmp26_ = NULL;
+#line 1002 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = file;
+#line 1002 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = g_file_get_path (_tmp22_);
+#line 1002 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 1002 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_debug ("LibraryMonitor.vala:1002: Resurrecting tombstoned file %s", _tmp24_);
+#line 1002 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp24_);
+#line 1003 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = tombstone_global;
+#line 1003 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = tombstone;
+#line 1003 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ tombstone_source_collection_resurrect (_tmp25_, _tmp26_);
+#line 7600 "LibraryMonitor.c"
+ }
+#line 1007 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = file;
+#line 1007 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_remove_queued_import (self, _tmp27_);
+#line 998 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (tombstone);
+#line 7608 "LibraryMonitor.c"
+ }
+#line 1010 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = file;
+#line 1010 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ DIRECTORY_MONITOR_CLASS (library_monitor_parent_class)->notify_file_deleted (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), _tmp28_);
+#line 7614 "LibraryMonitor.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__INT_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__INT_INT) (gpointer data1, gint arg_1, gint arg_2, gpointer data2);
+ register GMarshalFunc_VOID__INT_INT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data1 = closure->data;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 7633 "LibraryMonitor.c"
+ } else {
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data2 = closure->data;
+#line 7639 "LibraryMonitor.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ callback = (GMarshalFunc_VOID__INT_INT) (marshal_data ? marshal_data : cc->callback);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ callback (data1, g_value_get_int (param_values + 1), g_value_get_int (param_values + 2), data2);
+#line 7645 "LibraryMonitor.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__UINT64_UINT64 (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__UINT64_UINT64) (gpointer data1, guint64 arg_1, guint64 arg_2, gpointer data2);
+ register GMarshalFunc_VOID__UINT64_UINT64 callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data1 = closure->data;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 7664 "LibraryMonitor.c"
+ } else {
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ data2 = closure->data;
+#line 7670 "LibraryMonitor.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ callback = (GMarshalFunc_VOID__UINT64_UINT64) (marshal_data ? marshal_data : cc->callback);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ callback (data1, g_value_get_uint64 (param_values + 1), g_value_get_uint64 (param_values + 2), data2);
+#line 7676 "LibraryMonitor.c"
+}
+
+
+static void _library_monitor_on_find_move_completed_completion_callback (BackgroundJob* job, gpointer self) {
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_find_move_completed ((LibraryMonitor*) self, job);
+#line 7683 "LibraryMonitor.c"
+}
+
+
+static void _library_monitor_on_find_move_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_find_move_cancelled ((LibraryMonitor*) self, job);
+#line 7690 "LibraryMonitor.c"
+}
+
+
+static LibraryMonitorFindMoveJob* library_monitor_find_move_job_construct (GType object_type, LibraryMonitor* owner, GFile* file, GeeCollection* candidates) {
+ LibraryMonitorFindMoveJob* self = NULL;
+ LibraryMonitor* _tmp0_ = NULL;
+ LibraryMonitor* _tmp1_ = NULL;
+ LibraryMonitor* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ LibraryMonitor* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_MONITOR (owner), NULL);
+#line 110 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 110 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (candidates), NULL);
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = owner;
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = owner;
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = owner;
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_->priv->cancellable;
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = owner;
+#line 111 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = (LibraryMonitorFindMoveJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _library_monitor_on_find_move_completed_completion_callback, _tmp1_, _tmp3_, _library_monitor_on_find_move_cancelled_cancellation_callback, _tmp4_, NULL);
+#line 113 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = file;
+#line 113 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 113 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->file);
+#line 113 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->file = _tmp6_;
+#line 114 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = candidates;
+#line 114 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 114 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->candidates);
+#line 114 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->candidates = _tmp8_;
+#line 116 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ background_job_set_completion_priority (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob), G_PRIORITY_LOW);
+#line 110 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self;
+#line 7743 "LibraryMonitor.c"
+}
+
+
+static LibraryMonitorFindMoveJob* library_monitor_find_move_job_new (LibraryMonitor* owner, GFile* file, GeeCollection* candidates) {
+#line 110 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return library_monitor_find_move_job_construct (LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB, owner, file, candidates);
+#line 7750 "LibraryMonitor.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 135 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 7757 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_find_move_job_real_execute (BackgroundJob* base) {
+ LibraryMonitorFindMoveJob * self;
+ GeeIterator* iter = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gchar* md5 = NULL;
+ GError * _inner_error_ = NULL;
+#line 119 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB, LibraryMonitorFindMoveJob);
+#line 121 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = self->candidates;
+#line 121 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 121 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ iter = _tmp1_;
+#line 122 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 7781 "LibraryMonitor.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ Monitorable* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 122 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = iter;
+#line 122 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 122 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp3_) {
+#line 122 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7799 "LibraryMonitor.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = iter;
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = (Monitorable*) _tmp5_;
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _tmp7_;
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = g_file_query_exists (_tmp8_, NULL);
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _tmp9_;
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp8_);
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp6_);
+#line 123 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp10_) {
+#line 7821 "LibraryMonitor.c"
+ GeeIterator* _tmp11_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = iter;
+#line 124 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_iterator_remove (_tmp11_);
+#line 7827 "LibraryMonitor.c"
+ }
+ }
+#line 128 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = self->candidates;
+#line 128 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = gee_collection_get_size (_tmp12_);
+#line 128 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 128 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp14_ == 0) {
+#line 129 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (iter);
+#line 129 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 7842 "LibraryMonitor.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ md5 = NULL;
+#line 7846 "LibraryMonitor.c"
+ {
+ gchar* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = self->file;
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = md5_file (_tmp16_, &_inner_error_);
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = _tmp17_;
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7860 "LibraryMonitor.c"
+ goto __catch480_g_error;
+ }
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = _tmp15_;
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 133 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ md5 = _tmp18_;
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp15_);
+#line 7873 "LibraryMonitor.c"
+ }
+ goto __finally480;
+ __catch480_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp19_ = NULL;
+ GError* _tmp20_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ err = _inner_error_;
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _inner_error_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp19_ = err;
+#line 135 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp20_ = _g_error_copy0 (_tmp19_);
+#line 135 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (self->err);
+#line 135 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->err = _tmp20_;
+#line 137 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (err);
+#line 137 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 137 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (iter);
+#line 137 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 7901 "LibraryMonitor.c"
+ }
+ __finally480:
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (iter);
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 132 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 7916 "LibraryMonitor.c"
+ }
+ {
+ GeeIterator* _candidate_it = NULL;
+ GeeCollection* _tmp21_ = NULL;
+ GeeIterator* _tmp22_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp21_ = self->candidates;
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp22_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _candidate_it = _tmp22_;
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 7930 "LibraryMonitor.c"
+ GeeIterator* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ Monitorable* candidate = NULL;
+ GeeIterator* _tmp25_ = NULL;
+ gpointer _tmp26_ = NULL;
+ Monitorable* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ Monitorable* _tmp32_ = NULL;
+ Monitorable* _tmp46_ = NULL;
+ Monitorable* _tmp47_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp23_ = _candidate_it;
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp24_ = gee_iterator_next (_tmp23_);
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp24_) {
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 7952 "LibraryMonitor.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp25_ = _candidate_it;
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp26_ = gee_iterator_get (_tmp25_);
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ candidate = (Monitorable*) _tmp26_;
+#line 141 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp27_ = candidate;
+#line 141 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp28_ = media_source_get_master_md5 (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 141 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp29_ = _tmp28_;
+#line 141 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp30_ = md5;
+#line 141 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp31_ = g_strcmp0 (_tmp29_, _tmp30_) != 0;
+#line 141 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp29_);
+#line 141 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp31_) {
+#line 142 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidate);
+#line 142 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 7978 "LibraryMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp32_ = self->match;
+#line 144 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp32_ != NULL) {
+#line 7984 "LibraryMonitor.c"
+ GFile* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ Monitorable* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ Monitorable* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ GeeArrayList* _tmp42_ = NULL;
+ GeeArrayList* _tmp44_ = NULL;
+ Monitorable* _tmp45_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp33_ = self->file;
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp34_ = g_file_get_path (_tmp33_);
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp35_ = _tmp34_;
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp36_ = self->match;
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp37_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_DATA_OBJECT, DataObject));
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp38_ = _tmp37_;
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp39_ = candidate;
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp40_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_DATA_OBJECT, DataObject));
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp41_ = _tmp40_;
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_warning ("LibraryMonitor.vala:145: Found more than one media match for %s: %s an" \
+"d %s", _tmp35_, _tmp38_, _tmp41_);
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp41_);
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp38_);
+#line 145 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp35_);
+#line 148 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp42_ = self->losers;
+#line 148 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp42_ == NULL) {
+#line 8027 "LibraryMonitor.c"
+ GeeArrayList* _tmp43_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp43_ = gee_array_list_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 149 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->losers);
+#line 149 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->losers = _tmp43_;
+#line 8035 "LibraryMonitor.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp44_ = self->losers;
+#line 151 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp45_ = candidate;
+#line 151 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp45_);
+#line 153 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidate);
+#line 153 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ continue;
+#line 8047 "LibraryMonitor.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp46_ = candidate;
+#line 156 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp47_ = _g_object_ref0 (_tmp46_);
+#line 156 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->match);
+#line 156 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->match = _tmp47_;
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidate);
+#line 8059 "LibraryMonitor.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_candidate_it);
+#line 8063 "LibraryMonitor.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 119 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (iter);
+#line 8069 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_find_move_job_class_init (LibraryMonitorFindMoveJobClass * klass) {
+#line 103 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_find_move_job_parent_class = g_type_class_peek_parent (klass);
+#line 103 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((BackgroundJobClass *) klass)->finalize = library_monitor_find_move_job_finalize;
+#line 103 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((BackgroundJobClass *) klass)->execute = library_monitor_find_move_job_real_execute;
+#line 8080 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_find_move_job_instance_init (LibraryMonitorFindMoveJob * self) {
+#line 106 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->match = NULL;
+#line 107 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->losers = NULL;
+#line 108 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->err = NULL;
+#line 8091 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_find_move_job_finalize (BackgroundJob* obj) {
+ LibraryMonitorFindMoveJob * self;
+#line 103 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_MONITOR_TYPE_FIND_MOVE_JOB, LibraryMonitorFindMoveJob);
+#line 104 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->file);
+#line 105 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->candidates);
+#line 106 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->match);
+#line 107 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->losers);
+#line 108 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (self->err);
+#line 103 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ BACKGROUND_JOB_CLASS (library_monitor_find_move_job_parent_class)->finalize (obj);
+#line 8111 "LibraryMonitor.c"
+}
+
+
+static GType library_monitor_find_move_job_get_type (void) {
+ static volatile gsize library_monitor_find_move_job_type_id__volatile = 0;
+ if (g_once_init_enter (&library_monitor_find_move_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryMonitorFindMoveJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_monitor_find_move_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryMonitorFindMoveJob), 0, (GInstanceInitFunc) library_monitor_find_move_job_instance_init, NULL };
+ GType library_monitor_find_move_job_type_id;
+ library_monitor_find_move_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "LibraryMonitorFindMoveJob", &g_define_type_info, 0);
+ g_once_init_leave (&library_monitor_find_move_job_type_id__volatile, library_monitor_find_move_job_type_id);
+ }
+ return library_monitor_find_move_job_type_id__volatile;
+}
+
+
+static void _library_monitor_on_runtime_find_move_completed_completion_callback (BackgroundJob* job, gpointer self) {
+#line 168 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_on_runtime_find_move_completed ((LibraryMonitor*) self, job);
+#line 8130 "LibraryMonitor.c"
+}
+
+
+static LibraryMonitorRuntimeFindMoveJob* library_monitor_runtime_find_move_job_construct (GType object_type, LibraryMonitor* owner, GFile* file, GeeCollection* candidates) {
+ LibraryMonitorRuntimeFindMoveJob* self = NULL;
+ LibraryMonitor* _tmp0_ = NULL;
+ LibraryMonitor* _tmp1_ = NULL;
+ LibraryMonitor* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_MONITOR (owner), NULL);
+#line 167 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 167 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (candidates), NULL);
+#line 168 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = owner;
+#line 168 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = owner;
+#line 168 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = owner;
+#line 168 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp2_->priv->cancellable;
+#line 168 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = (LibraryMonitorRuntimeFindMoveJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _library_monitor_on_runtime_find_move_completed_completion_callback, _tmp1_, _tmp3_, NULL, NULL, NULL);
+#line 170 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = file;
+#line 170 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 170 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->file);
+#line 170 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->file = _tmp5_;
+#line 171 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = candidates;
+#line 171 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 171 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->candidates);
+#line 171 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->candidates = _tmp7_;
+#line 173 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ background_job_set_completion_priority (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob), G_PRIORITY_LOW);
+#line 167 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self;
+#line 8180 "LibraryMonitor.c"
+}
+
+
+static LibraryMonitorRuntimeFindMoveJob* library_monitor_runtime_find_move_job_new (LibraryMonitor* owner, GFile* file, GeeCollection* candidates) {
+#line 167 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return library_monitor_runtime_find_move_job_construct (LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB, owner, file, candidates);
+#line 8187 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_runtime_find_move_job_real_execute (BackgroundJob* base) {
+ LibraryMonitorRuntimeFindMoveJob * self;
+ gchar* md5 = NULL;
+ GError * _inner_error_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB, LibraryMonitorRuntimeFindMoveJob);
+#line 177 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ md5 = NULL;
+#line 8199 "LibraryMonitor.c"
+ {
+ gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = self->file;
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = md5_file (_tmp1_, &_inner_error_);
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = _tmp2_;
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8213 "LibraryMonitor.c"
+ goto __catch481_g_error;
+ }
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _tmp0_;
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 179 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ md5 = _tmp3_;
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp0_);
+#line 8226 "LibraryMonitor.c"
+ }
+ goto __finally481;
+ __catch481_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+ GError* _tmp5_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ err = _inner_error_;
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _inner_error_ = NULL;
+#line 181 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = err;
+#line 181 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = _g_error_copy0 (_tmp4_);
+#line 181 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (self->err);
+#line 181 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->err = _tmp5_;
+#line 183 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (err);
+#line 183 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 183 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 8252 "LibraryMonitor.c"
+ }
+ __finally481:
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 178 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return;
+#line 8265 "LibraryMonitor.c"
+ }
+ {
+ GeeIterator* _candidate_it = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = self->candidates;
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _candidate_it = _tmp7_;
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ while (TRUE) {
+#line 8279 "LibraryMonitor.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ Monitorable* candidate = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ Monitorable* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp8_ = _candidate_it;
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!_tmp9_) {
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 8298 "LibraryMonitor.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp10_ = _candidate_it;
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ candidate = (Monitorable*) _tmp11_;
+#line 187 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp12_ = candidate;
+#line 187 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp13_ = media_source_get_master_md5 (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 187 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 187 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp15_ = md5;
+#line 187 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp16_ = g_strcmp0 (_tmp14_, _tmp15_) == 0;
+#line 187 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (_tmp14_);
+#line 187 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (_tmp16_) {
+#line 8320 "LibraryMonitor.c"
+ Monitorable* _tmp17_ = NULL;
+ Monitorable* _tmp18_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp17_ = candidate;
+#line 188 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 188 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->match);
+#line 188 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->match = _tmp18_;
+#line 190 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidate);
+#line 190 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ break;
+#line 8335 "LibraryMonitor.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (candidate);
+#line 8339 "LibraryMonitor.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_candidate_it);
+#line 8343 "LibraryMonitor.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_free0 (md5);
+#line 8347 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_runtime_find_move_job_class_init (LibraryMonitorRuntimeFindMoveJobClass * klass) {
+#line 161 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_runtime_find_move_job_parent_class = g_type_class_peek_parent (klass);
+#line 161 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((BackgroundJobClass *) klass)->finalize = library_monitor_runtime_find_move_job_finalize;
+#line 161 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((BackgroundJobClass *) klass)->execute = library_monitor_runtime_find_move_job_real_execute;
+#line 8358 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_runtime_find_move_job_instance_init (LibraryMonitorRuntimeFindMoveJob * self) {
+#line 164 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->match = NULL;
+#line 165 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->err = NULL;
+#line 8367 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_runtime_find_move_job_finalize (BackgroundJob* obj) {
+ LibraryMonitorRuntimeFindMoveJob * self;
+#line 161 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_MONITOR_TYPE_RUNTIME_FIND_MOVE_JOB, LibraryMonitorRuntimeFindMoveJob);
+#line 162 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->file);
+#line 163 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->candidates);
+#line 164 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->match);
+#line 165 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_error_free0 (self->err);
+#line 161 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ BACKGROUND_JOB_CLASS (library_monitor_runtime_find_move_job_parent_class)->finalize (obj);
+#line 8385 "LibraryMonitor.c"
+}
+
+
+static GType library_monitor_runtime_find_move_job_get_type (void) {
+ static volatile gsize library_monitor_runtime_find_move_job_type_id__volatile = 0;
+ if (g_once_init_enter (&library_monitor_runtime_find_move_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryMonitorRuntimeFindMoveJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_monitor_runtime_find_move_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryMonitorRuntimeFindMoveJob), 0, (GInstanceInitFunc) library_monitor_runtime_find_move_job_instance_init, NULL };
+ GType library_monitor_runtime_find_move_job_type_id;
+ library_monitor_runtime_find_move_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "LibraryMonitorRuntimeFindMoveJob", &g_define_type_info, 0);
+ g_once_init_leave (&library_monitor_runtime_find_move_job_type_id__volatile, library_monitor_runtime_find_move_job_type_id);
+ }
+ return library_monitor_runtime_find_move_job_type_id__volatile;
+}
+
+
+static LibraryMonitorVerifyJob* library_monitor_verify_job_construct (GType object_type, Monitorable* monitorable, MediaMonitor* monitor) {
+ LibraryMonitorVerifyJob* self = NULL;
+ Monitorable* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+ MediaMonitor* _tmp2_ = NULL;
+ MediaMonitor* _tmp3_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 200 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (monitor), NULL);
+#line 200 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = (LibraryMonitorVerifyJob*) g_type_create_instance (object_type);
+#line 201 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = monitorable;
+#line 201 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 201 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->monitorable);
+#line 201 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->monitorable = _tmp1_;
+#line 202 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = monitor;
+#line 202 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 202 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->monitor);
+#line 202 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->monitor = _tmp3_;
+#line 200 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return self;
+#line 8431 "LibraryMonitor.c"
+}
+
+
+static LibraryMonitorVerifyJob* library_monitor_verify_job_new (Monitorable* monitorable, MediaMonitor* monitor) {
+#line 200 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return library_monitor_verify_job_construct (LIBRARY_MONITOR_TYPE_VERIFY_JOB, monitorable, monitor);
+#line 8438 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_value_verify_job_init (GValue* value) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 8445 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_value_verify_job_free_value (GValue* value) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (value->data[0].v_pointer) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_job_unref (value->data[0].v_pointer);
+#line 8454 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_value_verify_job_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (src_value->data[0].v_pointer) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ dest_value->data[0].v_pointer = library_monitor_verify_job_ref (src_value->data[0].v_pointer);
+#line 8464 "LibraryMonitor.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 8468 "LibraryMonitor.c"
+ }
+}
+
+
+static gpointer library_monitor_value_verify_job_peek_pointer (const GValue* value) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 8476 "LibraryMonitor.c"
+}
+
+
+static gchar* library_monitor_value_verify_job_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (collect_values[0].v_pointer) {
+#line 8483 "LibraryMonitor.c"
+ LibraryMonitorVerifyJob* object;
+ object = collect_values[0].v_pointer;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8490 "LibraryMonitor.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8494 "LibraryMonitor.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = library_monitor_verify_job_ref (object);
+#line 8498 "LibraryMonitor.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 8502 "LibraryMonitor.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return NULL;
+#line 8506 "LibraryMonitor.c"
+}
+
+
+static gchar* library_monitor_value_verify_job_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ LibraryMonitorVerifyJob** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!object_p) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 8517 "LibraryMonitor.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (!value->data[0].v_pointer) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *object_p = NULL;
+#line 8523 "LibraryMonitor.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *object_p = value->data[0].v_pointer;
+#line 8527 "LibraryMonitor.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ *object_p = library_monitor_verify_job_ref (value->data[0].v_pointer);
+#line 8531 "LibraryMonitor.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return NULL;
+#line 8535 "LibraryMonitor.c"
+}
+
+
+static GParamSpec* library_monitor_param_spec_verify_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ LibraryMonitorParamSpecVerifyJob* spec;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, LIBRARY_MONITOR_TYPE_VERIFY_JOB), NULL);
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return G_PARAM_SPEC (spec);
+#line 8549 "LibraryMonitor.c"
+}
+
+
+static gpointer library_monitor_value_get_verify_job (const GValue* value) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIBRARY_MONITOR_TYPE_VERIFY_JOB), NULL);
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return value->data[0].v_pointer;
+#line 8558 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_value_set_verify_job (GValue* value, gpointer v_object) {
+ LibraryMonitorVerifyJob* old;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIBRARY_MONITOR_TYPE_VERIFY_JOB));
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (v_object) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIBRARY_MONITOR_TYPE_VERIFY_JOB));
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_job_ref (value->data[0].v_pointer);
+#line 8578 "LibraryMonitor.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 8582 "LibraryMonitor.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (old) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_job_unref (old);
+#line 8588 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_value_take_verify_job (GValue* value, gpointer v_object) {
+ LibraryMonitorVerifyJob* old;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, LIBRARY_MONITOR_TYPE_VERIFY_JOB));
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (v_object) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, LIBRARY_MONITOR_TYPE_VERIFY_JOB));
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 8607 "LibraryMonitor.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 8611 "LibraryMonitor.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (old) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_job_unref (old);
+#line 8617 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_verify_job_class_init (LibraryMonitorVerifyJobClass * klass) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_verify_job_parent_class = g_type_class_peek_parent (klass);
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((LibraryMonitorVerifyJobClass *) klass)->finalize = library_monitor_verify_job_finalize;
+#line 8627 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_verify_job_instance_init (LibraryMonitorVerifyJob * self) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->ref_count = 1;
+#line 8634 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_verify_job_finalize (LibraryMonitorVerifyJob* obj) {
+ LibraryMonitorVerifyJob * self;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_MONITOR_TYPE_VERIFY_JOB, LibraryMonitorVerifyJob);
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_handlers_destroy (self);
+#line 197 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->monitorable);
+#line 198 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->monitor);
+#line 8648 "LibraryMonitor.c"
+}
+
+
+static GType library_monitor_verify_job_get_type (void) {
+ static volatile gsize library_monitor_verify_job_type_id__volatile = 0;
+ if (g_once_init_enter (&library_monitor_verify_job_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { library_monitor_value_verify_job_init, library_monitor_value_verify_job_free_value, library_monitor_value_verify_job_copy_value, library_monitor_value_verify_job_peek_pointer, "p", library_monitor_value_verify_job_collect_value, "p", library_monitor_value_verify_job_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryMonitorVerifyJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_monitor_verify_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryMonitorVerifyJob), 0, (GInstanceInitFunc) library_monitor_verify_job_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType library_monitor_verify_job_type_id;
+ library_monitor_verify_job_type_id = g_type_register_fundamental (g_type_fundamental_next (), "LibraryMonitorVerifyJob", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&library_monitor_verify_job_type_id__volatile, library_monitor_verify_job_type_id);
+ }
+ return library_monitor_verify_job_type_id__volatile;
+}
+
+
+static gpointer library_monitor_verify_job_ref (gpointer instance) {
+ LibraryMonitorVerifyJob* self;
+ self = instance;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ return instance;
+#line 8673 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_verify_job_unref (gpointer instance) {
+ LibraryMonitorVerifyJob* self;
+ self = instance;
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ LIBRARY_MONITOR_VERIFY_JOB_GET_CLASS (self)->finalize (self);
+#line 196 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 8686 "LibraryMonitor.c"
+ }
+}
+
+
+static void library_monitor_class_init (LibraryMonitorClass * klass) {
+ GeeHashSet* _tmp0_ = NULL;
+ HashTimedQueue* _tmp1_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_type_class_add_private (klass, sizeof (LibraryMonitorPrivate));
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->close = library_monitor_real_close;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->discovery_started = library_monitor_real_discovery_started;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->file_discovered = library_monitor_real_file_discovered;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->discovery_completed = library_monitor_real_discovery_completed;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_created = library_monitor_real_notify_file_created;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_moved = library_monitor_real_notify_file_moved;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_altered = library_monitor_real_notify_file_altered;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_attributes_altered = library_monitor_real_notify_file_attributes_altered;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_alteration_completed = library_monitor_real_notify_file_alteration_completed;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ ((DirectoryMonitorClass *) klass)->notify_file_deleted = library_monitor_real_notify_file_deleted;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_monitor_finalize;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_new ("auto_update_progress", TYPE_LIBRARY_MONITOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__INT_INT, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_new ("auto_import_preparing", TYPE_LIBRARY_MONITOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_new ("auto_import_progress", TYPE_LIBRARY_MONITOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__UINT64_UINT64, G_TYPE_NONE, 2, G_TYPE_UINT64, G_TYPE_UINT64);
+#line 206 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_rec_mutex_init (&__lock_library_monitor_blacklist);
+#line 206 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = gee_hash_set_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 206 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_blacklist = _tmp0_;
+#line 207 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = hash_timed_queue_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, (guint) LIBRARY_MONITOR_MIN_BLACKLIST_DURATION_MSEC, _library_monitor_on_unblacklist_file_dequeued_callback, NULL, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, G_PRIORITY_LOW);
+#line 207 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ library_monitor_to_unblacklist = _tmp1_;
+#line 8736 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_instance_init (LibraryMonitor * self) {
+ guint _tmp0_ = 0U;
+ Workers* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ GeeHashSet* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ GeeLinkedList* _tmp7_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv = LIBRARY_MONITOR_GET_PRIVATE (self);
+#line 210 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = workers_thread_per_cpu_minus_one ();
+#line 210 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = workers_new (_tmp0_, FALSE);
+#line 210 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->workers = _tmp1_;
+#line 211 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp2_ = g_cancellable_new ();
+#line 211 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->cancellable = _tmp2_;
+#line 212 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->auto_import = FALSE;
+#line 213 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->unknown_files = NULL;
+#line 214 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp3_ = gee_array_list_new (TYPE_MEDIA_MONITOR, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 214 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->monitors = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_LIST, GeeList);
+#line 215 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->discovered = NULL;
+#line 216 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp4_ = gee_hash_set_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 216 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->import_queue = _tmp4_;
+#line 217 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp5_ = gee_hash_set_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 217 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->pending_imports = _tmp5_;
+#line 218 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp6_ = gee_array_list_new (TYPE_BATCH_IMPORT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 218 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->batch_import_queue = _tmp6_;
+#line 219 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->current_import_roll = NULL;
+#line 220 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->last_import_roll_use = (time_t) 0;
+#line 221 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->current_batch_import = NULL;
+#line 222 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->checksums_completed = 0;
+#line 223 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->checksums_total = 0;
+#line 224 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->import_queue_timer_id = (guint) 0;
+#line 225 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp7_ = gee_linked_list_new (LIBRARY_MONITOR_TYPE_VERIFY_JOB, (GBoxedCopyFunc) library_monitor_verify_job_ref, library_monitor_verify_job_unref, NULL, NULL, NULL);
+#line 225 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->verify_queue = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_QUEUE, GeeQueue);
+#line 226 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->outstanding_verify_jobs = 0;
+#line 227 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->completed_monitorable_verifies = 0;
+#line 228 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self->priv->total_monitorable_verifies = 0;
+#line 8805 "LibraryMonitor.c"
+}
+
+
+static void library_monitor_finalize (GObject* obj) {
+ LibraryMonitor * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LIBRARY_MONITOR, LibraryMonitor);
+#line 247 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 247 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _tmp1_ = _tmp0_;
+#line 247 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_parse_name ("auto-import-from-library-changed", TYPE_CONFIGURATION_FACADE, &_tmp2_, NULL, FALSE);
+#line 247 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _library_monitor_on_config_changed_configuration_facade_auto_import_from_library_changed, self);
+#line 247 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (_tmp1_);
+#line 210 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _workers_unref0 (self->priv->workers);
+#line 211 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 213 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->unknown_files);
+#line 214 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->monitors);
+#line 215 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->discovered);
+#line 216 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->import_queue);
+#line 217 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->pending_imports);
+#line 218 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->batch_import_queue);
+#line 219 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _batch_import_roll_unref0 (self->priv->current_import_roll);
+#line 221 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->current_batch_import);
+#line 225 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ _g_object_unref0 (self->priv->verify_queue);
+#line 97 "/home/jens/Source/shotwell/src/LibraryMonitor.vala"
+ G_OBJECT_CLASS (library_monitor_parent_class)->finalize (obj);
+#line 8850 "LibraryMonitor.c"
+}
+
+
+GType library_monitor_get_type (void) {
+ static volatile gsize library_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&library_monitor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryMonitor), 0, (GInstanceInitFunc) library_monitor_instance_init, NULL };
+ GType library_monitor_type_id;
+ library_monitor_type_id = g_type_register_static (TYPE_DIRECTORY_MONITOR, "LibraryMonitor", &g_define_type_info, 0);
+ g_once_init_leave (&library_monitor_type_id__volatile, library_monitor_type_id);
+ }
+ return library_monitor_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/MediaDataRepresentation.c b/src/MediaDataRepresentation.c
new file mode 100644
index 0000000..24f4ef7
--- /dev/null
+++ b/src/MediaDataRepresentation.c
@@ -0,0 +1,8309 @@
+/* MediaDataRepresentation.c generated by valac 0.32.1, the Vala compiler
+ * generated from MediaDataRepresentation.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <gio/gio.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_BACKING_FILE_STATE (backing_file_state_get_type ())
+#define BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_FILE_STATE, BackingFileState))
+#define BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+#define IS_BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_FILE_STATE))
+#define IS_BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_FILE_STATE))
+#define BACKING_FILE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+
+typedef struct _BackingFileState BackingFileState;
+typedef struct _BackingFileStateClass BackingFileStateClass;
+typedef struct _BackingFileStatePrivate BackingFileStatePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+typedef struct _ParamSpecBackingFileState ParamSpecBackingFileState;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate;
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _MediaSourcePrivate MediaSourcePrivate;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+typedef struct _SourceHoldingTankPrivate SourceHoldingTankPrivate;
+
+#define TYPE_DATABASE_SOURCE_HOLDING_TANK (database_source_holding_tank_get_type ())
+#define DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank))
+#define DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+#define IS_DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define IS_DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define DATABASE_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+
+typedef struct _DatabaseSourceHoldingTank DatabaseSourceHoldingTank;
+typedef struct _DatabaseSourceHoldingTankClass DatabaseSourceHoldingTankClass;
+typedef struct _DatabaseSourceHoldingTankPrivate DatabaseSourceHoldingTankPrivate;
+
+#define TYPE_MEDIA_SOURCE_HOLDING_TANK (media_source_holding_tank_get_type ())
+#define MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank))
+#define MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+#define IS_MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define IS_MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define MEDIA_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+
+typedef struct _MediaSourceHoldingTank MediaSourceHoldingTank;
+typedef struct _MediaSourceHoldingTankClass MediaSourceHoldingTankClass;
+typedef struct _MediaSourceHoldingTankPrivate MediaSourceHoldingTankPrivate;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+typedef struct _TransactionControllerPrivate TransactionControllerPrivate;
+
+#define TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER (media_source_transaction_controller_get_type ())
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionController))
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionControllerClass))
+#define IS_MEDIA_SOURCE_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER))
+#define IS_MEDIA_SOURCE_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER))
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionControllerClass))
+
+typedef struct _MediaSourceTransactionController MediaSourceTransactionController;
+typedef struct _MediaSourceTransactionControllerClass MediaSourceTransactionControllerClass;
+typedef struct _MediaSourceTransactionControllerPrivate MediaSourceTransactionControllerPrivate;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+typedef struct _MediaSourceCollectionPrivate MediaSourceCollectionPrivate;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_MEDIA_MONITOR (media_monitor_get_type ())
+#define MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_MONITOR, MediaMonitor))
+#define MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+#define IS_MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_MONITOR))
+#define IS_MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_MONITOR))
+#define MEDIA_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+
+typedef struct _MediaMonitor MediaMonitor;
+typedef struct _MediaMonitorClass MediaMonitorClass;
+#define _source_holding_tank_unref0(var) ((var == NULL) ? NULL : (var = (source_holding_tank_unref (var), NULL)))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+#define _import_id_free0(var) ((var == NULL) ? NULL : (var = (import_id_free (var), NULL)))
+
+#define TYPE_AGGREGATE_PROGRESS_MONITOR (aggregate_progress_monitor_get_type ())
+#define AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitor))
+#define AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))
+#define IS_AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR))
+#define IS_AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR))
+#define AGGREGATE_PROGRESS_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))
+
+typedef struct _AggregateProgressMonitor AggregateProgressMonitor;
+typedef struct _AggregateProgressMonitorClass AggregateProgressMonitorClass;
+#define _aggregate_progress_monitor_unref0(var) ((var == NULL) ? NULL : (var = (aggregate_progress_monitor_unref (var), NULL)))
+
+#define TOMBSTONE_TYPE_REASON (tombstone_reason_get_type ())
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+typedef struct _MediaCollectionRegistryPrivate MediaCollectionRegistryPrivate;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+
+#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
+#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
+#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
+#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
+#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+
+typedef struct _DirectoryMonitor DirectoryMonitor;
+typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
+
+#define TYPE_LIBRARY_MONITOR (library_monitor_get_type ())
+#define LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitor))
+#define LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+#define IS_LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR))
+#define IS_LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR))
+#define LIBRARY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+
+typedef struct _LibraryMonitor LibraryMonitor;
+typedef struct _LibraryMonitorClass LibraryMonitorClass;
+
+#define TYPE_LIBRARY_MONITOR_POOL (library_monitor_pool_get_type ())
+#define LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPool))
+#define LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+#define IS_LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR_POOL))
+#define IS_LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR_POOL))
+#define LIBRARY_MONITOR_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+
+typedef struct _LibraryMonitorPool LibraryMonitorPool;
+typedef struct _LibraryMonitorPoolClass LibraryMonitorPoolClass;
+#define _library_monitor_pool_unref0(var) ((var == NULL) ? NULL : (var = (library_monitor_pool_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _ParamSpecMediaCollectionRegistry ParamSpecMediaCollectionRegistry;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _BackingFileState {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingFileStatePrivate * priv;
+ gchar* filepath;
+ gint64 filesize;
+ time_t modification_time;
+ gchar* md5;
+};
+
+struct _BackingFileStateClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingFileState *self);
+};
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+struct _ParamSpecBackingFileState {
+ GParamSpec parent_instance;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+struct _ThumbnailSource {
+ DataSource parent_instance;
+ ThumbnailSourcePrivate * priv;
+};
+
+struct _ThumbnailSourceClass {
+ DataSourceClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailSource* self);
+ GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ gchar* (*get_representative_id) (ThumbnailSource* self);
+ PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self);
+ void (*thumbnail_altered) (ThumbnailSource* self);
+};
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _MediaSource {
+ ThumbnailSource parent_instance;
+ MediaSourcePrivate * priv;
+};
+
+struct _MediaSourceClass {
+ ThumbnailSourceClass parent_class;
+ void (*notify_master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+ gboolean (*set_event_id) (MediaSource* self, EventID* id);
+ gchar* (*get_basename) (MediaSource* self);
+ GFile* (*get_file) (MediaSource* self);
+ GFile* (*get_master_file) (MediaSource* self);
+ guint64 (*get_master_filesize) (MediaSource* self);
+ guint64 (*get_filesize) (MediaSource* self);
+ time_t (*get_timestamp) (MediaSource* self);
+ BackingFileState** (*get_backing_files_state) (MediaSource* self, int* result_length1);
+ gchar* (*get_title) (MediaSource* self);
+ gchar* (*get_comment) (MediaSource* self);
+ void (*set_title) (MediaSource* self, const gchar* title);
+ gboolean (*set_comment) (MediaSource* self, const gchar* comment);
+ Rating (*get_rating) (MediaSource* self);
+ void (*set_rating) (MediaSource* self, Rating rating);
+ void (*increase_rating) (MediaSource* self);
+ void (*decrease_rating) (MediaSource* self);
+ void (*get_dimensions) (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+ GdkPixbuf* (*get_preview_pixbuf) (MediaSource* self, Scaling* scaling, GError** error);
+ gboolean (*is_trashed) (MediaSource* self);
+ void (*trash) (MediaSource* self);
+ void (*untrash) (MediaSource* self);
+ gboolean (*is_offline) (MediaSource* self);
+ void (*mark_offline) (MediaSource* self);
+ void (*mark_online) (MediaSource* self);
+ gchar* (*get_master_md5) (MediaSource* self);
+ void (*get_event_id) (MediaSource* self, EventID* result);
+ time_t (*get_exposure_time) (MediaSource* self);
+ void (*get_import_id) (MediaSource* self, ImportID* result);
+ void (*master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+};
+
+struct _MediaSourcePrivate {
+ Event* event;
+ gchar* indexable_keywords;
+};
+
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+struct _SourceHoldingTank {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceHoldingTankPrivate * priv;
+};
+
+struct _SourceHoldingTankClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceHoldingTank *self);
+ void (*notify_contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+ void (*contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+};
+
+struct _DatabaseSourceHoldingTank {
+ SourceHoldingTank parent_instance;
+ DatabaseSourceHoldingTankPrivate * priv;
+};
+
+struct _DatabaseSourceHoldingTankClass {
+ SourceHoldingTankClass parent_class;
+};
+
+struct _MediaSourceHoldingTank {
+ DatabaseSourceHoldingTank parent_instance;
+ MediaSourceHoldingTankPrivate * priv;
+};
+
+struct _MediaSourceHoldingTankClass {
+ DatabaseSourceHoldingTankClass parent_class;
+};
+
+struct _MediaSourceHoldingTankPrivate {
+ GeeHashMap* master_file_map;
+};
+
+typedef gboolean (*SourceHoldingTankCheckToKeep) (DataSource* source, Alteration* alteration, void* user_data);
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+struct _TransactionController {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TransactionControllerPrivate * priv;
+};
+
+struct _TransactionControllerClass {
+ GTypeClass parent_class;
+ void (*finalize) (TransactionController *self);
+ void (*begin_impl) (TransactionController* self, GError** error);
+ void (*commit_impl) (TransactionController* self, GError** error);
+};
+
+struct _MediaSourceTransactionController {
+ TransactionController parent_instance;
+ MediaSourceTransactionControllerPrivate * priv;
+};
+
+struct _MediaSourceTransactionControllerClass {
+ TransactionControllerClass parent_class;
+};
+
+struct _MediaSourceTransactionControllerPrivate {
+ MediaSourceCollection* sources;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _MediaSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ MediaSourceCollectionPrivate * priv;
+};
+
+struct _MediaSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+ MediaSourceHoldingTank* (*create_trashcan) (MediaSourceCollection* self);
+ MediaSourceHoldingTank* (*create_offline_bin) (MediaSourceCollection* self);
+ MediaMonitor* (*create_media_monitor) (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable);
+ gchar* (*get_typename) (MediaSourceCollection* self);
+ gboolean (*is_file_recognized) (MediaSourceCollection* self, GFile* file);
+ MediaSource* (*fetch_by_numeric_id) (MediaSourceCollection* self, gint64 numeric_id);
+ void (*notify_import_roll_altered) (MediaSourceCollection* self);
+ void (*notify_flagged_contents_altered) (MediaSourceCollection* self);
+ void (*notify_media_import_starting) (MediaSourceCollection* self, GeeCollection* media);
+ void (*notify_media_import_completed) (MediaSourceCollection* self, GeeCollection* media);
+ MediaSource* (*fetch_by_source_id) (MediaSourceCollection* self, const gchar* source_id);
+ GeeCollection* (*get_event_source_ids) (MediaSourceCollection* self, EventID* event_id);
+ void (*import_many) (MediaSourceCollection* self, GeeCollection* media);
+ void (*postprocess_imported_media) (MediaSourceCollection* self, GeeCollection* media);
+ void (*media_import_starting) (MediaSourceCollection* self, GeeCollection* media);
+ void (*media_import_completed) (MediaSourceCollection* self, GeeCollection* media);
+ void (*master_file_replaced) (MediaSourceCollection* self, MediaSource* media, GFile* old_file, GFile* new_file);
+ void (*trashcan_contents_altered) (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+ void (*import_roll_altered) (MediaSourceCollection* self);
+ void (*offline_contents_altered) (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+ void (*flagged_contents_altered) (MediaSourceCollection* self);
+ TransactionController* (*get_transaction_controller) (MediaSourceCollection* self);
+};
+
+struct _MediaSourceCollectionPrivate {
+ MediaSourceHoldingTank* trashcan;
+ MediaSourceHoldingTank* offline_bin;
+ GeeHashMap* by_master_file;
+ GeeMultiMap* import_rolls;
+ GeeTreeSet* sorted_import_ids;
+ GeeSet* flagged;
+};
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+typedef enum {
+ TOMBSTONE_REASON_REMOVED_BY_USER = 0,
+ TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE = 1
+} TombstoneReason;
+
+struct _MediaCollectionRegistry {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MediaCollectionRegistryPrivate * priv;
+};
+
+struct _MediaCollectionRegistryClass {
+ GTypeClass parent_class;
+ void (*finalize) (MediaCollectionRegistry *self);
+};
+
+struct _MediaCollectionRegistryPrivate {
+ GeeArrayList* all;
+ GeeHashMap* by_typename;
+};
+
+struct _ParamSpecMediaCollectionRegistry {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer backing_file_state_parent_class = NULL;
+static gpointer media_source_parent_class = NULL;
+extern EventSourceCollection* event_global;
+static IndexableIface* media_source_indexable_parent_iface = NULL;
+static gpointer media_source_holding_tank_parent_class = NULL;
+static gpointer media_source_transaction_controller_parent_class = NULL;
+static gpointer media_source_collection_parent_class = NULL;
+static gpointer media_collection_registry_parent_class = NULL;
+static MediaCollectionRegistry* media_collection_registry_instance;
+static MediaCollectionRegistry* media_collection_registry_instance = NULL;
+extern gboolean commandline_options_no_runtime_monitoring;
+
+gpointer backing_file_state_ref (gpointer instance);
+void backing_file_state_unref (gpointer instance);
+GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_file_state (GValue* value, gpointer v_object);
+void value_take_backing_file_state (GValue* value, gpointer v_object);
+gpointer value_get_backing_file_state (const GValue* value);
+GType backing_file_state_get_type (void) G_GNUC_CONST;
+enum {
+ BACKING_FILE_STATE_DUMMY_PROPERTY
+};
+BackingFileState* backing_file_state_new (const gchar* filepath, gint64 filesize, time_t modification_time, const gchar* md5);
+BackingFileState* backing_file_state_construct (GType object_type, const gchar* filepath, gint64 filesize, time_t modification_time, const gchar* md5);
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+BackingFileState* backing_file_state_new_from_photo_row (BackingPhotoRow* photo_row, const gchar* md5);
+BackingFileState* backing_file_state_construct_from_photo_row (GType object_type, BackingPhotoRow* photo_row, const gchar* md5);
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+GFile* backing_file_state_get_file (BackingFileState* self);
+static void backing_file_state_finalize (BackingFileState* obj);
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+GType rating_get_type (void) G_GNUC_CONST;
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+#define MEDIA_SOURCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_SOURCE, MediaSourcePrivate))
+enum {
+ MEDIA_SOURCE_DUMMY_PROPERTY
+};
+MediaSource* media_source_construct (GType object_type, gint64 object_id);
+ThumbnailSource* thumbnail_source_construct (GType object_type, gint64 object_id);
+guint64 media_source_internal_add_flags (guint64 flags, guint64 selector);
+guint64 media_source_internal_remove_flags (guint64 flags, guint64 selector);
+gboolean media_source_internal_is_flag_set (guint64 flags, guint64 selector);
+void media_source_notify_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file);
+static void media_source_real_notify_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file);
+static void media_source_real_notify_altered (DataObject* base, Alteration* alteration);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+static void media_source_update_indexable_keywords (MediaSource* self);
+Alteration* alteration_compress (Alteration* self, Alteration* other);
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+static void media_source_real_notify_membership_changed (DataObject* base, DataCollection* collection);
+void data_object_notify_membership_changed (DataObject* self, DataCollection* collection);
+gchar* media_source_get_title (MediaSource* self);
+gchar* media_source_get_basename (MediaSource* self);
+gchar* media_source_get_comment (MediaSource* self);
+gchar* indexable_prepare_indexable_strings (gchar** strs, int strs_length1);
+static const gchar* media_source_real_get_indexable_keywords (Indexable* base);
+gboolean media_source_set_event_id (MediaSource* self, EventID* id);
+static gboolean media_source_real_set_event_id (MediaSource* self, EventID* id);
+gboolean media_source_delete_original_file (MediaSource* self);
+GFile* media_source_get_master_file (MediaSource* self);
+GFile* app_dirs_get_import_dir (void);
+gboolean query_is_directory_empty (GFile* dir, GError** error);
+static gchar* media_source_real_get_name (DataObject* base);
+gboolean is_string_empty (const gchar* s);
+static gchar* media_source_real_get_basename (MediaSource* self);
+GFile* media_source_get_file (MediaSource* self);
+static GFile* media_source_real_get_file (MediaSource* self);
+static GFile* media_source_real_get_master_file (MediaSource* self);
+guint64 media_source_get_master_filesize (MediaSource* self);
+static guint64 media_source_real_get_master_filesize (MediaSource* self);
+guint64 media_source_get_filesize (MediaSource* self);
+static guint64 media_source_real_get_filesize (MediaSource* self);
+time_t media_source_get_timestamp (MediaSource* self);
+static time_t media_source_real_get_timestamp (MediaSource* self);
+BackingFileState** media_source_get_backing_files_state (MediaSource* self, int* result_length1);
+static BackingFileState** media_source_real_get_backing_files_state (MediaSource* self, int* result_length1);
+static gchar* media_source_real_get_title (MediaSource* self);
+static gchar* media_source_real_get_comment (MediaSource* self);
+void media_source_set_title (MediaSource* self, const gchar* title);
+static void media_source_real_set_title (MediaSource* self, const gchar* title);
+gboolean media_source_set_comment (MediaSource* self, const gchar* comment);
+static gboolean media_source_real_set_comment (MediaSource* self, const gchar* comment);
+gchar* media_source_prep_title (const gchar* title);
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+#define DEFAULT_USER_TEXT_INPUT_LENGTH 1024
+gchar* media_source_prep_comment (const gchar* comment);
+Rating media_source_get_rating (MediaSource* self);
+static Rating media_source_real_get_rating (MediaSource* self);
+void media_source_set_rating (MediaSource* self, Rating rating);
+static void media_source_real_set_rating (MediaSource* self, Rating rating);
+void media_source_increase_rating (MediaSource* self);
+static void media_source_real_increase_rating (MediaSource* self);
+void media_source_decrease_rating (MediaSource* self);
+static void media_source_real_decrease_rating (MediaSource* self);
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+static void media_source_real_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+GdkPixbuf* media_source_get_preview_pixbuf (MediaSource* self, Scaling* scaling, GError** error);
+static GdkPixbuf* media_source_real_get_preview_pixbuf (MediaSource* self, Scaling* scaling, GError** error);
+gboolean media_source_is_trashed (MediaSource* self);
+static gboolean media_source_real_is_trashed (MediaSource* self);
+void media_source_trash (MediaSource* self);
+static void media_source_real_trash (MediaSource* self);
+void media_source_untrash (MediaSource* self);
+static void media_source_real_untrash (MediaSource* self);
+gboolean media_source_is_offline (MediaSource* self);
+static gboolean media_source_real_is_offline (MediaSource* self);
+void media_source_mark_offline (MediaSource* self);
+static void media_source_real_mark_offline (MediaSource* self);
+void media_source_mark_online (MediaSource* self);
+static void media_source_real_mark_online (MediaSource* self);
+gchar* media_source_get_master_md5 (MediaSource* self);
+static gchar* media_source_real_get_master_md5 (MediaSource* self);
+void media_source_get_event_id (MediaSource* self, EventID* result);
+static void media_source_real_get_event_id (MediaSource* self, EventID* result);
+Event* media_source_get_event (MediaSource* self);
+gboolean event_id_is_valid (EventID *self);
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+Event* event_source_collection_fetch (EventSourceCollection* self, EventID* event_id);
+gboolean media_source_set_event (MediaSource* self, Event* new_event);
+void event_get_event_id (Event* self, EventID* result);
+#define EVENT_ID_INVALID ((gint64) -1)
+void event_id_init (EventID *self, gint64 id);
+void event_detach (Event* self, MediaSource* source);
+void event_attach (Event* self, MediaSource* source);
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+void media_source_set_many_to_event (GeeCollection* media_sources, Event* event, TransactionController* controller, GError** error);
+void transaction_controller_begin (TransactionController* self);
+void event_attach_many (Event* self, GeeCollection* media);
+void transaction_controller_commit (TransactionController* self);
+time_t media_source_get_exposure_time (MediaSource* self);
+static time_t media_source_real_get_exposure_time (MediaSource* self);
+void media_source_get_import_id (MediaSource* self, ImportID* result);
+static void media_source_real_get_import_id (MediaSource* self, ImportID* result);
+static void media_source_real_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void media_source_finalize (GObject* obj);
+GType database_source_holding_tank_get_type (void) G_GNUC_CONST;
+GType media_source_holding_tank_get_type (void) G_GNUC_CONST;
+#define MEDIA_SOURCE_HOLDING_TANK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankPrivate))
+enum {
+ MEDIA_SOURCE_HOLDING_TANK_DUMMY_PROPERTY
+};
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+MediaSourceHoldingTank* media_source_holding_tank_new (MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+MediaSourceHoldingTank* media_source_holding_tank_construct (GType object_type, MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+DatabaseSourceHoldingTank* database_source_holding_tank_new (SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+DatabaseSourceHoldingTank* database_source_holding_tank_construct (GType object_type, SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+MediaSource* media_source_holding_tank_fetch_by_master_file (MediaSourceHoldingTank* self, GFile* file);
+MediaSource* media_source_holding_tank_fetch_by_md5 (MediaSourceHoldingTank* self, const gchar* md5);
+static void media_source_holding_tank_real_notify_contents_altered (SourceHoldingTank* base, GeeCollection* added, GeeCollection* removed);
+static void media_source_holding_tank_on_master_source_replaced (MediaSourceHoldingTank* self, MediaSource* media_source, GFile* old_file, GFile* new_file);
+static void _media_source_holding_tank_on_master_source_replaced_media_source_master_replaced (MediaSource* _sender, GFile* old_file, GFile* new_file, gpointer self);
+void source_holding_tank_notify_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+static void media_source_holding_tank_finalize (SourceHoldingTank* obj);
+GType media_source_transaction_controller_get_type (void) G_GNUC_CONST;
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionControllerPrivate))
+enum {
+ MEDIA_SOURCE_TRANSACTION_CONTROLLER_DUMMY_PROPERTY
+};
+MediaSourceTransactionController* media_source_transaction_controller_new (MediaSourceCollection* sources);
+MediaSourceTransactionController* media_source_transaction_controller_construct (GType object_type, MediaSourceCollection* sources);
+TransactionController* transaction_controller_construct (GType object_type);
+static void media_source_transaction_controller_real_begin_impl (TransactionController* base, GError** error);
+void database_table_begin_transaction (void);
+void data_collection_freeze_notifications (DataCollection* self);
+static void media_source_transaction_controller_real_commit_impl (TransactionController* base, GError** error);
+void data_collection_thaw_notifications (DataCollection* self);
+GQuark database_error_quark (void);
+void database_table_commit_transaction (GError** error);
+static void media_source_transaction_controller_finalize (TransactionController* obj);
+GType marker_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+GType media_monitor_get_type (void) G_GNUC_CONST;
+#define MEDIA_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionPrivate))
+enum {
+ MEDIA_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+gint import_id_compare_func (ImportID* a, ImportID* b);
+static gint _import_id_compare_func_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+MediaSourceCollection* media_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+DatabaseSourceCollection* database_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+MediaSourceHoldingTank* media_source_collection_create_trashcan (MediaSourceCollection* self);
+MediaSourceHoldingTank* media_source_collection_create_offline_bin (MediaSourceCollection* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void media_source_collection_filter_media (GeeCollection* media, GeeCollection* photos, GeeCollection* videos);
+gchar* data_object_to_string (DataObject* self);
+void media_source_collection_count_media (GeeCollection* media, gint* photo_count, gint* video_count);
+gboolean media_source_collection_has_photo (GeeCollection* media);
+gboolean media_source_collection_has_video (GeeCollection* media);
+static MediaSourceHoldingTank* media_source_collection_real_create_trashcan (MediaSourceCollection* self);
+static MediaSourceHoldingTank* media_source_collection_real_create_offline_bin (MediaSourceCollection* self);
+MediaMonitor* media_source_collection_create_media_monitor (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable);
+static MediaMonitor* media_source_collection_real_create_media_monitor (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable);
+gchar* media_source_collection_get_typename (MediaSourceCollection* self);
+static gchar* media_source_collection_real_get_typename (MediaSourceCollection* self);
+gboolean media_source_collection_is_file_recognized (MediaSourceCollection* self, GFile* file);
+static gboolean media_source_collection_real_is_file_recognized (MediaSourceCollection* self, GFile* file);
+MediaSourceHoldingTank* media_source_collection_get_trashcan (MediaSourceCollection* self);
+MediaSourceHoldingTank* media_source_collection_get_offline_bin (MediaSourceCollection* self);
+MediaSource* media_source_collection_fetch_by_numeric_id (MediaSourceCollection* self, gint64 numeric_id);
+static MediaSource* media_source_collection_real_fetch_by_numeric_id (MediaSourceCollection* self, gint64 numeric_id);
+void media_source_collection_notify_import_roll_altered (MediaSourceCollection* self);
+static void media_source_collection_real_notify_import_roll_altered (MediaSourceCollection* self);
+void media_source_collection_notify_flagged_contents_altered (MediaSourceCollection* self);
+static void media_source_collection_real_notify_flagged_contents_altered (MediaSourceCollection* self);
+void media_source_collection_notify_media_import_starting (MediaSourceCollection* self, GeeCollection* media);
+static void media_source_collection_real_notify_media_import_starting (MediaSourceCollection* self, GeeCollection* media);
+void media_source_collection_notify_media_import_completed (MediaSourceCollection* self, GeeCollection* media);
+static void media_source_collection_real_notify_media_import_completed (MediaSourceCollection* self, GeeCollection* media);
+static void media_source_collection_real_items_altered (DataCollection* base, GeeMap* items);
+gboolean alteration_has_subject (Alteration* self, const gchar* subject);
+gboolean source_holding_tank_contains (SourceHoldingTank* self, DataSource* source);
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+void source_holding_tank_unlink_and_hold (SourceHoldingTank* self, GeeCollection* unlink);
+static void media_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed);
+static void media_source_collection_on_master_replaced (MediaSourceCollection* self, MediaSource* media, GFile* old_file, GFile* new_file);
+static void _media_source_collection_on_master_replaced_media_source_master_replaced (MediaSource* _sender, GFile* old_file, GFile* new_file, gpointer self);
+gboolean import_id_is_valid (ImportID *self);
+void data_collection_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+MediaSource* media_source_collection_fetch_by_master_file (MediaSourceCollection* self, GFile* file);
+MediaSource* media_source_collection_fetch_by_source_id (MediaSourceCollection* self, const gchar* source_id);
+static MediaSource* media_source_collection_real_fetch_by_source_id (MediaSourceCollection* self, const gchar* source_id);
+gint64 parse_int64 (const gchar* str, gint num_base);
+GeeCollection* media_source_collection_get_event_source_ids (MediaSourceCollection* self, EventID* event_id);
+static GeeCollection* media_source_collection_real_get_event_source_ids (MediaSourceCollection* self, EventID* event_id);
+GeeCollection* media_source_collection_get_trashcan_contents (MediaSourceCollection* self);
+GeeCollection* source_holding_tank_get_all (SourceHoldingTank* self);
+GeeCollection* media_source_collection_get_offline_bin_contents (MediaSourceCollection* self);
+GeeCollection* media_source_collection_get_flagged (MediaSourceCollection* self);
+GeeSortedSet* media_source_collection_get_import_roll_ids (MediaSourceCollection* self);
+ImportID* media_source_collection_get_last_import_id (MediaSourceCollection* self);
+GeeCollection* media_source_collection_get_import_roll (MediaSourceCollection* self, ImportID* import_id);
+void media_source_collection_add_many_to_trash (MediaSourceCollection* self, GeeCollection* sources);
+void source_holding_tank_add_many (SourceHoldingTank* self, GeeCollection* many);
+void media_source_collection_add_many_to_offline (MediaSourceCollection* self, GeeCollection* sources);
+gint media_source_collection_get_trashcan_count (MediaSourceCollection* self);
+gint source_holding_tank_get_count (SourceHoldingTank* self);
+void media_source_collection_import_many (MediaSourceCollection* self, GeeCollection* media);
+static void media_source_collection_real_import_many (MediaSourceCollection* self, GeeCollection* media);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+void media_source_collection_postprocess_imported_media (MediaSourceCollection* self, GeeCollection* media);
+static void media_source_collection_real_postprocess_imported_media (MediaSourceCollection* self, GeeCollection* media);
+void media_source_collection_remove_from_app (MediaSourceCollection* self, GeeCollection* sources, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+gpointer aggregate_progress_monitor_ref (gpointer instance);
+void aggregate_progress_monitor_unref (gpointer instance);
+GParamSpec* param_spec_aggregate_progress_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_aggregate_progress_monitor (GValue* value, gpointer v_object);
+void value_take_aggregate_progress_monitor (GValue* value, gpointer v_object);
+gpointer value_get_aggregate_progress_monitor (const GValue* value);
+GType aggregate_progress_monitor_get_type (void) G_GNUC_CONST;
+AggregateProgressMonitor* aggregate_progress_monitor_new (guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+AggregateProgressMonitor* aggregate_progress_monitor_construct (GType object_type, guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+gboolean aggregate_progress_monitor_monitor (AggregateProgressMonitor* self, guint64 count, guint64 total);
+static gboolean _aggregate_progress_monitor_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+void source_holding_tank_destroy_orphans (SourceHoldingTank* self, GeeList* destroy, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+gint source_collection_destroy_marked (SourceCollection* self, Marker* marker, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects);
+GType tombstone_reason_get_type (void) G_GNUC_CONST;
+void tombstone_entomb_many_sources (GeeCollection* sources, TombstoneReason reason, GError** error);
+void app_window_database_error (GError* err);
+void media_source_collection_delete_backing_files (MediaSourceCollection* self, GeeCollection* sources, ProgressMonitor monitor, void* monitor_target, GeeList* not_deleted);
+TransactionController* media_source_collection_get_transaction_controller (MediaSourceCollection* self);
+static void media_source_collection_real_media_import_starting (MediaSourceCollection* self, GeeCollection* media);
+static void media_source_collection_real_media_import_completed (MediaSourceCollection* self, GeeCollection* media);
+static void media_source_collection_real_master_file_replaced (MediaSourceCollection* self, MediaSource* media, GFile* old_file, GFile* new_file);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void media_source_collection_real_trashcan_contents_altered (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+static void media_source_collection_real_import_roll_altered (MediaSourceCollection* self);
+static void media_source_collection_real_offline_contents_altered (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+static void media_source_collection_real_flagged_contents_altered (MediaSourceCollection* self);
+static void media_source_collection_finalize (DataCollection* obj);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+#define MEDIA_COLLECTION_REGISTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryPrivate))
+enum {
+ MEDIA_COLLECTION_REGISTRY_DUMMY_PROPERTY
+};
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+static void media_collection_registry_on_init_done (MediaCollectionRegistry* self);
+static void _media_collection_registry_on_init_done_application_init_done (Application* _sender, gpointer self);
+#define MEDIA_COLLECTION_REGISTRY_LIBRARY_MONITOR_START_DELAY_MSEC 1000
+static MediaCollectionRegistry* media_collection_registry_new (void);
+static MediaCollectionRegistry* media_collection_registry_construct (GType object_type);
+GType directory_monitor_get_type (void) G_GNUC_CONST;
+GType library_monitor_get_type (void) G_GNUC_CONST;
+LibraryMonitor* library_monitor_new (GFile* root, gboolean recurse, gboolean monitoring);
+LibraryMonitor* library_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring);
+gpointer library_monitor_pool_ref (gpointer instance);
+void library_monitor_pool_unref (gpointer instance);
+GParamSpec* param_spec_library_monitor_pool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_library_monitor_pool (GValue* value, gpointer v_object);
+void value_take_library_monitor_pool (GValue* value, gpointer v_object);
+gpointer value_get_library_monitor_pool (const GValue* value);
+GType library_monitor_pool_get_type (void) G_GNUC_CONST;
+LibraryMonitorPool* library_monitor_pool_get_instance (void);
+void library_monitor_pool_replace (LibraryMonitorPool* self, LibraryMonitor* replacement, gint start_msec_delay);
+void media_collection_registry_init (void);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+static void media_collection_registry_on_import_directory_changed (void);
+static void _media_collection_registry_on_import_directory_changed_configuration_facade_import_directory_changed (ConfigurationFacade* _sender, gpointer self);
+void media_collection_registry_terminate (void);
+LibraryMonitor* library_monitor_pool_get_monitor (LibraryMonitorPool* self);
+GFile* directory_monitor_get_root (DirectoryMonitor* self);
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+gchar* media_collection_registry_get_typename_from_source_id (const gchar* source_id);
+#define PHOTO_TYPENAME "thumb"
+void media_collection_registry_register_collection (MediaCollectionRegistry* self, MediaSourceCollection* collection);
+MediaSourceCollection* media_collection_registry_get_collection (MediaCollectionRegistry* self, const gchar* typename);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+void media_collection_registry_freeze_all (MediaCollectionRegistry* self);
+void media_collection_registry_thaw_all (MediaCollectionRegistry* self);
+void media_collection_registry_begin_transaction_on_all (MediaCollectionRegistry* self);
+void media_collection_registry_commit_transaction_on_all (MediaCollectionRegistry* self);
+MediaSource* media_collection_registry_fetch_media (MediaCollectionRegistry* self, const gchar* source_id);
+ImportID* media_collection_registry_get_last_import_id (MediaCollectionRegistry* self);
+#define IMPORT_ID_INVALID ((gint64) 0)
+void import_id_init (ImportID *self, gint64 id);
+GeeCollection* media_collection_registry_get_source_ids_for_event_id (MediaCollectionRegistry* self, EventID* event_id);
+MediaSourceCollection* media_collection_registry_get_collection_for_file (MediaCollectionRegistry* self, GFile* file);
+gboolean media_collection_registry_is_valid_source_id (MediaCollectionRegistry* self, const gchar* source_id);
+#define VIDEO_TYPENAME "video"
+static void media_collection_registry_finalize (MediaCollectionRegistry* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+BackingFileState* backing_file_state_construct (GType object_type, const gchar* filepath, gint64 filesize, time_t modification_time, const gchar* md5) {
+ BackingFileState* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ time_t _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = (BackingFileState*) g_type_create_instance (object_type);
+#line 14 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = filepath;
+#line 14 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 14 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->filepath);
+#line 14 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->filepath = _tmp1_;
+#line 15 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = filesize;
+#line 15 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->filesize = _tmp2_;
+#line 16 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = modification_time;
+#line 16 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->modification_time = _tmp3_;
+#line 17 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = md5;
+#line 17 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 17 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->md5);
+#line 17 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->md5 = _tmp5_;
+#line 13 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self;
+#line 1410 "MediaDataRepresentation.c"
+}
+
+
+BackingFileState* backing_file_state_new (const gchar* filepath, gint64 filesize, time_t modification_time, const gchar* md5) {
+#line 13 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return backing_file_state_construct (TYPE_BACKING_FILE_STATE, filepath, filesize, modification_time, md5);
+#line 1417 "MediaDataRepresentation.c"
+}
+
+
+BackingFileState* backing_file_state_construct_from_photo_row (GType object_type, BackingPhotoRow* photo_row, const gchar* md5) {
+ BackingFileState* self = NULL;
+ BackingPhotoRow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ BackingPhotoRow* _tmp3_ = NULL;
+ gint64 _tmp4_ = 0LL;
+ BackingPhotoRow* _tmp5_ = NULL;
+ time_t _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_BACKING_PHOTO_ROW (photo_row), NULL);
+#line 20 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = (BackingFileState*) g_type_create_instance (object_type);
+#line 21 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = photo_row;
+#line 21 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_->filepath;
+#line 21 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 21 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->filepath);
+#line 21 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->filepath = _tmp2_;
+#line 22 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = photo_row;
+#line 22 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _tmp3_->filesize;
+#line 22 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->filesize = _tmp4_;
+#line 23 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = photo_row;
+#line 23 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _tmp5_->timestamp;
+#line 23 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->modification_time = _tmp6_;
+#line 24 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = md5;
+#line 24 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 24 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->md5);
+#line 24 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->md5 = _tmp8_;
+#line 20 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self;
+#line 1468 "MediaDataRepresentation.c"
+}
+
+
+BackingFileState* backing_file_state_new_from_photo_row (BackingPhotoRow* photo_row, const gchar* md5) {
+#line 20 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return backing_file_state_construct_from_photo_row (TYPE_BACKING_FILE_STATE, photo_row, md5);
+#line 1475 "MediaDataRepresentation.c"
+}
+
+
+GFile* backing_file_state_get_file (BackingFileState* self) {
+ GFile* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_BACKING_FILE_STATE (self), NULL);
+#line 28 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->filepath;
+#line 28 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = g_file_new_for_path (_tmp0_);
+#line 28 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 28 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 1493 "MediaDataRepresentation.c"
+}
+
+
+static void value_backing_file_state_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 1500 "MediaDataRepresentation.c"
+}
+
+
+static void value_backing_file_state_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ backing_file_state_unref (value->data[0].v_pointer);
+#line 1509 "MediaDataRepresentation.c"
+ }
+}
+
+
+static void value_backing_file_state_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ dest_value->data[0].v_pointer = backing_file_state_ref (src_value->data[0].v_pointer);
+#line 1519 "MediaDataRepresentation.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1523 "MediaDataRepresentation.c"
+ }
+}
+
+
+static gpointer value_backing_file_state_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return value->data[0].v_pointer;
+#line 1531 "MediaDataRepresentation.c"
+}
+
+
+static gchar* value_backing_file_state_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (collect_values[0].v_pointer) {
+#line 1538 "MediaDataRepresentation.c"
+ BackingFileState* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1545 "MediaDataRepresentation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1549 "MediaDataRepresentation.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = backing_file_state_ref (object);
+#line 1553 "MediaDataRepresentation.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 1557 "MediaDataRepresentation.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 1561 "MediaDataRepresentation.c"
+}
+
+
+static gchar* value_backing_file_state_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ BackingFileState** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1572 "MediaDataRepresentation.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *object_p = NULL;
+#line 1578 "MediaDataRepresentation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1582 "MediaDataRepresentation.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *object_p = backing_file_state_ref (value->data[0].v_pointer);
+#line 1586 "MediaDataRepresentation.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 1590 "MediaDataRepresentation.c"
+}
+
+
+GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecBackingFileState* spec;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_BACKING_FILE_STATE), NULL);
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return G_PARAM_SPEC (spec);
+#line 1604 "MediaDataRepresentation.c"
+}
+
+
+gpointer value_get_backing_file_state (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKING_FILE_STATE), NULL);
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return value->data[0].v_pointer;
+#line 1613 "MediaDataRepresentation.c"
+}
+
+
+void value_set_backing_file_state (GValue* value, gpointer v_object) {
+ BackingFileState* old;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKING_FILE_STATE));
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BACKING_FILE_STATE));
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ backing_file_state_ref (value->data[0].v_pointer);
+#line 1633 "MediaDataRepresentation.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 1637 "MediaDataRepresentation.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ backing_file_state_unref (old);
+#line 1643 "MediaDataRepresentation.c"
+ }
+}
+
+
+void value_take_backing_file_state (GValue* value, gpointer v_object) {
+ BackingFileState* old;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKING_FILE_STATE));
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BACKING_FILE_STATE));
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = v_object;
+#line 1662 "MediaDataRepresentation.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 1666 "MediaDataRepresentation.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ backing_file_state_unref (old);
+#line 1672 "MediaDataRepresentation.c"
+ }
+}
+
+
+static void backing_file_state_class_init (BackingFileStateClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ backing_file_state_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((BackingFileStateClass *) klass)->finalize = backing_file_state_finalize;
+#line 1682 "MediaDataRepresentation.c"
+}
+
+
+static void backing_file_state_instance_init (BackingFileState * self) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->ref_count = 1;
+#line 1689 "MediaDataRepresentation.c"
+}
+
+
+static void backing_file_state_finalize (BackingFileState* obj) {
+ BackingFileState * self;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BACKING_FILE_STATE, BackingFileState);
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_handlers_destroy (self);
+#line 8 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->filepath);
+#line 11 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->md5);
+#line 1703 "MediaDataRepresentation.c"
+}
+
+
+GType backing_file_state_get_type (void) {
+ static volatile gsize backing_file_state_type_id__volatile = 0;
+ if (g_once_init_enter (&backing_file_state_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_backing_file_state_init, value_backing_file_state_free_value, value_backing_file_state_copy_value, value_backing_file_state_peek_pointer, "p", value_backing_file_state_collect_value, "p", value_backing_file_state_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BackingFileStateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) backing_file_state_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BackingFileState), 0, (GInstanceInitFunc) backing_file_state_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType backing_file_state_type_id;
+ backing_file_state_type_id = g_type_register_fundamental (g_type_fundamental_next (), "BackingFileState", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&backing_file_state_type_id__volatile, backing_file_state_type_id);
+ }
+ return backing_file_state_type_id__volatile;
+}
+
+
+gpointer backing_file_state_ref (gpointer instance) {
+ BackingFileState* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return instance;
+#line 1728 "MediaDataRepresentation.c"
+}
+
+
+void backing_file_state_unref (gpointer instance) {
+ BackingFileState* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ BACKING_FILE_STATE_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1741 "MediaDataRepresentation.c"
+ }
+}
+
+
+MediaSource* media_source_construct (GType object_type, gint64 object_id) {
+ MediaSource * self = NULL;
+ gint64 _tmp0_ = 0LL;
+#line 40 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = object_id;
+#line 40 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = (MediaSource*) thumbnail_source_construct (object_type, _tmp0_);
+#line 39 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self;
+#line 1755 "MediaDataRepresentation.c"
+}
+
+
+inline guint64 media_source_internal_add_flags (guint64 flags, guint64 selector) {
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+#line 44 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = flags;
+#line 44 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = selector;
+#line 44 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp0_ | _tmp1_;
+#line 44 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 1771 "MediaDataRepresentation.c"
+}
+
+
+inline guint64 media_source_internal_remove_flags (guint64 flags, guint64 selector) {
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+#line 48 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = flags;
+#line 48 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = selector;
+#line 48 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp0_ & (~_tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 1787 "MediaDataRepresentation.c"
+}
+
+
+inline gboolean media_source_internal_is_flag_set (guint64 flags, guint64 selector) {
+ gboolean result = FALSE;
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+#line 52 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = flags;
+#line 52 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = selector;
+#line 52 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = (_tmp0_ & _tmp1_) != ((guint64) 0);
+#line 52 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 1803 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_notify_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 55 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 56 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = old_file;
+#line 56 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = new_file;
+#line 56 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_emit_by_name (self, "master-replaced", _tmp0_, _tmp1_);
+#line 1820 "MediaDataRepresentation.c"
+}
+
+
+void media_source_notify_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file) {
+#line 55 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 55 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->notify_master_replaced (self, old_file, new_file);
+#line 1829 "MediaDataRepresentation.c"
+}
+
+
+static gpointer _alteration_ref0 (gpointer self) {
+#line 60 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self ? alteration_ref (self) : NULL;
+#line 1836 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_notify_altered (DataObject* base, Alteration* alteration) {
+ MediaSource * self;
+ Alteration* local = NULL;
+ Alteration* _tmp0_ = NULL;
+ Alteration* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Alteration* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ Alteration* _tmp11_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE, MediaSource);
+#line 59 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 60 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = alteration;
+#line 60 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _alteration_ref0 (_tmp0_);
+#line 60 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ local = _tmp1_;
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = local;
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = alteration_has_detail (_tmp3_, "metadata", "name");
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp4_) {
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = TRUE;
+#line 1867 "MediaDataRepresentation.c"
+ } else {
+ Alteration* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = local;
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = alteration_has_detail (_tmp5_, "backing", "master");
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp6_;
+#line 1877 "MediaDataRepresentation.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp2_) {
+#line 1881 "MediaDataRepresentation.c"
+ Alteration* _tmp7_ = NULL;
+ Alteration* _tmp8_ = NULL;
+ Alteration* _tmp9_ = NULL;
+ Alteration* _tmp10_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_update_indexable_keywords (self);
+#line 64 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = local;
+#line 64 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = alteration_new ("indexable", "keywords");
+#line 64 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = _tmp8_;
+#line 64 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = alteration_compress (_tmp7_, _tmp9_);
+#line 64 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (local);
+#line 64 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ local = _tmp10_;
+#line 64 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (_tmp9_);
+#line 1902 "MediaDataRepresentation.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = local;
+#line 67 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ DATA_OBJECT_CLASS (media_source_parent_class)->notify_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), TYPE_DATA_OBJECT, DataObject), _tmp11_);
+#line 59 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (local);
+#line 1910 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_notify_membership_changed (DataObject* base, DataCollection* collection) {
+ MediaSource * self;
+ gboolean _tmp0_ = FALSE;
+ DataCollection* _tmp1_ = NULL;
+ DataCollection* _tmp3_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE, MediaSource);
+#line 72 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((collection == NULL) || IS_DATA_COLLECTION (collection));
+#line 73 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = collection;
+#line 73 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp1_ != NULL) {
+#line 1927 "MediaDataRepresentation.c"
+ const gchar* _tmp2_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = self->priv->indexable_keywords;
+#line 73 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 1933 "MediaDataRepresentation.c"
+ } else {
+#line 73 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = FALSE;
+#line 1937 "MediaDataRepresentation.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp0_) {
+#line 76 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_update_indexable_keywords (self);
+#line 1943 "MediaDataRepresentation.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = collection;
+#line 79 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ DATA_OBJECT_CLASS (media_source_parent_class)->notify_membership_changed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), TYPE_DATA_OBJECT, DataObject), _tmp3_);
+#line 1949 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_update_indexable_keywords (MediaSource* self) {
+ gchar** indexables = NULL;
+ gchar** _tmp0_ = NULL;
+ gint indexables_length1 = 0;
+ gint _indexables_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 83 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = g_new0 (gchar*, 3 + 1);
+#line 83 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ indexables = _tmp0_;
+#line 83 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ indexables_length1 = 3;
+#line 83 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _indexables_size_ = indexables_length1;
+#line 84 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = media_source_get_title (self);
+#line 84 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (indexables[0]);
+#line 84 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ indexables[0] = _tmp1_;
+#line 84 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = indexables[0];
+#line 85 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = media_source_get_basename (self);
+#line 85 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (indexables[1]);
+#line 85 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ indexables[1] = _tmp3_;
+#line 85 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = indexables[1];
+#line 86 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = media_source_get_comment (self);
+#line 86 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (indexables[2]);
+#line 86 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ indexables[2] = _tmp5_;
+#line 86 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = indexables[2];
+#line 88 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = indexable_prepare_indexable_strings (indexables, indexables_length1);
+#line 88 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 88 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->indexable_keywords = _tmp7_;
+#line 82 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ indexables = (_vala_array_free (indexables, indexables_length1, (GDestroyNotify) g_free), NULL);
+#line 2007 "MediaDataRepresentation.c"
+}
+
+
+static const gchar* media_source_real_get_indexable_keywords (Indexable* base) {
+ MediaSource * self;
+ const gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE, MediaSource);
+#line 92 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->indexable_keywords;
+#line 92 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp0_;
+#line 92 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2023 "MediaDataRepresentation.c"
+}
+
+
+static gboolean media_source_real_set_event_id (MediaSource* self, EventID* id) {
+#line 95 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_set_event_id'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 95 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 2032 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_set_event_id (MediaSource* self, EventID* id) {
+#line 95 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), FALSE);
+#line 95 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->set_event_id (self, id);
+#line 2041 "MediaDataRepresentation.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 112 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2048 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_delete_original_file (MediaSource* self) {
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ GFile* file = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), FALSE);
+#line 98 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ret = FALSE;
+#line 99 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_get_master_file (self);
+#line 99 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ file = _tmp0_;
+#line 2071 "MediaDataRepresentation.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 102 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = file;
+#line 102 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = g_file_trash (_tmp2_, NULL, &_inner_error_);
+#line 102 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp3_;
+#line 102 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2084 "MediaDataRepresentation.c"
+ goto __catch549_g_error;
+ }
+#line 102 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ret = _tmp1_;
+#line 2089 "MediaDataRepresentation.c"
+ }
+ goto __finally549;
+ __catch549_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ err = _inner_error_;
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _inner_error_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = file;
+#line 106 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = g_file_get_path (_tmp4_);
+#line 106 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _tmp5_;
+#line 106 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = err;
+#line 106 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = _tmp7_->message;
+#line 106 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_message ("MediaDataRepresentation.vala:106: Unable to move original photo %s to " \
+"trash: %s", _tmp6_, _tmp8_);
+#line 106 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp6_);
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_error_free0 (err);
+#line 2120 "MediaDataRepresentation.c"
+ }
+ __finally549:
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (file);
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_clear_error (&_inner_error_);
+#line 101 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 2133 "MediaDataRepresentation.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = file;
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = app_dirs_get_import_dir ();
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = _tmp10_;
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = g_file_has_prefix (_tmp9_, _tmp11_);
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = _tmp12_;
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp11_);
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp13_) {
+#line 2149 "MediaDataRepresentation.c"
+ GFile* parent = NULL;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = file;
+#line 112 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 112 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ parent = _tmp15_;
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 2161 "MediaDataRepresentation.c"
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ GFile* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ GFile* _tmp24_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = parent;
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = app_dirs_get_import_dir ();
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = _tmp17_;
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = g_file_equal (_tmp16_, _tmp18_);
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = !(!_tmp19_);
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp18_);
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp20_) {
+#line 113 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 2187 "MediaDataRepresentation.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = parent;
+#line 114 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp22_ = g_file_get_parent (_tmp21_);
+#line 114 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (parent);
+#line 114 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ parent = _tmp22_;
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24_ = parent;
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp24_ == NULL) {
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = TRUE;
+#line 2203 "MediaDataRepresentation.c"
+ } else {
+ GFile* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ = parent;
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp26_ = app_dirs_get_import_dir ();
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp27_ = _tmp26_;
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = g_file_equal (_tmp25_, _tmp27_);
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = _tmp28_;
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp27_);
+#line 2221 "MediaDataRepresentation.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp23_) {
+#line 116 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 2227 "MediaDataRepresentation.c"
+ }
+ {
+ gboolean _tmp29_ = FALSE;
+ GFile* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp30_ = parent;
+#line 119 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp31_ = query_is_directory_empty (_tmp30_, &_inner_error_);
+#line 119 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp29_ = _tmp31_;
+#line 119 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2241 "MediaDataRepresentation.c"
+ goto __catch550_g_error;
+ }
+#line 119 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp29_) {
+#line 120 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 2248 "MediaDataRepresentation.c"
+ }
+ }
+ goto __finally550;
+ __catch550_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ GError* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ err = _inner_error_;
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _inner_error_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp32_ = parent;
+#line 122 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp33_ = g_file_get_path (_tmp32_);
+#line 122 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp34_ = _tmp33_;
+#line 122 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp35_ = err;
+#line 122 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp36_ = _tmp35_->message;
+#line 122 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_warning ("MediaDataRepresentation.vala:122: Unable to query file info for %s: %s", _tmp34_, _tmp36_);
+#line 122 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp34_);
+#line 124 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_error_free0 (err);
+#line 124 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 2282 "MediaDataRepresentation.c"
+ }
+ __finally550:
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (parent);
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (file);
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_clear_error (&_inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 2297 "MediaDataRepresentation.c"
+ }
+ {
+ GFile* _tmp37_ = NULL;
+ GFile* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp37_ = parent;
+#line 128 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_file_delete (_tmp37_, NULL, &_inner_error_);
+#line 128 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2310 "MediaDataRepresentation.c"
+ goto __catch551_g_error;
+ }
+#line 129 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp38_ = parent;
+#line 129 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp39_ = g_file_get_path (_tmp38_);
+#line 129 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp40_ = _tmp39_;
+#line 129 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_debug ("MediaDataRepresentation.vala:129: Deleted empty directory %s", _tmp40_);
+#line 129 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp40_);
+#line 2323 "MediaDataRepresentation.c"
+ }
+ goto __finally551;
+ __catch551_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ GError* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ err = _inner_error_;
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _inner_error_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp41_ = parent;
+#line 132 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp42_ = g_file_get_path (_tmp41_);
+#line 132 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp43_ = _tmp42_;
+#line 132 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp44_ = err;
+#line 132 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp45_ = _tmp44_->message;
+#line 132 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_message ("MediaDataRepresentation.vala:132: Unable to delete empty directory %s:" \
+" %s", _tmp43_, _tmp45_);
+#line 132 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp43_);
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_error_free0 (err);
+#line 2354 "MediaDataRepresentation.c"
+ }
+ __finally551:
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (parent);
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (file);
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_clear_error (&_inner_error_);
+#line 127 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 2369 "MediaDataRepresentation.c"
+ }
+ }
+#line 111 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (parent);
+#line 2374 "MediaDataRepresentation.c"
+ }
+#line 138 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = ret;
+#line 138 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (file);
+#line 138 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2382 "MediaDataRepresentation.c"
+}
+
+
+static gchar* media_source_real_get_name (DataObject* base) {
+ MediaSource * self;
+ gchar* result = NULL;
+ gchar* title = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 141 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE, MediaSource);
+#line 142 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_get_title (self);
+#line 142 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ title = _tmp0_;
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = title;
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp3_) {
+#line 2406 "MediaDataRepresentation.c"
+ gchar* _tmp4_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = media_source_get_basename (self);
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp1_);
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp4_;
+#line 2414 "MediaDataRepresentation.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = title;
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp1_);
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp6_;
+#line 2426 "MediaDataRepresentation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (title);
+#line 144 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2434 "MediaDataRepresentation.c"
+}
+
+
+static gchar* media_source_real_get_basename (MediaSource* self) {
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_get_file (self);
+#line 148 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 148 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = g_file_get_basename (_tmp1_);
+#line 148 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 148 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 148 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp3_;
+#line 148 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2458 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_source_get_basename (MediaSource* self) {
+#line 147 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 147 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_basename (self);
+#line 2467 "MediaDataRepresentation.c"
+}
+
+
+static GFile* media_source_real_get_file (MediaSource* self) {
+#line 151 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_file'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 151 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 2476 "MediaDataRepresentation.c"
+}
+
+
+GFile* media_source_get_file (MediaSource* self) {
+#line 151 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 151 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_file (self);
+#line 2485 "MediaDataRepresentation.c"
+}
+
+
+static GFile* media_source_real_get_master_file (MediaSource* self) {
+#line 152 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_master_file'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 152 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 2494 "MediaDataRepresentation.c"
+}
+
+
+GFile* media_source_get_master_file (MediaSource* self) {
+#line 152 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 152 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_master_file (self);
+#line 2503 "MediaDataRepresentation.c"
+}
+
+
+static guint64 media_source_real_get_master_filesize (MediaSource* self) {
+#line 153 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_master_filesize'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 153 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return 0ULL;
+#line 2512 "MediaDataRepresentation.c"
+}
+
+
+guint64 media_source_get_master_filesize (MediaSource* self) {
+#line 153 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), 0ULL);
+#line 153 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_master_filesize (self);
+#line 2521 "MediaDataRepresentation.c"
+}
+
+
+static guint64 media_source_real_get_filesize (MediaSource* self) {
+#line 154 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_filesize'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 154 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return 0ULL;
+#line 2530 "MediaDataRepresentation.c"
+}
+
+
+guint64 media_source_get_filesize (MediaSource* self) {
+#line 154 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), 0ULL);
+#line 154 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_filesize (self);
+#line 2539 "MediaDataRepresentation.c"
+}
+
+
+static time_t media_source_real_get_timestamp (MediaSource* self) {
+#line 155 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_timestamp'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 155 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return 0;
+#line 2548 "MediaDataRepresentation.c"
+}
+
+
+time_t media_source_get_timestamp (MediaSource* self) {
+#line 155 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), 0);
+#line 155 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_timestamp (self);
+#line 2557 "MediaDataRepresentation.c"
+}
+
+
+static BackingFileState** media_source_real_get_backing_files_state (MediaSource* self, int* result_length1) {
+#line 158 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_backing_files_state'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 158 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 2566 "MediaDataRepresentation.c"
+}
+
+
+BackingFileState** media_source_get_backing_files_state (MediaSource* self, int* result_length1) {
+#line 158 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 158 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_backing_files_state (self, result_length1);
+#line 2575 "MediaDataRepresentation.c"
+}
+
+
+static gchar* media_source_real_get_title (MediaSource* self) {
+#line 160 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_title'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 160 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 2584 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_source_get_title (MediaSource* self) {
+#line 160 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 160 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_title (self);
+#line 2593 "MediaDataRepresentation.c"
+}
+
+
+static gchar* media_source_real_get_comment (MediaSource* self) {
+#line 161 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_comment'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 161 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 2602 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_source_get_comment (MediaSource* self) {
+#line 161 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 161 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_comment (self);
+#line 2611 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_set_title (MediaSource* self, const gchar* title) {
+#line 162 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_set_title'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 162 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2620 "MediaDataRepresentation.c"
+}
+
+
+void media_source_set_title (MediaSource* self, const gchar* title) {
+#line 162 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 162 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->set_title (self, title);
+#line 2629 "MediaDataRepresentation.c"
+}
+
+
+static gboolean media_source_real_set_comment (MediaSource* self, const gchar* comment) {
+#line 163 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_set_comment'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 163 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 2638 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_set_comment (MediaSource* self, const gchar* comment) {
+#line 163 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), FALSE);
+#line 163 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->set_comment (self, comment);
+#line 2647 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_source_prep_title (const gchar* title) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 166 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = title;
+#line 166 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = prepare_input_text (_tmp0_, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT & (~PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL), DEFAULT_USER_TEXT_INPUT_LENGTH);
+#line 166 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 166 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2663 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_source_prep_comment (const gchar* comment) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = comment;
+#line 171 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = prepare_input_text (_tmp0_, (PREPARE_INPUT_TEXT_OPTIONS_DEFAULT & (~PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF)) & (~PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL), -1);
+#line 171 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 171 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2679 "MediaDataRepresentation.c"
+}
+
+
+static Rating media_source_real_get_rating (MediaSource* self) {
+#line 175 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_rating'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 175 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return 0;
+#line 2688 "MediaDataRepresentation.c"
+}
+
+
+Rating media_source_get_rating (MediaSource* self) {
+#line 175 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), 0);
+#line 175 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_rating (self);
+#line 2697 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_set_rating (MediaSource* self, Rating rating) {
+#line 176 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_set_rating'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 176 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2706 "MediaDataRepresentation.c"
+}
+
+
+void media_source_set_rating (MediaSource* self, Rating rating) {
+#line 176 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 176 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->set_rating (self, rating);
+#line 2715 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_increase_rating (MediaSource* self) {
+#line 177 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_increase_rating'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 177 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2724 "MediaDataRepresentation.c"
+}
+
+
+void media_source_increase_rating (MediaSource* self) {
+#line 177 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 177 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->increase_rating (self);
+#line 2733 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_decrease_rating (MediaSource* self) {
+#line 178 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_decrease_rating'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 178 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2742 "MediaDataRepresentation.c"
+}
+
+
+void media_source_decrease_rating (MediaSource* self) {
+#line 178 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 178 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->decrease_rating (self);
+#line 2751 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result) {
+#line 180 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_dimensions'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 180 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2760 "MediaDataRepresentation.c"
+}
+
+
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result) {
+#line 180 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 180 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->get_dimensions (self, disallowed_steps, result);
+#line 2769 "MediaDataRepresentation.c"
+}
+
+
+static GdkPixbuf* media_source_real_get_preview_pixbuf (MediaSource* self, Scaling* scaling, GError** error) {
+#line 188 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_preview_pixbuf'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 188 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 2778 "MediaDataRepresentation.c"
+}
+
+
+GdkPixbuf* media_source_get_preview_pixbuf (MediaSource* self, Scaling* scaling, GError** error) {
+#line 188 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 188 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_preview_pixbuf (self, scaling, error);
+#line 2787 "MediaDataRepresentation.c"
+}
+
+
+static gboolean media_source_real_is_trashed (MediaSource* self) {
+#line 190 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_is_trashed'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 190 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 2796 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_is_trashed (MediaSource* self) {
+#line 190 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), FALSE);
+#line 190 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->is_trashed (self);
+#line 2805 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_trash (MediaSource* self) {
+#line 191 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_trash'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 191 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2814 "MediaDataRepresentation.c"
+}
+
+
+void media_source_trash (MediaSource* self) {
+#line 191 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 191 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->trash (self);
+#line 2823 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_untrash (MediaSource* self) {
+#line 192 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_untrash'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 192 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2832 "MediaDataRepresentation.c"
+}
+
+
+void media_source_untrash (MediaSource* self) {
+#line 192 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 192 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->untrash (self);
+#line 2841 "MediaDataRepresentation.c"
+}
+
+
+static gboolean media_source_real_is_offline (MediaSource* self) {
+#line 194 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_is_offline'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 194 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 2850 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_is_offline (MediaSource* self) {
+#line 194 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), FALSE);
+#line 194 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->is_offline (self);
+#line 2859 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_mark_offline (MediaSource* self) {
+#line 195 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_mark_offline'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 195 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2868 "MediaDataRepresentation.c"
+}
+
+
+void media_source_mark_offline (MediaSource* self) {
+#line 195 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 195 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->mark_offline (self);
+#line 2877 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_mark_online (MediaSource* self) {
+#line 196 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_mark_online'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 196 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2886 "MediaDataRepresentation.c"
+}
+
+
+void media_source_mark_online (MediaSource* self) {
+#line 196 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 196 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->mark_online (self);
+#line 2895 "MediaDataRepresentation.c"
+}
+
+
+static gchar* media_source_real_get_master_md5 (MediaSource* self) {
+#line 198 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_master_md5'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 198 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 2904 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_source_get_master_md5 (MediaSource* self) {
+#line 198 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 198 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_master_md5 (self);
+#line 2913 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_get_event_id (MediaSource* self, EventID* result) {
+#line 202 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_event_id'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 202 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 2922 "MediaDataRepresentation.c"
+}
+
+
+void media_source_get_event_id (MediaSource* self, EventID* result) {
+#line 202 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 202 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->get_event_id (self, result);
+#line 2931 "MediaDataRepresentation.c"
+}
+
+
+Event* media_source_get_event (MediaSource* self) {
+ Event* result = NULL;
+ Event* _tmp0_ = NULL;
+ EventID event_id = {0};
+ EventID _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+ EventSourceCollection* _tmp5_ = NULL;
+ EventID _tmp6_ = {0};
+ Event* _tmp7_ = NULL;
+ Event* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), NULL);
+#line 205 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->event;
+#line 205 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp0_ != NULL) {
+#line 2952 "MediaDataRepresentation.c"
+ Event* _tmp1_ = NULL;
+ Event* _tmp2_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = self->priv->event;
+#line 206 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 206 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp2_;
+#line 206 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2963 "MediaDataRepresentation.c"
+ }
+#line 208 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_get_event_id (self, &_tmp3_);
+#line 208 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_id = _tmp3_;
+#line 209 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = event_id_is_valid (&event_id);
+#line 209 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp4_) {
+#line 210 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = NULL;
+#line 210 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2977 "MediaDataRepresentation.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = event_global;
+#line 212 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = event_id;
+#line 212 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = event_source_collection_fetch (_tmp5_, &_tmp6_);
+#line 212 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->event);
+#line 212 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->event = _tmp7_;
+#line 214 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = self->priv->event;
+#line 214 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 214 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp9_;
+#line 214 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 2997 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_set_event (MediaSource* self, Event* new_event) {
+ gboolean result = FALSE;
+ EventID _tmp0_ = {0};
+ Event* _tmp1_ = NULL;
+ EventID event_id = {0};
+ EventID _tmp4_ = {0};
+ gint64 _tmp5_ = 0LL;
+ EventID _tmp6_ = {0};
+ gint64 _tmp7_ = 0LL;
+ gboolean committed = FALSE;
+ EventID _tmp8_ = {0};
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 217 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), FALSE);
+#line 217 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail ((new_event == NULL) || IS_EVENT (new_event), FALSE);
+#line 218 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = new_event;
+#line 218 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp1_ != NULL) {
+#line 3022 "MediaDataRepresentation.c"
+ Event* _tmp2_ = NULL;
+ EventID _tmp3_ = {0};
+#line 218 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = new_event;
+#line 218 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_get_event_id (_tmp2_, &_tmp3_);
+#line 218 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = _tmp3_;
+#line 3031 "MediaDataRepresentation.c"
+ } else {
+#line 218 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_id_init (&_tmp0_, EVENT_ID_INVALID);
+#line 3035 "MediaDataRepresentation.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_id = _tmp0_;
+#line 219 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_get_event_id (self, &_tmp4_);
+#line 219 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _tmp4_.id;
+#line 219 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = event_id;
+#line 219 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = _tmp6_.id;
+#line 219 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp5_ == _tmp7_) {
+#line 220 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = TRUE;
+#line 220 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 3053 "MediaDataRepresentation.c"
+ }
+#line 222 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = event_id;
+#line 222 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = media_source_set_event_id (self, &_tmp8_);
+#line 222 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ committed = _tmp9_;
+#line 223 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = committed;
+#line 223 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp10_) {
+#line 3065 "MediaDataRepresentation.c"
+ Event* _tmp11_ = NULL;
+ Event* _tmp13_ = NULL;
+ Event* _tmp15_ = NULL;
+ Event* _tmp16_ = NULL;
+ Alteration* _tmp17_ = NULL;
+ Alteration* _tmp18_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = self->priv->event;
+#line 224 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp11_ != NULL) {
+#line 3076 "MediaDataRepresentation.c"
+ Event* _tmp12_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = self->priv->event;
+#line 225 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_detach (_tmp12_, self);
+#line 3082 "MediaDataRepresentation.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = new_event;
+#line 227 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp13_ != NULL) {
+#line 3088 "MediaDataRepresentation.c"
+ Event* _tmp14_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = new_event;
+#line 228 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_attach (_tmp14_, self);
+#line 3094 "MediaDataRepresentation.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = new_event;
+#line 230 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 230 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->event);
+#line 230 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->event = _tmp16_;
+#line 232 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = alteration_new ("metadata", "event");
+#line 232 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = _tmp17_;
+#line 232 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp18_);
+#line 232 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (_tmp18_);
+#line 3112 "MediaDataRepresentation.c"
+ }
+#line 235 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = committed;
+#line 235 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 3118 "MediaDataRepresentation.c"
+}
+
+
+void media_source_set_many_to_event (GeeCollection* media_sources, Event* event, TransactionController* controller, GError** error) {
+ EventID _tmp0_ = {0};
+ Event* _tmp1_ = NULL;
+ EventID event_id = {0};
+ TransactionController* _tmp4_ = NULL;
+ Event* _tmp21_ = NULL;
+ Alteration* alteration = NULL;
+ Alteration* _tmp24_ = NULL;
+ TransactionController* _tmp33_ = NULL;
+#line 238 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media_sources));
+#line 238 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((event == NULL) || IS_EVENT (event));
+#line 238 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 240 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = event;
+#line 240 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp1_ != NULL) {
+#line 3141 "MediaDataRepresentation.c"
+ Event* _tmp2_ = NULL;
+ EventID _tmp3_ = {0};
+#line 240 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = event;
+#line 240 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_get_event_id (_tmp2_, &_tmp3_);
+#line 240 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = _tmp3_;
+#line 3150 "MediaDataRepresentation.c"
+ } else {
+#line 240 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_id_init (&_tmp0_, EVENT_ID_INVALID);
+#line 3154 "MediaDataRepresentation.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_id = _tmp0_;
+#line 242 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = controller;
+#line 242 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ transaction_controller_begin (_tmp4_);
+#line 3162 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = media_sources;
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _media_it = _tmp6_;
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 3175 "MediaDataRepresentation.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ Event* old_event = NULL;
+ MediaSource* _tmp11_ = NULL;
+ Event* _tmp12_ = NULL;
+ Event* _tmp13_ = NULL;
+ MediaSource* _tmp16_ = NULL;
+ EventID _tmp17_ = {0};
+ MediaSource* _tmp18_ = NULL;
+ Event* _tmp19_ = NULL;
+ Event* _tmp20_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = _media_it;
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp8_) {
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 3198 "MediaDataRepresentation.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = _media_it;
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media = (MediaSource*) _tmp10_;
+#line 245 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = media;
+#line 245 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = media_source_get_event (_tmp11_);
+#line 245 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ old_event = _tmp12_;
+#line 246 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = old_event;
+#line 246 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp13_ != NULL) {
+#line 3216 "MediaDataRepresentation.c"
+ Event* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = old_event;
+#line 247 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = media;
+#line 247 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_detach (_tmp14_, _tmp15_);
+#line 3225 "MediaDataRepresentation.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = media;
+#line 249 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = event_id;
+#line 249 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_set_event_id (_tmp16_, &_tmp17_);
+#line 250 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = media;
+#line 250 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = event;
+#line 250 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 250 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp18_->priv->event);
+#line 250 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_->priv->event = _tmp20_;
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (old_event);
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (media);
+#line 3247 "MediaDataRepresentation.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_media_it);
+#line 3251 "MediaDataRepresentation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = event;
+#line 253 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp21_ != NULL) {
+#line 3257 "MediaDataRepresentation.c"
+ Event* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp22_ = event;
+#line 254 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = media_sources;
+#line 254 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ event_attach_many (_tmp22_, _tmp23_);
+#line 3266 "MediaDataRepresentation.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24_ = alteration_new ("metadata", "event");
+#line 256 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ alteration = _tmp24_;
+#line 3272 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ GeeIterator* _tmp26_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ = media_sources;
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp26_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _media_it = _tmp26_;
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 3285 "MediaDataRepresentation.c"
+ GeeIterator* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp29_ = NULL;
+ gpointer _tmp30_ = NULL;
+ MediaSource* _tmp31_ = NULL;
+ Alteration* _tmp32_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp27_ = _media_it;
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = gee_iterator_next (_tmp27_);
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp28_) {
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 3301 "MediaDataRepresentation.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp29_ = _media_it;
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp30_ = gee_iterator_get (_tmp29_);
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media = (MediaSource*) _tmp30_;
+#line 258 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp31_ = media;
+#line 258 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp32_ = alteration;
+#line 258 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_OBJECT, DataObject), _tmp32_);
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (media);
+#line 3317 "MediaDataRepresentation.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_media_it);
+#line 3321 "MediaDataRepresentation.c"
+ }
+#line 260 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp33_ = controller;
+#line 260 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ transaction_controller_commit (_tmp33_);
+#line 238 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (alteration);
+#line 3329 "MediaDataRepresentation.c"
+}
+
+
+static time_t media_source_real_get_exposure_time (MediaSource* self) {
+#line 263 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_exposure_time'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 263 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return 0;
+#line 3338 "MediaDataRepresentation.c"
+}
+
+
+time_t media_source_get_exposure_time (MediaSource* self) {
+#line 263 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (self), 0);
+#line 263 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_GET_CLASS (self)->get_exposure_time (self);
+#line 3347 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_get_import_id (MediaSource* self, ImportID* result) {
+#line 265 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_get_import_id'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 265 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 3356 "MediaDataRepresentation.c"
+}
+
+
+void media_source_get_import_id (MediaSource* self, ImportID* result) {
+#line 265 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (self));
+#line 265 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_GET_CLASS (self)->get_import_id (self, result);
+#line 3365 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_real_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file) {
+#line 33 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 33 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 3374 "MediaDataRepresentation.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data1 = closure->data;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 3393 "MediaDataRepresentation.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data2 = closure->data;
+#line 3399 "MediaDataRepresentation.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 3405 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_class_init (MediaSourceClass * klass) {
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_parent_class = g_type_class_peek_parent (klass);
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_type_class_add_private (klass, sizeof (MediaSourcePrivate));
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->notify_master_replaced = media_source_real_notify_master_replaced;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((DataObjectClass *) klass)->notify_altered = media_source_real_notify_altered;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((DataObjectClass *) klass)->notify_membership_changed = media_source_real_notify_membership_changed;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->set_event_id = media_source_real_set_event_id;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((DataObjectClass *) klass)->get_name = media_source_real_get_name;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_basename = media_source_real_get_basename;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_file = media_source_real_get_file;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_master_file = media_source_real_get_master_file;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_master_filesize = media_source_real_get_master_filesize;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_filesize = media_source_real_get_filesize;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_timestamp = media_source_real_get_timestamp;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_backing_files_state = media_source_real_get_backing_files_state;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_title = media_source_real_get_title;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_comment = media_source_real_get_comment;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->set_title = media_source_real_set_title;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->set_comment = media_source_real_set_comment;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_rating = media_source_real_get_rating;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->set_rating = media_source_real_set_rating;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->increase_rating = media_source_real_increase_rating;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->decrease_rating = media_source_real_decrease_rating;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_dimensions = media_source_real_get_dimensions;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_preview_pixbuf = media_source_real_get_preview_pixbuf;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->is_trashed = media_source_real_is_trashed;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->trash = media_source_real_trash;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->untrash = media_source_real_untrash;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->is_offline = media_source_real_is_offline;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->mark_offline = media_source_real_mark_offline;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->mark_online = media_source_real_mark_online;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_master_md5 = media_source_real_get_master_md5;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_event_id = media_source_real_get_event_id;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_exposure_time = media_source_real_get_exposure_time;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->get_import_id = media_source_real_get_import_id;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceClass *) klass)->master_replaced = media_source_real_master_replaced;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ G_OBJECT_CLASS (klass)->finalize = media_source_finalize;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("master_replaced", TYPE_MEDIA_SOURCE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceClass, master_replaced), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, G_TYPE_FILE);
+#line 3484 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_indexable_interface_init (IndexableIface * iface) {
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_indexable_parent_iface = g_type_interface_peek_parent (iface);
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ iface->get_indexable_keywords = (const gchar* (*)(Indexable*)) media_source_real_get_indexable_keywords;
+#line 3493 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_instance_init (MediaSource * self) {
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv = MEDIA_SOURCE_GET_PRIVATE (self);
+#line 36 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->event = NULL;
+#line 37 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->indexable_keywords = NULL;
+#line 3504 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_finalize (GObject* obj) {
+ MediaSource * self;
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_SOURCE, MediaSource);
+#line 36 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->event);
+#line 37 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 32 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ G_OBJECT_CLASS (media_source_parent_class)->finalize (obj);
+#line 3518 "MediaDataRepresentation.c"
+}
+
+
+GType media_source_get_type (void) {
+ static volatile gsize media_source_type_id__volatile = 0;
+ if (g_once_init_enter (&media_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaSource), 0, (GInstanceInitFunc) media_source_instance_init, NULL };
+ static const GInterfaceInfo indexable_info = { (GInterfaceInitFunc) media_source_indexable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType media_source_type_id;
+ media_source_type_id = g_type_register_static (TYPE_THUMBNAIL_SOURCE, "MediaSource", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_type_add_interface_static (media_source_type_id, TYPE_INDEXABLE, &indexable_info);
+ g_once_init_leave (&media_source_type_id__volatile, media_source_type_id);
+ }
+ return media_source_type_id__volatile;
+}
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 269 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 3541 "MediaDataRepresentation.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 269 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 3550 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceHoldingTank* media_source_holding_tank_construct (GType object_type, MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target) {
+ MediaSourceHoldingTank* self = NULL;
+ MediaSourceCollection* _tmp0_ = NULL;
+ SourceHoldingTankCheckToKeep _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GetSourceDatabaseKey _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 272 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (sources), NULL);
+#line 274 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = sources;
+#line 274 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = check_to_keep;
+#line 274 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1__target = check_to_keep_target;
+#line 274 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = get_key;
+#line 274 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2__target = get_key_target;
+#line 274 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = (MediaSourceHoldingTank*) database_source_holding_tank_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp1_, _tmp1__target, _tmp2_, _tmp2__target);
+#line 272 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self;
+#line 3577 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceHoldingTank* media_source_holding_tank_new (MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target) {
+#line 272 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return media_source_holding_tank_construct (TYPE_MEDIA_SOURCE_HOLDING_TANK, sources, check_to_keep, check_to_keep_target, get_key, get_key_target);
+#line 3584 "MediaDataRepresentation.c"
+}
+
+
+MediaSource* media_source_holding_tank_fetch_by_master_file (MediaSourceHoldingTank* self, GFile* file) {
+ MediaSource* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_HOLDING_TANK (self), NULL);
+#line 277 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 278 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->master_file_map;
+#line 278 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = file;
+#line 278 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 278 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = (MediaSource*) _tmp2_;
+#line 278 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 3607 "MediaDataRepresentation.c"
+}
+
+
+MediaSource* media_source_holding_tank_fetch_by_md5 (MediaSourceHoldingTank* self, const gchar* md5) {
+ MediaSource* result = NULL;
+#line 281 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_HOLDING_TANK (self), NULL);
+#line 281 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (md5 != NULL, NULL);
+#line 3617 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->master_file_map;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _tmp4_;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp3_);
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_it = _tmp5_;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 3644 "MediaDataRepresentation.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _source_it;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp7_) {
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 3663 "MediaDataRepresentation.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = _source_it;
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source = (MediaSource*) _tmp9_;
+#line 283 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = source;
+#line 283 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = media_source_get_master_md5 (_tmp10_);
+#line 283 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = _tmp11_;
+#line 283 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = md5;
+#line 283 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = g_strcmp0 (_tmp12_, _tmp13_) == 0;
+#line 283 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp12_);
+#line 283 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp14_) {
+#line 284 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = source;
+#line 284 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 284 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 3691 "MediaDataRepresentation.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 3695 "MediaDataRepresentation.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 3699 "MediaDataRepresentation.c"
+ }
+#line 288 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = NULL;
+#line 288 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 3705 "MediaDataRepresentation.c"
+}
+
+
+static void _media_source_holding_tank_on_master_source_replaced_media_source_master_replaced (MediaSource* _sender, GFile* old_file, GFile* new_file, gpointer self) {
+#line 297 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_holding_tank_on_master_source_replaced ((MediaSourceHoldingTank*) self, _sender, old_file, new_file);
+#line 3712 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_holding_tank_real_notify_contents_altered (SourceHoldingTank* base, GeeCollection* added, GeeCollection* removed) {
+ MediaSourceHoldingTank * self;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ GeeCollection* _tmp33_ = NULL;
+ GeeCollection* _tmp34_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank);
+#line 291 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 291 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 293 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = added;
+#line 293 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp0_ != NULL) {
+#line 3732 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = added;
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_it = _tmp2_;
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 3745 "MediaDataRepresentation.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ MediaSource* media_source = NULL;
+ DataSource* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _source_it;
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp4_) {
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 3768 "MediaDataRepresentation.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _source_it;
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source = (DataSource*) _tmp6_;
+#line 295 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = source;
+#line 295 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 295 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source = _tmp8_;
+#line 296 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = self->priv->master_file_map;
+#line 296 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = media_source;
+#line 296 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = media_source_get_master_file (_tmp10_);
+#line 296 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = _tmp11_;
+#line 296 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = media_source;
+#line 296 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_, _tmp13_);
+#line 296 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp12_);
+#line 297 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = media_source;
+#line 297 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_connect (_tmp14_, "master-replaced", (GCallback) _media_source_holding_tank_on_master_source_replaced_media_source_master_replaced, self);
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (media_source);
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 3804 "MediaDataRepresentation.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 3808 "MediaDataRepresentation.c"
+ }
+ }
+#line 301 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = removed;
+#line 301 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp15_ != NULL) {
+#line 3815 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ GeeIterator* _tmp17_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = removed;
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_it = _tmp17_;
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 3828 "MediaDataRepresentation.c"
+ GeeIterator* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ MediaSource* media_source = NULL;
+ DataSource* _tmp22_ = NULL;
+ MediaSource* _tmp23_ = NULL;
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp24_ = NULL;
+ MediaSource* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ MediaSource* _tmp31_ = NULL;
+ guint _tmp32_ = 0U;
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = _source_it;
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = gee_iterator_next (_tmp18_);
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp19_) {
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 3855 "MediaDataRepresentation.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = _source_it;
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = gee_iterator_get (_tmp20_);
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source = (DataSource*) _tmp21_;
+#line 303 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp22_ = source;
+#line 303 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 303 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source = _tmp23_;
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24_ = self->priv->master_file_map;
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ = media_source;
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp26_ = media_source_get_master_file (_tmp25_);
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp27_ = _tmp26_;
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp27_, NULL);
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp29_ = _tmp28_;
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp27_);
+#line 304 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ is_removed = _tmp29_;
+#line 305 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp30_ = is_removed;
+#line 305 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (_tmp30_, "is_removed");
+#line 306 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp31_ = media_source;
+#line 306 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_parse_name ("master-replaced", TYPE_MEDIA_SOURCE, &_tmp32_, NULL, FALSE);
+#line 306 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_handlers_disconnect_matched (_tmp31_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp32_, 0, NULL, (GCallback) _media_source_holding_tank_on_master_source_replaced_media_source_master_replaced, self);
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (media_source);
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 3899 "MediaDataRepresentation.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 3903 "MediaDataRepresentation.c"
+ }
+ }
+#line 310 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp33_ = added;
+#line 310 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp34_ = removed;
+#line 310 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ SOURCE_HOLDING_TANK_CLASS (media_source_holding_tank_parent_class)->notify_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp33_, _tmp34_);
+#line 3912 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_holding_tank_on_master_source_replaced (MediaSourceHoldingTank* self, MediaSource* media_source, GFile* old_file, GFile* new_file) {
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ MediaSource* _tmp5_ = NULL;
+#line 313 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_HOLDING_TANK (self));
+#line 313 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (media_source));
+#line 313 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 313 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 314 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->master_file_map;
+#line 314 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = old_file;
+#line 314 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_, NULL);
+#line 314 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ removed = _tmp2_;
+#line 315 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (removed, "removed");
+#line 317 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = self->priv->master_file_map;
+#line 317 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = new_file;
+#line 317 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = media_source;
+#line 317 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, _tmp5_);
+#line 3950 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_holding_tank_class_init (MediaSourceHoldingTankClass * klass) {
+#line 268 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_holding_tank_parent_class = g_type_class_peek_parent (klass);
+#line 268 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((SourceHoldingTankClass *) klass)->finalize = media_source_holding_tank_finalize;
+#line 268 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_type_class_add_private (klass, sizeof (MediaSourceHoldingTankPrivate));
+#line 268 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((SourceHoldingTankClass *) klass)->notify_contents_altered = media_source_holding_tank_real_notify_contents_altered;
+#line 3963 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_holding_tank_instance_init (MediaSourceHoldingTank * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv = MEDIA_SOURCE_HOLDING_TANK_GET_PRIVATE (self);
+#line 269 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 269 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->master_file_map = _tmp0_;
+#line 3975 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_holding_tank_finalize (SourceHoldingTank* obj) {
+ MediaSourceHoldingTank * self;
+#line 268 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank);
+#line 269 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->master_file_map);
+#line 268 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ SOURCE_HOLDING_TANK_CLASS (media_source_holding_tank_parent_class)->finalize (obj);
+#line 3987 "MediaDataRepresentation.c"
+}
+
+
+GType media_source_holding_tank_get_type (void) {
+ static volatile gsize media_source_holding_tank_type_id__volatile = 0;
+ if (g_once_init_enter (&media_source_holding_tank_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaSourceHoldingTankClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_source_holding_tank_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaSourceHoldingTank), 0, (GInstanceInitFunc) media_source_holding_tank_instance_init, NULL };
+ GType media_source_holding_tank_type_id;
+ media_source_holding_tank_type_id = g_type_register_static (TYPE_DATABASE_SOURCE_HOLDING_TANK, "MediaSourceHoldingTank", &g_define_type_info, 0);
+ g_once_init_leave (&media_source_holding_tank_type_id__volatile, media_source_holding_tank_type_id);
+ }
+ return media_source_holding_tank_type_id__volatile;
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 327 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 4006 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceTransactionController* media_source_transaction_controller_construct (GType object_type, MediaSourceCollection* sources) {
+ MediaSourceTransactionController* self = NULL;
+ MediaSourceCollection* _tmp0_ = NULL;
+ MediaSourceCollection* _tmp1_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (sources), NULL);
+#line 326 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = (MediaSourceTransactionController*) transaction_controller_construct (object_type);
+#line 327 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = sources;
+#line 327 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 327 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 327 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->sources = _tmp1_;
+#line 326 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self;
+#line 4028 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceTransactionController* media_source_transaction_controller_new (MediaSourceCollection* sources) {
+#line 326 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return media_source_transaction_controller_construct (TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, sources);
+#line 4035 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_transaction_controller_real_begin_impl (TransactionController* base, GError** error) {
+ MediaSourceTransactionController * self;
+ MediaSourceCollection* _tmp0_ = NULL;
+#line 330 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionController);
+#line 331 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ database_table_begin_transaction ();
+#line 332 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->sources;
+#line 332 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 4050 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_transaction_controller_real_commit_impl (TransactionController* base, GError** error) {
+ MediaSourceTransactionController * self;
+ MediaSourceCollection* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionController);
+#line 336 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->sources;
+#line 336 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 337 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ database_table_commit_transaction (&_inner_error_);
+#line 337 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 337 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_propagate_error (error, _inner_error_);
+#line 337 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 4072 "MediaDataRepresentation.c"
+ }
+}
+
+
+static void media_source_transaction_controller_class_init (MediaSourceTransactionControllerClass * klass) {
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_transaction_controller_parent_class = g_type_class_peek_parent (klass);
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((TransactionControllerClass *) klass)->finalize = media_source_transaction_controller_finalize;
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_type_class_add_private (klass, sizeof (MediaSourceTransactionControllerPrivate));
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((TransactionControllerClass *) klass)->begin_impl = media_source_transaction_controller_real_begin_impl;
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((TransactionControllerClass *) klass)->commit_impl = media_source_transaction_controller_real_commit_impl;
+#line 4088 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_transaction_controller_instance_init (MediaSourceTransactionController * self) {
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv = MEDIA_SOURCE_TRANSACTION_CONTROLLER_GET_PRIVATE (self);
+#line 4095 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_transaction_controller_finalize (TransactionController* obj) {
+ MediaSourceTransactionController * self;
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionController);
+#line 324 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 323 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ TRANSACTION_CONTROLLER_CLASS (media_source_transaction_controller_parent_class)->finalize (obj);
+#line 4107 "MediaDataRepresentation.c"
+}
+
+
+GType media_source_transaction_controller_get_type (void) {
+ static volatile gsize media_source_transaction_controller_type_id__volatile = 0;
+ if (g_once_init_enter (&media_source_transaction_controller_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaSourceTransactionControllerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_source_transaction_controller_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaSourceTransactionController), 0, (GInstanceInitFunc) media_source_transaction_controller_instance_init, NULL };
+ GType media_source_transaction_controller_type_id;
+ media_source_transaction_controller_type_id = g_type_register_static (TYPE_TRANSACTION_CONTROLLER, "MediaSourceTransactionController", &g_define_type_info, 0);
+ g_once_init_leave (&media_source_transaction_controller_type_id__volatile, media_source_transaction_controller_type_id);
+ }
+ return media_source_transaction_controller_type_id__volatile;
+}
+
+
+static gint _import_id_compare_func_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = import_id_compare_func ((ImportID*) a, (ImportID*) b);
+#line 348 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 4128 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceCollection* media_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target) {
+ MediaSourceCollection* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ GetSourceDatabaseKey _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ MediaSourceHoldingTank* _tmp2_ = NULL;
+ MediaSourceHoldingTank* _tmp3_ = NULL;
+#line 382 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 383 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = name;
+#line 383 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = source_key_func;
+#line 383 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1__target = source_key_func_target;
+#line 383 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = (MediaSourceCollection*) database_source_collection_construct (object_type, _tmp0_, _tmp1_, _tmp1__target);
+#line 385 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = media_source_collection_create_trashcan (self);
+#line 385 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (self->priv->trashcan);
+#line 385 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->trashcan = _tmp2_;
+#line 386 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = media_source_collection_create_offline_bin (self);
+#line 386 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (self->priv->offline_bin);
+#line 386 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->offline_bin = _tmp3_;
+#line 382 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self;
+#line 4163 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_filter_media (GeeCollection* media, GeeCollection* photos, GeeCollection* videos) {
+#line 389 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 389 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((photos == NULL) || GEE_IS_COLLECTION (photos));
+#line 389 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((videos == NULL) || GEE_IS_COLLECTION (videos));
+#line 4174 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media;
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_it = _tmp1_;
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 4187 "MediaDataRepresentation.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GeeCollection* _tmp7_ = NULL;
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _source_it;
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp3_) {
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 4203 "MediaDataRepresentation.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _source_it;
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source = (MediaSource*) _tmp5_;
+#line 392 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = photos;
+#line 392 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp7_ != NULL) {
+#line 4215 "MediaDataRepresentation.c"
+ MediaSource* _tmp8_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = source;
+#line 392 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, TYPE_LIBRARY_PHOTO);
+#line 4221 "MediaDataRepresentation.c"
+ } else {
+#line 392 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = FALSE;
+#line 4225 "MediaDataRepresentation.c"
+ }
+#line 392 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp6_) {
+#line 4229 "MediaDataRepresentation.c"
+ GeeCollection* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = photos;
+#line 393 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = source;
+#line 393 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_collection_add (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 4238 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp11_ = FALSE;
+ GeeCollection* _tmp12_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = videos;
+#line 394 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp12_ != NULL) {
+#line 4246 "MediaDataRepresentation.c"
+ MediaSource* _tmp13_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = source;
+#line 394 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_VIDEO);
+#line 4252 "MediaDataRepresentation.c"
+ } else {
+#line 394 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = FALSE;
+#line 4256 "MediaDataRepresentation.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp11_) {
+#line 4260 "MediaDataRepresentation.c"
+ GeeCollection* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = videos;
+#line 395 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = source;
+#line 395 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_collection_add (_tmp14_, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_VIDEO, Video));
+#line 4269 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp16_ = FALSE;
+ GeeCollection* _tmp17_ = NULL;
+#line 396 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = photos;
+#line 396 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp17_ != NULL) {
+#line 396 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = TRUE;
+#line 4279 "MediaDataRepresentation.c"
+ } else {
+ GeeCollection* _tmp18_ = NULL;
+#line 396 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = videos;
+#line 396 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = _tmp18_ != NULL;
+#line 4286 "MediaDataRepresentation.c"
+ }
+#line 396 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp16_) {
+#line 4290 "MediaDataRepresentation.c"
+ MediaSource* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = source;
+#line 397 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_OBJECT, DataObject));
+#line 397 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = _tmp20_;
+#line 397 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_warning ("MediaDataRepresentation.vala:397: Unrecognized media: %s", _tmp21_);
+#line 397 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp21_);
+#line 4304 "MediaDataRepresentation.c"
+ }
+ }
+ }
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 4310 "MediaDataRepresentation.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 4314 "MediaDataRepresentation.c"
+ }
+}
+
+
+void media_source_collection_count_media (GeeCollection* media, gint* photo_count, gint* video_count) {
+ gint _vala_photo_count = 0;
+ gint _vala_video_count = 0;
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* videos = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 401 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 403 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 403 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ photos = _tmp0_;
+#line 404 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 404 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ videos = _tmp1_;
+#line 406 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = media;
+#line 406 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_filter_media (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (photos, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (videos, GEE_TYPE_COLLECTION, GeeCollection));
+#line 408 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (photos, GEE_TYPE_COLLECTION, GeeCollection));
+#line 408 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _tmp3_;
+#line 408 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_photo_count = _tmp4_;
+#line 409 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (videos, GEE_TYPE_COLLECTION, GeeCollection));
+#line 409 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _tmp5_;
+#line 409 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_video_count = _tmp6_;
+#line 401 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (videos);
+#line 401 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (photos);
+#line 401 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (photo_count) {
+#line 401 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *photo_count = _vala_photo_count;
+#line 4365 "MediaDataRepresentation.c"
+ }
+#line 401 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (video_count) {
+#line 401 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *video_count = _vala_video_count;
+#line 4371 "MediaDataRepresentation.c"
+ }
+}
+
+
+gboolean media_source_collection_has_photo (GeeCollection* media) {
+ gboolean result = FALSE;
+#line 412 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (media), FALSE);
+#line 4380 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _current_media_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media;
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _current_media_it = _tmp1_;
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 4393 "MediaDataRepresentation.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ MediaSource* current_media = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _current_media_it;
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp3_) {
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 4408 "MediaDataRepresentation.c"
+ }
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _current_media_it;
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ current_media = (MediaSource*) _tmp5_;
+#line 414 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = current_media;
+#line 414 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_PHOTO)) {
+#line 415 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = TRUE;
+#line 415 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (current_media);
+#line 415 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_current_media_it);
+#line 415 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 4428 "MediaDataRepresentation.c"
+ }
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (current_media);
+#line 4432 "MediaDataRepresentation.c"
+ }
+#line 413 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_current_media_it);
+#line 4436 "MediaDataRepresentation.c"
+ }
+#line 419 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = FALSE;
+#line 419 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 4442 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_collection_has_video (GeeCollection* media) {
+ gboolean result = FALSE;
+#line 422 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (media), FALSE);
+#line 4450 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _current_media_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media;
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _current_media_it = _tmp1_;
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 4463 "MediaDataRepresentation.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ MediaSource* current_media = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _current_media_it;
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp3_) {
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 4478 "MediaDataRepresentation.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _current_media_it;
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ current_media = (MediaSource*) _tmp5_;
+#line 424 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = current_media;
+#line 424 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_VIDEO)) {
+#line 425 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = TRUE;
+#line 425 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (current_media);
+#line 425 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_current_media_it);
+#line 425 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 4498 "MediaDataRepresentation.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (current_media);
+#line 4502 "MediaDataRepresentation.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_current_media_it);
+#line 4506 "MediaDataRepresentation.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = FALSE;
+#line 429 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 4512 "MediaDataRepresentation.c"
+}
+
+
+static MediaSourceHoldingTank* media_source_collection_real_create_trashcan (MediaSourceCollection* self) {
+#line 432 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_collection_create_trashcan'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 432 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 4521 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceHoldingTank* media_source_collection_create_trashcan (MediaSourceCollection* self) {
+#line 432 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 432 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->create_trashcan (self);
+#line 4530 "MediaDataRepresentation.c"
+}
+
+
+static MediaSourceHoldingTank* media_source_collection_real_create_offline_bin (MediaSourceCollection* self) {
+#line 434 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_collection_create_offline_bin'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 434 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 4539 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceHoldingTank* media_source_collection_create_offline_bin (MediaSourceCollection* self) {
+#line 434 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 434 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->create_offline_bin (self);
+#line 4548 "MediaDataRepresentation.c"
+}
+
+
+static MediaMonitor* media_source_collection_real_create_media_monitor (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable) {
+#line 436 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_collection_create_media_monitor'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 436 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 4557 "MediaDataRepresentation.c"
+}
+
+
+MediaMonitor* media_source_collection_create_media_monitor (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable) {
+#line 436 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 436 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->create_media_monitor (self, workers, cancellable);
+#line 4566 "MediaDataRepresentation.c"
+}
+
+
+static gchar* media_source_collection_real_get_typename (MediaSourceCollection* self) {
+#line 438 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_collection_get_typename'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 438 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 4575 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_source_collection_get_typename (MediaSourceCollection* self) {
+#line 438 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 438 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->get_typename (self);
+#line 4584 "MediaDataRepresentation.c"
+}
+
+
+static gboolean media_source_collection_real_is_file_recognized (MediaSourceCollection* self, GFile* file) {
+#line 440 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_collection_is_file_recognized'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 440 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return FALSE;
+#line 4593 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_source_collection_is_file_recognized (MediaSourceCollection* self, GFile* file) {
+#line 440 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), FALSE);
+#line 440 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->is_file_recognized (self, file);
+#line 4602 "MediaDataRepresentation.c"
+}
+
+
+static gpointer _source_holding_tank_ref0 (gpointer self) {
+#line 443 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self ? source_holding_tank_ref (self) : NULL;
+#line 4609 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceHoldingTank* media_source_collection_get_trashcan (MediaSourceCollection* self) {
+ MediaSourceHoldingTank* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+#line 442 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 443 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->trashcan;
+#line 443 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _source_holding_tank_ref0 (_tmp0_);
+#line 443 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 443 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 4627 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceHoldingTank* media_source_collection_get_offline_bin (MediaSourceCollection* self) {
+ MediaSourceHoldingTank* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+#line 446 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 447 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->offline_bin;
+#line 447 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _source_holding_tank_ref0 (_tmp0_);
+#line 447 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 447 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 4645 "MediaDataRepresentation.c"
+}
+
+
+static MediaSource* media_source_collection_real_fetch_by_numeric_id (MediaSourceCollection* self, gint64 numeric_id) {
+#line 453 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_collection_fetch_by_numeric_id'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 453 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 4654 "MediaDataRepresentation.c"
+}
+
+
+MediaSource* media_source_collection_fetch_by_numeric_id (MediaSourceCollection* self, gint64 numeric_id) {
+#line 453 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 453 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->fetch_by_numeric_id (self, numeric_id);
+#line 4663 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_notify_import_roll_altered (MediaSourceCollection* self) {
+#line 456 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_emit_by_name (self, "import-roll-altered");
+#line 4670 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_notify_import_roll_altered (MediaSourceCollection* self) {
+#line 455 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 455 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->notify_import_roll_altered (self);
+#line 4679 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_notify_flagged_contents_altered (MediaSourceCollection* self) {
+#line 460 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_emit_by_name (self, "flagged-contents-altered");
+#line 4686 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_notify_flagged_contents_altered (MediaSourceCollection* self) {
+#line 459 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 459 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->notify_flagged_contents_altered (self);
+#line 4695 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_notify_media_import_starting (MediaSourceCollection* self, GeeCollection* media) {
+ GeeCollection* _tmp0_ = NULL;
+#line 463 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 464 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media;
+#line 464 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_emit_by_name (self, "media-import-starting", _tmp0_);
+#line 4707 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_notify_media_import_starting (MediaSourceCollection* self, GeeCollection* media) {
+#line 463 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 463 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->notify_media_import_starting (self, media);
+#line 4716 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_notify_media_import_completed (MediaSourceCollection* self, GeeCollection* media) {
+ GeeCollection* _tmp0_ = NULL;
+#line 467 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 468 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media;
+#line 468 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_emit_by_name (self, "media-import-completed", _tmp0_);
+#line 4728 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_notify_media_import_completed (MediaSourceCollection* self, GeeCollection* media) {
+#line 467 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 467 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->notify_media_import_completed (self, media);
+#line 4737 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_items_altered (DataCollection* base, GeeMap* items) {
+ MediaSourceCollection * self;
+ GeeArrayList* to_trashcan = NULL;
+ GeeArrayList* to_offline = NULL;
+ gboolean flagged_altered = FALSE;
+ GeeArrayList* _tmp54_ = NULL;
+ GeeArrayList* _tmp58_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ GeeMap* _tmp63_ = NULL;
+#line 471 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection);
+#line 471 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 472 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ to_trashcan = NULL;
+#line 473 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ to_offline = NULL;
+#line 474 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flagged_altered = FALSE;
+#line 4760 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = items;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _tmp4_;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp3_);
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _object_it = _tmp5_;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 4787 "MediaDataRepresentation.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Alteration* alteration = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ MediaSource* source = NULL;
+ DataObject* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ Alteration* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+ MediaSource* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ MediaSource* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ Flaggable* flaggable = NULL;
+ MediaSource* _tmp39_ = NULL;
+ Flaggable* _tmp40_ = NULL;
+ Flaggable* _tmp41_ = NULL;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _object_it;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp7_) {
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 4820 "MediaDataRepresentation.c"
+ }
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = _object_it;
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ object = (DataObject*) _tmp9_;
+#line 476 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = items;
+#line 476 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = object;
+#line 476 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 476 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ alteration = (Alteration*) _tmp12_;
+#line 477 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = object;
+#line 477 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 477 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source = _tmp14_;
+#line 479 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = alteration;
+#line 479 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = alteration_has_subject (_tmp15_, "metadata");
+#line 479 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp16_) {
+#line 480 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 480 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (alteration);
+#line 480 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (object);
+#line 480 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ continue;
+#line 4856 "MediaDataRepresentation.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = source;
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = media_source_is_trashed (_tmp18_);
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp19_) {
+#line 4864 "MediaDataRepresentation.c"
+ MediaSourceHoldingTank* _tmp20_ = NULL;
+ MediaSourceHoldingTank* _tmp21_ = NULL;
+ MediaSource* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = media_source_collection_get_trashcan (self);
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = _tmp20_;
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp22_ = source;
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = source_holding_tank_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_SOURCE, DataSource));
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = !_tmp23_;
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp21_);
+#line 4881 "MediaDataRepresentation.c"
+ } else {
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = FALSE;
+#line 4885 "MediaDataRepresentation.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp17_) {
+#line 4889 "MediaDataRepresentation.c"
+ GeeArrayList* _tmp24_ = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ MediaSource* _tmp27_ = NULL;
+#line 483 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24_ = to_trashcan;
+#line 483 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp24_ == NULL) {
+#line 4897 "MediaDataRepresentation.c"
+ GeeArrayList* _tmp25_ = NULL;
+#line 484 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 484 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (to_trashcan);
+#line 484 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ to_trashcan = _tmp25_;
+#line 4905 "MediaDataRepresentation.c"
+ }
+#line 486 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp26_ = to_trashcan;
+#line 486 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp27_ = source;
+#line 486 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp27_);
+#line 489 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 489 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (alteration);
+#line 489 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (object);
+#line 489 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ continue;
+#line 4921 "MediaDataRepresentation.c"
+ }
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp29_ = source;
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp30_ = media_source_is_offline (_tmp29_);
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp30_) {
+#line 4929 "MediaDataRepresentation.c"
+ MediaSourceHoldingTank* _tmp31_ = NULL;
+ MediaSourceHoldingTank* _tmp32_ = NULL;
+ MediaSource* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp31_ = media_source_collection_get_offline_bin (self);
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp32_ = _tmp31_;
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp33_ = source;
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp34_ = source_holding_tank_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_DATA_SOURCE, DataSource));
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = !_tmp34_;
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp32_);
+#line 4946 "MediaDataRepresentation.c"
+ } else {
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = FALSE;
+#line 4950 "MediaDataRepresentation.c"
+ }
+#line 492 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp28_) {
+#line 4954 "MediaDataRepresentation.c"
+ GeeArrayList* _tmp35_ = NULL;
+ GeeArrayList* _tmp37_ = NULL;
+ MediaSource* _tmp38_ = NULL;
+#line 493 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp35_ = to_offline;
+#line 493 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp35_ == NULL) {
+#line 4962 "MediaDataRepresentation.c"
+ GeeArrayList* _tmp36_ = NULL;
+#line 494 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp36_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 494 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (to_offline);
+#line 494 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ to_offline = _tmp36_;
+#line 4970 "MediaDataRepresentation.c"
+ }
+#line 496 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp37_ = to_offline;
+#line 496 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp38_ = source;
+#line 496 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp38_);
+#line 4978 "MediaDataRepresentation.c"
+ }
+#line 499 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp39_ = source;
+#line 499 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp40_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp39_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp39_) : NULL);
+#line 499 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flaggable = _tmp40_;
+#line 500 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp41_ = flaggable;
+#line 500 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp41_ != NULL) {
+#line 4990 "MediaDataRepresentation.c"
+ Flaggable* _tmp42_ = NULL;
+ gboolean _tmp43_ = FALSE;
+#line 501 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp42_ = flaggable;
+#line 501 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp43_ = flaggable_is_flagged (_tmp42_);
+#line 501 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp43_) {
+#line 4999 "MediaDataRepresentation.c"
+ gboolean _tmp44_ = FALSE;
+ GeeSet* _tmp45_ = NULL;
+ MediaSource* _tmp46_ = NULL;
+ gboolean _tmp47_ = FALSE;
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp45_ = self->priv->flagged;
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp46_ = source;
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp47_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, GEE_TYPE_COLLECTION, GeeCollection), _tmp46_);
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp47_) {
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp44_ = TRUE;
+#line 5014 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp48_ = FALSE;
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp48_ = flagged_altered;
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp44_ = _tmp48_;
+#line 5021 "MediaDataRepresentation.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flagged_altered = _tmp44_;
+#line 5025 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp49_ = FALSE;
+ GeeSet* _tmp50_ = NULL;
+ MediaSource* _tmp51_ = NULL;
+ gboolean _tmp52_ = FALSE;
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp50_ = self->priv->flagged;
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp51_ = source;
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp52_ = gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection), _tmp51_);
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp52_) {
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp49_ = TRUE;
+#line 5041 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp53_ = FALSE;
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp53_ = flagged_altered;
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp49_ = _tmp53_;
+#line 5048 "MediaDataRepresentation.c"
+ }
+#line 504 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flagged_altered = _tmp49_;
+#line 5052 "MediaDataRepresentation.c"
+ }
+ }
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (flaggable);
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _alteration_unref0 (alteration);
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (object);
+#line 5063 "MediaDataRepresentation.c"
+ }
+#line 475 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_object_it);
+#line 5067 "MediaDataRepresentation.c"
+ }
+#line 508 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp54_ = to_trashcan;
+#line 508 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp54_ != NULL) {
+#line 5073 "MediaDataRepresentation.c"
+ MediaSourceHoldingTank* _tmp55_ = NULL;
+ MediaSourceHoldingTank* _tmp56_ = NULL;
+ GeeArrayList* _tmp57_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp55_ = media_source_collection_get_trashcan (self);
+#line 509 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp56_ = _tmp55_;
+#line 509 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp57_ = to_trashcan;
+#line 509 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source_holding_tank_unlink_and_hold (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 509 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp56_);
+#line 5087 "MediaDataRepresentation.c"
+ }
+#line 511 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp58_ = to_offline;
+#line 511 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp58_ != NULL) {
+#line 5093 "MediaDataRepresentation.c"
+ MediaSourceHoldingTank* _tmp59_ = NULL;
+ MediaSourceHoldingTank* _tmp60_ = NULL;
+ GeeArrayList* _tmp61_ = NULL;
+#line 512 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp59_ = media_source_collection_get_offline_bin (self);
+#line 512 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp60_ = _tmp59_;
+#line 512 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp61_ = to_offline;
+#line 512 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source_holding_tank_unlink_and_hold (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 512 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp60_);
+#line 5107 "MediaDataRepresentation.c"
+ }
+#line 514 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp62_ = flagged_altered;
+#line 514 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp62_) {
+#line 515 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_notify_flagged_contents_altered (self);
+#line 5115 "MediaDataRepresentation.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp63_ = items;
+#line 517 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ DATA_COLLECTION_CLASS (media_source_collection_parent_class)->items_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp63_);
+#line 471 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (to_offline);
+#line 471 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (to_trashcan);
+#line 5125 "MediaDataRepresentation.c"
+}
+
+
+static void _media_source_collection_on_master_replaced_media_source_master_replaced (MediaSource* _sender, GFile* old_file, GFile* new_file, gpointer self) {
+#line 529 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_on_master_replaced ((MediaSourceCollection*) self, _sender, old_file, new_file);
+#line 5132 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed) {
+ MediaSourceCollection * self;
+ gboolean import_roll_changed = FALSE;
+ gboolean flagged_altered = FALSE;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp38_ = NULL;
+ gboolean _tmp74_ = FALSE;
+ gboolean _tmp75_ = FALSE;
+ GeeIterable* _tmp76_ = NULL;
+ GeeIterable* _tmp77_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection);
+#line 520 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 520 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 522 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ import_roll_changed = FALSE;
+#line 523 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flagged_altered = FALSE;
+#line 524 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = added;
+#line 524 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp0_ != NULL) {
+#line 5160 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = added;
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _object_it = _tmp2_;
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 5173 "MediaDataRepresentation.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ MediaSource* media = NULL;
+ DataObject* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ ImportID import_id = {0};
+ MediaSource* _tmp15_ = NULL;
+ ImportID _tmp16_ = {0};
+ gboolean _tmp17_ = FALSE;
+ Flaggable* flaggable = NULL;
+ MediaSource* _tmp23_ = NULL;
+ Flaggable* _tmp24_ = NULL;
+ Flaggable* _tmp25_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _object_it;
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp4_) {
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 5204 "MediaDataRepresentation.c"
+ }
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _object_it;
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ object = (DataObject*) _tmp6_;
+#line 526 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = object;
+#line 526 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 526 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media = _tmp8_;
+#line 528 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = self->priv->by_master_file;
+#line 528 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = media;
+#line 528 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = media_source_get_master_file (_tmp10_);
+#line 528 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = _tmp11_;
+#line 528 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = media;
+#line 528 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_, _tmp13_);
+#line 528 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp12_);
+#line 529 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = media;
+#line 529 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_connect (_tmp14_, "master-replaced", (GCallback) _media_source_collection_on_master_replaced_media_source_master_replaced, self);
+#line 531 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = media;
+#line 531 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_get_import_id (_tmp15_, &_tmp16_);
+#line 531 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ import_id = _tmp16_;
+#line 532 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = import_id_is_valid (&import_id);
+#line 532 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp17_) {
+#line 5246 "MediaDataRepresentation.c"
+ GeeTreeSet* _tmp18_ = NULL;
+ ImportID _tmp19_ = {0};
+ GeeMultiMap* _tmp20_ = NULL;
+ ImportID _tmp21_ = {0};
+ MediaSource* _tmp22_ = NULL;
+#line 533 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = self->priv->sorted_import_ids;
+#line 533 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = import_id;
+#line 533 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), &_tmp19_);
+#line 534 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = self->priv->import_rolls;
+#line 534 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = import_id;
+#line 534 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp22_ = media;
+#line 534 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_multi_map_set (_tmp20_, &_tmp21_, _tmp22_);
+#line 536 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ import_roll_changed = TRUE;
+#line 5268 "MediaDataRepresentation.c"
+ }
+#line 539 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = media;
+#line 539 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp23_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp23_) : NULL);
+#line 539 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flaggable = _tmp24_;
+#line 540 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ = flaggable;
+#line 540 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp25_ != NULL) {
+#line 5280 "MediaDataRepresentation.c"
+ Flaggable* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 541 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp26_ = flaggable;
+#line 541 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp27_ = flaggable_is_flagged (_tmp26_);
+#line 541 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp27_) {
+#line 5289 "MediaDataRepresentation.c"
+ gboolean _tmp28_ = FALSE;
+ GeeSet* _tmp29_ = NULL;
+ MediaSource* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp29_ = self->priv->flagged;
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp30_ = media;
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp31_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection), _tmp30_);
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp31_) {
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = TRUE;
+#line 5304 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp32_ = FALSE;
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp32_ = flagged_altered;
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = _tmp32_;
+#line 5311 "MediaDataRepresentation.c"
+ }
+#line 542 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flagged_altered = _tmp28_;
+#line 5315 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp33_ = FALSE;
+ GeeSet* _tmp34_ = NULL;
+ MediaSource* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp34_ = self->priv->flagged;
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp35_ = media;
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp36_ = gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection), _tmp35_);
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp36_) {
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp33_ = TRUE;
+#line 5331 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp37_ = FALSE;
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp37_ = flagged_altered;
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp33_ = _tmp37_;
+#line 5338 "MediaDataRepresentation.c"
+ }
+#line 544 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flagged_altered = _tmp33_;
+#line 5342 "MediaDataRepresentation.c"
+ }
+ }
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (flaggable);
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (media);
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (object);
+#line 5351 "MediaDataRepresentation.c"
+ }
+#line 525 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_object_it);
+#line 5355 "MediaDataRepresentation.c"
+ }
+ }
+#line 549 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp38_ = removed;
+#line 549 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp38_ != NULL) {
+#line 5362 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp39_ = NULL;
+ GeeIterator* _tmp40_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp39_ = removed;
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp40_ = gee_iterable_iterator (_tmp39_);
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _object_it = _tmp40_;
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 5375 "MediaDataRepresentation.c"
+ GeeIterator* _tmp41_ = NULL;
+ gboolean _tmp42_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp43_ = NULL;
+ gpointer _tmp44_ = NULL;
+ MediaSource* media = NULL;
+ DataObject* _tmp45_ = NULL;
+ MediaSource* _tmp46_ = NULL;
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp47_ = NULL;
+ MediaSource* _tmp48_ = NULL;
+ GFile* _tmp49_ = NULL;
+ GFile* _tmp50_ = NULL;
+ gboolean _tmp51_ = FALSE;
+ gboolean _tmp52_ = FALSE;
+ gboolean _tmp53_ = FALSE;
+ MediaSource* _tmp54_ = NULL;
+ guint _tmp55_ = 0U;
+ ImportID import_id = {0};
+ MediaSource* _tmp56_ = NULL;
+ ImportID _tmp57_ = {0};
+ gboolean _tmp58_ = FALSE;
+ gboolean _tmp69_ = FALSE;
+ GeeSet* _tmp70_ = NULL;
+ MediaSource* _tmp71_ = NULL;
+ gboolean _tmp72_ = FALSE;
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp41_ = _object_it;
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp42_ = gee_iterator_next (_tmp41_);
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp42_) {
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 5410 "MediaDataRepresentation.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp43_ = _object_it;
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp44_ = gee_iterator_get (_tmp43_);
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ object = (DataObject*) _tmp44_;
+#line 551 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp45_ = object;
+#line 551 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp46_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 551 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media = _tmp46_;
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp47_ = self->priv->by_master_file;
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp48_ = media;
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp49_ = media_source_get_master_file (_tmp48_);
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp50_ = _tmp49_;
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp51_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp50_, NULL);
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp52_ = _tmp51_;
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp50_);
+#line 553 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ is_removed = _tmp52_;
+#line 554 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp53_ = is_removed;
+#line 554 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (_tmp53_, "is_removed");
+#line 555 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp54_ = media;
+#line 555 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_parse_name ("master-replaced", TYPE_MEDIA_SOURCE, &_tmp55_, NULL, FALSE);
+#line 555 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_handlers_disconnect_matched (_tmp54_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp55_, 0, NULL, (GCallback) _media_source_collection_on_master_replaced_media_source_master_replaced, self);
+#line 557 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp56_ = media;
+#line 557 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_get_import_id (_tmp56_, &_tmp57_);
+#line 557 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ import_id = _tmp57_;
+#line 558 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp58_ = import_id_is_valid (&import_id);
+#line 558 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp58_) {
+#line 5460 "MediaDataRepresentation.c"
+ GeeMultiMap* _tmp59_ = NULL;
+ ImportID _tmp60_ = {0};
+ MediaSource* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ gboolean _tmp63_ = FALSE;
+ GeeMultiMap* _tmp64_ = NULL;
+ ImportID _tmp65_ = {0};
+ gboolean _tmp66_ = FALSE;
+#line 559 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp59_ = self->priv->import_rolls;
+#line 559 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp60_ = import_id;
+#line 559 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp61_ = media;
+#line 559 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp62_ = gee_multi_map_remove (_tmp59_, &_tmp60_, _tmp61_);
+#line 559 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ is_removed = _tmp62_;
+#line 560 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp63_ = is_removed;
+#line 560 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (_tmp63_, "is_removed");
+#line 561 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp64_ = self->priv->import_rolls;
+#line 561 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp65_ = import_id;
+#line 561 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp66_ = gee_multi_map_contains (_tmp64_, &_tmp65_);
+#line 561 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp66_) {
+#line 5491 "MediaDataRepresentation.c"
+ GeeTreeSet* _tmp67_ = NULL;
+ ImportID _tmp68_ = {0};
+#line 562 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp67_ = self->priv->sorted_import_ids;
+#line 562 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp68_ = import_id;
+#line 562 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), &_tmp68_);
+#line 5500 "MediaDataRepresentation.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ import_roll_changed = TRUE;
+#line 5504 "MediaDataRepresentation.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp70_ = self->priv->flagged;
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp71_ = media;
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp72_ = gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, GEE_TYPE_COLLECTION, GeeCollection), _tmp71_);
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp72_) {
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp69_ = TRUE;
+#line 5516 "MediaDataRepresentation.c"
+ } else {
+ gboolean _tmp73_ = FALSE;
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp73_ = flagged_altered;
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp69_ = _tmp73_;
+#line 5523 "MediaDataRepresentation.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ flagged_altered = _tmp69_;
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (media);
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (object);
+#line 5531 "MediaDataRepresentation.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_object_it);
+#line 5535 "MediaDataRepresentation.c"
+ }
+ }
+#line 571 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp74_ = import_roll_changed;
+#line 571 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp74_) {
+#line 572 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_notify_import_roll_altered (self);
+#line 5544 "MediaDataRepresentation.c"
+ }
+#line 574 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp75_ = flagged_altered;
+#line 574 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp75_) {
+#line 575 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_notify_flagged_contents_altered (self);
+#line 5552 "MediaDataRepresentation.c"
+ }
+#line 577 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp76_ = added;
+#line 577 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp77_ = removed;
+#line 577 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ DATA_COLLECTION_CLASS (media_source_collection_parent_class)->notify_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp76_, _tmp77_);
+#line 5560 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_on_master_replaced (MediaSourceCollection* self, MediaSource* media, GFile* old_file, GFile* new_file) {
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ MediaSource* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+#line 580 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 580 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (media));
+#line 580 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 580 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 581 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->by_master_file;
+#line 581 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = old_file;
+#line 581 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_, NULL);
+#line 581 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ is_removed = _tmp2_;
+#line 582 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (is_removed, "is_removed");
+#line 584 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = self->priv->by_master_file;
+#line 584 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = new_file;
+#line 584 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = media;
+#line 584 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, _tmp5_);
+#line 586 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = media;
+#line 586 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = old_file;
+#line 586 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = new_file;
+#line 586 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_emit_by_name (self, "master-file-replaced", _tmp6_, _tmp7_, _tmp8_);
+#line 5609 "MediaDataRepresentation.c"
+}
+
+
+MediaSource* media_source_collection_fetch_by_master_file (MediaSourceCollection* self, GFile* file) {
+ MediaSource* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 589 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 589 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 590 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->by_master_file;
+#line 590 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = file;
+#line 590 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 590 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = (MediaSource*) _tmp2_;
+#line 590 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5632 "MediaDataRepresentation.c"
+}
+
+
+static MediaSource* media_source_collection_real_fetch_by_source_id (MediaSourceCollection* self, const gchar* source_id) {
+ MediaSource* result = NULL;
+ gchar** components = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint components_length1 = 0;
+ gint _components_size_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gint64 _tmp4_ = 0LL;
+ MediaSource* _tmp5_ = NULL;
+#line 593 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (source_id != NULL, NULL);
+#line 594 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = source_id;
+#line 594 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_ = g_strsplit (_tmp0_, "-", 0);
+#line 594 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ components = _tmp2_;
+#line 594 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ components_length1 = _vala_array_length (_tmp1_);
+#line 594 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _components_size_ = components_length1;
+#line 595 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (components_length1 == 2, "components.length == 2");
+#line 597 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = components[1];
+#line 597 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = parse_int64 (_tmp3_, 16);
+#line 597 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = media_source_collection_fetch_by_numeric_id (self, _tmp4_);
+#line 597 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp5_;
+#line 597 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ components = (_vala_array_free (components, components_length1, (GDestroyNotify) g_free), NULL);
+#line 597 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5673 "MediaDataRepresentation.c"
+}
+
+
+MediaSource* media_source_collection_fetch_by_source_id (MediaSourceCollection* self, const gchar* source_id) {
+#line 593 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 593 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->fetch_by_source_id (self, source_id);
+#line 5682 "MediaDataRepresentation.c"
+}
+
+
+static GeeCollection* media_source_collection_real_get_event_source_ids (MediaSourceCollection* self, EventID* event_id) {
+#line 600 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_source_collection_get_event_source_ids'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 600 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 5691 "MediaDataRepresentation.c"
+}
+
+
+GeeCollection* media_source_collection_get_event_source_ids (MediaSourceCollection* self, EventID* event_id) {
+#line 600 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 600 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->get_event_source_ids (self, event_id);
+#line 5700 "MediaDataRepresentation.c"
+}
+
+
+GeeCollection* media_source_collection_get_trashcan_contents (MediaSourceCollection* self) {
+ GeeCollection* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 602 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 603 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_collection_get_trashcan (self);
+#line 603 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 603 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = source_holding_tank_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank));
+#line 603 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 603 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 603 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp3_;
+#line 603 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5726 "MediaDataRepresentation.c"
+}
+
+
+GeeCollection* media_source_collection_get_offline_bin_contents (MediaSourceCollection* self) {
+ GeeCollection* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 606 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 607 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_collection_get_offline_bin (self);
+#line 607 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 607 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = source_holding_tank_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank));
+#line 607 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 607 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 607 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp3_;
+#line 607 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5752 "MediaDataRepresentation.c"
+}
+
+
+GeeCollection* media_source_collection_get_flagged (MediaSourceCollection* self) {
+ GeeCollection* result = NULL;
+ GeeSet* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 610 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 611 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->flagged;
+#line 611 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_set_get_read_only_view (_tmp0_);
+#line 611 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 611 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 611 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5773 "MediaDataRepresentation.c"
+}
+
+
+GeeSortedSet* media_source_collection_get_import_roll_ids (MediaSourceCollection* self) {
+ GeeSortedSet* result = NULL;
+ GeeTreeSet* _tmp0_ = NULL;
+ GeeSortedSet* _tmp1_ = NULL;
+#line 615 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 616 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->sorted_import_ids;
+#line 616 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_SORTED_SET, GeeSortedSet));
+#line 616 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 616 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5791 "MediaDataRepresentation.c"
+}
+
+
+ImportID* media_source_collection_get_last_import_id (MediaSourceCollection* self) {
+ ImportID* result = NULL;
+ ImportID* _tmp0_ = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 619 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = self->priv->sorted_import_ids;
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp3_ != 0) {
+#line 5811 "MediaDataRepresentation.c"
+ GeeTreeSet* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = self->priv->sorted_import_ids;
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_abstract_sorted_set_last (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet));
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _import_id_free0 (_tmp0_);
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = (ImportID*) _tmp5_;
+#line 5822 "MediaDataRepresentation.c"
+ } else {
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _import_id_free0 (_tmp0_);
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = NULL;
+#line 5828 "MediaDataRepresentation.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp0_;
+#line 620 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5834 "MediaDataRepresentation.c"
+}
+
+
+GeeCollection* media_source_collection_get_import_roll (MediaSourceCollection* self, ImportID* import_id) {
+ GeeCollection* result = NULL;
+ GeeMultiMap* _tmp0_ = NULL;
+ ImportID _tmp1_ = {0};
+ GeeCollection* _tmp2_ = NULL;
+#line 623 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 623 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (import_id != NULL, NULL);
+#line 624 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->import_rolls;
+#line 624 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = *import_id;
+#line 624 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_multi_map_get (_tmp0_, &_tmp1_);
+#line 624 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp2_;
+#line 624 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5857 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_add_many_to_trash (MediaSourceCollection* self, GeeCollection* sources) {
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+#line 627 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 627 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 628 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_collection_get_trashcan (self);
+#line 628 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 628 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = sources;
+#line 628 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source_holding_tank_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp2_);
+#line 628 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 5879 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_add_many_to_offline (MediaSourceCollection* self, GeeCollection* sources) {
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+#line 631 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 631 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 632 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_collection_get_offline_bin (self);
+#line 632 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 632 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = sources;
+#line 632 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source_holding_tank_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp2_);
+#line 632 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 5901 "MediaDataRepresentation.c"
+}
+
+
+gint media_source_collection_get_trashcan_count (MediaSourceCollection* self) {
+ gint result = 0;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 635 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), 0);
+#line 636 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_source_collection_get_trashcan (self);
+#line 636 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 636 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = source_holding_tank_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank));
+#line 636 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 636 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 636 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp3_;
+#line 636 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5927 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_import_many (MediaSourceCollection* self, GeeCollection* media) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 643 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media;
+#line 643 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_notify_media_import_starting (self, _tmp0_);
+#line 645 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = media;
+#line 645 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp1_, NULL, NULL);
+#line 645 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 645 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp3_);
+#line 647 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = media;
+#line 647 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_postprocess_imported_media (self, _tmp4_);
+#line 649 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = media;
+#line 649 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_notify_media_import_completed (self, _tmp5_);
+#line 5960 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_import_many (MediaSourceCollection* self, GeeCollection* media) {
+#line 642 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 642 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->import_many (self, media);
+#line 5969 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_postprocess_imported_media (MediaSourceCollection* self, GeeCollection* media) {
+#line 654 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 5976 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_postprocess_imported_media (MediaSourceCollection* self, GeeCollection* media) {
+#line 654 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 654 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->postprocess_imported_media (self, media);
+#line 5985 "MediaDataRepresentation.c"
+}
+
+
+static gboolean _aggregate_progress_monitor_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = aggregate_progress_monitor_monitor ((AggregateProgressMonitor*) self, current, total);
+#line 689 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 5994 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_remove_from_app (MediaSourceCollection* self, GeeCollection* sources, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* to_tombstone = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ GeeArrayList* trashed = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* offlined = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ GeeArrayList* not_trashed = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ gint total_count = 0;
+ GeeCollection* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ GeeArrayList* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ GeeArrayList* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ GeeArrayList* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ AggregateProgressMonitor* agg_monitor = NULL;
+ ProgressMonitor _tmp40_ = NULL;
+ void* _tmp40__target = NULL;
+ GeeArrayList* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ GeeArrayList* _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+ GeeArrayList* _tmp63_ = NULL;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ gboolean _tmp72_ = FALSE;
+ GeeHashSet* _tmp73_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((sources == NULL) || GEE_IS_COLLECTION (sources));
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((not_removed == NULL) || GEE_IS_LIST (not_removed));
+#line 662 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = sources;
+#line 662 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (_tmp0_ != NULL, "sources != null");
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = delete_backing;
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp2_) {
+#line 6053 "MediaDataRepresentation.c"
+ GeeHashSet* _tmp3_ = NULL;
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp3_;
+#line 6061 "MediaDataRepresentation.c"
+ } else {
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = NULL;
+#line 6067 "MediaDataRepresentation.c"
+ }
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _g_object_ref0 (_tmp1_);
+#line 664 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ to_tombstone = _tmp4_;
+#line 667 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 667 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ trashed = _tmp5_;
+#line 668 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 668 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ offlined = _tmp6_;
+#line 669 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 669 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ not_trashed = _tmp7_;
+#line 6085 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = sources;
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_it = _tmp9_;
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 6098 "MediaDataRepresentation.c"
+ GeeIterator* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ GeeHashSet* _tmp24_ = NULL;
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = _source_it;
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = gee_iterator_next (_tmp10_);
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp11_) {
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 6115 "MediaDataRepresentation.c"
+ }
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = _source_it;
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = gee_iterator_get (_tmp12_);
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source = (MediaSource*) _tmp13_;
+#line 671 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = source;
+#line 671 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = media_source_is_trashed (_tmp14_);
+#line 671 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp15_) {
+#line 6129 "MediaDataRepresentation.c"
+ GeeArrayList* _tmp16_ = NULL;
+ MediaSource* _tmp17_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = trashed;
+#line 672 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = source;
+#line 672 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp17_);
+#line 6138 "MediaDataRepresentation.c"
+ } else {
+ MediaSource* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 673 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = source;
+#line 673 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = media_source_is_offline (_tmp18_);
+#line 673 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp19_) {
+#line 6148 "MediaDataRepresentation.c"
+ GeeArrayList* _tmp20_ = NULL;
+ MediaSource* _tmp21_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = offlined;
+#line 674 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = source;
+#line 674 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp21_);
+#line 6157 "MediaDataRepresentation.c"
+ } else {
+ GeeArrayList* _tmp22_ = NULL;
+ MediaSource* _tmp23_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp22_ = not_trashed;
+#line 676 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = source;
+#line 676 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp23_);
+#line 6167 "MediaDataRepresentation.c"
+ }
+ }
+#line 678 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24_ = to_tombstone;
+#line 678 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp24_ != NULL) {
+#line 6174 "MediaDataRepresentation.c"
+ GeeHashSet* _tmp25_ = NULL;
+ MediaSource* _tmp26_ = NULL;
+#line 679 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ = to_tombstone;
+#line 679 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp26_ = source;
+#line 679 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp26_);
+#line 6183 "MediaDataRepresentation.c"
+ }
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 6187 "MediaDataRepresentation.c"
+ }
+#line 670 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 6191 "MediaDataRepresentation.c"
+ }
+#line 682 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp27_ = sources;
+#line 682 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = gee_collection_get_size (_tmp27_);
+#line 682 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp29_ = _tmp28_;
+#line 682 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ total_count = _tmp29_;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp30_ = total_count;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp31_ = trashed;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp32_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp33_ = _tmp32_;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp34_ = offlined;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp35_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp36_ = _tmp35_;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp37_ = not_trashed;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp38_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp39_ = _tmp38_;
+#line 683 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (_tmp30_ == ((_tmp33_ + _tmp36_) + _tmp39_), "total_count == (trashed.size + offlined.size + not_trashed.size)");
+#line 686 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ agg_monitor = NULL;
+#line 687 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp40_ = monitor;
+#line 687 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp40__target = monitor_target;
+#line 687 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp40_ != NULL) {
+#line 6231 "MediaDataRepresentation.c"
+ gint _tmp41_ = 0;
+ ProgressMonitor _tmp42_ = NULL;
+ void* _tmp42__target = NULL;
+ AggregateProgressMonitor* _tmp43_ = NULL;
+ AggregateProgressMonitor* _tmp44_ = NULL;
+#line 688 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp41_ = total_count;
+#line 688 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp42_ = monitor;
+#line 688 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp42__target = monitor_target;
+#line 688 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp43_ = aggregate_progress_monitor_new ((guint64) _tmp41_, _tmp42_, _tmp42__target);
+#line 688 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _aggregate_progress_monitor_unref0 (agg_monitor);
+#line 688 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ agg_monitor = _tmp43_;
+#line 689 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp44_ = agg_monitor;
+#line 689 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ monitor = _aggregate_progress_monitor_monitor_progress_monitor;
+#line 689 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ monitor_target = _tmp44_;
+#line 6255 "MediaDataRepresentation.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp45_ = trashed;
+#line 692 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp46_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 692 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp47_ = _tmp46_;
+#line 692 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp47_ > 0) {
+#line 6265 "MediaDataRepresentation.c"
+ MediaSourceHoldingTank* _tmp48_ = NULL;
+ MediaSourceHoldingTank* _tmp49_ = NULL;
+ GeeArrayList* _tmp50_ = NULL;
+ gboolean _tmp51_ = FALSE;
+ ProgressMonitor _tmp52_ = NULL;
+ void* _tmp52__target = NULL;
+ GeeList* _tmp53_ = NULL;
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp48_ = media_source_collection_get_trashcan (self);
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp49_ = _tmp48_;
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp50_ = trashed;
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp51_ = delete_backing;
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp52_ = monitor;
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp52__target = monitor_target;
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp53_ = not_removed;
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source_holding_tank_destroy_orphans (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_LIST, GeeList), _tmp51_, _tmp52_, _tmp52__target, _tmp53_);
+#line 693 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp49_);
+#line 6291 "MediaDataRepresentation.c"
+ }
+#line 695 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp54_ = offlined;
+#line 695 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp55_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 695 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp56_ = _tmp55_;
+#line 695 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp56_ > 0) {
+#line 6301 "MediaDataRepresentation.c"
+ MediaSourceHoldingTank* _tmp57_ = NULL;
+ MediaSourceHoldingTank* _tmp58_ = NULL;
+ GeeArrayList* _tmp59_ = NULL;
+ gboolean _tmp60_ = FALSE;
+ ProgressMonitor _tmp61_ = NULL;
+ void* _tmp61__target = NULL;
+ GeeList* _tmp62_ = NULL;
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp57_ = media_source_collection_get_offline_bin (self);
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp58_ = _tmp57_;
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp59_ = offlined;
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp60_ = delete_backing;
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp61_ = monitor;
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp61__target = monitor_target;
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp62_ = not_removed;
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source_holding_tank_destroy_orphans (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_LIST, GeeList), _tmp60_, _tmp61_, _tmp61__target, _tmp62_);
+#line 696 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (_tmp58_);
+#line 6327 "MediaDataRepresentation.c"
+ }
+#line 699 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp63_ = not_trashed;
+#line 699 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp64_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 699 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp65_ = _tmp64_;
+#line 699 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp65_ > 0) {
+#line 6337 "MediaDataRepresentation.c"
+ GeeArrayList* _tmp66_ = NULL;
+ Marker* _tmp67_ = NULL;
+ Marker* _tmp68_ = NULL;
+ gboolean _tmp69_ = FALSE;
+ ProgressMonitor _tmp70_ = NULL;
+ void* _tmp70__target = NULL;
+ GeeList* _tmp71_ = NULL;
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp66_ = not_trashed;
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp67_ = data_collection_mark_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp68_ = _tmp67_;
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp69_ = delete_backing;
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp70_ = monitor;
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp70__target = monitor_target;
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp71_ = not_removed;
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp68_, _tmp69_, _tmp70_, _tmp70__target, _tmp71_);
+#line 700 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp68_);
+#line 6363 "MediaDataRepresentation.c"
+ }
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp73_ = to_tombstone;
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp73_ != NULL) {
+#line 6369 "MediaDataRepresentation.c"
+ GeeHashSet* _tmp74_ = NULL;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp74_ = to_tombstone;
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp75_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp76_ = _tmp75_;
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp72_ = _tmp76_ > 0;
+#line 6381 "MediaDataRepresentation.c"
+ } else {
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp72_ = FALSE;
+#line 6385 "MediaDataRepresentation.c"
+ }
+#line 702 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp72_) {
+#line 6389 "MediaDataRepresentation.c"
+ {
+ GeeHashSet* _tmp77_ = NULL;
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp77_ = to_tombstone;
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ tombstone_entomb_many_sources (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, GEE_TYPE_COLLECTION, GeeCollection), TOMBSTONE_REASON_REMOVED_BY_USER, &_inner_error_);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6400 "MediaDataRepresentation.c"
+ goto __catch552_database_error;
+ }
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _aggregate_progress_monitor_unref0 (agg_monitor);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (not_trashed);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (offlined);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (trashed);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (to_tombstone);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_clear_error (&_inner_error_);
+#line 704 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 6421 "MediaDataRepresentation.c"
+ }
+ }
+ goto __finally552;
+ __catch552_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp78_ = NULL;
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ err = _inner_error_;
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _inner_error_ = NULL;
+#line 706 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp78_ = err;
+#line 706 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ app_window_database_error (_tmp78_);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_error_free0 (err);
+#line 6439 "MediaDataRepresentation.c"
+ }
+ __finally552:
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _aggregate_progress_monitor_unref0 (agg_monitor);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (not_trashed);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (offlined);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (trashed);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (to_tombstone);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_clear_error (&_inner_error_);
+#line 703 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 6462 "MediaDataRepresentation.c"
+ }
+ }
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _aggregate_progress_monitor_unref0 (agg_monitor);
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (not_trashed);
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (offlined);
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (trashed);
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (to_tombstone);
+#line 660 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 6477 "MediaDataRepresentation.c"
+}
+
+
+void media_source_collection_delete_backing_files (MediaSourceCollection* self, GeeCollection* sources, ProgressMonitor monitor, void* monitor_target, GeeList* not_deleted) {
+ gint total_count = 0;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint i = 0;
+ GError * _inner_error_ = NULL;
+#line 713 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (self));
+#line 713 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 713 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((not_deleted == NULL) || GEE_IS_LIST (not_deleted));
+#line 715 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = sources;
+#line 715 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 715 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 715 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ total_count = _tmp2_;
+#line 716 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ i = 1;
+#line 6504 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = sources;
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_it = _tmp4_;
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 6517 "MediaDataRepresentation.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ GFile* file = NULL;
+ MediaSource* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gboolean deleted = FALSE;
+ GFile* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ ProgressMonitor _tmp24_ = NULL;
+ void* _tmp24__target = NULL;
+ gint _tmp28_ = 0;
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _source_it;
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp6_) {
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 6542 "MediaDataRepresentation.c"
+ }
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = _source_it;
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ source = (MediaSource*) _tmp8_;
+#line 719 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = source;
+#line 719 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = media_source_get_file (_tmp9_);
+#line 719 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ file = _tmp10_;
+#line 6556 "MediaDataRepresentation.c"
+ {
+ GFile* _tmp11_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = file;
+#line 721 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_file_delete (_tmp11_, NULL, &_inner_error_);
+#line 721 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6565 "MediaDataRepresentation.c"
+ goto __catch553_g_error;
+ }
+ }
+ goto __finally553;
+ __catch553_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ err = _inner_error_;
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _inner_error_ = NULL;
+#line 724 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = file;
+#line 724 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = g_file_get_path (_tmp12_);
+#line 724 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = _tmp13_;
+#line 724 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = err;
+#line 724 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = _tmp15_->message;
+#line 724 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_debug ("MediaDataRepresentation.vala:724: Exception deleting file %s: %s", _tmp14_, _tmp16_);
+#line 724 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp14_);
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_error_free0 (err);
+#line 6598 "MediaDataRepresentation.c"
+ }
+ __finally553:
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (file);
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_clear_error (&_inner_error_);
+#line 720 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 6615 "MediaDataRepresentation.c"
+ }
+#line 727 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = file;
+#line 727 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = g_file_query_exists (_tmp17_, NULL);
+#line 727 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ deleted = !_tmp18_;
+#line 728 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp20_ = deleted;
+#line 728 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp20_) {
+#line 6627 "MediaDataRepresentation.c"
+ GeeList* _tmp21_ = NULL;
+#line 728 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp21_ = not_deleted;
+#line 728 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = NULL != _tmp21_;
+#line 6633 "MediaDataRepresentation.c"
+ } else {
+#line 728 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp19_ = FALSE;
+#line 6637 "MediaDataRepresentation.c"
+ }
+#line 728 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp19_) {
+#line 6641 "MediaDataRepresentation.c"
+ GeeList* _tmp22_ = NULL;
+ MediaSource* _tmp23_ = NULL;
+#line 729 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp22_ = not_deleted;
+#line 729 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp23_ = source;
+#line 729 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), _tmp23_);
+#line 6650 "MediaDataRepresentation.c"
+ }
+#line 732 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24_ = monitor;
+#line 732 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp24__target = monitor_target;
+#line 732 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp24_ != NULL) {
+#line 6658 "MediaDataRepresentation.c"
+ ProgressMonitor _tmp25_ = NULL;
+ void* _tmp25__target = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 733 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ = monitor;
+#line 733 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25__target = monitor_target;
+#line 733 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp26_ = i;
+#line 733 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp27_ = total_count;
+#line 733 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp25_ ((guint64) _tmp26_, (guint64) _tmp27_, TRUE, _tmp25__target);
+#line 6673 "MediaDataRepresentation.c"
+ }
+#line 735 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp28_ = i;
+#line 735 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ i = _tmp28_ + 1;
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (file);
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (source);
+#line 6683 "MediaDataRepresentation.c"
+ }
+#line 718 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_source_it);
+#line 6687 "MediaDataRepresentation.c"
+ }
+}
+
+
+TransactionController* media_source_collection_get_transaction_controller (MediaSourceCollection* self) {
+#line 342 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (self), NULL);
+#line 342 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return MEDIA_SOURCE_COLLECTION_GET_CLASS (self)->get_transaction_controller (self);
+#line 6697 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_media_import_starting (MediaSourceCollection* self, GeeCollection* media) {
+#line 355 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 6704 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_media_import_completed (MediaSourceCollection* self, GeeCollection* media) {
+#line 362 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media));
+#line 6711 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_master_file_replaced (MediaSourceCollection* self, MediaSource* media, GFile* old_file, GFile* new_file) {
+#line 365 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (media));
+#line 365 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 365 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 6722 "MediaDataRepresentation.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (n_param_values == 4);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data1 = closure->data;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 6741 "MediaDataRepresentation.c"
+ } else {
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data2 = closure->data;
+#line 6747 "MediaDataRepresentation.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_object (param_values + 3), data2);
+#line 6753 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_trashcan_contents_altered (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed) {
+#line 368 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 368 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 6762 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_import_roll_altered (MediaSourceCollection* self) {
+}
+
+
+static void media_source_collection_real_offline_contents_altered (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed) {
+#line 375 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 375 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 6775 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_real_flagged_contents_altered (MediaSourceCollection* self) {
+}
+
+
+static void media_source_collection_class_init (MediaSourceCollectionClass * klass) {
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((DataCollectionClass *) klass)->finalize = media_source_collection_finalize;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_type_class_add_private (klass, sizeof (MediaSourceCollectionPrivate));
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->create_trashcan = media_source_collection_real_create_trashcan;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->create_offline_bin = media_source_collection_real_create_offline_bin;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->create_media_monitor = media_source_collection_real_create_media_monitor;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->get_typename = media_source_collection_real_get_typename;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->is_file_recognized = media_source_collection_real_is_file_recognized;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->fetch_by_numeric_id = media_source_collection_real_fetch_by_numeric_id;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->notify_import_roll_altered = media_source_collection_real_notify_import_roll_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->notify_flagged_contents_altered = media_source_collection_real_notify_flagged_contents_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->notify_media_import_starting = media_source_collection_real_notify_media_import_starting;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->notify_media_import_completed = media_source_collection_real_notify_media_import_completed;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((DataCollectionClass *) klass)->items_altered = media_source_collection_real_items_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((DataCollectionClass *) klass)->notify_contents_altered = media_source_collection_real_notify_contents_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->fetch_by_source_id = media_source_collection_real_fetch_by_source_id;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->get_event_source_ids = media_source_collection_real_get_event_source_ids;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->import_many = media_source_collection_real_import_many;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->postprocess_imported_media = media_source_collection_real_postprocess_imported_media;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->media_import_starting = media_source_collection_real_media_import_starting;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->media_import_completed = media_source_collection_real_media_import_completed;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->master_file_replaced = media_source_collection_real_master_file_replaced;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->trashcan_contents_altered = media_source_collection_real_trashcan_contents_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->import_roll_altered = media_source_collection_real_import_roll_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->offline_contents_altered = media_source_collection_real_offline_contents_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaSourceCollectionClass *) klass)->flagged_contents_altered = media_source_collection_real_flagged_contents_altered;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("media_import_starting", TYPE_MEDIA_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceCollectionClass, media_import_starting), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("media_import_completed", TYPE_MEDIA_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceCollectionClass, media_import_completed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("master_file_replaced", TYPE_MEDIA_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceCollectionClass, master_file_replaced), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT, G_TYPE_NONE, 3, TYPE_MEDIA_SOURCE, G_TYPE_FILE, G_TYPE_FILE);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("trashcan_contents_altered", TYPE_MEDIA_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceCollectionClass, trashcan_contents_altered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GEE_TYPE_COLLECTION, GEE_TYPE_COLLECTION);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("import_roll_altered", TYPE_MEDIA_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceCollectionClass, import_roll_altered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("offline_contents_altered", TYPE_MEDIA_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceCollectionClass, offline_contents_altered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GEE_TYPE_COLLECTION, GEE_TYPE_COLLECTION);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_new ("flagged_contents_altered", TYPE_MEDIA_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (MediaSourceCollectionClass, flagged_contents_altered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 6850 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_instance_init (MediaSourceCollection * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeTreeMultiMap* _tmp1_ = NULL;
+ GeeTreeSet* _tmp2_ = NULL;
+ GeeHashSet* _tmp3_ = NULL;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv = MEDIA_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 344 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->trashcan = NULL;
+#line 345 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->offline_bin = NULL;
+#line 346 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 346 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->by_master_file = _tmp0_;
+#line 348 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_tree_multi_map_new (TYPE_IMPORT_ID, (GBoxedCopyFunc) import_id_dup, import_id_free, TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _import_id_compare_func_gcompare_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 348 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->import_rolls = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 350 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_tree_set_new (TYPE_IMPORT_ID, (GBoxedCopyFunc) import_id_dup, import_id_free, _import_id_compare_func_gcompare_data_func, NULL, NULL);
+#line 350 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->sorted_import_ids = _tmp2_;
+#line 351 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 351 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->flagged = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_SET, GeeSet);
+#line 6881 "MediaDataRepresentation.c"
+}
+
+
+static void media_source_collection_finalize (DataCollection* obj) {
+ MediaSourceCollection * self;
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection);
+#line 344 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (self->priv->trashcan);
+#line 345 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _source_holding_tank_unref0 (self->priv->offline_bin);
+#line 346 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->by_master_file);
+#line 348 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->import_rolls);
+#line 350 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->sorted_import_ids);
+#line 351 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->flagged);
+#line 341 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ DATA_COLLECTION_CLASS (media_source_collection_parent_class)->finalize (obj);
+#line 6903 "MediaDataRepresentation.c"
+}
+
+
+GType media_source_collection_get_type (void) {
+ static volatile gsize media_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&media_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaSourceCollection), 0, (GInstanceInitFunc) media_source_collection_instance_init, NULL };
+ GType media_source_collection_type_id;
+ media_source_collection_type_id = g_type_register_static (TYPE_DATABASE_SOURCE_COLLECTION, "MediaSourceCollection", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&media_source_collection_type_id__volatile, media_source_collection_type_id);
+ }
+ return media_source_collection_type_id__volatile;
+}
+
+
+static void _media_collection_registry_on_init_done_application_init_done (Application* _sender, gpointer self) {
+#line 754 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_on_init_done ((MediaCollectionRegistry*) self);
+#line 6922 "MediaDataRepresentation.c"
+}
+
+
+static MediaCollectionRegistry* media_collection_registry_construct (GType object_type) {
+ MediaCollectionRegistry* self = NULL;
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+#line 749 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = (MediaCollectionRegistry*) g_type_create_instance (object_type);
+#line 750 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = application_get_instance ();
+#line 750 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 750 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_connect (_tmp1_, "init-done", (GCallback) _media_collection_registry_on_init_done_application_init_done, self);
+#line 750 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _application_unref0 (_tmp1_);
+#line 749 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self;
+#line 6942 "MediaDataRepresentation.c"
+}
+
+
+static MediaCollectionRegistry* media_collection_registry_new (void) {
+#line 749 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return media_collection_registry_construct (TYPE_MEDIA_COLLECTION_REGISTRY);
+#line 6949 "MediaDataRepresentation.c"
+}
+
+
+static void media_collection_registry_on_init_done (MediaCollectionRegistry* self) {
+ LibraryMonitor* library_monitor = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ LibraryMonitor* _tmp3_ = NULL;
+ LibraryMonitor* _tmp4_ = NULL;
+ LibraryMonitorPool* _tmp5_ = NULL;
+ LibraryMonitorPool* _tmp6_ = NULL;
+#line 757 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self));
+#line 759 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = app_dirs_get_import_dir ();
+#line 759 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 759 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = commandline_options_no_runtime_monitoring;
+#line 759 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = library_monitor_new (_tmp1_, TRUE, !_tmp2_);
+#line 759 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _tmp3_;
+#line 759 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 759 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ library_monitor = _tmp4_;
+#line 762 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = library_monitor_pool_get_instance ();
+#line 762 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _tmp5_;
+#line 762 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ library_monitor_pool_replace (_tmp6_, library_monitor, MEDIA_COLLECTION_REGISTRY_LIBRARY_MONITOR_START_DELAY_MSEC);
+#line 762 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _library_monitor_pool_unref0 (_tmp6_);
+#line 757 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (library_monitor);
+#line 6988 "MediaDataRepresentation.c"
+}
+
+
+static void _media_collection_registry_on_import_directory_changed_configuration_facade_import_directory_changed (ConfigurationFacade* _sender, gpointer self) {
+#line 767 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_on_import_directory_changed ();
+#line 6995 "MediaDataRepresentation.c"
+}
+
+
+void media_collection_registry_init (void) {
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+#line 766 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_new ();
+#line 766 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _media_collection_registry_unref0 (media_collection_registry_instance);
+#line 766 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_instance = _tmp0_;
+#line 767 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = config_facade_get_instance ();
+#line 767 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 767 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), "import-directory-changed", (GCallback) _media_collection_registry_on_import_directory_changed_configuration_facade_import_directory_changed, NULL);
+#line 767 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp2_);
+#line 7017 "MediaDataRepresentation.c"
+}
+
+
+void media_collection_registry_terminate (void) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 771 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 771 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 771 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_parse_name ("import-directory-changed", TYPE_CONFIGURATION_FACADE, &_tmp2_, NULL, FALSE);
+#line 771 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _media_collection_registry_on_import_directory_changed_configuration_facade_import_directory_changed, NULL);
+#line 771 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 7035 "MediaDataRepresentation.c"
+}
+
+
+static void media_collection_registry_on_import_directory_changed (void) {
+ GFile* import_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryMonitor* current = NULL;
+ LibraryMonitorPool* _tmp1_ = NULL;
+ LibraryMonitorPool* _tmp2_ = NULL;
+ LibraryMonitor* _tmp3_ = NULL;
+ LibraryMonitor* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ LibraryMonitor* _tmp6_ = NULL;
+ LibraryMonitor* replacement = NULL;
+ GFile* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ LibraryMonitor* _tmp14_ = NULL;
+ LibraryMonitorPool* _tmp15_ = NULL;
+ LibraryMonitorPool* _tmp16_ = NULL;
+ LibraryMonitor* _tmp17_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = app_dirs_get_import_dir ();
+#line 775 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ import_dir = _tmp0_;
+#line 777 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = library_monitor_pool_get_instance ();
+#line 777 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 777 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = library_monitor_pool_get_monitor (_tmp2_);
+#line 777 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _tmp3_;
+#line 777 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _library_monitor_pool_unref0 (_tmp2_);
+#line 777 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ current = _tmp4_;
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = current;
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp6_ != NULL) {
+#line 7076 "MediaDataRepresentation.c"
+ LibraryMonitor* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = current;
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = directory_monitor_get_root (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = _tmp8_;
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = import_dir;
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = g_file_equal (_tmp9_, _tmp10_);
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _tmp11_;
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp9_);
+#line 7096 "MediaDataRepresentation.c"
+ } else {
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = FALSE;
+#line 7100 "MediaDataRepresentation.c"
+ }
+#line 778 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp5_) {
+#line 779 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (current);
+#line 779 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (import_dir);
+#line 779 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return;
+#line 7110 "MediaDataRepresentation.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = import_dir;
+#line 781 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = commandline_options_no_runtime_monitoring;
+#line 781 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = library_monitor_new (_tmp12_, TRUE, !_tmp13_);
+#line 781 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ replacement = _tmp14_;
+#line 783 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = library_monitor_pool_get_instance ();
+#line 783 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = _tmp15_;
+#line 783 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = replacement;
+#line 783 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ library_monitor_pool_replace (_tmp16_, _tmp17_, MEDIA_COLLECTION_REGISTRY_LIBRARY_MONITOR_START_DELAY_MSEC);
+#line 783 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _library_monitor_pool_unref0 (_tmp16_);
+#line 774 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (replacement);
+#line 774 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (current);
+#line 774 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (import_dir);
+#line 7136 "MediaDataRepresentation.c"
+}
+
+
+static gpointer _media_collection_registry_ref0 (gpointer self) {
+#line 787 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self ? media_collection_registry_ref (self) : NULL;
+#line 7143 "MediaDataRepresentation.c"
+}
+
+
+MediaCollectionRegistry* media_collection_registry_get_instance (void) {
+ MediaCollectionRegistry* result = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+#line 787 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_instance;
+#line 787 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _media_collection_registry_ref0 (_tmp0_);
+#line 787 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp1_;
+#line 787 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7159 "MediaDataRepresentation.c"
+}
+
+
+gchar* media_collection_registry_get_typename_from_source_id (const gchar* source_id) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 790 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (source_id != NULL, NULL);
+#line 793 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = source_id;
+#line 793 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = g_str_has_prefix (_tmp0_, PHOTO_TYPENAME);
+#line 793 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp1_) {
+#line 7175 "MediaDataRepresentation.c"
+ gchar* _tmp2_ = NULL;
+#line 794 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = g_strdup (PHOTO_TYPENAME);
+#line 794 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp2_;
+#line 794 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7183 "MediaDataRepresentation.c"
+ } else {
+ gchar** components = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint components_length1 = 0;
+ gint _components_size_ = 0;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 796 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = source_id;
+#line 796 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, "-", 0);
+#line 796 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ components = _tmp5_;
+#line 796 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ components_length1 = _vala_array_length (_tmp4_);
+#line 796 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _components_size_ = components_length1;
+#line 797 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = components;
+#line 797 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6__length1 = components_length1;
+#line 797 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _vala_assert (_tmp6__length1 == 2, "components.length == 2");
+#line 799 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = components;
+#line 799 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7__length1 = components_length1;
+#line 799 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = _tmp7_[0];
+#line 799 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 799 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp9_;
+#line 799 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ components = (_vala_array_free (components, components_length1, (GDestroyNotify) g_free), NULL);
+#line 799 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7227 "MediaDataRepresentation.c"
+ }
+}
+
+
+void media_collection_registry_register_collection (MediaCollectionRegistry* self, MediaSourceCollection* collection) {
+ GeeArrayList* _tmp0_ = NULL;
+ MediaSourceCollection* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ MediaSourceCollection* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ MediaSourceCollection* _tmp6_ = NULL;
+#line 803 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self));
+#line 803 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_COLLECTION (collection));
+#line 804 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->all;
+#line 804 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = collection;
+#line 804 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 805 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = self->priv->by_typename;
+#line 805 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = collection;
+#line 805 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = media_source_collection_get_typename (_tmp3_);
+#line 805 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _tmp4_;
+#line 805 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = collection;
+#line 805 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_, _tmp6_);
+#line 805 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (_tmp5_);
+#line 7264 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceCollection* media_collection_registry_get_collection (MediaCollectionRegistry* self, const gchar* typename) {
+ MediaSourceCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 812 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self), NULL);
+#line 812 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (typename != NULL, NULL);
+#line 813 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->by_typename;
+#line 813 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = typename;
+#line 813 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 813 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = (MediaSourceCollection*) _tmp2_;
+#line 813 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7287 "MediaDataRepresentation.c"
+}
+
+
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self) {
+ GeeCollection* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeBidirList* _tmp1_ = NULL;
+ GeeBidirList* _tmp2_ = NULL;
+#line 816 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self), NULL);
+#line 817 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = self->priv->all;
+#line 817 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_abstract_bidir_list_get_read_only_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList));
+#line 817 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 817 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 817 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7308 "MediaDataRepresentation.c"
+}
+
+
+void media_collection_registry_freeze_all (MediaCollectionRegistry* self) {
+#line 820 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self));
+#line 7315 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_get_all (self);
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _sources_it = _tmp3_;
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 7336 "MediaDataRepresentation.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _sources_it;
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp5_) {
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 7351 "MediaDataRepresentation.c"
+ }
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _sources_it;
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ sources = (MediaSourceCollection*) _tmp7_;
+#line 822 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = sources;
+#line 822 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection));
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (sources);
+#line 7365 "MediaDataRepresentation.c"
+ }
+#line 821 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_sources_it);
+#line 7369 "MediaDataRepresentation.c"
+ }
+}
+
+
+void media_collection_registry_thaw_all (MediaCollectionRegistry* self) {
+#line 825 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self));
+#line 7377 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_get_all (self);
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _sources_it = _tmp3_;
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 7398 "MediaDataRepresentation.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _sources_it;
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp5_) {
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 7413 "MediaDataRepresentation.c"
+ }
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _sources_it;
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ sources = (MediaSourceCollection*) _tmp7_;
+#line 827 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = sources;
+#line 827 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection));
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (sources);
+#line 7427 "MediaDataRepresentation.c"
+ }
+#line 826 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_sources_it);
+#line 7431 "MediaDataRepresentation.c"
+ }
+}
+
+
+void media_collection_registry_begin_transaction_on_all (MediaCollectionRegistry* self) {
+#line 830 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self));
+#line 7439 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_get_all (self);
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _sources_it = _tmp3_;
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 7460 "MediaDataRepresentation.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+ TransactionController* _tmp9_ = NULL;
+ TransactionController* _tmp10_ = NULL;
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _sources_it;
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp5_) {
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 7477 "MediaDataRepresentation.c"
+ }
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _sources_it;
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ sources = (MediaSourceCollection*) _tmp7_;
+#line 832 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = sources;
+#line 832 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = media_source_collection_get_transaction_controller (_tmp8_);
+#line 832 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = _tmp9_;
+#line 832 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ transaction_controller_begin (_tmp10_);
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (sources);
+#line 7495 "MediaDataRepresentation.c"
+ }
+#line 831 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_sources_it);
+#line 7499 "MediaDataRepresentation.c"
+ }
+}
+
+
+void media_collection_registry_commit_transaction_on_all (MediaCollectionRegistry* self) {
+#line 835 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self));
+#line 7507 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_get_all (self);
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _sources_it = _tmp3_;
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 7528 "MediaDataRepresentation.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+ TransactionController* _tmp9_ = NULL;
+ TransactionController* _tmp10_ = NULL;
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _sources_it;
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp5_) {
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 7545 "MediaDataRepresentation.c"
+ }
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _sources_it;
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ sources = (MediaSourceCollection*) _tmp7_;
+#line 837 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = sources;
+#line 837 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = media_source_collection_get_transaction_controller (_tmp8_);
+#line 837 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = _tmp9_;
+#line 837 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ transaction_controller_commit (_tmp10_);
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (sources);
+#line 7563 "MediaDataRepresentation.c"
+ }
+#line 836 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_sources_it);
+#line 7567 "MediaDataRepresentation.c"
+ }
+}
+
+
+MediaSource* media_collection_registry_fetch_media (MediaCollectionRegistry* self, const gchar* source_id) {
+ MediaSource* result = NULL;
+ gchar* typename = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ MediaSourceCollection* collection = NULL;
+ const gchar* _tmp2_ = NULL;
+ MediaSourceCollection* _tmp3_ = NULL;
+ MediaSourceCollection* _tmp4_ = NULL;
+ MediaSourceCollection* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+#line 840 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self), NULL);
+#line 840 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (source_id != NULL, NULL);
+#line 841 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = source_id;
+#line 841 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = media_collection_registry_get_typename_from_source_id (_tmp0_);
+#line 841 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ typename = _tmp1_;
+#line 843 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = typename;
+#line 843 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = media_collection_registry_get_collection (self, _tmp2_);
+#line 843 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ collection = _tmp3_;
+#line 844 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = collection;
+#line 844 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp4_ == NULL) {
+#line 7604 "MediaDataRepresentation.c"
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = source_id;
+#line 845 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = typename;
+#line 845 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_critical ("MediaDataRepresentation.vala:845: source id '%s' has unrecognized medi" \
+"a type '%s'", _tmp5_, _tmp6_);
+#line 846 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = NULL;
+#line 846 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (collection);
+#line 846 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (typename);
+#line 846 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7621 "MediaDataRepresentation.c"
+ }
+#line 849 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = collection;
+#line 849 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = source_id;
+#line 849 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = media_source_collection_fetch_by_source_id (_tmp7_, _tmp8_);
+#line 849 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp9_;
+#line 849 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (collection);
+#line 849 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_free0 (typename);
+#line 849 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7637 "MediaDataRepresentation.c"
+}
+
+
+static gpointer _import_id_dup0 (gpointer self) {
+#line 870 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return self ? import_id_dup (self) : NULL;
+#line 7644 "MediaDataRepresentation.c"
+}
+
+
+ImportID* media_collection_registry_get_last_import_id (MediaCollectionRegistry* self) {
+ ImportID* result = NULL;
+ ImportID last_import_id = {0};
+ ImportID _tmp16_ = {0};
+ gint64 _tmp17_ = 0LL;
+#line 852 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self), NULL);
+#line 853 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ import_id_init (&last_import_id, IMPORT_ID_INVALID);
+#line 7657 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _current_collection_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_get_all (self);
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _current_collection_it = _tmp3_;
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 7678 "MediaDataRepresentation.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSourceCollection* current_collection = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ ImportID* current_import_id = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+ ImportID* _tmp9_ = NULL;
+ ImportID* _tmp10_ = NULL;
+ ImportID* _tmp11_ = NULL;
+ gint64 _tmp12_ = 0LL;
+ ImportID _tmp13_ = {0};
+ gint64 _tmp14_ = 0LL;
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _current_collection_it;
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp5_) {
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 7700 "MediaDataRepresentation.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _current_collection_it;
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ current_collection = (MediaSourceCollection*) _tmp7_;
+#line 856 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = current_collection;
+#line 856 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = media_source_collection_get_last_import_id (_tmp8_);
+#line 856 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ current_import_id = _tmp9_;
+#line 858 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = current_import_id;
+#line 858 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp10_ == NULL) {
+#line 859 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _import_id_free0 (current_import_id);
+#line 859 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (current_collection);
+#line 859 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ continue;
+#line 7724 "MediaDataRepresentation.c"
+ }
+#line 861 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = current_import_id;
+#line 861 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = (*_tmp11_).id;
+#line 861 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = last_import_id;
+#line 861 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp14_ = _tmp13_.id;
+#line 861 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp12_ > _tmp14_) {
+#line 7736 "MediaDataRepresentation.c"
+ ImportID* _tmp15_ = NULL;
+#line 862 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp15_ = current_import_id;
+#line 862 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ last_import_id = *_tmp15_;
+#line 7742 "MediaDataRepresentation.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _import_id_free0 (current_import_id);
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (current_collection);
+#line 7748 "MediaDataRepresentation.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_current_collection_it);
+#line 7752 "MediaDataRepresentation.c"
+ }
+#line 867 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp16_ = last_import_id;
+#line 867 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp17_ = _tmp16_.id;
+#line 867 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp17_ == IMPORT_ID_INVALID) {
+#line 868 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = NULL;
+#line 868 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7764 "MediaDataRepresentation.c"
+ } else {
+ ImportID* _tmp18_ = NULL;
+#line 870 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp18_ = _import_id_dup0 (&last_import_id);
+#line 870 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp18_;
+#line 870 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7773 "MediaDataRepresentation.c"
+ }
+}
+
+
+GeeCollection* media_collection_registry_get_source_ids_for_event_id (MediaCollectionRegistry* self, EventID* event_id) {
+ GeeCollection* result = NULL;
+ GeeArrayList* _result_ = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+#line 873 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self), NULL);
+#line 873 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 874 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 874 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _result_ = _tmp0_;
+#line 7790 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _current_collection_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = media_collection_registry_get_all (self);
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp1_;
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _tmp3_;
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp2_);
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _current_collection_it = _tmp4_;
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 7811 "MediaDataRepresentation.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ MediaSourceCollection* current_collection = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ EventID _tmp11_ = {0};
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = _current_collection_it;
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp6_) {
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 7830 "MediaDataRepresentation.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = _current_collection_it;
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ current_collection = (MediaSourceCollection*) _tmp8_;
+#line 877 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = _result_;
+#line 877 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = current_collection;
+#line 877 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp11_ = *event_id;
+#line 877 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp12_ = media_source_collection_get_event_source_ids (_tmp10_, &_tmp11_);
+#line 877 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp13_ = _tmp12_;
+#line 877 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ gee_array_list_add_all (_tmp9_, _tmp13_);
+#line 877 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp13_);
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (current_collection);
+#line 7854 "MediaDataRepresentation.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_current_collection_it);
+#line 7858 "MediaDataRepresentation.c"
+ }
+#line 880 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_result_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 880 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7864 "MediaDataRepresentation.c"
+}
+
+
+MediaSourceCollection* media_collection_registry_get_collection_for_file (MediaCollectionRegistry* self, GFile* file) {
+ MediaSourceCollection* result = NULL;
+#line 883 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self), NULL);
+#line 883 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 7874 "MediaDataRepresentation.c"
+ {
+ GeeIterator* _collection_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = media_collection_registry_get_all (self);
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = _tmp2_;
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_tmp1_);
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _collection_it = _tmp3_;
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ while (TRUE) {
+#line 7895 "MediaDataRepresentation.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MediaSourceCollection* collection = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ MediaSourceCollection* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = _collection_it;
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!_tmp5_) {
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ break;
+#line 7912 "MediaDataRepresentation.c"
+ }
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = _collection_it;
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ collection = (MediaSourceCollection*) _tmp7_;
+#line 885 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp8_ = collection;
+#line 885 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp9_ = file;
+#line 885 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp10_ = media_source_collection_is_file_recognized (_tmp8_, _tmp9_);
+#line 885 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp10_) {
+#line 886 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = collection;
+#line 886 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_collection_it);
+#line 886 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7934 "MediaDataRepresentation.c"
+ }
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _data_collection_unref0 (collection);
+#line 7938 "MediaDataRepresentation.c"
+ }
+#line 884 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (_collection_it);
+#line 7942 "MediaDataRepresentation.c"
+ }
+#line 889 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = NULL;
+#line 889 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7948 "MediaDataRepresentation.c"
+}
+
+
+gboolean media_collection_registry_is_valid_source_id (MediaCollectionRegistry* self, const gchar* source_id) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 892 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (IS_MEDIA_COLLECTION_REGISTRY (self), FALSE);
+#line 893 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = source_id;
+#line 893 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 893 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp1_) {
+#line 894 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = FALSE;
+#line 894 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7971 "MediaDataRepresentation.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp3_ = source_id;
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp4_ = g_str_has_prefix (_tmp3_, PHOTO_TYPENAME);
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (_tmp4_) {
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = TRUE;
+#line 7981 "MediaDataRepresentation.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp5_ = source_id;
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp6_ = g_str_has_prefix (_tmp5_, VIDEO_TYPENAME "-");
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp2_ = _tmp6_;
+#line 7991 "MediaDataRepresentation.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ result = _tmp2_;
+#line 896 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return result;
+#line 7997 "MediaDataRepresentation.c"
+}
+
+
+static void value_media_collection_registry_init (GValue* value) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 8004 "MediaDataRepresentation.c"
+}
+
+
+static void value_media_collection_registry_free_value (GValue* value) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (value->data[0].v_pointer) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_unref (value->data[0].v_pointer);
+#line 8013 "MediaDataRepresentation.c"
+ }
+}
+
+
+static void value_media_collection_registry_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (src_value->data[0].v_pointer) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ dest_value->data[0].v_pointer = media_collection_registry_ref (src_value->data[0].v_pointer);
+#line 8023 "MediaDataRepresentation.c"
+ } else {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 8027 "MediaDataRepresentation.c"
+ }
+}
+
+
+static gpointer value_media_collection_registry_peek_pointer (const GValue* value) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return value->data[0].v_pointer;
+#line 8035 "MediaDataRepresentation.c"
+}
+
+
+static gchar* value_media_collection_registry_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (collect_values[0].v_pointer) {
+#line 8042 "MediaDataRepresentation.c"
+ MediaCollectionRegistry* object;
+ object = collect_values[0].v_pointer;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8049 "MediaDataRepresentation.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8053 "MediaDataRepresentation.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = media_collection_registry_ref (object);
+#line 8057 "MediaDataRepresentation.c"
+ } else {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 8061 "MediaDataRepresentation.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 8065 "MediaDataRepresentation.c"
+}
+
+
+static gchar* value_media_collection_registry_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ MediaCollectionRegistry** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!object_p) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 8076 "MediaDataRepresentation.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (!value->data[0].v_pointer) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *object_p = NULL;
+#line 8082 "MediaDataRepresentation.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *object_p = value->data[0].v_pointer;
+#line 8086 "MediaDataRepresentation.c"
+ } else {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ *object_p = media_collection_registry_ref (value->data[0].v_pointer);
+#line 8090 "MediaDataRepresentation.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return NULL;
+#line 8094 "MediaDataRepresentation.c"
+}
+
+
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecMediaCollectionRegistry* spec;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_MEDIA_COLLECTION_REGISTRY), NULL);
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return G_PARAM_SPEC (spec);
+#line 8108 "MediaDataRepresentation.c"
+}
+
+
+gpointer value_get_media_collection_registry (const GValue* value) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MEDIA_COLLECTION_REGISTRY), NULL);
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return value->data[0].v_pointer;
+#line 8117 "MediaDataRepresentation.c"
+}
+
+
+void value_set_media_collection_registry (GValue* value, gpointer v_object) {
+ MediaCollectionRegistry* old;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MEDIA_COLLECTION_REGISTRY));
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ old = value->data[0].v_pointer;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (v_object) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MEDIA_COLLECTION_REGISTRY));
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = v_object;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_ref (value->data[0].v_pointer);
+#line 8137 "MediaDataRepresentation.c"
+ } else {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 8141 "MediaDataRepresentation.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (old) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_unref (old);
+#line 8147 "MediaDataRepresentation.c"
+ }
+}
+
+
+void value_take_media_collection_registry (GValue* value, gpointer v_object) {
+ MediaCollectionRegistry* old;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MEDIA_COLLECTION_REGISTRY));
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ old = value->data[0].v_pointer;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (v_object) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MEDIA_COLLECTION_REGISTRY));
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = v_object;
+#line 8166 "MediaDataRepresentation.c"
+ } else {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ value->data[0].v_pointer = NULL;
+#line 8170 "MediaDataRepresentation.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (old) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_unref (old);
+#line 8176 "MediaDataRepresentation.c"
+ }
+}
+
+
+static void media_collection_registry_class_init (MediaCollectionRegistryClass * klass) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ media_collection_registry_parent_class = g_type_class_peek_parent (klass);
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ ((MediaCollectionRegistryClass *) klass)->finalize = media_collection_registry_finalize;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_type_class_add_private (klass, sizeof (MediaCollectionRegistryPrivate));
+#line 8188 "MediaDataRepresentation.c"
+}
+
+
+static void media_collection_registry_instance_init (MediaCollectionRegistry * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv = MEDIA_COLLECTION_REGISTRY_GET_PRIVATE (self);
+#line 745 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE_COLLECTION, (GBoxedCopyFunc) data_collection_ref, data_collection_unref, NULL, NULL, NULL);
+#line 745 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->all = _tmp0_;
+#line 746 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_MEDIA_SOURCE_COLLECTION, (GBoxedCopyFunc) data_collection_ref, data_collection_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 746 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->priv->by_typename = _tmp1_;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self->ref_count = 1;
+#line 8207 "MediaDataRepresentation.c"
+}
+
+
+static void media_collection_registry_finalize (MediaCollectionRegistry* obj) {
+ MediaCollectionRegistry * self;
+ Application* _tmp0_ = NULL;
+ Application* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry);
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_handlers_destroy (self);
+#line 754 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp0_ = application_get_instance ();
+#line 754 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _tmp1_ = _tmp0_;
+#line 754 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_parse_name ("init-done", TYPE_APPLICATION, &_tmp2_, NULL, FALSE);
+#line 754 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _media_collection_registry_on_init_done_application_init_done, self);
+#line 754 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _application_unref0 (_tmp1_);
+#line 745 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->all);
+#line 746 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ _g_object_unref0 (self->priv->by_typename);
+#line 8234 "MediaDataRepresentation.c"
+}
+
+
+GType media_collection_registry_get_type (void) {
+ static volatile gsize media_collection_registry_type_id__volatile = 0;
+ if (g_once_init_enter (&media_collection_registry_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_media_collection_registry_init, value_media_collection_registry_free_value, value_media_collection_registry_copy_value, value_media_collection_registry_peek_pointer, "p", value_media_collection_registry_collect_value, "p", value_media_collection_registry_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (MediaCollectionRegistryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_collection_registry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaCollectionRegistry), 0, (GInstanceInitFunc) media_collection_registry_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType media_collection_registry_type_id;
+ media_collection_registry_type_id = g_type_register_fundamental (g_type_fundamental_next (), "MediaCollectionRegistry", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&media_collection_registry_type_id__volatile, media_collection_registry_type_id);
+ }
+ return media_collection_registry_type_id__volatile;
+}
+
+
+gpointer media_collection_registry_ref (gpointer instance) {
+ MediaCollectionRegistry* self;
+ self = instance;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ return instance;
+#line 8259 "MediaDataRepresentation.c"
+}
+
+
+void media_collection_registry_unref (gpointer instance) {
+ MediaCollectionRegistry* self;
+ self = instance;
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ MEDIA_COLLECTION_REGISTRY_GET_CLASS (self)->finalize (self);
+#line 740 "/home/jens/Source/shotwell/src/MediaDataRepresentation.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 8272 "MediaDataRepresentation.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/MediaInterfaces.c b/src/MediaInterfaces.c
new file mode 100644
index 0000000..68c9735
--- /dev/null
+++ b/src/MediaInterfaces.c
@@ -0,0 +1,1423 @@
+/* MediaInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from MediaInterfaces.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/**/
+/* Going forward, Shotwell will use MediaInterfaces, which allow for various operations and features*/
+/* to be added only to the MediaSources that support them (or make sense for). For example, adding*/
+/* a library-mode photo or video to an Event makes perfect sense, but does not make sense for a*/
+/* direct-mode photo. All three are MediaSources, and to make DirectPhoto descend from another*/
+/* base class is only inviting chaos and a tremendous amount of replicated code.*/
+/**/
+/* A key point to make of all MediaInterfaces is that they require MediaSource as a base class.*/
+/* Thus, any code dealing with one of these interfaces knows they are also dealing with a*/
+/* MediaSource.*/
+/**/
+/* TODO: Make Eventable and Taggable interfaces, which are the only types Event and Tag will deal*/
+/* with (rather than MediaSources).*/
+/**/
+/* TODO: Make Trashable interface, which are much like Flaggable.*/
+/**/
+/* TODO: ContainerSources may also have specific needs in the future; an interface-based system*/
+/* may make sense as well when that need arises.*/
+/**/
+/**/
+/* TransactionController*/
+/**/
+/* Because many operations in Shotwell need to be performed on collections of objects all at once,*/
+/* and that most of these objects are backed by a database, the TransactionController object gives */
+/* a way to generically group a series of operations on one or more similar objects into a single*/
+/* transaction. This class is listed here because it's used by the various media interfaces to offer*/
+/* multiple operations.*/
+/**/
+/* begin() and commit() may be called multiple times in layering fashion. The implementation*/
+/* accounts for this. If either throws an exception it should be assumed that the object is in*/
+/* a "clean" state; that is, if begin() throws an exception, there is no need to call commit(),*/
+/* and if commit() throws an exception, it does not need to be called again to revert the object*/
+/* state.*/
+/**/
+/* This means that any user who calls begin() *must* match it with a corresponding commit(), even*/
+/* if there is an error during the transaction. It is up to the user to back out any undesired*/
+/* changes.*/
+/**/
+/* Because of the nature of this object, it's assumed that every object type will share one*/
+/* between all callers.*/
+/**/
+/* The object is thread-safe. There is no guarantee that the underlying persistent store is,*/
+/* however.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <time.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+typedef struct _TransactionControllerPrivate TransactionControllerPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _ParamSpecTransactionController ParamSpecTransactionController;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _TransactionController {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TransactionControllerPrivate * priv;
+};
+
+struct _TransactionControllerClass {
+ GTypeClass parent_class;
+ void (*finalize) (TransactionController *self);
+ void (*begin_impl) (TransactionController* self, GError** error);
+ void (*commit_impl) (TransactionController* self, GError** error);
+};
+
+struct _TransactionControllerPrivate {
+ gint count;
+ GRecMutex __lock_count;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _ParamSpecTransactionController {
+ GParamSpec parent_instance;
+};
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+
+static gpointer transaction_controller_parent_class = NULL;
+
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+#define TRANSACTION_CONTROLLER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TRANSACTION_CONTROLLER, TransactionControllerPrivate))
+enum {
+ TRANSACTION_CONTROLLER_DUMMY_PROPERTY
+};
+TransactionController* transaction_controller_construct (GType object_type);
+void transaction_controller_begin (TransactionController* self);
+void transaction_controller_begin_impl (TransactionController* self, GError** error);
+GQuark database_error_quark (void);
+void app_window_database_error (GError* err);
+void app_window_panic (const gchar* msg);
+static void transaction_controller_real_begin_impl (TransactionController* self, GError** error);
+void transaction_controller_commit (TransactionController* self);
+void transaction_controller_commit_impl (TransactionController* self, GError** error);
+static void transaction_controller_real_commit_impl (TransactionController* self, GError** error);
+static void transaction_controller_finalize (TransactionController* obj);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+void flaggable_mark_flagged (Flaggable* self);
+void flaggable_mark_unflagged (Flaggable* self);
+void flaggable_mark_many_flagged_unflagged (GeeCollection* flag, GeeCollection* unflag, TransactionController* controller, GError** error);
+GType monitorable_get_type (void) G_GNUC_CONST;
+gboolean monitorable_is_offline (Monitorable* self);
+void monitorable_mark_online (Monitorable* self);
+void monitorable_mark_offline (Monitorable* self);
+void monitorable_mark_many_online_offline (GeeCollection* online, GeeCollection* offline, TransactionController* controller, GError** error);
+void monitorable_set_master_file (Monitorable* self, GFile* file);
+void monitorable_set_many_master_file (GeeMap* map, TransactionController* controller, GError** error);
+void monitorable_set_master_timestamp (Monitorable* self, GFileInfo* info);
+void monitorable_set_many_master_timestamp (GeeMap* map, TransactionController* controller, GError** error);
+GType dateable_get_type (void) G_GNUC_CONST;
+void dateable_set_exposure_time (Dateable* self, time_t target_time);
+time_t dateable_get_exposure_time (Dateable* self);
+
+
+TransactionController* transaction_controller_construct (GType object_type) {
+ TransactionController* self = NULL;
+#line 54 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self = (TransactionController*) g_type_create_instance (object_type);
+#line 54 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return self;
+#line 254 "MediaInterfaces.c"
+}
+
+
+void transaction_controller_begin (TransactionController* self) {
+ GError * _inner_error_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (self));
+#line 262 "MediaInterfaces.c"
+ {
+ gint _tmp0_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp0_ = self->priv->count;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_lock (&self->priv->__lock_count);
+#line 269 "MediaInterfaces.c"
+ {
+ gint _tmp1_ = 0;
+#line 65 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp1_ = self->priv->count;
+#line 65 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self->priv->count = _tmp1_ + 1;
+#line 65 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp1_ != 0) {
+#line 278 "MediaInterfaces.c"
+ {
+ gint _tmp2_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp2_ = self->priv->count;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_count);
+#line 285 "MediaInterfaces.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 289 "MediaInterfaces.c"
+ }
+ {
+#line 69 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_begin_impl (self, &_inner_error_);
+#line 69 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 296 "MediaInterfaces.c"
+ goto __catch560_g_error;
+ }
+ }
+ goto __finally560;
+ __catch560_g_error:
+ {
+ GError* err = NULL;
+ gint _tmp3_ = 0;
+ GError* _tmp4_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ err = _inner_error_;
+#line 68 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _inner_error_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp3_ = self->priv->count;
+#line 72 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self->priv->count = _tmp3_ - 1;
+#line 74 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp4_ = err;
+#line 74 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp4_->domain == DATABASE_ERROR) {
+#line 318 "MediaInterfaces.c"
+ GError* _tmp5_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp5_ = err;
+#line 75 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ app_window_database_error ((GError*) _tmp5_);
+#line 324 "MediaInterfaces.c"
+ } else {
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp6_ = err;
+#line 77 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp7_ = _tmp6_->message;
+#line 77 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp8_ = g_strdup_printf ("%s", _tmp7_);
+#line 77 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp9_ = _tmp8_;
+#line 77 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ app_window_panic (_tmp9_);
+#line 77 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_free0 (_tmp9_);
+#line 342 "MediaInterfaces.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_error_free0 (err);
+#line 346 "MediaInterfaces.c"
+ }
+ __finally560:
+#line 68 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 351 "MediaInterfaces.c"
+ {
+ gint _tmp10_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp10_ = self->priv->count;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_count);
+#line 358 "MediaInterfaces.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 68 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 68 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 366 "MediaInterfaces.c"
+ }
+ }
+ __finally559:
+ {
+ gint _tmp11_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp11_ = self->priv->count;
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_count);
+#line 376 "MediaInterfaces.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 386 "MediaInterfaces.c"
+ }
+ }
+}
+
+
+static void transaction_controller_real_begin_impl (TransactionController* self, GError** error) {
+#line 83 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_critical ("Type `%s' does not implement abstract method `transaction_controller_begin_impl'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 83 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 397 "MediaInterfaces.c"
+}
+
+
+void transaction_controller_begin_impl (TransactionController* self, GError** error) {
+#line 83 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (self));
+#line 83 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ TRANSACTION_CONTROLLER_GET_CLASS (self)->begin_impl (self, error);
+#line 406 "MediaInterfaces.c"
+}
+
+
+void transaction_controller_commit (TransactionController* self) {
+ GError * _inner_error_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (self));
+#line 414 "MediaInterfaces.c"
+ {
+ gint _tmp0_ = 0;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp0_ = self->priv->count;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_lock (&self->priv->__lock_count);
+#line 421 "MediaInterfaces.c"
+ {
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 87 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp1_ = self->priv->count;
+#line 87 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _vala_assert (_tmp1_ > 0, "count > 0");
+#line 88 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp2_ = self->priv->count;
+#line 88 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self->priv->count = _tmp2_ - 1;
+#line 88 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp3_ = self->priv->count;
+#line 88 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp3_ != 0) {
+#line 438 "MediaInterfaces.c"
+ {
+ gint _tmp4_ = 0;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp4_ = self->priv->count;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_count);
+#line 445 "MediaInterfaces.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 449 "MediaInterfaces.c"
+ }
+ {
+#line 93 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_commit_impl (self, &_inner_error_);
+#line 93 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 456 "MediaInterfaces.c"
+ goto __catch562_g_error;
+ }
+ }
+ goto __finally562;
+ __catch562_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ err = _inner_error_;
+#line 92 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _inner_error_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp5_ = err;
+#line 95 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp5_->domain == DATABASE_ERROR) {
+#line 473 "MediaInterfaces.c"
+ GError* _tmp6_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp6_ = err;
+#line 96 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ app_window_database_error ((GError*) _tmp6_);
+#line 479 "MediaInterfaces.c"
+ } else {
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp7_ = err;
+#line 98 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp8_ = _tmp7_->message;
+#line 98 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp9_ = g_strdup_printf ("%s", _tmp8_);
+#line 98 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp10_ = _tmp9_;
+#line 98 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ app_window_panic (_tmp10_);
+#line 98 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_free0 (_tmp10_);
+#line 497 "MediaInterfaces.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_error_free0 (err);
+#line 501 "MediaInterfaces.c"
+ }
+ __finally562:
+#line 92 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 506 "MediaInterfaces.c"
+ {
+ gint _tmp11_ = 0;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp11_ = self->priv->count;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_count);
+#line 513 "MediaInterfaces.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 92 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 92 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 521 "MediaInterfaces.c"
+ }
+ }
+ __finally561:
+ {
+ gint _tmp12_ = 0;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp12_ = self->priv->count;
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_count);
+#line 531 "MediaInterfaces.c"
+ }
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 86 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 541 "MediaInterfaces.c"
+ }
+ }
+}
+
+
+static void transaction_controller_real_commit_impl (TransactionController* self, GError** error) {
+#line 104 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_critical ("Type `%s' does not implement abstract method `transaction_controller_commit_impl'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 104 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return;
+#line 552 "MediaInterfaces.c"
+}
+
+
+void transaction_controller_commit_impl (TransactionController* self, GError** error) {
+#line 104 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (self));
+#line 104 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ TRANSACTION_CONTROLLER_GET_CLASS (self)->commit_impl (self, error);
+#line 561 "MediaInterfaces.c"
+}
+
+
+static void value_transaction_controller_init (GValue* value) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ value->data[0].v_pointer = NULL;
+#line 568 "MediaInterfaces.c"
+}
+
+
+static void value_transaction_controller_free_value (GValue* value) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (value->data[0].v_pointer) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_unref (value->data[0].v_pointer);
+#line 577 "MediaInterfaces.c"
+ }
+}
+
+
+static void value_transaction_controller_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (src_value->data[0].v_pointer) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ dest_value->data[0].v_pointer = transaction_controller_ref (src_value->data[0].v_pointer);
+#line 587 "MediaInterfaces.c"
+ } else {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 591 "MediaInterfaces.c"
+ }
+}
+
+
+static gpointer value_transaction_controller_peek_pointer (const GValue* value) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return value->data[0].v_pointer;
+#line 599 "MediaInterfaces.c"
+}
+
+
+static gchar* value_transaction_controller_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (collect_values[0].v_pointer) {
+#line 606 "MediaInterfaces.c"
+ TransactionController* object;
+ object = collect_values[0].v_pointer;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 613 "MediaInterfaces.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 617 "MediaInterfaces.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ value->data[0].v_pointer = transaction_controller_ref (object);
+#line 621 "MediaInterfaces.c"
+ } else {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ value->data[0].v_pointer = NULL;
+#line 625 "MediaInterfaces.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return NULL;
+#line 629 "MediaInterfaces.c"
+}
+
+
+static gchar* value_transaction_controller_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TransactionController** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!object_p) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 640 "MediaInterfaces.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!value->data[0].v_pointer) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ *object_p = NULL;
+#line 646 "MediaInterfaces.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ *object_p = value->data[0].v_pointer;
+#line 650 "MediaInterfaces.c"
+ } else {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ *object_p = transaction_controller_ref (value->data[0].v_pointer);
+#line 654 "MediaInterfaces.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return NULL;
+#line 658 "MediaInterfaces.c"
+}
+
+
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTransactionController* spec;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TRANSACTION_CONTROLLER), NULL);
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return G_PARAM_SPEC (spec);
+#line 672 "MediaInterfaces.c"
+}
+
+
+gpointer value_get_transaction_controller (const GValue* value) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSACTION_CONTROLLER), NULL);
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return value->data[0].v_pointer;
+#line 681 "MediaInterfaces.c"
+}
+
+
+void value_set_transaction_controller (GValue* value, gpointer v_object) {
+ TransactionController* old;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSACTION_CONTROLLER));
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ old = value->data[0].v_pointer;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (v_object) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TRANSACTION_CONTROLLER));
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ value->data[0].v_pointer = v_object;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_ref (value->data[0].v_pointer);
+#line 701 "MediaInterfaces.c"
+ } else {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ value->data[0].v_pointer = NULL;
+#line 705 "MediaInterfaces.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (old) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_unref (old);
+#line 711 "MediaInterfaces.c"
+ }
+}
+
+
+void value_take_transaction_controller (GValue* value, gpointer v_object) {
+ TransactionController* old;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSACTION_CONTROLLER));
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ old = value->data[0].v_pointer;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (v_object) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TRANSACTION_CONTROLLER));
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ value->data[0].v_pointer = v_object;
+#line 730 "MediaInterfaces.c"
+ } else {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ value->data[0].v_pointer = NULL;
+#line 734 "MediaInterfaces.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (old) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_unref (old);
+#line 740 "MediaInterfaces.c"
+ }
+}
+
+
+static void transaction_controller_class_init (TransactionControllerClass * klass) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_parent_class = g_type_class_peek_parent (klass);
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ ((TransactionControllerClass *) klass)->finalize = transaction_controller_finalize;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_type_class_add_private (klass, sizeof (TransactionControllerPrivate));
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ ((TransactionControllerClass *) klass)->begin_impl = transaction_controller_real_begin_impl;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ ((TransactionControllerClass *) klass)->commit_impl = transaction_controller_real_commit_impl;
+#line 756 "MediaInterfaces.c"
+}
+
+
+static void transaction_controller_instance_init (TransactionController * self) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self->priv = TRANSACTION_CONTROLLER_GET_PRIVATE (self);
+#line 52 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_init (&self->priv->__lock_count);
+#line 52 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self->priv->count = 0;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self->ref_count = 1;
+#line 769 "MediaInterfaces.c"
+}
+
+
+static void transaction_controller_finalize (TransactionController* obj) {
+ TransactionController * self;
+ GError * _inner_error_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRANSACTION_CONTROLLER, TransactionController);
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_signal_handlers_destroy (self);
+#line 780 "MediaInterfaces.c"
+ {
+ gint _tmp0_ = 0;
+#line 58 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp0_ = self->priv->count;
+#line 58 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_lock (&self->priv->__lock_count);
+#line 787 "MediaInterfaces.c"
+ {
+ gint _tmp1_ = 0;
+#line 59 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp1_ = self->priv->count;
+#line 59 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _vala_assert (_tmp1_ == 0, "count == 0");
+#line 794 "MediaInterfaces.c"
+ }
+ __finally558:
+ {
+ gint _tmp2_ = 0;
+#line 58 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp2_ = self->priv->count;
+#line 58 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_count);
+#line 803 "MediaInterfaces.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 58 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 58 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 811 "MediaInterfaces.c"
+ }
+ }
+#line 52 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_rec_mutex_clear (&self->priv->__lock_count);
+#line 816 "MediaInterfaces.c"
+}
+
+
+GType transaction_controller_get_type (void) {
+ static volatile gsize transaction_controller_type_id__volatile = 0;
+ if (g_once_init_enter (&transaction_controller_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_transaction_controller_init, value_transaction_controller_free_value, value_transaction_controller_copy_value, value_transaction_controller_peek_pointer, "p", value_transaction_controller_collect_value, "p", value_transaction_controller_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TransactionControllerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) transaction_controller_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TransactionController), 0, (GInstanceInitFunc) transaction_controller_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType transaction_controller_type_id;
+ transaction_controller_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TransactionController", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&transaction_controller_type_id__volatile, transaction_controller_type_id);
+ }
+ return transaction_controller_type_id__volatile;
+}
+
+
+gpointer transaction_controller_ref (gpointer instance) {
+ TransactionController* self;
+ self = instance;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return instance;
+#line 841 "MediaInterfaces.c"
+}
+
+
+void transaction_controller_unref (gpointer instance) {
+ TransactionController* self;
+ self = instance;
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ TRANSACTION_CONTROLLER_GET_CLASS (self)->finalize (self);
+#line 51 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 854 "MediaInterfaces.c"
+ }
+}
+
+
+gboolean flaggable_is_flagged (Flaggable* self) {
+#line 115 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_val_if_fail (IS_FLAGGABLE (self), FALSE);
+#line 115 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return FLAGGABLE_GET_INTERFACE (self)->is_flagged (self);
+#line 864 "MediaInterfaces.c"
+}
+
+
+void flaggable_mark_flagged (Flaggable* self) {
+#line 117 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_FLAGGABLE (self));
+#line 117 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ FLAGGABLE_GET_INTERFACE (self)->mark_flagged (self);
+#line 873 "MediaInterfaces.c"
+}
+
+
+void flaggable_mark_unflagged (Flaggable* self) {
+#line 119 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_FLAGGABLE (self));
+#line 119 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ FLAGGABLE_GET_INTERFACE (self)->mark_unflagged (self);
+#line 882 "MediaInterfaces.c"
+}
+
+
+void flaggable_mark_many_flagged_unflagged (GeeCollection* flag, GeeCollection* unflag, TransactionController* controller, GError** error) {
+ TransactionController* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ TransactionController* _tmp17_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail ((flag == NULL) || GEE_IS_COLLECTION (flag));
+#line 121 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail ((unflag == NULL) || GEE_IS_COLLECTION (unflag));
+#line 121 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 123 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp0_ = controller;
+#line 123 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_begin (_tmp0_);
+#line 125 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp1_ = flag;
+#line 125 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp1_ != NULL) {
+#line 905 "MediaInterfaces.c"
+ {
+ GeeIterator* _flaggable_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp2_ = flag;
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _flaggable_it = _tmp3_;
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ while (TRUE) {
+#line 918 "MediaInterfaces.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Flaggable* flaggable = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Flaggable* _tmp8_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp4_ = _flaggable_it;
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!_tmp5_) {
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ break;
+#line 933 "MediaInterfaces.c"
+ }
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp6_ = _flaggable_it;
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ flaggable = (Flaggable*) _tmp7_;
+#line 127 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp8_ = flaggable;
+#line 127 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ flaggable_mark_flagged (_tmp8_);
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (flaggable);
+#line 947 "MediaInterfaces.c"
+ }
+#line 126 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_flaggable_it);
+#line 951 "MediaInterfaces.c"
+ }
+ }
+#line 130 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp9_ = unflag;
+#line 130 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp9_ != NULL) {
+#line 958 "MediaInterfaces.c"
+ {
+ GeeIterator* _flaggable_it = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp10_ = unflag;
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _flaggable_it = _tmp11_;
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ while (TRUE) {
+#line 971 "MediaInterfaces.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ Flaggable* flaggable = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ Flaggable* _tmp16_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp12_ = _flaggable_it;
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!_tmp13_) {
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ break;
+#line 986 "MediaInterfaces.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp14_ = _flaggable_it;
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ flaggable = (Flaggable*) _tmp15_;
+#line 132 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp16_ = flaggable;
+#line 132 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ flaggable_mark_unflagged (_tmp16_);
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (flaggable);
+#line 1000 "MediaInterfaces.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_flaggable_it);
+#line 1004 "MediaInterfaces.c"
+ }
+ }
+#line 135 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp17_ = controller;
+#line 135 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_commit (_tmp17_);
+#line 1011 "MediaInterfaces.c"
+}
+
+
+static void flaggable_base_init (FlaggableIface * iface) {
+#line 114 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 114 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!initialized) {
+#line 114 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ initialized = TRUE;
+#line 1022 "MediaInterfaces.c"
+ }
+}
+
+
+GType flaggable_get_type (void) {
+ static volatile gsize flaggable_type_id__volatile = 0;
+ if (g_once_init_enter (&flaggable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FlaggableIface), (GBaseInitFunc) flaggable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType flaggable_type_id;
+ flaggable_type_id = g_type_register_static (G_TYPE_INTERFACE, "Flaggable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (flaggable_type_id, TYPE_MEDIA_SOURCE);
+ g_once_init_leave (&flaggable_type_id__volatile, flaggable_type_id);
+ }
+ return flaggable_type_id__volatile;
+}
+
+
+gboolean monitorable_is_offline (Monitorable* self) {
+#line 153 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_val_if_fail (IS_MONITORABLE (self), FALSE);
+#line 153 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return MONITORABLE_GET_INTERFACE (self)->is_offline (self);
+#line 1045 "MediaInterfaces.c"
+}
+
+
+void monitorable_mark_online (Monitorable* self) {
+#line 155 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_MONITORABLE (self));
+#line 155 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ MONITORABLE_GET_INTERFACE (self)->mark_online (self);
+#line 1054 "MediaInterfaces.c"
+}
+
+
+void monitorable_mark_offline (Monitorable* self) {
+#line 157 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_MONITORABLE (self));
+#line 157 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ MONITORABLE_GET_INTERFACE (self)->mark_offline (self);
+#line 1063 "MediaInterfaces.c"
+}
+
+
+void monitorable_mark_many_online_offline (GeeCollection* online, GeeCollection* offline, TransactionController* controller, GError** error) {
+ TransactionController* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ TransactionController* _tmp17_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail ((online == NULL) || GEE_IS_COLLECTION (online));
+#line 159 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail ((offline == NULL) || GEE_IS_COLLECTION (offline));
+#line 159 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 161 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp0_ = controller;
+#line 161 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_begin (_tmp0_);
+#line 163 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp1_ = online;
+#line 163 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp1_ != NULL) {
+#line 1086 "MediaInterfaces.c"
+ {
+ GeeIterator* _monitorable_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp2_ = online;
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _monitorable_it = _tmp3_;
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ while (TRUE) {
+#line 1099 "MediaInterfaces.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Monitorable* monitorable = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Monitorable* _tmp8_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp4_ = _monitorable_it;
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!_tmp5_) {
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ break;
+#line 1114 "MediaInterfaces.c"
+ }
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp6_ = _monitorable_it;
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ monitorable = (Monitorable*) _tmp7_;
+#line 165 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp8_ = monitorable;
+#line 165 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ monitorable_mark_online (_tmp8_);
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (monitorable);
+#line 1128 "MediaInterfaces.c"
+ }
+#line 164 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_monitorable_it);
+#line 1132 "MediaInterfaces.c"
+ }
+ }
+#line 168 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp9_ = offline;
+#line 168 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (_tmp9_ != NULL) {
+#line 1139 "MediaInterfaces.c"
+ {
+ GeeIterator* _monitorable_it = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp10_ = offline;
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _monitorable_it = _tmp11_;
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ while (TRUE) {
+#line 1152 "MediaInterfaces.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ Monitorable* monitorable = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ Monitorable* _tmp16_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp12_ = _monitorable_it;
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!_tmp13_) {
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ break;
+#line 1167 "MediaInterfaces.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp14_ = _monitorable_it;
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ monitorable = (Monitorable*) _tmp15_;
+#line 170 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp16_ = monitorable;
+#line 170 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ monitorable_mark_offline (_tmp16_);
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (monitorable);
+#line 1181 "MediaInterfaces.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_monitorable_it);
+#line 1185 "MediaInterfaces.c"
+ }
+ }
+#line 173 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp17_ = controller;
+#line 173 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_commit (_tmp17_);
+#line 1192 "MediaInterfaces.c"
+}
+
+
+void monitorable_set_master_file (Monitorable* self, GFile* file) {
+#line 176 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_MONITORABLE (self));
+#line 176 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ MONITORABLE_GET_INTERFACE (self)->set_master_file (self, file);
+#line 1201 "MediaInterfaces.c"
+}
+
+
+void monitorable_set_many_master_file (GeeMap* map, TransactionController* controller, GError** error) {
+ TransactionController* _tmp0_ = NULL;
+ GeeMapIterator* map_iter = NULL;
+ GeeMap* _tmp1_ = NULL;
+ GeeMapIterator* _tmp2_ = NULL;
+ TransactionController* _tmp11_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 178 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 180 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp0_ = controller;
+#line 180 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_begin (_tmp0_);
+#line 182 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp1_ = map;
+#line 182 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp2_ = gee_map_map_iterator (_tmp1_);
+#line 182 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ map_iter = _tmp2_;
+#line 183 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ while (TRUE) {
+#line 1227 "MediaInterfaces.c"
+ GeeMapIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeMapIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Monitorable* _tmp7_ = NULL;
+ GeeMapIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp3_ = map_iter;
+#line 183 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp4_ = gee_map_iterator_next (_tmp3_);
+#line 183 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!_tmp4_) {
+#line 183 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ break;
+#line 1244 "MediaInterfaces.c"
+ }
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp5_ = map_iter;
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp6_ = gee_map_iterator_get_key (_tmp5_);
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp7_ = (Monitorable*) _tmp6_;
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp8_ = map_iter;
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp9_ = gee_map_iterator_get_value (_tmp8_);
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp10_ = (GFile*) _tmp9_;
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ monitorable_set_master_file (_tmp7_, _tmp10_);
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_tmp10_);
+#line 184 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1264 "MediaInterfaces.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp11_ = controller;
+#line 186 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_commit (_tmp11_);
+#line 178 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (map_iter);
+#line 1272 "MediaInterfaces.c"
+}
+
+
+void monitorable_set_master_timestamp (Monitorable* self, GFileInfo* info) {
+#line 189 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_MONITORABLE (self));
+#line 189 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ MONITORABLE_GET_INTERFACE (self)->set_master_timestamp (self, info);
+#line 1281 "MediaInterfaces.c"
+}
+
+
+void monitorable_set_many_master_timestamp (GeeMap* map, TransactionController* controller, GError** error) {
+ TransactionController* _tmp0_ = NULL;
+ GeeMapIterator* map_iter = NULL;
+ GeeMap* _tmp1_ = NULL;
+ GeeMapIterator* _tmp2_ = NULL;
+ TransactionController* _tmp11_ = NULL;
+#line 191 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 191 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 193 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp0_ = controller;
+#line 193 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_begin (_tmp0_);
+#line 195 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp1_ = map;
+#line 195 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp2_ = gee_map_map_iterator (_tmp1_);
+#line 195 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ map_iter = _tmp2_;
+#line 196 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ while (TRUE) {
+#line 1307 "MediaInterfaces.c"
+ GeeMapIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeMapIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Monitorable* _tmp7_ = NULL;
+ GeeMapIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GFileInfo* _tmp10_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp3_ = map_iter;
+#line 196 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp4_ = gee_map_iterator_next (_tmp3_);
+#line 196 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!_tmp4_) {
+#line 196 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ break;
+#line 1324 "MediaInterfaces.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp5_ = map_iter;
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp6_ = gee_map_iterator_get_key (_tmp5_);
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp7_ = (Monitorable*) _tmp6_;
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp8_ = map_iter;
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp9_ = gee_map_iterator_get_value (_tmp8_);
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp10_ = (GFileInfo*) _tmp9_;
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ monitorable_set_master_timestamp (_tmp7_, _tmp10_);
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_tmp10_);
+#line 197 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1344 "MediaInterfaces.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _tmp11_ = controller;
+#line 199 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ transaction_controller_commit (_tmp11_);
+#line 191 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ _g_object_unref0 (map_iter);
+#line 1352 "MediaInterfaces.c"
+}
+
+
+static void monitorable_base_init (MonitorableIface * iface) {
+#line 152 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 152 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!initialized) {
+#line 152 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ initialized = TRUE;
+#line 1363 "MediaInterfaces.c"
+ }
+}
+
+
+GType monitorable_get_type (void) {
+ static volatile gsize monitorable_type_id__volatile = 0;
+ if (g_once_init_enter (&monitorable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MonitorableIface), (GBaseInitFunc) monitorable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType monitorable_type_id;
+ monitorable_type_id = g_type_register_static (G_TYPE_INTERFACE, "Monitorable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (monitorable_type_id, TYPE_MEDIA_SOURCE);
+ g_once_init_leave (&monitorable_type_id__volatile, monitorable_type_id);
+ }
+ return monitorable_type_id__volatile;
+}
+
+
+void dateable_set_exposure_time (Dateable* self, time_t target_time) {
+#line 212 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_if_fail (IS_DATEABLE (self));
+#line 212 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ DATEABLE_GET_INTERFACE (self)->set_exposure_time (self, target_time);
+#line 1386 "MediaInterfaces.c"
+}
+
+
+time_t dateable_get_exposure_time (Dateable* self) {
+#line 214 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ g_return_val_if_fail (IS_DATEABLE (self), 0);
+#line 214 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ return DATEABLE_GET_INTERFACE (self)->get_exposure_time (self);
+#line 1395 "MediaInterfaces.c"
+}
+
+
+static void dateable_base_init (DateableIface * iface) {
+#line 211 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 211 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ if (!initialized) {
+#line 211 "/home/jens/Source/shotwell/src/MediaInterfaces.vala"
+ initialized = TRUE;
+#line 1406 "MediaInterfaces.c"
+ }
+}
+
+
+GType dateable_get_type (void) {
+ static volatile gsize dateable_type_id__volatile = 0;
+ if (g_once_init_enter (&dateable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DateableIface), (GBaseInitFunc) dateable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType dateable_type_id;
+ dateable_type_id = g_type_register_static (G_TYPE_INTERFACE, "Dateable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (dateable_type_id, TYPE_MEDIA_SOURCE);
+ g_once_init_leave (&dateable_type_id__volatile, dateable_type_id);
+ }
+ return dateable_type_id__volatile;
+}
+
+
+
diff --git a/src/MediaMetadata.c b/src/MediaMetadata.c
new file mode 100644
index 0000000..b426c62
--- /dev/null
+++ b/src/MediaMetadata.c
@@ -0,0 +1,1440 @@
+/* MediaMetadata.c generated by valac 0.32.1, the Vala compiler
+ * generated from MediaMetadata.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <stdio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+typedef struct _MediaMetadataPrivate MediaMetadataPrivate;
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+typedef struct _ParamSpecMediaMetadata ParamSpecMediaMetadata;
+
+#define TYPE_METADATA_RATIONAL (metadata_rational_get_type ())
+typedef struct _MetadataRational MetadataRational;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _MetadataDateTimePrivate MetadataDateTimePrivate;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+typedef struct _ParamSpecMetadataDateTime ParamSpecMetadataDateTime;
+
+struct _MediaMetadata {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MediaMetadataPrivate * priv;
+};
+
+struct _MediaMetadataClass {
+ GTypeClass parent_class;
+ void (*finalize) (MediaMetadata *self);
+ void (*read_from_file) (MediaMetadata* self, GFile* file, GError** error);
+ MetadataDateTime* (*get_creation_date_time) (MediaMetadata* self);
+ gchar* (*get_title) (MediaMetadata* self);
+ gchar* (*get_comment) (MediaMetadata* self);
+};
+
+struct _ParamSpecMediaMetadata {
+ GParamSpec parent_instance;
+};
+
+struct _MetadataRational {
+ gint numerator;
+ gint denominator;
+};
+
+typedef enum {
+ METADATA_DATE_TIME_ERROR_INVALID_FORMAT,
+ METADATA_DATE_TIME_ERROR_UNSUPPORTED_FORMAT
+} MetadataDateTimeError;
+#define METADATA_DATE_TIME_ERROR metadata_date_time_error_quark ()
+struct _MetadataDateTime {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MetadataDateTimePrivate * priv;
+};
+
+struct _MetadataDateTimeClass {
+ GTypeClass parent_class;
+ void (*finalize) (MetadataDateTime *self);
+};
+
+struct _MetadataDateTimePrivate {
+ time_t timestamp;
+};
+
+struct _ParamSpecMetadataDateTime {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer media_metadata_parent_class = NULL;
+static gpointer metadata_date_time_parent_class = NULL;
+
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+enum {
+ MEDIA_METADATA_DUMMY_PROPERTY
+};
+MediaMetadata* media_metadata_construct (GType object_type);
+void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error);
+static void media_metadata_real_read_from_file (MediaMetadata* self, GFile* file, GError** error);
+MetadataDateTime* media_metadata_get_creation_date_time (MediaMetadata* self);
+static MetadataDateTime* media_metadata_real_get_creation_date_time (MediaMetadata* self);
+gchar* media_metadata_get_title (MediaMetadata* self);
+static gchar* media_metadata_real_get_title (MediaMetadata* self);
+gchar* media_metadata_get_comment (MediaMetadata* self);
+static gchar* media_metadata_real_get_comment (MediaMetadata* self);
+static void media_metadata_finalize (MediaMetadata* obj);
+GType metadata_rational_get_type (void) G_GNUC_CONST;
+MetadataRational* metadata_rational_dup (const MetadataRational* self);
+void metadata_rational_free (MetadataRational* self);
+void metadata_rational_init (MetadataRational *self, gint numerator, gint denominator);
+static gboolean metadata_rational_is_component_valid (MetadataRational *self, gint component);
+gboolean metadata_rational_is_valid (MetadataRational *self);
+gchar* metadata_rational_to_string (MetadataRational *self);
+GQuark metadata_date_time_error_quark (void);
+#define METADATA_DATE_TIME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_METADATA_DATE_TIME, MetadataDateTimePrivate))
+enum {
+ METADATA_DATE_TIME_DUMMY_PROPERTY
+};
+MetadataDateTime* metadata_date_time_new (time_t timestamp);
+MetadataDateTime* metadata_date_time_construct (GType object_type, time_t timestamp);
+MetadataDateTime* metadata_date_time_new_from_exif (const gchar* label, GError** error);
+MetadataDateTime* metadata_date_time_construct_from_exif (GType object_type, const gchar* label, GError** error);
+gboolean metadata_date_time_from_exif_date_time (const gchar* date_time, time_t* timestamp);
+MetadataDateTime* metadata_date_time_new_from_iptc (const gchar* date, const gchar* time, GError** error);
+MetadataDateTime* metadata_date_time_construct_from_iptc (GType object_type, const gchar* date, const gchar* time, GError** error);
+MetadataDateTime* metadata_date_time_new_from_xmp (const gchar* label, GError** error);
+MetadataDateTime* metadata_date_time_construct_from_xmp (GType object_type, const gchar* label, GError** error);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+gchar* metadata_date_time_get_exif_label (MetadataDateTime* self);
+gchar* metadata_date_time_to_exif_date_time (time_t timestamp);
+gchar* metadata_date_time_get_xmp_label (MetadataDateTime* self);
+gchar* metadata_date_time_to_string (MetadataDateTime* self);
+static void metadata_date_time_finalize (MetadataDateTime* obj);
+
+
+MediaMetadata* media_metadata_construct (GType object_type) {
+ MediaMetadata* self = NULL;
+#line 8 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self = (MediaMetadata*) g_type_create_instance (object_type);
+#line 8 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return self;
+#line 164 "MediaMetadata.c"
+}
+
+
+static void media_metadata_real_read_from_file (MediaMetadata* self, GFile* file, GError** error) {
+#line 11 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_metadata_read_from_file'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 11 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return;
+#line 173 "MediaMetadata.c"
+}
+
+
+void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error) {
+#line 11 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (IS_MEDIA_METADATA (self));
+#line 11 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ MEDIA_METADATA_GET_CLASS (self)->read_from_file (self, file, error);
+#line 182 "MediaMetadata.c"
+}
+
+
+static MetadataDateTime* media_metadata_real_get_creation_date_time (MediaMetadata* self) {
+#line 13 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_metadata_get_creation_date_time'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 13 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 191 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* media_metadata_get_creation_date_time (MediaMetadata* self) {
+#line 13 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (IS_MEDIA_METADATA (self), NULL);
+#line 13 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return MEDIA_METADATA_GET_CLASS (self)->get_creation_date_time (self);
+#line 200 "MediaMetadata.c"
+}
+
+
+static gchar* media_metadata_real_get_title (MediaMetadata* self) {
+#line 15 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_metadata_get_title'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 15 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 209 "MediaMetadata.c"
+}
+
+
+gchar* media_metadata_get_title (MediaMetadata* self) {
+#line 15 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (IS_MEDIA_METADATA (self), NULL);
+#line 15 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return MEDIA_METADATA_GET_CLASS (self)->get_title (self);
+#line 218 "MediaMetadata.c"
+}
+
+
+static gchar* media_metadata_real_get_comment (MediaMetadata* self) {
+#line 17 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_metadata_get_comment'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 17 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 227 "MediaMetadata.c"
+}
+
+
+gchar* media_metadata_get_comment (MediaMetadata* self) {
+#line 17 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (IS_MEDIA_METADATA (self), NULL);
+#line 17 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return MEDIA_METADATA_GET_CLASS (self)->get_comment (self);
+#line 236 "MediaMetadata.c"
+}
+
+
+static void value_media_metadata_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 243 "MediaMetadata.c"
+}
+
+
+static void value_media_metadata_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ media_metadata_unref (value->data[0].v_pointer);
+#line 252 "MediaMetadata.c"
+ }
+}
+
+
+static void value_media_metadata_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ dest_value->data[0].v_pointer = media_metadata_ref (src_value->data[0].v_pointer);
+#line 262 "MediaMetadata.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 266 "MediaMetadata.c"
+ }
+}
+
+
+static gpointer value_media_metadata_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return value->data[0].v_pointer;
+#line 274 "MediaMetadata.c"
+}
+
+
+static gchar* value_media_metadata_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 281 "MediaMetadata.c"
+ MediaMetadata* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 288 "MediaMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 292 "MediaMetadata.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = media_metadata_ref (object);
+#line 296 "MediaMetadata.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 300 "MediaMetadata.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 304 "MediaMetadata.c"
+}
+
+
+static gchar* value_media_metadata_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ MediaMetadata** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 315 "MediaMetadata.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *object_p = NULL;
+#line 321 "MediaMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 325 "MediaMetadata.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *object_p = media_metadata_ref (value->data[0].v_pointer);
+#line 329 "MediaMetadata.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 333 "MediaMetadata.c"
+}
+
+
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecMediaMetadata* spec;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_MEDIA_METADATA), NULL);
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 347 "MediaMetadata.c"
+}
+
+
+gpointer value_get_media_metadata (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MEDIA_METADATA), NULL);
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return value->data[0].v_pointer;
+#line 356 "MediaMetadata.c"
+}
+
+
+void value_set_media_metadata (GValue* value, gpointer v_object) {
+ MediaMetadata* old;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MEDIA_METADATA));
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MEDIA_METADATA));
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ media_metadata_ref (value->data[0].v_pointer);
+#line 376 "MediaMetadata.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 380 "MediaMetadata.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ media_metadata_unref (old);
+#line 386 "MediaMetadata.c"
+ }
+}
+
+
+void value_take_media_metadata (GValue* value, gpointer v_object) {
+ MediaMetadata* old;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MEDIA_METADATA));
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MEDIA_METADATA));
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 405 "MediaMetadata.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 409 "MediaMetadata.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ media_metadata_unref (old);
+#line 415 "MediaMetadata.c"
+ }
+}
+
+
+static void media_metadata_class_init (MediaMetadataClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ media_metadata_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ ((MediaMetadataClass *) klass)->finalize = media_metadata_finalize;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ ((MediaMetadataClass *) klass)->read_from_file = media_metadata_real_read_from_file;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_creation_date_time = media_metadata_real_get_creation_date_time;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_title = media_metadata_real_get_title;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_comment = media_metadata_real_get_comment;
+#line 433 "MediaMetadata.c"
+}
+
+
+static void media_metadata_instance_init (MediaMetadata * self) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self->ref_count = 1;
+#line 440 "MediaMetadata.c"
+}
+
+
+static void media_metadata_finalize (MediaMetadata* obj) {
+ MediaMetadata * self;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_METADATA, MediaMetadata);
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 450 "MediaMetadata.c"
+}
+
+
+GType media_metadata_get_type (void) {
+ static volatile gsize media_metadata_type_id__volatile = 0;
+ if (g_once_init_enter (&media_metadata_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_media_metadata_init, value_media_metadata_free_value, value_media_metadata_copy_value, value_media_metadata_peek_pointer, "p", value_media_metadata_collect_value, "p", value_media_metadata_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (MediaMetadataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_metadata_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaMetadata), 0, (GInstanceInitFunc) media_metadata_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType media_metadata_type_id;
+ media_metadata_type_id = g_type_register_fundamental (g_type_fundamental_next (), "MediaMetadata", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&media_metadata_type_id__volatile, media_metadata_type_id);
+ }
+ return media_metadata_type_id__volatile;
+}
+
+
+gpointer media_metadata_ref (gpointer instance) {
+ MediaMetadata* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return instance;
+#line 475 "MediaMetadata.c"
+}
+
+
+void media_metadata_unref (gpointer instance) {
+ MediaMetadata* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ MEDIA_METADATA_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 488 "MediaMetadata.c"
+ }
+}
+
+
+void metadata_rational_init (MetadataRational *self, gint numerator, gint denominator) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 24 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ memset (self, 0, sizeof (MetadataRational));
+#line 25 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = numerator;
+#line 25 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ (*self).numerator = _tmp0_;
+#line 26 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = denominator;
+#line 26 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ (*self).denominator = _tmp1_;
+#line 506 "MediaMetadata.c"
+}
+
+
+static gboolean metadata_rational_is_component_valid (MetadataRational *self, gint component) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 30 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = component;
+#line 30 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp1_ >= 0) {
+#line 518 "MediaMetadata.c"
+ gint _tmp2_ = 0;
+#line 30 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp2_ = component;
+#line 30 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = _tmp2_ <= 1000000;
+#line 524 "MediaMetadata.c"
+ } else {
+#line 30 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = FALSE;
+#line 528 "MediaMetadata.c"
+ }
+#line 30 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp0_;
+#line 30 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 534 "MediaMetadata.c"
+}
+
+
+gboolean metadata_rational_is_valid (MetadataRational *self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = (*self).numerator;
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp2_ = metadata_rational_is_component_valid (&(*self), _tmp1_);
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp2_) {
+#line 549 "MediaMetadata.c"
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp3_ = (*self).denominator;
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp4_ = metadata_rational_is_component_valid (&(*self), _tmp3_);
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = _tmp4_;
+#line 558 "MediaMetadata.c"
+ } else {
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = FALSE;
+#line 562 "MediaMetadata.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp0_;
+#line 34 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 568 "MediaMetadata.c"
+}
+
+
+gchar* metadata_rational_to_string (MetadataRational *self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = metadata_rational_is_valid (&(*self));
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp1_) {
+#line 580 "MediaMetadata.c"
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp2_ = (*self).numerator;
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp3_ = (*self).denominator;
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp4_ = g_strdup_printf ("%d/%d", _tmp2_, _tmp3_);
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _g_free0 (_tmp0_);
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = _tmp4_;
+#line 594 "MediaMetadata.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp5_ = g_strdup ("");
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _g_free0 (_tmp0_);
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = _tmp5_;
+#line 603 "MediaMetadata.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 609 "MediaMetadata.c"
+}
+
+
+MetadataRational* metadata_rational_dup (const MetadataRational* self) {
+ MetadataRational* dup;
+#line 20 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ dup = g_new0 (MetadataRational, 1);
+#line 20 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ memcpy (dup, self, sizeof (MetadataRational));
+#line 20 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return dup;
+#line 621 "MediaMetadata.c"
+}
+
+
+void metadata_rational_free (MetadataRational* self) {
+#line 20 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_free (self);
+#line 628 "MediaMetadata.c"
+}
+
+
+GType metadata_rational_get_type (void) {
+ static volatile gsize metadata_rational_type_id__volatile = 0;
+ if (g_once_init_enter (&metadata_rational_type_id__volatile)) {
+ GType metadata_rational_type_id;
+ metadata_rational_type_id = g_boxed_type_register_static ("MetadataRational", (GBoxedCopyFunc) metadata_rational_dup, (GBoxedFreeFunc) metadata_rational_free);
+ g_once_init_leave (&metadata_rational_type_id__volatile, metadata_rational_type_id);
+ }
+ return metadata_rational_type_id__volatile;
+}
+
+
+GQuark metadata_date_time_error_quark (void) {
+ return g_quark_from_static_string ("metadata_date_time_error-quark");
+}
+
+
+MetadataDateTime* metadata_date_time_construct (GType object_type, time_t timestamp) {
+ MetadataDateTime* self = NULL;
+ time_t _tmp0_ = 0;
+#line 51 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self = (MetadataDateTime*) g_type_create_instance (object_type);
+#line 52 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = timestamp;
+#line 52 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self->priv->timestamp = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return self;
+#line 659 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* metadata_date_time_new (time_t timestamp) {
+#line 51 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return metadata_date_time_construct (TYPE_METADATA_DATE_TIME, timestamp);
+#line 666 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* metadata_date_time_construct_from_exif (GType object_type, const gchar* label, GError** error) {
+ MetadataDateTime* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (label != NULL, NULL);
+#line 55 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self = (MetadataDateTime*) g_type_create_instance (object_type);
+#line 56 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = label;
+#line 56 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp2_ = metadata_date_time_from_exif_date_time (_tmp0_, &_tmp1_);
+#line 56 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self->priv->timestamp = _tmp1_;
+#line 56 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (!_tmp2_) {
+#line 688 "MediaMetadata.c"
+ const gchar* _tmp3_ = NULL;
+ GError* _tmp4_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp3_ = label;
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp4_ = g_error_new (METADATA_DATE_TIME_ERROR, METADATA_DATE_TIME_ERROR_INVALID_FORMAT, "%s is not EXIF format date/time", _tmp3_);
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _inner_error_ = _tmp4_;
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_inner_error_->domain == METADATA_DATE_TIME_ERROR) {
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _metadata_date_time_unref0 (self);
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 705 "MediaMetadata.c"
+ } else {
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 57 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 713 "MediaMetadata.c"
+ }
+ }
+#line 55 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return self;
+#line 718 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* metadata_date_time_new_from_exif (const gchar* label, GError** error) {
+#line 55 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return metadata_date_time_construct_from_exif (TYPE_METADATA_DATE_TIME, label, error);
+#line 725 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* metadata_date_time_construct_from_iptc (GType object_type, const gchar* date, const gchar* time, GError** error) {
+ MetadataDateTime* self = NULL;
+ GError* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (date != NULL, NULL);
+#line 60 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (time != NULL, NULL);
+#line 60 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self = (MetadataDateTime*) g_type_create_instance (object_type);
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = g_error_new_literal (METADATA_DATE_TIME_ERROR, METADATA_DATE_TIME_ERROR_UNSUPPORTED_FORMAT, "IPTC date/time format not currently supported");
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _inner_error_ = _tmp0_;
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_inner_error_->domain == METADATA_DATE_TIME_ERROR) {
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _metadata_date_time_unref0 (self);
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 751 "MediaMetadata.c"
+ } else {
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 62 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 759 "MediaMetadata.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return self;
+#line 763 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* metadata_date_time_new_from_iptc (const gchar* date, const gchar* time, GError** error) {
+#line 60 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return metadata_date_time_construct_from_iptc (TYPE_METADATA_DATE_TIME, date, time, error);
+#line 770 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* metadata_date_time_construct_from_xmp (GType object_type, const gchar* label, GError** error) {
+ MetadataDateTime* self = NULL;
+ GTimeVal time_val = {0};
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GTimeVal _tmp4_ = {0};
+ glong _tmp5_ = 0L;
+ GError * _inner_error_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (label != NULL, NULL);
+#line 65 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self = (MetadataDateTime*) g_type_create_instance (object_type);
+#line 66 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_get_current_time (&time_val);
+#line 67 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = label;
+#line 67 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = g_time_val_from_iso8601 (_tmp0_, &time_val);
+#line 67 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (!_tmp1_) {
+#line 794 "MediaMetadata.c"
+ const gchar* _tmp2_ = NULL;
+ GError* _tmp3_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp2_ = label;
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp3_ = g_error_new (METADATA_DATE_TIME_ERROR, METADATA_DATE_TIME_ERROR_INVALID_FORMAT, "%s is not XMP format date/time", _tmp2_);
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _inner_error_ = _tmp3_;
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_inner_error_->domain == METADATA_DATE_TIME_ERROR) {
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _metadata_date_time_unref0 (self);
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 811 "MediaMetadata.c"
+ } else {
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 68 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 819 "MediaMetadata.c"
+ }
+ }
+#line 70 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp4_ = time_val;
+#line 70 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp5_ = _tmp4_.tv_sec;
+#line 70 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self->priv->timestamp = (time_t) _tmp5_;
+#line 65 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return self;
+#line 830 "MediaMetadata.c"
+}
+
+
+MetadataDateTime* metadata_date_time_new_from_xmp (const gchar* label, GError** error) {
+#line 65 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return metadata_date_time_construct_from_xmp (TYPE_METADATA_DATE_TIME, label, error);
+#line 837 "MediaMetadata.c"
+}
+
+
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self) {
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+#line 73 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (IS_METADATA_DATE_TIME (self), 0);
+#line 74 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = self->priv->timestamp;
+#line 74 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp0_;
+#line 74 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 852 "MediaMetadata.c"
+}
+
+
+gchar* metadata_date_time_get_exif_label (MetadataDateTime* self) {
+ gchar* result = NULL;
+ time_t _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (IS_METADATA_DATE_TIME (self), NULL);
+#line 78 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = self->priv->timestamp;
+#line 78 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = metadata_date_time_to_exif_date_time (_tmp0_);
+#line 78 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp1_;
+#line 78 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 870 "MediaMetadata.c"
+}
+
+
+gchar* metadata_date_time_get_xmp_label (MetadataDateTime* self) {
+ gchar* result = NULL;
+ GTimeVal time_val = {0};
+ time_t _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (IS_METADATA_DATE_TIME (self), NULL);
+#line 84 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_get_current_time (&time_val);
+#line 85 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = self->priv->timestamp;
+#line 85 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ time_val.tv_sec = (glong) _tmp0_;
+#line 86 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ time_val.tv_usec = (glong) 0;
+#line 88 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = g_time_val_to_iso8601 (&time_val);
+#line 88 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp1_;
+#line 88 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 895 "MediaMetadata.c"
+}
+
+
+gboolean metadata_date_time_from_exif_date_time (const gchar* date_time, time_t* timestamp) {
+ time_t _vala_timestamp = 0;
+ gboolean result = FALSE;
+ struct tm tm = {0};
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ struct tm _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ time_t _tmp26_ = 0;
+#line 91 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (date_time != NULL, FALSE);
+#line 92 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _vala_timestamp = (time_t) 0;
+#line 94 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ memset (&tm, 0, sizeof (struct tm));
+#line 97 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = date_time;
+#line 97 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = sscanf (_tmp0_, "%d:%d:%d %d:%d:%d", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec);
+#line 97 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp1_ != 6) {
+#line 927 "MediaMetadata.c"
+ gchar* tmp = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 100 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp2_ = date_time;
+#line 100 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 100 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ tmp = _tmp3_;
+#line 101 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp4_ = tmp;
+#line 101 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_strcanon (_tmp4_, "0123456789", ' ');
+#line 102 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp5_ = tmp;
+#line 102 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp6_ = sscanf (_tmp5_, "%4d%2d%2d%2d%2d%2d", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec);
+#line 102 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp6_ != 6) {
+#line 104 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = FALSE;
+#line 104 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _g_free0 (tmp);
+#line 104 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (timestamp) {
+#line 104 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *timestamp = _vala_timestamp;
+#line 958 "MediaMetadata.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 962 "MediaMetadata.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _g_free0 (tmp);
+#line 966 "MediaMetadata.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp12_ = tm;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp13_ = _tmp12_.tm_year;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp13_ <= 1900) {
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp11_ = TRUE;
+#line 976 "MediaMetadata.c"
+ } else {
+ struct tm _tmp14_ = {0};
+ gint _tmp15_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp14_ = tm;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp15_ = _tmp14_.tm_mon;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp11_ = _tmp15_ <= 0;
+#line 986 "MediaMetadata.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp11_) {
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp10_ = TRUE;
+#line 992 "MediaMetadata.c"
+ } else {
+ struct tm _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp16_ = tm;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp17_ = _tmp16_.tm_mday;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp10_ = _tmp17_ < 0;
+#line 1002 "MediaMetadata.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp10_) {
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp9_ = TRUE;
+#line 1008 "MediaMetadata.c"
+ } else {
+ struct tm _tmp18_ = {0};
+ gint _tmp19_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp18_ = tm;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp19_ = _tmp18_.tm_hour;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp9_ = _tmp19_ < 0;
+#line 1018 "MediaMetadata.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp9_) {
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp8_ = TRUE;
+#line 1024 "MediaMetadata.c"
+ } else {
+ struct tm _tmp20_ = {0};
+ gint _tmp21_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp20_ = tm;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp21_ = _tmp20_.tm_min;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp8_ = _tmp21_ < 0;
+#line 1034 "MediaMetadata.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp8_) {
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp7_ = TRUE;
+#line 1040 "MediaMetadata.c"
+ } else {
+ struct tm _tmp22_ = {0};
+ gint _tmp23_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp22_ = tm;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp23_ = _tmp22_.tm_sec;
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp7_ = _tmp23_ < 0;
+#line 1050 "MediaMetadata.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (_tmp7_) {
+#line 109 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = FALSE;
+#line 109 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (timestamp) {
+#line 109 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *timestamp = _vala_timestamp;
+#line 1060 "MediaMetadata.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 1064 "MediaMetadata.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp24_ = tm.tm_year;
+#line 111 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ tm.tm_year = _tmp24_ - 1900;
+#line 112 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp25_ = tm.tm_mon;
+#line 112 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ tm.tm_mon = _tmp25_ - 1;
+#line 113 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ tm.tm_isdst = -1;
+#line 115 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp26_ = mktime (&tm);
+#line 115 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _vala_timestamp = _tmp26_;
+#line 117 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = TRUE;
+#line 117 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (timestamp) {
+#line 117 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *timestamp = _vala_timestamp;
+#line 1086 "MediaMetadata.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 1090 "MediaMetadata.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 1105 "MediaMetadata.c"
+}
+
+
+static gchar* g_time_format (struct tm *self, const gchar* format) {
+ gchar* result = NULL;
+ gchar* buffer = NULL;
+ gchar* _tmp0_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+#line 2709 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (format != NULL, NULL);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 64);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = _tmp0_;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer_length1 = 64;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _buffer_size_ = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = buffer;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = format;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ strftime (_tmp1_, _tmp1__length1, _tmp2_, &(*self));
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = buffer;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = buffer_length1;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_strdup ((const gchar*) _tmp3_);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = (g_free (buffer), NULL);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1151 "MediaMetadata.c"
+}
+
+
+gchar* metadata_date_time_to_exif_date_time (time_t timestamp) {
+ gchar* result = NULL;
+ time_t _tmp0_ = 0;
+ struct tm _tmp1_ = {0};
+ gchar* _tmp2_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = timestamp;
+#line 121 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_time_local (_tmp0_, &_tmp1_);
+#line 121 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp2_ = g_time_format (&_tmp1_, "%Y:%m:%d %H:%M:%S");
+#line 121 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp2_;
+#line 121 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 1170 "MediaMetadata.c"
+}
+
+
+gchar* metadata_date_time_to_string (MetadataDateTime* self) {
+ gchar* result = NULL;
+ time_t _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (IS_METADATA_DATE_TIME (self), NULL);
+#line 125 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp0_ = self->priv->timestamp;
+#line 125 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ _tmp1_ = metadata_date_time_to_exif_date_time (_tmp0_);
+#line 125 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ result = _tmp1_;
+#line 125 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return result;
+#line 1188 "MediaMetadata.c"
+}
+
+
+static void value_metadata_date_time_init (GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1195 "MediaMetadata.c"
+}
+
+
+static void value_metadata_date_time_free_value (GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ metadata_date_time_unref (value->data[0].v_pointer);
+#line 1204 "MediaMetadata.c"
+ }
+}
+
+
+static void value_metadata_date_time_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ dest_value->data[0].v_pointer = metadata_date_time_ref (src_value->data[0].v_pointer);
+#line 1214 "MediaMetadata.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1218 "MediaMetadata.c"
+ }
+}
+
+
+static gpointer value_metadata_date_time_peek_pointer (const GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return value->data[0].v_pointer;
+#line 1226 "MediaMetadata.c"
+}
+
+
+static gchar* value_metadata_date_time_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 1233 "MediaMetadata.c"
+ MetadataDateTime* object;
+ object = collect_values[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1240 "MediaMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1244 "MediaMetadata.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = metadata_date_time_ref (object);
+#line 1248 "MediaMetadata.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1252 "MediaMetadata.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 1256 "MediaMetadata.c"
+}
+
+
+static gchar* value_metadata_date_time_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ MetadataDateTime** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (!object_p) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1267 "MediaMetadata.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *object_p = NULL;
+#line 1273 "MediaMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1277 "MediaMetadata.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ *object_p = metadata_date_time_ref (value->data[0].v_pointer);
+#line 1281 "MediaMetadata.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return NULL;
+#line 1285 "MediaMetadata.c"
+}
+
+
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecMetadataDateTime* spec;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_METADATA_DATE_TIME), NULL);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 1299 "MediaMetadata.c"
+}
+
+
+gpointer value_get_metadata_date_time (const GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_METADATA_DATE_TIME), NULL);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return value->data[0].v_pointer;
+#line 1308 "MediaMetadata.c"
+}
+
+
+void value_set_metadata_date_time (GValue* value, gpointer v_object) {
+ MetadataDateTime* old;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_METADATA_DATE_TIME));
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (v_object) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_METADATA_DATE_TIME));
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ metadata_date_time_ref (value->data[0].v_pointer);
+#line 1328 "MediaMetadata.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1332 "MediaMetadata.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (old) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ metadata_date_time_unref (old);
+#line 1338 "MediaMetadata.c"
+ }
+}
+
+
+void value_take_metadata_date_time (GValue* value, gpointer v_object) {
+ MetadataDateTime* old;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_METADATA_DATE_TIME));
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (v_object) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_METADATA_DATE_TIME));
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 1357 "MediaMetadata.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1361 "MediaMetadata.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (old) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ metadata_date_time_unref (old);
+#line 1367 "MediaMetadata.c"
+ }
+}
+
+
+static void metadata_date_time_class_init (MetadataDateTimeClass * klass) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ metadata_date_time_parent_class = g_type_class_peek_parent (klass);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ ((MetadataDateTimeClass *) klass)->finalize = metadata_date_time_finalize;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_type_class_add_private (klass, sizeof (MetadataDateTimePrivate));
+#line 1379 "MediaMetadata.c"
+}
+
+
+static void metadata_date_time_instance_init (MetadataDateTime * self) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self->priv = METADATA_DATE_TIME_GET_PRIVATE (self);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self->ref_count = 1;
+#line 1388 "MediaMetadata.c"
+}
+
+
+static void metadata_date_time_finalize (MetadataDateTime* obj) {
+ MetadataDateTime * self;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_METADATA_DATE_TIME, MetadataDateTime);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 1398 "MediaMetadata.c"
+}
+
+
+GType metadata_date_time_get_type (void) {
+ static volatile gsize metadata_date_time_type_id__volatile = 0;
+ if (g_once_init_enter (&metadata_date_time_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_metadata_date_time_init, value_metadata_date_time_free_value, value_metadata_date_time_copy_value, value_metadata_date_time_peek_pointer, "p", value_metadata_date_time_collect_value, "p", value_metadata_date_time_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (MetadataDateTimeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) metadata_date_time_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MetadataDateTime), 0, (GInstanceInitFunc) metadata_date_time_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType metadata_date_time_type_id;
+ metadata_date_time_type_id = g_type_register_fundamental (g_type_fundamental_next (), "MetadataDateTime", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&metadata_date_time_type_id__volatile, metadata_date_time_type_id);
+ }
+ return metadata_date_time_type_id__volatile;
+}
+
+
+gpointer metadata_date_time_ref (gpointer instance) {
+ MetadataDateTime* self;
+ self = instance;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ return instance;
+#line 1423 "MediaMetadata.c"
+}
+
+
+void metadata_date_time_unref (gpointer instance) {
+ MetadataDateTime* self;
+ self = instance;
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ METADATA_DATE_TIME_GET_CLASS (self)->finalize (self);
+#line 47 "/home/jens/Source/shotwell/src/MediaMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1436 "MediaMetadata.c"
+ }
+}
+
+
+
diff --git a/src/MediaMonitor.c b/src/MediaMonitor.c
new file mode 100644
index 0000000..0a2b28d
--- /dev/null
+++ b/src/MediaMonitor.c
@@ -0,0 +1,3180 @@
+/* MediaMonitor.c generated by valac 0.32.1, the Vala compiler
+ * generated from MediaMonitor.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_MONITORABLE_UPDATES (monitorable_updates_get_type ())
+#define MONITORABLE_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE_UPDATES, MonitorableUpdates))
+#define MONITORABLE_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MONITORABLE_UPDATES, MonitorableUpdatesClass))
+#define IS_MONITORABLE_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE_UPDATES))
+#define IS_MONITORABLE_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MONITORABLE_UPDATES))
+#define MONITORABLE_UPDATES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MONITORABLE_UPDATES, MonitorableUpdatesClass))
+
+typedef struct _MonitorableUpdates MonitorableUpdates;
+typedef struct _MonitorableUpdatesClass MonitorableUpdatesClass;
+typedef struct _MonitorableUpdatesPrivate MonitorableUpdatesPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecMonitorableUpdates ParamSpecMonitorableUpdates;
+
+#define TYPE_MEDIA_MONITOR (media_monitor_get_type ())
+#define MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_MONITOR, MediaMonitor))
+#define MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+#define IS_MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_MONITOR))
+#define IS_MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_MONITOR))
+#define MEDIA_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+
+typedef struct _MediaMonitor MediaMonitor;
+typedef struct _MediaMonitorClass MediaMonitorClass;
+typedef struct _MediaMonitorPrivate MediaMonitorPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define MEDIA_MONITOR_TYPE_DISCOVERED_FILE (media_monitor_discovered_file_get_type ())
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _monitorable_updates_unref0(var) ((var == NULL) ? NULL : (var = (monitorable_updates_unref (var), NULL)))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _transaction_controller_unref0(var) ((var == NULL) ? NULL : (var = (transaction_controller_unref (var), NULL)))
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _MonitorableUpdates {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MonitorableUpdatesPrivate * priv;
+ Monitorable* monitorable;
+};
+
+struct _MonitorableUpdatesClass {
+ GTypeClass parent_class;
+ void (*finalize) (MonitorableUpdates *self);
+ gboolean (*is_in_alteration) (MonitorableUpdates* self);
+ void (*set_master_file) (MonitorableUpdates* self, GFile* file);
+ void (*set_master_file_info_altered) (MonitorableUpdates* self, gboolean altered);
+ void (*set_master_file_info) (MonitorableUpdates* self, GFileInfo* info);
+ void (*set_master_in_alteration) (MonitorableUpdates* self, gboolean in_alteration);
+ void (*set_master_alterations_complete) (MonitorableUpdates* self, GFileInfo* info);
+ void (*mark_offline) (MonitorableUpdates* self);
+ void (*mark_online) (MonitorableUpdates* self);
+ void (*reset_online_offline) (MonitorableUpdates* self);
+ gboolean (*is_all_updated) (MonitorableUpdates* self);
+};
+
+struct _MonitorableUpdatesPrivate {
+ GFile* master_file;
+ gboolean master_file_info_altered;
+ GFileInfo* master_file_info;
+ gboolean master_in_alteration;
+ gboolean online;
+ gboolean offline;
+};
+
+struct _ParamSpecMonitorableUpdates {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED,
+ MEDIA_MONITOR_DISCOVERED_FILE_IGNORE,
+ MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN
+} MediaMonitorDiscoveredFile;
+
+struct _MediaMonitor {
+ GObject parent_instance;
+ MediaMonitorPrivate * priv;
+};
+
+struct _MediaMonitorClass {
+ GObjectClass parent_class;
+ MediaSourceCollection* (*get_media_source_collection) (MediaMonitor* self);
+ void (*close) (MediaMonitor* self);
+ gchar* (*to_string) (MediaMonitor* self);
+ MonitorableUpdates* (*create_updates) (MediaMonitor* self, Monitorable* monitorable);
+ void (*on_media_source_destroyed) (MediaMonitor* self, DataSource* source);
+ void (*notify_discovery_started) (MediaMonitor* self);
+ MediaMonitorDiscoveredFile (*notify_file_discovered) (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable);
+ GeeCollection* (*candidates_for_unknown_file) (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+ GFile** (*get_auxilliary_backing_files) (MediaMonitor* self, Monitorable* monitorable, int* result_length1);
+ void (*update_backing_file_info) (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info);
+ void (*notify_discovery_completing) (MediaMonitor* self);
+ gboolean (*is_file_represented) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_created) (MediaMonitor* self, GFile* file, GFileInfo* info);
+ gboolean (*notify_file_moved) (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+ gboolean (*notify_file_altered) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_attributes_altered) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_alteration_completed) (MediaMonitor* self, GFile* file, GFileInfo* info);
+ gboolean (*notify_file_deleted) (MediaMonitor* self, GFile* file);
+ void (*process_updates) (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+};
+
+struct _MediaMonitorPrivate {
+ MediaSourceCollection* sources;
+ GCancellable* cancellable;
+ GeeHashMap* pending_updates;
+ guint pending_updates_timer_id;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+
+static gpointer monitorable_updates_parent_class = NULL;
+static gpointer media_monitor_parent_class = NULL;
+
+gpointer monitorable_updates_ref (gpointer instance);
+void monitorable_updates_unref (gpointer instance);
+GParamSpec* param_spec_monitorable_updates (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_monitorable_updates (GValue* value, gpointer v_object);
+void value_take_monitorable_updates (GValue* value, gpointer v_object);
+gpointer value_get_monitorable_updates (const GValue* value);
+GType monitorable_updates_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType monitorable_get_type (void) G_GNUC_CONST;
+#define MONITORABLE_UPDATES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MONITORABLE_UPDATES, MonitorableUpdatesPrivate))
+enum {
+ MONITORABLE_UPDATES_DUMMY_PROPERTY
+};
+MonitorableUpdates* monitorable_updates_new (Monitorable* monitorable);
+MonitorableUpdates* monitorable_updates_construct (GType object_type, Monitorable* monitorable);
+GFile* monitorable_updates_get_master_file (MonitorableUpdates* self);
+GFileInfo* monitorable_updates_get_master_file_info (MonitorableUpdates* self);
+gboolean monitorable_updates_is_in_alteration (MonitorableUpdates* self);
+static gboolean monitorable_updates_real_is_in_alteration (MonitorableUpdates* self);
+gboolean monitorable_updates_is_set_offline (MonitorableUpdates* self);
+gboolean monitorable_updates_is_set_online (MonitorableUpdates* self);
+void monitorable_updates_set_master_file (MonitorableUpdates* self, GFile* file);
+static void monitorable_updates_real_set_master_file (MonitorableUpdates* self, GFile* file);
+void monitorable_updates_mark_online (MonitorableUpdates* self);
+void monitorable_updates_set_master_file_info_altered (MonitorableUpdates* self, gboolean altered);
+static void monitorable_updates_real_set_master_file_info_altered (MonitorableUpdates* self, gboolean altered);
+void monitorable_updates_set_master_file_info (MonitorableUpdates* self, GFileInfo* info);
+static void monitorable_updates_real_set_master_file_info (MonitorableUpdates* self, GFileInfo* info);
+void monitorable_updates_set_master_in_alteration (MonitorableUpdates* self, gboolean in_alteration);
+static void monitorable_updates_real_set_master_in_alteration (MonitorableUpdates* self, gboolean in_alteration);
+void monitorable_updates_set_master_alterations_complete (MonitorableUpdates* self, GFileInfo* info);
+static void monitorable_updates_real_set_master_alterations_complete (MonitorableUpdates* self, GFileInfo* info);
+void monitorable_updates_mark_offline (MonitorableUpdates* self);
+static void monitorable_updates_real_mark_offline (MonitorableUpdates* self);
+static void monitorable_updates_real_mark_online (MonitorableUpdates* self);
+void monitorable_updates_reset_online_offline (MonitorableUpdates* self);
+static void monitorable_updates_real_reset_online_offline (MonitorableUpdates* self);
+gboolean monitorable_updates_is_all_updated (MonitorableUpdates* self);
+static gboolean monitorable_updates_real_is_all_updated (MonitorableUpdates* self);
+static void monitorable_updates_finalize (MonitorableUpdates* obj);
+GType media_monitor_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType media_monitor_discovered_file_get_type (void) G_GNUC_CONST;
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+#define MEDIA_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_MONITOR, MediaMonitorPrivate))
+enum {
+ MEDIA_MONITOR_DUMMY_PROPERTY
+};
+void media_monitor_on_media_source_destroyed (MediaMonitor* self, DataSource* source);
+static void _media_monitor_on_media_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+static void _media_monitor_on_media_source_destroyed_source_collection_unlinked_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+#define MEDIA_MONITOR_MAX_OPERATIONS_PER_CYCLE 100
+#define MEDIA_MONITOR_FLUSH_PENDING_UPDATES_MSEC 500
+MediaMonitor* media_monitor_construct (GType object_type, MediaSourceCollection* sources, GCancellable* cancellable);
+static gboolean media_monitor_on_flush_pending_updates (MediaMonitor* self);
+static gboolean _media_monitor_on_flush_pending_updates_gsource_func (gpointer self);
+MediaSourceCollection* media_monitor_get_media_source_collection (MediaMonitor* self);
+static MediaSourceCollection* media_monitor_real_get_media_source_collection (MediaMonitor* self);
+void media_monitor_close (MediaMonitor* self);
+static void media_monitor_real_close (MediaMonitor* self);
+gchar* media_monitor_to_string (MediaMonitor* self);
+static gchar* media_monitor_real_to_string (MediaMonitor* self);
+gchar* data_collection_to_string (DataCollection* self);
+MonitorableUpdates* media_monitor_create_updates (MediaMonitor* self, Monitorable* monitorable);
+static MonitorableUpdates* media_monitor_real_create_updates (MediaMonitor* self, Monitorable* monitorable);
+static void media_monitor_real_on_media_source_destroyed (MediaMonitor* self, DataSource* source);
+void media_monitor_remove_updates (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_notify_discovery_started (MediaMonitor* self);
+static void media_monitor_real_notify_discovery_started (MediaMonitor* self);
+MediaMonitorDiscoveredFile media_monitor_notify_file_discovered (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable);
+static MediaMonitorDiscoveredFile media_monitor_real_notify_file_discovered (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable);
+GeeCollection* media_monitor_candidates_for_unknown_file (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+static GeeCollection* media_monitor_real_candidates_for_unknown_file (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+GFile** media_monitor_get_auxilliary_backing_files (MediaMonitor* self, Monitorable* monitorable, int* result_length1);
+static GFile** media_monitor_real_get_auxilliary_backing_files (MediaMonitor* self, Monitorable* monitorable, int* result_length1);
+void media_monitor_update_backing_file_info (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info);
+static void media_monitor_real_update_backing_file_info (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info);
+void media_monitor_notify_discovery_completing (MediaMonitor* self);
+static void media_monitor_real_notify_discovery_completing (MediaMonitor* self);
+gboolean media_monitor_is_file_represented (MediaMonitor* self, GFile* file);
+static gboolean media_monitor_real_is_file_represented (MediaMonitor* self, GFile* file);
+gboolean media_monitor_notify_file_created (MediaMonitor* self, GFile* file, GFileInfo* info);
+static gboolean media_monitor_real_notify_file_created (MediaMonitor* self, GFile* file, GFileInfo* info);
+gboolean media_monitor_notify_file_moved (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+static gboolean media_monitor_real_notify_file_moved (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+gboolean media_monitor_notify_file_altered (MediaMonitor* self, GFile* file);
+static gboolean media_monitor_real_notify_file_altered (MediaMonitor* self, GFile* file);
+gboolean media_monitor_notify_file_attributes_altered (MediaMonitor* self, GFile* file);
+static gboolean media_monitor_real_notify_file_attributes_altered (MediaMonitor* self, GFile* file);
+gboolean media_monitor_notify_file_alteration_completed (MediaMonitor* self, GFile* file, GFileInfo* info);
+static gboolean media_monitor_real_notify_file_alteration_completed (MediaMonitor* self, GFile* file, GFileInfo* info);
+gboolean media_monitor_notify_file_deleted (MediaMonitor* self, GFile* file);
+static gboolean media_monitor_real_notify_file_deleted (MediaMonitor* self, GFile* file);
+void media_monitor_mdbg (const gchar* msg);
+gboolean media_monitor_has_pending_updates (MediaMonitor* self);
+GeeCollection* media_monitor_get_monitorables (MediaMonitor* self);
+MonitorableUpdates* media_monitor_fetch_updates (MediaMonitor* self, Monitorable* monitorable);
+MonitorableUpdates* media_monitor_get_existing_updates (MediaMonitor* self, Monitorable* monitorable);
+gboolean media_monitor_is_online (MediaMonitor* self, Monitorable* monitorable);
+gboolean monitorable_is_offline (Monitorable* self);
+gboolean media_monitor_is_offline (MediaMonitor* self, Monitorable* monitorable);
+GFile* media_monitor_get_master_file (MediaMonitor* self, Monitorable* monitorable);
+GFile* media_source_get_master_file (MediaSource* self);
+void media_monitor_update_master_file (MediaMonitor* self, Monitorable* monitorable, GFile* file);
+void media_monitor_update_master_file_info_altered (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_update_master_file_in_alteration (MediaMonitor* self, Monitorable* monitorable, gboolean in_alteration);
+void media_monitor_update_master_file_alterations_completed (MediaMonitor* self, Monitorable* monitorable, GFileInfo* info);
+void media_monitor_update_online (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_update_offline (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_process_updates (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+static void media_monitor_real_process_updates (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+void monitorable_set_many_master_file (GeeMap* map, TransactionController* controller, GError** error);
+void monitorable_set_many_master_timestamp (GeeMap* map, TransactionController* controller, GError** error);
+void monitorable_mark_many_online_offline (GeeCollection* online, GeeCollection* offline, TransactionController* controller, GError** error);
+TransactionController* media_source_collection_get_transaction_controller (MediaSourceCollection* self);
+void transaction_controller_begin (TransactionController* self);
+void transaction_controller_commit (TransactionController* self);
+GQuark database_error_quark (void);
+void app_window_database_error (GError* err);
+void app_window_panic (const gchar* msg);
+static void media_monitor_finalize (GObject* obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 18 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 428 "MediaMonitor.c"
+}
+
+
+MonitorableUpdates* monitorable_updates_construct (GType object_type, Monitorable* monitorable) {
+ MonitorableUpdates* self = NULL;
+ Monitorable* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 17 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self = (MonitorableUpdates*) g_type_create_instance (object_type);
+#line 18 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 18 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 18 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->monitorable);
+#line 18 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->monitorable = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return self;
+#line 450 "MediaMonitor.c"
+}
+
+
+MonitorableUpdates* monitorable_updates_new (Monitorable* monitorable) {
+#line 17 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return monitorable_updates_construct (TYPE_MONITORABLE_UPDATES, monitorable);
+#line 457 "MediaMonitor.c"
+}
+
+
+GFile* monitorable_updates_get_master_file (MonitorableUpdates* self) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE_UPDATES (self), NULL);
+#line 22 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->master_file;
+#line 22 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 22 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp1_;
+#line 22 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 475 "MediaMonitor.c"
+}
+
+
+GFileInfo* monitorable_updates_get_master_file_info (MonitorableUpdates* self) {
+ GFileInfo* result = NULL;
+ GFileInfo* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE_UPDATES (self), NULL);
+#line 26 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->master_file_info;
+#line 26 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 26 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp1_;
+#line 26 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 493 "MediaMonitor.c"
+}
+
+
+static gboolean monitorable_updates_real_is_in_alteration (MonitorableUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 30 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->master_in_alteration;
+#line 30 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp0_;
+#line 30 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 506 "MediaMonitor.c"
+}
+
+
+gboolean monitorable_updates_is_in_alteration (MonitorableUpdates* self) {
+#line 29 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE_UPDATES (self), FALSE);
+#line 29 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MONITORABLE_UPDATES_GET_CLASS (self)->is_in_alteration (self);
+#line 515 "MediaMonitor.c"
+}
+
+
+gboolean monitorable_updates_is_set_offline (MonitorableUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE_UPDATES (self), FALSE);
+#line 34 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->offline;
+#line 34 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp0_;
+#line 34 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 530 "MediaMonitor.c"
+}
+
+
+gboolean monitorable_updates_is_set_online (MonitorableUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 37 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE_UPDATES (self), FALSE);
+#line 38 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->online;
+#line 38 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 545 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_set_master_file (MonitorableUpdates* self, GFile* file) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail ((file == NULL) || G_IS_FILE (file));
+#line 42 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = file;
+#line 42 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 42 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->master_file);
+#line 42 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file = _tmp1_;
+#line 44 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = file;
+#line 44 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp2_ != NULL) {
+#line 45 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_mark_online (self);
+#line 569 "MediaMonitor.c"
+ }
+}
+
+
+void monitorable_updates_set_master_file (MonitorableUpdates* self, GFile* file) {
+#line 41 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 41 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->set_master_file (self, file);
+#line 579 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_set_master_file_info_altered (MonitorableUpdates* self, gboolean altered) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 49 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = altered;
+#line 49 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file_info_altered = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = altered;
+#line 51 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp1_) {
+#line 52 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_mark_online (self);
+#line 596 "MediaMonitor.c"
+ }
+}
+
+
+void monitorable_updates_set_master_file_info_altered (MonitorableUpdates* self, gboolean altered) {
+#line 48 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 48 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->set_master_file_info_altered (self, altered);
+#line 606 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_set_master_file_info (MonitorableUpdates* self, GFileInfo* info) {
+ GFileInfo* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 56 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = info;
+#line 56 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 56 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->master_file_info);
+#line 56 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file_info = _tmp1_;
+#line 58 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = self->priv->master_file_info;
+#line 58 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp2_ == NULL) {
+#line 59 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_file_info_altered (self, FALSE);
+#line 630 "MediaMonitor.c"
+ }
+}
+
+
+void monitorable_updates_set_master_file_info (MonitorableUpdates* self, GFileInfo* info) {
+#line 55 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 55 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->set_master_file_info (self, info);
+#line 640 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_set_master_in_alteration (MonitorableUpdates* self, gboolean in_alteration) {
+ gboolean _tmp0_ = FALSE;
+#line 63 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = in_alteration;
+#line 63 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_in_alteration = _tmp0_;
+#line 650 "MediaMonitor.c"
+}
+
+
+void monitorable_updates_set_master_in_alteration (MonitorableUpdates* self, gboolean in_alteration) {
+#line 62 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 62 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->set_master_in_alteration (self, in_alteration);
+#line 659 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_set_master_alterations_complete (MonitorableUpdates* self, GFileInfo* info) {
+ GFileInfo* _tmp0_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 67 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_in_alteration (self, FALSE);
+#line 68 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = info;
+#line 68 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_file_info (self, _tmp0_);
+#line 69 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_mark_online (self);
+#line 675 "MediaMonitor.c"
+}
+
+
+void monitorable_updates_set_master_alterations_complete (MonitorableUpdates* self, GFileInfo* info) {
+#line 66 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 66 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->set_master_alterations_complete (self, info);
+#line 684 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_mark_offline (MonitorableUpdates* self) {
+#line 73 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->online = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->offline = TRUE;
+#line 76 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file_info_altered = FALSE;
+#line 77 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->master_file_info);
+#line 77 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file_info = NULL;
+#line 78 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_in_alteration = FALSE;
+#line 701 "MediaMonitor.c"
+}
+
+
+void monitorable_updates_mark_offline (MonitorableUpdates* self) {
+#line 72 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 72 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->mark_offline (self);
+#line 710 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_mark_online (MonitorableUpdates* self) {
+#line 82 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->online = TRUE;
+#line 83 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->offline = FALSE;
+#line 719 "MediaMonitor.c"
+}
+
+
+void monitorable_updates_mark_online (MonitorableUpdates* self) {
+#line 81 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 81 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->mark_online (self);
+#line 728 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_real_reset_online_offline (MonitorableUpdates* self) {
+#line 87 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->online = FALSE;
+#line 88 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->offline = FALSE;
+#line 737 "MediaMonitor.c"
+}
+
+
+void monitorable_updates_reset_online_offline (MonitorableUpdates* self) {
+#line 86 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE_UPDATES (self));
+#line 86 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->reset_online_offline (self);
+#line 746 "MediaMonitor.c"
+}
+
+
+static gboolean monitorable_updates_real_is_all_updated (MonitorableUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ GFile* _tmp5_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = self->priv->master_file;
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp5_ == NULL) {
+#line 762 "MediaMonitor.c"
+ gboolean _tmp6_ = FALSE;
+#line 93 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = self->priv->master_file_info_altered;
+#line 93 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = _tmp6_ == FALSE;
+#line 768 "MediaMonitor.c"
+ } else {
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = FALSE;
+#line 772 "MediaMonitor.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp4_) {
+#line 776 "MediaMonitor.c"
+ GFileInfo* _tmp7_ = NULL;
+#line 94 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp7_ = self->priv->master_file_info;
+#line 94 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = _tmp7_ == NULL;
+#line 782 "MediaMonitor.c"
+ } else {
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = FALSE;
+#line 786 "MediaMonitor.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp3_) {
+#line 790 "MediaMonitor.c"
+ gboolean _tmp8_ = FALSE;
+#line 95 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp8_ = self->priv->master_in_alteration;
+#line 95 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp8_ == FALSE;
+#line 796 "MediaMonitor.c"
+ } else {
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = FALSE;
+#line 800 "MediaMonitor.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp2_) {
+#line 804 "MediaMonitor.c"
+ gboolean _tmp9_ = FALSE;
+#line 96 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp9_ = self->priv->online;
+#line 96 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _tmp9_ == FALSE;
+#line 810 "MediaMonitor.c"
+ } else {
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = FALSE;
+#line 814 "MediaMonitor.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp1_) {
+#line 818 "MediaMonitor.c"
+ gboolean _tmp10_ = FALSE;
+#line 97 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp10_ = self->priv->offline;
+#line 97 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = _tmp10_ == FALSE;
+#line 824 "MediaMonitor.c"
+ } else {
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = FALSE;
+#line 828 "MediaMonitor.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp0_;
+#line 92 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 834 "MediaMonitor.c"
+}
+
+
+gboolean monitorable_updates_is_all_updated (MonitorableUpdates* self) {
+#line 91 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE_UPDATES (self), FALSE);
+#line 91 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MONITORABLE_UPDATES_GET_CLASS (self)->is_all_updated (self);
+#line 843 "MediaMonitor.c"
+}
+
+
+static void value_monitorable_updates_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 850 "MediaMonitor.c"
+}
+
+
+static void value_monitorable_updates_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_unref (value->data[0].v_pointer);
+#line 859 "MediaMonitor.c"
+ }
+}
+
+
+static void value_monitorable_updates_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ dest_value->data[0].v_pointer = monitorable_updates_ref (src_value->data[0].v_pointer);
+#line 869 "MediaMonitor.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 873 "MediaMonitor.c"
+ }
+}
+
+
+static gpointer value_monitorable_updates_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return value->data[0].v_pointer;
+#line 881 "MediaMonitor.c"
+}
+
+
+static gchar* value_monitorable_updates_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (collect_values[0].v_pointer) {
+#line 888 "MediaMonitor.c"
+ MonitorableUpdates* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 895 "MediaMonitor.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 899 "MediaMonitor.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ value->data[0].v_pointer = monitorable_updates_ref (object);
+#line 903 "MediaMonitor.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 907 "MediaMonitor.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return NULL;
+#line 911 "MediaMonitor.c"
+}
+
+
+static gchar* value_monitorable_updates_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ MonitorableUpdates** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 922 "MediaMonitor.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *object_p = NULL;
+#line 928 "MediaMonitor.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *object_p = value->data[0].v_pointer;
+#line 932 "MediaMonitor.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *object_p = monitorable_updates_ref (value->data[0].v_pointer);
+#line 936 "MediaMonitor.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return NULL;
+#line 940 "MediaMonitor.c"
+}
+
+
+GParamSpec* param_spec_monitorable_updates (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecMonitorableUpdates* spec;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_MONITORABLE_UPDATES), NULL);
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return G_PARAM_SPEC (spec);
+#line 954 "MediaMonitor.c"
+}
+
+
+gpointer value_get_monitorable_updates (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MONITORABLE_UPDATES), NULL);
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return value->data[0].v_pointer;
+#line 963 "MediaMonitor.c"
+}
+
+
+void value_set_monitorable_updates (GValue* value, gpointer v_object) {
+ MonitorableUpdates* old;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MONITORABLE_UPDATES));
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MONITORABLE_UPDATES));
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_ref (value->data[0].v_pointer);
+#line 983 "MediaMonitor.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 987 "MediaMonitor.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_unref (old);
+#line 993 "MediaMonitor.c"
+ }
+}
+
+
+void value_take_monitorable_updates (GValue* value, gpointer v_object) {
+ MonitorableUpdates* old;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_MONITORABLE_UPDATES));
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_MONITORABLE_UPDATES));
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ value->data[0].v_pointer = v_object;
+#line 1012 "MediaMonitor.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ value->data[0].v_pointer = NULL;
+#line 1016 "MediaMonitor.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_unref (old);
+#line 1022 "MediaMonitor.c"
+ }
+}
+
+
+static void monitorable_updates_class_init (MonitorableUpdatesClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->finalize = monitorable_updates_finalize;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_type_class_add_private (klass, sizeof (MonitorableUpdatesPrivate));
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->is_in_alteration = monitorable_updates_real_is_in_alteration;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->set_master_file = monitorable_updates_real_set_master_file;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->set_master_file_info_altered = monitorable_updates_real_set_master_file_info_altered;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->set_master_file_info = monitorable_updates_real_set_master_file_info;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->set_master_in_alteration = monitorable_updates_real_set_master_in_alteration;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->set_master_alterations_complete = monitorable_updates_real_set_master_alterations_complete;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->mark_offline = monitorable_updates_real_mark_offline;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->mark_online = monitorable_updates_real_mark_online;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->reset_online_offline = monitorable_updates_real_reset_online_offline;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->is_all_updated = monitorable_updates_real_is_all_updated;
+#line 1054 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_instance_init (MonitorableUpdates * self) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv = MONITORABLE_UPDATES_GET_PRIVATE (self);
+#line 10 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file = NULL;
+#line 11 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file_info_altered = FALSE;
+#line 12 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_file_info = NULL;
+#line 13 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->master_in_alteration = FALSE;
+#line 14 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->online = FALSE;
+#line 15 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->offline = FALSE;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->ref_count = 1;
+#line 1075 "MediaMonitor.c"
+}
+
+
+static void monitorable_updates_finalize (MonitorableUpdates* obj) {
+ MonitorableUpdates * self;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MONITORABLE_UPDATES, MonitorableUpdates);
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_signal_handlers_destroy (self);
+#line 8 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->monitorable);
+#line 10 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->master_file);
+#line 12 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->master_file_info);
+#line 1091 "MediaMonitor.c"
+}
+
+
+GType monitorable_updates_get_type (void) {
+ static volatile gsize monitorable_updates_type_id__volatile = 0;
+ if (g_once_init_enter (&monitorable_updates_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_monitorable_updates_init, value_monitorable_updates_free_value, value_monitorable_updates_copy_value, value_monitorable_updates_peek_pointer, "p", value_monitorable_updates_collect_value, "p", value_monitorable_updates_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (MonitorableUpdatesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) monitorable_updates_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MonitorableUpdates), 0, (GInstanceInitFunc) monitorable_updates_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType monitorable_updates_type_id;
+ monitorable_updates_type_id = g_type_register_fundamental (g_type_fundamental_next (), "MonitorableUpdates", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&monitorable_updates_type_id__volatile, monitorable_updates_type_id);
+ }
+ return monitorable_updates_type_id__volatile;
+}
+
+
+gpointer monitorable_updates_ref (gpointer instance) {
+ MonitorableUpdates* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return instance;
+#line 1116 "MediaMonitor.c"
+}
+
+
+void monitorable_updates_unref (gpointer instance) {
+ MonitorableUpdates* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MONITORABLE_UPDATES_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1129 "MediaMonitor.c"
+ }
+}
+
+
+static void _media_monitor_on_media_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 130 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_on_media_source_destroyed ((MediaMonitor*) self, source);
+#line 1137 "MediaMonitor.c"
+}
+
+
+static void _media_monitor_on_media_source_destroyed_source_collection_unlinked_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 131 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_on_media_source_destroyed ((MediaMonitor*) self, source);
+#line 1144 "MediaMonitor.c"
+}
+
+
+GType media_monitor_discovered_file_get_type (void) {
+ static volatile gsize media_monitor_discovered_file_type_id__volatile = 0;
+ if (g_once_init_enter (&media_monitor_discovered_file_type_id__volatile)) {
+ static const GEnumValue values[] = {{MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED, "MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED", "represented"}, {MEDIA_MONITOR_DISCOVERED_FILE_IGNORE, "MEDIA_MONITOR_DISCOVERED_FILE_IGNORE", "ignore"}, {MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN, "MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN", "unknown"}, {0, NULL, NULL}};
+ GType media_monitor_discovered_file_type_id;
+ media_monitor_discovered_file_type_id = g_enum_register_static ("MediaMonitorDiscoveredFile", values);
+ g_once_init_leave (&media_monitor_discovered_file_type_id__volatile, media_monitor_discovered_file_type_id);
+ }
+ return media_monitor_discovered_file_type_id__volatile;
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 119 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 1163 "MediaMonitor.c"
+}
+
+
+static gboolean _media_monitor_on_flush_pending_updates_gsource_func (gpointer self) {
+ gboolean result;
+ result = media_monitor_on_flush_pending_updates ((MediaMonitor*) self);
+#line 125 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1172 "MediaMonitor.c"
+}
+
+
+MediaMonitor* media_monitor_construct (GType object_type, MediaSourceCollection* sources, GCancellable* cancellable) {
+ MediaMonitor * self = NULL;
+ MediaSourceCollection* _tmp0_ = NULL;
+ MediaSourceCollection* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ MediaSourceCollection* _tmp4_ = NULL;
+ MediaSourceCollection* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+#line 118 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_COLLECTION (sources), NULL);
+#line 118 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 118 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self = (MediaMonitor*) g_object_new (object_type, NULL);
+#line 119 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = sources;
+#line 119 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 119 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 119 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->sources = _tmp1_;
+#line 120 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = cancellable;
+#line 120 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 120 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 120 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->cancellable = _tmp3_;
+#line 122 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = sources;
+#line 122 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _media_monitor_on_media_source_destroyed_source_collection_item_destroyed, self, 0);
+#line 123 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = sources;
+#line 123 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_SOURCE_COLLECTION, SourceCollection), "unlinked-destroyed", (GCallback) _media_monitor_on_media_source_destroyed_source_collection_unlinked_destroyed, self, 0);
+#line 125 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = g_timeout_add_full (G_PRIORITY_LOW, (guint) MEDIA_MONITOR_FLUSH_PENDING_UPDATES_MSEC, _media_monitor_on_flush_pending_updates_gsource_func, g_object_ref (self), g_object_unref);
+#line 125 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->pending_updates_timer_id = _tmp6_;
+#line 118 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return self;
+#line 1221 "MediaMonitor.c"
+}
+
+
+static MediaSourceCollection* media_monitor_real_get_media_source_collection (MediaMonitor* self) {
+#line 134 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_get_media_source_collection'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 134 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return NULL;
+#line 1230 "MediaMonitor.c"
+}
+
+
+MediaSourceCollection* media_monitor_get_media_source_collection (MediaMonitor* self) {
+#line 134 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 134 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->get_media_source_collection (self);
+#line 1239 "MediaMonitor.c"
+}
+
+
+static void media_monitor_real_close (MediaMonitor* self) {
+}
+
+
+void media_monitor_close (MediaMonitor* self) {
+#line 136 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 136 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MEDIA_MONITOR_GET_CLASS (self)->close (self);
+#line 1252 "MediaMonitor.c"
+}
+
+
+static gchar* media_monitor_real_to_string (MediaMonitor* self) {
+ gchar* result = NULL;
+ MediaSourceCollection* _tmp0_ = NULL;
+ MediaSourceCollection* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = media_monitor_get_media_source_collection (self);
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = _tmp0_;
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = data_collection_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = g_strdup_printf ("MediaMonitor for %s", _tmp3_);
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp3_);
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp5_;
+#line 140 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1284 "MediaMonitor.c"
+}
+
+
+gchar* media_monitor_to_string (MediaMonitor* self) {
+#line 139 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 139 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->to_string (self);
+#line 1293 "MediaMonitor.c"
+}
+
+
+static MonitorableUpdates* media_monitor_real_create_updates (MediaMonitor* self, Monitorable* monitorable) {
+ MonitorableUpdates* result = NULL;
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 144 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 144 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = monitorable_updates_new (_tmp0_);
+#line 144 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp1_;
+#line 144 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1311 "MediaMonitor.c"
+}
+
+
+MonitorableUpdates* media_monitor_create_updates (MediaMonitor* self, Monitorable* monitorable) {
+#line 143 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 143 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->create_updates (self, monitorable);
+#line 1320 "MediaMonitor.c"
+}
+
+
+static void media_monitor_real_on_media_source_destroyed (MediaMonitor* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 148 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = source;
+#line 148 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_remove_updates (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MONITORABLE, Monitorable));
+#line 1332 "MediaMonitor.c"
+}
+
+
+void media_monitor_on_media_source_destroyed (MediaMonitor* self, DataSource* source) {
+#line 147 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 147 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MEDIA_MONITOR_GET_CLASS (self)->on_media_source_destroyed (self, source);
+#line 1341 "MediaMonitor.c"
+}
+
+
+static void media_monitor_real_notify_discovery_started (MediaMonitor* self) {
+}
+
+
+void media_monitor_notify_discovery_started (MediaMonitor* self) {
+#line 155 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 155 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MEDIA_MONITOR_GET_CLASS (self)->notify_discovery_started (self);
+#line 1354 "MediaMonitor.c"
+}
+
+
+static MediaMonitorDiscoveredFile media_monitor_real_notify_file_discovered (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable) {
+#line 160 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_notify_file_discovered'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 160 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return 0;
+#line 1363 "MediaMonitor.c"
+}
+
+
+MediaMonitorDiscoveredFile media_monitor_notify_file_discovered (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable) {
+#line 160 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), 0);
+#line 160 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->notify_file_discovered (self, file, info, monitorable);
+#line 1372 "MediaMonitor.c"
+}
+
+
+static GeeCollection* media_monitor_real_candidates_for_unknown_file (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_) {
+#line 169 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_candidates_for_unknown_file'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 169 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return NULL;
+#line 1381 "MediaMonitor.c"
+}
+
+
+GeeCollection* media_monitor_candidates_for_unknown_file (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_) {
+#line 169 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 169 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->candidates_for_unknown_file (self, file, info, _result_);
+#line 1390 "MediaMonitor.c"
+}
+
+
+static GFile** media_monitor_real_get_auxilliary_backing_files (MediaMonitor* self, Monitorable* monitorable, int* result_length1) {
+ GFile** result = NULL;
+ GFile** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 172 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 173 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0__length1 = 0;
+#line 173 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (result_length1) {
+#line 173 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *result_length1 = _tmp0__length1;
+#line 1408 "MediaMonitor.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp0_;
+#line 173 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1414 "MediaMonitor.c"
+}
+
+
+GFile** media_monitor_get_auxilliary_backing_files (MediaMonitor* self, Monitorable* monitorable, int* result_length1) {
+#line 172 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 172 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->get_auxilliary_backing_files (self, monitorable, result_length1);
+#line 1423 "MediaMonitor.c"
+}
+
+
+static void media_monitor_real_update_backing_file_info (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info) {
+#line 178 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 178 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 178 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 1434 "MediaMonitor.c"
+}
+
+
+void media_monitor_update_backing_file_info (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info) {
+#line 178 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 178 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MEDIA_MONITOR_GET_CLASS (self)->update_backing_file_info (self, monitorable, file, info);
+#line 1443 "MediaMonitor.c"
+}
+
+
+static void media_monitor_real_notify_discovery_completing (MediaMonitor* self) {
+}
+
+
+void media_monitor_notify_discovery_completing (MediaMonitor* self) {
+#line 182 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 182 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MEDIA_MONITOR_GET_CLASS (self)->notify_discovery_completing (self);
+#line 1456 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_real_is_file_represented (MediaMonitor* self, GFile* file) {
+#line 189 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_is_file_represented'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 189 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 1465 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_is_file_represented (MediaMonitor* self, GFile* file) {
+#line 189 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 189 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->is_file_represented (self, file);
+#line 1474 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_real_notify_file_created (MediaMonitor* self, GFile* file, GFileInfo* info) {
+#line 191 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_notify_file_created'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 191 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 1483 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_notify_file_created (MediaMonitor* self, GFile* file, GFileInfo* info) {
+#line 191 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 191 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->notify_file_created (self, file, info);
+#line 1492 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_real_notify_file_moved (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
+#line 193 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_notify_file_moved'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 193 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 1501 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_notify_file_moved (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
+#line 193 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 193 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->notify_file_moved (self, old_file, new_file, new_file_info);
+#line 1510 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_real_notify_file_altered (MediaMonitor* self, GFile* file) {
+#line 195 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_notify_file_altered'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 195 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 1519 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_notify_file_altered (MediaMonitor* self, GFile* file) {
+#line 195 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 195 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->notify_file_altered (self, file);
+#line 1528 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_real_notify_file_attributes_altered (MediaMonitor* self, GFile* file) {
+#line 197 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_notify_file_attributes_altered'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 197 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 1537 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_notify_file_attributes_altered (MediaMonitor* self, GFile* file) {
+#line 197 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 197 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->notify_file_attributes_altered (self, file);
+#line 1546 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_real_notify_file_alteration_completed (MediaMonitor* self, GFile* file, GFileInfo* info) {
+#line 199 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_notify_file_alteration_completed'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 199 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 1555 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_notify_file_alteration_completed (MediaMonitor* self, GFile* file, GFileInfo* info) {
+#line 199 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 199 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->notify_file_alteration_completed (self, file, info);
+#line 1564 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_real_notify_file_deleted (MediaMonitor* self, GFile* file) {
+#line 201 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_monitor_notify_file_deleted'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 201 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 1573 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_notify_file_deleted (MediaMonitor* self, GFile* file) {
+#line 201 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 201 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return MEDIA_MONITOR_GET_CLASS (self)->notify_file_deleted (self, file);
+#line 1582 "MediaMonitor.c"
+}
+
+
+void media_monitor_mdbg (const gchar* msg) {
+#line 203 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (msg != NULL);
+#line 1589 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_has_pending_updates (MediaMonitor* self) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 209 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 210 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->pending_updates;
+#line 210 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 210 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 210 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp2_ > 0;
+#line 210 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1610 "MediaMonitor.c"
+}
+
+
+GeeCollection* media_monitor_get_monitorables (MediaMonitor* self) {
+ GeeCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 214 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->pending_updates;
+#line 214 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 214 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 214 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 214 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1631 "MediaMonitor.c"
+}
+
+
+MonitorableUpdates* media_monitor_fetch_updates (MediaMonitor* self, Monitorable* monitorable) {
+ MonitorableUpdates* result = NULL;
+ MonitorableUpdates* updates = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ MonitorableUpdates* _tmp3_ = NULL;
+ Monitorable* _tmp4_ = NULL;
+ MonitorableUpdates* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ Monitorable* _tmp7_ = NULL;
+ MonitorableUpdates* _tmp8_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 219 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 220 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->pending_updates;
+#line 220 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = monitorable;
+#line 220 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 220 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ updates = (MonitorableUpdates*) _tmp2_;
+#line 221 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = updates;
+#line 221 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 222 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = updates;
+#line 222 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1667 "MediaMonitor.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = monitorable;
+#line 224 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = media_monitor_create_updates (self, _tmp4_);
+#line 224 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 224 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ updates = _tmp5_;
+#line 225 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = self->priv->pending_updates;
+#line 225 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp7_ = monitorable;
+#line 225 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp8_ = updates;
+#line 225 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_, _tmp8_);
+#line 227 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = updates;
+#line 227 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1689 "MediaMonitor.c"
+}
+
+
+MonitorableUpdates* media_monitor_get_existing_updates (MediaMonitor* self, Monitorable* monitorable) {
+ MonitorableUpdates* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 230 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 231 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->pending_updates;
+#line 231 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = monitorable;
+#line 231 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 231 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = (MonitorableUpdates*) _tmp2_;
+#line 231 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1712 "MediaMonitor.c"
+}
+
+
+void media_monitor_remove_updates (MediaMonitor* self, Monitorable* monitorable) {
+ GeeHashMap* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 234 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 235 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->pending_updates;
+#line 235 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = monitorable;
+#line 235 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_, NULL);
+#line 1729 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_is_online (MediaMonitor* self, Monitorable* monitorable) {
+ gboolean result = FALSE;
+ MonitorableUpdates* updates = NULL;
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ MonitorableUpdates* _tmp3_ = NULL;
+#line 238 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 238 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), FALSE);
+#line 239 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 239 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_get_existing_updates (self, _tmp0_);
+#line 239 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ updates = _tmp1_;
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = updates;
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 1754 "MediaMonitor.c"
+ MonitorableUpdates* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = updates;
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = monitorable_updates_is_set_online (_tmp4_);
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp5_;
+#line 1763 "MediaMonitor.c"
+ } else {
+ Monitorable* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = monitorable;
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp7_ = monitorable_is_offline (_tmp6_);
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = !_tmp7_;
+#line 1773 "MediaMonitor.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp2_;
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 241 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1781 "MediaMonitor.c"
+}
+
+
+gboolean media_monitor_is_offline (MediaMonitor* self, Monitorable* monitorable) {
+ gboolean result = FALSE;
+ MonitorableUpdates* updates = NULL;
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ MonitorableUpdates* _tmp3_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 244 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), FALSE);
+#line 245 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 245 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_get_existing_updates (self, _tmp0_);
+#line 245 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ updates = _tmp1_;
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = updates;
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 1806 "MediaMonitor.c"
+ MonitorableUpdates* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = updates;
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = monitorable_updates_is_set_offline (_tmp4_);
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp5_;
+#line 1815 "MediaMonitor.c"
+ } else {
+ Monitorable* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = monitorable;
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp7_ = monitorable_is_offline (_tmp6_);
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp7_;
+#line 1825 "MediaMonitor.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp2_;
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 247 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1833 "MediaMonitor.c"
+}
+
+
+GFile* media_monitor_get_master_file (MediaMonitor* self, Monitorable* monitorable) {
+ GFile* result = NULL;
+ MonitorableUpdates* updates = NULL;
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ MonitorableUpdates* _tmp4_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), NULL);
+#line 250 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 251 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 251 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_get_existing_updates (self, _tmp0_);
+#line 251 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ updates = _tmp1_;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = updates;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp4_ != NULL) {
+#line 1859 "MediaMonitor.c"
+ MonitorableUpdates* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = updates;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = monitorable_updates_get_master_file (_tmp5_);
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = _tmp7_ != NULL;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1873 "MediaMonitor.c"
+ } else {
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = FALSE;
+#line 1877 "MediaMonitor.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp3_) {
+#line 1881 "MediaMonitor.c"
+ MonitorableUpdates* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp8_ = updates;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp9_ = monitorable_updates_get_master_file (_tmp8_);
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp9_;
+#line 1892 "MediaMonitor.c"
+ } else {
+ Monitorable* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp10_ = monitorable;
+#line 254 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp11_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 254 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 254 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp11_;
+#line 1904 "MediaMonitor.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = _tmp2_;
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 253 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 1912 "MediaMonitor.c"
+}
+
+
+void media_monitor_update_master_file (MediaMonitor* self, Monitorable* monitorable, GFile* file) {
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ MonitorableUpdates* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 257 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 257 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 258 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 258 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (self, _tmp0_);
+#line 258 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 258 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = file;
+#line 258 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_file (_tmp2_, _tmp3_);
+#line 258 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 1939 "MediaMonitor.c"
+}
+
+
+void media_monitor_update_master_file_info_altered (MediaMonitor* self, Monitorable* monitorable) {
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ MonitorableUpdates* _tmp2_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 261 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 262 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 262 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (self, _tmp0_);
+#line 262 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 262 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_file_info_altered (_tmp2_, TRUE);
+#line 262 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 1961 "MediaMonitor.c"
+}
+
+
+void media_monitor_update_master_file_in_alteration (MediaMonitor* self, Monitorable* monitorable, gboolean in_alteration) {
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ MonitorableUpdates* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 265 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 265 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 266 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 266 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (self, _tmp0_);
+#line 266 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 266 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = in_alteration;
+#line 266 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_in_alteration (_tmp2_, _tmp3_);
+#line 266 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 1986 "MediaMonitor.c"
+}
+
+
+void media_monitor_update_master_file_alterations_completed (MediaMonitor* self, Monitorable* monitorable, GFileInfo* info) {
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ MonitorableUpdates* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+#line 269 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 269 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 269 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 270 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 270 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (self, _tmp0_);
+#line 270 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 270 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = info;
+#line 270 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_alterations_complete (_tmp2_, _tmp3_);
+#line 270 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 2013 "MediaMonitor.c"
+}
+
+
+void media_monitor_update_online (MediaMonitor* self, Monitorable* monitorable) {
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ MonitorableUpdates* _tmp2_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 273 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 274 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 274 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (self, _tmp0_);
+#line 274 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 274 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_mark_online (_tmp2_);
+#line 274 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 2035 "MediaMonitor.c"
+}
+
+
+void media_monitor_update_offline (MediaMonitor* self, Monitorable* monitorable) {
+ Monitorable* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ MonitorableUpdates* _tmp2_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 277 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 278 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = monitorable;
+#line 278 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (self, _tmp0_);
+#line 278 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 278 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_mark_offline (_tmp2_);
+#line 278 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 2057 "MediaMonitor.c"
+}
+
+
+static void media_monitor_real_process_updates (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error) {
+ GeeMap* set_master_file = NULL;
+ GeeMap* set_master_file_info = NULL;
+ GeeArrayList* to_offline = NULL;
+ GeeArrayList* to_online = NULL;
+ GeeMap* _tmp53_ = NULL;
+ GeeMap* _tmp63_ = NULL;
+ gboolean _tmp73_ = FALSE;
+ GeeArrayList* _tmp74_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (all_updates));
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 287 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ set_master_file = NULL;
+#line 288 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ set_master_file_info = NULL;
+#line 289 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_offline = NULL;
+#line 290 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_online = NULL;
+#line 2083 "MediaMonitor.c"
+ {
+ GeeIterator* _updates_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = all_updates;
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _updates_it = _tmp1_;
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ while (TRUE) {
+#line 2096 "MediaMonitor.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ MonitorableUpdates* updates = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ MonitorableUpdates* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ MonitorableUpdates* _tmp21_ = NULL;
+ GFileInfo* _tmp22_ = NULL;
+ GFileInfo* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ MonitorableUpdates* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ MonitorableUpdates* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = _updates_it;
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (!_tmp3_) {
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ break;
+#line 2123 "MediaMonitor.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = _updates_it;
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ updates = (MonitorableUpdates*) _tmp5_;
+#line 293 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = *op_count;
+#line 293 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp6_ >= MEDIA_MONITOR_MAX_OPERATIONS_PER_CYCLE) {
+#line 294 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 294 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ break;
+#line 2139 "MediaMonitor.c"
+ }
+#line 296 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp7_ = updates;
+#line 296 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp8_ = monitorable_updates_get_master_file (_tmp7_);
+#line 296 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 296 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp10_ = _tmp9_ != NULL;
+#line 296 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp9_);
+#line 296 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp10_) {
+#line 2153 "MediaMonitor.c"
+ GeeMap* _tmp11_ = NULL;
+ GeeMap* _tmp13_ = NULL;
+ MonitorableUpdates* _tmp14_ = NULL;
+ Monitorable* _tmp15_ = NULL;
+ MonitorableUpdates* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ MonitorableUpdates* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+#line 297 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp11_ = set_master_file;
+#line 297 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp11_ == NULL) {
+#line 2167 "MediaMonitor.c"
+ GeeHashMap* _tmp12_ = NULL;
+#line 298 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp12_ = gee_hash_map_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 298 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file);
+#line 298 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ set_master_file = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_MAP, GeeMap);
+#line 2175 "MediaMonitor.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp13_ = set_master_file;
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp14_ = updates;
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp15_ = _tmp14_->monitorable;
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp16_ = updates;
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp17_ = monitorable_updates_get_master_file (_tmp16_);
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp18_ = _tmp17_;
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_map_set (_tmp13_, _tmp15_, _tmp18_);
+#line 300 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp18_);
+#line 301 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp19_ = updates;
+#line 301 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_file (_tmp19_, NULL);
+#line 302 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp20_ = *op_count;
+#line 302 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *op_count = _tmp20_ + 1;
+#line 2201 "MediaMonitor.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp21_ = updates;
+#line 305 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp22_ = monitorable_updates_get_master_file_info (_tmp21_);
+#line 305 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp23_ = _tmp22_;
+#line 305 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp24_ = _tmp23_ != NULL;
+#line 305 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp23_);
+#line 305 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp24_) {
+#line 2215 "MediaMonitor.c"
+ GeeMap* _tmp25_ = NULL;
+ GeeMap* _tmp27_ = NULL;
+ MonitorableUpdates* _tmp28_ = NULL;
+ Monitorable* _tmp29_ = NULL;
+ MonitorableUpdates* _tmp30_ = NULL;
+ GFileInfo* _tmp31_ = NULL;
+ GFileInfo* _tmp32_ = NULL;
+ MonitorableUpdates* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+#line 306 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp25_ = set_master_file_info;
+#line 306 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp25_ == NULL) {
+#line 2229 "MediaMonitor.c"
+ GeeHashMap* _tmp26_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp26_ = gee_hash_map_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 307 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file_info);
+#line 307 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ set_master_file_info = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_MAP, GeeMap);
+#line 2237 "MediaMonitor.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp27_ = set_master_file_info;
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp28_ = updates;
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp29_ = _tmp28_->monitorable;
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp30_ = updates;
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp31_ = monitorable_updates_get_master_file_info (_tmp30_);
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp32_ = _tmp31_;
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_map_set (_tmp27_, _tmp29_, _tmp32_);
+#line 309 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp32_);
+#line 310 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp33_ = updates;
+#line 310 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_set_master_file_info (_tmp33_, NULL);
+#line 311 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp34_ = *op_count;
+#line 311 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *op_count = _tmp34_ + 1;
+#line 2263 "MediaMonitor.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp35_ = updates;
+#line 314 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp36_ = monitorable_updates_is_set_offline (_tmp35_);
+#line 314 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp36_) {
+#line 2271 "MediaMonitor.c"
+ GeeArrayList* _tmp37_ = NULL;
+ GeeArrayList* _tmp39_ = NULL;
+ MonitorableUpdates* _tmp40_ = NULL;
+ Monitorable* _tmp41_ = NULL;
+ MonitorableUpdates* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+#line 315 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp37_ = to_offline;
+#line 315 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp37_ == NULL) {
+#line 2282 "MediaMonitor.c"
+ GeeArrayList* _tmp38_ = NULL;
+#line 316 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp38_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 316 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_offline);
+#line 316 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_offline = _tmp38_;
+#line 2290 "MediaMonitor.c"
+ }
+#line 318 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp39_ = to_offline;
+#line 318 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp40_ = updates;
+#line 318 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp41_ = _tmp40_->monitorable;
+#line 318 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 319 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp42_ = updates;
+#line 319 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_reset_online_offline (_tmp42_);
+#line 320 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp43_ = *op_count;
+#line 320 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *op_count = _tmp43_ + 1;
+#line 2308 "MediaMonitor.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp44_ = updates;
+#line 323 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp45_ = monitorable_updates_is_set_online (_tmp44_);
+#line 323 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp45_) {
+#line 2316 "MediaMonitor.c"
+ GeeArrayList* _tmp46_ = NULL;
+ GeeArrayList* _tmp48_ = NULL;
+ MonitorableUpdates* _tmp49_ = NULL;
+ Monitorable* _tmp50_ = NULL;
+ MonitorableUpdates* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+#line 324 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp46_ = to_online;
+#line 324 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp46_ == NULL) {
+#line 2327 "MediaMonitor.c"
+ GeeArrayList* _tmp47_ = NULL;
+#line 325 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp47_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 325 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_online);
+#line 325 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_online = _tmp47_;
+#line 2335 "MediaMonitor.c"
+ }
+#line 327 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp48_ = to_online;
+#line 327 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp49_ = updates;
+#line 327 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp50_ = _tmp49_->monitorable;
+#line 327 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 328 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp51_ = updates;
+#line 328 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_updates_reset_online_offline (_tmp51_);
+#line 329 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp52_ = *op_count;
+#line 329 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ *op_count = _tmp52_ + 1;
+#line 2353 "MediaMonitor.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 2357 "MediaMonitor.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_updates_it);
+#line 2361 "MediaMonitor.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp53_ = set_master_file;
+#line 333 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp53_ != NULL) {
+#line 2367 "MediaMonitor.c"
+ GeeMap* _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ GeeMap* _tmp61_ = NULL;
+ TransactionController* _tmp62_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp54_ = set_master_file;
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp55_ = gee_map_get_size (_tmp54_);
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp56_ = _tmp55_;
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp57_ = media_monitor_to_string (self);
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp58_ = _tmp57_;
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp59_ = g_strdup_printf ("Changing master file of %d objects in %s", _tmp56_, _tmp58_);
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp60_ = _tmp59_;
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_mdbg (_tmp60_);
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp60_);
+#line 334 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp58_);
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp61_ = set_master_file;
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp62_ = controller;
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_set_many_master_file (_tmp61_, _tmp62_, &_inner_error_);
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_propagate_error (error, _inner_error_);
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_online);
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_offline);
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file_info);
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file);
+#line 336 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return;
+#line 2417 "MediaMonitor.c"
+ }
+ }
+#line 339 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp63_ = set_master_file_info;
+#line 339 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp63_ != NULL) {
+#line 2424 "MediaMonitor.c"
+ GeeMap* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ GeeMap* _tmp71_ = NULL;
+ TransactionController* _tmp72_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp64_ = set_master_file_info;
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp65_ = gee_map_get_size (_tmp64_);
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp66_ = _tmp65_;
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp67_ = media_monitor_to_string (self);
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp68_ = _tmp67_;
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp69_ = g_strdup_printf ("Updating %d master files timestamps in %s", _tmp66_, _tmp68_);
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp70_ = _tmp69_;
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_mdbg (_tmp70_);
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp70_);
+#line 340 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp68_);
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp71_ = set_master_file_info;
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp72_ = controller;
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_set_many_master_timestamp (_tmp71_, _tmp72_, &_inner_error_);
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_propagate_error (error, _inner_error_);
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_online);
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_offline);
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file_info);
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file);
+#line 343 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return;
+#line 2474 "MediaMonitor.c"
+ }
+ }
+#line 346 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp74_ = to_offline;
+#line 346 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp74_ != NULL) {
+#line 346 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp73_ = TRUE;
+#line 2483 "MediaMonitor.c"
+ } else {
+ GeeArrayList* _tmp75_ = NULL;
+#line 346 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp75_ = to_online;
+#line 346 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp73_ = _tmp75_ != NULL;
+#line 2490 "MediaMonitor.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp73_) {
+#line 2494 "MediaMonitor.c"
+ gint _tmp76_ = 0;
+ GeeArrayList* _tmp77_ = NULL;
+ gint _tmp81_ = 0;
+ GeeArrayList* _tmp82_ = NULL;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ GeeArrayList* _tmp90_ = NULL;
+ GeeArrayList* _tmp91_ = NULL;
+ TransactionController* _tmp92_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp77_ = to_online;
+#line 348 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp77_ != NULL) {
+#line 2510 "MediaMonitor.c"
+ GeeArrayList* _tmp78_ = NULL;
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+#line 348 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp78_ = to_online;
+#line 348 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp79_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 348 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp80_ = _tmp79_;
+#line 348 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp76_ = _tmp80_;
+#line 2522 "MediaMonitor.c"
+ } else {
+#line 348 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp76_ = 0;
+#line 2526 "MediaMonitor.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp82_ = to_offline;
+#line 349 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp82_ != NULL) {
+#line 2532 "MediaMonitor.c"
+ GeeArrayList* _tmp83_ = NULL;
+ gint _tmp84_ = 0;
+ gint _tmp85_ = 0;
+#line 349 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp83_ = to_offline;
+#line 349 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp84_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 349 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp85_ = _tmp84_;
+#line 349 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp81_ = _tmp85_;
+#line 2544 "MediaMonitor.c"
+ } else {
+#line 349 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp81_ = 0;
+#line 2548 "MediaMonitor.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp86_ = media_monitor_to_string (self);
+#line 347 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp87_ = _tmp86_;
+#line 347 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp88_ = g_strdup_printf ("Marking %d online, %d offline in %s", _tmp76_, _tmp81_, _tmp87_);
+#line 347 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp89_ = _tmp88_;
+#line 347 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_mdbg (_tmp89_);
+#line 347 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp89_);
+#line 347 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp87_);
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp90_ = to_online;
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp91_ = to_offline;
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp92_ = controller;
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable_mark_many_online_offline (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp91_, GEE_TYPE_COLLECTION, GeeCollection), _tmp92_, &_inner_error_);
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_propagate_error (error, _inner_error_);
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_online);
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_offline);
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file_info);
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file);
+#line 352 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return;
+#line 2586 "MediaMonitor.c"
+ }
+ }
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_online);
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_offline);
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file_info);
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (set_master_file);
+#line 2597 "MediaMonitor.c"
+}
+
+
+void media_monitor_process_updates (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error) {
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_if_fail (IS_MEDIA_MONITOR (self));
+#line 285 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ MEDIA_MONITOR_GET_CLASS (self)->process_updates (self, all_updates, controller, op_count, error);
+#line 2606 "MediaMonitor.c"
+}
+
+
+static gpointer _transaction_controller_ref0 (gpointer self) {
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return self ? transaction_controller_ref (self) : NULL;
+#line 2613 "MediaMonitor.c"
+}
+
+
+static gboolean media_monitor_on_flush_pending_updates (MediaMonitor* self) {
+ gboolean result = FALSE;
+ GCancellable* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeHashMap* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GTimer* timer = NULL;
+ GTimer* _tmp5_ = NULL;
+ GeeArrayList* to_process = NULL;
+ GeeArrayList* to_remove = NULL;
+ gint op_count = 0;
+ GeeArrayList* _tmp29_ = NULL;
+ GeeArrayList* _tmp47_ = NULL;
+ gdouble elapsed = 0.0;
+ GTimer* _tmp60_ = NULL;
+ gdouble _tmp61_ = 0.0;
+ gboolean _tmp62_ = FALSE;
+ gdouble _tmp63_ = 0.0;
+ GError * _inner_error_ = NULL;
+#line 356 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_return_val_if_fail (IS_MEDIA_MONITOR (self), FALSE);
+#line 357 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 357 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp1_ = g_cancellable_is_cancelled (_tmp0_);
+#line 357 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp1_) {
+#line 358 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = FALSE;
+#line 358 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 2649 "MediaMonitor.c"
+ }
+#line 360 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = self->priv->pending_updates;
+#line 360 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp3_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 360 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 360 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp4_ == 0) {
+#line 361 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = TRUE;
+#line 361 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 2663 "MediaMonitor.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp5_ = g_timer_new ();
+#line 363 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ timer = _tmp5_;
+#line 368 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_process = NULL;
+#line 369 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_remove = NULL;
+#line 2673 "MediaMonitor.c"
+ {
+ GeeIterator* _updates_it = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp6_ = self->priv->pending_updates;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp7_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_MAP, GeeMap));
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp8_ = _tmp7_;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp11_ = _tmp10_;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_tmp9_);
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _updates_it = _tmp11_;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ while (TRUE) {
+#line 2700 "MediaMonitor.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ MonitorableUpdates* updates = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ MonitorableUpdates* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ MonitorableUpdates* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ GeeArrayList* _tmp25_ = NULL;
+ GeeArrayList* _tmp27_ = NULL;
+ MonitorableUpdates* _tmp28_ = NULL;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp12_ = _updates_it;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (!_tmp13_) {
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ break;
+#line 2721 "MediaMonitor.c"
+ }
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp14_ = _updates_it;
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ updates = (MonitorableUpdates*) _tmp15_;
+#line 371 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp16_ = updates;
+#line 371 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp17_ = monitorable_updates_is_in_alteration (_tmp16_);
+#line 371 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp17_) {
+#line 372 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 372 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ continue;
+#line 2739 "MediaMonitor.c"
+ }
+#line 374 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp18_ = updates;
+#line 374 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp19_ = monitorable_updates_is_all_updated (_tmp18_);
+#line 374 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp19_) {
+#line 2747 "MediaMonitor.c"
+ GeeArrayList* _tmp20_ = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ MonitorableUpdates* _tmp23_ = NULL;
+ Monitorable* _tmp24_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp20_ = to_remove;
+#line 375 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp20_ == NULL) {
+#line 2756 "MediaMonitor.c"
+ GeeArrayList* _tmp21_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp21_ = gee_array_list_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 376 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_remove);
+#line 376 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_remove = _tmp21_;
+#line 2764 "MediaMonitor.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp22_ = to_remove;
+#line 378 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp23_ = updates;
+#line 378 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp24_ = _tmp23_->monitorable;
+#line 378 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp24_);
+#line 379 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 379 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ continue;
+#line 2778 "MediaMonitor.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp25_ = to_process;
+#line 382 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp25_ == NULL) {
+#line 2784 "MediaMonitor.c"
+ GeeArrayList* _tmp26_ = NULL;
+#line 383 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp26_ = gee_array_list_new (TYPE_MONITORABLE_UPDATES, (GBoxedCopyFunc) monitorable_updates_ref, monitorable_updates_unref, NULL, NULL, NULL);
+#line 383 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_process);
+#line 383 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ to_process = _tmp26_;
+#line 2792 "MediaMonitor.c"
+ }
+#line 385 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp27_ = to_process;
+#line 385 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp28_ = updates;
+#line 385 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp28_);
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 2802 "MediaMonitor.c"
+ }
+#line 370 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_updates_it);
+#line 2806 "MediaMonitor.c"
+ }
+#line 388 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ op_count = 0;
+#line 389 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp29_ = to_process;
+#line 389 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp29_ != NULL) {
+#line 2814 "MediaMonitor.c"
+ TransactionController* controller = NULL;
+ MediaSourceCollection* _tmp30_ = NULL;
+ MediaSourceCollection* _tmp31_ = NULL;
+ TransactionController* _tmp32_ = NULL;
+ TransactionController* _tmp33_ = NULL;
+ TransactionController* _tmp34_ = NULL;
+ TransactionController* _tmp35_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp30_ = media_monitor_get_media_source_collection (self);
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp31_ = _tmp30_;
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp32_ = media_source_collection_get_transaction_controller (_tmp31_);
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp33_ = _tmp32_;
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp34_ = _transaction_controller_ref0 (_tmp33_);
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp35_ = _tmp34_;
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _data_collection_unref0 (_tmp31_);
+#line 390 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ controller = _tmp35_;
+#line 2838 "MediaMonitor.c"
+ {
+ TransactionController* _tmp36_ = NULL;
+ GeeArrayList* _tmp37_ = NULL;
+ TransactionController* _tmp38_ = NULL;
+ TransactionController* _tmp39_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp36_ = controller;
+#line 393 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ transaction_controller_begin (_tmp36_);
+#line 394 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp37_ = to_process;
+#line 394 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp38_ = controller;
+#line 394 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_process_updates (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection), _tmp38_, &op_count, &_inner_error_);
+#line 394 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2856 "MediaMonitor.c"
+ goto __catch571_g_error;
+ }
+#line 395 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp39_ = controller;
+#line 395 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ transaction_controller_commit (_tmp39_);
+#line 2863 "MediaMonitor.c"
+ }
+ goto __finally571;
+ __catch571_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp40_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ err = _inner_error_;
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _inner_error_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp40_ = err;
+#line 397 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp40_->domain == DATABASE_ERROR) {
+#line 2878 "MediaMonitor.c"
+ GError* _tmp41_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp41_ = err;
+#line 398 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ app_window_database_error ((GError*) _tmp41_);
+#line 2884 "MediaMonitor.c"
+ } else {
+ const gchar* _tmp42_ = NULL;
+ GError* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+#line 400 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp42_ = _ ("Unable to process monitoring updates: %s");
+#line 400 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp43_ = err;
+#line 400 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp44_ = _tmp43_->message;
+#line 400 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp45_ = g_strdup_printf (_tmp42_, _tmp44_);
+#line 400 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp46_ = _tmp45_;
+#line 400 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ app_window_panic (_tmp46_);
+#line 400 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp46_);
+#line 2905 "MediaMonitor.c"
+ }
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_error_free0 (err);
+#line 2909 "MediaMonitor.c"
+ }
+ __finally571:
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _transaction_controller_unref0 (controller);
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_remove);
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_process);
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_timer_destroy0 (timer);
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 392 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return FALSE;
+#line 2928 "MediaMonitor.c"
+ }
+#line 389 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _transaction_controller_unref0 (controller);
+#line 2932 "MediaMonitor.c"
+ }
+#line 404 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp47_ = to_remove;
+#line 404 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp47_ != NULL) {
+#line 2938 "MediaMonitor.c"
+ {
+ GeeArrayList* _monitorable_list = NULL;
+ GeeArrayList* _tmp48_ = NULL;
+ GeeArrayList* _tmp49_ = NULL;
+ gint _monitorable_size = 0;
+ GeeArrayList* _tmp50_ = NULL;
+ gint _tmp51_ = 0;
+ gint _tmp52_ = 0;
+ gint _monitorable_index = 0;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp48_ = to_remove;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp49_ = _g_object_ref0 (_tmp48_);
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_list = _tmp49_;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp50_ = _monitorable_list;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp51_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp52_ = _tmp51_;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_size = _tmp52_;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_index = -1;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ while (TRUE) {
+#line 2966 "MediaMonitor.c"
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ Monitorable* monitorable = NULL;
+ GeeArrayList* _tmp56_ = NULL;
+ gint _tmp57_ = 0;
+ gpointer _tmp58_ = NULL;
+ Monitorable* _tmp59_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp53_ = _monitorable_index;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _monitorable_index = _tmp53_ + 1;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp54_ = _monitorable_index;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp55_ = _monitorable_size;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (!(_tmp54_ < _tmp55_)) {
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ break;
+#line 2987 "MediaMonitor.c"
+ }
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp56_ = _monitorable_list;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp57_ = _monitorable_index;
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp58_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp57_);
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ monitorable = (Monitorable*) _tmp58_;
+#line 406 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp59_ = monitorable;
+#line 406 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_remove_updates (self, _tmp59_);
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 3003 "MediaMonitor.c"
+ }
+#line 405 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (_monitorable_list);
+#line 3007 "MediaMonitor.c"
+ }
+ }
+#line 409 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp60_ = timer;
+#line 409 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp61_ = g_timer_elapsed (_tmp60_, NULL);
+#line 409 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ elapsed = _tmp61_;
+#line 410 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp63_ = elapsed;
+#line 410 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp63_ > 0.01) {
+#line 410 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp62_ = TRUE;
+#line 3022 "MediaMonitor.c"
+ } else {
+ gint _tmp64_ = 0;
+#line 410 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp64_ = op_count;
+#line 410 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp62_ = _tmp64_ > 0;
+#line 3029 "MediaMonitor.c"
+ }
+#line 410 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ if (_tmp62_) {
+#line 3033 "MediaMonitor.c"
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gdouble _tmp67_ = 0.0;
+ gint _tmp68_ = 0;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp65_ = media_monitor_to_string (self);
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp66_ = _tmp65_;
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp67_ = elapsed;
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp68_ = op_count;
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp69_ = g_strdup_printf ("Total pending queue time for %s: %lf (%d ops)", _tmp66_, _tmp67_, _tmp68_);
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp70_ = _tmp69_;
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_mdbg (_tmp70_);
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp70_);
+#line 411 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_free0 (_tmp66_);
+#line 3058 "MediaMonitor.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ result = TRUE;
+#line 415 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_remove);
+#line 415 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (to_process);
+#line 415 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_timer_destroy0 (timer);
+#line 415 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ return result;
+#line 3070 "MediaMonitor.c"
+}
+
+
+static void media_monitor_class_init (MediaMonitorClass * klass) {
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ media_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_type_class_add_private (klass, sizeof (MediaMonitorPrivate));
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->get_media_source_collection = media_monitor_real_get_media_source_collection;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->close = media_monitor_real_close;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->to_string = media_monitor_real_to_string;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->create_updates = media_monitor_real_create_updates;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->on_media_source_destroyed = media_monitor_real_on_media_source_destroyed;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_discovery_started = media_monitor_real_notify_discovery_started;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_discovered = media_monitor_real_notify_file_discovered;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->candidates_for_unknown_file = media_monitor_real_candidates_for_unknown_file;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->get_auxilliary_backing_files = media_monitor_real_get_auxilliary_backing_files;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->update_backing_file_info = media_monitor_real_update_backing_file_info;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_discovery_completing = media_monitor_real_notify_discovery_completing;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->is_file_represented = media_monitor_real_is_file_represented;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_created = media_monitor_real_notify_file_created;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_moved = media_monitor_real_notify_file_moved;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_altered = media_monitor_real_notify_file_altered;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_attributes_altered = media_monitor_real_notify_file_attributes_altered;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_alteration_completed = media_monitor_real_notify_file_alteration_completed;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_deleted = media_monitor_real_notify_file_deleted;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ ((MediaMonitorClass *) klass)->process_updates = media_monitor_real_process_updates;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ G_OBJECT_CLASS (klass)->finalize = media_monitor_finalize;
+#line 3119 "MediaMonitor.c"
+}
+
+
+static void media_monitor_instance_init (MediaMonitor * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv = MEDIA_MONITOR_GET_PRIVATE (self);
+#line 114 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_MONITORABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_MONITORABLE_UPDATES, (GBoxedCopyFunc) monitorable_updates_ref, monitorable_updates_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 114 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->pending_updates = _tmp0_;
+#line 116 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self->priv->pending_updates_timer_id = (guint) 0;
+#line 3133 "MediaMonitor.c"
+}
+
+
+static void media_monitor_finalize (GObject* obj) {
+ MediaMonitor * self;
+ MediaSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ MediaSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_MONITOR, MediaMonitor);
+#line 130 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp0_ = self->priv->sources;
+#line 130 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 130 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _media_monitor_on_media_source_destroyed_source_collection_item_destroyed, self);
+#line 131 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _tmp2_ = self->priv->sources;
+#line 131 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_signal_parse_name ("unlinked-destroyed", TYPE_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 131 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _media_monitor_on_media_source_destroyed_source_collection_unlinked_destroyed, self);
+#line 112 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 113 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 114 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ _g_object_unref0 (self->priv->pending_updates);
+#line 101 "/home/jens/Source/shotwell/src/MediaMonitor.vala"
+ G_OBJECT_CLASS (media_monitor_parent_class)->finalize (obj);
+#line 3165 "MediaMonitor.c"
+}
+
+
+GType media_monitor_get_type (void) {
+ static volatile gsize media_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&media_monitor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaMonitor), 0, (GInstanceInitFunc) media_monitor_instance_init, NULL };
+ GType media_monitor_type_id;
+ media_monitor_type_id = g_type_register_static (G_TYPE_OBJECT, "MediaMonitor", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&media_monitor_type_id__volatile, media_monitor_type_id);
+ }
+ return media_monitor_type_id__volatile;
+}
+
+
+
diff --git a/src/MediaPage.c b/src/MediaPage.c
new file mode 100644
index 0000000..57e1c1f
--- /dev/null
+++ b/src/MediaPage.c
@@ -0,0 +1,10742 @@
+/* MediaPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from MediaPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <cairo.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <pango/pango.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+typedef struct _MediaSourceItemPrivate MediaSourceItemPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define THUMBNAIL_CACHE_TYPE_SIZE (thumbnail_cache_size_get_type ())
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY (media_page_zoom_slider_assembly_get_type ())
+#define MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssembly))
+#define MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssemblyClass))
+#define MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY))
+#define MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY))
+#define MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssemblyClass))
+
+typedef struct _MediaPageZoomSliderAssembly MediaPageZoomSliderAssembly;
+typedef struct _MediaPageZoomSliderAssemblyClass MediaPageZoomSliderAssemblyClass;
+
+#define TYPE_DRAG_AND_DROP_HANDLER (drag_and_drop_handler_get_type ())
+#define DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandler))
+#define DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))
+#define IS_DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DRAG_AND_DROP_HANDLER))
+#define IS_DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DRAG_AND_DROP_HANDLER))
+#define DRAG_AND_DROP_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))
+
+typedef struct _DragAndDropHandler DragAndDropHandler;
+typedef struct _DragAndDropHandlerClass DragAndDropHandlerClass;
+
+#define TYPE_MEDIA_VIEW_TRACKER (media_view_tracker_get_type ())
+#define MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTracker))
+#define MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+#define IS_MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_VIEW_TRACKER))
+#define IS_MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_VIEW_TRACKER))
+#define MEDIA_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+
+typedef struct _MediaViewTracker MediaViewTracker;
+typedef struct _MediaViewTrackerClass MediaViewTrackerClass;
+
+#define MEDIA_PAGE_TYPE_SORT_BY (media_page_sort_by_get_type ())
+#define _drag_and_drop_handler_unref0(var) ((var == NULL) ? NULL : (var = (drag_and_drop_handler_unref (var), NULL)))
+#define _core_tracker_unref0(var) ((var == NULL) ? NULL : (var = (core_tracker_unref (var), NULL)))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_THUMBNAIL (thumbnail_get_type ())
+#define THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL, Thumbnail))
+#define THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL, ThumbnailClass))
+#define IS_THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL))
+#define IS_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL))
+#define THUMBNAIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL, ThumbnailClass))
+
+typedef struct _Thumbnail Thumbnail;
+typedef struct _ThumbnailClass ThumbnailClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_RATING_FILTER (rating_filter_get_type ())
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_TEXT_ENTRY_DIALOG_MEDIATOR (text_entry_dialog_mediator_get_type ())
+#define TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+
+typedef struct _TextEntryDialogMediator TextEntryDialogMediator;
+typedef struct _TextEntryDialogMediatorClass TextEntryDialogMediatorClass;
+
+#define TYPE_TAGS_DIALOG (tags_dialog_get_type ())
+#define TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAGS_DIALOG, TagsDialog))
+#define TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAGS_DIALOG, TagsDialogClass))
+#define IS_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAGS_DIALOG))
+#define IS_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAGS_DIALOG))
+#define TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAGS_DIALOG, TagsDialogClass))
+
+typedef struct _TagsDialog TagsDialog;
+typedef struct _TagsDialogClass TagsDialogClass;
+
+#define TYPE_ADD_TAGS_DIALOG (add_tags_dialog_get_type ())
+#define ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialog))
+#define ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+#define IS_ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_DIALOG))
+#define IS_ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_DIALOG))
+#define ADD_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+
+typedef struct _AddTagsDialog AddTagsDialog;
+typedef struct _AddTagsDialogClass AddTagsDialogClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_ADD_TAGS_COMMAND (add_tags_command_get_type ())
+#define ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommand))
+#define ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+#define IS_ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_COMMAND))
+#define IS_ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_COMMAND))
+#define ADD_TAGS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+
+typedef struct _AddTagsCommand AddTagsCommand;
+typedef struct _AddTagsCommandClass AddTagsCommandClass;
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+#define _text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_MODIFY_TAGS_DIALOG (modify_tags_dialog_get_type ())
+#define MODIFY_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialog))
+#define MODIFY_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialogClass))
+#define IS_MODIFY_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFY_TAGS_DIALOG))
+#define IS_MODIFY_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFY_TAGS_DIALOG))
+#define MODIFY_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialogClass))
+
+typedef struct _ModifyTagsDialog ModifyTagsDialog;
+typedef struct _ModifyTagsDialogClass ModifyTagsDialogClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+
+#define TYPE_MODIFY_TAGS_COMMAND (modify_tags_command_get_type ())
+#define MODIFY_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommand))
+#define MODIFY_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommandClass))
+#define IS_MODIFY_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFY_TAGS_COMMAND))
+#define IS_MODIFY_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFY_TAGS_COMMAND))
+#define MODIFY_TAGS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommandClass))
+
+typedef struct _ModifyTagsCommand ModifyTagsCommand;
+typedef struct _ModifyTagsCommandClass ModifyTagsCommandClass;
+
+#define TYPE_MOVE_PHOTOS_COMMAND (move_photos_command_get_type ())
+#define MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand))
+#define MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+#define IS_MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOVE_PHOTOS_COMMAND))
+#define IS_MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOVE_PHOTOS_COMMAND))
+#define MOVE_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+
+typedef struct _MovePhotosCommand MovePhotosCommand;
+typedef struct _MovePhotosCommandClass MovePhotosCommandClass;
+
+#define TYPE_NEW_EVENT_COMMAND (new_event_command_get_type ())
+#define NEW_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NEW_EVENT_COMMAND, NewEventCommand))
+#define NEW_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NEW_EVENT_COMMAND, NewEventCommandClass))
+#define IS_NEW_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NEW_EVENT_COMMAND))
+#define IS_NEW_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NEW_EVENT_COMMAND))
+#define NEW_EVENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NEW_EVENT_COMMAND, NewEventCommandClass))
+
+typedef struct _NewEventCommand NewEventCommand;
+typedef struct _NewEventCommandClass NewEventCommandClass;
+
+#define TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND (multiple_data_source_at_once_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommand))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+
+typedef struct _MultipleDataSourceAtOnceCommand MultipleDataSourceAtOnceCommand;
+typedef struct _MultipleDataSourceAtOnceCommandClass MultipleDataSourceAtOnceCommandClass;
+
+#define TYPE_FLAG_UNFLAG_COMMAND (flag_unflag_command_get_type ())
+#define FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommand))
+#define FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+#define IS_FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAG_UNFLAG_COMMAND))
+#define IS_FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FLAG_UNFLAG_COMMAND))
+#define FLAG_UNFLAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+
+typedef struct _FlagUnflagCommand FlagUnflagCommand;
+typedef struct _FlagUnflagCommandClass FlagUnflagCommandClass;
+
+#define TYPE_MULTIPLE_DATA_SOURCE_COMMAND (multiple_data_source_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand))
+#define MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+
+typedef struct _MultipleDataSourceCommand MultipleDataSourceCommand;
+typedef struct _MultipleDataSourceCommandClass MultipleDataSourceCommandClass;
+
+#define TYPE_SET_RATING_COMMAND (set_rating_command_get_type ())
+#define SET_RATING_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_RATING_COMMAND, SetRatingCommand))
+#define SET_RATING_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_RATING_COMMAND, SetRatingCommandClass))
+#define IS_SET_RATING_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_RATING_COMMAND))
+#define IS_SET_RATING_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_RATING_COMMAND))
+#define SET_RATING_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_RATING_COMMAND, SetRatingCommandClass))
+
+typedef struct _SetRatingCommand SetRatingCommand;
+typedef struct _SetRatingCommandClass SetRatingCommandClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_TRASH_UNTRASH_PHOTOS_COMMAND (trash_untrash_photos_command_get_type ())
+#define TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+
+typedef struct _TrashUntrashPhotosCommand TrashUntrashPhotosCommand;
+typedef struct _TrashUntrashPhotosCommandClass TrashUntrashPhotosCommandClass;
+
+#define TYPE_EDIT_TITLE_DIALOG (edit_title_dialog_get_type ())
+#define EDIT_TITLE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_TITLE_DIALOG, EditTitleDialog))
+#define EDIT_TITLE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_TITLE_DIALOG, EditTitleDialogClass))
+#define IS_EDIT_TITLE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_TITLE_DIALOG))
+#define IS_EDIT_TITLE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_TITLE_DIALOG))
+#define EDIT_TITLE_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_TITLE_DIALOG, EditTitleDialogClass))
+
+typedef struct _EditTitleDialog EditTitleDialog;
+typedef struct _EditTitleDialogClass EditTitleDialogClass;
+
+#define TYPE_EDIT_MULTIPLE_TITLES_COMMAND (edit_multiple_titles_command_get_type ())
+#define EDIT_MULTIPLE_TITLES_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommand))
+#define EDIT_MULTIPLE_TITLES_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommandClass))
+#define IS_EDIT_MULTIPLE_TITLES_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_MULTIPLE_TITLES_COMMAND))
+#define IS_EDIT_MULTIPLE_TITLES_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_MULTIPLE_TITLES_COMMAND))
+#define EDIT_MULTIPLE_TITLES_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_MULTIPLE_TITLES_COMMAND, EditMultipleTitlesCommandClass))
+
+typedef struct _EditMultipleTitlesCommand EditMultipleTitlesCommand;
+typedef struct _EditMultipleTitlesCommandClass EditMultipleTitlesCommandClass;
+
+#define TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR (multi_text_entry_dialog_mediator_get_type ())
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediator))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+
+typedef struct _MultiTextEntryDialogMediator MultiTextEntryDialogMediator;
+typedef struct _MultiTextEntryDialogMediatorClass MultiTextEntryDialogMediatorClass;
+
+#define TYPE_EDIT_COMMENT_DIALOG (edit_comment_dialog_get_type ())
+#define EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialog))
+#define EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+#define IS_EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_COMMENT_DIALOG))
+#define IS_EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_COMMENT_DIALOG))
+#define EDIT_COMMENT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+
+typedef struct _EditCommentDialog EditCommentDialog;
+typedef struct _EditCommentDialogClass EditCommentDialogClass;
+
+#define TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND (edit_multiple_comments_command_get_type ())
+#define EDIT_MULTIPLE_COMMENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommand))
+#define EDIT_MULTIPLE_COMMENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommandClass))
+#define IS_EDIT_MULTIPLE_COMMENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND))
+#define IS_EDIT_MULTIPLE_COMMENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND))
+#define EDIT_MULTIPLE_COMMENTS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_MULTIPLE_COMMENTS_COMMAND, EditMultipleCommentsCommandClass))
+
+typedef struct _EditMultipleCommentsCommand EditMultipleCommentsCommand;
+typedef struct _EditMultipleCommentsCommandClass EditMultipleCommentsCommandClass;
+#define _multi_text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (multi_text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_SET_RAW_DEVELOPER_COMMAND (set_raw_developer_command_get_type ())
+#define SET_RAW_DEVELOPER_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand))
+#define SET_RAW_DEVELOPER_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommandClass))
+#define IS_SET_RAW_DEVELOPER_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND))
+#define IS_SET_RAW_DEVELOPER_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_RAW_DEVELOPER_COMMAND))
+#define SET_RAW_DEVELOPER_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommandClass))
+
+typedef struct _SetRawDeveloperCommand SetRawDeveloperCommand;
+typedef struct _SetRawDeveloperCommandClass SetRawDeveloperCommandClass;
+
+#define TYPE_CHECKERBOARD_LAYOUT (checkerboard_layout_get_type ())
+#define CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout))
+#define CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))
+#define IS_CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_LAYOUT))
+#define IS_CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_LAYOUT))
+#define CHECKERBOARD_LAYOUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))
+
+typedef struct _CheckerboardLayout CheckerboardLayout;
+typedef struct _CheckerboardLayoutClass CheckerboardLayoutClass;
+typedef struct _MediaPageZoomSliderAssemblyPrivate MediaPageZoomSliderAssemblyPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _MediaSourceItem {
+ CheckerboardItem parent_instance;
+ MediaSourceItemPrivate * priv;
+};
+
+struct _MediaSourceItemClass {
+ CheckerboardItemClass parent_class;
+};
+
+struct _MediaSourceItemPrivate {
+ gboolean enable_sprockets;
+ gchar* natural_collation_key;
+};
+
+typedef enum {
+ THUMBNAIL_CACHE_SIZE_LARGEST = 360,
+ THUMBNAIL_CACHE_SIZE_BIG = 360,
+ THUMBNAIL_CACHE_SIZE_MEDIUM = 128,
+ THUMBNAIL_CACHE_SIZE_SMALLEST = 128
+} ThumbnailCacheSize;
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _MediaPagePrivate {
+ MediaPageZoomSliderAssembly* connected_slider;
+ DragAndDropHandler* dnd_handler;
+ MediaViewTracker* tracker;
+};
+
+typedef enum {
+ MEDIA_PAGE_SORT_BY_MIN = 1,
+ MEDIA_PAGE_SORT_BY_TITLE = 1,
+ MEDIA_PAGE_SORT_BY_EXPOSURE_DATE = 2,
+ MEDIA_PAGE_SORT_BY_RATING = 3,
+ MEDIA_PAGE_SORT_BY_FILENAME = 4,
+ MEDIA_PAGE_SORT_BY_MAX = 4
+} MediaPageSortBy;
+
+typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+typedef enum {
+ RATING_FILTER_NO_FILTER = 0,
+ RATING_FILTER_REJECTED_OR_HIGHER = 1,
+ RATING_FILTER_UNRATED_OR_HIGHER = 2,
+ RATING_FILTER_ONE_OR_HIGHER = 3,
+ RATING_FILTER_TWO_OR_HIGHER = 4,
+ RATING_FILTER_THREE_OR_HIGHER = 5,
+ RATING_FILTER_FOUR_OR_HIGHER = 6,
+ RATING_FILTER_FIVE_OR_HIGHER = 7,
+ RATING_FILTER_REJECTED_ONLY = 8,
+ RATING_FILTER_UNRATED_ONLY = 9,
+ RATING_FILTER_ONE_ONLY = 10,
+ RATING_FILTER_TWO_ONLY = 11,
+ RATING_FILTER_THREE_ONLY = 12,
+ RATING_FILTER_FOUR_ONLY = 13,
+ RATING_FILTER_FIVE_ONLY = 14
+} RatingFilter;
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+struct _MediaPageZoomSliderAssembly {
+ GtkToolItem parent_instance;
+ MediaPageZoomSliderAssemblyPrivate * priv;
+};
+
+struct _MediaPageZoomSliderAssemblyClass {
+ GtkToolItemClass parent_class;
+};
+
+struct _MediaPageZoomSliderAssemblyPrivate {
+ GtkScale* slider;
+ GtkAdjustment* adjustment;
+};
+
+
+static gpointer media_source_item_parent_class = NULL;
+static GdkPixbuf* media_source_item_basis_sprocket_pixbuf;
+static GdkPixbuf* media_source_item_basis_sprocket_pixbuf = NULL;
+static GdkPixbuf* media_source_item_current_sprocket_pixbuf;
+static GdkPixbuf* media_source_item_current_sprocket_pixbuf = NULL;
+static gpointer media_page_parent_class = NULL;
+static gpointer media_page_zoom_slider_assembly_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType media_source_item_get_type (void) G_GNUC_CONST;
+#define MEDIA_SOURCE_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemPrivate))
+enum {
+ MEDIA_SOURCE_ITEM_DUMMY_PROPERTY
+};
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+MediaSourceItem* media_source_item_new (ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+MediaSourceItem* media_source_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+CheckerboardItem* checkerboard_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+GdkPixbuf* resources_load_icon (const gchar* name, gint scale);
+static void media_source_item_real_paint_image (CheckerboardItem* base, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+void checkerboard_item_set_horizontal_trinket_offset (CheckerboardItem* self, gint horizontal_trinket_offset);
+gint dimensions_major_axis (Dimensions *self);
+GType thumbnail_cache_size_get_type (void) G_GNUC_CONST;
+void checkerboard_item_paint_image (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+void media_source_item_paint_sprockets (MediaSourceItem* self, cairo_t* ctx, GdkPoint* item_origin, Dimensions* item_dimensions);
+void media_source_item_paint_one_sprocket (MediaSourceItem* self, cairo_t* ctx, GdkPoint* origin);
+void media_source_item_set_enable_sprockets (MediaSourceItem* self, gboolean enable_sprockets);
+void media_source_item_set_title (MediaSourceItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+void checkerboard_item_set_title (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+gchar* media_source_item_get_natural_collation_key (MediaSourceItem* self);
+gchar* natural_collate_collate_key (gchar* str);
+gchar* checkerboard_item_get_title (CheckerboardItem* self);
+static void media_source_item_finalize (GObject* obj);
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType media_page_zoom_slider_assembly_get_type (void) G_GNUC_CONST;
+gpointer drag_and_drop_handler_ref (gpointer instance);
+void drag_and_drop_handler_unref (gpointer instance);
+GParamSpec* param_spec_drag_and_drop_handler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_drag_and_drop_handler (GValue* value, gpointer v_object);
+void value_take_drag_and_drop_handler (GValue* value, gpointer v_object);
+gpointer value_get_drag_and_drop_handler (const GValue* value);
+GType drag_and_drop_handler_get_type (void) G_GNUC_CONST;
+GType media_view_tracker_get_type (void) G_GNUC_CONST;
+#define MEDIA_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MEDIA_PAGE, MediaPagePrivate))
+enum {
+ MEDIA_PAGE_DUMMY_PROPERTY
+};
+GType media_page_sort_by_get_type (void) G_GNUC_CONST;
+#define MEDIA_PAGE_SORT_ORDER_ASCENDING 0
+#define MEDIA_PAGE_SORT_ORDER_DESCENDING 1
+#define MEDIA_PAGE_MANUAL_STEPPING 16
+#define MEDIA_PAGE_SLIDER_STEPPING 4
+MediaPage* media_page_construct (GType object_type, const gchar* page_name);
+CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+MediaViewTracker* media_view_tracker_new (ViewCollection* collection);
+MediaViewTracker* media_view_tracker_construct (GType object_type, ViewCollection* collection);
+static void media_page_on_media_altered (MediaPage* self, GeeMap* altered);
+static void _media_page_on_media_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+void data_collection_freeze_notifications (DataCollection* self);
+void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
+#define CHECKERBOARD_ITEM_PROP_SHOW_TITLES "show-titles"
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_display_photo_titles (ConfigurationFacade* self);
+#define CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS "show-comments"
+gboolean configuration_facade_get_display_photo_comments (ConfigurationFacade* self);
+#define CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES "show-subtitles"
+#define THUMBNAIL_PROP_SHOW_TAGS CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES
+gboolean configuration_facade_get_display_photo_tags (ConfigurationFacade* self);
+#define THUMBNAIL_PROP_SIZE "thumbnail-size"
+gint media_page_get_thumb_size (MediaPage* self);
+#define THUMBNAIL_PROP_SHOW_RATINGS "show-ratings"
+gboolean configuration_facade_get_display_photo_ratings (ConfigurationFacade* self);
+void data_collection_thaw_notifications (DataCollection* self);
+DragAndDropHandler* drag_and_drop_handler_new (Page* page);
+DragAndDropHandler* drag_and_drop_handler_construct (GType object_type, Page* page);
+static gint media_page_compute_zoom_scale_increase (gint current_scale);
+gint thumbnail_get_MIN_SCALE (void);
+gint thumbnail_get_MAX_SCALE (void);
+static gint media_page_compute_zoom_scale_decrease (gint current_scale);
+static void media_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* media_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define RESOURCES_SAVE_AS_LABEL _ ("Save _As")
+#define TRANSLATABLE "translatable"
+void media_page_on_export (MediaPage* self);
+static void _media_page_on_export_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EXPORT_MENU _ ("_Export...")
+static void _vala_array_add297 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void media_page_on_send_to (MediaPage* self);
+static void _media_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_SEND_TO_MENU _ ("Send _To...")
+static void _vala_array_add298 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_SEND_TO_CONTEXT_MENU _ ("Send T_o...")
+static void _vala_array_add299 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REMOVE_LABEL _ ("_Remove")
+static void media_page_on_remove_from_library (MediaPage* self);
+static void _media_page_on_remove_from_library_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_REMOVE_FROM_LIBRARY_MENU _ ("R_emove From Library")
+static void _vala_array_add300 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_move_to_trash (MediaPage* self);
+static void _media_page_on_move_to_trash_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_MOVE_TO_TRASH_MENU _ ("_Move to Trash")
+static void _vala_array_add301 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_NEW_LABEL _ ("_New")
+static void media_page_on_new_event (MediaPage* self);
+static void _media_page_on_new_event_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_NEW_EVENT_MENU _ ("_New Event")
+static void _vala_array_add302 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void media_page_on_add_tags (MediaPage* self);
+static void _media_page_on_add_tags_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ADD_TAGS_MENU _ ("Add _Tags...")
+static void _vala_array_add303 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ADD_TAGS_CONTEXT_MENU _ ("_Add Tags...")
+static void _vala_array_add304 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void media_page_on_modify_tags (MediaPage* self);
+static void _media_page_on_modify_tags_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_MODIFY_TAGS_MENU _ ("Modif_y Tags...")
+static void _vala_array_add305 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_IN_LABEL _ ("Zoom _In")
+void media_page_on_increase_size (MediaPage* self);
+static void _media_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add306 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_OUT_LABEL _ ("Zoom _Out")
+void media_page_on_decrease_size (MediaPage* self);
+static void _media_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add307 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void media_page_on_flag_unflag (MediaPage* self);
+static void _media_page_on_flag_unflag_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_FLAG_MENU _ ("_Flag")
+static void _vala_array_add308 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_RATING_MENU _ ("_Set Rating")
+static void _vala_array_add309 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_increase_rating (MediaPage* self);
+static void _media_page_on_increase_rating_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_INCREASE_RATING_MENU _ ("_Increase")
+static void _vala_array_add310 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_decrease_rating (MediaPage* self);
+static void _media_page_on_decrease_rating_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_DECREASE_RATING_MENU _ ("_Decrease")
+static void _vala_array_add311 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_rate_rejected (MediaPage* self);
+static void _media_page_on_rate_rejected_gtk_action_callback (GtkAction* action, gpointer self);
+const gchar* resources_rating_menu (Rating rating);
+static void _vala_array_add312 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_rate_unrated (MediaPage* self);
+static void _media_page_on_rate_unrated_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add313 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_rate_one (MediaPage* self);
+static void _media_page_on_rate_one_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add314 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_rate_two (MediaPage* self);
+static void _media_page_on_rate_two_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add315 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_rate_three (MediaPage* self);
+static void _media_page_on_rate_three_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add316 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_rate_four (MediaPage* self);
+static void _media_page_on_rate_four_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add317 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_rate_five (MediaPage* self);
+static void _media_page_on_rate_five_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add318 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_edit_title (MediaPage* self);
+static void _media_page_on_edit_title_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EDIT_TITLE_MENU _ ("Edit _Title...")
+static void _vala_array_add319 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_edit_comment (MediaPage* self);
+static void _media_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EDIT_COMMENT_MENU _ ("Edit _Comment...")
+static void _vala_array_add320 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add321 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_FILTER_PHOTOS_MENU _ ("_Filter Photos")
+static void _vala_array_add322 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_PLAY_LABEL _ ("_Play")
+void media_page_on_play_video (MediaPage* self);
+static void _media_page_on_play_video_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add323 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add324 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_raw_developer_shotwell (MediaPage* self, GtkAction* action);
+static void _media_page_on_raw_developer_shotwell_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add325 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void media_page_on_raw_developer_camera (MediaPage* self, GtkAction* action);
+static void _media_page_on_raw_developer_camera_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add326 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static GtkToggleActionEntry* media_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1);
+GtkToggleActionEntry* page_init_collect_toggle_action_entries (Page* self, int* result_length1);
+void media_page_on_display_titles (MediaPage* self, GtkAction* action);
+static void _media_page_on_display_titles_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add327 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+void media_page_on_display_comments (MediaPage* self, GtkAction* action);
+static void _media_page_on_display_comments_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add328 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+void media_page_on_display_ratings (MediaPage* self, GtkAction* action);
+static void _media_page_on_display_ratings_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_VIEW_RATINGS_MENU _ ("_Ratings")
+#define RESOURCES_VIEW_RATINGS_TOOLTIP _ ("Display each photo's rating")
+static void _vala_array_add329 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+void media_page_on_display_tags (MediaPage* self, GtkAction* action);
+static void _media_page_on_display_tags_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add330 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void media_page_real_register_radio_actions (Page* base, GtkActionGroup* action_group);
+void media_page_get_config_photos_sort (MediaPage* self, gboolean* sort_order, gint* sort_by);
+static void _vala_array_add331 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add332 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add333 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add334 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+void media_page_on_sort_changed (MediaPage* self);
+static void _media_page_on_sort_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self);
+#define RESOURCES_SORT_ASCENDING_LABEL _ ("Sort _Ascending")
+static void _vala_array_add335 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+#define RESOURCES_SORT_DESCENDING_LABEL _ ("Sort _Descending")
+static void _vala_array_add336 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+void page_register_radio_actions (Page* self, GtkActionGroup* action_group);
+static void media_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+gboolean desktop_integration_is_send_to_installed (void);
+void page_set_action_visible (Page* self, const gchar* name, gboolean visible);
+static void media_page_update_rating_sensitivities (MediaPage* self);
+static void media_page_update_development_menu_item_sensitivity (MediaPage* self);
+DataSource* view_collection_get_selected_source_at (ViewCollection* self, gint index);
+GType media_source_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+static void media_page_update_flag_action (MediaPage* self, gint selected_count);
+void page_update_actions (Page* self, gint selected_count, gint count);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+gint view_collection_get_selected_count (ViewCollection* self);
+static gboolean media_page_can_rate_selected (MediaPage* self, Rating rating);
+static gboolean media_page_can_increase_selected_rating (MediaPage* self);
+static gboolean media_page_can_decrease_selected_rating (MediaPage* self);
+GeeList* view_collection_get_selected (ViewCollection* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType thumbnail_get_type (void) G_GNUC_CONST;
+MediaSource* thumbnail_get_media_source (Thumbnail* self);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+#define RESOURCES_UNFLAG_MENU _ ("Un_flag")
+GtkAction* page_get_action (Page* self, const gchar* name);
+static CoreViewTracker* media_page_real_get_view_tracker (CheckerboardPage* base);
+void media_page_set_display_ratings (MediaPage* self, gboolean display);
+Rating media_source_get_rating (MediaSource* self);
+gboolean rating_can_increase (Rating self);
+gboolean rating_can_decrease (Rating self);
+MediaPageZoomSliderAssembly* media_page_create_zoom_slider_assembly (MediaPage* self);
+MediaPageZoomSliderAssembly* media_page_zoom_slider_assembly_new (void);
+MediaPageZoomSliderAssembly* media_page_zoom_slider_assembly_construct (GType object_type);
+static gboolean media_page_real_on_mousewheel_up (Page* base, GdkEventScroll* event);
+void media_page_increase_zoom_level (MediaPage* self);
+gboolean page_on_mousewheel_up (Page* self, GdkEventScroll* event);
+static gboolean media_page_real_on_mousewheel_down (Page* base, GdkEventScroll* event);
+void media_page_decrease_zoom_level (MediaPage* self);
+gboolean page_on_mousewheel_down (Page* self, GdkEventScroll* event);
+void desktop_integration_send_to (GeeCollection* media);
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+DataSource* data_view_get_source (DataView* self);
+GFile* media_source_get_file (MediaSource* self);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+static gboolean media_page_real_on_app_key_pressed (Page* base, GdkEventKey* event);
+void page_activate_action (Page* self, const gchar* name);
+gboolean page_get_ctrl_pressed (Page* self);
+SearchViewFilter* checkerboard_page_get_search_view_filter (CheckerboardPage* self);
+GType rating_filter_get_type (void) G_GNUC_CONST;
+void search_view_filter_set_rating_filter (SearchViewFilter* self, RatingFilter rf);
+gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event);
+static void media_page_real_switched_to (Page* base);
+void page_switched_to (Page* self);
+void checkerboard_page_set_display_titles (CheckerboardPage* self, gboolean display);
+void checkerboard_page_set_display_comments (CheckerboardPage* self, gboolean display);
+static void media_page_set_display_tags (MediaPage* self, gboolean display);
+void checkerboard_page_cursor_to_item (CheckerboardPage* self, CheckerboardItem* item);
+void media_page_sync_sort (MediaPage* self);
+static void media_page_real_switching_from (Page* base);
+void media_page_disconnect_slider (MediaPage* self);
+void page_switching_from (Page* self);
+void media_page_connect_slider (MediaPage* self, MediaPageZoomSliderAssembly* slider);
+void media_page_on_zoom_changed (MediaPage* self);
+static void _media_page_on_zoom_changed_media_page_zoom_slider_assembly_zoom_changed (MediaPageZoomSliderAssembly* _sender, gpointer self);
+static void media_page_load_persistent_thumbnail_scale (MediaPage* self);
+static void media_page_save_persistent_thumbnail_scale (MediaPage* self);
+void configuration_facade_set_photo_thumbnail_scale (ConfigurationFacade* self, gint scale);
+gint media_page_zoom_slider_assembly_get_scale (MediaPageZoomSliderAssembly* self);
+gint configuration_facade_get_photo_thumbnail_scale (ConfigurationFacade* self);
+void media_page_zoom_slider_assembly_set_scale (MediaPageZoomSliderAssembly* self, gint scale);
+void media_page_set_thumb_size (MediaPage* self, gint new_scale);
+static void media_page_real_on_zoom_changed (MediaPage* self);
+static void media_page_real_on_export (MediaPage* self);
+static void media_page_real_on_increase_size (MediaPage* self);
+static void media_page_real_on_decrease_size (MediaPage* self);
+gpointer text_entry_dialog_mediator_ref (gpointer instance);
+void text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_text_entry_dialog_mediator (const GValue* value);
+GType text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType tags_dialog_get_type (void) G_GNUC_CONST;
+GType add_tags_dialog_get_type (void) G_GNUC_CONST;
+AddTagsDialog* add_tags_dialog_new (void);
+AddTagsDialog* add_tags_dialog_construct (GType object_type);
+gchar** add_tags_dialog_execute (AddTagsDialog* self, int* result_length1);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+HierarchicalTagIndex* hierarchical_tag_index_get_global_index (void);
+gchar** hierarchical_tag_index_get_paths_for_names_array (HierarchicalTagIndex* self, gchar** names, int names_length1, int* result_length1);
+AddTagsCommand* add_tags_command_new (gchar** paths, int paths_length1, GeeCollection* sources);
+AddTagsCommand* add_tags_command_construct (GType object_type, gchar** paths, int paths_length1, GeeCollection* sources);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType add_tags_command_get_type (void) G_GNUC_CONST;
+GType modify_tags_dialog_get_type (void) G_GNUC_CONST;
+ModifyTagsDialog* modify_tags_dialog_new (MediaSource* source);
+ModifyTagsDialog* modify_tags_dialog_construct (GType object_type, MediaSource* source);
+GType tag_get_type (void) G_GNUC_CONST;
+GeeArrayList* modify_tags_dialog_execute (ModifyTagsDialog* self);
+ModifyTagsCommand* modify_tags_command_new (MediaSource* media, GeeCollection* new_tag_list);
+ModifyTagsCommand* modify_tags_command_construct (GType object_type, MediaSource* media, GeeCollection* new_tag_list);
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+GType modify_tags_command_get_type (void) G_GNUC_CONST;
+NewEventCommand* new_event_command_new (GeeIterable* iter);
+NewEventCommand* new_event_command_construct (GType object_type, GeeIterable* iter);
+GType move_photos_command_get_type (void) G_GNUC_CONST;
+GType new_event_command_get_type (void) G_GNUC_CONST;
+GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t);
+FlagUnflagCommand* flag_unflag_command_new (GeeCollection* sources, gboolean flag);
+FlagUnflagCommand* flag_unflag_command_construct (GType object_type, GeeCollection* sources, gboolean flag);
+GType multiple_data_source_at_once_command_get_type (void) G_GNUC_CONST;
+GType flag_unflag_command_get_type (void) G_GNUC_CONST;
+static void media_page_real_on_increase_rating (MediaPage* self);
+GType multiple_data_source_command_get_type (void) G_GNUC_CONST;
+GType set_rating_command_get_type (void) G_GNUC_CONST;
+SetRatingCommand* set_rating_command_new_inc_dec (GeeIterable* iter, gboolean is_incrementing);
+SetRatingCommand* set_rating_command_construct_inc_dec (GType object_type, GeeIterable* iter, gboolean is_incrementing);
+static void media_page_real_on_decrease_rating (MediaPage* self);
+void media_page_on_set_rating (MediaPage* self, Rating rating);
+static void media_page_real_on_set_rating (MediaPage* self, Rating rating);
+SetRatingCommand* set_rating_command_new (GeeIterable* iter, Rating rating);
+SetRatingCommand* set_rating_command_construct (GType object_type, GeeIterable* iter, Rating rating);
+static void media_page_real_on_rate_rejected (MediaPage* self);
+static void media_page_real_on_rate_unrated (MediaPage* self);
+static void media_page_real_on_rate_one (MediaPage* self);
+static void media_page_real_on_rate_two (MediaPage* self);
+static void media_page_real_on_rate_three (MediaPage* self);
+static void media_page_real_on_rate_four (MediaPage* self);
+static void media_page_real_on_rate_five (MediaPage* self);
+GType library_photo_get_type (void) G_GNUC_CONST;
+void remove_photos_from_library (GeeCollection* photos);
+static void media_page_real_on_move_to_trash (MediaPage* self);
+DataView* view_collection_get_next (ViewCollection* self, DataView* view);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_new (GeeCollection* sources, gboolean to_trash);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_construct (GType object_type, GeeCollection* sources, gboolean to_trash);
+GType trash_untrash_photos_command_get_type (void) G_GNUC_CONST;
+gboolean data_collection_contains (DataCollection* self, DataObject* object);
+void checkerboard_page_set_cursor (CheckerboardPage* self, CheckerboardItem* item);
+static void media_page_real_on_edit_title (MediaPage* self);
+GType edit_title_dialog_get_type (void) G_GNUC_CONST;
+gchar* media_source_get_title (MediaSource* self);
+EditTitleDialog* edit_title_dialog_new (const gchar* photo_title);
+EditTitleDialog* edit_title_dialog_construct (GType object_type, const gchar* photo_title);
+gchar* edit_title_dialog_execute (EditTitleDialog* self);
+EditMultipleTitlesCommand* edit_multiple_titles_command_new (GeeCollection* media_sources, const gchar* new_title);
+EditMultipleTitlesCommand* edit_multiple_titles_command_construct (GType object_type, GeeCollection* media_sources, const gchar* new_title);
+GType edit_multiple_titles_command_get_type (void) G_GNUC_CONST;
+static void media_page_real_on_edit_comment (MediaPage* self);
+gpointer multi_text_entry_dialog_mediator_ref (gpointer instance);
+void multi_text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_multi_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_multi_text_entry_dialog_mediator (const GValue* value);
+GType multi_text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType edit_comment_dialog_get_type (void) G_GNUC_CONST;
+gchar* media_source_get_comment (MediaSource* self);
+EditCommentDialog* edit_comment_dialog_new (const gchar* comment, gboolean is_event);
+EditCommentDialog* edit_comment_dialog_construct (GType object_type, const gchar* comment, gboolean is_event);
+gchar* edit_comment_dialog_execute (EditCommentDialog* self);
+EditMultipleCommentsCommand* edit_multiple_comments_command_new (GeeCollection* media_sources, const gchar* new_comment);
+EditMultipleCommentsCommand* edit_multiple_comments_command_construct (GType object_type, GeeCollection* media_sources, const gchar* new_comment);
+GType edit_multiple_comments_command_get_type (void) G_GNUC_CONST;
+static void media_page_real_on_display_titles (MediaPage* self, GtkAction* action);
+void configuration_facade_set_display_photo_titles (ConfigurationFacade* self, gboolean display);
+static void media_page_real_on_display_comments (MediaPage* self, GtkAction* action);
+void configuration_facade_set_display_photo_comments (ConfigurationFacade* self, gboolean display);
+static void media_page_real_on_display_ratings (MediaPage* self, GtkAction* action);
+void configuration_facade_set_display_photo_ratings (ConfigurationFacade* self, gboolean display);
+static void media_page_real_on_display_tags (MediaPage* self, GtkAction* action);
+void configuration_facade_set_display_photo_tags (ConfigurationFacade* self, gboolean display);
+static void media_page_real_get_config_photos_sort (MediaPage* self, gboolean* sort_order, gint* sort_by);
+void media_page_set_config_photos_sort (MediaPage* self, gboolean sort_order, gint sort_by);
+static void media_page_real_set_config_photos_sort (MediaPage* self, gboolean sort_order, gint sort_by);
+static void media_page_real_on_sort_changed (MediaPage* self);
+gint media_page_get_menu_sort_by (MediaPage* self);
+gboolean media_page_get_menu_sort_order (MediaPage* self);
+static void media_page_set_view_comparator (MediaPage* self, gint sort_by, gboolean ascending);
+void media_page_developer_changed (MediaPage* self, RawDeveloper rd);
+static void media_page_real_developer_changed (MediaPage* self, RawDeveloper rd);
+gboolean raw_developer_is_equivalent (RawDeveloper self, RawDeveloper d);
+RawDeveloper photo_get_raw_developer (Photo* self);
+gboolean photo_has_transformations (Photo* self);
+gboolean dialogs_confirm_warn_developer_changed (gint number);
+GType set_raw_developer_command_get_type (void) G_GNUC_CONST;
+SetRawDeveloperCommand* set_raw_developer_command_new (GeeIterable* iter, RawDeveloper developer);
+SetRawDeveloperCommand* set_raw_developer_command_construct (GType object_type, GeeIterable* iter, RawDeveloper developer);
+static void media_page_real_set_display_titles (CheckerboardPage* base, gboolean display);
+static void media_page_real_set_display_comments (CheckerboardPage* base, gboolean display);
+static GtkRadioAction* media_page_sort_by_title_action (MediaPage* self);
+static GtkRadioAction* media_page_sort_ascending_action (MediaPage* self);
+void media_page_set_menu_sort_by (MediaPage* self, gint val);
+void media_page_set_menu_sort_order (MediaPage* self, gboolean ascending);
+gint64 thumbnail_title_ascending_comparator (void* a, void* b);
+static gint64 _thumbnail_title_ascending_comparator_comparator (void* a, void* b, gpointer self);
+gint64 thumbnail_title_descending_comparator (void* a, void* b);
+static gint64 _thumbnail_title_descending_comparator_comparator (void* a, void* b, gpointer self);
+gboolean thumbnail_title_comparator_predicate (DataObject* object, Alteration* alteration);
+static gboolean _thumbnail_title_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+gint64 thumbnail_exposure_time_ascending_comparator (void* a, void* b);
+static gint64 _thumbnail_exposure_time_ascending_comparator_comparator (void* a, void* b, gpointer self);
+gint64 thumbnail_exposure_time_desending_comparator (void* a, void* b);
+static gint64 _thumbnail_exposure_time_desending_comparator_comparator (void* a, void* b, gpointer self);
+gboolean thumbnail_exposure_time_comparator_predicate (DataObject* object, Alteration* alteration);
+static gboolean _thumbnail_exposure_time_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+gint64 thumbnail_rating_ascending_comparator (void* a, void* b);
+static gint64 _thumbnail_rating_ascending_comparator_comparator (void* a, void* b, gpointer self);
+gint64 thumbnail_rating_descending_comparator (void* a, void* b);
+static gint64 _thumbnail_rating_descending_comparator_comparator (void* a, void* b, gpointer self);
+gboolean thumbnail_rating_comparator_predicate (DataObject* object, Alteration* alteration);
+static gboolean _thumbnail_rating_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+gint64 thumbnail_filename_ascending_comparator (void* a, void* b);
+static gint64 _thumbnail_filename_ascending_comparator_comparator (void* a, void* b, gpointer self);
+gint64 thumbnail_filename_descending_comparator (void* a, void* b);
+static gint64 _thumbnail_filename_descending_comparator_comparator (void* a, void* b, gpointer self);
+gboolean thumbnail_filename_comparator_predicate (DataObject* object, Alteration* alteration);
+static gboolean _thumbnail_filename_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+gchar* media_page_get_sortby_path (MediaPage* self, gint sort_by);
+static void media_page_real_destroy (GtkWidget* base);
+void media_page_zoom_slider_assembly_increase_step (MediaPageZoomSliderAssembly* self);
+void media_page_zoom_slider_assembly_decrease_step (MediaPageZoomSliderAssembly* self);
+DataView* media_page_create_thumbnail (MediaPage* self, DataSource* source);
+static DataView* media_page_real_create_thumbnail (MediaPage* self, DataSource* source);
+Thumbnail* thumbnail_new (MediaSource* media, gint scale);
+Thumbnail* thumbnail_construct (GType object_type, MediaSource* media, gint scale);
+gboolean page_is_in_view (Page* self);
+GType checkerboard_layout_get_type (void) G_GNUC_CONST;
+CheckerboardLayout* checkerboard_page_get_checkerboard_layout (CheckerboardPage* self);
+void checkerboard_layout_set_scale (CheckerboardLayout* self, gint scale);
+gint checkerboard_layout_get_scale (CheckerboardLayout* self);
+#define MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssemblyPrivate))
+enum {
+ MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY_DUMMY_PROPERTY
+};
+#define RESOURCES_ICON_ZOOM_OUT "zoom-out.png"
+#define RESOURCES_ICON_ZOOM_SCALE 16
+static gboolean media_page_zoom_slider_assembly_on_zoom_out_pressed (MediaPageZoomSliderAssembly* self, GdkEventButton* event);
+static gboolean _media_page_zoom_slider_assembly_on_zoom_out_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+gdouble media_page_zoom_slider_assembly_scale_to_slider (gint value);
+static void media_page_zoom_slider_assembly_on_slider_changed (MediaPageZoomSliderAssembly* self);
+static void _media_page_zoom_slider_assembly_on_slider_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+#define RESOURCES_ICON_ZOOM_IN "zoom-in.png"
+static gboolean media_page_zoom_slider_assembly_on_zoom_in_pressed (MediaPageZoomSliderAssembly* self, GdkEventButton* event);
+static gboolean _media_page_zoom_slider_assembly_on_zoom_in_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+gint media_page_zoom_slider_assembly_slider_to_scale (gdouble value);
+void media_page_zoom_slider_assembly_snap_to_min (MediaPageZoomSliderAssembly* self);
+void media_page_zoom_slider_assembly_snap_to_max (MediaPageZoomSliderAssembly* self);
+static void media_page_zoom_slider_assembly_finalize (GObject* obj);
+static void media_page_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+MediaSourceItem* media_source_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment) {
+ MediaSourceItem * self = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ PangoAlignment _tmp5_ = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), NULL);
+#line 16 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (initial_pixbuf_dim != NULL, NULL);
+#line 16 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (title != NULL, NULL);
+#line 18 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = source;
+#line 18 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = *initial_pixbuf_dim;
+#line 18 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = title;
+#line 18 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = comment;
+#line 18 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = marked_up;
+#line 18 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = alignment;
+#line 18 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = (MediaSourceItem*) checkerboard_item_construct (object_type, _tmp0_, &_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 19 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = media_source_item_basis_sprocket_pixbuf;
+#line 19 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp6_ == NULL) {
+#line 1546 "MediaPage.c"
+ GdkPixbuf* _tmp7_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = resources_load_icon ("sprocket.png", 0);
+#line 20 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (media_source_item_basis_sprocket_pixbuf);
+#line 20 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_source_item_basis_sprocket_pixbuf = _tmp7_;
+#line 1554 "MediaPage.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return self;
+#line 1558 "MediaPage.c"
+}
+
+
+MediaSourceItem* media_source_item_new (ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment) {
+#line 16 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return media_source_item_construct (TYPE_MEDIA_SOURCE_ITEM, source, initial_pixbuf_dim, title, comment, marked_up, alignment);
+#line 1565 "MediaPage.c"
+}
+
+
+static void media_source_item_real_paint_image (CheckerboardItem* base, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin) {
+ MediaSourceItem * self;
+ Dimensions pixbuf_dim = {0};
+ GdkPixbuf* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ cairo_t* _tmp21_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+ GdkPoint _tmp23_ = {0};
+ gboolean _tmp24_ = FALSE;
+#line 23 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem);
+#line 23 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (ctx != NULL);
+#line 23 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 23 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (origin != NULL);
+#line 25 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = pixbuf;
+#line 25 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ dimensions_for_pixbuf (_tmp0_, &_tmp1_);
+#line 25 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ pixbuf_dim = _tmp1_;
+#line 30 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = self->priv->enable_sprockets;
+#line 30 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!_tmp2_) {
+#line 31 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_item_set_horizontal_trinket_offset (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), 0);
+#line 1599 "MediaPage.c"
+ } else {
+ gdouble reduction_factor = 0.0;
+ gint _tmp3_ = 0;
+ gint reduced_size = 0;
+ gdouble _tmp4_ = 0.0;
+ GdkPixbuf* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 33 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = dimensions_major_axis (&pixbuf_dim);
+#line 33 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ reduction_factor = ((gdouble) _tmp3_) / ((gdouble) THUMBNAIL_CACHE_SIZE_LARGEST);
+#line 35 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = reduction_factor;
+#line 35 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = media_source_item_basis_sprocket_pixbuf;
+#line 35 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = gdk_pixbuf_get_width (_tmp5_);
+#line 35 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 35 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ reduced_size = (gint) (_tmp4_ * _tmp7_);
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = media_source_item_current_sprocket_pixbuf;
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp9_ == NULL) {
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = TRUE;
+#line 1633 "MediaPage.c"
+ } else {
+ gint _tmp10_ = 0;
+ GdkPixbuf* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = reduced_size;
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = media_source_item_current_sprocket_pixbuf;
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = gdk_pixbuf_get_width (_tmp11_);
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = _tmp12_;
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _tmp10_ != _tmp13_;
+#line 1649 "MediaPage.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp8_) {
+#line 1653 "MediaPage.c"
+ GdkPixbuf* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkPixbuf* _tmp17_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = media_source_item_basis_sprocket_pixbuf;
+#line 38 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = reduced_size;
+#line 38 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = reduced_size;
+#line 38 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = gdk_pixbuf_scale_simple (_tmp14_, _tmp15_, _tmp16_, GDK_INTERP_HYPER);
+#line 38 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (media_source_item_current_sprocket_pixbuf);
+#line 38 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_source_item_current_sprocket_pixbuf = _tmp17_;
+#line 1670 "MediaPage.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = media_source_item_current_sprocket_pixbuf;
+#line 42 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = gdk_pixbuf_get_width (_tmp18_);
+#line 42 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = _tmp19_;
+#line 42 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_item_set_horizontal_trinket_offset (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp20_);
+#line 1680 "MediaPage.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = ctx;
+#line 45 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = pixbuf;
+#line 45 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = *origin;
+#line 45 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ CHECKERBOARD_ITEM_CLASS (media_source_item_parent_class)->paint_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp21_, _tmp22_, &_tmp23_);
+#line 47 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = self->priv->enable_sprockets;
+#line 47 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp24_) {
+#line 1694 "MediaPage.c"
+ cairo_t* _tmp25_ = NULL;
+ GdkPoint _tmp26_ = {0};
+ Dimensions _tmp27_ = {0};
+#line 48 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = ctx;
+#line 48 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = *origin;
+#line 48 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = pixbuf_dim;
+#line 48 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_source_item_paint_sprockets (self, _tmp25_, &_tmp26_, &_tmp27_);
+#line 1706 "MediaPage.c"
+ }
+}
+
+
+void media_source_item_paint_one_sprocket (MediaSourceItem* self, cairo_t* ctx, GdkPoint* origin) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ cairo_t* _tmp7_ = NULL;
+ cairo_t* _tmp8_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_ITEM (self));
+#line 52 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (ctx != NULL);
+#line 52 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (origin != NULL);
+#line 53 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = ctx;
+#line 53 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_save (_tmp0_);
+#line 54 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = ctx;
+#line 54 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_source_item_current_sprocket_pixbuf;
+#line 54 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = *origin;
+#line 54 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_.x;
+#line 54 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = *origin;
+#line 54 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_.y;
+#line 54 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gdk_cairo_set_source_pixbuf (_tmp1_, _tmp2_, (gdouble) _tmp4_, (gdouble) _tmp6_);
+#line 55 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = ctx;
+#line 55 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_paint (_tmp7_);
+#line 56 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = ctx;
+#line 56 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_restore (_tmp8_);
+#line 1753 "MediaPage.c"
+}
+
+
+void media_source_item_paint_sprockets (MediaSourceItem* self, cairo_t* ctx, GdkPoint* item_origin, Dimensions* item_dimensions) {
+ gint num_sprockets = 0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkPoint left_paint_location = {0};
+ GdkPoint _tmp5_ = {0};
+ GdkPoint right_paint_location = {0};
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkPixbuf* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint straggler_pixels = 0;
+ Dimensions _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ GdkPixbuf* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+#line 59 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_ITEM (self));
+#line 59 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (ctx != NULL);
+#line 59 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (item_origin != NULL);
+#line 59 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (item_dimensions != NULL);
+#line 61 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = *item_dimensions;
+#line 61 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_.height;
+#line 61 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_source_item_current_sprocket_pixbuf;
+#line 61 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = gdk_pixbuf_get_height (_tmp2_);
+#line 61 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_;
+#line 61 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ num_sprockets = _tmp1_ / _tmp4_;
+#line 63 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = *item_origin;
+#line 63 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ left_paint_location = _tmp5_;
+#line 64 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = *item_origin;
+#line 64 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ right_paint_location = _tmp6_;
+#line 65 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = right_paint_location.x;
+#line 65 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = *item_dimensions;
+#line 65 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_.width;
+#line 65 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = media_source_item_current_sprocket_pixbuf;
+#line 65 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = gdk_pixbuf_get_width (_tmp10_);
+#line 65 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 65 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ right_paint_location.x = _tmp7_ + (_tmp9_ - _tmp12_);
+#line 1823 "MediaPage.c"
+ {
+ gint i = 0;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ i = 0;
+#line 1828 "MediaPage.c"
+ {
+ gboolean _tmp13_ = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = TRUE;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 1835 "MediaPage.c"
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ cairo_t* _tmp17_ = NULL;
+ GdkPoint _tmp18_ = {0};
+ cairo_t* _tmp19_ = NULL;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkPixbuf* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ GdkPixbuf* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!_tmp13_) {
+#line 1852 "MediaPage.c"
+ gint _tmp14_ = 0;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = i;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ i = _tmp14_ + 1;
+#line 1858 "MediaPage.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = i;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = num_sprockets;
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!(_tmp15_ < _tmp16_)) {
+#line 66 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 1870 "MediaPage.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = ctx;
+#line 67 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = left_paint_location;
+#line 67 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_source_item_paint_one_sprocket (self, _tmp17_, &_tmp18_);
+#line 68 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = ctx;
+#line 68 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = right_paint_location;
+#line 68 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_source_item_paint_one_sprocket (self, _tmp19_, &_tmp20_);
+#line 70 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = left_paint_location.y;
+#line 70 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = media_source_item_current_sprocket_pixbuf;
+#line 70 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = gdk_pixbuf_get_height (_tmp22_);
+#line 70 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = _tmp23_;
+#line 70 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ left_paint_location.y = _tmp21_ + _tmp24_;
+#line 71 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = right_paint_location.y;
+#line 71 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = media_source_item_current_sprocket_pixbuf;
+#line 71 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = gdk_pixbuf_get_height (_tmp26_);
+#line 71 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = _tmp27_;
+#line 71 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ right_paint_location.y = _tmp25_ + _tmp28_;
+#line 1904 "MediaPage.c"
+ }
+ }
+ }
+#line 74 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_ = *item_dimensions;
+#line 74 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = _tmp29_.height;
+#line 74 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = media_source_item_current_sprocket_pixbuf;
+#line 74 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_ = gdk_pixbuf_get_height (_tmp31_);
+#line 74 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = _tmp32_;
+#line 74 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ straggler_pixels = _tmp30_ % _tmp33_;
+#line 75 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_ = straggler_pixels;
+#line 75 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp34_ > 0) {
+#line 1924 "MediaPage.c"
+ cairo_t* _tmp35_ = NULL;
+ cairo_t* _tmp36_ = NULL;
+ GdkPixbuf* _tmp37_ = NULL;
+ GdkPoint _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ GdkPoint _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ cairo_t* _tmp42_ = NULL;
+ GdkPoint _tmp43_ = {0};
+ gint _tmp44_ = 0;
+ GdkPoint _tmp45_ = {0};
+ gint _tmp46_ = 0;
+ GdkPixbuf* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ cairo_t* _tmp50_ = NULL;
+ cairo_t* _tmp51_ = NULL;
+ GdkPixbuf* _tmp52_ = NULL;
+ GdkPoint _tmp53_ = {0};
+ gint _tmp54_ = 0;
+ GdkPoint _tmp55_ = {0};
+ gint _tmp56_ = 0;
+ cairo_t* _tmp57_ = NULL;
+ GdkPoint _tmp58_ = {0};
+ gint _tmp59_ = 0;
+ GdkPoint _tmp60_ = {0};
+ gint _tmp61_ = 0;
+ GdkPixbuf* _tmp62_ = NULL;
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+ cairo_t* _tmp65_ = NULL;
+ cairo_t* _tmp66_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp35_ = ctx;
+#line 76 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_save (_tmp35_);
+#line 78 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36_ = ctx;
+#line 78 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37_ = media_source_item_current_sprocket_pixbuf;
+#line 78 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp38_ = left_paint_location;
+#line 78 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_ = _tmp38_.x;
+#line 78 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp40_ = left_paint_location;
+#line 78 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp41_ = _tmp40_.y;
+#line 78 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gdk_cairo_set_source_pixbuf (_tmp36_, _tmp37_, (gdouble) _tmp39_, (gdouble) _tmp41_);
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_ = ctx;
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp43_ = left_paint_location;
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp44_ = _tmp43_.x;
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp45_ = left_paint_location;
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp46_ = _tmp45_.y;
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp47_ = media_source_item_current_sprocket_pixbuf;
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp48_ = gdk_pixbuf_get_width (_tmp47_);
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp49_ = straggler_pixels;
+#line 80 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_rectangle (_tmp42_, (gdouble) _tmp44_, (gdouble) _tmp46_, (gdouble) _tmp48_, (gdouble) _tmp49_);
+#line 82 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp50_ = ctx;
+#line 82 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_fill (_tmp50_);
+#line 84 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp51_ = ctx;
+#line 84 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp52_ = media_source_item_current_sprocket_pixbuf;
+#line 84 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp53_ = right_paint_location;
+#line 84 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp54_ = _tmp53_.x;
+#line 84 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp55_ = right_paint_location;
+#line 84 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp56_ = _tmp55_.y;
+#line 84 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gdk_cairo_set_source_pixbuf (_tmp51_, _tmp52_, (gdouble) _tmp54_, (gdouble) _tmp56_);
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp57_ = ctx;
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp58_ = right_paint_location;
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp59_ = _tmp58_.x;
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp60_ = right_paint_location;
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp61_ = _tmp60_.y;
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp62_ = media_source_item_current_sprocket_pixbuf;
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp63_ = gdk_pixbuf_get_width (_tmp62_);
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp64_ = straggler_pixels;
+#line 86 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_rectangle (_tmp57_, (gdouble) _tmp59_, (gdouble) _tmp61_, (gdouble) _tmp63_, (gdouble) _tmp64_);
+#line 88 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp65_ = ctx;
+#line 88 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_fill (_tmp65_);
+#line 90 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp66_ = ctx;
+#line 90 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ cairo_restore (_tmp66_);
+#line 2037 "MediaPage.c"
+ }
+}
+
+
+void media_source_item_set_enable_sprockets (MediaSourceItem* self, gboolean enable_sprockets) {
+ gboolean _tmp0_ = FALSE;
+#line 94 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_ITEM (self));
+#line 95 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = enable_sprockets;
+#line 95 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->enable_sprockets = _tmp0_;
+#line 2050 "MediaPage.c"
+}
+
+
+void media_source_item_set_title (MediaSourceItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ PangoAlignment _tmp2_ = 0;
+#line 98 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE_ITEM (self));
+#line 98 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (text != NULL);
+#line 100 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = text;
+#line 100 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = marked_up;
+#line 100 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = alignment;
+#line 100 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_item_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp0_, _tmp1_, _tmp2_);
+#line 101 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (self->priv->natural_collation_key);
+#line 101 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->natural_collation_key = NULL;
+#line 2074 "MediaPage.c"
+}
+
+
+gchar* media_source_item_get_natural_collation_key (MediaSourceItem* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE_ITEM (self), NULL);
+#line 105 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->natural_collation_key;
+#line 105 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ == NULL) {
+#line 2089 "MediaPage.c"
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = checkerboard_item_get_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 106 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = natural_collate_collate_key (_tmp1_);
+#line 106 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (self->priv->natural_collation_key);
+#line 106 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->natural_collation_key = _tmp2_;
+#line 2100 "MediaPage.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = self->priv->natural_collation_key;
+#line 108 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 108 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp4_;
+#line 108 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 2110 "MediaPage.c"
+}
+
+
+static void media_source_item_class_init (MediaSourceItemClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_source_item_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_type_class_add_private (klass, sizeof (MediaSourceItemPrivate));
+#line 7 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((CheckerboardItemClass *) klass)->paint_image = media_source_item_real_paint_image;
+#line 7 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = media_source_item_finalize;
+#line 2123 "MediaPage.c"
+}
+
+
+static void media_source_item_instance_init (MediaSourceItem * self) {
+#line 7 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv = MEDIA_SOURCE_ITEM_GET_PRIVATE (self);
+#line 11 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->enable_sprockets = FALSE;
+#line 12 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->natural_collation_key = NULL;
+#line 2134 "MediaPage.c"
+}
+
+
+static void media_source_item_finalize (GObject* obj) {
+ MediaSourceItem * self;
+#line 7 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem);
+#line 12 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (self->priv->natural_collation_key);
+#line 7 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_OBJECT_CLASS (media_source_item_parent_class)->finalize (obj);
+#line 2146 "MediaPage.c"
+}
+
+
+GType media_source_item_get_type (void) {
+ static volatile gsize media_source_item_type_id__volatile = 0;
+ if (g_once_init_enter (&media_source_item_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaSourceItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_source_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaSourceItem), 0, (GInstanceInitFunc) media_source_item_instance_init, NULL };
+ GType media_source_item_type_id;
+ media_source_item_type_id = g_type_register_static (TYPE_CHECKERBOARD_ITEM, "MediaSourceItem", &g_define_type_info, 0);
+ g_once_init_leave (&media_source_item_type_id__volatile, media_source_item_type_id);
+ }
+ return media_source_item_type_id__volatile;
+}
+
+
+GType media_page_sort_by_get_type (void) {
+ static volatile gsize media_page_sort_by_type_id__volatile = 0;
+ if (g_once_init_enter (&media_page_sort_by_type_id__volatile)) {
+ static const GEnumValue values[] = {{MEDIA_PAGE_SORT_BY_MIN, "MEDIA_PAGE_SORT_BY_MIN", "min"}, {MEDIA_PAGE_SORT_BY_TITLE, "MEDIA_PAGE_SORT_BY_TITLE", "title"}, {MEDIA_PAGE_SORT_BY_EXPOSURE_DATE, "MEDIA_PAGE_SORT_BY_EXPOSURE_DATE", "exposure-date"}, {MEDIA_PAGE_SORT_BY_RATING, "MEDIA_PAGE_SORT_BY_RATING", "rating"}, {MEDIA_PAGE_SORT_BY_FILENAME, "MEDIA_PAGE_SORT_BY_FILENAME", "filename"}, {MEDIA_PAGE_SORT_BY_MAX, "MEDIA_PAGE_SORT_BY_MAX", "max"}, {0, NULL, NULL}};
+ GType media_page_sort_by_type_id;
+ media_page_sort_by_type_id = g_enum_register_static ("MediaPageSortBy", values);
+ g_once_init_leave (&media_page_sort_by_type_id__volatile, media_page_sort_by_type_id);
+ }
+ return media_page_sort_by_type_id__volatile;
+}
+
+
+static void _media_page_on_media_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 252 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_media_altered ((MediaPage*) self, items);
+#line 2177 "MediaPage.c"
+}
+
+
+MediaPage* media_page_construct (GType object_type, const gchar* page_name) {
+ MediaPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ MediaViewTracker* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ ConfigFacade* _tmp10_ = NULL;
+ ConfigFacade* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GValue _tmp13_ = {0};
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ConfigFacade* _tmp16_ = NULL;
+ ConfigFacade* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ GValue _tmp19_ = {0};
+ ViewCollection* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ ConfigFacade* _tmp22_ = NULL;
+ ConfigFacade* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ GValue _tmp25_ = {0};
+ ViewCollection* _tmp26_ = NULL;
+ ViewCollection* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ GValue _tmp29_ = {0};
+ ViewCollection* _tmp30_ = NULL;
+ ViewCollection* _tmp31_ = NULL;
+ ConfigFacade* _tmp32_ = NULL;
+ ConfigFacade* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ GValue _tmp35_ = {0};
+ ViewCollection* _tmp36_ = NULL;
+ ViewCollection* _tmp37_ = NULL;
+ DragAndDropHandler* _tmp38_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (page_name != NULL, NULL);
+#line 248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_name;
+#line 248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = (MediaPage*) checkerboard_page_construct (object_type, _tmp0_);
+#line 250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = media_view_tracker_new (_tmp2_);
+#line 250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->tracker = _tmp3_;
+#line 250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 252 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 252 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 252 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _media_page_on_media_altered_data_collection_items_altered, self, 0);
+#line 252 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 254 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 254 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 254 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
+#line 254 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = config_facade_get_instance ();
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = configuration_facade_get_display_photo_titles (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp13_, G_TYPE_BOOLEAN);
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_boolean (&_tmp13_, _tmp12_);
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection), CHECKERBOARD_ITEM_PROP_SHOW_TITLES, &_tmp13_, NULL, NULL);
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp13_) ? (g_value_unset (&_tmp13_), NULL) : NULL;
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 255 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp9_);
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _tmp14_;
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = config_facade_get_instance ();
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _tmp16_;
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = configuration_facade_get_display_photo_comments (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp19_, G_TYPE_BOOLEAN);
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_boolean (&_tmp19_, _tmp18_);
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_COLLECTION, DataCollection), CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS, &_tmp19_, NULL, NULL);
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp19_) ? (g_value_unset (&_tmp19_), NULL) : NULL;
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp17_);
+#line 257 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = _tmp20_;
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = config_facade_get_instance ();
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = _tmp22_;
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = configuration_facade_get_display_photo_tags (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp25_, G_TYPE_BOOLEAN);
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_boolean (&_tmp25_, _tmp24_);
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection), THUMBNAIL_PROP_SHOW_TAGS, &_tmp25_, NULL, NULL);
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp25_) ? (g_value_unset (&_tmp25_), NULL) : NULL;
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp23_);
+#line 259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp21_);
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = _tmp26_;
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = media_page_get_thumb_size (self);
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp29_, G_TYPE_INT);
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_int (&_tmp29_, _tmp28_);
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_DATA_COLLECTION, DataCollection), THUMBNAIL_PROP_SIZE, &_tmp29_, NULL, NULL);
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp29_) ? (g_value_unset (&_tmp29_), NULL) : NULL;
+#line 261 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp27_);
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = _tmp30_;
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_ = config_facade_get_instance ();
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = _tmp32_;
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_ = configuration_facade_get_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp35_, G_TYPE_BOOLEAN);
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_boolean (&_tmp35_, _tmp34_);
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_COLLECTION, DataCollection), THUMBNAIL_PROP_SHOW_RATINGS, &_tmp35_, NULL, NULL);
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp35_) ? (g_value_unset (&_tmp35_), NULL) : NULL;
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp31_);
+#line 264 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 264 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37_ = _tmp36_;
+#line 264 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, TYPE_DATA_COLLECTION, DataCollection));
+#line 264 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp37_);
+#line 267 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp38_ = drag_and_drop_handler_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 267 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _drag_and_drop_handler_unref0 (self->priv->dnd_handler);
+#line 267 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->dnd_handler = _tmp38_;
+#line 247 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return self;
+#line 2376 "MediaPage.c"
+}
+
+
+static gint media_page_compute_zoom_scale_increase (gint current_scale) {
+ gint result = 0;
+ gint new_scale = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 271 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = current_scale;
+#line 271 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_scale = _tmp0_ + MEDIA_PAGE_MANUAL_STEPPING;
+#line 272 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = thumbnail_get_MIN_SCALE ();
+#line 272 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 272 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = thumbnail_get_MAX_SCALE ();
+#line 272 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_;
+#line 272 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = CLAMP (new_scale, _tmp2_, _tmp4_);
+#line 272 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp5_;
+#line 272 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 2407 "MediaPage.c"
+}
+
+
+static gint media_page_compute_zoom_scale_decrease (gint current_scale) {
+ gint result = 0;
+ gint new_scale = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 276 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = current_scale;
+#line 276 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_scale = _tmp0_ - MEDIA_PAGE_MANUAL_STEPPING;
+#line 277 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = thumbnail_get_MIN_SCALE ();
+#line 277 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 277 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = thumbnail_get_MAX_SCALE ();
+#line 277 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_;
+#line 277 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = CLAMP (new_scale, _tmp2_, _tmp4_);
+#line 277 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp5_;
+#line 277 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 2438 "MediaPage.c"
+}
+
+
+static void media_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ MediaPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 280 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 280 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 281 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = ui_filenames;
+#line 281 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ PAGE_CLASS (media_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp0_);
+#line 283 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = ui_filenames;
+#line 283 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "media.ui");
+#line 2458 "MediaPage.c"
+}
+
+
+static void _media_page_on_export_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_export ((MediaPage*) self);
+#line 2465 "MediaPage.c"
+}
+
+
+static void _vala_array_add297 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2476 "MediaPage.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2480 "MediaPage.c"
+}
+
+
+static void _media_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_send_to ((MediaPage*) self);
+#line 2487 "MediaPage.c"
+}
+
+
+static void _vala_array_add298 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2498 "MediaPage.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2502 "MediaPage.c"
+}
+
+
+static void _vala_array_add299 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2513 "MediaPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2517 "MediaPage.c"
+}
+
+
+static void _media_page_on_remove_from_library_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_remove_from_library ((MediaPage*) self);
+#line 2524 "MediaPage.c"
+}
+
+
+static void _vala_array_add300 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2535 "MediaPage.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2539 "MediaPage.c"
+}
+
+
+static void _media_page_on_move_to_trash_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_move_to_trash ((MediaPage*) self);
+#line 2546 "MediaPage.c"
+}
+
+
+static void _vala_array_add301 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2557 "MediaPage.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2561 "MediaPage.c"
+}
+
+
+static void _media_page_on_new_event_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_new_event ((MediaPage*) self);
+#line 2568 "MediaPage.c"
+}
+
+
+static void _vala_array_add302 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2579 "MediaPage.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2583 "MediaPage.c"
+}
+
+
+static void _media_page_on_add_tags_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_add_tags ((MediaPage*) self);
+#line 2590 "MediaPage.c"
+}
+
+
+static void _vala_array_add303 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2601 "MediaPage.c"
+ }
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2605 "MediaPage.c"
+}
+
+
+static void _vala_array_add304 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2616 "MediaPage.c"
+ }
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2620 "MediaPage.c"
+}
+
+
+static void _media_page_on_modify_tags_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_modify_tags ((MediaPage*) self);
+#line 2627 "MediaPage.c"
+}
+
+
+static void _vala_array_add305 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2638 "MediaPage.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2642 "MediaPage.c"
+}
+
+
+static void _media_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_increase_size ((MediaPage*) self);
+#line 2649 "MediaPage.c"
+}
+
+
+static void _vala_array_add306 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2660 "MediaPage.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2664 "MediaPage.c"
+}
+
+
+static void _media_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_decrease_size ((MediaPage*) self);
+#line 2671 "MediaPage.c"
+}
+
+
+static void _vala_array_add307 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2682 "MediaPage.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2686 "MediaPage.c"
+}
+
+
+static void _media_page_on_flag_unflag_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_flag_unflag ((MediaPage*) self);
+#line 2693 "MediaPage.c"
+}
+
+
+static void _vala_array_add308 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2704 "MediaPage.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2708 "MediaPage.c"
+}
+
+
+static void _vala_array_add309 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2719 "MediaPage.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2723 "MediaPage.c"
+}
+
+
+static void _media_page_on_increase_rating_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_increase_rating ((MediaPage*) self);
+#line 2730 "MediaPage.c"
+}
+
+
+static void _vala_array_add310 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2741 "MediaPage.c"
+ }
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2745 "MediaPage.c"
+}
+
+
+static void _media_page_on_decrease_rating_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_decrease_rating ((MediaPage*) self);
+#line 2752 "MediaPage.c"
+}
+
+
+static void _vala_array_add311 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2763 "MediaPage.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2767 "MediaPage.c"
+}
+
+
+static void _media_page_on_rate_rejected_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_rate_rejected ((MediaPage*) self);
+#line 2774 "MediaPage.c"
+}
+
+
+static void _vala_array_add312 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2785 "MediaPage.c"
+ }
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2789 "MediaPage.c"
+}
+
+
+static void _media_page_on_rate_unrated_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_rate_unrated ((MediaPage*) self);
+#line 2796 "MediaPage.c"
+}
+
+
+static void _vala_array_add313 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2807 "MediaPage.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2811 "MediaPage.c"
+}
+
+
+static void _media_page_on_rate_one_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_rate_one ((MediaPage*) self);
+#line 2818 "MediaPage.c"
+}
+
+
+static void _vala_array_add314 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2829 "MediaPage.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2833 "MediaPage.c"
+}
+
+
+static void _media_page_on_rate_two_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_rate_two ((MediaPage*) self);
+#line 2840 "MediaPage.c"
+}
+
+
+static void _vala_array_add315 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2851 "MediaPage.c"
+ }
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2855 "MediaPage.c"
+}
+
+
+static void _media_page_on_rate_three_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_rate_three ((MediaPage*) self);
+#line 2862 "MediaPage.c"
+}
+
+
+static void _vala_array_add316 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2873 "MediaPage.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2877 "MediaPage.c"
+}
+
+
+static void _media_page_on_rate_four_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_rate_four ((MediaPage*) self);
+#line 2884 "MediaPage.c"
+}
+
+
+static void _vala_array_add317 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2895 "MediaPage.c"
+ }
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2899 "MediaPage.c"
+}
+
+
+static void _media_page_on_rate_five_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_rate_five ((MediaPage*) self);
+#line 2906 "MediaPage.c"
+}
+
+
+static void _vala_array_add318 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2917 "MediaPage.c"
+ }
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2921 "MediaPage.c"
+}
+
+
+static void _media_page_on_edit_title_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_edit_title ((MediaPage*) self);
+#line 2928 "MediaPage.c"
+}
+
+
+static void _vala_array_add319 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2939 "MediaPage.c"
+ }
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2943 "MediaPage.c"
+}
+
+
+static void _media_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_edit_comment ((MediaPage*) self);
+#line 2950 "MediaPage.c"
+}
+
+
+static void _vala_array_add320 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2961 "MediaPage.c"
+ }
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2965 "MediaPage.c"
+}
+
+
+static void _vala_array_add321 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2976 "MediaPage.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2980 "MediaPage.c"
+}
+
+
+static void _vala_array_add322 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2991 "MediaPage.c"
+ }
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 2995 "MediaPage.c"
+}
+
+
+static void _media_page_on_play_video_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_play_video ((MediaPage*) self);
+#line 3002 "MediaPage.c"
+}
+
+
+static void _vala_array_add323 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 3013 "MediaPage.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 3017 "MediaPage.c"
+}
+
+
+static void _vala_array_add324 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 3028 "MediaPage.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 3032 "MediaPage.c"
+}
+
+
+static void _media_page_on_raw_developer_shotwell_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_raw_developer_shotwell ((MediaPage*) self, action);
+#line 3039 "MediaPage.c"
+}
+
+
+static void _vala_array_add325 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 3050 "MediaPage.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 3054 "MediaPage.c"
+}
+
+
+static void _media_page_on_raw_developer_camera_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_raw_developer_camera ((MediaPage*) self, action);
+#line 3061 "MediaPage.c"
+}
+
+
+static void _vala_array_add326 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 3072 "MediaPage.c"
+ }
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 3076 "MediaPage.c"
+}
+
+
+static GtkActionEntry* media_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ MediaPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry export = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry send_to = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry send_to_context_menu = {0};
+ GtkActionEntry _tmp8_ = {0};
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry remove_from_library = {0};
+ GtkActionEntry _tmp11_ = {0};
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkActionEntry _tmp13_ = {0};
+ GtkActionEntry move_to_trash = {0};
+ GtkActionEntry _tmp14_ = {0};
+ GtkActionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GtkActionEntry _tmp16_ = {0};
+ GtkActionEntry new_event = {0};
+ GtkActionEntry _tmp17_ = {0};
+ GtkActionEntry* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ GtkActionEntry _tmp19_ = {0};
+ GtkActionEntry add_tags = {0};
+ GtkActionEntry _tmp20_ = {0};
+ GtkActionEntry* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GtkActionEntry _tmp22_ = {0};
+ GtkActionEntry add_tags_context_menu = {0};
+ GtkActionEntry _tmp23_ = {0};
+ GtkActionEntry* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ GtkActionEntry _tmp25_ = {0};
+ GtkActionEntry modify_tags = {0};
+ GtkActionEntry _tmp26_ = {0};
+ GtkActionEntry* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ GtkActionEntry _tmp28_ = {0};
+ GtkActionEntry increase_size = {0};
+ GtkActionEntry _tmp29_ = {0};
+ const gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ GtkActionEntry* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ GtkActionEntry _tmp33_ = {0};
+ GtkActionEntry decrease_size = {0};
+ GtkActionEntry _tmp34_ = {0};
+ const gchar* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ GtkActionEntry* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ GtkActionEntry _tmp38_ = {0};
+ GtkActionEntry flag = {0};
+ GtkActionEntry _tmp39_ = {0};
+ GtkActionEntry* _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ GtkActionEntry _tmp41_ = {0};
+ GtkActionEntry set_rating = {0};
+ GtkActionEntry _tmp42_ = {0};
+ GtkActionEntry* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ GtkActionEntry _tmp44_ = {0};
+ GtkActionEntry increase_rating = {0};
+ GtkActionEntry _tmp45_ = {0};
+ GtkActionEntry* _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ GtkActionEntry _tmp47_ = {0};
+ GtkActionEntry decrease_rating = {0};
+ GtkActionEntry _tmp48_ = {0};
+ GtkActionEntry* _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ GtkActionEntry _tmp50_ = {0};
+ GtkActionEntry rate_rejected = {0};
+ GtkActionEntry _tmp51_ = {0};
+ const gchar* _tmp52_ = NULL;
+ GtkActionEntry* _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ GtkActionEntry _tmp54_ = {0};
+ GtkActionEntry rate_unrated = {0};
+ GtkActionEntry _tmp55_ = {0};
+ const gchar* _tmp56_ = NULL;
+ GtkActionEntry* _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ GtkActionEntry _tmp58_ = {0};
+ GtkActionEntry rate_one = {0};
+ GtkActionEntry _tmp59_ = {0};
+ const gchar* _tmp60_ = NULL;
+ GtkActionEntry* _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+ GtkActionEntry _tmp62_ = {0};
+ GtkActionEntry rate_two = {0};
+ GtkActionEntry _tmp63_ = {0};
+ const gchar* _tmp64_ = NULL;
+ GtkActionEntry* _tmp65_ = NULL;
+ gint _tmp65__length1 = 0;
+ GtkActionEntry _tmp66_ = {0};
+ GtkActionEntry rate_three = {0};
+ GtkActionEntry _tmp67_ = {0};
+ const gchar* _tmp68_ = NULL;
+ GtkActionEntry* _tmp69_ = NULL;
+ gint _tmp69__length1 = 0;
+ GtkActionEntry _tmp70_ = {0};
+ GtkActionEntry rate_four = {0};
+ GtkActionEntry _tmp71_ = {0};
+ const gchar* _tmp72_ = NULL;
+ GtkActionEntry* _tmp73_ = NULL;
+ gint _tmp73__length1 = 0;
+ GtkActionEntry _tmp74_ = {0};
+ GtkActionEntry rate_five = {0};
+ GtkActionEntry _tmp75_ = {0};
+ const gchar* _tmp76_ = NULL;
+ GtkActionEntry* _tmp77_ = NULL;
+ gint _tmp77__length1 = 0;
+ GtkActionEntry _tmp78_ = {0};
+ GtkActionEntry edit_title = {0};
+ GtkActionEntry _tmp79_ = {0};
+ GtkActionEntry* _tmp80_ = NULL;
+ gint _tmp80__length1 = 0;
+ GtkActionEntry _tmp81_ = {0};
+ GtkActionEntry edit_comment = {0};
+ GtkActionEntry _tmp82_ = {0};
+ GtkActionEntry* _tmp83_ = NULL;
+ gint _tmp83__length1 = 0;
+ GtkActionEntry _tmp84_ = {0};
+ GtkActionEntry sort_photos = {0};
+ GtkActionEntry _tmp85_ = {0};
+ const gchar* _tmp86_ = NULL;
+ GtkActionEntry* _tmp87_ = NULL;
+ gint _tmp87__length1 = 0;
+ GtkActionEntry _tmp88_ = {0};
+ GtkActionEntry filter_photos = {0};
+ GtkActionEntry _tmp89_ = {0};
+ GtkActionEntry* _tmp90_ = NULL;
+ gint _tmp90__length1 = 0;
+ GtkActionEntry _tmp91_ = {0};
+ GtkActionEntry play = {0};
+ GtkActionEntry _tmp92_ = {0};
+ const gchar* _tmp93_ = NULL;
+ const gchar* _tmp94_ = NULL;
+ GtkActionEntry* _tmp95_ = NULL;
+ gint _tmp95__length1 = 0;
+ GtkActionEntry _tmp96_ = {0};
+ GtkActionEntry raw_developer = {0};
+ GtkActionEntry _tmp97_ = {0};
+ const gchar* _tmp98_ = NULL;
+ GtkActionEntry* _tmp99_ = NULL;
+ gint _tmp99__length1 = 0;
+ GtkActionEntry _tmp100_ = {0};
+ GtkActionEntry dev_shotwell = {0};
+ GtkActionEntry _tmp101_ = {0};
+ const gchar* _tmp102_ = NULL;
+ GtkActionEntry* _tmp103_ = NULL;
+ gint _tmp103__length1 = 0;
+ GtkActionEntry _tmp104_ = {0};
+ GtkActionEntry dev_camera = {0};
+ GtkActionEntry _tmp105_ = {0};
+ const gchar* _tmp106_ = NULL;
+ GtkActionEntry* _tmp107_ = NULL;
+ gint _tmp107__length1 = 0;
+ GtkActionEntry _tmp108_ = {0};
+ GtkActionEntry* _tmp109_ = NULL;
+ gint _tmp109__length1 = 0;
+#line 286 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 287 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = PAGE_CLASS (media_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 287 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ actions = _tmp1_;
+#line 287 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ actions_length1 = _tmp0_;
+#line 287 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _actions_size_ = actions_length1;
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_.name = "Export";
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_.stock_id = RESOURCES_SAVE_AS_LABEL;
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_.accelerator = "<Ctrl><Shift>E";
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_.callback = (GCallback) _media_page_on_export_gtk_action_callback;
+#line 289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ export = _tmp2_;
+#line 291 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ export.label = RESOURCES_EXPORT_MENU;
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = actions;
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3__length1 = actions_length1;
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = export;
+#line 292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add297 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.name = "SendTo";
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.stock_id = "document-send";
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.accelerator = NULL;
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.callback = (GCallback) _media_page_on_send_to_gtk_action_callback;
+#line 294 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ send_to = _tmp5_;
+#line 296 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ send_to.label = RESOURCES_SEND_TO_MENU;
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = actions;
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6__length1 = actions_length1;
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = send_to;
+#line 297 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add298 (&actions, &actions_length1, &_actions_size_, &_tmp7_);
+#line 301 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.name = "SendToContextMenu";
+#line 301 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.stock_id = "document-send";
+#line 301 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 301 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.accelerator = NULL;
+#line 301 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.tooltip = TRANSLATABLE;
+#line 301 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.callback = (GCallback) _media_page_on_send_to_gtk_action_callback;
+#line 301 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ send_to_context_menu = _tmp8_;
+#line 303 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ send_to_context_menu.label = RESOURCES_SEND_TO_CONTEXT_MENU;
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = actions;
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9__length1 = actions_length1;
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = send_to_context_menu;
+#line 304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add299 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_.name = "RemoveFromLibrary";
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_.stock_id = RESOURCES_REMOVE_LABEL;
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_.label = TRANSLATABLE;
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_.accelerator = "<Shift>Delete";
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_.tooltip = TRANSLATABLE;
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_.callback = (GCallback) _media_page_on_remove_from_library_gtk_action_callback;
+#line 306 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ remove_from_library = _tmp11_;
+#line 308 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ remove_from_library.label = RESOURCES_REMOVE_FROM_LIBRARY_MENU;
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = actions;
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12__length1 = actions_length1;
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = remove_from_library;
+#line 309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add300 (&actions, &actions_length1, &_actions_size_, &_tmp13_);
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.name = "MoveToTrash";
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.stock_id = "user-trash-full";
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.label = TRANSLATABLE;
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.accelerator = "Delete";
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.tooltip = TRANSLATABLE;
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.callback = (GCallback) _media_page_on_move_to_trash_gtk_action_callback;
+#line 311 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ move_to_trash = _tmp14_;
+#line 313 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ move_to_trash.label = RESOURCES_MOVE_TO_TRASH_MENU;
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = actions;
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15__length1 = actions_length1;
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = move_to_trash;
+#line 314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add301 (&actions, &actions_length1, &_actions_size_, &_tmp16_);
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_.name = "NewEvent";
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_.stock_id = RESOURCES_NEW_LABEL;
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_.label = TRANSLATABLE;
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_.accelerator = "<Ctrl>N";
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_.tooltip = TRANSLATABLE;
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_.callback = (GCallback) _media_page_on_new_event_gtk_action_callback;
+#line 316 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_event = _tmp17_;
+#line 318 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_event.label = RESOURCES_NEW_EVENT_MENU;
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = actions;
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18__length1 = actions_length1;
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = new_event;
+#line 319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add302 (&actions, &actions_length1, &_actions_size_, &_tmp19_);
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_.name = "AddTags";
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_.stock_id = NULL;
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_.label = TRANSLATABLE;
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_.accelerator = "<Ctrl>T";
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_.tooltip = TRANSLATABLE;
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_.callback = (GCallback) _media_page_on_add_tags_gtk_action_callback;
+#line 321 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ add_tags = _tmp20_;
+#line 323 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ add_tags.label = RESOURCES_ADD_TAGS_MENU;
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = actions;
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21__length1 = actions_length1;
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = add_tags;
+#line 324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add303 (&actions, &actions_length1, &_actions_size_, &_tmp22_);
+#line 328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.name = "AddTagsContextMenu";
+#line 328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.stock_id = NULL;
+#line 328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.label = TRANSLATABLE;
+#line 328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.accelerator = "<Ctrl>A";
+#line 328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.tooltip = TRANSLATABLE;
+#line 328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.callback = (GCallback) _media_page_on_add_tags_gtk_action_callback;
+#line 328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ add_tags_context_menu = _tmp23_;
+#line 330 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ add_tags_context_menu.label = RESOURCES_ADD_TAGS_CONTEXT_MENU;
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = actions;
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24__length1 = actions_length1;
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = add_tags_context_menu;
+#line 331 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add304 (&actions, &actions_length1, &_actions_size_, &_tmp25_);
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_.name = "ModifyTags";
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_.stock_id = NULL;
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_.label = TRANSLATABLE;
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_.accelerator = "<Ctrl>M";
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_.tooltip = TRANSLATABLE;
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_.callback = (GCallback) _media_page_on_modify_tags_gtk_action_callback;
+#line 333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ modify_tags = _tmp26_;
+#line 335 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ modify_tags.label = RESOURCES_MODIFY_TAGS_MENU;
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = actions;
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27__length1 = actions_length1;
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = modify_tags;
+#line 336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add305 (&actions, &actions_length1, &_actions_size_, &_tmp28_);
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_.name = "IncreaseSize";
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_.stock_id = RESOURCES_ZOOM_IN_LABEL;
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_.label = TRANSLATABLE;
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_.accelerator = "<Ctrl>plus";
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_.tooltip = TRANSLATABLE;
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_.callback = (GCallback) _media_page_on_increase_size_gtk_action_callback;
+#line 338 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ increase_size = _tmp29_;
+#line 340 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = _ ("Zoom _In");
+#line 340 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ increase_size.label = _tmp30_;
+#line 341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = _ ("Increase the magnification of the thumbnails");
+#line 341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ increase_size.tooltip = _tmp31_;
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_ = actions;
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32__length1 = actions_length1;
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = increase_size;
+#line 342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add306 (&actions, &actions_length1, &_actions_size_, &_tmp33_);
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_.name = "DecreaseSize";
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_.stock_id = RESOURCES_ZOOM_OUT_LABEL;
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_.label = TRANSLATABLE;
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_.accelerator = "<Ctrl>minus";
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_.tooltip = TRANSLATABLE;
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_.callback = (GCallback) _media_page_on_decrease_size_gtk_action_callback;
+#line 344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ decrease_size = _tmp34_;
+#line 346 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp35_ = _ ("Zoom _Out");
+#line 346 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ decrease_size.label = _tmp35_;
+#line 347 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36_ = _ ("Decrease the magnification of the thumbnails");
+#line 347 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ decrease_size.tooltip = _tmp36_;
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37_ = actions;
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37__length1 = actions_length1;
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp38_ = decrease_size;
+#line 348 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add307 (&actions, &actions_length1, &_actions_size_, &_tmp38_);
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_.name = "Flag";
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_.stock_id = NULL;
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_.label = TRANSLATABLE;
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_.accelerator = "<Ctrl>G";
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_.tooltip = TRANSLATABLE;
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_.callback = (GCallback) _media_page_on_flag_unflag_gtk_action_callback;
+#line 350 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flag = _tmp39_;
+#line 351 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flag.label = RESOURCES_FLAG_MENU;
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp40_ = actions;
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp40__length1 = actions_length1;
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp41_ = flag;
+#line 352 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add308 (&actions, &actions_length1, &_actions_size_, &_tmp41_);
+#line 354 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_.name = "Rate";
+#line 354 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_.stock_id = NULL;
+#line 354 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_.label = TRANSLATABLE;
+#line 354 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_.accelerator = NULL;
+#line 354 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_.tooltip = NULL;
+#line 354 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_.callback = (GCallback) NULL;
+#line 354 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ set_rating = _tmp42_;
+#line 355 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ set_rating.label = RESOURCES_RATING_MENU;
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp43_ = actions;
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp43__length1 = actions_length1;
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp44_ = set_rating;
+#line 356 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add309 (&actions, &actions_length1, &_actions_size_, &_tmp44_);
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp45_.name = "IncreaseRating";
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp45_.stock_id = NULL;
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp45_.label = TRANSLATABLE;
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp45_.accelerator = "greater";
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp45_.tooltip = TRANSLATABLE;
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp45_.callback = (GCallback) _media_page_on_increase_rating_gtk_action_callback;
+#line 358 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ increase_rating = _tmp45_;
+#line 360 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ increase_rating.label = RESOURCES_INCREASE_RATING_MENU;
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp46_ = actions;
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp46__length1 = actions_length1;
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp47_ = increase_rating;
+#line 361 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add310 (&actions, &actions_length1, &_actions_size_, &_tmp47_);
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp48_.name = "DecreaseRating";
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp48_.stock_id = NULL;
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp48_.label = TRANSLATABLE;
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp48_.accelerator = "less";
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp48_.tooltip = TRANSLATABLE;
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp48_.callback = (GCallback) _media_page_on_decrease_rating_gtk_action_callback;
+#line 363 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ decrease_rating = _tmp48_;
+#line 365 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ decrease_rating.label = RESOURCES_DECREASE_RATING_MENU;
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp49_ = actions;
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp49__length1 = actions_length1;
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp50_ = decrease_rating;
+#line 366 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add311 (&actions, &actions_length1, &_actions_size_, &_tmp50_);
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp51_.name = "RateRejected";
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp51_.stock_id = NULL;
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp51_.label = TRANSLATABLE;
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp51_.accelerator = "9";
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp51_.tooltip = TRANSLATABLE;
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp51_.callback = (GCallback) _media_page_on_rate_rejected_gtk_action_callback;
+#line 368 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_rejected = _tmp51_;
+#line 370 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp52_ = resources_rating_menu (RATING_REJECTED);
+#line 370 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_rejected.label = _tmp52_;
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp53_ = actions;
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp53__length1 = actions_length1;
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp54_ = rate_rejected;
+#line 371 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add312 (&actions, &actions_length1, &_actions_size_, &_tmp54_);
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp55_.name = "RateUnrated";
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp55_.stock_id = NULL;
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp55_.label = TRANSLATABLE;
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp55_.accelerator = "0";
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp55_.tooltip = TRANSLATABLE;
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp55_.callback = (GCallback) _media_page_on_rate_unrated_gtk_action_callback;
+#line 373 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_unrated = _tmp55_;
+#line 375 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp56_ = resources_rating_menu (RATING_UNRATED);
+#line 375 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_unrated.label = _tmp56_;
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp57_ = actions;
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp57__length1 = actions_length1;
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp58_ = rate_unrated;
+#line 376 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add313 (&actions, &actions_length1, &_actions_size_, &_tmp58_);
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp59_.name = "RateOne";
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp59_.stock_id = NULL;
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp59_.label = TRANSLATABLE;
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp59_.accelerator = "1";
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp59_.tooltip = TRANSLATABLE;
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp59_.callback = (GCallback) _media_page_on_rate_one_gtk_action_callback;
+#line 378 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_one = _tmp59_;
+#line 380 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp60_ = resources_rating_menu (RATING_ONE);
+#line 380 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_one.label = _tmp60_;
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp61_ = actions;
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp61__length1 = actions_length1;
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp62_ = rate_one;
+#line 381 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add314 (&actions, &actions_length1, &_actions_size_, &_tmp62_);
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp63_.name = "RateTwo";
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp63_.stock_id = NULL;
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp63_.label = TRANSLATABLE;
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp63_.accelerator = "2";
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp63_.tooltip = TRANSLATABLE;
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp63_.callback = (GCallback) _media_page_on_rate_two_gtk_action_callback;
+#line 383 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_two = _tmp63_;
+#line 385 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp64_ = resources_rating_menu (RATING_TWO);
+#line 385 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_two.label = _tmp64_;
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp65_ = actions;
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp65__length1 = actions_length1;
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp66_ = rate_two;
+#line 386 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add315 (&actions, &actions_length1, &_actions_size_, &_tmp66_);
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp67_.name = "RateThree";
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp67_.stock_id = NULL;
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp67_.label = TRANSLATABLE;
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp67_.accelerator = "3";
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp67_.tooltip = TRANSLATABLE;
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp67_.callback = (GCallback) _media_page_on_rate_three_gtk_action_callback;
+#line 388 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_three = _tmp67_;
+#line 390 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp68_ = resources_rating_menu (RATING_THREE);
+#line 390 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_three.label = _tmp68_;
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp69_ = actions;
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp69__length1 = actions_length1;
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp70_ = rate_three;
+#line 391 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add316 (&actions, &actions_length1, &_actions_size_, &_tmp70_);
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp71_.name = "RateFour";
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp71_.stock_id = NULL;
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp71_.label = TRANSLATABLE;
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp71_.accelerator = "4";
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp71_.tooltip = TRANSLATABLE;
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp71_.callback = (GCallback) _media_page_on_rate_four_gtk_action_callback;
+#line 393 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_four = _tmp71_;
+#line 395 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp72_ = resources_rating_menu (RATING_FOUR);
+#line 395 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_four.label = _tmp72_;
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp73_ = actions;
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp73__length1 = actions_length1;
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp74_ = rate_four;
+#line 396 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add317 (&actions, &actions_length1, &_actions_size_, &_tmp74_);
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp75_.name = "RateFive";
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp75_.stock_id = NULL;
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp75_.label = TRANSLATABLE;
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp75_.accelerator = "5";
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp75_.tooltip = TRANSLATABLE;
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp75_.callback = (GCallback) _media_page_on_rate_five_gtk_action_callback;
+#line 398 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_five = _tmp75_;
+#line 400 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp76_ = resources_rating_menu (RATING_FIVE);
+#line 400 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ rate_five.label = _tmp76_;
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp77_ = actions;
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp77__length1 = actions_length1;
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp78_ = rate_five;
+#line 401 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add318 (&actions, &actions_length1, &_actions_size_, &_tmp78_);
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp79_.name = "EditTitle";
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp79_.stock_id = NULL;
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp79_.label = TRANSLATABLE;
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp79_.accelerator = "F2";
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp79_.tooltip = TRANSLATABLE;
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp79_.callback = (GCallback) _media_page_on_edit_title_gtk_action_callback;
+#line 403 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ edit_title = _tmp79_;
+#line 405 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ edit_title.label = RESOURCES_EDIT_TITLE_MENU;
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp80_ = actions;
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp80__length1 = actions_length1;
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp81_ = edit_title;
+#line 406 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add319 (&actions, &actions_length1, &_actions_size_, &_tmp81_);
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp82_.name = "EditComment";
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp82_.stock_id = NULL;
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp82_.label = TRANSLATABLE;
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp82_.accelerator = "F3";
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp82_.tooltip = TRANSLATABLE;
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp82_.callback = (GCallback) _media_page_on_edit_comment_gtk_action_callback;
+#line 408 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ edit_comment = _tmp82_;
+#line 410 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ edit_comment.label = RESOURCES_EDIT_COMMENT_MENU;
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp83_ = actions;
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp83__length1 = actions_length1;
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp84_ = edit_comment;
+#line 411 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add320 (&actions, &actions_length1, &_actions_size_, &_tmp84_);
+#line 413 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp85_.name = "SortPhotos";
+#line 413 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp85_.stock_id = NULL;
+#line 413 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp85_.label = TRANSLATABLE;
+#line 413 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp85_.accelerator = NULL;
+#line 413 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp85_.tooltip = NULL;
+#line 413 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp85_.callback = (GCallback) NULL;
+#line 413 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_photos = _tmp85_;
+#line 414 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp86_ = _ ("Sort _Photos");
+#line 414 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_photos.label = _tmp86_;
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp87_ = actions;
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp87__length1 = actions_length1;
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp88_ = sort_photos;
+#line 415 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add321 (&actions, &actions_length1, &_actions_size_, &_tmp88_);
+#line 417 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp89_.name = "FilterPhotos";
+#line 417 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp89_.stock_id = NULL;
+#line 417 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp89_.label = TRANSLATABLE;
+#line 417 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp89_.accelerator = NULL;
+#line 417 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp89_.tooltip = NULL;
+#line 417 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp89_.callback = (GCallback) NULL;
+#line 417 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ filter_photos = _tmp89_;
+#line 418 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ filter_photos.label = RESOURCES_FILTER_PHOTOS_MENU;
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp90_ = actions;
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp90__length1 = actions_length1;
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp91_ = filter_photos;
+#line 419 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add322 (&actions, &actions_length1, &_actions_size_, &_tmp91_);
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp92_.name = "PlayVideo";
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp92_.stock_id = RESOURCES_PLAY_LABEL;
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp92_.label = TRANSLATABLE;
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp92_.accelerator = "<Ctrl>Y";
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp92_.tooltip = TRANSLATABLE;
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp92_.callback = (GCallback) _media_page_on_play_video_gtk_action_callback;
+#line 421 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ play = _tmp92_;
+#line 423 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp93_ = _ ("_Play Video");
+#line 423 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ play.label = _tmp93_;
+#line 424 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp94_ = _ ("Open the selected videos in the system video player");
+#line 424 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ play.tooltip = _tmp94_;
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp95_ = actions;
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp95__length1 = actions_length1;
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp96_ = play;
+#line 425 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add323 (&actions, &actions_length1, &_actions_size_, &_tmp96_);
+#line 427 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp97_.name = "RawDeveloper";
+#line 427 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp97_.stock_id = NULL;
+#line 427 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp97_.label = TRANSLATABLE;
+#line 427 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp97_.accelerator = NULL;
+#line 427 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp97_.tooltip = NULL;
+#line 427 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp97_.callback = (GCallback) NULL;
+#line 427 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ raw_developer = _tmp97_;
+#line 428 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp98_ = _ ("_Developer");
+#line 428 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ raw_developer.label = _tmp98_;
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp99_ = actions;
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp99__length1 = actions_length1;
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp100_ = raw_developer;
+#line 429 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add324 (&actions, &actions_length1, &_actions_size_, &_tmp100_);
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp101_.name = "RawDeveloperShotwell";
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp101_.stock_id = NULL;
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp101_.label = TRANSLATABLE;
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp101_.accelerator = NULL;
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp101_.tooltip = TRANSLATABLE;
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp101_.callback = (GCallback) _media_page_on_raw_developer_shotwell_gtk_action_callback;
+#line 433 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ dev_shotwell = _tmp101_;
+#line 435 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp102_ = _ ("Shotwell");
+#line 435 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ dev_shotwell.label = _tmp102_;
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp103_ = actions;
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp103__length1 = actions_length1;
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp104_ = dev_shotwell;
+#line 436 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add325 (&actions, &actions_length1, &_actions_size_, &_tmp104_);
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp105_.name = "RawDeveloperCamera";
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp105_.stock_id = NULL;
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp105_.label = TRANSLATABLE;
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp105_.accelerator = NULL;
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp105_.tooltip = TRANSLATABLE;
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp105_.callback = (GCallback) _media_page_on_raw_developer_camera_gtk_action_callback;
+#line 438 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ dev_camera = _tmp105_;
+#line 440 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp106_ = _ ("Camera");
+#line 440 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ dev_camera.label = _tmp106_;
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp107_ = actions;
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp107__length1 = actions_length1;
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp108_ = dev_camera;
+#line 441 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add326 (&actions, &actions_length1, &_actions_size_, &_tmp108_);
+#line 443 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp109_ = actions;
+#line 443 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp109__length1 = actions_length1;
+#line 443 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (result_length1) {
+#line 443 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *result_length1 = _tmp109__length1;
+#line 4035 "MediaPage.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp109_;
+#line 443 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 4041 "MediaPage.c"
+}
+
+
+static void _media_page_on_display_titles_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_display_titles ((MediaPage*) self, action);
+#line 4048 "MediaPage.c"
+}
+
+
+static void _vala_array_add327 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4059 "MediaPage.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4063 "MediaPage.c"
+}
+
+
+static void _media_page_on_display_comments_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_display_comments ((MediaPage*) self, action);
+#line 4070 "MediaPage.c"
+}
+
+
+static void _vala_array_add328 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4081 "MediaPage.c"
+ }
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4085 "MediaPage.c"
+}
+
+
+static void _media_page_on_display_ratings_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_display_ratings ((MediaPage*) self, action);
+#line 4092 "MediaPage.c"
+}
+
+
+static void _vala_array_add329 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4103 "MediaPage.c"
+ }
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4107 "MediaPage.c"
+}
+
+
+static void _media_page_on_display_tags_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_display_tags ((MediaPage*) self, action);
+#line 4114 "MediaPage.c"
+}
+
+
+static void _vala_array_add330 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4125 "MediaPage.c"
+ }
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4129 "MediaPage.c"
+}
+
+
+static GtkToggleActionEntry* media_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1) {
+ MediaPage * self;
+ GtkToggleActionEntry* result = NULL;
+ GtkToggleActionEntry* toggle_actions = NULL;
+ gint _tmp0_ = 0;
+ GtkToggleActionEntry* _tmp1_ = NULL;
+ gint toggle_actions_length1 = 0;
+ gint _toggle_actions_size_ = 0;
+ GtkToggleActionEntry titles = {0};
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkToggleActionEntry _tmp5_ = {0};
+ GtkToggleActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkToggleActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkToggleActionEntry _tmp10_ = {0};
+ GtkToggleActionEntry comments = {0};
+ ConfigFacade* _tmp11_ = NULL;
+ ConfigFacade* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GtkToggleActionEntry _tmp14_ = {0};
+ GtkToggleActionEntry _tmp15_ = {0};
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GtkToggleActionEntry* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ GtkToggleActionEntry _tmp19_ = {0};
+ GtkToggleActionEntry ratings = {0};
+ ConfigFacade* _tmp20_ = NULL;
+ ConfigFacade* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ GtkToggleActionEntry _tmp23_ = {0};
+ GtkToggleActionEntry _tmp24_ = {0};
+ GtkToggleActionEntry* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ GtkToggleActionEntry _tmp26_ = {0};
+ GtkToggleActionEntry tags = {0};
+ ConfigFacade* _tmp27_ = NULL;
+ ConfigFacade* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ GtkToggleActionEntry _tmp30_ = {0};
+ GtkToggleActionEntry _tmp31_ = {0};
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ GtkToggleActionEntry* _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ GtkToggleActionEntry _tmp35_ = {0};
+ GtkToggleActionEntry* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+#line 446 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 447 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = PAGE_CLASS (media_page_parent_class)->init_collect_toggle_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 447 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ toggle_actions = _tmp1_;
+#line 447 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ toggle_actions_length1 = _tmp0_;
+#line 447 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _toggle_actions_size_ = toggle_actions_length1;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = configuration_facade_get_display_photo_titles (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.name = "ViewTitle";
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.accelerator = "<Ctrl><Shift>T";
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.callback = (GCallback) _media_page_on_display_titles_gtk_action_callback;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_.is_active = _tmp4_;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 449 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ titles = _tmp6_;
+#line 451 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _ ("_Titles");
+#line 451 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ titles.label = _tmp7_;
+#line 452 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _ ("Display the title of each photo");
+#line 452 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ titles.tooltip = _tmp8_;
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = toggle_actions;
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9__length1 = toggle_actions_length1;
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = titles;
+#line 453 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add327 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp10_);
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = config_facade_get_instance ();
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = configuration_facade_get_display_photo_comments (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.name = "ViewComment";
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.stock_id = NULL;
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.label = TRANSLATABLE;
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.accelerator = "<Ctrl><Shift>C";
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.tooltip = TRANSLATABLE;
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.callback = (GCallback) _media_page_on_display_comments_gtk_action_callback;
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_.is_active = _tmp13_;
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _tmp14_;
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 455 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comments = _tmp15_;
+#line 457 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = _ ("_Comments");
+#line 457 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comments.label = _tmp16_;
+#line 458 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _ ("Display the comment of each photo");
+#line 458 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comments.tooltip = _tmp17_;
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = toggle_actions;
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18__length1 = toggle_actions_length1;
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = comments;
+#line 459 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add328 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp19_);
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = config_facade_get_instance ();
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = _tmp20_;
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = configuration_facade_get_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.name = "ViewRatings";
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.stock_id = NULL;
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.label = TRANSLATABLE;
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.accelerator = "<Ctrl><Shift>N";
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.tooltip = TRANSLATABLE;
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.callback = (GCallback) _media_page_on_display_ratings_gtk_action_callback;
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_.is_active = _tmp22_;
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = _tmp23_;
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 461 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ratings = _tmp24_;
+#line 463 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ratings.label = RESOURCES_VIEW_RATINGS_MENU;
+#line 464 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ratings.tooltip = RESOURCES_VIEW_RATINGS_TOOLTIP;
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = toggle_actions;
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25__length1 = toggle_actions_length1;
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = ratings;
+#line 465 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add329 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp26_);
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = config_facade_get_instance ();
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = _tmp27_;
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_ = configuration_facade_get_display_photo_tags (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_.name = "ViewTags";
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_.stock_id = NULL;
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_.label = TRANSLATABLE;
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_.accelerator = "<Ctrl><Shift>G";
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_.tooltip = TRANSLATABLE;
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_.callback = (GCallback) _media_page_on_display_tags_gtk_action_callback;
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_.is_active = _tmp29_;
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = _tmp30_;
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 467 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ tags = _tmp31_;
+#line 469 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_ = _ ("Ta_gs");
+#line 469 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ tags.label = _tmp32_;
+#line 470 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = _ ("Display each photo's tags");
+#line 470 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ tags.tooltip = _tmp33_;
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_ = toggle_actions;
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34__length1 = toggle_actions_length1;
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp35_ = tags;
+#line 471 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add330 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp35_);
+#line 473 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36_ = toggle_actions;
+#line 473 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36__length1 = toggle_actions_length1;
+#line 473 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (result_length1) {
+#line 473 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *result_length1 = _tmp36__length1;
+#line 4367 "MediaPage.c"
+ }
+#line 473 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp36_;
+#line 473 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 4373 "MediaPage.c"
+}
+
+
+static void _vala_array_add331 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4384 "MediaPage.c"
+ }
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4388 "MediaPage.c"
+}
+
+
+static void _vala_array_add332 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4399 "MediaPage.c"
+ }
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4403 "MediaPage.c"
+}
+
+
+static void _vala_array_add333 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4414 "MediaPage.c"
+ }
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4418 "MediaPage.c"
+}
+
+
+static void _vala_array_add334 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4429 "MediaPage.c"
+ }
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4433 "MediaPage.c"
+}
+
+
+static void _media_page_on_sort_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self) {
+#line 508 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_sort_changed ((MediaPage*) self);
+#line 4440 "MediaPage.c"
+}
+
+
+static void _vala_array_add335 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4451 "MediaPage.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4455 "MediaPage.c"
+}
+
+
+static void _vala_array_add336 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((*length) == (*size)) {
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4466 "MediaPage.c"
+ }
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (*array)[(*length)++] = *value;
+#line 4470 "MediaPage.c"
+}
+
+
+static void media_page_real_register_radio_actions (Page* base, GtkActionGroup* action_group) {
+ MediaPage * self;
+ gboolean sort_order = FALSE;
+ gint sort_by = 0;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ GtkRadioActionEntry* sort_crit_actions = NULL;
+ GtkRadioActionEntry* _tmp2_ = NULL;
+ gint sort_crit_actions_length1 = 0;
+ gint _sort_crit_actions_size_ = 0;
+ GtkRadioActionEntry by_title = {0};
+ GtkRadioActionEntry _tmp3_ = {0};
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GtkRadioActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkRadioActionEntry _tmp7_ = {0};
+ GtkRadioActionEntry by_date = {0};
+ GtkRadioActionEntry _tmp8_ = {0};
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ GtkRadioActionEntry* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ GtkRadioActionEntry _tmp12_ = {0};
+ GtkRadioActionEntry by_rating = {0};
+ GtkRadioActionEntry _tmp13_ = {0};
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GtkRadioActionEntry* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ GtkRadioActionEntry _tmp17_ = {0};
+ GtkRadioActionEntry by_filename = {0};
+ GtkRadioActionEntry _tmp18_ = {0};
+ const gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ GtkRadioActionEntry* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GtkRadioActionEntry _tmp22_ = {0};
+ GtkActionGroup* _tmp23_ = NULL;
+ GtkRadioActionEntry* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ GtkRadioActionEntry* sort_order_actions = NULL;
+ GtkRadioActionEntry* _tmp26_ = NULL;
+ gint sort_order_actions_length1 = 0;
+ gint _sort_order_actions_size_ = 0;
+ GtkRadioActionEntry ascending = {0};
+ GtkRadioActionEntry _tmp27_ = {0};
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ GtkRadioActionEntry* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ GtkRadioActionEntry _tmp31_ = {0};
+ GtkRadioActionEntry descending = {0};
+ GtkRadioActionEntry _tmp32_ = {0};
+ const gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ GtkRadioActionEntry* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ GtkRadioActionEntry _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ gboolean _tmp38_ = FALSE;
+ GtkActionGroup* _tmp39_ = NULL;
+ GtkRadioActionEntry* _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ GtkActionGroup* _tmp41_ = NULL;
+#line 476 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 476 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
+#line 479 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_get_config_photos_sort (self, &_tmp0_, &_tmp1_);
+#line 479 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_order = _tmp0_;
+#line 479 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_by = _tmp1_;
+#line 482 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = g_new0 (GtkRadioActionEntry, 0);
+#line 482 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_crit_actions = _tmp2_;
+#line 482 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_crit_actions_length1 = 0;
+#line 482 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _sort_crit_actions_size_ = sort_crit_actions_length1;
+#line 484 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_.name = "SortByTitle";
+#line 484 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_.stock_id = NULL;
+#line 484 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_.label = TRANSLATABLE;
+#line 484 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_.accelerator = NULL;
+#line 484 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_.tooltip = TRANSLATABLE;
+#line 484 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_.value = (gint) MEDIA_PAGE_SORT_BY_TITLE;
+#line 484 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_title = _tmp3_;
+#line 486 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _ ("By _Title");
+#line 486 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_title.label = _tmp4_;
+#line 487 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _ ("Sort photos by title");
+#line 487 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_title.tooltip = _tmp5_;
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = sort_crit_actions;
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6__length1 = sort_crit_actions_length1;
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = by_title;
+#line 488 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add331 (&sort_crit_actions, &sort_crit_actions_length1, &_sort_crit_actions_size_, &_tmp7_);
+#line 490 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.name = "SortByExposureDate";
+#line 490 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.stock_id = NULL;
+#line 490 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 490 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.accelerator = NULL;
+#line 490 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.tooltip = TRANSLATABLE;
+#line 490 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_.value = (gint) MEDIA_PAGE_SORT_BY_EXPOSURE_DATE;
+#line 490 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_date = _tmp8_;
+#line 492 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _ ("By Exposure _Date");
+#line 492 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_date.label = _tmp9_;
+#line 493 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _ ("Sort photos by exposure date");
+#line 493 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_date.tooltip = _tmp10_;
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = sort_crit_actions;
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11__length1 = sort_crit_actions_length1;
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = by_date;
+#line 494 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add332 (&sort_crit_actions, &sort_crit_actions_length1, &_sort_crit_actions_size_, &_tmp12_);
+#line 496 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_.name = "SortByRating";
+#line 496 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_.stock_id = NULL;
+#line 496 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_.label = TRANSLATABLE;
+#line 496 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_.accelerator = NULL;
+#line 496 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_.tooltip = TRANSLATABLE;
+#line 496 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_.value = (gint) MEDIA_PAGE_SORT_BY_RATING;
+#line 496 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_rating = _tmp13_;
+#line 498 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _ ("By _Rating");
+#line 498 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_rating.label = _tmp14_;
+#line 499 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _ ("Sort photos by rating");
+#line 499 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_rating.tooltip = _tmp15_;
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = sort_crit_actions;
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16__length1 = sort_crit_actions_length1;
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = by_rating;
+#line 500 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add333 (&sort_crit_actions, &sort_crit_actions_length1, &_sort_crit_actions_size_, &_tmp17_);
+#line 502 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_.name = "SortByFilename";
+#line 502 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_.stock_id = NULL;
+#line 502 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_.label = TRANSLATABLE;
+#line 502 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_.accelerator = NULL;
+#line 502 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_.tooltip = TRANSLATABLE;
+#line 502 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_.value = (gint) MEDIA_PAGE_SORT_BY_FILENAME;
+#line 502 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_filename = _tmp18_;
+#line 504 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = _ ("By _Filename");
+#line 504 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_filename.label = _tmp19_;
+#line 505 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = _ ("Sort photos by filename");
+#line 505 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ by_filename.tooltip = _tmp20_;
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = sort_crit_actions;
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21__length1 = sort_crit_actions_length1;
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = by_filename;
+#line 506 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add334 (&sort_crit_actions, &sort_crit_actions_length1, &_sort_crit_actions_size_, &_tmp22_);
+#line 508 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = action_group;
+#line 508 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = sort_crit_actions;
+#line 508 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24__length1 = sort_crit_actions_length1;
+#line 508 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = sort_by;
+#line 508 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_action_group_add_radio_actions (_tmp23_, _tmp24_, _tmp24__length1, _tmp25_, (GCallback) _media_page_on_sort_changed_gtk_radio_action_callback, self);
+#line 511 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = g_new0 (GtkRadioActionEntry, 0);
+#line 511 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_order_actions = _tmp26_;
+#line 511 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_order_actions_length1 = 0;
+#line 511 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _sort_order_actions_size_ = sort_order_actions_length1;
+#line 513 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_.name = "SortAscending";
+#line 513 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_.stock_id = RESOURCES_SORT_ASCENDING_LABEL;
+#line 513 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_.label = TRANSLATABLE;
+#line 513 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_.accelerator = NULL;
+#line 513 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_.tooltip = TRANSLATABLE;
+#line 513 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_.value = MEDIA_PAGE_SORT_ORDER_ASCENDING;
+#line 513 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ascending = _tmp27_;
+#line 515 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = _ ("_Ascending");
+#line 515 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ascending.label = _tmp28_;
+#line 516 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_ = _ ("Sort photos in an ascending order");
+#line 516 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ascending.tooltip = _tmp29_;
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = sort_order_actions;
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30__length1 = sort_order_actions_length1;
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = ascending;
+#line 517 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add335 (&sort_order_actions, &sort_order_actions_length1, &_sort_order_actions_size_, &_tmp31_);
+#line 519 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_.name = "SortDescending";
+#line 519 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_.stock_id = RESOURCES_SORT_DESCENDING_LABEL;
+#line 519 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_.label = TRANSLATABLE;
+#line 519 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_.accelerator = NULL;
+#line 519 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_.tooltip = TRANSLATABLE;
+#line 519 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_.value = MEDIA_PAGE_SORT_ORDER_DESCENDING;
+#line 519 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ descending = _tmp32_;
+#line 521 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = _ ("D_escending");
+#line 521 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ descending.label = _tmp33_;
+#line 522 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_ = _ ("Sort photos in a descending order");
+#line 522 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ descending.tooltip = _tmp34_;
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp35_ = sort_order_actions;
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp35__length1 = sort_order_actions_length1;
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36_ = descending;
+#line 523 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_array_add336 (&sort_order_actions, &sort_order_actions_length1, &_sort_order_actions_size_, &_tmp36_);
+#line 526 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp38_ = sort_order;
+#line 526 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp38_) {
+#line 526 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37_ = MEDIA_PAGE_SORT_ORDER_ASCENDING;
+#line 4762 "MediaPage.c"
+ } else {
+#line 526 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37_ = MEDIA_PAGE_SORT_ORDER_DESCENDING;
+#line 4766 "MediaPage.c"
+ }
+#line 525 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_ = action_group;
+#line 525 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp40_ = sort_order_actions;
+#line 525 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp40__length1 = sort_order_actions_length1;
+#line 525 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_action_group_add_radio_actions (_tmp39_, _tmp40_, _tmp40__length1, _tmp37_, (GCallback) _media_page_on_sort_changed_gtk_radio_action_callback, self);
+#line 528 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp41_ = action_group;
+#line 528 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ PAGE_CLASS (media_page_parent_class)->register_radio_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp41_);
+#line 476 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_order_actions = (g_free (sort_order_actions), NULL);
+#line 476 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_crit_actions = (g_free (sort_crit_actions), NULL);
+#line 4784 "MediaPage.c"
+}
+
+
+static void media_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ MediaPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ gint _tmp15_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+#line 531 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 532 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = selected_count;
+#line 532 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Export", _tmp0_ > 0);
+#line 533 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = selected_count;
+#line 533 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "EditTitle", _tmp1_ > 0);
+#line 534 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = selected_count;
+#line 534 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "EditComment", _tmp2_ > 0);
+#line 535 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = media_page_get_thumb_size (self);
+#line 535 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = thumbnail_get_MAX_SCALE ();
+#line 535 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 535 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp3_ < _tmp5_);
+#line 536 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = media_page_get_thumb_size (self);
+#line 536 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = thumbnail_get_MIN_SCALE ();
+#line 536 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _tmp7_;
+#line 536 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp6_ > _tmp8_);
+#line 537 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = selected_count;
+#line 537 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RemoveFromLibrary", _tmp9_ > 0);
+#line 538 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = selected_count;
+#line 538 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "MoveToTrash", _tmp10_ > 0);
+#line 540 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = desktop_integration_is_send_to_installed ();
+#line 540 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp11_) {
+#line 4850 "MediaPage.c"
+ gint _tmp12_ = 0;
+#line 541 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = selected_count;
+#line 541 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SendTo", _tmp12_ > 0);
+#line 4856 "MediaPage.c"
+ } else {
+#line 543 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_visible (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SendTo", FALSE);
+#line 4860 "MediaPage.c"
+ }
+#line 545 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = selected_count;
+#line 545 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Rate", _tmp13_ > 0);
+#line 546 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_rating_sensitivities (self);
+#line 548 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_development_menu_item_sensitivity (self);
+#line 550 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = selected_count;
+#line 550 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp15_ == 1) {
+#line 4874 "MediaPage.c"
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+#line 551 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 551 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _tmp16_;
+#line 551 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = view_collection_get_selected_source_at (_tmp17_, 0);
+#line 551 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = _tmp18_;
+#line 551 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_VIDEO);
+#line 551 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 551 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 4893 "MediaPage.c"
+ } else {
+#line 550 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = FALSE;
+#line 4897 "MediaPage.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PlayVideo", _tmp14_);
+#line 553 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = selected_count;
+#line 553 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_flag_action (self, _tmp20_);
+#line 555 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = selected_count;
+#line 555 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = count;
+#line 555 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ PAGE_CLASS (media_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp21_, _tmp22_);
+#line 4911 "MediaPage.c"
+}
+
+
+static void media_page_on_media_altered (MediaPage* self, GeeMap* altered) {
+#line 558 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 558 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GEE_IS_MAP (altered));
+#line 4920 "MediaPage.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = altered;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _object_it = _tmp5_;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 4947 "MediaPage.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ Alteration* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _object_it;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!_tmp7_) {
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 4967 "MediaPage.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _object_it;
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ object = (DataObject*) _tmp9_;
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = altered;
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = object;
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = (Alteration*) _tmp12_;
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = alteration_has_detail (_tmp13_, "metadata", "flagged");
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _tmp14_;
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _alteration_unref0 (_tmp13_);
+#line 560 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp15_) {
+#line 4991 "MediaPage.c"
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 561 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 561 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _tmp16_;
+#line 561 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = view_collection_get_selected_count (_tmp17_);
+#line 561 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_flag_action (self, _tmp18_);
+#line 561 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 563 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (object);
+#line 563 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5009 "MediaPage.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (object);
+#line 5013 "MediaPage.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_object_it);
+#line 5017 "MediaPage.c"
+ }
+}
+
+
+static void media_page_update_rating_sensitivities (MediaPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 568 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 569 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_can_rate_selected (self, RATING_REJECTED);
+#line 569 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateRejected", _tmp0_);
+#line 570 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = media_page_can_rate_selected (self, RATING_UNRATED);
+#line 570 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateUnrated", _tmp1_);
+#line 571 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_can_rate_selected (self, RATING_ONE);
+#line 571 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateOne", _tmp2_);
+#line 572 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = media_page_can_rate_selected (self, RATING_TWO);
+#line 572 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateTwo", _tmp3_);
+#line 573 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = media_page_can_rate_selected (self, RATING_THREE);
+#line 573 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateThree", _tmp4_);
+#line 574 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = media_page_can_rate_selected (self, RATING_FOUR);
+#line 574 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFour", _tmp5_);
+#line 575 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = media_page_can_rate_selected (self, RATING_FIVE);
+#line 575 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFive", _tmp6_);
+#line 576 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = media_page_can_increase_selected_rating (self);
+#line 576 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseRating", _tmp7_);
+#line 577 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = media_page_can_decrease_selected_rating (self);
+#line 577 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseRating", _tmp8_);
+#line 5070 "MediaPage.c"
+}
+
+
+static void media_page_update_development_menu_item_sensitivity (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gboolean avail_shotwell = FALSE;
+ gboolean avail_camera = FALSE;
+ gboolean is_raw = FALSE;
+ gboolean _tmp41_ = FALSE;
+ gboolean _tmp42_ = FALSE;
+#line 580 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected (_tmp1_);
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_ == 0;
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 581 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp6_) {
+#line 582 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloper", FALSE);
+#line 583 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 5113 "MediaPage.c"
+ }
+#line 587 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ avail_shotwell = FALSE;
+#line 588 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ avail_camera = FALSE;
+#line 589 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ is_raw = FALSE;
+#line 5121 "MediaPage.c"
+ {
+ GeeList* _view_list = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _view_size = 0;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _view_index = 0;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _tmp7_;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = view_collection_get_selected (_tmp8_);
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _tmp9_;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_list = _tmp10_;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _view_list;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = _tmp12_;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_size = _tmp13_;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = -1;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 5157 "MediaPage.c"
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gpointer _tmp19_ = NULL;
+ Photo* photo = NULL;
+ DataView* _tmp20_ = NULL;
+ MediaSource* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ Photo* _tmp24_ = NULL;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _view_index;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = _tmp14_ + 1;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _view_index;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = _view_size;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!(_tmp15_ < _tmp16_)) {
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5183 "MediaPage.c"
+ }
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _view_list;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = _view_index;
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = gee_list_get (_tmp17_, _tmp18_);
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ view = (DataView*) _tmp19_;
+#line 591 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = view;
+#line 591 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = thumbnail_get_media_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_THUMBNAIL, Thumbnail));
+#line 591 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, TYPE_PHOTO) ? ((Photo*) _tmp21_) : NULL;
+#line 591 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp22_ == NULL) {
+#line 591 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 5203 "MediaPage.c"
+ }
+#line 591 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ photo = _tmp22_;
+#line 592 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = photo;
+#line 592 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp24_ != NULL) {
+#line 5211 "MediaPage.c"
+ Photo* _tmp25_ = NULL;
+ PhotoFileFormat _tmp26_ = 0;
+#line 592 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = photo;
+#line 592 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = photo_get_master_file_format (_tmp25_);
+#line 592 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = _tmp26_ == PHOTO_FILE_FORMAT_RAW;
+#line 5220 "MediaPage.c"
+ } else {
+#line 592 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = FALSE;
+#line 5224 "MediaPage.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp23_) {
+#line 5228 "MediaPage.c"
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp32_ = FALSE;
+ gboolean _tmp38_ = FALSE;
+ gboolean _tmp39_ = FALSE;
+#line 593 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ is_raw = TRUE;
+#line 595 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = avail_shotwell;
+#line 595 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!_tmp28_) {
+#line 5241 "MediaPage.c"
+ Photo* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+#line 595 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_ = photo;
+#line 595 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = photo_is_raw_developer_available (_tmp29_, RAW_DEVELOPER_SHOTWELL);
+#line 595 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = _tmp30_;
+#line 5250 "MediaPage.c"
+ } else {
+#line 595 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = FALSE;
+#line 5254 "MediaPage.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp27_) {
+#line 596 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ avail_shotwell = TRUE;
+#line 5260 "MediaPage.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_ = avail_camera;
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!_tmp32_) {
+#line 5266 "MediaPage.c"
+ gboolean _tmp33_ = FALSE;
+ Photo* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_ = photo;
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp35_ = photo_is_raw_developer_available (_tmp34_, RAW_DEVELOPER_CAMERA);
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp35_) {
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = TRUE;
+#line 5278 "MediaPage.c"
+ } else {
+ Photo* _tmp36_ = NULL;
+ gboolean _tmp37_ = FALSE;
+#line 599 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36_ = photo;
+#line 599 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37_ = photo_is_raw_developer_available (_tmp36_, RAW_DEVELOPER_EMBEDDED);
+#line 599 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = _tmp37_;
+#line 5288 "MediaPage.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = _tmp33_;
+#line 5292 "MediaPage.c"
+ } else {
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = FALSE;
+#line 5296 "MediaPage.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp31_) {
+#line 600 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ avail_camera = TRUE;
+#line 5302 "MediaPage.c"
+ }
+#line 602 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_ = avail_shotwell;
+#line 602 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp39_) {
+#line 5308 "MediaPage.c"
+ gboolean _tmp40_ = FALSE;
+#line 602 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp40_ = avail_camera;
+#line 602 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp38_ = _tmp40_;
+#line 5314 "MediaPage.c"
+ } else {
+#line 602 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp38_ = FALSE;
+#line 5318 "MediaPage.c"
+ }
+#line 602 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp38_) {
+#line 603 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (photo);
+#line 603 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 603 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5328 "MediaPage.c"
+ }
+ }
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (photo);
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 5335 "MediaPage.c"
+ }
+#line 590 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 5339 "MediaPage.c"
+ }
+#line 609 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp41_ = is_raw;
+#line 609 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloper", _tmp41_);
+#line 611 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_ = is_raw;
+#line 611 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp42_) {
+#line 5349 "MediaPage.c"
+ gboolean _tmp43_ = FALSE;
+ gboolean _tmp44_ = FALSE;
+#line 613 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp43_ = avail_shotwell;
+#line 613 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloperShotwell", _tmp43_);
+#line 614 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp44_ = avail_camera;
+#line 614 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloperCamera", _tmp44_);
+#line 5360 "MediaPage.c"
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 626 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 5368 "MediaPage.c"
+}
+
+
+static void media_page_update_flag_action (MediaPage* self, gint selected_count) {
+ gint _tmp0_ = 0;
+ gchar* flag_label = NULL;
+ gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GtkAction* flag_action = NULL;
+ GtkAction* _tmp24_ = NULL;
+ GtkAction* _tmp25_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 619 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = selected_count;
+#line 619 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Flag", _tmp0_ > 0);
+#line 621 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = g_strdup (RESOURCES_FLAG_MENU);
+#line 621 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flag_label = _tmp1_;
+#line 623 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = selected_count;
+#line 623 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp2_ > 0) {
+#line 5394 "MediaPage.c"
+ gboolean all_flagged = FALSE;
+ gboolean _tmp22_ = FALSE;
+#line 624 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ all_flagged = TRUE;
+#line 5399 "MediaPage.c"
+ {
+ GeeList* _source_list = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ gint _source_size = 0;
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _source_index = 0;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = view_collection_get_selected_sources (_tmp4_);
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp4_);
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _source_list = _tmp6_;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _source_list;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _source_size = _tmp9_;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _source_index = -1;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 5435 "MediaPage.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ DataSource* source = NULL;
+ GeeList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gpointer _tmp15_ = NULL;
+ Flaggable* flaggable = NULL;
+ DataSource* _tmp16_ = NULL;
+ Flaggable* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ Flaggable* _tmp19_ = NULL;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _source_index;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _source_index = _tmp10_ + 1;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _source_index;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _source_size;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!(_tmp11_ < _tmp12_)) {
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5460 "MediaPage.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = _source_list;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _source_index;
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = gee_list_get (_tmp13_, _tmp14_);
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ source = (DataSource*) _tmp15_;
+#line 626 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = source;
+#line 626 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp16_) : NULL);
+#line 626 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flaggable = _tmp17_;
+#line 627 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = flaggable;
+#line 627 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp19_ != NULL) {
+#line 5480 "MediaPage.c"
+ Flaggable* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 627 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = flaggable;
+#line 627 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = flaggable_is_flagged (_tmp20_);
+#line 627 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = !_tmp21_;
+#line 5489 "MediaPage.c"
+ } else {
+#line 627 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = FALSE;
+#line 5493 "MediaPage.c"
+ }
+#line 627 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp18_) {
+#line 628 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ all_flagged = FALSE;
+#line 630 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (flaggable);
+#line 630 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (source);
+#line 630 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5505 "MediaPage.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (flaggable);
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (source);
+#line 5511 "MediaPage.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_source_list);
+#line 5515 "MediaPage.c"
+ }
+#line 634 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = all_flagged;
+#line 634 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp22_) {
+#line 5521 "MediaPage.c"
+ gchar* _tmp23_ = NULL;
+#line 635 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = g_strdup (RESOURCES_UNFLAG_MENU);
+#line 635 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (flag_label);
+#line 635 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flag_label = _tmp23_;
+#line 5529 "MediaPage.c"
+ }
+ }
+#line 639 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Flag");
+#line 639 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flag_action = _tmp24_;
+#line 640 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = flag_action;
+#line 640 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp25_ != NULL) {
+#line 5540 "MediaPage.c"
+ GtkAction* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 641 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = flag_action;
+#line 641 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = flag_label;
+#line 641 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_action_set_label (_tmp26_, _tmp27_);
+#line 5549 "MediaPage.c"
+ }
+#line 618 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (flag_action);
+#line 618 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (flag_label);
+#line 5555 "MediaPage.c"
+}
+
+
+static gpointer _core_tracker_ref0 (gpointer self) {
+#line 646 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return self ? core_tracker_ref (self) : NULL;
+#line 5562 "MediaPage.c"
+}
+
+
+static CoreViewTracker* media_page_real_get_view_tracker (CheckerboardPage* base) {
+ MediaPage * self;
+ CoreViewTracker* result = NULL;
+ MediaViewTracker* _tmp0_ = NULL;
+ CoreViewTracker* _tmp1_ = NULL;
+#line 645 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 646 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->tracker;
+#line 646 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _core_tracker_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, CORE_TYPE_VIEW_TRACKER, CoreViewTracker));
+#line 646 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp1_;
+#line 646 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 5581 "MediaPage.c"
+}
+
+
+void media_page_set_display_ratings (MediaPage* self, gboolean display) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GValue _tmp5_ = {0};
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GtkToggleAction* action = NULL;
+ GtkAction* _tmp8_ = NULL;
+ GtkToggleAction* _tmp9_ = NULL;
+ GtkToggleAction* _tmp10_ = NULL;
+#line 649 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 650 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 650 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 650 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 650 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = display;
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp5_, G_TYPE_BOOLEAN);
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_boolean (&_tmp5_, _tmp4_);
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), THUMBNAIL_PROP_SHOW_RATINGS, &_tmp5_, NULL, NULL);
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
+#line 651 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 652 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 652 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 652 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
+#line 652 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 654 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ViewRatings");
+#line 654 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp8_) : NULL;
+#line 654 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp9_ == NULL) {
+#line 654 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 5640 "MediaPage.c"
+ }
+#line 654 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ action = _tmp9_;
+#line 655 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = action;
+#line 655 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp10_ != NULL) {
+#line 5648 "MediaPage.c"
+ GtkToggleAction* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 656 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = action;
+#line 656 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = display;
+#line 656 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_toggle_action_set_active (_tmp11_, _tmp12_);
+#line 5657 "MediaPage.c"
+ }
+#line 649 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (action);
+#line 5661 "MediaPage.c"
+}
+
+
+static gboolean media_page_can_rate_selected (MediaPage* self, Rating rating) {
+ gboolean result = FALSE;
+#line 659 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), FALSE);
+#line 5669 "MediaPage.c"
+ {
+ GeeList* _view_list = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _view_size = 0;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _view_index = 0;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected (_tmp1_);
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_list = _tmp3_;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _view_list;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_size = _tmp6_;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = -1;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 5705 "MediaPage.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ Rating _tmp16_ = 0;
+ Rating _tmp17_ = 0;
+ gboolean _tmp18_ = FALSE;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _view_index;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = _tmp7_ + 1;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _view_index;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _view_size;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5731 "MediaPage.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _view_list;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _view_index;
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = gee_list_get (_tmp10_, _tmp11_);
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ view = (DataView*) _tmp12_;
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = view;
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = thumbnail_get_media_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_THUMBNAIL, Thumbnail));
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _tmp14_;
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = media_source_get_rating (_tmp15_);
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = rating;
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = _tmp16_ != _tmp17_;
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 661 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp18_) {
+#line 662 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = TRUE;
+#line 662 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 662 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 662 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 5765 "MediaPage.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 5769 "MediaPage.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 5773 "MediaPage.c"
+ }
+#line 665 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = FALSE;
+#line 665 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 5779 "MediaPage.c"
+}
+
+
+static gboolean media_page_can_increase_selected_rating (MediaPage* self) {
+ gboolean result = FALSE;
+#line 668 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), FALSE);
+#line 5787 "MediaPage.c"
+ {
+ GeeList* _view_list = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _view_size = 0;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _view_index = 0;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected (_tmp1_);
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_list = _tmp3_;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _view_list;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_size = _tmp6_;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = -1;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 5823 "MediaPage.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ Rating _tmp16_ = 0;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _view_index;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = _tmp7_ + 1;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _view_index;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _view_size;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5849 "MediaPage.c"
+ }
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _view_list;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _view_index;
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = gee_list_get (_tmp10_, _tmp11_);
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ view = (DataView*) _tmp12_;
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = view;
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = thumbnail_get_media_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_THUMBNAIL, Thumbnail));
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _tmp14_;
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = media_source_get_rating (_tmp15_);
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = rating_can_increase (_tmp16_);
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = _tmp17_;
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 670 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp18_) {
+#line 671 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = TRUE;
+#line 671 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 671 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 671 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 5883 "MediaPage.c"
+ }
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 5887 "MediaPage.c"
+ }
+#line 669 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 5891 "MediaPage.c"
+ }
+#line 674 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = FALSE;
+#line 674 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 5897 "MediaPage.c"
+}
+
+
+static gboolean media_page_can_decrease_selected_rating (MediaPage* self) {
+ gboolean result = FALSE;
+#line 677 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), FALSE);
+#line 5905 "MediaPage.c"
+ {
+ GeeList* _view_list = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _view_size = 0;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _view_index = 0;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected (_tmp1_);
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_list = _tmp3_;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _view_list;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_size = _tmp6_;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = -1;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 5941 "MediaPage.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ Rating _tmp16_ = 0;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _view_index;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = _tmp7_ + 1;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _view_index;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _view_size;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 5967 "MediaPage.c"
+ }
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _view_list;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _view_index;
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = gee_list_get (_tmp10_, _tmp11_);
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ view = (DataView*) _tmp12_;
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = view;
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = thumbnail_get_media_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_THUMBNAIL, Thumbnail));
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _tmp14_;
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = media_source_get_rating (_tmp15_);
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = rating_can_decrease (_tmp16_);
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = _tmp17_;
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 679 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp18_) {
+#line 680 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = TRUE;
+#line 680 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 680 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 680 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6001 "MediaPage.c"
+ }
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 6005 "MediaPage.c"
+ }
+#line 678 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 6009 "MediaPage.c"
+ }
+#line 683 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = FALSE;
+#line 683 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6015 "MediaPage.c"
+}
+
+
+MediaPageZoomSliderAssembly* media_page_create_zoom_slider_assembly (MediaPage* self) {
+ MediaPageZoomSliderAssembly* result = NULL;
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+#line 686 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), NULL);
+#line 687 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_zoom_slider_assembly_new ();
+#line 687 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp0_);
+#line 687 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp0_;
+#line 687 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6032 "MediaPage.c"
+}
+
+
+static gboolean media_page_real_on_mousewheel_up (Page* base, GdkEventScroll* event) {
+ MediaPage * self;
+ gboolean result = FALSE;
+ GdkEventScroll* _tmp0_ = NULL;
+ GdkModifierType _tmp1_ = 0;
+#line 690 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 690 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 691 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = event;
+#line 691 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_->state;
+#line 691 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((_tmp1_ & GDK_CONTROL_MASK) != 0) {
+#line 692 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_increase_zoom_level (self);
+#line 693 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = TRUE;
+#line 693 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6057 "MediaPage.c"
+ } else {
+ GdkEventScroll* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 695 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = event;
+#line 695 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = PAGE_CLASS (media_page_parent_class)->on_mousewheel_up (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp2_);
+#line 695 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp3_;
+#line 695 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6069 "MediaPage.c"
+ }
+}
+
+
+static gboolean media_page_real_on_mousewheel_down (Page* base, GdkEventScroll* event) {
+ MediaPage * self;
+ gboolean result = FALSE;
+ GdkEventScroll* _tmp0_ = NULL;
+ GdkModifierType _tmp1_ = 0;
+#line 699 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 699 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 700 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = event;
+#line 700 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_->state;
+#line 700 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if ((_tmp1_ & GDK_CONTROL_MASK) != 0) {
+#line 701 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_decrease_zoom_level (self);
+#line 702 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = TRUE;
+#line 702 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6095 "MediaPage.c"
+ } else {
+ GdkEventScroll* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 704 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = event;
+#line 704 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = PAGE_CLASS (media_page_parent_class)->on_mousewheel_down (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp2_);
+#line 704 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp3_;
+#line 704 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6107 "MediaPage.c"
+ }
+}
+
+
+static void media_page_on_send_to (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 708 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 709 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 709 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 709 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_sources (_tmp1_);
+#line 709 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 709 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ desktop_integration_send_to (_tmp3_);
+#line 709 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 709 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 6133 "MediaPage.c"
+}
+
+
+void media_page_on_play_video (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ Video* video = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ Video* _tmp9_ = NULL;
+ Video* _tmp10_ = NULL;
+ Video* _tmp11_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 712 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 713 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 713 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 713 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 713 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 713 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 713 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 714 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 6168 "MediaPage.c"
+ }
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected_at (_tmp5_, 0);
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, TYPE_VIDEO) ? ((Video*) _tmp8_) : NULL;
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp9_ == NULL) {
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 6186 "MediaPage.c"
+ }
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _tmp9_;
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 716 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ video = _tmp10_;
+#line 717 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = video;
+#line 717 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp11_ == NULL) {
+#line 718 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (video);
+#line 718 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 6204 "MediaPage.c"
+ }
+ {
+ Video* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = video;
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _tmp13_;
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = g_file_get_uri (_tmp14_);
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = _tmp15_;
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_app_info_launch_default_for_uri (_tmp16_, NULL, &_inner_error_);
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (_tmp16_);
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 721 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6230 "MediaPage.c"
+ goto __catch548_g_error;
+ }
+ }
+ goto __finally548;
+ __catch548_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp17_ = NULL;
+ GError* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ e = _inner_error_;
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _inner_error_ = NULL;
+#line 723 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _ ("Shotwell was unable to play the selected video:\n%s");
+#line 723 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = e;
+#line 723 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = _tmp18_->message;
+#line 723 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = g_strdup_printf (_tmp17_, _tmp19_);
+#line 723 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = _tmp20_;
+#line 723 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ app_window_error_message (_tmp21_, NULL);
+#line 723 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (_tmp21_);
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_error_free0 (e);
+#line 6263 "MediaPage.c"
+ }
+ __finally548:
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (video);
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_clear_error (&_inner_error_);
+#line 720 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 6276 "MediaPage.c"
+ }
+#line 712 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (video);
+#line 6280 "MediaPage.c"
+}
+
+
+static gboolean media_page_real_on_app_key_pressed (Page* base, GdkEventKey* event) {
+ MediaPage * self;
+ gboolean result = FALSE;
+ gboolean handled = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GQuark _tmp5_ = 0U;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label0 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label1 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label2 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label3 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label4 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label5 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label6 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label7 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label8 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label9 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label10 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label11 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label12 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label13 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label14 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label15 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label16 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label17 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label18 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label19 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label20 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label21 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label22 = 0;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ static GQuark _tmp4_label23 = 0;
+#line 6341 "MediaPage.c"
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+#line 728 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 728 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 729 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ handled = TRUE;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = event;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (((_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("equal")))) || (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("plus"))))) || (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("KP_Add"))))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6364 "MediaPage.c"
+ default:
+ {
+#line 734 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize");
+#line 735 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6371 "MediaPage.c"
+ }
+ }
+ } else if (((_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("minus")))) || (_tmp5_ == ((0 != _tmp4_label4) ? _tmp4_label4 : (_tmp4_label4 = g_quark_from_static_string ("underscore"))))) || (_tmp5_ == ((0 != _tmp4_label5) ? _tmp4_label5 : (_tmp4_label5 = g_quark_from_static_string ("KP_Subtract"))))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6377 "MediaPage.c"
+ default:
+ {
+#line 740 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize");
+#line 741 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6384 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label6) ? _tmp4_label6 : (_tmp4_label6 = g_quark_from_static_string ("period")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6390 "MediaPage.c"
+ default:
+ {
+#line 744 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseRating");
+#line 745 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6397 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label7) ? _tmp4_label7 : (_tmp4_label7 = g_quark_from_static_string ("comma")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6403 "MediaPage.c"
+ default:
+ {
+#line 748 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseRating");
+#line 749 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6410 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label8) ? _tmp4_label8 : (_tmp4_label8 = g_quark_from_static_string ("KP_1")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6416 "MediaPage.c"
+ default:
+ {
+#line 752 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateOne");
+#line 753 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6423 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label9) ? _tmp4_label9 : (_tmp4_label9 = g_quark_from_static_string ("KP_2")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6429 "MediaPage.c"
+ default:
+ {
+#line 756 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateTwo");
+#line 757 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6436 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label10) ? _tmp4_label10 : (_tmp4_label10 = g_quark_from_static_string ("KP_3")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6442 "MediaPage.c"
+ default:
+ {
+#line 760 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateThree");
+#line 761 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6449 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label11) ? _tmp4_label11 : (_tmp4_label11 = g_quark_from_static_string ("KP_4")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6455 "MediaPage.c"
+ default:
+ {
+#line 764 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFour");
+#line 765 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6462 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label12) ? _tmp4_label12 : (_tmp4_label12 = g_quark_from_static_string ("KP_5")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6468 "MediaPage.c"
+ default:
+ {
+#line 768 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFive");
+#line 769 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6475 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label13) ? _tmp4_label13 : (_tmp4_label13 = g_quark_from_static_string ("KP_0")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6481 "MediaPage.c"
+ default:
+ {
+#line 772 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateUnrated");
+#line 773 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6488 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label14) ? _tmp4_label14 : (_tmp4_label14 = g_quark_from_static_string ("KP_9")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6494 "MediaPage.c"
+ default:
+ {
+#line 776 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateRejected");
+#line 777 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6501 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label15) ? _tmp4_label15 : (_tmp4_label15 = g_quark_from_static_string ("exclam")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6507 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp6_ = FALSE;
+#line 780 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 780 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp6_) {
+#line 6515 "MediaPage.c"
+ SearchViewFilter* _tmp7_ = NULL;
+ SearchViewFilter* _tmp8_ = NULL;
+#line 781 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 781 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _tmp7_;
+#line 781 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp8_, RATING_FILTER_ONE_OR_HIGHER);
+#line 781 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp8_);
+#line 6526 "MediaPage.c"
+ }
+#line 782 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6530 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label16) ? _tmp4_label16 : (_tmp4_label16 = g_quark_from_static_string ("at")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6536 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp9_ = FALSE;
+#line 785 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 785 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp9_) {
+#line 6544 "MediaPage.c"
+ SearchViewFilter* _tmp10_ = NULL;
+ SearchViewFilter* _tmp11_ = NULL;
+#line 786 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 786 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 786 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp11_, RATING_FILTER_TWO_OR_HIGHER);
+#line 786 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp11_);
+#line 6555 "MediaPage.c"
+ }
+#line 787 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6559 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label17) ? _tmp4_label17 : (_tmp4_label17 = g_quark_from_static_string ("numbersign")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6565 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp12_ = FALSE;
+#line 790 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 790 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp12_) {
+#line 6573 "MediaPage.c"
+ SearchViewFilter* _tmp13_ = NULL;
+ SearchViewFilter* _tmp14_ = NULL;
+#line 791 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 791 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _tmp13_;
+#line 791 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp14_, RATING_FILTER_THREE_OR_HIGHER);
+#line 791 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp14_);
+#line 6584 "MediaPage.c"
+ }
+#line 792 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6588 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label18) ? _tmp4_label18 : (_tmp4_label18 = g_quark_from_static_string ("dollar")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6594 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp15_ = FALSE;
+#line 795 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 795 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp15_) {
+#line 6602 "MediaPage.c"
+ SearchViewFilter* _tmp16_ = NULL;
+ SearchViewFilter* _tmp17_ = NULL;
+#line 796 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 796 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _tmp16_;
+#line 796 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp17_, RATING_FILTER_FOUR_OR_HIGHER);
+#line 796 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp17_);
+#line 6613 "MediaPage.c"
+ }
+#line 797 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6617 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label19) ? _tmp4_label19 : (_tmp4_label19 = g_quark_from_static_string ("percent")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6623 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp18_ = FALSE;
+#line 800 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 800 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp18_) {
+#line 6631 "MediaPage.c"
+ SearchViewFilter* _tmp19_ = NULL;
+ SearchViewFilter* _tmp20_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 801 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = _tmp19_;
+#line 801 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp20_, RATING_FILTER_FIVE_OR_HIGHER);
+#line 801 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp20_);
+#line 6642 "MediaPage.c"
+ }
+#line 802 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6646 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label20) ? _tmp4_label20 : (_tmp4_label20 = g_quark_from_static_string ("parenright")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6652 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp21_ = FALSE;
+#line 805 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 805 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp21_) {
+#line 6660 "MediaPage.c"
+ SearchViewFilter* _tmp22_ = NULL;
+ SearchViewFilter* _tmp23_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 806 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = _tmp22_;
+#line 806 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp23_, RATING_FILTER_UNRATED_OR_HIGHER);
+#line 806 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp23_);
+#line 6671 "MediaPage.c"
+ }
+#line 807 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6675 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label21) ? _tmp4_label21 : (_tmp4_label21 = g_quark_from_static_string ("parenleft")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6681 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp24_ = FALSE;
+#line 810 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 810 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp24_) {
+#line 6689 "MediaPage.c"
+ SearchViewFilter* _tmp25_ = NULL;
+ SearchViewFilter* _tmp26_ = NULL;
+#line 811 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 811 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = _tmp25_;
+#line 811 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp26_, RATING_FILTER_REJECTED_OR_HIGHER);
+#line 811 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp26_);
+#line 6700 "MediaPage.c"
+ }
+#line 812 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6704 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label22) ? _tmp4_label22 : (_tmp4_label22 = g_quark_from_static_string ("asterisk")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6710 "MediaPage.c"
+ default:
+ {
+ gboolean _tmp27_ = FALSE;
+#line 815 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 815 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp27_) {
+#line 6718 "MediaPage.c"
+ SearchViewFilter* _tmp28_ = NULL;
+ SearchViewFilter* _tmp29_ = NULL;
+#line 816 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = checkerboard_page_get_search_view_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 816 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_ = _tmp28_;
+#line 816 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ search_view_filter_set_rating_filter (_tmp29_, RATING_FILTER_REJECTED_ONLY);
+#line 816 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_filter_unref0 (_tmp29_);
+#line 6729 "MediaPage.c"
+ }
+#line 817 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6733 "MediaPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label23) ? _tmp4_label23 : (_tmp4_label23 = g_quark_from_static_string ("slash")))) {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6739 "MediaPage.c"
+ default:
+ {
+#line 820 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Flag");
+#line 821 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6746 "MediaPage.c"
+ }
+ }
+ } else {
+#line 730 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (0) {
+#line 6752 "MediaPage.c"
+ default:
+ {
+#line 824 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ handled = FALSE;
+#line 825 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 6759 "MediaPage.c"
+ }
+ }
+ }
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = handled;
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp31_) {
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = TRUE;
+#line 6769 "MediaPage.c"
+ } else {
+ GdkEventKey* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_ = event;
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = PAGE_CLASS (media_page_parent_class)->on_app_key_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp32_);
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = _tmp33_;
+#line 6779 "MediaPage.c"
+ }
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp30_;
+#line 828 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 6785 "MediaPage.c"
+}
+
+
+static void media_page_real_switched_to (Page* base) {
+ MediaPage * self;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ ConfigFacade* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ ConfigFacade* _tmp8_ = NULL;
+ ConfigFacade* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ ConfigFacade* _tmp11_ = NULL;
+ ConfigFacade* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gboolean _tmp19_ = FALSE;
+#line 831 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 832 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ PAGE_CLASS (media_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page));
+#line 835 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 835 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 835 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 835 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 836 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 836 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 836 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = configuration_facade_get_display_photo_titles (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 836 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_page_set_display_titles (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp4_);
+#line 836 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 837 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = config_facade_get_instance ();
+#line 837 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 837 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = configuration_facade_get_display_photo_comments (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 837 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_page_set_display_comments (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp7_);
+#line 837 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 838 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = config_facade_get_instance ();
+#line 838 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 838 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = configuration_facade_get_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 838 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_display_ratings (self, _tmp10_);
+#line 838 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 839 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = config_facade_get_instance ();
+#line 839 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 839 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = configuration_facade_get_display_photo_tags (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 839 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_display_tags (self, _tmp13_);
+#line 839 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 840 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 840 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _tmp14_;
+#line 840 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_COLLECTION, DataCollection));
+#line 840 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 844 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 844 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _tmp16_;
+#line 844 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = view_collection_get_selected_count (_tmp17_);
+#line 844 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = _tmp18_ > 0;
+#line 844 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 844 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp19_) {
+#line 6883 "MediaPage.c"
+ CheckerboardItem* selected = NULL;
+ ViewCollection* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ DataView* _tmp22_ = NULL;
+ CheckerboardItem* _tmp23_ = NULL;
+ CheckerboardItem* _tmp24_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 845 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = _tmp20_;
+#line 845 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = view_collection_get_selected_at (_tmp21_, 0);
+#line 845 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 845 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp21_);
+#line 845 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ selected = _tmp23_;
+#line 846 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = selected;
+#line 846 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp24_ != NULL) {
+#line 6906 "MediaPage.c"
+ CheckerboardItem* _tmp25_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = selected;
+#line 847 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_page_cursor_to_item (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp25_);
+#line 6912 "MediaPage.c"
+ }
+#line 844 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (selected);
+#line 6916 "MediaPage.c"
+ }
+#line 850 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_sync_sort (self);
+#line 6920 "MediaPage.c"
+}
+
+
+static void media_page_real_switching_from (Page* base) {
+ MediaPage * self;
+#line 853 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 854 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_disconnect_slider (self);
+#line 856 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ PAGE_CLASS (media_page_parent_class)->switching_from (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page));
+#line 6932 "MediaPage.c"
+}
+
+
+static void _media_page_on_zoom_changed_media_page_zoom_slider_assembly_zoom_changed (MediaPageZoomSliderAssembly* _sender, gpointer self) {
+#line 861 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_zoom_changed ((MediaPage*) self);
+#line 6939 "MediaPage.c"
+}
+
+
+void media_page_connect_slider (MediaPage* self, MediaPageZoomSliderAssembly* slider) {
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+ MediaPageZoomSliderAssembly* _tmp1_ = NULL;
+ MediaPageZoomSliderAssembly* _tmp2_ = NULL;
+#line 859 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 859 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (slider));
+#line 860 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = slider;
+#line 860 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 860 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (self->priv->connected_slider);
+#line 860 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->connected_slider = _tmp1_;
+#line 861 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = self->priv->connected_slider;
+#line 861 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_connect_object (_tmp2_, "zoom-changed", (GCallback) _media_page_on_zoom_changed_media_page_zoom_slider_assembly_zoom_changed, self, 0);
+#line 862 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_load_persistent_thumbnail_scale (self);
+#line 6965 "MediaPage.c"
+}
+
+
+static void media_page_save_persistent_thumbnail_scale (MediaPage* self) {
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+ MediaPageZoomSliderAssembly* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 865 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 866 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->connected_slider;
+#line 866 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ == NULL) {
+#line 867 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 6983 "MediaPage.c"
+ }
+#line 869 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = config_facade_get_instance ();
+#line 869 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 869 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = self->priv->connected_slider;
+#line 869 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = media_page_zoom_slider_assembly_get_scale (_tmp3_);
+#line 869 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ configuration_facade_set_photo_thumbnail_scale (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp4_);
+#line 869 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 6997 "MediaPage.c"
+}
+
+
+static void media_page_load_persistent_thumbnail_scale (MediaPage* self) {
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+ gint persistent_scale = 0;
+ ConfigFacade* _tmp1_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ MediaPageZoomSliderAssembly* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 872 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 873 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->connected_slider;
+#line 873 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ == NULL) {
+#line 874 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7019 "MediaPage.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = config_facade_get_instance ();
+#line 876 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 876 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = configuration_facade_get_photo_thumbnail_scale (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 876 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_;
+#line 876 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 876 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ persistent_scale = _tmp4_;
+#line 878 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = self->priv->connected_slider;
+#line 878 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = persistent_scale;
+#line 878 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_zoom_slider_assembly_set_scale (_tmp5_, _tmp6_);
+#line 879 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = persistent_scale;
+#line 879 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_thumb_size (self, _tmp7_);
+#line 7043 "MediaPage.c"
+}
+
+
+void media_page_disconnect_slider (MediaPage* self) {
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+ MediaPageZoomSliderAssembly* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 882 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 883 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->connected_slider;
+#line 883 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ == NULL) {
+#line 884 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7059 "MediaPage.c"
+ }
+#line 886 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = self->priv->connected_slider;
+#line 886 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_parse_name ("zoom-changed", MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, &_tmp2_, NULL, FALSE);
+#line 886 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _media_page_on_zoom_changed_media_page_zoom_slider_assembly_zoom_changed, self);
+#line 887 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (self->priv->connected_slider);
+#line 887 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->connected_slider = NULL;
+#line 7071 "MediaPage.c"
+}
+
+
+static void media_page_real_on_zoom_changed (MediaPage* self) {
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+#line 891 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->connected_slider;
+#line 891 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ != NULL) {
+#line 7081 "MediaPage.c"
+ MediaPageZoomSliderAssembly* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 892 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = self->priv->connected_slider;
+#line 892 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_zoom_slider_assembly_get_scale (_tmp1_);
+#line 892 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_thumb_size (self, _tmp2_);
+#line 7090 "MediaPage.c"
+ }
+#line 894 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_save_persistent_thumbnail_scale (self);
+#line 7094 "MediaPage.c"
+}
+
+
+void media_page_on_zoom_changed (MediaPage* self) {
+#line 890 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 890 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_zoom_changed (self);
+#line 7103 "MediaPage.c"
+}
+
+
+static void media_page_real_on_export (MediaPage* self) {
+#line 897 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_page_on_export'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 897 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7112 "MediaPage.c"
+}
+
+
+void media_page_on_export (MediaPage* self) {
+#line 897 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 897 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_export (self);
+#line 7121 "MediaPage.c"
+}
+
+
+static void media_page_real_on_increase_size (MediaPage* self) {
+#line 900 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_increase_zoom_level (self);
+#line 7128 "MediaPage.c"
+}
+
+
+void media_page_on_increase_size (MediaPage* self) {
+#line 899 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 899 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_increase_size (self);
+#line 7137 "MediaPage.c"
+}
+
+
+static void media_page_real_on_decrease_size (MediaPage* self) {
+#line 904 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_decrease_zoom_level (self);
+#line 7144 "MediaPage.c"
+}
+
+
+void media_page_on_decrease_size (MediaPage* self) {
+#line 903 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 903 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_decrease_size (self);
+#line 7153 "MediaPage.c"
+}
+
+
+static void media_page_on_add_tags (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ AddTagsDialog* dialog = NULL;
+ AddTagsDialog* _tmp4_ = NULL;
+ gchar** names = NULL;
+ AddTagsDialog* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gchar** _tmp7_ = NULL;
+ gint names_length1 = 0;
+ gint _names_size_ = 0;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 907 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 908 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 908 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 908 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 908 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 908 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 908 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 909 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7188 "MediaPage.c"
+ }
+#line 911 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = add_tags_dialog_new ();
+#line 911 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ dialog = _tmp4_;
+#line 912 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = dialog;
+#line 912 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = add_tags_dialog_execute (_tmp5_, &_tmp6_);
+#line 912 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ names = _tmp7_;
+#line 912 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ names_length1 = _tmp6_;
+#line 912 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _names_size_ = names_length1;
+#line 914 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = names;
+#line 914 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8__length1 = names_length1;
+#line 914 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp8_ != NULL) {
+#line 7210 "MediaPage.c"
+ CommandManager* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ HierarchicalTagIndex* _tmp11_ = NULL;
+ HierarchicalTagIndex* _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp14_ = 0;
+ gchar** _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ ViewCollection* _tmp17_ = NULL;
+ ViewCollection* _tmp18_ = NULL;
+ GeeList* _tmp19_ = NULL;
+ GeeCollection* _tmp20_ = NULL;
+ AddTagsCommand* _tmp21_ = NULL;
+ AddTagsCommand* _tmp22_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _tmp9_;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = hierarchical_tag_index_get_global_index ();
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = names;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13__length1 = names_length1;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = hierarchical_tag_index_get_paths_for_names_array (_tmp12_, _tmp13_, _tmp13__length1, &_tmp14_);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = _tmp15_;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16__length1 = _tmp14_;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = _tmp17_;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = view_collection_get_selected_sources (_tmp18_);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = add_tags_command_new (_tmp16_, _tmp14_, _tmp20_);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = _tmp21_;
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp10_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_COMMAND, Command));
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp18_);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = (_vala_array_free (_tmp16_, _tmp16__length1, (GDestroyNotify) g_free), NULL);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _hierarchical_tag_index_unref0 (_tmp12_);
+#line 915 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp10_);
+#line 7271 "MediaPage.c"
+ }
+#line 907 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+#line 907 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 7277 "MediaPage.c"
+}
+
+
+static void media_page_on_modify_tags (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ MediaSource* media = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+ ModifyTagsDialog* dialog = NULL;
+ MediaSource* _tmp10_ = NULL;
+ ModifyTagsDialog* _tmp11_ = NULL;
+ GeeArrayList* new_tags = NULL;
+ ModifyTagsDialog* _tmp12_ = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ CommandManager* _tmp15_ = NULL;
+ CommandManager* _tmp16_ = NULL;
+ MediaSource* _tmp17_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ ModifyTagsCommand* _tmp19_ = NULL;
+ ModifyTagsCommand* _tmp20_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 922 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 922 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 922 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 922 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 922 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 922 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 923 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7322 "MediaPage.c"
+ }
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected_at (_tmp5_, 0);
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 925 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media = _tmp9_;
+#line 927 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = media;
+#line 927 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = modify_tags_dialog_new (_tmp10_);
+#line 927 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ dialog = _tmp11_;
+#line 928 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = dialog;
+#line 928 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = modify_tags_dialog_execute (_tmp12_);
+#line 928 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_tags = _tmp13_;
+#line 930 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = new_tags;
+#line 930 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp14_ == NULL) {
+#line 931 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (new_tags);
+#line 931 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 931 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (media);
+#line 931 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7366 "MediaPage.c"
+ }
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = _tmp15_;
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = media;
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = new_tags;
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = modify_tags_command_new (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = _tmp19_;
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_COMMAND, Command));
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 933 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp16_);
+#line 921 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (new_tags);
+#line 921 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 921 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (media);
+#line 7392 "MediaPage.c"
+}
+
+
+static void media_page_set_display_tags (MediaPage* self, gboolean display) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GValue _tmp5_ = {0};
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GtkToggleAction* action = NULL;
+ GtkAction* _tmp8_ = NULL;
+ GtkToggleAction* _tmp9_ = NULL;
+ GtkToggleAction* _tmp10_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 937 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 937 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 937 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 937 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = display;
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp5_, G_TYPE_BOOLEAN);
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_boolean (&_tmp5_, _tmp4_);
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), THUMBNAIL_PROP_SHOW_TAGS, &_tmp5_, NULL, NULL);
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
+#line 938 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 939 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 939 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 939 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
+#line 939 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 941 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ViewTags");
+#line 941 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp8_) : NULL;
+#line 941 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp9_ == NULL) {
+#line 941 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 7451 "MediaPage.c"
+ }
+#line 941 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ action = _tmp9_;
+#line 942 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = action;
+#line 942 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp10_ != NULL) {
+#line 7459 "MediaPage.c"
+ GtkToggleAction* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 943 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = action;
+#line 943 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = display;
+#line 943 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_toggle_action_set_active (_tmp11_, _tmp12_);
+#line 7468 "MediaPage.c"
+ }
+#line 936 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (action);
+#line 7472 "MediaPage.c"
+}
+
+
+static void media_page_on_new_event (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 946 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 947 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 947 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 947 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 947 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ > 0;
+#line 947 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 947 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 7495 "MediaPage.c"
+ CommandManager* _tmp4_ = NULL;
+ CommandManager* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ NewEventCommand* _tmp10_ = NULL;
+ NewEventCommand* _tmp11_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = view_collection_get_selected (_tmp7_);
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = new_event_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_COMMAND, Command));
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 948 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp5_);
+#line 7530 "MediaPage.c"
+ }
+}
+
+
+static void media_page_on_flag_unflag (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ GeeCollection* sources = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ gboolean flag = FALSE;
+ CommandManager* _tmp20_ = NULL;
+ CommandManager* _tmp21_ = NULL;
+ GeeCollection* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ FlagUnflagCommand* _tmp24_ = NULL;
+ FlagUnflagCommand* _tmp25_ = NULL;
+#line 951 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 952 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 952 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 952 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 952 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 952 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 952 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 953 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7568 "MediaPage.c"
+ }
+#line 955 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 955 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 955 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected_sources_of_type (_tmp5_, TYPE_MEDIA_SOURCE);
+#line 955 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 955 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 955 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sources = _tmp7_;
+#line 959 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flag = FALSE;
+#line 7584 "MediaPage.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = sources;
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _source_it = _tmp9_;
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 7597 "MediaPage.c"
+ GeeIterator* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ Flaggable* flaggable = NULL;
+ MediaSource* _tmp14_ = NULL;
+ Flaggable* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ Flaggable* _tmp17_ = NULL;
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _source_it;
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = gee_iterator_next (_tmp10_);
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!_tmp11_) {
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 7616 "MediaPage.c"
+ }
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _source_it;
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = gee_iterator_get (_tmp12_);
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ source = (MediaSource*) _tmp13_;
+#line 961 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = source;
+#line 961 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp14_) : NULL);
+#line 961 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flaggable = _tmp15_;
+#line 962 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = flaggable;
+#line 962 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp17_ != NULL) {
+#line 7634 "MediaPage.c"
+ Flaggable* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 962 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = flaggable;
+#line 962 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = flaggable_is_flagged (_tmp18_);
+#line 962 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = !_tmp19_;
+#line 7643 "MediaPage.c"
+ } else {
+#line 962 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = FALSE;
+#line 7647 "MediaPage.c"
+ }
+#line 962 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp16_) {
+#line 963 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ flag = TRUE;
+#line 965 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (flaggable);
+#line 965 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (source);
+#line 965 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 7659 "MediaPage.c"
+ }
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (flaggable);
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (source);
+#line 7665 "MediaPage.c"
+ }
+#line 960 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_source_it);
+#line 7669 "MediaPage.c"
+ }
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = _tmp20_;
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = sources;
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = flag;
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = flag_unflag_command_new (_tmp22_, _tmp23_);
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = _tmp24_;
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_COMMAND, Command));
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp25_);
+#line 969 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp21_);
+#line 951 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (sources);
+#line 7691 "MediaPage.c"
+}
+
+
+static void media_page_real_on_increase_rating (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ SetRatingCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ SetRatingCommand* _tmp8_ = NULL;
+ SetRatingCommand* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ SetRatingCommand* _tmp12_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 973 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 973 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 973 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 973 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 973 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 974 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7724 "MediaPage.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = set_rating_command_new_inc_dec (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable), TRUE);
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 976 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command = _tmp9_;
+#line 977 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 977 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 977 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = command;
+#line 977 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_COMMAND, Command));
+#line 977 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp11_);
+#line 979 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_rating_sensitivities (self);
+#line 972 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (command);
+#line 7758 "MediaPage.c"
+}
+
+
+void media_page_on_increase_rating (MediaPage* self) {
+#line 972 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 972 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_increase_rating (self);
+#line 7767 "MediaPage.c"
+}
+
+
+static void media_page_real_on_decrease_rating (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ SetRatingCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ SetRatingCommand* _tmp8_ = NULL;
+ SetRatingCommand* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ SetRatingCommand* _tmp12_ = NULL;
+#line 983 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 983 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 983 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 983 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 983 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 983 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 984 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7800 "MediaPage.c"
+ }
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = set_rating_command_new_inc_dec (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable), FALSE);
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 986 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command = _tmp9_;
+#line 987 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 987 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 987 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = command;
+#line 987 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_COMMAND, Command));
+#line 987 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp11_);
+#line 989 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_rating_sensitivities (self);
+#line 982 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (command);
+#line 7834 "MediaPage.c"
+}
+
+
+void media_page_on_decrease_rating (MediaPage* self) {
+#line 982 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 982 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_decrease_rating (self);
+#line 7843 "MediaPage.c"
+}
+
+
+static void media_page_real_on_set_rating (MediaPage* self, Rating rating) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ SetRatingCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ Rating _tmp8_ = 0;
+ SetRatingCommand* _tmp9_ = NULL;
+ SetRatingCommand* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ SetRatingCommand* _tmp13_ = NULL;
+#line 993 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 993 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 993 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 993 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 993 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 993 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 994 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 7877 "MediaPage.c"
+ }
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = rating;
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = set_rating_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable), _tmp8_);
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _tmp9_;
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 996 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command = _tmp10_;
+#line 997 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 997 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 997 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = command;
+#line 997 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_COMMAND, Command));
+#line 997 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp12_);
+#line 999 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_rating_sensitivities (self);
+#line 992 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (command);
+#line 7913 "MediaPage.c"
+}
+
+
+void media_page_on_set_rating (MediaPage* self, Rating rating) {
+#line 992 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 992 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_set_rating (self, rating);
+#line 7922 "MediaPage.c"
+}
+
+
+static void media_page_real_on_rate_rejected (MediaPage* self) {
+#line 1003 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_set_rating (self, RATING_REJECTED);
+#line 7929 "MediaPage.c"
+}
+
+
+void media_page_on_rate_rejected (MediaPage* self) {
+#line 1002 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1002 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_rate_rejected (self);
+#line 7938 "MediaPage.c"
+}
+
+
+static void media_page_real_on_rate_unrated (MediaPage* self) {
+#line 1007 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_set_rating (self, RATING_UNRATED);
+#line 7945 "MediaPage.c"
+}
+
+
+void media_page_on_rate_unrated (MediaPage* self) {
+#line 1006 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1006 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_rate_unrated (self);
+#line 7954 "MediaPage.c"
+}
+
+
+static void media_page_real_on_rate_one (MediaPage* self) {
+#line 1011 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_set_rating (self, RATING_ONE);
+#line 7961 "MediaPage.c"
+}
+
+
+void media_page_on_rate_one (MediaPage* self) {
+#line 1010 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1010 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_rate_one (self);
+#line 7970 "MediaPage.c"
+}
+
+
+static void media_page_real_on_rate_two (MediaPage* self) {
+#line 1015 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_set_rating (self, RATING_TWO);
+#line 7977 "MediaPage.c"
+}
+
+
+void media_page_on_rate_two (MediaPage* self) {
+#line 1014 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1014 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_rate_two (self);
+#line 7986 "MediaPage.c"
+}
+
+
+static void media_page_real_on_rate_three (MediaPage* self) {
+#line 1019 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_set_rating (self, RATING_THREE);
+#line 7993 "MediaPage.c"
+}
+
+
+void media_page_on_rate_three (MediaPage* self) {
+#line 1018 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1018 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_rate_three (self);
+#line 8002 "MediaPage.c"
+}
+
+
+static void media_page_real_on_rate_four (MediaPage* self) {
+#line 1023 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_set_rating (self, RATING_FOUR);
+#line 8009 "MediaPage.c"
+}
+
+
+void media_page_on_rate_four (MediaPage* self) {
+#line 1022 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1022 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_rate_four (self);
+#line 8018 "MediaPage.c"
+}
+
+
+static void media_page_real_on_rate_five (MediaPage* self) {
+#line 1027 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_on_set_rating (self, RATING_FIVE);
+#line 8025 "MediaPage.c"
+}
+
+
+void media_page_on_rate_five (MediaPage* self) {
+#line 1026 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1026 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_rate_five (self);
+#line 8034 "MediaPage.c"
+}
+
+
+static void media_page_on_remove_from_library (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 1030 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1031 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1031 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1031 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_sources (_tmp1_);
+#line 1031 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1031 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ remove_photos_from_library (_tmp3_);
+#line 1031 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1031 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 8059 "MediaPage.c"
+}
+
+
+static void media_page_real_on_move_to_trash (MediaPage* self) {
+ CheckerboardItem* restore_point = NULL;
+ CheckerboardItem* _tmp0_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ CheckerboardItem* _tmp19_ = NULL;
+#line 1035 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ restore_point = NULL;
+#line 1037 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage)->cursor;
+#line 1037 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ != NULL) {
+#line 8078 "MediaPage.c"
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ CheckerboardItem* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ CheckerboardItem* _tmp5_ = NULL;
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage)->cursor;
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = view_collection_get_next (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_VIEW, DataView));
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, TYPE_CHECKERBOARD_ITEM) ? ((CheckerboardItem*) _tmp4_) : NULL;
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp5_ == NULL) {
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 8098 "MediaPage.c"
+ }
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (restore_point);
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ restore_point = _tmp5_;
+#line 1038 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 8106 "MediaPage.c"
+ }
+#line 1041 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1041 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1041 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = view_collection_get_selected_count (_tmp7_);
+#line 1041 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_ > 0;
+#line 1041 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 1041 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp9_) {
+#line 8120 "MediaPage.c"
+ CommandManager* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ GeeList* _tmp14_ = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ TrashUntrashPhotosCommand* _tmp16_ = NULL;
+ TrashUntrashPhotosCommand* _tmp17_ = NULL;
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = _tmp12_;
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = view_collection_get_selected_sources (_tmp13_);
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = trash_untrash_photos_command_new (_tmp15_, TRUE);
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = _tmp16_;
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_COMMAND, Command));
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp17_);
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 1042 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp11_);
+#line 8155 "MediaPage.c"
+ }
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = restore_point;
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp19_ != NULL) {
+#line 8161 "MediaPage.c"
+ ViewCollection* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ CheckerboardItem* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = _tmp20_;
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = restore_point;
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_OBJECT, DataObject));
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = _tmp23_;
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp21_);
+#line 8178 "MediaPage.c"
+ } else {
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = FALSE;
+#line 8182 "MediaPage.c"
+ }
+#line 1046 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp18_) {
+#line 8186 "MediaPage.c"
+ CheckerboardItem* _tmp24_ = NULL;
+#line 1047 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = restore_point;
+#line 1047 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_page_set_cursor (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp24_);
+#line 8192 "MediaPage.c"
+ }
+#line 1034 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (restore_point);
+#line 8196 "MediaPage.c"
+}
+
+
+void media_page_on_move_to_trash (MediaPage* self) {
+#line 1034 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1034 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_move_to_trash (self);
+#line 8205 "MediaPage.c"
+}
+
+
+static void media_page_real_on_edit_title (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ GeeList* media_sources = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ EditTitleDialog* edit_title_dialog = NULL;
+ GeeList* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ EditTitleDialog* _tmp13_ = NULL;
+ EditTitleDialog* _tmp14_ = NULL;
+ gchar* new_title = NULL;
+ EditTitleDialog* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 1052 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1052 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1052 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 1052 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 1052 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1052 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 1053 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 8245 "MediaPage.c"
+ }
+#line 1055 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1055 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1055 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected_sources (_tmp5_);
+#line 1055 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_LIST, GeeList);
+#line 1055 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 1055 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_sources = _tmp7_;
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = media_sources;
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = gee_list_get (_tmp8_, 0);
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = (MediaSource*) _tmp9_;
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = media_source_get_title (_tmp10_);
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = edit_title_dialog_new (_tmp12_);
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (_tmp12_);
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1057 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ edit_title_dialog = _tmp14_;
+#line 1058 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = edit_title_dialog;
+#line 1058 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = edit_title_dialog_execute (_tmp15_);
+#line 1058 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_title = _tmp16_;
+#line 1059 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = new_title;
+#line 1059 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp17_ != NULL) {
+#line 8289 "MediaPage.c"
+ CommandManager* _tmp18_ = NULL;
+ CommandManager* _tmp19_ = NULL;
+ GeeList* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ EditMultipleTitlesCommand* _tmp22_ = NULL;
+ EditMultipleTitlesCommand* _tmp23_ = NULL;
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = _tmp18_;
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = media_sources;
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = new_title;
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = edit_multiple_titles_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection), _tmp21_);
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = _tmp22_;
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_COMMAND, Command));
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp23_);
+#line 1060 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp19_);
+#line 8314 "MediaPage.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (new_title);
+#line 1051 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _text_entry_dialog_mediator_unref0 (edit_title_dialog);
+#line 1051 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (media_sources);
+#line 8322 "MediaPage.c"
+}
+
+
+void media_page_on_edit_title (MediaPage* self) {
+#line 1051 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1051 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_edit_title (self);
+#line 8331 "MediaPage.c"
+}
+
+
+static void media_page_real_on_edit_comment (MediaPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ GeeList* media_sources = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ EditCommentDialog* edit_comment_dialog = NULL;
+ GeeList* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ EditCommentDialog* _tmp13_ = NULL;
+ EditCommentDialog* _tmp14_ = NULL;
+ gchar* new_comment = NULL;
+ EditCommentDialog* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 1064 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1064 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1064 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 1064 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 1064 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1064 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 1065 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 8371 "MediaPage.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1067 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1067 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = view_collection_get_selected_sources (_tmp5_);
+#line 1067 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_LIST, GeeList);
+#line 1067 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 1067 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_sources = _tmp7_;
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = media_sources;
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = gee_list_get (_tmp8_, 0);
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = (MediaSource*) _tmp9_;
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = media_source_get_comment (_tmp10_);
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = edit_comment_dialog_new (_tmp12_, FALSE);
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (_tmp12_);
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1069 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ edit_comment_dialog = _tmp14_;
+#line 1070 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = edit_comment_dialog;
+#line 1070 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = edit_comment_dialog_execute (_tmp15_);
+#line 1070 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_comment = _tmp16_;
+#line 1071 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = new_comment;
+#line 1071 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp17_ != NULL) {
+#line 8415 "MediaPage.c"
+ CommandManager* _tmp18_ = NULL;
+ CommandManager* _tmp19_ = NULL;
+ GeeList* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ EditMultipleCommentsCommand* _tmp22_ = NULL;
+ EditMultipleCommentsCommand* _tmp23_ = NULL;
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = _tmp18_;
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = media_sources;
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = new_comment;
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = edit_multiple_comments_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection), _tmp21_);
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = _tmp22_;
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_COMMAND, Command));
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp23_);
+#line 1072 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp19_);
+#line 8440 "MediaPage.c"
+ }
+#line 1063 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (new_comment);
+#line 1063 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _multi_text_entry_dialog_mediator_unref0 (edit_comment_dialog);
+#line 1063 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (media_sources);
+#line 8448 "MediaPage.c"
+}
+
+
+void media_page_on_edit_comment (MediaPage* self) {
+#line 1063 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1063 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_edit_comment (self);
+#line 8457 "MediaPage.c"
+}
+
+
+static void media_page_real_on_display_titles (MediaPage* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 1075 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 1076 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = action;
+#line 1076 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 1076 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ display = _tmp1_;
+#line 1078 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_page_set_display_titles (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), display);
+#line 1080 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 1080 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1080 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ configuration_facade_set_display_photo_titles (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), display);
+#line 1080 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 8485 "MediaPage.c"
+}
+
+
+void media_page_on_display_titles (MediaPage* self, GtkAction* action) {
+#line 1075 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1075 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_display_titles (self, action);
+#line 8494 "MediaPage.c"
+}
+
+
+static void media_page_real_on_display_comments (MediaPage* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 1083 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 1084 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = action;
+#line 1084 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 1084 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ display = _tmp1_;
+#line 1086 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_page_set_display_comments (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), display);
+#line 1088 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 1088 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1088 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ configuration_facade_set_display_photo_comments (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), display);
+#line 1088 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 8522 "MediaPage.c"
+}
+
+
+void media_page_on_display_comments (MediaPage* self, GtkAction* action) {
+#line 1083 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1083 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_display_comments (self, action);
+#line 8531 "MediaPage.c"
+}
+
+
+static void media_page_real_on_display_ratings (MediaPage* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 1091 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 1092 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = action;
+#line 1092 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 1092 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ display = _tmp1_;
+#line 1094 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_display_ratings (self, display);
+#line 1096 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 1096 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1096 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ configuration_facade_set_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), display);
+#line 1096 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 8559 "MediaPage.c"
+}
+
+
+void media_page_on_display_ratings (MediaPage* self, GtkAction* action) {
+#line 1091 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1091 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_display_ratings (self, action);
+#line 8568 "MediaPage.c"
+}
+
+
+static void media_page_real_on_display_tags (MediaPage* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 1099 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 1100 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = action;
+#line 1100 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 1100 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ display = _tmp1_;
+#line 1102 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_display_tags (self, display);
+#line 1104 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 1104 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1104 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ configuration_facade_set_display_photo_tags (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), display);
+#line 1104 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 8596 "MediaPage.c"
+}
+
+
+void media_page_on_display_tags (MediaPage* self, GtkAction* action) {
+#line 1099 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1099 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_display_tags (self, action);
+#line 8605 "MediaPage.c"
+}
+
+
+static void media_page_real_get_config_photos_sort (MediaPage* self, gboolean* sort_order, gint* sort_by) {
+#line 1107 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_page_get_config_photos_sort'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 1107 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 8614 "MediaPage.c"
+}
+
+
+void media_page_get_config_photos_sort (MediaPage* self, gboolean* sort_order, gint* sort_by) {
+#line 1107 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1107 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->get_config_photos_sort (self, sort_order, sort_by);
+#line 8623 "MediaPage.c"
+}
+
+
+static void media_page_real_set_config_photos_sort (MediaPage* self, gboolean sort_order, gint sort_by) {
+#line 1109 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_critical ("Type `%s' does not implement abstract method `media_page_set_config_photos_sort'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 1109 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 8632 "MediaPage.c"
+}
+
+
+void media_page_set_config_photos_sort (MediaPage* self, gboolean sort_order, gint sort_by) {
+#line 1109 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1109 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->set_config_photos_sort (self, sort_order, sort_by);
+#line 8641 "MediaPage.c"
+}
+
+
+static void media_page_real_on_sort_changed (MediaPage* self) {
+ gint sort_by = 0;
+ gint _tmp0_ = 0;
+ gboolean sort_order = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 1112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_get_menu_sort_by (self);
+#line 1112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_by = _tmp0_;
+#line 1113 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = media_page_get_menu_sort_order (self);
+#line 1113 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_order = _tmp1_;
+#line 1115 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_view_comparator (self, sort_by, sort_order);
+#line 1116 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_config_photos_sort (self, sort_order, sort_by);
+#line 8662 "MediaPage.c"
+}
+
+
+void media_page_on_sort_changed (MediaPage* self) {
+#line 1111 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1111 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->on_sort_changed (self);
+#line 8671 "MediaPage.c"
+}
+
+
+void media_page_on_raw_developer_shotwell (MediaPage* self, GtkAction* action) {
+#line 1119 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1119 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 1120 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_developer_changed (self, RAW_DEVELOPER_SHOTWELL);
+#line 8682 "MediaPage.c"
+}
+
+
+void media_page_on_raw_developer_camera (MediaPage* self, GtkAction* action) {
+#line 1123 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1123 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 1124 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_developer_changed (self, RAW_DEVELOPER_CAMERA);
+#line 8693 "MediaPage.c"
+}
+
+
+static void media_page_real_developer_changed (MediaPage* self, RawDeveloper rd) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean need_warn = FALSE;
+ GeeArrayList* to_set = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp32_ = FALSE;
+#line 1128 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1128 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1128 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 1128 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 1128 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1128 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 1129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 8721 "MediaPage.c"
+ }
+#line 1134 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ need_warn = FALSE;
+#line 1137 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1137 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ to_set = _tmp4_;
+#line 8729 "MediaPage.c"
+ {
+ GeeList* _view_list = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _view_size = 0;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _view_index = 0;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = view_collection_get_selected (_tmp6_);
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_list = _tmp8_;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _view_list;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_size = _tmp11_;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = -1;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ while (TRUE) {
+#line 8765 "MediaPage.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+ Photo* p = NULL;
+ DataView* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ Photo* _tmp22_ = NULL;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _view_index;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _view_index = _tmp12_ + 1;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = _view_index;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _view_size;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 8791 "MediaPage.c"
+ }
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = _view_list;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = _view_index;
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = gee_list_get (_tmp15_, _tmp16_);
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ view = (DataView*) _tmp17_;
+#line 1139 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = view;
+#line 1139 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = data_view_get_source (_tmp18_);
+#line 1139 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_PHOTO) ? ((Photo*) _tmp19_) : NULL;
+#line 1139 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp20_ == NULL) {
+#line 1139 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 8811 "MediaPage.c"
+ }
+#line 1139 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ p = _tmp20_;
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = p;
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp22_ != NULL) {
+#line 8819 "MediaPage.c"
+ RawDeveloper _tmp23_ = 0;
+ Photo* _tmp24_ = NULL;
+ RawDeveloper _tmp25_ = 0;
+ gboolean _tmp26_ = FALSE;
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = rd;
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = p;
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = photo_get_raw_developer (_tmp24_);
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = raw_developer_is_equivalent (_tmp23_, _tmp25_);
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = !_tmp26_;
+#line 8834 "MediaPage.c"
+ } else {
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = FALSE;
+#line 8838 "MediaPage.c"
+ }
+#line 1140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp21_) {
+#line 8842 "MediaPage.c"
+ GeeArrayList* _tmp27_ = NULL;
+ DataView* _tmp28_ = NULL;
+ Photo* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+#line 1141 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = to_set;
+#line 1141 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp28_ = view;
+#line 1141 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp28_);
+#line 1143 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp29_ = p;
+#line 1143 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp30_ = photo_has_transformations (_tmp29_);
+#line 1143 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp30_) {
+#line 1144 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ need_warn = TRUE;
+#line 8861 "MediaPage.c"
+ }
+ }
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (p);
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (view);
+#line 8868 "MediaPage.c"
+ }
+#line 1138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_view_list);
+#line 8872 "MediaPage.c"
+ }
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp32_ = need_warn;
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (!_tmp32_) {
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = TRUE;
+#line 8880 "MediaPage.c"
+ } else {
+ GeeArrayList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gboolean _tmp36_ = FALSE;
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp33_ = to_set;
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp34_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp35_ = _tmp34_;
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp36_ = dialogs_confirm_warn_developer_changed (_tmp35_);
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp31_ = _tmp36_;
+#line 8896 "MediaPage.c"
+ }
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp31_) {
+#line 8900 "MediaPage.c"
+ SetRawDeveloperCommand* command = NULL;
+ GeeArrayList* _tmp37_ = NULL;
+ RawDeveloper _tmp38_ = 0;
+ SetRawDeveloperCommand* _tmp39_ = NULL;
+ CommandManager* _tmp40_ = NULL;
+ CommandManager* _tmp41_ = NULL;
+ SetRawDeveloperCommand* _tmp42_ = NULL;
+#line 1150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp37_ = to_set;
+#line 1150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp38_ = rd;
+#line 1150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp39_ = set_raw_developer_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_ITERABLE, GeeIterable), _tmp38_);
+#line 1150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command = _tmp39_;
+#line 1151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp40_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp41_ = _tmp40_;
+#line 1151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp42_ = command;
+#line 1151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ command_manager_execute (_tmp41_, G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_COMMAND, Command));
+#line 1151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _command_manager_unref0 (_tmp41_);
+#line 1153 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_update_development_menu_item_sensitivity (self);
+#line 1149 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (command);
+#line 8930 "MediaPage.c"
+ }
+#line 1127 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (to_set);
+#line 8934 "MediaPage.c"
+}
+
+
+void media_page_developer_changed (MediaPage* self, RawDeveloper rd) {
+#line 1127 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1127 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ MEDIA_PAGE_GET_CLASS (self)->developer_changed (self, rd);
+#line 8943 "MediaPage.c"
+}
+
+
+static void media_page_real_set_display_titles (CheckerboardPage* base, gboolean display) {
+ MediaPage * self;
+ gboolean _tmp0_ = FALSE;
+ GtkToggleAction* action = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkToggleAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+#line 1157 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 1158 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = display;
+#line 1158 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ CHECKERBOARD_PAGE_CLASS (media_page_parent_class)->set_display_titles (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp0_);
+#line 1160 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ViewTitle");
+#line 1160 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp1_) : NULL;
+#line 1160 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp2_ == NULL) {
+#line 1160 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 8968 "MediaPage.c"
+ }
+#line 1160 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ action = _tmp2_;
+#line 1161 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = action;
+#line 1161 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_ != NULL) {
+#line 8976 "MediaPage.c"
+ GtkToggleAction* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = action;
+#line 1162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = display;
+#line 1162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_toggle_action_set_active (_tmp4_, _tmp5_);
+#line 8985 "MediaPage.c"
+ }
+#line 1157 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (action);
+#line 8989 "MediaPage.c"
+}
+
+
+static void media_page_real_set_display_comments (CheckerboardPage* base, gboolean display) {
+ MediaPage * self;
+ gboolean _tmp0_ = FALSE;
+ GtkToggleAction* action = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkToggleAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+#line 1165 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 1166 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = display;
+#line 1166 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ CHECKERBOARD_PAGE_CLASS (media_page_parent_class)->set_display_comments (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp0_);
+#line 1168 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ViewComment");
+#line 1168 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp1_) : NULL;
+#line 1168 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp2_ == NULL) {
+#line 1168 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 9014 "MediaPage.c"
+ }
+#line 1168 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ action = _tmp2_;
+#line 1169 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = action;
+#line 1169 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_ != NULL) {
+#line 9022 "MediaPage.c"
+ GtkToggleAction* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1170 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = action;
+#line 1170 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = display;
+#line 1170 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_toggle_action_set_active (_tmp4_, _tmp5_);
+#line 9031 "MediaPage.c"
+ }
+#line 1165 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (action);
+#line 9035 "MediaPage.c"
+}
+
+
+static GtkRadioAction* media_page_sort_by_title_action (MediaPage* self) {
+ GtkRadioAction* result = NULL;
+ GtkRadioAction* action = NULL;
+ GtkAction* _tmp0_ = NULL;
+#line 1173 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), NULL);
+#line 1174 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SortByTitle");
+#line 1174 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ action = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_radio_action_get_type (), GtkRadioAction);
+#line 1175 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_assert (action != NULL, "action != null");
+#line 1176 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = action;
+#line 1176 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9055 "MediaPage.c"
+}
+
+
+static GtkRadioAction* media_page_sort_ascending_action (MediaPage* self) {
+ GtkRadioAction* result = NULL;
+ GtkRadioAction* action = NULL;
+ GtkAction* _tmp0_ = NULL;
+#line 1179 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), NULL);
+#line 1180 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SortAscending");
+#line 1180 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ action = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_radio_action_get_type (), GtkRadioAction);
+#line 1181 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_assert (action != NULL, "action != null");
+#line 1182 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = action;
+#line 1182 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9075 "MediaPage.c"
+}
+
+
+gint media_page_get_menu_sort_by (MediaPage* self) {
+ gint result = 0;
+ GtkRadioAction* _tmp0_ = NULL;
+ GtkRadioAction* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 1185 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), 0);
+#line 1187 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_sort_by_title_action (self);
+#line 1187 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1187 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = gtk_radio_action_get_current_value (_tmp1_);
+#line 1187 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1187 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1187 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp3_;
+#line 1187 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9101 "MediaPage.c"
+}
+
+
+void media_page_set_menu_sort_by (MediaPage* self, gint val) {
+ GtkRadioAction* _tmp0_ = NULL;
+ GtkRadioAction* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1190 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1191 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_sort_by_title_action (self);
+#line 1191 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1191 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = val;
+#line 1191 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_radio_action_set_current_value (_tmp1_, _tmp2_);
+#line 1191 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 9121 "MediaPage.c"
+}
+
+
+gboolean media_page_get_menu_sort_order (MediaPage* self) {
+ gboolean result = FALSE;
+ GtkRadioAction* _tmp0_ = NULL;
+ GtkRadioAction* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 1194 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), FALSE);
+#line 1196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_sort_ascending_action (self);
+#line 1196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = gtk_radio_action_get_current_value (_tmp1_);
+#line 1196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ == MEDIA_PAGE_SORT_ORDER_ASCENDING;
+#line 1196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp3_;
+#line 1196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9147 "MediaPage.c"
+}
+
+
+void media_page_set_menu_sort_order (MediaPage* self, gboolean ascending) {
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ GtkRadioAction* _tmp2_ = NULL;
+ GtkRadioAction* _tmp3_ = NULL;
+#line 1199 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1201 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = ascending;
+#line 1201 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp1_) {
+#line 1201 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = MEDIA_PAGE_SORT_ORDER_ASCENDING;
+#line 9164 "MediaPage.c"
+ } else {
+#line 1201 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = MEDIA_PAGE_SORT_ORDER_DESCENDING;
+#line 9168 "MediaPage.c"
+ }
+#line 1200 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_sort_ascending_action (self);
+#line 1200 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1200 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_radio_action_set_current_value (_tmp3_, _tmp0_);
+#line 1200 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 9178 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_title_ascending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_title_ascending_comparator (a, b);
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9187 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_title_descending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_title_descending_comparator (a, b);
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9196 "MediaPage.c"
+}
+
+
+static gboolean _thumbnail_title_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = thumbnail_title_comparator_predicate (object, alteration);
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9205 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_exposure_time_ascending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_exposure_time_ascending_comparator (a, b);
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9214 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_exposure_time_desending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_exposure_time_desending_comparator (a, b);
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9223 "MediaPage.c"
+}
+
+
+static gboolean _thumbnail_exposure_time_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = thumbnail_exposure_time_comparator_predicate (object, alteration);
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9232 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_rating_ascending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_rating_ascending_comparator (a, b);
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9241 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_rating_descending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_rating_descending_comparator (a, b);
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9250 "MediaPage.c"
+}
+
+
+static gboolean _thumbnail_rating_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = thumbnail_rating_comparator_predicate (object, alteration);
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9259 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_filename_ascending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_filename_ascending_comparator (a, b);
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9268 "MediaPage.c"
+}
+
+
+static gint64 _thumbnail_filename_descending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = thumbnail_filename_descending_comparator (a, b);
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9277 "MediaPage.c"
+}
+
+
+static gboolean _thumbnail_filename_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = thumbnail_filename_comparator_predicate (object, alteration);
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9286 "MediaPage.c"
+}
+
+
+static void media_page_set_view_comparator (MediaPage* self, gint sort_by, gboolean ascending) {
+ Comparator comparator = NULL;
+ void* comparator_target = NULL;
+ GDestroyNotify comparator_target_destroy_notify = NULL;
+ ComparatorPredicate predicate = NULL;
+ void* predicate_target = NULL;
+ GDestroyNotify predicate_target_destroy_notify = NULL;
+ gint _tmp0_ = 0;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ Comparator _tmp10_ = NULL;
+ void* _tmp10__target = NULL;
+ ComparatorPredicate _tmp11_ = NULL;
+ void* _tmp11__target = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1208 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = sort_by;
+#line 1208 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (_tmp0_) {
+#line 1208 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_TITLE:
+#line 9312 "MediaPage.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 1210 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = ascending;
+#line 1210 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp1_) {
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_title_ascending_comparator_comparator;
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1211 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9333 "MediaPage.c"
+ } else {
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_title_descending_comparator_comparator;
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1212 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9349 "MediaPage.c"
+ }
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (predicate_target_destroy_notify == NULL) ? NULL : (predicate_target_destroy_notify (predicate_target), NULL);
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = NULL;
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = _thumbnail_title_comparator_predicate_comparator_predicate;
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1214 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 9367 "MediaPage.c"
+ }
+#line 1208 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_EXPOSURE_DATE:
+#line 9371 "MediaPage.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 1217 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = ascending;
+#line 1217 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp2_) {
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_exposure_time_ascending_comparator_comparator;
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1218 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9392 "MediaPage.c"
+ } else {
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_exposure_time_desending_comparator_comparator;
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9408 "MediaPage.c"
+ }
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (predicate_target_destroy_notify == NULL) ? NULL : (predicate_target_destroy_notify (predicate_target), NULL);
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = NULL;
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = _thumbnail_exposure_time_comparator_predicate_comparator_predicate;
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1220 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1221 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 9426 "MediaPage.c"
+ }
+#line 1208 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_RATING:
+#line 9430 "MediaPage.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 1224 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = ascending;
+#line 1224 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_rating_ascending_comparator_comparator;
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9451 "MediaPage.c"
+ } else {
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_rating_descending_comparator_comparator;
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9467 "MediaPage.c"
+ }
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (predicate_target_destroy_notify == NULL) ? NULL : (predicate_target_destroy_notify (predicate_target), NULL);
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = NULL;
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = _thumbnail_rating_comparator_predicate_comparator_predicate;
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1227 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1228 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 9485 "MediaPage.c"
+ }
+#line 1208 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_FILENAME:
+#line 9489 "MediaPage.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 1231 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = ascending;
+#line 1231 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp4_) {
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_filename_ascending_comparator_comparator;
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9510 "MediaPage.c"
+ } else {
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_filename_descending_comparator_comparator;
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1233 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9526 "MediaPage.c"
+ }
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (predicate_target_destroy_notify == NULL) ? NULL : (predicate_target_destroy_notify (predicate_target), NULL);
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = NULL;
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = _thumbnail_filename_comparator_predicate_comparator_predicate;
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1234 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1235 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 9544 "MediaPage.c"
+ }
+ default:
+ {
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1238 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = media_page_get_menu_sort_by (self);
+#line 1238 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = g_strdup_printf ("%i", _tmp5_);
+#line 1238 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1238 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_debug ("MediaPage.vala:1238: Unknown sort criteria: %s", _tmp7_);
+#line 1238 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_free0 (_tmp7_);
+#line 1239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = _thumbnail_title_descending_comparator_comparator;
+#line 1239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 1240 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (predicate_target_destroy_notify == NULL) ? NULL : (predicate_target_destroy_notify (predicate_target), NULL);
+#line 1240 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = NULL;
+#line 1240 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1240 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1240 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = _thumbnail_title_comparator_predicate_comparator_predicate;
+#line 1240 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1240 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1241 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ break;
+#line 9591 "MediaPage.c"
+ }
+ }
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = comparator;
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10__target = comparator_target;
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = predicate;
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11__target = predicate_target;
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection), _tmp10_, _tmp10__target, _tmp11_, _tmp11__target);
+#line 1244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp9_);
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (predicate_target_destroy_notify == NULL) ? NULL : (predicate_target_destroy_notify (predicate_target), NULL);
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ predicate_target_destroy_notify = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ comparator_target_destroy_notify = NULL;
+#line 9626 "MediaPage.c"
+}
+
+
+gchar* media_page_get_sortby_path (MediaPage* self, gint sort_by) {
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+#line 1247 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), NULL);
+#line 1248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = sort_by;
+#line 1248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ switch (_tmp0_) {
+#line 1248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_TITLE:
+#line 9641 "MediaPage.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 1250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = g_strdup ("/MenuBar/ViewMenu/SortPhotos/SortByTitle");
+#line 1250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp1_;
+#line 1250 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9650 "MediaPage.c"
+ }
+#line 1248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_EXPOSURE_DATE:
+#line 9654 "MediaPage.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 1253 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = g_strdup ("/MenuBar/ViewMenu/SortPhotos/SortByExposureDate");
+#line 1253 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp2_;
+#line 1253 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9663 "MediaPage.c"
+ }
+#line 1248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_RATING:
+#line 9667 "MediaPage.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 1256 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = g_strdup ("/MenuBar/ViewMenu/SortPhotos/SortByRating");
+#line 1256 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp3_;
+#line 1256 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9676 "MediaPage.c"
+ }
+#line 1248 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ case MEDIA_PAGE_SORT_BY_FILENAME:
+#line 9680 "MediaPage.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 1259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = g_strdup ("/MenuBar/ViewMenu/SortPhotos/SortByFilename");
+#line 1259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp4_;
+#line 1259 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9689 "MediaPage.c"
+ }
+ default:
+ {
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+#line 1262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = sort_by;
+#line 1262 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_debug ("MediaPage.vala:1262: Unknown sort criteria: %d", _tmp5_);
+#line 1263 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = g_strdup ("/MenuBar/ViewMenu/SortPhotos/SortByTitle");
+#line 1263 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp6_;
+#line 1263 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9705 "MediaPage.c"
+ }
+ }
+}
+
+
+void media_page_sync_sort (MediaPage* self) {
+ gboolean sort_ascending = FALSE;
+ gint sort_by = 0;
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+#line 1267 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1284 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_get_config_photos_sort (self, &_tmp0_, &_tmp1_);
+#line 1284 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_ascending = _tmp0_;
+#line 1284 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ sort_by = _tmp1_;
+#line 1286 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_menu_sort_by (self, sort_by);
+#line 1287 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_menu_sort_order (self, sort_ascending);
+#line 1289 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_view_comparator (self, sort_by, sort_ascending);
+#line 9730 "MediaPage.c"
+}
+
+
+static void media_page_real_destroy (GtkWidget* base) {
+ MediaPage * self;
+#line 1292 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_PAGE, MediaPage);
+#line 1293 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_disconnect_slider (self);
+#line 1295 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ GTK_WIDGET_CLASS (media_page_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), gtk_widget_get_type (), GtkWidget));
+#line 9742 "MediaPage.c"
+}
+
+
+void media_page_increase_zoom_level (MediaPage* self) {
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+#line 1298 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1299 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->connected_slider;
+#line 1299 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ != NULL) {
+#line 9754 "MediaPage.c"
+ MediaPageZoomSliderAssembly* _tmp1_ = NULL;
+#line 1300 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = self->priv->connected_slider;
+#line 1300 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_zoom_slider_assembly_increase_step (_tmp1_);
+#line 9760 "MediaPage.c"
+ } else {
+ gint new_scale = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1302 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_get_thumb_size (self);
+#line 1302 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = media_page_compute_zoom_scale_increase (_tmp2_);
+#line 1302 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_scale = _tmp3_;
+#line 1303 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_save_persistent_thumbnail_scale (self);
+#line 1304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = new_scale;
+#line 1304 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_thumb_size (self, _tmp4_);
+#line 9778 "MediaPage.c"
+ }
+}
+
+
+void media_page_decrease_zoom_level (MediaPage* self) {
+ MediaPageZoomSliderAssembly* _tmp0_ = NULL;
+#line 1308 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->connected_slider;
+#line 1309 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ != NULL) {
+#line 9791 "MediaPage.c"
+ MediaPageZoomSliderAssembly* _tmp1_ = NULL;
+#line 1310 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = self->priv->connected_slider;
+#line 1310 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_zoom_slider_assembly_decrease_step (_tmp1_);
+#line 9797 "MediaPage.c"
+ } else {
+ gint new_scale = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1312 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_get_thumb_size (self);
+#line 1312 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = media_page_compute_zoom_scale_decrease (_tmp2_);
+#line 1312 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_scale = _tmp3_;
+#line 1313 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_save_persistent_thumbnail_scale (self);
+#line 1314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = new_scale;
+#line 1314 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_set_thumb_size (self, _tmp4_);
+#line 9815 "MediaPage.c"
+ }
+}
+
+
+static DataView* media_page_real_create_thumbnail (MediaPage* self, DataSource* source) {
+ DataView* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ Thumbnail* _tmp2_ = NULL;
+#line 1318 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 1319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = source;
+#line 1319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = media_page_get_thumb_size (self);
+#line 1319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = thumbnail_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), _tmp1_);
+#line 1319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_VIEW, DataView);
+#line 1319 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 9837 "MediaPage.c"
+}
+
+
+DataView* media_page_create_thumbnail (MediaPage* self, DataSource* source) {
+#line 1318 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), NULL);
+#line 1318 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return MEDIA_PAGE_GET_CLASS (self)->create_thumbnail (self, source);
+#line 9846 "MediaPage.c"
+}
+
+
+void media_page_set_thumb_size (MediaPage* self, gint new_scale) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ CheckerboardLayout* _tmp10_ = NULL;
+ CheckerboardLayout* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ GValue _tmp18_ = {0};
+ ViewCollection* _tmp19_ = NULL;
+ ViewCollection* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 1324 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (IS_MEDIA_PAGE (self));
+#line 1325 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = media_page_get_thumb_size (self);
+#line 1325 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = new_scale;
+#line 1325 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp1_ == _tmp2_) {
+#line 1325 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = TRUE;
+#line 9887 "MediaPage.c"
+ } else {
+ gboolean _tmp3_ = FALSE;
+#line 1325 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1325 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = !_tmp3_;
+#line 9894 "MediaPage.c"
+ }
+#line 1325 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_) {
+#line 1326 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 9900 "MediaPage.c"
+ }
+#line 1328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = new_scale;
+#line 1328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = thumbnail_get_MIN_SCALE ();
+#line 1328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 1328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = thumbnail_get_MAX_SCALE ();
+#line 1328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = CLAMP (_tmp4_, _tmp6_, _tmp8_);
+#line 1328 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_scale = _tmp9_;
+#line 1329 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = checkerboard_page_get_checkerboard_layout (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 1329 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = _tmp10_;
+#line 1329 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = new_scale;
+#line 1329 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_layout_set_scale (_tmp11_, _tmp12_);
+#line 1329 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1332 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1332 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1332 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1332 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = _tmp15_;
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = new_scale;
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_init (&_tmp18_, G_TYPE_INT);
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_value_set_int (&_tmp18_, _tmp17_);
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_COLLECTION, DataCollection), THUMBNAIL_PROP_SIZE, &_tmp18_, NULL, NULL);
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_IS_VALUE (&_tmp18_) ? (g_value_unset (&_tmp18_), NULL) : NULL;
+#line 1333 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp16_);
+#line 1334 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1334 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = _tmp19_;
+#line 1334 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1334 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _data_collection_unref0 (_tmp20_);
+#line 1336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = new_scale;
+#line 1336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = thumbnail_get_MAX_SCALE ();
+#line 1336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = _tmp22_;
+#line 1336 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp21_ < _tmp23_);
+#line 1337 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = new_scale;
+#line 1337 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = thumbnail_get_MIN_SCALE ();
+#line 1337 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = _tmp25_;
+#line 1337 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp24_ > _tmp26_);
+#line 9974 "MediaPage.c"
+}
+
+
+gint media_page_get_thumb_size (MediaPage* self) {
+ gint result = 0;
+ CheckerboardLayout* _tmp0_ = NULL;
+ CheckerboardLayout* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ CheckerboardLayout* _tmp9_ = NULL;
+ CheckerboardLayout* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 1340 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (IS_MEDIA_PAGE (self), 0);
+#line 1341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = checkerboard_page_get_checkerboard_layout (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 1341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = checkerboard_layout_get_scale (_tmp1_);
+#line 1341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = _tmp2_ <= 0;
+#line 1341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1341 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp3_) {
+#line 10002 "MediaPage.c"
+ CheckerboardLayout* _tmp4_ = NULL;
+ CheckerboardLayout* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = checkerboard_page_get_checkerboard_layout (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = configuration_facade_get_photo_thumbnail_scale (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ checkerboard_layout_set_scale (_tmp5_, _tmp8_);
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1342 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 10024 "MediaPage.c"
+ }
+#line 1344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = checkerboard_page_get_checkerboard_layout (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 1344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = _tmp9_;
+#line 1344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = checkerboard_layout_get_scale (_tmp10_);
+#line 1344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp12_;
+#line 1344 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10040 "MediaPage.c"
+}
+
+
+static gboolean _media_page_zoom_slider_assembly_on_zoom_out_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = media_page_zoom_slider_assembly_on_zoom_out_pressed ((MediaPageZoomSliderAssembly*) self, event);
+#line 144 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10049 "MediaPage.c"
+}
+
+
+static void _media_page_zoom_slider_assembly_on_slider_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 155 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_zoom_slider_assembly_on_slider_changed ((MediaPageZoomSliderAssembly*) self);
+#line 10056 "MediaPage.c"
+}
+
+
+static gboolean _media_page_zoom_slider_assembly_on_zoom_in_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = media_page_zoom_slider_assembly_on_zoom_in_pressed ((MediaPageZoomSliderAssembly*) self, event);
+#line 168 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10065 "MediaPage.c"
+}
+
+
+MediaPageZoomSliderAssembly* media_page_zoom_slider_assembly_construct (GType object_type) {
+ MediaPageZoomSliderAssembly * self = NULL;
+ GtkBox* zoom_group = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkImage* zoom_out = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GtkImage* _tmp3_ = NULL;
+ GtkImage* _tmp4_ = NULL;
+ GtkEventBox* zoom_out_box = NULL;
+ GtkEventBox* _tmp5_ = NULL;
+ gint persisted_scale = 0;
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gdouble _tmp10_ = 0.0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gdouble _tmp13_ = 0.0;
+ GtkAdjustment* _tmp14_ = NULL;
+ GtkAdjustment* _tmp15_ = NULL;
+ GtkScale* _tmp16_ = NULL;
+ GtkScale* _tmp17_ = NULL;
+ GtkScale* _tmp18_ = NULL;
+ GtkScale* _tmp19_ = NULL;
+ GtkScale* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GtkScale* _tmp22_ = NULL;
+ GtkImage* zoom_in = NULL;
+ GdkPixbuf* _tmp23_ = NULL;
+ GdkPixbuf* _tmp24_ = NULL;
+ GtkImage* _tmp25_ = NULL;
+ GtkImage* _tmp26_ = NULL;
+ GtkEventBox* zoom_in_box = NULL;
+ GtkEventBox* _tmp27_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = (MediaPageZoomSliderAssembly*) g_object_new (object_type, NULL);
+#line 136 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+#line 136 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp0_);
+#line 136 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ zoom_group = _tmp0_;
+#line 138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = resources_load_icon (RESOURCES_ICON_ZOOM_OUT, RESOURCES_ICON_ZOOM_SCALE);
+#line 138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp2_);
+#line 138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp3_);
+#line 138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_;
+#line 138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 138 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ zoom_out = _tmp4_;
+#line 140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = (GtkEventBox*) gtk_event_box_new ();
+#line 140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp5_);
+#line 140 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ zoom_out_box = _tmp5_;
+#line 141 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_event_box_set_above_child (zoom_out_box, TRUE);
+#line 142 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_event_box_set_visible_window (zoom_out_box, FALSE);
+#line 143 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (zoom_out_box, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (zoom_out, gtk_widget_get_type (), GtkWidget));
+#line 144 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (zoom_out_box, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _media_page_zoom_slider_assembly_on_zoom_out_pressed_gtk_widget_button_press_event, self, 0);
+#line 146 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_box_pack_start (zoom_group, G_TYPE_CHECK_INSTANCE_CAST (zoom_out_box, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = _tmp6_;
+#line 150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = configuration_facade_get_photo_thumbnail_scale (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp9_ = _tmp8_;
+#line 150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 150 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ persisted_scale = _tmp9_;
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp10_ = media_page_zoom_slider_assembly_scale_to_slider (persisted_scale);
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp11_ = thumbnail_get_MAX_SCALE ();
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp12_ = _tmp11_;
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp13_ = media_page_zoom_slider_assembly_scale_to_slider (_tmp12_);
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp14_ = gtk_adjustment_new (_tmp10_, (gdouble) 0, _tmp13_, (gdouble) 1, (gdouble) 10, (gdouble) 0);
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp14_);
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (self->priv->adjustment);
+#line 151 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->adjustment = _tmp14_;
+#line 154 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp15_ = self->priv->adjustment;
+#line 154 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp16_ = (GtkScale*) gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, _tmp15_);
+#line 154 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp16_);
+#line 154 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (self->priv->slider);
+#line 154 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->slider = _tmp16_;
+#line 155 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp17_ = self->priv->slider;
+#line 155 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _media_page_zoom_slider_assembly_on_slider_changed_gtk_range_value_changed, self, 0);
+#line 156 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp18_ = self->priv->slider;
+#line 156 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_scale_set_draw_value (_tmp18_, FALSE);
+#line 157 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp19_ = self->priv->slider;
+#line 157 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), 200, -1);
+#line 158 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp20_ = self->priv->slider;
+#line 158 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp21_ = _ ("Adjust the size of the thumbnails");
+#line 158 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget), _tmp21_);
+#line 160 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp22_ = self->priv->slider;
+#line 160 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_box_pack_start (zoom_group, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp23_ = resources_load_icon (RESOURCES_ICON_ZOOM_IN, RESOURCES_ICON_ZOOM_SCALE);
+#line 162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp24_ = _tmp23_;
+#line 162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp25_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp24_);
+#line 162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp25_);
+#line 162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp26_ = _tmp25_;
+#line 162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (_tmp24_);
+#line 162 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ zoom_in = _tmp26_;
+#line 164 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp27_ = (GtkEventBox*) gtk_event_box_new ();
+#line 164 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_object_ref_sink (_tmp27_);
+#line 164 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ zoom_in_box = _tmp27_;
+#line 165 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_event_box_set_above_child (zoom_in_box, TRUE);
+#line 166 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_event_box_set_visible_window (zoom_in_box, FALSE);
+#line 167 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (zoom_in_box, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (zoom_in, gtk_widget_get_type (), GtkWidget));
+#line 168 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (zoom_in_box, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _media_page_zoom_slider_assembly_on_zoom_in_pressed_gtk_widget_button_press_event, self, 0);
+#line 170 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_box_pack_start (zoom_group, G_TYPE_CHECK_INSTANCE_CAST (zoom_in_box, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 172 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (zoom_group, gtk_widget_get_type (), GtkWidget));
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (zoom_in_box);
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (zoom_in);
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (zoom_out_box);
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (zoom_out);
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (zoom_group);
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return self;
+#line 10247 "MediaPage.c"
+}
+
+
+MediaPageZoomSliderAssembly* media_page_zoom_slider_assembly_new (void) {
+#line 135 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return media_page_zoom_slider_assembly_construct (MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY);
+#line 10254 "MediaPage.c"
+}
+
+
+gdouble media_page_zoom_slider_assembly_scale_to_slider (gint value) {
+ gdouble result = 0.0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 176 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = value;
+#line 176 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = thumbnail_get_MIN_SCALE ();
+#line 176 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 176 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_assert (_tmp0_ >= _tmp2_, "value >= Thumbnail.MIN_SCALE");
+#line 177 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = value;
+#line 177 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = thumbnail_get_MAX_SCALE ();
+#line 177 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = _tmp4_;
+#line 177 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_assert (_tmp3_ <= _tmp5_, "value <= Thumbnail.MAX_SCALE");
+#line 179 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = value;
+#line 179 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp7_ = thumbnail_get_MIN_SCALE ();
+#line 179 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp8_ = _tmp7_;
+#line 179 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = (gdouble) ((_tmp6_ - _tmp8_) / MEDIA_PAGE_SLIDER_STEPPING);
+#line 179 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10295 "MediaPage.c"
+}
+
+
+gint media_page_zoom_slider_assembly_slider_to_scale (gdouble value) {
+ gint result = 0;
+ gint res = 0;
+ gdouble _tmp0_ = 0.0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 183 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = value;
+#line 183 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = thumbnail_get_MIN_SCALE ();
+#line 183 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 183 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ res = ((gint) (_tmp0_ * MEDIA_PAGE_SLIDER_STEPPING)) + _tmp2_;
+#line 185 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = thumbnail_get_MIN_SCALE ();
+#line 185 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = _tmp3_;
+#line 185 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_assert (res >= _tmp4_, "res >= Thumbnail.MIN_SCALE");
+#line 186 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = thumbnail_get_MAX_SCALE ();
+#line 186 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = _tmp5_;
+#line 186 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _vala_assert (res <= _tmp6_, "res <= Thumbnail.MAX_SCALE");
+#line 188 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = res;
+#line 188 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10333 "MediaPage.c"
+}
+
+
+static gboolean media_page_zoom_slider_assembly_on_zoom_out_pressed (MediaPageZoomSliderAssembly* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 191 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self), FALSE);
+#line 191 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 192 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_zoom_slider_assembly_snap_to_min (self);
+#line 193 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = TRUE;
+#line 193 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10349 "MediaPage.c"
+}
+
+
+static gboolean media_page_zoom_slider_assembly_on_zoom_in_pressed (MediaPageZoomSliderAssembly* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self), FALSE);
+#line 196 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 197 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_zoom_slider_assembly_snap_to_max (self);
+#line 198 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = TRUE;
+#line 198 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10365 "MediaPage.c"
+}
+
+
+static void media_page_zoom_slider_assembly_on_slider_changed (MediaPageZoomSliderAssembly* self) {
+#line 201 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self));
+#line 202 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_emit_by_name (self, "zoom-changed");
+#line 10374 "MediaPage.c"
+}
+
+
+void media_page_zoom_slider_assembly_snap_to_min (MediaPageZoomSliderAssembly* self) {
+ GtkScale* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gdouble _tmp3_ = 0.0;
+#line 205 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self));
+#line 206 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->slider;
+#line 206 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = thumbnail_get_MIN_SCALE ();
+#line 206 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 206 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = media_page_zoom_slider_assembly_scale_to_slider (_tmp2_);
+#line 206 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), _tmp3_);
+#line 10395 "MediaPage.c"
+}
+
+
+void media_page_zoom_slider_assembly_snap_to_max (MediaPageZoomSliderAssembly* self) {
+ GtkScale* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gdouble _tmp3_ = 0.0;
+#line 209 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self));
+#line 210 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->slider;
+#line 210 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = thumbnail_get_MAX_SCALE ();
+#line 210 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = _tmp1_;
+#line 210 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = media_page_zoom_slider_assembly_scale_to_slider (_tmp2_);
+#line 210 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), _tmp3_);
+#line 10416 "MediaPage.c"
+}
+
+
+void media_page_zoom_slider_assembly_increase_step (MediaPageZoomSliderAssembly* self) {
+ gint new_scale = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GtkScale* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gdouble _tmp6_ = 0.0;
+#line 213 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self));
+#line 214 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_zoom_slider_assembly_get_scale (self);
+#line 214 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = media_page_compute_zoom_scale_increase (_tmp0_);
+#line 214 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_scale = _tmp1_;
+#line 216 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_zoom_slider_assembly_get_scale (self);
+#line 216 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = new_scale;
+#line 216 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp2_ == _tmp3_) {
+#line 217 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 10445 "MediaPage.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = self->priv->slider;
+#line 219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = new_scale;
+#line 219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = media_page_zoom_slider_assembly_scale_to_slider (_tmp5_);
+#line 219 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_range_get_type (), GtkRange), _tmp6_);
+#line 10455 "MediaPage.c"
+}
+
+
+void media_page_zoom_slider_assembly_decrease_step (MediaPageZoomSliderAssembly* self) {
+ gint new_scale = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GtkScale* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gdouble _tmp6_ = 0.0;
+#line 222 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self));
+#line 223 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_zoom_slider_assembly_get_scale (self);
+#line 223 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = media_page_compute_zoom_scale_decrease (_tmp0_);
+#line 223 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ new_scale = _tmp1_;
+#line 225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_zoom_slider_assembly_get_scale (self);
+#line 225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = new_scale;
+#line 225 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp2_ == _tmp3_) {
+#line 226 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 10484 "MediaPage.c"
+ }
+#line 228 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = self->priv->slider;
+#line 228 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp5_ = new_scale;
+#line 228 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp6_ = media_page_zoom_slider_assembly_scale_to_slider (_tmp5_);
+#line 228 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_range_get_type (), GtkRange), _tmp6_);
+#line 10494 "MediaPage.c"
+}
+
+
+gint media_page_zoom_slider_assembly_get_scale (MediaPageZoomSliderAssembly* self) {
+ gint result = 0;
+ GtkScale* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gint _tmp2_ = 0;
+#line 231 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_val_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self), 0);
+#line 232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = self->priv->slider;
+#line 232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange));
+#line 232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = media_page_zoom_slider_assembly_slider_to_scale (_tmp1_);
+#line 232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ result = _tmp2_;
+#line 232 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return result;
+#line 10515 "MediaPage.c"
+}
+
+
+void media_page_zoom_slider_assembly_set_scale (MediaPageZoomSliderAssembly* self, gint scale) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GtkScale* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gdouble _tmp4_ = 0.0;
+#line 235 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_return_if_fail (MEDIA_PAGE_IS_ZOOM_SLIDER_ASSEMBLY (self));
+#line 236 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp0_ = media_page_zoom_slider_assembly_get_scale (self);
+#line 236 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp1_ = scale;
+#line 236 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 237 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ return;
+#line 10535 "MediaPage.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp2_ = self->priv->slider;
+#line 239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp3_ = scale;
+#line 239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _tmp4_ = media_page_zoom_slider_assembly_scale_to_slider (_tmp3_);
+#line 239 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_range_get_type (), GtkRange), _tmp4_);
+#line 10545 "MediaPage.c"
+}
+
+
+static void media_page_zoom_slider_assembly_class_init (MediaPageZoomSliderAssemblyClass * klass) {
+#line 129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_zoom_slider_assembly_parent_class = g_type_class_peek_parent (klass);
+#line 129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_type_class_add_private (klass, sizeof (MediaPageZoomSliderAssemblyPrivate));
+#line 129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = media_page_zoom_slider_assembly_finalize;
+#line 129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_signal_new ("zoom_changed", MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 10558 "MediaPage.c"
+}
+
+
+static void media_page_zoom_slider_assembly_instance_init (MediaPageZoomSliderAssembly * self) {
+#line 129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv = MEDIA_PAGE_ZOOM_SLIDER_ASSEMBLY_GET_PRIVATE (self);
+#line 10565 "MediaPage.c"
+}
+
+
+static void media_page_zoom_slider_assembly_finalize (GObject* obj) {
+ MediaPageZoomSliderAssembly * self;
+#line 129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, MEDIA_PAGE_TYPE_ZOOM_SLIDER_ASSEMBLY, MediaPageZoomSliderAssembly);
+#line 130 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (self->priv->slider);
+#line 131 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (self->priv->adjustment);
+#line 129 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_OBJECT_CLASS (media_page_zoom_slider_assembly_parent_class)->finalize (obj);
+#line 10579 "MediaPage.c"
+}
+
+
+GType media_page_zoom_slider_assembly_get_type (void) {
+ static volatile gsize media_page_zoom_slider_assembly_type_id__volatile = 0;
+ if (g_once_init_enter (&media_page_zoom_slider_assembly_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaPageZoomSliderAssemblyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_page_zoom_slider_assembly_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaPageZoomSliderAssembly), 0, (GInstanceInitFunc) media_page_zoom_slider_assembly_instance_init, NULL };
+ GType media_page_zoom_slider_assembly_type_id;
+ media_page_zoom_slider_assembly_type_id = g_type_register_static (gtk_tool_item_get_type (), "MediaPageZoomSliderAssembly", &g_define_type_info, 0);
+ g_once_init_leave (&media_page_zoom_slider_assembly_type_id__volatile, media_page_zoom_slider_assembly_type_id);
+ }
+ return media_page_zoom_slider_assembly_type_id__volatile;
+}
+
+
+static void media_page_class_init (MediaPageClass * klass) {
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ media_page_parent_class = g_type_class_peek_parent (klass);
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ g_type_class_add_private (klass, sizeof (MediaPagePrivate));
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = media_page_real_init_collect_ui_filenames;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = media_page_real_init_collect_action_entries;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->init_collect_toggle_action_entries = media_page_real_init_collect_toggle_action_entries;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->register_radio_actions = media_page_real_register_radio_actions;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->update_actions = media_page_real_update_actions;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((CheckerboardPageClass *) klass)->get_view_tracker = media_page_real_get_view_tracker;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->on_mousewheel_up = media_page_real_on_mousewheel_up;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->on_mousewheel_down = media_page_real_on_mousewheel_down;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->on_app_key_pressed = media_page_real_on_app_key_pressed;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->switched_to = media_page_real_switched_to;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((PageClass *) klass)->switching_from = media_page_real_switching_from;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_zoom_changed = media_page_real_on_zoom_changed;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_export = media_page_real_on_export;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_increase_size = media_page_real_on_increase_size;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_decrease_size = media_page_real_on_decrease_size;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_increase_rating = media_page_real_on_increase_rating;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_decrease_rating = media_page_real_on_decrease_rating;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_set_rating = media_page_real_on_set_rating;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_rate_rejected = media_page_real_on_rate_rejected;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_rate_unrated = media_page_real_on_rate_unrated;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_rate_one = media_page_real_on_rate_one;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_rate_two = media_page_real_on_rate_two;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_rate_three = media_page_real_on_rate_three;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_rate_four = media_page_real_on_rate_four;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_rate_five = media_page_real_on_rate_five;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_move_to_trash = media_page_real_on_move_to_trash;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_edit_title = media_page_real_on_edit_title;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_edit_comment = media_page_real_on_edit_comment;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_display_titles = media_page_real_on_display_titles;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_display_comments = media_page_real_on_display_comments;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_display_ratings = media_page_real_on_display_ratings;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_display_tags = media_page_real_on_display_tags;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = media_page_real_get_config_photos_sort;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = media_page_real_set_config_photos_sort;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->on_sort_changed = media_page_real_on_sort_changed;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->developer_changed = media_page_real_developer_changed;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((CheckerboardPageClass *) klass)->set_display_titles = media_page_real_set_display_titles;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((CheckerboardPageClass *) klass)->set_display_comments = media_page_real_set_display_comments;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((GtkWidgetClass *) klass)->destroy = media_page_real_destroy;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ ((MediaPageClass *) klass)->create_thumbnail = media_page_real_create_thumbnail;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = media_page_finalize;
+#line 10682 "MediaPage.c"
+}
+
+
+static void media_page_instance_init (MediaPage * self) {
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv = MEDIA_PAGE_GET_PRIVATE (self);
+#line 243 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->connected_slider = NULL;
+#line 244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self->priv->dnd_handler = NULL;
+#line 10693 "MediaPage.c"
+}
+
+
+static void media_page_finalize (GObject* obj) {
+ MediaPage * self;
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_PAGE, MediaPage);
+#line 243 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _g_object_unref0 (self->priv->connected_slider);
+#line 244 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _drag_and_drop_handler_unref0 (self->priv->dnd_handler);
+#line 245 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 112 "/home/jens/Source/shotwell/src/MediaPage.vala"
+ G_OBJECT_CLASS (media_page_parent_class)->finalize (obj);
+#line 10709 "MediaPage.c"
+}
+
+
+GType media_page_get_type (void) {
+ static volatile gsize media_page_type_id__volatile = 0;
+ if (g_once_init_enter (&media_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaPage), 0, (GInstanceInitFunc) media_page_instance_init, NULL };
+ GType media_page_type_id;
+ media_page_type_id = g_type_register_static (TYPE_CHECKERBOARD_PAGE, "MediaPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&media_page_type_id__volatile, media_page_type_id);
+ }
+ return media_page_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/MediaViewTracker.c b/src/MediaViewTracker.c
new file mode 100644
index 0000000..3187c83
--- /dev/null
+++ b/src/MediaViewTracker.c
@@ -0,0 +1,1023 @@
+/* MediaViewTracker.c generated by valac 0.32.1, the Vala compiler
+ * generated from MediaViewTracker.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+typedef struct _CoreTrackerPrivate CoreTrackerPrivate;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+typedef struct _CoreViewTrackerPrivate CoreViewTrackerPrivate;
+
+#define TYPE_MEDIA_VIEW_TRACKER (media_view_tracker_get_type ())
+#define MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTracker))
+#define MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+#define IS_MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_VIEW_TRACKER))
+#define IS_MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_VIEW_TRACKER))
+#define MEDIA_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+
+typedef struct _MediaViewTracker MediaViewTracker;
+typedef struct _MediaViewTrackerClass MediaViewTrackerClass;
+typedef struct _MediaViewTrackerPrivate MediaViewTrackerPrivate;
+
+#define TYPE_MEDIA_ACCUMULATOR (media_accumulator_get_type ())
+#define MEDIA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_ACCUMULATOR, MediaAccumulator))
+#define MEDIA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_ACCUMULATOR, MediaAccumulatorClass))
+#define IS_MEDIA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_ACCUMULATOR))
+#define IS_MEDIA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_ACCUMULATOR))
+#define MEDIA_ACCUMULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_ACCUMULATOR, MediaAccumulatorClass))
+
+typedef struct _MediaAccumulator MediaAccumulator;
+typedef struct _MediaAccumulatorClass MediaAccumulatorClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define CORE_TYPE_TRACKER_ACCUMULATOR (core_tracker_accumulator_get_type ())
+#define CORE_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator))
+#define CORE_IS_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR))
+#define CORE_TRACKER_ACCUMULATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulatorIface))
+
+typedef struct _CoreTrackerAccumulator CoreTrackerAccumulator;
+typedef struct _CoreTrackerAccumulatorIface CoreTrackerAccumulatorIface;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+typedef struct _MediaAccumulatorPrivate MediaAccumulatorPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _CoreTracker {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CoreTrackerPrivate * priv;
+};
+
+struct _CoreTrackerClass {
+ GTypeClass parent_class;
+ void (*finalize) (CoreTracker *self);
+ void (*updated) (CoreTracker* self);
+};
+
+struct _CoreViewTracker {
+ CoreTracker parent_instance;
+ CoreViewTrackerPrivate * priv;
+};
+
+struct _CoreViewTrackerClass {
+ CoreTrackerClass parent_class;
+};
+
+struct _MediaViewTracker {
+ CoreViewTracker parent_instance;
+ MediaViewTrackerPrivate * priv;
+ MediaAccumulator* all;
+ MediaAccumulator* visible;
+ MediaAccumulator* selected;
+};
+
+struct _MediaViewTrackerClass {
+ CoreViewTrackerClass parent_class;
+};
+
+struct _CoreTrackerAccumulatorIface {
+ GTypeInterface parent_iface;
+ gboolean (*include) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*uninclude) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*altered) (CoreTrackerAccumulator* self, DataObject* object, Alteration* alteration);
+};
+
+struct _MediaAccumulator {
+ GObject parent_instance;
+ MediaAccumulatorPrivate * priv;
+ gint total;
+ gint photos;
+ gint videos;
+ gint raw;
+ gint flagged;
+};
+
+struct _MediaAccumulatorClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+
+static gpointer media_view_tracker_parent_class = NULL;
+static gpointer media_accumulator_parent_class = NULL;
+static CoreTrackerAccumulatorIface* media_accumulator_core_tracker_accumulator_parent_iface = NULL;
+
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_accumulator_get_type (void) G_GNUC_CONST;
+enum {
+ MEDIA_VIEW_TRACKER_DUMMY_PROPERTY
+};
+MediaAccumulator* media_accumulator_new (void);
+MediaAccumulator* media_accumulator_construct (GType object_type);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+MediaViewTracker* media_view_tracker_new (ViewCollection* collection);
+MediaViewTracker* media_view_tracker_construct (GType object_type, ViewCollection* collection);
+CoreViewTracker* core_view_tracker_new (ViewCollection* collection);
+CoreViewTracker* core_view_tracker_construct (GType object_type, ViewCollection* collection);
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType core_tracker_accumulator_get_type (void) G_GNUC_CONST;
+void core_view_tracker_start (CoreViewTracker* self, CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected);
+static void media_view_tracker_finalize (CoreTracker* obj);
+enum {
+ MEDIA_ACCUMULATOR_DUMMY_PROPERTY
+};
+static gboolean media_accumulator_real_include (CoreTrackerAccumulator* base, DataObject* object);
+GType data_source_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+DataSource* data_view_get_source (DataView* self);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+static gboolean media_accumulator_real_uninclude (CoreTrackerAccumulator* base, DataObject* object);
+gchar* data_object_to_string (DataObject* self);
+gchar* media_accumulator_to_string (MediaAccumulator* self);
+GType video_get_type (void) G_GNUC_CONST;
+static gboolean media_accumulator_real_altered (CoreTrackerAccumulator* base, DataObject* object, Alteration* alteration);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+static void media_accumulator_finalize (GObject* obj);
+
+
+MediaViewTracker* media_view_tracker_construct (GType object_type, ViewCollection* collection) {
+ MediaViewTracker* self = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ MediaAccumulator* _tmp1_ = NULL;
+ MediaAccumulator* _tmp2_ = NULL;
+ MediaAccumulator* _tmp3_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (collection), NULL);
+#line 13 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp0_ = collection;
+#line 13 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self = (MediaViewTracker*) core_view_tracker_construct (object_type, _tmp0_);
+#line 15 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp1_ = self->all;
+#line 15 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp2_ = self->visible;
+#line 15 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp3_ = self->selected;
+#line 15 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ core_view_tracker_start (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_VIEW_TRACKER, CoreViewTracker), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator));
+#line 12 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return self;
+#line 375 "MediaViewTracker.c"
+}
+
+
+MediaViewTracker* media_view_tracker_new (ViewCollection* collection) {
+#line 12 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return media_view_tracker_construct (TYPE_MEDIA_VIEW_TRACKER, collection);
+#line 382 "MediaViewTracker.c"
+}
+
+
+static void media_view_tracker_class_init (MediaViewTrackerClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ media_view_tracker_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ ((CoreTrackerClass *) klass)->finalize = media_view_tracker_finalize;
+#line 391 "MediaViewTracker.c"
+}
+
+
+static void media_view_tracker_instance_init (MediaViewTracker * self) {
+ MediaAccumulator* _tmp0_ = NULL;
+ MediaAccumulator* _tmp1_ = NULL;
+ MediaAccumulator* _tmp2_ = NULL;
+#line 8 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp0_ = media_accumulator_new ();
+#line 8 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->all = _tmp0_;
+#line 9 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp1_ = media_accumulator_new ();
+#line 9 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->visible = _tmp1_;
+#line 10 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp2_ = media_accumulator_new ();
+#line 10 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->selected = _tmp2_;
+#line 411 "MediaViewTracker.c"
+}
+
+
+static void media_view_tracker_finalize (CoreTracker* obj) {
+ MediaViewTracker * self;
+#line 7 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_VIEW_TRACKER, MediaViewTracker);
+#line 8 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (self->all);
+#line 9 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (self->visible);
+#line 10 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (self->selected);
+#line 7 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ CORE_TRACKER_CLASS (media_view_tracker_parent_class)->finalize (obj);
+#line 427 "MediaViewTracker.c"
+}
+
+
+GType media_view_tracker_get_type (void) {
+ static volatile gsize media_view_tracker_type_id__volatile = 0;
+ if (g_once_init_enter (&media_view_tracker_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaViewTrackerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_view_tracker_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaViewTracker), 0, (GInstanceInitFunc) media_view_tracker_instance_init, NULL };
+ GType media_view_tracker_type_id;
+ media_view_tracker_type_id = g_type_register_static (CORE_TYPE_VIEW_TRACKER, "MediaViewTracker", &g_define_type_info, 0);
+ g_once_init_leave (&media_view_tracker_type_id__volatile, media_view_tracker_type_id);
+ }
+ return media_view_tracker_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 31 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 446 "MediaViewTracker.c"
+}
+
+
+static gboolean media_accumulator_real_include (CoreTrackerAccumulator* base, DataObject* object) {
+ MediaAccumulator * self;
+ gboolean result = FALSE;
+ DataSource* source = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ Photo* photo = NULL;
+ DataSource* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Flaggable* flaggable = NULL;
+ DataSource* _tmp17_ = NULL;
+ Flaggable* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ Flaggable* _tmp20_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_ACCUMULATOR, MediaAccumulator);
+#line 26 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 27 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp0_ = object;
+#line 27 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp1_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 27 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ source = _tmp1_;
+#line 29 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp2_ = self->total;
+#line 29 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->total = _tmp2_ + 1;
+#line 31 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp3_ = source;
+#line 31 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_PHOTO) ? ((Photo*) _tmp3_) : NULL);
+#line 31 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ photo = _tmp4_;
+#line 32 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp5_ = photo;
+#line 32 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp5_ != NULL) {
+#line 490 "MediaViewTracker.c"
+ Photo* _tmp6_ = NULL;
+ PhotoFileFormat _tmp7_ = 0;
+ gboolean _tmp9_ = FALSE;
+ Photo* _tmp10_ = NULL;
+ PhotoFileFormat _tmp11_ = 0;
+#line 33 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp6_ = photo;
+#line 33 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp7_ = photo_get_master_file_format (_tmp6_);
+#line 33 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp7_ == PHOTO_FILE_FORMAT_RAW) {
+#line 502 "MediaViewTracker.c"
+ gint _tmp8_ = 0;
+#line 34 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp8_ = self->raw;
+#line 34 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->raw = _tmp8_ + 1;
+#line 508 "MediaViewTracker.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp10_ = photo;
+#line 37 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp11_ = photo_get_master_file_format (_tmp10_);
+#line 37 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp11_ != PHOTO_FILE_FORMAT_RAW) {
+#line 37 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp9_ = TRUE;
+#line 518 "MediaViewTracker.c"
+ } else {
+ Photo* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 38 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp12_ = photo;
+#line 38 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp13_ = photo_is_raw_developer_available (_tmp12_, RAW_DEVELOPER_CAMERA);
+#line 38 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp9_ = _tmp13_;
+#line 528 "MediaViewTracker.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp9_) {
+#line 532 "MediaViewTracker.c"
+ gint _tmp14_ = 0;
+#line 39 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp14_ = self->photos;
+#line 39 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->photos = _tmp14_ + 1;
+#line 538 "MediaViewTracker.c"
+ }
+ } else {
+ DataSource* _tmp15_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp15_ = source;
+#line 41 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, TYPE_VIDEO_SOURCE)) {
+#line 546 "MediaViewTracker.c"
+ gint _tmp16_ = 0;
+#line 42 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp16_ = self->videos;
+#line 42 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->videos = _tmp16_ + 1;
+#line 552 "MediaViewTracker.c"
+ }
+ }
+#line 45 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp17_ = source;
+#line 45 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp18_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp17_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp17_) : NULL);
+#line 45 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ flaggable = _tmp18_;
+#line 46 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp20_ = flaggable;
+#line 46 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp20_ != NULL) {
+#line 565 "MediaViewTracker.c"
+ Flaggable* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 46 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp21_ = flaggable;
+#line 46 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp22_ = flaggable_is_flagged (_tmp21_);
+#line 46 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp19_ = _tmp22_;
+#line 574 "MediaViewTracker.c"
+ } else {
+#line 46 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp19_ = FALSE;
+#line 578 "MediaViewTracker.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp19_) {
+#line 582 "MediaViewTracker.c"
+ gint _tmp23_ = 0;
+#line 47 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp23_ = self->flagged;
+#line 47 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->flagged = _tmp23_ + 1;
+#line 588 "MediaViewTracker.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ result = TRUE;
+#line 50 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (flaggable);
+#line 50 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (photo);
+#line 50 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (source);
+#line 50 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return result;
+#line 600 "MediaViewTracker.c"
+}
+
+
+static gboolean media_accumulator_real_uninclude (CoreTrackerAccumulator* base, DataObject* object) {
+ MediaAccumulator * self;
+ gboolean result = FALSE;
+ DataSource* source = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp12_ = 0;
+ Photo* photo = NULL;
+ DataSource* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ Flaggable* flaggable = NULL;
+ DataSource* _tmp30_ = NULL;
+ Flaggable* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ Flaggable* _tmp33_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_ACCUMULATOR, MediaAccumulator);
+#line 53 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 54 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp0_ = object;
+#line 54 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp1_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 54 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ source = _tmp1_;
+#line 56 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp2_ = self->total;
+#line 56 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp2_ < 1) {
+#line 635 "MediaViewTracker.c"
+ DataObject* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GType _tmp6_ = 0UL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp3_ = object;
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp4_ = data_object_to_string (_tmp3_);
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp5_ = _tmp4_;
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp6_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (self, G_TYPE_OBJECT, GObject));
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp7_ = g_type_name (_tmp6_);
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp8_ = media_accumulator_to_string (self);
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp9_ = _tmp8_;
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp10_ = g_strdup_printf ("Tried to remove DataObject %s from empty %s (%s)", _tmp5_, _tmp7_, _tmp9_);
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp11_ = _tmp10_;
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ g_warning ("MediaViewTracker.vala:57: %s", _tmp11_);
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_free0 (_tmp11_);
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_free0 (_tmp9_);
+#line 57 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_free0 (_tmp5_);
+#line 59 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ result = FALSE;
+#line 59 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (source);
+#line 59 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return result;
+#line 677 "MediaViewTracker.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp12_ = self->total;
+#line 61 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->total = _tmp12_ - 1;
+#line 63 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp13_ = source;
+#line 63 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_PHOTO) ? ((Photo*) _tmp13_) : NULL);
+#line 63 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ photo = _tmp14_;
+#line 64 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp15_ = photo;
+#line 64 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp15_ != NULL) {
+#line 693 "MediaViewTracker.c"
+ Photo* _tmp16_ = NULL;
+ PhotoFileFormat _tmp17_ = 0;
+ gboolean _tmp20_ = FALSE;
+ Photo* _tmp21_ = NULL;
+ PhotoFileFormat _tmp22_ = 0;
+#line 65 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp16_ = photo;
+#line 65 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp17_ = photo_get_master_file_format (_tmp16_);
+#line 65 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp17_ == PHOTO_FILE_FORMAT_RAW) {
+#line 705 "MediaViewTracker.c"
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 66 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp18_ = self->raw;
+#line 66 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _vala_assert (_tmp18_ > 0, "raw > 0");
+#line 67 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp19_ = self->raw;
+#line 67 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->raw = _tmp19_ - 1;
+#line 716 "MediaViewTracker.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp21_ = photo;
+#line 70 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp22_ = photo_get_master_file_format (_tmp21_);
+#line 70 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp22_ != PHOTO_FILE_FORMAT_RAW) {
+#line 70 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp20_ = TRUE;
+#line 726 "MediaViewTracker.c"
+ } else {
+ Photo* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 71 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp23_ = photo;
+#line 71 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp24_ = photo_is_raw_developer_available (_tmp23_, RAW_DEVELOPER_CAMERA);
+#line 71 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp20_ = _tmp24_;
+#line 736 "MediaViewTracker.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp20_) {
+#line 740 "MediaViewTracker.c"
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 72 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp25_ = self->photos;
+#line 72 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _vala_assert (_tmp25_ > 0, "photos > 0");
+#line 73 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp26_ = self->photos;
+#line 73 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->photos = _tmp26_ - 1;
+#line 751 "MediaViewTracker.c"
+ }
+ } else {
+ DataSource* _tmp27_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp27_ = source;
+#line 75 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp27_, TYPE_VIDEO)) {
+#line 759 "MediaViewTracker.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 76 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp28_ = self->videos;
+#line 76 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _vala_assert (_tmp28_ > 0, "videos > 0");
+#line 77 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp29_ = self->videos;
+#line 77 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->videos = _tmp29_ - 1;
+#line 770 "MediaViewTracker.c"
+ }
+ }
+#line 80 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp30_ = source;
+#line 80 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp31_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp30_) : NULL);
+#line 80 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ flaggable = _tmp31_;
+#line 81 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp33_ = flaggable;
+#line 81 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp33_ != NULL) {
+#line 783 "MediaViewTracker.c"
+ Flaggable* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 81 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp34_ = flaggable;
+#line 81 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp35_ = flaggable_is_flagged (_tmp34_);
+#line 81 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp32_ = _tmp35_;
+#line 792 "MediaViewTracker.c"
+ } else {
+#line 81 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp32_ = FALSE;
+#line 796 "MediaViewTracker.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp32_) {
+#line 800 "MediaViewTracker.c"
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+#line 82 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp36_ = self->flagged;
+#line 82 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _vala_assert (_tmp36_ > 0, "flagged > 0");
+#line 83 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp37_ = self->flagged;
+#line 83 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->flagged = _tmp37_ - 1;
+#line 811 "MediaViewTracker.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ result = TRUE;
+#line 87 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (flaggable);
+#line 87 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (photo);
+#line 87 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (source);
+#line 87 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return result;
+#line 823 "MediaViewTracker.c"
+}
+
+
+static gboolean media_accumulator_real_altered (CoreTrackerAccumulator* base, DataObject* object, Alteration* alteration) {
+ MediaAccumulator * self;
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ Flaggable* flaggable = NULL;
+ DataObject* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ Flaggable* _tmp4_ = NULL;
+ Flaggable* _tmp5_ = NULL;
+ Flaggable* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MEDIA_ACCUMULATOR, MediaAccumulator);
+#line 90 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 90 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 93 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp0_ = alteration;
+#line 93 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "flagged");
+#line 93 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (!_tmp1_) {
+#line 94 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ result = FALSE;
+#line 94 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return result;
+#line 855 "MediaViewTracker.c"
+ }
+#line 96 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp2_ = object;
+#line 96 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp3_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_VIEW, DataView));
+#line 96 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp3_) : NULL;
+#line 96 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp4_ == NULL) {
+#line 96 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (_tmp3_);
+#line 867 "MediaViewTracker.c"
+ }
+#line 96 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ flaggable = _tmp4_;
+#line 97 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp5_ = flaggable;
+#line 97 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp5_ == NULL) {
+#line 98 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ result = FALSE;
+#line 98 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (flaggable);
+#line 98 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return result;
+#line 881 "MediaViewTracker.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp6_ = flaggable;
+#line 100 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp7_ = flaggable_is_flagged (_tmp6_);
+#line 100 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ if (_tmp7_) {
+#line 889 "MediaViewTracker.c"
+ gint _tmp8_ = 0;
+#line 101 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp8_ = self->flagged;
+#line 101 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->flagged = _tmp8_ + 1;
+#line 895 "MediaViewTracker.c"
+ } else {
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 103 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp9_ = self->flagged;
+#line 103 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _vala_assert (_tmp9_ > 0, "flagged > 0");
+#line 104 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp10_ = self->flagged;
+#line 104 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->flagged = _tmp10_ - 1;
+#line 907 "MediaViewTracker.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ result = TRUE;
+#line 107 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _g_object_unref0 (flaggable);
+#line 107 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return result;
+#line 915 "MediaViewTracker.c"
+}
+
+
+gchar* media_accumulator_to_string (MediaAccumulator* self) {
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ g_return_val_if_fail (IS_MEDIA_ACCUMULATOR (self), NULL);
+#line 111 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp0_ = self->photos;
+#line 111 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp1_ = self->videos;
+#line 111 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp2_ = self->raw;
+#line 111 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp3_ = self->flagged;
+#line 111 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ _tmp4_ = g_strdup_printf ("%d photos/%d videos/%d raw/%d flagged", _tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 111 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ result = _tmp4_;
+#line 111 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return result;
+#line 942 "MediaViewTracker.c"
+}
+
+
+MediaAccumulator* media_accumulator_construct (GType object_type) {
+ MediaAccumulator * self = NULL;
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self = (MediaAccumulator*) g_object_new (object_type, NULL);
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return self;
+#line 952 "MediaViewTracker.c"
+}
+
+
+MediaAccumulator* media_accumulator_new (void) {
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ return media_accumulator_construct (TYPE_MEDIA_ACCUMULATOR);
+#line 959 "MediaViewTracker.c"
+}
+
+
+static void media_accumulator_class_init (MediaAccumulatorClass * klass) {
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ media_accumulator_parent_class = g_type_class_peek_parent (klass);
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ G_OBJECT_CLASS (klass)->finalize = media_accumulator_finalize;
+#line 968 "MediaViewTracker.c"
+}
+
+
+static void media_accumulator_core_tracker_accumulator_interface_init (CoreTrackerAccumulatorIface * iface) {
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ media_accumulator_core_tracker_accumulator_parent_iface = g_type_interface_peek_parent (iface);
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ iface->include = (gboolean (*)(CoreTrackerAccumulator*, DataObject*)) media_accumulator_real_include;
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ iface->uninclude = (gboolean (*)(CoreTrackerAccumulator*, DataObject*)) media_accumulator_real_uninclude;
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ iface->altered = (gboolean (*)(CoreTrackerAccumulator*, DataObject*, Alteration*)) media_accumulator_real_altered;
+#line 981 "MediaViewTracker.c"
+}
+
+
+static void media_accumulator_instance_init (MediaAccumulator * self) {
+#line 20 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->total = 0;
+#line 21 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->photos = 0;
+#line 22 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->videos = 0;
+#line 23 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->raw = 0;
+#line 24 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self->flagged = 0;
+#line 996 "MediaViewTracker.c"
+}
+
+
+static void media_accumulator_finalize (GObject* obj) {
+ MediaAccumulator * self;
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MEDIA_ACCUMULATOR, MediaAccumulator);
+#line 19 "/home/jens/Source/shotwell/src/MediaViewTracker.vala"
+ G_OBJECT_CLASS (media_accumulator_parent_class)->finalize (obj);
+#line 1006 "MediaViewTracker.c"
+}
+
+
+GType media_accumulator_get_type (void) {
+ static volatile gsize media_accumulator_type_id__volatile = 0;
+ if (g_once_init_enter (&media_accumulator_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MediaAccumulatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) media_accumulator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MediaAccumulator), 0, (GInstanceInitFunc) media_accumulator_instance_init, NULL };
+ static const GInterfaceInfo core_tracker_accumulator_info = { (GInterfaceInitFunc) media_accumulator_core_tracker_accumulator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType media_accumulator_type_id;
+ media_accumulator_type_id = g_type_register_static (G_TYPE_OBJECT, "MediaAccumulator", &g_define_type_info, 0);
+ g_type_add_interface_static (media_accumulator_type_id, CORE_TYPE_TRACKER_ACCUMULATOR, &core_tracker_accumulator_info);
+ g_once_init_leave (&media_accumulator_type_id__volatile, media_accumulator_type_id);
+ }
+ return media_accumulator_type_id__volatile;
+}
+
+
+
diff --git a/src/MetadataWriter.c b/src/MetadataWriter.c
new file mode 100644
index 0000000..ec51b73
--- /dev/null
+++ b/src/MetadataWriter.c
@@ -0,0 +1,5166 @@
+/* MetadataWriter.c generated by valac 0.32.1, the Vala compiler
+ * generated from MetadataWriter.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* MetadataWriter tracks LibraryPhotos for alterations to their metadata and commits those changes*/
+/* in a timely manner to their backing files. Because only the MetadataWriter knows when the*/
+/* metadata has been properly committed, it is also responsible for updating the metadata-dirty*/
+/* flag in Photo. Thus, MetadataWriter should *always* be running, even if the user has turned off*/
+/* the feature, so if they turn it on MetadataWriter can properly go out and update the backing*/
+/* files.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <time.h>
+
+
+#define TYPE_METADATA_WRITER (metadata_writer_get_type ())
+#define METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_WRITER, MetadataWriter))
+#define METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_WRITER, MetadataWriterClass))
+#define IS_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_WRITER))
+#define IS_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_WRITER))
+#define METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_WRITER, MetadataWriterClass))
+
+typedef struct _MetadataWriter MetadataWriter;
+typedef struct _MetadataWriterClass MetadataWriterClass;
+typedef struct _MetadataWriterPrivate MetadataWriterPrivate;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_TIMED_QUEUE (timed_queue_get_type ())
+#define TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TIMED_QUEUE, TimedQueue))
+#define TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TIMED_QUEUE, TimedQueueClass))
+#define IS_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TIMED_QUEUE))
+#define IS_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TIMED_QUEUE))
+#define TIMED_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TIMED_QUEUE, TimedQueueClass))
+
+typedef struct _TimedQueue TimedQueue;
+typedef struct _TimedQueueClass TimedQueueClass;
+
+#define TYPE_HASH_TIMED_QUEUE (hash_timed_queue_get_type ())
+#define HASH_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HASH_TIMED_QUEUE, HashTimedQueue))
+#define HASH_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HASH_TIMED_QUEUE, HashTimedQueueClass))
+#define IS_HASH_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HASH_TIMED_QUEUE))
+#define IS_HASH_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HASH_TIMED_QUEUE))
+#define HASH_TIMED_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HASH_TIMED_QUEUE, HashTimedQueueClass))
+
+typedef struct _HashTimedQueue HashTimedQueue;
+typedef struct _HashTimedQueueClass HashTimedQueueClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define METADATA_WRITER_TYPE_COMMIT_JOB (metadata_writer_commit_job_get_type ())
+#define METADATA_WRITER_COMMIT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJob))
+#define METADATA_WRITER_COMMIT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJobClass))
+#define METADATA_WRITER_IS_COMMIT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), METADATA_WRITER_TYPE_COMMIT_JOB))
+#define METADATA_WRITER_IS_COMMIT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), METADATA_WRITER_TYPE_COMMIT_JOB))
+#define METADATA_WRITER_COMMIT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJobClass))
+
+typedef struct _MetadataWriterCommitJob MetadataWriterCommitJob;
+typedef struct _MetadataWriterCommitJobClass MetadataWriterCommitJobClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE (container_source_get_type ())
+#define CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE, ContainerSource))
+#define IS_CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE))
+#define CONTAINER_SOURCE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONTAINER_SOURCE, ContainerSourceIface))
+
+typedef struct _ContainerSource ContainerSource;
+typedef struct _ContainerSourceIface ContainerSourceIface;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+
+#define TYPE_LIBRARY_MONITOR_POOL (library_monitor_pool_get_type ())
+#define LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPool))
+#define LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+#define IS_LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR_POOL))
+#define IS_LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR_POOL))
+#define LIBRARY_MONITOR_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+
+typedef struct _LibraryMonitorPool LibraryMonitorPool;
+typedef struct _LibraryMonitorPoolClass LibraryMonitorPoolClass;
+
+#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
+#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
+#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
+#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
+#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+
+typedef struct _DirectoryMonitor DirectoryMonitor;
+typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
+
+#define TYPE_LIBRARY_MONITOR (library_monitor_get_type ())
+#define LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitor))
+#define LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+#define IS_LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR))
+#define IS_LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR))
+#define LIBRARY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+
+typedef struct _LibraryMonitor LibraryMonitor;
+typedef struct _LibraryMonitorClass LibraryMonitorClass;
+#define _library_monitor_pool_unref0(var) ((var == NULL) ? NULL : (var = (library_monitor_pool_unref (var), NULL)))
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+#define _timed_queue_unref0(var) ((var == NULL) ? NULL : (var = (timed_queue_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _MetadataWriterCommitJobPrivate MetadataWriterCommitJobPrivate;
+
+#define PHOTO_TYPE_REIMPORT_MASTER_STATE (photo_reimport_master_state_get_type ())
+#define PHOTO_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterState))
+#define PHOTO_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+#define PHOTO_IS_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_IS_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_REIMPORT_MASTER_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+
+typedef struct _PhotoReimportMasterState PhotoReimportMasterState;
+typedef struct _PhotoReimportMasterStateClass PhotoReimportMasterStateClass;
+
+#define PHOTO_TYPE_REIMPORT_EDITABLE_STATE (photo_reimport_editable_state_get_type ())
+#define PHOTO_REIMPORT_EDITABLE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableState))
+#define PHOTO_REIMPORT_EDITABLE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableStateClass))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE))
+#define PHOTO_REIMPORT_EDITABLE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableStateClass))
+
+typedef struct _PhotoReimportEditableState PhotoReimportEditableState;
+typedef struct _PhotoReimportEditableStateClass PhotoReimportEditableStateClass;
+#define _photo_reimport_master_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_master_state_unref (var), NULL)))
+#define _photo_reimport_editable_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_editable_state_unref (var), NULL)))
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+
+#define PHOTO_METADATA_TYPE_SET_OPTION (photo_metadata_set_option_get_type ())
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _MetadataWriter {
+ GObject parent_instance;
+ MetadataWriterPrivate * priv;
+};
+
+struct _MetadataWriterClass {
+ GObjectClass parent_class;
+};
+
+struct _MetadataWriterPrivate {
+ Workers* workers;
+ gboolean enabled;
+ HashTimedQueue* dirty;
+ GeeHashMap* pending;
+ GeeHashSet* pending_cancel;
+ GeeHashSet* interested_photo_details;
+ LibraryPhoto* ignore_photo_alteration;
+ guint outstanding_total;
+ guint outstanding_completed;
+ gboolean closed;
+ gint pause_count;
+ GeeHashSet* importing_photos;
+};
+
+struct _ContainerSourceIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_links) (ContainerSource* self);
+ SourceBacklink* (*get_backlink) (ContainerSource* self);
+ void (*break_link) (ContainerSource* self, DataSource* source);
+ void (*break_link_many) (ContainerSource* self, GeeCollection* sources);
+ void (*establish_link) (ContainerSource* self, DataSource* source);
+ void (*establish_link_many) (ContainerSource* self, GeeCollection* sources);
+};
+
+typedef void (*DequeuedCallback) (gconstpointer item, void* user_data);
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _MetadataWriterCommitJob {
+ BackgroundJob parent_instance;
+ MetadataWriterCommitJobPrivate * priv;
+ LibraryPhoto* photo;
+ GeeSet* current_keywords;
+ PhotoReimportMasterState* reimport_master_state;
+ PhotoReimportEditableState* reimport_editable_state;
+ GError* err;
+ gboolean wrote_master;
+ gboolean wrote_editable;
+};
+
+struct _MetadataWriterCommitJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ PHOTO_METADATA_SET_OPTION_ALL_DOMAINS,
+ PHOTO_METADATA_SET_OPTION_ONLY_IF_DOMAIN_PRESENT,
+ PHOTO_METADATA_SET_OPTION_AT_LEAST_DEFAULT_DOMAIN
+} PhotoMetadataSetOption;
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+
+static gpointer metadata_writer_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern TagSourceCollection* tag_global;
+static MetadataWriter* metadata_writer_instance;
+static MetadataWriter* metadata_writer_instance = NULL;
+static gpointer metadata_writer_commit_job_parent_class = NULL;
+
+GType metadata_writer_get_type (void) G_GNUC_CONST;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+gpointer timed_queue_ref (gpointer instance);
+void timed_queue_unref (gpointer instance);
+GParamSpec* param_spec_timed_queue (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_timed_queue (GValue* value, gpointer v_object);
+void value_take_timed_queue (GValue* value, gpointer v_object);
+gpointer value_get_timed_queue (const GValue* value);
+GType timed_queue_get_type (void) G_GNUC_CONST;
+GType hash_timed_queue_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+static GType metadata_writer_commit_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define METADATA_WRITER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_METADATA_WRITER, MetadataWriterPrivate))
+enum {
+ METADATA_WRITER_DUMMY_PROPERTY
+};
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+static void metadata_writer_on_config_changed (MetadataWriter* self);
+static void _metadata_writer_on_config_changed_configuration_facade_commit_metadata_to_masters_changed (ConfigurationFacade* _sender, gpointer self);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+static void metadata_writer_on_importing_photos (MetadataWriter* self, GeeCollection* media_sources);
+static void _metadata_writer_on_importing_photos_media_source_collection_media_import_starting (MediaSourceCollection* _sender, GeeCollection* media, gpointer self);
+static void metadata_writer_on_photos_imported (MetadataWriter* self, GeeCollection* media_sources);
+static void _metadata_writer_on_photos_imported_media_source_collection_media_import_completed (MediaSourceCollection* _sender, GeeCollection* media, gpointer self);
+static void metadata_writer_on_photos_added_removed (MetadataWriter* self, GeeIterable* added, GeeIterable* removed);
+static void _metadata_writer_on_photos_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void metadata_writer_on_photos_altered (MetadataWriter* self, GeeMap* items);
+static void _metadata_writer_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void metadata_writer_on_collection_frozen (MetadataWriter* self);
+static void _metadata_writer_on_collection_frozen_data_collection_frozen (DataCollection* _sender, gpointer self);
+static void metadata_writer_on_collection_thawed (MetadataWriter* self);
+static void _metadata_writer_on_collection_thawed_data_collection_thawed (DataCollection* _sender, gpointer self);
+static void metadata_writer_on_photos_destroyed (MetadataWriter* self, GeeCollection* destroyed);
+static void _metadata_writer_on_photos_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self);
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+static void metadata_writer_on_tags_altered (MetadataWriter* self, GeeMap* map);
+static void _metadata_writer_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType container_source_get_type (void) G_GNUC_CONST;
+static void metadata_writer_on_tag_contents_altered (MetadataWriter* self, ContainerSource* container, GeeCollection* added, gboolean relinking, GeeCollection* removed, gboolean unlinking);
+static void _metadata_writer_on_tag_contents_altered_container_source_collection_container_contents_altered (ContainerSourceCollection* _sender, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked, gpointer self);
+static void metadata_writer_on_tag_backlink_removed (MetadataWriter* self, ContainerSource* container, GeeCollection* sources);
+static void _metadata_writer_on_tag_backlink_removed_container_source_collection_backlink_to_container_removed (ContainerSourceCollection* _sender, ContainerSource* container, GeeCollection* sources, gpointer self);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+static void metadata_writer_on_application_exiting (MetadataWriter* self);
+static void _metadata_writer_on_application_exiting_application_exiting (Application* _sender, gboolean panicked, gpointer self);
+gpointer library_monitor_pool_ref (gpointer instance);
+void library_monitor_pool_unref (gpointer instance);
+GParamSpec* param_spec_library_monitor_pool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_library_monitor_pool (GValue* value, gpointer v_object);
+void value_take_library_monitor_pool (GValue* value, gpointer v_object);
+gpointer value_get_library_monitor_pool (const GValue* value);
+GType library_monitor_pool_get_type (void) G_GNUC_CONST;
+LibraryMonitorPool* library_monitor_pool_get_instance (void);
+GType directory_monitor_get_type (void) G_GNUC_CONST;
+GType library_monitor_get_type (void) G_GNUC_CONST;
+static void metadata_writer_on_monitor_installed (MetadataWriter* self, LibraryMonitor* monitor);
+static void _metadata_writer_on_monitor_installed_library_monitor_pool_monitor_installed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self);
+static void metadata_writer_on_monitor_destroyed (MetadataWriter* self, LibraryMonitor* monitor);
+static void _metadata_writer_on_monitor_destroyed_library_monitor_pool_monitor_destroyed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self);
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+#define METADATA_WRITER_COMMIT_DELAY_MSEC ((guint) 3000)
+#define METADATA_WRITER_COMMIT_SPACING_MSEC ((guint) 50)
+static MetadataWriter* metadata_writer_new (void);
+static MetadataWriter* metadata_writer_construct (GType object_type);
+static void metadata_writer_on_photo_dequeued (MetadataWriter* self, LibraryPhoto* photo);
+static void _metadata_writer_on_photo_dequeued_dequeued_callback (gconstpointer item, gpointer self);
+HashTimedQueue* hash_timed_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+HashTimedQueue* hash_timed_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+void timed_queue_set_dequeue_spacing_msec (TimedQueue* self, guint msec);
+void metadata_writer_pause (MetadataWriter* self);
+gboolean configuration_facade_get_commit_metadata_to_masters (ConfigurationFacade* self);
+void metadata_writer_force_rescan (MetadataWriter* self);
+void metadata_writer_init (void);
+void metadata_writer_terminate (void);
+void metadata_writer_close (MetadataWriter* self);
+MetadataWriter* metadata_writer_get_instance (void);
+static void metadata_writer_schedule_if_dirty (MetadataWriter* self, GeeIterable* media_sources, const gchar* reason);
+GeeCollection* data_collection_get_all (DataCollection* self);
+void timed_queue_pause (TimedQueue* self);
+void metadata_writer_unpause (MetadataWriter* self);
+void timed_queue_unpause (TimedQueue* self);
+static void metadata_writer_cancel_all (MetadataWriter* self, gboolean wait);
+static void metadata_writer_on_discovery_completed (MetadataWriter* self);
+static void _metadata_writer_on_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self);
+static gboolean metadata_writer_cancel_job (MetadataWriter* self, LibraryPhoto* photo);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+GeeCollection* alteration_get_details (Alteration* self, const gchar* subject);
+static void metadata_writer_photos_are_dirty (MetadataWriter* self, GeeCollection* photos, const gchar* reason, gboolean already_marked);
+GType tag_get_type (void) G_GNUC_CONST;
+GeeCollection* tag_get_sources (Tag* self);
+gchar* data_object_to_string (DataObject* self);
+static void metadata_writer_count_enqueued_work (MetadataWriter* self, gint count, gboolean report);
+static void metadata_writer_count_cancelled_work (MetadataWriter* self, gint count, gboolean report);
+static void metadata_writer_count_completed_work (MetadataWriter* self, gint count, gboolean report);
+gboolean photo_is_master_metadata_dirty (Photo* self);
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+TransactionController* media_source_collection_get_transaction_controller (MediaSourceCollection* self);
+void transaction_controller_begin (TransactionController* self);
+GQuark database_error_quark (void);
+void photo_set_master_metadata_dirty (Photo* self, gboolean dirty, GError** error);
+void transaction_controller_commit (TransactionController* self);
+void app_window_database_error (GError* err);
+gboolean timed_queue_enqueue (TimedQueue* self, gconstpointer item);
+void timed_queue_clear (TimedQueue* self);
+void background_job_cancel (BackgroundJob* self);
+void workers_wait_for_empty_queue (Workers* self);
+gboolean timed_queue_contains (TimedQueue* self, gconstpointer item);
+gboolean timed_queue_remove_first (TimedQueue* self, gconstpointer item);
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
+gchar* data_object_get_name (DataObject* self);
+static MetadataWriterCommitJob* metadata_writer_commit_job_new (MetadataWriter* owner, LibraryPhoto* photo, GeeSet* keywords);
+static MetadataWriterCommitJob* metadata_writer_commit_job_construct (GType object_type, MetadataWriter* owner, LibraryPhoto* photo, GeeSet* keywords);
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static void metadata_writer_on_update_completed (MetadataWriter* self, BackgroundJob* j);
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+gpointer photo_reimport_master_state_ref (gpointer instance);
+void photo_reimport_master_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_master_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_master_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_master_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_master_state (const GValue* value);
+GType photo_reimport_master_state_get_type (void) G_GNUC_CONST;
+gpointer photo_reimport_editable_state_ref (gpointer instance);
+void photo_reimport_editable_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_editable_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_editable_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_editable_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_editable_state (const GValue* value);
+GType photo_reimport_editable_state_get_type (void) G_GNUC_CONST;
+GFile* media_source_get_master_file (MediaSource* self);
+GFile* photo_get_editable_file (Photo* self);
+void photo_finish_update_master_metadata (Photo* self, PhotoReimportMasterState* state, GError** error);
+void photo_finish_update_editable_metadata (Photo* self, PhotoReimportEditableState* state, GError** error);
+static void metadata_writer_on_update_cancelled (MetadataWriter* self, BackgroundJob* j);
+static void g_cclosure_user_marshal_VOID__UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+enum {
+ METADATA_WRITER_COMMIT_JOB_DUMMY_PROPERTY
+};
+static void _metadata_writer_on_update_completed_completion_callback (BackgroundJob* job, gpointer self);
+static void _metadata_writer_on_update_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+static void metadata_writer_commit_job_real_execute (BackgroundJob* base);
+static void metadata_writer_commit_job_commit_master (MetadataWriterCommitJob* self, GError** error);
+static void metadata_writer_commit_job_commit_editable (MetadataWriterCommitJob* self, GError** error);
+gboolean photo_has_editable (Photo* self);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+gboolean photo_file_format_can_write_metadata (PhotoFileFormat self);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+PhotoMetadata* photo_get_master_metadata (Photo* self, GError** error);
+static gboolean metadata_writer_commit_job_update_metadata (MetadataWriterCommitJob* self, PhotoMetadata* metadata, gboolean skip_orientation);
+void library_monitor_blacklist_file (GFile* file, const gchar* reason);
+gboolean photo_persist_master_metadata (Photo* self, PhotoMetadata* metadata, PhotoReimportMasterState** state, GError** error);
+void library_monitor_unblacklist_file (GFile* file);
+PhotoFileFormat* photo_get_editable_file_format (Photo* self);
+PhotoMetadata* photo_get_editable_metadata (Photo* self, GError** error);
+gboolean photo_persist_editable_metadata (Photo* self, PhotoMetadata* metadata, PhotoReimportEditableState** state, GError** error);
+gchar* media_source_get_title (MediaSource* self);
+gchar* media_metadata_get_title (MediaMetadata* self);
+GType photo_metadata_set_option_get_type (void) G_GNUC_CONST;
+void photo_metadata_set_title (PhotoMetadata* self, const gchar* title, PhotoMetadataSetOption option);
+gchar* media_source_get_comment (MediaSource* self);
+gchar* media_metadata_get_comment (MediaMetadata* self);
+void photo_metadata_set_comment (PhotoMetadata* self, const gchar* comment);
+GType rating_get_type (void) G_GNUC_CONST;
+Rating media_source_get_rating (MediaSource* self);
+Rating photo_metadata_get_rating (PhotoMetadata* self);
+void photo_metadata_set_rating (PhotoMetadata* self, Rating rating);
+time_t media_source_get_exposure_time (MediaSource* self);
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+MetadataDateTime* metadata_date_time_new (time_t timestamp);
+MetadataDateTime* metadata_date_time_construct (GType object_type, time_t timestamp);
+void photo_metadata_set_exposure_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option);
+Tag* tag_for_path (const gchar* name);
+gchar* tag_get_user_visible_name (Tag* self);
+gboolean equal_sets (GeeSet* a, GeeSet* b);
+GeeSet* photo_metadata_get_keywords (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+void photo_metadata_set_keywords (PhotoMetadata* self, GeeCollection* keywords, PhotoMetadataSetOption option);
+GType orientation_get_type (void) G_GNUC_CONST;
+Orientation photo_get_orientation (Photo* self);
+Orientation photo_metadata_get_orientation (PhotoMetadata* self);
+void photo_metadata_set_orientation (PhotoMetadata* self, Orientation orientation);
+void photo_metadata_set_software (PhotoMetadata* self, const gchar* software, const gchar* version);
+#define RESOURCES_APP_TITLE "Shotwell"
+#define RESOURCES_APP_VERSION _VERSION
+static void metadata_writer_commit_job_finalize (BackgroundJob* obj);
+static void metadata_writer_finalize (GObject* obj);
+
+static const gchar* METADATA_WRITER_INTERESTED_PHOTO_METADATA_DETAILS[4] = {"name", "comment", "rating", "exposure-time"};
+
+static void _metadata_writer_on_config_changed_configuration_facade_commit_metadata_to_masters_changed (ConfigurationFacade* _sender, gpointer self) {
+#line 220 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_config_changed ((MetadataWriter*) self);
+#line 828 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_importing_photos_media_source_collection_media_import_starting (MediaSourceCollection* _sender, GeeCollection* media, gpointer self) {
+#line 222 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_importing_photos ((MetadataWriter*) self, media);
+#line 835 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_photos_imported_media_source_collection_media_import_completed (MediaSourceCollection* _sender, GeeCollection* media, gpointer self) {
+#line 223 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_photos_imported ((MetadataWriter*) self, media);
+#line 842 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_photos_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 224 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_photos_added_removed ((MetadataWriter*) self, added, removed);
+#line 849 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 225 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_photos_altered ((MetadataWriter*) self, items);
+#line 856 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_collection_frozen_data_collection_frozen (DataCollection* _sender, gpointer self) {
+#line 226 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_collection_frozen ((MetadataWriter*) self);
+#line 863 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_collection_thawed_data_collection_thawed (DataCollection* _sender, gpointer self) {
+#line 227 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_collection_thawed ((MetadataWriter*) self);
+#line 870 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_photos_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self) {
+#line 228 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_photos_destroyed ((MetadataWriter*) self, destroyed);
+#line 877 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 230 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_tags_altered ((MetadataWriter*) self, items);
+#line 884 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_tag_contents_altered_container_source_collection_container_contents_altered (ContainerSourceCollection* _sender, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked, gpointer self) {
+#line 231 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_tag_contents_altered ((MetadataWriter*) self, container, added, relinked, removed, unlinked);
+#line 891 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_tag_backlink_removed_container_source_collection_backlink_to_container_removed (ContainerSourceCollection* _sender, ContainerSource* container, GeeCollection* sources, gpointer self) {
+#line 232 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_tag_backlink_removed ((MetadataWriter*) self, container, sources);
+#line 898 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_application_exiting_application_exiting (Application* _sender, gboolean panicked, gpointer self) {
+#line 236 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_application_exiting ((MetadataWriter*) self);
+#line 905 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_monitor_installed_library_monitor_pool_monitor_installed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self) {
+#line 238 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_monitor_installed ((MetadataWriter*) self, monitor);
+#line 912 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_monitor_destroyed_library_monitor_pool_monitor_destroyed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self) {
+#line 239 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_monitor_destroyed ((MetadataWriter*) self, monitor);
+#line 919 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_photo_dequeued_dequeued_callback (gconstpointer item, gpointer self) {
+#line 180 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_photo_dequeued ((MetadataWriter*) self, (LibraryPhoto*) item);
+#line 926 "MetadataWriter.c"
+}
+
+
+static MetadataWriter* metadata_writer_construct (GType object_type) {
+ MetadataWriter * self = NULL;
+ HashTimedQueue* _tmp0_ = NULL;
+ HashTimedQueue* _tmp1_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ ConfigFacade* _tmp8_ = NULL;
+ ConfigFacade* _tmp9_ = NULL;
+ LibraryPhotoSourceCollection* _tmp10_ = NULL;
+ LibraryPhotoSourceCollection* _tmp11_ = NULL;
+ LibraryPhotoSourceCollection* _tmp12_ = NULL;
+ LibraryPhotoSourceCollection* _tmp13_ = NULL;
+ LibraryPhotoSourceCollection* _tmp14_ = NULL;
+ LibraryPhotoSourceCollection* _tmp15_ = NULL;
+ LibraryPhotoSourceCollection* _tmp16_ = NULL;
+ TagSourceCollection* _tmp17_ = NULL;
+ TagSourceCollection* _tmp18_ = NULL;
+ TagSourceCollection* _tmp19_ = NULL;
+ TagSourceCollection* _tmp20_ = NULL;
+ TagSourceCollection* _tmp21_ = NULL;
+ Application* _tmp22_ = NULL;
+ Application* _tmp23_ = NULL;
+ LibraryMonitorPool* _tmp24_ = NULL;
+ LibraryMonitorPool* _tmp25_ = NULL;
+ LibraryMonitorPool* _tmp26_ = NULL;
+ LibraryMonitorPool* _tmp27_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self = (MetadataWriter*) g_object_new (object_type, NULL);
+#line 180 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = hash_timed_queue_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, METADATA_WRITER_COMMIT_DELAY_MSEC, _metadata_writer_on_photo_dequeued_dequeued_callback, self, NULL, NULL, NULL, NULL, NULL, NULL, G_PRIORITY_DEFAULT);
+#line 180 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _timed_queue_unref0 (self->priv->dirty);
+#line 180 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->dirty = _tmp0_;
+#line 181 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = self->priv->dirty;
+#line 181 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ timed_queue_set_dequeue_spacing_msec (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_TIMED_QUEUE, TimedQueue), METADATA_WRITER_COMMIT_SPACING_MSEC);
+#line 186 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_pause (self);
+#line 971 "MetadataWriter.c"
+ {
+ const gchar** detail_collection = NULL;
+ gint detail_collection_length1 = 0;
+ gint _detail_collection_size_ = 0;
+ gint detail_it = 0;
+#line 189 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ detail_collection = METADATA_WRITER_INTERESTED_PHOTO_METADATA_DETAILS;
+#line 189 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ detail_collection_length1 = G_N_ELEMENTS (METADATA_WRITER_INTERESTED_PHOTO_METADATA_DETAILS);
+#line 189 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ for (detail_it = 0; detail_it < G_N_ELEMENTS (METADATA_WRITER_INTERESTED_PHOTO_METADATA_DETAILS); detail_it = detail_it + 1) {
+#line 983 "MetadataWriter.c"
+ gchar* _tmp2_ = NULL;
+ gchar* detail = NULL;
+#line 189 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = g_strdup (detail_collection[detail_it]);
+#line 189 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ detail = _tmp2_;
+#line 990 "MetadataWriter.c"
+ {
+ GeeHashSet* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = self->priv->interested_photo_details;
+#line 190 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = detail;
+#line 190 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 189 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (detail);
+#line 1002 "MetadataWriter.c"
+ }
+ }
+ }
+#line 193 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = config_facade_get_instance ();
+#line 193 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = _tmp5_;
+#line 193 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = configuration_facade_get_commit_metadata_to_masters (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 193 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->enabled = _tmp7_;
+#line 193 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp6_);
+#line 194 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = config_facade_get_instance ();
+#line 194 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = _tmp8_;
+#line 194 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), "commit-metadata-to-masters-changed", (GCallback) _metadata_writer_on_config_changed_configuration_facade_commit_metadata_to_masters_changed, self, 0);
+#line 194 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp9_);
+#line 197 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_force_rescan (self);
+#line 199 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = library_photo_global;
+#line 199 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "media-import-starting", (GCallback) _metadata_writer_on_importing_photos_media_source_collection_media_import_starting, self, 0);
+#line 200 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = library_photo_global;
+#line 200 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "media-import-completed", (GCallback) _metadata_writer_on_photos_imported_media_source_collection_media_import_completed, self, 0);
+#line 201 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = library_photo_global;
+#line 201 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _metadata_writer_on_photos_added_removed_data_collection_contents_altered, self, 0);
+#line 202 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = library_photo_global;
+#line 202 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _metadata_writer_on_photos_altered_data_collection_items_altered, self, 0);
+#line 203 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = library_photo_global;
+#line 203 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection), "frozen", (GCallback) _metadata_writer_on_collection_frozen_data_collection_frozen, self, 0);
+#line 204 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = library_photo_global;
+#line 204 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_COLLECTION, DataCollection), "thawed", (GCallback) _metadata_writer_on_collection_thawed_data_collection_thawed, self, 0);
+#line 205 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = library_photo_global;
+#line 205 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_SOURCE_COLLECTION, SourceCollection), "items-destroyed", (GCallback) _metadata_writer_on_photos_destroyed_source_collection_items_destroyed, self, 0);
+#line 207 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = tag_global;
+#line 207 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _metadata_writer_on_tags_altered_data_collection_items_altered, self, 0);
+#line 208 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = tag_global;
+#line 208 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), "container-contents-altered", (GCallback) _metadata_writer_on_tag_contents_altered_container_source_collection_container_contents_altered, self, 0);
+#line 209 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = tag_global;
+#line 209 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), "backlink-to-container-removed", (GCallback) _metadata_writer_on_tag_backlink_removed_container_source_collection_backlink_to_container_removed, self, 0);
+#line 210 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = tag_global;
+#line 210 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_COLLECTION, DataCollection), "frozen", (GCallback) _metadata_writer_on_collection_frozen_data_collection_frozen, self, 0);
+#line 211 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = tag_global;
+#line 211 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection), "thawed", (GCallback) _metadata_writer_on_collection_thawed_data_collection_thawed, self, 0);
+#line 213 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = application_get_instance ();
+#line 213 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = _tmp22_;
+#line 213 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (_tmp23_, "exiting", (GCallback) _metadata_writer_on_application_exiting_application_exiting, self, 0);
+#line 213 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _application_unref0 (_tmp23_);
+#line 215 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = library_monitor_pool_get_instance ();
+#line 215 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = _tmp24_;
+#line 215 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (_tmp25_, "monitor-installed", (GCallback) _metadata_writer_on_monitor_installed_library_monitor_pool_monitor_installed, self, 0);
+#line 215 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _library_monitor_pool_unref0 (_tmp25_);
+#line 216 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = library_monitor_pool_get_instance ();
+#line 216 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = _tmp26_;
+#line 216 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (_tmp27_, "monitor-destroyed", (GCallback) _metadata_writer_on_monitor_destroyed_library_monitor_pool_monitor_destroyed, self, 0);
+#line 216 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _library_monitor_pool_unref0 (_tmp27_);
+#line 179 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return self;
+#line 1100 "MetadataWriter.c"
+}
+
+
+static MetadataWriter* metadata_writer_new (void) {
+#line 179 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return metadata_writer_construct (TYPE_METADATA_WRITER);
+#line 1107 "MetadataWriter.c"
+}
+
+
+void metadata_writer_init (void) {
+ MetadataWriter* _tmp0_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = metadata_writer_new ();
+#line 243 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (metadata_writer_instance);
+#line 243 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_instance = _tmp0_;
+#line 1119 "MetadataWriter.c"
+}
+
+
+void metadata_writer_terminate (void) {
+ MetadataWriter* _tmp0_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = metadata_writer_instance;
+#line 247 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp0_ != NULL) {
+#line 1129 "MetadataWriter.c"
+ MetadataWriter* _tmp1_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = metadata_writer_instance;
+#line 248 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_close (_tmp1_);
+#line 1135 "MetadataWriter.c"
+ }
+#line 250 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (metadata_writer_instance);
+#line 250 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_instance = NULL;
+#line 1141 "MetadataWriter.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 254 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1148 "MetadataWriter.c"
+}
+
+
+MetadataWriter* metadata_writer_get_instance (void) {
+ MetadataWriter* result = NULL;
+ MetadataWriter* _tmp0_ = NULL;
+ MetadataWriter* _tmp1_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = metadata_writer_instance;
+#line 254 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 254 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ result = _tmp1_;
+#line 254 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return result;
+#line 1164 "MetadataWriter.c"
+}
+
+
+void metadata_writer_force_rescan (MetadataWriter* self) {
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 259 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = library_photo_global;
+#line 259 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 259 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 259 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_schedule_if_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable), "force rescan");
+#line 259 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1184 "MetadataWriter.c"
+}
+
+
+void metadata_writer_pause (MetadataWriter* self) {
+ gint _tmp0_ = 0;
+ HashTimedQueue* _tmp1_ = NULL;
+#line 262 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 263 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->pause_count;
+#line 263 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->pause_count = _tmp0_ + 1;
+#line 263 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp0_ != 0) {
+#line 264 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 1201 "MetadataWriter.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = self->priv->dirty;
+#line 266 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ timed_queue_pause (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_TIMED_QUEUE, TimedQueue));
+#line 268 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_emit_by_name (self, "progress", (guint) 0, (guint) 0);
+#line 1209 "MetadataWriter.c"
+}
+
+
+void metadata_writer_unpause (MetadataWriter* self) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ HashTimedQueue* _tmp4_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = self->priv->pause_count;
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp1_ == 0) {
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = TRUE;
+#line 1225 "MetadataWriter.c"
+ } else {
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = self->priv->pause_count;
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->pause_count = _tmp2_ - 1;
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = self->priv->pause_count;
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = _tmp3_ != 0;
+#line 1237 "MetadataWriter.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp0_) {
+#line 273 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 1243 "MetadataWriter.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = self->priv->dirty;
+#line 275 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ timed_queue_unpause (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_TIMED_QUEUE, TimedQueue));
+#line 1249 "MetadataWriter.c"
+}
+
+
+void metadata_writer_close (MetadataWriter* self) {
+ gboolean _tmp0_ = FALSE;
+#line 278 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 279 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->closed;
+#line 279 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp0_) {
+#line 280 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 1263 "MetadataWriter.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_cancel_all (self, TRUE);
+#line 284 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->closed = TRUE;
+#line 1269 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_config_changed (MetadataWriter* self) {
+ gboolean value = FALSE;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 287 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 288 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 288 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = _tmp0_;
+#line 288 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = configuration_facade_get_commit_metadata_to_masters (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 288 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = _tmp2_;
+#line 288 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp1_);
+#line 288 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ value = _tmp3_;
+#line 290 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = self->priv->enabled;
+#line 290 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = value;
+#line 290 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp4_ == _tmp5_) {
+#line 291 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 1305 "MetadataWriter.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = value;
+#line 293 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->enabled = _tmp6_;
+#line 294 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = self->priv->enabled;
+#line 294 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp7_) {
+#line 295 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_force_rescan (self);
+#line 1317 "MetadataWriter.c"
+ } else {
+#line 297 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_cancel_all (self, FALSE);
+#line 1321 "MetadataWriter.c"
+ }
+}
+
+
+static void metadata_writer_on_application_exiting (MetadataWriter* self) {
+#line 300 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 301 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_close (self);
+#line 1331 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self) {
+#line 305 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_discovery_completed ((MetadataWriter*) self);
+#line 1338 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_monitor_installed (MetadataWriter* self, LibraryMonitor* monitor) {
+ LibraryMonitor* _tmp0_ = NULL;
+#line 304 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 304 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (monitor));
+#line 305 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = monitor;
+#line 305 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), "discovery-completed", (GCallback) _metadata_writer_on_discovery_completed_directory_monitor_discovery_completed, self, 0);
+#line 1352 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_monitor_destroyed (MetadataWriter* self, LibraryMonitor* monitor) {
+ LibraryMonitor* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 308 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 308 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (monitor));
+#line 309 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = monitor;
+#line 309 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("discovery-completed", TYPE_DIRECTORY_MONITOR, &_tmp1_, NULL, FALSE);
+#line 309 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _metadata_writer_on_discovery_completed_directory_monitor_discovery_completed, self);
+#line 1369 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_discovery_completed (MetadataWriter* self) {
+#line 312 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 313 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_unpause (self);
+#line 1378 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_collection_frozen (MetadataWriter* self) {
+#line 316 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 317 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_pause (self);
+#line 1387 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_collection_thawed (MetadataWriter* self) {
+#line 320 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 321 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_unpause (self);
+#line 1396 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_importing_photos (MetadataWriter* self, GeeCollection* media_sources) {
+ GeeHashSet* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 324 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media_sources));
+#line 325 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->importing_photos;
+#line 325 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = media_sources;
+#line 325 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1413 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_photos_imported (MetadataWriter* self, GeeCollection* media_sources) {
+ GeeHashSet* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 328 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 328 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media_sources));
+#line 329 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->importing_photos;
+#line 329 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = media_sources;
+#line 329 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1430 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_photos_added_removed (MetadataWriter* self, GeeIterable* added, GeeIterable* removed) {
+ gboolean _tmp0_ = FALSE;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterable* _tmp4_ = NULL;
+#line 332 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 332 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 332 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 335 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = added;
+#line 335 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp1_ != NULL) {
+#line 1448 "MetadataWriter.c"
+ gboolean _tmp2_ = FALSE;
+#line 335 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = self->priv->enabled;
+#line 335 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = _tmp2_;
+#line 1454 "MetadataWriter.c"
+ } else {
+#line 335 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = FALSE;
+#line 1458 "MetadataWriter.c"
+ }
+#line 335 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp0_) {
+#line 1462 "MetadataWriter.c"
+ GeeIterable* _tmp3_ = NULL;
+#line 336 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = added;
+#line 336 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_schedule_if_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable), "added to LibraryPhoto.global");
+#line 1468 "MetadataWriter.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = removed;
+#line 339 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp4_ != NULL) {
+#line 1474 "MetadataWriter.c"
+ gboolean cancelled = FALSE;
+ gboolean _tmp15_ = FALSE;
+#line 340 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ cancelled = FALSE;
+#line 1479 "MetadataWriter.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = removed;
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = gee_iterable_iterator (_tmp5_);
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _object_it = _tmp6_;
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 1492 "MetadataWriter.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ DataObject* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = _object_it;
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp8_) {
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 1509 "MetadataWriter.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = _object_it;
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ object = (DataObject*) _tmp10_;
+#line 342 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = object;
+#line 342 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = metadata_writer_cancel_job (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 342 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp13_) {
+#line 342 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = TRUE;
+#line 1525 "MetadataWriter.c"
+ } else {
+ gboolean _tmp14_ = FALSE;
+#line 342 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = cancelled;
+#line 342 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = _tmp14_;
+#line 1532 "MetadataWriter.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ cancelled = _tmp11_;
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (object);
+#line 1538 "MetadataWriter.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_object_it);
+#line 1542 "MetadataWriter.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = cancelled;
+#line 344 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp15_) {
+#line 1548 "MetadataWriter.c"
+ guint _tmp16_ = 0U;
+ guint _tmp17_ = 0U;
+#line 345 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = self->priv->outstanding_completed;
+#line 345 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = self->priv->outstanding_total;
+#line 345 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_emit_by_name (self, "progress", _tmp16_, _tmp17_);
+#line 1557 "MetadataWriter.c"
+ }
+ }
+}
+
+
+static void metadata_writer_on_photos_altered (MetadataWriter* self, GeeMap* items) {
+ GeeHashSet* photos = NULL;
+ GeeHashSet* _tmp39_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 349 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 350 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = NULL;
+#line 1572 "MetadataWriter.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = items;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = _tmp1_;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = _tmp2_;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = _tmp4_;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp3_);
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _object_it = _tmp5_;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 1599 "MetadataWriter.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataObject* _tmp10_ = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+ LibraryPhoto* _tmp12_ = NULL;
+ LibraryPhoto* _tmp13_ = NULL;
+ Alteration* alteration = NULL;
+ GeeMap* _tmp14_ = NULL;
+ DataObject* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ Alteration* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ GeeCollection* details = NULL;
+ Alteration* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = _object_it;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp7_) {
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 1628 "MetadataWriter.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = _object_it;
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ object = (DataObject*) _tmp9_;
+#line 352 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = object;
+#line 352 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 352 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = _tmp11_;
+#line 356 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = photo;
+#line 356 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = self->priv->ignore_photo_alteration;
+#line 356 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp12_ == _tmp13_) {
+#line 357 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 357 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (object);
+#line 357 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ continue;
+#line 1654 "MetadataWriter.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = items;
+#line 359 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = object;
+#line 359 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = gee_map_get (_tmp14_, _tmp15_);
+#line 359 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ alteration = (Alteration*) _tmp16_;
+#line 362 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = alteration;
+#line 362 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = alteration_has_detail (_tmp17_, "image", "orientation");
+#line 362 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp18_) {
+#line 1670 "MetadataWriter.c"
+ GeeHashSet* _tmp19_ = NULL;
+ GeeHashSet* _tmp21_ = NULL;
+ LibraryPhoto* _tmp22_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = photos;
+#line 363 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp19_ == NULL) {
+#line 1678 "MetadataWriter.c"
+ GeeHashSet* _tmp20_ = NULL;
+#line 364 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = gee_hash_set_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 364 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 364 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = _tmp20_;
+#line 1686 "MetadataWriter.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = photos;
+#line 366 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = photo;
+#line 366 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp22_);
+#line 368 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _alteration_unref0 (alteration);
+#line 368 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 368 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (object);
+#line 368 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ continue;
+#line 1702 "MetadataWriter.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = alteration;
+#line 372 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = alteration_get_details (_tmp23_, "metadata");
+#line 372 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ details = _tmp24_;
+#line 373 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = details;
+#line 373 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp25_ == NULL) {
+#line 374 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (details);
+#line 374 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _alteration_unref0 (alteration);
+#line 374 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 374 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (object);
+#line 374 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ continue;
+#line 1724 "MetadataWriter.c"
+ }
+ {
+ GeeIterator* _detail_it = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeIterator* _tmp27_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = details;
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _detail_it = _tmp27_;
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 1738 "MetadataWriter.c"
+ GeeIterator* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ gchar* detail = NULL;
+ GeeIterator* _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+ GeeHashSet* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = _detail_it;
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp29_ = gee_iterator_next (_tmp28_);
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp29_) {
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 1755 "MetadataWriter.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp30_ = _detail_it;
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp31_ = gee_iterator_get (_tmp30_);
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ detail = (gchar*) _tmp31_;
+#line 378 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp32_ = self->priv->interested_photo_details;
+#line 378 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp33_ = detail;
+#line 378 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp34_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp33_);
+#line 378 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp34_) {
+#line 1771 "MetadataWriter.c"
+ GeeHashSet* _tmp35_ = NULL;
+ GeeHashSet* _tmp37_ = NULL;
+ LibraryPhoto* _tmp38_ = NULL;
+#line 379 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp35_ = photos;
+#line 379 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp35_ == NULL) {
+#line 1779 "MetadataWriter.c"
+ GeeHashSet* _tmp36_ = NULL;
+#line 380 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp36_ = gee_hash_set_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 380 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 380 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = _tmp36_;
+#line 1787 "MetadataWriter.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp37_ = photos;
+#line 382 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp38_ = photo;
+#line 382 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp38_);
+#line 384 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (detail);
+#line 384 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 1799 "MetadataWriter.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (detail);
+#line 1803 "MetadataWriter.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_detail_it);
+#line 1807 "MetadataWriter.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (details);
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _alteration_unref0 (alteration);
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (object);
+#line 1817 "MetadataWriter.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_object_it);
+#line 1821 "MetadataWriter.c"
+ }
+#line 389 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp39_ = photos;
+#line 389 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp39_ != NULL) {
+#line 1827 "MetadataWriter.c"
+ GeeHashSet* _tmp40_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp40_ = photos;
+#line 390 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_photos_are_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_COLLECTION, GeeCollection), "alteration", FALSE);
+#line 1833 "MetadataWriter.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 1837 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_photos_destroyed (MetadataWriter* self, GeeCollection* destroyed) {
+#line 393 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 393 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (destroyed));
+#line 1846 "MetadataWriter.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = destroyed;
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _source_it = _tmp1_;
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 1859 "MetadataWriter.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ GeeHashSet* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = _source_it;
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp3_) {
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 1879 "MetadataWriter.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = _source_it;
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ source = (DataSource*) _tmp5_;
+#line 395 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = source;
+#line 395 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 395 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = _tmp7_;
+#line 396 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = photo;
+#line 396 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_cancel_job (self, _tmp8_);
+#line 397 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = self->priv->importing_photos;
+#line 397 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = photo;
+#line 397 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (source);
+#line 1907 "MetadataWriter.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_source_it);
+#line 1911 "MetadataWriter.c"
+ }
+}
+
+
+static void metadata_writer_on_tags_altered (MetadataWriter* self, GeeMap* map) {
+ GeeHashSet* photos = NULL;
+ GeeHashSet* _tmp32_ = NULL;
+#line 401 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 401 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 402 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = NULL;
+#line 1925 "MetadataWriter.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = map;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = _tmp1_;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = _tmp2_;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = _tmp4_;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp3_);
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _object_it = _tmp5_;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 1952 "MetadataWriter.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ Alteration* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ GeeHashSet* _tmp16_ = NULL;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = _object_it;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp7_) {
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 1973 "MetadataWriter.c"
+ }
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = _object_it;
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ object = (DataObject*) _tmp9_;
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = map;
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = object;
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = (Alteration*) _tmp12_;
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = alteration_has_detail (_tmp13_, "metadata", "name");
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = !_tmp14_;
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _alteration_unref0 (_tmp13_);
+#line 404 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp15_) {
+#line 405 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (object);
+#line 405 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ continue;
+#line 2001 "MetadataWriter.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = photos;
+#line 407 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp16_ == NULL) {
+#line 2007 "MetadataWriter.c"
+ GeeHashSet* _tmp17_ = NULL;
+#line 408 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = gee_hash_set_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 408 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 408 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = _tmp17_;
+#line 2015 "MetadataWriter.c"
+ }
+ {
+ GeeIterator* _media_it = NULL;
+ DataObject* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeCollection* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+ GeeIterator* _tmp22_ = NULL;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = object;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = tag_get_sources (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_TAG, Tag));
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = _tmp19_;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = _tmp21_;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp20_);
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _media_it = _tmp22_;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 2040 "MetadataWriter.c"
+ GeeIterator* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp25_ = NULL;
+ gpointer _tmp26_ = NULL;
+ LibraryPhoto* photo = NULL;
+ MediaSource* _tmp27_ = NULL;
+ LibraryPhoto* _tmp28_ = NULL;
+ LibraryPhoto* _tmp29_ = NULL;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = _media_it;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = gee_iterator_next (_tmp23_);
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp24_) {
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 2058 "MetadataWriter.c"
+ }
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = _media_it;
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = gee_iterator_get (_tmp25_);
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ media = (MediaSource*) _tmp26_;
+#line 411 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = media;
+#line 411 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp27_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp27_) : NULL);
+#line 411 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = _tmp28_;
+#line 412 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp29_ = photo;
+#line 412 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp29_ != NULL) {
+#line 2076 "MetadataWriter.c"
+ GeeHashSet* _tmp30_ = NULL;
+ LibraryPhoto* _tmp31_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp30_ = photos;
+#line 413 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp31_ = photo;
+#line 413 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp31_);
+#line 2085 "MetadataWriter.c"
+ }
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (media);
+#line 2091 "MetadataWriter.c"
+ }
+#line 410 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_media_it);
+#line 2095 "MetadataWriter.c"
+ }
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (object);
+#line 2099 "MetadataWriter.c"
+ }
+#line 403 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_object_it);
+#line 2103 "MetadataWriter.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp32_ = photos;
+#line 417 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp32_ != NULL) {
+#line 2109 "MetadataWriter.c"
+ GeeHashSet* _tmp33_ = NULL;
+#line 418 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp33_ = photos;
+#line 418 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_photos_are_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection), "tag renamed", FALSE);
+#line 2115 "MetadataWriter.c"
+ }
+#line 401 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 2119 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_tag_contents_altered (MetadataWriter* self, ContainerSource* container, GeeCollection* added, gboolean relinking, GeeCollection* removed, gboolean unlinking) {
+ Tag* tag = NULL;
+ ContainerSource* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeCollection* _tmp3_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ GeeCollection* _tmp28_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 421 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 421 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 421 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 423 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = container;
+#line 423 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag));
+#line 423 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ tag = _tmp1_;
+#line 425 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = added;
+#line 425 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp3_ != NULL) {
+#line 2149 "MetadataWriter.c"
+ gboolean _tmp4_ = FALSE;
+#line 425 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = relinking;
+#line 425 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = !_tmp4_;
+#line 2155 "MetadataWriter.c"
+ } else {
+#line 425 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = FALSE;
+#line 2159 "MetadataWriter.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp2_) {
+#line 2163 "MetadataWriter.c"
+ GeeArrayList* added_photos = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 426 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ added_photos = _tmp5_;
+#line 2176 "MetadataWriter.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = added;
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _source_it = _tmp7_;
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 2189 "MetadataWriter.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp12_ = NULL;
+ LibraryPhoto* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ LibraryPhoto* _tmp15_ = NULL;
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = _source_it;
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp9_) {
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 2208 "MetadataWriter.c"
+ }
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = _source_it;
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ source = (DataSource*) _tmp11_;
+#line 428 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = source;
+#line 428 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp12_) : NULL);
+#line 428 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = _tmp13_;
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = photo;
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp15_ != NULL) {
+#line 2226 "MetadataWriter.c"
+ GeeHashSet* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = self->priv->importing_photos;
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = photo;
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp17_);
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = !_tmp18_;
+#line 2238 "MetadataWriter.c"
+ } else {
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = FALSE;
+#line 2242 "MetadataWriter.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp14_) {
+#line 2246 "MetadataWriter.c"
+ GeeArrayList* _tmp19_ = NULL;
+ LibraryPhoto* _tmp20_ = NULL;
+#line 430 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = added_photos;
+#line 430 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = photo;
+#line 430 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp20_);
+#line 2255 "MetadataWriter.c"
+ }
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (source);
+#line 2261 "MetadataWriter.c"
+ }
+#line 427 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_source_it);
+#line 2265 "MetadataWriter.c"
+ }
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = added_photos;
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = tag;
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_OBJECT, DataObject));
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = _tmp23_;
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = g_strdup_printf ("added to %s", _tmp24_);
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = _tmp25_;
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_photos_are_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_COLLECTION, GeeCollection), _tmp26_, FALSE);
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp26_);
+#line 433 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp24_);
+#line 425 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (added_photos);
+#line 2287 "MetadataWriter.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = removed;
+#line 436 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp28_ != NULL) {
+#line 2293 "MetadataWriter.c"
+ gboolean _tmp29_ = FALSE;
+#line 436 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp29_ = unlinking;
+#line 436 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = !_tmp29_;
+#line 2299 "MetadataWriter.c"
+ } else {
+#line 436 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = FALSE;
+#line 2303 "MetadataWriter.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp27_) {
+#line 2307 "MetadataWriter.c"
+ GeeArrayList* removed_photos = NULL;
+ GeeArrayList* _tmp30_ = NULL;
+ GeeArrayList* _tmp42_ = NULL;
+ Tag* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+#line 437 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp30_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 437 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ removed_photos = _tmp30_;
+#line 2320 "MetadataWriter.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp31_ = NULL;
+ GeeIterator* _tmp32_ = NULL;
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp31_ = removed;
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp32_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _source_it = _tmp32_;
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 2333 "MetadataWriter.c"
+ GeeIterator* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp35_ = NULL;
+ gpointer _tmp36_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp37_ = NULL;
+ LibraryPhoto* _tmp38_ = NULL;
+ LibraryPhoto* _tmp39_ = NULL;
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp33_ = _source_it;
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp34_ = gee_iterator_next (_tmp33_);
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp34_) {
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 2351 "MetadataWriter.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp35_ = _source_it;
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp36_ = gee_iterator_get (_tmp35_);
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ source = (DataSource*) _tmp36_;
+#line 439 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp37_ = source;
+#line 439 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp38_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp37_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp37_) : NULL);
+#line 439 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = _tmp38_;
+#line 440 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp39_ = photo;
+#line 440 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp39_ != NULL) {
+#line 2369 "MetadataWriter.c"
+ GeeArrayList* _tmp40_ = NULL;
+ LibraryPhoto* _tmp41_ = NULL;
+#line 441 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp40_ = removed_photos;
+#line 441 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp41_ = photo;
+#line 441 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp41_);
+#line 2378 "MetadataWriter.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (source);
+#line 2384 "MetadataWriter.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_source_it);
+#line 2388 "MetadataWriter.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp42_ = removed_photos;
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp43_ = tag;
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp44_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_DATA_OBJECT, DataObject));
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp45_ = _tmp44_;
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp46_ = g_strdup_printf ("removed from %s", _tmp45_);
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp47_ = _tmp46_;
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_photos_are_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_COLLECTION, GeeCollection), _tmp47_, FALSE);
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp47_);
+#line 444 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp45_);
+#line 436 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (removed_photos);
+#line 2410 "MetadataWriter.c"
+ }
+#line 421 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (tag);
+#line 2414 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_tag_backlink_removed (MetadataWriter* self, ContainerSource* container, GeeCollection* sources) {
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ ContainerSource* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 448 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 448 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 449 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 449 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = _tmp0_;
+#line 2437 "MetadataWriter.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = sources;
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _source_it = _tmp2_;
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 2450 "MetadataWriter.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = _source_it;
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp4_) {
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 2468 "MetadataWriter.c"
+ }
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = _source_it;
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ source = (DataSource*) _tmp6_;
+#line 451 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = source;
+#line 451 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp7_) : NULL);
+#line 451 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = _tmp8_;
+#line 452 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = photo;
+#line 452 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp9_ != NULL) {
+#line 2486 "MetadataWriter.c"
+ GeeArrayList* _tmp10_ = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+#line 453 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = photos;
+#line 453 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = photo;
+#line 453 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp11_);
+#line 2495 "MetadataWriter.c"
+ }
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (source);
+#line 2501 "MetadataWriter.c"
+ }
+#line 450 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_source_it);
+#line 2505 "MetadataWriter.c"
+ }
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = photos;
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = container;
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_OBJECT, DataObject));
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = _tmp14_;
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = g_strdup_printf ("backlink removed from %s", _tmp15_);
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = _tmp16_;
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_photos_are_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp17_, FALSE);
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp17_);
+#line 456 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp15_);
+#line 448 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 2527 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_count_enqueued_work (MetadataWriter* self, gint count, gboolean report) {
+ guint _tmp0_ = 0U;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 459 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 460 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->outstanding_total;
+#line 460 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = count;
+#line 460 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_total = _tmp0_ + _tmp1_;
+#line 466 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = report;
+#line 466 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp2_) {
+#line 2547 "MetadataWriter.c"
+ guint _tmp3_ = 0U;
+ guint _tmp4_ = 0U;
+#line 467 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = self->priv->outstanding_completed;
+#line 467 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = self->priv->outstanding_total;
+#line 467 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_emit_by_name (self, "progress", _tmp3_, _tmp4_);
+#line 2556 "MetadataWriter.c"
+ }
+}
+
+
+static void metadata_writer_count_cancelled_work (MetadataWriter* self, gint count, gboolean report) {
+ guint _tmp0_ = 0U;
+ guint _tmp1_ = 0U;
+ gint _tmp2_ = 0;
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+ gboolean _tmp7_ = FALSE;
+#line 470 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = self->priv->outstanding_total;
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = count;
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp1_ >= ((guint) _tmp2_)) {
+#line 2576 "MetadataWriter.c"
+ guint _tmp3_ = 0U;
+ gint _tmp4_ = 0;
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = self->priv->outstanding_total;
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = count;
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = _tmp3_ - _tmp4_;
+#line 2585 "MetadataWriter.c"
+ } else {
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = (guint) 0;
+#line 2589 "MetadataWriter.c"
+ }
+#line 471 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_total = _tmp0_;
+#line 472 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = self->priv->outstanding_completed;
+#line 472 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = self->priv->outstanding_total;
+#line 472 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp5_ >= _tmp6_) {
+#line 473 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_completed = (guint) 0;
+#line 474 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_total = (guint) 0;
+#line 2603 "MetadataWriter.c"
+ }
+#line 481 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = report;
+#line 481 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp7_) {
+#line 2609 "MetadataWriter.c"
+ guint _tmp8_ = 0U;
+ guint _tmp9_ = 0U;
+#line 482 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = self->priv->outstanding_completed;
+#line 482 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = self->priv->outstanding_total;
+#line 482 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_emit_by_name (self, "progress", _tmp8_, _tmp9_);
+#line 2618 "MetadataWriter.c"
+ }
+}
+
+
+static void metadata_writer_count_completed_work (MetadataWriter* self, gint count, gboolean report) {
+ guint _tmp0_ = 0U;
+ gint _tmp1_ = 0;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ gboolean _tmp4_ = FALSE;
+#line 485 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 486 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->outstanding_completed;
+#line 486 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = count;
+#line 486 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_completed = _tmp0_ + _tmp1_;
+#line 487 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = self->priv->outstanding_completed;
+#line 487 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = self->priv->outstanding_total;
+#line 487 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp2_ >= _tmp3_) {
+#line 488 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_completed = (guint) 0;
+#line 489 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_total = (guint) 0;
+#line 2647 "MetadataWriter.c"
+ }
+#line 496 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = report;
+#line 496 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp4_) {
+#line 2653 "MetadataWriter.c"
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+#line 497 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = self->priv->outstanding_completed;
+#line 497 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = self->priv->outstanding_total;
+#line 497 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_emit_by_name (self, "progress", _tmp5_, _tmp6_);
+#line 2662 "MetadataWriter.c"
+ }
+}
+
+
+static void metadata_writer_schedule_if_dirty (MetadataWriter* self, GeeIterable* media_sources, const gchar* reason) {
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+#line 500 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 500 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (media_sources));
+#line 500 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (reason != NULL);
+#line 501 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = NULL;
+#line 2678 "MetadataWriter.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = media_sources;
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _media_it = _tmp1_;
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 2691 "MetadataWriter.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ LibraryPhoto* photo = NULL;
+ MediaSource* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ GeeHashSet* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ LibraryPhoto* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = _media_it;
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp3_) {
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 2714 "MetadataWriter.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = _media_it;
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ media = (MediaSource*) _tmp5_;
+#line 503 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = media;
+#line 503 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp6_) : NULL);
+#line 503 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = _tmp7_;
+#line 504 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = photo;
+#line 504 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp8_ == NULL) {
+#line 505 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 505 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (media);
+#line 505 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ continue;
+#line 2738 "MetadataWriter.c"
+ }
+#line 508 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = self->priv->importing_photos;
+#line 508 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = photo;
+#line 508 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 508 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp11_) {
+#line 509 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 509 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (media);
+#line 509 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ continue;
+#line 2754 "MetadataWriter.c"
+ }
+#line 511 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = photo;
+#line 511 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = photo_is_master_metadata_dirty (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO, Photo));
+#line 511 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp13_) {
+#line 2762 "MetadataWriter.c"
+ GeeArrayList* _tmp14_ = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+#line 512 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = photos;
+#line 512 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp14_ == NULL) {
+#line 2770 "MetadataWriter.c"
+ GeeArrayList* _tmp15_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 513 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 513 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photos = _tmp15_;
+#line 2778 "MetadataWriter.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = photos;
+#line 515 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = photo;
+#line 515 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp17_);
+#line 2786 "MetadataWriter.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (media);
+#line 2792 "MetadataWriter.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_media_it);
+#line 2796 "MetadataWriter.c"
+ }
+#line 519 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = photos;
+#line 519 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp18_ != NULL) {
+#line 2802 "MetadataWriter.c"
+ GeeArrayList* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = photos;
+#line 520 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = reason;
+#line 520 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_photos_are_dirty (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection), _tmp20_, TRUE);
+#line 2811 "MetadataWriter.c"
+ }
+#line 500 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photos);
+#line 2815 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_photos_are_dirty (MetadataWriter* self, GeeCollection* photos, const gchar* reason, gboolean already_marked) {
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ GeeCollection* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ GError * _inner_error_ = NULL;
+#line 524 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 524 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (photos));
+#line 524 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (reason != NULL);
+#line 525 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = photos;
+#line 525 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 525 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = _tmp1_;
+#line 525 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp2_ == 0) {
+#line 526 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 2846 "MetadataWriter.c"
+ }
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = photos;
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _photo_it = _tmp4_;
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 2860 "MetadataWriter.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = _photo_it;
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp6_) {
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 2875 "MetadataWriter.c"
+ }
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = _photo_it;
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = (LibraryPhoto*) _tmp8_;
+#line 530 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = photo;
+#line 530 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_cancel_job (self, _tmp9_);
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 2889 "MetadataWriter.c"
+ }
+#line 529 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_photo_it);
+#line 2893 "MetadataWriter.c"
+ }
+#line 533 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = already_marked;
+#line 533 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp10_) {
+#line 2899 "MetadataWriter.c"
+ {
+ LibraryPhotoSourceCollection* _tmp11_ = NULL;
+ TransactionController* _tmp12_ = NULL;
+ TransactionController* _tmp13_ = NULL;
+ LibraryPhotoSourceCollection* _tmp21_ = NULL;
+ TransactionController* _tmp22_ = NULL;
+ TransactionController* _tmp23_ = NULL;
+#line 535 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = library_photo_global;
+#line 535 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 535 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = _tmp12_;
+#line 535 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ transaction_controller_begin (_tmp13_);
+#line 2915 "MetadataWriter.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = photos;
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _photo_it = _tmp15_;
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 2928 "MetadataWriter.c"
+ GeeIterator* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ LibraryPhoto* _tmp20_ = NULL;
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = _photo_it;
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = gee_iterator_next (_tmp16_);
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp17_) {
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 2943 "MetadataWriter.c"
+ }
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = _photo_it;
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = (LibraryPhoto*) _tmp19_;
+#line 538 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = photo;
+#line 538 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_set_master_metadata_dirty (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_PHOTO, Photo), TRUE, &_inner_error_);
+#line 538 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 538 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 538 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_photo_it);
+#line 2961 "MetadataWriter.c"
+ goto __catch541_g_error;
+ }
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 2966 "MetadataWriter.c"
+ }
+#line 537 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_photo_it);
+#line 2970 "MetadataWriter.c"
+ }
+#line 540 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = library_photo_global;
+#line 540 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 540 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = _tmp22_;
+#line 540 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ transaction_controller_commit (_tmp23_);
+#line 2980 "MetadataWriter.c"
+ }
+ goto __finally541;
+ __catch541_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp24_ = NULL;
+#line 534 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ err = _inner_error_;
+#line 534 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _inner_error_ = NULL;
+#line 542 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = err;
+#line 542 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp24_->domain == DATABASE_ERROR) {
+#line 2995 "MetadataWriter.c"
+ GError* _tmp25_ = NULL;
+#line 543 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = err;
+#line 543 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ app_window_database_error ((GError*) _tmp25_);
+#line 3001 "MetadataWriter.c"
+ } else {
+ GError* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 545 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = err;
+#line 545 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = _tmp26_->message;
+#line 545 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_error ("MetadataWriter.vala:545: Unable to mark metadata as dirty: %s", _tmp27_);
+#line 3011 "MetadataWriter.c"
+ }
+#line 534 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_error_free0 (err);
+#line 3015 "MetadataWriter.c"
+ }
+ __finally541:
+#line 534 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 534 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 534 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_clear_error (&_inner_error_);
+#line 534 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3026 "MetadataWriter.c"
+ }
+ }
+#line 551 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp29_ = self->priv->closed;
+#line 551 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp29_) {
+#line 551 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = TRUE;
+#line 3035 "MetadataWriter.c"
+ } else {
+ gboolean _tmp30_ = FALSE;
+#line 551 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp30_ = self->priv->enabled;
+#line 551 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = !_tmp30_;
+#line 3042 "MetadataWriter.c"
+ }
+#line 551 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp28_) {
+#line 552 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3048 "MetadataWriter.c"
+ }
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp31_ = NULL;
+ GeeIterator* _tmp32_ = NULL;
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp31_ = photos;
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp32_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _photo_it = _tmp32_;
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 3062 "MetadataWriter.c"
+ GeeIterator* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ GeeIterator* _tmp35_ = NULL;
+ gpointer _tmp36_ = NULL;
+ gboolean enqueued = FALSE;
+ HashTimedQueue* _tmp37_ = NULL;
+ LibraryPhoto* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+ gboolean _tmp40_ = FALSE;
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp33_ = _photo_it;
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp34_ = gee_iterator_next (_tmp33_);
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp34_) {
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 3081 "MetadataWriter.c"
+ }
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp35_ = _photo_it;
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp36_ = gee_iterator_get (_tmp35_);
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo = (LibraryPhoto*) _tmp36_;
+#line 559 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp37_ = self->priv->dirty;
+#line 559 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp38_ = photo;
+#line 559 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp39_ = timed_queue_enqueue (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, TYPE_TIMED_QUEUE, TimedQueue), _tmp38_);
+#line 559 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ enqueued = _tmp39_;
+#line 560 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp40_ = enqueued;
+#line 560 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp40_, "enqueued");
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (photo);
+#line 3103 "MetadataWriter.c"
+ }
+#line 558 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_photo_it);
+#line 3107 "MetadataWriter.c"
+ }
+#line 563 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp41_ = photos;
+#line 563 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp42_ = gee_collection_get_size (_tmp41_);
+#line 563 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp43_ = _tmp42_;
+#line 563 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_count_enqueued_work (self, _tmp43_, TRUE);
+#line 3117 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_cancel_all (MetadataWriter* self, gboolean wait) {
+ HashTimedQueue* _tmp0_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 566 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 567 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->dirty;
+#line 567 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ timed_queue_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TIMED_QUEUE, TimedQueue));
+#line 3130 "MetadataWriter.c"
+ {
+ GeeIterator* _job_it = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = self->priv->pending;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MAP, GeeMap));
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = _tmp2_;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = _tmp3_;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = _tmp5_;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp4_);
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _job_it = _tmp6_;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 3157 "MetadataWriter.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ MetadataWriterCommitJob* job = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ MetadataWriterCommitJob* _tmp11_ = NULL;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = _job_it;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp8_) {
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 3172 "MetadataWriter.c"
+ }
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = _job_it;
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ job = (MetadataWriterCommitJob*) _tmp10_;
+#line 570 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = job;
+#line 570 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 3186 "MetadataWriter.c"
+ }
+#line 569 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_job_it);
+#line 3190 "MetadataWriter.c"
+ }
+#line 572 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = wait;
+#line 572 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp12_) {
+#line 3196 "MetadataWriter.c"
+ Workers* _tmp13_ = NULL;
+#line 573 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = self->priv->workers;
+#line 573 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ workers_wait_for_empty_queue (_tmp13_);
+#line 3202 "MetadataWriter.c"
+ }
+#line 575 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_count_cancelled_work (self, G_MAXINT, TRUE);
+#line 3206 "MetadataWriter.c"
+}
+
+
+static gboolean metadata_writer_cancel_job (MetadataWriter* self, LibraryPhoto* photo) {
+ gboolean result = FALSE;
+ gboolean cancelled = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ HashTimedQueue* _tmp11_ = NULL;
+ LibraryPhoto* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 578 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_val_if_fail (IS_METADATA_WRITER (self), FALSE);
+#line 578 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), FALSE);
+#line 579 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ cancelled = FALSE;
+#line 581 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->pending;
+#line 581 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = photo;
+#line 581 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 581 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp2_) {
+#line 3233 "MetadataWriter.c"
+ MetadataWriterCommitJob* j = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ MetadataWriterCommitJob* _tmp7_ = NULL;
+ MetadataWriterCommitJob* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+#line 582 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = self->priv->pending;
+#line 582 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = photo;
+#line 582 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 582 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ j = G_TYPE_CHECK_INSTANCE_CAST ((MetadataWriterCommitJob*) _tmp5_, METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJob);
+#line 583 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = self->priv->pending_cancel;
+#line 583 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = j;
+#line 583 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp7_);
+#line 584 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = j;
+#line 584 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 585 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = self->priv->pending;
+#line 585 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = photo;
+#line 585 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_, NULL);
+#line 586 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ cancelled = TRUE;
+#line 581 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (j);
+#line 3271 "MetadataWriter.c"
+ }
+#line 589 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = self->priv->dirty;
+#line 589 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = photo;
+#line 589 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = timed_queue_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_TIMED_QUEUE, TimedQueue), _tmp12_);
+#line 589 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp13_) {
+#line 3281 "MetadataWriter.c"
+ gboolean removed = FALSE;
+ HashTimedQueue* _tmp14_ = NULL;
+ LibraryPhoto* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+ HashTimedQueue* _tmp18_ = NULL;
+ LibraryPhoto* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 590 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = self->priv->dirty;
+#line 590 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = photo;
+#line 590 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = timed_queue_remove_first (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_TIMED_QUEUE, TimedQueue), _tmp15_);
+#line 590 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ removed = _tmp16_;
+#line 591 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = removed;
+#line 591 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp17_, "removed");
+#line 593 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = self->priv->dirty;
+#line 593 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = photo;
+#line 593 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = timed_queue_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_TIMED_QUEUE, TimedQueue), _tmp19_);
+#line 593 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (!_tmp20_, "!dirty.contains(photo)");
+#line 595 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_count_cancelled_work (self, 1, FALSE);
+#line 596 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ cancelled = TRUE;
+#line 3314 "MetadataWriter.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ result = cancelled;
+#line 599 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return result;
+#line 3320 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_photo_dequeued (MetadataWriter* self, LibraryPhoto* photo) {
+ gboolean _tmp0_ = FALSE;
+ GeeSet* keywords = NULL;
+ GeeCollection* tags = NULL;
+ TagSourceCollection* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeHashMap* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ MetadataWriterCommitJob* job = NULL;
+ LibraryPhoto* _tmp20_ = NULL;
+ GeeSet* _tmp21_ = NULL;
+ MetadataWriterCommitJob* _tmp22_ = NULL;
+ GeeHashMap* _tmp23_ = NULL;
+ LibraryPhoto* _tmp24_ = NULL;
+ MetadataWriterCommitJob* _tmp25_ = NULL;
+ Workers* _tmp26_ = NULL;
+ MetadataWriterCommitJob* _tmp27_ = NULL;
+#line 602 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 602 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 603 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->enabled;
+#line 603 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp0_) {
+#line 604 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_count_cancelled_work (self, 1, TRUE);
+#line 606 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3356 "MetadataWriter.c"
+ }
+#line 609 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ keywords = NULL;
+#line 610 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = tag_global;
+#line 610 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = photo;
+#line 610 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = tag_source_collection_fetch_for_source (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 610 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 611 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = tags;
+#line 611 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp4_ != NULL) {
+#line 3372 "MetadataWriter.c"
+ GeeHashSet* _tmp5_ = NULL;
+#line 612 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 612 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (keywords);
+#line 612 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ keywords = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_SET, GeeSet);
+#line 3380 "MetadataWriter.c"
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = tags;
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tag_it = _tmp7_;
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 3393 "MetadataWriter.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ GeeSet* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = _tag_it;
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp9_) {
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 3411 "MetadataWriter.c"
+ }
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = _tag_it;
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ tag = (Tag*) _tmp11_;
+#line 614 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = keywords;
+#line 614 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = tag;
+#line 614 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_OBJECT, DataObject));
+#line 614 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = _tmp14_;
+#line 614 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 614 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp15_);
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (tag);
+#line 3433 "MetadataWriter.c"
+ }
+#line 613 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tag_it);
+#line 3437 "MetadataWriter.c"
+ }
+ }
+#line 618 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = self->priv->pending;
+#line 618 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = photo;
+#line 618 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp17_);
+#line 618 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp18_) {
+#line 3448 "MetadataWriter.c"
+ LibraryPhoto* _tmp19_ = NULL;
+#line 619 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = photo;
+#line 619 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_cancel_job (self, _tmp19_);
+#line 3454 "MetadataWriter.c"
+ }
+#line 621 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = photo;
+#line 621 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = keywords;
+#line 621 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = metadata_writer_commit_job_new (self, _tmp20_, _tmp21_);
+#line 621 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ job = _tmp22_;
+#line 622 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = self->priv->pending;
+#line 622 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = photo;
+#line 622 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = job;
+#line 622 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_, _tmp25_);
+#line 628 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = self->priv->workers;
+#line 628 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = job;
+#line 628 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ workers_enqueue (_tmp26_, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 602 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 602 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (tags);
+#line 602 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (keywords);
+#line 3484 "MetadataWriter.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 632 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 3491 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_update_completed (MetadataWriter* self, BackgroundJob* j) {
+ MetadataWriterCommitJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ MetadataWriterCommitJob* _tmp1_ = NULL;
+ MetadataWriterCommitJob* _tmp2_ = NULL;
+ GError* _tmp3_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp44_ = NULL;
+ MetadataWriterCommitJob* _tmp45_ = NULL;
+ LibraryPhoto* _tmp46_ = NULL;
+ gboolean _tmp47_ = FALSE;
+ gboolean _tmp48_ = FALSE;
+ LibraryPhotoSourceCollection* _tmp49_ = NULL;
+ TransactionController* _tmp50_ = NULL;
+ TransactionController* _tmp51_ = NULL;
+ gboolean _tmp52_ = FALSE;
+ MetadataWriterCommitJob* _tmp53_ = NULL;
+ PhotoReimportMasterState* _tmp54_ = NULL;
+ LibraryPhotoSourceCollection* _tmp86_ = NULL;
+ TransactionController* _tmp87_ = NULL;
+ TransactionController* _tmp88_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 631 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 631 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 632 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = j;
+#line 632 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJob));
+#line 632 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ job = _tmp1_;
+#line 634 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = job;
+#line 634 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = _tmp2_->err;
+#line 634 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp3_ != NULL) {
+#line 3533 "MetadataWriter.c"
+ MetadataWriterCommitJob* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ MetadataWriterCommitJob* _tmp8_ = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = job;
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = _tmp4_->photo;
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = _tmp6_;
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = job;
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = _tmp8_->err;
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = _tmp9_->message;
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_warning ("MetadataWriter.vala:635: Unable to write metadata to %s: %s", _tmp7_, _tmp10_);
+#line 635 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp7_);
+#line 3559 "MetadataWriter.c"
+ } else {
+ MetadataWriterCommitJob* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ MetadataWriterCommitJob* _tmp25_ = NULL;
+ LibraryPhoto* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 637 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = job;
+#line 637 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = _tmp11_->wrote_master;
+#line 637 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp12_) {
+#line 3574 "MetadataWriter.c"
+ MetadataWriterCommitJob* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = job;
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = _tmp13_->photo;
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = _tmp15_;
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = _tmp17_;
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_message ("MetadataWriter.vala:638: Completed writing metadata to %s", _tmp18_);
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp18_);
+#line 638 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp16_);
+#line 3599 "MetadataWriter.c"
+ } else {
+ MetadataWriterCommitJob* _tmp19_ = NULL;
+ LibraryPhoto* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = job;
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = _tmp19_->photo;
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = _tmp21_;
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = g_file_get_path (_tmp22_);
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = _tmp23_;
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_message ("MetadataWriter.vala:640: Unable to write metadata to %s", _tmp24_);
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp24_);
+#line 640 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp22_);
+#line 3625 "MetadataWriter.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = job;
+#line 642 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = _tmp25_->photo;
+#line 642 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_PHOTO, Photo));
+#line 642 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = _tmp27_;
+#line 642 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp29_ = _tmp28_ != NULL;
+#line 642 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp28_);
+#line 642 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp29_) {
+#line 3641 "MetadataWriter.c"
+ MetadataWriterCommitJob* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp30_ = job;
+#line 643 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp31_ = _tmp30_->wrote_editable;
+#line 643 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp31_) {
+#line 3650 "MetadataWriter.c"
+ MetadataWriterCommitJob* _tmp32_ = NULL;
+ LibraryPhoto* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp32_ = job;
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp33_ = _tmp32_->photo;
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp34_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_PHOTO, Photo));
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp35_ = _tmp34_;
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp36_ = g_file_get_path (_tmp35_);
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp37_ = _tmp36_;
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_message ("MetadataWriter.vala:644: Completed writing metadata to %s", _tmp37_);
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp37_);
+#line 644 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp35_);
+#line 3675 "MetadataWriter.c"
+ } else {
+ MetadataWriterCommitJob* _tmp38_ = NULL;
+ LibraryPhoto* _tmp39_ = NULL;
+ GFile* _tmp40_ = NULL;
+ GFile* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp38_ = job;
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp39_ = _tmp38_->photo;
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp40_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_PHOTO, Photo));
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp41_ = _tmp40_;
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp42_ = g_file_get_path (_tmp41_);
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp43_ = _tmp42_;
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_message ("MetadataWriter.vala:646: Unable to write metadata to %s", _tmp43_);
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp43_);
+#line 646 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp41_);
+#line 3701 "MetadataWriter.c"
+ }
+ }
+ }
+#line 650 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp44_ = self->priv->pending;
+#line 650 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp45_ = job;
+#line 650 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp46_ = _tmp45_->photo;
+#line 650 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp47_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp46_, NULL);
+#line 650 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ removed = _tmp47_;
+#line 651 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp48_ = removed;
+#line 651 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp48_, "removed");
+#line 655 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp49_ = library_photo_global;
+#line 655 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp50_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 655 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp51_ = _tmp50_;
+#line 655 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ transaction_controller_begin (_tmp51_);
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp53_ = job;
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp54_ = _tmp53_->reimport_master_state;
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp54_ != NULL) {
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp52_ = TRUE;
+#line 3735 "MetadataWriter.c"
+ } else {
+ MetadataWriterCommitJob* _tmp55_ = NULL;
+ PhotoReimportEditableState* _tmp56_ = NULL;
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp55_ = job;
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp56_ = _tmp55_->reimport_editable_state;
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp52_ = _tmp56_ != NULL;
+#line 3745 "MetadataWriter.c"
+ }
+#line 657 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp52_) {
+#line 3749 "MetadataWriter.c"
+ LibraryPhoto* _tmp57_ = NULL;
+ MetadataWriterCommitJob* _tmp58_ = NULL;
+ LibraryPhoto* _tmp59_ = NULL;
+ LibraryPhoto* _tmp60_ = NULL;
+#line 660 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp57_ = self->priv->ignore_photo_alteration;
+#line 660 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp57_ == NULL, "ignore_photo_alteration == null");
+#line 661 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp58_ = job;
+#line 661 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp59_ = _tmp58_->photo;
+#line 661 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp60_ = _g_object_ref0 (_tmp59_);
+#line 661 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->ignore_photo_alteration);
+#line 661 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->ignore_photo_alteration = _tmp60_;
+#line 3768 "MetadataWriter.c"
+ {
+ MetadataWriterCommitJob* _tmp61_ = NULL;
+ PhotoReimportMasterState* _tmp62_ = NULL;
+ MetadataWriterCommitJob* _tmp70_ = NULL;
+ PhotoReimportEditableState* _tmp71_ = NULL;
+#line 663 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp61_ = job;
+#line 663 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp62_ = _tmp61_->reimport_master_state;
+#line 663 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp62_ != NULL) {
+#line 3780 "MetadataWriter.c"
+ MetadataWriterCommitJob* _tmp63_ = NULL;
+ LibraryPhoto* _tmp64_ = NULL;
+ MetadataWriterCommitJob* _tmp65_ = NULL;
+ PhotoReimportMasterState* _tmp66_ = NULL;
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp63_ = job;
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp64_ = _tmp63_->photo;
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp65_ = job;
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp66_ = _tmp65_->reimport_master_state;
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_finish_update_master_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, TYPE_PHOTO, Photo), _tmp66_, &_inner_error_);
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3799 "MetadataWriter.c"
+ goto __catch542_database_error;
+ }
+ {
+ LibraryPhoto* _tmp67_ = NULL;
+ MetadataWriterCommitJob* _tmp68_ = NULL;
+ LibraryPhoto* _tmp69_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp67_ = self->priv->ignore_photo_alteration;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp68_ = job;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp69_ = _tmp68_->photo;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp67_ == _tmp69_, "ignore_photo_alteration == job.photo");
+#line 673 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->ignore_photo_alteration);
+#line 673 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->ignore_photo_alteration = NULL;
+#line 3818 "MetadataWriter.c"
+ }
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_clear_error (&_inner_error_);
+#line 664 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3828 "MetadataWriter.c"
+ }
+ }
+#line 666 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp70_ = job;
+#line 666 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp71_ = _tmp70_->reimport_editable_state;
+#line 666 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp71_ != NULL) {
+#line 3837 "MetadataWriter.c"
+ MetadataWriterCommitJob* _tmp72_ = NULL;
+ LibraryPhoto* _tmp73_ = NULL;
+ MetadataWriterCommitJob* _tmp74_ = NULL;
+ PhotoReimportEditableState* _tmp75_ = NULL;
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp72_ = job;
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp73_ = _tmp72_->photo;
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp74_ = job;
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp75_ = _tmp74_->reimport_editable_state;
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_finish_update_editable_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, TYPE_PHOTO, Photo), _tmp75_, &_inner_error_);
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3856 "MetadataWriter.c"
+ goto __catch542_database_error;
+ }
+ {
+ LibraryPhoto* _tmp76_ = NULL;
+ MetadataWriterCommitJob* _tmp77_ = NULL;
+ LibraryPhoto* _tmp78_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp76_ = self->priv->ignore_photo_alteration;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp77_ = job;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp78_ = _tmp77_->photo;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp76_ == _tmp78_, "ignore_photo_alteration == job.photo");
+#line 673 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->ignore_photo_alteration);
+#line 673 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->ignore_photo_alteration = NULL;
+#line 3875 "MetadataWriter.c"
+ }
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_clear_error (&_inner_error_);
+#line 667 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3885 "MetadataWriter.c"
+ }
+ }
+ }
+ goto __finally542;
+ __catch542_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp79_ = NULL;
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ err = _inner_error_;
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _inner_error_ = NULL;
+#line 669 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp79_ = err;
+#line 669 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ app_window_database_error (_tmp79_);
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_error_free0 (err);
+#line 3904 "MetadataWriter.c"
+ }
+ __finally542:
+ {
+ LibraryPhoto* _tmp80_ = NULL;
+ MetadataWriterCommitJob* _tmp81_ = NULL;
+ LibraryPhoto* _tmp82_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp80_ = self->priv->ignore_photo_alteration;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp81_ = job;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp82_ = _tmp81_->photo;
+#line 672 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp80_ == _tmp82_, "ignore_photo_alteration == job.photo");
+#line 673 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->ignore_photo_alteration);
+#line 673 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->ignore_photo_alteration = NULL;
+#line 3923 "MetadataWriter.c"
+ }
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_clear_error (&_inner_error_);
+#line 662 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3935 "MetadataWriter.c"
+ }
+ } else {
+ }
+ {
+ MetadataWriterCommitJob* _tmp83_ = NULL;
+ LibraryPhoto* _tmp84_ = NULL;
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp83_ = job;
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp84_ = _tmp83_->photo;
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_set_master_metadata_dirty (G_TYPE_CHECK_INSTANCE_CAST (_tmp84_, TYPE_PHOTO, Photo), FALSE, &_inner_error_);
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3952 "MetadataWriter.c"
+ goto __catch543_database_error;
+ }
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_clear_error (&_inner_error_);
+#line 683 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3963 "MetadataWriter.c"
+ }
+ }
+ goto __finally543;
+ __catch543_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp85_ = NULL;
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ err = _inner_error_;
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _inner_error_ = NULL;
+#line 685 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp85_ = err;
+#line 685 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ app_window_database_error (_tmp85_);
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_error_free0 (err);
+#line 3981 "MetadataWriter.c"
+ }
+ __finally543:
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_clear_error (&_inner_error_);
+#line 682 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 3994 "MetadataWriter.c"
+ }
+#line 688 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp86_ = library_photo_global;
+#line 688 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp87_ = media_source_collection_get_transaction_controller (G_TYPE_CHECK_INSTANCE_CAST (_tmp86_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 688 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp88_ = _tmp87_;
+#line 688 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ transaction_controller_commit (_tmp88_);
+#line 690 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_count_completed_work (self, 1, TRUE);
+#line 631 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _background_job_unref0 (job);
+#line 4008 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_on_update_cancelled (MetadataWriter* self, BackgroundJob* j) {
+ gboolean removed = FALSE;
+ GeeHashSet* _tmp0_ = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 693 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_METADATA_WRITER (self));
+#line 693 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 694 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->priv->pending_cancel;
+#line 694 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = j;
+#line 694 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJob));
+#line 694 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ removed = _tmp2_;
+#line 695 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (removed, "removed");
+#line 697 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_count_cancelled_work (self, 1, TRUE);
+#line 4033 "MetadataWriter.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer data1, guint arg_1, guint arg_2, gpointer data2);
+ register GMarshalFunc_VOID__UINT_UINT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ data1 = closure->data;
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 4052 "MetadataWriter.c"
+ } else {
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ data2 = closure->data;
+#line 4058 "MetadataWriter.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ callback (data1, g_value_get_uint (param_values + 1), g_value_get_uint (param_values + 2), data2);
+#line 4064 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_update_completed_completion_callback (BackgroundJob* job, gpointer self) {
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_update_completed ((MetadataWriter*) self, job);
+#line 4071 "MetadataWriter.c"
+}
+
+
+static void _metadata_writer_on_update_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_on_update_cancelled ((MetadataWriter*) self, job);
+#line 4078 "MetadataWriter.c"
+}
+
+
+static MetadataWriterCommitJob* metadata_writer_commit_job_construct (GType object_type, MetadataWriter* owner, LibraryPhoto* photo, GeeSet* keywords) {
+ MetadataWriterCommitJob* self = NULL;
+ MetadataWriter* _tmp0_ = NULL;
+ MetadataWriter* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ MetadataWriter* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ LibraryPhoto* _tmp6_ = NULL;
+ GeeSet* _tmp7_ = NULL;
+ GeeSet* _tmp8_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_val_if_fail (IS_METADATA_WRITER (owner), NULL);
+#line 29 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 29 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_val_if_fail ((keywords == NULL) || GEE_IS_SET (keywords), NULL);
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = owner;
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = owner;
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = g_cancellable_new ();
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = _tmp2_;
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = owner;
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self = (MetadataWriterCommitJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _metadata_writer_on_update_completed_completion_callback, _tmp1_, _tmp3_, _metadata_writer_on_update_cancelled_cancellation_callback, _tmp4_, NULL);
+#line 30 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp3_);
+#line 32 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = photo;
+#line 32 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 32 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->photo);
+#line 32 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->photo = _tmp6_;
+#line 33 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = keywords;
+#line 33 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 33 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->current_keywords);
+#line 33 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->current_keywords = _tmp8_;
+#line 29 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return self;
+#line 4131 "MetadataWriter.c"
+}
+
+
+static MetadataWriterCommitJob* metadata_writer_commit_job_new (MetadataWriter* owner, LibraryPhoto* photo, GeeSet* keywords) {
+#line 29 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return metadata_writer_commit_job_construct (METADATA_WRITER_TYPE_COMMIT_JOB, owner, photo, keywords);
+#line 4138 "MetadataWriter.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 4145 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_commit_job_real_execute (BackgroundJob* base) {
+ MetadataWriterCommitJob * self;
+ GError * _inner_error_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJob);
+#line 4154 "MetadataWriter.c"
+ {
+#line 38 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_commit_job_commit_master (self, &_inner_error_);
+#line 38 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4160 "MetadataWriter.c"
+ goto __catch544_g_error;
+ }
+#line 39 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_commit_job_commit_editable (self, &_inner_error_);
+#line 39 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4167 "MetadataWriter.c"
+ goto __catch544_g_error;
+ }
+ }
+ goto __finally544;
+ __catch544_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp0_ = NULL;
+ GError* _tmp1_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ err = _inner_error_;
+#line 37 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _inner_error_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = err;
+#line 41 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = _g_error_copy0 (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_error_free0 (self->err);
+#line 41 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->err = _tmp1_;
+#line 37 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_error_free0 (err);
+#line 4191 "MetadataWriter.c"
+ }
+ __finally544:
+#line 37 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 37 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 37 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_clear_error (&_inner_error_);
+#line 37 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 4202 "MetadataWriter.c"
+ }
+}
+
+
+static void metadata_writer_commit_job_commit_master (MetadataWriterCommitJob* self, GError** error) {
+ gboolean skip_orientation = FALSE;
+ LibraryPhoto* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ LibraryPhoto* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ PhotoMetadata* _tmp6_ = NULL;
+ PhotoMetadata* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (METADATA_WRITER_IS_COMMIT_JOB (self));
+#line 49 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->photo;
+#line 49 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = photo_has_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo));
+#line 49 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ skip_orientation = _tmp1_;
+#line 51 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = self->photo;
+#line 51 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = photo_get_master_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO, Photo));
+#line 51 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = photo_file_format_can_write_metadata (_tmp3_);
+#line 51 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp4_) {
+#line 52 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 4239 "MetadataWriter.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = self->photo;
+#line 54 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = photo_get_master_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO, Photo), &_inner_error_);
+#line 54 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata = _tmp6_;
+#line 54 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 54 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_propagate_error (error, _inner_error_);
+#line 54 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 4253 "MetadataWriter.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = metadata;
+#line 55 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = skip_orientation;
+#line 55 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = metadata_writer_commit_job_update_metadata (self, _tmp7_, _tmp8_);
+#line 55 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp9_) {
+#line 4263 "MetadataWriter.c"
+ LibraryPhoto* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = self->photo;
+#line 56 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 56 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = _tmp11_;
+#line 56 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ library_monitor_blacklist_file (_tmp12_, "MetadataWriter.commit_master");
+#line 56 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp12_);
+#line 4277 "MetadataWriter.c"
+ {
+ LibraryPhoto* _tmp13_ = NULL;
+ PhotoMetadata* _tmp14_ = NULL;
+ PhotoReimportMasterState* _tmp15_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = self->photo;
+#line 58 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = metadata;
+#line 58 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_persist_master_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PHOTO, Photo), _tmp14_, &_tmp15_, &_inner_error_);
+#line 58 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _photo_reimport_master_state_unref0 (self->reimport_master_state);
+#line 58 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->reimport_master_state = _tmp15_;
+#line 58 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4294 "MetadataWriter.c"
+ goto __finally545;
+ }
+ }
+ __finally545:
+ {
+ LibraryPhoto* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = self->photo;
+#line 60 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 60 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = _tmp17_;
+#line 60 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ library_monitor_unblacklist_file (_tmp18_);
+#line 60 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp18_);
+#line 4313 "MetadataWriter.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 57 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_propagate_error (error, _inner_error_);
+#line 57 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _media_metadata_unref0 (metadata);
+#line 57 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 4323 "MetadataWriter.c"
+ }
+ }
+#line 64 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->wrote_master = TRUE;
+#line 45 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _media_metadata_unref0 (metadata);
+#line 4330 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_commit_job_commit_editable (MetadataWriterCommitJob* self, GError** error) {
+ gboolean _tmp0_ = FALSE;
+ LibraryPhoto* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ PhotoMetadata* _tmp8_ = NULL;
+ PhotoMetadata* _tmp9_ = NULL;
+ PhotoMetadata* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_if_fail (METADATA_WRITER_IS_COMMIT_JOB (self));
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = self->photo;
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = photo_has_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo));
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp2_) {
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = TRUE;
+#line 4355 "MetadataWriter.c"
+ } else {
+ LibraryPhoto* _tmp3_ = NULL;
+ PhotoFileFormat* _tmp4_ = NULL;
+ PhotoFileFormat* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = self->photo;
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = photo_get_editable_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PHOTO, Photo));
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = _tmp4_;
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = photo_file_format_can_write_metadata (*_tmp5_);
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = !_tmp6_;
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp5_);
+#line 4373 "MetadataWriter.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp0_) {
+#line 69 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 4379 "MetadataWriter.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = self->photo;
+#line 71 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = photo_get_editable_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PHOTO, Photo), &_inner_error_);
+#line 71 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata = _tmp8_;
+#line 71 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 71 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_propagate_error (error, _inner_error_);
+#line 71 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 4393 "MetadataWriter.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = metadata;
+#line 72 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _vala_assert (_tmp9_ != NULL, "metadata != null");
+#line 74 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = metadata;
+#line 74 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = metadata_writer_commit_job_update_metadata (self, _tmp10_, FALSE);
+#line 74 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp11_) {
+#line 4405 "MetadataWriter.c"
+ LibraryPhoto* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = self->photo;
+#line 75 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO, Photo));
+#line 75 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = _tmp13_;
+#line 75 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ library_monitor_blacklist_file (_tmp14_, "MetadataWriter.commit_editable");
+#line 75 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp14_);
+#line 4419 "MetadataWriter.c"
+ {
+ LibraryPhoto* _tmp15_ = NULL;
+ PhotoMetadata* _tmp16_ = NULL;
+ PhotoReimportEditableState* _tmp17_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = self->photo;
+#line 77 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = metadata;
+#line 77 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_persist_editable_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PHOTO, Photo), _tmp16_, &_tmp17_, &_inner_error_);
+#line 77 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _photo_reimport_editable_state_unref0 (self->reimport_editable_state);
+#line 77 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->reimport_editable_state = _tmp17_;
+#line 77 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4436 "MetadataWriter.c"
+ goto __finally546;
+ }
+ }
+ __finally546:
+ {
+ LibraryPhoto* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = self->photo;
+#line 79 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_PHOTO, Photo));
+#line 79 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = _tmp19_;
+#line 79 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ library_monitor_unblacklist_file (_tmp20_);
+#line 79 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp20_);
+#line 4455 "MetadataWriter.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 76 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_propagate_error (error, _inner_error_);
+#line 76 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _media_metadata_unref0 (metadata);
+#line 76 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return;
+#line 4465 "MetadataWriter.c"
+ }
+ }
+#line 83 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->wrote_editable = TRUE;
+#line 67 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _media_metadata_unref0 (metadata);
+#line 4472 "MetadataWriter.c"
+}
+
+
+static gboolean metadata_writer_commit_job_update_metadata (MetadataWriterCommitJob* self, PhotoMetadata* metadata, gboolean skip_orientation) {
+ gboolean result = FALSE;
+ gboolean changed = FALSE;
+ gchar* current_title = NULL;
+ LibraryPhoto* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gchar* current_comment = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ PhotoMetadata* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ Rating current_rating = 0;
+ LibraryPhoto* _tmp18_ = NULL;
+ Rating _tmp19_ = 0;
+ Rating _tmp20_ = 0;
+ PhotoMetadata* _tmp21_ = NULL;
+ Rating _tmp22_ = 0;
+ time_t current_exposure_time = 0;
+ LibraryPhoto* _tmp25_ = NULL;
+ time_t _tmp26_ = 0;
+ time_t metadata_exposure_time = 0;
+ MetadataDateTime* metadata_exposure_date_time = NULL;
+ PhotoMetadata* _tmp27_ = NULL;
+ MetadataDateTime* _tmp28_ = NULL;
+ MetadataDateTime* _tmp29_ = NULL;
+ time_t _tmp32_ = 0;
+ time_t _tmp33_ = 0;
+ GeeSet* safe_keywords = NULL;
+ GeeHashSet* _tmp39_ = NULL;
+ GeeSet* _tmp40_ = NULL;
+ GeeSet* _tmp53_ = NULL;
+ PhotoMetadata* _tmp54_ = NULL;
+ GeeSet* _tmp55_ = NULL;
+ GeeSet* _tmp56_ = NULL;
+ gboolean _tmp57_ = FALSE;
+ gboolean _tmp58_ = FALSE;
+ gboolean _tmp61_ = FALSE;
+ gboolean _tmp69_ = FALSE;
+#line 86 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_val_if_fail (METADATA_WRITER_IS_COMMIT_JOB (self), FALSE);
+#line 86 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (metadata), FALSE);
+#line 87 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ changed = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = self->photo;
+#line 90 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 90 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ current_title = _tmp1_;
+#line 91 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = current_title;
+#line 91 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = metadata;
+#line 91 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 91 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = _tmp4_;
+#line 91 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp6_ = g_strcmp0 (_tmp2_, _tmp5_) != 0;
+#line 91 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp5_);
+#line 91 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp6_) {
+#line 4548 "MetadataWriter.c"
+ PhotoMetadata* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = metadata;
+#line 92 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp8_ = current_title;
+#line 92 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_metadata_set_title (_tmp7_, _tmp8_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 93 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ changed = TRUE;
+#line 4559 "MetadataWriter.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = self->photo;
+#line 97 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp10_ = media_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 97 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ current_comment = _tmp10_;
+#line 98 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = current_comment;
+#line 98 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp12_ = metadata;
+#line 98 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = media_metadata_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 98 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp14_ = _tmp13_;
+#line 98 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = g_strcmp0 (_tmp11_, _tmp14_) != 0;
+#line 98 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp14_);
+#line 98 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp15_) {
+#line 4581 "MetadataWriter.c"
+ PhotoMetadata* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp16_ = metadata;
+#line 99 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = current_comment;
+#line 99 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_metadata_set_comment (_tmp16_, _tmp17_);
+#line 100 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ changed = TRUE;
+#line 4592 "MetadataWriter.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp18_ = self->photo;
+#line 104 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 104 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ current_rating = _tmp19_;
+#line 105 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp20_ = current_rating;
+#line 105 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = metadata;
+#line 105 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp22_ = photo_metadata_get_rating (_tmp21_);
+#line 105 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp20_ != _tmp22_) {
+#line 4608 "MetadataWriter.c"
+ PhotoMetadata* _tmp23_ = NULL;
+ Rating _tmp24_ = 0;
+#line 106 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = metadata;
+#line 106 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp24_ = current_rating;
+#line 106 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_metadata_set_rating (_tmp23_, _tmp24_);
+#line 107 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ changed = TRUE;
+#line 4619 "MetadataWriter.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = self->photo;
+#line 111 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp26_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 111 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ current_exposure_time = _tmp26_;
+#line 112 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_exposure_time = (time_t) 0;
+#line 113 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = metadata;
+#line 113 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = photo_metadata_get_exposure_date_time (_tmp27_);
+#line 113 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_exposure_date_time = _tmp28_;
+#line 114 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp29_ = metadata_exposure_date_time;
+#line 114 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp29_ != NULL) {
+#line 4639 "MetadataWriter.c"
+ MetadataDateTime* _tmp30_ = NULL;
+ time_t _tmp31_ = 0;
+#line 115 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp30_ = metadata_exposure_date_time;
+#line 115 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp31_ = metadata_date_time_get_timestamp (_tmp30_);
+#line 115 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_exposure_time = _tmp31_;
+#line 4648 "MetadataWriter.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp32_ = current_exposure_time;
+#line 116 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp33_ = metadata_exposure_time;
+#line 116 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp32_ != _tmp33_) {
+#line 4656 "MetadataWriter.c"
+ MetadataDateTime* _tmp34_ = NULL;
+ time_t _tmp35_ = 0;
+ PhotoMetadata* _tmp38_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp35_ = current_exposure_time;
+#line 117 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp35_ != ((time_t) 0)) {
+#line 4664 "MetadataWriter.c"
+ time_t _tmp36_ = 0;
+ MetadataDateTime* _tmp37_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp36_ = current_exposure_time;
+#line 118 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp37_ = metadata_date_time_new (_tmp36_);
+#line 118 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _metadata_date_time_unref0 (_tmp34_);
+#line 118 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp34_ = _tmp37_;
+#line 4675 "MetadataWriter.c"
+ } else {
+#line 119 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _metadata_date_time_unref0 (_tmp34_);
+#line 119 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp34_ = NULL;
+#line 4681 "MetadataWriter.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp38_ = metadata;
+#line 117 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_metadata_set_exposure_date_time (_tmp38_, _tmp34_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 120 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ changed = TRUE;
+#line 116 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _metadata_date_time_unref0 (_tmp34_);
+#line 4691 "MetadataWriter.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp39_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 124 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ safe_keywords = G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_SET, GeeSet);
+#line 133 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp40_ = self->current_keywords;
+#line 133 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp40_ != NULL) {
+#line 4701 "MetadataWriter.c"
+ {
+ GeeIterator* _tmp_it = NULL;
+ GeeSet* _tmp41_ = NULL;
+ GeeIterator* _tmp42_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp41_ = self->current_keywords;
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp42_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp_it = _tmp42_;
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ while (TRUE) {
+#line 4714 "MetadataWriter.c"
+ GeeIterator* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ gchar* tmp = NULL;
+ GeeIterator* _tmp45_ = NULL;
+ gpointer _tmp46_ = NULL;
+ Tag* tag = NULL;
+ const gchar* _tmp47_ = NULL;
+ Tag* _tmp48_ = NULL;
+ GeeSet* _tmp49_ = NULL;
+ Tag* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp43_ = _tmp_it;
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp44_ = gee_iterator_next (_tmp43_);
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp44_) {
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ break;
+#line 4735 "MetadataWriter.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp45_ = _tmp_it;
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp46_ = gee_iterator_get (_tmp45_);
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ tmp = (gchar*) _tmp46_;
+#line 135 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp47_ = tmp;
+#line 135 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp48_ = tag_for_path (_tmp47_);
+#line 135 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ tag = _tmp48_;
+#line 136 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp49_ = safe_keywords;
+#line 136 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp50_ = tag;
+#line 136 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp51_ = tag_get_user_visible_name (_tmp50_);
+#line 136 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp52_ = _tmp51_;
+#line 136 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_COLLECTION, GeeCollection), _tmp52_);
+#line 136 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (_tmp52_);
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (tag);
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (tmp);
+#line 4765 "MetadataWriter.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp_it);
+#line 4769 "MetadataWriter.c"
+ }
+ }
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp53_ = safe_keywords;
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp54_ = metadata;
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp55_ = photo_metadata_get_keywords (_tmp54_, NULL, NULL, NULL);
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp56_ = _tmp55_;
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp57_ = equal_sets (_tmp53_, _tmp56_);
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp58_ = !_tmp57_;
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp56_);
+#line 140 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp58_) {
+#line 4788 "MetadataWriter.c"
+ PhotoMetadata* _tmp59_ = NULL;
+ GeeSet* _tmp60_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp59_ = metadata;
+#line 141 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp60_ = self->current_keywords;
+#line 141 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_metadata_set_keywords (_tmp59_, G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, GEE_TYPE_COLLECTION, GeeCollection), PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 142 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ changed = TRUE;
+#line 4799 "MetadataWriter.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp61_ = skip_orientation;
+#line 146 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (!_tmp61_) {
+#line 4805 "MetadataWriter.c"
+ Orientation current_orientation = 0;
+ LibraryPhoto* _tmp62_ = NULL;
+ Orientation _tmp63_ = 0;
+ Orientation _tmp64_ = 0;
+ PhotoMetadata* _tmp65_ = NULL;
+ Orientation _tmp66_ = 0;
+#line 147 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp62_ = self->photo;
+#line 147 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp63_ = photo_get_orientation (G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, TYPE_PHOTO, Photo));
+#line 147 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ current_orientation = _tmp63_;
+#line 148 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp64_ = current_orientation;
+#line 148 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp65_ = metadata;
+#line 148 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp66_ = photo_metadata_get_orientation (_tmp65_);
+#line 148 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp64_ != _tmp66_) {
+#line 4826 "MetadataWriter.c"
+ PhotoMetadata* _tmp67_ = NULL;
+ Orientation _tmp68_ = 0;
+#line 149 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp67_ = metadata;
+#line 149 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp68_ = current_orientation;
+#line 149 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_metadata_set_orientation (_tmp67_, _tmp68_);
+#line 150 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ changed = TRUE;
+#line 4837 "MetadataWriter.c"
+ }
+ }
+#line 155 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp69_ = changed;
+#line 155 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ if (_tmp69_) {
+#line 4844 "MetadataWriter.c"
+ PhotoMetadata* _tmp70_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp70_ = metadata;
+#line 156 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ photo_metadata_set_software (_tmp70_, RESOURCES_APP_TITLE, RESOURCES_APP_VERSION);
+#line 4850 "MetadataWriter.c"
+ }
+#line 158 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ result = changed;
+#line 158 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (safe_keywords);
+#line 158 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _metadata_date_time_unref0 (metadata_exposure_date_time);
+#line 158 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (current_comment);
+#line 158 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_free0 (current_title);
+#line 158 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ return result;
+#line 4864 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_commit_job_class_init (MetadataWriterCommitJobClass * klass) {
+#line 20 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_commit_job_parent_class = g_type_class_peek_parent (klass);
+#line 20 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ ((BackgroundJobClass *) klass)->finalize = metadata_writer_commit_job_finalize;
+#line 20 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ ((BackgroundJobClass *) klass)->execute = metadata_writer_commit_job_real_execute;
+#line 4875 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_commit_job_instance_init (MetadataWriterCommitJob * self) {
+#line 23 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->reimport_master_state = NULL;
+#line 24 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->reimport_editable_state = NULL;
+#line 25 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->err = NULL;
+#line 26 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->wrote_master = FALSE;
+#line 27 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->wrote_editable = FALSE;
+#line 4890 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_commit_job_finalize (BackgroundJob* obj) {
+ MetadataWriterCommitJob * self;
+#line 20 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, METADATA_WRITER_TYPE_COMMIT_JOB, MetadataWriterCommitJob);
+#line 21 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->photo);
+#line 22 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->current_keywords);
+#line 23 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _photo_reimport_master_state_unref0 (self->reimport_master_state);
+#line 24 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _photo_reimport_editable_state_unref0 (self->reimport_editable_state);
+#line 25 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_error_free0 (self->err);
+#line 20 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ BACKGROUND_JOB_CLASS (metadata_writer_commit_job_parent_class)->finalize (obj);
+#line 4910 "MetadataWriter.c"
+}
+
+
+static GType metadata_writer_commit_job_get_type (void) {
+ static volatile gsize metadata_writer_commit_job_type_id__volatile = 0;
+ if (g_once_init_enter (&metadata_writer_commit_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MetadataWriterCommitJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) metadata_writer_commit_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MetadataWriterCommitJob), 0, (GInstanceInitFunc) metadata_writer_commit_job_instance_init, NULL };
+ GType metadata_writer_commit_job_type_id;
+ metadata_writer_commit_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "MetadataWriterCommitJob", &g_define_type_info, 0);
+ g_once_init_leave (&metadata_writer_commit_job_type_id__volatile, metadata_writer_commit_job_type_id);
+ }
+ return metadata_writer_commit_job_type_id__volatile;
+}
+
+
+static void metadata_writer_class_init (MetadataWriterClass * klass) {
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ metadata_writer_parent_class = g_type_class_peek_parent (klass);
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_type_class_add_private (klass, sizeof (MetadataWriterPrivate));
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ G_OBJECT_CLASS (klass)->finalize = metadata_writer_finalize;
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_new ("progress", TYPE_METADATA_WRITER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__UINT_UINT, G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+#line 4935 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_instance_init (MetadataWriter * self) {
+ Workers* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeHashSet* _tmp2_ = NULL;
+ GeeHashSet* _tmp3_ = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv = METADATA_WRITER_GET_PRIVATE (self);
+#line 164 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = workers_new ((guint) 1, FALSE);
+#line 164 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->workers = _tmp0_;
+#line 165 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->enabled = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, METADATA_WRITER_TYPE_COMMIT_JOB, (GBoxedCopyFunc) background_job_ref, background_job_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 167 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->pending = _tmp1_;
+#line 168 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp2_ = gee_hash_set_new (METADATA_WRITER_TYPE_COMMIT_JOB, (GBoxedCopyFunc) background_job_ref, background_job_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 168 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->pending_cancel = _tmp2_;
+#line 169 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 169 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->interested_photo_details = _tmp3_;
+#line 170 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->ignore_photo_alteration = NULL;
+#line 171 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_total = (guint) 0;
+#line 172 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->outstanding_completed = (guint) 0;
+#line 173 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->closed = FALSE;
+#line 174 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->pause_count = 0;
+#line 175 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp4_ = gee_hash_set_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 175 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self->priv->importing_photos = _tmp4_;
+#line 4979 "MetadataWriter.c"
+}
+
+
+static void metadata_writer_finalize (GObject* obj) {
+ MetadataWriter * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ LibraryPhotoSourceCollection* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ LibraryPhotoSourceCollection* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ LibraryPhotoSourceCollection* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ LibraryPhotoSourceCollection* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ LibraryPhotoSourceCollection* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ LibraryPhotoSourceCollection* _tmp15_ = NULL;
+ guint _tmp16_ = 0U;
+ TagSourceCollection* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+ TagSourceCollection* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+ TagSourceCollection* _tmp21_ = NULL;
+ guint _tmp22_ = 0U;
+ TagSourceCollection* _tmp23_ = NULL;
+ guint _tmp24_ = 0U;
+ TagSourceCollection* _tmp25_ = NULL;
+ guint _tmp26_ = 0U;
+ Application* _tmp27_ = NULL;
+ Application* _tmp28_ = NULL;
+ guint _tmp29_ = 0U;
+ LibraryMonitorPool* _tmp30_ = NULL;
+ LibraryMonitorPool* _tmp31_ = NULL;
+ guint _tmp32_ = 0U;
+ LibraryMonitorPool* _tmp33_ = NULL;
+ LibraryMonitorPool* _tmp34_ = NULL;
+ guint _tmp35_ = 0U;
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_METADATA_WRITER, MetadataWriter);
+#line 220 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 220 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp1_ = _tmp0_;
+#line 220 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("commit-metadata-to-masters-changed", TYPE_CONFIGURATION_FACADE, &_tmp2_, NULL, FALSE);
+#line 220 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _metadata_writer_on_config_changed_configuration_facade_commit_metadata_to_masters_changed, self);
+#line 220 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (_tmp1_);
+#line 222 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp3_ = library_photo_global;
+#line 222 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("media-import-starting", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp4_, NULL, FALSE);
+#line 222 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _metadata_writer_on_importing_photos_media_source_collection_media_import_starting, self);
+#line 223 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp5_ = library_photo_global;
+#line 223 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("media-import-completed", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp6_, NULL, FALSE);
+#line 223 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _metadata_writer_on_photos_imported_media_source_collection_media_import_completed, self);
+#line 224 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp7_ = library_photo_global;
+#line 224 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp8_, NULL, FALSE);
+#line 224 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _metadata_writer_on_photos_added_removed_data_collection_contents_altered, self);
+#line 225 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp9_ = library_photo_global;
+#line 225 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp10_, NULL, FALSE);
+#line 225 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _metadata_writer_on_photos_altered_data_collection_items_altered, self);
+#line 226 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp11_ = library_photo_global;
+#line 226 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("frozen", TYPE_DATA_COLLECTION, &_tmp12_, NULL, FALSE);
+#line 226 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _metadata_writer_on_collection_frozen_data_collection_frozen, self);
+#line 227 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp13_ = library_photo_global;
+#line 227 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("thawed", TYPE_DATA_COLLECTION, &_tmp14_, NULL, FALSE);
+#line 227 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _metadata_writer_on_collection_thawed_data_collection_thawed, self);
+#line 228 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp15_ = library_photo_global;
+#line 228 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("items-destroyed", TYPE_SOURCE_COLLECTION, &_tmp16_, NULL, FALSE);
+#line 228 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _metadata_writer_on_photos_destroyed_source_collection_items_destroyed, self);
+#line 230 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp17_ = tag_global;
+#line 230 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp18_, NULL, FALSE);
+#line 230 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp18_, 0, NULL, (GCallback) _metadata_writer_on_tags_altered_data_collection_items_altered, self);
+#line 231 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp19_ = tag_global;
+#line 231 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("container-contents-altered", TYPE_CONTAINER_SOURCE_COLLECTION, &_tmp20_, NULL, FALSE);
+#line 231 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp20_, 0, NULL, (GCallback) _metadata_writer_on_tag_contents_altered_container_source_collection_container_contents_altered, self);
+#line 232 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp21_ = tag_global;
+#line 232 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("backlink-to-container-removed", TYPE_CONTAINER_SOURCE_COLLECTION, &_tmp22_, NULL, FALSE);
+#line 232 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp22_, 0, NULL, (GCallback) _metadata_writer_on_tag_backlink_removed_container_source_collection_backlink_to_container_removed, self);
+#line 233 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp23_ = tag_global;
+#line 233 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("frozen", TYPE_DATA_COLLECTION, &_tmp24_, NULL, FALSE);
+#line 233 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp24_, 0, NULL, (GCallback) _metadata_writer_on_collection_frozen_data_collection_frozen, self);
+#line 234 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp25_ = tag_global;
+#line 234 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("thawed", TYPE_DATA_COLLECTION, &_tmp26_, NULL, FALSE);
+#line 234 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp26_, 0, NULL, (GCallback) _metadata_writer_on_collection_thawed_data_collection_thawed, self);
+#line 236 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp27_ = application_get_instance ();
+#line 236 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp28_ = _tmp27_;
+#line 236 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("exiting", TYPE_APPLICATION, &_tmp29_, NULL, FALSE);
+#line 236 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (_tmp28_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp29_, 0, NULL, (GCallback) _metadata_writer_on_application_exiting_application_exiting, self);
+#line 236 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _application_unref0 (_tmp28_);
+#line 238 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp30_ = library_monitor_pool_get_instance ();
+#line 238 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp31_ = _tmp30_;
+#line 238 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("monitor-installed", TYPE_LIBRARY_MONITOR_POOL, &_tmp32_, NULL, FALSE);
+#line 238 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (_tmp31_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp32_, 0, NULL, (GCallback) _metadata_writer_on_monitor_installed_library_monitor_pool_monitor_installed, self);
+#line 238 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _library_monitor_pool_unref0 (_tmp31_);
+#line 239 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp33_ = library_monitor_pool_get_instance ();
+#line 239 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _tmp34_ = _tmp33_;
+#line 239 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_parse_name ("monitor-destroyed", TYPE_LIBRARY_MONITOR_POOL, &_tmp35_, NULL, FALSE);
+#line 239 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ g_signal_handlers_disconnect_matched (_tmp34_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp35_, 0, NULL, (GCallback) _metadata_writer_on_monitor_destroyed_library_monitor_pool_monitor_destroyed, self);
+#line 239 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _library_monitor_pool_unref0 (_tmp34_);
+#line 164 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _workers_unref0 (self->priv->workers);
+#line 166 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _timed_queue_unref0 (self->priv->dirty);
+#line 167 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->pending);
+#line 168 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->pending_cancel);
+#line 169 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->interested_photo_details);
+#line 170 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->ignore_photo_alteration);
+#line 175 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ _g_object_unref0 (self->priv->importing_photos);
+#line 14 "/home/jens/Source/shotwell/src/MetadataWriter.vala"
+ G_OBJECT_CLASS (metadata_writer_parent_class)->finalize (obj);
+#line 5151 "MetadataWriter.c"
+}
+
+
+GType metadata_writer_get_type (void) {
+ static volatile gsize metadata_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&metadata_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MetadataWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) metadata_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MetadataWriter), 0, (GInstanceInitFunc) metadata_writer_instance_init, NULL };
+ GType metadata_writer_type_id;
+ metadata_writer_type_id = g_type_register_static (G_TYPE_OBJECT, "MetadataWriter", &g_define_type_info, 0);
+ g_once_init_leave (&metadata_writer_type_id__volatile, metadata_writer_type_id);
+ }
+ return metadata_writer_type_id__volatile;
+}
+
+
+
diff --git a/src/NaturalCollate.c b/src/NaturalCollate.c
new file mode 100644
index 0000000..35b129c
--- /dev/null
+++ b/src/NaturalCollate.c
@@ -0,0 +1,801 @@
+/* NaturalCollate.c generated by valac 0.32.1, the Vala compiler
+ * generated from NaturalCollate.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+
+
+#define NATURAL_COLLATE_SUPERDIGIT ((gunichar) ':')
+#define NATURAL_COLLATE_NUM_SENTINEL ((gunichar) 0x2)
+#define NATURAL_COLLATE_COLLATION_SENTINEL "\x01\x01\x01"
+gint natural_collate_read_number (gchar* s, gint* byte_index);
+gint natural_collate_compare (const gchar* str1, const gchar* str2);
+gchar* natural_collate_collate_key (gchar* str);
+
+
+static gunichar string_get_char (const gchar* self, glong index) {
+ gunichar result = 0U;
+ glong _tmp0_ = 0L;
+ gunichar _tmp1_ = 0U;
+#line 1116 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0U);
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_);
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 41 "NaturalCollate.c"
+}
+
+
+static gint string_index_of_nth_char (const gchar* self, glong c) {
+ gint result = 0;
+ glong _tmp0_ = 0L;
+ gchar* _tmp1_ = NULL;
+#line 1136 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = c;
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_utf8_offset_to_pointer (self, _tmp0_);
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp1_ - ((gchar*) self));
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 59 "NaturalCollate.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 82 "NaturalCollate.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 90 "NaturalCollate.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 102 "NaturalCollate.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 126 "NaturalCollate.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 132 "NaturalCollate.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 136 "NaturalCollate.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 140 "NaturalCollate.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 152 "NaturalCollate.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 162 "NaturalCollate.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 168 "NaturalCollate.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 182 "NaturalCollate.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 192 "NaturalCollate.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 198 "NaturalCollate.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 207 "NaturalCollate.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 227 "NaturalCollate.c"
+}
+
+
+gint natural_collate_read_number (gchar* s, gint* byte_index) {
+ gint result = 0;
+ gint number = 0;
+#line 23 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (s != NULL, 0);
+#line 31 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = 0;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 240 "NaturalCollate.c"
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ const gchar* _tmp9_ = NULL;
+ gunichar _tmp10_ = 0U;
+ gint _tmp11_ = 0;
+ gint second_char = 0;
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp1_ = s;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp2_ = strlen (_tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp3_ = _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (_tmp3_ != 0) {
+#line 266 "NaturalCollate.c"
+ const gchar* _tmp4_ = NULL;
+ gunichar _tmp5_ = 0U;
+ gboolean _tmp6_ = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp4_ = s;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp5_ = string_get_char (_tmp4_, (glong) 0);
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp6_ = g_unichar_isdigit (_tmp5_);
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = _tmp6_;
+#line 278 "NaturalCollate.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = FALSE;
+#line 282 "NaturalCollate.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!_tmp0_) {
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 288 "NaturalCollate.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp7_ = number;
+#line 34 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = _tmp7_ * 10;
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp8_ = number;
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp9_ = s;
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp10_ = string_get_char (_tmp9_, (glong) 0);
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp11_ = g_unichar_digit_value (_tmp10_);
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = _tmp8_ + _tmp11_;
+#line 36 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp12_ = s;
+#line 36 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp13_ = string_index_of_nth_char (_tmp12_, (glong) 1);
+#line 36 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ second_char = _tmp13_;
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp14_ = s;
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp15_ = second_char;
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp16_ = string_substring (_tmp14_, (glong) _tmp15_, (glong) -1);
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (s);
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ s = _tmp16_;
+#line 38 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp17_ = *byte_index;
+#line 38 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp18_ = second_char;
+#line 38 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ *byte_index = _tmp17_ + _tmp18_;
+#line 326 "NaturalCollate.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ result = number;
+#line 40 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (s);
+#line 40 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ return result;
+#line 334 "NaturalCollate.c"
+}
+
+
+gint natural_collate_compare (const gchar* str1, const gchar* str2) {
+ gint result = 0;
+ GCompareFunc _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 43 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (str1 != NULL, 0);
+#line 43 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (str2 != NULL, 0);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = g_strcmp0;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp1_ = str1;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp3_ = natural_collate_collate_key (_tmp2_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp4_ = _tmp3_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp5_ = str2;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp7_ = natural_collate_collate_key (_tmp6_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp8_ = _tmp7_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp9_ = _tmp0_ (_tmp4_, _tmp8_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp10_ = _tmp9_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp8_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp4_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ result = _tmp10_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ return result;
+#line 385 "NaturalCollate.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 405 "NaturalCollate.c"
+}
+
+
+static gchar* g_unichar_to_string (gunichar self) {
+ gchar* result = NULL;
+ gchar* str = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 941 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 7);
+#line 941 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ str = (gchar*) _tmp0_;
+#line 942 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = str;
+#line 942 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_unichar_to_utf8 (self, _tmp1_);
+#line 943 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = str;
+#line 943 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 426 "NaturalCollate.c"
+}
+
+
+gchar* natural_collate_collate_key (gchar* str) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gchar* _result_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean eos = FALSE;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ const gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (str != NULL, NULL);
+#line 53 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = str;
+#line 53 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp1_ = g_utf8_validate (_tmp0_, (gssize) -1, NULL);
+#line 53 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _vala_assert (_tmp1_, "str.validate()");
+#line 54 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp2_ = g_strdup ("");
+#line 54 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp3_ = str;
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp4_ = strlen (_tmp3_);
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp5_ = _tmp4_;
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ eos = _tmp5_ == 0;
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 466 "NaturalCollate.c"
+ gboolean _tmp6_ = FALSE;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gint position = 0;
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gboolean _tmp31_ = FALSE;
+ const gchar* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp6_ = eos;
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!(!_tmp6_)) {
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 495 "NaturalCollate.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp7_ = str;
+#line 58 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp8_ = g_utf8_validate (_tmp7_, (gssize) -1, NULL);
+#line 58 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _vala_assert (_tmp8_, "str.validate()");
+#line 59 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ position = 0;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 507 "NaturalCollate.c"
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gunichar _tmp11_ = 0U;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gint _tmp16_ = 0;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp9_ = str;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp10_ = position;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp11_ = string_get_char (_tmp9_, (glong) _tmp10_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp12_ = g_unichar_to_string (_tmp11_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp13_ = _tmp12_;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp14_ = string_contains ("0123456789", _tmp13_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp15_ = !(!_tmp14_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp13_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (_tmp15_) {
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 536 "NaturalCollate.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp16_ = position;
+#line 62 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ position = _tmp16_ + 1;
+#line 542 "NaturalCollate.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp17_ = _result_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp18_ = str;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp19_ = position;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp20_ = string_substring (_tmp18_, (glong) 0, (glong) _tmp19_);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp21_ = _tmp20_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp22_ = g_utf8_collate_key (_tmp21_, (gssize) -1);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp23_ = _tmp22_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp24_ = g_strconcat (_tmp17_, _tmp23_, NULL);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_result_);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp24_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp23_);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp21_);
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp25_ = str;
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp26_ = position;
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp27_ = string_substring (_tmp25_, (glong) _tmp26_, (glong) -1);
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (str);
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ str = _tmp27_;
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp28_ = str;
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp29_ = strlen (_tmp28_);
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp30_ = _tmp29_;
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ eos = _tmp30_ == 0;
+#line 72 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ position = 0;
+#line 74 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp31_ = eos;
+#line 74 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!_tmp31_) {
+#line 592 "NaturalCollate.c"
+ gint number = 0;
+ const gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ const gchar* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gchar* _tmp37_ = NULL;
+ gint number_of_superdigits = 0;
+ gint _tmp38_ = 0;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gchar* to_append = NULL;
+ gchar* _tmp44_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ const gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp32_ = str;
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp33_ = g_strdup (_tmp32_);
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp34_ = natural_collate_read_number (_tmp33_, &position);
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = _tmp34_;
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp35_ = str;
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp36_ = position;
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp37_ = string_substring (_tmp35_, (glong) _tmp36_, (glong) -1);
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (str);
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ str = _tmp37_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp38_ = number;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp39_ = g_strdup_printf ("%i", _tmp38_);
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp40_ = _tmp39_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp41_ = strlen (_tmp40_);
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp42_ = _tmp41_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp43_ = _tmp42_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp40_);
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number_of_superdigits = _tmp43_;
+#line 79 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp44_ = g_strdup ("");
+#line 79 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ to_append = _tmp44_;
+#line 661 "NaturalCollate.c"
+ {
+ gint i = 0;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ i = 1;
+#line 666 "NaturalCollate.c"
+ {
+ gboolean _tmp45_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp45_ = TRUE;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 673 "NaturalCollate.c"
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ const gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!_tmp45_) {
+#line 682 "NaturalCollate.c"
+ gint _tmp46_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp46_ = i;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ i = _tmp46_ + 1;
+#line 688 "NaturalCollate.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp45_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp47_ = i;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp48_ = number_of_superdigits;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!(_tmp47_ < _tmp48_)) {
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 700 "NaturalCollate.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp49_ = to_append;
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp50_ = g_unichar_to_string (NATURAL_COLLATE_SUPERDIGIT);
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp51_ = _tmp50_;
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp52_ = g_strconcat (_tmp49_, _tmp51_, NULL);
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (to_append);
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ to_append = _tmp52_;
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp51_);
+#line 716 "NaturalCollate.c"
+ }
+ }
+ }
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp53_ = to_append;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp54_ = number;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp55_ = g_strdup_printf ("%i", _tmp54_);
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp56_ = _tmp55_;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp57_ = g_strconcat (_tmp53_, _tmp56_, NULL);
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (to_append);
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ to_append = _tmp57_;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp56_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp58_ = _result_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp59_ = g_strconcat (_tmp58_, NATURAL_COLLATE_COLLATION_SENTINEL, NULL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp60_ = _tmp59_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp61_ = g_unichar_to_string (NATURAL_COLLATE_NUM_SENTINEL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp62_ = _tmp61_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp63_ = g_strconcat (_tmp60_, _tmp62_, NULL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp64_ = _tmp63_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp65_ = to_append;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp66_ = g_strconcat (_tmp64_, _tmp65_, NULL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_result_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp66_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp64_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp62_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp60_);
+#line 74 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (to_append);
+#line 766 "NaturalCollate.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp67_ = str;
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp68_ = strlen (_tmp67_);
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp69_ = _tmp68_;
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ eos = _tmp69_ == 0;
+#line 776 "NaturalCollate.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp70_ = _result_;
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp71_ = g_unichar_to_string (NATURAL_COLLATE_NUM_SENTINEL);
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp72_ = _tmp71_;
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp73_ = g_strconcat (_tmp70_, _tmp72_, NULL);
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_result_);
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp73_;
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp72_);
+#line 96 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ result = _result_;
+#line 96 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (str);
+#line 96 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ return result;
+#line 798 "NaturalCollate.c"
+}
+
+
+
diff --git a/src/Orientation.c b/src/Orientation.c
new file mode 100644
index 0000000..3e2da2a
--- /dev/null
+++ b/src/Orientation.c
@@ -0,0 +1,2061 @@
+/* Orientation.c generated by valac 0.32.1, the Vala compiler
+ * generated from Orientation.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdk.h>
+
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define TYPE_ROTATION (rotation_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+typedef enum {
+ ROTATION_CLOCKWISE,
+ ROTATION_COUNTERCLOCKWISE,
+ ROTATION_MIRROR,
+ ROTATION_UPSIDE_DOWN
+} Rotation;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+
+
+GType orientation_get_type (void) G_GNUC_CONST;
+gchar* orientation_to_string (Orientation self);
+Orientation orientation_rotate_clockwise (Orientation self);
+Orientation orientation_rotate_counterclockwise (Orientation self);
+Orientation orientation_flip_top_to_bottom (Orientation self);
+Orientation orientation_flip_left_to_right (Orientation self);
+GType rotation_get_type (void) G_GNUC_CONST;
+Orientation orientation_perform (Orientation self, Rotation rotation);
+Rotation* orientation_to_rotations (Orientation self, int* result_length1);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+void orientation_rotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void orientation_derotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result);
+GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf);
+void orientation_rotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result);
+gboolean dimensions_has_area (Dimensions *self);
+void orientation_derotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result);
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+void orientation_rotate_box (Orientation self, Dimensions* space, Box* box, Box* result);
+void box_get_points (Box *self, GdkPoint* top_left, GdkPoint* bottom_right);
+void box_from_points (GdkPoint* corner1, GdkPoint* corner2, Box* result);
+void orientation_derotate_box (Orientation self, Dimensions* space, Box* box, Box* result);
+GdkPixbuf* rotation_perform (Rotation self, GdkPixbuf* pixbuf);
+Rotation rotation_opposite (Rotation self);
+
+
+gchar* orientation_to_string (Orientation self) {
+ gchar* result = NULL;
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 104 "Orientation.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = g_strdup ("top-left");
+#line 22 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp0_;
+#line 22 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 113 "Orientation.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 117 "Orientation.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = g_strdup ("top-right");
+#line 25 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp1_;
+#line 25 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 126 "Orientation.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 130 "Orientation.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = g_strdup ("bottom-right");
+#line 28 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp2_;
+#line 28 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 139 "Orientation.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 143 "Orientation.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = g_strdup ("bottom-left");
+#line 31 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp3_;
+#line 31 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 152 "Orientation.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 156 "Orientation.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = g_strdup ("left-top");
+#line 34 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp4_;
+#line 34 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 165 "Orientation.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 169 "Orientation.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = g_strdup ("right-top");
+#line 37 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp5_;
+#line 37 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 178 "Orientation.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 182 "Orientation.c"
+ {
+ gchar* _tmp6_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = g_strdup ("right-bottom");
+#line 40 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp6_;
+#line 40 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 191 "Orientation.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 195 "Orientation.c"
+ {
+ gchar* _tmp7_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7_ = g_strdup ("left-bottom");
+#line 43 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp7_;
+#line 43 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 204 "Orientation.c"
+ }
+ default:
+ {
+ gchar* _tmp8_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_ = g_strdup_printf ("unknown orientation %d", (gint) self);
+#line 46 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp8_;
+#line 46 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 215 "Orientation.c"
+ }
+ }
+}
+
+
+Orientation orientation_rotate_clockwise (Orientation self) {
+ Orientation result = 0;
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 227 "Orientation.c"
+ {
+#line 53 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_TOP;
+#line 53 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 233 "Orientation.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 237 "Orientation.c"
+ {
+#line 56 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_BOTTOM;
+#line 56 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 243 "Orientation.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 247 "Orientation.c"
+ {
+#line 59 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_BOTTOM;
+#line 59 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 253 "Orientation.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 257 "Orientation.c"
+ {
+#line 62 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_TOP;
+#line 62 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 263 "Orientation.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 267 "Orientation.c"
+ {
+#line 65 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_RIGHT;
+#line 65 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 273 "Orientation.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 277 "Orientation.c"
+ {
+#line 68 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_RIGHT;
+#line 68 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 283 "Orientation.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 287 "Orientation.c"
+ {
+#line 71 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_LEFT;
+#line 71 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 293 "Orientation.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 297 "Orientation.c"
+ {
+#line 74 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_LEFT;
+#line 74 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 303 "Orientation.c"
+ }
+ default:
+ {
+#line 77 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:77: rotate_clockwise: %d", (gint) self);
+#line 309 "Orientation.c"
+ }
+ }
+}
+
+
+Orientation orientation_rotate_counterclockwise (Orientation self) {
+ Orientation result = 0;
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 321 "Orientation.c"
+ {
+#line 84 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_BOTTOM;
+#line 84 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 327 "Orientation.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 331 "Orientation.c"
+ {
+#line 87 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_TOP;
+#line 87 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 337 "Orientation.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 341 "Orientation.c"
+ {
+#line 90 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_TOP;
+#line 90 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 347 "Orientation.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 351 "Orientation.c"
+ {
+#line 93 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_BOTTOM;
+#line 93 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 357 "Orientation.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 361 "Orientation.c"
+ {
+#line 96 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_LEFT;
+#line 96 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 367 "Orientation.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 371 "Orientation.c"
+ {
+#line 99 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_LEFT;
+#line 99 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 377 "Orientation.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 381 "Orientation.c"
+ {
+#line 102 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_RIGHT;
+#line 102 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 387 "Orientation.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 391 "Orientation.c"
+ {
+#line 105 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_RIGHT;
+#line 105 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 397 "Orientation.c"
+ }
+ default:
+ {
+#line 108 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:108: rotate_counterclockwise: %d", (gint) self);
+#line 403 "Orientation.c"
+ }
+ }
+}
+
+
+Orientation orientation_flip_top_to_bottom (Orientation self) {
+ Orientation result = 0;
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 415 "Orientation.c"
+ {
+#line 115 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_LEFT;
+#line 115 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 421 "Orientation.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 425 "Orientation.c"
+ {
+#line 118 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_RIGHT;
+#line 118 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 431 "Orientation.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 435 "Orientation.c"
+ {
+#line 121 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_RIGHT;
+#line 121 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 441 "Orientation.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 445 "Orientation.c"
+ {
+#line 124 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_LEFT;
+#line 124 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 451 "Orientation.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 455 "Orientation.c"
+ {
+#line 127 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_BOTTOM;
+#line 127 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 461 "Orientation.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 465 "Orientation.c"
+ {
+#line 130 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_BOTTOM;
+#line 130 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 471 "Orientation.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 475 "Orientation.c"
+ {
+#line 133 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_TOP;
+#line 133 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 481 "Orientation.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 485 "Orientation.c"
+ {
+#line 136 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_TOP;
+#line 136 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 491 "Orientation.c"
+ }
+ default:
+ {
+#line 139 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:139: flip_top_to_bottom: %d", (gint) self);
+#line 497 "Orientation.c"
+ }
+ }
+}
+
+
+Orientation orientation_flip_left_to_right (Orientation self) {
+ Orientation result = 0;
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 509 "Orientation.c"
+ {
+#line 146 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_RIGHT;
+#line 146 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 515 "Orientation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 519 "Orientation.c"
+ {
+#line 149 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_TOP_LEFT;
+#line 149 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 525 "Orientation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 529 "Orientation.c"
+ {
+#line 152 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_LEFT;
+#line 152 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 535 "Orientation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 539 "Orientation.c"
+ {
+#line 155 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_BOTTOM_RIGHT;
+#line 155 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 545 "Orientation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 549 "Orientation.c"
+ {
+#line 158 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_TOP;
+#line 158 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 555 "Orientation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 559 "Orientation.c"
+ {
+#line 161 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_TOP;
+#line 161 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 565 "Orientation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 569 "Orientation.c"
+ {
+#line 164 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_LEFT_BOTTOM;
+#line 164 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 575 "Orientation.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 579 "Orientation.c"
+ {
+#line 167 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ORIENTATION_RIGHT_BOTTOM;
+#line 167 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 585 "Orientation.c"
+ }
+ default:
+ {
+#line 170 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:170: flip_left_to_right: %d", (gint) self);
+#line 591 "Orientation.c"
+ }
+ }
+}
+
+
+Orientation orientation_perform (Orientation self, Rotation rotation) {
+ Orientation result = 0;
+ Rotation _tmp0_ = 0;
+#line 175 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = rotation;
+#line 175 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (_tmp0_) {
+#line 175 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_CLOCKWISE:
+#line 606 "Orientation.c"
+ {
+ Orientation _tmp1_ = 0;
+#line 177 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = orientation_rotate_clockwise (self);
+#line 177 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp1_;
+#line 177 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 615 "Orientation.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_COUNTERCLOCKWISE:
+#line 619 "Orientation.c"
+ {
+ Orientation _tmp2_ = 0;
+#line 180 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = orientation_rotate_counterclockwise (self);
+#line 180 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp2_;
+#line 180 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 628 "Orientation.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_MIRROR:
+#line 632 "Orientation.c"
+ {
+ Orientation _tmp3_ = 0;
+#line 183 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = orientation_flip_left_to_right (self);
+#line 183 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp3_;
+#line 183 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 641 "Orientation.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_UPSIDE_DOWN:
+#line 645 "Orientation.c"
+ {
+ Orientation _tmp4_ = 0;
+#line 186 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = orientation_flip_top_to_bottom (self);
+#line 186 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp4_;
+#line 186 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 654 "Orientation.c"
+ }
+ default:
+ {
+ Rotation _tmp5_ = 0;
+#line 189 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = rotation;
+#line 189 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:189: perform: %d", (gint) _tmp5_);
+#line 663 "Orientation.c"
+ }
+ }
+}
+
+
+Rotation* orientation_to_rotations (Orientation self, int* result_length1) {
+ Rotation* result = NULL;
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 675 "Orientation.c"
+ {
+ Rotation* _tmp0_ = NULL;
+ Rotation* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 197 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = g_new0 (Rotation, 0);
+#line 197 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = _tmp0_;
+#line 197 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1__length1 = 0;
+#line 197 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 197 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp1__length1;
+#line 690 "Orientation.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp1_;
+#line 197 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 696 "Orientation.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 700 "Orientation.c"
+ {
+ Rotation* _tmp2_ = NULL;
+ Rotation* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = g_new0 (Rotation, 1);
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_[0] = ROTATION_MIRROR;
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = _tmp2_;
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3__length1 = 1;
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp3__length1;
+#line 717 "Orientation.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp3_;
+#line 200 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 723 "Orientation.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 727 "Orientation.c"
+ {
+ Rotation* _tmp4_ = NULL;
+ Rotation* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = g_new0 (Rotation, 1);
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_[0] = ROTATION_UPSIDE_DOWN;
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = _tmp4_;
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5__length1 = 1;
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp5__length1;
+#line 744 "Orientation.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp5_;
+#line 203 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 750 "Orientation.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 754 "Orientation.c"
+ {
+ Rotation* _tmp6_ = NULL;
+ Rotation* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = g_new0 (Rotation, 2);
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_[0] = ROTATION_MIRROR;
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_[1] = ROTATION_UPSIDE_DOWN;
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7_ = _tmp6_;
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7__length1 = 2;
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp7__length1;
+#line 773 "Orientation.c"
+ }
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp7_;
+#line 207 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 779 "Orientation.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 783 "Orientation.c"
+ {
+ Rotation* _tmp8_ = NULL;
+ Rotation* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_ = g_new0 (Rotation, 2);
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_[0] = ROTATION_COUNTERCLOCKWISE;
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_[1] = ROTATION_UPSIDE_DOWN;
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp9_ = _tmp8_;
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp9__length1 = 2;
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp9__length1;
+#line 802 "Orientation.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp9_;
+#line 210 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 808 "Orientation.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 812 "Orientation.c"
+ {
+ Rotation* _tmp10_ = NULL;
+ Rotation* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp10_ = g_new0 (Rotation, 1);
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp10_[0] = ROTATION_CLOCKWISE;
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp11_ = _tmp10_;
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp11__length1 = 1;
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp11__length1;
+#line 829 "Orientation.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp11_;
+#line 213 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 835 "Orientation.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 839 "Orientation.c"
+ {
+ Rotation* _tmp12_ = NULL;
+ Rotation* _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp12_ = g_new0 (Rotation, 2);
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp12_[0] = ROTATION_CLOCKWISE;
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp12_[1] = ROTATION_UPSIDE_DOWN;
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp13_ = _tmp12_;
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp13__length1 = 2;
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp13__length1;
+#line 858 "Orientation.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp13_;
+#line 216 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 864 "Orientation.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 868 "Orientation.c"
+ {
+ Rotation* _tmp14_ = NULL;
+ Rotation* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp14_ = g_new0 (Rotation, 1);
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp14_[0] = ROTATION_COUNTERCLOCKWISE;
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp15_ = _tmp14_;
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp15__length1 = 1;
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ if (result_length1) {
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result_length1 = _tmp15__length1;
+#line 885 "Orientation.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp15_;
+#line 219 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 891 "Orientation.c"
+ }
+ default:
+ {
+#line 222 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:222: to_rotations: %d", (gint) self);
+#line 897 "Orientation.c"
+ }
+ }
+}
+
+
+void orientation_rotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result) {
+#line 226 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (dim != NULL);
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 916 "Orientation.c"
+ {
+ Dimensions _tmp0_ = {0};
+#line 233 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = *dim;
+#line 233 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result = _tmp0_;
+#line 233 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return;
+#line 925 "Orientation.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 227 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 935 "Orientation.c"
+ {
+ Dimensions _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+#line 240 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = *dim;
+#line 240 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = _tmp1_.height;
+#line 240 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = *dim;
+#line 240 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = _tmp3_.width;
+#line 240 "/home/jens/Source/shotwell/src/Orientation.vala"
+ dimensions_init (&_tmp5_, _tmp2_, _tmp4_);
+#line 240 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result = _tmp5_;
+#line 240 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return;
+#line 956 "Orientation.c"
+ }
+ default:
+ {
+#line 243 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:243: rotate_dimensions: %d", (gint) self);
+#line 962 "Orientation.c"
+ }
+ }
+}
+
+
+void orientation_derotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result) {
+ Dimensions _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+#line 247 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (dim != NULL);
+#line 248 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = *dim;
+#line 248 "/home/jens/Source/shotwell/src/Orientation.vala"
+ orientation_rotate_dimensions (self, &_tmp0_, &_tmp1_);
+#line 248 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result = _tmp1_;
+#line 248 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return;
+#line 981 "Orientation.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 256 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 988 "Orientation.c"
+}
+
+
+GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* rotated = NULL;
+#line 251 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 1001 "Orientation.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = pixbuf;
+#line 256 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 256 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 256 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp1_;
+#line 257 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1015 "Orientation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 1019 "Orientation.c"
+ {
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = pixbuf;
+#line 261 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = gdk_pixbuf_flip (_tmp2_, TRUE);
+#line 261 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 261 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp3_;
+#line 262 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1033 "Orientation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 1037 "Orientation.c"
+ {
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = pixbuf;
+#line 265 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = gdk_pixbuf_rotate_simple (_tmp4_, GDK_PIXBUF_ROTATE_UPSIDEDOWN);
+#line 265 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 265 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp5_;
+#line 266 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1051 "Orientation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 1055 "Orientation.c"
+ {
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = pixbuf;
+#line 270 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7_ = gdk_pixbuf_flip (_tmp6_, FALSE);
+#line 270 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 270 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp7_;
+#line 271 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1069 "Orientation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 1073 "Orientation.c"
+ {
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_ = pixbuf;
+#line 274 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp9_ = gdk_pixbuf_rotate_simple (_tmp8_, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE);
+#line 274 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp10_ = _tmp9_;
+#line 274 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp11_ = gdk_pixbuf_flip (_tmp10_, FALSE);
+#line 274 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 274 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp11_;
+#line 274 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (_tmp10_);
+#line 275 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1095 "Orientation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 1099 "Orientation.c"
+ {
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp12_ = pixbuf;
+#line 278 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp13_ = gdk_pixbuf_rotate_simple (_tmp12_, GDK_PIXBUF_ROTATE_CLOCKWISE);
+#line 278 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 278 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp13_;
+#line 279 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1113 "Orientation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 1117 "Orientation.c"
+ {
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+ GdkPixbuf* _tmp17_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp14_ = pixbuf;
+#line 282 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp15_ = gdk_pixbuf_rotate_simple (_tmp14_, GDK_PIXBUF_ROTATE_CLOCKWISE);
+#line 282 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp16_ = _tmp15_;
+#line 282 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp17_ = gdk_pixbuf_flip (_tmp16_, FALSE);
+#line 282 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 282 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp17_;
+#line 282 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (_tmp16_);
+#line 283 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1139 "Orientation.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 1143 "Orientation.c"
+ {
+ GdkPixbuf* _tmp18_ = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp18_ = pixbuf;
+#line 286 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp19_ = gdk_pixbuf_rotate_simple (_tmp18_, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE);
+#line 286 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _g_object_unref0 (rotated);
+#line 286 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp19_;
+#line 287 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1157 "Orientation.c"
+ }
+ default:
+ {
+#line 290 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:290: rotate_pixbuf: %d", (gint) self);
+#line 1163 "Orientation.c"
+ }
+ }
+#line 293 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = rotated;
+#line 293 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 1170 "Orientation.c"
+}
+
+
+void orientation_rotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result) {
+ gboolean _tmp0_ = FALSE;
+ GdkPoint _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkPoint _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkPoint _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ Dimensions _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkPoint rotated = {0};
+#line 297 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (space != NULL);
+#line 297 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (point != NULL);
+#line 298 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = dimensions_has_area (space);
+#line 298 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _vala_assert (_tmp0_, "space.has_area()");
+#line 299 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = *point;
+#line 299 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = _tmp1_.x;
+#line 299 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _vala_assert (_tmp2_ >= 0, "point.x >= 0");
+#line 300 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = *point;
+#line 300 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = _tmp3_.x;
+#line 300 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = *space;
+#line 300 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = _tmp5_.width;
+#line 300 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _vala_assert (_tmp4_ < _tmp6_, "point.x < space.width");
+#line 301 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7_ = *point;
+#line 301 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_ = _tmp7_.y;
+#line 301 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _vala_assert (_tmp8_ >= 0, "point.y >= 0");
+#line 302 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp9_ = *point;
+#line 302 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp10_ = _tmp9_.y;
+#line 302 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp11_ = *space;
+#line 302 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp12_ = _tmp11_.height;
+#line 302 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _vala_assert (_tmp10_ < _tmp12_, "point.y < space.height");
+#line 304 "/home/jens/Source/shotwell/src/Orientation.vala"
+ memset (&rotated, 0, sizeof (GdkPoint));
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 1235 "Orientation.c"
+ {
+ GdkPoint _tmp13_ = {0};
+#line 309 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp13_ = *point;
+#line 309 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated = _tmp13_;
+#line 310 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1244 "Orientation.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 1248 "Orientation.c"
+ {
+ Dimensions _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ GdkPoint _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ GdkPoint _tmp18_ = {0};
+ gint _tmp19_ = 0;
+#line 314 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp14_ = *space;
+#line 314 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp15_ = _tmp14_.width;
+#line 314 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp16_ = *point;
+#line 314 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp17_ = _tmp16_.x;
+#line 314 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.x = (_tmp15_ - _tmp17_) - 1;
+#line 315 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp18_ = *point;
+#line 315 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp19_ = _tmp18_.y;
+#line 315 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.y = _tmp19_;
+#line 316 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1274 "Orientation.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 1278 "Orientation.c"
+ {
+ Dimensions _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkPoint _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ Dimensions _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ GdkPoint _tmp26_ = {0};
+ gint _tmp27_ = 0;
+#line 320 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp20_ = *space;
+#line 320 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp21_ = _tmp20_.width;
+#line 320 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp22_ = *point;
+#line 320 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp23_ = _tmp22_.x;
+#line 320 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.x = (_tmp21_ - _tmp23_) - 1;
+#line 321 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp24_ = *space;
+#line 321 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp25_ = _tmp24_.height;
+#line 321 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp26_ = *point;
+#line 321 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp27_ = _tmp26_.y;
+#line 321 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.y = (_tmp25_ - _tmp27_) - 1;
+#line 322 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1310 "Orientation.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 1314 "Orientation.c"
+ {
+ GdkPoint _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ Dimensions _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ GdkPoint _tmp32_ = {0};
+ gint _tmp33_ = 0;
+#line 326 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp28_ = *point;
+#line 326 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp29_ = _tmp28_.x;
+#line 326 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.x = _tmp29_;
+#line 327 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp30_ = *space;
+#line 327 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp31_ = _tmp30_.height;
+#line 327 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp32_ = *point;
+#line 327 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp33_ = _tmp32_.y;
+#line 327 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.y = (_tmp31_ - _tmp33_) - 1;
+#line 328 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1340 "Orientation.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 1344 "Orientation.c"
+ {
+ GdkPoint _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ GdkPoint _tmp36_ = {0};
+ gint _tmp37_ = 0;
+#line 332 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp34_ = *point;
+#line 332 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp35_ = _tmp34_.y;
+#line 332 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.x = _tmp35_;
+#line 333 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp36_ = *point;
+#line 333 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp37_ = _tmp36_.x;
+#line 333 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.y = _tmp37_;
+#line 334 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1364 "Orientation.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 1368 "Orientation.c"
+ {
+ Dimensions _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ GdkPoint _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ GdkPoint _tmp42_ = {0};
+ gint _tmp43_ = 0;
+#line 338 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp38_ = *space;
+#line 338 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp39_ = _tmp38_.height;
+#line 338 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp40_ = *point;
+#line 338 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp41_ = _tmp40_.y;
+#line 338 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.x = (_tmp39_ - _tmp41_) - 1;
+#line 339 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp42_ = *point;
+#line 339 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp43_ = _tmp42_.x;
+#line 339 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.y = _tmp43_;
+#line 340 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1394 "Orientation.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 1398 "Orientation.c"
+ {
+ Dimensions _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ GdkPoint _tmp46_ = {0};
+ gint _tmp47_ = 0;
+ Dimensions _tmp48_ = {0};
+ gint _tmp49_ = 0;
+ GdkPoint _tmp50_ = {0};
+ gint _tmp51_ = 0;
+#line 344 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp44_ = *space;
+#line 344 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp45_ = _tmp44_.height;
+#line 344 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp46_ = *point;
+#line 344 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp47_ = _tmp46_.y;
+#line 344 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.x = (_tmp45_ - _tmp47_) - 1;
+#line 345 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp48_ = *space;
+#line 345 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp49_ = _tmp48_.width;
+#line 345 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp50_ = *point;
+#line 345 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp51_ = _tmp50_.x;
+#line 345 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.y = (_tmp49_ - _tmp51_) - 1;
+#line 346 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1430 "Orientation.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 1434 "Orientation.c"
+ {
+ GdkPoint _tmp52_ = {0};
+ gint _tmp53_ = 0;
+ Dimensions _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ GdkPoint _tmp56_ = {0};
+ gint _tmp57_ = 0;
+#line 350 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp52_ = *point;
+#line 350 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp53_ = _tmp52_.y;
+#line 350 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.x = _tmp53_;
+#line 351 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp54_ = *space;
+#line 351 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp55_ = _tmp54_.width;
+#line 351 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp56_ = *point;
+#line 351 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp57_ = _tmp56_.x;
+#line 351 "/home/jens/Source/shotwell/src/Orientation.vala"
+ rotated.y = (_tmp55_ - _tmp57_) - 1;
+#line 352 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1460 "Orientation.c"
+ }
+ default:
+ {
+#line 355 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:355: rotate_point: %d", (gint) self);
+#line 1466 "Orientation.c"
+ }
+ }
+#line 358 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result = rotated;
+#line 358 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return;
+#line 1473 "Orientation.c"
+}
+
+
+void orientation_derotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result) {
+ gboolean _tmp0_ = FALSE;
+ GdkPoint derotated = {0};
+#line 362 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (space != NULL);
+#line 362 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (point != NULL);
+#line 363 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = dimensions_has_area (space);
+#line 363 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _vala_assert (_tmp0_, "space.has_area()");
+#line 365 "/home/jens/Source/shotwell/src/Orientation.vala"
+ memset (&derotated, 0, sizeof (GdkPoint));
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_LEFT:
+#line 1494 "Orientation.c"
+ {
+ GdkPoint _tmp1_ = {0};
+#line 370 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = *point;
+#line 370 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated = _tmp1_;
+#line 371 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1503 "Orientation.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_TOP_RIGHT:
+#line 1507 "Orientation.c"
+ {
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkPoint _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+#line 375 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = *space;
+#line 375 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = _tmp2_.width;
+#line 375 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = *point;
+#line 375 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = _tmp4_.x;
+#line 375 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.x = (_tmp3_ - _tmp5_) - 1;
+#line 376 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = *point;
+#line 376 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7_ = _tmp6_.y;
+#line 376 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.y = _tmp7_;
+#line 377 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1533 "Orientation.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_RIGHT:
+#line 1537 "Orientation.c"
+ {
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkPoint _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Dimensions _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkPoint _tmp14_ = {0};
+ gint _tmp15_ = 0;
+#line 381 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_ = *space;
+#line 381 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp9_ = _tmp8_.width;
+#line 381 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp10_ = *point;
+#line 381 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp11_ = _tmp10_.x;
+#line 381 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.x = (_tmp9_ - _tmp11_) - 1;
+#line 382 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp12_ = *space;
+#line 382 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp13_ = _tmp12_.height;
+#line 382 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp14_ = *point;
+#line 382 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp15_ = _tmp14_.y;
+#line 382 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.y = (_tmp13_ - _tmp15_) - 1;
+#line 383 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1569 "Orientation.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_BOTTOM_LEFT:
+#line 1573 "Orientation.c"
+ {
+ GdkPoint _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ Dimensions _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+#line 387 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp16_ = *point;
+#line 387 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp17_ = _tmp16_.x;
+#line 387 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.x = _tmp17_;
+#line 388 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp18_ = *space;
+#line 388 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp19_ = _tmp18_.height;
+#line 388 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp20_ = *point;
+#line 388 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp21_ = _tmp20_.y;
+#line 388 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.y = (_tmp19_ - _tmp21_) - 1;
+#line 389 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1599 "Orientation.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 1603 "Orientation.c"
+ {
+ GdkPoint _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ GdkPoint _tmp24_ = {0};
+ gint _tmp25_ = 0;
+#line 393 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp22_ = *point;
+#line 393 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp23_ = _tmp22_.y;
+#line 393 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.x = _tmp23_;
+#line 394 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp24_ = *point;
+#line 394 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp25_ = _tmp24_.x;
+#line 394 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.y = _tmp25_;
+#line 395 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1623 "Orientation.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 1627 "Orientation.c"
+ {
+ GdkPoint _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ Dimensions _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ GdkPoint _tmp30_ = {0};
+ gint _tmp31_ = 0;
+#line 399 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp26_ = *point;
+#line 399 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp27_ = _tmp26_.y;
+#line 399 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.x = _tmp27_;
+#line 400 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp28_ = *space;
+#line 400 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp29_ = _tmp28_.height;
+#line 400 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp30_ = *point;
+#line 400 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp31_ = _tmp30_.x;
+#line 400 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.y = (_tmp29_ - _tmp31_) - 1;
+#line 401 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1653 "Orientation.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 1657 "Orientation.c"
+ {
+ Dimensions _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ GdkPoint _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ Dimensions _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ GdkPoint _tmp38_ = {0};
+ gint _tmp39_ = 0;
+#line 405 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp32_ = *space;
+#line 405 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp33_ = _tmp32_.width;
+#line 405 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp34_ = *point;
+#line 405 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp35_ = _tmp34_.y;
+#line 405 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.x = (_tmp33_ - _tmp35_) - 1;
+#line 406 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp36_ = *space;
+#line 406 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp37_ = _tmp36_.height;
+#line 406 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp38_ = *point;
+#line 406 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp39_ = _tmp38_.x;
+#line 406 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.y = (_tmp37_ - _tmp39_) - 1;
+#line 407 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1689 "Orientation.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 1693 "Orientation.c"
+ {
+ Dimensions _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ GdkPoint _tmp42_ = {0};
+ gint _tmp43_ = 0;
+ GdkPoint _tmp44_ = {0};
+ gint _tmp45_ = 0;
+#line 411 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp40_ = *space;
+#line 411 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp41_ = _tmp40_.width;
+#line 411 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp42_ = *point;
+#line 411 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp43_ = _tmp42_.y;
+#line 411 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.x = (_tmp41_ - _tmp43_) - 1;
+#line 412 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp44_ = *point;
+#line 412 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp45_ = _tmp44_.x;
+#line 412 "/home/jens/Source/shotwell/src/Orientation.vala"
+ derotated.y = _tmp45_;
+#line 413 "/home/jens/Source/shotwell/src/Orientation.vala"
+ break;
+#line 1719 "Orientation.c"
+ }
+ default:
+ {
+#line 416 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:416: rotate_point: %d", (gint) self);
+#line 1725 "Orientation.c"
+ }
+ }
+#line 419 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result = derotated;
+#line 419 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return;
+#line 1732 "Orientation.c"
+}
+
+
+void orientation_rotate_box (Orientation self, Dimensions* space, Box* box, Box* result) {
+ GdkPoint top_left = {0};
+ GdkPoint bottom_right = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkPoint _tmp1_ = {0};
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GdkPoint _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GdkPoint _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ Dimensions _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkPoint _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ Dimensions _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ Dimensions _tmp22_ = {0};
+ GdkPoint _tmp23_ = {0};
+ GdkPoint _tmp24_ = {0};
+ Dimensions _tmp25_ = {0};
+ GdkPoint _tmp26_ = {0};
+ GdkPoint _tmp27_ = {0};
+ GdkPoint _tmp28_ = {0};
+ GdkPoint _tmp29_ = {0};
+ Box _tmp30_ = {0};
+#line 423 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (space != NULL);
+#line 423 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (box != NULL);
+#line 425 "/home/jens/Source/shotwell/src/Orientation.vala"
+ box_get_points (box, &_tmp0_, &_tmp1_);
+#line 425 "/home/jens/Source/shotwell/src/Orientation.vala"
+ top_left = _tmp0_;
+#line 425 "/home/jens/Source/shotwell/src/Orientation.vala"
+ bottom_right = _tmp1_;
+#line 427 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = top_left;
+#line 427 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = _tmp2_.x;
+#line 427 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = *space;
+#line 427 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = _tmp4_.width;
+#line 427 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = CLAMP (_tmp3_, 0, _tmp5_ - 1);
+#line 427 "/home/jens/Source/shotwell/src/Orientation.vala"
+ top_left.x = _tmp6_;
+#line 428 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7_ = top_left;
+#line 428 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_ = _tmp7_.y;
+#line 428 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp9_ = *space;
+#line 428 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp10_ = _tmp9_.height;
+#line 428 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp11_ = CLAMP (_tmp8_, 0, _tmp10_ - 1);
+#line 428 "/home/jens/Source/shotwell/src/Orientation.vala"
+ top_left.y = _tmp11_;
+#line 430 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp12_ = bottom_right;
+#line 430 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp13_ = _tmp12_.x;
+#line 430 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp14_ = *space;
+#line 430 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp15_ = _tmp14_.width;
+#line 430 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp16_ = CLAMP (_tmp13_, 0, _tmp15_ - 1);
+#line 430 "/home/jens/Source/shotwell/src/Orientation.vala"
+ bottom_right.x = _tmp16_;
+#line 431 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp17_ = bottom_right;
+#line 431 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp18_ = _tmp17_.y;
+#line 431 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp19_ = *space;
+#line 431 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp20_ = _tmp19_.height;
+#line 431 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp21_ = CLAMP (_tmp18_, 0, _tmp20_ - 1);
+#line 431 "/home/jens/Source/shotwell/src/Orientation.vala"
+ bottom_right.y = _tmp21_;
+#line 433 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp22_ = *space;
+#line 433 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp23_ = top_left;
+#line 433 "/home/jens/Source/shotwell/src/Orientation.vala"
+ orientation_rotate_point (self, &_tmp22_, &_tmp23_, &_tmp24_);
+#line 433 "/home/jens/Source/shotwell/src/Orientation.vala"
+ top_left = _tmp24_;
+#line 434 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp25_ = *space;
+#line 434 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp26_ = bottom_right;
+#line 434 "/home/jens/Source/shotwell/src/Orientation.vala"
+ orientation_rotate_point (self, &_tmp25_, &_tmp26_, &_tmp27_);
+#line 434 "/home/jens/Source/shotwell/src/Orientation.vala"
+ bottom_right = _tmp27_;
+#line 436 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp28_ = top_left;
+#line 436 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp29_ = bottom_right;
+#line 436 "/home/jens/Source/shotwell/src/Orientation.vala"
+ box_from_points (&_tmp28_, &_tmp29_, &_tmp30_);
+#line 436 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result = _tmp30_;
+#line 436 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return;
+#line 1854 "Orientation.c"
+}
+
+
+void orientation_derotate_box (Orientation self, Dimensions* space, Box* box, Box* result) {
+ GdkPoint top_left = {0};
+ GdkPoint bottom_right = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkPoint _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+ GdkPoint _tmp3_ = {0};
+ GdkPoint _tmp4_ = {0};
+ Dimensions _tmp5_ = {0};
+ GdkPoint _tmp6_ = {0};
+ GdkPoint _tmp7_ = {0};
+ GdkPoint _tmp8_ = {0};
+ GdkPoint _tmp9_ = {0};
+ Box _tmp10_ = {0};
+#line 440 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (space != NULL);
+#line 440 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_if_fail (box != NULL);
+#line 442 "/home/jens/Source/shotwell/src/Orientation.vala"
+ box_get_points (box, &_tmp0_, &_tmp1_);
+#line 442 "/home/jens/Source/shotwell/src/Orientation.vala"
+ top_left = _tmp0_;
+#line 442 "/home/jens/Source/shotwell/src/Orientation.vala"
+ bottom_right = _tmp1_;
+#line 444 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = *space;
+#line 444 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = top_left;
+#line 444 "/home/jens/Source/shotwell/src/Orientation.vala"
+ orientation_derotate_point (self, &_tmp2_, &_tmp3_, &_tmp4_);
+#line 444 "/home/jens/Source/shotwell/src/Orientation.vala"
+ top_left = _tmp4_;
+#line 445 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = *space;
+#line 445 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = bottom_right;
+#line 445 "/home/jens/Source/shotwell/src/Orientation.vala"
+ orientation_derotate_point (self, &_tmp5_, &_tmp6_, &_tmp7_);
+#line 445 "/home/jens/Source/shotwell/src/Orientation.vala"
+ bottom_right = _tmp7_;
+#line 447 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp8_ = top_left;
+#line 447 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp9_ = bottom_right;
+#line 447 "/home/jens/Source/shotwell/src/Orientation.vala"
+ box_from_points (&_tmp8_, &_tmp9_, &_tmp10_);
+#line 447 "/home/jens/Source/shotwell/src/Orientation.vala"
+ *result = _tmp10_;
+#line 447 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return;
+#line 1908 "Orientation.c"
+}
+
+
+GType orientation_get_type (void) {
+ static volatile gsize orientation_type_id__volatile = 0;
+ if (g_once_init_enter (&orientation_type_id__volatile)) {
+ static const GEnumValue values[] = {{ORIENTATION_MIN, "ORIENTATION_MIN", "min"}, {ORIENTATION_TOP_LEFT, "ORIENTATION_TOP_LEFT", "top-left"}, {ORIENTATION_TOP_RIGHT, "ORIENTATION_TOP_RIGHT", "top-right"}, {ORIENTATION_BOTTOM_RIGHT, "ORIENTATION_BOTTOM_RIGHT", "bottom-right"}, {ORIENTATION_BOTTOM_LEFT, "ORIENTATION_BOTTOM_LEFT", "bottom-left"}, {ORIENTATION_LEFT_TOP, "ORIENTATION_LEFT_TOP", "left-top"}, {ORIENTATION_RIGHT_TOP, "ORIENTATION_RIGHT_TOP", "right-top"}, {ORIENTATION_RIGHT_BOTTOM, "ORIENTATION_RIGHT_BOTTOM", "right-bottom"}, {ORIENTATION_LEFT_BOTTOM, "ORIENTATION_LEFT_BOTTOM", "left-bottom"}, {ORIENTATION_MAX, "ORIENTATION_MAX", "max"}, {0, NULL, NULL}};
+ GType orientation_type_id;
+ orientation_type_id = g_enum_register_static ("Orientation", values);
+ g_once_init_leave (&orientation_type_id__volatile, orientation_type_id);
+ }
+ return orientation_type_id__volatile;
+}
+
+
+GdkPixbuf* rotation_perform (Rotation self, GdkPixbuf* pixbuf) {
+ GdkPixbuf* result = NULL;
+#line 457 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 458 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 458 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_CLOCKWISE:
+#line 1932 "Orientation.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 460 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp0_ = pixbuf;
+#line 460 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp1_ = gdk_pixbuf_rotate_simple (_tmp0_, GDK_PIXBUF_ROTATE_CLOCKWISE);
+#line 460 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp1_;
+#line 460 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 1944 "Orientation.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_COUNTERCLOCKWISE:
+#line 1948 "Orientation.c"
+ {
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 463 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp2_ = pixbuf;
+#line 463 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp3_ = gdk_pixbuf_rotate_simple (_tmp2_, GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE);
+#line 463 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp3_;
+#line 463 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 1960 "Orientation.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_MIRROR:
+#line 1964 "Orientation.c"
+ {
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+#line 466 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp4_ = pixbuf;
+#line 466 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp5_ = gdk_pixbuf_flip (_tmp4_, TRUE);
+#line 466 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp5_;
+#line 466 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 1976 "Orientation.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_UPSIDE_DOWN:
+#line 1980 "Orientation.c"
+ {
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 469 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp6_ = pixbuf;
+#line 469 "/home/jens/Source/shotwell/src/Orientation.vala"
+ _tmp7_ = gdk_pixbuf_flip (_tmp6_, FALSE);
+#line 469 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = _tmp7_;
+#line 469 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 1992 "Orientation.c"
+ }
+ default:
+ {
+#line 472 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:472: Unknown rotation: %d", (gint) self);
+#line 1998 "Orientation.c"
+ }
+ }
+}
+
+
+Rotation rotation_opposite (Rotation self) {
+ Rotation result = 0;
+#line 477 "/home/jens/Source/shotwell/src/Orientation.vala"
+ switch (self) {
+#line 477 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_CLOCKWISE:
+#line 2010 "Orientation.c"
+ {
+#line 479 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ROTATION_COUNTERCLOCKWISE;
+#line 479 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 2016 "Orientation.c"
+ }
+#line 477 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_COUNTERCLOCKWISE:
+#line 2020 "Orientation.c"
+ {
+#line 482 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = ROTATION_CLOCKWISE;
+#line 482 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 2026 "Orientation.c"
+ }
+#line 477 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_MIRROR:
+#line 477 "/home/jens/Source/shotwell/src/Orientation.vala"
+ case ROTATION_UPSIDE_DOWN:
+#line 2032 "Orientation.c"
+ {
+#line 486 "/home/jens/Source/shotwell/src/Orientation.vala"
+ result = self;
+#line 486 "/home/jens/Source/shotwell/src/Orientation.vala"
+ return result;
+#line 2038 "Orientation.c"
+ }
+ default:
+ {
+#line 489 "/home/jens/Source/shotwell/src/Orientation.vala"
+ g_error ("Orientation.vala:489: Unknown rotation: %d", (gint) self);
+#line 2044 "Orientation.c"
+ }
+ }
+}
+
+
+GType rotation_get_type (void) {
+ static volatile gsize rotation_type_id__volatile = 0;
+ if (g_once_init_enter (&rotation_type_id__volatile)) {
+ static const GEnumValue values[] = {{ROTATION_CLOCKWISE, "ROTATION_CLOCKWISE", "clockwise"}, {ROTATION_COUNTERCLOCKWISE, "ROTATION_COUNTERCLOCKWISE", "counterclockwise"}, {ROTATION_MIRROR, "ROTATION_MIRROR", "mirror"}, {ROTATION_UPSIDE_DOWN, "ROTATION_UPSIDE_DOWN", "upside-down"}, {0, NULL, NULL}};
+ GType rotation_type_id;
+ rotation_type_id = g_enum_register_static ("Rotation", values);
+ g_once_init_leave (&rotation_type_id__volatile, rotation_type_id);
+ }
+ return rotation_type_id__volatile;
+}
+
+
+
diff --git a/src/Page.c b/src/Page.c
new file mode 100644
index 0000000..81312ba
--- /dev/null
+++ b/src/Page.c
@@ -0,0 +1,16211 @@
+/* Page.c generated by valac 0.32.1, the Vala compiler
+ * generated from Page.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gio/gio.h>
+#include <cairo.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <pango/pango.h>
+#include <pango/pangocairo.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+typedef struct _InjectionGroupPrivate InjectionGroupPrivate;
+
+#define INJECTION_GROUP_TYPE_ELEMENT (injection_group_element_get_type ())
+#define INJECTION_GROUP_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElement))
+#define INJECTION_GROUP_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElementClass))
+#define INJECTION_GROUP_IS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INJECTION_GROUP_TYPE_ELEMENT))
+#define INJECTION_GROUP_IS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), INJECTION_GROUP_TYPE_ELEMENT))
+#define INJECTION_GROUP_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElementClass))
+
+typedef struct _InjectionGroupElement InjectionGroupElement;
+typedef struct _InjectionGroupElementClass InjectionGroupElementClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _injection_group_element_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_element_unref (var), NULL)))
+typedef struct _InjectionGroupElementPrivate InjectionGroupElementPrivate;
+typedef struct _InjectionGroupParamSpecElement InjectionGroupParamSpecElement;
+typedef struct _ParamSpecInjectionGroup ParamSpecInjectionGroup;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _injection_group_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_CHECKERBOARD_LAYOUT (checkerboard_layout_get_type ())
+#define CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayout))
+#define CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))
+#define IS_CHECKERBOARD_LAYOUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_LAYOUT))
+#define IS_CHECKERBOARD_LAYOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_LAYOUT))
+#define CHECKERBOARD_LAYOUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_LAYOUT, CheckerboardLayoutClass))
+
+typedef struct _CheckerboardLayout CheckerboardLayout;
+typedef struct _CheckerboardLayoutClass CheckerboardLayoutClass;
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_ADJUSTMENT_RELATION (adjustment_relation_get_type ())
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_COMPASS_POINT (compass_point_get_type ())
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate;
+
+#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ())
+#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer))
+#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER))
+#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER))
+#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+
+typedef struct _ZoomBuffer ZoomBuffer;
+typedef struct _ZoomBufferClass ZoomBufferClass;
+
+#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())
+
+#define TYPE_TRANSITION_CLOCK (transition_clock_get_type ())
+#define TRANSITION_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSITION_CLOCK, TransitionClock))
+#define TRANSITION_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSITION_CLOCK, TransitionClockClass))
+#define IS_TRANSITION_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSITION_CLOCK))
+#define IS_TRANSITION_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSITION_CLOCK))
+#define TRANSITION_CLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSITION_CLOCK, TransitionClockClass))
+
+typedef struct _TransitionClock TransitionClock;
+typedef struct _TransitionClockClass TransitionClockClass;
+
+#define TYPE_ZOOM_STATE (zoom_state_get_type ())
+typedef struct _ZoomState ZoomState;
+#define _transition_clock_unref0(var) ((var == NULL) ? NULL : (var = (transition_clock_unref (var), NULL)))
+#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+
+#define TYPE_TRANSITION_EFFECTS_MANAGER (transition_effects_manager_get_type ())
+#define TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManager))
+#define TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))
+#define IS_TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSITION_EFFECTS_MANAGER))
+#define IS_TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSITION_EFFECTS_MANAGER))
+#define TRANSITION_EFFECTS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))
+
+typedef struct _TransitionEffectsManager TransitionEffectsManager;
+typedef struct _TransitionEffectsManagerClass TransitionEffectsManagerClass;
+#define _transition_effects_manager_unref0(var) ((var == NULL) ? NULL : (var = (transition_effects_manager_unref (var), NULL)))
+
+#define TYPE_DIRECTION (direction_get_type ())
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_DRAG_AND_DROP_HANDLER (drag_and_drop_handler_get_type ())
+#define DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandler))
+#define DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))
+#define IS_DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DRAG_AND_DROP_HANDLER))
+#define IS_DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DRAG_AND_DROP_HANDLER))
+#define DRAG_AND_DROP_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))
+
+typedef struct _DragAndDropHandler DragAndDropHandler;
+typedef struct _DragAndDropHandlerClass DragAndDropHandlerClass;
+typedef struct _DragAndDropHandlerPrivate DragAndDropHandlerPrivate;
+
+#define TYPE_EXPORTER_UI (exporter_ui_get_type ())
+#define EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER_UI, ExporterUI))
+#define EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER_UI, ExporterUIClass))
+#define IS_EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER_UI))
+#define IS_EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER_UI))
+#define EXPORTER_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER_UI, ExporterUIClass))
+
+typedef struct _ExporterUI ExporterUI;
+typedef struct _ExporterUIClass ExporterUIClass;
+
+#define DRAG_AND_DROP_HANDLER_TYPE_TARGET_TYPE (drag_and_drop_handler_target_type_get_type ())
+#define _exporter_ui_unref0(var) ((var == NULL) ? NULL : (var = (exporter_ui_unref (var), NULL)))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_EXPORTER (exporter_get_type ())
+#define EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER, Exporter))
+#define EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER, ExporterClass))
+#define IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER))
+#define IS_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER))
+#define EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER, ExporterClass))
+
+typedef struct _Exporter Exporter;
+typedef struct _ExporterClass ExporterClass;
+typedef struct _ParamSpecDragAndDropHandler ParamSpecDragAndDropHandler;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _InjectionGroup {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ InjectionGroupPrivate * priv;
+};
+
+struct _InjectionGroupClass {
+ GTypeClass parent_class;
+ void (*finalize) (InjectionGroup *self);
+};
+
+struct _InjectionGroupPrivate {
+ gchar* path;
+ GeeArrayList* elements;
+ gint separator_id;
+};
+
+struct _InjectionGroupElement {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ InjectionGroupElementPrivate * priv;
+ gchar* name;
+ gchar* action;
+ GtkUIManagerItemType kind;
+};
+
+struct _InjectionGroupElementClass {
+ GTypeClass parent_class;
+ void (*finalize) (InjectionGroupElement *self);
+};
+
+struct _InjectionGroupParamSpecElement {
+ GParamSpec parent_instance;
+};
+
+struct _ParamSpecInjectionGroup {
+ GParamSpec parent_instance;
+};
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+struct _PagePrivate {
+ gchar* page_name;
+ ViewCollection* view;
+ GtkWindow* container;
+ gchar* toolbar_path;
+ GdkRectangle last_position;
+ GtkWidget* event_source;
+ gboolean dnd_enabled;
+ gulong last_configure_ms;
+ gboolean report_move_finished;
+ gboolean report_resize_finished;
+ GdkPoint last_down;
+ gboolean is_destroyed;
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+ GdkCursorType last_cursor;
+ gboolean cursor_hidden;
+ gint cursor_hide_msec;
+ guint last_timeout_id;
+ gint cursor_hide_time_cached;
+ gboolean are_actions_attached;
+ OneShotScheduler* update_actions_scheduler;
+ GtkActionGroup* action_group;
+ GtkActionGroup** common_action_groups;
+ gint common_action_groups_length1;
+ gint _common_action_groups_size_;
+ guint* merge_ids;
+ gint merge_ids_length1;
+ gint _merge_ids_size_;
+};
+
+typedef void (*OneShotCallback) (void* user_data);
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+struct _CheckerboardPagePrivate {
+ CheckerboardLayout* layout;
+ gchar* item_context_menu_path;
+ gchar* page_context_menu_path;
+ GtkViewport* viewport;
+ CheckerboardItem* highlighted;
+ gboolean autoscroll_scheduled;
+ CheckerboardItem* activated_item;
+ GeeArrayList* previously_selected;
+};
+
+typedef enum {
+ ADJUSTMENT_RELATION_BELOW,
+ ADJUSTMENT_RELATION_IN_RANGE,
+ ADJUSTMENT_RELATION_ABOVE
+} AdjustmentRelation;
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+typedef enum {
+ COMPASS_POINT_NORTH,
+ COMPASS_POINT_SOUTH,
+ COMPASS_POINT_EAST,
+ COMPASS_POINT_WEST
+} CompassPoint;
+
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
+typedef enum {
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
+} SinglePhotoPageUpdateReason;
+
+struct _SinglePhotoPage {
+ Page parent_instance;
+ SinglePhotoPagePrivate * priv;
+ GtkDrawingArea* canvas;
+ GtkViewport* viewport;
+};
+
+struct _SinglePhotoPageClass {
+ PageClass parent_class;
+ gboolean (*is_zoom_supported) (SinglePhotoPage* self);
+ void (*cancel_zoom) (SinglePhotoPage* self);
+ void (*save_zoom_state) (SinglePhotoPage* self);
+ void (*restore_zoom_state) (SinglePhotoPage* self);
+ ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self);
+ void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+ void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*on_previous_photo) (SinglePhotoPage* self);
+ void (*on_next_photo) (SinglePhotoPage* self);
+};
+
+struct _ZoomState {
+ Dimensions content_dimensions;
+ Dimensions viewport_dimensions;
+ gdouble zoom_factor;
+ gdouble interpolation_factor;
+ gdouble min_factor;
+ gdouble max_factor;
+ GdkPoint viewport_center;
+};
+
+struct _SinglePhotoPagePrivate {
+ gboolean scale_up_to_viewport;
+ TransitionClock* transition_clock;
+ gint transition_duration_msec;
+ cairo_surface_t* pixmap;
+ cairo_t* pixmap_ctx;
+ cairo_t* text_ctx;
+ Dimensions pixmap_dim;
+ GdkPixbuf* unscaled;
+ Dimensions max_dim;
+ GdkPixbuf* scaled;
+ GdkPixbuf* old_scaled;
+ GdkRectangle scaled_pos;
+ ZoomState static_zoom_state;
+ gboolean zoom_high_quality;
+ ZoomState saved_zoom_state;
+ gboolean has_saved_zoom_state;
+ guint32 last_nav_key;
+};
+
+typedef enum {
+ DIRECTION_FORWARD,
+ DIRECTION_BACKWARD
+} Direction;
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef void (*TransitionClockRepaintCallback) (void* user_data);
+struct _DragAndDropHandler {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DragAndDropHandlerPrivate * priv;
+};
+
+struct _DragAndDropHandlerClass {
+ GTypeClass parent_class;
+ void (*finalize) (DragAndDropHandler *self);
+};
+
+struct _DragAndDropHandlerPrivate {
+ Page* page;
+ GtkWidget* event_source;
+ GFile* drag_destination;
+ ExporterUI* exporter;
+};
+
+typedef enum {
+ DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS,
+ DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST
+} DragAndDropHandlerTargetType;
+
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+typedef void (*ExporterCompletionCallback) (Exporter* exporter, gboolean is_cancelled, void* user_data);
+struct _ParamSpecDragAndDropHandler {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer injection_group_parent_class = NULL;
+static gpointer injection_group_element_parent_class = NULL;
+static gpointer page_parent_class = NULL;
+static gpointer checkerboard_page_parent_class = NULL;
+static gpointer single_photo_page_parent_class = NULL;
+static gpointer drag_and_drop_handler_parent_class = NULL;
+static GdkAtom* drag_and_drop_handler_XDS_ATOM;
+static GdkAtom* drag_and_drop_handler_XDS_ATOM = NULL;
+static GdkAtom* drag_and_drop_handler_TEXT_ATOM;
+static GdkAtom* drag_and_drop_handler_TEXT_ATOM = NULL;
+static guint8* drag_and_drop_handler_XDS_FAKE_TARGET;
+static gint drag_and_drop_handler_XDS_FAKE_TARGET_length1;
+static guint8* drag_and_drop_handler_XDS_FAKE_TARGET = NULL;
+static gint drag_and_drop_handler_XDS_FAKE_TARGET_length1 = 0;
+static gint _drag_and_drop_handler_XDS_FAKE_TARGET_size_ = 0;
+
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+gpointer injection_group_element_ref (gpointer instance);
+void injection_group_element_unref (gpointer instance);
+GParamSpec* injection_group_param_spec_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void injection_group_value_set_element (GValue* value, gpointer v_object);
+void injection_group_value_take_element (GValue* value, gpointer v_object);
+gpointer injection_group_value_get_element (const GValue* value);
+GType injection_group_element_get_type (void) G_GNUC_CONST;
+#define INJECTION_GROUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_INJECTION_GROUP, InjectionGroupPrivate))
+enum {
+ INJECTION_GROUP_DUMMY_PROPERTY
+};
+InjectionGroup* injection_group_new (const gchar* path);
+InjectionGroup* injection_group_construct (GType object_type, const gchar* path);
+gchar* injection_group_get_path (InjectionGroup* self);
+GeeList* injection_group_get_elements (InjectionGroup* self);
+void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action);
+InjectionGroupElement* injection_group_element_new (const gchar* name, const gchar* action, GtkUIManagerItemType kind);
+InjectionGroupElement* injection_group_element_construct (GType object_type, const gchar* name, const gchar* action, GtkUIManagerItemType kind);
+void injection_group_add_menu (InjectionGroup* self, const gchar* name, const gchar* action);
+void injection_group_add_separator (InjectionGroup* self);
+enum {
+ INJECTION_GROUP_ELEMENT_DUMMY_PROPERTY
+};
+static void injection_group_element_finalize (InjectionGroupElement* obj);
+static void injection_group_finalize (InjectionGroup* obj);
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+#define PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PAGE, PagePrivate))
+enum {
+ PAGE_DUMMY_PROPERTY
+};
+#define PAGE_CONSIDER_CONFIGURE_HALTED_MSEC 400
+Page* page_construct (GType object_type, const gchar* page_name);
+ViewCollection* view_collection_new (const gchar* name);
+ViewCollection* view_collection_construct (GType object_type, const gchar* name);
+gboolean page_on_context_keypress (Page* self);
+static gboolean _page_on_context_keypress_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self);
+static void page_init_ui (Page* self);
+static void page_attach_view_signals (Page* self);
+static void _page_attach_view_signals_gtk_widget_realize (GtkWidget* _sender, gpointer self);
+static void page_real_destroy (GtkWidget* base);
+static void page_detach_event_source (Page* self);
+static void page_detach_view_signals (Page* self);
+void data_collection_close (DataCollection* self);
+void page_clear_container (Page* self);
+void one_shot_scheduler_cancel (OneShotScheduler* self);
+gchar* page_get_page_name (Page* self);
+void page_set_page_name (Page* self, const gchar* page_name);
+static void page_real_set_page_name (Page* self, const gchar* page_name);
+gchar* page_to_string (Page* self);
+ViewCollection* page_get_view (Page* self);
+GtkWindow* page_get_container (Page* self);
+void page_set_container (Page* self, GtkWindow* container);
+static void page_real_set_container (Page* self, GtkWindow* container);
+GtkUIManager* page_window_get_ui_manager (PageWindow* self);
+static void page_real_clear_container (Page* self);
+void page_set_event_source (Page* self, GtkWidget* event_source);
+static gboolean page_on_button_pressed_internal (Page* self, GdkEventButton* event);
+static gboolean _page_on_button_pressed_internal_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static gboolean page_on_button_released_internal (Page* self, GdkEventButton* event);
+static gboolean _page_on_button_released_internal_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static gboolean page_on_motion_internal (Page* self, GdkEventMotion* event);
+static gboolean _page_on_motion_internal_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self);
+gboolean page_on_leave_notify_event (Page* self);
+static gboolean _page_on_leave_notify_event_gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
+static gboolean page_on_mousewheel_internal (Page* self, GdkEventScroll* event);
+static gboolean _page_on_mousewheel_internal_gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self);
+void page_on_event_source_realize (Page* self);
+static void _page_on_event_source_realize_gtk_widget_realize (GtkWidget* _sender, gpointer self);
+void page_disable_drag_source (Page* self);
+GtkWidget* page_get_event_source (Page* self);
+GtkMenuBar* page_get_menubar (Page* self);
+static GtkMenuBar* page_real_get_menubar (Page* self);
+GtkWidget* page_get_page_ui_widget (Page* self, const gchar* path);
+static GtkWidget* page_real_get_page_ui_widget (Page* self, const gchar* path);
+GtkToolbar* page_get_toolbar (Page* self);
+static GtkToolbar* page_real_get_toolbar (Page* self);
+GtkMenu* page_get_page_context_menu (Page* self);
+static GtkMenu* page_real_get_page_context_menu (Page* self);
+void page_switching_from (Page* self);
+static void page_real_switching_from (Page* self);
+static void page_remove_ui (Page* self);
+void page_switched_to (Page* self);
+static void page_real_switched_to (Page* self);
+static void page_add_ui (Page* self);
+static void page_update_modifiers (Page* self);
+void page_ready (Page* self);
+static void page_real_ready (Page* self);
+gboolean page_is_in_view (Page* self);
+void page_switching_to_fullscreen (Page* self, FullscreenWindow* fsw);
+static void page_real_switching_to_fullscreen (Page* self, FullscreenWindow* fsw);
+void page_returning_from_fullscreen (Page* self, FullscreenWindow* fsw);
+static void page_real_returning_from_fullscreen (Page* self, FullscreenWindow* fsw);
+GtkAction* page_get_action (Page* self, const gchar* name);
+GtkAction* page_get_common_action (Page* self, const gchar* name, gboolean log_warning);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void page_set_action_important (Page* self, const gchar* name, gboolean important);
+void page_set_action_visible (Page* self, const gchar* name, gboolean visible);
+void page_set_action_short_label (Page* self, const gchar* name, const gchar* short_label);
+void page_set_action_details (Page* self, const gchar* name, const gchar* label, const gchar* tooltip, gboolean sensitive);
+void page_activate_action (Page* self, const gchar* name);
+void page_set_common_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void page_set_common_action_label (Page* self, const gchar* name, const gchar* label);
+void page_set_common_action_important (Page* self, const gchar* name, gboolean important);
+void page_activate_common_action (Page* self, const gchar* name);
+gboolean page_get_ctrl_pressed (Page* self);
+gboolean page_get_alt_pressed (Page* self);
+gboolean page_get_shift_pressed (Page* self);
+gboolean page_get_super_pressed (Page* self);
+static gboolean page_get_modifiers (Page* self, gboolean* ctrl, gboolean* alt, gboolean* shift, gboolean* super);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+gboolean page_on_ctrl_released (Page* self, GdkEventKey* event);
+gboolean page_on_ctrl_pressed (Page* self, GdkEventKey* event);
+gboolean page_on_alt_released (Page* self, GdkEventKey* event);
+gboolean page_on_alt_pressed (Page* self, GdkEventKey* event);
+gboolean page_on_shift_released (Page* self, GdkEventKey* event);
+gboolean page_on_shift_pressed (Page* self, GdkEventKey* event);
+gboolean page_on_super_released (Page* self, GdkEventKey* event);
+gboolean page_on_super_pressed (Page* self, GdkEventKey* event);
+PageWindow* page_get_page_window (Page* self);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+CommandManager* app_window_get_command_manager (void);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+GtkToggleActionEntry* page_init_collect_toggle_action_entries (Page* self, int* result_length1);
+void page_register_radio_actions (Page* self, GtkActionGroup* action_group);
+GtkActionGroup** app_window_get_common_action_groups (AppWindow* self, int* result_length1);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static void page_init_load_ui (Page* self, const gchar* ui_filename);
+InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1);
+static void _vala_array_add249 (guint** array, int* length, int* size, guint value);
+void app_window_replace_common_placeholders (AppWindow* self, GtkUIManager* ui);
+void page_init_toolbar (Page* self, const gchar* path);
+gint view_collection_get_selected_count (ViewCollection* self);
+gint data_collection_get_count (DataCollection* self);
+void page_init_actions (Page* self, gint selected_count, gint count);
+void page_update_actions (Page* self, gint selected_count, gint count);
+static void page_on_update_actions (Page* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+static void _page_on_update_actions_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
+static void _page_on_update_actions_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self);
+static void _page_on_update_actions_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self);
+static void _page_on_update_actions_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void page_on_update_actions_on_idle (Page* self);
+static void _page_on_update_actions_on_idle_one_shot_callback (gpointer self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+void one_shot_scheduler_at_priority_idle (OneShotScheduler* self, gint priority);
+GFile* resources_get_ui (const gchar* filename);
+static void _vala_array_add250 (guint** array, int* length, int* size, guint value);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void application_panic (Application* self);
+static void page_real_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* page_real_init_collect_action_entries (Page* self, int* result_length1);
+static GtkToggleActionEntry* page_real_init_collect_toggle_action_entries (Page* self, int* result_length1);
+static void page_real_register_radio_actions (Page* self, GtkActionGroup* action_group);
+static InjectionGroup** page_real_init_collect_injection_groups (Page* self, int* result_length1);
+static void page_real_init_actions (Page* self, gint selected_count, gint count);
+static void page_real_update_actions (Page* self, gint selected_count, gint count);
+void page_enable_drag_source (Page* self, GdkDragAction actions, GtkTargetEntry* source_target_entries, int source_target_entries_length1);
+static void page_on_drag_begin (Page* self, GdkDragContext* context);
+static void _page_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self);
+static void page_on_drag_data_get (Page* self, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time);
+static void _page_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self);
+static void page_on_drag_data_delete (Page* self, GdkDragContext* context);
+static void _page_on_drag_data_delete_gtk_widget_drag_data_delete (GtkWidget* _sender, GdkDragContext* context, gpointer self);
+static void page_on_drag_end (Page* self, GdkDragContext* context);
+static void _page_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self);
+static gboolean page_on_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+static gboolean _page_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self);
+gboolean page_is_dnd_enabled (Page* self);
+gboolean page_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+static gboolean page_real_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+gboolean page_get_event_source_pointer (Page* self, gint* x, gint* y, GdkModifierType* mask);
+gboolean page_on_left_click (Page* self, GdkEventButton* event);
+static gboolean page_real_on_left_click (Page* self, GdkEventButton* event);
+gboolean page_on_middle_click (Page* self, GdkEventButton* event);
+static gboolean page_real_on_middle_click (Page* self, GdkEventButton* event);
+gboolean page_on_right_click (Page* self, GdkEventButton* event);
+static gboolean page_real_on_right_click (Page* self, GdkEventButton* event);
+gboolean page_on_left_released (Page* self, GdkEventButton* event);
+static gboolean page_real_on_left_released (Page* self, GdkEventButton* event);
+gboolean page_on_middle_released (Page* self, GdkEventButton* event);
+static gboolean page_real_on_middle_released (Page* self, GdkEventButton* event);
+gboolean page_on_right_released (Page* self, GdkEventButton* event);
+static gboolean page_real_on_right_released (Page* self, GdkEventButton* event);
+static gboolean page_real_on_ctrl_pressed (Page* self, GdkEventKey* event);
+static gboolean page_real_on_ctrl_released (Page* self, GdkEventKey* event);
+static gboolean page_real_on_alt_pressed (Page* self, GdkEventKey* event);
+static gboolean page_real_on_alt_released (Page* self, GdkEventKey* event);
+static gboolean page_real_on_shift_pressed (Page* self, GdkEventKey* event);
+static gboolean page_real_on_shift_released (Page* self, GdkEventKey* event);
+static gboolean page_real_on_super_pressed (Page* self, GdkEventKey* event);
+static gboolean page_real_on_super_released (Page* self, GdkEventKey* event);
+gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event);
+static gboolean page_real_on_app_key_pressed (Page* self, GdkEventKey* event);
+gboolean page_on_app_key_released (Page* self, GdkEventKey* event);
+static gboolean page_real_on_app_key_released (Page* self, GdkEventKey* event);
+gboolean page_notify_app_key_pressed (Page* self, GdkEventKey* event);
+gboolean page_notify_app_key_released (Page* self, GdkEventKey* event);
+gboolean page_notify_app_focus_in (Page* self, GdkEventFocus* event);
+gboolean page_notify_app_focus_out (Page* self, GdkEventFocus* event);
+void page_on_move (Page* self, GdkRectangle* rect);
+static void page_real_on_move (Page* self, GdkRectangle* rect);
+void page_on_move_start (Page* self, GdkRectangle* rect);
+static void page_real_on_move_start (Page* self, GdkRectangle* rect);
+void page_on_move_finished (Page* self, GdkRectangle* rect);
+static void page_real_on_move_finished (Page* self, GdkRectangle* rect);
+void page_on_resize (Page* self, GdkRectangle* rect);
+static void page_real_on_resize (Page* self, GdkRectangle* rect);
+void page_on_resize_start (Page* self, GdkRectangle* rect);
+static void page_real_on_resize_start (Page* self, GdkRectangle* rect);
+void page_on_resize_finished (Page* self, GdkRectangle* rect);
+static void page_real_on_resize_finished (Page* self, GdkRectangle* rect);
+gboolean page_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+static gboolean page_real_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+gboolean page_notify_configure_event (Page* self, GdkEventConfigure* event);
+static gboolean page_check_configure_halted (Page* self);
+static gboolean _page_check_configure_halted_gsource_func (gpointer self);
+gulong now_ms (void);
+gboolean page_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+static gboolean page_real_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+static void page_check_cursor_hiding (Page* self);
+static gboolean page_real_on_leave_notify_event (Page* self);
+gboolean page_on_mousewheel_up (Page* self, GdkEventScroll* event);
+gboolean page_on_mousewheel_down (Page* self, GdkEventScroll* event);
+gboolean page_on_mousewheel_left (Page* self, GdkEventScroll* event);
+gboolean page_on_mousewheel_right (Page* self, GdkEventScroll* event);
+static gboolean page_real_on_mousewheel_up (Page* self, GdkEventScroll* event);
+static gboolean page_real_on_mousewheel_down (Page* self, GdkEventScroll* event);
+static gboolean page_real_on_mousewheel_left (Page* self, GdkEventScroll* event);
+static gboolean page_real_on_mousewheel_right (Page* self, GdkEventScroll* event);
+static gboolean page_real_on_context_keypress (Page* self);
+gboolean page_on_context_buttonpress (Page* self, GdkEventButton* event);
+static gboolean page_real_on_context_buttonpress (Page* self, GdkEventButton* event);
+gboolean page_on_context_invoked (Page* self);
+static gboolean page_real_on_context_invoked (Page* self);
+gboolean page_popup_context_menu (Page* self, GtkMenu* context_menu, GdkEventButton* event);
+void page_set_cursor_hide_time (Page* self, gint hide_time);
+void page_start_cursor_hiding (Page* self);
+void page_stop_cursor_hiding (Page* self);
+void page_suspend_cursor_hiding (Page* self);
+void page_restore_cursor_hiding (Page* self);
+void page_set_page_cursor (Page* self, GdkCursorType cursor_type);
+static void page_real_set_page_cursor (Page* self, GdkCursorType cursor_type);
+static gboolean page_on_hide_cursor (Page* self);
+static gboolean _page_on_hide_cursor_gsource_func (gpointer self);
+static void page_finalize (GObject* obj);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType checkerboard_layout_get_type (void) G_GNUC_CONST;
+#define CHECKERBOARD_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CHECKERBOARD_PAGE, CheckerboardPagePrivate))
+enum {
+ CHECKERBOARD_PAGE_DUMMY_PROPERTY
+};
+#define CHECKERBOARD_PAGE_AUTOSCROLL_PIXELS 50
+#define CHECKERBOARD_PAGE_AUTOSCROLL_TICKS_MSEC 50
+CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name);
+CheckerboardLayout* checkerboard_layout_new (ViewCollection* view);
+CheckerboardLayout* checkerboard_layout_construct (GType object_type, ViewCollection* view);
+void checkerboard_layout_set_name (CheckerboardLayout* self, const gchar* name);
+void checkerboard_layout_set_adjustments (CheckerboardLayout* self, GtkAdjustment* hadjustment, GtkAdjustment* vadjustment);
+static void checkerboard_page_on_items_hidden (CheckerboardPage* self, GeeIterable* hidden);
+static void _checkerboard_page_on_items_hidden_view_collection_items_hidden (ViewCollection* _sender, GeeCollection* hidden, gpointer self);
+static void checkerboard_page_on_contents_altered (CheckerboardPage* self, GeeIterable* added, GeeIterable* removed);
+static void _checkerboard_page_on_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void checkerboard_page_on_items_state_changed (CheckerboardPage* self, GeeIterable* changed);
+static void _checkerboard_page_on_items_state_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
+static void checkerboard_page_on_items_visibility_changed (CheckerboardPage* self, GeeCollection* changed);
+static void _checkerboard_page_on_items_visibility_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self);
+void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path);
+void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path);
+GtkMenu* checkerboard_page_get_context_menu (CheckerboardPage* self);
+GtkMenu* checkerboard_page_get_item_context_menu (CheckerboardPage* self);
+static GtkMenu* checkerboard_page_real_get_item_context_menu (CheckerboardPage* self);
+static GtkMenu* checkerboard_page_real_get_page_context_menu (Page* base);
+static gboolean checkerboard_page_real_on_context_keypress (Page* base);
+gchar* checkerboard_page_get_view_empty_message (CheckerboardPage* self);
+static gchar* checkerboard_page_real_get_view_empty_message (CheckerboardPage* self);
+gchar* checkerboard_page_get_filter_no_match_message (CheckerboardPage* self);
+static gchar* checkerboard_page_real_get_filter_no_match_message (CheckerboardPage* self);
+void checkerboard_page_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+static void checkerboard_page_real_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+CheckerboardLayout* checkerboard_page_get_checkerboard_layout (CheckerboardPage* self);
+SearchViewFilter* checkerboard_page_get_search_view_filter (CheckerboardPage* self);
+static SearchViewFilter* checkerboard_page_real_get_search_view_filter (CheckerboardPage* self);
+CoreViewTracker* checkerboard_page_get_view_tracker (CheckerboardPage* self);
+static CoreViewTracker* checkerboard_page_real_get_view_tracker (CheckerboardPage* self);
+static void checkerboard_page_real_switching_from (Page* base);
+void checkerboard_layout_set_in_view (CheckerboardLayout* self, gboolean in_view);
+static void checkerboard_page_on_view_filter_refresh (CheckerboardPage* self);
+static void _checkerboard_page_on_view_filter_refresh_view_filter_refresh (ViewFilter* _sender, gpointer self);
+void view_collection_unselect_all (ViewCollection* self);
+static void checkerboard_page_real_switched_to (Page* base);
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+GType adjustment_relation_get_type (void) G_GNUC_CONST;
+AdjustmentRelation get_adjustment_relation (GtkAdjustment* adjustment, gint value);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+#define CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING 24
+static void checkerboard_page_update_view_filter_message (CheckerboardPage* self);
+gboolean view_collection_are_items_filtered_out (ViewCollection* self);
+void checkerboard_page_set_page_message (CheckerboardPage* self, const gchar* message);
+void checkerboard_page_unset_page_message (CheckerboardPage* self);
+void checkerboard_layout_set_message (CheckerboardLayout* self, const gchar* text);
+void checkerboard_layout_unset_message (CheckerboardLayout* self);
+static void checkerboard_page_real_set_page_name (Page* base, const gchar* name);
+CheckerboardItem* checkerboard_page_get_item_at_pixel (CheckerboardPage* self, gdouble x, gdouble y);
+CheckerboardItem* checkerboard_layout_get_item_at_pixel (CheckerboardLayout* self, gdouble xd, gdouble yd);
+static gboolean checkerboard_page_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+GType compass_point_get_type (void) G_GNUC_CONST;
+void checkerboard_page_move_cursor (CheckerboardPage* self, CompassPoint point);
+void checkerboard_page_select_anchor_to_cursor (CheckerboardPage* self, guint state);
+DataView* view_collection_get_first (ViewCollection* self);
+void checkerboard_page_cursor_to_item (CheckerboardPage* self, CheckerboardItem* item);
+DataView* view_collection_get_last (ViewCollection* self);
+void checkerboard_page_keyboard_modifiers_init (CheckerboardPageKeyboardModifiers *self, Page* page);
+GType marker_get_type (void) G_GNUC_CONST;
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+CheckerboardItem* checkerboard_layout_get_cursor (CheckerboardLayout* self);
+void view_collection_toggle_marked (ViewCollection* self, Marker* marker);
+static gboolean checkerboard_page_real_on_left_click (Page* base, GdkEventButton* event);
+gboolean checkerboard_layout_handle_left_click (CheckerboardLayout* self, CheckerboardItem* item, gdouble xd, gdouble yd, GdkModifierType mask);
+gboolean data_view_is_selected (DataView* self);
+void checkerboard_page_select_between_items (CheckerboardPage* self, CheckerboardItem* item_start, CheckerboardItem* item_end);
+Marker* data_collection_start_marking (DataCollection* self);
+void marker_mark_many (Marker* self, GeeCollection* list);
+GeeList* view_collection_get_selected (ViewCollection* self);
+void view_collection_unselect_and_select_marked (ViewCollection* self, Marker* unselect, Marker* select);
+void checkerboard_layout_set_cursor (CheckerboardLayout* self, CheckerboardItem* item);
+void checkerboard_layout_set_drag_select_origin (CheckerboardLayout* self, gint x, gint y);
+static gboolean checkerboard_page_real_on_left_released (Page* base, GdkEventButton* event);
+gboolean checkerboard_layout_is_drag_select_active (CheckerboardLayout* self);
+void checkerboard_layout_clear_drag_select (CheckerboardLayout* self);
+void view_collection_unselect_all_but (ViewCollection* self, DataView* exception);
+static gboolean checkerboard_page_real_on_right_click (Page* base, GdkEventButton* event);
+gboolean checkerboard_page_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+static gboolean checkerboard_page_real_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+gboolean checkerboard_layout_handle_mouse_motion (CheckerboardLayout* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+void checkerboard_item_unbrighten (CheckerboardItem* self);
+void checkerboard_item_brighten (CheckerboardItem* self);
+static gboolean checkerboard_page_real_on_motion (Page* base, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+void checkerboard_layout_set_drag_select_endpoint (CheckerboardLayout* self, gint x, gint y);
+static void checkerboard_page_updated_selection_band (CheckerboardPage* self);
+static gboolean checkerboard_page_selection_autoscroll (CheckerboardPage* self);
+static gboolean _checkerboard_page_selection_autoscroll_gsource_func (gpointer self);
+GeeList* checkerboard_layout_items_in_selection_band (CheckerboardLayout* self);
+void marker_unmark_many (Marker* self, GeeCollection* list);
+gboolean marker_toggle (Marker* self, DataObject* object);
+void marker_unmark (Marker* self, DataObject* object);
+void marker_mark (Marker* self, DataObject* object);
+void view_collection_select_marked (ViewCollection* self, Marker* marker);
+void view_collection_unselect_marked (ViewCollection* self, Marker* marker);
+gboolean data_collection_contains (DataCollection* self, DataObject* object);
+CheckerboardItem* checkerboard_layout_get_item_at_coordinate (CheckerboardLayout* self, gint col, gint row);
+CheckerboardItem* checkerboard_layout_get_item_relative_to (CheckerboardLayout* self, CheckerboardItem* item, CompassPoint point);
+void checkerboard_page_set_cursor (CheckerboardPage* self, CheckerboardItem* item);
+GeeCollection* data_collection_get_all (DataCollection* self);
+void checkerboard_page_set_display_titles (CheckerboardPage* self, gboolean display);
+static void checkerboard_page_real_set_display_titles (CheckerboardPage* self, gboolean display);
+void data_collection_freeze_notifications (DataCollection* self);
+void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
+#define CHECKERBOARD_ITEM_PROP_SHOW_TITLES "show-titles"
+void data_collection_thaw_notifications (DataCollection* self);
+void checkerboard_page_set_display_comments (CheckerboardPage* self, gboolean display);
+static void checkerboard_page_real_set_display_comments (CheckerboardPage* self, gboolean display);
+#define CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS "show-comments"
+static void checkerboard_page_finalize (GObject* obj);
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType zoom_buffer_get_type (void) G_GNUC_CONST;
+GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
+gpointer transition_clock_ref (gpointer instance);
+void transition_clock_unref (gpointer instance);
+GParamSpec* param_spec_transition_clock (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transition_clock (GValue* value, gpointer v_object);
+void value_take_transition_clock (GValue* value, gpointer v_object);
+gpointer value_get_transition_clock (const GValue* value);
+GType transition_clock_get_type (void) G_GNUC_CONST;
+GType zoom_state_get_type (void) G_GNUC_CONST;
+ZoomState* zoom_state_dup (const ZoomState* self);
+void zoom_state_free (ZoomState* self);
+#define SINGLE_PHOTO_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPagePrivate))
+enum {
+ SINGLE_PHOTO_PAGE_DUMMY_PROPERTY
+};
+void dimensions_init (Dimensions *self, gint width, gint height);
+#define SINGLE_PHOTO_PAGE_FAST_INTERP GDK_INTERP_NEAREST
+#define SINGLE_PHOTO_PAGE_QUALITY_INTERP GDK_INTERP_BILINEAR
+#define SINGLE_PHOTO_PAGE_KEY_REPEAT_INTERVAL_MSEC 200
+SinglePhotoPage* single_photo_page_construct (GType object_type, const gchar* page_name, gboolean scale_up_to_viewport);
+gpointer transition_effects_manager_ref (gpointer instance);
+void transition_effects_manager_unref (gpointer instance);
+GParamSpec* param_spec_transition_effects_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transition_effects_manager (GValue* value, gpointer v_object);
+void value_take_transition_effects_manager (GValue* value, gpointer v_object);
+gpointer value_get_transition_effects_manager (const GValue* value);
+GType transition_effects_manager_get_type (void) G_GNUC_CONST;
+TransitionEffectsManager* transition_effects_manager_get_instance (void);
+TransitionClock* transition_effects_manager_create_null_transition_clock (TransitionEffectsManager* self);
+static void single_photo_page_on_viewport_resize (SinglePhotoPage* self);
+static void _single_photo_page_on_viewport_resize_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self);
+static gboolean single_photo_page_on_canvas_exposed (SinglePhotoPage* self, cairo_t* exposed_ctx);
+static gboolean _single_photo_page_on_canvas_exposed_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self);
+gboolean single_photo_page_is_transition_in_progress (SinglePhotoPage* self);
+gboolean transition_clock_is_in_progress (TransitionClock* self);
+void single_photo_page_cancel_transition (SinglePhotoPage* self);
+void transition_clock_cancel (TransitionClock* self);
+void single_photo_page_set_transition (SinglePhotoPage* self, const gchar* effect_id, gint duration_msec);
+TransitionClock* transition_effects_manager_create_transition_clock (TransitionEffectsManager* self, const gchar* effect_id);
+static void single_photo_page_render_zoomed_to_pixmap (SinglePhotoPage* self, ZoomState* zoom_state);
+gboolean single_photo_page_is_zoom_supported (SinglePhotoPage* self);
+void zoom_state_get_viewing_rectangle_wrt_content (ZoomState *self, GdkRectangle* result);
+ZoomBuffer* single_photo_page_get_zoom_buffer (SinglePhotoPage* self);
+GdkPixbuf* zoom_buffer_get_zoomed_image (ZoomBuffer* self, ZoomState* zoom_state);
+GdkPixbuf* zoom_buffer_get_zoom_preview_image (ZoomBuffer* self, ZoomState* zoom_state);
+void zoom_state_get_viewing_rectangle_projection (ZoomState *self, GdkPixbuf* for_pixbuf, GdkRectangle* result);
+void single_photo_page_on_interactive_zoom (SinglePhotoPage* self, ZoomState* interactive_zoom_state);
+void set_source_color_from_string (cairo_t* ctx, const gchar* spec);
+void single_photo_page_on_interactive_pan (SinglePhotoPage* self, ZoomState* interactive_zoom_state);
+static gboolean single_photo_page_real_is_zoom_supported (SinglePhotoPage* self);
+void single_photo_page_cancel_zoom (SinglePhotoPage* self);
+static void single_photo_page_real_cancel_zoom (SinglePhotoPage* self);
+void single_photo_page_save_zoom_state (SinglePhotoPage* self);
+static void single_photo_page_real_save_zoom_state (SinglePhotoPage* self);
+void single_photo_page_restore_zoom_state (SinglePhotoPage* self);
+static void single_photo_page_real_restore_zoom_state (SinglePhotoPage* self);
+GType direction_get_type (void) G_GNUC_CONST;
+void single_photo_page_repaint (SinglePhotoPage* self, Direction* direction);
+static ZoomBuffer* single_photo_page_real_get_zoom_buffer (SinglePhotoPage* self);
+void single_photo_page_get_saved_zoom_state (SinglePhotoPage* self, ZoomState* result);
+void single_photo_page_set_zoom_state (SinglePhotoPage* self, ZoomState* zoom_state);
+void single_photo_page_get_zoom_state (SinglePhotoPage* self, ZoomState* result);
+static void single_photo_page_real_switched_to (Page* base);
+static void single_photo_page_real_set_container (Page* base, GtkWindow* container);
+void single_photo_page_set_pixbuf (SinglePhotoPage* self, GdkPixbuf* unscaled, Dimensions* max_dim, Direction* direction);
+gdouble zoom_state_get_interpolation_factor (ZoomState *self);
+void zoom_state_get_viewport_center (ZoomState *self, GdkPoint* result);
+void zoom_state_init (ZoomState *self, Dimensions* content_dimensions, Dimensions* viewport_dimensions, gdouble slider_val, GdkPoint* viewport_center);
+void single_photo_page_blank_display (SinglePhotoPage* self);
+void single_photo_page_invalidate_all (SinglePhotoPage* self);
+cairo_surface_t* single_photo_page_get_surface (SinglePhotoPage* self);
+void single_photo_page_get_surface_dim (SinglePhotoPage* self, Dimensions* result);
+cairo_t* single_photo_page_get_cairo_context (SinglePhotoPage* self);
+void single_photo_page_paint_text (SinglePhotoPage* self, PangoLayout* pango_layout, gint x, gint y);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void single_photo_page_get_canvas_scaling (SinglePhotoPage* self, Scaling* result);
+void scaling_for_screen (GtkWindow* window, gboolean scale_up, Scaling* result);
+void scaling_for_widget (GtkWidget* widget, gboolean scale_up, Scaling* result);
+GdkPixbuf* single_photo_page_get_unscaled_pixbuf (SinglePhotoPage* self);
+GdkPixbuf* single_photo_page_get_scaled_pixbuf (SinglePhotoPage* self);
+void single_photo_page_get_scaled_pixbuf_position (SinglePhotoPage* self, GdkRectangle* result);
+gboolean single_photo_page_is_inside_pixbuf (SinglePhotoPage* self, gint x, gint y);
+gboolean coord_in_rectangle (gint x, gint y, GdkRectangle* rect);
+void single_photo_page_invalidate (SinglePhotoPage* self, GdkRectangle* rect);
+static void single_photo_page_internal_repaint (SinglePhotoPage* self, gboolean fast, Direction* direction);
+static void single_photo_page_real_on_resize_finished (Page* base, GdkRectangle* rect);
+void single_photo_page_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+static void single_photo_page_real_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+void single_photo_page_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+static void single_photo_page_real_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+void single_photo_page_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+static void single_photo_page_real_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+gboolean zoom_state_is_default (ZoomState *self);
+gboolean transition_clock_paint (TransitionClock* self, cairo_t* ctx, gint width, gint height);
+static void single_photo_page_repaint_pixmap (SinglePhotoPage* self);
+void dimensions_for_rectangle (GdkRectangle* rect, Dimensions* result);
+static void single_photo_page_init_pixmap (SinglePhotoPage* self, gint width, gint height);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+gboolean dimensions_has_area (Dimensions *self);
+void dimensions_get_scaled_proportional (Dimensions *self, Dimensions* viewport, Dimensions* result);
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
+void parse_color (const gchar* spec, GdkRGBA* result);
+void transition_clock_start (TransitionClock* self, SpitTransitionsVisuals* visuals, SpitTransitionsDirection direction, gint duration_msec, TransitionClockRepaintCallback repaint, void* repaint_target);
+SpitTransitionsDirection direction_to_transition_direction (Direction self);
+static void _single_photo_page_repaint_pixmap_transition_clock_repaint_callback (gpointer self);
+static gboolean single_photo_page_real_on_context_keypress (Page* base);
+void single_photo_page_on_previous_photo (SinglePhotoPage* self);
+static void single_photo_page_real_on_previous_photo (SinglePhotoPage* self);
+void single_photo_page_on_next_photo (SinglePhotoPage* self);
+static void single_photo_page_real_on_next_photo (SinglePhotoPage* self);
+static gboolean single_photo_page_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+static void single_photo_page_finalize (GObject* obj);
+gpointer drag_and_drop_handler_ref (gpointer instance);
+void drag_and_drop_handler_unref (gpointer instance);
+GParamSpec* param_spec_drag_and_drop_handler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_drag_and_drop_handler (GValue* value, gpointer v_object);
+void value_take_drag_and_drop_handler (GValue* value, gpointer v_object);
+gpointer value_get_drag_and_drop_handler (const GValue* value);
+GType drag_and_drop_handler_get_type (void) G_GNUC_CONST;
+gpointer exporter_ui_ref (gpointer instance);
+void exporter_ui_unref (gpointer instance);
+GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_exporter_ui (GValue* value, gpointer v_object);
+void value_take_exporter_ui (GValue* value, gpointer v_object);
+gpointer value_get_exporter_ui (const GValue* value);
+GType exporter_ui_get_type (void) G_GNUC_CONST;
+#define DRAG_AND_DROP_HANDLER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerPrivate))
+enum {
+ DRAG_AND_DROP_HANDLER_DUMMY_PROPERTY
+};
+static void drag_and_drop_handler_on_drag_begin (DragAndDropHandler* self, GdkDragContext* context);
+static void _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self);
+static void drag_and_drop_handler_on_drag_data_get (DragAndDropHandler* self, GdkDragContext* context, GtkSelectionData* selection_data, guint target_type, guint time);
+static void _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self);
+static void drag_and_drop_handler_on_drag_end (DragAndDropHandler* self);
+static void _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self);
+static gboolean drag_and_drop_handler_on_drag_failed (DragAndDropHandler* self, GdkDragContext* context, GtkDragResult drag_result);
+static gboolean _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self);
+static GType drag_and_drop_handler_target_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+DragAndDropHandler* drag_and_drop_handler_new (Page* page);
+DragAndDropHandler* drag_and_drop_handler_construct (GType object_type, Page* page);
+static GdkAtom* _gdk_atom_dup (GdkAtom* self);
+guchar* string_to_uchar_array (const gchar* str, int* result_length1);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+DataSource* data_view_get_source (DataView* self);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+#define APP_WINDOW_DND_ICON_SCALE 128
+gchar* data_object_to_string (DataObject* self);
+gchar* uchar_array_to_string (guchar* data, int data_length1, gint length);
+GType media_source_get_type (void) G_GNUC_CONST;
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+guchar* serialize_media_sources (GeeCollection* media, int* result_length1);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+void scaling_for_original (Scaling* result);
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+void export_format_parameters_current (ExportFormatParameters* result);
+Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+GType exporter_get_type (void) G_GNUC_CONST;
+ExporterUI* exporter_ui_new (Exporter* exporter);
+ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter);
+void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target);
+static void drag_and_drop_handler_on_export_completed (DragAndDropHandler* self);
+static void _drag_and_drop_handler_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self);
+static void drag_and_drop_handler_finalize (DragAndDropHandler* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+static const GtkTargetEntry DRAG_AND_DROP_HANDLER_SOURCE_TARGET_ENTRIES[2] = {{"XdndDirectSave0", (guint) GTK_TARGET_OTHER_APP, (guint) DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS}, {"shotwell/media-id-atom", (guint) GTK_TARGET_SAME_APP, (guint) DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST}};
+
+InjectionGroup* injection_group_construct (GType object_type, const gchar* path) {
+ InjectionGroup* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 24 "/home/jens/Source/shotwell/src/Page.vala"
+ self = (InjectionGroup*) g_type_create_instance (object_type);
+#line 25 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = path;
+#line 25 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 25 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->path);
+#line 25 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->path = _tmp1_;
+#line 24 "/home/jens/Source/shotwell/src/Page.vala"
+ return self;
+#line 1509 "Page.c"
+}
+
+
+InjectionGroup* injection_group_new (const gchar* path) {
+#line 24 "/home/jens/Source/shotwell/src/Page.vala"
+ return injection_group_construct (TYPE_INJECTION_GROUP, path);
+#line 1516 "Page.c"
+}
+
+
+gchar* injection_group_get_path (InjectionGroup* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_INJECTION_GROUP (self), NULL);
+#line 29 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->path;
+#line 29 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 29 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 29 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 1534 "Page.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 33 "/home/jens/Source/shotwell/src/Page.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1541 "Page.c"
+}
+
+
+GeeList* injection_group_get_elements (InjectionGroup* self) {
+ GeeList* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_INJECTION_GROUP (self), NULL);
+#line 33 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->elements;
+#line 33 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList));
+#line 33 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 33 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 1559 "Page.c"
+}
+
+
+void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action) {
+ GeeArrayList* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ InjectionGroupElement* _tmp3_ = NULL;
+ InjectionGroupElement* _tmp4_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_INJECTION_GROUP (self));
+#line 36 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 37 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->elements;
+#line 37 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = name;
+#line 37 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 37 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = injection_group_element_new (_tmp1_, _tmp2_, GTK_UI_MANAGER_MENUITEM);
+#line 37 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 37 "/home/jens/Source/shotwell/src/Page.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 37 "/home/jens/Source/shotwell/src/Page.vala"
+ _injection_group_element_unref0 (_tmp4_);
+#line 1587 "Page.c"
+}
+
+
+void injection_group_add_menu (InjectionGroup* self, const gchar* name, const gchar* action) {
+ GeeArrayList* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ InjectionGroupElement* _tmp3_ = NULL;
+ InjectionGroupElement* _tmp4_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_INJECTION_GROUP (self));
+#line 40 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 41 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->elements;
+#line 41 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = name;
+#line 41 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 41 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = injection_group_element_new (_tmp1_, _tmp2_, GTK_UI_MANAGER_MENU);
+#line 41 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 41 "/home/jens/Source/shotwell/src/Page.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 41 "/home/jens/Source/shotwell/src/Page.vala"
+ _injection_group_element_unref0 (_tmp4_);
+#line 1615 "Page.c"
+}
+
+
+void injection_group_add_separator (InjectionGroup* self) {
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ InjectionGroupElement* _tmp4_ = NULL;
+ InjectionGroupElement* _tmp5_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_INJECTION_GROUP (self));
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->elements;
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->separator_id;
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->separator_id = _tmp1_ + 1;
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = g_strdup_printf ("%d-separator", _tmp1_);
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = injection_group_element_new (_tmp3_, NULL, GTK_UI_MANAGER_SEPARATOR);
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp5_);
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _injection_group_element_unref0 (_tmp5_);
+#line 45 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp3_);
+#line 1648 "Page.c"
+}
+
+
+InjectionGroupElement* injection_group_element_construct (GType object_type, const gchar* name, const gchar* action, GtkUIManagerItemType kind) {
+ InjectionGroupElement* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GtkUIManagerItemType _tmp7_ = 0;
+#line 13 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/Page.vala"
+ self = (InjectionGroupElement*) g_type_create_instance (object_type);
+#line 14 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 14 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 14 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->name);
+#line 14 "/home/jens/Source/shotwell/src/Page.vala"
+ self->name = _tmp1_;
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_ != NULL) {
+#line 1676 "Page.c"
+ const gchar* _tmp4_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = action;
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp4_;
+#line 1682 "Page.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = name;
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp5_;
+#line 1689 "Page.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = g_strdup (_tmp2_);
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->action);
+#line 15 "/home/jens/Source/shotwell/src/Page.vala"
+ self->action = _tmp6_;
+#line 16 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = kind;
+#line 16 "/home/jens/Source/shotwell/src/Page.vala"
+ self->kind = _tmp7_;
+#line 13 "/home/jens/Source/shotwell/src/Page.vala"
+ return self;
+#line 1703 "Page.c"
+}
+
+
+InjectionGroupElement* injection_group_element_new (const gchar* name, const gchar* action, GtkUIManagerItemType kind) {
+#line 13 "/home/jens/Source/shotwell/src/Page.vala"
+ return injection_group_element_construct (INJECTION_GROUP_TYPE_ELEMENT, name, action, kind);
+#line 1710 "Page.c"
+}
+
+
+static void injection_group_value_element_init (GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 1717 "Page.c"
+}
+
+
+static void injection_group_value_element_free_value (GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_element_unref (value->data[0].v_pointer);
+#line 1726 "Page.c"
+ }
+}
+
+
+static void injection_group_value_element_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (src_value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ dest_value->data[0].v_pointer = injection_group_element_ref (src_value->data[0].v_pointer);
+#line 1736 "Page.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1740 "Page.c"
+ }
+}
+
+
+static gpointer injection_group_value_element_peek_pointer (const GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return value->data[0].v_pointer;
+#line 1748 "Page.c"
+}
+
+
+static gchar* injection_group_value_element_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (collect_values[0].v_pointer) {
+#line 1755 "Page.c"
+ InjectionGroupElement* object;
+ object = collect_values[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1762 "Page.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1766 "Page.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = injection_group_element_ref (object);
+#line 1770 "Page.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 1774 "Page.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return NULL;
+#line 1778 "Page.c"
+}
+
+
+static gchar* injection_group_value_element_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ InjectionGroupElement** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!object_p) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1789 "Page.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = NULL;
+#line 1795 "Page.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1799 "Page.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = injection_group_element_ref (value->data[0].v_pointer);
+#line 1803 "Page.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return NULL;
+#line 1807 "Page.c"
+}
+
+
+GParamSpec* injection_group_param_spec_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ InjectionGroupParamSpecElement* spec;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, INJECTION_GROUP_TYPE_ELEMENT), NULL);
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return G_PARAM_SPEC (spec);
+#line 1821 "Page.c"
+}
+
+
+gpointer injection_group_value_get_element (const GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, INJECTION_GROUP_TYPE_ELEMENT), NULL);
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return value->data[0].v_pointer;
+#line 1830 "Page.c"
+}
+
+
+void injection_group_value_set_element (GValue* value, gpointer v_object) {
+ InjectionGroupElement* old;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, INJECTION_GROUP_TYPE_ELEMENT));
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ old = value->data[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (v_object) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, INJECTION_GROUP_TYPE_ELEMENT));
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = v_object;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_element_ref (value->data[0].v_pointer);
+#line 1850 "Page.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 1854 "Page.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (old) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_element_unref (old);
+#line 1860 "Page.c"
+ }
+}
+
+
+void injection_group_value_take_element (GValue* value, gpointer v_object) {
+ InjectionGroupElement* old;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, INJECTION_GROUP_TYPE_ELEMENT));
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ old = value->data[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (v_object) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, INJECTION_GROUP_TYPE_ELEMENT));
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = v_object;
+#line 1879 "Page.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 1883 "Page.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (old) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_element_unref (old);
+#line 1889 "Page.c"
+ }
+}
+
+
+static void injection_group_element_class_init (InjectionGroupElementClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_element_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ ((InjectionGroupElementClass *) klass)->finalize = injection_group_element_finalize;
+#line 1899 "Page.c"
+}
+
+
+static void injection_group_element_instance_init (InjectionGroupElement * self) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ self->ref_count = 1;
+#line 1906 "Page.c"
+}
+
+
+static void injection_group_element_finalize (InjectionGroupElement* obj) {
+ InjectionGroupElement * self;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, INJECTION_GROUP_TYPE_ELEMENT, InjectionGroupElement);
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_destroy (self);
+#line 9 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->name);
+#line 10 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->action);
+#line 1920 "Page.c"
+}
+
+
+GType injection_group_element_get_type (void) {
+ static volatile gsize injection_group_element_type_id__volatile = 0;
+ if (g_once_init_enter (&injection_group_element_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { injection_group_value_element_init, injection_group_value_element_free_value, injection_group_value_element_copy_value, injection_group_value_element_peek_pointer, "p", injection_group_value_element_collect_value, "p", injection_group_value_element_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (InjectionGroupElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) injection_group_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (InjectionGroupElement), 0, (GInstanceInitFunc) injection_group_element_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType injection_group_element_type_id;
+ injection_group_element_type_id = g_type_register_fundamental (g_type_fundamental_next (), "InjectionGroupElement", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&injection_group_element_type_id__volatile, injection_group_element_type_id);
+ }
+ return injection_group_element_type_id__volatile;
+}
+
+
+gpointer injection_group_element_ref (gpointer instance) {
+ InjectionGroupElement* self;
+ self = instance;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ return instance;
+#line 1945 "Page.c"
+}
+
+
+void injection_group_element_unref (gpointer instance) {
+ InjectionGroupElement* self;
+ self = instance;
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ INJECTION_GROUP_ELEMENT_GET_CLASS (self)->finalize (self);
+#line 8 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1958 "Page.c"
+ }
+}
+
+
+static void value_injection_group_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 1966 "Page.c"
+}
+
+
+static void value_injection_group_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_unref (value->data[0].v_pointer);
+#line 1975 "Page.c"
+ }
+}
+
+
+static void value_injection_group_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ dest_value->data[0].v_pointer = injection_group_ref (src_value->data[0].v_pointer);
+#line 1985 "Page.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1989 "Page.c"
+ }
+}
+
+
+static gpointer value_injection_group_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return value->data[0].v_pointer;
+#line 1997 "Page.c"
+}
+
+
+static gchar* value_injection_group_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (collect_values[0].v_pointer) {
+#line 2004 "Page.c"
+ InjectionGroup* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2011 "Page.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2015 "Page.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = injection_group_ref (object);
+#line 2019 "Page.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 2023 "Page.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return NULL;
+#line 2027 "Page.c"
+}
+
+
+static gchar* value_injection_group_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ InjectionGroup** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2038 "Page.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = NULL;
+#line 2044 "Page.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2048 "Page.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = injection_group_ref (value->data[0].v_pointer);
+#line 2052 "Page.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return NULL;
+#line 2056 "Page.c"
+}
+
+
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecInjectionGroup* spec;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_INJECTION_GROUP), NULL);
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return G_PARAM_SPEC (spec);
+#line 2070 "Page.c"
+}
+
+
+gpointer value_get_injection_group (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INJECTION_GROUP), NULL);
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return value->data[0].v_pointer;
+#line 2079 "Page.c"
+}
+
+
+void value_set_injection_group (GValue* value, gpointer v_object) {
+ InjectionGroup* old;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INJECTION_GROUP));
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_INJECTION_GROUP));
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_ref (value->data[0].v_pointer);
+#line 2099 "Page.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 2103 "Page.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_unref (old);
+#line 2109 "Page.c"
+ }
+}
+
+
+void value_take_injection_group (GValue* value, gpointer v_object) {
+ InjectionGroup* old;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_INJECTION_GROUP));
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_INJECTION_GROUP));
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = v_object;
+#line 2128 "Page.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 2132 "Page.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_unref (old);
+#line 2138 "Page.c"
+ }
+}
+
+
+static void injection_group_class_init (InjectionGroupClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_group_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ ((InjectionGroupClass *) klass)->finalize = injection_group_finalize;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_class_add_private (klass, sizeof (InjectionGroupPrivate));
+#line 2150 "Page.c"
+}
+
+
+static void injection_group_instance_init (InjectionGroup * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv = INJECTION_GROUP_GET_PRIVATE (self);
+#line 21 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = gee_array_list_new (INJECTION_GROUP_TYPE_ELEMENT, (GBoxedCopyFunc) injection_group_element_ref, injection_group_element_unref, NULL, NULL, NULL);
+#line 21 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->elements = _tmp0_;
+#line 22 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->separator_id = 0;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ self->ref_count = 1;
+#line 2166 "Page.c"
+}
+
+
+static void injection_group_finalize (InjectionGroup* obj) {
+ InjectionGroup * self;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_INJECTION_GROUP, InjectionGroup);
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_destroy (self);
+#line 20 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->path);
+#line 21 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->elements);
+#line 2180 "Page.c"
+}
+
+
+GType injection_group_get_type (void) {
+ static volatile gsize injection_group_type_id__volatile = 0;
+ if (g_once_init_enter (&injection_group_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_injection_group_init, value_injection_group_free_value, value_injection_group_copy_value, value_injection_group_peek_pointer, "p", value_injection_group_collect_value, "p", value_injection_group_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (InjectionGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) injection_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (InjectionGroup), 0, (GInstanceInitFunc) injection_group_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType injection_group_type_id;
+ injection_group_type_id = g_type_register_fundamental (g_type_fundamental_next (), "InjectionGroup", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&injection_group_type_id__volatile, injection_group_type_id);
+ }
+ return injection_group_type_id__volatile;
+}
+
+
+gpointer injection_group_ref (gpointer instance) {
+ InjectionGroup* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ return instance;
+#line 2205 "Page.c"
+}
+
+
+void injection_group_unref (gpointer instance) {
+ InjectionGroup* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ INJECTION_GROUP_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2218 "Page.c"
+ }
+}
+
+
+static gboolean _page_on_context_keypress_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self) {
+ gboolean result;
+ result = page_on_context_keypress ((Page*) self);
+#line 93 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2228 "Page.c"
+}
+
+
+static void _page_attach_view_signals_gtk_widget_realize (GtkWidget* _sender, gpointer self) {
+#line 97 "/home/jens/Source/shotwell/src/Page.vala"
+ page_attach_view_signals ((Page*) self);
+#line 2235 "Page.c"
+}
+
+
+Page* page_construct (GType object_type, const gchar* page_name) {
+ Page * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GdkPoint _tmp6_ = {0};
+#line 84 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (page_name != NULL, NULL);
+#line 84 "/home/jens/Source/shotwell/src/Page.vala"
+ self = (Page*) g_object_new (object_type, NULL);
+#line 85 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_name;
+#line 85 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 85 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->page_name);
+#line 85 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->page_name = _tmp1_;
+#line 87 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_name;
+#line 87 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = g_strdup_printf ("ViewCollection for Page %s", _tmp2_);
+#line 87 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 87 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = view_collection_new (_tmp4_);
+#line 87 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 87 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->view = _tmp5_;
+#line 87 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp4_);
+#line 89 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_.x = -1;
+#line 89 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_.y = -1;
+#line 89 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_down = _tmp6_;
+#line 91 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 93 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "popup-menu", (GCallback) _page_on_context_keypress_gtk_widget_popup_menu, self, 0);
+#line 95 "/home/jens/Source/shotwell/src/Page.vala"
+ page_init_ui (self);
+#line 97 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "realize", (GCallback) _page_attach_view_signals_gtk_widget_realize, self, 0);
+#line 84 "/home/jens/Source/shotwell/src/Page.vala"
+ return self;
+#line 2290 "Page.c"
+}
+
+
+static void page_real_destroy (GtkWidget* base) {
+ Page * self;
+ gboolean _tmp0_ = FALSE;
+ ViewCollection* _tmp1_ = NULL;
+ GtkToolbar* _tmp2_ = NULL;
+ OneShotScheduler* _tmp4_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PAGE, Page);
+#line 109 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->is_destroyed;
+#line 109 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 110 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 2310 "Page.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/Page.vala"
+ page_detach_event_source (self);
+#line 114 "/home/jens/Source/shotwell/src/Page.vala"
+ page_detach_view_signals (self);
+#line 115 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->view;
+#line 115 "/home/jens/Source/shotwell/src/Page.vala"
+ data_collection_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 118 "/home/jens/Source/shotwell/src/Page.vala"
+ page_clear_container (self);
+#line 120 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->toolbar;
+#line 120 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 2326 "Page.c"
+ GtkToolbar* _tmp3_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->toolbar;
+#line 121 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 2332 "Page.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->update_actions_scheduler;
+#line 124 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_ != NULL) {
+#line 2338 "Page.c"
+ OneShotScheduler* _tmp5_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->update_actions_scheduler;
+#line 125 "/home/jens/Source/shotwell/src/Page.vala"
+ one_shot_scheduler_cancel (_tmp5_);
+#line 2344 "Page.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->is_destroyed = TRUE;
+#line 129 "/home/jens/Source/shotwell/src/Page.vala"
+ GTK_WIDGET_CLASS (page_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), gtk_widget_get_type (), GtkWidget));
+#line 131 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page_get_page_name (self);
+#line 131 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 131 "/home/jens/Source/shotwell/src/Page.vala"
+ g_debug ("Page.vala:131: Page %s Destroyed", _tmp7_);
+#line 131 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp7_);
+#line 2358 "Page.c"
+}
+
+
+gchar* page_get_page_name (Page* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 135 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->page_name;
+#line 135 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 135 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 135 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2376 "Page.c"
+}
+
+
+static void page_real_set_page_name (Page* self, const gchar* page_name) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (page_name != NULL);
+#line 139 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_name;
+#line 139 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 139 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->page_name);
+#line 139 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->page_name = _tmp1_;
+#line 2393 "Page.c"
+}
+
+
+void page_set_page_name (Page* self, const gchar* page_name) {
+#line 138 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 138 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->set_page_name (self, page_name);
+#line 2402 "Page.c"
+}
+
+
+gchar* page_to_string (Page* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 143 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->page_name;
+#line 143 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 143 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 143 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2420 "Page.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 147 "/home/jens/Source/shotwell/src/Page.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 2427 "Page.c"
+}
+
+
+ViewCollection* page_get_view (Page* self) {
+ ViewCollection* result = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 147 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->view;
+#line 147 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 147 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 147 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2445 "Page.c"
+}
+
+
+GtkWindow* page_get_container (Page* self) {
+ GtkWindow* result = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 151 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->container;
+#line 151 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 151 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 151 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2463 "Page.c"
+}
+
+
+static void page_real_set_container (Page* self, GtkWindow* container) {
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkWindow* _tmp2_ = NULL;
+ GtkWindow* _tmp3_ = NULL;
+ GtkUIManager* _tmp4_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GTK_IS_WINDOW (container));
+#line 155 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->container;
+#line 155 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_ == NULL, "this.container == null");
+#line 157 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = container;
+#line 157 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 157 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->container);
+#line 157 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->container = _tmp2_;
+#line 158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = container;
+#line 158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_window_get_ui_manager (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PAGE_WINDOW, PageWindow));
+#line 158 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->ui);
+#line 158 "/home/jens/Source/shotwell/src/Page.vala"
+ self->ui = _tmp4_;
+#line 2495 "Page.c"
+}
+
+
+void page_set_container (Page* self, GtkWindow* container) {
+#line 154 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 154 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->set_container (self, container);
+#line 2504 "Page.c"
+}
+
+
+static void page_real_clear_container (Page* self) {
+#line 162 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->container);
+#line 162 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->container = NULL;
+#line 2513 "Page.c"
+}
+
+
+void page_clear_container (Page* self) {
+#line 161 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 161 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->clear_container (self);
+#line 2522 "Page.c"
+}
+
+
+static gboolean _page_on_button_pressed_internal_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = page_on_button_pressed_internal ((Page*) self, event);
+#line 176 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2531 "Page.c"
+}
+
+
+static gboolean _page_on_button_released_internal_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = page_on_button_released_internal ((Page*) self, event);
+#line 177 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2540 "Page.c"
+}
+
+
+static gboolean _page_on_motion_internal_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self) {
+ gboolean result;
+ result = page_on_motion_internal ((Page*) self, event);
+#line 178 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2549 "Page.c"
+}
+
+
+static gboolean _page_on_leave_notify_event_gtk_widget_leave_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
+ gboolean result;
+ result = page_on_leave_notify_event ((Page*) self);
+#line 179 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2558 "Page.c"
+}
+
+
+static gboolean _page_on_mousewheel_internal_gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self) {
+ gboolean result;
+ result = page_on_mousewheel_internal ((Page*) self, event);
+#line 180 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2567 "Page.c"
+}
+
+
+static void _page_on_event_source_realize_gtk_widget_realize (GtkWidget* _sender, gpointer self) {
+#line 181 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_event_source_realize ((Page*) self);
+#line 2574 "Page.c"
+}
+
+
+void page_set_event_source (Page* self, GtkWidget* event_source) {
+ GtkWidget* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ GtkWidget* _tmp5_ = NULL;
+ GtkWidget* _tmp6_ = NULL;
+ GtkWidget* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ GtkWidget* _tmp9_ = NULL;
+ GtkWidget* _tmp10_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 165 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GTK_IS_WIDGET (event_source));
+#line 166 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->event_source;
+#line 166 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_ == NULL, "this.event_source == null");
+#line 168 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = event_source;
+#line 168 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 168 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->event_source);
+#line 168 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->event_source = _tmp2_;
+#line 169 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = event_source;
+#line 169 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_set_can_focus (_tmp3_, TRUE);
+#line 172 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = event_source;
+#line 172 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_add_events (_tmp4_, (gint) ((((((GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK) | GDK_POINTER_MOTION_MASK) | GDK_POINTER_MOTION_HINT_MASK) | GDK_BUTTON_MOTION_MASK) | GDK_LEAVE_NOTIFY_MASK) | GDK_SCROLL_MASK));
+#line 176 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = event_source;
+#line 176 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp5_, "button-press-event", (GCallback) _page_on_button_pressed_internal_gtk_widget_button_press_event, self, 0);
+#line 177 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = event_source;
+#line 177 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp6_, "button-release-event", (GCallback) _page_on_button_released_internal_gtk_widget_button_release_event, self, 0);
+#line 178 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = event_source;
+#line 178 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp7_, "motion-notify-event", (GCallback) _page_on_motion_internal_gtk_widget_motion_notify_event, self, 0);
+#line 179 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = event_source;
+#line 179 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp8_, "leave-notify-event", (GCallback) _page_on_leave_notify_event_gtk_widget_leave_notify_event, self, 0);
+#line 180 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = event_source;
+#line 180 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp9_, "scroll-event", (GCallback) _page_on_mousewheel_internal_gtk_widget_scroll_event, self, 0);
+#line 181 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = event_source;
+#line 181 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp10_, "realize", (GCallback) _page_on_event_source_realize_gtk_widget_realize, self, 0);
+#line 2638 "Page.c"
+}
+
+
+static void page_detach_event_source (Page* self) {
+ GtkWidget* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ GtkWidget* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ GtkWidget* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ GtkWidget* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ GtkWidget* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+#line 184 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 185 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->event_source;
+#line 185 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 186 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 2662 "Page.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->event_source;
+#line 188 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp2_, NULL, FALSE);
+#line 188 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _page_on_button_pressed_internal_gtk_widget_button_press_event, self);
+#line 189 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->event_source;
+#line 189 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("button-release-event", gtk_widget_get_type (), &_tmp4_, NULL, FALSE);
+#line 189 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _page_on_button_released_internal_gtk_widget_button_release_event, self);
+#line 190 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->event_source;
+#line 190 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("motion-notify-event", gtk_widget_get_type (), &_tmp6_, NULL, FALSE);
+#line 190 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _page_on_motion_internal_gtk_widget_motion_notify_event, self);
+#line 191 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->event_source;
+#line 191 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("leave-notify-event", gtk_widget_get_type (), &_tmp8_, NULL, FALSE);
+#line 191 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _page_on_leave_notify_event_gtk_widget_leave_notify_event, self);
+#line 192 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->event_source;
+#line 192 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("scroll-event", gtk_widget_get_type (), &_tmp10_, NULL, FALSE);
+#line 192 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _page_on_mousewheel_internal_gtk_widget_scroll_event, self);
+#line 194 "/home/jens/Source/shotwell/src/Page.vala"
+ page_disable_drag_source (self);
+#line 196 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->event_source);
+#line 196 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->event_source = NULL;
+#line 2700 "Page.c"
+}
+
+
+GtkWidget* page_get_event_source (Page* self) {
+ GtkWidget* result = NULL;
+ GtkWidget* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 200 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->event_source;
+#line 200 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 200 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 200 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2718 "Page.c"
+}
+
+
+static GtkMenuBar* page_real_get_menubar (Page* self) {
+ GtkMenuBar* result = NULL;
+ GtkMenuBar* menubar = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GtkMenuBar* _tmp2_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->ui;
+#line 204 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = gtk_ui_manager_get_widget (_tmp0_, "/MenuBar");
+#line 204 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_menu_bar_get_type ()) ? ((GtkMenuBar*) _tmp1_) : NULL);
+#line 204 "/home/jens/Source/shotwell/src/Page.vala"
+ menubar = _tmp2_;
+#line 205 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (menubar != NULL, "menubar != null");
+#line 207 "/home/jens/Source/shotwell/src/Page.vala"
+ result = menubar;
+#line 207 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2742 "Page.c"
+}
+
+
+GtkMenuBar* page_get_menubar (Page* self) {
+#line 203 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 203 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->get_menubar (self);
+#line 2751 "Page.c"
+}
+
+
+static GtkWidget* page_real_get_page_ui_widget (Page* self, const gchar* path) {
+ GtkWidget* result = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 211 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->ui;
+#line 211 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = path;
+#line 211 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = gtk_ui_manager_get_widget (_tmp0_, _tmp1_);
+#line 211 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp2_;
+#line 211 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2772 "Page.c"
+}
+
+
+GtkWidget* page_get_page_ui_widget (Page* self, const gchar* path) {
+#line 210 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 210 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->get_page_ui_widget (self, path);
+#line 2781 "Page.c"
+}
+
+
+static GtkToolbar* page_real_get_toolbar (Page* self) {
+ GtkToolbar* result = NULL;
+ GtkToolbar* _tmp0_ = NULL;
+ GtkToolbar* _tmp12_ = NULL;
+ GtkToolbar* _tmp13_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->toolbar;
+#line 215 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 2794 "Page.c"
+ GtkToolbar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkToolbar* _tmp8_ = NULL;
+ GtkToolbar* _tmp9_ = NULL;
+ GtkStyleContext* _tmp10_ = NULL;
+ GtkToolbar* _tmp11_ = NULL;
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->toolbar_path;
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ == NULL) {
+#line 2805 "Page.c"
+ GtkToolbar* _tmp3_ = NULL;
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = (GtkToolbar*) gtk_toolbar_new ();
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ g_object_ref_sink (_tmp3_);
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp3_;
+#line 2815 "Page.c"
+ } else {
+ GtkUIManager* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GtkWidget* _tmp6_ = NULL;
+ GtkToolbar* _tmp7_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->ui;
+#line 217 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->toolbar_path;
+#line 217 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = gtk_ui_manager_get_widget (_tmp4_, _tmp5_);
+#line 217 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, gtk_toolbar_get_type ()) ? ((GtkToolbar*) _tmp6_) : NULL);
+#line 217 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 217 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp7_;
+#line 2833 "Page.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _g_object_ref0 (_tmp1_);
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->toolbar);
+#line 216 "/home/jens/Source/shotwell/src/Page.vala"
+ self->toolbar = _tmp8_;
+#line 218 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->toolbar;
+#line 218 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 218 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_style_context_add_class (_tmp10_, "bottom-toolbar");
+#line 219 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->toolbar;
+#line 219 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_toolbar_set_icon_size (_tmp11_, GTK_ICON_SIZE_SMALL_TOOLBAR);
+#line 215 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2853 "Page.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->toolbar;
+#line 221 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 221 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp13_;
+#line 221 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2863 "Page.c"
+}
+
+
+GtkToolbar* page_get_toolbar (Page* self) {
+#line 214 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 214 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->get_toolbar (self);
+#line 2872 "Page.c"
+}
+
+
+static GtkMenu* page_real_get_page_context_menu (Page* self) {
+ GtkMenu* result = NULL;
+#line 225 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 225 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2882 "Page.c"
+}
+
+
+GtkMenu* page_get_page_context_menu (Page* self) {
+#line 224 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 224 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->get_page_context_menu (self);
+#line 2891 "Page.c"
+}
+
+
+static void page_real_switching_from (Page* self) {
+ const gchar* _tmp0_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/Page.vala"
+ self->in_view = FALSE;
+#line 230 "/home/jens/Source/shotwell/src/Page.vala"
+ page_remove_ui (self);
+#line 231 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->toolbar_path;
+#line 231 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != NULL) {
+#line 232 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->toolbar);
+#line 232 "/home/jens/Source/shotwell/src/Page.vala"
+ self->toolbar = NULL;
+#line 2909 "Page.c"
+ }
+}
+
+
+void page_switching_from (Page* self) {
+#line 228 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 228 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->switching_from (self);
+#line 2919 "Page.c"
+}
+
+
+static void page_real_switched_to (Page* self) {
+#line 236 "/home/jens/Source/shotwell/src/Page.vala"
+ self->in_view = TRUE;
+#line 237 "/home/jens/Source/shotwell/src/Page.vala"
+ page_add_ui (self);
+#line 238 "/home/jens/Source/shotwell/src/Page.vala"
+ page_update_modifiers (self);
+#line 2930 "Page.c"
+}
+
+
+void page_switched_to (Page* self) {
+#line 235 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 235 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->switched_to (self);
+#line 2939 "Page.c"
+}
+
+
+static void page_real_ready (Page* self) {
+}
+
+
+void page_ready (Page* self) {
+#line 241 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 241 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->ready (self);
+#line 2952 "Page.c"
+}
+
+
+gboolean page_is_in_view (Page* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 244 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 245 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->in_view;
+#line 245 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 245 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 2967 "Page.c"
+}
+
+
+static void page_real_switching_to_fullscreen (Page* self, FullscreenWindow* fsw) {
+#line 248 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (fsw));
+#line 2974 "Page.c"
+}
+
+
+void page_switching_to_fullscreen (Page* self, FullscreenWindow* fsw) {
+#line 248 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 248 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->switching_to_fullscreen (self, fsw);
+#line 2983 "Page.c"
+}
+
+
+static void page_real_returning_from_fullscreen (Page* self, FullscreenWindow* fsw) {
+#line 251 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (fsw));
+#line 2990 "Page.c"
+}
+
+
+void page_returning_from_fullscreen (Page* self, FullscreenWindow* fsw) {
+#line 251 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 251 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->returning_from_fullscreen (self, fsw);
+#line 2999 "Page.c"
+}
+
+
+GtkAction* page_get_action (Page* self, const gchar* name) {
+ GtkAction* result = NULL;
+ GtkActionGroup* _tmp0_ = NULL;
+ GtkAction* action = NULL;
+ GtkActionGroup* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkAction* _tmp3_ = NULL;
+ GtkAction* _tmp4_ = NULL;
+ GtkAction* _tmp5_ = NULL;
+ GtkAction* _tmp8_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 254 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 255 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->action_group;
+#line 255 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 256 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 256 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3025 "Page.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->action_group;
+#line 258 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = name;
+#line 258 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gtk_action_group_get_action (_tmp1_, _tmp2_);
+#line 258 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 258 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp4_;
+#line 259 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = action;
+#line 259 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp5_ == NULL) {
+#line 3041 "Page.c"
+ const gchar* _tmp6_ = NULL;
+ GtkAction* _tmp7_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = name;
+#line 260 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_get_common_action (self, _tmp6_, FALSE);
+#line 260 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 260 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp7_;
+#line 3052 "Page.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = action;
+#line 262 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8_ == NULL) {
+#line 3058 "Page.c"
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 263 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = page_get_page_name (self);
+#line 263 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_;
+#line 263 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = name;
+#line 263 "/home/jens/Source/shotwell/src/Page.vala"
+ g_warning ("Page.vala:263: Page %s: Unable to locate action %s", _tmp10_, _tmp11_);
+#line 263 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp10_);
+#line 3072 "Page.c"
+ }
+#line 265 "/home/jens/Source/shotwell/src/Page.vala"
+ result = action;
+#line 265 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3078 "Page.c"
+}
+
+
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 268 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 269 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 269 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_action (self, _tmp0_);
+#line 269 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 270 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 270 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3101 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 271 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 271 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = sensitive;
+#line 271 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_sensitive (_tmp3_, _tmp4_);
+#line 3110 "Page.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3114 "Page.c"
+}
+
+
+void page_set_action_important (Page* self, const gchar* name, gboolean important) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 274 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 275 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 275 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_action (self, _tmp0_);
+#line 275 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 276 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 276 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3137 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 277 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 277 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = important;
+#line 277 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_is_important (_tmp3_, _tmp4_);
+#line 3146 "Page.c"
+ }
+#line 274 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3150 "Page.c"
+}
+
+
+void page_set_action_visible (Page* self, const gchar* name, gboolean visible) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkAction* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 280 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 280 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_action (self, _tmp0_);
+#line 281 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 282 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 282 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ == NULL) {
+#line 283 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 283 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 3181 "Page.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 285 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = visible;
+#line 285 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_visible (_tmp3_, _tmp4_);
+#line 286 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = action;
+#line 286 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = visible;
+#line 286 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_sensitive (_tmp5_, _tmp6_);
+#line 280 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3197 "Page.c"
+}
+
+
+void page_set_action_short_label (Page* self, const gchar* name, const gchar* short_label) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 289 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 289 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 289 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (short_label != NULL);
+#line 290 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 290 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_action (self, _tmp0_);
+#line 290 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 291 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 291 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3222 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 292 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = short_label;
+#line 292 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_short_label (_tmp3_, _tmp4_);
+#line 3231 "Page.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3235 "Page.c"
+}
+
+
+void page_set_action_details (Page* self, const gchar* name, const gchar* label, const gchar* tooltip, gboolean sensitive) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkAction* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 295 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 295 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 296 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 296 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_action (self, _tmp0_);
+#line 296 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 297 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ == NULL) {
+#line 298 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 298 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 3266 "Page.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = label;
+#line 300 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_ != NULL) {
+#line 3272 "Page.c"
+ GtkAction* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 301 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = action;
+#line 301 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = label;
+#line 301 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_label (_tmp4_, _tmp5_);
+#line 3281 "Page.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = tooltip;
+#line 303 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_ != NULL) {
+#line 3287 "Page.c"
+ GtkAction* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 304 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = action;
+#line 304 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = tooltip;
+#line 304 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_tooltip (_tmp7_, _tmp8_);
+#line 3296 "Page.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = action;
+#line 306 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = sensitive;
+#line 306 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_sensitive (_tmp9_, _tmp10_);
+#line 295 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3306 "Page.c"
+}
+
+
+void page_activate_action (Page* self, const gchar* name) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 309 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 309 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 310 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 310 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_action (self, _tmp0_);
+#line 310 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 311 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 311 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3329 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+#line 312 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 312 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_activate (_tmp3_);
+#line 3335 "Page.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3339 "Page.c"
+}
+
+
+GtkAction* page_get_common_action (Page* self, const gchar* name, gboolean log_warning) {
+ GtkAction* result = NULL;
+ GtkActionGroup** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ GtkActionGroup** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gboolean _tmp8_ = FALSE;
+#line 315 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 315 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 316 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->common_action_groups;
+#line 316 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0__length1 = self->priv->common_action_groups_length1;
+#line 316 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 317 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 317 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3364 "Page.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->common_action_groups;
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1__length1 = self->priv->common_action_groups_length1;
+#line 3370 "Page.c"
+ {
+ GtkActionGroup** group_collection = NULL;
+ gint group_collection_length1 = 0;
+ gint _group_collection_size_ = 0;
+ gint group_it = 0;
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ group_collection = _tmp1_;
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ group_collection_length1 = _tmp1__length1;
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ for (group_it = 0; group_it < _tmp1__length1; group_it = group_it + 1) {
+#line 3382 "Page.c"
+ GtkActionGroup* _tmp2_ = NULL;
+ GtkActionGroup* group = NULL;
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _g_object_ref0 (group_collection[group_it]);
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ group = _tmp2_;
+#line 3389 "Page.c"
+ {
+ GtkAction* action = NULL;
+ GtkActionGroup* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkAction* _tmp5_ = NULL;
+ GtkAction* _tmp6_ = NULL;
+ GtkAction* _tmp7_ = NULL;
+#line 320 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = group;
+#line 320 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = name;
+#line 320 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gtk_action_group_get_action (_tmp3_, _tmp4_);
+#line 320 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 320 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp6_;
+#line 321 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = action;
+#line 321 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp7_ != NULL) {
+#line 322 "/home/jens/Source/shotwell/src/Page.vala"
+ result = action;
+#line 322 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (group);
+#line 322 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3417 "Page.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 319 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (group);
+#line 3423 "Page.c"
+ }
+ }
+ }
+#line 325 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = log_warning;
+#line 325 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8_) {
+#line 3431 "Page.c"
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = page_get_page_name (self);
+#line 326 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_;
+#line 326 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = name;
+#line 326 "/home/jens/Source/shotwell/src/Page.vala"
+ g_warning ("Page.vala:326: Page %s: Unable to locate common action %s", _tmp10_, _tmp11_);
+#line 326 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp10_);
+#line 3445 "Page.c"
+ }
+#line 328 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 328 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3451 "Page.c"
+}
+
+
+void page_set_common_action_sensitive (Page* self, const gchar* name, gboolean sensitive) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 331 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 332 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 332 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_common_action (self, _tmp0_, TRUE);
+#line 332 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 333 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 333 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3474 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 334 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 334 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = sensitive;
+#line 334 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_sensitive (_tmp3_, _tmp4_);
+#line 3483 "Page.c"
+ }
+#line 331 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3487 "Page.c"
+}
+
+
+void page_set_common_action_label (Page* self, const gchar* name, const gchar* label) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 337 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 337 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (label != NULL);
+#line 338 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 338 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_common_action (self, _tmp0_, TRUE);
+#line 338 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 339 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 339 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3512 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 340 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = label;
+#line 340 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_label (_tmp3_, _tmp4_);
+#line 3521 "Page.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3525 "Page.c"
+}
+
+
+void page_set_common_action_important (Page* self, const gchar* name, gboolean important) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 343 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 344 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 344 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_common_action (self, _tmp0_, TRUE);
+#line 344 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 345 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 345 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3548 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 346 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 346 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = important;
+#line 346 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_set_is_important (_tmp3_, _tmp4_);
+#line 3557 "Page.c"
+ }
+#line 343 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3561 "Page.c"
+}
+
+
+void page_activate_common_action (Page* self, const gchar* name) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 349 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 350 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 350 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_common_action (self, _tmp0_, TRUE);
+#line 350 "/home/jens/Source/shotwell/src/Page.vala"
+ action = _tmp1_;
+#line 351 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = action;
+#line 351 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 3584 "Page.c"
+ GtkAction* _tmp3_ = NULL;
+#line 352 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action;
+#line 352 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_activate (_tmp3_);
+#line 3590 "Page.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (action);
+#line 3594 "Page.c"
+}
+
+
+gboolean page_get_ctrl_pressed (Page* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 355 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 356 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->ctrl_pressed;
+#line 356 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 356 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3609 "Page.c"
+}
+
+
+gboolean page_get_alt_pressed (Page* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 359 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 360 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->alt_pressed;
+#line 360 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 360 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3624 "Page.c"
+}
+
+
+gboolean page_get_shift_pressed (Page* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 363 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 364 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->shift_pressed;
+#line 364 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 364 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3639 "Page.c"
+}
+
+
+gboolean page_get_super_pressed (Page* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 367 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 368 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->super_pressed;
+#line 368 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 368 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3654 "Page.c"
+}
+
+
+static gboolean page_get_modifiers (Page* self, gboolean* ctrl, gboolean* alt, gboolean* shift, gboolean* super) {
+ gboolean _vala_ctrl = FALSE;
+ gboolean _vala_alt = FALSE;
+ gboolean _vala_shift = FALSE;
+ gboolean _vala_super = FALSE;
+ gboolean result = FALSE;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gint x = 0;
+ gint y = 0;
+ GdkModifierType mask = 0;
+ AppWindow* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+ GdkWindow* _tmp6_ = NULL;
+ GdkDisplay* _tmp7_ = NULL;
+ GdkDeviceManager* _tmp8_ = NULL;
+ GdkDevice* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GdkModifierType _tmp12_ = 0;
+ GdkModifierType _tmp13_ = 0;
+ GdkModifierType _tmp14_ = 0;
+ GdkModifierType _tmp15_ = 0;
+ GdkModifierType _tmp16_ = 0;
+#line 371 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 372 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 372 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 372 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 372 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_ == NULL;
+#line 372 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 372 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_) {
+#line 373 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_ctrl = FALSE;
+#line 374 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_alt = FALSE;
+#line 375 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_shift = FALSE;
+#line 376 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_super = FALSE;
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ if (ctrl) {
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ *ctrl = _vala_ctrl;
+#line 3712 "Page.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ if (alt) {
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ *alt = _vala_alt;
+#line 3718 "Page.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ if (shift) {
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ *shift = _vala_shift;
+#line 3724 "Page.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ if (super) {
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ *super = _vala_super;
+#line 3730 "Page.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3734 "Page.c"
+ }
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = app_window_get_instance ();
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = gdk_display_get_default ();
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = gdk_display_get_device_manager (_tmp7_);
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = gdk_device_manager_get_client_pointer (_tmp8_);
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_window_get_device_position (_tmp6_, _tmp9_, &_tmp10_, &_tmp11_, &_tmp12_);
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ x = _tmp10_;
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ y = _tmp11_;
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ mask = _tmp12_;
+#line 383 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp5_);
+#line 386 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = mask;
+#line 386 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_ctrl = (_tmp13_ & GDK_CONTROL_MASK) != 0;
+#line 387 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = mask;
+#line 387 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_alt = (_tmp14_ & GDK_MOD1_MASK) != 0;
+#line 388 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = mask;
+#line 388 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_shift = (_tmp15_ & GDK_SHIFT_MASK) != 0;
+#line 389 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = mask;
+#line 389 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_super = (_tmp16_ & GDK_MOD4_MASK) != 0;
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ if (ctrl) {
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ *ctrl = _vala_ctrl;
+#line 3780 "Page.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ if (alt) {
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ *alt = _vala_alt;
+#line 3786 "Page.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ if (shift) {
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ *shift = _vala_shift;
+#line 3792 "Page.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ if (super) {
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ *super = _vala_super;
+#line 3798 "Page.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 3802 "Page.c"
+}
+
+
+static void page_update_modifiers (Page* self) {
+ gboolean ctrl_currently_pressed = FALSE;
+ gboolean alt_currently_pressed = FALSE;
+ gboolean shift_currently_pressed = FALSE;
+ gboolean super_currently_pressed = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp32_ = FALSE;
+#line 394 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 397 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_get_modifiers (self, &_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
+#line 397 "/home/jens/Source/shotwell/src/Page.vala"
+ ctrl_currently_pressed = _tmp0_;
+#line 397 "/home/jens/Source/shotwell/src/Page.vala"
+ alt_currently_pressed = _tmp1_;
+#line 397 "/home/jens/Source/shotwell/src/Page.vala"
+ shift_currently_pressed = _tmp2_;
+#line 397 "/home/jens/Source/shotwell/src/Page.vala"
+ super_currently_pressed = _tmp3_;
+#line 397 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp4_) {
+#line 399 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 3844 "Page.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->ctrl_pressed;
+#line 402 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_) {
+#line 3850 "Page.c"
+ gboolean _tmp7_ = FALSE;
+#line 402 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = ctrl_currently_pressed;
+#line 402 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = !_tmp7_;
+#line 3856 "Page.c"
+ } else {
+#line 402 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = FALSE;
+#line 3860 "Page.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp5_) {
+#line 403 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_ctrl_released (self, NULL);
+#line 3866 "Page.c"
+ } else {
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 404 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->ctrl_pressed;
+#line 404 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp9_) {
+#line 3874 "Page.c"
+ gboolean _tmp10_ = FALSE;
+#line 404 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = ctrl_currently_pressed;
+#line 404 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp10_;
+#line 3880 "Page.c"
+ } else {
+#line 404 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = FALSE;
+#line 3884 "Page.c"
+ }
+#line 404 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8_) {
+#line 405 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_ctrl_pressed (self, NULL);
+#line 3890 "Page.c"
+ }
+ }
+#line 407 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->alt_pressed;
+#line 407 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp12_) {
+#line 3897 "Page.c"
+ gboolean _tmp13_ = FALSE;
+#line 407 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = alt_currently_pressed;
+#line 407 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = !_tmp13_;
+#line 3903 "Page.c"
+ } else {
+#line 407 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = FALSE;
+#line 3907 "Page.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp11_) {
+#line 408 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_alt_released (self, NULL);
+#line 3913 "Page.c"
+ } else {
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+#line 409 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = self->priv->alt_pressed;
+#line 409 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp15_) {
+#line 3921 "Page.c"
+ gboolean _tmp16_ = FALSE;
+#line 409 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = alt_currently_pressed;
+#line 409 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _tmp16_;
+#line 3927 "Page.c"
+ } else {
+#line 409 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = FALSE;
+#line 3931 "Page.c"
+ }
+#line 409 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp14_) {
+#line 410 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_alt_pressed (self, NULL);
+#line 3937 "Page.c"
+ }
+ }
+#line 412 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = self->priv->shift_pressed;
+#line 412 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp18_) {
+#line 3944 "Page.c"
+ gboolean _tmp19_ = FALSE;
+#line 412 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = shift_currently_pressed;
+#line 412 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = !_tmp19_;
+#line 3950 "Page.c"
+ } else {
+#line 412 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = FALSE;
+#line 3954 "Page.c"
+ }
+#line 412 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp17_) {
+#line 413 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_shift_released (self, NULL);
+#line 3960 "Page.c"
+ } else {
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+#line 414 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = self->priv->shift_pressed;
+#line 414 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp21_) {
+#line 3968 "Page.c"
+ gboolean _tmp22_ = FALSE;
+#line 414 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = shift_currently_pressed;
+#line 414 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp22_;
+#line 3974 "Page.c"
+ } else {
+#line 414 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = FALSE;
+#line 3978 "Page.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp20_) {
+#line 415 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_shift_pressed (self, NULL);
+#line 3984 "Page.c"
+ }
+ }
+#line 417 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = self->priv->super_pressed;
+#line 417 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp24_) {
+#line 3991 "Page.c"
+ gboolean _tmp25_ = FALSE;
+#line 417 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = super_currently_pressed;
+#line 417 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = !_tmp25_;
+#line 3997 "Page.c"
+ } else {
+#line 417 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = FALSE;
+#line 4001 "Page.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp23_) {
+#line 418 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_super_released (self, NULL);
+#line 4007 "Page.c"
+ } else {
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+#line 419 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = self->priv->super_pressed;
+#line 419 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp27_) {
+#line 4015 "Page.c"
+ gboolean _tmp28_ = FALSE;
+#line 419 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = super_currently_pressed;
+#line 419 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = _tmp28_;
+#line 4021 "Page.c"
+ } else {
+#line 419 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = FALSE;
+#line 4025 "Page.c"
+ }
+#line 419 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp26_) {
+#line 420 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_super_pressed (self, NULL);
+#line 4031 "Page.c"
+ }
+ }
+#line 422 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = ctrl_currently_pressed;
+#line 422 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->ctrl_pressed = _tmp29_;
+#line 423 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = alt_currently_pressed;
+#line 423 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->alt_pressed = _tmp30_;
+#line 424 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = shift_currently_pressed;
+#line 424 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->shift_pressed = _tmp31_;
+#line 425 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = super_currently_pressed;
+#line 425 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->super_pressed = _tmp32_;
+#line 4050 "Page.c"
+}
+
+
+PageWindow* page_get_page_window (Page* self) {
+ PageWindow* result = NULL;
+ GtkWidget* p = NULL;
+ GtkContainer* _tmp0_ = NULL;
+ GtkContainer* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+#line 428 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 429 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = gtk_widget_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 429 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 429 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 429 "/home/jens/Source/shotwell/src/Page.vala"
+ p = _tmp2_;
+#line 430 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 4072 "Page.c"
+ GtkWidget* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ GtkWidget* _tmp7_ = NULL;
+ GtkContainer* _tmp8_ = NULL;
+ GtkContainer* _tmp9_ = NULL;
+ GtkWidget* _tmp10_ = NULL;
+#line 430 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = p;
+#line 430 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!(_tmp3_ != NULL)) {
+#line 430 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 4085 "Page.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = p;
+#line 431 "/home/jens/Source/shotwell/src/Page.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, TYPE_PAGE_WINDOW)) {
+#line 4091 "Page.c"
+ GtkWidget* _tmp5_ = NULL;
+ PageWindow* _tmp6_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = p;
+#line 432 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PAGE_WINDOW, PageWindow));
+#line 432 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp6_;
+#line 432 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (p);
+#line 432 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 4104 "Page.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = p;
+#line 434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = gtk_widget_get_parent (_tmp7_);
+#line 434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp8_;
+#line 434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 434 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (p);
+#line 434 "/home/jens/Source/shotwell/src/Page.vala"
+ p = _tmp10_;
+#line 4118 "Page.c"
+ }
+#line 437 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 437 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (p);
+#line 437 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 4126 "Page.c"
+}
+
+
+CommandManager* page_get_command_manager (Page* self) {
+ CommandManager* result = NULL;
+ CommandManager* _tmp0_ = NULL;
+#line 440 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 441 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = app_window_get_command_manager ();
+#line 441 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 441 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 4141 "Page.c"
+}
+
+
+static void page_init_ui (Page* self) {
+ GtkActionGroup* _tmp0_ = NULL;
+ GtkActionEntry* action_entries = NULL;
+ gint _tmp1_ = 0;
+ GtkActionEntry* _tmp2_ = NULL;
+ gint action_entries_length1 = 0;
+ gint _action_entries_size_ = 0;
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkToggleActionEntry* toggle_entries = NULL;
+ gint _tmp6_ = 0;
+ GtkToggleActionEntry* _tmp7_ = NULL;
+ gint toggle_entries_length1 = 0;
+ gint _toggle_entries_size_ = 0;
+ GtkToggleActionEntry* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ GtkActionGroup* _tmp11_ = NULL;
+ AppWindow* _tmp12_ = NULL;
+ AppWindow* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ GtkActionGroup** _tmp15_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 445 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = gtk_action_group_new ("PageActionGroup");
+#line 445 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->action_group);
+#line 445 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->action_group = _tmp0_;
+#line 448 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_init_collect_action_entries (self, &_tmp1_);
+#line 448 "/home/jens/Source/shotwell/src/Page.vala"
+ action_entries = _tmp2_;
+#line 448 "/home/jens/Source/shotwell/src/Page.vala"
+ action_entries_length1 = _tmp1_;
+#line 448 "/home/jens/Source/shotwell/src/Page.vala"
+ _action_entries_size_ = action_entries_length1;
+#line 449 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = action_entries;
+#line 449 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3__length1 = action_entries_length1;
+#line 449 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3__length1 > 0) {
+#line 4188 "Page.c"
+ GtkActionGroup* _tmp4_ = NULL;
+ GtkActionEntry* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->action_group;
+#line 450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = action_entries;
+#line 450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5__length1 = action_entries_length1;
+#line 450 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_group_add_actions (_tmp4_, _tmp5_, _tmp5__length1, self);
+#line 4200 "Page.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_init_collect_toggle_action_entries (self, &_tmp6_);
+#line 453 "/home/jens/Source/shotwell/src/Page.vala"
+ toggle_entries = _tmp7_;
+#line 453 "/home/jens/Source/shotwell/src/Page.vala"
+ toggle_entries_length1 = _tmp6_;
+#line 453 "/home/jens/Source/shotwell/src/Page.vala"
+ _toggle_entries_size_ = toggle_entries_length1;
+#line 454 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = toggle_entries;
+#line 454 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8__length1 = toggle_entries_length1;
+#line 454 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8__length1 > 0) {
+#line 4216 "Page.c"
+ GtkActionGroup* _tmp9_ = NULL;
+ GtkToggleActionEntry* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 455 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->action_group;
+#line 455 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = toggle_entries;
+#line 455 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10__length1 = toggle_entries_length1;
+#line 455 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_action_group_add_toggle_actions (_tmp9_, _tmp10_, _tmp10__length1, self);
+#line 4228 "Page.c"
+ }
+#line 460 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->priv->action_group;
+#line 460 "/home/jens/Source/shotwell/src/Page.vala"
+ page_register_radio_actions (self, _tmp11_);
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = app_window_get_instance ();
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_;
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = app_window_get_common_action_groups (_tmp13_, &_tmp14_);
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->common_action_groups = (_vala_array_free (self->priv->common_action_groups, self->priv->common_action_groups_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->common_action_groups = _tmp15_;
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->common_action_groups_length1 = _tmp14_;
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->_common_action_groups_size_ = self->priv->common_action_groups_length1;
+#line 463 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp13_);
+#line 444 "/home/jens/Source/shotwell/src/Page.vala"
+ toggle_entries = (g_free (toggle_entries), NULL);
+#line 444 "/home/jens/Source/shotwell/src/Page.vala"
+ action_entries = (g_free (action_entries), NULL);
+#line 4254 "Page.c"
+}
+
+
+static gpointer _injection_group_ref0 (gpointer self) {
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ return self ? injection_group_ref (self) : NULL;
+#line 4261 "Page.c"
+}
+
+
+static void _vala_array_add249 (guint** array, int* length, int* size, guint value) {
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ if ((*length) == (*size)) {
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ *array = g_renew (guint, *array, *size);
+#line 4272 "Page.c"
+ }
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ (*array)[(*length)++] = value;
+#line 4276 "Page.c"
+}
+
+
+static void page_add_ui (Page* self) {
+ GeeList* ui_filenames = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GtkUIManager* _tmp19_ = NULL;
+ GtkActionGroup* _tmp20_ = NULL;
+ InjectionGroup** injection_groups = NULL;
+ gint _tmp21_ = 0;
+ InjectionGroup** _tmp22_ = NULL;
+ gint injection_groups_length1 = 0;
+ gint _injection_groups_size_ = 0;
+ InjectionGroup** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ AppWindow* _tmp51_ = NULL;
+ AppWindow* _tmp52_ = NULL;
+ GtkUIManager* _tmp53_ = NULL;
+ GtkUIManager* _tmp54_ = NULL;
+#line 466 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 468 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 468 "/home/jens/Source/shotwell/src/Page.vala"
+ ui_filenames = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
+#line 469 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = ui_filenames;
+#line 469 "/home/jens/Source/shotwell/src/Page.vala"
+ page_init_collect_ui_filenames (self, _tmp1_);
+#line 470 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = ui_filenames;
+#line 470 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 470 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 470 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_ == 0) {
+#line 4318 "Page.c"
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 471 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_get_page_name (self);
+#line 471 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 471 "/home/jens/Source/shotwell/src/Page.vala"
+ g_message ("Page.vala:471: No UI file specified for %s", _tmp6_);
+#line 471 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp6_);
+#line 4329 "Page.c"
+ }
+ {
+ GeeList* _ui_filename_list = NULL;
+ GeeList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _ui_filename_size = 0;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _ui_filename_index = 0;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = ui_filenames;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _ui_filename_list = _tmp8_;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _ui_filename_list;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _ui_filename_size = _tmp11_;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _ui_filename_index = -1;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 4358 "Page.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gchar* ui_filename = NULL;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = _ui_filename_index;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _ui_filename_index = _tmp12_ + 1;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _ui_filename_index;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _ui_filename_size;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 4379 "Page.c"
+ }
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _ui_filename_list;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _ui_filename_index;
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = gee_list_get (_tmp15_, _tmp16_);
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ ui_filename = (gchar*) _tmp17_;
+#line 474 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = ui_filename;
+#line 474 "/home/jens/Source/shotwell/src/Page.vala"
+ page_init_load_ui (self, _tmp18_);
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (ui_filename);
+#line 4395 "Page.c"
+ }
+#line 473 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_ui_filename_list);
+#line 4399 "Page.c"
+ }
+#line 476 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = self->ui;
+#line 476 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = self->priv->action_group;
+#line 476 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_ui_manager_insert_action_group (_tmp19_, _tmp20_, 0);
+#line 479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = page_init_collect_injection_groups (self, &_tmp21_);
+#line 479 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_groups = _tmp22_;
+#line 479 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_groups_length1 = _tmp21_;
+#line 479 "/home/jens/Source/shotwell/src/Page.vala"
+ _injection_groups_size_ = injection_groups_length1;
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = injection_groups;
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23__length1 = injection_groups_length1;
+#line 4419 "Page.c"
+ {
+ InjectionGroup** group_collection = NULL;
+ gint group_collection_length1 = 0;
+ gint _group_collection_size_ = 0;
+ gint group_it = 0;
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ group_collection = _tmp23_;
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ group_collection_length1 = _tmp23__length1;
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ for (group_it = 0; group_it < _tmp23__length1; group_it = group_it + 1) {
+#line 4431 "Page.c"
+ InjectionGroup* _tmp24_ = NULL;
+ InjectionGroup* group = NULL;
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = _injection_group_ref0 (group_collection[group_it]);
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ group = _tmp24_;
+#line 4438 "Page.c"
+ {
+ {
+ GeeList* _element_list = NULL;
+ InjectionGroup* _tmp25_ = NULL;
+ GeeList* _tmp26_ = NULL;
+ gint _element_size = 0;
+ GeeList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _element_index = 0;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = group;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = injection_group_get_elements (_tmp25_);
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _element_list = _tmp26_;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = _element_list;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp28_;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _element_size = _tmp29_;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _element_index = -1;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 4467 "Page.c"
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ InjectionGroupElement* element = NULL;
+ GeeList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gpointer _tmp35_ = NULL;
+ guint merge_id = 0U;
+ GtkUIManager* _tmp36_ = NULL;
+ guint _tmp37_ = 0U;
+ GtkUIManager* _tmp38_ = NULL;
+ guint _tmp39_ = 0U;
+ InjectionGroup* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ InjectionGroupElement* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ InjectionGroupElement* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ InjectionGroupElement* _tmp47_ = NULL;
+ GtkUIManagerItemType _tmp48_ = 0;
+ guint* _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ guint _tmp50_ = 0U;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = _element_index;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _element_index = _tmp30_ + 1;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = _element_index;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = _element_size;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!(_tmp31_ < _tmp32_)) {
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 4504 "Page.c"
+ }
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = _element_list;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = _element_index;
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = gee_list_get (_tmp33_, _tmp34_);
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ element = (InjectionGroupElement*) _tmp35_;
+#line 482 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = self->ui;
+#line 482 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = gtk_ui_manager_new_merge_id (_tmp36_);
+#line 482 "/home/jens/Source/shotwell/src/Page.vala"
+ merge_id = _tmp37_;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = self->ui;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = merge_id;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = group;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = injection_group_get_path (_tmp40_);
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = _tmp41_;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = element;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = _tmp43_->name;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = element;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = _tmp45_->action;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = element;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = _tmp47_->kind;
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_ui_manager_add_ui (_tmp38_, _tmp39_, _tmp42_, _tmp44_, _tmp46_, _tmp48_, FALSE);
+#line 483 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp42_);
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = self->priv->merge_ids;
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49__length1 = self->priv->merge_ids_length1;
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp50_ = merge_id;
+#line 485 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_array_add249 (&self->priv->merge_ids, &self->priv->merge_ids_length1, &self->priv->_merge_ids_size_, _tmp50_);
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _injection_group_element_unref0 (element);
+#line 4556 "Page.c"
+ }
+#line 481 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_element_list);
+#line 4560 "Page.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/Page.vala"
+ _injection_group_unref0 (group);
+#line 4564 "Page.c"
+ }
+ }
+ }
+#line 489 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp51_ = app_window_get_instance ();
+#line 489 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp52_ = _tmp51_;
+#line 489 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp53_ = self->ui;
+#line 489 "/home/jens/Source/shotwell/src/Page.vala"
+ app_window_replace_common_placeholders (_tmp52_, _tmp53_);
+#line 489 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp52_);
+#line 491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp54_ = self->ui;
+#line 491 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_ui_manager_ensure_update (_tmp54_);
+#line 466 "/home/jens/Source/shotwell/src/Page.vala"
+ injection_groups = (_vala_array_free (injection_groups, injection_groups_length1, (GDestroyNotify) injection_group_unref), NULL);
+#line 466 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (ui_filenames);
+#line 4586 "Page.c"
+}
+
+
+static void page_remove_ui (Page* self) {
+ GtkUIManager* _tmp8_ = NULL;
+ GtkActionGroup* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ GtkUIManager* _tmp11_ = NULL;
+#line 494 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 4597 "Page.c"
+ {
+ gint i = 0;
+ guint* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->merge_ids;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0__length1 = self->priv->merge_ids_length1;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ i = _tmp0__length1 - 1;
+#line 4608 "Page.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = TRUE;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 4615 "Page.c"
+ gint _tmp3_ = 0;
+ GtkUIManager* _tmp4_ = NULL;
+ guint* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ guint _tmp7_ = 0U;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp1_) {
+#line 4624 "Page.c"
+ gint _tmp2_ = 0;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = i;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ i = _tmp2_ - 1;
+#line 4630 "Page.c"
+ }
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = FALSE;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = i;
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!(_tmp3_ >= 0)) {
+#line 495 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 4640 "Page.c"
+ }
+#line 496 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->ui;
+#line 496 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->merge_ids;
+#line 496 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5__length1 = self->priv->merge_ids_length1;
+#line 496 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = i;
+#line 496 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 496 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_ui_manager_remove_ui (_tmp4_, _tmp7_);
+#line 4654 "Page.c"
+ }
+ }
+ }
+#line 497 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->ui;
+#line 497 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->action_group;
+#line 497 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_ui_manager_remove_action_group (_tmp8_, _tmp9_);
+#line 498 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = 0;
+#line 498 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->merge_ids = g_renew (guint, self->priv->merge_ids, 0);
+#line 498 "/home/jens/Source/shotwell/src/Page.vala"
+ (_tmp10_ > self->priv->merge_ids_length1) ? memset (self->priv->merge_ids + self->priv->merge_ids_length1, 0, sizeof (guint) * (_tmp10_ - self->priv->merge_ids_length1)) : NULL;
+#line 498 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->merge_ids_length1 = _tmp10_;
+#line 498 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->_merge_ids_size_ = _tmp10_;
+#line 500 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->ui;
+#line 500 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_ui_manager_ensure_update (_tmp11_);
+#line 4678 "Page.c"
+}
+
+
+void page_init_toolbar (Page* self, const gchar* path) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 503 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (path != NULL);
+#line 504 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = path;
+#line 504 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 504 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->toolbar_path);
+#line 504 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->toolbar_path = _tmp1_;
+#line 4697 "Page.c"
+}
+
+
+static void _page_on_update_actions_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
+#line 519 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_update_actions ((Page*) self);
+#line 4704 "Page.c"
+}
+
+
+static void _page_on_update_actions_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self) {
+#line 520 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_update_actions ((Page*) self);
+#line 4711 "Page.c"
+}
+
+
+static void _page_on_update_actions_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self) {
+#line 521 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_update_actions ((Page*) self);
+#line 4718 "Page.c"
+}
+
+
+static void _page_on_update_actions_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 522 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_update_actions ((Page*) self);
+#line 4725 "Page.c"
+}
+
+
+static void page_attach_view_signals (Page* self) {
+ gboolean _tmp0_ = FALSE;
+ gint selected_count = 0;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint count = 0;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ ViewCollection* _tmp18_ = NULL;
+ ViewCollection* _tmp19_ = NULL;
+ ViewCollection* _tmp20_ = NULL;
+#line 508 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 509 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->are_actions_attached;
+#line 509 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 510 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 4761 "Page.c"
+ }
+#line 513 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_view (self);
+#line 513 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 513 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = view_collection_get_selected_count (_tmp2_);
+#line 513 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 513 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 513 "/home/jens/Source/shotwell/src/Page.vala"
+ selected_count = _tmp4_;
+#line 514 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_get_view (self);
+#line 514 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 514 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
+#line 514 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 514 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 514 "/home/jens/Source/shotwell/src/Page.vala"
+ count = _tmp8_;
+#line 515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = selected_count;
+#line 515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = count;
+#line 515 "/home/jens/Source/shotwell/src/Page.vala"
+ page_init_actions (self, _tmp9_, _tmp10_);
+#line 516 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = selected_count;
+#line 516 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = count;
+#line 516 "/home/jens/Source/shotwell/src/Page.vala"
+ page_update_actions (self, _tmp11_, _tmp12_);
+#line 519 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = page_get_view (self);
+#line 519 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _tmp13_;
+#line 519 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp14_, "items-state-changed", (GCallback) _page_on_update_actions_view_collection_items_state_changed, self, 0);
+#line 519 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 520 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = page_get_view (self);
+#line 520 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_;
+#line 520 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp16_, "selection-group-altered", (GCallback) _page_on_update_actions_view_collection_selection_group_altered, self, 0);
+#line 520 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp16_);
+#line 521 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = page_get_view (self);
+#line 521 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = _tmp17_;
+#line 521 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp18_, "items-visibility-changed", (GCallback) _page_on_update_actions_view_collection_items_visibility_changed, self, 0);
+#line 521 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp18_);
+#line 522 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = page_get_view (self);
+#line 522 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp19_;
+#line 522 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _page_on_update_actions_data_collection_contents_altered, self, 0);
+#line 522 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp20_);
+#line 524 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->are_actions_attached = TRUE;
+#line 4833 "Page.c"
+}
+
+
+static void page_detach_view_signals (Page* self) {
+ gboolean _tmp0_ = FALSE;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+#line 528 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->are_actions_attached;
+#line 529 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp0_) {
+#line 530 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 4859 "Page.c"
+ }
+#line 532 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_view (self);
+#line 532 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 532 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("items-state-changed", TYPE_VIEW_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 532 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _page_on_update_actions_view_collection_items_state_changed, self);
+#line 532 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_get_view (self);
+#line 533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 533 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("selection-group-altered", TYPE_VIEW_COLLECTION, &_tmp6_, NULL, FALSE);
+#line 533 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _page_on_update_actions_view_collection_selection_group_altered, self);
+#line 533 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 534 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_get_view (self);
+#line 534 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 534 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("items-visibility-changed", TYPE_VIEW_COLLECTION, &_tmp9_, NULL, FALSE);
+#line 534 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _page_on_update_actions_view_collection_items_visibility_changed, self);
+#line 534 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 535 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = page_get_view (self);
+#line 535 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_;
+#line 535 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp12_, NULL, FALSE);
+#line 535 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _page_on_update_actions_data_collection_contents_altered, self);
+#line 535 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 537 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->are_actions_attached = FALSE;
+#line 4903 "Page.c"
+}
+
+
+static void _page_on_update_actions_on_idle_one_shot_callback (gpointer self) {
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_update_actions_on_idle ((Page*) self);
+#line 4910 "Page.c"
+}
+
+
+static void page_on_update_actions (Page* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+ OneShotScheduler* _tmp6_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 541 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->update_actions_scheduler;
+#line 541 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 4923 "Page.c"
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ OneShotScheduler* _tmp5_ = NULL;
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_page_name (self);
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = g_strdup_printf ("Update actions scheduler for %s", _tmp2_);
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = one_shot_scheduler_new (_tmp4_, _page_on_update_actions_on_idle_one_shot_callback, self);
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _one_shot_scheduler_unref0 (self->priv->update_actions_scheduler);
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->update_actions_scheduler = _tmp5_;
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp4_);
+#line 542 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp2_);
+#line 4947 "Page.c"
+ }
+#line 547 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->update_actions_scheduler;
+#line 547 "/home/jens/Source/shotwell/src/Page.vala"
+ one_shot_scheduler_at_priority_idle (_tmp6_, G_PRIORITY_LOW);
+#line 4953 "Page.c"
+}
+
+
+static void page_on_update_actions_on_idle (Page* self) {
+ gboolean _tmp0_ = FALSE;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 550 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->is_destroyed;
+#line 551 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 552 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 4973 "Page.c"
+ }
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_view (self);
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = view_collection_get_selected_count (_tmp2_);
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_get_view (self);
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection));
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ page_update_actions (self, _tmp3_, _tmp6_);
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 554 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 4993 "Page.c"
+}
+
+
+static void _vala_array_add250 (guint** array, int* length, int* size, guint value) {
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ if ((*length) == (*size)) {
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ *array = g_renew (guint, *array, *size);
+#line 5004 "Page.c"
+ }
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ (*array)[(*length)++] = value;
+#line 5008 "Page.c"
+}
+
+
+static void page_init_load_ui (Page* self, const gchar* ui_filename) {
+ GFile* ui_file = NULL;
+ const gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 557 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (ui_filename != NULL);
+#line 558 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = ui_filename;
+#line 558 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = resources_get_ui (_tmp0_);
+#line 558 "/home/jens/Source/shotwell/src/Page.vala"
+ ui_file = _tmp1_;
+#line 5027 "Page.c"
+ {
+ guint _tmp2_ = 0U;
+ GtkUIManager* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ guint _tmp7_ = 0U;
+ guint* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->ui;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = g_file_get_path (ui_file);
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = gtk_ui_manager_add_ui_from_file (_tmp3_, _tmp5_, &_inner_error_);
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp5_);
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp7_;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5053 "Page.c"
+ goto __catch241_g_error;
+ }
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->merge_ids;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8__length1 = self->priv->merge_ids_length1;
+#line 561 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_array_add250 (&self->priv->merge_ids, &self->priv->merge_ids_length1, &self->priv->_merge_ids_size_, _tmp2_);
+#line 5062 "Page.c"
+ }
+ goto __finally241;
+ __catch241_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ Application* _tmp15_ = NULL;
+ Application* _tmp16_ = NULL;
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ err = _inner_error_;
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ _inner_error_ = NULL;
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = g_file_get_path (ui_file);
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_;
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = err;
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = _tmp11_->message;
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = g_strdup_printf ("Error loading UI file %s: %s", _tmp10_, _tmp12_);
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _tmp13_;
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ app_window_error_message (_tmp14_, NULL);
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp14_);
+#line 563 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp10_);
+#line 565 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = application_get_instance ();
+#line 565 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_;
+#line 565 "/home/jens/Source/shotwell/src/Page.vala"
+ application_panic (_tmp16_);
+#line 565 "/home/jens/Source/shotwell/src/Page.vala"
+ _application_unref0 (_tmp16_);
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_error_free0 (err);
+#line 5108 "Page.c"
+ }
+ __finally241:
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (ui_file);
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ g_clear_error (&_inner_error_);
+#line 560 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 5121 "Page.c"
+ }
+#line 557 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (ui_file);
+#line 5125 "Page.c"
+}
+
+
+static void page_real_init_collect_ui_filenames (Page* self, GeeList* ui_filenames) {
+#line 572 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 5132 "Page.c"
+}
+
+
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames) {
+#line 572 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 572 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->init_collect_ui_filenames (self, ui_filenames);
+#line 5141 "Page.c"
+}
+
+
+static GtkActionEntry* page_real_init_collect_action_entries (Page* self, int* result_length1) {
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* _tmp0_ = NULL;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 577 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = g_new0 (GtkActionEntry, 0);
+#line 577 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 577 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1__length1 = 0;
+#line 577 "/home/jens/Source/shotwell/src/Page.vala"
+ if (result_length1) {
+#line 577 "/home/jens/Source/shotwell/src/Page.vala"
+ *result_length1 = _tmp1__length1;
+#line 5160 "Page.c"
+ }
+#line 577 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 577 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5166 "Page.c"
+}
+
+
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1) {
+#line 576 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 576 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->init_collect_action_entries (self, result_length1);
+#line 5175 "Page.c"
+}
+
+
+static GtkToggleActionEntry* page_real_init_collect_toggle_action_entries (Page* self, int* result_length1) {
+ GtkToggleActionEntry* result = NULL;
+ GtkToggleActionEntry* _tmp0_ = NULL;
+ GtkToggleActionEntry* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 582 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = g_new0 (GtkToggleActionEntry, 0);
+#line 582 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 582 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1__length1 = 0;
+#line 582 "/home/jens/Source/shotwell/src/Page.vala"
+ if (result_length1) {
+#line 582 "/home/jens/Source/shotwell/src/Page.vala"
+ *result_length1 = _tmp1__length1;
+#line 5194 "Page.c"
+ }
+#line 582 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 582 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5200 "Page.c"
+}
+
+
+GtkToggleActionEntry* page_init_collect_toggle_action_entries (Page* self, int* result_length1) {
+#line 581 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 581 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->init_collect_toggle_action_entries (self, result_length1);
+#line 5209 "Page.c"
+}
+
+
+static void page_real_register_radio_actions (Page* self, GtkActionGroup* action_group) {
+#line 586 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
+#line 5216 "Page.c"
+}
+
+
+void page_register_radio_actions (Page* self, GtkActionGroup* action_group) {
+#line 586 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 586 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->register_radio_actions (self, action_group);
+#line 5225 "Page.c"
+}
+
+
+static InjectionGroup** page_real_init_collect_injection_groups (Page* self, int* result_length1) {
+ InjectionGroup** result = NULL;
+ InjectionGroup** _tmp0_ = NULL;
+ InjectionGroup** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 592 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = g_new0 (InjectionGroup*, 0 + 1);
+#line 592 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 592 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1__length1 = 0;
+#line 592 "/home/jens/Source/shotwell/src/Page.vala"
+ if (result_length1) {
+#line 592 "/home/jens/Source/shotwell/src/Page.vala"
+ *result_length1 = _tmp1__length1;
+#line 5244 "Page.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 592 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5250 "Page.c"
+}
+
+
+InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1) {
+#line 591 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), NULL);
+#line 591 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->init_collect_injection_groups (self, result_length1);
+#line 5259 "Page.c"
+}
+
+
+static void page_real_init_actions (Page* self, gint selected_count, gint count) {
+}
+
+
+void page_init_actions (Page* self, gint selected_count, gint count) {
+#line 597 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 597 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->init_actions (self, selected_count, count);
+#line 5272 "Page.c"
+}
+
+
+static void page_real_update_actions (Page* self, gint selected_count, gint count) {
+}
+
+
+void page_update_actions (Page* self, gint selected_count, gint count) {
+#line 603 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 603 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->update_actions (self, selected_count, count);
+#line 5285 "Page.c"
+}
+
+
+static void _page_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
+#line 618 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_drag_begin ((Page*) self, context);
+#line 5292 "Page.c"
+}
+
+
+static void _page_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self) {
+#line 619 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_drag_data_get ((Page*) self, context, selection_data, info, time_);
+#line 5299 "Page.c"
+}
+
+
+static void _page_on_drag_data_delete_gtk_widget_drag_data_delete (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
+#line 620 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_drag_data_delete ((Page*) self, context);
+#line 5306 "Page.c"
+}
+
+
+static void _page_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
+#line 621 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_drag_end ((Page*) self, context);
+#line 5313 "Page.c"
+}
+
+
+static gboolean _page_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self) {
+ gboolean result;
+ result = page_on_drag_failed ((Page*) self, context, _result_);
+#line 622 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5322 "Page.c"
+}
+
+
+void page_enable_drag_source (Page* self, GdkDragAction actions, GtkTargetEntry* source_target_entries, int source_target_entries_length1) {
+ gboolean _tmp0_ = FALSE;
+ GtkWidget* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkTargetEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GdkDragAction _tmp4_ = 0;
+ GtkWidget* _tmp5_ = NULL;
+ GtkWidget* _tmp6_ = NULL;
+ GtkWidget* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ GtkWidget* _tmp9_ = NULL;
+#line 608 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 609 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->dnd_enabled;
+#line 609 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 610 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 5346 "Page.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->event_source;
+#line 612 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp1_ != NULL, "event_source != null");
+#line 614 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->event_source;
+#line 614 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = source_target_entries;
+#line 614 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3__length1 = source_target_entries_length1;
+#line 614 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = actions;
+#line 614 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_drag_source_set (_tmp2_, GDK_BUTTON1_MASK, _tmp3_, _tmp3__length1, _tmp4_);
+#line 618 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->event_source;
+#line 618 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp5_, "drag-begin", (GCallback) _page_on_drag_begin_gtk_widget_drag_begin, self, 0);
+#line 619 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->event_source;
+#line 619 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp6_, "drag-data-get", (GCallback) _page_on_drag_data_get_gtk_widget_drag_data_get, self, 0);
+#line 620 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->event_source;
+#line 620 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp7_, "drag-data-delete", (GCallback) _page_on_drag_data_delete_gtk_widget_drag_data_delete, self, 0);
+#line 621 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->event_source;
+#line 621 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp8_, "drag-end", (GCallback) _page_on_drag_end_gtk_widget_drag_end, self, 0);
+#line 622 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->event_source;
+#line 622 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp9_, "drag-failed", (GCallback) _page_on_drag_failed_gtk_widget_drag_failed, self, 0);
+#line 624 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->dnd_enabled = TRUE;
+#line 5384 "Page.c"
+}
+
+
+void page_disable_drag_source (Page* self) {
+ gboolean _tmp0_ = FALSE;
+ GtkWidget* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ GtkWidget* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ GtkWidget* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ GtkWidget* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ GtkWidget* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ GtkWidget* _tmp12_ = NULL;
+#line 627 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 628 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->dnd_enabled;
+#line 628 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp0_) {
+#line 629 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 5410 "Page.c"
+ }
+#line 631 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->event_source;
+#line 631 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp1_ != NULL, "event_source != null");
+#line 633 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->event_source;
+#line 633 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-begin", gtk_widget_get_type (), &_tmp3_, NULL, FALSE);
+#line 633 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _page_on_drag_begin_gtk_widget_drag_begin, self);
+#line 634 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->event_source;
+#line 634 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-data-get", gtk_widget_get_type (), &_tmp5_, NULL, FALSE);
+#line 634 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _page_on_drag_data_get_gtk_widget_drag_data_get, self);
+#line 635 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->event_source;
+#line 635 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-data-delete", gtk_widget_get_type (), &_tmp7_, NULL, FALSE);
+#line 635 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _page_on_drag_data_delete_gtk_widget_drag_data_delete, self);
+#line 636 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->event_source;
+#line 636 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-end", gtk_widget_get_type (), &_tmp9_, NULL, FALSE);
+#line 636 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _page_on_drag_end_gtk_widget_drag_end, self);
+#line 637 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->priv->event_source;
+#line 637 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-failed", gtk_widget_get_type (), &_tmp11_, NULL, FALSE);
+#line 637 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _page_on_drag_failed_gtk_widget_drag_failed, self);
+#line 638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->event_source;
+#line 638 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_drag_source_unset (_tmp12_);
+#line 640 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->dnd_enabled = FALSE;
+#line 5452 "Page.c"
+}
+
+
+gboolean page_is_dnd_enabled (Page* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 644 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->dnd_enabled;
+#line 644 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 644 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5467 "Page.c"
+}
+
+
+static void page_on_drag_begin (Page* self, GdkDragContext* context) {
+ GdkDragContext* _tmp0_ = NULL;
+#line 647 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 647 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 648 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = context;
+#line 648 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-begin", _tmp0_);
+#line 5481 "Page.c"
+}
+
+
+static void page_on_drag_data_get (Page* self, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time) {
+ GdkDragContext* _tmp0_ = NULL;
+ GtkSelectionData* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+#line 651 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 651 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 651 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (selection_data != NULL);
+#line 653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = context;
+#line 653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = selection_data;
+#line 653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = info;
+#line 653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = time;
+#line 653 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-data-get", _tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 5506 "Page.c"
+}
+
+
+static void page_on_drag_data_delete (Page* self, GdkDragContext* context) {
+ GdkDragContext* _tmp0_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 656 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 657 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = context;
+#line 657 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-data-delete", _tmp0_);
+#line 5520 "Page.c"
+}
+
+
+static void page_on_drag_end (Page* self, GdkDragContext* context) {
+ GdkDragContext* _tmp0_ = NULL;
+#line 660 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 660 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 661 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = context;
+#line 661 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-end", _tmp0_);
+#line 5534 "Page.c"
+}
+
+
+static gboolean page_real_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result) {
+ gboolean result = FALSE;
+#line 668 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
+#line 669 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 669 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5546 "Page.c"
+}
+
+
+gboolean page_source_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result) {
+#line 668 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 668 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->source_drag_failed (self, context, drag_result);
+#line 5555 "Page.c"
+}
+
+
+static gboolean page_on_drag_failed (Page* self, GdkDragContext* context, GtkDragResult drag_result) {
+ gboolean result = FALSE;
+ GdkDragContext* _tmp0_ = NULL;
+ GtkDragResult _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 672 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 672 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
+#line 673 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = context;
+#line 673 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = drag_result;
+#line 673 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_source_drag_failed (self, _tmp0_, _tmp1_);
+#line 673 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp2_;
+#line 673 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5578 "Page.c"
+}
+
+
+gboolean page_get_event_source_pointer (Page* self, gint* x, gint* y, GdkModifierType* mask) {
+ gint _vala_x = 0;
+ gint _vala_y = 0;
+ GdkModifierType _vala_mask = 0;
+ gboolean result = FALSE;
+ GtkWidget* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ GdkDisplay* _tmp3_ = NULL;
+ GdkDeviceManager* _tmp4_ = NULL;
+ GdkDevice* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ GdkModifierType _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ GdkPoint _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ gint _tmp14_ = 0;
+ GdkPoint _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+#line 680 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 681 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->event_source;
+#line 681 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 682 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_x = 0;
+#line 683 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_y = 0;
+#line 684 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_mask = 0;
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ if (x) {
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ *x = _vala_x;
+#line 5625 "Page.c"
+ }
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ if (y) {
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ *y = _vala_y;
+#line 5631 "Page.c"
+ }
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ if (mask) {
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ *mask = _vala_mask;
+#line 5637 "Page.c"
+ }
+#line 686 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5641 "Page.c"
+ }
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->event_source;
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = gtk_widget_get_window (_tmp1_);
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gdk_display_get_default ();
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = gdk_display_get_device_manager (_tmp3_);
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gdk_device_manager_get_client_pointer (_tmp4_);
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_window_get_device_position (_tmp2_, _tmp5_, &_tmp6_, &_tmp7_, &_tmp8_);
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_x = _tmp6_;
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_y = _tmp7_;
+#line 689 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_mask = _tmp8_;
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->priv->last_down;
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_.x;
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp11_ < 0) {
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = TRUE;
+#line 5669 "Page.c"
+ } else {
+ GdkPoint _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->last_down;
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_.y;
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp13_ < 0;
+#line 5679 "Page.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp9_) {
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ if (x) {
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ *x = _vala_x;
+#line 5689 "Page.c"
+ }
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ if (y) {
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ *y = _vala_y;
+#line 5695 "Page.c"
+ }
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ if (mask) {
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ *mask = _vala_mask;
+#line 5701 "Page.c"
+ }
+#line 693 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5705 "Page.c"
+ }
+#line 699 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _vala_x;
+#line 699 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = self->priv->last_down;
+#line 699 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_.x;
+#line 699 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = abs (_tmp14_ - _tmp16_);
+#line 699 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp17_ >= 0x7FFF) {
+#line 5717 "Page.c"
+ gint _tmp18_ = 0;
+#line 700 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = _vala_x;
+#line 700 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_x = _tmp18_ + 0xFFFF;
+#line 5723 "Page.c"
+ }
+#line 702 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = _vala_y;
+#line 702 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = self->priv->last_down;
+#line 702 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = _tmp20_.y;
+#line 702 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = abs (_tmp19_ - _tmp21_);
+#line 702 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp22_ >= 0x7FFF) {
+#line 5735 "Page.c"
+ gint _tmp23_ = 0;
+#line 703 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = _vala_y;
+#line 703 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_y = _tmp23_ + 0xFFFF;
+#line 5741 "Page.c"
+ }
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ if (x) {
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ *x = _vala_x;
+#line 5749 "Page.c"
+ }
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ if (y) {
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ *y = _vala_y;
+#line 5755 "Page.c"
+ }
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ if (mask) {
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ *mask = _vala_mask;
+#line 5761 "Page.c"
+ }
+#line 705 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5765 "Page.c"
+}
+
+
+static gboolean page_real_on_left_click (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 708 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 709 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 709 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5777 "Page.c"
+}
+
+
+gboolean page_on_left_click (Page* self, GdkEventButton* event) {
+#line 708 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 708 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_left_click (self, event);
+#line 5786 "Page.c"
+}
+
+
+static gboolean page_real_on_middle_click (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 712 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 713 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 713 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5798 "Page.c"
+}
+
+
+gboolean page_on_middle_click (Page* self, GdkEventButton* event) {
+#line 712 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 712 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_middle_click (self, event);
+#line 5807 "Page.c"
+}
+
+
+static gboolean page_real_on_right_click (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 716 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 717 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 717 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5819 "Page.c"
+}
+
+
+gboolean page_on_right_click (Page* self, GdkEventButton* event) {
+#line 716 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 716 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_right_click (self, event);
+#line 5828 "Page.c"
+}
+
+
+static gboolean page_real_on_left_released (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 720 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 721 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 721 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5840 "Page.c"
+}
+
+
+gboolean page_on_left_released (Page* self, GdkEventButton* event) {
+#line 720 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 720 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_left_released (self, event);
+#line 5849 "Page.c"
+}
+
+
+static gboolean page_real_on_middle_released (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 724 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 725 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 725 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5861 "Page.c"
+}
+
+
+gboolean page_on_middle_released (Page* self, GdkEventButton* event) {
+#line 724 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 724 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_middle_released (self, event);
+#line 5870 "Page.c"
+}
+
+
+static gboolean page_real_on_right_released (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 728 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 729 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 729 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5882 "Page.c"
+}
+
+
+gboolean page_on_right_released (Page* self, GdkEventButton* event) {
+#line 728 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 728 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_right_released (self, event);
+#line 5891 "Page.c"
+}
+
+
+static gboolean page_on_button_pressed_internal (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 732 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 732 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 733 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 733 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->button;
+#line 733 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (_tmp1_) {
+#line 733 "/home/jens/Source/shotwell/src/Page.vala"
+ case 1:
+#line 5911 "Page.c"
+ {
+ GtkWidget* _tmp2_ = NULL;
+ GdkEventButton* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ GdkEventButton* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ GdkEventButton* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 735 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->event_source;
+#line 735 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != NULL) {
+#line 5924 "Page.c"
+ GtkWidget* _tmp3_ = NULL;
+#line 736 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->event_source;
+#line 736 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_grab_focus (_tmp3_);
+#line 5930 "Page.c"
+ }
+#line 739 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = event;
+#line 739 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_->x;
+#line 739 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_down.x = (gint) _tmp5_;
+#line 740 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = event;
+#line 740 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_->y;
+#line 740 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_down.y = (gint) _tmp7_;
+#line 742 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = event;
+#line 742 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = page_on_left_click (self, _tmp8_);
+#line 742 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp9_;
+#line 742 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5952 "Page.c"
+ }
+#line 733 "/home/jens/Source/shotwell/src/Page.vala"
+ case 2:
+#line 5956 "Page.c"
+ {
+ GdkEventButton* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 745 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = event;
+#line 745 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = page_on_middle_click (self, _tmp10_);
+#line 745 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp11_;
+#line 745 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5968 "Page.c"
+ }
+#line 733 "/home/jens/Source/shotwell/src/Page.vala"
+ case 3:
+#line 5972 "Page.c"
+ {
+ GdkEventButton* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 748 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = event;
+#line 748 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = page_on_right_click (self, _tmp12_);
+#line 748 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp13_;
+#line 748 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5984 "Page.c"
+ }
+ default:
+ {
+#line 751 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 751 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 5992 "Page.c"
+ }
+ }
+}
+
+
+static gboolean page_on_button_released_internal (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 755 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 755 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 756 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 756 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->button;
+#line 756 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (_tmp1_) {
+#line 756 "/home/jens/Source/shotwell/src/Page.vala"
+ case 1:
+#line 6014 "Page.c"
+ {
+ GdkPoint _tmp2_ = {0};
+ GdkEventButton* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 759 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_.x = -1;
+#line 759 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_.y = -1;
+#line 759 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_down = _tmp2_;
+#line 761 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = event;
+#line 761 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_on_left_released (self, _tmp3_);
+#line 761 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp4_;
+#line 761 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6033 "Page.c"
+ }
+#line 756 "/home/jens/Source/shotwell/src/Page.vala"
+ case 2:
+#line 6037 "Page.c"
+ {
+ GdkEventButton* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 764 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = event;
+#line 764 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page_on_middle_released (self, _tmp5_);
+#line 764 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp6_;
+#line 764 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6049 "Page.c"
+ }
+#line 756 "/home/jens/Source/shotwell/src/Page.vala"
+ case 3:
+#line 6053 "Page.c"
+ {
+ GdkEventButton* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 767 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = event;
+#line 767 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = page_on_right_released (self, _tmp7_);
+#line 767 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp8_;
+#line 767 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6065 "Page.c"
+ }
+ default:
+ {
+#line 770 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 770 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6073 "Page.c"
+ }
+ }
+}
+
+
+static gboolean page_real_on_ctrl_pressed (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 775 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 775 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6085 "Page.c"
+}
+
+
+gboolean page_on_ctrl_pressed (Page* self, GdkEventKey* event) {
+#line 774 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 774 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_ctrl_pressed (self, event);
+#line 6094 "Page.c"
+}
+
+
+static gboolean page_real_on_ctrl_released (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 779 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 779 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6104 "Page.c"
+}
+
+
+gboolean page_on_ctrl_released (Page* self, GdkEventKey* event) {
+#line 778 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 778 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_ctrl_released (self, event);
+#line 6113 "Page.c"
+}
+
+
+static gboolean page_real_on_alt_pressed (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 783 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 783 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6123 "Page.c"
+}
+
+
+gboolean page_on_alt_pressed (Page* self, GdkEventKey* event) {
+#line 782 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 782 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_alt_pressed (self, event);
+#line 6132 "Page.c"
+}
+
+
+static gboolean page_real_on_alt_released (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 787 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 787 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6142 "Page.c"
+}
+
+
+gboolean page_on_alt_released (Page* self, GdkEventKey* event) {
+#line 786 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 786 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_alt_released (self, event);
+#line 6151 "Page.c"
+}
+
+
+static gboolean page_real_on_shift_pressed (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 791 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 791 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6161 "Page.c"
+}
+
+
+gboolean page_on_shift_pressed (Page* self, GdkEventKey* event) {
+#line 790 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 790 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_shift_pressed (self, event);
+#line 6170 "Page.c"
+}
+
+
+static gboolean page_real_on_shift_released (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 795 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 795 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6180 "Page.c"
+}
+
+
+gboolean page_on_shift_released (Page* self, GdkEventKey* event) {
+#line 794 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 794 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_shift_released (self, event);
+#line 6189 "Page.c"
+}
+
+
+static gboolean page_real_on_super_pressed (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 799 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 799 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6199 "Page.c"
+}
+
+
+gboolean page_on_super_pressed (Page* self, GdkEventKey* event) {
+#line 798 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 798 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_super_pressed (self, event);
+#line 6208 "Page.c"
+}
+
+
+static gboolean page_real_on_super_released (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 803 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 803 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6218 "Page.c"
+}
+
+
+gboolean page_on_super_released (Page* self, GdkEventKey* event) {
+#line 802 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 802 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_super_released (self, event);
+#line 6227 "Page.c"
+}
+
+
+static gboolean page_real_on_app_key_pressed (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 806 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 807 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 807 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6239 "Page.c"
+}
+
+
+gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event) {
+#line 806 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 806 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_app_key_pressed (self, event);
+#line 6248 "Page.c"
+}
+
+
+static gboolean page_real_on_app_key_released (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+#line 810 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 811 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 811 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6260 "Page.c"
+}
+
+
+gboolean page_on_app_key_released (Page* self, GdkEventKey* event) {
+#line 810 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 810 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_app_key_released (self, event);
+#line 6269 "Page.c"
+}
+
+
+gboolean page_notify_app_key_pressed (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+ gboolean ctrl_currently_pressed = FALSE;
+ gboolean alt_currently_pressed = FALSE;
+ gboolean shift_currently_pressed = FALSE;
+ gboolean super_currently_pressed = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GdkEventKey* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GQuark _tmp9_ = 0U;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label0 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label1 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label2 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label3 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label4 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label5 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label6 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label7 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label8 = 0;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label9 = 0;
+#line 6308 "Page.c"
+ GdkEventKey* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 814 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 814 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 817 "/home/jens/Source/shotwell/src/Page.vala"
+ page_get_modifiers (self, &_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
+#line 817 "/home/jens/Source/shotwell/src/Page.vala"
+ ctrl_currently_pressed = _tmp0_;
+#line 817 "/home/jens/Source/shotwell/src/Page.vala"
+ alt_currently_pressed = _tmp1_;
+#line 817 "/home/jens/Source/shotwell/src/Page.vala"
+ shift_currently_pressed = _tmp2_;
+#line 817 "/home/jens/Source/shotwell/src/Page.vala"
+ super_currently_pressed = _tmp3_;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = event;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_->keyval;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = gdk_keyval_name (_tmp5_);
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = (NULL == _tmp7_) ? 0 : g_quark_from_string (_tmp7_);
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ if ((_tmp9_ == ((0 != _tmp8_label0) ? _tmp8_label0 : (_tmp8_label0 = g_quark_from_static_string ("Control_L")))) || (_tmp9_ == ((0 != _tmp8_label1) ? _tmp8_label1 : (_tmp8_label1 = g_quark_from_static_string ("Control_R"))))) {
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6339 "Page.c"
+ default:
+ {
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ GdkEventKey* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = ctrl_currently_pressed;
+#line 823 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp11_) {
+#line 823 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = TRUE;
+#line 6352 "Page.c"
+ } else {
+ gboolean _tmp12_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->ctrl_pressed;
+#line 823 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp12_;
+#line 6359 "Page.c"
+ }
+#line 823 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp10_) {
+#line 824 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 824 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6367 "Page.c"
+ }
+#line 826 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->ctrl_pressed = TRUE;
+#line 828 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = event;
+#line 828 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = page_on_ctrl_pressed (self, _tmp13_);
+#line 828 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp14_;
+#line 828 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6379 "Page.c"
+ }
+ }
+ } else if ((((_tmp9_ == ((0 != _tmp8_label2) ? _tmp8_label2 : (_tmp8_label2 = g_quark_from_static_string ("Meta_L")))) || (_tmp9_ == ((0 != _tmp8_label3) ? _tmp8_label3 : (_tmp8_label3 = g_quark_from_static_string ("Meta_R"))))) || (_tmp9_ == ((0 != _tmp8_label4) ? _tmp8_label4 : (_tmp8_label4 = g_quark_from_static_string ("Alt_L"))))) || (_tmp9_ == ((0 != _tmp8_label5) ? _tmp8_label5 : (_tmp8_label5 = g_quark_from_static_string ("Alt_R"))))) {
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6385 "Page.c"
+ default:
+ {
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ GdkEventKey* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 834 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = alt_currently_pressed;
+#line 834 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp16_) {
+#line 834 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = TRUE;
+#line 6398 "Page.c"
+ } else {
+ gboolean _tmp17_ = FALSE;
+#line 834 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = self->priv->alt_pressed;
+#line 834 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _tmp17_;
+#line 6405 "Page.c"
+ }
+#line 834 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp15_) {
+#line 835 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 835 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6413 "Page.c"
+ }
+#line 837 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->alt_pressed = TRUE;
+#line 839 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = event;
+#line 839 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = page_on_alt_pressed (self, _tmp18_);
+#line 839 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp19_;
+#line 839 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6425 "Page.c"
+ }
+ }
+ } else if ((_tmp9_ == ((0 != _tmp8_label6) ? _tmp8_label6 : (_tmp8_label6 = g_quark_from_static_string ("Shift_L")))) || (_tmp9_ == ((0 != _tmp8_label7) ? _tmp8_label7 : (_tmp8_label7 = g_quark_from_static_string ("Shift_R"))))) {
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6431 "Page.c"
+ default:
+ {
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ GdkEventKey* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 843 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = shift_currently_pressed;
+#line 843 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp21_) {
+#line 843 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = TRUE;
+#line 6444 "Page.c"
+ } else {
+ gboolean _tmp22_ = FALSE;
+#line 843 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = self->priv->shift_pressed;
+#line 843 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp22_;
+#line 6451 "Page.c"
+ }
+#line 843 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp20_) {
+#line 844 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 844 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6459 "Page.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->shift_pressed = TRUE;
+#line 848 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = event;
+#line 848 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = page_on_shift_pressed (self, _tmp23_);
+#line 848 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp24_;
+#line 848 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6471 "Page.c"
+ }
+ }
+ } else if ((_tmp9_ == ((0 != _tmp8_label8) ? _tmp8_label8 : (_tmp8_label8 = g_quark_from_static_string ("Super_L")))) || (_tmp9_ == ((0 != _tmp8_label9) ? _tmp8_label9 : (_tmp8_label9 = g_quark_from_static_string ("Super_R"))))) {
+#line 820 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6477 "Page.c"
+ default:
+ {
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ GdkEventKey* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 852 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = super_currently_pressed;
+#line 852 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp26_) {
+#line 852 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = TRUE;
+#line 6490 "Page.c"
+ } else {
+ gboolean _tmp27_ = FALSE;
+#line 852 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = self->priv->super_pressed;
+#line 852 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = _tmp27_;
+#line 6497 "Page.c"
+ }
+#line 852 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp25_) {
+#line 853 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 853 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6505 "Page.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->super_pressed = TRUE;
+#line 857 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = event;
+#line 857 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = page_on_super_pressed (self, _tmp28_);
+#line 857 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp29_;
+#line 857 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6517 "Page.c"
+ }
+ }
+ }
+#line 860 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = event;
+#line 860 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = page_on_app_key_pressed (self, _tmp30_);
+#line 860 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp31_;
+#line 860 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6529 "Page.c"
+}
+
+
+gboolean page_notify_app_key_released (Page* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+ gboolean ctrl_currently_pressed = FALSE;
+ gboolean alt_currently_pressed = FALSE;
+ gboolean shift_currently_pressed = FALSE;
+ gboolean super_currently_pressed = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GdkEventKey* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GQuark _tmp9_ = 0U;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label0 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label1 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label2 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label3 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label4 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label5 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label6 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label7 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label8 = 0;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp8_label9 = 0;
+#line 6568 "Page.c"
+ GdkEventKey* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 863 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 863 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 866 "/home/jens/Source/shotwell/src/Page.vala"
+ page_get_modifiers (self, &_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
+#line 866 "/home/jens/Source/shotwell/src/Page.vala"
+ ctrl_currently_pressed = _tmp0_;
+#line 866 "/home/jens/Source/shotwell/src/Page.vala"
+ alt_currently_pressed = _tmp1_;
+#line 866 "/home/jens/Source/shotwell/src/Page.vala"
+ shift_currently_pressed = _tmp2_;
+#line 866 "/home/jens/Source/shotwell/src/Page.vala"
+ super_currently_pressed = _tmp3_;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = event;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_->keyval;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = gdk_keyval_name (_tmp5_);
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = (NULL == _tmp7_) ? 0 : g_quark_from_string (_tmp7_);
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ if ((_tmp9_ == ((0 != _tmp8_label0) ? _tmp8_label0 : (_tmp8_label0 = g_quark_from_static_string ("Control_L")))) || (_tmp9_ == ((0 != _tmp8_label1) ? _tmp8_label1 : (_tmp8_label1 = g_quark_from_static_string ("Control_R"))))) {
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6599 "Page.c"
+ default:
+ {
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ GdkEventKey* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 872 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = ctrl_currently_pressed;
+#line 872 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp11_) {
+#line 872 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = TRUE;
+#line 6612 "Page.c"
+ } else {
+ gboolean _tmp12_ = FALSE;
+#line 872 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->ctrl_pressed;
+#line 872 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = !_tmp12_;
+#line 6619 "Page.c"
+ }
+#line 872 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp10_) {
+#line 873 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 873 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6627 "Page.c"
+ }
+#line 875 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->ctrl_pressed = FALSE;
+#line 877 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = event;
+#line 877 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = page_on_ctrl_released (self, _tmp13_);
+#line 877 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp14_;
+#line 877 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6639 "Page.c"
+ }
+ }
+ } else if ((((_tmp9_ == ((0 != _tmp8_label2) ? _tmp8_label2 : (_tmp8_label2 = g_quark_from_static_string ("Meta_L")))) || (_tmp9_ == ((0 != _tmp8_label3) ? _tmp8_label3 : (_tmp8_label3 = g_quark_from_static_string ("Meta_R"))))) || (_tmp9_ == ((0 != _tmp8_label4) ? _tmp8_label4 : (_tmp8_label4 = g_quark_from_static_string ("Alt_L"))))) || (_tmp9_ == ((0 != _tmp8_label5) ? _tmp8_label5 : (_tmp8_label5 = g_quark_from_static_string ("Alt_R"))))) {
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6645 "Page.c"
+ default:
+ {
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ GdkEventKey* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 883 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = alt_currently_pressed;
+#line 883 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp16_) {
+#line 883 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = TRUE;
+#line 6658 "Page.c"
+ } else {
+ gboolean _tmp17_ = FALSE;
+#line 883 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = self->priv->alt_pressed;
+#line 883 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = !_tmp17_;
+#line 6665 "Page.c"
+ }
+#line 883 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp15_) {
+#line 884 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 884 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6673 "Page.c"
+ }
+#line 886 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->alt_pressed = FALSE;
+#line 888 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = event;
+#line 888 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = page_on_alt_released (self, _tmp18_);
+#line 888 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp19_;
+#line 888 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6685 "Page.c"
+ }
+ }
+ } else if ((_tmp9_ == ((0 != _tmp8_label6) ? _tmp8_label6 : (_tmp8_label6 = g_quark_from_static_string ("Shift_L")))) || (_tmp9_ == ((0 != _tmp8_label7) ? _tmp8_label7 : (_tmp8_label7 = g_quark_from_static_string ("Shift_R"))))) {
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6691 "Page.c"
+ default:
+ {
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ GdkEventKey* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 892 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = shift_currently_pressed;
+#line 892 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_) {
+#line 892 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = TRUE;
+#line 6704 "Page.c"
+ } else {
+ gboolean _tmp22_ = FALSE;
+#line 892 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = self->priv->shift_pressed;
+#line 892 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = !_tmp22_;
+#line 6711 "Page.c"
+ }
+#line 892 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp20_) {
+#line 893 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 893 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6719 "Page.c"
+ }
+#line 895 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->shift_pressed = FALSE;
+#line 897 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = event;
+#line 897 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = page_on_shift_released (self, _tmp23_);
+#line 897 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp24_;
+#line 897 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6731 "Page.c"
+ }
+ }
+ } else if ((_tmp9_ == ((0 != _tmp8_label8) ? _tmp8_label8 : (_tmp8_label8 = g_quark_from_static_string ("Super_L")))) || (_tmp9_ == ((0 != _tmp8_label9) ? _tmp8_label9 : (_tmp8_label9 = g_quark_from_static_string ("Super_R"))))) {
+#line 869 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 6737 "Page.c"
+ default:
+ {
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ GdkEventKey* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 901 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = super_currently_pressed;
+#line 901 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp26_) {
+#line 901 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = TRUE;
+#line 6750 "Page.c"
+ } else {
+ gboolean _tmp27_ = FALSE;
+#line 901 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = self->priv->super_pressed;
+#line 901 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = !_tmp27_;
+#line 6757 "Page.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp25_) {
+#line 902 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 902 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6765 "Page.c"
+ }
+#line 904 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->super_pressed = FALSE;
+#line 906 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = event;
+#line 906 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = page_on_super_released (self, _tmp28_);
+#line 906 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp29_;
+#line 906 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6777 "Page.c"
+ }
+ }
+ }
+#line 909 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = event;
+#line 909 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = page_on_app_key_released (self, _tmp30_);
+#line 909 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp31_;
+#line 909 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6789 "Page.c"
+}
+
+
+gboolean page_notify_app_focus_in (Page* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+#line 912 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 912 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 913 "/home/jens/Source/shotwell/src/Page.vala"
+ page_update_modifiers (self);
+#line 915 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 915 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6805 "Page.c"
+}
+
+
+gboolean page_notify_app_focus_out (Page* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+#line 918 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 918 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 919 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 919 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6819 "Page.c"
+}
+
+
+static void page_real_on_move (Page* self, GdkRectangle* rect) {
+#line 922 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 6826 "Page.c"
+}
+
+
+void page_on_move (Page* self, GdkRectangle* rect) {
+#line 922 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 922 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->on_move (self, rect);
+#line 6835 "Page.c"
+}
+
+
+static void page_real_on_move_start (Page* self, GdkRectangle* rect) {
+#line 925 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 6842 "Page.c"
+}
+
+
+void page_on_move_start (Page* self, GdkRectangle* rect) {
+#line 925 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 925 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->on_move_start (self, rect);
+#line 6851 "Page.c"
+}
+
+
+static void page_real_on_move_finished (Page* self, GdkRectangle* rect) {
+#line 928 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 6858 "Page.c"
+}
+
+
+void page_on_move_finished (Page* self, GdkRectangle* rect) {
+#line 928 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 928 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->on_move_finished (self, rect);
+#line 6867 "Page.c"
+}
+
+
+static void page_real_on_resize (Page* self, GdkRectangle* rect) {
+#line 931 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 6874 "Page.c"
+}
+
+
+void page_on_resize (Page* self, GdkRectangle* rect) {
+#line 931 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 931 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->on_resize (self, rect);
+#line 6883 "Page.c"
+}
+
+
+static void page_real_on_resize_start (Page* self, GdkRectangle* rect) {
+#line 934 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 6890 "Page.c"
+}
+
+
+void page_on_resize_start (Page* self, GdkRectangle* rect) {
+#line 934 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 934 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->on_resize_start (self, rect);
+#line 6899 "Page.c"
+}
+
+
+static void page_real_on_resize_finished (Page* self, GdkRectangle* rect) {
+#line 937 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 6906 "Page.c"
+}
+
+
+void page_on_resize_finished (Page* self, GdkRectangle* rect) {
+#line 937 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 937 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->on_resize_finished (self, rect);
+#line 6915 "Page.c"
+}
+
+
+static gboolean page_real_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect) {
+ gboolean result = FALSE;
+#line 940 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 940 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (rect != NULL, FALSE);
+#line 941 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 941 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6929 "Page.c"
+}
+
+
+gboolean page_on_configure (Page* self, GdkEventConfigure* event, GdkRectangle* rect) {
+#line 940 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 940 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_configure (self, event, rect);
+#line 6938 "Page.c"
+}
+
+
+static gboolean _page_check_configure_halted_gsource_func (gpointer self) {
+ gboolean result;
+ result = page_check_configure_halted ((Page*) self);
+#line 965 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 6947 "Page.c"
+}
+
+
+gboolean page_notify_configure_event (Page* self, GdkEventConfigure* event) {
+ gboolean result = FALSE;
+ GdkRectangle rect = {0};
+ GdkEventConfigure* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GdkEventConfigure* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ GdkEventConfigure* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ GdkEventConfigure* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gulong _tmp8_ = 0UL;
+ gboolean _tmp29_ = FALSE;
+ GdkRectangle _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ GdkRectangle _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ gboolean _tmp39_ = FALSE;
+ GdkRectangle _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ GdkRectangle _tmp42_ = {0};
+ gint _tmp43_ = 0;
+ GdkRectangle _tmp49_ = {0};
+ gulong _tmp50_ = 0UL;
+ GdkEventConfigure* _tmp51_ = NULL;
+ GdkRectangle _tmp52_ = {0};
+ gboolean _tmp53_ = FALSE;
+#line 944 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 944 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 945 "/home/jens/Source/shotwell/src/Page.vala"
+ memset (&rect, 0, sizeof (GdkRectangle));
+#line 946 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 946 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->x;
+#line 946 "/home/jens/Source/shotwell/src/Page.vala"
+ rect.x = _tmp1_;
+#line 947 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = event;
+#line 947 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_->y;
+#line 947 "/home/jens/Source/shotwell/src/Page.vala"
+ rect.y = _tmp3_;
+#line 948 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = event;
+#line 948 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_->width;
+#line 948 "/home/jens/Source/shotwell/src/Page.vala"
+ rect.width = _tmp5_;
+#line 949 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = event;
+#line 949 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_->height;
+#line 949 "/home/jens/Source/shotwell/src/Page.vala"
+ rect.height = _tmp7_;
+#line 952 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->last_configure_ms;
+#line 952 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8_ == ((gulong) 0)) {
+#line 7012 "Page.c"
+ gboolean _tmp9_ = FALSE;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gboolean _tmp19_ = FALSE;
+ GdkRectangle _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkRectangle _tmp22_ = {0};
+ gint _tmp23_ = 0;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->priv->last_position;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_.x;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = rect;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_.x;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp11_ != _tmp13_) {
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = TRUE;
+#line 7035 "Page.c"
+ } else {
+ GdkRectangle _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ GdkRectangle _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = self->priv->last_position;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _tmp14_.y;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = rect;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = _tmp16_.y;
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp15_ != _tmp17_;
+#line 7051 "Page.c"
+ }
+#line 953 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp9_) {
+#line 7055 "Page.c"
+ GdkRectangle _tmp18_ = {0};
+#line 954 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = rect;
+#line 954 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_move_start (self, &_tmp18_);
+#line 955 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->report_move_finished = TRUE;
+#line 7063 "Page.c"
+ }
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = self->priv->last_position;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = _tmp20_.width;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = rect;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = _tmp22_.width;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_ != _tmp23_) {
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = TRUE;
+#line 7077 "Page.c"
+ } else {
+ GdkRectangle _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ GdkRectangle _tmp26_ = {0};
+ gint _tmp27_ = 0;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = self->priv->last_position;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = _tmp24_.height;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = rect;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = _tmp26_.height;
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = _tmp25_ != _tmp27_;
+#line 7093 "Page.c"
+ }
+#line 958 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp19_) {
+#line 7097 "Page.c"
+ GdkRectangle _tmp28_ = {0};
+#line 959 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = rect;
+#line 959 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_resize_start (self, &_tmp28_);
+#line 960 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->report_resize_finished = TRUE;
+#line 7105 "Page.c"
+ }
+#line 965 "/home/jens/Source/shotwell/src/Page.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) (PAGE_CONSIDER_CONFIGURE_HALTED_MSEC / 8), _page_check_configure_halted_gsource_func, g_object_ref (self), g_object_unref);
+#line 7109 "Page.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = self->priv->last_position;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = _tmp30_.x;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = rect;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = _tmp32_.x;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp31_ != _tmp33_) {
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = TRUE;
+#line 7123 "Page.c"
+ } else {
+ GdkRectangle _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ GdkRectangle _tmp36_ = {0};
+ gint _tmp37_ = 0;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = self->priv->last_position;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = _tmp34_.y;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = rect;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = _tmp36_.y;
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp35_ != _tmp37_;
+#line 7139 "Page.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp29_) {
+#line 7143 "Page.c"
+ GdkRectangle _tmp38_ = {0};
+#line 969 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = rect;
+#line 969 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_move (self, &_tmp38_);
+#line 7149 "Page.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = self->priv->last_position;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = _tmp40_.width;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = rect;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = _tmp42_.width;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp41_ != _tmp43_) {
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = TRUE;
+#line 7163 "Page.c"
+ } else {
+ GdkRectangle _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ GdkRectangle _tmp46_ = {0};
+ gint _tmp47_ = 0;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = self->priv->last_position;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = _tmp44_.height;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = rect;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = _tmp46_.height;
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = _tmp45_ != _tmp47_;
+#line 7179 "Page.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp39_) {
+#line 7183 "Page.c"
+ GdkRectangle _tmp48_ = {0};
+#line 972 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = rect;
+#line 972 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_resize (self, &_tmp48_);
+#line 7189 "Page.c"
+ }
+#line 974 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = rect;
+#line 974 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_position = _tmp49_;
+#line 975 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp50_ = now_ms ();
+#line 975 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_configure_ms = _tmp50_;
+#line 977 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp51_ = event;
+#line 977 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp52_ = rect;
+#line 977 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp53_ = page_on_configure (self, _tmp51_, &_tmp52_);
+#line 977 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp53_;
+#line 977 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7209 "Page.c"
+}
+
+
+static gboolean page_check_configure_halted (Page* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gulong _tmp1_ = 0UL;
+ gulong _tmp2_ = 0UL;
+ GtkAllocation allocation = {0};
+ GtkAllocation _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 980 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 981 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->is_destroyed;
+#line 981 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 982 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 982 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7232 "Page.c"
+ }
+#line 984 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = now_ms ();
+#line 984 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->last_configure_ms;
+#line 984 "/home/jens/Source/shotwell/src/Page.vala"
+ if ((_tmp1_ - _tmp2_) < ((gulong) PAGE_CONSIDER_CONFIGURE_HALTED_MSEC)) {
+#line 985 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 985 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7244 "Page.c"
+ }
+#line 988 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp3_);
+#line 988 "/home/jens/Source/shotwell/src/Page.vala"
+ allocation = _tmp3_;
+#line 990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->report_move_finished;
+#line 990 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_) {
+#line 7254 "Page.c"
+ GtkAllocation _tmp5_ = {0};
+ GdkRectangle _tmp6_ = {0};
+#line 991 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = allocation;
+#line 991 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = (GdkRectangle) _tmp5_;
+#line 991 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_move_finished (self, &_tmp6_);
+#line 7263 "Page.c"
+ }
+#line 993 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->report_resize_finished;
+#line 993 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp7_) {
+#line 7269 "Page.c"
+ GtkAllocation _tmp8_ = {0};
+ GdkRectangle _tmp9_ = {0};
+#line 994 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = allocation;
+#line 994 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = (GdkRectangle) _tmp8_;
+#line 994 "/home/jens/Source/shotwell/src/Page.vala"
+ page_on_resize_finished (self, &_tmp9_);
+#line 7278 "Page.c"
+ }
+#line 996 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_configure_ms = (gulong) 0;
+#line 997 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->report_move_finished = FALSE;
+#line 998 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->report_resize_finished = FALSE;
+#line 1000 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1000 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7290 "Page.c"
+}
+
+
+static gboolean page_real_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask) {
+ gboolean result = FALSE;
+#line 1003 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1004 "/home/jens/Source/shotwell/src/Page.vala"
+ page_check_cursor_hiding (self);
+#line 1006 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1006 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7304 "Page.c"
+}
+
+
+gboolean page_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask) {
+#line 1003 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1003 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_motion (self, event, x, y, mask);
+#line 7313 "Page.c"
+}
+
+
+static gboolean page_real_on_leave_notify_event (Page* self) {
+ gboolean result = FALSE;
+#line 1010 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1010 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7323 "Page.c"
+}
+
+
+gboolean page_on_leave_notify_event (Page* self) {
+#line 1009 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1009 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_leave_notify_event (self);
+#line 7332 "Page.c"
+}
+
+
+static gboolean page_on_motion_internal (Page* self, GdkEventMotion* event) {
+ gboolean result = FALSE;
+ gint x = 0;
+ gint y = 0;
+ GdkModifierType mask = 0;
+ GdkEventMotion* _tmp0_ = NULL;
+ gint16 _tmp1_ = 0;
+ GdkEventMotion* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GdkModifierType _tmp14_ = 0;
+ gboolean _tmp15_ = FALSE;
+#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1013 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1016 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 1016 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->is_hint;
+#line 1016 "/home/jens/Source/shotwell/src/Page.vala"
+ if (((gint) _tmp1_) == 1) {
+#line 7358 "Page.c"
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GdkModifierType _tmp4_ = 0;
+#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
+ page_get_event_source_pointer (self, &_tmp2_, &_tmp3_, &_tmp4_);
+#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
+ x = _tmp2_;
+#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
+ y = _tmp3_;
+#line 1017 "/home/jens/Source/shotwell/src/Page.vala"
+ mask = _tmp4_;
+#line 7370 "Page.c"
+ } else {
+ GdkEventMotion* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ GdkEventMotion* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GdkEventMotion* _tmp9_ = NULL;
+ GdkModifierType _tmp10_ = 0;
+#line 1019 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = event;
+#line 1019 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_->x;
+#line 1019 "/home/jens/Source/shotwell/src/Page.vala"
+ x = (gint) _tmp6_;
+#line 1020 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = event;
+#line 1020 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_->y;
+#line 1020 "/home/jens/Source/shotwell/src/Page.vala"
+ y = (gint) _tmp8_;
+#line 1021 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = event;
+#line 1021 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_->state;
+#line 1021 "/home/jens/Source/shotwell/src/Page.vala"
+ mask = _tmp10_;
+#line 7396 "Page.c"
+ }
+#line 1024 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = event;
+#line 1024 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = x;
+#line 1024 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = y;
+#line 1024 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = mask;
+#line 1024 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = page_on_motion (self, _tmp11_, _tmp12_, _tmp13_, _tmp14_);
+#line 1024 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp15_;
+#line 1024 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7412 "Page.c"
+}
+
+
+static gboolean page_on_mousewheel_internal (Page* self, GdkEventScroll* event) {
+ gboolean result = FALSE;
+ GdkEventScroll* _tmp0_ = NULL;
+ GdkScrollDirection _tmp1_ = 0;
+#line 1027 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1027 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->direction;
+#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (_tmp1_) {
+#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_SCROLL_UP:
+#line 7432 "Page.c"
+ {
+ GdkEventScroll* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1030 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = event;
+#line 1030 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = page_on_mousewheel_up (self, _tmp2_);
+#line 1030 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp3_;
+#line 1030 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7444 "Page.c"
+ }
+#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_SCROLL_DOWN:
+#line 7448 "Page.c"
+ {
+ GdkEventScroll* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = event;
+#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_on_mousewheel_down (self, _tmp4_);
+#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp5_;
+#line 1033 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7460 "Page.c"
+ }
+#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_SCROLL_LEFT:
+#line 7464 "Page.c"
+ {
+ GdkEventScroll* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = event;
+#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_on_mousewheel_left (self, _tmp6_);
+#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp7_;
+#line 1036 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7476 "Page.c"
+ }
+#line 1028 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_SCROLL_RIGHT:
+#line 7480 "Page.c"
+ {
+ GdkEventScroll* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 1039 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = event;
+#line 1039 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = page_on_mousewheel_right (self, _tmp8_);
+#line 1039 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp9_;
+#line 1039 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7492 "Page.c"
+ }
+ default:
+ {
+#line 1042 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1042 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7500 "Page.c"
+ }
+ }
+}
+
+
+static gboolean page_real_on_mousewheel_up (Page* self, GdkEventScroll* event) {
+ gboolean result = FALSE;
+#line 1046 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1047 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1047 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7514 "Page.c"
+}
+
+
+gboolean page_on_mousewheel_up (Page* self, GdkEventScroll* event) {
+#line 1046 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1046 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_mousewheel_up (self, event);
+#line 7523 "Page.c"
+}
+
+
+static gboolean page_real_on_mousewheel_down (Page* self, GdkEventScroll* event) {
+ gboolean result = FALSE;
+#line 1050 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1051 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1051 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7535 "Page.c"
+}
+
+
+gboolean page_on_mousewheel_down (Page* self, GdkEventScroll* event) {
+#line 1050 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1050 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_mousewheel_down (self, event);
+#line 7544 "Page.c"
+}
+
+
+static gboolean page_real_on_mousewheel_left (Page* self, GdkEventScroll* event) {
+ gboolean result = FALSE;
+#line 1054 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1055 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1055 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7556 "Page.c"
+}
+
+
+gboolean page_on_mousewheel_left (Page* self, GdkEventScroll* event) {
+#line 1054 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1054 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_mousewheel_left (self, event);
+#line 7565 "Page.c"
+}
+
+
+static gboolean page_real_on_mousewheel_right (Page* self, GdkEventScroll* event) {
+ gboolean result = FALSE;
+#line 1058 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1059 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1059 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7577 "Page.c"
+}
+
+
+gboolean page_on_mousewheel_right (Page* self, GdkEventScroll* event) {
+#line 1058 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1058 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_mousewheel_right (self, event);
+#line 7586 "Page.c"
+}
+
+
+static gboolean page_real_on_context_keypress (Page* self) {
+ gboolean result = FALSE;
+#line 1063 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1063 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7596 "Page.c"
+}
+
+
+gboolean page_on_context_keypress (Page* self) {
+#line 1062 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1062 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_context_keypress (self);
+#line 7605 "Page.c"
+}
+
+
+static gboolean page_real_on_context_buttonpress (Page* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 1066 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1067 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1067 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7617 "Page.c"
+}
+
+
+gboolean page_on_context_buttonpress (Page* self, GdkEventButton* event) {
+#line 1066 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1066 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_context_buttonpress (self, event);
+#line 7626 "Page.c"
+}
+
+
+static gboolean page_real_on_context_invoked (Page* self) {
+ gboolean result = FALSE;
+#line 1071 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1071 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7636 "Page.c"
+}
+
+
+gboolean page_on_context_invoked (Page* self) {
+#line 1070 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1070 "/home/jens/Source/shotwell/src/Page.vala"
+ return PAGE_GET_CLASS (self)->on_context_invoked (self);
+#line 7645 "Page.c"
+}
+
+
+gboolean page_popup_context_menu (Page* self, GtkMenu* context_menu, GdkEventButton* event) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GtkMenu* _tmp1_ = NULL;
+ GdkEventButton* _tmp3_ = NULL;
+#line 1074 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1074 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail ((context_menu == NULL) || GTK_IS_MENU (context_menu), FALSE);
+#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = context_menu;
+#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_ == NULL) {
+#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = TRUE;
+#line 7664 "Page.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_on_context_invoked (self);
+#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = !_tmp2_;
+#line 7671 "Page.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 1078 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1078 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7679 "Page.c"
+ }
+#line 1080 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = event;
+#line 1080 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_ == NULL) {
+#line 7685 "Page.c"
+ GtkMenu* _tmp4_ = NULL;
+ guint32 _tmp5_ = 0U;
+#line 1081 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = context_menu;
+#line 1081 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gtk_get_current_event_time ();
+#line 1081 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_menu_popup (_tmp4_, NULL, NULL, NULL, NULL, (guint) 0, _tmp5_);
+#line 7694 "Page.c"
+ } else {
+ GtkMenu* _tmp6_ = NULL;
+ GdkEventButton* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ GdkEventButton* _tmp9_ = NULL;
+ guint32 _tmp10_ = 0U;
+#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = context_menu;
+#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = event;
+#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_->button;
+#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = event;
+#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_->time;
+#line 1083 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_menu_popup (_tmp6_, NULL, NULL, NULL, NULL, _tmp8_, _tmp10_);
+#line 7713 "Page.c"
+ }
+#line 1085 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1085 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 7719 "Page.c"
+}
+
+
+void page_on_event_source_realize (Page* self) {
+ GtkWidget* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GdkWindow* _tmp3_ = NULL;
+ GdkCursor* _tmp4_ = NULL;
+ GdkWindow* parent_window = NULL;
+ GtkWidget* _tmp9_ = NULL;
+ GdkWindow* _tmp10_ = NULL;
+ GdkWindow* _tmp11_ = NULL;
+ GdkWindow* _tmp20_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->event_source;
+#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = gtk_widget_get_window (_tmp0_);
+#line 1089 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp1_ != NULL, "event_source.get_window() != null");
+#line 1091 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->event_source;
+#line 1091 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gtk_widget_get_window (_tmp2_);
+#line 1091 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = gdk_window_get_cursor (_tmp3_);
+#line 1091 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_ != NULL) {
+#line 7750 "Page.c"
+ GtkWidget* _tmp5_ = NULL;
+ GdkWindow* _tmp6_ = NULL;
+ GdkCursor* _tmp7_ = NULL;
+ GdkCursorType _tmp8_ = 0;
+#line 1092 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->event_source;
+#line 1092 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = gtk_widget_get_window (_tmp5_);
+#line 1092 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = gdk_window_get_cursor (_tmp6_);
+#line 1092 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = gdk_cursor_get_cursor_type (_tmp7_);
+#line 1092 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_cursor = _tmp8_;
+#line 1093 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 7767 "Page.c"
+ }
+#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->event_source;
+#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = gtk_widget_get_window (_tmp9_);
+#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 1097 "/home/jens/Source/shotwell/src/Page.vala"
+ parent_window = _tmp11_;
+#line 7777 "Page.c"
+ {
+ gboolean _tmp12_ = FALSE;
+#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = TRUE;
+#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 7784 "Page.c"
+ GdkWindow* _tmp17_ = NULL;
+ GdkWindow* _tmp18_ = NULL;
+ GdkWindow* _tmp19_ = NULL;
+#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp12_) {
+#line 7790 "Page.c"
+ gboolean _tmp13_ = FALSE;
+ GdkWindow* _tmp14_ = NULL;
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = parent_window;
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp14_ != NULL) {
+#line 7797 "Page.c"
+ GdkWindow* _tmp15_ = NULL;
+ GdkCursor* _tmp16_ = NULL;
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = parent_window;
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = gdk_window_get_cursor (_tmp15_);
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp16_ == NULL;
+#line 7806 "Page.c"
+ } else {
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = FALSE;
+#line 7810 "Page.c"
+ }
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp13_) {
+#line 1100 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 7816 "Page.c"
+ }
+ }
+#line 1098 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = FALSE;
+#line 1099 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = parent_window;
+#line 1099 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = gdk_window_get_parent (_tmp17_);
+#line 1099 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = _g_object_ref0 (_tmp18_);
+#line 1099 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (parent_window);
+#line 1099 "/home/jens/Source/shotwell/src/Page.vala"
+ parent_window = _tmp19_;
+#line 7831 "Page.c"
+ }
+ }
+#line 1102 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = parent_window;
+#line 1102 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp20_ != NULL) {
+#line 7838 "Page.c"
+ GdkWindow* _tmp21_ = NULL;
+ GdkCursor* _tmp22_ = NULL;
+ GdkCursorType _tmp23_ = 0;
+#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = parent_window;
+#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = gdk_window_get_cursor (_tmp21_);
+#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = gdk_cursor_get_cursor_type (_tmp22_);
+#line 1103 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_cursor = _tmp23_;
+#line 7850 "Page.c"
+ }
+#line 1088 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (parent_window);
+#line 7854 "Page.c"
+}
+
+
+void page_set_cursor_hide_time (Page* self, gint hide_time) {
+ gint _tmp0_ = 0;
+#line 1106 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1107 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = hide_time;
+#line 1107 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hide_msec = _tmp0_;
+#line 7866 "Page.c"
+}
+
+
+void page_start_cursor_hiding (Page* self) {
+#line 1110 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1111 "/home/jens/Source/shotwell/src/Page.vala"
+ page_check_cursor_hiding (self);
+#line 7875 "Page.c"
+}
+
+
+void page_stop_cursor_hiding (Page* self) {
+ guint _tmp0_ = 0U;
+#line 1114 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1115 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->last_timeout_id;
+#line 1115 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != ((guint) 0)) {
+#line 7887 "Page.c"
+ guint _tmp1_ = 0U;
+#line 1116 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->last_timeout_id;
+#line 1116 "/home/jens/Source/shotwell/src/Page.vala"
+ g_source_remove (_tmp1_);
+#line 7893 "Page.c"
+ }
+}
+
+
+void page_suspend_cursor_hiding (Page* self) {
+ gint _tmp0_ = 0;
+ guint _tmp1_ = 0U;
+#line 1119 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1120 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->cursor_hide_msec;
+#line 1120 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hide_time_cached = _tmp0_;
+#line 1122 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->last_timeout_id;
+#line 1122 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_ != ((guint) 0)) {
+#line 7911 "Page.c"
+ guint _tmp2_ = 0U;
+#line 1123 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->last_timeout_id;
+#line 1123 "/home/jens/Source/shotwell/src/Page.vala"
+ g_source_remove (_tmp2_);
+#line 7917 "Page.c"
+ }
+#line 1125 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hide_msec = 0;
+#line 7921 "Page.c"
+}
+
+
+void page_restore_cursor_hiding (Page* self) {
+ gint _tmp0_ = 0;
+#line 1128 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1129 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->cursor_hide_time_cached;
+#line 1129 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hide_msec = _tmp0_;
+#line 1130 "/home/jens/Source/shotwell/src/Page.vala"
+ page_check_cursor_hiding (self);
+#line 7935 "Page.c"
+}
+
+
+static void page_real_set_page_cursor (Page* self, GdkCursorType cursor_type) {
+ GdkCursorType _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1135 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = cursor_type;
+#line 1135 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_cursor = _tmp0_;
+#line 1137 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->cursor_hidden;
+#line 1137 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp2_) {
+#line 7951 "Page.c"
+ GtkWidget* _tmp3_ = NULL;
+#line 1137 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->event_source;
+#line 1137 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 7957 "Page.c"
+ } else {
+#line 1137 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = FALSE;
+#line 7961 "Page.c"
+ }
+#line 1137 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_) {
+#line 7965 "Page.c"
+ GtkWidget* _tmp4_ = NULL;
+ GdkWindow* _tmp5_ = NULL;
+ GdkCursorType _tmp6_ = 0;
+ GdkCursor* _tmp7_ = NULL;
+ GdkCursor* _tmp8_ = NULL;
+#line 1138 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->event_source;
+#line 1138 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gtk_widget_get_window (_tmp4_);
+#line 1138 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = cursor_type;
+#line 1138 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = gdk_cursor_new (_tmp6_);
+#line 1138 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 1138 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_window_set_cursor (_tmp5_, _tmp8_);
+#line 1138 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp8_);
+#line 7985 "Page.c"
+ }
+}
+
+
+void page_set_page_cursor (Page* self, GdkCursorType cursor_type) {
+#line 1134 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1134 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_GET_CLASS (self)->set_page_cursor (self, cursor_type);
+#line 7995 "Page.c"
+}
+
+
+static gboolean _page_on_hide_cursor_gsource_func (gpointer self) {
+ gboolean result;
+ result = page_on_hide_cursor ((Page*) self);
+#line 1150 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8004 "Page.c"
+}
+
+
+static void page_check_cursor_hiding (Page* self) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp2_ = 0;
+#line 1141 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (self));
+#line 1142 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->cursor_hidden;
+#line 1142 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 8017 "Page.c"
+ GdkCursorType _tmp1_ = 0;
+#line 1143 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hidden = FALSE;
+#line 1144 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->last_cursor;
+#line 1144 "/home/jens/Source/shotwell/src/Page.vala"
+ page_set_page_cursor (self, _tmp1_);
+#line 8025 "Page.c"
+ }
+#line 1147 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->cursor_hide_msec;
+#line 1147 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != 0) {
+#line 8031 "Page.c"
+ guint _tmp3_ = 0U;
+ gint _tmp5_ = 0;
+ guint _tmp6_ = 0U;
+#line 1148 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->last_timeout_id;
+#line 1148 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_ != ((guint) 0)) {
+#line 8039 "Page.c"
+ guint _tmp4_ = 0U;
+#line 1149 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->last_timeout_id;
+#line 1149 "/home/jens/Source/shotwell/src/Page.vala"
+ g_source_remove (_tmp4_);
+#line 8045 "Page.c"
+ }
+#line 1150 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->cursor_hide_msec;
+#line 1150 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) _tmp5_, _page_on_hide_cursor_gsource_func, g_object_ref (self), g_object_unref);
+#line 1150 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_timeout_id = _tmp6_;
+#line 8053 "Page.c"
+ }
+}
+
+
+static gboolean page_on_hide_cursor (Page* self) {
+ gboolean result = FALSE;
+ GtkWidget* _tmp0_ = NULL;
+#line 1154 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (self), FALSE);
+#line 1155 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hidden = TRUE;
+#line 1157 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->event_source;
+#line 1157 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != NULL) {
+#line 8069 "Page.c"
+ GtkWidget* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ GdkCursor* _tmp3_ = NULL;
+ GdkCursor* _tmp4_ = NULL;
+#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->event_source;
+#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = gtk_widget_get_window (_tmp1_);
+#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gdk_cursor_new (GDK_BLANK_CURSOR);
+#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_window_set_cursor (_tmp2_, _tmp4_);
+#line 1158 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp4_);
+#line 8086 "Page.c"
+ }
+#line 1161 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_timeout_id = (guint) 0;
+#line 1163 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1163 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8094 "Page.c"
+}
+
+
+static void page_class_init (PageClass * klass) {
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ page_parent_class = g_type_class_peek_parent (klass);
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_class_add_private (klass, sizeof (PagePrivate));
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((GtkWidgetClass *) klass)->destroy = page_real_destroy;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->set_page_name = page_real_set_page_name;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->set_container = page_real_set_container;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->clear_container = page_real_clear_container;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->get_menubar = page_real_get_menubar;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->get_page_ui_widget = page_real_get_page_ui_widget;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->get_toolbar = page_real_get_toolbar;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->get_page_context_menu = page_real_get_page_context_menu;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->switching_from = page_real_switching_from;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->switched_to = page_real_switched_to;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->ready = page_real_ready;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->switching_to_fullscreen = page_real_switching_to_fullscreen;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->returning_from_fullscreen = page_real_returning_from_fullscreen;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = page_real_init_collect_ui_filenames;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->init_collect_action_entries = page_real_init_collect_action_entries;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->init_collect_toggle_action_entries = page_real_init_collect_toggle_action_entries;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->register_radio_actions = page_real_register_radio_actions;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->init_collect_injection_groups = page_real_init_collect_injection_groups;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->init_actions = page_real_init_actions;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->update_actions = page_real_update_actions;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->source_drag_failed = page_real_source_drag_failed;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_left_click = page_real_on_left_click;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_middle_click = page_real_on_middle_click;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_right_click = page_real_on_right_click;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_left_released = page_real_on_left_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_middle_released = page_real_on_middle_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_right_released = page_real_on_right_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_ctrl_pressed = page_real_on_ctrl_pressed;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_ctrl_released = page_real_on_ctrl_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_alt_pressed = page_real_on_alt_pressed;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_alt_released = page_real_on_alt_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_shift_pressed = page_real_on_shift_pressed;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_shift_released = page_real_on_shift_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_super_pressed = page_real_on_super_pressed;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_super_released = page_real_on_super_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_app_key_pressed = page_real_on_app_key_pressed;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_app_key_released = page_real_on_app_key_released;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_move = page_real_on_move;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_move_start = page_real_on_move_start;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_move_finished = page_real_on_move_finished;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_resize = page_real_on_resize;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_resize_start = page_real_on_resize_start;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_resize_finished = page_real_on_resize_finished;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_configure = page_real_on_configure;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_motion = page_real_on_motion;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_leave_notify_event = page_real_on_leave_notify_event;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_mousewheel_up = page_real_on_mousewheel_up;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_mousewheel_down = page_real_on_mousewheel_down;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_mousewheel_left = page_real_on_mousewheel_left;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_mousewheel_right = page_real_on_mousewheel_right;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_context_keypress = page_real_on_context_keypress;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_context_buttonpress = page_real_on_context_buttonpress;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_context_invoked = page_real_on_context_invoked;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->set_page_cursor = page_real_set_page_cursor;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ G_OBJECT_CLASS (klass)->finalize = page_finalize;
+#line 8213 "Page.c"
+}
+
+
+static void page_instance_init (Page * self) {
+ guint* _tmp0_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv = PAGE_GET_PRIVATE (self);
+#line 54 "/home/jens/Source/shotwell/src/Page.vala"
+ self->in_view = FALSE;
+#line 57 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->view = NULL;
+#line 58 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->container = NULL;
+#line 60 "/home/jens/Source/shotwell/src/Page.vala"
+ memset (&self->priv->last_position, 0, sizeof (GdkRectangle));
+#line 61 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->event_source = NULL;
+#line 62 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->dnd_enabled = FALSE;
+#line 63 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_configure_ms = (gulong) 0;
+#line 64 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->report_move_finished = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->report_resize_finished = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/Page.vala"
+ memset (&self->priv->last_down, 0, sizeof (GdkPoint));
+#line 67 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->is_destroyed = FALSE;
+#line 68 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->ctrl_pressed = FALSE;
+#line 69 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->alt_pressed = FALSE;
+#line 70 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->shift_pressed = FALSE;
+#line 71 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->super_pressed = FALSE;
+#line 72 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_cursor = GDK_LEFT_PTR;
+#line 73 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hidden = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hide_msec = 0;
+#line 75 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_timeout_id = (guint) 0;
+#line 76 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->cursor_hide_time_cached = 0;
+#line 77 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->are_actions_attached = FALSE;
+#line 78 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->update_actions_scheduler = NULL;
+#line 79 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->action_group = NULL;
+#line 80 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->common_action_groups = NULL;
+#line 80 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->common_action_groups_length1 = 0;
+#line 80 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->_common_action_groups_size_ = self->priv->common_action_groups_length1;
+#line 82 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = g_new0 (guint, 0);
+#line 82 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->merge_ids = _tmp0_;
+#line 82 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->merge_ids_length1 = 0;
+#line 82 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->_merge_ids_size_ = self->priv->merge_ids_length1;
+#line 8281 "Page.c"
+}
+
+
+static void page_finalize (GObject* obj) {
+ Page * self;
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PAGE, Page);
+#line 52 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->ui);
+#line 53 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->toolbar);
+#line 56 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->page_name);
+#line 57 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 58 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->container);
+#line 59 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->toolbar_path);
+#line 61 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->event_source);
+#line 78 "/home/jens/Source/shotwell/src/Page.vala"
+ _one_shot_scheduler_unref0 (self->priv->update_actions_scheduler);
+#line 79 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->action_group);
+#line 80 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->common_action_groups = (_vala_array_free (self->priv->common_action_groups, self->priv->common_action_groups_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 82 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->merge_ids = (g_free (self->priv->merge_ids), NULL);
+#line 49 "/home/jens/Source/shotwell/src/Page.vala"
+ G_OBJECT_CLASS (page_parent_class)->finalize (obj);
+#line 8313 "Page.c"
+}
+
+
+GType page_get_type (void) {
+ static volatile gsize page_type_id__volatile = 0;
+ if (g_once_init_enter (&page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Page), 0, (GInstanceInitFunc) page_instance_init, NULL };
+ GType page_type_id;
+ page_type_id = g_type_register_static (gtk_scrolled_window_get_type (), "Page", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&page_type_id__volatile, page_type_id);
+ }
+ return page_type_id__volatile;
+}
+
+
+GType checkerboard_page_activator_get_type (void) {
+ static volatile gsize checkerboard_page_activator_type_id__volatile = 0;
+ if (g_once_init_enter (&checkerboard_page_activator_type_id__volatile)) {
+ static const GEnumValue values[] = {{CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD, "CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD", "keyboard"}, {CHECKERBOARD_PAGE_ACTIVATOR_MOUSE, "CHECKERBOARD_PAGE_ACTIVATOR_MOUSE", "mouse"}, {0, NULL, NULL}};
+ GType checkerboard_page_activator_type_id;
+ checkerboard_page_activator_type_id = g_enum_register_static ("CheckerboardPageActivator", values);
+ g_once_init_leave (&checkerboard_page_activator_type_id__volatile, checkerboard_page_activator_type_id);
+ }
+ return checkerboard_page_activator_type_id__volatile;
+}
+
+
+static void _checkerboard_page_on_items_hidden_view_collection_items_hidden (ViewCollection* _sender, GeeCollection* hidden, gpointer self) {
+#line 1224 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_items_hidden ((CheckerboardPage*) self, hidden);
+#line 8344 "Page.c"
+}
+
+
+static void _checkerboard_page_on_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 1225 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_contents_altered ((CheckerboardPage*) self, added, removed);
+#line 8351 "Page.c"
+}
+
+
+static void _checkerboard_page_on_items_state_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
+#line 1226 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_items_state_changed ((CheckerboardPage*) self, changed);
+#line 8358 "Page.c"
+}
+
+
+static void _checkerboard_page_on_items_visibility_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self) {
+#line 1227 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_items_visibility_changed ((CheckerboardPage*) self, changed);
+#line 8365 "Page.c"
+}
+
+
+CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name) {
+ CheckerboardPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ CheckerboardLayout* _tmp3_ = NULL;
+ CheckerboardLayout* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ CheckerboardLayout* _tmp6_ = NULL;
+ GtkViewport* _tmp7_ = NULL;
+ GtkViewport* _tmp8_ = NULL;
+ GtkViewport* _tmp9_ = NULL;
+ CheckerboardLayout* _tmp10_ = NULL;
+ CheckerboardLayout* _tmp11_ = NULL;
+ GtkAdjustment* _tmp12_ = NULL;
+ GtkAdjustment* _tmp13_ = NULL;
+ GtkViewport* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ ViewCollection* _tmp18_ = NULL;
+ ViewCollection* _tmp19_ = NULL;
+ ViewCollection* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ ViewCollection* _tmp22_ = NULL;
+#line 1201 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (page_name != NULL, NULL);
+#line 1202 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_name;
+#line 1202 "/home/jens/Source/shotwell/src/Page.vala"
+ self = (CheckerboardPage*) page_construct (object_type, _tmp0_);
+#line 1204 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1204 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 1204 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = checkerboard_layout_new (_tmp2_);
+#line 1204 "/home/jens/Source/shotwell/src/Page.vala"
+ g_object_ref_sink (_tmp3_);
+#line 1204 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->layout);
+#line 1204 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->layout = _tmp3_;
+#line 1204 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 1205 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->layout;
+#line 1205 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_name;
+#line 1205 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_name (_tmp4_, _tmp5_);
+#line 1207 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->layout;
+#line 1207 "/home/jens/Source/shotwell/src/Page.vala"
+ page_set_event_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
+#line 1209 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), (guint) 0);
+#line 1210 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_scrolled_window_set_shadow_type (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_SHADOW_NONE);
+#line 1212 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->viewport;
+#line 1212 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_container_get_type (), GtkContainer), (guint) 0);
+#line 1213 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->viewport;
+#line 1213 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_viewport_set_shadow_type (_tmp8_, GTK_SHADOW_NONE);
+#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->viewport;
+#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->priv->layout;
+#line 1215 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
+#line 1219 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->priv->layout;
+#line 1219 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = gtk_scrolled_window_get_hadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
+#line 1219 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
+#line 1219 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_adjustments (_tmp11_, _tmp12_, _tmp13_);
+#line 1221 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = self->priv->viewport;
+#line 1221 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget));
+#line 1224 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1224 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_;
+#line 1224 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp16_, "items-hidden", (GCallback) _checkerboard_page_on_items_hidden_view_collection_items_hidden, self, 0);
+#line 1224 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp16_);
+#line 1225 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1225 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = _tmp17_;
+#line 1225 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _checkerboard_page_on_contents_altered_data_collection_contents_altered, self, 0);
+#line 1225 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp18_);
+#line 1226 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1226 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp19_;
+#line 1226 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp20_, "items-state-changed", (GCallback) _checkerboard_page_on_items_state_changed_view_collection_items_state_changed, self, 0);
+#line 1226 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp20_);
+#line 1227 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1227 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = _tmp21_;
+#line 1227 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (_tmp22_, "items-visibility-changed", (GCallback) _checkerboard_page_on_items_visibility_changed_view_collection_items_visibility_changed, self, 0);
+#line 1227 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp22_);
+#line 1230 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_scrolled_window_set_policy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+#line 1201 "/home/jens/Source/shotwell/src/Page.vala"
+ return self;
+#line 8490 "Page.c"
+}
+
+
+void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1233 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1233 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (path != NULL);
+#line 1234 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = path;
+#line 1234 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 1234 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->item_context_menu_path);
+#line 1234 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->item_context_menu_path = _tmp1_;
+#line 8509 "Page.c"
+}
+
+
+void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1237 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1237 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (path != NULL);
+#line 1238 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = path;
+#line 1238 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 1238 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->page_context_menu_path);
+#line 1238 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->page_context_menu_path = _tmp1_;
+#line 8528 "Page.c"
+}
+
+
+GtkMenu* checkerboard_page_get_context_menu (CheckerboardPage* self) {
+ GtkMenu* result = NULL;
+ GtkMenu* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+#line 1241 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = view_collection_get_selected_count (_tmp2_);
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_ != 0;
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_) {
+#line 8553 "Page.c"
+ GtkMenu* _tmp5_ = NULL;
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = checkerboard_page_get_item_context_menu (self);
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp0_);
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _tmp5_;
+#line 8561 "Page.c"
+ } else {
+ GtkMenu* _tmp6_ = NULL;
+#line 1244 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page_get_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1244 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp0_);
+#line 1244 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _tmp6_;
+#line 8570 "Page.c"
+ }
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp0_;
+#line 1243 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8576 "Page.c"
+}
+
+
+static GtkMenu* checkerboard_page_real_get_item_context_menu (CheckerboardPage* self) {
+ GtkMenu* result = NULL;
+ GtkMenu* menu = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkMenu* _tmp3_ = NULL;
+#line 1248 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->ui;
+#line 1248 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->item_context_menu_path;
+#line 1248 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = gtk_ui_manager_get_widget (_tmp0_, _tmp1_);
+#line 1248 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_menu_get_type (), GtkMenu));
+#line 1248 "/home/jens/Source/shotwell/src/Page.vala"
+ menu = _tmp3_;
+#line 1249 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (menu != NULL, "menu != null");
+#line 1250 "/home/jens/Source/shotwell/src/Page.vala"
+ result = menu;
+#line 1250 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8603 "Page.c"
+}
+
+
+GtkMenu* checkerboard_page_get_item_context_menu (CheckerboardPage* self) {
+#line 1247 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1247 "/home/jens/Source/shotwell/src/Page.vala"
+ return CHECKERBOARD_PAGE_GET_CLASS (self)->get_item_context_menu (self);
+#line 8612 "Page.c"
+}
+
+
+static GtkMenu* checkerboard_page_real_get_page_context_menu (Page* base) {
+ CheckerboardPage * self;
+ GtkMenu* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkMenu* menu = NULL;
+ GtkUIManager* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+ GtkMenu* _tmp4_ = NULL;
+ GtkMenu* _tmp5_ = NULL;
+#line 1253 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1254 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->page_context_menu_path;
+#line 1254 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 1255 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 1255 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8636 "Page.c"
+ }
+#line 1256 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->ui;
+#line 1256 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->page_context_menu_path;
+#line 1256 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gtk_ui_manager_get_widget (_tmp1_, _tmp2_);
+#line 1256 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_menu_get_type (), GtkMenu));
+#line 1256 "/home/jens/Source/shotwell/src/Page.vala"
+ menu = _tmp4_;
+#line 1257 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = menu;
+#line 1257 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp5_ != NULL, "menu != null");
+#line 1258 "/home/jens/Source/shotwell/src/Page.vala"
+ result = menu;
+#line 1258 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8656 "Page.c"
+}
+
+
+static gboolean checkerboard_page_real_on_context_keypress (Page* base) {
+ CheckerboardPage * self;
+ gboolean result = FALSE;
+ GtkMenu* _tmp0_ = NULL;
+ GtkMenu* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 1261 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = checkerboard_page_get_context_menu (self);
+#line 1262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp1_, NULL);
+#line 1262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 1262 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1262 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp3_;
+#line 1262 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8683 "Page.c"
+}
+
+
+static gchar* checkerboard_page_real_get_view_empty_message (CheckerboardPage* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1266 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _ ("No photos/videos");
+#line 1266 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 1266 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 1266 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8699 "Page.c"
+}
+
+
+gchar* checkerboard_page_get_view_empty_message (CheckerboardPage* self) {
+#line 1265 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1265 "/home/jens/Source/shotwell/src/Page.vala"
+ return CHECKERBOARD_PAGE_GET_CLASS (self)->get_view_empty_message (self);
+#line 8708 "Page.c"
+}
+
+
+static gchar* checkerboard_page_real_get_filter_no_match_message (CheckerboardPage* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1270 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _ ("No photos/videos found which match the current filter");
+#line 1270 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 1270 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 1270 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8724 "Page.c"
+}
+
+
+gchar* checkerboard_page_get_filter_no_match_message (CheckerboardPage* self) {
+#line 1269 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1269 "/home/jens/Source/shotwell/src/Page.vala"
+ return CHECKERBOARD_PAGE_GET_CLASS (self)->get_filter_no_match_message (self);
+#line 8733 "Page.c"
+}
+
+
+static void checkerboard_page_real_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers) {
+#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
+#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (modifiers != NULL);
+#line 8742 "Page.c"
+}
+
+
+void checkerboard_page_on_item_activated (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers) {
+#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1273 "/home/jens/Source/shotwell/src/Page.vala"
+ CHECKERBOARD_PAGE_GET_CLASS (self)->on_item_activated (self, item, activator, modifiers);
+#line 8751 "Page.c"
+}
+
+
+CheckerboardLayout* checkerboard_page_get_checkerboard_layout (CheckerboardPage* self) {
+ CheckerboardLayout* result = NULL;
+ CheckerboardLayout* _tmp0_ = NULL;
+ CheckerboardLayout* _tmp1_ = NULL;
+#line 1277 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1278 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1278 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1278 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 1278 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8769 "Page.c"
+}
+
+
+static SearchViewFilter* checkerboard_page_real_get_search_view_filter (CheckerboardPage* self) {
+#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
+ g_critical ("Type `%s' does not implement abstract method `checkerboard_page_get_search_view_filter'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
+ return NULL;
+#line 8778 "Page.c"
+}
+
+
+SearchViewFilter* checkerboard_page_get_search_view_filter (CheckerboardPage* self) {
+#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1282 "/home/jens/Source/shotwell/src/Page.vala"
+ return CHECKERBOARD_PAGE_GET_CLASS (self)->get_search_view_filter (self);
+#line 8787 "Page.c"
+}
+
+
+static CoreViewTracker* checkerboard_page_real_get_view_tracker (CheckerboardPage* self) {
+ CoreViewTracker* result = NULL;
+#line 1285 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 1285 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 8797 "Page.c"
+}
+
+
+CoreViewTracker* checkerboard_page_get_view_tracker (CheckerboardPage* self) {
+#line 1284 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1284 "/home/jens/Source/shotwell/src/Page.vala"
+ return CHECKERBOARD_PAGE_GET_CLASS (self)->get_view_tracker (self);
+#line 8806 "Page.c"
+}
+
+
+static void _checkerboard_page_on_view_filter_refresh_view_filter_refresh (ViewFilter* _sender, gpointer self) {
+#line 1290 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_view_filter_refresh ((CheckerboardPage*) self);
+#line 8813 "Page.c"
+}
+
+
+static void checkerboard_page_real_switching_from (Page* base) {
+ CheckerboardPage * self;
+ CheckerboardLayout* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+ SearchViewFilter* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+#line 1288 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1289 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1289 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_in_view (_tmp0_, FALSE);
+#line 1290 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = checkerboard_page_get_search_view_filter (self);
+#line 1290 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 1290 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("refresh", TYPE_VIEW_FILTER, &_tmp3_, NULL, FALSE);
+#line 1290 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIEW_FILTER, ViewFilter), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _checkerboard_page_on_view_filter_refresh_view_filter_refresh, self);
+#line 1290 "/home/jens/Source/shotwell/src/Page.vala"
+ _view_filter_unref0 (_tmp2_);
+#line 1293 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1293 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 1293 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all (_tmp5_);
+#line 1293 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 1295 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_CLASS (checkerboard_page_parent_class)->switching_from (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 8851 "Page.c"
+}
+
+
+static void checkerboard_page_real_switched_to (Page* base) {
+ CheckerboardPage * self;
+ CheckerboardLayout* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+ SearchViewFilter* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 1298 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1299 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1299 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_in_view (_tmp0_, TRUE);
+#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = checkerboard_page_get_search_view_filter (self);
+#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIEW_FILTER, ViewFilter), "refresh", (GCallback) _checkerboard_page_on_view_filter_refresh_view_filter_refresh, self, 0);
+#line 1300 "/home/jens/Source/shotwell/src/Page.vala"
+ _view_filter_unref0 (_tmp2_);
+#line 1301 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_view_filter_refresh (self);
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = view_collection_get_selected_count (_tmp4_);
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_ > 0;
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp4_);
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_) {
+#line 8892 "Page.c"
+ CheckerboardItem* item = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ CheckerboardItem* _tmp10_ = NULL;
+ GtkAdjustment* vadj = NULL;
+ GtkAdjustment* _tmp11_ = NULL;
+ GtkAdjustment* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GtkAdjustment* _tmp14_ = NULL;
+ CheckerboardItem* _tmp15_ = NULL;
+ GdkRectangle _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ AdjustmentRelation _tmp18_ = 0;
+#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = view_collection_get_selected_at (_tmp8_, 0);
+#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 1304 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp10_;
+#line 1307 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
+#line 1307 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 1307 "/home/jens/Source/shotwell/src/Page.vala"
+ vadj = _tmp12_;
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = vadj;
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = item;
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_->allocation;
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = _tmp16_.y;
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = get_adjustment_relation (_tmp14_, _tmp17_);
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp18_ == ADJUSTMENT_RELATION_IN_RANGE) {
+#line 8937 "Page.c"
+ GtkAdjustment* _tmp19_ = NULL;
+ CheckerboardItem* _tmp20_ = NULL;
+ GdkRectangle _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ CheckerboardItem* _tmp23_ = NULL;
+ GdkRectangle _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ AdjustmentRelation _tmp26_ = 0;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = vadj;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = item;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = _tmp20_->allocation;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = _tmp21_.y;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = item;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = _tmp23_->allocation;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = _tmp24_.height;
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = get_adjustment_relation (_tmp19_, _tmp22_ + _tmp25_);
+#line 1309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp26_ == ADJUSTMENT_RELATION_IN_RANGE;
+#line 8964 "Page.c"
+ } else {
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = FALSE;
+#line 8968 "Page.c"
+ }
+#line 1308 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp13_) {
+#line 8972 "Page.c"
+ gint top = 0;
+ CheckerboardItem* _tmp27_ = NULL;
+ GdkRectangle _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ GtkAdjustment* _tmp30_ = NULL;
+ gdouble _tmp31_ = 0.0;
+ GtkAdjustment* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+#line 1312 "/home/jens/Source/shotwell/src/Page.vala"
+ top = 0;
+#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = item;
+#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = _tmp27_->allocation;
+#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp28_.y;
+#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = vadj;
+#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = gtk_adjustment_get_value (_tmp30_);
+#line 1313 "/home/jens/Source/shotwell/src/Page.vala"
+ if (((gdouble) _tmp29_) < _tmp31_) {
+#line 8995 "Page.c"
+ CheckerboardItem* _tmp32_ = NULL;
+ GdkRectangle _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 1314 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = item;
+#line 1314 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = _tmp32_->allocation;
+#line 1314 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = _tmp33_.y;
+#line 1314 "/home/jens/Source/shotwell/src/Page.vala"
+ top = _tmp34_;
+#line 1315 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = top;
+#line 1315 "/home/jens/Source/shotwell/src/Page.vala"
+ top = _tmp35_ - (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
+#line 9012 "Page.c"
+ } else {
+ CheckerboardItem* _tmp36_ = NULL;
+ GdkRectangle _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ CheckerboardItem* _tmp39_ = NULL;
+ GdkRectangle _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ GtkAdjustment* _tmp42_ = NULL;
+ gdouble _tmp43_ = 0.0;
+ gint _tmp44_ = 0;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = item;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = _tmp36_->allocation;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = _tmp37_.y;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = item;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = _tmp39_->allocation;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = _tmp40_.height;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = vadj;
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = gtk_adjustment_get_page_size (_tmp42_);
+#line 1317 "/home/jens/Source/shotwell/src/Page.vala"
+ top = (_tmp38_ + _tmp41_) - ((gint) _tmp43_);
+#line 1318 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = top;
+#line 1318 "/home/jens/Source/shotwell/src/Page.vala"
+ top = _tmp44_ + (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
+#line 9045 "Page.c"
+ }
+#line 1321 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = vadj;
+#line 1321 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = top;
+#line 1321 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_adjustment_set_value (_tmp45_, (gdouble) _tmp46_);
+#line 9053 "Page.c"
+ }
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (vadj);
+#line 1303 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 9059 "Page.c"
+ }
+#line 1326 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_CLASS (checkerboard_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 9063 "Page.c"
+}
+
+
+static void checkerboard_page_on_view_filter_refresh (CheckerboardPage* self) {
+#line 1329 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1330 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_update_view_filter_message (self);
+#line 9072 "Page.c"
+}
+
+
+static void checkerboard_page_on_contents_altered (CheckerboardPage* self, GeeIterable* added, GeeIterable* removed) {
+#line 1333 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1333 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 1333 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 1335 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_update_view_filter_message (self);
+#line 9085 "Page.c"
+}
+
+
+static void checkerboard_page_on_items_state_changed (CheckerboardPage* self, GeeIterable* changed) {
+#line 1338 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1338 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (changed));
+#line 1339 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_update_view_filter_message (self);
+#line 9096 "Page.c"
+}
+
+
+static void checkerboard_page_on_items_visibility_changed (CheckerboardPage* self, GeeCollection* changed) {
+#line 1342 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1342 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (changed));
+#line 1343 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_update_view_filter_message (self);
+#line 9107 "Page.c"
+}
+
+
+static void checkerboard_page_update_view_filter_message (CheckerboardPage* self) {
+ gboolean _tmp0_ = FALSE;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1346 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = view_collection_are_items_filtered_out (_tmp2_);
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_) {
+#line 9131 "Page.c"
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _tmp7_ == 0;
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 9145 "Page.c"
+ } else {
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = FALSE;
+#line 9149 "Page.c"
+ }
+#line 1347 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 9153 "Page.c"
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1348 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = checkerboard_page_get_filter_no_match_message (self);
+#line 1348 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp8_;
+#line 1348 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_set_page_message (self, _tmp9_);
+#line 1348 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp9_);
+#line 9164 "Page.c"
+ } else {
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gboolean _tmp13_ = FALSE;
+#line 1349 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1349 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_;
+#line 1349 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1349 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_ == 0;
+#line 1349 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 1349 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp13_) {
+#line 9182 "Page.c"
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 1350 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = checkerboard_page_get_view_empty_message (self);
+#line 1350 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _tmp14_;
+#line 1350 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_set_page_message (self, _tmp15_);
+#line 1350 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp15_);
+#line 9193 "Page.c"
+ } else {
+#line 1352 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_unset_page_message (self);
+#line 9197 "Page.c"
+ }
+ }
+}
+
+
+void checkerboard_page_set_page_message (CheckerboardPage* self, const gchar* message) {
+ CheckerboardLayout* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1356 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1356 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (message != NULL);
+#line 1357 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1357 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = message;
+#line 1357 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_message (_tmp0_, _tmp1_);
+#line 1358 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1358 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_) {
+#line 9221 "Page.c"
+ CheckerboardLayout* _tmp3_ = NULL;
+#line 1359 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->layout;
+#line 1359 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 9227 "Page.c"
+ }
+}
+
+
+void checkerboard_page_unset_page_message (CheckerboardPage* self) {
+ CheckerboardLayout* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 1362 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1363 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1363 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_unset_message (_tmp0_);
+#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1364 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_) {
+#line 9245 "Page.c"
+ CheckerboardLayout* _tmp2_ = NULL;
+#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->layout;
+#line 1365 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 9251 "Page.c"
+ }
+}
+
+
+static void checkerboard_page_real_set_page_name (Page* base, const gchar* name) {
+ CheckerboardPage * self;
+ const gchar* _tmp0_ = NULL;
+ CheckerboardLayout* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1368 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1368 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (name != NULL);
+#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = name;
+#line 1369 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_CLASS (checkerboard_page_parent_class)->set_page_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp0_);
+#line 1371 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->layout;
+#line 1371 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = name;
+#line 1371 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_name (_tmp1_, _tmp2_);
+#line 9275 "Page.c"
+}
+
+
+CheckerboardItem* checkerboard_page_get_item_at_pixel (CheckerboardPage* self, gdouble x, gdouble y) {
+ CheckerboardItem* result = NULL;
+ CheckerboardLayout* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ CheckerboardItem* _tmp3_ = NULL;
+#line 1374 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), NULL);
+#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = x;
+#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = y;
+#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = checkerboard_layout_get_item_at_pixel (_tmp0_, _tmp1_, _tmp2_);
+#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp3_;
+#line 1375 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 9299 "Page.c"
+}
+
+
+static void checkerboard_page_on_items_hidden (CheckerboardPage* self, GeeIterable* hidden) {
+#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1378 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (hidden));
+#line 9308 "Page.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = hidden;
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _view_it = _tmp1_;
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 9321 "Page.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ CheckerboardItem* item = NULL;
+ DataView* _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+ CheckerboardItem* _tmp8_ = NULL;
+ CheckerboardItem* _tmp9_ = NULL;
+ CheckerboardItem* _tmp10_ = NULL;
+ CheckerboardItem* _tmp11_ = NULL;
+ CheckerboardItem* _tmp12_ = NULL;
+ CheckerboardItem* _tmp13_ = NULL;
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _view_it;
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp3_) {
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9344 "Page.c"
+ }
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _view_it;
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ view = (DataView*) _tmp5_;
+#line 1380 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = view;
+#line 1380 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1380 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp7_;
+#line 1382 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->anchor;
+#line 1382 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = item;
+#line 1382 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8_ == _tmp9_) {
+#line 1383 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1383 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = NULL;
+#line 9368 "Page.c"
+ }
+#line 1385 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->cursor;
+#line 1385 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = item;
+#line 1385 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp10_ == _tmp11_) {
+#line 1386 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1386 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = NULL;
+#line 9380 "Page.c"
+ }
+#line 1388 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->highlighted;
+#line 1388 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = item;
+#line 1388 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp12_ == _tmp13_) {
+#line 1389 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->highlighted);
+#line 1389 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->highlighted = NULL;
+#line 9392 "Page.c"
+ }
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (view);
+#line 9398 "Page.c"
+ }
+#line 1379 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_view_it);
+#line 9402 "Page.c"
+ }
+}
+
+
+static gboolean checkerboard_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ CheckerboardPage * self;
+ gboolean result = FALSE;
+ gboolean handled = FALSE;
+ guint state = 0U;
+ GdkEventKey* _tmp0_ = NULL;
+ GdkModifierType _tmp1_ = 0;
+ GdkEventKey* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GQuark _tmp7_ = 0U;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label0 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label1 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label2 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label3 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label4 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label5 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label6 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label7 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label8 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label9 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label10 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label11 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label12 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label13 = 0;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp6_label14 = 0;
+#line 9449 "Page.c"
+ gboolean _tmp45_ = FALSE;
+ gboolean _tmp46_ = FALSE;
+#line 1393 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1393 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1394 "/home/jens/Source/shotwell/src/Page.vala"
+ handled = TRUE;
+#line 1397 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 1397 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->state;
+#line 1397 "/home/jens/Source/shotwell/src/Page.vala"
+ state = (guint) (_tmp1_ & GDK_SHIFT_MASK);
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = event;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_->keyval;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = gdk_keyval_name (_tmp3_);
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ if ((_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("Up")))) || (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("KP_Up"))))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9478 "Page.c"
+ default:
+ {
+ guint _tmp8_ = 0U;
+#line 1402 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_move_cursor (self, COMPASS_POINT_NORTH);
+#line 1403 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = state;
+#line 1403 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_anchor_to_cursor (self, _tmp8_);
+#line 1404 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9490 "Page.c"
+ }
+ }
+ } else if ((_tmp7_ == ((0 != _tmp6_label2) ? _tmp6_label2 : (_tmp6_label2 = g_quark_from_static_string ("Down")))) || (_tmp7_ == ((0 != _tmp6_label3) ? _tmp6_label3 : (_tmp6_label3 = g_quark_from_static_string ("KP_Down"))))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9496 "Page.c"
+ default:
+ {
+ guint _tmp9_ = 0U;
+#line 1408 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_move_cursor (self, COMPASS_POINT_SOUTH);
+#line 1409 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = state;
+#line 1409 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_anchor_to_cursor (self, _tmp9_);
+#line 1410 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9508 "Page.c"
+ }
+ }
+ } else if ((_tmp7_ == ((0 != _tmp6_label4) ? _tmp6_label4 : (_tmp6_label4 = g_quark_from_static_string ("Left")))) || (_tmp7_ == ((0 != _tmp6_label5) ? _tmp6_label5 : (_tmp6_label5 = g_quark_from_static_string ("KP_Left"))))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9514 "Page.c"
+ default:
+ {
+ guint _tmp10_ = 0U;
+#line 1414 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_move_cursor (self, COMPASS_POINT_WEST);
+#line 1415 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = state;
+#line 1415 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_anchor_to_cursor (self, _tmp10_);
+#line 1416 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9526 "Page.c"
+ }
+ }
+ } else if ((_tmp7_ == ((0 != _tmp6_label6) ? _tmp6_label6 : (_tmp6_label6 = g_quark_from_static_string ("Right")))) || (_tmp7_ == ((0 != _tmp6_label7) ? _tmp6_label7 : (_tmp6_label7 = g_quark_from_static_string ("KP_Right"))))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9532 "Page.c"
+ default:
+ {
+ guint _tmp11_ = 0U;
+#line 1420 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_move_cursor (self, COMPASS_POINT_EAST);
+#line 1421 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = state;
+#line 1421 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_anchor_to_cursor (self, _tmp11_);
+#line 1422 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9544 "Page.c"
+ }
+ }
+ } else if ((_tmp7_ == ((0 != _tmp6_label8) ? _tmp6_label8 : (_tmp6_label8 = g_quark_from_static_string ("Home")))) || (_tmp7_ == ((0 != _tmp6_label9) ? _tmp6_label9 : (_tmp6_label9 = g_quark_from_static_string ("KP_Home"))))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9550 "Page.c"
+ default:
+ {
+ CheckerboardItem* first = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ CheckerboardItem* _tmp15_ = NULL;
+ CheckerboardItem* _tmp16_ = NULL;
+ guint _tmp18_ = 0U;
+#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_;
+#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = view_collection_get_first (_tmp13_);
+#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 1426 "/home/jens/Source/shotwell/src/Page.vala"
+ first = _tmp15_;
+#line 1427 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = first;
+#line 1427 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp16_ != NULL) {
+#line 9576 "Page.c"
+ CheckerboardItem* _tmp17_ = NULL;
+#line 1428 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = first;
+#line 1428 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_cursor_to_item (self, _tmp17_);
+#line 9582 "Page.c"
+ }
+#line 1429 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = state;
+#line 1429 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_anchor_to_cursor (self, _tmp18_);
+#line 1430 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (first);
+#line 1430 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9592 "Page.c"
+ }
+ }
+ } else if ((_tmp7_ == ((0 != _tmp6_label10) ? _tmp6_label10 : (_tmp6_label10 = g_quark_from_static_string ("End")))) || (_tmp7_ == ((0 != _tmp6_label11) ? _tmp6_label11 : (_tmp6_label11 = g_quark_from_static_string ("KP_End"))))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9598 "Page.c"
+ default:
+ {
+ CheckerboardItem* last = NULL;
+ ViewCollection* _tmp19_ = NULL;
+ ViewCollection* _tmp20_ = NULL;
+ DataView* _tmp21_ = NULL;
+ CheckerboardItem* _tmp22_ = NULL;
+ CheckerboardItem* _tmp23_ = NULL;
+ guint _tmp25_ = 0U;
+#line 1434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp19_;
+#line 1434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = view_collection_get_last (_tmp20_);
+#line 1434 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1434 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp20_);
+#line 1434 "/home/jens/Source/shotwell/src/Page.vala"
+ last = _tmp22_;
+#line 1435 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = last;
+#line 1435 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp23_ != NULL) {
+#line 9624 "Page.c"
+ CheckerboardItem* _tmp24_ = NULL;
+#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = last;
+#line 1436 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_cursor_to_item (self, _tmp24_);
+#line 9630 "Page.c"
+ }
+#line 1437 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = state;
+#line 1437 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_anchor_to_cursor (self, _tmp25_);
+#line 1438 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (last);
+#line 1438 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9640 "Page.c"
+ }
+ }
+ } else if ((_tmp7_ == ((0 != _tmp6_label12) ? _tmp6_label12 : (_tmp6_label12 = g_quark_from_static_string ("Return")))) || (_tmp7_ == ((0 != _tmp6_label13) ? _tmp6_label13 : (_tmp6_label13 = g_quark_from_static_string ("KP_Enter"))))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9646 "Page.c"
+ default:
+ {
+ ViewCollection* _tmp26_ = NULL;
+ ViewCollection* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gboolean _tmp29_ = FALSE;
+#line 1442 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1442 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = _tmp26_;
+#line 1442 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = view_collection_get_selected_count (_tmp27_);
+#line 1442 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp28_ == 1;
+#line 1442 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp27_);
+#line 1442 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp29_) {
+#line 9665 "Page.c"
+ ViewCollection* _tmp30_ = NULL;
+ ViewCollection* _tmp31_ = NULL;
+ DataView* _tmp32_ = NULL;
+ CheckerboardItem* _tmp33_ = NULL;
+ CheckerboardPageKeyboardModifiers _tmp34_ = {0};
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = _tmp30_;
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = view_collection_get_selected_at (_tmp31_, 0);
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem);
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_keyboard_modifiers_init (&_tmp34_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_item_activated (self, _tmp33_, CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD, &_tmp34_);
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp33_);
+#line 1443 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp31_);
+#line 9687 "Page.c"
+ } else {
+#line 1446 "/home/jens/Source/shotwell/src/Page.vala"
+ handled = FALSE;
+#line 9691 "Page.c"
+ }
+#line 1447 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9695 "Page.c"
+ }
+ }
+ } else if (_tmp7_ == ((0 != _tmp6_label14) ? _tmp6_label14 : (_tmp6_label14 = g_quark_from_static_string ("space")))) {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9701 "Page.c"
+ default:
+ {
+ Marker* marker = NULL;
+ ViewCollection* _tmp35_ = NULL;
+ ViewCollection* _tmp36_ = NULL;
+ CheckerboardLayout* _tmp37_ = NULL;
+ CheckerboardItem* _tmp38_ = NULL;
+ CheckerboardItem* _tmp39_ = NULL;
+ Marker* _tmp40_ = NULL;
+ Marker* _tmp41_ = NULL;
+ ViewCollection* _tmp42_ = NULL;
+ ViewCollection* _tmp43_ = NULL;
+ Marker* _tmp44_ = NULL;
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = _tmp35_;
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = self->priv->layout;
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = checkerboard_layout_get_cursor (_tmp37_);
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = _tmp38_;
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_DATA_OBJECT, DataObject));
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = _tmp40_;
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp39_);
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp36_);
+#line 1450 "/home/jens/Source/shotwell/src/Page.vala"
+ marker = _tmp41_;
+#line 1451 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1451 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = _tmp42_;
+#line 1451 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = marker;
+#line 1451 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_toggle_marked (_tmp43_, _tmp44_);
+#line 1451 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp43_);
+#line 1452 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (marker);
+#line 1452 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9749 "Page.c"
+ }
+ }
+ } else {
+#line 1399 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 9755 "Page.c"
+ default:
+ {
+#line 1455 "/home/jens/Source/shotwell/src/Page.vala"
+ handled = FALSE;
+#line 1456 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9762 "Page.c"
+ }
+ }
+ }
+#line 1459 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = handled;
+#line 1459 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp45_) {
+#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1460 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 9774 "Page.c"
+ }
+#line 1462 "/home/jens/Source/shotwell/src/Page.vala"
+ if (GTK_WIDGET_CLASS (checkerboard_page_parent_class)->key_press_event != NULL) {
+#line 9778 "Page.c"
+ GdkEventKey* _tmp47_ = NULL;
+ gboolean _tmp48_ = FALSE;
+#line 1462 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = event;
+#line 1462 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = GTK_WIDGET_CLASS (checkerboard_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), gtk_widget_get_type (), GtkWidget), _tmp47_);
+#line 1462 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = _tmp48_;
+#line 9787 "Page.c"
+ } else {
+#line 1462 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = TRUE;
+#line 9791 "Page.c"
+ }
+#line 1462 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp46_;
+#line 1462 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 9797 "Page.c"
+}
+
+
+static gboolean checkerboard_page_real_on_left_click (Page* base, GdkEventButton* event) {
+ CheckerboardPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GdkEventButton* _tmp1_ = NULL;
+ GdkEventType _tmp2_ = 0;
+ guint state = 0U;
+ GdkEventButton* _tmp5_ = NULL;
+ GdkModifierType _tmp6_ = 0;
+ CheckerboardItem* item = NULL;
+ GdkEventButton* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GdkEventButton* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ CheckerboardItem* _tmp11_ = NULL;
+ CheckerboardItem* _tmp12_ = NULL;
+ ViewCollection* _tmp106_ = NULL;
+ ViewCollection* _tmp107_ = NULL;
+ gint _tmp108_ = 0;
+ gboolean _tmp109_ = FALSE;
+#line 1465 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1465 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = event;
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_->type;
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ != GDK_BUTTON_PRESS) {
+#line 9831 "Page.c"
+ GdkEventButton* _tmp3_ = NULL;
+ GdkEventType _tmp4_ = 0;
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = event;
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_->type;
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _tmp4_ != GDK_2BUTTON_PRESS;
+#line 9840 "Page.c"
+ } else {
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = FALSE;
+#line 9844 "Page.c"
+ }
+#line 1467 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 1468 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1468 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 9852 "Page.c"
+ }
+#line 1471 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = event;
+#line 1471 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_->state;
+#line 1471 "/home/jens/Source/shotwell/src/Page.vala"
+ state = (guint) (_tmp6_ & (GDK_CONTROL_MASK | GDK_SHIFT_MASK));
+#line 1475 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = event;
+#line 1475 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_->x;
+#line 1475 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = event;
+#line 1475 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_->y;
+#line 1475 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = checkerboard_page_get_item_at_pixel (self, _tmp8_, _tmp10_);
+#line 1475 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp11_;
+#line 1476 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = item;
+#line 1476 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp12_ != NULL) {
+#line 9876 "Page.c"
+ CheckerboardLayout* _tmp13_ = NULL;
+ CheckerboardItem* _tmp14_ = NULL;
+ GdkEventButton* _tmp15_ = NULL;
+ gdouble _tmp16_ = 0.0;
+ GdkEventButton* _tmp17_ = NULL;
+ gdouble _tmp18_ = 0.0;
+ GdkEventButton* _tmp19_ = NULL;
+ GdkModifierType _tmp20_ = 0;
+ gboolean _tmp21_ = FALSE;
+ guint _tmp22_ = 0U;
+ CheckerboardLayout* _tmp80_ = NULL;
+ CheckerboardItem* _tmp81_ = NULL;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = self->priv->layout;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = item;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = event;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_->x;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = event;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = _tmp17_->y;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = event;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp19_->state;
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = checkerboard_layout_handle_left_click (_tmp13_, _tmp14_, _tmp16_, _tmp18_, _tmp20_);
+#line 1479 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_) {
+#line 1480 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1480 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1480 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 9915 "Page.c"
+ }
+#line 1482 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = state;
+#line 1482 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (_tmp22_) {
+#line 1482 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_CONTROL_MASK:
+#line 9923 "Page.c"
+ {
+ Marker* marker = NULL;
+ ViewCollection* _tmp23_ = NULL;
+ ViewCollection* _tmp24_ = NULL;
+ CheckerboardItem* _tmp25_ = NULL;
+ Marker* _tmp26_ = NULL;
+ Marker* _tmp27_ = NULL;
+ ViewCollection* _tmp28_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ Marker* _tmp30_ = NULL;
+ CheckerboardItem* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+#line 1486 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1486 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = _tmp23_;
+#line 1486 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = item;
+#line 1486 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject));
+#line 1486 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = _tmp26_;
+#line 1486 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp24_);
+#line 1486 "/home/jens/Source/shotwell/src/Page.vala"
+ marker = _tmp27_;
+#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp28_;
+#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = marker;
+#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_toggle_marked (_tmp29_, _tmp30_);
+#line 1487 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp29_);
+#line 1489 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = item;
+#line 1489 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_VIEW, DataView));
+#line 1489 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp32_) {
+#line 9966 "Page.c"
+ CheckerboardItem* _tmp33_ = NULL;
+ CheckerboardItem* _tmp34_ = NULL;
+ CheckerboardItem* _tmp35_ = NULL;
+ CheckerboardItem* _tmp36_ = NULL;
+#line 1490 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = item;
+#line 1490 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = _g_object_ref0 (_tmp33_);
+#line 1490 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1490 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp34_;
+#line 1491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = item;
+#line 1491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = _g_object_ref0 (_tmp35_);
+#line 1491 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1491 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp36_;
+#line 9987 "Page.c"
+ }
+#line 1493 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (marker);
+#line 1493 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 9993 "Page.c"
+ }
+#line 1482 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_SHIFT_MASK:
+#line 9997 "Page.c"
+ {
+ ViewCollection* _tmp37_ = NULL;
+ ViewCollection* _tmp38_ = NULL;
+ CheckerboardItem* _tmp39_ = NULL;
+ CheckerboardItem* _tmp42_ = NULL;
+ CheckerboardItem* _tmp43_ = NULL;
+ CheckerboardItem* _tmp44_ = NULL;
+ CheckerboardItem* _tmp45_ = NULL;
+#line 1496 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1496 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = _tmp37_;
+#line 1496 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all (_tmp38_);
+#line 1496 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp38_);
+#line 1498 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = self->anchor;
+#line 1498 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp39_ == NULL) {
+#line 10018 "Page.c"
+ CheckerboardItem* _tmp40_ = NULL;
+ CheckerboardItem* _tmp41_ = NULL;
+#line 1499 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = item;
+#line 1499 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = _g_object_ref0 (_tmp40_);
+#line 1499 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1499 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp41_;
+#line 10029 "Page.c"
+ }
+#line 1501 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = self->anchor;
+#line 1501 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = item;
+#line 1501 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_between_items (self, _tmp42_, _tmp43_);
+#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = item;
+#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = _g_object_ref0 (_tmp44_);
+#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1503 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp45_;
+#line 1504 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10047 "Page.c"
+ }
+#line 1482 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_CONTROL_MASK | GDK_SHIFT_MASK:
+#line 10051 "Page.c"
+ {
+ CheckerboardItem* _tmp46_ = NULL;
+ CheckerboardItem* _tmp49_ = NULL;
+ CheckerboardItem* _tmp50_ = NULL;
+ CheckerboardItem* _tmp51_ = NULL;
+ CheckerboardItem* _tmp52_ = NULL;
+#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = self->anchor;
+#line 1511 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp46_ == NULL) {
+#line 10062 "Page.c"
+ CheckerboardItem* _tmp47_ = NULL;
+ CheckerboardItem* _tmp48_ = NULL;
+#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = item;
+#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = _g_object_ref0 (_tmp47_);
+#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1512 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp48_;
+#line 10073 "Page.c"
+ }
+#line 1514 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = self->anchor;
+#line 1514 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp50_ = item;
+#line 1514 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_between_items (self, _tmp49_, _tmp50_);
+#line 1516 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp51_ = item;
+#line 1516 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp52_ = _g_object_ref0 (_tmp51_);
+#line 1516 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1516 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp52_;
+#line 1517 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10091 "Page.c"
+ }
+ default:
+ {
+ GdkEventButton* _tmp53_ = NULL;
+ GdkEventType _tmp54_ = 0;
+ CheckerboardItem* _tmp76_ = NULL;
+ CheckerboardItem* _tmp77_ = NULL;
+ CheckerboardItem* _tmp78_ = NULL;
+ CheckerboardItem* _tmp79_ = NULL;
+#line 1520 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp53_ = event;
+#line 1520 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp54_ = _tmp53_->type;
+#line 1520 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp54_ == GDK_2BUTTON_PRESS) {
+#line 10107 "Page.c"
+ CheckerboardItem* _tmp55_ = NULL;
+ CheckerboardItem* _tmp56_ = NULL;
+#line 1521 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp55_ = item;
+#line 1521 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp56_ = _g_object_ref0 (_tmp55_);
+#line 1521 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->activated_item);
+#line 1521 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->activated_item = _tmp56_;
+#line 10118 "Page.c"
+ } else {
+ CheckerboardItem* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+#line 1527 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp57_ = item;
+#line 1527 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp58_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, TYPE_DATA_VIEW, DataView));
+#line 1527 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp58_) {
+#line 10128 "Page.c"
+ Marker* all = NULL;
+ ViewCollection* _tmp59_ = NULL;
+ ViewCollection* _tmp60_ = NULL;
+ Marker* _tmp61_ = NULL;
+ Marker* _tmp62_ = NULL;
+ Marker* _tmp63_ = NULL;
+ ViewCollection* _tmp64_ = NULL;
+ ViewCollection* _tmp65_ = NULL;
+ GeeList* _tmp66_ = NULL;
+ GeeList* _tmp67_ = NULL;
+ ViewCollection* _tmp68_ = NULL;
+ ViewCollection* _tmp69_ = NULL;
+ Marker* _tmp70_ = NULL;
+ ViewCollection* _tmp71_ = NULL;
+ ViewCollection* _tmp72_ = NULL;
+ CheckerboardItem* _tmp73_ = NULL;
+ Marker* _tmp74_ = NULL;
+ Marker* _tmp75_ = NULL;
+#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp59_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp60_ = _tmp59_;
+#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp61_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp62_ = _tmp61_;
+#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp60_);
+#line 1528 "/home/jens/Source/shotwell/src/Page.vala"
+ all = _tmp62_;
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp63_ = all;
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp64_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp65_ = _tmp64_;
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp66_ = view_collection_get_selected (_tmp65_);
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp67_ = _tmp66_;
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_mark_many (_tmp63_, G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp67_);
+#line 1529 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp65_);
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp68_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp69_ = _tmp68_;
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp70_ = all;
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp71_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp72_ = _tmp71_;
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp73_ = item;
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp74_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, TYPE_DATA_OBJECT, DataObject));
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp75_ = _tmp74_;
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_and_select_marked (_tmp69_, _tmp70_, _tmp75_);
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp75_);
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp72_);
+#line 1531 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp69_);
+#line 1527 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (all);
+#line 10201 "Page.c"
+ }
+ }
+#line 1535 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp76_ = item;
+#line 1535 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp77_ = _g_object_ref0 (_tmp76_);
+#line 1535 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1535 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp77_;
+#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp78_ = item;
+#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp79_ = _g_object_ref0 (_tmp78_);
+#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1536 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp79_;
+#line 1537 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10222 "Page.c"
+ }
+ }
+#line 1539 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp80_ = self->priv->layout;
+#line 1539 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp81_ = item;
+#line 1539 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_cursor (_tmp80_, _tmp81_);
+#line 10231 "Page.c"
+ } else {
+ guint _tmp82_ = 0U;
+ GeeArrayList* _tmp85_ = NULL;
+ CheckerboardLayout* _tmp101_ = NULL;
+ GdkEventButton* _tmp102_ = NULL;
+ gdouble _tmp103_ = 0.0;
+ GdkEventButton* _tmp104_ = NULL;
+ gdouble _tmp105_ = 0.0;
+#line 1543 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp82_ = state;
+#line 1543 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp82_ != ((guint) GDK_CONTROL_MASK)) {
+#line 10244 "Page.c"
+ ViewCollection* _tmp83_ = NULL;
+ ViewCollection* _tmp84_ = NULL;
+#line 1544 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp83_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1544 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp84_ = _tmp83_;
+#line 1544 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all (_tmp84_);
+#line 1544 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp84_);
+#line 10255 "Page.c"
+ }
+#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp85_ = gee_array_list_new (TYPE_CHECKERBOARD_ITEM, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->previously_selected);
+#line 1547 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->previously_selected = _tmp85_;
+#line 10263 "Page.c"
+ {
+ GeeList* _view_list = NULL;
+ ViewCollection* _tmp86_ = NULL;
+ ViewCollection* _tmp87_ = NULL;
+ GeeList* _tmp88_ = NULL;
+ GeeList* _tmp89_ = NULL;
+ gint _view_size = 0;
+ GeeList* _tmp90_ = NULL;
+ gint _tmp91_ = 0;
+ gint _tmp92_ = 0;
+ gint _view_index = 0;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp86_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp87_ = _tmp86_;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp88_ = view_collection_get_selected (_tmp87_);
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp89_ = _tmp88_;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp87_);
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _view_list = _tmp89_;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp90_ = _view_list;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp91_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp92_ = _tmp91_;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _view_size = _tmp92_;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _view_index = -1;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 10299 "Page.c"
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp96_ = NULL;
+ gint _tmp97_ = 0;
+ gpointer _tmp98_ = NULL;
+ GeeArrayList* _tmp99_ = NULL;
+ DataView* _tmp100_ = NULL;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp93_ = _view_index;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _view_index = _tmp93_ + 1;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp94_ = _view_index;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp95_ = _view_size;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!(_tmp94_ < _tmp95_)) {
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10321 "Page.c"
+ }
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp96_ = _view_list;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp97_ = _view_index;
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp98_ = gee_list_get (_tmp96_, _tmp97_);
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ view = (DataView*) _tmp98_;
+#line 1549 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp99_ = self->priv->previously_selected;
+#line 1549 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp100_ = view;
+#line 1549 "/home/jens/Source/shotwell/src/Page.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (view);
+#line 10339 "Page.c"
+ }
+#line 1548 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_view_list);
+#line 10343 "Page.c"
+ }
+#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp101_ = self->priv->layout;
+#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp102_ = event;
+#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp103_ = _tmp102_->x;
+#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp104_ = event;
+#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp105_ = _tmp104_->y;
+#line 1551 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_drag_select_origin (_tmp101_, (gint) _tmp103_, (gint) _tmp105_);
+#line 1553 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1553 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1553 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10363 "Page.c"
+ }
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp106_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp107_ = _tmp106_;
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp108_ = view_collection_get_selected_count (_tmp107_);
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp109_ = _tmp108_ == 0;
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp107_);
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp109_;
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1559 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10381 "Page.c"
+}
+
+
+static gboolean checkerboard_page_real_on_left_released (Page* base, GdkEventButton* event) {
+ CheckerboardPage * self;
+ gboolean result = FALSE;
+ CheckerboardLayout* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GdkEventButton* _tmp5_ = NULL;
+ GdkModifierType _tmp6_ = 0;
+ CheckerboardItem* _tmp7_ = NULL;
+ CheckerboardItem* item = NULL;
+ GdkEventButton* _tmp10_ = NULL;
+ gdouble _tmp11_ = 0.0;
+ GdkEventButton* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+ CheckerboardItem* _tmp14_ = NULL;
+ CheckerboardItem* _tmp15_ = NULL;
+ CheckerboardItem* _tmp16_ = NULL;
+ CheckerboardItem* _tmp17_ = NULL;
+#line 1562 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1562 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1563 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->previously_selected);
+#line 1563 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->previously_selected = NULL;
+#line 1566 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1566 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = checkerboard_layout_is_drag_select_active (_tmp0_);
+#line 1566 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_) {
+#line 10416 "Page.c"
+ CheckerboardLayout* _tmp2_ = NULL;
+ CheckerboardItem* _tmp3_ = NULL;
+ CheckerboardItem* _tmp4_ = NULL;
+#line 1567 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->layout;
+#line 1567 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_clear_drag_select (_tmp2_);
+#line 1568 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->cursor;
+#line 1568 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 1568 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1568 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp4_;
+#line 1570 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1570 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10436 "Page.c"
+ }
+#line 1574 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = event;
+#line 1574 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_->state;
+#line 1574 "/home/jens/Source/shotwell/src/Page.vala"
+ if ((_tmp6_ & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) != 0) {
+#line 1575 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1575 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10448 "Page.c"
+ }
+#line 1578 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->activated_item;
+#line 1578 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp7_ != NULL) {
+#line 10454 "Page.c"
+ CheckerboardItem* _tmp8_ = NULL;
+ CheckerboardPageKeyboardModifiers _tmp9_ = {0};
+#line 1579 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->activated_item;
+#line 1579 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_keyboard_modifiers_init (&_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1579 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_on_item_activated (self, _tmp8_, CHECKERBOARD_PAGE_ACTIVATOR_MOUSE, &_tmp9_);
+#line 1580 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->activated_item);
+#line 1580 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->activated_item = NULL;
+#line 1582 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1582 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10471 "Page.c"
+ }
+#line 1585 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = event;
+#line 1585 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_->x;
+#line 1585 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = event;
+#line 1585 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_->y;
+#line 1585 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = checkerboard_page_get_item_at_pixel (self, _tmp11_, _tmp13_);
+#line 1585 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp14_;
+#line 1586 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = item;
+#line 1586 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp15_ == NULL) {
+#line 1588 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1588 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1588 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10495 "Page.c"
+ }
+#line 1591 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = self->cursor;
+#line 1591 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = item;
+#line 1591 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp16_ != _tmp17_) {
+#line 10503 "Page.c"
+ ViewCollection* _tmp18_ = NULL;
+ ViewCollection* _tmp19_ = NULL;
+#line 1594 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1594 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = _tmp18_;
+#line 1594 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all (_tmp19_);
+#line 1594 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp19_);
+#line 10514 "Page.c"
+ } else {
+ CheckerboardItem* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 1600 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = item;
+#line 1600 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_VIEW, DataView));
+#line 1600 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_) {
+#line 10524 "Page.c"
+ ViewCollection* _tmp22_ = NULL;
+ ViewCollection* _tmp23_ = NULL;
+ CheckerboardItem* _tmp24_ = NULL;
+#line 1601 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1601 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = _tmp22_;
+#line 1601 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = item;
+#line 1601 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all_but (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_VIEW, DataView));
+#line 1601 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp23_);
+#line 10538 "Page.c"
+ }
+ }
+#line 1604 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1604 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1604 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10547 "Page.c"
+}
+
+
+static gboolean checkerboard_page_real_on_right_click (Page* base, GdkEventButton* event) {
+ CheckerboardPage * self;
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ GdkEventType _tmp1_ = 0;
+ CheckerboardItem* item = NULL;
+ GdkEventButton* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ GdkEventButton* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ CheckerboardItem* _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+ GtkMenu* context_menu = NULL;
+ GtkMenu* _tmp39_ = NULL;
+ GtkMenu* _tmp40_ = NULL;
+ GdkEventButton* _tmp41_ = NULL;
+ gboolean _tmp42_ = FALSE;
+#line 1607 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1607 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->type;
+#line 1609 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_ != GDK_BUTTON_PRESS) {
+#line 1610 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1610 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10582 "Page.c"
+ }
+#line 1613 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = event;
+#line 1613 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_->x;
+#line 1613 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = event;
+#line 1613 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_->y;
+#line 1613 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = checkerboard_page_get_item_at_pixel (self, _tmp3_, _tmp5_);
+#line 1613 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp6_;
+#line 1614 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = item;
+#line 1614 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp7_ != NULL) {
+#line 10600 "Page.c"
+ GdkEventButton* _tmp8_ = NULL;
+ GdkModifierType _tmp9_ = 0;
+#line 1616 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = event;
+#line 1616 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp8_->state;
+#line 1616 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (_tmp9_ & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) {
+#line 1616 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_CONTROL_MASK:
+#line 10611 "Page.c"
+ {
+ Marker* marker = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ CheckerboardItem* _tmp12_ = NULL;
+ Marker* _tmp13_ = NULL;
+ Marker* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ Marker* _tmp17_ = NULL;
+#line 1619 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1619 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_;
+#line 1619 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = item;
+#line 1619 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 1619 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _tmp13_;
+#line 1619 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 1619 "/home/jens/Source/shotwell/src/Page.vala"
+ marker = _tmp14_;
+#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_;
+#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = marker;
+#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_toggle_marked (_tmp16_, _tmp17_);
+#line 1620 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp16_);
+#line 1621 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (marker);
+#line 1621 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10650 "Page.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_SHIFT_MASK:
+#line 10654 "Page.c"
+ {
+#line 1625 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10658 "Page.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/Page.vala"
+ case GDK_CONTROL_MASK | GDK_SHIFT_MASK:
+#line 10662 "Page.c"
+ {
+#line 1629 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10666 "Page.c"
+ }
+ default:
+ {
+ CheckerboardItem* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 1634 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = item;
+#line 1634 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = data_view_is_selected (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_VIEW, DataView));
+#line 1634 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp19_) {
+#line 10678 "Page.c"
+ Marker* all = NULL;
+ ViewCollection* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ Marker* _tmp22_ = NULL;
+ Marker* _tmp23_ = NULL;
+ Marker* _tmp24_ = NULL;
+ ViewCollection* _tmp25_ = NULL;
+ ViewCollection* _tmp26_ = NULL;
+ GeeList* _tmp27_ = NULL;
+ GeeList* _tmp28_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ ViewCollection* _tmp30_ = NULL;
+ Marker* _tmp31_ = NULL;
+ ViewCollection* _tmp32_ = NULL;
+ ViewCollection* _tmp33_ = NULL;
+ CheckerboardItem* _tmp34_ = NULL;
+ Marker* _tmp35_ = NULL;
+ Marker* _tmp36_ = NULL;
+#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = _tmp20_;
+#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = _tmp22_;
+#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp21_);
+#line 1635 "/home/jens/Source/shotwell/src/Page.vala"
+ all = _tmp23_;
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = all;
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = _tmp25_;
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = view_collection_get_selected (_tmp26_);
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = _tmp27_;
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_mark_many (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp28_);
+#line 1636 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp26_);
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = _tmp29_;
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = all;
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = _tmp32_;
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = item;
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_DATA_OBJECT, DataObject));
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = _tmp35_;
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_and_select_marked (_tmp30_, _tmp31_, _tmp36_);
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp36_);
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp33_);
+#line 1638 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp30_);
+#line 1634 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (all);
+#line 10751 "Page.c"
+ }
+#line 1640 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 10755 "Page.c"
+ }
+ }
+ } else {
+ ViewCollection* _tmp37_ = NULL;
+ ViewCollection* _tmp38_ = NULL;
+#line 1644 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1644 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = _tmp37_;
+#line 1644 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all (_tmp38_);
+#line 1644 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp38_);
+#line 10769 "Page.c"
+ }
+#line 1647 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = checkerboard_page_get_context_menu (self);
+#line 1647 "/home/jens/Source/shotwell/src/Page.vala"
+ context_menu = _tmp39_;
+#line 1648 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = context_menu;
+#line 1648 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = event;
+#line 1648 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp40_, _tmp41_);
+#line 1648 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp42_;
+#line 1648 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (context_menu);
+#line 1648 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1648 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10789 "Page.c"
+}
+
+
+static gboolean checkerboard_page_real_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask) {
+ gboolean result = FALSE;
+ CheckerboardItem* _tmp0_ = NULL;
+ CheckerboardItem* _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+ CheckerboardItem* _tmp8_ = NULL;
+ CheckerboardItem* _tmp10_ = NULL;
+ CheckerboardItem* _tmp11_ = NULL;
+ CheckerboardItem* _tmp12_ = NULL;
+ CheckerboardItem* _tmp13_ = NULL;
+#line 1651 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail ((item == NULL) || IS_CHECKERBOARD_ITEM (item), FALSE);
+#line 1652 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = item;
+#line 1652 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != NULL) {
+#line 10809 "Page.c"
+ CheckerboardLayout* _tmp1_ = NULL;
+ CheckerboardItem* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkModifierType _tmp5_ = 0;
+#line 1653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->layout;
+#line 1653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = item;
+#line 1653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = x;
+#line 1653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = y;
+#line 1653 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = mask;
+#line 1653 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_handle_mouse_motion (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 10827 "Page.c"
+ }
+#line 1657 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = item;
+#line 1657 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->highlighted;
+#line 1657 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_ == _tmp7_) {
+#line 1658 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1658 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10839 "Page.c"
+ }
+#line 1661 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->highlighted;
+#line 1661 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8_ != NULL) {
+#line 10845 "Page.c"
+ CheckerboardItem* _tmp9_ = NULL;
+#line 1662 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->highlighted;
+#line 1662 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_item_unbrighten (_tmp9_);
+#line 1663 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->highlighted);
+#line 1663 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->highlighted = NULL;
+#line 10855 "Page.c"
+ }
+#line 1667 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = item;
+#line 1667 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp10_ == NULL) {
+#line 1668 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1668 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10865 "Page.c"
+ }
+#line 1671 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = item;
+#line 1671 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_item_brighten (_tmp11_);
+#line 1672 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = item;
+#line 1672 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 1672 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->highlighted);
+#line 1672 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->highlighted = _tmp13_;
+#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1674 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10883 "Page.c"
+}
+
+
+gboolean checkerboard_page_on_mouse_over (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask) {
+#line 1651 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), FALSE);
+#line 1651 "/home/jens/Source/shotwell/src/Page.vala"
+ return CHECKERBOARD_PAGE_GET_CLASS (self)->on_mouse_over (self, item, x, y, mask);
+#line 10892 "Page.c"
+}
+
+
+static gboolean _checkerboard_page_selection_autoscroll_gsource_func (gpointer self) {
+ gboolean result;
+ result = checkerboard_page_selection_autoscroll ((CheckerboardPage*) self);
+#line 1694 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10901 "Page.c"
+}
+
+
+static gboolean checkerboard_page_real_on_motion (Page* base, GdkEventMotion* event, gint x, gint y, GdkModifierType mask) {
+ CheckerboardPage * self;
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ CheckerboardItem* _tmp2_ = NULL;
+ CheckerboardItem* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GdkModifierType _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ CheckerboardLayout* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ CheckerboardLayout* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1677 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = x;
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = y;
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = checkerboard_page_get_item_at_pixel (self, (gdouble) _tmp0_, (gdouble) _tmp1_);
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = x;
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = y;
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = mask;
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = checkerboard_page_on_mouse_over (self, _tmp3_, _tmp4_, _tmp5_, _tmp6_);
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = !_tmp7_;
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1679 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp8_) {
+#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1680 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10954 "Page.c"
+ }
+#line 1683 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->layout;
+#line 1683 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = checkerboard_layout_is_drag_select_active (_tmp9_);
+#line 1683 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp10_) {
+#line 1684 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1684 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 10966 "Page.c"
+ }
+#line 1687 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->priv->layout;
+#line 1687 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = x;
+#line 1687 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = y;
+#line 1687 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_drag_select_endpoint (_tmp11_, _tmp12_, _tmp13_);
+#line 1689 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_updated_selection_band (self);
+#line 1692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = self->priv->autoscroll_scheduled;
+#line 1692 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp15_) {
+#line 10982 "Page.c"
+ GtkAdjustment* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ AdjustmentRelation _tmp18_ = 0;
+#line 1693 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
+#line 1693 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = y;
+#line 1693 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = get_adjustment_relation (_tmp16_, _tmp17_);
+#line 1693 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _tmp18_ != ADJUSTMENT_RELATION_IN_RANGE;
+#line 10994 "Page.c"
+ } else {
+#line 1692 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = FALSE;
+#line 10998 "Page.c"
+ }
+#line 1692 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp14_) {
+#line 1694 "/home/jens/Source/shotwell/src/Page.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) CHECKERBOARD_PAGE_AUTOSCROLL_TICKS_MSEC, _checkerboard_page_selection_autoscroll_gsource_func, g_object_ref (self), g_object_unref);
+#line 1695 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->autoscroll_scheduled = TRUE;
+#line 11006 "Page.c"
+ }
+#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1699 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 11012 "Page.c"
+}
+
+
+static void checkerboard_page_updated_selection_band (CheckerboardPage* self) {
+ CheckerboardLayout* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeList* intersection = NULL;
+ CheckerboardLayout* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ Marker* to_unselect = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ Marker* _tmp7_ = NULL;
+ Marker* _tmp8_ = NULL;
+ Marker* to_select = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ Marker* _tmp11_ = NULL;
+ Marker* _tmp12_ = NULL;
+ Marker* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ GeeList* _tmp17_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ Marker* _tmp19_ = NULL;
+ GeeArrayList* _tmp20_ = NULL;
+ Marker* _tmp21_ = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ ViewCollection* _tmp44_ = NULL;
+ ViewCollection* _tmp45_ = NULL;
+ Marker* _tmp46_ = NULL;
+ ViewCollection* _tmp47_ = NULL;
+ ViewCollection* _tmp48_ = NULL;
+ Marker* _tmp49_ = NULL;
+#line 1702 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1703 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1703 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = checkerboard_layout_is_drag_select_active (_tmp0_);
+#line 1703 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp1_, "layout.is_drag_select_active()");
+#line 1706 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->layout;
+#line 1706 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = checkerboard_layout_items_in_selection_band (_tmp2_);
+#line 1706 "/home/jens/Source/shotwell/src/Page.vala"
+ intersection = _tmp3_;
+#line 1707 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = intersection;
+#line 1707 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_ == NULL) {
+#line 1708 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (intersection);
+#line 1708 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 11071 "Page.c"
+ }
+#line 1710 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1710 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 1710 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1710 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 1710 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 1710 "/home/jens/Source/shotwell/src/Page.vala"
+ to_unselect = _tmp8_;
+#line 1711 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1711 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_;
+#line 1711 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1711 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = _tmp11_;
+#line 1711 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp10_);
+#line 1711 "/home/jens/Source/shotwell/src/Page.vala"
+ to_select = _tmp12_;
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = to_unselect;
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _tmp14_;
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = view_collection_get_selected (_tmp15_);
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = _tmp16_;
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_mark_many (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp17_);
+#line 1714 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 1717 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = self->priv->previously_selected;
+#line 1717 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp18_ != NULL, "previously_selected != null");
+#line 1718 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = to_unselect;
+#line 1718 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = self->priv->previously_selected;
+#line 1718 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_unmark_many (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1719 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = to_select;
+#line 1719 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = self->priv->previously_selected;
+#line 1719 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_mark_many (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1722 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1722 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = NULL;
+#line 11133 "Page.c"
+ {
+ GeeList* _item_list = NULL;
+ GeeList* _tmp23_ = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _item_size = 0;
+ GeeList* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _item_index = 0;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = intersection;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _item_list = _tmp24_;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = _item_list;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = _tmp26_;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _item_size = _tmp27_;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _item_index = -1;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 11161 "Page.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ CheckerboardItem* item = NULL;
+ GeeList* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gpointer _tmp33_ = NULL;
+ Marker* _tmp34_ = NULL;
+ CheckerboardItem* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ CheckerboardItem* _tmp41_ = NULL;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = _item_index;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _item_index = _tmp28_ + 1;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _item_index;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = _item_size;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!(_tmp29_ < _tmp30_)) {
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 11185 "Page.c"
+ }
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = _item_list;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = _item_index;
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = gee_list_get (_tmp31_, _tmp32_);
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ item = (CheckerboardItem*) _tmp33_;
+#line 1725 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = to_select;
+#line 1725 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = item;
+#line 1725 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = marker_toggle (_tmp34_, G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_DATA_OBJECT, DataObject));
+#line 1725 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp36_) {
+#line 11203 "Page.c"
+ Marker* _tmp37_ = NULL;
+ CheckerboardItem* _tmp38_ = NULL;
+#line 1726 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = to_unselect;
+#line 1726 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = item;
+#line 1726 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_unmark (_tmp37_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_DATA_OBJECT, DataObject));
+#line 11212 "Page.c"
+ } else {
+ Marker* _tmp39_ = NULL;
+ CheckerboardItem* _tmp40_ = NULL;
+#line 1728 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = to_unselect;
+#line 1728 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = item;
+#line 1728 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_mark (_tmp39_, G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_DATA_OBJECT, DataObject));
+#line 11222 "Page.c"
+ }
+#line 1730 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = self->cursor;
+#line 1730 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp41_ == NULL) {
+#line 11228 "Page.c"
+ CheckerboardItem* _tmp42_ = NULL;
+ CheckerboardItem* _tmp43_ = NULL;
+#line 1731 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = item;
+#line 1731 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = _g_object_ref0 (_tmp42_);
+#line 1731 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1731 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp43_;
+#line 11239 "Page.c"
+ }
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 11243 "Page.c"
+ }
+#line 1724 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_item_list);
+#line 11247 "Page.c"
+ }
+#line 1734 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1734 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = _tmp44_;
+#line 1734 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = to_select;
+#line 1734 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_select_marked (_tmp45_, _tmp46_);
+#line 1734 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp45_);
+#line 1735 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1735 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = _tmp47_;
+#line 1735 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = to_unselect;
+#line 1735 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_marked (_tmp48_, _tmp49_);
+#line 1735 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp48_);
+#line 1702 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (to_select);
+#line 1702 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (to_unselect);
+#line 1702 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (intersection);
+#line 11275 "Page.c"
+}
+
+
+static gboolean checkerboard_page_selection_autoscroll (CheckerboardPage* self) {
+ gboolean result = FALSE;
+ CheckerboardLayout* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GtkAdjustment* vadj = NULL;
+ GtkAdjustment* _tmp2_ = NULL;
+ GtkAdjustment* _tmp3_ = NULL;
+ gint x = 0;
+ gint y = 0;
+ GdkModifierType mask = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GdkModifierType _tmp6_ = 0;
+ gint new_value = 0;
+ GtkAdjustment* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GtkAdjustment* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ AdjustmentRelation _tmp11_ = 0;
+ GtkAdjustment* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ GtkAdjustment* _tmp24_ = NULL;
+ gdouble _tmp25_ = 0.0;
+ GtkAdjustment* _tmp26_ = NULL;
+ gdouble _tmp27_ = 0.0;
+ GtkAdjustment* _tmp28_ = NULL;
+ gdouble _tmp29_ = 0.0;
+ gint _tmp30_ = 0;
+#line 1738 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_CHECKERBOARD_PAGE (self), FALSE);
+#line 1739 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->layout;
+#line 1739 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = checkerboard_layout_is_drag_select_active (_tmp0_);
+#line 1739 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp1_) {
+#line 1740 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->autoscroll_scheduled = FALSE;
+#line 1742 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1742 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 11321 "Page.c"
+ }
+#line 1746 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
+#line 1746 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 1746 "/home/jens/Source/shotwell/src/Page.vala"
+ vadj = _tmp3_;
+#line 1750 "/home/jens/Source/shotwell/src/Page.vala"
+ page_get_event_source_pointer (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), &_tmp4_, &_tmp5_, &_tmp6_);
+#line 1750 "/home/jens/Source/shotwell/src/Page.vala"
+ x = _tmp4_;
+#line 1750 "/home/jens/Source/shotwell/src/Page.vala"
+ y = _tmp5_;
+#line 1750 "/home/jens/Source/shotwell/src/Page.vala"
+ mask = _tmp6_;
+#line 1752 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = vadj;
+#line 1752 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = gtk_adjustment_get_value (_tmp7_);
+#line 1752 "/home/jens/Source/shotwell/src/Page.vala"
+ new_value = (gint) _tmp8_;
+#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = vadj;
+#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = y;
+#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = get_adjustment_relation (_tmp9_, _tmp10_);
+#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (_tmp11_) {
+#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
+ case ADJUSTMENT_RELATION_BELOW:
+#line 11353 "Page.c"
+ {
+ gint _tmp12_ = 0;
+ CheckerboardLayout* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 1756 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = new_value;
+#line 1756 "/home/jens/Source/shotwell/src/Page.vala"
+ new_value = _tmp12_ - CHECKERBOARD_PAGE_AUTOSCROLL_PIXELS;
+#line 1757 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = self->priv->layout;
+#line 1757 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = x;
+#line 1757 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = new_value;
+#line 1757 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_drag_select_endpoint (_tmp13_, _tmp14_, _tmp15_);
+#line 1758 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 11373 "Page.c"
+ }
+#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
+ case ADJUSTMENT_RELATION_ABOVE:
+#line 11377 "Page.c"
+ {
+ gint _tmp16_ = 0;
+ CheckerboardLayout* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GtkAdjustment* _tmp20_ = NULL;
+ gdouble _tmp21_ = 0.0;
+#line 1762 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = new_value;
+#line 1762 "/home/jens/Source/shotwell/src/Page.vala"
+ new_value = _tmp16_ + CHECKERBOARD_PAGE_AUTOSCROLL_PIXELS;
+#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = self->priv->layout;
+#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = x;
+#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = new_value;
+#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = vadj;
+#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = gtk_adjustment_get_page_size (_tmp20_);
+#line 1763 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_drag_select_endpoint (_tmp17_, _tmp18_, _tmp19_ + ((gint) _tmp21_));
+#line 1764 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 11403 "Page.c"
+ }
+#line 1753 "/home/jens/Source/shotwell/src/Page.vala"
+ case ADJUSTMENT_RELATION_IN_RANGE:
+#line 11407 "Page.c"
+ {
+#line 1767 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->autoscroll_scheduled = FALSE;
+#line 1769 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 1769 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (vadj);
+#line 1769 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 11417 "Page.c"
+ }
+ default:
+ {
+#line 1772 "/home/jens/Source/shotwell/src/Page.vala"
+ g_warn_if_reached ();
+#line 1773 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 11425 "Page.c"
+ }
+ }
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = vadj;
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = new_value;
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = vadj;
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = gtk_adjustment_get_lower (_tmp24_);
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = vadj;
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = gtk_adjustment_get_upper (_tmp26_);
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = vadj;
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = gtk_adjustment_get_page_size (_tmp28_);
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = CLAMP (_tmp23_, (gint) _tmp25_, ((gint) _tmp27_) - ((gint) _tmp29_));
+#line 1779 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_adjustment_set_value (_tmp22_, (gdouble) _tmp30_);
+#line 1782 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_updated_selection_band (self);
+#line 1784 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 1784 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (vadj);
+#line 1784 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 11456 "Page.c"
+}
+
+
+void checkerboard_page_cursor_to_item (CheckerboardPage* self, CheckerboardItem* item) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ CheckerboardItem* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ CheckerboardItem* _tmp4_ = NULL;
+ CheckerboardItem* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ CheckerboardLayout* _tmp17_ = NULL;
+ CheckerboardItem* _tmp18_ = NULL;
+ GtkAdjustment* vadj = NULL;
+ GtkAdjustment* _tmp19_ = NULL;
+ GtkAdjustment* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ GtkAdjustment* _tmp22_ = NULL;
+ CheckerboardItem* _tmp23_ = NULL;
+ GdkRectangle _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ AdjustmentRelation _tmp26_ = 0;
+ gint top = 0;
+ CheckerboardItem* _tmp35_ = NULL;
+ GdkRectangle _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ GtkAdjustment* _tmp38_ = NULL;
+ gdouble _tmp39_ = 0.0;
+ GtkAdjustment* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+#line 1787 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1787 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
+#line 1788 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1788 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1788 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = item;
+#line 1788 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 1788 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp3_, "get_view().contains(item)");
+#line 1788 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1790 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = item;
+#line 1790 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 1790 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1790 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp5_;
+#line 1792 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1792 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp6_) {
+#line 11515 "Page.c"
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ Marker* marker = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ CheckerboardItem* _tmp11_ = NULL;
+ Marker* _tmp12_ = NULL;
+ Marker* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ Marker* _tmp16_ = NULL;
+#line 1793 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1793 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 1793 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all (_tmp8_);
+#line 1793 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 1794 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1794 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_;
+#line 1794 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = item;
+#line 1794 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_OBJECT, DataObject));
+#line 1794 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_;
+#line 1794 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp10_);
+#line 1794 "/home/jens/Source/shotwell/src/Page.vala"
+ marker = _tmp13_;
+#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _tmp14_;
+#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = marker;
+#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_select_marked (_tmp15_, _tmp16_);
+#line 1795 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 1792 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (marker);
+#line 11561 "Page.c"
+ }
+#line 1797 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = self->priv->layout;
+#line 1797 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = item;
+#line 1797 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_layout_set_cursor (_tmp17_, _tmp18_);
+#line 1800 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = gtk_scrolled_window_get_vadjustment (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow));
+#line 1800 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 1800 "/home/jens/Source/shotwell/src/Page.vala"
+ vadj = _tmp20_;
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = vadj;
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = item;
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = _tmp23_->allocation;
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = _tmp24_.y;
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = get_adjustment_relation (_tmp22_, _tmp25_);
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp26_ == ADJUSTMENT_RELATION_IN_RANGE) {
+#line 11587 "Page.c"
+ GtkAdjustment* _tmp27_ = NULL;
+ CheckerboardItem* _tmp28_ = NULL;
+ GdkRectangle _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ CheckerboardItem* _tmp31_ = NULL;
+ GdkRectangle _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ AdjustmentRelation _tmp34_ = 0;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = vadj;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = item;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp28_->allocation;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = _tmp29_.y;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = item;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = _tmp31_->allocation;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = _tmp32_.height;
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = get_adjustment_relation (_tmp27_, _tmp30_ + _tmp33_);
+#line 1802 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = _tmp34_ == ADJUSTMENT_RELATION_IN_RANGE;
+#line 11614 "Page.c"
+ } else {
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = FALSE;
+#line 11618 "Page.c"
+ }
+#line 1801 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_) {
+#line 1803 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (vadj);
+#line 1803 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 11626 "Page.c"
+ }
+#line 1806 "/home/jens/Source/shotwell/src/Page.vala"
+ top = 0;
+#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = item;
+#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = _tmp35_->allocation;
+#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = _tmp36_.y;
+#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = vadj;
+#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = gtk_adjustment_get_value (_tmp38_);
+#line 1807 "/home/jens/Source/shotwell/src/Page.vala"
+ if (((gdouble) _tmp37_) < _tmp39_) {
+#line 11642 "Page.c"
+ CheckerboardItem* _tmp40_ = NULL;
+ GdkRectangle _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+#line 1808 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = item;
+#line 1808 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = _tmp40_->allocation;
+#line 1808 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = _tmp41_.y;
+#line 1808 "/home/jens/Source/shotwell/src/Page.vala"
+ top = _tmp42_;
+#line 1809 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = top;
+#line 1809 "/home/jens/Source/shotwell/src/Page.vala"
+ top = _tmp43_ - (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
+#line 11659 "Page.c"
+ } else {
+ CheckerboardItem* _tmp44_ = NULL;
+ GdkRectangle _tmp45_ = {0};
+ gint _tmp46_ = 0;
+ CheckerboardItem* _tmp47_ = NULL;
+ GdkRectangle _tmp48_ = {0};
+ gint _tmp49_ = 0;
+ GtkAdjustment* _tmp50_ = NULL;
+ gdouble _tmp51_ = 0.0;
+ gint _tmp52_ = 0;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = item;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = _tmp44_->allocation;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = _tmp45_.y;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = item;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = _tmp47_->allocation;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = _tmp48_.height;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp50_ = vadj;
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp51_ = gtk_adjustment_get_page_size (_tmp50_);
+#line 1811 "/home/jens/Source/shotwell/src/Page.vala"
+ top = (_tmp46_ + _tmp49_) - ((gint) _tmp51_);
+#line 1812 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp52_ = top;
+#line 1812 "/home/jens/Source/shotwell/src/Page.vala"
+ top = _tmp52_ + (CHECKERBOARD_LAYOUT_ROW_GUTTER_PADDING / 2);
+#line 11692 "Page.c"
+ }
+#line 1815 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp53_ = vadj;
+#line 1815 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp54_ = top;
+#line 1815 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_adjustment_set_value (_tmp53_, (gdouble) _tmp54_);
+#line 1787 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (vadj);
+#line 11702 "Page.c"
+}
+
+
+void checkerboard_page_move_cursor (CheckerboardPage* self, CompassPoint point) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ CheckerboardItem* _tmp6_ = NULL;
+ CheckerboardItem* _tmp21_ = NULL;
+ CheckerboardItem* item = NULL;
+ CheckerboardLayout* _tmp25_ = NULL;
+ CheckerboardItem* _tmp26_ = NULL;
+ CompassPoint _tmp27_ = 0;
+ CheckerboardItem* _tmp28_ = NULL;
+ CheckerboardItem* _tmp29_ = NULL;
+#line 1818 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1820 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 1820 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1820 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_) {
+#line 1821 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 11737 "Page.c"
+ }
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->cursor;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_ == NULL) {
+#line 11743 "Page.c"
+ CheckerboardLayout* _tmp7_ = NULL;
+ CheckerboardItem* _tmp8_ = NULL;
+ CheckerboardItem* _tmp9_ = NULL;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->layout;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = checkerboard_layout_get_cursor (_tmp7_);
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp8_;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp9_ == NULL;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp9_);
+#line 11757 "Page.c"
+ } else {
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = FALSE;
+#line 11761 "Page.c"
+ }
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp5_) {
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = TRUE;
+#line 11767 "Page.c"
+ } else {
+ gboolean _tmp10_ = FALSE;
+ CheckerboardItem* _tmp11_ = NULL;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->cursor;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp11_ != NULL) {
+#line 11775 "Page.c"
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ CheckerboardItem* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = self->cursor;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = !_tmp15_;
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 11792 "Page.c"
+ } else {
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = FALSE;
+#line 11796 "Page.c"
+ }
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp10_;
+#line 11800 "Page.c"
+ }
+#line 1826 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_) {
+#line 11804 "Page.c"
+ CheckerboardItem* item = NULL;
+ CheckerboardLayout* _tmp16_ = NULL;
+ CheckerboardItem* _tmp17_ = NULL;
+ CheckerboardItem* _tmp18_ = NULL;
+ CheckerboardItem* _tmp19_ = NULL;
+ CheckerboardItem* _tmp20_ = NULL;
+#line 1827 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = self->priv->layout;
+#line 1827 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = checkerboard_layout_get_item_at_coordinate (_tmp16_, 0, 0);
+#line 1827 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp17_;
+#line 1828 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = item;
+#line 1828 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_cursor_to_item (self, _tmp18_);
+#line 1829 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = item;
+#line 1829 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 1829 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1829 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp20_;
+#line 1831 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1831 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 11833 "Page.c"
+ }
+#line 1834 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = self->cursor;
+#line 1834 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_ == NULL) {
+#line 11839 "Page.c"
+ CheckerboardLayout* _tmp22_ = NULL;
+ CheckerboardItem* _tmp23_ = NULL;
+ CheckerboardItem* _tmp24_ = NULL;
+#line 1835 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = self->priv->layout;
+#line 1835 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = checkerboard_layout_get_cursor (_tmp22_);
+#line 1835 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp23_, TYPE_CHECKERBOARD_ITEM) ? ((CheckerboardItem*) _tmp23_) : NULL;
+#line 1835 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp24_ == NULL) {
+#line 1835 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp23_);
+#line 11853 "Page.c"
+ }
+#line 1835 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1835 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp24_;
+#line 11859 "Page.c"
+ }
+#line 1839 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = self->priv->layout;
+#line 1839 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = self->cursor;
+#line 1839 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = point;
+#line 1839 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = checkerboard_layout_get_item_relative_to (_tmp25_, _tmp26_, _tmp27_);
+#line 1839 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp28_;
+#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = item;
+#line 1840 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp29_ != NULL) {
+#line 11875 "Page.c"
+ CheckerboardItem* _tmp30_ = NULL;
+#line 1841 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = item;
+#line 1841 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_cursor_to_item (self, _tmp30_);
+#line 11881 "Page.c"
+ }
+#line 1818 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 11885 "Page.c"
+}
+
+
+void checkerboard_page_set_cursor (CheckerboardPage* self, CheckerboardItem* item) {
+ Marker* marker = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ CheckerboardItem* _tmp2_ = NULL;
+ Marker* _tmp3_ = NULL;
+ Marker* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+ CheckerboardItem* _tmp8_ = NULL;
+ CheckerboardItem* _tmp9_ = NULL;
+ CheckerboardItem* _tmp10_ = NULL;
+#line 1844 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1844 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
+#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = item;
+#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_;
+#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1845 "/home/jens/Source/shotwell/src/Page.vala"
+ marker = _tmp4_;
+#line 1846 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1846 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 1846 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_select_marked (_tmp6_, marker);
+#line 1846 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 1848 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = item;
+#line 1848 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 1848 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1848 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = _tmp8_;
+#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = item;
+#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1849 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp10_;
+#line 1844 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (marker);
+#line 11946 "Page.c"
+}
+
+
+void checkerboard_page_select_between_items (CheckerboardPage* self, CheckerboardItem* item_start, CheckerboardItem* item_end) {
+ Marker* marker = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ Marker* _tmp2_ = NULL;
+ Marker* _tmp3_ = NULL;
+ gboolean passed_start = FALSE;
+ gboolean passed_end = FALSE;
+ ViewCollection* _tmp28_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ Marker* _tmp30_ = NULL;
+#line 1852 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1852 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item_start));
+#line 1852 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item_end));
+#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1853 "/home/jens/Source/shotwell/src/Page.vala"
+ marker = _tmp3_;
+#line 1855 "/home/jens/Source/shotwell/src/Page.vala"
+ passed_start = FALSE;
+#line 1856 "/home/jens/Source/shotwell/src/Page.vala"
+ passed_end = FALSE;
+#line 11983 "Page.c"
+ {
+ GeeIterator* _object_it = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp8_;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _object_it = _tmp9_;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ while (TRUE) {
+#line 12012 "Page.c"
+ GeeIterator* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ CheckerboardItem* item = NULL;
+ DataObject* _tmp14_ = NULL;
+ CheckerboardItem* _tmp15_ = NULL;
+ CheckerboardItem* _tmp16_ = NULL;
+ CheckerboardItem* _tmp17_ = NULL;
+ CheckerboardItem* _tmp18_ = NULL;
+ CheckerboardItem* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _object_it;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = gee_iterator_next (_tmp10_);
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp11_) {
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 12037 "Page.c"
+ }
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = _object_it;
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = gee_iterator_get (_tmp12_);
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ object = (DataObject*) _tmp13_;
+#line 1859 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = object;
+#line 1859 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1859 "/home/jens/Source/shotwell/src/Page.vala"
+ item = _tmp15_;
+#line 1861 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = item_start;
+#line 1861 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = item;
+#line 1861 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp16_ == _tmp17_) {
+#line 1862 "/home/jens/Source/shotwell/src/Page.vala"
+ passed_start = TRUE;
+#line 12059 "Page.c"
+ }
+#line 1864 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = item_end;
+#line 1864 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = item;
+#line 1864 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp18_ == _tmp19_) {
+#line 1865 "/home/jens/Source/shotwell/src/Page.vala"
+ passed_end = TRUE;
+#line 12069 "Page.c"
+ }
+#line 1867 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = passed_start;
+#line 1867 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_) {
+#line 1867 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = TRUE;
+#line 12077 "Page.c"
+ } else {
+ gboolean _tmp22_ = FALSE;
+#line 1867 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = passed_end;
+#line 1867 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp22_;
+#line 12084 "Page.c"
+ }
+#line 1867 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp20_) {
+#line 12088 "Page.c"
+ Marker* _tmp23_ = NULL;
+ DataObject* _tmp24_ = NULL;
+#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = marker;
+#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = object;
+#line 1868 "/home/jens/Source/shotwell/src/Page.vala"
+ marker_mark (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_VIEW, DataView), TYPE_DATA_OBJECT, DataObject));
+#line 12097 "Page.c"
+ }
+#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = passed_start;
+#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp26_) {
+#line 12103 "Page.c"
+ gboolean _tmp27_ = FALSE;
+#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = passed_end;
+#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = _tmp27_;
+#line 12109 "Page.c"
+ } else {
+#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = FALSE;
+#line 12113 "Page.c"
+ }
+#line 1870 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp25_) {
+#line 1871 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1871 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (object);
+#line 1871 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 12123 "Page.c"
+ }
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (item);
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (object);
+#line 12129 "Page.c"
+ }
+#line 1858 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_object_it);
+#line 12133 "Page.c"
+ }
+#line 1874 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1874 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp28_;
+#line 1874 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = marker;
+#line 1874 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_select_marked (_tmp29_, _tmp30_);
+#line 1874 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp29_);
+#line 1852 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (marker);
+#line 12147 "Page.c"
+}
+
+
+void checkerboard_page_select_anchor_to_cursor (CheckerboardPage* self, guint state) {
+ gboolean _tmp0_ = FALSE;
+ CheckerboardItem* _tmp1_ = NULL;
+ guint _tmp3_ = 0U;
+#line 1877 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1878 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->cursor;
+#line 1878 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_ == NULL) {
+#line 1878 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = TRUE;
+#line 12163 "Page.c"
+ } else {
+ CheckerboardItem* _tmp2_ = NULL;
+#line 1878 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->anchor;
+#line 1878 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 12170 "Page.c"
+ }
+#line 1878 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 1879 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 12176 "Page.c"
+ }
+#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = state;
+#line 1881 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_ == ((guint) GDK_SHIFT_MASK)) {
+#line 12182 "Page.c"
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ CheckerboardItem* _tmp6_ = NULL;
+ CheckerboardItem* _tmp7_ = NULL;
+#line 1882 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1882 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 1882 "/home/jens/Source/shotwell/src/Page.vala"
+ view_collection_unselect_all (_tmp5_);
+#line 1882 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 1883 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->anchor;
+#line 1883 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->cursor;
+#line 1883 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_select_between_items (self, _tmp6_, _tmp7_);
+#line 12201 "Page.c"
+ } else {
+ CheckerboardItem* _tmp8_ = NULL;
+ CheckerboardItem* _tmp9_ = NULL;
+#line 1885 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->cursor;
+#line 1885 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 1885 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1885 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = _tmp9_;
+#line 12213 "Page.c"
+ }
+}
+
+
+static void checkerboard_page_real_set_display_titles (CheckerboardPage* self, gboolean display) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GValue _tmp5_ = {0};
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1890 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = display;
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ g_value_init (&_tmp5_, G_TYPE_BOOLEAN);
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ g_value_set_boolean (&_tmp5_, _tmp4_);
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), CHECKERBOARD_ITEM_PROP_SHOW_TITLES, &_tmp5_, NULL, NULL);
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
+#line 1891 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 1892 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1892 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 1892 "/home/jens/Source/shotwell/src/Page.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1892 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 12259 "Page.c"
+}
+
+
+void checkerboard_page_set_display_titles (CheckerboardPage* self, gboolean display) {
+#line 1889 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1889 "/home/jens/Source/shotwell/src/Page.vala"
+ CHECKERBOARD_PAGE_GET_CLASS (self)->set_display_titles (self, display);
+#line 12268 "Page.c"
+}
+
+
+static void checkerboard_page_real_set_display_comments (CheckerboardPage* self, gboolean display) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GValue _tmp5_ = {0};
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1896 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = display;
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ g_value_init (&_tmp5_, G_TYPE_BOOLEAN);
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ g_value_set_boolean (&_tmp5_, _tmp4_);
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), CHECKERBOARD_ITEM_PROP_SHOW_COMMENTS, &_tmp5_, NULL, NULL);
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
+#line 1897 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 1898 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1898 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 1898 "/home/jens/Source/shotwell/src/Page.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1898 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 12313 "Page.c"
+}
+
+
+void checkerboard_page_set_display_comments (CheckerboardPage* self, gboolean display) {
+#line 1895 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (self));
+#line 1895 "/home/jens/Source/shotwell/src/Page.vala"
+ CHECKERBOARD_PAGE_GET_CLASS (self)->set_display_comments (self, display);
+#line 12322 "Page.c"
+}
+
+
+void checkerboard_page_keyboard_modifiers_init (CheckerboardPageKeyboardModifiers *self, Page* page) {
+ Page* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ Page* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ Page* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Page* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 1188 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1188 "/home/jens/Source/shotwell/src/Page.vala"
+ memset (self, 0, sizeof (CheckerboardPageKeyboardModifiers));
+#line 1189 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page;
+#line 1189 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_ctrl_pressed (_tmp0_);
+#line 1189 "/home/jens/Source/shotwell/src/Page.vala"
+ (*self).ctrl_pressed = _tmp1_;
+#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page;
+#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = page_get_alt_pressed (_tmp2_);
+#line 1190 "/home/jens/Source/shotwell/src/Page.vala"
+ (*self).alt_pressed = _tmp3_;
+#line 1191 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page;
+#line 1191 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = page_get_shift_pressed (_tmp4_);
+#line 1191 "/home/jens/Source/shotwell/src/Page.vala"
+ (*self).shift_pressed = _tmp5_;
+#line 1192 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page;
+#line 1192 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_get_super_pressed (_tmp6_);
+#line 1192 "/home/jens/Source/shotwell/src/Page.vala"
+ (*self).super_pressed = _tmp7_;
+#line 12363 "Page.c"
+}
+
+
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self) {
+ CheckerboardPageKeyboardModifiers* dup;
+#line 1187 "/home/jens/Source/shotwell/src/Page.vala"
+ dup = g_new0 (CheckerboardPageKeyboardModifiers, 1);
+#line 1187 "/home/jens/Source/shotwell/src/Page.vala"
+ memcpy (dup, self, sizeof (CheckerboardPageKeyboardModifiers));
+#line 1187 "/home/jens/Source/shotwell/src/Page.vala"
+ return dup;
+#line 12375 "Page.c"
+}
+
+
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self) {
+#line 1187 "/home/jens/Source/shotwell/src/Page.vala"
+ g_free (self);
+#line 12382 "Page.c"
+}
+
+
+GType checkerboard_page_keyboard_modifiers_get_type (void) {
+ static volatile gsize checkerboard_page_keyboard_modifiers_type_id__volatile = 0;
+ if (g_once_init_enter (&checkerboard_page_keyboard_modifiers_type_id__volatile)) {
+ GType checkerboard_page_keyboard_modifiers_type_id;
+ checkerboard_page_keyboard_modifiers_type_id = g_boxed_type_register_static ("CheckerboardPageKeyboardModifiers", (GBoxedCopyFunc) checkerboard_page_keyboard_modifiers_dup, (GBoxedFreeFunc) checkerboard_page_keyboard_modifiers_free);
+ g_once_init_leave (&checkerboard_page_keyboard_modifiers_type_id__volatile, checkerboard_page_keyboard_modifiers_type_id);
+ }
+ return checkerboard_page_keyboard_modifiers_type_id__volatile;
+}
+
+
+static void checkerboard_page_class_init (CheckerboardPageClass * klass) {
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ checkerboard_page_parent_class = g_type_class_peek_parent (klass);
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_class_add_private (klass, sizeof (CheckerboardPagePrivate));
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->get_item_context_menu = checkerboard_page_real_get_item_context_menu;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->get_page_context_menu = checkerboard_page_real_get_page_context_menu;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_context_keypress = checkerboard_page_real_on_context_keypress;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->get_view_empty_message = checkerboard_page_real_get_view_empty_message;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->get_filter_no_match_message = checkerboard_page_real_get_filter_no_match_message;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->on_item_activated = checkerboard_page_real_on_item_activated;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->get_search_view_filter = checkerboard_page_real_get_search_view_filter;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->get_view_tracker = checkerboard_page_real_get_view_tracker;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->switching_from = checkerboard_page_real_switching_from;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->switched_to = checkerboard_page_real_switched_to;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->set_page_name = checkerboard_page_real_set_page_name;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = checkerboard_page_real_key_press_event;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_left_click = checkerboard_page_real_on_left_click;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_left_released = checkerboard_page_real_on_left_released;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_right_click = checkerboard_page_real_on_right_click;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->on_mouse_over = checkerboard_page_real_on_mouse_over;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_motion = checkerboard_page_real_on_motion;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->set_display_titles = checkerboard_page_real_set_display_titles;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ ((CheckerboardPageClass *) klass)->set_display_comments = checkerboard_page_real_set_display_comments;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ G_OBJECT_CLASS (klass)->finalize = checkerboard_page_finalize;
+#line 12442 "Page.c"
+}
+
+
+static void checkerboard_page_instance_init (CheckerboardPage * self) {
+ GtkViewport* _tmp0_ = NULL;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv = CHECKERBOARD_PAGE_GET_PRIVATE (self);
+#line 1172 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->item_context_menu_path = NULL;
+#line 1173 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->page_context_menu_path = NULL;
+#line 1174 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = (GtkViewport*) gtk_viewport_new (NULL, NULL);
+#line 1174 "/home/jens/Source/shotwell/src/Page.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1174 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->viewport = _tmp0_;
+#line 1175 "/home/jens/Source/shotwell/src/Page.vala"
+ self->anchor = NULL;
+#line 1176 "/home/jens/Source/shotwell/src/Page.vala"
+ self->cursor = NULL;
+#line 1177 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->highlighted = NULL;
+#line 1178 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->autoscroll_scheduled = FALSE;
+#line 1179 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->activated_item = NULL;
+#line 1180 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->previously_selected = NULL;
+#line 12472 "Page.c"
+}
+
+
+static void checkerboard_page_finalize (GObject* obj) {
+ CheckerboardPage * self;
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CHECKERBOARD_PAGE, CheckerboardPage);
+#line 1171 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->layout);
+#line 1172 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->item_context_menu_path);
+#line 1173 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (self->priv->page_context_menu_path);
+#line 1174 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->viewport);
+#line 1175 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->anchor);
+#line 1176 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->cursor);
+#line 1177 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->highlighted);
+#line 1179 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->activated_item);
+#line 1180 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->previously_selected);
+#line 1167 "/home/jens/Source/shotwell/src/Page.vala"
+ G_OBJECT_CLASS (checkerboard_page_parent_class)->finalize (obj);
+#line 12500 "Page.c"
+}
+
+
+GType checkerboard_page_get_type (void) {
+ static volatile gsize checkerboard_page_type_id__volatile = 0;
+ if (g_once_init_enter (&checkerboard_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CheckerboardPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) checkerboard_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CheckerboardPage), 0, (GInstanceInitFunc) checkerboard_page_instance_init, NULL };
+ GType checkerboard_page_type_id;
+ checkerboard_page_type_id = g_type_register_static (TYPE_PAGE, "CheckerboardPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&checkerboard_page_type_id__volatile, checkerboard_page_type_id);
+ }
+ return checkerboard_page_type_id__volatile;
+}
+
+
+GType single_photo_page_update_reason_get_type (void) {
+ static volatile gsize single_photo_page_update_reason_type_id__volatile = 0;
+ if (g_once_init_enter (&single_photo_page_update_reason_type_id__volatile)) {
+ static const GEnumValue values[] = {{SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF, "SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF", "new-pixbuf"}, {SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT, "SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT", "quality-improvement"}, {SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS, "SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS", "resized-canvas"}, {0, NULL, NULL}};
+ GType single_photo_page_update_reason_type_id;
+ single_photo_page_update_reason_type_id = g_enum_register_static ("SinglePhotoPageUpdateReason", values);
+ g_once_init_leave (&single_photo_page_update_reason_type_id__volatile, single_photo_page_update_reason_type_id);
+ }
+ return single_photo_page_update_reason_type_id__volatile;
+}
+
+
+static void _single_photo_page_on_viewport_resize_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self) {
+#line 1957 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_on_viewport_resize ((SinglePhotoPage*) self);
+#line 12531 "Page.c"
+}
+
+
+static gboolean _single_photo_page_on_canvas_exposed_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self) {
+ gboolean result;
+ result = single_photo_page_on_canvas_exposed ((SinglePhotoPage*) self, cr);
+#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 12540 "Page.c"
+}
+
+
+SinglePhotoPage* single_photo_page_construct (GType object_type, const gchar* page_name, gboolean scale_up_to_viewport) {
+ SinglePhotoPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ TransitionEffectsManager* _tmp2_ = NULL;
+ TransitionEffectsManager* _tmp3_ = NULL;
+ TransitionClock* _tmp4_ = NULL;
+ GtkViewport* _tmp5_ = NULL;
+ GtkViewport* _tmp6_ = NULL;
+ GtkViewport* _tmp7_ = NULL;
+ GtkDrawingArea* _tmp8_ = NULL;
+ GtkViewport* _tmp9_ = NULL;
+ GtkDrawingArea* _tmp10_ = NULL;
+ GtkViewport* _tmp11_ = NULL;
+ GtkDrawingArea* _tmp12_ = NULL;
+ GtkDrawingArea* _tmp13_ = NULL;
+#line 1934 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (page_name != NULL, NULL);
+#line 1935 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_name;
+#line 1935 "/home/jens/Source/shotwell/src/Page.vala"
+ self = (SinglePhotoPage*) page_construct (object_type, _tmp0_);
+#line 1937 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = scale_up_to_viewport;
+#line 1937 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scale_up_to_viewport = _tmp1_;
+#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = transition_effects_manager_get_instance ();
+#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = transition_effects_manager_create_null_transition_clock (_tmp3_);
+#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
+ _transition_clock_unref0 (self->priv->transition_clock);
+#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->transition_clock = _tmp4_;
+#line 1939 "/home/jens/Source/shotwell/src/Page.vala"
+ _transition_effects_manager_unref0 (_tmp3_);
+#line 1943 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_scrolled_window_set_policy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+#line 1945 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), (guint) 0);
+#line 1946 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_scrolled_window_set_shadow_type (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_SHADOW_NONE);
+#line 1948 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->viewport;
+#line 1948 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_viewport_set_shadow_type (_tmp5_, GTK_SHADOW_NONE);
+#line 1949 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->viewport;
+#line 1949 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), (guint) 0);
+#line 1950 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->viewport;
+#line 1950 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->canvas;
+#line 1950 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
+#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->viewport;
+#line 1952 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 1954 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->canvas;
+#line 1954 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), (gint) ((GDK_EXPOSURE_MASK | GDK_STRUCTURE_MASK) | GDK_SUBSTRUCTURE_MASK));
+#line 1957 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->viewport;
+#line 1957 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), "size-allocate", (GCallback) _single_photo_page_on_viewport_resize_gtk_widget_size_allocate, self, 0);
+#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->canvas;
+#line 1958 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), "draw", (GCallback) _single_photo_page_on_canvas_exposed_gtk_widget_draw, self, 0);
+#line 1960 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = self->canvas;
+#line 1960 "/home/jens/Source/shotwell/src/Page.vala"
+ page_set_event_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget));
+#line 1934 "/home/jens/Source/shotwell/src/Page.vala"
+ return self;
+#line 12624 "Page.c"
+}
+
+
+gboolean single_photo_page_is_transition_in_progress (SinglePhotoPage* self) {
+ gboolean result = FALSE;
+ TransitionClock* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 1963 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
+#line 1964 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->transition_clock;
+#line 1964 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = transition_clock_is_in_progress (_tmp0_);
+#line 1964 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 1964 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 12642 "Page.c"
+}
+
+
+void single_photo_page_cancel_transition (SinglePhotoPage* self) {
+ TransitionClock* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 1967 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 1968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->transition_clock;
+#line 1968 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = transition_clock_is_in_progress (_tmp0_);
+#line 1968 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_) {
+#line 12657 "Page.c"
+ TransitionClock* _tmp2_ = NULL;
+#line 1969 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->transition_clock;
+#line 1969 "/home/jens/Source/shotwell/src/Page.vala"
+ transition_clock_cancel (_tmp2_);
+#line 12663 "Page.c"
+ }
+}
+
+
+void single_photo_page_set_transition (SinglePhotoPage* self, const gchar* effect_id, gint duration_msec) {
+ TransitionEffectsManager* _tmp0_ = NULL;
+ TransitionEffectsManager* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ TransitionClock* _tmp3_ = NULL;
+ TransitionClock* _tmp4_ = NULL;
+ gint _tmp8_ = 0;
+#line 1972 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 1972 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (effect_id != NULL);
+#line 1973 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_cancel_transition (self);
+#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = transition_effects_manager_get_instance ();
+#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = effect_id;
+#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = transition_effects_manager_create_transition_clock (_tmp1_, _tmp2_);
+#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
+ _transition_clock_unref0 (self->priv->transition_clock);
+#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->transition_clock = _tmp3_;
+#line 1975 "/home/jens/Source/shotwell/src/Page.vala"
+ _transition_effects_manager_unref0 (_tmp1_);
+#line 1976 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->transition_clock;
+#line 1976 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_ == NULL) {
+#line 12699 "Page.c"
+ TransitionEffectsManager* _tmp5_ = NULL;
+ TransitionEffectsManager* _tmp6_ = NULL;
+ TransitionClock* _tmp7_ = NULL;
+#line 1977 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = transition_effects_manager_get_instance ();
+#line 1977 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 1977 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = transition_effects_manager_create_null_transition_clock (_tmp6_);
+#line 1977 "/home/jens/Source/shotwell/src/Page.vala"
+ _transition_clock_unref0 (self->priv->transition_clock);
+#line 1977 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->transition_clock = _tmp7_;
+#line 1977 "/home/jens/Source/shotwell/src/Page.vala"
+ _transition_effects_manager_unref0 (_tmp6_);
+#line 12715 "Page.c"
+ }
+#line 1979 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = duration_msec;
+#line 1979 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->transition_duration_msec = _tmp8_;
+#line 12721 "Page.c"
+}
+
+
+static void single_photo_page_render_zoomed_to_pixmap (SinglePhotoPage* self, ZoomState* zoom_state) {
+ gboolean _tmp0_ = FALSE;
+ GdkRectangle view_rect = {0};
+ GdkRectangle _tmp1_ = {0};
+ GdkPixbuf* zoomed = NULL;
+ ZoomBuffer* _tmp2_ = NULL;
+ ZoomBuffer* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GdkPixbuf* _tmp34_ = NULL;
+ gint draw_x = 0;
+ Dimensions _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ GdkRectangle _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint draw_y = 0;
+ Dimensions _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ GdkRectangle _tmp43_ = {0};
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ cairo_t* _tmp47_ = NULL;
+ GdkPixbuf* _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ cairo_t* _tmp51_ = NULL;
+#line 1983 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 1983 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (zoom_state != NULL);
+#line 1984 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = single_photo_page_is_zoom_supported (self);
+#line 1984 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_, "is_zoom_supported()");
+#line 1986 "/home/jens/Source/shotwell/src/Page.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (zoom_state, &_tmp1_);
+#line 1986 "/home/jens/Source/shotwell/src/Page.vala"
+ view_rect = _tmp1_;
+#line 1989 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = single_photo_page_get_zoom_buffer (self);
+#line 1989 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 1989 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_ != NULL;
+#line 1989 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1989 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_) {
+#line 12775 "Page.c"
+ GdkPixbuf* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GdkPixbuf* _tmp15_ = NULL;
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->zoom_high_quality;
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_) {
+#line 12783 "Page.c"
+ ZoomBuffer* _tmp7_ = NULL;
+ ZoomBuffer* _tmp8_ = NULL;
+ ZoomState _tmp9_ = {0};
+ GdkPixbuf* _tmp10_ = NULL;
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = single_photo_page_get_zoom_buffer (self);
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = *zoom_state;
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = zoom_buffer_get_zoomed_image (_tmp8_, &_tmp9_);
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp10_;
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp8_);
+#line 12802 "Page.c"
+ } else {
+ ZoomBuffer* _tmp11_ = NULL;
+ ZoomBuffer* _tmp12_ = NULL;
+ ZoomState _tmp13_ = {0};
+ GdkPixbuf* _tmp14_ = NULL;
+#line 1991 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = single_photo_page_get_zoom_buffer (self);
+#line 1991 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = _tmp11_;
+#line 1991 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = *zoom_state;
+#line 1991 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = zoom_buffer_get_zoom_preview_image (_tmp12_, &_tmp13_);
+#line 1991 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1991 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp14_;
+#line 1991 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp12_);
+#line 12822 "Page.c"
+ }
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _g_object_ref0 (_tmp5_);
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (zoomed);
+#line 1990 "/home/jens/Source/shotwell/src/Page.vala"
+ zoomed = _tmp15_;
+#line 1989 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp5_);
+#line 12832 "Page.c"
+ } else {
+ GdkRectangle view_rect_proj = {0};
+ GdkPixbuf* _tmp16_ = NULL;
+ GdkRectangle _tmp17_ = {0};
+ GdkPixbuf* proj_subpixbuf = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ GdkRectangle _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ GdkRectangle _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ GdkRectangle _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ GdkPixbuf* _tmp27_ = NULL;
+ GdkPixbuf* _tmp28_ = NULL;
+ GdkRectangle _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ GdkRectangle _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ GdkPixbuf* _tmp33_ = NULL;
+#line 1993 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = self->priv->unscaled;
+#line 1993 "/home/jens/Source/shotwell/src/Page.vala"
+ zoom_state_get_viewing_rectangle_projection (zoom_state, _tmp16_, &_tmp17_);
+#line 1993 "/home/jens/Source/shotwell/src/Page.vala"
+ view_rect_proj = _tmp17_;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = self->priv->unscaled;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = view_rect_proj;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp19_.x;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = view_rect_proj;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = _tmp21_.y;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = view_rect_proj;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = _tmp23_.width;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = view_rect_proj;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = _tmp25_.height;
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = gdk_pixbuf_new_subpixbuf (_tmp18_, _tmp20_, _tmp22_, _tmp24_, _tmp26_);
+#line 1995 "/home/jens/Source/shotwell/src/Page.vala"
+ proj_subpixbuf = _tmp27_;
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = proj_subpixbuf;
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = view_rect;
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = _tmp29_.width;
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = view_rect;
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = _tmp31_.height;
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = gdk_pixbuf_scale_simple (_tmp28_, _tmp30_, _tmp32_, GDK_INTERP_BILINEAR);
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (zoomed);
+#line 1998 "/home/jens/Source/shotwell/src/Page.vala"
+ zoomed = _tmp33_;
+#line 1989 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (proj_subpixbuf);
+#line 12900 "Page.c"
+ }
+#line 2002 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = zoomed;
+#line 2002 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp34_ == NULL) {
+#line 2003 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (zoomed);
+#line 2003 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 12910 "Page.c"
+ }
+#line 2006 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = self->priv->pixmap_dim;
+#line 2006 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = _tmp35_.width;
+#line 2006 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = view_rect;
+#line 2006 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = _tmp37_.width;
+#line 2006 "/home/jens/Source/shotwell/src/Page.vala"
+ draw_x = (_tmp36_ - _tmp38_) / 2;
+#line 2007 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = draw_x;
+#line 2007 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = CLAMP (_tmp39_, 0, G_MAXINT);
+#line 2007 "/home/jens/Source/shotwell/src/Page.vala"
+ draw_x = _tmp40_;
+#line 2009 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = self->priv->pixmap_dim;
+#line 2009 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = _tmp41_.height;
+#line 2009 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = view_rect;
+#line 2009 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = _tmp43_.height;
+#line 2009 "/home/jens/Source/shotwell/src/Page.vala"
+ draw_y = (_tmp42_ - _tmp44_) / 2;
+#line 2010 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = draw_y;
+#line 2010 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = CLAMP (_tmp45_, 0, G_MAXINT);
+#line 2010 "/home/jens/Source/shotwell/src/Page.vala"
+ draw_y = _tmp46_;
+#line 2012 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = self->priv->pixmap_ctx;
+#line 2012 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = zoomed;
+#line 2012 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = draw_x;
+#line 2012 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp50_ = draw_y;
+#line 2012 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_cairo_set_source_pixbuf (_tmp47_, _tmp48_, (gdouble) _tmp49_, (gdouble) _tmp50_);
+#line 2013 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp51_ = self->priv->pixmap_ctx;
+#line 2013 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_paint (_tmp51_);
+#line 1983 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (zoomed);
+#line 12960 "Page.c"
+}
+
+
+void single_photo_page_on_interactive_zoom (SinglePhotoPage* self, ZoomState* interactive_zoom_state) {
+ gboolean _tmp0_ = FALSE;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ gboolean old_quality_setting = FALSE;
+ gboolean _tmp3_ = FALSE;
+ ZoomState _tmp4_ = {0};
+ GtkDrawingArea* _tmp5_ = NULL;
+#line 2016 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2016 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (interactive_zoom_state != NULL);
+#line 2017 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = single_photo_page_is_zoom_supported (self);
+#line 2017 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_, "is_zoom_supported()");
+#line 2019 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->pixmap_ctx;
+#line 2019 "/home/jens/Source/shotwell/src/Page.vala"
+ set_source_color_from_string (_tmp1_, "#000");
+#line 2020 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->pixmap_ctx;
+#line 2020 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_paint (_tmp2_);
+#line 2022 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->zoom_high_quality;
+#line 2022 "/home/jens/Source/shotwell/src/Page.vala"
+ old_quality_setting = _tmp3_;
+#line 2023 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->zoom_high_quality = FALSE;
+#line 2024 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = *interactive_zoom_state;
+#line 2024 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_render_zoomed_to_pixmap (self, &_tmp4_);
+#line 2025 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->zoom_high_quality = old_quality_setting;
+#line 2027 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->canvas;
+#line 2027 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 13004 "Page.c"
+}
+
+
+void single_photo_page_on_interactive_pan (SinglePhotoPage* self, ZoomState* interactive_zoom_state) {
+ gboolean _tmp0_ = FALSE;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ gboolean old_quality_setting = FALSE;
+ gboolean _tmp3_ = FALSE;
+ ZoomState _tmp4_ = {0};
+ GtkDrawingArea* _tmp5_ = NULL;
+#line 2030 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2030 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (interactive_zoom_state != NULL);
+#line 2031 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = single_photo_page_is_zoom_supported (self);
+#line 2031 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_, "is_zoom_supported()");
+#line 2033 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->pixmap_ctx;
+#line 2033 "/home/jens/Source/shotwell/src/Page.vala"
+ set_source_color_from_string (_tmp1_, "#000");
+#line 2034 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->pixmap_ctx;
+#line 2034 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_paint (_tmp2_);
+#line 2036 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->zoom_high_quality;
+#line 2036 "/home/jens/Source/shotwell/src/Page.vala"
+ old_quality_setting = _tmp3_;
+#line 2037 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->zoom_high_quality = TRUE;
+#line 2038 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = *interactive_zoom_state;
+#line 2038 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_render_zoomed_to_pixmap (self, &_tmp4_);
+#line 2039 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->zoom_high_quality = old_quality_setting;
+#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->canvas;
+#line 2041 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_queue_draw (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 13048 "Page.c"
+}
+
+
+static gboolean single_photo_page_real_is_zoom_supported (SinglePhotoPage* self) {
+ gboolean result = FALSE;
+#line 2045 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 2045 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13058 "Page.c"
+}
+
+
+gboolean single_photo_page_is_zoom_supported (SinglePhotoPage* self) {
+#line 2044 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
+#line 2044 "/home/jens/Source/shotwell/src/Page.vala"
+ return SINGLE_PHOTO_PAGE_GET_CLASS (self)->is_zoom_supported (self);
+#line 13067 "Page.c"
+}
+
+
+static void single_photo_page_real_cancel_zoom (SinglePhotoPage* self) {
+ cairo_surface_t* _tmp0_ = NULL;
+#line 2049 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->pixmap;
+#line 2049 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != NULL) {
+#line 13077 "Page.c"
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+#line 2050 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->pixmap_ctx;
+#line 2050 "/home/jens/Source/shotwell/src/Page.vala"
+ set_source_color_from_string (_tmp1_, "#000");
+#line 2051 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->pixmap_ctx;
+#line 2051 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_paint (_tmp2_);
+#line 13088 "Page.c"
+ }
+}
+
+
+void single_photo_page_cancel_zoom (SinglePhotoPage* self) {
+#line 2048 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2048 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->cancel_zoom (self);
+#line 13098 "Page.c"
+}
+
+
+static void single_photo_page_real_save_zoom_state (SinglePhotoPage* self) {
+ ZoomState _tmp0_ = {0};
+#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->static_zoom_state;
+#line 2056 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->saved_zoom_state = _tmp0_;
+#line 2057 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->has_saved_zoom_state = TRUE;
+#line 13110 "Page.c"
+}
+
+
+void single_photo_page_save_zoom_state (SinglePhotoPage* self) {
+#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2055 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->save_zoom_state (self);
+#line 13119 "Page.c"
+}
+
+
+static void single_photo_page_real_restore_zoom_state (SinglePhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ ZoomState _tmp1_ = {0};
+#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->has_saved_zoom_state;
+#line 2061 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp0_) {
+#line 2062 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 13132 "Page.c"
+ }
+#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->saved_zoom_state;
+#line 2064 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->static_zoom_state = _tmp1_;
+#line 2065 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_repaint (self, NULL);
+#line 2066 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->has_saved_zoom_state = FALSE;
+#line 13142 "Page.c"
+}
+
+
+void single_photo_page_restore_zoom_state (SinglePhotoPage* self) {
+#line 2060 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2060 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->restore_zoom_state (self);
+#line 13151 "Page.c"
+}
+
+
+static ZoomBuffer* single_photo_page_real_get_zoom_buffer (SinglePhotoPage* self) {
+ ZoomBuffer* result = NULL;
+#line 2070 "/home/jens/Source/shotwell/src/Page.vala"
+ result = NULL;
+#line 2070 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13161 "Page.c"
+}
+
+
+ZoomBuffer* single_photo_page_get_zoom_buffer (SinglePhotoPage* self) {
+#line 2069 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
+#line 2069 "/home/jens/Source/shotwell/src/Page.vala"
+ return SINGLE_PHOTO_PAGE_GET_CLASS (self)->get_zoom_buffer (self);
+#line 13170 "Page.c"
+}
+
+
+void single_photo_page_get_saved_zoom_state (SinglePhotoPage* self, ZoomState* result) {
+ ZoomState _tmp0_ = {0};
+#line 2073 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2074 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->saved_zoom_state;
+#line 2074 "/home/jens/Source/shotwell/src/Page.vala"
+ *result = _tmp0_;
+#line 2074 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 13184 "Page.c"
+}
+
+
+void single_photo_page_set_zoom_state (SinglePhotoPage* self, ZoomState* zoom_state) {
+ gboolean _tmp0_ = FALSE;
+ ZoomState _tmp1_ = {0};
+#line 2077 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2077 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (zoom_state != NULL);
+#line 2078 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = single_photo_page_is_zoom_supported (self);
+#line 2078 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_, "is_zoom_supported()");
+#line 2080 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = *zoom_state;
+#line 2080 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->static_zoom_state = _tmp1_;
+#line 13203 "Page.c"
+}
+
+
+void single_photo_page_get_zoom_state (SinglePhotoPage* self, ZoomState* result) {
+ gboolean _tmp0_ = FALSE;
+ ZoomState _tmp1_ = {0};
+#line 2083 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2084 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = single_photo_page_is_zoom_supported (self);
+#line 2084 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_, "is_zoom_supported()");
+#line 2086 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->static_zoom_state;
+#line 2086 "/home/jens/Source/shotwell/src/Page.vala"
+ *result = _tmp1_;
+#line 2086 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 13222 "Page.c"
+}
+
+
+static void single_photo_page_real_switched_to (Page* base) {
+ SinglePhotoPage * self;
+ GdkPixbuf* _tmp0_ = NULL;
+#line 2089 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
+#line 2090 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_CLASS (single_photo_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2092 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->unscaled;
+#line 2092 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != NULL) {
+#line 2093 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_repaint (self, NULL);
+#line 13239 "Page.c"
+ }
+}
+
+
+static void single_photo_page_real_set_container (Page* base, GtkWindow* container) {
+ SinglePhotoPage * self;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+#line 2096 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
+#line 2096 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GTK_IS_WINDOW (container));
+#line 2097 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = container;
+#line 2097 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_CLASS (single_photo_page_parent_class)->set_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp0_);
+#line 2101 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = container;
+#line 2101 "/home/jens/Source/shotwell/src/Page.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_FULLSCREEN_WINDOW)) {
+#line 2102 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_scrolled_window_set_policy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_scrolled_window_get_type (), GtkScrolledWindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+#line 13262 "Page.c"
+ }
+}
+
+
+void single_photo_page_set_pixbuf (SinglePhotoPage* self, GdkPixbuf* unscaled, Dimensions* max_dim, Direction* direction) {
+ Dimensions _tmp0_ = {0};
+ Dimensions _tmp1_ = {0};
+ gdouble _tmp2_ = 0.0;
+ GdkPoint _tmp3_ = {0};
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ Dimensions _tmp6_ = {0};
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ GtkDrawingArea* _tmp9_ = NULL;
+ Direction* _tmp10_ = NULL;
+#line 2109 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2109 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (unscaled));
+#line 2109 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (max_dim != NULL);
+#line 2110 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = *max_dim;
+#line 2110 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->pixmap_dim;
+#line 2110 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = zoom_state_get_interpolation_factor (&self->priv->static_zoom_state);
+#line 2110 "/home/jens/Source/shotwell/src/Page.vala"
+ zoom_state_get_viewport_center (&self->priv->static_zoom_state, &_tmp3_);
+#line 2110 "/home/jens/Source/shotwell/src/Page.vala"
+ zoom_state_init (&self->priv->static_zoom_state, &_tmp0_, &_tmp1_, _tmp2_, &_tmp3_);
+#line 2114 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_cancel_transition (self);
+#line 2116 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = unscaled;
+#line 2116 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 2116 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->unscaled);
+#line 2116 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->unscaled = _tmp5_;
+#line 2117 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = *max_dim;
+#line 2117 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->max_dim = _tmp6_;
+#line 2118 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->scaled;
+#line 2118 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 2118 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->old_scaled);
+#line 2118 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->old_scaled = _tmp8_;
+#line 2119 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->scaled);
+#line 2119 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled = NULL;
+#line 2122 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->canvas;
+#line 2122 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_realize (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 2124 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = direction;
+#line 2124 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_repaint (self, _tmp10_);
+#line 13329 "Page.c"
+}
+
+
+void single_photo_page_blank_display (SinglePhotoPage* self) {
+ GtkDrawingArea* _tmp0_ = NULL;
+#line 2127 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2128 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->unscaled);
+#line 2128 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->unscaled = NULL;
+#line 2129 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_init (&self->priv->max_dim, 0, 0);
+#line 2130 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->scaled);
+#line 2130 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled = NULL;
+#line 2131 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_surface_destroy0 (self->priv->pixmap);
+#line 2131 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->pixmap = NULL;
+#line 2134 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->canvas;
+#line 2134 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_realize (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 2137 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_invalidate_all (self);
+#line 13357 "Page.c"
+}
+
+
+static gpointer _cairo_surface_reference0 (gpointer self) {
+#line 2141 "/home/jens/Source/shotwell/src/Page.vala"
+ return self ? cairo_surface_reference (self) : NULL;
+#line 13364 "Page.c"
+}
+
+
+cairo_surface_t* single_photo_page_get_surface (SinglePhotoPage* self) {
+ cairo_surface_t* result = NULL;
+ cairo_surface_t* _tmp0_ = NULL;
+ cairo_surface_t* _tmp1_ = NULL;
+#line 2140 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
+#line 2141 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->pixmap;
+#line 2141 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _cairo_surface_reference0 (_tmp0_);
+#line 2141 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 2141 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13382 "Page.c"
+}
+
+
+void single_photo_page_get_surface_dim (SinglePhotoPage* self, Dimensions* result) {
+ Dimensions _tmp0_ = {0};
+#line 2144 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2145 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->pixmap_dim;
+#line 2145 "/home/jens/Source/shotwell/src/Page.vala"
+ *result = _tmp0_;
+#line 2145 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 13396 "Page.c"
+}
+
+
+static gpointer _cairo_reference0 (gpointer self) {
+#line 2149 "/home/jens/Source/shotwell/src/Page.vala"
+ return self ? cairo_reference (self) : NULL;
+#line 13403 "Page.c"
+}
+
+
+cairo_t* single_photo_page_get_cairo_context (SinglePhotoPage* self) {
+ cairo_t* result = NULL;
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+#line 2148 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
+#line 2149 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->pixmap_ctx;
+#line 2149 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _cairo_reference0 (_tmp0_);
+#line 2149 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 2149 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13421 "Page.c"
+}
+
+
+void single_photo_page_paint_text (SinglePhotoPage* self, PangoLayout* pango_layout, gint x, gint y) {
+ cairo_t* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ cairo_t* _tmp3_ = NULL;
+ PangoLayout* _tmp4_ = NULL;
+#line 2152 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2152 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (PANGO_IS_LAYOUT (pango_layout));
+#line 2153 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->text_ctx;
+#line 2153 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = x;
+#line 2153 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = y;
+#line 2153 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_move_to (_tmp0_, (gdouble) _tmp1_, (gdouble) _tmp2_);
+#line 2154 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->text_ctx;
+#line 2154 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = pango_layout;
+#line 2154 "/home/jens/Source/shotwell/src/Page.vala"
+ pango_cairo_show_layout (_tmp3_, _tmp4_);
+#line 13449 "Page.c"
+}
+
+
+void single_photo_page_get_canvas_scaling (SinglePhotoPage* self, Scaling* result) {
+ Scaling _tmp0_ = {0};
+ GtkWindow* _tmp1_ = NULL;
+ GtkWindow* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 2157 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_FULLSCREEN_WINDOW);
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_) {
+#line 13470 "Page.c"
+ GtkWindow* _tmp4_ = NULL;
+ GtkWindow* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ Scaling _tmp7_ = {0};
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->scale_up_to_viewport;
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ scaling_for_screen (_tmp5_, _tmp6_, &_tmp7_);
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _tmp7_;
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp5_);
+#line 13487 "Page.c"
+ } else {
+ GtkViewport* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ Scaling _tmp10_ = {0};
+#line 2159 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->viewport;
+#line 2159 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = self->priv->scale_up_to_viewport;
+#line 2159 "/home/jens/Source/shotwell/src/Page.vala"
+ scaling_for_widget (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), _tmp9_, &_tmp10_);
+#line 2159 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = _tmp10_;
+#line 13500 "Page.c"
+ }
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ *result = _tmp0_;
+#line 2158 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 13506 "Page.c"
+}
+
+
+GdkPixbuf* single_photo_page_get_unscaled_pixbuf (SinglePhotoPage* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 2162 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
+#line 2163 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->unscaled;
+#line 2163 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 2163 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 2163 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13524 "Page.c"
+}
+
+
+GdkPixbuf* single_photo_page_get_scaled_pixbuf (SinglePhotoPage* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 2166 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), NULL);
+#line 2167 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->scaled;
+#line 2167 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 2167 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp1_;
+#line 2167 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13542 "Page.c"
+}
+
+
+void single_photo_page_get_scaled_pixbuf_position (SinglePhotoPage* self, GdkRectangle* result) {
+ GdkRectangle _tmp0_ = {0};
+#line 2171 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2172 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->scaled_pos;
+#line 2172 "/home/jens/Source/shotwell/src/Page.vala"
+ *result = _tmp0_;
+#line 2172 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 13556 "Page.c"
+}
+
+
+gboolean single_photo_page_is_inside_pixbuf (SinglePhotoPage* self, gint x, gint y) {
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+#line 2175 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
+#line 2176 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = x;
+#line 2176 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = y;
+#line 2176 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->scaled_pos;
+#line 2176 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = coord_in_rectangle (_tmp0_, _tmp1_, &_tmp2_);
+#line 2176 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp3_;
+#line 2176 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13580 "Page.c"
+}
+
+
+void single_photo_page_invalidate (SinglePhotoPage* self, GdkRectangle* rect) {
+ GtkDrawingArea* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+#line 2179 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2179 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 2180 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->canvas;
+#line 2180 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 2180 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_ != NULL) {
+#line 13597 "Page.c"
+ GtkDrawingArea* _tmp2_ = NULL;
+ GdkWindow* _tmp3_ = NULL;
+ GdkRectangle _tmp4_ = {0};
+#line 2181 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->canvas;
+#line 2181 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 2181 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = *rect;
+#line 2181 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_window_invalidate_rect (_tmp3_, &_tmp4_, FALSE);
+#line 13609 "Page.c"
+ }
+}
+
+
+void single_photo_page_invalidate_all (SinglePhotoPage* self) {
+ GtkDrawingArea* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+#line 2184 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2185 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->canvas;
+#line 2185 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 2185 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_ != NULL) {
+#line 13625 "Page.c"
+ GtkDrawingArea* _tmp2_ = NULL;
+ GdkWindow* _tmp3_ = NULL;
+#line 2186 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->canvas;
+#line 2186 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 2186 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_window_invalidate_rect (_tmp3_, NULL, FALSE);
+#line 13634 "Page.c"
+ }
+}
+
+
+static void single_photo_page_on_viewport_resize (SinglePhotoPage* self) {
+#line 2189 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2191 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_internal_repaint (self, TRUE, NULL);
+#line 13644 "Page.c"
+}
+
+
+static void single_photo_page_real_on_resize_finished (Page* base, GdkRectangle* rect) {
+ SinglePhotoPage * self;
+ GdkRectangle _tmp0_ = {0};
+#line 2194 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
+#line 2194 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (rect != NULL);
+#line 2195 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = *rect;
+#line 2195 "/home/jens/Source/shotwell/src/Page.vala"
+ PAGE_CLASS (single_photo_page_parent_class)->on_resize_finished (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), &_tmp0_);
+#line 2198 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_repaint (self, NULL);
+#line 13661 "Page.c"
+}
+
+
+static gboolean single_photo_page_on_canvas_exposed (SinglePhotoPage* self, cairo_t* exposed_ctx) {
+ gboolean result = FALSE;
+ cairo_surface_t* _tmp0_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ cairo_t* _tmp7_ = NULL;
+#line 2201 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (self), FALSE);
+#line 2201 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (exposed_ctx != NULL, FALSE);
+#line 2204 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->pixmap;
+#line 2204 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != NULL) {
+#line 13680 "Page.c"
+ cairo_t* _tmp1_ = NULL;
+ cairo_surface_t* _tmp2_ = NULL;
+#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = exposed_ctx;
+#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->pixmap;
+#line 2205 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_set_source_surface (_tmp1_, _tmp2_, (gdouble) 0, (gdouble) 0);
+#line 13689 "Page.c"
+ } else {
+ cairo_t* _tmp3_ = NULL;
+#line 2207 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = exposed_ctx;
+#line 2207 "/home/jens/Source/shotwell/src/Page.vala"
+ set_source_color_from_string (_tmp3_, "#000");
+#line 13696 "Page.c"
+ }
+#line 2209 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = exposed_ctx;
+#line 2209 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gtk_widget_get_allocated_width (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 2209 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = gtk_widget_get_allocated_height (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 2209 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_rectangle (_tmp4_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp5_, (gdouble) _tmp6_);
+#line 2210 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = exposed_ctx;
+#line 2210 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_paint (_tmp7_);
+#line 2212 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 2212 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 13714 "Page.c"
+}
+
+
+static void single_photo_page_real_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
+#line 2215 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (ctx != NULL);
+#line 2215 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (ctx_dim != NULL);
+#line 13723 "Page.c"
+}
+
+
+void single_photo_page_new_surface (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
+#line 2215 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2215 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->new_surface (self, ctx, ctx_dim);
+#line 13732 "Page.c"
+}
+
+
+static void single_photo_page_real_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim) {
+#line 2218 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 2218 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (old_dim != NULL);
+#line 13741 "Page.c"
+}
+
+
+void single_photo_page_updated_pixbuf (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim) {
+#line 2218 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2218 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->updated_pixbuf (self, pixbuf, reason, old_dim);
+#line 13750 "Page.c"
+}
+
+
+static void single_photo_page_real_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 2221 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (ctx != NULL);
+#line 2221 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (ctx_dim != NULL);
+#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = single_photo_page_is_zoom_supported (self);
+#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_) {
+#line 13765 "Page.c"
+ gboolean _tmp2_ = FALSE;
+#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = zoom_state_is_default (&self->priv->static_zoom_state);
+#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = !_tmp2_;
+#line 13771 "Page.c"
+ } else {
+#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = FALSE;
+#line 13775 "Page.c"
+ }
+#line 2222 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_) {
+#line 13779 "Page.c"
+ cairo_t* _tmp3_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ cairo_t* _tmp9_ = NULL;
+ ZoomState _tmp10_ = {0};
+#line 2223 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = ctx;
+#line 2223 "/home/jens/Source/shotwell/src/Page.vala"
+ set_source_color_from_string (_tmp3_, "#000");
+#line 2224 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = ctx;
+#line 2224 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->pixmap_dim;
+#line 2224 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_.width;
+#line 2224 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->pixmap_dim;
+#line 2224 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_.height;
+#line 2224 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_rectangle (_tmp4_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp6_, (gdouble) _tmp8_);
+#line 2225 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = ctx;
+#line 2225 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_fill (_tmp9_);
+#line 2227 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->priv->static_zoom_state;
+#line 2227 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_render_zoomed_to_pixmap (self, &_tmp10_);
+#line 13812 "Page.c"
+ } else {
+ TransitionClock* _tmp11_ = NULL;
+ cairo_t* _tmp12_ = NULL;
+ Dimensions _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gboolean _tmp17_ = FALSE;
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->priv->transition_clock;
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = ctx;
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = *ctx_dim;
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _tmp13_.width;
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = *ctx_dim;
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp15_.height;
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = transition_clock_paint (_tmp11_, _tmp12_, _tmp14_, _tmp16_);
+#line 2228 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp17_) {
+#line 13837 "Page.c"
+ cairo_t* _tmp18_ = NULL;
+ cairo_t* _tmp19_ = NULL;
+ Dimensions _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ cairo_t* _tmp24_ = NULL;
+ cairo_t* _tmp25_ = NULL;
+ GdkPixbuf* _tmp26_ = NULL;
+ GdkRectangle _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GdkRectangle _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ cairo_t* _tmp31_ = NULL;
+#line 2230 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = ctx;
+#line 2230 "/home/jens/Source/shotwell/src/Page.vala"
+ set_source_color_from_string (_tmp18_, "#000");
+#line 2232 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = ctx;
+#line 2232 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = self->priv->pixmap_dim;
+#line 2232 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = _tmp20_.width;
+#line 2232 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = self->priv->pixmap_dim;
+#line 2232 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = _tmp22_.height;
+#line 2232 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_rectangle (_tmp19_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp21_, (gdouble) _tmp23_);
+#line 2233 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = ctx;
+#line 2233 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_fill (_tmp24_);
+#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = ctx;
+#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = self->priv->scaled;
+#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = self->priv->scaled_pos;
+#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = _tmp27_.x;
+#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = self->priv->scaled_pos;
+#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = _tmp29_.y;
+#line 2235 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_cairo_set_source_pixbuf (_tmp25_, _tmp26_, (gdouble) _tmp28_, (gdouble) _tmp30_);
+#line 2236 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = ctx;
+#line 2236 "/home/jens/Source/shotwell/src/Page.vala"
+ cairo_paint (_tmp31_);
+#line 13890 "Page.c"
+ }
+ }
+}
+
+
+void single_photo_page_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
+#line 2221 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2221 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->paint (self, ctx, ctx_dim);
+#line 13901 "Page.c"
+}
+
+
+static void single_photo_page_repaint_pixmap (SinglePhotoPage* self) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+#line 2240 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2241 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->pixmap_ctx;
+#line 2241 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ == NULL) {
+#line 2242 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 13917 "Page.c"
+ }
+#line 2244 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->pixmap_ctx;
+#line 2244 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->pixmap_dim;
+#line 2244 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_paint (self, _tmp1_, &_tmp2_);
+#line 2245 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_invalidate_all (self);
+#line 13927 "Page.c"
+}
+
+
+void single_photo_page_repaint (SinglePhotoPage* self, Direction* direction) {
+ Direction* _tmp0_ = NULL;
+#line 2248 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2249 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = direction;
+#line 2249 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_internal_repaint (self, FALSE, _tmp0_);
+#line 13939 "Page.c"
+}
+
+
+static void _single_photo_page_repaint_pixmap_transition_clock_repaint_callback (gpointer self) {
+#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_repaint_pixmap ((SinglePhotoPage*) self);
+#line 13946 "Page.c"
+}
+
+
+static void single_photo_page_internal_repaint (SinglePhotoPage* self, gboolean fast, Direction* direction) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkPixbuf* _tmp2_ = NULL;
+ GtkAllocation allocation = {0};
+ GtkViewport* _tmp5_ = NULL;
+ GtkAllocation _tmp6_ = {0};
+ gint width = 0;
+ GtkAllocation _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint height = 0;
+ GtkAllocation _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ gint _tmp12_ = 0;
+ gboolean new_pixbuf = FALSE;
+ GdkPixbuf* _tmp14_ = NULL;
+ Dimensions old_scaled_dim = {0};
+ GdkRectangle _tmp15_ = {0};
+ Dimensions _tmp16_ = {0};
+ GdkRectangle old_scaled_pos = {0};
+ GdkRectangle _tmp17_ = {0};
+ gboolean _tmp18_ = FALSE;
+ Dimensions _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gboolean new_pixmap = FALSE;
+ cairo_surface_t* _tmp25_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ GdkInterpType _tmp63_ = 0;
+ gboolean _tmp64_ = FALSE;
+ GdkInterpType interp = 0;
+ GdkPixbuf* _tmp65_ = NULL;
+ gboolean _tmp82_ = FALSE;
+ gboolean _tmp83_ = FALSE;
+ Direction* _tmp84_ = NULL;
+ TransitionClock* _tmp98_ = NULL;
+ gboolean _tmp99_ = FALSE;
+#line 2252 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2254 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2254 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp0_) {
+#line 2255 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_surface_destroy0 (self->priv->pixmap);
+#line 2255 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->pixmap = NULL;
+#line 2256 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->scaled);
+#line 2256 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled = NULL;
+#line 2258 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 14005 "Page.c"
+ }
+#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->unscaled;
+#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp2_ == NULL) {
+#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = TRUE;
+#line 14013 "Page.c"
+ } else {
+ GtkDrawingArea* _tmp3_ = NULL;
+ GdkWindow* _tmp4_ = NULL;
+#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->canvas;
+#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp4_ == NULL;
+#line 14023 "Page.c"
+ }
+#line 2262 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp1_) {
+#line 2263 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 14029 "Page.c"
+ }
+#line 2266 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->viewport;
+#line 2266 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), &_tmp6_);
+#line 2266 "/home/jens/Source/shotwell/src/Page.vala"
+ allocation = _tmp6_;
+#line 2268 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = allocation;
+#line 2268 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_.width;
+#line 2268 "/home/jens/Source/shotwell/src/Page.vala"
+ width = _tmp8_;
+#line 2269 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = allocation;
+#line 2269 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = _tmp9_.height;
+#line 2269 "/home/jens/Source/shotwell/src/Page.vala"
+ height = _tmp10_;
+#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = width;
+#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp12_ <= 0) {
+#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = TRUE;
+#line 14055 "Page.c"
+ } else {
+ gint _tmp13_ = 0;
+#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = height;
+#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp13_ <= 0;
+#line 14062 "Page.c"
+ }
+#line 2271 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp11_) {
+#line 2272 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 14068 "Page.c"
+ }
+#line 2274 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = self->priv->scaled;
+#line 2274 "/home/jens/Source/shotwell/src/Page.vala"
+ new_pixbuf = _tmp14_ == NULL;
+#line 2277 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = self->priv->scaled_pos;
+#line 2277 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_for_rectangle (&_tmp15_, &_tmp16_);
+#line 2277 "/home/jens/Source/shotwell/src/Page.vala"
+ old_scaled_dim = _tmp16_;
+#line 2278 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = self->priv->scaled_pos;
+#line 2278 "/home/jens/Source/shotwell/src/Page.vala"
+ old_scaled_pos = _tmp17_;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = self->priv->pixmap_dim;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = _tmp19_.width;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = width;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp20_ != _tmp21_) {
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = TRUE;
+#line 14094 "Page.c"
+ } else {
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = self->priv->pixmap_dim;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = _tmp22_.height;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = height;
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = _tmp23_ != _tmp24_;
+#line 14107 "Page.c"
+ }
+#line 2281 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp18_) {
+#line 2282 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_surface_destroy0 (self->priv->pixmap);
+#line 2282 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->pixmap = NULL;
+#line 14115 "Page.c"
+ }
+#line 2285 "/home/jens/Source/shotwell/src/Page.vala"
+ new_pixmap = FALSE;
+#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = self->priv->pixmap;
+#line 2286 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp25_ == NULL) {
+#line 14123 "Page.c"
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 2287 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = width;
+#line 2287 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = height;
+#line 2287 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_init_pixmap (self, _tmp26_, _tmp27_);
+#line 2288 "/home/jens/Source/shotwell/src/Page.vala"
+ new_pixmap = TRUE;
+#line 14134 "Page.c"
+ }
+#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = new_pixbuf;
+#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp29_) {
+#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = TRUE;
+#line 14142 "Page.c"
+ } else {
+ gboolean _tmp30_ = FALSE;
+#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = new_pixmap;
+#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = _tmp30_;
+#line 14149 "Page.c"
+ }
+#line 2291 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp28_) {
+#line 14153 "Page.c"
+ Dimensions unscaled_dim = {0};
+ GdkPixbuf* _tmp31_ = NULL;
+ Dimensions _tmp32_ = {0};
+ Dimensions scaled_dim = {0};
+ gboolean _tmp33_ = FALSE;
+ gboolean _tmp34_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ gboolean _tmp36_ = FALSE;
+ gint _tmp47_ = 0;
+ Dimensions _tmp48_ = {0};
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ Dimensions _tmp51_ = {0};
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ Dimensions _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+ Dimensions _tmp57_ = {0};
+ gint _tmp58_ = 0;
+ Dimensions _tmp59_ = {0};
+ gint _tmp60_ = 0;
+ Dimensions _tmp61_ = {0};
+ gint _tmp62_ = 0;
+#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = self->priv->unscaled;
+#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_for_pixbuf (_tmp31_, &_tmp32_);
+#line 2292 "/home/jens/Source/shotwell/src/Page.vala"
+ unscaled_dim = _tmp32_;
+#line 2296 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_init (&scaled_dim, 0, 0);
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = self->priv->scale_up_to_viewport;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp36_) {
+#line 14190 "Page.c"
+ gboolean _tmp37_ = FALSE;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = dimensions_has_area (&self->priv->max_dim);
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = _tmp37_;
+#line 14196 "Page.c"
+ } else {
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = FALSE;
+#line 14200 "Page.c"
+ }
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp35_) {
+#line 14204 "Page.c"
+ Dimensions _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = self->priv->max_dim;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = _tmp38_.width;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = width;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = _tmp39_ < _tmp40_;
+#line 14216 "Page.c"
+ } else {
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = FALSE;
+#line 14220 "Page.c"
+ }
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp34_) {
+#line 14224 "Page.c"
+ Dimensions _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = self->priv->max_dim;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = _tmp41_.height;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = height;
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = _tmp42_ < _tmp43_;
+#line 14236 "Page.c"
+ } else {
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = FALSE;
+#line 14240 "Page.c"
+ }
+#line 2297 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp33_) {
+#line 14244 "Page.c"
+ Dimensions _tmp44_ = {0};
+#line 2298 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp44_ = self->priv->max_dim;
+#line 2298 "/home/jens/Source/shotwell/src/Page.vala"
+ scaled_dim = _tmp44_;
+#line 14250 "Page.c"
+ } else {
+ Dimensions _tmp45_ = {0};
+ Dimensions _tmp46_ = {0};
+#line 2300 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = self->priv->pixmap_dim;
+#line 2300 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_get_scaled_proportional (&unscaled_dim, &_tmp45_, &_tmp46_);
+#line 2300 "/home/jens/Source/shotwell/src/Page.vala"
+ scaled_dim = _tmp46_;
+#line 14260 "Page.c"
+ }
+#line 2302 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = width;
+#line 2302 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = scaled_dim;
+#line 2302 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = _tmp48_.width;
+#line 2302 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp47_ >= _tmp49_, "width >= scaled_dim.width");
+#line 2303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp50_ = height;
+#line 2303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp51_ = scaled_dim;
+#line 2303 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp52_ = _tmp51_.height;
+#line 2303 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp50_ >= _tmp52_, "height >= scaled_dim.height");
+#line 2306 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp53_ = width;
+#line 2306 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp54_ = scaled_dim;
+#line 2306 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp55_ = _tmp54_.width;
+#line 2306 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled_pos.x = (_tmp53_ - _tmp55_) / 2;
+#line 2307 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp56_ = height;
+#line 2307 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp57_ = scaled_dim;
+#line 2307 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp58_ = _tmp57_.height;
+#line 2307 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled_pos.y = (_tmp56_ - _tmp58_) / 2;
+#line 2308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp59_ = scaled_dim;
+#line 2308 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp60_ = _tmp59_.width;
+#line 2308 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled_pos.width = _tmp60_;
+#line 2309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp61_ = scaled_dim;
+#line 2309 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp62_ = _tmp61_.height;
+#line 2309 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled_pos.height = _tmp62_;
+#line 14306 "Page.c"
+ }
+#line 2312 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp64_ = fast;
+#line 2312 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp64_) {
+#line 2312 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp63_ = SINGLE_PHOTO_PAGE_FAST_INTERP;
+#line 14314 "Page.c"
+ } else {
+#line 2312 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp63_ = SINGLE_PHOTO_PAGE_QUALITY_INTERP;
+#line 14318 "Page.c"
+ }
+#line 2312 "/home/jens/Source/shotwell/src/Page.vala"
+ interp = _tmp63_;
+#line 2315 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp65_ = self->priv->scaled;
+#line 2315 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp65_ == NULL) {
+#line 14326 "Page.c"
+ GdkPixbuf* _tmp66_ = NULL;
+ GdkRectangle _tmp67_ = {0};
+ Dimensions _tmp68_ = {0};
+ GdkInterpType _tmp69_ = 0;
+ GdkPixbuf* _tmp70_ = NULL;
+ SinglePhotoPageUpdateReason reason = 0;
+ gboolean _tmp71_ = FALSE;
+ Dimensions _tmp75_ = {0};
+ Dimensions _tmp76_ = {0};
+ gdouble _tmp77_ = 0.0;
+ GdkPoint _tmp78_ = {0};
+ GdkPixbuf* _tmp79_ = NULL;
+ SinglePhotoPageUpdateReason _tmp80_ = 0;
+ Dimensions _tmp81_ = {0};
+#line 2316 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp66_ = self->priv->unscaled;
+#line 2316 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp67_ = self->priv->scaled_pos;
+#line 2316 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_for_rectangle (&_tmp67_, &_tmp68_);
+#line 2316 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp69_ = interp;
+#line 2316 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp70_ = resize_pixbuf (_tmp66_, &_tmp68_, _tmp69_);
+#line 2316 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->scaled);
+#line 2316 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled = _tmp70_;
+#line 2318 "/home/jens/Source/shotwell/src/Page.vala"
+ reason = SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS;
+#line 2319 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp71_ = new_pixbuf;
+#line 2319 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp71_) {
+#line 2320 "/home/jens/Source/shotwell/src/Page.vala"
+ reason = SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF;
+#line 14363 "Page.c"
+ } else {
+ gboolean _tmp72_ = FALSE;
+ gboolean _tmp73_ = FALSE;
+#line 2321 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp73_ = new_pixmap;
+#line 2321 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp73_) {
+#line 14371 "Page.c"
+ GdkInterpType _tmp74_ = 0;
+#line 2321 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp74_ = interp;
+#line 2321 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp72_ = _tmp74_ == SINGLE_PHOTO_PAGE_QUALITY_INTERP;
+#line 14377 "Page.c"
+ } else {
+#line 2321 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp72_ = FALSE;
+#line 14381 "Page.c"
+ }
+#line 2321 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp72_) {
+#line 2322 "/home/jens/Source/shotwell/src/Page.vala"
+ reason = SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT;
+#line 14387 "Page.c"
+ }
+ }
+#line 2324 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp75_ = self->priv->max_dim;
+#line 2324 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp76_ = self->priv->pixmap_dim;
+#line 2324 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp77_ = zoom_state_get_interpolation_factor (&self->priv->static_zoom_state);
+#line 2324 "/home/jens/Source/shotwell/src/Page.vala"
+ zoom_state_get_viewport_center (&self->priv->static_zoom_state, &_tmp78_);
+#line 2324 "/home/jens/Source/shotwell/src/Page.vala"
+ zoom_state_init (&self->priv->static_zoom_state, &_tmp75_, &_tmp76_, _tmp77_, &_tmp78_);
+#line 2328 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp79_ = self->priv->scaled;
+#line 2328 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp80_ = reason;
+#line 2328 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp81_ = old_scaled_dim;
+#line 2328 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_updated_pixbuf (self, _tmp79_, _tmp80_, &_tmp81_);
+#line 14408 "Page.c"
+ }
+#line 2331 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp82_ = fast;
+#line 2331 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->zoom_high_quality = !_tmp82_;
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp84_ = direction;
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp84_ != NULL) {
+#line 14418 "Page.c"
+ TransitionClock* _tmp85_ = NULL;
+ gboolean _tmp86_ = FALSE;
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp85_ = self->priv->transition_clock;
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp86_ = transition_clock_is_in_progress (_tmp85_);
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp83_ = !_tmp86_;
+#line 14427 "Page.c"
+ } else {
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp83_ = FALSE;
+#line 14431 "Page.c"
+ }
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp83_) {
+#line 14435 "Page.c"
+ SpitTransitionsVisuals* visuals = NULL;
+ GdkPixbuf* _tmp87_ = NULL;
+ GdkRectangle _tmp88_ = {0};
+ GdkPixbuf* _tmp89_ = NULL;
+ GdkRectangle _tmp90_ = {0};
+ GdkRGBA _tmp91_ = {0};
+ SpitTransitionsVisuals* _tmp92_ = NULL;
+ TransitionClock* _tmp93_ = NULL;
+ SpitTransitionsVisuals* _tmp94_ = NULL;
+ Direction* _tmp95_ = NULL;
+ SpitTransitionsDirection _tmp96_ = 0;
+ gint _tmp97_ = 0;
+#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp87_ = self->priv->old_scaled;
+#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp88_ = old_scaled_pos;
+#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp89_ = self->priv->scaled;
+#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp90_ = self->priv->scaled_pos;
+#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
+ parse_color ("#000", &_tmp91_);
+#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp92_ = spit_transitions_visuals_new (_tmp87_, &_tmp88_, _tmp89_, &_tmp90_, &_tmp91_);
+#line 2334 "/home/jens/Source/shotwell/src/Page.vala"
+ visuals = _tmp92_;
+#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp93_ = self->priv->transition_clock;
+#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp94_ = visuals;
+#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp95_ = direction;
+#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp96_ = direction_to_transition_direction (*_tmp95_);
+#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp97_ = self->priv->transition_duration_msec;
+#line 2337 "/home/jens/Source/shotwell/src/Page.vala"
+ transition_clock_start (_tmp93_, _tmp94_, _tmp96_, _tmp97_, _single_photo_page_repaint_pixmap_transition_clock_repaint_callback, self);
+#line 2333 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (visuals);
+#line 14476 "Page.c"
+ }
+#line 2341 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp98_ = self->priv->transition_clock;
+#line 2341 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp99_ = transition_clock_is_in_progress (_tmp98_);
+#line 2341 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!_tmp99_) {
+#line 2342 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_repaint_pixmap (self);
+#line 14486 "Page.c"
+ }
+}
+
+
+static void single_photo_page_init_pixmap (SinglePhotoPage* self, gint width, gint height) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GtkDrawingArea* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ cairo_surface_t* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ cairo_surface_t* _tmp8_ = NULL;
+ cairo_t* _tmp9_ = NULL;
+ cairo_surface_t* _tmp10_ = NULL;
+ cairo_t* _tmp11_ = NULL;
+ cairo_t* _tmp12_ = NULL;
+ cairo_t* _tmp13_ = NULL;
+ Dimensions _tmp14_ = {0};
+#line 2345 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2346 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->unscaled;
+#line 2346 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp0_ != NULL, "unscaled != null");
+#line 2347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->canvas;
+#line 2347 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 2347 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp2_ != NULL, "canvas.get_window() != null");
+#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = width;
+#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = height;
+#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp3_, _tmp4_);
+#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_surface_destroy0 (self->priv->pixmap);
+#line 2350 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->pixmap = _tmp5_;
+#line 2351 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = width;
+#line 2351 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = height;
+#line 2351 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_init (&self->priv->pixmap_dim, _tmp6_, _tmp7_);
+#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = self->priv->pixmap;
+#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = cairo_create (_tmp8_);
+#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_destroy0 (self->priv->pixmap_ctx);
+#line 2354 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->pixmap_ctx = _tmp9_;
+#line 2357 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->scaled);
+#line 2357 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled = NULL;
+#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->priv->pixmap;
+#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = cairo_create (_tmp10_);
+#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_destroy0 (self->priv->text_ctx);
+#line 2360 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->text_ctx = _tmp11_;
+#line 2361 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->text_ctx;
+#line 2361 "/home/jens/Source/shotwell/src/Page.vala"
+ set_source_color_from_string (_tmp12_, "#fff");
+#line 2366 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = self->priv->pixmap_ctx;
+#line 2366 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = self->priv->pixmap_dim;
+#line 2366 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_new_surface (self, _tmp13_, &_tmp14_);
+#line 14565 "Page.c"
+}
+
+
+static gboolean single_photo_page_real_on_context_keypress (Page* base) {
+ SinglePhotoPage * self;
+ gboolean result = FALSE;
+ GtkMenu* _tmp0_ = NULL;
+ GtkMenu* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 2369 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
+#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page_get_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp1_, NULL);
+#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp2_;
+#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp3_;
+#line 2370 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 14592 "Page.c"
+}
+
+
+static void single_photo_page_real_on_previous_photo (SinglePhotoPage* self) {
+}
+
+
+void single_photo_page_on_previous_photo (SinglePhotoPage* self) {
+#line 2373 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2373 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->on_previous_photo (self);
+#line 14605 "Page.c"
+}
+
+
+static void single_photo_page_real_on_next_photo (SinglePhotoPage* self) {
+}
+
+
+void single_photo_page_on_next_photo (SinglePhotoPage* self) {
+#line 2376 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_SINGLE_PHOTO_PAGE (self));
+#line 2376 "/home/jens/Source/shotwell/src/Page.vala"
+ SINGLE_PHOTO_PAGE_GET_CLASS (self)->on_next_photo (self);
+#line 14618 "Page.c"
+}
+
+
+static gboolean single_photo_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ SinglePhotoPage * self;
+ gboolean result = FALSE;
+ gboolean nav_ok = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint32 _tmp1_ = 0U;
+ guint32 _tmp2_ = 0U;
+ gboolean handled = FALSE;
+ GdkEventKey* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GQuark _tmp8_ = 0U;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp7_label0 = 0;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp7_label1 = 0;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp7_label2 = 0;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp7_label3 = 0;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp7_label4 = 0;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ static GQuark _tmp7_label5 = 0;
+#line 14647 "Page.c"
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
+#line 2379 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = event;
+#line 2383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = _tmp0_->time;
+#line 2383 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = self->priv->last_nav_key;
+#line 2383 "/home/jens/Source/shotwell/src/Page.vala"
+ nav_ok = (_tmp1_ - _tmp2_) > ((guint32) SINGLE_PHOTO_PAGE_KEY_REPEAT_INTERVAL_MSEC);
+#line 2385 "/home/jens/Source/shotwell/src/Page.vala"
+ handled = TRUE;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = event;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp3_->keyval;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gdk_keyval_name (_tmp4_);
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ if (((_tmp8_ == ((0 != _tmp7_label0) ? _tmp7_label0 : (_tmp7_label0 = g_quark_from_static_string ("Left")))) || (_tmp8_ == ((0 != _tmp7_label1) ? _tmp7_label1 : (_tmp7_label1 = g_quark_from_static_string ("KP_Left"))))) || (_tmp8_ == ((0 != _tmp7_label2) ? _tmp7_label2 : (_tmp7_label2 = g_quark_from_static_string ("BackSpace"))))) {
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 14678 "Page.c"
+ default:
+ {
+ gboolean _tmp9_ = FALSE;
+#line 2390 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = nav_ok;
+#line 2390 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp9_) {
+#line 14686 "Page.c"
+ GdkEventKey* _tmp10_ = NULL;
+ guint32 _tmp11_ = 0U;
+#line 2391 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_on_previous_photo (self);
+#line 2392 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = event;
+#line 2392 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = _tmp10_->time;
+#line 2392 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_nav_key = _tmp11_;
+#line 14697 "Page.c"
+ }
+#line 2394 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 14701 "Page.c"
+ }
+ }
+ } else if (((_tmp8_ == ((0 != _tmp7_label3) ? _tmp7_label3 : (_tmp7_label3 = g_quark_from_static_string ("Right")))) || (_tmp8_ == ((0 != _tmp7_label4) ? _tmp7_label4 : (_tmp7_label4 = g_quark_from_static_string ("KP_Right"))))) || (_tmp8_ == ((0 != _tmp7_label5) ? _tmp7_label5 : (_tmp7_label5 = g_quark_from_static_string ("space"))))) {
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 14707 "Page.c"
+ default:
+ {
+ gboolean _tmp12_ = FALSE;
+#line 2399 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = nav_ok;
+#line 2399 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp12_) {
+#line 14715 "Page.c"
+ GdkEventKey* _tmp13_ = NULL;
+ guint32 _tmp14_ = 0U;
+#line 2400 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_on_next_photo (self);
+#line 2401 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = event;
+#line 2401 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = _tmp13_->time;
+#line 2401 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_nav_key = _tmp14_;
+#line 14726 "Page.c"
+ }
+#line 2403 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 14730 "Page.c"
+ }
+ }
+ } else {
+#line 2386 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (0) {
+#line 14736 "Page.c"
+ default:
+ {
+#line 2406 "/home/jens/Source/shotwell/src/Page.vala"
+ handled = FALSE;
+#line 2407 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 14743 "Page.c"
+ }
+ }
+ }
+#line 2410 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = handled;
+#line 2410 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp15_) {
+#line 2411 "/home/jens/Source/shotwell/src/Page.vala"
+ result = TRUE;
+#line 2411 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 14755 "Page.c"
+ }
+#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
+ if (GTK_WIDGET_CLASS (single_photo_page_parent_class)->key_press_event != NULL) {
+#line 14759 "Page.c"
+ GdkEventKey* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = event;
+#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = GTK_WIDGET_CLASS (single_photo_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), gtk_widget_get_type (), GtkWidget), _tmp17_);
+#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = _tmp18_;
+#line 14768 "Page.c"
+ } else {
+#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = TRUE;
+#line 14772 "Page.c"
+ }
+#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
+ result = _tmp16_;
+#line 2413 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 14778 "Page.c"
+}
+
+
+static void single_photo_page_class_init (SinglePhotoPageClass * klass) {
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ single_photo_page_parent_class = g_type_class_peek_parent (klass);
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_class_add_private (klass, sizeof (SinglePhotoPagePrivate));
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->is_zoom_supported = single_photo_page_real_is_zoom_supported;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->cancel_zoom = single_photo_page_real_cancel_zoom;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->save_zoom_state = single_photo_page_real_save_zoom_state;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->restore_zoom_state = single_photo_page_real_restore_zoom_state;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->get_zoom_buffer = single_photo_page_real_get_zoom_buffer;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->switched_to = single_photo_page_real_switched_to;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->set_container = single_photo_page_real_set_container;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_resize_finished = single_photo_page_real_on_resize_finished;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->new_surface = single_photo_page_real_new_surface;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->updated_pixbuf = single_photo_page_real_updated_pixbuf;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->paint = single_photo_page_real_paint;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((PageClass *) klass)->on_context_keypress = single_photo_page_real_on_context_keypress;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->on_previous_photo = single_photo_page_real_on_previous_photo;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((SinglePhotoPageClass *) klass)->on_next_photo = single_photo_page_real_on_next_photo;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = single_photo_page_real_key_press_event;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ G_OBJECT_CLASS (klass)->finalize = single_photo_page_finalize;
+#line 14819 "Page.c"
+}
+
+
+static void single_photo_page_instance_init (SinglePhotoPage * self) {
+ GtkDrawingArea* _tmp0_ = NULL;
+ GtkViewport* _tmp1_ = NULL;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv = SINGLE_PHOTO_PAGE_GET_PRIVATE (self);
+#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = (GtkDrawingArea*) gtk_drawing_area_new ();
+#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
+ self->canvas = _tmp0_;
+#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = (GtkViewport*) gtk_viewport_new (NULL, NULL);
+#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
+ g_object_ref_sink (_tmp1_);
+#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
+ self->viewport = _tmp1_;
+#line 1918 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->transition_duration_msec = 0;
+#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->pixmap = NULL;
+#line 1920 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->pixmap_ctx = NULL;
+#line 1921 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->text_ctx = NULL;
+#line 1922 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_init (&self->priv->pixmap_dim, 0, 0);
+#line 1923 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->unscaled = NULL;
+#line 1924 "/home/jens/Source/shotwell/src/Page.vala"
+ dimensions_init (&self->priv->max_dim, 0, 0);
+#line 1925 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->scaled = NULL;
+#line 1926 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->old_scaled = NULL;
+#line 1927 "/home/jens/Source/shotwell/src/Page.vala"
+ memset (&self->priv->scaled_pos, 0, sizeof (GdkRectangle));
+#line 1929 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->zoom_high_quality = TRUE;
+#line 1931 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->has_saved_zoom_state = FALSE;
+#line 1932 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->last_nav_key = (guint32) 0;
+#line 14866 "Page.c"
+}
+
+
+static void single_photo_page_finalize (GObject* obj) {
+ SinglePhotoPage * self;
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage);
+#line 1913 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->canvas);
+#line 1914 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->viewport);
+#line 1917 "/home/jens/Source/shotwell/src/Page.vala"
+ _transition_clock_unref0 (self->priv->transition_clock);
+#line 1919 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_surface_destroy0 (self->priv->pixmap);
+#line 1920 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_destroy0 (self->priv->pixmap_ctx);
+#line 1921 "/home/jens/Source/shotwell/src/Page.vala"
+ _cairo_destroy0 (self->priv->text_ctx);
+#line 1923 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->unscaled);
+#line 1925 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->scaled);
+#line 1926 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->old_scaled);
+#line 1902 "/home/jens/Source/shotwell/src/Page.vala"
+ G_OBJECT_CLASS (single_photo_page_parent_class)->finalize (obj);
+#line 14894 "Page.c"
+}
+
+
+GType single_photo_page_get_type (void) {
+ static volatile gsize single_photo_page_type_id__volatile = 0;
+ if (g_once_init_enter (&single_photo_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SinglePhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) single_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SinglePhotoPage), 0, (GInstanceInitFunc) single_photo_page_instance_init, NULL };
+ GType single_photo_page_type_id;
+ single_photo_page_type_id = g_type_register_static (TYPE_PAGE, "SinglePhotoPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&single_photo_page_type_id__volatile, single_photo_page_type_id);
+ }
+ return single_photo_page_type_id__volatile;
+}
+
+
+static void _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
+#line 2472 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_on_drag_begin ((DragAndDropHandler*) self, context);
+#line 14913 "Page.c"
+}
+
+
+static void _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get (GtkWidget* _sender, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_, gpointer self) {
+#line 2473 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_on_drag_data_get ((DragAndDropHandler*) self, context, selection_data, info, time_);
+#line 14920 "Page.c"
+}
+
+
+static void _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
+#line 2474 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_on_drag_end ((DragAndDropHandler*) self);
+#line 14927 "Page.c"
+}
+
+
+static gboolean _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed (GtkWidget* _sender, GdkDragContext* context, GtkDragResult _result_, gpointer self) {
+ gboolean result;
+ result = drag_and_drop_handler_on_drag_failed ((DragAndDropHandler*) self, context, _result_);
+#line 2475 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 14936 "Page.c"
+}
+
+
+static GType drag_and_drop_handler_target_type_get_type (void) {
+ static volatile gsize drag_and_drop_handler_target_type_type_id__volatile = 0;
+ if (g_once_init_enter (&drag_and_drop_handler_target_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS, "DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS", "xds"}, {DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST, "DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST", "media-list"}, {0, NULL, NULL}};
+ GType drag_and_drop_handler_target_type_type_id;
+ drag_and_drop_handler_target_type_type_id = g_enum_register_static ("DragAndDropHandlerTargetType", values);
+ g_once_init_leave (&drag_and_drop_handler_target_type_type_id__volatile, drag_and_drop_handler_target_type_type_id);
+ }
+ return drag_and_drop_handler_target_type_type_id__volatile;
+}
+
+
+static GdkAtom* _gdk_atom_dup (GdkAtom* self) {
+ GdkAtom* dup;
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ dup = g_new0 (GdkAtom, 1);
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ memcpy (dup, self, sizeof (GdkAtom));
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ return dup;
+#line 14960 "Page.c"
+}
+
+
+static gpointer __gdk_atom_dup0 (gpointer self) {
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ return self ? _gdk_atom_dup (self) : NULL;
+#line 14967 "Page.c"
+}
+
+
+DragAndDropHandler* drag_and_drop_handler_construct (GType object_type, Page* page) {
+ DragAndDropHandler* self = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GdkAtom* _tmp6_ = NULL;
+ GdkAtom* _tmp9_ = NULL;
+ guint8* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkWidget* _tmp15_ = NULL;
+ GtkWidget* _tmp16_ = NULL;
+ GtkWidget* _tmp17_ = NULL;
+ GtkWidget* _tmp18_ = NULL;
+ GtkWidget* _tmp19_ = NULL;
+#line 2442 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_PAGE (page), NULL);
+#line 2442 "/home/jens/Source/shotwell/src/Page.vala"
+ self = (DragAndDropHandler*) g_type_create_instance (object_type);
+#line 2443 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = page;
+#line 2443 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->page = _tmp0_;
+#line 2444 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page;
+#line 2444 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = page_get_event_source (_tmp1_);
+#line 2444 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->event_source);
+#line 2444 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->event_source = _tmp2_;
+#line 2445 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->event_source;
+#line 2445 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp3_ != NULL, "event_source != null");
+#line 2446 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->event_source;
+#line 2446 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = gtk_widget_get_has_window (_tmp4_);
+#line 2446 "/home/jens/Source/shotwell/src/Page.vala"
+ _vala_assert (_tmp5_, "event_source.get_has_window()");
+#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = drag_and_drop_handler_XDS_ATOM;
+#line 2449 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_ == NULL) {
+#line 15018 "Page.c"
+ GdkAtom _tmp7_ = 0U;
+ GdkAtom* _tmp8_ = NULL;
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = gdk_atom_intern_static_string ("XdndDirectSave0");
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = __gdk_atom_dup0 (&_tmp7_);
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (drag_and_drop_handler_XDS_ATOM);
+#line 2450 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_XDS_ATOM = _tmp8_;
+#line 15029 "Page.c"
+ }
+#line 2452 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = drag_and_drop_handler_TEXT_ATOM;
+#line 2452 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp9_ == NULL) {
+#line 15035 "Page.c"
+ GdkAtom _tmp10_ = 0U;
+ GdkAtom* _tmp11_ = NULL;
+#line 2453 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = gdk_atom_intern_static_string ("text/plain");
+#line 2453 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = __gdk_atom_dup0 (&_tmp10_);
+#line 2453 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (drag_and_drop_handler_TEXT_ATOM);
+#line 2453 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_TEXT_ATOM = _tmp11_;
+#line 15046 "Page.c"
+ }
+#line 2455 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = drag_and_drop_handler_XDS_FAKE_TARGET;
+#line 2455 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12__length1 = drag_and_drop_handler_XDS_FAKE_TARGET_length1;
+#line 2455 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp12_ == NULL) {
+#line 15054 "Page.c"
+ gint _tmp13_ = 0;
+ guchar* _tmp14_ = NULL;
+#line 2456 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = string_to_uchar_array ("shotwell.txt", &_tmp13_);
+#line 2456 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_XDS_FAKE_TARGET = (g_free (drag_and_drop_handler_XDS_FAKE_TARGET), NULL);
+#line 2456 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_XDS_FAKE_TARGET = _tmp14_;
+#line 2456 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_XDS_FAKE_TARGET_length1 = _tmp13_;
+#line 2456 "/home/jens/Source/shotwell/src/Page.vala"
+ _drag_and_drop_handler_XDS_FAKE_TARGET_size_ = drag_and_drop_handler_XDS_FAKE_TARGET_length1;
+#line 15067 "Page.c"
+ }
+#line 2459 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = self->priv->event_source;
+#line 2459 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_drag_source_set (_tmp15_, GDK_BUTTON1_MASK, DRAG_AND_DROP_HANDLER_SOURCE_TARGET_ENTRIES, G_N_ELEMENTS (DRAG_AND_DROP_HANDLER_SOURCE_TARGET_ENTRIES), GDK_ACTION_COPY);
+#line 2464 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = self->priv->event_source;
+#line 2464 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect (_tmp16_, "drag-begin", (GCallback) _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin, self);
+#line 2465 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = self->priv->event_source;
+#line 2465 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect (_tmp17_, "drag-data-get", (GCallback) _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get, self);
+#line 2466 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = self->priv->event_source;
+#line 2466 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect (_tmp18_, "drag-end", (GCallback) _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end, self);
+#line 2467 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = self->priv->event_source;
+#line 2467 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_connect (_tmp19_, "drag-failed", (GCallback) _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed, self);
+#line 2442 "/home/jens/Source/shotwell/src/Page.vala"
+ return self;
+#line 15091 "Page.c"
+}
+
+
+DragAndDropHandler* drag_and_drop_handler_new (Page* page) {
+#line 2442 "/home/jens/Source/shotwell/src/Page.vala"
+ return drag_and_drop_handler_construct (TYPE_DRAG_AND_DROP_HANDLER, page);
+#line 15098 "Page.c"
+}
+
+
+static void drag_and_drop_handler_on_drag_begin (DragAndDropHandler* self, GdkDragContext* context) {
+ Page* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ Page* _tmp5_ = NULL;
+ ThumbnailSource* thumb = NULL;
+ Page* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+ DataSource* _tmp16_ = NULL;
+ ThumbnailSource* _tmp17_ = NULL;
+ GdkDragContext* _tmp27_ = NULL;
+ GdkWindow* _tmp28_ = NULL;
+ GdkAtom* _tmp29_ = NULL;
+ GdkAtom* _tmp30_ = NULL;
+ guint8* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 2482 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
+#line 2482 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 2483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->page;
+#line 2483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_page_name (_tmp0_);
+#line 2483 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 2483 "/home/jens/Source/shotwell/src/Page.vala"
+ g_debug ("Page.vala:2483: on_drag_begin (%s)", _tmp2_);
+#line 2483 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp2_);
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->page;
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp5_ == NULL) {
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = TRUE;
+#line 15144 "Page.c"
+ } else {
+ Page* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->page;
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = page_get_view (_tmp6_);
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = view_collection_get_selected_count (_tmp8_);
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp9_ == 0;
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 15162 "Page.c"
+ }
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_) {
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = TRUE;
+#line 15168 "Page.c"
+ } else {
+ ExporterUI* _tmp10_ = NULL;
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = self->priv->exporter;
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp10_ != NULL;
+#line 15175 "Page.c"
+ }
+#line 2485 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_) {
+#line 2486 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 15181 "Page.c"
+ }
+#line 2488 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->drag_destination);
+#line 2488 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->drag_destination = NULL;
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->priv->page;
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = page_get_view (_tmp11_);
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = _tmp12_;
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = view_collection_get_selected_at (_tmp13_, 0);
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _tmp14_;
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = data_view_get_source (_tmp15_);
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource);
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp15_);
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 2491 "/home/jens/Source/shotwell/src/Page.vala"
+ thumb = _tmp17_;
+#line 15207 "Page.c"
+ {
+ GdkPixbuf* icon = NULL;
+ ThumbnailSource* _tmp18_ = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+ GtkWidget* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+#line 2494 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = thumb;
+#line 2494 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = thumbnail_source_get_thumbnail (_tmp18_, APP_WINDOW_DND_ICON_SCALE, &_inner_error_);
+#line 2494 "/home/jens/Source/shotwell/src/Page.vala"
+ icon = _tmp19_;
+#line 2494 "/home/jens/Source/shotwell/src/Page.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 15222 "Page.c"
+ goto __catch242_g_error;
+ }
+#line 2495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = self->priv->event_source;
+#line 2495 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = icon;
+#line 2495 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_drag_source_set_icon_pixbuf (_tmp20_, _tmp21_);
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (icon);
+#line 15233 "Page.c"
+ }
+ goto __finally242;
+ __catch242_g_error:
+ {
+ GError* err = NULL;
+ ThumbnailSource* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ GError* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ err = _inner_error_;
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ _inner_error_ = NULL;
+#line 2497 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = thumb;
+#line 2497 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_OBJECT, DataObject));
+#line 2497 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = _tmp23_;
+#line 2497 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = err;
+#line 2497 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = _tmp25_->message;
+#line 2497 "/home/jens/Source/shotwell/src/Page.vala"
+ g_warning ("Page.vala:2497: Unable to fetch icon for drag-and-drop from %s: %s", _tmp24_, _tmp26_);
+#line 2497 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp24_);
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_error_free0 (err);
+#line 15264 "Page.c"
+ }
+ __finally242:
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (thumb);
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ g_clear_error (&_inner_error_);
+#line 2493 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 15277 "Page.c"
+ }
+#line 2503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = context;
+#line 2503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = gdk_drag_context_get_source_window (_tmp27_);
+#line 2503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = drag_and_drop_handler_XDS_ATOM;
+#line 2503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = drag_and_drop_handler_TEXT_ATOM;
+#line 2503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = drag_and_drop_handler_XDS_FAKE_TARGET;
+#line 2503 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31__length1 = drag_and_drop_handler_XDS_FAKE_TARGET_length1;
+#line 2503 "/home/jens/Source/shotwell/src/Page.vala"
+ gdk_property_change (_tmp28_, *_tmp29_, *_tmp30_, 8, GDK_PROP_MODE_REPLACE, (const guchar*) _tmp31_, 1);
+#line 2482 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (thumb);
+#line 15295 "Page.c"
+}
+
+
+static void drag_and_drop_handler_on_drag_data_get (DragAndDropHandler* self, GdkDragContext* context, GtkSelectionData* selection_data, guint target_type, guint time) {
+ Page* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ Page* _tmp4_ = NULL;
+ guint _tmp9_ = 0U;
+#line 2511 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
+#line 2511 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 2511 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (selection_data != NULL);
+#line 2513 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->page;
+#line 2513 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_page_name (_tmp0_);
+#line 2513 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 2513 "/home/jens/Source/shotwell/src/Page.vala"
+ g_debug ("Page.vala:2513: on_drag_data_get (%s)", _tmp2_);
+#line 2513 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp2_);
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->page;
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_ == NULL) {
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = TRUE;
+#line 15328 "Page.c"
+ } else {
+ Page* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->page;
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = page_get_view (_tmp5_);
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = _tmp6_;
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = view_collection_get_selected_count (_tmp7_);
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp8_ == 0;
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 15346 "Page.c"
+ }
+#line 2515 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_) {
+#line 2516 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 15352 "Page.c"
+ }
+#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = target_type;
+#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
+ switch (_tmp9_) {
+#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
+ case DRAG_AND_DROP_HANDLER_TARGET_TYPE_XDS:
+#line 15360 "Page.c"
+ {
+ guchar* data = NULL;
+ guchar* _tmp10_ = NULL;
+ gint data_length1 = 0;
+ gint _data_size_ = 0;
+ GdkAtom actual_type = 0U;
+ gint actual_format = 0;
+ gboolean fetched = FALSE;
+ GdkDragContext* _tmp11_ = NULL;
+ GdkWindow* _tmp12_ = NULL;
+ GdkAtom* _tmp13_ = NULL;
+ GdkAtom* _tmp14_ = NULL;
+ guchar* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GdkAtom _tmp16_ = 0U;
+ gint _tmp17_ = 0;
+ guint8* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ gchar* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ Page* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ GFile* _tmp41_ = NULL;
+ GtkSelectionData* _tmp42_ = NULL;
+ GdkAtom* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ guchar* _tmp45_ = NULL;
+ guchar* _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = g_new0 (guchar, 4096);
+#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
+ data = _tmp10_;
+#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
+ data_length1 = 4096;
+#line 2521 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_size_ = data_length1;
+#line 2523 "/home/jens/Source/shotwell/src/Page.vala"
+ actual_format = 0;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = context;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = gdk_drag_context_get_source_window (_tmp11_);
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = drag_and_drop_handler_XDS_ATOM;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = drag_and_drop_handler_TEXT_ATOM;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = data;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15__length1 = data_length1;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = gdk_property_get (_tmp12_, *_tmp13_, *_tmp14_, (gulong) 0, (gulong) _tmp15__length1, 0, &_tmp16_, &_tmp17_, &_tmp19_, &_tmp18_);
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ actual_type = _tmp16_;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ actual_format = _tmp17_;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ data = (g_free (data), NULL);
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ data = _tmp18_;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ data_length1 = _tmp19_;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_size_ = data_length1;
+#line 2524 "/home/jens/Source/shotwell/src/Page.vala"
+ fetched = _tmp20_;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = fetched;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp23_) {
+#line 15438 "Page.c"
+ guchar* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = data;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24__length1 = data_length1;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = _tmp24_ != NULL;
+#line 15447 "Page.c"
+ } else {
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = FALSE;
+#line 15451 "Page.c"
+ }
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp22_) {
+#line 15455 "Page.c"
+ guchar* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = data;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25__length1 = data_length1;
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = _tmp25__length1 > 0;
+#line 15464 "Page.c"
+ } else {
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = FALSE;
+#line 15468 "Page.c"
+ }
+#line 2529 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp21_) {
+#line 15472 "Page.c"
+ guchar* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ GFile* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26_ = data;
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp26__length1 = data_length1;
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp27_ = uchar_array_to_string (_tmp26_, _tmp26__length1, -1);
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = _tmp27_;
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = g_file_new_for_uri (_tmp28_);
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = _tmp29_;
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = g_file_get_parent (_tmp30_);
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->drag_destination);
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->drag_destination = _tmp31_;
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp30_);
+#line 2530 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp28_);
+#line 15502 "Page.c"
+ }
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp33_ = self->priv->drag_destination;
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp33_ != NULL) {
+#line 15508 "Page.c"
+ GFile* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp34_ = self->priv->drag_destination;
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp35_ = g_file_get_path (_tmp34_);
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp32_);
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = _tmp35_;
+#line 15519 "Page.c"
+ } else {
+ gchar* _tmp36_ = NULL;
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp36_ = g_strdup ("(no path)");
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp32_);
+#line 2533 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = _tmp36_;
+#line 15528 "Page.c"
+ }
+#line 2532 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp37_ = self->priv->page;
+#line 2532 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp38_ = page_get_page_name (_tmp37_);
+#line 2532 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp39_ = _tmp38_;
+#line 2532 "/home/jens/Source/shotwell/src/Page.vala"
+ g_debug ("Page.vala:2532: on_drag_data_get (%s): %s", _tmp39_, _tmp32_);
+#line 2532 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp39_);
+#line 2537 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp41_ = self->priv->drag_destination;
+#line 2537 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp41_ != NULL) {
+#line 2537 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = "S";
+#line 15546 "Page.c"
+ } else {
+#line 2537 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp40_ = "E";
+#line 15550 "Page.c"
+ }
+#line 2536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp42_ = selection_data;
+#line 2536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp43_ = drag_and_drop_handler_XDS_ATOM;
+#line 2536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp45_ = string_to_uchar_array (_tmp40_, &_tmp44_);
+#line 2536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = _tmp45_;
+#line 2536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46__length1 = _tmp44_;
+#line 2536 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_selection_data_set (_tmp42_, *_tmp43_, 8, _tmp46_, _tmp44_);
+#line 2536 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp46_ = (g_free (_tmp46_), NULL);
+#line 2538 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp32_);
+#line 2538 "/home/jens/Source/shotwell/src/Page.vala"
+ data = (g_free (data), NULL);
+#line 2538 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 15572 "Page.c"
+ }
+#line 2518 "/home/jens/Source/shotwell/src/Page.vala"
+ case DRAG_AND_DROP_HANDLER_TARGET_TYPE_MEDIA_LIST:
+#line 15576 "Page.c"
+ {
+ GeeCollection* sources = NULL;
+ Page* _tmp47_ = NULL;
+ ViewCollection* _tmp48_ = NULL;
+ ViewCollection* _tmp49_ = NULL;
+ GeeList* _tmp50_ = NULL;
+ GeeCollection* _tmp51_ = NULL;
+ GtkSelectionData* _tmp52_ = NULL;
+ GdkAtom _tmp53_ = 0U;
+ GeeCollection* _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+ guchar* _tmp56_ = NULL;
+ guchar* _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp47_ = self->priv->page;
+#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp48_ = page_get_view (_tmp47_);
+#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp49_ = _tmp48_;
+#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp50_ = view_collection_get_selected_sources (_tmp49_);
+#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp51_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp49_);
+#line 2541 "/home/jens/Source/shotwell/src/Page.vala"
+ sources = _tmp51_;
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp52_ = selection_data;
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp53_ = gdk_atom_intern_static_string ("SourceIDAtom");
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp54_ = sources;
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp56_ = serialize_media_sources (_tmp54_, &_tmp55_);
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp57_ = _tmp56_;
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp57__length1 = _tmp55_;
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ gtk_selection_data_set (_tmp52_, _tmp53_, (gint) sizeof (GdkAtom), _tmp57_, _tmp55_);
+#line 2546 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp57_ = (g_free (_tmp57_), NULL);
+#line 2548 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (sources);
+#line 2548 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 15625 "Page.c"
+ }
+ default:
+ {
+ Page* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ guint _tmp61_ = 0U;
+#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp58_ = self->priv->page;
+#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp59_ = page_get_page_name (_tmp58_);
+#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp60_ = _tmp59_;
+#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp61_ = target_type;
+#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
+ g_warning ("Page.vala:2551: on_drag_data_get (%s): unknown target type %u", _tmp60_, _tmp61_);
+#line 2551 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp60_);
+#line 2553 "/home/jens/Source/shotwell/src/Page.vala"
+ break;
+#line 15647 "Page.c"
+ }
+ }
+}
+
+
+static void _drag_and_drop_handler_on_export_completed_exporter_completion_callback (Exporter* exporter, gboolean is_cancelled, gpointer self) {
+#line 2574 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_on_export_completed ((DragAndDropHandler*) self);
+#line 15656 "Page.c"
+}
+
+
+static void drag_and_drop_handler_on_drag_end (DragAndDropHandler* self) {
+ Page* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ Page* _tmp6_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 2557 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
+#line 2558 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->page;
+#line 2558 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_page_name (_tmp0_);
+#line 2558 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 2558 "/home/jens/Source/shotwell/src/Page.vala"
+ g_debug ("Page.vala:2558: on_drag_end (%s)", _tmp2_);
+#line 2558 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp2_);
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp6_ = self->priv->page;
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp6_ == NULL) {
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = TRUE;
+#line 15693 "Page.c"
+ } else {
+ Page* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->page;
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp8_ = page_get_view (_tmp7_);
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp9_ = _tmp8_;
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp10_ = view_collection_get_selected_count (_tmp9_);
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = _tmp10_ == 0;
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp9_);
+#line 15711 "Page.c"
+ }
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp5_) {
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = TRUE;
+#line 15717 "Page.c"
+ } else {
+ GFile* _tmp11_ = NULL;
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp11_ = self->priv->drag_destination;
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = _tmp11_ == NULL;
+#line 15724 "Page.c"
+ }
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_) {
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = TRUE;
+#line 15730 "Page.c"
+ } else {
+ ExporterUI* _tmp12_ = NULL;
+#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp12_ = self->priv->exporter;
+#line 2561 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = _tmp12_ != NULL;
+#line 15737 "Page.c"
+ }
+#line 2560 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp3_) {
+#line 2562 "/home/jens/Source/shotwell/src/Page.vala"
+ return;
+#line 15743 "Page.c"
+ }
+#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp13_ = self->priv->drag_destination;
+#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp15_ = _tmp14_;
+#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
+ g_debug ("Page.vala:2565: Exporting to %s", _tmp15_);
+#line 2565 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp15_);
+#line 2570 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp16_ = self->priv->drag_destination;
+#line 2570 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 2570 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp18_ = _tmp17_;
+#line 2570 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp19_ = _tmp18_ != NULL;
+#line 2570 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp18_);
+#line 2570 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp19_) {
+#line 15767 "Page.c"
+ Page* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ ViewCollection* _tmp22_ = NULL;
+ GeeList* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ Scaling _tmp26_ = {0};
+ ExportFormatParameters _tmp27_ = {0};
+ Exporter* _tmp28_ = NULL;
+ Exporter* _tmp29_ = NULL;
+ ExporterUI* _tmp30_ = NULL;
+ ExporterUI* _tmp31_ = NULL;
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp20_ = self->priv->page;
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp21_ = page_get_view (_tmp20_);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp22_ = _tmp21_;
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp23_ = view_collection_get_selected_sources (_tmp22_);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp25_ = self->priv->drag_destination;
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ scaling_for_original (&_tmp26_);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ export_format_parameters_current (&_tmp27_);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp28_ = exporter_new (_tmp24_, _tmp25_, &_tmp26_, &_tmp27_, FALSE);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp29_ = _tmp28_;
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp30_ = exporter_ui_new (_tmp29_);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _exporter_ui_unref0 (self->priv->exporter);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->exporter = _tmp30_;
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp29_);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (_tmp24_);
+#line 2571 "/home/jens/Source/shotwell/src/Page.vala"
+ _data_collection_unref0 (_tmp22_);
+#line 2574 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp31_ = self->priv->exporter;
+#line 2574 "/home/jens/Source/shotwell/src/Page.vala"
+ exporter_ui_export (_tmp31_, _drag_and_drop_handler_on_export_completed_exporter_completion_callback, self);
+#line 15816 "Page.c"
+ } else {
+ const gchar* _tmp32_ = NULL;
+#line 2576 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp32_ = _ ("Photos cannot be exported to this directory.");
+#line 2576 "/home/jens/Source/shotwell/src/Page.vala"
+ app_window_error_message (_tmp32_, NULL);
+#line 15823 "Page.c"
+ }
+#line 2579 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->drag_destination);
+#line 2579 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->drag_destination = NULL;
+#line 15829 "Page.c"
+}
+
+
+static gboolean drag_and_drop_handler_on_drag_failed (DragAndDropHandler* self, GdkDragContext* context, GtkDragResult drag_result) {
+ gboolean result = FALSE;
+ Page* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GtkDragResult _tmp3_ = 0;
+ Page* _tmp4_ = NULL;
+#line 2582 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (IS_DRAG_AND_DROP_HANDLER (self), FALSE);
+#line 2582 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
+#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->page;
+#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = page_get_page_name (_tmp0_);
+#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = drag_result;
+#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
+ g_debug ("Page.vala:2583: on_drag_failed (%s): %d", _tmp2_, (gint) _tmp3_);
+#line 2583 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_free0 (_tmp2_);
+#line 2585 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp4_ = self->priv->page;
+#line 2585 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp4_ == NULL) {
+#line 2586 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 2586 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 15864 "Page.c"
+ }
+#line 2588 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->drag_destination);
+#line 2588 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->drag_destination = NULL;
+#line 2590 "/home/jens/Source/shotwell/src/Page.vala"
+ result = FALSE;
+#line 2590 "/home/jens/Source/shotwell/src/Page.vala"
+ return result;
+#line 15874 "Page.c"
+}
+
+
+static void drag_and_drop_handler_on_export_completed (DragAndDropHandler* self) {
+#line 2593 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (IS_DRAG_AND_DROP_HANDLER (self));
+#line 2594 "/home/jens/Source/shotwell/src/Page.vala"
+ _exporter_ui_unref0 (self->priv->exporter);
+#line 2594 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->exporter = NULL;
+#line 15885 "Page.c"
+}
+
+
+static void value_drag_and_drop_handler_init (GValue* value) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 15892 "Page.c"
+}
+
+
+static void value_drag_and_drop_handler_free_value (GValue* value) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (value->data[0].v_pointer) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_unref (value->data[0].v_pointer);
+#line 15901 "Page.c"
+ }
+}
+
+
+static void value_drag_and_drop_handler_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (src_value->data[0].v_pointer) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ dest_value->data[0].v_pointer = drag_and_drop_handler_ref (src_value->data[0].v_pointer);
+#line 15911 "Page.c"
+ } else {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 15915 "Page.c"
+ }
+}
+
+
+static gpointer value_drag_and_drop_handler_peek_pointer (const GValue* value) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return value->data[0].v_pointer;
+#line 15923 "Page.c"
+}
+
+
+static gchar* value_drag_and_drop_handler_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (collect_values[0].v_pointer) {
+#line 15930 "Page.c"
+ DragAndDropHandler* object;
+ object = collect_values[0].v_pointer;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 15937 "Page.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 15941 "Page.c"
+ }
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = drag_and_drop_handler_ref (object);
+#line 15945 "Page.c"
+ } else {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 15949 "Page.c"
+ }
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return NULL;
+#line 15953 "Page.c"
+}
+
+
+static gchar* value_drag_and_drop_handler_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DragAndDropHandler** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!object_p) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 15964 "Page.c"
+ }
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (!value->data[0].v_pointer) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = NULL;
+#line 15970 "Page.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = value->data[0].v_pointer;
+#line 15974 "Page.c"
+ } else {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ *object_p = drag_and_drop_handler_ref (value->data[0].v_pointer);
+#line 15978 "Page.c"
+ }
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return NULL;
+#line 15982 "Page.c"
+}
+
+
+GParamSpec* param_spec_drag_and_drop_handler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecDragAndDropHandler* spec;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_DRAG_AND_DROP_HANDLER), NULL);
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return G_PARAM_SPEC (spec);
+#line 15996 "Page.c"
+}
+
+
+gpointer value_get_drag_and_drop_handler (const GValue* value) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DRAG_AND_DROP_HANDLER), NULL);
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return value->data[0].v_pointer;
+#line 16005 "Page.c"
+}
+
+
+void value_set_drag_and_drop_handler (GValue* value, gpointer v_object) {
+ DragAndDropHandler* old;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DRAG_AND_DROP_HANDLER));
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ old = value->data[0].v_pointer;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (v_object) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DRAG_AND_DROP_HANDLER));
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = v_object;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_ref (value->data[0].v_pointer);
+#line 16025 "Page.c"
+ } else {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 16029 "Page.c"
+ }
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (old) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_unref (old);
+#line 16035 "Page.c"
+ }
+}
+
+
+void value_take_drag_and_drop_handler (GValue* value, gpointer v_object) {
+ DragAndDropHandler* old;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DRAG_AND_DROP_HANDLER));
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ old = value->data[0].v_pointer;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (v_object) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DRAG_AND_DROP_HANDLER));
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = v_object;
+#line 16054 "Page.c"
+ } else {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ value->data[0].v_pointer = NULL;
+#line 16058 "Page.c"
+ }
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (old) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_unref (old);
+#line 16064 "Page.c"
+ }
+}
+
+
+static void drag_and_drop_handler_class_init (DragAndDropHandlerClass * klass) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ drag_and_drop_handler_parent_class = g_type_class_peek_parent (klass);
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ ((DragAndDropHandlerClass *) klass)->finalize = drag_and_drop_handler_finalize;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_class_add_private (klass, sizeof (DragAndDropHandlerPrivate));
+#line 16076 "Page.c"
+}
+
+
+static void drag_and_drop_handler_instance_init (DragAndDropHandler * self) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv = DRAG_AND_DROP_HANDLER_GET_PRIVATE (self);
+#line 2439 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->drag_destination = NULL;
+#line 2440 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->exporter = NULL;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ self->ref_count = 1;
+#line 16089 "Page.c"
+}
+
+
+static void drag_and_drop_handler_finalize (DragAndDropHandler* obj) {
+ DragAndDropHandler * self;
+ GtkWidget* _tmp0_ = NULL;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandler);
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_destroy (self);
+#line 2471 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp0_ = self->priv->event_source;
+#line 2471 "/home/jens/Source/shotwell/src/Page.vala"
+ if (_tmp0_ != NULL) {
+#line 16104 "Page.c"
+ GtkWidget* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ GtkWidget* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ GtkWidget* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ GtkWidget* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 2472 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp1_ = self->priv->event_source;
+#line 2472 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-begin", gtk_widget_get_type (), &_tmp2_, NULL, FALSE);
+#line 2472 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_begin_gtk_widget_drag_begin, self);
+#line 2473 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp3_ = self->priv->event_source;
+#line 2473 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-data-get", gtk_widget_get_type (), &_tmp4_, NULL, FALSE);
+#line 2473 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_data_get_gtk_widget_drag_data_get, self);
+#line 2474 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp5_ = self->priv->event_source;
+#line 2474 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-end", gtk_widget_get_type (), &_tmp6_, NULL, FALSE);
+#line 2474 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_end_gtk_widget_drag_end, self);
+#line 2475 "/home/jens/Source/shotwell/src/Page.vala"
+ _tmp7_ = self->priv->event_source;
+#line 2475 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_parse_name ("drag-failed", gtk_widget_get_type (), &_tmp8_, NULL, FALSE);
+#line 2475 "/home/jens/Source/shotwell/src/Page.vala"
+ g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _drag_and_drop_handler_on_drag_failed_gtk_widget_drag_failed, self);
+#line 16137 "Page.c"
+ }
+#line 2478 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->page = NULL;
+#line 2479 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->event_source);
+#line 2479 "/home/jens/Source/shotwell/src/Page.vala"
+ self->priv->event_source = NULL;
+#line 2438 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->event_source);
+#line 2439 "/home/jens/Source/shotwell/src/Page.vala"
+ _g_object_unref0 (self->priv->drag_destination);
+#line 2440 "/home/jens/Source/shotwell/src/Page.vala"
+ _exporter_ui_unref0 (self->priv->exporter);
+#line 16151 "Page.c"
+}
+
+
+GType drag_and_drop_handler_get_type (void) {
+ static volatile gsize drag_and_drop_handler_type_id__volatile = 0;
+ if (g_once_init_enter (&drag_and_drop_handler_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_drag_and_drop_handler_init, value_drag_and_drop_handler_free_value, value_drag_and_drop_handler_copy_value, value_drag_and_drop_handler_peek_pointer, "p", value_drag_and_drop_handler_collect_value, "p", value_drag_and_drop_handler_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DragAndDropHandlerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) drag_and_drop_handler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DragAndDropHandler), 0, (GInstanceInitFunc) drag_and_drop_handler_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType drag_and_drop_handler_type_id;
+ drag_and_drop_handler_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DragAndDropHandler", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&drag_and_drop_handler_type_id__volatile, drag_and_drop_handler_type_id);
+ }
+ return drag_and_drop_handler_type_id__volatile;
+}
+
+
+gpointer drag_and_drop_handler_ref (gpointer instance) {
+ DragAndDropHandler* self;
+ self = instance;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ return instance;
+#line 16176 "Page.c"
+}
+
+
+void drag_and_drop_handler_unref (gpointer instance) {
+ DragAndDropHandler* self;
+ self = instance;
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ DRAG_AND_DROP_HANDLER_GET_CLASS (self)->finalize (self);
+#line 2422 "/home/jens/Source/shotwell/src/Page.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 16189 "Page.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/Page.vala b/src/Page.vala
index 2f6f2c3..4877a47 100644
--- a/src/Page.vala
+++ b/src/Page.vala
@@ -1267,7 +1267,7 @@ public abstract class CheckerboardPage : Page {
}
protected virtual string get_filter_no_match_message() {
- return _("No photos/videos found");
+ return _("No photos/videos found which match the current filter");
}
protected virtual void on_item_activated(CheckerboardItem item, Activator activator,
@@ -1471,9 +1471,14 @@ public abstract class CheckerboardPage : Page {
uint state = event.state & (Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK);
// use clicks for multiple selection and activation only; single selects are handled by
- // button release, to allow for multiple items to be selected then dragged
+ // button release, to allow for multiple items to be selected then dragged ...
CheckerboardItem item = get_item_at_pixel(event.x, event.y);
if (item != null) {
+ // ... however, there is no dragging if the user clicks on an interactive part of the
+ // CheckerboardItem (e.g. a tag)
+ if (layout.handle_left_click(item, event.x, event.y, event.state))
+ return true;
+
switch (state) {
case Gdk.ModifierType.CONTROL_MASK:
// with only Ctrl pressed, multiple selections are possible ... chosen item
@@ -1644,6 +1649,9 @@ public abstract class CheckerboardPage : Page {
}
protected virtual bool on_mouse_over(CheckerboardItem? item, int x, int y, Gdk.ModifierType mask) {
+ if (item != null)
+ layout.handle_mouse_motion(item, x, y, mask);
+
// if hovering over the last hovered item, or both are null (nothing highlighted and
// hovering over empty space), do nothing
if (item == highlighted)
diff --git a/src/Photo.c b/src/Photo.c
new file mode 100644
index 0000000..d0e4daa
--- /dev/null
+++ b/src/Photo.c
@@ -0,0 +1,42206 @@
+/* Photo.c generated by valac 0.32.1, the Vala compiler
+ * generated from Photo.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* Specifies how pixel data is fetched from the backing file on disk. MASTER is the original*/
+/* backing photo of any supported photo file format; SOURCE is either the master or the editable*/
+/* file, that is, the appropriate reference file for user display; BASELINE is an appropriate*/
+/* file with the proviso that it may be a suitable substitute for the master and/or the editable.*/
+/* UNMODIFIED represents the photo with no edits, i.e. the head of the pipeline.*/
+/**/
+/* In general, callers want to use the BASELINE unless requirements are specific.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <time.h>
+#include <glib/gstdio.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <cairo.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ())
+
+#define TYPE_PHOTO_IMPORT_PARAMS (photo_import_params_get_type ())
+#define PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParams))
+#define PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass))
+#define IS_PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_IMPORT_PARAMS))
+#define IS_PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_IMPORT_PARAMS))
+#define PHOTO_IMPORT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass))
+
+typedef struct _PhotoImportParams PhotoImportParams;
+typedef struct _PhotoImportParamsClass PhotoImportParamsClass;
+typedef struct _PhotoImportParamsPrivate PhotoImportParamsPrivate;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_THUMBNAILS (thumbnails_get_type ())
+#define THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAILS, Thumbnails))
+#define THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAILS, ThumbnailsClass))
+#define IS_THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAILS))
+#define IS_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAILS))
+#define THUMBNAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAILS, ThumbnailsClass))
+
+typedef struct _Thumbnails Thumbnails;
+typedef struct _ThumbnailsClass ThumbnailsClass;
+
+#define TYPE_PHOTO_ROW (photo_row_get_type ())
+#define PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_ROW, PhotoRow))
+#define PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_ROW, PhotoRowClass))
+#define IS_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_ROW))
+#define IS_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_ROW))
+#define PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_ROW, PhotoRowClass))
+
+typedef struct _PhotoRow PhotoRow;
+typedef struct _PhotoRowClass PhotoRowClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _thumbnails_unref0(var) ((var == NULL) ? NULL : (var = (thumbnails_unref (var), NULL)))
+#define _photo_row_unref0(var) ((var == NULL) ? NULL : (var = (photo_row_unref (var), NULL)))
+typedef struct _ParamSpecPhotoImportParams ParamSpecPhotoImportParams;
+
+#define TYPE_PHOTO_TRANSFORMATION_STATE (photo_transformation_state_get_type ())
+#define PHOTO_TRANSFORMATION_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationState))
+#define PHOTO_TRANSFORMATION_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationStateClass))
+#define IS_PHOTO_TRANSFORMATION_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TRANSFORMATION_STATE))
+#define IS_PHOTO_TRANSFORMATION_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TRANSFORMATION_STATE))
+#define PHOTO_TRANSFORMATION_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationStateClass))
+
+typedef struct _PhotoTransformationState PhotoTransformationState;
+typedef struct _PhotoTransformationStateClass PhotoTransformationStateClass;
+typedef struct _PhotoTransformationStatePrivate PhotoTransformationStatePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _MediaSourcePrivate MediaSourcePrivate;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_BACKING_FILE_STATE (backing_file_state_get_type ())
+#define BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_FILE_STATE, BackingFileState))
+#define BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+#define IS_BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_FILE_STATE))
+#define IS_BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_FILE_STATE))
+#define BACKING_FILE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+
+typedef struct _BackingFileState BackingFileState;
+typedef struct _BackingFileStateClass BackingFileStateClass;
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+typedef struct _PhotoSourcePrivate PhotoSourcePrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+typedef struct _PhotoPrivate PhotoPrivate;
+
+#define TYPE_ROTATION (rotation_get_type ())
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+
+#define PHOTO_TYPE_BACKING_READERS (photo_backing_readers_get_type ())
+#define PHOTO_BACKING_READERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_BACKING_READERS, PhotoBackingReaders))
+#define PHOTO_BACKING_READERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_BACKING_READERS, PhotoBackingReadersClass))
+#define PHOTO_IS_BACKING_READERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_BACKING_READERS))
+#define PHOTO_IS_BACKING_READERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_BACKING_READERS))
+#define PHOTO_BACKING_READERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_BACKING_READERS, PhotoBackingReadersClass))
+
+typedef struct _PhotoBackingReaders PhotoBackingReaders;
+typedef struct _PhotoBackingReadersClass PhotoBackingReadersClass;
+
+#define TYPE_PIXEL_TRANSFORMER (pixel_transformer_get_type ())
+#define PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformer))
+#define PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+#define IS_PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMER))
+#define IS_PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMER))
+#define PIXEL_TRANSFORMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+
+typedef struct _PixelTransformer PixelTransformer;
+typedef struct _PixelTransformerClass PixelTransformerClass;
+
+#define TYPE_PIXEL_TRANSFORMATION_BUNDLE (pixel_transformation_bundle_get_type ())
+#define PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundle))
+#define PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define PIXEL_TRANSFORMATION_BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+
+typedef struct _PixelTransformationBundle PixelTransformationBundle;
+typedef struct _PixelTransformationBundleClass PixelTransformationBundleClass;
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define PHOTO_TYPE_CACHED_PIXBUF (photo_cached_pixbuf_get_type ())
+#define PHOTO_CACHED_PIXBUF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_CACHED_PIXBUF, PhotoCachedPixbuf))
+#define PHOTO_CACHED_PIXBUF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_CACHED_PIXBUF, PhotoCachedPixbufClass))
+#define PHOTO_IS_CACHED_PIXBUF(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_CACHED_PIXBUF))
+#define PHOTO_IS_CACHED_PIXBUF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_CACHED_PIXBUF))
+#define PHOTO_CACHED_PIXBUF_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_CACHED_PIXBUF, PhotoCachedPixbufClass))
+
+typedef struct _PhotoCachedPixbuf PhotoCachedPixbuf;
+typedef struct _PhotoCachedPixbufClass PhotoCachedPixbufClass;
+#define _backing_photo_row_unref0(var) ((var == NULL) ? NULL : (var = (backing_photo_row_unref (var), NULL)))
+#define _photo_backing_readers_unref0(var) ((var == NULL) ? NULL : (var = (photo_backing_readers_unref (var), NULL)))
+#define _pixel_transformer_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformer_unref (var), NULL)))
+#define _pixel_transformation_bundle_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_bundle_unref (var), NULL)))
+#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
+typedef struct _PhotoRowPrivate PhotoRowPrivate;
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define TYPE_KEY_VALUE_MAP (key_value_map_get_type ())
+#define KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_VALUE_MAP, KeyValueMap))
+#define KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+#define IS_KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_VALUE_MAP))
+#define IS_KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_VALUE_MAP))
+#define KEY_VALUE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+
+typedef struct _KeyValueMap KeyValueMap;
+typedef struct _KeyValueMapClass KeyValueMapClass;
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+typedef struct _PhotoBackingReadersPrivate PhotoBackingReadersPrivate;
+#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL)))
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_PHOTO_TABLE (photo_table_get_type ())
+#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
+#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
+#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
+#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
+#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))
+
+typedef struct _PhotoTable PhotoTable;
+typedef struct _PhotoTableClass PhotoTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_BACKING_PHOTO_TABLE (backing_photo_table_get_type ())
+#define BACKING_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_TABLE, BackingPhotoTable))
+#define BACKING_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_TABLE, BackingPhotoTableClass))
+#define IS_BACKING_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_TABLE))
+#define IS_BACKING_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_TABLE))
+#define BACKING_PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_TABLE, BackingPhotoTableClass))
+
+typedef struct _BackingPhotoTable BackingPhotoTable;
+typedef struct _BackingPhotoTableClass BackingPhotoTableClass;
+
+#define TYPE_PHOTO_PREVIEW (photo_preview_get_type ())
+#define PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_PREVIEW, PhotoPreview))
+#define PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+#define IS_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_PREVIEW))
+#define IS_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_PREVIEW))
+#define PHOTO_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+
+typedef struct _PhotoPreview PhotoPreview;
+typedef struct _PhotoPreviewClass PhotoPreviewClass;
+#define _photo_preview_unref0(var) ((var == NULL) ? NULL : (var = (photo_preview_unref (var), NULL)))
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_INTERROGATOR (photo_file_interrogator_get_type ())
+#define PHOTO_FILE_INTERROGATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogator))
+#define PHOTO_FILE_INTERROGATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogatorClass))
+#define IS_PHOTO_FILE_INTERROGATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_INTERROGATOR))
+#define IS_PHOTO_FILE_INTERROGATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_INTERROGATOR))
+#define PHOTO_FILE_INTERROGATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogatorClass))
+
+typedef struct _PhotoFileInterrogator PhotoFileInterrogator;
+typedef struct _PhotoFileInterrogatorClass PhotoFileInterrogatorClass;
+#define _photo_file_interrogator_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_interrogator_unref (var), NULL)))
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+
+#define PHOTO_TYPE_REIMPORT_MASTER_STATE (photo_reimport_master_state_get_type ())
+#define PHOTO_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterState))
+#define PHOTO_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+#define PHOTO_IS_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_IS_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_REIMPORT_MASTER_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+
+typedef struct _PhotoReimportMasterState PhotoReimportMasterState;
+typedef struct _PhotoReimportMasterStateClass PhotoReimportMasterStateClass;
+#define _photo_reimport_master_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_master_state_unref (var), NULL)))
+
+#define PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL (photo_reimport_master_state_impl_get_type ())
+#define PHOTO_REIMPORT_MASTER_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL, PhotoReimportMasterStateImpl))
+#define PHOTO_REIMPORT_MASTER_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL, PhotoReimportMasterStateImplClass))
+#define PHOTO_IS_REIMPORT_MASTER_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL))
+#define PHOTO_IS_REIMPORT_MASTER_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL))
+#define PHOTO_REIMPORT_MASTER_STATE_IMPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL, PhotoReimportMasterStateImplClass))
+
+typedef struct _PhotoReimportMasterStateImpl PhotoReimportMasterStateImpl;
+typedef struct _PhotoReimportMasterStateImplClass PhotoReimportMasterStateImplClass;
+typedef struct _PhotoReimportMasterStatePrivate PhotoReimportMasterStatePrivate;
+typedef struct _PhotoReimportMasterStateImplPrivate PhotoReimportMasterStateImplPrivate;
+
+#define PHOTO_TYPE_REIMPORT_EDITABLE_STATE (photo_reimport_editable_state_get_type ())
+#define PHOTO_REIMPORT_EDITABLE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableState))
+#define PHOTO_REIMPORT_EDITABLE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableStateClass))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE))
+#define PHOTO_REIMPORT_EDITABLE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableStateClass))
+
+typedef struct _PhotoReimportEditableState PhotoReimportEditableState;
+typedef struct _PhotoReimportEditableStateClass PhotoReimportEditableStateClass;
+#define _photo_reimport_editable_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_editable_state_unref (var), NULL)))
+
+#define PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL (photo_reimport_editable_state_impl_get_type ())
+#define PHOTO_REIMPORT_EDITABLE_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL, PhotoReimportEditableStateImpl))
+#define PHOTO_REIMPORT_EDITABLE_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL, PhotoReimportEditableStateImplClass))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL))
+#define PHOTO_REIMPORT_EDITABLE_STATE_IMPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL, PhotoReimportEditableStateImplClass))
+
+typedef struct _PhotoReimportEditableStateImpl PhotoReimportEditableStateImpl;
+typedef struct _PhotoReimportEditableStateImplClass PhotoReimportEditableStateImplClass;
+typedef struct _PhotoReimportEditableStatePrivate PhotoReimportEditableStatePrivate;
+typedef struct _PhotoReimportEditableStateImplPrivate PhotoReimportEditableStateImplPrivate;
+
+#define PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE (photo_reimport_raw_development_state_get_type ())
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentState))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentStateClass))
+#define PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE))
+#define PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentStateClass))
+
+typedef struct _PhotoReimportRawDevelopmentState PhotoReimportRawDevelopmentState;
+typedef struct _PhotoReimportRawDevelopmentStateClass PhotoReimportRawDevelopmentStateClass;
+#define _photo_reimport_raw_development_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_raw_development_state_unref (var), NULL)))
+
+#define PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL (photo_reimport_raw_development_state_impl_get_type ())
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL, PhotoReimportRawDevelopmentStateImpl))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL, PhotoReimportRawDevelopmentStateImplClass))
+#define PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL))
+#define PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL, PhotoReimportRawDevelopmentStateImplClass))
+
+typedef struct _PhotoReimportRawDevelopmentStateImpl PhotoReimportRawDevelopmentStateImpl;
+typedef struct _PhotoReimportRawDevelopmentStateImplClass PhotoReimportRawDevelopmentStateImplClass;
+
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT (photo_reimport_raw_development_state_impl_dev_to_reimport_get_type ())
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_DEV_TO_REIMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT, PhotoReimportRawDevelopmentStateImplDevToReimport))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_DEV_TO_REIMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT, PhotoReimportRawDevelopmentStateImplDevToReimportClass))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_IS_DEV_TO_REIMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_IS_DEV_TO_REIMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_DEV_TO_REIMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT, PhotoReimportRawDevelopmentStateImplDevToReimportClass))
+
+typedef struct _PhotoReimportRawDevelopmentStateImplDevToReimport PhotoReimportRawDevelopmentStateImplDevToReimport;
+typedef struct _PhotoReimportRawDevelopmentStateImplDevToReimportClass PhotoReimportRawDevelopmentStateImplDevToReimportClass;
+typedef struct _PhotoReimportRawDevelopmentStatePrivate PhotoReimportRawDevelopmentStatePrivate;
+typedef struct _PhotoReimportRawDevelopmentStateImplPrivate PhotoReimportRawDevelopmentStateImplPrivate;
+typedef struct _PhotoReimportRawDevelopmentStateImplDevToReimportPrivate PhotoReimportRawDevelopmentStateImplDevToReimportPrivate;
+#define _photo_reimport_raw_development_state_impl_dev_to_reimport_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_raw_development_state_impl_dev_to_reimport_unref (var), NULL)))
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define PHOTO_METADATA_TYPE_SET_OPTION (photo_metadata_set_option_get_type ())
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+#define _key_value_map_unref0(var) ((var == NULL) ? NULL : (var = (key_value_map_unref (var), NULL)))
+
+#define TYPE_PIXEL_TRANSFORMATION_TYPE (pixel_transformation_type_get_type ())
+
+#define TYPE_PIXEL_TRANSFORMATION (pixel_transformation_get_type ())
+#define PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformation))
+#define PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+#define IS_PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION))
+#define IS_PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION))
+#define PIXEL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+
+typedef struct _PixelTransformation PixelTransformation;
+typedef struct _PixelTransformationClass PixelTransformationClass;
+#define _pixel_transformation_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_unref (var), NULL)))
+
+#define PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL (photo_photo_transformation_state_impl_get_type ())
+#define PHOTO_PHOTO_TRANSFORMATION_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL, PhotoPhotoTransformationStateImpl))
+#define PHOTO_PHOTO_TRANSFORMATION_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL, PhotoPhotoTransformationStateImplClass))
+#define PHOTO_IS_PHOTO_TRANSFORMATION_STATE_IMPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL))
+#define PHOTO_IS_PHOTO_TRANSFORMATION_STATE_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL))
+#define PHOTO_PHOTO_TRANSFORMATION_STATE_IMPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL, PhotoPhotoTransformationStateImplClass))
+
+typedef struct _PhotoPhotoTransformationStateImpl PhotoPhotoTransformationStateImpl;
+typedef struct _PhotoPhotoTransformationStateImplClass PhotoPhotoTransformationStateImplClass;
+
+#define EDITING_TOOLS_TYPE_REDEYE_INSTANCE (editing_tools_redeye_instance_get_type ())
+typedef struct _EditingToolsRedeyeInstance EditingToolsRedeyeInstance;
+typedef struct _PhotoCachedPixbufPrivate PhotoCachedPixbufPrivate;
+#define _photo_cached_pixbuf_unref0(var) ((var == NULL) ? NULL : (var = (photo_cached_pixbuf_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
+typedef struct _PhotoPhotoTransformationStateImplPrivate PhotoPhotoTransformationStateImplPrivate;
+typedef struct _PhotoParamSpecBackingReaders PhotoParamSpecBackingReaders;
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+typedef struct _PhotoParamSpecCachedPixbuf PhotoParamSpecCachedPixbuf;
+typedef struct _PhotoParamSpecReimportMasterState PhotoParamSpecReimportMasterState;
+typedef struct _PhotoParamSpecReimportEditableState PhotoParamSpecReimportEditableState;
+typedef struct _PhotoParamSpecReimportRawDevelopmentState PhotoParamSpecReimportRawDevelopmentState;
+typedef struct _PhotoReimportRawDevelopmentStateImplParamSpecDevToReimport PhotoReimportRawDevelopmentStateImplParamSpecDevToReimport;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+typedef struct _MediaSourceCollectionPrivate MediaSourceCollectionPrivate;
+
+#define TYPE_DATABASE_SOURCE_HOLDING_TANK (database_source_holding_tank_get_type ())
+#define DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank))
+#define DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+#define IS_DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define IS_DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define DATABASE_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+
+typedef struct _DatabaseSourceHoldingTank DatabaseSourceHoldingTank;
+typedef struct _DatabaseSourceHoldingTankClass DatabaseSourceHoldingTankClass;
+
+#define TYPE_MEDIA_SOURCE_HOLDING_TANK (media_source_holding_tank_get_type ())
+#define MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank))
+#define MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+#define IS_MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define IS_MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define MEDIA_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+
+typedef struct _MediaSourceHoldingTank MediaSourceHoldingTank;
+typedef struct _MediaSourceHoldingTankClass MediaSourceHoldingTankClass;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_MEDIA_MONITOR (media_monitor_get_type ())
+#define MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_MONITOR, MediaMonitor))
+#define MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+#define IS_MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_MONITOR))
+#define IS_MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_MONITOR))
+#define MEDIA_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+
+typedef struct _MediaMonitor MediaMonitor;
+typedef struct _MediaMonitorClass MediaMonitorClass;
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+typedef struct _LibraryPhotoSourceCollectionPrivate LibraryPhotoSourceCollectionPrivate;
+
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE (library_photo_source_collection_state_get_type ())
+#define _transaction_controller_unref0(var) ((var == NULL) ? NULL : (var = (transaction_controller_unref (var), NULL)))
+#define _source_holding_tank_unref0(var) ((var == NULL) ? NULL : (var = (source_holding_tank_unref (var), NULL)))
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK (library_photo_source_holding_tank_get_type ())
+#define LIBRARY_PHOTO_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTank))
+#define LIBRARY_PHOTO_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTankClass))
+#define IS_LIBRARY_PHOTO_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK))
+#define IS_LIBRARY_PHOTO_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK))
+#define LIBRARY_PHOTO_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTankClass))
+
+typedef struct _LibraryPhotoSourceHoldingTank LibraryPhotoSourceHoldingTank;
+typedef struct _LibraryPhotoSourceHoldingTankClass LibraryPhotoSourceHoldingTankClass;
+
+#define TYPE_PHOTO_MONITOR (photo_monitor_get_type ())
+#define PHOTO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_MONITOR, PhotoMonitor))
+#define PHOTO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_MONITOR, PhotoMonitorClass))
+#define IS_PHOTO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_MONITOR))
+#define IS_PHOTO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_MONITOR))
+#define PHOTO_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_MONITOR, PhotoMonitorClass))
+
+typedef struct _PhotoMonitor PhotoMonitor;
+typedef struct _PhotoMonitorClass PhotoMonitorClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+
+#define TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER (media_source_transaction_controller_get_type ())
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionController))
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionControllerClass))
+#define IS_MEDIA_SOURCE_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER))
+#define IS_MEDIA_SOURCE_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER))
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionControllerClass))
+
+typedef struct _MediaSourceTransactionController MediaSourceTransactionController;
+typedef struct _MediaSourceTransactionControllerClass MediaSourceTransactionControllerClass;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+typedef struct _LibraryPhotoPrivate LibraryPhotoPrivate;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define THUMBNAIL_CACHE_TYPE_SIZE (thumbnail_cache_size_get_type ())
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+typedef struct _SourceHoldingTankPrivate SourceHoldingTankPrivate;
+typedef struct _DatabaseSourceHoldingTankPrivate DatabaseSourceHoldingTankPrivate;
+typedef struct _MediaSourceHoldingTankPrivate MediaSourceHoldingTankPrivate;
+typedef struct _LibraryPhotoSourceHoldingTankPrivate LibraryPhotoSourceHoldingTankPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ BACKING_FETCH_MODE_SOURCE,
+ BACKING_FETCH_MODE_BASELINE,
+ BACKING_FETCH_MODE_MASTER,
+ BACKING_FETCH_MODE_UNMODIFIED
+} BackingFetchMode;
+
+struct _ImportID {
+ gint64 id;
+};
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoImportParams {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoImportParamsPrivate * priv;
+ GFile* file;
+ GFile* final_associated_file;
+ ImportID import_id;
+ PhotoFileSnifferOptions sniffer_options;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* full_md5;
+ Thumbnails* thumbnails;
+ PhotoRow* row;
+ GeeCollection* keywords;
+};
+
+struct _PhotoImportParamsClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoImportParams *self);
+};
+
+struct _ParamSpecPhotoImportParams {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoTransformationState {
+ GObject parent_instance;
+ PhotoTransformationStatePrivate * priv;
+};
+
+struct _PhotoTransformationStateClass {
+ GObjectClass parent_class;
+ void (*broken) (PhotoTransformationState* self);
+};
+
+struct _PhotoTransformationStatePrivate {
+ gboolean is_broke;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _ThumbnailSource {
+ DataSource parent_instance;
+ ThumbnailSourcePrivate * priv;
+};
+
+struct _ThumbnailSourceClass {
+ DataSourceClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailSource* self);
+ GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ gchar* (*get_representative_id) (ThumbnailSource* self);
+ PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self);
+ void (*thumbnail_altered) (ThumbnailSource* self);
+};
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _MediaSource {
+ ThumbnailSource parent_instance;
+ MediaSourcePrivate * priv;
+};
+
+struct _MediaSourceClass {
+ ThumbnailSourceClass parent_class;
+ void (*notify_master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+ gboolean (*set_event_id) (MediaSource* self, EventID* id);
+ gchar* (*get_basename) (MediaSource* self);
+ GFile* (*get_file) (MediaSource* self);
+ GFile* (*get_master_file) (MediaSource* self);
+ guint64 (*get_master_filesize) (MediaSource* self);
+ guint64 (*get_filesize) (MediaSource* self);
+ time_t (*get_timestamp) (MediaSource* self);
+ BackingFileState** (*get_backing_files_state) (MediaSource* self, int* result_length1);
+ gchar* (*get_title) (MediaSource* self);
+ gchar* (*get_comment) (MediaSource* self);
+ void (*set_title) (MediaSource* self, const gchar* title);
+ gboolean (*set_comment) (MediaSource* self, const gchar* comment);
+ Rating (*get_rating) (MediaSource* self);
+ void (*set_rating) (MediaSource* self, Rating rating);
+ void (*increase_rating) (MediaSource* self);
+ void (*decrease_rating) (MediaSource* self);
+ void (*get_dimensions) (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+ GdkPixbuf* (*get_preview_pixbuf) (MediaSource* self, Scaling* scaling, GError** error);
+ gboolean (*is_trashed) (MediaSource* self);
+ void (*trash) (MediaSource* self);
+ void (*untrash) (MediaSource* self);
+ gboolean (*is_offline) (MediaSource* self);
+ void (*mark_offline) (MediaSource* self);
+ void (*mark_online) (MediaSource* self);
+ gchar* (*get_master_md5) (MediaSource* self);
+ void (*get_event_id) (MediaSource* self, EventID* result);
+ time_t (*get_exposure_time) (MediaSource* self);
+ void (*get_import_id) (MediaSource* self, ImportID* result);
+ void (*master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+};
+
+struct _PhotoSource {
+ MediaSource parent_instance;
+ PhotoSourcePrivate * priv;
+};
+
+struct _PhotoSourceClass {
+ MediaSourceClass parent_class;
+ PhotoMetadata* (*get_metadata) (PhotoSource* self);
+ GdkPixbuf* (*get_pixbuf) (PhotoSource* self, Scaling* scaling, GError** error);
+};
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+typedef enum {
+ ROTATION_CLOCKWISE,
+ ROTATION_COUNTERCLOCKWISE,
+ ROTATION_MIRROR,
+ ROTATION_UPSIDE_DOWN
+} Rotation;
+
+struct _Photo {
+ PhotoSource parent_instance;
+ PhotoPrivate * priv;
+ PhotoRow* row;
+ gboolean can_rotate_now;
+ BackingPhotoRow* backing_photo_row;
+};
+
+struct _PhotoClass {
+ PhotoSourceClass parent_class;
+ void (*notify_editable_replaced) (Photo* self, GFile* old_file, GFile* new_file);
+ void (*notify_raw_development_modified) (Photo* self);
+ void (*notify_baseline_replaced) (Photo* self);
+ void (*notify_master_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*notify_editable_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*notify_source_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*notify_baseline_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*apply_user_metadata_for_reimport) (Photo* self, PhotoMetadata* metadata);
+ void (*rotate) (Photo* self, Rotation rotation);
+ gboolean (*has_user_generated_metadata) (Photo* self);
+ void (*set_user_metadata_for_export) (Photo* self, PhotoMetadata* metadata);
+ void (*editable_replaced) (Photo* self, GFile* old_file, GFile* new_file);
+ void (*raw_development_modified) (Photo* self);
+ void (*baseline_replaced) (Photo* self);
+ void (*master_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*editable_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*baseline_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*source_reimported) (Photo* self, PhotoMetadata* metadata);
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _PhotoPrivate {
+ time_t cached_exposure_time;
+ GRecMutex __lock_row;
+ BackingPhotoRow* editable;
+ PhotoBackingReaders* readers;
+ GRecMutex __lock_readers;
+ PixelTransformer* transformer;
+ PixelTransformationBundle* adjustments;
+ gchar* file_title;
+ GFileMonitor* editable_monitor;
+ OneShotScheduler* reimport_editable_scheduler;
+ OneShotScheduler* update_editable_attributes_scheduler;
+ OneShotScheduler* remove_editable_scheduler;
+ GeeHashMap* developments;
+ GRecMutex __lock_developments;
+};
+
+struct _PhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+struct _PhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoRowPrivate * priv;
+ PhotoID photo_id;
+ BackingPhotoRow* master;
+ time_t exposure_time;
+ ImportID import_id;
+ EventID event_id;
+ Orientation orientation;
+ GeeHashMap* transformations;
+ gchar* md5;
+ gchar* thumbnail_md5;
+ gchar* exif_md5;
+ time_t time_created;
+ guint64 flags;
+ Rating rating;
+ gchar* title;
+ gchar* comment;
+ gchar* backlinks;
+ time_t time_reimported;
+ BackingPhotoID editable_id;
+ gboolean metadata_dirty;
+ RawDeveloper developer;
+ BackingPhotoID* development_ids;
+ gint development_ids_length1;
+};
+
+struct _PhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoRow *self);
+};
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+struct _PhotoBackingReaders {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoBackingReadersPrivate * priv;
+ PhotoFileReader* master;
+ PhotoFileReader* developer;
+ PhotoFileReader* editable;
+};
+
+struct _PhotoBackingReadersClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoBackingReaders *self);
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+typedef enum {
+ PHOTO_FORMAT_ERROR_READ_ONLY
+} PhotoFormatError;
+#define PHOTO_FORMAT_ERROR photo_format_error_quark ()
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+struct _PhotoReimportMasterState {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoReimportMasterStatePrivate * priv;
+};
+
+struct _PhotoReimportMasterStateClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoReimportMasterState *self);
+};
+
+struct _PhotoReimportMasterStateImpl {
+ PhotoReimportMasterState parent_instance;
+ PhotoReimportMasterStateImplPrivate * priv;
+ PhotoRow* row;
+ PhotoMetadata* metadata;
+ gchar** alterations;
+ gint alterations_length1;
+ gint _alterations_size_;
+ gboolean metadata_only;
+};
+
+struct _PhotoReimportMasterStateImplClass {
+ PhotoReimportMasterStateClass parent_class;
+};
+
+struct _PhotoReimportEditableState {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoReimportEditableStatePrivate * priv;
+};
+
+struct _PhotoReimportEditableStateClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoReimportEditableState *self);
+};
+
+struct _PhotoReimportEditableStateImpl {
+ PhotoReimportEditableState parent_instance;
+ PhotoReimportEditableStateImplPrivate * priv;
+ BackingPhotoRow* backing_state;
+ PhotoMetadata* metadata;
+ gboolean metadata_only;
+};
+
+struct _PhotoReimportEditableStateImplClass {
+ PhotoReimportEditableStateClass parent_class;
+};
+
+struct _PhotoReimportRawDevelopmentState {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoReimportRawDevelopmentStatePrivate * priv;
+};
+
+struct _PhotoReimportRawDevelopmentStateClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoReimportRawDevelopmentState *self);
+};
+
+struct _PhotoReimportRawDevelopmentStateImpl {
+ PhotoReimportRawDevelopmentState parent_instance;
+ PhotoReimportRawDevelopmentStateImplPrivate * priv;
+ GeeCollection* list;
+ gboolean metadata_only;
+};
+
+struct _PhotoReimportRawDevelopmentStateImplClass {
+ PhotoReimportRawDevelopmentStateClass parent_class;
+};
+
+struct _PhotoReimportRawDevelopmentStateImplDevToReimport {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoReimportRawDevelopmentStateImplDevToReimportPrivate * priv;
+ BackingPhotoRow* backing;
+ PhotoMetadata* metadata;
+};
+
+struct _PhotoReimportRawDevelopmentStateImplDevToReimportClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoReimportRawDevelopmentStateImplDevToReimport *self);
+};
+
+typedef enum {
+ PHOTO_METADATA_SET_OPTION_ALL_DOMAINS,
+ PHOTO_METADATA_SET_OPTION_ONLY_IF_DOMAIN_PRESENT,
+ PHOTO_METADATA_SET_OPTION_AT_LEAST_DEFAULT_DOMAIN
+} PhotoMetadataSetOption;
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+typedef enum {
+ PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION,
+ PIXEL_TRANSFORMATION_TYPE_SHADOWS,
+ PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS,
+ PIXEL_TRANSFORMATION_TYPE_TEMPERATURE,
+ PIXEL_TRANSFORMATION_TYPE_TINT,
+ PIXEL_TRANSFORMATION_TYPE_SATURATION,
+ PIXEL_TRANSFORMATION_TYPE_EXPOSURE
+} PixelTransformationType;
+
+struct _EditingToolsRedeyeInstance {
+ GdkPoint center;
+ gint radius;
+};
+
+struct _PhotoCachedPixbuf {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoCachedPixbufPrivate * priv;
+ Photo* photo;
+ GdkPixbuf* pixbuf;
+ GTimer* last_touched;
+};
+
+struct _PhotoCachedPixbufClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoCachedPixbuf *self);
+};
+
+typedef void (*OneShotCallback) (void* user_data);
+struct _PhotoPhotoTransformationStateImpl {
+ PhotoTransformationState parent_instance;
+ PhotoPhotoTransformationStateImplPrivate * priv;
+};
+
+struct _PhotoPhotoTransformationStateImplClass {
+ PhotoTransformationStateClass parent_class;
+};
+
+struct _PhotoPhotoTransformationStateImplPrivate {
+ Photo* photo;
+ Orientation orientation;
+ GeeHashMap* transformations;
+ PixelTransformer* transformer;
+ PixelTransformationBundle* adjustments;
+};
+
+struct _PhotoParamSpecBackingReaders {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoParamSpecCachedPixbuf {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoParamSpecReimportMasterState {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoParamSpecReimportEditableState {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoParamSpecReimportRawDevelopmentState {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoReimportRawDevelopmentStateImplParamSpecDevToReimport {
+ GParamSpec parent_instance;
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _MediaSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ MediaSourceCollectionPrivate * priv;
+};
+
+struct _MediaSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+ MediaSourceHoldingTank* (*create_trashcan) (MediaSourceCollection* self);
+ MediaSourceHoldingTank* (*create_offline_bin) (MediaSourceCollection* self);
+ MediaMonitor* (*create_media_monitor) (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable);
+ gchar* (*get_typename) (MediaSourceCollection* self);
+ gboolean (*is_file_recognized) (MediaSourceCollection* self, GFile* file);
+ MediaSource* (*fetch_by_numeric_id) (MediaSourceCollection* self, gint64 numeric_id);
+ void (*notify_import_roll_altered) (MediaSourceCollection* self);
+ void (*notify_flagged_contents_altered) (MediaSourceCollection* self);
+ void (*notify_media_import_starting) (MediaSourceCollection* self, GeeCollection* media);
+ void (*notify_media_import_completed) (MediaSourceCollection* self, GeeCollection* media);
+ MediaSource* (*fetch_by_source_id) (MediaSourceCollection* self, const gchar* source_id);
+ GeeCollection* (*get_event_source_ids) (MediaSourceCollection* self, EventID* event_id);
+ void (*import_many) (MediaSourceCollection* self, GeeCollection* media);
+ void (*postprocess_imported_media) (MediaSourceCollection* self, GeeCollection* media);
+ void (*media_import_starting) (MediaSourceCollection* self, GeeCollection* media);
+ void (*media_import_completed) (MediaSourceCollection* self, GeeCollection* media);
+ void (*master_file_replaced) (MediaSourceCollection* self, MediaSource* media, GFile* old_file, GFile* new_file);
+ void (*trashcan_contents_altered) (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+ void (*import_roll_altered) (MediaSourceCollection* self);
+ void (*offline_contents_altered) (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+ void (*flagged_contents_altered) (MediaSourceCollection* self);
+ TransactionController* (*get_transaction_controller) (MediaSourceCollection* self);
+};
+
+struct _LibraryPhotoSourceCollection {
+ MediaSourceCollection parent_instance;
+ LibraryPhotoSourceCollectionPrivate * priv;
+};
+
+struct _LibraryPhotoSourceCollectionClass {
+ MediaSourceCollectionClass parent_class;
+ void (*notify_master_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+ void (*notify_editable_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+ void (*notify_source_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+ void (*notify_baseline_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+ void (*master_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+ void (*editable_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+ void (*baseline_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+ void (*source_reimported) (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+};
+
+struct _LibraryPhotoSourceCollectionPrivate {
+ TransactionController* _transaction_controller;
+ GeeHashMap* by_editable_file;
+ GeeHashMap* by_raw_development_file;
+ GeeMultiMap* filesize_to_photo;
+ GeeHashMap* photo_to_master_filesize;
+ GeeHashMap* photo_to_editable_filesize;
+ GeeMultiMap* photo_to_raw_development_filesize;
+};
+
+typedef enum {
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_UNKNOWN,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER
+} LibraryPhotoSourceCollectionState;
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+typedef gboolean (*SourceHoldingTankCheckToKeep) (DataSource* source, Alteration* alteration, void* user_data);
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _LibraryPhoto {
+ Photo parent_instance;
+ LibraryPhotoPrivate * priv;
+};
+
+struct _LibraryPhotoClass {
+ PhotoClass parent_class;
+};
+
+struct _LibraryPhotoPrivate {
+ gboolean block_thumbnail_generation;
+ OneShotScheduler* thumbnail_scheduler;
+ GeeCollection* import_keywords;
+};
+
+typedef enum {
+ THUMBNAIL_CACHE_SIZE_LARGEST = 360,
+ THUMBNAIL_CACHE_SIZE_BIG = 360,
+ THUMBNAIL_CACHE_SIZE_MEDIUM = 128,
+ THUMBNAIL_CACHE_SIZE_SMALLEST = 128
+} ThumbnailCacheSize;
+
+struct _SourceHoldingTank {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceHoldingTankPrivate * priv;
+};
+
+struct _SourceHoldingTankClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceHoldingTank *self);
+ void (*notify_contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+ void (*contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+};
+
+struct _DatabaseSourceHoldingTank {
+ SourceHoldingTank parent_instance;
+ DatabaseSourceHoldingTankPrivate * priv;
+};
+
+struct _DatabaseSourceHoldingTankClass {
+ SourceHoldingTankClass parent_class;
+};
+
+struct _MediaSourceHoldingTank {
+ DatabaseSourceHoldingTank parent_instance;
+ MediaSourceHoldingTankPrivate * priv;
+};
+
+struct _MediaSourceHoldingTankClass {
+ DatabaseSourceHoldingTankClass parent_class;
+};
+
+struct _LibraryPhotoSourceHoldingTank {
+ MediaSourceHoldingTank parent_instance;
+ LibraryPhotoSourceHoldingTankPrivate * priv;
+};
+
+struct _LibraryPhotoSourceHoldingTankClass {
+ MediaSourceHoldingTankClass parent_class;
+};
+
+struct _LibraryPhotoSourceHoldingTankPrivate {
+ GeeHashMap* editable_file_map;
+ GeeHashMap* development_file_map;
+ GeeMultiMap* reverse_editable_file_map;
+ GeeMultiMap* reverse_development_file_map;
+};
+
+
+static gpointer photo_import_params_parent_class = NULL;
+static gpointer photo_transformation_state_parent_class = NULL;
+static gpointer photo_parent_class = NULL;
+static GeeLinkedList* photo_source_pixbuf_cache;
+static GRecMutex __lock_photo_source_pixbuf_cache = {0};
+static GeeLinkedList* photo_source_pixbuf_cache = NULL;
+static guint photo_discard_source_id;
+static guint photo_discard_source_id = (guint) 0;
+static gboolean photo__develop_raw_photos_to_files;
+static gboolean photo__develop_raw_photos_to_files = FALSE;
+static gpointer photo_photo_transformation_state_impl_parent_class = NULL;
+static gpointer photo_backing_readers_parent_class = NULL;
+static gpointer photo_cached_pixbuf_parent_class = NULL;
+static gpointer photo_reimport_master_state_parent_class = NULL;
+static gpointer photo_reimport_master_state_impl_parent_class = NULL;
+static gpointer photo_reimport_editable_state_parent_class = NULL;
+static gpointer photo_reimport_editable_state_impl_parent_class = NULL;
+static gpointer photo_reimport_raw_development_state_parent_class = NULL;
+static gpointer photo_reimport_raw_development_state_impl_parent_class = NULL;
+static gpointer photo_reimport_raw_development_state_impl_dev_to_reimport_parent_class = NULL;
+static DateableIface* photo_dateable_parent_iface = NULL;
+static gpointer library_photo_source_collection_parent_class = NULL;
+static gpointer library_photo_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+LibraryPhotoSourceCollection* library_photo_global = NULL;
+extern TagSourceCollection* tag_global;
+static FlaggableIface* library_photo_flaggable_parent_iface = NULL;
+static MonitorableIface* library_photo_monitorable_parent_iface = NULL;
+static gpointer library_photo_source_holding_tank_parent_class = NULL;
+
+GType backing_fetch_mode_get_type (void) G_GNUC_CONST;
+gpointer photo_import_params_ref (gpointer instance);
+void photo_import_params_unref (gpointer instance);
+GParamSpec* param_spec_photo_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_import_params (GValue* value, gpointer v_object);
+void value_take_photo_import_params (GValue* value, gpointer v_object);
+gpointer value_get_photo_import_params (const GValue* value);
+GType photo_import_params_get_type (void) G_GNUC_CONST;
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+gpointer thumbnails_ref (gpointer instance);
+void thumbnails_unref (gpointer instance);
+GParamSpec* param_spec_thumbnails (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_thumbnails (GValue* value, gpointer v_object);
+void value_take_thumbnails (GValue* value, gpointer v_object);
+gpointer value_get_thumbnails (const GValue* value);
+GType thumbnails_get_type (void) G_GNUC_CONST;
+gpointer photo_row_ref (gpointer instance);
+void photo_row_unref (gpointer instance);
+GParamSpec* param_spec_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_row (GValue* value, gpointer v_object);
+void value_take_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_photo_row (const GValue* value);
+GType photo_row_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_IMPORT_PARAMS_DUMMY_PROPERTY
+};
+PhotoRow* photo_row_new (void);
+PhotoRow* photo_row_construct (GType object_type);
+PhotoImportParams* photo_import_params_new (GFile* file, GFile* final_associated_file, ImportID* import_id, PhotoFileSnifferOptions sniffer_options, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, Thumbnails* thumbnails);
+PhotoImportParams* photo_import_params_construct (GType object_type, GFile* file, GFile* final_associated_file, ImportID* import_id, PhotoFileSnifferOptions sniffer_options, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, Thumbnails* thumbnails);
+PhotoImportParams* photo_import_params_new_create_placeholder (GFile* file, ImportID* import_id);
+PhotoImportParams* photo_import_params_construct_create_placeholder (GType object_type, GFile* file, ImportID* import_id);
+static void photo_import_params_finalize (PhotoImportParams* obj);
+GType photo_transformation_state_get_type (void) G_GNUC_CONST;
+#define PHOTO_TRANSFORMATION_STATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationStatePrivate))
+enum {
+ PHOTO_TRANSFORMATION_STATE_DUMMY_PROPERTY
+};
+PhotoTransformationState* photo_transformation_state_construct (GType object_type);
+gboolean photo_transformation_state_is_broken (PhotoTransformationState* self);
+static void photo_transformation_state_real_broken (PhotoTransformationState* self);
+static void photo_transformation_state_finalize (GObject* obj);
+GType rating_get_type (void) G_GNUC_CONST;
+gboolean rating_can_increase (Rating self);
+gboolean rating_can_decrease (Rating self);
+gboolean rating_is_valid (Rating self);
+Rating rating_increase (Rating self);
+Rating rating_decrease (Rating self);
+gint rating_serialize (Rating self);
+Rating rating_unserialize (gint value);
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+gpointer backing_file_state_ref (gpointer instance);
+void backing_file_state_unref (gpointer instance);
+GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_file_state (GValue* value, gpointer v_object);
+void value_take_backing_file_state (GValue* value, gpointer v_object);
+gpointer value_get_backing_file_state (const GValue* value);
+GType backing_file_state_get_type (void) G_GNUC_CONST;
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType dateable_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType rotation_get_type (void) G_GNUC_CONST;
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+static gpointer photo_backing_readers_ref (gpointer instance);
+static void photo_backing_readers_unref (gpointer instance);
+static GParamSpec* photo_param_spec_backing_readers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void photo_value_set_backing_readers (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void photo_value_take_backing_readers (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer photo_value_get_backing_readers (const GValue* value) G_GNUC_UNUSED;
+static GType photo_backing_readers_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gpointer pixel_transformer_ref (gpointer instance);
+void pixel_transformer_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformer (GValue* value, gpointer v_object);
+void value_take_pixel_transformer (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformer (const GValue* value);
+GType pixel_transformer_get_type (void) G_GNUC_CONST;
+gpointer pixel_transformation_bundle_ref (gpointer instance);
+void pixel_transformation_bundle_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation_bundle (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation_bundle (GValue* value, gpointer v_object);
+void value_take_pixel_transformation_bundle (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation_bundle (const GValue* value);
+GType pixel_transformation_bundle_get_type (void) G_GNUC_CONST;
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+#define PHOTO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO, PhotoPrivate))
+enum {
+ PHOTO_DUMMY_PROPERTY
+};
+gboolean photo_exception_prohibits (PhotoException self, PhotoException exception);
+gboolean photo_exception_allows (PhotoException self, PhotoException exception);
+static gpointer photo_cached_pixbuf_ref (gpointer instance);
+static void photo_cached_pixbuf_unref (gpointer instance);
+static GParamSpec* photo_param_spec_cached_pixbuf (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void photo_value_set_cached_pixbuf (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void photo_value_take_cached_pixbuf (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer photo_value_get_cached_pixbuf (const GValue* value) G_GNUC_UNUSED;
+static GType photo_cached_pixbuf_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+BackingPhotoRow* backing_photo_row_new (void);
+BackingPhotoRow* backing_photo_row_construct (GType object_type);
+static PhotoBackingReaders* photo_backing_readers_new (void);
+static PhotoBackingReaders* photo_backing_readers_construct (GType object_type);
+#define PHOTO_TYPENAME "thumb"
+#define PHOTO_SCALING_FUDGE 64
+#define PHOTO_SOURCE_PIXBUF_TIME_TO_LIVE_SEC 10
+#define PHOTO_SOURCE_PIXBUF_MIN_LRU_COUNT 1
+#define PHOTO_SOURCE_PIXBUF_MAX_LRU_COUNT 3
+#define PHOTO_MIN_EMBEDDED_SIZE 1024
+Photo* photo_construct (GType object_type, PhotoRow* row);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+PhotoSource* photo_source_construct (GType object_type, gint64 object_id);
+gchar* media_source_prep_title (const gchar* title);
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+gpointer key_value_map_ref (gpointer instance);
+void key_value_map_unref (gpointer instance);
+GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_key_value_map (GValue* value, gpointer v_object);
+void value_take_key_value_map (GValue* value, gpointer v_object);
+gpointer value_get_key_value_map (const GValue* value);
+GType key_value_map_get_type (void) G_GNUC_CONST;
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+gchar* media_source_prep_comment (const gchar* comment);
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath);
+gchar* string_sliced_at_last_char (const gchar* haystack, gunichar ch, gint start_index);
+gchar* string_sliced_at (const gchar* str, gint index);
+gboolean is_string_empty (const gchar* s);
+#define BACKING_PHOTO_ID_INVALID ((gint64) -1)
+static BackingPhotoRow* photo_get_backing_row (Photo* self, BackingPhotoID* id);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType photo_table_get_type (void) G_GNUC_CONST;
+PhotoTable* photo_table_get_instance (void);
+GQuark database_error_quark (void);
+void photo_table_detach_editable (PhotoTable* self, PhotoRow* row, GError** error);
+static void photo_internal_remove_all_transformations (Photo* self, gboolean notify);
+RawDeveloper* raw_developer_as_array (int* result_length1);
+void photo_init_photo (void);
+void photo_terminate_photo (void);
+void photo_notify_editable_replaced (Photo* self, GFile* old_file, GFile* new_file);
+static void photo_real_notify_editable_replaced (Photo* self, GFile* old_file, GFile* new_file);
+void photo_notify_raw_development_modified (Photo* self);
+static void photo_real_notify_raw_development_modified (Photo* self);
+void photo_notify_baseline_replaced (Photo* self);
+static void photo_real_notify_baseline_replaced (Photo* self);
+void photo_notify_master_reimported (Photo* self, PhotoMetadata* metadata);
+static void photo_real_notify_master_reimported (Photo* self, PhotoMetadata* metadata);
+void photo_notify_editable_reimported (Photo* self, PhotoMetadata* metadata);
+static void photo_real_notify_editable_reimported (Photo* self, PhotoMetadata* metadata);
+void photo_notify_source_reimported (Photo* self, PhotoMetadata* metadata);
+static void photo_real_notify_source_reimported (Photo* self, PhotoMetadata* metadata);
+void photo_notify_baseline_reimported (Photo* self, PhotoMetadata* metadata);
+static void photo_real_notify_baseline_reimported (Photo* self, PhotoMetadata* metadata);
+static gboolean photo_real_internal_delete_backing (DataSource* base, GError** error);
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self);
+static void photo_detach_editable (Photo* self, gboolean delete_editable, gboolean remove_transformations, gboolean notify);
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+static gboolean photo_delete_raw_development (Photo* self, RawDeveloper d);
+gchar* data_object_to_string (DataObject* self);
+gboolean data_source_internal_delete_backing (DataSource* self, GError** error);
+GType backing_photo_table_get_type (void) G_GNUC_CONST;
+BackingPhotoTable* backing_photo_table_get_instance (void);
+BackingPhotoRow* backing_photo_table_fetch (BackingPhotoTable* self, BackingPhotoID* id, GError** error);
+void backing_photo_table_remove (BackingPhotoTable* self, BackingPhotoID* backing_id, GError** error);
+gboolean photo_is_raw_developer_complete (Photo* self, RawDeveloper d);
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+PhotoMetadata* photo_get_master_metadata (Photo* self, GError** error);
+guint photo_metadata_get_preview_count (PhotoMetadata* self);
+gpointer photo_preview_ref (gpointer instance);
+void photo_preview_unref (gpointer instance);
+GParamSpec* param_spec_photo_preview (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_preview (GValue* value, gpointer v_object);
+void value_take_photo_preview (GValue* value, gpointer v_object);
+gpointer value_get_photo_preview (const GValue* value);
+GType photo_preview_get_type (void) G_GNUC_CONST;
+PhotoPreview* photo_metadata_get_preview (PhotoMetadata* self, guint number);
+void photo_preview_get_pixel_dimensions (PhotoPreview* self, Dimensions* result);
+void photo_add_backing_photo_for_development (Photo* self, RawDeveloper d, BackingPhotoRow* bpr, GError** error);
+void photo_import_developed_backing_photo (PhotoRow* row, RawDeveloper d, BackingPhotoRow* bpr, GError** error);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
+#define DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES UTIL_FILE_ATTRIBUTES
+gpointer photo_file_interrogator_ref (gpointer instance);
+void photo_file_interrogator_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_interrogator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_interrogator (GValue* value, gpointer v_object);
+void value_take_photo_file_interrogator (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_interrogator (const GValue* value);
+GType photo_file_interrogator_get_type (void) G_GNUC_CONST;
+PhotoFileInterrogator* photo_file_interrogator_new (GFile* file, PhotoFileSnifferOptions options);
+PhotoFileInterrogator* photo_file_interrogator_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+void photo_file_interrogator_interrogate (PhotoFileInterrogator* self, GError** error);
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+DetectedPhotoInformation* photo_file_interrogator_get_detected_photo_information (PhotoFileInterrogator* self);
+gboolean photo_file_interrogator_get_is_photo_corrupted (PhotoFileInterrogator* self);
+Orientation photo_metadata_get_orientation (PhotoMetadata* self);
+void backing_photo_table_add (BackingPhotoTable* self, BackingPhotoRow* state, GError** error);
+void photo_table_update_raw_development (PhotoTable* self, PhotoRow* row, RawDeveloper rd, BackingPhotoID* backing_photo_id, GError** error);
+static void photo_develop_photo (Photo* self, RawDeveloper d);
+BackingPhotoRow* raw_developer_create_backing_row_for_development (RawDeveloper self, const gchar* raw_filepath, const gchar* camera_development_filename, GError** error);
+GdkPixbuf* photo_get_master_pixbuf (Photo* self, Scaling* scaling, gboolean rotate, GError** error);
+void scaling_for_original (Scaling* result);
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GQuark photo_format_error_quark (void);
+PhotoFileWriter* photo_file_format_create_writer (PhotoFileFormat self, const gchar* filepath, GError** error);
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+void photo_file_writer_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+PhotoFileMetadataWriter* photo_file_format_create_metadata_writer (PhotoFileFormat self, const gchar* filepath, GError** error);
+void photo_file_metadata_writer_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+GdkPixbuf* photo_preview_get_pixbuf (PhotoPreview* self, GError** error);
+void photo_set_default_raw_developer (Photo* self, RawDeveloper d);
+void photo_set_raw_developer (Photo* self, RawDeveloper d);
+GdkPixbuf* photo_get_prefetched_copy (Photo* self, GError** error);
+void photo_revert_to_master (Photo* self, gboolean notify);
+gboolean photo_set_orientation (Photo* self, Orientation orientation);
+void photo_discard_prefetched (Photo* self);
+RawDeveloper photo_get_raw_developer (Photo* self);
+gchar* raw_developer_to_string (RawDeveloper self);
+void photo_table_remove_development (PhotoTable* self, PhotoRow* row, RawDeveloper rd, GError** error);
+void photo_redevelop_raw (Photo* self, RawDeveloper d);
+static BackingFileState** photo_real_get_backing_files_state (MediaSource* base, int* result_length1);
+BackingFileState* backing_file_state_new_from_photo_row (BackingPhotoRow* photo_row, const gchar* md5);
+BackingFileState* backing_file_state_construct_from_photo_row (GType object_type, BackingPhotoRow* photo_row, const gchar* md5);
+static void _vala_array_add251 (BackingFileState*** array, int* length, int* size, BackingFileState* value);
+gboolean photo_has_editable (Photo* self);
+static void _vala_array_add252 (BackingFileState*** array, int* length, int* size, BackingFileState* value);
+gboolean photo_is_developed (Photo* self);
+GeeCollection* photo_get_raw_development_photo_rows (Photo* self);
+static void _vala_array_add253 (BackingFileState*** array, int* length, int* size, BackingFileState* value);
+static PhotoFileReader* photo_get_backing_reader (Photo* self, BackingFetchMode mode);
+static PhotoFileReader* photo_get_master_reader (Photo* self);
+static PhotoFileReader* photo_get_baseline_reader (Photo* self);
+static PhotoFileReader* photo_get_source_reader (Photo* self);
+static PhotoFileReader* photo_get_raw_developer_reader (Photo* self);
+const gchar* backing_fetch_mode_to_string (BackingFetchMode self);
+PhotoFileReader* photo_get_editable_reader (Photo* self);
+gboolean photo_does_master_exist (Photo* self);
+gboolean photo_file_adapter_file_exists (PhotoFileAdapter* self);
+gboolean photo_does_editable_exist (Photo* self);
+gboolean photo_is_master_baseline (Photo* self);
+gboolean photo_is_master_source (Photo* self);
+gboolean photo_is_editable_baseline (Photo* self);
+gboolean photo_is_editable_source (Photo* self);
+BackingPhotoRow* photo_get_master_photo_row (Photo* self);
+BackingPhotoRow* photo_get_editable_photo_row (Photo* self);
+gboolean backing_photo_id_is_valid (BackingPhotoID *self);
+BackingPhotoRow* photo_get_raw_development_photo_row (Photo* self, RawDeveloper d);
+PhotoFileFormat* photo_get_editable_file_format (Photo* self);
+PhotoFileFormat photo_file_adapter_get_file_format (PhotoFileAdapter* self);
+static PhotoFileFormat* _photo_file_format_dup (PhotoFileFormat* self);
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params);
+PhotoFileFormat photo_file_format_get_system_default_format (void);
+PhotoFileFormat photo_get_best_export_file_format (Photo* self);
+gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params);
+GFile* media_source_get_master_file (MediaSource* self);
+gchar* photo_get_export_basename (Photo* self, PhotoFileFormat* file_format);
+GType import_result_get_type (void) G_GNUC_CONST;
+ImportResult photo_prepare_for_import (PhotoImportParams* params);
+gboolean photo_is_file_image (GFile* file);
+gboolean photo_file_format_is_file_supported (GFile* file);
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+gchar* media_metadata_get_title (MediaMetadata* self);
+gchar* media_metadata_get_comment (MediaMetadata* self);
+GeeSet* photo_metadata_get_keywords (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+Rating photo_metadata_get_rating (PhotoMetadata* self);
+#define PHOTO_ID_INVALID ((gint64) -1)
+void photo_id_init (PhotoID *self, gint64 id);
+#define EVENT_ID_INVALID ((gint64) -1)
+void event_id_init (EventID *self, gint64 id);
+void thumbnail_cache_generate_for_photo (Thumbnails* thumbnails, PhotoFileReader* reader, Orientation orientation, Dimensions* original_dim, GError** error);
+ImportResult import_result_convert_error (GError* err, ImportResult default_result);
+void photo_create_pre_import (PhotoImportParams* params);
+void dimensions_init (Dimensions *self, gint width, gint height);
+BackingPhotoRow* photo_query_backing_photo_row (Photo* self, GFile* file, PhotoFileSnifferOptions options, DetectedPhotoInformation** detected, GError** error);
+gpointer photo_reimport_master_state_ref (gpointer instance);
+void photo_reimport_master_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_master_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_master_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_master_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_master_state (const GValue* value);
+GType photo_reimport_master_state_get_type (void) G_GNUC_CONST;
+gboolean photo_prepare_for_reimport_master (Photo* self, PhotoReimportMasterState** reimport_state, GError** error);
+static void _vala_array_add254 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add255 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add256 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add257 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add258 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add259 (gchar*** array, int* length, int* size, gchar* value);
+static PhotoReimportMasterStateImpl* photo_reimport_master_state_impl_new (PhotoRow* row, PhotoMetadata* metadata, gchar** alterations, int alterations_length1);
+static PhotoReimportMasterStateImpl* photo_reimport_master_state_impl_construct (GType object_type, PhotoRow* row, PhotoMetadata* metadata, gchar** alterations, int alterations_length1);
+static GType photo_reimport_master_state_impl_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+void photo_apply_user_metadata_for_reimport (Photo* self, PhotoMetadata* metadata);
+static void photo_real_apply_user_metadata_for_reimport (Photo* self, PhotoMetadata* metadata);
+void photo_finish_reimport_master (Photo* self, PhotoReimportMasterState* state, GError** error);
+void photo_table_reimport (PhotoTable* self, PhotoRow* row, GError** error);
+void backing_photo_row_copy_from (BackingPhotoRow* self, BackingPhotoRow* from);
+static void _vala_array_add260 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add261 (gchar*** array, int* length, int* size, gchar* value);
+Alteration* alteration_new_from_array (gchar** array, int array_length1);
+Alteration* alteration_construct_from_array (GType object_type, gchar** array, int array_length1);
+static gboolean photo_verify_file_for_reimport (Photo* self, GFile* file, BackingPhotoRow** backing, DetectedPhotoInformation** detected, GError** error);
+gpointer photo_reimport_editable_state_ref (gpointer instance);
+void photo_reimport_editable_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_editable_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_editable_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_editable_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_editable_state (const GValue* value);
+GType photo_reimport_editable_state_get_type (void) G_GNUC_CONST;
+gboolean photo_prepare_for_reimport_editable (Photo* self, PhotoReimportEditableState** state, GError** error);
+GFile* photo_get_editable_file (Photo* self);
+static PhotoReimportEditableStateImpl* photo_reimport_editable_state_impl_new (BackingPhotoRow* backing_state, PhotoMetadata* metadata);
+static PhotoReimportEditableStateImpl* photo_reimport_editable_state_impl_construct (GType object_type, BackingPhotoRow* backing_state, PhotoMetadata* metadata);
+static GType photo_reimport_editable_state_impl_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+void photo_finish_reimport_editable (Photo* self, PhotoReimportEditableState* state, GError** error);
+void photo_get_editable_id (Photo* self, BackingPhotoID* result);
+gboolean backing_photo_id_is_invalid (BackingPhotoID *self);
+void backing_photo_table_update (BackingPhotoTable* self, BackingPhotoRow* row, GError** error);
+void media_source_set_title (MediaSource* self, const gchar* title);
+gboolean media_source_set_comment (MediaSource* self, const gchar* comment);
+void media_source_set_rating (MediaSource* self, Rating rating);
+Alteration* alteration_new_from_list (const gchar* list);
+Alteration* alteration_construct_from_list (GType object_type, const gchar* list);
+gpointer photo_reimport_raw_development_state_ref (gpointer instance);
+void photo_reimport_raw_development_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_raw_development_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_raw_development_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_raw_development_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_raw_development_state (const GValue* value);
+GType photo_reimport_raw_development_state_get_type (void) G_GNUC_CONST;
+gboolean photo_prepare_for_reimport_raw_development (Photo* self, PhotoReimportRawDevelopmentState** state, GError** error);
+GeeCollection* photo_get_raw_developer_files (Photo* self);
+static GType photo_reimport_raw_development_state_impl_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static PhotoReimportRawDevelopmentStateImpl* photo_reimport_raw_development_state_impl_new (void);
+static PhotoReimportRawDevelopmentStateImpl* photo_reimport_raw_development_state_impl_construct (GType object_type);
+static void photo_reimport_raw_development_state_impl_add (PhotoReimportRawDevelopmentStateImpl* self, BackingPhotoRow* backing, PhotoMetadata* metadata);
+static gint photo_reimport_raw_development_state_impl_get_size (PhotoReimportRawDevelopmentStateImpl* self);
+void photo_finish_reimport_raw_development (Photo* self, PhotoReimportRawDevelopmentState* state, GError** error);
+static gpointer photo_reimport_raw_development_state_impl_dev_to_reimport_ref (gpointer instance);
+static void photo_reimport_raw_development_state_impl_dev_to_reimport_unref (gpointer instance);
+static GParamSpec* photo_reimport_raw_development_state_impl_param_spec_dev_to_reimport (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void photo_reimport_raw_development_state_impl_value_set_dev_to_reimport (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void photo_reimport_raw_development_state_impl_value_take_dev_to_reimport (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer photo_reimport_raw_development_state_impl_value_get_dev_to_reimport (const GValue* value) G_GNUC_UNUSED;
+GType photo_reimport_raw_development_state_impl_dev_to_reimport_get_type (void) G_GNUC_CONST;
+static gchar* photo_real_get_typename (DataSource* base);
+static gint64 photo_real_get_instance_id (DataSource* base);
+void photo_get_photo_id (Photo* self, PhotoID* result);
+static gchar* photo_real_get_source_id (DataSource* base);
+gchar* data_source_get_typename (DataSource* self);
+gint64 data_source_get_instance_id (DataSource* self);
+void photo_set_master_timestamp (Photo* self, GFileInfo* info);
+void photo_table_update_timestamp (PhotoTable* self, PhotoID* photo_id, time_t timestamp, GError** error);
+void app_window_database_error (GError* err);
+void photo_update_editable_modification_time (Photo* self, GFileInfo* info, GError** error);
+void backing_photo_table_update_timestamp (BackingPhotoTable* self, BackingPhotoID* id, time_t timestamp, GError** error);
+void photo_update_many_editable_timestamps (GeeMap* map, GError** error);
+void database_table_begin_transaction (void);
+void database_table_commit_transaction (GError** error);
+static PhotoFileFormat photo_real_get_preferred_thumbnail_format (ThumbnailSource* base);
+PhotoFileFormat photo_get_file_format (Photo* self);
+gboolean photo_file_format_can_write_image (PhotoFileFormat self);
+static GdkPixbuf* photo_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+void scaling_for_best_fit (gint pixels, gboolean scale_up, Scaling* result);
+static gboolean photo_is_extension_found (const gchar* basename, gchar** extensions, int extensions_length1);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+gboolean photo_is_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format);
+gboolean photo_table_has_duplicate (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format);
+PhotoID* photo_get_duplicate_ids (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, int* result_length1);
+PhotoID* photo_table_get_duplicate_ids (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format, int* result_length1);
+gint64 photo_get_photo_key (DataSource* source);
+GType library_photo_get_type (void) G_GNUC_CONST;
+static GFile* photo_real_get_file (MediaSource* base);
+void photo_set_master_file (Photo* self, GFile* file);
+void photo_table_set_filepath (PhotoTable* self, PhotoID* photo_id, const gchar* filepath, GError** error);
+void media_source_notify_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file);
+static void _vala_array_add262 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add263 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add264 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add265 (gchar*** array, int* length, int* size, gchar* value);
+void photo_set_editable_file (Photo* self, GFile* file);
+void backing_photo_table_set_filepath (BackingPhotoTable* self, BackingPhotoID* id, const gchar* filepath, GError** error);
+static void _vala_array_add266 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add267 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add268 (gchar*** array, int* length, int* size, gchar* value);
+void photo_set_many_editable_file (GeeMap* map, GError** error);
+GFile* photo_get_actual_file (Photo* self);
+static GFile* photo_real_get_master_file (MediaSource* base);
+GFile* photo_get_source_file (Photo* self);
+gboolean photo_file_format_can_write (PhotoFileFormat self);
+static time_t photo_real_get_timestamp (MediaSource* base);
+static inline void photo_real_get_event_id (MediaSource* base, EventID* result);
+gint64 photo_get_raw_event_id (Photo* self);
+static void photo_real_get_import_id (MediaSource* base, ImportID* result);
+static gchar* photo_real_get_master_md5 (MediaSource* base);
+guint64 photo_get_flags (Photo* self);
+static void photo_notify_flags_altered (Photo* self, Alteration* additional_alteration);
+Alteration* alteration_compress (Alteration* self, Alteration* other);
+guint64 photo_replace_flags (Photo* self, guint64 flags, Alteration* additional_alteration);
+gboolean photo_table_replace_flags (PhotoTable* self, PhotoID* photo_id, guint64 flags);
+gboolean photo_is_flag_set (Photo* self, guint64 mask);
+gboolean media_source_internal_is_flag_set (guint64 flags, guint64 selector);
+guint64 photo_add_flags (Photo* self, guint64 mask, Alteration* additional_alteration);
+guint64 media_source_internal_add_flags (guint64 flags, guint64 selector);
+guint64 photo_remove_flags (Photo* self, guint64 mask, Alteration* additional_alteration);
+guint64 media_source_internal_remove_flags (guint64 flags, guint64 selector);
+guint64 photo_add_remove_flags (Photo* self, guint64 add, guint64 remove, Alteration* additional_alteration);
+void photo_add_remove_many_flags (GeeCollection* add, guint64 add_mask, Alteration* additional_add_alteration, GeeCollection* remove, guint64 remove_mask, Alteration* additional_remove_alteration, GError** error);
+guint64 photo_toggle_flags (Photo* self, guint64 mask, Alteration* additional_alteration);
+gboolean photo_is_master_metadata_dirty (Photo* self);
+void photo_set_master_metadata_dirty (Photo* self, gboolean dirty, GError** error);
+void photo_table_set_metadata_dirty (PhotoTable* self, PhotoID* photo_id, gboolean dirty, GError** error);
+static Rating photo_real_get_rating (MediaSource* base);
+static void photo_real_set_rating (MediaSource* base, Rating rating);
+gboolean photo_table_set_rating (PhotoTable* self, PhotoID* photo_id, Rating rating);
+static void photo_real_increase_rating (MediaSource* base);
+static void photo_real_decrease_rating (MediaSource* base);
+static void photo_real_commit_backlinks (DataSource* base, SourceCollection* sources, const gchar* backlinks);
+void photo_table_update_backlinks (PhotoTable* self, PhotoID* photo_id, const gchar* backlinks, GError** error);
+static gboolean photo_real_set_event_id (MediaSource* base, EventID* event_id);
+gboolean photo_table_set_event (PhotoTable* self, PhotoID* photo_id, EventID* event_id);
+static gchar* photo_real_to_string (DataObject* base);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+static gboolean photo_real_equals (DataSource* base, DataSource* source);
+gboolean data_source_equals (DataSource* self, DataSource* source);
+static void photo_file_exif_updated (Photo* self);
+GFile* media_source_get_file (MediaSource* self);
+gboolean photo_table_master_exif_updated (PhotoTable* self, PhotoID* photoID, gint64 filesize, glong timestamp, const gchar* md5, const gchar* exif_md5, const gchar* thumbnail_md5, PhotoRow* row);
+static guint64 photo_real_get_filesize (MediaSource* base);
+static guint64 photo_real_get_master_filesize (MediaSource* base);
+guint64 photo_get_editable_filesize (Photo* self);
+static time_t photo_real_get_exposure_time (Dateable* base);
+static gchar* photo_real_get_basename (MediaSource* base);
+static gchar* photo_real_get_title (MediaSource* base);
+static gchar* photo_real_get_comment (MediaSource* base);
+static void photo_real_set_title (MediaSource* base, const gchar* title);
+gboolean photo_table_set_title (PhotoTable* self, PhotoID* photo_id, const gchar* new_title);
+static gboolean photo_real_set_comment (MediaSource* base, const gchar* comment);
+gboolean photo_table_set_comment (PhotoTable* self, PhotoID* photo_id, const gchar* new_comment);
+void photo_set_import_id (Photo* self, ImportID* import_id);
+void photo_table_set_import_id (PhotoTable* self, PhotoID* photo_id, ImportID* import_id, GError** error);
+void photo_set_title_persistent (Photo* self, const gchar* title, GError** error);
+gboolean photo_file_format_can_write_metadata (PhotoFileFormat self);
+PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error);
+GType photo_metadata_set_option_get_type (void) G_GNUC_CONST;
+void photo_metadata_set_title (PhotoMetadata* self, const gchar* title, PhotoMetadataSetOption option);
+PhotoFileMetadataWriter* photo_file_reader_create_metadata_writer (PhotoFileReader* self, GError** error);
+void library_monitor_blacklist_file (GFile* file, const gchar* reason);
+void library_monitor_unblacklist_file (GFile* file);
+void photo_set_comment_persistent (Photo* self, const gchar* comment, GError** error);
+void photo_metadata_set_comment (PhotoMetadata* self, const gchar* comment);
+static void photo_real_set_exposure_time (Dateable* base, time_t time);
+gboolean photo_table_set_exposure_time (PhotoTable* self, PhotoID* photo_id, time_t time);
+void photo_set_exposure_time_persistent (Photo* self, time_t time, GError** error);
+void dateable_set_exposure_time (Dateable* self, time_t target_time);
+void photo_metadata_set_exposure_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option);
+MetadataDateTime* metadata_date_time_new (time_t timestamp);
+MetadataDateTime* metadata_date_time_construct (GType object_type, time_t timestamp);
+static void photo_real_get_dimensions (MediaSource* base, PhotoException disallowed_steps, Dimensions* result);
+void photo_get_raw_dimensions (Photo* self, Dimensions* result);
+Orientation photo_get_orientation (Photo* self);
+gboolean photo_get_straighten (Photo* self, gdouble* theta);
+void compute_arb_rotated_size (gdouble src_width, gdouble src_height, gdouble angle, gdouble* dest_width, gdouble* dest_height);
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+gboolean photo_get_crop (Photo* self, Box* crop, PhotoException exceptions);
+void box_get_dimensions (Box *self, Dimensions* result);
+static void photo_locked_create_adjustments_from_data (Photo* self);
+PixelTransformationBundle* pixel_transformation_bundle_new (void);
+PixelTransformationBundle* pixel_transformation_bundle_construct (GType object_type);
+static KeyValueMap* photo_get_transformation (Photo* self, const gchar* name);
+void pixel_transformation_bundle_set_to_identity (PixelTransformationBundle* self);
+void pixel_transformation_bundle_load (PixelTransformationBundle* self, KeyValueMap* store);
+PixelTransformer* pixel_transformation_bundle_generate_transformer (PixelTransformationBundle* self);
+PixelTransformationBundle* photo_get_color_adjustments (Photo* self);
+PixelTransformationBundle* pixel_transformation_bundle_copy (PixelTransformationBundle* self);
+PixelTransformer* photo_get_pixel_transformer (Photo* self);
+PixelTransformer* pixel_transformer_copy (PixelTransformer* self);
+gboolean photo_has_color_adjustments (Photo* self);
+static gboolean photo_has_transformation (Photo* self, const gchar* name);
+GType pixel_transformation_type_get_type (void) G_GNUC_CONST;
+gpointer pixel_transformation_ref (gpointer instance);
+void pixel_transformation_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation (GValue* value, gpointer v_object);
+void value_take_pixel_transformation (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation (const GValue* value);
+GType pixel_transformation_get_type (void) G_GNUC_CONST;
+PixelTransformation* photo_get_color_adjustment (Photo* self, PixelTransformationType type);
+PixelTransformation* pixel_transformation_bundle_get_transformation (PixelTransformationBundle* self, PixelTransformationType type);
+void photo_set_color_adjustments (Photo* self, PixelTransformationBundle* new_adjustments);
+gboolean pixel_transformation_bundle_is_identity (PixelTransformationBundle* self);
+static gboolean photo_remove_transformation (Photo* self, const gchar* name);
+KeyValueMap* pixel_transformation_bundle_save (PixelTransformationBundle* self, const gchar* group);
+GeeIterable* pixel_transformation_bundle_get_transformations (PixelTransformationBundle* self);
+void pixel_transformer_replace_transformation (PixelTransformer* self, PixelTransformation* old_trans, PixelTransformation* new_trans);
+PixelTransformationType pixel_transformation_get_transformation_type (PixelTransformation* self);
+static gboolean photo_set_transformation (Photo* self, KeyValueMap* trans);
+static PhotoMetadata* photo_real_get_metadata (PhotoSource* base);
+PhotoMetadata* photo_get_editable_metadata (Photo* self, GError** error);
+gboolean photo_persist_master_metadata (Photo* self, PhotoMetadata* metadata, PhotoReimportMasterState** state, GError** error);
+void photo_finish_update_master_metadata (Photo* self, PhotoReimportMasterState* state, GError** error);
+gboolean photo_persist_editable_metadata (Photo* self, PhotoMetadata* metadata, PhotoReimportEditableState** state, GError** error);
+void photo_finish_update_editable_metadata (Photo* self, PhotoReimportEditableState* state, GError** error);
+gboolean photo_has_transformations (Photo* self);
+gboolean photo_only_metadata_changed (Photo* self);
+PhotoMetadata* photo_source_get_metadata (PhotoSource* self);
+gboolean photo_has_alterations (Photo* self);
+gchar* media_source_get_comment (MediaSource* self);
+gchar* media_source_get_title (MediaSource* self);
+PhotoTransformationState* photo_save_transformation_state (Photo* self);
+static PhotoPhotoTransformationStateImpl* photo_photo_transformation_state_impl_new (Photo* photo, Orientation orientation, GeeHashMap* transformations, PixelTransformer* transformer, PixelTransformationBundle* adjustments);
+static PhotoPhotoTransformationStateImpl* photo_photo_transformation_state_impl_construct (GType object_type, Photo* photo, Orientation orientation, GeeHashMap* transformations, PixelTransformer* transformer, PixelTransformationBundle* adjustments);
+static GType photo_photo_transformation_state_impl_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gboolean photo_load_transformation_state (Photo* self, PhotoTransformationState* state);
+static Orientation photo_photo_transformation_state_impl_get_orientation (PhotoPhotoTransformationStateImpl* self);
+static GeeHashMap* photo_photo_transformation_state_impl_get_transformations (PhotoPhotoTransformationStateImpl* self);
+static PixelTransformer* photo_photo_transformation_state_impl_get_transformer (PhotoPhotoTransformationStateImpl* self);
+static PixelTransformationBundle* photo_photo_transformation_state_impl_get_color_adjustments (PhotoPhotoTransformationStateImpl* self);
+gboolean photo_table_set_transformation_state (PhotoTable* self, PhotoID* photo_id, Orientation orientation, GeeHashMap* transformations);
+void photo_remove_all_transformations (Photo* self);
+gboolean photo_table_remove_all_transformations (PhotoTable* self, PhotoID* photo_id);
+gboolean photo_table_set_orientation (PhotoTable* self, PhotoID* photo_id, Orientation orientation);
+Orientation photo_get_original_orientation (Photo* self);
+gboolean photo_check_can_rotate (Photo* self);
+void photo_rotate (Photo* self, Rotation rotation);
+static void photo_real_rotate (Photo* self, Rotation rotation);
+Orientation orientation_perform (Orientation self, Rotation rotation);
+KeyValueMap* key_value_map_copy (KeyValueMap* self);
+gchar* key_value_map_get_group (KeyValueMap* self);
+gboolean photo_table_set_transformation (PhotoTable* self, PhotoID* photo_id, KeyValueMap* map);
+gboolean photo_table_remove_transformation (PhotoTable* self, PhotoID* photo_id, const gchar* object);
+gboolean photo_has_crop (Photo* self);
+gboolean photo_get_raw_crop (Photo* self, Box* crop);
+void box_init (Box *self, gint left, gint top, gint right, gint bottom);
+gint key_value_map_get_int (KeyValueMap* self, const gchar* key, gint def);
+static void photo_set_raw_crop (Photo* self, Box* crop);
+KeyValueMap* key_value_map_new (const gchar* group);
+KeyValueMap* key_value_map_construct (GType object_type, const gchar* group);
+void key_value_map_set_int (KeyValueMap* self, const gchar* key, gint value);
+static gboolean photo_get_raw_straighten (Photo* self, gdouble* angle);
+gdouble key_value_map_get_double (KeyValueMap* self, const gchar* key, gdouble def);
+static void photo_set_raw_straighten (Photo* self, gdouble theta);
+void key_value_map_set_double (KeyValueMap* self, const gchar* key, gdouble value);
+GType editing_tools_redeye_instance_get_type (void) G_GNUC_CONST;
+EditingToolsRedeyeInstance* editing_tools_redeye_instance_dup (const EditingToolsRedeyeInstance* self);
+void editing_tools_redeye_instance_free (EditingToolsRedeyeInstance* self);
+static EditingToolsRedeyeInstance* photo_get_raw_redeye_instances (Photo* self, int* result_length1);
+void key_value_map_get_point (KeyValueMap* self, const gchar* key, GdkPoint* def, GdkPoint* result);
+gboolean photo_has_redeye_transformations (Photo* self);
+void photo_add_redeye_instance (Photo* self, EditingToolsRedeyeInstance* redeye);
+void key_value_map_set_point (KeyValueMap* self, const gchar* key, GdkPoint* point);
+static gboolean photo_calculate_pixbuf_dimensions (Photo* self, Scaling* scaling, PhotoException exceptions, Dimensions* scaled_image, Dimensions* scaled_to_viewport);
+static gboolean photo_locked_calculate_pixbuf_dimensions (Photo* self, Scaling* scaling, PhotoException exceptions, Dimensions* scaled_image, Dimensions* scaled_to_viewport);
+gboolean scaling_is_unscaled (Scaling *self);
+void orientation_rotate_box (Orientation self, Dimensions* space, Box* box, Box* result);
+void orientation_rotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result);
+void box_get_scaled (Box *self, Dimensions* scaled, Box* result);
+void scaling_get_scaled_dimensions (Scaling *self, Dimensions* original, Dimensions* result);
+gint box_get_width (Box *self);
+gint box_get_height (Box *self);
+void dimensions_get_scaled_similar (Dimensions *self, Dimensions* original, Dimensions* scaled, Dimensions* result);
+void orientation_derotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result);
+gboolean dimensions_has_area (Dimensions *self);
+static GdkPixbuf* photo_load_raw_pixbuf (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error);
+GdkPixbuf* photo_file_reader_unscaled_read (PhotoFileReader* self, GError** error);
+GdkPixbuf* photo_file_reader_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+gboolean dimensions_approx_equals (Dimensions *self, Dimensions* dim, gint fudge);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+static GdkPixbuf* photo_get_untransformed_pixbuf (Photo* self, Scaling* scaling, gboolean rotate, BackingFetchMode fetch_mode, GError** error);
+GdkPixbuf* photo_get_unmodified_pixbuf (Photo* self, Scaling* scaling, gboolean rotate, GError** error);
+GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf);
+static GdkPixbuf* photo_real_get_pixbuf (PhotoSource* base, Scaling* scaling, GError** error);
+GdkPixbuf* photo_get_pixbuf_with_options (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error);
+static GdkPixbuf* photo_run_source_pixbuf_cache (Photo* locate, gboolean keep, GError** error);
+static PhotoCachedPixbuf* photo_cached_pixbuf_new (Photo* photo, GdkPixbuf* pixbuf);
+static PhotoCachedPixbuf* photo_cached_pixbuf_construct (GType object_type, Photo* photo, GdkPixbuf* pixbuf);
+static gboolean photo_trim_source_pixbuf_cache (void);
+static gboolean _photo_trim_source_pixbuf_cache_gsource_func (gpointer self);
+gboolean photo_get_develop_raw_photos_to_files (void);
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+gboolean dimensions_equals (Dimensions *self, Dimensions* dim);
+static GdkPixbuf* photo_do_redeye (Photo* self, GdkPixbuf* pixbuf, EditingToolsRedeyeInstance* inst);
+GdkPixbuf* rotate_arb (GdkPixbuf* source_pixbuf, gdouble angle);
+void pixel_transformer_transform_pixbuf (PixelTransformer* self, GdkPixbuf* pixbuf, GCancellable* cancellable);
+gboolean photo_has_user_generated_metadata (Photo* self);
+static gboolean photo_real_has_user_generated_metadata (Photo* self);
+void photo_set_user_metadata_for_export (Photo* self, PhotoMetadata* metadata);
+static void photo_real_set_user_metadata_for_export (Photo* self, PhotoMetadata* metadata);
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+PhotoFileFormatProperties* photo_file_format_get_properties (PhotoFileFormat self);
+GFile* photo_file_format_properties_convert_file_extension (PhotoFileFormatProperties* self, GFile* file);
+static gboolean photo_export_fullsized_backing (Photo* self, GFile* file, gboolean export_metadata, GError** error);
+PhotoMetadata* photo_file_format_create_metadata (PhotoFileFormat self);
+time_t media_source_get_exposure_time (MediaSource* self);
+void photo_metadata_set_pixel_dimensions (PhotoMetadata* self, Dimensions* dim, PhotoMetadataSetOption option);
+void photo_metadata_set_orientation (PhotoMetadata* self, Orientation orientation);
+void photo_metadata_set_software (PhotoMetadata* self, const gchar* software, const gchar* version);
+#define RESOURCES_APP_TITLE "Shotwell"
+#define RESOURCES_APP_VERSION _VERSION
+void photo_metadata_remove_exif_thumbnail (PhotoMetadata* self);
+void photo_metadata_clear (PhotoMetadata* self);
+gboolean photo_is_export_required (Photo* self, Scaling* scaling, PhotoFileFormat export_format);
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error);
+const gchar* photo_file_format_to_string (PhotoFileFormat self);
+void photo_metadata_remove_tag (PhotoMetadata* self, const gchar* tag);
+static GFile* photo_generate_new_editable_file (Photo* self, PhotoFileFormat* file_format, GError** error);
+gboolean photo_file_format_properties_is_recognized_extension (PhotoFileFormatProperties* self, const gchar* ext);
+gchar* photo_file_format_properties_get_default_extension (PhotoFileFormatProperties* self);
+GFile* generate_unique_file (GFile* dir, const gchar* basename, gboolean* collision, GError** error);
+static gboolean photo_launch_editor (GFile* file, PhotoFileFormat file_format, GError** error);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gchar* configuration_facade_get_external_raw_app (ConfigurationFacade* self);
+gchar* configuration_facade_get_external_photo_app (ConfigurationFacade* self);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+void photo_open_with_raw_external_editor (Photo* self, GError** error);
+void photo_open_with_external_editor (Photo* self, GError** error);
+static void photo_halt_monitoring_editable (Photo* self);
+static void photo_attach_editable (Photo* self, PhotoFileFormat file_format, GFile* file, GError** error);
+static void photo_start_monitoring_editable (Photo* self, GFile* file, GError** error);
+static void photo_on_editable_file_changed (Photo* self, GFile* file, GFile* other_file, GFileMonitorEvent event);
+static void _photo_on_editable_file_changed_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self);
+static void photo_update_editable (Photo* self, gboolean only_attributes, PhotoFileReader* new_reader, GError** error);
+static void photo_update_editable_attributes (Photo* self, GError** error);
+void photo_reimport_editable (Photo* self, GError** error);
+void photo_table_attach_editable (PhotoTable* self, PhotoRow* row, BackingPhotoID* editable_id, GError** error);
+void backing_photo_table_update_attributes (BackingPhotoTable* self, BackingPhotoID* id, time_t timestamp, gint64 filesize, GError** error);
+static void _vala_array_add269 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add270 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add271 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add272 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add273 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add274 (gchar*** array, int* length, int* size, gchar* value);
+void backing_photo_id_init (BackingPhotoID *self, gint64 id);
+const gchar* g_file_monitor_event_to_string (GFileMonitorEvent self);
+static void photo_on_reimport_editable (Photo* self);
+static void _photo_on_reimport_editable_one_shot_callback (gpointer self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+void one_shot_scheduler_after_timeout (OneShotScheduler* self, guint msec, gboolean reschedule);
+static void photo_on_update_editable_attributes (Photo* self);
+static void _photo_on_update_editable_attributes_one_shot_callback (gpointer self);
+static void photo_on_remove_editable (Photo* self);
+static void _photo_on_remove_editable_one_shot_callback (gpointer self);
+void photo_get_original_dimensions (Photo* self, Dimensions* result);
+void photo_get_master_dimensions (Photo* self, Dimensions* result);
+void photo_set_crop (Photo* self, Box* crop);
+void orientation_derotate_box (Orientation self, Dimensions* space, Box* box, Box* result);
+void photo_set_straighten (Photo* self, gdouble theta);
+static GdkPixbuf* photo_red_reduce_pixel (Photo* self, GdkPixbuf* pixbuf, gint x, gint y);
+void photo_unscaled_to_raw_point (Photo* self, GdkPoint* unscaled_point, GdkPoint* result);
+void orientation_derotate_point (Orientation self, Dimensions* space, GdkPoint* point, GdkPoint* result);
+void photo_unscaled_to_raw_rect (Photo* self, GdkRectangle* unscaled_rect, GdkRectangle* result);
+PixelTransformationBundle* photo_get_enhance_transformations (Photo* self);
+PixelTransformationBundle* auto_enhance_create_auto_enhance_adjustments (GdkPixbuf* pixbuf);
+gboolean photo_enhance (Photo* self);
+void photo_set_develop_raw_photos_to_files (gboolean value);
+static void photo_real_editable_replaced (Photo* self, GFile* old_file, GFile* new_file);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void photo_real_raw_development_modified (Photo* self);
+static void photo_real_baseline_replaced (Photo* self);
+static void photo_real_master_reimported (Photo* self, PhotoMetadata* metadata);
+static void g_cclosure_user_marshal_VOID__MEDIA_METADATA (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void photo_real_editable_reimported (Photo* self, PhotoMetadata* metadata);
+static void photo_real_baseline_reimported (Photo* self, PhotoMetadata* metadata);
+static void photo_real_source_reimported (Photo* self, PhotoMetadata* metadata);
+#define PHOTO_PHOTO_TRANSFORMATION_STATE_IMPL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL, PhotoPhotoTransformationStateImplPrivate))
+enum {
+ PHOTO_PHOTO_TRANSFORMATION_STATE_IMPL_DUMMY_PROPERTY
+};
+static void photo_photo_transformation_state_impl_on_photo_baseline_replaced (PhotoPhotoTransformationStateImpl* self);
+static void _photo_photo_transformation_state_impl_on_photo_baseline_replaced_photo_baseline_replaced (Photo* _sender, gpointer self);
+static GeeHashMap* photo_photo_transformation_state_impl_copy_transformations (GeeHashMap* original);
+static void photo_photo_transformation_state_impl_finalize (GObject* obj);
+enum {
+ PHOTO_BACKING_READERS_DUMMY_PROPERTY
+};
+static void photo_backing_readers_finalize (PhotoBackingReaders* obj);
+enum {
+ PHOTO_CACHED_PIXBUF_DUMMY_PROPERTY
+};
+static void photo_cached_pixbuf_finalize (PhotoCachedPixbuf* obj);
+enum {
+ PHOTO_REIMPORT_MASTER_STATE_DUMMY_PROPERTY
+};
+PhotoReimportMasterState* photo_reimport_master_state_construct (GType object_type);
+static void photo_reimport_master_state_finalize (PhotoReimportMasterState* obj);
+enum {
+ PHOTO_REIMPORT_MASTER_STATE_IMPL_DUMMY_PROPERTY
+};
+static gchar** _vala_array_dup29 (gchar** self, int length);
+static void photo_reimport_master_state_impl_finalize (PhotoReimportMasterState* obj);
+enum {
+ PHOTO_REIMPORT_EDITABLE_STATE_DUMMY_PROPERTY
+};
+PhotoReimportEditableState* photo_reimport_editable_state_construct (GType object_type);
+static void photo_reimport_editable_state_finalize (PhotoReimportEditableState* obj);
+enum {
+ PHOTO_REIMPORT_EDITABLE_STATE_IMPL_DUMMY_PROPERTY
+};
+static void photo_reimport_editable_state_impl_finalize (PhotoReimportEditableState* obj);
+enum {
+ PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_DUMMY_PROPERTY
+};
+PhotoReimportRawDevelopmentState* photo_reimport_raw_development_state_construct (GType object_type);
+static void photo_reimport_raw_development_state_finalize (PhotoReimportRawDevelopmentState* obj);
+enum {
+ PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_DUMMY_PROPERTY
+};
+static PhotoReimportRawDevelopmentStateImplDevToReimport* photo_reimport_raw_development_state_impl_dev_to_reimport_new (BackingPhotoRow* backing, PhotoMetadata* metadata);
+static PhotoReimportRawDevelopmentStateImplDevToReimport* photo_reimport_raw_development_state_impl_dev_to_reimport_construct (GType object_type, BackingPhotoRow* backing, PhotoMetadata* metadata);
+enum {
+ PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_DEV_TO_REIMPORT_DUMMY_PROPERTY
+};
+static void photo_reimport_raw_development_state_impl_dev_to_reimport_finalize (PhotoReimportRawDevelopmentStateImplDevToReimport* obj);
+static void photo_reimport_raw_development_state_impl_finalize (PhotoReimportRawDevelopmentState* obj);
+static void photo_finalize (GObject* obj);
+static void _vala_photo_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_photo_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType marker_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_holding_tank_get_type (void) G_GNUC_CONST;
+GType media_source_holding_tank_get_type (void) G_GNUC_CONST;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+GType media_monitor_get_type (void) G_GNUC_CONST;
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionPrivate))
+enum {
+ LIBRARY_PHOTO_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+GType library_photo_source_collection_state_get_type (void) G_GNUC_CONST;
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gint int64_compare (gint64* a, gint64* b);
+static gint _int64_compare_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static gint64* _int64_dup (gint64* self);
+gboolean int64_equal (gint64* a, gint64* b);
+static gboolean _int64_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+LibraryPhotoSourceCollection* library_photo_source_collection_new (void);
+LibraryPhotoSourceCollection* library_photo_source_collection_construct (GType object_type);
+static gint64 _photo_get_photo_key_get_source_database_key (DataSource* source, gpointer self);
+MediaSourceCollection* media_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+MediaSourceHoldingTank* media_source_collection_get_trashcan (MediaSourceCollection* self);
+static void library_photo_source_collection_on_trashcan_contents_altered (LibraryPhotoSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+static void _library_photo_source_collection_on_trashcan_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+MediaSourceHoldingTank* media_source_collection_get_offline_bin (MediaSourceCollection* self);
+static void library_photo_source_collection_on_offline_contents_altered (LibraryPhotoSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+static void _library_photo_source_collection_on_offline_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+static MediaSourceHoldingTank* library_photo_source_collection_real_create_trashcan (MediaSourceCollection* base);
+static gboolean library_photo_source_collection_check_if_trashed_photo (LibraryPhotoSourceCollection* self, DataSource* source, Alteration* alteration);
+static gboolean _library_photo_source_collection_check_if_trashed_photo_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self);
+LibraryPhotoSourceHoldingTank* library_photo_source_holding_tank_new (LibraryPhotoSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+LibraryPhotoSourceHoldingTank* library_photo_source_holding_tank_construct (GType object_type, LibraryPhotoSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+GType library_photo_source_holding_tank_get_type (void) G_GNUC_CONST;
+static MediaSourceHoldingTank* library_photo_source_collection_real_create_offline_bin (MediaSourceCollection* base);
+static gboolean library_photo_source_collection_check_if_offline_photo (LibraryPhotoSourceCollection* self, DataSource* source, Alteration* alteration);
+static gboolean _library_photo_source_collection_check_if_offline_photo_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self);
+static MediaMonitor* library_photo_source_collection_real_create_media_monitor (MediaSourceCollection* base, Workers* workers, GCancellable* cancellable);
+PhotoMonitor* photo_monitor_new (Workers* workers, GCancellable* cancellable);
+PhotoMonitor* photo_monitor_construct (GType object_type, Workers* workers, GCancellable* cancellable);
+GType photo_monitor_get_type (void) G_GNUC_CONST;
+static gboolean library_photo_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source);
+static gchar* library_photo_source_collection_real_get_typename (MediaSourceCollection* base);
+static gboolean library_photo_source_collection_real_is_file_recognized (MediaSourceCollection* base, GFile* file);
+static void library_photo_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed);
+static void library_photo_source_collection_on_editable_replaced (LibraryPhotoSourceCollection* self, Photo* photo, GFile* old_file, GFile* new_file);
+static void _library_photo_source_collection_on_editable_replaced_photo_editable_replaced (Photo* _sender, GFile* old_file, GFile* new_file, gpointer self);
+static void library_photo_source_collection_on_raw_development_modified (LibraryPhotoSourceCollection* self, Photo* _photo);
+static void _library_photo_source_collection_on_raw_development_modified_photo_raw_development_modified (Photo* _sender, gpointer self);
+void data_collection_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+static void library_photo_source_collection_real_items_altered (DataCollection* base, GeeMap* items);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+static void library_photo_source_collection_real_postprocess_imported_media (MediaSourceCollection* base, GeeCollection* media_sources);
+GType tag_get_type (void) G_GNUC_CONST;
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+HierarchicalTagIndex* hierarchical_tag_index_get_global_index (void);
+gboolean photo_metadata_has_hierarchical_keywords (PhotoMetadata* self);
+HierarchicalTagIndex* hierarchical_tag_utilities_process_hierarchical_import_keywords (GeeCollection* h_keywords);
+GeeSet* photo_metadata_get_hierarchical_keywords (PhotoMetadata* self);
+GeeCollection* library_photo_get_import_keywords (LibraryPhoto* self);
+gboolean hierarchical_tag_index_is_tag_in_index (HierarchicalTagIndex* self, const gchar* tag);
+gchar* tag_prep_tag_name (const gchar* name);
+gchar* hierarchical_tag_index_get_path_for_name (HierarchicalTagIndex* self, const gchar* name);
+Tag* tag_for_path (const gchar* name);
+GeeCollection* hierarchical_tag_index_get_all_paths (HierarchicalTagIndex* self);
+void library_photo_clear_import_keywords (LibraryPhoto* self);
+void tag_attach_many (Tag* self, GeeCollection* sources);
+void media_source_collection_postprocess_imported_media (MediaSourceCollection* self, GeeCollection* media);
+void library_photo_source_collection_notify_master_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void library_photo_source_collection_real_notify_master_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+void library_photo_source_collection_notify_editable_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void library_photo_source_collection_real_notify_editable_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+void library_photo_source_collection_notify_source_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void library_photo_source_collection_real_notify_source_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+void library_photo_source_collection_notify_baseline_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void library_photo_source_collection_real_notify_baseline_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static MediaSource* library_photo_source_collection_real_fetch_by_numeric_id (MediaSourceCollection* base, gint64 numeric_id);
+LibraryPhoto* library_photo_source_collection_fetch (LibraryPhotoSourceCollection* self, PhotoID* photo_id);
+gboolean media_source_is_trashed (MediaSource* self);
+gboolean media_source_is_offline (MediaSource* self);
+static MediaSource* library_photo_source_collection_real_fetch_by_source_id (MediaSourceCollection* base, const gchar* source_id);
+MediaSource* media_source_collection_fetch_by_numeric_id (MediaSourceCollection* self, gint64 numeric_id);
+gint64 parse_int64 (const gchar* str, gint num_base);
+static GeeCollection* library_photo_source_collection_real_get_event_source_ids (MediaSourceCollection* base, EventID* event_id);
+GeeArrayList* photo_table_get_event_source_ids (PhotoTable* self, EventID* event_id);
+DataSource* database_source_collection_fetch_by_key (DatabaseSourceCollection* self, gint64 key);
+LibraryPhoto* library_photo_source_collection_fetch_by_editable_file (LibraryPhotoSourceCollection* self, GFile* file);
+LibraryPhoto* library_photo_source_collection_fetch_by_raw_development_file (LibraryPhotoSourceCollection* self, GFile* file);
+static void library_photo_source_collection_compare_backing (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, GFileInfo* info, GeeCollection* matches_master, GeeCollection* matches_editable, GeeCollection* matches_development);
+gboolean backing_photo_row_matches_file_info (BackingPhotoRow* self, GFileInfo* info);
+void library_photo_source_collection_fetch_by_matching_backing (LibraryPhotoSourceCollection* self, GFileInfo* info, GeeCollection* matches_master, GeeCollection* matches_editable, GeeCollection* matched_development);
+GeeCollection* media_source_collection_get_offline_bin_contents (MediaSourceCollection* self);
+void library_photo_source_collection_get_basename_filesize_duplicate (LibraryPhotoSourceCollection* self, const gchar* basename, gint64 filesize, PhotoID* result);
+gint utf8_ci_compare (void* a, void* b);
+gboolean library_photo_source_collection_has_basename_filesize_duplicate (LibraryPhotoSourceCollection* self, const gchar* basename, gint64 filesize);
+gboolean photo_id_is_valid (PhotoID *self);
+LibraryPhoto* library_photo_source_collection_get_trashed_by_file (LibraryPhotoSourceCollection* self, GFile* file);
+MediaSource* media_source_holding_tank_fetch_by_master_file (MediaSourceHoldingTank* self, GFile* file);
+LibraryPhoto* library_photo_source_holding_tank_fetch_by_backing_file (LibraryPhotoSourceHoldingTank* self, GFile* file);
+LibraryPhoto* library_photo_source_collection_get_trashed_by_md5 (LibraryPhotoSourceCollection* self, const gchar* md5);
+MediaSource* media_source_holding_tank_fetch_by_md5 (MediaSourceHoldingTank* self, const gchar* md5);
+LibraryPhoto* library_photo_source_collection_get_offline_by_file (LibraryPhotoSourceCollection* self, GFile* file);
+LibraryPhoto* library_photo_source_collection_get_offline_by_md5 (LibraryPhotoSourceCollection* self, const gchar* md5);
+gint library_photo_source_collection_get_offline_count (LibraryPhotoSourceCollection* self);
+gint source_holding_tank_get_count (SourceHoldingTank* self);
+LibraryPhoto* library_photo_source_collection_get_state_by_file (LibraryPhotoSourceCollection* self, GFile* file, LibraryPhotoSourceCollectionState* state);
+MediaSource* media_source_collection_fetch_by_master_file (MediaSourceCollection* self, GFile* file);
+static gboolean library_photo_source_collection_real_has_backlink (SourceCollection* base, SourceBacklink* backlink);
+gboolean source_collection_has_backlink (SourceCollection* self, SourceBacklink* backlink);
+gboolean source_holding_tank_has_backlink (SourceHoldingTank* self, SourceBacklink* backlink);
+static void library_photo_source_collection_real_remove_backlink (SourceCollection* base, SourceBacklink* backlink);
+void source_holding_tank_remove_backlink (SourceHoldingTank* self, SourceBacklink* backlink);
+void source_collection_remove_backlink (SourceCollection* self, SourceBacklink* backlink);
+MediaSourceTransactionController* media_source_transaction_controller_new (MediaSourceCollection* sources);
+MediaSourceTransactionController* media_source_transaction_controller_construct (GType object_type, MediaSourceCollection* sources);
+GType media_source_transaction_controller_get_type (void) G_GNUC_CONST;
+static void library_photo_source_collection_real_master_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void g_cclosure_user_marshal_VOID__OBJECT_MEDIA_METADATA (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void library_photo_source_collection_real_editable_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void library_photo_source_collection_real_baseline_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void library_photo_source_collection_real_source_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void library_photo_source_collection_finalize (DataCollection* obj);
+GType flaggable_get_type (void) G_GNUC_CONST;
+GType monitorable_get_type (void) G_GNUC_CONST;
+#define LIBRARY_PHOTO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LIBRARY_PHOTO, LibraryPhotoPrivate))
+enum {
+ LIBRARY_PHOTO_DUMMY_PROPERTY
+};
+#define LIBRARY_PHOTO_FLAG_HIDDEN ((guint64) 0x0000000000000001)
+#define LIBRARY_PHOTO_FLAG_FAVORITE ((guint64) 0x0000000000000002)
+#define LIBRARY_PHOTO_FLAG_TRASH ((guint64) 0x0000000000000004)
+#define LIBRARY_PHOTO_FLAG_OFFLINE ((guint64) 0x0000000000000008)
+#define LIBRARY_PHOTO_FLAG_FLAGGED ((guint64) 0x0000000000000010)
+static LibraryPhoto* library_photo_new (PhotoRow* row);
+static LibraryPhoto* library_photo_construct (GType object_type, PhotoRow* row);
+static void library_photo_generate_thumbnails (LibraryPhoto* self);
+static void _library_photo_generate_thumbnails_one_shot_callback (gpointer self);
+void data_source_rehydrate_backlinks (DataSource* self, SourceCollection* unlinked_from, const gchar* dehydrated);
+static void library_photo_upgrade_rating_flags (LibraryPhoto* self, guint64 flags);
+static LibraryPhoto* library_photo_new_from_import_params (PhotoImportParams* import_params);
+static LibraryPhoto* library_photo_construct_from_import_params (GType object_type, PhotoImportParams* import_params);
+void library_photo_init (ProgressMonitor monitor, void* monitor_target);
+GeeArrayList* photo_table_get_all (PhotoTable* self);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+void media_source_collection_add_many_to_trash (MediaSourceCollection* self, GeeCollection* sources);
+void media_source_collection_add_many_to_offline (MediaSourceCollection* self, GeeCollection* sources);
+void library_photo_terminate (void);
+ImportResult library_photo_import_create (PhotoImportParams* params, LibraryPhoto** photo);
+void photo_table_add (PhotoTable* self, PhotoRow* photo_row, PhotoID* result);
+gboolean photo_id_is_invalid (PhotoID *self);
+void library_photo_import_failed (LibraryPhoto* photo);
+void photo_table_remove (PhotoTable* self, PhotoID* photo_id, GError** error);
+static void library_photo_real_notify_master_reimported (Photo* base, PhotoMetadata* metadata);
+static void library_photo_real_notify_editable_reimported (Photo* base, PhotoMetadata* metadata);
+static void library_photo_real_notify_source_reimported (Photo* base, PhotoMetadata* metadata);
+static void library_photo_real_notify_baseline_reimported (Photo* base, PhotoMetadata* metadata);
+void thumbnail_cache_import_from_source (ThumbnailSource* source, gboolean force, GError** error);
+void thumbnail_source_notify_thumbnail_altered (ThumbnailSource* self);
+static void library_photo_real_notify_altered (DataObject* base, Alteration* alteration);
+gboolean alteration_has_subject (Alteration* self, const gchar* subject);
+void one_shot_scheduler_at_priority_idle (OneShotScheduler* self, gint priority);
+static GdkPixbuf* library_photo_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+GType thumbnail_cache_size_get_type (void) G_GNUC_CONST;
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up);
+static void library_photo_real_rotate (Photo* base, Rotation rotation);
+void thumbnail_cache_rotate (ThumbnailSource* source, Rotation rotation, GError** error);
+static GdkPixbuf* library_photo_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GdkPixbuf* thumbnail_cache_fetch (ThumbnailSource* source, gint scale, GError** error);
+static void library_photo_duplicate_backing_photo (LibraryPhoto* self, BackingPhotoRow* backing, BackingPhotoID* result, GError** error);
+GFile* library_files_duplicate (GFile* src, GFileProgressCallback progress_callback, void* progress_callback_target, gboolean blacklist, GError** error);
+static void library_photo_on_duplicate_progress (LibraryPhoto* self, gint64 current, gint64 total);
+static void _library_photo_on_duplicate_progress_gfile_progress_callback (gint64 current_num_bytes, gint64 total_num_bytes, gpointer self);
+LibraryPhoto* library_photo_duplicate (LibraryPhoto* self, GError** error);
+void photo_table_duplicate (PhotoTable* self, PhotoID* photo_id, const gchar* new_filename, BackingPhotoID* editable_id, BackingPhotoID* develop_shotwell, BackingPhotoID* develop_camera_id, BackingPhotoID* develop_embedded_id, PhotoID* result);
+PhotoRow* photo_table_get_row (PhotoTable* self, PhotoID* photo_id);
+void thumbnail_cache_duplicate (ThumbnailSource* src_source, ThumbnailSource* dest_source);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+Event* media_source_get_event (MediaSource* self);
+void event_attach (Event* self, MediaSource* source);
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
+void tag_attach (Tag* self, MediaSource* source);
+void spin_event_loop (void);
+static gboolean library_photo_real_is_trashed (MediaSource* base);
+static void library_photo_real_trash (MediaSource* base);
+static void library_photo_real_untrash (MediaSource* base);
+static gboolean library_photo_real_is_offline (Monitorable* base);
+static void library_photo_real_mark_offline (Monitorable* base);
+static void library_photo_real_mark_online (Monitorable* base);
+static gboolean library_photo_real_is_flagged (Flaggable* base);
+static void library_photo_real_mark_flagged (Flaggable* base);
+static void library_photo_real_mark_unflagged (Flaggable* base);
+static gboolean library_photo_real_internal_delete_backing (DataSource* base, GError** error);
+gboolean media_source_delete_original_file (MediaSource* self);
+static void library_photo_real_destroy (DataSource* base);
+void thumbnail_cache_remove (ThumbnailSource* source);
+void data_source_destroy (DataSource* self);
+gboolean library_photo_has_nontrash_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format);
+void library_photo_get_nontrash_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, PhotoID* result);
+static gboolean library_photo_real_has_user_generated_metadata (Photo* base);
+Rating media_source_get_rating (MediaSource* self);
+gchar* data_object_get_name (DataObject* self);
+static void library_photo_real_set_user_metadata_for_export (Photo* base, PhotoMetadata* metadata);
+void photo_metadata_set_keywords (PhotoMetadata* self, GeeCollection* keywords, PhotoMetadataSetOption option);
+void photo_metadata_set_rating (PhotoMetadata* self, Rating rating);
+static void library_photo_real_apply_user_metadata_for_reimport (Photo* base, PhotoMetadata* metadata);
+gchar* hierarchical_tag_utilities_make_flat_tag_safe (const gchar* in_tag);
+gchar* hierarchical_tag_utilities_flat_to_hierarchical (const gchar* name);
+gboolean tag_source_collection_exists (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root);
+static void library_photo_finalize (GObject* obj);
+#define LIBRARY_PHOTO_SOURCE_HOLDING_TANK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTankPrivate))
+enum {
+ LIBRARY_PHOTO_SOURCE_HOLDING_TANK_DUMMY_PROPERTY
+};
+MediaSourceHoldingTank* media_source_holding_tank_new (MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+MediaSourceHoldingTank* media_source_holding_tank_construct (GType object_type, MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+static void library_photo_source_holding_tank_real_notify_contents_altered (SourceHoldingTank* base, GeeCollection* added, GeeCollection* removed);
+static void library_photo_source_holding_tank_on_editable_replaced (LibraryPhotoSourceHoldingTank* self, Photo* _photo, GFile* old_file, GFile* new_file);
+static void _library_photo_source_holding_tank_on_editable_replaced_photo_editable_replaced (Photo* _sender, GFile* old_file, GFile* new_file, gpointer self);
+static void library_photo_source_holding_tank_on_raw_development_modified (LibraryPhotoSourceHoldingTank* self, Photo* _photo);
+static void _library_photo_source_holding_tank_on_raw_development_modified_photo_raw_development_modified (Photo* _sender, gpointer self);
+void source_holding_tank_notify_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+static void library_photo_source_holding_tank_finalize (SourceHoldingTank* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+static const gchar* PHOTO_IMAGE_EXTENSIONS[69] = {"jpg", "jpeg", "jpe", "tiff", "tif", "png", "gif", "bmp", "ppm", "pgm", "pbm", "pnm", "thm", "tga", "ilbm", "pcx", "ecw", "img", "sid", "cd5", "fits", "pgf", "cgm", "svg", "odg", "eps", "pdf", "swf", "wmf", "emf", "xps", "pns", "jps", "mpo", "3fr", "arw", "srf", "sr2", "bay", "crw", "cr2", "cap", "iiq", "eip", "dcs", "dcr", "drf", "k25", "kdc", "dng", "erf", "fff", "mef", "mos", "mrw", "nef", "nrw", "orf", "ptx", "pef", "pxn", "r3d", "raf", "raw", "rw2", "rwl", "rwz", "x3f", "srw"};
+
+GType backing_fetch_mode_get_type (void) {
+ static volatile gsize backing_fetch_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&backing_fetch_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{BACKING_FETCH_MODE_SOURCE, "BACKING_FETCH_MODE_SOURCE", "source"}, {BACKING_FETCH_MODE_BASELINE, "BACKING_FETCH_MODE_BASELINE", "baseline"}, {BACKING_FETCH_MODE_MASTER, "BACKING_FETCH_MODE_MASTER", "master"}, {BACKING_FETCH_MODE_UNMODIFIED, "BACKING_FETCH_MODE_UNMODIFIED", "unmodified"}, {0, NULL, NULL}};
+ GType backing_fetch_mode_type_id;
+ backing_fetch_mode_type_id = g_enum_register_static ("BackingFetchMode", values);
+ g_once_init_leave (&backing_fetch_mode_type_id__volatile, backing_fetch_mode_type_id);
+ }
+ return backing_fetch_mode_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2878 "Photo.c"
+}
+
+
+static gpointer _thumbnails_ref0 (gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? thumbnails_ref (self) : NULL;
+#line 2885 "Photo.c"
+}
+
+
+PhotoImportParams* photo_import_params_construct (GType object_type, GFile* file, GFile* final_associated_file, ImportID* import_id, PhotoFileSnifferOptions sniffer_options, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, Thumbnails* thumbnails) {
+ PhotoImportParams* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ ImportID _tmp4_ = {0};
+ PhotoFileSnifferOptions _tmp5_ = 0;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ Thumbnails* _tmp12_ = NULL;
+ Thumbnails* _tmp13_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 38 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((final_associated_file == NULL) || G_IS_FILE (final_associated_file), NULL);
+#line 38 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (import_id != NULL, NULL);
+#line 38 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((thumbnails == NULL) || IS_THUMBNAILS (thumbnails), NULL);
+#line 38 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoImportParams*) g_type_create_instance (object_type);
+#line 41 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 41 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->file);
+#line 41 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->file = _tmp1_;
+#line 42 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = final_associated_file;
+#line 42 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 42 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->final_associated_file);
+#line 42 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->final_associated_file = _tmp3_;
+#line 43 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = *import_id;
+#line 43 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->import_id = _tmp4_;
+#line 44 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = sniffer_options;
+#line 44 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->sniffer_options = _tmp5_;
+#line 45 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = exif_md5;
+#line 45 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 45 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->exif_md5);
+#line 45 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->exif_md5 = _tmp7_;
+#line 46 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = thumbnail_md5;
+#line 46 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 46 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->thumbnail_md5);
+#line 46 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->thumbnail_md5 = _tmp9_;
+#line 47 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = full_md5;
+#line 47 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 47 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->full_md5);
+#line 47 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->full_md5 = _tmp11_;
+#line 48 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = thumbnails;
+#line 48 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _thumbnails_ref0 (_tmp12_);
+#line 48 "/home/jens/Source/shotwell/src/Photo.vala"
+ _thumbnails_unref0 (self->thumbnails);
+#line 48 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->thumbnails = _tmp13_;
+#line 38 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 2973 "Photo.c"
+}
+
+
+PhotoImportParams* photo_import_params_new (GFile* file, GFile* final_associated_file, ImportID* import_id, PhotoFileSnifferOptions sniffer_options, const gchar* exif_md5, const gchar* thumbnail_md5, const gchar* full_md5, Thumbnails* thumbnails) {
+#line 38 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_import_params_construct (TYPE_PHOTO_IMPORT_PARAMS, file, final_associated_file, import_id, sniffer_options, exif_md5, thumbnail_md5, full_md5, thumbnails);
+#line 2980 "Photo.c"
+}
+
+
+PhotoImportParams* photo_import_params_construct_create_placeholder (GType object_type, GFile* file, ImportID* import_id) {
+ PhotoImportParams* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ ImportID _tmp2_ = {0};
+#line 52 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 52 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (import_id != NULL, NULL);
+#line 52 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoImportParams*) g_type_create_instance (object_type);
+#line 53 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 53 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 53 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->file);
+#line 53 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->file = _tmp1_;
+#line 54 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = *import_id;
+#line 54 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->import_id = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->sniffer_options = PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5;
+#line 56 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->exif_md5);
+#line 56 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->exif_md5 = NULL;
+#line 57 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->thumbnail_md5);
+#line 57 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->thumbnail_md5 = NULL;
+#line 58 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->full_md5);
+#line 58 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->full_md5 = NULL;
+#line 59 "/home/jens/Source/shotwell/src/Photo.vala"
+ _thumbnails_unref0 (self->thumbnails);
+#line 59 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->thumbnails = NULL;
+#line 52 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 3027 "Photo.c"
+}
+
+
+PhotoImportParams* photo_import_params_new_create_placeholder (GFile* file, ImportID* import_id) {
+#line 52 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_import_params_construct_create_placeholder (TYPE_PHOTO_IMPORT_PARAMS, file, import_id);
+#line 3034 "Photo.c"
+}
+
+
+static void value_photo_import_params_init (GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 3041 "Photo.c"
+}
+
+
+static void value_photo_import_params_free_value (GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_import_params_unref (value->data[0].v_pointer);
+#line 3050 "Photo.c"
+ }
+}
+
+
+static void value_photo_import_params_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (src_value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = photo_import_params_ref (src_value->data[0].v_pointer);
+#line 3060 "Photo.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3064 "Photo.c"
+ }
+}
+
+
+static gpointer value_photo_import_params_peek_pointer (const GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 3072 "Photo.c"
+}
+
+
+static gchar* value_photo_import_params_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (collect_values[0].v_pointer) {
+#line 3079 "Photo.c"
+ PhotoImportParams* object;
+ object = collect_values[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3086 "Photo.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3090 "Photo.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = photo_import_params_ref (object);
+#line 3094 "Photo.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 3098 "Photo.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 3102 "Photo.c"
+}
+
+
+static gchar* value_photo_import_params_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoImportParams** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!object_p) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3113 "Photo.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = NULL;
+#line 3119 "Photo.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3123 "Photo.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = photo_import_params_ref (value->data[0].v_pointer);
+#line 3127 "Photo.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 3131 "Photo.c"
+}
+
+
+GParamSpec* param_spec_photo_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoImportParams* spec;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_IMPORT_PARAMS), NULL);
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return G_PARAM_SPEC (spec);
+#line 3145 "Photo.c"
+}
+
+
+gpointer value_get_photo_import_params (const GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_IMPORT_PARAMS), NULL);
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 3154 "Photo.c"
+}
+
+
+void value_set_photo_import_params (GValue* value, gpointer v_object) {
+ PhotoImportParams* old;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_IMPORT_PARAMS));
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_IMPORT_PARAMS));
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_import_params_ref (value->data[0].v_pointer);
+#line 3174 "Photo.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 3178 "Photo.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_import_params_unref (old);
+#line 3184 "Photo.c"
+ }
+}
+
+
+void value_take_photo_import_params (GValue* value, gpointer v_object) {
+ PhotoImportParams* old;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_IMPORT_PARAMS));
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_IMPORT_PARAMS));
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 3203 "Photo.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 3207 "Photo.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_import_params_unref (old);
+#line 3213 "Photo.c"
+ }
+}
+
+
+static void photo_import_params_class_init (PhotoImportParamsClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_import_params_parent_class = g_type_class_peek_parent (klass);
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoImportParamsClass *) klass)->finalize = photo_import_params_finalize;
+#line 3223 "Photo.c"
+}
+
+
+static void photo_import_params_instance_init (PhotoImportParams * self) {
+ PhotoRow* _tmp0_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->final_associated_file = NULL;
+#line 35 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_row_new ();
+#line 35 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->row = _tmp0_;
+#line 36 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->keywords = NULL;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->ref_count = 1;
+#line 3239 "Photo.c"
+}
+
+
+static void photo_import_params_finalize (PhotoImportParams* obj) {
+ PhotoImportParams * self;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParams);
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_destroy (self);
+#line 23 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->file);
+#line 24 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->final_associated_file);
+#line 27 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->exif_md5);
+#line 28 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->thumbnail_md5);
+#line 29 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->full_md5);
+#line 32 "/home/jens/Source/shotwell/src/Photo.vala"
+ _thumbnails_unref0 (self->thumbnails);
+#line 35 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (self->row);
+#line 36 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->keywords);
+#line 3265 "Photo.c"
+}
+
+
+GType photo_import_params_get_type (void) {
+ static volatile gsize photo_import_params_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_import_params_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_import_params_init, value_photo_import_params_free_value, value_photo_import_params_copy_value, value_photo_import_params_peek_pointer, "p", value_photo_import_params_collect_value, "p", value_photo_import_params_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoImportParamsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_import_params_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoImportParams), 0, (GInstanceInitFunc) photo_import_params_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_import_params_type_id;
+ photo_import_params_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoImportParams", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&photo_import_params_type_id__volatile, photo_import_params_type_id);
+ }
+ return photo_import_params_type_id__volatile;
+}
+
+
+gpointer photo_import_params_ref (gpointer instance) {
+ PhotoImportParams* self;
+ self = instance;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ return instance;
+#line 3290 "Photo.c"
+}
+
+
+void photo_import_params_unref (gpointer instance) {
+ PhotoImportParams* self;
+ self = instance;
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_IMPORT_PARAMS_GET_CLASS (self)->finalize (self);
+#line 21 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3303 "Photo.c"
+ }
+}
+
+
+PhotoTransformationState* photo_transformation_state_construct (GType object_type) {
+ PhotoTransformationState * self = NULL;
+#line 72 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoTransformationState*) g_object_new (object_type, NULL);
+#line 72 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 3314 "Photo.c"
+}
+
+
+gboolean photo_transformation_state_is_broken (PhotoTransformationState* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 75 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_TRANSFORMATION_STATE (self), FALSE);
+#line 76 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->is_broke;
+#line 76 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 76 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3329 "Photo.c"
+}
+
+
+static void photo_transformation_state_real_broken (PhotoTransformationState* self) {
+#line 69 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->is_broke = TRUE;
+#line 3336 "Photo.c"
+}
+
+
+static void photo_transformation_state_class_init (PhotoTransformationStateClass * klass) {
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_transformation_state_parent_class = g_type_class_peek_parent (klass);
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_class_add_private (klass, sizeof (PhotoTransformationStatePrivate));
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoTransformationStateClass *) klass)->broken = photo_transformation_state_real_broken;
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (klass)->finalize = photo_transformation_state_finalize;
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("broken", TYPE_PHOTO_TRANSFORMATION_STATE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoTransformationStateClass, broken), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 3351 "Photo.c"
+}
+
+
+static void photo_transformation_state_instance_init (PhotoTransformationState * self) {
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv = PHOTO_TRANSFORMATION_STATE_GET_PRIVATE (self);
+#line 64 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->is_broke = FALSE;
+#line 3360 "Photo.c"
+}
+
+
+static void photo_transformation_state_finalize (GObject* obj) {
+ PhotoTransformationState * self;
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationState);
+#line 63 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (photo_transformation_state_parent_class)->finalize (obj);
+#line 3370 "Photo.c"
+}
+
+
+GType photo_transformation_state_get_type (void) {
+ static volatile gsize photo_transformation_state_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_transformation_state_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoTransformationStateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_transformation_state_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoTransformationState), 0, (GInstanceInitFunc) photo_transformation_state_instance_init, NULL };
+ GType photo_transformation_state_type_id;
+ photo_transformation_state_type_id = g_type_register_static (G_TYPE_OBJECT, "PhotoTransformationState", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_transformation_state_type_id__volatile, photo_transformation_state_type_id);
+ }
+ return photo_transformation_state_type_id__volatile;
+}
+
+
+gboolean rating_can_increase (Rating self) {
+ gboolean result = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = self < RATING_FIVE;
+#line 90 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3392 "Photo.c"
+}
+
+
+gboolean rating_can_decrease (Rating self) {
+ gboolean result = FALSE;
+#line 94 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = self > RATING_REJECTED;
+#line 94 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3402 "Photo.c"
+}
+
+
+gboolean rating_is_valid (Rating self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 98 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (self >= RATING_REJECTED) {
+#line 98 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self <= RATING_FIVE;
+#line 3413 "Photo.c"
+ } else {
+#line 98 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = FALSE;
+#line 3417 "Photo.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 98 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3423 "Photo.c"
+}
+
+
+Rating rating_increase (Rating self) {
+ Rating result = 0;
+ Rating _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 102 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = rating_can_increase (self);
+#line 102 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 102 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self + 1;
+#line 3437 "Photo.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self;
+#line 3441 "Photo.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 102 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3447 "Photo.c"
+}
+
+
+Rating rating_decrease (Rating self) {
+ Rating result = 0;
+ Rating _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 106 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = rating_can_decrease (self);
+#line 106 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 106 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self - 1;
+#line 3461 "Photo.c"
+ } else {
+#line 106 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self;
+#line 3465 "Photo.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 106 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3471 "Photo.c"
+}
+
+
+gint rating_serialize (Rating self) {
+ gint result = 0;
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (self) {
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RATING_REJECTED:
+#line 3481 "Photo.c"
+ {
+#line 112 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = -1;
+#line 112 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3487 "Photo.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RATING_UNRATED:
+#line 3491 "Photo.c"
+ {
+#line 114 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = 0;
+#line 114 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3497 "Photo.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RATING_ONE:
+#line 3501 "Photo.c"
+ {
+#line 116 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = 1;
+#line 116 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3507 "Photo.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RATING_TWO:
+#line 3511 "Photo.c"
+ {
+#line 118 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = 2;
+#line 118 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3517 "Photo.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RATING_THREE:
+#line 3521 "Photo.c"
+ {
+#line 120 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = 3;
+#line 120 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3527 "Photo.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RATING_FOUR:
+#line 3531 "Photo.c"
+ {
+#line 122 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = 4;
+#line 122 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3537 "Photo.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RATING_FIVE:
+#line 3541 "Photo.c"
+ {
+#line 124 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = 5;
+#line 124 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3547 "Photo.c"
+ }
+ default:
+ {
+#line 126 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = 0;
+#line 126 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3555 "Photo.c"
+ }
+ }
+}
+
+
+Rating rating_unserialize (gint value) {
+ Rating result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp2_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = value;
+#line 131 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ > ((gint) RATING_FIVE)) {
+#line 132 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_FIVE;
+#line 132 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3573 "Photo.c"
+ } else {
+ gint _tmp1_ = 0;
+#line 133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = value;
+#line 133 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ < ((gint) RATING_REJECTED)) {
+#line 134 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_REJECTED;
+#line 134 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3584 "Photo.c"
+ }
+ }
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = value;
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp2_) {
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ case -1:
+#line 3593 "Photo.c"
+ {
+#line 138 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_REJECTED;
+#line 138 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3599 "Photo.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ case 0:
+#line 3603 "Photo.c"
+ {
+#line 140 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_UNRATED;
+#line 140 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3609 "Photo.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ case 1:
+#line 3613 "Photo.c"
+ {
+#line 142 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_ONE;
+#line 142 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3619 "Photo.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ case 2:
+#line 3623 "Photo.c"
+ {
+#line 144 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_TWO;
+#line 144 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3629 "Photo.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ case 3:
+#line 3633 "Photo.c"
+ {
+#line 146 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_THREE;
+#line 146 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3639 "Photo.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ case 4:
+#line 3643 "Photo.c"
+ {
+#line 148 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_FOUR;
+#line 148 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3649 "Photo.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/Photo.vala"
+ case 5:
+#line 3653 "Photo.c"
+ {
+#line 150 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_FIVE;
+#line 150 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3659 "Photo.c"
+ }
+ default:
+ {
+#line 152 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = RATING_UNRATED;
+#line 152 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3667 "Photo.c"
+ }
+ }
+}
+
+
+GType rating_get_type (void) {
+ static volatile gsize rating_type_id__volatile = 0;
+ if (g_once_init_enter (&rating_type_id__volatile)) {
+ static const GEnumValue values[] = {{RATING_REJECTED, "RATING_REJECTED", "rejected"}, {RATING_UNRATED, "RATING_UNRATED", "unrated"}, {RATING_ONE, "RATING_ONE", "one"}, {RATING_TWO, "RATING_TWO", "two"}, {RATING_THREE, "RATING_THREE", "three"}, {RATING_FOUR, "RATING_FOUR", "four"}, {RATING_FIVE, "RATING_FIVE", "five"}, {0, NULL, NULL}};
+ GType rating_type_id;
+ rating_type_id = g_enum_register_static ("Rating", values);
+ g_once_init_leave (&rating_type_id__volatile, rating_type_id);
+ }
+ return rating_type_id__volatile;
+}
+
+
+gboolean photo_exception_prohibits (PhotoException self, PhotoException exception) {
+ gboolean result = FALSE;
+ PhotoException _tmp0_ = 0;
+#line 228 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = exception;
+#line 228 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (self & _tmp0_) != 0;
+#line 228 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3694 "Photo.c"
+}
+
+
+gboolean photo_exception_allows (PhotoException self, PhotoException exception) {
+ gboolean result = FALSE;
+ PhotoException _tmp0_ = 0;
+#line 232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = exception;
+#line 232 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (self & _tmp0_) == 0;
+#line 232 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 3707 "Photo.c"
+}
+
+
+GType photo_exception_get_type (void) {
+ static volatile gsize photo_exception_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_exception_type_id__volatile)) {
+ static const GEnumValue values[] = {{PHOTO_EXCEPTION_NONE, "PHOTO_EXCEPTION_NONE", "none"}, {PHOTO_EXCEPTION_ORIENTATION, "PHOTO_EXCEPTION_ORIENTATION", "orientation"}, {PHOTO_EXCEPTION_CROP, "PHOTO_EXCEPTION_CROP", "crop"}, {PHOTO_EXCEPTION_REDEYE, "PHOTO_EXCEPTION_REDEYE", "redeye"}, {PHOTO_EXCEPTION_ADJUST, "PHOTO_EXCEPTION_ADJUST", "adjust"}, {PHOTO_EXCEPTION_STRAIGHTEN, "PHOTO_EXCEPTION_STRAIGHTEN", "straighten"}, {PHOTO_EXCEPTION_ALL, "PHOTO_EXCEPTION_ALL", "all"}, {0, NULL, NULL}};
+ GType photo_exception_type_id;
+ photo_exception_type_id = g_enum_register_static ("PhotoException", values);
+ g_once_init_leave (&photo_exception_type_id__volatile, photo_exception_type_id);
+ }
+ return photo_exception_type_id__volatile;
+}
+
+
+static gpointer _photo_row_ref0 (gpointer self) {
+#line 400 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? photo_row_ref (self) : NULL;
+#line 3726 "Photo.c"
+}
+
+
+static gpointer _backing_photo_row_ref0 (gpointer self) {
+#line 421 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? backing_photo_row_ref (self) : NULL;
+#line 3733 "Photo.c"
+}
+
+
+Photo* photo_construct (GType object_type, PhotoRow* row) {
+ Photo * self = NULL;
+ PhotoRow* _tmp0_ = NULL;
+ PhotoRow* _tmp1_ = NULL;
+ PhotoRow* _tmp2_ = NULL;
+ PhotoRow* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ PhotoRow* _tmp6_ = NULL;
+ PhotoRow* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ PhotoBackingReaders* _tmp10_ = NULL;
+ PhotoRow* _tmp11_ = NULL;
+ BackingPhotoRow* _tmp12_ = NULL;
+ PhotoFileFormat _tmp13_ = 0;
+ PhotoRow* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ PhotoFileReader* _tmp17_ = NULL;
+ gchar* basename = NULL;
+ PhotoRow* _tmp18_ = NULL;
+ BackingPhotoRow* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ PhotoRow* _tmp31_ = NULL;
+ BackingPhotoID _tmp32_ = {0};
+ gint64 _tmp33_ = 0LL;
+ PhotoRow* _tmp49_ = NULL;
+ BackingPhotoRow* _tmp50_ = NULL;
+ PhotoFileFormat _tmp51_ = 0;
+ gboolean _tmp67_ = FALSE;
+ PhotoRow* _tmp68_ = NULL;
+ BackingPhotoRow* _tmp69_ = NULL;
+ PhotoFileFormat _tmp70_ = 0;
+ PhotoBackingReaders* _tmp85_ = NULL;
+ PhotoFileReader* _tmp86_ = NULL;
+ PhotoRow* _tmp106_ = NULL;
+ time_t _tmp107_ = 0;
+ GError * _inner_error_ = NULL;
+#line 399 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_ROW (row), NULL);
+#line 399 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (Photo*) photo_source_construct (object_type, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = row;
+#line 400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _photo_row_ref0 (_tmp0_);
+#line 400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (self->row);
+#line 400 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->row = _tmp1_;
+#line 403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->title;
+#line 403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = media_source_prep_title (_tmp4_);
+#line 403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp2_->title);
+#line 403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_->title = _tmp5_;
+#line 404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->comment;
+#line 404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = media_source_prep_comment (_tmp8_);
+#line 404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp6_->comment);
+#line 404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_->comment = _tmp9_;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->priv->readers;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = row;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->master;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_->file_format;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = row;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->master;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->filepath;
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_file_format_create_reader (_tmp13_, _tmp16_);
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp10_->master);
+#line 408 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_->master = _tmp17_;
+#line 411 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = row;
+#line 411 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->master;
+#line 411 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_->filepath;
+#line 411 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = string_sliced_at_last_char (_tmp20_, (gunichar) G_DIR_SEPARATOR, 0);
+#line 411 "/home/jens/Source/shotwell/src/Photo.vala"
+ basename = _tmp21_;
+#line 412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = basename;
+#line 412 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_ != NULL) {
+#line 3850 "Photo.c"
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = basename;
+#line 413 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = string_sliced_at (_tmp23_, 1);
+#line 413 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->priv->file_title);
+#line 413 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->file_title = _tmp24_;
+#line 3861 "Photo.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->priv->file_title;
+#line 415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = is_string_empty (_tmp25_);
+#line 415 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp26_) {
+#line 3869 "Photo.c"
+ PhotoRow* _tmp27_ = NULL;
+ BackingPhotoRow* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = row;
+#line 416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_->master;
+#line 416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_->filepath;
+#line 416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->priv->file_title);
+#line 416 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->file_title = _tmp30_;
+#line 3886 "Photo.c"
+ }
+#line 418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = row;
+#line 418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_->editable_id;
+#line 418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_.id;
+#line 418 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp33_ != BACKING_PHOTO_ID_INVALID) {
+#line 3896 "Photo.c"
+ BackingPhotoRow* e = NULL;
+ PhotoRow* _tmp34_ = NULL;
+ BackingPhotoID _tmp35_ = {0};
+ BackingPhotoRow* _tmp36_ = NULL;
+ BackingPhotoRow* _tmp37_ = NULL;
+#line 419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = row;
+#line 419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_->editable_id;
+#line 419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = photo_get_backing_row (self, &_tmp35_);
+#line 419 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _tmp36_;
+#line 420 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = e;
+#line 420 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp37_ != NULL) {
+#line 3914 "Photo.c"
+ BackingPhotoRow* _tmp38_ = NULL;
+ BackingPhotoRow* _tmp39_ = NULL;
+ PhotoBackingReaders* _tmp40_ = NULL;
+ BackingPhotoRow* _tmp41_ = NULL;
+ PhotoFileFormat _tmp42_ = 0;
+ BackingPhotoRow* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ PhotoFileReader* _tmp45_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = e;
+#line 421 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _backing_photo_row_ref0 (_tmp38_);
+#line 421 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->priv->editable);
+#line 421 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable = _tmp39_;
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = self->priv->readers;
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = self->priv->editable;
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_->file_format;
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = self->priv->editable;
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp43_->filepath;
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = photo_file_format_create_reader (_tmp42_, _tmp44_);
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp40_->editable);
+#line 422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_->editable = _tmp45_;
+#line 3947 "Photo.c"
+ } else {
+ {
+ PhotoTable* _tmp46_ = NULL;
+ PhotoTable* _tmp47_ = NULL;
+ PhotoRow* _tmp48_ = NULL;
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = photo_table_get_instance ();
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_;
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = self->row;
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_detach_editable (_tmp47_, _tmp48_, &_inner_error_);
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp47_);
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3967 "Photo.c"
+ goto __catch243_database_error;
+ }
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (e);
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (basename);
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 425 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 3980 "Photo.c"
+ }
+ }
+ goto __finally243;
+ __catch243_database_error:
+ {
+ GError* err = NULL;
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 3993 "Photo.c"
+ }
+ __finally243:
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (e);
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (basename);
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 424 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 4008 "Photo.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_internal_remove_all_transformations (self, FALSE);
+#line 4012 "Photo.c"
+ }
+#line 418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (e);
+#line 4016 "Photo.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = row;
+#line 436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = _tmp49_->master;
+#line 436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = _tmp50_->file_format;
+#line 436 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp51_ == PHOTO_FILE_FORMAT_RAW) {
+#line 4026 "Photo.c"
+ GeeHashMap* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ RawDeveloper* _tmp54_ = NULL;
+#line 438 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = gee_hash_map_new (TYPE_RAW_DEVELOPER, NULL, NULL, TYPE_BACKING_PHOTO_ROW, (GBoxedCopyFunc) backing_photo_row_ref, backing_photo_row_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 438 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->developments);
+#line 438 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->developments = _tmp52_;
+#line 439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = raw_developer_as_array (&_tmp53_);
+#line 4038 "Photo.c"
+ {
+ RawDeveloper* d_collection = NULL;
+ gint d_collection_length1 = 0;
+ gint _d_collection_size_ = 0;
+ gint d_it = 0;
+#line 439 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection = _tmp54_;
+#line 439 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection_length1 = _tmp53_;
+#line 439 "/home/jens/Source/shotwell/src/Photo.vala"
+ for (d_it = 0; d_it < _tmp53_; d_it = d_it + 1) {
+#line 4050 "Photo.c"
+ RawDeveloper d = 0;
+#line 439 "/home/jens/Source/shotwell/src/Photo.vala"
+ d = d_collection[d_it];
+#line 4054 "Photo.c"
+ {
+ BackingPhotoID id = {0};
+ PhotoRow* _tmp55_ = NULL;
+ BackingPhotoID* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ RawDeveloper _tmp57_ = 0;
+ BackingPhotoID _tmp58_ = {0};
+ BackingPhotoID _tmp59_ = {0};
+ gint64 _tmp60_ = 0LL;
+#line 440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = row;
+#line 440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = _tmp55_->development_ids;
+#line 440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56__length1 = _tmp55_->development_ids_length1;
+#line 440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = d;
+#line 440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = _tmp56_[_tmp57_];
+#line 440 "/home/jens/Source/shotwell/src/Photo.vala"
+ id = _tmp58_;
+#line 441 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = id;
+#line 441 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = _tmp59_.id;
+#line 441 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp60_ != BACKING_PHOTO_ID_INVALID) {
+#line 4082 "Photo.c"
+ BackingPhotoRow* bpr = NULL;
+ BackingPhotoID _tmp61_ = {0};
+ BackingPhotoRow* _tmp62_ = NULL;
+ BackingPhotoRow* _tmp63_ = NULL;
+#line 442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = id;
+#line 442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = photo_get_backing_row (self, &_tmp61_);
+#line 442 "/home/jens/Source/shotwell/src/Photo.vala"
+ bpr = _tmp62_;
+#line 443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = bpr;
+#line 443 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp63_ != NULL) {
+#line 4097 "Photo.c"
+ GeeHashMap* _tmp64_ = NULL;
+ RawDeveloper _tmp65_ = 0;
+ BackingPhotoRow* _tmp66_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = self->priv->developments;
+#line 444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = d;
+#line 444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = bpr;
+#line 444 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp65_), _tmp66_);
+#line 4109 "Photo.c"
+ }
+#line 441 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 4113 "Photo.c"
+ }
+ }
+ }
+#line 439 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection = (g_free (d_collection), NULL);
+#line 4119 "Photo.c"
+ }
+ }
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = row;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = _tmp68_->master;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = _tmp69_->file_format;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp70_ == PHOTO_FILE_FORMAT_RAW) {
+#line 4130 "Photo.c"
+ GeeHashMap* _tmp71_ = NULL;
+ PhotoRow* _tmp72_ = NULL;
+ RawDeveloper _tmp73_ = 0;
+ gboolean _tmp74_ = FALSE;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = self->priv->developments;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = row;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = _tmp72_->developer;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp73_));
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = _tmp74_;
+#line 4145 "Photo.c"
+ } else {
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = FALSE;
+#line 4149 "Photo.c"
+ }
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp67_) {
+#line 4153 "Photo.c"
+ BackingPhotoRow* r = NULL;
+ GeeHashMap* _tmp75_ = NULL;
+ PhotoRow* _tmp76_ = NULL;
+ RawDeveloper _tmp77_ = 0;
+ gpointer _tmp78_ = NULL;
+ PhotoBackingReaders* _tmp79_ = NULL;
+ BackingPhotoRow* _tmp80_ = NULL;
+ PhotoFileFormat _tmp81_ = 0;
+ BackingPhotoRow* _tmp82_ = NULL;
+ const gchar* _tmp83_ = NULL;
+ PhotoFileReader* _tmp84_ = NULL;
+#line 451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = self->priv->developments;
+#line 451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = row;
+#line 451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = _tmp76_->developer;
+#line 451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp77_));
+#line 451 "/home/jens/Source/shotwell/src/Photo.vala"
+ r = (BackingPhotoRow*) _tmp78_;
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = self->priv->readers;
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = r;
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = _tmp80_->file_format;
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = r;
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = _tmp82_->filepath;
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = photo_file_format_create_reader (_tmp81_, _tmp83_);
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp79_->developer);
+#line 452 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_->developer = _tmp84_;
+#line 450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (r);
+#line 4193 "Photo.c"
+ }
+#line 456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = self->priv->readers;
+#line 456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = _tmp85_->editable;
+#line 456 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp86_ != NULL) {
+#line 4201 "Photo.c"
+ BackingPhotoRow* _tmp87_ = NULL;
+ BackingPhotoRow* _tmp88_ = NULL;
+#line 457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = self->priv->editable;
+#line 457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = _backing_photo_row_ref0 (_tmp87_);
+#line 457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 457 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = _tmp88_;
+#line 4212 "Photo.c"
+ } else {
+ PhotoRow* _tmp89_ = NULL;
+ BackingPhotoRow* _tmp90_ = NULL;
+ PhotoFileFormat _tmp91_ = 0;
+#line 458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = row;
+#line 458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = _tmp89_->master;
+#line 458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = _tmp90_->file_format;
+#line 458 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp91_ != PHOTO_FILE_FORMAT_RAW) {
+#line 4225 "Photo.c"
+ PhotoRow* _tmp92_ = NULL;
+ BackingPhotoRow* _tmp93_ = NULL;
+ BackingPhotoRow* _tmp94_ = NULL;
+#line 459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = self->row;
+#line 459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = _tmp92_->master;
+#line 459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = _backing_photo_row_ref0 (_tmp93_);
+#line 459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 459 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = _tmp94_;
+#line 4239 "Photo.c"
+ } else {
+ GeeHashMap* _tmp95_ = NULL;
+ PhotoRow* _tmp96_ = NULL;
+ RawDeveloper _tmp97_ = 0;
+ gboolean _tmp98_ = FALSE;
+#line 463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = self->priv->developments;
+#line 463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = row;
+#line 463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = _tmp96_->developer;
+#line 463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp95_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp97_));
+#line 463 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp98_) {
+#line 4255 "Photo.c"
+ GeeHashMap* _tmp99_ = NULL;
+ PhotoRow* _tmp100_ = NULL;
+ RawDeveloper _tmp101_ = 0;
+ gpointer _tmp102_ = NULL;
+#line 464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp99_ = self->priv->developments;
+#line 464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = row;
+#line 464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = _tmp100_->developer;
+#line 464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp102_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp101_));
+#line 464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 464 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = (BackingPhotoRow*) _tmp102_;
+#line 4272 "Photo.c"
+ } else {
+ PhotoRow* _tmp103_ = NULL;
+ BackingPhotoRow* _tmp104_ = NULL;
+ BackingPhotoRow* _tmp105_ = NULL;
+#line 467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103_ = self->row;
+#line 467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = _tmp103_->master;
+#line 467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp105_ = _backing_photo_row_ref0 (_tmp104_);
+#line 467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 467 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = _tmp105_;
+#line 4287 "Photo.c"
+ }
+ }
+ }
+#line 471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = self->row;
+#line 471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp107_ = _tmp106_->exposure_time;
+#line 471 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->cached_exposure_time = _tmp107_;
+#line 399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (basename);
+#line 399 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 4301 "Photo.c"
+}
+
+
+void photo_init_photo (void) {
+ GeeLinkedList* _tmp0_ = NULL;
+#line 475 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = gee_linked_list_new (PHOTO_TYPE_CACHED_PIXBUF, (GBoxedCopyFunc) photo_cached_pixbuf_ref, photo_cached_pixbuf_unref, NULL, NULL, NULL);
+#line 475 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo_source_pixbuf_cache);
+#line 475 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_source_pixbuf_cache = _tmp0_;
+#line 4313 "Photo.c"
+}
+
+
+void photo_terminate_photo (void) {
+ guint _tmp0_ = 0U;
+#line 479 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo_source_pixbuf_cache);
+#line 479 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_source_pixbuf_cache = NULL;
+#line 481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_discard_source_id;
+#line 481 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != ((guint) 0)) {
+#line 4327 "Photo.c"
+ guint _tmp1_ = 0U;
+#line 482 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_discard_source_id;
+#line 482 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_source_remove (_tmp1_);
+#line 483 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_discard_source_id = (guint) 0;
+#line 4335 "Photo.c"
+ }
+}
+
+
+static void photo_real_notify_editable_replaced (Photo* self, GFile* old_file, GFile* new_file) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 487 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((old_file == NULL) || G_IS_FILE (old_file));
+#line 487 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((new_file == NULL) || G_IS_FILE (new_file));
+#line 488 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = old_file;
+#line 488 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = new_file;
+#line 488 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "editable-replaced", _tmp0_, _tmp1_);
+#line 4353 "Photo.c"
+}
+
+
+void photo_notify_editable_replaced (Photo* self, GFile* old_file, GFile* new_file) {
+#line 487 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 487 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->notify_editable_replaced (self, old_file, new_file);
+#line 4362 "Photo.c"
+}
+
+
+static void photo_real_notify_raw_development_modified (Photo* self) {
+#line 492 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "raw-development-modified");
+#line 4369 "Photo.c"
+}
+
+
+void photo_notify_raw_development_modified (Photo* self) {
+#line 491 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 491 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->notify_raw_development_modified (self);
+#line 4378 "Photo.c"
+}
+
+
+static void photo_real_notify_baseline_replaced (Photo* self) {
+#line 496 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "baseline-replaced");
+#line 4385 "Photo.c"
+}
+
+
+void photo_notify_baseline_replaced (Photo* self) {
+#line 495 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 495 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->notify_baseline_replaced (self);
+#line 4394 "Photo.c"
+}
+
+
+static void photo_real_notify_master_reimported (Photo* self, PhotoMetadata* metadata) {
+ PhotoMetadata* _tmp0_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 500 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 500 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "master-reimported", _tmp0_);
+#line 4406 "Photo.c"
+}
+
+
+void photo_notify_master_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 499 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 499 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->notify_master_reimported (self, metadata);
+#line 4415 "Photo.c"
+}
+
+
+static void photo_real_notify_editable_reimported (Photo* self, PhotoMetadata* metadata) {
+ PhotoMetadata* _tmp0_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 504 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 504 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "editable-reimported", _tmp0_);
+#line 4427 "Photo.c"
+}
+
+
+void photo_notify_editable_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 503 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 503 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->notify_editable_reimported (self, metadata);
+#line 4436 "Photo.c"
+}
+
+
+static void photo_real_notify_source_reimported (Photo* self, PhotoMetadata* metadata) {
+ PhotoMetadata* _tmp0_ = NULL;
+#line 507 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 508 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 508 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "source-reimported", _tmp0_);
+#line 4448 "Photo.c"
+}
+
+
+void photo_notify_source_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 507 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 507 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->notify_source_reimported (self, metadata);
+#line 4457 "Photo.c"
+}
+
+
+static void photo_real_notify_baseline_reimported (Photo* self, PhotoMetadata* metadata) {
+ PhotoMetadata* _tmp0_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 512 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 512 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "baseline-reimported", _tmp0_);
+#line 4469 "Photo.c"
+}
+
+
+void photo_notify_baseline_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 511 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 511 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->notify_baseline_reimported (self, metadata);
+#line 4478 "Photo.c"
+}
+
+
+static gboolean photo_real_internal_delete_backing (DataSource* base, GError** error) {
+ Photo * self;
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ GFile* file = NULL;
+ PhotoFileFormat _tmp7_ = 0;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 516 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = TRUE;
+#line 517 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = NULL;
+#line 4499 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 4506 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+#line 519 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 519 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 519 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 4516 "Photo.c"
+ PhotoBackingReaders* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 520 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->editable;
+#line 520 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 520 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 520 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp5_;
+#line 4530 "Photo.c"
+ }
+ }
+ __finally244:
+ {
+ PhotoBackingReaders* _tmp6_ = NULL;
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->readers;
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 4540 "Photo.c"
+ }
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 518 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 4550 "Photo.c"
+ }
+ }
+#line 523 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_detach_editable (self, TRUE, FALSE, TRUE);
+#line 525 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_get_master_file_format (self);
+#line 525 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_ == PHOTO_FILE_FORMAT_RAW) {
+#line 4559 "Photo.c"
+ gint _tmp8_ = 0;
+ RawDeveloper* _tmp9_ = NULL;
+#line 526 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = raw_developer_as_array (&_tmp8_);
+#line 4564 "Photo.c"
+ {
+ RawDeveloper* d_collection = NULL;
+ gint d_collection_length1 = 0;
+ gint _d_collection_size_ = 0;
+ gint d_it = 0;
+#line 526 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection = _tmp9_;
+#line 526 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection_length1 = _tmp8_;
+#line 526 "/home/jens/Source/shotwell/src/Photo.vala"
+ for (d_it = 0; d_it < _tmp8_; d_it = d_it + 1) {
+#line 4576 "Photo.c"
+ RawDeveloper d = 0;
+#line 526 "/home/jens/Source/shotwell/src/Photo.vala"
+ d = d_collection[d_it];
+#line 4580 "Photo.c"
+ {
+ RawDeveloper _tmp10_ = 0;
+#line 527 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = d;
+#line 527 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_delete_raw_development (self, _tmp10_);
+#line 4587 "Photo.c"
+ }
+ }
+#line 526 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection = (g_free (d_collection), NULL);
+#line 4592 "Photo.c"
+ }
+ }
+#line 531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = file;
+#line 531 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_ != NULL) {
+#line 4599 "Photo.c"
+ {
+ gboolean _tmp12_ = FALSE;
+ GFile* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 533 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = file;
+#line 533 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = g_file_trash (_tmp13_, NULL, &_inner_error_);
+#line 533 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp14_;
+#line 533 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4612 "Photo.c"
+ goto __catch245_g_error;
+ }
+#line 533 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = _tmp12_;
+#line 4617 "Photo.c"
+ }
+ goto __finally245;
+ __catch245_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ GError* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 532 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 535 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = FALSE;
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = file;
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = g_file_get_path (_tmp15_);
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_;
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = err;
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_->message;
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_message ("Photo.vala:536: Unable to move editable %s for %s to trash: %s", _tmp17_, _tmp19_, _tmp21_);
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp19_);
+#line 536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp17_);
+#line 532 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 4658 "Photo.c"
+ }
+ __finally245:
+#line 532 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 532 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 532 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 532 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 4669 "Photo.c"
+ }
+ }
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = DATA_SOURCE_CLASS (photo_parent_class)->internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource), TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp24_;
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 4684 "Photo.c"
+ }
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp23_) {
+#line 4688 "Photo.c"
+ gboolean _tmp25_ = FALSE;
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = ret;
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp25_;
+#line 4694 "Photo.c"
+ } else {
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = FALSE;
+#line 4698 "Photo.c"
+ }
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp22_;
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 542 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 4706 "Photo.c"
+}
+
+
+static BackingPhotoRow* photo_get_backing_row (Photo* self, BackingPhotoID* id) {
+ BackingPhotoRow* result = NULL;
+ BackingPhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ BackingPhotoRow* backing_row = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 547 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 547 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = *id;
+#line 548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_.id;
+#line 548 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == BACKING_PHOTO_ID_INVALID) {
+#line 549 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 549 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 4731 "Photo.c"
+ }
+#line 551 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_row = NULL;
+#line 4735 "Photo.c"
+ {
+ BackingPhotoRow* _tmp2_ = NULL;
+ BackingPhotoTable* _tmp3_ = NULL;
+ BackingPhotoTable* _tmp4_ = NULL;
+ BackingPhotoID _tmp5_ = {0};
+ BackingPhotoRow* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ BackingPhotoRow* _tmp8_ = NULL;
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = backing_photo_table_get_instance ();
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = *id;
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = backing_photo_table_fetch (_tmp4_, &_tmp5_, &_inner_error_);
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp4_);
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp7_;
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 4762 "Photo.c"
+ goto __catch246_database_error;
+ }
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing_row);
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 4773 "Photo.c"
+ }
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp2_;
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = NULL;
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing_row);
+#line 553 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_row = _tmp8_;
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp2_);
+#line 4785 "Photo.c"
+ }
+ goto __finally246;
+ __catch246_database_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_;
+#line 555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = err;
+#line 555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->message;
+#line 555 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:555: Unable to fetch backing state for %s: %s", _tmp10_, _tmp12_);
+#line 555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp10_);
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 4813 "Photo.c"
+ }
+ __finally246:
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing_row);
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 552 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 4826 "Photo.c"
+ }
+#line 558 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = backing_row;
+#line 558 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_ == NULL) {
+#line 4832 "Photo.c"
+ {
+ BackingPhotoTable* _tmp14_ = NULL;
+ BackingPhotoTable* _tmp15_ = NULL;
+ BackingPhotoID _tmp16_ = {0};
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = backing_photo_table_get_instance ();
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_;
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = *id;
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_remove (_tmp15_, &_tmp16_, &_inner_error_);
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp15_);
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 4851 "Photo.c"
+ goto __catch247_database_error;
+ }
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing_row);
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 560 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 4862 "Photo.c"
+ }
+ }
+ goto __finally247;
+ __catch247_database_error:
+ {
+ GError* err = NULL;
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 4875 "Photo.c"
+ }
+ __finally247:
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing_row);
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 559 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 4888 "Photo.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing_row);
+#line 564 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 4896 "Photo.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = backing_row;
+#line 567 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 4902 "Photo.c"
+}
+
+
+gboolean photo_is_raw_developer_complete (Photo* self, RawDeveloper d) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 4911 "Photo.c"
+ {
+ GeeHashMap* _tmp0_ = NULL;
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->developments;
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_developments);
+#line 4918 "Photo.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ GeeHashMap* _tmp2_ = NULL;
+ RawDeveloper _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+#line 574 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->developments;
+#line 574 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = d;
+#line 574 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp3_));
+#line 574 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp4_) {
+#line 4932 "Photo.c"
+ GeeHashMap* _tmp5_ = NULL;
+ RawDeveloper _tmp6_ = 0;
+ gpointer _tmp7_ = NULL;
+ BackingPhotoRow* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->developments;
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = d;
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp6_));
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = (BackingPhotoRow*) _tmp7_;
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_->filepath;
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = g_file_test (_tmp9_, G_FILE_TEST_EXISTS);
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp10_;
+#line 575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp8_);
+#line 4955 "Photo.c"
+ } else {
+#line 574 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 4959 "Photo.c"
+ }
+#line 574 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 4963 "Photo.c"
+ {
+ GeeHashMap* _tmp11_ = NULL;
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->priv->developments;
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 4970 "Photo.c"
+ }
+#line 574 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 4974 "Photo.c"
+ }
+ __finally248:
+ {
+ GeeHashMap* _tmp12_ = NULL;
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->priv->developments;
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 4983 "Photo.c"
+ }
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 573 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 4991 "Photo.c"
+ }
+}
+
+
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d) {
+ gboolean result = FALSE;
+ RawDeveloper _tmp6_ = 0;
+ GError * _inner_error_ = NULL;
+#line 580 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 5002 "Photo.c"
+ {
+ GeeHashMap* _tmp0_ = NULL;
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->developments;
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_developments);
+#line 5009 "Photo.c"
+ {
+ GeeHashMap* _tmp1_ = NULL;
+ RawDeveloper _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->developments;
+#line 582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = d;
+#line 582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp2_));
+#line 582 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_) {
+#line 583 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 5024 "Photo.c"
+ {
+ GeeHashMap* _tmp4_ = NULL;
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->developments;
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 5031 "Photo.c"
+ }
+#line 583 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5035 "Photo.c"
+ }
+ }
+ __finally249:
+ {
+ GeeHashMap* _tmp5_ = NULL;
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->developments;
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 5045 "Photo.c"
+ }
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 581 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 5055 "Photo.c"
+ }
+ }
+#line 586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = d;
+#line 586 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp6_) {
+#line 586 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RAW_DEVELOPER_SHOTWELL:
+#line 5064 "Photo.c"
+ {
+#line 588 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 588 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5070 "Photo.c"
+ }
+#line 586 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RAW_DEVELOPER_CAMERA:
+#line 5074 "Photo.c"
+ {
+#line 591 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 591 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5080 "Photo.c"
+ }
+#line 586 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RAW_DEVELOPER_EMBEDDED:
+#line 5084 "Photo.c"
+ {
+ {
+ PhotoMetadata* meta = NULL;
+ PhotoMetadata* _tmp7_ = NULL;
+ guint num_previews = 0U;
+ PhotoMetadata* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ guint _tmp10_ = 0U;
+#line 595 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_get_master_metadata (self, &_inner_error_);
+#line 595 "/home/jens/Source/shotwell/src/Photo.vala"
+ meta = _tmp7_;
+#line 595 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5099 "Photo.c"
+ goto __catch250_g_error;
+ }
+#line 596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = meta;
+#line 596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_metadata_get_preview_count (_tmp8_);
+#line 596 "/home/jens/Source/shotwell/src/Photo.vala"
+ num_previews = _tmp9_;
+#line 598 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = num_previews;
+#line 598 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_ > ((guint) 0)) {
+#line 5112 "Photo.c"
+ PhotoPreview* prev = NULL;
+ PhotoMetadata* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ PhotoPreview* _tmp13_ = NULL;
+ PhotoPreview* _tmp14_ = NULL;
+ Dimensions dims = {0};
+ PhotoPreview* _tmp15_ = NULL;
+ Dimensions _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ Dimensions _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ Dimensions _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gint preview_major_axis = 0;
+ gint _tmp26_ = 0;
+#line 599 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = meta;
+#line 599 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = num_previews;
+#line 599 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_metadata_get_preview (_tmp11_, _tmp12_ - 1);
+#line 599 "/home/jens/Source/shotwell/src/Photo.vala"
+ prev = _tmp13_;
+#line 602 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = prev;
+#line 602 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_ == NULL) {
+#line 603 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 603 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5148 "Photo.c"
+ }
+#line 605 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = prev;
+#line 605 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_preview_get_pixel_dimensions (_tmp15_, &_tmp16_);
+#line 605 "/home/jens/Source/shotwell/src/Photo.vala"
+ dims = _tmp16_;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = dims;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_.width;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = dims;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_.height;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp19_ > _tmp21_) {
+#line 5166 "Photo.c"
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = dims;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_.width;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp23_;
+#line 5175 "Photo.c"
+ } else {
+ Dimensions _tmp24_ = {0};
+ gint _tmp25_ = 0;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = dims;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_.height;
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp25_;
+#line 5185 "Photo.c"
+ }
+#line 608 "/home/jens/Source/shotwell/src/Photo.vala"
+ preview_major_axis = _tmp17_;
+#line 609 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = preview_major_axis;
+#line 609 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp26_ < PHOTO_MIN_EMBEDDED_SIZE) {
+#line 610 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 610 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 610 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 610 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5201 "Photo.c"
+ }
+#line 613 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 613 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5211 "Photo.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 617 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 617 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5219 "Photo.c"
+ }
+ goto __finally250;
+ __catch250_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+#line 594 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 594 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = e;
+#line 619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_->message;
+#line 619 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:619: Error accessing embedded preview. Message: %s", _tmp28_);
+#line 594 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 5239 "Photo.c"
+ }
+ __finally250:
+#line 594 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 594 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 594 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 594 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 5250 "Photo.c"
+ }
+#line 621 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 621 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 5256 "Photo.c"
+ }
+ default:
+ {
+#line 624 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_assert_not_reached ();
+#line 5262 "Photo.c"
+ }
+ }
+}
+
+
+void photo_add_backing_photo_for_development (Photo* self, RawDeveloper d, BackingPhotoRow* bpr, GError** error) {
+ PhotoRow* _tmp0_ = NULL;
+ RawDeveloper _tmp1_ = 0;
+ BackingPhotoRow* _tmp2_ = NULL;
+ Alteration* _tmp8_ = NULL;
+ Alteration* _tmp9_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 631 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 631 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_ROW (bpr));
+#line 632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = d;
+#line 632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = bpr;
+#line 632 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_import_developed_backing_photo (_tmp0_, _tmp1_, _tmp2_, &_inner_error_);
+#line 632 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 632 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 632 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5293 "Photo.c"
+ }
+ {
+ GeeHashMap* _tmp3_ = NULL;
+#line 633 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->developments;
+#line 633 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_developments);
+#line 5301 "Photo.c"
+ {
+ GeeHashMap* _tmp4_ = NULL;
+ RawDeveloper _tmp5_ = 0;
+ BackingPhotoRow* _tmp6_ = NULL;
+#line 634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->developments;
+#line 634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = d;
+#line 634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = bpr;
+#line 634 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp5_), _tmp6_);
+#line 5314 "Photo.c"
+ }
+ __finally251:
+ {
+ GeeHashMap* _tmp7_ = NULL;
+#line 633 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->priv->developments;
+#line 633 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 5323 "Photo.c"
+ }
+#line 633 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 633 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 633 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5331 "Photo.c"
+ }
+ }
+#line 636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = alteration_new ("image", "developer");
+#line 636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 636 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp9_);
+#line 636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp9_);
+#line 5342 "Photo.c"
+}
+
+
+void photo_import_developed_backing_photo (PhotoRow* row, RawDeveloper d, BackingPhotoRow* bpr, GError** error) {
+ GFile* file = NULL;
+ BackingPhotoRow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* info = NULL;
+ GFile* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ GTimeVal timestamp = {0};
+ GFileInfo* _tmp5_ = NULL;
+ GTimeVal _tmp6_ = {0};
+ PhotoFileInterrogator* interrogator = NULL;
+ GFile* _tmp7_ = NULL;
+ PhotoFileInterrogator* _tmp8_ = NULL;
+ PhotoFileInterrogator* _tmp9_ = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ PhotoFileInterrogator* _tmp10_ = NULL;
+ DetectedPhotoInformation* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ DetectedPhotoInformation* _tmp13_ = NULL;
+ BackingPhotoRow* _tmp16_ = NULL;
+ DetectedPhotoInformation* _tmp17_ = NULL;
+ Dimensions _tmp18_ = {0};
+ BackingPhotoRow* _tmp19_ = NULL;
+ GFileInfo* _tmp20_ = NULL;
+ gint64 _tmp21_ = 0LL;
+ BackingPhotoRow* _tmp22_ = NULL;
+ GTimeVal _tmp23_ = {0};
+ glong _tmp24_ = 0L;
+ Orientation _tmp25_ = 0;
+ DetectedPhotoInformation* _tmp26_ = NULL;
+ PhotoMetadata* _tmp27_ = NULL;
+ BackingPhotoRow* _tmp31_ = NULL;
+ BackingPhotoTable* _tmp32_ = NULL;
+ BackingPhotoTable* _tmp33_ = NULL;
+ BackingPhotoRow* _tmp34_ = NULL;
+ PhotoTable* _tmp35_ = NULL;
+ PhotoTable* _tmp36_ = NULL;
+ PhotoRow* _tmp37_ = NULL;
+ RawDeveloper _tmp38_ = 0;
+ BackingPhotoRow* _tmp39_ = NULL;
+ BackingPhotoID _tmp40_ = {0};
+ GError * _inner_error_ = NULL;
+#line 639 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO_ROW (row));
+#line 639 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_ROW (bpr));
+#line 641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = bpr;
+#line 641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_->filepath;
+#line 641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+#line 641 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp2_;
+#line 642 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file;
+#line 642 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = g_file_query_info (_tmp3_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 642 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = _tmp4_;
+#line 642 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 642 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 642 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 642 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5415 "Photo.c"
+ }
+#line 644 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = info;
+#line 644 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_info_get_modification_time (_tmp5_, &_tmp6_);
+#line 644 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp = _tmp6_;
+#line 646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = file;
+#line 646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_file_interrogator_new (_tmp7_, PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL);
+#line 646 "/home/jens/Source/shotwell/src/Photo.vala"
+ interrogator = _tmp8_;
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = interrogator;
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_interrogator_interrogate (_tmp9_, &_inner_error_);
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 648 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5445 "Photo.c"
+ }
+#line 650 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = interrogator;
+#line 650 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_file_interrogator_get_detected_photo_information (_tmp10_);
+#line 650 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp11_;
+#line 651 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = detected;
+#line 651 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_ == NULL) {
+#line 651 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = TRUE;
+#line 5459 "Photo.c"
+ } else {
+ PhotoFileInterrogator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 651 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = interrogator;
+#line 651 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_file_interrogator_get_is_photo_corrupted (_tmp14_);
+#line 651 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp15_;
+#line 5469 "Photo.c"
+ }
+#line 651 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 654 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 654 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 654 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 654 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 654 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5483 "Photo.c"
+ }
+#line 657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = bpr;
+#line 657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = detected;
+#line 657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_->image_dim;
+#line 657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_->dim = _tmp18_;
+#line 658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = bpr;
+#line 658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = info;
+#line 658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = g_file_info_get_size (_tmp20_);
+#line 658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_->filesize = _tmp21_;
+#line 659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = bpr;
+#line 659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = timestamp;
+#line 659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_.tv_sec;
+#line 659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_->timestamp = (time_t) _tmp24_;
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = detected;
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_->metadata;
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp27_ != NULL) {
+#line 5515 "Photo.c"
+ DetectedPhotoInformation* _tmp28_ = NULL;
+ PhotoMetadata* _tmp29_ = NULL;
+ Orientation _tmp30_ = 0;
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = detected;
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_->metadata;
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = photo_metadata_get_orientation (_tmp29_);
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp30_;
+#line 5527 "Photo.c"
+ } else {
+#line 661 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = ORIENTATION_TOP_LEFT;
+#line 5531 "Photo.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = bpr;
+#line 660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_->original_orientation = _tmp25_;
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = backing_photo_table_get_instance ();
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_;
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = bpr;
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_add (_tmp33_, _tmp34_, &_inner_error_);
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp33_);
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 664 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5561 "Photo.c"
+ }
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo_table_get_instance ();
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = _tmp35_;
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = row;
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = d;
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = bpr;
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = _tmp39_->id;
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_update_raw_development (_tmp36_, _tmp37_, _tmp38_, &_tmp40_, &_inner_error_);
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp36_);
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 665 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5593 "Photo.c"
+ }
+#line 639 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 639 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 639 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 639 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 5603 "Photo.c"
+}
+
+
+static void photo_develop_photo (Photo* self, RawDeveloper d) {
+ gboolean wrote_img_to_disk = FALSE;
+ BackingPhotoRow* bps = NULL;
+ RawDeveloper _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 670 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 671 "/home/jens/Source/shotwell/src/Photo.vala"
+ wrote_img_to_disk = FALSE;
+#line 672 "/home/jens/Source/shotwell/src/Photo.vala"
+ bps = NULL;
+#line 674 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = d;
+#line 674 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp0_) {
+#line 674 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RAW_DEVELOPER_SHOTWELL:
+#line 5624 "Photo.c"
+ {
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ RawDeveloper _tmp2_ = 0;
+ PhotoRow* _tmp3_ = NULL;
+ BackingPhotoRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ BackingPhotoRow* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ GdkPixbuf* pix = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ PhotoFileWriter* writer = NULL;
+ BackingPhotoRow* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ PhotoFileWriter* _tmp22_ = NULL;
+ PhotoFileWriter* _tmp23_ = NULL;
+ GdkPixbuf* _tmp24_ = NULL;
+ PhotoMetadata* meta = NULL;
+ PhotoMetadata* _tmp25_ = NULL;
+ PhotoFileMetadataWriter* mwriter = NULL;
+ BackingPhotoRow* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ PhotoFileMetadataWriter* _tmp28_ = NULL;
+ PhotoFileMetadataWriter* _tmp29_ = NULL;
+ PhotoMetadata* _tmp30_ = NULL;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = d;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->master;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->filepath;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = raw_developer_create_backing_row_for_development (_tmp2_, _tmp5_, NULL, &_inner_error_);
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp6_;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5664 "Photo.c"
+ goto __catch252_g_error;
+ }
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp1_;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 678 "/home/jens/Source/shotwell/src/Photo.vala"
+ bps = _tmp7_;
+#line 679 "/home/jens/Source/shotwell/src/Photo.vala"
+ pix = NULL;
+#line 5677 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp8_ = NULL;
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->priv->readers;
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 5684 "Photo.c"
+ {
+ GdkPixbuf* _tmp9_ = NULL;
+ Scaling _tmp10_ = {0};
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_for_original (&_tmp10_);
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_get_master_pixbuf (self, &_tmp10_, FALSE, &_inner_error_);
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp11_;
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5698 "Photo.c"
+ goto __finally253;
+ }
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp9_;
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = NULL;
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 685 "/home/jens/Source/shotwell/src/Photo.vala"
+ pix = _tmp12_;
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp9_);
+#line 5711 "Photo.c"
+ }
+ __finally253:
+ {
+ PhotoBackingReaders* _tmp13_ = NULL;
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->priv->readers;
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 5720 "Photo.c"
+ }
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5728 "Photo.c"
+ goto __catch252_g_error;
+ }
+ }
+#line 688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = pix;
+#line 688 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_ == NULL) {
+#line 689 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:689: Could not get preview pixbuf");
+#line 690 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 690 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5742 "Photo.c"
+ {
+ gboolean _tmp15_ = FALSE;
+#line 714 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = wrote_img_to_disk;
+#line 714 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp15_) {
+#line 5749 "Photo.c"
+ {
+ RawDeveloper _tmp16_ = 0;
+ BackingPhotoRow* _tmp17_ = NULL;
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = d;
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = bps;
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_backing_photo_for_development (self, _tmp16_, _tmp17_, &_inner_error_);
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5761 "Photo.c"
+ goto __catch254_g_error;
+ }
+#line 719 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 5766 "Photo.c"
+ }
+ goto __finally254;
+ __catch254_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = e;
+#line 721 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->message;
+#line 721 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:721: Error adding backing photo as development. Message: %s", _tmp19_);
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 5786 "Photo.c"
+ }
+ __finally254:
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5791 "Photo.c"
+ goto __catch252_g_error;
+ }
+ }
+ }
+#line 690 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 690 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5800 "Photo.c"
+ }
+#line 694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = bps;
+#line 694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_->filepath;
+#line 694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = photo_file_format_create_writer (PHOTO_FILE_FORMAT_JFIF, _tmp21_, &_inner_error_);
+#line 694 "/home/jens/Source/shotwell/src/Photo.vala"
+ writer = _tmp22_;
+#line 694 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5816 "Photo.c"
+ goto __catch252_g_error;
+ }
+#line 695 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = writer;
+#line 695 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = pix;
+#line 695 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_writer_write (_tmp23_, _tmp24_, JPEG_QUALITY_HIGH, &_inner_error_);
+#line 695 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 695 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 695 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 695 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5833 "Photo.c"
+ goto __catch252_g_error;
+ }
+#line 703 "/home/jens/Source/shotwell/src/Photo.vala"
+ wrote_img_to_disk = TRUE;
+#line 708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = photo_get_master_metadata (self, &_inner_error_);
+#line 708 "/home/jens/Source/shotwell/src/Photo.vala"
+ meta = _tmp25_;
+#line 708 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5850 "Photo.c"
+ goto __catch252_g_error;
+ }
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = bps;
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_->filepath;
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = photo_file_format_create_metadata_writer (PHOTO_FILE_FORMAT_JFIF, _tmp27_, &_inner_error_);
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ mwriter = _tmp28_;
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5871 "Photo.c"
+ goto __catch252_g_error;
+ }
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = mwriter;
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = meta;
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp29_, _tmp30_, &_inner_error_);
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (mwriter);
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5892 "Photo.c"
+ goto __catch252_g_error;
+ }
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (mwriter);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 5905 "Photo.c"
+ }
+ goto __finally252;
+ __catch252_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 712 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = err;
+#line 712 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_->message;
+#line 712 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:712: Error developing photo: %s", _tmp32_);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 5925 "Photo.c"
+ }
+ __finally252:
+ {
+ gboolean _tmp33_ = FALSE;
+#line 714 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = wrote_img_to_disk;
+#line 714 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp33_) {
+#line 5934 "Photo.c"
+ {
+ RawDeveloper _tmp34_ = 0;
+ BackingPhotoRow* _tmp35_ = NULL;
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = d;
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = bps;
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_backing_photo_for_development (self, _tmp34_, _tmp35_, &_inner_error_);
+#line 717 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5946 "Photo.c"
+ goto __catch255_g_error;
+ }
+#line 719 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 5951 "Photo.c"
+ }
+ goto __finally255;
+ __catch255_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = e;
+#line 721 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_->message;
+#line 721 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:721: Error adding backing photo as development. Message: %s", _tmp37_);
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 5971 "Photo.c"
+ }
+ __finally255:
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 715 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5984 "Photo.c"
+ }
+ }
+ }
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 676 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 5998 "Photo.c"
+ }
+#line 727 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 6002 "Photo.c"
+ }
+#line 674 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RAW_DEVELOPER_CAMERA:
+#line 6006 "Photo.c"
+ {
+#line 731 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 6010 "Photo.c"
+ }
+#line 674 "/home/jens/Source/shotwell/src/Photo.vala"
+ case RAW_DEVELOPER_EMBEDDED:
+#line 6014 "Photo.c"
+ {
+ {
+ PhotoMetadata* meta = NULL;
+ PhotoMetadata* _tmp38_ = NULL;
+ guint c = 0U;
+ PhotoMetadata* _tmp39_ = NULL;
+ guint _tmp40_ = 0U;
+ guint _tmp41_ = 0U;
+ PhotoPreview* prev = NULL;
+ PhotoMetadata* _tmp47_ = NULL;
+ guint _tmp48_ = 0U;
+ PhotoPreview* _tmp49_ = NULL;
+ PhotoPreview* _tmp50_ = NULL;
+ GdkPixbuf* pix = NULL;
+ PhotoPreview* _tmp56_ = NULL;
+ GdkPixbuf* _tmp57_ = NULL;
+ GdkPixbuf* _tmp58_ = NULL;
+ BackingPhotoRow* _tmp64_ = NULL;
+ RawDeveloper _tmp65_ = 0;
+ PhotoRow* _tmp66_ = NULL;
+ BackingPhotoRow* _tmp67_ = NULL;
+ const gchar* _tmp68_ = NULL;
+ BackingPhotoRow* _tmp69_ = NULL;
+ BackingPhotoRow* _tmp70_ = NULL;
+ PhotoFileWriter* writer = NULL;
+ BackingPhotoRow* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ PhotoFileWriter* _tmp73_ = NULL;
+ PhotoFileWriter* _tmp74_ = NULL;
+ GdkPixbuf* _tmp75_ = NULL;
+ PhotoFileMetadataWriter* mwriter = NULL;
+ BackingPhotoRow* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ PhotoFileMetadataWriter* _tmp78_ = NULL;
+ PhotoFileMetadataWriter* _tmp79_ = NULL;
+ PhotoMetadata* _tmp80_ = NULL;
+#line 736 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = photo_get_master_metadata (self, &_inner_error_);
+#line 736 "/home/jens/Source/shotwell/src/Photo.vala"
+ meta = _tmp38_;
+#line 736 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6057 "Photo.c"
+ goto __catch256_g_error;
+ }
+#line 737 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = meta;
+#line 737 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = photo_metadata_get_preview_count (_tmp39_);
+#line 737 "/home/jens/Source/shotwell/src/Photo.vala"
+ c = _tmp40_;
+#line 738 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = c;
+#line 738 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp41_ <= ((guint) 0)) {
+#line 739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6072 "Photo.c"
+ {
+ gboolean _tmp42_ = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = wrote_img_to_disk;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp42_) {
+#line 6079 "Photo.c"
+ {
+ RawDeveloper _tmp43_ = 0;
+ BackingPhotoRow* _tmp44_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = d;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = bps;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_backing_photo_for_development (self, _tmp43_, _tmp44_, &_inner_error_);
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6091 "Photo.c"
+ goto __catch257_g_error;
+ }
+#line 773 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 6096 "Photo.c"
+ }
+ goto __finally257;
+ __catch257_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = e;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = _tmp45_->message;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:775: Error adding backing photo as development. Message: %s", _tmp46_);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6116 "Photo.c"
+ }
+ __finally257:
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6121 "Photo.c"
+ goto __catch256_g_error;
+ }
+ }
+ }
+#line 739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 739 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6130 "Photo.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = meta;
+#line 740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = c;
+#line 740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = photo_metadata_get_preview (_tmp47_, _tmp48_ - 1);
+#line 740 "/home/jens/Source/shotwell/src/Photo.vala"
+ prev = _tmp49_;
+#line 741 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = prev;
+#line 741 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp50_ == NULL) {
+#line 742 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:742: Could not get preview from metadata");
+#line 743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6150 "Photo.c"
+ {
+ gboolean _tmp51_ = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = wrote_img_to_disk;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp51_) {
+#line 6157 "Photo.c"
+ {
+ RawDeveloper _tmp52_ = 0;
+ BackingPhotoRow* _tmp53_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = d;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = bps;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_backing_photo_for_development (self, _tmp52_, _tmp53_, &_inner_error_);
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6169 "Photo.c"
+ goto __catch258_g_error;
+ }
+#line 773 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 6174 "Photo.c"
+ }
+ goto __finally258;
+ __catch258_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = e;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = _tmp54_->message;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:775: Error adding backing photo as development. Message: %s", _tmp55_);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6194 "Photo.c"
+ }
+ __finally258:
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6199 "Photo.c"
+ goto __catch256_g_error;
+ }
+ }
+ }
+#line 743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 743 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6208 "Photo.c"
+ }
+#line 746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = prev;
+#line 746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = photo_preview_get_pixbuf (_tmp56_, &_inner_error_);
+#line 746 "/home/jens/Source/shotwell/src/Photo.vala"
+ pix = _tmp57_;
+#line 746 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6222 "Photo.c"
+ goto __catch256_g_error;
+ }
+#line 747 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = pix;
+#line 747 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp58_ == NULL) {
+#line 748 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:748: Could not get preview pixbuf");
+#line 749 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 749 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 749 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6237 "Photo.c"
+ {
+ gboolean _tmp59_ = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = wrote_img_to_disk;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp59_) {
+#line 6244 "Photo.c"
+ {
+ RawDeveloper _tmp60_ = 0;
+ BackingPhotoRow* _tmp61_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = d;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = bps;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_backing_photo_for_development (self, _tmp60_, _tmp61_, &_inner_error_);
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6256 "Photo.c"
+ goto __catch259_g_error;
+ }
+#line 773 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 6261 "Photo.c"
+ }
+ goto __finally259;
+ __catch259_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = e;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = _tmp62_->message;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:775: Error adding backing photo as development. Message: %s", _tmp63_);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6281 "Photo.c"
+ }
+ __finally259:
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6286 "Photo.c"
+ goto __catch256_g_error;
+ }
+ }
+ }
+#line 749 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 749 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6295 "Photo.c"
+ }
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = d;
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = self->row;
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = _tmp66_->master;
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = _tmp67_->filepath;
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = raw_developer_create_backing_row_for_development (_tmp65_, _tmp68_, NULL, &_inner_error_);
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = _tmp69_;
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6317 "Photo.c"
+ goto __catch256_g_error;
+ }
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = _tmp64_;
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = NULL;
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 753 "/home/jens/Source/shotwell/src/Photo.vala"
+ bps = _tmp70_;
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = bps;
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = _tmp71_->filepath;
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = photo_file_format_create_writer (PHOTO_FILE_FORMAT_JFIF, _tmp72_, &_inner_error_);
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ writer = _tmp73_;
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp64_);
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 754 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6346 "Photo.c"
+ goto __catch256_g_error;
+ }
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = writer;
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = pix;
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_writer_write (_tmp74_, _tmp75_, JPEG_QUALITY_HIGH, &_inner_error_);
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp64_);
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6367 "Photo.c"
+ goto __catch256_g_error;
+ }
+#line 759 "/home/jens/Source/shotwell/src/Photo.vala"
+ wrote_img_to_disk = TRUE;
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = bps;
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = _tmp76_->filepath;
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = photo_file_format_create_metadata_writer (PHOTO_FILE_FORMAT_JFIF, _tmp77_, &_inner_error_);
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ mwriter = _tmp78_;
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp64_);
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 762 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6392 "Photo.c"
+ goto __catch256_g_error;
+ }
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = mwriter;
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = meta;
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp79_, _tmp80_, &_inner_error_);
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (mwriter);
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp64_);
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6415 "Photo.c"
+ goto __catch256_g_error;
+ }
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (mwriter);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp64_);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pix);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_preview_unref0 (prev);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (meta);
+#line 6430 "Photo.c"
+ }
+ goto __finally256;
+ __catch256_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp81_ = NULL;
+ const gchar* _tmp82_ = NULL;
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 765 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = e;
+#line 765 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = _tmp81_->message;
+#line 765 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:765: Error accessing embedded preview. Message: %s", _tmp82_);
+#line 766 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6450 "Photo.c"
+ {
+ gboolean _tmp83_ = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = wrote_img_to_disk;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp83_) {
+#line 6457 "Photo.c"
+ {
+ RawDeveloper _tmp84_ = 0;
+ BackingPhotoRow* _tmp85_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = d;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = bps;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_backing_photo_for_development (self, _tmp84_, _tmp85_, &_inner_error_);
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6469 "Photo.c"
+ goto __catch260_g_error;
+ }
+#line 773 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 6474 "Photo.c"
+ }
+ goto __finally260;
+ __catch260_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp86_ = NULL;
+ const gchar* _tmp87_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = e;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = _tmp86_->message;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:775: Error adding backing photo as development. Message: %s", _tmp87_);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6494 "Photo.c"
+ }
+ __finally260:
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 6501 "Photo.c"
+ }
+ }
+ }
+#line 766 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 766 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6509 "Photo.c"
+ }
+ __finally256:
+ {
+ gboolean _tmp88_ = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = wrote_img_to_disk;
+#line 768 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp88_) {
+#line 6518 "Photo.c"
+ {
+ RawDeveloper _tmp89_ = 0;
+ BackingPhotoRow* _tmp90_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = d;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = bps;
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_backing_photo_for_development (self, _tmp89_, _tmp90_, &_inner_error_);
+#line 771 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6530 "Photo.c"
+ goto __catch261_g_error;
+ }
+#line 773 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 6535 "Photo.c"
+ }
+ goto __finally261;
+ __catch261_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp91_ = NULL;
+ const gchar* _tmp92_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = e;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = _tmp91_->message;
+#line 775 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:775: Error adding backing photo as development. Message: %s", _tmp92_);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6555 "Photo.c"
+ }
+ __finally261:
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 769 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6568 "Photo.c"
+ }
+ }
+ }
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 734 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6582 "Photo.c"
+ }
+#line 780 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 6586 "Photo.c"
+ }
+ default:
+ {
+#line 783 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_assert_not_reached ();
+#line 6592 "Photo.c"
+ }
+ }
+#line 670 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bps);
+#line 6597 "Photo.c"
+}
+
+
+void photo_set_default_raw_developer (Photo* self, RawDeveloper d) {
+ GError * _inner_error_ = NULL;
+#line 788 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 6605 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 6612 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ RawDeveloper _tmp2_ = 0;
+#line 790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = d;
+#line 790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_->developer = _tmp2_;
+#line 6622 "Photo.c"
+ }
+ __finally262:
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 6631 "Photo.c"
+ }
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 789 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6641 "Photo.c"
+ }
+ }
+}
+
+
+void photo_set_raw_developer (Photo* self, RawDeveloper d) {
+ PhotoFileFormat _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ Alteration* _tmp48_ = NULL;
+ Alteration* _tmp49_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 795 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 796 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_master_file_format (self);
+#line 796 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != PHOTO_FILE_FORMAT_RAW) {
+#line 797 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6663 "Photo.c"
+ }
+#line 802 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_is_raw_developer_available (self, RAW_DEVELOPER_CAMERA);
+#line 802 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 6669 "Photo.c"
+ RawDeveloper _tmp3_ = 0;
+#line 802 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = d;
+#line 802 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp3_ == RAW_DEVELOPER_EMBEDDED;
+#line 6675 "Photo.c"
+ } else {
+#line 802 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 6679 "Photo.c"
+ }
+#line 802 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 803 "/home/jens/Source/shotwell/src/Photo.vala"
+ d = RAW_DEVELOPER_CAMERA;
+#line 6685 "Photo.c"
+ }
+#line 807 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_is_raw_developer_available (self, RAW_DEVELOPER_EMBEDDED);
+#line 807 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp4_) {
+#line 808 "/home/jens/Source/shotwell/src/Photo.vala"
+ d = RAW_DEVELOPER_SHOTWELL;
+#line 6693 "Photo.c"
+ }
+ {
+ GeeHashMap* _tmp5_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->developments;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_developments);
+#line 6701 "Photo.c"
+ {
+ RawDeveloper stale_raw_developer = 0;
+ PhotoRow* _tmp6_ = NULL;
+ RawDeveloper _tmp7_ = 0;
+ RawDeveloper _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ GeeHashMap* _tmp15_ = NULL;
+ RawDeveloper _tmp16_ = 0;
+ gboolean _tmp17_ = FALSE;
+ PhotoRow* _tmp19_ = NULL;
+ RawDeveloper _tmp20_ = 0;
+ GeeHashMap* _tmp21_ = NULL;
+ RawDeveloper _tmp22_ = 0;
+ gpointer _tmp23_ = NULL;
+ PhotoBackingReaders* _tmp24_ = NULL;
+ BackingPhotoRow* _tmp25_ = NULL;
+ PhotoFileFormat _tmp26_ = 0;
+ BackingPhotoRow* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ PhotoFileReader* _tmp29_ = NULL;
+ BackingPhotoRow* _tmp30_ = NULL;
+ Orientation _tmp31_ = 0;
+ gboolean _tmp41_ = FALSE;
+ RawDeveloper _tmp42_ = 0;
+#line 811 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 811 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->developer;
+#line 811 "/home/jens/Source/shotwell/src/Photo.vala"
+ stale_raw_developer = _tmp7_;
+#line 814 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = d;
+#line 814 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_is_raw_developer_complete (self, _tmp8_);
+#line 814 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp9_) {
+#line 6738 "Photo.c"
+ RawDeveloper _tmp10_ = 0;
+#line 815 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = d;
+#line 815 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_develop_photo (self, _tmp10_);
+#line 6744 "Photo.c"
+ {
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_get_prefetched_copy (self, &_inner_error_);
+#line 817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_;
+#line 817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp12_);
+#line 817 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6756 "Photo.c"
+ goto __catch264_g_error;
+ }
+ }
+ goto __finally264;
+ __catch264_g_error:
+ {
+ GError* e = NULL;
+#line 816 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 820 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6770 "Photo.c"
+ {
+ GeeHashMap* _tmp13_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->priv->developments;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 6777 "Photo.c"
+ }
+#line 820 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6781 "Photo.c"
+ }
+ __finally264:
+#line 816 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6786 "Photo.c"
+ {
+ GeeHashMap* _tmp14_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->priv->developments;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 6793 "Photo.c"
+ }
+#line 816 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 816 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 816 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6801 "Photo.c"
+ }
+ }
+#line 823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->priv->developments;
+#line 823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = d;
+#line 823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp16_));
+#line 823 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp17_) {
+#line 6812 "Photo.c"
+ {
+ GeeHashMap* _tmp18_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->priv->developments;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 6819 "Photo.c"
+ }
+#line 824 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6823 "Photo.c"
+ }
+#line 827 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_revert_to_master (self, FALSE);
+#line 830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = d;
+#line 830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_->developer = _tmp20_;
+#line 831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = self->priv->developments;
+#line 831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = d;
+#line 831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp22_));
+#line 831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 831 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = (BackingPhotoRow*) _tmp23_;
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = self->priv->readers;
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->backing_photo_row;
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_->file_format;
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = self->backing_photo_row;
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_->filepath;
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = photo_file_format_create_reader (_tmp26_, _tmp28_);
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp24_->developer);
+#line 832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_->developer = _tmp29_;
+#line 834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = self->backing_photo_row;
+#line 834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_->original_orientation;
+#line 834 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_orientation (self, _tmp31_);
+#line 6865 "Photo.c"
+ {
+ PhotoTable* _tmp32_ = NULL;
+ PhotoTable* _tmp33_ = NULL;
+ PhotoRow* _tmp34_ = NULL;
+ RawDeveloper _tmp35_ = 0;
+ BackingPhotoRow* _tmp36_ = NULL;
+ BackingPhotoID _tmp37_ = {0};
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = photo_table_get_instance ();
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_;
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = self->row;
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = d;
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = self->backing_photo_row;
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_->id;
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_update_raw_development (_tmp33_, _tmp34_, _tmp35_, &_tmp37_, &_inner_error_);
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp33_);
+#line 837 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6891 "Photo.c"
+ goto __catch265_g_error;
+ }
+ }
+ goto __finally265;
+ __catch265_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+#line 836 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 839 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = e;
+#line 839 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tmp38_->message;
+#line 839 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:839: Error updating database: %s", _tmp39_);
+#line 836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 6913 "Photo.c"
+ }
+ __finally265:
+#line 836 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6918 "Photo.c"
+ {
+ GeeHashMap* _tmp40_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = self->priv->developments;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 6925 "Photo.c"
+ }
+#line 836 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 836 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 836 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6933 "Photo.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = stale_raw_developer;
+#line 846 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp42_ != RAW_DEVELOPER_CAMERA) {
+#line 6939 "Photo.c"
+ RawDeveloper _tmp43_ = 0;
+ PhotoRow* _tmp44_ = NULL;
+ RawDeveloper _tmp45_ = 0;
+#line 847 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = stale_raw_developer;
+#line 847 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = self->row;
+#line 847 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp44_->developer;
+#line 847 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp43_ != _tmp45_;
+#line 6951 "Photo.c"
+ } else {
+#line 846 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = FALSE;
+#line 6955 "Photo.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp41_) {
+#line 6959 "Photo.c"
+ RawDeveloper _tmp46_ = 0;
+#line 850 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = stale_raw_developer;
+#line 850 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_delete_raw_development (self, _tmp46_);
+#line 6965 "Photo.c"
+ }
+ }
+ __finally263:
+ {
+ GeeHashMap* _tmp47_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = self->priv->developments;
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 6975 "Photo.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 810 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 6985 "Photo.c"
+ }
+ }
+#line 857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = alteration_new ("image", "developer");
+#line 857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = _tmp48_;
+#line 857 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp49_);
+#line 857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp49_);
+#line 858 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_discard_prefetched (self);
+#line 6998 "Photo.c"
+}
+
+
+RawDeveloper photo_get_raw_developer (Photo* self) {
+ RawDeveloper result = 0;
+ PhotoRow* _tmp0_ = NULL;
+ RawDeveloper _tmp1_ = 0;
+#line 861 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0);
+#line 862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_->developer;
+#line 862 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 862 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7016 "Photo.c"
+}
+
+
+static gboolean photo_delete_raw_development (Photo* self, RawDeveloper d) {
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ GError * _inner_error_ = NULL;
+#line 867 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 868 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = FALSE;
+#line 7028 "Photo.c"
+ {
+ GeeHashMap* _tmp0_ = NULL;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->developments;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_developments);
+#line 7035 "Photo.c"
+ {
+ GeeHashMap* _tmp1_ = NULL;
+ RawDeveloper _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ RawDeveloper _tmp7_ = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ BackingPhotoRow* bpr = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ RawDeveloper _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GeeHashMap* _tmp37_ = NULL;
+ RawDeveloper _tmp38_ = 0;
+ gboolean _tmp39_ = FALSE;
+#line 871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->developments;
+#line 871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = d;
+#line 871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp2_));
+#line 871 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp3_) {
+#line 872 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 7064 "Photo.c"
+ {
+ GeeHashMap* _tmp4_ = NULL;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->developments;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 7071 "Photo.c"
+ }
+#line 872 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7075 "Photo.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = d;
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = raw_developer_to_string (_tmp7_);
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:876: Delete raw development: %s %s", _tmp6_, _tmp9_);
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp9_);
+#line 876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp6_);
+#line 877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->priv->developments;
+#line 877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = d;
+#line 877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp11_));
+#line 877 "/home/jens/Source/shotwell/src/Photo.vala"
+ bpr = (BackingPhotoRow*) _tmp12_;
+#line 878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = bpr;
+#line 878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->filepath;
+#line 878 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_ != NULL) {
+#line 7107 "Photo.c"
+ GFile* f = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+#line 879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = bpr;
+#line 879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->filepath;
+#line 879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = g_file_new_for_path (_tmp16_);
+#line 879 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = _tmp17_;
+#line 7120 "Photo.c"
+ {
+ RawDeveloper _tmp18_ = 0;
+#line 881 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = d;
+#line 881 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp18_ == RAW_DEVELOPER_CAMERA) {
+#line 7127 "Photo.c"
+ GFile* _tmp19_ = NULL;
+#line 882 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = f;
+#line 882 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_trash (_tmp19_, NULL, &_inner_error_);
+#line 882 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7135 "Photo.c"
+ goto __catch267_g_error;
+ }
+ } else {
+ GFile* _tmp20_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = f;
+#line 884 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_delete (_tmp20_, NULL, &_inner_error_);
+#line 884 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7146 "Photo.c"
+ goto __catch267_g_error;
+ }
+ }
+ }
+ goto __finally267;
+ __catch267_g_error:
+ {
+ GError* e = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GError* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = bpr;
+#line 886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_->filepath;
+#line 886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = e;
+#line 886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_->message;
+#line 886 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:886: Unable to delete RAW development: %s error: %s", _tmp22_, _tmp24_);
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 7175 "Photo.c"
+ }
+ __finally267:
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 7188 "Photo.c"
+ {
+ GeeHashMap* _tmp25_ = NULL;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->priv->developments;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 7195 "Photo.c"
+ }
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 880 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 7203 "Photo.c"
+ }
+#line 878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 7207 "Photo.c"
+ }
+ {
+ PhotoTable* _tmp26_ = NULL;
+ PhotoTable* _tmp27_ = NULL;
+ PhotoRow* _tmp28_ = NULL;
+ RawDeveloper _tmp29_ = 0;
+ BackingPhotoTable* _tmp30_ = NULL;
+ BackingPhotoTable* _tmp31_ = NULL;
+ BackingPhotoRow* _tmp32_ = NULL;
+ BackingPhotoID _tmp33_ = {0};
+#line 892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = photo_table_get_instance ();
+#line 892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_;
+#line 892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = self->row;
+#line 892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = d;
+#line 892 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_remove_development (_tmp27_, _tmp28_, _tmp29_, &_inner_error_);
+#line 892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp27_);
+#line 892 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7232 "Photo.c"
+ goto __catch268_g_error;
+ }
+#line 893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = backing_photo_table_get_instance ();
+#line 893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_;
+#line 893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = bpr;
+#line 893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_->id;
+#line 893 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_remove (_tmp31_, &_tmp33_, &_inner_error_);
+#line 893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp31_);
+#line 893 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7249 "Photo.c"
+ goto __catch268_g_error;
+ }
+ }
+ goto __finally268;
+ __catch268_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = e;
+#line 895 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_->message;
+#line 895 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:895: Database error while deleting RAW development: %s", _tmp35_);
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 7271 "Photo.c"
+ }
+ __finally268:
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 7280 "Photo.c"
+ {
+ GeeHashMap* _tmp36_ = NULL;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = self->priv->developments;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 7287 "Photo.c"
+ }
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 891 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 7295 "Photo.c"
+ }
+#line 898 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = self->priv->developments;
+#line 898 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = d;
+#line 898 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp38_), NULL);
+#line 898 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = _tmp39_;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 7307 "Photo.c"
+ }
+ __finally266:
+ {
+ GeeHashMap* _tmp40_ = NULL;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = self->priv->developments;
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 7316 "Photo.c"
+ }
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 870 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 7326 "Photo.c"
+ }
+ }
+#line 901 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 902 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = ret;
+#line 902 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7335 "Photo.c"
+}
+
+
+void photo_redevelop_raw (Photo* self, RawDeveloper d) {
+ GError * _inner_error_ = NULL;
+#line 906 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 7343 "Photo.c"
+ {
+ GeeHashMap* _tmp0_ = NULL;
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->developments;
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_developments);
+#line 7350 "Photo.c"
+ {
+ RawDeveloper _tmp1_ = 0;
+ RawDeveloper dev = 0;
+ RawDeveloper _tmp2_ = 0;
+ RawDeveloper _tmp3_ = 0;
+ RawDeveloper _tmp4_ = 0;
+#line 908 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = d;
+#line 908 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_delete_raw_development (self, _tmp1_);
+#line 909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = d;
+#line 909 "/home/jens/Source/shotwell/src/Photo.vala"
+ dev = _tmp2_;
+#line 910 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = dev;
+#line 910 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ == RAW_DEVELOPER_CAMERA) {
+#line 911 "/home/jens/Source/shotwell/src/Photo.vala"
+ dev = RAW_DEVELOPER_EMBEDDED;
+#line 7371 "Photo.c"
+ }
+#line 913 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = dev;
+#line 913 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_raw_developer (self, _tmp4_);
+#line 7377 "Photo.c"
+ }
+ __finally269:
+ {
+ GeeHashMap* _tmp5_ = NULL;
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->developments;
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_developments);
+#line 7386 "Photo.c"
+ }
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 907 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 7396 "Photo.c"
+ }
+ }
+}
+
+
+static void _vala_array_add251 (BackingFileState*** array, int* length, int* size, BackingFileState* value) {
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (BackingFileState*, *array, (*size) + 1);
+#line 7409 "Photo.c"
+ }
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 7415 "Photo.c"
+}
+
+
+static void _vala_array_add252 (BackingFileState*** array, int* length, int* size, BackingFileState* value) {
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (BackingFileState*, *array, (*size) + 1);
+#line 7426 "Photo.c"
+ }
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 7432 "Photo.c"
+}
+
+
+static void _vala_array_add253 (BackingFileState*** array, int* length, int* size, BackingFileState* value) {
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (BackingFileState*, *array, (*size) + 1);
+#line 7443 "Photo.c"
+ }
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 7449 "Photo.c"
+}
+
+
+static BackingFileState** photo_real_get_backing_files_state (MediaSource* base, int* result_length1) {
+ Photo * self;
+ BackingFileState** result = NULL;
+ BackingFileState** backing = NULL;
+ BackingFileState** _tmp0_ = NULL;
+ gint backing_length1 = 0;
+ gint _backing_size_ = 0;
+ BackingFileState** _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 917 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 918 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = g_new0 (BackingFileState*, 0 + 1);
+#line 918 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = _tmp0_;
+#line 918 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_length1 = 0;
+#line 918 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_size_ = backing_length1;
+#line 7473 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 7480 "Photo.c"
+ {
+ BackingFileState** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ PhotoRow* _tmp3_ = NULL;
+ BackingPhotoRow* _tmp4_ = NULL;
+ PhotoRow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ BackingFileState* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = backing;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2__length1 = backing_length1;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->master;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->md5;
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = backing_file_state_new_from_photo_row (_tmp4_, _tmp6_);
+#line 920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add251 (&backing, &backing_length1, &_backing_size_, _tmp7_);
+#line 921 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_has_editable (self);
+#line 921 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_) {
+#line 7511 "Photo.c"
+ BackingFileState** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ BackingPhotoRow* _tmp10_ = NULL;
+ BackingFileState* _tmp11_ = NULL;
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = backing;
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9__length1 = backing_length1;
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->priv->editable;
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = backing_file_state_new_from_photo_row (_tmp10_, NULL);
+#line 922 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add252 (&backing, &backing_length1, &_backing_size_, _tmp11_);
+#line 7526 "Photo.c"
+ }
+#line 924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_is_developed (self);
+#line 924 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 7532 "Photo.c"
+ GeeCollection* dev_rows = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+#line 925 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_get_raw_development_photo_rows (self);
+#line 925 "/home/jens/Source/shotwell/src/Photo.vala"
+ dev_rows = _tmp13_;
+#line 926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = dev_rows;
+#line 926 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_ != NULL) {
+#line 7544 "Photo.c"
+ {
+ GeeIterator* _r_it = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = dev_rows;
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _r_it = _tmp16_;
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 7557 "Photo.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ BackingPhotoRow* r = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ BackingFileState** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ BackingPhotoRow* _tmp24_ = NULL;
+ BackingFileState* _tmp25_ = NULL;
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _r_it;
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp18_) {
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 7577 "Photo.c"
+ }
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _r_it;
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ r = (BackingPhotoRow*) _tmp20_;
+#line 928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = r;
+#line 928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_->filepath;
+#line 928 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:928: adding: %s", _tmp22_);
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = backing;
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23__length1 = backing_length1;
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = r;
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = backing_file_state_new_from_photo_row (_tmp24_, NULL);
+#line 929 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add253 (&backing, &backing_length1, &_backing_size_, _tmp25_);
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (r);
+#line 7603 "Photo.c"
+ }
+#line 927 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_r_it);
+#line 7607 "Photo.c"
+ }
+ }
+#line 924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dev_rows);
+#line 7612 "Photo.c"
+ }
+ }
+ __finally270:
+ {
+ PhotoRow* _tmp26_ = NULL;
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = self->row;
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 7622 "Photo.c"
+ }
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = (_vala_array_free (backing, backing_length1, (GDestroyNotify) backing_file_state_unref), NULL);
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 919 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 7634 "Photo.c"
+ }
+ }
+#line 935 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = backing;
+#line 935 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27__length1 = backing_length1;
+#line 935 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (result_length1) {
+#line 935 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result_length1 = _tmp27__length1;
+#line 7645 "Photo.c"
+ }
+#line 935 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp27_;
+#line 935 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7651 "Photo.c"
+}
+
+
+static PhotoFileReader* photo_get_backing_reader (Photo* self, BackingFetchMode mode) {
+ PhotoFileReader* result = NULL;
+ BackingFetchMode _tmp0_ = 0;
+#line 938 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 939 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = mode;
+#line 939 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp0_) {
+#line 939 "/home/jens/Source/shotwell/src/Photo.vala"
+ case BACKING_FETCH_MODE_MASTER:
+#line 7666 "Photo.c"
+ {
+ PhotoFileReader* _tmp1_ = NULL;
+#line 941 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_master_reader (self);
+#line 941 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 941 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7675 "Photo.c"
+ }
+#line 939 "/home/jens/Source/shotwell/src/Photo.vala"
+ case BACKING_FETCH_MODE_BASELINE:
+#line 7679 "Photo.c"
+ {
+ PhotoFileReader* _tmp2_ = NULL;
+#line 944 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_get_baseline_reader (self);
+#line 944 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 944 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7688 "Photo.c"
+ }
+#line 939 "/home/jens/Source/shotwell/src/Photo.vala"
+ case BACKING_FETCH_MODE_SOURCE:
+#line 7692 "Photo.c"
+ {
+ PhotoFileReader* _tmp3_ = NULL;
+#line 947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_source_reader (self);
+#line 947 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 947 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7701 "Photo.c"
+ }
+#line 939 "/home/jens/Source/shotwell/src/Photo.vala"
+ case BACKING_FETCH_MODE_UNMODIFIED:
+#line 7705 "Photo.c"
+ {
+ PhotoFileFormat _tmp4_ = 0;
+#line 950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_get_master_file_format (self);
+#line 950 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp4_ == PHOTO_FILE_FORMAT_RAW) {
+#line 7712 "Photo.c"
+ PhotoFileReader* _tmp5_ = NULL;
+#line 951 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_get_raw_developer_reader (self);
+#line 951 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 951 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7720 "Photo.c"
+ } else {
+ PhotoFileReader* _tmp6_ = NULL;
+#line 953 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_get_master_reader (self);
+#line 953 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp6_;
+#line 953 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7729 "Photo.c"
+ }
+ }
+ default:
+ {
+ BackingFetchMode _tmp7_ = 0;
+ GEnumValue* _tmp8_;
+#line 956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = mode;
+#line 956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_enum_get_value (g_type_class_ref (TYPE_BACKING_FETCH_MODE), _tmp7_);
+#line 956 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_error ("Photo.vala:956: Unknown backing fetch mode %s", (_tmp8_ != NULL) ? _tmp8_->value_name : NULL);
+#line 7742 "Photo.c"
+ }
+ }
+}
+
+
+static gpointer _photo_file_adapter_ref0 (gpointer self) {
+#line 962 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? photo_file_adapter_ref (self) : NULL;
+#line 7751 "Photo.c"
+}
+
+
+static PhotoFileReader* photo_get_master_reader (Photo* self) {
+ PhotoFileReader* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 960 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 7760 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 7767 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+#line 962 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 962 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->master;
+#line 962 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _photo_file_adapter_ref0 (_tmp2_);
+#line 962 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 7780 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7787 "Photo.c"
+ }
+#line 962 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7791 "Photo.c"
+ }
+ __finally271:
+ {
+ PhotoBackingReaders* _tmp5_ = NULL;
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->readers;
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7800 "Photo.c"
+ }
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 961 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 7808 "Photo.c"
+ }
+}
+
+
+PhotoFileReader* photo_get_editable_reader (Photo* self) {
+ PhotoFileReader* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 966 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 7818 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 7825 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _photo_file_adapter_ref0 (_tmp2_);
+#line 968 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 7838 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7845 "Photo.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7849 "Photo.c"
+ }
+ __finally272:
+ {
+ PhotoBackingReaders* _tmp5_ = NULL;
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->readers;
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7858 "Photo.c"
+ }
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 967 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 7866 "Photo.c"
+ }
+}
+
+
+static PhotoFileReader* photo_get_baseline_reader (Photo* self) {
+ PhotoFileReader* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 7876 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 7883 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoBackingReaders* _tmp7_ = NULL;
+ PhotoFileReader* _tmp8_ = NULL;
+ PhotoBackingReaders* _tmp13_ = NULL;
+ PhotoFileReader* _tmp14_ = NULL;
+ PhotoFileReader* _tmp15_ = NULL;
+#line 975 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 975 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 975 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 7898 "Photo.c"
+ PhotoBackingReaders* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+#line 976 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 976 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->editable;
+#line 976 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _photo_file_adapter_ref0 (_tmp4_);
+#line 976 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 7910 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp6_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->readers;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7917 "Photo.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7921 "Photo.c"
+ }
+#line 978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->priv->readers;
+#line 978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->developer;
+#line 978 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ != NULL) {
+#line 7929 "Photo.c"
+ PhotoBackingReaders* _tmp9_ = NULL;
+ PhotoFileReader* _tmp10_ = NULL;
+ PhotoFileReader* _tmp11_ = NULL;
+#line 979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->priv->readers;
+#line 979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->developer;
+#line 979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _photo_file_adapter_ref0 (_tmp10_);
+#line 979 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp11_;
+#line 7941 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp12_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->priv->readers;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7948 "Photo.c"
+ }
+#line 979 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7952 "Photo.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->priv->readers;
+#line 981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->master;
+#line 981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _photo_file_adapter_ref0 (_tmp14_);
+#line 981 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp15_;
+#line 7962 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp16_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->priv->readers;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7969 "Photo.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 7973 "Photo.c"
+ }
+ __finally273:
+ {
+ PhotoBackingReaders* _tmp17_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = self->priv->readers;
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 7982 "Photo.c"
+ }
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 974 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 7990 "Photo.c"
+ }
+}
+
+
+static PhotoFileReader* photo_get_source_reader (Photo* self) {
+ PhotoFileReader* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 986 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 8000 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8007 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoBackingReaders* _tmp7_ = NULL;
+ PhotoFileReader* _tmp8_ = NULL;
+ PhotoBackingReaders* _tmp13_ = NULL;
+ PhotoFileReader* _tmp14_ = NULL;
+ PhotoFileReader* _tmp15_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 988 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 988 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 8022 "Photo.c"
+ PhotoBackingReaders* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+#line 989 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 989 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->editable;
+#line 989 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _photo_file_adapter_ref0 (_tmp4_);
+#line 989 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 8034 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp6_ = NULL;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->readers;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8041 "Photo.c"
+ }
+#line 989 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8045 "Photo.c"
+ }
+#line 991 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->priv->readers;
+#line 991 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->developer;
+#line 991 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ != NULL) {
+#line 8053 "Photo.c"
+ PhotoBackingReaders* _tmp9_ = NULL;
+ PhotoFileReader* _tmp10_ = NULL;
+ PhotoFileReader* _tmp11_ = NULL;
+#line 992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->priv->readers;
+#line 992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->developer;
+#line 992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _photo_file_adapter_ref0 (_tmp10_);
+#line 992 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp11_;
+#line 8065 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp12_ = NULL;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->priv->readers;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8072 "Photo.c"
+ }
+#line 992 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8076 "Photo.c"
+ }
+#line 994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->priv->readers;
+#line 994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->master;
+#line 994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _photo_file_adapter_ref0 (_tmp14_);
+#line 994 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp15_;
+#line 8086 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp16_ = NULL;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->priv->readers;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8093 "Photo.c"
+ }
+#line 994 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8097 "Photo.c"
+ }
+ __finally274:
+ {
+ PhotoBackingReaders* _tmp17_ = NULL;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = self->priv->readers;
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8106 "Photo.c"
+ }
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 987 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 8114 "Photo.c"
+ }
+}
+
+
+static PhotoFileReader* photo_get_raw_developer_reader (Photo* self) {
+ PhotoFileReader* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 999 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 8124 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8131 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+#line 1001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 1001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->developer;
+#line 1001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _photo_file_adapter_ref0 (_tmp2_);
+#line 1001 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 8144 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8151 "Photo.c"
+ }
+#line 1001 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8155 "Photo.c"
+ }
+ __finally275:
+ {
+ PhotoBackingReaders* _tmp5_ = NULL;
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->readers;
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8164 "Photo.c"
+ }
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1000 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 8172 "Photo.c"
+ }
+}
+
+
+gboolean photo_is_developed (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1005 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 8182 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8189 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+#line 1007 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 1007 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->developer;
+#line 1007 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_ != NULL;
+#line 8199 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp3_ = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8206 "Photo.c"
+ }
+#line 1007 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8210 "Photo.c"
+ }
+ __finally276:
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8219 "Photo.c"
+ }
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1006 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 8227 "Photo.c"
+ }
+}
+
+
+gboolean photo_has_editable (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1011 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 8237 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8244 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+#line 1013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 1013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 1013 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_ != NULL;
+#line 8254 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp3_ = NULL;
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8261 "Photo.c"
+ }
+#line 1013 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8265 "Photo.c"
+ }
+ __finally277:
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8274 "Photo.c"
+ }
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1012 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 8282 "Photo.c"
+ }
+}
+
+
+gboolean photo_does_master_exist (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1017 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 8292 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8299 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1019 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 1019 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->master;
+#line 1019 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_adapter_file_exists (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1019 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 8312 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8319 "Photo.c"
+ }
+#line 1019 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8323 "Photo.c"
+ }
+ __finally278:
+ {
+ PhotoBackingReaders* _tmp5_ = NULL;
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->readers;
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8332 "Photo.c"
+ }
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1018 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 8340 "Photo.c"
+ }
+}
+
+
+gboolean photo_does_editable_exist (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1024 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 8350 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8357 "Photo.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ PhotoBackingReaders* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->readers;
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->editable;
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ != NULL) {
+#line 8368 "Photo.c"
+ PhotoBackingReaders* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->editable;
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_file_adapter_file_exists (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp6_;
+#line 8380 "Photo.c"
+ } else {
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 8384 "Photo.c"
+ }
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 8388 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp7_ = NULL;
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->priv->readers;
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8395 "Photo.c"
+ }
+#line 1026 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8399 "Photo.c"
+ }
+ __finally279:
+ {
+ PhotoBackingReaders* _tmp8_ = NULL;
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->priv->readers;
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8408 "Photo.c"
+ }
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1025 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 8416 "Photo.c"
+ }
+}
+
+
+gboolean photo_is_master_baseline (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1030 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 8426 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8433 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+#line 1032 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 1032 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 1032 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_ == NULL;
+#line 8443 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp3_ = NULL;
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8450 "Photo.c"
+ }
+#line 1032 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8454 "Photo.c"
+ }
+ __finally280:
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8463 "Photo.c"
+ }
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1031 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 8471 "Photo.c"
+ }
+}
+
+
+gboolean photo_is_master_source (Photo* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1036 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 1037 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_has_editable (self);
+#line 1037 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = !_tmp0_;
+#line 1037 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8487 "Photo.c"
+}
+
+
+gboolean photo_is_editable_baseline (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1040 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 8496 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 8503 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+#line 1042 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 1042 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 1042 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_ != NULL;
+#line 8513 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp3_ = NULL;
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8520 "Photo.c"
+ }
+#line 1042 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8524 "Photo.c"
+ }
+ __finally281:
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 8533 "Photo.c"
+ }
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1041 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 8541 "Photo.c"
+ }
+}
+
+
+gboolean photo_is_editable_source (Photo* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1046 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 1047 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_has_editable (self);
+#line 1047 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 1047 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8557 "Photo.c"
+}
+
+
+BackingPhotoRow* photo_get_master_photo_row (Photo* self) {
+ BackingPhotoRow* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1050 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 8566 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 8573 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ BackingPhotoRow* _tmp2_ = NULL;
+ BackingPhotoRow* _tmp3_ = NULL;
+#line 1052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 1052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->master;
+#line 1052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _backing_photo_row_ref0 (_tmp2_);
+#line 1052 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 8586 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8593 "Photo.c"
+ }
+#line 1052 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8597 "Photo.c"
+ }
+ __finally282:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8606 "Photo.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1051 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 8614 "Photo.c"
+ }
+}
+
+
+BackingPhotoRow* photo_get_editable_photo_row (Photo* self) {
+ BackingPhotoRow* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1056 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 8624 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 8631 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 1059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = backing_photo_id_is_valid (&_tmp1_->editable_id);
+#line 1059 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 8641 "Photo.c"
+ BackingPhotoRow* _tmp3_ = NULL;
+ BackingPhotoRow* _tmp4_ = NULL;
+#line 1060 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->editable;
+#line 1060 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _backing_photo_row_ref0 (_tmp3_);
+#line 1060 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 8650 "Photo.c"
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8657 "Photo.c"
+ }
+#line 1060 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8661 "Photo.c"
+ } else {
+#line 1062 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 8665 "Photo.c"
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8672 "Photo.c"
+ }
+#line 1062 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8676 "Photo.c"
+ }
+ }
+ __finally283:
+ {
+ PhotoRow* _tmp7_ = NULL;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8686 "Photo.c"
+ }
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1057 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 8694 "Photo.c"
+ }
+}
+
+
+GeeCollection* photo_get_raw_development_photo_rows (Photo* self) {
+ GeeCollection* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1066 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 8704 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 8711 "Photo.c"
+ {
+ GeeCollection* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->developments;
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 8719 "Photo.c"
+ GeeHashMap* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->developments;
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_MAP, GeeMap));
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp5_;
+#line 8733 "Photo.c"
+ } else {
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 8739 "Photo.c"
+ }
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 8743 "Photo.c"
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8750 "Photo.c"
+ }
+#line 1068 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8754 "Photo.c"
+ }
+ __finally284:
+ {
+ PhotoRow* _tmp7_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8763 "Photo.c"
+ }
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1067 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 8771 "Photo.c"
+ }
+}
+
+
+BackingPhotoRow* photo_get_raw_development_photo_row (Photo* self, RawDeveloper d) {
+ BackingPhotoRow* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1072 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 8781 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 8788 "Photo.c"
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->developments;
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 8796 "Photo.c"
+ GeeHashMap* _tmp3_ = NULL;
+ RawDeveloper _tmp4_ = 0;
+ gpointer _tmp5_ = NULL;
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->developments;
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = d;
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp4_));
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = (BackingPhotoRow*) _tmp5_;
+#line 8810 "Photo.c"
+ } else {
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp1_);
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 8816 "Photo.c"
+ }
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 8820 "Photo.c"
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8827 "Photo.c"
+ }
+#line 1074 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8831 "Photo.c"
+ }
+ __finally285:
+ {
+ PhotoRow* _tmp7_ = NULL;
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 8840 "Photo.c"
+ }
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1073 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 8848 "Photo.c"
+ }
+}
+
+
+static PhotoFileFormat* _photo_file_format_dup (PhotoFileFormat* self) {
+ PhotoFileFormat* dup;
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ dup = g_new0 (PhotoFileFormat, 1);
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ memcpy (dup, self, sizeof (PhotoFileFormat));
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ return dup;
+#line 8861 "Photo.c"
+}
+
+
+static gpointer __photo_file_format_dup0 (gpointer self) {
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? _photo_file_format_dup (self) : NULL;
+#line 8868 "Photo.c"
+}
+
+
+PhotoFileFormat* photo_get_editable_file_format (Photo* self) {
+ PhotoFileFormat* result = NULL;
+ PhotoFileReader* reader = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ PhotoFileFormat* _tmp4_ = NULL;
+#line 1078 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 1079 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_editable_reader (self);
+#line 1079 "/home/jens/Source/shotwell/src/Photo.vala"
+ reader = _tmp0_;
+#line 1080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = reader;
+#line 1080 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 1081 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 1081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 1081 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8896 "Photo.c"
+ }
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = reader;
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = __photo_file_format_dup0 (&_tmp3_);
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 1084 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8910 "Photo.c"
+}
+
+
+PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params) {
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _result_ = 0;
+ PhotoFileFormat _tmp0_ = 0;
+ ExportFormatParameters _tmp1_ = {0};
+ ExportFormatMode _tmp2_ = 0;
+#line 1087 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0);
+#line 1087 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (params != NULL, 0);
+#line 1088 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_file_format_get_system_default_format ();
+#line 1088 "/home/jens/Source/shotwell/src/Photo.vala"
+ _result_ = _tmp0_;
+#line 1090 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = *params;
+#line 1090 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_.mode;
+#line 1090 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp2_) {
+#line 1090 "/home/jens/Source/shotwell/src/Photo.vala"
+ case EXPORT_FORMAT_MODE_UNMODIFIED:
+#line 8936 "Photo.c"
+ {
+ PhotoFileFormat _tmp3_ = 0;
+#line 1092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_master_file_format (self);
+#line 1092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _result_ = _tmp3_;
+#line 1093 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 8945 "Photo.c"
+ }
+#line 1090 "/home/jens/Source/shotwell/src/Photo.vala"
+ case EXPORT_FORMAT_MODE_CURRENT:
+#line 8949 "Photo.c"
+ {
+ PhotoFileFormat _tmp4_ = 0;
+#line 1096 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_get_best_export_file_format (self);
+#line 1096 "/home/jens/Source/shotwell/src/Photo.vala"
+ _result_ = _tmp4_;
+#line 1097 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 8958 "Photo.c"
+ }
+#line 1090 "/home/jens/Source/shotwell/src/Photo.vala"
+ case EXPORT_FORMAT_MODE_SPECIFIED:
+#line 8962 "Photo.c"
+ {
+ ExportFormatParameters _tmp5_ = {0};
+ PhotoFileFormat _tmp6_ = 0;
+#line 1100 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = *params;
+#line 1100 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_.specified_format;
+#line 1100 "/home/jens/Source/shotwell/src/Photo.vala"
+ _result_ = _tmp6_;
+#line 1101 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 8974 "Photo.c"
+ }
+ default:
+ {
+#line 1104 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_error ("Photo.vala:1104: get_export_format_for_parameters: unsupported export " \
+"format mode");
+#line 8980 "Photo.c"
+ }
+ }
+#line 1107 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _result_;
+#line 1107 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 8987 "Photo.c"
+}
+
+
+gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ ExportFormatParameters _tmp0_ = {0};
+ ExportFormatMode _tmp1_ = 0;
+ const gchar* _tmp8_ = NULL;
+#line 1110 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 1110 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (params != NULL, NULL);
+#line 1111 "/home/jens/Source/shotwell/src/Photo.vala"
+ _result_ = NULL;
+#line 1113 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = *params;
+#line 1113 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_.mode;
+#line 1113 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp1_) {
+#line 1113 "/home/jens/Source/shotwell/src/Photo.vala"
+ case EXPORT_FORMAT_MODE_UNMODIFIED:
+#line 9011 "Photo.c"
+ {
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 1115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = g_file_get_basename (_tmp3_);
+#line 1115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_result_);
+#line 1115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _result_ = _tmp4_;
+#line 1115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1116 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 9030 "Photo.c"
+ }
+#line 1113 "/home/jens/Source/shotwell/src/Photo.vala"
+ case EXPORT_FORMAT_MODE_CURRENT:
+#line 1113 "/home/jens/Source/shotwell/src/Photo.vala"
+ case EXPORT_FORMAT_MODE_SPECIFIED:
+#line 9036 "Photo.c"
+ {
+ ExportFormatParameters _tmp5_ = {0};
+ PhotoFileFormat _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+#line 1120 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = *params;
+#line 1120 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_get_export_format_for_parameters (self, &_tmp5_);
+#line 1120 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_get_export_basename (self, &_tmp6_);
+#line 1120 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp7_;
+#line 1120 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_result_);
+#line 1120 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9053 "Photo.c"
+ }
+ default:
+ {
+#line 1123 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_error ("Photo.vala:1123: get_export_basename_for_parameters: unsupported expor" \
+"t format mode");
+#line 9059 "Photo.c"
+ }
+ }
+#line 1126 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _result_;
+#line 1126 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp8_ != NULL, "result != null");
+#line 1127 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _result_;
+#line 1127 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9070 "Photo.c"
+}
+
+
+ImportResult photo_prepare_for_import (PhotoImportParams* params) {
+ ImportResult result = 0;
+ GFile* file = NULL;
+ PhotoImportParams* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* info = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileType _tmp8_ = 0;
+ GFile* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ GTimeVal timestamp = {0};
+ GFileInfo* _tmp19_ = NULL;
+ GTimeVal _tmp20_ = {0};
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ PhotoImportParams* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ PhotoFileInterrogator* interrogator = NULL;
+ GFile* _tmp32_ = NULL;
+ PhotoImportParams* _tmp33_ = NULL;
+ PhotoFileSnifferOptions _tmp34_ = 0;
+ PhotoFileInterrogator* _tmp35_ = NULL;
+ PhotoFileInterrogator* _tmp42_ = NULL;
+ gboolean _tmp43_ = FALSE;
+ DetectedPhotoInformation* detected = NULL;
+ PhotoFileInterrogator* _tmp44_ = NULL;
+ DetectedPhotoInformation* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ DetectedPhotoInformation* _tmp47_ = NULL;
+ PhotoImportParams* _tmp50_ = NULL;
+ PhotoFileSnifferOptions _tmp51_ = 0;
+ Orientation orientation = 0;
+ time_t exposure_time = 0;
+ gchar* title = NULL;
+ gchar* _tmp64_ = NULL;
+ gchar* comment = NULL;
+ gchar* _tmp65_ = NULL;
+ Rating rating = 0;
+ DetectedPhotoInformation* _tmp66_ = NULL;
+ PhotoMetadata* _tmp67_ = NULL;
+ gboolean _tmp90_ = FALSE;
+ gboolean _tmp91_ = FALSE;
+ DetectedPhotoInformation* _tmp92_ = NULL;
+ GdkColorspace _tmp93_ = 0;
+ PhotoImportParams* _tmp101_ = NULL;
+ PhotoRow* _tmp102_ = NULL;
+ PhotoImportParams* _tmp103_ = NULL;
+ PhotoRow* _tmp104_ = NULL;
+ BackingPhotoRow* _tmp105_ = NULL;
+ GFile* _tmp106_ = NULL;
+ gchar* _tmp107_ = NULL;
+ PhotoImportParams* _tmp108_ = NULL;
+ PhotoRow* _tmp109_ = NULL;
+ BackingPhotoRow* _tmp110_ = NULL;
+ DetectedPhotoInformation* _tmp111_ = NULL;
+ Dimensions _tmp112_ = {0};
+ PhotoImportParams* _tmp113_ = NULL;
+ PhotoRow* _tmp114_ = NULL;
+ BackingPhotoRow* _tmp115_ = NULL;
+ GFileInfo* _tmp116_ = NULL;
+ gint64 _tmp117_ = 0LL;
+ PhotoImportParams* _tmp118_ = NULL;
+ PhotoRow* _tmp119_ = NULL;
+ BackingPhotoRow* _tmp120_ = NULL;
+ GTimeVal _tmp121_ = {0};
+ glong _tmp122_ = 0L;
+ PhotoImportParams* _tmp123_ = NULL;
+ PhotoRow* _tmp124_ = NULL;
+ time_t _tmp125_ = 0;
+ PhotoImportParams* _tmp126_ = NULL;
+ PhotoRow* _tmp127_ = NULL;
+ Orientation _tmp128_ = 0;
+ PhotoImportParams* _tmp129_ = NULL;
+ PhotoRow* _tmp130_ = NULL;
+ BackingPhotoRow* _tmp131_ = NULL;
+ Orientation _tmp132_ = 0;
+ PhotoImportParams* _tmp133_ = NULL;
+ PhotoRow* _tmp134_ = NULL;
+ PhotoImportParams* _tmp135_ = NULL;
+ ImportID _tmp136_ = {0};
+ PhotoImportParams* _tmp137_ = NULL;
+ PhotoRow* _tmp138_ = NULL;
+ PhotoImportParams* _tmp139_ = NULL;
+ PhotoRow* _tmp140_ = NULL;
+ PhotoImportParams* _tmp141_ = NULL;
+ PhotoRow* _tmp142_ = NULL;
+ DetectedPhotoInformation* _tmp143_ = NULL;
+ const gchar* _tmp144_ = NULL;
+ gchar* _tmp145_ = NULL;
+ PhotoImportParams* _tmp146_ = NULL;
+ PhotoRow* _tmp147_ = NULL;
+ DetectedPhotoInformation* _tmp148_ = NULL;
+ const gchar* _tmp149_ = NULL;
+ gchar* _tmp150_ = NULL;
+ PhotoImportParams* _tmp151_ = NULL;
+ PhotoRow* _tmp152_ = NULL;
+ DetectedPhotoInformation* _tmp153_ = NULL;
+ const gchar* _tmp154_ = NULL;
+ gchar* _tmp155_ = NULL;
+ PhotoImportParams* _tmp156_ = NULL;
+ PhotoRow* _tmp157_ = NULL;
+ PhotoImportParams* _tmp158_ = NULL;
+ PhotoRow* _tmp159_ = NULL;
+ PhotoImportParams* _tmp160_ = NULL;
+ PhotoRow* _tmp161_ = NULL;
+ BackingPhotoRow* _tmp162_ = NULL;
+ DetectedPhotoInformation* _tmp163_ = NULL;
+ PhotoFileFormat _tmp164_ = 0;
+ PhotoImportParams* _tmp165_ = NULL;
+ PhotoRow* _tmp166_ = NULL;
+ const gchar* _tmp167_ = NULL;
+ gchar* _tmp168_ = NULL;
+ PhotoImportParams* _tmp169_ = NULL;
+ PhotoRow* _tmp170_ = NULL;
+ const gchar* _tmp171_ = NULL;
+ gchar* _tmp172_ = NULL;
+ PhotoImportParams* _tmp173_ = NULL;
+ PhotoRow* _tmp174_ = NULL;
+ Rating _tmp175_ = 0;
+ PhotoImportParams* _tmp176_ = NULL;
+ Thumbnails* _tmp177_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1142 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_PARAMS (params), 0);
+#line 1146 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = params;
+#line 1146 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_->file;
+#line 1146 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1146 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp2_;
+#line 1148 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = NULL;
+#line 9211 "Photo.c"
+ {
+ GFileInfo* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = file;
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = g_file_query_info (_tmp4_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp5_;
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9225 "Photo.c"
+ goto __catch286_g_error;
+ }
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp3_;
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = NULL;
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1150 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = _tmp6_;
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 9238 "Photo.c"
+ }
+ goto __finally286;
+ __catch286_g_error:
+ {
+ GError* err = NULL;
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1153 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_FILE_ERROR;
+#line 1153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 1153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1153 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9258 "Photo.c"
+ }
+ __finally286:
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1149 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 9273 "Photo.c"
+ }
+#line 1156 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = info;
+#line 1156 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_file_info_get_file_type (_tmp7_);
+#line 1156 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ != G_FILE_TYPE_REGULAR) {
+#line 1157 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_NOT_A_FILE;
+#line 1157 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1157 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1157 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9289 "Photo.c"
+ }
+#line 1159 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = file;
+#line 1159 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_is_file_image (_tmp9_);
+#line 1159 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp10_) {
+#line 9297 "Photo.c"
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 1160 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = file;
+#line 1160 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 1160 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 1160 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_message ("Photo.vala:1160: Not importing %s: Not an image file", _tmp13_);
+#line 1160 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp13_);
+#line 1162 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_NOT_AN_IMAGE;
+#line 1162 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1162 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1162 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9319 "Photo.c"
+ }
+#line 1165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = file;
+#line 1165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_file_format_is_file_supported (_tmp14_);
+#line 1165 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp15_) {
+#line 9327 "Photo.c"
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 1166 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = file;
+#line 1166 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 1166 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_;
+#line 1166 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_message ("Photo.vala:1166: Not importing %s: Unsupported extension", _tmp18_);
+#line 1166 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp18_);
+#line 1168 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_UNSUPPORTED_FORMAT;
+#line 1168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1168 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9349 "Photo.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = info;
+#line 1171 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_info_get_modification_time (_tmp19_, &_tmp20_);
+#line 1171 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp = _tmp20_;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = params;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_->exif_md5;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp24_ != NULL) {
+#line 9363 "Photo.c"
+ PhotoImportParams* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = params;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_->thumbnail_md5;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp26_ != NULL;
+#line 9372 "Photo.c"
+ } else {
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = FALSE;
+#line 9376 "Photo.c"
+ }
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_) {
+#line 9380 "Photo.c"
+ PhotoImportParams* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = params;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_->full_md5;
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp28_ != NULL;
+#line 9389 "Photo.c"
+ } else {
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = FALSE;
+#line 9393 "Photo.c"
+ }
+#line 1174 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp21_) {
+#line 9397 "Photo.c"
+ PhotoImportParams* _tmp29_ = NULL;
+ PhotoImportParams* _tmp30_ = NULL;
+ PhotoFileSnifferOptions _tmp31_ = 0;
+#line 1175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = params;
+#line 1175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = params;
+#line 1175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_->sniffer_options;
+#line 1175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_->sniffer_options = _tmp31_ | PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5;
+#line 9409 "Photo.c"
+ }
+#line 1178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = file;
+#line 1178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = params;
+#line 1178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_->sniffer_options;
+#line 1178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo_file_interrogator_new (_tmp32_, _tmp34_);
+#line 1178 "/home/jens/Source/shotwell/src/Photo.vala"
+ interrogator = _tmp35_;
+#line 9421 "Photo.c"
+ {
+ PhotoFileInterrogator* _tmp36_ = NULL;
+#line 1180 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = interrogator;
+#line 1180 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_interrogator_interrogate (_tmp36_, &_inner_error_);
+#line 1180 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9430 "Photo.c"
+ goto __catch287_g_error;
+ }
+ }
+ goto __finally287;
+ __catch287_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ GError* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1182 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = file;
+#line 1182 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = g_file_get_path (_tmp37_);
+#line 1182 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tmp38_;
+#line 1182 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = err;
+#line 1182 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp40_->message;
+#line 1182 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:1182: Unable to interrogate photo file %s: %s", _tmp39_, _tmp41_);
+#line 1182 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp39_);
+#line 1184 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_DECODE_ERROR;
+#line 1184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 1184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1184 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9473 "Photo.c"
+ }
+ __finally287:
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1179 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 9490 "Photo.c"
+ }
+#line 1187 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = interrogator;
+#line 1187 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = photo_file_interrogator_get_is_photo_corrupted (_tmp42_);
+#line 1187 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp43_) {
+#line 1188 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_NOT_AN_IMAGE;
+#line 1188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1188 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9508 "Photo.c"
+ }
+#line 1191 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = interrogator;
+#line 1191 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = photo_file_interrogator_get_detected_photo_information (_tmp44_);
+#line 1191 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp45_;
+#line 1192 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = detected;
+#line 1192 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp47_ == NULL) {
+#line 1192 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = TRUE;
+#line 9522 "Photo.c"
+ } else {
+ DetectedPhotoInformation* _tmp48_ = NULL;
+ PhotoFileFormat _tmp49_ = 0;
+#line 1192 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = detected;
+#line 1192 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = _tmp48_->file_format;
+#line 1192 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = _tmp49_ == PHOTO_FILE_FORMAT_UNKNOWN;
+#line 9532 "Photo.c"
+ }
+#line 1192 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp46_) {
+#line 1193 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_UNSUPPORTED_FORMAT;
+#line 1193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1193 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9548 "Photo.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = params;
+#line 1196 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = _tmp50_->sniffer_options;
+#line 1196 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp51_ & PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5) != 0) {
+#line 9556 "Photo.c"
+ DetectedPhotoInformation* _tmp52_ = NULL;
+ PhotoImportParams* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ DetectedPhotoInformation* _tmp56_ = NULL;
+ PhotoImportParams* _tmp57_ = NULL;
+ const gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ DetectedPhotoInformation* _tmp60_ = NULL;
+ PhotoImportParams* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+#line 1197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = detected;
+#line 1197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = params;
+#line 1197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = _tmp53_->exif_md5;
+#line 1197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = g_strdup (_tmp54_);
+#line 1197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp52_->exif_md5);
+#line 1197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_->exif_md5 = _tmp55_;
+#line 1198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = detected;
+#line 1198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = params;
+#line 1198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = _tmp57_->thumbnail_md5;
+#line 1198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = g_strdup (_tmp58_);
+#line 1198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp56_->thumbnail_md5);
+#line 1198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_->thumbnail_md5 = _tmp59_;
+#line 1199 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = detected;
+#line 1199 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = params;
+#line 1199 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = _tmp61_->full_md5;
+#line 1199 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = g_strdup (_tmp62_);
+#line 1199 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp60_->md5);
+#line 1199 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_->md5 = _tmp63_;
+#line 9605 "Photo.c"
+ }
+#line 1202 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation = ORIENTATION_TOP_LEFT;
+#line 1203 "/home/jens/Source/shotwell/src/Photo.vala"
+ exposure_time = (time_t) 0;
+#line 1204 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = g_strdup ("");
+#line 1204 "/home/jens/Source/shotwell/src/Photo.vala"
+ title = _tmp64_;
+#line 1205 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = g_strdup ("");
+#line 1205 "/home/jens/Source/shotwell/src/Photo.vala"
+ comment = _tmp65_;
+#line 1206 "/home/jens/Source/shotwell/src/Photo.vala"
+ rating = RATING_UNRATED;
+#line 1213 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = detected;
+#line 1213 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = _tmp66_->metadata;
+#line 1213 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp67_ != NULL) {
+#line 9627 "Photo.c"
+ MetadataDateTime* date_time = NULL;
+ DetectedPhotoInformation* _tmp68_ = NULL;
+ PhotoMetadata* _tmp69_ = NULL;
+ MetadataDateTime* _tmp70_ = NULL;
+ MetadataDateTime* _tmp71_ = NULL;
+ DetectedPhotoInformation* _tmp74_ = NULL;
+ PhotoMetadata* _tmp75_ = NULL;
+ Orientation _tmp76_ = 0;
+ DetectedPhotoInformation* _tmp77_ = NULL;
+ PhotoMetadata* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ DetectedPhotoInformation* _tmp80_ = NULL;
+ PhotoMetadata* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ PhotoImportParams* _tmp83_ = NULL;
+ DetectedPhotoInformation* _tmp84_ = NULL;
+ PhotoMetadata* _tmp85_ = NULL;
+ GeeSet* _tmp86_ = NULL;
+ DetectedPhotoInformation* _tmp87_ = NULL;
+ PhotoMetadata* _tmp88_ = NULL;
+ Rating _tmp89_ = 0;
+#line 1214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = detected;
+#line 1214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = _tmp68_->metadata;
+#line 1214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = photo_metadata_get_exposure_date_time (_tmp69_);
+#line 1214 "/home/jens/Source/shotwell/src/Photo.vala"
+ date_time = _tmp70_;
+#line 1215 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = date_time;
+#line 1215 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp71_ != NULL) {
+#line 9661 "Photo.c"
+ MetadataDateTime* _tmp72_ = NULL;
+ time_t _tmp73_ = 0;
+#line 1216 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = date_time;
+#line 1216 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = metadata_date_time_get_timestamp (_tmp72_);
+#line 1216 "/home/jens/Source/shotwell/src/Photo.vala"
+ exposure_time = _tmp73_;
+#line 9670 "Photo.c"
+ }
+#line 1218 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = detected;
+#line 1218 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = _tmp74_->metadata;
+#line 1218 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = photo_metadata_get_orientation (_tmp75_);
+#line 1218 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation = _tmp76_;
+#line 1219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = detected;
+#line 1219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = _tmp77_->metadata;
+#line 1219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 1219 "/home/jens/Source/shotwell/src/Photo.vala"
+ title = _tmp79_;
+#line 1220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = detected;
+#line 1220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = _tmp80_->metadata;
+#line 1220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = media_metadata_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 1220 "/home/jens/Source/shotwell/src/Photo.vala"
+ comment = _tmp82_;
+#line 1221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = params;
+#line 1221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = detected;
+#line 1221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = _tmp84_->metadata;
+#line 1221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = photo_metadata_get_keywords (_tmp85_, NULL, NULL, NULL);
+#line 1221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp83_->keywords);
+#line 1221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_->keywords = G_TYPE_CHECK_INSTANCE_CAST (_tmp86_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1222 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = detected;
+#line 1222 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = _tmp87_->metadata;
+#line 1222 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = photo_metadata_get_rating (_tmp88_);
+#line 1222 "/home/jens/Source/shotwell/src/Photo.vala"
+ rating = _tmp89_;
+#line 1213 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 9722 "Photo.c"
+ }
+#line 1226 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = detected;
+#line 1226 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = _tmp92_->colorspace;
+#line 1226 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp93_ != GDK_COLORSPACE_RGB) {
+#line 1226 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = TRUE;
+#line 9732 "Photo.c"
+ } else {
+ DetectedPhotoInformation* _tmp94_ = NULL;
+ gint _tmp95_ = 0;
+#line 1227 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = detected;
+#line 1227 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = _tmp94_->channels;
+#line 1227 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = _tmp95_ < 3;
+#line 9742 "Photo.c"
+ }
+#line 1226 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp91_) {
+#line 1226 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = TRUE;
+#line 9748 "Photo.c"
+ } else {
+ DetectedPhotoInformation* _tmp96_ = NULL;
+ gint _tmp97_ = 0;
+#line 1228 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = detected;
+#line 1228 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = _tmp96_->bits_per_channel;
+#line 1228 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = _tmp97_ != 8;
+#line 9758 "Photo.c"
+ }
+#line 1226 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp90_) {
+#line 9762 "Photo.c"
+ GFile* _tmp98_ = NULL;
+ gchar* _tmp99_ = NULL;
+ gchar* _tmp100_ = NULL;
+#line 1229 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = file;
+#line 1229 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp99_ = g_file_get_path (_tmp98_);
+#line 1229 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = _tmp99_;
+#line 1229 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_message ("Photo.vala:1229: Not importing %s: Unsupported color format", _tmp100_);
+#line 1229 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp100_);
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_UNSUPPORTED_FORMAT;
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1231 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 9792 "Photo.c"
+ }
+#line 1237 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = params;
+#line 1237 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp102_ = _tmp101_->row;
+#line 1237 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id_init (&_tmp102_->photo_id, PHOTO_ID_INVALID);
+#line 1238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103_ = params;
+#line 1238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = _tmp103_->row;
+#line 1238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp105_ = _tmp104_->master;
+#line 1238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = file;
+#line 1238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp107_ = g_file_get_path (_tmp106_);
+#line 1238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp105_->filepath);
+#line 1238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp105_->filepath = _tmp107_;
+#line 1239 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp108_ = params;
+#line 1239 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp109_ = _tmp108_->row;
+#line 1239 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110_ = _tmp109_->master;
+#line 1239 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp111_ = detected;
+#line 1239 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp112_ = _tmp111_->image_dim;
+#line 1239 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110_->dim = _tmp112_;
+#line 1240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp113_ = params;
+#line 1240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114_ = _tmp113_->row;
+#line 1240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp115_ = _tmp114_->master;
+#line 1240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp116_ = info;
+#line 1240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp117_ = g_file_info_get_size (_tmp116_);
+#line 1240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp115_->filesize = _tmp117_;
+#line 1241 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp118_ = params;
+#line 1241 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp119_ = _tmp118_->row;
+#line 1241 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp120_ = _tmp119_->master;
+#line 1241 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp121_ = timestamp;
+#line 1241 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp122_ = _tmp121_.tv_sec;
+#line 1241 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp120_->timestamp = (time_t) _tmp122_;
+#line 1242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp123_ = params;
+#line 1242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124_ = _tmp123_->row;
+#line 1242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp125_ = exposure_time;
+#line 1242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124_->exposure_time = _tmp125_;
+#line 1243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp126_ = params;
+#line 1243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp127_ = _tmp126_->row;
+#line 1243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp128_ = orientation;
+#line 1243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp127_->orientation = _tmp128_;
+#line 1244 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp129_ = params;
+#line 1244 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp130_ = _tmp129_->row;
+#line 1244 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp131_ = _tmp130_->master;
+#line 1244 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp132_ = orientation;
+#line 1244 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp131_->original_orientation = _tmp132_;
+#line 1245 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp133_ = params;
+#line 1245 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp134_ = _tmp133_->row;
+#line 1245 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp135_ = params;
+#line 1245 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp136_ = _tmp135_->import_id;
+#line 1245 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp134_->import_id = _tmp136_;
+#line 1246 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp137_ = params;
+#line 1246 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp138_ = _tmp137_->row;
+#line 1246 "/home/jens/Source/shotwell/src/Photo.vala"
+ event_id_init (&_tmp138_->event_id, EVENT_ID_INVALID);
+#line 1247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp139_ = params;
+#line 1247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp140_ = _tmp139_->row;
+#line 1247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp140_->transformations);
+#line 1247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp140_->transformations = NULL;
+#line 1248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp141_ = params;
+#line 1248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp142_ = _tmp141_->row;
+#line 1248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp143_ = detected;
+#line 1248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp144_ = _tmp143_->md5;
+#line 1248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp145_ = g_strdup (_tmp144_);
+#line 1248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp142_->md5);
+#line 1248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp142_->md5 = _tmp145_;
+#line 1249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp146_ = params;
+#line 1249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp147_ = _tmp146_->row;
+#line 1249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp148_ = detected;
+#line 1249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp149_ = _tmp148_->thumbnail_md5;
+#line 1249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp150_ = g_strdup (_tmp149_);
+#line 1249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp147_->thumbnail_md5);
+#line 1249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp147_->thumbnail_md5 = _tmp150_;
+#line 1250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp151_ = params;
+#line 1250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp152_ = _tmp151_->row;
+#line 1250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp153_ = detected;
+#line 1250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp154_ = _tmp153_->exif_md5;
+#line 1250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp155_ = g_strdup (_tmp154_);
+#line 1250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp152_->exif_md5);
+#line 1250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp152_->exif_md5 = _tmp155_;
+#line 1251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp156_ = params;
+#line 1251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp157_ = _tmp156_->row;
+#line 1251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp157_->time_created = (time_t) 0;
+#line 1252 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp158_ = params;
+#line 1252 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp159_ = _tmp158_->row;
+#line 1252 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp159_->flags = (guint64) 0;
+#line 1253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp160_ = params;
+#line 1253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp161_ = _tmp160_->row;
+#line 1253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp162_ = _tmp161_->master;
+#line 1253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp163_ = detected;
+#line 1253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp164_ = _tmp163_->file_format;
+#line 1253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp162_->file_format = _tmp164_;
+#line 1254 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp165_ = params;
+#line 1254 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp166_ = _tmp165_->row;
+#line 1254 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp167_ = title;
+#line 1254 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp168_ = g_strdup (_tmp167_);
+#line 1254 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp166_->title);
+#line 1254 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp166_->title = _tmp168_;
+#line 1255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp169_ = params;
+#line 1255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp170_ = _tmp169_->row;
+#line 1255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp171_ = comment;
+#line 1255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp172_ = g_strdup (_tmp171_);
+#line 1255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp170_->comment);
+#line 1255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp170_->comment = _tmp172_;
+#line 1256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp173_ = params;
+#line 1256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp174_ = _tmp173_->row;
+#line 1256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp175_ = rating;
+#line 1256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp174_->rating = _tmp175_;
+#line 1258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp176_ = params;
+#line 1258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp177_ = _tmp176_->thumbnails;
+#line 1258 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp177_ != NULL) {
+#line 10004 "Photo.c"
+ PhotoFileReader* reader = NULL;
+ PhotoImportParams* _tmp178_ = NULL;
+ PhotoRow* _tmp179_ = NULL;
+ BackingPhotoRow* _tmp180_ = NULL;
+ PhotoFileFormat _tmp181_ = 0;
+ PhotoImportParams* _tmp182_ = NULL;
+ PhotoRow* _tmp183_ = NULL;
+ BackingPhotoRow* _tmp184_ = NULL;
+ const gchar* _tmp185_ = NULL;
+ PhotoFileReader* _tmp186_ = NULL;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp178_ = params;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp179_ = _tmp178_->row;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp180_ = _tmp179_->master;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp181_ = _tmp180_->file_format;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp182_ = params;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp183_ = _tmp182_->row;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp184_ = _tmp183_->master;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp185_ = _tmp184_->filepath;
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp186_ = photo_file_format_create_reader (_tmp181_, _tmp185_);
+#line 1259 "/home/jens/Source/shotwell/src/Photo.vala"
+ reader = _tmp186_;
+#line 10035 "Photo.c"
+ {
+ PhotoImportParams* _tmp187_ = NULL;
+ Thumbnails* _tmp188_ = NULL;
+ PhotoFileReader* _tmp189_ = NULL;
+ PhotoImportParams* _tmp190_ = NULL;
+ PhotoRow* _tmp191_ = NULL;
+ Orientation _tmp192_ = 0;
+ PhotoImportParams* _tmp193_ = NULL;
+ PhotoRow* _tmp194_ = NULL;
+ BackingPhotoRow* _tmp195_ = NULL;
+ Dimensions _tmp196_ = {0};
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp187_ = params;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp188_ = _tmp187_->thumbnails;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp189_ = reader;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp190_ = params;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp191_ = _tmp190_->row;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp192_ = _tmp191_->orientation;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp193_ = params;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp194_ = _tmp193_->row;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp195_ = _tmp194_->master;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp196_ = _tmp195_->dim;
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ thumbnail_cache_generate_for_photo (_tmp188_, _tmp189_, _tmp192_, &_tmp196_, &_inner_error_);
+#line 1262 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10071 "Photo.c"
+ goto __catch288_g_error;
+ }
+ }
+ goto __finally288;
+ __catch288_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp197_ = NULL;
+ ImportResult _tmp198_ = 0;
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp197_ = err;
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp198_ = import_result_convert_error (_tmp197_, IMPORT_RESULT_FILE_ERROR);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp198_;
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1265 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 10109 "Photo.c"
+ }
+ __finally288:
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1261 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 10134 "Photo.c"
+ }
+#line 1258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 10138 "Photo.c"
+ }
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1272 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 10156 "Photo.c"
+}
+
+
+void photo_create_pre_import (PhotoImportParams* params) {
+ GFile* file = NULL;
+ PhotoImportParams* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ PhotoImportParams* _tmp3_ = NULL;
+ PhotoRow* _tmp4_ = NULL;
+ PhotoImportParams* _tmp5_ = NULL;
+ PhotoRow* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ PhotoImportParams* _tmp9_ = NULL;
+ PhotoRow* _tmp10_ = NULL;
+ BackingPhotoRow* _tmp11_ = NULL;
+ PhotoImportParams* _tmp12_ = NULL;
+ PhotoRow* _tmp13_ = NULL;
+ BackingPhotoRow* _tmp14_ = NULL;
+ PhotoImportParams* _tmp15_ = NULL;
+ PhotoRow* _tmp16_ = NULL;
+ BackingPhotoRow* _tmp17_ = NULL;
+ PhotoImportParams* _tmp18_ = NULL;
+ PhotoRow* _tmp19_ = NULL;
+ PhotoImportParams* _tmp20_ = NULL;
+ PhotoRow* _tmp21_ = NULL;
+ PhotoImportParams* _tmp22_ = NULL;
+ PhotoRow* _tmp23_ = NULL;
+ BackingPhotoRow* _tmp24_ = NULL;
+ PhotoImportParams* _tmp25_ = NULL;
+ PhotoRow* _tmp26_ = NULL;
+ PhotoImportParams* _tmp27_ = NULL;
+ ImportID _tmp28_ = {0};
+ PhotoImportParams* _tmp29_ = NULL;
+ PhotoRow* _tmp30_ = NULL;
+ PhotoImportParams* _tmp31_ = NULL;
+ PhotoRow* _tmp32_ = NULL;
+ PhotoImportParams* _tmp33_ = NULL;
+ PhotoRow* _tmp34_ = NULL;
+ PhotoImportParams* _tmp35_ = NULL;
+ PhotoRow* _tmp36_ = NULL;
+ PhotoImportParams* _tmp37_ = NULL;
+ PhotoRow* _tmp38_ = NULL;
+ PhotoImportParams* _tmp39_ = NULL;
+ PhotoRow* _tmp40_ = NULL;
+ PhotoImportParams* _tmp41_ = NULL;
+ PhotoRow* _tmp42_ = NULL;
+ PhotoImportParams* _tmp43_ = NULL;
+ PhotoRow* _tmp44_ = NULL;
+ BackingPhotoRow* _tmp45_ = NULL;
+ PhotoImportParams* _tmp46_ = NULL;
+ PhotoRow* _tmp47_ = NULL;
+ PhotoImportParams* _tmp48_ = NULL;
+ PhotoRow* _tmp49_ = NULL;
+ PhotoImportParams* _tmp50_ = NULL;
+ PhotoRow* _tmp51_ = NULL;
+ PhotoFileInterrogator* interrogator = NULL;
+ PhotoImportParams* _tmp52_ = NULL;
+ GFile* _tmp53_ = NULL;
+ PhotoImportParams* _tmp54_ = NULL;
+ PhotoFileSnifferOptions _tmp55_ = 0;
+ PhotoFileInterrogator* _tmp56_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1275 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO_IMPORT_PARAMS (params));
+#line 1276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = params;
+#line 1276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_->file;
+#line 1276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1276 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp2_;
+#line 1277 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = params;
+#line 1277 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->row;
+#line 1277 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id_init (&_tmp4_->photo_id, PHOTO_ID_INVALID);
+#line 1278 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = params;
+#line 1278 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->row;
+#line 1278 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->master;
+#line 1278 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_file_get_path (file);
+#line 1278 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp7_->filepath);
+#line 1278 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_->filepath = _tmp8_;
+#line 1279 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = params;
+#line 1279 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->row;
+#line 1279 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_->master;
+#line 1279 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_init (&_tmp11_->dim, 0, 0);
+#line 1280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = params;
+#line 1280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_->row;
+#line 1280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->master;
+#line 1280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_->filesize = (gint64) 0;
+#line 1281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = params;
+#line 1281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->row;
+#line 1281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_->master;
+#line 1281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_->timestamp = (time_t) 0;
+#line 1282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = params;
+#line 1282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->row;
+#line 1282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_->exposure_time = (time_t) 0;
+#line 1283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = params;
+#line 1283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_->row;
+#line 1283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_->orientation = ORIENTATION_TOP_LEFT;
+#line 1284 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = params;
+#line 1284 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_->row;
+#line 1284 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_->master;
+#line 1284 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_->original_orientation = ORIENTATION_TOP_LEFT;
+#line 1285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = params;
+#line 1285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_->row;
+#line 1285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = params;
+#line 1285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_->import_id;
+#line 1285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_->import_id = _tmp28_;
+#line 1286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = params;
+#line 1286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp29_->row;
+#line 1286 "/home/jens/Source/shotwell/src/Photo.vala"
+ event_id_init (&_tmp30_->event_id, EVENT_ID_INVALID);
+#line 1287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = params;
+#line 1287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_->row;
+#line 1287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp32_->transformations);
+#line 1287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_->transformations = NULL;
+#line 1288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = params;
+#line 1288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_->row;
+#line 1288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp34_->md5);
+#line 1288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_->md5 = NULL;
+#line 1289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = params;
+#line 1289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = _tmp35_->row;
+#line 1289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp36_->thumbnail_md5);
+#line 1289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_->thumbnail_md5 = NULL;
+#line 1290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = params;
+#line 1290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tmp37_->row;
+#line 1290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp38_->exif_md5);
+#line 1290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_->exif_md5 = NULL;
+#line 1291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = params;
+#line 1291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = _tmp39_->row;
+#line 1291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_->time_created = (time_t) 0;
+#line 1292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = params;
+#line 1292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_->row;
+#line 1292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_->flags = (guint64) 0;
+#line 1293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = params;
+#line 1293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp43_->row;
+#line 1293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp44_->master;
+#line 1293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_->file_format = PHOTO_FILE_FORMAT_JFIF;
+#line 1294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = params;
+#line 1294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_->row;
+#line 1294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp47_->title);
+#line 1294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_->title = NULL;
+#line 1295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = params;
+#line 1295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = _tmp48_->row;
+#line 1295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp49_->comment);
+#line 1295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_->comment = NULL;
+#line 1296 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = params;
+#line 1296 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = _tmp50_->row;
+#line 1296 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_->rating = RATING_UNRATED;
+#line 1298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = params;
+#line 1298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp52_->file;
+#line 1298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = params;
+#line 1298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = _tmp54_->sniffer_options;
+#line 1298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = photo_file_interrogator_new (_tmp53_, _tmp55_);
+#line 1298 "/home/jens/Source/shotwell/src/Photo.vala"
+ interrogator = _tmp56_;
+#line 10395 "Photo.c"
+ {
+ DetectedPhotoInformation* detected = NULL;
+ DetectedPhotoInformation* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+ gboolean _tmp59_ = FALSE;
+ DetectedPhotoInformation* _tmp60_ = NULL;
+#line 1300 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_interrogator_interrogate (interrogator, &_inner_error_);
+#line 1300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10406 "Photo.c"
+ goto __catch289_g_error;
+ }
+#line 1301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = photo_file_interrogator_get_detected_photo_information (interrogator);
+#line 1301 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp57_;
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = detected;
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp60_ != NULL) {
+#line 10417 "Photo.c"
+ gboolean _tmp61_ = FALSE;
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = photo_file_interrogator_get_is_photo_corrupted (interrogator);
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = !_tmp61_;
+#line 10423 "Photo.c"
+ } else {
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = FALSE;
+#line 10427 "Photo.c"
+ }
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp59_) {
+#line 10431 "Photo.c"
+ DetectedPhotoInformation* _tmp62_ = NULL;
+ PhotoFileFormat _tmp63_ = 0;
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = detected;
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = _tmp62_->file_format;
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = _tmp63_ != PHOTO_FILE_FORMAT_UNKNOWN;
+#line 10440 "Photo.c"
+ } else {
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = FALSE;
+#line 10444 "Photo.c"
+ }
+#line 1302 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp58_) {
+#line 10448 "Photo.c"
+ PhotoImportParams* _tmp64_ = NULL;
+ PhotoRow* _tmp65_ = NULL;
+ BackingPhotoRow* _tmp66_ = NULL;
+ DetectedPhotoInformation* _tmp67_ = NULL;
+ PhotoFileFormat _tmp68_ = 0;
+#line 1303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = params;
+#line 1303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = _tmp64_->row;
+#line 1303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = _tmp65_->master;
+#line 1303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = detected;
+#line 1303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = _tmp67_->file_format;
+#line 1303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_->file_format = _tmp68_;
+#line 10466 "Photo.c"
+ }
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 10470 "Photo.c"
+ }
+ goto __finally289;
+ __catch289_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ GError* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = g_file_get_path (file);
+#line 1305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = _tmp69_;
+#line 1305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = err;
+#line 1305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = _tmp71_->message;
+#line 1305 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:1305: Unable to interrogate photo file %s: %s", _tmp70_, _tmp72_);
+#line 1305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp70_);
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 10498 "Photo.c"
+ }
+ __finally289:
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1299 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 10513 "Photo.c"
+ }
+#line 1275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 10519 "Photo.c"
+}
+
+
+BackingPhotoRow* photo_query_backing_photo_row (Photo* self, GFile* file, PhotoFileSnifferOptions options, DetectedPhotoInformation** detected, GError** error) {
+ DetectedPhotoInformation* _vala_detected = NULL;
+ BackingPhotoRow* result = NULL;
+ BackingPhotoRow* backing = NULL;
+ BackingPhotoRow* _tmp0_ = NULL;
+ GFileInfo* info = NULL;
+ PhotoFileInterrogator* interrogator = NULL;
+ GFile* _tmp10_ = NULL;
+ PhotoFileSnifferOptions _tmp11_ = 0;
+ PhotoFileInterrogator* _tmp12_ = NULL;
+ PhotoFileInterrogator* _tmp13_ = NULL;
+ PhotoFileInterrogator* _tmp14_ = NULL;
+ DetectedPhotoInformation* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ DetectedPhotoInformation* _tmp17_ = NULL;
+ GTimeVal modification_time = {0};
+ GFileInfo* _tmp22_ = NULL;
+ GTimeVal _tmp23_ = {0};
+ BackingPhotoRow* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ BackingPhotoRow* _tmp27_ = NULL;
+ GTimeVal _tmp28_ = {0};
+ glong _tmp29_ = 0L;
+ BackingPhotoRow* _tmp30_ = NULL;
+ GFileInfo* _tmp31_ = NULL;
+ gint64 _tmp32_ = 0LL;
+ BackingPhotoRow* _tmp33_ = NULL;
+ DetectedPhotoInformation* _tmp34_ = NULL;
+ PhotoFileFormat _tmp35_ = 0;
+ BackingPhotoRow* _tmp36_ = NULL;
+ DetectedPhotoInformation* _tmp37_ = NULL;
+ Dimensions _tmp38_ = {0};
+ Orientation _tmp39_ = 0;
+ DetectedPhotoInformation* _tmp40_ = NULL;
+ PhotoMetadata* _tmp41_ = NULL;
+ BackingPhotoRow* _tmp45_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1309 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 1309 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 1311 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 1311 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_detected = NULL;
+#line 1313 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = backing_photo_row_new ();
+#line 1313 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = _tmp0_;
+#line 1315 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = NULL;
+#line 10575 "Photo.c"
+ {
+ GFileInfo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = file;
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = g_file_query_info (_tmp2_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp3_;
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10589 "Photo.c"
+ goto __catch290_g_error;
+ }
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp1_;
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1317 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = _tmp4_;
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 10602 "Photo.c"
+ }
+ goto __finally290;
+ __catch290_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = file;
+#line 1320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 1320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 1320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = err;
+#line 1320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_->message;
+#line 1320 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("Photo.vala:1320: Unable to read file information for %s: %s", _tmp7_, _tmp9_);
+#line 1320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp7_);
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (detected) {
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ *detected = _vala_detected;
+#line 10643 "Photo.c"
+ } else {
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 10647 "Photo.c"
+ }
+#line 1322 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 10651 "Photo.c"
+ }
+ __finally290:
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1316 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 10664 "Photo.c"
+ }
+#line 1326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = file;
+#line 1326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = options;
+#line 1326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_file_interrogator_new (_tmp10_, _tmp11_);
+#line 1326 "/home/jens/Source/shotwell/src/Photo.vala"
+ interrogator = _tmp12_;
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = interrogator;
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_interrogator_interrogate (_tmp13_, &_inner_error_);
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1327 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 10690 "Photo.c"
+ }
+#line 1328 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = interrogator;
+#line 1328 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_file_interrogator_get_detected_photo_information (_tmp14_);
+#line 1328 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 1328 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_detected = _tmp15_;
+#line 1329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _vala_detected;
+#line 1329 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_ == NULL) {
+#line 1329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = TRUE;
+#line 10706 "Photo.c"
+ } else {
+ PhotoFileInterrogator* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 1329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = interrogator;
+#line 1329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = photo_file_interrogator_get_is_photo_corrupted (_tmp18_);
+#line 1329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp19_;
+#line 10716 "Photo.c"
+ }
+#line 1329 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_) {
+#line 10720 "Photo.c"
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 1330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 1330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_;
+#line 1330 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("Photo.vala:1330: Photo update: %s no longer a recognized image", _tmp21_);
+#line 1330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp21_);
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (detected) {
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ *detected = _vala_detected;
+#line 10743 "Photo.c"
+ } else {
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 10747 "Photo.c"
+ }
+#line 1332 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 10751 "Photo.c"
+ }
+#line 1335 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = info;
+#line 1335 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_info_get_modification_time (_tmp22_, &_tmp23_);
+#line 1335 "/home/jens/Source/shotwell/src/Photo.vala"
+ modification_time = _tmp23_;
+#line 1337 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = backing;
+#line 1337 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = file;
+#line 1337 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = g_file_get_path (_tmp25_);
+#line 1337 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp24_->filepath);
+#line 1337 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_->filepath = _tmp26_;
+#line 1338 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = backing;
+#line 1338 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = modification_time;
+#line 1338 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_.tv_sec;
+#line 1338 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_->timestamp = (time_t) _tmp29_;
+#line 1339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = backing;
+#line 1339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = info;
+#line 1339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = g_file_info_get_size (_tmp31_);
+#line 1339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_->filesize = _tmp32_;
+#line 1340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = backing;
+#line 1340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _vala_detected;
+#line 1340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_->file_format;
+#line 1340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_->file_format = _tmp35_;
+#line 1341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = backing;
+#line 1341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _vala_detected;
+#line 1341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tmp37_->image_dim;
+#line 1341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_->dim = _tmp38_;
+#line 1342 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = _vala_detected;
+#line 1342 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp40_->metadata;
+#line 1342 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp41_ != NULL) {
+#line 10807 "Photo.c"
+ DetectedPhotoInformation* _tmp42_ = NULL;
+ PhotoMetadata* _tmp43_ = NULL;
+ Orientation _tmp44_ = 0;
+#line 1343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _vala_detected;
+#line 1343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _tmp42_->metadata;
+#line 1343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = photo_metadata_get_orientation (_tmp43_);
+#line 1343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tmp44_;
+#line 10819 "Photo.c"
+ } else {
+#line 1343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = ORIENTATION_TOP_LEFT;
+#line 10823 "Photo.c"
+ }
+#line 1342 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = backing;
+#line 1342 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_->original_orientation = _tmp39_;
+#line 1345 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = backing;
+#line 1345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 1345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 1345 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (detected) {
+#line 1345 "/home/jens/Source/shotwell/src/Photo.vala"
+ *detected = _vala_detected;
+#line 10839 "Photo.c"
+ } else {
+#line 1345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 10843 "Photo.c"
+ }
+#line 1345 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 10847 "Photo.c"
+}
+
+
+static void _vala_array_add254 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 10858 "Photo.c"
+ }
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 10864 "Photo.c"
+}
+
+
+static void _vala_array_add255 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 10875 "Photo.c"
+ }
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 10881 "Photo.c"
+}
+
+
+static void _vala_array_add256 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 10892 "Photo.c"
+ }
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 10898 "Photo.c"
+}
+
+
+static void _vala_array_add257 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 10909 "Photo.c"
+ }
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 10915 "Photo.c"
+}
+
+
+static void _vala_array_add258 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 10926 "Photo.c"
+ }
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 10932 "Photo.c"
+}
+
+
+static void _vala_array_add259 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 10943 "Photo.c"
+ }
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 10949 "Photo.c"
+}
+
+
+static gpointer _media_metadata_ref0 (gpointer self) {
+#line 1470 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? media_metadata_ref (self) : NULL;
+#line 10956 "Photo.c"
+}
+
+
+gboolean photo_prepare_for_reimport_master (Photo* self, PhotoReimportMasterState** reimport_state, GError** error) {
+ PhotoReimportMasterState* _vala_reimport_state = NULL;
+ gboolean result = FALSE;
+ GFile* file = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ BackingPhotoRow* backing = NULL;
+ GFile* _tmp4_ = NULL;
+ DetectedPhotoInformation* _tmp5_ = NULL;
+ BackingPhotoRow* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ DetectedPhotoInformation* _tmp13_ = NULL;
+ GdkColorspace _tmp14_ = 0;
+ PhotoRow* updated_row = NULL;
+ PhotoRow* _tmp22_ = NULL;
+ gchar** list = NULL;
+ gchar** _tmp27_ = NULL;
+ gint list_length1 = 0;
+ gint _list_size_ = 0;
+ PhotoRow* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ DetectedPhotoInformation* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ PhotoRow* _tmp34_ = NULL;
+ BackingPhotoRow* _tmp35_ = NULL;
+ Orientation _tmp36_ = 0;
+ BackingPhotoRow* _tmp37_ = NULL;
+ Orientation _tmp38_ = 0;
+ DetectedPhotoInformation* _tmp45_ = NULL;
+ PhotoMetadata* _tmp46_ = NULL;
+ PhotoRow* _tmp83_ = NULL;
+ BackingPhotoRow* _tmp84_ = NULL;
+ BackingPhotoRow* _tmp85_ = NULL;
+ PhotoRow* _tmp86_ = NULL;
+ DetectedPhotoInformation* _tmp87_ = NULL;
+ const gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ PhotoRow* _tmp90_ = NULL;
+ DetectedPhotoInformation* _tmp91_ = NULL;
+ const gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ PhotoRow* _tmp94_ = NULL;
+ DetectedPhotoInformation* _tmp95_ = NULL;
+ const gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ PhotoMetadata* metadata = NULL;
+ DetectedPhotoInformation* _tmp98_ = NULL;
+ PhotoMetadata* _tmp99_ = NULL;
+ PhotoRow* _tmp122_ = NULL;
+ PhotoMetadata* _tmp123_ = NULL;
+ gchar** _tmp124_ = NULL;
+ gint _tmp124__length1 = 0;
+ PhotoReimportMasterStateImpl* _tmp125_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1409 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 1410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_reimport_state);
+#line 1410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_reimport_state = NULL;
+#line 1412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_master_reader (self);
+#line 1412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp1_);
+#line 1412 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp3_;
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = file;
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_query_backing_photo_row (self, _tmp4_, PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL, &_tmp5_, &_inner_error_);
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp5_;
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = _tmp6_;
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1415 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 11057 "Photo.c"
+ }
+#line 1417 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = backing;
+#line 1417 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_ == NULL) {
+#line 11063 "Photo.c"
+ GFile* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 1418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = file;
+#line 1418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = g_file_get_path (_tmp8_);
+#line 1418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_;
+#line 1418 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:1418: Unable to retrieve photo state from %s for reimport", _tmp10_);
+#line 1418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp10_);
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (reimport_state) {
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ *reimport_state = _vala_reimport_state;
+#line 11089 "Photo.c"
+ } else {
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_reimport_state);
+#line 11093 "Photo.c"
+ }
+#line 1419 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 11097 "Photo.c"
+ }
+#line 1423 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = detected;
+#line 1423 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->colorspace;
+#line 1423 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_ != GDK_COLORSPACE_RGB) {
+#line 1423 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = TRUE;
+#line 11107 "Photo.c"
+ } else {
+ DetectedPhotoInformation* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 1424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = detected;
+#line 1424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->channels;
+#line 1424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp16_ < 3;
+#line 11117 "Photo.c"
+ }
+#line 1423 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 1423 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = TRUE;
+#line 11123 "Photo.c"
+ } else {
+ DetectedPhotoInformation* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 1425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = detected;
+#line 1425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_->bits_per_channel;
+#line 1425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp18_ != 8;
+#line 11133 "Photo.c"
+ }
+#line 1423 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 11137 "Photo.c"
+ GFile* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 1426 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = file;
+#line 1426 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = g_file_get_path (_tmp19_);
+#line 1426 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_;
+#line 1426 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:1426: Not re-importing %s: Unsupported color format", _tmp21_);
+#line 1426 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp21_);
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (reimport_state) {
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ *reimport_state = _vala_reimport_state;
+#line 11163 "Photo.c"
+ } else {
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_reimport_state);
+#line 11167 "Photo.c"
+ }
+#line 1428 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 11171 "Photo.c"
+ }
+#line 1432 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = photo_row_new ();
+#line 1432 "/home/jens/Source/shotwell/src/Photo.vala"
+ updated_row = _tmp22_;
+#line 11177 "Photo.c"
+ {
+ PhotoRow* _tmp23_ = NULL;
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = self->row;
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 11184 "Photo.c"
+ {
+ PhotoRow* _tmp24_ = NULL;
+ PhotoRow* _tmp25_ = NULL;
+#line 1434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = self->row;
+#line 1434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _photo_row_ref0 (_tmp24_);
+#line 1434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (updated_row);
+#line 1434 "/home/jens/Source/shotwell/src/Photo.vala"
+ updated_row = _tmp25_;
+#line 11196 "Photo.c"
+ }
+ __finally291:
+ {
+ PhotoRow* _tmp26_ = NULL;
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = self->row;
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 11205 "Photo.c"
+ }
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (updated_row);
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1433 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 11221 "Photo.c"
+ }
+ }
+#line 1438 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = g_new0 (gchar*, 0 + 1);
+#line 1438 "/home/jens/Source/shotwell/src/Photo.vala"
+ list = _tmp27_;
+#line 1438 "/home/jens/Source/shotwell/src/Photo.vala"
+ list_length1 = 0;
+#line 1438 "/home/jens/Source/shotwell/src/Photo.vala"
+ _list_size_ = list_length1;
+#line 1440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = updated_row;
+#line 1440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_->md5;
+#line 1440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = detected;
+#line 1440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_->md5;
+#line 1440 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_strcmp0 (_tmp29_, _tmp31_) != 0) {
+#line 11242 "Photo.c"
+ gchar** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ gchar* _tmp33_ = NULL;
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = list;
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32__length1 = list_length1;
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = g_strdup ("metadata:md5");
+#line 1441 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add254 (&list, &list_length1, &_list_size_, _tmp33_);
+#line 11254 "Photo.c"
+ }
+#line 1443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = updated_row;
+#line 1443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_->master;
+#line 1443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = _tmp35_->original_orientation;
+#line 1443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = backing;
+#line 1443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tmp37_->original_orientation;
+#line 1443 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp36_ != _tmp38_) {
+#line 11268 "Photo.c"
+ gchar** _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ gchar* _tmp40_ = NULL;
+ PhotoRow* _tmp41_ = NULL;
+ BackingPhotoRow* _tmp42_ = NULL;
+ BackingPhotoRow* _tmp43_ = NULL;
+ Orientation _tmp44_ = 0;
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = list;
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39__length1 = list_length1;
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = g_strdup ("image:orientation");
+#line 1444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add255 (&list, &list_length1, &_list_size_, _tmp40_);
+#line 1445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = updated_row;
+#line 1445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_->master;
+#line 1445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = backing;
+#line 1445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp43_->original_orientation;
+#line 1445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_->original_orientation = _tmp44_;
+#line 11294 "Photo.c"
+ }
+#line 1448 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = detected;
+#line 1448 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = _tmp45_->metadata;
+#line 1448 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp46_ != NULL) {
+#line 11302 "Photo.c"
+ MetadataDateTime* date_time = NULL;
+ DetectedPhotoInformation* _tmp47_ = NULL;
+ PhotoMetadata* _tmp48_ = NULL;
+ MetadataDateTime* _tmp49_ = NULL;
+ gboolean _tmp50_ = FALSE;
+ MetadataDateTime* _tmp51_ = NULL;
+ PhotoRow* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ DetectedPhotoInformation* _tmp60_ = NULL;
+ PhotoMetadata* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gboolean _tmp64_ = FALSE;
+ PhotoRow* _tmp67_ = NULL;
+ const gchar* _tmp68_ = NULL;
+ DetectedPhotoInformation* _tmp69_ = NULL;
+ PhotoMetadata* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gboolean _tmp73_ = FALSE;
+ PhotoRow* _tmp76_ = NULL;
+ Rating _tmp77_ = 0;
+ DetectedPhotoInformation* _tmp78_ = NULL;
+ PhotoMetadata* _tmp79_ = NULL;
+ Rating _tmp80_ = 0;
+#line 1449 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = detected;
+#line 1449 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp47_->metadata;
+#line 1449 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = photo_metadata_get_exposure_date_time (_tmp48_);
+#line 1449 "/home/jens/Source/shotwell/src/Photo.vala"
+ date_time = _tmp49_;
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = date_time;
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp51_ != NULL) {
+#line 11340 "Photo.c"
+ PhotoRow* _tmp52_ = NULL;
+ time_t _tmp53_ = 0;
+ MetadataDateTime* _tmp54_ = NULL;
+ time_t _tmp55_ = 0;
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = updated_row;
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp52_->exposure_time;
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = date_time;
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = metadata_date_time_get_timestamp (_tmp54_);
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = _tmp53_ != _tmp55_;
+#line 11355 "Photo.c"
+ } else {
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = FALSE;
+#line 11359 "Photo.c"
+ }
+#line 1450 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp50_) {
+#line 11363 "Photo.c"
+ gchar** _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ gchar* _tmp57_ = NULL;
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = list;
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56__length1 = list_length1;
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = g_strdup ("metadata:exposure-time");
+#line 1451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add256 (&list, &list_length1, &_list_size_, _tmp57_);
+#line 11375 "Photo.c"
+ }
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = updated_row;
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = _tmp58_->title;
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = detected;
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = _tmp60_->metadata;
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = _tmp62_;
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = g_strcmp0 (_tmp59_, _tmp63_) != 0;
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp63_);
+#line 1453 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp64_) {
+#line 11395 "Photo.c"
+ gchar** _tmp65_ = NULL;
+ gint _tmp65__length1 = 0;
+ gchar* _tmp66_ = NULL;
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = list;
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65__length1 = list_length1;
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = g_strdup ("metadata:name");
+#line 1454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add257 (&list, &list_length1, &_list_size_, _tmp66_);
+#line 11407 "Photo.c"
+ }
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = updated_row;
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = _tmp67_->comment;
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = detected;
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = _tmp69_->metadata;
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = media_metadata_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = _tmp71_;
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = g_strcmp0 (_tmp68_, _tmp72_) != 0;
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp72_);
+#line 1456 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp73_) {
+#line 11427 "Photo.c"
+ gchar** _tmp74_ = NULL;
+ gint _tmp74__length1 = 0;
+ gchar* _tmp75_ = NULL;
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = list;
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74__length1 = list_length1;
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = g_strdup ("metadata:comment");
+#line 1457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add258 (&list, &list_length1, &_list_size_, _tmp75_);
+#line 11439 "Photo.c"
+ }
+#line 1459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = updated_row;
+#line 1459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = _tmp76_->rating;
+#line 1459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = detected;
+#line 1459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = _tmp78_->metadata;
+#line 1459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = photo_metadata_get_rating (_tmp79_);
+#line 1459 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp77_ != _tmp80_) {
+#line 11453 "Photo.c"
+ gchar** _tmp81_ = NULL;
+ gint _tmp81__length1 = 0;
+ gchar* _tmp82_ = NULL;
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = list;
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81__length1 = list_length1;
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = g_strdup ("metadata:rating");
+#line 1460 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add259 (&list, &list_length1, &_list_size_, _tmp82_);
+#line 11465 "Photo.c"
+ }
+#line 1448 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 11469 "Photo.c"
+ }
+#line 1463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = updated_row;
+#line 1463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = backing;
+#line 1463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = _backing_photo_row_ref0 (_tmp84_);
+#line 1463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp83_->master);
+#line 1463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_->master = _tmp85_;
+#line 1464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = updated_row;
+#line 1464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = detected;
+#line 1464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = _tmp87_->md5;
+#line 1464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = g_strdup (_tmp88_);
+#line 1464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp86_->md5);
+#line 1464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_->md5 = _tmp89_;
+#line 1465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = updated_row;
+#line 1465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = detected;
+#line 1465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = _tmp91_->exif_md5;
+#line 1465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = g_strdup (_tmp92_);
+#line 1465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp90_->exif_md5);
+#line 1465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_->exif_md5 = _tmp93_;
+#line 1466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = updated_row;
+#line 1466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = detected;
+#line 1466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = _tmp95_->thumbnail_md5;
+#line 1466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = g_strdup (_tmp96_);
+#line 1466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp94_->thumbnail_md5);
+#line 1466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_->thumbnail_md5 = _tmp97_;
+#line 1468 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = NULL;
+#line 1469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = detected;
+#line 1469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp99_ = _tmp98_->metadata;
+#line 1469 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp99_ != NULL) {
+#line 11525 "Photo.c"
+ DetectedPhotoInformation* _tmp100_ = NULL;
+ PhotoMetadata* _tmp101_ = NULL;
+ PhotoMetadata* _tmp102_ = NULL;
+ MetadataDateTime* date_time = NULL;
+ DetectedPhotoInformation* _tmp103_ = NULL;
+ PhotoMetadata* _tmp104_ = NULL;
+ MetadataDateTime* _tmp105_ = NULL;
+ MetadataDateTime* _tmp106_ = NULL;
+ PhotoRow* _tmp110_ = NULL;
+ DetectedPhotoInformation* _tmp111_ = NULL;
+ PhotoMetadata* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ PhotoRow* _tmp114_ = NULL;
+ DetectedPhotoInformation* _tmp115_ = NULL;
+ PhotoMetadata* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+ PhotoRow* _tmp118_ = NULL;
+ DetectedPhotoInformation* _tmp119_ = NULL;
+ PhotoMetadata* _tmp120_ = NULL;
+ Rating _tmp121_ = 0;
+#line 1470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = detected;
+#line 1470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = _tmp100_->metadata;
+#line 1470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp102_ = _media_metadata_ref0 (_tmp101_);
+#line 1470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 1470 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp102_;
+#line 1472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103_ = detected;
+#line 1472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = _tmp103_->metadata;
+#line 1472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp105_ = photo_metadata_get_exposure_date_time (_tmp104_);
+#line 1472 "/home/jens/Source/shotwell/src/Photo.vala"
+ date_time = _tmp105_;
+#line 1473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = date_time;
+#line 1473 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp106_ != NULL) {
+#line 11568 "Photo.c"
+ PhotoRow* _tmp107_ = NULL;
+ MetadataDateTime* _tmp108_ = NULL;
+ time_t _tmp109_ = 0;
+#line 1474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp107_ = updated_row;
+#line 1474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp108_ = date_time;
+#line 1474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp109_ = metadata_date_time_get_timestamp (_tmp108_);
+#line 1474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp107_->exposure_time = _tmp109_;
+#line 11580 "Photo.c"
+ }
+#line 1476 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110_ = updated_row;
+#line 1476 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp111_ = detected;
+#line 1476 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp112_ = _tmp111_->metadata;
+#line 1476 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp113_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp112_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1476 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp110_->title);
+#line 1476 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110_->title = _tmp113_;
+#line 1477 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114_ = updated_row;
+#line 1477 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp115_ = detected;
+#line 1477 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp116_ = _tmp115_->metadata;
+#line 1477 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp117_ = media_metadata_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp116_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1477 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp114_->comment);
+#line 1477 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114_->comment = _tmp117_;
+#line 1478 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp118_ = updated_row;
+#line 1478 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp119_ = detected;
+#line 1478 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp120_ = _tmp119_->metadata;
+#line 1478 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp121_ = photo_metadata_get_rating (_tmp120_);
+#line 1478 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp118_->rating = _tmp121_;
+#line 1469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 11618 "Photo.c"
+ }
+#line 1481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp122_ = updated_row;
+#line 1481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp123_ = metadata;
+#line 1481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124_ = list;
+#line 1481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124__length1 = list_length1;
+#line 1481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp125_ = photo_reimport_master_state_impl_new (_tmp122_, _tmp123_, _tmp124_, _tmp124__length1);
+#line 1481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_reimport_state);
+#line 1481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_reimport_state = G_TYPE_CHECK_INSTANCE_CAST (_tmp125_, PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterState);
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_free), NULL);
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (updated_row);
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (reimport_state) {
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ *reimport_state = _vala_reimport_state;
+#line 11652 "Photo.c"
+ } else {
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_reimport_state);
+#line 11656 "Photo.c"
+ }
+#line 1483 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 11660 "Photo.c"
+}
+
+
+static void photo_real_apply_user_metadata_for_reimport (Photo* self, PhotoMetadata* metadata) {
+#line 1486 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_apply_user_metadata_for_reimport'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 1486 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 11669 "Photo.c"
+}
+
+
+void photo_apply_user_metadata_for_reimport (Photo* self, PhotoMetadata* metadata) {
+#line 1486 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1486 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->apply_user_metadata_for_reimport (self, metadata);
+#line 11678 "Photo.c"
+}
+
+
+static gpointer _photo_reimport_master_state_ref0 (gpointer self) {
+#line 1490 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? photo_reimport_master_state_ref (self) : NULL;
+#line 11685 "Photo.c"
+}
+
+
+static void _vala_array_add260 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 11696 "Photo.c"
+ }
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 11702 "Photo.c"
+}
+
+
+static void _vala_array_add261 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 11713 "Photo.c"
+ }
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 11719 "Photo.c"
+}
+
+
+void photo_finish_reimport_master (Photo* self, PhotoReimportMasterState* state, GError** error) {
+ PhotoReimportMasterStateImpl* reimport_state = NULL;
+ PhotoReimportMasterState* _tmp0_ = NULL;
+ PhotoReimportMasterStateImpl* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoTable* _tmp3_ = NULL;
+ PhotoRow* _tmp4_ = NULL;
+ PhotoMetadata* _tmp20_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ PhotoMetadata* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1489 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1489 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (PHOTO_IS_REIMPORT_MASTER_STATE (state));
+#line 1490 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = state;
+#line 1490 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _photo_reimport_master_state_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL, PhotoReimportMasterStateImpl));
+#line 1490 "/home/jens/Source/shotwell/src/Photo.vala"
+ reimport_state = _tmp1_;
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_table_get_instance ();
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = reimport_state->row;
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_reimport (_tmp3_, _tmp4_, &_inner_error_);
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp3_);
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 11768 "Photo.c"
+ } else {
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1492 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 11778 "Photo.c"
+ }
+ }
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 11787 "Photo.c"
+ {
+ BackingPhotoRow* original_master = NULL;
+ PhotoRow* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ BackingPhotoRow* _tmp8_ = NULL;
+ PhotoRow* _tmp9_ = NULL;
+ PhotoRow* _tmp10_ = NULL;
+ PhotoRow* _tmp11_ = NULL;
+ BackingPhotoRow* _tmp12_ = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ PhotoRow* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ PhotoRow* _tmp16_ = NULL;
+ BackingPhotoRow* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 1496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 1496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->master;
+#line 1496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _backing_photo_row_ref0 (_tmp7_);
+#line 1496 "/home/jens/Source/shotwell/src/Photo.vala"
+ original_master = _tmp8_;
+#line 1497 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = reimport_state->row;
+#line 1497 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _photo_row_ref0 (_tmp9_);
+#line 1497 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (self->row);
+#line 1497 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->row = _tmp10_;
+#line 1498 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 1498 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = original_master;
+#line 1498 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _backing_photo_row_ref0 (_tmp12_);
+#line 1498 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp11_->master);
+#line 1498 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_->master = _tmp13_;
+#line 1499 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 1499 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->master;
+#line 1499 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = reimport_state->row;
+#line 1499 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_->master;
+#line 1499 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_row_copy_from (_tmp15_, _tmp17_);
+#line 1500 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = reimport_state->metadata_only;
+#line 1500 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp18_) {
+#line 1501 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_internal_remove_all_transformations (self, FALSE);
+#line 11845 "Photo.c"
+ }
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (original_master);
+#line 11849 "Photo.c"
+ }
+ __finally292:
+ {
+ PhotoRow* _tmp19_ = NULL;
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 11858 "Photo.c"
+ }
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 11870 "Photo.c"
+ } else {
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1494 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 11880 "Photo.c"
+ }
+ }
+ }
+#line 1504 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = reimport_state->metadata;
+#line 1504 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp20_ != NULL) {
+#line 11888 "Photo.c"
+ PhotoMetadata* _tmp21_ = NULL;
+#line 1505 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = reimport_state->metadata;
+#line 1505 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_apply_user_metadata_for_reimport (self, _tmp21_);
+#line 11894 "Photo.c"
+ }
+#line 1507 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = reimport_state->metadata_only;
+#line 1507 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp22_) {
+#line 11900 "Photo.c"
+ gchar** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ gchar* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = reimport_state->alterations;
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23__length1 = reimport_state->alterations_length1;
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = g_strdup ("image:master");
+#line 1508 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add260 (&reimport_state->alterations, &reimport_state->alterations_length1, &reimport_state->_alterations_size_, _tmp24_);
+#line 1509 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = photo_is_master_baseline (self);
+#line 1509 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp25_) {
+#line 11917 "Photo.c"
+ gchar** _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gchar* _tmp27_ = NULL;
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = reimport_state->alterations;
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26__length1 = reimport_state->alterations_length1;
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = g_strdup ("image:baseline");
+#line 1510 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add261 (&reimport_state->alterations, &reimport_state->alterations_length1, &reimport_state->_alterations_size_, _tmp27_);
+#line 11929 "Photo.c"
+ }
+ }
+#line 1513 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = reimport_state->alterations;
+#line 1513 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28__length1 = reimport_state->alterations_length1;
+#line 1513 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp28__length1 > 0) {
+#line 11938 "Photo.c"
+ gchar** _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ Alteration* _tmp30_ = NULL;
+ Alteration* _tmp31_ = NULL;
+#line 1514 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = reimport_state->alterations;
+#line 1514 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29__length1 = reimport_state->alterations_length1;
+#line 1514 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = alteration_new_from_array (_tmp29_, _tmp29__length1);
+#line 1514 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_;
+#line 1514 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp31_);
+#line 1514 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp31_);
+#line 11955 "Photo.c"
+ }
+#line 1516 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = reimport_state->metadata;
+#line 1516 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_master_reimported (self, _tmp32_);
+#line 1518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = photo_is_master_baseline (self);
+#line 1518 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp33_) {
+#line 11965 "Photo.c"
+ PhotoMetadata* _tmp34_ = NULL;
+#line 1519 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = reimport_state->metadata;
+#line 1519 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_baseline_reimported (self, _tmp34_);
+#line 11971 "Photo.c"
+ }
+#line 1521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo_is_master_source (self);
+#line 1521 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp35_) {
+#line 11977 "Photo.c"
+ PhotoMetadata* _tmp36_ = NULL;
+#line 1522 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = reimport_state->metadata;
+#line 1522 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_source_reimported (self, _tmp36_);
+#line 11983 "Photo.c"
+ }
+#line 1489 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 11987 "Photo.c"
+}
+
+
+static gboolean photo_verify_file_for_reimport (Photo* self, GFile* file, BackingPhotoRow** backing, DetectedPhotoInformation** detected, GError** error) {
+ BackingPhotoRow* _vala_backing = NULL;
+ DetectedPhotoInformation* _vala_detected = NULL;
+ gboolean result = FALSE;
+ BackingPhotoRow* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ DetectedPhotoInformation* _tmp2_ = NULL;
+ BackingPhotoRow* _tmp3_ = NULL;
+ BackingPhotoRow* _tmp4_ = NULL;
+ BackingPhotoRow* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ DetectedPhotoInformation* _tmp8_ = NULL;
+ GdkColorspace _tmp9_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1526 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 1526 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file;
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_query_backing_photo_row (self, _tmp1_, PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5, &_tmp2_, &_inner_error_);
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_detected = _tmp2_;
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 12026 "Photo.c"
+ }
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp0_;
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_vala_backing);
+#line 1528 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_backing = _tmp4_;
+#line 1530 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _vala_backing;
+#line 1530 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_ == NULL) {
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp0_);
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (backing) {
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ *backing = _vala_backing;
+#line 12048 "Photo.c"
+ } else {
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_vala_backing);
+#line 12052 "Photo.c"
+ }
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (detected) {
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ *detected = _vala_detected;
+#line 12058 "Photo.c"
+ } else {
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 12062 "Photo.c"
+ }
+#line 1531 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12066 "Photo.c"
+ }
+#line 1535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _vala_detected;
+#line 1535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_->colorspace;
+#line 1535 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp9_ != GDK_COLORSPACE_RGB) {
+#line 1535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = TRUE;
+#line 12076 "Photo.c"
+ } else {
+ DetectedPhotoInformation* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+#line 1536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _vala_detected;
+#line 1536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_->channels;
+#line 1536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp11_ < 3;
+#line 12086 "Photo.c"
+ }
+#line 1535 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_) {
+#line 1535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = TRUE;
+#line 12092 "Photo.c"
+ } else {
+ DetectedPhotoInformation* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+#line 1537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _vala_detected;
+#line 1537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_->bits_per_channel;
+#line 1537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp13_ != 8;
+#line 12102 "Photo.c"
+ }
+#line 1535 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 12106 "Photo.c"
+ GFile* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 1538 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = file;
+#line 1538 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = g_file_get_path (_tmp14_);
+#line 1538 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 1538 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:1538: Not re-importing %s: Unsupported color format", _tmp16_);
+#line 1538 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp16_);
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp0_);
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (backing) {
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ *backing = _vala_backing;
+#line 12128 "Photo.c"
+ } else {
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_vala_backing);
+#line 12132 "Photo.c"
+ }
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (detected) {
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ *detected = _vala_detected;
+#line 12138 "Photo.c"
+ } else {
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 12142 "Photo.c"
+ }
+#line 1540 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12146 "Photo.c"
+ }
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp0_);
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (backing) {
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ *backing = _vala_backing;
+#line 12156 "Photo.c"
+ } else {
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_vala_backing);
+#line 12160 "Photo.c"
+ }
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (detected) {
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ *detected = _vala_detected;
+#line 12166 "Photo.c"
+ } else {
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (_vala_detected);
+#line 12170 "Photo.c"
+ }
+#line 1543 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12174 "Photo.c"
+}
+
+
+gboolean photo_prepare_for_reimport_editable (Photo* self, PhotoReimportEditableState** state, GError** error) {
+ PhotoReimportEditableState* _vala_state = NULL;
+ gboolean result = FALSE;
+ GFile* file = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ BackingPhotoRow* backing = NULL;
+ gboolean _tmp2_ = FALSE;
+ GFile* _tmp3_ = NULL;
+ BackingPhotoRow* _tmp4_ = NULL;
+ DetectedPhotoInformation* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ BackingPhotoRow* _tmp7_ = NULL;
+ DetectedPhotoInformation* _tmp8_ = NULL;
+ PhotoMetadata* _tmp9_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1547 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 1548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 1548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = NULL;
+#line 1550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_editable_file (self);
+#line 1550 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp0_;
+#line 1551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file;
+#line 1551 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 1552 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1552 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1552 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 1552 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 12218 "Photo.c"
+ } else {
+#line 1552 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 12222 "Photo.c"
+ }
+#line 1552 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12226 "Photo.c"
+ }
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file;
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_verify_file_for_reimport (self, _tmp3_, &_tmp4_, &_tmp5_, &_inner_error_);
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = _tmp4_;
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp5_;
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp6_;
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 12254 "Photo.c"
+ }
+#line 1556 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp2_) {
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 12270 "Photo.c"
+ } else {
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 12274 "Photo.c"
+ }
+#line 1557 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12278 "Photo.c"
+ }
+#line 1559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = backing;
+#line 1559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = detected;
+#line 1559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_->metadata;
+#line 1559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_reimport_editable_state_impl_new (_tmp7_, _tmp9_);
+#line 1559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 1559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableState);
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 12304 "Photo.c"
+ } else {
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 12308 "Photo.c"
+ }
+#line 1561 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12312 "Photo.c"
+}
+
+
+static gpointer _photo_reimport_editable_state_ref0 (gpointer self) {
+#line 1570 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? photo_reimport_editable_state_ref (self) : NULL;
+#line 12319 "Photo.c"
+}
+
+
+void photo_finish_reimport_editable (Photo* self, PhotoReimportEditableState* state, GError** error) {
+ BackingPhotoID editable_id = {0};
+ BackingPhotoID _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ PhotoReimportEditableStateImpl* reimport_state = NULL;
+ PhotoReimportEditableState* _tmp2_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp3_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ PhotoReimportEditableStateImpl* _tmp21_ = NULL;
+ PhotoMetadata* _tmp22_ = NULL;
+ gchar* list = NULL;
+ gchar* _tmp36_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ const gchar* _tmp41_ = NULL;
+ Alteration* _tmp42_ = NULL;
+ Alteration* _tmp43_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp44_ = NULL;
+ PhotoMetadata* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ gboolean _tmp49_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1565 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1565 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (PHOTO_IS_REIMPORT_EDITABLE_STATE (state));
+#line 1566 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_editable_id (self, &_tmp0_);
+#line 1566 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_id = _tmp0_;
+#line 1567 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = backing_photo_id_is_invalid (&editable_id);
+#line 1567 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 1568 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12360 "Photo.c"
+ }
+#line 1570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = state;
+#line 1570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _photo_reimport_editable_state_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL, PhotoReimportEditableStateImpl));
+#line 1570 "/home/jens/Source/shotwell/src/Photo.vala"
+ reimport_state = _tmp3_;
+#line 1572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = reimport_state;
+#line 1572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->metadata_only;
+#line 1572 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp5_) {
+#line 12374 "Photo.c"
+ BackingPhotoTable* _tmp6_ = NULL;
+ BackingPhotoTable* _tmp7_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp8_ = NULL;
+ BackingPhotoRow* _tmp9_ = NULL;
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = backing_photo_table_get_instance ();
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = reimport_state;
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_->backing_state;
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_update (_tmp7_, _tmp9_, &_inner_error_);
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp7_);
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (reimport_state);
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12401 "Photo.c"
+ } else {
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (reimport_state);
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1573 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12411 "Photo.c"
+ }
+ }
+ {
+ PhotoRow* _tmp10_ = NULL;
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->row;
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 12420 "Photo.c"
+ {
+ PhotoReimportEditableStateImpl* _tmp11_ = NULL;
+ BackingPhotoRow* _tmp12_ = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ Orientation _tmp16_ = 0;
+#line 1576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = reimport_state;
+#line 1576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->backing_state;
+#line 1576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _backing_photo_row_ref0 (_tmp12_);
+#line 1576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->priv->editable);
+#line 1576 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable = _tmp13_;
+#line 1577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = reimport_state;
+#line 1577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->backing_state;
+#line 1577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->original_orientation;
+#line 1577 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_orientation (self, _tmp16_);
+#line 1578 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_internal_remove_all_transformations (self, FALSE);
+#line 12448 "Photo.c"
+ }
+ __finally293:
+ {
+ PhotoRow* _tmp17_ = NULL;
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = self->row;
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 12457 "Photo.c"
+ }
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (reimport_state);
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12469 "Photo.c"
+ } else {
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (reimport_state);
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1575 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12479 "Photo.c"
+ }
+ }
+ }
+ } else {
+ PhotoReimportEditableStateImpl* _tmp18_ = NULL;
+ BackingPhotoRow* _tmp19_ = NULL;
+ Orientation _tmp20_ = 0;
+#line 1581 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = reimport_state;
+#line 1581 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->backing_state;
+#line 1581 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_->original_orientation;
+#line 1581 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_orientation (self, _tmp20_);
+#line 12495 "Photo.c"
+ }
+#line 1584 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = reimport_state;
+#line 1584 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_->metadata;
+#line 1584 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_ != NULL) {
+#line 12503 "Photo.c"
+ PhotoReimportEditableStateImpl* _tmp23_ = NULL;
+ PhotoMetadata* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp27_ = NULL;
+ PhotoMetadata* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ PhotoReimportEditableStateImpl* _tmp31_ = NULL;
+ PhotoMetadata* _tmp32_ = NULL;
+ Rating _tmp33_ = 0;
+ PhotoReimportEditableStateImpl* _tmp34_ = NULL;
+ PhotoMetadata* _tmp35_ = NULL;
+#line 1585 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = reimport_state;
+#line 1585 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_->metadata;
+#line 1585 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1585 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_;
+#line 1585 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp26_);
+#line 1585 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp26_);
+#line 1586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = reimport_state;
+#line 1586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_->metadata;
+#line 1586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = media_metadata_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 1586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp29_;
+#line 1586 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp30_);
+#line 1586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp30_);
+#line 1587 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = reimport_state;
+#line 1587 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_->metadata;
+#line 1587 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = photo_metadata_get_rating (_tmp32_);
+#line 1587 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp33_);
+#line 1588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = reimport_state;
+#line 1588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_->metadata;
+#line 1588 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_apply_user_metadata_for_reimport (self, _tmp35_);
+#line 12555 "Photo.c"
+ }
+#line 1591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = g_strdup ("metadata:name,image:orientation,metadata:rating,metadata:exposure-time");
+#line 1591 "/home/jens/Source/shotwell/src/Photo.vala"
+ list = _tmp36_;
+#line 1592 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = reimport_state;
+#line 1592 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tmp37_->metadata_only;
+#line 1592 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp38_) {
+#line 12567 "Photo.c"
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+#line 1593 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = list;
+#line 1593 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = g_strconcat (_tmp39_, "image:editable,image:baseline", NULL);
+#line 1593 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (list);
+#line 1593 "/home/jens/Source/shotwell/src/Photo.vala"
+ list = _tmp40_;
+#line 12578 "Photo.c"
+ }
+#line 1595 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = list;
+#line 1595 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = alteration_new_from_list (_tmp41_);
+#line 1595 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _tmp42_;
+#line 1595 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp43_);
+#line 1595 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp43_);
+#line 1597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = reimport_state;
+#line 1597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp44_->metadata;
+#line 1597 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_editable_reimported (self, _tmp45_);
+#line 1599 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = photo_is_editable_baseline (self);
+#line 1599 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp46_) {
+#line 12600 "Photo.c"
+ PhotoReimportEditableStateImpl* _tmp47_ = NULL;
+ PhotoMetadata* _tmp48_ = NULL;
+#line 1600 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = reimport_state;
+#line 1600 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp47_->metadata;
+#line 1600 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_baseline_reimported (self, _tmp48_);
+#line 12609 "Photo.c"
+ }
+#line 1602 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = photo_is_editable_source (self);
+#line 1602 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp49_) {
+#line 12615 "Photo.c"
+ PhotoReimportEditableStateImpl* _tmp50_ = NULL;
+ PhotoMetadata* _tmp51_ = NULL;
+#line 1603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = reimport_state;
+#line 1603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = _tmp50_->metadata;
+#line 1603 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_source_reimported (self, _tmp51_);
+#line 12624 "Photo.c"
+ }
+#line 1565 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (list);
+#line 1565 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (reimport_state);
+#line 12630 "Photo.c"
+}
+
+
+static gpointer _photo_reimport_raw_development_state_ref0 (gpointer self) {
+#line 1625 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? photo_reimport_raw_development_state_ref (self) : NULL;
+#line 12637 "Photo.c"
+}
+
+
+gboolean photo_prepare_for_reimport_raw_development (Photo* self, PhotoReimportRawDevelopmentState** state, GError** error) {
+ PhotoReimportRawDevelopmentState* _vala_state = NULL;
+ gboolean result = FALSE;
+ GeeCollection* files = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ PhotoReimportRawDevelopmentStateImpl* reimport_state = NULL;
+ PhotoReimportRawDevelopmentStateImpl* _tmp2_ = NULL;
+ PhotoReimportRawDevelopmentStateImpl* _tmp18_ = NULL;
+ PhotoReimportRawDevelopmentState* _tmp19_ = NULL;
+ PhotoReimportRawDevelopmentStateImpl* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1607 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 1608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (_vala_state);
+#line 1608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = NULL;
+#line 1610 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_raw_developer_files (self);
+#line 1610 "/home/jens/Source/shotwell/src/Photo.vala"
+ files = _tmp0_;
+#line 1611 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = files;
+#line 1611 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 1612 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1612 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (files);
+#line 1612 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 1612 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 12676 "Photo.c"
+ } else {
+#line 1612 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (_vala_state);
+#line 12680 "Photo.c"
+ }
+#line 1612 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12684 "Photo.c"
+ }
+#line 1614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_reimport_raw_development_state_impl_new ();
+#line 1614 "/home/jens/Source/shotwell/src/Photo.vala"
+ reimport_state = _tmp2_;
+#line 12690 "Photo.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = files;
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _file_it = _tmp4_;
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 12703 "Photo.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GFile* file = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ BackingPhotoRow* backing = NULL;
+ gboolean _tmp9_ = FALSE;
+ GFile* _tmp10_ = NULL;
+ BackingPhotoRow* _tmp11_ = NULL;
+ DetectedPhotoInformation* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ PhotoReimportRawDevelopmentStateImpl* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ DetectedPhotoInformation* _tmp16_ = NULL;
+ PhotoMetadata* _tmp17_ = NULL;
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _file_it;
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp6_) {
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 12728 "Photo.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _file_it;
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = (GFile*) _tmp8_;
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = file;
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_verify_file_for_reimport (self, _tmp10_, &_tmp11_, &_tmp12_, &_inner_error_);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = _tmp11_;
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp12_;
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp13_;
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_file_it);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (reimport_state);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (files);
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 12768 "Photo.c"
+ }
+#line 1619 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp9_) {
+#line 1620 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1620 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1620 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 1620 "/home/jens/Source/shotwell/src/Photo.vala"
+ continue;
+#line 12780 "Photo.c"
+ }
+#line 1622 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = reimport_state;
+#line 1622 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = backing;
+#line 1622 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = detected;
+#line 1622 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_->metadata;
+#line 1622 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_impl_add (_tmp14_, _tmp15_, _tmp17_);
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 12798 "Photo.c"
+ }
+#line 1616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_file_it);
+#line 12802 "Photo.c"
+ }
+#line 1625 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = reimport_state;
+#line 1625 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _photo_reimport_raw_development_state_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentState));
+#line 1625 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (_vala_state);
+#line 1625 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = _tmp19_;
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = reimport_state;
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_reimport_raw_development_state_impl_get_size (_tmp20_);
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp21_ > 0;
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (reimport_state);
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (files);
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 12826 "Photo.c"
+ } else {
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (_vala_state);
+#line 12830 "Photo.c"
+ }
+#line 1626 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 12834 "Photo.c"
+}
+
+
+void photo_finish_reimport_raw_development (Photo* self, PhotoReimportRawDevelopmentState* state, GError** error) {
+ PhotoFileFormat _tmp0_ = 0;
+ PhotoReimportRawDevelopmentStateImpl* reimport_state = NULL;
+ PhotoReimportRawDevelopmentState* _tmp1_ = NULL;
+ PhotoReimportRawDevelopmentStateImpl* _tmp2_ = NULL;
+ gchar* list = NULL;
+ gchar* _tmp32_ = NULL;
+ PhotoReimportRawDevelopmentStateImpl* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ const gchar* _tmp37_ = NULL;
+ Alteration* _tmp38_ = NULL;
+ Alteration* _tmp39_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1630 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1630 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE (state));
+#line 1631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_master_file_format (self);
+#line 1631 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != PHOTO_FILE_FORMAT_RAW) {
+#line 1632 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12861 "Photo.c"
+ }
+#line 1634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = state;
+#line 1634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _photo_reimport_raw_development_state_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL, PhotoReimportRawDevelopmentStateImpl));
+#line 1634 "/home/jens/Source/shotwell/src/Photo.vala"
+ reimport_state = _tmp2_;
+#line 12869 "Photo.c"
+ {
+ GeeIterator* _dev_it = NULL;
+ PhotoReimportRawDevelopmentStateImpl* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = reimport_state;
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->list;
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _dev_it = _tmp5_;
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 12885 "Photo.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PhotoReimportRawDevelopmentStateImplDevToReimport* dev = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ PhotoReimportRawDevelopmentStateImpl* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _dev_it;
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp7_) {
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 12901 "Photo.c"
+ }
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _dev_it;
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ dev = (PhotoReimportRawDevelopmentStateImplDevToReimport*) _tmp9_;
+#line 1637 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = reimport_state;
+#line 1637 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_->metadata_only;
+#line 1637 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp11_) {
+#line 12915 "Photo.c"
+ BackingPhotoTable* _tmp12_ = NULL;
+ BackingPhotoTable* _tmp13_ = NULL;
+ PhotoReimportRawDevelopmentStateImplDevToReimport* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = backing_photo_table_get_instance ();
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = dev;
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->backing;
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_update (_tmp13_, _tmp15_, &_inner_error_);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp13_);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_impl_dev_to_reimport_unref0 (dev);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_dev_it);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (reimport_state);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12946 "Photo.c"
+ } else {
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_impl_dev_to_reimport_unref0 (dev);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_dev_it);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (reimport_state);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1638 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 12960 "Photo.c"
+ }
+ }
+ {
+ PhotoRow* _tmp16_ = NULL;
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->row;
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 12969 "Photo.c"
+ {
+ gint _tmp17_ = 0;
+ RawDeveloper* _tmp18_ = NULL;
+#line 1642 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = raw_developer_as_array (&_tmp17_);
+#line 12975 "Photo.c"
+ {
+ RawDeveloper* d_collection = NULL;
+ gint d_collection_length1 = 0;
+ gint _d_collection_size_ = 0;
+ gint d_it = 0;
+#line 1642 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection = _tmp18_;
+#line 1642 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection_length1 = _tmp17_;
+#line 1642 "/home/jens/Source/shotwell/src/Photo.vala"
+ for (d_it = 0; d_it < _tmp17_; d_it = d_it + 1) {
+#line 12987 "Photo.c"
+ RawDeveloper d = 0;
+#line 1642 "/home/jens/Source/shotwell/src/Photo.vala"
+ d = d_collection[d_it];
+#line 12991 "Photo.c"
+ {
+ BackingPhotoID id = {0};
+ PhotoRow* _tmp19_ = NULL;
+ BackingPhotoID* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ RawDeveloper _tmp21_ = 0;
+ BackingPhotoID _tmp22_ = {0};
+ BackingPhotoID _tmp23_ = {0};
+ gint64 _tmp24_ = 0LL;
+#line 1643 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 1643 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_->development_ids;
+#line 1643 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20__length1 = _tmp19_->development_ids_length1;
+#line 1643 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = d;
+#line 1643 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp20_[_tmp21_];
+#line 1643 "/home/jens/Source/shotwell/src/Photo.vala"
+ id = _tmp22_;
+#line 1644 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = id;
+#line 1644 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_.id;
+#line 1644 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp24_ != BACKING_PHOTO_ID_INVALID) {
+#line 13019 "Photo.c"
+ BackingPhotoRow* bpr = NULL;
+ BackingPhotoID _tmp25_ = {0};
+ BackingPhotoRow* _tmp26_ = NULL;
+ BackingPhotoRow* _tmp27_ = NULL;
+#line 1645 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = id;
+#line 1645 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = photo_get_backing_row (self, &_tmp25_);
+#line 1645 "/home/jens/Source/shotwell/src/Photo.vala"
+ bpr = _tmp26_;
+#line 1646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = bpr;
+#line 1646 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp27_ != NULL) {
+#line 13034 "Photo.c"
+ GeeHashMap* _tmp28_ = NULL;
+ RawDeveloper _tmp29_ = 0;
+ BackingPhotoRow* _tmp30_ = NULL;
+#line 1647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = self->priv->developments;
+#line 1647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = d;
+#line 1647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = bpr;
+#line 1647 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp29_), _tmp30_);
+#line 13046 "Photo.c"
+ }
+#line 1644 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (bpr);
+#line 13050 "Photo.c"
+ }
+ }
+ }
+#line 1642 "/home/jens/Source/shotwell/src/Photo.vala"
+ d_collection = (g_free (d_collection), NULL);
+#line 13056 "Photo.c"
+ }
+ }
+ __finally294:
+ {
+ PhotoRow* _tmp31_ = NULL;
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = self->row;
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 13066 "Photo.c"
+ }
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_impl_dev_to_reimport_unref0 (dev);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_dev_it);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (reimport_state);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13082 "Photo.c"
+ } else {
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_impl_dev_to_reimport_unref0 (dev);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_dev_it);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (reimport_state);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1640 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13096 "Photo.c"
+ }
+ }
+ }
+ }
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_impl_dev_to_reimport_unref0 (dev);
+#line 13103 "Photo.c"
+ }
+#line 1636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_dev_it);
+#line 13107 "Photo.c"
+ }
+#line 1654 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = g_strdup ("metadata:name,image:orientation,metadata:rating,metadata:exposure-time");
+#line 1654 "/home/jens/Source/shotwell/src/Photo.vala"
+ list = _tmp32_;
+#line 1655 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = reimport_state;
+#line 1655 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_->metadata_only;
+#line 1655 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp34_) {
+#line 13119 "Photo.c"
+ const gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+#line 1656 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = list;
+#line 1656 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = g_strconcat (_tmp35_, "image:editable,image:baseline", NULL);
+#line 1656 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (list);
+#line 1656 "/home/jens/Source/shotwell/src/Photo.vala"
+ list = _tmp36_;
+#line 13130 "Photo.c"
+ }
+#line 1658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = list;
+#line 1658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = alteration_new_from_list (_tmp37_);
+#line 1658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tmp38_;
+#line 1658 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp39_);
+#line 1658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp39_);
+#line 1660 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_raw_development_modified (self);
+#line 1630 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (list);
+#line 1630 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_unref0 (reimport_state);
+#line 13148 "Photo.c"
+}
+
+
+static gchar* photo_real_get_typename (DataSource* base) {
+ Photo * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1663 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = g_strdup (PHOTO_TYPENAME);
+#line 1664 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 1664 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13164 "Photo.c"
+}
+
+
+static gint64 photo_real_get_instance_id (DataSource* base) {
+ Photo * self;
+ gint64 result = 0LL;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+#line 1667 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1668 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp0_);
+#line 1668 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_.id;
+#line 1668 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 1668 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13183 "Photo.c"
+}
+
+
+static gchar* photo_real_get_source_id (DataSource* base) {
+ Photo * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 1671 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = data_source_get_typename (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = data_source_get_instance_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = g_strdup_printf ("%s%016" G_GINT64_MODIFIER "x", _tmp1_, _tmp2_);
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp1_);
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 1675 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13213 "Photo.c"
+}
+
+
+void photo_set_master_timestamp (Photo* self, GFileInfo* info) {
+ GTimeVal modification = {0};
+ GFileInfo* _tmp0_ = NULL;
+ GTimeVal _tmp1_ = {0};
+ gboolean _tmp21_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1679 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1679 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 1680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = info;
+#line 1680 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_info_get_modification_time (_tmp0_, &_tmp1_);
+#line 1680 "/home/jens/Source/shotwell/src/Photo.vala"
+ modification = _tmp1_;
+#line 13233 "Photo.c"
+ {
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 13241 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+ BackingPhotoRow* _tmp4_ = NULL;
+ time_t _tmp5_ = 0;
+ GTimeVal _tmp6_ = {0};
+ glong _tmp7_ = 0L;
+ PhotoTable* _tmp9_ = NULL;
+ PhotoTable* _tmp10_ = NULL;
+ PhotoRow* _tmp11_ = NULL;
+ PhotoID _tmp12_ = {0};
+ GTimeVal _tmp13_ = {0};
+ glong _tmp14_ = 0L;
+ PhotoRow* _tmp15_ = NULL;
+ BackingPhotoRow* _tmp16_ = NULL;
+ GTimeVal _tmp17_ = {0};
+ glong _tmp18_ = 0L;
+#line 1684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 1684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->master;
+#line 1684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->timestamp;
+#line 1684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = modification;
+#line 1684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_.tv_sec;
+#line 1684 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_ == ((time_t) _tmp7_)) {
+#line 13270 "Photo.c"
+ {
+ PhotoRow* _tmp8_ = NULL;
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->row;
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 13277 "Photo.c"
+ }
+#line 1685 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13281 "Photo.c"
+ }
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_table_get_instance ();
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_;
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->photo_id;
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = modification;
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_.tv_sec;
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_update_timestamp (_tmp10_, &_tmp12_, (time_t) _tmp14_, &_inner_error_);
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp10_);
+#line 1687 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 13301 "Photo.c"
+ goto __finally296;
+ }
+#line 1688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->row;
+#line 1688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->master;
+#line 1688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = modification;
+#line 1688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_.tv_sec;
+#line 1688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_->timestamp = (time_t) _tmp18_;
+#line 13314 "Photo.c"
+ }
+ __finally296:
+ {
+ PhotoRow* _tmp19_ = NULL;
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 13323 "Photo.c"
+ }
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 13329 "Photo.c"
+ goto __catch295_database_error;
+ }
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1683 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13338 "Photo.c"
+ }
+ }
+ }
+ goto __finally295;
+ __catch295_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp20_ = NULL;
+#line 1682 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1682 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1691 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = err;
+#line 1691 "/home/jens/Source/shotwell/src/Photo.vala"
+ app_window_database_error (_tmp20_);
+#line 1693 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 1693 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13359 "Photo.c"
+ }
+ __finally295:
+#line 1682 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1682 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1682 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1682 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13370 "Photo.c"
+ }
+#line 1696 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_is_master_baseline (self);
+#line 1696 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp21_) {
+#line 13376 "Photo.c"
+ Alteration* _tmp22_ = NULL;
+ Alteration* _tmp23_ = NULL;
+#line 1697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = alteration_new_from_list ("metadata:master-timestamp,metadata:baseline-timestamp");
+#line 1697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_;
+#line 1697 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp23_);
+#line 1697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp23_);
+#line 13387 "Photo.c"
+ } else {
+ Alteration* _tmp24_ = NULL;
+ Alteration* _tmp25_ = NULL;
+#line 1699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = alteration_new ("metadata", "master-timestamp");
+#line 1699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_;
+#line 1699 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp25_);
+#line 1699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp25_);
+#line 13399 "Photo.c"
+ }
+}
+
+
+void photo_update_editable_modification_time (Photo* self, GFileInfo* info, GError** error) {
+ GTimeVal modification = {0};
+ GFileInfo* _tmp0_ = NULL;
+ GTimeVal _tmp1_ = {0};
+ gboolean altered = FALSE;
+ gboolean _tmp20_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1703 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1703 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 1704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = info;
+#line 1704 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_info_get_modification_time (_tmp0_, &_tmp1_);
+#line 1704 "/home/jens/Source/shotwell/src/Photo.vala"
+ modification = _tmp1_;
+#line 1706 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered = FALSE;
+#line 13423 "Photo.c"
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 13430 "Photo.c"
+ {
+ gboolean _tmp3_ = FALSE;
+ PhotoRow* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = backing_photo_id_is_valid (&_tmp4_->editable_id);
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 13441 "Photo.c"
+ BackingPhotoRow* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+ GTimeVal _tmp8_ = {0};
+ glong _tmp9_ = 0L;
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->editable;
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->timestamp;
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = modification;
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_.tv_sec;
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp7_ != ((time_t) _tmp9_);
+#line 13456 "Photo.c"
+ } else {
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = FALSE;
+#line 13460 "Photo.c"
+ }
+#line 1708 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_) {
+#line 13464 "Photo.c"
+ BackingPhotoTable* _tmp10_ = NULL;
+ BackingPhotoTable* _tmp11_ = NULL;
+ PhotoRow* _tmp12_ = NULL;
+ BackingPhotoID _tmp13_ = {0};
+ GTimeVal _tmp14_ = {0};
+ glong _tmp15_ = 0L;
+ BackingPhotoRow* _tmp16_ = NULL;
+ GTimeVal _tmp17_ = {0};
+ glong _tmp18_ = 0L;
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = backing_photo_table_get_instance ();
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->row;
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_->editable_id;
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = modification;
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_.tv_sec;
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_update_timestamp (_tmp11_, &_tmp13_, (time_t) _tmp15_, &_inner_error_);
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp11_);
+#line 1709 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 13492 "Photo.c"
+ goto __finally297;
+ }
+#line 1711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->priv->editable;
+#line 1711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = modification;
+#line 1711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_.tv_sec;
+#line 1711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_->timestamp = (time_t) _tmp18_;
+#line 1712 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered = TRUE;
+#line 13505 "Photo.c"
+ }
+ }
+ __finally297:
+ {
+ PhotoRow* _tmp19_ = NULL;
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 13515 "Photo.c"
+ }
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13525 "Photo.c"
+ } else {
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1707 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13533 "Photo.c"
+ }
+ }
+ }
+#line 1716 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = altered;
+#line 1716 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp20_) {
+#line 13541 "Photo.c"
+ Alteration* _tmp21_ = NULL;
+ Alteration* _tmp22_ = NULL;
+#line 1717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = alteration_new_from_list ("metadata:editable-timestamp,metadata:baseline-timestamp");
+#line 1717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_;
+#line 1717 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp22_);
+#line 1717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp22_);
+#line 13552 "Photo.c"
+ }
+}
+
+
+void photo_update_many_editable_timestamps (GeeMap* map, GError** error) {
+ GError * _inner_error_ = NULL;
+#line 1721 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 1723 "/home/jens/Source/shotwell/src/Photo.vala"
+ database_table_begin_transaction ();
+#line 13563 "Photo.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = map;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_it = _tmp5_;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 13590 "Photo.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Photo* photo = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ GeeMap* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ GFileInfo* _tmp14_ = NULL;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _photo_it;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp7_) {
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 13609 "Photo.c"
+ }
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _photo_it;
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = (Photo*) _tmp9_;
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo;
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = map;
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo;
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = gee_map_get (_tmp11_, _tmp12_);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = (GFileInfo*) _tmp13_;
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_update_editable_modification_time (_tmp10_, _tmp14_, &_inner_error_);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp14_);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13643 "Photo.c"
+ } else {
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1725 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13655 "Photo.c"
+ }
+ }
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 13660 "Photo.c"
+ }
+#line 1724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 13664 "Photo.c"
+ }
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ database_table_commit_transaction (&_inner_error_);
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13676 "Photo.c"
+ } else {
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1726 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 13684 "Photo.c"
+ }
+ }
+}
+
+
+static PhotoFileFormat photo_real_get_preferred_thumbnail_format (ThumbnailSource* base) {
+ Photo * self;
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _tmp0_ = 0;
+ PhotoFileFormat _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 1729 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1730 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_file_format (self);
+#line 1730 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_format_can_write_image (_tmp1_);
+#line 1730 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 13704 "Photo.c"
+ PhotoFileFormat _tmp3_ = 0;
+#line 1730 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_file_format (self);
+#line 1730 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 13710 "Photo.c"
+ } else {
+ PhotoFileFormat _tmp4_ = 0;
+#line 1731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_file_format_get_system_default_format ();
+#line 1731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp4_;
+#line 13717 "Photo.c"
+ }
+#line 1730 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 1730 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13723 "Photo.c"
+}
+
+
+static GdkPixbuf* photo_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ Photo * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ Scaling _tmp2_ = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1734 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = scale;
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_for_best_fit (_tmp1_, TRUE, &_tmp2_);
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp2_, &_inner_error_);
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 13752 "Photo.c"
+ }
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp0_;
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp0_);
+#line 1735 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13764 "Photo.c"
+}
+
+
+gboolean photo_is_file_image (GFile* file) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1738 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 1742 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file;
+#line 1742 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_format_is_file_supported (_tmp1_);
+#line 1742 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 1743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = TRUE;
+#line 13783 "Photo.c"
+ } else {
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 1743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file;
+#line 1743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = g_file_get_basename (_tmp3_);
+#line 1743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 1743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_is_extension_found (_tmp5_, PHOTO_IMAGE_EXTENSIONS, G_N_ELEMENTS (PHOTO_IMAGE_EXTENSIONS));
+#line 1743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp6_;
+#line 1743 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp5_);
+#line 13801 "Photo.c"
+ }
+#line 1742 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 1742 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13807 "Photo.c"
+}
+
+
+static gboolean photo_is_extension_found (const gchar* basename, gchar** extensions, int extensions_length1) {
+ gboolean result = FALSE;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 1746 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (basename != NULL, FALSE);
+#line 1748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = basename;
+#line 1748 "/home/jens/Source/shotwell/src/Photo.vala"
+ disassemble_filename (_tmp0_, &_tmp1_, &_tmp2_);
+#line 1748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 1748 "/home/jens/Source/shotwell/src/Photo.vala"
+ name = _tmp1_;
+#line 1748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 1748 "/home/jens/Source/shotwell/src/Photo.vala"
+ ext = _tmp2_;
+#line 1749 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = ext;
+#line 1749 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ == NULL) {
+#line 1750 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 1750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 1750 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13849 "Photo.c"
+ }
+#line 1753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = ext;
+#line 1753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = g_utf8_strdown (_tmp4_, (gssize) -1);
+#line 1753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 1753 "/home/jens/Source/shotwell/src/Photo.vala"
+ ext = _tmp5_;
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = extensions;
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6__length1 = extensions_length1;
+#line 13863 "Photo.c"
+ {
+ gchar** extension_collection = NULL;
+ gint extension_collection_length1 = 0;
+ gint _extension_collection_size_ = 0;
+ gint extension_it = 0;
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ extension_collection = _tmp6_;
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ extension_collection_length1 = _tmp6__length1;
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ for (extension_it = 0; extension_it < _tmp6__length1; extension_it = extension_it + 1) {
+#line 13875 "Photo.c"
+ gchar* _tmp7_ = NULL;
+ gchar* extension = NULL;
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = g_strdup (extension_collection[extension_it]);
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ extension = _tmp7_;
+#line 13882 "Photo.c"
+ {
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 1757 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = ext;
+#line 1757 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = extension;
+#line 1757 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_strcmp0 (_tmp8_, _tmp9_) == 0) {
+#line 1758 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 1758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (extension);
+#line 1758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 1758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 1758 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13902 "Photo.c"
+ }
+#line 1756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (extension);
+#line 13906 "Photo.c"
+ }
+ }
+ }
+#line 1761 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 1761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 1761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 1761 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13918 "Photo.c"
+}
+
+
+gboolean photo_is_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format) {
+ gboolean result = FALSE;
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ PhotoFileFormat _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 1767 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), FALSE);
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = file;
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = thumbnail_md5;
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = full_md5;
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = file_format;
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_table_has_duplicate (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp1_);
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp7_;
+#line 1770 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 13956 "Photo.c"
+}
+
+
+PhotoID* photo_get_duplicate_ids (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, int* result_length1) {
+ PhotoID* result = NULL;
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ PhotoFileFormat _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ PhotoID* _tmp7_ = NULL;
+ PhotoID* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ PhotoID* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+#line 1776 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = file;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = thumbnail_md5;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = full_md5;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = file_format;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_table_get_duplicate_ids (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_, &_tmp6_);
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8__length1 = _tmp6_;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp1_);
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9__length1 = _tmp8__length1;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (result_length1) {
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result_length1 = _tmp9__length1;
+#line 14004 "Photo.c"
+ }
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp9_;
+#line 1779 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 14010 "Photo.c"
+}
+
+
+gint64 photo_get_photo_key (DataSource* source) {
+ gint64 result = 0LL;
+ DataSource* _tmp0_ = NULL;
+ PhotoID _tmp1_ = {0};
+ gint64 _tmp2_ = 0LL;
+#line 1786 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), 0LL);
+#line 1787 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = source;
+#line 1787 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_PHOTO, Photo), &_tmp1_);
+#line 1787 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_.id;
+#line 1787 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 1787 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 14031 "Photo.c"
+}
+
+
+static GFile* photo_real_get_file (MediaSource* base) {
+ Photo * self;
+ GFile* result = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 1805 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1806 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_source_reader (self);
+#line 1806 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1806 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1806 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1806 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp1_);
+#line 1806 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 1806 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 14058 "Photo.c"
+}
+
+
+static void _vala_array_add262 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 14069 "Photo.c"
+ }
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 14075 "Photo.c"
+}
+
+
+static void _vala_array_add263 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 14086 "Photo.c"
+ }
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 14092 "Photo.c"
+}
+
+
+static void _vala_array_add264 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 14103 "Photo.c"
+ }
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 14109 "Photo.c"
+}
+
+
+static void _vala_array_add265 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 14120 "Photo.c"
+ }
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 14126 "Photo.c"
+}
+
+
+void photo_set_master_file (Photo* self, GFile* file) {
+ gchar* filepath = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean altered = FALSE;
+ gboolean is_baseline = FALSE;
+ gboolean is_source = FALSE;
+ gboolean name_changed = FALSE;
+ GFile* old_file = NULL;
+ gboolean _tmp41_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1811 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1811 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 1812 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 1812 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 1812 "/home/jens/Source/shotwell/src/Photo.vala"
+ filepath = _tmp1_;
+#line 1814 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered = FALSE;
+#line 1815 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_baseline = FALSE;
+#line 1816 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_source = FALSE;
+#line 1817 "/home/jens/Source/shotwell/src/Photo.vala"
+ name_changed = FALSE;
+#line 1818 "/home/jens/Source/shotwell/src/Photo.vala"
+ old_file = NULL;
+#line 14161 "Photo.c"
+ {
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 14169 "Photo.c"
+ {
+ {
+ PhotoBackingReaders* _tmp3_ = NULL;
+#line 1821 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 1821 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 14177 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 1822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 1822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->master;
+#line 1822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1822 "/home/jens/Source/shotwell/src/Photo.vala"
+ old_file = _tmp6_;
+#line 1823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = file;
+#line 1823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = old_file;
+#line 1823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = g_file_equal (_tmp7_, _tmp8_);
+#line 1823 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp9_) {
+#line 14203 "Photo.c"
+ PhotoTable* _tmp10_ = NULL;
+ PhotoTable* _tmp11_ = NULL;
+ PhotoID _tmp12_ = {0};
+ const gchar* _tmp13_ = NULL;
+ PhotoRow* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ PhotoBackingReaders* _tmp20_ = NULL;
+ PhotoRow* _tmp21_ = NULL;
+ BackingPhotoRow* _tmp22_ = NULL;
+ PhotoFileFormat _tmp23_ = 0;
+ const gchar* _tmp24_ = NULL;
+ PhotoFileReader* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ PhotoRow* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 1824 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_table_get_instance ();
+#line 1824 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 1824 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp12_);
+#line 1824 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = filepath;
+#line 1824 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_set_filepath (_tmp11_, &_tmp12_, _tmp13_, &_inner_error_);
+#line 1824 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp11_);
+#line 1824 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 14240 "Photo.c"
+ goto __finally300;
+ }
+#line 1826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 1826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->master;
+#line 1826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = filepath;
+#line 1826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 1826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp15_->filepath);
+#line 1826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_->filepath = _tmp17_;
+#line 1827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = file;
+#line 1827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = g_file_get_basename (_tmp18_);
+#line 1827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->priv->file_title);
+#line 1827 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->file_title = _tmp19_;
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = self->priv->readers;
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = self->row;
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_->master;
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_->file_format;
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = filepath;
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = photo_file_format_create_reader (_tmp23_, _tmp24_);
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp20_->master);
+#line 1828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_->master = _tmp25_;
+#line 1830 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered = TRUE;
+#line 1831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = photo_is_master_baseline (self);
+#line 1831 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_baseline = _tmp26_;
+#line 1832 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = photo_is_master_source (self);
+#line 1832 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_source = _tmp27_;
+#line 1833 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = self->row;
+#line 1833 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp29_->title;
+#line 1833 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = is_string_empty (_tmp30_);
+#line 1833 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp31_) {
+#line 14297 "Photo.c"
+ GFile* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = old_file;
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = g_file_get_basename (_tmp32_);
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_;
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = file;
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = g_file_get_basename (_tmp35_);
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_;
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = g_strcmp0 (_tmp34_, _tmp37_) != 0;
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp37_);
+#line 1834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp34_);
+#line 14322 "Photo.c"
+ } else {
+#line 1833 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = FALSE;
+#line 14326 "Photo.c"
+ }
+#line 1833 "/home/jens/Source/shotwell/src/Photo.vala"
+ name_changed = _tmp28_;
+#line 14330 "Photo.c"
+ }
+ }
+ __finally300:
+ {
+ PhotoBackingReaders* _tmp38_ = NULL;
+#line 1821 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = self->priv->readers;
+#line 1821 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 14340 "Photo.c"
+ }
+#line 1821 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 14344 "Photo.c"
+ goto __finally299;
+ }
+ }
+ }
+ __finally299:
+ {
+ PhotoRow* _tmp39_ = NULL;
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = self->row;
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 14356 "Photo.c"
+ }
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 14362 "Photo.c"
+ goto __catch298_database_error;
+ }
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (filepath);
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1820 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 14375 "Photo.c"
+ }
+ }
+ }
+ goto __finally298;
+ __catch298_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp40_ = NULL;
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1839 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = err;
+#line 1839 "/home/jens/Source/shotwell/src/Photo.vala"
+ app_window_database_error (_tmp40_);
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 14394 "Photo.c"
+ }
+ __finally298:
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (filepath);
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1819 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 14409 "Photo.c"
+ }
+#line 1842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = altered;
+#line 1842 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp41_) {
+#line 14415 "Photo.c"
+ GFile* _tmp42_ = NULL;
+ GFile* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ gchar** alteration_list = NULL;
+ gchar** _tmp45_ = NULL;
+ gint alteration_list_length1 = 0;
+ gint _alteration_list_size_ = 0;
+ gchar** _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ gchar* _tmp47_ = NULL;
+ gboolean _tmp48_ = FALSE;
+ gboolean _tmp51_ = FALSE;
+ gboolean _tmp54_ = FALSE;
+ gchar** _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ Alteration* _tmp58_ = NULL;
+ Alteration* _tmp59_ = NULL;
+#line 1843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = old_file;
+#line 1843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = file;
+#line 1843 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_notify_master_replaced (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp42_, _tmp43_);
+#line 1845 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = is_baseline;
+#line 1845 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp44_) {
+#line 1846 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_baseline_replaced (self);
+#line 14445 "Photo.c"
+ }
+#line 1848 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = g_new0 (gchar*, 0 + 1);
+#line 1848 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list = _tmp45_;
+#line 1848 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list_length1 = 0;
+#line 1848 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_list_size_ = alteration_list_length1;
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = alteration_list;
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46__length1 = alteration_list_length1;
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = g_strdup ("backing:master");
+#line 1849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add262 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp47_);
+#line 1853 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = name_changed;
+#line 1853 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp48_) {
+#line 14467 "Photo.c"
+ gchar** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ gchar* _tmp50_ = NULL;
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = alteration_list;
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49__length1 = alteration_list_length1;
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = g_strdup ("metadata:name");
+#line 1854 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add263 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp50_);
+#line 14479 "Photo.c"
+ }
+#line 1856 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = is_source;
+#line 1856 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp51_) {
+#line 14485 "Photo.c"
+ gchar** _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ gchar* _tmp53_ = NULL;
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = alteration_list;
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52__length1 = alteration_list_length1;
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = g_strdup ("backing:source");
+#line 1857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add264 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp53_);
+#line 14497 "Photo.c"
+ }
+#line 1859 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = is_baseline;
+#line 1859 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp54_) {
+#line 14503 "Photo.c"
+ gchar** _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ gchar* _tmp56_ = NULL;
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = alteration_list;
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55__length1 = alteration_list_length1;
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = g_strdup ("backing:baseline");
+#line 1860 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add265 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp56_);
+#line 14515 "Photo.c"
+ }
+#line 1862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = alteration_list;
+#line 1862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57__length1 = alteration_list_length1;
+#line 1862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = alteration_new_from_array (_tmp57_, _tmp57__length1);
+#line 1862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = _tmp58_;
+#line 1862 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp59_);
+#line 1862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp59_);
+#line 1842 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list = (_vala_array_free (alteration_list, alteration_list_length1, (GDestroyNotify) g_free), NULL);
+#line 14531 "Photo.c"
+ }
+#line 1811 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1811 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (filepath);
+#line 14537 "Photo.c"
+}
+
+
+static void _vala_array_add266 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 14548 "Photo.c"
+ }
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 14554 "Photo.c"
+}
+
+
+static void _vala_array_add267 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 14565 "Photo.c"
+ }
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 14571 "Photo.c"
+}
+
+
+static void _vala_array_add268 (gchar*** array, int* length, int* size, gchar* value) {
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 14582 "Photo.c"
+ }
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 14588 "Photo.c"
+}
+
+
+void photo_set_editable_file (Photo* self, GFile* file) {
+ gchar* filepath = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean altered = FALSE;
+ gboolean is_baseline = FALSE;
+ gboolean is_source = FALSE;
+ GFile* old_file = NULL;
+ gboolean _tmp34_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1868 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 1868 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 1869 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 1869 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 1869 "/home/jens/Source/shotwell/src/Photo.vala"
+ filepath = _tmp1_;
+#line 1871 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered = FALSE;
+#line 1872 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_baseline = FALSE;
+#line 1873 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_source = FALSE;
+#line 1874 "/home/jens/Source/shotwell/src/Photo.vala"
+ old_file = NULL;
+#line 14620 "Photo.c"
+ {
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 14628 "Photo.c"
+ {
+ {
+ PhotoBackingReaders* _tmp3_ = NULL;
+#line 1877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 1877 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 14636 "Photo.c"
+ {
+ GFile* _tmp4_ = NULL;
+ PhotoBackingReaders* _tmp5_ = NULL;
+ PhotoFileReader* _tmp6_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GFile* _tmp12_ = NULL;
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->readers;
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->editable;
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ != NULL) {
+#line 14650 "Photo.c"
+ PhotoBackingReaders* _tmp7_ = NULL;
+ PhotoFileReader* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->priv->readers;
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->editable;
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp9_;
+#line 14664 "Photo.c"
+ } else {
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = NULL;
+#line 14670 "Photo.c"
+ }
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _g_object_ref0 (_tmp4_);
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1878 "/home/jens/Source/shotwell/src/Photo.vala"
+ old_file = _tmp10_;
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = old_file;
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_ != NULL) {
+#line 14682 "Photo.c"
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = old_file;
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = file;
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = g_file_equal (_tmp13_, _tmp14_);
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = !_tmp15_;
+#line 14694 "Photo.c"
+ } else {
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = FALSE;
+#line 14698 "Photo.c"
+ }
+#line 1879 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 14702 "Photo.c"
+ BackingPhotoTable* _tmp16_ = NULL;
+ BackingPhotoTable* _tmp17_ = NULL;
+ PhotoRow* _tmp18_ = NULL;
+ BackingPhotoID _tmp19_ = {0};
+ const gchar* _tmp20_ = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ PhotoBackingReaders* _tmp24_ = NULL;
+ BackingPhotoRow* _tmp25_ = NULL;
+ PhotoFileFormat _tmp26_ = 0;
+ const gchar* _tmp27_ = NULL;
+ PhotoFileReader* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = backing_photo_table_get_instance ();
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->row;
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->editable_id;
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = filepath;
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_set_filepath (_tmp17_, &_tmp19_, _tmp20_, &_inner_error_);
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp17_);
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp4_);
+#line 14736 "Photo.c"
+ goto __finally303;
+ }
+#line 1882 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = self->priv->editable;
+#line 1882 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = filepath;
+#line 1882 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = g_strdup (_tmp22_);
+#line 1882 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp21_->filepath);
+#line 1882 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_->filepath = _tmp23_;
+#line 1883 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = self->priv->readers;
+#line 1883 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->priv->editable;
+#line 1883 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_->file_format;
+#line 1883 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = filepath;
+#line 1883 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = photo_file_format_create_reader (_tmp26_, _tmp27_);
+#line 1883 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp24_->editable);
+#line 1883 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_->editable = _tmp28_;
+#line 1885 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered = TRUE;
+#line 1886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = photo_is_editable_baseline (self);
+#line 1886 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_baseline = _tmp29_;
+#line 1887 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = photo_is_editable_source (self);
+#line 1887 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_source = _tmp30_;
+#line 14773 "Photo.c"
+ }
+#line 1877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp4_);
+#line 14777 "Photo.c"
+ }
+ __finally303:
+ {
+ PhotoBackingReaders* _tmp31_ = NULL;
+#line 1877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = self->priv->readers;
+#line 1877 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 14786 "Photo.c"
+ }
+#line 1877 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 14790 "Photo.c"
+ goto __finally302;
+ }
+ }
+ }
+ __finally302:
+ {
+ PhotoRow* _tmp32_ = NULL;
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = self->row;
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 14802 "Photo.c"
+ }
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 14808 "Photo.c"
+ goto __catch301_database_error;
+ }
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (filepath);
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1876 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 14821 "Photo.c"
+ }
+ }
+ }
+ goto __finally301;
+ __catch301_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp33_ = NULL;
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 1892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = err;
+#line 1892 "/home/jens/Source/shotwell/src/Photo.vala"
+ app_window_database_error (_tmp33_);
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 14840 "Photo.c"
+ }
+ __finally301:
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (filepath);
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1875 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 14855 "Photo.c"
+ }
+#line 1895 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = altered;
+#line 1895 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp34_) {
+#line 14861 "Photo.c"
+ GFile* _tmp35_ = NULL;
+ GFile* _tmp36_ = NULL;
+ gboolean _tmp37_ = FALSE;
+ gchar** alteration_list = NULL;
+ gchar** _tmp38_ = NULL;
+ gint alteration_list_length1 = 0;
+ gint _alteration_list_size_ = 0;
+ gchar** _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+ gboolean _tmp44_ = FALSE;
+ gchar** _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ Alteration* _tmp48_ = NULL;
+ Alteration* _tmp49_ = NULL;
+#line 1896 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = old_file;
+#line 1896 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = file;
+#line 1896 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_editable_replaced (self, _tmp35_, _tmp36_);
+#line 1898 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = is_baseline;
+#line 1898 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp37_) {
+#line 1899 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_baseline_replaced (self);
+#line 14890 "Photo.c"
+ }
+#line 1901 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = g_new0 (gchar*, 0 + 1);
+#line 1901 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list = _tmp38_;
+#line 1901 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list_length1 = 0;
+#line 1901 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_list_size_ = alteration_list_length1;
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = alteration_list;
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39__length1 = alteration_list_length1;
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = g_strdup ("backing:editable");
+#line 1902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add266 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp40_);
+#line 1904 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = is_baseline;
+#line 1904 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp41_) {
+#line 14912 "Photo.c"
+ gchar** _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ gchar* _tmp43_ = NULL;
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = alteration_list;
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42__length1 = alteration_list_length1;
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = g_strdup ("backing:baseline");
+#line 1905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add267 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp43_);
+#line 14924 "Photo.c"
+ }
+#line 1907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = is_source;
+#line 1907 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp44_) {
+#line 14930 "Photo.c"
+ gchar** _tmp45_ = NULL;
+ gint _tmp45__length1 = 0;
+ gchar* _tmp46_ = NULL;
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = alteration_list;
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45__length1 = alteration_list_length1;
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = g_strdup ("backing:source");
+#line 1908 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add268 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp46_);
+#line 14942 "Photo.c"
+ }
+#line 1910 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = alteration_list;
+#line 1910 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47__length1 = alteration_list_length1;
+#line 1910 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = alteration_new_from_array (_tmp47_, _tmp47__length1);
+#line 1910 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = _tmp48_;
+#line 1910 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp49_);
+#line 1910 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp49_);
+#line 1895 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list = (_vala_array_free (alteration_list, alteration_list_length1, (GDestroyNotify) g_free), NULL);
+#line 14958 "Photo.c"
+ }
+#line 1868 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (old_file);
+#line 1868 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (filepath);
+#line 14964 "Photo.c"
+}
+
+
+void photo_set_many_editable_file (GeeMap* map, GError** error) {
+ GeeMapIterator* map_iter = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeMapIterator* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1915 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 1916 "/home/jens/Source/shotwell/src/Photo.vala"
+ database_table_begin_transaction ();
+#line 1918 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = map;
+#line 1918 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_map_map_iterator (_tmp0_);
+#line 1918 "/home/jens/Source/shotwell/src/Photo.vala"
+ map_iter = _tmp1_;
+#line 1919 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 14985 "Photo.c"
+ GeeMapIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GeeMapIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ GeeMapIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+#line 1919 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = map_iter;
+#line 1919 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_map_iterator_next (_tmp2_);
+#line 1919 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp3_) {
+#line 1919 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 15002 "Photo.c"
+ }
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = map_iter;
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_map_iterator_get_key (_tmp4_);
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = (Photo*) _tmp5_;
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = map_iter;
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = gee_map_iterator_get_value (_tmp7_);
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = (GFile*) _tmp8_;
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_editable_file (_tmp6_, _tmp9_);
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp6_);
+#line 15022 "Photo.c"
+ }
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ database_table_commit_transaction (&_inner_error_);
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (map_iter);
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15036 "Photo.c"
+ } else {
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (map_iter);
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1922 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15046 "Photo.c"
+ }
+ }
+#line 1915 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (map_iter);
+#line 15051 "Photo.c"
+}
+
+
+GFile* photo_get_actual_file (Photo* self) {
+ GFile* result = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 1927 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 1928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_baseline_reader (self);
+#line 1928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp1_);
+#line 1928 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 1928 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15077 "Photo.c"
+}
+
+
+static GFile* photo_real_get_master_file (MediaSource* base) {
+ Photo * self;
+ GFile* result = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 1931 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_master_reader (self);
+#line 1932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp1_);
+#line 1932 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 1932 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15104 "Photo.c"
+}
+
+
+GFile* photo_get_editable_file (Photo* self) {
+ GFile* result = NULL;
+ PhotoFileReader* reader = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+#line 1935 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 1936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_editable_reader (self);
+#line 1936 "/home/jens/Source/shotwell/src/Photo.vala"
+ reader = _tmp0_;
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = reader;
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 15124 "Photo.c"
+ PhotoFileReader* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = reader;
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp4_;
+#line 15135 "Photo.c"
+ } else {
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 15141 "Photo.c"
+ }
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 1938 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15149 "Photo.c"
+}
+
+
+GeeCollection* photo_get_raw_developer_files (Photo* self) {
+ GeeCollection* result = NULL;
+ PhotoFileFormat _tmp0_ = 0;
+ GeeArrayList* ret = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1941 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 1942 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_master_file_format (self);
+#line 1942 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != PHOTO_FILE_FORMAT_RAW) {
+#line 1943 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 1943 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15169 "Photo.c"
+ }
+#line 1945 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1945 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = _tmp1_;
+#line 15175 "Photo.c"
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15182 "Photo.c"
+ {
+ {
+ GeeIterator* _row_it = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->developments;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_MAP, GeeMap));
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _row_it = _tmp8_;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 15210 "Photo.c"
+ GeeIterator* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ BackingPhotoRow* row = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ BackingPhotoRow* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _row_it;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = gee_iterator_next (_tmp9_);
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp10_) {
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 15229 "Photo.c"
+ }
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _row_it;
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = gee_iterator_get (_tmp11_);
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ row = (BackingPhotoRow*) _tmp12_;
+#line 1948 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = ret;
+#line 1948 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = row;
+#line 1948 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->filepath;
+#line 1948 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = g_file_new_for_path (_tmp15_);
+#line 1948 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 1948 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp17_);
+#line 1948 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp17_);
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (row);
+#line 15253 "Photo.c"
+ }
+#line 1947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_row_it);
+#line 15257 "Photo.c"
+ }
+ }
+ __finally304:
+ {
+ PhotoRow* _tmp18_ = NULL;
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->row;
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15267 "Photo.c"
+ }
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (ret);
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1946 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 15279 "Photo.c"
+ }
+ }
+#line 1951 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (ret, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1951 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15286 "Photo.c"
+}
+
+
+GFile* photo_get_source_file (Photo* self) {
+ GFile* result = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 1954 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 1955 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_source_reader (self);
+#line 1955 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 1955 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1955 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 1955 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp1_);
+#line 1955 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 1955 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15312 "Photo.c"
+}
+
+
+PhotoFileFormat photo_get_file_format (Photo* self) {
+ PhotoFileFormat result = 0;
+ GError * _inner_error_ = NULL;
+#line 1958 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0);
+#line 15321 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15328 "Photo.c"
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+#line 1960 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->backing_photo_row;
+#line 1960 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->file_format;
+#line 1960 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 15338 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15345 "Photo.c"
+ }
+#line 1960 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15349 "Photo.c"
+ }
+ __finally305:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15358 "Photo.c"
+ }
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1959 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 15366 "Photo.c"
+ }
+}
+
+
+PhotoFileFormat photo_get_best_export_file_format (Photo* self) {
+ PhotoFileFormat result = 0;
+ PhotoFileFormat file_format = 0;
+ PhotoFileFormat _tmp0_ = 0;
+ PhotoFileFormat _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 1964 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0);
+#line 1965 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_file_format (self);
+#line 1965 "/home/jens/Source/shotwell/src/Photo.vala"
+ file_format = _tmp0_;
+#line 1966 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file_format;
+#line 1966 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_format_can_write (_tmp1_);
+#line 1966 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp2_) {
+#line 15389 "Photo.c"
+ PhotoFileFormat _tmp3_ = 0;
+#line 1967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_format_get_system_default_format ();
+#line 1967 "/home/jens/Source/shotwell/src/Photo.vala"
+ file_format = _tmp3_;
+#line 15395 "Photo.c"
+ }
+#line 1969 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = file_format;
+#line 1969 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15401 "Photo.c"
+}
+
+
+PhotoFileFormat photo_get_master_file_format (Photo* self) {
+ PhotoFileFormat result = 0;
+ GError * _inner_error_ = NULL;
+#line 1972 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0);
+#line 15410 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15417 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+#line 1974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 1974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->master;
+#line 1974 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 1974 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 15430 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15437 "Photo.c"
+ }
+#line 1974 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15441 "Photo.c"
+ }
+ __finally306:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15450 "Photo.c"
+ }
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1973 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 15458 "Photo.c"
+ }
+}
+
+
+static time_t photo_real_get_timestamp (MediaSource* base) {
+ Photo * self;
+ time_t result = 0;
+ GError * _inner_error_ = NULL;
+#line 1978 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 15469 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15476 "Photo.c"
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+#line 1980 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->backing_photo_row;
+#line 1980 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->timestamp;
+#line 1980 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 15486 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15493 "Photo.c"
+ }
+#line 1980 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15497 "Photo.c"
+ }
+ __finally307:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15506 "Photo.c"
+ }
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1979 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 15514 "Photo.c"
+ }
+}
+
+
+void photo_get_photo_id (Photo* self, PhotoID* result) {
+ GError * _inner_error_ = NULL;
+#line 1984 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 15523 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15530 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ PhotoID _tmp2_ = {0};
+#line 1986 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 1986 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->photo_id;
+#line 1986 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp2_;
+#line 15540 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15547 "Photo.c"
+ }
+#line 1986 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15551 "Photo.c"
+ }
+ __finally308:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15560 "Photo.c"
+ }
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 1985 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15568 "Photo.c"
+ }
+}
+
+
+static inline void photo_real_get_event_id (MediaSource* base, EventID* result) {
+ Photo * self;
+ PhotoRow* _tmp0_ = NULL;
+ EventID _tmp1_ = {0};
+#line 1991 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 1992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_->event_id;
+#line 1992 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp1_;
+#line 1992 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15587 "Photo.c"
+}
+
+
+inline gint64 photo_get_raw_event_id (Photo* self) {
+ gint64 result = 0LL;
+ PhotoRow* _tmp0_ = NULL;
+ EventID _tmp1_ = {0};
+ gint64 _tmp2_ = 0LL;
+#line 1996 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0LL);
+#line 1997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 1997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_->event_id;
+#line 1997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_.id;
+#line 1997 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 1997 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15608 "Photo.c"
+}
+
+
+static void photo_real_get_import_id (MediaSource* base, ImportID* result) {
+ Photo * self;
+ GError * _inner_error_ = NULL;
+#line 2000 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 15617 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15624 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ ImportID _tmp2_ = {0};
+#line 2002 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2002 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->import_id;
+#line 2002 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp2_;
+#line 15634 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15641 "Photo.c"
+ }
+#line 2002 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15645 "Photo.c"
+ }
+ __finally309:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15654 "Photo.c"
+ }
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2001 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15662 "Photo.c"
+ }
+}
+
+
+void photo_get_editable_id (Photo* self, BackingPhotoID* result) {
+ GError * _inner_error_ = NULL;
+#line 2006 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 15671 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15678 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ BackingPhotoID _tmp2_ = {0};
+#line 2008 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2008 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable_id;
+#line 2008 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp2_;
+#line 15688 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15695 "Photo.c"
+ }
+#line 2008 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15699 "Photo.c"
+ }
+ __finally310:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15708 "Photo.c"
+ }
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2007 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 15716 "Photo.c"
+ }
+}
+
+
+static gchar* photo_real_get_master_md5 (MediaSource* base) {
+ Photo * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2012 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 15727 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15734 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 2014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->md5;
+#line 2014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 2014 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 15747 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15754 "Photo.c"
+ }
+#line 2014 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15758 "Photo.c"
+ }
+ __finally311:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15767 "Photo.c"
+ }
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2013 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 15775 "Photo.c"
+ }
+}
+
+
+guint64 photo_get_flags (Photo* self) {
+ guint64 result = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 2020 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0ULL);
+#line 15785 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15792 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+#line 2022 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2022 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 2022 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 15802 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15809 "Photo.c"
+ }
+#line 2022 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15813 "Photo.c"
+ }
+ __finally312:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15822 "Photo.c"
+ }
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2021 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 15830 "Photo.c"
+ }
+}
+
+
+static void photo_notify_flags_altered (Photo* self, Alteration* additional_alteration) {
+ Alteration* alteration = NULL;
+ Alteration* _tmp0_ = NULL;
+ Alteration* _tmp1_ = NULL;
+ Alteration* _tmp5_ = NULL;
+#line 2026 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2026 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration));
+#line 2027 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = alteration_new ("metadata", "flags");
+#line 2027 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration = _tmp0_;
+#line 2028 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = additional_alteration;
+#line 2028 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ != NULL) {
+#line 15852 "Photo.c"
+ Alteration* _tmp2_ = NULL;
+ Alteration* _tmp3_ = NULL;
+ Alteration* _tmp4_ = NULL;
+#line 2029 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = alteration;
+#line 2029 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = additional_alteration;
+#line 2029 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = alteration_compress (_tmp2_, _tmp3_);
+#line 2029 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (alteration);
+#line 2029 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration = _tmp4_;
+#line 15866 "Photo.c"
+ }
+#line 2031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = alteration;
+#line 2031 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp5_);
+#line 2026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (alteration);
+#line 15874 "Photo.c"
+}
+
+
+guint64 photo_replace_flags (Photo* self, guint64 flags, Alteration* additional_alteration) {
+ guint64 result = 0ULL;
+ gboolean committed = FALSE;
+ gboolean _tmp10_ = FALSE;
+ guint64 _tmp12_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 2034 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0ULL);
+#line 2034 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration), 0ULL);
+#line 15888 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15895 "Photo.c"
+ {
+ PhotoTable* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoID _tmp3_ = {0};
+ guint64 _tmp4_ = 0ULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 2037 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_table_get_instance ();
+#line 2037 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 2037 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp3_);
+#line 2037 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = flags;
+#line 2037 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_table_replace_flags (_tmp2_, &_tmp3_, _tmp4_);
+#line 2037 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp5_;
+#line 2037 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp2_);
+#line 2038 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = committed;
+#line 2038 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 15921 "Photo.c"
+ PhotoRow* _tmp7_ = NULL;
+ guint64 _tmp8_ = 0ULL;
+#line 2039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 2039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = flags;
+#line 2039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_->flags = _tmp8_;
+#line 15930 "Photo.c"
+ }
+ }
+ __finally313:
+ {
+ PhotoRow* _tmp9_ = NULL;
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 15940 "Photo.c"
+ }
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2036 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 15950 "Photo.c"
+ }
+ }
+#line 2042 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = committed;
+#line 2042 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_) {
+#line 15957 "Photo.c"
+ Alteration* _tmp11_ = NULL;
+#line 2043 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = additional_alteration;
+#line 2043 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_flags_altered (self, _tmp11_);
+#line 15963 "Photo.c"
+ }
+#line 2045 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = flags;
+#line 2045 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp12_;
+#line 2045 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 15971 "Photo.c"
+}
+
+
+gboolean photo_is_flag_set (Photo* self, guint64 mask) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2048 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 15980 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 15987 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ gboolean _tmp4_ = FALSE;
+#line 2050 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2050 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 2050 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = mask;
+#line 2050 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = media_source_internal_is_flag_set (_tmp2_, _tmp3_);
+#line 2050 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 16003 "Photo.c"
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16010 "Photo.c"
+ }
+#line 2050 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 16014 "Photo.c"
+ }
+ __finally314:
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16023 "Photo.c"
+ }
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2049 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 16031 "Photo.c"
+ }
+}
+
+
+guint64 photo_add_flags (Photo* self, guint64 mask, Alteration* additional_alteration) {
+ guint64 result = 0ULL;
+ guint64 flags = 0ULL;
+ gboolean committed = FALSE;
+ gboolean _tmp17_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2054 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0ULL);
+#line 2054 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration), 0ULL);
+#line 2055 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = (guint64) 0;
+#line 2057 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 16050 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16057 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ guint64 _tmp4_ = 0ULL;
+ PhotoRow* _tmp5_ = NULL;
+ guint64 _tmp6_ = 0ULL;
+ guint64 _tmp7_ = 0ULL;
+#line 2059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 2059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = mask;
+#line 2059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = media_source_internal_add_flags (_tmp2_, _tmp3_);
+#line 2059 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = _tmp4_;
+#line 2060 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2060 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->flags;
+#line 2060 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = flags;
+#line 2060 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ != _tmp7_) {
+#line 16084 "Photo.c"
+ PhotoTable* _tmp8_ = NULL;
+ PhotoTable* _tmp9_ = NULL;
+ PhotoID _tmp10_ = {0};
+ guint64 _tmp11_ = 0ULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 2061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_table_get_instance ();
+#line 2061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 2061 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp10_);
+#line 2061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = flags;
+#line 2061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_table_replace_flags (_tmp9_, &_tmp10_, _tmp11_);
+#line 2061 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp12_;
+#line 2061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp9_);
+#line 2062 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = committed;
+#line 2062 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_) {
+#line 16109 "Photo.c"
+ PhotoRow* _tmp14_ = NULL;
+ guint64 _tmp15_ = 0ULL;
+#line 2063 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2063 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = flags;
+#line 2063 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_->flags = _tmp15_;
+#line 16118 "Photo.c"
+ }
+ }
+ }
+ __finally315:
+ {
+ PhotoRow* _tmp16_ = NULL;
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->row;
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16129 "Photo.c"
+ }
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2058 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 16139 "Photo.c"
+ }
+ }
+#line 2067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = committed;
+#line 2067 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_) {
+#line 16146 "Photo.c"
+ Alteration* _tmp18_ = NULL;
+#line 2068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = additional_alteration;
+#line 2068 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_flags_altered (self, _tmp18_);
+#line 16152 "Photo.c"
+ }
+#line 2070 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = flags;
+#line 2070 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 16158 "Photo.c"
+}
+
+
+guint64 photo_remove_flags (Photo* self, guint64 mask, Alteration* additional_alteration) {
+ guint64 result = 0ULL;
+ guint64 flags = 0ULL;
+ gboolean committed = FALSE;
+ gboolean _tmp17_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2073 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0ULL);
+#line 2073 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration), 0ULL);
+#line 2074 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = (guint64) 0;
+#line 2076 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 16176 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16183 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ guint64 _tmp4_ = 0ULL;
+ PhotoRow* _tmp5_ = NULL;
+ guint64 _tmp6_ = 0ULL;
+ guint64 _tmp7_ = 0ULL;
+#line 2078 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2078 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 2078 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = mask;
+#line 2078 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = media_source_internal_remove_flags (_tmp2_, _tmp3_);
+#line 2078 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = _tmp4_;
+#line 2079 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2079 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->flags;
+#line 2079 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = flags;
+#line 2079 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ != _tmp7_) {
+#line 16210 "Photo.c"
+ PhotoTable* _tmp8_ = NULL;
+ PhotoTable* _tmp9_ = NULL;
+ PhotoID _tmp10_ = {0};
+ guint64 _tmp11_ = 0ULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 2080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_table_get_instance ();
+#line 2080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 2080 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp10_);
+#line 2080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = flags;
+#line 2080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_table_replace_flags (_tmp9_, &_tmp10_, _tmp11_);
+#line 2080 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp12_;
+#line 2080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp9_);
+#line 2081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = committed;
+#line 2081 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_) {
+#line 16235 "Photo.c"
+ PhotoRow* _tmp14_ = NULL;
+ guint64 _tmp15_ = 0ULL;
+#line 2082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = flags;
+#line 2082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_->flags = _tmp15_;
+#line 16244 "Photo.c"
+ }
+ }
+ }
+ __finally316:
+ {
+ PhotoRow* _tmp16_ = NULL;
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->row;
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16255 "Photo.c"
+ }
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2077 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 16265 "Photo.c"
+ }
+ }
+#line 2086 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = committed;
+#line 2086 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_) {
+#line 16272 "Photo.c"
+ Alteration* _tmp18_ = NULL;
+#line 2087 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = additional_alteration;
+#line 2087 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_flags_altered (self, _tmp18_);
+#line 16278 "Photo.c"
+ }
+#line 2089 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = flags;
+#line 2089 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 16284 "Photo.c"
+}
+
+
+guint64 photo_add_remove_flags (Photo* self, guint64 add, guint64 remove, Alteration* additional_alteration) {
+ guint64 result = 0ULL;
+ guint64 flags = 0ULL;
+ gboolean committed = FALSE;
+ gboolean _tmp17_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2092 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0ULL);
+#line 2092 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration), 0ULL);
+#line 2093 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = (guint64) 0;
+#line 2095 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 16302 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16309 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ guint64 _tmp4_ = 0ULL;
+ PhotoRow* _tmp5_ = NULL;
+ guint64 _tmp6_ = 0ULL;
+ guint64 _tmp7_ = 0ULL;
+#line 2097 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2097 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 2097 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = add;
+#line 2097 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = remove;
+#line 2097 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = (_tmp2_ | _tmp3_) & (~_tmp4_);
+#line 2098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->flags;
+#line 2098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = flags;
+#line 2098 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ != _tmp7_) {
+#line 16336 "Photo.c"
+ PhotoTable* _tmp8_ = NULL;
+ PhotoTable* _tmp9_ = NULL;
+ PhotoID _tmp10_ = {0};
+ guint64 _tmp11_ = 0ULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 2099 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_table_get_instance ();
+#line 2099 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 2099 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp10_);
+#line 2099 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = flags;
+#line 2099 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_table_replace_flags (_tmp9_, &_tmp10_, _tmp11_);
+#line 2099 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp12_;
+#line 2099 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp9_);
+#line 2100 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = committed;
+#line 2100 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_) {
+#line 16361 "Photo.c"
+ PhotoRow* _tmp14_ = NULL;
+ guint64 _tmp15_ = 0ULL;
+#line 2101 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2101 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = flags;
+#line 2101 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_->flags = _tmp15_;
+#line 16370 "Photo.c"
+ }
+ }
+ }
+ __finally317:
+ {
+ PhotoRow* _tmp16_ = NULL;
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->row;
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16381 "Photo.c"
+ }
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2096 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 16391 "Photo.c"
+ }
+ }
+#line 2105 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = committed;
+#line 2105 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_) {
+#line 16398 "Photo.c"
+ Alteration* _tmp18_ = NULL;
+#line 2106 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = additional_alteration;
+#line 2106 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_flags_altered (self, _tmp18_);
+#line 16404 "Photo.c"
+ }
+#line 2108 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = flags;
+#line 2108 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 16410 "Photo.c"
+}
+
+
+void photo_add_remove_many_flags (GeeCollection* add, guint64 add_mask, Alteration* additional_add_alteration, GeeCollection* remove, guint64 remove_mask, Alteration* additional_remove_alteration, GError** error) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2111 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((add == NULL) || GEE_IS_COLLECTION (add));
+#line 2111 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((additional_add_alteration == NULL) || IS_ALTERATION (additional_add_alteration));
+#line 2111 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((remove == NULL) || GEE_IS_COLLECTION (remove));
+#line 2111 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((additional_remove_alteration == NULL) || IS_ALTERATION (additional_remove_alteration));
+#line 2114 "/home/jens/Source/shotwell/src/Photo.vala"
+ database_table_begin_transaction ();
+#line 2116 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = add;
+#line 2116 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != NULL) {
+#line 16432 "Photo.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = add;
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_it = _tmp2_;
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 16445 "Photo.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ Photo* photo = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ guint64 _tmp8_ = 0ULL;
+ Alteration* _tmp9_ = NULL;
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _photo_it;
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp4_) {
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 16462 "Photo.c"
+ }
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _photo_it;
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = (Photo*) _tmp6_;
+#line 2118 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo;
+#line 2118 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = add_mask;
+#line 2118 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = additional_add_alteration;
+#line 2118 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_flags (_tmp7_, _tmp8_, _tmp9_);
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 16480 "Photo.c"
+ }
+#line 2117 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 16484 "Photo.c"
+ }
+ }
+#line 2121 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = remove;
+#line 2121 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_ != NULL) {
+#line 16491 "Photo.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeIterator* _tmp12_ = NULL;
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = remove;
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_it = _tmp12_;
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 16504 "Photo.c"
+ GeeIterator* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ Photo* photo = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ guint64 _tmp18_ = 0ULL;
+ Alteration* _tmp19_ = NULL;
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _photo_it;
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = gee_iterator_next (_tmp13_);
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp14_) {
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 16521 "Photo.c"
+ }
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _photo_it;
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = gee_iterator_get (_tmp15_);
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = (Photo*) _tmp16_;
+#line 2123 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo;
+#line 2123 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = remove_mask;
+#line 2123 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = additional_remove_alteration;
+#line 2123 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_remove_flags (_tmp17_, _tmp18_, _tmp19_);
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 16539 "Photo.c"
+ }
+#line 2122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 16543 "Photo.c"
+ }
+ }
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ database_table_commit_transaction (&_inner_error_);
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 16556 "Photo.c"
+ } else {
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2126 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 16564 "Photo.c"
+ }
+ }
+}
+
+
+guint64 photo_toggle_flags (Photo* self, guint64 mask, Alteration* additional_alteration) {
+ guint64 result = 0ULL;
+ guint64 flags = 0ULL;
+ gboolean committed = FALSE;
+ gboolean _tmp16_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2129 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0ULL);
+#line 2129 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration), 0ULL);
+#line 2130 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = (guint64) 0;
+#line 2132 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 16584 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16591 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ PhotoRow* _tmp4_ = NULL;
+ guint64 _tmp5_ = 0ULL;
+ guint64 _tmp6_ = 0ULL;
+#line 2134 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2134 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 2134 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = mask;
+#line 2134 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = _tmp2_ ^ _tmp3_;
+#line 2135 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2135 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->flags;
+#line 2135 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = flags;
+#line 2135 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_ != _tmp6_) {
+#line 16615 "Photo.c"
+ PhotoTable* _tmp7_ = NULL;
+ PhotoTable* _tmp8_ = NULL;
+ PhotoID _tmp9_ = {0};
+ guint64 _tmp10_ = 0ULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 2136 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_table_get_instance ();
+#line 2136 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 2136 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp9_);
+#line 2136 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = flags;
+#line 2136 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_table_replace_flags (_tmp8_, &_tmp9_, _tmp10_);
+#line 2136 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp11_;
+#line 2136 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp8_);
+#line 2137 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = committed;
+#line 2137 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 16640 "Photo.c"
+ PhotoRow* _tmp13_ = NULL;
+ guint64 _tmp14_ = 0ULL;
+#line 2138 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->row;
+#line 2138 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = flags;
+#line 2138 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_->flags = _tmp14_;
+#line 16649 "Photo.c"
+ }
+ }
+ }
+ __finally318:
+ {
+ PhotoRow* _tmp15_ = NULL;
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->row;
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16660 "Photo.c"
+ }
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2133 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 16670 "Photo.c"
+ }
+ }
+#line 2142 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = committed;
+#line 2142 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_) {
+#line 16677 "Photo.c"
+ Alteration* _tmp17_ = NULL;
+#line 2143 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = additional_alteration;
+#line 2143 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_flags_altered (self, _tmp17_);
+#line 16683 "Photo.c"
+ }
+#line 2145 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = flags;
+#line 2145 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 16689 "Photo.c"
+}
+
+
+gboolean photo_is_master_metadata_dirty (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2148 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 16698 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16705 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->metadata_dirty;
+#line 2150 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 16715 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16722 "Photo.c"
+ }
+#line 2150 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 16726 "Photo.c"
+ }
+ __finally319:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16735 "Photo.c"
+ }
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2149 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 16743 "Photo.c"
+ }
+}
+
+
+void photo_set_master_metadata_dirty (Photo* self, gboolean dirty, GError** error) {
+ gboolean committed = FALSE;
+ gboolean _tmp11_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2154 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2155 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 16756 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16763 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 2157 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2157 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->metadata_dirty;
+#line 2157 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = dirty;
+#line 2157 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != _tmp3_) {
+#line 16776 "Photo.c"
+ PhotoTable* _tmp4_ = NULL;
+ PhotoTable* _tmp5_ = NULL;
+ PhotoID _tmp6_ = {0};
+ gboolean _tmp7_ = FALSE;
+ PhotoRow* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 2158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_table_get_instance ();
+#line 2158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 2158 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp6_);
+#line 2158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = dirty;
+#line 2158 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_set_metadata_dirty (_tmp5_, &_tmp6_, _tmp7_, &_inner_error_);
+#line 2158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp5_);
+#line 2158 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 16797 "Photo.c"
+ goto __finally320;
+ }
+#line 2159 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->row;
+#line 2159 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = dirty;
+#line 2159 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_->metadata_dirty = _tmp9_;
+#line 2160 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = TRUE;
+#line 16808 "Photo.c"
+ }
+ }
+ __finally320:
+ {
+ PhotoRow* _tmp10_ = NULL;
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->row;
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16818 "Photo.c"
+ }
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 16828 "Photo.c"
+ } else {
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2156 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 16836 "Photo.c"
+ }
+ }
+ }
+#line 2164 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = committed;
+#line 2164 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 16844 "Photo.c"
+ Alteration* _tmp12_ = NULL;
+ Alteration* _tmp13_ = NULL;
+#line 2165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = alteration_new ("metadata", "master-dirty");
+#line 2165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 2165 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp13_);
+#line 2165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp13_);
+#line 16855 "Photo.c"
+ }
+}
+
+
+static Rating photo_real_get_rating (MediaSource* base) {
+ Photo * self;
+ Rating result = 0;
+ GError * _inner_error_ = NULL;
+#line 2168 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 16866 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16873 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+#line 2170 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2170 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->rating;
+#line 2170 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 16883 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16890 "Photo.c"
+ }
+#line 2170 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 16894 "Photo.c"
+ }
+ __finally321:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 16903 "Photo.c"
+ }
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2169 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 16911 "Photo.c"
+ }
+}
+
+
+static void photo_real_set_rating (MediaSource* base, Rating rating) {
+ Photo * self;
+ gboolean committed = FALSE;
+ gboolean _tmp16_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2174 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2175 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 16925 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 16932 "Photo.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ Rating _tmp2_ = 0;
+ PhotoRow* _tmp3_ = NULL;
+ Rating _tmp4_ = 0;
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = rating;
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->rating;
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != _tmp4_) {
+#line 16946 "Photo.c"
+ Rating _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = rating;
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = rating_is_valid (_tmp5_);
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp6_;
+#line 16955 "Photo.c"
+ } else {
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 16959 "Photo.c"
+ }
+#line 2178 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 16963 "Photo.c"
+ PhotoTable* _tmp7_ = NULL;
+ PhotoTable* _tmp8_ = NULL;
+ PhotoID _tmp9_ = {0};
+ Rating _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 2179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_table_get_instance ();
+#line 2179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 2179 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp9_);
+#line 2179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = rating;
+#line 2179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_table_set_rating (_tmp8_, &_tmp9_, _tmp10_);
+#line 2179 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp11_;
+#line 2179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp8_);
+#line 2180 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = committed;
+#line 2180 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 16988 "Photo.c"
+ PhotoRow* _tmp13_ = NULL;
+ Rating _tmp14_ = 0;
+#line 2181 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->row;
+#line 2181 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = rating;
+#line 2181 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_->rating = _tmp14_;
+#line 16997 "Photo.c"
+ }
+ }
+ }
+ __finally322:
+ {
+ PhotoRow* _tmp15_ = NULL;
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->row;
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17008 "Photo.c"
+ }
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2177 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17018 "Photo.c"
+ }
+ }
+#line 2185 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = committed;
+#line 2185 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_) {
+#line 17025 "Photo.c"
+ Alteration* _tmp17_ = NULL;
+ Alteration* _tmp18_ = NULL;
+#line 2186 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = alteration_new ("metadata", "rating");
+#line 2186 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_;
+#line 2186 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp18_);
+#line 2186 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp18_);
+#line 17036 "Photo.c"
+ }
+}
+
+
+static void photo_real_increase_rating (MediaSource* base) {
+ Photo * self;
+ GError * _inner_error_ = NULL;
+#line 2189 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 17046 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 17053 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+ Rating _tmp3_ = 0;
+#line 2191 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2191 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->rating;
+#line 2191 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = rating_increase (_tmp2_);
+#line 2191 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp3_);
+#line 17066 "Photo.c"
+ }
+ __finally323:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17075 "Photo.c"
+ }
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2190 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17085 "Photo.c"
+ }
+ }
+}
+
+
+static void photo_real_decrease_rating (MediaSource* base) {
+ Photo * self;
+ GError * _inner_error_ = NULL;
+#line 2195 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 17096 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 17103 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+ Rating _tmp3_ = 0;
+#line 2197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->rating;
+#line 2197 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = rating_decrease (_tmp2_);
+#line 2197 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp3_);
+#line 17116 "Photo.c"
+ }
+ __finally324:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17125 "Photo.c"
+ }
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2196 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17135 "Photo.c"
+ }
+ }
+}
+
+
+static void photo_real_commit_backlinks (DataSource* base, SourceCollection* sources, const gchar* backlinks) {
+ Photo * self;
+ GError * _inner_error_ = NULL;
+#line 2201 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2201 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((sources == NULL) || IS_SOURCE_COLLECTION (sources));
+#line 17148 "Photo.c"
+ {
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ PhotoID _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp2_);
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = backlinks;
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_update_backlinks (_tmp1_, &_tmp2_, _tmp3_, &_inner_error_);
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp1_);
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 17170 "Photo.c"
+ goto __catch325_database_error;
+ }
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2206 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17179 "Photo.c"
+ }
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 17187 "Photo.c"
+ {
+ PhotoRow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 2208 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2208 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = backlinks;
+#line 2208 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 2208 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp5_->backlinks);
+#line 2208 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_->backlinks = _tmp7_;
+#line 17202 "Photo.c"
+ }
+ __finally326:
+ {
+ PhotoRow* _tmp8_ = NULL;
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->row;
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17211 "Photo.c"
+ }
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 17217 "Photo.c"
+ goto __catch325_database_error;
+ }
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2207 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17226 "Photo.c"
+ }
+ }
+ }
+ goto __finally325;
+ __catch325_database_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 2205 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 2205 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 2211 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 2211 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_;
+#line 2211 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = err;
+#line 2211 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->message;
+#line 2211 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:2211: Unable to update link state for %s: %s", _tmp10_, _tmp12_);
+#line 2211 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp10_);
+#line 2205 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 17256 "Photo.c"
+ }
+ __finally325:
+#line 2205 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2205 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2205 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2205 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17267 "Photo.c"
+ }
+}
+
+
+static gboolean photo_real_set_event_id (MediaSource* base, EventID* event_id) {
+ Photo * self;
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2219 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2219 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 17280 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 17287 "Photo.c"
+ {
+ gboolean committed = FALSE;
+ PhotoTable* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoRow* _tmp3_ = NULL;
+ PhotoID _tmp4_ = {0};
+ EventID _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_table_get_instance ();
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->photo_id;
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = *event_id;
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_table_set_event (_tmp2_, &_tmp4_, &_tmp5_);
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp2_);
+#line 2221 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp7_;
+#line 2223 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = committed;
+#line 2223 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_) {
+#line 17320 "Photo.c"
+ PhotoRow* _tmp9_ = NULL;
+ EventID _tmp10_ = {0};
+#line 2224 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2224 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = *event_id;
+#line 2224 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_->event_id = _tmp10_;
+#line 17329 "Photo.c"
+ }
+#line 2226 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = committed;
+#line 17333 "Photo.c"
+ {
+ PhotoRow* _tmp11_ = NULL;
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17340 "Photo.c"
+ }
+#line 2226 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 17344 "Photo.c"
+ }
+ __finally327:
+ {
+ PhotoRow* _tmp12_ = NULL;
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->row;
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17353 "Photo.c"
+ }
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2220 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 17361 "Photo.c"
+ }
+}
+
+
+static gchar* photo_real_to_string (DataObject* base) {
+ Photo * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ PhotoID _tmp10_ = {0};
+ gint64 _tmp11_ = 0LL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ PhotoFileReader* _tmp14_ = NULL;
+ PhotoFileReader* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 2230 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_is_master_baseline (self);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp1_) {
+#line 17387 "Photo.c"
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_get_actual_file (self);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = g_strconcat (" (", _tmp5_, NULL);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_strconcat (_tmp7_, ")", NULL);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp8_;
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp7_);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp5_);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 17419 "Photo.c"
+ } else {
+ gchar* _tmp9_ = NULL;
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = g_strdup ("");
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 2232 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp9_;
+#line 17428 "Photo.c"
+ }
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp10_);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_.id;
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp11_);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = photo_get_master_reader (self);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_;
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = g_strdup_printf ("[%s] %s%s", _tmp13_, _tmp17_, _tmp0_);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_;
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp17_);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp15_);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp13_);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp19_;
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 2231 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 17462 "Photo.c"
+}
+
+
+static gboolean photo_real_equals (DataSource* base, DataSource* source) {
+ Photo * self;
+ gboolean result = FALSE;
+ Photo* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ DataSource* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 2235 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2235 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((source == NULL) || IS_DATA_SOURCE (source), FALSE);
+#line 2237 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = source;
+#line 2237 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO) ? ((Photo*) _tmp0_) : NULL);
+#line 2237 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp1_;
+#line 2238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo;
+#line 2238 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 17489 "Photo.c"
+ PhotoID photo_id = {0};
+ PhotoID _tmp3_ = {0};
+ PhotoID other_photo_id = {0};
+ Photo* _tmp4_ = NULL;
+ PhotoID _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+ Photo* _tmp7_ = NULL;
+#line 2239 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp3_);
+#line 2239 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id = _tmp3_;
+#line 2240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo;
+#line 2240 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (_tmp4_, &_tmp5_);
+#line 2240 "/home/jens/Source/shotwell/src/Photo.vala"
+ other_photo_id = _tmp5_;
+#line 2242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo;
+#line 2242 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (self != _tmp7_) {
+#line 17511 "Photo.c"
+ PhotoID _tmp8_ = {0};
+ gint64 _tmp9_ = 0LL;
+#line 2242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_id;
+#line 2242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_.id;
+#line 2242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp9_ != PHOTO_ID_INVALID;
+#line 17520 "Photo.c"
+ } else {
+#line 2242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = FALSE;
+#line 17524 "Photo.c"
+ }
+#line 2242 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 17528 "Photo.c"
+ PhotoID _tmp10_ = {0};
+ gint64 _tmp11_ = 0LL;
+ PhotoID _tmp12_ = {0};
+ gint64 _tmp13_ = 0LL;
+#line 2243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_id;
+#line 2243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_.id;
+#line 2243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = other_photo_id;
+#line 2243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_.id;
+#line 2243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp11_ != _tmp13_, "photo_id.id != other_photo_id.id");
+#line 17543 "Photo.c"
+ }
+ }
+#line 2247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = source;
+#line 2247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = DATA_SOURCE_CLASS (photo_parent_class)->equals (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource), TYPE_DATA_SOURCE, DataSource), _tmp14_);
+#line 2247 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp15_;
+#line 2247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 2247 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 17556 "Photo.c"
+}
+
+
+static void photo_file_exif_updated (Photo* self) {
+ GFile* file = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInfo* info = NULL;
+ GTimeVal timestamp = {0};
+ GFileInfo* _tmp7_ = NULL;
+ GTimeVal _tmp8_ = {0};
+ PhotoFileInterrogator* interrogator = NULL;
+ PhotoFileInterrogator* _tmp9_ = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ DetectedPhotoInformation* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ DetectedPhotoInformation* _tmp16_ = NULL;
+ gboolean success = FALSE;
+ gboolean _tmp37_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2251 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2252 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 2252 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp0_;
+#line 2254 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = NULL;
+#line 17584 "Photo.c"
+ {
+ GFileInfo* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+#line 2256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = g_file_query_info (file, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 2256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp2_;
+#line 2256 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17595 "Photo.c"
+ goto __catch328_g_error;
+ }
+#line 2256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp1_;
+#line 2256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 2256 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 2256 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = _tmp3_;
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 17608 "Photo.c"
+ }
+ goto __finally328;
+ __catch328_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 2259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 2259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 2259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = err->message;
+#line 2259 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_error ("Photo.vala:2259: Unable to read file information for %s: %s", _tmp5_, _tmp6_);
+#line 2259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp5_);
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 17633 "Photo.c"
+ }
+ __finally328:
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2255 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17648 "Photo.c"
+ }
+#line 2262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = info;
+#line 2262 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_info_get_modification_time (_tmp7_, &_tmp8_);
+#line 2262 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp = _tmp8_;
+#line 2265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_file_interrogator_new (file, PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL);
+#line 2265 "/home/jens/Source/shotwell/src/Photo.vala"
+ interrogator = _tmp9_;
+#line 17660 "Photo.c"
+ {
+#line 2267 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_interrogator_interrogate (interrogator, &_inner_error_);
+#line 2267 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 17666 "Photo.c"
+ goto __catch329_g_error;
+ }
+ }
+ goto __finally329;
+ __catch329_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GError* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 2269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = g_file_get_path (file);
+#line 2269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 2269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = err;
+#line 2269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_->message;
+#line 2269 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:2269: Unable to interrogate photo file %s: %s", _tmp11_, _tmp13_);
+#line 2269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp11_);
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 17696 "Photo.c"
+ }
+ __finally329:
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2266 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17713 "Photo.c"
+ }
+#line 2272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = photo_file_interrogator_get_detected_photo_information (interrogator);
+#line 2272 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp14_;
+#line 2273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = detected;
+#line 2273 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_ == NULL) {
+#line 2273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = TRUE;
+#line 17725 "Photo.c"
+ } else {
+ gboolean _tmp17_ = FALSE;
+#line 2273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_file_interrogator_get_is_photo_corrupted (interrogator);
+#line 2273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp17_;
+#line 17732 "Photo.c"
+ }
+#line 2273 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp15_) {
+#line 17736 "Photo.c"
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 2274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 2274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_;
+#line 2274 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("Photo.vala:2274: file_exif_updated: %s no longer an image", _tmp19_);
+#line 2274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp19_);
+#line 2276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 2276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 2276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 2276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 2276 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17757 "Photo.c"
+ }
+ {
+ PhotoRow* _tmp20_ = NULL;
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = self->row;
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 17765 "Photo.c"
+ {
+ PhotoTable* _tmp21_ = NULL;
+ PhotoTable* _tmp22_ = NULL;
+ PhotoID _tmp23_ = {0};
+ GFileInfo* _tmp24_ = NULL;
+ gint64 _tmp25_ = 0LL;
+ GTimeVal _tmp26_ = {0};
+ glong _tmp27_ = 0L;
+ DetectedPhotoInformation* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ DetectedPhotoInformation* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ DetectedPhotoInformation* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ PhotoRow* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_table_get_instance ();
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (self, &_tmp23_);
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = info;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = g_file_info_get_size (_tmp24_);
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = timestamp;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_.tv_sec;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = detected;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_->md5;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = detected;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_->exif_md5;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = detected;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_->thumbnail_md5;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = self->row;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo_table_master_exif_updated (_tmp22_, &_tmp23_, _tmp25_, _tmp27_, _tmp29_, _tmp31_, _tmp33_, _tmp34_);
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ success = _tmp35_;
+#line 2281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp22_);
+#line 17816 "Photo.c"
+ }
+ __finally330:
+ {
+ PhotoRow* _tmp36_ = NULL;
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = self->row;
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17825 "Photo.c"
+ }
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2280 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 17843 "Photo.c"
+ }
+ }
+#line 2285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = success;
+#line 2285 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp37_) {
+#line 17850 "Photo.c"
+ Alteration* _tmp38_ = NULL;
+ Alteration* _tmp39_ = NULL;
+#line 2286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = alteration_new_from_list ("metadata:exif,metadata:md5");
+#line 2286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tmp38_;
+#line 2286 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp39_);
+#line 2286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp39_);
+#line 17861 "Photo.c"
+ }
+#line 2251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 2251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_interrogator_unref0 (interrogator);
+#line 2251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 2251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 17871 "Photo.c"
+}
+
+
+static guint64 photo_real_get_filesize (MediaSource* base) {
+ Photo * self;
+ guint64 result = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 2291 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 17881 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 17888 "Photo.c"
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+#line 2293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->backing_photo_row;
+#line 2293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->filesize;
+#line 2293 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (guint64) _tmp2_;
+#line 17898 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17905 "Photo.c"
+ }
+#line 2293 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 17909 "Photo.c"
+ }
+ __finally331:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17918 "Photo.c"
+ }
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2292 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 17926 "Photo.c"
+ }
+}
+
+
+static guint64 photo_real_get_master_filesize (MediaSource* base) {
+ Photo * self;
+ guint64 result = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 2297 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 17937 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 17944 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ BackingPhotoRow* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+#line 2299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->master;
+#line 2299 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->filesize;
+#line 2299 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (guint64) _tmp3_;
+#line 17957 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17964 "Photo.c"
+ }
+#line 2299 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 17968 "Photo.c"
+ }
+ __finally332:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 17977 "Photo.c"
+ }
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2298 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 17985 "Photo.c"
+ }
+}
+
+
+guint64 photo_get_editable_filesize (Photo* self) {
+ guint64 result = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 2303 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0ULL);
+#line 17995 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 18002 "Photo.c"
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+#line 2305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->editable;
+#line 2305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->filesize;
+#line 2305 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (guint64) _tmp2_;
+#line 18012 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18019 "Photo.c"
+ }
+#line 2305 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 18023 "Photo.c"
+ }
+ __finally333:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18032 "Photo.c"
+ }
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2304 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0ULL;
+#line 18040 "Photo.c"
+ }
+}
+
+
+static time_t photo_real_get_exposure_time (Dateable* base) {
+ Photo * self;
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+#line 2309 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2310 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->cached_exposure_time;
+#line 2310 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 2310 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 18057 "Photo.c"
+}
+
+
+static gchar* photo_real_get_basename (MediaSource* base) {
+ Photo * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2313 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 18067 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 18074 "Photo.c"
+ {
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 2315 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->file_title;
+#line 2315 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 2315 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 18084 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18091 "Photo.c"
+ }
+#line 2315 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 18095 "Photo.c"
+ }
+ __finally334:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18104 "Photo.c"
+ }
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2314 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 18112 "Photo.c"
+ }
+}
+
+
+static gchar* photo_real_get_title (MediaSource* base) {
+ Photo * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2319 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 18123 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 18130 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 2321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->title;
+#line 2321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 2321 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 18143 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18150 "Photo.c"
+ }
+#line 2321 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 18154 "Photo.c"
+ }
+ __finally335:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18163 "Photo.c"
+ }
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2320 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 18171 "Photo.c"
+ }
+}
+
+
+static gchar* photo_real_get_comment (MediaSource* base) {
+ Photo * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2325 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 18182 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 18189 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 2327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->comment;
+#line 2327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 2327 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 18202 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18209 "Photo.c"
+ }
+#line 2327 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 18213 "Photo.c"
+ }
+ __finally336:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18222 "Photo.c"
+ }
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2326 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 18230 "Photo.c"
+ }
+}
+
+
+static void photo_real_set_title (MediaSource* base, const gchar* title) {
+ Photo * self;
+ gchar* new_title = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean committed = FALSE;
+ gboolean _tmp18_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2331 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = title;
+#line 2332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_source_prep_title (_tmp0_);
+#line 2332 "/home/jens/Source/shotwell/src/Photo.vala"
+ new_title = _tmp1_;
+#line 2334 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 18253 "Photo.c"
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 18260 "Photo.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ PhotoRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ PhotoTable* _tmp7_ = NULL;
+ PhotoTable* _tmp8_ = NULL;
+ PhotoRow* _tmp9_ = NULL;
+ PhotoID _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 2336 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = new_title;
+#line 2336 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2336 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->title;
+#line 2336 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_strcmp0 (_tmp3_, _tmp5_) == 0) {
+#line 18280 "Photo.c"
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18287 "Photo.c"
+ }
+#line 2337 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (new_title);
+#line 2337 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18293 "Photo.c"
+ }
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_table_get_instance ();
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->photo_id;
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = new_title;
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_table_set_title (_tmp8_, &_tmp10_, _tmp11_);
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp12_;
+#line 2339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp8_);
+#line 2340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = committed;
+#line 2340 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_) {
+#line 18315 "Photo.c"
+ PhotoRow* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 2341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = new_title;
+#line 2341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 2341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp14_->title);
+#line 2341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_->title = _tmp16_;
+#line 18329 "Photo.c"
+ }
+ }
+ __finally337:
+ {
+ PhotoRow* _tmp17_ = NULL;
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = self->row;
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18339 "Photo.c"
+ }
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (new_title);
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2335 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18351 "Photo.c"
+ }
+ }
+#line 2344 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = committed;
+#line 2344 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp18_) {
+#line 18358 "Photo.c"
+ Alteration* _tmp19_ = NULL;
+ Alteration* _tmp20_ = NULL;
+#line 2345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = alteration_new ("metadata", "name");
+#line 2345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 2345 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp20_);
+#line 2345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp20_);
+#line 18369 "Photo.c"
+ }
+#line 2331 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (new_title);
+#line 18373 "Photo.c"
+}
+
+
+static gboolean photo_real_set_comment (MediaSource* base, const gchar* comment) {
+ Photo * self;
+ gboolean result = FALSE;
+ gchar* new_comment = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean committed = FALSE;
+ gboolean _tmp18_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2348 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2349 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = comment;
+#line 2349 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_source_prep_comment (_tmp0_);
+#line 2349 "/home/jens/Source/shotwell/src/Photo.vala"
+ new_comment = _tmp1_;
+#line 2351 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 18396 "Photo.c"
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 18403 "Photo.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ PhotoRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ PhotoTable* _tmp7_ = NULL;
+ PhotoTable* _tmp8_ = NULL;
+ PhotoRow* _tmp9_ = NULL;
+ PhotoID _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 2353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = new_comment;
+#line 2353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->comment;
+#line 2353 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_strcmp0 (_tmp3_, _tmp5_) == 0) {
+#line 2354 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 18425 "Photo.c"
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18432 "Photo.c"
+ }
+#line 2354 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (new_comment);
+#line 2354 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 18438 "Photo.c"
+ }
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_table_get_instance ();
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->photo_id;
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = new_comment;
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_table_set_comment (_tmp8_, &_tmp10_, _tmp11_);
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp12_;
+#line 2356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp8_);
+#line 2357 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = committed;
+#line 2357 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_) {
+#line 18460 "Photo.c"
+ PhotoRow* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 2358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = new_comment;
+#line 2358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 2358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp14_->comment);
+#line 2358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_->comment = _tmp16_;
+#line 18474 "Photo.c"
+ }
+ }
+ __finally338:
+ {
+ PhotoRow* _tmp17_ = NULL;
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = self->row;
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18484 "Photo.c"
+ }
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (new_comment);
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2352 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 18496 "Photo.c"
+ }
+ }
+#line 2361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = committed;
+#line 2361 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp18_) {
+#line 18503 "Photo.c"
+ Alteration* _tmp19_ = NULL;
+ Alteration* _tmp20_ = NULL;
+#line 2362 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = alteration_new ("metadata", "comment");
+#line 2362 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 2362 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp20_);
+#line 2362 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp20_);
+#line 18514 "Photo.c"
+ }
+#line 2364 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = committed;
+#line 2364 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (new_comment);
+#line 2364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 18522 "Photo.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 2374 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 18529 "Photo.c"
+}
+
+
+void photo_set_import_id (Photo* self, ImportID* import_id) {
+ GError* dberr = NULL;
+ GError* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2367 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2367 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (import_id != NULL);
+#line 2368 "/home/jens/Source/shotwell/src/Photo.vala"
+ dberr = NULL;
+#line 18543 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 18550 "Photo.c"
+ {
+ {
+ PhotoTable* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoRow* _tmp3_ = NULL;
+ PhotoID _tmp4_ = {0};
+ ImportID _tmp5_ = {0};
+ PhotoRow* _tmp7_ = NULL;
+ ImportID _tmp8_ = {0};
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_table_get_instance ();
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->photo_id;
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = *import_id;
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_set_import_id (_tmp2_, &_tmp4_, &_tmp5_, &_inner_error_);
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp2_);
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 18578 "Photo.c"
+ goto __catch340_database_error;
+ }
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18587 "Photo.c"
+ }
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (dberr);
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2371 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18597 "Photo.c"
+ }
+#line 2372 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 2372 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = *import_id;
+#line 2372 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_->import_id = _tmp8_;
+#line 18605 "Photo.c"
+ }
+ goto __finally340;
+ __catch340_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 2374 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = err;
+#line 2374 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _g_error_copy0 (_tmp9_);
+#line 2374 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (dberr);
+#line 2374 "/home/jens/Source/shotwell/src/Photo.vala"
+ dberr = _tmp10_;
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 18627 "Photo.c"
+ }
+ __finally340:
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 18632 "Photo.c"
+ {
+ PhotoRow* _tmp11_ = NULL;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18639 "Photo.c"
+ }
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (dberr);
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2370 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18649 "Photo.c"
+ }
+ }
+ __finally339:
+ {
+ PhotoRow* _tmp12_ = NULL;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->row;
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 18659 "Photo.c"
+ }
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (dberr);
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2369 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18671 "Photo.c"
+ }
+ }
+#line 2378 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = dberr;
+#line 2378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_ == NULL) {
+#line 18678 "Photo.c"
+ Alteration* _tmp14_ = NULL;
+ Alteration* _tmp15_ = NULL;
+#line 2379 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = alteration_new ("metadata", "import-id");
+#line 2379 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_;
+#line 2379 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp15_);
+#line 2379 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp15_);
+#line 18689 "Photo.c"
+ } else {
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ GError* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+#line 2381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 2381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 2381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = dberr;
+#line 2381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->message;
+#line 2381 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:2381: Unable to write import ID for %s: %s", _tmp17_, _tmp19_);
+#line 2381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp17_);
+#line 18707 "Photo.c"
+ }
+#line 2367 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (dberr);
+#line 18711 "Photo.c"
+}
+
+
+void photo_set_title_persistent (Photo* self, const gchar* title, GError** error) {
+ PhotoFileReader* source = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ PhotoFileReader* _tmp8_ = NULL;
+ PhotoMetadata* _tmp9_ = NULL;
+ PhotoMetadata* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ PhotoFileMetadataWriter* writer = NULL;
+ PhotoFileReader* _tmp12_ = NULL;
+ PhotoFileMetadataWriter* _tmp13_ = NULL;
+ PhotoFileReader* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2384 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2385 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_source_reader (self);
+#line 2385 "/home/jens/Source/shotwell/src/Photo.vala"
+ source = _tmp0_;
+#line 2388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = source;
+#line 2388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_format_can_write_metadata (_tmp2_);
+#line 2388 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp3_) {
+#line 18748 "Photo.c"
+ PhotoFileReader* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 2389 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = source;
+#line 2389 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2389 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 2389 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:2389: No photo file writer available for %s", _tmp6_);
+#line 2389 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp6_);
+#line 2391 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = title;
+#line 2391 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp7_);
+#line 2393 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2393 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18771 "Photo.c"
+ }
+#line 2396 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = source;
+#line 2396 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_file_reader_read_metadata (_tmp8_, &_inner_error_);
+#line 2396 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp9_;
+#line 2396 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2396 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2396 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2396 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18787 "Photo.c"
+ }
+#line 2397 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = metadata;
+#line 2397 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = title;
+#line 2397 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_title (_tmp10_, _tmp11_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = source;
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_file_reader_create_metadata_writer (_tmp12_, &_inner_error_);
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ writer = _tmp13_;
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2399 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18811 "Photo.c"
+ }
+#line 2400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = source;
+#line 2400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 2400 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_blacklist_file (_tmp16_, "Photo.set_persistent_title");
+#line 2400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp16_);
+#line 18823 "Photo.c"
+ {
+ PhotoFileMetadataWriter* _tmp17_ = NULL;
+ PhotoMetadata* _tmp18_ = NULL;
+#line 2402 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = writer;
+#line 2402 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = metadata;
+#line 2402 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp17_, _tmp18_, &_inner_error_);
+#line 2402 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 18835 "Photo.c"
+ goto __finally341;
+ }
+ }
+ __finally341:
+ {
+ PhotoFileReader* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+#line 2404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = source;
+#line 2404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_;
+#line 2404 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_unblacklist_file (_tmp21_);
+#line 2404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp21_);
+#line 18854 "Photo.c"
+ }
+#line 2401 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2401 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2401 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 2401 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2401 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2401 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18868 "Photo.c"
+ }
+#line 2407 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = title;
+#line 2407 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp22_);
+#line 2409 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_exif_updated (self);
+#line 2384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 2384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 18882 "Photo.c"
+}
+
+
+void photo_set_comment_persistent (Photo* self, const gchar* comment, GError** error) {
+ PhotoFileReader* source = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ PhotoFileReader* _tmp8_ = NULL;
+ PhotoMetadata* _tmp9_ = NULL;
+ PhotoMetadata* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ PhotoFileMetadataWriter* writer = NULL;
+ PhotoFileReader* _tmp12_ = NULL;
+ PhotoFileMetadataWriter* _tmp13_ = NULL;
+ PhotoFileReader* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2412 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2413 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_source_reader (self);
+#line 2413 "/home/jens/Source/shotwell/src/Photo.vala"
+ source = _tmp0_;
+#line 2416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = source;
+#line 2416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_format_can_write_metadata (_tmp2_);
+#line 2416 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp3_) {
+#line 18919 "Photo.c"
+ PhotoFileReader* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 2417 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = source;
+#line 2417 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2417 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 2417 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:2417: No photo file writer available for %s", _tmp6_);
+#line 2417 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp6_);
+#line 2419 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = comment;
+#line 2419 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp7_);
+#line 2421 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2421 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18942 "Photo.c"
+ }
+#line 2424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = source;
+#line 2424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_file_reader_read_metadata (_tmp8_, &_inner_error_);
+#line 2424 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp9_;
+#line 2424 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2424 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2424 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18958 "Photo.c"
+ }
+#line 2425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = metadata;
+#line 2425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = comment;
+#line 2425 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_comment (_tmp10_, _tmp11_);
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = source;
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_file_reader_create_metadata_writer (_tmp12_, &_inner_error_);
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ writer = _tmp13_;
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2427 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 18982 "Photo.c"
+ }
+#line 2428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = source;
+#line 2428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 2428 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_blacklist_file (_tmp16_, "Photo.set_persistent_comment");
+#line 2428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp16_);
+#line 18994 "Photo.c"
+ {
+ PhotoFileMetadataWriter* _tmp17_ = NULL;
+ PhotoMetadata* _tmp18_ = NULL;
+#line 2430 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = writer;
+#line 2430 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = metadata;
+#line 2430 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp17_, _tmp18_, &_inner_error_);
+#line 2430 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19006 "Photo.c"
+ goto __finally342;
+ }
+ }
+ __finally342:
+ {
+ PhotoFileReader* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+#line 2432 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = source;
+#line 2432 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2432 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_;
+#line 2432 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_unblacklist_file (_tmp21_);
+#line 2432 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp21_);
+#line 19025 "Photo.c"
+ }
+#line 2429 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2429 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2429 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 2429 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2429 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2429 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19039 "Photo.c"
+ }
+#line 2435 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = comment;
+#line 2435 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp22_);
+#line 2437 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_exif_updated (self);
+#line 2412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 2412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 19053 "Photo.c"
+}
+
+
+static void photo_real_set_exposure_time (Dateable* base, time_t time) {
+ Photo * self;
+ gboolean committed = FALSE;
+ gboolean _tmp12_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2440 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 19064 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 19071 "Photo.c"
+ {
+ PhotoTable* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoRow* _tmp3_ = NULL;
+ PhotoID _tmp4_ = {0};
+ time_t _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_table_get_instance ();
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->photo_id;
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = time;
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_table_set_exposure_time (_tmp2_, &_tmp4_, _tmp5_);
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp6_;
+#line 2443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp2_);
+#line 2444 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = committed;
+#line 2444 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_) {
+#line 19100 "Photo.c"
+ PhotoRow* _tmp8_ = NULL;
+ time_t _tmp9_ = 0;
+ time_t _tmp10_ = 0;
+#line 2445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->row;
+#line 2445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = time;
+#line 2445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_->exposure_time = _tmp9_;
+#line 2446 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = time;
+#line 2446 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->cached_exposure_time = _tmp10_;
+#line 19114 "Photo.c"
+ }
+ }
+ __finally343:
+ {
+ PhotoRow* _tmp11_ = NULL;
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 19124 "Photo.c"
+ }
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2442 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19134 "Photo.c"
+ }
+ }
+#line 2450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = committed;
+#line 2450 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 19141 "Photo.c"
+ Alteration* _tmp13_ = NULL;
+ Alteration* _tmp14_ = NULL;
+#line 2451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = alteration_new ("metadata", "exposure-time");
+#line 2451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_;
+#line 2451 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp14_);
+#line 2451 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp14_);
+#line 19152 "Photo.c"
+ }
+}
+
+
+void photo_set_exposure_time_persistent (Photo* self, time_t time, GError** error) {
+ PhotoFileReader* source = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ PhotoFileReader* _tmp8_ = NULL;
+ PhotoMetadata* _tmp9_ = NULL;
+ PhotoMetadata* _tmp10_ = NULL;
+ time_t _tmp11_ = 0;
+ MetadataDateTime* _tmp12_ = NULL;
+ MetadataDateTime* _tmp13_ = NULL;
+ PhotoFileMetadataWriter* writer = NULL;
+ PhotoFileReader* _tmp14_ = NULL;
+ PhotoFileMetadataWriter* _tmp15_ = NULL;
+ PhotoFileReader* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ time_t _tmp24_ = 0;
+ GError * _inner_error_ = NULL;
+#line 2454 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2455 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_source_reader (self);
+#line 2455 "/home/jens/Source/shotwell/src/Photo.vala"
+ source = _tmp0_;
+#line 2458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = source;
+#line 2458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_format_can_write_metadata (_tmp2_);
+#line 2458 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp3_) {
+#line 19192 "Photo.c"
+ PhotoFileReader* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+#line 2459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = source;
+#line 2459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 2459 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:2459: No photo file writer available for %s", _tmp6_);
+#line 2459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp6_);
+#line 2461 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = time;
+#line 2461 "/home/jens/Source/shotwell/src/Photo.vala"
+ dateable_set_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATEABLE, Dateable), _tmp7_);
+#line 2463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2463 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19215 "Photo.c"
+ }
+#line 2466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = source;
+#line 2466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_file_reader_read_metadata (_tmp8_, &_inner_error_);
+#line 2466 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp9_;
+#line 2466 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2466 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2466 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19231 "Photo.c"
+ }
+#line 2467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = metadata;
+#line 2467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = time;
+#line 2467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = metadata_date_time_new (_tmp11_);
+#line 2467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 2467 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_exposure_date_time (_tmp10_, _tmp13_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 2467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (_tmp13_);
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = source;
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_file_reader_create_metadata_writer (_tmp14_, &_inner_error_);
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ writer = _tmp15_;
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2469 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19261 "Photo.c"
+ }
+#line 2470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = source;
+#line 2470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_;
+#line 2470 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_blacklist_file (_tmp18_, "Photo.set_exposure_time_persistent");
+#line 2470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp18_);
+#line 19273 "Photo.c"
+ {
+ PhotoFileMetadataWriter* _tmp19_ = NULL;
+ PhotoMetadata* _tmp20_ = NULL;
+#line 2472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = writer;
+#line 2472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = metadata;
+#line 2472 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp19_, _tmp20_, &_inner_error_);
+#line 2472 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 19285 "Photo.c"
+ goto __finally344;
+ }
+ }
+ __finally344:
+ {
+ PhotoFileReader* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+#line 2474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = source;
+#line 2474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_;
+#line 2474 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_unblacklist_file (_tmp23_);
+#line 2474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp23_);
+#line 19304 "Photo.c"
+ }
+#line 2471 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2471 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 2471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 2471 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19318 "Photo.c"
+ }
+#line 2477 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = time;
+#line 2477 "/home/jens/Source/shotwell/src/Photo.vala"
+ dateable_set_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATEABLE, Dateable), _tmp24_);
+#line 2479 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_exif_updated (self);
+#line 2454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 2454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (source);
+#line 19332 "Photo.c"
+}
+
+
+/**
+ * @brief Returns the width and height of the Photo after various
+ * arbitrary stages of the pipeline have been applied in
+ * the same order they're applied in get_pixbuf_with_options.
+ * With no argument passed, it works exactly like the
+ * previous incarnation did.
+ *
+ * @param disallowed_steps Which pipeline steps should NOT
+ * be taken into account when computing image dimensions
+ * (matching the convention set by get_pixbuf_with_options()).
+ * Pipeline steps that do not affect the image geometry are
+ * ignored.
+ */
+static void photo_real_get_dimensions (MediaSource* base, PhotoException disallowed_steps, Dimensions* result) {
+ Photo * self;
+ Dimensions returned_dims = {0};
+ Dimensions _tmp0_ = {0};
+ PhotoException _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ PhotoException _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ PhotoException _tmp22_ = 0;
+ gboolean _tmp23_ = FALSE;
+#line 2495 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 2497 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_raw_dimensions (self, &_tmp0_);
+#line 2497 "/home/jens/Source/shotwell/src/Photo.vala"
+ returned_dims = _tmp0_;
+#line 2500 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = disallowed_steps;
+#line 2500 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_exception_allows (_tmp1_, PHOTO_EXCEPTION_ORIENTATION);
+#line 2500 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 19371 "Photo.c"
+ Orientation ori_tmp = 0;
+ Orientation _tmp3_ = 0;
+ Orientation _tmp4_ = 0;
+#line 2501 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_orientation (self);
+#line 2501 "/home/jens/Source/shotwell/src/Photo.vala"
+ ori_tmp = _tmp3_;
+#line 2504 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = ori_tmp;
+#line 2504 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp4_) {
+#line 2504 "/home/jens/Source/shotwell/src/Photo.vala"
+ case ORIENTATION_LEFT_TOP:
+#line 2504 "/home/jens/Source/shotwell/src/Photo.vala"
+ case ORIENTATION_RIGHT_TOP:
+#line 2504 "/home/jens/Source/shotwell/src/Photo.vala"
+ case ORIENTATION_LEFT_BOTTOM:
+#line 2504 "/home/jens/Source/shotwell/src/Photo.vala"
+ case ORIENTATION_RIGHT_BOTTOM:
+#line 19391 "Photo.c"
+ {
+ gint width_tmp = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 2510 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = returned_dims;
+#line 2510 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_.width;
+#line 2510 "/home/jens/Source/shotwell/src/Photo.vala"
+ width_tmp = _tmp6_;
+#line 2512 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = returned_dims;
+#line 2512 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_.height;
+#line 2512 "/home/jens/Source/shotwell/src/Photo.vala"
+ returned_dims.width = _tmp8_;
+#line 2513 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = width_tmp;
+#line 2513 "/home/jens/Source/shotwell/src/Photo.vala"
+ returned_dims.height = _tmp9_;
+#line 2514 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 19417 "Photo.c"
+ }
+ default:
+ {
+#line 2518 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 19423 "Photo.c"
+ }
+ }
+ }
+#line 2523 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = disallowed_steps;
+#line 2523 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_exception_allows (_tmp10_, PHOTO_EXCEPTION_STRAIGHTEN);
+#line 2523 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 19433 "Photo.c"
+ gdouble x_size = 0.0;
+ gdouble y_size = 0.0;
+ gdouble angle = 0.0;
+ gdouble _tmp12_ = 0.0;
+ Dimensions _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gdouble _tmp17_ = 0.0;
+ gdouble _tmp18_ = 0.0;
+ gdouble _tmp19_ = 0.0;
+ gdouble _tmp20_ = 0.0;
+ gdouble _tmp21_ = 0.0;
+#line 2525 "/home/jens/Source/shotwell/src/Photo.vala"
+ angle = 0.0;
+#line 2527 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_straighten (self, &_tmp12_);
+#line 2527 "/home/jens/Source/shotwell/src/Photo.vala"
+ angle = _tmp12_;
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = returned_dims;
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_.width;
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = returned_dims;
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_.height;
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = angle;
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ compute_arb_rotated_size ((gdouble) _tmp14_, (gdouble) _tmp16_, _tmp17_, &_tmp18_, &_tmp19_);
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_size = _tmp18_;
+#line 2529 "/home/jens/Source/shotwell/src/Photo.vala"
+ y_size = _tmp19_;
+#line 2531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = x_size;
+#line 2531 "/home/jens/Source/shotwell/src/Photo.vala"
+ returned_dims.width = (gint) _tmp20_;
+#line 2532 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = y_size;
+#line 2532 "/home/jens/Source/shotwell/src/Photo.vala"
+ returned_dims.height = (gint) _tmp21_;
+#line 19477 "Photo.c"
+ }
+#line 2536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = disallowed_steps;
+#line 2536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = photo_exception_allows (_tmp22_, PHOTO_EXCEPTION_CROP);
+#line 2536 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp23_) {
+#line 19485 "Photo.c"
+ Box crop = {0};
+ PhotoException _tmp24_ = 0;
+ Box _tmp25_ = {0};
+ gboolean _tmp26_ = FALSE;
+#line 2538 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = disallowed_steps;
+#line 2538 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = photo_get_crop (self, &_tmp25_, _tmp24_);
+#line 2538 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop = _tmp25_;
+#line 2538 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp26_) {
+#line 19498 "Photo.c"
+ Dimensions _tmp27_ = {0};
+#line 2539 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_get_dimensions (&crop, &_tmp27_);
+#line 2539 "/home/jens/Source/shotwell/src/Photo.vala"
+ returned_dims = _tmp27_;
+#line 19504 "Photo.c"
+ }
+ }
+#line 2542 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = returned_dims;
+#line 2542 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19511 "Photo.c"
+}
+
+
+static void photo_locked_create_adjustments_from_data (Photo* self) {
+ PixelTransformationBundle* _tmp0_ = NULL;
+ KeyValueMap* map = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ KeyValueMap* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp6_ = NULL;
+ PixelTransformer* _tmp7_ = NULL;
+#line 2546 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2547 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = pixel_transformation_bundle_new ();
+#line 2547 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 2547 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = _tmp0_;
+#line 2549 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_transformation (self, "adjustments");
+#line 2549 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp1_;
+#line 2550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = map;
+#line 2550 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ == NULL) {
+#line 19538 "Photo.c"
+ PixelTransformationBundle* _tmp3_ = NULL;
+#line 2551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->adjustments;
+#line 2551 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixel_transformation_bundle_set_to_identity (_tmp3_);
+#line 19544 "Photo.c"
+ } else {
+ PixelTransformationBundle* _tmp4_ = NULL;
+ KeyValueMap* _tmp5_ = NULL;
+#line 2553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->adjustments;
+#line 2553 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = map;
+#line 2553 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixel_transformation_bundle_load (_tmp4_, _tmp5_);
+#line 19554 "Photo.c"
+ }
+#line 2555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->adjustments;
+#line 2555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = pixel_transformation_bundle_generate_transformer (_tmp6_);
+#line 2555 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 2555 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformer = _tmp7_;
+#line 2546 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 19566 "Photo.c"
+}
+
+
+PixelTransformationBundle* photo_get_color_adjustments (Photo* self) {
+ PixelTransformationBundle* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2559 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 19575 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 19582 "Photo.c"
+ {
+ PixelTransformationBundle* _tmp1_ = NULL;
+ PixelTransformationBundle* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp3_ = NULL;
+#line 2561 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->adjustments;
+#line 2561 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 2562 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_locked_create_adjustments_from_data (self);
+#line 19593 "Photo.c"
+ }
+#line 2564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->adjustments;
+#line 2564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = pixel_transformation_bundle_copy (_tmp2_);
+#line 2564 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 19601 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 19608 "Photo.c"
+ }
+#line 2564 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 19612 "Photo.c"
+ }
+ __finally345:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 19621 "Photo.c"
+ }
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2560 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 19629 "Photo.c"
+ }
+}
+
+
+PixelTransformer* photo_get_pixel_transformer (Photo* self) {
+ PixelTransformer* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2568 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 19639 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 19646 "Photo.c"
+ {
+ PixelTransformer* _tmp1_ = NULL;
+ PixelTransformer* _tmp2_ = NULL;
+ PixelTransformer* _tmp3_ = NULL;
+#line 2570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->transformer;
+#line 2570 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 2571 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_locked_create_adjustments_from_data (self);
+#line 19657 "Photo.c"
+ }
+#line 2573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->transformer;
+#line 2573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = pixel_transformer_copy (_tmp2_);
+#line 2573 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 19665 "Photo.c"
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 19672 "Photo.c"
+ }
+#line 2573 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 19676 "Photo.c"
+ }
+ __finally346:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 19685 "Photo.c"
+ }
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2569 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 19693 "Photo.c"
+ }
+}
+
+
+gboolean photo_has_color_adjustments (Photo* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 2577 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2578 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_has_transformation (self, "adjustments");
+#line 2578 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 2578 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 19709 "Photo.c"
+}
+
+
+PixelTransformation* photo_get_color_adjustment (Photo* self, PixelTransformationType type) {
+ PixelTransformation* result = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+ PixelTransformationType _tmp2_ = 0;
+ PixelTransformation* _tmp3_ = NULL;
+ PixelTransformation* _tmp4_ = NULL;
+#line 2581 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_color_adjustments (self);
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = type;
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = pixel_transformation_bundle_get_transformation (_tmp1_, _tmp2_);
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (_tmp1_);
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 2582 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 19738 "Photo.c"
+}
+
+
+void photo_set_color_adjustments (Photo* self, PixelTransformationBundle* new_adjustments) {
+ PixelTransformationBundle* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ KeyValueMap* map = NULL;
+ PixelTransformationBundle* _tmp8_ = NULL;
+ KeyValueMap* _tmp9_ = NULL;
+ gboolean committed = FALSE;
+ gboolean _tmp39_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2585 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2585 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (new_adjustments));
+#line 2588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = new_adjustments;
+#line 2588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = pixel_transformation_bundle_is_identity (_tmp0_);
+#line 2588 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 19761 "Photo.c"
+ gboolean _result_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 19770 "Photo.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 2591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_remove_transformation (self, "adjustments");
+#line 2591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _result_ = _tmp3_;
+#line 2592 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 2592 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = NULL;
+#line 2593 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 2593 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformer = NULL;
+#line 19785 "Photo.c"
+ }
+ __finally347:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 19794 "Photo.c"
+ }
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2590 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19804 "Photo.c"
+ }
+ }
+#line 2596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _result_;
+#line 2596 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 19811 "Photo.c"
+ Alteration* _tmp6_ = NULL;
+ Alteration* _tmp7_ = NULL;
+#line 2597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = alteration_new ("image", "color-adjustments");
+#line 2597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 2597 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp7_);
+#line 2597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp7_);
+#line 19822 "Photo.c"
+ }
+#line 2599 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 19826 "Photo.c"
+ }
+#line 2603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = new_adjustments;
+#line 2603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = pixel_transformation_bundle_save (_tmp8_, "adjustments");
+#line 2603 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp9_;
+#line 19834 "Photo.c"
+ {
+ PhotoRow* _tmp10_ = NULL;
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->row;
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 19841 "Photo.c"
+ {
+ gboolean _tmp11_ = FALSE;
+ PixelTransformer* _tmp12_ = NULL;
+ KeyValueMap* _tmp36_ = NULL;
+ gboolean _tmp37_ = FALSE;
+#line 2607 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->priv->transformer;
+#line 2607 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_ == NULL) {
+#line 2607 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = TRUE;
+#line 19853 "Photo.c"
+ } else {
+ PixelTransformationBundle* _tmp13_ = NULL;
+#line 2607 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->priv->adjustments;
+#line 2607 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp13_ == NULL;
+#line 19860 "Photo.c"
+ }
+#line 2607 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 19864 "Photo.c"
+ PixelTransformationBundle* _tmp14_ = NULL;
+ PixelTransformationBundle* _tmp15_ = NULL;
+ PixelTransformationBundle* _tmp16_ = NULL;
+ PixelTransformer* _tmp17_ = NULL;
+#line 2609 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = new_adjustments;
+#line 2609 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = pixel_transformation_bundle_copy (_tmp14_);
+#line 2609 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 2609 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = _tmp15_;
+#line 2610 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = new_adjustments;
+#line 2610 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = pixel_transformation_bundle_generate_transformer (_tmp16_);
+#line 2610 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 2610 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformer = _tmp17_;
+#line 19885 "Photo.c"
+ } else {
+ PixelTransformationBundle* _tmp34_ = NULL;
+ PixelTransformationBundle* _tmp35_ = NULL;
+ {
+ GeeIterator* _transformation_it = NULL;
+ PixelTransformationBundle* _tmp18_ = NULL;
+ GeeIterable* _tmp19_ = NULL;
+ GeeIterable* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+ GeeIterator* _tmp22_ = NULL;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = new_adjustments;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = pixel_transformation_bundle_get_transformations (_tmp18_);
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = gee_iterable_iterator (_tmp20_);
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp20_);
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _transformation_it = _tmp22_;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 19912 "Photo.c"
+ GeeIterator* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ PixelTransformation* transformation = NULL;
+ GeeIterator* _tmp25_ = NULL;
+ gpointer _tmp26_ = NULL;
+ PixelTransformer* _tmp27_ = NULL;
+ PixelTransformationBundle* _tmp28_ = NULL;
+ PixelTransformation* _tmp29_ = NULL;
+ PixelTransformationType _tmp30_ = 0;
+ PixelTransformation* _tmp31_ = NULL;
+ PixelTransformation* _tmp32_ = NULL;
+ PixelTransformation* _tmp33_ = NULL;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _transformation_it;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = gee_iterator_next (_tmp23_);
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp24_) {
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 19933 "Photo.c"
+ }
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _transformation_it;
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = gee_iterator_get (_tmp25_);
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ transformation = (PixelTransformation*) _tmp26_;
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = self->priv->transformer;
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = self->priv->adjustments;
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = transformation;
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = pixel_transformation_get_transformation_type (_tmp29_);
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = pixel_transformation_bundle_get_transformation (_tmp28_, _tmp30_);
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_;
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = transformation;
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixel_transformer_replace_transformation (_tmp27_, _tmp32_, _tmp33_);
+#line 2614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_unref0 (_tmp32_);
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_unref0 (transformation);
+#line 19961 "Photo.c"
+ }
+#line 2613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_transformation_it);
+#line 19965 "Photo.c"
+ }
+#line 2619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = new_adjustments;
+#line 2619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = pixel_transformation_bundle_copy (_tmp34_);
+#line 2619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 2619 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = _tmp35_;
+#line 19975 "Photo.c"
+ }
+#line 2622 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = map;
+#line 2622 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = photo_set_transformation (self, _tmp36_);
+#line 2622 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp37_;
+#line 19983 "Photo.c"
+ }
+ __finally348:
+ {
+ PhotoRow* _tmp38_ = NULL;
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = self->row;
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 19992 "Photo.c"
+ }
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2606 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 20004 "Photo.c"
+ }
+ }
+#line 2625 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = committed;
+#line 2625 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp39_) {
+#line 20011 "Photo.c"
+ Alteration* _tmp40_ = NULL;
+ Alteration* _tmp41_ = NULL;
+#line 2626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = alteration_new ("image", "color-adjustments");
+#line 2626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp40_;
+#line 2626 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp41_);
+#line 2626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp41_);
+#line 20022 "Photo.c"
+ }
+#line 2585 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 20026 "Photo.c"
+}
+
+
+static PhotoMetadata* photo_real_get_metadata (PhotoSource* base) {
+ Photo * self;
+ PhotoMetadata* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2630 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 20036 "Photo.c"
+ {
+ PhotoMetadata* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+ PhotoMetadata* _tmp4_ = NULL;
+ PhotoMetadata* _tmp5_ = NULL;
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_source_reader (self);
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_reader_read_metadata (_tmp2_, &_inner_error_);
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp2_);
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp4_;
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 20058 "Photo.c"
+ goto __catch349_g_error;
+ }
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp0_;
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (_tmp0_);
+#line 2632 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20071 "Photo.c"
+ }
+ goto __finally349;
+ __catch349_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 2631 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 2631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 2634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = err;
+#line 2634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->message;
+#line 2634 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:2634: Unable to load metadata: %s", _tmp7_);
+#line 2636 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 2636 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 2636 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20095 "Photo.c"
+ }
+ __finally349:
+#line 2631 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2631 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2631 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 20104 "Photo.c"
+}
+
+
+PhotoMetadata* photo_get_master_metadata (Photo* self, GError** error) {
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+ PhotoMetadata* _tmp4_ = NULL;
+ PhotoMetadata* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2640 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_master_reader (self);
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_reader_read_metadata (_tmp2_, &_inner_error_);
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp2_);
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp4_;
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 20137 "Photo.c"
+ }
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp0_;
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (_tmp0_);
+#line 2641 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20149 "Photo.c"
+}
+
+
+PhotoMetadata* photo_get_editable_metadata (Photo* self, GError** error) {
+ PhotoMetadata* result = NULL;
+ PhotoFileReader* reader = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2644 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 2645 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_editable_reader (self);
+#line 2645 "/home/jens/Source/shotwell/src/Photo.vala"
+ reader = _tmp0_;
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = reader;
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 20170 "Photo.c"
+ PhotoFileReader* _tmp3_ = NULL;
+ PhotoMetadata* _tmp4_ = NULL;
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = reader;
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_file_reader_read_metadata (_tmp3_, &_inner_error_);
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (_tmp1_);
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp4_;
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (_tmp1_);
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 20191 "Photo.c"
+ }
+ } else {
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (_tmp1_);
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 20198 "Photo.c"
+ }
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 2647 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20206 "Photo.c"
+}
+
+
+gboolean photo_persist_master_metadata (Photo* self, PhotoMetadata* metadata, PhotoReimportMasterState** state, GError** error) {
+ PhotoReimportMasterState* _vala_state = NULL;
+ gboolean result = FALSE;
+ PhotoFileReader* master_reader = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ PhotoFileMetadataWriter* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ PhotoFileMetadataWriter* _tmp6_ = NULL;
+ PhotoFileMetadataWriter* _tmp7_ = NULL;
+ PhotoFileMetadataWriter* _tmp8_ = NULL;
+ PhotoMetadata* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ PhotoReimportMasterState* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ PhotoReimportMasterState* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2653 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2653 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (metadata), FALSE);
+#line 2655 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_state);
+#line 2655 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = NULL;
+#line 2657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_master_reader (self);
+#line 2657 "/home/jens/Source/shotwell/src/Photo.vala"
+ master_reader = _tmp0_;
+#line 2659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = master_reader;
+#line 2659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_format_can_write_metadata (_tmp2_);
+#line 2659 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp3_) {
+#line 2660 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (master_reader);
+#line 2660 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 2660 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 20257 "Photo.c"
+ } else {
+#line 2660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_state);
+#line 20261 "Photo.c"
+ }
+#line 2660 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20265 "Photo.c"
+ }
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = master_reader;
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_file_reader_create_metadata_writer (_tmp5_, &_inner_error_);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp6_;
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (master_reader);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20281 "Photo.c"
+ }
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp4_;
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = NULL;
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = metadata;
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp8_, _tmp9_, &_inner_error_);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp8_);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp4_);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (master_reader);
+#line 2662 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20305 "Photo.c"
+ }
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_prepare_for_reimport_master (self, &_tmp11_, &_inner_error_);
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_state);
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = _tmp11_;
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp12_;
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp4_);
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (master_reader);
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20325 "Photo.c"
+ }
+#line 2664 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp10_) {
+#line 2665 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp4_);
+#line 2665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (master_reader);
+#line 2665 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 2665 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 20339 "Photo.c"
+ } else {
+#line 2665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_state);
+#line 20343 "Photo.c"
+ }
+#line 2665 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20347 "Photo.c"
+ }
+#line 2667 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _vala_state;
+#line 2667 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL, PhotoReimportMasterStateImpl)->metadata_only = TRUE;
+#line 2669 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 2669 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp4_);
+#line 2669 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (master_reader);
+#line 2669 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 2669 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 20363 "Photo.c"
+ } else {
+#line 2669 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_master_state_unref0 (_vala_state);
+#line 20367 "Photo.c"
+ }
+#line 2669 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20371 "Photo.c"
+}
+
+
+void photo_finish_update_master_metadata (Photo* self, PhotoReimportMasterState* state, GError** error) {
+ PhotoReimportMasterState* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2672 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2672 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (PHOTO_IS_REIMPORT_MASTER_STATE (state));
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = state;
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_finish_reimport_master (self, _tmp0_, &_inner_error_);
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 20394 "Photo.c"
+ } else {
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2673 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 20402 "Photo.c"
+ }
+ }
+}
+
+
+gboolean photo_persist_editable_metadata (Photo* self, PhotoMetadata* metadata, PhotoReimportEditableState** state, GError** error) {
+ PhotoReimportEditableState* _vala_state = NULL;
+ gboolean result = FALSE;
+ PhotoFileReader* editable_reader = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ PhotoFileMetadataWriter* _tmp5_ = NULL;
+ PhotoFileReader* _tmp6_ = NULL;
+ PhotoFileMetadataWriter* _tmp7_ = NULL;
+ PhotoFileMetadataWriter* _tmp8_ = NULL;
+ PhotoFileMetadataWriter* _tmp9_ = NULL;
+ PhotoMetadata* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ PhotoReimportEditableState* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ PhotoReimportEditableState* _tmp14_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2676 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2676 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (metadata), FALSE);
+#line 2678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 2678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = NULL;
+#line 2680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_editable_reader (self);
+#line 2680 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_reader = _tmp0_;
+#line 2681 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = editable_reader;
+#line 2681 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 2682 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2682 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (editable_reader);
+#line 2682 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 2682 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 20452 "Photo.c"
+ } else {
+#line 2682 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 20456 "Photo.c"
+ }
+#line 2682 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20460 "Photo.c"
+ }
+#line 2684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = editable_reader;
+#line 2684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 2684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_file_format_can_write_metadata (_tmp3_);
+#line 2684 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp4_) {
+#line 2685 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2685 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (editable_reader);
+#line 2685 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 2685 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 20478 "Photo.c"
+ } else {
+#line 2685 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 20482 "Photo.c"
+ }
+#line 2685 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20486 "Photo.c"
+ }
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = editable_reader;
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_file_reader_create_metadata_writer (_tmp6_, &_inner_error_);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp7_;
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (editable_reader);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20502 "Photo.c"
+ }
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp5_;
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = NULL;
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = metadata;
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp9_, _tmp10_, &_inner_error_);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp9_);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp5_);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (editable_reader);
+#line 2687 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20526 "Photo.c"
+ }
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_prepare_for_reimport_editable (self, &_tmp12_, &_inner_error_);
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = _tmp12_;
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp13_;
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp5_);
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (editable_reader);
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20546 "Photo.c"
+ }
+#line 2689 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp11_) {
+#line 2690 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2690 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp5_);
+#line 2690 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (editable_reader);
+#line 2690 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 2690 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 20560 "Photo.c"
+ } else {
+#line 2690 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 20564 "Photo.c"
+ }
+#line 2690 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20568 "Photo.c"
+ }
+#line 2692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _vala_state;
+#line 2692 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL, PhotoReimportEditableStateImpl)->metadata_only = TRUE;
+#line 2694 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 2694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp5_);
+#line 2694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (editable_reader);
+#line 2694 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 2694 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 20584 "Photo.c"
+ } else {
+#line 2694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_editable_state_unref0 (_vala_state);
+#line 20588 "Photo.c"
+ }
+#line 2694 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20592 "Photo.c"
+}
+
+
+void photo_finish_update_editable_metadata (Photo* self, PhotoReimportEditableState* state, GError** error) {
+ PhotoReimportEditableState* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2697 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2697 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (PHOTO_IS_REIMPORT_EDITABLE_STATE (state));
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = state;
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_finish_reimport_editable (self, _tmp0_, &_inner_error_);
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 20615 "Photo.c"
+ } else {
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2698 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 20623 "Photo.c"
+ }
+ }
+}
+
+
+void photo_get_raw_dimensions (Photo* self, Dimensions* result) {
+ GError * _inner_error_ = NULL;
+#line 2703 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 20633 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 20640 "Photo.c"
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+#line 2705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->backing_photo_row;
+#line 2705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->dim;
+#line 2705 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp2_;
+#line 20650 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 20657 "Photo.c"
+ }
+#line 2705 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 20661 "Photo.c"
+ }
+ __finally350:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 20670 "Photo.c"
+ }
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2704 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 20678 "Photo.c"
+ }
+}
+
+
+gboolean photo_has_transformations (Photo* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2709 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 20688 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 20695 "Photo.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ PhotoRow* _tmp2_ = NULL;
+ Orientation _tmp3_ = 0;
+ BackingPhotoRow* _tmp4_ = NULL;
+ Orientation _tmp5_ = 0;
+#line 2711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 2711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->orientation;
+#line 2711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->backing_photo_row;
+#line 2711 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->original_orientation;
+#line 2711 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ != _tmp5_) {
+#line 2712 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = TRUE;
+#line 20714 "Photo.c"
+ } else {
+ PhotoRow* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+#line 2713 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2713 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->transformations;
+#line 2713 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp7_ != NULL;
+#line 20724 "Photo.c"
+ }
+#line 2711 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 20728 "Photo.c"
+ {
+ PhotoRow* _tmp8_ = NULL;
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->row;
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 20735 "Photo.c"
+ }
+#line 2711 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20739 "Photo.c"
+ }
+ __finally351:
+ {
+ PhotoRow* _tmp9_ = NULL;
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 20748 "Photo.c"
+ }
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2710 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20756 "Photo.c"
+ }
+}
+
+
+gboolean photo_only_metadata_changed (Photo* self) {
+ gboolean result = FALSE;
+ MetadataDateTime* date_time = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2717 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2718 "/home/jens/Source/shotwell/src/Photo.vala"
+ date_time = NULL;
+#line 2720 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 2720 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp0_;
+#line 2721 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = metadata;
+#line 2721 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ != NULL) {
+#line 20780 "Photo.c"
+ PhotoMetadata* _tmp2_ = NULL;
+ MetadataDateTime* _tmp3_ = NULL;
+#line 2722 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 2722 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_metadata_get_exposure_date_time (_tmp2_);
+#line 2722 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2722 "/home/jens/Source/shotwell/src/Photo.vala"
+ date_time = _tmp3_;
+#line 20791 "Photo.c"
+ }
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 20799 "Photo.c"
+ {
+ gboolean _tmp5_ = FALSE;
+ PhotoRow* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->transformations;
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_ == NULL) {
+#line 20810 "Photo.c"
+ gboolean _tmp8_ = FALSE;
+ PhotoRow* _tmp9_ = NULL;
+ Orientation _tmp10_ = 0;
+ BackingPhotoRow* _tmp11_ = NULL;
+ Orientation _tmp12_ = 0;
+#line 2726 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2726 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->orientation;
+#line 2726 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->backing_photo_row;
+#line 2726 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->original_orientation;
+#line 2726 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_ != _tmp12_) {
+#line 2726 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = TRUE;
+#line 20828 "Photo.c"
+ } else {
+ gboolean _tmp13_ = FALSE;
+ MetadataDateTime* _tmp14_ = NULL;
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = date_time;
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_ != NULL) {
+#line 20836 "Photo.c"
+ PhotoRow* _tmp15_ = NULL;
+ time_t _tmp16_ = 0;
+ MetadataDateTime* _tmp17_ = NULL;
+ time_t _tmp18_ = 0;
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->row;
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->exposure_time;
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = date_time;
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = metadata_date_time_get_timestamp (_tmp17_);
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp16_ != _tmp18_;
+#line 20851 "Photo.c"
+ } else {
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = FALSE;
+#line 20855 "Photo.c"
+ }
+#line 2727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp13_;
+#line 20859 "Photo.c"
+ }
+#line 2726 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp8_;
+#line 20863 "Photo.c"
+ } else {
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = FALSE;
+#line 20867 "Photo.c"
+ }
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 20871 "Photo.c"
+ {
+ PhotoRow* _tmp19_ = NULL;
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 20878 "Photo.c"
+ }
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2725 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 20886 "Photo.c"
+ }
+ __finally352:
+ {
+ PhotoRow* _tmp20_ = NULL;
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = self->row;
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 20895 "Photo.c"
+ }
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2724 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 20907 "Photo.c"
+ }
+#line 2717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 20913 "Photo.c"
+}
+
+
+gboolean photo_has_alterations (Photo* self) {
+ gboolean result = FALSE;
+ MetadataDateTime* date_time = NULL;
+ gchar* title = NULL;
+ gchar* comment = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+ MetadataDateTime* _tmp8_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2731 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2732 "/home/jens/Source/shotwell/src/Photo.vala"
+ date_time = NULL;
+#line 2733 "/home/jens/Source/shotwell/src/Photo.vala"
+ title = NULL;
+#line 2734 "/home/jens/Source/shotwell/src/Photo.vala"
+ comment = NULL;
+#line 2736 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 2736 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp0_;
+#line 2737 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = metadata;
+#line 2737 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ != NULL) {
+#line 20943 "Photo.c"
+ PhotoMetadata* _tmp2_ = NULL;
+ MetadataDateTime* _tmp3_ = NULL;
+ PhotoMetadata* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ PhotoMetadata* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 2738 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 2738 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_metadata_get_exposure_date_time (_tmp2_);
+#line 2738 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2738 "/home/jens/Source/shotwell/src/Photo.vala"
+ date_time = _tmp3_;
+#line 2739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = metadata;
+#line 2739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 2739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 2739 "/home/jens/Source/shotwell/src/Photo.vala"
+ title = _tmp5_;
+#line 2740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = metadata;
+#line 2740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = media_metadata_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 2740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 2740 "/home/jens/Source/shotwell/src/Photo.vala"
+ comment = _tmp7_;
+#line 20974 "Photo.c"
+ }
+#line 2744 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = date_time;
+#line 2744 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ == NULL) {
+#line 20980 "Photo.c"
+ {
+ PhotoRow* _tmp9_ = NULL;
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 20987 "Photo.c"
+ {
+ BackingPhotoRow* _tmp10_ = NULL;
+ time_t _tmp11_ = 0;
+ PhotoRow* _tmp12_ = NULL;
+ time_t _tmp13_ = 0;
+#line 2748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->backing_photo_row;
+#line 2748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_->timestamp;
+#line 2748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->row;
+#line 2748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_->exposure_time;
+#line 2748 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_ != _tmp13_) {
+#line 2750 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 21005 "Photo.c"
+ {
+ PhotoRow* _tmp14_ = NULL;
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21012 "Photo.c"
+ }
+#line 2750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 2750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 2750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2750 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21024 "Photo.c"
+ }
+ }
+ __finally353:
+ {
+ PhotoRow* _tmp15_ = NULL;
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->row;
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21034 "Photo.c"
+ }
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2746 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 21052 "Photo.c"
+ }
+ }
+ }
+ {
+ PhotoRow* _tmp16_ = NULL;
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->row;
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21062 "Photo.c"
+ {
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ PhotoRow* _tmp21_ = NULL;
+ GeeHashMap* _tmp22_ = NULL;
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = self->row;
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_->transformations;
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_ != NULL) {
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = TRUE;
+#line 21078 "Photo.c"
+ } else {
+ PhotoRow* _tmp23_ = NULL;
+ Orientation _tmp24_ = 0;
+ BackingPhotoRow* _tmp25_ = NULL;
+ Orientation _tmp26_ = 0;
+#line 2757 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = self->row;
+#line 2757 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_->orientation;
+#line 2757 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->backing_photo_row;
+#line 2757 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_->original_orientation;
+#line 2757 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp24_ != _tmp26_;
+#line 21094 "Photo.c"
+ }
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp20_) {
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = TRUE;
+#line 21100 "Photo.c"
+ } else {
+ gboolean _tmp27_ = FALSE;
+ MetadataDateTime* _tmp28_ = NULL;
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = date_time;
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp28_ != NULL) {
+#line 21108 "Photo.c"
+ PhotoRow* _tmp29_ = NULL;
+ time_t _tmp30_ = 0;
+ MetadataDateTime* _tmp31_ = NULL;
+ time_t _tmp32_ = 0;
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = self->row;
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp29_->exposure_time;
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = date_time;
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = metadata_date_time_get_timestamp (_tmp31_);
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp30_ != _tmp32_;
+#line 21123 "Photo.c"
+ } else {
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = FALSE;
+#line 21127 "Photo.c"
+ }
+#line 2758 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp27_;
+#line 21131 "Photo.c"
+ }
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp19_) {
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = TRUE;
+#line 21137 "Photo.c"
+ } else {
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+#line 2759 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = media_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 2759 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_;
+#line 2759 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = comment;
+#line 2759 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = g_strcmp0 (_tmp34_, _tmp35_) != 0;
+#line 2759 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp34_);
+#line 21152 "Photo.c"
+ }
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp18_) {
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = TRUE;
+#line 21158 "Photo.c"
+ } else {
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+#line 2760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 2760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_;
+#line 2760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = title;
+#line 2760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = g_strcmp0 (_tmp37_, _tmp38_) != 0;
+#line 2760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp37_);
+#line 21173 "Photo.c"
+ }
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp17_;
+#line 21177 "Photo.c"
+ {
+ PhotoRow* _tmp39_ = NULL;
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = self->row;
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21184 "Photo.c"
+ }
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2756 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21196 "Photo.c"
+ }
+ __finally354:
+ {
+ PhotoRow* _tmp40_ = NULL;
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = self->row;
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21205 "Photo.c"
+ }
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2755 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 21221 "Photo.c"
+ }
+#line 2731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 2731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (comment);
+#line 2731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (title);
+#line 2731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 21231 "Photo.c"
+}
+
+
+PhotoTransformationState* photo_save_transformation_state (Photo* self) {
+ PhotoTransformationState* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 2765 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 21240 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21247 "Photo.c"
+ {
+ PixelTransformer* _tmp1_ = NULL;
+ PixelTransformer* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp5_ = NULL;
+ PixelTransformationBundle* _tmp6_ = NULL;
+ PhotoRow* _tmp9_ = NULL;
+ Orientation _tmp10_ = 0;
+ PhotoRow* _tmp11_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ PhotoPhotoTransformationStateImpl* _tmp13_ = NULL;
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->transformer;
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 21262 "Photo.c"
+ PixelTransformer* _tmp3_ = NULL;
+ PixelTransformer* _tmp4_ = NULL;
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->transformer;
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = pixel_transformer_copy (_tmp3_);
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (_tmp1_);
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp4_;
+#line 21273 "Photo.c"
+ } else {
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (_tmp1_);
+#line 2769 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 21279 "Photo.c"
+ }
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->adjustments;
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ != NULL) {
+#line 21285 "Photo.c"
+ PixelTransformationBundle* _tmp7_ = NULL;
+ PixelTransformationBundle* _tmp8_ = NULL;
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->priv->adjustments;
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = pixel_transformation_bundle_copy (_tmp7_);
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (_tmp5_);
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp8_;
+#line 21296 "Photo.c"
+ } else {
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (_tmp5_);
+#line 2770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = NULL;
+#line 21302 "Photo.c"
+ }
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->orientation;
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->transformations;
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_photo_transformation_state_impl_new (self, _tmp10_, _tmp12_, _tmp1_, _tmp5_);
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationState);
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (_tmp5_);
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (_tmp1_);
+#line 21320 "Photo.c"
+ {
+ PhotoRow* _tmp14_ = NULL;
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21327 "Photo.c"
+ }
+#line 2767 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21331 "Photo.c"
+ }
+ __finally355:
+ {
+ PhotoRow* _tmp15_ = NULL;
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->row;
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21340 "Photo.c"
+ }
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2766 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 21348 "Photo.c"
+ }
+}
+
+
+static gpointer _pixel_transformer_ref0 (gpointer self) {
+#line 2791 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? pixel_transformer_ref (self) : NULL;
+#line 21356 "Photo.c"
+}
+
+
+static gpointer _pixel_transformation_bundle_ref0 (gpointer self) {
+#line 2792 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? pixel_transformation_bundle_ref (self) : NULL;
+#line 21363 "Photo.c"
+}
+
+
+gboolean photo_load_transformation_state (Photo* self, PhotoTransformationState* state) {
+ gboolean result = FALSE;
+ PhotoPhotoTransformationStateImpl* state_impl = NULL;
+ PhotoTransformationState* _tmp0_ = NULL;
+ PhotoPhotoTransformationStateImpl* _tmp1_ = NULL;
+ PhotoPhotoTransformationStateImpl* _tmp2_ = NULL;
+ Orientation saved_orientation = 0;
+ PhotoPhotoTransformationStateImpl* _tmp3_ = NULL;
+ Orientation _tmp4_ = 0;
+ GeeHashMap* saved_transformations = NULL;
+ PhotoPhotoTransformationStateImpl* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ PixelTransformer* saved_transformer = NULL;
+ PhotoPhotoTransformationStateImpl* _tmp7_ = NULL;
+ PixelTransformer* _tmp8_ = NULL;
+ PixelTransformationBundle* saved_adjustments = NULL;
+ PhotoPhotoTransformationStateImpl* _tmp9_ = NULL;
+ PixelTransformationBundle* _tmp10_ = NULL;
+ gboolean committed = FALSE;
+ gboolean _tmp30_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2774 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2774 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_TRANSFORMATION_STATE (state), FALSE);
+#line 2775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = state;
+#line 2775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL) ? ((PhotoPhotoTransformationStateImpl*) _tmp0_) : NULL);
+#line 2775 "/home/jens/Source/shotwell/src/Photo.vala"
+ state_impl = _tmp1_;
+#line 2776 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = state_impl;
+#line 2776 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ == NULL) {
+#line 2777 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2777 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (state_impl);
+#line 2777 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21408 "Photo.c"
+ }
+#line 2779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = state_impl;
+#line 2779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_photo_transformation_state_impl_get_orientation (_tmp3_);
+#line 2779 "/home/jens/Source/shotwell/src/Photo.vala"
+ saved_orientation = _tmp4_;
+#line 2780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = state_impl;
+#line 2780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_photo_transformation_state_impl_get_transformations (_tmp5_);
+#line 2780 "/home/jens/Source/shotwell/src/Photo.vala"
+ saved_transformations = _tmp6_;
+#line 2781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = state_impl;
+#line 2781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_photo_transformation_state_impl_get_transformer (_tmp7_);
+#line 2781 "/home/jens/Source/shotwell/src/Photo.vala"
+ saved_transformer = _tmp8_;
+#line 2782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = state_impl;
+#line 2782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_photo_transformation_state_impl_get_color_adjustments (_tmp9_);
+#line 2782 "/home/jens/Source/shotwell/src/Photo.vala"
+ saved_adjustments = _tmp10_;
+#line 21434 "Photo.c"
+ {
+ PhotoRow* _tmp11_ = NULL;
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21441 "Photo.c"
+ {
+ PhotoTable* _tmp12_ = NULL;
+ PhotoTable* _tmp13_ = NULL;
+ PhotoRow* _tmp14_ = NULL;
+ PhotoID _tmp15_ = {0};
+ Orientation _tmp16_ = 0;
+ GeeHashMap* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_table_get_instance ();
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->photo_id;
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = saved_orientation;
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = saved_transformations;
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = photo_table_set_transformation_state (_tmp13_, &_tmp15_, _tmp16_, _tmp17_);
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp18_;
+#line 2786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp13_);
+#line 2788 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = committed;
+#line 2788 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp19_) {
+#line 21473 "Photo.c"
+ PhotoRow* _tmp20_ = NULL;
+ Orientation _tmp21_ = 0;
+ PhotoRow* _tmp22_ = NULL;
+ GeeHashMap* _tmp23_ = NULL;
+ GeeHashMap* _tmp24_ = NULL;
+ PixelTransformer* _tmp25_ = NULL;
+ PixelTransformer* _tmp26_ = NULL;
+ PixelTransformationBundle* _tmp27_ = NULL;
+ PixelTransformationBundle* _tmp28_ = NULL;
+#line 2789 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = self->row;
+#line 2789 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = saved_orientation;
+#line 2789 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_->orientation = _tmp21_;
+#line 2790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = self->row;
+#line 2790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = saved_transformations;
+#line 2790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 2790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp22_->transformations);
+#line 2790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_->transformations = _tmp24_;
+#line 2791 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = saved_transformer;
+#line 2791 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _pixel_transformer_ref0 (_tmp25_);
+#line 2791 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 2791 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformer = _tmp26_;
+#line 2792 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = saved_adjustments;
+#line 2792 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _pixel_transformation_bundle_ref0 (_tmp27_);
+#line 2792 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 2792 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = _tmp28_;
+#line 21515 "Photo.c"
+ }
+ }
+ __finally356:
+ {
+ PhotoRow* _tmp29_ = NULL;
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = self->row;
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21525 "Photo.c"
+ }
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (saved_adjustments);
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (saved_transformer);
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (saved_transformations);
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (state_impl);
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2785 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 21543 "Photo.c"
+ }
+ }
+#line 2796 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = committed;
+#line 2796 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp30_) {
+#line 21550 "Photo.c"
+ Alteration* _tmp31_ = NULL;
+ Alteration* _tmp32_ = NULL;
+#line 2797 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = alteration_new ("image", "transformation-state");
+#line 2797 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_;
+#line 2797 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp32_);
+#line 2797 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp32_);
+#line 21561 "Photo.c"
+ }
+#line 2799 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = committed;
+#line 2799 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (saved_adjustments);
+#line 2799 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (saved_transformer);
+#line 2799 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (saved_transformations);
+#line 2799 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (state_impl);
+#line 2799 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21575 "Photo.c"
+}
+
+
+void photo_remove_all_transformations (Photo* self) {
+#line 2802 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2803 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_internal_remove_all_transformations (self, TRUE);
+#line 21584 "Photo.c"
+}
+
+
+static void photo_internal_remove_all_transformations (Photo* self, gboolean notify) {
+ gboolean is_altered = FALSE;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2806 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2807 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_altered = FALSE;
+#line 21597 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21604 "Photo.c"
+ {
+ PhotoTable* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoRow* _tmp3_ = NULL;
+ PhotoID _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+ PhotoRow* _tmp6_ = NULL;
+ PhotoRow* _tmp7_ = NULL;
+ Orientation _tmp8_ = 0;
+ BackingPhotoRow* _tmp9_ = NULL;
+ Orientation _tmp10_ = 0;
+#line 2809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_table_get_instance ();
+#line 2809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 2809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->photo_id;
+#line 2809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_table_remove_all_transformations (_tmp2_, &_tmp4_);
+#line 2809 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_altered = _tmp5_;
+#line 2809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp2_);
+#line 2810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp6_->transformations);
+#line 2810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_->transformations = NULL;
+#line 2812 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 2812 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformer = NULL;
+#line 2813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 2813 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = NULL;
+#line 2815 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 2815 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->orientation;
+#line 2815 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->backing_photo_row;
+#line 2815 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->original_orientation;
+#line 2815 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ != _tmp10_) {
+#line 21654 "Photo.c"
+ PhotoTable* _tmp11_ = NULL;
+ PhotoTable* _tmp12_ = NULL;
+ PhotoRow* _tmp13_ = NULL;
+ PhotoID _tmp14_ = {0};
+ BackingPhotoRow* _tmp15_ = NULL;
+ Orientation _tmp16_ = 0;
+ PhotoRow* _tmp17_ = NULL;
+ BackingPhotoRow* _tmp18_ = NULL;
+ Orientation _tmp19_ = 0;
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_table_get_instance ();
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_;
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->row;
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->photo_id;
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->backing_photo_row;
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_->original_orientation;
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_set_orientation (_tmp12_, &_tmp14_, _tmp16_);
+#line 2816 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp12_);
+#line 2818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = self->row;
+#line 2818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->backing_photo_row;
+#line 2818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->original_orientation;
+#line 2818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_->orientation = _tmp19_;
+#line 2819 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_altered = TRUE;
+#line 21690 "Photo.c"
+ }
+ }
+ __finally357:
+ {
+ PhotoRow* _tmp20_ = NULL;
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = self->row;
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21700 "Photo.c"
+ }
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2808 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 21710 "Photo.c"
+ }
+ }
+#line 2823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = is_altered;
+#line 2823 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_) {
+#line 21717 "Photo.c"
+ gboolean _tmp23_ = FALSE;
+#line 2823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = notify;
+#line 2823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp23_;
+#line 21723 "Photo.c"
+ } else {
+#line 2823 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = FALSE;
+#line 21727 "Photo.c"
+ }
+#line 2823 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp21_) {
+#line 21731 "Photo.c"
+ Alteration* _tmp24_ = NULL;
+ Alteration* _tmp25_ = NULL;
+#line 2824 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = alteration_new ("image", "revert");
+#line 2824 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_;
+#line 2824 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp25_);
+#line 2824 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp25_);
+#line 21742 "Photo.c"
+ }
+}
+
+
+Orientation photo_get_original_orientation (Photo* self) {
+ Orientation result = 0;
+ GError * _inner_error_ = NULL;
+#line 2827 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0);
+#line 21752 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21759 "Photo.c"
+ {
+ BackingPhotoRow* _tmp1_ = NULL;
+ Orientation _tmp2_ = 0;
+#line 2829 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->backing_photo_row;
+#line 2829 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->original_orientation;
+#line 2829 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 21769 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21776 "Photo.c"
+ }
+#line 2829 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21780 "Photo.c"
+ }
+ __finally358:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21789 "Photo.c"
+ }
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2828 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 21797 "Photo.c"
+ }
+}
+
+
+Orientation photo_get_orientation (Photo* self) {
+ Orientation result = 0;
+ GError * _inner_error_ = NULL;
+#line 2833 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), 0);
+#line 21807 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21814 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ Orientation _tmp2_ = 0;
+#line 2835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->orientation;
+#line 2835 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 21824 "Photo.c"
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21831 "Photo.c"
+ }
+#line 2835 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21835 "Photo.c"
+ }
+ __finally359:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21844 "Photo.c"
+ }
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2834 "/home/jens/Source/shotwell/src/Photo.vala"
+ return 0;
+#line 21852 "Photo.c"
+ }
+}
+
+
+gboolean photo_set_orientation (Photo* self, Orientation orientation) {
+ gboolean result = FALSE;
+ gboolean committed = FALSE;
+ gboolean _tmp14_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2839 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2840 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = FALSE;
+#line 21866 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21873 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ Orientation _tmp2_ = 0;
+ Orientation _tmp3_ = 0;
+#line 2842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->orientation;
+#line 2842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = orientation;
+#line 2842 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != _tmp3_) {
+#line 21886 "Photo.c"
+ PhotoTable* _tmp4_ = NULL;
+ PhotoTable* _tmp5_ = NULL;
+ PhotoRow* _tmp6_ = NULL;
+ PhotoID _tmp7_ = {0};
+ Orientation _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_table_get_instance ();
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->photo_id;
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = orientation;
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_table_set_orientation (_tmp5_, &_tmp7_, _tmp8_);
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ committed = _tmp9_;
+#line 2843 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp5_);
+#line 2844 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = committed;
+#line 2844 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_) {
+#line 21914 "Photo.c"
+ PhotoRow* _tmp11_ = NULL;
+ Orientation _tmp12_ = 0;
+#line 2845 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 2845 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = orientation;
+#line 2845 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_->orientation = _tmp12_;
+#line 21923 "Photo.c"
+ }
+ }
+ }
+ __finally360:
+ {
+ PhotoRow* _tmp13_ = NULL;
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->row;
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 21934 "Photo.c"
+ }
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2841 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 21944 "Photo.c"
+ }
+ }
+#line 2849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = committed;
+#line 2849 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_) {
+#line 21951 "Photo.c"
+ Alteration* _tmp15_ = NULL;
+ Alteration* _tmp16_ = NULL;
+#line 2850 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = alteration_new ("image", "orientation");
+#line 2850 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 2850 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp16_);
+#line 2850 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp16_);
+#line 21962 "Photo.c"
+ }
+#line 2852 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = committed;
+#line 2852 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21968 "Photo.c"
+}
+
+
+gboolean photo_check_can_rotate (Photo* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 2855 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2856 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->can_rotate_now;
+#line 2856 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 2856 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 21983 "Photo.c"
+}
+
+
+static void photo_real_rotate (Photo* self, Rotation rotation) {
+ GError * _inner_error_ = NULL;
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 21995 "Photo.c"
+ {
+ Orientation _tmp1_ = 0;
+ Rotation _tmp2_ = 0;
+ Orientation _tmp3_ = 0;
+#line 2861 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_orientation (self);
+#line 2861 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = rotation;
+#line 2861 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = orientation_perform (_tmp1_, _tmp2_);
+#line 2861 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_orientation (self, _tmp3_);
+#line 22008 "Photo.c"
+ }
+ __finally361:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 22017 "Photo.c"
+ }
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2860 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 22027 "Photo.c"
+ }
+ }
+}
+
+
+void photo_rotate (Photo* self, Rotation rotation) {
+#line 2859 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2859 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->rotate (self, rotation);
+#line 22038 "Photo.c"
+}
+
+
+static gboolean photo_has_transformation (Photo* self, const gchar* name) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2865 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2865 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (name != NULL, FALSE);
+#line 22049 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 22056 "Photo.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ PhotoRow* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->transformations;
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ != NULL) {
+#line 22067 "Photo.c"
+ PhotoRow* _tmp4_ = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->transformations;
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = name;
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_);
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp7_;
+#line 22082 "Photo.c"
+ } else {
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 22086 "Photo.c"
+ }
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 22090 "Photo.c"
+ {
+ PhotoRow* _tmp8_ = NULL;
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->row;
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 22097 "Photo.c"
+ }
+#line 2867 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22101 "Photo.c"
+ }
+ __finally362:
+ {
+ PhotoRow* _tmp9_ = NULL;
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 22110 "Photo.c"
+ }
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2866 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 22118 "Photo.c"
+ }
+}
+
+
+static KeyValueMap* photo_get_transformation (Photo* self, const gchar* name) {
+ KeyValueMap* result = NULL;
+ KeyValueMap* map = NULL;
+ GError * _inner_error_ = NULL;
+#line 2874 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 2874 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 2875 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = NULL;
+#line 22133 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 22140 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+#line 2877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->transformations;
+#line 2877 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 22150 "Photo.c"
+ PhotoRow* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ KeyValueMap* _tmp7_ = NULL;
+#line 2878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->transformations;
+#line 2878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = name;
+#line 2878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_);
+#line 2878 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2878 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = (KeyValueMap*) _tmp6_;
+#line 2879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = map;
+#line 2879 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_ != NULL) {
+#line 22172 "Photo.c"
+ KeyValueMap* _tmp8_ = NULL;
+ KeyValueMap* _tmp9_ = NULL;
+#line 2880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = map;
+#line 2880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = key_value_map_copy (_tmp8_);
+#line 2880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2880 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp9_;
+#line 22183 "Photo.c"
+ }
+ }
+ }
+ __finally363:
+ {
+ PhotoRow* _tmp10_ = NULL;
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->row;
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 22194 "Photo.c"
+ }
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2876 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 22206 "Photo.c"
+ }
+ }
+#line 2884 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = map;
+#line 2884 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22213 "Photo.c"
+}
+
+
+static gboolean photo_set_transformation (Photo* self, KeyValueMap* trans) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2887 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2887 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (trans), FALSE);
+#line 22224 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 22231 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ PhotoRow* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ KeyValueMap* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ KeyValueMap* _tmp10_ = NULL;
+ PhotoTable* _tmp11_ = NULL;
+ PhotoTable* _tmp12_ = NULL;
+ PhotoRow* _tmp13_ = NULL;
+ PhotoID _tmp14_ = {0};
+ KeyValueMap* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 2889 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2889 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->transformations;
+#line 2889 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ == NULL) {
+#line 22254 "Photo.c"
+ PhotoRow* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+#line 2890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_KEY_VALUE_MAP, (GBoxedCopyFunc) key_value_map_ref, key_value_map_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 2890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_->transformations);
+#line 2890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_->transformations = _tmp4_;
+#line 22265 "Photo.c"
+ }
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->transformations;
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = trans;
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = key_value_map_get_group (_tmp7_);
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = trans;
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp9_, _tmp10_);
+#line 2892 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp9_);
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_table_get_instance ();
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_;
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->row;
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->photo_id;
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = trans;
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo_table_set_transformation (_tmp12_, &_tmp14_, _tmp15_);
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp12_);
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp17_;
+#line 22301 "Photo.c"
+ {
+ PhotoRow* _tmp18_ = NULL;
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->row;
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 22308 "Photo.c"
+ }
+#line 2894 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22312 "Photo.c"
+ }
+ __finally364:
+ {
+ PhotoRow* _tmp19_ = NULL;
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 22321 "Photo.c"
+ }
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2888 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 22329 "Photo.c"
+ }
+}
+
+
+static gboolean photo_remove_transformation (Photo* self, const gchar* name) {
+ gboolean result = FALSE;
+ gboolean altered_cache = FALSE;
+ gboolean altered_persistent = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 2898 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2898 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (name != NULL, FALSE);
+#line 22345 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 22352 "Photo.c"
+ {
+ PhotoRow* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ PhotoTable* _tmp12_ = NULL;
+ PhotoTable* _tmp13_ = NULL;
+ PhotoRow* _tmp14_ = NULL;
+ PhotoID _tmp15_ = {0};
+ const gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 2901 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->row;
+#line 2901 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->transformations;
+#line 2901 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 22368 "Photo.c"
+ PhotoRow* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ PhotoRow* _tmp7_ = NULL;
+ GeeHashMap* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 2902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 2902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->transformations;
+#line 2902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = name;
+#line 2902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_, NULL);
+#line 2902 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered_cache = _tmp6_;
+#line 2903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 2903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->transformations;
+#line 2903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_MAP, GeeMap));
+#line 2903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_;
+#line 2903 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_ == 0) {
+#line 22397 "Photo.c"
+ PhotoRow* _tmp11_ = NULL;
+#line 2904 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->row;
+#line 2904 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp11_->transformations);
+#line 2904 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_->transformations = NULL;
+#line 22405 "Photo.c"
+ }
+ } else {
+#line 2906 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered_cache = FALSE;
+#line 22410 "Photo.c"
+ }
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_table_get_instance ();
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->photo_id;
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = name;
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_table_remove_transformation (_tmp13_, &_tmp15_, _tmp16_);
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ altered_persistent = _tmp17_;
+#line 2909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp13_);
+#line 22428 "Photo.c"
+ }
+ __finally365:
+ {
+ PhotoRow* _tmp18_ = NULL;
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->row;
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 22437 "Photo.c"
+ }
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 2900 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 22447 "Photo.c"
+ }
+ }
+#line 2913 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = altered_cache;
+#line 2913 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp20_) {
+#line 2913 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = TRUE;
+#line 22456 "Photo.c"
+ } else {
+#line 2913 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = altered_persistent;
+#line 22460 "Photo.c"
+ }
+#line 2913 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp19_;
+#line 2913 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22466 "Photo.c"
+}
+
+
+gboolean photo_has_crop (Photo* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 2916 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2917 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_has_transformation (self, "crop");
+#line 2917 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 2917 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22481 "Photo.c"
+}
+
+
+gboolean photo_get_raw_crop (Photo* self, Box* crop) {
+ Box _vala_crop = {0};
+ gboolean result = FALSE;
+ KeyValueMap* map = NULL;
+ KeyValueMap* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ gint left = 0;
+ KeyValueMap* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint top = 0;
+ KeyValueMap* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint right = 0;
+ KeyValueMap* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint bottom = 0;
+ KeyValueMap* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gint _tmp13_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 2921 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2922 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_init (&_vala_crop, 0, 0, 0, 0);
+#line 2924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_transformation (self, "crop");
+#line 2924 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp0_;
+#line 2925 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = map;
+#line 2925 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 2926 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2926 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (crop) {
+#line 2926 "/home/jens/Source/shotwell/src/Photo.vala"
+ *crop = _vala_crop;
+#line 22531 "Photo.c"
+ }
+#line 2926 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22535 "Photo.c"
+ }
+#line 2928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = map;
+#line 2928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = key_value_map_get_int (_tmp2_, "left", -1);
+#line 2928 "/home/jens/Source/shotwell/src/Photo.vala"
+ left = _tmp3_;
+#line 2929 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = map;
+#line 2929 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = key_value_map_get_int (_tmp4_, "top", -1);
+#line 2929 "/home/jens/Source/shotwell/src/Photo.vala"
+ top = _tmp5_;
+#line 2930 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = map;
+#line 2930 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = key_value_map_get_int (_tmp6_, "right", -1);
+#line 2930 "/home/jens/Source/shotwell/src/Photo.vala"
+ right = _tmp7_;
+#line 2931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = map;
+#line 2931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = key_value_map_get_int (_tmp8_, "bottom", -1);
+#line 2931 "/home/jens/Source/shotwell/src/Photo.vala"
+ bottom = _tmp9_;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = left;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_ == -1) {
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = TRUE;
+#line 22567 "Photo.c"
+ } else {
+ gint _tmp14_ = 0;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = top;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp14_ == -1;
+#line 22574 "Photo.c"
+ }
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = TRUE;
+#line 22580 "Photo.c"
+ } else {
+ gint _tmp15_ = 0;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = right;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp15_ == -1;
+#line 22587 "Photo.c"
+ }
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = TRUE;
+#line 22593 "Photo.c"
+ } else {
+ gint _tmp16_ = 0;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = bottom;
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp16_ == -1;
+#line 22600 "Photo.c"
+ }
+#line 2933 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_) {
+#line 2934 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2934 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2934 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (crop) {
+#line 2934 "/home/jens/Source/shotwell/src/Photo.vala"
+ *crop = _vala_crop;
+#line 22612 "Photo.c"
+ }
+#line 2934 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22616 "Photo.c"
+ }
+#line 2936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = left;
+#line 2936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = top;
+#line 2936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = right;
+#line 2936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = bottom;
+#line 2936 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_init (&_vala_crop, _tmp17_, _tmp18_, _tmp19_, _tmp20_);
+#line 2938 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 2938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2938 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (crop) {
+#line 2938 "/home/jens/Source/shotwell/src/Photo.vala"
+ *crop = _vala_crop;
+#line 22636 "Photo.c"
+ }
+#line 2938 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22640 "Photo.c"
+}
+
+
+static void photo_set_raw_crop (Photo* self, Box* crop) {
+ KeyValueMap* map = NULL;
+ KeyValueMap* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ Box _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ KeyValueMap* _tmp4_ = NULL;
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ KeyValueMap* _tmp7_ = NULL;
+ Box _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ KeyValueMap* _tmp10_ = NULL;
+ Box _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ KeyValueMap* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 2942 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2942 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (crop != NULL);
+#line 2943 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = key_value_map_new ("crop");
+#line 2943 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp0_;
+#line 2944 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = map;
+#line 2944 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = *crop;
+#line 2944 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_.left;
+#line 2944 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_int (_tmp1_, "left", _tmp3_);
+#line 2945 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = map;
+#line 2945 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = *crop;
+#line 2945 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_.top;
+#line 2945 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_int (_tmp4_, "top", _tmp6_);
+#line 2946 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = map;
+#line 2946 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = *crop;
+#line 2946 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_.right;
+#line 2946 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_int (_tmp7_, "right", _tmp9_);
+#line 2947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = map;
+#line 2947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = *crop;
+#line 2947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_.bottom;
+#line 2947 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_int (_tmp10_, "bottom", _tmp12_);
+#line 2949 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = map;
+#line 2949 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = photo_set_transformation (self, _tmp13_);
+#line 2949 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_) {
+#line 22707 "Photo.c"
+ Alteration* _tmp15_ = NULL;
+ Alteration* _tmp16_ = NULL;
+#line 2950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = alteration_new ("image", "crop");
+#line 2950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 2950 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp16_);
+#line 2950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp16_);
+#line 22718 "Photo.c"
+ }
+#line 2942 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 22722 "Photo.c"
+}
+
+
+static gboolean photo_get_raw_straighten (Photo* self, gdouble* angle) {
+ gdouble _vala_angle = 0.0;
+ gboolean result = FALSE;
+ KeyValueMap* map = NULL;
+ KeyValueMap* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ KeyValueMap* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+#line 2953 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 2954 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_transformation (self, "straighten");
+#line 2954 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp0_;
+#line 2955 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = map;
+#line 2955 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 2956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_angle = 0.0;
+#line 2958 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 2958 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2958 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (angle) {
+#line 2958 "/home/jens/Source/shotwell/src/Photo.vala"
+ *angle = _vala_angle;
+#line 22754 "Photo.c"
+ }
+#line 2958 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22758 "Photo.c"
+ }
+#line 2961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = map;
+#line 2961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = key_value_map_get_double (_tmp2_, "angle", 0.0);
+#line 2961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_angle = _tmp3_;
+#line 2963 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 2963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2963 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (angle) {
+#line 2963 "/home/jens/Source/shotwell/src/Photo.vala"
+ *angle = _vala_angle;
+#line 22774 "Photo.c"
+ }
+#line 2963 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22778 "Photo.c"
+}
+
+
+static void photo_set_raw_straighten (Photo* self, gdouble theta) {
+ KeyValueMap* map = NULL;
+ KeyValueMap* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ KeyValueMap* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2966 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 2967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = key_value_map_new ("straighten");
+#line 2967 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp0_;
+#line 2968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = map;
+#line 2968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = theta;
+#line 2968 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_double (_tmp1_, "angle", _tmp2_);
+#line 2970 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = map;
+#line 2970 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_set_transformation (self, _tmp3_);
+#line 2970 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp4_) {
+#line 22807 "Photo.c"
+ Alteration* _tmp5_ = NULL;
+ Alteration* _tmp6_ = NULL;
+#line 2971 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = alteration_new ("image", "straighten");
+#line 2971 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 2971 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp6_);
+#line 2971 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp6_);
+#line 22818 "Photo.c"
+ }
+#line 2966 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 22822 "Photo.c"
+}
+
+
+static EditingToolsRedeyeInstance* photo_get_raw_redeye_instances (Photo* self, int* result_length1) {
+ EditingToolsRedeyeInstance* result = NULL;
+ KeyValueMap* map = NULL;
+ KeyValueMap* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ gint num_points = 0;
+ KeyValueMap* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ EditingToolsRedeyeInstance* res = NULL;
+ gint _tmp7_ = 0;
+ EditingToolsRedeyeInstance* _tmp8_ = NULL;
+ gint res_length1 = 0;
+ gint _res_size_ = 0;
+ GdkPoint default_point = {0};
+ GdkPoint _tmp9_ = {0};
+ EditingToolsRedeyeInstance* _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+#line 2976 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 2977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_transformation (self, "redeye");
+#line 2977 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp0_;
+#line 2978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = map;
+#line 2978 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 22854 "Photo.c"
+ EditingToolsRedeyeInstance* _tmp2_ = NULL;
+ EditingToolsRedeyeInstance* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = g_new0 (EditingToolsRedeyeInstance, 0);
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3__length1 = 0;
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (result_length1) {
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result_length1 = _tmp3__length1;
+#line 22868 "Photo.c"
+ }
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 2979 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 22876 "Photo.c"
+ }
+#line 2981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = map;
+#line 2981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = key_value_map_get_int (_tmp4_, "num_points", -1);
+#line 2981 "/home/jens/Source/shotwell/src/Photo.vala"
+ num_points = _tmp5_;
+#line 2982 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = num_points;
+#line 2982 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp6_ > 0, "num_points > 0");
+#line 2984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = num_points;
+#line 2984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_new0 (EditingToolsRedeyeInstance, _tmp7_);
+#line 2984 "/home/jens/Source/shotwell/src/Photo.vala"
+ res = _tmp8_;
+#line 2984 "/home/jens/Source/shotwell/src/Photo.vala"
+ res_length1 = _tmp7_;
+#line 2984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _res_size_ = res_length1;
+#line 2986 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_.x = 0;
+#line 2986 "/home/jens/Source/shotwell/src/Photo.vala"
+ default_point = _tmp9_;
+#line 2987 "/home/jens/Source/shotwell/src/Photo.vala"
+ default_point.x = -1;
+#line 2988 "/home/jens/Source/shotwell/src/Photo.vala"
+ default_point.y = -1;
+#line 22906 "Photo.c"
+ {
+ gint i = 0;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ i = 0;
+#line 22911 "Photo.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = TRUE;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 22918 "Photo.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gchar* center_key = NULL;
+ gint _tmp14_ = 0;
+ gchar* _tmp15_ = NULL;
+ gchar* radius_key = NULL;
+ gint _tmp16_ = 0;
+ gchar* _tmp17_ = NULL;
+ EditingToolsRedeyeInstance* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gint _tmp19_ = 0;
+ KeyValueMap* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GdkPoint _tmp22_ = {0};
+ GdkPoint _tmp23_ = {0};
+ EditingToolsRedeyeInstance* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ EditingToolsRedeyeInstance _tmp26_ = {0};
+ GdkPoint _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GdkPoint _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ EditingToolsRedeyeInstance* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gint _tmp32_ = 0;
+ EditingToolsRedeyeInstance _tmp33_ = {0};
+ GdkPoint _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ GdkPoint _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ EditingToolsRedeyeInstance* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ gint _tmp39_ = 0;
+ KeyValueMap* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ EditingToolsRedeyeInstance* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gint _tmp44_ = 0;
+ EditingToolsRedeyeInstance _tmp45_ = {0};
+ gint _tmp46_ = 0;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp10_) {
+#line 22963 "Photo.c"
+ gint _tmp11_ = 0;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = i;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ i = _tmp11_ + 1;
+#line 22969 "Photo.c"
+ }
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = FALSE;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = i;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = num_points;
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp12_ < _tmp13_)) {
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 22981 "Photo.c"
+ }
+#line 2991 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = i;
+#line 2991 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = g_strdup_printf ("center%d", _tmp14_);
+#line 2991 "/home/jens/Source/shotwell/src/Photo.vala"
+ center_key = _tmp15_;
+#line 2992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = i;
+#line 2992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = g_strdup_printf ("radius%d", _tmp16_);
+#line 2992 "/home/jens/Source/shotwell/src/Photo.vala"
+ radius_key = _tmp17_;
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = res;
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18__length1 = res_length1;
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = i;
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = map;
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = center_key;
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = default_point;
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_get_point (_tmp20_, _tmp21_, &_tmp22_, &_tmp23_);
+#line 2994 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_[_tmp19_].center = _tmp23_;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = res;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24__length1 = res_length1;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = i;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp24_[_tmp25_];
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_.center;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_.x;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = default_point;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp29_.x;
+#line 2995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp28_ != _tmp30_, "res[i].center.x != default_point.x");
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = res;
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31__length1 = res_length1;
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = i;
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp31_[_tmp32_];
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_.center;
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_.y;
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = default_point;
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_.y;
+#line 2996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp35_ != _tmp37_, "res[i].center.y != default_point.y");
+#line 2998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = res;
+#line 2998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38__length1 = res_length1;
+#line 2998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = i;
+#line 2998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = map;
+#line 2998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = radius_key;
+#line 2998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = key_value_map_get_int (_tmp40_, _tmp41_, -1);
+#line 2998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_[_tmp39_].radius = _tmp42_;
+#line 2999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = res;
+#line 2999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43__length1 = res_length1;
+#line 2999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = i;
+#line 2999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp43_[_tmp44_];
+#line 2999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = _tmp45_.radius;
+#line 2999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp46_ != -1, "res[i].radius != -1");
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (radius_key);
+#line 2990 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (center_key);
+#line 23077 "Photo.c"
+ }
+ }
+ }
+#line 3002 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = res;
+#line 3002 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47__length1 = res_length1;
+#line 3002 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (result_length1) {
+#line 3002 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result_length1 = _tmp47__length1;
+#line 23089 "Photo.c"
+ }
+#line 3002 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp47_;
+#line 3002 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 3002 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23097 "Photo.c"
+}
+
+
+gboolean photo_has_redeye_transformations (Photo* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 3005 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 3006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_has_transformation (self, "redeye");
+#line 3006 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 3006 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23112 "Photo.c"
+}
+
+
+void photo_add_redeye_instance (Photo* self, EditingToolsRedeyeInstance* redeye) {
+ KeyValueMap* map = NULL;
+ KeyValueMap* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+ gint num_points = 0;
+ KeyValueMap* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gchar* radius_key = NULL;
+ gint _tmp8_ = 0;
+ gchar* _tmp9_ = NULL;
+ gchar* center_key = NULL;
+ gint _tmp10_ = 0;
+ gchar* _tmp11_ = NULL;
+ KeyValueMap* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ EditingToolsRedeyeInstance _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ KeyValueMap* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ EditingToolsRedeyeInstance _tmp18_ = {0};
+ GdkPoint _tmp19_ = {0};
+ KeyValueMap* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ KeyValueMap* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 3010 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3010 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (redeye != NULL);
+#line 3011 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_transformation (self, "redeye");
+#line 3011 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp0_;
+#line 3012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = map;
+#line 3012 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 23155 "Photo.c"
+ KeyValueMap* _tmp2_ = NULL;
+ KeyValueMap* _tmp3_ = NULL;
+#line 3013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = key_value_map_new ("redeye");
+#line 3013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 3013 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp2_;
+#line 3014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = map;
+#line 3014 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_int (_tmp3_, "num_points", 0);
+#line 23168 "Photo.c"
+ }
+#line 3017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = map;
+#line 3017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = key_value_map_get_int (_tmp4_, "num_points", -1);
+#line 3017 "/home/jens/Source/shotwell/src/Photo.vala"
+ num_points = _tmp5_;
+#line 3018 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = num_points;
+#line 3018 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp6_ >= 0, "num_points >= 0");
+#line 3020 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = num_points;
+#line 3020 "/home/jens/Source/shotwell/src/Photo.vala"
+ num_points = _tmp7_ + 1;
+#line 3022 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = num_points;
+#line 3022 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = g_strdup_printf ("radius%d", _tmp8_ - 1);
+#line 3022 "/home/jens/Source/shotwell/src/Photo.vala"
+ radius_key = _tmp9_;
+#line 3023 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = num_points;
+#line 3023 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = g_strdup_printf ("center%d", _tmp10_ - 1);
+#line 3023 "/home/jens/Source/shotwell/src/Photo.vala"
+ center_key = _tmp11_;
+#line 3025 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = map;
+#line 3025 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = radius_key;
+#line 3025 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = *redeye;
+#line 3025 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_.radius;
+#line 3025 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_int (_tmp12_, _tmp13_, _tmp15_);
+#line 3026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = map;
+#line 3026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = center_key;
+#line 3026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = *redeye;
+#line 3026 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_.center;
+#line 3026 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_point (_tmp16_, _tmp17_, &_tmp19_);
+#line 3028 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = map;
+#line 3028 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = num_points;
+#line 3028 "/home/jens/Source/shotwell/src/Photo.vala"
+ key_value_map_set_int (_tmp20_, "num_points", _tmp21_);
+#line 3030 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = map;
+#line 3030 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = photo_set_transformation (self, _tmp22_);
+#line 3030 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp23_) {
+#line 23228 "Photo.c"
+ Alteration* _tmp24_ = NULL;
+ Alteration* _tmp25_ = NULL;
+#line 3031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = alteration_new ("image", "redeye");
+#line 3031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_;
+#line 3031 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp25_);
+#line 3031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp25_);
+#line 23239 "Photo.c"
+ }
+#line 3010 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (center_key);
+#line 3010 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (radius_key);
+#line 3010 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (map);
+#line 23247 "Photo.c"
+}
+
+
+static gboolean photo_calculate_pixbuf_dimensions (Photo* self, Scaling* scaling, PhotoException exceptions, Dimensions* scaled_image, Dimensions* scaled_to_viewport) {
+ Dimensions _vala_scaled_image = {0};
+ Dimensions _vala_scaled_to_viewport = {0};
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 3045 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 3045 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 23260 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 23267 "Photo.c"
+ {
+ Scaling _tmp1_ = {0};
+ PhotoException _tmp2_ = 0;
+ Dimensions _tmp3_ = {0};
+ Dimensions _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = *scaling;
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = exceptions;
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_locked_calculate_pixbuf_dimensions (self, &_tmp1_, _tmp2_, &_tmp3_, &_tmp4_);
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp3_;
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_to_viewport = _tmp4_;
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 23286 "Photo.c"
+ {
+ PhotoRow* _tmp6_ = NULL;
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->row;
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 23293 "Photo.c"
+ }
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_image) {
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_image = _vala_scaled_image;
+#line 23299 "Photo.c"
+ }
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_to_viewport) {
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_to_viewport = _vala_scaled_to_viewport;
+#line 23305 "Photo.c"
+ }
+#line 3049 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23309 "Photo.c"
+ }
+ __finally366:
+ {
+ PhotoRow* _tmp7_ = NULL;
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->row;
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 23318 "Photo.c"
+ }
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 3047 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 23326 "Photo.c"
+ }
+#line 3045 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_image) {
+#line 3045 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_image = _vala_scaled_image;
+#line 23332 "Photo.c"
+ }
+#line 3045 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_to_viewport) {
+#line 3045 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_to_viewport = _vala_scaled_to_viewport;
+#line 23338 "Photo.c"
+ }
+}
+
+
+static gboolean photo_locked_calculate_pixbuf_dimensions (Photo* self, Scaling* scaling, PhotoException exceptions, Dimensions* scaled_image, Dimensions* scaled_to_viewport) {
+ Dimensions _vala_scaled_image = {0};
+ Dimensions _vala_scaled_to_viewport = {0};
+ gboolean result = FALSE;
+ Dimensions raw = {0};
+ Dimensions _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ Orientation orientation = 0;
+ Orientation _tmp4_ = 0;
+ PhotoException _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp38_ = FALSE;
+ gboolean _tmp53_ = FALSE;
+ Dimensions _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ Dimensions _tmp56_ = {0};
+ gint _tmp57_ = 0;
+ gboolean _tmp63_ = FALSE;
+ gboolean _tmp64_ = FALSE;
+#line 3055 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 3055 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 3057 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_raw_dimensions (self, &_tmp0_);
+#line 3057 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw = _tmp0_;
+#line 3059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = scaling_is_unscaled (scaling);
+#line 3059 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 23374 "Photo.c"
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+#line 3060 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = raw;
+#line 3060 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp2_;
+#line 3061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = raw;
+#line 3061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_to_viewport = _tmp3_;
+#line 3063 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 3063 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_image) {
+#line 3063 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_image = _vala_scaled_image;
+#line 23391 "Photo.c"
+ }
+#line 3063 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_to_viewport) {
+#line 3063 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_to_viewport = _vala_scaled_to_viewport;
+#line 23397 "Photo.c"
+ }
+#line 3063 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23401 "Photo.c"
+ }
+#line 3066 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_get_orientation (self);
+#line 3066 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation = _tmp4_;
+#line 3071 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_init (&_vala_scaled_image, 0, 0);
+#line 3072 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_init (&_vala_scaled_to_viewport, 0, 0);
+#line 3074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = exceptions;
+#line 3074 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_exception_allows (_tmp5_, PHOTO_EXCEPTION_CROP);
+#line 3074 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 23417 "Photo.c"
+ Box crop = {0};
+ Box _tmp7_ = {0};
+ gboolean _tmp8_ = FALSE;
+#line 3076 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_get_raw_crop (self, &_tmp7_);
+#line 3076 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop = _tmp7_;
+#line 3076 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_) {
+#line 23427 "Photo.c"
+ Dimensions rotated_raw = {0};
+ Dimensions _tmp9_ = {0};
+ PhotoException _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ Box scaled_crop = {0};
+ Dimensions _tmp19_ = {0};
+ Dimensions _tmp20_ = {0};
+ Box _tmp21_ = {0};
+ Dimensions _tmp22_ = {0};
+ gboolean _tmp23_ = FALSE;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ Dimensions _tmp30_ = {0};
+ Dimensions _tmp31_ = {0};
+ Dimensions _tmp32_ = {0};
+ PhotoException _tmp33_ = 0;
+ gboolean _tmp34_ = FALSE;
+#line 3079 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = raw;
+#line 3079 "/home/jens/Source/shotwell/src/Photo.vala"
+ rotated_raw = _tmp9_;
+#line 3080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = exceptions;
+#line 3080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_exception_allows (_tmp10_, PHOTO_EXCEPTION_ORIENTATION);
+#line 3080 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 23455 "Photo.c"
+ Orientation _tmp12_ = 0;
+ Dimensions _tmp13_ = {0};
+ Box _tmp14_ = {0};
+ Box _tmp15_ = {0};
+ Orientation _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ Dimensions _tmp18_ = {0};
+#line 3081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = orientation;
+#line 3081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = raw;
+#line 3081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = crop;
+#line 3081 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_rotate_box (_tmp12_, &_tmp13_, &_tmp14_, &_tmp15_);
+#line 3081 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop = _tmp15_;
+#line 3082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = orientation;
+#line 3082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = raw;
+#line 3082 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_rotate_dimensions (_tmp16_, &_tmp17_, &_tmp18_);
+#line 3082 "/home/jens/Source/shotwell/src/Photo.vala"
+ rotated_raw = _tmp18_;
+#line 23481 "Photo.c"
+ }
+#line 3086 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_get_dimensions (&crop, &_tmp19_);
+#line 3086 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_get_scaled_dimensions (scaling, &_tmp19_, &_tmp20_);
+#line 3086 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_get_scaled (&crop, &_tmp20_, &_tmp21_);
+#line 3086 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaled_crop = _tmp21_;
+#line 3089 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_get_dimensions (&scaled_crop, &_tmp22_);
+#line 3089 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_to_viewport = _tmp22_;
+#line 3092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = box_get_width (&crop);
+#line 3092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = box_get_width (&scaled_crop);
+#line 3092 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp24_ <= _tmp25_) {
+#line 23501 "Photo.c"
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 3093 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = box_get_height (&crop);
+#line 3093 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = box_get_height (&scaled_crop);
+#line 3093 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp26_ <= _tmp27_;
+#line 23510 "Photo.c"
+ } else {
+#line 3092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = FALSE;
+#line 23514 "Photo.c"
+ }
+#line 3092 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp23_) {
+#line 23518 "Photo.c"
+ Dimensions _tmp28_ = {0};
+ Dimensions _tmp29_ = {0};
+#line 3094 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = raw;
+#line 3094 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp28_;
+#line 3095 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_get_dimensions (&crop, &_tmp29_);
+#line 3095 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_to_viewport = _tmp29_;
+#line 3097 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 3097 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_image) {
+#line 3097 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_image = _vala_scaled_image;
+#line 23535 "Photo.c"
+ }
+#line 3097 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_to_viewport) {
+#line 3097 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_to_viewport = _vala_scaled_to_viewport;
+#line 23541 "Photo.c"
+ }
+#line 3097 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23545 "Photo.c"
+ }
+#line 3102 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_get_dimensions (&crop, &_tmp30_);
+#line 3102 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_get_dimensions (&scaled_crop, &_tmp31_);
+#line 3102 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_get_scaled_similar (&rotated_raw, &_tmp30_, &_tmp31_, &_tmp32_);
+#line 3102 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp32_;
+#line 3106 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = exceptions;
+#line 3106 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = photo_exception_allows (_tmp33_, PHOTO_EXCEPTION_ORIENTATION);
+#line 3106 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp34_) {
+#line 23561 "Photo.c"
+ Orientation _tmp35_ = 0;
+ Dimensions _tmp36_ = {0};
+ Dimensions _tmp37_ = {0};
+#line 3107 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = orientation;
+#line 3107 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = _vala_scaled_image;
+#line 3107 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_derotate_dimensions (_tmp35_, &_tmp36_, &_tmp37_);
+#line 3107 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp37_;
+#line 23573 "Photo.c"
+ }
+ }
+ }
+#line 3112 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = dimensions_has_area (&_vala_scaled_image);
+#line 3112 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp38_) {
+#line 23581 "Photo.c"
+ Dimensions rotated_raw = {0};
+ Dimensions _tmp39_ = {0};
+ PhotoException _tmp40_ = 0;
+ gboolean _tmp41_ = FALSE;
+ Dimensions _tmp45_ = {0};
+ Dimensions _tmp46_ = {0};
+ Dimensions _tmp47_ = {0};
+ PhotoException _tmp48_ = 0;
+ gboolean _tmp49_ = FALSE;
+#line 3114 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = raw;
+#line 3114 "/home/jens/Source/shotwell/src/Photo.vala"
+ rotated_raw = _tmp39_;
+#line 3115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = exceptions;
+#line 3115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = photo_exception_allows (_tmp40_, PHOTO_EXCEPTION_ORIENTATION);
+#line 3115 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp41_) {
+#line 23601 "Photo.c"
+ Orientation _tmp42_ = 0;
+ Dimensions _tmp43_ = {0};
+ Dimensions _tmp44_ = {0};
+#line 3116 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = orientation;
+#line 3116 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = raw;
+#line 3116 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_rotate_dimensions (_tmp42_, &_tmp43_, &_tmp44_);
+#line 3116 "/home/jens/Source/shotwell/src/Photo.vala"
+ rotated_raw = _tmp44_;
+#line 23613 "Photo.c"
+ }
+#line 3118 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = rotated_raw;
+#line 3118 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_get_scaled_dimensions (scaling, &_tmp45_, &_tmp46_);
+#line 3118 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp46_;
+#line 3119 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _vala_scaled_image;
+#line 3119 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_to_viewport = _tmp47_;
+#line 3122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = exceptions;
+#line 3122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = photo_exception_allows (_tmp48_, PHOTO_EXCEPTION_ORIENTATION);
+#line 3122 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp49_) {
+#line 23631 "Photo.c"
+ Orientation _tmp50_ = 0;
+ Dimensions _tmp51_ = {0};
+ Dimensions _tmp52_ = {0};
+#line 3123 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = orientation;
+#line 3123 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = _vala_scaled_image;
+#line 3123 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_derotate_dimensions (_tmp50_, &_tmp51_, &_tmp52_);
+#line 3123 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp52_;
+#line 23643 "Photo.c"
+ }
+ }
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = _vala_scaled_image;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = _tmp54_.width;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = raw;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = _tmp56_.width;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp55_ >= _tmp57_) {
+#line 23656 "Photo.c"
+ Dimensions _tmp58_ = {0};
+ gint _tmp59_ = 0;
+ Dimensions _tmp60_ = {0};
+ gint _tmp61_ = 0;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = _vala_scaled_image;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = _tmp58_.height;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = raw;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = _tmp60_.height;
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp59_ >= _tmp61_;
+#line 23671 "Photo.c"
+ } else {
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = FALSE;
+#line 23675 "Photo.c"
+ }
+#line 3127 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp53_) {
+#line 23679 "Photo.c"
+ Dimensions _tmp62_ = {0};
+#line 3128 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = raw;
+#line 3128 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_scaled_image = _tmp62_;
+#line 3130 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 3130 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_image) {
+#line 3130 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_image = _vala_scaled_image;
+#line 23691 "Photo.c"
+ }
+#line 3130 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_to_viewport) {
+#line 3130 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_to_viewport = _vala_scaled_to_viewport;
+#line 23697 "Photo.c"
+ }
+#line 3130 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23701 "Photo.c"
+ }
+#line 3133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = dimensions_has_area (&_vala_scaled_image);
+#line 3133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp63_, "scaled_image.has_area()");
+#line 3134 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = dimensions_has_area (&_vala_scaled_to_viewport);
+#line 3134 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp64_, "scaled_to_viewport.has_area()");
+#line 3136 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 3136 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_image) {
+#line 3136 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_image = _vala_scaled_image;
+#line 23717 "Photo.c"
+ }
+#line 3136 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (scaled_to_viewport) {
+#line 3136 "/home/jens/Source/shotwell/src/Photo.vala"
+ *scaled_to_viewport = _vala_scaled_to_viewport;
+#line 23723 "Photo.c"
+ }
+#line 3136 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23727 "Photo.c"
+}
+
+
+static GdkPixbuf* photo_load_raw_pixbuf (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error) {
+ GdkPixbuf* result = NULL;
+ PhotoFileReader* loader = NULL;
+ BackingFetchMode _tmp0_ = 0;
+ PhotoFileReader* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Dimensions scaled_image = {0};
+ Dimensions scaled_to_viewport = {0};
+ gboolean is_scaled = FALSE;
+ Scaling _tmp7_ = {0};
+ PhotoException _tmp8_ = 0;
+ Dimensions _tmp9_ = {0};
+ Dimensions _tmp10_ = {0};
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ GdkPixbuf* pixbuf = NULL;
+ PhotoFileReader* _tmp17_ = NULL;
+ Dimensions _tmp18_ = {0};
+ Dimensions _tmp19_ = {0};
+ GdkPixbuf* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ Dimensions _tmp22_ = {0};
+ gboolean _tmp23_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 3142 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 3142 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 3145 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = fetch_mode;
+#line 3145 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_backing_reader (self, _tmp0_);
+#line 3145 "/home/jens/Source/shotwell/src/Photo.vala"
+ loader = _tmp1_;
+#line 3148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = scaling_is_unscaled (scaling);
+#line 3148 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 23769 "Photo.c"
+ GdkPixbuf* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = loader;
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_reader_unscaled_read (_tmp4_, &_inner_error_);
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp5_;
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (loader);
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 23788 "Photo.c"
+ }
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp3_;
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = NULL;
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp6_;
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (loader);
+#line 3153 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23802 "Photo.c"
+ }
+#line 3158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = *scaling;
+#line 3158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = exceptions;
+#line 3158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_calculate_pixbuf_dimensions (self, &_tmp7_, _tmp8_, &_tmp9_, &_tmp10_);
+#line 3158 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaled_image = _tmp9_;
+#line 3158 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaled_to_viewport = _tmp10_;
+#line 3158 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_scaled = _tmp11_;
+#line 3160 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = is_scaled;
+#line 3160 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp12_) {
+#line 23820 "Photo.c"
+ GdkPixbuf* _tmp13_ = NULL;
+ PhotoFileReader* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = loader;
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_file_reader_unscaled_read (_tmp14_, &_inner_error_);
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp15_;
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (loader);
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 23839 "Photo.c"
+ }
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp13_;
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = NULL;
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp16_;
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp13_);
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (loader);
+#line 3165 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23853 "Photo.c"
+ }
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = loader;
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_raw_dimensions (self, &_tmp18_);
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = scaled_image;
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = photo_file_reader_scaled_read (_tmp17_, &_tmp18_, &_tmp19_, &_inner_error_);
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp20_;
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (loader);
+#line 3168 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 23873 "Photo.c"
+ }
+#line 3176 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = pixbuf;
+#line 3176 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_for_pixbuf (_tmp21_, &_tmp22_);
+#line 3176 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = dimensions_approx_equals (&scaled_image, &_tmp22_, PHOTO_SCALING_FUDGE);
+#line 3176 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp23_, "scaled_image.approx_equals(Dimensions.for_pixbuf(pixbuf), SCALING_FUDGE)");
+#line 3178 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = pixbuf;
+#line 3178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (loader);
+#line 3178 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23889 "Photo.c"
+}
+
+
+GdkPixbuf* photo_get_master_pixbuf (Photo* self, Scaling* scaling, gboolean rotate, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ Scaling _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3183 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 3183 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = *scaling;
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = rotate;
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_untransformed_pixbuf (self, &_tmp1_, _tmp2_, BACKING_FETCH_MODE_MASTER, &_inner_error_);
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 23919 "Photo.c"
+ }
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp0_;
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3184 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23931 "Photo.c"
+}
+
+
+GdkPixbuf* photo_get_unmodified_pixbuf (Photo* self, Scaling* scaling, gboolean rotate, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ Scaling _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3188 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 3188 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = *scaling;
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = rotate;
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_untransformed_pixbuf (self, &_tmp1_, _tmp2_, BACKING_FETCH_MODE_UNMODIFIED, &_inner_error_);
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 23961 "Photo.c"
+ }
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp0_;
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3189 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 23973 "Photo.c"
+}
+
+
+static GdkPixbuf* photo_get_untransformed_pixbuf (Photo* self, Scaling* scaling, gboolean rotate, BackingFetchMode fetch_mode, GError** error) {
+ GdkPixbuf* result = NULL;
+ Dimensions scaled_image = {0};
+ Dimensions scaled_to_viewport = {0};
+ Orientation original_orientation = 0;
+ GdkPixbuf* pixbuf = NULL;
+ Scaling _tmp6_ = {0};
+ BackingFetchMode _tmp7_ = 0;
+ GdkPixbuf* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 3193 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 3193 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 23992 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 3207 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 3207 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 23999 "Photo.c"
+ {
+ Scaling _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ Orientation _tmp4_ = 0;
+#line 3208 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = *scaling;
+#line 3208 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_calculate_pixbuf_dimensions (self, &_tmp1_, PHOTO_EXCEPTION_NONE, &_tmp2_, &_tmp3_);
+#line 3208 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaled_image = _tmp2_;
+#line 3208 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaled_to_viewport = _tmp3_;
+#line 3210 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_get_original_orientation (self);
+#line 3210 "/home/jens/Source/shotwell/src/Photo.vala"
+ original_orientation = _tmp4_;
+#line 24017 "Photo.c"
+ }
+ __finally367:
+ {
+ PhotoRow* _tmp5_ = NULL;
+#line 3207 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->row;
+#line 3207 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 24026 "Photo.c"
+ }
+#line 3207 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3207 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3207 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 24034 "Photo.c"
+ }
+ }
+#line 3214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = *scaling;
+#line 3214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = fetch_mode;
+#line 3214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_load_raw_pixbuf (self, &_tmp6_, PHOTO_EXCEPTION_NONE, _tmp7_, &_inner_error_);
+#line 3214 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp8_;
+#line 3214 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3214 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3214 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 24051 "Photo.c"
+ }
+#line 3220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = rotate;
+#line 3220 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp9_) {
+#line 24057 "Photo.c"
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+#line 3221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = pixbuf;
+#line 3221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = orientation_rotate_pixbuf (original_orientation, _tmp10_);
+#line 3221 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3221 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp11_;
+#line 24068 "Photo.c"
+ }
+#line 3230 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = pixbuf;
+#line 3230 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 24074 "Photo.c"
+}
+
+
+static GdkPixbuf* photo_real_get_pixbuf (PhotoSource* base, Scaling* scaling, GError** error) {
+ Photo * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ Scaling _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3233 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO, Photo);
+#line 3233 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = *scaling;
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_get_pixbuf_with_options (self, &_tmp1_, PHOTO_EXCEPTION_NONE, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp2_;
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 24102 "Photo.c"
+ }
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp0_;
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3234 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 24114 "Photo.c"
+}
+
+
+/**
+ * One-stop shopping for the source pixbuf cache.
+ *
+ * The source pixbuf cache holds untransformed, unscaled (full-sized) pixbufs of Photo objects.
+ * These can be rather large and shouldn't be held in memory for too long, nor should many be
+ * allowed to stack up.
+ *
+ * If locate is non-null, a source pixbuf is returned for the Photo. If keep is true, the
+ * pixbuf is stored in the cache. (Thus, passing a Photo w/ keep == false will drop the cached
+ * pixbuf.) If Photo is non-null but keep is false, null is returned.
+ *
+ * Whether locate is null or not, the cache is walked in its entirety, dropping expired pixbufs
+ * and dropping excessive pixbufs from the LRU. Locating a Photo "touches" the pixbuf, i.e.
+ * it moves to the head of the LRU.
+ */
+static gpointer _photo_cached_pixbuf_ref0 (gpointer self) {
+#line 3269 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? photo_cached_pixbuf_ref (self) : NULL;
+#line 24136 "Photo.c"
+}
+
+
+static gboolean _photo_trim_source_pixbuf_cache_gsource_func (gpointer self) {
+ gboolean result;
+ result = photo_trim_source_pixbuf_cache ();
+#line 3321 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 24145 "Photo.c"
+}
+
+
+static GdkPixbuf* photo_run_source_pixbuf_cache (Photo* locate, gboolean keep, GError** error) {
+ GdkPixbuf* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 3252 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((locate == NULL) || IS_PHOTO (locate), NULL);
+#line 24154 "Photo.c"
+ {
+ GeeLinkedList* _tmp0_ = NULL;
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_source_pixbuf_cache;
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&__lock_photo_source_pixbuf_cache);
+#line 24161 "Photo.c"
+ {
+ PhotoCachedPixbuf* found = NULL;
+ gdouble min_elapsed = 0.0;
+ gint count = 0;
+ GeeIterator* iter = NULL;
+ GeeLinkedList* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ PhotoCachedPixbuf* _tmp31_ = NULL;
+ gboolean _tmp43_ = FALSE;
+ PhotoCachedPixbuf* _tmp44_ = NULL;
+ guint _tmp59_ = 0U;
+ GeeLinkedList* _tmp61_ = NULL;
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+ GdkPixbuf* _tmp69_ = NULL;
+ PhotoCachedPixbuf* _tmp70_ = NULL;
+ GdkPixbuf* _tmp73_ = NULL;
+#line 3254 "/home/jens/Source/shotwell/src/Photo.vala"
+ found = NULL;
+#line 3258 "/home/jens/Source/shotwell/src/Photo.vala"
+ min_elapsed = DBL_MAX;
+#line 3259 "/home/jens/Source/shotwell/src/Photo.vala"
+ count = 0;
+#line 3260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_source_pixbuf_cache;
+#line 3260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 3260 "/home/jens/Source/shotwell/src/Photo.vala"
+ iter = _tmp2_;
+#line 3261 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 24195 "Photo.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ PhotoCachedPixbuf* cached_pixbuf = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ gdouble elapsed = 0.0;
+ PhotoCachedPixbuf* _tmp7_ = NULL;
+ GTimer* _tmp8_ = NULL;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gboolean _tmp11_ = FALSE;
+ Photo* _tmp12_ = NULL;
+#line 3261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = iter;
+#line 3261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 3261 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp4_) {
+#line 3261 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 24216 "Photo.c"
+ }
+#line 3262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = iter;
+#line 3262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 3262 "/home/jens/Source/shotwell/src/Photo.vala"
+ cached_pixbuf = (PhotoCachedPixbuf*) _tmp6_;
+#line 3264 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = cached_pixbuf;
+#line 3264 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->last_touched;
+#line 3264 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = g_timer_elapsed (_tmp8_, NULL);
+#line 3264 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = trunc (_tmp9_);
+#line 3264 "/home/jens/Source/shotwell/src/Photo.vala"
+ elapsed = _tmp10_ + 1;
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = locate;
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_ != NULL) {
+#line 24238 "Photo.c"
+ PhotoCachedPixbuf* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = cached_pixbuf;
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->photo;
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = locate;
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_SOURCE, DataSource));
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp16_;
+#line 24253 "Photo.c"
+ } else {
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = FALSE;
+#line 24257 "Photo.c"
+ }
+#line 3266 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 24261 "Photo.c"
+ GeeIterator* _tmp17_ = NULL;
+ PhotoCachedPixbuf* _tmp18_ = NULL;
+ PhotoCachedPixbuf* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+#line 3268 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = iter;
+#line 3268 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_iterator_remove (_tmp17_);
+#line 3269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = cached_pixbuf;
+#line 3269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _photo_cached_pixbuf_ref0 (_tmp18_);
+#line 3269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_cached_pixbuf_unref0 (found);
+#line 3269 "/home/jens/Source/shotwell/src/Photo.vala"
+ found = _tmp19_;
+#line 3272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = count;
+#line 3272 "/home/jens/Source/shotwell/src/Photo.vala"
+ count = _tmp20_ + 1;
+#line 24282 "Photo.c"
+ } else {
+ gdouble _tmp21_ = 0.0;
+#line 3273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = elapsed;
+#line 3273 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp21_ >= ((gdouble) PHOTO_SOURCE_PIXBUF_TIME_TO_LIVE_SEC)) {
+#line 24289 "Photo.c"
+ GeeIterator* _tmp22_ = NULL;
+#line 3274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = iter;
+#line 3274 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_iterator_remove (_tmp22_);
+#line 24295 "Photo.c"
+ } else {
+ gint _tmp23_ = 0;
+#line 3275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = count;
+#line 3275 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp23_ >= PHOTO_SOURCE_PIXBUF_MAX_LRU_COUNT) {
+#line 24302 "Photo.c"
+ GeeIterator* _tmp24_ = NULL;
+#line 3276 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = iter;
+#line 3276 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_iterator_remove (_tmp24_);
+#line 24308 "Photo.c"
+ } else {
+ gdouble _tmp25_ = 0.0;
+ gdouble _tmp26_ = 0.0;
+ gdouble _tmp27_ = 0.0;
+ gint _tmp28_ = 0;
+#line 3280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = elapsed;
+#line 3280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = min_elapsed;
+#line 3280 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = MIN (_tmp25_, _tmp26_);
+#line 3280 "/home/jens/Source/shotwell/src/Photo.vala"
+ min_elapsed = _tmp27_;
+#line 3281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = count;
+#line 3281 "/home/jens/Source/shotwell/src/Photo.vala"
+ count = _tmp28_ + 1;
+#line 24326 "Photo.c"
+ }
+ }
+ }
+#line 3261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_cached_pixbuf_unref0 (cached_pixbuf);
+#line 24332 "Photo.c"
+ }
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = found;
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp31_ == NULL) {
+#line 24338 "Photo.c"
+ Photo* _tmp32_ = NULL;
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = locate;
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp32_ != NULL;
+#line 24344 "Photo.c"
+ } else {
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = FALSE;
+#line 24348 "Photo.c"
+ }
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp30_) {
+#line 24352 "Photo.c"
+ gboolean _tmp33_ = FALSE;
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = keep;
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp33_;
+#line 24358 "Photo.c"
+ } else {
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = FALSE;
+#line 24362 "Photo.c"
+ }
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp29_) {
+#line 24366 "Photo.c"
+ GdkPixbuf* _tmp34_ = NULL;
+ Photo* _tmp35_ = NULL;
+ Scaling _tmp36_ = {0};
+ GdkPixbuf* _tmp37_ = NULL;
+ Photo* _tmp38_ = NULL;
+ PhotoCachedPixbuf* _tmp39_ = NULL;
+#line 3288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = locate;
+#line 3288 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_for_original (&_tmp36_);
+#line 3288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = photo_load_raw_pixbuf (_tmp35_, &_tmp36_, PHOTO_EXCEPTION_ALL, BACKING_FETCH_MODE_SOURCE, &_inner_error_);
+#line 3288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp37_;
+#line 3288 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (iter);
+#line 3288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_cached_pixbuf_unref0 (found);
+#line 24387 "Photo.c"
+ goto __finally368;
+ }
+#line 3287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = locate;
+#line 3287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = photo_cached_pixbuf_new (_tmp38_, _tmp34_);
+#line 3287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_cached_pixbuf_unref0 (found);
+#line 3287 "/home/jens/Source/shotwell/src/Photo.vala"
+ found = _tmp39_;
+#line 3286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp34_);
+#line 24400 "Photo.c"
+ } else {
+ PhotoCachedPixbuf* _tmp40_ = NULL;
+#line 3289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = found;
+#line 3289 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp40_ != NULL) {
+#line 24407 "Photo.c"
+ PhotoCachedPixbuf* _tmp41_ = NULL;
+ GTimer* _tmp42_ = NULL;
+#line 3291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = found;
+#line 3291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_->last_touched;
+#line 3291 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_timer_start (_tmp42_);
+#line 24416 "Photo.c"
+ }
+ }
+#line 3295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = found;
+#line 3295 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp44_ != NULL) {
+#line 24423 "Photo.c"
+ gboolean _tmp45_ = FALSE;
+#line 3295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = keep;
+#line 3295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _tmp45_;
+#line 24429 "Photo.c"
+ } else {
+#line 3295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = FALSE;
+#line 24433 "Photo.c"
+ }
+#line 3295 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp43_) {
+#line 24437 "Photo.c"
+ GeeLinkedList* _tmp46_ = NULL;
+ PhotoCachedPixbuf* _tmp47_ = NULL;
+ PhotoCachedPixbuf* _tmp48_ = NULL;
+ GTimer* _tmp49_ = NULL;
+ gdouble _tmp50_ = 0.0;
+ gdouble _tmp51_ = 0.0;
+ gdouble _tmp52_ = 0.0;
+#line 3296 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = photo_source_pixbuf_cache;
+#line 3296 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = found;
+#line 3296 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0, _tmp47_);
+#line 3301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = found;
+#line 3301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = _tmp48_->last_touched;
+#line 3301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = g_timer_elapsed (_tmp49_, NULL);
+#line 3301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = min_elapsed;
+#line 3301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = MIN (_tmp50_, _tmp51_);
+#line 3301 "/home/jens/Source/shotwell/src/Photo.vala"
+ min_elapsed = _tmp52_;
+#line 3305 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 24465 "Photo.c"
+ GeeLinkedList* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ GeeLinkedList* _tmp56_ = NULL;
+ gpointer _tmp57_ = NULL;
+ PhotoCachedPixbuf* _tmp58_ = NULL;
+#line 3305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = photo_source_pixbuf_cache;
+#line 3305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 3305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = _tmp54_;
+#line 3305 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp55_ > PHOTO_SOURCE_PIXBUF_MAX_LRU_COUNT)) {
+#line 3305 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 24482 "Photo.c"
+ }
+#line 3306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = photo_source_pixbuf_cache;
+#line 3306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = gee_deque_poll_tail (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GEE_TYPE_DEQUE, GeeDeque));
+#line 3306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = (PhotoCachedPixbuf*) _tmp57_;
+#line 3306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_cached_pixbuf_unref0 (_tmp58_);
+#line 24492 "Photo.c"
+ }
+ }
+#line 3310 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = photo_discard_source_id;
+#line 3310 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp59_ != ((guint) 0)) {
+#line 24499 "Photo.c"
+ guint _tmp60_ = 0U;
+#line 3311 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = photo_discard_source_id;
+#line 3311 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_source_remove (_tmp60_);
+#line 3312 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_discard_source_id = (guint) 0;
+#line 24507 "Photo.c"
+ }
+#line 3316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = photo_source_pixbuf_cache;
+#line 3316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 3316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = _tmp62_;
+#line 3316 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp63_ > PHOTO_SOURCE_PIXBUF_MIN_LRU_COUNT) {
+#line 24517 "Photo.c"
+ gdouble _tmp64_ = 0.0;
+ guint retry_sec = 0U;
+ gdouble _tmp65_ = 0.0;
+ gdouble _tmp66_ = 0.0;
+ guint _tmp67_ = 0U;
+ guint _tmp68_ = 0U;
+#line 3317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = min_elapsed;
+#line 3317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp64_ >= 0.0, "min_elapsed >= 0.0");
+#line 3320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = min_elapsed;
+#line 3320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = trunc (_tmp65_);
+#line 3320 "/home/jens/Source/shotwell/src/Photo.vala"
+ retry_sec = PHOTO_SOURCE_PIXBUF_TIME_TO_LIVE_SEC - ((guint) _tmp66_);
+#line 3321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = retry_sec;
+#line 3321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = g_timeout_add_seconds_full (G_PRIORITY_LOW, _tmp67_, _photo_trim_source_pixbuf_cache_gsource_func, NULL, NULL);
+#line 3321 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_discard_source_id = _tmp68_;
+#line 24540 "Photo.c"
+ }
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = found;
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp70_ != NULL) {
+#line 24546 "Photo.c"
+ PhotoCachedPixbuf* _tmp71_ = NULL;
+ GdkPixbuf* _tmp72_ = NULL;
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = found;
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = _tmp71_->pixbuf;
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = _tmp72_;
+#line 24555 "Photo.c"
+ } else {
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = NULL;
+#line 24559 "Photo.c"
+ }
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = _g_object_ref0 (_tmp69_);
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp73_;
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (iter);
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_cached_pixbuf_unref0 (found);
+#line 24569 "Photo.c"
+ {
+ GeeLinkedList* _tmp74_ = NULL;
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = photo_source_pixbuf_cache;
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&__lock_photo_source_pixbuf_cache);
+#line 24576 "Photo.c"
+ }
+#line 3324 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 24580 "Photo.c"
+ }
+ __finally368:
+ {
+ GeeLinkedList* _tmp75_ = NULL;
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = photo_source_pixbuf_cache;
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&__lock_photo_source_pixbuf_cache);
+#line 24589 "Photo.c"
+ }
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3253 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 24595 "Photo.c"
+ }
+}
+
+
+static gboolean photo_trim_source_pixbuf_cache (void) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 3330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_run_source_pixbuf_cache (NULL, FALSE, &_inner_error_);
+#line 3330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 3330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3330 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 24614 "Photo.c"
+ goto __catch369_g_error;
+ }
+ }
+ goto __finally369;
+ __catch369_g_error:
+ {
+ GError* err = NULL;
+#line 3329 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 3329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 3329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 24628 "Photo.c"
+ }
+ __finally369:
+#line 3329 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3329 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 3329 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 3329 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 24639 "Photo.c"
+ }
+#line 3334 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 3334 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 24645 "Photo.c"
+}
+
+
+/**
+ * @brief Get a copy of what's in the cache.
+ *
+ * @return A copy of the Pixbuf with the image data from unmodified_precached.
+ */
+GdkPixbuf* photo_get_prefetched_copy (Photo* self, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3342 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_run_source_pixbuf_cache (self, TRUE, &_inner_error_);
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp1_;
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 24675 "Photo.c"
+ }
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp0_;
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gdk_pixbuf_copy (_tmp3_);
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3343 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 24695 "Photo.c"
+}
+
+
+/**
+ * @brief Discards the cached version of the unmodified image.
+ */
+void photo_discard_prefetched (Photo* self) {
+ GError * _inner_error_ = NULL;
+#line 3349 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 24706 "Photo.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 3351 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_run_source_pixbuf_cache (self, FALSE, &_inner_error_);
+#line 3351 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 3351 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3351 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 24718 "Photo.c"
+ goto __catch370_g_error;
+ }
+ }
+ goto __finally370;
+ __catch370_g_error:
+ {
+ GError* err = NULL;
+#line 3350 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 3350 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 3350 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 24732 "Photo.c"
+ }
+ __finally370:
+#line 3350 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3350 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 3350 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 3350 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 24743 "Photo.c"
+ }
+}
+
+
+/**
+ * @brief Returns a fully transformed and scaled pixbuf. Transformations may be excluded via
+ * the mask. If the image is smaller than the scaling, it will be returned in its actual size.
+ * The caller is responsible for scaling thereafter.
+ *
+ * @param scaling A scaling object that describes the size the output pixbuf should be.
+ * @param exceptions The parts of the pipeline that should be skipped; defaults to NONE if
+ * left unset.
+ * @param fetch_mode The fetch mode; if left unset, defaults to BASELINE so that
+ * we get the image exactly as it is in the file.
+ */
+GdkPixbuf* photo_get_pixbuf_with_options (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error) {
+ GdkPixbuf* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean is_scaled = FALSE;
+ gboolean is_cropped = FALSE;
+ gboolean is_straightened = FALSE;
+ Dimensions scaled_to_viewport = {0};
+ Dimensions original = {0};
+ Dimensions scaled = {0};
+ EditingToolsRedeyeInstance* redeye_instances = NULL;
+ gint redeye_instances_length1 = 0;
+ gint _redeye_instances_size_ = 0;
+ Box crop = {0};
+ gdouble straightening_angle = 0.0;
+ PixelTransformer* transformer = NULL;
+ Orientation orientation = 0;
+ GdkPixbuf* pixbuf = NULL;
+ GdkPixbuf* _tmp33_ = NULL;
+ PhotoException _tmp34_ = 0;
+ gboolean _tmp35_ = FALSE;
+ PhotoException _tmp40_ = 0;
+ gboolean _tmp41_ = FALSE;
+ PhotoException _tmp46_ = 0;
+ gboolean _tmp47_ = FALSE;
+ PhotoException _tmp85_ = 0;
+ gboolean _tmp86_ = FALSE;
+ gboolean _tmp89_ = FALSE;
+ PhotoException _tmp96_ = 0;
+ gboolean _tmp97_ = FALSE;
+ gboolean _tmp101_ = FALSE;
+ gboolean _tmp102_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 3367 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 3367 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_develop_raw_photos_to_files ();
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp4_) {
+#line 24805 "Photo.c"
+ PhotoFileFormat _tmp5_ = 0;
+#line 3381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_get_master_file_format (self);
+#line 3381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp5_ == PHOTO_FILE_FORMAT_RAW;
+#line 24811 "Photo.c"
+ } else {
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = FALSE;
+#line 24815 "Photo.c"
+ }
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 24819 "Photo.c"
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ BackingFetchMode _tmp8_ = 0;
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = fetch_mode;
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ == BACKING_FETCH_MODE_BASELINE) {
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = TRUE;
+#line 24829 "Photo.c"
+ } else {
+ BackingFetchMode _tmp9_ = 0;
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = fetch_mode;
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp9_ == BACKING_FETCH_MODE_UNMODIFIED;
+#line 24836 "Photo.c"
+ }
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_) {
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = TRUE;
+#line 24842 "Photo.c"
+ } else {
+ BackingFetchMode _tmp10_ = 0;
+#line 3383 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = fetch_mode;
+#line 3383 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp10_ == BACKING_FETCH_MODE_SOURCE;
+#line 24849 "Photo.c"
+ }
+#line 3382 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp6_;
+#line 24853 "Photo.c"
+ } else {
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 24857 "Photo.c"
+ }
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 24861 "Photo.c"
+ RawDeveloper _tmp11_ = 0;
+ gboolean _tmp12_ = FALSE;
+#line 3384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_get_raw_developer (self);
+#line 3384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_is_raw_developer_complete (self, _tmp11_);
+#line 3384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = !_tmp12_;
+#line 24870 "Photo.c"
+ } else {
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = FALSE;
+#line 24874 "Photo.c"
+ }
+#line 3380 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_) {
+#line 24878 "Photo.c"
+ RawDeveloper _tmp13_ = 0;
+#line 3385 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_get_raw_developer (self);
+#line 3385 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_raw_developer (self, _tmp13_);
+#line 24884 "Photo.c"
+ }
+#line 3390 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_init (&original, 0, 0);
+#line 3391 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_init (&scaled, 0, 0);
+#line 3392 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances = NULL;
+#line 3392 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances_length1 = 0;
+#line 3392 "/home/jens/Source/shotwell/src/Photo.vala"
+ _redeye_instances_size_ = redeye_instances_length1;
+#line 3395 "/home/jens/Source/shotwell/src/Photo.vala"
+ transformer = NULL;
+#line 24898 "Photo.c"
+ {
+ PhotoRow* _tmp14_ = NULL;
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->row;
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 24905 "Photo.c"
+ {
+ Dimensions _tmp15_ = {0};
+ PhotoException _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ Dimensions _tmp18_ = {0};
+ Dimensions _tmp19_ = {0};
+ Dimensions _tmp20_ = {0};
+ Dimensions _tmp21_ = {0};
+ gboolean _tmp22_ = FALSE;
+ gint _tmp23_ = 0;
+ EditingToolsRedeyeInstance* _tmp24_ = NULL;
+ Box _tmp25_ = {0};
+ gboolean _tmp26_ = FALSE;
+ gdouble _tmp27_ = 0.0;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ Orientation _tmp31_ = 0;
+#line 3399 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_ALL, &_tmp15_);
+#line 3399 "/home/jens/Source/shotwell/src/Photo.vala"
+ original = _tmp15_;
+#line 3400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = exceptions;
+#line 3400 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp16_, &_tmp17_);
+#line 3400 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_get_scaled_dimensions (scaling, &_tmp17_, &_tmp18_);
+#line 3400 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaled = _tmp18_;
+#line 3401 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = scaled;
+#line 3401 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaled_to_viewport = _tmp19_;
+#line 3403 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp20_);
+#line 3403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = scaled;
+#line 3403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = dimensions_equals (&_tmp20_, &_tmp21_);
+#line 3403 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_scaled = !_tmp22_;
+#line 3405 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = photo_get_raw_redeye_instances (self, &_tmp23_);
+#line 3405 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances = (g_free (redeye_instances), NULL);
+#line 3405 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances = _tmp24_;
+#line 3405 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances_length1 = _tmp23_;
+#line 3405 "/home/jens/Source/shotwell/src/Photo.vala"
+ _redeye_instances_size_ = redeye_instances_length1;
+#line 3407 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = photo_get_raw_crop (self, &_tmp25_);
+#line 3407 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop = _tmp25_;
+#line 3407 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_cropped = _tmp26_;
+#line 3409 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = photo_get_raw_straighten (self, &_tmp27_);
+#line 3409 "/home/jens/Source/shotwell/src/Photo.vala"
+ straightening_angle = _tmp27_;
+#line 3409 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_straightened = _tmp28_;
+#line 3411 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = photo_has_color_adjustments (self);
+#line 3411 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp29_) {
+#line 24973 "Photo.c"
+ PixelTransformer* _tmp30_ = NULL;
+#line 3412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = photo_get_pixel_transformer (self);
+#line 3412 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (transformer);
+#line 3412 "/home/jens/Source/shotwell/src/Photo.vala"
+ transformer = _tmp30_;
+#line 24981 "Photo.c"
+ }
+#line 3414 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = photo_get_orientation (self);
+#line 3414 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation = _tmp31_;
+#line 24987 "Photo.c"
+ }
+ __finally371:
+ {
+ PhotoRow* _tmp32_ = NULL;
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = self->row;
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 24996 "Photo.c"
+ }
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (transformer);
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances = (g_free (redeye_instances), NULL);
+#line 3398 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 25008 "Photo.c"
+ }
+ }
+#line 3421 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = photo_get_prefetched_copy (self, &_inner_error_);
+#line 3421 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp33_;
+#line 3421 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3421 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3421 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (transformer);
+#line 3421 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances = (g_free (redeye_instances), NULL);
+#line 3421 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 25025 "Photo.c"
+ }
+#line 3428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = exceptions;
+#line 3428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo_exception_allows (_tmp34_, PHOTO_EXCEPTION_REDEYE);
+#line 3428 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp35_) {
+#line 25033 "Photo.c"
+ EditingToolsRedeyeInstance* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+#line 3433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = redeye_instances;
+#line 3433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36__length1 = redeye_instances_length1;
+#line 25040 "Photo.c"
+ {
+ EditingToolsRedeyeInstance* instance_collection = NULL;
+ gint instance_collection_length1 = 0;
+ gint _instance_collection_size_ = 0;
+ gint instance_it = 0;
+#line 3433 "/home/jens/Source/shotwell/src/Photo.vala"
+ instance_collection = _tmp36_;
+#line 3433 "/home/jens/Source/shotwell/src/Photo.vala"
+ instance_collection_length1 = _tmp36__length1;
+#line 3433 "/home/jens/Source/shotwell/src/Photo.vala"
+ for (instance_it = 0; instance_it < _tmp36__length1; instance_it = instance_it + 1) {
+#line 25052 "Photo.c"
+ EditingToolsRedeyeInstance instance = {0};
+#line 3433 "/home/jens/Source/shotwell/src/Photo.vala"
+ instance = instance_collection[instance_it];
+#line 25056 "Photo.c"
+ {
+ GdkPixbuf* _tmp37_ = NULL;
+ EditingToolsRedeyeInstance _tmp38_ = {0};
+ GdkPixbuf* _tmp39_ = NULL;
+#line 3434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = pixbuf;
+#line 3434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = instance;
+#line 3434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = photo_do_redeye (self, _tmp37_, &_tmp38_);
+#line 3434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3434 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp39_;
+#line 25071 "Photo.c"
+ }
+ }
+ }
+ }
+#line 3442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = exceptions;
+#line 3442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = photo_exception_allows (_tmp40_, PHOTO_EXCEPTION_STRAIGHTEN);
+#line 3442 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp41_) {
+#line 25082 "Photo.c"
+ gboolean _tmp42_ = FALSE;
+#line 3446 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = is_straightened;
+#line 3446 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp42_) {
+#line 25088 "Photo.c"
+ GdkPixbuf* _tmp43_ = NULL;
+ gdouble _tmp44_ = 0.0;
+ GdkPixbuf* _tmp45_ = NULL;
+#line 3447 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = pixbuf;
+#line 3447 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = straightening_angle;
+#line 3447 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = rotate_arb (_tmp43_, _tmp44_);
+#line 3447 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3447 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp45_;
+#line 25102 "Photo.c"
+ }
+ }
+#line 3456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = exceptions;
+#line 3456 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = photo_exception_allows (_tmp46_, PHOTO_EXCEPTION_CROP);
+#line 3456 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp47_) {
+#line 25111 "Photo.c"
+ gboolean _tmp48_ = FALSE;
+#line 3460 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = is_cropped;
+#line 3460 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp48_) {
+#line 25117 "Photo.c"
+ Box _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ GdkPixbuf* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ Box _tmp55_ = {0};
+ gint _tmp56_ = 0;
+ GdkPixbuf* _tmp57_ = NULL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ Box _tmp61_ = {0};
+ gint _tmp62_ = 0;
+ Box _tmp63_ = {0};
+ gint _tmp64_ = 0;
+ GdkPixbuf* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ Box _tmp69_ = {0};
+ gint _tmp70_ = 0;
+ Box _tmp71_ = {0};
+ gint _tmp72_ = 0;
+ GdkPixbuf* _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+ GdkPixbuf* _tmp77_ = NULL;
+ Box _tmp78_ = {0};
+ gint _tmp79_ = 0;
+ Box _tmp80_ = {0};
+ gint _tmp81_ = 0;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ GdkPixbuf* _tmp84_ = NULL;
+#line 3465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = crop;
+#line 3465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = _tmp49_.left;
+#line 3465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = pixbuf;
+#line 3465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = gdk_pixbuf_get_width (_tmp51_);
+#line 3465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp52_;
+#line 3465 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = CLAMP (_tmp50_, 0, _tmp53_ - 2);
+#line 3465 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop.left = _tmp54_;
+#line 3466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = crop;
+#line 3466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = _tmp55_.top;
+#line 3466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = pixbuf;
+#line 3466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = gdk_pixbuf_get_height (_tmp57_);
+#line 3466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = _tmp58_;
+#line 3466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = CLAMP (_tmp56_, 0, _tmp59_ - 2);
+#line 3466 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop.top = _tmp60_;
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = crop;
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = _tmp61_.right;
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = crop;
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = _tmp63_.left;
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = pixbuf;
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = gdk_pixbuf_get_width (_tmp65_);
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = _tmp66_;
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = CLAMP (_tmp62_, _tmp64_ + 1, _tmp67_ - 1);
+#line 3468 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop.right = _tmp68_;
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = crop;
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = _tmp69_.bottom;
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = crop;
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = _tmp71_.top;
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = pixbuf;
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = gdk_pixbuf_get_height (_tmp73_);
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = _tmp74_;
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = CLAMP (_tmp70_, _tmp72_ + 1, _tmp75_ - 1);
+#line 3469 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop.bottom = _tmp76_;
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = pixbuf;
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = crop;
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = _tmp78_.left;
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = crop;
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = _tmp80_.top;
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = box_get_width (&crop);
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = box_get_height (&crop);
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = gdk_pixbuf_new_subpixbuf (_tmp77_, _tmp79_, _tmp81_, _tmp82_, _tmp83_);
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3471 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp84_;
+#line 25238 "Photo.c"
+ }
+ }
+#line 3481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = exceptions;
+#line 3481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = photo_exception_allows (_tmp85_, PHOTO_EXCEPTION_ORIENTATION);
+#line 3481 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp86_) {
+#line 25247 "Photo.c"
+ GdkPixbuf* _tmp87_ = NULL;
+ GdkPixbuf* _tmp88_ = NULL;
+#line 3485 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = pixbuf;
+#line 3485 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = orientation_rotate_pixbuf (orientation, _tmp87_);
+#line 3485 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3485 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp88_;
+#line 25258 "Photo.c"
+ }
+#line 3492 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = is_scaled;
+#line 3492 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp89_) {
+#line 25264 "Photo.c"
+ GdkPixbuf* _tmp90_ = NULL;
+ Dimensions _tmp91_ = {0};
+ gint _tmp92_ = 0;
+ Dimensions _tmp93_ = {0};
+ gint _tmp94_ = 0;
+ GdkPixbuf* _tmp95_ = NULL;
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = pixbuf;
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = scaled_to_viewport;
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = _tmp91_.width;
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = scaled_to_viewport;
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = _tmp93_.height;
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = gdk_pixbuf_scale_simple (_tmp90_, _tmp92_, _tmp94_, GDK_INTERP_BILINEAR);
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3496 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp95_;
+#line 25287 "Photo.c"
+ }
+#line 3504 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = exceptions;
+#line 3504 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = photo_exception_allows (_tmp96_, PHOTO_EXCEPTION_ADJUST);
+#line 3504 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp97_) {
+#line 25295 "Photo.c"
+ PixelTransformer* _tmp98_ = NULL;
+#line 3508 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = transformer;
+#line 3508 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp98_ != NULL) {
+#line 25301 "Photo.c"
+ PixelTransformer* _tmp99_ = NULL;
+ GdkPixbuf* _tmp100_ = NULL;
+#line 3509 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp99_ = transformer;
+#line 3509 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = pixbuf;
+#line 3509 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixel_transformer_transform_pixbuf (_tmp99_, _tmp100_, NULL);
+#line 25310 "Photo.c"
+ }
+ }
+#line 3518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp102_ = is_scaled;
+#line 3518 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp102_) {
+#line 25317 "Photo.c"
+ gboolean _tmp103_ = FALSE;
+#line 3518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103_ = is_straightened;
+#line 3518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = !_tmp103_;
+#line 25323 "Photo.c"
+ } else {
+#line 3518 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = FALSE;
+#line 25327 "Photo.c"
+ }
+#line 3518 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp101_) {
+#line 25331 "Photo.c"
+ GdkPixbuf* _tmp104_ = NULL;
+ Dimensions _tmp105_ = {0};
+ gboolean _tmp106_ = FALSE;
+#line 3519 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = pixbuf;
+#line 3519 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_for_pixbuf (_tmp104_, &_tmp105_);
+#line 3519 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = dimensions_approx_equals (&scaled_to_viewport, &_tmp105_, PHOTO_SCALING_FUDGE);
+#line 3519 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp106_, "scaled_to_viewport.approx_equals(Dimensions.for_pixbuf(pixbuf), SCALING_FUDGE)");
+#line 25343 "Photo.c"
+ }
+#line 3527 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = pixbuf;
+#line 3527 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (transformer);
+#line 3527 "/home/jens/Source/shotwell/src/Photo.vala"
+ redeye_instances = (g_free (redeye_instances), NULL);
+#line 3527 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 25353 "Photo.c"
+}
+
+
+static gboolean photo_real_has_user_generated_metadata (Photo* self) {
+#line 3535 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_has_user_generated_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 3535 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 25362 "Photo.c"
+}
+
+
+gboolean photo_has_user_generated_metadata (Photo* self) {
+#line 3535 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 3535 "/home/jens/Source/shotwell/src/Photo.vala"
+ return PHOTO_GET_CLASS (self)->has_user_generated_metadata (self);
+#line 25371 "Photo.c"
+}
+
+
+static void photo_real_set_user_metadata_for_export (Photo* self, PhotoMetadata* metadata) {
+#line 3539 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_set_user_metadata_for_export'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 3539 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 25380 "Photo.c"
+}
+
+
+void photo_set_user_metadata_for_export (Photo* self, PhotoMetadata* metadata) {
+#line 3539 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3539 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_GET_CLASS (self)->set_user_metadata_for_export (self, metadata);
+#line 25389 "Photo.c"
+}
+
+
+gchar* photo_get_export_basename (Photo* self, PhotoFileFormat* file_format) {
+ gchar* result = NULL;
+ PhotoFileFormat* _tmp0_ = NULL;
+#line 3546 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 3547 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file_format;
+#line 3547 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != NULL) {
+#line 25402 "Photo.c"
+ PhotoFileFormat* _tmp1_ = NULL;
+ PhotoFileFormatProperties* _tmp2_ = NULL;
+ PhotoFileFormatProperties* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file_format;
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_file_format_get_properties (*_tmp1_);
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_file_format_properties_convert_file_extension (_tmp3_, _tmp5_);
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_file_get_basename (_tmp7_);
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp7_);
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp5_);
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (_tmp3_);
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp9_;
+#line 3548 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 25440 "Photo.c"
+ } else {
+ PhotoFileFormat _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+#line 3550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_get_file_format (self);
+#line 3550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo_file_format_can_write (_tmp10_);
+#line 3550 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 25450 "Photo.c"
+ PhotoFileFormat _tmp12_ = 0;
+ PhotoFileFormatProperties* _tmp13_ = NULL;
+ PhotoFileFormatProperties* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_get_file_format (self);
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_file_format_get_properties (_tmp12_);
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_;
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_file_format_properties_convert_file_extension (_tmp14_, _tmp16_);
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_;
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = g_file_get_basename (_tmp18_);
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp18_);
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp16_);
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (_tmp14_);
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp20_;
+#line 3551 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 25488 "Photo.c"
+ } else {
+ PhotoFileFormat _tmp21_ = 0;
+ PhotoFileFormatProperties* _tmp22_ = NULL;
+ PhotoFileFormatProperties* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_file_format_get_system_default_format ();
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = photo_file_format_get_properties (_tmp21_);
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_;
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_;
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = photo_file_format_properties_convert_file_extension (_tmp23_, _tmp25_);
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_;
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = g_file_get_basename (_tmp27_);
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_;
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp27_);
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp25_);
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (_tmp23_);
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp29_;
+#line 3554 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 25527 "Photo.c"
+ }
+ }
+}
+
+
+static gboolean photo_export_fullsized_backing (Photo* self, GFile* file, gboolean export_metadata, GError** error) {
+ gboolean result = FALSE;
+ PhotoFileReader* export_reader = NULL;
+ gboolean is_master = FALSE;
+ PhotoFileReader* _tmp29_ = NULL;
+ PhotoFileFormatProperties* format_properties = NULL;
+ PhotoFileReader* _tmp30_ = NULL;
+ PhotoFileFormat _tmp31_ = 0;
+ PhotoFileFormatProperties* _tmp32_ = NULL;
+ GFile* dest_file = NULL;
+ PhotoFileFormatProperties* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+ PhotoFileMetadataWriter* writer = NULL;
+ PhotoFileReader* _tmp36_ = NULL;
+ PhotoFileFormat _tmp37_ = 0;
+ GFile* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ PhotoFileMetadataWriter* _tmp41_ = NULL;
+ PhotoFileMetadataWriter* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ PhotoFileMetadataWriter* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ PhotoFileReader* _tmp48_ = NULL;
+ GFile* _tmp49_ = NULL;
+ GFile* _tmp50_ = NULL;
+ GFile* _tmp51_ = NULL;
+ gboolean _tmp52_ = FALSE;
+ gboolean _tmp53_ = FALSE;
+ gboolean _tmp54_ = FALSE;
+ gboolean _tmp55_ = FALSE;
+ gboolean _tmp56_ = FALSE;
+ gboolean _tmp57_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ PhotoFileReader* _tmp65_ = NULL;
+ PhotoMetadata* _tmp66_ = NULL;
+ PhotoMetadata* _tmp67_ = NULL;
+ PhotoFileMetadataWriter* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ time_t _tmp74_ = 0;
+ gboolean _tmp80_ = FALSE;
+ PhotoFileMetadataWriter* _tmp97_ = NULL;
+ PhotoMetadata* _tmp98_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 3560 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 3563 "/home/jens/Source/shotwell/src/Photo.vala"
+ export_reader = NULL;
+#line 3564 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_master = TRUE;
+#line 25589 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 25596 "Photo.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ PhotoBackingReaders* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->readers;
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->editable;
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ != NULL) {
+#line 25607 "Photo.c"
+ PhotoBackingReaders* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ PhotoFileFormat _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->editable;
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_file_format_can_write_metadata (_tmp6_);
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp7_;
+#line 25622 "Photo.c"
+ } else {
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 25626 "Photo.c"
+ }
+#line 3566 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 25630 "Photo.c"
+ PhotoBackingReaders* _tmp8_ = NULL;
+ PhotoFileReader* _tmp9_ = NULL;
+ PhotoFileReader* _tmp10_ = NULL;
+#line 3567 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = self->priv->readers;
+#line 3567 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_->editable;
+#line 3567 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _photo_file_adapter_ref0 (_tmp9_);
+#line 3567 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3567 "/home/jens/Source/shotwell/src/Photo.vala"
+ export_reader = _tmp10_;
+#line 3568 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_master = FALSE;
+#line 25646 "Photo.c"
+ } else {
+ gboolean _tmp11_ = FALSE;
+ PhotoBackingReaders* _tmp12_ = NULL;
+ PhotoFileReader* _tmp13_ = NULL;
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->priv->readers;
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_->developer;
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_ != NULL) {
+#line 25657 "Photo.c"
+ PhotoBackingReaders* _tmp14_ = NULL;
+ PhotoFileReader* _tmp15_ = NULL;
+ PhotoFileFormat _tmp16_ = 0;
+ gboolean _tmp17_ = FALSE;
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->priv->readers;
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->developer;
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_file_format_can_write_metadata (_tmp16_);
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp17_;
+#line 25672 "Photo.c"
+ } else {
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = FALSE;
+#line 25676 "Photo.c"
+ }
+#line 3569 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 25680 "Photo.c"
+ PhotoBackingReaders* _tmp18_ = NULL;
+ PhotoFileReader* _tmp19_ = NULL;
+ PhotoFileReader* _tmp20_ = NULL;
+#line 3570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->priv->readers;
+#line 3570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->developer;
+#line 3570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _photo_file_adapter_ref0 (_tmp19_);
+#line 3570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3570 "/home/jens/Source/shotwell/src/Photo.vala"
+ export_reader = _tmp20_;
+#line 3571 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_master = FALSE;
+#line 25696 "Photo.c"
+ } else {
+ PhotoBackingReaders* _tmp21_ = NULL;
+ PhotoFileReader* _tmp22_ = NULL;
+ PhotoFileFormat _tmp23_ = 0;
+ gboolean _tmp24_ = FALSE;
+#line 3572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = self->priv->readers;
+#line 3572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_->master;
+#line 3572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = photo_file_format_can_write_metadata (_tmp23_);
+#line 3572 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp24_) {
+#line 25712 "Photo.c"
+ PhotoBackingReaders* _tmp25_ = NULL;
+ PhotoFileReader* _tmp26_ = NULL;
+ PhotoFileReader* _tmp27_ = NULL;
+#line 3573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->priv->readers;
+#line 3573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_->master;
+#line 3573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _photo_file_adapter_ref0 (_tmp26_);
+#line 3573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3573 "/home/jens/Source/shotwell/src/Photo.vala"
+ export_reader = _tmp27_;
+#line 25726 "Photo.c"
+ }
+ }
+ }
+ }
+ __finally372:
+ {
+ PhotoBackingReaders* _tmp28_ = NULL;
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = self->priv->readers;
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 25738 "Photo.c"
+ }
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3565 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 25748 "Photo.c"
+ }
+ }
+#line 3577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = export_reader;
+#line 3577 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp29_ == NULL) {
+#line 3578 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 3578 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3578 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 25761 "Photo.c"
+ }
+#line 3580 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = export_reader;
+#line 3580 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3580 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = photo_file_format_get_properties (_tmp31_);
+#line 3580 "/home/jens/Source/shotwell/src/Photo.vala"
+ format_properties = _tmp32_;
+#line 3583 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = format_properties;
+#line 3583 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = file;
+#line 3583 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo_file_format_properties_convert_file_extension (_tmp33_, _tmp34_);
+#line 3583 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_file = _tmp35_;
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = export_reader;
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = dest_file;
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = g_file_get_path (_tmp38_);
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = _tmp39_;
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = photo_file_format_create_metadata_writer (_tmp37_, _tmp40_, &_inner_error_);
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_;
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp40_);
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ writer = _tmp42_;
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dest_file);
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (format_properties);
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3586 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 25809 "Photo.c"
+ }
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp43_;
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = writer;
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_;
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:3589: Exporting full-sized copy of %s to %s", _tmp44_, _tmp47_);
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp47_);
+#line 3589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp44_);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = export_reader;
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = _tmp49_;
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = dest_file;
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_copy (_tmp50_, _tmp51_, G_FILE_COPY_OVERWRITE | G_FILE_COPY_TARGET_DEFAULT_PERMS, NULL, NULL, NULL, &_inner_error_);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp50_);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dest_file);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (format_properties);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3591 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 25853 "Photo.c"
+ }
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = photo_has_alterations (self);
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp57_) {
+#line 25859 "Photo.c"
+ gboolean _tmp58_ = FALSE;
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = is_master;
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = _tmp58_;
+#line 25865 "Photo.c"
+ } else {
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = FALSE;
+#line 25869 "Photo.c"
+ }
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp56_) {
+#line 25873 "Photo.c"
+ gboolean _tmp59_ = FALSE;
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = photo_has_user_generated_metadata (self);
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = !_tmp59_;
+#line 25879 "Photo.c"
+ } else {
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = FALSE;
+#line 25883 "Photo.c"
+ }
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp55_) {
+#line 25887 "Photo.c"
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = _tmp60_;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = _tmp61_ == NULL;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp61_);
+#line 25898 "Photo.c"
+ } else {
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = FALSE;
+#line 25902 "Photo.c"
+ }
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp54_) {
+#line 25906 "Photo.c"
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = media_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = _tmp62_;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp63_ == NULL;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp63_);
+#line 25917 "Photo.c"
+ } else {
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = FALSE;
+#line 25921 "Photo.c"
+ }
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp53_) {
+#line 25925 "Photo.c"
+ gboolean _tmp64_ = FALSE;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = export_metadata;
+#line 3597 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = _tmp64_;
+#line 25931 "Photo.c"
+ } else {
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = FALSE;
+#line 25935 "Photo.c"
+ }
+#line 3596 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp52_) {
+#line 3598 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 3598 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3598 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dest_file);
+#line 3598 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (format_properties);
+#line 3598 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3598 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 25951 "Photo.c"
+ }
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = export_reader;
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = photo_file_reader_read_metadata (_tmp65_, &_inner_error_);
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp66_;
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dest_file);
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (format_properties);
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3601 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 25973 "Photo.c"
+ }
+#line 3602 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = metadata;
+#line 3602 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp67_ == NULL) {
+#line 25979 "Photo.c"
+ PhotoFileReader* _tmp68_ = NULL;
+ PhotoFileFormat _tmp69_ = 0;
+ PhotoMetadata* _tmp70_ = NULL;
+#line 3603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = export_reader;
+#line 3603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = photo_file_format_create_metadata (_tmp69_);
+#line 3603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3603 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp70_;
+#line 25993 "Photo.c"
+ }
+#line 3605 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = writer;
+#line 3605 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3605 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = _tmp72_;
+#line 3605 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:3605: Updating metadata of %s", _tmp73_);
+#line 3605 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp73_);
+#line 3607 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3607 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp74_ != ((time_t) 0)) {
+#line 26009 "Photo.c"
+ PhotoMetadata* _tmp75_ = NULL;
+ time_t _tmp76_ = 0;
+ MetadataDateTime* _tmp77_ = NULL;
+ MetadataDateTime* _tmp78_ = NULL;
+#line 3608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = metadata;
+#line 3608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = metadata_date_time_new (_tmp76_);
+#line 3608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = _tmp77_;
+#line 3608 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_exposure_date_time (_tmp75_, _tmp78_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 3608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (_tmp78_);
+#line 26026 "Photo.c"
+ } else {
+ PhotoMetadata* _tmp79_ = NULL;
+#line 3610 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = metadata;
+#line 3610 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_exposure_date_time (_tmp79_, NULL, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 26033 "Photo.c"
+ }
+#line 3612 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = export_metadata;
+#line 3612 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp80_) {
+#line 26039 "Photo.c"
+ PhotoMetadata* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ PhotoMetadata* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+ PhotoMetadata* _tmp87_ = NULL;
+ Dimensions _tmp88_ = {0};
+ PhotoMetadata* _tmp89_ = NULL;
+ Orientation _tmp90_ = 0;
+ PhotoMetadata* _tmp91_ = NULL;
+ Orientation _tmp92_ = 0;
+ Orientation _tmp93_ = 0;
+ PhotoMetadata* _tmp95_ = NULL;
+#line 3614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = metadata;
+#line 3614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = _tmp82_;
+#line 3614 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_title (_tmp81_, _tmp83_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 3614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp83_);
+#line 3615 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = metadata;
+#line 3615 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = media_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3615 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = _tmp85_;
+#line 3615 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_comment (_tmp84_, _tmp86_);
+#line 3615 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp86_);
+#line 3616 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = metadata;
+#line 3616 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp88_);
+#line 3616 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_pixel_dimensions (_tmp87_, &_tmp88_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 3617 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = metadata;
+#line 3617 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = photo_get_orientation (self);
+#line 3617 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_orientation (_tmp89_, _tmp90_);
+#line 3618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = metadata;
+#line 3618 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_software (_tmp91_, RESOURCES_APP_TITLE, RESOURCES_APP_VERSION);
+#line 3620 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = photo_get_orientation (self);
+#line 3620 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = photo_get_original_orientation (self);
+#line 3620 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp92_ != _tmp93_) {
+#line 26096 "Photo.c"
+ PhotoMetadata* _tmp94_ = NULL;
+#line 3621 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = metadata;
+#line 3621 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_remove_exif_thumbnail (_tmp94_);
+#line 26102 "Photo.c"
+ }
+#line 3623 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = metadata;
+#line 3623 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_user_metadata_for_export (self, _tmp95_);
+#line 26108 "Photo.c"
+ } else {
+ PhotoMetadata* _tmp96_ = NULL;
+#line 3627 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = metadata;
+#line 3627 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_clear (_tmp96_);
+#line 26115 "Photo.c"
+ }
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = writer;
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = metadata;
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp97_, _tmp98_, &_inner_error_);
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dest_file);
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (format_properties);
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3629 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 26139 "Photo.c"
+ }
+#line 3631 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 3631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dest_file);
+#line 3631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (format_properties);
+#line 3631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (export_reader);
+#line 3631 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 26155 "Photo.c"
+}
+
+
+gboolean photo_is_export_required (Photo* self, Scaling* scaling, PhotoFileFormat export_format) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 3637 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 3637 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = scaling_is_unscaled (scaling);
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp3_) {
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = TRUE;
+#line 26175 "Photo.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_has_alterations (self);
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp4_;
+#line 26182 "Photo.c"
+ }
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = TRUE;
+#line 26188 "Photo.c"
+ } else {
+ gboolean _tmp5_ = FALSE;
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_has_user_generated_metadata (self);
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp5_;
+#line 26195 "Photo.c"
+ }
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = TRUE;
+#line 26201 "Photo.c"
+ } else {
+ PhotoFileFormat _tmp6_ = 0;
+ PhotoFileFormat _tmp7_ = 0;
+#line 3639 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = export_format;
+#line 3639 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_get_file_format (self);
+#line 3639 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp6_ != _tmp7_;
+#line 26211 "Photo.c"
+ }
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 3638 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 26217 "Photo.c"
+}
+
+
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp18_ = NULL;
+ PhotoMetadata* _tmp19_ = NULL;
+ PhotoFileFormat _tmp22_ = 0;
+ gboolean _tmp23_ = FALSE;
+ PhotoFileWriter* writer = NULL;
+ PhotoFileFormat _tmp25_ = 0;
+ GFile* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ PhotoFileWriter* _tmp29_ = NULL;
+ PhotoFileWriter* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ PhotoFileWriter* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ PhotoFileFormat _tmp36_ = 0;
+ GEnumValue* _tmp37_;
+ GdkPixbuf* pixbuf = NULL;
+ gboolean _tmp38_ = FALSE;
+ PhotoFileFormat _tmp39_ = 0;
+ PhotoFileWriter* _tmp49_ = NULL;
+ GdkPixbuf* _tmp50_ = NULL;
+ JpegQuality _tmp51_ = 0;
+ PhotoFileWriter* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ gboolean _tmp75_ = FALSE;
+ PhotoFileFormat _tmp76_ = 0;
+ PhotoFileMetadataWriter* _tmp86_ = NULL;
+ PhotoFileFormat _tmp87_ = 0;
+ GFile* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ PhotoFileMetadataWriter* _tmp91_ = NULL;
+ PhotoFileMetadataWriter* _tmp92_ = NULL;
+ PhotoFileMetadataWriter* _tmp93_ = NULL;
+ PhotoFileMetadataWriter* _tmp94_ = NULL;
+ PhotoMetadata* _tmp95_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3645 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3645 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE (dest_file));
+#line 3645 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (scaling != NULL);
+#line 3647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = direct_copy_unmodified;
+#line 3647 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_) {
+#line 26279 "Photo.c"
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = dest_file;
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_copy (_tmp2_, _tmp3_, G_FILE_COPY_OVERWRITE | G_FILE_COPY_TARGET_DEFAULT_PERMS, NULL, NULL, NULL, &_inner_error_);
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp2_);
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3648 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26299 "Photo.c"
+ }
+#line 3650 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26303 "Photo.c"
+ }
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = scaling_is_unscaled (scaling);
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_) {
+#line 26309 "Photo.c"
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_has_alterations (self);
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp9_) {
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = TRUE;
+#line 26318 "Photo.c"
+ } else {
+ gboolean _tmp10_ = FALSE;
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_only_metadata_changed (self);
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp10_;
+#line 26325 "Photo.c"
+ }
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp8_;
+#line 26329 "Photo.c"
+ } else {
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = FALSE;
+#line 26333 "Photo.c"
+ }
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 26337 "Photo.c"
+ PhotoFileFormat _tmp11_ = 0;
+ PhotoFileFormat _tmp12_ = 0;
+#line 3658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = export_format;
+#line 3658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_get_file_format (self);
+#line 3658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp11_ == _tmp12_;
+#line 26346 "Photo.c"
+ } else {
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = FALSE;
+#line 26350 "Photo.c"
+ }
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 26354 "Photo.c"
+ PhotoFileFormat _tmp13_ = 0;
+#line 3658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_get_file_format (self);
+#line 3658 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp13_ == PHOTO_FILE_FORMAT_JFIF;
+#line 26360 "Photo.c"
+ } else {
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = FALSE;
+#line 26364 "Photo.c"
+ }
+#line 3657 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp4_) {
+#line 26368 "Photo.c"
+ gboolean _tmp14_ = FALSE;
+ GFile* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = dest_file;
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = export_metadata;
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_export_fullsized_backing (self, _tmp15_, _tmp16_, &_inner_error_);
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp17_;
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26387 "Photo.c"
+ }
+#line 3659 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_) {
+#line 3660 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26393 "Photo.c"
+ }
+ }
+#line 3666 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 3666 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp18_;
+#line 3667 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = metadata;
+#line 3667 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp19_ == NULL) {
+#line 26404 "Photo.c"
+ PhotoFileFormat _tmp20_ = 0;
+ PhotoMetadata* _tmp21_ = NULL;
+#line 3668 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = export_format;
+#line 3668 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_file_format_create_metadata (_tmp20_);
+#line 3668 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3668 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp21_;
+#line 26415 "Photo.c"
+ }
+#line 3670 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = export_format;
+#line 3670 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = photo_file_format_can_write (_tmp22_);
+#line 3670 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp23_) {
+#line 26423 "Photo.c"
+ PhotoFileFormat _tmp24_ = 0;
+#line 3671 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = photo_file_format_get_system_default_format ();
+#line 3671 "/home/jens/Source/shotwell/src/Photo.vala"
+ export_format = _tmp24_;
+#line 26429 "Photo.c"
+ }
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = export_format;
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = dest_file;
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = g_file_get_path (_tmp26_);
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_;
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = photo_file_format_create_writer (_tmp25_, _tmp28_, &_inner_error_);
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp29_;
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp28_);
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ writer = _tmp30_;
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3673 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26455 "Photo.c"
+ }
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_;
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = writer;
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_;
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = export_format;
+#line 3676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = g_enum_get_value (g_type_class_ref (TYPE_PHOTO_FILE_FORMAT), _tmp36_);
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:3675: Saving transformed version of %s to %s in file format" \
+" %s", _tmp32_, _tmp35_, (_tmp37_ != NULL) ? _tmp37_->value_name : NULL);
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp35_);
+#line 3675 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp32_);
+#line 3682 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = photo_get_file_format (self);
+#line 3682 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp39_ == PHOTO_FILE_FORMAT_JFIF) {
+#line 3682 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = TRUE;
+#line 26483 "Photo.c"
+ } else {
+ PhotoFileFormat _tmp40_ = 0;
+#line 3683 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = photo_get_file_format (self);
+#line 3683 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tmp40_ == PHOTO_FILE_FORMAT_RAW;
+#line 26490 "Photo.c"
+ }
+#line 3682 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp38_) {
+#line 26494 "Photo.c"
+ GdkPixbuf* _tmp41_ = NULL;
+ Scaling _tmp42_ = {0};
+ GdkPixbuf* _tmp43_ = NULL;
+ GdkPixbuf* _tmp44_ = NULL;
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = *scaling;
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = photo_get_pixbuf_with_options (self, &_tmp42_, PHOTO_EXCEPTION_ORIENTATION, BACKING_FETCH_MODE_SOURCE, &_inner_error_);
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp43_;
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26517 "Photo.c"
+ }
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp41_;
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = NULL;
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3684 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp44_;
+#line 3682 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp41_);
+#line 26529 "Photo.c"
+ } else {
+ GdkPixbuf* _tmp45_ = NULL;
+ Scaling _tmp46_ = {0};
+ GdkPixbuf* _tmp47_ = NULL;
+ GdkPixbuf* _tmp48_ = NULL;
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = *scaling;
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = photo_get_pixbuf_with_options (self, &_tmp46_, PHOTO_EXCEPTION_NONE, BACKING_FETCH_MODE_SOURCE, &_inner_error_);
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp47_;
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26553 "Photo.c"
+ }
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp45_;
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = NULL;
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3688 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp48_;
+#line 3682 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp45_);
+#line 26565 "Photo.c"
+ }
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = writer;
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = pixbuf;
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = quality;
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_writer_write (_tmp49_, _tmp50_, _tmp51_, &_inner_error_);
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3692 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26587 "Photo.c"
+ }
+#line 3694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = writer;
+#line 3694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = _tmp53_;
+#line 3694 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:3694: Setting EXIF for %s", _tmp54_);
+#line 3694 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp54_);
+#line 3697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = export_metadata;
+#line 3697 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp55_) {
+#line 26603 "Photo.c"
+ PhotoMetadata* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ PhotoMetadata* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ PhotoMetadata* _tmp62_ = NULL;
+ time_t _tmp63_ = 0;
+ PhotoMetadata* _tmp69_ = NULL;
+ PhotoMetadata* _tmp70_ = NULL;
+ PhotoMetadata* _tmp71_ = NULL;
+ gboolean _tmp72_ = FALSE;
+#line 3699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = metadata;
+#line 3699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = _tmp57_;
+#line 3699 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_title (_tmp56_, _tmp58_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 3699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp58_);
+#line 3700 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = metadata;
+#line 3700 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = media_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3700 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = _tmp60_;
+#line 3700 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_comment (_tmp59_, _tmp61_);
+#line 3700 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp61_);
+#line 3701 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = metadata;
+#line 3701 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_software (_tmp62_, RESOURCES_APP_TITLE, RESOURCES_APP_VERSION);
+#line 3703 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3703 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp63_ != ((time_t) 0)) {
+#line 26644 "Photo.c"
+ PhotoMetadata* _tmp64_ = NULL;
+ time_t _tmp65_ = 0;
+ MetadataDateTime* _tmp66_ = NULL;
+ MetadataDateTime* _tmp67_ = NULL;
+#line 3704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = metadata;
+#line 3704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = metadata_date_time_new (_tmp65_);
+#line 3704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = _tmp66_;
+#line 3704 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_exposure_date_time (_tmp64_, _tmp67_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 3704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _metadata_date_time_unref0 (_tmp67_);
+#line 26661 "Photo.c"
+ } else {
+ PhotoMetadata* _tmp68_ = NULL;
+#line 3706 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = metadata;
+#line 3706 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_exposure_date_time (_tmp68_, NULL, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 26668 "Photo.c"
+ }
+#line 3708 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = metadata;
+#line 3708 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_remove_tag (_tmp69_, "Exif.Iop.RelatedImageWidth");
+#line 3709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = metadata;
+#line 3709 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_remove_tag (_tmp70_, "Exif.Iop.RelatedImageHeight");
+#line 3710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = metadata;
+#line 3710 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_remove_exif_thumbnail (_tmp71_);
+#line 3712 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = photo_has_user_generated_metadata (self);
+#line 3712 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp72_) {
+#line 26686 "Photo.c"
+ PhotoMetadata* _tmp73_ = NULL;
+#line 3713 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = metadata;
+#line 3713 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_user_metadata_for_export (self, _tmp73_);
+#line 26692 "Photo.c"
+ }
+ } else {
+ PhotoMetadata* _tmp74_ = NULL;
+#line 3717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = metadata;
+#line 3717 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_clear (_tmp74_);
+#line 26700 "Photo.c"
+ }
+#line 3724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = photo_get_file_format (self);
+#line 3724 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp76_ == PHOTO_FILE_FORMAT_JFIF) {
+#line 3724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = TRUE;
+#line 26708 "Photo.c"
+ } else {
+ PhotoFileFormat _tmp77_ = 0;
+#line 3725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = photo_get_file_format (self);
+#line 3725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = _tmp77_ == PHOTO_FILE_FORMAT_RAW;
+#line 26715 "Photo.c"
+ }
+#line 3724 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp75_) {
+#line 26719 "Photo.c"
+ PhotoMetadata* _tmp78_ = NULL;
+ Dimensions _tmp79_ = {0};
+ PhotoMetadata* _tmp80_ = NULL;
+ Orientation _tmp81_ = 0;
+#line 3726 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = metadata;
+#line 3726 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_ORIENTATION, &_tmp79_);
+#line 3726 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_pixel_dimensions (_tmp78_, &_tmp79_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 3727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = metadata;
+#line 3727 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = photo_get_orientation (self);
+#line 3727 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_orientation (_tmp80_, _tmp81_);
+#line 26736 "Photo.c"
+ } else {
+ PhotoMetadata* _tmp82_ = NULL;
+ GdkPixbuf* _tmp83_ = NULL;
+ Dimensions _tmp84_ = {0};
+ PhotoMetadata* _tmp85_ = NULL;
+#line 3730 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = metadata;
+#line 3730 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = pixbuf;
+#line 3730 "/home/jens/Source/shotwell/src/Photo.vala"
+ dimensions_for_pixbuf (_tmp83_, &_tmp84_);
+#line 3730 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_pixel_dimensions (_tmp82_, &_tmp84_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 3731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = metadata;
+#line 3731 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_orientation (_tmp85_, ORIENTATION_TOP_LEFT);
+#line 26754 "Photo.c"
+ }
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = export_format;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = dest_file;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = g_file_get_path (_tmp88_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = _tmp89_;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = photo_file_format_create_metadata_writer (_tmp87_, _tmp90_, &_inner_error_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = _tmp91_;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp90_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = _tmp92_;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26784 "Photo.c"
+ }
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = _tmp86_;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = NULL;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = _tmp93_;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = metadata;
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_file_metadata_writer_write_metadata (_tmp94_, _tmp95_, &_inner_error_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp94_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp86_);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 3734 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 26812 "Photo.c"
+ }
+#line 3645 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp86_);
+#line 3645 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 3645 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 3645 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 26822 "Photo.c"
+}
+
+
+static GFile* photo_generate_new_editable_file (Photo* self, PhotoFileFormat* file_format, GError** error) {
+ PhotoFileFormat _vala_file_format = 0;
+ GFile* result = NULL;
+ GFile* backing = NULL;
+ PhotoFileFormat _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ const gchar* _tmp12_ = NULL;
+ gchar* editable_basename = NULL;
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gboolean collision = FALSE;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ GFile* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3737 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 26856 "Photo.c"
+ {
+ PhotoRow* _tmp0_ = NULL;
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->row;
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 26863 "Photo.c"
+ {
+ PhotoFileFormat _tmp1_ = 0;
+ GFile* _tmp2_ = NULL;
+#line 3740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_file_format (self);
+#line 3740 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_file_format = _tmp1_;
+#line 3741 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3741 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (backing);
+#line 3741 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = _tmp2_;
+#line 26877 "Photo.c"
+ }
+ __finally373:
+ {
+ PhotoRow* _tmp3_ = NULL;
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->row;
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 26886 "Photo.c"
+ }
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (backing);
+#line 3739 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 26896 "Photo.c"
+ }
+ }
+#line 3744 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _vala_file_format;
+#line 3744 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_format_can_write (_tmp4_);
+#line 3744 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp5_) {
+#line 26905 "Photo.c"
+ PhotoFileFormat _tmp6_ = 0;
+#line 3745 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_file_format_get_system_default_format ();
+#line 3745 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_file_format = _tmp6_;
+#line 26911 "Photo.c"
+ }
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = g_file_get_basename (backing);
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ disassemble_filename (_tmp8_, &_tmp9_, &_tmp10_);
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ name = _tmp9_;
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ ext = _tmp10_;
+#line 3748 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp8_);
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = ext;
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_ == NULL) {
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = TRUE;
+#line 26935 "Photo.c"
+ } else {
+ PhotoFileFormat _tmp13_ = 0;
+ PhotoFileFormatProperties* _tmp14_ = NULL;
+ PhotoFileFormatProperties* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _vala_file_format;
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = photo_file_format_get_properties (_tmp13_);
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_;
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = ext;
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_file_format_properties_is_recognized_extension (_tmp15_, _tmp16_);
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = !_tmp17_;
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (_tmp15_);
+#line 26956 "Photo.c"
+ }
+#line 3750 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 26960 "Photo.c"
+ PhotoFileFormat _tmp18_ = 0;
+ PhotoFileFormatProperties* _tmp19_ = NULL;
+ PhotoFileFormatProperties* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 3751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _vala_file_format;
+#line 3751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = photo_file_format_get_properties (_tmp18_);
+#line 3751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 3751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_file_format_properties_get_default_extension (_tmp20_);
+#line 3751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 3751 "/home/jens/Source/shotwell/src/Photo.vala"
+ ext = _tmp21_;
+#line 3751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_format_properties_unref0 (_tmp20_);
+#line 26979 "Photo.c"
+ }
+#line 3753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = name;
+#line 3753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _ ("modified");
+#line 3753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = ext;
+#line 3753 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = g_strdup_printf ("%s_%s.%s", _tmp22_, _tmp23_, _tmp24_);
+#line 3753 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_basename = _tmp25_;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = g_file_get_parent (backing);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = generate_unique_file (_tmp28_, editable_basename, &_tmp29_, &_inner_error_);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ collision = _tmp29_;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp28_);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp31_;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (editable_basename);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (backing);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 27019 "Photo.c"
+ }
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp26_;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = NULL;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp32_;
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp26_);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (editable_basename);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (ext);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (backing);
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (file_format) {
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ *file_format = _vala_file_format;
+#line 27041 "Photo.c"
+ }
+#line 3756 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 27045 "Photo.c"
+}
+
+
+static void _g_object_unref0_ (gpointer var) {
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+#line 27052 "Photo.c"
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_list_free (self);
+#line 27061 "Photo.c"
+}
+
+
+static gboolean photo_launch_editor (GFile* file, PhotoFileFormat file_format, GError** error) {
+ gboolean result = FALSE;
+ gchar* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+ gchar* commandline = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GAppInfo* app = NULL;
+ GList* files = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GAppInfo* _tmp17_ = NULL;
+ gchar** argv = NULL;
+ gchar** _tmp22_ = NULL;
+ gint argv_length1 = 0;
+ gint _argv_size_ = 0;
+ gchar** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar** _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ GFile* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ GPid child_pid = 0;
+ gboolean _tmp31_ = FALSE;
+ gchar** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ GPid _tmp33_ = 0;
+ gboolean _tmp34_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 3759 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file_format;
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == PHOTO_FILE_FORMAT_RAW) {
+#line 27105 "Photo.c"
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = configuration_facade_get_external_raw_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp4_;
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 27121 "Photo.c"
+ } else {
+ ConfigFacade* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 3761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = config_facade_get_instance ();
+#line 3761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 3761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = configuration_facade_get_external_photo_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 3761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp7_;
+#line 3761 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp6_);
+#line 27138 "Photo.c"
+ }
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_strdup (_tmp0_);
+#line 3760 "/home/jens/Source/shotwell/src/Photo.vala"
+ commandline = _tmp8_;
+#line 3763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = commandline;
+#line 3763 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = is_string_empty (_tmp9_);
+#line 3763 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_) {
+#line 3764 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 3764 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (commandline);
+#line 3764 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3764 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 27158 "Photo.c"
+ }
+ {
+ GAppInfo* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GAppInfo* _tmp13_ = NULL;
+ GAppInfo* _tmp14_ = NULL;
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = commandline;
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = g_app_info_create_from_commandline (_tmp12_, "", G_APP_INFO_CREATE_NONE, &_inner_error_);
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp13_;
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 27173 "Photo.c"
+ goto __catch374_g_error;
+ }
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp11_;
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = NULL;
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (app);
+#line 3768 "/home/jens/Source/shotwell/src/Photo.vala"
+ app = _tmp14_;
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp11_);
+#line 27186 "Photo.c"
+ }
+ goto __finally374;
+ __catch374_g_error:
+ {
+ GError* er = NULL;
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ er = _inner_error_;
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 3771 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (app);
+#line 3771 "/home/jens/Source/shotwell/src/Photo.vala"
+ app = NULL;
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (er);
+#line 27202 "Photo.c"
+ }
+ __finally374:
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (app);
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (commandline);
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3767 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 27217 "Photo.c"
+ }
+#line 3774 "/home/jens/Source/shotwell/src/Photo.vala"
+ files = NULL;
+#line 3775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = file;
+#line 3775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 3775 "/home/jens/Source/shotwell/src/Photo.vala"
+ files = g_list_insert (files, _tmp16_, -1);
+#line 3777 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = app;
+#line 3777 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_ != NULL) {
+#line 27231 "Photo.c"
+ gboolean _tmp18_ = FALSE;
+ GAppInfo* _tmp19_ = NULL;
+ GList* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = app;
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = files;
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = g_app_info_launch (_tmp19_, _tmp20_, NULL, &_inner_error_);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp21_;
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ __g_list_free__g_object_unref0_0 (files);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (app);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (commandline);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 27258 "Photo.c"
+ }
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp18_;
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ __g_list_free__g_object_unref0_0 (files);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (app);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (commandline);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3778 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 27272 "Photo.c"
+ }
+#line 3780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = g_new0 (gchar*, 2 + 1);
+#line 3780 "/home/jens/Source/shotwell/src/Photo.vala"
+ argv = _tmp22_;
+#line 3780 "/home/jens/Source/shotwell/src/Photo.vala"
+ argv_length1 = 2;
+#line 3780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _argv_size_ = argv_length1;
+#line 3781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = argv;
+#line 3781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23__length1 = argv_length1;
+#line 3781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = commandline;
+#line 3781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = g_strdup (_tmp24_);
+#line 3781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp23_[0]);
+#line 3781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_[0] = _tmp25_;
+#line 3781 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp23_[0];
+#line 3782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = argv;
+#line 3782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27__length1 = argv_length1;
+#line 3782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = file;
+#line 3782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = g_file_get_path (_tmp28_);
+#line 3782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp27_[1]);
+#line 3782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_[1] = _tmp29_;
+#line 3782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp27_[1];
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = argv;
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32__length1 = argv_length1;
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = g_spawn_async ("/", _tmp32_, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &_tmp33_, &_inner_error_);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ child_pid = _tmp33_;
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp34_;
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ __g_list_free__g_object_unref0_0 (files);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (app);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (commandline);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 27336 "Photo.c"
+ }
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp31_;
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ __g_list_free__g_object_unref0_0 (files);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (app);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (commandline);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp0_);
+#line 3786 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 27352 "Photo.c"
+}
+
+
+void photo_open_with_raw_external_editor (Photo* self, GError** error) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 3796 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_get_master_file_format (self);
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_launch_editor (_tmp1_, _tmp2_, &_inner_error_);
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3797 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27379 "Photo.c"
+ }
+}
+
+
+void photo_open_with_external_editor (Photo* self, GError** error) {
+ GFile* current_editable_file = NULL;
+ GFile* create_editable_file = NULL;
+ PhotoFileFormat editable_file_format = 0;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ GFile* _tmp17_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ GFile* _tmp26_ = NULL;
+ GFile* _tmp44_ = NULL;
+ GFileMonitor* _tmp45_ = NULL;
+ GFile* _tmp47_ = NULL;
+ PhotoFileFormat _tmp48_ = 0;
+ GError * _inner_error_ = NULL;
+#line 3801 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3802 "/home/jens/Source/shotwell/src/Photo.vala"
+ current_editable_file = NULL;
+#line 3803 "/home/jens/Source/shotwell/src/Photo.vala"
+ create_editable_file = NULL;
+#line 27404 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 27411 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 3806 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 3806 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 3806 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 27422 "Photo.c"
+ PhotoBackingReaders* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 3807 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 3807 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->editable;
+#line 3807 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3807 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3807 "/home/jens/Source/shotwell/src/Photo.vala"
+ current_editable_file = _tmp5_;
+#line 27436 "Photo.c"
+ }
+#line 3809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = current_editable_file;
+#line 3809 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ == NULL) {
+#line 27442 "Photo.c"
+ GFile* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_generate_new_editable_file (self, &_tmp8_, &_inner_error_);
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_file_format = _tmp8_;
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp9_;
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 27455 "Photo.c"
+ goto __finally375;
+ }
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp7_;
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = NULL;
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3810 "/home/jens/Source/shotwell/src/Photo.vala"
+ create_editable_file = _tmp10_;
+#line 3809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp7_);
+#line 27468 "Photo.c"
+ } else {
+ PhotoBackingReaders* _tmp11_ = NULL;
+ PhotoFileReader* _tmp12_ = NULL;
+ PhotoFileFormat _tmp13_ = 0;
+#line 3812 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->priv->readers;
+#line 3812 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->editable;
+#line 3812 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3812 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_file_format = _tmp13_;
+#line 27481 "Photo.c"
+ }
+ }
+ __finally375:
+ {
+ PhotoBackingReaders* _tmp14_ = NULL;
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = self->priv->readers;
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 27491 "Photo.c"
+ }
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3805 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27503 "Photo.c"
+ }
+ }
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = create_editable_file;
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_ == NULL) {
+#line 27510 "Photo.c"
+ GFile* _tmp18_ = NULL;
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = current_editable_file;
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp18_ != NULL;
+#line 27516 "Photo.c"
+ } else {
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = FALSE;
+#line 27520 "Photo.c"
+ }
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_) {
+#line 27524 "Photo.c"
+ gboolean _tmp19_ = FALSE;
+ GFile* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 3818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = current_editable_file;
+#line 3818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = g_file_query_exists (_tmp20_, NULL);
+#line 3818 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp21_) {
+#line 3818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = TRUE;
+#line 27536 "Photo.c"
+ } else {
+ gboolean _tmp22_ = FALSE;
+#line 3818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = photo_has_transformations (self);
+#line 3818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp22_;
+#line 27543 "Photo.c"
+ }
+#line 3818 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp19_;
+#line 27547 "Photo.c"
+ } else {
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = FALSE;
+#line 27551 "Photo.c"
+ }
+#line 3817 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp15_) {
+#line 27555 "Photo.c"
+ GFile* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+#line 3819 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = current_editable_file;
+#line 3819 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 3819 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3819 "/home/jens/Source/shotwell/src/Photo.vala"
+ create_editable_file = _tmp24_;
+#line 27566 "Photo.c"
+ }
+#line 3822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = create_editable_file;
+#line 3822 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp26_ != NULL) {
+#line 27572 "Photo.c"
+ PhotoFileFormat _tmp27_ = 0;
+ gboolean _tmp28_ = FALSE;
+#line 3822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = editable_file_format;
+#line 3822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = photo_file_format_can_write (_tmp27_);
+#line 3822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp28_;
+#line 27581 "Photo.c"
+ } else {
+#line 3822 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = FALSE;
+#line 27585 "Photo.c"
+ }
+#line 3822 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp25_) {
+#line 27589 "Photo.c"
+ PhotoFileFormat _tmp40_ = 0;
+ GFile* _tmp41_ = NULL;
+ GFile* _tmp42_ = NULL;
+ GFile* _tmp43_ = NULL;
+#line 3823 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_halt_monitoring_editable (self);
+#line 27596 "Photo.c"
+ {
+ GFile* _tmp29_ = NULL;
+ Scaling _tmp30_ = {0};
+ PhotoFileFormat _tmp31_ = 0;
+#line 3826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = create_editable_file;
+#line 3826 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_for_original (&_tmp30_);
+#line 3826 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = editable_file_format;
+#line 3826 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_export (self, _tmp29_, &_tmp30_, JPEG_QUALITY_MAXIMUM, _tmp31_, FALSE, TRUE, &_inner_error_);
+#line 3826 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 27611 "Photo.c"
+ goto __catch376_g_error;
+ }
+ }
+ goto __finally376;
+ __catch376_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp38_ = NULL;
+ GError* _tmp39_ = NULL;
+#line 3825 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 3825 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 27625 "Photo.c"
+ {
+ GFile* _tmp32_ = NULL;
+#line 3831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = create_editable_file;
+#line 3831 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_delete (_tmp32_, NULL, &_inner_error_);
+#line 3831 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 27634 "Photo.c"
+ goto __catch377_g_error;
+ }
+ }
+ goto __finally377;
+ __catch377_g_error:
+ {
+ GError* delete_err = NULL;
+ GFile* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ GError* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ delete_err = _inner_error_;
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 3834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = create_editable_file;
+#line 3834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = g_file_get_path (_tmp33_);
+#line 3834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_;
+#line 3834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = delete_err;
+#line 3834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_->message;
+#line 3834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:3834: Unable to delete editable file %s after export error:" \
+" %s", _tmp35_, _tmp37_);
+#line 3834 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp35_);
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (delete_err);
+#line 27667 "Photo.c"
+ }
+ __finally377:
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 3830 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27686 "Photo.c"
+ }
+#line 3838 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = err;
+#line 3838 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _g_error_copy0 (_tmp38_);
+#line 3838 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = _tmp39_;
+#line 3838 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 27696 "Photo.c"
+ goto __finally376;
+ }
+ __finally376:
+#line 3825 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3825 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3825 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3825 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3825 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27710 "Photo.c"
+ }
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = editable_file_format;
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = create_editable_file;
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_attach_editable (self, _tmp40_, _tmp41_, &_inner_error_);
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3842 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27728 "Photo.c"
+ }
+#line 3844 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = create_editable_file;
+#line 3844 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _g_object_ref0 (_tmp42_);
+#line 3844 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3844 "/home/jens/Source/shotwell/src/Photo.vala"
+ current_editable_file = _tmp43_;
+#line 27738 "Photo.c"
+ }
+#line 3847 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = current_editable_file;
+#line 3847 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp44_ != NULL, "current_editable_file != null");
+#line 3850 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = self->priv->editable_monitor;
+#line 3850 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp45_ == NULL) {
+#line 27748 "Photo.c"
+ GFile* _tmp46_ = NULL;
+#line 3851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = current_editable_file;
+#line 3851 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_start_monitoring_editable (self, _tmp46_, &_inner_error_);
+#line 3851 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3851 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3851 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27764 "Photo.c"
+ }
+ }
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = current_editable_file;
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = photo_get_file_format (self);
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_launch_editor (_tmp47_, _tmp48_, &_inner_error_);
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 3853 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27783 "Photo.c"
+ }
+#line 3801 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (create_editable_file);
+#line 3801 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (current_editable_file);
+#line 27789 "Photo.c"
+}
+
+
+void photo_revert_to_master (Photo* self, gboolean notify) {
+ gboolean _tmp0_ = FALSE;
+#line 3856 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3857 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = notify;
+#line 3857 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_detach_editable (self, TRUE, TRUE, _tmp0_);
+#line 27801 "Photo.c"
+}
+
+
+static void _photo_on_editable_file_changed_g_file_monitor_changed (GFileMonitor* _sender, GFile* file, GFile* other_file, GFileMonitorEvent event_type, gpointer self) {
+#line 3867 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_on_editable_file_changed ((Photo*) self, file, other_file, event_type);
+#line 27808 "Photo.c"
+}
+
+
+static void photo_start_monitoring_editable (Photo* self, GFile* file, GError** error) {
+ GFile* _tmp0_ = NULL;
+ GFileMonitor* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileMonitor* _tmp3_ = NULL;
+ GFileMonitor* _tmp4_ = NULL;
+ GFileMonitor* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3860 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3860 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 3861 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_halt_monitoring_editable (self);
+#line 3864 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 3864 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_blacklist_file (_tmp0_, "Photo.start_monitoring_editable");
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = file;
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = g_file_monitor (_tmp2_, G_FILE_MONITOR_NONE, NULL, &_inner_error_);
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp3_;
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27842 "Photo.c"
+ }
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp1_;
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = NULL;
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->editable_monitor);
+#line 3866 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable_monitor = _tmp4_;
+#line 3867 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = self->priv->editable_monitor;
+#line 3867 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect_object (_tmp5_, "changed", (GCallback) _photo_on_editable_file_changed_g_file_monitor_changed, self, 0);
+#line 3860 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 27858 "Photo.c"
+}
+
+
+static void photo_halt_monitoring_editable (Photo* self) {
+ GFileMonitor* _tmp0_ = NULL;
+ GFile* file = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileMonitor* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ GFileMonitor* _tmp6_ = NULL;
+#line 3870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->editable_monitor;
+#line 3871 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ == NULL) {
+#line 3872 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27878 "Photo.c"
+ }
+#line 3875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_editable_file (self);
+#line 3875 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp1_;
+#line 3876 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = file;
+#line 3876 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 27888 "Photo.c"
+ GFile* _tmp3_ = NULL;
+#line 3877 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file;
+#line 3877 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_monitor_unblacklist_file (_tmp3_);
+#line 27894 "Photo.c"
+ }
+#line 3879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->editable_monitor;
+#line 3879 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_parse_name ("changed", g_file_monitor_get_type (), &_tmp5_, NULL, FALSE);
+#line 3879 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _photo_on_editable_file_changed_g_file_monitor_changed, self);
+#line 3880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->editable_monitor;
+#line 3880 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_monitor_cancel (_tmp6_);
+#line 3881 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->editable_monitor);
+#line 3881 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable_monitor = NULL;
+#line 3870 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 27912 "Photo.c"
+}
+
+
+static void photo_attach_editable (Photo* self, PhotoFileFormat file_format, GFile* file, GError** error) {
+ PhotoFileFormat _tmp0_ = 0;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 3884 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3884 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 3889 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_internal_remove_all_transformations (self, FALSE);
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file_format;
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file;
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_file_format_create_reader (_tmp0_, _tmp3_);
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_update_editable (self, FALSE, _tmp5_, &_inner_error_);
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp5_);
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp3_);
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3890 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27954 "Photo.c"
+ }
+}
+
+
+static void photo_update_editable_attributes (Photo* self, GError** error) {
+ GError * _inner_error_ = NULL;
+#line 3893 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3894 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_update_editable (self, TRUE, NULL, &_inner_error_);
+#line 3894 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3894 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3894 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27971 "Photo.c"
+ }
+}
+
+
+void photo_reimport_editable (Photo* self, GError** error) {
+ GError * _inner_error_ = NULL;
+#line 3897 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3898 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_update_editable (self, FALSE, NULL, &_inner_error_);
+#line 3898 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3898 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3898 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 27988 "Photo.c"
+ }
+}
+
+
+static void _vala_array_add269 (gchar*** array, int* length, int* size, gchar* value) {
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 28000 "Photo.c"
+ }
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 28006 "Photo.c"
+}
+
+
+static void _vala_array_add270 (gchar*** array, int* length, int* size, gchar* value) {
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 28017 "Photo.c"
+ }
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 28023 "Photo.c"
+}
+
+
+static void _vala_array_add271 (gchar*** array, int* length, int* size, gchar* value) {
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 28034 "Photo.c"
+ }
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 28040 "Photo.c"
+}
+
+
+static void _vala_array_add272 (gchar*** array, int* length, int* size, gchar* value) {
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 28051 "Photo.c"
+ }
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 28057 "Photo.c"
+}
+
+
+static void _vala_array_add273 (gchar*** array, int* length, int* size, gchar* value) {
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 28068 "Photo.c"
+ }
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 28074 "Photo.c"
+}
+
+
+static void _vala_array_add274 (gchar*** array, int* length, int* size, gchar* value) {
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((*length) == (*size)) {
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 28085 "Photo.c"
+ }
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[(*length)++] = value;
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ (*array)[*length] = NULL;
+#line 28091 "Photo.c"
+}
+
+
+static void photo_update_editable (Photo* self, gboolean only_attributes, PhotoFileReader* new_reader, GError** error) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ PhotoFileReader* old_reader = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ PhotoFileReader* _tmp6_ = NULL;
+ PhotoFileReader* _tmp7_ = NULL;
+ PhotoFileReader* reader = NULL;
+ PhotoFileReader* _tmp9_ = NULL;
+ PhotoFileReader* _tmp10_ = NULL;
+ gboolean timestamp_changed = FALSE;
+ gboolean filesize_changed = FALSE;
+ gboolean is_new_editable = FALSE;
+ BackingPhotoID editable_id = {0};
+ BackingPhotoID _tmp11_ = {0};
+ GFile* file = NULL;
+ PhotoFileReader* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ BackingPhotoRow* backing = NULL;
+ GFile* _tmp14_ = NULL;
+ DetectedPhotoInformation* _tmp15_ = NULL;
+ BackingPhotoRow* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ PhotoFileReader* _tmp94_ = NULL;
+ gboolean _tmp100_ = FALSE;
+ gboolean _tmp101_ = FALSE;
+ gchar** alteration_list = NULL;
+ gchar** _tmp112_ = NULL;
+ gint alteration_list_length1 = 0;
+ gint _alteration_list_size_ = 0;
+ gboolean _tmp113_ = FALSE;
+ gboolean _tmp121_ = FALSE;
+ gboolean _tmp122_ = FALSE;
+ gchar** _tmp131_ = NULL;
+ gint _tmp131__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((new_reader == NULL) || IS_PHOTO_FILE_READER (new_reader));
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = only_attributes;
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_) {
+#line 28142 "Photo.c"
+ PhotoFileReader* _tmp3_ = NULL;
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = new_reader;
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp3_ == NULL;
+#line 28148 "Photo.c"
+ } else {
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = FALSE;
+#line 28152 "Photo.c"
+ }
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = TRUE;
+#line 28158 "Photo.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = only_attributes;
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = !_tmp4_;
+#line 28165 "Photo.c"
+ }
+#line 3905 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp0_, "(only_attributes && new_reader == null) || (!only_attributes)");
+#line 3907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_get_editable_reader (self);
+#line 3907 "/home/jens/Source/shotwell/src/Photo.vala"
+ old_reader = _tmp5_;
+#line 3909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = new_reader;
+#line 3909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp7_;
+#line 3909 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ == NULL) {
+#line 28179 "Photo.c"
+ PhotoFileReader* _tmp8_ = NULL;
+#line 3909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = old_reader;
+#line 3909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp8_;
+#line 28185 "Photo.c"
+ }
+#line 3909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _photo_file_adapter_ref0 (_tmp6_);
+#line 3909 "/home/jens/Source/shotwell/src/Photo.vala"
+ reader = _tmp9_;
+#line 3910 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = reader;
+#line 3910 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_ == NULL) {
+#line 3911 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_detach_editable (self, FALSE, TRUE, TRUE);
+#line 3913 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3913 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3913 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28203 "Photo.c"
+ }
+#line 3916 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp_changed = FALSE;
+#line 3917 "/home/jens/Source/shotwell/src/Photo.vala"
+ filesize_changed = FALSE;
+#line 3918 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_new_editable = FALSE;
+#line 3920 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_editable_id (self, &_tmp11_);
+#line 3920 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_id = _tmp11_;
+#line 3921 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = reader;
+#line 3921 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3921 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp13_;
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = file;
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo_query_backing_photo_row (self, _tmp14_, PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5, &_tmp15_, &_inner_error_);
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp15_;
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing = _tmp16_;
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3924 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28245 "Photo.c"
+ }
+#line 3928 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = backing_photo_id_is_invalid (&editable_id);
+#line 3928 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_) {
+#line 28251 "Photo.c"
+ BackingPhotoRow* _tmp18_ = NULL;
+#line 3930 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = backing;
+#line 3930 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp18_ != NULL) {
+#line 28257 "Photo.c"
+ BackingPhotoTable* _tmp19_ = NULL;
+ BackingPhotoTable* _tmp20_ = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = backing_photo_table_get_instance ();
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = backing;
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_add (_tmp20_, _tmp21_, &_inner_error_);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp20_);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3931 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28287 "Photo.c"
+ }
+ {
+ PhotoRow* _tmp22_ = NULL;
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = self->row;
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 28295 "Photo.c"
+ {
+ PhotoTable* _tmp23_ = NULL;
+ PhotoTable* _tmp24_ = NULL;
+ PhotoRow* _tmp25_ = NULL;
+ BackingPhotoRow* _tmp26_ = NULL;
+ BackingPhotoID _tmp27_ = {0};
+ BackingPhotoRow* _tmp28_ = NULL;
+ BackingPhotoRow* _tmp29_ = NULL;
+ BackingPhotoRow* _tmp30_ = NULL;
+ BackingPhotoRow* _tmp31_ = NULL;
+ BackingPhotoRow* _tmp32_ = NULL;
+ Orientation _tmp33_ = 0;
+#line 3933 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp_changed = TRUE;
+#line 3934 "/home/jens/Source/shotwell/src/Photo.vala"
+ filesize_changed = TRUE;
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = photo_table_get_instance ();
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_;
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->row;
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = backing;
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_->id;
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_attach_editable (_tmp24_, _tmp25_, &_tmp27_, &_inner_error_);
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp24_);
+#line 3936 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 28328 "Photo.c"
+ goto __finally378;
+ }
+#line 3937 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = backing;
+#line 3937 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _backing_photo_row_ref0 (_tmp28_);
+#line 3937 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->priv->editable);
+#line 3937 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable = _tmp29_;
+#line 3938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = self->priv->editable;
+#line 3938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _backing_photo_row_ref0 (_tmp30_);
+#line 3938 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 3938 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = _tmp31_;
+#line 3939 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = self->backing_photo_row;
+#line 3939 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_->original_orientation;
+#line 3939 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_orientation (self, _tmp33_);
+#line 28353 "Photo.c"
+ }
+ __finally378:
+ {
+ PhotoRow* _tmp34_ = NULL;
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = self->row;
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 28362 "Photo.c"
+ }
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3932 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28380 "Photo.c"
+ }
+ }
+ }
+#line 3942 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_new_editable = TRUE;
+#line 28386 "Photo.c"
+ }
+#line 3945 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = only_attributes;
+#line 3945 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp35_) {
+#line 28392 "Photo.c"
+ gboolean _tmp36_ = FALSE;
+ GFileInfo* info = NULL;
+ GTimeVal timestamp = {0};
+ GFileInfo* _tmp45_ = NULL;
+ GTimeVal _tmp46_ = {0};
+ BackingPhotoTable* _tmp47_ = NULL;
+ BackingPhotoTable* _tmp48_ = NULL;
+ BackingPhotoID _tmp49_ = {0};
+ GTimeVal _tmp50_ = {0};
+ glong _tmp51_ = 0L;
+ GFileInfo* _tmp52_ = NULL;
+ gint64 _tmp53_ = 0LL;
+#line 3947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = backing_photo_id_is_valid (&editable_id);
+#line 3947 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp36_, "editable_id.is_valid()");
+#line 28409 "Photo.c"
+ {
+ GFileInfo* _tmp37_ = NULL;
+ GFile* _tmp38_ = NULL;
+ GFileInfo* _tmp39_ = NULL;
+ GFileInfo* _tmp40_ = NULL;
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = file;
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = g_file_query_filesystem_info (_tmp38_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, NULL, &_inner_error_);
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp39_;
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 28423 "Photo.c"
+ goto __catch379_g_error;
+ }
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = _tmp37_;
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = NULL;
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 3951 "/home/jens/Source/shotwell/src/Photo.vala"
+ info = _tmp40_;
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp37_);
+#line 28436 "Photo.c"
+ }
+ goto __finally379;
+ __catch379_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ GError* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 3953 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 3953 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_;
+#line 3953 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = err;
+#line 3953 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp43_->message;
+#line 3953 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:3953: Unable to read editable filesystem info for %s: %s", _tmp42_, _tmp44_);
+#line 3953 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp42_);
+#line 3954 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_detach_editable (self, FALSE, TRUE, TRUE);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3956 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28480 "Photo.c"
+ }
+ __finally379:
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3950 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28501 "Photo.c"
+ }
+#line 3959 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = info;
+#line 3959 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_info_get_modification_time (_tmp45_, &_tmp46_);
+#line 3959 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp = _tmp46_;
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = backing_photo_table_get_instance ();
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp47_;
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = editable_id;
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = timestamp;
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = _tmp50_.tv_sec;
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = info;
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = g_file_info_get_size (_tmp52_);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_update_attributes (_tmp48_, &_tmp49_, (time_t) _tmp51_, _tmp53_, &_inner_error_);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp48_);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3961 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28545 "Photo.c"
+ }
+ {
+ PhotoRow* _tmp54_ = NULL;
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = self->row;
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 28553 "Photo.c"
+ {
+ BackingPhotoRow* _tmp55_ = NULL;
+ time_t _tmp56_ = 0;
+ GTimeVal _tmp57_ = {0};
+ glong _tmp58_ = 0L;
+ BackingPhotoRow* _tmp59_ = NULL;
+ gint64 _tmp60_ = 0LL;
+ GFileInfo* _tmp61_ = NULL;
+ gint64 _tmp62_ = 0LL;
+ BackingPhotoRow* _tmp63_ = NULL;
+ GTimeVal _tmp64_ = {0};
+ glong _tmp65_ = 0L;
+ BackingPhotoRow* _tmp66_ = NULL;
+ GFileInfo* _tmp67_ = NULL;
+ gint64 _tmp68_ = 0LL;
+#line 3964 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = self->priv->editable;
+#line 3964 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = _tmp55_->timestamp;
+#line 3964 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = timestamp;
+#line 3964 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = _tmp57_.tv_sec;
+#line 3964 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp_changed = _tmp56_ != ((time_t) _tmp58_);
+#line 3965 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = self->priv->editable;
+#line 3965 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = _tmp59_->filesize;
+#line 3965 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = info;
+#line 3965 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = g_file_info_get_size (_tmp61_);
+#line 3965 "/home/jens/Source/shotwell/src/Photo.vala"
+ filesize_changed = _tmp60_ != _tmp62_;
+#line 3967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = self->priv->editable;
+#line 3967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = timestamp;
+#line 3967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = _tmp64_.tv_sec;
+#line 3967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_->timestamp = (time_t) _tmp65_;
+#line 3968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = self->priv->editable;
+#line 3968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = info;
+#line 3968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = g_file_info_get_size (_tmp67_);
+#line 3968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_->filesize = _tmp68_;
+#line 28605 "Photo.c"
+ }
+ __finally380:
+ {
+ PhotoRow* _tmp69_ = NULL;
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = self->row;
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 28614 "Photo.c"
+ }
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3963 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28634 "Photo.c"
+ }
+ }
+#line 3945 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (info);
+#line 28639 "Photo.c"
+ } else {
+ gboolean _tmp70_ = FALSE;
+ gboolean _tmp71_ = FALSE;
+#line 3972 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = backing_photo_id_is_valid (&editable_id);
+#line 3972 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp71_) {
+#line 28647 "Photo.c"
+ gboolean _tmp72_ = FALSE;
+#line 3972 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = is_new_editable;
+#line 3972 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = !_tmp72_;
+#line 28653 "Photo.c"
+ } else {
+#line 3972 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = FALSE;
+#line 28657 "Photo.c"
+ }
+#line 3972 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp70_) {
+#line 28661 "Photo.c"
+ BackingPhotoRow* _tmp73_ = NULL;
+ BackingPhotoID _tmp74_ = {0};
+ BackingPhotoTable* _tmp75_ = NULL;
+ BackingPhotoTable* _tmp76_ = NULL;
+ BackingPhotoRow* _tmp77_ = NULL;
+#line 3977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = backing;
+#line 3977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = editable_id;
+#line 3977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_->id = _tmp74_;
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = backing_photo_table_get_instance ();
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = _tmp75_;
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = backing;
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_update (_tmp76_, _tmp77_, &_inner_error_);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp76_);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3978 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28699 "Photo.c"
+ }
+ {
+ PhotoRow* _tmp78_ = NULL;
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = self->row;
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 28707 "Photo.c"
+ {
+ BackingPhotoRow* _tmp79_ = NULL;
+ time_t _tmp80_ = 0;
+ BackingPhotoRow* _tmp81_ = NULL;
+ time_t _tmp82_ = 0;
+ BackingPhotoRow* _tmp83_ = NULL;
+ gint64 _tmp84_ = 0LL;
+ BackingPhotoRow* _tmp85_ = NULL;
+ gint64 _tmp86_ = 0LL;
+ BackingPhotoRow* _tmp87_ = NULL;
+ BackingPhotoRow* _tmp88_ = NULL;
+ BackingPhotoRow* _tmp89_ = NULL;
+ BackingPhotoRow* _tmp90_ = NULL;
+ BackingPhotoRow* _tmp91_ = NULL;
+ Orientation _tmp92_ = 0;
+#line 3980 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = self->priv->editable;
+#line 3980 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = _tmp79_->timestamp;
+#line 3980 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = backing;
+#line 3980 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = _tmp81_->timestamp;
+#line 3980 "/home/jens/Source/shotwell/src/Photo.vala"
+ timestamp_changed = _tmp80_ != _tmp82_;
+#line 3981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = self->priv->editable;
+#line 3981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = _tmp83_->filesize;
+#line 3981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = backing;
+#line 3981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = _tmp85_->filesize;
+#line 3981 "/home/jens/Source/shotwell/src/Photo.vala"
+ filesize_changed = _tmp84_ != _tmp86_;
+#line 3983 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = backing;
+#line 3983 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = _backing_photo_row_ref0 (_tmp87_);
+#line 3983 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->priv->editable);
+#line 3983 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable = _tmp88_;
+#line 3984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = self->priv->editable;
+#line 3984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = _backing_photo_row_ref0 (_tmp89_);
+#line 3984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 3984 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = _tmp90_;
+#line 3985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = self->backing_photo_row;
+#line 3985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = _tmp91_->original_orientation;
+#line 3985 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_orientation (self, _tmp92_);
+#line 28765 "Photo.c"
+ }
+ __finally381:
+ {
+ PhotoRow* _tmp93_ = NULL;
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = self->row;
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 28774 "Photo.c"
+ }
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3979 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28792 "Photo.c"
+ }
+ }
+ }
+ }
+#line 3991 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = new_reader;
+#line 3991 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp94_ != NULL) {
+#line 28801 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp95_ = NULL;
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = self->priv->readers;
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 28808 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp96_ = NULL;
+ PhotoFileReader* _tmp97_ = NULL;
+ PhotoFileReader* _tmp98_ = NULL;
+#line 3993 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = self->priv->readers;
+#line 3993 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = new_reader;
+#line 3993 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = _photo_file_adapter_ref0 (_tmp97_);
+#line 3993 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp96_->editable);
+#line 3993 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_->editable = _tmp98_;
+#line 28823 "Photo.c"
+ }
+ __finally382:
+ {
+ PhotoBackingReaders* _tmp99_ = NULL;
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp99_ = self->priv->readers;
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 28832 "Photo.c"
+ }
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 3992 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 28850 "Photo.c"
+ }
+ }
+ }
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = only_attributes;
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp101_) {
+#line 28858 "Photo.c"
+ PhotoFileReader* _tmp102_ = NULL;
+ PhotoFileReader* _tmp103_ = NULL;
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp102_ = reader;
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103_ = old_reader;
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = _tmp102_ != _tmp103_;
+#line 28867 "Photo.c"
+ } else {
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = FALSE;
+#line 28871 "Photo.c"
+ }
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp100_) {
+#line 28875 "Photo.c"
+ GFile* _tmp104_ = NULL;
+ PhotoFileReader* _tmp105_ = NULL;
+ GFile* _tmp108_ = NULL;
+ PhotoFileReader* _tmp109_ = NULL;
+#line 3998 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_baseline_replaced (self);
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp105_ = old_reader;
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp105_ != NULL) {
+#line 28886 "Photo.c"
+ PhotoFileReader* _tmp106_ = NULL;
+ GFile* _tmp107_ = NULL;
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = old_reader;
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp107_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp106_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp104_);
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = _tmp107_;
+#line 28897 "Photo.c"
+ } else {
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp104_);
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = NULL;
+#line 28903 "Photo.c"
+ }
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp109_ = new_reader;
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp109_ != NULL) {
+#line 28909 "Photo.c"
+ PhotoFileReader* _tmp110_ = NULL;
+ GFile* _tmp111_ = NULL;
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110_ = new_reader;
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp111_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp110_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp108_);
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp108_ = _tmp111_;
+#line 28920 "Photo.c"
+ } else {
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp108_);
+#line 4000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp108_ = NULL;
+#line 28926 "Photo.c"
+ }
+#line 3999 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_editable_replaced (self, _tmp104_, _tmp108_);
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp108_);
+#line 3997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp104_);
+#line 28934 "Photo.c"
+ }
+#line 4003 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp112_ = g_new0 (gchar*, 0 + 1);
+#line 4003 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list = _tmp112_;
+#line 4003 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list_length1 = 0;
+#line 4003 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_list_size_ = alteration_list_length1;
+#line 4004 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp113_ = timestamp_changed;
+#line 4004 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp113_) {
+#line 28948 "Photo.c"
+ gchar** _tmp114_ = NULL;
+ gint _tmp114__length1 = 0;
+ gchar* _tmp115_ = NULL;
+ gchar** _tmp116_ = NULL;
+ gint _tmp116__length1 = 0;
+ gchar* _tmp117_ = NULL;
+ gboolean _tmp118_ = FALSE;
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114_ = alteration_list;
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114__length1 = alteration_list_length1;
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp115_ = g_strdup ("metadata:editable-timestamp");
+#line 4005 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add269 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp115_);
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp116_ = alteration_list;
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp116__length1 = alteration_list_length1;
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp117_ = g_strdup ("metadata:baseline-timestamp");
+#line 4006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add270 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp117_);
+#line 4008 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp118_ = photo_is_editable_source (self);
+#line 4008 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp118_) {
+#line 28976 "Photo.c"
+ gchar** _tmp119_ = NULL;
+ gint _tmp119__length1 = 0;
+ gchar* _tmp120_ = NULL;
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp119_ = alteration_list;
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp119__length1 = alteration_list_length1;
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp120_ = g_strdup ("metadata:source-timestamp");
+#line 4009 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add271 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp120_);
+#line 28988 "Photo.c"
+ }
+ }
+#line 4012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp122_ = filesize_changed;
+#line 4012 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp122_) {
+#line 4012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp121_ = TRUE;
+#line 28997 "Photo.c"
+ } else {
+ PhotoFileReader* _tmp123_ = NULL;
+#line 4012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp123_ = new_reader;
+#line 4012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp121_ = _tmp123_ != NULL;
+#line 29004 "Photo.c"
+ }
+#line 4012 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp121_) {
+#line 29008 "Photo.c"
+ gchar** _tmp124_ = NULL;
+ gint _tmp124__length1 = 0;
+ gchar* _tmp125_ = NULL;
+ gchar** _tmp126_ = NULL;
+ gint _tmp126__length1 = 0;
+ gchar* _tmp127_ = NULL;
+ gboolean _tmp128_ = FALSE;
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124_ = alteration_list;
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124__length1 = alteration_list_length1;
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp125_ = g_strdup ("image:editable");
+#line 4013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add272 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp125_);
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp126_ = alteration_list;
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp126__length1 = alteration_list_length1;
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp127_ = g_strdup ("image:baseline");
+#line 4014 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add273 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp127_);
+#line 4016 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp128_ = photo_is_editable_source (self);
+#line 4016 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp128_) {
+#line 29036 "Photo.c"
+ gchar** _tmp129_ = NULL;
+ gint _tmp129__length1 = 0;
+ gchar* _tmp130_ = NULL;
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp129_ = alteration_list;
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp129__length1 = alteration_list_length1;
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp130_ = g_strdup ("image:source");
+#line 4017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_array_add274 (&alteration_list, &alteration_list_length1, &_alteration_list_size_, _tmp130_);
+#line 29048 "Photo.c"
+ }
+ }
+#line 4020 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp131_ = alteration_list;
+#line 4020 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp131__length1 = alteration_list_length1;
+#line 4020 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp131__length1 > 0) {
+#line 29057 "Photo.c"
+ gchar** _tmp132_ = NULL;
+ gint _tmp132__length1 = 0;
+ Alteration* _tmp133_ = NULL;
+ Alteration* _tmp134_ = NULL;
+#line 4021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp132_ = alteration_list;
+#line 4021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp132__length1 = alteration_list_length1;
+#line 4021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp133_ = alteration_new_from_array (_tmp132_, _tmp132__length1);
+#line 4021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp134_ = _tmp133_;
+#line 4021 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp134_);
+#line 4021 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp134_);
+#line 29074 "Photo.c"
+ }
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration_list = (_vala_array_free (alteration_list, alteration_list_length1, (GDestroyNotify) g_free), NULL);
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (backing);
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 3903 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (old_reader);
+#line 29088 "Photo.c"
+}
+
+
+static void photo_detach_editable (Photo* self, gboolean delete_editable, gboolean remove_transformations, gboolean notify) {
+ gboolean has_editable = FALSE;
+ GFile* editable_file = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp32_ = FALSE;
+ gboolean _tmp42_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+ gboolean _tmp44_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 4024 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4025 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_halt_monitoring_editable (self);
+#line 4027 "/home/jens/Source/shotwell/src/Photo.vala"
+ has_editable = FALSE;
+#line 4028 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_file = NULL;
+#line 29112 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 29119 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+#line 4030 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 4030 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 4030 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 29129 "Photo.c"
+ PhotoBackingReaders* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ PhotoBackingReaders* _tmp6_ = NULL;
+#line 4031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->readers;
+#line 4031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_->editable;
+#line 4031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 4031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 4031 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_file = _tmp5_;
+#line 4032 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->readers;
+#line 4032 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (_tmp6_->editable);
+#line 4032 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_->editable = NULL;
+#line 4033 "/home/jens/Source/shotwell/src/Photo.vala"
+ has_editable = TRUE;
+#line 29152 "Photo.c"
+ }
+ }
+ __finally383:
+ {
+ PhotoBackingReaders* _tmp7_ = NULL;
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = self->priv->readers;
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 29162 "Photo.c"
+ }
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4029 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29174 "Photo.c"
+ }
+ }
+#line 4037 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = has_editable;
+#line 4037 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_) {
+#line 29181 "Photo.c"
+ BackingPhotoID editable_id = {0};
+#line 4038 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_id_init (&editable_id, BACKING_PHOTO_ID_INVALID);
+#line 29185 "Photo.c"
+ {
+ {
+ PhotoRow* _tmp9_ = NULL;
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = self->row;
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 29193 "Photo.c"
+ {
+ PhotoRow* _tmp10_ = NULL;
+ BackingPhotoID _tmp11_ = {0};
+ gboolean _tmp12_ = FALSE;
+ PhotoRow* _tmp16_ = NULL;
+ BackingPhotoRow* _tmp17_ = NULL;
+ BackingPhotoRow* _tmp18_ = NULL;
+#line 4041 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->row;
+#line 4041 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_->editable_id;
+#line 4041 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_id = _tmp11_;
+#line 4042 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = backing_photo_id_is_valid (&editable_id);
+#line 4042 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 29211 "Photo.c"
+ PhotoTable* _tmp13_ = NULL;
+ PhotoTable* _tmp14_ = NULL;
+ PhotoRow* _tmp15_ = NULL;
+#line 4043 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_table_get_instance ();
+#line 4043 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_;
+#line 4043 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = self->row;
+#line 4043 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_detach_editable (_tmp14_, _tmp15_, &_inner_error_);
+#line 4043 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp14_);
+#line 4043 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 29227 "Photo.c"
+ goto __finally385;
+ }
+ }
+#line 4044 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->row;
+#line 4044 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_->master;
+#line 4044 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _backing_photo_row_ref0 (_tmp17_);
+#line 4044 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 4044 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = _tmp18_;
+#line 29241 "Photo.c"
+ }
+ __finally385:
+ {
+ PhotoRow* _tmp19_ = NULL;
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = self->row;
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 29250 "Photo.c"
+ }
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 29256 "Photo.c"
+ goto __catch384_database_error;
+ }
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4040 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29267 "Photo.c"
+ }
+ }
+ }
+ goto __finally384;
+ __catch384_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 4047 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = err;
+#line 4047 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_->message;
+#line 4047 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:4047: Unable to remove editable from PhotoTable: %s", _tmp21_);
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 29289 "Photo.c"
+ }
+ __finally384:
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4039 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29302 "Photo.c"
+ }
+ {
+ gboolean _tmp22_ = FALSE;
+#line 4051 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = backing_photo_id_is_valid (&editable_id);
+#line 4051 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_) {
+#line 29310 "Photo.c"
+ BackingPhotoTable* _tmp23_ = NULL;
+ BackingPhotoTable* _tmp24_ = NULL;
+ BackingPhotoID _tmp25_ = {0};
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = backing_photo_table_get_instance ();
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_;
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = editable_id;
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_remove (_tmp24_, &_tmp25_, &_inner_error_);
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp24_);
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 29328 "Photo.c"
+ goto __catch386_database_error;
+ }
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4052 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29339 "Photo.c"
+ }
+ }
+ }
+ goto __finally386;
+ __catch386_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 4054 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = err;
+#line 4054 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_->message;
+#line 4054 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:4054: Unable to remove editable from BackingPhotoTable: %s", _tmp27_);
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 29361 "Photo.c"
+ }
+ __finally386:
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4050 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29374 "Photo.c"
+ }
+ }
+#line 4058 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = remove_transformations;
+#line 4058 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp28_) {
+#line 4059 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_internal_remove_all_transformations (self, FALSE);
+#line 29383 "Photo.c"
+ }
+#line 4061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = has_editable;
+#line 4061 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp29_) {
+#line 29389 "Photo.c"
+ GFile* _tmp30_ = NULL;
+#line 4062 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_baseline_replaced (self);
+#line 4063 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = editable_file;
+#line 4063 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_notify_editable_replaced (self, _tmp30_, NULL);
+#line 29397 "Photo.c"
+ }
+#line 4066 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = delete_editable;
+#line 4066 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp32_) {
+#line 29403 "Photo.c"
+ GFile* _tmp33_ = NULL;
+#line 4066 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = editable_file;
+#line 4066 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp33_ != NULL;
+#line 29409 "Photo.c"
+ } else {
+#line 4066 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = FALSE;
+#line 29413 "Photo.c"
+ }
+#line 4066 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp31_) {
+#line 29417 "Photo.c"
+ {
+ GFile* _tmp34_ = NULL;
+#line 4068 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = editable_file;
+#line 4068 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_file_trash (_tmp34_, NULL, &_inner_error_);
+#line 4068 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 29426 "Photo.c"
+ goto __catch387_g_error;
+ }
+ }
+ goto __finally387;
+ __catch387_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ GError* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = editable_file;
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = g_file_get_path (_tmp35_);
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_;
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tmp38_;
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = err;
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp40_->message;
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:4070: Unable to trash editable %s for %s: %s", _tmp37_, _tmp39_, _tmp41_);
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp39_);
+#line 4070 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp37_);
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 29467 "Photo.c"
+ }
+ __finally387:
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4067 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29480 "Photo.c"
+ }
+ }
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = has_editable;
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp44_) {
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = TRUE;
+#line 29489 "Photo.c"
+ } else {
+ gboolean _tmp45_ = FALSE;
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = remove_transformations;
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _tmp45_;
+#line 29496 "Photo.c"
+ }
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp43_) {
+#line 29500 "Photo.c"
+ gboolean _tmp46_ = FALSE;
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = notify;
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp46_;
+#line 29506 "Photo.c"
+ } else {
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = FALSE;
+#line 29510 "Photo.c"
+ }
+#line 4075 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp42_) {
+#line 29514 "Photo.c"
+ Alteration* _tmp47_ = NULL;
+ Alteration* _tmp48_ = NULL;
+#line 4076 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = alteration_new ("image", "revert");
+#line 4076 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp47_;
+#line 4076 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp48_);
+#line 4076 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp48_);
+#line 29525 "Photo.c"
+ }
+#line 4024 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable_file);
+#line 29529 "Photo.c"
+}
+
+
+static void _photo_on_reimport_editable_one_shot_callback (gpointer self) {
+#line 4098 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_on_reimport_editable ((Photo*) self);
+#line 29536 "Photo.c"
+}
+
+
+static void _photo_on_update_editable_attributes_one_shot_callback (gpointer self) {
+#line 4107 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_on_update_editable_attributes ((Photo*) self);
+#line 29543 "Photo.c"
+}
+
+
+static void _photo_on_remove_editable_one_shot_callback (gpointer self) {
+#line 4116 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_on_remove_editable ((Photo*) self);
+#line 29550 "Photo.c"
+}
+
+
+static void photo_on_editable_file_changed (Photo* self, GFile* file, GFile* other_file, GFileMonitorEvent event) {
+ GFileMonitorEvent _tmp12_ = 0;
+ GEnumValue* _tmp13_;
+ GFile* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GFileMonitorEvent _tmp17_ = 0;
+ GError * _inner_error_ = NULL;
+#line 4079 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4079 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 4079 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((other_file == NULL) || G_IS_FILE (other_file));
+#line 29568 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp0_ = NULL;
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->readers;
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_readers);
+#line 29575 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp1_ = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ PhotoBackingReaders* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 4082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->readers;
+#line 4082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_->editable;
+#line 4082 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp2_ != NULL, "readers.editable != null");
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file;
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->readers;
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->editable;
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_file_equal (_tmp3_, _tmp7_);
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = !_tmp8_;
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp7_);
+#line 4084 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp9_) {
+#line 29610 "Photo.c"
+ {
+ PhotoBackingReaders* _tmp10_ = NULL;
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->priv->readers;
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 29617 "Photo.c"
+ }
+#line 4088 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29621 "Photo.c"
+ }
+ }
+ __finally388:
+ {
+ PhotoBackingReaders* _tmp11_ = NULL;
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = self->priv->readers;
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_readers);
+#line 29631 "Photo.c"
+ }
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4081 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29641 "Photo.c"
+ }
+ }
+#line 4092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = event;
+#line 4092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = g_enum_get_value (g_type_class_ref (g_file_monitor_event_get_type ()), _tmp12_);
+#line 4092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = file;
+#line 4092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = g_file_get_path (_tmp14_);
+#line 4092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 4092 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:4092: EDITABLE %s: %s", (_tmp13_ != NULL) ? _tmp13_->value_name : NULL, _tmp16_);
+#line 4092 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp16_);
+#line 4094 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = event;
+#line 4094 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (_tmp17_) {
+#line 4094 "/home/jens/Source/shotwell/src/Photo.vala"
+ case G_FILE_MONITOR_EVENT_CHANGED:
+#line 4094 "/home/jens/Source/shotwell/src/Photo.vala"
+ case G_FILE_MONITOR_EVENT_CREATED:
+#line 29666 "Photo.c"
+ {
+ OneShotScheduler* _tmp18_ = NULL;
+ OneShotScheduler* _tmp20_ = NULL;
+#line 4097 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->priv->reimport_editable_scheduler;
+#line 4097 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp18_ == NULL) {
+#line 29674 "Photo.c"
+ OneShotScheduler* _tmp19_ = NULL;
+#line 4098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = one_shot_scheduler_new ("Photo.reimport_editable", _photo_on_reimport_editable_one_shot_callback, self);
+#line 4098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->reimport_editable_scheduler);
+#line 4098 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->reimport_editable_scheduler = _tmp19_;
+#line 29682 "Photo.c"
+ }
+#line 4102 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = self->priv->reimport_editable_scheduler;
+#line 4102 "/home/jens/Source/shotwell/src/Photo.vala"
+ one_shot_scheduler_after_timeout (_tmp20_, (guint) 1000, TRUE);
+#line 4103 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 29690 "Photo.c"
+ }
+#line 4094 "/home/jens/Source/shotwell/src/Photo.vala"
+ case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED:
+#line 29694 "Photo.c"
+ {
+ OneShotScheduler* _tmp21_ = NULL;
+ OneShotScheduler* _tmp23_ = NULL;
+#line 4106 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = self->priv->update_editable_attributes_scheduler;
+#line 4106 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp21_ == NULL) {
+#line 29702 "Photo.c"
+ OneShotScheduler* _tmp22_ = NULL;
+#line 4107 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = one_shot_scheduler_new ("Photo.update_editable_attributes", _photo_on_update_editable_attributes_one_shot_callback, self);
+#line 4107 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->update_editable_attributes_scheduler);
+#line 4107 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->update_editable_attributes_scheduler = _tmp22_;
+#line 29710 "Photo.c"
+ }
+#line 4111 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = self->priv->update_editable_attributes_scheduler;
+#line 4111 "/home/jens/Source/shotwell/src/Photo.vala"
+ one_shot_scheduler_after_timeout (_tmp23_, (guint) 1000, TRUE);
+#line 4112 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 29718 "Photo.c"
+ }
+#line 4094 "/home/jens/Source/shotwell/src/Photo.vala"
+ case G_FILE_MONITOR_EVENT_DELETED:
+#line 29722 "Photo.c"
+ {
+ OneShotScheduler* _tmp24_ = NULL;
+ OneShotScheduler* _tmp26_ = NULL;
+#line 4115 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = self->priv->remove_editable_scheduler;
+#line 4115 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp24_ == NULL) {
+#line 29730 "Photo.c"
+ OneShotScheduler* _tmp25_ = NULL;
+#line 4116 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = one_shot_scheduler_new ("Photo.remove_editable", _photo_on_remove_editable_one_shot_callback, self);
+#line 4116 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->remove_editable_scheduler);
+#line 4116 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->remove_editable_scheduler = _tmp25_;
+#line 29738 "Photo.c"
+ }
+#line 4120 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = self->priv->remove_editable_scheduler;
+#line 4120 "/home/jens/Source/shotwell/src/Photo.vala"
+ one_shot_scheduler_after_timeout (_tmp26_, (guint) 3000, TRUE);
+#line 4121 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 29746 "Photo.c"
+ }
+ default:
+#line 4094 "/home/jens/Source/shotwell/src/Photo.vala"
+ case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
+#line 29751 "Photo.c"
+ {
+#line 4126 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 29755 "Photo.c"
+ }
+ }
+#line 4131 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_discard_prefetched (self);
+#line 29760 "Photo.c"
+}
+
+
+static void photo_on_reimport_editable (Photo* self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 4134 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4136 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_discard_prefetched (self);
+#line 4138 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 4138 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4138 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:4138: Reimporting editable for %s", _tmp1_);
+#line 4138 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp1_);
+#line 29780 "Photo.c"
+ {
+#line 4140 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_editable (self, &_inner_error_);
+#line 4140 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 29786 "Photo.c"
+ goto __catch389_g_error;
+ }
+ }
+ goto __finally389;
+ __catch389_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 4139 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 4139 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 4142 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 4142 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 4142 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = err;
+#line 4142 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->message;
+#line 4142 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:4142: Unable to reimport photo %s changed by external edito" \
+"r: %s", _tmp3_, _tmp5_);
+#line 4142 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp3_);
+#line 4139 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 29816 "Photo.c"
+ }
+ __finally389:
+#line 4139 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4139 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4139 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4139 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29827 "Photo.c"
+ }
+}
+
+
+static void photo_on_update_editable_attributes (Photo* self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 4147 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 4148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4148 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:4148: Updating editable attributes for %s", _tmp1_);
+#line 4148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp1_);
+#line 29846 "Photo.c"
+ {
+#line 4150 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_update_editable_attributes (self, &_inner_error_);
+#line 4150 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 29852 "Photo.c"
+ goto __catch390_g_error;
+ }
+ }
+ goto __finally390;
+ __catch390_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 4149 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 4149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 4152 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = err;
+#line 4152 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->message;
+#line 4152 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:4152: Unable to update editable attributes: %s", _tmp3_);
+#line 4149 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 29874 "Photo.c"
+ }
+ __finally390:
+#line 4149 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4149 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4149 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29885 "Photo.c"
+ }
+}
+
+
+static void photo_on_remove_editable (Photo* self) {
+ PhotoFileReader* reader = NULL;
+ PhotoFileReader* _tmp0_ = NULL;
+ PhotoFileReader* _tmp1_ = NULL;
+ GFile* file = NULL;
+ PhotoFileReader* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 4156 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4157 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_editable_reader (self);
+#line 4157 "/home/jens/Source/shotwell/src/Photo.vala"
+ reader = _tmp0_;
+#line 4158 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = reader;
+#line 4158 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 4159 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 4159 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29915 "Photo.c"
+ }
+#line 4161 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = reader;
+#line 4161 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 4161 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp3_;
+#line 4162 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = file;
+#line 4162 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = g_file_query_exists (_tmp4_, NULL);
+#line 4162 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 29929 "Photo.c"
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 4163 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 4163 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 4163 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:4163: Not removing editable for %s: file exists", _tmp7_);
+#line 4163 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp7_);
+#line 4165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 4165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 4165 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29946 "Photo.c"
+ }
+#line 4168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 4168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 4168 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_debug ("Photo.vala:4168: Removing editable for %s: file no longer exists", _tmp9_);
+#line 4168 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp9_);
+#line 4169 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_detach_editable (self, FALSE, TRUE, TRUE);
+#line 4156 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 4156 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 29962 "Photo.c"
+}
+
+
+void photo_get_original_dimensions (Photo* self, Dimensions* result) {
+ Dimensions dim = {0};
+ Dimensions _tmp0_ = {0};
+ Orientation orientation = 0;
+ Orientation _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+#line 4177 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4178 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_raw_dimensions (self, &_tmp0_);
+#line 4178 "/home/jens/Source/shotwell/src/Photo.vala"
+ dim = _tmp0_;
+#line 4179 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_orientation (self);
+#line 4179 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation = _tmp1_;
+#line 4181 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = dim;
+#line 4181 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_rotate_dimensions (orientation, &_tmp2_, &_tmp3_);
+#line 4181 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp3_;
+#line 4181 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 29991 "Photo.c"
+}
+
+
+void photo_get_master_dimensions (Photo* self, Dimensions* result) {
+ Orientation _tmp0_ = 0;
+ Dimensions _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+#line 4185 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4186 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_original_orientation (self);
+#line 4186 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_raw_dimensions (self, &_tmp1_);
+#line 4186 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_rotate_dimensions (_tmp0_, &_tmp1_, &_tmp2_);
+#line 4186 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp2_;
+#line 4186 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 30011 "Photo.c"
+}
+
+
+gboolean photo_get_crop (Photo* self, Box* crop, PhotoException exceptions) {
+ Box _vala_crop = {0};
+ gboolean result = FALSE;
+ Box raw = {0};
+ Box _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ Dimensions dim = {0};
+ Dimensions _tmp2_ = {0};
+ Orientation orientation = 0;
+ Orientation _tmp3_ = 0;
+ PhotoException _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+#line 4190 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 4192 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_raw_crop (self, &_tmp0_);
+#line 4192 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw = _tmp0_;
+#line 4192 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp1_) {
+#line 4193 "/home/jens/Source/shotwell/src/Photo.vala"
+ box_init (&_vala_crop, 0, 0, 0, 0);
+#line 4195 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 4195 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (crop) {
+#line 4195 "/home/jens/Source/shotwell/src/Photo.vala"
+ *crop = _vala_crop;
+#line 30043 "Photo.c"
+ }
+#line 4195 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 30047 "Photo.c"
+ }
+#line 4198 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP | PHOTO_EXCEPTION_ORIENTATION, &_tmp2_);
+#line 4198 "/home/jens/Source/shotwell/src/Photo.vala"
+ dim = _tmp2_;
+#line 4199 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_get_orientation (self);
+#line 4199 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation = _tmp3_;
+#line 4201 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = exceptions;
+#line 4201 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_exception_allows (_tmp4_, PHOTO_EXCEPTION_ORIENTATION);
+#line 4201 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 30063 "Photo.c"
+ Orientation _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ Box _tmp8_ = {0};
+ Box _tmp9_ = {0};
+#line 4202 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = orientation;
+#line 4202 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = dim;
+#line 4202 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = raw;
+#line 4202 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_rotate_box (_tmp6_, &_tmp7_, &_tmp8_, &_tmp9_);
+#line 4202 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_crop = _tmp9_;
+#line 30078 "Photo.c"
+ } else {
+ Box _tmp10_ = {0};
+#line 4204 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = raw;
+#line 4204 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_crop = _tmp10_;
+#line 30085 "Photo.c"
+ }
+#line 4206 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 4206 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (crop) {
+#line 4206 "/home/jens/Source/shotwell/src/Photo.vala"
+ *crop = _vala_crop;
+#line 30093 "Photo.c"
+ }
+#line 4206 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 30097 "Photo.c"
+}
+
+
+void photo_set_crop (Photo* self, Box* crop) {
+ Dimensions dim = {0};
+ Dimensions _tmp0_ = {0};
+ Orientation orientation = 0;
+ Orientation _tmp1_ = 0;
+ Box derotated = {0};
+ Dimensions _tmp2_ = {0};
+ Box _tmp3_ = {0};
+ Box _tmp4_ = {0};
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ Box _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Box _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ Dimensions _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ Box _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ Dimensions _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ Box _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ Box _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ Dimensions _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ Box _tmp29_ = {0};
+#line 4210 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4210 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (crop != NULL);
+#line 4211 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP | PHOTO_EXCEPTION_ORIENTATION, &_tmp0_);
+#line 4211 "/home/jens/Source/shotwell/src/Photo.vala"
+ dim = _tmp0_;
+#line 4212 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_orientation (self);
+#line 4212 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation = _tmp1_;
+#line 4214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = dim;
+#line 4214 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = *crop;
+#line 4214 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_derotate_box (orientation, &_tmp2_, &_tmp3_, &_tmp4_);
+#line 4214 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated = _tmp4_;
+#line 4216 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = derotated;
+#line 4216 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_.left;
+#line 4216 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = dim;
+#line 4216 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_.width;
+#line 4216 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = CLAMP (_tmp6_, 0, _tmp8_ - 2);
+#line 4216 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated.left = _tmp9_;
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = derotated;
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_.right;
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = derotated;
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_.left;
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = dim;
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_.width;
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = CLAMP (_tmp11_, _tmp13_, _tmp15_ - 1);
+#line 4217 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated.right = _tmp16_;
+#line 4219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = derotated;
+#line 4219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_.top;
+#line 4219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = dim;
+#line 4219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_.height;
+#line 4219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = CLAMP (_tmp18_, 0, _tmp20_ - 2);
+#line 4219 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated.top = _tmp21_;
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = derotated;
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_.bottom;
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = derotated;
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_.top;
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = dim;
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _tmp26_.height;
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = CLAMP (_tmp23_, _tmp25_, _tmp27_ - 1);
+#line 4220 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated.bottom = _tmp28_;
+#line 4222 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = derotated;
+#line 4222 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_raw_crop (self, &_tmp29_);
+#line 30215 "Photo.c"
+}
+
+
+gboolean photo_get_straighten (Photo* self, gdouble* theta) {
+ gdouble _vala_theta = 0.0;
+ gboolean result = FALSE;
+ gdouble _tmp0_ = 0.0;
+ gboolean _tmp1_ = FALSE;
+#line 4225 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 4226 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_raw_straighten (self, &_tmp0_);
+#line 4226 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_theta = _tmp0_;
+#line 4226 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp1_) {
+#line 4227 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 4227 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (theta) {
+#line 4227 "/home/jens/Source/shotwell/src/Photo.vala"
+ *theta = _vala_theta;
+#line 30238 "Photo.c"
+ }
+#line 4227 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 30242 "Photo.c"
+ }
+#line 4229 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 4229 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (theta) {
+#line 4229 "/home/jens/Source/shotwell/src/Photo.vala"
+ *theta = _vala_theta;
+#line 30250 "Photo.c"
+ }
+#line 4229 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 30254 "Photo.c"
+}
+
+
+void photo_set_straighten (Photo* self, gdouble theta) {
+ gdouble _tmp0_ = 0.0;
+#line 4232 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4233 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = theta;
+#line 4233 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_raw_straighten (self, _tmp0_);
+#line 30266 "Photo.c"
+}
+
+
+static GdkPixbuf* photo_do_redeye (Photo* self, GdkPixbuf* pixbuf, EditingToolsRedeyeInstance* inst) {
+ GdkPixbuf* result = NULL;
+ gdouble r = 0.0;
+ EditingToolsRedeyeInstance _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint* x_insets_first_quadrant = NULL;
+ EditingToolsRedeyeInstance _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint* _tmp4_ = NULL;
+ gint x_insets_first_quadrant_length1 = 0;
+ gint _x_insets_first_quadrant_size_ = 0;
+ gint i = 0;
+ gint x_bounds_min = 0;
+ EditingToolsRedeyeInstance _tmp22_ = {0};
+ GdkPoint _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ EditingToolsRedeyeInstance _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ gint x_bounds_max = 0;
+ EditingToolsRedeyeInstance _tmp27_ = {0};
+ GdkPoint _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ EditingToolsRedeyeInstance _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ gint ymin = 0;
+ EditingToolsRedeyeInstance _tmp32_ = {0};
+ GdkPoint _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ EditingToolsRedeyeInstance _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint ymax = 0;
+ EditingToolsRedeyeInstance _tmp40_ = {0};
+ GdkPoint _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ GdkPixbuf* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ gint inset_index = 0;
+ EditingToolsRedeyeInstance _tmp88_ = {0};
+ GdkPoint _tmp89_ = {0};
+ gint _tmp90_ = 0;
+ EditingToolsRedeyeInstance _tmp91_ = {0};
+ GdkPoint _tmp92_ = {0};
+ gint _tmp93_ = 0;
+ EditingToolsRedeyeInstance _tmp94_ = {0};
+ gint _tmp95_ = 0;
+ gint* _tmp96_ = NULL;
+ gint _tmp96__length1 = 0;
+ GdkPixbuf* _tmp133_ = NULL;
+ GdkPixbuf* _tmp134_ = NULL;
+#line 4236 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 4236 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 4236 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (inst != NULL, NULL);
+#line 4246 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = *inst;
+#line 4246 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_.radius;
+#line 4246 "/home/jens/Source/shotwell/src/Photo.vala"
+ r = (gdouble) _tmp1_;
+#line 4247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = *inst;
+#line 4247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_.radius;
+#line 4247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = g_new0 (gint, _tmp3_ + 1);
+#line 4247 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_insets_first_quadrant = _tmp4_;
+#line 4247 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_insets_first_quadrant_length1 = _tmp3_ + 1;
+#line 4247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _x_insets_first_quadrant_size_ = x_insets_first_quadrant_length1;
+#line 4249 "/home/jens/Source/shotwell/src/Photo.vala"
+ i = 0;
+#line 30350 "Photo.c"
+ {
+ gdouble y = 0.0;
+ gdouble _tmp5_ = 0.0;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = r;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ y = _tmp5_;
+#line 30358 "Photo.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = TRUE;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 30365 "Photo.c"
+ gdouble _tmp8_ = 0.0;
+ gdouble theta = 0.0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ gint x = 0;
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ gint* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gint _tmp16_ = 0;
+ EditingToolsRedeyeInstance _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp6_) {
+#line 30385 "Photo.c"
+ gdouble _tmp7_ = 0.0;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = y;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ y = _tmp7_ - 1.0;
+#line 30391 "Photo.c"
+ }
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = FALSE;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = y;
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp8_ >= 0.0)) {
+#line 4250 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 30401 "Photo.c"
+ }
+#line 4251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = y;
+#line 4251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = r;
+#line 4251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = asin (_tmp9_ / _tmp10_);
+#line 4251 "/home/jens/Source/shotwell/src/Photo.vala"
+ theta = _tmp11_;
+#line 4252 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = r;
+#line 4252 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = theta;
+#line 4252 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = cos (_tmp13_);
+#line 4252 "/home/jens/Source/shotwell/src/Photo.vala"
+ x = (gint) ((_tmp12_ * _tmp14_) + 0.5);
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = x_insets_first_quadrant;
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15__length1 = x_insets_first_quadrant_length1;
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = i;
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = *inst;
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_.radius;
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = x;
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_[_tmp16_] = _tmp18_ - _tmp19_;
+#line 4253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp15_[_tmp16_];
+#line 4255 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = i;
+#line 4255 "/home/jens/Source/shotwell/src/Photo.vala"
+ i = _tmp21_ + 1;
+#line 30439 "Photo.c"
+ }
+ }
+ }
+#line 4258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = *inst;
+#line 4258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_.center;
+#line 4258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_.x;
+#line 4258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = *inst;
+#line 4258 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_.radius;
+#line 4258 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_bounds_min = _tmp24_ - _tmp26_;
+#line 4259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = *inst;
+#line 4259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_.center;
+#line 4259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_.x;
+#line 4259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = *inst;
+#line 4259 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_.radius;
+#line 4259 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_bounds_max = _tmp29_ + _tmp31_;
+#line 4260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = *inst;
+#line 4260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_.center;
+#line 4260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_.y;
+#line 4260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = *inst;
+#line 4260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = _tmp35_.radius;
+#line 4260 "/home/jens/Source/shotwell/src/Photo.vala"
+ ymin = _tmp34_ - _tmp36_;
+#line 4261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = ymin;
+#line 4261 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp38_ < 0) {
+#line 4261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = 0;
+#line 30485 "Photo.c"
+ } else {
+ gint _tmp39_ = 0;
+#line 4261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = ymin;
+#line 4261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp39_;
+#line 30492 "Photo.c"
+ }
+#line 4261 "/home/jens/Source/shotwell/src/Photo.vala"
+ ymin = _tmp37_;
+#line 4262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = *inst;
+#line 4262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp40_.center;
+#line 4262 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_.y;
+#line 4262 "/home/jens/Source/shotwell/src/Photo.vala"
+ ymax = _tmp42_;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = ymax;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = pixbuf;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = gdk_pixbuf_get_height (_tmp45_);
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp44_ > (_tmp47_ - 1)) {
+#line 30514 "Photo.c"
+ GdkPixbuf* _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = pixbuf;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = gdk_pixbuf_get_height (_tmp48_);
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = _tmp49_;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _tmp50_ - 1;
+#line 30526 "Photo.c"
+ } else {
+ gint _tmp51_ = 0;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = ymax;
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _tmp51_;
+#line 30533 "Photo.c"
+ }
+#line 4263 "/home/jens/Source/shotwell/src/Photo.vala"
+ ymax = _tmp43_;
+#line 4267 "/home/jens/Source/shotwell/src/Photo.vala"
+ inset_index = 0;
+#line 30539 "Photo.c"
+ {
+ gint y_it = 0;
+ gint _tmp52_ = 0;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = ymin;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ y_it = _tmp52_;
+#line 30547 "Photo.c"
+ {
+ gboolean _tmp53_ = FALSE;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = TRUE;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 30554 "Photo.c"
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+ gint xmin = 0;
+ gint _tmp57_ = 0;
+ gint* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gint xmax = 0;
+ gint _tmp64_ = 0;
+ gint* _tmp65_ = NULL;
+ gint _tmp65__length1 = 0;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ GdkPixbuf* _tmp70_ = NULL;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint _tmp87_ = 0;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp53_) {
+#line 30579 "Photo.c"
+ gint _tmp54_ = 0;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = y_it;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ y_it = _tmp54_ + 1;
+#line 30585 "Photo.c"
+ }
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = FALSE;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = y_it;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = ymax;
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp55_ <= _tmp56_)) {
+#line 4268 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 30597 "Photo.c"
+ }
+#line 4269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = x_bounds_min;
+#line 4269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = x_insets_first_quadrant;
+#line 4269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58__length1 = x_insets_first_quadrant_length1;
+#line 4269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = inset_index;
+#line 4269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = _tmp58_[_tmp59_];
+#line 4269 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmin = _tmp57_ + _tmp60_;
+#line 4270 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = xmin;
+#line 4270 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp62_ < 0) {
+#line 4270 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = 0;
+#line 30617 "Photo.c"
+ } else {
+ gint _tmp63_ = 0;
+#line 4270 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = xmin;
+#line 4270 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = _tmp63_;
+#line 30624 "Photo.c"
+ }
+#line 4270 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmin = _tmp61_;
+#line 4271 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = x_bounds_max;
+#line 4271 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = x_insets_first_quadrant;
+#line 4271 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65__length1 = x_insets_first_quadrant_length1;
+#line 4271 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = inset_index;
+#line 4271 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = _tmp65_[_tmp66_];
+#line 4271 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmax = _tmp64_ - _tmp67_;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = xmax;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = pixbuf;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = gdk_pixbuf_get_width (_tmp70_);
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = _tmp71_;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp69_ > (_tmp72_ - 1)) {
+#line 30650 "Photo.c"
+ GdkPixbuf* _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = pixbuf;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = gdk_pixbuf_get_width (_tmp73_);
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = _tmp74_;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = _tmp75_ - 1;
+#line 30662 "Photo.c"
+ } else {
+ gint _tmp76_ = 0;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = xmax;
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = _tmp76_;
+#line 30669 "Photo.c"
+ }
+#line 4272 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmax = _tmp68_;
+#line 30673 "Photo.c"
+ {
+ gint x_it = 0;
+ gint _tmp77_ = 0;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = xmin;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_it = _tmp77_;
+#line 30681 "Photo.c"
+ {
+ gboolean _tmp78_ = FALSE;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = TRUE;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 30688 "Photo.c"
+ gint _tmp80_ = 0;
+ gint _tmp81_ = 0;
+ GdkPixbuf* _tmp82_ = NULL;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+ GdkPixbuf* _tmp85_ = NULL;
+ GdkPixbuf* _tmp86_ = NULL;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp78_) {
+#line 30698 "Photo.c"
+ gint _tmp79_ = 0;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = x_it;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_it = _tmp79_ + 1;
+#line 30704 "Photo.c"
+ }
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = FALSE;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = x_it;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = xmax;
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp80_ <= _tmp81_)) {
+#line 4274 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 30716 "Photo.c"
+ }
+#line 4275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = pixbuf;
+#line 4275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = x_it;
+#line 4275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = y_it;
+#line 4275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = photo_red_reduce_pixel (self, _tmp82_, _tmp83_, _tmp84_);
+#line 4275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = _tmp85_;
+#line 4275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp86_);
+#line 30730 "Photo.c"
+ }
+ }
+ }
+#line 4277 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = inset_index;
+#line 4277 "/home/jens/Source/shotwell/src/Photo.vala"
+ inset_index = _tmp87_ + 1;
+#line 30738 "Photo.c"
+ }
+ }
+ }
+#line 4282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = *inst;
+#line 4282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = _tmp88_.center;
+#line 4282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = _tmp89_.y;
+#line 4282 "/home/jens/Source/shotwell/src/Photo.vala"
+ ymin = _tmp90_;
+#line 4283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = *inst;
+#line 4283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = _tmp91_.center;
+#line 4283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = _tmp92_.y;
+#line 4283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = *inst;
+#line 4283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = _tmp94_.radius;
+#line 4283 "/home/jens/Source/shotwell/src/Photo.vala"
+ ymax = _tmp93_ + _tmp95_;
+#line 4284 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = x_insets_first_quadrant;
+#line 4284 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96__length1 = x_insets_first_quadrant_length1;
+#line 4284 "/home/jens/Source/shotwell/src/Photo.vala"
+ inset_index = _tmp96__length1 - 1;
+#line 30768 "Photo.c"
+ {
+ gint y_it = 0;
+ gint _tmp97_ = 0;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = ymin;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ y_it = _tmp97_;
+#line 30776 "Photo.c"
+ {
+ gboolean _tmp98_ = FALSE;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = TRUE;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 30783 "Photo.c"
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ gint xmin = 0;
+ gint _tmp102_ = 0;
+ gint* _tmp103_ = NULL;
+ gint _tmp103__length1 = 0;
+ gint _tmp104_ = 0;
+ gint _tmp105_ = 0;
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+ gint xmax = 0;
+ gint _tmp109_ = 0;
+ gint* _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ GdkPixbuf* _tmp115_ = NULL;
+ gint _tmp116_ = 0;
+ gint _tmp117_ = 0;
+ gint _tmp132_ = 0;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp98_) {
+#line 30808 "Photo.c"
+ gint _tmp99_ = 0;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp99_ = y_it;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ y_it = _tmp99_ + 1;
+#line 30814 "Photo.c"
+ }
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = FALSE;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = y_it;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = ymax;
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp100_ <= _tmp101_)) {
+#line 4285 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 30826 "Photo.c"
+ }
+#line 4286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp102_ = x_bounds_min;
+#line 4286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103_ = x_insets_first_quadrant;
+#line 4286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103__length1 = x_insets_first_quadrant_length1;
+#line 4286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = inset_index;
+#line 4286 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp105_ = _tmp103_[_tmp104_];
+#line 4286 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmin = _tmp102_ + _tmp105_;
+#line 4287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp107_ = xmin;
+#line 4287 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp107_ < 0) {
+#line 4287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = 0;
+#line 30846 "Photo.c"
+ } else {
+ gint _tmp108_ = 0;
+#line 4287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp108_ = xmin;
+#line 4287 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = _tmp108_;
+#line 30853 "Photo.c"
+ }
+#line 4287 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmin = _tmp106_;
+#line 4288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp109_ = x_bounds_max;
+#line 4288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110_ = x_insets_first_quadrant;
+#line 4288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110__length1 = x_insets_first_quadrant_length1;
+#line 4288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp111_ = inset_index;
+#line 4288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp112_ = _tmp110_[_tmp111_];
+#line 4288 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmax = _tmp109_ - _tmp112_;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114_ = xmax;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp115_ = pixbuf;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp116_ = gdk_pixbuf_get_width (_tmp115_);
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp117_ = _tmp116_;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp114_ > (_tmp117_ - 1)) {
+#line 30879 "Photo.c"
+ GdkPixbuf* _tmp118_ = NULL;
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp118_ = pixbuf;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp119_ = gdk_pixbuf_get_width (_tmp118_);
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp120_ = _tmp119_;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp113_ = _tmp120_ - 1;
+#line 30891 "Photo.c"
+ } else {
+ gint _tmp121_ = 0;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp121_ = xmax;
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp113_ = _tmp121_;
+#line 30898 "Photo.c"
+ }
+#line 4289 "/home/jens/Source/shotwell/src/Photo.vala"
+ xmax = _tmp113_;
+#line 30902 "Photo.c"
+ {
+ gint x_it = 0;
+ gint _tmp122_ = 0;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp122_ = xmin;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_it = _tmp122_;
+#line 30910 "Photo.c"
+ {
+ gboolean _tmp123_ = FALSE;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp123_ = TRUE;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 30917 "Photo.c"
+ gint _tmp125_ = 0;
+ gint _tmp126_ = 0;
+ GdkPixbuf* _tmp127_ = NULL;
+ gint _tmp128_ = 0;
+ gint _tmp129_ = 0;
+ GdkPixbuf* _tmp130_ = NULL;
+ GdkPixbuf* _tmp131_ = NULL;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp123_) {
+#line 30927 "Photo.c"
+ gint _tmp124_ = 0;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124_ = x_it;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_it = _tmp124_ + 1;
+#line 30933 "Photo.c"
+ }
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp123_ = FALSE;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp125_ = x_it;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp126_ = xmax;
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp125_ <= _tmp126_)) {
+#line 4291 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 30945 "Photo.c"
+ }
+#line 4292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp127_ = pixbuf;
+#line 4292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp128_ = x_it;
+#line 4292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp129_ = y_it;
+#line 4292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp130_ = photo_red_reduce_pixel (self, _tmp127_, _tmp128_, _tmp129_);
+#line 4292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp131_ = _tmp130_;
+#line 4292 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp131_);
+#line 30959 "Photo.c"
+ }
+ }
+ }
+#line 4294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp132_ = inset_index;
+#line 4294 "/home/jens/Source/shotwell/src/Photo.vala"
+ inset_index = _tmp132_ - 1;
+#line 30967 "Photo.c"
+ }
+ }
+ }
+#line 4297 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp133_ = pixbuf;
+#line 4297 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp134_ = _g_object_ref0 (_tmp133_);
+#line 4297 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp134_;
+#line 4297 "/home/jens/Source/shotwell/src/Photo.vala"
+ x_insets_first_quadrant = (g_free (x_insets_first_quadrant), NULL);
+#line 4297 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 30981 "Photo.c"
+}
+
+
+static GdkPixbuf* photo_red_reduce_pixel (Photo* self, GdkPixbuf* pixbuf, gint x, gint y) {
+ GdkPixbuf* result = NULL;
+ gint px_start_byte_offset = 0;
+ gint _tmp0_ = 0;
+ GdkPixbuf* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GdkPixbuf* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gint _tmp9_ = 0;
+ GdkPixbuf* _tmp33_ = NULL;
+ GdkPixbuf* _tmp34_ = NULL;
+#line 4300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 4300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 4301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = y;
+#line 4301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = pixbuf;
+#line 4301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gdk_pixbuf_get_rowstride (_tmp1_);
+#line 4301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = x;
+#line 4301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = pixbuf;
+#line 4301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gdk_pixbuf_get_n_channels (_tmp4_);
+#line 4301 "/home/jens/Source/shotwell/src/Photo.vala"
+ px_start_byte_offset = (_tmp0_ * _tmp2_) + (_tmp3_ * _tmp5_);
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = x;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp9_ >= 0) {
+#line 31022 "Photo.c"
+ gint _tmp10_ = 0;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = y;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp10_ >= 0;
+#line 31028 "Photo.c"
+ } else {
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = FALSE;
+#line 31032 "Photo.c"
+ }
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_) {
+#line 31036 "Photo.c"
+ gint _tmp11_ = 0;
+ GdkPixbuf* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = x;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = pixbuf;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = gdk_pixbuf_get_width (_tmp12_);
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp11_ < _tmp14_;
+#line 31051 "Photo.c"
+ } else {
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = FALSE;
+#line 31055 "Photo.c"
+ }
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_) {
+#line 31059 "Photo.c"
+ gint _tmp15_ = 0;
+ GdkPixbuf* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = y;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = pixbuf;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = gdk_pixbuf_get_height (_tmp16_);
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_;
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp15_ < _tmp18_;
+#line 31074 "Photo.c"
+ } else {
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = FALSE;
+#line 31078 "Photo.c"
+ }
+#line 4308 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 31082 "Photo.c"
+ guchar* pixel_data = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+ guint8* _tmp20_ = NULL;
+ gint pixel_data_length1 = 0;
+ gint _pixel_data_size_ = 0;
+ guchar g = '\0';
+ guchar* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ gint _tmp22_ = 0;
+ guchar _tmp23_ = '\0';
+ guchar b = '\0';
+ guchar* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ guchar _tmp26_ = '\0';
+ guchar r = '\0';
+ guchar _tmp27_ = '\0';
+ guchar _tmp28_ = '\0';
+ guchar* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ gint _tmp30_ = 0;
+ guchar _tmp31_ = '\0';
+ guchar _tmp32_ = '\0';
+#line 4309 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = pixbuf;
+#line 4309 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = gdk_pixbuf_get_pixels (_tmp19_);
+#line 4309 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixel_data = _tmp20_;
+#line 4309 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixel_data_length1 = -1;
+#line 4309 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_data_size_ = pixel_data_length1;
+#line 4319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = pixel_data;
+#line 4319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21__length1 = pixel_data_length1;
+#line 4319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = px_start_byte_offset;
+#line 4319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp21_[_tmp22_ + 1];
+#line 4319 "/home/jens/Source/shotwell/src/Photo.vala"
+ g = _tmp23_;
+#line 4320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = pixel_data;
+#line 4320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24__length1 = pixel_data_length1;
+#line 4320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = px_start_byte_offset;
+#line 4320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp24_[_tmp25_ + 2];
+#line 4320 "/home/jens/Source/shotwell/src/Photo.vala"
+ b = _tmp26_;
+#line 4322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = g;
+#line 4322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = b;
+#line 4322 "/home/jens/Source/shotwell/src/Photo.vala"
+ r = (guchar) ((_tmp27_ + _tmp28_) / 2);
+#line 4324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = pixel_data;
+#line 4324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29__length1 = pixel_data_length1;
+#line 4324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = px_start_byte_offset;
+#line 4324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = r;
+#line 4324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_[_tmp30_] = _tmp31_;
+#line 4324 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp29_[_tmp30_];
+#line 31154 "Photo.c"
+ }
+#line 4327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = pixbuf;
+#line 4327 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _g_object_ref0 (_tmp33_);
+#line 4327 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp34_;
+#line 4327 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31164 "Photo.c"
+}
+
+
+void photo_unscaled_to_raw_point (Photo* self, GdkPoint* unscaled_point, GdkPoint* result) {
+ Orientation unscaled_orientation = 0;
+ Orientation _tmp0_ = 0;
+ Dimensions unscaled_dims = {0};
+ Orientation _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ gint unscaled_x_offset_raw = 0;
+ gint unscaled_y_offset_raw = 0;
+ Box crop_box = {0};
+ Box _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+ GdkPoint derotated_point = {0};
+ Orientation _tmp10_ = 0;
+ Dimensions _tmp11_ = {0};
+ GdkPoint _tmp12_ = {0};
+ GdkPoint _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 4330 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4330 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (unscaled_point != NULL);
+#line 4331 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_orientation (self);
+#line 4331 "/home/jens/Source/shotwell/src/Photo.vala"
+ unscaled_orientation = _tmp0_;
+#line 4333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = unscaled_orientation;
+#line 4333 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp2_);
+#line 4333 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_rotate_dimensions (_tmp1_, &_tmp2_, &_tmp3_);
+#line 4333 "/home/jens/Source/shotwell/src/Photo.vala"
+ unscaled_dims = _tmp3_;
+#line 4336 "/home/jens/Source/shotwell/src/Photo.vala"
+ unscaled_x_offset_raw = 0;
+#line 4337 "/home/jens/Source/shotwell/src/Photo.vala"
+ unscaled_y_offset_raw = 0;
+#line 4340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_get_raw_crop (self, &_tmp4_);
+#line 4340 "/home/jens/Source/shotwell/src/Photo.vala"
+ crop_box = _tmp4_;
+#line 4340 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 31215 "Photo.c"
+ Box _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ Box _tmp8_ = {0};
+ gint _tmp9_ = 0;
+#line 4341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = crop_box;
+#line 4341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_.left;
+#line 4341 "/home/jens/Source/shotwell/src/Photo.vala"
+ unscaled_x_offset_raw = _tmp7_;
+#line 4342 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = crop_box;
+#line 4342 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_.top;
+#line 4342 "/home/jens/Source/shotwell/src/Photo.vala"
+ unscaled_y_offset_raw = _tmp9_;
+#line 31232 "Photo.c"
+ }
+#line 4345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = unscaled_orientation;
+#line 4345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = unscaled_dims;
+#line 4345 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = *unscaled_point;
+#line 4345 "/home/jens/Source/shotwell/src/Photo.vala"
+ orientation_derotate_point (_tmp10_, &_tmp11_, &_tmp12_, &_tmp13_);
+#line 4345 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated_point = _tmp13_;
+#line 4349 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = derotated_point.x;
+#line 4349 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = unscaled_x_offset_raw;
+#line 4349 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated_point.x = _tmp14_ + _tmp15_;
+#line 4350 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = derotated_point.y;
+#line 4350 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = unscaled_y_offset_raw;
+#line 4350 "/home/jens/Source/shotwell/src/Photo.vala"
+ derotated_point.y = _tmp16_ + _tmp17_;
+#line 4352 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = derotated_point;
+#line 4352 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 31260 "Photo.c"
+}
+
+
+void photo_unscaled_to_raw_rect (Photo* self, GdkRectangle* unscaled_rect, GdkRectangle* result) {
+ GdkPoint upper_left = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkPoint lower_right = {0};
+ GdkPoint _tmp1_ = {0};
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkPoint _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkPoint _tmp14_ = {0};
+ GdkPoint _tmp15_ = {0};
+ GdkPoint _tmp16_ = {0};
+ GdkPoint _tmp17_ = {0};
+ GdkPoint _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkPoint _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GdkPoint _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ GdkRectangle raw_rect = {0};
+ GdkPoint _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ GdkPoint _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ GdkPoint _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ GdkPoint _tmp42_ = {0};
+ gint _tmp43_ = 0;
+ GdkPoint _tmp44_ = {0};
+ gint _tmp45_ = 0;
+ GdkPoint _tmp46_ = {0};
+ gint _tmp47_ = 0;
+#line 4355 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (self));
+#line 4355 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (unscaled_rect != NULL);
+#line 4356 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_.x = 0;
+#line 4356 "/home/jens/Source/shotwell/src/Photo.vala"
+ upper_left = _tmp0_;
+#line 4357 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_.x = 0;
+#line 4357 "/home/jens/Source/shotwell/src/Photo.vala"
+ lower_right = _tmp1_;
+#line 4358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = *unscaled_rect;
+#line 4358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_.x;
+#line 4358 "/home/jens/Source/shotwell/src/Photo.vala"
+ upper_left.x = _tmp3_;
+#line 4359 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = *unscaled_rect;
+#line 4359 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_.y;
+#line 4359 "/home/jens/Source/shotwell/src/Photo.vala"
+ upper_left.y = _tmp5_;
+#line 4360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = upper_left;
+#line 4360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_.x;
+#line 4360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = *unscaled_rect;
+#line 4360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_.width;
+#line 4360 "/home/jens/Source/shotwell/src/Photo.vala"
+ lower_right.x = _tmp7_ + _tmp9_;
+#line 4361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = upper_left;
+#line 4361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_.y;
+#line 4361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = *unscaled_rect;
+#line 4361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_.height;
+#line 4361 "/home/jens/Source/shotwell/src/Photo.vala"
+ lower_right.y = _tmp11_ + _tmp13_;
+#line 4363 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = upper_left;
+#line 4363 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_unscaled_to_raw_point (self, &_tmp14_, &_tmp15_);
+#line 4363 "/home/jens/Source/shotwell/src/Photo.vala"
+ upper_left = _tmp15_;
+#line 4364 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = lower_right;
+#line 4364 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_unscaled_to_raw_point (self, &_tmp16_, &_tmp17_);
+#line 4364 "/home/jens/Source/shotwell/src/Photo.vala"
+ lower_right = _tmp17_;
+#line 4366 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = upper_left;
+#line 4366 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_.x;
+#line 4366 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = lower_right;
+#line 4366 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_.x;
+#line 4366 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp19_ > _tmp21_) {
+#line 31372 "Photo.c"
+ gint temp = 0;
+ GdkPoint _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ GdkPoint _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 4367 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = upper_left;
+#line 4367 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _tmp22_.x;
+#line 4367 "/home/jens/Source/shotwell/src/Photo.vala"
+ temp = _tmp23_;
+#line 4368 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = lower_right;
+#line 4368 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_.x;
+#line 4368 "/home/jens/Source/shotwell/src/Photo.vala"
+ upper_left.x = _tmp25_;
+#line 4369 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = temp;
+#line 4369 "/home/jens/Source/shotwell/src/Photo.vala"
+ lower_right.x = _tmp26_;
+#line 31395 "Photo.c"
+ }
+#line 4371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = upper_left;
+#line 4371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp27_.y;
+#line 4371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = lower_right;
+#line 4371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _tmp29_.y;
+#line 4371 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp28_ > _tmp30_) {
+#line 31407 "Photo.c"
+ gint temp = 0;
+ GdkPoint _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ GdkPoint _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 4372 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = upper_left;
+#line 4372 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_.y;
+#line 4372 "/home/jens/Source/shotwell/src/Photo.vala"
+ temp = _tmp32_;
+#line 4373 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = lower_right;
+#line 4373 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp33_.y;
+#line 4373 "/home/jens/Source/shotwell/src/Photo.vala"
+ upper_left.y = _tmp34_;
+#line 4374 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = temp;
+#line 4374 "/home/jens/Source/shotwell/src/Photo.vala"
+ lower_right.y = _tmp35_;
+#line 31430 "Photo.c"
+ }
+#line 4377 "/home/jens/Source/shotwell/src/Photo.vala"
+ memset (&raw_rect, 0, sizeof (GdkRectangle));
+#line 4378 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = upper_left;
+#line 4378 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_.x;
+#line 4378 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_rect.x = _tmp37_;
+#line 4379 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = upper_left;
+#line 4379 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tmp38_.y;
+#line 4379 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_rect.y = _tmp39_;
+#line 4380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = lower_right;
+#line 4380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp40_.x;
+#line 4380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = upper_left;
+#line 4380 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _tmp42_.x;
+#line 4380 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_rect.width = _tmp41_ - _tmp43_;
+#line 4381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = lower_right;
+#line 4381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp44_.y;
+#line 4381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = upper_left;
+#line 4381 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_.y;
+#line 4381 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_rect.height = _tmp45_ - _tmp47_;
+#line 4383 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = raw_rect;
+#line 4383 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 31470 "Photo.c"
+}
+
+
+PixelTransformationBundle* photo_get_enhance_transformations (Photo* self) {
+ PixelTransformationBundle* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ PixelTransformationBundle* transformations = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ PixelTransformationBundle* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 4386 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), NULL);
+#line 4387 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = NULL;
+#line 31485 "Photo.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ Scaling _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ scaling_for_best_fit (360, FALSE, &_tmp1_);
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_get_pixbuf_with_options (self, &_tmp1_, PHOTO_EXCEPTION_ALL, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp2_;
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 31499 "Photo.c"
+ goto __catch391_g_error;
+ }
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp0_;
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 4394 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp3_;
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp0_);
+#line 31512 "Photo.c"
+ }
+ goto __finally391;
+ __catch391_g_error:
+ {
+ GError* e = NULL;
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ e = _inner_error_;
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 4401 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:4401: %s", "Photo: get_enhance_transformations: couldn't obtain pixbuf to build " "transform histogram");
+#line 4403 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 4403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (e);
+#line 4403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 4403 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31532 "Photo.c"
+ }
+ __finally391:
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4393 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 31545 "Photo.c"
+ }
+#line 4410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = pixbuf;
+#line 4410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = auto_enhance_create_auto_enhance_adjustments (_tmp4_);
+#line 4410 "/home/jens/Source/shotwell/src/Photo.vala"
+ transformations = _tmp5_;
+#line 4418 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = transformations;
+#line 4418 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 4418 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31559 "Photo.c"
+}
+
+
+gboolean photo_enhance (Photo* self) {
+ gboolean result = FALSE;
+ PixelTransformationBundle* transformations = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 4421 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (self), FALSE);
+#line 4422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_get_enhance_transformations (self);
+#line 4422 "/home/jens/Source/shotwell/src/Photo.vala"
+ transformations = _tmp0_;
+#line 4424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = transformations;
+#line 4424 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 4425 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 4425 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (transformations);
+#line 4425 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31585 "Photo.c"
+ }
+ {
+ PhotoRow* _tmp2_ = NULL;
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->row;
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_lock (&self->priv->__lock_row);
+#line 31593 "Photo.c"
+ {
+ PixelTransformationBundle* _tmp3_ = NULL;
+#line 4431 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = transformations;
+#line 4431 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_set_color_adjustments (self, _tmp3_);
+#line 31600 "Photo.c"
+ }
+ __finally392:
+ {
+ PhotoRow* _tmp4_ = NULL;
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->row;
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_row);
+#line 31609 "Photo.c"
+ }
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (transformations);
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 4430 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 31621 "Photo.c"
+ }
+ }
+#line 4438 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 4438 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (transformations);
+#line 4438 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31630 "Photo.c"
+}
+
+
+gboolean photo_get_develop_raw_photos_to_files (void) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 349 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo__develop_raw_photos_to_files;
+#line 349 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 349 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31643 "Photo.c"
+}
+
+
+void photo_set_develop_raw_photos_to_files (gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 349 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = value;
+#line 349 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo__develop_raw_photos_to_files = _tmp0_;
+#line 31653 "Photo.c"
+}
+
+
+static void photo_real_editable_replaced (Photo* self, GFile* old_file, GFile* new_file) {
+#line 358 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((old_file == NULL) || G_IS_FILE (old_file));
+#line 358 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((new_file == NULL) || G_IS_FILE (new_file));
+#line 31662 "Photo.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data1 = closure->data;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 31681 "Photo.c"
+ } else {
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data2 = closure->data;
+#line 31687 "Photo.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 31693 "Photo.c"
+}
+
+
+static void photo_real_raw_development_modified (Photo* self) {
+}
+
+
+static void photo_real_baseline_replaced (Photo* self) {
+}
+
+
+static void photo_real_master_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 376 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 31708 "Photo.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__MEDIA_METADATA (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__MEDIA_METADATA) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__MEDIA_METADATA callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data1 = closure->data;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 31727 "Photo.c"
+ } else {
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ data2 = closure->data;
+#line 31733 "Photo.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ callback = (GMarshalFunc_VOID__MEDIA_METADATA) (marshal_data ? marshal_data : cc->callback);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ callback (data1, value_get_media_metadata (param_values + 1), data2);
+#line 31739 "Photo.c"
+}
+
+
+static void photo_real_editable_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 380 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 31746 "Photo.c"
+}
+
+
+static void photo_real_baseline_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 387 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 31753 "Photo.c"
+}
+
+
+static void photo_real_source_reimported (Photo* self, PhotoMetadata* metadata) {
+#line 394 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 31760 "Photo.c"
+}
+
+
+static void _photo_photo_transformation_state_impl_on_photo_baseline_replaced_photo_baseline_replaced (Photo* _sender, gpointer self) {
+#line 257 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_photo_transformation_state_impl_on_photo_baseline_replaced ((PhotoPhotoTransformationStateImpl*) self);
+#line 31767 "Photo.c"
+}
+
+
+static PhotoPhotoTransformationStateImpl* photo_photo_transformation_state_impl_construct (GType object_type, Photo* photo, Orientation orientation, GeeHashMap* transformations, PixelTransformer* transformer, PixelTransformationBundle* adjustments) {
+ PhotoPhotoTransformationStateImpl * self = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Orientation _tmp2_ = 0;
+ GeeHashMap* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ PixelTransformer* _tmp5_ = NULL;
+ PixelTransformer* _tmp6_ = NULL;
+ PixelTransformationBundle* _tmp7_ = NULL;
+ PixelTransformationBundle* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 244 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((transformations == NULL) || GEE_IS_HASH_MAP (transformations), NULL);
+#line 244 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((transformer == NULL) || IS_PIXEL_TRANSFORMER (transformer), NULL);
+#line 244 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((adjustments == NULL) || IS_PIXEL_TRANSFORMATION_BUNDLE (adjustments), NULL);
+#line 244 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoPhotoTransformationStateImpl*) photo_transformation_state_construct (object_type);
+#line 247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo;
+#line 247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->photo);
+#line 247 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->photo = _tmp1_;
+#line 248 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = orientation;
+#line 248 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->orientation = _tmp2_;
+#line 249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = transformations;
+#line 249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_photo_transformation_state_impl_copy_transformations (_tmp3_);
+#line 249 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->transformations);
+#line 249 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformations = _tmp4_;
+#line 250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = transformer;
+#line 250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _pixel_transformer_ref0 (_tmp5_);
+#line 250 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 250 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformer = _tmp6_;
+#line 251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = adjustments;
+#line 251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _pixel_transformation_bundle_ref0 (_tmp7_);
+#line 251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 251 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = _tmp8_;
+#line 253 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo;
+#line 253 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect_object (_tmp9_, "baseline-replaced", (GCallback) _photo_photo_transformation_state_impl_on_photo_baseline_replaced_photo_baseline_replaced, self, 0);
+#line 244 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 31835 "Photo.c"
+}
+
+
+static PhotoPhotoTransformationStateImpl* photo_photo_transformation_state_impl_new (Photo* photo, Orientation orientation, GeeHashMap* transformations, PixelTransformer* transformer, PixelTransformationBundle* adjustments) {
+#line 244 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_photo_transformation_state_impl_construct (PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL, photo, orientation, transformations, transformer, adjustments);
+#line 31842 "Photo.c"
+}
+
+
+static Orientation photo_photo_transformation_state_impl_get_orientation (PhotoPhotoTransformationStateImpl* self) {
+ Orientation result = 0;
+ Orientation _tmp0_ = 0;
+#line 260 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (PHOTO_IS_PHOTO_TRANSFORMATION_STATE_IMPL (self), 0);
+#line 261 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->orientation;
+#line 261 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 261 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31857 "Photo.c"
+}
+
+
+static GeeHashMap* photo_photo_transformation_state_impl_get_transformations (PhotoPhotoTransformationStateImpl* self) {
+ GeeHashMap* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (PHOTO_IS_PHOTO_TRANSFORMATION_STATE_IMPL (self), NULL);
+#line 265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->transformations;
+#line 265 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_photo_transformation_state_impl_copy_transformations (_tmp0_);
+#line 265 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 265 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31875 "Photo.c"
+}
+
+
+static PixelTransformer* photo_photo_transformation_state_impl_get_transformer (PhotoPhotoTransformationStateImpl* self) {
+ PixelTransformer* result = NULL;
+ PixelTransformer* _tmp0_ = NULL;
+ PixelTransformer* _tmp1_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (PHOTO_IS_PHOTO_TRANSFORMATION_STATE_IMPL (self), NULL);
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->transformer;
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ != NULL) {
+#line 31889 "Photo.c"
+ PixelTransformer* _tmp2_ = NULL;
+ PixelTransformer* _tmp3_ = NULL;
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->transformer;
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = pixel_transformer_copy (_tmp2_);
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (_tmp0_);
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 31900 "Photo.c"
+ } else {
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (_tmp0_);
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 31906 "Photo.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 269 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31912 "Photo.c"
+}
+
+
+static PixelTransformationBundle* photo_photo_transformation_state_impl_get_color_adjustments (PhotoPhotoTransformationStateImpl* self) {
+ PixelTransformationBundle* result = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (PHOTO_IS_PHOTO_TRANSFORMATION_STATE_IMPL (self), NULL);
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->adjustments;
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ != NULL) {
+#line 31926 "Photo.c"
+ PixelTransformationBundle* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp3_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->adjustments;
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = pixel_transformation_bundle_copy (_tmp2_);
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (_tmp0_);
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 31937 "Photo.c"
+ } else {
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (_tmp0_);
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 31943 "Photo.c"
+ }
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 273 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31949 "Photo.c"
+}
+
+
+static GeeHashMap* photo_photo_transformation_state_impl_copy_transformations (GeeHashMap* original) {
+ GeeHashMap* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* clone = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((original == NULL) || GEE_IS_HASH_MAP (original), NULL);
+#line 278 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = original;
+#line 278 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ == NULL) {
+#line 279 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 279 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 31968 "Photo.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_KEY_VALUE_MAP, (GBoxedCopyFunc) key_value_map_ref, key_value_map_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 281 "/home/jens/Source/shotwell/src/Photo.vala"
+ clone = _tmp1_;
+#line 31974 "Photo.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = original;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp5_);
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _object_it = _tmp7_;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 32001 "Photo.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gchar* object = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GeeHashMap* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ KeyValueMap* _tmp17_ = NULL;
+ KeyValueMap* _tmp18_ = NULL;
+ KeyValueMap* _tmp19_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _object_it;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp9_) {
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 32023 "Photo.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _object_it;
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ object = (gchar*) _tmp11_;
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = clone;
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = object;
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = original;
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = object;
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp15_);
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = (KeyValueMap*) _tmp16_;
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = key_value_map_copy (_tmp17_);
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_;
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_, _tmp19_);
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (_tmp19_);
+#line 283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _key_value_map_unref0 (_tmp17_);
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (object);
+#line 32055 "Photo.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_object_it);
+#line 32059 "Photo.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = clone;
+#line 285 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 32065 "Photo.c"
+}
+
+
+static void photo_photo_transformation_state_impl_on_photo_baseline_replaced (PhotoPhotoTransformationStateImpl* self) {
+ gboolean _tmp0_ = FALSE;
+#line 288 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (PHOTO_IS_PHOTO_TRANSFORMATION_STATE_IMPL (self));
+#line 289 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_transformation_state_is_broken (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationState));
+#line 289 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp0_) {
+#line 290 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_TRANSFORMATION_STATE, PhotoTransformationState), "broken");
+#line 32079 "Photo.c"
+ }
+}
+
+
+static void photo_photo_transformation_state_impl_class_init (PhotoPhotoTransformationStateImplClass * klass) {
+#line 237 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_photo_transformation_state_impl_parent_class = g_type_class_peek_parent (klass);
+#line 237 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_class_add_private (klass, sizeof (PhotoPhotoTransformationStateImplPrivate));
+#line 237 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (klass)->finalize = photo_photo_transformation_state_impl_finalize;
+#line 32091 "Photo.c"
+}
+
+
+static void photo_photo_transformation_state_impl_instance_init (PhotoPhotoTransformationStateImpl * self) {
+#line 237 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv = PHOTO_PHOTO_TRANSFORMATION_STATE_IMPL_GET_PRIVATE (self);
+#line 32098 "Photo.c"
+}
+
+
+static void photo_photo_transformation_state_impl_finalize (GObject* obj) {
+ PhotoPhotoTransformationStateImpl * self;
+ Photo* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 237 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_PHOTO_TRANSFORMATION_STATE_IMPL, PhotoPhotoTransformationStateImpl);
+#line 257 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->photo;
+#line 257 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_parse_name ("baseline-replaced", TYPE_PHOTO, &_tmp1_, NULL, FALSE);
+#line 257 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _photo_photo_transformation_state_impl_on_photo_baseline_replaced_photo_baseline_replaced, self);
+#line 238 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->photo);
+#line 240 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->transformations);
+#line 241 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 242 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 237 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (photo_photo_transformation_state_impl_parent_class)->finalize (obj);
+#line 32124 "Photo.c"
+}
+
+
+static GType photo_photo_transformation_state_impl_get_type (void) {
+ static volatile gsize photo_photo_transformation_state_impl_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_photo_transformation_state_impl_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoPhotoTransformationStateImplClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_photo_transformation_state_impl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoPhotoTransformationStateImpl), 0, (GInstanceInitFunc) photo_photo_transformation_state_impl_instance_init, NULL };
+ GType photo_photo_transformation_state_impl_type_id;
+ photo_photo_transformation_state_impl_type_id = g_type_register_static (TYPE_PHOTO_TRANSFORMATION_STATE, "PhotoPhotoTransformationStateImpl", &g_define_type_info, 0);
+ g_once_init_leave (&photo_photo_transformation_state_impl_type_id__volatile, photo_photo_transformation_state_impl_type_id);
+ }
+ return photo_photo_transformation_state_impl_type_id__volatile;
+}
+
+
+static PhotoBackingReaders* photo_backing_readers_construct (GType object_type) {
+ PhotoBackingReaders* self = NULL;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoBackingReaders*) g_type_create_instance (object_type);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 32146 "Photo.c"
+}
+
+
+static PhotoBackingReaders* photo_backing_readers_new (void) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_backing_readers_construct (PHOTO_TYPE_BACKING_READERS);
+#line 32153 "Photo.c"
+}
+
+
+static void photo_value_backing_readers_init (GValue* value) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32160 "Photo.c"
+}
+
+
+static void photo_value_backing_readers_free_value (GValue* value) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (value->data[0].v_pointer) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_backing_readers_unref (value->data[0].v_pointer);
+#line 32169 "Photo.c"
+ }
+}
+
+
+static void photo_value_backing_readers_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (src_value->data[0].v_pointer) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = photo_backing_readers_ref (src_value->data[0].v_pointer);
+#line 32179 "Photo.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 32183 "Photo.c"
+ }
+}
+
+
+static gpointer photo_value_backing_readers_peek_pointer (const GValue* value) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 32191 "Photo.c"
+}
+
+
+static gchar* photo_value_backing_readers_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (collect_values[0].v_pointer) {
+#line 32198 "Photo.c"
+ PhotoBackingReaders* object;
+ object = collect_values[0].v_pointer;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 32205 "Photo.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 32209 "Photo.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = photo_backing_readers_ref (object);
+#line 32213 "Photo.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32217 "Photo.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 32221 "Photo.c"
+}
+
+
+static gchar* photo_value_backing_readers_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoBackingReaders** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!object_p) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 32232 "Photo.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!value->data[0].v_pointer) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = NULL;
+#line 32238 "Photo.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = value->data[0].v_pointer;
+#line 32242 "Photo.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = photo_backing_readers_ref (value->data[0].v_pointer);
+#line 32246 "Photo.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 32250 "Photo.c"
+}
+
+
+static GParamSpec* photo_param_spec_backing_readers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PhotoParamSpecBackingReaders* spec;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PHOTO_TYPE_BACKING_READERS), NULL);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return G_PARAM_SPEC (spec);
+#line 32264 "Photo.c"
+}
+
+
+static gpointer photo_value_get_backing_readers (const GValue* value) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_BACKING_READERS), NULL);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 32273 "Photo.c"
+}
+
+
+static void photo_value_set_backing_readers (GValue* value, gpointer v_object) {
+ PhotoBackingReaders* old;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_BACKING_READERS));
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_BACKING_READERS));
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_backing_readers_ref (value->data[0].v_pointer);
+#line 32293 "Photo.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32297 "Photo.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_backing_readers_unref (old);
+#line 32303 "Photo.c"
+ }
+}
+
+
+static void photo_value_take_backing_readers (GValue* value, gpointer v_object) {
+ PhotoBackingReaders* old;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_BACKING_READERS));
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_BACKING_READERS));
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 32322 "Photo.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32326 "Photo.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_backing_readers_unref (old);
+#line 32332 "Photo.c"
+ }
+}
+
+
+static void photo_backing_readers_class_init (PhotoBackingReadersClass * klass) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_backing_readers_parent_class = g_type_class_peek_parent (klass);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoBackingReadersClass *) klass)->finalize = photo_backing_readers_finalize;
+#line 32342 "Photo.c"
+}
+
+
+static void photo_backing_readers_instance_init (PhotoBackingReaders * self) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->ref_count = 1;
+#line 32349 "Photo.c"
+}
+
+
+static void photo_backing_readers_finalize (PhotoBackingReaders* obj) {
+ PhotoBackingReaders * self;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_BACKING_READERS, PhotoBackingReaders);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_destroy (self);
+#line 295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (self->master);
+#line 296 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (self->developer);
+#line 297 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_file_adapter_unref0 (self->editable);
+#line 32365 "Photo.c"
+}
+
+
+static GType photo_backing_readers_get_type (void) {
+ static volatile gsize photo_backing_readers_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_backing_readers_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { photo_value_backing_readers_init, photo_value_backing_readers_free_value, photo_value_backing_readers_copy_value, photo_value_backing_readers_peek_pointer, "p", photo_value_backing_readers_collect_value, "p", photo_value_backing_readers_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoBackingReadersClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_backing_readers_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoBackingReaders), 0, (GInstanceInitFunc) photo_backing_readers_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_backing_readers_type_id;
+ photo_backing_readers_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoBackingReaders", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&photo_backing_readers_type_id__volatile, photo_backing_readers_type_id);
+ }
+ return photo_backing_readers_type_id__volatile;
+}
+
+
+static gpointer photo_backing_readers_ref (gpointer instance) {
+ PhotoBackingReaders* self;
+ self = instance;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ return instance;
+#line 32390 "Photo.c"
+}
+
+
+static void photo_backing_readers_unref (gpointer instance) {
+ PhotoBackingReaders* self;
+ self = instance;
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_BACKING_READERS_GET_CLASS (self)->finalize (self);
+#line 294 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 32403 "Photo.c"
+ }
+}
+
+
+static PhotoCachedPixbuf* photo_cached_pixbuf_construct (GType object_type, Photo* photo, GdkPixbuf* pixbuf) {
+ PhotoCachedPixbuf* self = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 305 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 305 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoCachedPixbuf*) g_type_create_instance (object_type);
+#line 306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo;
+#line 306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->photo);
+#line 306 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->photo = _tmp1_;
+#line 307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = pixbuf;
+#line 307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->pixbuf);
+#line 307 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->pixbuf = _tmp3_;
+#line 305 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 32438 "Photo.c"
+}
+
+
+static PhotoCachedPixbuf* photo_cached_pixbuf_new (Photo* photo, GdkPixbuf* pixbuf) {
+#line 305 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_cached_pixbuf_construct (PHOTO_TYPE_CACHED_PIXBUF, photo, pixbuf);
+#line 32445 "Photo.c"
+}
+
+
+static void photo_value_cached_pixbuf_init (GValue* value) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32452 "Photo.c"
+}
+
+
+static void photo_value_cached_pixbuf_free_value (GValue* value) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (value->data[0].v_pointer) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_cached_pixbuf_unref (value->data[0].v_pointer);
+#line 32461 "Photo.c"
+ }
+}
+
+
+static void photo_value_cached_pixbuf_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (src_value->data[0].v_pointer) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = photo_cached_pixbuf_ref (src_value->data[0].v_pointer);
+#line 32471 "Photo.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 32475 "Photo.c"
+ }
+}
+
+
+static gpointer photo_value_cached_pixbuf_peek_pointer (const GValue* value) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 32483 "Photo.c"
+}
+
+
+static gchar* photo_value_cached_pixbuf_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (collect_values[0].v_pointer) {
+#line 32490 "Photo.c"
+ PhotoCachedPixbuf* object;
+ object = collect_values[0].v_pointer;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 32497 "Photo.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 32501 "Photo.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = photo_cached_pixbuf_ref (object);
+#line 32505 "Photo.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32509 "Photo.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 32513 "Photo.c"
+}
+
+
+static gchar* photo_value_cached_pixbuf_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoCachedPixbuf** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!object_p) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 32524 "Photo.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!value->data[0].v_pointer) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = NULL;
+#line 32530 "Photo.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = value->data[0].v_pointer;
+#line 32534 "Photo.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = photo_cached_pixbuf_ref (value->data[0].v_pointer);
+#line 32538 "Photo.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 32542 "Photo.c"
+}
+
+
+static GParamSpec* photo_param_spec_cached_pixbuf (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PhotoParamSpecCachedPixbuf* spec;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PHOTO_TYPE_CACHED_PIXBUF), NULL);
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return G_PARAM_SPEC (spec);
+#line 32556 "Photo.c"
+}
+
+
+static gpointer photo_value_get_cached_pixbuf (const GValue* value) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_CACHED_PIXBUF), NULL);
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 32565 "Photo.c"
+}
+
+
+static void photo_value_set_cached_pixbuf (GValue* value, gpointer v_object) {
+ PhotoCachedPixbuf* old;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_CACHED_PIXBUF));
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_CACHED_PIXBUF));
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_cached_pixbuf_ref (value->data[0].v_pointer);
+#line 32585 "Photo.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32589 "Photo.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_cached_pixbuf_unref (old);
+#line 32595 "Photo.c"
+ }
+}
+
+
+static void photo_value_take_cached_pixbuf (GValue* value, gpointer v_object) {
+ PhotoCachedPixbuf* old;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_CACHED_PIXBUF));
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_CACHED_PIXBUF));
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 32614 "Photo.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32618 "Photo.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_cached_pixbuf_unref (old);
+#line 32624 "Photo.c"
+ }
+}
+
+
+static void photo_cached_pixbuf_class_init (PhotoCachedPixbufClass * klass) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_cached_pixbuf_parent_class = g_type_class_peek_parent (klass);
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoCachedPixbufClass *) klass)->finalize = photo_cached_pixbuf_finalize;
+#line 32634 "Photo.c"
+}
+
+
+static void photo_cached_pixbuf_instance_init (PhotoCachedPixbuf * self) {
+ GTimer* _tmp0_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = g_timer_new ();
+#line 303 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->last_touched = _tmp0_;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->ref_count = 1;
+#line 32646 "Photo.c"
+}
+
+
+static void photo_cached_pixbuf_finalize (PhotoCachedPixbuf* obj) {
+ PhotoCachedPixbuf * self;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_CACHED_PIXBUF, PhotoCachedPixbuf);
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_destroy (self);
+#line 301 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->photo);
+#line 302 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->pixbuf);
+#line 303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_timer_destroy0 (self->last_touched);
+#line 32662 "Photo.c"
+}
+
+
+static GType photo_cached_pixbuf_get_type (void) {
+ static volatile gsize photo_cached_pixbuf_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_cached_pixbuf_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { photo_value_cached_pixbuf_init, photo_value_cached_pixbuf_free_value, photo_value_cached_pixbuf_copy_value, photo_value_cached_pixbuf_peek_pointer, "p", photo_value_cached_pixbuf_collect_value, "p", photo_value_cached_pixbuf_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoCachedPixbufClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_cached_pixbuf_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoCachedPixbuf), 0, (GInstanceInitFunc) photo_cached_pixbuf_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_cached_pixbuf_type_id;
+ photo_cached_pixbuf_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoCachedPixbuf", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&photo_cached_pixbuf_type_id__volatile, photo_cached_pixbuf_type_id);
+ }
+ return photo_cached_pixbuf_type_id__volatile;
+}
+
+
+static gpointer photo_cached_pixbuf_ref (gpointer instance) {
+ PhotoCachedPixbuf* self;
+ self = instance;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ return instance;
+#line 32687 "Photo.c"
+}
+
+
+static void photo_cached_pixbuf_unref (gpointer instance) {
+ PhotoCachedPixbuf* self;
+ self = instance;
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_CACHED_PIXBUF_GET_CLASS (self)->finalize (self);
+#line 300 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 32700 "Photo.c"
+ }
+}
+
+
+PhotoReimportMasterState* photo_reimport_master_state_construct (GType object_type) {
+ PhotoReimportMasterState* self = NULL;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoReimportMasterState*) g_type_create_instance (object_type);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 32711 "Photo.c"
+}
+
+
+static void photo_value_reimport_master_state_init (GValue* value) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32718 "Photo.c"
+}
+
+
+static void photo_value_reimport_master_state_free_value (GValue* value) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (value->data[0].v_pointer) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_master_state_unref (value->data[0].v_pointer);
+#line 32727 "Photo.c"
+ }
+}
+
+
+static void photo_value_reimport_master_state_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = photo_reimport_master_state_ref (src_value->data[0].v_pointer);
+#line 32737 "Photo.c"
+ } else {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 32741 "Photo.c"
+ }
+}
+
+
+static gpointer photo_value_reimport_master_state_peek_pointer (const GValue* value) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 32749 "Photo.c"
+}
+
+
+static gchar* photo_value_reimport_master_state_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (collect_values[0].v_pointer) {
+#line 32756 "Photo.c"
+ PhotoReimportMasterState* object;
+ object = collect_values[0].v_pointer;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 32763 "Photo.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 32767 "Photo.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = photo_reimport_master_state_ref (object);
+#line 32771 "Photo.c"
+ } else {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32775 "Photo.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 32779 "Photo.c"
+}
+
+
+static gchar* photo_value_reimport_master_state_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoReimportMasterState** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!object_p) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 32790 "Photo.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!value->data[0].v_pointer) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = NULL;
+#line 32796 "Photo.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = value->data[0].v_pointer;
+#line 32800 "Photo.c"
+ } else {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = photo_reimport_master_state_ref (value->data[0].v_pointer);
+#line 32804 "Photo.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 32808 "Photo.c"
+}
+
+
+GParamSpec* photo_param_spec_reimport_master_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PhotoParamSpecReimportMasterState* spec;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PHOTO_TYPE_REIMPORT_MASTER_STATE), NULL);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return G_PARAM_SPEC (spec);
+#line 32822 "Photo.c"
+}
+
+
+gpointer photo_value_get_reimport_master_state (const GValue* value) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_MASTER_STATE), NULL);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 32831 "Photo.c"
+}
+
+
+void photo_value_set_reimport_master_state (GValue* value, gpointer v_object) {
+ PhotoReimportMasterState* old;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_MASTER_STATE));
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_REIMPORT_MASTER_STATE));
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_master_state_ref (value->data[0].v_pointer);
+#line 32851 "Photo.c"
+ } else {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32855 "Photo.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_master_state_unref (old);
+#line 32861 "Photo.c"
+ }
+}
+
+
+void photo_value_take_reimport_master_state (GValue* value, gpointer v_object) {
+ PhotoReimportMasterState* old;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_MASTER_STATE));
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_REIMPORT_MASTER_STATE));
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 32880 "Photo.c"
+ } else {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 32884 "Photo.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_master_state_unref (old);
+#line 32890 "Photo.c"
+ }
+}
+
+
+static void photo_reimport_master_state_class_init (PhotoReimportMasterStateClass * klass) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_master_state_parent_class = g_type_class_peek_parent (klass);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoReimportMasterStateClass *) klass)->finalize = photo_reimport_master_state_finalize;
+#line 32900 "Photo.c"
+}
+
+
+static void photo_reimport_master_state_instance_init (PhotoReimportMasterState * self) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->ref_count = 1;
+#line 32907 "Photo.c"
+}
+
+
+static void photo_reimport_master_state_finalize (PhotoReimportMasterState* obj) {
+ PhotoReimportMasterState * self;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterState);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_destroy (self);
+#line 32917 "Photo.c"
+}
+
+
+GType photo_reimport_master_state_get_type (void) {
+ static volatile gsize photo_reimport_master_state_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_reimport_master_state_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { photo_value_reimport_master_state_init, photo_value_reimport_master_state_free_value, photo_value_reimport_master_state_copy_value, photo_value_reimport_master_state_peek_pointer, "p", photo_value_reimport_master_state_collect_value, "p", photo_value_reimport_master_state_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoReimportMasterStateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_reimport_master_state_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoReimportMasterState), 0, (GInstanceInitFunc) photo_reimport_master_state_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_reimport_master_state_type_id;
+ photo_reimport_master_state_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoReimportMasterState", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_reimport_master_state_type_id__volatile, photo_reimport_master_state_type_id);
+ }
+ return photo_reimport_master_state_type_id__volatile;
+}
+
+
+gpointer photo_reimport_master_state_ref (gpointer instance) {
+ PhotoReimportMasterState* self;
+ self = instance;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ return instance;
+#line 32942 "Photo.c"
+}
+
+
+void photo_reimport_master_state_unref (gpointer instance) {
+ PhotoReimportMasterState* self;
+ self = instance;
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_REIMPORT_MASTER_STATE_GET_CLASS (self)->finalize (self);
+#line 1348 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 32955 "Photo.c"
+ }
+}
+
+
+static gchar** _vala_array_dup29 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ for (i = 0; i < length; i++) {
+#line 32967 "Photo.c"
+ gchar* _tmp0_ = NULL;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ result[i] = _tmp0_;
+#line 32973 "Photo.c"
+ }
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 32977 "Photo.c"
+}
+
+
+static PhotoReimportMasterStateImpl* photo_reimport_master_state_impl_construct (GType object_type, PhotoRow* row, PhotoMetadata* metadata, gchar** alterations, int alterations_length1) {
+ PhotoReimportMasterStateImpl* self = NULL;
+ PhotoRow* _tmp0_ = NULL;
+ PhotoRow* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 1357 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_ROW (row), NULL);
+#line 1357 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata), NULL);
+#line 1357 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoReimportMasterStateImpl*) photo_reimport_master_state_construct (object_type);
+#line 1358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = row;
+#line 1358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _photo_row_ref0 (_tmp0_);
+#line 1358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (self->row);
+#line 1358 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->row = _tmp1_;
+#line 1359 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 1359 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _media_metadata_ref0 (_tmp2_);
+#line 1359 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (self->metadata);
+#line 1359 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->metadata = _tmp3_;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = alterations;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4__length1 = alterations_length1;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = (_tmp4_ != NULL) ? _vala_array_dup29 (_tmp4_, _tmp4__length1) : ((gpointer) _tmp4_);
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5__length1 = _tmp4__length1;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->alterations = (_vala_array_free (self->alterations, self->alterations_length1, (GDestroyNotify) g_free), NULL);
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->alterations = _tmp5_;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->alterations_length1 = _tmp5__length1;
+#line 1360 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->_alterations_size_ = self->alterations_length1;
+#line 1357 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 33031 "Photo.c"
+}
+
+
+static PhotoReimportMasterStateImpl* photo_reimport_master_state_impl_new (PhotoRow* row, PhotoMetadata* metadata, gchar** alterations, int alterations_length1) {
+#line 1357 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_reimport_master_state_impl_construct (PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL, row, metadata, alterations, alterations_length1);
+#line 33038 "Photo.c"
+}
+
+
+static void photo_reimport_master_state_impl_class_init (PhotoReimportMasterStateImplClass * klass) {
+#line 1351 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_master_state_impl_parent_class = g_type_class_peek_parent (klass);
+#line 1351 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoReimportMasterStateClass *) klass)->finalize = photo_reimport_master_state_impl_finalize;
+#line 33047 "Photo.c"
+}
+
+
+static void photo_reimport_master_state_impl_instance_init (PhotoReimportMasterStateImpl * self) {
+ PhotoRow* _tmp0_ = NULL;
+#line 1352 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_row_new ();
+#line 1352 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->row = _tmp0_;
+#line 1355 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->metadata_only = FALSE;
+#line 33059 "Photo.c"
+}
+
+
+static void photo_reimport_master_state_impl_finalize (PhotoReimportMasterState* obj) {
+ PhotoReimportMasterStateImpl * self;
+#line 1351 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_REIMPORT_MASTER_STATE_IMPL, PhotoReimportMasterStateImpl);
+#line 1352 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (self->row);
+#line 1353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (self->metadata);
+#line 1354 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->alterations = (_vala_array_free (self->alterations, self->alterations_length1, (GDestroyNotify) g_free), NULL);
+#line 1351 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_REIMPORT_MASTER_STATE_CLASS (photo_reimport_master_state_impl_parent_class)->finalize (obj);
+#line 33075 "Photo.c"
+}
+
+
+static GType photo_reimport_master_state_impl_get_type (void) {
+ static volatile gsize photo_reimport_master_state_impl_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_reimport_master_state_impl_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoReimportMasterStateImplClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_reimport_master_state_impl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoReimportMasterStateImpl), 0, (GInstanceInitFunc) photo_reimport_master_state_impl_instance_init, NULL };
+ GType photo_reimport_master_state_impl_type_id;
+ photo_reimport_master_state_impl_type_id = g_type_register_static (PHOTO_TYPE_REIMPORT_MASTER_STATE, "PhotoReimportMasterStateImpl", &g_define_type_info, 0);
+ g_once_init_leave (&photo_reimport_master_state_impl_type_id__volatile, photo_reimport_master_state_impl_type_id);
+ }
+ return photo_reimport_master_state_impl_type_id__volatile;
+}
+
+
+PhotoReimportEditableState* photo_reimport_editable_state_construct (GType object_type) {
+ PhotoReimportEditableState* self = NULL;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoReimportEditableState*) g_type_create_instance (object_type);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 33097 "Photo.c"
+}
+
+
+static void photo_value_reimport_editable_state_init (GValue* value) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33104 "Photo.c"
+}
+
+
+static void photo_value_reimport_editable_state_free_value (GValue* value) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (value->data[0].v_pointer) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_editable_state_unref (value->data[0].v_pointer);
+#line 33113 "Photo.c"
+ }
+}
+
+
+static void photo_value_reimport_editable_state_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = photo_reimport_editable_state_ref (src_value->data[0].v_pointer);
+#line 33123 "Photo.c"
+ } else {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 33127 "Photo.c"
+ }
+}
+
+
+static gpointer photo_value_reimport_editable_state_peek_pointer (const GValue* value) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 33135 "Photo.c"
+}
+
+
+static gchar* photo_value_reimport_editable_state_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (collect_values[0].v_pointer) {
+#line 33142 "Photo.c"
+ PhotoReimportEditableState* object;
+ object = collect_values[0].v_pointer;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 33149 "Photo.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 33153 "Photo.c"
+ }
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = photo_reimport_editable_state_ref (object);
+#line 33157 "Photo.c"
+ } else {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33161 "Photo.c"
+ }
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 33165 "Photo.c"
+}
+
+
+static gchar* photo_value_reimport_editable_state_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoReimportEditableState** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!object_p) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 33176 "Photo.c"
+ }
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!value->data[0].v_pointer) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = NULL;
+#line 33182 "Photo.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = value->data[0].v_pointer;
+#line 33186 "Photo.c"
+ } else {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = photo_reimport_editable_state_ref (value->data[0].v_pointer);
+#line 33190 "Photo.c"
+ }
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 33194 "Photo.c"
+}
+
+
+GParamSpec* photo_param_spec_reimport_editable_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PhotoParamSpecReimportEditableState* spec;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PHOTO_TYPE_REIMPORT_EDITABLE_STATE), NULL);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return G_PARAM_SPEC (spec);
+#line 33208 "Photo.c"
+}
+
+
+gpointer photo_value_get_reimport_editable_state (const GValue* value) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_EDITABLE_STATE), NULL);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 33217 "Photo.c"
+}
+
+
+void photo_value_set_reimport_editable_state (GValue* value, gpointer v_object) {
+ PhotoReimportEditableState* old;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_EDITABLE_STATE));
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_REIMPORT_EDITABLE_STATE));
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_editable_state_ref (value->data[0].v_pointer);
+#line 33237 "Photo.c"
+ } else {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33241 "Photo.c"
+ }
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_editable_state_unref (old);
+#line 33247 "Photo.c"
+ }
+}
+
+
+void photo_value_take_reimport_editable_state (GValue* value, gpointer v_object) {
+ PhotoReimportEditableState* old;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_EDITABLE_STATE));
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_REIMPORT_EDITABLE_STATE));
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 33266 "Photo.c"
+ } else {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33270 "Photo.c"
+ }
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_editable_state_unref (old);
+#line 33276 "Photo.c"
+ }
+}
+
+
+static void photo_reimport_editable_state_class_init (PhotoReimportEditableStateClass * klass) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_editable_state_parent_class = g_type_class_peek_parent (klass);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoReimportEditableStateClass *) klass)->finalize = photo_reimport_editable_state_finalize;
+#line 33286 "Photo.c"
+}
+
+
+static void photo_reimport_editable_state_instance_init (PhotoReimportEditableState * self) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->ref_count = 1;
+#line 33293 "Photo.c"
+}
+
+
+static void photo_reimport_editable_state_finalize (PhotoReimportEditableState* obj) {
+ PhotoReimportEditableState * self;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableState);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_destroy (self);
+#line 33303 "Photo.c"
+}
+
+
+GType photo_reimport_editable_state_get_type (void) {
+ static volatile gsize photo_reimport_editable_state_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_reimport_editable_state_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { photo_value_reimport_editable_state_init, photo_value_reimport_editable_state_free_value, photo_value_reimport_editable_state_copy_value, photo_value_reimport_editable_state_peek_pointer, "p", photo_value_reimport_editable_state_collect_value, "p", photo_value_reimport_editable_state_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoReimportEditableStateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_reimport_editable_state_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoReimportEditableState), 0, (GInstanceInitFunc) photo_reimport_editable_state_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_reimport_editable_state_type_id;
+ photo_reimport_editable_state_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoReimportEditableState", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_reimport_editable_state_type_id__volatile, photo_reimport_editable_state_type_id);
+ }
+ return photo_reimport_editable_state_type_id__volatile;
+}
+
+
+gpointer photo_reimport_editable_state_ref (gpointer instance) {
+ PhotoReimportEditableState* self;
+ self = instance;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ return instance;
+#line 33328 "Photo.c"
+}
+
+
+void photo_reimport_editable_state_unref (gpointer instance) {
+ PhotoReimportEditableState* self;
+ self = instance;
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_REIMPORT_EDITABLE_STATE_GET_CLASS (self)->finalize (self);
+#line 1364 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 33341 "Photo.c"
+ }
+}
+
+
+static PhotoReimportEditableStateImpl* photo_reimport_editable_state_impl_construct (GType object_type, BackingPhotoRow* backing_state, PhotoMetadata* metadata) {
+ PhotoReimportEditableStateImpl* self = NULL;
+ BackingPhotoRow* _tmp0_ = NULL;
+ BackingPhotoRow* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+#line 1372 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_BACKING_PHOTO_ROW (backing_state), NULL);
+#line 1372 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata), NULL);
+#line 1372 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoReimportEditableStateImpl*) photo_reimport_editable_state_construct (object_type);
+#line 1373 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = backing_state;
+#line 1373 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _backing_photo_row_ref0 (_tmp0_);
+#line 1373 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_state);
+#line 1373 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_state = _tmp1_;
+#line 1374 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 1374 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _media_metadata_ref0 (_tmp2_);
+#line 1374 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (self->metadata);
+#line 1374 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->metadata = _tmp3_;
+#line 1372 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 33376 "Photo.c"
+}
+
+
+static PhotoReimportEditableStateImpl* photo_reimport_editable_state_impl_new (BackingPhotoRow* backing_state, PhotoMetadata* metadata) {
+#line 1372 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_reimport_editable_state_impl_construct (PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL, backing_state, metadata);
+#line 33383 "Photo.c"
+}
+
+
+static void photo_reimport_editable_state_impl_class_init (PhotoReimportEditableStateImplClass * klass) {
+#line 1367 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_editable_state_impl_parent_class = g_type_class_peek_parent (klass);
+#line 1367 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoReimportEditableStateClass *) klass)->finalize = photo_reimport_editable_state_impl_finalize;
+#line 33392 "Photo.c"
+}
+
+
+static void photo_reimport_editable_state_impl_instance_init (PhotoReimportEditableStateImpl * self) {
+ BackingPhotoRow* _tmp0_ = NULL;
+#line 1368 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = backing_photo_row_new ();
+#line 1368 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_state = _tmp0_;
+#line 1370 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->metadata_only = FALSE;
+#line 33404 "Photo.c"
+}
+
+
+static void photo_reimport_editable_state_impl_finalize (PhotoReimportEditableState* obj) {
+ PhotoReimportEditableStateImpl * self;
+#line 1367 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_REIMPORT_EDITABLE_STATE_IMPL, PhotoReimportEditableStateImpl);
+#line 1368 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_state);
+#line 1369 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (self->metadata);
+#line 1367 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_REIMPORT_EDITABLE_STATE_CLASS (photo_reimport_editable_state_impl_parent_class)->finalize (obj);
+#line 33418 "Photo.c"
+}
+
+
+static GType photo_reimport_editable_state_impl_get_type (void) {
+ static volatile gsize photo_reimport_editable_state_impl_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_reimport_editable_state_impl_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoReimportEditableStateImplClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_reimport_editable_state_impl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoReimportEditableStateImpl), 0, (GInstanceInitFunc) photo_reimport_editable_state_impl_instance_init, NULL };
+ GType photo_reimport_editable_state_impl_type_id;
+ photo_reimport_editable_state_impl_type_id = g_type_register_static (PHOTO_TYPE_REIMPORT_EDITABLE_STATE, "PhotoReimportEditableStateImpl", &g_define_type_info, 0);
+ g_once_init_leave (&photo_reimport_editable_state_impl_type_id__volatile, photo_reimport_editable_state_impl_type_id);
+ }
+ return photo_reimport_editable_state_impl_type_id__volatile;
+}
+
+
+PhotoReimportRawDevelopmentState* photo_reimport_raw_development_state_construct (GType object_type) {
+ PhotoReimportRawDevelopmentState* self = NULL;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoReimportRawDevelopmentState*) g_type_create_instance (object_type);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 33440 "Photo.c"
+}
+
+
+static void photo_value_reimport_raw_development_state_init (GValue* value) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33447 "Photo.c"
+}
+
+
+static void photo_value_reimport_raw_development_state_free_value (GValue* value) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (value->data[0].v_pointer) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_unref (value->data[0].v_pointer);
+#line 33456 "Photo.c"
+ }
+}
+
+
+static void photo_value_reimport_raw_development_state_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = photo_reimport_raw_development_state_ref (src_value->data[0].v_pointer);
+#line 33466 "Photo.c"
+ } else {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 33470 "Photo.c"
+ }
+}
+
+
+static gpointer photo_value_reimport_raw_development_state_peek_pointer (const GValue* value) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 33478 "Photo.c"
+}
+
+
+static gchar* photo_value_reimport_raw_development_state_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (collect_values[0].v_pointer) {
+#line 33485 "Photo.c"
+ PhotoReimportRawDevelopmentState* object;
+ object = collect_values[0].v_pointer;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 33492 "Photo.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 33496 "Photo.c"
+ }
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = photo_reimport_raw_development_state_ref (object);
+#line 33500 "Photo.c"
+ } else {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33504 "Photo.c"
+ }
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 33508 "Photo.c"
+}
+
+
+static gchar* photo_value_reimport_raw_development_state_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoReimportRawDevelopmentState** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!object_p) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 33519 "Photo.c"
+ }
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!value->data[0].v_pointer) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = NULL;
+#line 33525 "Photo.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = value->data[0].v_pointer;
+#line 33529 "Photo.c"
+ } else {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = photo_reimport_raw_development_state_ref (value->data[0].v_pointer);
+#line 33533 "Photo.c"
+ }
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 33537 "Photo.c"
+}
+
+
+GParamSpec* photo_param_spec_reimport_raw_development_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PhotoParamSpecReimportRawDevelopmentState* spec;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE), NULL);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return G_PARAM_SPEC (spec);
+#line 33551 "Photo.c"
+}
+
+
+gpointer photo_value_get_reimport_raw_development_state (const GValue* value) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE), NULL);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 33560 "Photo.c"
+}
+
+
+void photo_value_set_reimport_raw_development_state (GValue* value, gpointer v_object) {
+ PhotoReimportRawDevelopmentState* old;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE));
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE));
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_ref (value->data[0].v_pointer);
+#line 33580 "Photo.c"
+ } else {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33584 "Photo.c"
+ }
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_unref (old);
+#line 33590 "Photo.c"
+ }
+}
+
+
+void photo_value_take_reimport_raw_development_state (GValue* value, gpointer v_object) {
+ PhotoReimportRawDevelopmentState* old;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE));
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE));
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 33609 "Photo.c"
+ } else {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33613 "Photo.c"
+ }
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_unref (old);
+#line 33619 "Photo.c"
+ }
+}
+
+
+static void photo_reimport_raw_development_state_class_init (PhotoReimportRawDevelopmentStateClass * klass) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_parent_class = g_type_class_peek_parent (klass);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoReimportRawDevelopmentStateClass *) klass)->finalize = photo_reimport_raw_development_state_finalize;
+#line 33629 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_instance_init (PhotoReimportRawDevelopmentState * self) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->ref_count = 1;
+#line 33636 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_finalize (PhotoReimportRawDevelopmentState* obj) {
+ PhotoReimportRawDevelopmentState * self;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentState);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_destroy (self);
+#line 33646 "Photo.c"
+}
+
+
+GType photo_reimport_raw_development_state_get_type (void) {
+ static volatile gsize photo_reimport_raw_development_state_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_reimport_raw_development_state_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { photo_value_reimport_raw_development_state_init, photo_value_reimport_raw_development_state_free_value, photo_value_reimport_raw_development_state_copy_value, photo_value_reimport_raw_development_state_peek_pointer, "p", photo_value_reimport_raw_development_state_collect_value, "p", photo_value_reimport_raw_development_state_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoReimportRawDevelopmentStateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_reimport_raw_development_state_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoReimportRawDevelopmentState), 0, (GInstanceInitFunc) photo_reimport_raw_development_state_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_reimport_raw_development_state_type_id;
+ photo_reimport_raw_development_state_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoReimportRawDevelopmentState", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_reimport_raw_development_state_type_id__volatile, photo_reimport_raw_development_state_type_id);
+ }
+ return photo_reimport_raw_development_state_type_id__volatile;
+}
+
+
+gpointer photo_reimport_raw_development_state_ref (gpointer instance) {
+ PhotoReimportRawDevelopmentState* self;
+ self = instance;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ return instance;
+#line 33671 "Photo.c"
+}
+
+
+void photo_reimport_raw_development_state_unref (gpointer instance) {
+ PhotoReimportRawDevelopmentState* self;
+ self = instance;
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_GET_CLASS (self)->finalize (self);
+#line 1378 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 33684 "Photo.c"
+ }
+}
+
+
+static PhotoReimportRawDevelopmentStateImpl* photo_reimport_raw_development_state_impl_construct (GType object_type) {
+ PhotoReimportRawDevelopmentStateImpl* self = NULL;
+#line 1395 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoReimportRawDevelopmentStateImpl*) photo_reimport_raw_development_state_construct (object_type);
+#line 1395 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 33695 "Photo.c"
+}
+
+
+static PhotoReimportRawDevelopmentStateImpl* photo_reimport_raw_development_state_impl_new (void) {
+#line 1395 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_reimport_raw_development_state_impl_construct (PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL);
+#line 33702 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_add (PhotoReimportRawDevelopmentStateImpl* self, BackingPhotoRow* backing, PhotoMetadata* metadata) {
+ GeeCollection* _tmp0_ = NULL;
+ BackingPhotoRow* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ PhotoReimportRawDevelopmentStateImplDevToReimport* _tmp3_ = NULL;
+ PhotoReimportRawDevelopmentStateImplDevToReimport* _tmp4_ = NULL;
+#line 1398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL (self));
+#line 1398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_ROW (backing));
+#line 1398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 1399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->list;
+#line 1399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = backing;
+#line 1399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 1399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_reimport_raw_development_state_impl_dev_to_reimport_new (_tmp1_, _tmp2_);
+#line 1399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 1399 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_collection_add (_tmp0_, _tmp4_);
+#line 1399 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_reimport_raw_development_state_impl_dev_to_reimport_unref0 (_tmp4_);
+#line 33732 "Photo.c"
+}
+
+
+static gint photo_reimport_raw_development_state_impl_get_size (PhotoReimportRawDevelopmentStateImpl* self) {
+ gint result = 0;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1402 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL (self), 0);
+#line 1403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->list;
+#line 1403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 1403 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 1403 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 1403 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 33753 "Photo.c"
+}
+
+
+static PhotoReimportRawDevelopmentStateImplDevToReimport* photo_reimport_raw_development_state_impl_dev_to_reimport_construct (GType object_type, BackingPhotoRow* backing, PhotoMetadata* metadata) {
+ PhotoReimportRawDevelopmentStateImplDevToReimport* self = NULL;
+ BackingPhotoRow* _tmp0_ = NULL;
+ BackingPhotoRow* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+#line 1386 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_BACKING_PHOTO_ROW (backing), NULL);
+#line 1386 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata), NULL);
+#line 1386 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (PhotoReimportRawDevelopmentStateImplDevToReimport*) g_type_create_instance (object_type);
+#line 1387 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = backing;
+#line 1387 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _backing_photo_row_ref0 (_tmp0_);
+#line 1387 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing);
+#line 1387 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing = _tmp1_;
+#line 1388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 1388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _media_metadata_ref0 (_tmp2_);
+#line 1388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (self->metadata);
+#line 1388 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->metadata = _tmp3_;
+#line 1386 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 33787 "Photo.c"
+}
+
+
+static PhotoReimportRawDevelopmentStateImplDevToReimport* photo_reimport_raw_development_state_impl_dev_to_reimport_new (BackingPhotoRow* backing, PhotoMetadata* metadata) {
+#line 1386 "/home/jens/Source/shotwell/src/Photo.vala"
+ return photo_reimport_raw_development_state_impl_dev_to_reimport_construct (PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT, backing, metadata);
+#line 33794 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_value_dev_to_reimport_init (GValue* value) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33801 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_value_dev_to_reimport_free_value (GValue* value) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (value->data[0].v_pointer) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_impl_dev_to_reimport_unref (value->data[0].v_pointer);
+#line 33810 "Photo.c"
+ }
+}
+
+
+static void photo_reimport_raw_development_state_impl_value_dev_to_reimport_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = photo_reimport_raw_development_state_impl_dev_to_reimport_ref (src_value->data[0].v_pointer);
+#line 33820 "Photo.c"
+ } else {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 33824 "Photo.c"
+ }
+}
+
+
+static gpointer photo_reimport_raw_development_state_impl_value_dev_to_reimport_peek_pointer (const GValue* value) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 33832 "Photo.c"
+}
+
+
+static gchar* photo_reimport_raw_development_state_impl_value_dev_to_reimport_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (collect_values[0].v_pointer) {
+#line 33839 "Photo.c"
+ PhotoReimportRawDevelopmentStateImplDevToReimport* object;
+ object = collect_values[0].v_pointer;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 33846 "Photo.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 33850 "Photo.c"
+ }
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = photo_reimport_raw_development_state_impl_dev_to_reimport_ref (object);
+#line 33854 "Photo.c"
+ } else {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33858 "Photo.c"
+ }
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 33862 "Photo.c"
+}
+
+
+static gchar* photo_reimport_raw_development_state_impl_value_dev_to_reimport_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoReimportRawDevelopmentStateImplDevToReimport** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!object_p) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 33873 "Photo.c"
+ }
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!value->data[0].v_pointer) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = NULL;
+#line 33879 "Photo.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = value->data[0].v_pointer;
+#line 33883 "Photo.c"
+ } else {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ *object_p = photo_reimport_raw_development_state_impl_dev_to_reimport_ref (value->data[0].v_pointer);
+#line 33887 "Photo.c"
+ }
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 33891 "Photo.c"
+}
+
+
+static GParamSpec* photo_reimport_raw_development_state_impl_param_spec_dev_to_reimport (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PhotoReimportRawDevelopmentStateImplParamSpecDevToReimport* spec;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT), NULL);
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return G_PARAM_SPEC (spec);
+#line 33905 "Photo.c"
+}
+
+
+static gpointer photo_reimport_raw_development_state_impl_value_get_dev_to_reimport (const GValue* value) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT), NULL);
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return value->data[0].v_pointer;
+#line 33914 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_value_set_dev_to_reimport (GValue* value, gpointer v_object) {
+ PhotoReimportRawDevelopmentStateImplDevToReimport* old;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT));
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT));
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_impl_dev_to_reimport_ref (value->data[0].v_pointer);
+#line 33934 "Photo.c"
+ } else {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33938 "Photo.c"
+ }
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_impl_dev_to_reimport_unref (old);
+#line 33944 "Photo.c"
+ }
+}
+
+
+static void photo_reimport_raw_development_state_impl_value_take_dev_to_reimport (GValue* value, gpointer v_object) {
+ PhotoReimportRawDevelopmentStateImplDevToReimport* old;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT));
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ old = value->data[0].v_pointer;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (v_object) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT));
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = v_object;
+#line 33963 "Photo.c"
+ } else {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ value->data[0].v_pointer = NULL;
+#line 33967 "Photo.c"
+ }
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (old) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_impl_dev_to_reimport_unref (old);
+#line 33973 "Photo.c"
+ }
+}
+
+
+static void photo_reimport_raw_development_state_impl_dev_to_reimport_class_init (PhotoReimportRawDevelopmentStateImplDevToReimportClass * klass) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_impl_dev_to_reimport_parent_class = g_type_class_peek_parent (klass);
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoReimportRawDevelopmentStateImplDevToReimportClass *) klass)->finalize = photo_reimport_raw_development_state_impl_dev_to_reimport_finalize;
+#line 33983 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_dev_to_reimport_instance_init (PhotoReimportRawDevelopmentStateImplDevToReimport * self) {
+ BackingPhotoRow* _tmp0_ = NULL;
+#line 1383 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = backing_photo_row_new ();
+#line 1383 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing = _tmp0_;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->ref_count = 1;
+#line 33995 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_dev_to_reimport_finalize (PhotoReimportRawDevelopmentStateImplDevToReimport* obj) {
+ PhotoReimportRawDevelopmentStateImplDevToReimport * self;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT, PhotoReimportRawDevelopmentStateImplDevToReimport);
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_destroy (self);
+#line 1383 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing);
+#line 1384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (self->metadata);
+#line 34009 "Photo.c"
+}
+
+
+GType photo_reimport_raw_development_state_impl_dev_to_reimport_get_type (void) {
+ static volatile gsize photo_reimport_raw_development_state_impl_dev_to_reimport_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_reimport_raw_development_state_impl_dev_to_reimport_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { photo_reimport_raw_development_state_impl_value_dev_to_reimport_init, photo_reimport_raw_development_state_impl_value_dev_to_reimport_free_value, photo_reimport_raw_development_state_impl_value_dev_to_reimport_copy_value, photo_reimport_raw_development_state_impl_value_dev_to_reimport_peek_pointer, "p", photo_reimport_raw_development_state_impl_value_dev_to_reimport_collect_value, "p", photo_reimport_raw_development_state_impl_value_dev_to_reimport_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoReimportRawDevelopmentStateImplDevToReimportClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_reimport_raw_development_state_impl_dev_to_reimport_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoReimportRawDevelopmentStateImplDevToReimport), 0, (GInstanceInitFunc) photo_reimport_raw_development_state_impl_dev_to_reimport_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_reimport_raw_development_state_impl_dev_to_reimport_type_id;
+ photo_reimport_raw_development_state_impl_dev_to_reimport_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoReimportRawDevelopmentStateImplDevToReimport", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&photo_reimport_raw_development_state_impl_dev_to_reimport_type_id__volatile, photo_reimport_raw_development_state_impl_dev_to_reimport_type_id);
+ }
+ return photo_reimport_raw_development_state_impl_dev_to_reimport_type_id__volatile;
+}
+
+
+static gpointer photo_reimport_raw_development_state_impl_dev_to_reimport_ref (gpointer instance) {
+ PhotoReimportRawDevelopmentStateImplDevToReimport* self;
+ self = instance;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ return instance;
+#line 34034 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_dev_to_reimport_unref (gpointer instance) {
+ PhotoReimportRawDevelopmentStateImplDevToReimport* self;
+ self = instance;
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_DEV_TO_REIMPORT_GET_CLASS (self)->finalize (self);
+#line 1382 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 34047 "Photo.c"
+ }
+}
+
+
+static void photo_reimport_raw_development_state_impl_class_init (PhotoReimportRawDevelopmentStateImplClass * klass) {
+#line 1381 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_reimport_raw_development_state_impl_parent_class = g_type_class_peek_parent (klass);
+#line 1381 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoReimportRawDevelopmentStateClass *) klass)->finalize = photo_reimport_raw_development_state_impl_finalize;
+#line 34057 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_instance_init (PhotoReimportRawDevelopmentStateImpl * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 1392 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = gee_array_list_new (PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL_TYPE_DEV_TO_REIMPORT, (GBoxedCopyFunc) photo_reimport_raw_development_state_impl_dev_to_reimport_ref, photo_reimport_raw_development_state_impl_dev_to_reimport_unref, NULL, NULL, NULL);
+#line 1392 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->list = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1393 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->metadata_only = FALSE;
+#line 34069 "Photo.c"
+}
+
+
+static void photo_reimport_raw_development_state_impl_finalize (PhotoReimportRawDevelopmentState* obj) {
+ PhotoReimportRawDevelopmentStateImpl * self;
+#line 1381 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE_IMPL, PhotoReimportRawDevelopmentStateImpl);
+#line 1392 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->list);
+#line 1381 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_CLASS (photo_reimport_raw_development_state_impl_parent_class)->finalize (obj);
+#line 34081 "Photo.c"
+}
+
+
+static GType photo_reimport_raw_development_state_impl_get_type (void) {
+ static volatile gsize photo_reimport_raw_development_state_impl_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_reimport_raw_development_state_impl_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoReimportRawDevelopmentStateImplClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_reimport_raw_development_state_impl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoReimportRawDevelopmentStateImpl), 0, (GInstanceInitFunc) photo_reimport_raw_development_state_impl_instance_init, NULL };
+ GType photo_reimport_raw_development_state_impl_type_id;
+ photo_reimport_raw_development_state_impl_type_id = g_type_register_static (PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, "PhotoReimportRawDevelopmentStateImpl", &g_define_type_info, 0);
+ g_once_init_leave (&photo_reimport_raw_development_state_impl_type_id__volatile, photo_reimport_raw_development_state_impl_type_id);
+ }
+ return photo_reimport_raw_development_state_impl_type_id__volatile;
+}
+
+
+static void photo_class_init (PhotoClass * klass) {
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_parent_class = g_type_class_peek_parent (klass);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_class_add_private (klass, sizeof (PhotoPrivate));
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_editable_replaced = photo_real_notify_editable_replaced;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_raw_development_modified = photo_real_notify_raw_development_modified;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_baseline_replaced = photo_real_notify_baseline_replaced;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_master_reimported = photo_real_notify_master_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_editable_reimported = photo_real_notify_editable_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_source_reimported = photo_real_notify_source_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_baseline_reimported = photo_real_notify_baseline_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->internal_delete_backing = photo_real_internal_delete_backing;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_backing_files_state = photo_real_get_backing_files_state;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->apply_user_metadata_for_reimport = photo_real_apply_user_metadata_for_reimport;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->get_typename = photo_real_get_typename;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->get_instance_id = photo_real_get_instance_id;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->get_source_id = photo_real_get_source_id;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((ThumbnailSourceClass *) klass)->get_preferred_thumbnail_format = photo_real_get_preferred_thumbnail_format;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((ThumbnailSourceClass *) klass)->create_thumbnail = photo_real_create_thumbnail;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_file = photo_real_get_file;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_master_file = photo_real_get_master_file;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_timestamp = photo_real_get_timestamp;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_event_id = photo_real_get_event_id;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_import_id = photo_real_get_import_id;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_master_md5 = photo_real_get_master_md5;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_rating = photo_real_get_rating;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->set_rating = photo_real_set_rating;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->increase_rating = photo_real_increase_rating;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->decrease_rating = photo_real_decrease_rating;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->commit_backlinks = photo_real_commit_backlinks;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->set_event_id = photo_real_set_event_id;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataObjectClass *) klass)->to_string = photo_real_to_string;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->equals = photo_real_equals;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_filesize = photo_real_get_filesize;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_master_filesize = photo_real_get_master_filesize;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_exposure_time = photo_real_get_exposure_time;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_basename = photo_real_get_basename;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_title = photo_real_get_title;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_comment = photo_real_get_comment;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->set_title = photo_real_set_title;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->set_comment = photo_real_set_comment;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_dimensions = photo_real_get_dimensions;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoSourceClass *) klass)->get_metadata = photo_real_get_metadata;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->rotate = photo_real_rotate;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoSourceClass *) klass)->get_pixbuf = photo_real_get_pixbuf;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->has_user_generated_metadata = photo_real_has_user_generated_metadata;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->set_user_metadata_for_export = photo_real_set_user_metadata_for_export;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->editable_replaced = photo_real_editable_replaced;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->raw_development_modified = photo_real_raw_development_modified;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->baseline_replaced = photo_real_baseline_replaced;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->master_reimported = photo_real_master_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->editable_reimported = photo_real_editable_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->baseline_reimported = photo_real_baseline_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->source_reimported = photo_real_source_reimported;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_photo_get_property;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_photo_set_property;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (klass)->finalize = photo_finalize;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("editable_replaced", TYPE_PHOTO, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoClass, editable_replaced), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, G_TYPE_FILE, G_TYPE_FILE);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("raw_development_modified", TYPE_PHOTO, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoClass, raw_development_modified), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("baseline_replaced", TYPE_PHOTO, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoClass, baseline_replaced), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("master_reimported", TYPE_PHOTO, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoClass, master_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__MEDIA_METADATA, G_TYPE_NONE, 1, TYPE_PHOTO_METADATA);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("editable_reimported", TYPE_PHOTO, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoClass, editable_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__MEDIA_METADATA, G_TYPE_NONE, 1, TYPE_PHOTO_METADATA);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("baseline_reimported", TYPE_PHOTO, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoClass, baseline_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__MEDIA_METADATA, G_TYPE_NONE, 1, TYPE_PHOTO_METADATA);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("source_reimported", TYPE_PHOTO, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PhotoClass, source_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__MEDIA_METADATA, G_TYPE_NONE, 1, TYPE_PHOTO_METADATA);
+#line 326 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_init (&__lock_photo_source_pixbuf_cache);
+#line 34224 "Photo.c"
+}
+
+
+static void photo_dateable_interface_init (DateableIface * iface) {
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_dateable_parent_iface = g_type_interface_peek_parent (iface);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->get_exposure_time = (time_t (*)(Dateable*)) photo_real_get_exposure_time;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->set_exposure_time = (void (*)(Dateable*, time_t)) photo_real_set_exposure_time;
+#line 34235 "Photo.c"
+}
+
+
+static void photo_instance_init (Photo * self) {
+ BackingPhotoRow* _tmp0_ = NULL;
+ PhotoBackingReaders* _tmp1_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv = PHOTO_GET_PRIVATE (self);
+#line 331 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_init (&self->priv->__lock_row);
+#line 332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = backing_photo_row_new ();
+#line 332 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable = _tmp0_;
+#line 333 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_init (&self->priv->__lock_readers);
+#line 333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_backing_readers_new ();
+#line 333 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->readers = _tmp1_;
+#line 334 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->transformer = NULL;
+#line 335 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->adjustments = NULL;
+#line 337 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->file_title = NULL;
+#line 338 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable_monitor = NULL;
+#line 339 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->reimport_editable_scheduler = NULL;
+#line 340 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->update_editable_attributes_scheduler = NULL;
+#line 341 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->remove_editable_scheduler = NULL;
+#line 343 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->can_rotate_now = TRUE;
+#line 346 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_init (&self->priv->__lock_developments);
+#line 346 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->developments = NULL;
+#line 353 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->backing_photo_row = NULL;
+#line 34278 "Photo.c"
+}
+
+
+static void photo_finalize (GObject* obj) {
+ Photo * self;
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO, Photo);
+#line 331 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_clear (&self->priv->__lock_row);
+#line 331 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (self->row);
+#line 332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->priv->editable);
+#line 333 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_clear (&self->priv->__lock_readers);
+#line 333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_backing_readers_unref0 (self->priv->readers);
+#line 334 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 335 "/home/jens/Source/shotwell/src/Photo.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->adjustments);
+#line 337 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (self->priv->file_title);
+#line 338 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->editable_monitor);
+#line 339 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->reimport_editable_scheduler);
+#line 340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->update_editable_attributes_scheduler);
+#line 341 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->remove_editable_scheduler);
+#line 346 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_rec_mutex_clear (&self->priv->__lock_developments);
+#line 346 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->developments);
+#line 353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (self->backing_photo_row);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (photo_parent_class)->finalize (obj);
+#line 34318 "Photo.c"
+}
+
+
+GType photo_get_type (void) {
+ static volatile gsize photo_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Photo), 0, (GInstanceInitFunc) photo_instance_init, NULL };
+ static const GInterfaceInfo dateable_info = { (GInterfaceInitFunc) photo_dateable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType photo_type_id;
+ photo_type_id = g_type_register_static (TYPE_PHOTO_SOURCE, "Photo", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_type_add_interface_static (photo_type_id, TYPE_DATEABLE, &dateable_info);
+ g_once_init_leave (&photo_type_id__volatile, photo_type_id);
+ }
+ return photo_type_id__volatile;
+}
+
+
+static void _vala_photo_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ Photo * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_PHOTO, Photo);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (property_id) {
+#line 34341 "Photo.c"
+ default:
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 34347 "Photo.c"
+ }
+}
+
+
+static void _vala_photo_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ Photo * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_PHOTO, Photo);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ switch (property_id) {
+#line 34357 "Photo.c"
+ default:
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 161 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 34363 "Photo.c"
+ }
+}
+
+
+GType library_photo_source_collection_state_get_type (void) {
+ static volatile gsize library_photo_source_collection_state_type_id__volatile = 0;
+ if (g_once_init_enter (&library_photo_source_collection_state_type_id__volatile)) {
+ static const GEnumValue values[] = {{LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_UNKNOWN, "LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_UNKNOWN", "unknown"}, {LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE, "LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE", "online"}, {LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE, "LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE", "offline"}, {LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH, "LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH", "trash"}, {LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE, "LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE", "editable"}, {LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER, "LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER", "developer"}, {0, NULL, NULL}};
+ GType library_photo_source_collection_state_type_id;
+ library_photo_source_collection_state_type_id = g_enum_register_static ("LibraryPhotoSourceCollectionState", values);
+ g_once_init_leave (&library_photo_source_collection_state_type_id__volatile, library_photo_source_collection_state_type_id);
+ }
+ return library_photo_source_collection_state_type_id__volatile;
+}
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 4462 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34385 "Photo.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 4462 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34394 "Photo.c"
+}
+
+
+static gint _int64_compare_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = int64_compare ((gint64*) a, (gint64*) b);
+#line 4466 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34403 "Photo.c"
+}
+
+
+static gint64* _int64_dup (gint64* self) {
+ gint64* dup;
+#line 4466 "/home/jens/Source/shotwell/src/Photo.vala"
+ dup = g_new0 (gint64, 1);
+#line 4466 "/home/jens/Source/shotwell/src/Photo.vala"
+ memcpy (dup, self, sizeof (gint64));
+#line 4466 "/home/jens/Source/shotwell/src/Photo.vala"
+ return dup;
+#line 34415 "Photo.c"
+}
+
+
+static gboolean _int64_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = int64_equal ((gint64*) a, (gint64*) b);
+#line 4468 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34424 "Photo.c"
+}
+
+
+static gint64 _photo_get_photo_key_get_source_database_key (DataSource* source, gpointer self) {
+ gint64 result;
+ result = photo_get_photo_key (source);
+#line 4488 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34433 "Photo.c"
+}
+
+
+static void _library_photo_source_collection_on_trashcan_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 4490 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_on_trashcan_contents_altered ((LibraryPhotoSourceCollection*) self, added, removed);
+#line 34440 "Photo.c"
+}
+
+
+static void _library_photo_source_collection_on_offline_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 4491 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_on_offline_contents_altered ((LibraryPhotoSourceCollection*) self, added, removed);
+#line 34447 "Photo.c"
+}
+
+
+LibraryPhotoSourceCollection* library_photo_source_collection_construct (GType object_type) {
+ LibraryPhotoSourceCollection* self = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ MediaSourceHoldingTank* _tmp2_ = NULL;
+ MediaSourceHoldingTank* _tmp3_ = NULL;
+#line 4488 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (LibraryPhotoSourceCollection*) media_source_collection_construct (object_type, "LibraryPhotoSourceCollection", _photo_get_photo_key_get_source_database_key, NULL);
+#line 4490 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4490 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4490 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), "contents-altered", (GCallback) _library_photo_source_collection_on_trashcan_contents_altered_source_holding_tank_contents_altered, self);
+#line 4490 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 4491 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4491 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 4491 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), "contents-altered", (GCallback) _library_photo_source_collection_on_offline_contents_altered_source_holding_tank_contents_altered, self);
+#line 4491 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp3_);
+#line 4487 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 34477 "Photo.c"
+}
+
+
+LibraryPhotoSourceCollection* library_photo_source_collection_new (void) {
+#line 4487 "/home/jens/Source/shotwell/src/Photo.vala"
+ return library_photo_source_collection_construct (TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION);
+#line 34484 "Photo.c"
+}
+
+
+static gboolean _library_photo_source_collection_check_if_trashed_photo_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = library_photo_source_collection_check_if_trashed_photo ((LibraryPhotoSourceCollection*) self, source, alteration);
+#line 4495 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34493 "Photo.c"
+}
+
+
+static MediaSourceHoldingTank* library_photo_source_collection_real_create_trashcan (MediaSourceCollection* base) {
+ LibraryPhotoSourceCollection * self;
+ MediaSourceHoldingTank* result = NULL;
+ LibraryPhotoSourceHoldingTank* _tmp0_ = NULL;
+#line 4494 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4495 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = library_photo_source_holding_tank_new (self, _library_photo_source_collection_check_if_trashed_photo_source_holding_tank_check_to_keep, self, _photo_get_photo_key_get_source_database_key, NULL);
+#line 4495 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank);
+#line 4495 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34509 "Photo.c"
+}
+
+
+static gboolean _library_photo_source_collection_check_if_offline_photo_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = library_photo_source_collection_check_if_offline_photo ((LibraryPhotoSourceCollection*) self, source, alteration);
+#line 4499 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34518 "Photo.c"
+}
+
+
+static MediaSourceHoldingTank* library_photo_source_collection_real_create_offline_bin (MediaSourceCollection* base) {
+ LibraryPhotoSourceCollection * self;
+ MediaSourceHoldingTank* result = NULL;
+ LibraryPhotoSourceHoldingTank* _tmp0_ = NULL;
+#line 4498 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4499 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = library_photo_source_holding_tank_new (self, _library_photo_source_collection_check_if_offline_photo_source_holding_tank_check_to_keep, self, _photo_get_photo_key_get_source_database_key, NULL);
+#line 4499 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank);
+#line 4499 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34534 "Photo.c"
+}
+
+
+static MediaMonitor* library_photo_source_collection_real_create_media_monitor (MediaSourceCollection* base, Workers* workers, GCancellable* cancellable) {
+ LibraryPhotoSourceCollection * self;
+ MediaMonitor* result = NULL;
+ Workers* _tmp0_ = NULL;
+ GCancellable* _tmp1_ = NULL;
+ PhotoMonitor* _tmp2_ = NULL;
+#line 4502 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4502 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_WORKERS (workers), NULL);
+#line 4502 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 4503 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = workers;
+#line 4503 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = cancellable;
+#line 4503 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_monitor_new (_tmp0_, _tmp1_);
+#line 4503 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_MONITOR, MediaMonitor);
+#line 4503 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34560 "Photo.c"
+}
+
+
+static gboolean library_photo_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) {
+ LibraryPhotoSourceCollection * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 4506 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4506 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 4507 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = source;
+#line 4507 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO);
+#line 4507 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34578 "Photo.c"
+}
+
+
+static gchar* library_photo_source_collection_real_get_typename (MediaSourceCollection* base) {
+ LibraryPhotoSourceCollection * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 4510 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4511 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = g_strdup (PHOTO_TYPENAME);
+#line 4511 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 4511 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34594 "Photo.c"
+}
+
+
+static gboolean library_photo_source_collection_real_is_file_recognized (MediaSourceCollection* base, GFile* file) {
+ LibraryPhotoSourceCollection * self;
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 4514 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4514 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 4515 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 4515 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_file_format_is_file_supported (_tmp0_);
+#line 4515 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 4515 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 34615 "Photo.c"
+}
+
+
+static void _library_photo_source_collection_on_editable_replaced_photo_editable_replaced (Photo* _sender, GFile* old_file, GFile* new_file, gpointer self) {
+#line 4527 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_on_editable_replaced ((LibraryPhotoSourceCollection*) self, _sender, old_file, new_file);
+#line 34622 "Photo.c"
+}
+
+
+static void _library_photo_source_collection_on_raw_development_modified_photo_raw_development_modified (Photo* _sender, gpointer self) {
+#line 4533 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_on_raw_development_modified ((LibraryPhotoSourceCollection*) self, _sender);
+#line 34629 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed) {
+ LibraryPhotoSourceCollection * self;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp75_ = NULL;
+ GeeIterable* _tmp153_ = NULL;
+ GeeIterable* _tmp154_ = NULL;
+#line 4518 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4518 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 4518 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 4520 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = added;
+#line 4520 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != NULL) {
+#line 34649 "Photo.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = added;
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _object_it = _tmp2_;
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 34662 "Photo.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataObject* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ GFile* editable = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ LibraryPhoto* _tmp15_ = NULL;
+ GeeCollection* raw_list = NULL;
+ LibraryPhoto* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ LibraryPhoto* _tmp28_ = NULL;
+ gint64 master_filesize = 0LL;
+ LibraryPhoto* _tmp29_ = NULL;
+ BackingPhotoRow* _tmp30_ = NULL;
+ BackingPhotoRow* _tmp31_ = NULL;
+ gint64 _tmp32_ = 0LL;
+ gint64 _tmp33_ = 0LL;
+ gint64 _tmp34_ = 0LL;
+ LibraryPhoto* _tmp35_ = NULL;
+ BackingPhotoRow* _tmp36_ = NULL;
+ BackingPhotoRow* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ gint64 editable_filesize = 0LL;
+ GeeMultiMap* _tmp43_ = NULL;
+ gint64 _tmp44_ = 0LL;
+ LibraryPhoto* _tmp45_ = NULL;
+ GeeHashMap* _tmp46_ = NULL;
+ LibraryPhoto* _tmp47_ = NULL;
+ gint64 _tmp48_ = 0LL;
+ gint64 _tmp49_ = 0LL;
+ GeeCollection* raw_rows = NULL;
+ LibraryPhoto* _tmp56_ = NULL;
+ GeeCollection* _tmp57_ = NULL;
+ GeeCollection* _tmp58_ = NULL;
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _object_it;
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp4_) {
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 34712 "Photo.c"
+ }
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _object_it;
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ object = (DataObject*) _tmp6_;
+#line 4522 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = object;
+#line 4522 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 4522 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp8_;
+#line 4524 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo;
+#line 4524 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PHOTO, Photo));
+#line 4524 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable = _tmp10_;
+#line 4525 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = editable;
+#line 4525 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_ != NULL) {
+#line 34736 "Photo.c"
+ GeeHashMap* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+#line 4526 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = self->priv->by_editable_file;
+#line 4526 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = editable;
+#line 4526 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = photo;
+#line 4526 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_, _tmp14_);
+#line 34748 "Photo.c"
+ }
+#line 4527 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo;
+#line 4527 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PHOTO, Photo), "editable-replaced", (GCallback) _library_photo_source_collection_on_editable_replaced_photo_editable_replaced, self);
+#line 4529 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo;
+#line 4529 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PHOTO, Photo));
+#line 4529 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_list = _tmp17_;
+#line 4530 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = raw_list;
+#line 4530 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp18_ != NULL) {
+#line 34764 "Photo.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = raw_list;
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp20_;
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 34777 "Photo.c"
+ GeeIterator* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ GeeHashMap* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ LibraryPhoto* _tmp27_ = NULL;
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _f_it;
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = gee_iterator_next (_tmp21_);
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp22_) {
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 34794 "Photo.c"
+ }
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = _f_it;
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = gee_iterator_get (_tmp23_);
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp24_;
+#line 4532 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = self->priv->by_raw_development_file;
+#line 4532 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = f;
+#line 4532 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = photo;
+#line 4532 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp26_, _tmp27_);
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 34812 "Photo.c"
+ }
+#line 4531 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 34816 "Photo.c"
+ }
+ }
+#line 4533 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = photo;
+#line 4533 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_PHOTO, Photo), "raw-development-modified", (GCallback) _library_photo_source_collection_on_raw_development_modified_photo_raw_development_modified, self);
+#line 4535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = photo;
+#line 4535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = photo_get_master_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_PHOTO, Photo));
+#line 4535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_;
+#line 4535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _tmp31_->filesize;
+#line 4535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_;
+#line 4535 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp31_);
+#line 4535 "/home/jens/Source/shotwell/src/Photo.vala"
+ master_filesize = _tmp33_;
+#line 4536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo;
+#line 4536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_PHOTO, Photo));
+#line 4536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_;
+#line 4536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tmp37_ != NULL;
+#line 4536 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp37_);
+#line 4536 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp38_) {
+#line 34849 "Photo.c"
+ LibraryPhoto* _tmp39_ = NULL;
+ BackingPhotoRow* _tmp40_ = NULL;
+ BackingPhotoRow* _tmp41_ = NULL;
+ gint64 _tmp42_ = 0LL;
+#line 4537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = photo;
+#line 4537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_PHOTO, Photo));
+#line 4537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = _tmp40_;
+#line 4537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_->filesize;
+#line 4537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = _tmp42_;
+#line 4537 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp41_);
+#line 34866 "Photo.c"
+ } else {
+#line 4538 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = (gint64) -1;
+#line 34870 "Photo.c"
+ }
+#line 4536 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_filesize = _tmp34_;
+#line 4539 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = self->priv->filesize_to_photo;
+#line 4539 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = master_filesize;
+#line 4539 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = photo;
+#line 4539 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp43_, &_tmp44_, _tmp45_);
+#line 4540 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = self->priv->photo_to_master_filesize;
+#line 4540 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = photo;
+#line 4540 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = master_filesize;
+#line 4540 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp47_, &_tmp48_);
+#line 4541 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = editable_filesize;
+#line 4541 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp49_ >= ((gint64) 0)) {
+#line 34894 "Photo.c"
+ GeeMultiMap* _tmp50_ = NULL;
+ gint64 _tmp51_ = 0LL;
+ LibraryPhoto* _tmp52_ = NULL;
+ GeeHashMap* _tmp53_ = NULL;
+ LibraryPhoto* _tmp54_ = NULL;
+ gint64 _tmp55_ = 0LL;
+#line 4542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = self->priv->filesize_to_photo;
+#line 4542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = editable_filesize;
+#line 4542 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = photo;
+#line 4542 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp50_, &_tmp51_, _tmp52_);
+#line 4543 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = self->priv->photo_to_editable_filesize;
+#line 4543 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = photo;
+#line 4543 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = editable_filesize;
+#line 4543 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp54_, &_tmp55_);
+#line 34917 "Photo.c"
+ }
+#line 4546 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = photo;
+#line 4546 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = photo_get_raw_development_photo_rows (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_PHOTO, Photo));
+#line 4546 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_rows = _tmp57_;
+#line 4547 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = raw_rows;
+#line 4547 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp58_ != NULL) {
+#line 34929 "Photo.c"
+ {
+ GeeIterator* _row_it = NULL;
+ GeeCollection* _tmp59_ = NULL;
+ GeeIterator* _tmp60_ = NULL;
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = raw_rows;
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _row_it = _tmp60_;
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 34942 "Photo.c"
+ GeeIterator* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ BackingPhotoRow* row = NULL;
+ GeeIterator* _tmp63_ = NULL;
+ gpointer _tmp64_ = NULL;
+ BackingPhotoRow* _tmp65_ = NULL;
+ gint64 _tmp66_ = 0LL;
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = _row_it;
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = gee_iterator_next (_tmp61_);
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp62_) {
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 34958 "Photo.c"
+ }
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = _row_it;
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = gee_iterator_get (_tmp63_);
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ row = (BackingPhotoRow*) _tmp64_;
+#line 4549 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = row;
+#line 4549 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = _tmp65_->filesize;
+#line 4549 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp66_ >= ((gint64) 0)) {
+#line 34972 "Photo.c"
+ GeeMultiMap* _tmp67_ = NULL;
+ BackingPhotoRow* _tmp68_ = NULL;
+ gint64 _tmp69_ = 0LL;
+ LibraryPhoto* _tmp70_ = NULL;
+ GeeMultiMap* _tmp71_ = NULL;
+ LibraryPhoto* _tmp72_ = NULL;
+ BackingPhotoRow* _tmp73_ = NULL;
+ gint64 _tmp74_ = 0LL;
+#line 4550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = self->priv->filesize_to_photo;
+#line 4550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = row;
+#line 4550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = _tmp68_->filesize;
+#line 4550 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = photo;
+#line 4550 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp67_, &_tmp69_, _tmp70_);
+#line 4551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = self->priv->photo_to_raw_development_filesize;
+#line 4551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = photo;
+#line 4551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = row;
+#line 4551 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = _tmp73_->filesize;
+#line 4551 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp71_, _tmp72_, &_tmp74_);
+#line 35001 "Photo.c"
+ }
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (row);
+#line 35005 "Photo.c"
+ }
+#line 4548 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_row_it);
+#line 35009 "Photo.c"
+ }
+ }
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_rows);
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_list);
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable);
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (object);
+#line 35022 "Photo.c"
+ }
+#line 4521 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_object_it);
+#line 35026 "Photo.c"
+ }
+ }
+#line 4558 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = removed;
+#line 4558 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp75_ != NULL) {
+#line 35033 "Photo.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp76_ = NULL;
+ GeeIterator* _tmp77_ = NULL;
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = removed;
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = gee_iterable_iterator (_tmp76_);
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _object_it = _tmp77_;
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 35046 "Photo.c"
+ GeeIterator* _tmp78_ = NULL;
+ gboolean _tmp79_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp80_ = NULL;
+ gpointer _tmp81_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataObject* _tmp82_ = NULL;
+ LibraryPhoto* _tmp83_ = NULL;
+ GFile* editable = NULL;
+ LibraryPhoto* _tmp84_ = NULL;
+ GFile* _tmp85_ = NULL;
+ GFile* _tmp86_ = NULL;
+ LibraryPhoto* _tmp94_ = NULL;
+ guint _tmp95_ = 0U;
+ GeeCollection* raw_list = NULL;
+ LibraryPhoto* _tmp96_ = NULL;
+ GeeCollection* _tmp97_ = NULL;
+ GeeCollection* _tmp98_ = NULL;
+ LibraryPhoto* _tmp107_ = NULL;
+ guint _tmp108_ = 0U;
+ gint64 master_filesize = 0LL;
+ LibraryPhoto* _tmp109_ = NULL;
+ BackingPhotoRow* _tmp110_ = NULL;
+ BackingPhotoRow* _tmp111_ = NULL;
+ gint64 _tmp112_ = 0LL;
+ gint64 _tmp113_ = 0LL;
+ gint64 _tmp114_ = 0LL;
+ LibraryPhoto* _tmp115_ = NULL;
+ BackingPhotoRow* _tmp116_ = NULL;
+ BackingPhotoRow* _tmp117_ = NULL;
+ gboolean _tmp118_ = FALSE;
+ gint64 editable_filesize = 0LL;
+ GeeMultiMap* _tmp123_ = NULL;
+ gint64 _tmp124_ = 0LL;
+ LibraryPhoto* _tmp125_ = NULL;
+ GeeHashMap* _tmp126_ = NULL;
+ LibraryPhoto* _tmp127_ = NULL;
+ gint64 _tmp128_ = 0LL;
+ GeeCollection* raw_rows = NULL;
+ LibraryPhoto* _tmp134_ = NULL;
+ GeeCollection* _tmp135_ = NULL;
+ GeeCollection* _tmp136_ = NULL;
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = _object_it;
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = gee_iterator_next (_tmp78_);
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp79_) {
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 35097 "Photo.c"
+ }
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = _object_it;
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = gee_iterator_get (_tmp80_);
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ object = (DataObject*) _tmp81_;
+#line 4560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = object;
+#line 4560 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 4560 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp83_;
+#line 4562 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = photo;
+#line 4562 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp84_, TYPE_PHOTO, Photo));
+#line 4562 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable = _tmp85_;
+#line 4563 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = editable;
+#line 4563 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp86_ != NULL) {
+#line 35121 "Photo.c"
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp87_ = NULL;
+ LibraryPhoto* _tmp88_ = NULL;
+ GFile* _tmp89_ = NULL;
+ GFile* _tmp90_ = NULL;
+ gboolean _tmp91_ = FALSE;
+ gboolean _tmp92_ = FALSE;
+ gboolean _tmp93_ = FALSE;
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = self->priv->by_editable_file;
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = photo;
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp88_, TYPE_PHOTO, Photo));
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = _tmp89_;
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp90_, NULL);
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = _tmp91_;
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp90_);
+#line 4564 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_removed = _tmp92_;
+#line 4565 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = is_removed;
+#line 4565 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp93_, "is_removed");
+#line 35150 "Photo.c"
+ }
+#line 4567 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = photo;
+#line 4567 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_parse_name ("editable-replaced", TYPE_PHOTO, &_tmp95_, NULL, FALSE);
+#line 4567 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp94_, TYPE_PHOTO, Photo), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp95_, 0, NULL, (GCallback) _library_photo_source_collection_on_editable_replaced_photo_editable_replaced, self);
+#line 4569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = photo;
+#line 4569 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp96_, TYPE_PHOTO, Photo));
+#line 4569 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_list = _tmp97_;
+#line 4570 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp98_ = raw_list;
+#line 4570 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp98_ != NULL) {
+#line 35168 "Photo.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeCollection* _tmp99_ = NULL;
+ GeeIterator* _tmp100_ = NULL;
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp99_ = raw_list;
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp100_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp100_;
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 35181 "Photo.c"
+ GeeIterator* _tmp101_ = NULL;
+ gboolean _tmp102_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp103_ = NULL;
+ gpointer _tmp104_ = NULL;
+ GeeHashMap* _tmp105_ = NULL;
+ GFile* _tmp106_ = NULL;
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp101_ = _f_it;
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp102_ = gee_iterator_next (_tmp101_);
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp102_) {
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 35197 "Photo.c"
+ }
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp103_ = _f_it;
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp104_ = gee_iterator_get (_tmp103_);
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp104_;
+#line 4572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp105_ = self->priv->by_raw_development_file;
+#line 4572 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp106_ = f;
+#line 4572 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp105_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp106_, NULL);
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 35213 "Photo.c"
+ }
+#line 4571 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 35217 "Photo.c"
+ }
+ }
+#line 4573 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp107_ = photo;
+#line 4573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_parse_name ("raw-development-modified", TYPE_PHOTO, &_tmp108_, NULL, FALSE);
+#line 4573 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp107_, TYPE_PHOTO, Photo), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp108_, 0, NULL, (GCallback) _library_photo_source_collection_on_raw_development_modified_photo_raw_development_modified, self);
+#line 4575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp109_ = photo;
+#line 4575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp110_ = photo_get_master_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, TYPE_PHOTO, Photo));
+#line 4575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp111_ = _tmp110_;
+#line 4575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp112_ = _tmp111_->filesize;
+#line 4575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp113_ = _tmp112_;
+#line 4575 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp111_);
+#line 4575 "/home/jens/Source/shotwell/src/Photo.vala"
+ master_filesize = _tmp113_;
+#line 4576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp115_ = photo;
+#line 4576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp116_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp115_, TYPE_PHOTO, Photo));
+#line 4576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp117_ = _tmp116_;
+#line 4576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp118_ = _tmp117_ != NULL;
+#line 4576 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp117_);
+#line 4576 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp118_) {
+#line 35252 "Photo.c"
+ LibraryPhoto* _tmp119_ = NULL;
+ BackingPhotoRow* _tmp120_ = NULL;
+ BackingPhotoRow* _tmp121_ = NULL;
+ gint64 _tmp122_ = 0LL;
+#line 4577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp119_ = photo;
+#line 4577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp120_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp119_, TYPE_PHOTO, Photo));
+#line 4577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp121_ = _tmp120_;
+#line 4577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp122_ = _tmp121_->filesize;
+#line 4577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114_ = _tmp122_;
+#line 4577 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp121_);
+#line 35269 "Photo.c"
+ } else {
+#line 4578 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp114_ = (gint64) -1;
+#line 35273 "Photo.c"
+ }
+#line 4576 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_filesize = _tmp114_;
+#line 4579 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp123_ = self->priv->filesize_to_photo;
+#line 4579 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp124_ = master_filesize;
+#line 4579 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp125_ = photo;
+#line 4579 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp123_, &_tmp124_, _tmp125_);
+#line 4580 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp126_ = self->priv->photo_to_master_filesize;
+#line 4580 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp127_ = photo;
+#line 4580 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp126_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp127_, NULL);
+#line 4581 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp128_ = editable_filesize;
+#line 4581 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp128_ >= ((gint64) 0)) {
+#line 35295 "Photo.c"
+ GeeMultiMap* _tmp129_ = NULL;
+ gint64 _tmp130_ = 0LL;
+ LibraryPhoto* _tmp131_ = NULL;
+ GeeHashMap* _tmp132_ = NULL;
+ LibraryPhoto* _tmp133_ = NULL;
+#line 4582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp129_ = self->priv->filesize_to_photo;
+#line 4582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp130_ = editable_filesize;
+#line 4582 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp131_ = photo;
+#line 4582 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp129_, &_tmp130_, _tmp131_);
+#line 4583 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp132_ = self->priv->photo_to_editable_filesize;
+#line 4583 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp133_ = photo;
+#line 4583 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp132_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp133_, NULL);
+#line 35315 "Photo.c"
+ }
+#line 4586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp134_ = photo;
+#line 4586 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp135_ = photo_get_raw_development_photo_rows (G_TYPE_CHECK_INSTANCE_CAST (_tmp134_, TYPE_PHOTO, Photo));
+#line 4586 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_rows = _tmp135_;
+#line 4587 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp136_ = raw_rows;
+#line 4587 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp136_ != NULL) {
+#line 35327 "Photo.c"
+ {
+ GeeIterator* _row_it = NULL;
+ GeeCollection* _tmp137_ = NULL;
+ GeeIterator* _tmp138_ = NULL;
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp137_ = raw_rows;
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp138_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp137_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _row_it = _tmp138_;
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 35340 "Photo.c"
+ GeeIterator* _tmp139_ = NULL;
+ gboolean _tmp140_ = FALSE;
+ BackingPhotoRow* row = NULL;
+ GeeIterator* _tmp141_ = NULL;
+ gpointer _tmp142_ = NULL;
+ BackingPhotoRow* _tmp143_ = NULL;
+ gint64 _tmp144_ = 0LL;
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp139_ = _row_it;
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp140_ = gee_iterator_next (_tmp139_);
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp140_) {
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 35356 "Photo.c"
+ }
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp141_ = _row_it;
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp142_ = gee_iterator_get (_tmp141_);
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ row = (BackingPhotoRow*) _tmp142_;
+#line 4589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp143_ = row;
+#line 4589 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp144_ = _tmp143_->filesize;
+#line 4589 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp144_ >= ((gint64) 0)) {
+#line 35370 "Photo.c"
+ GeeMultiMap* _tmp145_ = NULL;
+ BackingPhotoRow* _tmp146_ = NULL;
+ gint64 _tmp147_ = 0LL;
+ LibraryPhoto* _tmp148_ = NULL;
+ GeeMultiMap* _tmp149_ = NULL;
+ LibraryPhoto* _tmp150_ = NULL;
+ BackingPhotoRow* _tmp151_ = NULL;
+ gint64 _tmp152_ = 0LL;
+#line 4590 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp145_ = self->priv->filesize_to_photo;
+#line 4590 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp146_ = row;
+#line 4590 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp147_ = _tmp146_->filesize;
+#line 4590 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp148_ = photo;
+#line 4590 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp145_, &_tmp147_, _tmp148_);
+#line 4591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp149_ = self->priv->photo_to_raw_development_filesize;
+#line 4591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp150_ = photo;
+#line 4591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp151_ = row;
+#line 4591 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp152_ = _tmp151_->filesize;
+#line 4591 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp149_, _tmp150_, &_tmp152_);
+#line 35399 "Photo.c"
+ }
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (row);
+#line 35403 "Photo.c"
+ }
+#line 4588 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_row_it);
+#line 35407 "Photo.c"
+ }
+ }
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_rows);
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_list);
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (editable);
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (object);
+#line 35420 "Photo.c"
+ }
+#line 4559 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_object_it);
+#line 35424 "Photo.c"
+ }
+ }
+#line 4598 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp153_ = added;
+#line 4598 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp154_ = removed;
+#line 4598 "/home/jens/Source/shotwell/src/Photo.vala"
+ DATA_COLLECTION_CLASS (library_photo_source_collection_parent_class)->notify_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp153_, _tmp154_);
+#line 35433 "Photo.c"
+}
+
+
+static void library_photo_source_collection_on_editable_replaced (LibraryPhotoSourceCollection* self, Photo* photo, GFile* old_file, GFile* new_file) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 4601 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4601 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 4601 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((old_file == NULL) || G_IS_FILE (old_file));
+#line 4601 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((new_file == NULL) || G_IS_FILE (new_file));
+#line 4602 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = old_file;
+#line 4602 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != NULL) {
+#line 35452 "Photo.c"
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 4603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->by_editable_file;
+#line 4603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = old_file;
+#line 4603 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, NULL);
+#line 4603 "/home/jens/Source/shotwell/src/Photo.vala"
+ is_removed = _tmp3_;
+#line 4604 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = is_removed;
+#line 4604 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp4_, "is_removed");
+#line 35470 "Photo.c"
+ }
+#line 4607 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = new_file;
+#line 4607 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_ != NULL) {
+#line 35476 "Photo.c"
+ GeeHashMap* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+#line 4608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->by_editable_file;
+#line 4608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = new_file;
+#line 4608 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo;
+#line 4608 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 35488 "Photo.c"
+ }
+}
+
+
+static void library_photo_source_collection_on_raw_development_modified (LibraryPhotoSourceCollection* self, Photo* _photo) {
+ LibraryPhoto* photo = NULL;
+ Photo* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GeeMultiMap* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeCollection* raw_list = NULL;
+ LibraryPhoto* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ GeeCollection* raw_rows = NULL;
+ LibraryPhoto* _tmp35_ = NULL;
+ GeeCollection* _tmp36_ = NULL;
+ GeeCollection* _tmp37_ = NULL;
+#line 4611 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4611 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (_photo));
+#line 4612 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _photo;
+#line 4612 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp0_) : NULL);
+#line 4612 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp1_;
+#line 4613 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo;
+#line 4613 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ == NULL) {
+#line 4614 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4614 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 35527 "Photo.c"
+ }
+#line 4617 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->photo_to_raw_development_filesize;
+#line 4617 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo;
+#line 4617 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_multi_map_contains (_tmp3_, _tmp4_);
+#line 4617 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 35537 "Photo.c"
+ GeeMultiMap* _tmp21_ = NULL;
+ LibraryPhoto* _tmp22_ = NULL;
+ {
+ GeeIterator* _s_it = NULL;
+ GeeMultiMap* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->photo_to_raw_development_filesize;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = gee_multi_map_get (_tmp6_, _tmp7_);
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp9_);
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _s_it = _tmp11_;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 35566 "Photo.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gint64 s = 0LL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ gint64* _tmp16_ = NULL;
+ gint64 _tmp17_ = 0LL;
+ GeeMultiMap* _tmp18_ = NULL;
+ gint64 _tmp19_ = 0LL;
+ LibraryPhoto* _tmp20_ = NULL;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _s_it;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp13_) {
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 35585 "Photo.c"
+ }
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _s_it;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = (gint64*) _tmp15_;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = *_tmp16_;
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp16_);
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ s = _tmp17_;
+#line 4619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->priv->filesize_to_photo;
+#line 4619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = s;
+#line 4619 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = photo;
+#line 4619 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp18_, &_tmp19_, _tmp20_);
+#line 35607 "Photo.c"
+ }
+#line 4618 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_s_it);
+#line 35611 "Photo.c"
+ }
+#line 4620 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = self->priv->photo_to_raw_development_filesize;
+#line 4620 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = photo;
+#line 4620 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove_all (_tmp21_, _tmp22_);
+#line 35619 "Photo.c"
+ }
+#line 4624 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = photo;
+#line 4624 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_PHOTO, Photo));
+#line 4624 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_list = _tmp24_;
+#line 4625 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = raw_list;
+#line 4625 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp25_ != NULL) {
+#line 35631 "Photo.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeIterator* _tmp27_ = NULL;
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = raw_list;
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp27_;
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 35644 "Photo.c"
+ GeeIterator* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+ GeeHashMap* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ LibraryPhoto* _tmp34_ = NULL;
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _f_it;
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = gee_iterator_next (_tmp28_);
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp29_) {
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 35661 "Photo.c"
+ }
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _f_it;
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = gee_iterator_get (_tmp30_);
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp31_;
+#line 4627 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = self->priv->by_raw_development_file;
+#line 4627 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = f;
+#line 4627 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = photo;
+#line 4627 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp33_, _tmp34_);
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 35679 "Photo.c"
+ }
+#line 4626 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 35683 "Photo.c"
+ }
+ }
+#line 4629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo;
+#line 4629 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = photo_get_raw_development_photo_rows (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_PHOTO, Photo));
+#line 4629 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_rows = _tmp36_;
+#line 4630 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = raw_rows;
+#line 4630 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp37_ != NULL) {
+#line 35696 "Photo.c"
+ {
+ GeeIterator* _row_it = NULL;
+ GeeCollection* _tmp38_ = NULL;
+ GeeIterator* _tmp39_ = NULL;
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = raw_rows;
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _row_it = _tmp39_;
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 35709 "Photo.c"
+ GeeIterator* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+ BackingPhotoRow* row = NULL;
+ GeeIterator* _tmp42_ = NULL;
+ gpointer _tmp43_ = NULL;
+ BackingPhotoRow* _tmp44_ = NULL;
+ gint64 _tmp45_ = 0LL;
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = _row_it;
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = gee_iterator_next (_tmp40_);
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp41_) {
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 35725 "Photo.c"
+ }
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _row_it;
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = gee_iterator_get (_tmp42_);
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ row = (BackingPhotoRow*) _tmp43_;
+#line 4632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = row;
+#line 4632 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp44_->filesize;
+#line 4632 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp45_ > ((gint64) 0)) {
+#line 35739 "Photo.c"
+ GeeMultiMap* _tmp46_ = NULL;
+ BackingPhotoRow* _tmp47_ = NULL;
+ gint64 _tmp48_ = 0LL;
+ LibraryPhoto* _tmp49_ = NULL;
+ GeeMultiMap* _tmp50_ = NULL;
+ LibraryPhoto* _tmp51_ = NULL;
+ BackingPhotoRow* _tmp52_ = NULL;
+ gint64 _tmp53_ = 0LL;
+#line 4633 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = self->priv->filesize_to_photo;
+#line 4633 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = row;
+#line 4633 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp47_->filesize;
+#line 4633 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = photo;
+#line 4633 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp46_, &_tmp48_, _tmp49_);
+#line 4634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = self->priv->photo_to_raw_development_filesize;
+#line 4634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = photo;
+#line 4634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = row;
+#line 4634 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp52_->filesize;
+#line 4634 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp50_, _tmp51_, &_tmp53_);
+#line 35768 "Photo.c"
+ }
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (row);
+#line 35772 "Photo.c"
+ }
+#line 4631 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_row_it);
+#line 35776 "Photo.c"
+ }
+ }
+#line 4611 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_rows);
+#line 4611 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_list);
+#line 4611 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 35785 "Photo.c"
+}
+
+
+static gpointer __int64_dup0 (gpointer self) {
+#line 4650 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self ? _int64_dup (self) : NULL;
+#line 35792 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_items_altered (DataCollection* base, GeeMap* items) {
+ LibraryPhotoSourceCollection * self;
+ GeeMap* _tmp72_ = NULL;
+#line 4640 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4640 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 35803 "Photo.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = items;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _object_it = _tmp5_;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 35830 "Photo.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Alteration* alteration = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataObject* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ Alteration* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _object_it;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp7_) {
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 35854 "Photo.c"
+ }
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _object_it;
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ object = (DataObject*) _tmp9_;
+#line 4642 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = items;
+#line 4642 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = object;
+#line 4642 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 4642 "/home/jens/Source/shotwell/src/Photo.vala"
+ alteration = (Alteration*) _tmp12_;
+#line 4644 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = object;
+#line 4644 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 4644 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp14_;
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = alteration;
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = alteration_has_detail (_tmp16_, "image", "master");
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_) {
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = TRUE;
+#line 35884 "Photo.c"
+ } else {
+ Alteration* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = alteration;
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = alteration_has_detail (_tmp18_, "image", "editable");
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp19_;
+#line 35894 "Photo.c"
+ }
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp15_) {
+#line 35898 "Photo.c"
+ gint64 old_master_filesize = 0LL;
+ GeeHashMap* _tmp20_ = NULL;
+ LibraryPhoto* _tmp21_ = NULL;
+ gpointer _tmp22_ = NULL;
+ gint64* _tmp23_ = NULL;
+ gint64 _tmp24_ = 0LL;
+ gint64* _tmp25_ = NULL;
+ GeeHashMap* _tmp26_ = NULL;
+ LibraryPhoto* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gint64 old_editable_filesize = 0LL;
+ GeeHashMap* _tmp34_ = NULL;
+ LibraryPhoto* _tmp35_ = NULL;
+ GeeMultiMap* _tmp36_ = NULL;
+ gint64 _tmp37_ = 0LL;
+ LibraryPhoto* _tmp38_ = NULL;
+ gint64 _tmp39_ = 0LL;
+ gint64 master_filesize = 0LL;
+ LibraryPhoto* _tmp45_ = NULL;
+ BackingPhotoRow* _tmp46_ = NULL;
+ BackingPhotoRow* _tmp47_ = NULL;
+ gint64 _tmp48_ = 0LL;
+ gint64 _tmp49_ = 0LL;
+ gint64 _tmp50_ = 0LL;
+ LibraryPhoto* _tmp51_ = NULL;
+ BackingPhotoRow* _tmp52_ = NULL;
+ BackingPhotoRow* _tmp53_ = NULL;
+ gboolean _tmp54_ = FALSE;
+ gint64 editable_filesize = 0LL;
+ GeeHashMap* _tmp59_ = NULL;
+ LibraryPhoto* _tmp60_ = NULL;
+ gint64 _tmp61_ = 0LL;
+ GeeMultiMap* _tmp62_ = NULL;
+ gint64 _tmp63_ = 0LL;
+ LibraryPhoto* _tmp64_ = NULL;
+ gint64 _tmp65_ = 0LL;
+#line 4647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = self->priv->photo_to_master_filesize;
+#line 4647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo;
+#line 4647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp21_);
+#line 4647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = (gint64*) _tmp22_;
+#line 4647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = *_tmp23_;
+#line 4647 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp23_);
+#line 4647 "/home/jens/Source/shotwell/src/Photo.vala"
+ old_master_filesize = _tmp24_;
+#line 4648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = self->priv->photo_to_editable_filesize;
+#line 4648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = photo;
+#line 4648 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp27_);
+#line 4648 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp28_) {
+#line 35957 "Photo.c"
+ GeeHashMap* _tmp29_ = NULL;
+ LibraryPhoto* _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+#line 4649 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = self->priv->photo_to_editable_filesize;
+#line 4649 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = photo;
+#line 4649 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp30_);
+#line 4649 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp25_);
+#line 4649 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = (gint64*) _tmp31_;
+#line 35971 "Photo.c"
+ } else {
+ gint64 _tmp32_ = 0LL;
+ gint64* _tmp33_ = NULL;
+#line 4650 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = (gint64) -1;
+#line 4650 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = __int64_dup0 (&_tmp32_);
+#line 4650 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp25_);
+#line 4650 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp33_;
+#line 35983 "Photo.c"
+ }
+#line 4648 "/home/jens/Source/shotwell/src/Photo.vala"
+ old_editable_filesize = *_tmp25_;
+#line 4652 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = self->priv->photo_to_master_filesize;
+#line 4652 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo;
+#line 4652 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp35_, NULL);
+#line 4653 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = self->priv->filesize_to_photo;
+#line 4653 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = old_master_filesize;
+#line 4653 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = photo;
+#line 4653 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp36_, &_tmp37_, _tmp38_);
+#line 4654 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = old_editable_filesize;
+#line 4654 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp39_ >= ((gint64) 0)) {
+#line 36005 "Photo.c"
+ GeeHashMap* _tmp40_ = NULL;
+ LibraryPhoto* _tmp41_ = NULL;
+ GeeMultiMap* _tmp42_ = NULL;
+ gint64 _tmp43_ = 0LL;
+ LibraryPhoto* _tmp44_ = NULL;
+#line 4655 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = self->priv->photo_to_editable_filesize;
+#line 4655 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = photo;
+#line 4655 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp41_, NULL);
+#line 4656 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = self->priv->filesize_to_photo;
+#line 4656 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = old_editable_filesize;
+#line 4656 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = photo;
+#line 4656 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp42_, &_tmp43_, _tmp44_);
+#line 36025 "Photo.c"
+ }
+#line 4659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = photo;
+#line 4659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = photo_get_master_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_PHOTO, Photo));
+#line 4659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_;
+#line 4659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp47_->filesize;
+#line 4659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = _tmp48_;
+#line 4659 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp47_);
+#line 4659 "/home/jens/Source/shotwell/src/Photo.vala"
+ master_filesize = _tmp49_;
+#line 4660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = photo;
+#line 4660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_PHOTO, Photo));
+#line 4660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp52_;
+#line 4660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = _tmp53_ != NULL;
+#line 4660 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp53_);
+#line 4660 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp54_) {
+#line 36053 "Photo.c"
+ LibraryPhoto* _tmp55_ = NULL;
+ BackingPhotoRow* _tmp56_ = NULL;
+ BackingPhotoRow* _tmp57_ = NULL;
+ gint64 _tmp58_ = 0LL;
+#line 4661 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = photo;
+#line 4661 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, TYPE_PHOTO, Photo));
+#line 4661 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = _tmp56_;
+#line 4661 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = _tmp57_->filesize;
+#line 4661 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = _tmp58_;
+#line 4661 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp57_);
+#line 36070 "Photo.c"
+ } else {
+#line 4662 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = (gint64) -1;
+#line 36074 "Photo.c"
+ }
+#line 4660 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable_filesize = _tmp50_;
+#line 4663 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = self->priv->photo_to_master_filesize;
+#line 4663 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = photo;
+#line 4663 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = master_filesize;
+#line 4663 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp60_, &_tmp61_);
+#line 4664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = self->priv->filesize_to_photo;
+#line 4664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = master_filesize;
+#line 4664 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = photo;
+#line 4664 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp62_, &_tmp63_, _tmp64_);
+#line 4665 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = editable_filesize;
+#line 4665 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp65_ >= ((gint64) 0)) {
+#line 36098 "Photo.c"
+ GeeHashMap* _tmp66_ = NULL;
+ LibraryPhoto* _tmp67_ = NULL;
+ gint64 _tmp68_ = 0LL;
+ GeeMultiMap* _tmp69_ = NULL;
+ gint64 _tmp70_ = 0LL;
+ LibraryPhoto* _tmp71_ = NULL;
+#line 4666 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = self->priv->photo_to_editable_filesize;
+#line 4666 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = photo;
+#line 4666 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = editable_filesize;
+#line 4666 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp67_, &_tmp68_);
+#line 4667 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = self->priv->filesize_to_photo;
+#line 4667 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = editable_filesize;
+#line 4667 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = photo;
+#line 4667 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp69_, &_tmp70_, _tmp71_);
+#line 36121 "Photo.c"
+ }
+#line 4646 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp25_);
+#line 36125 "Photo.c"
+ }
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (alteration);
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (object);
+#line 36133 "Photo.c"
+ }
+#line 4641 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_object_it);
+#line 36137 "Photo.c"
+ }
+#line 4672 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = items;
+#line 4672 "/home/jens/Source/shotwell/src/Photo.vala"
+ DATA_COLLECTION_CLASS (library_photo_source_collection_parent_class)->items_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp72_);
+#line 36143 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_postprocess_imported_media (MediaSourceCollection* base, GeeCollection* media_sources) {
+ LibraryPhotoSourceCollection * self;
+ GeeHashMultiMap* map = NULL;
+ GeeHashMultiMap* _tmp0_ = NULL;
+ GeeCollection* _tmp97_ = NULL;
+#line 4676 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4676 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (media_sources));
+#line 4677 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = gee_hash_multi_map_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 4677 "/home/jens/Source/shotwell/src/Photo.vala"
+ map = _tmp0_;
+#line 36160 "Photo.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_sources;
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_it = _tmp2_;
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 36173 "Photo.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ LibraryPhoto* photo = NULL;
+ MediaSource* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ PhotoMetadata* metadata = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+ PhotoMetadata* _tmp10_ = NULL;
+ HierarchicalTagIndex* global_index = NULL;
+ HierarchicalTagIndex* _tmp11_ = NULL;
+ HierarchicalTagIndex* htag_index = NULL;
+ PhotoMetadata* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ LibraryPhoto* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeCollection* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ PhotoMetadata* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _media_it;
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp4_) {
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 36204 "Photo.c"
+ }
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _media_it;
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ media = (MediaSource*) _tmp6_;
+#line 4679 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = media;
+#line 4679 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 4679 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp8_;
+#line 4680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo;
+#line 4680 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 4680 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp10_;
+#line 4683 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = hierarchical_tag_index_get_global_index ();
+#line 4683 "/home/jens/Source/shotwell/src/Photo.vala"
+ global_index = _tmp11_;
+#line 4690 "/home/jens/Source/shotwell/src/Photo.vala"
+ htag_index = NULL;
+#line 4691 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = metadata;
+#line 4691 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_metadata_has_hierarchical_keywords (_tmp12_);
+#line 4691 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp13_) {
+#line 36236 "Photo.c"
+ PhotoMetadata* _tmp14_ = NULL;
+ GeeSet* _tmp15_ = NULL;
+ GeeSet* _tmp16_ = NULL;
+ HierarchicalTagIndex* _tmp17_ = NULL;
+#line 4692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = metadata;
+#line 4692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_metadata_get_hierarchical_keywords (_tmp14_);
+#line 4692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 4692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = hierarchical_tag_utilities_process_hierarchical_import_keywords (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 4692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _hierarchical_tag_index_unref0 (htag_index);
+#line 4692 "/home/jens/Source/shotwell/src/Photo.vala"
+ htag_index = _tmp17_;
+#line 4692 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp16_);
+#line 36255 "Photo.c"
+ }
+#line 4696 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = photo;
+#line 4696 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = library_photo_get_import_keywords (_tmp18_);
+#line 4696 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 4696 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_ != NULL;
+#line 4696 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp20_);
+#line 4696 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp21_) {
+#line 36269 "Photo.c"
+ {
+ GeeIterator* _keyword_it = NULL;
+ LibraryPhoto* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ GeeIterator* _tmp25_ = NULL;
+ GeeIterator* _tmp26_ = NULL;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = photo;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = library_photo_get_import_keywords (_tmp22_);
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _tmp23_;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = _tmp25_;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp24_);
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _keyword_it = _tmp26_;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 36293 "Photo.c"
+ GeeIterator* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gchar* keyword = NULL;
+ GeeIterator* _tmp29_ = NULL;
+ gpointer _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ HierarchicalTagIndex* _tmp32_ = NULL;
+ gchar* name = NULL;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ HierarchicalTagIndex* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gboolean _tmp40_ = FALSE;
+ const gchar* _tmp49_ = NULL;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _keyword_it;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = gee_iterator_next (_tmp27_);
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp28_) {
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 36316 "Photo.c"
+ }
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _keyword_it;
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = gee_iterator_get (_tmp29_);
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ keyword = (gchar*) _tmp30_;
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = htag_index;
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp32_ != NULL) {
+#line 36328 "Photo.c"
+ HierarchicalTagIndex* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = htag_index;
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = keyword;
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = hierarchical_tag_index_is_tag_in_index (_tmp33_, _tmp34_);
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp35_;
+#line 36340 "Photo.c"
+ } else {
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = FALSE;
+#line 36344 "Photo.c"
+ }
+#line 4698 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp31_) {
+#line 4699 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (keyword);
+#line 4699 "/home/jens/Source/shotwell/src/Photo.vala"
+ continue;
+#line 36352 "Photo.c"
+ }
+#line 4701 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = keyword;
+#line 4701 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = tag_prep_tag_name (_tmp36_);
+#line 4701 "/home/jens/Source/shotwell/src/Photo.vala"
+ name = _tmp37_;
+#line 4703 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = global_index;
+#line 4703 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = name;
+#line 4703 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = hierarchical_tag_index_is_tag_in_index (_tmp38_, _tmp39_);
+#line 4703 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp40_) {
+#line 36368 "Photo.c"
+ gchar* most_derived_path = NULL;
+ HierarchicalTagIndex* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ GeeHashMultiMap* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ Tag* _tmp46_ = NULL;
+ Tag* _tmp47_ = NULL;
+ LibraryPhoto* _tmp48_ = NULL;
+#line 4704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = global_index;
+#line 4704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = name;
+#line 4704 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = hierarchical_tag_index_get_path_for_name (_tmp41_, _tmp42_);
+#line 4704 "/home/jens/Source/shotwell/src/Photo.vala"
+ most_derived_path = _tmp43_;
+#line 4705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = map;
+#line 4705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = most_derived_path;
+#line 4705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = tag_for_path (_tmp45_);
+#line 4705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_;
+#line 4705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = photo;
+#line 4705 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp47_, _tmp48_);
+#line 4705 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp47_);
+#line 4706 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (most_derived_path);
+#line 4706 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 4706 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (keyword);
+#line 4706 "/home/jens/Source/shotwell/src/Photo.vala"
+ continue;
+#line 36408 "Photo.c"
+ }
+#line 4709 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = name;
+#line 4709 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp49_ != NULL) {
+#line 36414 "Photo.c"
+ GeeHashMultiMap* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ Tag* _tmp52_ = NULL;
+ Tag* _tmp53_ = NULL;
+ LibraryPhoto* _tmp54_ = NULL;
+#line 4710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = map;
+#line 4710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = name;
+#line 4710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = tag_for_path (_tmp51_);
+#line 4710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = _tmp52_;
+#line 4710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = photo;
+#line 4710 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp53_, _tmp54_);
+#line 4710 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp53_);
+#line 36434 "Photo.c"
+ }
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (keyword);
+#line 36440 "Photo.c"
+ }
+#line 4697 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_keyword_it);
+#line 36444 "Photo.c"
+ }
+ }
+#line 4714 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = metadata;
+#line 4714 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = photo_metadata_has_hierarchical_keywords (_tmp55_);
+#line 4714 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp56_) {
+#line 36453 "Photo.c"
+ {
+ GeeIterator* _path_it = NULL;
+ HierarchicalTagIndex* _tmp57_ = NULL;
+ GeeCollection* _tmp58_ = NULL;
+ GeeCollection* _tmp59_ = NULL;
+ GeeIterator* _tmp60_ = NULL;
+ GeeIterator* _tmp61_ = NULL;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = htag_index;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = hierarchical_tag_index_get_all_paths (_tmp57_);
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = _tmp58_;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = _tmp60_;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp59_);
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _path_it = _tmp61_;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 36477 "Photo.c"
+ GeeIterator* _tmp62_ = NULL;
+ gboolean _tmp63_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp64_ = NULL;
+ gpointer _tmp65_ = NULL;
+ gchar* name = NULL;
+ const gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ const gchar* _tmp68_ = NULL;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = _path_it;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = gee_iterator_next (_tmp62_);
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp63_) {
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 36495 "Photo.c"
+ }
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = _path_it;
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = gee_iterator_get (_tmp64_);
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ path = (gchar*) _tmp65_;
+#line 4716 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = path;
+#line 4716 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = tag_prep_tag_name (_tmp66_);
+#line 4716 "/home/jens/Source/shotwell/src/Photo.vala"
+ name = _tmp67_;
+#line 4717 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = name;
+#line 4717 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp68_ != NULL) {
+#line 36513 "Photo.c"
+ GeeHashMultiMap* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ Tag* _tmp71_ = NULL;
+ Tag* _tmp72_ = NULL;
+ LibraryPhoto* _tmp73_ = NULL;
+#line 4718 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = map;
+#line 4718 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = name;
+#line 4718 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = tag_for_path (_tmp70_);
+#line 4718 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = _tmp71_;
+#line 4718 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = photo;
+#line 4718 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp72_, _tmp73_);
+#line 4718 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp72_);
+#line 36533 "Photo.c"
+ }
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (name);
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (path);
+#line 36539 "Photo.c"
+ }
+#line 4715 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_path_it);
+#line 36543 "Photo.c"
+ }
+ }
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _hierarchical_tag_index_unref0 (htag_index);
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _hierarchical_tag_index_unref0 (global_index);
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (media);
+#line 36556 "Photo.c"
+ }
+#line 4678 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_media_it);
+#line 36560 "Photo.c"
+ }
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp74_ = NULL;
+ GeeIterator* _tmp75_ = NULL;
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = media_sources;
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_it = _tmp75_;
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 36574 "Photo.c"
+ GeeIterator* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp78_ = NULL;
+ gpointer _tmp79_ = NULL;
+ LibraryPhoto* photo = NULL;
+ MediaSource* _tmp80_ = NULL;
+ LibraryPhoto* _tmp81_ = NULL;
+ LibraryPhoto* _tmp82_ = NULL;
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = _media_it;
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = gee_iterator_next (_tmp76_);
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp77_) {
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 36592 "Photo.c"
+ }
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp78_ = _media_it;
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = gee_iterator_get (_tmp78_);
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ media = (MediaSource*) _tmp79_;
+#line 4724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp80_ = media;
+#line 4724 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 4724 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp81_;
+#line 4725 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = photo;
+#line 4725 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_clear_import_keywords (_tmp82_);
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (media);
+#line 36614 "Photo.c"
+ }
+#line 4723 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_media_it);
+#line 36618 "Photo.c"
+ }
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeHashMultiMap* _tmp83_ = NULL;
+ GeeSet* _tmp84_ = NULL;
+ GeeSet* _tmp85_ = NULL;
+ GeeIterator* _tmp86_ = NULL;
+ GeeIterator* _tmp87_ = NULL;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp83_ = map;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp84_ = gee_multi_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, GEE_TYPE_MULTI_MAP, GeeMultiMap));
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp85_ = _tmp84_;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp86_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp85_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp87_ = _tmp86_;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp85_);
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_it = _tmp87_;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 36643 "Photo.c"
+ GeeIterator* _tmp88_ = NULL;
+ gboolean _tmp89_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp90_ = NULL;
+ gpointer _tmp91_ = NULL;
+ Tag* _tmp92_ = NULL;
+ GeeHashMultiMap* _tmp93_ = NULL;
+ Tag* _tmp94_ = NULL;
+ GeeCollection* _tmp95_ = NULL;
+ GeeCollection* _tmp96_ = NULL;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp88_ = _tag_it;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp89_ = gee_iterator_next (_tmp88_);
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp89_) {
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 36662 "Photo.c"
+ }
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp90_ = _tag_it;
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp91_ = gee_iterator_get (_tmp90_);
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag = (Tag*) _tmp91_;
+#line 4729 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp92_ = tag;
+#line 4729 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp93_ = map;
+#line 4729 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp94_ = tag;
+#line 4729 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp95_ = gee_multi_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp94_);
+#line 4729 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp96_ = _tmp95_;
+#line 4729 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag_attach_many (_tmp92_, _tmp96_);
+#line 4729 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp96_);
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tag);
+#line 36686 "Photo.c"
+ }
+#line 4728 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tag_it);
+#line 36690 "Photo.c"
+ }
+#line 4731 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp97_ = media_sources;
+#line 4731 "/home/jens/Source/shotwell/src/Photo.vala"
+ MEDIA_SOURCE_COLLECTION_CLASS (library_photo_source_collection_parent_class)->postprocess_imported_media (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _tmp97_);
+#line 4676 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (map);
+#line 36698 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_notify_master_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+#line 4735 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4735 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 4736 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo;
+#line 4736 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = metadata;
+#line 4736 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "master-reimported", _tmp0_, _tmp1_);
+#line 36715 "Photo.c"
+}
+
+
+void library_photo_source_collection_notify_master_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4735 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4735 "/home/jens/Source/shotwell/src/Photo.vala"
+ LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS (self)->notify_master_reimported (self, photo, metadata);
+#line 36724 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_notify_editable_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+#line 4740 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4740 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 4741 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo;
+#line 4741 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = metadata;
+#line 4741 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "editable-reimported", _tmp0_, _tmp1_);
+#line 36741 "Photo.c"
+}
+
+
+void library_photo_source_collection_notify_editable_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4740 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4740 "/home/jens/Source/shotwell/src/Photo.vala"
+ LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS (self)->notify_editable_reimported (self, photo, metadata);
+#line 36750 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_notify_source_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+#line 4745 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4745 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 4746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo;
+#line 4746 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = metadata;
+#line 4746 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "source-reimported", _tmp0_, _tmp1_);
+#line 36767 "Photo.c"
+}
+
+
+void library_photo_source_collection_notify_source_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4745 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4745 "/home/jens/Source/shotwell/src/Photo.vala"
+ LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS (self)->notify_source_reimported (self, photo, metadata);
+#line 36776 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_notify_baseline_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+#line 4750 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4750 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 4751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo;
+#line 4751 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = metadata;
+#line 4751 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (self, "baseline-reimported", _tmp0_, _tmp1_);
+#line 36793 "Photo.c"
+}
+
+
+void library_photo_source_collection_notify_baseline_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4750 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4750 "/home/jens/Source/shotwell/src/Photo.vala"
+ LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS (self)->notify_baseline_reimported (self, photo, metadata);
+#line 36802 "Photo.c"
+}
+
+
+static MediaSource* library_photo_source_collection_real_fetch_by_numeric_id (MediaSourceCollection* base, gint64 numeric_id) {
+ LibraryPhotoSourceCollection * self;
+ MediaSource* result = NULL;
+ gint64 _tmp0_ = 0LL;
+ PhotoID _tmp1_ = {0};
+ LibraryPhoto* _tmp2_ = NULL;
+#line 4754 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = numeric_id;
+#line 4755 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id_init (&_tmp1_, _tmp0_);
+#line 4755 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = library_photo_source_collection_fetch (self, &_tmp1_);
+#line 4755 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 4755 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 36824 "Photo.c"
+}
+
+
+static void library_photo_source_collection_on_trashcan_contents_altered (LibraryPhotoSourceCollection* self, GeeCollection* added, GeeCollection* removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 4758 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4758 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 4758 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 4760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = added;
+#line 4760 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = removed;
+#line 4760 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "trashcan-contents-altered", G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 36843 "Photo.c"
+}
+
+
+static gboolean library_photo_source_collection_check_if_trashed_photo (LibraryPhotoSourceCollection* self, DataSource* source, Alteration* alteration) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 4764 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), FALSE);
+#line 4764 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 4764 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 4765 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = source;
+#line 4765 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_source_is_trashed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_MEDIA_SOURCE, MediaSource));
+#line 4765 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 4765 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 36865 "Photo.c"
+}
+
+
+static void library_photo_source_collection_on_offline_contents_altered (LibraryPhotoSourceCollection* self, GeeCollection* added, GeeCollection* removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 4768 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4768 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 4768 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 4770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = added;
+#line 4770 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = removed;
+#line 4770 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "offline-contents-altered", G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 36884 "Photo.c"
+}
+
+
+static gboolean library_photo_source_collection_check_if_offline_photo (LibraryPhotoSourceCollection* self, DataSource* source, Alteration* alteration) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 4774 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), FALSE);
+#line 4774 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 4774 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 4775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = source;
+#line 4775 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_source_is_offline (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_MEDIA_SOURCE, MediaSource));
+#line 4775 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 4775 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 36906 "Photo.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 36929 "Photo.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 36937 "Photo.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 36949 "Photo.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 36973 "Photo.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 36979 "Photo.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 36983 "Photo.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 36987 "Photo.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 36999 "Photo.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 37009 "Photo.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 37015 "Photo.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 37029 "Photo.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 37039 "Photo.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 37045 "Photo.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 37054 "Photo.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 37074 "Photo.c"
+}
+
+
+static MediaSource* library_photo_source_collection_real_fetch_by_source_id (MediaSourceCollection* base, const gchar* source_id) {
+ LibraryPhotoSourceCollection * self;
+ MediaSource* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gchar* numeric_only = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ gint64 _tmp6_ = 0LL;
+ MediaSource* _tmp7_ = NULL;
+#line 4778 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4778 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (source_id != NULL, NULL);
+#line 4779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = source_id;
+#line 4779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = g_str_has_prefix (_tmp0_, PHOTO_TYPENAME);
+#line 4779 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp1_, "source_id.has_prefix(Photo.TYPENAME)");
+#line 4780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = source_id;
+#line 4780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = strlen (PHOTO_TYPENAME);
+#line 4780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 4780 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = string_substring (_tmp2_, (glong) _tmp4_, (glong) -1);
+#line 4780 "/home/jens/Source/shotwell/src/Photo.vala"
+ numeric_only = _tmp5_;
+#line 4782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = parse_int64 (numeric_only, 16);
+#line 4782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = media_source_collection_fetch_by_numeric_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _tmp6_);
+#line 4782 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp7_;
+#line 4782 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (numeric_only);
+#line 4782 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37120 "Photo.c"
+}
+
+
+static GeeCollection* library_photo_source_collection_real_get_event_source_ids (MediaSourceCollection* base, EventID* event_id) {
+ LibraryPhotoSourceCollection * self;
+ GeeCollection* result = NULL;
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ EventID _tmp2_ = {0};
+ GeeArrayList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 4785 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4785 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = *event_id;
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_table_get_event_source_ids (_tmp1_, &_tmp2_);
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp1_);
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 4786 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37152 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_fetch (LibraryPhotoSourceCollection* self, PhotoID* photo_id) {
+ LibraryPhoto* result = NULL;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ DataSource* _tmp2_ = NULL;
+#line 4789 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4789 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (photo_id != NULL, NULL);
+#line 4790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = *photo_id;
+#line 4790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_.id;
+#line 4790 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = database_source_collection_fetch_by_key (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), _tmp1_);
+#line 4790 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4790 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37175 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_fetch_by_editable_file (LibraryPhotoSourceCollection* self, GFile* file) {
+ LibraryPhoto* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 4793 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4793 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 4794 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->by_editable_file;
+#line 4794 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file;
+#line 4794 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 4794 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (LibraryPhoto*) _tmp2_;
+#line 4794 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37198 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_fetch_by_raw_development_file (LibraryPhotoSourceCollection* self, GFile* file) {
+ LibraryPhoto* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 4797 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4797 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 4798 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->by_raw_development_file;
+#line 4798 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file;
+#line 4798 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 4798 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (LibraryPhoto*) _tmp2_;
+#line 4798 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37221 "Photo.c"
+}
+
+
+static void library_photo_source_collection_compare_backing (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, GFileInfo* info, GeeCollection* matches_master, GeeCollection* matches_editable, GeeCollection* matches_development) {
+ LibraryPhoto* _tmp0_ = NULL;
+ BackingPhotoRow* _tmp1_ = NULL;
+ BackingPhotoRow* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ BackingPhotoRow* editable = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ BackingPhotoRow* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ BackingPhotoRow* _tmp11_ = NULL;
+ GeeCollection* development = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matches_master));
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matches_editable));
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matches_development));
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo;
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_get_master_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo));
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = info;
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = backing_photo_row_matches_file_info (_tmp2_, _tmp3_);
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp2_);
+#line 4804 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 37269 "Photo.c"
+ GeeCollection* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+#line 4805 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = matches_master;
+#line 4805 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo;
+#line 4805 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_collection_add (_tmp6_, _tmp7_);
+#line 37278 "Photo.c"
+ }
+#line 4807 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo;
+#line 4807 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo));
+#line 4807 "/home/jens/Source/shotwell/src/Photo.vala"
+ editable = _tmp9_;
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = editable;
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_ != NULL) {
+#line 37290 "Photo.c"
+ BackingPhotoRow* _tmp12_ = NULL;
+ GFileInfo* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = editable;
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = info;
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = backing_photo_row_matches_file_info (_tmp12_, _tmp13_);
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp14_;
+#line 37302 "Photo.c"
+ } else {
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = FALSE;
+#line 37306 "Photo.c"
+ }
+#line 4808 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp10_) {
+#line 37310 "Photo.c"
+ GeeCollection* _tmp15_ = NULL;
+ LibraryPhoto* _tmp16_ = NULL;
+#line 4809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = matches_editable;
+#line 4809 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo;
+#line 4809 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_collection_add (_tmp15_, _tmp16_);
+#line 37319 "Photo.c"
+ }
+#line 4811 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo;
+#line 4811 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = photo_get_raw_development_photo_rows (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_PHOTO, Photo));
+#line 4811 "/home/jens/Source/shotwell/src/Photo.vala"
+ development = _tmp18_;
+#line 4812 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = development;
+#line 4812 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp19_ != NULL) {
+#line 37331 "Photo.c"
+ {
+ GeeIterator* _row_it = NULL;
+ GeeCollection* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = development;
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _row_it = _tmp21_;
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 37344 "Photo.c"
+ GeeIterator* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ BackingPhotoRow* row = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ BackingPhotoRow* _tmp26_ = NULL;
+ GFileInfo* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _row_it;
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = gee_iterator_next (_tmp22_);
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp23_) {
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 37361 "Photo.c"
+ }
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = _row_it;
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = gee_iterator_get (_tmp24_);
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ row = (BackingPhotoRow*) _tmp25_;
+#line 4814 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = row;
+#line 4814 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = info;
+#line 4814 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = backing_photo_row_matches_file_info (_tmp26_, _tmp27_);
+#line 4814 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp28_) {
+#line 37377 "Photo.c"
+ GeeCollection* _tmp29_ = NULL;
+ LibraryPhoto* _tmp30_ = NULL;
+#line 4815 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = matches_development;
+#line 4815 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = photo;
+#line 4815 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_collection_add (_tmp29_, _tmp30_);
+#line 4817 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (row);
+#line 4817 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 37390 "Photo.c"
+ }
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (row);
+#line 37394 "Photo.c"
+ }
+#line 4813 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_row_it);
+#line 37398 "Photo.c"
+ }
+ }
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (development);
+#line 4801 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (editable);
+#line 37405 "Photo.c"
+}
+
+
+void library_photo_source_collection_fetch_by_matching_backing (LibraryPhotoSourceCollection* self, GFileInfo* info, GeeCollection* matches_master, GeeCollection* matches_editable, GeeCollection* matched_development) {
+#line 4825 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4825 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 4825 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matches_master));
+#line 4825 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matches_editable));
+#line 4825 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matched_development));
+#line 37420 "Photo.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeMultiMap* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->filesize_to_photo;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = info;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = g_file_info_get_size (_tmp1_);
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_multi_map_get (_tmp0_, &_tmp2_);
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp4_);
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_it = _tmp6_;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 37450 "Photo.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+ GFileInfo* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ GeeCollection* _tmp15_ = NULL;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _photo_it;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp8_) {
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 37469 "Photo.c"
+ }
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _photo_it;
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = (LibraryPhoto*) _tmp10_;
+#line 4828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = photo;
+#line 4828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = info;
+#line 4828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = matches_master;
+#line 4828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = matches_editable;
+#line 4828 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = matched_development;
+#line 4828 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_compare_backing (self, _tmp11_, _tmp12_, _tmp13_, _tmp14_, _tmp15_);
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 37491 "Photo.c"
+ }
+#line 4827 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 37495 "Photo.c"
+ }
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ GeeIterator* _tmp19_ = NULL;
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = media_source_collection_get_offline_bin_contents (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_;
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp17_);
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_it = _tmp19_;
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 37517 "Photo.c"
+ GeeIterator* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+ MediaSource* _tmp24_ = NULL;
+ GFileInfo* _tmp25_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+ GeeCollection* _tmp28_ = NULL;
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _media_it;
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = gee_iterator_next (_tmp20_);
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp21_) {
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 37536 "Photo.c"
+ }
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _media_it;
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = gee_iterator_get (_tmp22_);
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ media = (MediaSource*) _tmp23_;
+#line 4831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = media;
+#line 4831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = info;
+#line 4831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = matches_master;
+#line 4831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = matches_editable;
+#line 4831 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = matched_development;
+#line 4831 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_compare_backing (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_LIBRARY_PHOTO, LibraryPhoto), _tmp25_, _tmp26_, _tmp27_, _tmp28_);
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (media);
+#line 37558 "Photo.c"
+ }
+#line 4830 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_media_it);
+#line 37562 "Photo.c"
+ }
+}
+
+
+void library_photo_source_collection_get_basename_filesize_duplicate (LibraryPhotoSourceCollection* self, const gchar* basename, gint64 filesize, PhotoID* result) {
+ PhotoID _tmp19_ = {0};
+#line 4834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self));
+#line 4834 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (basename != NULL);
+#line 37573 "Photo.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeMultiMap* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->filesize_to_photo;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = filesize;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_multi_map_get (_tmp0_, &_tmp1_);
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp3_);
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_it = _tmp5_;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 37600 "Photo.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gboolean _tmp16_ = FALSE;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _photo_it;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp7_) {
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 37621 "Photo.c"
+ }
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _photo_it;
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = (LibraryPhoto*) _tmp9_;
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo;
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_;
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = g_file_get_basename (_tmp12_);
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = basename;
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = utf8_ci_compare (_tmp13_, _tmp14_);
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_ == 0;
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp12_);
+#line 4836 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_) {
+#line 37647 "Photo.c"
+ LibraryPhoto* _tmp17_ = NULL;
+ PhotoID _tmp18_ = {0};
+#line 4837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo;
+#line 4837 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_PHOTO, Photo), &_tmp18_);
+#line 4837 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp18_;
+#line 4837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4837 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 4837 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 37662 "Photo.c"
+ }
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 37666 "Photo.c"
+ }
+#line 4835 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_photo_it);
+#line 37670 "Photo.c"
+ }
+#line 4840 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id_init (&_tmp19_, PHOTO_ID_INVALID);
+#line 4840 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp19_;
+#line 4840 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 37678 "Photo.c"
+}
+
+
+gboolean library_photo_source_collection_has_basename_filesize_duplicate (LibraryPhotoSourceCollection* self, const gchar* basename, gint64 filesize) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ PhotoID _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+#line 4844 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), FALSE);
+#line 4844 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (basename != NULL, FALSE);
+#line 4845 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = basename;
+#line 4845 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = filesize;
+#line 4845 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_get_basename_filesize_duplicate (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 4845 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_id_is_valid (&_tmp2_);
+#line 4845 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 4845 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37704 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_get_trashed_by_file (LibraryPhotoSourceCollection* self, GFile* file) {
+ LibraryPhoto* result = NULL;
+ LibraryPhoto* photo = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+#line 4848 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4848 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 4849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = file;
+#line 4849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = media_source_holding_tank_fetch_by_master_file (_tmp1_, _tmp2_);
+#line 4849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4849 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 4849 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp4_;
+#line 4850 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo;
+#line 4850 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_ == NULL) {
+#line 37739 "Photo.c"
+ MediaSourceHoldingTank* _tmp6_ = NULL;
+ LibraryPhotoSourceHoldingTank* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+#line 4851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTank);
+#line 4851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = file;
+#line 4851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = library_photo_source_holding_tank_fetch_by_backing_file (_tmp7_, _tmp8_);
+#line 4851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4851 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4851 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp7_);
+#line 37758 "Photo.c"
+ }
+#line 4854 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = photo;
+#line 4854 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37764 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_get_trashed_by_md5 (LibraryPhotoSourceCollection* self, const gchar* md5) {
+ LibraryPhoto* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+#line 4857 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4857 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (md5 != NULL, NULL);
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = md5;
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = media_source_holding_tank_fetch_by_md5 (_tmp1_, _tmp2_);
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 4858 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37795 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_get_offline_by_file (LibraryPhotoSourceCollection* self, GFile* file) {
+ LibraryPhoto* result = NULL;
+ LibraryPhoto* photo = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+#line 4861 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4861 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 4862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = file;
+#line 4862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = media_source_holding_tank_fetch_by_master_file (_tmp1_, _tmp2_);
+#line 4862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4862 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 4862 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp4_;
+#line 4863 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo;
+#line 4863 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_ == NULL) {
+#line 37830 "Photo.c"
+ MediaSourceHoldingTank* _tmp6_ = NULL;
+ LibraryPhotoSourceHoldingTank* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+#line 4864 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4864 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTank);
+#line 4864 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = file;
+#line 4864 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = library_photo_source_holding_tank_fetch_by_backing_file (_tmp7_, _tmp8_);
+#line 4864 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4864 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4864 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp7_);
+#line 37849 "Photo.c"
+ }
+#line 4867 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = photo;
+#line 4867 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37855 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_get_offline_by_md5 (LibraryPhotoSourceCollection* self, const gchar* md5) {
+ LibraryPhoto* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+#line 4870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4870 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (md5 != NULL, NULL);
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = md5;
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = media_source_holding_tank_fetch_by_md5 (_tmp1_, _tmp2_);
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 4871 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37886 "Photo.c"
+}
+
+
+gint library_photo_source_collection_get_offline_count (LibraryPhotoSourceCollection* self) {
+ gint result = 0;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 4874 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), 0);
+#line 4875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = source_holding_tank_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank));
+#line 4875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 4875 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 4875 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 4875 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37912 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_collection_get_state_by_file (LibraryPhotoSourceCollection* self, GFile* file, LibraryPhotoSourceCollectionState* state) {
+ LibraryPhotoSourceCollectionState _vala_state = 0;
+ LibraryPhoto* result = NULL;
+ LibraryPhoto* photo = NULL;
+ GFile* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+ LibraryPhoto* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+ LibraryPhoto* _tmp15_ = NULL;
+ LibraryPhoto* _tmp16_ = NULL;
+#line 4878 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 4878 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 4879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 4879 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_source_collection_fetch_by_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _tmp0_);
+#line 4879 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4880 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo;
+#line 4880 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 4881 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE;
+#line 4883 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = photo;
+#line 4883 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 4883 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 37959 "Photo.c"
+ }
+#line 4883 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37963 "Photo.c"
+ }
+#line 4886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file;
+#line 4886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = library_photo_source_collection_fetch_by_editable_file (self, _tmp3_);
+#line 4886 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4886 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp4_;
+#line 4887 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo;
+#line 4887 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_ != NULL) {
+#line 4888 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE;
+#line 4890 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = photo;
+#line 4890 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 4890 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 37985 "Photo.c"
+ }
+#line 4890 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 37989 "Photo.c"
+ }
+#line 4893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = file;
+#line 4893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = library_photo_source_collection_fetch_by_raw_development_file (self, _tmp6_);
+#line 4893 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4893 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp7_;
+#line 4894 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo;
+#line 4894 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ != NULL) {
+#line 4895 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER;
+#line 4897 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = photo;
+#line 4897 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 4897 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 38011 "Photo.c"
+ }
+#line 4897 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38015 "Photo.c"
+ }
+#line 4900 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = file;
+#line 4900 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = library_photo_source_collection_get_trashed_by_file (self, _tmp9_);
+#line 4900 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp10_) : NULL;
+#line 4900 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_ == NULL) {
+#line 4900 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp10_);
+#line 38027 "Photo.c"
+ }
+#line 4900 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4900 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp11_;
+#line 4901 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo;
+#line 4901 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_ != NULL) {
+#line 4902 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH;
+#line 4904 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = photo;
+#line 4904 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 4904 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 38045 "Photo.c"
+ }
+#line 4904 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38049 "Photo.c"
+ }
+#line 4907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = file;
+#line 4907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = library_photo_source_collection_get_offline_by_file (self, _tmp13_);
+#line 4907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp14_) : NULL;
+#line 4907 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp15_ == NULL) {
+#line 4907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp14_);
+#line 38061 "Photo.c"
+ }
+#line 4907 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4907 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp15_;
+#line 4908 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo;
+#line 4908 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_ != NULL) {
+#line 4909 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE;
+#line 4911 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = photo;
+#line 4911 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 4911 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 38079 "Photo.c"
+ }
+#line 4911 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38083 "Photo.c"
+ }
+#line 4914 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_UNKNOWN;
+#line 4916 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = NULL;
+#line 4916 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 4916 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (state) {
+#line 4916 "/home/jens/Source/shotwell/src/Photo.vala"
+ *state = _vala_state;
+#line 38095 "Photo.c"
+ }
+#line 4916 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38099 "Photo.c"
+}
+
+
+static gboolean library_photo_source_collection_real_has_backlink (SourceCollection* base, SourceBacklink* backlink) {
+ LibraryPhotoSourceCollection * self;
+ gboolean result = FALSE;
+ SourceBacklink* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ MediaSourceHoldingTank* _tmp2_ = NULL;
+ MediaSourceHoldingTank* _tmp3_ = NULL;
+ SourceBacklink* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ MediaSourceHoldingTank* _tmp7_ = NULL;
+ MediaSourceHoldingTank* _tmp8_ = NULL;
+ SourceBacklink* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+#line 4919 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4919 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (backlink), FALSE);
+#line 4920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = backlink;
+#line 4920 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = SOURCE_COLLECTION_CLASS (library_photo_source_collection_parent_class)->has_backlink (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), TYPE_SOURCE_COLLECTION, SourceCollection), _tmp0_);
+#line 4920 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 4921 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 4921 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38132 "Photo.c"
+ }
+#line 4923 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4923 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 4923 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = backlink;
+#line 4923 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = source_holding_tank_has_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp4_);
+#line 4923 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_;
+#line 4923 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp3_);
+#line 4923 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 4924 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 4924 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38152 "Photo.c"
+ }
+#line 4926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 4926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = backlink;
+#line 4926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = source_holding_tank_has_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp9_);
+#line 4926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 4926 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp8_);
+#line 4926 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_) {
+#line 4927 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 4927 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38172 "Photo.c"
+ }
+#line 4929 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 4929 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38178 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_remove_backlink (SourceCollection* base, SourceBacklink* backlink) {
+ LibraryPhotoSourceCollection * self;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ MediaSourceHoldingTank* _tmp3_ = NULL;
+ MediaSourceHoldingTank* _tmp4_ = NULL;
+ SourceBacklink* _tmp5_ = NULL;
+ SourceBacklink* _tmp6_ = NULL;
+#line 4932 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4932 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 4933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 4933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = backlink;
+#line 4933 "/home/jens/Source/shotwell/src/Photo.vala"
+ source_holding_tank_remove_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp2_);
+#line 4933 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 4934 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4934 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 4934 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = backlink;
+#line 4934 "/home/jens/Source/shotwell/src/Photo.vala"
+ source_holding_tank_remove_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp5_);
+#line 4934 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_holding_tank_unref0 (_tmp4_);
+#line 4936 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = backlink;
+#line 4936 "/home/jens/Source/shotwell/src/Photo.vala"
+ SOURCE_COLLECTION_CLASS (library_photo_source_collection_parent_class)->remove_backlink (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), TYPE_SOURCE_COLLECTION, SourceCollection), _tmp6_);
+#line 38219 "Photo.c"
+}
+
+
+static TransactionController* library_photo_source_collection_real_get_transaction_controller (MediaSourceCollection* base) {
+ TransactionController* result;
+ LibraryPhotoSourceCollection* self;
+ TransactionController* _tmp0_ = NULL;
+ TransactionController* _tmp2_ = NULL;
+#line 4453 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->_transaction_controller;
+#line 4454 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ == NULL) {
+#line 38234 "Photo.c"
+ MediaSourceTransactionController* _tmp1_ = NULL;
+#line 4455 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = media_source_transaction_controller_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 4455 "/home/jens/Source/shotwell/src/Photo.vala"
+ _transaction_controller_unref0 (self->priv->_transaction_controller);
+#line 4455 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->_transaction_controller = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_TRANSACTION_CONTROLLER, TransactionController);
+#line 38242 "Photo.c"
+ }
+#line 4457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = self->priv->_transaction_controller;
+#line 4457 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 4457 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38250 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_master_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4475 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4475 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 38259 "Photo.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_MEDIA_METADATA (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_MEDIA_METADATA) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_MEDIA_METADATA callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ data1 = closure->data;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 38278 "Photo.c"
+ } else {
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ data2 = closure->data;
+#line 38284 "Photo.c"
+ }
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_MEDIA_METADATA) (marshal_data ? marshal_data : cc->callback);
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ callback (data1, g_value_get_object (param_values + 1), value_get_media_metadata (param_values + 2), data2);
+#line 38290 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_editable_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4478 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4478 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 38299 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_baseline_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4481 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4481 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 38308 "Photo.c"
+}
+
+
+static void library_photo_source_collection_real_source_reimported (LibraryPhotoSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 4484 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 4484 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 38317 "Photo.c"
+}
+
+
+static void library_photo_source_collection_class_init (LibraryPhotoSourceCollectionClass * klass) {
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataCollectionClass *) klass)->finalize = library_photo_source_collection_finalize;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_class_add_private (klass, sizeof (LibraryPhotoSourceCollectionPrivate));
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->create_trashcan = library_photo_source_collection_real_create_trashcan;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->create_offline_bin = library_photo_source_collection_real_create_offline_bin;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->create_media_monitor = library_photo_source_collection_real_create_media_monitor;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = library_photo_source_collection_real_holds_type_of_source;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->get_typename = library_photo_source_collection_real_get_typename;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->is_file_recognized = library_photo_source_collection_real_is_file_recognized;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataCollectionClass *) klass)->notify_contents_altered = library_photo_source_collection_real_notify_contents_altered;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataCollectionClass *) klass)->items_altered = library_photo_source_collection_real_items_altered;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->postprocess_imported_media = library_photo_source_collection_real_postprocess_imported_media;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->notify_master_reimported = library_photo_source_collection_real_notify_master_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->notify_editable_reimported = library_photo_source_collection_real_notify_editable_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->notify_source_reimported = library_photo_source_collection_real_notify_source_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->notify_baseline_reimported = library_photo_source_collection_real_notify_baseline_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->fetch_by_numeric_id = library_photo_source_collection_real_fetch_by_numeric_id;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->fetch_by_source_id = library_photo_source_collection_real_fetch_by_source_id;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceCollectionClass *) klass)->get_event_source_ids = library_photo_source_collection_real_get_event_source_ids;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((SourceCollectionClass *) klass)->has_backlink = library_photo_source_collection_real_has_backlink;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((SourceCollectionClass *) klass)->remove_backlink = library_photo_source_collection_real_remove_backlink;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->master_reimported = library_photo_source_collection_real_master_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->editable_reimported = library_photo_source_collection_real_editable_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->baseline_reimported = library_photo_source_collection_real_baseline_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((LibraryPhotoSourceCollectionClass *) klass)->source_reimported = library_photo_source_collection_real_source_reimported;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ MEDIA_SOURCE_COLLECTION_CLASS (klass)->get_transaction_controller = library_photo_source_collection_real_get_transaction_controller;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("master_reimported", TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (LibraryPhotoSourceCollectionClass, master_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_MEDIA_METADATA, G_TYPE_NONE, 2, TYPE_LIBRARY_PHOTO, TYPE_PHOTO_METADATA);
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("editable_reimported", TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (LibraryPhotoSourceCollectionClass, editable_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_MEDIA_METADATA, G_TYPE_NONE, 2, TYPE_LIBRARY_PHOTO, TYPE_PHOTO_METADATA);
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("baseline_reimported", TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (LibraryPhotoSourceCollectionClass, baseline_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_MEDIA_METADATA, G_TYPE_NONE, 2, TYPE_LIBRARY_PHOTO, TYPE_PHOTO_METADATA);
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_new ("source_reimported", TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (LibraryPhotoSourceCollectionClass, source_reimported), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_MEDIA_METADATA, G_TYPE_NONE, 2, TYPE_LIBRARY_PHOTO, TYPE_PHOTO_METADATA);
+#line 38382 "Photo.c"
+}
+
+
+static void library_photo_source_collection_instance_init (LibraryPhotoSourceCollection * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeTreeMultiMap* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ GeeTreeMultiMap* _tmp5_ = NULL;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv = LIBRARY_PHOTO_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 4461 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->_transaction_controller = NULL;
+#line 4462 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 4462 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->by_editable_file = _tmp0_;
+#line 4464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 4464 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->by_raw_development_file = _tmp1_;
+#line 4466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_tree_multi_map_new (G_TYPE_INT64, (GBoxedCopyFunc) _int64_dup, g_free, TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _int64_compare_gcompare_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 4466 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->filesize_to_photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 4468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_INT64, (GBoxedCopyFunc) _int64_dup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, _int64_equal_gee_equal_data_func, NULL, NULL);
+#line 4468 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->photo_to_master_filesize = _tmp3_;
+#line 4470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_INT64, (GBoxedCopyFunc) _int64_dup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, _int64_equal_gee_equal_data_func, NULL, NULL);
+#line 4470 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->photo_to_editable_filesize = _tmp4_;
+#line 4472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_tree_multi_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_INT64, (GBoxedCopyFunc) _int64_dup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 4472 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->photo_to_raw_development_filesize = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 38421 "Photo.c"
+}
+
+
+static void library_photo_source_collection_finalize (DataCollection* obj) {
+ LibraryPhotoSourceCollection * self;
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection);
+#line 4461 "/home/jens/Source/shotwell/src/Photo.vala"
+ _transaction_controller_unref0 (self->priv->_transaction_controller);
+#line 4462 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->by_editable_file);
+#line 4464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->by_raw_development_file);
+#line 4466 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->filesize_to_photo);
+#line 4468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->photo_to_master_filesize);
+#line 4470 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->photo_to_editable_filesize);
+#line 4472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->photo_to_raw_development_filesize);
+#line 4442 "/home/jens/Source/shotwell/src/Photo.vala"
+ DATA_COLLECTION_CLASS (library_photo_source_collection_parent_class)->finalize (obj);
+#line 38445 "Photo.c"
+}
+
+
+GType library_photo_source_collection_get_type (void) {
+ static volatile gsize library_photo_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&library_photo_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryPhotoSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_photo_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryPhotoSourceCollection), 0, (GInstanceInitFunc) library_photo_source_collection_instance_init, NULL };
+ GType library_photo_source_collection_type_id;
+ library_photo_source_collection_type_id = g_type_register_static (TYPE_MEDIA_SOURCE_COLLECTION, "LibraryPhotoSourceCollection", &g_define_type_info, 0);
+ g_once_init_leave (&library_photo_source_collection_type_id__volatile, library_photo_source_collection_type_id);
+ }
+ return library_photo_source_collection_type_id__volatile;
+}
+
+
+static void _library_photo_generate_thumbnails_one_shot_callback (gpointer self) {
+#line 4964 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_generate_thumbnails ((LibraryPhoto*) self);
+#line 38464 "Photo.c"
+}
+
+
+static LibraryPhoto* library_photo_construct (GType object_type, PhotoRow* row) {
+ LibraryPhoto * self = NULL;
+ PhotoRow* _tmp0_ = NULL;
+ OneShotScheduler* _tmp1_ = NULL;
+ PhotoRow* _tmp2_ = NULL;
+ guint64 _tmp3_ = 0ULL;
+ PhotoRow* _tmp7_ = NULL;
+ guint64 _tmp8_ = 0ULL;
+#line 4959 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_ROW (row), NULL);
+#line 4960 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = row;
+#line 4960 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (LibraryPhoto*) photo_construct (object_type, _tmp0_);
+#line 4962 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->import_keywords);
+#line 4962 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->import_keywords = NULL;
+#line 4964 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = one_shot_scheduler_new ("LibraryPhoto", _library_photo_generate_thumbnails_one_shot_callback, self);
+#line 4964 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->thumbnail_scheduler);
+#line 4964 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->thumbnail_scheduler = _tmp1_;
+#line 4967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = row;
+#line 4967 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->flags;
+#line 4967 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp3_ & (LIBRARY_PHOTO_FLAG_TRASH | LIBRARY_PHOTO_FLAG_OFFLINE)) != ((guint64) 0)) {
+#line 38498 "Photo.c"
+ LibraryPhotoSourceCollection* _tmp4_ = NULL;
+ PhotoRow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 4968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = library_photo_global;
+#line 4968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = row;
+#line 4968 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp5_->backlinks;
+#line 4968 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_source_rehydrate_backlinks (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp6_);
+#line 38510 "Photo.c"
+ }
+#line 4970 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = row;
+#line 4970 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->flags;
+#line 4970 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp8_ & (LIBRARY_PHOTO_FLAG_HIDDEN | LIBRARY_PHOTO_FLAG_FAVORITE)) != ((guint64) 0)) {
+#line 38518 "Photo.c"
+ PhotoRow* _tmp9_ = NULL;
+ guint64 _tmp10_ = 0ULL;
+#line 4971 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = row;
+#line 4971 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_->flags;
+#line 4971 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_upgrade_rating_flags (self, _tmp10_);
+#line 38527 "Photo.c"
+ }
+#line 4959 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 38531 "Photo.c"
+}
+
+
+static LibraryPhoto* library_photo_new (PhotoRow* row) {
+#line 4959 "/home/jens/Source/shotwell/src/Photo.vala"
+ return library_photo_construct (TYPE_LIBRARY_PHOTO, row);
+#line 38538 "Photo.c"
+}
+
+
+static LibraryPhoto* library_photo_construct_from_import_params (GType object_type, PhotoImportParams* import_params) {
+ LibraryPhoto * self = NULL;
+ PhotoImportParams* _tmp0_ = NULL;
+ PhotoRow* _tmp1_ = NULL;
+ PhotoImportParams* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ OneShotScheduler* _tmp5_ = NULL;
+ PhotoImportParams* _tmp6_ = NULL;
+ PhotoRow* _tmp7_ = NULL;
+ guint64 _tmp8_ = 0ULL;
+ PhotoImportParams* _tmp13_ = NULL;
+ PhotoRow* _tmp14_ = NULL;
+ guint64 _tmp15_ = 0ULL;
+#line 4974 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_PARAMS (import_params), NULL);
+#line 4975 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = import_params;
+#line 4975 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_->row;
+#line 4975 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (LibraryPhoto*) photo_construct (object_type, _tmp1_);
+#line 4977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = import_params;
+#line 4977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->keywords;
+#line 4977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 4977 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->import_keywords);
+#line 4977 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->import_keywords = _tmp4_;
+#line 4978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = one_shot_scheduler_new ("LibraryPhoto", _library_photo_generate_thumbnails_one_shot_callback, self);
+#line 4978 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->thumbnail_scheduler);
+#line 4978 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->thumbnail_scheduler = _tmp5_;
+#line 4981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = import_params;
+#line 4981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_->row;
+#line 4981 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_->flags;
+#line 4981 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp8_ & (LIBRARY_PHOTO_FLAG_TRASH | LIBRARY_PHOTO_FLAG_OFFLINE)) != ((guint64) 0)) {
+#line 38588 "Photo.c"
+ LibraryPhotoSourceCollection* _tmp9_ = NULL;
+ PhotoImportParams* _tmp10_ = NULL;
+ PhotoRow* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 4982 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = library_photo_global;
+#line 4982 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = import_params;
+#line 4982 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_->row;
+#line 4982 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_->backlinks;
+#line 4982 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_source_rehydrate_backlinks (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp12_);
+#line 38603 "Photo.c"
+ }
+#line 4984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = import_params;
+#line 4984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _tmp13_->row;
+#line 4984 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_->flags;
+#line 4984 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp15_ & (LIBRARY_PHOTO_FLAG_HIDDEN | LIBRARY_PHOTO_FLAG_FAVORITE)) != ((guint64) 0)) {
+#line 38613 "Photo.c"
+ PhotoImportParams* _tmp16_ = NULL;
+ PhotoRow* _tmp17_ = NULL;
+ guint64 _tmp18_ = 0ULL;
+#line 4985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = import_params;
+#line 4985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_->row;
+#line 4985 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_->flags;
+#line 4985 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_upgrade_rating_flags (self, _tmp18_);
+#line 38625 "Photo.c"
+ }
+#line 4974 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 38629 "Photo.c"
+}
+
+
+static LibraryPhoto* library_photo_new_from_import_params (PhotoImportParams* import_params) {
+#line 4974 "/home/jens/Source/shotwell/src/Photo.vala"
+ return library_photo_construct_from_import_params (TYPE_LIBRARY_PHOTO, import_params);
+#line 38636 "Photo.c"
+}
+
+
+void library_photo_init (ProgressMonitor monitor, void* monitor_target) {
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ GeeArrayList* all = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* all_photos = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* trashed_photos = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ GeeArrayList* offline_photos = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ gint count = 0;
+ GeeArrayList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ LibraryPhotoSourceCollection* _tmp34_ = NULL;
+ GeeArrayList* _tmp35_ = NULL;
+ GeeCollection* _tmp36_ = NULL;
+ GeeCollection* _tmp37_ = NULL;
+ LibraryPhotoSourceCollection* _tmp38_ = NULL;
+ GeeArrayList* _tmp39_ = NULL;
+ LibraryPhotoSourceCollection* _tmp40_ = NULL;
+ GeeArrayList* _tmp41_ = NULL;
+#line 4989 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_init_photo ();
+#line 4991 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = library_photo_source_collection_new ();
+#line 4991 "/home/jens/Source/shotwell/src/Photo.vala"
+ _data_collection_unref0 (library_photo_global);
+#line 4991 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_global = _tmp0_;
+#line 4995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_table_get_instance ();
+#line 4995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 4995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_table_get_all (_tmp2_);
+#line 4995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 4995 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp2_);
+#line 4995 "/home/jens/Source/shotwell/src/Photo.vala"
+ all = _tmp4_;
+#line 4996 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 4996 "/home/jens/Source/shotwell/src/Photo.vala"
+ all_photos = _tmp5_;
+#line 4997 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 4997 "/home/jens/Source/shotwell/src/Photo.vala"
+ trashed_photos = _tmp6_;
+#line 4998 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 4998 "/home/jens/Source/shotwell/src/Photo.vala"
+ offline_photos = _tmp7_;
+#line 4999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = all;
+#line 4999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 4999 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tmp9_;
+#line 4999 "/home/jens/Source/shotwell/src/Photo.vala"
+ count = _tmp10_;
+#line 38705 "Photo.c"
+ {
+ gint ctr = 0;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ ctr = 0;
+#line 38710 "Photo.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = TRUE;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 38717 "Photo.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ PhotoRow* row = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+ LibraryPhoto* photo = NULL;
+ PhotoRow* _tmp18_ = NULL;
+ LibraryPhoto* _tmp19_ = NULL;
+ guint64 flags = 0ULL;
+ PhotoRow* _tmp20_ = NULL;
+ guint64 _tmp21_ = 0ULL;
+ guint64 _tmp22_ = 0ULL;
+ ProgressMonitor _tmp30_ = NULL;
+ void* _tmp30__target = NULL;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp11_) {
+#line 38735 "Photo.c"
+ gint _tmp12_ = 0;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = ctr;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ ctr = _tmp12_ + 1;
+#line 38741 "Photo.c"
+ }
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = FALSE;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = ctr;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = count;
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 38753 "Photo.c"
+ }
+#line 5001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = all;
+#line 5001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = ctr;
+#line 5001 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp16_);
+#line 5001 "/home/jens/Source/shotwell/src/Photo.vala"
+ row = (PhotoRow*) _tmp17_;
+#line 5002 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = row;
+#line 5002 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = library_photo_new (_tmp18_);
+#line 5002 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp19_;
+#line 5003 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = row;
+#line 5003 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_->flags;
+#line 5003 "/home/jens/Source/shotwell/src/Photo.vala"
+ flags = _tmp21_;
+#line 5005 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = flags;
+#line 5005 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp22_ & LIBRARY_PHOTO_FLAG_TRASH) != ((guint64) 0)) {
+#line 38779 "Photo.c"
+ GeeArrayList* _tmp23_ = NULL;
+ LibraryPhoto* _tmp24_ = NULL;
+#line 5006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = trashed_photos;
+#line 5006 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = photo;
+#line 5006 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp24_);
+#line 38788 "Photo.c"
+ } else {
+ guint64 _tmp25_ = 0ULL;
+#line 5007 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = flags;
+#line 5007 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp25_ & LIBRARY_PHOTO_FLAG_OFFLINE) != ((guint64) 0)) {
+#line 38795 "Photo.c"
+ GeeArrayList* _tmp26_ = NULL;
+ LibraryPhoto* _tmp27_ = NULL;
+#line 5008 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = offline_photos;
+#line 5008 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = photo;
+#line 5008 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp27_);
+#line 38804 "Photo.c"
+ } else {
+ GeeArrayList* _tmp28_ = NULL;
+ LibraryPhoto* _tmp29_ = NULL;
+#line 5010 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = all_photos;
+#line 5010 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = photo;
+#line 5010 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp29_);
+#line 38814 "Photo.c"
+ }
+ }
+#line 5012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = monitor;
+#line 5012 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30__target = monitor_target;
+#line 5012 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp30_ != NULL) {
+#line 38823 "Photo.c"
+ ProgressMonitor _tmp31_ = NULL;
+ void* _tmp31__target = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+#line 5013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = monitor;
+#line 5013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31__target = monitor_target;
+#line 5013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = ctr;
+#line 5013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = count;
+#line 5013 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ ((guint64) _tmp32_, (guint64) _tmp33_, TRUE, _tmp31__target);
+#line 38838 "Photo.c"
+ }
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 5000 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (row);
+#line 38844 "Photo.c"
+ }
+ }
+ }
+#line 5016 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = library_photo_global;
+#line 5016 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = all_photos;
+#line 5016 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 5016 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tmp36_;
+#line 5016 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp37_);
+#line 5017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = library_photo_global;
+#line 5017 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = trashed_photos;
+#line 5017 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_collection_add_many_to_trash (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5018 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = library_photo_global;
+#line 5018 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = offline_photos;
+#line 5018 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_collection_add_many_to_offline (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 4988 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (offline_photos);
+#line 4988 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (trashed_photos);
+#line 4988 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (all_photos);
+#line 4988 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (all);
+#line 38878 "Photo.c"
+}
+
+
+void library_photo_terminate (void) {
+#line 5022 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_terminate_photo ();
+#line 38885 "Photo.c"
+}
+
+
+ImportResult library_photo_import_create (PhotoImportParams* params, LibraryPhoto** photo) {
+ LibraryPhoto* _vala_photo = NULL;
+ ImportResult result = 0;
+ PhotoID photo_id = {0};
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ PhotoImportParams* _tmp2_ = NULL;
+ PhotoRow* _tmp3_ = NULL;
+ PhotoID _tmp4_ = {0};
+ PhotoID _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+ PhotoImportParams* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+#line 5029 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_PARAMS (params), 0);
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = params;
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->row;
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_add (_tmp1_, _tmp3_, &_tmp4_);
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp1_);
+#line 5031 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id = _tmp5_;
+#line 5032 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = photo_id_is_invalid (&photo_id);
+#line 5032 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 5033 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_vala_photo);
+#line 5033 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_photo = NULL;
+#line 5035 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_DATABASE_ERROR;
+#line 5035 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (photo) {
+#line 5035 "/home/jens/Source/shotwell/src/Photo.vala"
+ *photo = _vala_photo;
+#line 38934 "Photo.c"
+ } else {
+#line 5035 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_vala_photo);
+#line 38938 "Photo.c"
+ }
+#line 5035 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38942 "Photo.c"
+ }
+#line 5039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = params;
+#line 5039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = library_photo_new_from_import_params (_tmp7_);
+#line 5039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_vala_photo);
+#line 5039 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_photo = _tmp8_;
+#line 5041 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 5041 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (photo) {
+#line 5041 "/home/jens/Source/shotwell/src/Photo.vala"
+ *photo = _vala_photo;
+#line 38958 "Photo.c"
+ } else {
+#line 5041 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_vala_photo);
+#line 38962 "Photo.c"
+ }
+#line 5041 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 38966 "Photo.c"
+}
+
+
+void library_photo_import_failed (LibraryPhoto* photo) {
+ GError * _inner_error_ = NULL;
+#line 5044 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 38974 "Photo.c"
+ {
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ PhotoID _tmp3_ = {0};
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo;
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO, Photo), &_tmp3_);
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_remove (_tmp1_, &_tmp3_, &_inner_error_);
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp1_);
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 38996 "Photo.c"
+ goto __catch393_database_error;
+ }
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 5046 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39005 "Photo.c"
+ }
+ }
+ goto __finally393;
+ __catch393_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+#line 5045 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 5045 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 5048 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = err;
+#line 5048 "/home/jens/Source/shotwell/src/Photo.vala"
+ app_window_database_error (_tmp4_);
+#line 5045 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 39023 "Photo.c"
+ }
+ __finally393:
+#line 5045 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5045 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 5045 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 5045 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39034 "Photo.c"
+ }
+}
+
+
+static void library_photo_real_notify_master_reimported (Photo* base, PhotoMetadata* metadata) {
+ LibraryPhoto * self;
+ PhotoMetadata* _tmp0_ = NULL;
+ LibraryPhotoSourceCollection* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+#line 5052 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5052 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 5053 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 5053 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_CLASS (library_photo_parent_class)->notify_master_reimported (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp0_);
+#line 5055 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = library_photo_global;
+#line 5055 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 5055 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_notify_master_reimported (_tmp1_, self, _tmp2_);
+#line 39058 "Photo.c"
+}
+
+
+static void library_photo_real_notify_editable_reimported (Photo* base, PhotoMetadata* metadata) {
+ LibraryPhoto * self;
+ PhotoMetadata* _tmp0_ = NULL;
+ LibraryPhotoSourceCollection* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+#line 5058 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5058 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 5059 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 5059 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_CLASS (library_photo_parent_class)->notify_editable_reimported (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp0_);
+#line 5061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = library_photo_global;
+#line 5061 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 5061 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_notify_editable_reimported (_tmp1_, self, _tmp2_);
+#line 39081 "Photo.c"
+}
+
+
+static void library_photo_real_notify_source_reimported (Photo* base, PhotoMetadata* metadata) {
+ LibraryPhoto * self;
+ PhotoMetadata* _tmp0_ = NULL;
+ LibraryPhotoSourceCollection* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+#line 5064 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5064 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 5065 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 5065 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_CLASS (library_photo_parent_class)->notify_source_reimported (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp0_);
+#line 5067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = library_photo_global;
+#line 5067 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 5067 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_notify_source_reimported (_tmp1_, self, _tmp2_);
+#line 39104 "Photo.c"
+}
+
+
+static void library_photo_real_notify_baseline_reimported (Photo* base, PhotoMetadata* metadata) {
+ LibraryPhoto * self;
+ PhotoMetadata* _tmp0_ = NULL;
+ LibraryPhotoSourceCollection* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+#line 5070 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5070 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 5071 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 5071 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_CLASS (library_photo_parent_class)->notify_baseline_reimported (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp0_);
+#line 5073 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = library_photo_global;
+#line 5073 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 5073 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_collection_notify_baseline_reimported (_tmp1_, self, _tmp2_);
+#line 39127 "Photo.c"
+}
+
+
+static void library_photo_generate_thumbnails (LibraryPhoto* self) {
+ GError * _inner_error_ = NULL;
+#line 5076 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (self));
+#line 39135 "Photo.c"
+ {
+#line 5078 "/home/jens/Source/shotwell/src/Photo.vala"
+ thumbnail_cache_import_from_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), TRUE, &_inner_error_);
+#line 5078 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 39141 "Photo.c"
+ goto __catch394_g_error;
+ }
+ }
+ goto __finally394;
+ __catch394_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 5077 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 5077 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 5080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 5080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 5080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = err;
+#line 5080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->message;
+#line 5080 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:5080: Unable to generate thumbnails for %s: %s", _tmp1_, _tmp3_);
+#line 5080 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp1_);
+#line 5077 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 39171 "Photo.c"
+ }
+ __finally394:
+#line 5077 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5077 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 5077 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 5077 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39182 "Photo.c"
+ }
+#line 5084 "/home/jens/Source/shotwell/src/Photo.vala"
+ thumbnail_source_notify_thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 39186 "Photo.c"
+}
+
+
+GeeCollection* library_photo_get_import_keywords (LibraryPhoto* self) {
+ GeeCollection* result = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 5088 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (self), NULL);
+#line 5089 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->import_keywords;
+#line 5089 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 5089 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 5089 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 39204 "Photo.c"
+}
+
+
+void library_photo_clear_import_keywords (LibraryPhoto* self) {
+#line 5092 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (self));
+#line 5093 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->import_keywords);
+#line 5093 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->import_keywords = NULL;
+#line 39215 "Photo.c"
+}
+
+
+static void library_photo_real_notify_altered (DataObject* base, Alteration* alteration) {
+ LibraryPhoto * self;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ Alteration* _tmp5_ = NULL;
+#line 5096 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5096 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 5098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = self->priv->block_thumbnail_generation;
+#line 5098 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp1_) {
+#line 39232 "Photo.c"
+ Alteration* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 5098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = alteration;
+#line 5098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = alteration_has_subject (_tmp2_, "image");
+#line 5098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_;
+#line 39241 "Photo.c"
+ } else {
+#line 5098 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = FALSE;
+#line 39245 "Photo.c"
+ }
+#line 5098 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_) {
+#line 39249 "Photo.c"
+ OneShotScheduler* _tmp4_ = NULL;
+#line 5099 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->thumbnail_scheduler;
+#line 5099 "/home/jens/Source/shotwell/src/Photo.vala"
+ one_shot_scheduler_at_priority_idle (_tmp4_, G_PRIORITY_LOW);
+#line 39255 "Photo.c"
+ }
+#line 5101 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = alteration;
+#line 5101 "/home/jens/Source/shotwell/src/Photo.vala"
+ DATA_OBJECT_CLASS (library_photo_parent_class)->notify_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), TYPE_DATA_OBJECT, DataObject), _tmp5_);
+#line 39261 "Photo.c"
+}
+
+
+static GdkPixbuf* library_photo_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error) {
+ LibraryPhoto * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 5104 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5104 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 5105 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = thumbnail_source_get_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), (gint) THUMBNAIL_CACHE_SIZE_BIG, &_inner_error_);
+#line 5105 "/home/jens/Source/shotwell/src/Photo.vala"
+ pixbuf = _tmp0_;
+#line 5105 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5105 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5105 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 39286 "Photo.c"
+ }
+#line 5107 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = scaling_perform_on_pixbuf (scaling, pixbuf, GDK_INTERP_BILINEAR, TRUE);
+#line 5107 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp1_;
+#line 5107 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (pixbuf);
+#line 5107 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 39296 "Photo.c"
+}
+
+
+static void library_photo_real_rotate (Photo* base, Rotation rotation) {
+ LibraryPhoto * self;
+ Rotation _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 5110 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5112 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->block_thumbnail_generation = TRUE;
+#line 5113 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = rotation;
+#line 5113 "/home/jens/Source/shotwell/src/Photo.vala"
+ PHOTO_CLASS (library_photo_parent_class)->rotate (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp0_);
+#line 5114 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->block_thumbnail_generation = FALSE;
+#line 39314 "Photo.c"
+ {
+ Rotation _tmp1_ = 0;
+#line 5122 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = rotation;
+#line 5122 "/home/jens/Source/shotwell/src/Photo.vala"
+ thumbnail_cache_rotate (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp1_, &_inner_error_);
+#line 5122 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 39323 "Photo.c"
+ goto __catch395_g_error;
+ }
+ }
+ goto __finally395;
+ __catch395_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 5121 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 5121 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 5125 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 5125 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 5125 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = err;
+#line 5125 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->message;
+#line 5125 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_warning ("Photo.vala:5125: Unable to update thumbnails for %s: %s", _tmp3_, _tmp5_);
+#line 5125 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp3_);
+#line 5121 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 39353 "Photo.c"
+ }
+ __finally395:
+#line 5121 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5121 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 5121 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 5121 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39364 "Photo.c"
+ }
+#line 5128 "/home/jens/Source/shotwell/src/Photo.vala"
+ thumbnail_source_notify_thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 39368 "Photo.c"
+}
+
+
+static GdkPixbuf* library_photo_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ LibraryPhoto * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 5132 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = scale;
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = thumbnail_cache_fetch (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp1_, &_inner_error_);
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp2_;
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 39394 "Photo.c"
+ }
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp0_;
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = NULL;
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp3_;
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp0_);
+#line 5133 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 39406 "Photo.c"
+}
+
+
+static void _library_photo_on_duplicate_progress_gfile_progress_callback (gint64 current_num_bytes, gint64 total_num_bytes, gpointer self) {
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_on_duplicate_progress ((LibraryPhoto*) self, current_num_bytes, total_num_bytes);
+#line 39413 "Photo.c"
+}
+
+
+static void library_photo_duplicate_backing_photo (LibraryPhoto* self, BackingPhotoRow* backing, BackingPhotoID* result, GError** error) {
+ BackingPhotoID backing_id = {0};
+ gboolean _tmp0_ = FALSE;
+ BackingPhotoRow* _tmp1_ = NULL;
+ GFile* file = NULL;
+ BackingPhotoRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 5138 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (self));
+#line 5138 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((backing == NULL) || IS_BACKING_PHOTO_ROW (backing));
+#line 5139 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_id_init (&backing_id, BACKING_PHOTO_ID_INVALID);
+#line 5140 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = backing;
+#line 5140 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_ == NULL) {
+#line 5140 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = TRUE;
+#line 39440 "Photo.c"
+ } else {
+ BackingPhotoRow* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 5140 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = backing;
+#line 5140 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_->filepath;
+#line 5140 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp3_ == NULL;
+#line 39450 "Photo.c"
+ }
+#line 5140 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_) {
+#line 5141 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = backing_id;
+#line 5141 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39458 "Photo.c"
+ }
+#line 5143 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = backing;
+#line 5143 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_->filepath;
+#line 5143 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = g_file_new_for_path (_tmp5_);
+#line 5143 "/home/jens/Source/shotwell/src/Photo.vala"
+ file = _tmp6_;
+#line 5144 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = file;
+#line 5144 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = g_file_query_exists (_tmp7_, NULL);
+#line 5144 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_) {
+#line 39474 "Photo.c"
+ GFile* dupe_file = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ BackingPhotoRow* state = NULL;
+ GFile* _tmp11_ = NULL;
+ DetectedPhotoInformation* _tmp12_ = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ BackingPhotoRow* _tmp14_ = NULL;
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = file;
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = library_files_duplicate (_tmp9_, _library_photo_on_duplicate_progress_gfile_progress_callback, self, TRUE, &_inner_error_);
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_file = _tmp10_;
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 5145 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39498 "Photo.c"
+ }
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = dupe_file;
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_query_backing_photo_row (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp11_, PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5, &_tmp12_, &_inner_error_);
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ detected = _tmp12_;
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ state = _tmp13_;
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 5148 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39522 "Photo.c"
+ }
+#line 5150 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = state;
+#line 5150 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_ != NULL) {
+#line 39528 "Photo.c"
+ BackingPhotoTable* _tmp15_ = NULL;
+ BackingPhotoTable* _tmp16_ = NULL;
+ BackingPhotoRow* _tmp17_ = NULL;
+ BackingPhotoRow* _tmp18_ = NULL;
+ BackingPhotoID _tmp19_ = {0};
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = backing_photo_table_get_instance ();
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = state;
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_photo_table_add (_tmp16_, _tmp17_, &_inner_error_);
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp16_);
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (state);
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 5151 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39558 "Photo.c"
+ }
+#line 5152 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = state;
+#line 5152 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_->id;
+#line 5152 "/home/jens/Source/shotwell/src/Photo.vala"
+ backing_id = _tmp19_;
+#line 39566 "Photo.c"
+ }
+#line 5144 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (state);
+#line 5144 "/home/jens/Source/shotwell/src/Photo.vala"
+ _detected_photo_information_unref0 (detected);
+#line 5144 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 39574 "Photo.c"
+ }
+#line 5156 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = backing_id;
+#line 5156 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (file);
+#line 5156 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 39582 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_duplicate (LibraryPhoto* self, GError** error) {
+ LibraryPhoto* result = NULL;
+ GFile* dupe_file = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ BackingPhotoID dupe_editable_id = {0};
+ BackingPhotoRow* _tmp4_ = NULL;
+ BackingPhotoRow* _tmp5_ = NULL;
+ BackingPhotoID _tmp6_ = {0};
+ BackingPhotoID _tmp7_ = {0};
+ BackingPhotoID dupe_raw_shotwell_id = {0};
+ BackingPhotoRow* _tmp8_ = NULL;
+ BackingPhotoRow* _tmp9_ = NULL;
+ BackingPhotoID _tmp10_ = {0};
+ BackingPhotoID _tmp11_ = {0};
+ BackingPhotoID dupe_raw_camera_id = {0};
+ BackingPhotoRow* _tmp12_ = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ BackingPhotoID _tmp14_ = {0};
+ BackingPhotoID _tmp15_ = {0};
+ BackingPhotoID dupe_raw_embedded_id = {0};
+ BackingPhotoRow* _tmp16_ = NULL;
+ BackingPhotoRow* _tmp17_ = NULL;
+ BackingPhotoID _tmp18_ = {0};
+ BackingPhotoID _tmp19_ = {0};
+ PhotoID dupe_id = {0};
+ PhotoTable* _tmp20_ = NULL;
+ PhotoTable* _tmp21_ = NULL;
+ PhotoID _tmp22_ = {0};
+ GFile* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ BackingPhotoID _tmp26_ = {0};
+ BackingPhotoID _tmp27_ = {0};
+ BackingPhotoID _tmp28_ = {0};
+ BackingPhotoID _tmp29_ = {0};
+ PhotoID _tmp30_ = {0};
+ PhotoID _tmp31_ = {0};
+ PhotoRow* dupe_row = NULL;
+ PhotoTable* _tmp32_ = NULL;
+ PhotoTable* _tmp33_ = NULL;
+ PhotoID _tmp34_ = {0};
+ PhotoRow* _tmp35_ = NULL;
+ PhotoRow* _tmp36_ = NULL;
+ LibraryPhoto* dupe = NULL;
+ PhotoRow* _tmp37_ = NULL;
+ LibraryPhoto* _tmp38_ = NULL;
+ LibraryPhoto* _tmp39_ = NULL;
+ LibraryPhotoSourceCollection* _tmp40_ = NULL;
+ LibraryPhoto* _tmp41_ = NULL;
+ LibraryPhoto* _tmp42_ = NULL;
+ Event* _tmp43_ = NULL;
+ Event* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+ GeeCollection* tags = NULL;
+ TagSourceCollection* _tmp50_ = NULL;
+ GeeList* _tmp51_ = NULL;
+ GeeCollection* _tmp52_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 5159 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (self), NULL);
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = library_files_duplicate (_tmp1_, _library_photo_on_duplicate_progress_gfile_progress_callback, self, TRUE, &_inner_error_);
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _tmp2_;
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp1_);
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_file = _tmp3_;
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5161 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 39667 "Photo.c"
+ }
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo));
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp4_;
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_duplicate_backing_photo (self, _tmp5_, &_tmp6_, &_inner_error_);
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = _tmp6_;
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp5_);
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_editable_id = _tmp7_;
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 5164 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 39689 "Photo.c"
+ }
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = photo_get_raw_development_photo_row (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), RAW_DEVELOPER_SHOTWELL);
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_duplicate_backing_photo (self, _tmp9_, &_tmp10_, &_inner_error_);
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp9_);
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_raw_shotwell_id = _tmp11_;
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 5165 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 39711 "Photo.c"
+ }
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo_get_raw_development_photo_row (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), RAW_DEVELOPER_CAMERA);
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tmp12_;
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_duplicate_backing_photo (self, _tmp13_, &_tmp14_, &_inner_error_);
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp14_;
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp13_);
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_raw_camera_id = _tmp15_;
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 5167 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 39733 "Photo.c"
+ }
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo_get_raw_development_photo_row (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), RAW_DEVELOPER_EMBEDDED);
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = _tmp16_;
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_duplicate_backing_photo (self, _tmp17_, &_tmp18_, &_inner_error_);
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = _tmp18_;
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _backing_photo_row_unref0 (_tmp17_);
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_raw_embedded_id = _tmp19_;
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 5169 "/home/jens/Source/shotwell/src/Photo.vala"
+ return NULL;
+#line 39755 "Photo.c"
+ }
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = photo_table_get_instance ();
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp20_;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), &_tmp22_);
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = dupe_file;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = g_file_get_path (_tmp23_);
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = dupe_editable_id;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = dupe_raw_shotwell_id;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = dupe_raw_camera_id;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = dupe_raw_embedded_id;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_duplicate (_tmp21_, &_tmp22_, _tmp25_, &_tmp26_, &_tmp27_, &_tmp28_, &_tmp29_, &_tmp30_);
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = _tmp30_;
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp25_);
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp21_);
+#line 5173 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_id = _tmp31_;
+#line 5175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = photo_table_get_instance ();
+#line 5175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tmp32_;
+#line 5175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = dupe_id;
+#line 5175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = photo_table_get_row (_tmp33_, &_tmp34_);
+#line 5175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = _tmp35_;
+#line 5175 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp33_);
+#line 5175 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe_row = _tmp36_;
+#line 5178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = dupe_row;
+#line 5178 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = library_photo_new (_tmp37_);
+#line 5178 "/home/jens/Source/shotwell/src/Photo.vala"
+ dupe = _tmp38_;
+#line 5181 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = dupe;
+#line 5181 "/home/jens/Source/shotwell/src/Photo.vala"
+ thumbnail_cache_duplicate (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 5184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = library_photo_global;
+#line 5184 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = dupe;
+#line 5184 "/home/jens/Source/shotwell/src/Photo.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_DATA_OBJECT, DataObject));
+#line 5187 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = dupe;
+#line 5187 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = media_source_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5187 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp43_;
+#line 5187 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp44_ != NULL;
+#line 5187 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp44_);
+#line 5187 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp45_) {
+#line 39829 "Photo.c"
+ LibraryPhoto* _tmp46_ = NULL;
+ Event* _tmp47_ = NULL;
+ Event* _tmp48_ = NULL;
+ LibraryPhoto* _tmp49_ = NULL;
+#line 5188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = dupe;
+#line 5188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = media_source_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _tmp47_;
+#line 5188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = dupe;
+#line 5188 "/home/jens/Source/shotwell/src/Photo.vala"
+ event_attach (_tmp48_, G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5188 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp48_);
+#line 39846 "Photo.c"
+ }
+#line 5191 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = tag_global;
+#line 5191 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = tag_source_collection_fetch_for_source (_tmp50_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5191 "/home/jens/Source/shotwell/src/Photo.vala"
+ tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 5192 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = tags;
+#line 5192 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp52_ != NULL) {
+#line 39858 "Photo.c"
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeCollection* _tmp53_ = NULL;
+ GeeIterator* _tmp54_ = NULL;
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = tags;
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_it = _tmp54_;
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 39871 "Photo.c"
+ GeeIterator* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp57_ = NULL;
+ gpointer _tmp58_ = NULL;
+ Tag* _tmp59_ = NULL;
+ LibraryPhoto* _tmp60_ = NULL;
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = _tag_it;
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = gee_iterator_next (_tmp55_);
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp56_) {
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 39887 "Photo.c"
+ }
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = _tag_it;
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = gee_iterator_get (_tmp57_);
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag = (Tag*) _tmp58_;
+#line 5194 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = tag;
+#line 5194 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = dupe;
+#line 5194 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag_attach (_tmp59_, G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tag);
+#line 39903 "Photo.c"
+ }
+#line 5193 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tag_it);
+#line 39907 "Photo.c"
+ }
+ }
+#line 5198 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = dupe;
+#line 5198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tags);
+#line 5198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _photo_row_unref0 (dupe_row);
+#line 5198 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (dupe_file);
+#line 5198 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 39920 "Photo.c"
+}
+
+
+static void library_photo_on_duplicate_progress (LibraryPhoto* self, gint64 current, gint64 total) {
+#line 5201 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (self));
+#line 5202 "/home/jens/Source/shotwell/src/Photo.vala"
+ spin_event_loop ();
+#line 39929 "Photo.c"
+}
+
+
+static void library_photo_upgrade_rating_flags (LibraryPhoto* self, guint64 flags) {
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+#line 5205 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (self));
+#line 5206 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = flags;
+#line 5206 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp0_ & LIBRARY_PHOTO_FLAG_HIDDEN) != ((guint64) 0)) {
+#line 5207 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), RATING_REJECTED);
+#line 5208 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_remove_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_HIDDEN, NULL);
+#line 39946 "Photo.c"
+ }
+#line 5211 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = flags;
+#line 5211 "/home/jens/Source/shotwell/src/Photo.vala"
+ if ((_tmp1_ & LIBRARY_PHOTO_FLAG_FAVORITE) != ((guint64) 0)) {
+#line 5212 "/home/jens/Source/shotwell/src/Photo.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), RATING_FIVE);
+#line 5213 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_remove_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_FAVORITE, NULL);
+#line 39956 "Photo.c"
+ }
+}
+
+
+static gboolean library_photo_real_is_trashed (MediaSource* base) {
+ LibraryPhoto * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 5218 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5219 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_is_flag_set (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_TRASH);
+#line 5219 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 5219 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 39973 "Photo.c"
+}
+
+
+static void library_photo_real_trash (MediaSource* base) {
+ LibraryPhoto * self;
+#line 5222 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5223 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_TRASH, NULL);
+#line 39983 "Photo.c"
+}
+
+
+static void library_photo_real_untrash (MediaSource* base) {
+ LibraryPhoto * self;
+#line 5226 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5227 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_remove_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_TRASH, NULL);
+#line 39993 "Photo.c"
+}
+
+
+static gboolean library_photo_real_is_offline (Monitorable* base) {
+ LibraryPhoto * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 5230 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5231 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_is_flag_set (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_OFFLINE);
+#line 5231 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 5231 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40009 "Photo.c"
+}
+
+
+static void library_photo_real_mark_offline (Monitorable* base) {
+ LibraryPhoto * self;
+#line 5234 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5235 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_OFFLINE, NULL);
+#line 40019 "Photo.c"
+}
+
+
+static void library_photo_real_mark_online (Monitorable* base) {
+ LibraryPhoto * self;
+#line 5238 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5239 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_remove_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_OFFLINE, NULL);
+#line 40029 "Photo.c"
+}
+
+
+static gboolean library_photo_real_is_flagged (Flaggable* base) {
+ LibraryPhoto * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 5242 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5243 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = photo_is_flag_set (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_FLAGGED);
+#line 5243 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp0_;
+#line 5243 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40045 "Photo.c"
+}
+
+
+static void library_photo_real_mark_flagged (Flaggable* base) {
+ LibraryPhoto * self;
+ Alteration* _tmp0_ = NULL;
+ Alteration* _tmp1_ = NULL;
+#line 5246 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = alteration_new ("metadata", "flagged");
+#line 5247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 5247 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_add_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_FLAGGED, _tmp1_);
+#line 5247 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp1_);
+#line 40063 "Photo.c"
+}
+
+
+static void library_photo_real_mark_unflagged (Flaggable* base) {
+ LibraryPhoto * self;
+ Alteration* _tmp0_ = NULL;
+ Alteration* _tmp1_ = NULL;
+#line 5250 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = alteration_new ("metadata", "flagged");
+#line 5251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _tmp0_;
+#line 5251 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_remove_flags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), LIBRARY_PHOTO_FLAG_FLAGGED, _tmp1_);
+#line 5251 "/home/jens/Source/shotwell/src/Photo.vala"
+ _alteration_unref0 (_tmp1_);
+#line 40081 "Photo.c"
+}
+
+
+static gboolean library_photo_real_internal_delete_backing (DataSource* base, GError** error) {
+ LibraryPhoto * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 5254 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5257 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = DATA_SOURCE_CLASS (library_photo_parent_class)->internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 5257 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _tmp1_;
+#line 5257 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5257 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_propagate_error (error, _inner_error_);
+#line 5257 "/home/jens/Source/shotwell/src/Photo.vala"
+ return FALSE;
+#line 40104 "Photo.c"
+ }
+#line 5257 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp0_) {
+#line 5258 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 5258 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40112 "Photo.c"
+ }
+#line 5260 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = media_source_delete_original_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5260 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp2_;
+#line 5260 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40120 "Photo.c"
+}
+
+
+static void library_photo_real_destroy (DataSource* base) {
+ LibraryPhoto * self;
+ PhotoID photo_id = {0};
+ PhotoID _tmp0_ = {0};
+ GError * _inner_error_ = NULL;
+#line 5263 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5264 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_get_photo_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), &_tmp0_);
+#line 5264 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id = _tmp0_;
+#line 5267 "/home/jens/Source/shotwell/src/Photo.vala"
+ thumbnail_cache_remove (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 40137 "Photo.c"
+ {
+ PhotoTable* _tmp1_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoID _tmp3_ = {0};
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_table_get_instance ();
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = _tmp1_;
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_id;
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_table_remove (_tmp2_, &_tmp3_, &_inner_error_);
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ _database_table_unref0 (_tmp2_);
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 40156 "Photo.c"
+ goto __catch396_database_error;
+ }
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 5273 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 40165 "Photo.c"
+ }
+ }
+ goto __finally396;
+ __catch396_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+#line 5272 "/home/jens/Source/shotwell/src/Photo.vala"
+ err = _inner_error_;
+#line 5272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _inner_error_ = NULL;
+#line 5275 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = err;
+#line 5275 "/home/jens/Source/shotwell/src/Photo.vala"
+ app_window_database_error (_tmp4_);
+#line 5272 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_error_free0 (err);
+#line 40183 "Photo.c"
+ }
+ __finally396:
+#line 5272 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5272 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 5272 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_clear_error (&_inner_error_);
+#line 5272 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 40194 "Photo.c"
+ }
+#line 5278 "/home/jens/Source/shotwell/src/Photo.vala"
+ DATA_SOURCE_CLASS (library_photo_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), TYPE_DATA_SOURCE, DataSource));
+#line 40198 "Photo.c"
+}
+
+
+gboolean library_photo_has_nontrash_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ PhotoID _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+#line 5281 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), FALSE);
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = thumbnail_md5;
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = full_md5;
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file_format;
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_get_nontrash_duplicate (_tmp0_, _tmp1_, _tmp2_, _tmp3_, &_tmp4_);
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_id_is_valid (&_tmp4_);
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp5_;
+#line 5283 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40228 "Photo.c"
+}
+
+
+void library_photo_get_nontrash_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, PhotoID* result) {
+ PhotoID* ids = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ PhotoID* _tmp5_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ gboolean _tmp6_ = FALSE;
+ PhotoID* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ PhotoID* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ PhotoID _tmp18_ = {0};
+#line 5286 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((file == NULL) || G_IS_FILE (file));
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = file;
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = thumbnail_md5;
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = full_md5;
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = file_format;
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = photo_get_duplicate_ids (_tmp0_, _tmp1_, _tmp2_, _tmp3_, &_tmp4_);
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ ids = _tmp5_;
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ ids_length1 = _tmp4_;
+#line 5288 "/home/jens/Source/shotwell/src/Photo.vala"
+ _ids_size_ = ids_length1;
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = ids;
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7__length1 = ids_length1;
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp7_ == NULL) {
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = TRUE;
+#line 40274 "Photo.c"
+ } else {
+ PhotoID* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = ids;
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8__length1 = ids_length1;
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tmp8__length1 == 0;
+#line 40284 "Photo.c"
+ }
+#line 5290 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_) {
+#line 40288 "Photo.c"
+ PhotoID _tmp9_ = {0};
+#line 5291 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id_init (&_tmp9_, PHOTO_ID_INVALID);
+#line 5291 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp9_;
+#line 5291 "/home/jens/Source/shotwell/src/Photo.vala"
+ ids = (g_free (ids), NULL);
+#line 5291 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 40298 "Photo.c"
+ }
+#line 5293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = ids;
+#line 5293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10__length1 = ids_length1;
+#line 40304 "Photo.c"
+ {
+ PhotoID* id_collection = NULL;
+ gint id_collection_length1 = 0;
+ gint _id_collection_size_ = 0;
+ gint id_it = 0;
+#line 5293 "/home/jens/Source/shotwell/src/Photo.vala"
+ id_collection = _tmp10_;
+#line 5293 "/home/jens/Source/shotwell/src/Photo.vala"
+ id_collection_length1 = _tmp10__length1;
+#line 5293 "/home/jens/Source/shotwell/src/Photo.vala"
+ for (id_it = 0; id_it < _tmp10__length1; id_it = id_it + 1) {
+#line 40316 "Photo.c"
+ PhotoID id = {0};
+#line 5293 "/home/jens/Source/shotwell/src/Photo.vala"
+ id = id_collection[id_it];
+#line 40320 "Photo.c"
+ {
+ LibraryPhoto* photo = NULL;
+ LibraryPhotoSourceCollection* _tmp11_ = NULL;
+ PhotoID _tmp12_ = {0};
+ LibraryPhoto* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ LibraryPhoto* _tmp15_ = NULL;
+#line 5294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = library_photo_global;
+#line 5294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = id;
+#line 5294 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = library_photo_source_collection_fetch (_tmp11_, &_tmp12_);
+#line 5294 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp13_;
+#line 5295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo;
+#line 5295 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp15_ != NULL) {
+#line 40340 "Photo.c"
+ LibraryPhoto* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 5295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = photo;
+#line 5295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = media_source_is_trashed (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = !_tmp17_;
+#line 40349 "Photo.c"
+ } else {
+#line 5295 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = FALSE;
+#line 40353 "Photo.c"
+ }
+#line 5295 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp14_) {
+#line 5296 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = id;
+#line 5296 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 5296 "/home/jens/Source/shotwell/src/Photo.vala"
+ ids = (g_free (ids), NULL);
+#line 5296 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 40365 "Photo.c"
+ }
+#line 5293 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 40369 "Photo.c"
+ }
+ }
+ }
+#line 5299 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_id_init (&_tmp18_, PHOTO_ID_INVALID);
+#line 5299 "/home/jens/Source/shotwell/src/Photo.vala"
+ *result = _tmp18_;
+#line 5299 "/home/jens/Source/shotwell/src/Photo.vala"
+ ids = (g_free (ids), NULL);
+#line 5299 "/home/jens/Source/shotwell/src/Photo.vala"
+ return;
+#line 40381 "Photo.c"
+}
+
+
+static gboolean library_photo_real_has_user_generated_metadata (Photo* base) {
+ LibraryPhoto * self;
+ gboolean result = FALSE;
+ GeeList* tags = NULL;
+ TagSourceCollection* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+ Rating _tmp11_ = 0;
+ PhotoMetadata* _tmp12_ = NULL;
+ Rating _tmp13_ = 0;
+ GeeSet* keywords = NULL;
+ PhotoMetadata* _tmp14_ = NULL;
+ GeeSet* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ GeeList* _tmp17_ = NULL;
+ gint tags_count = 0;
+ gint _tmp21_ = 0;
+ GeeSet* _tmp22_ = NULL;
+ gint keywords_count = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gboolean _tmp28_ = FALSE;
+ GeeList* _tmp29_ = NULL;
+#line 5302 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = tag_global;
+#line 5303 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = tag_source_collection_fetch_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5303 "/home/jens/Source/shotwell/src/Photo.vala"
+ tags = _tmp1_;
+#line 5305 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 5305 "/home/jens/Source/shotwell/src/Photo.vala"
+ metadata = _tmp2_;
+#line 5306 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = metadata;
+#line 5306 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ == NULL) {
+#line 40426 "Photo.c"
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GeeList* _tmp6_ = NULL;
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = tags;
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp6_ != NULL) {
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = TRUE;
+#line 40436 "Photo.c"
+ } else {
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = tags;
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _tmp9_ > 0;
+#line 40449 "Photo.c"
+ }
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = TRUE;
+#line 40455 "Photo.c"
+ } else {
+ Rating _tmp10_ = 0;
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp10_ != RATING_UNRATED;
+#line 40462 "Photo.c"
+ }
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = _tmp4_;
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tags);
+#line 5307 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40472 "Photo.c"
+ }
+#line 5309 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5309 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = metadata;
+#line 5309 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = photo_metadata_get_rating (_tmp12_);
+#line 5309 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp11_ != _tmp13_) {
+#line 5310 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 5310 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 5310 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tags);
+#line 5310 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40490 "Photo.c"
+ }
+#line 5312 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = metadata;
+#line 5312 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_metadata_get_keywords (_tmp14_, NULL, NULL, NULL);
+#line 5312 "/home/jens/Source/shotwell/src/Photo.vala"
+ keywords = _tmp15_;
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = tags;
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp17_ != NULL) {
+#line 40502 "Photo.c"
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = tags;
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = _tmp19_;
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp20_;
+#line 40514 "Photo.c"
+ } else {
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = 0;
+#line 40518 "Photo.c"
+ }
+#line 5313 "/home/jens/Source/shotwell/src/Photo.vala"
+ tags_count = _tmp16_;
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = keywords;
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_ != NULL) {
+#line 40526 "Photo.c"
+ GeeSet* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = keywords;
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _tmp24_;
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = _tmp25_;
+#line 40538 "Photo.c"
+ } else {
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = 0;
+#line 40542 "Photo.c"
+ }
+#line 5314 "/home/jens/Source/shotwell/src/Photo.vala"
+ keywords_count = _tmp21_;
+#line 5316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = tags_count;
+#line 5316 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = keywords_count;
+#line 5316 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp26_ != _tmp27_) {
+#line 5317 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 5317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (keywords);
+#line 5317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 5317 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tags);
+#line 5317 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40562 "Photo.c"
+ }
+#line 5319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = tags;
+#line 5319 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp29_ != NULL) {
+#line 40568 "Photo.c"
+ GeeSet* _tmp30_ = NULL;
+#line 5319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = keywords;
+#line 5319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _tmp30_ != NULL;
+#line 40574 "Photo.c"
+ } else {
+#line 5319 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = FALSE;
+#line 40578 "Photo.c"
+ }
+#line 5319 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp28_) {
+#line 40582 "Photo.c"
+ {
+ GeeList* _tag_list = NULL;
+ GeeList* _tmp31_ = NULL;
+ GeeList* _tmp32_ = NULL;
+ gint _tag_size = 0;
+ GeeList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _tag_index = 0;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = tags;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = _g_object_ref0 (_tmp31_);
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_list = _tmp32_;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = _tag_list;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_size = _tmp35_;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_index = -1;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 40610 "Photo.c"
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ Tag* tag = NULL;
+ GeeList* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gpointer _tmp41_ = NULL;
+ GeeSet* _tmp42_ = NULL;
+ Tag* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gboolean _tmp48_ = FALSE;
+ gboolean _tmp49_ = FALSE;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = _tag_index;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_index = _tmp36_ + 1;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = _tag_index;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tag_size;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp37_ < _tmp38_)) {
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 40638 "Photo.c"
+ }
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = _tag_list;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = _tag_index;
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = gee_list_get (_tmp39_, _tmp40_);
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag = (Tag*) _tmp41_;
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = keywords;
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = tag;
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_DATA_OBJECT, DataObject));
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _tmp44_;
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = g_utf8_normalize (_tmp45_, (gssize) -1, G_NORMALIZE_DEFAULT);
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _tmp46_;
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_COLLECTION, GeeCollection), _tmp47_);
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = !_tmp48_;
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp47_);
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp45_);
+#line 5321 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp49_) {
+#line 5322 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = TRUE;
+#line 5322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tag);
+#line 5322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tag_list);
+#line 5322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (keywords);
+#line 5322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 5322 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tags);
+#line 5322 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40684 "Photo.c"
+ }
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tag);
+#line 40688 "Photo.c"
+ }
+#line 5320 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tag_list);
+#line 40692 "Photo.c"
+ }
+ }
+#line 5326 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = FALSE;
+#line 5326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (keywords);
+#line 5326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _media_metadata_unref0 (metadata);
+#line 5326 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tags);
+#line 5326 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 40705 "Photo.c"
+}
+
+
+static void library_photo_real_set_user_metadata_for_export (Photo* base, PhotoMetadata* metadata) {
+ LibraryPhoto * self;
+ GeeList* photo_tags = NULL;
+ TagSourceCollection* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ PhotoMetadata* _tmp22_ = NULL;
+ Rating _tmp23_ = 0;
+#line 5329 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5329 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 5330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = tag_global;
+#line 5330 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = tag_source_collection_fetch_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5330 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_tags = _tmp1_;
+#line 5331 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo_tags;
+#line 5331 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp2_ != NULL) {
+#line 40731 "Photo.c"
+ GeeCollection* string_tags = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ PhotoMetadata* _tmp19_ = NULL;
+ GeeCollection* _tmp20_ = NULL;
+#line 5332 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 5332 "/home/jens/Source/shotwell/src/Photo.vala"
+ string_tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 40740 "Photo.c"
+ {
+ GeeList* _tag_list = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _tag_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tag_index = 0;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo_tags;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_list = _tmp5_;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = _tag_list;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _tmp7_;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_size = _tmp8_;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_index = -1;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 40768 "Photo.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ Tag* tag = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ Tag* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tag_index;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tag_index = _tmp9_ + 1;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = _tag_index;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tag_size;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 40792 "Photo.c"
+ }
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tag_list;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _tag_index;
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag = (Tag*) _tmp14_;
+#line 5334 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = string_tags;
+#line 5334 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = tag;
+#line 5334 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_OBJECT, DataObject));
+#line 5334 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = _tmp17_;
+#line 5334 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_collection_add (_tmp15_, _tmp18_);
+#line 5334 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (_tmp18_);
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (tag);
+#line 40816 "Photo.c"
+ }
+#line 5333 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tag_list);
+#line 40820 "Photo.c"
+ }
+#line 5336 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = metadata;
+#line 5336 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = string_tags;
+#line 5336 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_keywords (_tmp19_, _tmp20_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 5331 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (string_tags);
+#line 40830 "Photo.c"
+ } else {
+ PhotoMetadata* _tmp21_ = NULL;
+#line 5338 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = metadata;
+#line 5338 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_keywords (_tmp21_, NULL, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 40837 "Photo.c"
+ }
+#line 5340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = metadata;
+#line 5340 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5340 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo_metadata_set_rating (_tmp22_, _tmp23_);
+#line 5329 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo_tags);
+#line 40847 "Photo.c"
+}
+
+
+static void library_photo_real_apply_user_metadata_for_reimport (Photo* base, PhotoMetadata* metadata) {
+ LibraryPhoto * self;
+ HierarchicalTagIndex* new_htag_index = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeCollection* keywords = NULL;
+ PhotoMetadata* _tmp6_ = NULL;
+ GeeSet* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ HierarchicalTagIndex* _tmp39_ = NULL;
+#line 5343 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 5343 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 5344 "/home/jens/Source/shotwell/src/Photo.vala"
+ new_htag_index = NULL;
+#line 5346 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = metadata;
+#line 5346 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = photo_metadata_has_hierarchical_keywords (_tmp0_);
+#line 5346 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp1_) {
+#line 40873 "Photo.c"
+ PhotoMetadata* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ HierarchicalTagIndex* _tmp5_ = NULL;
+#line 5347 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = metadata;
+#line 5347 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = photo_metadata_get_hierarchical_keywords (_tmp2_);
+#line 5347 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = _tmp3_;
+#line 5347 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = hierarchical_tag_utilities_process_hierarchical_import_keywords (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5347 "/home/jens/Source/shotwell/src/Photo.vala"
+ _hierarchical_tag_index_unref0 (new_htag_index);
+#line 5347 "/home/jens/Source/shotwell/src/Photo.vala"
+ new_htag_index = _tmp5_;
+#line 5347 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp4_);
+#line 40892 "Photo.c"
+ }
+#line 5351 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = metadata;
+#line 5351 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo_metadata_get_keywords (_tmp6_, NULL, NULL, NULL);
+#line 5351 "/home/jens/Source/shotwell/src/Photo.vala"
+ keywords = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 5352 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = keywords;
+#line 5352 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp8_ != NULL) {
+#line 40904 "Photo.c"
+ {
+ GeeIterator* _keyword_it = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = keywords;
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _keyword_it = _tmp10_;
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 40917 "Photo.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gchar* keyword = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ HierarchicalTagIndex* _tmp16_ = NULL;
+ gchar* safe_keyword = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* promoted_keyword = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ TagSourceCollection* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ TagSourceCollection* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ const gchar* _tmp36_ = NULL;
+ Tag* _tmp37_ = NULL;
+ Tag* _tmp38_ = NULL;
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _keyword_it;
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp12_) {
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 40948 "Photo.c"
+ }
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = _keyword_it;
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ keyword = (gchar*) _tmp14_;
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = new_htag_index;
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp16_ != NULL) {
+#line 40960 "Photo.c"
+ HierarchicalTagIndex* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = new_htag_index;
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = keyword;
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = hierarchical_tag_index_is_tag_in_index (_tmp17_, _tmp18_);
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = _tmp19_;
+#line 40972 "Photo.c"
+ } else {
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = FALSE;
+#line 40976 "Photo.c"
+ }
+#line 5354 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp15_) {
+#line 5355 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (keyword);
+#line 5355 "/home/jens/Source/shotwell/src/Photo.vala"
+ continue;
+#line 40984 "Photo.c"
+ }
+#line 5357 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = keyword;
+#line 5357 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = hierarchical_tag_utilities_make_flat_tag_safe (_tmp20_);
+#line 5357 "/home/jens/Source/shotwell/src/Photo.vala"
+ safe_keyword = _tmp21_;
+#line 5358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = safe_keyword;
+#line 5358 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = hierarchical_tag_utilities_flat_to_hierarchical (_tmp22_);
+#line 5358 "/home/jens/Source/shotwell/src/Photo.vala"
+ promoted_keyword = _tmp23_;
+#line 5361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = tag_global;
+#line 5361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = safe_keyword;
+#line 5361 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = tag_source_collection_exists (_tmp24_, _tmp25_, FALSE);
+#line 5361 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp26_) {
+#line 41006 "Photo.c"
+ const gchar* _tmp27_ = NULL;
+ Tag* _tmp28_ = NULL;
+ Tag* _tmp29_ = NULL;
+#line 5362 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = safe_keyword;
+#line 5362 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = tag_for_path (_tmp27_);
+#line 5362 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = _tmp28_;
+#line 5362 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag_attach (_tmp29_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5362 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp29_);
+#line 5363 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (promoted_keyword);
+#line 5363 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (safe_keyword);
+#line 5363 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (keyword);
+#line 5363 "/home/jens/Source/shotwell/src/Photo.vala"
+ continue;
+#line 41028 "Photo.c"
+ }
+#line 5366 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = tag_global;
+#line 5366 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = promoted_keyword;
+#line 5366 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = tag_source_collection_exists (_tmp30_, _tmp31_, FALSE);
+#line 5366 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp32_) {
+#line 41038 "Photo.c"
+ const gchar* _tmp33_ = NULL;
+ Tag* _tmp34_ = NULL;
+ Tag* _tmp35_ = NULL;
+#line 5367 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = promoted_keyword;
+#line 5367 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = tag_for_path (_tmp33_);
+#line 5367 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = _tmp34_;
+#line 5367 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag_attach (_tmp35_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5367 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp35_);
+#line 5368 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (promoted_keyword);
+#line 5368 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (safe_keyword);
+#line 5368 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (keyword);
+#line 5368 "/home/jens/Source/shotwell/src/Photo.vala"
+ continue;
+#line 41060 "Photo.c"
+ }
+#line 5371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = keyword;
+#line 5371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = tag_for_path (_tmp36_);
+#line 5371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = _tmp37_;
+#line 5371 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag_attach (_tmp38_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5371 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp38_);
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (promoted_keyword);
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (safe_keyword);
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (keyword);
+#line 41078 "Photo.c"
+ }
+#line 5353 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_keyword_it);
+#line 41082 "Photo.c"
+ }
+ }
+#line 5375 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = new_htag_index;
+#line 5375 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp39_ != NULL) {
+#line 41089 "Photo.c"
+ {
+ GeeIterator* _path_it = NULL;
+ HierarchicalTagIndex* _tmp40_ = NULL;
+ GeeCollection* _tmp41_ = NULL;
+ GeeCollection* _tmp42_ = NULL;
+ GeeIterator* _tmp43_ = NULL;
+ GeeIterator* _tmp44_ = NULL;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = new_htag_index;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = hierarchical_tag_index_get_all_paths (_tmp40_);
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = _tmp41_;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = _tmp43_;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp42_);
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _path_it = _tmp44_;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 41113 "Photo.c"
+ GeeIterator* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp47_ = NULL;
+ gpointer _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ Tag* _tmp50_ = NULL;
+ Tag* _tmp51_ = NULL;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _path_it;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = gee_iterator_next (_tmp45_);
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp46_) {
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 41130 "Photo.c"
+ }
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = _path_it;
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = gee_iterator_get (_tmp47_);
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ path = (gchar*) _tmp48_;
+#line 5377 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = path;
+#line 5377 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = tag_for_path (_tmp49_);
+#line 5377 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = _tmp50_;
+#line 5377 "/home/jens/Source/shotwell/src/Photo.vala"
+ tag_attach (_tmp51_, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 5377 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp51_);
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_free0 (path);
+#line 41150 "Photo.c"
+ }
+#line 5376 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_path_it);
+#line 41154 "Photo.c"
+ }
+ }
+#line 5343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (keywords);
+#line 5343 "/home/jens/Source/shotwell/src/Photo.vala"
+ _hierarchical_tag_index_unref0 (new_htag_index);
+#line 41161 "Photo.c"
+}
+
+
+static void library_photo_class_init (LibraryPhotoClass * klass) {
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_parent_class = g_type_class_peek_parent (klass);
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_class_add_private (klass, sizeof (LibraryPhotoPrivate));
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_master_reimported = library_photo_real_notify_master_reimported;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_editable_reimported = library_photo_real_notify_editable_reimported;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_source_reimported = library_photo_real_notify_source_reimported;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->notify_baseline_reimported = library_photo_real_notify_baseline_reimported;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataObjectClass *) klass)->notify_altered = library_photo_real_notify_altered;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->get_preview_pixbuf = library_photo_real_get_preview_pixbuf;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->rotate = library_photo_real_rotate;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((ThumbnailSourceClass *) klass)->get_thumbnail = library_photo_real_get_thumbnail;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->is_trashed = library_photo_real_is_trashed;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->trash = library_photo_real_trash;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->untrash = library_photo_real_untrash;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->is_offline = library_photo_real_is_offline;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->mark_offline = library_photo_real_mark_offline;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((MediaSourceClass *) klass)->mark_online = library_photo_real_mark_online;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->internal_delete_backing = library_photo_real_internal_delete_backing;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((DataSourceClass *) klass)->destroy = library_photo_real_destroy;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->has_user_generated_metadata = library_photo_real_has_user_generated_metadata;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->set_user_metadata_for_export = library_photo_real_set_user_metadata_for_export;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((PhotoClass *) klass)->apply_user_metadata_for_reimport = library_photo_real_apply_user_metadata_for_reimport;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_photo_finalize;
+#line 41210 "Photo.c"
+}
+
+
+static void library_photo_flaggable_interface_init (FlaggableIface * iface) {
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_flaggable_parent_iface = g_type_interface_peek_parent (iface);
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->is_flagged = (gboolean (*)(Flaggable*)) library_photo_real_is_flagged;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->mark_flagged = (void (*)(Flaggable*)) library_photo_real_mark_flagged;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->mark_unflagged = (void (*)(Flaggable*)) library_photo_real_mark_unflagged;
+#line 41223 "Photo.c"
+}
+
+
+static void library_photo_monitorable_interface_init (MonitorableIface * iface) {
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_monitorable_parent_iface = g_type_interface_peek_parent (iface);
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->is_offline = (gboolean (*)(Monitorable*)) library_photo_real_is_offline;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->mark_offline = (void (*)(Monitorable*)) library_photo_real_mark_offline;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->mark_online = (void (*)(Monitorable*)) library_photo_real_mark_online;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->set_master_file = (void (*)(Monitorable*, GFile*)) photo_set_master_file;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ iface->set_master_timestamp = (void (*)(Monitorable*, GFileInfo*)) photo_set_master_timestamp;
+#line 41240 "Photo.c"
+}
+
+
+static void library_photo_instance_init (LibraryPhoto * self) {
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv = LIBRARY_PHOTO_GET_PRIVATE (self);
+#line 4955 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->block_thumbnail_generation = FALSE;
+#line 4956 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->thumbnail_scheduler = NULL;
+#line 41251 "Photo.c"
+}
+
+
+static void library_photo_finalize (GObject* obj) {
+ LibraryPhoto * self;
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 4956 "/home/jens/Source/shotwell/src/Photo.vala"
+ _one_shot_scheduler_unref0 (self->priv->thumbnail_scheduler);
+#line 4957 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->import_keywords);
+#line 4944 "/home/jens/Source/shotwell/src/Photo.vala"
+ G_OBJECT_CLASS (library_photo_parent_class)->finalize (obj);
+#line 41265 "Photo.c"
+}
+
+
+GType library_photo_get_type (void) {
+ static volatile gsize library_photo_type_id__volatile = 0;
+ if (g_once_init_enter (&library_photo_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryPhotoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_photo_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryPhoto), 0, (GInstanceInitFunc) library_photo_instance_init, NULL };
+ static const GInterfaceInfo flaggable_info = { (GInterfaceInitFunc) library_photo_flaggable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo monitorable_info = { (GInterfaceInitFunc) library_photo_monitorable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType library_photo_type_id;
+ library_photo_type_id = g_type_register_static (TYPE_PHOTO, "LibraryPhoto", &g_define_type_info, 0);
+ g_type_add_interface_static (library_photo_type_id, TYPE_FLAGGABLE, &flaggable_info);
+ g_type_add_interface_static (library_photo_type_id, TYPE_MONITORABLE, &monitorable_info);
+ g_once_init_leave (&library_photo_type_id__volatile, library_photo_type_id);
+ }
+ return library_photo_type_id__volatile;
+}
+
+
+LibraryPhotoSourceHoldingTank* library_photo_source_holding_tank_construct (GType object_type, LibraryPhotoSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target) {
+ LibraryPhotoSourceHoldingTank* self = NULL;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ SourceHoldingTankCheckToKeep _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GetSourceDatabaseKey _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 5393 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_COLLECTION (sources), NULL);
+#line 5395 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = sources;
+#line 5395 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = check_to_keep;
+#line 5395 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1__target = check_to_keep_target;
+#line 5395 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = get_key;
+#line 5395 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2__target = get_key_target;
+#line 5395 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = (LibraryPhotoSourceHoldingTank*) media_source_holding_tank_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _tmp1_, _tmp1__target, _tmp2_, _tmp2__target);
+#line 5393 "/home/jens/Source/shotwell/src/Photo.vala"
+ return self;
+#line 41308 "Photo.c"
+}
+
+
+LibraryPhotoSourceHoldingTank* library_photo_source_holding_tank_new (LibraryPhotoSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target) {
+#line 5393 "/home/jens/Source/shotwell/src/Photo.vala"
+ return library_photo_source_holding_tank_construct (TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, sources, check_to_keep, check_to_keep_target, get_key, get_key_target);
+#line 41315 "Photo.c"
+}
+
+
+LibraryPhoto* library_photo_source_holding_tank_fetch_by_backing_file (LibraryPhotoSourceHoldingTank* self, GFile* file) {
+ LibraryPhoto* result = NULL;
+ LibraryPhoto* ret = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+#line 5398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_SOURCE_HOLDING_TANK (self), NULL);
+#line 5398 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 5399 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = NULL;
+#line 5400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = self->priv->editable_file_map;
+#line 5400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = file;
+#line 5400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 5400 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (ret);
+#line 5400 "/home/jens/Source/shotwell/src/Photo.vala"
+ ret = (LibraryPhoto*) _tmp2_;
+#line 5401 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = ret;
+#line 5401 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ != NULL) {
+#line 5402 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = ret;
+#line 5402 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 41353 "Photo.c"
+ }
+#line 5404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->development_file_map;
+#line 5404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = file;
+#line 5404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_);
+#line 5404 "/home/jens/Source/shotwell/src/Photo.vala"
+ result = (LibraryPhoto*) _tmp6_;
+#line 5404 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (ret);
+#line 5404 "/home/jens/Source/shotwell/src/Photo.vala"
+ return result;
+#line 41367 "Photo.c"
+}
+
+
+static void _library_photo_source_holding_tank_on_editable_replaced_photo_editable_replaced (Photo* _sender, GFile* old_file, GFile* new_file, gpointer self) {
+#line 5428 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_holding_tank_on_editable_replaced ((LibraryPhotoSourceHoldingTank*) self, _sender, old_file, new_file);
+#line 41374 "Photo.c"
+}
+
+
+static void _library_photo_source_holding_tank_on_raw_development_modified_photo_raw_development_modified (Photo* _sender, gpointer self) {
+#line 5429 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_holding_tank_on_raw_development_modified ((LibraryPhotoSourceHoldingTank*) self, _sender);
+#line 41381 "Photo.c"
+}
+
+
+static void library_photo_source_holding_tank_real_notify_contents_altered (SourceHoldingTank* base, GeeCollection* added, GeeCollection* removed) {
+ LibraryPhotoSourceHoldingTank * self;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp40_ = NULL;
+ GeeCollection* _tmp81_ = NULL;
+ GeeCollection* _tmp82_ = NULL;
+#line 5407 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTank);
+#line 5407 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 5407 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 5409 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = added;
+#line 5409 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp0_ != NULL) {
+#line 41401 "Photo.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = added;
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_it = _tmp2_;
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 41414 "Photo.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GeeCollection* raw_files = NULL;
+ LibraryPhoto* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ LibraryPhoto* _tmp38_ = NULL;
+ LibraryPhoto* _tmp39_ = NULL;
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = _source_it;
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp4_) {
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 41441 "Photo.c"
+ }
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = _source_it;
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ source = (DataSource*) _tmp6_;
+#line 5411 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = source;
+#line 5411 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 5411 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp8_;
+#line 5414 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = photo;
+#line 5414 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PHOTO, Photo));
+#line 5414 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 5414 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _tmp11_ != NULL;
+#line 5414 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp11_);
+#line 5414 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp12_) {
+#line 41467 "Photo.c"
+ GeeHashMap* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ GeeMultiMap* _tmp18_ = NULL;
+ LibraryPhoto* _tmp19_ = NULL;
+ LibraryPhoto* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+#line 5415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->priv->editable_file_map;
+#line 5415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = photo;
+#line 5415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO, Photo));
+#line 5415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = _tmp15_;
+#line 5415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = photo;
+#line 5415 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp16_, _tmp17_);
+#line 5415 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp16_);
+#line 5416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->priv->reverse_editable_file_map;
+#line 5416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = photo;
+#line 5416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = photo;
+#line 5416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_PHOTO, Photo));
+#line 5416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = _tmp21_;
+#line 5416 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp18_, _tmp19_, _tmp22_);
+#line 5416 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp22_);
+#line 41506 "Photo.c"
+ }
+#line 5420 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = photo;
+#line 5420 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_PHOTO, Photo));
+#line 5420 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_files = _tmp24_;
+#line 5421 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = raw_files;
+#line 5421 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp25_ != NULL) {
+#line 41518 "Photo.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeIterator* _tmp27_ = NULL;
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = raw_files;
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp27_;
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 41531 "Photo.c"
+ GeeIterator* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+ GeeHashMap* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ LibraryPhoto* _tmp34_ = NULL;
+ GeeMultiMap* _tmp35_ = NULL;
+ LibraryPhoto* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = _f_it;
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = gee_iterator_next (_tmp28_);
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp29_) {
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 41551 "Photo.c"
+ }
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = _f_it;
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = gee_iterator_get (_tmp30_);
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp31_;
+#line 5423 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = self->priv->development_file_map;
+#line 5423 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = f;
+#line 5423 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = photo;
+#line 5423 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp33_, _tmp34_);
+#line 5424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp35_ = self->priv->reverse_development_file_map;
+#line 5424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp36_ = photo;
+#line 5424 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp37_ = f;
+#line 5424 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp35_, _tmp36_, _tmp37_);
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 41577 "Photo.c"
+ }
+#line 5422 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 41581 "Photo.c"
+ }
+ }
+#line 5428 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp38_ = photo;
+#line 5428 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_PHOTO, Photo), "editable-replaced", (GCallback) _library_photo_source_holding_tank_on_editable_replaced_photo_editable_replaced, self);
+#line 5429 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp39_ = photo;
+#line 5429 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_PHOTO, Photo), "raw-development-modified", (GCallback) _library_photo_source_holding_tank_on_raw_development_modified_photo_raw_development_modified, self);
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_files);
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (source);
+#line 41598 "Photo.c"
+ }
+#line 5410 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_source_it);
+#line 41602 "Photo.c"
+ }
+ }
+#line 5433 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp40_ = removed;
+#line 5433 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp40_ != NULL) {
+#line 41609 "Photo.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp41_ = NULL;
+ GeeIterator* _tmp42_ = NULL;
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp41_ = removed;
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp42_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _source_it = _tmp42_;
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 41622 "Photo.c"
+ GeeIterator* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp45_ = NULL;
+ gpointer _tmp46_ = NULL;
+ LibraryPhoto* photo = NULL;
+ DataSource* _tmp47_ = NULL;
+ LibraryPhoto* _tmp48_ = NULL;
+ GeeMultiMap* _tmp73_ = NULL;
+ LibraryPhoto* _tmp74_ = NULL;
+ GeeMultiMap* _tmp75_ = NULL;
+ LibraryPhoto* _tmp76_ = NULL;
+ LibraryPhoto* _tmp77_ = NULL;
+ guint _tmp78_ = 0U;
+ LibraryPhoto* _tmp79_ = NULL;
+ guint _tmp80_ = 0U;
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp43_ = _source_it;
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp44_ = gee_iterator_next (_tmp43_);
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp44_) {
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 41647 "Photo.c"
+ }
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp45_ = _source_it;
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp46_ = gee_iterator_get (_tmp45_);
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ source = (DataSource*) _tmp46_;
+#line 5435 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp47_ = source;
+#line 5435 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp48_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 5435 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp48_;
+#line 41661 "Photo.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeMultiMap* _tmp49_ = NULL;
+ LibraryPhoto* _tmp50_ = NULL;
+ GeeCollection* _tmp51_ = NULL;
+ GeeCollection* _tmp52_ = NULL;
+ GeeIterator* _tmp53_ = NULL;
+ GeeIterator* _tmp54_ = NULL;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp49_ = self->priv->reverse_editable_file_map;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp50_ = photo;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp51_ = gee_multi_map_get (_tmp49_, _tmp50_);
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp52_ = _tmp51_;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp53_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp54_ = _tmp53_;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp52_);
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp54_;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 41688 "Photo.c"
+ GeeIterator* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp57_ = NULL;
+ gpointer _tmp58_ = NULL;
+ GeeHashMap* _tmp59_ = NULL;
+ GFile* _tmp60_ = NULL;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp55_ = _f_it;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp56_ = gee_iterator_next (_tmp55_);
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp56_) {
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 41704 "Photo.c"
+ }
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp57_ = _f_it;
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp58_ = gee_iterator_get (_tmp57_);
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp58_;
+#line 5437 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp59_ = self->priv->editable_file_map;
+#line 5437 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp60_ = f;
+#line 5437 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp60_, NULL);
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 41720 "Photo.c"
+ }
+#line 5436 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 41724 "Photo.c"
+ }
+ {
+ GeeIterator* _f_it = NULL;
+ GeeMultiMap* _tmp61_ = NULL;
+ LibraryPhoto* _tmp62_ = NULL;
+ GeeCollection* _tmp63_ = NULL;
+ GeeCollection* _tmp64_ = NULL;
+ GeeIterator* _tmp65_ = NULL;
+ GeeIterator* _tmp66_ = NULL;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp61_ = self->priv->reverse_development_file_map;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp62_ = photo;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp63_ = gee_multi_map_get (_tmp61_, _tmp62_);
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp64_ = _tmp63_;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp65_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp66_ = _tmp65_;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp64_);
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp66_;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 41752 "Photo.c"
+ GeeIterator* _tmp67_ = NULL;
+ gboolean _tmp68_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp69_ = NULL;
+ gpointer _tmp70_ = NULL;
+ GeeHashMap* _tmp71_ = NULL;
+ GFile* _tmp72_ = NULL;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp67_ = _f_it;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp68_ = gee_iterator_next (_tmp67_);
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp68_) {
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 41768 "Photo.c"
+ }
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp69_ = _f_it;
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp70_ = gee_iterator_get (_tmp69_);
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp70_;
+#line 5440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp71_ = self->priv->development_file_map;
+#line 5440 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp72_ = f;
+#line 5440 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp72_, NULL);
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 41784 "Photo.c"
+ }
+#line 5439 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 41788 "Photo.c"
+ }
+#line 5442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp73_ = self->priv->reverse_editable_file_map;
+#line 5442 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp74_ = photo;
+#line 5442 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove_all (_tmp73_, _tmp74_);
+#line 5443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp75_ = self->priv->reverse_development_file_map;
+#line 5443 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp76_ = photo;
+#line 5443 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove_all (_tmp75_, _tmp76_);
+#line 5445 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp77_ = photo;
+#line 5445 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_parse_name ("editable-replaced", TYPE_PHOTO, &_tmp78_, NULL, FALSE);
+#line 5445 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, TYPE_PHOTO, Photo), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp78_, 0, NULL, (GCallback) _library_photo_source_holding_tank_on_editable_replaced_photo_editable_replaced, self);
+#line 5446 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp79_ = photo;
+#line 5446 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_parse_name ("raw-development-modified", TYPE_PHOTO, &_tmp80_, NULL, FALSE);
+#line 5446 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, TYPE_PHOTO, Photo), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp80_, 0, NULL, (GCallback) _library_photo_source_holding_tank_on_raw_development_modified_photo_raw_development_modified, self);
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (source);
+#line 41818 "Photo.c"
+ }
+#line 5434 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_source_it);
+#line 41822 "Photo.c"
+ }
+ }
+#line 5450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp81_ = added;
+#line 5450 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp82_ = removed;
+#line 5450 "/home/jens/Source/shotwell/src/Photo.vala"
+ SOURCE_HOLDING_TANK_CLASS (library_photo_source_holding_tank_parent_class)->notify_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp81_, _tmp82_);
+#line 41831 "Photo.c"
+}
+
+
+static void library_photo_source_holding_tank_on_editable_replaced (LibraryPhotoSourceHoldingTank* self, Photo* _photo, GFile* old_file, GFile* new_file) {
+ LibraryPhoto* photo = NULL;
+ Photo* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GeeMultiMap* _tmp13_ = NULL;
+ LibraryPhoto* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+#line 5453 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_HOLDING_TANK (self));
+#line 5453 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (_photo));
+#line 5453 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((old_file == NULL) || G_IS_FILE (old_file));
+#line 5453 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail ((new_file == NULL) || G_IS_FILE (new_file));
+#line 5454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _photo;
+#line 5454 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp0_) : NULL);
+#line 5454 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp1_;
+#line 5455 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo;
+#line 5455 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp2_ != NULL, "photo != null");
+#line 5457 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = old_file;
+#line 5457 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp3_ != NULL) {
+#line 41867 "Photo.c"
+ GeeHashMap* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GeeMultiMap* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+#line 5458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = self->priv->editable_file_map;
+#line 5458 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = old_file;
+#line 5458 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_, NULL);
+#line 5459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->reverse_editable_file_map;
+#line 5459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo;
+#line 5459 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = old_file;
+#line 5459 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove (_tmp6_, _tmp7_, _tmp8_);
+#line 41887 "Photo.c"
+ }
+#line 5462 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = new_file;
+#line 5462 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp9_ != NULL) {
+#line 41893 "Photo.c"
+ GeeHashMap* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ LibraryPhoto* _tmp12_ = NULL;
+#line 5463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = self->priv->editable_file_map;
+#line 5463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = new_file;
+#line 5463 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = photo;
+#line 5463 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, _tmp12_);
+#line 41905 "Photo.c"
+ }
+#line 5464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = self->priv->reverse_editable_file_map;
+#line 5464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = photo;
+#line 5464 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = new_file;
+#line 5464 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp13_, _tmp14_, _tmp15_);
+#line 5453 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 41917 "Photo.c"
+}
+
+
+static void library_photo_source_holding_tank_on_raw_development_modified (LibraryPhotoSourceHoldingTank* self, Photo* _photo) {
+ LibraryPhoto* photo = NULL;
+ Photo* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GeeMultiMap* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeCollection* raw_list = NULL;
+ LibraryPhoto* _tmp20_ = NULL;
+ GeeCollection* _tmp21_ = NULL;
+ GeeCollection* _tmp22_ = NULL;
+#line 5467 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_SOURCE_HOLDING_TANK (self));
+#line 5467 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_return_if_fail (IS_PHOTO (_photo));
+#line 5468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = _photo;
+#line 5468 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp0_) : NULL);
+#line 5468 "/home/jens/Source/shotwell/src/Photo.vala"
+ photo = _tmp1_;
+#line 5469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = photo;
+#line 5469 "/home/jens/Source/shotwell/src/Photo.vala"
+ _vala_assert (_tmp2_ != NULL, "photo != null");
+#line 5472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = self->priv->reverse_development_file_map;
+#line 5472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp4_ = photo;
+#line 5472 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp5_ = gee_multi_map_contains (_tmp3_, _tmp4_);
+#line 5472 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp5_) {
+#line 41955 "Photo.c"
+ GeeMultiMap* _tmp18_ = NULL;
+ LibraryPhoto* _tmp19_ = NULL;
+ {
+ GeeIterator* _f_it = NULL;
+ GeeMultiMap* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp6_ = self->priv->reverse_development_file_map;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp7_ = photo;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp8_ = gee_multi_map_get (_tmp6_, _tmp7_);
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp9_ = _tmp8_;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp11_ = _tmp10_;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_tmp9_);
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp11_;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 41984 "Photo.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GeeHashMap* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp12_ = _f_it;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp13_) {
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 42000 "Photo.c"
+ }
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp14_ = _f_it;
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp15_;
+#line 5474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp16_ = self->priv->development_file_map;
+#line 5474 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp17_ = f;
+#line 5474 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp17_, NULL);
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 42016 "Photo.c"
+ }
+#line 5473 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 42020 "Photo.c"
+ }
+#line 5475 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp18_ = self->priv->reverse_development_file_map;
+#line 5475 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp19_ = photo;
+#line 5475 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_remove_all (_tmp18_, _tmp19_);
+#line 42028 "Photo.c"
+ }
+#line 5479 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp20_ = photo;
+#line 5479 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp21_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_PHOTO, Photo));
+#line 5479 "/home/jens/Source/shotwell/src/Photo.vala"
+ raw_list = _tmp21_;
+#line 5480 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp22_ = raw_list;
+#line 5480 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (_tmp22_ != NULL) {
+#line 42040 "Photo.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeIterator* _tmp24_ = NULL;
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp23_ = raw_list;
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp24_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _f_it = _tmp24_;
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ while (TRUE) {
+#line 42053 "Photo.c"
+ GeeIterator* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp27_ = NULL;
+ gpointer _tmp28_ = NULL;
+ GeeHashMap* _tmp29_ = NULL;
+ GFile* _tmp30_ = NULL;
+ LibraryPhoto* _tmp31_ = NULL;
+ GeeMultiMap* _tmp32_ = NULL;
+ LibraryPhoto* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp25_ = _f_it;
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp26_ = gee_iterator_next (_tmp25_);
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ if (!_tmp26_) {
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ break;
+#line 42073 "Photo.c"
+ }
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp27_ = _f_it;
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp28_ = gee_iterator_get (_tmp27_);
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ f = (GFile*) _tmp28_;
+#line 5482 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp29_ = self->priv->development_file_map;
+#line 5482 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp30_ = f;
+#line 5482 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp31_ = photo;
+#line 5482 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp30_, _tmp31_);
+#line 5483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp32_ = self->priv->reverse_development_file_map;
+#line 5483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp33_ = photo;
+#line 5483 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp34_ = f;
+#line 5483 "/home/jens/Source/shotwell/src/Photo.vala"
+ gee_multi_map_set (_tmp32_, _tmp33_, _tmp34_);
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (f);
+#line 42099 "Photo.c"
+ }
+#line 5481 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (_f_it);
+#line 42103 "Photo.c"
+ }
+ }
+#line 5467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (raw_list);
+#line 5467 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (photo);
+#line 42110 "Photo.c"
+}
+
+
+static void library_photo_source_holding_tank_class_init (LibraryPhotoSourceHoldingTankClass * klass) {
+#line 5383 "/home/jens/Source/shotwell/src/Photo.vala"
+ library_photo_source_holding_tank_parent_class = g_type_class_peek_parent (klass);
+#line 5383 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((SourceHoldingTankClass *) klass)->finalize = library_photo_source_holding_tank_finalize;
+#line 5383 "/home/jens/Source/shotwell/src/Photo.vala"
+ g_type_class_add_private (klass, sizeof (LibraryPhotoSourceHoldingTankPrivate));
+#line 5383 "/home/jens/Source/shotwell/src/Photo.vala"
+ ((SourceHoldingTankClass *) klass)->notify_contents_altered = library_photo_source_holding_tank_real_notify_contents_altered;
+#line 42123 "Photo.c"
+}
+
+
+static void library_photo_source_holding_tank_instance_init (LibraryPhotoSourceHoldingTank * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeHashMultiMap* _tmp2_ = NULL;
+ GeeHashMultiMap* _tmp3_ = NULL;
+#line 5383 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv = LIBRARY_PHOTO_SOURCE_HOLDING_TANK_GET_PRIVATE (self);
+#line 5384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 5384 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->editable_file_map = _tmp0_;
+#line 5386 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 5386 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->development_file_map = _tmp1_;
+#line 5388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp2_ = gee_hash_multi_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 5388 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->reverse_editable_file_map = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 5390 "/home/jens/Source/shotwell/src/Photo.vala"
+ _tmp3_ = gee_hash_multi_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL);
+#line 5390 "/home/jens/Source/shotwell/src/Photo.vala"
+ self->priv->reverse_development_file_map = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 42150 "Photo.c"
+}
+
+
+static void library_photo_source_holding_tank_finalize (SourceHoldingTank* obj) {
+ LibraryPhotoSourceHoldingTank * self;
+#line 5383 "/home/jens/Source/shotwell/src/Photo.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LIBRARY_PHOTO_SOURCE_HOLDING_TANK, LibraryPhotoSourceHoldingTank);
+#line 5384 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->editable_file_map);
+#line 5386 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->development_file_map);
+#line 5388 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->reverse_editable_file_map);
+#line 5390 "/home/jens/Source/shotwell/src/Photo.vala"
+ _g_object_unref0 (self->priv->reverse_development_file_map);
+#line 5383 "/home/jens/Source/shotwell/src/Photo.vala"
+ SOURCE_HOLDING_TANK_CLASS (library_photo_source_holding_tank_parent_class)->finalize (obj);
+#line 42168 "Photo.c"
+}
+
+
+GType library_photo_source_holding_tank_get_type (void) {
+ static volatile gsize library_photo_source_holding_tank_type_id__volatile = 0;
+ if (g_once_init_enter (&library_photo_source_holding_tank_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryPhotoSourceHoldingTankClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_photo_source_holding_tank_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryPhotoSourceHoldingTank), 0, (GInstanceInitFunc) library_photo_source_holding_tank_instance_init, NULL };
+ GType library_photo_source_holding_tank_type_id;
+ library_photo_source_holding_tank_type_id = g_type_register_static (TYPE_MEDIA_SOURCE_HOLDING_TANK, "LibraryPhotoSourceHoldingTank", &g_define_type_info, 0);
+ g_once_init_leave (&library_photo_source_holding_tank_type_id__volatile, library_photo_source_holding_tank_type_id);
+ }
+ return library_photo_source_holding_tank_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/PhotoMonitor.c b/src/PhotoMonitor.c
new file mode 100644
index 0000000..c8e08e9
--- /dev/null
+++ b/src/PhotoMonitor.c
@@ -0,0 +1,8610 @@
+/* PhotoMonitor.c generated by valac 0.32.1, the Vala compiler
+ * generated from PhotoMonitor.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+
+#define TYPE_MONITORABLE_UPDATES (monitorable_updates_get_type ())
+#define MONITORABLE_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE_UPDATES, MonitorableUpdates))
+#define MONITORABLE_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MONITORABLE_UPDATES, MonitorableUpdatesClass))
+#define IS_MONITORABLE_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE_UPDATES))
+#define IS_MONITORABLE_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MONITORABLE_UPDATES))
+#define MONITORABLE_UPDATES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MONITORABLE_UPDATES, MonitorableUpdatesClass))
+
+typedef struct _MonitorableUpdates MonitorableUpdates;
+typedef struct _MonitorableUpdatesClass MonitorableUpdatesClass;
+typedef struct _MonitorableUpdatesPrivate MonitorableUpdatesPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+
+#define TYPE_PHOTO_UPDATES (photo_updates_get_type ())
+#define PHOTO_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_UPDATES, PhotoUpdates))
+#define PHOTO_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_UPDATES, PhotoUpdatesClass))
+#define IS_PHOTO_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_UPDATES))
+#define IS_PHOTO_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_UPDATES))
+#define PHOTO_UPDATES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_UPDATES, PhotoUpdatesClass))
+
+typedef struct _PhotoUpdates PhotoUpdates;
+typedef struct _PhotoUpdatesClass PhotoUpdatesClass;
+typedef struct _PhotoUpdatesPrivate PhotoUpdatesPrivate;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MEDIA_MONITOR (media_monitor_get_type ())
+#define MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_MONITOR, MediaMonitor))
+#define MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+#define IS_MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_MONITOR))
+#define IS_MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_MONITOR))
+#define MEDIA_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+
+typedef struct _MediaMonitor MediaMonitor;
+typedef struct _MediaMonitorClass MediaMonitorClass;
+typedef struct _MediaMonitorPrivate MediaMonitorPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define MEDIA_MONITOR_TYPE_DISCOVERED_FILE (media_monitor_discovered_file_get_type ())
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+
+#define TYPE_PHOTO_MONITOR (photo_monitor_get_type ())
+#define PHOTO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_MONITOR, PhotoMonitor))
+#define PHOTO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_MONITOR, PhotoMonitorClass))
+#define IS_PHOTO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_MONITOR))
+#define IS_PHOTO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_MONITOR))
+#define PHOTO_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_MONITOR, PhotoMonitorClass))
+
+typedef struct _PhotoMonitor PhotoMonitor;
+typedef struct _PhotoMonitorClass PhotoMonitorClass;
+typedef struct _PhotoMonitorPrivate PhotoMonitorPrivate;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB (photo_monitor_reimport_master_job_get_type ())
+#define PHOTO_MONITOR_REIMPORT_MASTER_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, PhotoMonitorReimportMasterJob))
+#define PHOTO_MONITOR_REIMPORT_MASTER_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, PhotoMonitorReimportMasterJobClass))
+#define PHOTO_MONITOR_IS_REIMPORT_MASTER_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB))
+#define PHOTO_MONITOR_IS_REIMPORT_MASTER_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB))
+#define PHOTO_MONITOR_REIMPORT_MASTER_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, PhotoMonitorReimportMasterJobClass))
+
+typedef struct _PhotoMonitorReimportMasterJob PhotoMonitorReimportMasterJob;
+typedef struct _PhotoMonitorReimportMasterJobClass PhotoMonitorReimportMasterJobClass;
+
+#define PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB (photo_monitor_reimport_editable_job_get_type ())
+#define PHOTO_MONITOR_REIMPORT_EDITABLE_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, PhotoMonitorReimportEditableJob))
+#define PHOTO_MONITOR_REIMPORT_EDITABLE_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, PhotoMonitorReimportEditableJobClass))
+#define PHOTO_MONITOR_IS_REIMPORT_EDITABLE_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB))
+#define PHOTO_MONITOR_IS_REIMPORT_EDITABLE_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB))
+#define PHOTO_MONITOR_REIMPORT_EDITABLE_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, PhotoMonitorReimportEditableJobClass))
+
+typedef struct _PhotoMonitorReimportEditableJob PhotoMonitorReimportEditableJob;
+typedef struct _PhotoMonitorReimportEditableJobClass PhotoMonitorReimportEditableJobClass;
+
+#define PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB (photo_monitor_reimport_raw_development_job_get_type ())
+#define PHOTO_MONITOR_REIMPORT_RAW_DEVELOPMENT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, PhotoMonitorReimportRawDevelopmentJob))
+#define PHOTO_MONITOR_REIMPORT_RAW_DEVELOPMENT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, PhotoMonitorReimportRawDevelopmentJobClass))
+#define PHOTO_MONITOR_IS_REIMPORT_RAW_DEVELOPMENT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB))
+#define PHOTO_MONITOR_IS_REIMPORT_RAW_DEVELOPMENT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB))
+#define PHOTO_MONITOR_REIMPORT_RAW_DEVELOPMENT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, PhotoMonitorReimportRawDevelopmentJobClass))
+
+typedef struct _PhotoMonitorReimportRawDevelopmentJob PhotoMonitorReimportRawDevelopmentJob;
+typedef struct _PhotoMonitorReimportRawDevelopmentJobClass PhotoMonitorReimportRawDevelopmentJobClass;
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE (library_photo_source_collection_state_get_type ())
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+#define _backing_photo_row_unref0(var) ((var == NULL) ? NULL : (var = (backing_photo_row_unref (var), NULL)))
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+#define _monitorable_updates_unref0(var) ((var == NULL) ? NULL : (var = (monitorable_updates_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _PhotoMonitorReimportMasterJobPrivate PhotoMonitorReimportMasterJobPrivate;
+
+#define PHOTO_TYPE_REIMPORT_MASTER_STATE (photo_reimport_master_state_get_type ())
+#define PHOTO_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterState))
+#define PHOTO_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+#define PHOTO_IS_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_IS_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_REIMPORT_MASTER_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+
+typedef struct _PhotoReimportMasterState PhotoReimportMasterState;
+typedef struct _PhotoReimportMasterStateClass PhotoReimportMasterStateClass;
+typedef struct _PhotoMonitorReimportEditableJobPrivate PhotoMonitorReimportEditableJobPrivate;
+
+#define PHOTO_TYPE_REIMPORT_EDITABLE_STATE (photo_reimport_editable_state_get_type ())
+#define PHOTO_REIMPORT_EDITABLE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableState))
+#define PHOTO_REIMPORT_EDITABLE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableStateClass))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE))
+#define PHOTO_IS_REIMPORT_EDITABLE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_EDITABLE_STATE))
+#define PHOTO_REIMPORT_EDITABLE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_EDITABLE_STATE, PhotoReimportEditableStateClass))
+
+typedef struct _PhotoReimportEditableState PhotoReimportEditableState;
+typedef struct _PhotoReimportEditableStateClass PhotoReimportEditableStateClass;
+typedef struct _PhotoMonitorReimportRawDevelopmentJobPrivate PhotoMonitorReimportRawDevelopmentJobPrivate;
+
+#define PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE (photo_reimport_raw_development_state_get_type ())
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentState))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentStateClass))
+#define PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE))
+#define PHOTO_IS_REIMPORT_RAW_DEVELOPMENT_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE))
+#define PHOTO_REIMPORT_RAW_DEVELOPMENT_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_RAW_DEVELOPMENT_STATE, PhotoReimportRawDevelopmentStateClass))
+
+typedef struct _PhotoReimportRawDevelopmentState PhotoReimportRawDevelopmentState;
+typedef struct _PhotoReimportRawDevelopmentStateClass PhotoReimportRawDevelopmentStateClass;
+#define _photo_reimport_master_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_master_state_unref (var), NULL)))
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+#define _photo_reimport_editable_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_editable_state_unref (var), NULL)))
+#define _photo_reimport_raw_development_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_raw_development_state_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _MonitorableUpdates {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MonitorableUpdatesPrivate * priv;
+ Monitorable* monitorable;
+};
+
+struct _MonitorableUpdatesClass {
+ GTypeClass parent_class;
+ void (*finalize) (MonitorableUpdates *self);
+ gboolean (*is_in_alteration) (MonitorableUpdates* self);
+ void (*set_master_file) (MonitorableUpdates* self, GFile* file);
+ void (*set_master_file_info_altered) (MonitorableUpdates* self, gboolean altered);
+ void (*set_master_file_info) (MonitorableUpdates* self, GFileInfo* info);
+ void (*set_master_in_alteration) (MonitorableUpdates* self, gboolean in_alteration);
+ void (*set_master_alterations_complete) (MonitorableUpdates* self, GFileInfo* info);
+ void (*mark_offline) (MonitorableUpdates* self);
+ void (*mark_online) (MonitorableUpdates* self);
+ void (*reset_online_offline) (MonitorableUpdates* self);
+ gboolean (*is_all_updated) (MonitorableUpdates* self);
+};
+
+struct _PhotoUpdates {
+ MonitorableUpdates parent_instance;
+ PhotoUpdatesPrivate * priv;
+ LibraryPhoto* photo;
+ gboolean reimport_master;
+ gboolean reimport_editable;
+ gboolean reimport_raw_developments;
+ GFile* editable_file;
+ gboolean editable_file_info_altered;
+ gboolean raw_developer_file_info_altered;
+ GFileInfo* editable_file_info;
+ gboolean editable_in_alteration;
+ gboolean raw_development_in_alteration;
+ gboolean revert_to_master;
+ GeeCollection* developer_files;
+};
+
+struct _PhotoUpdatesClass {
+ MonitorableUpdatesClass parent_class;
+ void (*set_editable_file) (PhotoUpdates* self, GFile* file);
+ void (*set_editable_file_info) (PhotoUpdates* self, GFileInfo* info);
+ void (*set_editable_file_info_altered) (PhotoUpdates* self, gboolean altered);
+ void (*set_editable_in_alteration) (PhotoUpdates* self, gboolean in_alteration);
+ void (*set_raw_development_in_alteration) (PhotoUpdates* self, gboolean in_alteration);
+ void (*set_raw_developer_file_info_altered) (PhotoUpdates* self, gboolean altered);
+ void (*set_revert_to_master) (PhotoUpdates* self, gboolean revert);
+ void (*add_raw_developer_file) (PhotoUpdates* self, GFile* file);
+ void (*clear_raw_developer_files) (PhotoUpdates* self);
+ void (*set_reimport_master) (PhotoUpdates* self, gboolean reimport);
+ void (*set_reimport_editable) (PhotoUpdates* self, gboolean reimport);
+ void (*set_reimport_raw_developments) (PhotoUpdates* self, gboolean reimport);
+};
+
+typedef enum {
+ MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED,
+ MEDIA_MONITOR_DISCOVERED_FILE_IGNORE,
+ MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN
+} MediaMonitorDiscoveredFile;
+
+struct _MediaMonitor {
+ GObject parent_instance;
+ MediaMonitorPrivate * priv;
+};
+
+struct _MediaMonitorClass {
+ GObjectClass parent_class;
+ MediaSourceCollection* (*get_media_source_collection) (MediaMonitor* self);
+ void (*close) (MediaMonitor* self);
+ gchar* (*to_string) (MediaMonitor* self);
+ MonitorableUpdates* (*create_updates) (MediaMonitor* self, Monitorable* monitorable);
+ void (*on_media_source_destroyed) (MediaMonitor* self, DataSource* source);
+ void (*notify_discovery_started) (MediaMonitor* self);
+ MediaMonitorDiscoveredFile (*notify_file_discovered) (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable);
+ GeeCollection* (*candidates_for_unknown_file) (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+ GFile** (*get_auxilliary_backing_files) (MediaMonitor* self, Monitorable* monitorable, int* result_length1);
+ void (*update_backing_file_info) (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info);
+ void (*notify_discovery_completing) (MediaMonitor* self);
+ gboolean (*is_file_represented) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_created) (MediaMonitor* self, GFile* file, GFileInfo* info);
+ gboolean (*notify_file_moved) (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+ gboolean (*notify_file_altered) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_attributes_altered) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_alteration_completed) (MediaMonitor* self, GFile* file, GFileInfo* info);
+ gboolean (*notify_file_deleted) (MediaMonitor* self, GFile* file);
+ void (*process_updates) (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+};
+
+struct _PhotoMonitor {
+ MediaMonitor parent_instance;
+ PhotoMonitorPrivate * priv;
+};
+
+struct _PhotoMonitorClass {
+ MediaMonitorClass parent_class;
+};
+
+struct _PhotoMonitorPrivate {
+ Workers* workers;
+ GeeArrayList* matched_editables;
+ GeeArrayList* matched_developments;
+ GeeHashMap* master_reimport_pending;
+ GeeHashMap* editable_reimport_pending;
+ GeeHashMap* raw_developments_reimport_pending;
+};
+
+typedef enum {
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_UNKNOWN,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE,
+ LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER
+} LibraryPhotoSourceCollectionState;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _PhotoMonitorReimportMasterJob {
+ BackgroundJob parent_instance;
+ PhotoMonitorReimportMasterJobPrivate * priv;
+ LibraryPhoto* photo;
+ PhotoReimportMasterState* reimport_state;
+ gboolean mark_online;
+ GError* err;
+};
+
+struct _PhotoMonitorReimportMasterJobClass {
+ BackgroundJobClass parent_class;
+};
+
+struct _PhotoMonitorReimportEditableJob {
+ BackgroundJob parent_instance;
+ PhotoMonitorReimportEditableJobPrivate * priv;
+ LibraryPhoto* photo;
+ PhotoReimportEditableState* state;
+ gboolean success;
+ GError* err;
+};
+
+struct _PhotoMonitorReimportEditableJobClass {
+ BackgroundJobClass parent_class;
+};
+
+struct _PhotoMonitorReimportRawDevelopmentJob {
+ BackgroundJob parent_instance;
+ PhotoMonitorReimportRawDevelopmentJobPrivate * priv;
+ LibraryPhoto* photo;
+ PhotoReimportRawDevelopmentState* state;
+ gboolean success;
+ GError* err;
+};
+
+struct _PhotoMonitorReimportRawDevelopmentJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+
+static gpointer photo_updates_parent_class = NULL;
+static gpointer photo_monitor_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+static gpointer photo_monitor_reimport_master_job_parent_class = NULL;
+static gpointer photo_monitor_reimport_editable_job_parent_class = NULL;
+static gpointer photo_monitor_reimport_raw_development_job_parent_class = NULL;
+
+gpointer monitorable_updates_ref (gpointer instance);
+void monitorable_updates_unref (gpointer instance);
+GParamSpec* param_spec_monitorable_updates (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_monitorable_updates (GValue* value, gpointer v_object);
+void value_take_monitorable_updates (GValue* value, gpointer v_object);
+gpointer value_get_monitorable_updates (const GValue* value);
+GType monitorable_updates_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType monitorable_get_type (void) G_GNUC_CONST;
+GType photo_updates_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_UPDATES_DUMMY_PROPERTY
+};
+PhotoUpdates* photo_updates_new (LibraryPhoto* photo);
+PhotoUpdates* photo_updates_construct (GType object_type, LibraryPhoto* photo);
+MonitorableUpdates* monitorable_updates_new (Monitorable* monitorable);
+MonitorableUpdates* monitorable_updates_construct (GType object_type, Monitorable* monitorable);
+static void photo_updates_real_mark_offline (MonitorableUpdates* base);
+void monitorable_updates_mark_offline (MonitorableUpdates* self);
+gboolean photo_updates_is_reimport_master (PhotoUpdates* self);
+gboolean photo_updates_is_reimport_editable (PhotoUpdates* self);
+GFile* photo_updates_get_editable_file (PhotoUpdates* self);
+GFileInfo* photo_updates_get_editable_file_info (PhotoUpdates* self);
+GeeCollection* photo_updates_get_raw_developer_files (PhotoUpdates* self);
+static gboolean photo_updates_real_is_in_alteration (MonitorableUpdates* base);
+gboolean monitorable_updates_is_in_alteration (MonitorableUpdates* self);
+gboolean photo_updates_is_revert_to_master (PhotoUpdates* self);
+void photo_updates_set_editable_file (PhotoUpdates* self, GFile* file);
+static void photo_updates_real_set_editable_file (PhotoUpdates* self, GFile* file);
+void photo_updates_set_editable_file_info (PhotoUpdates* self, GFileInfo* info);
+static void photo_updates_real_set_editable_file_info (PhotoUpdates* self, GFileInfo* info);
+void photo_updates_set_editable_file_info_altered (PhotoUpdates* self, gboolean altered);
+static void photo_updates_real_set_editable_file_info_altered (PhotoUpdates* self, gboolean altered);
+void photo_updates_set_editable_in_alteration (PhotoUpdates* self, gboolean in_alteration);
+static void photo_updates_real_set_editable_in_alteration (PhotoUpdates* self, gboolean in_alteration);
+void photo_updates_set_raw_development_in_alteration (PhotoUpdates* self, gboolean in_alteration);
+static void photo_updates_real_set_raw_development_in_alteration (PhotoUpdates* self, gboolean in_alteration);
+void photo_updates_set_raw_developer_file_info_altered (PhotoUpdates* self, gboolean altered);
+static void photo_updates_real_set_raw_developer_file_info_altered (PhotoUpdates* self, gboolean altered);
+void photo_updates_set_revert_to_master (PhotoUpdates* self, gboolean revert);
+static void photo_updates_real_set_revert_to_master (PhotoUpdates* self, gboolean revert);
+void photo_updates_add_raw_developer_file (PhotoUpdates* self, GFile* file);
+static void photo_updates_real_add_raw_developer_file (PhotoUpdates* self, GFile* file);
+void photo_updates_clear_raw_developer_files (PhotoUpdates* self);
+static void photo_updates_real_clear_raw_developer_files (PhotoUpdates* self);
+void photo_updates_set_reimport_master (PhotoUpdates* self, gboolean reimport);
+static void photo_updates_real_set_reimport_master (PhotoUpdates* self, gboolean reimport);
+void monitorable_updates_mark_online (MonitorableUpdates* self);
+void photo_updates_set_reimport_editable (PhotoUpdates* self, gboolean reimport);
+static void photo_updates_real_set_reimport_editable (PhotoUpdates* self, gboolean reimport);
+gboolean monitorable_updates_is_set_offline (MonitorableUpdates* self);
+void photo_updates_set_reimport_raw_developments (PhotoUpdates* self, gboolean reimport);
+static void photo_updates_real_set_reimport_raw_developments (PhotoUpdates* self, gboolean reimport);
+static gboolean photo_updates_real_is_all_updated (MonitorableUpdates* base);
+gboolean monitorable_updates_is_all_updated (MonitorableUpdates* self);
+static void photo_updates_finalize (MonitorableUpdates* obj);
+GType media_monitor_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType media_monitor_discovered_file_get_type (void) G_GNUC_CONST;
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+GType photo_monitor_get_type (void) G_GNUC_CONST;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+static GType photo_monitor_reimport_master_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GType photo_monitor_reimport_editable_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GType photo_monitor_reimport_raw_development_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define PHOTO_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_MONITOR, PhotoMonitorPrivate))
+enum {
+ PHOTO_MONITOR_DUMMY_PROPERTY
+};
+#define PHOTO_MONITOR_MAX_REIMPORT_JOBS_PER_CYCLE 20
+#define PHOTO_MONITOR_MAX_REVERTS_PER_CYCLE 5
+PhotoMonitor* photo_monitor_new (Workers* workers, GCancellable* cancellable);
+PhotoMonitor* photo_monitor_construct (GType object_type, Workers* workers, GCancellable* cancellable);
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+MediaMonitor* media_monitor_construct (GType object_type, MediaSourceCollection* sources, GCancellable* cancellable);
+static MonitorableUpdates* photo_monitor_real_create_updates (MediaMonitor* base, Monitorable* monitorable);
+static MediaSourceCollection* photo_monitor_real_get_media_source_collection (MediaMonitor* base);
+static gboolean photo_monitor_real_is_file_represented (MediaMonitor* base, GFile* file);
+GType library_photo_source_collection_state_get_type (void) G_GNUC_CONST;
+static LibraryPhoto* photo_monitor_get_photo_state_by_file (PhotoMonitor* self, GFile* file, LibraryPhotoSourceCollectionState* state);
+static void photo_monitor_real_close (MediaMonitor* base);
+void background_job_cancel (BackgroundJob* self);
+void media_monitor_close (MediaMonitor* self);
+static void photo_monitor_cancel_reimports (PhotoMonitor* self, LibraryPhoto* photo);
+static MediaMonitorDiscoveredFile photo_monitor_real_notify_file_discovered (MediaMonitor* base, GFile* file, GFileInfo* info, Monitorable** monitorable);
+static GeeCollection* photo_monitor_real_candidates_for_unknown_file (MediaMonitor* base, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+void library_photo_source_collection_fetch_by_matching_backing (LibraryPhotoSourceCollection* self, GFileInfo* info, GeeCollection* matches_master, GeeCollection* matches_editable, GeeCollection* matched_development);
+gchar* data_object_to_string (DataObject* self);
+gboolean photo_does_editable_exist (Photo* self);
+void photo_revert_to_master (Photo* self, gboolean notify);
+void photo_monitor_update_editable_file (PhotoMonitor* self, LibraryPhoto* photo, GFile* file);
+void photo_monitor_update_raw_development_file (PhotoMonitor* self, LibraryPhoto* photo, GFile* file);
+static GFile** photo_monitor_real_get_auxilliary_backing_files (MediaMonitor* base, Monitorable* monitorable, int* result_length1);
+gboolean photo_has_editable (Photo* self);
+GFile* photo_get_editable_file (Photo* self);
+static void _vala_array_add337 (GFile*** array, int* length, int* size, GFile* value);
+GeeCollection* photo_get_raw_developer_files (Photo* self);
+static void _vala_array_add338 (GFile*** array, int* length, int* size, GFile* value);
+static GFile** _vala_array_dup32 (GFile** self, int length);
+static void photo_monitor_real_update_backing_file_info (MediaMonitor* base, Monitorable* monitorable, GFile* file, GFileInfo* info);
+GFile* media_monitor_get_master_file (MediaMonitor* self, Monitorable* monitorable);
+static void photo_monitor_check_for_master_changes (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info);
+GFile* photo_monitor_get_editable_file (PhotoMonitor* self, LibraryPhoto* photo);
+static void photo_monitor_check_for_editable_changes (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info);
+GeeCollection* photo_monitor_get_raw_development_files (PhotoMonitor* self, LibraryPhoto* photo);
+static void photo_monitor_check_for_raw_development_changes (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info);
+static void photo_monitor_real_notify_discovery_completing (MediaMonitor* base);
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+BackingPhotoRow* photo_get_master_photo_row (Photo* self);
+gboolean backing_photo_row_matches_file_info (BackingPhotoRow* self, GFileInfo* info);
+gboolean backing_photo_row_is_touched (BackingPhotoRow* self, GFileInfo* info);
+void media_monitor_update_master_file_info_altered (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_update_master_file_alterations_completed (MediaMonitor* self, Monitorable* monitorable, GFileInfo* info);
+void photo_monitor_update_reimport_master (PhotoMonitor* self, LibraryPhoto* photo);
+void photo_monitor_update_revert_to_master (PhotoMonitor* self, LibraryPhoto* photo);
+BackingPhotoRow* photo_get_editable_photo_row (Photo* self);
+void photo_monitor_update_editable_file_info_altered (PhotoMonitor* self, LibraryPhoto* photo);
+void photo_monitor_update_editable_file_alterations_completed (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info);
+void photo_monitor_update_reimport_editable (PhotoMonitor* self, LibraryPhoto* photo);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+void photo_set_raw_developer (Photo* self, RawDeveloper d);
+GeeCollection* photo_get_raw_development_photo_rows (Photo* self);
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+void photo_monitor_update_raw_development_file_info_altered (PhotoMonitor* self, LibraryPhoto* photo);
+void photo_monitor_update_raw_development_file_alterations_completed (PhotoMonitor* self, LibraryPhoto* photo);
+void photo_monitor_update_reimport_raw_developments (PhotoMonitor* self, LibraryPhoto* photo);
+static gboolean photo_monitor_real_notify_file_created (MediaMonitor* base, GFile* file, GFileInfo* info);
+const gchar* library_photo_source_collection_state_to_string (LibraryPhotoSourceCollectionState self);
+void media_monitor_mdbg (const gchar* msg);
+void media_monitor_update_online (MediaMonitor* self, Monitorable* monitorable);
+static gboolean photo_monitor_real_notify_file_moved (MediaMonitor* base, GFile* old_file, GFile* new_file, GFileInfo* info);
+void media_monitor_update_master_file (MediaMonitor* self, Monitorable* monitorable, GFile* file);
+void media_monitor_update_offline (MediaMonitor* self, Monitorable* monitorable);
+static gboolean photo_monitor_real_notify_file_altered (MediaMonitor* base, GFile* file);
+void media_monitor_update_master_file_in_alteration (MediaMonitor* self, Monitorable* monitorable, gboolean in_alteration);
+void photo_monitor_update_editable_file_in_alteration (PhotoMonitor* self, LibraryPhoto* photo, gboolean in_alteration);
+void photo_monitor_update_raw_development_file_in_alteration (PhotoMonitor* self, LibraryPhoto* photo, gboolean in_alteration);
+static gboolean photo_monitor_real_notify_file_attributes_altered (MediaMonitor* base, GFile* file);
+static gboolean photo_monitor_real_notify_file_alteration_completed (MediaMonitor* base, GFile* file, GFileInfo* info);
+static gboolean photo_monitor_real_notify_file_deleted (MediaMonitor* base, GFile* file);
+static void photo_monitor_real_on_media_source_destroyed (MediaMonitor* base, DataSource* source);
+void media_monitor_on_media_source_destroyed (MediaMonitor* self, DataSource* source);
+gboolean media_monitor_has_pending_updates (MediaMonitor* self);
+GeeCollection* media_monitor_get_monitorables (MediaMonitor* self);
+PhotoUpdates* photo_monitor_get_existing_photo_updates (PhotoMonitor* self, LibraryPhoto* photo);
+GFile* monitorable_updates_get_master_file (MonitorableUpdates* self);
+GFile* media_source_get_master_file (MediaSource* self);
+LibraryPhoto* library_photo_source_collection_get_state_by_file (LibraryPhotoSourceCollection* self, GFile* file, LibraryPhotoSourceCollectionState* state);
+PhotoUpdates* photo_monitor_fetch_photo_updates (PhotoMonitor* self, LibraryPhoto* photo);
+MonitorableUpdates* media_monitor_fetch_updates (MediaMonitor* self, Monitorable* monitorable);
+MonitorableUpdates* media_monitor_get_existing_updates (MediaMonitor* self, Monitorable* monitorable);
+static void photo_monitor_real_process_updates (MediaMonitor* base, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+void media_monitor_process_updates (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+#define MEDIA_MONITOR_MAX_OPERATIONS_PER_CYCLE 100
+GQuark database_error_quark (void);
+void photo_set_many_editable_file (GeeMap* map, GError** error);
+void app_window_database_error (GError* err);
+void photo_update_many_editable_timestamps (GeeMap* map, GError** error);
+static PhotoMonitorReimportMasterJob* photo_monitor_reimport_master_job_new (PhotoMonitor* owner, LibraryPhoto* photo);
+static PhotoMonitorReimportMasterJob* photo_monitor_reimport_master_job_construct (GType object_type, PhotoMonitor* owner, LibraryPhoto* photo);
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static PhotoMonitorReimportEditableJob* photo_monitor_reimport_editable_job_new (PhotoMonitor* owner, LibraryPhoto* photo);
+static PhotoMonitorReimportEditableJob* photo_monitor_reimport_editable_job_construct (GType object_type, PhotoMonitor* owner, LibraryPhoto* photo);
+static PhotoMonitorReimportRawDevelopmentJob* photo_monitor_reimport_raw_development_job_new (PhotoMonitor* owner, LibraryPhoto* photo);
+static PhotoMonitorReimportRawDevelopmentJob* photo_monitor_reimport_raw_development_job_construct (GType object_type, PhotoMonitor* owner, LibraryPhoto* photo);
+static void photo_monitor_on_master_reimported (PhotoMonitor* self, BackgroundJob* j);
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+gpointer photo_reimport_master_state_ref (gpointer instance);
+void photo_reimport_master_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_master_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_master_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_master_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_master_state (const GValue* value);
+GType photo_reimport_master_state_get_type (void) G_GNUC_CONST;
+void photo_finish_reimport_master (Photo* self, PhotoReimportMasterState* state, GError** error);
+gboolean media_source_is_offline (MediaSource* self);
+static void photo_monitor_on_master_reimport_cancelled (PhotoMonitor* self, BackgroundJob* j);
+static void photo_monitor_on_editable_reimported (PhotoMonitor* self, BackgroundJob* j);
+gpointer photo_reimport_editable_state_ref (gpointer instance);
+void photo_reimport_editable_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_editable_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_editable_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_editable_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_editable_state (const GValue* value);
+GType photo_reimport_editable_state_get_type (void) G_GNUC_CONST;
+void photo_finish_reimport_editable (Photo* self, PhotoReimportEditableState* state, GError** error);
+static void photo_monitor_on_editable_reimport_cancelled (PhotoMonitor* self, BackgroundJob* j);
+static void photo_monitor_on_raw_development_reimported (PhotoMonitor* self, BackgroundJob* j);
+gpointer photo_reimport_raw_development_state_ref (gpointer instance);
+void photo_reimport_raw_development_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_raw_development_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_raw_development_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_raw_development_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_raw_development_state (const GValue* value);
+GType photo_reimport_raw_development_state_get_type (void) G_GNUC_CONST;
+void photo_finish_reimport_raw_development (Photo* self, PhotoReimportRawDevelopmentState* state, GError** error);
+static void photo_monitor_on_raw_development_reimport_cancelled (PhotoMonitor* self, BackgroundJob* j);
+enum {
+ PHOTO_MONITOR_REIMPORT_MASTER_JOB_DUMMY_PROPERTY
+};
+static void _photo_monitor_on_master_reimported_completion_callback (BackgroundJob* job, gpointer self);
+static void _photo_monitor_on_master_reimport_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+static void photo_monitor_reimport_master_job_real_execute (BackgroundJob* base);
+gboolean photo_prepare_for_reimport_master (Photo* self, PhotoReimportMasterState** reimport_state, GError** error);
+static void photo_monitor_reimport_master_job_finalize (BackgroundJob* obj);
+enum {
+ PHOTO_MONITOR_REIMPORT_EDITABLE_JOB_DUMMY_PROPERTY
+};
+static void _photo_monitor_on_editable_reimported_completion_callback (BackgroundJob* job, gpointer self);
+static void _photo_monitor_on_editable_reimport_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+static void photo_monitor_reimport_editable_job_real_execute (BackgroundJob* base);
+gboolean photo_prepare_for_reimport_editable (Photo* self, PhotoReimportEditableState** state, GError** error);
+static void photo_monitor_reimport_editable_job_finalize (BackgroundJob* obj);
+enum {
+ PHOTO_MONITOR_REIMPORT_RAW_DEVELOPMENT_JOB_DUMMY_PROPERTY
+};
+static void _photo_monitor_on_raw_development_reimported_completion_callback (BackgroundJob* job, gpointer self);
+static void _photo_monitor_on_raw_development_reimport_cancelled_cancellation_callback (BackgroundJob* job, gpointer self);
+static void photo_monitor_reimport_raw_development_job_real_execute (BackgroundJob* base);
+gboolean photo_prepare_for_reimport_raw_development (Photo* self, PhotoReimportRawDevelopmentState** state, GError** error);
+static void photo_monitor_reimport_raw_development_job_finalize (BackgroundJob* obj);
+static void photo_monitor_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 25 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 883 "PhotoMonitor.c"
+}
+
+
+PhotoUpdates* photo_updates_construct (GType object_type, LibraryPhoto* photo) {
+ PhotoUpdates* self = NULL;
+ LibraryPhoto* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 23 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 23 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = (PhotoUpdates*) monitorable_updates_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MONITORABLE, Monitorable));
+#line 25 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo;
+#line 25 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 25 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 25 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->photo = _tmp2_;
+#line 22 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self;
+#line 908 "PhotoMonitor.c"
+}
+
+
+PhotoUpdates* photo_updates_new (LibraryPhoto* photo) {
+#line 22 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return photo_updates_construct (TYPE_PHOTO_UPDATES, photo);
+#line 915 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_mark_offline (MonitorableUpdates* base) {
+ PhotoUpdates * self;
+#line 28 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_UPDATES, PhotoUpdates);
+#line 29 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ MONITORABLE_UPDATES_CLASS (photo_updates_parent_class)->mark_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 31 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_master = FALSE;
+#line 32 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_editable = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_raw_developments = FALSE;
+#line 931 "PhotoMonitor.c"
+}
+
+
+gboolean photo_updates_is_reimport_master (PhotoUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 36 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_UPDATES (self), FALSE);
+#line 37 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->reimport_master;
+#line 37 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp0_;
+#line 37 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 946 "PhotoMonitor.c"
+}
+
+
+gboolean photo_updates_is_reimport_editable (PhotoUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 40 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_UPDATES (self), FALSE);
+#line 41 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->reimport_editable;
+#line 41 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp0_;
+#line 41 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 961 "PhotoMonitor.c"
+}
+
+
+GFile* photo_updates_get_editable_file (PhotoUpdates* self) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_UPDATES (self), NULL);
+#line 45 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->editable_file;
+#line 45 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 45 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp1_;
+#line 45 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 979 "PhotoMonitor.c"
+}
+
+
+GFileInfo* photo_updates_get_editable_file_info (PhotoUpdates* self) {
+ GFileInfo* result = NULL;
+ GFileInfo* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_UPDATES (self), NULL);
+#line 49 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->editable_file_info;
+#line 49 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 49 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp1_;
+#line 49 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 997 "PhotoMonitor.c"
+}
+
+
+GeeCollection* photo_updates_get_raw_developer_files (PhotoUpdates* self) {
+ GeeCollection* result = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_UPDATES (self), NULL);
+#line 53 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->developer_files;
+#line 53 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 53 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp1_;
+#line 53 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 1015 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_updates_real_is_in_alteration (MonitorableUpdates* base) {
+ PhotoUpdates * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 56 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_UPDATES, PhotoUpdates);
+#line 57 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = MONITORABLE_UPDATES_CLASS (photo_updates_parent_class)->is_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 57 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_) {
+#line 57 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = TRUE;
+#line 1032 "PhotoMonitor.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 57 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = self->editable_in_alteration;
+#line 57 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp2_;
+#line 1039 "PhotoMonitor.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp0_;
+#line 57 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 1045 "PhotoMonitor.c"
+}
+
+
+gboolean photo_updates_is_revert_to_master (PhotoUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 60 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_UPDATES (self), FALSE);
+#line 61 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->revert_to_master;
+#line 61 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp0_;
+#line 61 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 1060 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_editable_file (PhotoUpdates* self, GFile* file) {
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail ((file == NULL) || G_IS_FILE (file));
+#line 66 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = file;
+#line 66 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_ != NULL) {
+#line 1075 "PhotoMonitor.c"
+ gboolean _tmp2_ = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = self->revert_to_master;
+#line 66 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp2_;
+#line 1081 "PhotoMonitor.c"
+ } else {
+#line 66 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = FALSE;
+#line 1085 "PhotoMonitor.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_) {
+#line 67 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 1091 "PhotoMonitor.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = file;
+#line 69 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 69 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->editable_file);
+#line 69 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file = _tmp4_;
+#line 1101 "PhotoMonitor.c"
+}
+
+
+void photo_updates_set_editable_file (PhotoUpdates* self, GFile* file) {
+#line 64 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 64 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_editable_file (self, file);
+#line 1110 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_editable_file_info (PhotoUpdates* self, GFileInfo* info) {
+ gboolean _tmp0_ = FALSE;
+ GFileInfo* _tmp1_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 74 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = info;
+#line 74 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_ != NULL) {
+#line 1126 "PhotoMonitor.c"
+ gboolean _tmp2_ = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = self->revert_to_master;
+#line 74 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp2_;
+#line 1132 "PhotoMonitor.c"
+ } else {
+#line 74 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = FALSE;
+#line 1136 "PhotoMonitor.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_) {
+#line 75 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 1142 "PhotoMonitor.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = info;
+#line 77 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 77 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->editable_file_info);
+#line 77 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file_info = _tmp4_;
+#line 78 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = info;
+#line 78 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp5_ == NULL) {
+#line 79 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file_info_altered = FALSE;
+#line 1158 "PhotoMonitor.c"
+ }
+}
+
+
+void photo_updates_set_editable_file_info (PhotoUpdates* self, GFileInfo* info) {
+#line 72 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 72 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_editable_file_info (self, info);
+#line 1168 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_editable_file_info_altered (PhotoUpdates* self, gboolean altered) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 84 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = altered;
+#line 84 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_) {
+#line 1180 "PhotoMonitor.c"
+ gboolean _tmp2_ = FALSE;
+#line 84 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = self->revert_to_master;
+#line 84 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp2_;
+#line 1186 "PhotoMonitor.c"
+ } else {
+#line 84 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = FALSE;
+#line 1190 "PhotoMonitor.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_) {
+#line 85 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 1196 "PhotoMonitor.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = altered;
+#line 87 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file_info_altered = _tmp3_;
+#line 1202 "PhotoMonitor.c"
+}
+
+
+void photo_updates_set_editable_file_info_altered (PhotoUpdates* self, gboolean altered) {
+#line 82 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 82 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_editable_file_info_altered (self, altered);
+#line 1211 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_editable_in_alteration (PhotoUpdates* self, gboolean in_alteration) {
+ gboolean _tmp0_ = FALSE;
+#line 91 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = in_alteration;
+#line 91 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_in_alteration = _tmp0_;
+#line 1221 "PhotoMonitor.c"
+}
+
+
+void photo_updates_set_editable_in_alteration (PhotoUpdates* self, gboolean in_alteration) {
+#line 90 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 90 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_editable_in_alteration (self, in_alteration);
+#line 1230 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_raw_development_in_alteration (PhotoUpdates* self, gboolean in_alteration) {
+ gboolean _tmp0_ = FALSE;
+#line 95 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = in_alteration;
+#line 95 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->raw_development_in_alteration = _tmp0_;
+#line 1240 "PhotoMonitor.c"
+}
+
+
+void photo_updates_set_raw_development_in_alteration (PhotoUpdates* self, gboolean in_alteration) {
+#line 94 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 94 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_raw_development_in_alteration (self, in_alteration);
+#line 1249 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_raw_developer_file_info_altered (PhotoUpdates* self, gboolean altered) {
+ gboolean _tmp0_ = FALSE;
+#line 99 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = altered;
+#line 99 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->raw_developer_file_info_altered = _tmp0_;
+#line 1259 "PhotoMonitor.c"
+}
+
+
+void photo_updates_set_raw_developer_file_info_altered (PhotoUpdates* self, gboolean altered) {
+#line 98 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 98 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_raw_developer_file_info_altered (self, altered);
+#line 1268 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_revert_to_master (PhotoUpdates* self, gboolean revert) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 103 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = revert;
+#line 103 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_) {
+#line 105 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_editable = FALSE;
+#line 106 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->editable_file);
+#line 106 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file = NULL;
+#line 107 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->editable_file_info);
+#line 107 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file_info = NULL;
+#line 1289 "PhotoMonitor.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = revert;
+#line 110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->revert_to_master = _tmp1_;
+#line 1295 "PhotoMonitor.c"
+}
+
+
+void photo_updates_set_revert_to_master (PhotoUpdates* self, gboolean revert) {
+#line 102 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 102 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_revert_to_master (self, revert);
+#line 1304 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_add_raw_developer_file (PhotoUpdates* self, GFile* file) {
+ GeeCollection* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 114 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->developer_files;
+#line 114 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = file;
+#line 114 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_collection_add (_tmp0_, _tmp1_);
+#line 1319 "PhotoMonitor.c"
+}
+
+
+void photo_updates_add_raw_developer_file (PhotoUpdates* self, GFile* file) {
+#line 113 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 113 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->add_raw_developer_file (self, file);
+#line 1328 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_clear_raw_developer_files (PhotoUpdates* self) {
+ GeeCollection* _tmp0_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->developer_files;
+#line 118 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_collection_clear (_tmp0_);
+#line 1338 "PhotoMonitor.c"
+}
+
+
+void photo_updates_clear_raw_developer_files (PhotoUpdates* self) {
+#line 117 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 117 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->clear_raw_developer_files (self);
+#line 1347 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_reimport_master (PhotoUpdates* self, gboolean reimport) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 122 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = reimport;
+#line 122 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_master = _tmp0_;
+#line 124 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = reimport;
+#line 124 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_) {
+#line 125 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ monitorable_updates_mark_online (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 1364 "PhotoMonitor.c"
+ }
+}
+
+
+void photo_updates_set_reimport_master (PhotoUpdates* self, gboolean reimport) {
+#line 121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_reimport_master (self, reimport);
+#line 1374 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_reimport_editable (PhotoUpdates* self, gboolean reimport) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = reimport;
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_) {
+#line 1386 "PhotoMonitor.c"
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = self->revert_to_master;
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_) {
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = TRUE;
+#line 1395 "PhotoMonitor.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = monitorable_updates_is_set_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp4_;
+#line 1402 "PhotoMonitor.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp2_;
+#line 1406 "PhotoMonitor.c"
+ } else {
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = FALSE;
+#line 1410 "PhotoMonitor.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_) {
+#line 131 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 1416 "PhotoMonitor.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = reimport;
+#line 133 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_editable = _tmp5_;
+#line 1422 "PhotoMonitor.c"
+}
+
+
+void photo_updates_set_reimport_editable (PhotoUpdates* self, gboolean reimport) {
+#line 128 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 128 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_reimport_editable (self, reimport);
+#line 1431 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_real_set_reimport_raw_developments (PhotoUpdates* self, gboolean reimport) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = reimport;
+#line 137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_raw_developments = _tmp0_;
+#line 139 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = reimport;
+#line 139 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_) {
+#line 140 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ monitorable_updates_mark_online (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 1448 "PhotoMonitor.c"
+ }
+}
+
+
+void photo_updates_set_reimport_raw_developments (PhotoUpdates* self, gboolean reimport) {
+#line 136 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_UPDATES (self));
+#line 136 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ PHOTO_UPDATES_GET_CLASS (self)->set_reimport_raw_developments (self, reimport);
+#line 1458 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_updates_real_is_all_updated (MonitorableUpdates* base) {
+ PhotoUpdates * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_UPDATES, PhotoUpdates);
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = MONITORABLE_UPDATES_CLASS (photo_updates_parent_class)->is_all_updated (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp9_) {
+#line 1481 "PhotoMonitor.c"
+ gboolean _tmp10_ = FALSE;
+#line 145 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = self->reimport_master;
+#line 145 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = _tmp10_ == FALSE;
+#line 1487 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = FALSE;
+#line 1491 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp8_) {
+#line 1495 "PhotoMonitor.c"
+ gboolean _tmp11_ = FALSE;
+#line 146 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = self->reimport_editable;
+#line 146 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp11_ == FALSE;
+#line 1501 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = FALSE;
+#line 1505 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp7_) {
+#line 1509 "PhotoMonitor.c"
+ GFile* _tmp12_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = self->editable_file;
+#line 147 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _tmp12_ == NULL;
+#line 1515 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = FALSE;
+#line 1519 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp6_) {
+#line 1523 "PhotoMonitor.c"
+ gboolean _tmp13_ = FALSE;
+#line 148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = self->editable_file_info_altered;
+#line 148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = _tmp13_ == FALSE;
+#line 1529 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = FALSE;
+#line 1533 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp5_) {
+#line 1537 "PhotoMonitor.c"
+ GFileInfo* _tmp14_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = self->editable_file_info;
+#line 149 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp14_ == NULL;
+#line 1543 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = FALSE;
+#line 1547 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp4_) {
+#line 1551 "PhotoMonitor.c"
+ gboolean _tmp15_ = FALSE;
+#line 150 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = self->editable_in_alteration;
+#line 150 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp15_ == FALSE;
+#line 1557 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = FALSE;
+#line 1561 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_) {
+#line 1565 "PhotoMonitor.c"
+ GeeCollection* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 151 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = self->developer_files;
+#line 151 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = gee_collection_get_size (_tmp16_);
+#line 151 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = _tmp17_;
+#line 151 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp18_ == 0;
+#line 1577 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = FALSE;
+#line 1581 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp2_) {
+#line 1585 "PhotoMonitor.c"
+ gboolean _tmp19_ = FALSE;
+#line 152 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = self->raw_developer_file_info_altered;
+#line 152 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _tmp19_ == FALSE;
+#line 1591 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = FALSE;
+#line 1595 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp1_) {
+#line 1599 "PhotoMonitor.c"
+ gboolean _tmp20_ = FALSE;
+#line 153 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = self->revert_to_master;
+#line 153 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp20_ == FALSE;
+#line 1605 "PhotoMonitor.c"
+ } else {
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = FALSE;
+#line 1609 "PhotoMonitor.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp0_;
+#line 144 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 1615 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_class_init (PhotoUpdatesClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->finalize = photo_updates_finalize;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->mark_offline = photo_updates_real_mark_offline;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->is_in_alteration = photo_updates_real_is_in_alteration;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_editable_file = photo_updates_real_set_editable_file;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_editable_file_info = photo_updates_real_set_editable_file_info;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_editable_file_info_altered = photo_updates_real_set_editable_file_info_altered;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_editable_in_alteration = photo_updates_real_set_editable_in_alteration;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_raw_development_in_alteration = photo_updates_real_set_raw_development_in_alteration;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_raw_developer_file_info_altered = photo_updates_real_set_raw_developer_file_info_altered;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_revert_to_master = photo_updates_real_set_revert_to_master;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->add_raw_developer_file = photo_updates_real_add_raw_developer_file;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->clear_raw_developer_files = photo_updates_real_clear_raw_developer_files;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_reimport_master = photo_updates_real_set_reimport_master;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_reimport_editable = photo_updates_real_set_reimport_editable;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((PhotoUpdatesClass *) klass)->set_reimport_raw_developments = photo_updates_real_set_reimport_raw_developments;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->is_all_updated = photo_updates_real_is_all_updated;
+#line 1654 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_instance_init (PhotoUpdates * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_master = FALSE;
+#line 11 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_editable = FALSE;
+#line 12 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_raw_developments = FALSE;
+#line 13 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file = NULL;
+#line 14 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file_info_altered = FALSE;
+#line 15 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->raw_developer_file_info_altered = FALSE;
+#line 16 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_file_info = NULL;
+#line 17 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->editable_in_alteration = FALSE;
+#line 18 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->raw_development_in_alteration = FALSE;
+#line 19 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->revert_to_master = FALSE;
+#line 20 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 20 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->developer_files = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1684 "PhotoMonitor.c"
+}
+
+
+static void photo_updates_finalize (MonitorableUpdates* obj) {
+ PhotoUpdates * self;
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_UPDATES, PhotoUpdates);
+#line 8 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 13 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->editable_file);
+#line 16 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->editable_file_info);
+#line 20 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->developer_files);
+#line 7 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ MONITORABLE_UPDATES_CLASS (photo_updates_parent_class)->finalize (obj);
+#line 1702 "PhotoMonitor.c"
+}
+
+
+GType photo_updates_get_type (void) {
+ static volatile gsize photo_updates_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_updates_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoUpdatesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_updates_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoUpdates), 0, (GInstanceInitFunc) photo_updates_instance_init, NULL };
+ GType photo_updates_type_id;
+ photo_updates_type_id = g_type_register_static (TYPE_MONITORABLE_UPDATES, "PhotoUpdates", &g_define_type_info, 0);
+ g_once_init_leave (&photo_updates_type_id__volatile, photo_updates_type_id);
+ }
+ return photo_updates_type_id__volatile;
+}
+
+
+static gpointer _workers_ref0 (gpointer self) {
+#line 240 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self ? workers_ref (self) : NULL;
+#line 1721 "PhotoMonitor.c"
+}
+
+
+PhotoMonitor* photo_monitor_construct (GType object_type, Workers* workers, GCancellable* cancellable) {
+ PhotoMonitor * self = NULL;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ GCancellable* _tmp1_ = NULL;
+ Workers* _tmp2_ = NULL;
+ Workers* _tmp3_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_WORKERS (workers), NULL);
+#line 237 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 238 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = library_photo_global;
+#line 238 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = cancellable;
+#line 238 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = (PhotoMonitor*) media_monitor_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _tmp1_);
+#line 240 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = workers;
+#line 240 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _workers_ref0 (_tmp2_);
+#line 240 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _workers_unref0 (self->priv->workers);
+#line 240 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->priv->workers = _tmp3_;
+#line 237 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self;
+#line 1751 "PhotoMonitor.c"
+}
+
+
+PhotoMonitor* photo_monitor_new (Workers* workers, GCancellable* cancellable) {
+#line 237 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return photo_monitor_construct (TYPE_PHOTO_MONITOR, workers, cancellable);
+#line 1758 "PhotoMonitor.c"
+}
+
+
+static MonitorableUpdates* photo_monitor_real_create_updates (MediaMonitor* base, Monitorable* monitorable) {
+ PhotoMonitor * self;
+ MonitorableUpdates* result = NULL;
+ Monitorable* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 243 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 244 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = monitorable;
+#line 244 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO), "monitorable is LibraryPhoto");
+#line 246 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = monitorable;
+#line 246 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_updates_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 246 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MONITORABLE_UPDATES, MonitorableUpdates);
+#line 246 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 1784 "PhotoMonitor.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 250 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 1791 "PhotoMonitor.c"
+}
+
+
+static MediaSourceCollection* photo_monitor_real_get_media_source_collection (MediaMonitor* base) {
+ PhotoMonitor * self;
+ MediaSourceCollection* result = NULL;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ MediaSourceCollection* _tmp1_ = NULL;
+#line 249 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 250 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = library_photo_global;
+#line 250 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _data_collection_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 250 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp1_;
+#line 250 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 1810 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_monitor_real_is_file_represented (MediaMonitor* base, GFile* file) {
+ PhotoMonitor * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollectionState state = 0;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 253 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 253 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = file;
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp1_;
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp3_ != NULL;
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp4_;
+#line 255 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 1843 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_real_close (MediaMonitor* base) {
+ PhotoMonitor * self;
+#line 258 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 1851 "PhotoMonitor.c"
+ {
+ GeeIterator* _job_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->priv->master_reimport_pending;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = _tmp4_;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _job_it = _tmp5_;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 1878 "PhotoMonitor.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PhotoMonitorReimportMasterJob* job = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp10_ = NULL;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _job_it;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp7_) {
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 1893 "PhotoMonitor.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = _job_it;
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = (PhotoMonitorReimportMasterJob*) _tmp9_;
+#line 260 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = job;
+#line 260 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1907 "PhotoMonitor.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_job_it);
+#line 1911 "PhotoMonitor.c"
+ }
+ {
+ GeeIterator* _job_it = NULL;
+ GeeHashMap* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = self->priv->editable_reimport_pending;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_MAP, GeeMap));
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = _tmp12_;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = _tmp15_;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp14_);
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _job_it = _tmp16_;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 1939 "PhotoMonitor.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ PhotoMonitorReimportEditableJob* job = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp21_ = NULL;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _job_it;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp18_) {
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 1954 "PhotoMonitor.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = _job_it;
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = (PhotoMonitorReimportEditableJob*) _tmp20_;
+#line 263 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = job;
+#line 263 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1968 "PhotoMonitor.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_job_it);
+#line 1972 "PhotoMonitor.c"
+ }
+ {
+ GeeIterator* _job_it = NULL;
+ GeeHashMap* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ GeeIterator* _tmp26_ = NULL;
+ GeeIterator* _tmp27_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = self->priv->raw_developments_reimport_pending;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_MAP, GeeMap));
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = _tmp24_;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = _tmp26_;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp25_);
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _job_it = _tmp27_;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 2000 "PhotoMonitor.c"
+ GeeIterator* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ PhotoMonitorReimportRawDevelopmentJob* job = NULL;
+ GeeIterator* _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp32_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = _job_it;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = gee_iterator_next (_tmp28_);
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp29_) {
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 2015 "PhotoMonitor.c"
+ }
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = _job_it;
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = gee_iterator_get (_tmp30_);
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = (PhotoMonitorReimportRawDevelopmentJob*) _tmp31_;
+#line 266 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = job;
+#line 266 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 2029 "PhotoMonitor.c"
+ }
+#line 265 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_job_it);
+#line 2033 "PhotoMonitor.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ MEDIA_MONITOR_CLASS (photo_monitor_parent_class)->close (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor));
+#line 2037 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_cancel_reimports (PhotoMonitor* self, LibraryPhoto* photo) {
+ PhotoMonitorReimportMasterJob* master_job = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp3_ = NULL;
+ PhotoMonitorReimportEditableJob* editable_job = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ LibraryPhoto* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp8_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 271 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 272 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->priv->master_reimport_pending;
+#line 272 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo;
+#line 272 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 272 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ master_job = (PhotoMonitorReimportMasterJob*) _tmp2_;
+#line 273 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = master_job;
+#line 273 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_ != NULL) {
+#line 2068 "PhotoMonitor.c"
+ PhotoMonitorReimportMasterJob* _tmp4_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = master_job;
+#line 274 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 2074 "PhotoMonitor.c"
+ }
+#line 276 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = self->priv->editable_reimport_pending;
+#line 276 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = photo;
+#line 276 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_);
+#line 276 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ editable_job = (PhotoMonitorReimportEditableJob*) _tmp7_;
+#line 277 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = editable_job;
+#line 277 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp8_ != NULL) {
+#line 2088 "PhotoMonitor.c"
+ PhotoMonitorReimportEditableJob* _tmp9_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = editable_job;
+#line 278 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 2094 "PhotoMonitor.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (editable_job);
+#line 271 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (master_job);
+#line 2100 "PhotoMonitor.c"
+}
+
+
+static MediaMonitorDiscoveredFile photo_monitor_real_notify_file_discovered (MediaMonitor* base, GFile* file, GFileInfo* info, Monitorable** monitorable) {
+ PhotoMonitor * self;
+ Monitorable* _vala_monitorable = NULL;
+ MediaMonitorDiscoveredFile result = 0;
+ LibraryPhotoSourceCollectionState state = 0;
+ LibraryPhoto* photo = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp4_ = 0;
+#line 281 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 281 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), 0);
+#line 281 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), 0);
+#line 284 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = file;
+#line 284 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 284 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp1_;
+#line 284 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp2_;
+#line 285 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo;
+#line 285 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 286 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 286 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_monitorable = NULL;
+#line 288 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN;
+#line 288 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 288 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (monitorable) {
+#line 288 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 2145 "PhotoMonitor.c"
+ } else {
+#line 288 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 2149 "PhotoMonitor.c"
+ }
+#line 288 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2153 "PhotoMonitor.c"
+ }
+#line 291 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = state;
+#line 291 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp4_) {
+#line 291 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 291 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 2163 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp5_ = NULL;
+ Monitorable* _tmp6_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 294 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MONITORABLE, Monitorable));
+#line 294 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 294 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_monitorable = _tmp6_;
+#line 296 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED;
+#line 296 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 296 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (monitorable) {
+#line 296 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 2183 "PhotoMonitor.c"
+ } else {
+#line 296 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 2187 "PhotoMonitor.c"
+ }
+#line 296 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2191 "PhotoMonitor.c"
+ }
+ default:
+#line 291 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 291 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 291 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 2200 "PhotoMonitor.c"
+ {
+#line 304 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 304 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_monitorable = NULL;
+#line 306 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = MEDIA_MONITOR_DISCOVERED_FILE_IGNORE;
+#line 306 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 306 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (monitorable) {
+#line 306 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 2214 "PhotoMonitor.c"
+ } else {
+#line 306 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 2218 "PhotoMonitor.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2222 "PhotoMonitor.c"
+ }
+ }
+#line 281 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 281 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (monitorable) {
+#line 281 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 2231 "PhotoMonitor.c"
+ } else {
+#line 281 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 2235 "PhotoMonitor.c"
+ }
+}
+
+
+static GeeCollection* photo_monitor_real_candidates_for_unknown_file (MediaMonitor* base, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_) {
+ PhotoMonitor * self;
+ MediaMonitorDiscoveredFile _vala_result = 0;
+ GeeCollection* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeCollection* matched_masters = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ GeeArrayList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ GeeArrayList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ GeeArrayList* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+#line 310 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 310 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 310 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
+#line 313 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->priv->matched_editables;
+#line 313 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 314 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = self->priv->matched_developments;
+#line 314 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 316 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 316 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ matched_masters = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 317 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = library_photo_global;
+#line 317 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = info;
+#line 317 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = matched_masters;
+#line 317 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = self->priv->matched_editables;
+#line 317 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = self->priv->matched_developments;
+#line 317 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ library_photo_source_collection_fetch_by_matching_backing (_tmp3_, _tmp4_, _tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 319 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = matched_masters;
+#line 319 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = gee_collection_get_size (_tmp8_);
+#line 319 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = _tmp9_;
+#line 319 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp10_ > 0) {
+#line 320 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_result = MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN;
+#line 322 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = matched_masters;
+#line 322 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_result_) {
+#line 322 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *_result_ = _vala_result;
+#line 2312 "PhotoMonitor.c"
+ }
+#line 322 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2316 "PhotoMonitor.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = self->priv->matched_editables;
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp14_ == 0) {
+#line 2326 "PhotoMonitor.c"
+ GeeArrayList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = self->priv->matched_developments;
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_;
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = _tmp17_ == 0;
+#line 2338 "PhotoMonitor.c"
+ } else {
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = FALSE;
+#line 2342 "PhotoMonitor.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp11_) {
+#line 326 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_result = MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN;
+#line 328 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = NULL;
+#line 328 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (matched_masters);
+#line 328 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_result_) {
+#line 328 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *_result_ = _vala_result;
+#line 2356 "PhotoMonitor.c"
+ }
+#line 328 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2360 "PhotoMonitor.c"
+ }
+#line 332 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = self->priv->matched_editables;
+#line 332 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 332 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = _tmp19_;
+#line 332 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp20_ > 0) {
+#line 2370 "PhotoMonitor.c"
+ LibraryPhoto* match = NULL;
+ GeeArrayList* _tmp21_ = NULL;
+ gpointer _tmp22_ = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ LibraryPhoto* _tmp51_ = NULL;
+ GFile* _tmp52_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = self->priv->matched_editables;
+#line 333 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 333 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ match = (LibraryPhoto*) _tmp22_;
+#line 334 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = self->priv->matched_editables;
+#line 334 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 334 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = _tmp24_;
+#line 334 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp25_ > 1) {
+#line 2393 "PhotoMonitor.c"
+ GFile* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ GeeArrayList* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ LibraryPhoto* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = file;
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = g_file_get_path (_tmp26_);
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = _tmp27_;
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = self->priv->matched_editables;
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = _tmp30_;
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = match;
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp33_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_DATA_OBJECT, DataObject));
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp34_ = _tmp33_;
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_warning ("PhotoMonitor.vala:335: Unknown file %s could be matched with %d photos" \
+"; giving to %s, dropping others", _tmp28_, _tmp31_, _tmp34_);
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp34_);
+#line 335 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp28_);
+#line 2427 "PhotoMonitor.c"
+ {
+ gint ctr = 0;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ctr = 1;
+#line 2432 "PhotoMonitor.c"
+ {
+ gboolean _tmp35_ = FALSE;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp35_ = TRUE;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 2439 "PhotoMonitor.c"
+ gint _tmp37_ = 0;
+ GeeArrayList* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ GeeArrayList* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gpointer _tmp43_ = NULL;
+ LibraryPhoto* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+ gboolean _tmp46_ = FALSE;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp35_) {
+#line 2452 "PhotoMonitor.c"
+ gint _tmp36_ = 0;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp36_ = ctr;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ctr = _tmp36_ + 1;
+#line 2458 "PhotoMonitor.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp35_ = FALSE;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp37_ = ctr;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp38_ = self->priv->matched_editables;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp39_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp40_ = _tmp39_;
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!(_tmp37_ < _tmp40_)) {
+#line 337 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 2474 "PhotoMonitor.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp41_ = self->priv->matched_editables;
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp42_ = ctr;
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp43_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp42_);
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp44_ = (LibraryPhoto*) _tmp43_;
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp45_ = photo_does_editable_exist (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, TYPE_PHOTO, Photo));
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp46_ = !_tmp45_;
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp44_);
+#line 338 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp46_) {
+#line 2492 "PhotoMonitor.c"
+ GeeArrayList* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ gpointer _tmp49_ = NULL;
+ LibraryPhoto* _tmp50_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp47_ = self->priv->matched_editables;
+#line 339 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp48_ = ctr;
+#line 339 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp49_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp48_);
+#line 339 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp50_ = (LibraryPhoto*) _tmp49_;
+#line 339 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_revert_to_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_PHOTO, Photo), TRUE);
+#line 339 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp50_);
+#line 2509 "PhotoMonitor.c"
+ }
+ }
+ }
+ }
+ }
+#line 343 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp51_ = match;
+#line 343 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp52_ = file;
+#line 343 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file (self, _tmp51_, _tmp52_);
+#line 332 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (match);
+#line 2523 "PhotoMonitor.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp53_ = self->priv->matched_developments;
+#line 346 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp54_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 346 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp55_ = _tmp54_;
+#line 346 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp55_ > 0) {
+#line 2533 "PhotoMonitor.c"
+ LibraryPhoto* match_raw = NULL;
+ GeeArrayList* _tmp56_ = NULL;
+ gpointer _tmp57_ = NULL;
+ GeeArrayList* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ LibraryPhoto* _tmp70_ = NULL;
+ GFile* _tmp71_ = NULL;
+#line 347 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp56_ = self->priv->matched_developments;
+#line 347 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp57_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 347 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ match_raw = (LibraryPhoto*) _tmp57_;
+#line 348 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp58_ = self->priv->matched_developments;
+#line 348 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp59_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 348 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp60_ = _tmp59_;
+#line 348 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp60_ > 1) {
+#line 2556 "PhotoMonitor.c"
+ GFile* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ GeeArrayList* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ LibraryPhoto* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp61_ = file;
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp62_ = g_file_get_path (_tmp61_);
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp63_ = _tmp62_;
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp64_ = self->priv->matched_developments;
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp65_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp66_ = _tmp65_;
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp67_ = match_raw;
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp68_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, TYPE_DATA_OBJECT, DataObject));
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp69_ = _tmp68_;
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_warning ("PhotoMonitor.vala:349: Unknown file %s could be matched with %d photos" \
+"; giving to %s, dropping others", _tmp63_, _tmp66_, _tmp69_);
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp69_);
+#line 349 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp63_);
+#line 2590 "PhotoMonitor.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp70_ = match_raw;
+#line 353 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp71_ = file;
+#line 353 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file (self, _tmp70_, _tmp71_);
+#line 346 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (match_raw);
+#line 2600 "PhotoMonitor.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_result = MEDIA_MONITOR_DISCOVERED_FILE_IGNORE;
+#line 358 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = NULL;
+#line 358 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (matched_masters);
+#line 358 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_result_) {
+#line 358 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *_result_ = _vala_result;
+#line 2612 "PhotoMonitor.c"
+ }
+#line 358 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2616 "PhotoMonitor.c"
+}
+
+
+static void _vala_array_add337 (GFile*** array, int* length, int* size, GFile* value) {
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if ((*length) == (*size)) {
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 2627 "PhotoMonitor.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ (*array)[(*length)++] = value;
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ (*array)[*length] = NULL;
+#line 2633 "PhotoMonitor.c"
+}
+
+
+static void _vala_array_add338 (GFile*** array, int* length, int* size, GFile* value) {
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if ((*length) == (*size)) {
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 2644 "PhotoMonitor.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ (*array)[(*length)++] = value;
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ (*array)[*length] = NULL;
+#line 2650 "PhotoMonitor.c"
+}
+
+
+static GFile** _vala_array_dup32 (GFile** self, int length) {
+ GFile** result;
+ int i;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = g_new0 (GFile*, length + 1);
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ for (i = 0; i < length; i++) {
+#line 2661 "PhotoMonitor.c"
+ GFile* _tmp0_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result[i] = _tmp0_;
+#line 2667 "PhotoMonitor.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2671 "PhotoMonitor.c"
+}
+
+
+static GFile** photo_monitor_real_get_auxilliary_backing_files (MediaMonitor* base, Monitorable* monitorable, int* result_length1) {
+ PhotoMonitor * self;
+ GFile** result = NULL;
+ LibraryPhoto* photo = NULL;
+ Monitorable* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ GFile** files = NULL;
+ GFile** _tmp2_ = NULL;
+ gint files_length1 = 0;
+ gint _files_size_ = 0;
+ LibraryPhoto* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeCollection* raw_files = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GFile** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint __tmp20__size_ = 0;
+ GFile** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GFile** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ GFile** _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+#line 361 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 361 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 362 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = monitorable;
+#line 362 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 362 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp1_;
+#line 363 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = g_new0 (GFile*, 0 + 1);
+#line 363 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ files = _tmp2_;
+#line 363 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ files_length1 = 0;
+#line 363 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _files_size_ = files_length1;
+#line 366 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo;
+#line 366 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = photo_has_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PHOTO, Photo));
+#line 366 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp4_) {
+#line 2724 "PhotoMonitor.c"
+ GFile** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ LibraryPhoto* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = files;
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5__length1 = files_length1;
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = photo;
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PHOTO, Photo));
+#line 367 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_array_add337 (&files, &files_length1, &_files_size_, _tmp7_);
+#line 2739 "PhotoMonitor.c"
+ }
+#line 370 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = photo;
+#line 370 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo));
+#line 370 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ raw_files = _tmp9_;
+#line 371 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = raw_files;
+#line 371 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp10_ != NULL) {
+#line 2751 "PhotoMonitor.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeIterator* _tmp12_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = raw_files;
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _f_it = _tmp12_;
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 2764 "PhotoMonitor.c"
+ GeeIterator* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ GFile** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ GFile* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = _f_it;
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = gee_iterator_next (_tmp13_);
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp14_) {
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 2782 "PhotoMonitor.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = _f_it;
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = gee_iterator_get (_tmp15_);
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ f = (GFile*) _tmp16_;
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = files;
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17__length1 = files_length1;
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = f;
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = _g_object_ref0 (_tmp18_);
+#line 373 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_array_add338 (&files, &files_length1, &_files_size_, _tmp19_);
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (f);
+#line 2802 "PhotoMonitor.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_f_it);
+#line 2806 "PhotoMonitor.c"
+ }
+ }
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = files;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21__length1 = files_length1;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp21__length1 > 0) {
+#line 2815 "PhotoMonitor.c"
+ GFile** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = files;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22__length1 = files_length1;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = _tmp22_;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20__length1 = _tmp22__length1;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ __tmp20__size_ = _tmp20__length1;
+#line 2828 "PhotoMonitor.c"
+ } else {
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20__length1 = 0;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ __tmp20__size_ = _tmp20__length1;
+#line 2836 "PhotoMonitor.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = (_tmp20_ != NULL) ? _vala_array_dup32 (_tmp20_, _tmp20__length1) : ((gpointer) _tmp20_);
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23__length1 = _tmp20__length1;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24__length1 = _tmp23__length1;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (result_length1) {
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *result_length1 = _tmp24__length1;
+#line 2850 "PhotoMonitor.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp24_;
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (raw_files);
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ files = (_vala_array_free (files, files_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 376 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 2862 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_real_update_backing_file_info (MediaMonitor* base, Monitorable* monitorable, GFile* file, GFileInfo* info) {
+ PhotoMonitor * self;
+ LibraryPhoto* photo = NULL;
+ Monitorable* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 379 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 379 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_MONITORABLE (monitorable));
+#line 379 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 379 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 380 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = monitorable;
+#line 380 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 380 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp1_;
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo;
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = media_monitor_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MONITORABLE, Monitorable));
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = file;
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = g_file_equal (_tmp4_, _tmp5_);
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp4_);
+#line 382 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp7_) {
+#line 2907 "PhotoMonitor.c"
+ LibraryPhoto* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+#line 383 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = photo;
+#line 383 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = info;
+#line 383 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_check_for_master_changes (self, _tmp8_, _tmp9_);
+#line 2916 "PhotoMonitor.c"
+ } else {
+ gboolean _tmp10_ = FALSE;
+ LibraryPhoto* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = photo;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = photo_monitor_get_editable_file (self, _tmp11_);
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = _tmp12_;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_ != NULL;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp13_);
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp14_) {
+#line 2935 "PhotoMonitor.c"
+ LibraryPhoto* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = photo;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = photo_monitor_get_editable_file (self, _tmp15_);
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = file;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = g_file_equal (_tmp17_, _tmp18_);
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = _tmp19_;
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp17_);
+#line 2955 "PhotoMonitor.c"
+ } else {
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = FALSE;
+#line 2959 "PhotoMonitor.c"
+ }
+#line 384 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp10_) {
+#line 2963 "PhotoMonitor.c"
+ LibraryPhoto* _tmp20_ = NULL;
+ GFileInfo* _tmp21_ = NULL;
+#line 385 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = photo;
+#line 385 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = info;
+#line 385 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_check_for_editable_changes (self, _tmp20_, _tmp21_);
+#line 2972 "PhotoMonitor.c"
+ } else {
+ LibraryPhoto* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 386 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = photo;
+#line 386 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = photo_monitor_get_raw_development_files (self, _tmp22_);
+#line 386 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 386 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = _tmp24_ != NULL;
+#line 386 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp24_);
+#line 386 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp25_) {
+#line 2990 "PhotoMonitor.c"
+ {
+ GeeIterator* _f_it = NULL;
+ LibraryPhoto* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+ GeeCollection* _tmp28_ = NULL;
+ GeeIterator* _tmp29_ = NULL;
+ GeeIterator* _tmp30_ = NULL;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = photo;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = photo_monitor_get_raw_development_files (self, _tmp26_);
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = _tmp27_;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = _tmp29_;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp28_);
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _f_it = _tmp30_;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 3014 "PhotoMonitor.c"
+ GeeIterator* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp33_ = NULL;
+ gpointer _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+ GFile* _tmp36_ = NULL;
+ gboolean _tmp37_ = FALSE;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = _f_it;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = gee_iterator_next (_tmp31_);
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp32_) {
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3031 "PhotoMonitor.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp33_ = _f_it;
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp34_ = gee_iterator_get (_tmp33_);
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ f = (GFile*) _tmp34_;
+#line 388 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp35_ = f;
+#line 388 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp36_ = file;
+#line 388 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp37_ = g_file_equal (_tmp35_, _tmp36_);
+#line 388 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp37_) {
+#line 3047 "PhotoMonitor.c"
+ LibraryPhoto* _tmp38_ = NULL;
+ GFileInfo* _tmp39_ = NULL;
+#line 389 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp38_ = photo;
+#line 389 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp39_ = info;
+#line 389 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_check_for_raw_development_changes (self, _tmp38_, _tmp39_);
+#line 3056 "PhotoMonitor.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (f);
+#line 3060 "PhotoMonitor.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_f_it);
+#line 3064 "PhotoMonitor.c"
+ }
+ }
+ }
+ }
+#line 379 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 3071 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_real_notify_discovery_completing (MediaMonitor* base) {
+ PhotoMonitor * self;
+ GeeArrayList* _tmp0_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 395 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->priv->matched_editables;
+#line 395 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 3084 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_check_for_master_changes (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info) {
+ GFileInfo* _tmp0_ = NULL;
+ BackingPhotoRow* state = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ BackingPhotoRow* _tmp2_ = NULL;
+ BackingPhotoRow* _tmp3_ = NULL;
+ GFileInfo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ BackingPhotoRow* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 402 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 402 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 402 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 404 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = info;
+#line 404 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_ == NULL) {
+#line 405 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 3111 "PhotoMonitor.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo;
+#line 407 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_get_master_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo));
+#line 407 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp2_;
+#line 408 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = state;
+#line 408 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = info;
+#line 408 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = backing_photo_row_matches_file_info (_tmp3_, _tmp4_);
+#line 408 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp5_) {
+#line 409 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _backing_photo_row_unref0 (state);
+#line 409 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 3131 "PhotoMonitor.c"
+ }
+#line 411 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = state;
+#line 411 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = info;
+#line 411 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = backing_photo_row_is_touched (_tmp6_, _tmp7_);
+#line 411 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp8_) {
+#line 3141 "PhotoMonitor.c"
+ LibraryPhoto* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ GFileInfo* _tmp11_ = NULL;
+#line 412 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = photo;
+#line 412 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_info_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MONITORABLE, Monitorable));
+#line 413 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = photo;
+#line 413 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = info;
+#line 413 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_alterations_completed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MONITORABLE, Monitorable), _tmp11_);
+#line 3155 "PhotoMonitor.c"
+ } else {
+ LibraryPhoto* _tmp12_ = NULL;
+#line 415 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = photo;
+#line 415 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_master (self, _tmp12_);
+#line 3162 "PhotoMonitor.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _backing_photo_row_unref0 (state);
+#line 3166 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_check_for_editable_changes (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info) {
+ GFileInfo* _tmp0_ = NULL;
+ BackingPhotoRow* state = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ BackingPhotoRow* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ BackingPhotoRow* _tmp5_ = NULL;
+ BackingPhotoRow* _tmp9_ = NULL;
+ GFileInfo* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 419 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 419 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 419 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 420 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = info;
+#line 420 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_ == NULL) {
+#line 3190 "PhotoMonitor.c"
+ LibraryPhoto* _tmp1_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo;
+#line 421 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_revert_to_master (self, _tmp1_);
+#line 423 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 3198 "PhotoMonitor.c"
+ }
+#line 427 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo;
+#line 427 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo_get_editable_photo_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO, Photo));
+#line 427 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp3_;
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = state;
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp5_ == NULL) {
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = TRUE;
+#line 3212 "PhotoMonitor.c"
+ } else {
+ BackingPhotoRow* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = state;
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = info;
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = backing_photo_row_matches_file_info (_tmp6_, _tmp7_);
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp8_;
+#line 3225 "PhotoMonitor.c"
+ }
+#line 428 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp4_) {
+#line 429 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _backing_photo_row_unref0 (state);
+#line 429 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 3233 "PhotoMonitor.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = state;
+#line 431 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = info;
+#line 431 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = backing_photo_row_is_touched (_tmp9_, _tmp10_);
+#line 431 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp11_) {
+#line 3243 "PhotoMonitor.c"
+ LibraryPhoto* _tmp12_ = NULL;
+ LibraryPhoto* _tmp13_ = NULL;
+ GFileInfo* _tmp14_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = photo;
+#line 432 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_info_altered (self, _tmp12_);
+#line 433 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = photo;
+#line 433 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = info;
+#line 433 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_alterations_completed (self, _tmp13_, _tmp14_);
+#line 3257 "PhotoMonitor.c"
+ } else {
+ LibraryPhoto* _tmp15_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = photo;
+#line 435 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_editable (self, _tmp15_);
+#line 3264 "PhotoMonitor.c"
+ }
+#line 419 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _backing_photo_row_unref0 (state);
+#line 3268 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_check_for_raw_development_changes (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info) {
+ GFileInfo* _tmp0_ = NULL;
+ GeeCollection* rows = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 439 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 439 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 439 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail ((info == NULL) || G_IS_FILE_INFO (info));
+#line 440 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = info;
+#line 440 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_ == NULL) {
+#line 3288 "PhotoMonitor.c"
+ LibraryPhoto* _tmp1_ = NULL;
+#line 442 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo;
+#line 442 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_set_raw_developer (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), RAW_DEVELOPER_SHOTWELL);
+#line 444 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 3296 "PhotoMonitor.c"
+ }
+#line 447 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo;
+#line 447 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo_get_raw_development_photo_rows (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO, Photo));
+#line 447 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ rows = _tmp3_;
+#line 448 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = rows;
+#line 448 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp4_ == NULL) {
+#line 449 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (rows);
+#line 449 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 3312 "PhotoMonitor.c"
+ }
+ {
+ GeeIterator* _row_it = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = rows;
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _row_it = _tmp6_;
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 3326 "PhotoMonitor.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ BackingPhotoRow* row = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ BackingPhotoRow* _tmp11_ = NULL;
+ GFileInfo* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GFileInfo* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ BackingPhotoRow* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _row_it;
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp8_) {
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3347 "PhotoMonitor.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = _row_it;
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ row = (BackingPhotoRow*) _tmp10_;
+#line 454 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = row;
+#line 454 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = info;
+#line 454 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = backing_photo_row_matches_file_info (_tmp11_, _tmp12_);
+#line 454 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp13_) {
+#line 455 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _backing_photo_row_unref0 (row);
+#line 455 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_row_it);
+#line 455 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (rows);
+#line 455 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 3371 "PhotoMonitor.c"
+ }
+#line 456 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = info;
+#line 456 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = g_file_info_get_name (_tmp14_);
+#line 456 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = row;
+#line 456 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_->filepath;
+#line 456 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (g_strcmp0 (_tmp15_, _tmp17_) == 0) {
+#line 3383 "PhotoMonitor.c"
+ BackingPhotoRow* _tmp18_ = NULL;
+ GFileInfo* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 457 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = row;
+#line 457 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = info;
+#line 457 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = backing_photo_row_is_touched (_tmp18_, _tmp19_);
+#line 457 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp20_) {
+#line 3395 "PhotoMonitor.c"
+ LibraryPhoto* _tmp21_ = NULL;
+ LibraryPhoto* _tmp22_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = photo;
+#line 458 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file_info_altered (self, _tmp21_);
+#line 459 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = photo;
+#line 459 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file_alterations_completed (self, _tmp22_);
+#line 3406 "PhotoMonitor.c"
+ } else {
+ LibraryPhoto* _tmp23_ = NULL;
+#line 461 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = photo;
+#line 461 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_raw_developments (self, _tmp23_);
+#line 3413 "PhotoMonitor.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _backing_photo_row_unref0 (row);
+#line 464 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3419 "PhotoMonitor.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _backing_photo_row_unref0 (row);
+#line 3423 "PhotoMonitor.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_row_it);
+#line 3427 "PhotoMonitor.c"
+ }
+#line 439 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (rows);
+#line 3431 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_monitor_real_notify_file_created (MediaMonitor* base, GFile* file, GFileInfo* info) {
+ PhotoMonitor * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollectionState state = 0;
+ LibraryPhoto* photo = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp4_ = 0;
+#line 469 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 469 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 469 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 471 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = file;
+#line 471 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 471 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp1_;
+#line 471 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp2_;
+#line 472 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo;
+#line 472 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 473 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = FALSE;
+#line 473 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 473 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 3469 "PhotoMonitor.c"
+ }
+#line 475 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = state;
+#line 475 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp4_) {
+#line 475 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 475 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 475 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 475 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 3483 "PhotoMonitor.c"
+ {
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp8_ = 0;
+ GEnumValue* _tmp9_;
+#line 481 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = file;
+#line 481 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 481 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 481 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = state;
+#line 481 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp8_);
+#line 481 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_warning ("PhotoMonitor.vala:481: File %s created in %s state", _tmp7_, (_tmp9_ != NULL) ? _tmp9_->value_name : NULL);
+#line 481 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 482 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3506 "PhotoMonitor.c"
+ }
+#line 475 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 3510 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ LibraryPhoto* _tmp15_ = NULL;
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = photo;
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = g_strdup_printf ("Will mark %s online", _tmp12_);
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp14_);
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp14_);
+#line 485 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp12_);
+#line 486 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = photo;
+#line 486 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_online (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_MONITORABLE, Monitorable));
+#line 487 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3540 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp16_ = 0;
+ GEnumValue* _tmp17_;
+#line 490 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = state;
+#line 490 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp16_);
+#line 490 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:490: Unknown LibraryPhoto collection state %s", (_tmp17_ != NULL) ? _tmp17_->value_name : NULL);
+#line 3552 "PhotoMonitor.c"
+ }
+ }
+#line 493 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = TRUE;
+#line 493 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 493 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 3561 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_monitor_real_notify_file_moved (MediaMonitor* base, GFile* old_file, GFile* new_file, GFileInfo* info) {
+ PhotoMonitor * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollectionState old_state = 0;
+ LibraryPhoto* old_photo = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhotoSourceCollectionState new_state = 0;
+ LibraryPhoto* new_photo = NULL;
+ GFile* _tmp3_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp4_ = 0;
+ LibraryPhoto* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ LibraryPhoto* _tmp7_ = NULL;
+#line 496 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 496 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (old_file), FALSE);
+#line 496 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (new_file), FALSE);
+#line 496 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 498 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = old_file;
+#line 498 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 498 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ old_state = _tmp1_;
+#line 498 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ old_photo = _tmp2_;
+#line 501 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = new_file;
+#line 501 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo_monitor_get_photo_state_by_file (self, _tmp3_, &_tmp4_);
+#line 501 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ new_state = _tmp4_;
+#line 501 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ new_photo = _tmp5_;
+#line 515 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = old_photo;
+#line 515 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp7_ != NULL) {
+#line 3608 "PhotoMonitor.c"
+ LibraryPhoto* _tmp8_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = new_photo;
+#line 515 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _tmp8_ == NULL;
+#line 3614 "PhotoMonitor.c"
+ } else {
+#line 515 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = FALSE;
+#line 3618 "PhotoMonitor.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp6_) {
+#line 3622 "PhotoMonitor.c"
+ LibraryPhotoSourceCollectionState _tmp9_ = 0;
+#line 517 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = old_state;
+#line 517 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp9_) {
+#line 517 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 517 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 517 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 3634 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ LibraryPhoto* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = old_photo;
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = new_file;
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = _tmp14_;
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = g_strdup_printf ("Will set new master file for %s to %s", _tmp12_, _tmp15_);
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_;
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp17_);
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp17_);
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp15_);
+#line 521 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp12_);
+#line 523 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = old_photo;
+#line 523 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = new_file;
+#line 523 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_MONITORABLE, Monitorable), _tmp19_);
+#line 524 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3678 "PhotoMonitor.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 3682 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ LibraryPhoto* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = old_photo;
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_OBJECT, DataObject));
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = _tmp21_;
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = new_file;
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = g_file_get_path (_tmp23_);
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = _tmp24_;
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = g_strdup_printf ("Will set new editable file for %s to %s", _tmp22_, _tmp25_);
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = _tmp26_;
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp27_);
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp27_);
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp25_);
+#line 527 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp22_);
+#line 529 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = old_photo;
+#line 529 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = new_file;
+#line 529 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file (self, _tmp28_, _tmp29_);
+#line 530 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3726 "PhotoMonitor.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 3730 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ LibraryPhoto* _tmp38_ = NULL;
+ GFile* _tmp39_ = NULL;
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = old_photo;
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_DATA_OBJECT, DataObject));
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = _tmp31_;
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp33_ = new_file;
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp34_ = g_file_get_path (_tmp33_);
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp35_ = _tmp34_;
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp36_ = g_strdup_printf ("Will set new raw development file for %s to %s", _tmp32_, _tmp35_);
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp37_ = _tmp36_;
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp37_);
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp37_);
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp35_);
+#line 533 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp32_);
+#line 535 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp38_ = old_photo;
+#line 535 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp39_ = new_file;
+#line 535 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file (self, _tmp38_, _tmp39_);
+#line 536 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3774 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp40_ = 0;
+ GEnumValue* _tmp41_;
+#line 539 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp40_ = old_state;
+#line 539 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp41_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp40_);
+#line 539 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:539: Unknown LibraryPhoto collection state %s", (_tmp41_ != NULL) ? _tmp41_->value_name : NULL);
+#line 3786 "PhotoMonitor.c"
+ }
+ }
+ } else {
+ gboolean _tmp42_ = FALSE;
+ LibraryPhoto* _tmp43_ = NULL;
+#line 541 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp43_ = old_photo;
+#line 541 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp43_ == NULL) {
+#line 3796 "PhotoMonitor.c"
+ LibraryPhoto* _tmp44_ = NULL;
+#line 541 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp44_ = new_photo;
+#line 541 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp42_ = _tmp44_ != NULL;
+#line 3802 "PhotoMonitor.c"
+ } else {
+#line 541 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp42_ = FALSE;
+#line 3806 "PhotoMonitor.c"
+ }
+#line 541 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp42_) {
+#line 3810 "PhotoMonitor.c"
+ LibraryPhotoSourceCollectionState _tmp45_ = 0;
+#line 543 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp45_ = new_state;
+#line 543 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp45_) {
+#line 543 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 543 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 543 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 3822 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ LibraryPhoto* _tmp51_ = NULL;
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp46_ = new_photo;
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp47_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_DATA_OBJECT, DataObject));
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp48_ = _tmp47_;
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp49_ = g_strdup_printf ("Will reimport master file for %s", _tmp48_);
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp50_ = _tmp49_;
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp50_);
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp50_);
+#line 547 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp48_);
+#line 548 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp51_ = new_photo;
+#line 548 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_master (self, _tmp51_);
+#line 549 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3852 "PhotoMonitor.c"
+ }
+#line 543 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 3856 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ LibraryPhoto* _tmp57_ = NULL;
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp52_ = new_photo;
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp53_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_DATA_OBJECT, DataObject));
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp54_ = _tmp53_;
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp55_ = g_strdup_printf ("Will reimport editable file for %s", _tmp54_);
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp56_ = _tmp55_;
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp56_);
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp56_);
+#line 552 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp54_);
+#line 553 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp57_ = new_photo;
+#line 553 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_editable (self, _tmp57_);
+#line 554 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3886 "PhotoMonitor.c"
+ }
+#line 543 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 3890 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ LibraryPhoto* _tmp63_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp58_ = new_photo;
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp59_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, TYPE_DATA_OBJECT, DataObject));
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp60_ = _tmp59_;
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp61_ = g_strdup_printf ("Will reimport raw development file for %s", _tmp60_);
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp62_ = _tmp61_;
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp62_);
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp62_);
+#line 557 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp60_);
+#line 558 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp63_ = new_photo;
+#line 558 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_raw_developments (self, _tmp63_);
+#line 559 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 3920 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp64_ = 0;
+ GEnumValue* _tmp65_;
+#line 562 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp64_ = new_state;
+#line 562 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp65_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp64_);
+#line 562 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:562: Unknown LibraryPhoto collection state %s", (_tmp65_ != NULL) ? _tmp65_->value_name : NULL);
+#line 3932 "PhotoMonitor.c"
+ }
+ }
+ } else {
+ gboolean _tmp66_ = FALSE;
+ LibraryPhoto* _tmp67_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp67_ = old_photo;
+#line 564 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp67_ == NULL) {
+#line 3942 "PhotoMonitor.c"
+ LibraryPhoto* _tmp68_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp68_ = new_photo;
+#line 564 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp66_ = _tmp68_ == NULL;
+#line 3948 "PhotoMonitor.c"
+ } else {
+#line 564 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp66_ = FALSE;
+#line 3952 "PhotoMonitor.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp66_) {
+#line 566 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = FALSE;
+#line 566 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (new_photo);
+#line 566 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (old_photo);
+#line 566 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 3964 "PhotoMonitor.c"
+ } else {
+ gboolean _tmp69_ = FALSE;
+ LibraryPhoto* _tmp70_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp72_ = 0;
+ LibraryPhotoSourceCollectionState _tmp87_ = 0;
+#line 568 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp70_ = old_photo;
+#line 568 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp70_ != NULL) {
+#line 3974 "PhotoMonitor.c"
+ LibraryPhoto* _tmp71_ = NULL;
+#line 568 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp71_ = new_photo;
+#line 568 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp69_ = _tmp71_ != NULL;
+#line 3980 "PhotoMonitor.c"
+ } else {
+#line 568 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp69_ = FALSE;
+#line 3984 "PhotoMonitor.c"
+ }
+#line 568 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (_tmp69_, "old_photo != null && new_photo != null");
+#line 570 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp72_ = old_state;
+#line 570 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp72_) {
+#line 570 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 3994 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ LibraryPhoto* _tmp78_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp73_ = old_photo;
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp74_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, TYPE_DATA_OBJECT, DataObject));
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp75_ = _tmp74_;
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp76_ = g_strdup_printf ("Will mark offline %s", _tmp75_);
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp77_ = _tmp76_;
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp77_);
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp77_);
+#line 572 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp75_);
+#line 573 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp78_ = old_photo;
+#line 573 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, TYPE_MONITORABLE, Monitorable));
+#line 574 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4024 "PhotoMonitor.c"
+ }
+#line 570 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 570 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 4030 "PhotoMonitor.c"
+ {
+#line 579 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4034 "PhotoMonitor.c"
+ }
+#line 570 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 4038 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ LibraryPhoto* _tmp84_ = NULL;
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp79_ = old_photo;
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp80_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, TYPE_DATA_OBJECT, DataObject));
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp81_ = _tmp80_;
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp82_ = g_strdup_printf ("Will revert %s to master", _tmp81_);
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp83_ = _tmp82_;
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp83_);
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp83_);
+#line 582 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp81_);
+#line 583 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp84_ = old_photo;
+#line 583 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_revert_to_master (self, _tmp84_);
+#line 584 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4068 "PhotoMonitor.c"
+ }
+#line 570 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 4072 "PhotoMonitor.c"
+ {
+#line 588 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4076 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp85_ = 0;
+ GEnumValue* _tmp86_;
+#line 591 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp85_ = old_state;
+#line 591 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp86_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp85_);
+#line 591 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:591: Unknown LibraryPhoto collection state %s", (_tmp86_ != NULL) ? _tmp86_->value_name : NULL);
+#line 4088 "PhotoMonitor.c"
+ }
+ }
+#line 594 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp87_ = new_state;
+#line 594 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp87_) {
+#line 594 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 594 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 594 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 4101 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ gchar* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ LibraryPhoto* _tmp93_ = NULL;
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp88_ = new_photo;
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp89_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp88_, TYPE_DATA_OBJECT, DataObject));
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp90_ = _tmp89_;
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp91_ = g_strdup_printf ("Will reimport master file for %s", _tmp90_);
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp92_ = _tmp91_;
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp92_);
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp92_);
+#line 598 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp90_);
+#line 599 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp93_ = new_photo;
+#line 599 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_master (self, _tmp93_);
+#line 600 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4131 "PhotoMonitor.c"
+ }
+#line 594 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 4135 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ gchar* _tmp98_ = NULL;
+ LibraryPhoto* _tmp99_ = NULL;
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp94_ = new_photo;
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp95_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp94_, TYPE_DATA_OBJECT, DataObject));
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp96_ = _tmp95_;
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp97_ = g_strdup_printf ("Will reimport editable file for %s", _tmp96_);
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp98_ = _tmp97_;
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp98_);
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp98_);
+#line 603 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp96_);
+#line 604 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp99_ = new_photo;
+#line 604 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_editable (self, _tmp99_);
+#line 605 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4165 "PhotoMonitor.c"
+ }
+#line 594 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 4169 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp100_ = NULL;
+ gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+ gchar* _tmp104_ = NULL;
+ LibraryPhoto* _tmp105_ = NULL;
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp100_ = new_photo;
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp101_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, TYPE_DATA_OBJECT, DataObject));
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp102_ = _tmp101_;
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp103_ = g_strdup_printf ("Will reimport raw development file for %s", _tmp102_);
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp104_ = _tmp103_;
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp104_);
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp104_);
+#line 608 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp102_);
+#line 609 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp105_ = new_photo;
+#line 609 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_raw_developments (self, _tmp105_);
+#line 610 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4199 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp106_ = 0;
+ GEnumValue* _tmp107_;
+#line 613 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp106_ = new_state;
+#line 613 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp107_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp106_);
+#line 613 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:613: Unknown LibraryPhoto collection state %s", (_tmp107_ != NULL) ? _tmp107_->value_name : NULL);
+#line 4211 "PhotoMonitor.c"
+ }
+ }
+ }
+ }
+ }
+#line 617 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = TRUE;
+#line 617 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (new_photo);
+#line 617 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (old_photo);
+#line 617 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4225 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_monitor_real_notify_file_altered (MediaMonitor* base, GFile* file) {
+ PhotoMonitor * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollectionState state = 0;
+ LibraryPhoto* photo = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp4_ = 0;
+#line 620 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 620 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 622 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = file;
+#line 622 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 622 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp1_;
+#line 622 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp2_;
+#line 623 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo;
+#line 623 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 624 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = FALSE;
+#line 624 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 624 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4261 "PhotoMonitor.c"
+ }
+#line 626 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = state;
+#line 626 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp4_) {
+#line 626 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 626 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 626 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 4273 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = g_strdup_printf ("Will reimport master for %s", _tmp7_);
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp9_);
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp9_);
+#line 630 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 631 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = photo;
+#line 631 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_master (self, _tmp10_);
+#line 632 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = photo;
+#line 632 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MONITORABLE, Monitorable), TRUE);
+#line 633 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4308 "PhotoMonitor.c"
+ }
+#line 626 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 4312 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ LibraryPhoto* _tmp18_ = NULL;
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = photo;
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = g_strdup_printf ("Will reimport editable for %s", _tmp14_);
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = _tmp15_;
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp16_);
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp16_);
+#line 636 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp14_);
+#line 637 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = photo;
+#line 637 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_editable (self, _tmp17_);
+#line 638 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = photo;
+#line 638 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_in_alteration (self, _tmp18_, TRUE);
+#line 639 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4347 "PhotoMonitor.c"
+ }
+#line 626 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 4351 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ LibraryPhoto* _tmp24_ = NULL;
+ LibraryPhoto* _tmp25_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = photo;
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_OBJECT, DataObject));
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = _tmp20_;
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = g_strdup_printf ("Will reimport raw development for %s", _tmp21_);
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = _tmp22_;
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp23_);
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp23_);
+#line 642 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp21_);
+#line 643 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = photo;
+#line 643 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_reimport_raw_developments (self, _tmp24_);
+#line 644 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = photo;
+#line 644 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file_in_alteration (self, _tmp25_, TRUE);
+#line 645 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4386 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp26_ = 0;
+ GEnumValue* _tmp27_;
+#line 648 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = state;
+#line 648 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp26_);
+#line 648 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:648: Unknown LibraryPhoto collection state %s", (_tmp27_ != NULL) ? _tmp27_->value_name : NULL);
+#line 4398 "PhotoMonitor.c"
+ }
+ }
+#line 651 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = TRUE;
+#line 651 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 651 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4407 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_monitor_real_notify_file_attributes_altered (MediaMonitor* base, GFile* file) {
+ PhotoMonitor * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollectionState state = 0;
+ LibraryPhoto* photo = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp4_ = 0;
+#line 654 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 654 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 656 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = file;
+#line 656 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 656 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp1_;
+#line 656 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp2_;
+#line 657 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo;
+#line 657 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 658 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = FALSE;
+#line 658 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 658 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4443 "PhotoMonitor.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = state;
+#line 660 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp4_) {
+#line 660 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 660 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 4453 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = g_strdup_printf ("Will update master file info for %s", _tmp7_);
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp9_);
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp9_);
+#line 663 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 664 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = photo;
+#line 664 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_info_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MONITORABLE, Monitorable));
+#line 665 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = photo;
+#line 665 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MONITORABLE, Monitorable), TRUE);
+#line 666 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4488 "PhotoMonitor.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 4492 "PhotoMonitor.c"
+ {
+ GFile* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp15_ = 0;
+ GEnumValue* _tmp16_;
+ LibraryPhoto* _tmp17_ = NULL;
+#line 670 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = file;
+#line 670 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = g_file_get_path (_tmp12_);
+#line 670 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 670 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = state;
+#line 671 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp15_);
+#line 670 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_warning ("PhotoMonitor.vala:670: File %s attributes altered in %s state", _tmp14_, (_tmp16_ != NULL) ? _tmp16_->value_name : NULL);
+#line 670 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp14_);
+#line 672 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = photo;
+#line 672 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_MONITORABLE, Monitorable), TRUE);
+#line 673 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4520 "PhotoMonitor.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 4524 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ LibraryPhoto* _tmp23_ = NULL;
+ LibraryPhoto* _tmp24_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = photo;
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_OBJECT, DataObject));
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = _tmp19_;
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = g_strdup_printf ("Will update editable file info for %s", _tmp20_);
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = _tmp21_;
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp22_);
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp22_);
+#line 676 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp20_);
+#line 677 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = photo;
+#line 677 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_info_altered (self, _tmp23_);
+#line 678 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = photo;
+#line 678 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_in_alteration (self, _tmp24_, TRUE);
+#line 679 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4559 "PhotoMonitor.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 4563 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ LibraryPhoto* _tmp30_ = NULL;
+ LibraryPhoto* _tmp31_ = NULL;
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = photo;
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject));
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = _tmp26_;
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = g_strdup_printf ("Will update raw development file info for %s", _tmp27_);
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = _tmp28_;
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp29_);
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp29_);
+#line 682 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp27_);
+#line 683 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = photo;
+#line 683 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file_info_altered (self, _tmp30_);
+#line 684 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = photo;
+#line 684 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file_in_alteration (self, _tmp31_, TRUE);
+#line 685 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4598 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp32_ = 0;
+ GEnumValue* _tmp33_;
+#line 688 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = state;
+#line 688 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp33_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp32_);
+#line 688 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:688: Unknown LibraryPhoto collection state %s", (_tmp33_ != NULL) ? _tmp33_->value_name : NULL);
+#line 4610 "PhotoMonitor.c"
+ }
+ }
+#line 691 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = TRUE;
+#line 691 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 691 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4619 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_monitor_real_notify_file_alteration_completed (MediaMonitor* base, GFile* file, GFileInfo* info) {
+ PhotoMonitor * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollectionState state = 0;
+ LibraryPhoto* photo = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp4_ = 0;
+#line 694 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 694 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 694 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 696 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = file;
+#line 696 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 696 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp1_;
+#line 696 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp2_;
+#line 697 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo;
+#line 697 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 698 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = FALSE;
+#line 698 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 698 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4657 "PhotoMonitor.c"
+ }
+#line 700 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = state;
+#line 700 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp4_) {
+#line 700 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 700 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 700 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 4669 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 704 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 704 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = info;
+#line 704 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_alterations_completed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MONITORABLE, Monitorable), _tmp6_);
+#line 705 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4681 "PhotoMonitor.c"
+ }
+#line 700 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 4685 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+#line 708 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = photo;
+#line 708 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = info;
+#line 708 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_alterations_completed (self, _tmp7_, _tmp8_);
+#line 709 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4697 "PhotoMonitor.c"
+ }
+#line 700 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 4701 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp9_ = NULL;
+#line 712 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = photo;
+#line 712 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file_alterations_completed (self, _tmp9_);
+#line 713 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4710 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp10_ = 0;
+ GEnumValue* _tmp11_;
+#line 716 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = state;
+#line 716 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp10_);
+#line 716 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:716: Unknown LibraryPhoto collection state %s", (_tmp11_ != NULL) ? _tmp11_->value_name : NULL);
+#line 4722 "PhotoMonitor.c"
+ }
+ }
+#line 719 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = TRUE;
+#line 719 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 719 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4731 "PhotoMonitor.c"
+}
+
+
+static gboolean photo_monitor_real_notify_file_deleted (MediaMonitor* base, GFile* file) {
+ PhotoMonitor * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollectionState state = 0;
+ LibraryPhoto* photo = NULL;
+ GFile* _tmp0_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp1_ = 0;
+ LibraryPhoto* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp4_ = 0;
+#line 722 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 722 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 724 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = file;
+#line 724 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = photo_monitor_get_photo_state_by_file (self, _tmp0_, &_tmp1_);
+#line 724 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ state = _tmp1_;
+#line 724 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp2_;
+#line 725 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo;
+#line 725 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 726 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = FALSE;
+#line 726 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 726 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4767 "PhotoMonitor.c"
+ }
+#line 728 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = state;
+#line 728 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ switch (_tmp4_) {
+#line 728 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 4775 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = g_strdup_printf ("Will mark %s offline", _tmp7_);
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = _tmp8_;
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp9_);
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp9_);
+#line 730 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp7_);
+#line 731 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = photo;
+#line 731 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MONITORABLE, Monitorable));
+#line 732 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = photo;
+#line 732 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MONITORABLE, Monitorable), FALSE);
+#line 733 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4810 "PhotoMonitor.c"
+ }
+#line 728 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_TRASH:
+#line 728 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 4816 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp12_ = NULL;
+#line 738 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = photo;
+#line 738 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_master_file_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_MONITORABLE, Monitorable), FALSE);
+#line 739 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4825 "PhotoMonitor.c"
+ }
+#line 728 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE:
+#line 4829 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ LibraryPhoto* _tmp18_ = NULL;
+ LibraryPhoto* _tmp19_ = NULL;
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = photo;
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_OBJECT, DataObject));
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = _tmp14_;
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = g_strdup_printf ("Will revert %s to master", _tmp15_);
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_;
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp17_);
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp17_);
+#line 742 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp15_);
+#line 743 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = photo;
+#line 743 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_revert_to_master (self, _tmp18_);
+#line 744 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = photo;
+#line 744 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_in_alteration (self, _tmp19_, FALSE);
+#line 745 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4864 "PhotoMonitor.c"
+ }
+#line 728 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ case LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER:
+#line 4868 "PhotoMonitor.c"
+ {
+ LibraryPhoto* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ LibraryPhoto* _tmp25_ = NULL;
+ LibraryPhoto* _tmp26_ = NULL;
+ LibraryPhoto* _tmp27_ = NULL;
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = photo;
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_OBJECT, DataObject));
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = _tmp21_;
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = g_strdup_printf ("Will revert %s to master", _tmp22_);
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp24_);
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp24_);
+#line 748 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp22_);
+#line 749 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = photo;
+#line 749 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_revert_to_master (self, _tmp25_);
+#line 750 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = photo;
+#line 750 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_editable_file_in_alteration (self, _tmp26_, FALSE);
+#line 751 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = photo;
+#line 751 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_update_raw_development_file_in_alteration (self, _tmp27_, FALSE);
+#line 752 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 4908 "PhotoMonitor.c"
+ }
+ default:
+ {
+ LibraryPhotoSourceCollectionState _tmp28_ = 0;
+ GEnumValue* _tmp29_;
+#line 755 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = state;
+#line 755 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = g_enum_get_value (g_type_class_ref (LIBRARY_PHOTO_SOURCE_COLLECTION_TYPE_STATE), _tmp28_);
+#line 755 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_error ("PhotoMonitor.vala:755: Unknown LibraryPhoto collection state %s", (_tmp29_ != NULL) ? _tmp29_->value_name : NULL);
+#line 4920 "PhotoMonitor.c"
+ }
+ }
+#line 758 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = TRUE;
+#line 758 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 758 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 4929 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_real_on_media_source_destroyed (MediaMonitor* base, DataSource* source) {
+ PhotoMonitor * self;
+ DataSource* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+#line 761 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 761 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 762 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = source;
+#line 762 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ MEDIA_MONITOR_CLASS (photo_monitor_parent_class)->on_media_source_destroyed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), _tmp0_);
+#line 764 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = source;
+#line 764 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_cancel_reimports (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 4949 "PhotoMonitor.c"
+}
+
+
+static LibraryPhoto* photo_monitor_get_photo_state_by_file (PhotoMonitor* self, GFile* file, LibraryPhotoSourceCollectionState* state) {
+ LibraryPhotoSourceCollectionState _vala_state = 0;
+ LibraryPhoto* result = NULL;
+ GFile* real_file = NULL;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp70_ = NULL;
+ GFile* _tmp71_ = NULL;
+ LibraryPhotoSourceCollection* _tmp73_ = NULL;
+ LibraryPhotoSourceCollectionState _tmp74_ = 0;
+ LibraryPhoto* _tmp75_ = NULL;
+#line 767 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (self), NULL);
+#line 767 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 768 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ real_file = NULL;
+#line 769 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = media_monitor_has_pending_updates (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor));
+#line 769 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp0_) {
+#line 4973 "PhotoMonitor.c"
+ {
+ GeeIterator* _monitorable_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = media_monitor_get_monitorables (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor));
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_it = _tmp4_;
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 4994 "PhotoMonitor.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ Monitorable* monitorable = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ LibraryPhoto* photo = NULL;
+ Monitorable* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ PhotoUpdates* updates = NULL;
+ LibraryPhoto* _tmp11_ = NULL;
+ PhotoUpdates* _tmp12_ = NULL;
+ PhotoUpdates* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ PhotoUpdates* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ PhotoUpdates* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ PhotoUpdates* _tmp39_ = NULL;
+ GeeCollection* _tmp40_ = NULL;
+ GeeCollection* _tmp41_ = NULL;
+ gboolean _tmp42_ = FALSE;
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = _monitorable_it;
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp6_) {
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5029 "PhotoMonitor.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _monitorable_it;
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ monitorable = (Monitorable*) _tmp8_;
+#line 771 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = monitorable;
+#line 771 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 771 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = _tmp10_;
+#line 773 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = photo;
+#line 773 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = photo_monitor_get_existing_photo_updates (self, _tmp11_);
+#line 773 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ updates = _tmp12_;
+#line 774 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = updates;
+#line 774 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp13_ == NULL) {
+#line 775 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 775 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 775 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 775 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ continue;
+#line 5061 "PhotoMonitor.c"
+ }
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = updates;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = monitorable_updates_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = _tmp17_ != NULL;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp17_);
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp18_) {
+#line 5075 "PhotoMonitor.c"
+ PhotoUpdates* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = updates;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = monitorable_updates_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = _tmp20_;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = file;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = g_file_equal (_tmp21_, _tmp22_);
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp23_;
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp21_);
+#line 5095 "PhotoMonitor.c"
+ } else {
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = FALSE;
+#line 5099 "PhotoMonitor.c"
+ }
+#line 777 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp14_) {
+#line 5103 "PhotoMonitor.c"
+ LibraryPhoto* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+#line 778 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = photo;
+#line 778 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 778 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (real_file);
+#line 778 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ real_file = _tmp25_;
+#line 780 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 780 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 780 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 780 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5122 "PhotoMonitor.c"
+ }
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = updates;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = photo_updates_get_editable_file (_tmp27_);
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = _tmp28_;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = _tmp29_ != NULL;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp29_);
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp30_) {
+#line 5136 "PhotoMonitor.c"
+ PhotoUpdates* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = updates;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = photo_updates_get_editable_file (_tmp31_);
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp33_ = _tmp32_;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp34_ = file;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp35_ = g_file_equal (_tmp33_, _tmp34_);
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = _tmp35_;
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp33_);
+#line 5156 "PhotoMonitor.c"
+ } else {
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = FALSE;
+#line 5160 "PhotoMonitor.c"
+ }
+#line 783 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp26_) {
+#line 5164 "PhotoMonitor.c"
+ LibraryPhoto* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+ GFile* _tmp38_ = NULL;
+#line 784 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp36_ = photo;
+#line 784 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp37_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_PHOTO, Photo));
+#line 784 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (real_file);
+#line 784 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ real_file = _tmp37_;
+#line 788 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp38_ = real_file;
+#line 788 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp38_ == NULL) {
+#line 789 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_EDITABLE;
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = photo;
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_monitorable_it);
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (real_file);
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (state) {
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *state = _vala_state;
+#line 5196 "PhotoMonitor.c"
+ }
+#line 791 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 5200 "PhotoMonitor.c"
+ }
+#line 794 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 794 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 794 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 794 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5210 "PhotoMonitor.c"
+ }
+#line 797 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp39_ = updates;
+#line 797 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp40_ = photo_updates_get_raw_developer_files (_tmp39_);
+#line 797 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp41_ = _tmp40_;
+#line 797 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp42_ = _tmp41_ != NULL;
+#line 797 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp41_);
+#line 797 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp42_) {
+#line 5224 "PhotoMonitor.c"
+ gboolean found = FALSE;
+ gboolean _tmp55_ = FALSE;
+#line 798 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ found = FALSE;
+#line 5229 "PhotoMonitor.c"
+ {
+ GeeIterator* _raw_it = NULL;
+ PhotoUpdates* _tmp43_ = NULL;
+ GeeCollection* _tmp44_ = NULL;
+ GeeCollection* _tmp45_ = NULL;
+ GeeIterator* _tmp46_ = NULL;
+ GeeIterator* _tmp47_ = NULL;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp43_ = updates;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp44_ = photo_updates_get_raw_developer_files (_tmp43_);
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp45_ = _tmp44_;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp46_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp47_ = _tmp46_;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp45_);
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _raw_it = _tmp47_;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 5253 "PhotoMonitor.c"
+ GeeIterator* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+ GFile* raw = NULL;
+ GeeIterator* _tmp50_ = NULL;
+ gpointer _tmp51_ = NULL;
+ GFile* _tmp52_ = NULL;
+ GFile* _tmp53_ = NULL;
+ gboolean _tmp54_ = FALSE;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp48_ = _raw_it;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp49_ = gee_iterator_next (_tmp48_);
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp49_) {
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5270 "PhotoMonitor.c"
+ }
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp50_ = _raw_it;
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp51_ = gee_iterator_get (_tmp50_);
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ raw = (GFile*) _tmp51_;
+#line 800 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp52_ = raw;
+#line 800 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp53_ = file;
+#line 800 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp54_ = g_file_equal (_tmp52_, _tmp53_);
+#line 800 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp54_) {
+#line 801 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ found = TRUE;
+#line 803 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (raw);
+#line 803 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5292 "PhotoMonitor.c"
+ }
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (raw);
+#line 5296 "PhotoMonitor.c"
+ }
+#line 799 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_raw_it);
+#line 5300 "PhotoMonitor.c"
+ }
+#line 807 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp55_ = found;
+#line 807 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp55_) {
+#line 5306 "PhotoMonitor.c"
+ GeeCollection* developed = NULL;
+ LibraryPhoto* _tmp56_ = NULL;
+ GeeCollection* _tmp57_ = NULL;
+ GeeCollection* _tmp58_ = NULL;
+#line 808 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp56_ = photo;
+#line 808 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp57_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_PHOTO, Photo));
+#line 808 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ developed = _tmp57_;
+#line 809 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp58_ = developed;
+#line 809 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp58_ != NULL) {
+#line 5321 "PhotoMonitor.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeCollection* _tmp59_ = NULL;
+ GeeIterator* _tmp60_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp59_ = developed;
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp60_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _f_it = _tmp60_;
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 5334 "PhotoMonitor.c"
+ GeeIterator* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ GFile* f = NULL;
+ GeeIterator* _tmp63_ = NULL;
+ gpointer _tmp64_ = NULL;
+ GFile* _tmp65_ = NULL;
+ GFile* _tmp66_ = NULL;
+ gboolean _tmp67_ = FALSE;
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp61_ = _f_it;
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp62_ = gee_iterator_next (_tmp61_);
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp62_) {
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5351 "PhotoMonitor.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp63_ = _f_it;
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp64_ = gee_iterator_get (_tmp63_);
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ f = (GFile*) _tmp64_;
+#line 811 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp65_ = f;
+#line 811 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp66_ = file;
+#line 811 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp67_ = g_file_equal (_tmp65_, _tmp66_);
+#line 811 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp67_) {
+#line 5367 "PhotoMonitor.c"
+ GFile* _tmp68_ = NULL;
+ GFile* _tmp69_ = NULL;
+#line 812 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp68_ = f;
+#line 812 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp69_ = _g_object_ref0 (_tmp68_);
+#line 812 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (real_file);
+#line 812 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ real_file = _tmp69_;
+#line 813 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_state = LIBRARY_PHOTO_SOURCE_COLLECTION_STATE_DEVELOPER;
+#line 815 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (f);
+#line 815 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5384 "PhotoMonitor.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (f);
+#line 5388 "PhotoMonitor.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_f_it);
+#line 5392 "PhotoMonitor.c"
+ }
+ }
+#line 821 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (developed);
+#line 821 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 821 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 821 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 821 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 5405 "PhotoMonitor.c"
+ }
+ }
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 5414 "PhotoMonitor.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_monitorable_it);
+#line 5418 "PhotoMonitor.c"
+ }
+ }
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp71_ = real_file;
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp70_ = _tmp71_;
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp70_ == NULL) {
+#line 5427 "PhotoMonitor.c"
+ GFile* _tmp72_ = NULL;
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp72_ = file;
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp70_ = _tmp72_;
+#line 5433 "PhotoMonitor.c"
+ }
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp73_ = library_photo_global;
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp75_ = library_photo_source_collection_get_state_by_file (_tmp73_, _tmp70_, &_tmp74_);
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_state = _tmp74_;
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp75_;
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (real_file);
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (state) {
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *state = _vala_state;
+#line 5449 "PhotoMonitor.c"
+ }
+#line 827 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 5453 "PhotoMonitor.c"
+}
+
+
+PhotoUpdates* photo_monitor_fetch_photo_updates (PhotoMonitor* self, LibraryPhoto* photo) {
+ PhotoUpdates* result = NULL;
+ LibraryPhoto* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+#line 830 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (self), NULL);
+#line 830 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 831 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 831 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MONITORABLE, Monitorable));
+#line 831 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_UPDATES, PhotoUpdates);
+#line 831 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 5473 "PhotoMonitor.c"
+}
+
+
+PhotoUpdates* photo_monitor_get_existing_photo_updates (PhotoMonitor* self, LibraryPhoto* photo) {
+ PhotoUpdates* result = NULL;
+ LibraryPhoto* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (self), NULL);
+#line 834 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 835 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 835 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = media_monitor_get_existing_updates (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MONITORABLE, Monitorable));
+#line 835 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_PHOTO_UPDATES) ? ((PhotoUpdates*) _tmp1_) : NULL;
+#line 835 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp2_ == NULL) {
+#line 835 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp1_);
+#line 5496 "PhotoMonitor.c"
+ }
+#line 835 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp2_;
+#line 835 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 5502 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_reimport_master (PhotoMonitor* self, LibraryPhoto* photo) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 838 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 838 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 839 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 839 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 839 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 839 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_reimport_master (_tmp2_, TRUE);
+#line 839 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 842 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = self->priv->master_reimport_pending;
+#line 842 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = photo;
+#line 842 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 842 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp5_) {
+#line 5535 "PhotoMonitor.c"
+ GeeHashMap* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp9_ = NULL;
+#line 843 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = self->priv->master_reimport_pending;
+#line 843 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = photo;
+#line 843 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 843 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = (PhotoMonitorReimportMasterJob*) _tmp8_;
+#line 843 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 843 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (_tmp9_);
+#line 5552 "PhotoMonitor.c"
+ }
+}
+
+
+void photo_monitor_update_reimport_editable (PhotoMonitor* self, LibraryPhoto* photo) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 846 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 846 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 847 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 847 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 847 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 847 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_reimport_editable (_tmp2_, TRUE);
+#line 847 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 850 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = self->priv->editable_reimport_pending;
+#line 850 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = photo;
+#line 850 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 850 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp5_) {
+#line 5586 "PhotoMonitor.c"
+ GeeHashMap* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp9_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = self->priv->editable_reimport_pending;
+#line 851 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = photo;
+#line 851 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 851 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = (PhotoMonitorReimportEditableJob*) _tmp8_;
+#line 851 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 851 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (_tmp9_);
+#line 5603 "PhotoMonitor.c"
+ }
+}
+
+
+void photo_monitor_update_reimport_raw_developments (PhotoMonitor* self, LibraryPhoto* photo) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 854 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 854 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 855 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 855 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 855 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 855 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_reimport_raw_developments (_tmp2_, TRUE);
+#line 855 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 858 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = self->priv->raw_developments_reimport_pending;
+#line 858 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = photo;
+#line 858 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 858 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp5_) {
+#line 5637 "PhotoMonitor.c"
+ GeeHashMap* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp9_ = NULL;
+#line 859 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = self->priv->raw_developments_reimport_pending;
+#line 859 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = photo;
+#line 859 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 859 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = (PhotoMonitorReimportRawDevelopmentJob*) _tmp8_;
+#line 859 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 859 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (_tmp9_);
+#line 5654 "PhotoMonitor.c"
+ }
+}
+
+
+GFile* photo_monitor_get_editable_file (PhotoMonitor* self, LibraryPhoto* photo) {
+ GFile* result = NULL;
+ PhotoUpdates* updates = NULL;
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PhotoUpdates* _tmp4_ = NULL;
+#line 862 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (self), NULL);
+#line 862 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 863 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 863 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_get_existing_photo_updates (self, _tmp0_);
+#line 863 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ updates = _tmp1_;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = updates;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp4_ != NULL) {
+#line 5681 "PhotoMonitor.c"
+ PhotoUpdates* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = updates;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = photo_updates_get_editable_file (_tmp5_);
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp7_ != NULL;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp7_);
+#line 5695 "PhotoMonitor.c"
+ } else {
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = FALSE;
+#line 5699 "PhotoMonitor.c"
+ }
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_) {
+#line 5703 "PhotoMonitor.c"
+ PhotoUpdates* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = updates;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = photo_updates_get_editable_file (_tmp8_);
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp9_;
+#line 5714 "PhotoMonitor.c"
+ } else {
+ LibraryPhoto* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+#line 866 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = photo;
+#line 866 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = photo_get_editable_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PHOTO, Photo));
+#line 866 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 866 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp11_;
+#line 5726 "PhotoMonitor.c"
+ }
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp2_;
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 865 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 5734 "PhotoMonitor.c"
+}
+
+
+GeeCollection* photo_monitor_get_raw_development_files (PhotoMonitor* self, LibraryPhoto* photo) {
+ GeeCollection* result = NULL;
+ PhotoUpdates* updates = NULL;
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PhotoUpdates* _tmp4_ = NULL;
+#line 869 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (self), NULL);
+#line 869 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 870 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 870 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_get_existing_photo_updates (self, _tmp0_);
+#line 870 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ updates = _tmp1_;
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = updates;
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp4_ != NULL) {
+#line 5760 "PhotoMonitor.c"
+ PhotoUpdates* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = updates;
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = photo_updates_get_raw_developer_files (_tmp5_);
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = _tmp6_;
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp7_ != NULL;
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp7_);
+#line 5774 "PhotoMonitor.c"
+ } else {
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = FALSE;
+#line 5778 "PhotoMonitor.c"
+ }
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp3_) {
+#line 5782 "PhotoMonitor.c"
+ PhotoUpdates* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = updates;
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = photo_updates_get_raw_developer_files (_tmp8_);
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp9_;
+#line 5793 "PhotoMonitor.c"
+ } else {
+ LibraryPhoto* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = photo;
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = photo_get_raw_developer_files (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PHOTO, Photo));
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp2_);
+#line 873 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp11_;
+#line 5805 "PhotoMonitor.c"
+ }
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ result = _tmp2_;
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 872 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return result;
+#line 5813 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_editable_file (PhotoMonitor* self, LibraryPhoto* photo, GFile* file) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 876 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 876 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 876 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 877 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 877 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 877 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 877 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = file;
+#line 877 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_editable_file (_tmp2_, _tmp3_);
+#line 877 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 5840 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_editable_file_info_altered (PhotoMonitor* self, LibraryPhoto* photo) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 880 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 881 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 881 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 881 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 881 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_editable_file_info_altered (_tmp2_, TRUE);
+#line 881 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 5862 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_raw_development_file (PhotoMonitor* self, LibraryPhoto* photo, GFile* file) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 884 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 884 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 885 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 885 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 885 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 885 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = file;
+#line 885 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_add_raw_developer_file (_tmp2_, _tmp3_);
+#line 885 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 5889 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_raw_development_file_info_altered (PhotoMonitor* self, LibraryPhoto* photo) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+#line 888 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 888 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 889 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 889 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 889 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 889 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_raw_developer_file_info_altered (_tmp2_, TRUE);
+#line 889 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 5911 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_editable_file_in_alteration (PhotoMonitor* self, LibraryPhoto* photo, gboolean in_alteration) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 892 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 892 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 893 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 893 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 893 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 893 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = in_alteration;
+#line 893 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_editable_in_alteration (_tmp2_, _tmp3_);
+#line 893 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 5936 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_editable_file_alterations_completed (PhotoMonitor* self, LibraryPhoto* photo, GFileInfo* info) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ GFileInfo* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ PhotoUpdates* _tmp5_ = NULL;
+ PhotoUpdates* _tmp6_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 896 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 896 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 897 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 897 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 897 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 897 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = info;
+#line 897 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_editable_file_info (_tmp2_, _tmp3_);
+#line 897 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 898 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = photo;
+#line 898 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo_monitor_fetch_photo_updates (self, _tmp4_);
+#line 898 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _tmp5_;
+#line 898 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_editable_in_alteration (_tmp6_, FALSE);
+#line 898 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp6_);
+#line 5976 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_raw_development_file_in_alteration (PhotoMonitor* self, LibraryPhoto* photo, gboolean in_alteration) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 901 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 901 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 902 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 902 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 902 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 902 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = in_alteration;
+#line 902 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_raw_development_in_alteration (_tmp2_, _tmp3_);
+#line 902 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 6001 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_raw_development_file_alterations_completed (PhotoMonitor* self, LibraryPhoto* photo) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+#line 905 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 905 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 906 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 906 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 906 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 906 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_raw_development_in_alteration (_tmp2_, FALSE);
+#line 906 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 6023 "PhotoMonitor.c"
+}
+
+
+void photo_monitor_update_revert_to_master (PhotoMonitor* self, LibraryPhoto* photo) {
+ LibraryPhoto* _tmp0_ = NULL;
+ PhotoUpdates* _tmp1_ = NULL;
+ PhotoUpdates* _tmp2_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 909 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 910 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = photo;
+#line 910 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = photo_monitor_fetch_photo_updates (self, _tmp0_);
+#line 910 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 910 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_revert_to_master (_tmp2_, TRUE);
+#line 910 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 6045 "PhotoMonitor.c"
+}
+
+
+static gpointer _monitorable_updates_ref0 (gpointer self) {
+#line 930 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self ? monitorable_updates_ref (self) : NULL;
+#line 6052 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_real_process_updates (MediaMonitor* base, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error) {
+ PhotoMonitor * self;
+ GeeCollection* _tmp0_ = NULL;
+ TransactionController* _tmp1_ = NULL;
+ GeeMap* set_editable_file = NULL;
+ GeeMap* set_editable_file_info = NULL;
+ GeeMap* set_raw_developer_files = NULL;
+ GeeArrayList* revert_to_master = NULL;
+ GeeArrayList* reimport_master = NULL;
+ GeeArrayList* reimport_editable = NULL;
+ GeeArrayList* reimport_raw_developments = NULL;
+ gint reimport_job_count = 0;
+ GeeMap* _tmp90_ = NULL;
+ GeeMap* _tmp98_ = NULL;
+ GeeArrayList* _tmp106_ = NULL;
+ GeeArrayList* _tmp124_ = NULL;
+ GeeArrayList* _tmp151_ = NULL;
+ GeeArrayList* _tmp178_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (all_updates));
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 915 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = all_updates;
+#line 915 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = controller;
+#line 915 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ MEDIA_MONITOR_CLASS (photo_monitor_parent_class)->process_updates (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), _tmp0_, _tmp1_, op_count, &_inner_error_);
+#line 915 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 915 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_propagate_error (error, _inner_error_);
+#line 915 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 6093 "PhotoMonitor.c"
+ }
+#line 917 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ set_editable_file = NULL;
+#line 918 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ set_editable_file_info = NULL;
+#line 919 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ set_raw_developer_files = NULL;
+#line 920 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ revert_to_master = NULL;
+#line 921 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_master = NULL;
+#line 922 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_editable = NULL;
+#line 923 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_raw_developments = NULL;
+#line 924 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_job_count = 0;
+#line 6111 "PhotoMonitor.c"
+ {
+ GeeIterator* _monitorable_updates_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = all_updates;
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_it = _tmp3_;
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 6124 "PhotoMonitor.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MonitorableUpdates* monitorable_updates = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ PhotoUpdates* updates = NULL;
+ MonitorableUpdates* _tmp9_ = NULL;
+ PhotoUpdates* _tmp10_ = NULL;
+ PhotoUpdates* _tmp11_ = NULL;
+ PhotoUpdates* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ PhotoUpdates* _tmp26_ = NULL;
+ GFileInfo* _tmp27_ = NULL;
+ GFileInfo* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ PhotoUpdates* _tmp40_ = NULL;
+ GeeCollection* _tmp41_ = NULL;
+ GeeCollection* _tmp42_ = NULL;
+ gboolean _tmp43_ = FALSE;
+ PhotoUpdates* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ gboolean _tmp66_ = FALSE;
+ PhotoUpdates* _tmp67_ = NULL;
+ gboolean _tmp68_ = FALSE;
+ gboolean _tmp78_ = FALSE;
+ PhotoUpdates* _tmp79_ = NULL;
+ gboolean _tmp80_ = FALSE;
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _monitorable_updates_it;
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp5_) {
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 6163 "PhotoMonitor.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _monitorable_updates_it;
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ monitorable_updates = (MonitorableUpdates*) _tmp7_;
+#line 927 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = *op_count;
+#line 927 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp8_ >= MEDIA_MONITOR_MAX_OPERATIONS_PER_CYCLE) {
+#line 928 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (monitorable_updates);
+#line 928 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 6179 "PhotoMonitor.c"
+ }
+#line 930 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = monitorable_updates;
+#line 930 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = _monitorable_updates_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_PHOTO_UPDATES) ? ((PhotoUpdates*) _tmp9_) : NULL);
+#line 930 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ updates = _tmp10_;
+#line 931 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = updates;
+#line 931 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp11_ == NULL) {
+#line 932 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 932 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (monitorable_updates);
+#line 932 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ continue;
+#line 6197 "PhotoMonitor.c"
+ }
+#line 934 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = updates;
+#line 934 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = photo_updates_get_editable_file (_tmp12_);
+#line 934 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_;
+#line 934 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = _tmp14_ != NULL;
+#line 934 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp14_);
+#line 934 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp15_) {
+#line 6211 "PhotoMonitor.c"
+ GeeMap* _tmp16_ = NULL;
+ GeeMap* _tmp18_ = NULL;
+ PhotoUpdates* _tmp19_ = NULL;
+ LibraryPhoto* _tmp20_ = NULL;
+ PhotoUpdates* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ PhotoUpdates* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+#line 935 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = set_editable_file;
+#line 935 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp16_ == NULL) {
+#line 6225 "PhotoMonitor.c"
+ GeeHashMap* _tmp17_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 936 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file);
+#line 936 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ set_editable_file = G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_MAP, GeeMap);
+#line 6233 "PhotoMonitor.c"
+ }
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = set_editable_file;
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = updates;
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = _tmp19_->photo;
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = updates;
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = photo_updates_get_editable_file (_tmp21_);
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = _tmp22_;
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_map_set (_tmp18_, _tmp20_, _tmp23_);
+#line 938 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp23_);
+#line 939 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = updates;
+#line 939 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_editable_file (_tmp24_, NULL);
+#line 940 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = *op_count;
+#line 940 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *op_count = _tmp25_ + 1;
+#line 6259 "PhotoMonitor.c"
+ }
+#line 943 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = updates;
+#line 943 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = photo_updates_get_editable_file_info (_tmp26_);
+#line 943 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = _tmp27_;
+#line 943 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = _tmp28_ != NULL;
+#line 943 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp28_);
+#line 943 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp29_) {
+#line 6273 "PhotoMonitor.c"
+ GeeMap* _tmp30_ = NULL;
+ GeeMap* _tmp32_ = NULL;
+ PhotoUpdates* _tmp33_ = NULL;
+ LibraryPhoto* _tmp34_ = NULL;
+ PhotoUpdates* _tmp35_ = NULL;
+ GFileInfo* _tmp36_ = NULL;
+ GFileInfo* _tmp37_ = NULL;
+ PhotoUpdates* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+#line 944 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = set_editable_file_info;
+#line 944 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp30_ == NULL) {
+#line 6287 "PhotoMonitor.c"
+ GeeHashMap* _tmp31_ = NULL;
+#line 945 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, g_file_info_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 945 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file_info);
+#line 945 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ set_editable_file_info = G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_MAP, GeeMap);
+#line 6295 "PhotoMonitor.c"
+ }
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = set_editable_file_info;
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp33_ = updates;
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp34_ = _tmp33_->photo;
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp35_ = updates;
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp36_ = photo_updates_get_editable_file_info (_tmp35_);
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp37_ = _tmp36_;
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_map_set (_tmp32_, _tmp34_, _tmp37_);
+#line 947 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp37_);
+#line 948 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp38_ = updates;
+#line 948 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_editable_file_info (_tmp38_, NULL);
+#line 949 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp39_ = *op_count;
+#line 949 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *op_count = _tmp39_ + 1;
+#line 6321 "PhotoMonitor.c"
+ }
+#line 952 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp40_ = updates;
+#line 952 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp41_ = photo_updates_get_raw_developer_files (_tmp40_);
+#line 952 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp42_ = _tmp41_;
+#line 952 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp43_ = _tmp42_ != NULL;
+#line 952 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp42_);
+#line 952 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp43_) {
+#line 6335 "PhotoMonitor.c"
+ GeeMap* _tmp44_ = NULL;
+ GeeMap* _tmp46_ = NULL;
+ PhotoUpdates* _tmp47_ = NULL;
+ LibraryPhoto* _tmp48_ = NULL;
+ PhotoUpdates* _tmp49_ = NULL;
+ GeeCollection* _tmp50_ = NULL;
+ GeeCollection* _tmp51_ = NULL;
+ PhotoUpdates* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+#line 953 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp44_ = set_raw_developer_files;
+#line 953 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp44_ == NULL) {
+#line 6349 "PhotoMonitor.c"
+ GeeHashMap* _tmp45_ = NULL;
+#line 954 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp45_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, GEE_TYPE_COLLECTION, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 954 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_raw_developer_files);
+#line 954 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ set_raw_developer_files = G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, GEE_TYPE_MAP, GeeMap);
+#line 6357 "PhotoMonitor.c"
+ }
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp46_ = set_raw_developer_files;
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp47_ = updates;
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp48_ = _tmp47_->photo;
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp49_ = updates;
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp50_ = photo_updates_get_raw_developer_files (_tmp49_);
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp51_ = _tmp50_;
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_map_set (_tmp46_, _tmp48_, _tmp51_);
+#line 956 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp51_);
+#line 957 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp52_ = updates;
+#line 957 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_clear_raw_developer_files (_tmp52_);
+#line 958 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp53_ = *op_count;
+#line 958 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *op_count = _tmp53_ + 1;
+#line 6383 "PhotoMonitor.c"
+ }
+#line 961 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp54_ = updates;
+#line 961 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp55_ = photo_updates_is_revert_to_master (_tmp54_);
+#line 961 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp55_) {
+#line 6391 "PhotoMonitor.c"
+ GeeArrayList* _tmp56_ = NULL;
+ GeeArrayList* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ gint _tmp65_ = 0;
+#line 962 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp56_ = revert_to_master;
+#line 962 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp56_ == NULL) {
+#line 6401 "PhotoMonitor.c"
+ GeeArrayList* _tmp57_ = NULL;
+#line 963 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp57_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 963 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (revert_to_master);
+#line 963 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ revert_to_master = _tmp57_;
+#line 6409 "PhotoMonitor.c"
+ }
+#line 965 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp58_ = revert_to_master;
+#line 965 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp59_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 965 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp60_ = _tmp59_;
+#line 965 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp60_ < PHOTO_MONITOR_MAX_REVERTS_PER_CYCLE) {
+#line 6419 "PhotoMonitor.c"
+ GeeArrayList* _tmp61_ = NULL;
+ PhotoUpdates* _tmp62_ = NULL;
+ LibraryPhoto* _tmp63_ = NULL;
+ PhotoUpdates* _tmp64_ = NULL;
+#line 966 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp61_ = revert_to_master;
+#line 966 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp62_ = updates;
+#line 966 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp63_ = _tmp62_->photo;
+#line 966 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp63_);
+#line 967 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp64_ = updates;
+#line 967 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_revert_to_master (_tmp64_, FALSE);
+#line 6436 "PhotoMonitor.c"
+ }
+#line 969 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp65_ = *op_count;
+#line 969 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *op_count = _tmp65_ + 1;
+#line 6442 "PhotoMonitor.c"
+ }
+#line 972 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp67_ = updates;
+#line 972 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp68_ = photo_updates_is_reimport_master (_tmp67_);
+#line 972 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp68_) {
+#line 6450 "PhotoMonitor.c"
+ gint _tmp69_ = 0;
+#line 972 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp69_ = reimport_job_count;
+#line 972 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp66_ = _tmp69_ < PHOTO_MONITOR_MAX_REIMPORT_JOBS_PER_CYCLE;
+#line 6456 "PhotoMonitor.c"
+ } else {
+#line 972 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp66_ = FALSE;
+#line 6460 "PhotoMonitor.c"
+ }
+#line 972 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp66_) {
+#line 6464 "PhotoMonitor.c"
+ GeeArrayList* _tmp70_ = NULL;
+ GeeArrayList* _tmp72_ = NULL;
+ PhotoUpdates* _tmp73_ = NULL;
+ LibraryPhoto* _tmp74_ = NULL;
+ PhotoUpdates* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+#line 973 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp70_ = reimport_master;
+#line 973 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp70_ == NULL) {
+#line 6476 "PhotoMonitor.c"
+ GeeArrayList* _tmp71_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp71_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 974 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_master);
+#line 974 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_master = _tmp71_;
+#line 6484 "PhotoMonitor.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp72_ = reimport_master;
+#line 976 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp73_ = updates;
+#line 976 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp74_ = _tmp73_->photo;
+#line 976 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp74_);
+#line 977 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp75_ = updates;
+#line 977 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_reimport_master (_tmp75_, FALSE);
+#line 978 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp76_ = reimport_job_count;
+#line 978 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_job_count = _tmp76_ + 1;
+#line 979 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp77_ = *op_count;
+#line 979 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *op_count = _tmp77_ + 1;
+#line 6506 "PhotoMonitor.c"
+ }
+#line 982 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp79_ = updates;
+#line 982 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp80_ = photo_updates_is_reimport_editable (_tmp79_);
+#line 982 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp80_) {
+#line 6514 "PhotoMonitor.c"
+ gint _tmp81_ = 0;
+#line 982 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp81_ = reimport_job_count;
+#line 982 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp78_ = _tmp81_ < PHOTO_MONITOR_MAX_REIMPORT_JOBS_PER_CYCLE;
+#line 6520 "PhotoMonitor.c"
+ } else {
+#line 982 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp78_ = FALSE;
+#line 6524 "PhotoMonitor.c"
+ }
+#line 982 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp78_) {
+#line 6528 "PhotoMonitor.c"
+ GeeArrayList* _tmp82_ = NULL;
+ GeeArrayList* _tmp84_ = NULL;
+ PhotoUpdates* _tmp85_ = NULL;
+ LibraryPhoto* _tmp86_ = NULL;
+ PhotoUpdates* _tmp87_ = NULL;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+#line 983 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp82_ = reimport_editable;
+#line 983 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp82_ == NULL) {
+#line 6540 "PhotoMonitor.c"
+ GeeArrayList* _tmp83_ = NULL;
+#line 984 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp83_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 984 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_editable);
+#line 984 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_editable = _tmp83_;
+#line 6548 "PhotoMonitor.c"
+ }
+#line 986 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp84_ = reimport_editable;
+#line 986 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp85_ = updates;
+#line 986 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp86_ = _tmp85_->photo;
+#line 986 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp84_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp86_);
+#line 987 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp87_ = updates;
+#line 987 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_updates_set_reimport_editable (_tmp87_, FALSE);
+#line 988 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp88_ = reimport_job_count;
+#line 988 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ reimport_job_count = _tmp88_ + 1;
+#line 989 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp89_ = *op_count;
+#line 989 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ *op_count = _tmp89_ + 1;
+#line 6570 "PhotoMonitor.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _monitorable_updates_unref0 (monitorable_updates);
+#line 6576 "PhotoMonitor.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_monitorable_updates_it);
+#line 6580 "PhotoMonitor.c"
+ }
+#line 993 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp90_ = set_editable_file;
+#line 993 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp90_ != NULL) {
+#line 6586 "PhotoMonitor.c"
+ GeeMap* _tmp91_ = NULL;
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ gchar* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+#line 994 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp91_ = set_editable_file;
+#line 994 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp92_ = gee_map_get_size (_tmp91_);
+#line 994 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp93_ = _tmp92_;
+#line 994 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp94_ = g_strdup_printf ("Changing editable file of %d photos", _tmp93_);
+#line 994 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp95_ = _tmp94_;
+#line 994 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp95_);
+#line 994 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp95_);
+#line 6606 "PhotoMonitor.c"
+ {
+ GeeMap* _tmp96_ = NULL;
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp96_ = set_editable_file;
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_set_many_editable_file (_tmp96_, &_inner_error_);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6617 "PhotoMonitor.c"
+ goto __catch572_database_error;
+ }
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_raw_developments);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_editable);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_master);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (revert_to_master);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_raw_developer_files);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file_info);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 997 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 6640 "PhotoMonitor.c"
+ }
+ }
+ goto __finally572;
+ __catch572_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp97_ = NULL;
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 999 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp97_ = err;
+#line 999 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ app_window_database_error (_tmp97_);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 6658 "PhotoMonitor.c"
+ }
+ __finally572:
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_propagate_error (error, _inner_error_);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_raw_developments);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_editable);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_master);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (revert_to_master);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_raw_developer_files);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file_info);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file);
+#line 996 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 6681 "PhotoMonitor.c"
+ }
+ }
+#line 1003 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp98_ = set_editable_file_info;
+#line 1003 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp98_ != NULL) {
+#line 6688 "PhotoMonitor.c"
+ GeeMap* _tmp99_ = NULL;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ gchar* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+#line 1004 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp99_ = set_editable_file_info;
+#line 1004 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp100_ = gee_map_get_size (_tmp99_);
+#line 1004 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp101_ = _tmp100_;
+#line 1004 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp102_ = g_strdup_printf ("Updating %d editable files timestamps", _tmp101_);
+#line 1004 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp103_ = _tmp102_;
+#line 1004 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp103_);
+#line 1004 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp103_);
+#line 6708 "PhotoMonitor.c"
+ {
+ GeeMap* _tmp104_ = NULL;
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp104_ = set_editable_file_info;
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_update_many_editable_timestamps (_tmp104_, &_inner_error_);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6719 "PhotoMonitor.c"
+ goto __catch573_database_error;
+ }
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_raw_developments);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_editable);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_master);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (revert_to_master);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_raw_developer_files);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file_info);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1007 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 6742 "PhotoMonitor.c"
+ }
+ }
+ goto __finally573;
+ __catch573_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp105_ = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp105_ = err;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ app_window_database_error (_tmp105_);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 6760 "PhotoMonitor.c"
+ }
+ __finally573:
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_raw_developments);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_editable);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_master);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (revert_to_master);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_raw_developer_files);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file_info);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file);
+#line 1006 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 6783 "PhotoMonitor.c"
+ }
+ }
+#line 1013 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp106_ = revert_to_master;
+#line 1013 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp106_ != NULL) {
+#line 6790 "PhotoMonitor.c"
+ GeeArrayList* _tmp107_ = NULL;
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ gchar* _tmp110_ = NULL;
+ gchar* _tmp111_ = NULL;
+#line 1014 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp107_ = revert_to_master;
+#line 1014 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp108_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp107_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1014 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp109_ = _tmp108_;
+#line 1014 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp110_ = g_strdup_printf ("Reverting %d photos to master", _tmp109_);
+#line 1014 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp111_ = _tmp110_;
+#line 1014 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp111_);
+#line 1014 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp111_);
+#line 6810 "PhotoMonitor.c"
+ {
+ GeeArrayList* _photo_list = NULL;
+ GeeArrayList* _tmp112_ = NULL;
+ GeeArrayList* _tmp113_ = NULL;
+ gint _photo_size = 0;
+ GeeArrayList* _tmp114_ = NULL;
+ gint _tmp115_ = 0;
+ gint _tmp116_ = 0;
+ gint _photo_index = 0;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp112_ = revert_to_master;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp113_ = _g_object_ref0 (_tmp112_);
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_list = _tmp113_;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp114_ = _photo_list;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp115_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp114_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp116_ = _tmp115_;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_size = _tmp116_;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = -1;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 6838 "PhotoMonitor.c"
+ gint _tmp117_ = 0;
+ gint _tmp118_ = 0;
+ gint _tmp119_ = 0;
+ LibraryPhoto* photo = NULL;
+ GeeArrayList* _tmp120_ = NULL;
+ gint _tmp121_ = 0;
+ gpointer _tmp122_ = NULL;
+ LibraryPhoto* _tmp123_ = NULL;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp117_ = _photo_index;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = _tmp117_ + 1;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp118_ = _photo_index;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp119_ = _photo_size;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!(_tmp118_ < _tmp119_)) {
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 6859 "PhotoMonitor.c"
+ }
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp120_ = _photo_list;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp121_ = _photo_index;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp122_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp120_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp121_);
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = (LibraryPhoto*) _tmp122_;
+#line 1017 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp123_ = photo;
+#line 1017 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_revert_to_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp123_, TYPE_PHOTO, Photo), TRUE);
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 6875 "PhotoMonitor.c"
+ }
+#line 1016 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_photo_list);
+#line 6879 "PhotoMonitor.c"
+ }
+ }
+#line 1024 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp124_ = reimport_master;
+#line 1024 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp124_ != NULL) {
+#line 6886 "PhotoMonitor.c"
+ GeeArrayList* _tmp125_ = NULL;
+ gint _tmp126_ = 0;
+ gint _tmp127_ = 0;
+ gchar* _tmp128_ = NULL;
+ gchar* _tmp129_ = NULL;
+#line 1025 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp125_ = reimport_master;
+#line 1025 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp126_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp125_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1025 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp127_ = _tmp126_;
+#line 1025 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp128_ = g_strdup_printf ("Reimporting %d masters", _tmp127_);
+#line 1025 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp129_ = _tmp128_;
+#line 1025 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp129_);
+#line 1025 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp129_);
+#line 6906 "PhotoMonitor.c"
+ {
+ GeeArrayList* _photo_list = NULL;
+ GeeArrayList* _tmp130_ = NULL;
+ GeeArrayList* _tmp131_ = NULL;
+ gint _photo_size = 0;
+ GeeArrayList* _tmp132_ = NULL;
+ gint _tmp133_ = 0;
+ gint _tmp134_ = 0;
+ gint _photo_index = 0;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp130_ = reimport_master;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp131_ = _g_object_ref0 (_tmp130_);
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_list = _tmp131_;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp132_ = _photo_list;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp133_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp132_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp134_ = _tmp133_;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_size = _tmp134_;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = -1;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 6934 "PhotoMonitor.c"
+ gint _tmp135_ = 0;
+ gint _tmp136_ = 0;
+ gint _tmp137_ = 0;
+ LibraryPhoto* photo = NULL;
+ GeeArrayList* _tmp138_ = NULL;
+ gint _tmp139_ = 0;
+ gpointer _tmp140_ = NULL;
+ GeeHashMap* _tmp141_ = NULL;
+ LibraryPhoto* _tmp142_ = NULL;
+ gboolean _tmp143_ = FALSE;
+ PhotoMonitorReimportMasterJob* job = NULL;
+ LibraryPhoto* _tmp144_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp145_ = NULL;
+ GeeHashMap* _tmp146_ = NULL;
+ LibraryPhoto* _tmp147_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp148_ = NULL;
+ Workers* _tmp149_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp150_ = NULL;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp135_ = _photo_index;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = _tmp135_ + 1;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp136_ = _photo_index;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp137_ = _photo_size;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!(_tmp136_ < _tmp137_)) {
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 6965 "PhotoMonitor.c"
+ }
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp138_ = _photo_list;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp139_ = _photo_index;
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp140_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp138_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp139_);
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = (LibraryPhoto*) _tmp140_;
+#line 1028 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp141_ = self->priv->master_reimport_pending;
+#line 1028 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp142_ = photo;
+#line 1028 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp143_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp141_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp142_);
+#line 1028 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (!_tmp143_, "!master_reimport_pending.has_key(photo)");
+#line 1030 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp144_ = photo;
+#line 1030 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp145_ = photo_monitor_reimport_master_job_new (self, _tmp144_);
+#line 1030 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = _tmp145_;
+#line 1031 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp146_ = self->priv->master_reimport_pending;
+#line 1031 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp147_ = photo;
+#line 1031 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp148_ = job;
+#line 1031 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp146_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp147_, _tmp148_);
+#line 1032 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp149_ = self->priv->workers;
+#line 1032 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp150_ = job;
+#line 1032 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ workers_enqueue (_tmp149_, G_TYPE_CHECK_INSTANCE_CAST (_tmp150_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 7007 "PhotoMonitor.c"
+ }
+#line 1027 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_photo_list);
+#line 7011 "PhotoMonitor.c"
+ }
+ }
+#line 1036 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp151_ = reimport_editable;
+#line 1036 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp151_ != NULL) {
+#line 7018 "PhotoMonitor.c"
+ GeeArrayList* _tmp152_ = NULL;
+ gint _tmp153_ = 0;
+ gint _tmp154_ = 0;
+ gchar* _tmp155_ = NULL;
+ gchar* _tmp156_ = NULL;
+#line 1037 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp152_ = reimport_editable;
+#line 1037 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp153_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp152_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1037 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp154_ = _tmp153_;
+#line 1037 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp155_ = g_strdup_printf ("Reimporting %d editables", _tmp154_);
+#line 1037 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp156_ = _tmp155_;
+#line 1037 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp156_);
+#line 1037 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp156_);
+#line 7038 "PhotoMonitor.c"
+ {
+ GeeArrayList* _photo_list = NULL;
+ GeeArrayList* _tmp157_ = NULL;
+ GeeArrayList* _tmp158_ = NULL;
+ gint _photo_size = 0;
+ GeeArrayList* _tmp159_ = NULL;
+ gint _tmp160_ = 0;
+ gint _tmp161_ = 0;
+ gint _photo_index = 0;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp157_ = reimport_editable;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp158_ = _g_object_ref0 (_tmp157_);
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_list = _tmp158_;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp159_ = _photo_list;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp160_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp159_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp161_ = _tmp160_;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_size = _tmp161_;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = -1;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 7066 "PhotoMonitor.c"
+ gint _tmp162_ = 0;
+ gint _tmp163_ = 0;
+ gint _tmp164_ = 0;
+ LibraryPhoto* photo = NULL;
+ GeeArrayList* _tmp165_ = NULL;
+ gint _tmp166_ = 0;
+ gpointer _tmp167_ = NULL;
+ GeeHashMap* _tmp168_ = NULL;
+ LibraryPhoto* _tmp169_ = NULL;
+ gboolean _tmp170_ = FALSE;
+ PhotoMonitorReimportEditableJob* job = NULL;
+ LibraryPhoto* _tmp171_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp172_ = NULL;
+ GeeHashMap* _tmp173_ = NULL;
+ LibraryPhoto* _tmp174_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp175_ = NULL;
+ Workers* _tmp176_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp177_ = NULL;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp162_ = _photo_index;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = _tmp162_ + 1;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp163_ = _photo_index;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp164_ = _photo_size;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!(_tmp163_ < _tmp164_)) {
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 7097 "PhotoMonitor.c"
+ }
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp165_ = _photo_list;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp166_ = _photo_index;
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp167_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp165_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp166_);
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = (LibraryPhoto*) _tmp167_;
+#line 1040 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp168_ = self->priv->editable_reimport_pending;
+#line 1040 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp169_ = photo;
+#line 1040 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp170_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp168_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp169_);
+#line 1040 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (!_tmp170_, "!editable_reimport_pending.has_key(photo)");
+#line 1042 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp171_ = photo;
+#line 1042 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp172_ = photo_monitor_reimport_editable_job_new (self, _tmp171_);
+#line 1042 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = _tmp172_;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp173_ = self->priv->editable_reimport_pending;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp174_ = photo;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp175_ = job;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp173_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp174_, _tmp175_);
+#line 1044 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp176_ = self->priv->workers;
+#line 1044 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp177_ = job;
+#line 1044 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ workers_enqueue (_tmp176_, G_TYPE_CHECK_INSTANCE_CAST (_tmp177_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 7139 "PhotoMonitor.c"
+ }
+#line 1039 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_photo_list);
+#line 7143 "PhotoMonitor.c"
+ }
+ }
+#line 1048 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp178_ = reimport_raw_developments;
+#line 1048 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp178_ != NULL) {
+#line 7150 "PhotoMonitor.c"
+ GeeArrayList* _tmp179_ = NULL;
+ gint _tmp180_ = 0;
+ gint _tmp181_ = 0;
+ gchar* _tmp182_ = NULL;
+ gchar* _tmp183_ = NULL;
+#line 1049 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp179_ = reimport_raw_developments;
+#line 1049 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp180_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp179_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1049 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp181_ = _tmp180_;
+#line 1049 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp182_ = g_strdup_printf ("Reimporting %d raw developments", _tmp181_);
+#line 1049 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp183_ = _tmp182_;
+#line 1049 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp183_);
+#line 1049 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp183_);
+#line 7170 "PhotoMonitor.c"
+ {
+ GeeArrayList* _photo_list = NULL;
+ GeeArrayList* _tmp184_ = NULL;
+ GeeArrayList* _tmp185_ = NULL;
+ gint _photo_size = 0;
+ GeeArrayList* _tmp186_ = NULL;
+ gint _tmp187_ = 0;
+ gint _tmp188_ = 0;
+ gint _photo_index = 0;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp184_ = reimport_raw_developments;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp185_ = _g_object_ref0 (_tmp184_);
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_list = _tmp185_;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp186_ = _photo_list;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp187_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp186_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp188_ = _tmp187_;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_size = _tmp188_;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = -1;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ while (TRUE) {
+#line 7198 "PhotoMonitor.c"
+ gint _tmp189_ = 0;
+ gint _tmp190_ = 0;
+ gint _tmp191_ = 0;
+ LibraryPhoto* photo = NULL;
+ GeeArrayList* _tmp192_ = NULL;
+ gint _tmp193_ = 0;
+ gpointer _tmp194_ = NULL;
+ GeeHashMap* _tmp195_ = NULL;
+ LibraryPhoto* _tmp196_ = NULL;
+ gboolean _tmp197_ = FALSE;
+ PhotoMonitorReimportRawDevelopmentJob* job = NULL;
+ LibraryPhoto* _tmp198_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp199_ = NULL;
+ GeeHashMap* _tmp200_ = NULL;
+ LibraryPhoto* _tmp201_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp202_ = NULL;
+ Workers* _tmp203_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp204_ = NULL;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp189_ = _photo_index;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_index = _tmp189_ + 1;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp190_ = _photo_index;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp191_ = _photo_size;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!(_tmp190_ < _tmp191_)) {
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ break;
+#line 7229 "PhotoMonitor.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp192_ = _photo_list;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp193_ = _photo_index;
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp194_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp192_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp193_);
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo = (LibraryPhoto*) _tmp194_;
+#line 1052 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp195_ = self->priv->raw_developments_reimport_pending;
+#line 1052 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp196_ = photo;
+#line 1052 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp197_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp195_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp196_);
+#line 1052 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (!_tmp197_, "!raw_developments_reimport_pending.has_key(photo)");
+#line 1054 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp198_ = photo;
+#line 1054 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp199_ = photo_monitor_reimport_raw_development_job_new (self, _tmp198_);
+#line 1054 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = _tmp199_;
+#line 1055 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp200_ = self->priv->raw_developments_reimport_pending;
+#line 1055 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp201_ = photo;
+#line 1055 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp202_ = job;
+#line 1055 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp200_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp201_, _tmp202_);
+#line 1056 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp203_ = self->priv->workers;
+#line 1056 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp204_ = job;
+#line 1056 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ workers_enqueue (_tmp203_, G_TYPE_CHECK_INSTANCE_CAST (_tmp204_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (photo);
+#line 7271 "PhotoMonitor.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_photo_list);
+#line 7275 "PhotoMonitor.c"
+ }
+ }
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_raw_developments);
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_editable);
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (reimport_master);
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (revert_to_master);
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_raw_developer_files);
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file_info);
+#line 913 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (set_editable_file);
+#line 7292 "PhotoMonitor.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 1062 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 7299 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_on_master_reimported (PhotoMonitor* self, BackgroundJob* j) {
+ PhotoMonitorReimportMasterJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp1_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp2_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ PhotoMonitorReimportMasterJob* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ PhotoMonitorReimportMasterJob* _tmp27_ = NULL;
+ LibraryPhoto* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ PhotoMonitorReimportMasterJob* _tmp32_ = NULL;
+ LibraryPhoto* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1061 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 1061 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1062 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = j;
+#line 1062 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, PhotoMonitorReimportMasterJob));
+#line 1062 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = _tmp1_;
+#line 1065 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = self->priv->master_reimport_pending;
+#line 1065 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = job;
+#line 1065 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp3_->photo;
+#line 1065 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, NULL);
+#line 1065 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ removed = _tmp5_;
+#line 1066 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = removed;
+#line 1066 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 1068 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = job;
+#line 1068 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = _tmp7_->err;
+#line 1068 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp8_ != NULL) {
+#line 7357 "PhotoMonitor.c"
+ PhotoMonitorReimportMasterJob* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = job;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = _tmp9_->photo;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = job;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_->err;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = _tmp14_->message;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("PhotoMonitor.vala:1069: Unable to reimport %s due to master file chang" \
+"ing: %s", _tmp12_, _tmp15_);
+#line 1069 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp12_);
+#line 1072 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = job;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_->photo;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_MONITORABLE, Monitorable));
+#line 1074 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1074 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7395 "PhotoMonitor.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = job;
+#line 1077 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = _tmp18_->mark_online;
+#line 1077 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (!_tmp19_) {
+#line 7403 "PhotoMonitor.c"
+ PhotoMonitorReimportMasterJob* _tmp20_ = NULL;
+ LibraryPhoto* _tmp21_ = NULL;
+#line 1079 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = job;
+#line 1079 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = _tmp20_->photo;
+#line 1079 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_MONITORABLE, Monitorable));
+#line 1081 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1081 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7416 "PhotoMonitor.c"
+ }
+ {
+ PhotoMonitorReimportMasterJob* _tmp22_ = NULL;
+ LibraryPhoto* _tmp23_ = NULL;
+ PhotoMonitorReimportMasterJob* _tmp24_ = NULL;
+ PhotoReimportMasterState* _tmp25_ = NULL;
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = job;
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = _tmp22_->photo;
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = job;
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = _tmp24_->reimport_state;
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_finish_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_PHOTO, Photo), _tmp25_, &_inner_error_);
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 7437 "PhotoMonitor.c"
+ goto __catch574_database_error;
+ }
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1085 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7448 "PhotoMonitor.c"
+ }
+ }
+ goto __finally574;
+ __catch574_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp26_ = NULL;
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 1087 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = err;
+#line 1087 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ app_window_database_error (_tmp26_);
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 7466 "PhotoMonitor.c"
+ }
+ __finally574:
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1084 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7479 "PhotoMonitor.c"
+ }
+#line 1091 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp27_ = job;
+#line 1091 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp28_ = _tmp27_->photo;
+#line 1091 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp29_ = media_source_is_offline (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1091 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp29_) {
+#line 7489 "PhotoMonitor.c"
+ PhotoMonitorReimportMasterJob* _tmp30_ = NULL;
+ LibraryPhoto* _tmp31_ = NULL;
+#line 1092 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp30_ = job;
+#line 1092 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp31_ = _tmp30_->photo;
+#line 1092 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_update_online (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_MONITORABLE, Monitorable));
+#line 7498 "PhotoMonitor.c"
+ }
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp32_ = job;
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp33_ = _tmp32_->photo;
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp34_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_DATA_OBJECT, DataObject));
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp35_ = _tmp34_;
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp36_ = g_strdup_printf ("Reimported master for %s", _tmp35_);
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp37_ = _tmp36_;
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp37_);
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp37_);
+#line 1094 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp35_);
+#line 1061 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 7520 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_on_master_reimport_cancelled (PhotoMonitor* self, BackgroundJob* j) {
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1097 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 1097 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1098 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->priv->master_reimport_pending;
+#line 1098 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = j;
+#line 1098 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, PhotoMonitorReimportMasterJob)->photo;
+#line 1098 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, NULL);
+#line 1098 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ removed = _tmp3_;
+#line 1099 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (removed, "removed");
+#line 7546 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_on_editable_reimported (PhotoMonitor* self, BackgroundJob* j) {
+ PhotoMonitorReimportEditableJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp1_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp2_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ PhotoMonitorReimportEditableJob* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp21_ = NULL;
+ LibraryPhoto* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1102 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 1102 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1103 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = j;
+#line 1103 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, PhotoMonitorReimportEditableJob));
+#line 1103 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = _tmp1_;
+#line 1106 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = self->priv->editable_reimport_pending;
+#line 1106 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = job;
+#line 1106 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp3_->photo;
+#line 1106 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, NULL);
+#line 1106 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ removed = _tmp5_;
+#line 1107 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = removed;
+#line 1107 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 1109 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = job;
+#line 1109 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = _tmp7_->err;
+#line 1109 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp8_ != NULL) {
+#line 7599 "PhotoMonitor.c"
+ PhotoMonitorReimportEditableJob* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = job;
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = _tmp9_->photo;
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = job;
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_->err;
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = _tmp14_->message;
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("PhotoMonitor.vala:1110: Unable to reimport editable %s: %s", _tmp12_, _tmp15_);
+#line 1110 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp12_);
+#line 1112 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1112 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7629 "PhotoMonitor.c"
+ }
+ {
+ PhotoMonitorReimportEditableJob* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ PhotoMonitorReimportEditableJob* _tmp18_ = NULL;
+ PhotoReimportEditableState* _tmp19_ = NULL;
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = job;
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_->photo;
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = job;
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = _tmp18_->state;
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_finish_reimport_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_PHOTO, Photo), _tmp19_, &_inner_error_);
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 7650 "PhotoMonitor.c"
+ goto __catch575_database_error;
+ }
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1116 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7661 "PhotoMonitor.c"
+ }
+ }
+ goto __finally575;
+ __catch575_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp20_ = NULL;
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 1118 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = err;
+#line 1118 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ app_window_database_error (_tmp20_);
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 7679 "PhotoMonitor.c"
+ }
+ __finally575:
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1115 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7692 "PhotoMonitor.c"
+ }
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = job;
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = _tmp21_->photo;
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_OBJECT, DataObject));
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = g_strdup_printf ("Reimported editable for %s", _tmp24_);
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = _tmp25_;
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp26_);
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp26_);
+#line 1121 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp24_);
+#line 1102 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 7714 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_on_editable_reimport_cancelled (PhotoMonitor* self, BackgroundJob* j) {
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1124 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 1124 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1125 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->priv->editable_reimport_pending;
+#line 1125 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = j;
+#line 1125 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, PhotoMonitorReimportEditableJob)->photo;
+#line 1125 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, NULL);
+#line 1125 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ removed = _tmp3_;
+#line 1126 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (removed, "removed");
+#line 7740 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_on_raw_development_reimported (PhotoMonitor* self, BackgroundJob* j) {
+ PhotoMonitorReimportRawDevelopmentJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp1_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp2_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp21_ = NULL;
+ LibraryPhoto* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1129 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 1129 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = j;
+#line 1130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, PhotoMonitorReimportRawDevelopmentJob));
+#line 1130 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ job = _tmp1_;
+#line 1133 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = self->priv->raw_developments_reimport_pending;
+#line 1133 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = job;
+#line 1133 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = _tmp3_->photo;
+#line 1133 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, NULL);
+#line 1133 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ removed = _tmp5_;
+#line 1134 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = removed;
+#line 1134 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 1136 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp7_ = job;
+#line 1136 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp8_ = _tmp7_->err;
+#line 1136 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_tmp8_ != NULL) {
+#line 7793 "PhotoMonitor.c"
+ PhotoMonitorReimportRawDevelopmentJob* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp9_ = job;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp10_ = _tmp9_->photo;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp12_ = _tmp11_;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp13_ = job;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp14_ = _tmp13_->err;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp15_ = _tmp14_->message;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("PhotoMonitor.vala:1137: Unable to reimport raw development %s: %s", _tmp12_, _tmp15_);
+#line 1137 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp12_);
+#line 1139 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1139 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7823 "PhotoMonitor.c"
+ }
+ {
+ PhotoMonitorReimportRawDevelopmentJob* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ PhotoMonitorReimportRawDevelopmentJob* _tmp18_ = NULL;
+ PhotoReimportRawDevelopmentState* _tmp19_ = NULL;
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp16_ = job;
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp17_ = _tmp16_->photo;
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp18_ = job;
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp19_ = _tmp18_->state;
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_finish_reimport_raw_development (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_PHOTO, Photo), _tmp19_, &_inner_error_);
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 7844 "PhotoMonitor.c"
+ goto __catch576_database_error;
+ }
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1143 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7855 "PhotoMonitor.c"
+ }
+ }
+ goto __finally576;
+ __catch576_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp20_ = NULL;
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 1145 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp20_ = err;
+#line 1145 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ app_window_database_error (_tmp20_);
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 7873 "PhotoMonitor.c"
+ }
+ __finally576:
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 1142 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 7886 "PhotoMonitor.c"
+ }
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp21_ = job;
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp22_ = _tmp21_->photo;
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp23_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_OBJECT, DataObject));
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp24_ = _tmp23_;
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp25_ = g_strdup_printf ("Reimported raw development for %s", _tmp24_);
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp26_ = _tmp25_;
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ media_monitor_mdbg (_tmp26_);
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp26_);
+#line 1148 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_free0 (_tmp24_);
+#line 1129 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _background_job_unref0 (job);
+#line 7908 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_on_raw_development_reimport_cancelled (PhotoMonitor* self, BackgroundJob* j) {
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1151 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_PHOTO_MONITOR (self));
+#line 1151 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 1152 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = self->priv->raw_developments_reimport_pending;
+#line 1152 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = j;
+#line 1152 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, PhotoMonitorReimportRawDevelopmentJob)->photo;
+#line 1152 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, NULL);
+#line 1152 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ removed = _tmp3_;
+#line 1153 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _vala_assert (removed, "removed");
+#line 7934 "PhotoMonitor.c"
+}
+
+
+static void _photo_monitor_on_master_reimported_completion_callback (BackgroundJob* job, gpointer self) {
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_on_master_reimported ((PhotoMonitor*) self, job);
+#line 7941 "PhotoMonitor.c"
+}
+
+
+static void _photo_monitor_on_master_reimport_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_on_master_reimport_cancelled ((PhotoMonitor*) self, job);
+#line 7948 "PhotoMonitor.c"
+}
+
+
+static PhotoMonitorReimportMasterJob* photo_monitor_reimport_master_job_construct (GType object_type, PhotoMonitor* owner, LibraryPhoto* photo) {
+ PhotoMonitorReimportMasterJob* self = NULL;
+ PhotoMonitor* _tmp0_ = NULL;
+ PhotoMonitor* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ PhotoMonitor* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ LibraryPhoto* _tmp6_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (owner), NULL);
+#line 167 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = owner;
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = owner;
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = g_cancellable_new ();
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = owner;
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = (PhotoMonitorReimportMasterJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _photo_monitor_on_master_reimported_completion_callback, _tmp1_, _tmp3_, _photo_monitor_on_master_reimport_cancelled_cancellation_callback, _tmp4_, NULL);
+#line 168 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 171 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 171 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 171 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 171 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->photo = _tmp6_;
+#line 167 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self;
+#line 7989 "PhotoMonitor.c"
+}
+
+
+static PhotoMonitorReimportMasterJob* photo_monitor_reimport_master_job_new (PhotoMonitor* owner, LibraryPhoto* photo) {
+#line 167 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return photo_monitor_reimport_master_job_construct (PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, owner, photo);
+#line 7996 "PhotoMonitor.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 178 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 8003 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_master_job_real_execute (BackgroundJob* base) {
+ PhotoMonitorReimportMasterJob * self;
+ GError * _inner_error_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, PhotoMonitorReimportMasterJob);
+#line 8012 "PhotoMonitor.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ LibraryPhoto* _tmp1_ = NULL;
+ PhotoReimportMasterState* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 176 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = self->photo;
+#line 176 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo_prepare_for_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), &_tmp2_, &_inner_error_);
+#line 176 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_reimport_master_state_unref0 (self->reimport_state);
+#line 176 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_state = _tmp2_;
+#line 176 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp3_;
+#line 176 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8030 "PhotoMonitor.c"
+ goto __catch577_g_error;
+ }
+#line 176 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->mark_online = _tmp0_;
+#line 8035 "PhotoMonitor.c"
+ }
+ goto __finally577;
+ __catch577_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+ GError* _tmp5_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 175 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = err;
+#line 178 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = _g_error_copy0 (_tmp4_);
+#line 178 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (self->err);
+#line 178 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->err = _tmp5_;
+#line 175 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 8057 "PhotoMonitor.c"
+ }
+ __finally577:
+#line 175 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 175 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 175 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 175 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 8068 "PhotoMonitor.c"
+ }
+}
+
+
+static void photo_monitor_reimport_master_job_class_init (PhotoMonitorReimportMasterJobClass * klass) {
+#line 161 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_reimport_master_job_parent_class = g_type_class_peek_parent (klass);
+#line 161 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((BackgroundJobClass *) klass)->finalize = photo_monitor_reimport_master_job_finalize;
+#line 161 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((BackgroundJobClass *) klass)->execute = photo_monitor_reimport_master_job_real_execute;
+#line 8080 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_master_job_instance_init (PhotoMonitorReimportMasterJob * self) {
+#line 163 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->reimport_state = NULL;
+#line 164 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->mark_online = FALSE;
+#line 165 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->err = NULL;
+#line 8091 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_master_job_finalize (BackgroundJob* obj) {
+ PhotoMonitorReimportMasterJob * self;
+#line 161 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, PhotoMonitorReimportMasterJob);
+#line 162 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 163 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_reimport_master_state_unref0 (self->reimport_state);
+#line 165 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (self->err);
+#line 161 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ BACKGROUND_JOB_CLASS (photo_monitor_reimport_master_job_parent_class)->finalize (obj);
+#line 8107 "PhotoMonitor.c"
+}
+
+
+static GType photo_monitor_reimport_master_job_get_type (void) {
+ static volatile gsize photo_monitor_reimport_master_job_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_monitor_reimport_master_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoMonitorReimportMasterJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_monitor_reimport_master_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoMonitorReimportMasterJob), 0, (GInstanceInitFunc) photo_monitor_reimport_master_job_instance_init, NULL };
+ GType photo_monitor_reimport_master_job_type_id;
+ photo_monitor_reimport_master_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "PhotoMonitorReimportMasterJob", &g_define_type_info, 0);
+ g_once_init_leave (&photo_monitor_reimport_master_job_type_id__volatile, photo_monitor_reimport_master_job_type_id);
+ }
+ return photo_monitor_reimport_master_job_type_id__volatile;
+}
+
+
+static void _photo_monitor_on_editable_reimported_completion_callback (BackgroundJob* job, gpointer self) {
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_on_editable_reimported ((PhotoMonitor*) self, job);
+#line 8126 "PhotoMonitor.c"
+}
+
+
+static void _photo_monitor_on_editable_reimport_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_on_editable_reimport_cancelled ((PhotoMonitor*) self, job);
+#line 8133 "PhotoMonitor.c"
+}
+
+
+static PhotoMonitorReimportEditableJob* photo_monitor_reimport_editable_job_construct (GType object_type, PhotoMonitor* owner, LibraryPhoto* photo) {
+ PhotoMonitorReimportEditableJob* self = NULL;
+ PhotoMonitor* _tmp0_ = NULL;
+ PhotoMonitor* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ PhotoMonitor* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ LibraryPhoto* _tmp6_ = NULL;
+#line 189 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (owner), NULL);
+#line 189 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = owner;
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = owner;
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = g_cancellable_new ();
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = owner;
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = (PhotoMonitorReimportEditableJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _photo_monitor_on_editable_reimported_completion_callback, _tmp1_, _tmp3_, _photo_monitor_on_editable_reimport_cancelled_cancellation_callback, _tmp4_, NULL);
+#line 190 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 193 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 193 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 193 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 193 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->photo = _tmp6_;
+#line 189 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self;
+#line 8174 "PhotoMonitor.c"
+}
+
+
+static PhotoMonitorReimportEditableJob* photo_monitor_reimport_editable_job_new (PhotoMonitor* owner, LibraryPhoto* photo) {
+#line 189 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return photo_monitor_reimport_editable_job_construct (PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, owner, photo);
+#line 8181 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_editable_job_real_execute (BackgroundJob* base) {
+ PhotoMonitorReimportEditableJob * self;
+ GError * _inner_error_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, PhotoMonitorReimportEditableJob);
+#line 8190 "PhotoMonitor.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ LibraryPhoto* _tmp1_ = NULL;
+ PhotoReimportEditableState* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 198 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = self->photo;
+#line 198 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo_prepare_for_reimport_editable (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), &_tmp2_, &_inner_error_);
+#line 198 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_reimport_editable_state_unref0 (self->state);
+#line 198 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->state = _tmp2_;
+#line 198 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp3_;
+#line 198 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8208 "PhotoMonitor.c"
+ goto __catch578_g_error;
+ }
+#line 198 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->success = _tmp0_;
+#line 8213 "PhotoMonitor.c"
+ }
+ goto __finally578;
+ __catch578_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+ GError* _tmp5_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 197 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = err;
+#line 200 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = _g_error_copy0 (_tmp4_);
+#line 200 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (self->err);
+#line 200 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->err = _tmp5_;
+#line 197 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 8235 "PhotoMonitor.c"
+ }
+ __finally578:
+#line 197 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 197 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 197 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 197 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 8246 "PhotoMonitor.c"
+ }
+}
+
+
+static void photo_monitor_reimport_editable_job_class_init (PhotoMonitorReimportEditableJobClass * klass) {
+#line 183 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_reimport_editable_job_parent_class = g_type_class_peek_parent (klass);
+#line 183 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((BackgroundJobClass *) klass)->finalize = photo_monitor_reimport_editable_job_finalize;
+#line 183 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((BackgroundJobClass *) klass)->execute = photo_monitor_reimport_editable_job_real_execute;
+#line 8258 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_editable_job_instance_init (PhotoMonitorReimportEditableJob * self) {
+#line 185 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->state = NULL;
+#line 186 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->success = FALSE;
+#line 187 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->err = NULL;
+#line 8269 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_editable_job_finalize (BackgroundJob* obj) {
+ PhotoMonitorReimportEditableJob * self;
+#line 183 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, PhotoMonitorReimportEditableJob);
+#line 184 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 185 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_reimport_editable_state_unref0 (self->state);
+#line 187 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (self->err);
+#line 183 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ BACKGROUND_JOB_CLASS (photo_monitor_reimport_editable_job_parent_class)->finalize (obj);
+#line 8285 "PhotoMonitor.c"
+}
+
+
+static GType photo_monitor_reimport_editable_job_get_type (void) {
+ static volatile gsize photo_monitor_reimport_editable_job_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_monitor_reimport_editable_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoMonitorReimportEditableJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_monitor_reimport_editable_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoMonitorReimportEditableJob), 0, (GInstanceInitFunc) photo_monitor_reimport_editable_job_instance_init, NULL };
+ GType photo_monitor_reimport_editable_job_type_id;
+ photo_monitor_reimport_editable_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "PhotoMonitorReimportEditableJob", &g_define_type_info, 0);
+ g_once_init_leave (&photo_monitor_reimport_editable_job_type_id__volatile, photo_monitor_reimport_editable_job_type_id);
+ }
+ return photo_monitor_reimport_editable_job_type_id__volatile;
+}
+
+
+static void _photo_monitor_on_raw_development_reimported_completion_callback (BackgroundJob* job, gpointer self) {
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_on_raw_development_reimported ((PhotoMonitor*) self, job);
+#line 8304 "PhotoMonitor.c"
+}
+
+
+static void _photo_monitor_on_raw_development_reimport_cancelled_cancellation_callback (BackgroundJob* job, gpointer self) {
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_on_raw_development_reimport_cancelled ((PhotoMonitor*) self, job);
+#line 8311 "PhotoMonitor.c"
+}
+
+
+static PhotoMonitorReimportRawDevelopmentJob* photo_monitor_reimport_raw_development_job_construct (GType object_type, PhotoMonitor* owner, LibraryPhoto* photo) {
+ PhotoMonitorReimportRawDevelopmentJob* self = NULL;
+ PhotoMonitor* _tmp0_ = NULL;
+ PhotoMonitor* _tmp1_ = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ PhotoMonitor* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ LibraryPhoto* _tmp6_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_PHOTO_MONITOR (owner), NULL);
+#line 211 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO (photo), NULL);
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = owner;
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = owner;
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = g_cancellable_new ();
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = owner;
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = (PhotoMonitorReimportRawDevelopmentJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _photo_monitor_on_raw_development_reimported_completion_callback, _tmp1_, _tmp3_, _photo_monitor_on_raw_development_reimport_cancelled_cancellation_callback, _tmp4_, NULL);
+#line 212 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 215 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = photo;
+#line 215 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 215 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 215 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->photo = _tmp6_;
+#line 211 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return self;
+#line 8352 "PhotoMonitor.c"
+}
+
+
+static PhotoMonitorReimportRawDevelopmentJob* photo_monitor_reimport_raw_development_job_new (PhotoMonitor* owner, LibraryPhoto* photo) {
+#line 211 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return photo_monitor_reimport_raw_development_job_construct (PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, owner, photo);
+#line 8359 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_raw_development_job_real_execute (BackgroundJob* base) {
+ PhotoMonitorReimportRawDevelopmentJob * self;
+ GError * _inner_error_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, PhotoMonitorReimportRawDevelopmentJob);
+#line 8368 "PhotoMonitor.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ LibraryPhoto* _tmp1_ = NULL;
+ PhotoReimportRawDevelopmentState* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 220 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = self->photo;
+#line 220 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = photo_prepare_for_reimport_raw_development (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), &_tmp2_, &_inner_error_);
+#line 220 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_reimport_raw_development_state_unref0 (self->state);
+#line 220 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->state = _tmp2_;
+#line 220 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = _tmp3_;
+#line 220 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8386 "PhotoMonitor.c"
+ goto __catch579_g_error;
+ }
+#line 220 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->success = _tmp0_;
+#line 8391 "PhotoMonitor.c"
+ }
+ goto __finally579;
+ __catch579_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+ GError* _tmp5_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ err = _inner_error_;
+#line 219 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _inner_error_ = NULL;
+#line 222 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = err;
+#line 222 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp5_ = _g_error_copy0 (_tmp4_);
+#line 222 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (self->err);
+#line 222 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->err = _tmp5_;
+#line 219 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (err);
+#line 8413 "PhotoMonitor.c"
+ }
+ __finally579:
+#line 219 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 219 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 219 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_clear_error (&_inner_error_);
+#line 219 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ return;
+#line 8424 "PhotoMonitor.c"
+ }
+}
+
+
+static void photo_monitor_reimport_raw_development_job_class_init (PhotoMonitorReimportRawDevelopmentJobClass * klass) {
+#line 205 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_reimport_raw_development_job_parent_class = g_type_class_peek_parent (klass);
+#line 205 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((BackgroundJobClass *) klass)->finalize = photo_monitor_reimport_raw_development_job_finalize;
+#line 205 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((BackgroundJobClass *) klass)->execute = photo_monitor_reimport_raw_development_job_real_execute;
+#line 8436 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_raw_development_job_instance_init (PhotoMonitorReimportRawDevelopmentJob * self) {
+#line 207 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->state = NULL;
+#line 208 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->success = FALSE;
+#line 209 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->err = NULL;
+#line 8447 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_reimport_raw_development_job_finalize (BackgroundJob* obj) {
+ PhotoMonitorReimportRawDevelopmentJob * self;
+#line 205 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, PhotoMonitorReimportRawDevelopmentJob);
+#line 206 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->photo);
+#line 207 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _photo_reimport_raw_development_state_unref0 (self->state);
+#line 209 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_error_free0 (self->err);
+#line 205 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ BACKGROUND_JOB_CLASS (photo_monitor_reimport_raw_development_job_parent_class)->finalize (obj);
+#line 8463 "PhotoMonitor.c"
+}
+
+
+static GType photo_monitor_reimport_raw_development_job_get_type (void) {
+ static volatile gsize photo_monitor_reimport_raw_development_job_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_monitor_reimport_raw_development_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoMonitorReimportRawDevelopmentJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_monitor_reimport_raw_development_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoMonitorReimportRawDevelopmentJob), 0, (GInstanceInitFunc) photo_monitor_reimport_raw_development_job_instance_init, NULL };
+ GType photo_monitor_reimport_raw_development_job_type_id;
+ photo_monitor_reimport_raw_development_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "PhotoMonitorReimportRawDevelopmentJob", &g_define_type_info, 0);
+ g_once_init_leave (&photo_monitor_reimport_raw_development_job_type_id__volatile, photo_monitor_reimport_raw_development_job_type_id);
+ }
+ return photo_monitor_reimport_raw_development_job_type_id__volatile;
+}
+
+
+static void photo_monitor_class_init (PhotoMonitorClass * klass) {
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ photo_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ g_type_class_add_private (klass, sizeof (PhotoMonitorPrivate));
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->create_updates = photo_monitor_real_create_updates;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->get_media_source_collection = photo_monitor_real_get_media_source_collection;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->is_file_represented = photo_monitor_real_is_file_represented;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->close = photo_monitor_real_close;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_discovered = photo_monitor_real_notify_file_discovered;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->candidates_for_unknown_file = photo_monitor_real_candidates_for_unknown_file;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->get_auxilliary_backing_files = photo_monitor_real_get_auxilliary_backing_files;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->update_backing_file_info = photo_monitor_real_update_backing_file_info;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_discovery_completing = photo_monitor_real_notify_discovery_completing;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_created = photo_monitor_real_notify_file_created;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_moved = photo_monitor_real_notify_file_moved;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_altered = photo_monitor_real_notify_file_altered;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_attributes_altered = photo_monitor_real_notify_file_attributes_altered;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_alteration_completed = photo_monitor_real_notify_file_alteration_completed;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_deleted = photo_monitor_real_notify_file_deleted;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->on_media_source_destroyed = photo_monitor_real_on_media_source_destroyed;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ ((MediaMonitorClass *) klass)->process_updates = photo_monitor_real_process_updates;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ G_OBJECT_CLASS (klass)->finalize = photo_monitor_finalize;
+#line 8520 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_instance_init (PhotoMonitor * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->priv = PHOTO_MONITOR_GET_PRIVATE (self);
+#line 228 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp0_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 228 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->priv->matched_editables = _tmp0_;
+#line 229 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp1_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 229 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->priv->matched_developments = _tmp1_;
+#line 230 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp2_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, PHOTO_MONITOR_TYPE_REIMPORT_MASTER_JOB, (GBoxedCopyFunc) background_job_ref, background_job_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 230 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->priv->master_reimport_pending = _tmp2_;
+#line 232 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp3_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, PHOTO_MONITOR_TYPE_REIMPORT_EDITABLE_JOB, (GBoxedCopyFunc) background_job_ref, background_job_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 232 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->priv->editable_reimport_pending = _tmp3_;
+#line 234 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _tmp4_ = gee_hash_map_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, PHOTO_MONITOR_TYPE_REIMPORT_RAW_DEVELOPMENT_JOB, (GBoxedCopyFunc) background_job_ref, background_job_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 234 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self->priv->raw_developments_reimport_pending = _tmp4_;
+#line 8552 "PhotoMonitor.c"
+}
+
+
+static void photo_monitor_finalize (GObject* obj) {
+ PhotoMonitor * self;
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_MONITOR, PhotoMonitor);
+#line 227 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _workers_unref0 (self->priv->workers);
+#line 228 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->priv->matched_editables);
+#line 229 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->priv->matched_developments);
+#line 230 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->priv->master_reimport_pending);
+#line 232 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->priv->editable_reimport_pending);
+#line 234 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ _g_object_unref0 (self->priv->raw_developments_reimport_pending);
+#line 157 "/home/jens/Source/shotwell/src/PhotoMonitor.vala"
+ G_OBJECT_CLASS (photo_monitor_parent_class)->finalize (obj);
+#line 8574 "PhotoMonitor.c"
+}
+
+
+GType photo_monitor_get_type (void) {
+ static volatile gsize photo_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_monitor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoMonitor), 0, (GInstanceInitFunc) photo_monitor_instance_init, NULL };
+ GType photo_monitor_type_id;
+ photo_monitor_type_id = g_type_register_static (TYPE_MEDIA_MONITOR, "PhotoMonitor", &g_define_type_info, 0);
+ g_once_init_leave (&photo_monitor_type_id__volatile, photo_monitor_type_id);
+ }
+ return photo_monitor_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/PhotoPage.c b/src/PhotoPage.c
new file mode 100644
index 0000000..ceeb0ec
--- /dev/null
+++ b/src/PhotoPage.c
@@ -0,0 +1,22228 @@
+/* PhotoPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from PhotoPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <cairo.h>
+#include <string.h>
+#include <stdlib.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+#include <pango/pango.h>
+#include <time.h>
+
+
+#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ())
+#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer))
+#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER))
+#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER))
+#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+
+typedef struct _ZoomBuffer ZoomBuffer;
+typedef struct _ZoomBufferClass ZoomBufferClass;
+typedef struct _ZoomBufferPrivate ZoomBufferPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define ZOOM_BUFFER_TYPE_OBJECT_STATE (zoom_buffer_object_state_get_type ())
+
+#define TYPE_ZOOM_STATE (zoom_state_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _ZoomState ZoomState;
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB (zoom_buffer_transformation_job_get_type ())
+#define ZOOM_BUFFER_TRANSFORMATION_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJob))
+#define ZOOM_BUFFER_TRANSFORMATION_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJobClass))
+#define ZOOM_BUFFER_IS_TRANSFORMATION_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB))
+#define ZOOM_BUFFER_IS_TRANSFORMATION_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB))
+#define ZOOM_BUFFER_TRANSFORMATION_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJobClass))
+
+typedef struct _ZoomBufferTransformationJob ZoomBufferTransformationJob;
+typedef struct _ZoomBufferTransformationJobClass ZoomBufferTransformationJobClass;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+
+#define ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB (zoom_buffer_iso_source_fetch_job_get_type ())
+#define ZOOM_BUFFER_ISO_SOURCE_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, ZoomBufferIsoSourceFetchJob))
+#define ZOOM_BUFFER_ISO_SOURCE_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, ZoomBufferIsoSourceFetchJobClass))
+#define ZOOM_BUFFER_IS_ISO_SOURCE_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB))
+#define ZOOM_BUFFER_IS_ISO_SOURCE_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB))
+#define ZOOM_BUFFER_ISO_SOURCE_FETCH_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, ZoomBufferIsoSourceFetchJobClass))
+
+typedef struct _ZoomBufferIsoSourceFetchJob ZoomBufferIsoSourceFetchJob;
+typedef struct _ZoomBufferIsoSourceFetchJobClass ZoomBufferIsoSourceFetchJobClass;
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _ZoomBufferIsoSourceFetchJobPrivate ZoomBufferIsoSourceFetchJobPrivate;
+
+#define TYPE_DIRECTION (direction_get_type ())
+
+#define TYPE_PIXEL_TRANSFORMER (pixel_transformer_get_type ())
+#define PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformer))
+#define PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+#define IS_PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMER))
+#define IS_PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMER))
+#define PIXEL_TRANSFORMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+
+typedef struct _PixelTransformer PixelTransformer;
+typedef struct _PixelTransformerClass PixelTransformerClass;
+#define _pixel_transformer_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformer_unref (var), NULL)))
+typedef struct _ZoomBufferTransformationJobPrivate ZoomBufferTransformationJobPrivate;
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate;
+
+#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())
+
+#define TYPE_EDITING_HOST_PAGE (editing_host_page_get_type ())
+#define EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPage))
+#define EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+#define IS_EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDITING_HOST_PAGE))
+#define IS_EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDITING_HOST_PAGE))
+#define EDITING_HOST_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+
+typedef struct _EditingHostPage EditingHostPage;
+typedef struct _EditingHostPageClass EditingHostPageClass;
+typedef struct _EditingHostPagePrivate EditingHostPagePrivate;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define EDITING_TOOLS_TYPE_EDITING_TOOL (editing_tools_editing_tool_get_type ())
+#define EDITING_TOOLS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool))
+#define EDITING_TOOLS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))
+#define EDITING_TOOLS_IS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL))
+#define EDITING_TOOLS_IS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL))
+#define EDITING_TOOLS_EDITING_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))
+
+typedef struct _EditingToolsEditingTool EditingToolsEditingTool;
+typedef struct _EditingToolsEditingToolClass EditingToolsEditingToolClass;
+
+#define TYPE_PIXBUF_CACHE (pixbuf_cache_get_type ())
+#define PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXBUF_CACHE, PixbufCache))
+#define PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXBUF_CACHE, PixbufCacheClass))
+#define IS_PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXBUF_CACHE))
+#define IS_PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXBUF_CACHE))
+#define PIXBUF_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXBUF_CACHE, PixbufCacheClass))
+
+typedef struct _PixbufCache PixbufCache;
+typedef struct _PixbufCacheClass PixbufCacheClass;
+
+#define TYPE_DRAG_AND_DROP_HANDLER (drag_and_drop_handler_get_type ())
+#define DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandler))
+#define DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))
+#define IS_DRAG_AND_DROP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DRAG_AND_DROP_HANDLER))
+#define IS_DRAG_AND_DROP_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DRAG_AND_DROP_HANDLER))
+#define DRAG_AND_DROP_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DRAG_AND_DROP_HANDLER, DragAndDropHandlerClass))
+
+typedef struct _DragAndDropHandler DragAndDropHandler;
+typedef struct _DragAndDropHandlerClass DragAndDropHandlerClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _editing_tools_editing_tool_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_editing_tool_unref (var), NULL)))
+#define _drag_and_drop_handler_unref0(var) ((var == NULL) ? NULL : (var = (drag_and_drop_handler_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define PIXBUF_CACHE_TYPE_PHOTO_TYPE (pixbuf_cache_photo_type_get_type ())
+
+#define PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH (pixbuf_cache_pixbuf_cache_batch_get_type ())
+#define PIXBUF_CACHE_PIXBUF_CACHE_BATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH, PixbufCachePixbufCacheBatch))
+#define PIXBUF_CACHE_PIXBUF_CACHE_BATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH, PixbufCachePixbufCacheBatchClass))
+#define PIXBUF_CACHE_IS_PIXBUF_CACHE_BATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH))
+#define PIXBUF_CACHE_IS_PIXBUF_CACHE_BATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH))
+#define PIXBUF_CACHE_PIXBUF_CACHE_BATCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH, PixbufCachePixbufCacheBatchClass))
+
+typedef struct _PixbufCachePixbufCacheBatch PixbufCachePixbufCacheBatch;
+typedef struct _PixbufCachePixbufCacheBatchClass PixbufCachePixbufCacheBatchClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_PHOTO_VIEW (photo_view_get_type ())
+#define PHOTO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_VIEW, PhotoView))
+#define PHOTO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_VIEW, PhotoViewClass))
+#define IS_PHOTO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_VIEW))
+#define IS_PHOTO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_VIEW))
+#define PHOTO_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_VIEW, PhotoViewClass))
+
+typedef struct _PhotoView PhotoView;
+typedef struct _PhotoViewClass PhotoViewClass;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define EDITING_TOOLS_TYPE_PHOTO_CANVAS (editing_tools_photo_canvas_get_type ())
+#define EDITING_TOOLS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvas))
+#define EDITING_TOOLS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))
+#define EDITING_TOOLS_IS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
+#define EDITING_TOOLS_IS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
+#define EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))
+
+typedef struct _EditingToolsPhotoCanvas EditingToolsPhotoCanvas;
+typedef struct _EditingToolsPhotoCanvasClass EditingToolsPhotoCanvasClass;
+
+#define EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS (editing_host_page_editing_host_canvas_get_type ())
+#define EDITING_HOST_PAGE_EDITING_HOST_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS, EditingHostPageEditingHostCanvas))
+#define EDITING_HOST_PAGE_EDITING_HOST_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS, EditingHostPageEditingHostCanvasClass))
+#define EDITING_HOST_PAGE_IS_EDITING_HOST_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS))
+#define EDITING_HOST_PAGE_IS_EDITING_HOST_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS))
+#define EDITING_HOST_PAGE_EDITING_HOST_CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS, EditingHostPageEditingHostCanvasClass))
+
+typedef struct _EditingHostPageEditingHostCanvas EditingHostPageEditingHostCanvas;
+typedef struct _EditingHostPageEditingHostCanvasClass EditingHostPageEditingHostCanvasClass;
+#define _editing_tools_photo_canvas_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_photo_canvas_unref (var), NULL)))
+
+#define EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW (editing_tools_editing_tool_window_get_type ())
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow))
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))
+#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
+#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))
+
+typedef struct _EditingToolsEditingToolWindow EditingToolsEditingToolWindow;
+typedef struct _EditingToolsEditingToolWindowClass EditingToolsEditingToolWindowClass;
+typedef struct _EditingToolsEditingToolPrivate EditingToolsEditingToolPrivate;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_ROTATION (rotation_get_type ())
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+
+#define TYPE_ROTATE_SINGLE_COMMAND (rotate_single_command_get_type ())
+#define ROTATE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommand))
+#define ROTATE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommandClass))
+#define IS_ROTATE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ROTATE_SINGLE_COMMAND))
+#define IS_ROTATE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ROTATE_SINGLE_COMMAND))
+#define ROTATE_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ROTATE_SINGLE_COMMAND, RotateSingleCommandClass))
+
+typedef struct _RotateSingleCommand RotateSingleCommand;
+typedef struct _RotateSingleCommandClass RotateSingleCommandClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND (generic_photo_transformation_command_get_type ())
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+
+typedef struct _GenericPhotoTransformationCommand GenericPhotoTransformationCommand;
+typedef struct _GenericPhotoTransformationCommandClass GenericPhotoTransformationCommandClass;
+
+#define TYPE_REVERT_SINGLE_COMMAND (revert_single_command_get_type ())
+#define REVERT_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommand))
+#define REVERT_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommandClass))
+#define IS_REVERT_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REVERT_SINGLE_COMMAND))
+#define IS_REVERT_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REVERT_SINGLE_COMMAND))
+#define REVERT_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REVERT_SINGLE_COMMAND, RevertSingleCommandClass))
+
+typedef struct _RevertSingleCommand RevertSingleCommand;
+typedef struct _RevertSingleCommandClass RevertSingleCommandClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_TEXT_ENTRY_DIALOG_MEDIATOR (text_entry_dialog_mediator_get_type ())
+#define TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+
+typedef struct _TextEntryDialogMediator TextEntryDialogMediator;
+typedef struct _TextEntryDialogMediatorClass TextEntryDialogMediatorClass;
+
+#define TYPE_EDIT_TITLE_DIALOG (edit_title_dialog_get_type ())
+#define EDIT_TITLE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_TITLE_DIALOG, EditTitleDialog))
+#define EDIT_TITLE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_TITLE_DIALOG, EditTitleDialogClass))
+#define IS_EDIT_TITLE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_TITLE_DIALOG))
+#define IS_EDIT_TITLE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_TITLE_DIALOG))
+#define EDIT_TITLE_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_TITLE_DIALOG, EditTitleDialogClass))
+
+typedef struct _EditTitleDialog EditTitleDialog;
+typedef struct _EditTitleDialogClass EditTitleDialogClass;
+#define _text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_EDIT_TITLE_COMMAND (edit_title_command_get_type ())
+#define EDIT_TITLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_TITLE_COMMAND, EditTitleCommand))
+#define EDIT_TITLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_TITLE_COMMAND, EditTitleCommandClass))
+#define IS_EDIT_TITLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_TITLE_COMMAND))
+#define IS_EDIT_TITLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_TITLE_COMMAND))
+#define EDIT_TITLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_TITLE_COMMAND, EditTitleCommandClass))
+
+typedef struct _EditTitleCommand EditTitleCommand;
+typedef struct _EditTitleCommandClass EditTitleCommandClass;
+
+#define TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR (multi_text_entry_dialog_mediator_get_type ())
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediator))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+
+typedef struct _MultiTextEntryDialogMediator MultiTextEntryDialogMediator;
+typedef struct _MultiTextEntryDialogMediatorClass MultiTextEntryDialogMediatorClass;
+
+#define TYPE_EDIT_COMMENT_DIALOG (edit_comment_dialog_get_type ())
+#define EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialog))
+#define EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+#define IS_EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_COMMENT_DIALOG))
+#define IS_EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_COMMENT_DIALOG))
+#define EDIT_COMMENT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+
+typedef struct _EditCommentDialog EditCommentDialog;
+typedef struct _EditCommentDialogClass EditCommentDialogClass;
+#define _multi_text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (multi_text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_EDIT_COMMENT_COMMAND (edit_comment_command_get_type ())
+#define EDIT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_COMMENT_COMMAND, EditCommentCommand))
+#define EDIT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_COMMENT_COMMAND, EditCommentCommandClass))
+#define IS_EDIT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_COMMENT_COMMAND))
+#define IS_EDIT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_COMMENT_COMMAND))
+#define EDIT_COMMENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_COMMENT_COMMAND, EditCommentCommandClass))
+
+typedef struct _EditCommentCommand EditCommentCommand;
+typedef struct _EditCommentCommandClass EditCommentCommandClass;
+
+#define TYPE_ADJUST_DATE_TIME_DIALOG (adjust_date_time_dialog_get_type ())
+#define ADJUST_DATE_TIME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialog))
+#define ADJUST_DATE_TIME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialogClass))
+#define IS_ADJUST_DATE_TIME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_DATE_TIME_DIALOG))
+#define IS_ADJUST_DATE_TIME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_DATE_TIME_DIALOG))
+#define ADJUST_DATE_TIME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_DATE_TIME_DIALOG, AdjustDateTimeDialogClass))
+
+typedef struct _AdjustDateTimeDialog AdjustDateTimeDialog;
+typedef struct _AdjustDateTimeDialogClass AdjustDateTimeDialogClass;
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+
+#define TYPE_DIRECT_PHOTO_PAGE (direct_photo_page_get_type ())
+#define DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage))
+#define DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass))
+#define IS_DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_PAGE))
+#define IS_DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_PAGE))
+#define DIRECT_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass))
+
+typedef struct _DirectPhotoPage DirectPhotoPage;
+typedef struct _DirectPhotoPageClass DirectPhotoPageClass;
+
+#define TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND (adjust_date_time_photo_command_get_type ())
+#define ADJUST_DATE_TIME_PHOTO_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommand))
+#define ADJUST_DATE_TIME_PHOTO_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommandClass))
+#define IS_ADJUST_DATE_TIME_PHOTO_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND))
+#define IS_ADJUST_DATE_TIME_PHOTO_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND))
+#define ADJUST_DATE_TIME_PHOTO_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_DATE_TIME_PHOTO_COMMAND, AdjustDateTimePhotoCommandClass))
+
+typedef struct _AdjustDateTimePhotoCommand AdjustDateTimePhotoCommand;
+typedef struct _AdjustDateTimePhotoCommandClass AdjustDateTimePhotoCommandClass;
+
+#define TYPE_SET_BACKGROUND_DIALOG (set_background_dialog_get_type ())
+#define SET_BACKGROUND_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialog))
+#define SET_BACKGROUND_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialogClass))
+#define IS_SET_BACKGROUND_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_DIALOG))
+#define IS_SET_BACKGROUND_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_DIALOG))
+#define SET_BACKGROUND_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_DIALOG, SetBackgroundDialogClass))
+
+typedef struct _SetBackgroundDialog SetBackgroundDialog;
+typedef struct _SetBackgroundDialogClass SetBackgroundDialogClass;
+
+#define TYPE_SET_BACKGROUND_PHOTO_DIALOG (set_background_photo_dialog_get_type ())
+#define SET_BACKGROUND_PHOTO_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialog))
+#define SET_BACKGROUND_PHOTO_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialogClass))
+#define IS_SET_BACKGROUND_PHOTO_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG))
+#define IS_SET_BACKGROUND_PHOTO_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_BACKGROUND_PHOTO_DIALOG))
+#define SET_BACKGROUND_PHOTO_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_BACKGROUND_PHOTO_DIALOG, SetBackgroundPhotoDialogClass))
+
+typedef struct _SetBackgroundPhotoDialog SetBackgroundPhotoDialog;
+typedef struct _SetBackgroundPhotoDialogClass SetBackgroundPhotoDialogClass;
+#define _set_background_dialog_unref0(var) ((var == NULL) ? NULL : (var = (set_background_dialog_unref (var), NULL)))
+
+#define EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL (editing_tools_straighten_tool_get_type ())
+#define EDITING_TOOLS_STRAIGHTEN_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolClass))
+#define EDITING_TOOLS_IS_STRAIGHTEN_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL))
+#define EDITING_TOOLS_IS_STRAIGHTEN_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolClass))
+
+typedef struct _EditingToolsStraightenTool EditingToolsStraightenTool;
+typedef struct _EditingToolsStraightenToolClass EditingToolsStraightenToolClass;
+
+#define EDITING_TOOLS_TYPE_CROP_TOOL (editing_tools_crop_tool_get_type ())
+#define EDITING_TOOLS_CROP_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool))
+#define EDITING_TOOLS_CROP_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolClass))
+#define EDITING_TOOLS_IS_CROP_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_CROP_TOOL))
+#define EDITING_TOOLS_IS_CROP_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_CROP_TOOL))
+#define EDITING_TOOLS_CROP_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolClass))
+
+typedef struct _EditingToolsCropTool EditingToolsCropTool;
+typedef struct _EditingToolsCropToolClass EditingToolsCropToolClass;
+
+#define EDITING_TOOLS_TYPE_REDEYE_TOOL (editing_tools_redeye_tool_get_type ())
+#define EDITING_TOOLS_REDEYE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool))
+#define EDITING_TOOLS_REDEYE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolClass))
+#define EDITING_TOOLS_IS_REDEYE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL))
+#define EDITING_TOOLS_IS_REDEYE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_REDEYE_TOOL))
+#define EDITING_TOOLS_REDEYE_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolClass))
+
+typedef struct _EditingToolsRedeyeTool EditingToolsRedeyeTool;
+typedef struct _EditingToolsRedeyeToolClass EditingToolsRedeyeToolClass;
+
+#define EDITING_TOOLS_TYPE_ADJUST_TOOL (editing_tools_adjust_tool_get_type ())
+#define EDITING_TOOLS_ADJUST_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool))
+#define EDITING_TOOLS_ADJUST_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolClass))
+#define EDITING_TOOLS_IS_ADJUST_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL))
+#define EDITING_TOOLS_IS_ADJUST_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_ADJUST_TOOL))
+#define EDITING_TOOLS_ADJUST_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolClass))
+
+typedef struct _EditingToolsAdjustTool EditingToolsAdjustTool;
+typedef struct _EditingToolsAdjustToolClass EditingToolsAdjustToolClass;
+
+#define TYPE_ENHANCE_SINGLE_COMMAND (enhance_single_command_get_type ())
+#define ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommand))
+#define ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))
+#define IS_ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENHANCE_SINGLE_COMMAND))
+#define IS_ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENHANCE_SINGLE_COMMAND))
+#define ENHANCE_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))
+
+typedef struct _EnhanceSingleCommand EnhanceSingleCommand;
+typedef struct _EnhanceSingleCommandClass EnhanceSingleCommandClass;
+
+#define TYPE_PIXEL_TRANSFORMATION_BUNDLE (pixel_transformation_bundle_get_type ())
+#define PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundle))
+#define PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define PIXEL_TRANSFORMATION_BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+
+typedef struct _PixelTransformationBundle PixelTransformationBundle;
+typedef struct _PixelTransformationBundleClass PixelTransformationBundleClass;
+#define _pixel_transformation_bundle_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_bundle_unref (var), NULL)))
+
+#define TYPE_ADJUST_COLORS_SINGLE_COMMAND (adjust_colors_single_command_get_type ())
+#define ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommand))
+#define ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))
+#define IS_ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
+#define IS_ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
+#define ADJUST_COLORS_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))
+
+typedef struct _AdjustColorsSingleCommand AdjustColorsSingleCommand;
+typedef struct _AdjustColorsSingleCommandClass AdjustColorsSingleCommandClass;
+typedef struct _EditingToolsPhotoCanvasPrivate EditingToolsPhotoCanvasPrivate;
+typedef struct _EditingHostPageEditingHostCanvasPrivate EditingHostPageEditingHostCanvasPrivate;
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+
+#define TYPE_LIBRARY_PHOTO_PAGE (library_photo_page_get_type ())
+#define LIBRARY_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage))
+#define LIBRARY_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPageClass))
+#define IS_LIBRARY_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_PAGE))
+#define IS_LIBRARY_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_PAGE))
+#define LIBRARY_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPageClass))
+
+typedef struct _LibraryPhotoPage LibraryPhotoPage;
+typedef struct _LibraryPhotoPageClass LibraryPhotoPageClass;
+typedef struct _LibraryPhotoPagePrivate LibraryPhotoPagePrivate;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER (library_photo_page_library_photo_page_view_filter_get_type ())
+#define LIBRARY_PHOTO_PAGE_LIBRARY_PHOTO_PAGE_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER, LibraryPhotoPageLibraryPhotoPageViewFilter))
+#define LIBRARY_PHOTO_PAGE_LIBRARY_PHOTO_PAGE_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER, LibraryPhotoPageLibraryPhotoPageViewFilterClass))
+#define LIBRARY_PHOTO_PAGE_IS_LIBRARY_PHOTO_PAGE_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER))
+#define LIBRARY_PHOTO_PAGE_IS_LIBRARY_PHOTO_PAGE_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER))
+#define LIBRARY_PHOTO_PAGE_LIBRARY_PHOTO_PAGE_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER, LibraryPhotoPageLibraryPhotoPageViewFilterClass))
+
+typedef struct _LibraryPhotoPageLibraryPhotoPageViewFilter LibraryPhotoPageLibraryPhotoPageViewFilter;
+typedef struct _LibraryPhotoPageLibraryPhotoPageViewFilterClass LibraryPhotoPageLibraryPhotoPageViewFilterClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_RATING (rating_get_type ())
+#define _injection_group_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_unref (var), NULL)))
+
+#define TYPE_MULTIPLE_DATA_SOURCE_COMMAND (multiple_data_source_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommand))
+#define MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_COMMAND, MultipleDataSourceCommandClass))
+
+typedef struct _MultipleDataSourceCommand MultipleDataSourceCommand;
+typedef struct _MultipleDataSourceCommandClass MultipleDataSourceCommandClass;
+
+#define TYPE_SET_RAW_DEVELOPER_COMMAND (set_raw_developer_command_get_type ())
+#define SET_RAW_DEVELOPER_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommand))
+#define SET_RAW_DEVELOPER_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommandClass))
+#define IS_SET_RAW_DEVELOPER_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND))
+#define IS_SET_RAW_DEVELOPER_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_RAW_DEVELOPER_COMMAND))
+#define SET_RAW_DEVELOPER_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_RAW_DEVELOPER_COMMAND, SetRawDeveloperCommandClass))
+
+typedef struct _SetRawDeveloperCommand SetRawDeveloperCommand;
+typedef struct _SetRawDeveloperCommandClass SetRawDeveloperCommandClass;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+
+#define TYPE_SLIDESHOW_PAGE (slideshow_page_get_type ())
+#define SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPage))
+#define SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+#define IS_SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SLIDESHOW_PAGE))
+#define IS_SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SLIDESHOW_PAGE))
+#define SLIDESHOW_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+
+typedef struct _SlideshowPage SlideshowPage;
+typedef struct _SlideshowPageClass SlideshowPageClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_EVENT_PAGE (event_page_get_type ())
+#define EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_PAGE, EventPage))
+#define EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_PAGE, EventPageClass))
+#define IS_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_PAGE))
+#define IS_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_PAGE))
+#define EVENT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_PAGE, EventPageClass))
+
+typedef struct _EventPage EventPage;
+typedef struct _EventPageClass EventPageClass;
+
+#define TYPE_TRASH_UNTRASH_PHOTOS_COMMAND (trash_untrash_photos_command_get_type ())
+#define TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+
+typedef struct _TrashUntrashPhotosCommand TrashUntrashPhotosCommand;
+typedef struct _TrashUntrashPhotosCommandClass TrashUntrashPhotosCommandClass;
+
+#define TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND (multiple_data_source_at_once_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommand))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+
+typedef struct _MultipleDataSourceAtOnceCommand MultipleDataSourceAtOnceCommand;
+typedef struct _MultipleDataSourceAtOnceCommandClass MultipleDataSourceAtOnceCommandClass;
+
+#define TYPE_FLAG_UNFLAG_COMMAND (flag_unflag_command_get_type ())
+#define FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommand))
+#define FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+#define IS_FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAG_UNFLAG_COMMAND))
+#define IS_FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FLAG_UNFLAG_COMMAND))
+#define FLAG_UNFLAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+
+typedef struct _FlagUnflagCommand FlagUnflagCommand;
+typedef struct _FlagUnflagCommandClass FlagUnflagCommandClass;
+
+#define TYPE_PRINT_MANAGER (print_manager_get_type ())
+#define PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRINT_MANAGER, PrintManager))
+#define PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRINT_MANAGER, PrintManagerClass))
+#define IS_PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRINT_MANAGER))
+#define IS_PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRINT_MANAGER))
+#define PRINT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRINT_MANAGER, PrintManagerClass))
+
+typedef struct _PrintManager PrintManager;
+typedef struct _PrintManagerClass PrintManagerClass;
+#define _print_manager_unref0(var) ((var == NULL) ? NULL : (var = (print_manager_unref (var), NULL)))
+
+#define TYPE_EXPORT_DIALOG (export_dialog_get_type ())
+#define EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORT_DIALOG, ExportDialog))
+#define EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORT_DIALOG, ExportDialogClass))
+#define IS_EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORT_DIALOG))
+#define IS_EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORT_DIALOG))
+#define EXPORT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORT_DIALOG, ExportDialogClass))
+
+typedef struct _ExportDialog ExportDialog;
+typedef struct _ExportDialogClass ExportDialogClass;
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_SET_RATING_SINGLE_COMMAND (set_rating_single_command_get_type ())
+#define SET_RATING_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommand))
+#define SET_RATING_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommandClass))
+#define IS_SET_RATING_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_RATING_SINGLE_COMMAND))
+#define IS_SET_RATING_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_RATING_SINGLE_COMMAND))
+#define SET_RATING_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_RATING_SINGLE_COMMAND, SetRatingSingleCommandClass))
+
+typedef struct _SetRatingSingleCommand SetRatingSingleCommand;
+typedef struct _SetRatingSingleCommandClass SetRatingSingleCommandClass;
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TYPE_TAGS_DIALOG (tags_dialog_get_type ())
+#define TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAGS_DIALOG, TagsDialog))
+#define TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAGS_DIALOG, TagsDialogClass))
+#define IS_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAGS_DIALOG))
+#define IS_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAGS_DIALOG))
+#define TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAGS_DIALOG, TagsDialogClass))
+
+typedef struct _TagsDialog TagsDialog;
+typedef struct _TagsDialogClass TagsDialogClass;
+
+#define TYPE_ADD_TAGS_DIALOG (add_tags_dialog_get_type ())
+#define ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialog))
+#define ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+#define IS_ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_DIALOG))
+#define IS_ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_DIALOG))
+#define ADD_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+
+typedef struct _AddTagsDialog AddTagsDialog;
+typedef struct _AddTagsDialogClass AddTagsDialogClass;
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+
+#define TYPE_ADD_TAGS_COMMAND (add_tags_command_get_type ())
+#define ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommand))
+#define ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+#define IS_ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_COMMAND))
+#define IS_ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_COMMAND))
+#define ADD_TAGS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+
+typedef struct _AddTagsCommand AddTagsCommand;
+typedef struct _AddTagsCommandClass AddTagsCommandClass;
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+
+#define TYPE_MODIFY_TAGS_DIALOG (modify_tags_dialog_get_type ())
+#define MODIFY_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialog))
+#define MODIFY_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialogClass))
+#define IS_MODIFY_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFY_TAGS_DIALOG))
+#define IS_MODIFY_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFY_TAGS_DIALOG))
+#define MODIFY_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFY_TAGS_DIALOG, ModifyTagsDialogClass))
+
+typedef struct _ModifyTagsDialog ModifyTagsDialog;
+typedef struct _ModifyTagsDialogClass ModifyTagsDialogClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_MODIFY_TAGS_COMMAND (modify_tags_command_get_type ())
+#define MODIFY_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommand))
+#define MODIFY_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommandClass))
+#define IS_MODIFY_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MODIFY_TAGS_COMMAND))
+#define IS_MODIFY_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MODIFY_TAGS_COMMAND))
+#define MODIFY_TAGS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MODIFY_TAGS_COMMAND, ModifyTagsCommandClass))
+
+typedef struct _ModifyTagsCommand ModifyTagsCommand;
+typedef struct _ModifyTagsCommandClass ModifyTagsCommandClass;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _LibraryPhotoPageLibraryPhotoPageViewFilterPrivate LibraryPhotoPageLibraryPhotoPageViewFilterPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _ZoomBuffer {
+ GObject parent_instance;
+ ZoomBufferPrivate * priv;
+};
+
+struct _ZoomBufferClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_LOADED,
+ ZOOM_BUFFER_OBJECT_STATE_SOURCE_LOAD_IN_PROGRESS,
+ ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_TRANSFORMED,
+ ZOOM_BUFFER_OBJECT_STATE_TRANSFORMED_READY
+} ZoomBufferObjectState;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _ZoomState {
+ Dimensions content_dimensions;
+ Dimensions viewport_dimensions;
+ gdouble zoom_factor;
+ gdouble interpolation_factor;
+ gdouble min_factor;
+ gdouble max_factor;
+ GdkPoint viewport_center;
+};
+
+struct _ZoomBufferPrivate {
+ GdkPixbuf* iso_source_image;
+ GdkPixbuf* reduced_source_image;
+ GdkPixbuf* iso_transformed_image;
+ GdkPixbuf* reduced_transformed_image;
+ GdkPixbuf* preview_image;
+ Photo* backing_photo;
+ ZoomBufferObjectState object_state;
+ GdkPixbuf* demand_transform_cached_pixbuf;
+ ZoomState demand_transform_zoom_state;
+ ZoomBufferTransformationJob* demand_transform_job;
+ Workers* workers;
+ SinglePhotoPage* parent_page;
+ gboolean is_interactive_redraw_in_progress;
+};
+
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _ZoomBufferIsoSourceFetchJob {
+ BackgroundJob parent_instance;
+ ZoomBufferIsoSourceFetchJobPrivate * priv;
+ GdkPixbuf* fetched;
+};
+
+struct _ZoomBufferIsoSourceFetchJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef enum {
+ DIRECTION_FORWARD,
+ DIRECTION_BACKWARD
+} Direction;
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+struct _ZoomBufferTransformationJob {
+ BackgroundJob parent_instance;
+ ZoomBufferTransformationJobPrivate * priv;
+ GdkPixbuf* transformed;
+};
+
+struct _ZoomBufferTransformationJobClass {
+ BackgroundJobClass parent_class;
+};
+
+struct _ZoomBufferIsoSourceFetchJobPrivate {
+ Photo* to_fetch;
+};
+
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ BACKING_FETCH_MODE_SOURCE,
+ BACKING_FETCH_MODE_BASELINE,
+ BACKING_FETCH_MODE_MASTER,
+ BACKING_FETCH_MODE_UNMODIFIED
+} BackingFetchMode;
+
+struct _ZoomBufferTransformationJobPrivate {
+ GdkPixbuf* to_transform;
+ PixelTransformer* transformer;
+ GCancellable* cancellable;
+};
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
+} SinglePhotoPageUpdateReason;
+
+struct _SinglePhotoPage {
+ Page parent_instance;
+ SinglePhotoPagePrivate * priv;
+ GtkDrawingArea* canvas;
+ GtkViewport* viewport;
+};
+
+struct _SinglePhotoPageClass {
+ PageClass parent_class;
+ gboolean (*is_zoom_supported) (SinglePhotoPage* self);
+ void (*cancel_zoom) (SinglePhotoPage* self);
+ void (*save_zoom_state) (SinglePhotoPage* self);
+ void (*restore_zoom_state) (SinglePhotoPage* self);
+ ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self);
+ void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+ void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*on_previous_photo) (SinglePhotoPage* self);
+ void (*on_next_photo) (SinglePhotoPage* self);
+};
+
+struct _EditingHostPage {
+ SinglePhotoPage parent_instance;
+ EditingHostPagePrivate * priv;
+};
+
+struct _EditingHostPageClass {
+ SinglePhotoPageClass parent_class;
+ gboolean (*on_zoom_slider_key_press) (EditingHostPage* self, GdkEventKey* event);
+ void (*on_increase_size) (EditingHostPage* self);
+ void (*on_decrease_size) (EditingHostPage* self);
+ void (*photo_changing) (EditingHostPage* self, Photo* new_photo);
+ DataView* (*create_photo_view) (EditingHostPage* self, DataSource* source);
+ void (*update_ui) (EditingHostPage* self, gboolean missing);
+ void (*notify_photo_backing_missing) (EditingHostPage* self, Photo* photo, gboolean missing);
+ gboolean (*confirm_replace_photo) (EditingHostPage* self, Photo* old_photo, Photo* new_photo);
+ gboolean (*on_double_click) (EditingHostPage* self, GdkEventButton* event);
+ GdkPixbuf* (*get_bottom_left_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_top_left_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (EditingHostPage* self, gint scale);
+};
+
+struct _EditingHostPagePrivate {
+ SourceCollection* sources;
+ ViewCollection* parent_view;
+ GdkPixbuf* swapped;
+ gboolean pixbuf_dirty;
+ GtkToolButton* rotate_button;
+ GtkToggleToolButton* crop_button;
+ GtkToggleToolButton* redeye_button;
+ GtkToggleToolButton* adjust_button;
+ GtkToggleToolButton* straighten_button;
+ GtkToolButton* enhance_button;
+ GtkScale* zoom_slider;
+ GtkToolButton* prev_button;
+ GtkToolButton* next_button;
+ EditingToolsEditingTool* current_tool;
+ GtkToggleToolButton* current_editing_toggle;
+ GdkPixbuf* cancel_editing_pixbuf;
+ gboolean photo_missing;
+ PixbufCache* cache;
+ PixbufCache* master_cache;
+ DragAndDropHandler* dnd_handler;
+ gboolean enable_interactive_zoom_refresh;
+ GdkPoint zoom_pan_start_point;
+ gboolean is_pan_in_progress;
+ gdouble saved_slider_val;
+ ZoomBuffer* zoom_buffer;
+ GeeHashMap* last_locations;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+typedef enum {
+ PIXBUF_CACHE_PHOTO_TYPE_BASELINE,
+ PIXBUF_CACHE_PHOTO_TYPE_MASTER
+} PixbufCachePhotoType;
+
+typedef gboolean (*PixbufCacheCacheFilter) (Photo* photo, void* user_data);
+typedef DataView* (*CreateView) (DataSource* source, void* user_data);
+typedef gboolean (*CreateViewPredicate) (DataSource* source, void* user_data);
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _EditingToolsEditingTool {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EditingToolsEditingToolPrivate * priv;
+ EditingToolsPhotoCanvas* canvas;
+ cairo_surface_t* surface;
+ gchar* name;
+};
+
+struct _EditingToolsEditingToolClass {
+ GTypeClass parent_class;
+ void (*finalize) (EditingToolsEditingTool *self);
+ void (*activate) (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
+ void (*deactivate) (EditingToolsEditingTool* self);
+ EditingToolsEditingToolWindow* (*get_tool_window) (EditingToolsEditingTool* self);
+ GdkPixbuf* (*get_display_pixbuf) (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+ void (*on_left_click) (EditingToolsEditingTool* self, gint x, gint y);
+ void (*on_left_released) (EditingToolsEditingTool* self, gint x, gint y);
+ void (*on_motion) (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (EditingToolsEditingTool* self);
+ gboolean (*on_keypress) (EditingToolsEditingTool* self, GdkEventKey* event);
+ void (*paint) (EditingToolsEditingTool* self, cairo_t* ctx);
+};
+
+typedef enum {
+ ROTATION_CLOCKWISE,
+ ROTATION_COUNTERCLOCKWISE,
+ ROTATION_MIRROR,
+ ROTATION_UPSIDE_DOWN
+} Rotation;
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+typedef EditingToolsEditingTool* (*EditingToolsEditingToolFactory) ();
+struct _EditingToolsPhotoCanvas {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EditingToolsPhotoCanvasPrivate * priv;
+};
+
+struct _EditingToolsPhotoCanvasClass {
+ GTypeClass parent_class;
+ void (*finalize) (EditingToolsPhotoCanvas *self);
+ void (*repaint) (EditingToolsPhotoCanvas* self);
+};
+
+struct _EditingHostPageEditingHostCanvas {
+ EditingToolsPhotoCanvas parent_instance;
+ EditingHostPageEditingHostCanvasPrivate * priv;
+};
+
+struct _EditingHostPageEditingHostCanvasClass {
+ EditingToolsPhotoCanvasClass parent_class;
+};
+
+struct _EditingHostPageEditingHostCanvasPrivate {
+ EditingHostPage* host_page;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _LibraryPhotoPage {
+ EditingHostPage parent_instance;
+ LibraryPhotoPagePrivate * priv;
+};
+
+struct _LibraryPhotoPageClass {
+ EditingHostPageClass parent_class;
+ void (*developer_changed) (LibraryPhotoPage* self, RawDeveloper rd);
+};
+
+struct _LibraryPhotoPagePrivate {
+ CollectionPage* return_page;
+ gboolean return_to_collection_on_release;
+ LibraryPhotoPageLibraryPhotoPageViewFilter* filter;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _LibraryPhotoPageLibraryPhotoPageViewFilter {
+ ViewFilter parent_instance;
+ LibraryPhotoPageLibraryPhotoPageViewFilterPrivate * priv;
+};
+
+struct _LibraryPhotoPageLibraryPhotoPageViewFilterClass {
+ ViewFilterClass parent_class;
+};
+
+
+static gpointer zoom_buffer_parent_class = NULL;
+static gpointer zoom_buffer_iso_source_fetch_job_parent_class = NULL;
+static gpointer zoom_buffer_transformation_job_parent_class = NULL;
+static gpointer editing_host_page_parent_class = NULL;
+static gpointer editing_host_page_editing_host_canvas_parent_class = NULL;
+static gpointer library_photo_page_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+static gpointer library_photo_page_library_photo_page_view_filter_parent_class = NULL;
+
+GType zoom_buffer_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+static GType zoom_buffer_object_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType zoom_state_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+ZoomState* zoom_state_dup (const ZoomState* self);
+void zoom_state_free (ZoomState* self);
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+static GType zoom_buffer_transformation_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+#define ZOOM_BUFFER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ZOOM_BUFFER, ZoomBufferPrivate))
+enum {
+ ZOOM_BUFFER_DUMMY_PROPERTY
+};
+#define ZOOM_BUFFER_MEGAPIXEL 1048576
+#define ZOOM_BUFFER_USE_REDUCED_THRESHOLD (((gint) 2.0) * ZOOM_BUFFER_MEGAPIXEL)
+ZoomBuffer* zoom_buffer_new (SinglePhotoPage* parent_page, Photo* backing_photo, GdkPixbuf* preview_image);
+ZoomBuffer* zoom_buffer_construct (GType object_type, SinglePhotoPage* parent_page, Photo* backing_photo, GdkPixbuf* preview_image);
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+static void zoom_buffer_on_iso_source_fetch_complete (ZoomBuffer* self, BackgroundJob* job);
+static GType zoom_buffer_iso_source_fetch_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+GType direction_get_type (void) G_GNUC_CONST;
+void single_photo_page_repaint (SinglePhotoPage* self, Direction* direction);
+gpointer pixel_transformer_ref (gpointer instance);
+void pixel_transformer_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformer (GValue* value, gpointer v_object);
+void value_take_pixel_transformer (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformer (const GValue* value);
+GType pixel_transformer_get_type (void) G_GNUC_CONST;
+PixelTransformer* photo_get_pixel_transformer (Photo* self);
+static void zoom_buffer_on_iso_transformation_complete (ZoomBuffer* self, BackgroundJob* job);
+static void _zoom_buffer_on_iso_transformation_complete_completion_callback (BackgroundJob* job, gpointer self);
+static ZoomBufferTransformationJob* zoom_buffer_transformation_job_new (ZoomBuffer* owner, GdkPixbuf* to_transform, PixelTransformer* transformer, CompletionCallback completion_callback, void* completion_callback_target, GCancellable* cancellable);
+static ZoomBufferTransformationJob* zoom_buffer_transformation_job_construct (GType object_type, ZoomBuffer* owner, GdkPixbuf* to_transform, PixelTransformer* transformer, CompletionCallback completion_callback, void* completion_callback_target, GCancellable* cancellable);
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static void zoom_buffer_on_demand_transform_complete (ZoomBuffer* self, BackgroundJob* job);
+static GdkPixbuf* zoom_buffer_get_view_projection_pixbuf (ZoomBuffer* self, ZoomState* zoom_state, GdkPixbuf* iso_pixbuf, GdkPixbuf* reduced_pixbuf);
+void zoom_state_get_viewing_rectangle_wrt_content (ZoomState *self, GdkRectangle* result);
+void zoom_state_get_viewing_rectangle_projection (ZoomState *self, GdkPixbuf* for_pixbuf, GdkRectangle* result);
+gdouble zoom_state_get_zoom_factor (ZoomState *self);
+static GdkPixbuf* zoom_buffer_get_zoomed_image_source_not_transformed (ZoomBuffer* self, ZoomState* zoom_state);
+gboolean zoom_state_equals (ZoomState *self, ZoomState* other);
+GdkPixbuf* zoom_buffer_get_zoom_preview_image_internal (ZoomBuffer* self, ZoomState* zoom_state);
+void background_job_cancel (BackgroundJob* self);
+static void _zoom_buffer_on_demand_transform_complete_completion_callback (BackgroundJob* job, gpointer self);
+static void _zoom_buffer_on_iso_source_fetch_complete_completion_callback (BackgroundJob* job, gpointer self);
+static ZoomBufferIsoSourceFetchJob* zoom_buffer_iso_source_fetch_job_new (ZoomBuffer* owner, Photo* to_fetch, CompletionCallback completion_callback, void* completion_callback_target);
+static ZoomBufferIsoSourceFetchJob* zoom_buffer_iso_source_fetch_job_construct (GType object_type, ZoomBuffer* owner, Photo* to_fetch, CompletionCallback completion_callback, void* completion_callback_target);
+Photo* zoom_buffer_get_backing_photo (ZoomBuffer* self);
+void zoom_buffer_update_preview_image (ZoomBuffer* self, GdkPixbuf* preview_image);
+void zoom_buffer_flush_demand_cache (ZoomBuffer* self, ZoomState* initial_zoom_state);
+GdkPixbuf* zoom_buffer_get_zoomed_image (ZoomBuffer* self, ZoomState* zoom_state);
+gdouble zoom_state_get_interpolation_factor (ZoomState *self);
+GdkPixbuf* zoom_buffer_get_zoom_preview_image (ZoomBuffer* self, ZoomState* zoom_state);
+#define ZOOM_BUFFER_ISO_SOURCE_FETCH_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, ZoomBufferIsoSourceFetchJobPrivate))
+enum {
+ ZOOM_BUFFER_ISO_SOURCE_FETCH_JOB_DUMMY_PROPERTY
+};
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+static void zoom_buffer_iso_source_fetch_job_real_execute (BackgroundJob* base);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType backing_fetch_mode_get_type (void) G_GNUC_CONST;
+GdkPixbuf* photo_get_pixbuf_with_options (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error);
+void scaling_for_original (Scaling* result);
+static void zoom_buffer_iso_source_fetch_job_finalize (BackgroundJob* obj);
+#define ZOOM_BUFFER_TRANSFORMATION_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJobPrivate))
+enum {
+ ZOOM_BUFFER_TRANSFORMATION_JOB_DUMMY_PROPERTY
+};
+static void zoom_buffer_transformation_job_real_execute (BackgroundJob* base);
+void pixel_transformer_transform_to_other_pixbuf (PixelTransformer* self, GdkPixbuf* source, GdkPixbuf* dest, GCancellable* cancellable);
+static void zoom_buffer_transformation_job_finalize (BackgroundJob* obj);
+static void zoom_buffer_finalize (GObject* obj);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
+GType editing_host_page_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+gpointer editing_tools_editing_tool_ref (gpointer instance);
+void editing_tools_editing_tool_unref (gpointer instance);
+GParamSpec* editing_tools_param_spec_editing_tool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void editing_tools_value_set_editing_tool (GValue* value, gpointer v_object);
+void editing_tools_value_take_editing_tool (GValue* value, gpointer v_object);
+gpointer editing_tools_value_get_editing_tool (const GValue* value);
+GType editing_tools_editing_tool_get_type (void) G_GNUC_CONST;
+GType pixbuf_cache_get_type (void) G_GNUC_CONST;
+gpointer drag_and_drop_handler_ref (gpointer instance);
+void drag_and_drop_handler_unref (gpointer instance);
+GParamSpec* param_spec_drag_and_drop_handler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_drag_and_drop_handler (GValue* value, gpointer v_object);
+void value_take_drag_and_drop_handler (GValue* value, gpointer v_object);
+gpointer value_get_drag_and_drop_handler (const GValue* value);
+GType drag_and_drop_handler_get_type (void) G_GNUC_CONST;
+#define EDITING_HOST_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EDITING_HOST_PAGE, EditingHostPagePrivate))
+enum {
+ EDITING_HOST_PAGE_DUMMY_PROPERTY
+};
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void editing_host_page_on_photos_altered (EditingHostPage* self, GeeMap* map);
+static void _editing_host_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+ViewCollection* page_get_view (Page* self);
+static void editing_host_page_on_view_contents_ordering_altered (EditingHostPage* self);
+static void _editing_host_page_on_view_contents_ordering_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void _editing_host_page_on_view_contents_ordering_altered_data_collection_ordering_changed (DataCollection* _sender, gpointer self);
+#define RESOURCES_PREVIOUS_LABEL _ ("_Previous")
+#define RESOURCES_NEXT_LABEL _ ("_Next")
+#define EDITING_HOST_PAGE_TRINKET_SCALE 20
+#define EDITING_HOST_PAGE_TRINKET_PADDING 1
+#define EDITING_HOST_PAGE_ZOOM_INCREMENT_SIZE 0.1
+#define EDITING_HOST_PAGE_PAN_INCREMENT_SIZE 64
+#define EDITING_HOST_PAGE_TOOL_WINDOW_SEPARATOR 8
+#define EDITING_HOST_PAGE_PIXBUF_CACHE_COUNT 5
+#define EDITING_HOST_PAGE_ORIGINAL_PIXBUF_CACHE_COUNT 5
+EditingHostPage* editing_host_page_construct (GType object_type, SourceCollection* sources, const gchar* name);
+SinglePhotoPage* single_photo_page_construct (GType object_type, const gchar* page_name, gboolean scale_up_to_viewport);
+static void editing_host_page_on_viewport_resized (EditingHostPage* self);
+static void _editing_host_page_on_viewport_resized_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self);
+GtkToolbar* page_get_toolbar (Page* self);
+#define RESOURCES_CLOCKWISE "object-rotate-right"
+#define RESOURCES_ROTATE_CW_LABEL _ ("Rotate")
+#define RESOURCES_ROTATE_CW_TOOLTIP _ ("Rotate the photos right (press Ctrl to rotate left)")
+void editing_host_page_on_rotate_clockwise (EditingHostPage* self);
+static void _editing_host_page_on_rotate_clockwise_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+#define RESOURCES_CROP "shotwell-crop"
+#define RESOURCES_CROP_LABEL _ ("Crop")
+#define RESOURCES_CROP_TOOLTIP _ ("Crop the photo's size")
+static void editing_host_page_on_crop_toggled (EditingHostPage* self);
+static void _editing_host_page_on_crop_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self);
+#define RESOURCES_STRAIGHTEN "shotwell-straighten"
+#define RESOURCES_STRAIGHTEN_LABEL _ ("Straighten")
+#define RESOURCES_STRAIGHTEN_TOOLTIP _ ("Straighten the photo")
+static void editing_host_page_on_straighten_toggled (EditingHostPage* self);
+static void _editing_host_page_on_straighten_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self);
+#define RESOURCES_REDEYE "shotwell-redeye"
+#define RESOURCES_RED_EYE_LABEL _ ("Red-eye")
+#define RESOURCES_RED_EYE_TOOLTIP _ ("Reduce or eliminate any red-eye effects in the photo")
+static void editing_host_page_on_redeye_toggled (EditingHostPage* self);
+static void _editing_host_page_on_redeye_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self);
+#define RESOURCES_ADJUST "image-adjust"
+#define RESOURCES_ADJUST_LABEL _ ("Adjust")
+#define RESOURCES_ADJUST_TOOLTIP _ ("Adjust the photo's color and tone")
+static void editing_host_page_on_adjust_toggled (EditingHostPage* self);
+static void _editing_host_page_on_adjust_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self);
+#define RESOURCES_ENHANCE_LABEL _ ("Enhance")
+#define RESOURCES_ENHANCE "shotwell-auto-enhance"
+#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo's appearance")
+void editing_host_page_on_enhance (EditingHostPage* self);
+static void _editing_host_page_on_enhance_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+GdkPixbuf* resources_load_icon (const gchar* name, gint scale);
+#define RESOURCES_ICON_ZOOM_OUT "zoom-out.png"
+#define RESOURCES_ICON_ZOOM_SCALE 16
+static gboolean editing_host_page_on_zoom_out_pressed (EditingHostPage* self, GdkEventButton* event);
+static gboolean _editing_host_page_on_zoom_out_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static void editing_host_page_on_zoom_slider_value_changed (EditingHostPage* self);
+static void _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static gboolean editing_host_page_on_zoom_slider_drag_begin (EditingHostPage* self, GdkEventButton* event);
+static gboolean _editing_host_page_on_zoom_slider_drag_begin_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static gboolean editing_host_page_on_zoom_slider_drag_end (EditingHostPage* self, GdkEventButton* event);
+static gboolean _editing_host_page_on_zoom_slider_drag_end_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+gboolean editing_host_page_on_zoom_slider_key_press (EditingHostPage* self, GdkEventKey* event);
+static gboolean _editing_host_page_on_zoom_slider_key_press_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
+#define RESOURCES_ICON_ZOOM_IN "zoom-in.png"
+static gboolean editing_host_page_on_zoom_in_pressed (EditingHostPage* self, GdkEventButton* event);
+static gboolean _editing_host_page_on_zoom_in_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+void single_photo_page_on_previous_photo (SinglePhotoPage* self);
+static void _single_photo_page_on_previous_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+void single_photo_page_on_next_photo (SinglePhotoPage* self);
+static void _single_photo_page_on_next_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+void single_photo_page_get_zoom_state (SinglePhotoPage* self, ZoomState* result);
+void zoom_state_init_rescale (ZoomState *self, ZoomState* existing, gdouble new_slider_val);
+void single_photo_page_on_interactive_zoom (SinglePhotoPage* self, ZoomState* interactive_zoom_state);
+gboolean zoom_state_is_default (ZoomState *self);
+void single_photo_page_set_zoom_state (SinglePhotoPage* self, ZoomState* zoom_state);
+void single_photo_page_cancel_zoom (SinglePhotoPage* self);
+static void editing_host_page_update_cursor_for_zoom_context (EditingHostPage* self);
+GtkWindow* page_get_container (Page* self);
+void fullscreen_window_disable_toolbar_dismissal (FullscreenWindow* self);
+void fullscreen_window_update_toolbar_dismissal (FullscreenWindow* self);
+void editing_host_page_snap_zoom_to_min (EditingHostPage* self);
+void editing_host_page_snap_zoom_to_max (EditingHostPage* self);
+static void editing_host_page_get_cursor_wrt_viewport (EditingHostPage* self, GdkEventScroll* event, GdkPoint* result);
+void zoom_state_get_viewing_rectangle_wrt_screen (ZoomState *self, GdkRectangle* result);
+static void editing_host_page_get_cursor_wrt_viewport_center (EditingHostPage* self, GdkEventScroll* event, GdkPoint* result);
+void subtract_points (GdkPoint* p1, GdkPoint* p2, GdkPoint* result);
+static void editing_host_page_get_iso_pixel_under_cursor (EditingHostPage* self, GdkEventScroll* event, GdkPoint* result);
+void scale_point (GdkPoint* p, gdouble factor, GdkPoint* result);
+void zoom_state_get_viewport_center (ZoomState *self, GdkPoint* result);
+void add_points (GdkPoint* p1, GdkPoint* p2, GdkPoint* result);
+static gdouble editing_host_page_snap_interpolation_factor (EditingHostPage* self, gdouble interp);
+static gdouble editing_host_page_adjust_interpolation_factor (EditingHostPage* self, gdouble adjustment);
+static void editing_host_page_zoom_about_event_cursor_point (EditingHostPage* self, GdkEventScroll* event, gdouble zoom_increment);
+gboolean zoom_state_is_min (ZoomState *self);
+void zoom_state_init_pan (ZoomState *self, ZoomState* existing, GdkPoint* new_viewport_center);
+void editing_host_page_snap_zoom_to_isomorphic (EditingHostPage* self);
+void zoom_state_init_rescale_to_isomorphic (ZoomState *self, ZoomState* existing);
+static gboolean editing_host_page_real_on_zoom_slider_key_press (EditingHostPage* self, GdkEventKey* event);
+void page_activate_action (Page* self, const gchar* name);
+void editing_host_page_on_increase_size (EditingHostPage* self);
+static void editing_host_page_real_on_increase_size (EditingHostPage* self);
+void editing_host_page_on_decrease_size (EditingHostPage* self);
+static void editing_host_page_real_on_decrease_size (EditingHostPage* self);
+static void editing_host_page_real_save_zoom_state (SinglePhotoPage* base);
+void single_photo_page_save_zoom_state (SinglePhotoPage* self);
+static ZoomBuffer* editing_host_page_real_get_zoom_buffer (SinglePhotoPage* base);
+static gboolean editing_host_page_real_on_mousewheel_up (Page* base, GdkEventScroll* event);
+gboolean zoom_state_is_max (ZoomState *self);
+static gboolean editing_host_page_real_on_mousewheel_down (Page* base, GdkEventScroll* event);
+static void editing_host_page_real_restore_zoom_state (SinglePhotoPage* base);
+void single_photo_page_restore_zoom_state (SinglePhotoPage* self);
+static gboolean editing_host_page_real_is_zoom_supported (SinglePhotoPage* base);
+static void editing_host_page_real_set_container (Page* base, GtkWindow* container);
+void page_set_container (Page* self, GtkWindow* container);
+DragAndDropHandler* drag_and_drop_handler_new (Page* page);
+DragAndDropHandler* drag_and_drop_handler_construct (GType object_type, Page* page);
+ViewCollection* editing_host_page_get_parent_view (EditingHostPage* self);
+gboolean editing_host_page_has_photo (EditingHostPage* self);
+Photo* editing_host_page_get_photo (EditingHostPage* self);
+gint view_collection_get_selected_count (ViewCollection* self);
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+DataSource* data_view_get_source (DataView* self);
+void editing_host_page_photo_changing (EditingHostPage* self, Photo* new_photo);
+static void editing_host_page_real_photo_changing (EditingHostPage* self, Photo* new_photo);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_file_format (Photo* self);
+void editing_host_page_set_photo_missing (EditingHostPage* self, gboolean missing);
+GFile* media_source_get_file (MediaSource* self);
+void editing_host_page_update_ui (EditingHostPage* self, gboolean missing);
+static void editing_host_page_set_photo (EditingHostPage* self, Photo* photo);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+void view_collection_unselect_all (ViewCollection* self);
+GType marker_get_type (void) G_GNUC_CONST;
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+void view_collection_select_marked (ViewCollection* self, Marker* marker);
+DataView* view_collection_get_view_for_source_filtered (ViewCollection* self, DataSource* source);
+static void editing_host_page_real_realize (GtkWidget* base);
+static void editing_host_page_rebuild_caches (EditingHostPage* self, const gchar* caller);
+static void editing_host_page_real_switched_to (Page* base);
+void page_switched_to (Page* self);
+static void editing_host_page_replace_photo (EditingHostPage* self, Photo* new_photo);
+static void editing_host_page_real_switching_from (Page* base);
+void page_switching_from (Page* self);
+GType command_get_type (void) G_GNUC_CONST;
+static void editing_host_page_deactivate_tool (EditingHostPage* self, Command* command, GdkPixbuf* new_pixbuf, Dimensions* new_max_dim, gboolean needs_improvement);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void data_collection_clear (DataCollection* self);
+static void editing_host_page_real_switching_to_fullscreen (Page* base, FullscreenWindow* fsw);
+void page_switching_to_fullscreen (Page* self, FullscreenWindow* fsw);
+Page* page_window_get_current_page (PageWindow* self);
+static void editing_host_page_on_selection_changed (EditingHostPage* self, GeeIterable* selected);
+static void _editing_host_page_on_selection_changed_view_collection_items_selected (ViewCollection* _sender, GeeIterable* selected, gpointer self);
+static void editing_host_page_real_returning_from_fullscreen (Page* base, FullscreenWindow* fsw);
+void page_returning_from_fullscreen (Page* self, FullscreenWindow* fsw);
+void editing_host_page_enable_rotate (EditingHostPage* self, gboolean should_enable);
+void single_photo_page_get_canvas_scaling (SinglePhotoPage* self, Scaling* result);
+void pixbuf_cache_get_scaling (PixbufCache* self, Scaling* result);
+gboolean scaling_equals (Scaling *self, Scaling* scaling);
+gchar* scaling_to_string (Scaling *self);
+static void editing_host_page_on_pixbuf_fetched (EditingHostPage* self, Photo* photo, GdkPixbuf* pixbuf, GError* err);
+static void _editing_host_page_on_pixbuf_fetched_pixbuf_cache_fetched (PixbufCache* _sender, Photo* photo, GdkPixbuf* pixbuf, GError* err, gpointer self);
+void pixbuf_cache_cancel_all (PixbufCache* self);
+GType pixbuf_cache_photo_type_get_type (void) G_GNUC_CONST;
+PixbufCache* pixbuf_cache_new (SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target);
+PixbufCache* pixbuf_cache_construct (GType object_type, SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target);
+static gboolean editing_host_page_master_cache_filter (EditingHostPage* self, Photo* photo);
+static gboolean _editing_host_page_master_cache_filter_pixbuf_cache_cache_filter (Photo* photo, gpointer self);
+static void editing_host_page_refresh_caches (EditingHostPage* self, const gchar* caller);
+gchar* data_object_to_string (DataObject* self);
+static void editing_host_page_prefetch_neighbors (EditingHostPage* self, ViewCollection* controller, Photo* photo);
+gboolean photo_has_transformations (Photo* self);
+gboolean photo_has_editable (Photo* self);
+gboolean data_source_equals (DataSource* self, DataSource* source);
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+GdkPixbuf* editing_tools_editing_tool_get_display_pixbuf (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+void single_photo_page_set_pixbuf (SinglePhotoPage* self, GdkPixbuf* unscaled, Dimensions* max_dim, Direction* direction);
+void editing_host_page_notify_photo_backing_missing (EditingHostPage* self, Photo* photo, gboolean missing);
+GType pixbuf_cache_pixbuf_cache_batch_get_type (void) G_GNUC_CONST;
+PixbufCachePixbufCacheBatch* pixbuf_cache_pixbuf_cache_batch_new (void);
+PixbufCachePixbufCacheBatch* pixbuf_cache_pixbuf_cache_batch_construct (GType object_type);
+gboolean view_collection_get_immediate_neighbors (ViewCollection* self, DataSource* home, DataSource** next, DataSource** prev, const gchar* type_selector);
+#define PHOTO_TYPENAME "thumb"
+GeeSet* view_collection_get_extended_neighbors (ViewCollection* self, DataSource* home, const gchar* typename);
+void pixbuf_cache_prefetch_batch (PixbufCache* self, PixbufCachePixbufCacheBatch* batch, gboolean force);
+static void editing_host_page_cancel_prefetch_neighbors (EditingHostPage* self, ViewCollection* old_controller, Photo* old_photo, ViewCollection* new_controller, Photo* new_photo);
+void pixbuf_cache_drop (PixbufCache* self, Photo* photo);
+DataView* editing_host_page_create_photo_view (EditingHostPage* self, DataSource* source);
+static DataView* editing_host_page_real_create_photo_view (EditingHostPage* self, DataSource* source);
+PhotoView* photo_view_new (PhotoSource* source);
+PhotoView* photo_view_construct (GType object_type, PhotoSource* source);
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType photo_view_get_type (void) G_GNUC_CONST;
+static gboolean editing_host_page_is_photo (EditingHostPage* self, DataSource* source);
+void editing_host_page_display_copy_of (EditingHostPage* self, ViewCollection* controller, Photo* starting_photo);
+void view_collection_copy_into (ViewCollection* self, ViewCollection* to_copy, CreateView copying_ctor, void* copying_ctor_target, CreateViewPredicate should_copy, void* should_copy_target);
+static DataView* _editing_host_page_create_photo_view_create_view (DataSource* source, gpointer self);
+static gboolean _editing_host_page_is_photo_create_view_predicate (DataSource* source, gpointer self);
+void editing_host_page_display_mirror_of (EditingHostPage* self, ViewCollection* controller, Photo* starting_photo);
+void view_collection_mirror (ViewCollection* self, ViewCollection* to_mirror, CreateView mirroring_ctor, void* mirroring_ctor_target, CreateViewPredicate should_mirror, void* should_mirror_target);
+static void editing_host_page_real_update_ui (EditingHostPage* self, gboolean missing);
+static void editing_host_page_real_notify_photo_backing_missing (EditingHostPage* self, Photo* photo, gboolean missing);
+static void editing_host_page_draw_message (EditingHostPage* self, const gchar* message);
+void single_photo_page_paint_text (SinglePhotoPage* self, PangoLayout* pango_layout, gint x, gint y);
+GdkPixbuf* media_source_get_preview_pixbuf (MediaSource* self, Scaling* scaling, GError** error);
+gboolean editing_host_page_get_photo_missing (EditingHostPage* self);
+gboolean editing_host_page_confirm_replace_photo (EditingHostPage* self, Photo* old_photo, Photo* new_photo);
+static gboolean editing_host_page_real_confirm_replace_photo (EditingHostPage* self, Photo* old_photo, Photo* new_photo);
+static GdkPixbuf* editing_host_page_get_zoom_pixbuf (EditingHostPage* self, Photo* new_photo);
+GdkPixbuf* pixbuf_cache_get_ready_pixbuf (PixbufCache* self, Photo* photo);
+GdkPixbuf* get_placeholder_pixbuf (void);
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up);
+void page_set_page_name (Page* self, const gchar* page_name);
+gchar* data_object_get_name (DataObject* self);
+static void editing_host_page_quick_update_pixbuf (EditingHostPage* self);
+static void editing_host_page_real_cancel_zoom (SinglePhotoPage* base);
+void single_photo_page_get_surface_dim (SinglePhotoPage* self, Dimensions* result);
+void zoom_state_init (ZoomState *self, Dimensions* content_dimensions, Dimensions* viewport_dimensions, gdouble slider_val, GdkPoint* viewport_center);
+void page_set_page_cursor (Page* self, GdkCursorType cursor_type);
+void pixbuf_cache_prefetch (PixbufCache* self, Photo* photo, BackgroundJobJobPriority priority, gboolean force);
+static gboolean editing_host_page_update_pixbuf (EditingHostPage* self);
+static void editing_host_page_real_on_resize (Page* base, GdkRectangle* rect);
+void page_on_resize (Page* self, GdkRectangle* rect);
+static void editing_host_page_track_tool_window (EditingHostPage* self);
+static void editing_host_page_real_on_resize_finished (Page* base, GdkRectangle* rect);
+static void editing_host_page_real_update_actions (Page* base, gint selected_count, gint count);
+gint view_collection_get_sources_of_type_count (ViewCollection* self, GType t);
+gboolean photo_check_can_rotate (Photo* self);
+gboolean editing_host_page_is_rotate_available (EditingHostPage* self, Photo* photo);
+gboolean editing_tools_crop_tool_is_available (Photo* photo, Scaling* scaling);
+gboolean editing_tools_redeye_tool_is_available (Photo* photo, Scaling* scaling);
+gboolean editing_tools_adjust_tool_is_available (Photo* photo, Scaling* scaling);
+gboolean editing_host_page_is_enhance_available (EditingHostPage* self, Photo* photo);
+gboolean editing_tools_straighten_tool_is_available (Photo* photo, Scaling* scaling);
+void page_update_actions (Page* self, gint selected_count, gint count);
+static gboolean editing_host_page_real_on_shift_pressed (Page* base, GdkEventKey* event);
+gboolean page_get_ctrl_pressed (Page* self);
+gboolean page_get_alt_pressed (Page* self);
+static void editing_host_page_swap_in_original (EditingHostPage* self);
+gboolean page_on_shift_pressed (Page* self, GdkEventKey* event);
+static gboolean editing_host_page_real_on_shift_released (Page* base, GdkEventKey* event);
+static void editing_host_page_swap_out_original (EditingHostPage* self);
+gboolean page_on_shift_released (Page* self, GdkEventKey* event);
+static gboolean editing_host_page_real_on_alt_pressed (Page* base, GdkEventKey* event);
+gboolean page_on_alt_pressed (Page* self, GdkEventKey* event);
+static gboolean editing_host_page_real_on_alt_released (Page* base, GdkEventKey* event);
+gboolean page_get_shift_pressed (Page* self);
+gboolean page_on_alt_released (Page* self, GdkEventKey* event);
+GdkPixbuf* photo_get_prefetched_copy (Photo* self, GError** error);
+GType orientation_get_type (void) G_GNUC_CONST;
+Orientation photo_get_original_orientation (Photo* self);
+GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf);
+GdkPixbuf* single_photo_page_get_unscaled_pixbuf (SinglePhotoPage* self);
+void photo_get_master_dimensions (Photo* self, Dimensions* result);
+static void editing_host_page_activate_tool (EditingHostPage* self, EditingToolsEditingTool* tool);
+gpointer editing_tools_photo_canvas_ref (gpointer instance);
+void editing_tools_photo_canvas_unref (gpointer instance);
+GParamSpec* editing_tools_param_spec_photo_canvas (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void editing_tools_value_set_photo_canvas (GValue* value, gpointer v_object);
+void editing_tools_value_take_photo_canvas (GValue* value, gpointer v_object);
+gpointer editing_tools_value_get_photo_canvas (const GValue* value);
+GType editing_tools_photo_canvas_get_type (void) G_GNUC_CONST;
+static EditingHostPageEditingHostCanvas* editing_host_page_editing_host_canvas_new (EditingHostPage* host_page);
+static EditingHostPageEditingHostCanvas* editing_host_page_editing_host_canvas_construct (GType object_type, EditingHostPage* host_page);
+static GType editing_host_page_editing_host_canvas_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+void editing_tools_editing_tool_activate (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_host_page_place_tool_window (EditingHostPage* self);
+GType editing_tools_editing_tool_window_get_type (void) G_GNUC_CONST;
+EditingToolsEditingToolWindow* editing_tools_editing_tool_get_tool_window (EditingToolsEditingTool* self);
+gboolean editing_tools_editing_tool_window_has_user_moved (EditingToolsEditingToolWindow* self);
+void editing_tools_editing_tool_deactivate (EditingToolsEditingTool* self);
+static void editing_host_page_on_tool_activated (EditingHostPage* self);
+static void _editing_host_page_on_tool_activated_editing_tools_editing_tool_activated (EditingToolsEditingTool* _sender, gpointer self);
+static void editing_host_page_on_tool_deactivated (EditingHostPage* self);
+static void _editing_host_page_on_tool_deactivated_editing_tools_editing_tool_deactivated (EditingToolsEditingTool* _sender, gpointer self);
+static void editing_host_page_on_tool_applied (EditingHostPage* self, Command* command, GdkPixbuf* new_pixbuf, Dimensions* new_max_dim, gboolean needs_improvement);
+static void _editing_host_page_on_tool_applied_editing_tools_editing_tool_applied (EditingToolsEditingTool* _sender, Command* command, GdkPixbuf* new_pixbuf, Dimensions* new_max_dim, gboolean needs_improvement, gpointer self);
+static void editing_host_page_on_tool_cancelled (EditingHostPage* self);
+static void _editing_host_page_on_tool_cancelled_editing_tools_editing_tool_cancelled (EditingToolsEditingTool* _sender, gpointer self);
+static void editing_host_page_on_tool_aborted (EditingHostPage* self);
+static void _editing_host_page_on_tool_aborted_editing_tools_editing_tool_aborted (EditingToolsEditingTool* _sender, gpointer self);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+static gboolean _editing_host_page_update_pixbuf_gsource_func (gpointer self);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+void command_manager_execute (CommandManager* self, Command* command);
+gboolean editing_host_page_on_double_click (EditingHostPage* self, GdkEventButton* event);
+static gboolean editing_host_page_real_on_double_click (EditingHostPage* self, GdkEventButton* event);
+static gboolean editing_host_page_real_on_left_click (Page* base, GdkEventButton* event);
+void page_suspend_cursor_hiding (Page* self);
+gboolean single_photo_page_is_inside_pixbuf (SinglePhotoPage* self, gint x, gint y);
+void editing_tools_editing_tool_on_left_click (EditingToolsEditingTool* self, gint x, gint y);
+static gboolean editing_host_page_real_on_left_released (Page* base, GdkEventButton* event);
+ZoomBuffer* single_photo_page_get_zoom_buffer (SinglePhotoPage* self);
+void page_restore_cursor_hiding (Page* self);
+void editing_tools_editing_tool_on_left_released (EditingToolsEditingTool* self, gint x, gint y);
+static gboolean editing_host_page_real_on_right_click (Page* base, GdkEventButton* event);
+gboolean page_on_context_buttonpress (Page* self, GdkEventButton* event);
+static gboolean editing_host_page_on_fetch_original (EditingHostPage* self);
+static gboolean _editing_host_page_on_fetch_original_gsource_func (gpointer self);
+gint data_collection_get_count (DataCollection* self);
+static gboolean editing_host_page_is_panning_possible (EditingHostPage* self);
+gint zoom_state_get_zoomed_width (ZoomState *self);
+gint zoom_state_get_zoomed_height (ZoomState *self);
+static gboolean editing_host_page_real_on_motion (Page* base, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+void editing_tools_editing_tool_on_motion (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask);
+void single_photo_page_on_interactive_pan (SinglePhotoPage* self, ZoomState* interactive_zoom_state);
+gboolean page_on_motion (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+static gboolean editing_host_page_real_on_leave_notify_event (Page* base);
+gboolean editing_tools_editing_tool_on_leave_notify_event (EditingToolsEditingTool* self);
+gboolean page_on_leave_notify_event (Page* self);
+static void editing_host_page_real_on_move (Page* base, GdkRectangle* rect);
+void page_on_move (Page* self, GdkRectangle* rect);
+static void editing_host_page_real_on_move_finished (Page* base, GdkRectangle* rect);
+void page_on_move_finished (Page* self, GdkRectangle* rect);
+static gboolean editing_host_page_on_keyboard_pan_event (EditingHostPage* self, GdkEventKey* event);
+static gboolean editing_host_page_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+gboolean editing_tools_editing_tool_on_keypress (EditingToolsEditingTool* self, GdkEventKey* event);
+static void editing_host_page_real_new_surface (SinglePhotoPage* base, cairo_t* default_ctx, Dimensions* dim);
+void editing_tools_photo_canvas_set_surface (EditingToolsPhotoCanvas* self, cairo_t* default_ctx, Dimensions* surface_dim);
+static void editing_host_page_real_updated_pixbuf (SinglePhotoPage* base, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+void editing_tools_photo_canvas_resized_pixbuf (EditingToolsPhotoCanvas* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position);
+void single_photo_page_get_scaled_pixbuf_position (SinglePhotoPage* self, GdkRectangle* result);
+GdkPixbuf* editing_host_page_get_bottom_left_trinket (EditingHostPage* self, gint scale);
+static GdkPixbuf* editing_host_page_real_get_bottom_left_trinket (EditingHostPage* self, gint scale);
+GdkPixbuf* editing_host_page_get_top_left_trinket (EditingHostPage* self, gint scale);
+static GdkPixbuf* editing_host_page_real_get_top_left_trinket (EditingHostPage* self, gint scale);
+GdkPixbuf* editing_host_page_get_top_right_trinket (EditingHostPage* self, gint scale);
+static GdkPixbuf* editing_host_page_real_get_top_right_trinket (EditingHostPage* self, gint scale);
+GdkPixbuf* editing_host_page_get_bottom_right_trinket (EditingHostPage* self, gint scale);
+static GdkPixbuf* editing_host_page_real_get_bottom_right_trinket (EditingHostPage* self, gint scale);
+static void editing_host_page_real_paint (SinglePhotoPage* base, cairo_t* ctx, Dimensions* ctx_dim);
+void editing_tools_editing_tool_paint (EditingToolsEditingTool* self, cairo_t* ctx);
+void set_source_color_from_string (cairo_t* ctx, const gchar* spec);
+void single_photo_page_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+GType rotation_get_type (void) G_GNUC_CONST;
+static void editing_host_page_rotate (EditingHostPage* self, Rotation rotation, const gchar* name, const gchar* description);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+GType rotate_single_command_get_type (void) G_GNUC_CONST;
+RotateSingleCommand* rotate_single_command_new (Photo* photo, Rotation rotation, const gchar* name, const gchar* explanation);
+RotateSingleCommand* rotate_single_command_construct (GType object_type, Photo* photo, Rotation rotation, const gchar* name, const gchar* explanation);
+#define RESOURCES_ROTATE_CW_FULL_LABEL _ ("Rotate Right")
+void editing_host_page_on_rotate_counterclockwise (EditingHostPage* self);
+#define RESOURCES_ROTATE_CCW_FULL_LABEL _ ("Rotate Left")
+#define RESOURCES_ROTATE_CCW_TOOLTIP _ ("Rotate the photos left")
+void editing_host_page_on_flip_horizontally (EditingHostPage* self);
+#define RESOURCES_HFLIP_LABEL _ ("Flip Horizontally")
+void editing_host_page_on_flip_vertically (EditingHostPage* self);
+#define RESOURCES_VFLIP_LABEL _ ("Flip Vertically")
+void editing_host_page_on_revert (EditingHostPage* self);
+gboolean revert_editable_dialog (GtkWindow* owner, GeeCollection* photos);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+GeeCollection* view_collection_get_sources (ViewCollection* self);
+void photo_revert_to_master (Photo* self, gboolean notify);
+GType generic_photo_transformation_command_get_type (void) G_GNUC_CONST;
+GType revert_single_command_get_type (void) G_GNUC_CONST;
+RevertSingleCommand* revert_single_command_new (Photo* photo);
+RevertSingleCommand* revert_single_command_construct (GType object_type, Photo* photo);
+void editing_host_page_on_edit_title (EditingHostPage* self);
+GType library_photo_get_type (void) G_GNUC_CONST;
+gpointer text_entry_dialog_mediator_ref (gpointer instance);
+void text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_text_entry_dialog_mediator (const GValue* value);
+GType text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType edit_title_dialog_get_type (void) G_GNUC_CONST;
+gchar* media_source_get_title (MediaSource* self);
+EditTitleDialog* edit_title_dialog_new (const gchar* photo_title);
+EditTitleDialog* edit_title_dialog_construct (GType object_type, const gchar* photo_title);
+gchar* edit_title_dialog_execute (EditTitleDialog* self);
+GType edit_title_command_get_type (void) G_GNUC_CONST;
+EditTitleCommand* edit_title_command_new (MediaSource* source, const gchar* new_title);
+EditTitleCommand* edit_title_command_construct (GType object_type, MediaSource* source, const gchar* new_title);
+void editing_host_page_on_edit_comment (EditingHostPage* self);
+gpointer multi_text_entry_dialog_mediator_ref (gpointer instance);
+void multi_text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_multi_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_multi_text_entry_dialog_mediator (const GValue* value);
+GType multi_text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType edit_comment_dialog_get_type (void) G_GNUC_CONST;
+gchar* media_source_get_comment (MediaSource* self);
+EditCommentDialog* edit_comment_dialog_new (const gchar* comment, gboolean is_event);
+EditCommentDialog* edit_comment_dialog_construct (GType object_type, const gchar* comment, gboolean is_event);
+gchar* edit_comment_dialog_execute (EditCommentDialog* self);
+GType edit_comment_command_get_type (void) G_GNUC_CONST;
+EditCommentCommand* edit_comment_command_new (MediaSource* source, const gchar* new_comment);
+EditCommentCommand* edit_comment_command_construct (GType object_type, MediaSource* source, const gchar* new_comment);
+void editing_host_page_on_adjust_date_time (EditingHostPage* self);
+GType adjust_date_time_dialog_get_type (void) G_GNUC_CONST;
+GType dateable_get_type (void) G_GNUC_CONST;
+GType direct_photo_page_get_type (void) G_GNUC_CONST;
+AdjustDateTimeDialog* adjust_date_time_dialog_new (Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video);
+AdjustDateTimeDialog* adjust_date_time_dialog_construct (GType object_type, Dateable* source, gint photo_count, gboolean display_options, gboolean contains_video, gboolean only_video);
+gboolean adjust_date_time_dialog_execute (AdjustDateTimeDialog* self, gint64* time_shift, gboolean* keep_relativity, gboolean* modify_originals);
+GeeList* view_collection_get_selected (ViewCollection* self);
+GType adjust_date_time_photo_command_get_type (void) G_GNUC_CONST;
+AdjustDateTimePhotoCommand* adjust_date_time_photo_command_new (Dateable* dateable, gint64 time_shift, gboolean modify_original);
+AdjustDateTimePhotoCommand* adjust_date_time_photo_command_construct (GType object_type, Dateable* dateable, gint64 time_shift, gboolean modify_original);
+void editing_host_page_on_set_background (EditingHostPage* self);
+gpointer set_background_dialog_ref (gpointer instance);
+void set_background_dialog_unref (gpointer instance);
+GParamSpec* param_spec_set_background_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_set_background_dialog (GValue* value, gpointer v_object);
+void value_take_set_background_dialog (GValue* value, gpointer v_object);
+gpointer value_get_set_background_dialog (const GValue* value);
+GType set_background_dialog_get_type (void) G_GNUC_CONST;
+GType set_background_photo_dialog_get_type (void) G_GNUC_CONST;
+SetBackgroundPhotoDialog* set_background_photo_dialog_new (void);
+SetBackgroundPhotoDialog* set_background_photo_dialog_construct (GType object_type);
+gboolean set_background_photo_dialog_execute (SetBackgroundPhotoDialog* self, gboolean* desktop_background, gboolean* screensaver);
+void page_window_set_busy_cursor (PageWindow* self);
+void desktop_integration_set_background (Photo* photo, gboolean desktop, gboolean screensaver);
+void page_window_set_normal_cursor (PageWindow* self);
+static gboolean editing_host_page_real_on_ctrl_pressed (Page* base, GdkEventKey* event);
+#define RESOURCES_COUNTERCLOCKWISE "object-rotate-left"
+#define RESOURCES_ROTATE_CCW_LABEL _ ("Rotate")
+static void _editing_host_page_on_rotate_counterclockwise_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+gboolean page_on_ctrl_pressed (Page* self, GdkEventKey* event);
+static gboolean editing_host_page_real_on_ctrl_released (Page* base, GdkEventKey* event);
+gboolean page_on_ctrl_released (Page* self, GdkEventKey* event);
+void editing_host_page_on_tool_button_toggled (EditingHostPage* self, GtkToggleToolButton* toggle, EditingToolsEditingToolFactory factory);
+void editing_host_page_toggle_crop (EditingHostPage* self);
+void editing_host_page_toggle_straighten (EditingHostPage* self);
+void editing_host_page_toggle_redeye (EditingHostPage* self);
+void editing_host_page_toggle_adjust (EditingHostPage* self);
+GType editing_tools_straighten_tool_get_type (void) G_GNUC_CONST;
+EditingToolsStraightenTool* editing_tools_straighten_tool_factory (void);
+static EditingToolsEditingTool* _editing_tools_straighten_tool_factory_editing_tools_editing_tool_factory (void);
+GType editing_tools_crop_tool_get_type (void) G_GNUC_CONST;
+EditingToolsCropTool* editing_tools_crop_tool_factory (void);
+static EditingToolsEditingTool* _editing_tools_crop_tool_factory_editing_tools_editing_tool_factory (void);
+GType editing_tools_redeye_tool_get_type (void) G_GNUC_CONST;
+EditingToolsRedeyeTool* editing_tools_redeye_tool_factory (void);
+static EditingToolsEditingTool* _editing_tools_redeye_tool_factory_editing_tools_editing_tool_factory (void);
+GType editing_tools_adjust_tool_get_type (void) G_GNUC_CONST;
+EditingToolsAdjustTool* editing_tools_adjust_tool_factory (void);
+static EditingToolsEditingTool* _editing_tools_adjust_tool_factory_editing_tools_editing_tool_factory (void);
+gboolean editing_tools_adjust_tool_enhance (EditingToolsAdjustTool* self);
+GType enhance_single_command_get_type (void) G_GNUC_CONST;
+EnhanceSingleCommand* enhance_single_command_new (Photo* photo);
+EnhanceSingleCommand* enhance_single_command_construct (GType object_type, Photo* photo);
+void editing_host_page_on_copy_adjustments (EditingHostPage* self);
+gpointer pixel_transformation_bundle_ref (gpointer instance);
+void pixel_transformation_bundle_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation_bundle (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation_bundle (GValue* value, gpointer v_object);
+void value_take_pixel_transformation_bundle (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation_bundle (const GValue* value);
+GType pixel_transformation_bundle_get_type (void) G_GNUC_CONST;
+void pixel_transformation_bundle_set_copied_color_adjustments (PixelTransformationBundle* adjustments);
+PixelTransformationBundle* photo_get_color_adjustments (Photo* self);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void editing_host_page_on_paste_adjustments (EditingHostPage* self);
+PixelTransformationBundle* pixel_transformation_bundle_get_copied_color_adjustments (void);
+GType adjust_colors_single_command_get_type (void) G_GNUC_CONST;
+#define RESOURCES_PASTE_ADJUSTMENTS_LABEL _ ("Paste Color Adjustments")
+#define RESOURCES_PASTE_ADJUSTMENTS_TOOLTIP _ ("Apply copied color adjustments to the selected photos")
+AdjustColorsSingleCommand* adjust_colors_single_command_new (Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+AdjustColorsSingleCommand* adjust_colors_single_command_construct (GType object_type, Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+static void editing_host_page_real_on_next_photo (SinglePhotoPage* base);
+DataView* view_collection_get_next (ViewCollection* self, DataView* view);
+static void editing_host_page_real_on_previous_photo (SinglePhotoPage* base);
+DataView* view_collection_get_previous (ViewCollection* self, DataView* view);
+gboolean editing_host_page_has_current_tool (EditingHostPage* self);
+void editing_host_page_unset_view_collection (EditingHostPage* self);
+#define EDITING_HOST_PAGE_EDITING_HOST_CANVAS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS, EditingHostPageEditingHostCanvasPrivate))
+enum {
+ EDITING_HOST_PAGE_EDITING_HOST_CANVAS_DUMMY_PROPERTY
+};
+cairo_t* single_photo_page_get_cairo_context (SinglePhotoPage* self);
+GdkPixbuf* single_photo_page_get_scaled_pixbuf (SinglePhotoPage* self);
+EditingToolsPhotoCanvas* editing_tools_photo_canvas_construct (GType object_type, GtkWindow* container, GdkWindow* drawing_window, Photo* photo, cairo_t* default_ctx, Dimensions* surface_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position);
+static void editing_host_page_editing_host_canvas_real_repaint (EditingToolsPhotoCanvas* base);
+static void editing_host_page_editing_host_canvas_finalize (EditingToolsPhotoCanvas* obj);
+static void editing_host_page_finalize (GObject* obj);
+GType library_photo_page_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+static GType library_photo_page_library_photo_page_view_filter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define LIBRARY_PHOTO_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPagePrivate))
+enum {
+ LIBRARY_PHOTO_PAGE_DUMMY_PROPERTY
+};
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+static void library_photo_page_on_photo_destroyed (LibraryPhotoPage* self, DataSource* source);
+static void _library_photo_page_on_photo_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+static void library_photo_page_on_metadata_altered (LibraryPhotoPage* self, GeeMap* map);
+static void _library_photo_page_on_metadata_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+static void library_photo_page_on_external_app_changed (LibraryPhotoPage* self);
+static void _library_photo_page_on_external_app_changed_configuration_facade_external_app_changed (ConfigurationFacade* _sender, gpointer self);
+static LibraryPhotoPageLibraryPhotoPageViewFilter* library_photo_page_library_photo_page_view_filter_new (void);
+static LibraryPhotoPageLibraryPhotoPageViewFilter* library_photo_page_library_photo_page_view_filter_construct (GType object_type);
+LibraryPhotoPage* library_photo_page_new (void);
+LibraryPhotoPage* library_photo_page_construct (GType object_type);
+static void library_photo_page_on_photos_altered (LibraryPhotoPage* self);
+static void _library_photo_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+void view_collection_install_view_filter (ViewCollection* self, ViewFilter* f);
+static void library_photo_page_on_photo_unlinking (LibraryPhotoPage* self, GeeCollection* unlinking);
+static void _library_photo_page_on_photo_unlinking_source_collection_items_unlinking (SourceCollection* _sender, GeeCollection* unlinking, gpointer self);
+static void library_photo_page_on_photo_relinked (LibraryPhotoPage* self, GeeCollection* relinked);
+static void _library_photo_page_on_photo_relinked_source_collection_items_relinked (SourceCollection* _sender, GeeCollection* relinked, gpointer self);
+gboolean library_photo_page_not_trashed_view_filter (LibraryPhotoPage* self, DataView* view);
+gboolean media_source_is_trashed (MediaSource* self);
+static void library_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* library_photo_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define RESOURCES_SAVE_AS_LABEL _ ("Save _As")
+#define TRANSLATABLE "translatable"
+static void library_photo_page_on_export (LibraryPhotoPage* self);
+static void _library_photo_page_on_export_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EXPORT_MENU _ ("_Export...")
+static void _vala_array_add193 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_PRINT_LABEL _ ("_Print")
+static void library_photo_page_on_print (LibraryPhotoPage* self);
+static void _library_photo_page_on_print_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PRINT_MENU _ ("_Print...")
+static void _vala_array_add194 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_PUBLISH "applications-internet"
+static void library_photo_page_on_publish (LibraryPhotoPage* self);
+static void _library_photo_page_on_publish_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PUBLISH_MENU _ ("Pu_blish...")
+#define RESOURCES_PUBLISH_TOOLTIP _ ("Publish to various websites")
+static void _vala_array_add195 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REMOVE_LABEL _ ("_Remove")
+static void library_photo_page_on_remove_from_library (LibraryPhotoPage* self);
+static void _library_photo_page_on_remove_from_library_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_REMOVE_FROM_LIBRARY_MENU _ ("R_emove From Library")
+static void _vala_array_add196 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_move_to_trash (LibraryPhotoPage* self);
+static void _library_photo_page_on_move_to_trash_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_MOVE_TO_TRASH_MENU _ ("_Move to Trash")
+static void _vala_array_add197 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_view_menu (LibraryPhotoPage* self);
+static void _library_photo_page_on_view_menu_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add198 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add199 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _single_photo_page_on_previous_photo_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add200 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _single_photo_page_on_next_photo_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add201 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ROTATE_CW_MENU _ ("Rotate _Right")
+static void _vala_array_add202 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ROTATE_CCW_MENU _ ("Rotate _Left")
+static void _vala_array_add203 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_HFLIP "object-flip-horizontal"
+static void _editing_host_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_HFLIP_MENU _ ("Flip Hori_zontally")
+static void _vala_array_add204 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_VFLIP "object-flip-vertical"
+static void _editing_host_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_VFLIP_MENU _ ("Flip Verti_cally")
+static void _vala_array_add205 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ENHANCE_MENU _ ("_Enhance")
+static void _vala_array_add206 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_copy_adjustments_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_COPY_ADJUSTMENTS_MENU _ ("_Copy Color Adjustments")
+#define RESOURCES_COPY_ADJUSTMENTS_TOOLTIP _ ("Copy the color adjustments applied to the photo")
+static void _vala_array_add207 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_paste_adjustments_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PASTE_ADJUSTMENTS_MENU _ ("_Paste Color Adjustments")
+static void _vala_array_add208 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_toggle_crop_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_CROP_MENU _ ("_Crop")
+static void _vala_array_add209 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REFRESH_LABEL _ ("_Refresh")
+static void _editing_host_page_toggle_straighten_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_STRAIGHTEN_MENU _ ("_Straighten")
+static void _vala_array_add210 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_toggle_redeye_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_RED_EYE_MENU _ ("_Red-eye")
+static void _vala_array_add211 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_toggle_adjust_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ADJUST_MENU _ ("_Adjust")
+static void _vala_array_add212 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REVERT_TO_SAVED_LABEL _ ("_Revert")
+static void _editing_host_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_REVERT_MENU _ ("Re_vert to Original")
+static void _vala_array_add213 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_edit_title_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EDIT_TITLE_MENU _ ("Edit _Title...")
+static void _vala_array_add214 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EDIT_COMMENT_MENU _ ("Edit _Comment...")
+static void _vala_array_add215 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ADJUST_DATE_TIME_MENU _ ("_Adjust Date and Time...")
+static void _vala_array_add216 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_EDIT_LABEL _ ("_Edit")
+static void library_photo_page_on_external_edit (LibraryPhotoPage* self);
+static void _library_photo_page_on_external_edit_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EXTERNAL_EDIT_MENU _ ("Open With E_xternal Editor")
+static void _vala_array_add217 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_external_edit_raw (LibraryPhotoPage* self);
+static void _library_photo_page_on_external_edit_raw_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_EXTERNAL_EDIT_RAW_MENU _ ("Open With RA_W Editor")
+static void _vala_array_add218 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_send_to (LibraryPhotoPage* self);
+static void _library_photo_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_SEND_TO_MENU _ ("Send _To...")
+static void _vala_array_add219 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_SET_BACKGROUND_MENU _ ("Set as _Desktop Background")
+#define RESOURCES_SET_BACKGROUND_TOOLTIP _ ("Set selected image to be the new desktop background")
+static void _vala_array_add220 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_flag_unflag (LibraryPhotoPage* self);
+static void _library_photo_page_on_flag_unflag_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_FLAG_MENU _ ("_Flag")
+static void _vala_array_add221 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_RATING_MENU _ ("_Set Rating")
+static void _vala_array_add222 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_increase_rating (LibraryPhotoPage* self);
+static void _library_photo_page_on_increase_rating_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_INCREASE_RATING_MENU _ ("_Increase")
+static void _vala_array_add223 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_decrease_rating (LibraryPhotoPage* self);
+static void _library_photo_page_on_decrease_rating_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_DECREASE_RATING_MENU _ ("_Decrease")
+static void _vala_array_add224 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_rate_rejected (LibraryPhotoPage* self);
+static void _library_photo_page_on_rate_rejected_gtk_action_callback (GtkAction* action, gpointer self);
+GType rating_get_type (void) G_GNUC_CONST;
+const gchar* resources_rating_menu (Rating rating);
+static void _vala_array_add225 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_rate_unrated (LibraryPhotoPage* self);
+static void _library_photo_page_on_rate_unrated_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add226 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_rate_one (LibraryPhotoPage* self);
+static void _library_photo_page_on_rate_one_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add227 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_rate_two (LibraryPhotoPage* self);
+static void _library_photo_page_on_rate_two_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add228 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_rate_three (LibraryPhotoPage* self);
+static void _library_photo_page_on_rate_three_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add229 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_rate_four (LibraryPhotoPage* self);
+static void _library_photo_page_on_rate_four_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add230 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_rate_five (LibraryPhotoPage* self);
+static void _library_photo_page_on_rate_five_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add231 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_IN_LABEL _ ("Zoom _In")
+static void _editing_host_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add232 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_OUT_LABEL _ ("Zoom _Out")
+static void _editing_host_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add233 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_FIT_LABEL _ ("Best _Fit")
+static void _editing_host_page_snap_zoom_to_min_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add234 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_100_LABEL _ ("_Normal Size")
+static void _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add235 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _editing_host_page_snap_zoom_to_max_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add236 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_add_tags (LibraryPhotoPage* self);
+static void _library_photo_page_on_add_tags_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ADD_TAGS_MENU _ ("Add _Tags...")
+static void _vala_array_add237 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_modify_tags (LibraryPhotoPage* self);
+static void _library_photo_page_on_modify_tags_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_MODIFY_TAGS_MENU _ ("Modif_y Tags...")
+static void _vala_array_add238 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_photo_page_on_slideshow (LibraryPhotoPage* self);
+static void _library_photo_page_on_slideshow_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add239 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add240 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_SEND_TO_CONTEXT_MENU _ ("Send T_o...")
+static void _vala_array_add241 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ADD_TAGS_CONTEXT_MENU _ ("_Add Tags...")
+static void _vala_array_add242 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static GtkToggleActionEntry* library_photo_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1);
+GtkToggleActionEntry* page_init_collect_toggle_action_entries (Page* self, int* result_length1);
+static void library_photo_page_on_display_ratings (LibraryPhotoPage* self, GtkAction* action);
+static void _library_photo_page_on_display_ratings_gtk_action_callback (GtkAction* action, gpointer self);
+gboolean configuration_facade_get_display_photo_ratings (ConfigurationFacade* self);
+#define RESOURCES_VIEW_RATINGS_MENU _ ("_Ratings")
+#define RESOURCES_VIEW_RATINGS_TOOLTIP _ ("Display each photo's rating")
+static void _vala_array_add243 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static InjectionGroup** library_photo_page_real_init_collect_injection_groups (Page* base, int* result_length1);
+InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1);
+InjectionGroup* injection_group_new (const gchar* path);
+InjectionGroup* injection_group_construct (GType object_type, const gchar* path);
+void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action);
+static void _vala_array_add244 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add245 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add246 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void library_photo_page_real_register_radio_actions (Page* base, GtkActionGroup* action_group);
+gchar* raw_developer_get_label (RawDeveloper self);
+static void _vala_array_add247 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add248 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void library_photo_page_on_raw_developer_changed (LibraryPhotoPage* self, GtkAction* action, GtkAction* current);
+static void _library_photo_page_on_raw_developer_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self);
+void page_register_radio_actions (Page* self, GtkActionGroup* action_group);
+static void library_photo_page_set_display_ratings (LibraryPhotoPage* self, gboolean display);
+void configuration_facade_set_display_photo_ratings (ConfigurationFacade* self, gboolean display);
+GtkAction* page_get_action (Page* self, const gchar* name);
+static void library_photo_page_real_update_actions (Page* base, gint selected_count, gint count);
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+gchar* configuration_facade_get_external_photo_app (ConfigurationFacade* self);
+static void library_photo_page_update_rating_menu_item_sensitivity (LibraryPhotoPage* self);
+static void library_photo_page_update_development_menu_item_sensitivity (LibraryPhotoPage* self);
+gboolean photo_has_color_adjustments (Photo* self);
+gboolean pixel_transformation_bundle_has_copied_color_adjustments (void);
+static void library_photo_page_update_flag_action (LibraryPhotoPage* self);
+gchar* configuration_facade_get_external_raw_app (ConfigurationFacade* self);
+void page_set_action_visible (Page* self, const gchar* name, gboolean visible);
+void library_photo_page_developer_changed (LibraryPhotoPage* self, RawDeveloper rd);
+static void library_photo_page_real_developer_changed (LibraryPhotoPage* self, RawDeveloper rd);
+gboolean raw_developer_is_equivalent (RawDeveloper self, RawDeveloper d);
+RawDeveloper photo_get_raw_developer (Photo* self);
+gboolean dialogs_confirm_warn_developer_changed (gint number);
+GType multiple_data_source_command_get_type (void) G_GNUC_CONST;
+GType set_raw_developer_command_get_type (void) G_GNUC_CONST;
+SetRawDeveloperCommand* set_raw_developer_command_new (GeeIterable* iter, RawDeveloper developer);
+SetRawDeveloperCommand* set_raw_developer_command_construct (GType object_type, GeeIterable* iter, RawDeveloper developer);
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+#define RESOURCES_UNFLAG_MENU _ ("Un_flag")
+void library_photo_page_display_for_collection (LibraryPhotoPage* self, CollectionPage* return_page, Photo* photo, ViewCollection* view);
+void library_photo_page_on_page_destroyed (LibraryPhotoPage* self);
+static void _library_photo_page_on_page_destroyed_gtk_widget_destroy (GtkWidget* _sender, gpointer self);
+CollectionPage* library_photo_page_get_controller_page (LibraryPhotoPage* self);
+static void library_photo_page_real_switched_to (Page* base);
+static void library_photo_page_update_zoom_menu_item_sensitivity (LibraryPhotoPage* self);
+static GdkPixbuf* library_photo_page_real_get_bottom_left_trinket (EditingHostPage* base, gint scale);
+GdkPixbuf* resources_get_rating_trinket (Rating rating, gint scale);
+Rating media_source_get_rating (MediaSource* self);
+static GdkPixbuf* library_photo_page_real_get_top_right_trinket (EditingHostPage* base, gint scale);
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+#define RESOURCES_ICON_FLAGGED_TRINKET "flag-trinket.png"
+#define RESOURCES_DEFAULT_ICON_SCALE 24
+void app_window_go_fullscreen (AppWindow* self, Page* page);
+SlideshowPage* slideshow_page_new (SourceCollection* sources, ViewCollection* controller, Photo* start);
+SlideshowPage* slideshow_page_construct (GType object_type, SourceCollection* sources, ViewCollection* controller, Photo* start);
+GType slideshow_page_get_type (void) G_GNUC_CONST;
+static void library_photo_page_real_on_increase_size (EditingHostPage* base);
+static void library_photo_page_real_on_decrease_size (EditingHostPage* base);
+static gboolean library_photo_page_real_on_zoom_slider_key_press (EditingHostPage* base, GdkEventKey* event);
+static void library_photo_page_return_to_collection (LibraryPhotoPage* self);
+static void library_photo_page_real_update_ui (EditingHostPage* base, gboolean missing);
+static void library_photo_page_real_notify_photo_backing_missing (EditingHostPage* base, Photo* photo, gboolean missing);
+void media_source_mark_offline (MediaSource* self);
+void media_source_mark_online (MediaSource* self);
+static gboolean library_photo_page_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+static gboolean library_photo_page_real_on_double_click (EditingHostPage* base, GdkEventButton* event);
+void fullscreen_window_close (FullscreenWindow* self);
+static gboolean library_photo_page_real_on_left_released (Page* base, GdkEventButton* event);
+gboolean page_on_left_released (Page* self, GdkEventButton* event);
+static GtkMenu* library_photo_page_get_context_menu (LibraryPhotoPage* self);
+static gboolean library_photo_page_real_on_context_buttonpress (Page* base, GdkEventButton* event);
+gboolean page_popup_context_menu (Page* self, GtkMenu* context_menu, GdkEventButton* event);
+static gboolean library_photo_page_real_on_context_keypress (Page* base);
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_switch_to_page (LibraryWindow* self, Page* page);
+void library_window_switch_to_library_page (LibraryWindow* self);
+void remove_from_app (GeeCollection* sources, const gchar* dialog_title, const gchar* progress_dialog_text);
+GType event_page_get_type (void) G_GNUC_CONST;
+void library_window_set_page_switching_enabled (LibraryWindow* self, gboolean should_enable);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_new (GeeCollection* sources, gboolean to_trash);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_construct (GType object_type, GeeCollection* sources, gboolean to_trash);
+GType trash_untrash_photos_command_get_type (void) G_GNUC_CONST;
+FlagUnflagCommand* flag_unflag_command_new (GeeCollection* sources, gboolean flag);
+FlagUnflagCommand* flag_unflag_command_construct (GType object_type, GeeCollection* sources, gboolean flag);
+GType multiple_data_source_at_once_command_get_type (void) G_GNUC_CONST;
+GType flag_unflag_command_get_type (void) G_GNUC_CONST;
+static void library_photo_page_on_photo_removed (LibraryPhotoPage* self, LibraryPhoto* photo);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+gpointer print_manager_ref (gpointer instance);
+void print_manager_unref (gpointer instance);
+GParamSpec* param_spec_print_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_print_manager (GValue* value, gpointer v_object);
+void value_take_print_manager (GValue* value, gpointer v_object);
+gpointer value_get_print_manager (const GValue* value);
+GType print_manager_get_type (void) G_GNUC_CONST;
+PrintManager* print_manager_get_instance (void);
+void print_manager_spool_photo (PrintManager* self, GeeCollection* to_print);
+GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t);
+void photo_open_with_external_editor (Photo* self, GError** error);
+void open_external_editor_error_dialog (GError* err, Photo* photo);
+void photo_open_with_raw_external_editor (Photo* self, GError** error);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gchar* resources_launch_editor_failed (GError* err);
+void desktop_integration_send_to (GeeCollection* media);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+GType export_dialog_get_type (void) G_GNUC_CONST;
+ExportDialog* export_dialog_new (const gchar* title);
+ExportDialog* export_dialog_construct (GType object_type, const gchar* title);
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+void export_format_parameters_last (ExportFormatParameters* result);
+gboolean export_dialog_execute (ExportDialog* self, gint* scale, ScaleConstraint* constraint, ExportFormatParameters* parameters);
+GFile* export_ui_choose_file (const gchar* current_file_basename);
+gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params);
+void scaling_for_constraint (ScaleConstraint constraint, gint scale, gboolean scale_up, Scaling* result);
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error);
+PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params);
+void publishing_ui_publishing_dialog_go (GeeCollection* to_publish);
+GType set_rating_single_command_get_type (void) G_GNUC_CONST;
+SetRatingSingleCommand* set_rating_single_command_new_inc_dec (DataSource* source, gboolean is_incrementing);
+SetRatingSingleCommand* set_rating_single_command_construct_inc_dec (GType object_type, DataSource* source, gboolean is_incrementing);
+static void library_photo_page_on_set_rating (LibraryPhotoPage* self, Rating rating);
+SetRatingSingleCommand* set_rating_single_command_new (DataSource* source, Rating rating);
+SetRatingSingleCommand* set_rating_single_command_construct (GType object_type, DataSource* source, Rating rating);
+gboolean rating_can_increase (Rating self);
+gboolean rating_can_decrease (Rating self);
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+gboolean alteration_has_subject (Alteration* self, const gchar* subject);
+GType tags_dialog_get_type (void) G_GNUC_CONST;
+GType add_tags_dialog_get_type (void) G_GNUC_CONST;
+AddTagsDialog* add_tags_dialog_new (void);
+AddTagsDialog* add_tags_dialog_construct (GType object_type);
+gchar** add_tags_dialog_execute (AddTagsDialog* self, int* result_length1);
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+HierarchicalTagIndex* hierarchical_tag_index_get_global_index (void);
+gchar** hierarchical_tag_index_get_paths_for_names_array (HierarchicalTagIndex* self, gchar** names, int names_length1, int* result_length1);
+AddTagsCommand* add_tags_command_new (gchar** paths, int paths_length1, GeeCollection* sources);
+AddTagsCommand* add_tags_command_construct (GType object_type, gchar** paths, int paths_length1, GeeCollection* sources);
+GType add_tags_command_get_type (void) G_GNUC_CONST;
+GType modify_tags_dialog_get_type (void) G_GNUC_CONST;
+ModifyTagsDialog* modify_tags_dialog_new (MediaSource* source);
+ModifyTagsDialog* modify_tags_dialog_construct (GType object_type, MediaSource* source);
+GType tag_get_type (void) G_GNUC_CONST;
+GeeArrayList* modify_tags_dialog_execute (ModifyTagsDialog* self);
+ModifyTagsCommand* modify_tags_command_new (MediaSource* media, GeeCollection* new_tag_list);
+ModifyTagsCommand* modify_tags_command_construct (GType object_type, MediaSource* media, GeeCollection* new_tag_list);
+GType modify_tags_command_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_PHOTO_PAGE_LIBRARY_PHOTO_PAGE_VIEW_FILTER_DUMMY_PROPERTY
+};
+static gboolean library_photo_page_library_photo_page_view_filter_real_predicate (ViewFilter* base, DataView* view);
+ViewFilter* view_filter_construct (GType object_type);
+static void library_photo_page_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static GType zoom_buffer_object_state_get_type (void) {
+ static volatile gsize zoom_buffer_object_state_type_id__volatile = 0;
+ if (g_once_init_enter (&zoom_buffer_object_state_type_id__volatile)) {
+ static const GEnumValue values[] = {{ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_LOADED, "ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_LOADED", "source-not-loaded"}, {ZOOM_BUFFER_OBJECT_STATE_SOURCE_LOAD_IN_PROGRESS, "ZOOM_BUFFER_OBJECT_STATE_SOURCE_LOAD_IN_PROGRESS", "source-load-in-progress"}, {ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_TRANSFORMED, "ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_TRANSFORMED", "source-not-transformed"}, {ZOOM_BUFFER_OBJECT_STATE_TRANSFORMED_READY, "ZOOM_BUFFER_OBJECT_STATE_TRANSFORMED_READY", "transformed-ready"}, {0, NULL, NULL}};
+ GType zoom_buffer_object_state_type_id;
+ zoom_buffer_object_state_type_id = g_enum_register_static ("ZoomBufferObjectState", values);
+ g_once_init_leave (&zoom_buffer_object_state_type_id__volatile, zoom_buffer_object_state_type_id);
+ }
+ return zoom_buffer_object_state_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 86 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2545 "PhotoPage.c"
+}
+
+
+ZoomBuffer* zoom_buffer_construct (GType object_type, SinglePhotoPage* parent_page, Photo* backing_photo, GdkPixbuf* preview_image) {
+ ZoomBuffer * self = NULL;
+ SinglePhotoPage* _tmp0_ = NULL;
+ SinglePhotoPage* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Workers* _tmp6_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_SINGLE_PHOTO_PAGE (parent_page), NULL);
+#line 84 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (backing_photo), NULL);
+#line 84 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (preview_image), NULL);
+#line 84 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = (ZoomBuffer*) g_object_new (object_type, NULL);
+#line 86 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = parent_page;
+#line 86 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 86 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->parent_page);
+#line 86 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->parent_page = _tmp1_;
+#line 87 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = preview_image;
+#line 87 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 87 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->preview_image);
+#line 87 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->preview_image = _tmp3_;
+#line 88 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = backing_photo;
+#line 88 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 88 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->backing_photo);
+#line 88 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->backing_photo = _tmp5_;
+#line 89 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = workers_new ((guint) 2, FALSE);
+#line 89 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _workers_unref0 (self->priv->workers);
+#line 89 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->workers = _tmp6_;
+#line 84 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self;
+#line 2598 "PhotoPage.c"
+}
+
+
+ZoomBuffer* zoom_buffer_new (SinglePhotoPage* parent_page, Photo* backing_photo, GdkPixbuf* preview_image) {
+#line 84 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return zoom_buffer_construct (TYPE_ZOOM_BUFFER, parent_page, backing_photo, preview_image);
+#line 2605 "PhotoPage.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 93 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 2612 "PhotoPage.c"
+}
+
+
+static void _zoom_buffer_on_iso_transformation_complete_completion_callback (BackgroundJob* job, gpointer self) {
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_buffer_on_iso_transformation_complete ((ZoomBuffer*) self, job);
+#line 2619 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_on_iso_source_fetch_complete (ZoomBuffer* self, BackgroundJob* job) {
+ ZoomBufferIsoSourceFetchJob* fetch_job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ ZoomBufferIsoSourceFetchJob* _tmp1_ = NULL;
+ ZoomBufferIsoSourceFetchJob* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ ZoomBufferIsoSourceFetchJob* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ GdkPixbuf* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gboolean _tmp21_ = FALSE;
+ BackgroundJob* transformation_job = NULL;
+ GdkPixbuf* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+ PixelTransformer* _tmp25_ = NULL;
+ PixelTransformer* _tmp26_ = NULL;
+ GCancellable* _tmp27_ = NULL;
+ GCancellable* _tmp28_ = NULL;
+ ZoomBufferTransformationJob* _tmp29_ = NULL;
+ BackgroundJob* _tmp30_ = NULL;
+ Workers* _tmp31_ = NULL;
+ BackgroundJob* _tmp32_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_ZOOM_BUFFER (self));
+#line 92 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (job));
+#line 93 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = job;
+#line 93 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, ZoomBufferIsoSourceFetchJob));
+#line 93 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ fetch_job = _tmp1_;
+#line 94 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = fetch_job;
+#line 94 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_->fetched;
+#line 94 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ == NULL) {
+#line 95 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("PhotoPage.vala:95: ZoomBuffer: iso_source_fetch_complete( ): fetch job" \
+" has null image member");
+#line 96 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (fetch_job);
+#line 96 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 2672 "PhotoPage.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = fetch_job;
+#line 99 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_->fetched;
+#line 99 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 99 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->iso_source_image);
+#line 99 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->iso_source_image = _tmp6_;
+#line 100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->iso_source_image;
+#line 100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = gdk_pixbuf_get_width (_tmp7_);
+#line 100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = self->priv->iso_source_image;
+#line 100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = gdk_pixbuf_get_height (_tmp10_);
+#line 100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((_tmp9_ * _tmp12_) > ZOOM_BUFFER_USE_REDUCED_THRESHOLD) {
+#line 2698 "PhotoPage.c"
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkPixbuf* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GdkPixbuf* _tmp20_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = self->priv->iso_source_image;
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = self->priv->iso_source_image;
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = gdk_pixbuf_get_width (_tmp14_);
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = self->priv->iso_source_image;
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = gdk_pixbuf_get_height (_tmp17_);
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = gdk_pixbuf_scale_simple (_tmp13_, _tmp16_ / 2, _tmp19_ / 2, GDK_INTERP_BILINEAR);
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->reduced_source_image);
+#line 101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->reduced_source_image = _tmp20_;
+#line 2727 "PhotoPage.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->object_state = ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_TRANSFORMED;
+#line 106 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = self->priv->is_interactive_redraw_in_progress;
+#line 106 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp21_) {
+#line 2735 "PhotoPage.c"
+ SinglePhotoPage* _tmp22_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = self->priv->parent_page;
+#line 107 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (_tmp22_, NULL);
+#line 2741 "PhotoPage.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = self->priv->iso_source_image;
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = self->priv->backing_photo;
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = photo_get_pixel_transformer (_tmp24_);
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_;
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = g_cancellable_new ();
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp27_;
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = zoom_buffer_transformation_job_new (self, _tmp23_, _tmp26_, _zoom_buffer_on_iso_transformation_complete_completion_callback, self, _tmp28_);
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_BACKGROUND_JOB, BackgroundJob);
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformer_unref0 (_tmp26_);
+#line 109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transformation_job = _tmp30_;
+#line 112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = self->priv->workers;
+#line 112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = transformation_job;
+#line 112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ workers_enqueue (_tmp31_, _tmp32_);
+#line 92 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (transformation_job);
+#line 92 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (fetch_job);
+#line 2775 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_on_iso_transformation_complete (ZoomBuffer* self, BackgroundJob* job) {
+ ZoomBufferTransformationJob* transform_job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ ZoomBufferTransformationJob* _tmp1_ = NULL;
+ ZoomBufferTransformationJob* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ ZoomBufferTransformationJob* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ GdkPixbuf* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 115 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_ZOOM_BUFFER (self));
+#line 115 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (job));
+#line 116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = job;
+#line 116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJob));
+#line 116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transform_job = _tmp1_;
+#line 117 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = transform_job;
+#line 117 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_->transformed;
+#line 117 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ == NULL) {
+#line 118 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("PhotoPage.vala:118: %s", "ZoomBuffer: on_iso_transformation_complete( ): completed job has null " "image");
+#line 120 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (transform_job);
+#line 120 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 2816 "PhotoPage.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = transform_job;
+#line 123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_->transformed;
+#line 123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->iso_transformed_image);
+#line 123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->iso_transformed_image = _tmp6_;
+#line 124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->iso_transformed_image;
+#line 124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = gdk_pixbuf_get_width (_tmp7_);
+#line 124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = self->priv->iso_transformed_image;
+#line 124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = gdk_pixbuf_get_height (_tmp10_);
+#line 124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((_tmp9_ * _tmp12_) > ZOOM_BUFFER_USE_REDUCED_THRESHOLD) {
+#line 2842 "PhotoPage.c"
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkPixbuf* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GdkPixbuf* _tmp20_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = self->priv->iso_transformed_image;
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = self->priv->iso_transformed_image;
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = gdk_pixbuf_get_width (_tmp14_);
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = self->priv->iso_transformed_image;
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = gdk_pixbuf_get_height (_tmp17_);
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = gdk_pixbuf_scale_simple (_tmp13_, _tmp16_ / 2, _tmp19_ / 2, GDK_INTERP_BILINEAR);
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->reduced_transformed_image);
+#line 125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->reduced_transformed_image = _tmp20_;
+#line 2871 "PhotoPage.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->object_state = ZOOM_BUFFER_OBJECT_STATE_TRANSFORMED_READY;
+#line 115 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (transform_job);
+#line 2877 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_on_demand_transform_complete (ZoomBuffer* self, BackgroundJob* job) {
+ ZoomBufferTransformationJob* transform_job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ ZoomBufferTransformationJob* _tmp1_ = NULL;
+ ZoomBufferTransformationJob* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ ZoomBufferTransformationJob* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ SinglePhotoPage* _tmp7_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_ZOOM_BUFFER (self));
+#line 132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (job));
+#line 133 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = job;
+#line 133 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJob));
+#line 133 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transform_job = _tmp1_;
+#line 134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = transform_job;
+#line 134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_->transformed;
+#line 134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ == NULL) {
+#line 135 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("PhotoPage.vala:135: %s", "ZoomBuffer: on_demand_transform_complete( ): completed job has null " "image");
+#line 137 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (transform_job);
+#line 137 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 2913 "PhotoPage.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = transform_job;
+#line 140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_->transformed;
+#line 140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->demand_transform_cached_pixbuf);
+#line 140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_cached_pixbuf = _tmp6_;
+#line 141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (self->priv->demand_transform_job);
+#line 141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_job = NULL;
+#line 143 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->parent_page;
+#line 143 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (_tmp7_, NULL);
+#line 132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (transform_job);
+#line 2935 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* zoom_buffer_get_view_projection_pixbuf (ZoomBuffer* self, ZoomState* zoom_state, GdkPixbuf* iso_pixbuf, GdkPixbuf* reduced_pixbuf) {
+ GdkPixbuf* result = NULL;
+ GdkRectangle view_rect = {0};
+ GdkRectangle _tmp0_ = {0};
+ GdkRectangle view_rect_proj = {0};
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkRectangle _tmp2_ = {0};
+ GdkPixbuf* sample_source_pixbuf = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkRectangle _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GdkRectangle _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ GdkRectangle _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ GdkPixbuf* proj_subpixbuf = NULL;
+ GdkPixbuf* _tmp26_ = NULL;
+ GdkRectangle _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GdkRectangle _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ GdkRectangle _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ GdkRectangle _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ GdkPixbuf* _tmp35_ = NULL;
+ GdkPixbuf* zoomed = NULL;
+ GdkRectangle _tmp36_ = {0};
+ gint _tmp37_ = 0;
+ GdkRectangle _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ GdkPixbuf* _tmp40_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (self), NULL);
+#line 149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (zoom_state != NULL, NULL);
+#line 149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (iso_pixbuf), NULL);
+#line 149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail ((reduced_pixbuf == NULL) || GDK_IS_PIXBUF (reduced_pixbuf), NULL);
+#line 151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (zoom_state, &_tmp0_);
+#line 151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect = _tmp0_;
+#line 152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = iso_pixbuf;
+#line 152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_projection (zoom_state, _tmp1_, &_tmp2_);
+#line 152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj = _tmp2_;
+#line 154 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = iso_pixbuf;
+#line 154 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 154 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ sample_source_pixbuf = _tmp4_;
+#line 156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = reduced_pixbuf;
+#line 156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_ != NULL) {
+#line 3008 "PhotoPage.c"
+ gdouble _tmp7_ = 0.0;
+#line 156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = zoom_state_get_zoom_factor (zoom_state);
+#line 156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp7_ < 0.5;
+#line 3014 "PhotoPage.c"
+ } else {
+#line 156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = FALSE;
+#line 3018 "PhotoPage.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_) {
+#line 3022 "PhotoPage.c"
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = reduced_pixbuf;
+#line 157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (sample_source_pixbuf);
+#line 157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ sample_source_pixbuf = _tmp9_;
+#line 158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = view_rect_proj.x;
+#line 158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.x = _tmp10_ / 2;
+#line 159 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = view_rect_proj.y;
+#line 159 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.y = _tmp11_ / 2;
+#line 160 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = view_rect_proj.width;
+#line 160 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.width = _tmp12_ / 2;
+#line 161 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = view_rect_proj.height;
+#line 161 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.height = _tmp13_ / 2;
+#line 3053 "PhotoPage.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = view_rect_proj;
+#line 167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_.width;
+#line 167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = CLAMP (_tmp15_, 1, G_MAXINT);
+#line 167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.width = _tmp16_;
+#line 168 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = view_rect_proj;
+#line 168 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_.height;
+#line 168 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = CLAMP (_tmp18_, 1, G_MAXINT);
+#line 168 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.height = _tmp19_;
+#line 170 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = view_rect;
+#line 170 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = _tmp20_.width;
+#line 170 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = CLAMP (_tmp21_, 1, G_MAXINT);
+#line 170 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect.width = _tmp22_;
+#line 171 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = view_rect;
+#line 171 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_.height;
+#line 171 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = CLAMP (_tmp24_, 1, G_MAXINT);
+#line 171 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect.height = _tmp25_;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = sample_source_pixbuf;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = view_rect_proj;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp27_.x;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = view_rect_proj;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = _tmp29_.y;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = view_rect_proj;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = _tmp31_.width;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = view_rect_proj;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = _tmp33_.height;
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = gdk_pixbuf_new_subpixbuf (_tmp26_, _tmp28_, _tmp30_, _tmp32_, _tmp34_);
+#line 173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ proj_subpixbuf = _tmp35_;
+#line 176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = view_rect;
+#line 176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = _tmp36_.width;
+#line 176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = view_rect;
+#line 176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = _tmp38_.height;
+#line 176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = gdk_pixbuf_scale_simple (proj_subpixbuf, _tmp37_, _tmp39_, GDK_INTERP_BILINEAR);
+#line 176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoomed = _tmp40_;
+#line 179 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (zoomed != NULL, "zoomed != null");
+#line 181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = zoomed;
+#line 181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (proj_subpixbuf);
+#line 181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (sample_source_pixbuf);
+#line 181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3131 "PhotoPage.c"
+}
+
+
+static void _zoom_buffer_on_demand_transform_complete_completion_callback (BackgroundJob* job, gpointer self) {
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_buffer_on_demand_transform_complete ((ZoomBuffer*) self, job);
+#line 3138 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* zoom_buffer_get_zoomed_image_source_not_transformed (ZoomBuffer* self, ZoomState* zoom_state) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ ZoomBufferTransformationJob* _tmp97_ = NULL;
+ ZoomBufferTransformationJob* _tmp119_ = NULL;
+ ZoomState _tmp136_ = {0};
+ GdkPixbuf* _tmp137_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (self), NULL);
+#line 184 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (zoom_state != NULL, NULL);
+#line 185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->demand_transform_cached_pixbuf;
+#line 185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 3157 "PhotoPage.c"
+ ZoomState _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 186 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->demand_transform_zoom_state;
+#line 186 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_state_equals (zoom_state, &_tmp1_);
+#line 186 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 3166 "PhotoPage.c"
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->demand_transform_cached_pixbuf;
+#line 190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp4_;
+#line 190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3177 "PhotoPage.c"
+ } else {
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+#line 191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = zoom_state_get_zoom_factor (zoom_state);
+#line 191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = zoom_state_get_zoom_factor (&self->priv->demand_transform_zoom_state);
+#line 191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_ == _tmp6_) {
+#line 3187 "PhotoPage.c"
+ GdkRectangle curr_rect = {0};
+ GdkRectangle _tmp7_ = {0};
+ GdkRectangle pre_rect = {0};
+ GdkRectangle _tmp8_ = {0};
+ GdkRectangle transfer_src_rect = {0};
+ GdkRectangle transfer_dest_rect = {0};
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkRectangle _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ GdkRectangle _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ GdkRectangle _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkRectangle _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint transfer_src_right = 0;
+ GdkRectangle _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ GdkRectangle _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ GdkRectangle _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GdkRectangle _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ GdkRectangle _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ gint transfer_src_bottom = 0;
+ GdkRectangle _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ GdkRectangle _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ GdkRectangle _tmp39_ = {0};
+ gint _tmp40_ = 0;
+ GdkRectangle _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ GdkRectangle _tmp45_ = {0};
+ gint _tmp46_ = 0;
+ GdkRectangle _tmp47_ = {0};
+ gint _tmp48_ = 0;
+ GdkRectangle _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ GdkRectangle _tmp51_ = {0};
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ GdkRectangle _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ GdkRectangle _tmp56_ = {0};
+ gint _tmp57_ = 0;
+ GdkRectangle _tmp58_ = {0};
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ gint transfer_dest_right = 0;
+ GdkRectangle _tmp61_ = {0};
+ gint _tmp62_ = 0;
+ GdkRectangle _tmp63_ = {0};
+ gint _tmp64_ = 0;
+ GdkRectangle _tmp65_ = {0};
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ GdkRectangle _tmp69_ = {0};
+ gint _tmp70_ = 0;
+ gint transfer_dest_bottom = 0;
+ GdkRectangle _tmp71_ = {0};
+ gint _tmp72_ = 0;
+ GdkRectangle _tmp73_ = {0};
+ gint _tmp74_ = 0;
+ GdkRectangle _tmp75_ = {0};
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ GdkRectangle _tmp79_ = {0};
+ gint _tmp80_ = 0;
+ GdkPixbuf* composited_result = NULL;
+ ZoomState _tmp81_ = {0};
+ GdkPixbuf* _tmp82_ = NULL;
+ GdkPixbuf* _tmp83_ = NULL;
+ GdkRectangle _tmp84_ = {0};
+ gint _tmp85_ = 0;
+ GdkRectangle _tmp86_ = {0};
+ gint _tmp87_ = 0;
+ GdkRectangle _tmp88_ = {0};
+ gint _tmp89_ = 0;
+ GdkRectangle _tmp90_ = {0};
+ gint _tmp91_ = 0;
+ GdkPixbuf* _tmp92_ = NULL;
+ GdkRectangle _tmp93_ = {0};
+ gint _tmp94_ = 0;
+ GdkRectangle _tmp95_ = {0};
+ gint _tmp96_ = 0;
+#line 202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (zoom_state, &_tmp7_);
+#line 202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ curr_rect = _tmp7_;
+#line 203 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (&self->priv->demand_transform_zoom_state, &_tmp8_);
+#line 203 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pre_rect = _tmp8_;
+#line 205 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ memset (&transfer_src_rect, 0, sizeof (GdkRectangle));
+#line 206 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ memset (&transfer_dest_rect, 0, sizeof (GdkRectangle));
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = curr_rect;
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_.x;
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = pre_rect;
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_.x;
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = pre_rect;
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_.width;
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = CLAMP (_tmp10_ - _tmp12_, 0, _tmp14_);
+#line 208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_src_rect.x = _tmp15_;
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = curr_rect;
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_.y;
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = pre_rect;
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_.y;
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = pre_rect;
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = _tmp20_.height;
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = CLAMP (_tmp17_ - _tmp19_, 0, _tmp21_);
+#line 209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_src_rect.y = _tmp22_;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = curr_rect;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_.x;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = curr_rect;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_.width;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = pre_rect;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp27_.width;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = pre_rect;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = _tmp29_.width;
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = CLAMP ((_tmp24_ + _tmp26_) - _tmp28_, 0, _tmp30_);
+#line 210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_src_right = _tmp31_;
+#line 212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = transfer_src_right;
+#line 212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = transfer_src_rect;
+#line 212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = _tmp33_.x;
+#line 212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_src_rect.width = _tmp32_ - _tmp34_;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = curr_rect;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = _tmp35_.y;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = curr_rect;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = _tmp37_.height;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = pre_rect;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = _tmp39_.width;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = pre_rect;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = _tmp41_.height;
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = CLAMP ((_tmp36_ + _tmp38_) - _tmp40_, 0, _tmp42_);
+#line 213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_src_bottom = _tmp43_;
+#line 215 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = transfer_src_bottom;
+#line 215 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = transfer_src_rect;
+#line 215 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = _tmp45_.y;
+#line 215 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_src_rect.height = _tmp44_ - _tmp46_;
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = pre_rect;
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = _tmp47_.x;
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp49_ = curr_rect;
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_ = _tmp49_.x;
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = curr_rect;
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = _tmp51_.width;
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_ = CLAMP (_tmp48_ - _tmp50_, 0, _tmp52_);
+#line 217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_dest_rect.x = _tmp53_;
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54_ = pre_rect;
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = _tmp54_.y;
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_ = curr_rect;
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57_ = _tmp56_.y;
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp58_ = curr_rect;
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_ = _tmp58_.height;
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60_ = CLAMP (_tmp55_ - _tmp57_, 0, _tmp59_);
+#line 218 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_dest_rect.y = _tmp60_;
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp61_ = transfer_dest_rect;
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_ = _tmp61_.x;
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp63_ = transfer_src_rect;
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp64_ = _tmp63_.width;
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_ = curr_rect;
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp66_ = _tmp65_.width;
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp67_ = CLAMP (_tmp62_ + _tmp64_, 0, _tmp66_);
+#line 219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_dest_right = _tmp67_;
+#line 221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_ = transfer_dest_right;
+#line 221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp69_ = transfer_dest_rect;
+#line 221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp70_ = _tmp69_.x;
+#line 221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_dest_rect.width = _tmp68_ - _tmp70_;
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_ = transfer_dest_rect;
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp72_ = _tmp71_.y;
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp73_ = transfer_src_rect;
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_ = _tmp73_.height;
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp75_ = curr_rect;
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp76_ = _tmp75_.height;
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_ = CLAMP (_tmp72_ + _tmp74_, 0, _tmp76_);
+#line 222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_dest_bottom = _tmp77_;
+#line 224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp78_ = transfer_dest_bottom;
+#line 224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp79_ = transfer_dest_rect;
+#line 224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_ = _tmp79_.y;
+#line 224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ transfer_dest_rect.height = _tmp78_ - _tmp80_;
+#line 226 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp81_ = *zoom_state;
+#line 226 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp82_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp81_);
+#line 226 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ composited_result = _tmp82_;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_ = self->priv->demand_transform_cached_pixbuf;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp84_ = transfer_src_rect;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp85_ = _tmp84_.x;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_ = transfer_src_rect;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp87_ = _tmp86_.y;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp88_ = transfer_dest_rect;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_ = _tmp88_.width;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp90_ = transfer_dest_rect;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp91_ = _tmp90_.height;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_ = composited_result;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp93_ = transfer_dest_rect;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp94_ = _tmp93_.x;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_ = transfer_dest_rect;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp96_ = _tmp95_.y;
+#line 227 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gdk_pixbuf_copy_area (_tmp83_, _tmp85_, _tmp87_, _tmp89_, _tmp91_, _tmp92_, _tmp94_, _tmp96_);
+#line 231 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = composited_result;
+#line 231 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3507 "PhotoPage.c"
+ }
+ }
+ }
+#line 242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp97_ = self->priv->demand_transform_job;
+#line 242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp97_ != NULL) {
+#line 3515 "PhotoPage.c"
+ ZoomState _tmp98_ = {0};
+ gboolean _tmp99_ = FALSE;
+#line 243 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_ = self->priv->demand_transform_zoom_state;
+#line 243 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp99_ = zoom_state_equals (zoom_state, &_tmp98_);
+#line 243 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp99_) {
+#line 3524 "PhotoPage.c"
+ ZoomState _tmp100_ = {0};
+ GdkPixbuf* _tmp101_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp100_ = *zoom_state;
+#line 244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp100_);
+#line 244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp101_;
+#line 244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3535 "PhotoPage.c"
+ } else {
+ ZoomBufferTransformationJob* _tmp102_ = NULL;
+ GdkPixbuf* zoomed = NULL;
+ ZoomState _tmp103_ = {0};
+ GdkPixbuf* _tmp104_ = NULL;
+ GdkPixbuf* _tmp105_ = NULL;
+ GdkPixbuf* _tmp106_ = NULL;
+ GdkPixbuf* _tmp107_ = NULL;
+ Photo* _tmp108_ = NULL;
+ PixelTransformer* _tmp109_ = NULL;
+ PixelTransformer* _tmp110_ = NULL;
+ GCancellable* _tmp111_ = NULL;
+ GCancellable* _tmp112_ = NULL;
+ ZoomBufferTransformationJob* _tmp113_ = NULL;
+ ZoomState _tmp114_ = {0};
+ Workers* _tmp115_ = NULL;
+ ZoomBufferTransformationJob* _tmp116_ = NULL;
+ ZoomState _tmp117_ = {0};
+ GdkPixbuf* _tmp118_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp102_ = self->priv->demand_transform_job;
+#line 246 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp102_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (self->priv->demand_transform_job);
+#line 247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_job = NULL;
+#line 249 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp103_ = *zoom_state;
+#line 249 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_ = self->priv->iso_source_image;
+#line 249 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp105_ = self->priv->reduced_source_image;
+#line 249 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp106_ = zoom_buffer_get_view_projection_pixbuf (self, &_tmp103_, _tmp104_, _tmp105_);
+#line 249 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoomed = _tmp106_;
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp107_ = zoomed;
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_ = self->priv->backing_photo;
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp109_ = photo_get_pixel_transformer (_tmp108_);
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp110_ = _tmp109_;
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp111_ = g_cancellable_new ();
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_ = _tmp111_;
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp113_ = zoom_buffer_transformation_job_new (self, _tmp107_, _tmp110_, _zoom_buffer_on_demand_transform_complete_completion_callback, self, _tmp112_);
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (self->priv->demand_transform_job);
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_job = _tmp113_;
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp112_);
+#line 252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformer_unref0 (_tmp110_);
+#line 255 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp114_ = *zoom_state;
+#line 255 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_zoom_state = _tmp114_;
+#line 256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp115_ = self->priv->workers;
+#line 256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_ = self->priv->demand_transform_job;
+#line 256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ workers_enqueue (_tmp115_, G_TYPE_CHECK_INSTANCE_CAST (_tmp116_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp117_ = *zoom_state;
+#line 258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp118_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp117_);
+#line 258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp118_;
+#line 258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (zoomed);
+#line 258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3615 "PhotoPage.c"
+ }
+ }
+#line 263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp119_ = self->priv->demand_transform_job;
+#line 263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp119_ == NULL) {
+#line 3622 "PhotoPage.c"
+ GdkPixbuf* zoomed = NULL;
+ ZoomState _tmp120_ = {0};
+ GdkPixbuf* _tmp121_ = NULL;
+ GdkPixbuf* _tmp122_ = NULL;
+ GdkPixbuf* _tmp123_ = NULL;
+ GdkPixbuf* _tmp124_ = NULL;
+ Photo* _tmp125_ = NULL;
+ PixelTransformer* _tmp126_ = NULL;
+ PixelTransformer* _tmp127_ = NULL;
+ GCancellable* _tmp128_ = NULL;
+ GCancellable* _tmp129_ = NULL;
+ ZoomBufferTransformationJob* _tmp130_ = NULL;
+ ZoomState _tmp131_ = {0};
+ Workers* _tmp132_ = NULL;
+ ZoomBufferTransformationJob* _tmp133_ = NULL;
+ ZoomState _tmp134_ = {0};
+ GdkPixbuf* _tmp135_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_ = *zoom_state;
+#line 264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp121_ = self->priv->iso_source_image;
+#line 264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp122_ = self->priv->reduced_source_image;
+#line 264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp123_ = zoom_buffer_get_view_projection_pixbuf (self, &_tmp120_, _tmp121_, _tmp122_);
+#line 264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoomed = _tmp123_;
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_ = zoomed;
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp125_ = self->priv->backing_photo;
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp126_ = photo_get_pixel_transformer (_tmp125_);
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp127_ = _tmp126_;
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp128_ = g_cancellable_new ();
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp129_ = _tmp128_;
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp130_ = zoom_buffer_transformation_job_new (self, _tmp124_, _tmp127_, _zoom_buffer_on_demand_transform_complete_completion_callback, self, _tmp129_);
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (self->priv->demand_transform_job);
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_job = _tmp130_;
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp129_);
+#line 267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformer_unref0 (_tmp127_);
+#line 271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp131_ = *zoom_state;
+#line 271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_zoom_state = _tmp131_;
+#line 273 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp132_ = self->priv->workers;
+#line 273 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp133_ = self->priv->demand_transform_job;
+#line 273 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ workers_enqueue (_tmp132_, G_TYPE_CHECK_INSTANCE_CAST (_tmp133_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 275 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp134_ = *zoom_state;
+#line 275 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp135_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp134_);
+#line 275 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp135_;
+#line 275 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (zoomed);
+#line 275 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3692 "PhotoPage.c"
+ }
+#line 283 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("PhotoPage.vala:283: %s", "ZoomBuffer: get_zoomed_image( ): in SOURCE-NOT-TRANSFORMED but can't t" \
+"ransform " "on-screen projection on-demand; using preview image");
+#line 285 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp136_ = *zoom_state;
+#line 285 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp137_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp136_);
+#line 285 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp137_;
+#line 285 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3704 "PhotoPage.c"
+}
+
+
+static void _zoom_buffer_on_iso_source_fetch_complete_completion_callback (BackgroundJob* job, gpointer self) {
+#line 290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_buffer_on_iso_source_fetch_complete ((ZoomBuffer*) self, job);
+#line 3711 "PhotoPage.c"
+}
+
+
+GdkPixbuf* zoom_buffer_get_zoom_preview_image_internal (ZoomBuffer* self, ZoomState* zoom_state) {
+ GdkPixbuf* result = NULL;
+ ZoomBufferObjectState _tmp0_ = 0;
+ GdkRectangle view_rect = {0};
+ GdkRectangle _tmp5_ = {0};
+ GdkRectangle view_rect_proj = {0};
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkRectangle _tmp7_ = {0};
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GdkPixbuf* proj_subpixbuf = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ GdkRectangle _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ GdkPixbuf* _tmp23_ = NULL;
+ GdkPixbuf* zoomed = NULL;
+ GdkRectangle _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ GdkRectangle _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ GdkPixbuf* _tmp28_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (self), NULL);
+#line 288 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (zoom_state != NULL, NULL);
+#line 289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->object_state;
+#line 289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ == ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_LOADED) {
+#line 3754 "PhotoPage.c"
+ BackgroundJob* iso_source_fetch_job = NULL;
+ Photo* _tmp1_ = NULL;
+ ZoomBufferIsoSourceFetchJob* _tmp2_ = NULL;
+ Workers* _tmp3_ = NULL;
+ BackgroundJob* _tmp4_ = NULL;
+#line 290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->backing_photo;
+#line 290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_buffer_iso_source_fetch_job_new (self, _tmp1_, _zoom_buffer_on_iso_source_fetch_complete_completion_callback, self);
+#line 290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ iso_source_fetch_job = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_BACKGROUND_JOB, BackgroundJob);
+#line 292 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->workers;
+#line 292 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = iso_source_fetch_job;
+#line 292 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ workers_enqueue (_tmp3_, _tmp4_);
+#line 294 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->object_state = ZOOM_BUFFER_OBJECT_STATE_SOURCE_LOAD_IN_PROGRESS;
+#line 289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (iso_source_fetch_job);
+#line 3776 "PhotoPage.c"
+ }
+#line 296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_wrt_content (zoom_state, &_tmp5_);
+#line 296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect = _tmp5_;
+#line 297 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->preview_image;
+#line 297 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_projection (zoom_state, _tmp6_, &_tmp7_);
+#line 297 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj = _tmp7_;
+#line 300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = view_rect_proj;
+#line 300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_.width;
+#line 300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = CLAMP (_tmp9_, 1, G_MAXINT);
+#line 300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.width = _tmp10_;
+#line 301 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = view_rect_proj;
+#line 301 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_.height;
+#line 301 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = CLAMP (_tmp12_, 1, G_MAXINT);
+#line 301 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_rect_proj.height = _tmp13_;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = self->priv->preview_image;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = view_rect_proj;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_.x;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = view_rect_proj;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_.y;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = view_rect_proj;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_.width;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = view_rect_proj;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_.height;
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = gdk_pixbuf_new_subpixbuf (_tmp14_, _tmp16_, _tmp18_, _tmp20_, _tmp22_);
+#line 303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ proj_subpixbuf = _tmp23_;
+#line 306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = view_rect;
+#line 306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = _tmp24_.width;
+#line 306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = view_rect;
+#line 306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = _tmp26_.height;
+#line 306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = gdk_pixbuf_scale_simple (proj_subpixbuf, _tmp25_, _tmp27_, GDK_INTERP_BILINEAR);
+#line 306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoomed = _tmp28_;
+#line 309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = zoomed;
+#line 309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (proj_subpixbuf);
+#line 309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3844 "PhotoPage.c"
+}
+
+
+Photo* zoom_buffer_get_backing_photo (ZoomBuffer* self) {
+ Photo* result = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+#line 312 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (self), NULL);
+#line 313 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->backing_photo;
+#line 313 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 313 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp1_;
+#line 313 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3862 "PhotoPage.c"
+}
+
+
+void zoom_buffer_update_preview_image (ZoomBuffer* self, GdkPixbuf* preview_image) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 316 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_ZOOM_BUFFER (self));
+#line 316 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (preview_image));
+#line 317 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = preview_image;
+#line 317 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 317 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->preview_image);
+#line 317 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->preview_image = _tmp1_;
+#line 3881 "PhotoPage.c"
+}
+
+
+void zoom_buffer_flush_demand_cache (ZoomBuffer* self, ZoomState* initial_zoom_state) {
+ ZoomState* _tmp0_ = NULL;
+#line 322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_ZOOM_BUFFER (self));
+#line 323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->demand_transform_cached_pixbuf);
+#line 323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_cached_pixbuf = NULL;
+#line 324 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = initial_zoom_state;
+#line 324 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 3897 "PhotoPage.c"
+ ZoomState* _tmp1_ = NULL;
+ ZoomState _tmp2_ = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 325 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = initial_zoom_state;
+#line 325 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = *_tmp1_;
+#line 325 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = zoom_buffer_get_zoomed_image (self, &_tmp2_);
+#line 325 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 325 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3912 "PhotoPage.c"
+ }
+}
+
+
+GdkPixbuf* zoom_buffer_get_zoomed_image (ZoomBuffer* self, ZoomState* zoom_state) {
+ GdkPixbuf* result = NULL;
+ gdouble _tmp0_ = 0.0;
+ ZoomBufferObjectState _tmp3_ = 0;
+#line 328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (self), NULL);
+#line 328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (zoom_state != NULL, NULL);
+#line 329 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_interactive_redraw_in_progress = FALSE;
+#line 333 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = zoom_state_get_interpolation_factor (zoom_state);
+#line 333 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ == 0.0) {
+#line 3931 "PhotoPage.c"
+ ZoomState _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = *zoom_state;
+#line 334 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp1_);
+#line 334 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 334 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3942 "PhotoPage.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->object_state;
+#line 337 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (_tmp3_) {
+#line 337 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ case ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_LOADED:
+#line 337 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ case ZOOM_BUFFER_OBJECT_STATE_SOURCE_LOAD_IN_PROGRESS:
+#line 3952 "PhotoPage.c"
+ {
+ ZoomState _tmp4_ = {0};
+ GdkPixbuf* _tmp5_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = *zoom_state;
+#line 340 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp4_);
+#line 340 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp5_;
+#line 340 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3964 "PhotoPage.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ case ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_TRANSFORMED:
+#line 3968 "PhotoPage.c"
+ {
+ ZoomState _tmp6_ = {0};
+ GdkPixbuf* _tmp7_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = *zoom_state;
+#line 343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = zoom_buffer_get_zoomed_image_source_not_transformed (self, &_tmp6_);
+#line 343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp7_;
+#line 343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 3980 "PhotoPage.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ case ZOOM_BUFFER_OBJECT_STATE_TRANSFORMED_READY:
+#line 3984 "PhotoPage.c"
+ {
+ ZoomState _tmp8_ = {0};
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = *zoom_state;
+#line 348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = self->priv->iso_transformed_image;
+#line 348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = self->priv->reduced_transformed_image;
+#line 348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = zoom_buffer_get_view_projection_pixbuf (self, &_tmp8_, _tmp9_, _tmp10_);
+#line 348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp11_;
+#line 348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4002 "PhotoPage.c"
+ }
+ default:
+ {
+ ZoomState _tmp12_ = {0};
+ GdkPixbuf* _tmp13_ = NULL;
+#line 352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("PhotoPage.vala:352: ZoomBuffer: get_zoomed_image( ): object is an inco" \
+"nsistent state");
+#line 353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = *zoom_state;
+#line 353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp12_);
+#line 353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp13_;
+#line 353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4018 "PhotoPage.c"
+ }
+ }
+}
+
+
+GdkPixbuf* zoom_buffer_get_zoom_preview_image (ZoomBuffer* self, ZoomState* zoom_state) {
+ GdkPixbuf* result = NULL;
+ ZoomState _tmp0_ = {0};
+ GdkPixbuf* _tmp1_ = NULL;
+#line 357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (self), NULL);
+#line 357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (zoom_state != NULL, NULL);
+#line 358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_interactive_redraw_in_progress = TRUE;
+#line 360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = *zoom_state;
+#line 360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = zoom_buffer_get_zoom_preview_image_internal (self, &_tmp0_);
+#line 360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp1_;
+#line 360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4042 "PhotoPage.c"
+}
+
+
+static ZoomBufferIsoSourceFetchJob* zoom_buffer_iso_source_fetch_job_construct (GType object_type, ZoomBuffer* owner, Photo* to_fetch, CompletionCallback completion_callback, void* completion_callback_target) {
+ ZoomBufferIsoSourceFetchJob* self = NULL;
+ ZoomBuffer* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (owner), NULL);
+#line 20 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (to_fetch), NULL);
+#line 22 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = owner;
+#line 22 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = completion_callback;
+#line 22 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1__target = completion_callback_target;
+#line 22 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = (ZoomBufferIsoSourceFetchJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _tmp1_, _tmp1__target, NULL, NULL, NULL, NULL);
+#line 24 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = to_fetch;
+#line 24 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 24 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->to_fetch);
+#line 24 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->to_fetch = _tmp3_;
+#line 20 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self;
+#line 4075 "PhotoPage.c"
+}
+
+
+static ZoomBufferIsoSourceFetchJob* zoom_buffer_iso_source_fetch_job_new (ZoomBuffer* owner, Photo* to_fetch, CompletionCallback completion_callback, void* completion_callback_target) {
+#line 20 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return zoom_buffer_iso_source_fetch_job_construct (ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, owner, to_fetch, completion_callback, completion_callback_target);
+#line 4082 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_iso_source_fetch_job_real_execute (BackgroundJob* base) {
+ ZoomBufferIsoSourceFetchJob * self;
+ GError * _inner_error_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, ZoomBufferIsoSourceFetchJob);
+#line 4091 "PhotoPage.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Scaling _tmp2_ = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->to_fetch;
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling_for_original (&_tmp2_);
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = photo_get_pixbuf_with_options (_tmp1_, &_tmp2_, PHOTO_EXCEPTION_ADJUST, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp3_;
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4108 "PhotoPage.c"
+ goto __catch230_g_error;
+ }
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp0_;
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->fetched);
+#line 29 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->fetched = _tmp4_;
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 4121 "PhotoPage.c"
+ }
+ goto __finally230;
+ __catch230_g_error:
+ {
+ GError* fetch_error = NULL;
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ fetch_error = _inner_error_;
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("PhotoPage.vala:32: IsoSourceFetchJob: execute( ): can't get pixbuf fro" \
+"m backing photo");
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (fetch_error);
+#line 4135 "PhotoPage.c"
+ }
+ __finally230:
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 28 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 4146 "PhotoPage.c"
+ }
+}
+
+
+static void zoom_buffer_iso_source_fetch_job_class_init (ZoomBufferIsoSourceFetchJobClass * klass) {
+#line 15 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_buffer_iso_source_fetch_job_parent_class = g_type_class_peek_parent (klass);
+#line 15 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((BackgroundJobClass *) klass)->finalize = zoom_buffer_iso_source_fetch_job_finalize;
+#line 15 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_type_class_add_private (klass, sizeof (ZoomBufferIsoSourceFetchJobPrivate));
+#line 15 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((BackgroundJobClass *) klass)->execute = zoom_buffer_iso_source_fetch_job_real_execute;
+#line 4160 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_iso_source_fetch_job_instance_init (ZoomBufferIsoSourceFetchJob * self) {
+#line 15 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv = ZOOM_BUFFER_ISO_SOURCE_FETCH_JOB_GET_PRIVATE (self);
+#line 18 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->fetched = NULL;
+#line 4169 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_iso_source_fetch_job_finalize (BackgroundJob* obj) {
+ ZoomBufferIsoSourceFetchJob * self;
+#line 15 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, ZOOM_BUFFER_TYPE_ISO_SOURCE_FETCH_JOB, ZoomBufferIsoSourceFetchJob);
+#line 16 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->to_fetch);
+#line 18 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->fetched);
+#line 15 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ BACKGROUND_JOB_CLASS (zoom_buffer_iso_source_fetch_job_parent_class)->finalize (obj);
+#line 4183 "PhotoPage.c"
+}
+
+
+static GType zoom_buffer_iso_source_fetch_job_get_type (void) {
+ static volatile gsize zoom_buffer_iso_source_fetch_job_type_id__volatile = 0;
+ if (g_once_init_enter (&zoom_buffer_iso_source_fetch_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ZoomBufferIsoSourceFetchJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) zoom_buffer_iso_source_fetch_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ZoomBufferIsoSourceFetchJob), 0, (GInstanceInitFunc) zoom_buffer_iso_source_fetch_job_instance_init, NULL };
+ GType zoom_buffer_iso_source_fetch_job_type_id;
+ zoom_buffer_iso_source_fetch_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "ZoomBufferIsoSourceFetchJob", &g_define_type_info, 0);
+ g_once_init_leave (&zoom_buffer_iso_source_fetch_job_type_id__volatile, zoom_buffer_iso_source_fetch_job_type_id);
+ }
+ return zoom_buffer_iso_source_fetch_job_type_id__volatile;
+}
+
+
+static gpointer _pixel_transformer_ref0 (gpointer self) {
+#line 55 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self ? pixel_transformer_ref (self) : NULL;
+#line 4202 "PhotoPage.c"
+}
+
+
+static ZoomBufferTransformationJob* zoom_buffer_transformation_job_construct (GType object_type, ZoomBuffer* owner, GdkPixbuf* to_transform, PixelTransformer* transformer, CompletionCallback completion_callback, void* completion_callback_target, GCancellable* cancellable) {
+ ZoomBufferTransformationJob* self = NULL;
+ ZoomBuffer* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ GCancellable* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ PixelTransformer* _tmp7_ = NULL;
+ PixelTransformer* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_ZOOM_BUFFER (owner), NULL);
+#line 49 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (to_transform), NULL);
+#line 49 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail ((transformer == NULL) || IS_PIXEL_TRANSFORMER (transformer), NULL);
+#line 49 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 51 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = owner;
+#line 51 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = completion_callback;
+#line 51 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1__target = completion_callback_target;
+#line 51 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = cancellable;
+#line 51 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = (ZoomBufferTransformationJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _tmp1_, _tmp1__target, _tmp2_, NULL, NULL, NULL);
+#line 53 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = cancellable;
+#line 53 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 53 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 53 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->cancellable = _tmp4_;
+#line 54 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = to_transform;
+#line 54 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 54 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->to_transform);
+#line 54 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->to_transform = _tmp6_;
+#line 55 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = transformer;
+#line 55 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _pixel_transformer_ref0 (_tmp7_);
+#line 55 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 55 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->transformer = _tmp8_;
+#line 56 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = to_transform;
+#line 56 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = gdk_pixbuf_copy (_tmp9_);
+#line 56 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->transformed);
+#line 56 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->transformed = _tmp10_;
+#line 49 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self;
+#line 4272 "PhotoPage.c"
+}
+
+
+static ZoomBufferTransformationJob* zoom_buffer_transformation_job_new (ZoomBuffer* owner, GdkPixbuf* to_transform, PixelTransformer* transformer, CompletionCallback completion_callback, void* completion_callback_target, GCancellable* cancellable) {
+#line 49 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return zoom_buffer_transformation_job_construct (ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, owner, to_transform, transformer, completion_callback, completion_callback_target, cancellable);
+#line 4279 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_transformation_job_real_execute (BackgroundJob* base) {
+ ZoomBufferTransformationJob * self;
+ PixelTransformer* _tmp0_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJob);
+#line 60 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->transformer;
+#line 60 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 4292 "PhotoPage.c"
+ PixelTransformer* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GCancellable* _tmp4_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->transformer;
+#line 61 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->to_transform;
+#line 61 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->transformed;
+#line 61 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = self->priv->cancellable;
+#line 61 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixel_transformer_transform_to_other_pixbuf (_tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 4307 "PhotoPage.c"
+ }
+}
+
+
+static void zoom_buffer_transformation_job_class_init (ZoomBufferTransformationJobClass * klass) {
+#line 42 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_buffer_transformation_job_parent_class = g_type_class_peek_parent (klass);
+#line 42 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((BackgroundJobClass *) klass)->finalize = zoom_buffer_transformation_job_finalize;
+#line 42 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_type_class_add_private (klass, sizeof (ZoomBufferTransformationJobPrivate));
+#line 42 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((BackgroundJobClass *) klass)->execute = zoom_buffer_transformation_job_real_execute;
+#line 4321 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_transformation_job_instance_init (ZoomBufferTransformationJob * self) {
+#line 42 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv = ZOOM_BUFFER_TRANSFORMATION_JOB_GET_PRIVATE (self);
+#line 47 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->transformed = NULL;
+#line 4330 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_transformation_job_finalize (BackgroundJob* obj) {
+ ZoomBufferTransformationJob * self;
+#line 42 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, ZOOM_BUFFER_TYPE_TRANSFORMATION_JOB, ZoomBufferTransformationJob);
+#line 43 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->to_transform);
+#line 44 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 45 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 47 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->transformed);
+#line 42 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ BACKGROUND_JOB_CLASS (zoom_buffer_transformation_job_parent_class)->finalize (obj);
+#line 4348 "PhotoPage.c"
+}
+
+
+static GType zoom_buffer_transformation_job_get_type (void) {
+ static volatile gsize zoom_buffer_transformation_job_type_id__volatile = 0;
+ if (g_once_init_enter (&zoom_buffer_transformation_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ZoomBufferTransformationJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) zoom_buffer_transformation_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ZoomBufferTransformationJob), 0, (GInstanceInitFunc) zoom_buffer_transformation_job_instance_init, NULL };
+ GType zoom_buffer_transformation_job_type_id;
+ zoom_buffer_transformation_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "ZoomBufferTransformationJob", &g_define_type_info, 0);
+ g_once_init_leave (&zoom_buffer_transformation_job_type_id__volatile, zoom_buffer_transformation_job_type_id);
+ }
+ return zoom_buffer_transformation_job_type_id__volatile;
+}
+
+
+static void zoom_buffer_class_init (ZoomBufferClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_buffer_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_type_class_add_private (klass, sizeof (ZoomBufferPrivate));
+#line 7 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = zoom_buffer_finalize;
+#line 4371 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_instance_init (ZoomBuffer * self) {
+#line 7 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv = ZOOM_BUFFER_GET_PRIVATE (self);
+#line 69 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->iso_source_image = NULL;
+#line 70 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->reduced_source_image = NULL;
+#line 71 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->iso_transformed_image = NULL;
+#line 72 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->reduced_transformed_image = NULL;
+#line 73 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->preview_image = NULL;
+#line 74 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->backing_photo = NULL;
+#line 75 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->object_state = ZOOM_BUFFER_OBJECT_STATE_SOURCE_NOT_LOADED;
+#line 76 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_cached_pixbuf = NULL;
+#line 78 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->demand_transform_job = NULL;
+#line 80 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->workers = NULL;
+#line 82 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_interactive_redraw_in_progress = FALSE;
+#line 4400 "PhotoPage.c"
+}
+
+
+static void zoom_buffer_finalize (GObject* obj) {
+ ZoomBuffer * self;
+#line 7 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ZOOM_BUFFER, ZoomBuffer);
+#line 69 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->iso_source_image);
+#line 70 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->reduced_source_image);
+#line 71 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->iso_transformed_image);
+#line 72 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->reduced_transformed_image);
+#line 73 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->preview_image);
+#line 74 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->backing_photo);
+#line 76 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->demand_transform_cached_pixbuf);
+#line 78 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _background_job_unref0 (self->priv->demand_transform_job);
+#line 80 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _workers_unref0 (self->priv->workers);
+#line 81 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->parent_page);
+#line 7 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ G_OBJECT_CLASS (zoom_buffer_parent_class)->finalize (obj);
+#line 4430 "PhotoPage.c"
+}
+
+
+GType zoom_buffer_get_type (void) {
+ static volatile gsize zoom_buffer_type_id__volatile = 0;
+ if (g_once_init_enter (&zoom_buffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ZoomBufferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) zoom_buffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ZoomBuffer), 0, (GInstanceInitFunc) zoom_buffer_instance_init, NULL };
+ GType zoom_buffer_type_id;
+ zoom_buffer_type_id = g_type_register_static (G_TYPE_OBJECT, "ZoomBuffer", &g_define_type_info, 0);
+ g_once_init_leave (&zoom_buffer_type_id__volatile, zoom_buffer_type_id);
+ }
+ return zoom_buffer_type_id__volatile;
+}
+
+
+static void _editing_host_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_photos_altered ((EditingHostPage*) self, items);
+#line 4449 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_view_contents_ordering_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 548 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_view_contents_ordering_altered ((EditingHostPage*) self);
+#line 4456 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_view_contents_ordering_altered_data_collection_ordering_changed (DataCollection* _sender, gpointer self) {
+#line 549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_view_contents_ordering_altered ((EditingHostPage*) self);
+#line 4463 "PhotoPage.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 420 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 4470 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_viewport_resized_gtk_widget_size_allocate (GtkWidget* _sender, GtkAllocation* allocation, gpointer self) {
+#line 431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_viewport_resized ((EditingHostPage*) self);
+#line 4477 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_rotate_clockwise_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_rotate_clockwise ((EditingHostPage*) self);
+#line 4484 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_crop_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self) {
+#line 449 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_crop_toggled ((EditingHostPage*) self);
+#line 4491 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_straighten_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self) {
+#line 457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_straighten_toggled ((EditingHostPage*) self);
+#line 4498 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_redeye_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self) {
+#line 465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_redeye_toggled ((EditingHostPage*) self);
+#line 4505 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_adjust_toggled_gtk_toggle_tool_button_toggled (GtkToggleToolButton* _sender, gpointer self) {
+#line 474 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_adjust_toggled ((EditingHostPage*) self);
+#line 4512 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_enhance_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 482 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_enhance ((EditingHostPage*) self);
+#line 4519 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_on_zoom_out_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = editing_host_page_on_zoom_out_pressed ((EditingHostPage*) self, event);
+#line 501 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4528 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 509 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_zoom_slider_value_changed ((EditingHostPage*) self);
+#line 4535 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_on_zoom_slider_drag_begin_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = editing_host_page_on_zoom_slider_drag_begin ((EditingHostPage*) self, event);
+#line 510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4544 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_on_zoom_slider_drag_end_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = editing_host_page_on_zoom_slider_drag_end ((EditingHostPage*) self, event);
+#line 511 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4553 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_on_zoom_slider_key_press_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
+ gboolean result;
+ result = editing_host_page_on_zoom_slider_key_press ((EditingHostPage*) self, event);
+#line 512 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4562 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_on_zoom_in_pressed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = editing_host_page_on_zoom_in_pressed ((EditingHostPage*) self, event);
+#line 523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 4571 "PhotoPage.c"
+}
+
+
+static void _single_photo_page_on_previous_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 535 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_previous_photo ((SinglePhotoPage*) self);
+#line 4578 "PhotoPage.c"
+}
+
+
+static void _single_photo_page_on_next_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 541 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_next_photo ((SinglePhotoPage*) self);
+#line 4585 "PhotoPage.c"
+}
+
+
+EditingHostPage* editing_host_page_construct (GType object_type, SourceCollection* sources, const gchar* name) {
+ EditingHostPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ SourceCollection* _tmp1_ = NULL;
+ SourceCollection* _tmp2_ = NULL;
+ SourceCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GtkViewport* _tmp8_ = NULL;
+ GtkToolbar* toolbar = NULL;
+ GtkToolbar* _tmp9_ = NULL;
+ GtkToolButton* _tmp10_ = NULL;
+ GtkToolButton* _tmp11_ = NULL;
+ GtkToolButton* _tmp12_ = NULL;
+ GtkToolButton* _tmp13_ = NULL;
+ GtkToolButton* _tmp14_ = NULL;
+ GtkToolButton* _tmp15_ = NULL;
+ GtkToolButton* _tmp16_ = NULL;
+ GtkToggleToolButton* _tmp17_ = NULL;
+ GtkToggleToolButton* _tmp18_ = NULL;
+ GtkToggleToolButton* _tmp19_ = NULL;
+ GtkToggleToolButton* _tmp20_ = NULL;
+ GtkToggleToolButton* _tmp21_ = NULL;
+ GtkToggleToolButton* _tmp22_ = NULL;
+ GtkToggleToolButton* _tmp23_ = NULL;
+ GtkToggleToolButton* _tmp24_ = NULL;
+ GtkToggleToolButton* _tmp25_ = NULL;
+ GtkToggleToolButton* _tmp26_ = NULL;
+ GtkToggleToolButton* _tmp27_ = NULL;
+ GtkToggleToolButton* _tmp28_ = NULL;
+ GtkToggleToolButton* _tmp29_ = NULL;
+ GtkToggleToolButton* _tmp30_ = NULL;
+ GtkToggleToolButton* _tmp31_ = NULL;
+ GtkToggleToolButton* _tmp32_ = NULL;
+ GtkToggleToolButton* _tmp33_ = NULL;
+ GtkToggleToolButton* _tmp34_ = NULL;
+ GtkToggleToolButton* _tmp35_ = NULL;
+ GtkToggleToolButton* _tmp36_ = NULL;
+ GtkToggleToolButton* _tmp37_ = NULL;
+ GtkToggleToolButton* _tmp38_ = NULL;
+ GtkToggleToolButton* _tmp39_ = NULL;
+ GtkToggleToolButton* _tmp40_ = NULL;
+ GtkToggleToolButton* _tmp41_ = NULL;
+ GtkToolButton* _tmp42_ = NULL;
+ GtkToolButton* _tmp43_ = NULL;
+ GtkToolButton* _tmp44_ = NULL;
+ GtkToolButton* _tmp45_ = NULL;
+ GtkToolButton* _tmp46_ = NULL;
+ GtkToolButton* _tmp47_ = NULL;
+ GtkSeparatorToolItem* separator = NULL;
+ GtkSeparatorToolItem* _tmp48_ = NULL;
+ GtkBox* zoom_group = NULL;
+ GtkBox* _tmp49_ = NULL;
+ GtkImage* zoom_out = NULL;
+ GdkPixbuf* _tmp50_ = NULL;
+ GdkPixbuf* _tmp51_ = NULL;
+ GtkImage* _tmp52_ = NULL;
+ GtkImage* _tmp53_ = NULL;
+ GtkEventBox* zoom_out_box = NULL;
+ GtkEventBox* _tmp54_ = NULL;
+ GtkAdjustment* _tmp55_ = NULL;
+ GtkAdjustment* _tmp56_ = NULL;
+ GtkScale* _tmp57_ = NULL;
+ GtkScale* _tmp58_ = NULL;
+ GtkScale* _tmp59_ = NULL;
+ GtkScale* _tmp60_ = NULL;
+ GtkScale* _tmp61_ = NULL;
+ GtkScale* _tmp62_ = NULL;
+ GtkScale* _tmp63_ = NULL;
+ GtkScale* _tmp64_ = NULL;
+ GtkImage* zoom_in = NULL;
+ GdkPixbuf* _tmp65_ = NULL;
+ GdkPixbuf* _tmp66_ = NULL;
+ GtkImage* _tmp67_ = NULL;
+ GtkImage* _tmp68_ = NULL;
+ GtkEventBox* zoom_in_box = NULL;
+ GtkEventBox* _tmp69_ = NULL;
+ GtkToolItem* group_wrapper = NULL;
+ GtkToolItem* _tmp70_ = NULL;
+ GtkToolButton* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ GtkToolButton* _tmp73_ = NULL;
+ GtkToolButton* _tmp74_ = NULL;
+ GtkToolButton* _tmp75_ = NULL;
+ GtkToolButton* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ GtkToolButton* _tmp78_ = NULL;
+ GtkToolButton* _tmp79_ = NULL;
+ GtkToolButton* _tmp80_ = NULL;
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 418 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = name;
+#line 418 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = (EditingHostPage*) single_photo_page_construct (object_type, _tmp0_, FALSE);
+#line 420 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = sources;
+#line 420 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _data_collection_ref0 (_tmp1_);
+#line 420 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 420 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->sources = _tmp2_;
+#line 423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = sources;
+#line 423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _editing_host_page_on_photos_altered_data_collection_items_altered, self, 0);
+#line 426 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 426 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 426 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _editing_host_page_on_view_contents_ordering_altered_data_collection_contents_altered, self, 0);
+#line 426 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 427 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 427 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 427 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection), "ordering-changed", (GCallback) _editing_host_page_on_view_contents_ordering_altered_data_collection_ordering_changed, self, 0);
+#line 427 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage)->viewport;
+#line 431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), "size-allocate", (GCallback) _editing_host_page_on_viewport_resized_gtk_widget_size_allocate, self, 0);
+#line 434 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 434 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ toolbar = _tmp9_;
+#line 437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = (GtkToolButton*) gtk_tool_button_new_from_stock ("");
+#line 437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp10_);
+#line 437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->rotate_button);
+#line 437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->rotate_button = _tmp10_;
+#line 438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = self->priv->rotate_button;
+#line 438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_icon_name (_tmp11_, RESOURCES_CLOCKWISE);
+#line 439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = self->priv->rotate_button;
+#line 439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_label (_tmp12_, RESOURCES_ROTATE_CW_LABEL);
+#line 440 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = self->priv->rotate_button;
+#line 440 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_ROTATE_CW_TOOLTIP);
+#line 441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = self->priv->rotate_button;
+#line 441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp14_, "clicked", (GCallback) _editing_host_page_on_rotate_clockwise_gtk_tool_button_clicked, self, 0);
+#line 442 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = self->priv->rotate_button;
+#line 442 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = self->priv->rotate_button;
+#line 443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = (GtkToggleToolButton*) gtk_toggle_tool_button_new_from_stock (RESOURCES_CROP);
+#line 446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp17_);
+#line 446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->crop_button);
+#line 446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->crop_button = _tmp17_;
+#line 447 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = self->priv->crop_button;
+#line 447 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_label (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_tool_button_get_type (), GtkToolButton), RESOURCES_CROP_LABEL);
+#line 448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = self->priv->crop_button;
+#line 448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_CROP_TOOLTIP);
+#line 449 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = self->priv->crop_button;
+#line 449 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp20_, "toggled", (GCallback) _editing_host_page_on_crop_toggled_gtk_toggle_tool_button_toggled, self, 0);
+#line 450 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = self->priv->crop_button;
+#line 450 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = self->priv->crop_button;
+#line 451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 454 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = (GtkToggleToolButton*) gtk_toggle_tool_button_new_from_stock (RESOURCES_STRAIGHTEN);
+#line 454 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp23_);
+#line 454 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->straighten_button);
+#line 454 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->straighten_button = _tmp23_;
+#line 455 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = self->priv->straighten_button;
+#line 455 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_label (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_tool_button_get_type (), GtkToolButton), RESOURCES_STRAIGHTEN_LABEL);
+#line 456 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = self->priv->straighten_button;
+#line 456 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_STRAIGHTEN_TOOLTIP);
+#line 457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = self->priv->straighten_button;
+#line 457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp26_, "toggled", (GCallback) _editing_host_page_on_straighten_toggled_gtk_toggle_tool_button_toggled, self, 0);
+#line 458 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = self->priv->straighten_button;
+#line 458 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = self->priv->straighten_button;
+#line 459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 462 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = (GtkToggleToolButton*) gtk_toggle_tool_button_new_from_stock (RESOURCES_REDEYE);
+#line 462 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp29_);
+#line 462 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->redeye_button);
+#line 462 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->redeye_button = _tmp29_;
+#line 463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = self->priv->redeye_button;
+#line 463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_label (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_tool_button_get_type (), GtkToolButton), RESOURCES_RED_EYE_LABEL);
+#line 464 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = self->priv->redeye_button;
+#line 464 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_RED_EYE_TOOLTIP);
+#line 465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = self->priv->redeye_button;
+#line 465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp32_, "toggled", (GCallback) _editing_host_page_on_redeye_toggled_gtk_toggle_tool_button_toggled, self, 0);
+#line 466 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = self->priv->redeye_button;
+#line 466 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 467 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = self->priv->redeye_button;
+#line 467 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 470 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = (GtkToggleToolButton*) gtk_toggle_tool_button_new ();
+#line 470 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp35_);
+#line 470 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->adjust_button);
+#line 470 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->adjust_button = _tmp35_;
+#line 471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = self->priv->adjust_button;
+#line 471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_icon_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_tool_button_get_type (), GtkToolButton), RESOURCES_ADJUST);
+#line 472 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = self->priv->adjust_button;
+#line 472 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_label (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_tool_button_get_type (), GtkToolButton), RESOURCES_ADJUST_LABEL);
+#line 473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = self->priv->adjust_button;
+#line 473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_ADJUST_TOOLTIP);
+#line 474 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = self->priv->adjust_button;
+#line 474 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp39_, "toggled", (GCallback) _editing_host_page_on_adjust_toggled_gtk_toggle_tool_button_toggled, self, 0);
+#line 475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = self->priv->adjust_button;
+#line 475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 476 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = self->priv->adjust_button;
+#line 476 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 479 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = (GtkToolButton*) gtk_tool_button_new (NULL, RESOURCES_ENHANCE_LABEL);
+#line 479 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp42_);
+#line 479 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->enhance_button);
+#line 479 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->enhance_button = _tmp42_;
+#line 480 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = self->priv->enhance_button;
+#line 480 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_icon_name (_tmp43_, RESOURCES_ENHANCE);
+#line 481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = self->priv->enhance_button;
+#line 481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_ENHANCE_TOOLTIP);
+#line 482 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = self->priv->enhance_button;
+#line 482 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp45_, "clicked", (GCallback) _editing_host_page_on_enhance_gtk_tool_button_clicked, self, 0);
+#line 483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = self->priv->enhance_button;
+#line 483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 484 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = self->priv->enhance_button;
+#line 484 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp48_);
+#line 487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ separator = _tmp48_;
+#line 488 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_expand (G_TYPE_CHECK_INSTANCE_CAST (separator, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_separator_tool_item_set_draw (separator, FALSE);
+#line 490 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (separator, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 492 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp49_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+#line 492 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp49_);
+#line 492 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_group = _tmp49_;
+#line 494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_ = resources_load_icon (RESOURCES_ICON_ZOOM_OUT, RESOURCES_ICON_ZOOM_SCALE);
+#line 494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = _tmp50_;
+#line 494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp51_);
+#line 494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp52_);
+#line 494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_ = _tmp52_;
+#line 494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp51_);
+#line 494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_out = _tmp53_;
+#line 496 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54_ = (GtkEventBox*) gtk_event_box_new ();
+#line 496 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp54_);
+#line 496 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_out_box = _tmp54_;
+#line 497 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_event_box_set_above_child (zoom_out_box, TRUE);
+#line 498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_event_box_set_visible_window (zoom_out_box, FALSE);
+#line 499 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (zoom_out_box, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (zoom_out, gtk_widget_get_type (), GtkWidget));
+#line 501 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (zoom_out_box, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_host_page_on_zoom_out_pressed_gtk_widget_button_press_event, self, 0);
+#line 503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_box_pack_start (zoom_group, G_TYPE_CHECK_INSTANCE_CAST (zoom_out_box, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = gtk_adjustment_new (0.0, 0.0, 1.1, 0.1, 0.1, 0.1);
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp55_);
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_ = _tmp55_;
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57_ = (GtkScale*) gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, _tmp56_);
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp57_);
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->zoom_slider);
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_slider = _tmp57_;
+#line 506 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp56_);
+#line 507 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp58_ = self->priv->zoom_slider;
+#line 507 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_scale_set_draw_value (_tmp58_, FALSE);
+#line 508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_ = self->priv->zoom_slider;
+#line 508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, gtk_widget_get_type (), GtkWidget), 120, -1);
+#line 509 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60_ = self->priv->zoom_slider;
+#line 509 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self, 0);
+#line 510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp61_ = self->priv->zoom_slider;
+#line 510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_host_page_on_zoom_slider_drag_begin_gtk_widget_button_press_event, self, 0);
+#line 511 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_ = self->priv->zoom_slider;
+#line 511 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, gtk_widget_get_type (), GtkWidget), "button-release-event", (GCallback) _editing_host_page_on_zoom_slider_drag_end_gtk_widget_button_release_event, self, 0);
+#line 512 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp63_ = self->priv->zoom_slider;
+#line 512 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, gtk_widget_get_type (), GtkWidget), "key-press-event", (GCallback) _editing_host_page_on_zoom_slider_key_press_gtk_widget_key_press_event, self, 0);
+#line 514 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp64_ = self->priv->zoom_slider;
+#line 514 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_box_pack_start (zoom_group, G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 516 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_ = resources_load_icon (RESOURCES_ICON_ZOOM_IN, RESOURCES_ICON_ZOOM_SCALE);
+#line 516 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp66_ = _tmp65_;
+#line 516 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp67_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp66_);
+#line 516 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp67_);
+#line 516 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_ = _tmp67_;
+#line 516 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp66_);
+#line 516 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_in = _tmp68_;
+#line 518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp69_ = (GtkEventBox*) gtk_event_box_new ();
+#line 518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp69_);
+#line 518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_in_box = _tmp69_;
+#line 519 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_event_box_set_above_child (zoom_in_box, TRUE);
+#line 520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_event_box_set_visible_window (zoom_in_box, FALSE);
+#line 521 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (zoom_in_box, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (zoom_in, gtk_widget_get_type (), GtkWidget));
+#line 523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (zoom_in_box, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_host_page_on_zoom_in_pressed_gtk_widget_button_press_event, self, 0);
+#line 525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_box_pack_start (zoom_group, G_TYPE_CHECK_INSTANCE_CAST (zoom_in_box, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 527 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp70_ = gtk_tool_item_new ();
+#line 527 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp70_);
+#line 527 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ group_wrapper = _tmp70_;
+#line 528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (group_wrapper, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (zoom_group, gtk_widget_get_type (), GtkWidget));
+#line 530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, group_wrapper, -1);
+#line 533 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_ = self->priv->prev_button;
+#line 533 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp72_ = _ ("Previous photo");
+#line 533 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, gtk_tool_item_get_type (), GtkToolItem), _tmp72_);
+#line 534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp73_ = self->priv->prev_button;
+#line 534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_icon_name (_tmp73_, "go-previous");
+#line 535 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_ = self->priv->prev_button;
+#line 535 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp74_, "clicked", (GCallback) _single_photo_page_on_previous_photo_gtk_tool_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), 0);
+#line 536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp75_ = self->priv->prev_button;
+#line 536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 539 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp76_ = self->priv->next_button;
+#line 539 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_ = _ ("Next photo");
+#line 539 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, gtk_tool_item_get_type (), GtkToolItem), _tmp77_);
+#line 540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp78_ = self->priv->next_button;
+#line 540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_icon_name (_tmp78_, "go-next");
+#line 541 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp79_ = self->priv->next_button;
+#line 541 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp79_, "clicked", (GCallback) _single_photo_page_on_next_photo_gtk_tool_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), 0);
+#line 542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_ = self->priv->next_button;
+#line 542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (group_wrapper);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (zoom_in_box);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (zoom_in);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (zoom_out_box);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (zoom_out);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (zoom_group);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (separator);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (toolbar);
+#line 417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self;
+#line 5086 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_zoom_slider_value_changed (EditingHostPage* self) {
+ ZoomState new_zoom_state = {0};
+ ZoomState _tmp0_ = {0};
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gboolean _tmp3_ = FALSE;
+#line 552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 553 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp0_);
+#line 553 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->zoom_slider;
+#line 553 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 553 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_rescale (&new_zoom_state, &_tmp0_, _tmp2_);
+#line 555 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->enable_interactive_zoom_refresh;
+#line 555 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 5110 "PhotoPage.c"
+ ZoomState _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+#line 556 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = new_zoom_state;
+#line 556 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_interactive_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp4_);
+#line 558 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = zoom_state_is_default (&new_zoom_state);
+#line 558 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_) {
+#line 5121 "PhotoPage.c"
+ ZoomState _tmp6_ = {0};
+#line 559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = new_zoom_state;
+#line 559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp6_);
+#line 5127 "PhotoPage.c"
+ }
+ } else {
+ gboolean _tmp7_ = FALSE;
+#line 561 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = zoom_state_is_default (&new_zoom_state);
+#line 561 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp7_) {
+#line 562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 5137 "PhotoPage.c"
+ } else {
+ ZoomState _tmp8_ = {0};
+#line 564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = new_zoom_state;
+#line 564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp8_);
+#line 5144 "PhotoPage.c"
+ }
+#line 566 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 5148 "PhotoPage.c"
+ }
+#line 569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_cursor_for_zoom_context (self);
+#line 5152 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_on_zoom_slider_drag_begin (EditingHostPage* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 573 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->enable_interactive_zoom_refresh = TRUE;
+#line 575 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 575 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 575 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_FULLSCREEN_WINDOW);
+#line 575 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 575 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 5177 "PhotoPage.c"
+ GtkWindow* _tmp3_ = NULL;
+ FullscreenWindow* _tmp4_ = NULL;
+#line 576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ fullscreen_window_disable_toolbar_dismissal (_tmp4_);
+#line 576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 5188 "PhotoPage.c"
+ }
+#line 578 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 578 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5194 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_on_zoom_slider_drag_end (EditingHostPage* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ZoomState zoom_state = {0};
+ ZoomState _tmp5_ = {0};
+ GtkScale* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ ZoomState _tmp8_ = {0};
+#line 581 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 581 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->enable_interactive_zoom_refresh = FALSE;
+#line 584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_FULLSCREEN_WINDOW);
+#line 584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 5224 "PhotoPage.c"
+ GtkWindow* _tmp3_ = NULL;
+ FullscreenWindow* _tmp4_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ fullscreen_window_update_toolbar_dismissal (_tmp4_);
+#line 585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 5235 "PhotoPage.c"
+ }
+#line 587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp5_);
+#line 587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->zoom_slider;
+#line 587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_range_get_type (), GtkRange));
+#line 587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_rescale (&zoom_state, &_tmp5_, _tmp7_);
+#line 588 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = zoom_state;
+#line 588 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp8_);
+#line 590 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 592 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 592 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5255 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_on_zoom_out_pressed (EditingHostPage* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 596 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_snap_zoom_to_min (self);
+#line 597 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 597 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5271 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_on_zoom_in_pressed (EditingHostPage* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 600 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 600 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_snap_zoom_to_max (self);
+#line 602 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 602 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5287 "PhotoPage.c"
+}
+
+
+static void editing_host_page_get_cursor_wrt_viewport (EditingHostPage* self, GdkEventScroll* event, GdkPoint* result) {
+ GdkPoint cursor_wrt_canvas = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkEventScroll* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ GdkEventScroll* _tmp3_ = NULL;
+ gdouble _tmp4_ = 0.0;
+ GdkRectangle viewport_wrt_canvas = {0};
+ ZoomState _tmp5_ = {0};
+ GdkRectangle _tmp6_ = {0};
+ GdkPoint _result_ = {0};
+ GdkPoint _tmp7_ = {0};
+ GdkPoint _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkPoint _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkRectangle _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkPoint _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ GdkPoint _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ GdkRectangle _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (event != NULL);
+#line 606 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_.x = 0;
+#line 606 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cursor_wrt_canvas = _tmp0_;
+#line 607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = event;
+#line 607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_->x;
+#line 607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cursor_wrt_canvas.x = (gint) _tmp2_;
+#line 608 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = event;
+#line 608 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_->y;
+#line 608 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cursor_wrt_canvas.y = (gint) _tmp4_;
+#line 610 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp5_);
+#line 610 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_wrt_screen (&_tmp5_, &_tmp6_);
+#line 610 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_wrt_canvas = _tmp6_;
+#line 611 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_.x = 0;
+#line 611 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _result_ = _tmp7_;
+#line 612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = cursor_wrt_canvas;
+#line 612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_.x;
+#line 612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = viewport_wrt_canvas;
+#line 612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_.x;
+#line 612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _result_.x = _tmp9_ - _tmp11_;
+#line 613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _result_;
+#line 613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp12_.x;
+#line 613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = viewport_wrt_canvas;
+#line 613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_.width;
+#line 613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = CLAMP (_tmp13_, 0, _tmp15_);
+#line 613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _result_.x = _tmp16_;
+#line 614 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = cursor_wrt_canvas;
+#line 614 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_.y;
+#line 614 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = viewport_wrt_canvas;
+#line 614 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_.y;
+#line 614 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _result_.y = _tmp18_ - _tmp20_;
+#line 615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = _result_;
+#line 615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_.y;
+#line 615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = viewport_wrt_canvas;
+#line 615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_.height;
+#line 615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = CLAMP (_tmp22_, 0, _tmp24_);
+#line 615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _result_.y = _tmp25_;
+#line 617 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *result = _result_;
+#line 617 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 5399 "PhotoPage.c"
+}
+
+
+static void editing_host_page_get_cursor_wrt_viewport_center (EditingHostPage* self, GdkEventScroll* event, GdkPoint* result) {
+ GdkPoint cursor_wrt_viewport = {0};
+ GdkEventScroll* _tmp0_ = NULL;
+ GdkPoint _tmp1_ = {0};
+ GdkRectangle viewport_wrt_canvas = {0};
+ ZoomState _tmp2_ = {0};
+ GdkRectangle _tmp3_ = {0};
+ GdkPoint viewport_center = {0};
+ GdkPoint _tmp4_ = {0};
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkPoint _tmp9_ = {0};
+ GdkPoint _tmp10_ = {0};
+ GdkPoint _tmp11_ = {0};
+#line 620 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 620 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (event != NULL);
+#line 621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = event;
+#line 621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_get_cursor_wrt_viewport (self, _tmp0_, &_tmp1_);
+#line 621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cursor_wrt_viewport = _tmp1_;
+#line 622 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp2_);
+#line 622 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewing_rectangle_wrt_screen (&_tmp2_, &_tmp3_);
+#line 622 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_wrt_canvas = _tmp3_;
+#line 624 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_.x = 0;
+#line 624 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center = _tmp4_;
+#line 625 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = viewport_wrt_canvas;
+#line 625 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_.width;
+#line 625 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.x = _tmp6_ / 2;
+#line 626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = viewport_wrt_canvas;
+#line 626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_.height;
+#line 626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.y = _tmp8_ / 2;
+#line 628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = cursor_wrt_viewport;
+#line 628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = viewport_center;
+#line 628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ subtract_points (&_tmp9_, &_tmp10_, &_tmp11_);
+#line 628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *result = _tmp11_;
+#line 628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 5461 "PhotoPage.c"
+}
+
+
+static void editing_host_page_get_iso_pixel_under_cursor (EditingHostPage* self, GdkEventScroll* event, GdkPoint* result) {
+ GdkPoint viewport_center_iso = {0};
+ ZoomState _tmp0_ = {0};
+ GdkPoint _tmp1_ = {0};
+ ZoomState _tmp2_ = {0};
+ gdouble _tmp3_ = 0.0;
+ GdkPoint _tmp4_ = {0};
+ GdkPoint cursor_wrt_center_iso = {0};
+ GdkEventScroll* _tmp5_ = NULL;
+ GdkPoint _tmp6_ = {0};
+ ZoomState _tmp7_ = {0};
+ gdouble _tmp8_ = 0.0;
+ GdkPoint _tmp9_ = {0};
+ GdkPoint _tmp10_ = {0};
+ GdkPoint _tmp11_ = {0};
+ GdkPoint _tmp12_ = {0};
+#line 631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (event != NULL);
+#line 632 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp0_);
+#line 632 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewport_center (&_tmp0_, &_tmp1_);
+#line 632 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp2_);
+#line 632 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = zoom_state_get_zoom_factor (&_tmp2_);
+#line 632 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scale_point (&_tmp1_, 1.0 / _tmp3_, &_tmp4_);
+#line 632 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center_iso = _tmp4_;
+#line 635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = event;
+#line 635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_get_cursor_wrt_viewport_center (self, _tmp5_, &_tmp6_);
+#line 635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp7_);
+#line 635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = zoom_state_get_zoom_factor (&_tmp7_);
+#line 635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scale_point (&_tmp6_, 1.0 / _tmp8_, &_tmp9_);
+#line 635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cursor_wrt_center_iso = _tmp9_;
+#line 638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = viewport_center_iso;
+#line 638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = cursor_wrt_center_iso;
+#line 638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ add_points (&_tmp10_, &_tmp11_, &_tmp12_);
+#line 638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *result = _tmp12_;
+#line 638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 5519 "PhotoPage.c"
+}
+
+
+static gdouble editing_host_page_snap_interpolation_factor (EditingHostPage* self, gdouble interp) {
+ gdouble result = 0.0;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+#line 641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), 0.0);
+#line 642 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = interp;
+#line 642 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ < 0.03) {
+#line 643 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ interp = 0.0;
+#line 5535 "PhotoPage.c"
+ } else {
+ gdouble _tmp1_ = 0.0;
+#line 644 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = interp;
+#line 644 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ > 0.97) {
+#line 645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ interp = 1.0;
+#line 5544 "PhotoPage.c"
+ }
+ }
+#line 647 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = interp;
+#line 647 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 647 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5553 "PhotoPage.c"
+}
+
+
+static gdouble editing_host_page_adjust_interpolation_factor (EditingHostPage* self, gdouble adjustment) {
+ gdouble result = 0.0;
+ ZoomState _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+#line 650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), 0.0);
+#line 651 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp0_);
+#line 651 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = zoom_state_get_interpolation_factor (&_tmp0_);
+#line 651 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = adjustment;
+#line 651 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_snap_interpolation_factor (self, _tmp1_ + _tmp2_);
+#line 651 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp3_;
+#line 651 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5577 "PhotoPage.c"
+}
+
+
+static void editing_host_page_zoom_about_event_cursor_point (EditingHostPage* self, GdkEventScroll* event, gdouble zoom_increment) {
+ gboolean _tmp0_ = FALSE;
+ GdkPoint cursor_wrt_viewport_center = {0};
+ GdkEventScroll* _tmp1_ = NULL;
+ GdkPoint _tmp2_ = {0};
+ GdkPoint iso_pixel_under_cursor = {0};
+ GdkEventScroll* _tmp3_ = NULL;
+ GdkPoint _tmp4_ = {0};
+ gdouble interp = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ GtkScale* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ GtkScale* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ GtkScale* _tmp11_ = NULL;
+ ZoomState new_zoom_state = {0};
+ ZoomState _tmp12_ = {0};
+ gdouble _tmp13_ = 0.0;
+ gboolean _tmp14_ = FALSE;
+ GdkPoint new_zoomed_old_cursor = {0};
+ GdkPoint _tmp15_ = {0};
+ gdouble _tmp16_ = 0.0;
+ GdkPoint _tmp17_ = {0};
+ GdkPoint desired_new_viewport_center = {0};
+ GdkPoint _tmp18_ = {0};
+ GdkPoint _tmp19_ = {0};
+ GdkPoint _tmp20_ = {0};
+ ZoomState _tmp21_ = {0};
+ GdkPoint _tmp22_ = {0};
+ ZoomState _tmp23_ = {0};
+#line 654 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 654 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (event != NULL);
+#line 655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->photo_missing;
+#line 655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 656 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 5622 "PhotoPage.c"
+ }
+#line 658 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = event;
+#line 658 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_get_cursor_wrt_viewport_center (self, _tmp1_, &_tmp2_);
+#line 658 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cursor_wrt_viewport_center = _tmp2_;
+#line 659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = event;
+#line 659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_get_iso_pixel_under_cursor (self, _tmp3_, &_tmp4_);
+#line 659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ iso_pixel_under_cursor = _tmp4_;
+#line 661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = zoom_increment;
+#line 661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_adjust_interpolation_factor (self, _tmp5_);
+#line 661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ interp = _tmp6_;
+#line 662 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->zoom_slider;
+#line 662 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp8_, NULL, FALSE);
+#line 662 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self);
+#line 663 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = self->priv->zoom_slider;
+#line 663 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = interp;
+#line 663 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_range_get_type (), GtkRange), _tmp10_);
+#line 664 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = self->priv->zoom_slider;
+#line 664 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self, 0);
+#line 666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp12_);
+#line 666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = interp;
+#line 666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_rescale (&new_zoom_state, &_tmp12_, _tmp13_);
+#line 668 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = zoom_state_is_min (&new_zoom_state);
+#line 668 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp14_) {
+#line 669 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 670 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_cursor_for_zoom_context (self);
+#line 671 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 672 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 5676 "PhotoPage.c"
+ }
+#line 675 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = iso_pixel_under_cursor;
+#line 675 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = zoom_state_get_zoom_factor (&new_zoom_state);
+#line 675 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scale_point (&_tmp15_, _tmp16_, &_tmp17_);
+#line 675 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ new_zoomed_old_cursor = _tmp17_;
+#line 677 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = new_zoomed_old_cursor;
+#line 677 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = cursor_wrt_viewport_center;
+#line 677 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ subtract_points (&_tmp18_, &_tmp19_, &_tmp20_);
+#line 677 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ desired_new_viewport_center = _tmp20_;
+#line 680 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = new_zoom_state;
+#line 680 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = desired_new_viewport_center;
+#line 680 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_pan (&new_zoom_state, &_tmp21_, &_tmp22_);
+#line 682 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = new_zoom_state;
+#line 682 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp23_);
+#line 683 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 685 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_cursor_for_zoom_context (self);
+#line 5708 "PhotoPage.c"
+}
+
+
+void editing_host_page_snap_zoom_to_min (EditingHostPage* self) {
+ GtkScale* _tmp0_ = NULL;
+#line 688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 689 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 689 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), 0.0);
+#line 5720 "PhotoPage.c"
+}
+
+
+void editing_host_page_snap_zoom_to_max (EditingHostPage* self) {
+ GtkScale* _tmp0_ = NULL;
+#line 692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 693 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 693 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), 1.0);
+#line 5732 "PhotoPage.c"
+}
+
+
+void editing_host_page_snap_zoom_to_isomorphic (EditingHostPage* self) {
+ ZoomState iso_state = {0};
+ ZoomState _tmp0_ = {0};
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+#line 696 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp0_);
+#line 697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_rescale_to_isomorphic (&iso_state, &_tmp0_);
+#line 698 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->zoom_slider;
+#line 698 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_state_get_interpolation_factor (&iso_state);
+#line 698 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange), _tmp2_);
+#line 5753 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_zoom_slider_key_press (EditingHostPage* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GQuark _tmp5_ = 0U;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label0 = 0;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label1 = 0;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label2 = 0;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label3 = 0;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label4 = 0;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label5 = 0;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label6 = 0;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp4_label7 = 0;
+#line 701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = event;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (((_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("equal")))) || (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("plus"))))) || (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("KP_Add"))))) {
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 5796 "PhotoPage.c"
+ default:
+ {
+#line 706 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize");
+#line 707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5805 "PhotoPage.c"
+ }
+ }
+ } else if (((_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("minus")))) || (_tmp5_ == ((0 != _tmp4_label4) ? _tmp4_label4 : (_tmp4_label4 = g_quark_from_static_string ("underscore"))))) || (_tmp5_ == ((0 != _tmp4_label5) ? _tmp4_label5 : (_tmp4_label5 = g_quark_from_static_string ("KP_Subtract"))))) {
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 5811 "PhotoPage.c"
+ default:
+ {
+#line 712 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize");
+#line 713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5820 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label6) ? _tmp4_label6 : (_tmp4_label6 = g_quark_from_static_string ("KP_Divide")))) {
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 5826 "PhotoPage.c"
+ default:
+ {
+#line 716 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom100");
+#line 717 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 717 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5835 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label7) ? _tmp4_label7 : (_tmp4_label7 = g_quark_from_static_string ("KP_Multiply")))) {
+#line 702 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 5841 "PhotoPage.c"
+ default:
+ {
+#line 720 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ZoomFit");
+#line 721 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 721 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5850 "PhotoPage.c"
+ }
+ }
+ }
+#line 724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5858 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_on_zoom_slider_key_press (EditingHostPage* self, GdkEventKey* event) {
+#line 701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->on_zoom_slider_key_press (self, event);
+#line 5867 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_on_increase_size (EditingHostPage* self) {
+ GtkScale* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 728 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 728 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_adjust_interpolation_factor (self, EDITING_HOST_PAGE_ZOOM_INCREMENT_SIZE);
+#line 728 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), _tmp1_);
+#line 5880 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_increase_size (EditingHostPage* self) {
+#line 727 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 727 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_GET_CLASS (self)->on_increase_size (self);
+#line 5889 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_on_decrease_size (EditingHostPage* self) {
+ GtkScale* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_adjust_interpolation_factor (self, -EDITING_HOST_PAGE_ZOOM_INCREMENT_SIZE);
+#line 732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), _tmp1_);
+#line 5902 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_decrease_size (EditingHostPage* self) {
+#line 731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_GET_CLASS (self)->on_decrease_size (self);
+#line 5911 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_save_zoom_state (SinglePhotoPage* base) {
+ EditingHostPage * self;
+ GtkScale* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 736 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ SINGLE_PHOTO_PAGE_CLASS (editing_host_page_parent_class)->save_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 737 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 737 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange));
+#line 737 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->saved_slider_val = _tmp1_;
+#line 5929 "PhotoPage.c"
+}
+
+
+static ZoomBuffer* editing_host_page_real_get_zoom_buffer (SinglePhotoPage* base) {
+ EditingHostPage * self;
+ ZoomBuffer* result = NULL;
+ ZoomBuffer* _tmp0_ = NULL;
+ ZoomBuffer* _tmp1_ = NULL;
+#line 740 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 741 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_buffer;
+#line 741 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 741 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp1_;
+#line 741 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5948 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_mousewheel_up (Page* base, GdkEventScroll* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ ZoomState _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ GdkEventScroll* _tmp5_ = NULL;
+#line 744 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 744 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_state_is_max (&_tmp1_);
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 5971 "PhotoPage.c"
+ } else {
+ GtkScale* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->zoom_slider;
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = gtk_widget_get_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp4_;
+#line 5981 "PhotoPage.c"
+ }
+#line 745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 746 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 746 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5989 "PhotoPage.c"
+ }
+#line 748 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = event;
+#line 748 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_zoom_about_event_cursor_point (self, _tmp5_, EDITING_HOST_PAGE_ZOOM_INCREMENT_SIZE);
+#line 749 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 749 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 5999 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_mousewheel_down (Page* base, GdkEventScroll* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ ZoomState _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ GdkEventScroll* _tmp5_ = NULL;
+#line 752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_state_is_min (&_tmp1_);
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 6022 "PhotoPage.c"
+ } else {
+ GtkScale* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->zoom_slider;
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = gtk_widget_get_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp4_;
+#line 6032 "PhotoPage.c"
+ }
+#line 753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 754 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 754 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6040 "PhotoPage.c"
+ }
+#line 756 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = event;
+#line 756 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_zoom_about_event_cursor_point (self, _tmp5_, -EDITING_HOST_PAGE_ZOOM_INCREMENT_SIZE);
+#line 757 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 757 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6050 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_restore_zoom_state (SinglePhotoPage* base) {
+ EditingHostPage * self;
+ GtkScale* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkScale* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ GtkScale* _tmp4_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 761 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ SINGLE_PHOTO_PAGE_CLASS (editing_host_page_parent_class)->restore_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 763 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 763 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp1_, NULL, FALSE);
+#line 763 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self);
+#line 764 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->zoom_slider;
+#line 764 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->saved_slider_val;
+#line 764 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_range_get_type (), GtkRange), _tmp3_);
+#line 765 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = self->priv->zoom_slider;
+#line 765 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self, 0);
+#line 6081 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_is_zoom_supported (SinglePhotoPage* base) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 769 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 769 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6094 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_set_container (Page* base, GtkWindow* container) {
+ EditingHostPage * self;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+#line 772 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 772 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GTK_IS_WINDOW (container));
+#line 773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = container;
+#line 773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->set_container (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp0_);
+#line 776 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = container;
+#line 776 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_FULLSCREEN_WINDOW)) {
+#line 6114 "PhotoPage.c"
+ DragAndDropHandler* _tmp2_ = NULL;
+#line 777 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = drag_and_drop_handler_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 777 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _drag_and_drop_handler_unref0 (self->priv->dnd_handler);
+#line 777 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->dnd_handler = _tmp2_;
+#line 6122 "PhotoPage.c"
+ }
+}
+
+
+ViewCollection* editing_host_page_get_parent_view (EditingHostPage* self) {
+ ViewCollection* result = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+#line 780 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->parent_view;
+#line 781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp1_;
+#line 781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6141 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_has_photo (EditingHostPage* self) {
+ gboolean result = FALSE;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 784 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (self);
+#line 785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_ != NULL;
+#line 785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6164 "PhotoPage.c"
+}
+
+
+Photo* editing_host_page_get_photo (EditingHostPage* self) {
+ Photo* result = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+#line 788 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 790 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 790 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 790 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 790 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 790 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 790 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = NULL;
+#line 791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6201 "PhotoPage.c"
+ }
+#line 795 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 795 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 795 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = view_collection_get_selected_count (_tmp5_);
+#line 795 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp6_ == 1, "get_view().get_selected_count() == 1");
+#line 795 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = view_collection_get_selected_at (_tmp8_, 0);
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = data_view_get_source (_tmp10_);
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PHOTO, Photo);
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp12_;
+#line 796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6233 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_photo_changing (EditingHostPage* self, Photo* new_photo) {
+ Photo* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 800 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (new_photo));
+#line 803 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = new_photo;
+#line 803 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = photo_get_file_format (_tmp0_);
+#line 803 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ == PHOTO_FILE_FORMAT_RAW) {
+#line 804 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, FALSE);
+#line 6251 "PhotoPage.c"
+ } else {
+ Photo* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 806 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = new_photo;
+#line 806 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 806 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 806 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = g_file_query_exists (_tmp4_, NULL);
+#line 806 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, !_tmp5_);
+#line 806 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 6269 "PhotoPage.c"
+ }
+#line 808 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->photo_missing;
+#line 808 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_ui (self, _tmp6_);
+#line 6275 "PhotoPage.c"
+}
+
+
+void editing_host_page_photo_changing (EditingHostPage* self, Photo* new_photo) {
+#line 800 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 800 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_GET_CLASS (self)->photo_changing (self, new_photo);
+#line 6284 "PhotoPage.c"
+}
+
+
+static void editing_host_page_set_photo (EditingHostPage* self, Photo* photo) {
+ GtkScale* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkScale* _tmp2_ = NULL;
+ GtkScale* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ DataView* view = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ Marker* marker = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+ Marker* _tmp16_ = NULL;
+ Marker* _tmp17_ = NULL;
+ ViewCollection* _tmp18_ = NULL;
+ ViewCollection* _tmp19_ = NULL;
+ Marker* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+#line 811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp1_, NULL, FALSE);
+#line 812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self);
+#line 813 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->zoom_slider;
+#line 813 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_range_get_type (), GtkRange), 0.0);
+#line 814 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->zoom_slider;
+#line 814 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self, 0);
+#line 816 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = photo;
+#line 816 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_photo_changing (self, _tmp4_);
+#line 817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo;
+#line 817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = view_collection_get_view_for_source (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_SOURCE, DataSource));
+#line 817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view = _tmp9_;
+#line 818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = view;
+#line 818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp10_ != NULL, "view != null");
+#line 821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_unselect_all (_tmp12_);
+#line 821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp12_);
+#line 822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = view;
+#line 822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_OBJECT, DataObject));
+#line 822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_;
+#line 822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ marker = _tmp17_;
+#line 823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = marker;
+#line 823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_select_marked (_tmp19_, _tmp20_);
+#line 823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp19_);
+#line 827 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = self->priv->parent_view;
+#line 827 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp21_ != NULL) {
+#line 6389 "PhotoPage.c"
+ ViewCollection* _tmp22_ = NULL;
+ DataView* view_in_parent = NULL;
+ ViewCollection* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+ DataView* _tmp25_ = NULL;
+ DataView* _tmp26_ = NULL;
+#line 828 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = self->priv->parent_view;
+#line 828 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_unselect_all (_tmp22_);
+#line 829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = self->priv->parent_view;
+#line 829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = photo;
+#line 829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = view_collection_get_view_for_source_filtered (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_SOURCE, DataSource));
+#line 829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_in_parent = _tmp25_;
+#line 830 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = view_in_parent;
+#line 830 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (NULL != _tmp26_) {
+#line 6412 "PhotoPage.c"
+ ViewCollection* _tmp27_ = NULL;
+ ViewCollection* _tmp28_ = NULL;
+ DataView* _tmp29_ = NULL;
+ Marker* _tmp30_ = NULL;
+ Marker* _tmp31_ = NULL;
+#line 831 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = self->priv->parent_view;
+#line 831 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = self->priv->parent_view;
+#line 831 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = view_in_parent;
+#line 831 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_OBJECT, DataObject));
+#line 831 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = _tmp30_;
+#line 831 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_select_marked (_tmp27_, _tmp31_);
+#line 831 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp31_);
+#line 6432 "PhotoPage.c"
+ }
+#line 827 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (view_in_parent);
+#line 6436 "PhotoPage.c"
+ }
+#line 811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (marker);
+#line 811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (view);
+#line 6442 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_realize (GtkWidget* base) {
+ EditingHostPage * self;
+#line 835 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 836 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ GTK_WIDGET_CLASS (editing_host_page_parent_class)->realize (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), gtk_widget_get_type (), GtkWidget));
+#line 838 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rebuild_caches (self, "realize");
+#line 6454 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_switched_to (Page* base) {
+ EditingHostPage * self;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 841 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 842 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
+#line 844 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rebuild_caches (self, "switched_to");
+#line 847 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (self);
+#line 847 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 6472 "PhotoPage.c"
+ gboolean _tmp2_ = FALSE;
+#line 847 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->pixbuf_dirty;
+#line 847 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp2_;
+#line 6478 "PhotoPage.c"
+ } else {
+#line 847 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 6482 "PhotoPage.c"
+ }
+#line 847 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 6486 "PhotoPage.c"
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+#line 848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (self);
+#line 848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_replace_photo (self, _tmp4_);
+#line 848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 6497 "PhotoPage.c"
+ }
+}
+
+
+static void editing_host_page_real_switching_from (Page* base) {
+ EditingHostPage * self;
+ Dimensions _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->switching_from (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
+#line 854 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_pan_in_progress = FALSE;
+#line 857 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 857 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp0_, FALSE);
+#line 864 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_has_photo (self);
+#line 864 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 6525 "PhotoPage.c"
+ ViewCollection* _tmp3_ = NULL;
+#line 864 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->parent_view;
+#line 864 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 6531 "PhotoPage.c"
+ } else {
+#line 864 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = FALSE;
+#line 6535 "PhotoPage.c"
+ }
+#line 864 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 6539 "PhotoPage.c"
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ Marker* _tmp11_ = NULL;
+ Marker* _tmp12_ = NULL;
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = self->priv->parent_view;
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = self->priv->parent_view;
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->parent_view;
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (self);
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = view_collection_get_view_for_source (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_SOURCE, DataSource));
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_select_marked (_tmp4_, _tmp12_);
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 6575 "PhotoPage.c"
+ }
+#line 868 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (self->priv->parent_view);
+#line 868 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->parent_view = NULL;
+#line 869 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 869 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 869 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection));
+#line 869 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 6589 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_selection_changed_view_collection_items_selected (ViewCollection* _sender, GeeIterable* selected, gpointer self) {
+#line 882 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_selection_changed ((EditingHostPage*) self, selected);
+#line 6596 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_switching_to_fullscreen (Page* base, FullscreenWindow* fsw) {
+ EditingHostPage * self;
+ FullscreenWindow* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Page* page = NULL;
+ FullscreenWindow* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 872 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 872 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (fsw));
+#line 873 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = fsw;
+#line 873 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->switching_to_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp0_);
+#line 875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp1_, 0, 0);
+#line 875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp1_, FALSE);
+#line 877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 878 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_pan_in_progress = FALSE;
+#line 880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = fsw;
+#line 880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PAGE_WINDOW, PageWindow));
+#line 880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page = _tmp3_;
+#line 881 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page;
+#line 881 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_ != NULL) {
+#line 6634 "PhotoPage.c"
+ Page* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+#line 882 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page;
+#line 882 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = page_get_view (_tmp5_);
+#line 882 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 882 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp7_, "items-selected", (GCallback) _editing_host_page_on_selection_changed_view_collection_items_selected, self, 0);
+#line 882 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 6648 "PhotoPage.c"
+ }
+#line 872 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (page);
+#line 6652 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_returning_from_fullscreen (Page* base, FullscreenWindow* fsw) {
+ EditingHostPage * self;
+ FullscreenWindow* _tmp0_ = NULL;
+ Page* page = NULL;
+ FullscreenWindow* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+#line 885 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 885 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_FULLSCREEN_WINDOW (fsw));
+#line 886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = fsw;
+#line 886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->returning_from_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp0_);
+#line 888 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 890 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = fsw;
+#line 890 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE_WINDOW, PageWindow));
+#line 890 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page = _tmp2_;
+#line 891 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = page;
+#line 891 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ != NULL) {
+#line 6683 "PhotoPage.c"
+ Page* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page;
+#line 892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page_get_view (_tmp4_);
+#line 892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("items-selected", TYPE_VIEW_COLLECTION, &_tmp7_, NULL, FALSE);
+#line 892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _editing_host_page_on_selection_changed_view_collection_items_selected, self);
+#line 892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 6700 "PhotoPage.c"
+ }
+#line 885 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (page);
+#line 6704 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_selection_changed (EditingHostPage* self, GeeIterable* selected) {
+#line 895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (selected));
+#line 6713 "PhotoPage.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = selected;
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _view_it = _tmp1_;
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ while (TRUE) {
+#line 6726 "PhotoPage.c"
+ gboolean _tmp2_ = FALSE;
+ DataView* view = NULL;
+ gpointer _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gee_iterator_next (_view_it);
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp2_) {
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 6739 "PhotoPage.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = gee_iterator_get (_view_it);
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view = (DataView*) _tmp3_;
+#line 897 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = view;
+#line 897 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = data_view_get_source (_tmp4_);
+#line 897 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO, Photo);
+#line 897 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_replace_photo (self, _tmp6_);
+#line 897 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 898 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (view);
+#line 898 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 6759 "PhotoPage.c"
+ }
+#line 896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_view_it);
+#line 6763 "PhotoPage.c"
+ }
+}
+
+
+void editing_host_page_enable_rotate (EditingHostPage* self, gboolean should_enable) {
+ GtkToolButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 902 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 903 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->rotate_button;
+#line 903 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = should_enable;
+#line 903 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), _tmp1_);
+#line 6779 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_pixbuf_fetched_pixbuf_cache_fetched (PixbufCache* _sender, Photo* photo, GdkPixbuf* pixbuf, GError* err, gpointer self) {
+#line 921 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_pixbuf_fetched ((EditingHostPage*) self, photo, pixbuf, err);
+#line 6786 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_master_cache_filter_pixbuf_cache_cache_filter (Photo* photo, gpointer self) {
+ gboolean result;
+ result = editing_host_page_master_cache_filter ((EditingHostPage*) self, photo);
+#line 928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 6795 "PhotoPage.c"
+}
+
+
+static void editing_host_page_rebuild_caches (EditingHostPage* self, const gchar* caller) {
+ Scaling scaling = {0};
+ Scaling _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ PixbufCache* _tmp2_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ PixbufCache* _tmp10_ = NULL;
+ SourceCollection* _tmp14_ = NULL;
+ Scaling _tmp15_ = {0};
+ PixbufCache* _tmp16_ = NULL;
+ PixbufCache* _tmp17_ = NULL;
+ SourceCollection* _tmp18_ = NULL;
+ Scaling _tmp19_ = {0};
+ PixbufCache* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 909 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (caller != NULL);
+#line 910 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp0_);
+#line 910 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling = _tmp0_;
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->cache;
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_ != NULL) {
+#line 6828 "PhotoPage.c"
+ PixbufCache* _tmp3_ = NULL;
+ Scaling _tmp4_ = {0};
+ Scaling _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->cache;
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_get_scaling (_tmp3_, &_tmp4_);
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = scaling;
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = scaling_equals (&_tmp4_, &_tmp5_);
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp6_;
+#line 6843 "PhotoPage.c"
+ } else {
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = FALSE;
+#line 6847 "PhotoPage.c"
+ }
+#line 913 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 914 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 6853 "PhotoPage.c"
+ }
+#line 916 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = caller;
+#line 916 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = scaling_to_string (&scaling);
+#line 916 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 916 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_debug ("PhotoPage.vala:916: Rebuild pixbuf caches: %s (%s)", _tmp7_, _tmp9_);
+#line 916 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp9_);
+#line 920 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = self->priv->cache;
+#line 920 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp10_ != NULL) {
+#line 6869 "PhotoPage.c"
+ PixbufCache* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ PixbufCache* _tmp13_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = self->priv->cache;
+#line 921 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("fetched", TYPE_PIXBUF_CACHE, &_tmp12_, NULL, FALSE);
+#line 921 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp11_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _editing_host_page_on_pixbuf_fetched_pixbuf_cache_fetched, self);
+#line 922 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = self->priv->cache;
+#line 922 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_cancel_all (_tmp13_);
+#line 6883 "PhotoPage.c"
+ }
+#line 925 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = self->priv->sources;
+#line 925 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = scaling;
+#line 925 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = pixbuf_cache_new (_tmp14_, PIXBUF_CACHE_PHOTO_TYPE_BASELINE, &_tmp15_, EDITING_HOST_PAGE_PIXBUF_CACHE_COUNT, NULL, NULL);
+#line 925 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cache);
+#line 925 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->cache = _tmp16_;
+#line 926 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = self->priv->cache;
+#line 926 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp17_, "fetched", (GCallback) _editing_host_page_on_pixbuf_fetched_pixbuf_cache_fetched, self, 0);
+#line 928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = self->priv->sources;
+#line 928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = scaling;
+#line 928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = pixbuf_cache_new (_tmp18_, PIXBUF_CACHE_PHOTO_TYPE_MASTER, &_tmp19_, EDITING_HOST_PAGE_ORIGINAL_PIXBUF_CACHE_COUNT, _editing_host_page_master_cache_filter_pixbuf_cache_cache_filter, self);
+#line 928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->master_cache);
+#line 928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->master_cache = _tmp20_;
+#line 931 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = caller;
+#line 931 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_refresh_caches (self, _tmp21_);
+#line 6913 "PhotoPage.c"
+}
+
+
+static void editing_host_page_refresh_caches (EditingHostPage* self, const gchar* caller) {
+ gboolean _tmp0_ = FALSE;
+#line 935 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 935 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (caller != NULL);
+#line 936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (self);
+#line 936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 6927 "PhotoPage.c"
+ const gchar* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = caller;
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (self);
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_debug ("PhotoPage.vala:937: Refresh pixbuf caches (%s): prefetching neighbors " \
+"of %s", _tmp1_, _tmp5_);
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp5_);
+#line 937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_host_page_get_photo (self);
+#line 939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_prefetch_neighbors (self, _tmp7_, _tmp9_);
+#line 939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 6967 "PhotoPage.c"
+ } else {
+ const gchar* _tmp10_ = NULL;
+#line 941 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = caller;
+#line 941 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_debug ("PhotoPage.vala:941: Refresh pixbuf caches (%s): (no photo)", _tmp10_);
+#line 6974 "PhotoPage.c"
+ }
+}
+
+
+static gboolean editing_host_page_master_cache_filter (EditingHostPage* self, Photo* photo) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 945 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 945 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = photo;
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = photo_has_transformations (_tmp1_);
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 6996 "PhotoPage.c"
+ } else {
+ Photo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = photo;
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = photo_has_editable (_tmp3_);
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp4_;
+#line 7006 "PhotoPage.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp0_;
+#line 946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 7012 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_pixbuf_fetched (EditingHostPage* self, Photo* photo, GdkPixbuf* pixbuf, GError* err) {
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ GdkPixbuf* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail ((pixbuf == NULL) || GDK_IS_PIXBUF (pixbuf));
+#line 951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = photo;
+#line 951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (self);
+#line 951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_SOURCE, DataSource));
+#line 951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = !_tmp3_;
+#line 951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_) {
+#line 952 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 7046 "PhotoPage.c"
+ }
+#line 954 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = pixbuf;
+#line 954 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_ != NULL) {
+#line 7052 "PhotoPage.c"
+ gboolean _tmp6_ = FALSE;
+ ZoomBuffer* _tmp7_ = NULL;
+ Dimensions max_dim = {0};
+ Photo* _tmp15_ = NULL;
+ Dimensions _tmp16_ = {0};
+ EditingToolsEditingTool* _tmp17_ = NULL;
+ GdkPixbuf* _tmp31_ = NULL;
+ Dimensions _tmp32_ = {0};
+ Photo* _tmp33_ = NULL;
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->zoom_buffer;
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp7_ != NULL) {
+#line 7066 "PhotoPage.c"
+ ZoomBuffer* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = self->priv->zoom_buffer;
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = zoom_buffer_get_backing_photo (_tmp8_);
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = photo;
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp10_ == _tmp11_;
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 7083 "PhotoPage.c"
+ } else {
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = FALSE;
+#line 7087 "PhotoPage.c"
+ }
+#line 956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 7091 "PhotoPage.c"
+ Photo* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ ZoomBuffer* _tmp14_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = photo;
+#line 957 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = pixbuf;
+#line 957 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = zoom_buffer_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp12_, _tmp13_);
+#line 957 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->zoom_buffer);
+#line 957 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_buffer = _tmp14_;
+#line 7105 "PhotoPage.c"
+ }
+#line 961 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = photo;
+#line 961 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp16_);
+#line 961 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_dim = _tmp16_;
+#line 962 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = self->priv->current_tool;
+#line 962 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp17_ != NULL) {
+#line 7117 "PhotoPage.c"
+ {
+ Dimensions tool_pixbuf_dim = {0};
+ GdkPixbuf* tool_pixbuf = NULL;
+ EditingToolsEditingTool* _tmp18_ = NULL;
+ Scaling _tmp19_ = {0};
+ Photo* _tmp20_ = NULL;
+ Dimensions _tmp21_ = {0};
+ GdkPixbuf* _tmp22_ = NULL;
+ GdkPixbuf* _tmp23_ = NULL;
+#line 965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = self->priv->current_tool;
+#line 965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp19_);
+#line 965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = photo;
+#line 965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = editing_tools_editing_tool_get_display_pixbuf (_tmp18_, &_tmp19_, _tmp20_, &_tmp21_, &_inner_error_);
+#line 965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_pixbuf_dim = _tmp21_;
+#line 965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_pixbuf = _tmp22_;
+#line 965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7141 "PhotoPage.c"
+ goto __catch231_g_error;
+ }
+#line 968 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = tool_pixbuf;
+#line 968 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp23_ != NULL) {
+#line 7148 "PhotoPage.c"
+ GdkPixbuf* _tmp24_ = NULL;
+ Dimensions _tmp25_ = {0};
+#line 969 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = tool_pixbuf;
+#line 969 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp24_;
+#line 970 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = tool_pixbuf_dim;
+#line 970 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_dim = _tmp25_;
+#line 7159 "PhotoPage.c"
+ }
+#line 963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (tool_pixbuf);
+#line 7163 "PhotoPage.c"
+ }
+ goto __finally231;
+ __catch231_g_error:
+ {
+ GError* err = NULL;
+ Photo* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ GError* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+#line 963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = photo;
+#line 973 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_OBJECT, DataObject));
+#line 973 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp27_;
+#line 973 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = err;
+#line 973 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = _tmp29_->message;
+#line 973 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_warning ("PhotoPage.vala:973: Unable to fetch tool pixbuf for %s: %s", _tmp28_, _tmp30_);
+#line 973 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp28_);
+#line 974 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, TRUE);
+#line 976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 7198 "PhotoPage.c"
+ }
+ __finally231:
+#line 963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 7209 "PhotoPage.c"
+ }
+ }
+#line 980 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = pixbuf;
+#line 980 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = max_dim;
+#line 980 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp31_, &_tmp32_, NULL);
+#line 981 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = FALSE;
+#line 983 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = photo;
+#line 983 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_notify_photo_backing_missing (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_PHOTO, Photo), FALSE);
+#line 7224 "PhotoPage.c"
+ } else {
+ GError* _tmp34_ = NULL;
+#line 984 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = err;
+#line 984 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp34_ != NULL) {
+#line 7231 "PhotoPage.c"
+ Photo* _tmp35_ = NULL;
+#line 987 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, TRUE);
+#line 990 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = photo;
+#line 990 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_notify_photo_backing_missing (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_PHOTO, Photo), TRUE);
+#line 7239 "PhotoPage.c"
+ }
+ }
+}
+
+
+static void editing_host_page_prefetch_neighbors (EditingHostPage* self, ViewCollection* controller, Photo* photo) {
+ PixbufCachePixbufCacheBatch* normal_batch = NULL;
+ PixbufCachePixbufCacheBatch* _tmp0_ = NULL;
+ PixbufCachePixbufCacheBatch* master_batch = NULL;
+ PixbufCachePixbufCacheBatch* _tmp1_ = NULL;
+ PixbufCachePixbufCacheBatch* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ PixbufCachePixbufCacheBatch* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ DataSource* next_source = NULL;
+ DataSource* prev_source = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ Photo* next = NULL;
+ DataSource* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ Photo* prev = NULL;
+ DataSource* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ PixbufCache* _tmp39_ = NULL;
+ PixbufCachePixbufCacheBatch* _tmp40_ = NULL;
+ PixbufCache* _tmp41_ = NULL;
+ PixbufCachePixbufCacheBatch* _tmp42_ = NULL;
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (controller));
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 995 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = pixbuf_cache_pixbuf_cache_batch_new ();
+#line 995 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ normal_batch = _tmp0_;
+#line 996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = pixbuf_cache_pixbuf_cache_batch_new ();
+#line 996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ master_batch = _tmp1_;
+#line 998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = normal_batch;
+#line 998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = photo;
+#line 998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MULTI_MAP, GeeMultiMap), (gpointer) ((gintptr) BACKGROUND_JOB_JOB_PRIORITY_HIGHEST), _tmp3_);
+#line 999 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = master_batch;
+#line 999 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = photo;
+#line 999 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_MULTI_MAP, GeeMultiMap), (gpointer) ((gintptr) BACKGROUND_JOB_JOB_PRIORITY_LOW), _tmp5_);
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = controller;
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo;
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = view_collection_get_immediate_neighbors (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_SOURCE, DataSource), &_tmp8_, &_tmp9_, PHOTO_TYPENAME);
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next_source);
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next_source = _tmp8_;
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (prev_source);
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ prev_source = _tmp9_;
+#line 1002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp10_) {
+#line 1003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (prev_source);
+#line 1003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next_source);
+#line 1003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (master_batch);
+#line 1003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (normal_batch);
+#line 1003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 7323 "PhotoPage.c"
+ }
+#line 1005 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = next_source;
+#line 1005 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PHOTO, Photo));
+#line 1005 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next = _tmp12_;
+#line 1006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = prev_source;
+#line 1006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PHOTO, Photo));
+#line 1006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ prev = _tmp14_;
+#line 7337 "PhotoPage.c"
+ {
+ GeeIterator* _neighbor_source_it = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ GeeSet* _tmp17_ = NULL;
+ GeeSet* _tmp18_ = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = controller;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = photo;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = view_collection_get_extended_neighbors (_tmp15_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_SOURCE, DataSource), PHOTO_TYPENAME);
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _neighbor_source_it = _tmp20_;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ while (TRUE) {
+#line 7364 "PhotoPage.c"
+ GeeIterator* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ DataSource* neighbor_source = NULL;
+ GeeIterator* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ Photo* neighbor = NULL;
+ DataSource* _tmp25_ = NULL;
+ Photo* _tmp26_ = NULL;
+ BackgroundJobJobPriority priority = 0;
+ gboolean _tmp27_ = FALSE;
+ Photo* _tmp28_ = NULL;
+ Photo* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ PixbufCachePixbufCacheBatch* _tmp34_ = NULL;
+ BackgroundJobJobPriority _tmp35_ = 0;
+ Photo* _tmp36_ = NULL;
+ PixbufCachePixbufCacheBatch* _tmp37_ = NULL;
+ Photo* _tmp38_ = NULL;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = _neighbor_source_it;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = gee_iterator_next (_tmp21_);
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp22_) {
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 7391 "PhotoPage.c"
+ }
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = _neighbor_source_it;
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = gee_iterator_get (_tmp23_);
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ neighbor_source = (DataSource*) _tmp24_;
+#line 1010 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = neighbor_source;
+#line 1010 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_PHOTO, Photo));
+#line 1010 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ neighbor = _tmp26_;
+#line 1012 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ priority = BACKGROUND_JOB_JOB_PRIORITY_NORMAL;
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = neighbor;
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = next;
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_SOURCE, DataSource));
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp30_) {
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = TRUE;
+#line 7417 "PhotoPage.c"
+ } else {
+ Photo* _tmp31_ = NULL;
+ Photo* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = neighbor;
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = prev;
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_DATA_SOURCE, DataSource));
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = _tmp33_;
+#line 7430 "PhotoPage.c"
+ }
+#line 1013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp27_) {
+#line 1014 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ priority = BACKGROUND_JOB_JOB_PRIORITY_HIGH;
+#line 7436 "PhotoPage.c"
+ }
+#line 1016 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = normal_batch;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = priority;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = neighbor;
+#line 1016 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_MULTI_MAP, GeeMultiMap), (gpointer) ((gintptr) _tmp35_), _tmp36_);
+#line 1017 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = master_batch;
+#line 1017 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = neighbor;
+#line 1017 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_MULTI_MAP, GeeMultiMap), (gpointer) ((gintptr) BACKGROUND_JOB_JOB_PRIORITY_LOWEST), _tmp38_);
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (neighbor);
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (neighbor_source);
+#line 7456 "PhotoPage.c"
+ }
+#line 1009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_neighbor_source_it);
+#line 7460 "PhotoPage.c"
+ }
+#line 1020 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = self->priv->cache;
+#line 1020 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = normal_batch;
+#line 1020 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_prefetch_batch (_tmp39_, _tmp40_, FALSE);
+#line 1021 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = self->priv->master_cache;
+#line 1021 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = master_batch;
+#line 1021 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_prefetch_batch (_tmp41_, _tmp42_, FALSE);
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (prev);
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next);
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (prev_source);
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next_source);
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (master_batch);
+#line 994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (normal_batch);
+#line 7486 "PhotoPage.c"
+}
+
+
+static void editing_host_page_cancel_prefetch_neighbors (EditingHostPage* self, ViewCollection* old_controller, Photo* old_photo, ViewCollection* new_controller, Photo* new_photo) {
+ GeeSet* old_neighbors = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* new_neighbors = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ GeeSet* _tmp24_ = NULL;
+ Photo* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+#line 1026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (old_controller));
+#line 1026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (old_photo));
+#line 1026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (new_controller));
+#line 1026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (new_photo));
+#line 1028 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = old_controller;
+#line 1028 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = old_photo;
+#line 1028 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_extended_neighbors (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource), PHOTO_TYPENAME);
+#line 1028 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ old_neighbors = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_SET, GeeSet);
+#line 1030 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = new_controller;
+#line 1030 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = new_photo;
+#line 1030 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = view_collection_get_extended_neighbors (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource), PHOTO_TYPENAME);
+#line 1030 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ new_neighbors = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_SET, GeeSet);
+#line 7529 "PhotoPage.c"
+ {
+ GeeIterator* _old_neighbor_it = NULL;
+ GeeSet* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = old_neighbors;
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _old_neighbor_it = _tmp7_;
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ while (TRUE) {
+#line 7542 "PhotoPage.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ Photo* old_neighbor = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GeeSet* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _old_neighbor_it;
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp9_) {
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 7560 "PhotoPage.c"
+ }
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _old_neighbor_it;
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ old_neighbor = (Photo*) _tmp11_;
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = new_neighbors;
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = old_neighbor;
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection), _tmp14_);
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp15_) {
+#line 7576 "PhotoPage.c"
+ Photo* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = new_photo;
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = old_neighbor;
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_SOURCE, DataSource));
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = !_tmp18_;
+#line 7588 "PhotoPage.c"
+ } else {
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = FALSE;
+#line 7592 "PhotoPage.c"
+ }
+#line 1036 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp12_) {
+#line 7596 "PhotoPage.c"
+ PixbufCache* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ PixbufCache* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+#line 1037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = self->priv->cache;
+#line 1037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = old_neighbor;
+#line 1037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_drop (_tmp19_, _tmp20_);
+#line 1038 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = self->priv->master_cache;
+#line 1038 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = old_neighbor;
+#line 1038 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_drop (_tmp21_, _tmp22_);
+#line 7613 "PhotoPage.c"
+ }
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (old_neighbor);
+#line 7617 "PhotoPage.c"
+ }
+#line 1033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_old_neighbor_it);
+#line 7621 "PhotoPage.c"
+ }
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = new_neighbors;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = old_photo;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp26_) {
+#line 7631 "PhotoPage.c"
+ Photo* _tmp27_ = NULL;
+ Photo* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = new_photo;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = old_photo;
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_DATA_SOURCE, DataSource));
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = !_tmp29_;
+#line 7643 "PhotoPage.c"
+ } else {
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = FALSE;
+#line 7647 "PhotoPage.c"
+ }
+#line 1043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp23_) {
+#line 7651 "PhotoPage.c"
+ PixbufCache* _tmp30_ = NULL;
+ Photo* _tmp31_ = NULL;
+ PixbufCache* _tmp32_ = NULL;
+ Photo* _tmp33_ = NULL;
+#line 1044 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = self->priv->cache;
+#line 1044 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = old_photo;
+#line 1044 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_drop (_tmp30_, _tmp31_);
+#line 1045 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = self->priv->master_cache;
+#line 1045 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = old_photo;
+#line 1045 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_drop (_tmp32_, _tmp33_);
+#line 7668 "PhotoPage.c"
+ }
+#line 1026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (new_neighbors);
+#line 1026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (old_neighbors);
+#line 7674 "PhotoPage.c"
+}
+
+
+static DataView* editing_host_page_real_create_photo_view (EditingHostPage* self, DataSource* source) {
+ DataView* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ PhotoView* _tmp1_ = NULL;
+#line 1049 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 1050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = source;
+#line 1050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = photo_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 1050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
+#line 1050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 7692 "PhotoPage.c"
+}
+
+
+DataView* editing_host_page_create_photo_view (EditingHostPage* self, DataSource* source) {
+#line 1049 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 1049 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->create_photo_view (self, source);
+#line 7701 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_is_photo (EditingHostPage* self, DataSource* source) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 1053 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1053 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 1054 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = source;
+#line 1054 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO_SOURCE);
+#line 1054 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 7718 "PhotoPage.c"
+}
+
+
+static DataView* _editing_host_page_create_photo_view_create_view (DataSource* source, gpointer self) {
+ DataView* result;
+ result = editing_host_page_create_photo_view ((EditingHostPage*) self, source);
+#line 1062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 7727 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_is_photo_create_view_predicate (DataSource* source, gpointer self) {
+ gboolean result;
+ result = editing_host_page_is_photo ((EditingHostPage*) self, source);
+#line 1062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 7736 "PhotoPage.c"
+}
+
+
+void editing_host_page_display_copy_of (EditingHostPage* self, ViewCollection* controller, Photo* starting_photo) {
+ ViewCollection* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ DataView* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ Photo* _tmp18_ = NULL;
+#line 1057 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1057 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (controller));
+#line 1057 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (starting_photo));
+#line 1058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = controller;
+#line 1058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = starting_photo;
+#line 1058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 1058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp3_ != NULL, "controller.get_view_for_source(starting_photo) != null");
+#line 1058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = controller;
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp5_ != _tmp7_;
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp8_) {
+#line 7781 "PhotoPage.c"
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = controller;
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = self->priv->parent_view;
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp9_ != _tmp10_;
+#line 7790 "PhotoPage.c"
+ } else {
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = FALSE;
+#line 7794 "PhotoPage.c"
+ }
+#line 1060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_) {
+#line 7798 "PhotoPage.c"
+ ViewCollection* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+#line 1061 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1061 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1061 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1061 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp12_);
+#line 1062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = controller;
+#line 1062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_copy_into (_tmp14_, _tmp15_, _editing_host_page_create_photo_view_create_view, self, _editing_host_page_is_photo_create_view_predicate, self);
+#line 1062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 1063 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = controller;
+#line 1063 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _data_collection_ref0 (_tmp16_);
+#line 1063 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (self->priv->parent_view);
+#line 1063 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->parent_view = _tmp17_;
+#line 7832 "PhotoPage.c"
+ }
+#line 1066 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = starting_photo;
+#line 1066 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_replace_photo (self, _tmp18_);
+#line 7838 "PhotoPage.c"
+}
+
+
+void editing_host_page_display_mirror_of (EditingHostPage* self, ViewCollection* controller, Photo* starting_photo) {
+ ViewCollection* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ DataView* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ Photo* _tmp18_ = NULL;
+#line 1069 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1069 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (controller));
+#line 1069 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (starting_photo));
+#line 1070 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = controller;
+#line 1070 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = starting_photo;
+#line 1070 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 1070 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1070 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp3_ != NULL, "controller.get_view_for_source(starting_photo) != null");
+#line 1070 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = controller;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp5_ != _tmp7_;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp8_) {
+#line 7883 "PhotoPage.c"
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = controller;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = self->priv->parent_view;
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp9_ != _tmp10_;
+#line 7892 "PhotoPage.c"
+ } else {
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = FALSE;
+#line 7896 "PhotoPage.c"
+ }
+#line 1072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_) {
+#line 7900 "PhotoPage.c"
+ ViewCollection* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+#line 1073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp12_);
+#line 1074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = controller;
+#line 1074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_mirror (_tmp14_, _tmp15_, _editing_host_page_create_photo_view_create_view, self, _editing_host_page_is_photo_create_view_predicate, self);
+#line 1074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 1075 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = controller;
+#line 1075 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _data_collection_ref0 (_tmp16_);
+#line 1075 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (self->priv->parent_view);
+#line 1075 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->parent_view = _tmp17_;
+#line 7934 "PhotoPage.c"
+ }
+#line 1078 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = starting_photo;
+#line 1078 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_replace_photo (self, _tmp18_);
+#line 7940 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_update_ui (EditingHostPage* self, gboolean missing) {
+ gboolean sensitivity = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GtkToolButton* _tmp1_ = NULL;
+ GtkToggleToolButton* _tmp2_ = NULL;
+ GtkToggleToolButton* _tmp3_ = NULL;
+ GtkToggleToolButton* _tmp4_ = NULL;
+ GtkToggleToolButton* _tmp5_ = NULL;
+ GtkToolButton* _tmp6_ = NULL;
+ GtkScale* _tmp7_ = NULL;
+ Dimensions _tmp8_ = {0};
+#line 1082 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = missing;
+#line 1082 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ sensitivity = !_tmp0_;
+#line 1084 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->rotate_button;
+#line 1084 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), sensitivity);
+#line 1085 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->crop_button;
+#line 1085 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), sensitivity);
+#line 1086 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->straighten_button;
+#line 1086 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), sensitivity);
+#line 1087 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = self->priv->redeye_button;
+#line 1087 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), sensitivity);
+#line 1088 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = self->priv->adjust_button;
+#line 1088 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), sensitivity);
+#line 1089 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->enhance_button;
+#line 1089 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), sensitivity);
+#line 1090 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->zoom_slider;
+#line 1090 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), sensitivity);
+#line 1092 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp8_, 0, 0);
+#line 1092 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp8_, FALSE);
+#line 7991 "PhotoPage.c"
+}
+
+
+void editing_host_page_update_ui (EditingHostPage* self, gboolean missing) {
+#line 1081 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1081 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_GET_CLASS (self)->update_ui (self, missing);
+#line 8000 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_notify_photo_backing_missing (EditingHostPage* self, Photo* photo, gboolean missing) {
+#line 1096 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 8007 "PhotoPage.c"
+}
+
+
+void editing_host_page_notify_photo_backing_missing (EditingHostPage* self, Photo* photo, gboolean missing) {
+#line 1096 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1096 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_GET_CLASS (self)->notify_photo_backing_missing (self, photo, missing);
+#line 8016 "PhotoPage.c"
+}
+
+
+static void editing_host_page_draw_message (EditingHostPage* self, const gchar* message) {
+ PangoLayout* pango_layout = NULL;
+ const gchar* _tmp0_ = NULL;
+ PangoLayout* _tmp1_ = NULL;
+ gint text_width = 0;
+ gint text_height = 0;
+ PangoLayout* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GtkAllocation allocation = {0};
+ GtkAllocation _tmp5_ = {0};
+ gint x = 0;
+ GtkAllocation _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint y = 0;
+ GtkAllocation _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ PangoLayout* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 1099 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1099 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (message != NULL);
+#line 1101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = message;
+#line 1101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gtk_widget_create_pango_layout (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp0_);
+#line 1101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pango_layout = _tmp1_;
+#line 1103 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = pango_layout;
+#line 1103 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pango_layout_get_pixel_size (_tmp2_, &_tmp3_, &_tmp4_);
+#line 1103 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ text_width = _tmp3_;
+#line 1103 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ text_height = _tmp4_;
+#line 1106 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), &_tmp5_);
+#line 1106 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ allocation = _tmp5_;
+#line 1108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = allocation;
+#line 1108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_.width;
+#line 1108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = text_width;
+#line 1108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = _tmp7_ - _tmp8_;
+#line 1109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = x;
+#line 1109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp10_ > 0) {
+#line 8080 "PhotoPage.c"
+ gint _tmp11_ = 0;
+#line 1109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = x;
+#line 1109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp11_ / 2;
+#line 8086 "PhotoPage.c"
+ } else {
+#line 1109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = 0;
+#line 8090 "PhotoPage.c"
+ }
+#line 1109 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = _tmp9_;
+#line 1111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = allocation;
+#line 1111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp12_.height;
+#line 1111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = text_height;
+#line 1111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = _tmp13_ - _tmp14_;
+#line 1112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = y;
+#line 1112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp16_ > 0) {
+#line 8106 "PhotoPage.c"
+ gint _tmp17_ = 0;
+#line 1112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = y;
+#line 1112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp17_ / 2;
+#line 8112 "PhotoPage.c"
+ } else {
+#line 1112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = 0;
+#line 8116 "PhotoPage.c"
+ }
+#line 1112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = _tmp15_;
+#line 1114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = pango_layout;
+#line 1114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = x;
+#line 1114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = y;
+#line 1114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_paint_text (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp18_, _tmp19_, _tmp20_);
+#line 1099 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pango_layout);
+#line 8130 "PhotoPage.c"
+}
+
+
+void editing_host_page_set_photo_missing (EditingHostPage* self, gboolean missing) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ Photo* photo = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1118 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->photo_missing;
+#line 1119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = missing;
+#line 1119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 1120 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 8154 "PhotoPage.c"
+ }
+#line 1122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = missing;
+#line 1122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->photo_missing = _tmp2_;
+#line 1124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (self);
+#line 1124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = _tmp3_;
+#line 1125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = photo;
+#line 1125 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_ == NULL) {
+#line 1126 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 1126 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 8172 "PhotoPage.c"
+ }
+#line 1128 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = missing;
+#line 1128 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_ui (self, _tmp5_);
+#line 1130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->photo_missing;
+#line 1130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 8182 "PhotoPage.c"
+ {
+ GdkPixbuf* pixbuf = NULL;
+ Photo* _tmp7_ = NULL;
+ Scaling _tmp8_ = {0};
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ GdkPixbuf* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ Dimensions _tmp18_ = {0};
+#line 1132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo;
+#line 1132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp8_);
+#line 1132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = media_source_get_preview_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource), &_tmp8_, &_inner_error_);
+#line 1132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp9_;
+#line 1132 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8207 "PhotoPage.c"
+ goto __catch232_g_error;
+ }
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = pixbuf;
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = pixbuf;
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = gdk_pixbuf_get_width (_tmp11_);
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = pixbuf;
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = gdk_pixbuf_get_height (_tmp13_);
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = gdk_pixbuf_composite_color_simple (_tmp10_, _tmp12_, _tmp14_, GDK_INTERP_NEAREST, 100, 2, (guint32) 0, (guint32) 0);
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1134 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp15_;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = pixbuf;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = photo;
+#line 1137 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp18_);
+#line 1137 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp16_, &_tmp18_, NULL);
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 8236 "PhotoPage.c"
+ }
+ goto __finally232;
+ __catch232_g_error:
+ {
+ GError* err = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ Photo* _tmp21_ = NULL;
+ Dimensions _tmp22_ = {0};
+ GError* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 1139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 1, 1);
+#line 1139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 1139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = photo;
+#line 1139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp22_);
+#line 1139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp20_, &_tmp22_, NULL);
+#line 1139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = err;
+#line 1140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_->message;
+#line 1140 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_warning ("PhotoPage.vala:1140: %s", _tmp24_);
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 8272 "PhotoPage.c"
+ }
+ __finally232:
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 8285 "PhotoPage.c"
+ }
+ }
+#line 1118 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 8290 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_get_photo_missing (EditingHostPage* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1145 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1146 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->photo_missing;
+#line 1146 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp0_;
+#line 1146 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 8305 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_confirm_replace_photo (EditingHostPage* self, Photo* old_photo, Photo* new_photo) {
+ gboolean result = FALSE;
+#line 1149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail ((old_photo == NULL) || IS_PHOTO (old_photo), FALSE);
+#line 1149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (new_photo), FALSE);
+#line 1150 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1150 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 8319 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_confirm_replace_photo (EditingHostPage* self, Photo* old_photo, Photo* new_photo) {
+#line 1149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->confirm_replace_photo (self, old_photo, new_photo);
+#line 8328 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* editing_host_page_get_zoom_pixbuf (EditingHostPage* self, Photo* new_photo) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ PixbufCache* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1153 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 1153 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (new_photo), NULL);
+#line 1154 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->cache;
+#line 1154 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = new_photo;
+#line 1154 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = pixbuf_cache_get_ready_pixbuf (_tmp0_, _tmp1_);
+#line 1154 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp2_;
+#line 1155 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = pixbuf;
+#line 1155 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ == NULL) {
+#line 8357 "PhotoPage.c"
+ {
+ GdkPixbuf* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Scaling _tmp6_ = {0};
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = new_photo;
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp6_);
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = media_source_get_preview_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource), &_tmp6_, &_inner_error_);
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp7_;
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8374 "PhotoPage.c"
+ goto __catch233_g_error;
+ }
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp4_;
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = NULL;
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp8_;
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 8387 "PhotoPage.c"
+ }
+ goto __finally233;
+ __catch233_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 1159 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = err;
+#line 1159 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_->message;
+#line 1159 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_warning ("PhotoPage.vala:1159: %s", _tmp10_);
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 8407 "PhotoPage.c"
+ }
+ __finally233:
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return NULL;
+#line 8420 "PhotoPage.c"
+ }
+ }
+#line 1162 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = pixbuf;
+#line 1162 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp11_ == NULL) {
+#line 8427 "PhotoPage.c"
+ GdkPixbuf* _tmp12_ = NULL;
+ Scaling _tmp13_ = {0};
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+#line 1163 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = get_placeholder_pixbuf ();
+#line 1163 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1163 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp12_;
+#line 1164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp13_);
+#line 1164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = pixbuf;
+#line 1164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = scaling_perform_on_pixbuf (&_tmp13_, _tmp14_, GDK_INTERP_NEAREST, TRUE);
+#line 1164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 1164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 8449 "PhotoPage.c"
+ }
+#line 1166 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = pixbuf;
+#line 1166 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 8455 "PhotoPage.c"
+}
+
+
+static void editing_host_page_replace_photo (EditingHostPage* self, Photo* new_photo) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ Dimensions _tmp26_ = {0};
+ Photo* old_photo = NULL;
+ Photo* _tmp27_ = NULL;
+ Photo* _tmp28_ = NULL;
+ Photo* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ Photo* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+ Photo* _tmp36_ = NULL;
+ Photo* _tmp43_ = NULL;
+ Photo* _tmp44_ = NULL;
+ GdkPixbuf* _tmp45_ = NULL;
+ GdkPixbuf* _tmp46_ = NULL;
+ ZoomBuffer* _tmp47_ = NULL;
+#line 1169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (new_photo));
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = new_photo;
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (self);
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource));
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 8505 "PhotoPage.c"
+ gboolean _tmp7_ = FALSE;
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->pixbuf_dirty;
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = !_tmp7_;
+#line 8511 "PhotoPage.c"
+ } else {
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = FALSE;
+#line 8515 "PhotoPage.c"
+ }
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 8519 "PhotoPage.c"
+ gboolean _tmp8_ = FALSE;
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = self->priv->photo_missing;
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp8_;
+#line 8525 "PhotoPage.c"
+ } else {
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 8529 "PhotoPage.c"
+ }
+#line 1174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 8533 "PhotoPage.c"
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+ ZoomBuffer* _tmp13_ = NULL;
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = new_photo;
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = new_photo;
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = editing_host_page_get_zoom_pixbuf (self, _tmp10_);
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = zoom_buffer_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp9_, _tmp12_);
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->zoom_buffer);
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_buffer = _tmp13_;
+#line 1175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 8557 "PhotoPage.c"
+ }
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = editing_host_page_has_photo (self);
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp16_) {
+#line 8563 "PhotoPage.c"
+ Photo* _tmp17_ = NULL;
+ Photo* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = new_photo;
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = editing_host_page_get_photo (self);
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_SOURCE, DataSource));
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = !_tmp20_;
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 8580 "PhotoPage.c"
+ } else {
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = FALSE;
+#line 8584 "PhotoPage.c"
+ }
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp15_) {
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = editing_host_page_confirm_replace_photo != NULL;
+#line 8590 "PhotoPage.c"
+ } else {
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = FALSE;
+#line 8594 "PhotoPage.c"
+ }
+#line 1180 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp14_) {
+#line 8598 "PhotoPage.c"
+ Photo* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ Photo* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+#line 1181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = editing_host_page_get_photo (self);
+#line 1181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 1181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = new_photo;
+#line 1181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = editing_host_page_confirm_replace_photo (self, _tmp22_, _tmp23_);
+#line 1181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = !_tmp24_;
+#line 1181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp25_) {
+#line 1182 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 8620 "PhotoPage.c"
+ }
+ }
+#line 1185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp26_, 0, 0);
+#line 1185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp26_, FALSE);
+#line 1188 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = editing_host_page_get_photo (self);
+#line 1188 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ old_photo = _tmp27_;
+#line 1189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = new_photo;
+#line 1189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo (self, _tmp28_);
+#line 1190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = new_photo;
+#line 1190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_OBJECT, DataObject));
+#line 1190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = _tmp30_;
+#line 1190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_page_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp31_);
+#line 1190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp31_);
+#line 1193 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->swapped);
+#line 1193 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->swapped = NULL;
+#line 1196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = new_photo;
+#line 1196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = _tmp33_;
+#line 1196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = g_file_query_exists (_tmp34_, NULL);
+#line 1196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, !_tmp35_);
+#line 1196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp34_);
+#line 1197 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = TRUE;
+#line 1201 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rebuild_caches (self, "replace_photo");
+#line 1203 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = old_photo;
+#line 1203 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp36_ != NULL) {
+#line 8669 "PhotoPage.c"
+ ViewCollection* _tmp37_ = NULL;
+ ViewCollection* _tmp38_ = NULL;
+ Photo* _tmp39_ = NULL;
+ ViewCollection* _tmp40_ = NULL;
+ ViewCollection* _tmp41_ = NULL;
+ Photo* _tmp42_ = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = _tmp37_;
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = old_photo;
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = _tmp40_;
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = new_photo;
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_cancel_prefetch_neighbors (self, _tmp38_, _tmp39_, _tmp41_, _tmp42_);
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp41_);
+#line 1204 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp38_);
+#line 8694 "PhotoPage.c"
+ }
+#line 1206 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = new_photo;
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = new_photo;
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = editing_host_page_get_zoom_pixbuf (self, _tmp44_);
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = _tmp45_;
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = zoom_buffer_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp43_, _tmp46_);
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->zoom_buffer);
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_buffer = _tmp47_;
+#line 1208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp46_);
+#line 1210 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_quick_update_pixbuf (self);
+#line 1213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_refresh_caches (self, "replace_photo");
+#line 1169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (old_photo);
+#line 8720 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_cancel_zoom (SinglePhotoPage* base) {
+ EditingHostPage * self;
+ GtkScale* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkScale* _tmp2_ = NULL;
+ GtkScale* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ GtkDrawingArea* _tmp13_ = NULL;
+#line 1216 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ SINGLE_PHOTO_PAGE_CLASS (editing_host_page_parent_class)->cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->zoom_slider;
+#line 1219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp1_, NULL, FALSE);
+#line 1219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self);
+#line 1220 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->zoom_slider;
+#line 1220 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_range_get_type (), GtkRange), 0.0);
+#line 1221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->zoom_slider;
+#line 1221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_host_page_on_zoom_slider_value_changed_gtk_range_value_changed, self, 0);
+#line 1223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = editing_host_page_get_photo (self);
+#line 1223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_ != NULL;
+#line 1223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 8763 "PhotoPage.c"
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+ Dimensions _tmp10_ = {0};
+ ZoomState _tmp11_ = {0};
+#line 1224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (self);
+#line 1224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp9_);
+#line 1224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_surface_dim (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp10_);
+#line 1224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init (&_tmp11_, &_tmp9_, &_tmp10_, 0.0, NULL);
+#line 1224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp11_);
+#line 1224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 8783 "PhotoPage.c"
+ }
+#line 1230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage)->canvas;
+#line 1230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp13_ != NULL) {
+#line 8789 "PhotoPage.c"
+ GtkDrawingArea* _tmp14_ = NULL;
+ GdkWindow* _tmp15_ = NULL;
+#line 1230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage)->canvas;
+#line 1230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget));
+#line 1230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp15_ != NULL;
+#line 8798 "PhotoPage.c"
+ } else {
+#line 1230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = FALSE;
+#line 8802 "PhotoPage.c"
+ }
+#line 1230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp12_) {
+#line 1231 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_page_cursor (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), GDK_LEFT_PTR);
+#line 8808 "PhotoPage.c"
+ }
+#line 1233 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 8812 "PhotoPage.c"
+}
+
+
+static void editing_host_page_quick_update_pixbuf (EditingHostPage* self) {
+ GdkPixbuf* pixbuf = NULL;
+ PixbufCache* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ Scaling scaling = {0};
+ Scaling _tmp10_ = {0};
+ Photo* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ PixbufCache* _tmp28_ = NULL;
+ Photo* _tmp29_ = NULL;
+ Photo* _tmp30_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1236 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1237 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->cache;
+#line 1237 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (self);
+#line 1237 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 1237 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = pixbuf_cache_get_ready_pixbuf (_tmp0_, _tmp2_);
+#line 1237 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 1237 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1237 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp4_;
+#line 1238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = pixbuf;
+#line 1238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_ != NULL) {
+#line 8856 "PhotoPage.c"
+ GdkPixbuf* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+#line 1239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = pixbuf;
+#line 1239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (self);
+#line 1239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp9_);
+#line 1239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp6_, &_tmp9_, NULL);
+#line 1239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = FALSE;
+#line 1242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 8879 "PhotoPage.c"
+ }
+#line 1245 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp10_);
+#line 1245 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling = _tmp10_;
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = editing_host_page_get_photo (self);
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = scaling_to_string (&scaling);
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_debug ("PhotoPage.vala:1247: Using progressive load for %s (%s)", _tmp14_, _tmp16_);
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp16_);
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp14_);
+#line 1247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 8905 "PhotoPage.c"
+ {
+ GdkPixbuf* _tmp17_ = NULL;
+ Photo* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ Scaling _tmp20_ = {0};
+ GdkPixbuf* _tmp21_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+ Photo* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+ Dimensions _tmp25_ = {0};
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = editing_host_page_get_photo (self);
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = scaling;
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = media_source_get_preview_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_MEDIA_SOURCE, MediaSource), &_tmp20_, &_inner_error_);
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp22_;
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8932 "PhotoPage.c"
+ goto __catch234_g_error;
+ }
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = editing_host_page_get_photo (self);
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_;
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp25_);
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp17_, &_tmp25_, NULL);
+#line 1252 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp24_);
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp17_);
+#line 8947 "PhotoPage.c"
+ }
+ goto __finally234;
+ __catch234_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 1254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = err;
+#line 1254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = _tmp26_->message;
+#line 1254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_warning ("PhotoPage.vala:1254: %s", _tmp27_);
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 8967 "PhotoPage.c"
+ }
+ __finally234:
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 8980 "PhotoPage.c"
+ }
+#line 1257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = self->priv->cache;
+#line 1257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = editing_host_page_get_photo (self);
+#line 1257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = _tmp29_;
+#line 1257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_prefetch (_tmp28_, _tmp30_, BACKGROUND_JOB_JOB_PRIORITY_HIGHEST, FALSE);
+#line 1257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp30_);
+#line 1261 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = FALSE;
+#line 1236 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 8996 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_update_pixbuf (EditingHostPage* self) {
+ gboolean result = FALSE;
+ Photo* photo = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ Dimensions max_dim = {0};
+ Photo* _tmp2_ = NULL;
+ Dimensions _tmp3_ = {0};
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1269 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (self);
+#line 1269 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = _tmp0_;
+#line 1270 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = photo;
+#line 1270 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ == NULL) {
+#line 1271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 1271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 9029 "PhotoPage.c"
+ }
+#line 1273 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = NULL;
+#line 1274 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = photo;
+#line 1274 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp3_);
+#line 1274 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_dim = _tmp3_;
+#line 9039 "PhotoPage.c"
+ {
+ Dimensions tool_pixbuf_dim = {0};
+ Dimensions _tmp4_ = {0};
+ EditingToolsEditingTool* _tmp5_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+#line 1277 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_.width = 0;
+#line 1277 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_pixbuf_dim = _tmp4_;
+#line 1278 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = self->priv->current_tool;
+#line 1278 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_ != NULL) {
+#line 9053 "PhotoPage.c"
+ GdkPixbuf* _tmp6_ = NULL;
+ EditingToolsEditingTool* _tmp7_ = NULL;
+ Scaling _tmp8_ = {0};
+ Photo* _tmp9_ = NULL;
+ Dimensions _tmp10_ = {0};
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = self->priv->current_tool;
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp8_);
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = photo;
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = editing_tools_editing_tool_get_display_pixbuf (_tmp7_, &_tmp8_, _tmp9_, &_tmp10_, &_inner_error_);
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_pixbuf_dim = _tmp10_;
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp11_;
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9075 "PhotoPage.c"
+ goto __catch235_g_error;
+ }
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp6_;
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = NULL;
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1279 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp12_;
+#line 1278 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 9088 "PhotoPage.c"
+ }
+#line 1281 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = pixbuf;
+#line 1281 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp13_ != NULL) {
+#line 9094 "PhotoPage.c"
+ Dimensions _tmp14_ = {0};
+#line 1282 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = tool_pixbuf_dim;
+#line 1282 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_dim = _tmp14_;
+#line 9100 "PhotoPage.c"
+ }
+ }
+ goto __finally235;
+ __catch235_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 1284 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = err;
+#line 1284 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_->message;
+#line 1284 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_warning ("PhotoPage.vala:1284: %s", _tmp16_);
+#line 1285 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, TRUE);
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 9123 "PhotoPage.c"
+ }
+ __finally235:
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return FALSE;
+#line 9138 "PhotoPage.c"
+ }
+#line 1288 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = self->priv->photo_missing;
+#line 1288 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp17_) {
+#line 9144 "PhotoPage.c"
+ GdkPixbuf* _tmp18_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+#line 1290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = pixbuf;
+#line 1290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp18_ == NULL) {
+#line 9151 "PhotoPage.c"
+ PixbufCache* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+#line 1291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = self->priv->cache;
+#line 1291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = photo;
+#line 1291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = pixbuf_cache_get_ready_pixbuf (_tmp19_, _tmp20_);
+#line 1291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf = _tmp21_;
+#line 9165 "PhotoPage.c"
+ }
+#line 1294 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = pixbuf;
+#line 1294 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp22_ == NULL) {
+#line 9171 "PhotoPage.c"
+ PixbufCache* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+#line 1295 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = self->priv->cache;
+#line 1295 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = photo;
+#line 1295 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_prefetch (_tmp23_, _tmp24_, BACKGROUND_JOB_JOB_PRIORITY_NORMAL, FALSE);
+#line 9180 "PhotoPage.c"
+ }
+ }
+#line 1298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = self->priv->photo_missing;
+#line 1298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp26_) {
+#line 9187 "PhotoPage.c"
+ GdkPixbuf* _tmp27_ = NULL;
+#line 1298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = pixbuf;
+#line 1298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = _tmp27_ != NULL;
+#line 9193 "PhotoPage.c"
+ } else {
+#line 1298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = FALSE;
+#line 9197 "PhotoPage.c"
+ }
+#line 1298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp25_) {
+#line 9201 "PhotoPage.c"
+ GdkPixbuf* _tmp28_ = NULL;
+ Dimensions _tmp29_ = {0};
+#line 1299 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = pixbuf;
+#line 1299 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = max_dim;
+#line 1299 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp28_, &_tmp29_, NULL);
+#line 1300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = FALSE;
+#line 9212 "PhotoPage.c"
+ }
+#line 1307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 1307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 9222 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_on_resize (Page* base, GdkRectangle* rect) {
+ EditingHostPage * self;
+ GdkRectangle _tmp0_ = {0};
+#line 1310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (rect != NULL);
+#line 1311 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = *rect;
+#line 1311 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->on_resize (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), &_tmp0_);
+#line 1313 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_track_tool_window (self);
+#line 9239 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_on_resize_finished (Page* base, GdkRectangle* rect) {
+ EditingHostPage * self;
+#line 1316 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1316 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (rect != NULL);
+#line 1320 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rebuild_caches (self, "on_resize_finished");
+#line 1321 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = TRUE;
+#line 1323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_pixbuf (self);
+#line 9255 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_viewport_resized (EditingHostPage* self) {
+#line 1326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1329 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rebuild_caches (self, "on_viewport_resized");
+#line 1330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = TRUE;
+#line 1332 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_pixbuf (self);
+#line 9268 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ EditingHostPage * self;
+ gboolean multiple_photos = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ GtkToolButton* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GtkToolButton* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Photo* photo = NULL;
+ Photo* _tmp8_ = NULL;
+ Scaling scaling = {0};
+ Scaling _tmp9_ = {0};
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ Photo* _tmp13_ = NULL;
+ GtkToolButton* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ Photo* _tmp22_ = NULL;
+ GtkToggleToolButton* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ Photo* _tmp30_ = NULL;
+ GtkToggleToolButton* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ gboolean _tmp37_ = FALSE;
+ Photo* _tmp38_ = NULL;
+ GtkToggleToolButton* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+ Photo* _tmp46_ = NULL;
+ GtkToolButton* _tmp50_ = NULL;
+ gboolean _tmp51_ = FALSE;
+ gboolean _tmp52_ = FALSE;
+ Photo* _tmp53_ = NULL;
+ GtkToggleToolButton* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+#line 1335 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_sources_of_type_count (_tmp1_, TYPE_PHOTO);
+#line 1336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_ > 1;
+#line 1336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ multiple_photos = _tmp3_;
+#line 1338 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = self->priv->prev_button;
+#line 1338 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = multiple_photos;
+#line 1338 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), _tmp5_);
+#line 1339 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->next_button;
+#line 1339 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = multiple_photos;
+#line 1339 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), _tmp7_);
+#line 1341 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_host_page_get_photo (self);
+#line 1341 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = _tmp8_;
+#line 1342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp9_);
+#line 1342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling = _tmp9_;
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = photo;
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp13_ != NULL) {
+#line 9352 "PhotoPage.c"
+ gboolean _tmp14_ = FALSE;
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = self->priv->photo_missing;
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = !_tmp14_;
+#line 9358 "PhotoPage.c"
+ } else {
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = FALSE;
+#line 9362 "PhotoPage.c"
+ }
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp12_) {
+#line 9366 "PhotoPage.c"
+ Photo* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = photo;
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = photo_check_can_rotate (_tmp15_);
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp16_;
+#line 9375 "PhotoPage.c"
+ } else {
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = FALSE;
+#line 9379 "PhotoPage.c"
+ }
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp11_) {
+#line 9383 "PhotoPage.c"
+ Photo* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 1345 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = photo;
+#line 1345 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = editing_host_page_is_rotate_available (self, _tmp17_);
+#line 1345 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp18_;
+#line 9392 "PhotoPage.c"
+ } else {
+#line 1345 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = FALSE;
+#line 9396 "PhotoPage.c"
+ }
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = self->priv->rotate_button;
+#line 1344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), _tmp10_);
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = photo;
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp22_ != NULL) {
+#line 9406 "PhotoPage.c"
+ gboolean _tmp23_ = FALSE;
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = self->priv->photo_missing;
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = !_tmp23_;
+#line 9412 "PhotoPage.c"
+ } else {
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = FALSE;
+#line 9416 "PhotoPage.c"
+ }
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp21_) {
+#line 9420 "PhotoPage.c"
+ Photo* _tmp24_ = NULL;
+ Scaling _tmp25_ = {0};
+ gboolean _tmp26_ = FALSE;
+#line 1347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = photo;
+#line 1347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = scaling;
+#line 1347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = editing_tools_crop_tool_is_available (_tmp24_, &_tmp25_);
+#line 1347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp26_;
+#line 9432 "PhotoPage.c"
+ } else {
+#line 1347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = FALSE;
+#line 9436 "PhotoPage.c"
+ }
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = self->priv->crop_button;
+#line 1346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), _tmp20_);
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = photo;
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp30_ != NULL) {
+#line 9446 "PhotoPage.c"
+ gboolean _tmp31_ = FALSE;
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = self->priv->photo_missing;
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = !_tmp31_;
+#line 9452 "PhotoPage.c"
+ } else {
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = FALSE;
+#line 9456 "PhotoPage.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp29_) {
+#line 9460 "PhotoPage.c"
+ Photo* _tmp32_ = NULL;
+ Scaling _tmp33_ = {0};
+ gboolean _tmp34_ = FALSE;
+#line 1349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = photo;
+#line 1349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = scaling;
+#line 1349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = editing_tools_redeye_tool_is_available (_tmp32_, &_tmp33_);
+#line 1349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp34_;
+#line 9472 "PhotoPage.c"
+ } else {
+#line 1349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = FALSE;
+#line 9476 "PhotoPage.c"
+ }
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = self->priv->redeye_button;
+#line 1348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_widget_get_type (), GtkWidget), _tmp28_);
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = photo;
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp38_ != NULL) {
+#line 9486 "PhotoPage.c"
+ gboolean _tmp39_ = FALSE;
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = self->priv->photo_missing;
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = !_tmp39_;
+#line 9492 "PhotoPage.c"
+ } else {
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = FALSE;
+#line 9496 "PhotoPage.c"
+ }
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp37_) {
+#line 9500 "PhotoPage.c"
+ Photo* _tmp40_ = NULL;
+ Scaling _tmp41_ = {0};
+ gboolean _tmp42_ = FALSE;
+#line 1351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = photo;
+#line 1351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = scaling;
+#line 1351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = editing_tools_adjust_tool_is_available (_tmp40_, &_tmp41_);
+#line 1351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = _tmp42_;
+#line 9512 "PhotoPage.c"
+ } else {
+#line 1351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = FALSE;
+#line 9516 "PhotoPage.c"
+ }
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = self->priv->adjust_button;
+#line 1350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), _tmp36_);
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = photo;
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp46_ != NULL) {
+#line 9526 "PhotoPage.c"
+ gboolean _tmp47_ = FALSE;
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = self->priv->photo_missing;
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = !_tmp47_;
+#line 9532 "PhotoPage.c"
+ } else {
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = FALSE;
+#line 9536 "PhotoPage.c"
+ }
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp45_) {
+#line 9540 "PhotoPage.c"
+ Photo* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+#line 1353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = photo;
+#line 1353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp49_ = editing_host_page_is_enhance_available (self, _tmp48_);
+#line 1353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = _tmp49_;
+#line 9549 "PhotoPage.c"
+ } else {
+#line 1353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = FALSE;
+#line 9553 "PhotoPage.c"
+ }
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_ = self->priv->enhance_button;
+#line 1352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_widget_get_type (), GtkWidget), _tmp44_);
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_ = photo;
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp53_ != NULL) {
+#line 9563 "PhotoPage.c"
+ gboolean _tmp54_ = FALSE;
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54_ = self->priv->photo_missing;
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = !_tmp54_;
+#line 9569 "PhotoPage.c"
+ } else {
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = FALSE;
+#line 9573 "PhotoPage.c"
+ }
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp52_) {
+#line 9577 "PhotoPage.c"
+ Photo* _tmp55_ = NULL;
+ Scaling _tmp56_ = {0};
+ gboolean _tmp57_ = FALSE;
+#line 1355 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = photo;
+#line 1355 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_ = scaling;
+#line 1355 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57_ = editing_tools_straighten_tool_is_available (_tmp55_, &_tmp56_);
+#line 1355 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = _tmp57_;
+#line 9589 "PhotoPage.c"
+ } else {
+#line 1355 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = FALSE;
+#line 9593 "PhotoPage.c"
+ }
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp58_ = self->priv->straighten_button;
+#line 1354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, gtk_widget_get_type (), GtkWidget), _tmp51_);
+#line 1357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_ = selected_count;
+#line 1357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60_ = count;
+#line 1357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp59_, _tmp60_);
+#line 1335 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 9607 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_shift_pressed (Page* base, GdkEventKey* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ EditingToolsEditingTool* _tmp3_ = NULL;
+ GdkEventKey* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 1360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->current_tool;
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ == NULL) {
+#line 9626 "PhotoPage.c"
+ gboolean _tmp4_ = FALSE;
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = !_tmp4_;
+#line 9632 "PhotoPage.c"
+ } else {
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = FALSE;
+#line 9636 "PhotoPage.c"
+ }
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 9640 "PhotoPage.c"
+ gboolean _tmp5_ = FALSE;
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page_get_alt_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = !_tmp5_;
+#line 9646 "PhotoPage.c"
+ } else {
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = FALSE;
+#line 9650 "PhotoPage.c"
+ }
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 9654 "PhotoPage.c"
+ gboolean _tmp6_ = FALSE;
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_has_photo (self);
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp6_;
+#line 9660 "PhotoPage.c"
+ } else {
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 9664 "PhotoPage.c"
+ }
+#line 1362 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 1363 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_swap_in_original (self);
+#line 9670 "PhotoPage.c"
+ }
+#line 1365 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = event;
+#line 1365 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = PAGE_CLASS (editing_host_page_parent_class)->on_shift_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp7_);
+#line 1365 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp8_;
+#line 1365 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 9680 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_shift_released (Page* base, GdkEventKey* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ GdkEventKey* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1368 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1369 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1369 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ == NULL) {
+#line 1370 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_swap_out_original (self);
+#line 9698 "PhotoPage.c"
+ }
+#line 1372 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = event;
+#line 1372 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = PAGE_CLASS (editing_host_page_parent_class)->on_shift_released (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp1_);
+#line 1372 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 1372 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 9708 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_alt_pressed (Page* base, GdkEventKey* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ GdkEventKey* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1375 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1376 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1376 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ == NULL) {
+#line 1377 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_swap_out_original (self);
+#line 9726 "PhotoPage.c"
+ }
+#line 1379 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = event;
+#line 1379 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = PAGE_CLASS (editing_host_page_parent_class)->on_alt_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp1_);
+#line 1379 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 1379 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 9736 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_alt_released (Page* base, GdkEventKey* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ EditingToolsEditingTool* _tmp2_ = NULL;
+ GdkEventKey* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 1382 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->current_tool;
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_ == NULL) {
+#line 9754 "PhotoPage.c"
+ gboolean _tmp3_ = FALSE;
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = page_get_shift_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp3_;
+#line 9760 "PhotoPage.c"
+ } else {
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = FALSE;
+#line 9764 "PhotoPage.c"
+ }
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 9768 "PhotoPage.c"
+ gboolean _tmp4_ = FALSE;
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp4_;
+#line 9774 "PhotoPage.c"
+ } else {
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 9778 "PhotoPage.c"
+ }
+#line 1383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 1384 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_swap_in_original (self);
+#line 9784 "PhotoPage.c"
+ }
+#line 1386 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = event;
+#line 1386 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = PAGE_CLASS (editing_host_page_parent_class)->on_alt_released (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp5_);
+#line 1386 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp6_;
+#line 1386 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 9794 "PhotoPage.c"
+}
+
+
+static void editing_host_page_swap_in_original (EditingHostPage* self) {
+ GdkPixbuf* original = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GtkScale* _tmp10_ = NULL;
+ gdouble _tmp11_ = 0.0;
+ GdkPixbuf* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ GError * _inner_error_ = NULL;
+#line 1389 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 9810 "PhotoPage.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ Orientation _tmp7_ = 0;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 1393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (self);
+#line 1393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 1393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = photo_get_prefetched_copy (_tmp2_, &_inner_error_);
+#line 1393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 1393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp4_;
+#line 1393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9835 "PhotoPage.c"
+ goto __catch236_g_error;
+ }
+#line 1392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = editing_host_page_get_photo (self);
+#line 1392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 1392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo_get_original_orientation (_tmp6_);
+#line 1392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = orientation_rotate_pixbuf (_tmp7_, _tmp0_);
+#line 1392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (original);
+#line 1392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ original = _tmp8_;
+#line 1392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 9854 "PhotoPage.c"
+ }
+ goto __finally236;
+ __catch236_g_error:
+ {
+ GError* err = NULL;
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 1395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 1395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (original);
+#line 1395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 9870 "PhotoPage.c"
+ }
+ __finally236:
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (original);
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 9883 "PhotoPage.c"
+ }
+#line 1399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = single_photo_page_get_unscaled_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->swapped);
+#line 1399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->swapped = _tmp9_;
+#line 1403 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = self->priv->zoom_slider;
+#line 1403 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_range_get_type (), GtkRange));
+#line 1403 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp11_ != 0.0) {
+#line 1404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_save_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1405 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 9901 "PhotoPage.c"
+ }
+#line 1408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = original;
+#line 1408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = editing_host_page_get_photo (self);
+#line 1408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo_get_master_dimensions (_tmp14_, &_tmp15_);
+#line 1408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp12_, &_tmp15_, NULL);
+#line 1408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 1389 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (original);
+#line 9917 "PhotoPage.c"
+}
+
+
+static void editing_host_page_swap_out_original (EditingHostPage* self) {
+ GdkPixbuf* _tmp0_ = NULL;
+#line 1411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1412 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->swapped;
+#line 1412 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 9929 "PhotoPage.c"
+ GdkPixbuf* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+#line 1413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->swapped;
+#line 1413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (self);
+#line 1413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp4_);
+#line 1413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp1_, &_tmp4_, NULL);
+#line 1413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_restore_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1416 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_cursor_for_zoom_context (self);
+#line 1419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->swapped);
+#line 1419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->swapped = NULL;
+#line 9954 "PhotoPage.c"
+ }
+}
+
+
+static gpointer _editing_tools_editing_tool_ref0 (gpointer self) {
+#line 1463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self ? editing_tools_editing_tool_ref (self) : NULL;
+#line 9962 "PhotoPage.c"
+}
+
+
+static void editing_host_page_activate_tool (EditingHostPage* self, EditingToolsEditingTool* tool) {
+ Dimensions _tmp0_ = {0};
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* unscaled = NULL;
+ Dimensions max_dim = {0};
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+ Dimensions _tmp5_ = {0};
+ GdkPixbuf* _tmp22_ = NULL;
+ EditingToolsPhotoCanvas* photo_canvas = NULL;
+ EditingHostPageEditingHostCanvas* _tmp25_ = NULL;
+ EditingToolsEditingTool* _tmp26_ = NULL;
+ EditingToolsEditingTool* _tmp27_ = NULL;
+ EditingToolsEditingTool* _tmp28_ = NULL;
+ EditingToolsPhotoCanvas* _tmp29_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (tool));
+#line 1426 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_save_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1427 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 1431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp0_, FALSE);
+#line 1434 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = single_photo_page_get_unscaled_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1434 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cancel_editing_pixbuf);
+#line 1434 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->cancel_editing_pixbuf = _tmp1_;
+#line 1438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (self);
+#line 1438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp4_);
+#line 1438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1438 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_dim = _tmp5_;
+#line 10013 "PhotoPage.c"
+ {
+ Dimensions tool_pixbuf_dim = {0};
+ Dimensions _tmp6_ = {0};
+ GdkPixbuf* _tmp7_ = NULL;
+ EditingToolsEditingTool* _tmp8_ = NULL;
+ Scaling _tmp9_ = {0};
+ Photo* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+ Dimensions _tmp12_ = {0};
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+#line 1440 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_.width = 0;
+#line 1440 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_pixbuf_dim = _tmp6_;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = tool;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp9_);
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = editing_host_page_get_photo (self);
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = editing_tools_editing_tool_get_display_pixbuf (_tmp8_, &_tmp9_, _tmp11_, &_tmp12_, &_inner_error_);
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_pixbuf_dim = _tmp12_;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp14_;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10051 "PhotoPage.c"
+ goto __catch237_g_error;
+ }
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp7_;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = NULL;
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (unscaled);
+#line 1441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ unscaled = _tmp15_;
+#line 1443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = unscaled;
+#line 1443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp16_ != NULL) {
+#line 10066 "PhotoPage.c"
+ Dimensions _tmp17_ = {0};
+#line 1444 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = tool_pixbuf_dim;
+#line 1444 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_dim = _tmp17_;
+#line 10072 "PhotoPage.c"
+ }
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 10076 "PhotoPage.c"
+ }
+ goto __finally237;
+ __catch237_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GtkToggleToolButton* _tmp20_ = NULL;
+ GtkToggleToolButton* _tmp21_ = NULL;
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 1446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = err;
+#line 1446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_->message;
+#line 1446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_warning ("PhotoPage.vala:1446: %s", _tmp19_);
+#line 1447 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, TRUE);
+#line 1450 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = self->priv->current_editing_toggle;
+#line 1450 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp20_ != NULL, "current_editing_toggle != null");
+#line 1451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = self->priv->current_editing_toggle;
+#line 1451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_tool_button_set_active (_tmp21_, FALSE);
+#line 1453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 1453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (unscaled);
+#line 1453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 10112 "PhotoPage.c"
+ }
+ __finally237:
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (unscaled);
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 10125 "PhotoPage.c"
+ }
+#line 1456 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = unscaled;
+#line 1456 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp22_ != NULL) {
+#line 10131 "PhotoPage.c"
+ GdkPixbuf* _tmp23_ = NULL;
+ Dimensions _tmp24_ = {0};
+#line 1457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = unscaled;
+#line 1457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = max_dim;
+#line 1457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp23_, &_tmp24_, NULL);
+#line 10140 "PhotoPage.c"
+ }
+#line 1460 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = editing_host_page_editing_host_canvas_new (self);
+#line 1460 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo_canvas = G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvas);
+#line 1463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = tool;
+#line 1463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = _editing_tools_editing_tool_ref0 (_tmp26_);
+#line 1463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (self->priv->current_tool);
+#line 1463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->current_tool = _tmp27_;
+#line 1464 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = self->priv->current_tool;
+#line 1464 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = photo_canvas;
+#line 1464 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_editing_tool_activate (_tmp28_, _tmp29_);
+#line 1467 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_place_tool_window (self);
+#line 1470 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 1423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_photo_canvas_unref0 (photo_canvas);
+#line 1423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (unscaled);
+#line 10168 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_tool_activated_editing_tools_editing_tool_activated (EditingToolsEditingTool* _sender, gpointer self) {
+#line 1494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_activated ((EditingHostPage*) self);
+#line 10175 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_tool_deactivated_editing_tools_editing_tool_deactivated (EditingToolsEditingTool* _sender, gpointer self) {
+#line 1495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_deactivated ((EditingHostPage*) self);
+#line 10182 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_tool_applied_editing_tools_editing_tool_applied (EditingToolsEditingTool* _sender, Command* command, GdkPixbuf* new_pixbuf, Dimensions* new_max_dim, gboolean needs_improvement, gpointer self) {
+#line 1496 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_applied ((EditingHostPage*) self, command, new_pixbuf, new_max_dim, needs_improvement);
+#line 10189 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_tool_cancelled_editing_tools_editing_tool_cancelled (EditingToolsEditingTool* _sender, gpointer self) {
+#line 1497 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_cancelled ((EditingHostPage*) self);
+#line 10196 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_tool_aborted_editing_tools_editing_tool_aborted (EditingToolsEditingTool* _sender, gpointer self) {
+#line 1498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_aborted ((EditingHostPage*) self);
+#line 10203 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_update_pixbuf_gsource_func (gpointer self) {
+ gboolean result;
+ result = editing_host_page_update_pixbuf ((EditingHostPage*) self);
+#line 1525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10212 "PhotoPage.c"
+}
+
+
+static void editing_host_page_deactivate_tool (EditingHostPage* self, Command* command, GdkPixbuf* new_pixbuf, Dimensions* new_max_dim, gboolean needs_improvement) {
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ EditingToolsEditingTool* tool = NULL;
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ EditingToolsEditingTool* _tmp2_ = NULL;
+ EditingToolsEditingToolWindow* tool_window = NULL;
+ EditingToolsEditingTool* _tmp3_ = NULL;
+ EditingToolsEditingToolWindow* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ EditingToolsEditingToolWindow* _tmp6_ = NULL;
+ EditingToolsEditingTool* _tmp24_ = NULL;
+ EditingToolsEditingTool* _tmp25_ = NULL;
+ guint _tmp26_ = 0U;
+ EditingToolsEditingTool* _tmp27_ = NULL;
+ guint _tmp28_ = 0U;
+ EditingToolsEditingTool* _tmp29_ = NULL;
+ guint _tmp30_ = 0U;
+ EditingToolsEditingTool* _tmp31_ = NULL;
+ guint _tmp32_ = 0U;
+ EditingToolsEditingTool* _tmp33_ = NULL;
+ guint _tmp34_ = 0U;
+ GdkPixbuf* replacement = NULL;
+ GdkPixbuf* _tmp35_ = NULL;
+ GdkPixbuf* _tmp43_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ Command* _tmp47_ = NULL;
+#line 1473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail ((command == NULL) || IS_COMMAND (command));
+#line 1473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail ((new_pixbuf == NULL) || GDK_IS_PIXBUF (new_pixbuf));
+#line 1473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (new_max_dim != NULL);
+#line 1475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ == NULL) {
+#line 1476 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 10256 "PhotoPage.c"
+ }
+#line 1478 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1478 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _editing_tools_editing_tool_ref0 (_tmp1_);
+#line 1478 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool = _tmp2_;
+#line 1479 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (self->priv->current_tool);
+#line 1479 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->current_tool = NULL;
+#line 1482 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = tool;
+#line 1482 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = editing_tools_editing_tool_get_tool_window (_tmp3_);
+#line 1482 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_window = _tmp4_;
+#line 1483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = tool_window;
+#line 1483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_ != NULL) {
+#line 10278 "PhotoPage.c"
+ EditingToolsEditingToolWindow* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 1483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = tool_window;
+#line 1483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_tools_editing_tool_window_has_user_moved (_tmp7_);
+#line 1483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp8_;
+#line 10287 "PhotoPage.c"
+ } else {
+#line 1483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = FALSE;
+#line 10291 "PhotoPage.c"
+ }
+#line 1483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_) {
+#line 10295 "PhotoPage.c"
+ gint last_location_x = 0;
+ gint last_location_y = 0;
+ EditingToolsEditingToolWindow* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GeeHashMap* _tmp12_ = NULL;
+ EditingToolsEditingTool* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ GeeHashMap* _tmp18_ = NULL;
+ EditingToolsEditingTool* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+#line 1485 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = tool_window;
+#line 1485 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_window_get_position (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_window_get_type (), GtkWindow), &_tmp10_, &_tmp11_);
+#line 1485 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ last_location_x = _tmp10_;
+#line 1485 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ last_location_y = _tmp11_;
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = self->priv->last_locations;
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = tool;
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_->name;
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = g_strconcat (_tmp14_, "_x", NULL);
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = last_location_x;
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp16_, (gpointer) ((gintptr) _tmp17_));
+#line 1486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp16_);
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = self->priv->last_locations;
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = tool;
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_->name;
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = g_strconcat (_tmp20_, "_y", NULL);
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = last_location_y;
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp22_, (gpointer) ((gintptr) _tmp23_));
+#line 1487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp22_);
+#line 10353 "PhotoPage.c"
+ }
+#line 1492 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = tool;
+#line 1492 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_editing_tool_deactivate (_tmp24_);
+#line 1494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = tool;
+#line 1494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("activated", EDITING_TOOLS_TYPE_EDITING_TOOL, &_tmp26_, NULL, FALSE);
+#line 1494 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp25_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp26_, 0, NULL, (GCallback) _editing_host_page_on_tool_activated_editing_tools_editing_tool_activated, self);
+#line 1495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = tool;
+#line 1495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("deactivated", EDITING_TOOLS_TYPE_EDITING_TOOL, &_tmp28_, NULL, FALSE);
+#line 1495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp27_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp28_, 0, NULL, (GCallback) _editing_host_page_on_tool_deactivated_editing_tools_editing_tool_deactivated, self);
+#line 1496 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = tool;
+#line 1496 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("applied", EDITING_TOOLS_TYPE_EDITING_TOOL, &_tmp30_, NULL, FALSE);
+#line 1496 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp29_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp30_, 0, NULL, (GCallback) _editing_host_page_on_tool_applied_editing_tools_editing_tool_applied, self);
+#line 1497 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = tool;
+#line 1497 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("cancelled", EDITING_TOOLS_TYPE_EDITING_TOOL, &_tmp32_, NULL, FALSE);
+#line 1497 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp31_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp32_, 0, NULL, (GCallback) _editing_host_page_on_tool_cancelled_editing_tools_editing_tool_cancelled, self);
+#line 1498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = tool;
+#line 1498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("aborted", EDITING_TOOLS_TYPE_EDITING_TOOL, &_tmp34_, NULL, FALSE);
+#line 1498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp33_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp34_, 0, NULL, (GCallback) _editing_host_page_on_tool_aborted_editing_tools_editing_tool_aborted, self);
+#line 1500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (tool);
+#line 1500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool = NULL;
+#line 1504 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->current_editing_toggle);
+#line 1504 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->current_editing_toggle = NULL;
+#line 1507 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ replacement = NULL;
+#line 1508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = new_pixbuf;
+#line 1508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp35_ != NULL) {
+#line 10403 "PhotoPage.c"
+ GdkPixbuf* _tmp36_ = NULL;
+ GdkPixbuf* _tmp37_ = NULL;
+#line 1509 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = new_pixbuf;
+#line 1509 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = _g_object_ref0 (_tmp36_);
+#line 1509 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (replacement);
+#line 1509 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ replacement = _tmp37_;
+#line 10414 "PhotoPage.c"
+ } else {
+ GdkPixbuf* _tmp38_ = NULL;
+#line 1510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = self->priv->cancel_editing_pixbuf;
+#line 1510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp38_ != NULL) {
+#line 10421 "PhotoPage.c"
+ GdkPixbuf* _tmp39_ = NULL;
+ GdkPixbuf* _tmp40_ = NULL;
+ GdkPixbuf* _tmp41_ = NULL;
+ Dimensions _tmp42_ = {0};
+#line 1511 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = self->priv->cancel_editing_pixbuf;
+#line 1511 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = _g_object_ref0 (_tmp39_);
+#line 1511 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (replacement);
+#line 1511 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ replacement = _tmp40_;
+#line 1512 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = replacement;
+#line 1512 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_for_pixbuf (_tmp41_, &_tmp42_);
+#line 1512 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *new_max_dim = _tmp42_;
+#line 1513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ needs_improvement = FALSE;
+#line 10442 "PhotoPage.c"
+ } else {
+#line 1515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ needs_improvement = TRUE;
+#line 10446 "PhotoPage.c"
+ }
+ }
+#line 1518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = replacement;
+#line 1518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp43_ != NULL) {
+#line 10453 "PhotoPage.c"
+ GdkPixbuf* _tmp44_ = NULL;
+ Dimensions _tmp45_ = {0};
+#line 1519 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = replacement;
+#line 1519 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = *new_max_dim;
+#line 1519 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp44_, &_tmp45_, NULL);
+#line 10462 "PhotoPage.c"
+ }
+#line 1520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cancel_editing_pixbuf);
+#line 1520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->cancel_editing_pixbuf = NULL;
+#line 1523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = needs_improvement;
+#line 1523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp46_) {
+#line 1524 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = TRUE;
+#line 1525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, _editing_host_page_update_pixbuf_gsource_func, g_object_ref (self), g_object_unref);
+#line 10476 "PhotoPage.c"
+ }
+#line 1529 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = command;
+#line 1529 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp47_ != NULL) {
+#line 10482 "PhotoPage.c"
+ CommandManager* _tmp48_ = NULL;
+ CommandManager* _tmp49_ = NULL;
+ Command* _tmp50_ = NULL;
+#line 1530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp49_ = _tmp48_;
+#line 1530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_ = command;
+#line 1530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp49_, _tmp50_);
+#line 1530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp49_);
+#line 10496 "PhotoPage.c"
+ }
+#line 1473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (replacement);
+#line 1473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (tool_window);
+#line 1473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (tool);
+#line 10504 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_double_click (EditingHostPage* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 1535 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10516 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_on_double_click (EditingHostPage* self, GdkEventButton* event) {
+#line 1535 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1535 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->on_double_click (self, event);
+#line 10525 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_left_click (Page* base, GdkEventButton* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ GdkEventType _tmp1_ = 0;
+ gint x = 0;
+ GdkEventButton* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ gint y = 0;
+ GdkEventButton* _tmp8_ = NULL;
+ gdouble _tmp9_ = 0.0;
+ gboolean _tmp10_ = FALSE;
+ EditingToolsEditingTool* _tmp11_ = NULL;
+ EditingToolsEditingTool* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gboolean _tmp21_ = FALSE;
+ EditingToolsEditingTool* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 1540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = event;
+#line 1542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_->type;
+#line 1542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ == GDK_2BUTTON_PRESS) {
+#line 10559 "PhotoPage.c"
+ gboolean _tmp2_ = FALSE;
+ EditingToolsEditingTool* _tmp3_ = NULL;
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->current_tool;
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ == NULL) {
+#line 10566 "PhotoPage.c"
+ GdkEventButton* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = event;
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = editing_host_page_on_double_click (self, _tmp4_);
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp5_;
+#line 10575 "PhotoPage.c"
+ } else {
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = FALSE;
+#line 10579 "PhotoPage.c"
+ }
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 1543 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10585 "PhotoPage.c"
+ }
+#line 1545 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = event;
+#line 1545 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_->x;
+#line 1545 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = (gint) _tmp7_;
+#line 1546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = event;
+#line 1546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_->y;
+#line 1546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = (gint) _tmp9_;
+#line 1550 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = self->priv->current_tool;
+#line 1550 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp11_ == NULL) {
+#line 10603 "PhotoPage.c"
+ GtkScale* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+#line 1550 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = self->priv->zoom_slider;
+#line 1550 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_range_get_type (), GtkRange));
+#line 1550 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp13_ != 0.0;
+#line 10612 "PhotoPage.c"
+ } else {
+#line 1550 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = FALSE;
+#line 10616 "PhotoPage.c"
+ }
+#line 1550 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp10_) {
+#line 10620 "PhotoPage.c"
+ GdkEventButton* _tmp14_ = NULL;
+ gdouble _tmp15_ = 0.0;
+ GdkEventButton* _tmp16_ = NULL;
+ gdouble _tmp17_ = 0.0;
+#line 1551 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = event;
+#line 1551 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_->x;
+#line 1551 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_pan_start_point.x = (gint) _tmp15_;
+#line 1552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = event;
+#line 1552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_->y;
+#line 1552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_pan_start_point.y = (gint) _tmp17_;
+#line 1553 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_pan_in_progress = TRUE;
+#line 1554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_suspend_cursor_hiding (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1556 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1556 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10645 "PhotoPage.c"
+ }
+#line 1560 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = self->priv->current_tool;
+#line 1560 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp18_ == NULL) {
+#line 1561 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1561 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10655 "PhotoPage.c"
+ }
+#line 1566 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = x;
+#line 1566 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = y;
+#line 1566 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = single_photo_page_is_inside_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp19_, _tmp20_);
+#line 1566 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp21_) {
+#line 1567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10669 "PhotoPage.c"
+ }
+#line 1569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = self->priv->current_tool;
+#line 1569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = x;
+#line 1569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = y;
+#line 1569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_editing_tool_on_left_click (_tmp22_, _tmp23_, _tmp24_);
+#line 1572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10683 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_left_released (Page* base, GdkEventButton* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ EditingToolsEditingTool* _tmp21_ = NULL;
+ EditingToolsEditingTool* _tmp22_ = NULL;
+ GdkEventButton* _tmp23_ = NULL;
+ gdouble _tmp24_ = 0.0;
+ GdkEventButton* _tmp25_ = NULL;
+ gdouble _tmp26_ = 0.0;
+ EditingToolsEditingTool* _tmp27_ = NULL;
+ EditingToolsEditingToolWindow* _tmp28_ = NULL;
+ EditingToolsEditingToolWindow* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+#line 1575 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1575 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->is_pan_in_progress;
+#line 1576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 10709 "PhotoPage.c"
+ GdkPoint viewport_center = {0};
+ ZoomState _tmp1_ = {0};
+ GdkPoint _tmp2_ = {0};
+ gint delta_x = 0;
+ GdkEventButton* _tmp3_ = NULL;
+ gdouble _tmp4_ = 0.0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint delta_y = 0;
+ GdkEventButton* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GdkPoint _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ ZoomState zoom_state = {0};
+ ZoomState _tmp15_ = {0};
+ GdkPoint _tmp16_ = {0};
+ ZoomState _tmp17_ = {0};
+ ZoomBuffer* _tmp18_ = NULL;
+ ZoomBuffer* _tmp19_ = NULL;
+ ZoomState _tmp20_ = {0};
+#line 1577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
+#line 1577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewport_center (&_tmp1_, &_tmp2_);
+#line 1577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center = _tmp2_;
+#line 1578 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = event;
+#line 1578 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_->x;
+#line 1578 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = self->priv->zoom_pan_start_point;
+#line 1578 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_.x;
+#line 1578 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ delta_x = ((gint) _tmp4_) - _tmp6_;
+#line 1579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = event;
+#line 1579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_->y;
+#line 1579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = self->priv->zoom_pan_start_point;
+#line 1579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_.y;
+#line 1579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ delta_y = ((gint) _tmp8_) - _tmp10_;
+#line 1580 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = viewport_center.x;
+#line 1580 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = delta_x;
+#line 1580 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.x = _tmp11_ - _tmp12_;
+#line 1581 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = viewport_center.y;
+#line 1581 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = delta_y;
+#line 1581 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.y = _tmp13_ - _tmp14_;
+#line 1583 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp15_);
+#line 1583 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = viewport_center;
+#line 1583 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_pan (&zoom_state, &_tmp15_, &_tmp16_);
+#line 1584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = zoom_state;
+#line 1584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp17_);
+#line 1585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = single_photo_page_get_zoom_buffer (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 1585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = zoom_state;
+#line 1585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_buffer_flush_demand_cache (_tmp19_, &_tmp20_);
+#line 1585 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 1587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_pan_in_progress = FALSE;
+#line 1588 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_restore_cursor_hiding (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 10796 "PhotoPage.c"
+ }
+#line 1593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = self->priv->current_tool;
+#line 1593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp21_ == NULL) {
+#line 1594 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1594 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10806 "PhotoPage.c"
+ }
+#line 1596 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = self->priv->current_tool;
+#line 1596 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = event;
+#line 1596 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_->x;
+#line 1596 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = event;
+#line 1596 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_->y;
+#line 1596 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_editing_tool_on_left_released (_tmp22_, (gint) _tmp24_, (gint) _tmp26_);
+#line 1598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = self->priv->current_tool;
+#line 1598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = editing_tools_editing_tool_get_tool_window (_tmp27_);
+#line 1598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = _tmp28_;
+#line 1598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = _tmp29_ != NULL;
+#line 1598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp29_);
+#line 1598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp30_) {
+#line 10832 "PhotoPage.c"
+ EditingToolsEditingTool* _tmp31_ = NULL;
+ EditingToolsEditingToolWindow* _tmp32_ = NULL;
+ EditingToolsEditingToolWindow* _tmp33_ = NULL;
+#line 1599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = self->priv->current_tool;
+#line 1599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = editing_tools_editing_tool_get_tool_window (_tmp31_);
+#line 1599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = _tmp32_;
+#line 1599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_window_present (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_window_get_type (), GtkWindow));
+#line 1599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 10846 "PhotoPage.c"
+ }
+#line 1601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10852 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_right_click (Page* base, GdkEventButton* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 1604 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1604 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = event;
+#line 1605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = page_on_context_buttonpress (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp0_);
+#line 1605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp1_;
+#line 1605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10873 "PhotoPage.c"
+}
+
+
+static gboolean _editing_host_page_on_fetch_original_gsource_func (gpointer self) {
+ gboolean result;
+ result = editing_host_page_on_fetch_original ((EditingHostPage*) self);
+#line 1617 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 10882 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_photos_altered (EditingHostPage* self, GeeMap* map) {
+ GeeMap* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ Photo* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ ViewCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+#line 1608 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1608 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 1609 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = map;
+#line 1609 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (self);
+#line 1609 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 1609 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = gee_map_has_key (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 1609 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = !_tmp3_;
+#line 1609 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1609 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_) {
+#line 1610 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 10922 "PhotoPage.c"
+ }
+#line 1612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = TRUE;
+#line 1616 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = editing_host_page_get_photo (self);
+#line 1616 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 1616 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo_has_transformations (_tmp6_);
+#line 1616 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1616 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1616 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp8_) {
+#line 1617 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, _editing_host_page_on_fetch_original_gsource_func, g_object_ref (self), g_object_unref);
+#line 10940 "PhotoPage.c"
+ }
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = view_collection_get_selected_count (_tmp10_);
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp12_;
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_update_actions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp11_, _tmp14_);
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp13_);
+#line 1619 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp10_);
+#line 10960 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_view_contents_ordering_altered (EditingHostPage* self) {
+#line 1622 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_refresh_caches (self, "on_view_contents_ordering_altered");
+#line 10969 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_on_fetch_original (EditingHostPage* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1627 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (self);
+#line 1627 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 10982 "PhotoPage.c"
+ PixbufCache* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+#line 1628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->master_cache;
+#line 1628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (self);
+#line 1628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixbuf_cache_prefetch (_tmp1_, _tmp3_, BACKGROUND_JOB_JOB_PRIORITY_LOW, FALSE);
+#line 1628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 10996 "PhotoPage.c"
+ }
+#line 1630 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1630 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11002 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_is_panning_possible (EditingHostPage* self) {
+ gboolean result = FALSE;
+ Dimensions content_dim = {0};
+ Dimensions _tmp0_ = {0};
+ ZoomState _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ ZoomState _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Dimensions canvas_dim = {0};
+ Dimensions _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 1633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1636 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_.width = 0;
+#line 1636 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ content_dim = _tmp0_;
+#line 1637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
+#line 1637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_state_get_zoomed_width (&_tmp1_);
+#line 1637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ content_dim.width = _tmp2_;
+#line 1638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp3_);
+#line 1638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = zoom_state_get_zoomed_height (&_tmp3_);
+#line 1638 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ content_dim.height = _tmp4_;
+#line 1639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_surface_dim (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp5_);
+#line 1639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ canvas_dim = _tmp5_;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = canvas_dim;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_.width;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = content_dim;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_.width;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp8_ >= _tmp10_) {
+#line 11053 "PhotoPage.c"
+ Dimensions _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ Dimensions _tmp13_ = {0};
+ gint _tmp14_ = 0;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = canvas_dim;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_.height;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = content_dim;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_.height;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp12_ >= _tmp14_;
+#line 11068 "PhotoPage.c"
+ } else {
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = FALSE;
+#line 11072 "PhotoPage.c"
+ }
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = !_tmp6_;
+#line 1641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11078 "PhotoPage.c"
+}
+
+
+static void editing_host_page_update_cursor_for_zoom_context (EditingHostPage* self) {
+ gboolean _tmp0_ = FALSE;
+#line 1644 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_is_panning_possible (self);
+#line 1645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 1646 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_page_cursor (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), GDK_FLEUR);
+#line 11092 "PhotoPage.c"
+ } else {
+#line 1648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_page_cursor (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), GDK_LEFT_PTR);
+#line 11096 "PhotoPage.c"
+ }
+}
+
+
+static gboolean editing_host_page_real_on_motion (Page* base, GdkEventMotion* event, gint x, gint y, GdkModifierType mask) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GdkEventMotion* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ GdkModifierType _tmp27_ = 0;
+ gboolean _tmp28_ = FALSE;
+#line 1652 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1652 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 11119 "PhotoPage.c"
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GdkModifierType _tmp4_ = 0;
+ GdkEventMotion* _tmp5_ = NULL;
+#line 1654 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1654 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = x;
+#line 1654 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = y;
+#line 1654 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = mask;
+#line 1654 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_editing_tool_on_motion (_tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 1657 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = event;
+#line 1657 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gdk_event_request_motions (_tmp5_);
+#line 1659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11143 "PhotoPage.c"
+ }
+#line 1662 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_update_cursor_for_zoom_context (self);
+#line 1664 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->is_pan_in_progress;
+#line 1664 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 11151 "PhotoPage.c"
+ gint delta_x = 0;
+ GdkEventMotion* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GdkPoint _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint delta_y = 0;
+ GdkEventMotion* _tmp11_ = NULL;
+ gdouble _tmp12_ = 0.0;
+ GdkPoint _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ GdkPoint viewport_center = {0};
+ ZoomState _tmp15_ = {0};
+ GdkPoint _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ ZoomState zoom_state = {0};
+ ZoomState _tmp21_ = {0};
+ GdkPoint _tmp22_ = {0};
+ ZoomState _tmp23_ = {0};
+#line 1665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = event;
+#line 1665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_->x;
+#line 1665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = self->priv->zoom_pan_start_point;
+#line 1665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_.x;
+#line 1665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ delta_x = ((gint) _tmp8_) - _tmp10_;
+#line 1666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = event;
+#line 1666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_->y;
+#line 1666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = self->priv->zoom_pan_start_point;
+#line 1666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_.y;
+#line 1666 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ delta_y = ((gint) _tmp12_) - _tmp14_;
+#line 1668 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp15_);
+#line 1668 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewport_center (&_tmp15_, &_tmp16_);
+#line 1668 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center = _tmp16_;
+#line 1669 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = viewport_center.x;
+#line 1669 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = delta_x;
+#line 1669 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.x = _tmp17_ - _tmp18_;
+#line 1670 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = viewport_center.y;
+#line 1670 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = delta_y;
+#line 1670 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.y = _tmp19_ - _tmp20_;
+#line 1672 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp21_);
+#line 1672 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = viewport_center;
+#line 1672 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_pan (&zoom_state, &_tmp21_, &_tmp22_);
+#line 1674 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = zoom_state;
+#line 1674 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_interactive_pan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp23_);
+#line 1675 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1675 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11225 "PhotoPage.c"
+ }
+#line 1678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = event;
+#line 1678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = x;
+#line 1678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = y;
+#line 1678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = mask;
+#line 1678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = PAGE_CLASS (editing_host_page_parent_class)->on_motion (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp24_, _tmp25_, _tmp26_, _tmp27_);
+#line 1678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp28_;
+#line 1678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11241 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_leave_notify_event (Page* base) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1682 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1682 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 11256 "PhotoPage.c"
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1683 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1683 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_tools_editing_tool_on_leave_notify_event (_tmp1_);
+#line 1683 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 1683 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11267 "PhotoPage.c"
+ }
+#line 1685 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = PAGE_CLASS (editing_host_page_parent_class)->on_leave_notify_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
+#line 1685 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp3_;
+#line 1685 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11275 "PhotoPage.c"
+}
+
+
+static void editing_host_page_track_tool_window (EditingHostPage* self) {
+ EditingToolsEditingTool* _tmp0_ = NULL;
+#line 1688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1690 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1690 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 11287 "PhotoPage.c"
+ EditingToolsEditingToolWindow* tool_window = NULL;
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ EditingToolsEditingToolWindow* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ EditingToolsEditingToolWindow* _tmp4_ = NULL;
+#line 1691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_tools_editing_tool_get_tool_window (_tmp1_);
+#line 1691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_window = _tmp2_;
+#line 1692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = tool_window;
+#line 1692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_ != NULL) {
+#line 11303 "PhotoPage.c"
+ EditingToolsEditingToolWindow* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 1692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = tool_window;
+#line 1692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_tools_editing_tool_window_has_user_moved (_tmp5_);
+#line 1692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = !_tmp6_;
+#line 11312 "PhotoPage.c"
+ } else {
+#line 1692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = FALSE;
+#line 11316 "PhotoPage.c"
+ }
+#line 1692 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 1693 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_place_tool_window (self);
+#line 11322 "PhotoPage.c"
+ }
+#line 1690 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (tool_window);
+#line 11326 "PhotoPage.c"
+ }
+}
+
+
+static void editing_host_page_real_on_move (Page* base, GdkRectangle* rect) {
+ EditingHostPage * self;
+ GdkRectangle _tmp0_ = {0};
+#line 1697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (rect != NULL);
+#line 1698 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_track_tool_window (self);
+#line 1700 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = *rect;
+#line 1700 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->on_move (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), &_tmp0_);
+#line 11344 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_on_move_finished (Page* base, GdkRectangle* rect) {
+ EditingHostPage * self;
+ GeeHashMap* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+#line 1703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (rect != NULL);
+#line 1704 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->last_locations;
+#line 1704 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_abstract_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
+#line 1706 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = *rect;
+#line 1706 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (editing_host_page_parent_class)->on_move_finished (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), &_tmp1_);
+#line 11364 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_on_keyboard_pan_event (EditingHostPage* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+ ZoomState current_zoom_state = {0};
+ ZoomState _tmp0_ = {0};
+ GdkPoint viewport_center = {0};
+ GdkPoint _tmp1_ = {0};
+ GdkEventKey* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GQuark _tmp7_ = 0U;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label0 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label1 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label2 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label3 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label4 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label5 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label6 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label7 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label8 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label9 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label10 = 0;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp6_label11 = 0;
+#line 11403 "PhotoPage.c"
+ ZoomState new_zoom_state = {0};
+ ZoomState _tmp12_ = {0};
+ GdkPoint _tmp13_ = {0};
+ ZoomState _tmp14_ = {0};
+#line 1709 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1709 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1710 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp0_);
+#line 1710 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ current_zoom_state = _tmp0_;
+#line 1711 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_get_viewport_center (&current_zoom_state, &_tmp1_);
+#line 1711 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center = _tmp1_;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = event;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_->keyval;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = gdk_keyval_name (_tmp3_);
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = (NULL == _tmp5_) ? 0 : g_quark_from_string (_tmp5_);
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (((_tmp7_ == ((0 != _tmp6_label0) ? _tmp6_label0 : (_tmp6_label0 = g_quark_from_static_string ("Left")))) || (_tmp7_ == ((0 != _tmp6_label1) ? _tmp6_label1 : (_tmp6_label1 = g_quark_from_static_string ("KP_Left"))))) || (_tmp7_ == ((0 != _tmp6_label2) ? _tmp6_label2 : (_tmp6_label2 = g_quark_from_static_string ("KP_4"))))) {
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11434 "PhotoPage.c"
+ default:
+ {
+ gint _tmp8_ = 0;
+#line 1717 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = viewport_center.x;
+#line 1717 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.x = _tmp8_ - EDITING_HOST_PAGE_PAN_INCREMENT_SIZE;
+#line 1718 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11444 "PhotoPage.c"
+ }
+ }
+ } else if (((_tmp7_ == ((0 != _tmp6_label3) ? _tmp6_label3 : (_tmp6_label3 = g_quark_from_static_string ("Right")))) || (_tmp7_ == ((0 != _tmp6_label4) ? _tmp6_label4 : (_tmp6_label4 = g_quark_from_static_string ("KP_Right"))))) || (_tmp7_ == ((0 != _tmp6_label5) ? _tmp6_label5 : (_tmp6_label5 = g_quark_from_static_string ("KP_6"))))) {
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11450 "PhotoPage.c"
+ default:
+ {
+ gint _tmp9_ = 0;
+#line 1723 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = viewport_center.x;
+#line 1723 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.x = _tmp9_ + EDITING_HOST_PAGE_PAN_INCREMENT_SIZE;
+#line 1724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11460 "PhotoPage.c"
+ }
+ }
+ } else if (((_tmp7_ == ((0 != _tmp6_label6) ? _tmp6_label6 : (_tmp6_label6 = g_quark_from_static_string ("Down")))) || (_tmp7_ == ((0 != _tmp6_label7) ? _tmp6_label7 : (_tmp6_label7 = g_quark_from_static_string ("KP_Down"))))) || (_tmp7_ == ((0 != _tmp6_label8) ? _tmp6_label8 : (_tmp6_label8 = g_quark_from_static_string ("KP_2"))))) {
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11466 "PhotoPage.c"
+ default:
+ {
+ gint _tmp10_ = 0;
+#line 1729 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = viewport_center.y;
+#line 1729 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.y = _tmp10_ + EDITING_HOST_PAGE_PAN_INCREMENT_SIZE;
+#line 1730 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11476 "PhotoPage.c"
+ }
+ }
+ } else if (((_tmp7_ == ((0 != _tmp6_label9) ? _tmp6_label9 : (_tmp6_label9 = g_quark_from_static_string ("Up")))) || (_tmp7_ == ((0 != _tmp6_label10) ? _tmp6_label10 : (_tmp6_label10 = g_quark_from_static_string ("KP_Up"))))) || (_tmp7_ == ((0 != _tmp6_label11) ? _tmp6_label11 : (_tmp6_label11 = g_quark_from_static_string ("KP_8"))))) {
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11482 "PhotoPage.c"
+ default:
+ {
+ gint _tmp11_ = 0;
+#line 1735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = viewport_center.y;
+#line 1735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_center.y = _tmp11_ - EDITING_HOST_PAGE_PAN_INCREMENT_SIZE;
+#line 1736 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11492 "PhotoPage.c"
+ }
+ }
+ } else {
+#line 1713 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11498 "PhotoPage.c"
+ default:
+ {
+#line 1739 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 1739 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11505 "PhotoPage.c"
+ }
+ }
+ }
+#line 1742 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = current_zoom_state;
+#line 1742 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = viewport_center;
+#line 1742 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ zoom_state_init_pan (&new_zoom_state, &_tmp12_, &_tmp13_);
+#line 1743 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = new_zoom_state;
+#line 1743 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_set_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp14_);
+#line 1744 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 1746 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1746 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11525 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GdkEventKey* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean handled = FALSE;
+ GdkEventKey* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GQuark _tmp14_ = 0U;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label0 = 0;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label1 = 0;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label2 = 0;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label3 = 0;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label4 = 0;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label5 = 0;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label6 = 0;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp13_label7 = 0;
+#line 11558 "PhotoPage.c"
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 1749 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1749 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1751 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1751 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 11569 "PhotoPage.c"
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ GdkEventKey* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = event;
+#line 1752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_tools_editing_tool_on_keypress (_tmp1_, _tmp2_);
+#line 1752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 1753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11585 "PhotoPage.c"
+ }
+ }
+#line 1757 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = editing_host_page_is_panning_possible (self);
+#line 1757 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_) {
+#line 11592 "PhotoPage.c"
+ GdkEventKey* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 1758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = event;
+#line 1758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_on_keyboard_pan_event (self, _tmp5_);
+#line 1758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 1759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11605 "PhotoPage.c"
+ }
+ }
+#line 1765 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = event;
+#line 1765 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_host_page_on_zoom_slider_key_press (self, _tmp7_);
+#line 1765 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp8_) {
+#line 1766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11618 "PhotoPage.c"
+ }
+#line 1768 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ handled = TRUE;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = event;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_->keyval;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = gdk_keyval_name (_tmp10_);
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = (NULL == _tmp12_) ? 0 : g_quark_from_string (_tmp12_);
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((_tmp14_ == ((0 != _tmp13_label0) ? _tmp13_label0 : (_tmp13_label0 = g_quark_from_static_string ("Down")))) || (_tmp14_ == ((0 != _tmp13_label1) ? _tmp13_label1 : (_tmp13_label1 = g_quark_from_static_string ("KP_Down"))))) {
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11636 "PhotoPage.c"
+ default:
+ {
+#line 1775 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11641 "PhotoPage.c"
+ }
+ }
+ } else if (((_tmp14_ == ((0 != _tmp13_label2) ? _tmp13_label2 : (_tmp13_label2 = g_quark_from_static_string ("equal")))) || (_tmp14_ == ((0 != _tmp13_label3) ? _tmp13_label3 : (_tmp13_label3 = g_quark_from_static_string ("plus"))))) || (_tmp14_ == ((0 != _tmp13_label4) ? _tmp13_label4 : (_tmp13_label4 = g_quark_from_static_string ("KP_Add"))))) {
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11647 "PhotoPage.c"
+ default:
+ {
+#line 1780 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize");
+#line 1781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11654 "PhotoPage.c"
+ }
+ }
+ } else if (((_tmp14_ == ((0 != _tmp13_label5) ? _tmp13_label5 : (_tmp13_label5 = g_quark_from_static_string ("minus")))) || (_tmp14_ == ((0 != _tmp13_label6) ? _tmp13_label6 : (_tmp13_label6 = g_quark_from_static_string ("underscore"))))) || (_tmp14_ == ((0 != _tmp13_label7) ? _tmp13_label7 : (_tmp13_label7 = g_quark_from_static_string ("KP_Subtract"))))) {
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11660 "PhotoPage.c"
+ default:
+ {
+#line 1787 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize");
+#line 1788 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11667 "PhotoPage.c"
+ }
+ }
+ } else {
+#line 1770 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 11673 "PhotoPage.c"
+ default:
+ {
+#line 1791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ handled = FALSE;
+#line 1792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 11680 "PhotoPage.c"
+ }
+ }
+ }
+#line 1795 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = handled;
+#line 1795 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp15_) {
+#line 1796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 1796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11692 "PhotoPage.c"
+ }
+#line 1798 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (GTK_WIDGET_CLASS (editing_host_page_parent_class)->key_press_event != NULL) {
+#line 11696 "PhotoPage.c"
+ GdkEventKey* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 1798 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = event;
+#line 1798 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = GTK_WIDGET_CLASS (editing_host_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), gtk_widget_get_type (), GtkWidget), _tmp17_);
+#line 1798 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp18_;
+#line 11705 "PhotoPage.c"
+ } else {
+#line 1798 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = TRUE;
+#line 11709 "PhotoPage.c"
+ }
+#line 1798 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp16_;
+#line 1798 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11715 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_new_surface (SinglePhotoPage* base, cairo_t* default_ctx, Dimensions* dim) {
+ EditingHostPage * self;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+#line 1801 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1801 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (default_ctx != NULL);
+#line 1801 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (dim != NULL);
+#line 1803 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1803 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 11732 "PhotoPage.c"
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ cairo_t* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+#line 1804 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1804 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_->canvas;
+#line 1804 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = default_ctx;
+#line 1804 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = *dim;
+#line 1804 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_photo_canvas_set_surface (_tmp2_, _tmp3_, &_tmp4_);
+#line 11747 "PhotoPage.c"
+ }
+}
+
+
+static void editing_host_page_real_updated_pixbuf (SinglePhotoPage* base, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim) {
+ EditingHostPage * self;
+ gboolean _tmp0_ = FALSE;
+ EditingToolsEditingTool* _tmp1_ = NULL;
+#line 1807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 1807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (old_dim != NULL);
+#line 1811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ != NULL) {
+#line 11766 "PhotoPage.c"
+ SinglePhotoPageUpdateReason _tmp2_ = 0;
+#line 1811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = reason;
+#line 1811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp2_ != SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT;
+#line 11772 "PhotoPage.c"
+ } else {
+#line 1811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 11776 "PhotoPage.c"
+ }
+#line 1811 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 11780 "PhotoPage.c"
+ EditingToolsEditingTool* _tmp3_ = NULL;
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkRectangle _tmp7_ = {0};
+#line 1812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->current_tool;
+#line 1812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_->canvas;
+#line 1812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = *old_dim;
+#line 1812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = pixbuf;
+#line 1812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_scaled_pixbuf_position (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp7_);
+#line 1812 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_photo_canvas_resized_pixbuf (_tmp4_, &_tmp5_, _tmp6_, &_tmp7_);
+#line 1813 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cancel_editing_pixbuf);
+#line 1813 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->cancel_editing_pixbuf = NULL;
+#line 11802 "PhotoPage.c"
+ }
+}
+
+
+static GdkPixbuf* editing_host_page_real_get_bottom_left_trinket (EditingHostPage* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 1818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = NULL;
+#line 1818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11813 "PhotoPage.c"
+}
+
+
+GdkPixbuf* editing_host_page_get_bottom_left_trinket (EditingHostPage* self, gint scale) {
+#line 1817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 1817 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->get_bottom_left_trinket (self, scale);
+#line 11822 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* editing_host_page_real_get_top_left_trinket (EditingHostPage* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 1822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = NULL;
+#line 1822 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11832 "PhotoPage.c"
+}
+
+
+GdkPixbuf* editing_host_page_get_top_left_trinket (EditingHostPage* self, gint scale) {
+#line 1821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 1821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->get_top_left_trinket (self, scale);
+#line 11841 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* editing_host_page_real_get_top_right_trinket (EditingHostPage* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 1826 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = NULL;
+#line 1826 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11851 "PhotoPage.c"
+}
+
+
+GdkPixbuf* editing_host_page_get_top_right_trinket (EditingHostPage* self, gint scale) {
+#line 1825 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 1825 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->get_top_right_trinket (self, scale);
+#line 11860 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* editing_host_page_real_get_bottom_right_trinket (EditingHostPage* self, gint scale) {
+ GdkPixbuf* result = NULL;
+#line 1830 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = NULL;
+#line 1830 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 11870 "PhotoPage.c"
+}
+
+
+GdkPixbuf* editing_host_page_get_bottom_right_trinket (EditingHostPage* self, gint scale) {
+#line 1829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), NULL);
+#line 1829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return EDITING_HOST_PAGE_GET_CLASS (self)->get_bottom_right_trinket (self, scale);
+#line 11879 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_paint (SinglePhotoPage* base, cairo_t* ctx, Dimensions* ctx_dim) {
+ EditingHostPage * self;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ cairo_t* _tmp23_ = NULL;
+ Dimensions _tmp24_ = {0};
+ ZoomState _tmp25_ = {0};
+ gboolean _tmp26_ = FALSE;
+ GdkRectangle scaled_rect = {0};
+ GdkRectangle _tmp27_ = {0};
+ GdkPixbuf* trinket = NULL;
+ GdkPixbuf* _tmp28_ = NULL;
+ GdkPixbuf* _tmp29_ = NULL;
+ GdkPixbuf* _tmp53_ = NULL;
+ GdkPixbuf* _tmp54_ = NULL;
+ GdkPixbuf* _tmp73_ = NULL;
+ GdkPixbuf* _tmp74_ = NULL;
+ GdkPixbuf* _tmp98_ = NULL;
+ GdkPixbuf* _tmp99_ = NULL;
+#line 1833 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 1833 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (ctx != NULL);
+#line 1833 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (ctx_dim != NULL);
+#line 1834 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 1834 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ != NULL) {
+#line 11913 "PhotoPage.c"
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+#line 1835 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 1835 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = ctx;
+#line 1835 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_editing_tool_paint (_tmp1_, _tmp2_);
+#line 1837 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 11924 "PhotoPage.c"
+ }
+#line 1840 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = self->priv->photo_missing;
+#line 1840 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_) {
+#line 11930 "PhotoPage.c"
+ gboolean _tmp5_ = FALSE;
+#line 1840 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = editing_host_page_has_photo (self);
+#line 1840 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp5_;
+#line 11936 "PhotoPage.c"
+ } else {
+#line 1840 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = FALSE;
+#line 11940 "PhotoPage.c"
+ }
+#line 1840 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 11944 "PhotoPage.c"
+ cairo_t* _tmp6_ = NULL;
+ cairo_t* _tmp7_ = NULL;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ cairo_t* _tmp12_ = NULL;
+ cairo_t* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 1841 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = ctx;
+#line 1841 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ set_source_color_from_string (_tmp6_, "#000");
+#line 1842 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = ctx;
+#line 1842 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_surface_dim (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp8_);
+#line 1842 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_.width;
+#line 1842 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_surface_dim (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp10_);
+#line 1842 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_.height;
+#line 1842 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_rectangle (_tmp7_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp9_, (gdouble) _tmp11_);
+#line 1843 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = ctx;
+#line 1843 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_fill (_tmp12_);
+#line 1844 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = ctx;
+#line 1844 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_paint (_tmp13_);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _ ("Photo source file missing: %s");
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = editing_host_page_get_photo (self);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_;
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = g_file_get_path (_tmp18_);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = g_strdup_printf (_tmp14_, _tmp20_);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_draw_message (self, _tmp22_);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp22_);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp20_);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 1845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 1846 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12016 "PhotoPage.c"
+ }
+#line 1849 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = ctx;
+#line 1849 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = *ctx_dim;
+#line 1849 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ SINGLE_PHOTO_PAGE_CLASS (editing_host_page_parent_class)->paint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp23_, &_tmp24_);
+#line 1851 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp25_);
+#line 1851 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = zoom_state_is_default (&_tmp25_);
+#line 1851 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp26_) {
+#line 1852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12032 "PhotoPage.c"
+ }
+#line 1855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_scaled_pixbuf_position (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp27_);
+#line 1855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaled_rect = _tmp27_;
+#line 1857 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = editing_host_page_get_bottom_left_trinket (self, EDITING_HOST_PAGE_TRINKET_SCALE);
+#line 1857 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ trinket = _tmp28_;
+#line 1858 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = trinket;
+#line 1858 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp29_ != NULL) {
+#line 12046 "PhotoPage.c"
+ gint x = 0;
+ GdkRectangle _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ gint y = 0;
+ GdkRectangle _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ GdkRectangle _tmp34_ = {0};
+ gint _tmp35_ = 0;
+ GdkPixbuf* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ cairo_t* _tmp39_ = NULL;
+ GdkPixbuf* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ cairo_t* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ GdkPixbuf* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ GdkPixbuf* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ cairo_t* _tmp52_ = NULL;
+#line 1859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = scaled_rect;
+#line 1859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = _tmp30_.x;
+#line 1859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = _tmp31_ + EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = scaled_rect;
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = _tmp32_.y;
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = scaled_rect;
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = _tmp34_.height;
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = trinket;
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = gdk_pixbuf_get_height (_tmp36_);
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = _tmp37_;
+#line 1860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = ((_tmp33_ + _tmp35_) - _tmp38_) - EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1861 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = ctx;
+#line 1861 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = trinket;
+#line 1861 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = x;
+#line 1861 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = y;
+#line 1861 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gdk_cairo_set_source_pixbuf (_tmp39_, _tmp40_, (gdouble) _tmp41_, (gdouble) _tmp42_);
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = ctx;
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = x;
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = y;
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = trinket;
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = gdk_pixbuf_get_width (_tmp46_);
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = _tmp47_;
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp49_ = trinket;
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_ = gdk_pixbuf_get_height (_tmp49_);
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = _tmp50_;
+#line 1862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_rectangle (_tmp43_, (gdouble) _tmp44_, (gdouble) _tmp45_, (gdouble) _tmp48_, (gdouble) _tmp51_);
+#line 1863 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = ctx;
+#line 1863 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_fill (_tmp52_);
+#line 12128 "PhotoPage.c"
+ }
+#line 1866 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_ = editing_host_page_get_top_left_trinket (self, EDITING_HOST_PAGE_TRINKET_SCALE);
+#line 1866 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (trinket);
+#line 1866 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ trinket = _tmp53_;
+#line 1867 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54_ = trinket;
+#line 1867 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp54_ != NULL) {
+#line 12140 "PhotoPage.c"
+ gint x = 0;
+ GdkRectangle _tmp55_ = {0};
+ gint _tmp56_ = 0;
+ gint y = 0;
+ GdkRectangle _tmp57_ = {0};
+ gint _tmp58_ = 0;
+ cairo_t* _tmp59_ = NULL;
+ GdkPixbuf* _tmp60_ = NULL;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ cairo_t* _tmp63_ = NULL;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ GdkPixbuf* _tmp66_ = NULL;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ GdkPixbuf* _tmp69_ = NULL;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ cairo_t* _tmp72_ = NULL;
+#line 1868 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = scaled_rect;
+#line 1868 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_ = _tmp55_.x;
+#line 1868 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = _tmp56_ + EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1869 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57_ = scaled_rect;
+#line 1869 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp58_ = _tmp57_.y;
+#line 1869 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = _tmp58_ + EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_ = ctx;
+#line 1870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60_ = trinket;
+#line 1870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp61_ = x;
+#line 1870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_ = y;
+#line 1870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gdk_cairo_set_source_pixbuf (_tmp59_, _tmp60_, (gdouble) _tmp61_, (gdouble) _tmp62_);
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp63_ = ctx;
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp64_ = x;
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_ = y;
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp66_ = trinket;
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp67_ = gdk_pixbuf_get_width (_tmp66_);
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_ = _tmp67_;
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp69_ = trinket;
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp70_ = gdk_pixbuf_get_height (_tmp69_);
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_ = _tmp70_;
+#line 1871 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_rectangle (_tmp63_, (gdouble) _tmp64_, (gdouble) _tmp65_, (gdouble) _tmp68_, (gdouble) _tmp71_);
+#line 1872 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp72_ = ctx;
+#line 1872 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_fill (_tmp72_);
+#line 12207 "PhotoPage.c"
+ }
+#line 1875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp73_ = editing_host_page_get_top_right_trinket (self, EDITING_HOST_PAGE_TRINKET_SCALE);
+#line 1875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (trinket);
+#line 1875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ trinket = _tmp73_;
+#line 1876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_ = trinket;
+#line 1876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp74_ != NULL) {
+#line 12219 "PhotoPage.c"
+ gint x = 0;
+ GdkRectangle _tmp75_ = {0};
+ gint _tmp76_ = 0;
+ GdkRectangle _tmp77_ = {0};
+ gint _tmp78_ = 0;
+ GdkPixbuf* _tmp79_ = NULL;
+ gint _tmp80_ = 0;
+ gint _tmp81_ = 0;
+ gint y = 0;
+ GdkRectangle _tmp82_ = {0};
+ gint _tmp83_ = 0;
+ cairo_t* _tmp84_ = NULL;
+ GdkPixbuf* _tmp85_ = NULL;
+ gint _tmp86_ = 0;
+ gint _tmp87_ = 0;
+ cairo_t* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ GdkPixbuf* _tmp91_ = NULL;
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ GdkPixbuf* _tmp94_ = NULL;
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ cairo_t* _tmp97_ = NULL;
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp75_ = scaled_rect;
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp76_ = _tmp75_.x;
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_ = scaled_rect;
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp78_ = _tmp77_.width;
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp79_ = trinket;
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_ = gdk_pixbuf_get_width (_tmp79_);
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp81_ = _tmp80_;
+#line 1877 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = ((_tmp76_ + _tmp78_) - _tmp81_) - EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1878 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp82_ = scaled_rect;
+#line 1878 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_ = _tmp82_.y;
+#line 1878 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = _tmp83_ + EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1879 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp84_ = ctx;
+#line 1879 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp85_ = trinket;
+#line 1879 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_ = x;
+#line 1879 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp87_ = y;
+#line 1879 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gdk_cairo_set_source_pixbuf (_tmp84_, _tmp85_, (gdouble) _tmp86_, (gdouble) _tmp87_);
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp88_ = ctx;
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_ = x;
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp90_ = y;
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp91_ = trinket;
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_ = gdk_pixbuf_get_width (_tmp91_);
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp93_ = _tmp92_;
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp94_ = trinket;
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_ = gdk_pixbuf_get_height (_tmp94_);
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp96_ = _tmp95_;
+#line 1880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_rectangle (_tmp88_, (gdouble) _tmp89_, (gdouble) _tmp90_, (gdouble) _tmp93_, (gdouble) _tmp96_);
+#line 1881 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp97_ = ctx;
+#line 1881 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_fill (_tmp97_);
+#line 12301 "PhotoPage.c"
+ }
+#line 1884 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_ = editing_host_page_get_bottom_right_trinket (self, EDITING_HOST_PAGE_TRINKET_SCALE);
+#line 1884 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (trinket);
+#line 1884 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ trinket = _tmp98_;
+#line 1885 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp99_ = trinket;
+#line 1885 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp99_ != NULL) {
+#line 12313 "PhotoPage.c"
+ gint x = 0;
+ GdkRectangle _tmp100_ = {0};
+ gint _tmp101_ = 0;
+ GdkRectangle _tmp102_ = {0};
+ gint _tmp103_ = 0;
+ GdkPixbuf* _tmp104_ = NULL;
+ gint _tmp105_ = 0;
+ gint _tmp106_ = 0;
+ gint y = 0;
+ GdkRectangle _tmp107_ = {0};
+ gint _tmp108_ = 0;
+ GdkRectangle _tmp109_ = {0};
+ gint _tmp110_ = 0;
+ GdkPixbuf* _tmp111_ = NULL;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ cairo_t* _tmp114_ = NULL;
+ GdkPixbuf* _tmp115_ = NULL;
+ gint _tmp116_ = 0;
+ gint _tmp117_ = 0;
+ cairo_t* _tmp118_ = NULL;
+ gint _tmp119_ = 0;
+ gint _tmp120_ = 0;
+ GdkPixbuf* _tmp121_ = NULL;
+ gint _tmp122_ = 0;
+ gint _tmp123_ = 0;
+ GdkPixbuf* _tmp124_ = NULL;
+ gint _tmp125_ = 0;
+ gint _tmp126_ = 0;
+ cairo_t* _tmp127_ = NULL;
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp100_ = scaled_rect;
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_ = _tmp100_.x;
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp102_ = scaled_rect;
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp103_ = _tmp102_.width;
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_ = trinket;
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp105_ = gdk_pixbuf_get_width (_tmp104_);
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp106_ = _tmp105_;
+#line 1886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = ((_tmp101_ + _tmp103_) - _tmp106_) - EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp107_ = scaled_rect;
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_ = _tmp107_.y;
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp109_ = scaled_rect;
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp110_ = _tmp109_.height;
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp111_ = trinket;
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_ = gdk_pixbuf_get_height (_tmp111_);
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp113_ = _tmp112_;
+#line 1887 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = ((_tmp108_ + _tmp110_) - _tmp113_) - EDITING_HOST_PAGE_TRINKET_PADDING;
+#line 1888 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp114_ = ctx;
+#line 1888 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp115_ = trinket;
+#line 1888 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_ = x;
+#line 1888 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp117_ = y;
+#line 1888 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gdk_cairo_set_source_pixbuf (_tmp114_, _tmp115_, (gdouble) _tmp116_, (gdouble) _tmp117_);
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp118_ = ctx;
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp119_ = x;
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_ = y;
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp121_ = trinket;
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp122_ = gdk_pixbuf_get_width (_tmp121_);
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp123_ = _tmp122_;
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_ = trinket;
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp125_ = gdk_pixbuf_get_height (_tmp124_);
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp126_ = _tmp125_;
+#line 1889 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_rectangle (_tmp118_, (gdouble) _tmp119_, (gdouble) _tmp120_, (gdouble) _tmp123_, (gdouble) _tmp126_);
+#line 1890 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp127_ = ctx;
+#line 1890 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cairo_fill (_tmp127_);
+#line 12410 "PhotoPage.c"
+ }
+#line 1833 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (trinket);
+#line 12414 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_is_rotate_available (EditingHostPage* self, Photo* photo) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 1894 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 1894 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 1895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->photo_missing;
+#line 1895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = !_tmp0_;
+#line 1895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 12431 "PhotoPage.c"
+}
+
+
+static void editing_host_page_rotate (EditingHostPage* self, Rotation rotation, const gchar* name, const gchar* description) {
+ Dimensions _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ RotateSingleCommand* command = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Rotation _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ RotateSingleCommand* _tmp7_ = NULL;
+ RotateSingleCommand* _tmp8_ = NULL;
+ CommandManager* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ RotateSingleCommand* _tmp11_ = NULL;
+#line 1898 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1898 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (name != NULL);
+#line 1898 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (description != NULL);
+#line 1899 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1901 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 1901 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp0_, FALSE);
+#line 1903 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (self);
+#line 1903 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 1904 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12467 "PhotoPage.c"
+ }
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (self);
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = rotation;
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = name;
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = description;
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = rotate_single_command_new (_tmp3_, _tmp4_, _tmp5_, _tmp6_);
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp8_;
+#line 1908 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1908 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 1908 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = command;
+#line 1908 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp10_, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_COMMAND, Command));
+#line 1908 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp10_);
+#line 1898 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 12499 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_rotate_clockwise (EditingHostPage* self) {
+#line 1911 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1912 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rotate (self, ROTATION_CLOCKWISE, RESOURCES_ROTATE_CW_FULL_LABEL, RESOURCES_ROTATE_CW_TOOLTIP);
+#line 12508 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_rotate_counterclockwise (EditingHostPage* self) {
+#line 1915 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1916 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rotate (self, ROTATION_COUNTERCLOCKWISE, RESOURCES_ROTATE_CCW_FULL_LABEL, RESOURCES_ROTATE_CCW_TOOLTIP);
+#line 12517 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_flip_horizontally (EditingHostPage* self) {
+#line 1919 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1920 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rotate (self, ROTATION_MIRROR, RESOURCES_HFLIP_LABEL, "");
+#line 12526 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_flip_vertically (EditingHostPage* self) {
+#line 1923 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1924 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_rotate (self, ROTATION_UPSIDE_DOWN, RESOURCES_VFLIP_LABEL, "");
+#line 12535 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_revert (EditingHostPage* self) {
+ gboolean _tmp0_ = FALSE;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ RevertSingleCommand* command = NULL;
+ Photo* _tmp17_ = NULL;
+ Photo* _tmp18_ = NULL;
+ RevertSingleCommand* _tmp19_ = NULL;
+ RevertSingleCommand* _tmp20_ = NULL;
+ CommandManager* _tmp21_ = NULL;
+ CommandManager* _tmp22_ = NULL;
+ RevertSingleCommand* _tmp23_ = NULL;
+#line 1927 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->photo_missing;
+#line 1928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 1929 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12563 "PhotoPage.c"
+ }
+#line 1931 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp1_, 0, 0);
+#line 1931 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp1_, FALSE);
+#line 1933 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_has_photo (self);
+#line 1933 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp2_) {
+#line 1934 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12575 "PhotoPage.c"
+ }
+#line 1936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (self);
+#line 1936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 1936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = photo_has_editable (_tmp4_);
+#line 1936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 1936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 12589 "PhotoPage.c"
+ AppWindow* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ Photo* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = view_collection_get_sources (_tmp10_);
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = revert_editable_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_window_get_type (), GtkWindow), _tmp12_);
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = !_tmp13_;
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp10_);
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp14_) {
+#line 1939 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12626 "PhotoPage.c"
+ }
+#line 1942 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = editing_host_page_get_photo (self);
+#line 1942 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 1942 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo_revert_to_master (_tmp16_, TRUE);
+#line 1942 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 12636 "PhotoPage.c"
+ }
+#line 1945 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 1947 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, FALSE);
+#line 1949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = editing_host_page_get_photo (self);
+#line 1949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_;
+#line 1949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = revert_single_command_new (_tmp18_);
+#line 1949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 1949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 1949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp20_;
+#line 1950 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1950 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 1950 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = command;
+#line 1950 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp22_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_COMMAND, Command));
+#line 1950 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp22_);
+#line 1927 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 12666 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_edit_title (EditingHostPage* self) {
+ LibraryPhoto* item = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ EditTitleDialog* edit_title_dialog = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ EditTitleDialog* _tmp8_ = NULL;
+ EditTitleDialog* _tmp9_ = NULL;
+ gchar* new_title = NULL;
+ EditTitleDialog* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ EditTitleCommand* command = NULL;
+ LibraryPhoto* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ EditTitleCommand* _tmp15_ = NULL;
+ CommandManager* _tmp16_ = NULL;
+ CommandManager* _tmp17_ = NULL;
+ EditTitleCommand* _tmp18_ = NULL;
+#line 1953 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (self);
+#line 1955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_LIBRARY_PHOTO);
+#line 1955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 12704 "PhotoPage.c"
+ Photo* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+#line 1956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (self);
+#line 1956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp3_) : NULL;
+#line 1956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_ == NULL) {
+#line 1956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 12715 "PhotoPage.c"
+ }
+#line 1956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 1956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ item = _tmp4_;
+#line 12721 "PhotoPage.c"
+ } else {
+#line 1958 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 1958 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12727 "PhotoPage.c"
+ }
+#line 1960 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = item;
+#line 1960 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1960 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1960 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = edit_title_dialog_new (_tmp7_);
+#line 1960 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 1960 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp7_);
+#line 1960 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_title_dialog = _tmp9_;
+#line 1961 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = edit_title_dialog;
+#line 1961 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = edit_title_dialog_execute (_tmp10_);
+#line 1961 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ new_title = _tmp11_;
+#line 1962 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = new_title;
+#line 1962 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp12_ == NULL) {
+#line 1963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (new_title);
+#line 1963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _text_entry_dialog_mediator_unref0 (edit_title_dialog);
+#line 1963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 1963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12761 "PhotoPage.c"
+ }
+#line 1965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = item;
+#line 1965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = new_title;
+#line 1965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = edit_title_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_MEDIA_SOURCE, MediaSource), _tmp14_);
+#line 1965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp15_;
+#line 1966 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1966 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_;
+#line 1966 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = command;
+#line 1966 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_COMMAND, Command));
+#line 1966 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp17_);
+#line 1953 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 1953 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (new_title);
+#line 1953 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _text_entry_dialog_mediator_unref0 (edit_title_dialog);
+#line 1953 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 12789 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_edit_comment (EditingHostPage* self) {
+ LibraryPhoto* item = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ EditCommentDialog* edit_comment_dialog = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ EditCommentDialog* _tmp8_ = NULL;
+ EditCommentDialog* _tmp9_ = NULL;
+ gchar* new_comment = NULL;
+ EditCommentDialog* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ EditCommentCommand* command = NULL;
+ LibraryPhoto* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ EditCommentCommand* _tmp15_ = NULL;
+ CommandManager* _tmp16_ = NULL;
+ CommandManager* _tmp17_ = NULL;
+ EditCommentCommand* _tmp18_ = NULL;
+#line 1969 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1971 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (self);
+#line 1971 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1971 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_LIBRARY_PHOTO);
+#line 1971 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1971 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_) {
+#line 12827 "PhotoPage.c"
+ Photo* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+#line 1972 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (self);
+#line 1972 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp3_) : NULL;
+#line 1972 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_ == NULL) {
+#line 1972 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 12838 "PhotoPage.c"
+ }
+#line 1972 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 1972 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ item = _tmp4_;
+#line 12844 "PhotoPage.c"
+ } else {
+#line 1974 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 1974 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12850 "PhotoPage.c"
+ }
+#line 1976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = item;
+#line 1976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = media_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = edit_comment_dialog_new (_tmp7_, FALSE);
+#line 1976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 1976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp7_);
+#line 1976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_comment_dialog = _tmp9_;
+#line 1977 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = edit_comment_dialog;
+#line 1977 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = edit_comment_dialog_execute (_tmp10_);
+#line 1977 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ new_comment = _tmp11_;
+#line 1978 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = new_comment;
+#line 1978 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp12_ == NULL) {
+#line 1979 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (new_comment);
+#line 1979 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _multi_text_entry_dialog_mediator_unref0 (edit_comment_dialog);
+#line 1979 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 1979 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12884 "PhotoPage.c"
+ }
+#line 1981 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = item;
+#line 1981 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = new_comment;
+#line 1981 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = edit_comment_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_MEDIA_SOURCE, MediaSource), _tmp14_);
+#line 1981 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp15_;
+#line 1982 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1982 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_;
+#line 1982 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = command;
+#line 1982 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_COMMAND, Command));
+#line 1982 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp17_);
+#line 1969 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 1969 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (new_comment);
+#line 1969 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _multi_text_entry_dialog_mediator_unref0 (edit_comment_dialog);
+#line 1969 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (item);
+#line 12912 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_adjust_date_time (EditingHostPage* self) {
+ gboolean _tmp0_ = FALSE;
+ AdjustDateTimeDialog* dialog = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ AdjustDateTimeDialog* _tmp3_ = NULL;
+ AdjustDateTimeDialog* _tmp4_ = NULL;
+ gint64 time_shift = 0LL;
+ gboolean keep_relativity = FALSE;
+ gboolean modify_originals = FALSE;
+ AdjustDateTimeDialog* _tmp5_ = NULL;
+ gint64 _tmp6_ = 0LL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 1985 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 1986 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (self);
+#line 1986 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp0_) {
+#line 1987 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 12939 "PhotoPage.c"
+ }
+#line 1989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (self);
+#line 1989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 1989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = adjust_date_time_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATEABLE, Dateable), 1, !G_TYPE_CHECK_INSTANCE_TYPE (self, TYPE_DIRECT_PHOTO_PAGE), FALSE, FALSE);
+#line 1989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp3_);
+#line 1989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 1989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dialog = _tmp4_;
+#line 1993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = dialog;
+#line 1993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = adjust_date_time_dialog_execute (_tmp5_, &_tmp6_, &_tmp7_, &_tmp8_);
+#line 1993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ time_shift = _tmp6_;
+#line 1993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ keep_relativity = _tmp7_;
+#line 1993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ modify_originals = _tmp8_;
+#line 1993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp9_) {
+#line 12967 "PhotoPage.c"
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ GeeList* _tmp12_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ AdjustDateTimePhotoCommand* command = NULL;
+ Photo* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ gint64 _tmp16_ = 0LL;
+ gboolean _tmp17_ = FALSE;
+ AdjustDateTimePhotoCommand* _tmp18_ = NULL;
+ AdjustDateTimePhotoCommand* _tmp19_ = NULL;
+ CommandManager* _tmp20_ = NULL;
+ CommandManager* _tmp21_ = NULL;
+ AdjustDateTimePhotoCommand* _tmp22_ = NULL;
+#line 1994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_;
+#line 1994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = view_collection_get_selected (_tmp11_);
+#line 1994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp12_;
+#line 1994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp13_);
+#line 1994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = editing_host_page_get_photo (self);
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_;
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = time_shift;
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = modify_originals;
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = adjust_date_time_photo_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATEABLE, Dateable), _tmp16_, _tmp17_);
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 1996 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp19_;
+#line 1998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = _tmp20_;
+#line 1998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = command;
+#line 1998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_COMMAND, Command));
+#line 1998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp21_);
+#line 1993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 13022 "PhotoPage.c"
+ }
+#line 1985 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (dialog);
+#line 13026 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_set_background (EditingHostPage* self) {
+ gboolean _tmp0_ = FALSE;
+#line 2002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (self);
+#line 2003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 13038 "PhotoPage.c"
+ SetBackgroundPhotoDialog* dialog = NULL;
+ SetBackgroundPhotoDialog* _tmp1_ = NULL;
+ gboolean desktop = FALSE;
+ gboolean screensaver = FALSE;
+ SetBackgroundPhotoDialog* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 2004 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = set_background_photo_dialog_new ();
+#line 2004 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dialog = _tmp1_;
+#line 2006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = dialog;
+#line 2006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = set_background_photo_dialog_execute (_tmp2_, &_tmp3_, &_tmp4_);
+#line 2006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ desktop = _tmp3_;
+#line 2006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ screensaver = _tmp4_;
+#line 2006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_) {
+#line 13061 "PhotoPage.c"
+ AppWindow* _tmp6_ = NULL;
+ AppWindow* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ AppWindow* _tmp12_ = NULL;
+ AppWindow* _tmp13_ = NULL;
+#line 2007 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = app_window_get_instance ();
+#line 2007 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 2007 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PAGE_WINDOW, PageWindow));
+#line 2007 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2008 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_host_page_get_photo (self);
+#line 2008 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 2008 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = desktop;
+#line 2008 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = screensaver;
+#line 2008 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ desktop_integration_set_background (_tmp9_, _tmp10_, _tmp11_);
+#line 2008 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 2009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = app_window_get_instance ();
+#line 2009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp12_;
+#line 2009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PAGE_WINDOW, PageWindow));
+#line 2009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp13_);
+#line 13098 "PhotoPage.c"
+ }
+#line 2003 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _set_background_dialog_unref0 (dialog);
+#line 13102 "PhotoPage.c"
+ }
+}
+
+
+static void _editing_host_page_on_rotate_counterclockwise_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 2019 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_rotate_counterclockwise ((EditingHostPage*) self);
+#line 13110 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_ctrl_pressed (Page* base, GdkEventKey* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ GtkToolButton* _tmp0_ = NULL;
+ GtkToolButton* _tmp1_ = NULL;
+ GtkToolButton* _tmp2_ = NULL;
+ GtkToolButton* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ GtkToolButton* _tmp5_ = NULL;
+ EditingToolsEditingTool* _tmp6_ = NULL;
+ GdkEventKey* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 2014 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 2015 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->rotate_button;
+#line 2015 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_icon_name (_tmp0_, RESOURCES_COUNTERCLOCKWISE);
+#line 2016 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->rotate_button;
+#line 2016 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_label (_tmp1_, RESOURCES_ROTATE_CCW_LABEL);
+#line 2017 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->rotate_button;
+#line 2017 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_ROTATE_CCW_TOOLTIP);
+#line 2018 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->rotate_button;
+#line 2018 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("clicked", gtk_tool_button_get_type (), &_tmp4_, NULL, FALSE);
+#line 2018 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _editing_host_page_on_rotate_clockwise_gtk_tool_button_clicked, self);
+#line 2019 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = self->priv->rotate_button;
+#line 2019 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp5_, "clicked", (GCallback) _editing_host_page_on_rotate_counterclockwise_gtk_tool_button_clicked, self, 0);
+#line 2021 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = self->priv->current_tool;
+#line 2021 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_ == NULL) {
+#line 2022 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_swap_out_original (self);
+#line 13156 "PhotoPage.c"
+ }
+#line 2024 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = event;
+#line 2024 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = PAGE_CLASS (editing_host_page_parent_class)->on_ctrl_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp7_);
+#line 2024 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp8_;
+#line 2024 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 13166 "PhotoPage.c"
+}
+
+
+static gboolean editing_host_page_real_on_ctrl_released (Page* base, GdkEventKey* event) {
+ EditingHostPage * self;
+ gboolean result = FALSE;
+ GtkToolButton* _tmp0_ = NULL;
+ GtkToolButton* _tmp1_ = NULL;
+ GtkToolButton* _tmp2_ = NULL;
+ GtkToolButton* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ GtkToolButton* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ EditingToolsEditingTool* _tmp8_ = NULL;
+ GdkEventKey* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 2027 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 2028 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->rotate_button;
+#line 2028 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_icon_name (_tmp0_, RESOURCES_CLOCKWISE);
+#line 2029 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->rotate_button;
+#line 2029 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_button_set_label (_tmp1_, RESOURCES_ROTATE_CW_LABEL);
+#line 2030 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->rotate_button;
+#line 2030 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_tool_item_get_type (), GtkToolItem), RESOURCES_ROTATE_CW_TOOLTIP);
+#line 2031 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->rotate_button;
+#line 2031 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("clicked", gtk_tool_button_get_type (), &_tmp4_, NULL, FALSE);
+#line 2031 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _editing_host_page_on_rotate_counterclockwise_gtk_tool_button_clicked, self);
+#line 2032 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = self->priv->rotate_button;
+#line 2032 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp5_, "clicked", (GCallback) _editing_host_page_on_rotate_clockwise_gtk_tool_button_clicked, self, 0);
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = self->priv->current_tool;
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp8_ == NULL) {
+#line 13212 "PhotoPage.c"
+ gboolean _tmp9_ = FALSE;
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = page_get_shift_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp9_;
+#line 13218 "PhotoPage.c"
+ } else {
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = FALSE;
+#line 13222 "PhotoPage.c"
+ }
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp7_) {
+#line 13226 "PhotoPage.c"
+ gboolean _tmp10_ = FALSE;
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = page_get_alt_pressed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = !_tmp10_;
+#line 13232 "PhotoPage.c"
+ } else {
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = FALSE;
+#line 13236 "PhotoPage.c"
+ }
+#line 2034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 2035 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_swap_in_original (self);
+#line 13242 "PhotoPage.c"
+ }
+#line 2037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = event;
+#line 2037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = PAGE_CLASS (editing_host_page_parent_class)->on_ctrl_released (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp11_);
+#line 2037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp12_;
+#line 2037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 13252 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_tool_button_toggled (EditingHostPage* self, GtkToggleToolButton* toggle, EditingToolsEditingToolFactory factory) {
+ gboolean _tmp0_ = FALSE;
+ GtkToggleToolButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean deactivating_only = FALSE;
+ Dimensions _tmp6_ = {0};
+ gboolean _tmp7_ = FALSE;
+ GtkToggleToolButton* _tmp8_ = NULL;
+ GtkToggleToolButton* _tmp9_ = NULL;
+ EditingToolsEditingTool* tool = NULL;
+ EditingToolsEditingToolFactory _tmp10_ = NULL;
+ EditingToolsEditingTool* _tmp11_ = NULL;
+ EditingToolsEditingTool* _tmp12_ = NULL;
+ EditingToolsEditingTool* _tmp13_ = NULL;
+ EditingToolsEditingTool* _tmp14_ = NULL;
+ EditingToolsEditingTool* _tmp15_ = NULL;
+ EditingToolsEditingTool* _tmp16_ = NULL;
+ EditingToolsEditingTool* _tmp17_ = NULL;
+#line 2040 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2040 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GTK_IS_TOGGLE_TOOL_BUTTON (toggle));
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = toggle;
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gtk_toggle_tool_button_get_active (_tmp1_);
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp3_) {
+#line 13287 "PhotoPage.c"
+ GtkToggleToolButton* _tmp4_ = NULL;
+ GtkToggleToolButton* _tmp5_ = NULL;
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = self->priv->current_editing_toggle;
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = toggle;
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp4_ == _tmp5_;
+#line 13296 "PhotoPage.c"
+ } else {
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 13300 "PhotoPage.c"
+ }
+#line 2043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ deactivating_only = _tmp0_;
+#line 2044 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp6_, 0, 0);
+#line 2044 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp6_, FALSE);
+#line 2046 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = deactivating_only;
+#line 2046 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp7_) {
+#line 2047 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_restore_cursor_hiding (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2048 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 13316 "PhotoPage.c"
+ }
+#line 2051 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_suspend_cursor_hiding (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2053 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = toggle;
+#line 2053 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 2053 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->current_editing_toggle);
+#line 2053 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->current_editing_toggle = _tmp9_;
+#line 2056 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = factory;
+#line 2056 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_ ();
+#line 2056 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool = _tmp11_;
+#line 2057 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = tool;
+#line 2057 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp12_, "activated", (GCallback) _editing_host_page_on_tool_activated_editing_tools_editing_tool_activated, self, 0);
+#line 2058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = tool;
+#line 2058 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp13_, "deactivated", (GCallback) _editing_host_page_on_tool_deactivated_editing_tools_editing_tool_deactivated, self, 0);
+#line 2059 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = tool;
+#line 2059 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp14_, "applied", (GCallback) _editing_host_page_on_tool_applied_editing_tools_editing_tool_applied, self, 0);
+#line 2060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = tool;
+#line 2060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp15_, "cancelled", (GCallback) _editing_host_page_on_tool_cancelled_editing_tools_editing_tool_cancelled, self, 0);
+#line 2061 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = tool;
+#line 2061 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (_tmp16_, "aborted", (GCallback) _editing_host_page_on_tool_aborted_editing_tools_editing_tool_aborted, self, 0);
+#line 2063 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = tool;
+#line 2063 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_activate_tool (self, _tmp17_);
+#line 2040 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (tool);
+#line 13360 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_tool_activated (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ GtkToggleToolButton* _tmp2_ = NULL;
+#line 2066 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2067 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_editing_toggle;
+#line 2067 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp0_ != NULL, "current_editing_toggle != null");
+#line 2068 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->zoom_slider;
+#line 2068 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 2069 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->current_editing_toggle;
+#line 2069 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_tool_button_set_active (_tmp2_, TRUE);
+#line 13382 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_tool_deactivated (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ GtkToggleToolButton* _tmp2_ = NULL;
+#line 2072 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_editing_toggle;
+#line 2073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp0_ != NULL, "current_editing_toggle != null");
+#line 2074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->zoom_slider;
+#line 2074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 2075 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = self->priv->current_editing_toggle;
+#line 2075 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_tool_button_set_active (_tmp2_, FALSE);
+#line 13404 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_tool_applied (EditingHostPage* self, Command* command, GdkPixbuf* new_pixbuf, Dimensions* new_max_dim, gboolean needs_improvement) {
+ Command* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+#line 2078 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2078 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail ((command == NULL) || IS_COMMAND (command));
+#line 2078 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail ((new_pixbuf == NULL) || GDK_IS_PIXBUF (new_pixbuf));
+#line 2078 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (new_max_dim != NULL);
+#line 2080 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = command;
+#line 2080 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = new_pixbuf;
+#line 2080 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = *new_max_dim;
+#line 2080 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = needs_improvement;
+#line 2080 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, _tmp0_, _tmp1_, &_tmp2_, _tmp3_);
+#line 13431 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_tool_cancelled (EditingHostPage* self) {
+ Dimensions _tmp0_ = {0};
+#line 2083 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2084 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 2084 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp0_, FALSE);
+#line 2086 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_restore_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 2087 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 13447 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_tool_aborted (EditingHostPage* self) {
+ Dimensions _tmp0_ = {0};
+#line 2090 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2091 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 2091 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp0_, FALSE);
+#line 2092 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_set_photo_missing (self, TRUE);
+#line 13461 "PhotoPage.c"
+}
+
+
+void editing_host_page_toggle_crop (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+ GtkToggleToolButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2095 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2096 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->crop_button;
+#line 2096 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->crop_button;
+#line 2096 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gtk_toggle_tool_button_get_active (_tmp1_);
+#line 2096 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_tool_button_set_active (_tmp0_, !_tmp2_);
+#line 13479 "PhotoPage.c"
+}
+
+
+void editing_host_page_toggle_straighten (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+ GtkToggleToolButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2099 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->straighten_button;
+#line 2100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->straighten_button;
+#line 2100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gtk_toggle_tool_button_get_active (_tmp1_);
+#line 2100 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_tool_button_set_active (_tmp0_, !_tmp2_);
+#line 13497 "PhotoPage.c"
+}
+
+
+void editing_host_page_toggle_redeye (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+ GtkToggleToolButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2103 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->redeye_button;
+#line 2104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->redeye_button;
+#line 2104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gtk_toggle_tool_button_get_active (_tmp1_);
+#line 2104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_tool_button_set_active (_tmp0_, !_tmp2_);
+#line 13515 "PhotoPage.c"
+}
+
+
+void editing_host_page_toggle_adjust (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+ GtkToggleToolButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2107 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->adjust_button;
+#line 2108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->adjust_button;
+#line 2108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gtk_toggle_tool_button_get_active (_tmp1_);
+#line 2108 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_tool_button_set_active (_tmp0_, !_tmp2_);
+#line 13533 "PhotoPage.c"
+}
+
+
+static EditingToolsEditingTool* _editing_tools_straighten_tool_factory_editing_tools_editing_tool_factory (void) {
+ EditingToolsEditingTool* result;
+ result = editing_tools_straighten_tool_factory ();
+#line 2112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 13542 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_straighten_toggled (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+#line 2111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->straighten_button;
+#line 2112 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_button_toggled (self, _tmp0_, _editing_tools_straighten_tool_factory_editing_tools_editing_tool_factory);
+#line 13554 "PhotoPage.c"
+}
+
+
+static EditingToolsEditingTool* _editing_tools_crop_tool_factory_editing_tools_editing_tool_factory (void) {
+ EditingToolsEditingTool* result;
+ result = editing_tools_crop_tool_factory ();
+#line 2116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 13563 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_crop_toggled (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+#line 2115 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->crop_button;
+#line 2116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_button_toggled (self, _tmp0_, _editing_tools_crop_tool_factory_editing_tools_editing_tool_factory);
+#line 13575 "PhotoPage.c"
+}
+
+
+static EditingToolsEditingTool* _editing_tools_redeye_tool_factory_editing_tools_editing_tool_factory (void) {
+ EditingToolsEditingTool* result;
+ result = editing_tools_redeye_tool_factory ();
+#line 2120 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 13584 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_redeye_toggled (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+#line 2119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2120 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->redeye_button;
+#line 2120 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_button_toggled (self, _tmp0_, _editing_tools_redeye_tool_factory_editing_tools_editing_tool_factory);
+#line 13596 "PhotoPage.c"
+}
+
+
+static EditingToolsEditingTool* _editing_tools_adjust_tool_factory_editing_tools_editing_tool_factory (void) {
+ EditingToolsEditingTool* result;
+ result = editing_tools_adjust_tool_factory ();
+#line 2124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 13605 "PhotoPage.c"
+}
+
+
+static void editing_host_page_on_adjust_toggled (EditingHostPage* self) {
+ GtkToggleToolButton* _tmp0_ = NULL;
+#line 2123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->adjust_button;
+#line 2124 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_tool_button_toggled (self, _tmp0_, _editing_tools_adjust_tool_factory_editing_tools_editing_tool_factory);
+#line 13617 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_is_enhance_available (EditingHostPage* self, Photo* photo) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 2127 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 2127 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 2128 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->photo_missing;
+#line 2128 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = !_tmp0_;
+#line 2128 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 13634 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_enhance (EditingHostPage* self) {
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ EditingToolsAdjustTool* adjust_tool = NULL;
+ EditingToolsEditingTool* _tmp3_ = NULL;
+ EditingToolsAdjustTool* _tmp4_ = NULL;
+ EditingToolsAdjustTool* _tmp5_ = NULL;
+ EnhanceSingleCommand* command = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ EnhanceSingleCommand* _tmp9_ = NULL;
+ EnhanceSingleCommand* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ EnhanceSingleCommand* _tmp13_ = NULL;
+#line 2131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2135 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 2135 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, EDITING_TOOLS_TYPE_ADJUST_TOOL)) {
+#line 13659 "PhotoPage.c"
+ Dimensions _tmp1_ = {0};
+#line 2136 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp1_, 0, 0);
+#line 2136 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp1_, FALSE);
+#line 2138 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_cancel_zoom (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 13667 "PhotoPage.c"
+ }
+#line 2141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_has_photo (self);
+#line 2141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp2_) {
+#line 2142 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 13675 "PhotoPage.c"
+ }
+#line 2144 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->current_tool;
+#line 2144 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _editing_tools_editing_tool_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, EDITING_TOOLS_TYPE_ADJUST_TOOL) ? ((EditingToolsAdjustTool*) _tmp3_) : NULL);
+#line 2144 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ adjust_tool = _tmp4_;
+#line 2145 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = adjust_tool;
+#line 2145 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_ != NULL) {
+#line 13687 "PhotoPage.c"
+ EditingToolsAdjustTool* _tmp6_ = NULL;
+#line 2146 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = adjust_tool;
+#line 2146 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_tools_adjust_tool_enhance (_tmp6_);
+#line 2148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (adjust_tool);
+#line 2148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 13697 "PhotoPage.c"
+ }
+#line 2151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (self);
+#line 2151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 2151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = enhance_single_command_new (_tmp8_);
+#line 2151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 2151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 2151 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp10_;
+#line 2152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 2152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = command;
+#line 2152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_COMMAND, Command));
+#line 2152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp12_);
+#line 2131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 2131 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (adjust_tool);
+#line 13725 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_copy_adjustments (EditingHostPage* self) {
+ gboolean _tmp0_ = FALSE;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp3_ = NULL;
+ PixelTransformationBundle* _tmp4_ = NULL;
+#line 2155 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (self);
+#line 2156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp0_) {
+#line 2157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 13743 "PhotoPage.c"
+ }
+#line 2158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (self);
+#line 2158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 2158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = photo_get_color_adjustments (_tmp2_);
+#line 2158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 2158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ pixel_transformation_bundle_set_copied_color_adjustments (_tmp4_);
+#line 2158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformation_bundle_unref0 (_tmp4_);
+#line 2158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2159 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PasteColorAdjustments", TRUE);
+#line 13761 "PhotoPage.c"
+}
+
+
+void editing_host_page_on_paste_adjustments (EditingHostPage* self) {
+ PixelTransformationBundle* copied_adjustments = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ AdjustColorsSingleCommand* command = NULL;
+ Photo* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ PixelTransformationBundle* _tmp6_ = NULL;
+ AdjustColorsSingleCommand* _tmp7_ = NULL;
+ AdjustColorsSingleCommand* _tmp8_ = NULL;
+ CommandManager* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ AdjustColorsSingleCommand* _tmp11_ = NULL;
+#line 2162 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2163 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = pixel_transformation_bundle_get_copied_color_adjustments ();
+#line 2163 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ copied_adjustments = _tmp0_;
+#line 2164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_has_photo (self);
+#line 2164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp2_) {
+#line 2164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = TRUE;
+#line 13791 "PhotoPage.c"
+ } else {
+ PixelTransformationBundle* _tmp3_ = NULL;
+#line 2164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = copied_adjustments;
+#line 2164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp3_ == NULL;
+#line 13798 "PhotoPage.c"
+ }
+#line 2164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 2165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformation_bundle_unref0 (copied_adjustments);
+#line 2165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 13806 "PhotoPage.c"
+ }
+#line 2167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = editing_host_page_get_photo (self);
+#line 2167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 2167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = copied_adjustments;
+#line 2167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = adjust_colors_single_command_new (_tmp5_, _tmp6_, RESOURCES_PASTE_ADJUSTMENTS_LABEL, RESOURCES_PASTE_ADJUSTMENTS_TOOLTIP);
+#line 2167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 2167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2167 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp8_;
+#line 2169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 2169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = command;
+#line 2169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp10_, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_COMMAND, Command));
+#line 2169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp10_);
+#line 2162 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 2162 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _pixel_transformation_bundle_unref0 (copied_adjustments);
+#line 13836 "PhotoPage.c"
+}
+
+
+static void editing_host_page_place_tool_window (EditingHostPage* self) {
+ EditingToolsEditingTool* _tmp0_ = NULL;
+ EditingToolsEditingToolWindow* tool_window = NULL;
+ EditingToolsEditingTool* _tmp1_ = NULL;
+ EditingToolsEditingToolWindow* _tmp2_ = NULL;
+ EditingToolsEditingToolWindow* _tmp3_ = NULL;
+ EditingToolsEditingToolWindow* _tmp4_ = NULL;
+ EditingToolsEditingToolWindow* _tmp5_ = NULL;
+ GtkAllocation tool_alloc = {0};
+ EditingToolsEditingToolWindow* _tmp6_ = NULL;
+ GtkAllocation _tmp7_ = {0};
+ gint x = 0;
+ gint y = 0;
+ GeeHashMap* _tmp8_ = NULL;
+ EditingToolsEditingTool* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ GdkScreen* screen = NULL;
+ GtkWindow* _tmp84_ = NULL;
+ GtkWindow* _tmp85_ = NULL;
+ GdkScreen* _tmp86_ = NULL;
+ GdkScreen* _tmp87_ = NULL;
+ GdkScreen* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ GdkScreen* _tmp90_ = NULL;
+ gint _tmp91_ = 0;
+ GtkAllocation _tmp92_ = {0};
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ GdkScreen* _tmp96_ = NULL;
+ gint _tmp97_ = 0;
+ GtkAllocation _tmp98_ = {0};
+ gint _tmp99_ = 0;
+ gint _tmp100_ = 0;
+ EditingToolsEditingToolWindow* _tmp101_ = NULL;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ EditingToolsEditingToolWindow* _tmp104_ = NULL;
+ EditingToolsEditingToolWindow* _tmp105_ = NULL;
+#line 2172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 2173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_ == NULL) {
+#line 2174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 13891 "PhotoPage.c"
+ }
+#line 2176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->current_tool;
+#line 2176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_tools_editing_tool_get_tool_window (_tmp1_);
+#line 2176 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_window = _tmp2_;
+#line 2177 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = tool_window;
+#line 2177 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_ == NULL) {
+#line 2178 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (tool_window);
+#line 2178 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 13907 "PhotoPage.c"
+ }
+#line 2181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = tool_window;
+#line 2181 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 2182 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = tool_window;
+#line 2182 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 2185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = tool_window;
+#line 2185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), &_tmp7_);
+#line 2185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tool_alloc = _tmp7_;
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = self->priv->last_locations;
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = self->priv->current_tool;
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_->name;
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = g_strconcat (_tmp10_, "_x", NULL);
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_);
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp12_);
+#line 2189 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp14_) {
+#line 13941 "PhotoPage.c"
+ GeeHashMap* _tmp15_ = NULL;
+ EditingToolsEditingTool* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ GeeHashMap* _tmp21_ = NULL;
+ EditingToolsEditingTool* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gpointer _tmp26_ = NULL;
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = self->priv->last_locations;
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = self->priv->current_tool;
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_->name;
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = g_strconcat (_tmp17_, "_x", NULL);
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp19_);
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = (gint) ((gintptr) _tmp20_);
+#line 2190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp19_);
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = self->priv->last_locations;
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = self->priv->current_tool;
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = _tmp22_->name;
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = g_strconcat (_tmp23_, "_y", NULL);
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = _tmp24_;
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp25_);
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = (gint) ((gintptr) _tmp26_);
+#line 2191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp25_);
+#line 13986 "PhotoPage.c"
+ } else {
+ GtkWindow* _tmp27_ = NULL;
+ GtkWindow* _tmp28_ = NULL;
+ AppWindow* _tmp29_ = NULL;
+ AppWindow* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp27_;
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = app_window_get_instance ();
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = _tmp29_;
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = _tmp28_ == G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_window_get_type (), GtkWindow);
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp30_);
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp31_) {
+#line 14009 "PhotoPage.c"
+ gint rx = 0;
+ gint ry = 0;
+ GtkWindow* _tmp32_ = NULL;
+ GtkWindow* _tmp33_ = NULL;
+ GdkWindow* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ GtkAllocation viewport_allocation = {0};
+ GtkViewport* _tmp37_ = NULL;
+ GtkAllocation _tmp38_ = {0};
+ gint cx = 0;
+ gint cy = 0;
+ gint cwidth = 0;
+ gint cheight = 0;
+ GtkAllocation _tmp39_ = {0};
+ gint _tmp40_ = 0;
+ GtkAllocation _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ GtkAllocation _tmp43_ = {0};
+ gint _tmp44_ = 0;
+ GtkAllocation _tmp45_ = {0};
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ gint _tmp58_ = 0;
+ GtkAllocation _tmp59_ = {0};
+ gint _tmp60_ = 0;
+#line 2199 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2199 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = _tmp32_;
+#line 2199 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget));
+#line 2199 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gdk_window_get_root_origin (_tmp34_, &_tmp35_, &_tmp36_);
+#line 2199 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rx = _tmp35_;
+#line 2199 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ry = _tmp36_;
+#line 2199 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 2202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage)->viewport;
+#line 2202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget), &_tmp38_);
+#line 2202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ viewport_allocation = _tmp38_;
+#line 2205 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = viewport_allocation;
+#line 2205 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = _tmp39_.x;
+#line 2205 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cx = _tmp40_;
+#line 2206 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = viewport_allocation;
+#line 2206 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = _tmp41_.y;
+#line 2206 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cy = _tmp42_;
+#line 2207 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = viewport_allocation;
+#line 2207 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = _tmp43_.width;
+#line 2207 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cwidth = _tmp44_;
+#line 2208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = viewport_allocation;
+#line 2208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = _tmp45_.height;
+#line 2208 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ cheight = _tmp46_;
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (self, TYPE_DIRECT_PHOTO_PAGE)) {
+#line 14084 "PhotoPage.c"
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ GtkAllocation _tmp51_ = {0};
+ gint _tmp52_ = 0;
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = rx;
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp49_ = cx;
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_ = cwidth;
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = tool_alloc;
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = _tmp51_.width;
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = ((_tmp48_ + _tmp49_) + (_tmp50_ / 2)) - (_tmp52_ / 2);
+#line 14102 "PhotoPage.c"
+ } else {
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+#line 2213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_ = rx;
+#line 2213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54_ = cx;
+#line 2213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = cwidth;
+#line 2213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = (_tmp53_ + _tmp54_) + (_tmp55_ / 2);
+#line 14115 "PhotoPage.c"
+ }
+#line 2212 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = _tmp47_;
+#line 2214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_ = ry;
+#line 2214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57_ = cy;
+#line 2214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp58_ = cheight;
+#line 2214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_ = tool_alloc;
+#line 2214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60_ = _tmp59_.height;
+#line 2214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = ((_tmp56_ + _tmp57_) + _tmp58_) - ((_tmp60_ / 4) * 3);
+#line 14131 "PhotoPage.c"
+ } else {
+ GtkWindow* _tmp61_ = NULL;
+ GtkWindow* _tmp62_ = NULL;
+ GtkAllocation toolbar_alloc = {0};
+ GtkToolbar* _tmp63_ = NULL;
+ GtkToolbar* _tmp64_ = NULL;
+ GtkAllocation _tmp65_ = {0};
+ GdkScreen* screen = NULL;
+ GtkWindow* _tmp66_ = NULL;
+ GtkWindow* _tmp67_ = NULL;
+ GdkScreen* _tmp68_ = NULL;
+ GdkScreen* _tmp69_ = NULL;
+ GdkScreen* _tmp70_ = NULL;
+ GdkScreen* _tmp71_ = NULL;
+ gint _tmp72_ = 0;
+ GdkScreen* _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ GtkAllocation _tmp75_ = {0};
+ gint _tmp76_ = 0;
+ GtkAllocation _tmp77_ = {0};
+ gint _tmp78_ = 0;
+ EditingToolsEditingTool* _tmp79_ = NULL;
+#line 2216 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp61_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2216 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_ = _tmp61_;
+#line 2216 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (_tmp62_, TYPE_FULLSCREEN_WINDOW), "get_container() is FullscreenWindow");
+#line 2216 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp62_);
+#line 2221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp63_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp64_ = _tmp63_;
+#line 2221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_widget_get_type (), GtkWidget), &_tmp65_);
+#line 2221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ toolbar_alloc = _tmp65_;
+#line 2221 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp64_);
+#line 2223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp66_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp67_ = _tmp66_;
+#line 2223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_ = gtk_window_get_screen (_tmp67_);
+#line 2223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp69_ = _g_object_ref0 (_tmp68_);
+#line 2223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp70_ = _tmp69_;
+#line 2223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp67_);
+#line 2223 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ screen = _tmp70_;
+#line 2224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_ = screen;
+#line 2224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp72_ = gdk_screen_get_width (_tmp71_);
+#line 2224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = _tmp72_;
+#line 2225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp73_ = screen;
+#line 2225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_ = gdk_screen_get_height (_tmp73_);
+#line 2225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp75_ = toolbar_alloc;
+#line 2225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp76_ = _tmp75_.height;
+#line 2225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_ = tool_alloc;
+#line 2225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp78_ = _tmp77_.height;
+#line 2225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = ((_tmp74_ - _tmp76_) - _tmp78_) - EDITING_HOST_PAGE_TOOL_WINDOW_SEPARATOR;
+#line 2229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp79_ = self->priv->current_tool;
+#line 2229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp79_, EDITING_TOOLS_TYPE_ADJUST_TOOL)) {
+#line 14210 "PhotoPage.c"
+ gint _tmp80_ = 0;
+#line 2230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_ = x;
+#line 2230 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = (_tmp80_ * 3) / 4;
+#line 14216 "PhotoPage.c"
+ } else {
+ gint _tmp81_ = 0;
+ GtkAllocation _tmp82_ = {0};
+ gint _tmp83_ = 0;
+#line 2232 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp81_ = x;
+#line 2232 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp82_ = tool_alloc;
+#line 2232 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_ = _tmp82_.width;
+#line 2232 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = (_tmp81_ - _tmp83_) / 2;
+#line 14229 "PhotoPage.c"
+ }
+#line 2194 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (screen);
+#line 14233 "PhotoPage.c"
+ }
+ }
+#line 2238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp84_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp85_ = _tmp84_;
+#line 2238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_ = gtk_window_get_screen (_tmp85_);
+#line 2238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp87_ = _g_object_ref0 (_tmp86_);
+#line 2238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp88_ = _tmp87_;
+#line 2238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp85_);
+#line 2238 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ screen = _tmp88_;
+#line 2239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_ = x;
+#line 2239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp90_ = screen;
+#line 2239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp91_ = gdk_screen_get_width (_tmp90_);
+#line 2239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_ = tool_alloc;
+#line 2239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp93_ = _tmp92_.width;
+#line 2239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp94_ = CLAMP (_tmp89_, 0, _tmp91_ - _tmp93_);
+#line 2239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ x = _tmp94_;
+#line 2240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_ = y;
+#line 2240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp96_ = screen;
+#line 2240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp97_ = gdk_screen_get_height (_tmp96_);
+#line 2240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_ = tool_alloc;
+#line 2240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp99_ = _tmp98_.height;
+#line 2240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp100_ = CLAMP (_tmp95_, 0, _tmp97_ - _tmp99_);
+#line 2240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ y = _tmp100_;
+#line 2242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_ = tool_window;
+#line 2242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp102_ = x;
+#line 2242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp103_ = y;
+#line 2242 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_window_move (G_TYPE_CHECK_INSTANCE_CAST (_tmp101_, gtk_window_get_type (), GtkWindow), _tmp102_, _tmp103_);
+#line 2243 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_ = tool_window;
+#line 2243 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp104_, gtk_widget_get_type (), GtkWidget));
+#line 2244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp105_ = tool_window;
+#line 2244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_window_present (G_TYPE_CHECK_INSTANCE_CAST (_tmp105_, gtk_window_get_type (), GtkWindow));
+#line 2172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (screen);
+#line 2172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (tool_window);
+#line 14298 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_on_next_photo (SinglePhotoPage* base) {
+ EditingHostPage * self;
+ Dimensions _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ Photo* current_photo = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ DataView* current = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ DataView* next = NULL;
+ DataView* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+#line 2247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 2248 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 2248 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp0_, FALSE);
+#line 2250 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (self);
+#line 2250 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 2251 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 14332 "PhotoPage.c"
+ }
+#line 2253 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (self);
+#line 2253 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ current_photo = _tmp2_;
+#line 2254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = current_photo;
+#line 2254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp3_ != NULL, "current_photo != null");
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_get_photo (self);
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = view_collection_get_view_for_source (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_SOURCE, DataSource));
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 2256 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ current = _tmp9_;
+#line 2257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = current;
+#line 2257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp10_ == NULL) {
+#line 2258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current);
+#line 2258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current_photo);
+#line 2258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 14370 "PhotoPage.c"
+ }
+#line 2261 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = current;
+#line 2261 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 2261 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next = _tmp12_;
+#line 14378 "PhotoPage.c"
+ {
+ gboolean _tmp13_ = FALSE;
+#line 2262 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = TRUE;
+#line 2262 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ while (TRUE) {
+#line 14385 "PhotoPage.c"
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+ Photo* next_photo = NULL;
+ DataView* _tmp19_ = NULL;
+ DataSource* _tmp20_ = NULL;
+ Photo* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ Photo* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+ Photo* _tmp25_ = NULL;
+#line 2262 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp13_) {
+#line 14401 "PhotoPage.c"
+ }
+#line 2262 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = FALSE;
+#line 2263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_;
+#line 2263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = next;
+#line 2263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = view_collection_get_next (_tmp15_, _tmp16_);
+#line 2263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next);
+#line 2263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next = _tmp17_;
+#line 2263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 2264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = next;
+#line 2264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp18_ == NULL) {
+#line 2265 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 14425 "PhotoPage.c"
+ }
+#line 2267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = next;
+#line 2267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = data_view_get_source (_tmp19_);
+#line 2267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp20_, TYPE_PHOTO) ? ((Photo*) _tmp20_) : NULL;
+#line 2267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp21_ == NULL) {
+#line 2267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 14437 "PhotoPage.c"
+ }
+#line 2267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next_photo = _tmp21_;
+#line 2268 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = next_photo;
+#line 2268 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp22_ == NULL) {
+#line 2269 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next_photo);
+#line 2269 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ continue;
+#line 14449 "PhotoPage.c"
+ }
+#line 2271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = next_photo;
+#line 2271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = current_photo;
+#line 2271 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp23_ == _tmp24_) {
+#line 2272 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next_photo);
+#line 2272 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 14461 "PhotoPage.c"
+ }
+#line 2274 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = next_photo;
+#line 2274 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_replace_photo (self, _tmp25_);
+#line 2276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next_photo);
+#line 2276 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 14471 "PhotoPage.c"
+ }
+ }
+#line 2247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (next);
+#line 2247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current);
+#line 2247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current_photo);
+#line 14480 "PhotoPage.c"
+}
+
+
+static void editing_host_page_real_on_previous_photo (SinglePhotoPage* base) {
+ EditingHostPage * self;
+ Dimensions _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ Photo* current_photo = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ DataView* current = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ DataView* previous = NULL;
+ DataView* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+#line 2280 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 2281 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dimensions_init (&_tmp0_, 0, 0);
+#line 2281 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_deactivate_tool (self, NULL, NULL, &_tmp0_, FALSE);
+#line 2283 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (self);
+#line 2283 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 2284 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 14514 "PhotoPage.c"
+ }
+#line 2286 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (self);
+#line 2286 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ current_photo = _tmp2_;
+#line 2287 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = current_photo;
+#line 2287 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp3_ != NULL, "current_photo != null");
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_get_photo (self);
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = view_collection_get_view_for_source (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_SOURCE, DataSource));
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 2289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ current = _tmp9_;
+#line 2290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = current;
+#line 2290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp10_ == NULL) {
+#line 2291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current);
+#line 2291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current_photo);
+#line 2291 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 14552 "PhotoPage.c"
+ }
+#line 2294 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = current;
+#line 2294 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 2294 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ previous = _tmp12_;
+#line 14560 "PhotoPage.c"
+ {
+ gboolean _tmp13_ = FALSE;
+#line 2295 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = TRUE;
+#line 2295 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ while (TRUE) {
+#line 14567 "PhotoPage.c"
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+ Photo* previous_photo = NULL;
+ DataView* _tmp19_ = NULL;
+ DataSource* _tmp20_ = NULL;
+ Photo* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ Photo* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+ Photo* _tmp25_ = NULL;
+#line 2295 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp13_) {
+#line 14583 "PhotoPage.c"
+ }
+#line 2295 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = FALSE;
+#line 2296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_;
+#line 2296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = previous;
+#line 2296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = view_collection_get_previous (_tmp15_, _tmp16_);
+#line 2296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (previous);
+#line 2296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ previous = _tmp17_;
+#line 2296 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 2297 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = previous;
+#line 2297 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp18_ == NULL) {
+#line 2298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 14607 "PhotoPage.c"
+ }
+#line 2300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = previous;
+#line 2300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = data_view_get_source (_tmp19_);
+#line 2300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp20_, TYPE_PHOTO) ? ((Photo*) _tmp20_) : NULL;
+#line 2300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp21_ == NULL) {
+#line 2300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 14619 "PhotoPage.c"
+ }
+#line 2300 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ previous_photo = _tmp21_;
+#line 2301 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = previous_photo;
+#line 2301 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp22_ == NULL) {
+#line 2302 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (previous_photo);
+#line 2302 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ continue;
+#line 14631 "PhotoPage.c"
+ }
+#line 2304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = previous_photo;
+#line 2304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = current_photo;
+#line 2304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp23_ == _tmp24_) {
+#line 2305 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (previous_photo);
+#line 2305 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 14643 "PhotoPage.c"
+ }
+#line 2307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = previous_photo;
+#line 2307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_replace_photo (self, _tmp25_);
+#line 2309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (previous_photo);
+#line 2309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 14653 "PhotoPage.c"
+ }
+ }
+#line 2280 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (previous);
+#line 2280 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current);
+#line 2280 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (current_photo);
+#line 14662 "PhotoPage.c"
+}
+
+
+gboolean editing_host_page_has_current_tool (EditingHostPage* self) {
+ gboolean result = FALSE;
+ EditingToolsEditingTool* _tmp0_ = NULL;
+#line 2313 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (self), FALSE);
+#line 2314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->current_tool;
+#line 2314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp0_ != NULL;
+#line 2314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 14677 "PhotoPage.c"
+}
+
+
+void editing_host_page_unset_view_collection (EditingHostPage* self) {
+#line 2317 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_EDITING_HOST_PAGE (self));
+#line 2318 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (self->priv->parent_view);
+#line 2318 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->parent_view = NULL;
+#line 14688 "PhotoPage.c"
+}
+
+
+static EditingHostPageEditingHostCanvas* editing_host_page_editing_host_canvas_construct (GType object_type, EditingHostPage* host_page) {
+ EditingHostPageEditingHostCanvas* self = NULL;
+ EditingHostPage* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkWindow* _tmp2_ = NULL;
+ EditingHostPage* _tmp3_ = NULL;
+ GtkDrawingArea* _tmp4_ = NULL;
+ GdkWindow* _tmp5_ = NULL;
+ EditingHostPage* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ EditingHostPage* _tmp9_ = NULL;
+ cairo_t* _tmp10_ = NULL;
+ cairo_t* _tmp11_ = NULL;
+ EditingHostPage* _tmp12_ = NULL;
+ Dimensions _tmp13_ = {0};
+ EditingHostPage* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+ EditingHostPage* _tmp17_ = NULL;
+ GdkRectangle _tmp18_ = {0};
+ EditingHostPage* _tmp19_ = NULL;
+ EditingHostPage* _tmp20_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_EDITING_HOST_PAGE (host_page), NULL);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = host_page;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page));
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = host_page;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage)->canvas;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = host_page;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (_tmp6_);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = host_page;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = single_photo_page_get_cairo_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = host_page;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_surface_dim (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp13_);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = host_page;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = single_photo_page_get_scaled_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = host_page;
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_scaled_pixbuf_position (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp18_);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = (EditingHostPageEditingHostCanvas*) editing_tools_photo_canvas_construct (object_type, _tmp2_, _tmp5_, _tmp8_, _tmp11_, &_tmp13_, _tmp16_, &_tmp18_);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _cairo_destroy0 (_tmp11_);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 382 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = host_page;
+#line 382 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 382 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->host_page);
+#line 382 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->host_page = _tmp20_;
+#line 377 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self;
+#line 14775 "PhotoPage.c"
+}
+
+
+static EditingHostPageEditingHostCanvas* editing_host_page_editing_host_canvas_new (EditingHostPage* host_page) {
+#line 377 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return editing_host_page_editing_host_canvas_construct (EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS, host_page);
+#line 14782 "PhotoPage.c"
+}
+
+
+static void editing_host_page_editing_host_canvas_real_repaint (EditingToolsPhotoCanvas* base) {
+ EditingHostPageEditingHostCanvas * self;
+ EditingHostPage* _tmp0_ = NULL;
+#line 385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS, EditingHostPageEditingHostCanvas);
+#line 386 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->host_page;
+#line 386 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 14795 "PhotoPage.c"
+}
+
+
+static void editing_host_page_editing_host_canvas_class_init (EditingHostPageEditingHostCanvasClass * klass) {
+#line 374 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_editing_host_canvas_parent_class = g_type_class_peek_parent (klass);
+#line 374 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingToolsPhotoCanvasClass *) klass)->finalize = editing_host_page_editing_host_canvas_finalize;
+#line 374 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_type_class_add_private (klass, sizeof (EditingHostPageEditingHostCanvasPrivate));
+#line 374 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingToolsPhotoCanvasClass *) klass)->repaint = editing_host_page_editing_host_canvas_real_repaint;
+#line 14808 "PhotoPage.c"
+}
+
+
+static void editing_host_page_editing_host_canvas_instance_init (EditingHostPageEditingHostCanvas * self) {
+#line 374 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv = EDITING_HOST_PAGE_EDITING_HOST_CANVAS_GET_PRIVATE (self);
+#line 14815 "PhotoPage.c"
+}
+
+
+static void editing_host_page_editing_host_canvas_finalize (EditingToolsPhotoCanvas* obj) {
+ EditingHostPageEditingHostCanvas * self;
+#line 374 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_HOST_PAGE_TYPE_EDITING_HOST_CANVAS, EditingHostPageEditingHostCanvas);
+#line 375 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->host_page);
+#line 374 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_TOOLS_PHOTO_CANVAS_CLASS (editing_host_page_editing_host_canvas_parent_class)->finalize (obj);
+#line 14827 "PhotoPage.c"
+}
+
+
+static GType editing_host_page_editing_host_canvas_get_type (void) {
+ static volatile gsize editing_host_page_editing_host_canvas_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_host_page_editing_host_canvas_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingHostPageEditingHostCanvasClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_host_page_editing_host_canvas_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingHostPageEditingHostCanvas), 0, (GInstanceInitFunc) editing_host_page_editing_host_canvas_instance_init, NULL };
+ GType editing_host_page_editing_host_canvas_type_id;
+ editing_host_page_editing_host_canvas_type_id = g_type_register_static (EDITING_TOOLS_TYPE_PHOTO_CANVAS, "EditingHostPageEditingHostCanvas", &g_define_type_info, 0);
+ g_once_init_leave (&editing_host_page_editing_host_canvas_type_id__volatile, editing_host_page_editing_host_canvas_type_id);
+ }
+ return editing_host_page_editing_host_canvas_type_id__volatile;
+}
+
+
+static void editing_host_page_class_init (EditingHostPageClass * klass) {
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_parent_class = g_type_class_peek_parent (klass);
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_type_class_add_private (klass, sizeof (EditingHostPagePrivate));
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_zoom_slider_key_press = editing_host_page_real_on_zoom_slider_key_press;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_increase_size = editing_host_page_real_on_increase_size;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_decrease_size = editing_host_page_real_on_decrease_size;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->save_zoom_state = editing_host_page_real_save_zoom_state;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->get_zoom_buffer = editing_host_page_real_get_zoom_buffer;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_mousewheel_up = editing_host_page_real_on_mousewheel_up;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_mousewheel_down = editing_host_page_real_on_mousewheel_down;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->restore_zoom_state = editing_host_page_real_restore_zoom_state;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->is_zoom_supported = editing_host_page_real_is_zoom_supported;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->set_container = editing_host_page_real_set_container;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->photo_changing = editing_host_page_real_photo_changing;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((GtkWidgetClass *) klass)->realize = editing_host_page_real_realize;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->switched_to = editing_host_page_real_switched_to;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->switching_from = editing_host_page_real_switching_from;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->switching_to_fullscreen = editing_host_page_real_switching_to_fullscreen;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->returning_from_fullscreen = editing_host_page_real_returning_from_fullscreen;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->create_photo_view = editing_host_page_real_create_photo_view;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->update_ui = editing_host_page_real_update_ui;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->notify_photo_backing_missing = editing_host_page_real_notify_photo_backing_missing;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->confirm_replace_photo = editing_host_page_real_confirm_replace_photo;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->cancel_zoom = editing_host_page_real_cancel_zoom;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_resize = editing_host_page_real_on_resize;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_resize_finished = editing_host_page_real_on_resize_finished;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->update_actions = editing_host_page_real_update_actions;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_shift_pressed = editing_host_page_real_on_shift_pressed;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_shift_released = editing_host_page_real_on_shift_released;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_alt_pressed = editing_host_page_real_on_alt_pressed;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_alt_released = editing_host_page_real_on_alt_released;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_double_click = editing_host_page_real_on_double_click;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_left_click = editing_host_page_real_on_left_click;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_left_released = editing_host_page_real_on_left_released;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_right_click = editing_host_page_real_on_right_click;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_motion = editing_host_page_real_on_motion;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_leave_notify_event = editing_host_page_real_on_leave_notify_event;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_move = editing_host_page_real_on_move;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_move_finished = editing_host_page_real_on_move_finished;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = editing_host_page_real_key_press_event;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->new_surface = editing_host_page_real_new_surface;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->updated_pixbuf = editing_host_page_real_updated_pixbuf;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->get_bottom_left_trinket = editing_host_page_real_get_bottom_left_trinket;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->get_top_left_trinket = editing_host_page_real_get_top_left_trinket;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->get_top_right_trinket = editing_host_page_real_get_top_right_trinket;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->get_bottom_right_trinket = editing_host_page_real_get_bottom_right_trinket;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->paint = editing_host_page_real_paint;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_ctrl_pressed = editing_host_page_real_on_ctrl_pressed;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_ctrl_released = editing_host_page_real_on_ctrl_released;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->on_next_photo = editing_host_page_real_on_next_photo;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((SinglePhotoPageClass *) klass)->on_previous_photo = editing_host_page_real_on_previous_photo;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_host_page_finalize;
+#line 14946 "PhotoPage.c"
+}
+
+
+static void editing_host_page_instance_init (EditingHostPage * self) {
+ GtkToolButton* _tmp0_ = NULL;
+ GtkToolButton* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv = EDITING_HOST_PAGE_GET_PRIVATE (self);
+#line 391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->parent_view = NULL;
+#line 392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->swapped = NULL;
+#line 393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->pixbuf_dirty = TRUE;
+#line 394 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->rotate_button = NULL;
+#line 395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->crop_button = NULL;
+#line 396 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->redeye_button = NULL;
+#line 397 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->adjust_button = NULL;
+#line 398 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->straighten_button = NULL;
+#line 399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->enhance_button = NULL;
+#line 400 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_slider = NULL;
+#line 401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = (GtkToolButton*) gtk_tool_button_new (NULL, RESOURCES_PREVIOUS_LABEL);
+#line 401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp0_);
+#line 401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->prev_button = _tmp0_;
+#line 402 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = (GtkToolButton*) gtk_tool_button_new (NULL, RESOURCES_NEXT_LABEL);
+#line 402 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp1_);
+#line 402 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->next_button = _tmp1_;
+#line 403 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->current_tool = NULL;
+#line 404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->current_editing_toggle = NULL;
+#line 405 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->cancel_editing_pixbuf = NULL;
+#line 406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->photo_missing = FALSE;
+#line 407 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->cache = NULL;
+#line 408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->master_cache = NULL;
+#line 409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->dnd_handler = NULL;
+#line 410 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->enable_interactive_zoom_refresh = FALSE;
+#line 412 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->is_pan_in_progress = FALSE;
+#line 413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->saved_slider_val = 0.0;
+#line 414 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->zoom_buffer = NULL;
+#line 415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_INT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->last_locations = _tmp2_;
+#line 15014 "PhotoPage.c"
+}
+
+
+static void editing_host_page_finalize (GObject* obj) {
+ EditingHostPage * self;
+ SourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EDITING_HOST_PAGE, EditingHostPage);
+#line 546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->sources;
+#line 546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_host_page_on_photos_altered_data_collection_items_altered, self);
+#line 548 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 548 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 548 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp4_, NULL, FALSE);
+#line 548 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _editing_host_page_on_view_contents_ordering_altered_data_collection_contents_altered, self);
+#line 548 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("ordering-changed", TYPE_DATA_COLLECTION, &_tmp7_, NULL, FALSE);
+#line 549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _editing_host_page_on_view_contents_ordering_altered_data_collection_ordering_changed, self);
+#line 549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 391 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (self->priv->parent_view);
+#line 392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->swapped);
+#line 394 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->rotate_button);
+#line 395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->crop_button);
+#line 396 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->redeye_button);
+#line 397 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->adjust_button);
+#line 398 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->straighten_button);
+#line 399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->enhance_button);
+#line 400 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->zoom_slider);
+#line 401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->prev_button);
+#line 402 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->next_button);
+#line 403 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _editing_tools_editing_tool_unref0 (self->priv->current_tool);
+#line 404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->current_editing_toggle);
+#line 405 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cancel_editing_pixbuf);
+#line 407 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->cache);
+#line 408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->master_cache);
+#line 409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _drag_and_drop_handler_unref0 (self->priv->dnd_handler);
+#line 414 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->zoom_buffer);
+#line 415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->last_locations);
+#line 364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ G_OBJECT_CLASS (editing_host_page_parent_class)->finalize (obj);
+#line 15098 "PhotoPage.c"
+}
+
+
+GType editing_host_page_get_type (void) {
+ static volatile gsize editing_host_page_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_host_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingHostPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_host_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingHostPage), 0, (GInstanceInitFunc) editing_host_page_instance_init, NULL };
+ GType editing_host_page_type_id;
+ editing_host_page_type_id = g_type_register_static (TYPE_SINGLE_PHOTO_PAGE, "EditingHostPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&editing_host_page_type_id__volatile, editing_host_page_type_id);
+ }
+ return editing_host_page_type_id__volatile;
+}
+
+
+static void _library_photo_page_on_photo_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 2358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_photo_destroyed ((LibraryPhotoPage*) self, source);
+#line 15117 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_metadata_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 2359 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_metadata_altered ((LibraryPhotoPage*) self, items);
+#line 15124 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_external_app_changed_configuration_facade_external_app_changed (ConfigurationFacade* _sender, gpointer self) {
+#line 2360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_external_app_changed ((LibraryPhotoPage*) self);
+#line 15131 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 2342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_photos_altered ((LibraryPhotoPage*) self);
+#line 15138 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_photo_unlinking_source_collection_items_unlinking (SourceCollection* _sender, GeeCollection* unlinking, gpointer self) {
+#line 2353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_photo_unlinking ((LibraryPhotoPage*) self, unlinking);
+#line 15145 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_photo_relinked_source_collection_items_relinked (SourceCollection* _sender, GeeCollection* relinked, gpointer self) {
+#line 2354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_photo_relinked ((LibraryPhotoPage*) self, relinked);
+#line 15152 "PhotoPage.c"
+}
+
+
+LibraryPhotoPage* library_photo_page_construct (GType object_type) {
+ LibraryPhotoPage * self = NULL;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ LibraryPhotoSourceCollection* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ LibraryPhotoPageLibraryPhotoPageViewFilter* _tmp9_ = NULL;
+ LibraryPhotoSourceCollection* _tmp10_ = NULL;
+ LibraryPhotoSourceCollection* _tmp11_ = NULL;
+#line 2339 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = library_photo_global;
+#line 2339 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = (LibraryPhotoPage*) editing_host_page_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), "Photo");
+#line 2342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 2342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _library_photo_page_on_photos_altered_data_collection_items_altered, self, 0);
+#line 2342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 2345 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = library_photo_global;
+#line 2345 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _library_photo_page_on_photo_destroyed_source_collection_item_destroyed, self, 0);
+#line 2346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = library_photo_global;
+#line 2346 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _library_photo_page_on_metadata_altered_data_collection_items_altered, self, 0);
+#line 2349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = config_facade_get_instance ();
+#line 2349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 2349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), "external-app-changed", (GCallback) _library_photo_page_on_external_app_changed_configuration_facade_external_app_changed, self, 0);
+#line 2349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 2352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 2352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = self->priv->filter;
+#line 2352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view_collection_install_view_filter (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_VIEW_FILTER, ViewFilter));
+#line 2352 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 2353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = library_photo_global;
+#line 2353 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_SOURCE_COLLECTION, SourceCollection), "items-unlinking", (GCallback) _library_photo_page_on_photo_unlinking_source_collection_items_unlinking, self, 0);
+#line 2354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = library_photo_global;
+#line 2354 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_SOURCE_COLLECTION, SourceCollection), "items-relinked", (GCallback) _library_photo_page_on_photo_relinked_source_collection_items_relinked, self, 0);
+#line 2338 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self;
+#line 15218 "PhotoPage.c"
+}
+
+
+LibraryPhotoPage* library_photo_page_new (void) {
+#line 2338 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return library_photo_page_construct (TYPE_LIBRARY_PHOTO_PAGE);
+#line 15225 "PhotoPage.c"
+}
+
+
+gboolean library_photo_page_not_trashed_view_filter (LibraryPhotoPage* self, DataView* view) {
+ gboolean result = FALSE;
+ DataView* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 2363 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_PAGE (self), FALSE);
+#line 2363 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = view;
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = data_view_get_source (_tmp0_);
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = media_source_is_trashed (_tmp2_);
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = !_tmp3_;
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp4_;
+#line 2364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 15256 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_photo_unlinking (LibraryPhotoPage* self, GeeCollection* unlinking) {
+ LibraryPhotoPageLibraryPhotoPageViewFilter* _tmp0_ = NULL;
+#line 2367 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2367 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (unlinking));
+#line 2368 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->filter;
+#line 2368 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIEW_FILTER, ViewFilter), "refresh");
+#line 15270 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_photo_relinked (LibraryPhotoPage* self, GeeCollection* relinked) {
+ LibraryPhotoPageLibraryPhotoPageViewFilter* _tmp0_ = NULL;
+#line 2371 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2371 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (relinked));
+#line 2372 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->filter;
+#line 2372 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIEW_FILTER, ViewFilter), "refresh");
+#line 15284 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ LibraryPhotoPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+#line 2375 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2375 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 2376 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = ui_filenames;
+#line 2376 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (library_photo_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp0_);
+#line 2378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = ui_filenames;
+#line 2378 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "photo_context.ui");
+#line 2379 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = ui_filenames;
+#line 2379 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), "photo.ui");
+#line 15309 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_export_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_export ((LibraryPhotoPage*) self);
+#line 15316 "PhotoPage.c"
+}
+
+
+static void _vala_array_add193 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15327 "PhotoPage.c"
+ }
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15331 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_print_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_print ((LibraryPhotoPage*) self);
+#line 15338 "PhotoPage.c"
+}
+
+
+static void _vala_array_add194 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15349 "PhotoPage.c"
+ }
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15353 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_publish_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_publish ((LibraryPhotoPage*) self);
+#line 15360 "PhotoPage.c"
+}
+
+
+static void _vala_array_add195 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15371 "PhotoPage.c"
+ }
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15375 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_remove_from_library_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_remove_from_library ((LibraryPhotoPage*) self);
+#line 15382 "PhotoPage.c"
+}
+
+
+static void _vala_array_add196 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15393 "PhotoPage.c"
+ }
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15397 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_move_to_trash_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_move_to_trash ((LibraryPhotoPage*) self);
+#line 15404 "PhotoPage.c"
+}
+
+
+static void _vala_array_add197 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15415 "PhotoPage.c"
+ }
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15419 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_view_menu_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_view_menu ((LibraryPhotoPage*) self);
+#line 15426 "PhotoPage.c"
+}
+
+
+static void _vala_array_add198 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15437 "PhotoPage.c"
+ }
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15441 "PhotoPage.c"
+}
+
+
+static void _vala_array_add199 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15452 "PhotoPage.c"
+ }
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15456 "PhotoPage.c"
+}
+
+
+static void _single_photo_page_on_previous_photo_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_previous_photo ((SinglePhotoPage*) self);
+#line 15463 "PhotoPage.c"
+}
+
+
+static void _vala_array_add200 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15474 "PhotoPage.c"
+ }
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15478 "PhotoPage.c"
+}
+
+
+static void _single_photo_page_on_next_photo_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_next_photo ((SinglePhotoPage*) self);
+#line 15485 "PhotoPage.c"
+}
+
+
+static void _vala_array_add201 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15496 "PhotoPage.c"
+ }
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15500 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_rotate_clockwise ((EditingHostPage*) self);
+#line 15507 "PhotoPage.c"
+}
+
+
+static void _vala_array_add202 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15518 "PhotoPage.c"
+ }
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15522 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_rotate_counterclockwise ((EditingHostPage*) self);
+#line 15529 "PhotoPage.c"
+}
+
+
+static void _vala_array_add203 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15540 "PhotoPage.c"
+ }
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15544 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_flip_horizontally ((EditingHostPage*) self);
+#line 15551 "PhotoPage.c"
+}
+
+
+static void _vala_array_add204 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15562 "PhotoPage.c"
+ }
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15566 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_flip_vertically ((EditingHostPage*) self);
+#line 15573 "PhotoPage.c"
+}
+
+
+static void _vala_array_add205 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15584 "PhotoPage.c"
+ }
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15588 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_enhance ((EditingHostPage*) self);
+#line 15595 "PhotoPage.c"
+}
+
+
+static void _vala_array_add206 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15606 "PhotoPage.c"
+ }
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15610 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_copy_adjustments_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_copy_adjustments ((EditingHostPage*) self);
+#line 15617 "PhotoPage.c"
+}
+
+
+static void _vala_array_add207 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15628 "PhotoPage.c"
+ }
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15632 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_paste_adjustments_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_paste_adjustments ((EditingHostPage*) self);
+#line 15639 "PhotoPage.c"
+}
+
+
+static void _vala_array_add208 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15650 "PhotoPage.c"
+ }
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15654 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_crop_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_toggle_crop ((EditingHostPage*) self);
+#line 15661 "PhotoPage.c"
+}
+
+
+static void _vala_array_add209 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15672 "PhotoPage.c"
+ }
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15676 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_straighten_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_toggle_straighten ((EditingHostPage*) self);
+#line 15683 "PhotoPage.c"
+}
+
+
+static void _vala_array_add210 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15694 "PhotoPage.c"
+ }
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15698 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_redeye_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_toggle_redeye ((EditingHostPage*) self);
+#line 15705 "PhotoPage.c"
+}
+
+
+static void _vala_array_add211 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15716 "PhotoPage.c"
+ }
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15720 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_adjust_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_toggle_adjust ((EditingHostPage*) self);
+#line 15727 "PhotoPage.c"
+}
+
+
+static void _vala_array_add212 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15738 "PhotoPage.c"
+ }
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15742 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_revert ((EditingHostPage*) self);
+#line 15749 "PhotoPage.c"
+}
+
+
+static void _vala_array_add213 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15760 "PhotoPage.c"
+ }
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15764 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_edit_title_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_edit_title ((EditingHostPage*) self);
+#line 15771 "PhotoPage.c"
+}
+
+
+static void _vala_array_add214 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15782 "PhotoPage.c"
+ }
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15786 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_edit_comment ((EditingHostPage*) self);
+#line 15793 "PhotoPage.c"
+}
+
+
+static void _vala_array_add215 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15804 "PhotoPage.c"
+ }
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15808 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_adjust_date_time ((EditingHostPage*) self);
+#line 15815 "PhotoPage.c"
+}
+
+
+static void _vala_array_add216 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15826 "PhotoPage.c"
+ }
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15830 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_external_edit_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_external_edit ((LibraryPhotoPage*) self);
+#line 15837 "PhotoPage.c"
+}
+
+
+static void _vala_array_add217 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15848 "PhotoPage.c"
+ }
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15852 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_external_edit_raw_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_external_edit_raw ((LibraryPhotoPage*) self);
+#line 15859 "PhotoPage.c"
+}
+
+
+static void _vala_array_add218 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15870 "PhotoPage.c"
+ }
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15874 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_send_to ((LibraryPhotoPage*) self);
+#line 15881 "PhotoPage.c"
+}
+
+
+static void _vala_array_add219 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15892 "PhotoPage.c"
+ }
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15896 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_set_background ((EditingHostPage*) self);
+#line 15903 "PhotoPage.c"
+}
+
+
+static void _vala_array_add220 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15914 "PhotoPage.c"
+ }
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15918 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_flag_unflag_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_flag_unflag ((LibraryPhotoPage*) self);
+#line 15925 "PhotoPage.c"
+}
+
+
+static void _vala_array_add221 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15936 "PhotoPage.c"
+ }
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15940 "PhotoPage.c"
+}
+
+
+static void _vala_array_add222 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15951 "PhotoPage.c"
+ }
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15955 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_increase_rating_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_increase_rating ((LibraryPhotoPage*) self);
+#line 15962 "PhotoPage.c"
+}
+
+
+static void _vala_array_add223 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15973 "PhotoPage.c"
+ }
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15977 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_decrease_rating_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_decrease_rating ((LibraryPhotoPage*) self);
+#line 15984 "PhotoPage.c"
+}
+
+
+static void _vala_array_add224 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 15995 "PhotoPage.c"
+ }
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 15999 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_rate_rejected_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_rate_rejected ((LibraryPhotoPage*) self);
+#line 16006 "PhotoPage.c"
+}
+
+
+static void _vala_array_add225 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16017 "PhotoPage.c"
+ }
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16021 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_rate_unrated_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_rate_unrated ((LibraryPhotoPage*) self);
+#line 16028 "PhotoPage.c"
+}
+
+
+static void _vala_array_add226 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16039 "PhotoPage.c"
+ }
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16043 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_rate_one_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_rate_one ((LibraryPhotoPage*) self);
+#line 16050 "PhotoPage.c"
+}
+
+
+static void _vala_array_add227 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16061 "PhotoPage.c"
+ }
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16065 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_rate_two_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_rate_two ((LibraryPhotoPage*) self);
+#line 16072 "PhotoPage.c"
+}
+
+
+static void _vala_array_add228 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16083 "PhotoPage.c"
+ }
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16087 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_rate_three_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_rate_three ((LibraryPhotoPage*) self);
+#line 16094 "PhotoPage.c"
+}
+
+
+static void _vala_array_add229 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16105 "PhotoPage.c"
+ }
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16109 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_rate_four_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_rate_four ((LibraryPhotoPage*) self);
+#line 16116 "PhotoPage.c"
+}
+
+
+static void _vala_array_add230 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16127 "PhotoPage.c"
+ }
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16131 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_rate_five_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_rate_five ((LibraryPhotoPage*) self);
+#line 16138 "PhotoPage.c"
+}
+
+
+static void _vala_array_add231 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16149 "PhotoPage.c"
+ }
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16153 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_increase_size ((EditingHostPage*) self);
+#line 16160 "PhotoPage.c"
+}
+
+
+static void _vala_array_add232 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16171 "PhotoPage.c"
+ }
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16175 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_on_decrease_size ((EditingHostPage*) self);
+#line 16182 "PhotoPage.c"
+}
+
+
+static void _vala_array_add233 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16193 "PhotoPage.c"
+ }
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16197 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_snap_zoom_to_min_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_snap_zoom_to_min ((EditingHostPage*) self);
+#line 16204 "PhotoPage.c"
+}
+
+
+static void _vala_array_add234 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16215 "PhotoPage.c"
+ }
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16219 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_snap_zoom_to_isomorphic ((EditingHostPage*) self);
+#line 16226 "PhotoPage.c"
+}
+
+
+static void _vala_array_add235 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16237 "PhotoPage.c"
+ }
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16241 "PhotoPage.c"
+}
+
+
+static void _editing_host_page_snap_zoom_to_max_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_snap_zoom_to_max ((EditingHostPage*) self);
+#line 16248 "PhotoPage.c"
+}
+
+
+static void _vala_array_add236 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16259 "PhotoPage.c"
+ }
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16263 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_add_tags_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_add_tags ((LibraryPhotoPage*) self);
+#line 16270 "PhotoPage.c"
+}
+
+
+static void _vala_array_add237 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16281 "PhotoPage.c"
+ }
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16285 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_modify_tags_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_modify_tags ((LibraryPhotoPage*) self);
+#line 16292 "PhotoPage.c"
+}
+
+
+static void _vala_array_add238 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16303 "PhotoPage.c"
+ }
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16307 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_slideshow_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_slideshow ((LibraryPhotoPage*) self);
+#line 16314 "PhotoPage.c"
+}
+
+
+static void _vala_array_add239 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16325 "PhotoPage.c"
+ }
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16329 "PhotoPage.c"
+}
+
+
+static void _vala_array_add240 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16340 "PhotoPage.c"
+ }
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16344 "PhotoPage.c"
+}
+
+
+static void _vala_array_add241 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16355 "PhotoPage.c"
+ }
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16359 "PhotoPage.c"
+}
+
+
+static void _vala_array_add242 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 16370 "PhotoPage.c"
+ }
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 16374 "PhotoPage.c"
+}
+
+
+static GtkActionEntry* library_photo_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ LibraryPhotoPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry export = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry print = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry publish = {0};
+ GtkActionEntry _tmp8_ = {0};
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry remove_from_library = {0};
+ GtkActionEntry _tmp11_ = {0};
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkActionEntry _tmp13_ = {0};
+ GtkActionEntry move_to_trash = {0};
+ GtkActionEntry _tmp14_ = {0};
+ GtkActionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GtkActionEntry _tmp16_ = {0};
+ GtkActionEntry view = {0};
+ GtkActionEntry _tmp17_ = {0};
+ const gchar* _tmp18_ = NULL;
+ GtkActionEntry* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ GtkActionEntry _tmp20_ = {0};
+ GtkActionEntry tools = {0};
+ GtkActionEntry _tmp21_ = {0};
+ const gchar* _tmp22_ = NULL;
+ GtkActionEntry* _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ GtkActionEntry _tmp24_ = {0};
+ GtkActionEntry prev = {0};
+ GtkActionEntry _tmp25_ = {0};
+ const gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ GtkActionEntry* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ GtkActionEntry _tmp29_ = {0};
+ GtkActionEntry next = {0};
+ GtkActionEntry _tmp30_ = {0};
+ const gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ GtkActionEntry* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ GtkActionEntry _tmp34_ = {0};
+ GtkActionEntry rotate_right = {0};
+ GtkActionEntry _tmp35_ = {0};
+ GtkActionEntry* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ GtkActionEntry _tmp37_ = {0};
+ GtkActionEntry rotate_left = {0};
+ GtkActionEntry _tmp38_ = {0};
+ GtkActionEntry* _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ GtkActionEntry _tmp40_ = {0};
+ GtkActionEntry hflip = {0};
+ GtkActionEntry _tmp41_ = {0};
+ GtkActionEntry* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ GtkActionEntry _tmp43_ = {0};
+ GtkActionEntry vflip = {0};
+ GtkActionEntry _tmp44_ = {0};
+ GtkActionEntry* _tmp45_ = NULL;
+ gint _tmp45__length1 = 0;
+ GtkActionEntry _tmp46_ = {0};
+ GtkActionEntry enhance = {0};
+ GtkActionEntry _tmp47_ = {0};
+ GtkActionEntry* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ GtkActionEntry _tmp49_ = {0};
+ GtkActionEntry copy_adjustments = {0};
+ GtkActionEntry _tmp50_ = {0};
+ GtkActionEntry* _tmp51_ = NULL;
+ gint _tmp51__length1 = 0;
+ GtkActionEntry _tmp52_ = {0};
+ GtkActionEntry paste_adjustments = {0};
+ GtkActionEntry _tmp53_ = {0};
+ GtkActionEntry* _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+ GtkActionEntry _tmp55_ = {0};
+ GtkActionEntry crop = {0};
+ GtkActionEntry _tmp56_ = {0};
+ GtkActionEntry* _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ GtkActionEntry _tmp58_ = {0};
+ GtkActionEntry straighten = {0};
+ GtkActionEntry _tmp59_ = {0};
+ GtkActionEntry* _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ GtkActionEntry _tmp61_ = {0};
+ GtkActionEntry red_eye = {0};
+ GtkActionEntry _tmp62_ = {0};
+ GtkActionEntry* _tmp63_ = NULL;
+ gint _tmp63__length1 = 0;
+ GtkActionEntry _tmp64_ = {0};
+ GtkActionEntry adjust = {0};
+ GtkActionEntry _tmp65_ = {0};
+ GtkActionEntry* _tmp66_ = NULL;
+ gint _tmp66__length1 = 0;
+ GtkActionEntry _tmp67_ = {0};
+ GtkActionEntry revert = {0};
+ GtkActionEntry _tmp68_ = {0};
+ GtkActionEntry* _tmp69_ = NULL;
+ gint _tmp69__length1 = 0;
+ GtkActionEntry _tmp70_ = {0};
+ GtkActionEntry edit_title = {0};
+ GtkActionEntry _tmp71_ = {0};
+ GtkActionEntry* _tmp72_ = NULL;
+ gint _tmp72__length1 = 0;
+ GtkActionEntry _tmp73_ = {0};
+ GtkActionEntry edit_comment = {0};
+ GtkActionEntry _tmp74_ = {0};
+ GtkActionEntry* _tmp75_ = NULL;
+ gint _tmp75__length1 = 0;
+ GtkActionEntry _tmp76_ = {0};
+ GtkActionEntry adjust_date_time = {0};
+ GtkActionEntry _tmp77_ = {0};
+ GtkActionEntry* _tmp78_ = NULL;
+ gint _tmp78__length1 = 0;
+ GtkActionEntry _tmp79_ = {0};
+ GtkActionEntry external_edit = {0};
+ GtkActionEntry _tmp80_ = {0};
+ GtkActionEntry* _tmp81_ = NULL;
+ gint _tmp81__length1 = 0;
+ GtkActionEntry _tmp82_ = {0};
+ GtkActionEntry edit_raw = {0};
+ GtkActionEntry _tmp83_ = {0};
+ GtkActionEntry* _tmp84_ = NULL;
+ gint _tmp84__length1 = 0;
+ GtkActionEntry _tmp85_ = {0};
+ GtkActionEntry send_to = {0};
+ GtkActionEntry _tmp86_ = {0};
+ GtkActionEntry* _tmp87_ = NULL;
+ gint _tmp87__length1 = 0;
+ GtkActionEntry _tmp88_ = {0};
+ GtkActionEntry set_background = {0};
+ GtkActionEntry _tmp89_ = {0};
+ GtkActionEntry* _tmp90_ = NULL;
+ gint _tmp90__length1 = 0;
+ GtkActionEntry _tmp91_ = {0};
+ GtkActionEntry flag = {0};
+ GtkActionEntry _tmp92_ = {0};
+ GtkActionEntry* _tmp93_ = NULL;
+ gint _tmp93__length1 = 0;
+ GtkActionEntry _tmp94_ = {0};
+ GtkActionEntry set_rating = {0};
+ GtkActionEntry _tmp95_ = {0};
+ GtkActionEntry* _tmp96_ = NULL;
+ gint _tmp96__length1 = 0;
+ GtkActionEntry _tmp97_ = {0};
+ GtkActionEntry increase_rating = {0};
+ GtkActionEntry _tmp98_ = {0};
+ GtkActionEntry* _tmp99_ = NULL;
+ gint _tmp99__length1 = 0;
+ GtkActionEntry _tmp100_ = {0};
+ GtkActionEntry decrease_rating = {0};
+ GtkActionEntry _tmp101_ = {0};
+ GtkActionEntry* _tmp102_ = NULL;
+ gint _tmp102__length1 = 0;
+ GtkActionEntry _tmp103_ = {0};
+ GtkActionEntry rate_rejected = {0};
+ GtkActionEntry _tmp104_ = {0};
+ const gchar* _tmp105_ = NULL;
+ GtkActionEntry* _tmp106_ = NULL;
+ gint _tmp106__length1 = 0;
+ GtkActionEntry _tmp107_ = {0};
+ GtkActionEntry rate_unrated = {0};
+ GtkActionEntry _tmp108_ = {0};
+ const gchar* _tmp109_ = NULL;
+ GtkActionEntry* _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ GtkActionEntry _tmp111_ = {0};
+ GtkActionEntry rate_one = {0};
+ GtkActionEntry _tmp112_ = {0};
+ const gchar* _tmp113_ = NULL;
+ GtkActionEntry* _tmp114_ = NULL;
+ gint _tmp114__length1 = 0;
+ GtkActionEntry _tmp115_ = {0};
+ GtkActionEntry rate_two = {0};
+ GtkActionEntry _tmp116_ = {0};
+ const gchar* _tmp117_ = NULL;
+ GtkActionEntry* _tmp118_ = NULL;
+ gint _tmp118__length1 = 0;
+ GtkActionEntry _tmp119_ = {0};
+ GtkActionEntry rate_three = {0};
+ GtkActionEntry _tmp120_ = {0};
+ const gchar* _tmp121_ = NULL;
+ GtkActionEntry* _tmp122_ = NULL;
+ gint _tmp122__length1 = 0;
+ GtkActionEntry _tmp123_ = {0};
+ GtkActionEntry rate_four = {0};
+ GtkActionEntry _tmp124_ = {0};
+ const gchar* _tmp125_ = NULL;
+ GtkActionEntry* _tmp126_ = NULL;
+ gint _tmp126__length1 = 0;
+ GtkActionEntry _tmp127_ = {0};
+ GtkActionEntry rate_five = {0};
+ GtkActionEntry _tmp128_ = {0};
+ const gchar* _tmp129_ = NULL;
+ GtkActionEntry* _tmp130_ = NULL;
+ gint _tmp130__length1 = 0;
+ GtkActionEntry _tmp131_ = {0};
+ GtkActionEntry increase_size = {0};
+ GtkActionEntry _tmp132_ = {0};
+ const gchar* _tmp133_ = NULL;
+ const gchar* _tmp134_ = NULL;
+ GtkActionEntry* _tmp135_ = NULL;
+ gint _tmp135__length1 = 0;
+ GtkActionEntry _tmp136_ = {0};
+ GtkActionEntry decrease_size = {0};
+ GtkActionEntry _tmp137_ = {0};
+ const gchar* _tmp138_ = NULL;
+ const gchar* _tmp139_ = NULL;
+ GtkActionEntry* _tmp140_ = NULL;
+ gint _tmp140__length1 = 0;
+ GtkActionEntry _tmp141_ = {0};
+ GtkActionEntry best_fit = {0};
+ GtkActionEntry _tmp142_ = {0};
+ const gchar* _tmp143_ = NULL;
+ const gchar* _tmp144_ = NULL;
+ GtkActionEntry* _tmp145_ = NULL;
+ gint _tmp145__length1 = 0;
+ GtkActionEntry _tmp146_ = {0};
+ GtkActionEntry actual_size = {0};
+ GtkActionEntry _tmp147_ = {0};
+ const gchar* _tmp148_ = NULL;
+ const gchar* _tmp149_ = NULL;
+ GtkActionEntry* _tmp150_ = NULL;
+ gint _tmp150__length1 = 0;
+ GtkActionEntry _tmp151_ = {0};
+ GtkActionEntry max_size = {0};
+ GtkActionEntry _tmp152_ = {0};
+ const gchar* _tmp153_ = NULL;
+ const gchar* _tmp154_ = NULL;
+ GtkActionEntry* _tmp155_ = NULL;
+ gint _tmp155__length1 = 0;
+ GtkActionEntry _tmp156_ = {0};
+ GtkActionEntry add_tags = {0};
+ GtkActionEntry _tmp157_ = {0};
+ GtkActionEntry* _tmp158_ = NULL;
+ gint _tmp158__length1 = 0;
+ GtkActionEntry _tmp159_ = {0};
+ GtkActionEntry modify_tags = {0};
+ GtkActionEntry _tmp160_ = {0};
+ GtkActionEntry* _tmp161_ = NULL;
+ gint _tmp161__length1 = 0;
+ GtkActionEntry _tmp162_ = {0};
+ GtkActionEntry slideshow = {0};
+ GtkActionEntry _tmp163_ = {0};
+ const gchar* _tmp164_ = NULL;
+ const gchar* _tmp165_ = NULL;
+ GtkActionEntry* _tmp166_ = NULL;
+ gint _tmp166__length1 = 0;
+ GtkActionEntry _tmp167_ = {0};
+ GtkActionEntry raw_developer = {0};
+ GtkActionEntry _tmp168_ = {0};
+ const gchar* _tmp169_ = NULL;
+ GtkActionEntry* _tmp170_ = NULL;
+ gint _tmp170__length1 = 0;
+ GtkActionEntry _tmp171_ = {0};
+ GtkActionEntry send_to_context_menu = {0};
+ GtkActionEntry _tmp172_ = {0};
+ GtkActionEntry* _tmp173_ = NULL;
+ gint _tmp173__length1 = 0;
+ GtkActionEntry _tmp174_ = {0};
+ GtkActionEntry add_tags_context_menu = {0};
+ GtkActionEntry _tmp175_ = {0};
+ GtkActionEntry* _tmp176_ = NULL;
+ gint _tmp176__length1 = 0;
+ GtkActionEntry _tmp177_ = {0};
+ GtkActionEntry* _tmp178_ = NULL;
+ gint _tmp178__length1 = 0;
+#line 2382 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = PAGE_CLASS (library_photo_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), &_tmp0_);
+#line 2383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ actions = _tmp1_;
+#line 2383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ actions_length1 = _tmp0_;
+#line 2383 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _actions_size_ = actions_length1;
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_.name = "Export";
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_.stock_id = RESOURCES_SAVE_AS_LABEL;
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_.accelerator = "<Ctrl><Shift>E";
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_.callback = (GCallback) _library_photo_page_on_export_gtk_action_callback;
+#line 2385 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ export = _tmp2_;
+#line 2387 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ export.label = RESOURCES_EXPORT_MENU;
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = actions;
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3__length1 = actions_length1;
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = export;
+#line 2388 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add193 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.name = "Print";
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.stock_id = RESOURCES_PRINT_LABEL;
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.accelerator = "<Ctrl>P";
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.callback = (GCallback) _library_photo_page_on_print_gtk_action_callback;
+#line 2390 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ print = _tmp5_;
+#line 2392 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ print.label = RESOURCES_PRINT_MENU;
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = actions;
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6__length1 = actions_length1;
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = print;
+#line 2393 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add194 (&actions, &actions_length1, &_actions_size_, &_tmp7_);
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_.name = "Publish";
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_.stock_id = RESOURCES_PUBLISH;
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_.accelerator = "<Ctrl><Shift>P";
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_.tooltip = TRANSLATABLE;
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_.callback = (GCallback) _library_photo_page_on_publish_gtk_action_callback;
+#line 2395 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ publish = _tmp8_;
+#line 2397 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ publish.label = RESOURCES_PUBLISH_MENU;
+#line 2398 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ publish.tooltip = RESOURCES_PUBLISH_TOOLTIP;
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = actions;
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9__length1 = actions_length1;
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = publish;
+#line 2399 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add195 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_.name = "RemoveFromLibrary";
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_.stock_id = RESOURCES_REMOVE_LABEL;
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_.label = TRANSLATABLE;
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_.accelerator = "<Shift>Delete";
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_.tooltip = TRANSLATABLE;
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_.callback = (GCallback) _library_photo_page_on_remove_from_library_gtk_action_callback;
+#line 2401 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ remove_from_library = _tmp11_;
+#line 2403 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ remove_from_library.label = RESOURCES_REMOVE_FROM_LIBRARY_MENU;
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = actions;
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12__length1 = actions_length1;
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = remove_from_library;
+#line 2404 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add196 (&actions, &actions_length1, &_actions_size_, &_tmp13_);
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_.name = "MoveToTrash";
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_.stock_id = "user-trash-full";
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_.label = TRANSLATABLE;
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_.accelerator = "Delete";
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_.tooltip = TRANSLATABLE;
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_.callback = (GCallback) _library_photo_page_on_move_to_trash_gtk_action_callback;
+#line 2406 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ move_to_trash = _tmp14_;
+#line 2408 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ move_to_trash.label = RESOURCES_MOVE_TO_TRASH_MENU;
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = actions;
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15__length1 = actions_length1;
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = move_to_trash;
+#line 2409 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add197 (&actions, &actions_length1, &_actions_size_, &_tmp16_);
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_.name = "ViewMenu";
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_.stock_id = NULL;
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_.label = TRANSLATABLE;
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_.accelerator = NULL;
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_.tooltip = NULL;
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_.callback = (GCallback) _library_photo_page_on_view_menu_gtk_action_callback;
+#line 2411 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view = _tmp17_;
+#line 2412 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _ ("_View");
+#line 2412 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view.label = _tmp18_;
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = actions;
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19__length1 = actions_length1;
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = view;
+#line 2413 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add198 (&actions, &actions_length1, &_actions_size_, &_tmp20_);
+#line 2415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_.name = "Tools";
+#line 2415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_.stock_id = NULL;
+#line 2415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_.label = TRANSLATABLE;
+#line 2415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_.accelerator = NULL;
+#line 2415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_.tooltip = NULL;
+#line 2415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_.callback = (GCallback) NULL;
+#line 2415 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tools = _tmp21_;
+#line 2416 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _ ("T_ools");
+#line 2416 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ tools.label = _tmp22_;
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = actions;
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23__length1 = actions_length1;
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = tools;
+#line 2417 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add199 (&actions, &actions_length1, &_actions_size_, &_tmp24_);
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_.name = "PrevPhoto";
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_.stock_id = RESOURCES_PREVIOUS_LABEL;
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_.label = TRANSLATABLE;
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_.accelerator = NULL;
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_.tooltip = TRANSLATABLE;
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_.callback = (GCallback) _single_photo_page_on_previous_photo_gtk_action_callback;
+#line 2419 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ prev = _tmp25_;
+#line 2421 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _ ("_Previous Photo");
+#line 2421 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ prev.label = _tmp26_;
+#line 2422 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = _ ("Previous Photo");
+#line 2422 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ prev.tooltip = _tmp27_;
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = actions;
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28__length1 = actions_length1;
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = prev;
+#line 2423 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add200 (&actions, &actions_length1, &_actions_size_, &_tmp29_);
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_.name = "NextPhoto";
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_.stock_id = RESOURCES_NEXT_LABEL;
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_.label = TRANSLATABLE;
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_.accelerator = NULL;
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_.tooltip = TRANSLATABLE;
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_.callback = (GCallback) _single_photo_page_on_next_photo_gtk_action_callback;
+#line 2425 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next = _tmp30_;
+#line 2427 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = _ ("_Next Photo");
+#line 2427 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next.label = _tmp31_;
+#line 2428 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = _ ("Next Photo");
+#line 2428 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ next.tooltip = _tmp32_;
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = actions;
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33__length1 = actions_length1;
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = next;
+#line 2429 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add201 (&actions, &actions_length1, &_actions_size_, &_tmp34_);
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_.name = "RotateClockwise";
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_.stock_id = RESOURCES_CLOCKWISE;
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_.label = TRANSLATABLE;
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_.accelerator = "<Ctrl>R";
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_.tooltip = TRANSLATABLE;
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_.callback = (GCallback) _editing_host_page_on_rotate_clockwise_gtk_action_callback;
+#line 2431 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rotate_right = _tmp35_;
+#line 2433 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rotate_right.label = RESOURCES_ROTATE_CW_MENU;
+#line 2434 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rotate_right.tooltip = RESOURCES_ROTATE_CW_TOOLTIP;
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = actions;
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36__length1 = actions_length1;
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = rotate_right;
+#line 2435 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add202 (&actions, &actions_length1, &_actions_size_, &_tmp37_);
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_.name = "RotateCounterclockwise";
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_.stock_id = RESOURCES_COUNTERCLOCKWISE;
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_.label = TRANSLATABLE;
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_.accelerator = "<Ctrl><Shift>R";
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_.tooltip = TRANSLATABLE;
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_.callback = (GCallback) _editing_host_page_on_rotate_counterclockwise_gtk_action_callback;
+#line 2437 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rotate_left = _tmp38_;
+#line 2439 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rotate_left.label = RESOURCES_ROTATE_CCW_MENU;
+#line 2440 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rotate_left.tooltip = RESOURCES_ROTATE_CCW_TOOLTIP;
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = actions;
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39__length1 = actions_length1;
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = rotate_left;
+#line 2441 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add203 (&actions, &actions_length1, &_actions_size_, &_tmp40_);
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_.name = "FlipHorizontally";
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_.stock_id = RESOURCES_HFLIP;
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_.label = TRANSLATABLE;
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_.accelerator = NULL;
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_.tooltip = TRANSLATABLE;
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_.callback = (GCallback) _editing_host_page_on_flip_horizontally_gtk_action_callback;
+#line 2443 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ hflip = _tmp41_;
+#line 2445 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ hflip.label = RESOURCES_HFLIP_MENU;
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = actions;
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42__length1 = actions_length1;
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = hflip;
+#line 2446 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add204 (&actions, &actions_length1, &_actions_size_, &_tmp43_);
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_.name = "FlipVertically";
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_.stock_id = RESOURCES_VFLIP;
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_.label = TRANSLATABLE;
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_.accelerator = NULL;
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_.tooltip = TRANSLATABLE;
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_.callback = (GCallback) _editing_host_page_on_flip_vertically_gtk_action_callback;
+#line 2448 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ vflip = _tmp44_;
+#line 2450 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ vflip.label = RESOURCES_VFLIP_MENU;
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = actions;
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45__length1 = actions_length1;
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = vflip;
+#line 2451 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add205 (&actions, &actions_length1, &_actions_size_, &_tmp46_);
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_.name = "Enhance";
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_.stock_id = RESOURCES_ENHANCE;
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_.label = TRANSLATABLE;
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_.accelerator = "<Ctrl>E";
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_.tooltip = TRANSLATABLE;
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_.callback = (GCallback) _editing_host_page_on_enhance_gtk_action_callback;
+#line 2453 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ enhance = _tmp47_;
+#line 2455 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ enhance.label = RESOURCES_ENHANCE_MENU;
+#line 2456 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ enhance.tooltip = RESOURCES_ENHANCE_TOOLTIP;
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = actions;
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48__length1 = actions_length1;
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp49_ = enhance;
+#line 2457 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add206 (&actions, &actions_length1, &_actions_size_, &_tmp49_);
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_.name = "CopyColorAdjustments";
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_.stock_id = NULL;
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_.label = TRANSLATABLE;
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_.accelerator = "<Ctrl><Shift>C";
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_.tooltip = TRANSLATABLE;
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_.callback = (GCallback) _editing_host_page_on_copy_adjustments_gtk_action_callback;
+#line 2459 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ copy_adjustments = _tmp50_;
+#line 2461 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ copy_adjustments.label = RESOURCES_COPY_ADJUSTMENTS_MENU;
+#line 2462 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ copy_adjustments.tooltip = RESOURCES_COPY_ADJUSTMENTS_TOOLTIP;
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = actions;
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51__length1 = actions_length1;
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = copy_adjustments;
+#line 2463 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add207 (&actions, &actions_length1, &_actions_size_, &_tmp52_);
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_.name = "PasteColorAdjustments";
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_.stock_id = NULL;
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_.label = TRANSLATABLE;
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_.accelerator = "<Ctrl><Shift>V";
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_.tooltip = TRANSLATABLE;
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp53_.callback = (GCallback) _editing_host_page_on_paste_adjustments_gtk_action_callback;
+#line 2465 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ paste_adjustments = _tmp53_;
+#line 2467 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ paste_adjustments.label = RESOURCES_PASTE_ADJUSTMENTS_MENU;
+#line 2468 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ paste_adjustments.tooltip = RESOURCES_PASTE_ADJUSTMENTS_TOOLTIP;
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54_ = actions;
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54__length1 = actions_length1;
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = paste_adjustments;
+#line 2469 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add208 (&actions, &actions_length1, &_actions_size_, &_tmp55_);
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_.name = "Crop";
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_.stock_id = RESOURCES_CROP;
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_.label = TRANSLATABLE;
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_.accelerator = "<Ctrl>O";
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_.tooltip = TRANSLATABLE;
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_.callback = (GCallback) _editing_host_page_toggle_crop_gtk_action_callback;
+#line 2471 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ crop = _tmp56_;
+#line 2473 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ crop.label = RESOURCES_CROP_MENU;
+#line 2474 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ crop.tooltip = RESOURCES_CROP_TOOLTIP;
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57_ = actions;
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57__length1 = actions_length1;
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp58_ = crop;
+#line 2475 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add209 (&actions, &actions_length1, &_actions_size_, &_tmp58_);
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_.name = "Straighten";
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_.stock_id = RESOURCES_REFRESH_LABEL;
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_.label = TRANSLATABLE;
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_.accelerator = "<Ctrl>A";
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_.tooltip = TRANSLATABLE;
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_.callback = (GCallback) _editing_host_page_toggle_straighten_gtk_action_callback;
+#line 2477 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ straighten = _tmp59_;
+#line 2479 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ straighten.label = RESOURCES_STRAIGHTEN_MENU;
+#line 2480 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ straighten.tooltip = RESOURCES_STRAIGHTEN_TOOLTIP;
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60_ = actions;
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60__length1 = actions_length1;
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp61_ = straighten;
+#line 2481 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add210 (&actions, &actions_length1, &_actions_size_, &_tmp61_);
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_.name = "RedEye";
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_.stock_id = RESOURCES_REDEYE;
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_.label = TRANSLATABLE;
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_.accelerator = "<Ctrl>Y";
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_.tooltip = TRANSLATABLE;
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_.callback = (GCallback) _editing_host_page_toggle_redeye_gtk_action_callback;
+#line 2483 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ red_eye = _tmp62_;
+#line 2485 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ red_eye.label = RESOURCES_RED_EYE_MENU;
+#line 2486 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ red_eye.tooltip = RESOURCES_RED_EYE_TOOLTIP;
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp63_ = actions;
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp63__length1 = actions_length1;
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp64_ = red_eye;
+#line 2487 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add211 (&actions, &actions_length1, &_actions_size_, &_tmp64_);
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_.name = "Adjust";
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_.stock_id = RESOURCES_ADJUST;
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_.label = TRANSLATABLE;
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_.accelerator = "<Ctrl>D";
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_.tooltip = TRANSLATABLE;
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp65_.callback = (GCallback) _editing_host_page_toggle_adjust_gtk_action_callback;
+#line 2489 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ adjust = _tmp65_;
+#line 2491 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ adjust.label = RESOURCES_ADJUST_MENU;
+#line 2492 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ adjust.tooltip = RESOURCES_ADJUST_TOOLTIP;
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp66_ = actions;
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp66__length1 = actions_length1;
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp67_ = adjust;
+#line 2493 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add212 (&actions, &actions_length1, &_actions_size_, &_tmp67_);
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_.name = "Revert";
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_.stock_id = RESOURCES_REVERT_TO_SAVED_LABEL;
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_.label = TRANSLATABLE;
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_.accelerator = NULL;
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_.tooltip = TRANSLATABLE;
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp68_.callback = (GCallback) _editing_host_page_on_revert_gtk_action_callback;
+#line 2495 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ revert = _tmp68_;
+#line 2497 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ revert.label = RESOURCES_REVERT_MENU;
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp69_ = actions;
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp69__length1 = actions_length1;
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp70_ = revert;
+#line 2498 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add213 (&actions, &actions_length1, &_actions_size_, &_tmp70_);
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_.name = "EditTitle";
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_.stock_id = NULL;
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_.label = TRANSLATABLE;
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_.accelerator = "F2";
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_.tooltip = TRANSLATABLE;
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp71_.callback = (GCallback) _editing_host_page_on_edit_title_gtk_action_callback;
+#line 2500 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_title = _tmp71_;
+#line 2502 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_title.label = RESOURCES_EDIT_TITLE_MENU;
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp72_ = actions;
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp72__length1 = actions_length1;
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp73_ = edit_title;
+#line 2503 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add214 (&actions, &actions_length1, &_actions_size_, &_tmp73_);
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_.name = "EditComment";
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_.stock_id = NULL;
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_.label = TRANSLATABLE;
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_.accelerator = "F3";
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_.tooltip = TRANSLATABLE;
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp74_.callback = (GCallback) _editing_host_page_on_edit_comment_gtk_action_callback;
+#line 2505 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_comment = _tmp74_;
+#line 2507 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_comment.label = RESOURCES_EDIT_COMMENT_MENU;
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp75_ = actions;
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp75__length1 = actions_length1;
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp76_ = edit_comment;
+#line 2508 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add215 (&actions, &actions_length1, &_actions_size_, &_tmp76_);
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_.name = "AdjustDateTime";
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_.stock_id = NULL;
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_.label = TRANSLATABLE;
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_.accelerator = NULL;
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_.tooltip = TRANSLATABLE;
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp77_.callback = (GCallback) _editing_host_page_on_adjust_date_time_gtk_action_callback;
+#line 2510 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ adjust_date_time = _tmp77_;
+#line 2512 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ adjust_date_time.label = RESOURCES_ADJUST_DATE_TIME_MENU;
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp78_ = actions;
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp78__length1 = actions_length1;
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp79_ = adjust_date_time;
+#line 2513 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add216 (&actions, &actions_length1, &_actions_size_, &_tmp79_);
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_.name = "ExternalEdit";
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_.stock_id = RESOURCES_EDIT_LABEL;
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_.label = TRANSLATABLE;
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_.accelerator = "<Ctrl>Return";
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_.tooltip = TRANSLATABLE;
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp80_.callback = (GCallback) _library_photo_page_on_external_edit_gtk_action_callback;
+#line 2515 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ external_edit = _tmp80_;
+#line 2517 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ external_edit.label = RESOURCES_EXTERNAL_EDIT_MENU;
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp81_ = actions;
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp81__length1 = actions_length1;
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp82_ = external_edit;
+#line 2518 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add217 (&actions, &actions_length1, &_actions_size_, &_tmp82_);
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_.name = "ExternalEditRAW";
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_.stock_id = NULL;
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_.label = TRANSLATABLE;
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_.accelerator = "<Ctrl><Shift>Return";
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_.tooltip = TRANSLATABLE;
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp83_.callback = (GCallback) _library_photo_page_on_external_edit_raw_gtk_action_callback;
+#line 2520 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_raw = _tmp83_;
+#line 2522 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ edit_raw.label = RESOURCES_EXTERNAL_EDIT_RAW_MENU;
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp84_ = actions;
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp84__length1 = actions_length1;
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp85_ = edit_raw;
+#line 2523 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add218 (&actions, &actions_length1, &_actions_size_, &_tmp85_);
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_.name = "SendTo";
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_.stock_id = "document-send";
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_.label = TRANSLATABLE;
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_.accelerator = NULL;
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_.tooltip = TRANSLATABLE;
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp86_.callback = (GCallback) _library_photo_page_on_send_to_gtk_action_callback;
+#line 2525 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ send_to = _tmp86_;
+#line 2527 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ send_to.label = RESOURCES_SEND_TO_MENU;
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp87_ = actions;
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp87__length1 = actions_length1;
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp88_ = send_to;
+#line 2528 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add219 (&actions, &actions_length1, &_actions_size_, &_tmp88_);
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_.name = "SetBackground";
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_.stock_id = NULL;
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_.label = TRANSLATABLE;
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_.accelerator = "<Ctrl>B";
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_.tooltip = TRANSLATABLE;
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp89_.callback = (GCallback) _editing_host_page_on_set_background_gtk_action_callback;
+#line 2530 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ set_background = _tmp89_;
+#line 2532 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ set_background.label = RESOURCES_SET_BACKGROUND_MENU;
+#line 2533 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ set_background.tooltip = RESOURCES_SET_BACKGROUND_TOOLTIP;
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp90_ = actions;
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp90__length1 = actions_length1;
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp91_ = set_background;
+#line 2534 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add220 (&actions, &actions_length1, &_actions_size_, &_tmp91_);
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_.name = "Flag";
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_.stock_id = NULL;
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_.label = TRANSLATABLE;
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_.accelerator = "<Ctrl>G";
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_.tooltip = TRANSLATABLE;
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp92_.callback = (GCallback) _library_photo_page_on_flag_unflag_gtk_action_callback;
+#line 2536 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ flag = _tmp92_;
+#line 2537 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ flag.label = RESOURCES_FLAG_MENU;
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp93_ = actions;
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp93__length1 = actions_length1;
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp94_ = flag;
+#line 2538 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add221 (&actions, &actions_length1, &_actions_size_, &_tmp94_);
+#line 2540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_.name = "Rate";
+#line 2540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_.stock_id = NULL;
+#line 2540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_.label = TRANSLATABLE;
+#line 2540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_.accelerator = NULL;
+#line 2540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_.tooltip = NULL;
+#line 2540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp95_.callback = (GCallback) NULL;
+#line 2540 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ set_rating = _tmp95_;
+#line 2541 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ set_rating.label = RESOURCES_RATING_MENU;
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp96_ = actions;
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp96__length1 = actions_length1;
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp97_ = set_rating;
+#line 2542 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add222 (&actions, &actions_length1, &_actions_size_, &_tmp97_);
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_.name = "IncreaseRating";
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_.stock_id = NULL;
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_.label = TRANSLATABLE;
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_.accelerator = "greater";
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_.tooltip = TRANSLATABLE;
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp98_.callback = (GCallback) _library_photo_page_on_increase_rating_gtk_action_callback;
+#line 2544 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ increase_rating = _tmp98_;
+#line 2546 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ increase_rating.label = RESOURCES_INCREASE_RATING_MENU;
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp99_ = actions;
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp99__length1 = actions_length1;
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp100_ = increase_rating;
+#line 2547 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add223 (&actions, &actions_length1, &_actions_size_, &_tmp100_);
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_.name = "DecreaseRating";
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_.stock_id = NULL;
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_.label = TRANSLATABLE;
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_.accelerator = "less";
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_.tooltip = TRANSLATABLE;
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp101_.callback = (GCallback) _library_photo_page_on_decrease_rating_gtk_action_callback;
+#line 2549 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ decrease_rating = _tmp101_;
+#line 2551 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ decrease_rating.label = RESOURCES_DECREASE_RATING_MENU;
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp102_ = actions;
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp102__length1 = actions_length1;
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp103_ = decrease_rating;
+#line 2552 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add224 (&actions, &actions_length1, &_actions_size_, &_tmp103_);
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_.name = "RateRejected";
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_.stock_id = NULL;
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_.label = TRANSLATABLE;
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_.accelerator = "9";
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_.tooltip = TRANSLATABLE;
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp104_.callback = (GCallback) _library_photo_page_on_rate_rejected_gtk_action_callback;
+#line 2554 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_rejected = _tmp104_;
+#line 2556 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp105_ = resources_rating_menu (RATING_REJECTED);
+#line 2556 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_rejected.label = _tmp105_;
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp106_ = actions;
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp106__length1 = actions_length1;
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp107_ = rate_rejected;
+#line 2557 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add225 (&actions, &actions_length1, &_actions_size_, &_tmp107_);
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_.name = "RateUnrated";
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_.stock_id = NULL;
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_.label = TRANSLATABLE;
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_.accelerator = "0";
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_.tooltip = TRANSLATABLE;
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp108_.callback = (GCallback) _library_photo_page_on_rate_unrated_gtk_action_callback;
+#line 2559 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_unrated = _tmp108_;
+#line 2561 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp109_ = resources_rating_menu (RATING_UNRATED);
+#line 2561 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_unrated.label = _tmp109_;
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp110_ = actions;
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp110__length1 = actions_length1;
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp111_ = rate_unrated;
+#line 2562 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add226 (&actions, &actions_length1, &_actions_size_, &_tmp111_);
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_.name = "RateOne";
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_.stock_id = NULL;
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_.label = TRANSLATABLE;
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_.accelerator = "1";
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_.tooltip = TRANSLATABLE;
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp112_.callback = (GCallback) _library_photo_page_on_rate_one_gtk_action_callback;
+#line 2564 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_one = _tmp112_;
+#line 2566 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp113_ = resources_rating_menu (RATING_ONE);
+#line 2566 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_one.label = _tmp113_;
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp114_ = actions;
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp114__length1 = actions_length1;
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp115_ = rate_one;
+#line 2567 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add227 (&actions, &actions_length1, &_actions_size_, &_tmp115_);
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_.name = "RateTwo";
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_.stock_id = NULL;
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_.label = TRANSLATABLE;
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_.accelerator = "2";
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_.tooltip = TRANSLATABLE;
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp116_.callback = (GCallback) _library_photo_page_on_rate_two_gtk_action_callback;
+#line 2569 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_two = _tmp116_;
+#line 2571 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp117_ = resources_rating_menu (RATING_TWO);
+#line 2571 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_two.label = _tmp117_;
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp118_ = actions;
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp118__length1 = actions_length1;
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp119_ = rate_two;
+#line 2572 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add228 (&actions, &actions_length1, &_actions_size_, &_tmp119_);
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_.name = "RateThree";
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_.stock_id = NULL;
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_.label = TRANSLATABLE;
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_.accelerator = "3";
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_.tooltip = TRANSLATABLE;
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp120_.callback = (GCallback) _library_photo_page_on_rate_three_gtk_action_callback;
+#line 2574 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_three = _tmp120_;
+#line 2576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp121_ = resources_rating_menu (RATING_THREE);
+#line 2576 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_three.label = _tmp121_;
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp122_ = actions;
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp122__length1 = actions_length1;
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp123_ = rate_three;
+#line 2577 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add229 (&actions, &actions_length1, &_actions_size_, &_tmp123_);
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_.name = "RateFour";
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_.stock_id = NULL;
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_.label = TRANSLATABLE;
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_.accelerator = "4";
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_.tooltip = TRANSLATABLE;
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp124_.callback = (GCallback) _library_photo_page_on_rate_four_gtk_action_callback;
+#line 2579 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_four = _tmp124_;
+#line 2581 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp125_ = resources_rating_menu (RATING_FOUR);
+#line 2581 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_four.label = _tmp125_;
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp126_ = actions;
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp126__length1 = actions_length1;
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp127_ = rate_four;
+#line 2582 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add230 (&actions, &actions_length1, &_actions_size_, &_tmp127_);
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp128_.name = "RateFive";
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp128_.stock_id = NULL;
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp128_.label = TRANSLATABLE;
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp128_.accelerator = "5";
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp128_.tooltip = TRANSLATABLE;
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp128_.callback = (GCallback) _library_photo_page_on_rate_five_gtk_action_callback;
+#line 2584 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_five = _tmp128_;
+#line 2586 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp129_ = resources_rating_menu (RATING_FIVE);
+#line 2586 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rate_five.label = _tmp129_;
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp130_ = actions;
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp130__length1 = actions_length1;
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp131_ = rate_five;
+#line 2587 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add231 (&actions, &actions_length1, &_actions_size_, &_tmp131_);
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp132_.name = "IncreaseSize";
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp132_.stock_id = RESOURCES_ZOOM_IN_LABEL;
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp132_.label = TRANSLATABLE;
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp132_.accelerator = "<Ctrl>plus";
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp132_.tooltip = TRANSLATABLE;
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp132_.callback = (GCallback) _editing_host_page_on_increase_size_gtk_action_callback;
+#line 2589 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ increase_size = _tmp132_;
+#line 2591 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp133_ = _ ("Zoom _In");
+#line 2591 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ increase_size.label = _tmp133_;
+#line 2592 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp134_ = _ ("Increase the magnification of the photo");
+#line 2592 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ increase_size.tooltip = _tmp134_;
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp135_ = actions;
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp135__length1 = actions_length1;
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp136_ = increase_size;
+#line 2593 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add232 (&actions, &actions_length1, &_actions_size_, &_tmp136_);
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp137_.name = "DecreaseSize";
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp137_.stock_id = RESOURCES_ZOOM_OUT_LABEL;
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp137_.label = TRANSLATABLE;
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp137_.accelerator = "<Ctrl>minus";
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp137_.tooltip = TRANSLATABLE;
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp137_.callback = (GCallback) _editing_host_page_on_decrease_size_gtk_action_callback;
+#line 2595 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ decrease_size = _tmp137_;
+#line 2597 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp138_ = _ ("Zoom _Out");
+#line 2597 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ decrease_size.label = _tmp138_;
+#line 2598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp139_ = _ ("Decrease the magnification of the photo");
+#line 2598 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ decrease_size.tooltip = _tmp139_;
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp140_ = actions;
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp140__length1 = actions_length1;
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp141_ = decrease_size;
+#line 2599 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add233 (&actions, &actions_length1, &_actions_size_, &_tmp141_);
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp142_.name = "ZoomFit";
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp142_.stock_id = RESOURCES_ZOOM_FIT_LABEL;
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp142_.label = TRANSLATABLE;
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp142_.accelerator = "<Ctrl>0";
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp142_.tooltip = TRANSLATABLE;
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp142_.callback = (GCallback) _editing_host_page_snap_zoom_to_min_gtk_action_callback;
+#line 2601 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ best_fit = _tmp142_;
+#line 2603 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp143_ = _ ("Fit to _Page");
+#line 2603 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ best_fit.label = _tmp143_;
+#line 2604 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp144_ = _ ("Zoom the photo to fit on the screen");
+#line 2604 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ best_fit.tooltip = _tmp144_;
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp145_ = actions;
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp145__length1 = actions_length1;
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp146_ = best_fit;
+#line 2605 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add234 (&actions, &actions_length1, &_actions_size_, &_tmp146_);
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp147_.name = "Zoom100";
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp147_.stock_id = RESOURCES_ZOOM_100_LABEL;
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp147_.label = TRANSLATABLE;
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp147_.accelerator = "<Ctrl>1";
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp147_.tooltip = TRANSLATABLE;
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp147_.callback = (GCallback) _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback;
+#line 2607 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ actual_size = _tmp147_;
+#line 2610 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp148_ = _ ("Zoom _100%");
+#line 2610 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ actual_size.label = _tmp148_;
+#line 2612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp149_ = _ ("Zoom the photo to 100% magnification");
+#line 2612 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ actual_size.tooltip = _tmp149_;
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp150_ = actions;
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp150__length1 = actions_length1;
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp151_ = actual_size;
+#line 2613 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add235 (&actions, &actions_length1, &_actions_size_, &_tmp151_);
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp152_.name = "Zoom200";
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp152_.stock_id = NULL;
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp152_.label = TRANSLATABLE;
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp152_.accelerator = "<Ctrl>2";
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp152_.tooltip = TRANSLATABLE;
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp152_.callback = (GCallback) _editing_host_page_snap_zoom_to_max_gtk_action_callback;
+#line 2615 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_size = _tmp152_;
+#line 2618 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp153_ = _ ("Zoom _200%");
+#line 2618 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_size.label = _tmp153_;
+#line 2620 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp154_ = _ ("Zoom the photo to 200% magnification");
+#line 2620 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ max_size.tooltip = _tmp154_;
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp155_ = actions;
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp155__length1 = actions_length1;
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp156_ = max_size;
+#line 2621 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add236 (&actions, &actions_length1, &_actions_size_, &_tmp156_);
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp157_.name = "AddTags";
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp157_.stock_id = NULL;
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp157_.label = TRANSLATABLE;
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp157_.accelerator = "<Ctrl>T";
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp157_.tooltip = TRANSLATABLE;
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp157_.callback = (GCallback) _library_photo_page_on_add_tags_gtk_action_callback;
+#line 2623 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ add_tags = _tmp157_;
+#line 2625 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ add_tags.label = RESOURCES_ADD_TAGS_MENU;
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp158_ = actions;
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp158__length1 = actions_length1;
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp159_ = add_tags;
+#line 2626 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add237 (&actions, &actions_length1, &_actions_size_, &_tmp159_);
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp160_.name = "ModifyTags";
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp160_.stock_id = NULL;
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp160_.label = TRANSLATABLE;
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp160_.accelerator = "<Ctrl>M";
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp160_.tooltip = TRANSLATABLE;
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp160_.callback = (GCallback) _library_photo_page_on_modify_tags_gtk_action_callback;
+#line 2628 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ modify_tags = _tmp160_;
+#line 2630 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ modify_tags.label = RESOURCES_MODIFY_TAGS_MENU;
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp161_ = actions;
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp161__length1 = actions_length1;
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp162_ = modify_tags;
+#line 2631 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add238 (&actions, &actions_length1, &_actions_size_, &_tmp162_);
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp163_.name = "Slideshow";
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp163_.stock_id = NULL;
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp163_.label = TRANSLATABLE;
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp163_.accelerator = "F5";
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp163_.tooltip = TRANSLATABLE;
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp163_.callback = (GCallback) _library_photo_page_on_slideshow_gtk_action_callback;
+#line 2633 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ slideshow = _tmp163_;
+#line 2635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp164_ = _ ("S_lideshow");
+#line 2635 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ slideshow.label = _tmp164_;
+#line 2636 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp165_ = _ ("Play a slideshow");
+#line 2636 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ slideshow.tooltip = _tmp165_;
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp166_ = actions;
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp166__length1 = actions_length1;
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp167_ = slideshow;
+#line 2637 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add239 (&actions, &actions_length1, &_actions_size_, &_tmp167_);
+#line 2639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp168_.name = "RawDeveloper";
+#line 2639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp168_.stock_id = NULL;
+#line 2639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp168_.label = TRANSLATABLE;
+#line 2639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp168_.accelerator = NULL;
+#line 2639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp168_.tooltip = NULL;
+#line 2639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp168_.callback = (GCallback) NULL;
+#line 2639 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ raw_developer = _tmp168_;
+#line 2640 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp169_ = _ ("_Developer");
+#line 2640 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ raw_developer.label = _tmp169_;
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp170_ = actions;
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp170__length1 = actions_length1;
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp171_ = raw_developer;
+#line 2641 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add240 (&actions, &actions_length1, &_actions_size_, &_tmp171_);
+#line 2645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp172_.name = "SendToContextMenu";
+#line 2645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp172_.stock_id = "document-send";
+#line 2645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp172_.label = TRANSLATABLE;
+#line 2645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp172_.accelerator = NULL;
+#line 2645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp172_.tooltip = TRANSLATABLE;
+#line 2645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp172_.callback = (GCallback) _library_photo_page_on_send_to_gtk_action_callback;
+#line 2645 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ send_to_context_menu = _tmp172_;
+#line 2647 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ send_to_context_menu.label = RESOURCES_SEND_TO_CONTEXT_MENU;
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp173_ = actions;
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp173__length1 = actions_length1;
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp174_ = send_to_context_menu;
+#line 2648 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add241 (&actions, &actions_length1, &_actions_size_, &_tmp174_);
+#line 2650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp175_.name = "AddTagsContextMenu";
+#line 2650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp175_.stock_id = NULL;
+#line 2650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp175_.label = TRANSLATABLE;
+#line 2650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp175_.accelerator = "<Ctrl>A";
+#line 2650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp175_.tooltip = TRANSLATABLE;
+#line 2650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp175_.callback = (GCallback) _library_photo_page_on_add_tags_gtk_action_callback;
+#line 2650 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ add_tags_context_menu = _tmp175_;
+#line 2652 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ add_tags_context_menu.label = RESOURCES_ADD_TAGS_CONTEXT_MENU;
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp176_ = actions;
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp176__length1 = actions_length1;
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp177_ = add_tags_context_menu;
+#line 2653 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add242 (&actions, &actions_length1, &_actions_size_, &_tmp177_);
+#line 2655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp178_ = actions;
+#line 2655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp178__length1 = actions_length1;
+#line 2655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (result_length1) {
+#line 2655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *result_length1 = _tmp178__length1;
+#line 17972 "PhotoPage.c"
+ }
+#line 2655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp178_;
+#line 2655 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 17978 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_display_ratings_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_display_ratings ((LibraryPhotoPage*) self, action);
+#line 17985 "PhotoPage.c"
+}
+
+
+static void _vala_array_add243 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 17996 "PhotoPage.c"
+ }
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 18000 "PhotoPage.c"
+}
+
+
+static GtkToggleActionEntry* library_photo_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1) {
+ LibraryPhotoPage * self;
+ GtkToggleActionEntry* result = NULL;
+ GtkToggleActionEntry* toggle_actions = NULL;
+ gint _tmp0_ = 0;
+ GtkToggleActionEntry* _tmp1_ = NULL;
+ gint toggle_actions_length1 = 0;
+ gint _toggle_actions_size_ = 0;
+ GtkToggleActionEntry ratings = {0};
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkToggleActionEntry _tmp5_ = {0};
+ GtkToggleActionEntry _tmp6_ = {0};
+ GtkToggleActionEntry* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ GtkToggleActionEntry _tmp8_ = {0};
+ GtkToggleActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+#line 2658 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = PAGE_CLASS (library_photo_page_parent_class)->init_collect_toggle_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), &_tmp0_);
+#line 2659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ toggle_actions = _tmp1_;
+#line 2659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ toggle_actions_length1 = _tmp0_;
+#line 2659 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _toggle_actions_size_ = toggle_actions_length1;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = configuration_facade_get_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.name = "ViewRatings";
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.accelerator = "<Ctrl><Shift>N";
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.callback = (GCallback) _library_photo_page_on_display_ratings_gtk_action_callback;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.is_active = _tmp4_;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2661 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ratings = _tmp6_;
+#line 2663 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ratings.label = RESOURCES_VIEW_RATINGS_MENU;
+#line 2664 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ratings.tooltip = RESOURCES_VIEW_RATINGS_TOOLTIP;
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = toggle_actions;
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7__length1 = toggle_actions_length1;
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = ratings;
+#line 2665 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add243 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp8_);
+#line 2667 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = toggle_actions;
+#line 2667 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9__length1 = toggle_actions_length1;
+#line 2667 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (result_length1) {
+#line 2667 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *result_length1 = _tmp9__length1;
+#line 18079 "PhotoPage.c"
+ }
+#line 2667 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp9_;
+#line 2667 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 18085 "PhotoPage.c"
+}
+
+
+static gpointer _injection_group_ref0 (gpointer self) {
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self ? injection_group_ref (self) : NULL;
+#line 18092 "PhotoPage.c"
+}
+
+
+static void _vala_array_add244 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 18103 "PhotoPage.c"
+ }
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = value;
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[*length] = NULL;
+#line 18109 "PhotoPage.c"
+}
+
+
+static void _vala_array_add245 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 18120 "PhotoPage.c"
+ }
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = value;
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[*length] = NULL;
+#line 18126 "PhotoPage.c"
+}
+
+
+static void _vala_array_add246 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 18137 "PhotoPage.c"
+ }
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = value;
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[*length] = NULL;
+#line 18143 "PhotoPage.c"
+}
+
+
+static InjectionGroup** library_photo_page_real_init_collect_injection_groups (Page* base, int* result_length1) {
+ LibraryPhotoPage * self;
+ InjectionGroup** result = NULL;
+ InjectionGroup** groups = NULL;
+ gint _tmp0_ = 0;
+ InjectionGroup** _tmp1_ = NULL;
+ gint groups_length1 = 0;
+ gint _groups_size_ = 0;
+ InjectionGroup* print_group = NULL;
+ InjectionGroup* _tmp2_ = NULL;
+ InjectionGroup** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ InjectionGroup* _tmp4_ = NULL;
+ InjectionGroup* publish_group = NULL;
+ InjectionGroup* _tmp5_ = NULL;
+ InjectionGroup** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ InjectionGroup* _tmp7_ = NULL;
+ InjectionGroup* bg_group = NULL;
+ InjectionGroup* _tmp8_ = NULL;
+ InjectionGroup** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ InjectionGroup* _tmp10_ = NULL;
+ InjectionGroup** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 2670 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2671 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = PAGE_CLASS (library_photo_page_parent_class)->init_collect_injection_groups (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), &_tmp0_);
+#line 2671 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ groups = _tmp1_;
+#line 2671 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ groups_length1 = _tmp0_;
+#line 2671 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _groups_size_ = groups_length1;
+#line 2673 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = injection_group_new ("/MenuBar/FileMenu/PrintPlaceholder");
+#line 2673 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ print_group = _tmp2_;
+#line 2674 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ injection_group_add_menu_item (print_group, "Print", NULL);
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = groups;
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3__length1 = groups_length1;
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _injection_group_ref0 (print_group);
+#line 2676 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add244 (&groups, &groups_length1, &_groups_size_, _tmp4_);
+#line 2678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = injection_group_new ("/MenuBar/FileMenu/PublishPlaceholder");
+#line 2678 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ publish_group = _tmp5_;
+#line 2679 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ injection_group_add_menu_item (publish_group, "Publish", NULL);
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = groups;
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6__length1 = groups_length1;
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _injection_group_ref0 (publish_group);
+#line 2681 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add245 (&groups, &groups_length1, &_groups_size_, _tmp7_);
+#line 2683 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = injection_group_new ("/MenuBar/FileMenu/SetBackgroundPlaceholder");
+#line 2683 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ bg_group = _tmp8_;
+#line 2684 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ injection_group_add_menu_item (bg_group, "SetBackground", NULL);
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = groups;
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9__length1 = groups_length1;
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _injection_group_ref0 (bg_group);
+#line 2686 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add246 (&groups, &groups_length1, &_groups_size_, _tmp10_);
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = groups;
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11__length1 = groups_length1;
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (result_length1) {
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *result_length1 = _tmp11__length1;
+#line 18232 "PhotoPage.c"
+ }
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp11_;
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _injection_group_unref0 (bg_group);
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _injection_group_unref0 (publish_group);
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _injection_group_unref0 (print_group);
+#line 2688 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 18244 "PhotoPage.c"
+}
+
+
+static void _vala_array_add247 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 18255 "PhotoPage.c"
+ }
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 18259 "PhotoPage.c"
+}
+
+
+static void _vala_array_add248 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 18270 "PhotoPage.c"
+ }
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 18274 "PhotoPage.c"
+}
+
+
+static void _library_photo_page_on_raw_developer_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self) {
+#line 2709 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_raw_developer_changed ((LibraryPhotoPage*) self, action, current);
+#line 18281 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_register_radio_actions (Page* base, GtkActionGroup* action_group) {
+ LibraryPhotoPage * self;
+ GtkRadioActionEntry* developer_actions = NULL;
+ GtkRadioActionEntry* _tmp0_ = NULL;
+ gint developer_actions_length1 = 0;
+ gint _developer_actions_size_ = 0;
+ GtkRadioActionEntry dev_shotwell = {0};
+ GtkRadioActionEntry _tmp1_ = {0};
+ gchar* label_shotwell = NULL;
+ gchar* _tmp2_ = NULL;
+ GtkRadioActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkRadioActionEntry _tmp4_ = {0};
+ GtkRadioActionEntry dev_camera = {0};
+ GtkRadioActionEntry _tmp5_ = {0};
+ gchar* label_camera = NULL;
+ gchar* _tmp6_ = NULL;
+ GtkRadioActionEntry* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ GtkRadioActionEntry _tmp8_ = {0};
+ GtkActionGroup* _tmp9_ = NULL;
+ GtkRadioActionEntry* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ GtkActionGroup* _tmp11_ = NULL;
+#line 2691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
+#line 2695 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = g_new0 (GtkRadioActionEntry, 0);
+#line 2695 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ developer_actions = _tmp0_;
+#line 2695 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ developer_actions_length1 = 0;
+#line 2695 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _developer_actions_size_ = developer_actions_length1;
+#line 2697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_.name = "RawDeveloperShotwell";
+#line 2697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_.stock_id = NULL;
+#line 2697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_.label = TRANSLATABLE;
+#line 2697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_.accelerator = NULL;
+#line 2697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_.tooltip = TRANSLATABLE;
+#line 2697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_.value = (gint) RAW_DEVELOPER_SHOTWELL;
+#line 2697 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dev_shotwell = _tmp1_;
+#line 2699 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = raw_developer_get_label (RAW_DEVELOPER_SHOTWELL);
+#line 2699 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ label_shotwell = _tmp2_;
+#line 2700 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dev_shotwell.label = label_shotwell;
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = developer_actions;
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3__length1 = developer_actions_length1;
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = dev_shotwell;
+#line 2701 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add247 (&developer_actions, &developer_actions_length1, &_developer_actions_size_, &_tmp4_);
+#line 2703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.name = "RawDeveloperCamera";
+#line 2703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 2703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 2703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.accelerator = NULL;
+#line 2703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 2703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_.value = (gint) RAW_DEVELOPER_CAMERA;
+#line 2703 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dev_camera = _tmp5_;
+#line 2705 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = raw_developer_get_label (RAW_DEVELOPER_CAMERA);
+#line 2705 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ label_camera = _tmp6_;
+#line 2706 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dev_camera.label = label_camera;
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = developer_actions;
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7__length1 = developer_actions_length1;
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = dev_camera;
+#line 2707 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_array_add248 (&developer_actions, &developer_actions_length1, &_developer_actions_size_, &_tmp8_);
+#line 2709 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = action_group;
+#line 2709 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = developer_actions;
+#line 2709 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10__length1 = developer_actions_length1;
+#line 2709 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_action_group_add_radio_actions (_tmp9_, _tmp10_, _tmp10__length1, (gint) RAW_DEVELOPER_SHOTWELL, (GCallback) _library_photo_page_on_raw_developer_changed_gtk_radio_action_callback, self);
+#line 2711 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = action_group;
+#line 2711 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (library_photo_page_parent_class)->register_radio_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp11_);
+#line 2691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (label_camera);
+#line 2691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (label_shotwell);
+#line 2691 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ developer_actions = (g_free (developer_actions), NULL);
+#line 18395 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_display_ratings (LibraryPhotoPage* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 2714 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2714 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 2715 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = action;
+#line 2715 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 2715 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ display = _tmp1_;
+#line 2717 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_set_display_ratings (self, display);
+#line 2719 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 2719 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 2719 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ configuration_facade_set_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), display);
+#line 2719 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2720 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 18427 "PhotoPage.c"
+}
+
+
+static void library_photo_page_set_display_ratings (LibraryPhotoPage* self, gboolean display) {
+ GtkToggleAction* action = NULL;
+ GtkAction* _tmp0_ = NULL;
+ GtkToggleAction* _tmp1_ = NULL;
+ GtkToggleAction* _tmp2_ = NULL;
+#line 2723 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ViewRatings");
+#line 2724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL;
+#line 2724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ == NULL) {
+#line 2724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 18446 "PhotoPage.c"
+ }
+#line 2724 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ action = _tmp1_;
+#line 2725 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = action;
+#line 2725 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_ != NULL) {
+#line 18454 "PhotoPage.c"
+ GtkToggleAction* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2726 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = action;
+#line 2726 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = display;
+#line 2726 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_toggle_action_set_active (_tmp3_, _tmp4_);
+#line 18463 "PhotoPage.c"
+ }
+#line 2723 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (action);
+#line 18467 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ LibraryPhotoPage * self;
+ gboolean multiple = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean rotate_possible = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gboolean is_raw = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp33_ = FALSE;
+ gboolean _tmp34_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ gboolean _tmp39_ = FALSE;
+ gboolean _tmp40_ = FALSE;
+ gboolean _tmp41_ = FALSE;
+ gboolean _tmp42_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+ gboolean _tmp44_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+ gboolean _tmp46_ = FALSE;
+ gboolean _tmp55_ = FALSE;
+ gboolean _tmp56_ = FALSE;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+#line 2729 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2730 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2730 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 2730 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 2730 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_ > 1;
+#line 2730 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 2730 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ multiple = _tmp3_;
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_) {
+#line 18523 "PhotoPage.c"
+ Photo* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_host_page_is_rotate_available (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp7_);
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp8_;
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 18537 "PhotoPage.c"
+ } else {
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = FALSE;
+#line 18541 "PhotoPage.c"
+ }
+#line 2731 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ rotate_possible = _tmp4_;
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp10_) {
+#line 18549 "PhotoPage.c"
+ Photo* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ PhotoFileFormat _tmp13_ = 0;
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = photo_get_master_file_format (_tmp12_);
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp13_ == PHOTO_FILE_FORMAT_RAW;
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 18563 "PhotoPage.c"
+ } else {
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = FALSE;
+#line 18567 "PhotoPage.c"
+ }
+#line 2732 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ is_raw = _tmp9_;
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp15_) {
+#line 18575 "PhotoPage.c"
+ ConfigFacade* _tmp16_ = NULL;
+ ConfigFacade* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = config_facade_get_instance ();
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_;
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = configuration_facade_get_external_photo_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = g_strcmp0 (_tmp19_, "") != 0;
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp19_);
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp17_);
+#line 18594 "PhotoPage.c"
+ } else {
+#line 2735 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = FALSE;
+#line 18598 "PhotoPage.c"
+ }
+#line 2734 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEdit", _tmp14_);
+#line 2737 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2737 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp21_) {
+#line 18606 "PhotoPage.c"
+ gboolean _tmp22_ = FALSE;
+ Photo* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_;
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = photo_has_transformations (_tmp24_);
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_;
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp24_);
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp26_) {
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = TRUE;
+#line 18626 "PhotoPage.c"
+ } else {
+ Photo* _tmp27_ = NULL;
+ Photo* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp27_;
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = photo_has_editable (_tmp28_);
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp29_;
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 18641 "PhotoPage.c"
+ }
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp22_;
+#line 18645 "PhotoPage.c"
+ } else {
+#line 2738 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = FALSE;
+#line 18649 "PhotoPage.c"
+ }
+#line 2737 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp20_);
+#line 2740 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2740 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp31_) {
+#line 18657 "PhotoPage.c"
+ gboolean _tmp32_ = FALSE;
+#line 2740 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2740 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = !_tmp32_;
+#line 18663 "PhotoPage.c"
+ } else {
+#line 2740 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = FALSE;
+#line 18667 "PhotoPage.c"
+ }
+#line 2740 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp30_) {
+#line 2741 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_rating_menu_item_sensitivity (self);
+#line 2742 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_development_menu_item_sensitivity (self);
+#line 18675 "PhotoPage.c"
+ }
+#line 2745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2745 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp33_);
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp35_) {
+#line 18685 "PhotoPage.c"
+ Photo* _tmp36_ = NULL;
+ Photo* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = _tmp36_;
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = photo_has_color_adjustments (_tmp37_);
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = _tmp38_;
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp37_);
+#line 18699 "PhotoPage.c"
+ } else {
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = FALSE;
+#line 18703 "PhotoPage.c"
+ }
+#line 2747 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CopyColorAdjustments", _tmp34_);
+#line 2748 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = pixel_transformation_bundle_has_copied_color_adjustments ();
+#line 2748 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PasteColorAdjustments", _tmp39_);
+#line 2750 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = multiple;
+#line 2750 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PrevPhoto", _tmp40_);
+#line 2751 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp41_ = multiple;
+#line 2751 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "NextPhoto", _tmp41_);
+#line 2752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp42_ = rotate_possible;
+#line 2752 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp42_);
+#line 2753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp43_ = rotate_possible;
+#line 2753 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp43_);
+#line 2754 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp44_ = rotate_possible;
+#line 2754 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp44_);
+#line 2755 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp45_ = rotate_possible;
+#line 2755 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp45_);
+#line 2757 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp46_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2757 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp46_) {
+#line 18739 "PhotoPage.c"
+ Photo* _tmp47_ = NULL;
+ Photo* _tmp48_ = NULL;
+ Scaling _tmp49_ = {0};
+ gboolean _tmp50_ = FALSE;
+ Photo* _tmp51_ = NULL;
+ Photo* _tmp52_ = NULL;
+ Scaling _tmp53_ = {0};
+ gboolean _tmp54_ = FALSE;
+#line 2758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp47_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp48_ = _tmp47_;
+#line 2758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling_for_original (&_tmp49_);
+#line 2758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp50_ = editing_tools_crop_tool_is_available (_tmp48_, &_tmp49_);
+#line 2758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", _tmp50_);
+#line 2758 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp48_);
+#line 2759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp51_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp52_ = _tmp51_;
+#line 2759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling_for_original (&_tmp53_);
+#line 2759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp54_ = editing_tools_redeye_tool_is_available (_tmp52_, &_tmp53_);
+#line 2759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", _tmp54_);
+#line 2759 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp52_);
+#line 18772 "PhotoPage.c"
+ }
+#line 2763 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_flag_action (self);
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp56_ = is_raw;
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp56_) {
+#line 18780 "PhotoPage.c"
+ ConfigFacade* _tmp57_ = NULL;
+ ConfigFacade* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp57_ = config_facade_get_instance ();
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp58_ = _tmp57_;
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp59_ = configuration_facade_get_external_raw_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp60_ = _tmp59_;
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = g_strcmp0 (_tmp60_, "") != 0;
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp60_);
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp58_);
+#line 18799 "PhotoPage.c"
+ } else {
+#line 2766 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp55_ = FALSE;
+#line 18803 "PhotoPage.c"
+ }
+#line 2765 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_visible (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEditRAW", _tmp55_);
+#line 2768 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp61_ = selected_count;
+#line 2768 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp62_ = count;
+#line 2768 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (library_photo_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp61_, _tmp62_);
+#line 18813 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_photos_altered (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 2771 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2772 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2772 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 18826 "PhotoPage.c"
+ gboolean _tmp2_ = FALSE;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = photo_has_transformations (_tmp4_);
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp6_) {
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = TRUE;
+#line 18846 "PhotoPage.c"
+ } else {
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = photo_has_editable (_tmp8_);
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp9_;
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 18861 "PhotoPage.c"
+ }
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp2_;
+#line 18865 "PhotoPage.c"
+ } else {
+#line 2773 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 18869 "PhotoPage.c"
+ }
+#line 2772 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp0_);
+#line 2774 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_flag_action (self);
+#line 18875 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_raw_developer_changed (LibraryPhotoPage* self, GtkAction* action, GtkAction* current) {
+ GtkAction* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 2777 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2777 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 2777 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (current));
+#line 2778 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = current;
+#line 2778 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gtk_radio_action_get_current_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_radio_action_get_type (), GtkRadioAction));
+#line 2778 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_developer_changed (self, (RawDeveloper) _tmp1_);
+#line 18894 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_developer_changed (LibraryPhotoPage* self, RawDeveloper rd) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ Photo* photo = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ Photo* _tmp14_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ Photo* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 2782 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2782 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 2782 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 2782 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 2782 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 2782 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 2783 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 18932 "PhotoPage.c"
+ }
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = gee_list_get (_tmp7_, 0);
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = (DataView*) _tmp8_;
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_PHOTO) ? ((Photo*) _tmp10_) : NULL;
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp11_ == NULL) {
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 18954 "PhotoPage.c"
+ }
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 2785 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = _tmp12_;
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = photo;
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp14_ == NULL) {
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = TRUE;
+#line 18972 "PhotoPage.c"
+ } else {
+ RawDeveloper _tmp15_ = 0;
+ Photo* _tmp16_ = NULL;
+ RawDeveloper _tmp17_ = 0;
+ gboolean _tmp18_ = FALSE;
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = rd;
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = photo;
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = photo_get_raw_developer (_tmp16_);
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = raw_developer_is_equivalent (_tmp15_, _tmp17_);
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp18_;
+#line 18988 "PhotoPage.c"
+ }
+#line 2786 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp13_) {
+#line 2787 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 2787 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 18996 "PhotoPage.c"
+ }
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = photo;
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = photo_has_transformations (_tmp20_);
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp21_) {
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = TRUE;
+#line 19006 "PhotoPage.c"
+ } else {
+ gboolean _tmp22_ = FALSE;
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = dialogs_confirm_warn_developer_changed (1);
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp22_;
+#line 19013 "PhotoPage.c"
+ }
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp19_) {
+#line 19017 "PhotoPage.c"
+ SetRawDeveloperCommand* command = NULL;
+ ViewCollection* _tmp23_ = NULL;
+ ViewCollection* _tmp24_ = NULL;
+ GeeList* _tmp25_ = NULL;
+ GeeList* _tmp26_ = NULL;
+ RawDeveloper _tmp27_ = 0;
+ SetRawDeveloperCommand* _tmp28_ = NULL;
+ SetRawDeveloperCommand* _tmp29_ = NULL;
+ CommandManager* _tmp30_ = NULL;
+ CommandManager* _tmp31_ = NULL;
+ SetRawDeveloperCommand* _tmp32_ = NULL;
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_;
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = view_collection_get_selected (_tmp24_);
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_;
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = rd;
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = set_raw_developer_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ITERABLE, GeeIterable), _tmp27_);
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = _tmp28_;
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp26_);
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp24_);
+#line 2792 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp29_;
+#line 2794 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2794 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = _tmp30_;
+#line 2794 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = command;
+#line 2794 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp31_, G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_COMMAND, Command));
+#line 2794 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp31_);
+#line 2796 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_development_menu_item_sensitivity (self);
+#line 2791 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 19063 "PhotoPage.c"
+ }
+#line 2781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 19067 "PhotoPage.c"
+}
+
+
+void library_photo_page_developer_changed (LibraryPhotoPage* self, RawDeveloper rd) {
+#line 2781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2781 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ LIBRARY_PHOTO_PAGE_GET_CLASS (self)->developer_changed (self, rd);
+#line 19076 "PhotoPage.c"
+}
+
+
+static void library_photo_page_update_flag_action (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+#line 2800 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2801 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2801 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 19088 "PhotoPage.c"
+ GtkAction* action = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ gboolean is_flagged = FALSE;
+ Photo* _tmp3_ = NULL;
+ LibraryPhoto* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GtkAction* _tmp9_ = NULL;
+ GtkAction* _tmp10_ = NULL;
+#line 2802 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Flag");
+#line 2802 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ action = _tmp1_;
+#line 2803 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = action;
+#line 2803 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp2_ != NULL, "action != null");
+#line 2805 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2805 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 2805 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_FLAGGABLE, Flaggable));
+#line 2805 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 2805 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 2805 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ is_flagged = _tmp6_;
+#line 2807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = is_flagged;
+#line 2807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp8_) {
+#line 2807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = RESOURCES_UNFLAG_MENU;
+#line 19127 "PhotoPage.c"
+ } else {
+#line 2807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = RESOURCES_FLAG_MENU;
+#line 19131 "PhotoPage.c"
+ }
+#line 2807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = action;
+#line 2807 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_action_set_label (_tmp9_, _tmp7_);
+#line 2808 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = action;
+#line 2808 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gtk_action_set_sensitive (_tmp10_, TRUE);
+#line 2801 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (action);
+#line 19143 "PhotoPage.c"
+ } else {
+#line 2810 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Flag", FALSE);
+#line 19147 "PhotoPage.c"
+ }
+}
+
+
+static void _library_photo_page_on_page_destroyed_gtk_widget_destroy (GtkWidget* _sender, gpointer self) {
+#line 2821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_page_destroyed ((LibraryPhotoPage*) self);
+#line 19155 "PhotoPage.c"
+}
+
+
+void library_photo_page_display_for_collection (LibraryPhotoPage* self, CollectionPage* return_page, Photo* photo, ViewCollection* view) {
+ CollectionPage* _tmp0_ = NULL;
+ CollectionPage* _tmp1_ = NULL;
+ CollectionPage* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ Photo* _tmp9_ = NULL;
+#line 2818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (return_page));
+#line 2818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 2818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail ((view == NULL) || IS_VIEW_COLLECTION (view));
+#line 2820 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = return_page;
+#line 2820 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 2820 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->return_page);
+#line 2820 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->return_page = _tmp1_;
+#line 2821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = return_page;
+#line 2821 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), "destroy", (GCallback) _library_photo_page_on_page_destroyed_gtk_widget_destroy, self, 0);
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = view;
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_ != NULL) {
+#line 19190 "PhotoPage.c"
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = view;
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _data_collection_ref0 (_tmp5_);
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp6_;
+#line 19201 "PhotoPage.c"
+ } else {
+ CollectionPage* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = return_page;
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PAGE, Page));
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp8_;
+#line 19213 "PhotoPage.c"
+ }
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = photo;
+#line 2823 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_display_copy_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp3_, _tmp9_);
+#line 2818 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 19221 "PhotoPage.c"
+}
+
+
+void library_photo_page_on_page_destroyed (LibraryPhotoPage* self) {
+#line 2826 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->return_page);
+#line 2829 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->return_page = NULL;
+#line 2830 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ editing_host_page_unset_view_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 19234 "PhotoPage.c"
+}
+
+
+CollectionPage* library_photo_page_get_controller_page (LibraryPhotoPage* self) {
+ CollectionPage* result = NULL;
+ CollectionPage* _tmp0_ = NULL;
+ CollectionPage* _tmp1_ = NULL;
+#line 2833 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_PAGE (self), NULL);
+#line 2834 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->return_page;
+#line 2834 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 2834 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp1_;
+#line 2834 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19252 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_switched_to (Page* base) {
+ LibraryPhotoPage * self;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2837 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2841 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2841 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 2841 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (_tmp1_ != NULL, "get_photo() != null");
+#line 2841 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2843 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ PAGE_CLASS (library_photo_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page));
+#line 2845 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_zoom_menu_item_sensitivity (self);
+#line 2846 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_rating_menu_item_sensitivity (self);
+#line 2848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 2848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 2848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = configuration_facade_get_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_set_display_ratings (self, _tmp4_);
+#line 2848 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 19289 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* library_photo_page_real_get_bottom_left_trinket (EditingHostPage* base, gint scale) {
+ LibraryPhotoPage * self;
+ GdkPixbuf* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ Photo* _tmp5_ = NULL;
+ LibraryPhoto* _tmp6_ = NULL;
+ Rating _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+#line 2851 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 19312 "PhotoPage.c"
+ } else {
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = configuration_facade_get_display_photo_ratings (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp4_;
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 19327 "PhotoPage.c"
+ }
+#line 2852 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 2853 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = NULL;
+#line 2853 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19335 "PhotoPage.c"
+ }
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = scale;
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = resources_get_rating_trinket (_tmp7_, _tmp8_);
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp10_;
+#line 2855 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19355 "PhotoPage.c"
+}
+
+
+static GdkPixbuf* library_photo_page_real_get_top_right_trinket (EditingHostPage* base, gint scale) {
+ LibraryPhotoPage * self;
+ GdkPixbuf* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkPixbuf* _tmp5_ = NULL;
+#line 2858 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 19373 "PhotoPage.c"
+ } else {
+ Photo* _tmp2_ = NULL;
+ LibraryPhoto* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_FLAGGABLE, Flaggable));
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp4_;
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 19388 "PhotoPage.c"
+ }
+#line 2859 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 2860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = NULL;
+#line 2860 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19396 "PhotoPage.c"
+ }
+#line 2862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = resources_get_icon (RESOURCES_ICON_FLAGGED_TRINKET, RESOURCES_DEFAULT_ICON_SCALE);
+#line 2862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp5_;
+#line 2862 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19404 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_slideshow (LibraryPhotoPage* self) {
+ LibraryPhoto* photo = NULL;
+ Photo* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ LibraryPhotoSourceCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ SlideshowPage* _tmp8_ = NULL;
+ SlideshowPage* _tmp9_ = NULL;
+#line 2865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2866 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2866 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 2867 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = photo;
+#line 2867 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ == NULL) {
+#line 2868 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 2868 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 19434 "PhotoPage.c"
+ }
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = library_photo_global;
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo;
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = slideshow_page_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PHOTO, Photo));
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp8_);
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ app_window_go_fullscreen (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PAGE, Page));
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 2870 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2865 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 19464 "PhotoPage.c"
+}
+
+
+static void library_photo_page_update_zoom_menu_item_sensitivity (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ ZoomState _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ ZoomState _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+#line 2874 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 2875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
+#line 2875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = zoom_state_is_max (&_tmp1_);
+#line 2875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp2_) {
+#line 19483 "PhotoPage.c"
+ gboolean _tmp3_ = FALSE;
+#line 2875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp3_;
+#line 19489 "PhotoPage.c"
+ } else {
+#line 2875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 19493 "PhotoPage.c"
+ }
+#line 2875 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp0_);
+#line 2876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp5_);
+#line 2876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = zoom_state_is_default (&_tmp5_);
+#line 2876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp6_) {
+#line 19503 "PhotoPage.c"
+ gboolean _tmp7_ = FALSE;
+#line 2876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = !_tmp7_;
+#line 19509 "PhotoPage.c"
+ } else {
+#line 2876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = FALSE;
+#line 19513 "PhotoPage.c"
+ }
+#line 2876 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp4_);
+#line 19517 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_on_increase_size (EditingHostPage* base) {
+ LibraryPhotoPage * self;
+#line 2879 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2880 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_CLASS (library_photo_page_parent_class)->on_increase_size (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2882 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_zoom_menu_item_sensitivity (self);
+#line 19529 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_on_decrease_size (EditingHostPage* base) {
+ LibraryPhotoPage * self;
+#line 2885 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2886 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_CLASS (library_photo_page_parent_class)->on_decrease_size (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 2888 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_zoom_menu_item_sensitivity (self);
+#line 19541 "PhotoPage.c"
+}
+
+
+static gboolean library_photo_page_real_on_zoom_slider_key_press (EditingHostPage* base, GdkEventKey* event) {
+ LibraryPhotoPage * self;
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GdkEventKey* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+#line 2891 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2891 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = event;
+#line 2892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = EDITING_HOST_PAGE_CLASS (library_photo_page_parent_class)->on_zoom_slider_key_press (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp0_);
+#line 2892 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 2893 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 2893 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19567 "PhotoPage.c"
+ }
+#line 2895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = event;
+#line 2895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_->keyval;
+#line 2895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = gdk_keyval_name (_tmp3_);
+#line 2895 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (g_strcmp0 (_tmp4_, "Escape") == 0) {
+#line 2896 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_return_to_collection (self);
+#line 2897 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 2897 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19583 "PhotoPage.c"
+ } else {
+#line 2899 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = FALSE;
+#line 2899 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19589 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_real_update_ui (EditingHostPage* base, gboolean missing) {
+ LibraryPhotoPage * self;
+ gboolean sensitivity = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 2903 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2904 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = missing;
+#line 2904 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ sensitivity = !_tmp0_;
+#line 2906 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SendTo", sensitivity);
+#line 2907 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Publish", sensitivity);
+#line 2908 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Print", sensitivity);
+#line 2909 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonJumpToFile", sensitivity);
+#line 2911 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonUndo", sensitivity);
+#line 2912 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonRedo", sensitivity);
+#line 2914 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", sensitivity);
+#line 2915 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", sensitivity);
+#line 2916 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ZoomFit", sensitivity);
+#line 2917 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom100", sensitivity);
+#line 2918 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom200", sensitivity);
+#line 2919 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Slideshow", sensitivity);
+#line 2921 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", sensitivity);
+#line 2922 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", sensitivity);
+#line 2923 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", sensitivity);
+#line 2924 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", sensitivity);
+#line 2925 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", sensitivity);
+#line 2926 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", sensitivity);
+#line 2927 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", sensitivity);
+#line 2928 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Adjust", sensitivity);
+#line 2929 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "EditTitle", sensitivity);
+#line 2930 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", sensitivity);
+#line 2931 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEdit", sensitivity);
+#line 2932 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEditRAW", sensitivity);
+#line 2933 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", sensitivity);
+#line 2935 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Rate", sensitivity);
+#line 2936 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Flag", sensitivity);
+#line 2937 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AddTags", sensitivity);
+#line 2938 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ModifyTags", sensitivity);
+#line 2940 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", sensitivity);
+#line 2942 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = missing;
+#line 2942 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_CLASS (library_photo_page_parent_class)->update_ui (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp1_);
+#line 19669 "PhotoPage.c"
+}
+
+
+static void library_photo_page_real_notify_photo_backing_missing (EditingHostPage* base, Photo* photo, gboolean missing) {
+ LibraryPhotoPage * self;
+ gboolean _tmp0_ = FALSE;
+ Photo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2945 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2945 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 2946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = missing;
+#line 2946 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 19686 "PhotoPage.c"
+ Photo* _tmp1_ = NULL;
+#line 2947 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = photo;
+#line 2947 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_mark_offline (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_MEDIA_SOURCE, MediaSource));
+#line 19692 "PhotoPage.c"
+ } else {
+ Photo* _tmp2_ = NULL;
+#line 2949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = photo;
+#line 2949 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ media_source_mark_online (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_MEDIA_SOURCE, MediaSource));
+#line 19699 "PhotoPage.c"
+ }
+#line 2951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = photo;
+#line 2951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = missing;
+#line 2951 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ EDITING_HOST_PAGE_CLASS (library_photo_page_parent_class)->notify_photo_backing_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp3_, _tmp4_);
+#line 19707 "PhotoPage.c"
+}
+
+
+static gboolean library_photo_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ LibraryPhotoPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean handled = FALSE;
+ GdkEventKey* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GQuark _tmp8_ = 0U;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label0 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label1 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label2 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label3 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label4 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label5 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label6 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label7 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label8 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label9 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label10 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label11 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label12 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label13 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label14 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label15 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label16 = 0;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ static GQuark _tmp7_label17 = 0;
+#line 2954 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2954 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (GTK_WIDGET_CLASS (library_photo_page_parent_class)->key_press_event != NULL) {
+#line 19763 "PhotoPage.c"
+ GdkEventKey* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 2955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = event;
+#line 2955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = GTK_WIDGET_CLASS (library_photo_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), gtk_widget_get_type (), GtkWidget), _tmp1_);
+#line 2955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp2_ == TRUE;
+#line 19772 "PhotoPage.c"
+ } else {
+#line 2955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 19776 "PhotoPage.c"
+ }
+#line 2955 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 2956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 2956 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 19784 "PhotoPage.c"
+ }
+#line 2958 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ handled = TRUE;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = event;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_->keyval;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = gdk_keyval_name (_tmp4_);
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (((_tmp8_ == ((0 != _tmp7_label0) ? _tmp7_label0 : (_tmp7_label0 = g_quark_from_static_string ("Escape")))) || (_tmp8_ == ((0 != _tmp7_label1) ? _tmp7_label1 : (_tmp7_label1 = g_quark_from_static_string ("Return"))))) || (_tmp8_ == ((0 != _tmp7_label2) ? _tmp7_label2 : (_tmp7_label2 = g_quark_from_static_string ("KP_Enter"))))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19802 "PhotoPage.c"
+ default:
+ {
+ GtkWindow* _tmp9_ = NULL;
+ GtkWindow* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 2963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 2963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 2963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_FULLSCREEN_WINDOW);
+#line 2963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 2963 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp11_) {
+#line 2964 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_return_to_collection (self);
+#line 19820 "PhotoPage.c"
+ }
+#line 2965 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19824 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label3) ? _tmp7_label3 : (_tmp7_label3 = g_quark_from_static_string ("Delete")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19830 "PhotoPage.c"
+ default:
+ {
+#line 2971 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "MoveToTrash");
+#line 2972 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19837 "PhotoPage.c"
+ }
+ }
+ } else if ((_tmp8_ == ((0 != _tmp7_label4) ? _tmp7_label4 : (_tmp7_label4 = g_quark_from_static_string ("period")))) || (_tmp8_ == ((0 != _tmp7_label5) ? _tmp7_label5 : (_tmp7_label5 = g_quark_from_static_string ("greater"))))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19843 "PhotoPage.c"
+ default:
+ {
+#line 2976 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseRating");
+#line 2977 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19850 "PhotoPage.c"
+ }
+ }
+ } else if ((_tmp8_ == ((0 != _tmp7_label6) ? _tmp7_label6 : (_tmp7_label6 = g_quark_from_static_string ("comma")))) || (_tmp8_ == ((0 != _tmp7_label7) ? _tmp7_label7 : (_tmp7_label7 = g_quark_from_static_string ("less"))))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19856 "PhotoPage.c"
+ default:
+ {
+#line 2981 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseRating");
+#line 2982 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19863 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label8) ? _tmp7_label8 : (_tmp7_label8 = g_quark_from_static_string ("KP_1")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19869 "PhotoPage.c"
+ default:
+ {
+#line 2985 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateOne");
+#line 2986 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19876 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label9) ? _tmp7_label9 : (_tmp7_label9 = g_quark_from_static_string ("KP_2")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19882 "PhotoPage.c"
+ default:
+ {
+#line 2989 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateTwo");
+#line 2990 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19889 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label10) ? _tmp7_label10 : (_tmp7_label10 = g_quark_from_static_string ("KP_3")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19895 "PhotoPage.c"
+ default:
+ {
+#line 2993 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateThree");
+#line 2994 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19902 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label11) ? _tmp7_label11 : (_tmp7_label11 = g_quark_from_static_string ("KP_4")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19908 "PhotoPage.c"
+ default:
+ {
+#line 2997 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFour");
+#line 2998 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19915 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label12) ? _tmp7_label12 : (_tmp7_label12 = g_quark_from_static_string ("KP_5")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19921 "PhotoPage.c"
+ default:
+ {
+#line 3001 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFive");
+#line 3002 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19928 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label13) ? _tmp7_label13 : (_tmp7_label13 = g_quark_from_static_string ("KP_0")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19934 "PhotoPage.c"
+ default:
+ {
+#line 3005 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateUnrated");
+#line 3006 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19941 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label14) ? _tmp7_label14 : (_tmp7_label14 = g_quark_from_static_string ("KP_9")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19947 "PhotoPage.c"
+ default:
+ {
+#line 3009 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateRejected");
+#line 3010 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19954 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label15) ? _tmp7_label15 : (_tmp7_label15 = g_quark_from_static_string ("bracketright")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19960 "PhotoPage.c"
+ default:
+ {
+#line 3013 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise");
+#line 3014 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19967 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label16) ? _tmp7_label16 : (_tmp7_label16 = g_quark_from_static_string ("bracketleft")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19973 "PhotoPage.c"
+ default:
+ {
+#line 3017 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise");
+#line 3018 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19980 "PhotoPage.c"
+ }
+ }
+ } else if (_tmp8_ == ((0 != _tmp7_label17) ? _tmp7_label17 : (_tmp7_label17 = g_quark_from_static_string ("slash")))) {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19986 "PhotoPage.c"
+ default:
+ {
+#line 3021 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Flag");
+#line 3022 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 19993 "PhotoPage.c"
+ }
+ }
+ } else {
+#line 2959 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (0) {
+#line 19999 "PhotoPage.c"
+ default:
+ {
+#line 3025 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ handled = FALSE;
+#line 3026 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 20006 "PhotoPage.c"
+ }
+ }
+ }
+#line 3029 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = handled;
+#line 3029 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 20014 "PhotoPage.c"
+}
+
+
+static gboolean library_photo_page_real_on_double_click (EditingHostPage* base, GdkEventButton* event) {
+ LibraryPhotoPage * self;
+ gboolean result = FALSE;
+ FullscreenWindow* fs = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ FullscreenWindow* _tmp1_ = NULL;
+ FullscreenWindow* _tmp2_ = NULL;
+#line 3032 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 3032 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 3033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FULLSCREEN_WINDOW) ? ((FullscreenWindow*) _tmp0_) : NULL;
+#line 3033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ == NULL) {
+#line 3033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 20037 "PhotoPage.c"
+ }
+#line 3033 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ fs = _tmp1_;
+#line 3034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = fs;
+#line 3034 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp2_ == NULL) {
+#line 3035 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->return_to_collection_on_release = TRUE;
+#line 20047 "PhotoPage.c"
+ } else {
+ FullscreenWindow* _tmp3_ = NULL;
+#line 3037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = fs;
+#line 3037 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ fullscreen_window_close (_tmp3_);
+#line 20054 "PhotoPage.c"
+ }
+#line 3039 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 3039 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (fs);
+#line 3039 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 20062 "PhotoPage.c"
+}
+
+
+static gboolean library_photo_page_real_on_left_released (Page* base, GdkEventButton* event) {
+ LibraryPhotoPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GdkEventButton* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 3042 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 3042 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 3043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->return_to_collection_on_release;
+#line 3043 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 3044 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->return_to_collection_on_release = FALSE;
+#line 3045 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_return_to_collection (self);
+#line 3047 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 3047 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 20088 "PhotoPage.c"
+ }
+#line 3050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = event;
+#line 3050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = PAGE_CLASS (library_photo_page_parent_class)->on_left_released (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp1_);
+#line 3050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp2_;
+#line 3050 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 20098 "PhotoPage.c"
+}
+
+
+static GtkMenu* library_photo_page_get_context_menu (LibraryPhotoPage* self) {
+ GtkMenu* result = NULL;
+ GtkMenu* menu = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GtkMenu* _tmp2_ = NULL;
+#line 3053 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_LIBRARY_PHOTO_PAGE (self), NULL);
+#line 3054 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->ui;
+#line 3054 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gtk_ui_manager_get_widget (_tmp0_, "/PhotoContextMenu");
+#line 3054 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_menu_get_type (), GtkMenu));
+#line 3054 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ menu = _tmp2_;
+#line 3055 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _vala_assert (menu != NULL, "menu != null");
+#line 3056 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = menu;
+#line 3056 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 20124 "PhotoPage.c"
+}
+
+
+static gboolean library_photo_page_real_on_context_buttonpress (Page* base, GdkEventButton* event) {
+ LibraryPhotoPage * self;
+ gboolean result = FALSE;
+ GtkMenu* _tmp0_ = NULL;
+ GtkMenu* _tmp1_ = NULL;
+ GdkEventButton* _tmp2_ = NULL;
+#line 3059 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 3059 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 3060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = library_photo_page_get_context_menu (self);
+#line 3060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 3060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = event;
+#line 3060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp1_, _tmp2_);
+#line 3060 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 3062 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 20152 "PhotoPage.c"
+}
+
+
+static gboolean library_photo_page_real_on_context_keypress (Page* base) {
+ LibraryPhotoPage * self;
+ gboolean result = FALSE;
+ GtkMenu* _tmp0_ = NULL;
+ GtkMenu* _tmp1_ = NULL;
+#line 3065 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 3066 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = library_photo_page_get_context_menu (self);
+#line 3066 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 3066 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp1_, NULL);
+#line 3066 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3068 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = TRUE;
+#line 3068 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 20175 "PhotoPage.c"
+}
+
+
+static void library_photo_page_return_to_collection (LibraryPhotoPage* self) {
+ CollectionPage* _tmp0_ = NULL;
+#line 3071 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = self->priv->return_page;
+#line 3073 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (NULL != _tmp0_) {
+#line 20187 "PhotoPage.c"
+ LibraryWindow* _tmp1_ = NULL;
+ LibraryWindow* _tmp2_ = NULL;
+ CollectionPage* _tmp3_ = NULL;
+#line 3074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = library_window_get_app ();
+#line 3074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 3074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = self->priv->return_page;
+#line 3074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_window_switch_to_page (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PAGE, Page));
+#line 3074 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 20201 "PhotoPage.c"
+ } else {
+ LibraryWindow* _tmp4_ = NULL;
+ LibraryWindow* _tmp5_ = NULL;
+#line 3076 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = library_window_get_app ();
+#line 3076 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 3076 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_window_switch_to_library_page (_tmp5_);
+#line 3076 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 20213 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_remove_from_library (LibraryPhotoPage* self) {
+ LibraryPhoto* photo = NULL;
+ Photo* _tmp0_ = NULL;
+ GeeCollection* photos = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 3079 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3080 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3080 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 3082 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 3082 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photos = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 3083 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_collection_add (photos, photo);
+#line 3085 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _ ("Remove From Library");
+#line 3085 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _ ("Removing Photo From Library");
+#line 3085 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ remove_from_app (photos, _tmp2_, _tmp3_);
+#line 3079 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photos);
+#line 3079 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 20247 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_move_to_trash (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ CollectionPage* _tmp1_ = NULL;
+ LibraryPhoto* photo = NULL;
+ Photo* _tmp4_ = NULL;
+ GeeCollection* photos = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ LibraryPhoto* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ CommandManager* _tmp22_ = NULL;
+ CommandManager* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+ TrashUntrashPhotosCommand* _tmp25_ = NULL;
+ TrashUntrashPhotosCommand* _tmp26_ = NULL;
+ LibraryWindow* _tmp27_ = NULL;
+ LibraryWindow* _tmp28_ = NULL;
+#line 3088 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3089 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3089 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp0_) {
+#line 3090 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20280 "PhotoPage.c"
+ }
+#line 3097 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = self->priv->return_page;
+#line 3097 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_EVENT_PAGE)) {
+#line 20286 "PhotoPage.c"
+ LibraryWindow* _tmp2_ = NULL;
+ LibraryWindow* _tmp3_ = NULL;
+#line 3098 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = library_window_get_app ();
+#line 3098 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 3098 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_window_set_page_switching_enabled (_tmp3_, FALSE);
+#line 3098 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 20297 "PhotoPage.c"
+ }
+#line 3101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3101 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 3103 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 3103 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photos = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 3104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = photos;
+#line 3104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo;
+#line 3104 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_collection_add (_tmp6_, _tmp7_);
+#line 3107 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_next_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 3111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = photo;
+#line 3111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 3111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_SOURCE, DataSource));
+#line 3111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 3111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 3111 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp12_) {
+#line 20329 "PhotoPage.c"
+ LibraryWindow* _tmp13_ = NULL;
+ LibraryWindow* _tmp14_ = NULL;
+ GtkWindow* _tmp15_ = NULL;
+ GtkWindow* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ LibraryWindow* _tmp20_ = NULL;
+ LibraryWindow* _tmp21_ = NULL;
+#line 3114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = library_window_get_app ();
+#line 3114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 3114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_window_set_page_switching_enabled (_tmp14_, TRUE);
+#line 3114 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 3116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 3116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_FULLSCREEN_WINDOW);
+#line 3116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 3116 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp17_) {
+#line 20355 "PhotoPage.c"
+ GtkWindow* _tmp18_ = NULL;
+ FullscreenWindow* _tmp19_ = NULL;
+#line 3117 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3117 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_FULLSCREEN_WINDOW, FullscreenWindow);
+#line 3117 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ fullscreen_window_close (_tmp19_);
+#line 3117 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 20366 "PhotoPage.c"
+ }
+#line 3119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = library_window_get_app ();
+#line 3119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = _tmp20_;
+#line 3119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_window_switch_to_library_page (_tmp21_);
+#line 3119 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 20376 "PhotoPage.c"
+ }
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = _tmp22_;
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = photos;
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = trash_untrash_photos_command_new (_tmp24_, TRUE);
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_;
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_COMMAND, Command));
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp26_);
+#line 3122 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp23_);
+#line 3123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = library_window_get_app ();
+#line 3123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = _tmp27_;
+#line 3123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_window_set_page_switching_enabled (_tmp28_, TRUE);
+#line 3123 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 3088 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photos);
+#line 3088 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 20406 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_flag_unflag (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+#line 3126 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3127 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3127 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 20418 "PhotoPage.c"
+ GeeArrayList* photo_list = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ CommandManager* _tmp5_ = NULL;
+ CommandManager* _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ FlagUnflagCommand* _tmp11_ = NULL;
+ FlagUnflagCommand* _tmp12_ = NULL;
+#line 3128 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 3128 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo_list = _tmp1_;
+#line 3129 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = photo_list;
+#line 3129 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3129 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 3129 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource));
+#line 3129 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = photo_list;
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_FLAGGABLE, Flaggable));
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = flag_unflag_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), !_tmp10_);
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_COMMAND, Command));
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 3130 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp6_);
+#line 3127 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo_list);
+#line 20472 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_photo_destroyed (LibraryPhotoPage* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+#line 3135 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3135 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 3136 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = source;
+#line 3136 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_photo_removed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 20487 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_photo_removed (LibraryPhotoPage* self, LibraryPhoto* photo) {
+ gboolean _tmp0_ = FALSE;
+ LibraryPhoto* _tmp1_ = NULL;
+ ViewCollection* view = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+ Marker* _tmp13_ = NULL;
+ Marker* _tmp14_ = NULL;
+ LibraryPhoto* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 3139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = photo;
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_ == NULL) {
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 20519 "PhotoPage.c"
+ } else {
+ LibraryPhoto* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = photo;
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource));
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = !_tmp5_;
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 20537 "PhotoPage.c"
+ }
+#line 3141 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 3142 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20543 "PhotoPage.c"
+ }
+#line 3145 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_on_next_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 3147 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3147 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ view = _tmp6_;
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = view;
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = view;
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = view;
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = photo;
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = view_collection_get_view_for_source (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_SOURCE, DataSource));
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection), _tmp14_);
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 3148 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 3149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = photo;
+#line 3149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = _tmp16_;
+#line 3149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_SOURCE, DataSource));
+#line 3149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 3149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp17_);
+#line 3149 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp19_) {
+#line 20587 "PhotoPage.c"
+ LibraryWindow* _tmp20_ = NULL;
+ LibraryWindow* _tmp21_ = NULL;
+#line 3152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = library_window_get_app ();
+#line 3152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = _tmp20_;
+#line 3152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_window_switch_to_library_page (_tmp21_);
+#line 3152 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 20598 "PhotoPage.c"
+ }
+#line 3139 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (view);
+#line 20602 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_print (LibraryPhotoPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 3156 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 3157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 3157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_ > 0;
+#line 3157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 3157 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 20625 "PhotoPage.c"
+ PrintManager* _tmp4_ = NULL;
+ PrintManager* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = print_manager_get_instance ();
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = view_collection_get_selected_sources_of_type (_tmp7_, TYPE_PHOTO);
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ print_manager_spool_photo (_tmp5_, _tmp9_);
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 3158 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _print_manager_unref0 (_tmp5_);
+#line 20652 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_external_app_changed (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 3163 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp1_) {
+#line 20666 "PhotoPage.c"
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 3165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 3165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 3165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = configuration_facade_get_external_photo_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 3165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 3165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = g_strcmp0 (_tmp5_, "") != 0;
+#line 3165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp5_);
+#line 3165 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 20685 "PhotoPage.c"
+ } else {
+#line 3164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 20689 "PhotoPage.c"
+ }
+#line 3164 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ExternalEdit", _tmp0_);
+#line 20693 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_external_edit (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 3168 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3169 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp0_) {
+#line 3170 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20708 "PhotoPage.c"
+ }
+ {
+ AppWindow* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ AppWindow* _tmp5_ = NULL;
+ AppWindow* _tmp6_ = NULL;
+#line 3173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = app_window_get_instance ();
+#line 3173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 3173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PAGE_WINDOW, PageWindow));
+#line 3173 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 3174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 3174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo_open_with_external_editor (_tmp4_, &_inner_error_);
+#line 3174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3174 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 20735 "PhotoPage.c"
+ goto __catch238_g_error;
+ }
+#line 3175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = app_window_get_instance ();
+#line 3175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 3175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PAGE_WINDOW, PageWindow));
+#line 3175 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 20746 "PhotoPage.c"
+ }
+ goto __finally238;
+ __catch238_g_error:
+ {
+ GError* err = NULL;
+ AppWindow* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+ GError* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+#line 3172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 3172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 3177 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 3177 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 3177 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE_WINDOW, PageWindow));
+#line 3177 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 3178 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = err;
+#line 3178 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3178 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_;
+#line 3178 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ open_external_editor_error_dialog (_tmp9_, _tmp11_);
+#line 3178 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 3172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 20781 "PhotoPage.c"
+ }
+ __finally238:
+#line 3172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 3172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 3172 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20792 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_external_edit_raw (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 3183 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3184 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3184 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp0_) {
+#line 3185 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20812 "PhotoPage.c"
+ }
+#line 3187 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3187 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 3187 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = photo_get_master_file_format (_tmp2_);
+#line 3187 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_ != PHOTO_FILE_FORMAT_RAW;
+#line 3187 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 3187 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_) {
+#line 3188 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20828 "PhotoPage.c"
+ }
+ {
+ AppWindow* _tmp5_ = NULL;
+ AppWindow* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ AppWindow* _tmp9_ = NULL;
+ AppWindow* _tmp10_ = NULL;
+#line 3191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = app_window_get_instance ();
+#line 3191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 3191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PAGE_WINDOW, PageWindow));
+#line 3191 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 3192 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3192 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 3192 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo_open_with_raw_external_editor (_tmp8_, &_inner_error_);
+#line 3192 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 3192 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 20855 "PhotoPage.c"
+ goto __catch239_g_error;
+ }
+#line 3193 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = app_window_get_instance ();
+#line 3193 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 3193 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PAGE_WINDOW, PageWindow));
+#line 3193 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 20866 "PhotoPage.c"
+ }
+ goto __finally239;
+ __catch239_g_error:
+ {
+ GError* err = NULL;
+ AppWindow* _tmp11_ = NULL;
+ AppWindow* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 3190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 3190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 3195 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = app_window_get_instance ();
+#line 3195 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 3195 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PAGE_WINDOW, PageWindow));
+#line 3195 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 3196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = err;
+#line 3196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = resources_launch_editor_failed (_tmp13_);
+#line 3196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_;
+#line 3196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ app_window_error_message (_tmp15_, NULL);
+#line 3196 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp15_);
+#line 3190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 20901 "PhotoPage.c"
+ }
+ __finally239:
+#line 3190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 3190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 3190 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20912 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_send_to (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+#line 3200 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3201 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3201 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 20925 "PhotoPage.c"
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 3202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 3202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = view_collection_get_selected_sources (_tmp2_);
+#line 3202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 3202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ desktop_integration_send_to (_tmp4_);
+#line 3202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3202 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 20944 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_export (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ ExportDialog* export_dialog = NULL;
+ const gchar* _tmp1_ = NULL;
+ ExportDialog* _tmp2_ = NULL;
+ gint scale = 0;
+ ScaleConstraint constraint = 0;
+ ExportFormatParameters export_params = {0};
+ ExportFormatParameters _tmp3_ = {0};
+ ExportDialog* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ ScaleConstraint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ GFile* save_as = NULL;
+ Photo* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ ExportFormatParameters _tmp10_ = {0};
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ Scaling scaling = {0};
+ ScaleConstraint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ Scaling _tmp18_ = {0};
+ GError * _inner_error_ = NULL;
+#line 3205 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3206 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3206 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp0_) {
+#line 3207 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 20984 "PhotoPage.c"
+ }
+#line 3209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _ ("Export Photo");
+#line 3209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = export_dialog_new (_tmp1_);
+#line 3209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_object_ref_sink (_tmp2_);
+#line 3209 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ export_dialog = _tmp2_;
+#line 3213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ export_format_parameters_last (&_tmp3_);
+#line 3213 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ export_params = _tmp3_;
+#line 3214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = export_dialog;
+#line 3214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = export_dialog_execute (_tmp4_, &_tmp5_, &_tmp6_, &export_params);
+#line 3214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scale = _tmp5_;
+#line 3214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ constraint = _tmp6_;
+#line 3214 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp7_) {
+#line 3215 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 3215 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 21012 "PhotoPage.c"
+ }
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = export_params;
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = photo_get_export_basename_for_parameters (_tmp9_, &_tmp10_);
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = export_ui_choose_file (_tmp12_);
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp12_);
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 3217 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ save_as = _tmp14_;
+#line 3219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = save_as;
+#line 3219 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp15_ == NULL) {
+#line 3220 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (save_as);
+#line 3220 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 3220 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 21044 "PhotoPage.c"
+ }
+#line 3222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = constraint;
+#line 3222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = scale;
+#line 3222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling_for_constraint (_tmp16_, _tmp17_, FALSE, &_tmp18_);
+#line 3222 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ scaling = _tmp18_;
+#line 21054 "PhotoPage.c"
+ {
+ Photo* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ Scaling _tmp22_ = {0};
+ ExportFormatParameters _tmp23_ = {0};
+ JpegQuality _tmp24_ = 0;
+ Photo* _tmp25_ = NULL;
+ Photo* _tmp26_ = NULL;
+ ExportFormatParameters _tmp27_ = {0};
+ PhotoFileFormat _tmp28_ = 0;
+ ExportFormatParameters _tmp29_ = {0};
+ ExportFormatMode _tmp30_ = 0;
+ ExportFormatParameters _tmp31_ = {0};
+ gboolean _tmp32_ = FALSE;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = save_as;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = scaling;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = export_params;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = _tmp23_.quality;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = export_params;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = photo_get_export_format_for_parameters (_tmp26_, &_tmp27_);
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp29_ = export_params;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp30_ = _tmp29_.mode;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp31_ = export_params;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp32_ = _tmp31_.export_metadata;
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo_export (_tmp20_, _tmp21_, &_tmp22_, _tmp24_, _tmp28_, _tmp30_ == EXPORT_FORMAT_MODE_UNMODIFIED, _tmp32_, &_inner_error_);
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp26_);
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 3225 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 21106 "PhotoPage.c"
+ goto __catch240_g_error;
+ }
+ }
+ goto __finally240;
+ __catch240_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ GError* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ err = _inner_error_;
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _inner_error_ = NULL;
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp33_ = _ ("Unable to export %s: %s");
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp34_ = save_as;
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp35_ = g_file_get_path (_tmp34_);
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp36_ = _tmp35_;
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp37_ = err;
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp38_ = _tmp37_->message;
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp39_ = g_strdup_printf (_tmp33_, _tmp36_, _tmp38_);
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp40_ = _tmp39_;
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ app_window_error_message (_tmp40_, NULL);
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp40_);
+#line 3229 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_free0 (_tmp36_);
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_error_free0 (err);
+#line 21150 "PhotoPage.c"
+ }
+ __finally240:
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (save_as);
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 3224 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 21165 "PhotoPage.c"
+ }
+#line 3205 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (save_as);
+#line 3205 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 21171 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_publish (LibraryPhotoPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 3233 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3234 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3234 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 3234 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 3234 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_ > 0;
+#line 3234 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 3234 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp3_) {
+#line 21194 "PhotoPage.c"
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+#line 3235 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3235 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 3235 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = view_collection_get_selected_sources (_tmp5_);
+#line 3235 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 3235 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ publishing_ui_publishing_dialog_go (_tmp7_);
+#line 3235 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 3235 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 21213 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_view_menu (LibraryPhotoPage* self) {
+#line 3239 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3240 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_zoom_menu_item_sensitivity (self);
+#line 21223 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_increase_rating (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ SetRatingSingleCommand* command = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ SetRatingSingleCommand* _tmp5_ = NULL;
+ SetRatingSingleCommand* _tmp6_ = NULL;
+ CommandManager* _tmp7_ = NULL;
+ CommandManager* _tmp8_ = NULL;
+ SetRatingSingleCommand* _tmp9_ = NULL;
+#line 3243 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 3244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 21246 "PhotoPage.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 3244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp2_;
+#line 21253 "PhotoPage.c"
+ }
+#line 3244 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 3245 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 21259 "PhotoPage.c"
+ }
+#line 3247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 3247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = set_rating_single_command_new_inc_dec (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource), TRUE);
+#line 3247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 3247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3247 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp6_;
+#line 3248 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3248 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 3248 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = command;
+#line 3248 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_COMMAND, Command));
+#line 3248 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp8_);
+#line 3250 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_rating_menu_item_sensitivity (self);
+#line 3243 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 21287 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_decrease_rating (LibraryPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ SetRatingSingleCommand* command = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ SetRatingSingleCommand* _tmp5_ = NULL;
+ SetRatingSingleCommand* _tmp6_ = NULL;
+ CommandManager* _tmp7_ = NULL;
+ CommandManager* _tmp8_ = NULL;
+ SetRatingSingleCommand* _tmp9_ = NULL;
+#line 3253 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 3254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 21310 "PhotoPage.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 3254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp2_;
+#line 21317 "PhotoPage.c"
+ }
+#line 3254 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 3255 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 21323 "PhotoPage.c"
+ }
+#line 3257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 3257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = set_rating_single_command_new_inc_dec (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource), FALSE);
+#line 3257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 3257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3257 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp6_;
+#line 3258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 3258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = command;
+#line 3258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_COMMAND, Command));
+#line 3258 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp8_);
+#line 3260 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_rating_menu_item_sensitivity (self);
+#line 3253 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 21351 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_set_rating (LibraryPhotoPage* self, Rating rating) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ SetRatingSingleCommand* command = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Rating _tmp5_ = 0;
+ SetRatingSingleCommand* _tmp6_ = NULL;
+ SetRatingSingleCommand* _tmp7_ = NULL;
+ CommandManager* _tmp8_ = NULL;
+ CommandManager* _tmp9_ = NULL;
+ SetRatingSingleCommand* _tmp10_ = NULL;
+#line 3263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (!_tmp1_) {
+#line 3264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 21375 "PhotoPage.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 3264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp2_;
+#line 21382 "PhotoPage.c"
+ }
+#line 3264 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 3265 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 21388 "PhotoPage.c"
+ }
+#line 3267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 3267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = rating;
+#line 3267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = set_rating_single_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource), _tmp5_);
+#line 3267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 3267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3267 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command = _tmp7_;
+#line 3268 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3268 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 3268 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = command;
+#line 3268 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_COMMAND, Command));
+#line 3268 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp9_);
+#line 3270 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_update_rating_menu_item_sensitivity (self);
+#line 3263 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (command);
+#line 21418 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_rate_rejected (LibraryPhotoPage* self) {
+#line 3273 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3274 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_set_rating (self, RATING_REJECTED);
+#line 21427 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_rate_unrated (LibraryPhotoPage* self) {
+#line 3277 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3278 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_set_rating (self, RATING_UNRATED);
+#line 21436 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_rate_one (LibraryPhotoPage* self) {
+#line 3281 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3282 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_set_rating (self, RATING_ONE);
+#line 21445 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_rate_two (LibraryPhotoPage* self) {
+#line 3285 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3286 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_set_rating (self, RATING_TWO);
+#line 21454 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_rate_three (LibraryPhotoPage* self) {
+#line 3289 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3290 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_set_rating (self, RATING_THREE);
+#line 21463 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_rate_four (LibraryPhotoPage* self) {
+#line 3293 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3294 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_set_rating (self, RATING_FOUR);
+#line 21472 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_rate_five (LibraryPhotoPage* self) {
+#line 3297 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3298 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_on_set_rating (self, RATING_FIVE);
+#line 21481 "PhotoPage.c"
+}
+
+
+static void library_photo_page_update_rating_menu_item_sensitivity (LibraryPhotoPage* self) {
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Rating _tmp5_ = 0;
+ Photo* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Rating _tmp8_ = 0;
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ Rating _tmp11_ = 0;
+ Photo* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+ Rating _tmp14_ = 0;
+ Photo* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ Rating _tmp17_ = 0;
+ Photo* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ Rating _tmp20_ = 0;
+ Photo* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ Rating _tmp23_ = 0;
+ gboolean _tmp24_ = FALSE;
+ Photo* _tmp25_ = NULL;
+ Photo* _tmp26_ = NULL;
+ Rating _tmp27_ = 0;
+ gboolean _tmp28_ = FALSE;
+#line 3301 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3302 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3302 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 3302 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3302 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateRejected", _tmp2_ != RATING_REJECTED);
+#line 3302 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 3303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateUnrated", _tmp5_ != RATING_UNRATED);
+#line 3303 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 3304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateOne", _tmp8_ != RATING_ONE);
+#line 3304 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 3305 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3305 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 3305 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3305 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateTwo", _tmp11_ != RATING_TWO);
+#line 3305 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 3306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp12_;
+#line 3306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateThree", _tmp14_ != RATING_THREE);
+#line 3306 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp13_);
+#line 3307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 3307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFour", _tmp17_ != RATING_FOUR);
+#line 3307 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 3308 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3308 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 3308 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3308 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RateFive", _tmp20_ != RATING_FIVE);
+#line 3308 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 3309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp21_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 3309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp23_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp24_ = rating_can_increase (_tmp23_);
+#line 3309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseRating", _tmp24_);
+#line 3309 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 3310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp25_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp26_ = _tmp25_;
+#line 3310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp27_ = media_source_get_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp28_ = rating_can_decrease (_tmp27_);
+#line 3310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseRating", _tmp28_);
+#line 3310 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp26_);
+#line 21611 "PhotoPage.c"
+}
+
+
+static void library_photo_page_update_development_menu_item_sensitivity (LibraryPhotoPage* self) {
+ PhotoFileFormat format = 0;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ PhotoFileFormat _tmp3_ = 0;
+ PhotoFileFormat _tmp4_ = 0;
+ PhotoFileFormat _tmp5_ = 0;
+#line 3313 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 3314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = photo_get_master_file_format (_tmp1_);
+#line 3314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 3314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3314 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ format = _tmp3_;
+#line 3315 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = format;
+#line 3315 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloper", _tmp4_ == PHOTO_FILE_FORMAT_RAW);
+#line 3317 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = format;
+#line 3317 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_ == PHOTO_FILE_FORMAT_RAW) {
+#line 21645 "PhotoPage.c"
+ Photo* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ Photo* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ Photo* _tmp17_ = NULL;
+ Photo* _tmp18_ = NULL;
+ RawDeveloper _tmp19_ = 0;
+ RawDeveloper _tmp20_ = 0;
+#line 3319 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3319 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 3319 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = photo_is_raw_developer_available (_tmp7_, RAW_DEVELOPER_SHOTWELL);
+#line 3319 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloperShotwell", _tmp8_);
+#line 3319 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 3322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = _tmp10_;
+#line 3322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = photo_is_raw_developer_available (_tmp11_, RAW_DEVELOPER_EMBEDDED);
+#line 3322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = _tmp12_;
+#line 3322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 3322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp13_) {
+#line 3322 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = TRUE;
+#line 21682 "PhotoPage.c"
+ } else {
+ Photo* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 3323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = _tmp14_;
+#line 3323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = photo_is_raw_developer_available (_tmp15_, RAW_DEVELOPER_CAMERA);
+#line 3323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = _tmp16_;
+#line 3323 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 21697 "PhotoPage.c"
+ }
+#line 3321 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloperCamera", _tmp9_);
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_;
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp19_ = photo_get_raw_developer (_tmp18_);
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ switch (_tmp20_) {
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ case RAW_DEVELOPER_SHOTWELL:
+#line 21715 "PhotoPage.c"
+ {
+#line 3328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloperShotwell");
+#line 3329 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 21721 "PhotoPage.c"
+ }
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ case RAW_DEVELOPER_CAMERA:
+#line 3326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ case RAW_DEVELOPER_EMBEDDED:
+#line 21727 "PhotoPage.c"
+ {
+#line 3333 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RawDeveloperCamera");
+#line 3334 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ break;
+#line 21733 "PhotoPage.c"
+ }
+ default:
+ {
+#line 3337 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_assert_not_reached ();
+#line 21739 "PhotoPage.c"
+ }
+ }
+ }
+}
+
+
+static void library_photo_page_on_metadata_altered (LibraryPhotoPage* self, GeeMap* map) {
+ gboolean _tmp0_ = FALSE;
+ GeeMap* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 3342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3342 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = map;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = gee_map_has_key (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp5_) {
+#line 21771 "PhotoPage.c"
+ GeeMap* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Alteration* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = map;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = gee_map_get (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_OBJECT, DataObject));
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = (Alteration*) _tmp9_;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = alteration_has_subject (_tmp10_, "metadata");
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = _tmp11_;
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _alteration_unref0 (_tmp10_);
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 21796 "PhotoPage.c"
+ } else {
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 21800 "PhotoPage.c"
+ }
+#line 3343 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp0_) {
+#line 3344 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ single_photo_page_repaint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), NULL);
+#line 21806 "PhotoPage.c"
+ }
+}
+
+
+static void library_photo_page_on_add_tags (LibraryPhotoPage* self) {
+ AddTagsDialog* dialog = NULL;
+ AddTagsDialog* _tmp0_ = NULL;
+ gchar** names = NULL;
+ AddTagsDialog* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gchar** _tmp3_ = NULL;
+ gint names_length1 = 0;
+ gint _names_size_ = 0;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 3347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = add_tags_dialog_new ();
+#line 3348 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dialog = _tmp0_;
+#line 3349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = dialog;
+#line 3349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = add_tags_dialog_execute (_tmp1_, &_tmp2_);
+#line 3349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ names = _tmp3_;
+#line 3349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ names_length1 = _tmp2_;
+#line 3349 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _names_size_ = names_length1;
+#line 3350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = names;
+#line 3350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4__length1 = names_length1;
+#line 3350 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp4_ != NULL) {
+#line 21844 "PhotoPage.c"
+ CommandManager* _tmp5_ = NULL;
+ CommandManager* _tmp6_ = NULL;
+ HierarchicalTagIndex* _tmp7_ = NULL;
+ HierarchicalTagIndex* _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gint _tmp10_ = 0;
+ gchar** _tmp11_ = NULL;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ GeeList* _tmp15_ = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ AddTagsCommand* _tmp17_ = NULL;
+ AddTagsCommand* _tmp18_ = NULL;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = hierarchical_tag_index_get_global_index ();
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = names;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9__length1 = names_length1;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = hierarchical_tag_index_get_paths_for_names_array (_tmp8_, _tmp9_, _tmp9__length1, &_tmp10_);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12__length1 = _tmp10_;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = view_collection_get_selected_sources (_tmp14_);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp17_ = add_tags_command_new (_tmp12_, _tmp10_, _tmp16_);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp18_ = _tmp17_;
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_COMMAND, Command));
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp18_);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _hierarchical_tag_index_unref0 (_tmp8_);
+#line 3351 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp6_);
+#line 21905 "PhotoPage.c"
+ }
+#line 3347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+#line 3347 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 21911 "PhotoPage.c"
+}
+
+
+static void library_photo_page_on_modify_tags (LibraryPhotoPage* self) {
+ LibraryPhoto* photo = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ DataView* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ LibraryPhoto* _tmp5_ = NULL;
+ ModifyTagsDialog* dialog = NULL;
+ LibraryPhoto* _tmp6_ = NULL;
+ ModifyTagsDialog* _tmp7_ = NULL;
+ GeeArrayList* new_tags = NULL;
+ ModifyTagsDialog* _tmp8_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ LibraryPhoto* _tmp13_ = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ ModifyTagsCommand* _tmp15_ = NULL;
+ ModifyTagsCommand* _tmp16_ = NULL;
+#line 3357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO_PAGE (self));
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = view_collection_get_selected_at (_tmp1_, 0);
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = data_view_get_source (_tmp3_);
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_LIBRARY_PHOTO, LibraryPhoto);
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 3358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ photo = _tmp5_;
+#line 3360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp6_ = photo;
+#line 3360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp7_ = modify_tags_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 3360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ dialog = _tmp7_;
+#line 3361 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp8_ = dialog;
+#line 3361 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp9_ = modify_tags_dialog_execute (_tmp8_);
+#line 3361 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ new_tags = _tmp9_;
+#line 3363 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp10_ = new_tags;
+#line 3363 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ if (_tmp10_ == NULL) {
+#line 3364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (new_tags);
+#line 3364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 3364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 3364 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return;
+#line 21980 "PhotoPage.c"
+ }
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp11_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp13_ = photo;
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp14_ = new_tags;
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp15_ = modify_tags_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_MEDIA_SOURCE, MediaSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ command_manager_execute (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_COMMAND, Command));
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 3366 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _command_manager_unref0 (_tmp12_);
+#line 3357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (new_tags);
+#line 3357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 3357 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 22006 "PhotoPage.c"
+}
+
+
+static gboolean library_photo_page_library_photo_page_view_filter_real_predicate (ViewFilter* base, DataView* view) {
+ LibraryPhotoPageLibraryPhotoPageViewFilter * self;
+ gboolean result = FALSE;
+ DataView* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 2329 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER, LibraryPhotoPageLibraryPhotoPageViewFilter);
+#line 2329 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = view;
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp1_ = data_view_get_source (_tmp0_);
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp3_ = media_source_is_trashed (_tmp2_);
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = !_tmp3_;
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ result = _tmp4_;
+#line 2330 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return result;
+#line 22038 "PhotoPage.c"
+}
+
+
+static LibraryPhotoPageLibraryPhotoPageViewFilter* library_photo_page_library_photo_page_view_filter_construct (GType object_type) {
+ LibraryPhotoPageLibraryPhotoPageViewFilter* self = NULL;
+#line 2328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = (LibraryPhotoPageLibraryPhotoPageViewFilter*) view_filter_construct (object_type);
+#line 2328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return self;
+#line 22048 "PhotoPage.c"
+}
+
+
+static LibraryPhotoPageLibraryPhotoPageViewFilter* library_photo_page_library_photo_page_view_filter_new (void) {
+#line 2328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ return library_photo_page_library_photo_page_view_filter_construct (LIBRARY_PHOTO_PAGE_TYPE_LIBRARY_PHOTO_PAGE_VIEW_FILTER);
+#line 22055 "PhotoPage.c"
+}
+
+
+static void library_photo_page_library_photo_page_view_filter_class_init (LibraryPhotoPageLibraryPhotoPageViewFilterClass * klass) {
+#line 2328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_library_photo_page_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 2328 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((ViewFilterClass *) klass)->predicate = library_photo_page_library_photo_page_view_filter_real_predicate;
+#line 22064 "PhotoPage.c"
+}
+
+
+static void library_photo_page_library_photo_page_view_filter_instance_init (LibraryPhotoPageLibraryPhotoPageViewFilter * self) {
+}
+
+
+static GType library_photo_page_library_photo_page_view_filter_get_type (void) {
+ static volatile gsize library_photo_page_library_photo_page_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&library_photo_page_library_photo_page_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryPhotoPageLibraryPhotoPageViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_photo_page_library_photo_page_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryPhotoPageLibraryPhotoPageViewFilter), 0, (GInstanceInitFunc) library_photo_page_library_photo_page_view_filter_instance_init, NULL };
+ GType library_photo_page_library_photo_page_view_filter_type_id;
+ library_photo_page_library_photo_page_view_filter_type_id = g_type_register_static (TYPE_VIEW_FILTER, "LibraryPhotoPageLibraryPhotoPageViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&library_photo_page_library_photo_page_view_filter_type_id__volatile, library_photo_page_library_photo_page_view_filter_type_id);
+ }
+ return library_photo_page_library_photo_page_view_filter_type_id__volatile;
+}
+
+
+static void library_photo_page_class_init (LibraryPhotoPageClass * klass) {
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ library_photo_page_parent_class = g_type_class_peek_parent (klass);
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_type_class_add_private (klass, sizeof (LibraryPhotoPagePrivate));
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = library_photo_page_real_init_collect_ui_filenames;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = library_photo_page_real_init_collect_action_entries;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->init_collect_toggle_action_entries = library_photo_page_real_init_collect_toggle_action_entries;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->init_collect_injection_groups = library_photo_page_real_init_collect_injection_groups;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->register_radio_actions = library_photo_page_real_register_radio_actions;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->update_actions = library_photo_page_real_update_actions;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((LibraryPhotoPageClass *) klass)->developer_changed = library_photo_page_real_developer_changed;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->switched_to = library_photo_page_real_switched_to;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->get_bottom_left_trinket = library_photo_page_real_get_bottom_left_trinket;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->get_top_right_trinket = library_photo_page_real_get_top_right_trinket;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_increase_size = library_photo_page_real_on_increase_size;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_decrease_size = library_photo_page_real_on_decrease_size;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_zoom_slider_key_press = library_photo_page_real_on_zoom_slider_key_press;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->update_ui = library_photo_page_real_update_ui;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->notify_photo_backing_missing = library_photo_page_real_notify_photo_backing_missing;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = library_photo_page_real_key_press_event;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_double_click = library_photo_page_real_on_double_click;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_left_released = library_photo_page_real_on_left_released;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_context_buttonpress = library_photo_page_real_on_context_buttonpress;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ ((PageClass *) klass)->on_context_keypress = library_photo_page_real_on_context_keypress;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_photo_page_finalize;
+#line 22131 "PhotoPage.c"
+}
+
+
+static void library_photo_page_instance_init (LibraryPhotoPage * self) {
+ LibraryPhotoPageLibraryPhotoPageViewFilter* _tmp0_ = NULL;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv = LIBRARY_PHOTO_PAGE_GET_PRIVATE (self);
+#line 2334 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->return_page = NULL;
+#line 2335 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->return_to_collection_on_release = FALSE;
+#line 2336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = library_photo_page_library_photo_page_view_filter_new ();
+#line 2336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self->priv->filter = _tmp0_;
+#line 22147 "PhotoPage.c"
+}
+
+
+static void library_photo_page_finalize (GObject* obj) {
+ LibraryPhotoPage * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ LibraryPhotoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage);
+#line 2358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp0_ = library_photo_global;
+#line 2358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 2358 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _library_photo_page_on_photo_destroyed_source_collection_item_destroyed, self);
+#line 2359 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp2_ = library_photo_global;
+#line 2359 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 2359 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _library_photo_page_on_metadata_altered_data_collection_items_altered, self);
+#line 2360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 2360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 2360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_parse_name ("external-app-changed", TYPE_CONFIGURATION_FACADE, &_tmp6_, NULL, FALSE);
+#line 2360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _library_photo_page_on_external_app_changed_configuration_facade_external_app_changed, self);
+#line 2360 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2334 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _g_object_unref0 (self->priv->return_page);
+#line 2336 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ _view_filter_unref0 (self->priv->filter);
+#line 2326 "/home/jens/Source/shotwell/src/PhotoPage.vala"
+ G_OBJECT_CLASS (library_photo_page_parent_class)->finalize (obj);
+#line 22190 "PhotoPage.c"
+}
+
+
+GType library_photo_page_get_type (void) {
+ static volatile gsize library_photo_page_type_id__volatile = 0;
+ if (g_once_init_enter (&library_photo_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryPhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryPhotoPage), 0, (GInstanceInitFunc) library_photo_page_instance_init, NULL };
+ GType library_photo_page_type_id;
+ library_photo_page_type_id = g_type_register_static (TYPE_EDITING_HOST_PAGE, "LibraryPhotoPage", &g_define_type_info, 0);
+ g_once_init_leave (&library_photo_page_type_id__volatile, library_photo_page_type_id);
+ }
+ return library_photo_page_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/PixbufCache.c b/src/PixbufCache.c
new file mode 100644
index 0000000..6a4add5
--- /dev/null
+++ b/src/PixbufCache.c
@@ -0,0 +1,2666 @@
+/* PixbufCache.c generated by valac 0.32.1, the Vala compiler
+ * generated from PixbufCache.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define TYPE_PIXBUF_CACHE (pixbuf_cache_get_type ())
+#define PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXBUF_CACHE, PixbufCache))
+#define PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXBUF_CACHE, PixbufCacheClass))
+#define IS_PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXBUF_CACHE))
+#define IS_PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXBUF_CACHE))
+#define PIXBUF_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXBUF_CACHE, PixbufCacheClass))
+
+typedef struct _PixbufCache PixbufCache;
+typedef struct _PixbufCacheClass PixbufCacheClass;
+typedef struct _PixbufCachePrivate PixbufCachePrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define PIXBUF_CACHE_TYPE_PHOTO_TYPE (pixbuf_cache_photo_type_get_type ())
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define PIXBUF_CACHE_TYPE_FETCH_JOB (pixbuf_cache_fetch_job_get_type ())
+#define PIXBUF_CACHE_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob))
+#define PIXBUF_CACHE_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJobClass))
+#define PIXBUF_CACHE_IS_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIXBUF_CACHE_TYPE_FETCH_JOB))
+#define PIXBUF_CACHE_IS_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIXBUF_CACHE_TYPE_FETCH_JOB))
+#define PIXBUF_CACHE_FETCH_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJobClass))
+
+typedef struct _PixbufCacheFetchJob PixbufCacheFetchJob;
+typedef struct _PixbufCacheFetchJobClass PixbufCacheFetchJobClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _PixbufCacheFetchJobPrivate PixbufCacheFetchJobPrivate;
+
+#define PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB (pixbuf_cache_baseline_fetch_job_get_type ())
+#define PIXBUF_CACHE_BASELINE_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB, PixbufCacheBaselineFetchJob))
+#define PIXBUF_CACHE_BASELINE_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB, PixbufCacheBaselineFetchJobClass))
+#define PIXBUF_CACHE_IS_BASELINE_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB))
+#define PIXBUF_CACHE_IS_BASELINE_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB))
+#define PIXBUF_CACHE_BASELINE_FETCH_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB, PixbufCacheBaselineFetchJobClass))
+
+typedef struct _PixbufCacheBaselineFetchJob PixbufCacheBaselineFetchJob;
+typedef struct _PixbufCacheBaselineFetchJobClass PixbufCacheBaselineFetchJobClass;
+
+#define PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB (pixbuf_cache_master_fetch_job_get_type ())
+#define PIXBUF_CACHE_MASTER_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB, PixbufCacheMasterFetchJob))
+#define PIXBUF_CACHE_MASTER_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB, PixbufCacheMasterFetchJobClass))
+#define PIXBUF_CACHE_IS_MASTER_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB))
+#define PIXBUF_CACHE_IS_MASTER_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB))
+#define PIXBUF_CACHE_MASTER_FETCH_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB, PixbufCacheMasterFetchJobClass))
+
+typedef struct _PixbufCacheMasterFetchJob PixbufCacheMasterFetchJob;
+typedef struct _PixbufCacheMasterFetchJobClass PixbufCacheMasterFetchJobClass;
+
+#define PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH (pixbuf_cache_pixbuf_cache_batch_get_type ())
+#define PIXBUF_CACHE_PIXBUF_CACHE_BATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH, PixbufCachePixbufCacheBatch))
+#define PIXBUF_CACHE_PIXBUF_CACHE_BATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH, PixbufCachePixbufCacheBatchClass))
+#define PIXBUF_CACHE_IS_PIXBUF_CACHE_BATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH))
+#define PIXBUF_CACHE_IS_PIXBUF_CACHE_BATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH))
+#define PIXBUF_CACHE_PIXBUF_CACHE_BATCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH, PixbufCachePixbufCacheBatchClass))
+
+typedef struct _PixbufCachePixbufCacheBatch PixbufCachePixbufCacheBatch;
+typedef struct _PixbufCachePixbufCacheBatchClass PixbufCachePixbufCacheBatchClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+typedef struct _PixbufCachePixbufCacheBatchPrivate PixbufCachePixbufCacheBatchPrivate;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+
+#define TYPE_SEMAPHORE (semaphore_get_type ())
+#define SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEMAPHORE, Semaphore))
+#define SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEMAPHORE, SemaphoreClass))
+#define IS_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEMAPHORE))
+#define IS_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEMAPHORE))
+#define SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEMAPHORE, SemaphoreClass))
+
+typedef struct _Semaphore Semaphore;
+typedef struct _SemaphoreClass SemaphoreClass;
+#define _abstract_semaphore_unref0(var) ((var == NULL) ? NULL : (var = (abstract_semaphore_unref (var), NULL)))
+typedef struct _PixbufCacheBaselineFetchJobPrivate PixbufCacheBaselineFetchJobPrivate;
+typedef struct _PixbufCacheMasterFetchJobPrivate PixbufCacheMasterFetchJobPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _PixbufCache {
+ GObject parent_instance;
+ PixbufCachePrivate * priv;
+};
+
+struct _PixbufCacheClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ PIXBUF_CACHE_PHOTO_TYPE_BASELINE,
+ PIXBUF_CACHE_PHOTO_TYPE_MASTER
+} PixbufCachePhotoType;
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef gboolean (*PixbufCacheCacheFilter) (Photo* photo, void* user_data);
+struct _PixbufCachePrivate {
+ SourceCollection* sources;
+ PixbufCachePhotoType type;
+ gint max_count;
+ Scaling scaling;
+ PixbufCacheCacheFilter filter;
+ gpointer filter_target;
+ GeeHashMap* cache;
+ GeeArrayList* lru;
+ GeeHashMap* in_progress;
+};
+
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _PixbufCacheFetchJob {
+ BackgroundJob parent_instance;
+ PixbufCacheFetchJobPrivate * priv;
+ BackgroundJobJobPriority priority;
+ Photo* photo;
+ Scaling scaling;
+ GdkPixbuf* pixbuf;
+ GError* err;
+};
+
+struct _PixbufCacheFetchJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+struct _PixbufCachePixbufCacheBatch {
+ GeeTreeMultiMap parent_instance;
+ PixbufCachePixbufCacheBatchPrivate * priv;
+};
+
+struct _PixbufCachePixbufCacheBatchClass {
+ GeeTreeMultiMapClass parent_class;
+};
+
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+struct _PixbufCacheBaselineFetchJob {
+ PixbufCacheFetchJob parent_instance;
+ PixbufCacheBaselineFetchJobPrivate * priv;
+};
+
+struct _PixbufCacheBaselineFetchJobClass {
+ PixbufCacheFetchJobClass parent_class;
+};
+
+struct _PixbufCacheMasterFetchJob {
+ PixbufCacheFetchJob parent_instance;
+ PixbufCacheMasterFetchJobPrivate * priv;
+};
+
+struct _PixbufCacheMasterFetchJobClass {
+ PixbufCacheFetchJobClass parent_class;
+};
+
+
+static gpointer pixbuf_cache_parent_class = NULL;
+static Workers* pixbuf_cache_background_workers;
+static Workers* pixbuf_cache_background_workers = NULL;
+static gpointer pixbuf_cache_pixbuf_cache_batch_parent_class = NULL;
+static gpointer pixbuf_cache_fetch_job_parent_class = NULL;
+static gpointer pixbuf_cache_baseline_fetch_job_parent_class = NULL;
+static gpointer pixbuf_cache_master_fetch_job_parent_class = NULL;
+
+GType pixbuf_cache_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType pixbuf_cache_photo_type_get_type (void) G_GNUC_CONST;
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+static GType pixbuf_cache_fetch_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define PIXBUF_CACHE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PIXBUF_CACHE, PixbufCachePrivate))
+enum {
+ PIXBUF_CACHE_DUMMY_PROPERTY
+};
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void pixbuf_cache_on_sources_altered (PixbufCache* self, GeeMap* map);
+static void _pixbuf_cache_on_sources_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void pixbuf_cache_on_sources_removed (PixbufCache* self, GeeIterable* removed);
+static void _pixbuf_cache_on_sources_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self);
+void background_job_cancel (BackgroundJob* self);
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+PixbufCache* pixbuf_cache_new (SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target);
+PixbufCache* pixbuf_cache_construct (GType object_type, SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target);
+guint workers_thread_per_cpu_minus_one (void);
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+void pixbuf_cache_get_scaling (PixbufCache* self, Scaling* result);
+GdkPixbuf* pixbuf_cache_get_ready_pixbuf (PixbufCache* self, Photo* photo);
+static GdkPixbuf* pixbuf_cache_get_cached (PixbufCache* self, Photo* photo);
+GdkPixbuf* pixbuf_cache_fetch (PixbufCache* self, Photo* photo, GError** error);
+GFile* photo_get_actual_file (Photo* self);
+static void pixbuf_cache_decache (PixbufCache* self, Photo* photo);
+void background_job_wait_for_completion (BackgroundJob* self);
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+static void pixbuf_cache_encache (PixbufCache* self, Photo* photo, GdkPixbuf* pixbuf);
+void pixbuf_cache_drop (PixbufCache* self, Photo* photo);
+gboolean pixbuf_cache_cancel_prefetch (PixbufCache* self, Photo* photo);
+void pixbuf_cache_prefetch (PixbufCache* self, Photo* photo, BackgroundJobJobPriority priority, gboolean force);
+static void pixbuf_cache_prioritize (PixbufCache* self, Photo* photo);
+static void pixbuf_cache_on_fetched (PixbufCache* self, BackgroundJob* j);
+static void _pixbuf_cache_on_fetched_completion_callback (BackgroundJob* job, gpointer self);
+static PixbufCacheBaselineFetchJob* pixbuf_cache_baseline_fetch_job_new (PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target);
+static PixbufCacheBaselineFetchJob* pixbuf_cache_baseline_fetch_job_construct (GType object_type, PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target);
+static GType pixbuf_cache_baseline_fetch_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static PixbufCacheMasterFetchJob* pixbuf_cache_master_fetch_job_new (PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target);
+static PixbufCacheMasterFetchJob* pixbuf_cache_master_fetch_job_construct (GType object_type, PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target);
+static GType pixbuf_cache_master_fetch_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+void workers_enqueue (Workers* self, BackgroundJob* job);
+void pixbuf_cache_prefetch_many (PixbufCache* self, GeeCollection* photos, BackgroundJobJobPriority priority, gboolean force);
+GType pixbuf_cache_pixbuf_cache_batch_get_type (void) G_GNUC_CONST;
+void pixbuf_cache_prefetch_batch (PixbufCache* self, PixbufCachePixbufCacheBatch* batch, gboolean force);
+void pixbuf_cache_cancel_all (PixbufCache* self);
+gchar* data_object_to_string (DataObject* self);
+gboolean alteration_has_subject (Alteration* self, const gchar* subject);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+enum {
+ PIXBUF_CACHE_PIXBUF_CACHE_BATCH_DUMMY_PROPERTY
+};
+PixbufCachePixbufCacheBatch* pixbuf_cache_pixbuf_cache_batch_new (void);
+PixbufCachePixbufCacheBatch* pixbuf_cache_pixbuf_cache_batch_construct (GType object_type);
+gint background_job_job_priority_compare_func (void* a, void* b);
+static gint _background_job_job_priority_compare_func_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+enum {
+ PIXBUF_CACHE_FETCH_JOB_DUMMY_PROPERTY
+};
+static PixbufCacheFetchJob* pixbuf_cache_fetch_job_construct (GType object_type, PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target);
+Semaphore* semaphore_new (void);
+Semaphore* semaphore_construct (GType object_type);
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+GType semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+static BackgroundJobJobPriority pixbuf_cache_fetch_job_real_get_priority (BackgroundJob* base);
+static void pixbuf_cache_fetch_job_finalize (BackgroundJob* obj);
+enum {
+ PIXBUF_CACHE_BASELINE_FETCH_JOB_DUMMY_PROPERTY
+};
+static void pixbuf_cache_baseline_fetch_job_real_execute (BackgroundJob* base);
+enum {
+ PIXBUF_CACHE_MASTER_FETCH_JOB_DUMMY_PROPERTY
+};
+static void pixbuf_cache_master_fetch_job_real_execute (BackgroundJob* base);
+GdkPixbuf* photo_get_master_pixbuf (Photo* self, Scaling* scaling, gboolean rotate, GError** error);
+static void pixbuf_cache_finalize (GObject* obj);
+
+
+static void _pixbuf_cache_on_sources_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 111 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_on_sources_altered ((PixbufCache*) self, items);
+#line 478 "PixbufCache.c"
+}
+
+
+static void _pixbuf_cache_on_sources_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self) {
+#line 112 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_on_sources_removed ((PixbufCache*) self, removed);
+#line 485 "PixbufCache.c"
+}
+
+
+GType pixbuf_cache_photo_type_get_type (void) {
+ static volatile gsize pixbuf_cache_photo_type_type_id__volatile = 0;
+ if (g_once_init_enter (&pixbuf_cache_photo_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{PIXBUF_CACHE_PHOTO_TYPE_BASELINE, "PIXBUF_CACHE_PHOTO_TYPE_BASELINE", "baseline"}, {PIXBUF_CACHE_PHOTO_TYPE_MASTER, "PIXBUF_CACHE_PHOTO_TYPE_MASTER", "master"}, {0, NULL, NULL}};
+ GType pixbuf_cache_photo_type_type_id;
+ pixbuf_cache_photo_type_type_id = g_enum_register_static ("PixbufCachePhotoType", values);
+ g_once_init_leave (&pixbuf_cache_photo_type_type_id__volatile, pixbuf_cache_photo_type_type_id);
+ }
+ return pixbuf_cache_photo_type_type_id__volatile;
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 87 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 504 "PixbufCache.c"
+}
+
+
+PixbufCache* pixbuf_cache_construct (GType object_type, SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target) {
+ PixbufCache * self = NULL;
+ SourceCollection* _tmp0_ = NULL;
+ SourceCollection* _tmp1_ = NULL;
+ PixbufCachePhotoType _tmp2_ = 0;
+ Scaling _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ PixbufCacheCacheFilter _tmp5_ = NULL;
+ void* _tmp5__target = NULL;
+ gint _tmp6_ = 0;
+ Workers* _tmp7_ = NULL;
+ PixbufCachePhotoType _tmp10_ = 0;
+ SourceCollection* _tmp12_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
+#line 85 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 85 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = (PixbufCache*) g_object_new (object_type, NULL);
+#line 87 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = sources;
+#line 87 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 87 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 87 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->sources = _tmp1_;
+#line 88 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = type;
+#line 88 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->type = _tmp2_;
+#line 89 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = *scaling;
+#line 89 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->scaling = _tmp3_;
+#line 90 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = max_count;
+#line 90 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->max_count = _tmp4_;
+#line 91 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = filter;
+#line 91 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5__target = filter_target;
+#line 91 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->filter = _tmp5_;
+#line 91 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->filter_target = _tmp5__target;
+#line 93 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = max_count;
+#line 93 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp6_ > 0, "max_count > 0");
+#line 95 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = pixbuf_cache_background_workers;
+#line 95 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp7_ == NULL) {
+#line 563 "PixbufCache.c"
+ guint _tmp8_ = 0U;
+ Workers* _tmp9_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = workers_thread_per_cpu_minus_one ();
+#line 96 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = workers_new (_tmp8_, FALSE);
+#line 96 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _workers_unref0 (pixbuf_cache_background_workers);
+#line 96 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_background_workers = _tmp9_;
+#line 574 "PixbufCache.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = type;
+#line 100 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp10_ != PIXBUF_CACHE_PHOTO_TYPE_MASTER) {
+#line 580 "PixbufCache.c"
+ SourceCollection* _tmp11_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = sources;
+#line 101 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _pixbuf_cache_on_sources_altered_data_collection_items_altered, self, 0);
+#line 586 "PixbufCache.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = sources;
+#line 102 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_COLLECTION, DataCollection), "items-removed", (GCallback) _pixbuf_cache_on_sources_removed_data_collection_items_removed, self, 0);
+#line 85 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self;
+#line 594 "PixbufCache.c"
+}
+
+
+PixbufCache* pixbuf_cache_new (SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target) {
+#line 85 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return pixbuf_cache_construct (TYPE_PIXBUF_CACHE, sources, type, scaling, max_count, filter, filter_target);
+#line 601 "PixbufCache.c"
+}
+
+
+void pixbuf_cache_get_scaling (PixbufCache* self, Scaling* result) {
+ Scaling _tmp0_ = {0};
+#line 118 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 119 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priv->scaling;
+#line 119 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ *result = _tmp0_;
+#line 119 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 615 "PixbufCache.c"
+}
+
+
+GdkPixbuf* pixbuf_cache_get_ready_pixbuf (PixbufCache* self, Photo* photo) {
+ GdkPixbuf* result = NULL;
+ Photo* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PIXBUF_CACHE (self), NULL);
+#line 123 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 124 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = photo;
+#line 124 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = pixbuf_cache_get_cached (self, _tmp0_);
+#line 124 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = _tmp1_;
+#line 124 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 635 "PixbufCache.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 642 "PixbufCache.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 649 "PixbufCache.c"
+}
+
+
+GdkPixbuf* pixbuf_cache_fetch (PixbufCache* self, Photo* photo, GError** error) {
+ GdkPixbuf* result = NULL;
+ Photo* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ GdkPixbuf* pixbuf = NULL;
+ Photo* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ PixbufCacheFetchJob* job = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ PixbufCacheFetchJob* _tmp12_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+ Photo* _tmp23_ = NULL;
+ Scaling _tmp24_ = {0};
+ GdkPixbuf* _tmp25_ = NULL;
+ GdkPixbuf* _tmp26_ = NULL;
+ Photo* _tmp27_ = NULL;
+ GdkPixbuf* _tmp28_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PIXBUF_CACHE (self), NULL);
+#line 129 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 130 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = photo;
+#line 130 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = photo_get_actual_file (_tmp0_);
+#line 130 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = _tmp1_;
+#line 130 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = g_file_query_exists (_tmp2_, NULL);
+#line 130 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = !_tmp3_;
+#line 130 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp2_);
+#line 130 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp4_) {
+#line 695 "PixbufCache.c"
+ Photo* _tmp5_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = photo;
+#line 131 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_decache (self, _tmp5_);
+#line 701 "PixbufCache.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = photo;
+#line 133 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = pixbuf_cache_get_cached (self, _tmp6_);
+#line 133 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf = _tmp7_;
+#line 134 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = pixbuf;
+#line 134 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp8_ != NULL) {
+#line 139 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = pixbuf;
+#line 139 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 717 "PixbufCache.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = self->priv->in_progress;
+#line 142 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = photo;
+#line 142 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_);
+#line 142 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = (PixbufCacheFetchJob*) _tmp11_;
+#line 143 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = job;
+#line 143 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp12_ != NULL) {
+#line 731 "PixbufCache.c"
+ PixbufCacheFetchJob* _tmp13_ = NULL;
+ PixbufCacheFetchJob* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ PixbufCacheFetchJob* _tmp19_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp13_ = job;
+#line 144 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ background_job_wait_for_completion (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 145 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp14_ = job;
+#line 145 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = _tmp14_->err;
+#line 145 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp15_ != NULL) {
+#line 748 "PixbufCache.c"
+ PixbufCacheFetchJob* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+ GError* _tmp18_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp16_ = job;
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp17_ = _tmp16_->err;
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp18_ = _g_error_copy0 (_tmp17_);
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _inner_error_ = _tmp18_;
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 146 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return NULL;
+#line 768 "PixbufCache.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp19_ = job;
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp20_ = _tmp19_->pixbuf;
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = _tmp21_;
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 148 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 784 "PixbufCache.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp23_ = photo;
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp24_ = self->priv->scaling;
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp25_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp24_, &_inner_error_);
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp22_ = _tmp25_;
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return NULL;
+#line 804 "PixbufCache.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp26_ = _tmp22_;
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp22_ = NULL;
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 155 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf = _tmp26_;
+#line 157 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp27_ = photo;
+#line 157 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp28_ = pixbuf;
+#line 157 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_encache (self, _tmp27_, _tmp28_);
+#line 159 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = pixbuf;
+#line 159 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp22_);
+#line 159 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 159 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 828 "PixbufCache.c"
+}
+
+
+void pixbuf_cache_drop (PixbufCache* self, Photo* photo) {
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 165 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 166 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = photo;
+#line 166 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_cancel_prefetch (self, _tmp0_);
+#line 167 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = photo;
+#line 167 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_decache (self, _tmp1_);
+#line 847 "PixbufCache.c"
+}
+
+
+static void _pixbuf_cache_on_fetched_completion_callback (BackgroundJob* job, gpointer self) {
+#line 192 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_on_fetched ((PixbufCache*) self, job);
+#line 854 "PixbufCache.c"
+}
+
+
+void pixbuf_cache_prefetch (PixbufCache* self, Photo* photo, BackgroundJobJobPriority priority, gboolean force) {
+ Photo* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ GeeHashMap* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ PixbufCacheCacheFilter _tmp16_ = NULL;
+ void* _tmp16__target = NULL;
+ PixbufCacheFetchJob* job = NULL;
+ PixbufCachePhotoType _tmp20_ = 0;
+ GeeHashMap* _tmp30_ = NULL;
+ Photo* _tmp31_ = NULL;
+ PixbufCacheFetchJob* _tmp32_ = NULL;
+ Workers* _tmp33_ = NULL;
+ PixbufCacheFetchJob* _tmp34_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 172 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 174 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = photo;
+#line 174 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = photo_get_actual_file (_tmp0_);
+#line 174 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = _tmp1_;
+#line 174 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = g_file_query_exists (_tmp2_, NULL);
+#line 174 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = !_tmp3_;
+#line 174 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp2_);
+#line 174 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp4_) {
+#line 897 "PixbufCache.c"
+ Photo* _tmp5_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = photo;
+#line 175 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_decache (self, _tmp5_);
+#line 903 "PixbufCache.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = force;
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp7_) {
+#line 909 "PixbufCache.c"
+ GeeHashMap* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = self->priv->cache;
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = photo;
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp9_);
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = _tmp10_;
+#line 921 "PixbufCache.c"
+ } else {
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = FALSE;
+#line 925 "PixbufCache.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp6_) {
+#line 929 "PixbufCache.c"
+ Photo* _tmp11_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = photo;
+#line 178 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_prioritize (self, _tmp11_);
+#line 180 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 937 "PixbufCache.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = self->priv->in_progress;
+#line 183 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp13_ = photo;
+#line 183 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp14_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_);
+#line 183 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp14_) {
+#line 184 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 949 "PixbufCache.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp16_ = self->priv->filter;
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp16__target = self->priv->filter_target;
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp16_ != NULL) {
+#line 957 "PixbufCache.c"
+ PixbufCacheCacheFilter _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ Photo* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp17_ = self->priv->filter;
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp17__target = self->priv->filter_target;
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp18_ = photo;
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp19_ = _tmp17_ (_tmp18_, _tmp17__target);
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = !_tmp19_;
+#line 972 "PixbufCache.c"
+ } else {
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = FALSE;
+#line 976 "PixbufCache.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp15_) {
+#line 187 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 982 "PixbufCache.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = NULL;
+#line 190 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp20_ = self->priv->type;
+#line 190 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ switch (_tmp20_) {
+#line 190 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ case PIXBUF_CACHE_PHOTO_TYPE_BASELINE:
+#line 992 "PixbufCache.c"
+ {
+ BackgroundJobJobPriority _tmp21_ = 0;
+ Photo* _tmp22_ = NULL;
+ Scaling _tmp23_ = {0};
+ PixbufCacheBaselineFetchJob* _tmp24_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp21_ = priority;
+#line 192 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp22_ = photo;
+#line 192 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp23_ = self->priv->scaling;
+#line 192 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp24_ = pixbuf_cache_baseline_fetch_job_new (self, _tmp21_, _tmp22_, &_tmp23_, _pixbuf_cache_on_fetched_completion_callback, self);
+#line 192 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 192 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob);
+#line 193 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1012 "PixbufCache.c"
+ }
+#line 190 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ case PIXBUF_CACHE_PHOTO_TYPE_MASTER:
+#line 1016 "PixbufCache.c"
+ {
+ BackgroundJobJobPriority _tmp25_ = 0;
+ Photo* _tmp26_ = NULL;
+ Scaling _tmp27_ = {0};
+ PixbufCacheMasterFetchJob* _tmp28_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp25_ = priority;
+#line 196 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp26_ = photo;
+#line 196 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp27_ = self->priv->scaling;
+#line 196 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp28_ = pixbuf_cache_master_fetch_job_new (self, _tmp25_, _tmp26_, &_tmp27_, _pixbuf_cache_on_fetched_completion_callback, self);
+#line 196 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 196 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob);
+#line 197 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1036 "PixbufCache.c"
+ }
+ default:
+ {
+ PixbufCachePhotoType _tmp29_ = 0;
+#line 200 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp29_ = self->priv->type;
+#line 200 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_error ("PixbufCache.vala:200: Unknown photo type: %d", (gint) _tmp29_);
+#line 1045 "PixbufCache.c"
+ }
+ }
+#line 203 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp30_ = self->priv->in_progress;
+#line 203 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp31_ = photo;
+#line 203 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp32_ = job;
+#line 203 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp31_, _tmp32_);
+#line 205 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp33_ = pixbuf_cache_background_workers;
+#line 205 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp34_ = job;
+#line 205 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ workers_enqueue (_tmp33_, G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 172 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 1064 "PixbufCache.c"
+}
+
+
+void pixbuf_cache_prefetch_many (PixbufCache* self, GeeCollection* photos, BackgroundJobJobPriority priority, gboolean force) {
+#line 210 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 210 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (photos));
+#line 1073 "PixbufCache.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = photos;
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _photo_it = _tmp1_;
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 1086 "PixbufCache.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ Photo* photo = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ BackgroundJobJobPriority _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = _photo_it;
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp3_) {
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1103 "PixbufCache.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = _photo_it;
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ photo = (Photo*) _tmp5_;
+#line 213 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = photo;
+#line 213 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = priority;
+#line 213 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = force;
+#line 213 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_prefetch (self, _tmp6_, _tmp7_, _tmp8_);
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (photo);
+#line 1121 "PixbufCache.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_photo_it);
+#line 1125 "PixbufCache.c"
+ }
+}
+
+
+void pixbuf_cache_prefetch_batch (PixbufCache* self, PixbufCachePixbufCacheBatch* batch, gboolean force) {
+#line 217 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 217 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (PIXBUF_CACHE_IS_PIXBUF_CACHE_BATCH (batch));
+#line 1135 "PixbufCache.c"
+ {
+ GeeIterator* _priority_it = NULL;
+ PixbufCachePixbufCacheBatch* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = batch;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = gee_multi_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MULTI_MAP, GeeMultiMap));
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = _tmp1_;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = _tmp3_;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp2_);
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _priority_it = _tmp4_;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 1159 "PixbufCache.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ BackgroundJobJobPriority priority = 0;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = _priority_it;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp6_) {
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1173 "PixbufCache.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = _priority_it;
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ priority = (BackgroundJobJobPriority) ((gintptr) _tmp8_);
+#line 1181 "PixbufCache.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ PixbufCachePixbufCacheBatch* _tmp9_ = NULL;
+ BackgroundJobJobPriority _tmp10_ = 0;
+ GeeCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = batch;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = priority;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = gee_multi_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_MULTI_MAP, GeeMultiMap), (gpointer) ((gintptr) _tmp10_));
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = _tmp11_;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp14_ = _tmp13_;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp12_);
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _photo_it = _tmp14_;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 1208 "PixbufCache.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ Photo* photo = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ BackgroundJobJobPriority _tmp20_ = 0;
+ gboolean _tmp21_ = FALSE;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = _photo_it;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp16_) {
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1225 "PixbufCache.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp17_ = _photo_it;
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ photo = (Photo*) _tmp18_;
+#line 220 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp19_ = photo;
+#line 220 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp20_ = priority;
+#line 220 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp21_ = force;
+#line 220 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_prefetch (self, _tmp19_, _tmp20_, _tmp21_);
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (photo);
+#line 1243 "PixbufCache.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_photo_it);
+#line 1247 "PixbufCache.c"
+ }
+ }
+#line 218 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_priority_it);
+#line 1252 "PixbufCache.c"
+ }
+}
+
+
+gboolean pixbuf_cache_cancel_prefetch (PixbufCache* self, Photo* photo) {
+ gboolean result = FALSE;
+ PixbufCacheFetchJob* job = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ PixbufCacheFetchJob* _tmp3_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ PixbufCacheFetchJob* _tmp8_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PIXBUF_CACHE (self), FALSE);
+#line 224 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 225 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priv->in_progress;
+#line 225 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = photo;
+#line 225 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 225 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = (PixbufCacheFetchJob*) _tmp2_;
+#line 226 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = job;
+#line 226 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp3_ == NULL) {
+#line 227 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = FALSE;
+#line 227 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 227 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 1292 "PixbufCache.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = self->priv->in_progress;
+#line 230 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = photo;
+#line 230 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_, NULL);
+#line 230 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ removed = _tmp6_;
+#line 231 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = removed;
+#line 231 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp7_, "removed");
+#line 233 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = job;
+#line 233 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 239 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = TRUE;
+#line 239 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 239 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 1316 "PixbufCache.c"
+}
+
+
+void pixbuf_cache_cancel_all (PixbufCache* self) {
+ GeeHashMap* _tmp11_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 1324 "PixbufCache.c"
+ {
+ GeeIterator* _job_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priv->in_progress;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = _tmp1_;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = _tmp2_;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = _tmp4_;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp3_);
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _job_it = _tmp5_;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 1351 "PixbufCache.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PixbufCacheFetchJob* job = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ PixbufCacheFetchJob* _tmp10_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = _job_it;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp7_) {
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1366 "PixbufCache.c"
+ }
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = _job_it;
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = (PixbufCacheFetchJob*) _tmp9_;
+#line 247 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = job;
+#line 247 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 1380 "PixbufCache.c"
+ }
+#line 246 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_job_it);
+#line 1384 "PixbufCache.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = self->priv->in_progress;
+#line 249 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ gee_abstract_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
+#line 1390 "PixbufCache.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 253 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 1397 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_on_fetched (PixbufCache* self, BackgroundJob* j) {
+ PixbufCacheFetchJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ PixbufCacheFetchJob* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ PixbufCacheFetchJob* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ PixbufCacheFetchJob* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+ PixbufCacheFetchJob* _tmp20_ = NULL;
+ Photo* _tmp21_ = NULL;
+ PixbufCacheFetchJob* _tmp22_ = NULL;
+ GdkPixbuf* _tmp23_ = NULL;
+ PixbufCacheFetchJob* _tmp24_ = NULL;
+ Photo* _tmp25_ = NULL;
+ PixbufCacheFetchJob* _tmp26_ = NULL;
+ GdkPixbuf* _tmp27_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 252 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 253 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = j;
+#line 253 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob));
+#line 253 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = _tmp1_;
+#line 257 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = self->priv->in_progress;
+#line 257 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = job;
+#line 257 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = _tmp3_->photo;
+#line 257 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, NULL);
+#line 259 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = job;
+#line 259 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = _tmp5_->err;
+#line 259 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp6_ != NULL) {
+#line 1442 "PixbufCache.c"
+ PixbufCacheFetchJob* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ PixbufCacheFetchJob* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ PixbufCacheFetchJob* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ PixbufCacheFetchJob* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ PixbufCacheFetchJob* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = job;
+#line 260 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = _tmp7_->pixbuf;
+#line 260 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp8_ == NULL, "job.pixbuf == null");
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = job;
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = _tmp9_->photo;
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = _tmp11_;
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp13_ = job;
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp14_ = _tmp13_->err;
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = _tmp14_->message;
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_critical ("PixbufCache.vala:262: Unable to readahead %s: %s", _tmp12_, _tmp15_);
+#line 262 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_free0 (_tmp12_);
+#line 263 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp16_ = job;
+#line 263 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp17_ = _tmp16_->photo;
+#line 263 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp18_ = job;
+#line 263 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp19_ = _tmp18_->err;
+#line 263 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_emit_by_name (self, "fetched", _tmp17_, NULL, _tmp19_);
+#line 265 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 265 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 1494 "PixbufCache.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp20_ = job;
+#line 272 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp21_ = _tmp20_->photo;
+#line 272 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp22_ = job;
+#line 272 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp23_ = _tmp22_->pixbuf;
+#line 272 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_encache (self, _tmp21_, _tmp23_);
+#line 275 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp24_ = job;
+#line 275 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp25_ = _tmp24_->photo;
+#line 275 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp26_ = job;
+#line 275 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp27_ = _tmp26_->pixbuf;
+#line 275 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_emit_by_name (self, "fetched", _tmp25_, _tmp27_, NULL);
+#line 252 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 1518 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_on_sources_altered (PixbufCache* self, GeeMap* map) {
+#line 278 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 278 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 1527 "PixbufCache.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = map;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = _tmp1_;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = _tmp2_;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = _tmp4_;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp3_);
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _object_it = _tmp5_;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 1554 "PixbufCache.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ Alteration* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ Photo* photo = NULL;
+ DataObject* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ GeeHashMap* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ Photo* _tmp30_ = NULL;
+ Photo* _tmp31_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = _object_it;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp7_) {
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1582 "PixbufCache.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = _object_it;
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ object = (DataObject*) _tmp9_;
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = map;
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = object;
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp13_ = (Alteration*) _tmp12_;
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp14_ = alteration_has_subject (_tmp13_, "image");
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = !_tmp14_;
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _alteration_unref0 (_tmp13_);
+#line 280 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp15_) {
+#line 281 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (object);
+#line 281 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ continue;
+#line 1610 "PixbufCache.c"
+ }
+#line 283 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp16_ = object;
+#line 283 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PHOTO, Photo));
+#line 283 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ photo = _tmp17_;
+#line 285 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp18_ = self->priv->in_progress;
+#line 285 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp19_ = photo;
+#line 285 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp20_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp19_);
+#line 285 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp20_) {
+#line 1626 "PixbufCache.c"
+ GeeHashMap* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+ PixbufCacheFetchJob* _tmp24_ = NULL;
+ GeeHashMap* _tmp25_ = NULL;
+ Photo* _tmp26_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp21_ = self->priv->in_progress;
+#line 288 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp22_ = photo;
+#line 288 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp23_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp22_);
+#line 288 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp24_ = (PixbufCacheFetchJob*) _tmp23_;
+#line 288 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 288 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (_tmp24_);
+#line 289 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp25_ = self->priv->in_progress;
+#line 289 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp26_ = photo;
+#line 289 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp26_, NULL);
+#line 1651 "PixbufCache.c"
+ } else {
+ GeeHashMap* _tmp27_ = NULL;
+ Photo* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 290 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp27_ = self->priv->cache;
+#line 290 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp28_ = photo;
+#line 290 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp29_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp28_);
+#line 290 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp29_) {
+#line 291 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (photo);
+#line 291 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (object);
+#line 291 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ continue;
+#line 1670 "PixbufCache.c"
+ }
+ }
+#line 294 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp30_ = photo;
+#line 294 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_decache (self, _tmp30_);
+#line 301 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp31_ = photo;
+#line 301 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_prefetch (self, _tmp31_, BACKGROUND_JOB_JOB_PRIORITY_HIGH, FALSE);
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (photo);
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (object);
+#line 1685 "PixbufCache.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_object_it);
+#line 1689 "PixbufCache.c"
+ }
+}
+
+
+static void pixbuf_cache_on_sources_removed (PixbufCache* self, GeeIterable* removed) {
+#line 305 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 305 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 1699 "PixbufCache.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = removed;
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _object_it = _tmp1_;
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 1712 "PixbufCache.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ Photo* photo = NULL;
+ DataObject* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = _object_it;
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp3_) {
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1731 "PixbufCache.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = _object_it;
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ object = (DataObject*) _tmp5_;
+#line 307 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = object;
+#line 307 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_PHOTO) ? ((Photo*) _tmp6_) : NULL);
+#line 307 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ photo = _tmp7_;
+#line 308 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = photo;
+#line 308 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp8_ != NULL, "photo != null");
+#line 310 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = photo;
+#line 310 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_decache (self, _tmp9_);
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (photo);
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (object);
+#line 1757 "PixbufCache.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_object_it);
+#line 1761 "PixbufCache.c"
+ }
+}
+
+
+static GdkPixbuf* pixbuf_cache_get_cached (PixbufCache* self, Photo* photo) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 314 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PIXBUF_CACHE (self), NULL);
+#line 314 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 315 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priv->cache;
+#line 315 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = photo;
+#line 315 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 315 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf = (GdkPixbuf*) _tmp2_;
+#line 316 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = pixbuf;
+#line 316 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp3_ != NULL) {
+#line 1789 "PixbufCache.c"
+ Photo* _tmp4_ = NULL;
+#line 317 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = photo;
+#line 317 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_prioritize (self, _tmp4_);
+#line 1795 "PixbufCache.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = pixbuf;
+#line 319 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 1801 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_prioritize (PixbufCache* self, Photo* photo) {
+ gint index = 0;
+ GeeArrayList* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 323 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 323 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 324 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priv->lru;
+#line 324 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = photo;
+#line 324 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = gee_abstract_list_index_of (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp1_);
+#line 324 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ index = _tmp2_;
+#line 325 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = index;
+#line 325 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp3_ >= 0, "index >= 0");
+#line 327 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = index;
+#line 327 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp4_ > 0) {
+#line 1832 "PixbufCache.c"
+ GeeArrayList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gpointer _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+#line 328 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = self->priv->lru;
+#line 328 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = index;
+#line 328 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp6_);
+#line 328 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = (Photo*) _tmp7_;
+#line 328 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp8_);
+#line 329 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = self->priv->lru;
+#line 329 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = photo;
+#line 329 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0, _tmp10_);
+#line 1855 "PixbufCache.c"
+ }
+}
+
+
+static void pixbuf_cache_encache (PixbufCache* self, Photo* photo, GdkPixbuf* pixbuf) {
+ Photo* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ GeeArrayList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ GeeHashMap* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 333 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 333 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 333 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 335 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = photo;
+#line 335 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_decache (self, _tmp0_);
+#line 337 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = self->priv->cache;
+#line 337 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = photo;
+#line 337 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = pixbuf;
+#line 337 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, _tmp3_);
+#line 338 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = self->priv->lru;
+#line 338 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = photo;
+#line 338 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0, _tmp5_);
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 1899 "PixbufCache.c"
+ GeeArrayList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ Photo* cached_photo = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ GeeArrayList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = self->priv->lru;
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = _tmp7_;
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = self->priv->max_count;
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!(_tmp8_ > _tmp9_)) {
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 1928 "PixbufCache.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = self->priv->lru;
+#line 341 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = self->priv->lru;
+#line 341 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 341 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp13_ = _tmp12_;
+#line 341 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp14_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp13_ - 1);
+#line 341 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ cached_photo = (Photo*) _tmp14_;
+#line 342 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = cached_photo;
+#line 342 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp15_ != NULL, "cached_photo != null");
+#line 344 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp16_ = self->priv->cache;
+#line 344 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp17_ = cached_photo;
+#line 344 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp18_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp17_, NULL);
+#line 344 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ removed = _tmp18_;
+#line 345 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp19_ = removed;
+#line 345 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp19_, "removed");
+#line 340 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (cached_photo);
+#line 1960 "PixbufCache.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp20_ = self->priv->lru;
+#line 348 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp21_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 348 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp22_ = _tmp21_;
+#line 348 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp23_ = self->priv->cache;
+#line 348 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp24_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_MAP, GeeMap));
+#line 348 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp25_ = _tmp24_;
+#line 348 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp22_ == _tmp25_, "lru.size == cache.size");
+#line 1976 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_decache (PixbufCache* self, Photo* photo) {
+ GeeHashMap* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean removed = FALSE;
+ GeeArrayList* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 351 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PIXBUF_CACHE (self));
+#line 351 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 352 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priv->cache;
+#line 352 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = photo;
+#line 352 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_, NULL);
+#line 352 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp2_) {
+#line 2001 "PixbufCache.c"
+ GeeArrayList* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 353 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = self->priv->lru;
+#line 353 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = photo;
+#line 353 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 353 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (!_tmp5_, "!lru.contains(photo)");
+#line 355 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 2015 "PixbufCache.c"
+ }
+#line 358 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = self->priv->lru;
+#line 358 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = photo;
+#line 358 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp7_);
+#line 358 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ removed = _tmp8_;
+#line 359 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = removed;
+#line 359 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _vala_assert (_tmp9_, "removed");
+#line 2029 "PixbufCache.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_POINTER) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT_POINTER callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_if_fail (n_param_values == 4);
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ data1 = closure->data;
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2048 "PixbufCache.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ data2 = closure->data;
+#line 2054 "PixbufCache.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT_POINTER) (marshal_data ? marshal_data : cc->callback);
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_pointer (param_values + 3), data2);
+#line 2060 "PixbufCache.c"
+}
+
+
+static gint _background_job_job_priority_compare_func_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = background_job_job_priority_compare_func (a, b);
+#line 17 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 2069 "PixbufCache.c"
+}
+
+
+PixbufCachePixbufCacheBatch* pixbuf_cache_pixbuf_cache_batch_construct (GType object_type) {
+ PixbufCachePixbufCacheBatch * self = NULL;
+#line 17 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = (PixbufCachePixbufCacheBatch*) gee_tree_multi_map_construct (object_type, BACKGROUND_JOB_TYPE_JOB_PRIORITY, NULL, NULL, TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _background_job_job_priority_compare_func_gcompare_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 16 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self;
+#line 2079 "PixbufCache.c"
+}
+
+
+PixbufCachePixbufCacheBatch* pixbuf_cache_pixbuf_cache_batch_new (void) {
+#line 16 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return pixbuf_cache_pixbuf_cache_batch_construct (PIXBUF_CACHE_TYPE_PIXBUF_CACHE_BATCH);
+#line 2086 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_pixbuf_cache_batch_class_init (PixbufCachePixbufCacheBatchClass * klass) {
+#line 15 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_pixbuf_cache_batch_parent_class = g_type_class_peek_parent (klass);
+#line 2093 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_pixbuf_cache_batch_instance_init (PixbufCachePixbufCacheBatch * self) {
+}
+
+
+GType pixbuf_cache_pixbuf_cache_batch_get_type (void) {
+ static volatile gsize pixbuf_cache_pixbuf_cache_batch_type_id__volatile = 0;
+ if (g_once_init_enter (&pixbuf_cache_pixbuf_cache_batch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PixbufCachePixbufCacheBatchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixbuf_cache_pixbuf_cache_batch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixbufCachePixbufCacheBatch), 0, (GInstanceInitFunc) pixbuf_cache_pixbuf_cache_batch_instance_init, NULL };
+ GType pixbuf_cache_pixbuf_cache_batch_type_id;
+ pixbuf_cache_pixbuf_cache_batch_type_id = g_type_register_static (GEE_TYPE_TREE_MULTI_MAP, "PixbufCachePixbufCacheBatch", &g_define_type_info, 0);
+ g_once_init_leave (&pixbuf_cache_pixbuf_cache_batch_type_id__volatile, pixbuf_cache_pixbuf_cache_batch_type_id);
+ }
+ return pixbuf_cache_pixbuf_cache_batch_type_id__volatile;
+}
+
+
+static PixbufCacheFetchJob* pixbuf_cache_fetch_job_construct (GType object_type, PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target) {
+ PixbufCacheFetchJob* self = NULL;
+ PixbufCache* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GCancellable* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ Semaphore* _tmp4_ = NULL;
+ Semaphore* _tmp5_ = NULL;
+ BackgroundJobJobPriority _tmp6_ = 0;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Scaling _tmp9_ = {0};
+#line 28 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PIXBUF_CACHE (owner), NULL);
+#line 28 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 28 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = owner;
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = callback;
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1__target = callback_target;
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = g_cancellable_new ();
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = _tmp2_;
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = semaphore_new ();
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = _tmp4_;
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = (PixbufCacheFetchJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _tmp1_, _tmp1__target, _tmp3_, NULL, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore));
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _abstract_semaphore_unref0 (_tmp5_);
+#line 30 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp3_);
+#line 32 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = priority;
+#line 32 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priority = _tmp6_;
+#line 33 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = photo;
+#line 33 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 33 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (self->photo);
+#line 33 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->photo = _tmp8_;
+#line 34 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = *scaling;
+#line 34 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->scaling = _tmp9_;
+#line 28 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self;
+#line 2170 "PixbufCache.c"
+}
+
+
+static BackgroundJobJobPriority pixbuf_cache_fetch_job_real_get_priority (BackgroundJob* base) {
+ PixbufCacheFetchJob * self;
+ BackgroundJobJobPriority result = 0;
+ BackgroundJobJobPriority _tmp0_ = 0;
+#line 37 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob);
+#line 38 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priority;
+#line 38 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ result = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return result;
+#line 2186 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_fetch_job_class_init (PixbufCacheFetchJobClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_fetch_job_parent_class = g_type_class_peek_parent (klass);
+#line 21 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ ((BackgroundJobClass *) klass)->finalize = pixbuf_cache_fetch_job_finalize;
+#line 21 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ ((BackgroundJobClass *) klass)->get_priority = pixbuf_cache_fetch_job_real_get_priority;
+#line 2197 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_fetch_job_instance_init (PixbufCacheFetchJob * self) {
+#line 25 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->pixbuf = NULL;
+#line 26 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->err = NULL;
+#line 2206 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_fetch_job_finalize (BackgroundJob* obj) {
+ PixbufCacheFetchJob * self;
+#line 21 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob);
+#line 23 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (self->photo);
+#line 25 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (self->pixbuf);
+#line 26 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_error_free0 (self->err);
+#line 21 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ BACKGROUND_JOB_CLASS (pixbuf_cache_fetch_job_parent_class)->finalize (obj);
+#line 2222 "PixbufCache.c"
+}
+
+
+static GType pixbuf_cache_fetch_job_get_type (void) {
+ static volatile gsize pixbuf_cache_fetch_job_type_id__volatile = 0;
+ if (g_once_init_enter (&pixbuf_cache_fetch_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PixbufCacheFetchJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixbuf_cache_fetch_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixbufCacheFetchJob), 0, (GInstanceInitFunc) pixbuf_cache_fetch_job_instance_init, NULL };
+ GType pixbuf_cache_fetch_job_type_id;
+ pixbuf_cache_fetch_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "PixbufCacheFetchJob", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&pixbuf_cache_fetch_job_type_id__volatile, pixbuf_cache_fetch_job_type_id);
+ }
+ return pixbuf_cache_fetch_job_type_id__volatile;
+}
+
+
+static PixbufCacheBaselineFetchJob* pixbuf_cache_baseline_fetch_job_construct (GType object_type, PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target) {
+ PixbufCacheBaselineFetchJob* self = NULL;
+ PixbufCache* _tmp0_ = NULL;
+ BackgroundJobJobPriority _tmp1_ = 0;
+ Photo* _tmp2_ = NULL;
+ Scaling _tmp3_ = {0};
+ CompletionCallback _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+#line 43 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PIXBUF_CACHE (owner), NULL);
+#line 43 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 43 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 45 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = owner;
+#line 45 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = priority;
+#line 45 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = photo;
+#line 45 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = *scaling;
+#line 45 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = callback;
+#line 45 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4__target = callback_target;
+#line 45 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = (PixbufCacheBaselineFetchJob*) pixbuf_cache_fetch_job_construct (object_type, _tmp0_, _tmp1_, _tmp2_, &_tmp3_, _tmp4_, _tmp4__target);
+#line 43 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self;
+#line 2268 "PixbufCache.c"
+}
+
+
+static PixbufCacheBaselineFetchJob* pixbuf_cache_baseline_fetch_job_new (PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target) {
+#line 43 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return pixbuf_cache_baseline_fetch_job_construct (PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB, owner, priority, photo, scaling, callback, callback_target);
+#line 2275 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_baseline_fetch_job_real_execute (BackgroundJob* base) {
+ PixbufCacheBaselineFetchJob * self;
+ GError * _inner_error_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PIXBUF_CACHE_TYPE_BASELINE_FETCH_JOB, PixbufCacheBaselineFetchJob);
+#line 2284 "PixbufCache.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Scaling _tmp2_ = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->photo;
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->scaling;
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp2_, &_inner_error_);
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = _tmp3_;
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2301 "PixbufCache.c"
+ goto __catch442_g_error;
+ }
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = _tmp0_;
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->pixbuf);
+#line 50 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->pixbuf = _tmp4_;
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp0_);
+#line 2314 "PixbufCache.c"
+ }
+ goto __finally442;
+ __catch442_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ err = _inner_error_;
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _inner_error_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = err;
+#line 52 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = _g_error_copy0 (_tmp5_);
+#line 52 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_error_free0 (G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->err);
+#line 52 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->err = _tmp6_;
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_error_free0 (err);
+#line 2336 "PixbufCache.c"
+ }
+ __finally442:
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_clear_error (&_inner_error_);
+#line 49 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 2347 "PixbufCache.c"
+ }
+}
+
+
+static void pixbuf_cache_baseline_fetch_job_class_init (PixbufCacheBaselineFetchJobClass * klass) {
+#line 42 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_baseline_fetch_job_parent_class = g_type_class_peek_parent (klass);
+#line 42 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ ((BackgroundJobClass *) klass)->execute = pixbuf_cache_baseline_fetch_job_real_execute;
+#line 2357 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_baseline_fetch_job_instance_init (PixbufCacheBaselineFetchJob * self) {
+}
+
+
+static GType pixbuf_cache_baseline_fetch_job_get_type (void) {
+ static volatile gsize pixbuf_cache_baseline_fetch_job_type_id__volatile = 0;
+ if (g_once_init_enter (&pixbuf_cache_baseline_fetch_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PixbufCacheBaselineFetchJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixbuf_cache_baseline_fetch_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixbufCacheBaselineFetchJob), 0, (GInstanceInitFunc) pixbuf_cache_baseline_fetch_job_instance_init, NULL };
+ GType pixbuf_cache_baseline_fetch_job_type_id;
+ pixbuf_cache_baseline_fetch_job_type_id = g_type_register_static (PIXBUF_CACHE_TYPE_FETCH_JOB, "PixbufCacheBaselineFetchJob", &g_define_type_info, 0);
+ g_once_init_leave (&pixbuf_cache_baseline_fetch_job_type_id__volatile, pixbuf_cache_baseline_fetch_job_type_id);
+ }
+ return pixbuf_cache_baseline_fetch_job_type_id__volatile;
+}
+
+
+static PixbufCacheMasterFetchJob* pixbuf_cache_master_fetch_job_construct (GType object_type, PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target) {
+ PixbufCacheMasterFetchJob* self = NULL;
+ PixbufCache* _tmp0_ = NULL;
+ BackgroundJobJobPriority _tmp1_ = 0;
+ Photo* _tmp2_ = NULL;
+ Scaling _tmp3_ = {0};
+ CompletionCallback _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+#line 58 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PIXBUF_CACHE (owner), NULL);
+#line 58 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 58 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 60 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = owner;
+#line 60 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = priority;
+#line 60 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = photo;
+#line 60 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = *scaling;
+#line 60 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = callback;
+#line 60 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4__target = callback_target;
+#line 60 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = (PixbufCacheMasterFetchJob*) pixbuf_cache_fetch_job_construct (object_type, _tmp0_, _tmp1_, _tmp2_, &_tmp3_, _tmp4_, _tmp4__target);
+#line 58 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return self;
+#line 2407 "PixbufCache.c"
+}
+
+
+static PixbufCacheMasterFetchJob* pixbuf_cache_master_fetch_job_new (PixbufCache* owner, BackgroundJobJobPriority priority, Photo* photo, Scaling* scaling, CompletionCallback callback, void* callback_target) {
+#line 58 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return pixbuf_cache_master_fetch_job_construct (PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB, owner, priority, photo, scaling, callback, callback_target);
+#line 2414 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_master_fetch_job_real_execute (BackgroundJob* base) {
+ PixbufCacheMasterFetchJob * self;
+ GError * _inner_error_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PIXBUF_CACHE_TYPE_MASTER_FETCH_JOB, PixbufCacheMasterFetchJob);
+#line 2423 "PixbufCache.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Scaling _tmp2_ = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->photo;
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->scaling;
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = photo_get_master_pixbuf (_tmp1_, &_tmp2_, TRUE, &_inner_error_);
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = _tmp3_;
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2440 "PixbufCache.c"
+ goto __catch443_g_error;
+ }
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp4_ = _tmp0_;
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->pixbuf);
+#line 65 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->pixbuf = _tmp4_;
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp0_);
+#line 2453 "PixbufCache.c"
+ }
+ goto __finally443;
+ __catch443_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ err = _inner_error_;
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _inner_error_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = err;
+#line 67 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = _g_error_copy0 (_tmp5_);
+#line 67 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_error_free0 (G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->err);
+#line 67 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, PIXBUF_CACHE_TYPE_FETCH_JOB, PixbufCacheFetchJob)->err = _tmp6_;
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_error_free0 (err);
+#line 2475 "PixbufCache.c"
+ }
+ __finally443:
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_clear_error (&_inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ return;
+#line 2486 "PixbufCache.c"
+ }
+}
+
+
+static void pixbuf_cache_master_fetch_job_class_init (PixbufCacheMasterFetchJobClass * klass) {
+#line 57 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_master_fetch_job_parent_class = g_type_class_peek_parent (klass);
+#line 57 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ ((BackgroundJobClass *) klass)->execute = pixbuf_cache_master_fetch_job_real_execute;
+#line 2496 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_master_fetch_job_instance_init (PixbufCacheMasterFetchJob * self) {
+}
+
+
+static GType pixbuf_cache_master_fetch_job_get_type (void) {
+ static volatile gsize pixbuf_cache_master_fetch_job_type_id__volatile = 0;
+ if (g_once_init_enter (&pixbuf_cache_master_fetch_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PixbufCacheMasterFetchJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixbuf_cache_master_fetch_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixbufCacheMasterFetchJob), 0, (GInstanceInitFunc) pixbuf_cache_master_fetch_job_instance_init, NULL };
+ GType pixbuf_cache_master_fetch_job_type_id;
+ pixbuf_cache_master_fetch_job_type_id = g_type_register_static (PIXBUF_CACHE_TYPE_FETCH_JOB, "PixbufCacheMasterFetchJob", &g_define_type_info, 0);
+ g_once_init_leave (&pixbuf_cache_master_fetch_job_type_id__volatile, pixbuf_cache_master_fetch_job_type_id);
+ }
+ return pixbuf_cache_master_fetch_job_type_id__volatile;
+}
+
+
+static void pixbuf_cache_class_init (PixbufCacheClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ pixbuf_cache_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_type_class_add_private (klass, sizeof (PixbufCachePrivate));
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ G_OBJECT_CLASS (klass)->finalize = pixbuf_cache_finalize;
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_new ("fetched", TYPE_PIXBUF_CACHE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_POINTER, G_TYPE_NONE, 3, TYPE_PHOTO, GDK_TYPE_PIXBUF, G_TYPE_POINTER);
+#line 2525 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_instance_init (PixbufCache * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv = PIXBUF_CACHE_GET_PRIVATE (self);
+#line 79 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, GDK_TYPE_PIXBUF, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 79 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->cache = _tmp0_;
+#line 80 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = gee_array_list_new (TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 80 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->lru = _tmp1_;
+#line 81 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp2_ = gee_hash_map_new (TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, PIXBUF_CACHE_TYPE_FETCH_JOB, (GBoxedCopyFunc) background_job_ref, background_job_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 81 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self->priv->in_progress = _tmp2_;
+#line 2547 "PixbufCache.c"
+}
+
+
+static void pixbuf_cache_finalize (GObject* obj) {
+ PixbufCache * self;
+ PixbufCachePhotoType _tmp0_ = 0;
+ SourceCollection* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PIXBUF_CACHE, PixbufCache);
+#line 110 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp0_ = self->priv->type;
+#line 110 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (_tmp0_ != PIXBUF_CACHE_PHOTO_TYPE_MASTER) {
+#line 2562 "PixbufCache.c"
+ SourceCollection* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 111 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp1_ = self->priv->sources;
+#line 111 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp2_, NULL, FALSE);
+#line 111 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _pixbuf_cache_on_sources_altered_data_collection_items_altered, self);
+#line 2571 "PixbufCache.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp3_ = self->priv->sources;
+#line 112 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_parse_name ("items-removed", TYPE_DATA_COLLECTION, &_tmp4_, NULL, FALSE);
+#line 112 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _pixbuf_cache_on_sources_removed_data_collection_items_removed, self);
+#line 2579 "PixbufCache.c"
+ {
+ GeeIterator* _job_it = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp5_ = self->priv->in_progress;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp6_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_MAP, GeeMap));
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp7_ = _tmp6_;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp8_ = _tmp7_;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp10_ = _tmp9_;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_tmp8_);
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _job_it = _tmp10_;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ while (TRUE) {
+#line 2606 "PixbufCache.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ PixbufCacheFetchJob* job = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ PixbufCacheFetchJob* _tmp15_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp11_ = _job_it;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ if (!_tmp12_) {
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ break;
+#line 2621 "PixbufCache.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp13_ = _job_it;
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ job = (PixbufCacheFetchJob*) _tmp14_;
+#line 115 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _tmp15_ = job;
+#line 115 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ background_job_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _background_job_unref0 (job);
+#line 2635 "PixbufCache.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (_job_it);
+#line 2639 "PixbufCache.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 79 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (self->priv->cache);
+#line 80 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (self->priv->lru);
+#line 81 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ _g_object_unref0 (self->priv->in_progress);
+#line 7 "/home/jens/Source/shotwell/src/PixbufCache.vala"
+ G_OBJECT_CLASS (pixbuf_cache_parent_class)->finalize (obj);
+#line 2651 "PixbufCache.c"
+}
+
+
+GType pixbuf_cache_get_type (void) {
+ static volatile gsize pixbuf_cache_type_id__volatile = 0;
+ if (g_once_init_enter (&pixbuf_cache_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PixbufCacheClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pixbuf_cache_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PixbufCache), 0, (GInstanceInitFunc) pixbuf_cache_instance_init, NULL };
+ GType pixbuf_cache_type_id;
+ pixbuf_cache_type_id = g_type_register_static (G_TYPE_OBJECT, "PixbufCache", &g_define_type_info, 0);
+ g_once_init_leave (&pixbuf_cache_type_id__volatile, pixbuf_cache_type_id);
+ }
+ return pixbuf_cache_type_id__volatile;
+}
+
+
+
diff --git a/src/Printing.c b/src/Printing.c
new file mode 100644
index 0000000..4a61b49
--- /dev/null
+++ b/src/Printing.c
@@ -0,0 +1,8706 @@
+/* Printing.c generated by valac 0.32.1, the Vala compiler
+ * generated from Printing.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <locale.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <pango/pango.h>
+#include <pango/pangocairo.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_CONTENT_LAYOUT (content_layout_get_type ())
+
+#define TYPE_PRINT_SETTINGS (print_settings_get_type ())
+#define PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRINT_SETTINGS, PrintSettings))
+#define PRINT_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRINT_SETTINGS, PrintSettingsClass))
+#define IS_PRINT_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRINT_SETTINGS))
+#define IS_PRINT_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRINT_SETTINGS))
+#define PRINT_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRINT_SETTINGS, PrintSettingsClass))
+
+typedef struct _PrintSettings PrintSettings;
+typedef struct _PrintSettingsClass PrintSettingsClass;
+typedef struct _PrintSettingsPrivate PrintSettingsPrivate;
+
+#define TYPE_MEASUREMENT (measurement_get_type ())
+
+#define TYPE_MEASUREMENT_UNIT (measurement_unit_get_type ())
+typedef struct _Measurement Measurement;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_PRINT_MANAGER (print_manager_get_type ())
+#define PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRINT_MANAGER, PrintManager))
+#define PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRINT_MANAGER, PrintManagerClass))
+#define IS_PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRINT_MANAGER))
+#define IS_PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRINT_MANAGER))
+#define PRINT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRINT_MANAGER, PrintManagerClass))
+
+typedef struct _PrintManager PrintManager;
+typedef struct _PrintManagerClass PrintManagerClass;
+
+#define TYPE_STANDARD_PRINT_SIZE (standard_print_size_get_type ())
+#define STANDARD_PRINT_SIZE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STANDARD_PRINT_SIZE, StandardPrintSize))
+#define STANDARD_PRINT_SIZE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STANDARD_PRINT_SIZE, StandardPrintSizeClass))
+#define IS_STANDARD_PRINT_SIZE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STANDARD_PRINT_SIZE))
+#define IS_STANDARD_PRINT_SIZE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STANDARD_PRINT_SIZE))
+#define STANDARD_PRINT_SIZE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STANDARD_PRINT_SIZE, StandardPrintSizeClass))
+
+typedef struct _StandardPrintSize StandardPrintSize;
+typedef struct _StandardPrintSizeClass StandardPrintSizeClass;
+typedef struct _StandardPrintSizePrivate StandardPrintSizePrivate;
+#define _print_manager_unref0(var) ((var == NULL) ? NULL : (var = (print_manager_unref (var), NULL)))
+typedef struct _ParamSpecPrintSettings ParamSpecPrintSettings;
+
+#define TYPE_PRINT_LAYOUT (print_layout_get_type ())
+
+#define TYPE_CUSTOM_PRINT_TAB (custom_print_tab_get_type ())
+#define CUSTOM_PRINT_TAB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CUSTOM_PRINT_TAB, CustomPrintTab))
+#define CUSTOM_PRINT_TAB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CUSTOM_PRINT_TAB, CustomPrintTabClass))
+#define IS_CUSTOM_PRINT_TAB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CUSTOM_PRINT_TAB))
+#define IS_CUSTOM_PRINT_TAB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CUSTOM_PRINT_TAB))
+#define CUSTOM_PRINT_TAB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CUSTOM_PRINT_TAB, CustomPrintTabClass))
+
+typedef struct _CustomPrintTab CustomPrintTab;
+typedef struct _CustomPrintTabClass CustomPrintTabClass;
+typedef struct _CustomPrintTabPrivate CustomPrintTabPrivate;
+
+#define TYPE_PRINT_JOB (print_job_get_type ())
+#define PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRINT_JOB, PrintJob))
+#define PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRINT_JOB, PrintJobClass))
+#define IS_PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRINT_JOB))
+#define IS_PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRINT_JOB))
+#define PRINT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRINT_JOB, PrintJobClass))
+
+typedef struct _PrintJob PrintJob;
+typedef struct _PrintJobClass PrintJobClass;
+#define _standard_print_size_unref0(var) ((var == NULL) ? NULL : (var = (standard_print_size_unref (var), NULL)))
+#define _print_settings_unref0(var) ((var == NULL) ? NULL : (var = (print_settings_unref (var), NULL)))
+typedef struct _PrintJobPrivate PrintJobPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _ParamSpecStandardPrintSize ParamSpecStandardPrintSize;
+typedef struct _PrintManagerPrivate PrintManagerPrivate;
+
+#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
+#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
+#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
+#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
+#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+
+typedef struct _ProgressDialog ProgressDialog;
+typedef struct _ProgressDialogClass ProgressDialogClass;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+#define __vala_PangoFontDescription_free0(var) ((var == NULL) ? NULL : (var = (_vala_PangoFontDescription_free (var), NULL)))
+typedef struct _ParamSpecPrintManager ParamSpecPrintManager;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ CONTENT_LAYOUT_STANDARD_SIZE,
+ CONTENT_LAYOUT_CUSTOM_SIZE,
+ CONTENT_LAYOUT_IMAGE_PER_PAGE
+} ContentLayout;
+
+struct _PrintSettings {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PrintSettingsPrivate * priv;
+};
+
+struct _PrintSettingsClass {
+ GTypeClass parent_class;
+ void (*finalize) (PrintSettings *self);
+};
+
+typedef enum {
+ MEASUREMENT_UNIT_INCHES,
+ MEASUREMENT_UNIT_CENTIMETERS
+} MeasurementUnit;
+
+struct _Measurement {
+ gdouble value;
+ MeasurementUnit unit;
+};
+
+struct _PrintSettingsPrivate {
+ ContentLayout content_layout;
+ Measurement content_width;
+ Measurement content_height;
+ gint content_ppi;
+ gint image_per_page_selection;
+ gint size_selection;
+ gboolean match_aspect_ratio;
+ gboolean print_titles;
+ gchar* print_titles_font;
+};
+
+struct _StandardPrintSize {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ StandardPrintSizePrivate * priv;
+ gchar* name;
+ Measurement width;
+ Measurement height;
+};
+
+struct _StandardPrintSizeClass {
+ GTypeClass parent_class;
+ void (*finalize) (StandardPrintSize *self);
+};
+
+struct _ParamSpecPrintSettings {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ PRINT_LAYOUT_ENTIRE_PAGE,
+ PRINT_LAYOUT_TWO_PER_PAGE,
+ PRINT_LAYOUT_FOUR_PER_PAGE,
+ PRINT_LAYOUT_SIX_PER_PAGE,
+ PRINT_LAYOUT_EIGHT_PER_PAGE,
+ PRINT_LAYOUT_SIXTEEN_PER_PAGE,
+ PRINT_LAYOUT_THIRTY_TWO_PER_PAGE
+} PrintLayout;
+
+struct _CustomPrintTab {
+ GtkFixed parent_instance;
+ CustomPrintTabPrivate * priv;
+};
+
+struct _CustomPrintTabClass {
+ GtkFixedClass parent_class;
+};
+
+struct _CustomPrintTabPrivate {
+ GtkBox* custom_image_settings_pane;
+ GtkRadioButton* standard_size_radio;
+ GtkRadioButton* custom_size_radio;
+ GtkRadioButton* image_per_page_radio;
+ GtkComboBox* image_per_page_combo;
+ GtkComboBox* standard_sizes_combo;
+ GtkComboBoxText* units_combo;
+ GtkEntry* custom_width_entry;
+ GtkEntry* custom_height_entry;
+ GtkEntry* ppi_entry;
+ GtkCheckButton* aspect_ratio_check;
+ GtkCheckButton* title_print_check;
+ GtkFontButton* title_print_font;
+ Measurement local_content_width;
+ Measurement local_content_height;
+ gint local_content_ppi;
+ gboolean is_text_insertion_in_progress;
+ PrintJob* source_job;
+};
+
+struct _PrintJob {
+ GtkPrintOperation parent_instance;
+ PrintJobPrivate * priv;
+};
+
+struct _PrintJobClass {
+ GtkPrintOperationClass parent_class;
+};
+
+struct _PrintJobPrivate {
+ PrintSettings* settings;
+ GeeArrayList* photos;
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _ParamSpecStandardPrintSize {
+ GParamSpec parent_instance;
+};
+
+struct _PrintManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PrintManagerPrivate * priv;
+};
+
+struct _PrintManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (PrintManager *self);
+};
+
+struct _PrintManagerPrivate {
+ PrintSettings* settings;
+ GtkPageSetup* user_page_setup;
+ CustomPrintTab* custom_tab;
+ ProgressDialog* progress_dialog;
+ GCancellable* cancellable;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _ParamSpecPrintManager {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer print_settings_parent_class = NULL;
+static gpointer custom_print_tab_parent_class = NULL;
+static gpointer print_job_parent_class = NULL;
+static gpointer standard_print_size_parent_class = NULL;
+static gpointer print_manager_parent_class = NULL;
+static PrintManager* print_manager_instance;
+static PrintManager* print_manager_instance = NULL;
+
+GType content_layout_get_type (void) G_GNUC_CONST;
+gpointer print_settings_ref (gpointer instance);
+void print_settings_unref (gpointer instance);
+GParamSpec* param_spec_print_settings (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_print_settings (GValue* value, gpointer v_object);
+void value_take_print_settings (GValue* value, gpointer v_object);
+gpointer value_get_print_settings (const GValue* value);
+GType print_settings_get_type (void) G_GNUC_CONST;
+GType measurement_get_type (void) G_GNUC_CONST;
+GType measurement_unit_get_type (void) G_GNUC_CONST;
+Measurement* measurement_dup (const Measurement* self);
+void measurement_free (Measurement* self);
+#define PRINT_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PRINT_SETTINGS, PrintSettingsPrivate))
+enum {
+ PRINT_SETTINGS_DUMMY_PROPERTY
+};
+#define PRINT_SETTINGS_MIN_CONTENT_PPI 72
+#define PRINT_SETTINGS_MAX_CONTENT_PPI 1200
+PrintSettings* print_settings_new (void);
+PrintSettings* print_settings_construct (GType object_type);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gint configuration_facade_get_printing_content_units (ConfigurationFacade* self);
+gdouble configuration_facade_get_printing_content_width (ConfigurationFacade* self);
+void measurement_init (Measurement *self, gdouble value, MeasurementUnit unit);
+gdouble configuration_facade_get_printing_content_height (ConfigurationFacade* self);
+gint configuration_facade_get_printing_size_selection (ConfigurationFacade* self);
+gint configuration_facade_get_printing_content_layout (ConfigurationFacade* self);
+gboolean configuration_facade_get_printing_match_aspect_ratio (ConfigurationFacade* self);
+gboolean configuration_facade_get_printing_print_titles (ConfigurationFacade* self);
+gchar* configuration_facade_get_printing_titles_font (ConfigurationFacade* self);
+gint configuration_facade_get_printing_images_per_page (ConfigurationFacade* self);
+gint configuration_facade_get_printing_content_ppi (ConfigurationFacade* self);
+void print_settings_save (PrintSettings* self);
+void configuration_facade_set_printing_content_units (ConfigurationFacade* self, gint units_code);
+void configuration_facade_set_printing_content_width (ConfigurationFacade* self, gdouble content_width);
+void configuration_facade_set_printing_content_height (ConfigurationFacade* self, gdouble content_height);
+void configuration_facade_set_printing_size_selection (ConfigurationFacade* self, gint size_code);
+void configuration_facade_set_printing_content_layout (ConfigurationFacade* self, gint layout_code);
+void configuration_facade_set_printing_match_aspect_ratio (ConfigurationFacade* self, gboolean match_aspect_ratio);
+void configuration_facade_set_printing_print_titles (ConfigurationFacade* self, gboolean print_titles);
+void configuration_facade_set_printing_titles_font (ConfigurationFacade* self, const gchar* font_name);
+void configuration_facade_set_printing_images_per_page (ConfigurationFacade* self, gint images_per_page_code);
+void configuration_facade_set_printing_content_ppi (ConfigurationFacade* self, gint content_ppi);
+void print_settings_get_content_width (PrintSettings* self, Measurement* result);
+ContentLayout print_settings_get_content_layout (PrintSettings* self);
+gpointer print_manager_ref (gpointer instance);
+void print_manager_unref (gpointer instance);
+GParamSpec* param_spec_print_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_print_manager (GValue* value, gpointer v_object);
+void value_take_print_manager (GValue* value, gpointer v_object);
+gpointer value_get_print_manager (const GValue* value);
+GType print_manager_get_type (void) G_GNUC_CONST;
+PrintManager* print_manager_get_instance (void);
+gpointer standard_print_size_ref (gpointer instance);
+void standard_print_size_unref (gpointer instance);
+GParamSpec* param_spec_standard_print_size (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_standard_print_size (GValue* value, gpointer v_object);
+void value_take_standard_print_size (GValue* value, gpointer v_object);
+gpointer value_get_standard_print_size (const GValue* value);
+GType standard_print_size_get_type (void) G_GNUC_CONST;
+StandardPrintSize** print_manager_get_standard_sizes (PrintManager* self, int* result_length1);
+gint print_settings_get_size_selection (PrintSettings* self);
+void print_settings_get_content_height (PrintSettings* self, Measurement* result);
+void print_settings_get_minimum_content_dimension (PrintSettings* self, Measurement* result);
+void print_settings_get_maximum_content_dimension (PrintSettings* self, Measurement* result);
+gboolean print_settings_is_match_aspect_ratio_enabled (PrintSettings* self);
+gboolean print_settings_is_print_titles_enabled (PrintSettings* self);
+gint print_settings_get_content_ppi (PrintSettings* self);
+gint print_settings_get_image_per_page_selection (PrintSettings* self);
+void print_settings_set_content_layout (PrintSettings* self, ContentLayout content_layout);
+void print_settings_set_content_width (PrintSettings* self, Measurement* content_width);
+void print_settings_set_content_height (PrintSettings* self, Measurement* content_height);
+void print_settings_set_content_ppi (PrintSettings* self, gint content_ppi);
+void print_settings_set_image_per_page_selection (PrintSettings* self, gint image_per_page_selection);
+void print_settings_set_size_selection (PrintSettings* self, gint size_selection);
+void print_settings_set_match_aspect_ratio_enabled (PrintSettings* self, gboolean enable_state);
+void print_settings_set_print_titles_enabled (PrintSettings* self, gboolean print_titles);
+void print_settings_set_print_titles_font (PrintSettings* self, const gchar* fontname);
+gchar* print_settings_get_print_titles_font (PrintSettings* self);
+static void print_settings_finalize (PrintSettings* obj);
+#define MEASUREMENT_CENTIMETERS_PER_INCH 2.54
+#define MEASUREMENT_INCHES_PER_CENTIMETER (1.0 / 2.54)
+void measurement_convert_to (Measurement *self, MeasurementUnit to_unit, Measurement* result);
+gboolean measurement_is_less_than (Measurement *self, Measurement* rhs);
+gboolean measurement_is_greater_than (Measurement *self, Measurement* rhs);
+GType print_layout_get_type (void) G_GNUC_CONST;
+PrintLayout* print_layout_get_all (int* result_length1);
+gint print_layout_get_per_page (PrintLayout self);
+gint print_layout_get_x (PrintLayout self);
+gint print_layout_get_y (PrintLayout self);
+gchar* print_layout_to_string (PrintLayout self);
+GType custom_print_tab_get_type (void) G_GNUC_CONST;
+GType print_job_get_type (void) G_GNUC_CONST;
+#define CUSTOM_PRINT_TAB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CUSTOM_PRINT_TAB, CustomPrintTabPrivate))
+enum {
+ CUSTOM_PRINT_TAB_DUMMY_PROPERTY
+};
+#define CUSTOM_PRINT_TAB_INCHES_COMBO_CHOICE 0
+#define CUSTOM_PRINT_TAB_CENTIMETERS_COMBO_CHOICE 1
+CustomPrintTab* custom_print_tab_new (PrintJob* source_job);
+CustomPrintTab* custom_print_tab_construct (GType object_type, PrintJob* source_job);
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+static void custom_print_tab_on_radio_group_click (CustomPrintTab* self, GtkButton* b);
+static void _custom_print_tab_on_radio_group_click_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static gboolean custom_print_tab_standard_sizes_combo_separator_func (GtkTreeModel* model, GtkTreeIter* iter);
+static gboolean _custom_print_tab_standard_sizes_combo_separator_func_gtk_tree_view_row_separator_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
+static void custom_print_tab_on_entry_insert_text (CustomPrintTab* self, GtkEditable* editable, const gchar* text, gint length, gint* position);
+static void _custom_print_tab_on_entry_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self);
+static gboolean custom_print_tab_on_width_entry_focus_out (CustomPrintTab* self, GdkEventFocus* event);
+static gboolean _custom_print_tab_on_width_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static gboolean custom_print_tab_on_height_entry_focus_out (CustomPrintTab* self, GdkEventFocus* event);
+static gboolean _custom_print_tab_on_height_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static void custom_print_tab_on_units_combo_changed (CustomPrintTab* self);
+static void _custom_print_tab_on_units_combo_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void custom_print_tab_on_ppi_entry_insert_text (CustomPrintTab* self, GtkEditable* editable, const gchar* text, gint length, gint* position);
+static void _custom_print_tab_on_ppi_entry_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self);
+static gboolean custom_print_tab_on_ppi_entry_focus_out (CustomPrintTab* self, GdkEventFocus* event);
+static gboolean _custom_print_tab_on_ppi_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static void custom_print_tab_sync_state_from_job (CustomPrintTab* self, PrintJob* job);
+static void custom_print_tab_on_aspect_ratio_check_clicked (CustomPrintTab* self);
+static void _custom_print_tab_on_aspect_ratio_check_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+gdouble print_job_get_source_aspect_ratio (PrintJob* self);
+static gchar* custom_print_tab_format_measurement (CustomPrintTab* self, Measurement* measurement);
+static gchar* custom_print_tab_format_measurement_as (CustomPrintTab* self, Measurement* measurement, MeasurementUnit to_unit);
+static MeasurementUnit custom_print_tab_get_user_unit_choice (CustomPrintTab* self);
+static void custom_print_tab_get_width_entry_value (CustomPrintTab* self, Measurement* result);
+PrintSettings* print_job_get_local_settings (PrintJob* self);
+static gboolean custom_print_tab_is_match_aspect_ratio_enabled (CustomPrintTab* self);
+static void custom_print_tab_set_content_ppi (CustomPrintTab* self, gint content_ppi);
+static void custom_print_tab_get_height_entry_value (CustomPrintTab* self, Measurement* result);
+static void custom_print_tab_set_user_unit_choice (CustomPrintTab* self, MeasurementUnit unit);
+static void custom_print_tab_set_content_width (CustomPrintTab* self, Measurement* content_width);
+static void custom_print_tab_set_content_height (CustomPrintTab* self, Measurement* content_height);
+static void custom_print_tab_set_content_layout (CustomPrintTab* self, ContentLayout content_layout);
+static void custom_print_tab_set_image_per_page_selection (CustomPrintTab* self, gint image_per_page);
+static void custom_print_tab_set_size_selection (CustomPrintTab* self, gint size_selection);
+static void custom_print_tab_set_match_aspect_ratio_enabled (CustomPrintTab* self, gboolean enable_state);
+static void custom_print_tab_set_print_titles_enabled (CustomPrintTab* self, gboolean print_titles);
+static void custom_print_tab_set_print_titles_font (CustomPrintTab* self, const gchar* fontname);
+static void custom_print_tab_set_content_layout_control_state (CustomPrintTab* self, ContentLayout layout);
+static ContentLayout custom_print_tab_get_content_layout (CustomPrintTab* self);
+static void custom_print_tab_get_content_width (CustomPrintTab* self, Measurement* result);
+static void custom_print_tab_get_content_height (CustomPrintTab* self, Measurement* result);
+static gint custom_print_tab_get_content_ppi (CustomPrintTab* self);
+static gint custom_print_tab_get_image_per_page_selection (CustomPrintTab* self);
+static gint custom_print_tab_get_size_selection (CustomPrintTab* self);
+static gboolean custom_print_tab_is_print_titles_enabled (CustomPrintTab* self);
+static gchar* custom_print_tab_get_print_titles_font (CustomPrintTab* self);
+PrintJob* custom_print_tab_get_source_job (CustomPrintTab* self);
+PrintSettings* custom_print_tab_get_local_settings (CustomPrintTab* self);
+static void custom_print_tab_finalize (GObject* obj);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+#define PRINT_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PRINT_JOB, PrintJobPrivate))
+enum {
+ PRINT_JOB_DUMMY_PROPERTY
+};
+PrintJob* print_job_new (GeeCollection* to_print);
+PrintJob* print_job_construct (GType object_type, GeeCollection* to_print);
+PrintSettings* print_manager_get_global_settings (PrintManager* self);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+gdouble dimensions_get_aspect_ratio (Dimensions *self);
+GeeList* print_job_get_photos (PrintJob* self);
+Photo* print_job_get_source_photo (PrintJob* self);
+void print_job_set_local_settings (PrintJob* self, PrintSettings* settings);
+static void print_job_finalize (GObject* obj);
+enum {
+ STANDARD_PRINT_SIZE_DUMMY_PROPERTY
+};
+StandardPrintSize* standard_print_size_new (const gchar* name, Measurement* width, Measurement* height);
+StandardPrintSize* standard_print_size_construct (GType object_type, const gchar* name, Measurement* width, Measurement* height);
+static void standard_print_size_finalize (StandardPrintSize* obj);
+GType progress_dialog_get_type (void) G_GNUC_CONST;
+#define PRINT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PRINT_MANAGER, PrintManagerPrivate))
+enum {
+ PRINT_MANAGER_DUMMY_PROPERTY
+};
+#define PRINT_MANAGER_IMAGE_DISTANCE 0.24
+static PrintManager* print_manager_new (void);
+static PrintManager* print_manager_construct (GType object_type);
+static void _vala_array_add278 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add279 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add280 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add281 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add282 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add283 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add284 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add285 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add286 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add287 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add288 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add289 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add290 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add291 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+static void _vala_array_add292 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value);
+void print_manager_spool_photo (PrintManager* self, GeeCollection* to_print);
+gchar* data_object_get_name (DataObject* self);
+static void print_manager_on_begin_print (PrintManager* self, GtkPrintOperation* emitting_object, GtkPrintContext* job_context);
+static void _print_manager_on_begin_print_gtk_print_operation_begin_print (GtkPrintOperation* _sender, GtkPrintContext* context, gpointer self);
+static void print_manager_on_draw_page (PrintManager* self, GtkPrintOperation* emitting_object, GtkPrintContext* job_context, gint page_num);
+static void _print_manager_on_draw_page_gtk_print_operation_draw_page (GtkPrintOperation* _sender, GtkPrintContext* context, gint page_nr, gpointer self);
+static GObject* print_manager_on_create_custom_widget (PrintManager* self, GtkPrintOperation* emitting_object);
+static GObject* _print_manager_on_create_custom_widget_gtk_print_operation_create_custom_widget (GtkPrintOperation* _sender, gpointer self);
+static void print_manager_on_status_changed (PrintManager* self, GtkPrintOperation* job);
+static void _print_manager_on_status_changed_gtk_print_operation_status_changed (GtkPrintOperation* _sender, gpointer self);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void page_window_set_busy_cursor (PageWindow* self);
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+void progress_dialog_close (ProgressDialog* self);
+void page_window_set_normal_cursor (PageWindow* self);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+void spin_event_loop (void);
+void progress_dialog_set_status (ProgressDialog* self, const gchar* text);
+static void print_manager_fit_image_to_canvas (PrintManager* self, Photo* photo, gdouble x, gdouble y, gdouble canvas_width, gdouble canvas_height, gboolean crop, PrintJob* job, GtkPrintContext* job_context);
+static void print_manager_add_title_to_canvas (PrintManager* self, gdouble x, gdouble y, const gchar* title, PrintJob* job, GtkPrintContext* job_context);
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
+static void print_manager_on_custom_widget_apply (PrintManager* self, GtkWidget* custom_widget);
+static void _print_manager_on_custom_widget_apply_gtk_print_operation_custom_widget_apply (GtkPrintOperation* _sender, GtkWidget* widget, gpointer self);
+void print_manager_set_global_settings (PrintManager* self, PrintSettings* settings);
+void dimensions_init (Dimensions *self, gint width, gint height);
+static gboolean print_manager_are_approximately_equal (PrintManager* self, gdouble val1, gdouble val2);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void scaling_to_fill_viewport (Dimensions* viewport, Scaling* result);
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up);
+void scaling_for_viewport (Dimensions* viewport, gboolean scale_up, Scaling* result);
+static void _vala_PangoFontDescription_free (PangoFontDescription* self);
+static void print_manager_finalize (PrintManager* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+GType content_layout_get_type (void) {
+ static volatile gsize content_layout_type_id__volatile = 0;
+ if (g_once_init_enter (&content_layout_type_id__volatile)) {
+ static const GEnumValue values[] = {{CONTENT_LAYOUT_STANDARD_SIZE, "CONTENT_LAYOUT_STANDARD_SIZE", "standard-size"}, {CONTENT_LAYOUT_CUSTOM_SIZE, "CONTENT_LAYOUT_CUSTOM_SIZE", "custom-size"}, {CONTENT_LAYOUT_IMAGE_PER_PAGE, "CONTENT_LAYOUT_IMAGE_PER_PAGE", "image-per-page"}, {0, NULL, NULL}};
+ GType content_layout_type_id;
+ content_layout_type_id = g_enum_register_static ("ContentLayout", values);
+ g_once_init_leave (&content_layout_type_id__volatile, content_layout_type_id);
+ }
+ return content_layout_type_id__volatile;
+}
+
+
+PrintSettings* print_settings_construct (GType object_type) {
+ PrintSettings* self = NULL;
+ ConfigFacade* config = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ MeasurementUnit units = 0;
+ gint _tmp1_ = 0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 30 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = (PrintSettings*) g_type_create_instance (object_type);
+#line 31 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 31 "/home/jens/Source/shotwell/src/Printing.vala"
+ config = _tmp0_;
+#line 33 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = configuration_facade_get_printing_content_units (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 33 "/home/jens/Source/shotwell/src/Printing.vala"
+ units = (MeasurementUnit) _tmp1_;
+#line 35 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = configuration_facade_get_printing_content_width (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 35 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&self->priv->content_width, _tmp2_, units);
+#line 36 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = configuration_facade_get_printing_content_height (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 36 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&self->priv->content_height, _tmp3_, units);
+#line 37 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = configuration_facade_get_printing_size_selection (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 37 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->size_selection = _tmp4_;
+#line 38 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = configuration_facade_get_printing_content_layout (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 38 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->content_layout = (ContentLayout) _tmp5_;
+#line 39 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = configuration_facade_get_printing_match_aspect_ratio (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 39 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->match_aspect_ratio = _tmp6_;
+#line 40 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = configuration_facade_get_printing_print_titles (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 40 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->print_titles = _tmp7_;
+#line 41 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = configuration_facade_get_printing_titles_font (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 41 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (self->priv->print_titles_font);
+#line 41 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->print_titles_font = _tmp8_;
+#line 42 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = configuration_facade_get_printing_images_per_page (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 42 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->image_per_page_selection = _tmp9_;
+#line 43 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = configuration_facade_get_printing_content_ppi (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 43 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->content_ppi = _tmp10_;
+#line 30 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (config);
+#line 30 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self;
+#line 734 "Printing.c"
+}
+
+
+PrintSettings* print_settings_new (void) {
+#line 30 "/home/jens/Source/shotwell/src/Printing.vala"
+ return print_settings_construct (TYPE_PRINT_SETTINGS);
+#line 741 "Printing.c"
+}
+
+
+void print_settings_save (PrintSettings* self) {
+ ConfigFacade* config = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ Measurement _tmp1_ = {0};
+ MeasurementUnit _tmp2_ = 0;
+ Measurement _tmp3_ = {0};
+ gdouble _tmp4_ = 0.0;
+ Measurement _tmp5_ = {0};
+ gdouble _tmp6_ = 0.0;
+ gint _tmp7_ = 0;
+ ContentLayout _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 46 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 47 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 47 "/home/jens/Source/shotwell/src/Printing.vala"
+ config = _tmp0_;
+#line 49 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = self->priv->content_width;
+#line 49 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _tmp1_.unit;
+#line 49 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_content_units (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), (gint) _tmp2_);
+#line 50 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->content_width;
+#line 50 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = _tmp3_.value;
+#line 50 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_content_width (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp4_);
+#line 51 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = self->priv->content_height;
+#line 51 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = _tmp5_.value;
+#line 51 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_content_height (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp6_);
+#line 52 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = self->priv->size_selection;
+#line 52 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_size_selection (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp7_);
+#line 53 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = self->priv->content_layout;
+#line 53 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_content_layout (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), (gint) _tmp8_);
+#line 54 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = self->priv->match_aspect_ratio;
+#line 54 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_match_aspect_ratio (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp9_);
+#line 55 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = self->priv->print_titles;
+#line 55 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_print_titles (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp10_);
+#line 56 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = self->priv->print_titles_font;
+#line 56 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_titles_font (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp11_);
+#line 57 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = self->priv->image_per_page_selection;
+#line 57 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_images_per_page (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp12_);
+#line 58 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = self->priv->content_ppi;
+#line 58 "/home/jens/Source/shotwell/src/Printing.vala"
+ configuration_facade_set_printing_content_ppi (G_TYPE_CHECK_INSTANCE_CAST (config, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp13_);
+#line 46 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (config);
+#line 815 "Printing.c"
+}
+
+
+void print_settings_get_content_width (PrintSettings* self, Measurement* result) {
+ ContentLayout _tmp0_ = 0;
+#line 62 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 63 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = print_settings_get_content_layout (self);
+#line 63 "/home/jens/Source/shotwell/src/Printing.vala"
+ switch (_tmp0_) {
+#line 63 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_STANDARD_SIZE:
+#line 63 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_IMAGE_PER_PAGE:
+#line 831 "Printing.c"
+ {
+ PrintManager* _tmp1_ = NULL;
+ PrintManager* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ StandardPrintSize** _tmp4_ = NULL;
+ StandardPrintSize** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ StandardPrintSize* _tmp7_ = NULL;
+ Measurement _tmp8_ = {0};
+ Measurement _tmp9_ = {0};
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = print_manager_get_instance ();
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _tmp1_;
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = print_manager_get_standard_sizes (_tmp2_, &_tmp3_);
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5__length1 = _tmp3_;
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = print_settings_get_size_selection (self);
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = _tmp7_->width;
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _tmp8_;
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) standard_print_size_unref), NULL);
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_manager_unref0 (_tmp2_);
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp9_;
+#line 66 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 869 "Printing.c"
+ }
+#line 63 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_CUSTOM_SIZE:
+#line 873 "Printing.c"
+ {
+ Measurement _tmp10_ = {0};
+#line 70 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = self->priv->content_width;
+#line 70 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp10_;
+#line 70 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 882 "Printing.c"
+ }
+ default:
+ {
+#line 73 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:73: unknown ContentLayout enumeration value");
+#line 888 "Printing.c"
+ }
+ }
+}
+
+
+void print_settings_get_content_height (PrintSettings* self, Measurement* result) {
+ ContentLayout _tmp0_ = 0;
+#line 77 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 78 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = print_settings_get_content_layout (self);
+#line 78 "/home/jens/Source/shotwell/src/Printing.vala"
+ switch (_tmp0_) {
+#line 78 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_STANDARD_SIZE:
+#line 78 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_IMAGE_PER_PAGE:
+#line 906 "Printing.c"
+ {
+ PrintManager* _tmp1_ = NULL;
+ PrintManager* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ StandardPrintSize** _tmp4_ = NULL;
+ StandardPrintSize** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ StandardPrintSize* _tmp7_ = NULL;
+ Measurement _tmp8_ = {0};
+ Measurement _tmp9_ = {0};
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = print_manager_get_instance ();
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _tmp1_;
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = print_manager_get_standard_sizes (_tmp2_, &_tmp3_);
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5__length1 = _tmp3_;
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = print_settings_get_size_selection (self);
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = _tmp7_->height;
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _tmp8_;
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) standard_print_size_unref), NULL);
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_manager_unref0 (_tmp2_);
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp9_;
+#line 81 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 944 "Printing.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_CUSTOM_SIZE:
+#line 948 "Printing.c"
+ {
+ Measurement _tmp10_ = {0};
+#line 85 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = self->priv->content_height;
+#line 85 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp10_;
+#line 85 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 957 "Printing.c"
+ }
+ default:
+ {
+#line 88 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:88: unknown ContentLayout enumeration value");
+#line 963 "Printing.c"
+ }
+ }
+}
+
+
+void print_settings_get_minimum_content_dimension (PrintSettings* self, Measurement* result) {
+ Measurement _tmp0_ = {0};
+#line 92 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 93 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp0_, 0.5, MEASUREMENT_UNIT_INCHES);
+#line 93 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp0_;
+#line 93 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 979 "Printing.c"
+}
+
+
+void print_settings_get_maximum_content_dimension (PrintSettings* self, Measurement* result) {
+ Measurement _tmp0_ = {0};
+#line 96 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 97 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp0_, (gdouble) 30, MEASUREMENT_UNIT_INCHES);
+#line 97 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp0_;
+#line 97 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 993 "Printing.c"
+}
+
+
+gboolean print_settings_is_match_aspect_ratio_enabled (PrintSettings* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 100 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_SETTINGS (self), FALSE);
+#line 101 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->match_aspect_ratio;
+#line 101 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp0_;
+#line 101 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1008 "Printing.c"
+}
+
+
+gboolean print_settings_is_print_titles_enabled (PrintSettings* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 104 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_SETTINGS (self), FALSE);
+#line 105 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->print_titles;
+#line 105 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp0_;
+#line 105 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1023 "Printing.c"
+}
+
+
+gint print_settings_get_content_ppi (PrintSettings* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_SETTINGS (self), 0);
+#line 109 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->content_ppi;
+#line 109 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp0_;
+#line 109 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1038 "Printing.c"
+}
+
+
+gint print_settings_get_image_per_page_selection (PrintSettings* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 112 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_SETTINGS (self), 0);
+#line 113 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->image_per_page_selection;
+#line 113 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp0_;
+#line 113 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1053 "Printing.c"
+}
+
+
+gint print_settings_get_size_selection (PrintSettings* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 116 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_SETTINGS (self), 0);
+#line 117 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->size_selection;
+#line 117 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp0_;
+#line 117 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1068 "Printing.c"
+}
+
+
+ContentLayout print_settings_get_content_layout (PrintSettings* self) {
+ ContentLayout result = 0;
+ ContentLayout _tmp0_ = 0;
+#line 120 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_SETTINGS (self), 0);
+#line 121 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->content_layout;
+#line 121 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp0_;
+#line 121 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1083 "Printing.c"
+}
+
+
+void print_settings_set_content_layout (PrintSettings* self, ContentLayout content_layout) {
+ ContentLayout _tmp0_ = 0;
+#line 124 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 125 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = content_layout;
+#line 125 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->content_layout = _tmp0_;
+#line 1095 "Printing.c"
+}
+
+
+void print_settings_set_content_width (PrintSettings* self, Measurement* content_width) {
+ Measurement _tmp0_ = {0};
+#line 128 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 128 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (content_width != NULL);
+#line 129 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = *content_width;
+#line 129 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->content_width = _tmp0_;
+#line 1109 "Printing.c"
+}
+
+
+void print_settings_set_content_height (PrintSettings* self, Measurement* content_height) {
+ Measurement _tmp0_ = {0};
+#line 132 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 132 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (content_height != NULL);
+#line 133 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = *content_height;
+#line 133 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->content_height = _tmp0_;
+#line 1123 "Printing.c"
+}
+
+
+void print_settings_set_content_ppi (PrintSettings* self, gint content_ppi) {
+ gint _tmp0_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 137 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = content_ppi;
+#line 137 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->content_ppi = _tmp0_;
+#line 1135 "Printing.c"
+}
+
+
+void print_settings_set_image_per_page_selection (PrintSettings* self, gint image_per_page_selection) {
+ gint _tmp0_ = 0;
+#line 140 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 141 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = image_per_page_selection;
+#line 141 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->image_per_page_selection = _tmp0_;
+#line 1147 "Printing.c"
+}
+
+
+void print_settings_set_size_selection (PrintSettings* self, gint size_selection) {
+ gint _tmp0_ = 0;
+#line 144 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 145 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = size_selection;
+#line 145 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->size_selection = _tmp0_;
+#line 1159 "Printing.c"
+}
+
+
+void print_settings_set_match_aspect_ratio_enabled (PrintSettings* self, gboolean enable_state) {
+ gboolean _tmp0_ = FALSE;
+#line 148 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 149 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = enable_state;
+#line 149 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->match_aspect_ratio = _tmp0_;
+#line 1171 "Printing.c"
+}
+
+
+void print_settings_set_print_titles_enabled (PrintSettings* self, gboolean print_titles) {
+ gboolean _tmp0_ = FALSE;
+#line 152 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 153 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = print_titles;
+#line 153 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->print_titles = _tmp0_;
+#line 1183 "Printing.c"
+}
+
+
+void print_settings_set_print_titles_font (PrintSettings* self, const gchar* fontname) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (self));
+#line 156 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (fontname != NULL);
+#line 157 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = fontname;
+#line 157 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 157 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (self->priv->print_titles_font);
+#line 157 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->print_titles_font = _tmp1_;
+#line 1202 "Printing.c"
+}
+
+
+gchar* print_settings_get_print_titles_font (PrintSettings* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_SETTINGS (self), NULL);
+#line 161 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->print_titles_font;
+#line 161 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 161 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 161 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1220 "Printing.c"
+}
+
+
+static void value_print_settings_init (GValue* value) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 1227 "Printing.c"
+}
+
+
+static void value_print_settings_free_value (GValue* value) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (value->data[0].v_pointer) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_unref (value->data[0].v_pointer);
+#line 1236 "Printing.c"
+ }
+}
+
+
+static void value_print_settings_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (src_value->data[0].v_pointer) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ dest_value->data[0].v_pointer = print_settings_ref (src_value->data[0].v_pointer);
+#line 1246 "Printing.c"
+ } else {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1250 "Printing.c"
+ }
+}
+
+
+static gpointer value_print_settings_peek_pointer (const GValue* value) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return value->data[0].v_pointer;
+#line 1258 "Printing.c"
+}
+
+
+static gchar* value_print_settings_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (collect_values[0].v_pointer) {
+#line 1265 "Printing.c"
+ PrintSettings* object;
+ object = collect_values[0].v_pointer;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1272 "Printing.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1276 "Printing.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = print_settings_ref (object);
+#line 1280 "Printing.c"
+ } else {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 1284 "Printing.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return NULL;
+#line 1288 "Printing.c"
+}
+
+
+static gchar* value_print_settings_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PrintSettings** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!object_p) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1299 "Printing.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!value->data[0].v_pointer) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = NULL;
+#line 1305 "Printing.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1309 "Printing.c"
+ } else {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = print_settings_ref (value->data[0].v_pointer);
+#line 1313 "Printing.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return NULL;
+#line 1317 "Printing.c"
+}
+
+
+GParamSpec* param_spec_print_settings (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPrintSettings* spec;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PRINT_SETTINGS), NULL);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return G_PARAM_SPEC (spec);
+#line 1331 "Printing.c"
+}
+
+
+gpointer value_get_print_settings (const GValue* value) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PRINT_SETTINGS), NULL);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return value->data[0].v_pointer;
+#line 1340 "Printing.c"
+}
+
+
+void value_set_print_settings (GValue* value, gpointer v_object) {
+ PrintSettings* old;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PRINT_SETTINGS));
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ old = value->data[0].v_pointer;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (v_object) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PRINT_SETTINGS));
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = v_object;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_ref (value->data[0].v_pointer);
+#line 1360 "Printing.c"
+ } else {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 1364 "Printing.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (old) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_unref (old);
+#line 1370 "Printing.c"
+ }
+}
+
+
+void value_take_print_settings (GValue* value, gpointer v_object) {
+ PrintSettings* old;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PRINT_SETTINGS));
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ old = value->data[0].v_pointer;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (v_object) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PRINT_SETTINGS));
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = v_object;
+#line 1389 "Printing.c"
+ } else {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 1393 "Printing.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (old) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_unref (old);
+#line 1399 "Printing.c"
+ }
+}
+
+
+static void print_settings_class_init (PrintSettingsClass * klass) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_parent_class = g_type_class_peek_parent (klass);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ ((PrintSettingsClass *) klass)->finalize = print_settings_finalize;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_type_class_add_private (klass, sizeof (PrintSettingsPrivate));
+#line 1411 "Printing.c"
+}
+
+
+static void print_settings_instance_init (PrintSettings * self) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv = PRINT_SETTINGS_GET_PRIVATE (self);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->ref_count = 1;
+#line 1420 "Printing.c"
+}
+
+
+static void print_settings_finalize (PrintSettings* obj) {
+ PrintSettings * self;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PRINT_SETTINGS, PrintSettings);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_handlers_destroy (self);
+#line 28 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (self->priv->print_titles_font);
+#line 1432 "Printing.c"
+}
+
+
+GType print_settings_get_type (void) {
+ static volatile gsize print_settings_type_id__volatile = 0;
+ if (g_once_init_enter (&print_settings_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_print_settings_init, value_print_settings_free_value, value_print_settings_copy_value, value_print_settings_peek_pointer, "p", value_print_settings_collect_value, "p", value_print_settings_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PrintSettingsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) print_settings_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PrintSettings), 0, (GInstanceInitFunc) print_settings_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType print_settings_type_id;
+ print_settings_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PrintSettings", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&print_settings_type_id__volatile, print_settings_type_id);
+ }
+ return print_settings_type_id__volatile;
+}
+
+
+gpointer print_settings_ref (gpointer instance) {
+ PrintSettings* self;
+ self = instance;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ return instance;
+#line 1457 "Printing.c"
+}
+
+
+void print_settings_unref (gpointer instance) {
+ PrintSettings* self;
+ self = instance;
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ PRINT_SETTINGS_GET_CLASS (self)->finalize (self);
+#line 13 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1470 "Printing.c"
+ }
+}
+
+
+GType measurement_unit_get_type (void) {
+ static volatile gsize measurement_unit_type_id__volatile = 0;
+ if (g_once_init_enter (&measurement_unit_type_id__volatile)) {
+ static const GEnumValue values[] = {{MEASUREMENT_UNIT_INCHES, "MEASUREMENT_UNIT_INCHES", "inches"}, {MEASUREMENT_UNIT_CENTIMETERS, "MEASUREMENT_UNIT_CENTIMETERS", "centimeters"}, {0, NULL, NULL}};
+ GType measurement_unit_type_id;
+ measurement_unit_type_id = g_enum_register_static ("MeasurementUnit", values);
+ g_once_init_leave (&measurement_unit_type_id__volatile, measurement_unit_type_id);
+ }
+ return measurement_unit_type_id__volatile;
+}
+
+
+void measurement_init (Measurement *self, gdouble value, MeasurementUnit unit) {
+ gdouble _tmp0_ = 0.0;
+ MeasurementUnit _tmp1_ = 0;
+#line 185 "/home/jens/Source/shotwell/src/Printing.vala"
+ memset (self, 0, sizeof (Measurement));
+#line 186 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = value;
+#line 186 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*self).value = _tmp0_;
+#line 187 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = unit;
+#line 187 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*self).unit = _tmp1_;
+#line 1500 "Printing.c"
+}
+
+
+void measurement_convert_to (Measurement *self, MeasurementUnit to_unit, Measurement* result) {
+ MeasurementUnit _tmp0_ = 0;
+ MeasurementUnit _tmp1_ = 0;
+ MeasurementUnit _tmp2_ = 0;
+#line 191 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = (*self).unit;
+#line 191 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = to_unit;
+#line 191 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 192 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = (*self);
+#line 192 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 1518 "Printing.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = to_unit;
+#line 194 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_ == MEASUREMENT_UNIT_INCHES) {
+#line 1524 "Printing.c"
+ gdouble _tmp3_ = 0.0;
+ Measurement _tmp4_ = {0};
+#line 195 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = (*self).value;
+#line 195 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp4_, _tmp3_ * MEASUREMENT_INCHES_PER_CENTIMETER, MEASUREMENT_UNIT_INCHES);
+#line 195 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp4_;
+#line 195 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 1535 "Printing.c"
+ } else {
+ MeasurementUnit _tmp5_ = 0;
+#line 196 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = to_unit;
+#line 196 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp5_ == MEASUREMENT_UNIT_CENTIMETERS) {
+#line 1542 "Printing.c"
+ gdouble _tmp6_ = 0.0;
+ Measurement _tmp7_ = {0};
+#line 197 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = (*self).value;
+#line 197 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp7_, _tmp6_ * MEASUREMENT_CENTIMETERS_PER_INCH, MEASUREMENT_UNIT_CENTIMETERS);
+#line 197 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp7_;
+#line 197 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 1553 "Printing.c"
+ } else {
+#line 199 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:199: unrecognized unit");
+#line 1557 "Printing.c"
+ }
+ }
+}
+
+
+gboolean measurement_is_less_than (Measurement *self, Measurement* rhs) {
+ gboolean result = FALSE;
+ Measurement _tmp0_ = {0};
+ MeasurementUnit _tmp1_ = 0;
+ Measurement _tmp2_ = {0};
+ MeasurementUnit _tmp3_ = 0;
+ Measurement converted_rhs = {0};
+ gdouble _tmp7_ = 0.0;
+ Measurement _tmp8_ = {0};
+ gdouble _tmp9_ = 0.0;
+#line 203 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (rhs != NULL, FALSE);
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = (*self).unit;
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = *rhs;
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = _tmp2_.unit;
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp1_ == _tmp3_) {
+#line 1583 "Printing.c"
+ Measurement _tmp4_ = {0};
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = *rhs;
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = _tmp4_;
+#line 1589 "Printing.c"
+ } else {
+ MeasurementUnit _tmp5_ = 0;
+ Measurement _tmp6_ = {0};
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = (*self).unit;
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (rhs, _tmp5_, &_tmp6_);
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = _tmp6_;
+#line 1599 "Printing.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/Printing.vala"
+ converted_rhs = _tmp0_;
+#line 205 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = (*self).value;
+#line 205 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = converted_rhs;
+#line 205 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _tmp8_.value;
+#line 205 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp7_ < _tmp9_;
+#line 205 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1613 "Printing.c"
+}
+
+
+gboolean measurement_is_greater_than (Measurement *self, Measurement* rhs) {
+ gboolean result = FALSE;
+ Measurement _tmp0_ = {0};
+ MeasurementUnit _tmp1_ = 0;
+ Measurement _tmp2_ = {0};
+ MeasurementUnit _tmp3_ = 0;
+ Measurement converted_rhs = {0};
+ gdouble _tmp7_ = 0.0;
+ Measurement _tmp8_ = {0};
+ gdouble _tmp9_ = 0.0;
+#line 208 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (rhs != NULL, FALSE);
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = (*self).unit;
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = *rhs;
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = _tmp2_.unit;
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp1_ == _tmp3_) {
+#line 1637 "Printing.c"
+ Measurement _tmp4_ = {0};
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = *rhs;
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = _tmp4_;
+#line 1643 "Printing.c"
+ } else {
+ MeasurementUnit _tmp5_ = 0;
+ Measurement _tmp6_ = {0};
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = (*self).unit;
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (rhs, _tmp5_, &_tmp6_);
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = _tmp6_;
+#line 1653 "Printing.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/Printing.vala"
+ converted_rhs = _tmp0_;
+#line 210 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = (*self).value;
+#line 210 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = converted_rhs;
+#line 210 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _tmp8_.value;
+#line 210 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp7_ > _tmp9_;
+#line 210 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1667 "Printing.c"
+}
+
+
+Measurement* measurement_dup (const Measurement* self) {
+ Measurement* dup;
+#line 178 "/home/jens/Source/shotwell/src/Printing.vala"
+ dup = g_new0 (Measurement, 1);
+#line 178 "/home/jens/Source/shotwell/src/Printing.vala"
+ memcpy (dup, self, sizeof (Measurement));
+#line 178 "/home/jens/Source/shotwell/src/Printing.vala"
+ return dup;
+#line 1679 "Printing.c"
+}
+
+
+void measurement_free (Measurement* self) {
+#line 178 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_free (self);
+#line 1686 "Printing.c"
+}
+
+
+GType measurement_get_type (void) {
+ static volatile gsize measurement_type_id__volatile = 0;
+ if (g_once_init_enter (&measurement_type_id__volatile)) {
+ GType measurement_type_id;
+ measurement_type_id = g_boxed_type_register_static ("Measurement", (GBoxedCopyFunc) measurement_dup, (GBoxedFreeFunc) measurement_free);
+ g_once_init_leave (&measurement_type_id__volatile, measurement_type_id);
+ }
+ return measurement_type_id__volatile;
+}
+
+
+PrintLayout* print_layout_get_all (int* result_length1) {
+ PrintLayout* result = NULL;
+ PrintLayout* _tmp0_ = NULL;
+ PrintLayout* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = g_new0 (PrintLayout, 7);
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[0] = PRINT_LAYOUT_ENTIRE_PAGE;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[1] = PRINT_LAYOUT_TWO_PER_PAGE;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[2] = PRINT_LAYOUT_FOUR_PER_PAGE;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[3] = PRINT_LAYOUT_SIX_PER_PAGE;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[4] = PRINT_LAYOUT_EIGHT_PER_PAGE;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[5] = PRINT_LAYOUT_SIXTEEN_PER_PAGE;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[6] = PRINT_LAYOUT_THIRTY_TWO_PER_PAGE;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _tmp0_;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1__length1 = 7;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (result_length1) {
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result_length1 = _tmp1__length1;
+#line 1730 "Printing.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 224 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1736 "Printing.c"
+}
+
+
+gint print_layout_get_per_page (PrintLayout self) {
+ gint result = 0;
+ gint* per_page = NULL;
+ gint* _tmp0_ = NULL;
+ gint per_page_length1 = 0;
+ gint _per_page_size_ = 0;
+ gint _tmp1_ = 0;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = g_new0 (gint, 7);
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[0] = 1;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[1] = 2;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[2] = 4;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[3] = 6;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[4] = 8;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[5] = 16;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[6] = 32;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ per_page = _tmp0_;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ per_page_length1 = 7;
+#line 236 "/home/jens/Source/shotwell/src/Printing.vala"
+ _per_page_size_ = per_page_length1;
+#line 238 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = per_page[self];
+#line 238 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 238 "/home/jens/Source/shotwell/src/Printing.vala"
+ per_page = (g_free (per_page), NULL);
+#line 238 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1777 "Printing.c"
+}
+
+
+gint print_layout_get_x (PrintLayout self) {
+ gint result = 0;
+ gint* x = NULL;
+ gint* _tmp0_ = NULL;
+ gint x_length1 = 0;
+ gint _x_size_ = 0;
+ gint _tmp1_ = 0;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = g_new0 (gint, 7);
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[0] = 1;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[1] = 1;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[2] = 2;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[3] = 2;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[4] = 2;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[5] = 4;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[6] = 4;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ x = _tmp0_;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ x_length1 = 7;
+#line 242 "/home/jens/Source/shotwell/src/Printing.vala"
+ _x_size_ = x_length1;
+#line 244 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = x[self];
+#line 244 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 244 "/home/jens/Source/shotwell/src/Printing.vala"
+ x = (g_free (x), NULL);
+#line 244 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1818 "Printing.c"
+}
+
+
+gint print_layout_get_y (PrintLayout self) {
+ gint result = 0;
+ gint* y = NULL;
+ gint* _tmp0_ = NULL;
+ gint y_length1 = 0;
+ gint _y_size_ = 0;
+ gint _tmp1_ = 0;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = g_new0 (gint, 7);
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[0] = 1;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[1] = 2;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[2] = 2;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[3] = 3;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[4] = 4;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[5] = 4;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_[6] = 8;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ y = _tmp0_;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ y_length1 = 7;
+#line 248 "/home/jens/Source/shotwell/src/Printing.vala"
+ _y_size_ = y_length1;
+#line 250 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = y[self];
+#line 250 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 250 "/home/jens/Source/shotwell/src/Printing.vala"
+ y = (g_free (y), NULL);
+#line 250 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1859 "Printing.c"
+}
+
+
+gchar* print_layout_to_string (PrintLayout self) {
+ gchar* result = NULL;
+ gchar** labels = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gint labels_length1 = 0;
+ gint _labels_size_ = 0;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = _ ("Fill the entire page");
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _ ("2 images per page");
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = _ ("4 images per page");
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = _ ("6 images per page");
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = _ ("8 images per page");
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = _ ("16 images per page");
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _ ("32 images per page");
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = g_new0 (gchar*, 7 + 1);
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_[0] = _tmp1_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_[1] = _tmp3_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_[2] = _tmp5_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_[3] = _tmp7_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_[4] = _tmp9_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_[5] = _tmp11_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_[6] = _tmp13_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ labels = _tmp14_;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ labels_length1 = 7;
+#line 254 "/home/jens/Source/shotwell/src/Printing.vala"
+ _labels_size_ = labels_length1;
+#line 264 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = labels[self];
+#line 264 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 264 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp16_;
+#line 264 "/home/jens/Source/shotwell/src/Printing.vala"
+ labels = (_vala_array_free (labels, labels_length1, (GDestroyNotify) g_free), NULL);
+#line 264 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1945 "Printing.c"
+}
+
+
+GType print_layout_get_type (void) {
+ static volatile gsize print_layout_type_id__volatile = 0;
+ if (g_once_init_enter (&print_layout_type_id__volatile)) {
+ static const GEnumValue values[] = {{PRINT_LAYOUT_ENTIRE_PAGE, "PRINT_LAYOUT_ENTIRE_PAGE", "entire-page"}, {PRINT_LAYOUT_TWO_PER_PAGE, "PRINT_LAYOUT_TWO_PER_PAGE", "two-per-page"}, {PRINT_LAYOUT_FOUR_PER_PAGE, "PRINT_LAYOUT_FOUR_PER_PAGE", "four-per-page"}, {PRINT_LAYOUT_SIX_PER_PAGE, "PRINT_LAYOUT_SIX_PER_PAGE", "six-per-page"}, {PRINT_LAYOUT_EIGHT_PER_PAGE, "PRINT_LAYOUT_EIGHT_PER_PAGE", "eight-per-page"}, {PRINT_LAYOUT_SIXTEEN_PER_PAGE, "PRINT_LAYOUT_SIXTEEN_PER_PAGE", "sixteen-per-page"}, {PRINT_LAYOUT_THIRTY_TWO_PER_PAGE, "PRINT_LAYOUT_THIRTY_TWO_PER_PAGE", "thirty-two-per-page"}, {0, NULL, NULL}};
+ GType print_layout_type_id;
+ print_layout_type_id = g_enum_register_static ("PrintLayout", values);
+ g_once_init_leave (&print_layout_type_id__volatile, print_layout_type_id);
+ }
+ return print_layout_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 292 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1964 "Printing.c"
+}
+
+
+static void _custom_print_tab_on_radio_group_click_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 299 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_on_radio_group_click ((CustomPrintTab*) self, _sender);
+#line 1971 "Printing.c"
+}
+
+
+static gboolean _custom_print_tab_standard_sizes_combo_separator_func_gtk_tree_view_row_separator_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self) {
+ gboolean result;
+ result = custom_print_tab_standard_sizes_combo_separator_func (model, iter);
+#line 329 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 1980 "Printing.c"
+}
+
+
+static gpointer _standard_print_size_ref0 (gpointer self) {
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self ? standard_print_size_ref (self) : NULL;
+#line 1987 "Printing.c"
+}
+
+
+static void _custom_print_tab_on_entry_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self) {
+#line 340 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_on_entry_insert_text ((CustomPrintTab*) self, _sender, new_text, new_text_length, position);
+#line 1994 "Printing.c"
+}
+
+
+static gboolean _custom_print_tab_on_width_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = custom_print_tab_on_width_entry_focus_out ((CustomPrintTab*) self, event);
+#line 341 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2003 "Printing.c"
+}
+
+
+static gboolean _custom_print_tab_on_height_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = custom_print_tab_on_height_entry_focus_out ((CustomPrintTab*) self, event);
+#line 345 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2012 "Printing.c"
+}
+
+
+static void _custom_print_tab_on_units_combo_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 351 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_on_units_combo_changed ((CustomPrintTab*) self);
+#line 2019 "Printing.c"
+}
+
+
+static void _custom_print_tab_on_ppi_entry_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self) {
+#line 358 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_on_ppi_entry_insert_text ((CustomPrintTab*) self, _sender, new_text, new_text_length, position);
+#line 2026 "Printing.c"
+}
+
+
+static gboolean _custom_print_tab_on_ppi_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = custom_print_tab_on_ppi_entry_focus_out ((CustomPrintTab*) self, event);
+#line 359 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2035 "Printing.c"
+}
+
+
+static void _custom_print_tab_on_aspect_ratio_check_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 368 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_on_aspect_ratio_check_clicked ((CustomPrintTab*) self);
+#line 2042 "Printing.c"
+}
+
+
+CustomPrintTab* custom_print_tab_construct (GType object_type, PrintJob* source_job) {
+ CustomPrintTab * self = NULL;
+ PrintJob* _tmp0_ = NULL;
+ PrintJob* _tmp1_ = NULL;
+ GtkBuilder* builder = NULL;
+ GtkBuilder* _tmp2_ = NULL;
+ GtkBuilder* _tmp3_ = NULL;
+ GObject* _tmp4_ = NULL;
+ GtkBox* _tmp5_ = NULL;
+ GtkBuilder* _tmp6_ = NULL;
+ GObject* _tmp7_ = NULL;
+ GtkRadioButton* _tmp8_ = NULL;
+ GtkRadioButton* _tmp9_ = NULL;
+ GtkBuilder* _tmp10_ = NULL;
+ GObject* _tmp11_ = NULL;
+ GtkRadioButton* _tmp12_ = NULL;
+ GtkRadioButton* _tmp13_ = NULL;
+ GtkBuilder* _tmp14_ = NULL;
+ GObject* _tmp15_ = NULL;
+ GtkRadioButton* _tmp16_ = NULL;
+ GtkRadioButton* _tmp17_ = NULL;
+ GtkBuilder* _tmp18_ = NULL;
+ GObject* _tmp19_ = NULL;
+ GtkComboBox* _tmp20_ = NULL;
+ GtkCellRendererText* image_per_page_combo_text_renderer = NULL;
+ GtkCellRendererText* _tmp21_ = NULL;
+ GtkComboBox* _tmp22_ = NULL;
+ GtkCellRendererText* _tmp23_ = NULL;
+ GtkComboBox* _tmp24_ = NULL;
+ GtkCellRendererText* _tmp25_ = NULL;
+ GtkListStore* image_per_page_combo_store = NULL;
+ GtkListStore* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ PrintLayout* _tmp28_ = NULL;
+ GtkComboBox* _tmp36_ = NULL;
+ GtkListStore* _tmp37_ = NULL;
+ StandardPrintSize** standard_sizes = NULL;
+ PrintManager* _tmp38_ = NULL;
+ PrintManager* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ StandardPrintSize** _tmp41_ = NULL;
+ StandardPrintSize** _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ gint standard_sizes_length1 = 0;
+ gint _standard_sizes_size_ = 0;
+ GtkBuilder* _tmp43_ = NULL;
+ GObject* _tmp44_ = NULL;
+ GtkComboBox* _tmp45_ = NULL;
+ GtkCellRendererText* standard_sizes_combo_text_renderer = NULL;
+ GtkCellRendererText* _tmp46_ = NULL;
+ GtkComboBox* _tmp47_ = NULL;
+ GtkCellRendererText* _tmp48_ = NULL;
+ GtkComboBox* _tmp49_ = NULL;
+ GtkCellRendererText* _tmp50_ = NULL;
+ GtkComboBox* _tmp51_ = NULL;
+ GtkListStore* standard_sizes_combo_store = NULL;
+ GtkListStore* _tmp52_ = NULL;
+ StandardPrintSize** _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ GtkComboBox* _tmp62_ = NULL;
+ GtkListStore* _tmp63_ = NULL;
+ GtkBuilder* _tmp64_ = NULL;
+ GObject* _tmp65_ = NULL;
+ GtkEntry* _tmp66_ = NULL;
+ GtkEntry* _tmp67_ = NULL;
+ GtkEntry* _tmp68_ = NULL;
+ GtkBuilder* _tmp69_ = NULL;
+ GObject* _tmp70_ = NULL;
+ GtkEntry* _tmp71_ = NULL;
+ GtkEntry* _tmp72_ = NULL;
+ GtkEntry* _tmp73_ = NULL;
+ GtkBuilder* _tmp74_ = NULL;
+ GObject* _tmp75_ = NULL;
+ GtkComboBoxText* _tmp76_ = NULL;
+ GtkComboBoxText* _tmp77_ = NULL;
+ const gchar* _tmp78_ = NULL;
+ GtkComboBoxText* _tmp79_ = NULL;
+ const gchar* _tmp80_ = NULL;
+ GtkComboBoxText* _tmp81_ = NULL;
+ GtkComboBoxText* _tmp82_ = NULL;
+ GtkBuilder* _tmp83_ = NULL;
+ GObject* _tmp84_ = NULL;
+ GtkCheckButton* _tmp85_ = NULL;
+ GtkBuilder* _tmp86_ = NULL;
+ GObject* _tmp87_ = NULL;
+ GtkCheckButton* _tmp88_ = NULL;
+ GtkBuilder* _tmp89_ = NULL;
+ GObject* _tmp90_ = NULL;
+ GtkFontButton* _tmp91_ = NULL;
+ GtkBuilder* _tmp92_ = NULL;
+ GObject* _tmp93_ = NULL;
+ GtkEntry* _tmp94_ = NULL;
+ GtkEntry* _tmp95_ = NULL;
+ GtkEntry* _tmp96_ = NULL;
+ GtkBox* _tmp97_ = NULL;
+ PrintJob* _tmp98_ = NULL;
+ GtkCheckButton* _tmp99_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_JOB (source_job), NULL);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = (CustomPrintTab*) g_object_new (object_type, NULL);
+#line 292 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = source_job;
+#line 292 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 292 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->source_job);
+#line 292 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->source_job = _tmp1_;
+#line 293 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 293 "/home/jens/Source/shotwell/src/Printing.vala"
+ builder = _tmp2_;
+#line 296 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = builder;
+#line 296 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = gtk_builder_get_object (_tmp3_, "box_ImgSettingsPane");
+#line 296 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, gtk_box_get_type ()) ? ((GtkBox*) _tmp4_) : NULL);
+#line 296 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_image_settings_pane);
+#line 296 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_image_settings_pane = _tmp5_;
+#line 298 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = builder;
+#line 298 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = gtk_builder_get_object (_tmp6_, "radio_UseStandardSize");
+#line 298 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, gtk_radio_button_get_type ()) ? ((GtkRadioButton*) _tmp7_) : NULL);
+#line 298 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->standard_size_radio);
+#line 298 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->standard_size_radio = _tmp8_;
+#line 299 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = self->priv->standard_size_radio;
+#line 299 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_button_get_type (), GtkButton), "clicked", (GCallback) _custom_print_tab_on_radio_group_click_gtk_button_clicked, self, 0);
+#line 301 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = builder;
+#line 301 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = gtk_builder_get_object (_tmp10_, "radio_UseCustomSize");
+#line 301 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, gtk_radio_button_get_type ()) ? ((GtkRadioButton*) _tmp11_) : NULL);
+#line 301 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_size_radio);
+#line 301 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_size_radio = _tmp12_;
+#line 302 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = self->priv->custom_size_radio;
+#line 302 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_button_get_type (), GtkButton), "clicked", (GCallback) _custom_print_tab_on_radio_group_click_gtk_button_clicked, self, 0);
+#line 304 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = builder;
+#line 304 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = gtk_builder_get_object (_tmp14_, "radio_Autosize");
+#line 304 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, gtk_radio_button_get_type ()) ? ((GtkRadioButton*) _tmp15_) : NULL);
+#line 304 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->image_per_page_radio);
+#line 304 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->image_per_page_radio = _tmp16_;
+#line 305 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = self->priv->image_per_page_radio;
+#line 305 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_button_get_type (), GtkButton), "clicked", (GCallback) _custom_print_tab_on_radio_group_click_gtk_button_clicked, self, 0);
+#line 307 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = builder;
+#line 307 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = gtk_builder_get_object (_tmp18_, "combo_Autosize");
+#line 307 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, gtk_combo_box_get_type ()) ? ((GtkComboBox*) _tmp19_) : NULL);
+#line 307 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->image_per_page_combo);
+#line 307 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->image_per_page_combo = _tmp20_;
+#line 308 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 308 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_object_ref_sink (_tmp21_);
+#line 308 "/home/jens/Source/shotwell/src/Printing.vala"
+ image_per_page_combo_text_renderer = _tmp21_;
+#line 310 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = self->priv->image_per_page_combo;
+#line 310 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = image_per_page_combo_text_renderer;
+#line 310 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 311 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = self->priv->image_per_page_combo;
+#line 311 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = image_per_page_combo_text_renderer;
+#line 311 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", 0);
+#line 313 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING, -1);
+#line 313 "/home/jens/Source/shotwell/src/Printing.vala"
+ image_per_page_combo_store = _tmp26_;
+#line 315 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = print_layout_get_all (&_tmp27_);
+#line 2245 "Printing.c"
+ {
+ PrintLayout* layout_collection = NULL;
+ gint layout_collection_length1 = 0;
+ gint _layout_collection_size_ = 0;
+ gint layout_it = 0;
+#line 315 "/home/jens/Source/shotwell/src/Printing.vala"
+ layout_collection = _tmp28_;
+#line 315 "/home/jens/Source/shotwell/src/Printing.vala"
+ layout_collection_length1 = _tmp27_;
+#line 315 "/home/jens/Source/shotwell/src/Printing.vala"
+ for (layout_it = 0; layout_it < _tmp27_; layout_it = layout_it + 1) {
+#line 2257 "Printing.c"
+ PrintLayout layout = 0;
+#line 315 "/home/jens/Source/shotwell/src/Printing.vala"
+ layout = layout_collection[layout_it];
+#line 2261 "Printing.c"
+ {
+ GtkTreeIter iter = {0};
+ GtkListStore* _tmp29_ = NULL;
+ GtkTreeIter _tmp30_ = {0};
+ GtkListStore* _tmp31_ = NULL;
+ GtkTreeIter _tmp32_ = {0};
+ PrintLayout _tmp33_ = 0;
+ gchar* _tmp34_ = NULL;
+ GValue _tmp35_ = {0};
+#line 317 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = image_per_page_combo_store;
+#line 317 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_list_store_append (_tmp29_, &_tmp30_);
+#line 317 "/home/jens/Source/shotwell/src/Printing.vala"
+ iter = _tmp30_;
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = image_per_page_combo_store;
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = iter;
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp33_ = layout;
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp34_ = print_layout_to_string (_tmp33_);
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_value_init (&_tmp35_, G_TYPE_STRING);
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_value_take_string (&_tmp35_, _tmp34_);
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_list_store_set_value (_tmp31_, &_tmp32_, 0, &_tmp35_);
+#line 318 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_IS_VALUE (&_tmp35_) ? (g_value_unset (&_tmp35_), NULL) : NULL;
+#line 2293 "Printing.c"
+ }
+ }
+#line 315 "/home/jens/Source/shotwell/src/Printing.vala"
+ layout_collection = (g_free (layout_collection), NULL);
+#line 2298 "Printing.c"
+ }
+#line 320 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36_ = self->priv->image_per_page_combo;
+#line 320 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = image_per_page_combo_store;
+#line 320 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_model (_tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp38_ = print_manager_get_instance ();
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = _tmp38_;
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = print_manager_get_standard_sizes (_tmp39_, &_tmp40_);
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = _tmp41_;
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42__length1 = _tmp40_;
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_manager_unref0 (_tmp39_);
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_sizes = _tmp42_;
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_sizes_length1 = _tmp42__length1;
+#line 322 "/home/jens/Source/shotwell/src/Printing.vala"
+ _standard_sizes_size_ = standard_sizes_length1;
+#line 323 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp43_ = builder;
+#line 323 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp44_ = gtk_builder_get_object (_tmp43_, "combo_StdSizes");
+#line 323 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp45_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp44_, gtk_combo_box_get_type ()) ? ((GtkComboBox*) _tmp44_) : NULL);
+#line 323 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->standard_sizes_combo);
+#line 323 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->standard_sizes_combo = _tmp45_;
+#line 324 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp46_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 324 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_object_ref_sink (_tmp46_);
+#line 324 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_sizes_combo_text_renderer = _tmp46_;
+#line 326 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp47_ = self->priv->standard_sizes_combo;
+#line 326 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp48_ = standard_sizes_combo_text_renderer;
+#line 326 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 327 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp49_ = self->priv->standard_sizes_combo;
+#line 327 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp50_ = standard_sizes_combo_text_renderer;
+#line 327 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", 0);
+#line 329 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp51_ = self->priv->standard_sizes_combo;
+#line 329 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_row_separator_func (_tmp51_, _custom_print_tab_standard_sizes_combo_separator_func_gtk_tree_view_row_separator_func, NULL, NULL);
+#line 330 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp52_ = gtk_list_store_new (1, G_TYPE_STRING, G_TYPE_STRING, -1);
+#line 330 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_sizes_combo_store = _tmp52_;
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp53_ = standard_sizes;
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp53__length1 = standard_sizes_length1;
+#line 2364 "Printing.c"
+ {
+ StandardPrintSize** size_collection = NULL;
+ gint size_collection_length1 = 0;
+ gint _size_collection_size_ = 0;
+ gint size_it = 0;
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ size_collection = _tmp53_;
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ size_collection_length1 = _tmp53__length1;
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ for (size_it = 0; size_it < _tmp53__length1; size_it = size_it + 1) {
+#line 2376 "Printing.c"
+ StandardPrintSize* _tmp54_ = NULL;
+ StandardPrintSize* size = NULL;
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp54_ = _standard_print_size_ref0 (size_collection[size_it]);
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ size = _tmp54_;
+#line 2383 "Printing.c"
+ {
+ GtkTreeIter iter = {0};
+ GtkListStore* _tmp55_ = NULL;
+ GtkTreeIter _tmp56_ = {0};
+ GtkListStore* _tmp57_ = NULL;
+ GtkTreeIter _tmp58_ = {0};
+ StandardPrintSize* _tmp59_ = NULL;
+ const gchar* _tmp60_ = NULL;
+ GValue _tmp61_ = {0};
+#line 334 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp55_ = standard_sizes_combo_store;
+#line 334 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_list_store_append (_tmp55_, &_tmp56_);
+#line 334 "/home/jens/Source/shotwell/src/Printing.vala"
+ iter = _tmp56_;
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp57_ = standard_sizes_combo_store;
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp58_ = iter;
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp59_ = size;
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp60_ = _tmp59_->name;
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_value_init (&_tmp61_, G_TYPE_STRING);
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_value_set_string (&_tmp61_, _tmp60_);
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_list_store_set_value (_tmp57_, &_tmp58_, 0, &_tmp61_);
+#line 335 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_IS_VALUE (&_tmp61_) ? (g_value_unset (&_tmp61_), NULL) : NULL;
+#line 332 "/home/jens/Source/shotwell/src/Printing.vala"
+ _standard_print_size_unref0 (size);
+#line 2417 "Printing.c"
+ }
+ }
+ }
+#line 337 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp62_ = self->priv->standard_sizes_combo;
+#line 337 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp63_ = standard_sizes_combo_store;
+#line 337 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_model (_tmp62_, G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 339 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp64_ = builder;
+#line 339 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp65_ = gtk_builder_get_object (_tmp64_, "entry_CustomWidth");
+#line 339 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp66_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp65_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp65_) : NULL);
+#line 339 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_width_entry);
+#line 339 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_width_entry = _tmp66_;
+#line 340 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp67_ = self->priv->custom_width_entry;
+#line 340 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GTK_TYPE_EDITABLE, GtkEditable), "insert-text", (GCallback) _custom_print_tab_on_entry_insert_text_gtk_editable_insert_text, self, 0);
+#line 341 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp68_ = self->priv->custom_width_entry;
+#line 341 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _custom_print_tab_on_width_entry_focus_out_gtk_widget_focus_out_event, self, 0);
+#line 343 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp69_ = builder;
+#line 343 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp70_ = gtk_builder_get_object (_tmp69_, "entry_CustomHeight");
+#line 343 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp71_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp70_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp70_) : NULL);
+#line 343 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_height_entry);
+#line 343 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_height_entry = _tmp71_;
+#line 344 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp72_ = self->priv->custom_height_entry;
+#line 344 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, GTK_TYPE_EDITABLE, GtkEditable), "insert-text", (GCallback) _custom_print_tab_on_entry_insert_text_gtk_editable_insert_text, self, 0);
+#line 345 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp73_ = self->priv->custom_height_entry;
+#line 345 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _custom_print_tab_on_height_entry_focus_out_gtk_widget_focus_out_event, self, 0);
+#line 347 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp74_ = builder;
+#line 347 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp75_ = gtk_builder_get_object (_tmp74_, "combo_Units");
+#line 347 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp76_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp75_, gtk_combo_box_text_get_type ()) ? ((GtkComboBoxText*) _tmp75_) : NULL);
+#line 347 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->units_combo);
+#line 347 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->units_combo = _tmp76_;
+#line 348 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp77_ = self->priv->units_combo;
+#line 348 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp78_ = _ ("in.");
+#line 348 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_text_append_text (_tmp77_, _tmp78_);
+#line 349 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp79_ = self->priv->units_combo;
+#line 349 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp80_ = _ ("cm");
+#line 349 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_text_append_text (_tmp79_, _tmp80_);
+#line 350 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp81_ = self->priv->units_combo;
+#line 350 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 351 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp82_ = self->priv->units_combo;
+#line 351 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _custom_print_tab_on_units_combo_changed_gtk_combo_box_changed, self, 0);
+#line 353 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp83_ = builder;
+#line 353 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp84_ = gtk_builder_get_object (_tmp83_, "check_MatchAspectRatio");
+#line 353 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp85_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp84_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp84_) : NULL);
+#line 353 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->aspect_ratio_check);
+#line 353 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->aspect_ratio_check = _tmp85_;
+#line 354 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp86_ = builder;
+#line 354 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp87_ = gtk_builder_get_object (_tmp86_, "check_PrintImageTitle");
+#line 354 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp88_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp87_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp87_) : NULL);
+#line 354 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->title_print_check);
+#line 354 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->title_print_check = _tmp88_;
+#line 355 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp89_ = builder;
+#line 355 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp90_ = gtk_builder_get_object (_tmp89_, "fntbn_TitleFont");
+#line 355 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp91_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp90_, gtk_font_button_get_type ()) ? ((GtkFontButton*) _tmp90_) : NULL);
+#line 355 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->title_print_font);
+#line 355 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->title_print_font = _tmp91_;
+#line 357 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp92_ = builder;
+#line 357 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp93_ = gtk_builder_get_object (_tmp92_, "entry_PixelsPerInch");
+#line 357 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp94_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp93_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp93_) : NULL);
+#line 357 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->ppi_entry);
+#line 357 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->ppi_entry = _tmp94_;
+#line 358 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp95_ = self->priv->ppi_entry;
+#line 358 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp95_, GTK_TYPE_EDITABLE, GtkEditable), "insert-text", (GCallback) _custom_print_tab_on_ppi_entry_insert_text_gtk_editable_insert_text, self, 0);
+#line 359 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp96_ = self->priv->ppi_entry;
+#line 359 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp96_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _custom_print_tab_on_ppi_entry_focus_out_gtk_widget_focus_out_event, self, 0);
+#line 361 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp97_ = self->priv->custom_image_settings_pane;
+#line 361 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp97_, gtk_widget_get_type (), GtkWidget));
+#line 363 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp98_ = source_job;
+#line 363 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_sync_state_from_job (self, _tmp98_);
+#line 365 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 368 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp99_ = self->priv->aspect_ratio_check;
+#line 368 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, gtk_button_get_type (), GtkButton), "clicked", (GCallback) _custom_print_tab_on_aspect_ratio_check_clicked_gtk_button_clicked, self, 0);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (standard_sizes_combo_store);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (standard_sizes_combo_text_renderer);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_sizes = (_vala_array_free (standard_sizes, standard_sizes_length1, (GDestroyNotify) standard_print_size_unref), NULL);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (image_per_page_combo_store);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (image_per_page_combo_text_renderer);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (builder);
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self;
+#line 2569 "Printing.c"
+}
+
+
+CustomPrintTab* custom_print_tab_new (PrintJob* source_job) {
+#line 291 "/home/jens/Source/shotwell/src/Printing.vala"
+ return custom_print_tab_construct (TYPE_CUSTOM_PRINT_TAB, source_job);
+#line 2576 "Printing.c"
+}
+
+
+static void custom_print_tab_on_aspect_ratio_check_clicked (CustomPrintTab* self) {
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 371 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 372 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->aspect_ratio_check;
+#line 372 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 372 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp1_) {
+#line 2591 "Printing.c"
+ Measurement _tmp2_ = {0};
+ gdouble _tmp3_ = 0.0;
+ PrintJob* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ Measurement _tmp6_ = {0};
+ MeasurementUnit _tmp7_ = 0;
+ GtkEntry* _tmp8_ = NULL;
+ Measurement _tmp9_ = {0};
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 373 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->local_content_height;
+#line 373 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = _tmp2_.value;
+#line 373 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = self->priv->source_job;
+#line 373 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = print_job_get_source_aspect_ratio (_tmp4_);
+#line 373 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = self->priv->local_content_height;
+#line 373 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _tmp6_.unit;
+#line 373 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&self->priv->local_content_width, _tmp3_ * _tmp5_, _tmp7_);
+#line 376 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = self->priv->custom_width_entry;
+#line 376 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = self->priv->local_content_width;
+#line 376 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = custom_print_tab_format_measurement (self, &_tmp9_);
+#line 376 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = _tmp10_;
+#line 376 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp8_, _tmp11_);
+#line 376 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp11_);
+#line 2628 "Printing.c"
+ }
+}
+
+
+static gboolean custom_print_tab_on_width_entry_focus_out (CustomPrintTab* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+ GtkEntry* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ Measurement _tmp2_ = {0};
+ MeasurementUnit _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ Measurement new_width = {0};
+ Measurement _tmp7_ = {0};
+ Measurement min_width = {0};
+ PrintJob* _tmp8_ = NULL;
+ PrintSettings* _tmp9_ = NULL;
+ PrintSettings* _tmp10_ = NULL;
+ Measurement _tmp11_ = {0};
+ Measurement _tmp12_ = {0};
+ Measurement max_width = {0};
+ PrintJob* _tmp13_ = NULL;
+ PrintSettings* _tmp14_ = NULL;
+ PrintSettings* _tmp15_ = NULL;
+ Measurement _tmp16_ = {0};
+ Measurement _tmp17_ = {0};
+ gboolean _tmp18_ = FALSE;
+ Measurement _tmp19_ = {0};
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ Measurement _tmp39_ = {0};
+ GtkEntry* _tmp40_ = NULL;
+ Measurement _tmp41_ = {0};
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+#line 380 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), FALSE);
+#line 380 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->custom_width_entry;
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->local_content_width;
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = custom_print_tab_get_user_unit_choice (self);
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = custom_print_tab_format_measurement_as (self, &_tmp2_, _tmp3_);
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = g_strcmp0 (_tmp1_, _tmp5_) == 0;
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp5_);
+#line 381 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp6_) {
+#line 383 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = FALSE;
+#line 383 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2691 "Printing.c"
+ }
+#line 385 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_get_width_entry_value (self, &_tmp7_);
+#line 385 "/home/jens/Source/shotwell/src/Printing.vala"
+ new_width = _tmp7_;
+#line 386 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = self->priv->source_job;
+#line 386 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = print_job_get_local_settings (_tmp8_);
+#line 386 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = _tmp9_;
+#line 386 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_minimum_content_dimension (_tmp10_, &_tmp11_);
+#line 386 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _tmp11_;
+#line 386 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp10_);
+#line 386 "/home/jens/Source/shotwell/src/Printing.vala"
+ min_width = _tmp12_;
+#line 387 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = self->priv->source_job;
+#line 387 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = print_job_get_local_settings (_tmp13_);
+#line 387 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = _tmp14_;
+#line 387 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_maximum_content_dimension (_tmp15_, &_tmp16_);
+#line 387 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _tmp16_;
+#line 387 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp15_);
+#line 387 "/home/jens/Source/shotwell/src/Printing.vala"
+ max_width = _tmp17_;
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = min_width;
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = measurement_is_less_than (&new_width, &_tmp19_);
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp20_) {
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = TRUE;
+#line 2733 "Printing.c"
+ } else {
+ Measurement _tmp21_ = {0};
+ gboolean _tmp22_ = FALSE;
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = max_width;
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = measurement_is_greater_than (&new_width, &_tmp21_);
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = _tmp22_;
+#line 2743 "Printing.c"
+ }
+#line 389 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp18_) {
+#line 2747 "Printing.c"
+ GtkEntry* _tmp23_ = NULL;
+ Measurement _tmp24_ = {0};
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = self->priv->custom_width_entry;
+#line 390 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = self->priv->local_content_width;
+#line 390 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = custom_print_tab_format_measurement (self, &_tmp24_);
+#line 390 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = _tmp25_;
+#line 390 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp23_, _tmp26_);
+#line 390 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp26_);
+#line 391 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = FALSE;
+#line 391 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2768 "Printing.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = custom_print_tab_is_match_aspect_ratio_enabled (self);
+#line 394 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp27_) {
+#line 2774 "Printing.c"
+ Measurement new_height = {0};
+ Measurement _tmp28_ = {0};
+ gdouble _tmp29_ = 0.0;
+ PrintJob* _tmp30_ = NULL;
+ gdouble _tmp31_ = 0.0;
+ Measurement _tmp32_ = {0};
+ MeasurementUnit _tmp33_ = 0;
+ Measurement _tmp34_ = {0};
+ GtkEntry* _tmp35_ = NULL;
+ Measurement _tmp36_ = {0};
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = new_width;
+#line 395 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = _tmp28_.value;
+#line 395 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = self->priv->source_job;
+#line 395 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = print_job_get_source_aspect_ratio (_tmp30_);
+#line 395 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = new_width;
+#line 395 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp33_ = _tmp32_.unit;
+#line 395 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&new_height, _tmp29_ / _tmp31_, _tmp33_);
+#line 398 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp34_ = new_height;
+#line 398 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_height = _tmp34_;
+#line 399 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp35_ = self->priv->custom_height_entry;
+#line 399 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36_ = new_height;
+#line 399 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = custom_print_tab_format_measurement (self, &_tmp36_);
+#line 399 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp38_ = _tmp37_;
+#line 399 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp35_, _tmp38_);
+#line 399 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp38_);
+#line 2817 "Printing.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = new_width;
+#line 402 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_width = _tmp39_;
+#line 403 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40_ = self->priv->custom_width_entry;
+#line 403 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = new_width;
+#line 403 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = custom_print_tab_format_measurement (self, &_tmp41_);
+#line 403 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp43_ = _tmp42_;
+#line 403 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp40_, _tmp43_);
+#line 403 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp43_);
+#line 404 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = FALSE;
+#line 404 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2839 "Printing.c"
+}
+
+
+static gchar* custom_print_tab_format_measurement (CustomPrintTab* self, Measurement* measurement) {
+ gchar* result = NULL;
+ Measurement _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gchar* _tmp2_ = NULL;
+#line 407 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), NULL);
+#line 407 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (measurement != NULL, NULL);
+#line 408 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = *measurement;
+#line 408 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _tmp0_.value;
+#line 408 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = g_strdup_printf ("%.2f", _tmp1_);
+#line 408 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp2_;
+#line 408 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2862 "Printing.c"
+}
+
+
+static gchar* custom_print_tab_format_measurement_as (CustomPrintTab* self, Measurement* measurement, MeasurementUnit to_unit) {
+ gchar* result = NULL;
+ Measurement _tmp0_ = {0};
+ Measurement _tmp1_ = {0};
+ MeasurementUnit _tmp2_ = 0;
+ MeasurementUnit _tmp3_ = 0;
+ Measurement converted_measurement = {0};
+ Measurement _tmp7_ = {0};
+ gchar* _tmp8_ = NULL;
+#line 411 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), NULL);
+#line 411 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (measurement != NULL, NULL);
+#line 412 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = *measurement;
+#line 412 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _tmp1_.unit;
+#line 412 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = to_unit;
+#line 412 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_ == _tmp3_) {
+#line 2887 "Printing.c"
+ Measurement _tmp4_ = {0};
+#line 412 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = *measurement;
+#line 412 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = _tmp4_;
+#line 2893 "Printing.c"
+ } else {
+ MeasurementUnit _tmp5_ = 0;
+ Measurement _tmp6_ = {0};
+#line 413 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = to_unit;
+#line 413 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (measurement, _tmp5_, &_tmp6_);
+#line 413 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = _tmp6_;
+#line 2903 "Printing.c"
+ }
+#line 412 "/home/jens/Source/shotwell/src/Printing.vala"
+ converted_measurement = _tmp0_;
+#line 414 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = converted_measurement;
+#line 414 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = custom_print_tab_format_measurement (self, &_tmp7_);
+#line 414 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp8_;
+#line 414 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2915 "Printing.c"
+}
+
+
+static gboolean custom_print_tab_on_ppi_entry_focus_out (CustomPrintTab* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+ GtkEntry* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 417 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), FALSE);
+#line 417 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 418 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->ppi_entry;
+#line 418 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 418 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = atoi (_tmp1_);
+#line 418 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_ppi (self, _tmp2_);
+#line 419 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = FALSE;
+#line 419 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 2940 "Printing.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2958 "Printing.c"
+}
+
+
+static void custom_print_tab_on_ppi_entry_insert_text (CustomPrintTab* self, GtkEditable* editable, const gchar* text, gint length, gint* position) {
+ GtkEntry* sender = NULL;
+ GtkEditable* _tmp0_ = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+ gchar* new_text = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ GtkEntry* _tmp31_ = NULL;
+#line 422 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 422 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_EDITABLE (editable));
+#line 422 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (text != NULL);
+#line 424 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = editable;
+#line 424 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_entry_get_type (), GtkEntry));
+#line 424 "/home/jens/Source/shotwell/src/Printing.vala"
+ sender = _tmp1_;
+#line 426 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->is_text_insertion_in_progress;
+#line 426 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_) {
+#line 427 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (sender);
+#line 427 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 2994 "Printing.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->is_text_insertion_in_progress = TRUE;
+#line 431 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = length;
+#line 431 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp3_ == -1) {
+#line 3002 "Printing.c"
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 432 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = text;
+#line 432 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = strlen (_tmp4_);
+#line 432 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = _tmp5_;
+#line 432 "/home/jens/Source/shotwell/src/Printing.vala"
+ length = (gint) _tmp6_;
+#line 3014 "Printing.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = g_strdup ("");
+#line 434 "/home/jens/Source/shotwell/src/Printing.vala"
+ new_text = _tmp7_;
+#line 3020 "Printing.c"
+ {
+ gint ctr = 0;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ ctr = 0;
+#line 3025 "Printing.c"
+ {
+ gboolean _tmp8_ = FALSE;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = TRUE;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ while (TRUE) {
+#line 3032 "Printing.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gchar _tmp14_ = '\0';
+ gboolean _tmp15_ = FALSE;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!_tmp8_) {
+#line 3041 "Printing.c"
+ gint _tmp9_ = 0;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = ctr;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ ctr = _tmp9_ + 1;
+#line 3047 "Printing.c"
+ }
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = FALSE;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = ctr;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = length;
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 435 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 3059 "Printing.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = text;
+#line 436 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = ctr;
+#line 436 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = string_get (_tmp12_, (glong) _tmp13_);
+#line 436 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = g_ascii_isdigit (_tmp14_);
+#line 436 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp15_) {
+#line 3071 "Printing.c"
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gchar _tmp19_ = '\0';
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = new_text;
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = text;
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = ctr;
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = string_get (_tmp17_, (glong) _tmp18_);
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = g_strdup_printf ("%c", (gchar) _tmp19_);
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = _tmp20_;
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = g_strconcat (_tmp16_, _tmp21_, NULL);
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (new_text);
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ new_text = _tmp22_;
+#line 437 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp21_);
+#line 3099 "Printing.c"
+ }
+ }
+ }
+ }
+#line 440 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = new_text;
+#line 440 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = strlen (_tmp23_);
+#line 440 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = _tmp24_;
+#line 440 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp25_ > 0) {
+#line 3112 "Printing.c"
+ GtkEntry* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+#line 441 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = sender;
+#line 441 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = new_text;
+#line 441 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = new_text;
+#line 441 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = strlen (_tmp28_);
+#line 441 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = _tmp29_;
+#line 441 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_editable_insert_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GTK_TYPE_EDITABLE, GtkEditable), _tmp27_, (gint) _tmp30_, position);
+#line 3130 "Printing.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = sender;
+#line 443 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_stop_emission_by_name (_tmp31_, "insert-text");
+#line 445 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->is_text_insertion_in_progress = FALSE;
+#line 422 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (new_text);
+#line 422 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (sender);
+#line 3142 "Printing.c"
+}
+
+
+static gboolean custom_print_tab_on_height_entry_focus_out (CustomPrintTab* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+ GtkEntry* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ Measurement _tmp2_ = {0};
+ MeasurementUnit _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ Measurement new_height = {0};
+ Measurement _tmp7_ = {0};
+ Measurement min_height = {0};
+ PrintJob* _tmp8_ = NULL;
+ PrintSettings* _tmp9_ = NULL;
+ PrintSettings* _tmp10_ = NULL;
+ Measurement _tmp11_ = {0};
+ Measurement _tmp12_ = {0};
+ Measurement max_height = {0};
+ PrintJob* _tmp13_ = NULL;
+ PrintSettings* _tmp14_ = NULL;
+ PrintSettings* _tmp15_ = NULL;
+ Measurement _tmp16_ = {0};
+ Measurement _tmp17_ = {0};
+ gboolean _tmp18_ = FALSE;
+ Measurement _tmp19_ = {0};
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ Measurement _tmp39_ = {0};
+ GtkEntry* _tmp40_ = NULL;
+ Measurement _tmp41_ = {0};
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), FALSE);
+#line 448 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->custom_height_entry;
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->local_content_height;
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = custom_print_tab_get_user_unit_choice (self);
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = custom_print_tab_format_measurement_as (self, &_tmp2_, _tmp3_);
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = g_strcmp0 (_tmp1_, _tmp5_) == 0;
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp5_);
+#line 449 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp6_) {
+#line 451 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = FALSE;
+#line 451 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 3204 "Printing.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_get_height_entry_value (self, &_tmp7_);
+#line 453 "/home/jens/Source/shotwell/src/Printing.vala"
+ new_height = _tmp7_;
+#line 454 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = self->priv->source_job;
+#line 454 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = print_job_get_local_settings (_tmp8_);
+#line 454 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = _tmp9_;
+#line 454 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_minimum_content_dimension (_tmp10_, &_tmp11_);
+#line 454 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _tmp11_;
+#line 454 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp10_);
+#line 454 "/home/jens/Source/shotwell/src/Printing.vala"
+ min_height = _tmp12_;
+#line 455 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = self->priv->source_job;
+#line 455 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = print_job_get_local_settings (_tmp13_);
+#line 455 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = _tmp14_;
+#line 455 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_maximum_content_dimension (_tmp15_, &_tmp16_);
+#line 455 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _tmp16_;
+#line 455 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp15_);
+#line 455 "/home/jens/Source/shotwell/src/Printing.vala"
+ max_height = _tmp17_;
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = min_height;
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = measurement_is_less_than (&new_height, &_tmp19_);
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp20_) {
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = TRUE;
+#line 3246 "Printing.c"
+ } else {
+ Measurement _tmp21_ = {0};
+ gboolean _tmp22_ = FALSE;
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = max_height;
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = measurement_is_greater_than (&new_height, &_tmp21_);
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = _tmp22_;
+#line 3256 "Printing.c"
+ }
+#line 457 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp18_) {
+#line 3260 "Printing.c"
+ GtkEntry* _tmp23_ = NULL;
+ Measurement _tmp24_ = {0};
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = self->priv->custom_height_entry;
+#line 458 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = self->priv->local_content_height;
+#line 458 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = custom_print_tab_format_measurement (self, &_tmp24_);
+#line 458 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = _tmp25_;
+#line 458 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp23_, _tmp26_);
+#line 458 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp26_);
+#line 459 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = FALSE;
+#line 459 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 3281 "Printing.c"
+ }
+#line 462 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = custom_print_tab_is_match_aspect_ratio_enabled (self);
+#line 462 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp27_) {
+#line 3287 "Printing.c"
+ Measurement new_width = {0};
+ Measurement _tmp28_ = {0};
+ gdouble _tmp29_ = 0.0;
+ PrintJob* _tmp30_ = NULL;
+ gdouble _tmp31_ = 0.0;
+ Measurement _tmp32_ = {0};
+ MeasurementUnit _tmp33_ = 0;
+ Measurement _tmp34_ = {0};
+ GtkEntry* _tmp35_ = NULL;
+ Measurement _tmp36_ = {0};
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+#line 463 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = new_height;
+#line 463 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = _tmp28_.value;
+#line 463 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = self->priv->source_job;
+#line 463 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = print_job_get_source_aspect_ratio (_tmp30_);
+#line 463 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = new_height;
+#line 463 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp33_ = _tmp32_.unit;
+#line 463 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&new_width, _tmp29_ * _tmp31_, _tmp33_);
+#line 466 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp34_ = new_width;
+#line 466 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_width = _tmp34_;
+#line 467 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp35_ = self->priv->custom_width_entry;
+#line 467 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36_ = new_width;
+#line 467 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = custom_print_tab_format_measurement (self, &_tmp36_);
+#line 467 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp38_ = _tmp37_;
+#line 467 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp35_, _tmp38_);
+#line 467 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp38_);
+#line 3330 "Printing.c"
+ }
+#line 470 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = new_height;
+#line 470 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_height = _tmp39_;
+#line 471 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40_ = self->priv->custom_height_entry;
+#line 471 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = new_height;
+#line 471 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = custom_print_tab_format_measurement (self, &_tmp41_);
+#line 471 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp43_ = _tmp42_;
+#line 471 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp40_, _tmp43_);
+#line 471 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp43_);
+#line 472 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = FALSE;
+#line 472 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 3352 "Printing.c"
+}
+
+
+static MeasurementUnit custom_print_tab_get_user_unit_choice (CustomPrintTab* self) {
+ MeasurementUnit result = 0;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 475 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), 0);
+#line 476 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->units_combo;
+#line 476 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox));
+#line 476 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp1_ == CUSTOM_PRINT_TAB_INCHES_COMBO_CHOICE) {
+#line 477 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = MEASUREMENT_UNIT_INCHES;
+#line 477 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 3372 "Printing.c"
+ } else {
+ GtkComboBoxText* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 478 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->units_combo;
+#line 478 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox));
+#line 478 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp3_ == CUSTOM_PRINT_TAB_CENTIMETERS_COMBO_CHOICE) {
+#line 479 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = MEASUREMENT_UNIT_CENTIMETERS;
+#line 479 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 3386 "Printing.c"
+ } else {
+#line 481 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:481: unknown unit combo box choice");
+#line 3390 "Printing.c"
+ }
+ }
+}
+
+
+static void custom_print_tab_set_user_unit_choice (CustomPrintTab* self, MeasurementUnit unit) {
+ MeasurementUnit _tmp0_ = 0;
+#line 485 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 486 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = unit;
+#line 486 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp0_ == MEASUREMENT_UNIT_INCHES) {
+#line 3404 "Printing.c"
+ GtkComboBoxText* _tmp1_ = NULL;
+#line 487 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = self->priv->units_combo;
+#line 487 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_combo_box_get_type (), GtkComboBox), CUSTOM_PRINT_TAB_INCHES_COMBO_CHOICE);
+#line 3410 "Printing.c"
+ } else {
+ MeasurementUnit _tmp2_ = 0;
+#line 488 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = unit;
+#line 488 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_ == MEASUREMENT_UNIT_CENTIMETERS) {
+#line 3417 "Printing.c"
+ GtkComboBoxText* _tmp3_ = NULL;
+#line 489 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->units_combo;
+#line 489 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_combo_box_get_type (), GtkComboBox), CUSTOM_PRINT_TAB_CENTIMETERS_COMBO_CHOICE);
+#line 3423 "Printing.c"
+ } else {
+#line 491 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:491: unknown MeasurementUnit enumeration");
+#line 3427 "Printing.c"
+ }
+ }
+}
+
+
+static gdouble double_parse (const gchar* str) {
+ gdouble result = 0.0;
+ const gchar* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 869 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (str != NULL, 0.0);
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_ascii_strtod (_tmp0_, NULL);
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3447 "Printing.c"
+}
+
+
+static void custom_print_tab_get_width_entry_value (CustomPrintTab* self, Measurement* result) {
+ GtkEntry* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ MeasurementUnit _tmp3_ = 0;
+ Measurement _tmp4_ = {0};
+#line 495 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 496 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->custom_width_entry;
+#line 496 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 496 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = double_parse (_tmp1_);
+#line 496 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = custom_print_tab_get_user_unit_choice (self);
+#line 496 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp4_, _tmp2_, _tmp3_);
+#line 496 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp4_;
+#line 496 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 3473 "Printing.c"
+}
+
+
+static void custom_print_tab_get_height_entry_value (CustomPrintTab* self, Measurement* result) {
+ GtkEntry* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ MeasurementUnit _tmp3_ = 0;
+ Measurement _tmp4_ = {0};
+#line 499 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 500 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->custom_height_entry;
+#line 500 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_entry_get_text (_tmp0_);
+#line 500 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = double_parse (_tmp1_);
+#line 500 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = custom_print_tab_get_user_unit_choice (self);
+#line 500 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp4_, _tmp2_, _tmp3_);
+#line 500 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp4_;
+#line 500 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 3499 "Printing.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3519 "Printing.c"
+}
+
+
+static void custom_print_tab_on_entry_insert_text (CustomPrintTab* self, GtkEditable* editable, const gchar* text, gint length, gint* position) {
+ GtkEntry* sender = NULL;
+ GtkEditable* _tmp0_ = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+ gchar* decimal_point = NULL;
+ struct lconv* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gboolean contains_decimal_point = FALSE;
+ GtkEntry* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gchar* new_text = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ GtkEntry* _tmp52_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 503 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_EDITABLE (editable));
+#line 503 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (text != NULL);
+#line 506 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = editable;
+#line 506 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_entry_get_type (), GtkEntry));
+#line 506 "/home/jens/Source/shotwell/src/Printing.vala"
+ sender = _tmp1_;
+#line 508 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->is_text_insertion_in_progress;
+#line 508 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_) {
+#line 509 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (sender);
+#line 509 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 3564 "Printing.c"
+ }
+#line 511 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->is_text_insertion_in_progress = TRUE;
+#line 513 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = length;
+#line 513 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp3_ == -1) {
+#line 3572 "Printing.c"
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 514 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = text;
+#line 514 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = strlen (_tmp4_);
+#line 514 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = _tmp5_;
+#line 514 "/home/jens/Source/shotwell/src/Printing.vala"
+ length = (gint) _tmp6_;
+#line 3584 "Printing.c"
+ }
+#line 516 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = localeconv ();
+#line 516 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = _tmp7_->decimal_point;
+#line 516 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 516 "/home/jens/Source/shotwell/src/Printing.vala"
+ decimal_point = _tmp9_;
+#line 517 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = sender;
+#line 517 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = gtk_entry_get_text (_tmp10_);
+#line 517 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = decimal_point;
+#line 517 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = string_contains (_tmp11_, _tmp12_);
+#line 517 "/home/jens/Source/shotwell/src/Printing.vala"
+ contains_decimal_point = _tmp13_;
+#line 519 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = g_strdup ("");
+#line 519 "/home/jens/Source/shotwell/src/Printing.vala"
+ new_text = _tmp14_;
+#line 3608 "Printing.c"
+ {
+ gint ctr = 0;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ ctr = 0;
+#line 3613 "Printing.c"
+ {
+ gboolean _tmp15_ = FALSE;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = TRUE;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ while (TRUE) {
+#line 3620 "Printing.c"
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ const gchar* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gchar _tmp21_ = '\0';
+ gboolean _tmp22_ = FALSE;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!_tmp15_) {
+#line 3629 "Printing.c"
+ gint _tmp16_ = 0;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = ctr;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ ctr = _tmp16_ + 1;
+#line 3635 "Printing.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = FALSE;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = ctr;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = length;
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!(_tmp17_ < _tmp18_)) {
+#line 520 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 3647 "Printing.c"
+ }
+#line 521 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = text;
+#line 521 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = ctr;
+#line 521 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = string_get (_tmp19_, (glong) _tmp20_);
+#line 521 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = g_ascii_isdigit (_tmp21_);
+#line 521 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp22_) {
+#line 3659 "Printing.c"
+ const gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gchar _tmp26_ = '\0';
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = new_text;
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = text;
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = ctr;
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = string_get (_tmp24_, (glong) _tmp25_);
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = g_strdup_printf ("%c", (gchar) _tmp26_);
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = _tmp27_;
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = g_strconcat (_tmp23_, _tmp28_, NULL);
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (new_text);
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ new_text = _tmp29_;
+#line 522 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp28_);
+#line 3687 "Printing.c"
+ } else {
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = contains_decimal_point;
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!_tmp31_) {
+#line 3695 "Printing.c"
+ const gchar* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gchar _tmp34_ = '\0';
+ const gchar* _tmp35_ = NULL;
+ gchar _tmp36_ = '\0';
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = text;
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp33_ = ctr;
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp34_ = string_get (_tmp32_, (glong) _tmp33_);
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp35_ = decimal_point;
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36_ = string_get (_tmp35_, (glong) 0);
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = _tmp34_ == _tmp36_;
+#line 3713 "Printing.c"
+ } else {
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = FALSE;
+#line 3717 "Printing.c"
+ }
+#line 523 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp30_) {
+#line 3721 "Printing.c"
+ const gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gchar _tmp40_ = '\0';
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = new_text;
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp38_ = text;
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = ctr;
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40_ = string_get (_tmp38_, (glong) _tmp39_);
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = g_strdup_printf ("%c", (gchar) _tmp40_);
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = _tmp41_;
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp43_ = g_strconcat (_tmp37_, _tmp42_, NULL);
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (new_text);
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ new_text = _tmp43_;
+#line 524 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp42_);
+#line 3749 "Printing.c"
+ }
+ }
+ }
+ }
+ }
+#line 528 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp44_ = new_text;
+#line 528 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp45_ = strlen (_tmp44_);
+#line 528 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp46_ = _tmp45_;
+#line 528 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp46_ > 0) {
+#line 3763 "Printing.c"
+ GtkEntry* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+#line 529 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp47_ = sender;
+#line 529 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp48_ = new_text;
+#line 529 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp49_ = new_text;
+#line 529 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp50_ = strlen (_tmp49_);
+#line 529 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp51_ = _tmp50_;
+#line 529 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_editable_insert_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GTK_TYPE_EDITABLE, GtkEditable), _tmp48_, (gint) _tmp51_, position);
+#line 3781 "Printing.c"
+ }
+#line 531 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp52_ = sender;
+#line 531 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_stop_emission_by_name (_tmp52_, "insert-text");
+#line 533 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->is_text_insertion_in_progress = FALSE;
+#line 503 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (new_text);
+#line 503 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (decimal_point);
+#line 503 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (sender);
+#line 3795 "Printing.c"
+}
+
+
+static void custom_print_tab_sync_state_from_job (CustomPrintTab* self, PrintJob* job) {
+ PrintJob* _tmp0_ = NULL;
+ PrintSettings* _tmp1_ = NULL;
+ PrintSettings* _tmp2_ = NULL;
+ Measurement _tmp3_ = {0};
+ MeasurementUnit _tmp4_ = 0;
+ PrintJob* _tmp5_ = NULL;
+ PrintSettings* _tmp6_ = NULL;
+ PrintSettings* _tmp7_ = NULL;
+ Measurement _tmp8_ = {0};
+ MeasurementUnit _tmp9_ = 0;
+ Measurement constrained_width = {0};
+ PrintJob* _tmp10_ = NULL;
+ PrintSettings* _tmp11_ = NULL;
+ PrintSettings* _tmp12_ = NULL;
+ Measurement _tmp13_ = {0};
+ Measurement _tmp14_ = {0};
+ PrintJob* _tmp15_ = NULL;
+ PrintSettings* _tmp16_ = NULL;
+ PrintSettings* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ Measurement _tmp32_ = {0};
+ PrintJob* _tmp33_ = NULL;
+ PrintSettings* _tmp34_ = NULL;
+ PrintSettings* _tmp35_ = NULL;
+ Measurement _tmp36_ = {0};
+ PrintJob* _tmp37_ = NULL;
+ PrintSettings* _tmp38_ = NULL;
+ PrintSettings* _tmp39_ = NULL;
+ ContentLayout _tmp40_ = 0;
+ PrintJob* _tmp41_ = NULL;
+ PrintSettings* _tmp42_ = NULL;
+ PrintSettings* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ PrintJob* _tmp45_ = NULL;
+ PrintSettings* _tmp46_ = NULL;
+ PrintSettings* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ PrintJob* _tmp49_ = NULL;
+ PrintSettings* _tmp50_ = NULL;
+ PrintSettings* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+ PrintJob* _tmp53_ = NULL;
+ PrintSettings* _tmp54_ = NULL;
+ PrintSettings* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ PrintJob* _tmp57_ = NULL;
+ PrintSettings* _tmp58_ = NULL;
+ PrintSettings* _tmp59_ = NULL;
+ gboolean _tmp60_ = FALSE;
+ PrintJob* _tmp61_ = NULL;
+ PrintSettings* _tmp62_ = NULL;
+ PrintSettings* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+#line 536 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 536 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_JOB (job));
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = job;
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = print_job_get_local_settings (_tmp0_);
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _tmp1_;
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_width (_tmp2_, &_tmp3_);
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = _tmp3_.unit;
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = job;
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = print_job_get_local_settings (_tmp5_);
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _tmp6_;
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_height (_tmp7_, &_tmp8_);
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _tmp8_.unit;
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_assert (_tmp4_ == _tmp9_, "job.get_local_settings().get_content_width().unit == job.get_local_settings().get_content_height().unit");
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp7_);
+#line 537 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp2_);
+#line 540 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = job;
+#line 540 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = print_job_get_local_settings (_tmp10_);
+#line 540 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _tmp11_;
+#line 540 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_width (_tmp12_, &_tmp13_);
+#line 540 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = _tmp13_;
+#line 540 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp12_);
+#line 540 "/home/jens/Source/shotwell/src/Printing.vala"
+ constrained_width = _tmp14_;
+#line 541 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = job;
+#line 541 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = print_job_get_local_settings (_tmp15_);
+#line 541 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _tmp16_;
+#line 541 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = print_settings_is_match_aspect_ratio_enabled (_tmp17_);
+#line 541 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = _tmp18_;
+#line 541 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp17_);
+#line 541 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp19_) {
+#line 3913 "Printing.c"
+ PrintJob* _tmp20_ = NULL;
+ PrintSettings* _tmp21_ = NULL;
+ PrintSettings* _tmp22_ = NULL;
+ Measurement _tmp23_ = {0};
+ gdouble _tmp24_ = 0.0;
+ PrintJob* _tmp25_ = NULL;
+ gdouble _tmp26_ = 0.0;
+ PrintJob* _tmp27_ = NULL;
+ PrintSettings* _tmp28_ = NULL;
+ PrintSettings* _tmp29_ = NULL;
+ Measurement _tmp30_ = {0};
+ MeasurementUnit _tmp31_ = 0;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = job;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = print_job_get_local_settings (_tmp20_);
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = _tmp21_;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_height (_tmp22_, &_tmp23_);
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = _tmp23_.value;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = job;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = print_job_get_source_aspect_ratio (_tmp25_);
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = job;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = print_job_get_local_settings (_tmp27_);
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = _tmp28_;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_height (_tmp29_, &_tmp30_);
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = _tmp30_.unit;
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&constrained_width, _tmp24_ * _tmp26_, _tmp31_);
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp29_);
+#line 542 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp22_);
+#line 3956 "Printing.c"
+ }
+#line 544 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = constrained_width;
+#line 544 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_width (self, &_tmp32_);
+#line 545 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp33_ = job;
+#line 545 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp34_ = print_job_get_local_settings (_tmp33_);
+#line 545 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp35_ = _tmp34_;
+#line 545 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_height (_tmp35_, &_tmp36_);
+#line 545 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_height (self, &_tmp36_);
+#line 545 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp35_);
+#line 546 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = job;
+#line 546 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp38_ = print_job_get_local_settings (_tmp37_);
+#line 546 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = _tmp38_;
+#line 546 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40_ = print_settings_get_content_layout (_tmp39_);
+#line 546 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_layout (self, _tmp40_);
+#line 546 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp39_);
+#line 547 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = job;
+#line 547 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = print_job_get_local_settings (_tmp41_);
+#line 547 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp43_ = _tmp42_;
+#line 547 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp44_ = print_settings_get_content_ppi (_tmp43_);
+#line 547 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_ppi (self, _tmp44_);
+#line 547 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp43_);
+#line 548 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp45_ = job;
+#line 548 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp46_ = print_job_get_local_settings (_tmp45_);
+#line 548 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp47_ = _tmp46_;
+#line 548 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp48_ = print_settings_get_image_per_page_selection (_tmp47_);
+#line 548 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_image_per_page_selection (self, _tmp48_);
+#line 548 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp47_);
+#line 549 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp49_ = job;
+#line 549 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp50_ = print_job_get_local_settings (_tmp49_);
+#line 549 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp51_ = _tmp50_;
+#line 549 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp52_ = print_settings_get_size_selection (_tmp51_);
+#line 549 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_size_selection (self, _tmp52_);
+#line 549 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp51_);
+#line 550 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp53_ = job;
+#line 550 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp54_ = print_job_get_local_settings (_tmp53_);
+#line 550 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp55_ = _tmp54_;
+#line 550 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp56_ = print_settings_is_match_aspect_ratio_enabled (_tmp55_);
+#line 550 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_match_aspect_ratio_enabled (self, _tmp56_);
+#line 550 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp55_);
+#line 551 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp57_ = job;
+#line 551 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp58_ = print_job_get_local_settings (_tmp57_);
+#line 551 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp59_ = _tmp58_;
+#line 551 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp60_ = print_settings_is_print_titles_enabled (_tmp59_);
+#line 551 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_print_titles_enabled (self, _tmp60_);
+#line 551 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp59_);
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp61_ = job;
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp62_ = print_job_get_local_settings (_tmp61_);
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp63_ = _tmp62_;
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp64_ = print_settings_get_print_titles_font (_tmp63_);
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp65_ = _tmp64_;
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_print_titles_font (self, _tmp65_);
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp65_);
+#line 552 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp63_);
+#line 4062 "Printing.c"
+}
+
+
+static void custom_print_tab_on_radio_group_click (CustomPrintTab* self, GtkButton* b) {
+ GtkRadioButton* sender = NULL;
+ GtkButton* _tmp0_ = NULL;
+ GtkRadioButton* _tmp1_ = NULL;
+ GtkRadioButton* _tmp2_ = NULL;
+ GtkRadioButton* _tmp3_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 555 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_BUTTON (b));
+#line 556 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = b;
+#line 556 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_radio_button_get_type (), GtkRadioButton));
+#line 556 "/home/jens/Source/shotwell/src/Printing.vala"
+ sender = _tmp1_;
+#line 558 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = sender;
+#line 558 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->standard_size_radio;
+#line 558 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_ == _tmp3_) {
+#line 4088 "Printing.c"
+ GtkComboBox* _tmp4_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_layout_control_state (self, CONTENT_LAYOUT_STANDARD_SIZE);
+#line 560 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = self->priv->standard_sizes_combo;
+#line 560 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 4096 "Printing.c"
+ } else {
+ GtkRadioButton* _tmp5_ = NULL;
+ GtkRadioButton* _tmp6_ = NULL;
+#line 561 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = sender;
+#line 561 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = self->priv->custom_size_radio;
+#line 561 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp5_ == _tmp6_) {
+#line 4106 "Printing.c"
+ GtkEntry* _tmp7_ = NULL;
+#line 562 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_layout_control_state (self, CONTENT_LAYOUT_CUSTOM_SIZE);
+#line 563 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = self->priv->custom_height_entry;
+#line 563 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 4114 "Printing.c"
+ } else {
+ GtkRadioButton* _tmp8_ = NULL;
+ GtkRadioButton* _tmp9_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = sender;
+#line 564 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = self->priv->image_per_page_radio;
+#line 564 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp8_ == _tmp9_) {
+#line 565 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_layout_control_state (self, CONTENT_LAYOUT_IMAGE_PER_PAGE);
+#line 4126 "Printing.c"
+ }
+ }
+ }
+#line 555 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (sender);
+#line 4132 "Printing.c"
+}
+
+
+static void custom_print_tab_on_units_combo_changed (CustomPrintTab* self) {
+ GtkEntry* _tmp0_ = NULL;
+ Measurement _tmp1_ = {0};
+ MeasurementUnit _tmp2_ = 0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GtkEntry* _tmp5_ = NULL;
+ Measurement _tmp6_ = {0};
+ MeasurementUnit _tmp7_ = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 569 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 570 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->custom_height_entry;
+#line 570 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = self->priv->local_content_height;
+#line 570 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = custom_print_tab_get_user_unit_choice (self);
+#line 570 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = custom_print_tab_format_measurement_as (self, &_tmp1_, _tmp2_);
+#line 570 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = _tmp3_;
+#line 570 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp0_, _tmp4_);
+#line 570 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp4_);
+#line 572 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = self->priv->custom_width_entry;
+#line 572 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = self->priv->local_content_width;
+#line 572 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = custom_print_tab_get_user_unit_choice (self);
+#line 572 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = custom_print_tab_format_measurement_as (self, &_tmp6_, _tmp7_);
+#line 572 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _tmp8_;
+#line 572 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp5_, _tmp9_);
+#line 572 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp9_);
+#line 4177 "Printing.c"
+}
+
+
+static void custom_print_tab_set_content_layout_control_state (CustomPrintTab* self, ContentLayout layout) {
+ ContentLayout _tmp0_ = 0;
+#line 576 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 577 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = layout;
+#line 577 "/home/jens/Source/shotwell/src/Printing.vala"
+ switch (_tmp0_) {
+#line 577 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_STANDARD_SIZE:
+#line 4191 "Printing.c"
+ {
+ GtkComboBox* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ GtkEntry* _tmp3_ = NULL;
+ GtkEntry* _tmp4_ = NULL;
+ GtkCheckButton* _tmp5_ = NULL;
+ GtkComboBox* _tmp6_ = NULL;
+#line 579 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = self->priv->standard_sizes_combo;
+#line 579 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 580 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->units_combo;
+#line 580 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 581 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->custom_width_entry;
+#line 581 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 582 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = self->priv->custom_height_entry;
+#line 582 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 583 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = self->priv->aspect_ratio_check;
+#line 583 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 584 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = self->priv->image_per_page_combo;
+#line 584 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 585 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 4225 "Printing.c"
+ }
+#line 577 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_CUSTOM_SIZE:
+#line 4229 "Printing.c"
+ {
+ GtkComboBox* _tmp7_ = NULL;
+ GtkComboBoxText* _tmp8_ = NULL;
+ GtkEntry* _tmp9_ = NULL;
+ GtkEntry* _tmp10_ = NULL;
+ GtkCheckButton* _tmp11_ = NULL;
+ GtkComboBox* _tmp12_ = NULL;
+#line 588 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = self->priv->standard_sizes_combo;
+#line 588 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 589 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = self->priv->units_combo;
+#line 589 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 590 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = self->priv->custom_width_entry;
+#line 590 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 591 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = self->priv->custom_height_entry;
+#line 591 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 592 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = self->priv->aspect_ratio_check;
+#line 592 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 593 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = self->priv->image_per_page_combo;
+#line 593 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 594 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 4263 "Printing.c"
+ }
+#line 577 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_IMAGE_PER_PAGE:
+#line 4267 "Printing.c"
+ {
+ GtkComboBox* _tmp13_ = NULL;
+ GtkComboBoxText* _tmp14_ = NULL;
+ GtkEntry* _tmp15_ = NULL;
+ GtkEntry* _tmp16_ = NULL;
+ GtkCheckButton* _tmp17_ = NULL;
+ GtkComboBox* _tmp18_ = NULL;
+#line 597 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = self->priv->standard_sizes_combo;
+#line 597 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 598 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = self->priv->units_combo;
+#line 598 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 599 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = self->priv->custom_width_entry;
+#line 599 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 600 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = self->priv->custom_height_entry;
+#line 600 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 601 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = self->priv->aspect_ratio_check;
+#line 601 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 602 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = self->priv->image_per_page_combo;
+#line 602 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 603 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 4301 "Printing.c"
+ }
+ default:
+ {
+#line 606 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:606: unknown ContentLayout enumeration value");
+#line 4307 "Printing.c"
+ }
+ }
+}
+
+
+static gboolean custom_print_tab_standard_sizes_combo_separator_func (GtkTreeModel* model, GtkTreeIter* iter) {
+ gboolean result = FALSE;
+ GValue val = {0};
+ GtkTreeModel* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ GValue _tmp2_ = {0};
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 610 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
+#line 610 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (iter != NULL, FALSE);
+#line 613 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = model;
+#line 613 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = *iter;
+#line 613 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_tree_model_get_value (_tmp0_, &_tmp1_, 0, &_tmp2_);
+#line 613 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
+#line 613 "/home/jens/Source/shotwell/src/Printing.vala"
+ val = _tmp2_;
+#line 615 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = g_value_dup_string (&val);
+#line 615 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = _tmp3_;
+#line 615 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = g_strcmp0 (_tmp4_, "-") == 0;
+#line 615 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp4_);
+#line 615 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp5_;
+#line 615 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
+#line 615 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4350 "Printing.c"
+}
+
+
+static void custom_print_tab_set_content_layout (CustomPrintTab* self, ContentLayout content_layout) {
+ ContentLayout _tmp0_ = 0;
+ ContentLayout _tmp1_ = 0;
+#line 618 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 619 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = content_layout;
+#line 619 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_content_layout_control_state (self, _tmp0_);
+#line 620 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = content_layout;
+#line 620 "/home/jens/Source/shotwell/src/Printing.vala"
+ switch (_tmp1_) {
+#line 620 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_STANDARD_SIZE:
+#line 4369 "Printing.c"
+ {
+ GtkRadioButton* _tmp2_ = NULL;
+#line 622 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->standard_size_radio;
+#line 622 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 623 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 4378 "Printing.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_CUSTOM_SIZE:
+#line 4382 "Printing.c"
+ {
+ GtkRadioButton* _tmp3_ = NULL;
+#line 626 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->custom_size_radio;
+#line 626 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 627 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 4391 "Printing.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_IMAGE_PER_PAGE:
+#line 4395 "Printing.c"
+ {
+ GtkRadioButton* _tmp4_ = NULL;
+#line 630 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = self->priv->image_per_page_radio;
+#line 630 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 631 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 4404 "Printing.c"
+ }
+ default:
+ {
+#line 634 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:634: unknown ContentLayout enumeration value");
+#line 4410 "Printing.c"
+ }
+ }
+}
+
+
+static ContentLayout custom_print_tab_get_content_layout (CustomPrintTab* self) {
+ ContentLayout result = 0;
+ GtkRadioButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GtkRadioButton* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GtkRadioButton* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 638 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), 0);
+#line 639 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->standard_size_radio;
+#line 639 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 639 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp1_) {
+#line 640 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = CONTENT_LAYOUT_STANDARD_SIZE;
+#line 640 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4436 "Printing.c"
+ }
+#line 641 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->custom_size_radio;
+#line 641 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 641 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp3_) {
+#line 642 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = CONTENT_LAYOUT_CUSTOM_SIZE;
+#line 642 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4448 "Printing.c"
+ }
+#line 643 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = self->priv->image_per_page_radio;
+#line 643 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 643 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp5_) {
+#line 644 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = CONTENT_LAYOUT_IMAGE_PER_PAGE;
+#line 644 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4460 "Printing.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:646: inconsistent content layout radio button group stat" \
+"e");
+#line 4464 "Printing.c"
+}
+
+
+static void custom_print_tab_set_content_width (CustomPrintTab* self, Measurement* content_width) {
+ Measurement _tmp0_ = {0};
+ MeasurementUnit _tmp1_ = 0;
+ Measurement _tmp2_ = {0};
+ MeasurementUnit _tmp3_ = 0;
+ Measurement _tmp13_ = {0};
+ GtkEntry* _tmp14_ = NULL;
+ Measurement _tmp15_ = {0};
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 649 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 649 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (content_width != NULL);
+#line 650 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = *content_width;
+#line 650 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _tmp0_.unit;
+#line 650 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->local_content_height;
+#line 650 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = _tmp2_.unit;
+#line 650 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp1_ != _tmp3_) {
+#line 4492 "Printing.c"
+ Measurement _tmp4_ = {0};
+ MeasurementUnit _tmp5_ = 0;
+ Measurement _tmp6_ = {0};
+ MeasurementUnit _tmp7_ = 0;
+ Measurement _tmp8_ = {0};
+ GtkEntry* _tmp9_ = NULL;
+ Measurement _tmp10_ = {0};
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 651 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = *content_width;
+#line 651 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_.unit;
+#line 651 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_user_unit_choice (self, _tmp5_);
+#line 652 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = *content_width;
+#line 652 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _tmp6_.unit;
+#line 652 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (&self->priv->local_content_height, _tmp7_, &_tmp8_);
+#line 652 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_height = _tmp8_;
+#line 653 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = self->priv->custom_height_entry;
+#line 653 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = self->priv->local_content_height;
+#line 653 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = custom_print_tab_format_measurement (self, &_tmp10_);
+#line 653 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _tmp11_;
+#line 653 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp9_, _tmp12_);
+#line 653 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp12_);
+#line 4528 "Printing.c"
+ }
+#line 655 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = *content_width;
+#line 655 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_width = _tmp13_;
+#line 656 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = self->priv->custom_width_entry;
+#line 656 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = *content_width;
+#line 656 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = custom_print_tab_format_measurement (self, &_tmp15_);
+#line 656 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _tmp16_;
+#line 656 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp14_, _tmp17_);
+#line 656 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp17_);
+#line 4546 "Printing.c"
+}
+
+
+static void custom_print_tab_get_content_width (CustomPrintTab* self, Measurement* result) {
+ Measurement _tmp0_ = {0};
+#line 659 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 660 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->local_content_width;
+#line 660 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp0_;
+#line 660 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 4560 "Printing.c"
+}
+
+
+static void custom_print_tab_set_content_height (CustomPrintTab* self, Measurement* content_height) {
+ Measurement _tmp0_ = {0};
+ MeasurementUnit _tmp1_ = 0;
+ Measurement _tmp2_ = {0};
+ MeasurementUnit _tmp3_ = 0;
+ Measurement _tmp13_ = {0};
+ GtkEntry* _tmp14_ = NULL;
+ Measurement _tmp15_ = {0};
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 663 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 663 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (content_height != NULL);
+#line 664 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = *content_height;
+#line 664 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _tmp0_.unit;
+#line 664 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->local_content_width;
+#line 664 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = _tmp2_.unit;
+#line 664 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp1_ != _tmp3_) {
+#line 4588 "Printing.c"
+ Measurement _tmp4_ = {0};
+ MeasurementUnit _tmp5_ = 0;
+ Measurement _tmp6_ = {0};
+ MeasurementUnit _tmp7_ = 0;
+ Measurement _tmp8_ = {0};
+ GtkEntry* _tmp9_ = NULL;
+ Measurement _tmp10_ = {0};
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 665 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = *content_height;
+#line 665 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_.unit;
+#line 665 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_set_user_unit_choice (self, _tmp5_);
+#line 666 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = *content_height;
+#line 666 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _tmp6_.unit;
+#line 666 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (&self->priv->local_content_width, _tmp7_, &_tmp8_);
+#line 666 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_width = _tmp8_;
+#line 667 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = self->priv->custom_width_entry;
+#line 667 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = self->priv->local_content_width;
+#line 667 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = custom_print_tab_format_measurement (self, &_tmp10_);
+#line 667 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _tmp11_;
+#line 667 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp9_, _tmp12_);
+#line 667 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp12_);
+#line 4624 "Printing.c"
+ }
+#line 669 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = *content_height;
+#line 669 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_height = _tmp13_;
+#line 670 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = self->priv->custom_height_entry;
+#line 670 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = *content_height;
+#line 670 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = custom_print_tab_format_measurement (self, &_tmp15_);
+#line 670 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _tmp16_;
+#line 670 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp14_, _tmp17_);
+#line 670 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp17_);
+#line 4642 "Printing.c"
+}
+
+
+static void custom_print_tab_get_content_height (CustomPrintTab* self, Measurement* result) {
+ Measurement _tmp0_ = {0};
+#line 673 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 674 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->local_content_height;
+#line 674 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result = _tmp0_;
+#line 674 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 4656 "Printing.c"
+}
+
+
+static void custom_print_tab_set_content_ppi (CustomPrintTab* self, gint content_ppi) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GtkEntry* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 677 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 678 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = content_ppi;
+#line 678 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = CLAMP (_tmp0_, PRINT_SETTINGS_MIN_CONTENT_PPI, PRINT_SETTINGS_MAX_CONTENT_PPI);
+#line 678 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->local_content_ppi = _tmp1_;
+#line 681 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->ppi_entry;
+#line 681 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->local_content_ppi;
+#line 681 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = g_strdup_printf ("%d", _tmp3_);
+#line 681 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 681 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_entry_set_text (_tmp2_, _tmp5_);
+#line 681 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp5_);
+#line 4687 "Printing.c"
+}
+
+
+static gint custom_print_tab_get_content_ppi (CustomPrintTab* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 684 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), 0);
+#line 685 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->local_content_ppi;
+#line 685 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp0_;
+#line 685 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4702 "Printing.c"
+}
+
+
+static void custom_print_tab_set_image_per_page_selection (CustomPrintTab* self, gint image_per_page) {
+ GtkComboBox* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 688 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 689 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->image_per_page_combo;
+#line 689 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = image_per_page;
+#line 689 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_active (_tmp0_, _tmp1_);
+#line 4717 "Printing.c"
+}
+
+
+static gint custom_print_tab_get_image_per_page_selection (CustomPrintTab* self) {
+ gint result = 0;
+ GtkComboBox* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 692 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), 0);
+#line 693 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->image_per_page_combo;
+#line 693 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_combo_box_get_active (_tmp0_);
+#line 693 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 693 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4735 "Printing.c"
+}
+
+
+static void custom_print_tab_set_size_selection (CustomPrintTab* self, gint size_selection) {
+ GtkComboBox* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 696 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 697 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->standard_sizes_combo;
+#line 697 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = size_selection;
+#line 697 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_combo_box_set_active (_tmp0_, _tmp1_);
+#line 4750 "Printing.c"
+}
+
+
+static gint custom_print_tab_get_size_selection (CustomPrintTab* self) {
+ gint result = 0;
+ GtkComboBox* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 700 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), 0);
+#line 701 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->standard_sizes_combo;
+#line 701 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_combo_box_get_active (_tmp0_);
+#line 701 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 701 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4768 "Printing.c"
+}
+
+
+static void custom_print_tab_set_match_aspect_ratio_enabled (CustomPrintTab* self, gboolean enable_state) {
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 704 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 705 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->aspect_ratio_check;
+#line 705 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = enable_state;
+#line 705 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp1_);
+#line 4783 "Printing.c"
+}
+
+
+static void custom_print_tab_set_print_titles_enabled (CustomPrintTab* self, gboolean print_titles) {
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 708 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 709 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->title_print_check;
+#line 709 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = print_titles;
+#line 709 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp1_);
+#line 4798 "Printing.c"
+}
+
+
+static void custom_print_tab_set_print_titles_font (CustomPrintTab* self, const gchar* fontname) {
+ GtkFontButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 712 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_CUSTOM_PRINT_TAB (self));
+#line 712 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (fontname != NULL);
+#line 713 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->title_print_font;
+#line 713 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = fontname;
+#line 713 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_font_button_set_font_name (_tmp0_, _tmp1_);
+#line 4815 "Printing.c"
+}
+
+
+static gboolean custom_print_tab_is_match_aspect_ratio_enabled (CustomPrintTab* self) {
+ gboolean result = FALSE;
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 717 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), FALSE);
+#line 718 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->aspect_ratio_check;
+#line 718 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 718 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 718 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4833 "Printing.c"
+}
+
+
+static gboolean custom_print_tab_is_print_titles_enabled (CustomPrintTab* self) {
+ gboolean result = FALSE;
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 721 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), FALSE);
+#line 722 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->title_print_check;
+#line 722 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 722 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 722 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4851 "Printing.c"
+}
+
+
+static gchar* custom_print_tab_get_print_titles_font (CustomPrintTab* self) {
+ gchar* result = NULL;
+ GtkFontButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 725 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), NULL);
+#line 726 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->title_print_font;
+#line 726 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_font_button_get_font_name (_tmp0_);
+#line 726 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 726 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp2_;
+#line 726 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4872 "Printing.c"
+}
+
+
+PrintJob* custom_print_tab_get_source_job (CustomPrintTab* self) {
+ PrintJob* result = NULL;
+ PrintJob* _tmp0_ = NULL;
+ PrintJob* _tmp1_ = NULL;
+#line 729 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), NULL);
+#line 730 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->source_job;
+#line 730 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 730 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 730 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4890 "Printing.c"
+}
+
+
+PrintSettings* custom_print_tab_get_local_settings (CustomPrintTab* self) {
+ PrintSettings* result = NULL;
+ PrintSettings* _result_ = NULL;
+ PrintSettings* _tmp0_ = NULL;
+ Measurement _tmp1_ = {0};
+ Measurement _tmp2_ = {0};
+ ContentLayout _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 733 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_CUSTOM_PRINT_TAB (self), NULL);
+#line 734 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = print_settings_new ();
+#line 734 "/home/jens/Source/shotwell/src/Printing.vala"
+ _result_ = _tmp0_;
+#line 736 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_get_content_width (self, &_tmp1_);
+#line 736 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_content_width (_result_, &_tmp1_);
+#line 737 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_get_content_height (self, &_tmp2_);
+#line 737 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_content_height (_result_, &_tmp2_);
+#line 738 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = custom_print_tab_get_content_layout (self);
+#line 738 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_content_layout (_result_, _tmp3_);
+#line 739 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = custom_print_tab_get_content_ppi (self);
+#line 739 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_content_ppi (_result_, _tmp4_);
+#line 740 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = custom_print_tab_get_image_per_page_selection (self);
+#line 740 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_image_per_page_selection (_result_, _tmp5_);
+#line 741 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = custom_print_tab_get_size_selection (self);
+#line 741 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_size_selection (_result_, _tmp6_);
+#line 742 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = custom_print_tab_is_match_aspect_ratio_enabled (self);
+#line 742 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_match_aspect_ratio_enabled (_result_, _tmp7_);
+#line 743 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = custom_print_tab_is_print_titles_enabled (self);
+#line 743 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_print_titles_enabled (_result_, _tmp8_);
+#line 744 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = custom_print_tab_get_print_titles_font (self);
+#line 744 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = _tmp9_;
+#line 744 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_set_print_titles_font (_result_, _tmp10_);
+#line 744 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp10_);
+#line 746 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _result_;
+#line 746 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 4958 "Printing.c"
+}
+
+
+static void custom_print_tab_class_init (CustomPrintTabClass * klass) {
+#line 268 "/home/jens/Source/shotwell/src/Printing.vala"
+ custom_print_tab_parent_class = g_type_class_peek_parent (klass);
+#line 268 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_type_class_add_private (klass, sizeof (CustomPrintTabPrivate));
+#line 268 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_OBJECT_CLASS (klass)->finalize = custom_print_tab_finalize;
+#line 4969 "Printing.c"
+}
+
+
+static void custom_print_tab_instance_init (CustomPrintTab * self) {
+#line 268 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv = CUSTOM_PRINT_TAB_GET_PRIVATE (self);
+#line 272 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_image_settings_pane = NULL;
+#line 273 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->standard_size_radio = NULL;
+#line 274 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_size_radio = NULL;
+#line 275 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->image_per_page_radio = NULL;
+#line 276 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->image_per_page_combo = NULL;
+#line 277 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->standard_sizes_combo = NULL;
+#line 278 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->units_combo = NULL;
+#line 279 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_width_entry = NULL;
+#line 280 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_height_entry = NULL;
+#line 282 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->aspect_ratio_check = NULL;
+#line 283 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->title_print_check = NULL;
+#line 284 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->title_print_font = NULL;
+#line 285 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&self->priv->local_content_width, 5.0, MEASUREMENT_UNIT_INCHES);
+#line 286 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&self->priv->local_content_height, 5.0, MEASUREMENT_UNIT_INCHES);
+#line 288 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->is_text_insertion_in_progress = FALSE;
+#line 5006 "Printing.c"
+}
+
+
+static void custom_print_tab_finalize (GObject* obj) {
+ CustomPrintTab * self;
+#line 268 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CUSTOM_PRINT_TAB, CustomPrintTab);
+#line 272 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_image_settings_pane);
+#line 273 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->standard_size_radio);
+#line 274 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_size_radio);
+#line 275 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->image_per_page_radio);
+#line 276 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->image_per_page_combo);
+#line 277 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->standard_sizes_combo);
+#line 278 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->units_combo);
+#line 279 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_width_entry);
+#line 280 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_height_entry);
+#line 281 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->ppi_entry);
+#line 282 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->aspect_ratio_check);
+#line 283 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->title_print_check);
+#line 284 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->title_print_font);
+#line 289 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->source_job);
+#line 268 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_OBJECT_CLASS (custom_print_tab_parent_class)->finalize (obj);
+#line 5044 "Printing.c"
+}
+
+
+GType custom_print_tab_get_type (void) {
+ static volatile gsize custom_print_tab_type_id__volatile = 0;
+ if (g_once_init_enter (&custom_print_tab_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CustomPrintTabClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) custom_print_tab_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CustomPrintTab), 0, (GInstanceInitFunc) custom_print_tab_instance_init, NULL };
+ GType custom_print_tab_type_id;
+ custom_print_tab_type_id = g_type_register_static (gtk_fixed_get_type (), "CustomPrintTab", &g_define_type_info, 0);
+ g_once_init_leave (&custom_print_tab_type_id__volatile, custom_print_tab_type_id);
+ }
+ return custom_print_tab_type_id__volatile;
+}
+
+
+PrintJob* print_job_construct (GType object_type, GeeCollection* to_print) {
+ PrintJob * self = NULL;
+ PrintManager* _tmp0_ = NULL;
+ PrintManager* _tmp1_ = NULL;
+ PrintSettings* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ gdouble photo_aspect_ratio = 0.0;
+ GeeArrayList* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Dimensions _tmp8_ = {0};
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+#line 754 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (to_print), NULL);
+#line 754 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = (PrintJob*) g_object_new (object_type, NULL);
+#line 755 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = print_manager_get_instance ();
+#line 755 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _tmp0_;
+#line 755 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = print_manager_get_global_settings (_tmp1_);
+#line 755 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (self->priv->settings);
+#line 755 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->settings = _tmp2_;
+#line 755 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_manager_unref0 (_tmp1_);
+#line 756 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->photos;
+#line 756 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = to_print;
+#line 756 "/home/jens/Source/shotwell/src/Printing.vala"
+ gee_array_list_add_all (_tmp3_, _tmp4_);
+#line 758 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_embed_page_setup (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_print_operation_get_type (), GtkPrintOperation), TRUE);
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = self->priv->photos;
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = (Photo*) _tmp6_;
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp8_);
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = dimensions_get_aspect_ratio (&_tmp8_);
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = _tmp9_;
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp7_);
+#line 759 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_aspect_ratio = _tmp10_;
+#line 760 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = photo_aspect_ratio;
+#line 760 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp11_ < 1.0) {
+#line 5119 "Printing.c"
+ gdouble _tmp12_ = 0.0;
+#line 761 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = photo_aspect_ratio;
+#line 761 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_aspect_ratio = 1.0 / _tmp12_;
+#line 5125 "Printing.c"
+ }
+#line 754 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self;
+#line 5129 "Printing.c"
+}
+
+
+PrintJob* print_job_new (GeeCollection* to_print) {
+#line 754 "/home/jens/Source/shotwell/src/Printing.vala"
+ return print_job_construct (TYPE_PRINT_JOB, to_print);
+#line 5136 "Printing.c"
+}
+
+
+GeeList* print_job_get_photos (PrintJob* self) {
+ GeeList* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 764 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_JOB (self), NULL);
+#line 765 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->photos;
+#line 765 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList));
+#line 765 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 765 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 5154 "Printing.c"
+}
+
+
+Photo* print_job_get_source_photo (PrintJob* self) {
+ Photo* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gpointer _tmp1_ = NULL;
+#line 768 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_JOB (self), NULL);
+#line 769 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->photos;
+#line 769 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 769 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = (Photo*) _tmp1_;
+#line 769 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 5172 "Printing.c"
+}
+
+
+gdouble print_job_get_source_aspect_ratio (PrintJob* self) {
+ gdouble result = 0.0;
+ gdouble aspect_ratio = 0.0;
+ GeeArrayList* _tmp0_ = NULL;
+ gpointer _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Dimensions _tmp3_ = {0};
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+#line 772 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_JOB (self), 0.0);
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->photos;
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = (Photo*) _tmp1_;
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp3_);
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = dimensions_get_aspect_ratio (&_tmp3_);
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp2_);
+#line 773 "/home/jens/Source/shotwell/src/Printing.vala"
+ aspect_ratio = _tmp5_;
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = aspect_ratio;
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp7_ < 1.0) {
+#line 5209 "Printing.c"
+ gdouble _tmp8_ = 0.0;
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = aspect_ratio;
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = 1.0 / _tmp8_;
+#line 5215 "Printing.c"
+ } else {
+ gdouble _tmp9_ = 0.0;
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = aspect_ratio;
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = _tmp9_;
+#line 5222 "Printing.c"
+ }
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp6_;
+#line 774 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 5228 "Printing.c"
+}
+
+
+static gpointer _print_settings_ref0 (gpointer self) {
+#line 778 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self ? print_settings_ref (self) : NULL;
+#line 5235 "Printing.c"
+}
+
+
+PrintSettings* print_job_get_local_settings (PrintJob* self) {
+ PrintSettings* result = NULL;
+ PrintSettings* _tmp0_ = NULL;
+ PrintSettings* _tmp1_ = NULL;
+#line 777 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_JOB (self), NULL);
+#line 778 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->settings;
+#line 778 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _print_settings_ref0 (_tmp0_);
+#line 778 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 778 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 5253 "Printing.c"
+}
+
+
+void print_job_set_local_settings (PrintJob* self, PrintSettings* settings) {
+ PrintSettings* _tmp0_ = NULL;
+ PrintSettings* _tmp1_ = NULL;
+#line 781 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_JOB (self));
+#line 781 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (settings));
+#line 782 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = settings;
+#line 782 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _print_settings_ref0 (_tmp0_);
+#line 782 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (self->priv->settings);
+#line 782 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->settings = _tmp1_;
+#line 5272 "Printing.c"
+}
+
+
+static void print_job_class_init (PrintJobClass * klass) {
+#line 750 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_job_parent_class = g_type_class_peek_parent (klass);
+#line 750 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_type_class_add_private (klass, sizeof (PrintJobPrivate));
+#line 750 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_OBJECT_CLASS (klass)->finalize = print_job_finalize;
+#line 5283 "Printing.c"
+}
+
+
+static void print_job_instance_init (PrintJob * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 750 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv = PRINT_JOB_GET_PRIVATE (self);
+#line 752 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = gee_array_list_new (TYPE_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 752 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->photos = _tmp0_;
+#line 5295 "Printing.c"
+}
+
+
+static void print_job_finalize (GObject* obj) {
+ PrintJob * self;
+#line 750 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PRINT_JOB, PrintJob);
+#line 751 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (self->priv->settings);
+#line 752 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->photos);
+#line 750 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_OBJECT_CLASS (print_job_parent_class)->finalize (obj);
+#line 5309 "Printing.c"
+}
+
+
+GType print_job_get_type (void) {
+ static volatile gsize print_job_type_id__volatile = 0;
+ if (g_once_init_enter (&print_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PrintJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) print_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PrintJob), 0, (GInstanceInitFunc) print_job_instance_init, NULL };
+ GType print_job_type_id;
+ print_job_type_id = g_type_register_static (gtk_print_operation_get_type (), "PrintJob", &g_define_type_info, 0);
+ g_once_init_leave (&print_job_type_id__volatile, print_job_type_id);
+ }
+ return print_job_type_id__volatile;
+}
+
+
+StandardPrintSize* standard_print_size_construct (GType object_type, const gchar* name, Measurement* width, Measurement* height) {
+ StandardPrintSize* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ Measurement _tmp2_ = {0};
+ Measurement _tmp3_ = {0};
+#line 787 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 787 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (width != NULL, NULL);
+#line 787 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (height != NULL, NULL);
+#line 787 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = (StandardPrintSize*) g_type_create_instance (object_type);
+#line 788 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = name;
+#line 788 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 788 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (self->name);
+#line 788 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->name = _tmp1_;
+#line 789 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = *width;
+#line 789 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->width = _tmp2_;
+#line 790 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = *height;
+#line 790 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->height = _tmp3_;
+#line 787 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self;
+#line 5357 "Printing.c"
+}
+
+
+StandardPrintSize* standard_print_size_new (const gchar* name, Measurement* width, Measurement* height) {
+#line 787 "/home/jens/Source/shotwell/src/Printing.vala"
+ return standard_print_size_construct (TYPE_STANDARD_PRINT_SIZE, name, width, height);
+#line 5364 "Printing.c"
+}
+
+
+static void value_standard_print_size_init (GValue* value) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 5371 "Printing.c"
+}
+
+
+static void value_standard_print_size_free_value (GValue* value) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (value->data[0].v_pointer) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_print_size_unref (value->data[0].v_pointer);
+#line 5380 "Printing.c"
+ }
+}
+
+
+static void value_standard_print_size_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (src_value->data[0].v_pointer) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ dest_value->data[0].v_pointer = standard_print_size_ref (src_value->data[0].v_pointer);
+#line 5390 "Printing.c"
+ } else {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 5394 "Printing.c"
+ }
+}
+
+
+static gpointer value_standard_print_size_peek_pointer (const GValue* value) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return value->data[0].v_pointer;
+#line 5402 "Printing.c"
+}
+
+
+static gchar* value_standard_print_size_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (collect_values[0].v_pointer) {
+#line 5409 "Printing.c"
+ StandardPrintSize* object;
+ object = collect_values[0].v_pointer;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5416 "Printing.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5420 "Printing.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = standard_print_size_ref (object);
+#line 5424 "Printing.c"
+ } else {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 5428 "Printing.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return NULL;
+#line 5432 "Printing.c"
+}
+
+
+static gchar* value_standard_print_size_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ StandardPrintSize** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!object_p) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 5443 "Printing.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!value->data[0].v_pointer) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = NULL;
+#line 5449 "Printing.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = value->data[0].v_pointer;
+#line 5453 "Printing.c"
+ } else {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = standard_print_size_ref (value->data[0].v_pointer);
+#line 5457 "Printing.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return NULL;
+#line 5461 "Printing.c"
+}
+
+
+GParamSpec* param_spec_standard_print_size (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecStandardPrintSize* spec;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_STANDARD_PRINT_SIZE), NULL);
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return G_PARAM_SPEC (spec);
+#line 5475 "Printing.c"
+}
+
+
+gpointer value_get_standard_print_size (const GValue* value) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_STANDARD_PRINT_SIZE), NULL);
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return value->data[0].v_pointer;
+#line 5484 "Printing.c"
+}
+
+
+void value_set_standard_print_size (GValue* value, gpointer v_object) {
+ StandardPrintSize* old;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_STANDARD_PRINT_SIZE));
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ old = value->data[0].v_pointer;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (v_object) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_STANDARD_PRINT_SIZE));
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = v_object;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_print_size_ref (value->data[0].v_pointer);
+#line 5504 "Printing.c"
+ } else {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 5508 "Printing.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (old) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_print_size_unref (old);
+#line 5514 "Printing.c"
+ }
+}
+
+
+void value_take_standard_print_size (GValue* value, gpointer v_object) {
+ StandardPrintSize* old;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_STANDARD_PRINT_SIZE));
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ old = value->data[0].v_pointer;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (v_object) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_STANDARD_PRINT_SIZE));
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = v_object;
+#line 5533 "Printing.c"
+ } else {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 5537 "Printing.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (old) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_print_size_unref (old);
+#line 5543 "Printing.c"
+ }
+}
+
+
+static void standard_print_size_class_init (StandardPrintSizeClass * klass) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ standard_print_size_parent_class = g_type_class_peek_parent (klass);
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ ((StandardPrintSizeClass *) klass)->finalize = standard_print_size_finalize;
+#line 5553 "Printing.c"
+}
+
+
+static void standard_print_size_instance_init (StandardPrintSize * self) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->ref_count = 1;
+#line 5560 "Printing.c"
+}
+
+
+static void standard_print_size_finalize (StandardPrintSize* obj) {
+ StandardPrintSize * self;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_STANDARD_PRINT_SIZE, StandardPrintSize);
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_handlers_destroy (self);
+#line 793 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (self->name);
+#line 5572 "Printing.c"
+}
+
+
+GType standard_print_size_get_type (void) {
+ static volatile gsize standard_print_size_type_id__volatile = 0;
+ if (g_once_init_enter (&standard_print_size_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_standard_print_size_init, value_standard_print_size_free_value, value_standard_print_size_copy_value, value_standard_print_size_peek_pointer, "p", value_standard_print_size_collect_value, "p", value_standard_print_size_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (StandardPrintSizeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) standard_print_size_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (StandardPrintSize), 0, (GInstanceInitFunc) standard_print_size_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType standard_print_size_type_id;
+ standard_print_size_type_id = g_type_register_fundamental (g_type_fundamental_next (), "StandardPrintSize", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&standard_print_size_type_id__volatile, standard_print_size_type_id);
+ }
+ return standard_print_size_type_id__volatile;
+}
+
+
+gpointer standard_print_size_ref (gpointer instance) {
+ StandardPrintSize* self;
+ self = instance;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ return instance;
+#line 5597 "Printing.c"
+}
+
+
+void standard_print_size_unref (gpointer instance) {
+ StandardPrintSize* self;
+ self = instance;
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ STANDARD_PRINT_SIZE_GET_CLASS (self)->finalize (self);
+#line 786 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 5610 "Printing.c"
+ }
+}
+
+
+static PrintManager* print_manager_construct (GType object_type) {
+ PrintManager* self = NULL;
+ GtkPageSetup* _tmp0_ = NULL;
+ PrintSettings* _tmp1_ = NULL;
+#line 809 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = (PrintManager*) g_type_create_instance (object_type);
+#line 810 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = gtk_page_setup_new ();
+#line 810 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->user_page_setup);
+#line 810 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->user_page_setup = _tmp0_;
+#line 811 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = print_settings_new ();
+#line 811 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (self->priv->settings);
+#line 811 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->settings = _tmp1_;
+#line 809 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self;
+#line 5635 "Printing.c"
+}
+
+
+static PrintManager* print_manager_new (void) {
+#line 809 "/home/jens/Source/shotwell/src/Printing.vala"
+ return print_manager_construct (TYPE_PRINT_MANAGER);
+#line 5642 "Printing.c"
+}
+
+
+static void _vala_array_add278 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5653 "Printing.c"
+ }
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5659 "Printing.c"
+}
+
+
+static void _vala_array_add279 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5670 "Printing.c"
+ }
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5676 "Printing.c"
+}
+
+
+static void _vala_array_add280 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5687 "Printing.c"
+ }
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5693 "Printing.c"
+}
+
+
+static void _vala_array_add281 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5704 "Printing.c"
+ }
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5710 "Printing.c"
+}
+
+
+static void _vala_array_add282 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5721 "Printing.c"
+ }
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5727 "Printing.c"
+}
+
+
+static void _vala_array_add283 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5738 "Printing.c"
+ }
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5744 "Printing.c"
+}
+
+
+static void _vala_array_add284 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5755 "Printing.c"
+ }
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5761 "Printing.c"
+}
+
+
+static void _vala_array_add285 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5772 "Printing.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5778 "Printing.c"
+}
+
+
+static void _vala_array_add286 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5789 "Printing.c"
+ }
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5795 "Printing.c"
+}
+
+
+static void _vala_array_add287 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5806 "Printing.c"
+ }
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5812 "Printing.c"
+}
+
+
+static void _vala_array_add288 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5823 "Printing.c"
+ }
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5829 "Printing.c"
+}
+
+
+static void _vala_array_add289 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5840 "Printing.c"
+ }
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5846 "Printing.c"
+}
+
+
+static void _vala_array_add290 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5857 "Printing.c"
+ }
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5863 "Printing.c"
+}
+
+
+static void _vala_array_add291 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5874 "Printing.c"
+ }
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5880 "Printing.c"
+}
+
+
+static void _vala_array_add292 (StandardPrintSize*** array, int* length, int* size, StandardPrintSize* value) {
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ if ((*length) == (*size)) {
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ *array = g_renew (StandardPrintSize*, *array, (*size) + 1);
+#line 5891 "Printing.c"
+ }
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[(*length)++] = value;
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ (*array)[*length] = NULL;
+#line 5897 "Printing.c"
+}
+
+
+StandardPrintSize** print_manager_get_standard_sizes (PrintManager* self, int* result_length1) {
+ StandardPrintSize** result = NULL;
+ StandardPrintSize** _result_ = NULL;
+ StandardPrintSize** _tmp0_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ StandardPrintSize** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ Measurement _tmp3_ = {0};
+ Measurement _tmp4_ = {0};
+ StandardPrintSize* _tmp5_ = NULL;
+ StandardPrintSize** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ const gchar* _tmp7_ = NULL;
+ Measurement _tmp8_ = {0};
+ Measurement _tmp9_ = {0};
+ StandardPrintSize* _tmp10_ = NULL;
+ StandardPrintSize** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ const gchar* _tmp12_ = NULL;
+ Measurement _tmp13_ = {0};
+ Measurement _tmp14_ = {0};
+ StandardPrintSize* _tmp15_ = NULL;
+ StandardPrintSize** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ const gchar* _tmp17_ = NULL;
+ Measurement _tmp18_ = {0};
+ Measurement _tmp19_ = {0};
+ StandardPrintSize* _tmp20_ = NULL;
+ StandardPrintSize** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ const gchar* _tmp22_ = NULL;
+ Measurement _tmp23_ = {0};
+ Measurement _tmp24_ = {0};
+ StandardPrintSize* _tmp25_ = NULL;
+ StandardPrintSize** _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ const gchar* _tmp27_ = NULL;
+ Measurement _tmp28_ = {0};
+ Measurement _tmp29_ = {0};
+ StandardPrintSize* _tmp30_ = NULL;
+ StandardPrintSize** _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ const gchar* _tmp32_ = NULL;
+ Measurement _tmp33_ = {0};
+ Measurement _tmp34_ = {0};
+ StandardPrintSize* _tmp35_ = NULL;
+ StandardPrintSize** _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ Measurement _tmp37_ = {0};
+ Measurement _tmp38_ = {0};
+ StandardPrintSize* _tmp39_ = NULL;
+ StandardPrintSize** _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ const gchar* _tmp41_ = NULL;
+ Measurement _tmp42_ = {0};
+ Measurement _tmp43_ = {0};
+ StandardPrintSize* _tmp44_ = NULL;
+ StandardPrintSize** _tmp45_ = NULL;
+ gint _tmp45__length1 = 0;
+ const gchar* _tmp46_ = NULL;
+ Measurement _tmp47_ = {0};
+ Measurement _tmp48_ = {0};
+ StandardPrintSize* _tmp49_ = NULL;
+ StandardPrintSize** _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ const gchar* _tmp51_ = NULL;
+ Measurement _tmp52_ = {0};
+ Measurement _tmp53_ = {0};
+ StandardPrintSize* _tmp54_ = NULL;
+ StandardPrintSize** _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ const gchar* _tmp56_ = NULL;
+ Measurement _tmp57_ = {0};
+ Measurement _tmp58_ = {0};
+ StandardPrintSize* _tmp59_ = NULL;
+ StandardPrintSize** _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ const gchar* _tmp61_ = NULL;
+ Measurement _tmp62_ = {0};
+ Measurement _tmp63_ = {0};
+ StandardPrintSize* _tmp64_ = NULL;
+ StandardPrintSize** _tmp65_ = NULL;
+ gint _tmp65__length1 = 0;
+ const gchar* _tmp66_ = NULL;
+ Measurement _tmp67_ = {0};
+ Measurement _tmp68_ = {0};
+ StandardPrintSize* _tmp69_ = NULL;
+ StandardPrintSize** _tmp70_ = NULL;
+ gint _tmp70__length1 = 0;
+ const gchar* _tmp71_ = NULL;
+ Measurement _tmp72_ = {0};
+ Measurement _tmp73_ = {0};
+ StandardPrintSize* _tmp74_ = NULL;
+ StandardPrintSize** _tmp75_ = NULL;
+ gint _tmp75__length1 = 0;
+#line 814 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_MANAGER (self), NULL);
+#line 815 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = g_new0 (StandardPrintSize*, 0 + 1);
+#line 815 "/home/jens/Source/shotwell/src/Printing.vala"
+ _result_ = _tmp0_;
+#line 815 "/home/jens/Source/shotwell/src/Printing.vala"
+ _result__length1 = 0;
+#line 815 "/home/jens/Source/shotwell/src/Printing.vala"
+ __result__size_ = _result__length1;
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _result_;
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1__length1 = _result__length1;
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _ ("Wallet (2 x 3 in.)");
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp3_, (gdouble) 3, MEASUREMENT_UNIT_INCHES);
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp4_, (gdouble) 2, MEASUREMENT_UNIT_INCHES);
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = standard_print_size_new (_tmp2_, &_tmp3_, &_tmp4_);
+#line 817 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add278 (&_result_, &_result__length1, &__result__size_, _tmp5_);
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = _result_;
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6__length1 = _result__length1;
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _ ("Notecard (3 x 5 in.)");
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp8_, (gdouble) 5, MEASUREMENT_UNIT_INCHES);
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp9_, (gdouble) 3, MEASUREMENT_UNIT_INCHES);
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = standard_print_size_new (_tmp7_, &_tmp8_, &_tmp9_);
+#line 820 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add279 (&_result_, &_result__length1, &__result__size_, _tmp10_);
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = _result_;
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11__length1 = _result__length1;
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _ ("4 x 6 in.");
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp13_, (gdouble) 6, MEASUREMENT_UNIT_INCHES);
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp14_, (gdouble) 4, MEASUREMENT_UNIT_INCHES);
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = standard_print_size_new (_tmp12_, &_tmp13_, &_tmp14_);
+#line 823 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add280 (&_result_, &_result__length1, &__result__size_, _tmp15_);
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = _result_;
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16__length1 = _result__length1;
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _ ("5 x 7 in.");
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp18_, (gdouble) 7, MEASUREMENT_UNIT_INCHES);
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp19_, (gdouble) 5, MEASUREMENT_UNIT_INCHES);
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = standard_print_size_new (_tmp17_, &_tmp18_, &_tmp19_);
+#line 826 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add281 (&_result_, &_result__length1, &__result__size_, _tmp20_);
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = _result_;
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21__length1 = _result__length1;
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = _ ("8 x 10 in.");
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp23_, (gdouble) 10, MEASUREMENT_UNIT_INCHES);
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp24_, (gdouble) 8, MEASUREMENT_UNIT_INCHES);
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = standard_print_size_new (_tmp22_, &_tmp23_, &_tmp24_);
+#line 829 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add282 (&_result_, &_result__length1, &__result__size_, _tmp25_);
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = _result_;
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26__length1 = _result__length1;
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = _ ("11 x 14 in.");
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp28_, (gdouble) 14, MEASUREMENT_UNIT_INCHES);
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp29_, (gdouble) 11, MEASUREMENT_UNIT_INCHES);
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = standard_print_size_new (_tmp27_, &_tmp28_, &_tmp29_);
+#line 832 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add283 (&_result_, &_result__length1, &__result__size_, _tmp30_);
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = _result_;
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31__length1 = _result__length1;
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = _ ("16 x 20 in.");
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp33_, (gdouble) 20, MEASUREMENT_UNIT_INCHES);
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp34_, (gdouble) 16, MEASUREMENT_UNIT_INCHES);
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp35_ = standard_print_size_new (_tmp32_, &_tmp33_, &_tmp34_);
+#line 835 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add284 (&_result_, &_result__length1, &__result__size_, _tmp35_);
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36_ = _result_;
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36__length1 = _result__length1;
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp37_, (gdouble) 0, MEASUREMENT_UNIT_INCHES);
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp38_, (gdouble) 0, MEASUREMENT_UNIT_INCHES);
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = standard_print_size_new ("-", &_tmp37_, &_tmp38_);
+#line 838 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add285 (&_result_, &_result__length1, &__result__size_, _tmp39_);
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40_ = _result_;
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40__length1 = _result__length1;
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = _ ("Metric Wallet (9 x 13 cm)");
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp42_, (gdouble) 13, MEASUREMENT_UNIT_CENTIMETERS);
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp43_, (gdouble) 9, MEASUREMENT_UNIT_CENTIMETERS);
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp44_ = standard_print_size_new (_tmp41_, &_tmp42_, &_tmp43_);
+#line 841 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add286 (&_result_, &_result__length1, &__result__size_, _tmp44_);
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp45_ = _result_;
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp45__length1 = _result__length1;
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp46_ = _ ("Postcard (10 x 15 cm)");
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp47_, (gdouble) 15, MEASUREMENT_UNIT_CENTIMETERS);
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp48_, (gdouble) 10, MEASUREMENT_UNIT_CENTIMETERS);
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp49_ = standard_print_size_new (_tmp46_, &_tmp47_, &_tmp48_);
+#line 844 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add287 (&_result_, &_result__length1, &__result__size_, _tmp49_);
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp50_ = _result_;
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp50__length1 = _result__length1;
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp51_ = _ ("13 x 18 cm");
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp52_, (gdouble) 18, MEASUREMENT_UNIT_CENTIMETERS);
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp53_, (gdouble) 13, MEASUREMENT_UNIT_CENTIMETERS);
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp54_ = standard_print_size_new (_tmp51_, &_tmp52_, &_tmp53_);
+#line 847 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add288 (&_result_, &_result__length1, &__result__size_, _tmp54_);
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp55_ = _result_;
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp55__length1 = _result__length1;
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp56_ = _ ("18 x 24 cm");
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp57_, (gdouble) 24, MEASUREMENT_UNIT_CENTIMETERS);
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp58_, (gdouble) 18, MEASUREMENT_UNIT_CENTIMETERS);
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp59_ = standard_print_size_new (_tmp56_, &_tmp57_, &_tmp58_);
+#line 850 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add289 (&_result_, &_result__length1, &__result__size_, _tmp59_);
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp60_ = _result_;
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp60__length1 = _result__length1;
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp61_ = _ ("20 x 30 cm");
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp62_, (gdouble) 30, MEASUREMENT_UNIT_CENTIMETERS);
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp63_, (gdouble) 20, MEASUREMENT_UNIT_CENTIMETERS);
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp64_ = standard_print_size_new (_tmp61_, &_tmp62_, &_tmp63_);
+#line 853 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add290 (&_result_, &_result__length1, &__result__size_, _tmp64_);
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp65_ = _result_;
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp65__length1 = _result__length1;
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp66_ = _ ("24 x 40 cm");
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp67_, (gdouble) 40, MEASUREMENT_UNIT_CENTIMETERS);
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp68_, (gdouble) 24, MEASUREMENT_UNIT_CENTIMETERS);
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp69_ = standard_print_size_new (_tmp66_, &_tmp67_, &_tmp68_);
+#line 856 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add291 (&_result_, &_result__length1, &__result__size_, _tmp69_);
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp70_ = _result_;
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp70__length1 = _result__length1;
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp71_ = _ ("30 x 40 cm");
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp72_, (gdouble) 40, MEASUREMENT_UNIT_CENTIMETERS);
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_init (&_tmp73_, (gdouble) 30, MEASUREMENT_UNIT_CENTIMETERS);
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp74_ = standard_print_size_new (_tmp71_, &_tmp72_, &_tmp73_);
+#line 859 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_array_add292 (&_result_, &_result__length1, &__result__size_, _tmp74_);
+#line 863 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp75_ = _result_;
+#line 863 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp75__length1 = _result__length1;
+#line 863 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (result_length1) {
+#line 863 "/home/jens/Source/shotwell/src/Printing.vala"
+ *result_length1 = _tmp75__length1;
+#line 6224 "Printing.c"
+ }
+#line 863 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp75_;
+#line 863 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 6230 "Printing.c"
+}
+
+
+static gpointer _print_manager_ref0 (gpointer self) {
+#line 870 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self ? print_manager_ref (self) : NULL;
+#line 6237 "Printing.c"
+}
+
+
+PrintManager* print_manager_get_instance (void) {
+ PrintManager* result = NULL;
+ PrintManager* _tmp0_ = NULL;
+ PrintManager* _tmp2_ = NULL;
+ PrintManager* _tmp3_ = NULL;
+#line 867 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = print_manager_instance;
+#line 867 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp0_ == NULL) {
+#line 6250 "Printing.c"
+ PrintManager* _tmp1_ = NULL;
+#line 868 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = print_manager_new ();
+#line 868 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_manager_unref0 (print_manager_instance);
+#line 868 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_instance = _tmp1_;
+#line 6258 "Printing.c"
+ }
+#line 870 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = print_manager_instance;
+#line 870 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = _print_manager_ref0 (_tmp2_);
+#line 870 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp3_;
+#line 870 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 6268 "Printing.c"
+}
+
+
+static void _print_manager_on_begin_print_gtk_print_operation_begin_print (GtkPrintOperation* _sender, GtkPrintContext* context, gpointer self) {
+#line 880 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_on_begin_print ((PrintManager*) self, _sender, context);
+#line 6275 "Printing.c"
+}
+
+
+static void _print_manager_on_draw_page_gtk_print_operation_draw_page (GtkPrintOperation* _sender, GtkPrintContext* context, gint page_nr, gpointer self) {
+#line 881 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_on_draw_page ((PrintManager*) self, _sender, context, page_nr);
+#line 6282 "Printing.c"
+}
+
+
+static GObject* _print_manager_on_create_custom_widget_gtk_print_operation_create_custom_widget (GtkPrintOperation* _sender, gpointer self) {
+ GObject* result;
+ result = print_manager_on_create_custom_widget ((PrintManager*) self, _sender);
+#line 882 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 6291 "Printing.c"
+}
+
+
+static void _print_manager_on_status_changed_gtk_print_operation_status_changed (GtkPrintOperation* _sender, gpointer self) {
+#line 883 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_on_status_changed ((PrintManager*) self, _sender);
+#line 6298 "Printing.c"
+}
+
+
+void print_manager_spool_photo (PrintManager* self, GeeCollection* to_print) {
+ PrintJob* job = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ PrintJob* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GtkPageSetup* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+ AppWindow* _tmp9_ = NULL;
+ GCancellable* _tmp10_ = NULL;
+ AppWindow* _tmp11_ = NULL;
+ AppWindow* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GCancellable* _tmp14_ = NULL;
+ ProgressDialog* _tmp15_ = NULL;
+ gchar* err_msg = NULL;
+ ProgressDialog* _tmp25_ = NULL;
+ AppWindow* _tmp26_ = NULL;
+ AppWindow* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 873 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 873 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (to_print));
+#line 874 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = to_print;
+#line 874 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = print_job_new (_tmp0_);
+#line 874 "/home/jens/Source/shotwell/src/Printing.vala"
+ job = _tmp1_;
+#line 875 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _ ("Image Settings");
+#line 875 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_custom_tab_label (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), _tmp2_);
+#line 876 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_unit (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), GTK_UNIT_INCH);
+#line 877 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_n_pages (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), 1);
+#line 878 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = print_job_get_source_photo (job);
+#line 878 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = _tmp3_;
+#line 878 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_OBJECT, DataObject));
+#line 878 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = _tmp5_;
+#line 878 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_job_name (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), _tmp6_);
+#line 878 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp6_);
+#line 878 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp4_);
+#line 879 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = self->priv->user_page_setup;
+#line 879 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_default_page_setup (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), _tmp7_);
+#line 880 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), "begin-print", (GCallback) _print_manager_on_begin_print_gtk_print_operation_begin_print, self);
+#line 881 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), "draw-page", (GCallback) _print_manager_on_draw_page_gtk_print_operation_draw_page, self);
+#line 882 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), "create-custom-widget", (GCallback) _print_manager_on_create_custom_widget_gtk_print_operation_create_custom_widget, self);
+#line 883 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), "status-changed", (GCallback) _print_manager_on_status_changed_gtk_print_operation_status_changed, self);
+#line 885 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = app_window_get_instance ();
+#line 885 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _tmp8_;
+#line 885 "/home/jens/Source/shotwell/src/Printing.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PAGE_WINDOW, PageWindow));
+#line 885 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp9_);
+#line 887 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = g_cancellable_new ();
+#line 887 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 887 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->cancellable = _tmp10_;
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = app_window_get_instance ();
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _tmp11_;
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = _ ("Printing...");
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = self->priv->cancellable;
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_window_get_type (), GtkWindow), _tmp13_, _tmp14_);
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_object_ref_sink (_tmp15_);
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->progress_dialog = _tmp15_;
+#line 888 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp12_);
+#line 890 "/home/jens/Source/shotwell/src/Printing.vala"
+ err_msg = NULL;
+#line 6404 "Printing.c"
+ {
+ GtkPrintOperationResult _result_ = 0;
+ AppWindow* _tmp16_ = NULL;
+ AppWindow* _tmp17_ = NULL;
+ GtkPrintOperationResult _tmp18_ = 0;
+ GtkPrintOperationResult _tmp19_ = 0;
+#line 892 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = app_window_get_instance ();
+#line 892 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _tmp16_;
+#line 892 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = gtk_print_operation_run (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation), GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_window_get_type (), GtkWindow), &_inner_error_);
+#line 892 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = _tmp18_;
+#line 892 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp17_);
+#line 892 "/home/jens/Source/shotwell/src/Printing.vala"
+ _result_ = _tmp19_;
+#line 892 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6425 "Printing.c"
+ goto __catch457_g_error;
+ }
+#line 894 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_result_ == GTK_PRINT_OPERATION_RESULT_APPLY) {
+#line 6430 "Printing.c"
+ GtkPageSetup* _tmp20_ = NULL;
+ GtkPageSetup* _tmp21_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = gtk_print_operation_get_default_page_setup (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation));
+#line 895 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 895 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->user_page_setup);
+#line 895 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->user_page_setup = _tmp21_;
+#line 6441 "Printing.c"
+ }
+ }
+ goto __finally457;
+ __catch457_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ e = _inner_error_;
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ _inner_error_ = NULL;
+#line 897 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_cancel (G_TYPE_CHECK_INSTANCE_CAST (job, gtk_print_operation_get_type (), GtkPrintOperation));
+#line 898 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = e;
+#line 898 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = _tmp22_->message;
+#line 898 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = g_strdup (_tmp23_);
+#line 898 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (err_msg);
+#line 898 "/home/jens/Source/shotwell/src/Printing.vala"
+ err_msg = _tmp24_;
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_error_free0 (e);
+#line 6469 "Printing.c"
+ }
+ __finally457:
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (err_msg);
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (job);
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_clear_error (&_inner_error_);
+#line 891 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 6484 "Printing.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = self->priv->progress_dialog;
+#line 901 "/home/jens/Source/shotwell/src/Printing.vala"
+ progress_dialog_close (_tmp25_);
+#line 902 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 902 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->progress_dialog = NULL;
+#line 903 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 903 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->cancellable = NULL;
+#line 905 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = app_window_get_instance ();
+#line 905 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = _tmp26_;
+#line 905 "/home/jens/Source/shotwell/src/Printing.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_PAGE_WINDOW, PageWindow));
+#line 905 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp27_);
+#line 907 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = err_msg;
+#line 907 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp28_ != NULL) {
+#line 6510 "Printing.c"
+ const gchar* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+#line 908 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = _ ("Unable to print photo:\n\n%s");
+#line 908 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = err_msg;
+#line 908 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = g_strdup_printf (_tmp29_, _tmp30_);
+#line 908 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = _tmp31_;
+#line 908 "/home/jens/Source/shotwell/src/Printing.vala"
+ app_window_error_message (_tmp32_, NULL);
+#line 908 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp32_);
+#line 6527 "Printing.c"
+ }
+#line 873 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (err_msg);
+#line 873 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (job);
+#line 6533 "Printing.c"
+}
+
+
+static void print_manager_on_begin_print (PrintManager* self, GtkPrintOperation* emitting_object, GtkPrintContext* job_context) {
+ PrintJob* job = NULL;
+ GtkPrintOperation* _tmp0_ = NULL;
+ PrintJob* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GCancellable* _tmp3_ = NULL;
+ GeeList* photos = NULL;
+ PrintJob* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ PrintJob* _tmp9_ = NULL;
+ PrintSettings* _tmp10_ = NULL;
+ PrintSettings* _tmp11_ = NULL;
+ ContentLayout _tmp12_ = 0;
+ gboolean _tmp13_ = FALSE;
+#line 911 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 911 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_PRINT_OPERATION (emitting_object));
+#line 911 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_PRINT_CONTEXT (job_context));
+#line 912 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_debug ("Printing.vala:912: on_begin_print");
+#line 914 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = emitting_object;
+#line 914 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PRINT_JOB, PrintJob));
+#line 914 "/home/jens/Source/shotwell/src/Printing.vala"
+ job = _tmp1_;
+#line 917 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->cancellable;
+#line 917 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp3_ != NULL) {
+#line 6569 "Printing.c"
+ GCancellable* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 917 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = self->priv->cancellable;
+#line 917 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = g_cancellable_is_cancelled (_tmp4_);
+#line 917 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _tmp5_;
+#line 6578 "Printing.c"
+ } else {
+#line 917 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = FALSE;
+#line 6582 "Printing.c"
+ }
+#line 917 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_) {
+#line 6586 "Printing.c"
+ PrintJob* _tmp6_ = NULL;
+#line 918 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = job;
+#line 918 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_print_operation_get_type (), GtkPrintOperation));
+#line 920 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (job);
+#line 920 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 6596 "Printing.c"
+ }
+#line 923 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = job;
+#line 923 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = print_job_get_photos (_tmp7_);
+#line 923 "/home/jens/Source/shotwell/src/Printing.vala"
+ photos = _tmp8_;
+#line 924 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = job;
+#line 924 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = print_job_get_local_settings (_tmp9_);
+#line 924 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = _tmp10_;
+#line 924 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = print_settings_get_content_layout (_tmp11_);
+#line 924 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = _tmp12_ == CONTENT_LAYOUT_IMAGE_PER_PAGE;
+#line 924 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp11_);
+#line 924 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp13_) {
+#line 6618 "Printing.c"
+ PrintLayout layout = 0;
+ PrintJob* _tmp14_ = NULL;
+ PrintSettings* _tmp15_ = NULL;
+ PrintSettings* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ PrintLayout _tmp18_ = 0;
+ PrintJob* _tmp19_ = NULL;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ PrintLayout _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gdouble _tmp25_ = 0.0;
+#line 925 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = job;
+#line 925 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = print_job_get_local_settings (_tmp14_);
+#line 925 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = _tmp15_;
+#line 925 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = print_settings_get_image_per_page_selection (_tmp16_);
+#line 925 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = (PrintLayout) _tmp17_;
+#line 925 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp16_);
+#line 925 "/home/jens/Source/shotwell/src/Printing.vala"
+ layout = _tmp18_;
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = job;
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = photos;
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = _tmp21_;
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = layout;
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = print_layout_get_per_page (_tmp23_);
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = ceil (((gdouble) _tmp22_) / ((gdouble) _tmp24_));
+#line 926 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_n_pages (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_print_operation_get_type (), GtkPrintOperation), (gint) _tmp25_);
+#line 6662 "Printing.c"
+ } else {
+ PrintJob* _tmp26_ = NULL;
+ GeeList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 928 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = job;
+#line 928 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = photos;
+#line 928 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 928 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = _tmp28_;
+#line 928 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_set_n_pages (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_print_operation_get_type (), GtkPrintOperation), _tmp29_);
+#line 6678 "Printing.c"
+ }
+#line 931 "/home/jens/Source/shotwell/src/Printing.vala"
+ spin_event_loop ();
+#line 911 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (photos);
+#line 911 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (job);
+#line 6686 "Printing.c"
+}
+
+
+static void print_manager_on_status_changed (PrintManager* self, GtkPrintOperation* job) {
+ GtkPrintOperation* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ ProgressDialog* _tmp2_ = NULL;
+#line 934 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 934 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_PRINT_OPERATION (job));
+#line 935 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = job;
+#line 935 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_print_operation_get_status_string (_tmp0_);
+#line 935 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_debug ("Printing.vala:935: on_status_changed: %s", _tmp1_);
+#line 937 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = self->priv->progress_dialog;
+#line 937 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_ != NULL) {
+#line 6708 "Printing.c"
+ ProgressDialog* _tmp3_ = NULL;
+ GtkPrintOperation* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->progress_dialog;
+#line 938 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = job;
+#line 938 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = gtk_print_operation_get_status_string (_tmp4_);
+#line 938 "/home/jens/Source/shotwell/src/Printing.vala"
+ progress_dialog_set_status (_tmp3_, _tmp5_);
+#line 939 "/home/jens/Source/shotwell/src/Printing.vala"
+ spin_event_loop ();
+#line 6722 "Printing.c"
+ }
+}
+
+
+static gpointer _cairo_reference0 (gpointer self) {
+#line 964 "/home/jens/Source/shotwell/src/Printing.vala"
+ return self ? cairo_reference (self) : NULL;
+#line 6730 "Printing.c"
+}
+
+
+static void print_manager_on_draw_page (PrintManager* self, GtkPrintOperation* emitting_object, GtkPrintContext* job_context, gint page_num) {
+ PrintJob* job = NULL;
+ GtkPrintOperation* _tmp0_ = NULL;
+ PrintJob* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GCancellable* _tmp3_ = NULL;
+ GtkPageSetup* page_setup = NULL;
+ GtkPrintContext* _tmp7_ = NULL;
+ GtkPageSetup* _tmp8_ = NULL;
+ GtkPageSetup* _tmp9_ = NULL;
+ gdouble page_width = 0.0;
+ GtkPageSetup* _tmp10_ = NULL;
+ gdouble _tmp11_ = 0.0;
+ gdouble page_height = 0.0;
+ GtkPageSetup* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+ gdouble dpi = 0.0;
+ PrintJob* _tmp14_ = NULL;
+ PrintSettings* _tmp15_ = NULL;
+ PrintSettings* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gdouble _tmp18_ = 0.0;
+ gdouble inv_dpi = 0.0;
+ gdouble _tmp19_ = 0.0;
+ cairo_t* dc = NULL;
+ GtkPrintContext* _tmp20_ = NULL;
+ cairo_t* _tmp21_ = NULL;
+ cairo_t* _tmp22_ = NULL;
+ cairo_t* _tmp23_ = NULL;
+ gdouble _tmp24_ = 0.0;
+ gdouble _tmp25_ = 0.0;
+ GeeList* photos = NULL;
+ PrintJob* _tmp26_ = NULL;
+ GeeList* _tmp27_ = NULL;
+ ContentLayout content_layout = 0;
+ PrintJob* _tmp28_ = NULL;
+ PrintSettings* _tmp29_ = NULL;
+ PrintSettings* _tmp30_ = NULL;
+ ContentLayout _tmp31_ = 0;
+ ContentLayout _tmp32_ = 0;
+ ContentLayout _tmp33_ = 0;
+#line 943 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 943 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_PRINT_OPERATION (emitting_object));
+#line 943 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_PRINT_CONTEXT (job_context));
+#line 945 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_debug ("Printing.vala:945: on_draw_page");
+#line 947 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = emitting_object;
+#line 947 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PRINT_JOB, PrintJob));
+#line 947 "/home/jens/Source/shotwell/src/Printing.vala"
+ job = _tmp1_;
+#line 950 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->cancellable;
+#line 950 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp3_ != NULL) {
+#line 6793 "Printing.c"
+ GCancellable* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 950 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = self->priv->cancellable;
+#line 950 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = g_cancellable_is_cancelled (_tmp4_);
+#line 950 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _tmp5_;
+#line 6802 "Printing.c"
+ } else {
+#line 950 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = FALSE;
+#line 6806 "Printing.c"
+ }
+#line 950 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp2_) {
+#line 6810 "Printing.c"
+ PrintJob* _tmp6_ = NULL;
+#line 951 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = job;
+#line 951 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_print_operation_get_type (), GtkPrintOperation));
+#line 953 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (job);
+#line 953 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 6820 "Printing.c"
+ }
+#line 956 "/home/jens/Source/shotwell/src/Printing.vala"
+ spin_event_loop ();
+#line 958 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = job_context;
+#line 958 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = gtk_print_context_get_page_setup (_tmp7_);
+#line 958 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 958 "/home/jens/Source/shotwell/src/Printing.vala"
+ page_setup = _tmp9_;
+#line 959 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = page_setup;
+#line 959 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = gtk_page_setup_get_page_width (_tmp10_, GTK_UNIT_INCH);
+#line 959 "/home/jens/Source/shotwell/src/Printing.vala"
+ page_width = _tmp11_;
+#line 960 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = page_setup;
+#line 960 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = gtk_page_setup_get_page_height (_tmp12_, GTK_UNIT_INCH);
+#line 960 "/home/jens/Source/shotwell/src/Printing.vala"
+ page_height = _tmp13_;
+#line 962 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = job;
+#line 962 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = print_job_get_local_settings (_tmp14_);
+#line 962 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = _tmp15_;
+#line 962 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = print_settings_get_content_ppi (_tmp16_);
+#line 962 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = (gdouble) _tmp17_;
+#line 962 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp16_);
+#line 962 "/home/jens/Source/shotwell/src/Printing.vala"
+ dpi = _tmp18_;
+#line 963 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = dpi;
+#line 963 "/home/jens/Source/shotwell/src/Printing.vala"
+ inv_dpi = 1.0 / _tmp19_;
+#line 964 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = job_context;
+#line 964 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = gtk_print_context_get_cairo_context (_tmp20_);
+#line 964 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = _cairo_reference0 (_tmp21_);
+#line 964 "/home/jens/Source/shotwell/src/Printing.vala"
+ dc = _tmp22_;
+#line 965 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = dc;
+#line 965 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = inv_dpi;
+#line 965 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = inv_dpi;
+#line 965 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_scale (_tmp23_, _tmp24_, _tmp25_);
+#line 966 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = job;
+#line 966 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = print_job_get_photos (_tmp26_);
+#line 966 "/home/jens/Source/shotwell/src/Printing.vala"
+ photos = _tmp27_;
+#line 968 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = job;
+#line 968 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = print_job_get_local_settings (_tmp28_);
+#line 968 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = _tmp29_;
+#line 968 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = print_settings_get_content_layout (_tmp30_);
+#line 968 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = _tmp31_;
+#line 968 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp30_);
+#line 968 "/home/jens/Source/shotwell/src/Printing.vala"
+ content_layout = _tmp32_;
+#line 969 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp33_ = content_layout;
+#line 969 "/home/jens/Source/shotwell/src/Printing.vala"
+ switch (_tmp33_) {
+#line 969 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_STANDARD_SIZE:
+#line 969 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_CUSTOM_SIZE:
+#line 6906 "Printing.c"
+ {
+ gdouble canvas_width = 0.0;
+ gdouble canvas_height = 0.0;
+ ContentLayout _tmp34_ = 0;
+ gint _tmp68_ = 0;
+ GeeList* _tmp69_ = NULL;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ ProgressDialog* _tmp117_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp34_ = content_layout;
+#line 973 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp34_ == CONTENT_LAYOUT_STANDARD_SIZE) {
+#line 6920 "Printing.c"
+ gint _tmp35_ = 0;
+ StandardPrintSize** _tmp36_ = NULL;
+ StandardPrintSize** _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ PrintJob* _tmp38_ = NULL;
+ PrintSettings* _tmp39_ = NULL;
+ PrintSettings* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ StandardPrintSize* _tmp42_ = NULL;
+ Measurement _tmp43_ = {0};
+ gdouble _tmp44_ = 0.0;
+ gint _tmp45_ = 0;
+ StandardPrintSize** _tmp46_ = NULL;
+ StandardPrintSize** _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ PrintJob* _tmp48_ = NULL;
+ PrintSettings* _tmp49_ = NULL;
+ PrintSettings* _tmp50_ = NULL;
+ gint _tmp51_ = 0;
+ StandardPrintSize* _tmp52_ = NULL;
+ Measurement _tmp53_ = {0};
+ gdouble _tmp54_ = 0.0;
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36_ = print_manager_get_standard_sizes (self, &_tmp35_);
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = _tmp36_;
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37__length1 = _tmp35_;
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp38_ = job;
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = print_job_get_local_settings (_tmp38_);
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40_ = _tmp39_;
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = print_settings_get_size_selection (_tmp40_);
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = _tmp37_[_tmp41_];
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (&_tmp42_->width, MEASUREMENT_UNIT_INCHES, &_tmp43_);
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp44_ = _tmp43_.value;
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_width = _tmp44_;
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp40_);
+#line 974 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = (_vala_array_free (_tmp37_, _tmp37__length1, (GDestroyNotify) standard_print_size_unref), NULL);
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp46_ = print_manager_get_standard_sizes (self, &_tmp45_);
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp47_ = _tmp46_;
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp47__length1 = _tmp45_;
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp48_ = job;
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp49_ = print_job_get_local_settings (_tmp48_);
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp50_ = _tmp49_;
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp51_ = print_settings_get_size_selection (_tmp50_);
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp52_ = _tmp47_[_tmp51_];
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (&_tmp52_->height, MEASUREMENT_UNIT_INCHES, &_tmp53_);
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp54_ = _tmp53_.value;
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_height = _tmp54_;
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp50_);
+#line 976 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp47_ = (_vala_array_free (_tmp47_, _tmp47__length1, (GDestroyNotify) standard_print_size_unref), NULL);
+#line 6995 "Printing.c"
+ } else {
+ ContentLayout _tmp55_ = 0;
+ PrintJob* _tmp56_ = NULL;
+ PrintSettings* _tmp57_ = NULL;
+ PrintSettings* _tmp58_ = NULL;
+ Measurement _tmp59_ = {0};
+ Measurement _tmp60_ = {0};
+ gdouble _tmp61_ = 0.0;
+ PrintJob* _tmp62_ = NULL;
+ PrintSettings* _tmp63_ = NULL;
+ PrintSettings* _tmp64_ = NULL;
+ Measurement _tmp65_ = {0};
+ Measurement _tmp66_ = {0};
+ gdouble _tmp67_ = 0.0;
+#line 979 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp55_ = content_layout;
+#line 979 "/home/jens/Source/shotwell/src/Printing.vala"
+ _vala_assert (_tmp55_ == CONTENT_LAYOUT_CUSTOM_SIZE, "content_layout == ContentLayout.CUSTOM_SIZE");
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp56_ = job;
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp57_ = print_job_get_local_settings (_tmp56_);
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp58_ = _tmp57_;
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_width (_tmp58_, &_tmp59_);
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (&_tmp59_, MEASUREMENT_UNIT_INCHES, &_tmp60_);
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp61_ = _tmp60_.value;
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_width = _tmp61_;
+#line 980 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp58_);
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp62_ = job;
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp63_ = print_job_get_local_settings (_tmp62_);
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp64_ = _tmp63_;
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_get_content_height (_tmp64_, &_tmp65_);
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ measurement_convert_to (&_tmp65_, MEASUREMENT_UNIT_INCHES, &_tmp66_);
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp67_ = _tmp66_.value;
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_height = _tmp67_;
+#line 982 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp64_);
+#line 7046 "Printing.c"
+ }
+#line 986 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp68_ = page_num;
+#line 986 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp69_ = photos;
+#line 986 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp70_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 986 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp71_ = _tmp70_;
+#line 986 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp68_ < _tmp71_) {
+#line 7058 "Printing.c"
+ Dimensions photo_dimensions = {0};
+ GeeList* _tmp72_ = NULL;
+ gint _tmp73_ = 0;
+ gpointer _tmp74_ = NULL;
+ Photo* _tmp75_ = NULL;
+ Dimensions _tmp76_ = {0};
+ Dimensions _tmp77_ = {0};
+ gdouble photo_aspect_ratio = 0.0;
+ gdouble _tmp78_ = 0.0;
+ gdouble canvas_aspect_ratio = 0.0;
+ gdouble _tmp79_ = 0.0;
+ gdouble _tmp80_ = 0.0;
+ gdouble _tmp81_ = 0.0;
+ gdouble _tmp82_ = 0.0;
+ gdouble _tmp83_ = 0.0;
+ gdouble _tmp84_ = 0.0;
+ gdouble dx = 0.0;
+ gdouble _tmp88_ = 0.0;
+ gdouble _tmp89_ = 0.0;
+ gdouble dy = 0.0;
+ gdouble _tmp90_ = 0.0;
+ gdouble _tmp91_ = 0.0;
+ GeeList* _tmp92_ = NULL;
+ gint _tmp93_ = 0;
+ gpointer _tmp94_ = NULL;
+ Photo* _tmp95_ = NULL;
+ gdouble _tmp96_ = 0.0;
+ gdouble _tmp97_ = 0.0;
+ gdouble _tmp98_ = 0.0;
+ gdouble _tmp99_ = 0.0;
+ PrintJob* _tmp100_ = NULL;
+ GtkPrintContext* _tmp101_ = NULL;
+ PrintJob* _tmp102_ = NULL;
+ PrintSettings* _tmp103_ = NULL;
+ PrintSettings* _tmp104_ = NULL;
+ gboolean _tmp105_ = FALSE;
+ gboolean _tmp106_ = FALSE;
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp72_ = photos;
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp73_ = page_num;
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp74_ = gee_list_get (_tmp72_, _tmp73_);
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp75_ = (Photo*) _tmp74_;
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp76_);
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp77_ = _tmp76_;
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp75_);
+#line 987 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_dimensions = _tmp77_;
+#line 988 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp78_ = dimensions_get_aspect_ratio (&photo_dimensions);
+#line 988 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_aspect_ratio = _tmp78_;
+#line 989 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp79_ = canvas_width;
+#line 989 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp80_ = canvas_height;
+#line 989 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_aspect_ratio = ((gdouble) _tmp79_) / _tmp80_;
+#line 990 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp81_ = canvas_aspect_ratio;
+#line 990 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp82_ = floor (_tmp81_);
+#line 990 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp83_ = photo_aspect_ratio;
+#line 990 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp84_ = floor (_tmp83_);
+#line 990 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp82_ != _tmp84_) {
+#line 7132 "Printing.c"
+ gdouble canvas_tmp = 0.0;
+ gdouble _tmp85_ = 0.0;
+ gdouble _tmp86_ = 0.0;
+ gdouble _tmp87_ = 0.0;
+#line 991 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp85_ = canvas_width;
+#line 991 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_tmp = _tmp85_;
+#line 992 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp86_ = canvas_height;
+#line 992 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_width = _tmp86_;
+#line 993 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp87_ = canvas_tmp;
+#line 993 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_height = _tmp87_;
+#line 7149 "Printing.c"
+ }
+#line 996 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp88_ = page_width;
+#line 996 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp89_ = canvas_width;
+#line 996 "/home/jens/Source/shotwell/src/Printing.vala"
+ dx = (_tmp88_ - _tmp89_) / 2.0;
+#line 997 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp90_ = page_height;
+#line 997 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp91_ = canvas_height;
+#line 997 "/home/jens/Source/shotwell/src/Printing.vala"
+ dy = (_tmp90_ - _tmp91_) / 2.0;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp92_ = photos;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp93_ = page_num;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp94_ = gee_list_get (_tmp92_, _tmp93_);
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp95_ = (Photo*) _tmp94_;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp96_ = dx;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp97_ = dy;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp98_ = canvas_width;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp99_ = canvas_height;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp100_ = job;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp101_ = job_context;
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_fit_image_to_canvas (self, _tmp95_, _tmp96_, _tmp97_, _tmp98_, _tmp99_, TRUE, _tmp100_, _tmp101_);
+#line 998 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp95_);
+#line 1000 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp102_ = job;
+#line 1000 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp103_ = print_job_get_local_settings (_tmp102_);
+#line 1000 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp104_ = _tmp103_;
+#line 1000 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp105_ = print_settings_is_print_titles_enabled (_tmp104_);
+#line 1000 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp106_ = _tmp105_;
+#line 1000 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp104_);
+#line 1000 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp106_) {
+#line 7201 "Printing.c"
+ gdouble _tmp107_ = 0.0;
+ gdouble _tmp108_ = 0.0;
+ GeeList* _tmp109_ = NULL;
+ gint _tmp110_ = 0;
+ gpointer _tmp111_ = NULL;
+ Photo* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ PrintJob* _tmp115_ = NULL;
+ GtkPrintContext* _tmp116_ = NULL;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp107_ = page_width;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp108_ = page_height;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp109_ = photos;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp110_ = page_num;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp111_ = gee_list_get (_tmp109_, _tmp110_);
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp112_ = (Photo*) _tmp111_;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp113_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp112_, TYPE_DATA_OBJECT, DataObject));
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp114_ = _tmp113_;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp115_ = job;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp116_ = job_context;
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_add_title_to_canvas (self, _tmp107_ / 2, _tmp108_, _tmp114_, _tmp115_, _tmp116_);
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp114_);
+#line 1001 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp112_);
+#line 7238 "Printing.c"
+ }
+ }
+#line 1006 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp117_ = self->priv->progress_dialog;
+#line 1006 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp117_ != NULL) {
+#line 7245 "Printing.c"
+ ProgressDialog* _tmp118_ = NULL;
+ gint _tmp119_ = 0;
+ GeeList* _tmp120_ = NULL;
+ gint _tmp121_ = 0;
+ gint _tmp122_ = 0;
+#line 1007 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp118_ = self->priv->progress_dialog;
+#line 1007 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp119_ = page_num;
+#line 1007 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp120_ = photos;
+#line 1007 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp121_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp120_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1007 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp122_ = _tmp121_;
+#line 1007 "/home/jens/Source/shotwell/src/Printing.vala"
+ progress_dialog_monitor (_tmp118_, (guint64) _tmp119_, (guint64) _tmp122_, TRUE);
+#line 7263 "Printing.c"
+ }
+#line 1008 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 7267 "Printing.c"
+ }
+#line 969 "/home/jens/Source/shotwell/src/Printing.vala"
+ case CONTENT_LAYOUT_IMAGE_PER_PAGE:
+#line 7271 "Printing.c"
+ {
+ PrintLayout layout = 0;
+ PrintJob* _tmp123_ = NULL;
+ PrintSettings* _tmp124_ = NULL;
+ PrintSettings* _tmp125_ = NULL;
+ gint _tmp126_ = 0;
+ PrintLayout _tmp127_ = 0;
+ gint nx = 0;
+ PrintLayout _tmp128_ = 0;
+ gint _tmp129_ = 0;
+ gint ny = 0;
+ PrintLayout _tmp130_ = 0;
+ gint _tmp131_ = 0;
+ gint start = 0;
+ gint _tmp132_ = 0;
+ PrintLayout _tmp133_ = 0;
+ gint _tmp134_ = 0;
+ gdouble canvas_width = 0.0;
+ gdouble _tmp135_ = 0.0;
+ gint _tmp136_ = 0;
+ gint _tmp137_ = 0;
+ gdouble canvas_height = 0.0;
+ gdouble _tmp138_ = 0.0;
+ gint _tmp139_ = 0;
+ gint _tmp140_ = 0;
+#line 1011 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp123_ = job;
+#line 1011 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp124_ = print_job_get_local_settings (_tmp123_);
+#line 1011 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp125_ = _tmp124_;
+#line 1011 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp126_ = print_settings_get_image_per_page_selection (_tmp125_);
+#line 1011 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp127_ = (PrintLayout) _tmp126_;
+#line 1011 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp125_);
+#line 1011 "/home/jens/Source/shotwell/src/Printing.vala"
+ layout = _tmp127_;
+#line 1012 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp128_ = layout;
+#line 1012 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp129_ = print_layout_get_x (_tmp128_);
+#line 1012 "/home/jens/Source/shotwell/src/Printing.vala"
+ nx = _tmp129_;
+#line 1013 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp130_ = layout;
+#line 1013 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp131_ = print_layout_get_y (_tmp130_);
+#line 1013 "/home/jens/Source/shotwell/src/Printing.vala"
+ ny = _tmp131_;
+#line 1014 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp132_ = page_num;
+#line 1014 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp133_ = layout;
+#line 1014 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp134_ = print_layout_get_per_page (_tmp133_);
+#line 1014 "/home/jens/Source/shotwell/src/Printing.vala"
+ start = _tmp132_ * _tmp134_;
+#line 1015 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp135_ = page_width;
+#line 1015 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp136_ = nx;
+#line 1015 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp137_ = nx;
+#line 1015 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_width = ((gdouble) (_tmp135_ - (PRINT_MANAGER_IMAGE_DISTANCE * (_tmp136_ - 1)))) / _tmp137_;
+#line 1016 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp138_ = page_height;
+#line 1016 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp139_ = ny;
+#line 1016 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp140_ = ny;
+#line 1016 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_height = ((gdouble) (_tmp138_ - (PRINT_MANAGER_IMAGE_DISTANCE * (_tmp139_ - 1)))) / _tmp140_;
+#line 7347 "Printing.c"
+ {
+ gint y = 0;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ y = 0;
+#line 7352 "Printing.c"
+ {
+ gboolean _tmp141_ = FALSE;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp141_ = TRUE;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ while (TRUE) {
+#line 7359 "Printing.c"
+ gint _tmp143_ = 0;
+ gint _tmp144_ = 0;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!_tmp141_) {
+#line 7364 "Printing.c"
+ gint _tmp142_ = 0;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp142_ = y;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ y = _tmp142_ + 1;
+#line 7370 "Printing.c"
+ }
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp141_ = FALSE;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp143_ = y;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp144_ = ny;
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!(_tmp143_ < _tmp144_)) {
+#line 1017 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 7382 "Printing.c"
+ }
+ {
+ gint x = 0;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ x = 0;
+#line 7388 "Printing.c"
+ {
+ gboolean _tmp145_ = FALSE;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp145_ = TRUE;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ while (TRUE) {
+#line 7395 "Printing.c"
+ gint _tmp147_ = 0;
+ gint _tmp148_ = 0;
+ gint i = 0;
+ gint _tmp149_ = 0;
+ gint _tmp150_ = 0;
+ gint _tmp151_ = 0;
+ gint _tmp152_ = 0;
+ gint _tmp153_ = 0;
+ GeeList* _tmp154_ = NULL;
+ gint _tmp155_ = 0;
+ gint _tmp156_ = 0;
+ ProgressDialog* _tmp190_ = NULL;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!_tmp145_) {
+#line 7410 "Printing.c"
+ gint _tmp146_ = 0;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp146_ = x;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ x = _tmp146_ + 1;
+#line 7416 "Printing.c"
+ }
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp145_ = FALSE;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp147_ = x;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp148_ = nx;
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!(_tmp147_ < _tmp148_)) {
+#line 1018 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 7428 "Printing.c"
+ }
+#line 1019 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp149_ = start;
+#line 1019 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp150_ = y;
+#line 1019 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp151_ = nx;
+#line 1019 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp152_ = x;
+#line 1019 "/home/jens/Source/shotwell/src/Printing.vala"
+ i = (_tmp149_ + (_tmp150_ * _tmp151_)) + _tmp152_;
+#line 1020 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp153_ = i;
+#line 1020 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp154_ = photos;
+#line 1020 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp155_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp154_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1020 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp156_ = _tmp155_;
+#line 1020 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp153_ < _tmp156_) {
+#line 7450 "Printing.c"
+ gdouble dx = 0.0;
+ gint _tmp157_ = 0;
+ gdouble _tmp158_ = 0.0;
+ gint _tmp159_ = 0;
+ gdouble dy = 0.0;
+ gint _tmp160_ = 0;
+ gdouble _tmp161_ = 0.0;
+ gint _tmp162_ = 0;
+ GeeList* _tmp163_ = NULL;
+ gint _tmp164_ = 0;
+ gpointer _tmp165_ = NULL;
+ Photo* _tmp166_ = NULL;
+ gdouble _tmp167_ = 0.0;
+ gdouble _tmp168_ = 0.0;
+ gdouble _tmp169_ = 0.0;
+ gdouble _tmp170_ = 0.0;
+ PrintJob* _tmp171_ = NULL;
+ GtkPrintContext* _tmp172_ = NULL;
+ PrintJob* _tmp173_ = NULL;
+ PrintSettings* _tmp174_ = NULL;
+ PrintSettings* _tmp175_ = NULL;
+ gboolean _tmp176_ = FALSE;
+ gboolean _tmp177_ = FALSE;
+#line 1021 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp157_ = x;
+#line 1021 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp158_ = canvas_width;
+#line 1021 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp159_ = x;
+#line 1021 "/home/jens/Source/shotwell/src/Printing.vala"
+ dx = (_tmp157_ * _tmp158_) + (_tmp159_ * PRINT_MANAGER_IMAGE_DISTANCE);
+#line 1022 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp160_ = y;
+#line 1022 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp161_ = canvas_height;
+#line 1022 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp162_ = y;
+#line 1022 "/home/jens/Source/shotwell/src/Printing.vala"
+ dy = (_tmp160_ * _tmp161_) + (_tmp162_ * PRINT_MANAGER_IMAGE_DISTANCE);
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp163_ = photos;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp164_ = i;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp165_ = gee_list_get (_tmp163_, _tmp164_);
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp166_ = (Photo*) _tmp165_;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp167_ = dx;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp168_ = dy;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp169_ = canvas_width;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp170_ = canvas_height;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp171_ = job;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp172_ = job_context;
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_fit_image_to_canvas (self, _tmp166_, _tmp167_, _tmp168_, _tmp169_, _tmp170_, FALSE, _tmp171_, _tmp172_);
+#line 1023 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp166_);
+#line 1025 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp173_ = job;
+#line 1025 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp174_ = print_job_get_local_settings (_tmp173_);
+#line 1025 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp175_ = _tmp174_;
+#line 1025 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp176_ = print_settings_is_print_titles_enabled (_tmp175_);
+#line 1025 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp177_ = _tmp176_;
+#line 1025 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp175_);
+#line 1025 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp177_) {
+#line 7528 "Printing.c"
+ gdouble _tmp178_ = 0.0;
+ gdouble _tmp179_ = 0.0;
+ gdouble _tmp180_ = 0.0;
+ gdouble _tmp181_ = 0.0;
+ GeeList* _tmp182_ = NULL;
+ gint _tmp183_ = 0;
+ gpointer _tmp184_ = NULL;
+ Photo* _tmp185_ = NULL;
+ gchar* _tmp186_ = NULL;
+ gchar* _tmp187_ = NULL;
+ PrintJob* _tmp188_ = NULL;
+ GtkPrintContext* _tmp189_ = NULL;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp178_ = dx;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp179_ = canvas_width;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp180_ = dy;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp181_ = canvas_height;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp182_ = photos;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp183_ = i;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp184_ = gee_list_get (_tmp182_, _tmp183_);
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp185_ = (Photo*) _tmp184_;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp186_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp185_, TYPE_DATA_OBJECT, DataObject));
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp187_ = _tmp186_;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp188_ = job;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp189_ = job_context;
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_add_title_to_canvas (self, _tmp178_ + (_tmp179_ / 2), _tmp180_ + _tmp181_, _tmp187_, _tmp188_, _tmp189_);
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp187_);
+#line 1026 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp185_);
+#line 7571 "Printing.c"
+ }
+ }
+#line 1031 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp190_ = self->priv->progress_dialog;
+#line 1031 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp190_ != NULL) {
+#line 7578 "Printing.c"
+ ProgressDialog* _tmp191_ = NULL;
+ gint _tmp192_ = 0;
+ GeeList* _tmp193_ = NULL;
+ gint _tmp194_ = 0;
+ gint _tmp195_ = 0;
+#line 1032 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp191_ = self->priv->progress_dialog;
+#line 1032 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp192_ = i;
+#line 1032 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp193_ = photos;
+#line 1032 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp194_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp193_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1032 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp195_ = _tmp194_;
+#line 1032 "/home/jens/Source/shotwell/src/Printing.vala"
+ progress_dialog_monitor (_tmp191_, (guint64) _tmp192_, (guint64) _tmp195_, TRUE);
+#line 7596 "Printing.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+#line 1035 "/home/jens/Source/shotwell/src/Printing.vala"
+ break;
+#line 7606 "Printing.c"
+ }
+ default:
+ {
+#line 1038 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_error ("Printing.vala:1038: unknown or unsupported layout mode");
+#line 7612 "Printing.c"
+ }
+ }
+#line 943 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (photos);
+#line 943 "/home/jens/Source/shotwell/src/Printing.vala"
+ _cairo_destroy0 (dc);
+#line 943 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (page_setup);
+#line 943 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (job);
+#line 7623 "Printing.c"
+}
+
+
+static void _print_manager_on_custom_widget_apply_gtk_print_operation_custom_widget_apply (GtkPrintOperation* _sender, GtkWidget* widget, gpointer self) {
+#line 1044 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_on_custom_widget_apply ((PrintManager*) self, widget);
+#line 7630 "Printing.c"
+}
+
+
+static GObject* print_manager_on_create_custom_widget (PrintManager* self, GtkPrintOperation* emitting_object) {
+ GObject* result = NULL;
+ GtkPrintOperation* _tmp0_ = NULL;
+ CustomPrintTab* _tmp1_ = NULL;
+ GtkPrintOperation* _tmp2_ = NULL;
+ CustomPrintTab* _tmp3_ = NULL;
+#line 1042 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_MANAGER (self), NULL);
+#line 1042 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (GTK_IS_PRINT_OPERATION (emitting_object), NULL);
+#line 1043 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = emitting_object;
+#line 1043 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = custom_print_tab_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PRINT_JOB, PrintJob));
+#line 1043 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_object_ref_sink (_tmp1_);
+#line 1043 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_tab);
+#line 1043 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->custom_tab = _tmp1_;
+#line 1044 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = emitting_object;
+#line 1044 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PRINT_JOB, PrintJob), gtk_print_operation_get_type (), GtkPrintOperation), "custom-widget-apply", (GCallback) _print_manager_on_custom_widget_apply_gtk_print_operation_custom_widget_apply, self);
+#line 1045 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = self->priv->custom_tab;
+#line 1045 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, G_TYPE_OBJECT, GObject);
+#line 1045 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 7664 "Printing.c"
+}
+
+
+static void print_manager_on_custom_widget_apply (PrintManager* self, GtkWidget* custom_widget) {
+ CustomPrintTab* tab = NULL;
+ GtkWidget* _tmp0_ = NULL;
+ CustomPrintTab* _tmp1_ = NULL;
+ PrintJob* _tmp2_ = NULL;
+ PrintJob* _tmp3_ = NULL;
+ PrintSettings* _tmp4_ = NULL;
+ PrintSettings* _tmp5_ = NULL;
+ PrintSettings* _tmp6_ = NULL;
+ PrintSettings* _tmp7_ = NULL;
+#line 1048 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 1048 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_WIDGET (custom_widget));
+#line 1049 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = custom_widget;
+#line 1049 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_CUSTOM_PRINT_TAB, CustomPrintTab));
+#line 1049 "/home/jens/Source/shotwell/src/Printing.vala"
+ tab = _tmp1_;
+#line 1050 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = custom_print_tab_get_source_job (tab);
+#line 1050 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = _tmp2_;
+#line 1050 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = custom_print_tab_get_local_settings (tab);
+#line 1050 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 1050 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_job_set_local_settings (_tmp3_, _tmp5_);
+#line 1050 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp5_);
+#line 1050 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1051 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = custom_print_tab_get_local_settings (tab);
+#line 1051 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = _tmp6_;
+#line 1051 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_set_global_settings (self, _tmp7_);
+#line 1051 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp7_);
+#line 1048 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (tab);
+#line 7712 "Printing.c"
+}
+
+
+static void print_manager_fit_image_to_canvas (PrintManager* self, Photo* photo, gdouble x, gdouble y, gdouble canvas_width, gdouble canvas_height, gboolean crop, PrintJob* job, GtkPrintContext* job_context) {
+ cairo_t* dc = NULL;
+ GtkPrintContext* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ Dimensions photo_dimensions = {0};
+ Photo* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+ gdouble photo_aspect_ratio = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble canvas_aspect_ratio = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+ gdouble target_width = 0.0;
+ gdouble target_height = 0.0;
+ gdouble dpi = 0.0;
+ PrintJob* _tmp8_ = NULL;
+ PrintSettings* _tmp9_ = NULL;
+ PrintSettings* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gdouble _tmp12_ = 0.0;
+ gboolean _tmp13_ = FALSE;
+ gdouble x_offset = 0.0;
+ gdouble _tmp28_ = 0.0;
+ gdouble _tmp29_ = 0.0;
+ gdouble y_offset = 0.0;
+ gdouble _tmp30_ = 0.0;
+ gdouble _tmp31_ = 0.0;
+ cairo_t* _tmp32_ = NULL;
+ cairo_t* _tmp33_ = NULL;
+ gdouble _tmp34_ = 0.0;
+ gdouble _tmp35_ = 0.0;
+ gint w = 0;
+ gdouble _tmp36_ = 0.0;
+ gdouble _tmp37_ = 0.0;
+ gint h = 0;
+ gdouble _tmp38_ = 0.0;
+ gdouble _tmp39_ = 0.0;
+ Dimensions viewport = {0};
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ cairo_t* _tmp96_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1054 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 1054 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 1054 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_JOB (job));
+#line 1054 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_PRINT_CONTEXT (job_context));
+#line 1055 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = job_context;
+#line 1055 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_print_context_get_cairo_context (_tmp0_);
+#line 1055 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _cairo_reference0 (_tmp1_);
+#line 1055 "/home/jens/Source/shotwell/src/Printing.vala"
+ dc = _tmp2_;
+#line 1056 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = photo;
+#line 1056 "/home/jens/Source/shotwell/src/Printing.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp4_);
+#line 1056 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_dimensions = _tmp4_;
+#line 1057 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = dimensions_get_aspect_ratio (&photo_dimensions);
+#line 1057 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_aspect_ratio = _tmp5_;
+#line 1058 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = canvas_width;
+#line 1058 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = canvas_height;
+#line 1058 "/home/jens/Source/shotwell/src/Printing.vala"
+ canvas_aspect_ratio = ((gdouble) _tmp6_) / _tmp7_;
+#line 1060 "/home/jens/Source/shotwell/src/Printing.vala"
+ target_width = 0.0;
+#line 1061 "/home/jens/Source/shotwell/src/Printing.vala"
+ target_height = 0.0;
+#line 1062 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = job;
+#line 1062 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = print_job_get_local_settings (_tmp8_);
+#line 1062 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = _tmp9_;
+#line 1062 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = print_settings_get_content_ppi (_tmp10_);
+#line 1062 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = (gdouble) _tmp11_;
+#line 1062 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp10_);
+#line 1062 "/home/jens/Source/shotwell/src/Printing.vala"
+ dpi = _tmp12_;
+#line 1064 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = crop;
+#line 1064 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!_tmp13_) {
+#line 7813 "Printing.c"
+ gdouble _tmp14_ = 0.0;
+ gdouble _tmp15_ = 0.0;
+ gdouble _tmp22_ = 0.0;
+ gdouble _tmp23_ = 0.0;
+ gdouble _tmp24_ = 0.0;
+ gdouble _tmp25_ = 0.0;
+ gdouble _tmp26_ = 0.0;
+ gdouble _tmp27_ = 0.0;
+#line 1065 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = canvas_aspect_ratio;
+#line 1065 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = photo_aspect_ratio;
+#line 1065 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp14_ < _tmp15_) {
+#line 7828 "Printing.c"
+ gdouble _tmp16_ = 0.0;
+ gdouble _tmp17_ = 0.0;
+ gdouble _tmp18_ = 0.0;
+#line 1066 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = canvas_width;
+#line 1066 "/home/jens/Source/shotwell/src/Printing.vala"
+ target_width = _tmp16_;
+#line 1067 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = target_width;
+#line 1067 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = photo_aspect_ratio;
+#line 1067 "/home/jens/Source/shotwell/src/Printing.vala"
+ target_height = _tmp17_ * (1.0 / _tmp18_);
+#line 7842 "Printing.c"
+ } else {
+ gdouble _tmp19_ = 0.0;
+ gdouble _tmp20_ = 0.0;
+ gdouble _tmp21_ = 0.0;
+#line 1069 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp19_ = canvas_height;
+#line 1069 "/home/jens/Source/shotwell/src/Printing.vala"
+ target_height = _tmp19_;
+#line 1070 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp20_ = target_height;
+#line 1070 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = photo_aspect_ratio;
+#line 1070 "/home/jens/Source/shotwell/src/Printing.vala"
+ target_width = _tmp20_ * _tmp21_;
+#line 7857 "Printing.c"
+ }
+#line 1072 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = x;
+#line 1072 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp23_ = canvas_width;
+#line 1072 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp24_ = target_width;
+#line 1072 "/home/jens/Source/shotwell/src/Printing.vala"
+ x = _tmp22_ + ((_tmp23_ - _tmp24_) / 2.0);
+#line 1073 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp25_ = y;
+#line 1073 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp26_ = canvas_height;
+#line 1073 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp27_ = target_height;
+#line 1073 "/home/jens/Source/shotwell/src/Printing.vala"
+ y = _tmp25_ + ((_tmp26_ - _tmp27_) / 2.0);
+#line 7875 "Printing.c"
+ }
+#line 1076 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp28_ = dpi;
+#line 1076 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp29_ = x;
+#line 1076 "/home/jens/Source/shotwell/src/Printing.vala"
+ x_offset = _tmp28_ * _tmp29_;
+#line 1077 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp30_ = dpi;
+#line 1077 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp31_ = y;
+#line 1077 "/home/jens/Source/shotwell/src/Printing.vala"
+ y_offset = _tmp30_ * _tmp31_;
+#line 1078 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp32_ = dc;
+#line 1078 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_save (_tmp32_);
+#line 1079 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp33_ = dc;
+#line 1079 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp34_ = x_offset;
+#line 1079 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp35_ = y_offset;
+#line 1079 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_translate (_tmp33_, _tmp34_, _tmp35_);
+#line 1081 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp36_ = dpi;
+#line 1081 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp37_ = canvas_width;
+#line 1081 "/home/jens/Source/shotwell/src/Printing.vala"
+ w = (gint) (_tmp36_ * _tmp37_);
+#line 1082 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp38_ = dpi;
+#line 1082 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp39_ = canvas_height;
+#line 1082 "/home/jens/Source/shotwell/src/Printing.vala"
+ h = (gint) (_tmp38_ * _tmp39_);
+#line 1083 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp40_ = w;
+#line 1083 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp41_ = h;
+#line 1083 "/home/jens/Source/shotwell/src/Printing.vala"
+ dimensions_init (&viewport, _tmp40_, _tmp41_);
+#line 7919 "Printing.c"
+ {
+ gboolean _tmp42_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+ cairo_t* _tmp89_ = NULL;
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp43_ = crop;
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp43_) {
+#line 7928 "Printing.c"
+ gdouble _tmp44_ = 0.0;
+ gdouble _tmp45_ = 0.0;
+ gboolean _tmp46_ = FALSE;
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp44_ = canvas_aspect_ratio;
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp45_ = photo_aspect_ratio;
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp46_ = print_manager_are_approximately_equal (self, _tmp44_, _tmp45_);
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = !_tmp46_;
+#line 7940 "Printing.c"
+ } else {
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp42_ = FALSE;
+#line 7944 "Printing.c"
+ }
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp42_) {
+#line 7948 "Printing.c"
+ Scaling pixbuf_scaling = {0};
+ Dimensions _tmp47_ = {0};
+ Scaling _tmp48_ = {0};
+ GdkPixbuf* photo_pixbuf = NULL;
+ Photo* _tmp49_ = NULL;
+ Scaling _tmp50_ = {0};
+ GdkPixbuf* _tmp51_ = NULL;
+ Dimensions scaled_photo_dimensions = {0};
+ GdkPixbuf* _tmp52_ = NULL;
+ Dimensions _tmp53_ = {0};
+ gint shave_vertical = 0;
+ gint shave_horizontal = 0;
+ gdouble _tmp54_ = 0.0;
+ gdouble _tmp55_ = 0.0;
+ GdkPixbuf* shaved_pixbuf = NULL;
+ GdkPixbuf* _tmp66_ = NULL;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ Dimensions _tmp69_ = {0};
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ Dimensions _tmp72_ = {0};
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ GdkPixbuf* _tmp75_ = NULL;
+ GdkPixbuf* _tmp76_ = NULL;
+ GdkPixbuf* _tmp77_ = NULL;
+ cairo_t* _tmp78_ = NULL;
+ GdkPixbuf* _tmp79_ = NULL;
+#line 1087 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp47_ = viewport;
+#line 1087 "/home/jens/Source/shotwell/src/Printing.vala"
+ scaling_to_fill_viewport (&_tmp47_, &_tmp48_);
+#line 1087 "/home/jens/Source/shotwell/src/Printing.vala"
+ pixbuf_scaling = _tmp48_;
+#line 1088 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp49_ = photo;
+#line 1088 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp50_ = pixbuf_scaling;
+#line 1088 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp51_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp50_, &_inner_error_);
+#line 1088 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_pixbuf = _tmp51_;
+#line 1088 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7994 "Printing.c"
+ goto __catch458_g_error;
+ }
+#line 1089 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp52_ = photo_pixbuf;
+#line 1089 "/home/jens/Source/shotwell/src/Printing.vala"
+ dimensions_for_pixbuf (_tmp52_, &_tmp53_);
+#line 1089 "/home/jens/Source/shotwell/src/Printing.vala"
+ scaled_photo_dimensions = _tmp53_;
+#line 1090 "/home/jens/Source/shotwell/src/Printing.vala"
+ shave_vertical = 0;
+#line 1091 "/home/jens/Source/shotwell/src/Printing.vala"
+ shave_horizontal = 0;
+#line 1092 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp54_ = canvas_aspect_ratio;
+#line 1092 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp55_ = photo_aspect_ratio;
+#line 1092 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (_tmp54_ < _tmp55_) {
+#line 8013 "Printing.c"
+ Dimensions _tmp56_ = {0};
+ gint _tmp57_ = 0;
+ Dimensions _tmp58_ = {0};
+ gint _tmp59_ = 0;
+ gdouble _tmp60_ = 0.0;
+#line 1093 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp56_ = scaled_photo_dimensions;
+#line 1093 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp57_ = _tmp56_.width;
+#line 1093 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp58_ = scaled_photo_dimensions;
+#line 1093 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp59_ = _tmp58_.height;
+#line 1093 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp60_ = canvas_aspect_ratio;
+#line 1093 "/home/jens/Source/shotwell/src/Printing.vala"
+ shave_vertical = (gint) ((_tmp57_ - (_tmp59_ * _tmp60_)) / 2.0);
+#line 8031 "Printing.c"
+ } else {
+ Dimensions _tmp61_ = {0};
+ gint _tmp62_ = 0;
+ Dimensions _tmp63_ = {0};
+ gint _tmp64_ = 0;
+ gdouble _tmp65_ = 0.0;
+#line 1095 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp61_ = scaled_photo_dimensions;
+#line 1095 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp62_ = _tmp61_.height;
+#line 1095 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp63_ = scaled_photo_dimensions;
+#line 1095 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp64_ = _tmp63_.width;
+#line 1095 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp65_ = canvas_aspect_ratio;
+#line 1095 "/home/jens/Source/shotwell/src/Printing.vala"
+ shave_horizontal = (gint) ((_tmp62_ - (_tmp64_ * (1.0 / _tmp65_))) / 2.0);
+#line 8050 "Printing.c"
+ }
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp66_ = photo_pixbuf;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp67_ = shave_vertical;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp68_ = shave_horizontal;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp69_ = scaled_photo_dimensions;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp70_ = _tmp69_.width;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp71_ = shave_vertical;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp72_ = scaled_photo_dimensions;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp73_ = _tmp72_.height;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp74_ = shave_horizontal;
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp75_ = gdk_pixbuf_new_subpixbuf (_tmp66_, _tmp67_, _tmp68_, _tmp70_ - (2 * _tmp71_), _tmp73_ - (2 * _tmp74_));
+#line 1097 "/home/jens/Source/shotwell/src/Printing.vala"
+ shaved_pixbuf = _tmp75_;
+#line 1099 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp76_ = shaved_pixbuf;
+#line 1099 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp77_ = scaling_perform_on_pixbuf (&pixbuf_scaling, _tmp76_, GDK_INTERP_HYPER, TRUE);
+#line 1099 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (photo_pixbuf);
+#line 1099 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_pixbuf = _tmp77_;
+#line 1100 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp78_ = dc;
+#line 1100 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp79_ = photo_pixbuf;
+#line 1100 "/home/jens/Source/shotwell/src/Printing.vala"
+ gdk_cairo_set_source_pixbuf (_tmp78_, _tmp79_, 0.0, 0.0);
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (shaved_pixbuf);
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (photo_pixbuf);
+#line 8092 "Printing.c"
+ } else {
+ Scaling pixbuf_scaling = {0};
+ Dimensions _tmp80_ = {0};
+ Scaling _tmp81_ = {0};
+ GdkPixbuf* photo_pixbuf = NULL;
+ Photo* _tmp82_ = NULL;
+ Scaling _tmp83_ = {0};
+ GdkPixbuf* _tmp84_ = NULL;
+ GdkPixbuf* _tmp85_ = NULL;
+ GdkPixbuf* _tmp86_ = NULL;
+ cairo_t* _tmp87_ = NULL;
+ GdkPixbuf* _tmp88_ = NULL;
+#line 1102 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp80_ = viewport;
+#line 1102 "/home/jens/Source/shotwell/src/Printing.vala"
+ scaling_for_viewport (&_tmp80_, TRUE, &_tmp81_);
+#line 1102 "/home/jens/Source/shotwell/src/Printing.vala"
+ pixbuf_scaling = _tmp81_;
+#line 1103 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp82_ = photo;
+#line 1103 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp83_ = pixbuf_scaling;
+#line 1103 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp84_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp83_, &_inner_error_);
+#line 1103 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_pixbuf = _tmp84_;
+#line 1103 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8121 "Printing.c"
+ goto __catch458_g_error;
+ }
+#line 1104 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp85_ = photo_pixbuf;
+#line 1104 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp86_ = scaling_perform_on_pixbuf (&pixbuf_scaling, _tmp85_, GDK_INTERP_HYPER, TRUE);
+#line 1104 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (photo_pixbuf);
+#line 1104 "/home/jens/Source/shotwell/src/Printing.vala"
+ photo_pixbuf = _tmp86_;
+#line 1105 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp87_ = dc;
+#line 1105 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp88_ = photo_pixbuf;
+#line 1105 "/home/jens/Source/shotwell/src/Printing.vala"
+ gdk_cairo_set_source_pixbuf (_tmp87_, _tmp88_, 0.0, 0.0);
+#line 1086 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (photo_pixbuf);
+#line 8140 "Printing.c"
+ }
+#line 1107 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp89_ = dc;
+#line 1107 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_paint (_tmp89_);
+#line 8146 "Printing.c"
+ }
+ goto __finally458;
+ __catch458_g_error:
+ {
+ GError* e = NULL;
+ PrintJob* _tmp90_ = NULL;
+ const gchar* _tmp91_ = NULL;
+ GError* _tmp92_ = NULL;
+ const gchar* _tmp93_ = NULL;
+ gchar* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ e = _inner_error_;
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ _inner_error_ = NULL;
+#line 1110 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp90_ = job;
+#line 1110 "/home/jens/Source/shotwell/src/Printing.vala"
+ gtk_print_operation_cancel (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, gtk_print_operation_get_type (), GtkPrintOperation));
+#line 1111 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp91_ = _ ("Unable to print photo:\n\n%s");
+#line 1111 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp92_ = e;
+#line 1111 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp93_ = _tmp92_->message;
+#line 1111 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp94_ = g_strdup_printf (_tmp91_, _tmp93_);
+#line 1111 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp95_ = _tmp94_;
+#line 1111 "/home/jens/Source/shotwell/src/Printing.vala"
+ app_window_error_message (_tmp95_, NULL);
+#line 1111 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp95_);
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_error_free0 (e);
+#line 8182 "Printing.c"
+ }
+ __finally458:
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ _cairo_destroy0 (dc);
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_clear_error (&_inner_error_);
+#line 1085 "/home/jens/Source/shotwell/src/Printing.vala"
+ return;
+#line 8195 "Printing.c"
+ }
+#line 1113 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp96_ = dc;
+#line 1113 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_restore (_tmp96_);
+#line 1054 "/home/jens/Source/shotwell/src/Printing.vala"
+ _cairo_destroy0 (dc);
+#line 8203 "Printing.c"
+}
+
+
+static void _vala_PangoFontDescription_free (PangoFontDescription* self) {
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_boxed_free (pango_font_description_get_type (), self);
+#line 8210 "Printing.c"
+}
+
+
+static void print_manager_add_title_to_canvas (PrintManager* self, gdouble x, gdouble y, const gchar* title, PrintJob* job, GtkPrintContext* job_context) {
+ cairo_t* dc = NULL;
+ GtkPrintContext* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ gdouble dpi = 0.0;
+ PrintJob* _tmp3_ = NULL;
+ PrintSettings* _tmp4_ = NULL;
+ PrintSettings* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gdouble _tmp7_ = 0.0;
+ PangoFontDescription* title_font_description = NULL;
+ PrintJob* _tmp8_ = NULL;
+ PrintSettings* _tmp9_ = NULL;
+ PrintSettings* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ PangoFontDescription* _tmp13_ = NULL;
+ PangoFontDescription* _tmp14_ = NULL;
+ PangoLayout* title_layout = NULL;
+ PangoLayout* _tmp15_ = NULL;
+ PangoContext* context = NULL;
+ PangoContext* _tmp16_ = NULL;
+ PangoContext* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint title_width = 0;
+ gint title_height = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gdouble tx = 0.0;
+ gdouble _tmp21_ = 0.0;
+ gdouble ty = 0.0;
+ gdouble _tmp22_ = 0.0;
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (title != NULL);
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_JOB (job));
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (GTK_IS_PRINT_CONTEXT (job_context));
+#line 1117 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = job_context;
+#line 1117 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = gtk_print_context_get_cairo_context (_tmp0_);
+#line 1117 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = _cairo_reference0 (_tmp1_);
+#line 1117 "/home/jens/Source/shotwell/src/Printing.vala"
+ dc = _tmp2_;
+#line 1118 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp3_ = job;
+#line 1118 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp4_ = print_job_get_local_settings (_tmp3_);
+#line 1118 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp5_ = _tmp4_;
+#line 1118 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp6_ = print_settings_get_content_ppi (_tmp5_);
+#line 1118 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp7_ = (gdouble) _tmp6_;
+#line 1118 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp5_);
+#line 1118 "/home/jens/Source/shotwell/src/Printing.vala"
+ dpi = _tmp7_;
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp8_ = job;
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp9_ = print_job_get_local_settings (_tmp8_);
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp10_ = _tmp9_;
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp11_ = print_settings_get_print_titles_font (_tmp10_);
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp12_ = _tmp11_;
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp13_ = pango_font_description_from_string (_tmp12_);
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp14_ = _tmp13_;
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_free0 (_tmp12_);
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (_tmp10_);
+#line 1119 "/home/jens/Source/shotwell/src/Printing.vala"
+ title_font_description = _tmp14_;
+#line 1120 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp15_ = pango_cairo_create_layout (dc);
+#line 1120 "/home/jens/Source/shotwell/src/Printing.vala"
+ title_layout = _tmp15_;
+#line 1121 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp16_ = pango_layout_get_context (title_layout);
+#line 1121 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp17_ = _g_object_ref0 (_tmp16_);
+#line 1121 "/home/jens/Source/shotwell/src/Printing.vala"
+ context = _tmp17_;
+#line 1122 "/home/jens/Source/shotwell/src/Printing.vala"
+ pango_cairo_context_set_resolution (context, dpi);
+#line 1123 "/home/jens/Source/shotwell/src/Printing.vala"
+ pango_layout_set_font_description (title_layout, title_font_description);
+#line 1124 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp18_ = title;
+#line 1124 "/home/jens/Source/shotwell/src/Printing.vala"
+ pango_layout_set_text (title_layout, _tmp18_, -1);
+#line 1126 "/home/jens/Source/shotwell/src/Printing.vala"
+ pango_layout_get_pixel_size (title_layout, &_tmp19_, &_tmp20_);
+#line 1126 "/home/jens/Source/shotwell/src/Printing.vala"
+ title_width = _tmp19_;
+#line 1126 "/home/jens/Source/shotwell/src/Printing.vala"
+ title_height = _tmp20_;
+#line 1127 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp21_ = x;
+#line 1127 "/home/jens/Source/shotwell/src/Printing.vala"
+ tx = (dpi * _tmp21_) - (title_width / 2);
+#line 1128 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp22_ = y;
+#line 1128 "/home/jens/Source/shotwell/src/Printing.vala"
+ ty = (dpi * _tmp22_) - title_height;
+#line 1131 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_rectangle (dc, tx - 10, ty + 2, (gdouble) (title_width + 20), (gdouble) title_height);
+#line 1132 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_set_source_rgba (dc, (gdouble) 1, (gdouble) 1, (gdouble) 1, (gdouble) 1);
+#line 1133 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_set_line_width (dc, (gdouble) 2);
+#line 1134 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_stroke_preserve (dc);
+#line 1135 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_set_source_rgba (dc, (gdouble) 1, (gdouble) 1, (gdouble) 1, 0.5);
+#line 1136 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_fill (dc);
+#line 1137 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_set_source_rgba (dc, (gdouble) 0, (gdouble) 0, (gdouble) 0, (gdouble) 1);
+#line 1139 "/home/jens/Source/shotwell/src/Printing.vala"
+ cairo_move_to (dc, tx, ty + 2);
+#line 1140 "/home/jens/Source/shotwell/src/Printing.vala"
+ pango_cairo_show_layout (dc, title_layout);
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (context);
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (title_layout);
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ __vala_PangoFontDescription_free0 (title_font_description);
+#line 1116 "/home/jens/Source/shotwell/src/Printing.vala"
+ _cairo_destroy0 (dc);
+#line 8355 "Printing.c"
+}
+
+
+static gboolean print_manager_are_approximately_equal (PrintManager* self, gdouble val1, gdouble val2) {
+ gboolean result = FALSE;
+ gdouble accept_err = 0.0;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+#line 1143 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_MANAGER (self), FALSE);
+#line 1144 "/home/jens/Source/shotwell/src/Printing.vala"
+ accept_err = 0.005;
+#line 1145 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = val1;
+#line 1145 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = val2;
+#line 1145 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = fabs (_tmp0_ - _tmp1_);
+#line 1145 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp2_ <= accept_err;
+#line 1145 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 8379 "Printing.c"
+}
+
+
+PrintSettings* print_manager_get_global_settings (PrintManager* self) {
+ PrintSettings* result = NULL;
+ PrintSettings* _tmp0_ = NULL;
+ PrintSettings* _tmp1_ = NULL;
+#line 1148 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (IS_PRINT_MANAGER (self), NULL);
+#line 1149 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = self->priv->settings;
+#line 1149 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _print_settings_ref0 (_tmp0_);
+#line 1149 "/home/jens/Source/shotwell/src/Printing.vala"
+ result = _tmp1_;
+#line 1149 "/home/jens/Source/shotwell/src/Printing.vala"
+ return result;
+#line 8397 "Printing.c"
+}
+
+
+void print_manager_set_global_settings (PrintManager* self, PrintSettings* settings) {
+ PrintSettings* _tmp0_ = NULL;
+ PrintSettings* _tmp1_ = NULL;
+ PrintSettings* _tmp2_ = NULL;
+#line 1152 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_MANAGER (self));
+#line 1152 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (IS_PRINT_SETTINGS (settings));
+#line 1153 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp0_ = settings;
+#line 1153 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp1_ = _print_settings_ref0 (_tmp0_);
+#line 1153 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (self->priv->settings);
+#line 1153 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->settings = _tmp1_;
+#line 1154 "/home/jens/Source/shotwell/src/Printing.vala"
+ _tmp2_ = settings;
+#line 1154 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_settings_save (_tmp2_);
+#line 8421 "Printing.c"
+}
+
+
+static void value_print_manager_init (GValue* value) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 8428 "Printing.c"
+}
+
+
+static void value_print_manager_free_value (GValue* value) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (value->data[0].v_pointer) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_unref (value->data[0].v_pointer);
+#line 8437 "Printing.c"
+ }
+}
+
+
+static void value_print_manager_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (src_value->data[0].v_pointer) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ dest_value->data[0].v_pointer = print_manager_ref (src_value->data[0].v_pointer);
+#line 8447 "Printing.c"
+ } else {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 8451 "Printing.c"
+ }
+}
+
+
+static gpointer value_print_manager_peek_pointer (const GValue* value) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return value->data[0].v_pointer;
+#line 8459 "Printing.c"
+}
+
+
+static gchar* value_print_manager_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (collect_values[0].v_pointer) {
+#line 8466 "Printing.c"
+ PrintManager* object;
+ object = collect_values[0].v_pointer;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8473 "Printing.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8477 "Printing.c"
+ }
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = print_manager_ref (object);
+#line 8481 "Printing.c"
+ } else {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 8485 "Printing.c"
+ }
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return NULL;
+#line 8489 "Printing.c"
+}
+
+
+static gchar* value_print_manager_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PrintManager** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!object_p) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 8500 "Printing.c"
+ }
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (!value->data[0].v_pointer) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = NULL;
+#line 8506 "Printing.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = value->data[0].v_pointer;
+#line 8510 "Printing.c"
+ } else {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ *object_p = print_manager_ref (value->data[0].v_pointer);
+#line 8514 "Printing.c"
+ }
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return NULL;
+#line 8518 "Printing.c"
+}
+
+
+GParamSpec* param_spec_print_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPrintManager* spec;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PRINT_MANAGER), NULL);
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return G_PARAM_SPEC (spec);
+#line 8532 "Printing.c"
+}
+
+
+gpointer value_get_print_manager (const GValue* value) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PRINT_MANAGER), NULL);
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return value->data[0].v_pointer;
+#line 8541 "Printing.c"
+}
+
+
+void value_set_print_manager (GValue* value, gpointer v_object) {
+ PrintManager* old;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PRINT_MANAGER));
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ old = value->data[0].v_pointer;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (v_object) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PRINT_MANAGER));
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = v_object;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_ref (value->data[0].v_pointer);
+#line 8561 "Printing.c"
+ } else {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 8565 "Printing.c"
+ }
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (old) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_unref (old);
+#line 8571 "Printing.c"
+ }
+}
+
+
+void value_take_print_manager (GValue* value, gpointer v_object) {
+ PrintManager* old;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PRINT_MANAGER));
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ old = value->data[0].v_pointer;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (v_object) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PRINT_MANAGER));
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = v_object;
+#line 8590 "Printing.c"
+ } else {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ value->data[0].v_pointer = NULL;
+#line 8594 "Printing.c"
+ }
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (old) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_unref (old);
+#line 8600 "Printing.c"
+ }
+}
+
+
+static void print_manager_class_init (PrintManagerClass * klass) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ print_manager_parent_class = g_type_class_peek_parent (klass);
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ ((PrintManagerClass *) klass)->finalize = print_manager_finalize;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_type_class_add_private (klass, sizeof (PrintManagerPrivate));
+#line 8612 "Printing.c"
+}
+
+
+static void print_manager_instance_init (PrintManager * self) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv = PRINT_MANAGER_GET_PRIVATE (self);
+#line 806 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->progress_dialog = NULL;
+#line 807 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->priv->cancellable = NULL;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ self->ref_count = 1;
+#line 8625 "Printing.c"
+}
+
+
+static void print_manager_finalize (PrintManager* obj) {
+ PrintManager * self;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PRINT_MANAGER, PrintManager);
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_signal_handlers_destroy (self);
+#line 803 "/home/jens/Source/shotwell/src/Printing.vala"
+ _print_settings_unref0 (self->priv->settings);
+#line 804 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->user_page_setup);
+#line 805 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->custom_tab);
+#line 806 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->progress_dialog);
+#line 807 "/home/jens/Source/shotwell/src/Printing.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 8645 "Printing.c"
+}
+
+
+GType print_manager_get_type (void) {
+ static volatile gsize print_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&print_manager_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_print_manager_init, value_print_manager_free_value, value_print_manager_copy_value, value_print_manager_peek_pointer, "p", value_print_manager_collect_value, "p", value_print_manager_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PrintManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) print_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PrintManager), 0, (GInstanceInitFunc) print_manager_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType print_manager_type_id;
+ print_manager_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PrintManager", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&print_manager_type_id__volatile, print_manager_type_id);
+ }
+ return print_manager_type_id__volatile;
+}
+
+
+gpointer print_manager_ref (gpointer instance) {
+ PrintManager* self;
+ self = instance;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ return instance;
+#line 8670 "Printing.c"
+}
+
+
+void print_manager_unref (gpointer instance) {
+ PrintManager* self;
+ self = instance;
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ PRINT_MANAGER_GET_CLASS (self)->finalize (self);
+#line 798 "/home/jens/Source/shotwell/src/Printing.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 8683 "Printing.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/Properties.c b/src/Properties.c
new file mode 100644
index 0000000..77f8271
--- /dev/null
+++ b/src/Properties.c
@@ -0,0 +1,5776 @@
+/* Properties.c generated by valac 0.32.1, the Vala compiler
+ * generated from Properties.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <pango/pango.h>
+#include <time.h>
+#include <glib/gi18n-lib.h>
+#include <gdk/gdk.h>
+#include <gio/gio.h>
+
+
+#define TYPE_PROPERTIES (properties_get_type ())
+#define PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROPERTIES, Properties))
+#define PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROPERTIES, PropertiesClass))
+#define IS_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROPERTIES))
+#define IS_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROPERTIES))
+#define PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROPERTIES, PropertiesClass))
+
+typedef struct _Properties Properties;
+typedef struct _PropertiesClass PropertiesClass;
+typedef struct _PropertiesPrivate PropertiesPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+
+#define TYPE_BASIC_PROPERTIES (basic_properties_get_type ())
+#define BASIC_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BASIC_PROPERTIES, BasicProperties))
+#define BASIC_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BASIC_PROPERTIES, BasicPropertiesClass))
+#define IS_BASIC_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BASIC_PROPERTIES))
+#define IS_BASIC_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BASIC_PROPERTIES))
+#define BASIC_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BASIC_PROPERTIES, BasicPropertiesClass))
+
+typedef struct _BasicProperties BasicProperties;
+typedef struct _BasicPropertiesClass BasicPropertiesClass;
+typedef struct _BasicPropertiesPrivate BasicPropertiesPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_IMPORT_SOURCE (import_source_get_type ())
+#define IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_SOURCE, ImportSource))
+#define IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_SOURCE, ImportSourceClass))
+#define IS_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_SOURCE))
+#define IS_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_SOURCE))
+#define IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_SOURCE, ImportSourceClass))
+
+typedef struct _ImportSource ImportSource;
+typedef struct _ImportSourceClass ImportSourceClass;
+
+#define TYPE_PHOTO_IMPORT_SOURCE (photo_import_source_get_type ())
+#define PHOTO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource))
+#define PHOTO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSourceClass))
+#define IS_PHOTO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_IMPORT_SOURCE))
+#define IS_PHOTO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_IMPORT_SOURCE))
+#define PHOTO_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSourceClass))
+
+typedef struct _PhotoImportSource PhotoImportSource;
+typedef struct _PhotoImportSourceClass PhotoImportSourceClass;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _dimensions_free0(var) ((var == NULL) ? NULL : (var = (dimensions_free (var), NULL)))
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO_IMPORT_SOURCE (video_import_source_get_type ())
+#define VIDEO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource))
+#define VIDEO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_IMPORT_SOURCE, VideoImportSourceClass))
+#define IS_VIDEO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_IMPORT_SOURCE))
+#define IS_VIDEO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_IMPORT_SOURCE))
+#define VIDEO_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_IMPORT_SOURCE, VideoImportSourceClass))
+
+typedef struct _VideoImportSource VideoImportSource;
+typedef struct _VideoImportSourceClass VideoImportSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_TAG_PAGE (tag_page_get_type ())
+#define TAG_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_PAGE, TagPage))
+#define TAG_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_PAGE, TagPageClass))
+#define IS_TAG_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_PAGE))
+#define IS_TAG_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_PAGE))
+#define TAG_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_PAGE, TagPageClass))
+
+typedef struct _TagPage TagPage;
+typedef struct _TagPageClass TagPageClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_EXTENDED_PROPERTIES_WINDOW (extended_properties_window_get_type ())
+#define EXTENDED_PROPERTIES_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindow))
+#define EXTENDED_PROPERTIES_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindowClass))
+#define IS_EXTENDED_PROPERTIES_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXTENDED_PROPERTIES_WINDOW))
+#define IS_EXTENDED_PROPERTIES_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXTENDED_PROPERTIES_WINDOW))
+#define EXTENDED_PROPERTIES_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindowClass))
+
+typedef struct _ExtendedPropertiesWindow ExtendedPropertiesWindow;
+typedef struct _ExtendedPropertiesWindowClass ExtendedPropertiesWindowClass;
+typedef struct _ExtendedPropertiesWindowPrivate ExtendedPropertiesWindowPrivate;
+
+#define EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES (extended_properties_window_extended_properties_get_type ())
+#define EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedProperties))
+#define EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedPropertiesClass))
+#define EXTENDED_PROPERTIES_WINDOW_IS_EXTENDED_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES))
+#define EXTENDED_PROPERTIES_WINDOW_IS_EXTENDED_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES))
+#define EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedPropertiesClass))
+
+typedef struct _ExtendedPropertiesWindowExtendedProperties ExtendedPropertiesWindowExtendedProperties;
+typedef struct _ExtendedPropertiesWindowExtendedPropertiesClass ExtendedPropertiesWindowExtendedPropertiesClass;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+typedef struct _ExtendedPropertiesWindowExtendedPropertiesPrivate ExtendedPropertiesWindowExtendedPropertiesPrivate;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+
+#define PHOTO_METADATA_TYPE_SET_OPTION (photo_metadata_set_option_get_type ())
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_EVENTS_DIRECTORY_PAGE (events_directory_page_get_type ())
+#define EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage))
+#define EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+#define IS_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENTS_DIRECTORY_PAGE))
+#define IS_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENTS_DIRECTORY_PAGE))
+#define EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+
+typedef struct _EventsDirectoryPage EventsDirectoryPage;
+typedef struct _EventsDirectoryPageClass EventsDirectoryPageClass;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+
+struct _Properties {
+ GtkGrid parent_instance;
+ PropertiesPrivate * priv;
+};
+
+struct _PropertiesClass {
+ GtkGridClass parent_class;
+ void (*get_single_properties) (Properties* self, DataView* view);
+ void (*get_multiple_properties) (Properties* self, GeeIterable* iter);
+ void (*get_properties) (Properties* self, Page* current_page);
+ void (*clear_properties) (Properties* self);
+ void (*internal_update_properties) (Properties* self, Page* page);
+};
+
+struct _PropertiesPrivate {
+ guint line_count;
+};
+
+struct _BasicProperties {
+ Properties parent_instance;
+ BasicPropertiesPrivate * priv;
+};
+
+struct _BasicPropertiesClass {
+ PropertiesClass parent_class;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _BasicPropertiesPrivate {
+ gchar* title;
+ time_t start_time;
+ time_t end_time;
+ Dimensions dimensions;
+ gint photo_count;
+ gint event_count;
+ gint video_count;
+ gchar* exposure;
+ gchar* aperture;
+ gchar* iso;
+ gdouble clip_duration;
+ gchar* raw_developer;
+ gchar* raw_assoc;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _ExtendedPropertiesWindow {
+ GtkDialog parent_instance;
+ ExtendedPropertiesWindowPrivate * priv;
+};
+
+struct _ExtendedPropertiesWindowClass {
+ GtkDialogClass parent_class;
+};
+
+struct _ExtendedPropertiesWindowPrivate {
+ ExtendedPropertiesWindowExtendedProperties* properties;
+};
+
+struct _ExtendedPropertiesWindowExtendedProperties {
+ Properties parent_instance;
+ ExtendedPropertiesWindowExtendedPropertiesPrivate * priv;
+};
+
+struct _ExtendedPropertiesWindowExtendedPropertiesClass {
+ PropertiesClass parent_class;
+};
+
+struct _ExtendedPropertiesWindowExtendedPropertiesPrivate {
+ gchar* file_path;
+ guint64 filesize;
+ Dimensions* original_dim;
+ gchar* camera_make;
+ gchar* camera_model;
+ gchar* flash;
+ gchar* focal_length;
+ gdouble gps_lat;
+ gchar* gps_lat_ref;
+ gdouble gps_long;
+ gchar* gps_long_ref;
+ gdouble gps_alt;
+ gchar* artist;
+ gchar* copyright;
+ gchar* software;
+ gchar* exposure_bias;
+ gchar* exposure_date;
+ gchar* exposure_time;
+ gboolean is_raw;
+ gchar* development_path;
+ gchar* comment;
+};
+
+typedef enum {
+ PHOTO_METADATA_SET_OPTION_ALL_DOMAINS,
+ PHOTO_METADATA_SET_OPTION_ONLY_IF_DOMAIN_PRESENT,
+ PHOTO_METADATA_SET_OPTION_AT_LEAST_DEFAULT_DOMAIN
+} PhotoMetadataSetOption;
+
+
+static gpointer properties_parent_class = NULL;
+static gpointer basic_properties_parent_class = NULL;
+static gpointer extended_properties_window_parent_class = NULL;
+static gpointer extended_properties_window_extended_properties_parent_class = NULL;
+
+GType properties_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+#define PROPERTIES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROPERTIES, PropertiesPrivate))
+enum {
+ PROPERTIES_DUMMY_PROPERTY
+};
+Properties* properties_construct (GType object_type);
+void properties_add_line (Properties* self, const gchar* label_text, const gchar* info_text, gboolean multi_line);
+gboolean is_string_empty (const gchar* s);
+gchar* properties_get_prettyprint_time (Properties* self, struct tm* time);
+gchar* resources_get_hh_mm_format_string (void);
+gchar* properties_get_prettyprint_time_with_seconds (Properties* self, struct tm* time);
+gchar* resources_get_hh_mm_ss_format_string (void);
+gchar* properties_get_prettyprint_date (Properties* self, struct tm* date);
+gchar* format_local_date (struct tm* date);
+void properties_get_single_properties (Properties* self, DataView* view);
+static void properties_real_get_single_properties (Properties* self, DataView* view);
+void properties_get_multiple_properties (Properties* self, GeeIterable* iter);
+static void properties_real_get_multiple_properties (Properties* self, GeeIterable* iter);
+void properties_get_properties (Properties* self, Page* current_page);
+static void properties_real_get_properties (Properties* self, Page* current_page);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gint view_collection_get_selected_count (ViewCollection* self);
+GeeList* view_collection_get_selected (ViewCollection* self);
+gint data_collection_get_count (DataCollection* self);
+GeeCollection* data_collection_get_all (DataCollection* self);
+void properties_clear_properties (Properties* self);
+static void properties_real_clear_properties (Properties* self);
+void properties_update_properties (Properties* self, Page* page);
+void properties_internal_update_properties (Properties* self, Page* page);
+static void properties_real_internal_update_properties (Properties* self, Page* page);
+void properties_unselect_text (Properties* self);
+static void properties_finalize (GObject* obj);
+GType basic_properties_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+#define BASIC_PROPERTIES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_BASIC_PROPERTIES, BasicPropertiesPrivate))
+enum {
+ BASIC_PROPERTIES_DUMMY_PROPERTY
+};
+BasicProperties* basic_properties_new (void);
+BasicProperties* basic_properties_construct (GType object_type);
+static void basic_properties_real_clear_properties (Properties* base);
+void dimensions_init (Dimensions *self, gint width, gint height);
+static void basic_properties_real_get_single_properties (Properties* base, DataView* view);
+GType data_source_get_type (void) G_GNUC_CONST;
+DataSource* data_view_get_source (DataView* self);
+gchar* data_object_get_name (DataObject* self);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType import_source_get_type (void) G_GNUC_CONST;
+GType photo_import_source_get_type (void) G_GNUC_CONST;
+time_t media_source_get_exposure_time (MediaSource* self);
+time_t import_source_get_exposure_time (ImportSource* self);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+PhotoMetadata* photo_source_get_metadata (PhotoSource* self);
+PhotoMetadata* photo_import_source_get_metadata (PhotoImportSource* self);
+gchar* photo_metadata_get_exposure_string (PhotoMetadata* self);
+gchar* photo_metadata_get_aperture_string (PhotoMetadata* self, gboolean pango_formatted);
+gchar* photo_metadata_get_iso_string (PhotoMetadata* self);
+Dimensions* photo_metadata_get_pixel_dimensions (PhotoMetadata* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+Orientation photo_metadata_get_orientation (PhotoMetadata* self);
+void orientation_rotate_dimensions (Orientation self, Dimensions* dim, Dimensions* result);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+GType photo_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+RawDeveloper photo_get_raw_developer (Photo* self);
+gchar* raw_developer_get_label (RawDeveloper self);
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+GType event_source_get_type (void) G_GNUC_CONST;
+time_t event_source_get_start_time (EventSource* self);
+time_t event_source_get_end_time (EventSource* self);
+void media_source_collection_count_media (GeeCollection* media, gint* photo_count, gint* video_count);
+GeeCollection* event_source_get_media (EventSource* self);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_import_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+gdouble video_get_clip_duration (Video* self);
+gboolean video_get_is_interpretable (Video* self);
+void video_get_frame_dimensions (Video* self, Dimensions* result);
+static void basic_properties_real_get_multiple_properties (Properties* base, GeeIterable* iter);
+static void basic_properties_real_get_properties (Properties* base, Page* current_page);
+static void basic_properties_real_internal_update_properties (Properties* base, Page* page);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType tag_page_get_type (void) G_GNUC_CONST;
+GType tag_get_type (void) G_GNUC_CONST;
+Tag* tag_page_get_tag (TagPage* self);
+gchar* tag_get_user_visible_name (Tag* self);
+gchar* guarded_markup_escape_text (const gchar* plain);
+gboolean dimensions_has_area (Dimensions *self);
+static void basic_properties_finalize (GObject* obj);
+GType extended_properties_window_get_type (void) G_GNUC_CONST;
+static GType extended_properties_window_extended_properties_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define EXTENDED_PROPERTIES_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindowPrivate))
+enum {
+ EXTENDED_PROPERTIES_WINDOW_DUMMY_PROPERTY
+};
+ExtendedPropertiesWindow* extended_properties_window_new (GtkWindow* owner);
+ExtendedPropertiesWindow* extended_properties_window_construct (GType object_type, GtkWindow* owner);
+static gboolean _gtk_widget_hide_on_delete_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+static ExtendedPropertiesWindowExtendedProperties* extended_properties_window_extended_properties_new (void);
+static ExtendedPropertiesWindowExtendedProperties* extended_properties_window_extended_properties_construct (GType object_type);
+static gboolean extended_properties_window_real_button_press_event (GtkWidget* base, GdkEventButton* event);
+static gboolean extended_properties_window_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void extended_properties_window_update_properties (ExtendedPropertiesWindow* self, Page* page);
+static void extended_properties_window_real_show_all (GtkWidget* base);
+#define EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedPropertiesPrivate))
+enum {
+ EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_DUMMY_PROPERTY
+};
+#define EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE ""
+static void extended_properties_window_extended_properties_real_clear_properties (Properties* base);
+static void extended_properties_window_extended_properties_real_get_single_properties (Properties* base, DataView* view);
+GFile* media_source_get_master_file (MediaSource* self);
+GFile* media_source_get_file (MediaSource* self);
+guint64 media_source_get_master_filesize (MediaSource* self);
+PhotoMetadata* photo_get_master_metadata (Photo* self, GError** error);
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self);
+GType photo_metadata_set_option_get_type (void) G_GNUC_CONST;
+void photo_metadata_set_exposure_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option);
+time_t media_source_get_timestamp (MediaSource* self);
+MetadataDateTime* metadata_date_time_new (time_t timestamp);
+MetadataDateTime* metadata_date_time_construct (GType object_type, time_t timestamp);
+gchar* photo_metadata_get_camera_make (PhotoMetadata* self);
+gchar* photo_metadata_get_camera_model (PhotoMetadata* self);
+gchar* photo_metadata_get_flash_string (PhotoMetadata* self);
+gchar* photo_metadata_get_focal_length_string (PhotoMetadata* self);
+gboolean photo_metadata_get_gps (PhotoMetadata* self, gdouble* longitude, gchar** long_ref, gdouble* latitude, gchar** lat_ref, gdouble* altitude);
+gchar* photo_metadata_get_artist (PhotoMetadata* self);
+gchar* photo_metadata_get_copyright (PhotoMetadata* self);
+gchar* photo_metadata_get_software (PhotoMetadata* self);
+gchar* photo_metadata_get_exposure_bias (PhotoMetadata* self);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+gchar* media_source_get_comment (MediaSource* self);
+GType event_get_type (void) G_GNUC_CONST;
+gchar* event_source_get_comment (EventSource* self);
+static void extended_properties_window_extended_properties_real_internal_update_properties (Properties* base, Page* page);
+GType events_directory_page_get_type (void) G_GNUC_CONST;
+static void extended_properties_window_extended_properties_finalize (GObject* obj);
+static void extended_properties_window_finalize (GObject* obj);
+
+
+Properties* properties_construct (GType object_type) {
+ Properties * self = NULL;
+#line 10 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = (Properties*) g_object_new (object_type, NULL);
+#line 11 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_grid_set_row_spacing (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_grid_get_type (), GtkGrid), 0);
+#line 12 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_grid_set_column_spacing (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_grid_get_type (), GtkGrid), 6);
+#line 10 "/home/jens/Source/shotwell/src/Properties.vala"
+ return self;
+#line 703 "Properties.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 31 "/home/jens/Source/shotwell/src/Properties.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 710 "Properties.c"
+}
+
+
+void properties_add_line (Properties* self, const gchar* label_text, const gchar* info_text, gboolean multi_line) {
+ GtkLabel* label = NULL;
+ GtkLabel* _tmp0_ = NULL;
+ GtkWidget* info = NULL;
+ GtkLabel* _tmp1_ = NULL;
+ GtkLabel* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GtkLabel* _tmp43_ = NULL;
+ guint _tmp44_ = 0U;
+ gboolean _tmp45_ = FALSE;
+ guint _tmp50_ = 0U;
+#line 15 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 15 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (label_text != NULL);
+#line 15 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (info_text != NULL);
+#line 16 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = (GtkLabel*) gtk_label_new ("");
+#line 16 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_ref_sink (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/Properties.vala"
+ label = _tmp0_;
+#line 19 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = label;
+#line 19 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_label_set_justify (_tmp1_, GTK_JUSTIFY_RIGHT);
+#line 21 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = label;
+#line 21 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = label_text;
+#line 21 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = g_markup_printf_escaped ("<span font_weight=\"bold\">%s</span>", _tmp3_);
+#line 21 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = _tmp4_;
+#line 21 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_label_set_markup (_tmp2_, _tmp5_);
+#line 21 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp5_);
+#line 23 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = multi_line;
+#line 23 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp6_) {
+#line 760 "Properties.c"
+ GtkScrolledWindow* info_scroll = NULL;
+ GtkScrolledWindow* _tmp7_ = NULL;
+ GtkScrolledWindow* _tmp8_ = NULL;
+ GtkTextView* view = NULL;
+ GtkTextView* _tmp9_ = NULL;
+ GtkStyleContext* context = NULL;
+ GtkScrolledWindow* _tmp10_ = NULL;
+ GtkStyleContext* _tmp11_ = NULL;
+ GtkStyleContext* _tmp12_ = NULL;
+ GtkTextView* _tmp13_ = NULL;
+ GtkStyleContext* _tmp14_ = NULL;
+ GdkRGBA _tmp15_ = {0};
+ GtkTextView* _tmp16_ = NULL;
+ GtkTextView* _tmp17_ = NULL;
+ GtkTextView* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ GtkTextView* _tmp23_ = NULL;
+ GtkTextBuffer* _tmp24_ = NULL;
+ GtkTextBuffer* _tmp25_ = NULL;
+ GtkScrolledWindow* _tmp26_ = NULL;
+ GtkTextView* _tmp27_ = NULL;
+ GtkLabel* _tmp28_ = NULL;
+ GtkScrolledWindow* _tmp29_ = NULL;
+ GtkWidget* _tmp30_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
+#line 24 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_ref_sink (_tmp7_);
+#line 24 "/home/jens/Source/shotwell/src/Properties.vala"
+ info_scroll = _tmp7_;
+#line 25 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = info_scroll;
+#line 25 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_scrolled_window_set_shadow_type (_tmp8_, GTK_SHADOW_ETCHED_IN);
+#line 26 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = (GtkTextView*) gtk_text_view_new ();
+#line 26 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_ref_sink (_tmp9_);
+#line 26 "/home/jens/Source/shotwell/src/Properties.vala"
+ view = _tmp9_;
+#line 31 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = info_scroll;
+#line 31 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
+#line 31 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 31 "/home/jens/Source/shotwell/src/Properties.vala"
+ context = _tmp12_;
+#line 32 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = view;
+#line 32 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = context;
+#line 32 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_style_context_get_background_color (_tmp14_, GTK_STATE_FLAG_NORMAL, &_tmp15_);
+#line 32 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_widget_override_background_color (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), GTK_STATE_FLAG_NORMAL, &_tmp15_);
+#line 34 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = view;
+#line 34 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_text_view_set_wrap_mode (_tmp16_, GTK_WRAP_WORD);
+#line 35 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = view;
+#line 35 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_text_view_set_cursor_visible (_tmp17_, FALSE);
+#line 36 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = view;
+#line 36 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_text_view_set_editable (_tmp18_, FALSE);
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = info_text;
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = is_string_empty (_tmp20_);
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp21_) {
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = "";
+#line 839 "Properties.c"
+ } else {
+ const gchar* _tmp22_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = info_text;
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = _tmp22_;
+#line 846 "Properties.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = view;
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = gtk_text_view_get_buffer (_tmp23_);
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp25_ = _tmp24_;
+#line 37 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_set (_tmp25_, "text", _tmp19_, NULL);
+#line 38 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp26_ = info_scroll;
+#line 38 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp27_ = view;
+#line 38 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget));
+#line 39 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp28_ = label;
+#line 39 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_misc_get_type (), GtkMisc), (gfloat) 1, (gfloat) 0);
+#line 40 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp29_ = info_scroll;
+#line 40 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp30_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget));
+#line 40 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (info);
+#line 40 "/home/jens/Source/shotwell/src/Properties.vala"
+ info = _tmp30_;
+#line 23 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (context);
+#line 23 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (view);
+#line 23 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (info_scroll);
+#line 880 "Properties.c"
+ } else {
+ GtkLabel* info_label = NULL;
+ GtkLabel* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ GtkLabel* _tmp36_ = NULL;
+ GtkLabel* _tmp37_ = NULL;
+ GtkLabel* _tmp38_ = NULL;
+ GtkLabel* _tmp39_ = NULL;
+ GtkLabel* _tmp40_ = NULL;
+ GtkLabel* _tmp41_ = NULL;
+ GtkWidget* _tmp42_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp31_ = (GtkLabel*) gtk_label_new ("");
+#line 42 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_ref_sink (_tmp31_);
+#line 42 "/home/jens/Source/shotwell/src/Properties.vala"
+ info_label = _tmp31_;
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp33_ = info_text;
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = is_string_empty (_tmp33_);
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp34_) {
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = "";
+#line 908 "Properties.c"
+ } else {
+ const gchar* _tmp35_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp35_ = info_text;
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = _tmp35_;
+#line 915 "Properties.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp36_ = info_label;
+#line 43 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_label_set_markup (_tmp36_, _tmp32_);
+#line 44 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp37_ = info_label;
+#line 44 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_misc_get_type (), GtkMisc), (gfloat) 0, (gfloat) 5e-1);
+#line 45 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp38_ = info_label;
+#line 45 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_label_set_ellipsize (_tmp38_, PANGO_ELLIPSIZE_END);
+#line 46 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp39_ = info_label;
+#line 46 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_label_set_selectable (_tmp39_, TRUE);
+#line 47 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp40_ = label;
+#line 47 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_misc_get_type (), GtkMisc), (gfloat) 1, (gfloat) 5e-1);
+#line 48 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp41_ = info_label;
+#line 48 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp42_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_widget_get_type (), GtkWidget));
+#line 48 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (info);
+#line 48 "/home/jens/Source/shotwell/src/Properties.vala"
+ info = _tmp42_;
+#line 23 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (info_label);
+#line 947 "Properties.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp43_ = label;
+#line 51 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = self->priv->line_count;
+#line 51 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_grid_attach (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_grid_get_type (), GtkGrid), G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), 0, (gint) _tmp44_, 1, 1);
+#line 53 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp45_ = multi_line;
+#line 53 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp45_) {
+#line 959 "Properties.c"
+ GtkWidget* _tmp46_ = NULL;
+ guint _tmp47_ = 0U;
+#line 54 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp46_ = info;
+#line 54 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp47_ = self->priv->line_count;
+#line 54 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_grid_attach (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_grid_get_type (), GtkGrid), _tmp46_, 1, (gint) _tmp47_, 1, 2);
+#line 968 "Properties.c"
+ } else {
+ GtkWidget* _tmp48_ = NULL;
+ guint _tmp49_ = 0U;
+#line 56 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp48_ = info;
+#line 56 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp49_ = self->priv->line_count;
+#line 56 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_grid_attach (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_grid_get_type (), GtkGrid), _tmp48_, 1, (gint) _tmp49_, 1, 1);
+#line 978 "Properties.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp50_ = self->priv->line_count;
+#line 59 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->line_count = _tmp50_ + 1;
+#line 15 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (info);
+#line 15 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (label);
+#line 988 "Properties.c"
+}
+
+
+static gchar* g_time_format (struct tm *self, const gchar* format) {
+ gchar* result = NULL;
+ gchar* buffer = NULL;
+ gchar* _tmp0_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+#line 2709 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (format != NULL, NULL);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 64);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = _tmp0_;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer_length1 = 64;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _buffer_size_ = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = buffer;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = format;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ strftime (_tmp1_, _tmp1__length1, _tmp2_, &(*self));
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = buffer;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = buffer_length1;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_strdup ((const gchar*) _tmp3_);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = (g_free (buffer), NULL);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1034 "Properties.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1052 "Properties.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 1075 "Properties.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1083 "Properties.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1095 "Properties.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 1119 "Properties.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 1125 "Properties.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 1129 "Properties.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 1133 "Properties.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 1145 "Properties.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 1155 "Properties.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 1161 "Properties.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 1175 "Properties.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 1185 "Properties.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 1191 "Properties.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 1200 "Properties.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1220 "Properties.c"
+}
+
+
+gchar* properties_get_prettyprint_time (Properties* self, struct tm* time) {
+ gchar* result = NULL;
+ gchar* timestring = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar _tmp5_ = '\0';
+#line 62 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (IS_PROPERTIES (self), NULL);
+#line 62 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (time != NULL, NULL);
+#line 63 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = resources_get_hh_mm_format_string ();
+#line 63 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = _tmp0_;
+#line 63 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = g_time_format (time, _tmp1_);
+#line 63 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = _tmp2_;
+#line 63 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp1_);
+#line 63 "/home/jens/Source/shotwell/src/Properties.vala"
+ timestring = _tmp3_;
+#line 65 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = timestring;
+#line 65 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = string_get (_tmp4_, (glong) 0);
+#line 65 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp5_ == '0') {
+#line 1255 "Properties.c"
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = timestring;
+#line 66 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = string_substring (_tmp6_, (glong) 1, (glong) -1);
+#line 66 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (timestring);
+#line 66 "/home/jens/Source/shotwell/src/Properties.vala"
+ timestring = _tmp7_;
+#line 1266 "Properties.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/Properties.vala"
+ result = timestring;
+#line 68 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 1272 "Properties.c"
+}
+
+
+gchar* properties_get_prettyprint_time_with_seconds (Properties* self, struct tm* time) {
+ gchar* result = NULL;
+ gchar* timestring = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar _tmp5_ = '\0';
+#line 71 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (IS_PROPERTIES (self), NULL);
+#line 71 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (time != NULL, NULL);
+#line 72 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = resources_get_hh_mm_ss_format_string ();
+#line 72 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = _tmp0_;
+#line 72 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = g_time_format (time, _tmp1_);
+#line 72 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = _tmp2_;
+#line 72 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp1_);
+#line 72 "/home/jens/Source/shotwell/src/Properties.vala"
+ timestring = _tmp3_;
+#line 74 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = timestring;
+#line 74 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = string_get (_tmp4_, (glong) 0);
+#line 74 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp5_ == '0') {
+#line 1307 "Properties.c"
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = timestring;
+#line 75 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = string_substring (_tmp6_, (glong) 1, (glong) -1);
+#line 75 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (timestring);
+#line 75 "/home/jens/Source/shotwell/src/Properties.vala"
+ timestring = _tmp7_;
+#line 1318 "Properties.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/Properties.vala"
+ result = timestring;
+#line 77 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 1324 "Properties.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 1339 "Properties.c"
+}
+
+
+gchar* properties_get_prettyprint_date (Properties* self, struct tm* date) {
+ gchar* result = NULL;
+ gchar* date_string = NULL;
+ struct tm today = {0};
+ time_t _tmp0_ = 0;
+ struct tm _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ struct tm _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ struct tm _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (IS_PROPERTIES (self), NULL);
+#line 80 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (date != NULL, NULL);
+#line 81 "/home/jens/Source/shotwell/src/Properties.vala"
+ date_string = NULL;
+#line 82 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = time (NULL);
+#line 82 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_time_local (_tmp0_, &_tmp1_);
+#line 82 "/home/jens/Source/shotwell/src/Properties.vala"
+ today = _tmp1_;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = *date;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = _tmp3_.tm_yday;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = today;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = _tmp5_.tm_yday;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp4_ == _tmp6_) {
+#line 1376 "Properties.c"
+ struct tm _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ struct tm _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = *date;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = _tmp7_.tm_year;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = today;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = _tmp9_.tm_year;
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = _tmp8_ == _tmp10_;
+#line 1391 "Properties.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = FALSE;
+#line 1395 "Properties.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp2_) {
+#line 1399 "Properties.c"
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = _ ("Today");
+#line 84 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 84 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (date_string);
+#line 84 "/home/jens/Source/shotwell/src/Properties.vala"
+ date_string = _tmp12_;
+#line 1410 "Properties.c"
+ } else {
+ gboolean _tmp13_ = FALSE;
+ struct tm _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ struct tm _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = *date;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = _tmp14_.tm_yday;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = today;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = _tmp16_.tm_yday;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp15_ == (_tmp17_ - 1)) {
+#line 1427 "Properties.c"
+ struct tm _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ struct tm _tmp20_ = {0};
+ gint _tmp21_ = 0;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = *date;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = _tmp18_.tm_year;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = today;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = _tmp20_.tm_year;
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = _tmp19_ == _tmp21_;
+#line 1442 "Properties.c"
+ } else {
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = FALSE;
+#line 1446 "Properties.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp13_) {
+#line 1450 "Properties.c"
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = _ ("Yesterday");
+#line 86 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = g_strdup (_tmp22_);
+#line 86 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (date_string);
+#line 86 "/home/jens/Source/shotwell/src/Properties.vala"
+ date_string = _tmp23_;
+#line 1461 "Properties.c"
+ } else {
+ struct tm _tmp24_ = {0};
+ gchar* _tmp25_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = *date;
+#line 88 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp25_ = format_local_date (&_tmp24_);
+#line 88 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (date_string);
+#line 88 "/home/jens/Source/shotwell/src/Properties.vala"
+ date_string = _tmp25_;
+#line 1473 "Properties.c"
+ }
+ }
+#line 91 "/home/jens/Source/shotwell/src/Properties.vala"
+ result = date_string;
+#line 91 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 1480 "Properties.c"
+}
+
+
+static void properties_real_get_single_properties (Properties* self, DataView* view) {
+#line 94 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 1487 "Properties.c"
+}
+
+
+void properties_get_single_properties (Properties* self, DataView* view) {
+#line 94 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 94 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_GET_CLASS (self)->get_single_properties (self, view);
+#line 1496 "Properties.c"
+}
+
+
+static void properties_real_get_multiple_properties (Properties* self, GeeIterable* iter) {
+#line 97 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail ((iter == NULL) || GEE_IS_ITERABLE (iter));
+#line 1503 "Properties.c"
+}
+
+
+void properties_get_multiple_properties (Properties* self, GeeIterable* iter) {
+#line 97 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 97 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_GET_CLASS (self)->get_multiple_properties (self, iter);
+#line 1512 "Properties.c"
+}
+
+
+static void properties_real_get_properties (Properties* self, Page* current_page) {
+ ViewCollection* view = NULL;
+ Page* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ gint count = 0;
+ ViewCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ GeeIterable* iter = NULL;
+ gint _tmp5_ = 0;
+ gboolean _tmp12_ = FALSE;
+ GeeIterable* _tmp13_ = NULL;
+ gint _tmp15_ = 0;
+#line 100 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PAGE (current_page));
+#line 101 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = current_page;
+#line 101 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = page_get_view (_tmp0_);
+#line 101 "/home/jens/Source/shotwell/src/Properties.vala"
+ view = _tmp1_;
+#line 102 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = view;
+#line 102 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp2_ == NULL) {
+#line 103 "/home/jens/Source/shotwell/src/Properties.vala"
+ _data_collection_unref0 (view);
+#line 103 "/home/jens/Source/shotwell/src/Properties.vala"
+ return;
+#line 1545 "Properties.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = view;
+#line 106 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = view_collection_get_selected_count (_tmp3_);
+#line 106 "/home/jens/Source/shotwell/src/Properties.vala"
+ count = _tmp4_;
+#line 107 "/home/jens/Source/shotwell/src/Properties.vala"
+ iter = NULL;
+#line 108 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = count;
+#line 108 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp5_ != 0) {
+#line 1559 "Properties.c"
+ ViewCollection* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = view;
+#line 109 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = view_collection_get_selected (_tmp6_);
+#line 109 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (iter);
+#line 109 "/home/jens/Source/shotwell/src/Properties.vala"
+ iter = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable);
+#line 1570 "Properties.c"
+ } else {
+ ViewCollection* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ ViewCollection* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = view;
+#line 111 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection));
+#line 111 "/home/jens/Source/shotwell/src/Properties.vala"
+ count = _tmp9_;
+#line 112 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = view;
+#line 112 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection));
+#line 112 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (iter);
+#line 112 "/home/jens/Source/shotwell/src/Properties.vala"
+ iter = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable);
+#line 1590 "Properties.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = iter;
+#line 115 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp13_ == NULL) {
+#line 115 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = TRUE;
+#line 1598 "Properties.c"
+ } else {
+ gint _tmp14_ = 0;
+#line 115 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = count;
+#line 115 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = _tmp14_ == 0;
+#line 1605 "Properties.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp12_) {
+#line 116 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (iter);
+#line 116 "/home/jens/Source/shotwell/src/Properties.vala"
+ _data_collection_unref0 (view);
+#line 116 "/home/jens/Source/shotwell/src/Properties.vala"
+ return;
+#line 1615 "Properties.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = count;
+#line 118 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp15_ == 1) {
+#line 1621 "Properties.c"
+ {
+ GeeIterator* _item_it = NULL;
+ GeeIterable* _tmp16_ = NULL;
+ GeeIterator* _tmp17_ = NULL;
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = iter;
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = gee_iterable_iterator (_tmp16_);
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _item_it = _tmp17_;
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ while (TRUE) {
+#line 1634 "Properties.c"
+ GeeIterator* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ DataView* item = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ DataView* _tmp22_ = NULL;
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = _item_it;
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = gee_iterator_next (_tmp18_);
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (!_tmp19_) {
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ break;
+#line 1649 "Properties.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = _item_it;
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = gee_iterator_get (_tmp20_);
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ item = (DataView*) _tmp21_;
+#line 120 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = item;
+#line 120 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_get_single_properties (self, _tmp22_);
+#line 121 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (item);
+#line 121 "/home/jens/Source/shotwell/src/Properties.vala"
+ break;
+#line 1665 "Properties.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_item_it);
+#line 1669 "Properties.c"
+ }
+ } else {
+ GeeIterable* _tmp23_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = iter;
+#line 124 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_get_multiple_properties (self, _tmp23_);
+#line 1677 "Properties.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (iter);
+#line 100 "/home/jens/Source/shotwell/src/Properties.vala"
+ _data_collection_unref0 (view);
+#line 1683 "Properties.c"
+}
+
+
+void properties_get_properties (Properties* self, Page* current_page) {
+#line 100 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 100 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_GET_CLASS (self)->get_properties (self, current_page);
+#line 1692 "Properties.c"
+}
+
+
+static void properties_real_clear_properties (Properties* self) {
+ GList* _tmp0_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = gtk_container_get_children (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer));
+#line 1700 "Properties.c"
+ {
+ GList* child_collection = NULL;
+ GList* child_it = NULL;
+#line 129 "/home/jens/Source/shotwell/src/Properties.vala"
+ child_collection = _tmp0_;
+#line 129 "/home/jens/Source/shotwell/src/Properties.vala"
+ for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
+#line 1708 "Properties.c"
+ GtkWidget* _tmp1_ = NULL;
+ GtkWidget* child = NULL;
+#line 129 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = _g_object_ref0 ((GtkWidget*) child_it->data);
+#line 129 "/home/jens/Source/shotwell/src/Properties.vala"
+ child = _tmp1_;
+#line 1715 "Properties.c"
+ {
+ GtkWidget* _tmp2_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = child;
+#line 130 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), _tmp2_);
+#line 129 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (child);
+#line 1724 "Properties.c"
+ }
+ }
+#line 129 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_list_free0 (child_collection);
+#line 1729 "Properties.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->line_count = (guint) 0;
+#line 1733 "Properties.c"
+}
+
+
+void properties_clear_properties (Properties* self) {
+#line 128 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 128 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_GET_CLASS (self)->clear_properties (self);
+#line 1742 "Properties.c"
+}
+
+
+void properties_update_properties (Properties* self, Page* page) {
+ Page* _tmp0_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 135 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 136 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_clear_properties (self);
+#line 137 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = page;
+#line 137 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_internal_update_properties (self, _tmp0_);
+#line 138 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 1760 "Properties.c"
+}
+
+
+static void properties_real_internal_update_properties (Properties* self, Page* page) {
+ Page* _tmp0_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 142 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = page;
+#line 142 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_get_properties (self, _tmp0_);
+#line 1772 "Properties.c"
+}
+
+
+void properties_internal_update_properties (Properties* self, Page* page) {
+#line 141 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 141 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_GET_CLASS (self)->internal_update_properties (self, page);
+#line 1781 "Properties.c"
+}
+
+
+void properties_unselect_text (Properties* self) {
+ GList* _tmp0_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PROPERTIES (self));
+#line 146 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = gtk_container_get_children (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer));
+#line 1791 "Properties.c"
+ {
+ GList* child_collection = NULL;
+ GList* child_it = NULL;
+#line 146 "/home/jens/Source/shotwell/src/Properties.vala"
+ child_collection = _tmp0_;
+#line 146 "/home/jens/Source/shotwell/src/Properties.vala"
+ for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
+#line 1799 "Properties.c"
+ GtkWidget* _tmp1_ = NULL;
+ GtkWidget* child = NULL;
+#line 146 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = _g_object_ref0 ((GtkWidget*) child_it->data);
+#line 146 "/home/jens/Source/shotwell/src/Properties.vala"
+ child = _tmp1_;
+#line 1806 "Properties.c"
+ {
+ GtkWidget* _tmp2_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = child;
+#line 147 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_label_get_type ())) {
+#line 1813 "Properties.c"
+ GtkWidget* _tmp3_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = child;
+#line 148 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_label_select_region (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_label_get_type (), GtkLabel), 0, 0);
+#line 1819 "Properties.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (child);
+#line 1823 "Properties.c"
+ }
+ }
+#line 146 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_list_free0 (child_collection);
+#line 1828 "Properties.c"
+ }
+}
+
+
+static void properties_class_init (PropertiesClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_type_class_add_private (klass, sizeof (PropertiesPrivate));
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->get_single_properties = properties_real_get_single_properties;
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->get_multiple_properties = properties_real_get_multiple_properties;
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->get_properties = properties_real_get_properties;
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->clear_properties = properties_real_clear_properties;
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->internal_update_properties = properties_real_internal_update_properties;
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (klass)->finalize = properties_finalize;
+#line 1850 "Properties.c"
+}
+
+
+static void properties_instance_init (Properties * self) {
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv = PROPERTIES_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->line_count = (guint) 0;
+#line 1859 "Properties.c"
+}
+
+
+static void properties_finalize (GObject* obj) {
+ Properties * self;
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROPERTIES, Properties);
+#line 7 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (properties_parent_class)->finalize (obj);
+#line 1869 "Properties.c"
+}
+
+
+GType properties_get_type (void) {
+ static volatile gsize properties_type_id__volatile = 0;
+ if (g_once_init_enter (&properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Properties), 0, (GInstanceInitFunc) properties_instance_init, NULL };
+ GType properties_type_id;
+ properties_type_id = g_type_register_static (gtk_grid_get_type (), "Properties", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&properties_type_id__volatile, properties_type_id);
+ }
+ return properties_type_id__volatile;
+}
+
+
+BasicProperties* basic_properties_construct (GType object_type) {
+ BasicProperties * self = NULL;
+#line 168 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = (BasicProperties*) properties_construct (object_type);
+#line 168 "/home/jens/Source/shotwell/src/Properties.vala"
+ return self;
+#line 1891 "Properties.c"
+}
+
+
+BasicProperties* basic_properties_new (void) {
+#line 168 "/home/jens/Source/shotwell/src/Properties.vala"
+ return basic_properties_construct (TYPE_BASIC_PROPERTIES);
+#line 1898 "Properties.c"
+}
+
+
+static void basic_properties_real_clear_properties (Properties* base) {
+ BasicProperties * self;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_BASIC_PROPERTIES, BasicProperties);
+#line 172 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (basic_properties_parent_class)->clear_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties));
+#line 173 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = g_strdup ("");
+#line 173 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->title);
+#line 173 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->title = _tmp0_;
+#line 174 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = (time_t) 0;
+#line 175 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = (time_t) 0;
+#line 176 "/home/jens/Source/shotwell/src/Properties.vala"
+ dimensions_init (&self->priv->dimensions, 0, 0);
+#line 177 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->photo_count = -1;
+#line 178 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->event_count = -1;
+#line 179 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->video_count = -1;
+#line 180 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = g_strdup ("");
+#line 180 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure);
+#line 180 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure = _tmp1_;
+#line 181 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = g_strdup ("");
+#line 181 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->aperture);
+#line 181 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->aperture = _tmp2_;
+#line 182 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = g_strdup ("");
+#line 182 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->iso);
+#line 182 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->iso = _tmp3_;
+#line 183 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->clip_duration = 0.0;
+#line 184 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = g_strdup ("");
+#line 184 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->raw_developer);
+#line 184 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->raw_developer = _tmp4_;
+#line 185 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = g_strdup ("");
+#line 185 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->raw_assoc);
+#line 185 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->raw_assoc = _tmp5_;
+#line 1964 "Properties.c"
+}
+
+
+static gpointer _media_metadata_ref0 (gpointer self) {
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ return self ? media_metadata_ref (self) : NULL;
+#line 1971 "Properties.c"
+}
+
+
+static void basic_properties_real_get_single_properties (Properties* base, DataView* view) {
+ BasicProperties * self;
+ DataView* _tmp0_ = NULL;
+ DataSource* source = NULL;
+ DataView* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataSource* _tmp6_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_BASIC_PROPERTIES, BasicProperties);
+#line 188 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 189 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = view;
+#line 189 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (basic_properties_parent_class)->get_single_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp0_);
+#line 191 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = view;
+#line 191 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = data_view_get_source (_tmp1_);
+#line 191 "/home/jens/Source/shotwell/src/Properties.vala"
+ source = _tmp2_;
+#line 193 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = source;
+#line 193 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 193 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->title);
+#line 193 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->title = _tmp4_;
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = source;
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, TYPE_PHOTO_SOURCE)) {
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = TRUE;
+#line 2013 "Properties.c"
+ } else {
+ DataSource* _tmp7_ = NULL;
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = source;
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, TYPE_PHOTO_IMPORT_SOURCE);
+#line 2020 "Properties.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp5_) {
+#line 2024 "Properties.c"
+ time_t _tmp8_ = 0;
+ DataSource* _tmp9_ = NULL;
+ time_t _tmp14_ = 0;
+ PhotoMetadata* _tmp15_ = NULL;
+ DataSource* _tmp16_ = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp21_ = NULL;
+ PhotoMetadata* _tmp22_ = NULL;
+ DataSource* _tmp47_ = NULL;
+ gboolean _tmp50_ = FALSE;
+ DataSource* _tmp51_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = source;
+#line 196 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_PHOTO_SOURCE)) {
+#line 2040 "Properties.c"
+ DataSource* _tmp10_ = NULL;
+ time_t _tmp11_ = 0;
+#line 196 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = source;
+#line 196 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PHOTO_SOURCE, PhotoSource), TYPE_MEDIA_SOURCE, MediaSource));
+#line 196 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = _tmp11_;
+#line 2049 "Properties.c"
+ } else {
+ DataSource* _tmp12_ = NULL;
+ time_t _tmp13_ = 0;
+#line 197 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = source;
+#line 197 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = import_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource), TYPE_IMPORT_SOURCE, ImportSource));
+#line 197 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = _tmp13_;
+#line 2059 "Properties.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp8_;
+#line 198 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = self->priv->start_time;
+#line 198 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp14_;
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = source;
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_PHOTO_SOURCE)) {
+#line 2071 "Properties.c"
+ DataSource* _tmp17_ = NULL;
+ PhotoMetadata* _tmp18_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = source;
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (_tmp15_);
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = _tmp18_;
+#line 2082 "Properties.c"
+ } else {
+ DataSource* _tmp19_ = NULL;
+ PhotoMetadata* _tmp20_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = source;
+#line 201 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = photo_import_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource));
+#line 201 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (_tmp15_);
+#line 201 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = _tmp20_;
+#line 2094 "Properties.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = _media_metadata_ref0 (_tmp15_);
+#line 200 "/home/jens/Source/shotwell/src/Properties.vala"
+ metadata = _tmp21_;
+#line 203 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = metadata;
+#line 203 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp22_ != NULL) {
+#line 2104 "Properties.c"
+ PhotoMetadata* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ PhotoMetadata* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ PhotoMetadata* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ Dimensions _tmp35_ = {0};
+ PhotoMetadata* _tmp36_ = NULL;
+ Dimensions* _tmp37_ = NULL;
+ Dimensions* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 204 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = metadata;
+#line 204 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = photo_metadata_get_exposure_string (_tmp23_);
+#line 204 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure);
+#line 204 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure = _tmp24_;
+#line 205 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp25_ = self->priv->exposure;
+#line 205 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp25_ == NULL) {
+#line 2131 "Properties.c"
+ gchar* _tmp26_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp26_ = g_strdup ("");
+#line 206 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure);
+#line 206 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure = _tmp26_;
+#line 2139 "Properties.c"
+ }
+#line 208 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp27_ = metadata;
+#line 208 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp28_ = photo_metadata_get_aperture_string (_tmp27_, TRUE);
+#line 208 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->aperture);
+#line 208 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->aperture = _tmp28_;
+#line 209 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp29_ = self->priv->aperture;
+#line 209 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp29_ == NULL) {
+#line 2153 "Properties.c"
+ gchar* _tmp30_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp30_ = g_strdup ("");
+#line 210 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->aperture);
+#line 210 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->aperture = _tmp30_;
+#line 2161 "Properties.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp31_ = metadata;
+#line 212 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = photo_metadata_get_iso_string (_tmp31_);
+#line 212 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->iso);
+#line 212 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->iso = _tmp32_;
+#line 213 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp33_ = self->priv->iso;
+#line 213 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp33_ == NULL) {
+#line 2175 "Properties.c"
+ gchar* _tmp34_ = NULL;
+#line 214 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = g_strdup ("");
+#line 214 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->iso);
+#line 214 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->iso = _tmp34_;
+#line 2183 "Properties.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp36_ = metadata;
+#line 216 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp37_ = photo_metadata_get_pixel_dimensions (_tmp36_);
+#line 216 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp38_ = _tmp37_;
+#line 216 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp39_ = _tmp38_ != NULL;
+#line 216 "/home/jens/Source/shotwell/src/Properties.vala"
+ _dimensions_free0 (_tmp38_);
+#line 216 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp39_) {
+#line 2197 "Properties.c"
+ PhotoMetadata* _tmp40_ = NULL;
+ Orientation _tmp41_ = 0;
+ PhotoMetadata* _tmp42_ = NULL;
+ Dimensions* _tmp43_ = NULL;
+ Dimensions* _tmp44_ = NULL;
+ Dimensions _tmp45_ = {0};
+ Dimensions _tmp46_ = {0};
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp40_ = metadata;
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp41_ = photo_metadata_get_orientation (_tmp40_);
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp42_ = metadata;
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp43_ = photo_metadata_get_pixel_dimensions (_tmp42_);
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = _tmp43_;
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp45_ = *_tmp44_;
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ orientation_rotate_dimensions (_tmp41_, &_tmp45_, &_tmp46_);
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp35_ = _tmp46_;
+#line 217 "/home/jens/Source/shotwell/src/Properties.vala"
+ _dimensions_free0 (_tmp44_);
+#line 2223 "Properties.c"
+ } else {
+#line 218 "/home/jens/Source/shotwell/src/Properties.vala"
+ dimensions_init (&_tmp35_, 0, 0);
+#line 2227 "Properties.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->dimensions = _tmp35_;
+#line 2231 "Properties.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp47_ = source;
+#line 221 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp47_, TYPE_PHOTO_SOURCE)) {
+#line 2237 "Properties.c"
+ DataSource* _tmp48_ = NULL;
+ Dimensions _tmp49_ = {0};
+#line 222 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp48_ = source;
+#line 222 "/home/jens/Source/shotwell/src/Properties.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_PHOTO_SOURCE, PhotoSource), TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp49_);
+#line 222 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->dimensions = _tmp49_;
+#line 2246 "Properties.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp51_ = source;
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp51_, TYPE_PHOTO)) {
+#line 2252 "Properties.c"
+ DataSource* _tmp52_ = NULL;
+ PhotoFileFormat _tmp53_ = 0;
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp52_ = source;
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp53_ = photo_get_master_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_PHOTO, Photo));
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp50_ = _tmp53_ == PHOTO_FILE_FORMAT_RAW;
+#line 2261 "Properties.c"
+ } else {
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp50_ = FALSE;
+#line 2265 "Properties.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp50_) {
+#line 2269 "Properties.c"
+ Photo* photo = NULL;
+ DataSource* _tmp54_ = NULL;
+ Photo* _tmp55_ = NULL;
+ Photo* _tmp56_ = NULL;
+ RawDeveloper _tmp57_ = 0;
+ gchar* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ Photo* _tmp60_ = NULL;
+ gboolean _tmp61_ = FALSE;
+ gchar* _tmp63_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp54_ = source;
+#line 225 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp55_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp54_, TYPE_PHOTO) ? ((Photo*) _tmp54_) : NULL);
+#line 225 "/home/jens/Source/shotwell/src/Properties.vala"
+ photo = _tmp55_;
+#line 226 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp56_ = photo;
+#line 226 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp57_ = photo_get_raw_developer (_tmp56_);
+#line 226 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp58_ = raw_developer_get_label (_tmp57_);
+#line 226 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->raw_developer);
+#line 226 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->raw_developer = _tmp58_;
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp60_ = photo;
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp61_ = photo_is_raw_developer_available (_tmp60_, RAW_DEVELOPER_CAMERA);
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp61_) {
+#line 2302 "Properties.c"
+ const gchar* _tmp62_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp62_ = _ ("RAW+JPEG");
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp59_ = _tmp62_;
+#line 2308 "Properties.c"
+ } else {
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp59_ = "";
+#line 2312 "Properties.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp63_ = g_strdup (_tmp59_);
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->raw_assoc);
+#line 227 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->raw_assoc = _tmp63_;
+#line 224 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (photo);
+#line 2322 "Properties.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (metadata);
+#line 195 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (_tmp15_);
+#line 2328 "Properties.c"
+ } else {
+ DataSource* _tmp64_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp64_ = source;
+#line 229 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp64_, TYPE_EVENT_SOURCE)) {
+#line 2335 "Properties.c"
+ EventSource* event_source = NULL;
+ DataSource* _tmp65_ = NULL;
+ EventSource* _tmp66_ = NULL;
+ EventSource* _tmp67_ = NULL;
+ time_t _tmp68_ = 0;
+ EventSource* _tmp69_ = NULL;
+ time_t _tmp70_ = 0;
+ gint event_photo_count = 0;
+ gint event_video_count = 0;
+ EventSource* _tmp71_ = NULL;
+ GeeCollection* _tmp72_ = NULL;
+ GeeCollection* _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+#line 230 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp65_ = source;
+#line 230 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp66_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp65_, TYPE_EVENT_SOURCE, EventSource));
+#line 230 "/home/jens/Source/shotwell/src/Properties.vala"
+ event_source = _tmp66_;
+#line 232 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp67_ = event_source;
+#line 232 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp68_ = event_source_get_start_time (_tmp67_);
+#line 232 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp68_;
+#line 233 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp69_ = event_source;
+#line 233 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp70_ = event_source_get_end_time (_tmp69_);
+#line 233 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp70_;
+#line 237 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp71_ = event_source;
+#line 237 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp72_ = event_source_get_media (_tmp71_);
+#line 237 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp73_ = _tmp72_;
+#line 237 "/home/jens/Source/shotwell/src/Properties.vala"
+ media_source_collection_count_media (_tmp73_, &_tmp74_, &_tmp75_);
+#line 237 "/home/jens/Source/shotwell/src/Properties.vala"
+ event_photo_count = _tmp74_;
+#line 237 "/home/jens/Source/shotwell/src/Properties.vala"
+ event_video_count = _tmp75_;
+#line 237 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_tmp73_);
+#line 240 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp76_ = event_photo_count;
+#line 240 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->photo_count = _tmp76_;
+#line 241 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp77_ = event_video_count;
+#line 241 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->video_count = _tmp77_;
+#line 229 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (event_source);
+#line 2394 "Properties.c"
+ } else {
+ gboolean _tmp78_ = FALSE;
+ DataSource* _tmp79_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp79_ = source;
+#line 242 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp79_, TYPE_VIDEO_SOURCE)) {
+#line 242 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp78_ = TRUE;
+#line 2404 "Properties.c"
+ } else {
+ DataSource* _tmp80_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp80_ = source;
+#line 242 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp78_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp80_, TYPE_VIDEO_IMPORT_SOURCE);
+#line 2411 "Properties.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp78_) {
+#line 2415 "Properties.c"
+ DataSource* _tmp81_ = NULL;
+ time_t _tmp94_ = 0;
+#line 243 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp81_ = source;
+#line 243 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp81_, TYPE_VIDEO_SOURCE)) {
+#line 2422 "Properties.c"
+ Video* video = NULL;
+ DataSource* _tmp82_ = NULL;
+ Video* _tmp83_ = NULL;
+ Video* _tmp84_ = NULL;
+ gdouble _tmp85_ = 0.0;
+ Video* _tmp86_ = NULL;
+ gboolean _tmp87_ = FALSE;
+ Video* _tmp90_ = NULL;
+ time_t _tmp91_ = 0;
+#line 244 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp82_ = source;
+#line 244 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp83_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, TYPE_VIDEO, Video));
+#line 244 "/home/jens/Source/shotwell/src/Properties.vala"
+ video = _tmp83_;
+#line 245 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp84_ = video;
+#line 245 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp85_ = video_get_clip_duration (_tmp84_);
+#line 245 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->clip_duration = _tmp85_;
+#line 247 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp86_ = video;
+#line 247 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp87_ = video_get_is_interpretable (_tmp86_);
+#line 247 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp87_) {
+#line 2450 "Properties.c"
+ Video* _tmp88_ = NULL;
+ Dimensions _tmp89_ = {0};
+#line 248 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp88_ = video;
+#line 248 "/home/jens/Source/shotwell/src/Properties.vala"
+ video_get_frame_dimensions (_tmp88_, &_tmp89_);
+#line 248 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->dimensions = _tmp89_;
+#line 2459 "Properties.c"
+ }
+#line 250 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp90_ = video;
+#line 250 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp91_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 250 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp91_;
+#line 243 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (video);
+#line 2469 "Properties.c"
+ } else {
+ DataSource* _tmp92_ = NULL;
+ time_t _tmp93_ = 0;
+#line 252 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp92_ = source;
+#line 252 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp93_ = import_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp92_, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource), TYPE_IMPORT_SOURCE, ImportSource));
+#line 252 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp93_;
+#line 2479 "Properties.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp94_ = self->priv->start_time;
+#line 254 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp94_;
+#line 2485 "Properties.c"
+ }
+ }
+ }
+#line 188 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (source);
+#line 2491 "Properties.c"
+}
+
+
+static void basic_properties_real_get_multiple_properties (Properties* base, GeeIterable* iter) {
+ BasicProperties * self;
+ GeeIterable* _tmp0_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_BASIC_PROPERTIES, BasicProperties);
+#line 258 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail ((iter == NULL) || GEE_IS_ITERABLE (iter));
+#line 259 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = iter;
+#line 259 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (basic_properties_parent_class)->get_multiple_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp0_);
+#line 261 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->photo_count = 0;
+#line 262 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->video_count = 0;
+#line 2510 "Properties.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = iter;
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _view_it = _tmp2_;
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ while (TRUE) {
+#line 2523 "Properties.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataSource* source = NULL;
+ DataView* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ DataSource* _tmp10_ = NULL;
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = _view_it;
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (!_tmp4_) {
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ break;
+#line 2542 "Properties.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = _view_it;
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ view = (DataView*) _tmp6_;
+#line 264 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = view;
+#line 264 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = data_view_get_source (_tmp7_);
+#line 264 "/home/jens/Source/shotwell/src/Properties.vala"
+ source = _tmp8_;
+#line 266 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = source;
+#line 266 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_PHOTO_SOURCE)) {
+#line 266 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = TRUE;
+#line 2562 "Properties.c"
+ } else {
+ DataSource* _tmp11_ = NULL;
+#line 266 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = source;
+#line 266 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_PHOTO_IMPORT_SOURCE);
+#line 2569 "Properties.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp9_) {
+#line 2573 "Properties.c"
+ time_t _tmp12_ = 0;
+ DataSource* _tmp13_ = NULL;
+ time_t exposure_time = 0;
+ time_t _tmp18_ = 0;
+ gint _tmp29_ = 0;
+#line 267 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = source;
+#line 267 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_PHOTO_SOURCE)) {
+#line 2583 "Properties.c"
+ DataSource* _tmp14_ = NULL;
+ time_t _tmp15_ = 0;
+#line 268 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = source;
+#line 268 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO_SOURCE, PhotoSource), TYPE_MEDIA_SOURCE, MediaSource));
+#line 268 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = _tmp15_;
+#line 2592 "Properties.c"
+ } else {
+ DataSource* _tmp16_ = NULL;
+ time_t _tmp17_ = 0;
+#line 269 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = source;
+#line 269 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = import_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource), TYPE_IMPORT_SOURCE, ImportSource));
+#line 269 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = _tmp17_;
+#line 2602 "Properties.c"
+ }
+#line 267 "/home/jens/Source/shotwell/src/Properties.vala"
+ exposure_time = _tmp12_;
+#line 271 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = exposure_time;
+#line 271 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp18_ != ((time_t) 0)) {
+#line 2610 "Properties.c"
+ gboolean _tmp19_ = FALSE;
+ time_t _tmp20_ = 0;
+ gboolean _tmp24_ = FALSE;
+ time_t _tmp25_ = 0;
+#line 272 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = self->priv->start_time;
+#line 272 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp20_ == ((time_t) 0)) {
+#line 272 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = TRUE;
+#line 2621 "Properties.c"
+ } else {
+ time_t _tmp21_ = 0;
+ time_t _tmp22_ = 0;
+#line 272 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = exposure_time;
+#line 272 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = self->priv->start_time;
+#line 272 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = _tmp21_ < _tmp22_;
+#line 2631 "Properties.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp19_) {
+#line 2635 "Properties.c"
+ time_t _tmp23_ = 0;
+#line 273 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = exposure_time;
+#line 273 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp23_;
+#line 2641 "Properties.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp25_ = self->priv->end_time;
+#line 275 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp25_ == ((time_t) 0)) {
+#line 275 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = TRUE;
+#line 2649 "Properties.c"
+ } else {
+ time_t _tmp26_ = 0;
+ time_t _tmp27_ = 0;
+#line 275 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp26_ = exposure_time;
+#line 275 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp27_ = self->priv->end_time;
+#line 275 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = _tmp26_ > _tmp27_;
+#line 2659 "Properties.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp24_) {
+#line 2663 "Properties.c"
+ time_t _tmp28_ = 0;
+#line 276 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp28_ = exposure_time;
+#line 276 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp28_;
+#line 2669 "Properties.c"
+ }
+ }
+#line 279 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp29_ = self->priv->photo_count;
+#line 279 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->photo_count = _tmp29_ + 1;
+#line 2676 "Properties.c"
+ } else {
+ DataSource* _tmp30_ = NULL;
+#line 280 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp30_ = source;
+#line 280 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, TYPE_EVENT_SOURCE)) {
+#line 2683 "Properties.c"
+ EventSource* event_source = NULL;
+ DataSource* _tmp31_ = NULL;
+ EventSource* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gboolean _tmp34_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ time_t _tmp36_ = 0;
+ gboolean _tmp44_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+ time_t _tmp46_ = 0;
+ gint event_photo_count = 0;
+ gint event_video_count = 0;
+ EventSource* _tmp61_ = NULL;
+ GeeCollection* _tmp62_ = NULL;
+ GeeCollection* _tmp63_ = NULL;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+#line 281 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp31_ = source;
+#line 281 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_EVENT_SOURCE, EventSource));
+#line 281 "/home/jens/Source/shotwell/src/Properties.vala"
+ event_source = _tmp32_;
+#line 283 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp33_ = self->priv->event_count;
+#line 283 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp33_ == -1) {
+#line 284 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->event_count = 0;
+#line 2718 "Properties.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp36_ = self->priv->start_time;
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp36_ == ((time_t) 0)) {
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp35_ = TRUE;
+#line 2726 "Properties.c"
+ } else {
+ EventSource* _tmp37_ = NULL;
+ time_t _tmp38_ = 0;
+ time_t _tmp39_ = 0;
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp37_ = event_source;
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp38_ = event_source_get_start_time (_tmp37_);
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp39_ = self->priv->start_time;
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp35_ = _tmp38_ < _tmp39_;
+#line 2739 "Properties.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp35_) {
+#line 2743 "Properties.c"
+ EventSource* _tmp40_ = NULL;
+ time_t _tmp41_ = 0;
+#line 287 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp40_ = event_source;
+#line 287 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp41_ = event_source_get_start_time (_tmp40_);
+#line 287 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = _tmp41_ != ((time_t) 0);
+#line 2752 "Properties.c"
+ } else {
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = FALSE;
+#line 2756 "Properties.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp34_) {
+#line 2760 "Properties.c"
+ EventSource* _tmp42_ = NULL;
+ time_t _tmp43_ = 0;
+#line 288 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp42_ = event_source;
+#line 288 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp43_ = event_source_get_start_time (_tmp42_);
+#line 288 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp43_;
+#line 2769 "Properties.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp46_ = self->priv->end_time;
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp46_ == ((time_t) 0)) {
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp45_ = TRUE;
+#line 2777 "Properties.c"
+ } else {
+ EventSource* _tmp47_ = NULL;
+ time_t _tmp48_ = 0;
+ time_t _tmp49_ = 0;
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp47_ = event_source;
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp48_ = event_source_get_end_time (_tmp47_);
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp49_ = self->priv->end_time;
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp45_ = _tmp48_ > _tmp49_;
+#line 2790 "Properties.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp45_) {
+#line 2794 "Properties.c"
+ EventSource* _tmp50_ = NULL;
+ time_t _tmp51_ = 0;
+#line 291 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp50_ = event_source;
+#line 291 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp51_ = event_source_get_end_time (_tmp50_);
+#line 291 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = _tmp51_ != ((time_t) 0);
+#line 2803 "Properties.c"
+ } else {
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = FALSE;
+#line 2807 "Properties.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp44_) {
+#line 2811 "Properties.c"
+ EventSource* _tmp52_ = NULL;
+ time_t _tmp53_ = 0;
+#line 292 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp52_ = event_source;
+#line 292 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp53_ = event_source_get_end_time (_tmp52_);
+#line 292 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp53_;
+#line 2820 "Properties.c"
+ } else {
+ gboolean _tmp54_ = FALSE;
+ time_t _tmp55_ = 0;
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp55_ = self->priv->end_time;
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp55_ == ((time_t) 0)) {
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp54_ = TRUE;
+#line 2830 "Properties.c"
+ } else {
+ EventSource* _tmp56_ = NULL;
+ time_t _tmp57_ = 0;
+ time_t _tmp58_ = 0;
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp56_ = event_source;
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp57_ = event_source_get_start_time (_tmp56_);
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp58_ = self->priv->end_time;
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp54_ = _tmp57_ > _tmp58_;
+#line 2843 "Properties.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp54_) {
+#line 2847 "Properties.c"
+ EventSource* _tmp59_ = NULL;
+ time_t _tmp60_ = 0;
+#line 294 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp59_ = event_source;
+#line 294 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp60_ = event_source_get_start_time (_tmp59_);
+#line 294 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp60_;
+#line 2856 "Properties.c"
+ }
+ }
+#line 299 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp61_ = event_source;
+#line 299 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp62_ = event_source_get_media (_tmp61_);
+#line 299 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp63_ = _tmp62_;
+#line 299 "/home/jens/Source/shotwell/src/Properties.vala"
+ media_source_collection_count_media (_tmp63_, &_tmp64_, &_tmp65_);
+#line 299 "/home/jens/Source/shotwell/src/Properties.vala"
+ event_photo_count = _tmp64_;
+#line 299 "/home/jens/Source/shotwell/src/Properties.vala"
+ event_video_count = _tmp65_;
+#line 299 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_tmp63_);
+#line 302 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp66_ = self->priv->photo_count;
+#line 302 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp67_ = event_photo_count;
+#line 302 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->photo_count = _tmp66_ + _tmp67_;
+#line 303 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp68_ = self->priv->video_count;
+#line 303 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp69_ = event_video_count;
+#line 303 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->video_count = _tmp68_ + _tmp69_;
+#line 304 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp70_ = self->priv->event_count;
+#line 304 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->event_count = _tmp70_ + 1;
+#line 280 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (event_source);
+#line 2891 "Properties.c"
+ } else {
+ gboolean _tmp71_ = FALSE;
+ DataSource* _tmp72_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp72_ = source;
+#line 305 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp72_, TYPE_VIDEO_SOURCE)) {
+#line 305 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp71_ = TRUE;
+#line 2901 "Properties.c"
+ } else {
+ DataSource* _tmp73_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp73_ = source;
+#line 305 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp71_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp73_, TYPE_VIDEO_IMPORT_SOURCE);
+#line 2908 "Properties.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp71_) {
+#line 2912 "Properties.c"
+ time_t _tmp74_ = 0;
+ DataSource* _tmp75_ = NULL;
+ time_t exposure_time = 0;
+ time_t _tmp80_ = 0;
+ gint _tmp91_ = 0;
+#line 306 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp75_ = source;
+#line 306 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp75_, TYPE_VIDEO_SOURCE)) {
+#line 2922 "Properties.c"
+ DataSource* _tmp76_ = NULL;
+ time_t _tmp77_ = 0;
+#line 307 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp76_ = source;
+#line 307 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp77_ = media_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, TYPE_VIDEO_SOURCE, VideoSource), TYPE_MEDIA_SOURCE, MediaSource));
+#line 307 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp74_ = _tmp77_;
+#line 2931 "Properties.c"
+ } else {
+ DataSource* _tmp78_ = NULL;
+ time_t _tmp79_ = 0;
+#line 308 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp78_ = source;
+#line 308 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp79_ = import_source_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource), TYPE_IMPORT_SOURCE, ImportSource));
+#line 308 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp74_ = _tmp79_;
+#line 2941 "Properties.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/Properties.vala"
+ exposure_time = _tmp74_;
+#line 310 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp80_ = exposure_time;
+#line 310 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp80_ != ((time_t) 0)) {
+#line 2949 "Properties.c"
+ gboolean _tmp81_ = FALSE;
+ time_t _tmp82_ = 0;
+ gboolean _tmp86_ = FALSE;
+ time_t _tmp87_ = 0;
+#line 311 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp82_ = self->priv->start_time;
+#line 311 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp82_ == ((time_t) 0)) {
+#line 311 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp81_ = TRUE;
+#line 2960 "Properties.c"
+ } else {
+ time_t _tmp83_ = 0;
+ time_t _tmp84_ = 0;
+#line 311 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp83_ = exposure_time;
+#line 311 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp84_ = self->priv->start_time;
+#line 311 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp81_ = _tmp83_ < _tmp84_;
+#line 2970 "Properties.c"
+ }
+#line 311 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp81_) {
+#line 2974 "Properties.c"
+ time_t _tmp85_ = 0;
+#line 312 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp85_ = exposure_time;
+#line 312 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp85_;
+#line 2980 "Properties.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp87_ = self->priv->end_time;
+#line 314 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp87_ == ((time_t) 0)) {
+#line 314 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp86_ = TRUE;
+#line 2988 "Properties.c"
+ } else {
+ time_t _tmp88_ = 0;
+ time_t _tmp89_ = 0;
+#line 314 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp88_ = exposure_time;
+#line 314 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp89_ = self->priv->end_time;
+#line 314 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp86_ = _tmp88_ > _tmp89_;
+#line 2998 "Properties.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp86_) {
+#line 3002 "Properties.c"
+ time_t _tmp90_ = 0;
+#line 315 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp90_ = exposure_time;
+#line 315 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp90_;
+#line 3008 "Properties.c"
+ }
+ }
+#line 318 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp91_ = self->priv->video_count;
+#line 318 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->video_count = _tmp91_ + 1;
+#line 3015 "Properties.c"
+ }
+ }
+ }
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (source);
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (view);
+#line 3023 "Properties.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_view_it);
+#line 3027 "Properties.c"
+ }
+}
+
+
+static void basic_properties_real_get_properties (Properties* base, Page* current_page) {
+ BasicProperties * self;
+ Page* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ time_t _tmp3_ = 0;
+#line 323 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_BASIC_PROPERTIES, BasicProperties);
+#line 323 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PAGE (current_page));
+#line 324 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = current_page;
+#line 324 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (basic_properties_parent_class)->get_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp0_);
+#line 326 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = self->priv->end_time;
+#line 326 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp1_ == ((time_t) 0)) {
+#line 3049 "Properties.c"
+ time_t _tmp2_ = 0;
+#line 327 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = self->priv->start_time;
+#line 327 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp2_;
+#line 3055 "Properties.c"
+ }
+#line 328 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = self->priv->start_time;
+#line 328 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp3_ == ((time_t) 0)) {
+#line 3061 "Properties.c"
+ time_t _tmp4_ = 0;
+#line 329 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = self->priv->end_time;
+#line 329 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp4_;
+#line 3067 "Properties.c"
+ }
+}
+
+
+static void basic_properties_real_internal_update_properties (Properties* base, Page* page) {
+ BasicProperties * self;
+ Page* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gint _tmp14_ = 0;
+ time_t _tmp43_ = 0;
+ gboolean _tmp72_ = FALSE;
+ gdouble _tmp84_ = 0.0;
+ const gchar* _tmp90_ = NULL;
+ const gchar* _tmp93_ = NULL;
+ gboolean _tmp95_ = FALSE;
+ gboolean _tmp96_ = FALSE;
+ const gchar* _tmp97_ = NULL;
+#line 332 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_BASIC_PROPERTIES, BasicProperties);
+#line 332 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 333 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = page;
+#line 333 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (basic_properties_parent_class)->internal_update_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp0_);
+#line 336 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = self->priv->title;
+#line 336 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp2_, "") == 0) {
+#line 3100 "Properties.c"
+ Page* _tmp3_ = NULL;
+#line 336 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = page;
+#line 336 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_TAG_PAGE);
+#line 3106 "Properties.c"
+ } else {
+#line 336 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = FALSE;
+#line 3110 "Properties.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp1_) {
+#line 3114 "Properties.c"
+ Page* _tmp4_ = NULL;
+ Tag* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = page;
+#line 337 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = tag_page_get_tag (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_TAG_PAGE, TagPage));
+#line 337 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = _tmp5_;
+#line 337 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = tag_get_user_visible_name (_tmp6_);
+#line 337 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->title);
+#line 337 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->title = _tmp7_;
+#line 337 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_tmp6_);
+#line 3133 "Properties.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = self->priv->title;
+#line 339 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp8_, "") != 0) {
+#line 3139 "Properties.c"
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = _ ("Title:");
+#line 340 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = self->priv->title;
+#line 340 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = guarded_markup_escape_text (_tmp10_);
+#line 340 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = _tmp11_;
+#line 340 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp9_, _tmp12_, FALSE);
+#line 340 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp12_);
+#line 3156 "Properties.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = self->priv->photo_count;
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp14_ >= 0) {
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = TRUE;
+#line 3164 "Properties.c"
+ } else {
+ gint _tmp15_ = 0;
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = self->priv->video_count;
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = _tmp15_ >= 0;
+#line 3171 "Properties.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp13_) {
+#line 3175 "Properties.c"
+ gchar* label = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gchar* photo_num_string = NULL;
+ gint _tmp26_ = 0;
+ const gchar* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gchar* _tmp29_ = NULL;
+ gchar* video_num_string = NULL;
+ gint _tmp30_ = 0;
+ const gchar* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gchar* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ gint _tmp35_ = 0;
+ const gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+#line 343 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = _ ("Items:");
+#line 343 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 343 "/home/jens/Source/shotwell/src/Properties.vala"
+ label = _tmp17_;
+#line 345 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = self->priv->event_count;
+#line 345 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp18_ >= 0) {
+#line 3205 "Properties.c"
+ gchar* event_num_string = NULL;
+ gint _tmp19_ = 0;
+ const gchar* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 346 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = self->priv->event_count;
+#line 346 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = ngettext ("%d Event", "%d Events", (gulong) _tmp19_);
+#line 346 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = self->priv->event_count;
+#line 346 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = g_strdup_printf (_tmp20_, _tmp21_);
+#line 346 "/home/jens/Source/shotwell/src/Properties.vala"
+ event_num_string = _tmp22_;
+#line 349 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = label;
+#line 349 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = event_num_string;
+#line 349 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp23_, _tmp24_, FALSE);
+#line 350 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp25_ = g_strdup ("");
+#line 350 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (label);
+#line 350 "/home/jens/Source/shotwell/src/Properties.vala"
+ label = _tmp25_;
+#line 345 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (event_num_string);
+#line 3238 "Properties.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp26_ = self->priv->photo_count;
+#line 353 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp27_ = ngettext ("%d Photo", "%d Photos", (gulong) _tmp26_);
+#line 353 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp28_ = self->priv->photo_count;
+#line 353 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp29_ = g_strdup_printf (_tmp27_, _tmp28_);
+#line 353 "/home/jens/Source/shotwell/src/Properties.vala"
+ photo_num_string = _tmp29_;
+#line 355 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp30_ = self->priv->video_count;
+#line 355 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp31_ = ngettext ("%d Video", "%d Videos", (gulong) _tmp30_);
+#line 355 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = self->priv->video_count;
+#line 355 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp33_ = g_strdup_printf (_tmp31_, _tmp32_);
+#line 355 "/home/jens/Source/shotwell/src/Properties.vala"
+ video_num_string = _tmp33_;
+#line 358 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp35_ = self->priv->photo_count;
+#line 358 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp35_ == 0) {
+#line 3264 "Properties.c"
+ gint _tmp36_ = 0;
+#line 358 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp36_ = self->priv->video_count;
+#line 358 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = _tmp36_ > 0;
+#line 3270 "Properties.c"
+ } else {
+#line 358 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = FALSE;
+#line 3274 "Properties.c"
+ }
+#line 358 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp34_) {
+#line 3278 "Properties.c"
+ const gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+#line 359 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp37_ = label;
+#line 359 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp38_ = video_num_string;
+#line 359 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp37_, _tmp38_, FALSE);
+#line 360 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (video_num_string);
+#line 360 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (photo_num_string);
+#line 360 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (label);
+#line 360 "/home/jens/Source/shotwell/src/Properties.vala"
+ return;
+#line 3295 "Properties.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp39_ = label;
+#line 363 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp40_ = photo_num_string;
+#line 363 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp39_, _tmp40_, FALSE);
+#line 365 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp41_ = self->priv->video_count;
+#line 365 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp41_ > 0) {
+#line 3307 "Properties.c"
+ const gchar* _tmp42_ = NULL;
+#line 366 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp42_ = video_num_string;
+#line 366 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), "", _tmp42_, FALSE);
+#line 3313 "Properties.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (video_num_string);
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (photo_num_string);
+#line 342 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (label);
+#line 3321 "Properties.c"
+ }
+#line 369 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp43_ = self->priv->start_time;
+#line 369 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp43_ != ((time_t) 0)) {
+#line 3327 "Properties.c"
+ gchar* start_date = NULL;
+ time_t _tmp44_ = 0;
+ struct tm _tmp45_ = {0};
+ gchar* _tmp46_ = NULL;
+ gchar* start_time = NULL;
+ time_t _tmp47_ = 0;
+ struct tm _tmp48_ = {0};
+ gchar* _tmp49_ = NULL;
+ gchar* end_date = NULL;
+ time_t _tmp50_ = 0;
+ struct tm _tmp51_ = {0};
+ gchar* _tmp52_ = NULL;
+ gchar* end_time = NULL;
+ time_t _tmp53_ = 0;
+ struct tm _tmp54_ = {0};
+ gchar* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+#line 370 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = self->priv->start_time;
+#line 370 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_time_local (_tmp44_, &_tmp45_);
+#line 370 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp46_ = properties_get_prettyprint_date (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), &_tmp45_);
+#line 370 "/home/jens/Source/shotwell/src/Properties.vala"
+ start_date = _tmp46_;
+#line 371 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp47_ = self->priv->start_time;
+#line 371 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_time_local (_tmp47_, &_tmp48_);
+#line 371 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp49_ = properties_get_prettyprint_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), &_tmp48_);
+#line 371 "/home/jens/Source/shotwell/src/Properties.vala"
+ start_time = _tmp49_;
+#line 372 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp50_ = self->priv->end_time;
+#line 372 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_time_local (_tmp50_, &_tmp51_);
+#line 372 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp52_ = properties_get_prettyprint_date (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), &_tmp51_);
+#line 372 "/home/jens/Source/shotwell/src/Properties.vala"
+ end_date = _tmp52_;
+#line 373 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp53_ = self->priv->end_time;
+#line 373 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_time_local (_tmp53_, &_tmp54_);
+#line 373 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp55_ = properties_get_prettyprint_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), &_tmp54_);
+#line 373 "/home/jens/Source/shotwell/src/Properties.vala"
+ end_time = _tmp55_;
+#line 375 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp56_ = start_date;
+#line 375 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp57_ = end_date;
+#line 375 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp56_, _tmp57_) == 0) {
+#line 3384 "Properties.c"
+ const gchar* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ const gchar* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp58_ = _ ("Date:");
+#line 377 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp59_ = start_date;
+#line 377 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp58_, _tmp59_, FALSE);
+#line 379 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp60_ = start_time;
+#line 379 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp61_ = end_time;
+#line 379 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp60_, _tmp61_) == 0) {
+#line 3401 "Properties.c"
+ const gchar* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp62_ = _ ("Time:");
+#line 381 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp63_ = start_time;
+#line 381 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp62_, _tmp63_, FALSE);
+#line 3410 "Properties.c"
+ } else {
+ const gchar* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+ const gchar* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+#line 384 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp64_ = _ ("From:");
+#line 384 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp65_ = start_time;
+#line 384 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp64_, _tmp65_, FALSE);
+#line 385 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp66_ = _ ("To:");
+#line 385 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp67_ = end_time;
+#line 385 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp66_, _tmp67_, FALSE);
+#line 3428 "Properties.c"
+ }
+ } else {
+ const gchar* _tmp68_ = NULL;
+ const gchar* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+#line 389 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp68_ = _ ("From:");
+#line 389 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp69_ = start_date;
+#line 389 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp68_, _tmp69_, FALSE);
+#line 390 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp70_ = _ ("To:");
+#line 390 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp71_ = end_date;
+#line 390 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp70_, _tmp71_, FALSE);
+#line 3447 "Properties.c"
+ }
+#line 369 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (end_time);
+#line 369 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (end_date);
+#line 369 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (start_time);
+#line 369 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (start_date);
+#line 3457 "Properties.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp72_ = dimensions_has_area (&self->priv->dimensions);
+#line 394 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp72_) {
+#line 3463 "Properties.c"
+ gchar* label = NULL;
+ const gchar* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+ gboolean _tmp75_ = FALSE;
+#line 395 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp73_ = _ ("Size:");
+#line 395 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp74_ = g_strdup (_tmp73_);
+#line 395 "/home/jens/Source/shotwell/src/Properties.vala"
+ label = _tmp74_;
+#line 397 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp75_ = dimensions_has_area (&self->priv->dimensions);
+#line 397 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp75_) {
+#line 3478 "Properties.c"
+ const gchar* _tmp76_ = NULL;
+ Dimensions _tmp77_ = {0};
+ gint _tmp78_ = 0;
+ Dimensions _tmp79_ = {0};
+ gint _tmp80_ = 0;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp76_ = label;
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp77_ = self->priv->dimensions;
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp78_ = _tmp77_.width;
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp79_ = self->priv->dimensions;
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp80_ = _tmp79_.height;
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp81_ = g_strdup_printf ("%d &#215; %d", _tmp78_, _tmp80_);
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp82_ = _tmp81_;
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp76_, _tmp82_, FALSE);
+#line 398 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp82_);
+#line 399 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp83_ = g_strdup ("");
+#line 399 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (label);
+#line 399 "/home/jens/Source/shotwell/src/Properties.vala"
+ label = _tmp83_;
+#line 3511 "Properties.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (label);
+#line 3515 "Properties.c"
+ }
+#line 403 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp84_ = self->priv->clip_duration;
+#line 403 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp84_ > 0.0) {
+#line 3521 "Properties.c"
+ const gchar* _tmp85_ = NULL;
+ const gchar* _tmp86_ = NULL;
+ gdouble _tmp87_ = 0.0;
+ gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+#line 404 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp85_ = _ ("Duration:");
+#line 404 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp86_ = _ ("%.1f seconds");
+#line 404 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp87_ = self->priv->clip_duration;
+#line 404 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp88_ = g_strdup_printf (_tmp86_, _tmp87_);
+#line 404 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp89_ = _tmp88_;
+#line 404 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp85_, _tmp89_, FALSE);
+#line 404 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp89_);
+#line 3541 "Properties.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp90_ = self->priv->raw_developer;
+#line 407 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp90_, "") != 0) {
+#line 3547 "Properties.c"
+ const gchar* _tmp91_ = NULL;
+ const gchar* _tmp92_ = NULL;
+#line 408 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp91_ = _ ("Developer:");
+#line 408 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp92_ = self->priv->raw_developer;
+#line 408 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp91_, _tmp92_, FALSE);
+#line 3556 "Properties.c"
+ }
+#line 412 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp93_ = self->priv->raw_assoc;
+#line 412 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp93_, "") != 0) {
+#line 3562 "Properties.c"
+ const gchar* _tmp94_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp94_ = self->priv->raw_assoc;
+#line 413 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), "", _tmp94_, FALSE);
+#line 3568 "Properties.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp97_ = self->priv->exposure;
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp97_, "") != 0) {
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp96_ = TRUE;
+#line 3576 "Properties.c"
+ } else {
+ const gchar* _tmp98_ = NULL;
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp98_ = self->priv->aperture;
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp96_ = g_strcmp0 (_tmp98_, "") != 0;
+#line 3583 "Properties.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp96_) {
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp95_ = TRUE;
+#line 3589 "Properties.c"
+ } else {
+ const gchar* _tmp99_ = NULL;
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp99_ = self->priv->iso;
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp95_ = g_strcmp0 (_tmp99_, "") != 0;
+#line 3596 "Properties.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp95_) {
+#line 3600 "Properties.c"
+ gchar* line = NULL;
+ const gchar* _tmp100_ = NULL;
+ const gchar* _tmp103_ = NULL;
+ gboolean _tmp112_ = FALSE;
+ gboolean _tmp113_ = FALSE;
+ const gchar* _tmp114_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/Properties.vala"
+ line = NULL;
+#line 419 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp100_ = self->priv->exposure;
+#line 419 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp100_, "") != 0) {
+#line 3613 "Properties.c"
+ const gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp101_ = self->priv->exposure;
+#line 420 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp102_ = g_strdup (_tmp101_);
+#line 420 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (line);
+#line 420 "/home/jens/Source/shotwell/src/Properties.vala"
+ line = _tmp102_;
+#line 3624 "Properties.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp103_ = self->priv->aperture;
+#line 422 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp103_, "") != 0) {
+#line 3630 "Properties.c"
+ const gchar* _tmp104_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp104_ = line;
+#line 423 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp104_ != NULL) {
+#line 3636 "Properties.c"
+ const gchar* _tmp105_ = NULL;
+ const gchar* _tmp106_ = NULL;
+ gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp105_ = line;
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp106_ = self->priv->aperture;
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp107_ = g_strconcat (", ", _tmp106_, NULL);
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp108_ = _tmp107_;
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp109_ = g_strconcat (_tmp105_, _tmp108_, NULL);
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (line);
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ line = _tmp109_;
+#line 424 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp108_);
+#line 3658 "Properties.c"
+ } else {
+ const gchar* _tmp110_ = NULL;
+ gchar* _tmp111_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp110_ = self->priv->aperture;
+#line 426 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp111_ = g_strdup (_tmp110_);
+#line 426 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (line);
+#line 426 "/home/jens/Source/shotwell/src/Properties.vala"
+ line = _tmp111_;
+#line 3670 "Properties.c"
+ }
+ }
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp114_ = self->priv->exposure;
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp114_, "") == 0) {
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp113_ = TRUE;
+#line 3679 "Properties.c"
+ } else {
+ const gchar* _tmp115_ = NULL;
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp115_ = self->priv->aperture;
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp113_ = g_strcmp0 (_tmp115_, "") == 0;
+#line 3686 "Properties.c"
+ }
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp113_) {
+#line 3690 "Properties.c"
+ const gchar* _tmp116_ = NULL;
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp116_ = self->priv->iso;
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp112_ = g_strcmp0 (_tmp116_, "") != 0;
+#line 3696 "Properties.c"
+ } else {
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp112_ = FALSE;
+#line 3700 "Properties.c"
+ }
+#line 430 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp112_) {
+#line 3704 "Properties.c"
+ const gchar* _tmp117_ = NULL;
+ const gchar* _tmp125_ = NULL;
+ const gchar* _tmp126_ = NULL;
+#line 431 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp117_ = line;
+#line 431 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp117_ != NULL) {
+#line 3712 "Properties.c"
+ const gchar* _tmp118_ = NULL;
+ const gchar* _tmp119_ = NULL;
+ gchar* _tmp120_ = NULL;
+ gchar* _tmp121_ = NULL;
+ gchar* _tmp122_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp118_ = line;
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp119_ = self->priv->iso;
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp120_ = g_strconcat (", " "ISO ", _tmp119_, NULL);
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp121_ = _tmp120_;
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp122_ = g_strconcat (_tmp118_, _tmp121_, NULL);
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (line);
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ line = _tmp122_;
+#line 432 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp121_);
+#line 3734 "Properties.c"
+ } else {
+ const gchar* _tmp123_ = NULL;
+ gchar* _tmp124_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp123_ = self->priv->iso;
+#line 434 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp124_ = g_strconcat ("ISO ", _tmp123_, NULL);
+#line 434 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (line);
+#line 434 "/home/jens/Source/shotwell/src/Properties.vala"
+ line = _tmp124_;
+#line 3746 "Properties.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp125_ = _ ("Exposure:");
+#line 436 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp126_ = line;
+#line 436 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp125_, _tmp126_, FALSE);
+#line 3754 "Properties.c"
+ } else {
+ const gchar* _tmp127_ = NULL;
+ const gchar* _tmp130_ = NULL;
+#line 439 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp127_ = line;
+#line 439 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp127_ != NULL) {
+#line 3762 "Properties.c"
+ const gchar* _tmp128_ = NULL;
+ const gchar* _tmp129_ = NULL;
+#line 440 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp128_ = _ ("Exposure:");
+#line 440 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp129_ = line;
+#line 440 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp128_, _tmp129_, FALSE);
+#line 3771 "Properties.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp130_ = self->priv->iso;
+#line 443 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp130_, "") != 0) {
+#line 3777 "Properties.c"
+ const gchar* _tmp131_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp131_ = line;
+#line 444 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp131_ != NULL) {
+#line 3783 "Properties.c"
+ const gchar* _tmp132_ = NULL;
+ gchar* _tmp133_ = NULL;
+ gchar* _tmp134_ = NULL;
+#line 445 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp132_ = self->priv->iso;
+#line 445 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp133_ = g_strconcat ("ISO ", _tmp132_, NULL);
+#line 445 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp134_ = _tmp133_;
+#line 445 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), "", _tmp134_, FALSE);
+#line 445 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp134_);
+#line 3797 "Properties.c"
+ } else {
+ const gchar* _tmp135_ = NULL;
+ const gchar* _tmp136_ = NULL;
+ gchar* _tmp137_ = NULL;
+ gchar* _tmp138_ = NULL;
+#line 447 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp135_ = _ ("Exposure:");
+#line 447 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp136_ = self->priv->iso;
+#line 447 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp137_ = g_strconcat ("ISO ", _tmp136_, NULL);
+#line 447 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp138_ = _tmp137_;
+#line 447 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp135_, _tmp138_, FALSE);
+#line 447 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp138_);
+#line 3815 "Properties.c"
+ }
+ }
+ }
+#line 415 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (line);
+#line 3821 "Properties.c"
+ }
+}
+
+
+static void basic_properties_class_init (BasicPropertiesClass * klass) {
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ basic_properties_parent_class = g_type_class_peek_parent (klass);
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_type_class_add_private (klass, sizeof (BasicPropertiesPrivate));
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->clear_properties = basic_properties_real_clear_properties;
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->get_single_properties = basic_properties_real_get_single_properties;
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->get_multiple_properties = basic_properties_real_get_multiple_properties;
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->get_properties = basic_properties_real_get_properties;
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->internal_update_properties = basic_properties_real_internal_update_properties;
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (klass)->finalize = basic_properties_finalize;
+#line 3843 "Properties.c"
+}
+
+
+static void basic_properties_instance_init (BasicProperties * self) {
+ time_t _tmp0_ = 0;
+ time_t _tmp1_ = 0;
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv = BASIC_PROPERTIES_GET_PRIVATE (self);
+#line 155 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = time (NULL);
+#line 155 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->start_time = _tmp0_;
+#line 156 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = time (NULL);
+#line 156 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->end_time = _tmp1_;
+#line 3860 "Properties.c"
+}
+
+
+static void basic_properties_finalize (GObject* obj) {
+ BasicProperties * self;
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BASIC_PROPERTIES, BasicProperties);
+#line 154 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->title);
+#line 161 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure);
+#line 162 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->aperture);
+#line 163 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->iso);
+#line 165 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->raw_developer);
+#line 166 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->raw_assoc);
+#line 153 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (basic_properties_parent_class)->finalize (obj);
+#line 3882 "Properties.c"
+}
+
+
+GType basic_properties_get_type (void) {
+ static volatile gsize basic_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&basic_properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (BasicPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) basic_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BasicProperties), 0, (GInstanceInitFunc) basic_properties_instance_init, NULL };
+ GType basic_properties_type_id;
+ basic_properties_type_id = g_type_register_static (TYPE_PROPERTIES, "BasicProperties", &g_define_type_info, 0);
+ g_once_init_leave (&basic_properties_type_id__volatile, basic_properties_type_id);
+ }
+ return basic_properties_type_id__volatile;
+}
+
+
+static gboolean _gtk_widget_hide_on_delete_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = gtk_widget_hide_on_delete ((GtkWidget*) self);
+#line 646 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 3903 "Properties.c"
+}
+
+
+ExtendedPropertiesWindow* extended_properties_window_construct (GType object_type, GtkWindow* owner) {
+ ExtendedPropertiesWindow * self = NULL;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ GtkWindow* _tmp4_ = NULL;
+ ExtendedPropertiesWindowExtendedProperties* _tmp5_ = NULL;
+ GtkAlignment* alignment = NULL;
+ GtkAlignment* _tmp6_ = NULL;
+ ExtendedPropertiesWindowExtendedProperties* _tmp7_ = NULL;
+ GtkBox* _tmp8_ = NULL;
+#line 632 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (owner), NULL);
+#line 634 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = gtk_settings_get_default ();
+#line 634 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 635 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = use_header;
+#line 635 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp2_) {
+#line 635 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = 1;
+#line 3932 "Properties.c"
+ } else {
+#line 635 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = 0;
+#line 3936 "Properties.c"
+ }
+#line 635 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = (ExtendedPropertiesWindow*) g_object_new (object_type, "use-header-bar", _tmp1_, NULL);
+#line 637 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) (GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK));
+#line 638 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_window_set_focus_on_map (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 639 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_window_set_accept_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 640 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 641 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = _ ("Extended Information");
+#line 641 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp3_);
+#line 642 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_window_set_position (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), GTK_WIN_POS_CENTER);
+#line 643 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = owner;
+#line 643 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp4_);
+#line 644 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_window_set_type_hint (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), GDK_WINDOW_TYPE_HINT_DIALOG);
+#line 646 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "delete-event", (GCallback) _gtk_widget_hide_on_delete_gtk_widget_delete_event, G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), 0);
+#line 648 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = extended_properties_window_extended_properties_new ();
+#line 648 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_ref_sink (_tmp5_);
+#line 648 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (self->priv->properties);
+#line 648 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->properties = _tmp5_;
+#line 649 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = (GtkAlignment*) gtk_alignment_new (0.5f, 0.5f, (gfloat) 1, (gfloat) 1);
+#line 649 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_object_ref_sink (_tmp6_);
+#line 649 "/home/jens/Source/shotwell/src/Properties.vala"
+ alignment = _tmp6_;
+#line 650 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = self->priv->properties;
+#line 650 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (alignment, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 651 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (alignment, gtk_container_get_type (), GtkContainer), (guint) 3);
+#line 652 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 652 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_box_get_type (), GtkBox), gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (alignment, gtk_widget_get_type (), GtkWidget));
+#line 632 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (alignment);
+#line 632 "/home/jens/Source/shotwell/src/Properties.vala"
+ return self;
+#line 3990 "Properties.c"
+}
+
+
+ExtendedPropertiesWindow* extended_properties_window_new (GtkWindow* owner) {
+#line 632 "/home/jens/Source/shotwell/src/Properties.vala"
+ return extended_properties_window_construct (TYPE_EXTENDED_PROPERTIES_WINDOW, owner);
+#line 3997 "Properties.c"
+}
+
+
+static gboolean extended_properties_window_real_button_press_event (GtkWidget* base, GdkEventButton* event) {
+ ExtendedPropertiesWindow * self;
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GdkEventButton* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ GdkEventButton* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GdkEventButton* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ GdkEventButton* _tmp11_ = NULL;
+ guint32 _tmp12_ = 0U;
+#line 655 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindow);
+#line 655 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 657 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = event;
+#line 657 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = _tmp0_->button;
+#line 657 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp1_ != ((guint) 1)) {
+#line 4024 "Properties.c"
+ gboolean _tmp2_ = FALSE;
+#line 658 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (GTK_WIDGET_CLASS (extended_properties_window_parent_class)->button_press_event != NULL) {
+#line 4028 "Properties.c"
+ GdkEventButton* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 658 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = event;
+#line 658 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = GTK_WIDGET_CLASS (extended_properties_window_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), gtk_widget_get_type (), GtkWidget), _tmp3_);
+#line 658 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = _tmp4_;
+#line 4037 "Properties.c"
+ } else {
+#line 658 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = TRUE;
+#line 4041 "Properties.c"
+ }
+#line 658 "/home/jens/Source/shotwell/src/Properties.vala"
+ result = _tmp2_;
+#line 658 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 4047 "Properties.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = event;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = _tmp5_->button;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = event;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = _tmp7_->x_root;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = event;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = _tmp9_->y_root;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = event;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = _tmp11_->time;
+#line 660 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_window_begin_move_drag (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), (gint) _tmp6_, (gint) _tmp8_, (gint) _tmp10_, _tmp12_);
+#line 662 "/home/jens/Source/shotwell/src/Properties.vala"
+ result = TRUE;
+#line 662 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 4071 "Properties.c"
+}
+
+
+static gboolean extended_properties_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ ExtendedPropertiesWindow * self;
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+ GdkEventKey* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 665 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindow);
+#line 665 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 667 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = event;
+#line 667 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 667 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 667 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp2_, "Escape") == 0) {
+#line 668 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 669 "/home/jens/Source/shotwell/src/Properties.vala"
+ result = TRUE;
+#line 669 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 4104 "Properties.c"
+ }
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = app_window_get_instance ();
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = _tmp3_;
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = event;
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), "key-press-event", _tmp5_, &_tmp6_);
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = _tmp6_;
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_tmp4_);
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ result = _tmp7_;
+#line 672 "/home/jens/Source/shotwell/src/Properties.vala"
+ return result;
+#line 4122 "Properties.c"
+}
+
+
+void extended_properties_window_update_properties (ExtendedPropertiesWindow* self, Page* page) {
+ ExtendedPropertiesWindowExtendedProperties* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 675 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_EXTENDED_PROPERTIES_WINDOW (self));
+#line 675 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 676 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = self->priv->properties;
+#line 676 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = page;
+#line 676 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_update_properties (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PROPERTIES, Properties), _tmp1_);
+#line 4139 "Properties.c"
+}
+
+
+static void extended_properties_window_real_show_all (GtkWidget* base) {
+ ExtendedPropertiesWindow * self;
+ ExtendedPropertiesWindowExtendedProperties* _tmp0_ = NULL;
+#line 679 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindow);
+#line 680 "/home/jens/Source/shotwell/src/Properties.vala"
+ GTK_WIDGET_CLASS (extended_properties_window_parent_class)->show_all (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), gtk_widget_get_type (), GtkWidget));
+#line 681 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = self->priv->properties;
+#line 681 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_unselect_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PROPERTIES, Properties));
+#line 682 "/home/jens/Source/shotwell/src/Properties.vala"
+ gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 4156 "Properties.c"
+}
+
+
+static gpointer _dimensions_dup0 (gpointer self) {
+#line 495 "/home/jens/Source/shotwell/src/Properties.vala"
+ return self ? dimensions_dup (self) : NULL;
+#line 4163 "Properties.c"
+}
+
+
+static void extended_properties_window_extended_properties_real_clear_properties (Properties* base) {
+ ExtendedPropertiesWindowExtendedProperties * self;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ Dimensions* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedProperties);
+#line 489 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (extended_properties_window_extended_properties_parent_class)->clear_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties));
+#line 491 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = g_strdup ("");
+#line 491 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->file_path);
+#line 491 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->file_path = _tmp0_;
+#line 492 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = g_strdup ("");
+#line 492 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->development_path);
+#line 492 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->development_path = _tmp1_;
+#line 493 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->is_raw = FALSE;
+#line 494 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->filesize = (guint64) 0;
+#line 495 "/home/jens/Source/shotwell/src/Properties.vala"
+ dimensions_init (&_tmp2_, 0, 0);
+#line 495 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = _dimensions_dup0 (&_tmp2_);
+#line 495 "/home/jens/Source/shotwell/src/Properties.vala"
+ _dimensions_free0 (self->priv->original_dim);
+#line 495 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->original_dim = _tmp3_;
+#line 496 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = g_strdup ("");
+#line 496 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->camera_make);
+#line 496 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->camera_make = _tmp4_;
+#line 497 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = g_strdup ("");
+#line 497 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->camera_model);
+#line 497 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->camera_model = _tmp5_;
+#line 498 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = g_strdup ("");
+#line 498 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->flash);
+#line 498 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->flash = _tmp6_;
+#line 499 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = g_strdup ("");
+#line 499 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->focal_length);
+#line 499 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->focal_length = _tmp7_;
+#line 500 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_lat = (gdouble) -1;
+#line 501 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = g_strdup ("");
+#line 501 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->gps_lat_ref);
+#line 501 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_lat_ref = _tmp8_;
+#line 502 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_long = (gdouble) -1;
+#line 503 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = g_strdup ("");
+#line 503 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->gps_long_ref);
+#line 503 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_long_ref = _tmp9_;
+#line 504 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = g_strdup ("");
+#line 504 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->artist);
+#line 504 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->artist = _tmp10_;
+#line 505 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = g_strdup ("");
+#line 505 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->copyright);
+#line 505 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->copyright = _tmp11_;
+#line 506 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = g_strdup ("");
+#line 506 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->software);
+#line 506 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->software = _tmp12_;
+#line 507 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = g_strdup ("");
+#line 507 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_bias);
+#line 507 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure_bias = _tmp13_;
+#line 508 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = g_strdup ("");
+#line 508 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_date);
+#line 508 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure_date = _tmp14_;
+#line 509 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = g_strdup ("");
+#line 509 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_time);
+#line 509 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure_time = _tmp15_;
+#line 510 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = g_strdup ("");
+#line 510 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->comment);
+#line 510 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->comment = _tmp16_;
+#line 4296 "Properties.c"
+}
+
+
+static void extended_properties_window_extended_properties_real_get_single_properties (Properties* base, DataView* view) {
+ ExtendedPropertiesWindowExtendedProperties * self;
+ DataView* _tmp0_ = NULL;
+ DataSource* source = NULL;
+ DataView* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedProperties);
+#line 513 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 514 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = view;
+#line 514 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (extended_properties_window_extended_properties_parent_class)->get_single_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp0_);
+#line 516 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = view;
+#line 516 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = data_view_get_source (_tmp1_);
+#line 516 "/home/jens/Source/shotwell/src/Properties.vala"
+ source = _tmp2_;
+#line 517 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = source;
+#line 517 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp3_ == NULL) {
+#line 518 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (source);
+#line 518 "/home/jens/Source/shotwell/src/Properties.vala"
+ return;
+#line 4331 "Properties.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = source;
+#line 520 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, TYPE_MEDIA_SOURCE)) {
+#line 4337 "Properties.c"
+ MediaSource* media = NULL;
+ DataSource* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ MediaSource* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ guint64 _tmp16_ = 0ULL;
+ Photo* photo = NULL;
+ MediaSource* _tmp17_ = NULL;
+ Photo* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp26_ = NULL;
+ PhotoMetadata* _tmp27_ = NULL;
+ MetadataDateTime* _tmp28_ = NULL;
+ MetadataDateTime* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ Photo* _tmp36_ = NULL;
+ PhotoFileFormat _tmp37_ = 0;
+ PhotoMetadata* _tmp38_ = NULL;
+ Dimensions* _tmp39_ = NULL;
+ PhotoMetadata* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ PhotoMetadata* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ PhotoMetadata* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ PhotoMetadata* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ PhotoMetadata* _tmp48_ = NULL;
+ gdouble _tmp49_ = 0.0;
+ gchar* _tmp50_ = NULL;
+ gdouble _tmp51_ = 0.0;
+ gchar* _tmp52_ = NULL;
+ gdouble _tmp53_ = 0.0;
+ PhotoMetadata* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ PhotoMetadata* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ PhotoMetadata* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ PhotoMetadata* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ time_t exposure_time_obj = 0;
+ PhotoMetadata* _tmp62_ = NULL;
+ MetadataDateTime* _tmp63_ = NULL;
+ MetadataDateTime* _tmp64_ = NULL;
+ time_t _tmp65_ = 0;
+ time_t _tmp66_ = 0;
+ time_t _tmp67_ = 0;
+ struct tm _tmp68_ = {0};
+ gchar* _tmp69_ = NULL;
+ time_t _tmp70_ = 0;
+ struct tm _tmp71_ = {0};
+ gchar* _tmp72_ = NULL;
+ MediaSource* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = source;
+#line 521 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 521 "/home/jens/Source/shotwell/src/Properties.vala"
+ media = _tmp6_;
+#line 522 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = media;
+#line 522 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = media_source_get_master_file (_tmp7_);
+#line 522 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = _tmp8_;
+#line 522 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = g_file_get_path (_tmp9_);
+#line 522 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->file_path);
+#line 522 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->file_path = _tmp10_;
+#line 522 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_tmp9_);
+#line 523 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = media;
+#line 523 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = media_source_get_file (_tmp11_);
+#line 523 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = _tmp12_;
+#line 523 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 523 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->development_path);
+#line 523 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->development_path = _tmp14_;
+#line 523 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (_tmp13_);
+#line 524 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = media;
+#line 524 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = media_source_get_master_filesize (_tmp15_);
+#line 524 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->filesize = _tmp16_;
+#line 529 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = media;
+#line 529 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp17_, TYPE_PHOTO) ? ((Photo*) _tmp17_) : NULL);
+#line 529 "/home/jens/Source/shotwell/src/Properties.vala"
+ photo = _tmp18_;
+#line 530 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = photo;
+#line 530 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp19_ == NULL) {
+#line 531 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (photo);
+#line 531 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (media);
+#line 531 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (source);
+#line 531 "/home/jens/Source/shotwell/src/Properties.vala"
+ return;
+#line 4459 "Properties.c"
+ }
+ {
+ PhotoMetadata* _tmp20_ = NULL;
+ Photo* _tmp21_ = NULL;
+ PhotoMetadata* _tmp22_ = NULL;
+ PhotoMetadata* _tmp23_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = photo;
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = photo_get_master_metadata (_tmp21_, &_inner_error_);
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = _tmp22_;
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4474 "Properties.c"
+ goto __catch422_g_error;
+ }
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = _tmp20_;
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (metadata);
+#line 540 "/home/jens/Source/shotwell/src/Properties.vala"
+ metadata = _tmp23_;
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (_tmp20_);
+#line 4487 "Properties.c"
+ }
+ goto __finally422;
+ __catch422_g_error:
+ {
+ GError* e = NULL;
+ Photo* _tmp24_ = NULL;
+ PhotoMetadata* _tmp25_ = NULL;
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ e = _inner_error_;
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ _inner_error_ = NULL;
+#line 542 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = photo;
+#line 542 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp25_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 542 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (metadata);
+#line 542 "/home/jens/Source/shotwell/src/Properties.vala"
+ metadata = _tmp25_;
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_error_free0 (e);
+#line 4509 "Properties.c"
+ }
+ __finally422:
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (metadata);
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (photo);
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (media);
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (source);
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_clear_error (&_inner_error_);
+#line 535 "/home/jens/Source/shotwell/src/Properties.vala"
+ return;
+#line 4528 "Properties.c"
+ }
+#line 545 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp26_ = metadata;
+#line 545 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp26_ == NULL) {
+#line 546 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (metadata);
+#line 546 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (photo);
+#line 546 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (media);
+#line 546 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (source);
+#line 546 "/home/jens/Source/shotwell/src/Properties.vala"
+ return;
+#line 4544 "Properties.c"
+ }
+#line 553 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp27_ = metadata;
+#line 553 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp28_ = photo_metadata_get_exposure_date_time (_tmp27_);
+#line 553 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp29_ = _tmp28_;
+#line 553 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp30_ = _tmp29_ == NULL;
+#line 553 "/home/jens/Source/shotwell/src/Properties.vala"
+ _metadata_date_time_unref0 (_tmp29_);
+#line 553 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp30_) {
+#line 4558 "Properties.c"
+ PhotoMetadata* _tmp31_ = NULL;
+ Photo* _tmp32_ = NULL;
+ time_t _tmp33_ = 0;
+ MetadataDateTime* _tmp34_ = NULL;
+ MetadataDateTime* _tmp35_ = NULL;
+#line 554 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp31_ = metadata;
+#line 554 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = photo;
+#line 554 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp33_ = media_source_get_timestamp (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 554 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = metadata_date_time_new (_tmp33_);
+#line 554 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp35_ = _tmp34_;
+#line 554 "/home/jens/Source/shotwell/src/Properties.vala"
+ photo_metadata_set_exposure_date_time (_tmp31_, _tmp35_, PHOTO_METADATA_SET_OPTION_ALL_DOMAINS);
+#line 554 "/home/jens/Source/shotwell/src/Properties.vala"
+ _metadata_date_time_unref0 (_tmp35_);
+#line 4578 "Properties.c"
+ }
+#line 556 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp36_ = photo;
+#line 556 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp37_ = photo_get_master_file_format (_tmp36_);
+#line 556 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->is_raw = _tmp37_ == PHOTO_FILE_FORMAT_RAW;
+#line 557 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp38_ = metadata;
+#line 557 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp39_ = photo_metadata_get_pixel_dimensions (_tmp38_);
+#line 557 "/home/jens/Source/shotwell/src/Properties.vala"
+ _dimensions_free0 (self->priv->original_dim);
+#line 557 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->original_dim = _tmp39_;
+#line 558 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp40_ = metadata;
+#line 558 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp41_ = photo_metadata_get_camera_make (_tmp40_);
+#line 558 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->camera_make);
+#line 558 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->camera_make = _tmp41_;
+#line 559 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp42_ = metadata;
+#line 559 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp43_ = photo_metadata_get_camera_model (_tmp42_);
+#line 559 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->camera_model);
+#line 559 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->camera_model = _tmp43_;
+#line 560 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = metadata;
+#line 560 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp45_ = photo_metadata_get_flash_string (_tmp44_);
+#line 560 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->flash);
+#line 560 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->flash = _tmp45_;
+#line 561 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp46_ = metadata;
+#line 561 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp47_ = photo_metadata_get_focal_length_string (_tmp46_);
+#line 561 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->focal_length);
+#line 561 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->focal_length = _tmp47_;
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp48_ = metadata;
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ photo_metadata_get_gps (_tmp48_, &_tmp49_, &_tmp50_, &_tmp51_, &_tmp52_, &_tmp53_);
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_long = _tmp49_;
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->gps_long_ref);
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_long_ref = _tmp50_;
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_lat = _tmp51_;
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->gps_lat_ref);
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_lat_ref = _tmp52_;
+#line 562 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->gps_alt = _tmp53_;
+#line 563 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp54_ = metadata;
+#line 563 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp55_ = photo_metadata_get_artist (_tmp54_);
+#line 563 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->artist);
+#line 563 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->artist = _tmp55_;
+#line 564 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp56_ = metadata;
+#line 564 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp57_ = photo_metadata_get_copyright (_tmp56_);
+#line 564 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->copyright);
+#line 564 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->copyright = _tmp57_;
+#line 565 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp58_ = metadata;
+#line 565 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp59_ = photo_metadata_get_software (_tmp58_);
+#line 565 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->software);
+#line 565 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->software = _tmp59_;
+#line 566 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp60_ = metadata;
+#line 566 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp61_ = photo_metadata_get_exposure_bias (_tmp60_);
+#line 566 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_bias);
+#line 566 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure_bias = _tmp61_;
+#line 567 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp62_ = metadata;
+#line 567 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp63_ = photo_metadata_get_exposure_date_time (_tmp62_);
+#line 567 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp64_ = _tmp63_;
+#line 567 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp65_ = metadata_date_time_get_timestamp (_tmp64_);
+#line 567 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp66_ = _tmp65_;
+#line 567 "/home/jens/Source/shotwell/src/Properties.vala"
+ _metadata_date_time_unref0 (_tmp64_);
+#line 567 "/home/jens/Source/shotwell/src/Properties.vala"
+ exposure_time_obj = _tmp66_;
+#line 568 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp67_ = exposure_time_obj;
+#line 568 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_time_local (_tmp67_, &_tmp68_);
+#line 568 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp69_ = properties_get_prettyprint_date (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), &_tmp68_);
+#line 568 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_date);
+#line 568 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure_date = _tmp69_;
+#line 569 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp70_ = exposure_time_obj;
+#line 569 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_time_local (_tmp70_, &_tmp71_);
+#line 569 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp72_ = properties_get_prettyprint_time_with_seconds (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), &_tmp71_);
+#line 569 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_time);
+#line 569 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->exposure_time = _tmp72_;
+#line 570 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp73_ = media;
+#line 570 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp74_ = media_source_get_comment (_tmp73_);
+#line 570 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->comment);
+#line 570 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->comment = _tmp74_;
+#line 520 "/home/jens/Source/shotwell/src/Properties.vala"
+ _media_metadata_unref0 (metadata);
+#line 520 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (photo);
+#line 520 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (media);
+#line 4724 "Properties.c"
+ } else {
+ DataSource* _tmp75_ = NULL;
+#line 571 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp75_ = source;
+#line 571 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp75_, TYPE_EVENT_SOURCE)) {
+#line 4731 "Properties.c"
+ Event* event = NULL;
+ DataSource* _tmp76_ = NULL;
+ Event* _tmp77_ = NULL;
+ Event* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp76_ = source;
+#line 572 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp77_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, TYPE_EVENT, Event));
+#line 572 "/home/jens/Source/shotwell/src/Properties.vala"
+ event = _tmp77_;
+#line 573 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp78_ = event;
+#line 573 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp79_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, TYPE_EVENT_SOURCE, EventSource));
+#line 573 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->comment);
+#line 573 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->comment = _tmp79_;
+#line 571 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (event);
+#line 4753 "Properties.c"
+ }
+ }
+#line 513 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (source);
+#line 4758 "Properties.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 4771 "Properties.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 4802 "Properties.c"
+ goto __catch423_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4811 "Properties.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 4827 "Properties.c"
+ goto __catch423_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4838 "Properties.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 4852 "Properties.c"
+ }
+ goto __finally423;
+ __catch423_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 4866 "Properties.c"
+ }
+ __finally423:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 4877 "Properties.c"
+ }
+}
+
+
+static void extended_properties_window_extended_properties_real_internal_update_properties (Properties* base, Page* page) {
+ ExtendedPropertiesWindowExtendedProperties * self;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ gboolean _tmp113_ = FALSE;
+ const gchar* _tmp114_ = NULL;
+ gboolean has_comment = FALSE;
+ const gchar* _tmp116_ = NULL;
+ gboolean _tmp117_ = FALSE;
+ const gchar* _tmp119_ = NULL;
+ gboolean _tmp120_ = FALSE;
+#line 577 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedProperties);
+#line 577 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 578 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp0_ = page;
+#line 578 "/home/jens/Source/shotwell/src/Properties.vala"
+ PROPERTIES_CLASS (extended_properties_window_extended_properties_parent_class)->internal_update_properties (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp0_);
+#line 580 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp1_ = page;
+#line 580 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_EVENTS_DIRECTORY_PAGE)) {
+#line 4905 "Properties.c"
+ } else {
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ guint64 _tmp11_ = 0ULL;
+ const gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ Dimensions* _tmp21_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ const gchar* _tmp33_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ const gchar* _tmp39_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ const gchar* _tmp45_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ gboolean _tmp50_ = FALSE;
+ const gchar* _tmp51_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ const gchar* _tmp57_ = NULL;
+ const gchar* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ const gchar* _tmp63_ = NULL;
+ const gchar* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+ gboolean _tmp68_ = FALSE;
+ const gchar* _tmp69_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ gboolean _tmp74_ = FALSE;
+ gboolean _tmp75_ = FALSE;
+ gdouble _tmp76_ = 0.0;
+ const gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ gboolean _tmp85_ = FALSE;
+ gboolean _tmp86_ = FALSE;
+ gdouble _tmp87_ = 0.0;
+ const gchar* _tmp94_ = NULL;
+ const gchar* _tmp95_ = NULL;
+ gboolean _tmp96_ = FALSE;
+ const gchar* _tmp97_ = NULL;
+ const gchar* _tmp100_ = NULL;
+ const gchar* _tmp101_ = NULL;
+ gboolean _tmp102_ = FALSE;
+ const gchar* _tmp103_ = NULL;
+ const gchar* _tmp106_ = NULL;
+ const gchar* _tmp107_ = NULL;
+ gboolean _tmp108_ = FALSE;
+ const gchar* _tmp109_ = NULL;
+ const gchar* _tmp112_ = NULL;
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp4_ = self->priv->file_path;
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp4_, "") != 0) {
+#line 4973 "Properties.c"
+ const gchar* _tmp5_ = NULL;
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp5_ = self->priv->file_path;
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = _tmp5_ != NULL;
+#line 4979 "Properties.c"
+ } else {
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp3_ = FALSE;
+#line 4983 "Properties.c"
+ }
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp3_) {
+#line 4987 "Properties.c"
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 584 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp6_ = self->priv->file_path;
+#line 584 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp7_ = string_replace (_tmp6_, "&", "&amp;");
+#line 584 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp2_);
+#line 584 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = _tmp7_;
+#line 4998 "Properties.c"
+ } else {
+ gchar* _tmp8_ = NULL;
+#line 584 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp8_ = g_strdup (EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE);
+#line 584 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp2_);
+#line 584 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp2_ = _tmp8_;
+#line 5007 "Properties.c"
+ }
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp9_ = _ ("Location:");
+#line 583 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp9_, _tmp2_, FALSE);
+#line 586 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp11_ = self->priv->filesize;
+#line 586 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp11_ > ((guint64) 0)) {
+#line 5017 "Properties.c"
+ guint64 _tmp12_ = 0ULL;
+ gchar* _tmp13_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp12_ = self->priv->filesize;
+#line 587 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp13_ = g_format_size_full ((guint64) ((gint64) _tmp12_), G_FORMAT_SIZE_DEFAULT);
+#line 587 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp10_);
+#line 587 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = _tmp13_;
+#line 5028 "Properties.c"
+ } else {
+ gchar* _tmp14_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp14_ = g_strdup (EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE);
+#line 587 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp10_);
+#line 587 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp10_ = _tmp14_;
+#line 5037 "Properties.c"
+ }
+#line 586 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp15_ = _ ("File size:");
+#line 586 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp15_, _tmp10_, FALSE);
+#line 589 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp16_ = self->priv->is_raw;
+#line 589 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp16_) {
+#line 5047 "Properties.c"
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 590 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp17_ = _ ("Current Development:");
+#line 590 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp18_ = self->priv->development_path;
+#line 590 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp17_, _tmp18_, FALSE);
+#line 5056 "Properties.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp21_ = self->priv->original_dim;
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp21_ != NULL) {
+#line 5062 "Properties.c"
+ Dimensions* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp22_ = self->priv->original_dim;
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp23_ = dimensions_has_area (_tmp22_);
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = _tmp23_;
+#line 5071 "Properties.c"
+ } else {
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp20_ = FALSE;
+#line 5075 "Properties.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp20_) {
+#line 5079 "Properties.c"
+ Dimensions* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ Dimensions* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gchar* _tmp28_ = NULL;
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp24_ = self->priv->original_dim;
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp25_ = (*_tmp24_).width;
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp26_ = self->priv->original_dim;
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp27_ = (*_tmp26_).height;
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp28_ = g_strdup_printf ("%d &#215; %d", _tmp25_, _tmp27_);
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp19_);
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = _tmp28_;
+#line 5099 "Properties.c"
+ } else {
+ gchar* _tmp29_ = NULL;
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp29_ = g_strdup (EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE);
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp19_);
+#line 593 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp19_ = _tmp29_;
+#line 5108 "Properties.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp30_ = _ ("Original dimensions:");
+#line 592 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp30_, _tmp19_, FALSE);
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp33_ = self->priv->camera_make;
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp33_, "") != 0) {
+#line 5118 "Properties.c"
+ const gchar* _tmp34_ = NULL;
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp34_ = self->priv->camera_make;
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = _tmp34_ != NULL;
+#line 5124 "Properties.c"
+ } else {
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp32_ = FALSE;
+#line 5128 "Properties.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp32_) {
+#line 5132 "Properties.c"
+ const gchar* _tmp35_ = NULL;
+#line 596 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp35_ = self->priv->camera_make;
+#line 596 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp31_ = _tmp35_;
+#line 5138 "Properties.c"
+ } else {
+#line 596 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp31_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5142 "Properties.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp36_ = _ ("Camera make:");
+#line 595 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp36_, _tmp31_, FALSE);
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp39_ = self->priv->camera_model;
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp39_, "") != 0) {
+#line 5152 "Properties.c"
+ const gchar* _tmp40_ = NULL;
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp40_ = self->priv->camera_model;
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp38_ = _tmp40_ != NULL;
+#line 5158 "Properties.c"
+ } else {
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp38_ = FALSE;
+#line 5162 "Properties.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp38_) {
+#line 5166 "Properties.c"
+ const gchar* _tmp41_ = NULL;
+#line 599 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp41_ = self->priv->camera_model;
+#line 599 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp37_ = _tmp41_;
+#line 5172 "Properties.c"
+ } else {
+#line 599 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp37_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5176 "Properties.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp42_ = _ ("Camera model:");
+#line 598 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp42_, _tmp37_, FALSE);
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp45_ = self->priv->flash;
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp45_, "") != 0) {
+#line 5186 "Properties.c"
+ const gchar* _tmp46_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp46_ = self->priv->flash;
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = _tmp46_ != NULL;
+#line 5192 "Properties.c"
+ } else {
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp44_ = FALSE;
+#line 5196 "Properties.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp44_) {
+#line 5200 "Properties.c"
+ const gchar* _tmp47_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp47_ = self->priv->flash;
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp43_ = _tmp47_;
+#line 5206 "Properties.c"
+ } else {
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp43_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5210 "Properties.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp48_ = _ ("Flash:");
+#line 601 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp48_, _tmp43_, FALSE);
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp51_ = self->priv->focal_length;
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp51_, "") != 0) {
+#line 5220 "Properties.c"
+ const gchar* _tmp52_ = NULL;
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp52_ = self->priv->focal_length;
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp50_ = _tmp52_ != NULL;
+#line 5226 "Properties.c"
+ } else {
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp50_ = FALSE;
+#line 5230 "Properties.c"
+ }
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp50_) {
+#line 5234 "Properties.c"
+ const gchar* _tmp53_ = NULL;
+#line 604 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp53_ = self->priv->focal_length;
+#line 604 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp49_ = _tmp53_;
+#line 5240 "Properties.c"
+ } else {
+#line 604 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp49_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5244 "Properties.c"
+ }
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp54_ = _ ("Focal length:");
+#line 603 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp54_, _tmp49_, FALSE);
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp57_ = self->priv->exposure_date;
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp57_, "") != 0) {
+#line 5254 "Properties.c"
+ const gchar* _tmp58_ = NULL;
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp58_ = self->priv->exposure_date;
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp56_ = _tmp58_ != NULL;
+#line 5260 "Properties.c"
+ } else {
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp56_ = FALSE;
+#line 5264 "Properties.c"
+ }
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp56_) {
+#line 5268 "Properties.c"
+ const gchar* _tmp59_ = NULL;
+#line 607 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp59_ = self->priv->exposure_date;
+#line 607 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp55_ = _tmp59_;
+#line 5274 "Properties.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp55_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5278 "Properties.c"
+ }
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp60_ = _ ("Exposure date:");
+#line 606 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp60_, _tmp55_, FALSE);
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp63_ = self->priv->exposure_time;
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp63_, "") != 0) {
+#line 5288 "Properties.c"
+ const gchar* _tmp64_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp64_ = self->priv->exposure_time;
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp62_ = _tmp64_ != NULL;
+#line 5294 "Properties.c"
+ } else {
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp62_ = FALSE;
+#line 5298 "Properties.c"
+ }
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp62_) {
+#line 5302 "Properties.c"
+ const gchar* _tmp65_ = NULL;
+#line 610 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp65_ = self->priv->exposure_time;
+#line 610 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp61_ = _tmp65_;
+#line 5308 "Properties.c"
+ } else {
+#line 610 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp61_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5312 "Properties.c"
+ }
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp66_ = _ ("Exposure time:");
+#line 609 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp66_, _tmp61_, FALSE);
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp69_ = self->priv->exposure_bias;
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp69_, "") != 0) {
+#line 5322 "Properties.c"
+ const gchar* _tmp70_ = NULL;
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp70_ = self->priv->exposure_bias;
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp68_ = _tmp70_ != NULL;
+#line 5328 "Properties.c"
+ } else {
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp68_ = FALSE;
+#line 5332 "Properties.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp68_) {
+#line 5336 "Properties.c"
+ const gchar* _tmp71_ = NULL;
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp71_ = self->priv->exposure_bias;
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp67_ = _tmp71_;
+#line 5342 "Properties.c"
+ } else {
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp67_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5346 "Properties.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp72_ = _ ("Exposure bias:");
+#line 612 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp72_, _tmp67_, FALSE);
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp76_ = self->priv->gps_lat;
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp76_ != ((gdouble) -1)) {
+#line 5356 "Properties.c"
+ const gchar* _tmp77_ = NULL;
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp77_ = self->priv->gps_lat_ref;
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp75_ = g_strcmp0 (_tmp77_, "") != 0;
+#line 5362 "Properties.c"
+ } else {
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp75_ = FALSE;
+#line 5366 "Properties.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp75_) {
+#line 5370 "Properties.c"
+ const gchar* _tmp78_ = NULL;
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp78_ = self->priv->gps_lat_ref;
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp74_ = _tmp78_ != NULL;
+#line 5376 "Properties.c"
+ } else {
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp74_ = FALSE;
+#line 5380 "Properties.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp74_) {
+#line 5384 "Properties.c"
+ gdouble _tmp79_ = 0.0;
+ const gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp79_ = self->priv->gps_lat;
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp80_ = self->priv->gps_lat_ref;
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp81_ = g_strdup_printf ("%f °%s", _tmp79_, _tmp80_);
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp73_);
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp73_ = _tmp81_;
+#line 5398 "Properties.c"
+ } else {
+ gchar* _tmp82_ = NULL;
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp82_ = g_strdup (EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE);
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp73_);
+#line 615 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp73_ = _tmp82_;
+#line 5407 "Properties.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp83_ = _ ("GPS latitude:");
+#line 614 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp83_, _tmp73_, FALSE);
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp87_ = self->priv->gps_long;
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp87_ != ((gdouble) -1)) {
+#line 5417 "Properties.c"
+ const gchar* _tmp88_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp88_ = self->priv->gps_long_ref;
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp86_ = g_strcmp0 (_tmp88_, "") != 0;
+#line 5423 "Properties.c"
+ } else {
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp86_ = FALSE;
+#line 5427 "Properties.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp86_) {
+#line 5431 "Properties.c"
+ const gchar* _tmp89_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp89_ = self->priv->gps_long_ref;
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp85_ = _tmp89_ != NULL;
+#line 5437 "Properties.c"
+ } else {
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp85_ = FALSE;
+#line 5441 "Properties.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp85_) {
+#line 5445 "Properties.c"
+ gdouble _tmp90_ = 0.0;
+ const gchar* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp90_ = self->priv->gps_long;
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp91_ = self->priv->gps_long_ref;
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp92_ = g_strdup_printf ("%f °%s", _tmp90_, _tmp91_);
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp84_);
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp84_ = _tmp92_;
+#line 5459 "Properties.c"
+ } else {
+ gchar* _tmp93_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp93_ = g_strdup (EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE);
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp84_);
+#line 618 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp84_ = _tmp93_;
+#line 5468 "Properties.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp94_ = _ ("GPS longitude:");
+#line 617 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp94_, _tmp84_, FALSE);
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp97_ = self->priv->artist;
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp97_, "") != 0) {
+#line 5478 "Properties.c"
+ const gchar* _tmp98_ = NULL;
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp98_ = self->priv->artist;
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp96_ = _tmp98_ != NULL;
+#line 5484 "Properties.c"
+ } else {
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp96_ = FALSE;
+#line 5488 "Properties.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp96_) {
+#line 5492 "Properties.c"
+ const gchar* _tmp99_ = NULL;
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp99_ = self->priv->artist;
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp95_ = _tmp99_;
+#line 5498 "Properties.c"
+ } else {
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp95_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5502 "Properties.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp100_ = _ ("Artist:");
+#line 620 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp100_, _tmp95_, FALSE);
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp103_ = self->priv->copyright;
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp103_, "") != 0) {
+#line 5512 "Properties.c"
+ const gchar* _tmp104_ = NULL;
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp104_ = self->priv->copyright;
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp102_ = _tmp104_ != NULL;
+#line 5518 "Properties.c"
+ } else {
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp102_ = FALSE;
+#line 5522 "Properties.c"
+ }
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp102_) {
+#line 5526 "Properties.c"
+ const gchar* _tmp105_ = NULL;
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp105_ = self->priv->copyright;
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp101_ = _tmp105_;
+#line 5532 "Properties.c"
+ } else {
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp101_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5536 "Properties.c"
+ }
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp106_ = _ ("Copyright:");
+#line 622 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp106_, _tmp101_, FALSE);
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp109_ = self->priv->software;
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp109_, "") != 0) {
+#line 5546 "Properties.c"
+ const gchar* _tmp110_ = NULL;
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp110_ = self->priv->software;
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp108_ = _tmp110_ != NULL;
+#line 5552 "Properties.c"
+ } else {
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp108_ = FALSE;
+#line 5556 "Properties.c"
+ }
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp108_) {
+#line 5560 "Properties.c"
+ const gchar* _tmp111_ = NULL;
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp111_ = self->priv->software;
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp107_ = _tmp111_;
+#line 5566 "Properties.c"
+ } else {
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp107_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5570 "Properties.c"
+ }
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp112_ = _ ("Software:");
+#line 624 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp112_, _tmp107_, FALSE);
+#line 580 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp84_);
+#line 580 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp73_);
+#line 580 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp19_);
+#line 580 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp10_);
+#line 580 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (_tmp2_);
+#line 5586 "Properties.c"
+ }
+#line 627 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp114_ = self->priv->comment;
+#line 627 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (g_strcmp0 (_tmp114_, "") != 0) {
+#line 5592 "Properties.c"
+ const gchar* _tmp115_ = NULL;
+#line 627 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp115_ = self->priv->comment;
+#line 627 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp113_ = _tmp115_ != NULL;
+#line 5598 "Properties.c"
+ } else {
+#line 627 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp113_ = FALSE;
+#line 5602 "Properties.c"
+ }
+#line 627 "/home/jens/Source/shotwell/src/Properties.vala"
+ has_comment = _tmp113_;
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp117_ = has_comment;
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ if (_tmp117_) {
+#line 5610 "Properties.c"
+ const gchar* _tmp118_ = NULL;
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp118_ = self->priv->comment;
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp116_ = _tmp118_;
+#line 5616 "Properties.c"
+ } else {
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp116_ = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_NO_VALUE;
+#line 5620 "Properties.c"
+ }
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp119_ = _ ("Comment:");
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ _tmp120_ = has_comment;
+#line 628 "/home/jens/Source/shotwell/src/Properties.vala"
+ properties_add_line (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PROPERTIES, Properties), _tmp119_, _tmp116_, _tmp120_);
+#line 5628 "Properties.c"
+}
+
+
+static ExtendedPropertiesWindowExtendedProperties* extended_properties_window_extended_properties_construct (GType object_type) {
+ ExtendedPropertiesWindowExtendedProperties * self = NULL;
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = (ExtendedPropertiesWindowExtendedProperties*) properties_construct (object_type);
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ return self;
+#line 5638 "Properties.c"
+}
+
+
+static ExtendedPropertiesWindowExtendedProperties* extended_properties_window_extended_properties_new (void) {
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ return extended_properties_window_extended_properties_construct (EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES);
+#line 5645 "Properties.c"
+}
+
+
+static void extended_properties_window_extended_properties_class_init (ExtendedPropertiesWindowExtendedPropertiesClass * klass) {
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ extended_properties_window_extended_properties_parent_class = g_type_class_peek_parent (klass);
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_type_class_add_private (klass, sizeof (ExtendedPropertiesWindowExtendedPropertiesPrivate));
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->clear_properties = extended_properties_window_extended_properties_real_clear_properties;
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->get_single_properties = extended_properties_window_extended_properties_real_get_single_properties;
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((PropertiesClass *) klass)->internal_update_properties = extended_properties_window_extended_properties_real_internal_update_properties;
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (klass)->finalize = extended_properties_window_extended_properties_finalize;
+#line 5662 "Properties.c"
+}
+
+
+static void extended_properties_window_extended_properties_instance_init (ExtendedPropertiesWindowExtendedProperties * self) {
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv = EXTENDED_PROPERTIES_WINDOW_EXTENDED_PROPERTIES_GET_PRIVATE (self);
+#line 5669 "Properties.c"
+}
+
+
+static void extended_properties_window_extended_properties_finalize (GObject* obj) {
+ ExtendedPropertiesWindowExtendedProperties * self;
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EXTENDED_PROPERTIES_WINDOW_TYPE_EXTENDED_PROPERTIES, ExtendedPropertiesWindowExtendedProperties);
+#line 460 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->file_path);
+#line 462 "/home/jens/Source/shotwell/src/Properties.vala"
+ _dimensions_free0 (self->priv->original_dim);
+#line 463 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->camera_make);
+#line 464 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->camera_model);
+#line 465 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->flash);
+#line 466 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->focal_length);
+#line 468 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->gps_lat_ref);
+#line 470 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->gps_long_ref);
+#line 472 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->artist);
+#line 473 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->copyright);
+#line 474 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->software);
+#line 475 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_bias);
+#line 476 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_date);
+#line 477 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->exposure_time);
+#line 479 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->development_path);
+#line 486 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_free0 (self->priv->comment);
+#line 457 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (extended_properties_window_extended_properties_parent_class)->finalize (obj);
+#line 5711 "Properties.c"
+}
+
+
+static GType extended_properties_window_extended_properties_get_type (void) {
+ static volatile gsize extended_properties_window_extended_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&extended_properties_window_extended_properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ExtendedPropertiesWindowExtendedPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) extended_properties_window_extended_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExtendedPropertiesWindowExtendedProperties), 0, (GInstanceInitFunc) extended_properties_window_extended_properties_instance_init, NULL };
+ GType extended_properties_window_extended_properties_type_id;
+ extended_properties_window_extended_properties_type_id = g_type_register_static (TYPE_PROPERTIES, "ExtendedPropertiesWindowExtendedProperties", &g_define_type_info, 0);
+ g_once_init_leave (&extended_properties_window_extended_properties_type_id__volatile, extended_properties_window_extended_properties_type_id);
+ }
+ return extended_properties_window_extended_properties_type_id__volatile;
+}
+
+
+static void extended_properties_window_class_init (ExtendedPropertiesWindowClass * klass) {
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ extended_properties_window_parent_class = g_type_class_peek_parent (klass);
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ g_type_class_add_private (klass, sizeof (ExtendedPropertiesWindowPrivate));
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((GtkWidgetClass *) klass)->button_press_event = extended_properties_window_real_button_press_event;
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = extended_properties_window_real_key_press_event;
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ ((GtkWidgetClass *) klass)->show_all = extended_properties_window_real_show_all;
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (klass)->finalize = extended_properties_window_finalize;
+#line 5740 "Properties.c"
+}
+
+
+static void extended_properties_window_instance_init (ExtendedPropertiesWindow * self) {
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv = EXTENDED_PROPERTIES_WINDOW_GET_PRIVATE (self);
+#line 455 "/home/jens/Source/shotwell/src/Properties.vala"
+ self->priv->properties = NULL;
+#line 5749 "Properties.c"
+}
+
+
+static void extended_properties_window_finalize (GObject* obj) {
+ ExtendedPropertiesWindow * self;
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindow);
+#line 455 "/home/jens/Source/shotwell/src/Properties.vala"
+ _g_object_unref0 (self->priv->properties);
+#line 454 "/home/jens/Source/shotwell/src/Properties.vala"
+ G_OBJECT_CLASS (extended_properties_window_parent_class)->finalize (obj);
+#line 5761 "Properties.c"
+}
+
+
+GType extended_properties_window_get_type (void) {
+ static volatile gsize extended_properties_window_type_id__volatile = 0;
+ if (g_once_init_enter (&extended_properties_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ExtendedPropertiesWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) extended_properties_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ExtendedPropertiesWindow), 0, (GInstanceInitFunc) extended_properties_window_instance_init, NULL };
+ GType extended_properties_window_type_id;
+ extended_properties_window_type_id = g_type_register_static (gtk_dialog_get_type (), "ExtendedPropertiesWindow", &g_define_type_info, 0);
+ g_once_init_leave (&extended_properties_window_type_id__volatile, extended_properties_window_type_id);
+ }
+ return extended_properties_window_type_id__volatile;
+}
+
+
+
diff --git a/src/Resources.c b/src/Resources.c
new file mode 100644
index 0000000..e97ed4c
--- /dev/null
+++ b/src/Resources.c
@@ -0,0 +1,4359 @@
+/* Resources.c generated by valac 0.32.1, the Vala compiler
+ * generated from Resources.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* defined by ./configure or Makefile and included by gcc -D*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <locale.h>
+#include <gdk/gdk.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RATING_FILTER (rating_filter_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _gtk_icon_set_unref0(var) ((var == NULL) ? NULL : (var = (gtk_icon_set_unref (var), NULL)))
+#define _gtk_icon_info_free0(var) ((var == NULL) ? NULL : (var = (gtk_icon_info_free (var), NULL)))
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RATING_FILTER_NO_FILTER = 0,
+ RATING_FILTER_REJECTED_OR_HIGHER = 1,
+ RATING_FILTER_UNRATED_OR_HIGHER = 2,
+ RATING_FILTER_ONE_OR_HIGHER = 3,
+ RATING_FILTER_TWO_OR_HIGHER = 4,
+ RATING_FILTER_THREE_OR_HIGHER = 5,
+ RATING_FILTER_FOUR_OR_HIGHER = 6,
+ RATING_FILTER_FIVE_OR_HIGHER = 7,
+ RATING_FILTER_REJECTED_ONLY = 8,
+ RATING_FILTER_UNRATED_ONLY = 9,
+ RATING_FILTER_ONE_ONLY = 10,
+ RATING_FILTER_TWO_ONLY = 11,
+ RATING_FILTER_THREE_ONLY = 12,
+ RATING_FILTER_FOUR_ONLY = 13,
+ RATING_FILTER_FIVE_ONLY = 14
+} RatingFilter;
+
+typedef void (*ResourcesAddStockIconModify) (GdkPixbuf* pixbuf, void* user_data);
+
+extern gchar* resources_RATE_ONE_MENU;
+extern gchar* resources_RATE_TWO_MENU;
+extern gchar* resources_RATE_THREE_MENU;
+extern gchar* resources_RATE_FOUR_MENU;
+extern gchar* resources_RATE_FIVE_MENU;
+extern gchar* resources_RATE_ONE_LABEL;
+extern gchar* resources_RATE_TWO_LABEL;
+extern gchar* resources_RATE_THREE_LABEL;
+extern gchar* resources_RATE_FOUR_LABEL;
+extern gchar* resources_RATE_FIVE_LABEL;
+extern gchar* resources_DISPLAY_ONE_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_TWO_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_THREE_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_FOUR_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_FIVE_OR_HIGHER_TOOLTIP;
+extern gchar* resources_RATE_ONE_PROGRESS;
+extern gchar* resources_RATE_TWO_PROGRESS;
+extern gchar* resources_RATE_THREE_PROGRESS;
+extern gchar* resources_RATE_FOUR_PROGRESS;
+extern gchar* resources_RATE_FIVE_PROGRESS;
+extern gchar* resources_RATE_ONE_TOOLTIP;
+extern gchar* resources_RATE_TWO_TOOLTIP;
+extern gchar* resources_RATE_THREE_TOOLTIP;
+extern gchar* resources_RATE_FOUR_TOOLTIP;
+extern gchar* resources_RATE_FIVE_TOOLTIP;
+extern gchar* resources_DISPLAY_ONE_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_TWO_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_THREE_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_FOUR_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_FIVE_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_ONE_OR_HIGHER_LABEL;
+extern gchar* resources_DISPLAY_TWO_OR_HIGHER_LABEL;
+extern gchar* resources_DISPLAY_THREE_OR_HIGHER_LABEL;
+extern gchar* resources_DISPLAY_FOUR_OR_HIGHER_LABEL;
+extern gchar* resources_DISPLAY_FIVE_OR_HIGHER_LABEL;
+gchar* resources_RATE_ONE_MENU = NULL;
+gchar* resources_RATE_ONE_LABEL = NULL;
+gchar* resources_RATE_ONE_TOOLTIP = NULL;
+gchar* resources_RATE_ONE_PROGRESS = NULL;
+gchar* resources_RATE_TWO_MENU = NULL;
+gchar* resources_RATE_TWO_LABEL = NULL;
+gchar* resources_RATE_TWO_TOOLTIP = NULL;
+gchar* resources_RATE_TWO_PROGRESS = NULL;
+gchar* resources_RATE_THREE_MENU = NULL;
+gchar* resources_RATE_THREE_LABEL = NULL;
+gchar* resources_RATE_THREE_TOOLTIP = NULL;
+gchar* resources_RATE_THREE_PROGRESS = NULL;
+gchar* resources_RATE_FOUR_MENU = NULL;
+gchar* resources_RATE_FOUR_LABEL = NULL;
+gchar* resources_RATE_FOUR_TOOLTIP = NULL;
+gchar* resources_RATE_FOUR_PROGRESS = NULL;
+gchar* resources_RATE_FIVE_MENU = NULL;
+gchar* resources_RATE_FIVE_LABEL = NULL;
+gchar* resources_RATE_FIVE_TOOLTIP = NULL;
+gchar* resources_RATE_FIVE_PROGRESS = NULL;
+gchar* resources_DISPLAY_ONE_OR_HIGHER_MENU = NULL;
+gchar* resources_DISPLAY_ONE_OR_HIGHER_LABEL = NULL;
+gchar* resources_DISPLAY_ONE_OR_HIGHER_TOOLTIP = NULL;
+gchar* resources_DISPLAY_TWO_OR_HIGHER_MENU = NULL;
+gchar* resources_DISPLAY_TWO_OR_HIGHER_LABEL = NULL;
+gchar* resources_DISPLAY_TWO_OR_HIGHER_TOOLTIP = NULL;
+gchar* resources_DISPLAY_THREE_OR_HIGHER_MENU = NULL;
+gchar* resources_DISPLAY_THREE_OR_HIGHER_LABEL = NULL;
+gchar* resources_DISPLAY_THREE_OR_HIGHER_TOOLTIP = NULL;
+gchar* resources_DISPLAY_FOUR_OR_HIGHER_MENU = NULL;
+gchar* resources_DISPLAY_FOUR_OR_HIGHER_LABEL = NULL;
+gchar* resources_DISPLAY_FOUR_OR_HIGHER_TOOLTIP = NULL;
+gchar* resources_DISPLAY_FIVE_OR_HIGHER_MENU = NULL;
+gchar* resources_DISPLAY_FIVE_OR_HIGHER_LABEL = NULL;
+gchar* resources_DISPLAY_FIVE_OR_HIGHER_TOOLTIP = NULL;
+extern GtkIconFactory* resources_factory;
+GtkIconFactory* resources_factory = NULL;
+extern GeeHashMap* resources_icon_cache;
+GeeHashMap* resources_icon_cache = NULL;
+extern GeeHashMap* resources_scaled_icon_cache;
+GeeHashMap* resources_scaled_icon_cache = NULL;
+extern gchar* resources_HH_MM_FORMAT_STRING;
+gchar* resources_HH_MM_FORMAT_STRING = NULL;
+extern gchar* resources_HH_MM_SS_FORMAT_STRING;
+gchar* resources_HH_MM_SS_FORMAT_STRING = NULL;
+extern gchar* resources_LONG_DATE_FORMAT_STRING;
+gchar* resources_LONG_DATE_FORMAT_STRING = NULL;
+extern gchar* resources_START_MULTIDAY_DATE_FORMAT_STRING;
+gchar* resources_START_MULTIDAY_DATE_FORMAT_STRING = NULL;
+extern gchar* resources_END_MULTIDAY_DATE_FORMAT_STRING;
+gchar* resources_END_MULTIDAY_DATE_FORMAT_STRING = NULL;
+extern gchar* resources_START_MULTIMONTH_DATE_FORMAT_STRING;
+gchar* resources_START_MULTIMONTH_DATE_FORMAT_STRING = NULL;
+extern gchar* resources_END_MULTIMONTH_DATE_FORMAT_STRING;
+gchar* resources_END_MULTIMONTH_DATE_FORMAT_STRING = NULL;
+extern GdkPixbuf* resources_noninterpretable_badge_pixbuf;
+GdkPixbuf* resources_noninterpretable_badge_pixbuf = NULL;
+extern GeeMap* resources_providers;
+GeeMap* resources_providers = NULL;
+
+#define RESOURCES_APP_TITLE "Shotwell"
+#define RESOURCES_APP_LIBRARY_ROLE _ ("Photo Manager")
+#define RESOURCES_APP_DIRECT_ROLE _ ("Photo Viewer")
+#define RESOURCES_APP_VERSION _VERSION
+#define RESOURCES_GIT_VERSION _GIT_VERSION
+#define RESOURCES_COPYRIGHT _ ("Copyright 2016 Software Freedom Conservancy Inc.")
+#define RESOURCES_APP_GETTEXT_PACKAGE GETTEXT_PACKAGE
+#define RESOURCES_HOME_URL "https://wiki.gnome.org/Apps/Shotwell"
+#define RESOURCES_FAQ_URL "https://wiki.gnome.org/Apps/Shotwell/FAQ"
+#define RESOURCES_BUG_DB_URL "https://wiki.gnome.org/Apps/Shotwell/ReportingABug"
+#define RESOURCES_DIR_PATTERN_URI_SYSWIDE "help:shotwell/other-files"
+#define RESOURCES_LIB _LIB
+#define RESOURCES_LIBEXECDIR _LIBEXECDIR
+#define RESOURCES_PREFIX _PREFIX
+#define RESOURCES_TRANSIENT_WINDOW_OPACITY 0.90
+#define RESOURCES_DEFAULT_ICON_SCALE 24
+#define RESOURCES_LICENSE "\n" \
+"Shotwell is free software; you can redistribute it and/or modify it un" \
+"der the \n" \
+"terms of the GNU Lesser General Public License as published by the Fre" \
+"e \n" \
+"Software Foundation; either version 2.1 of the License, or (at your op" \
+"tion) \n" \
+"any later version.\n" \
+"\n" \
+"Shotwell is distributed in the hope that it will be useful, but WITHOU" \
+"T \n" \
+"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " \
+"FITNESS\n" \
+"FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License f" \
+"or \n" \
+"more details.\n" \
+"\n" \
+"You should have received a copy of the GNU Lesser General Public Licen" \
+"se \n" \
+"along with Shotwell; if not, write to the Free Software Foundation, In" \
+"c., \n" \
+"51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n"
+#define RESOURCES_CLOCKWISE "object-rotate-right"
+#define RESOURCES_COUNTERCLOCKWISE "object-rotate-left"
+#define RESOURCES_HFLIP "object-flip-horizontal"
+#define RESOURCES_VFLIP "object-flip-vertical"
+#define RESOURCES_CROP "shotwell-crop"
+#define RESOURCES_STRAIGHTEN "shotwell-straighten"
+#define RESOURCES_REDEYE "shotwell-redeye"
+#define RESOURCES_ADJUST "image-adjust"
+#define RESOURCES_PIN_TOOLBAR "shotwell-pin-toolbar"
+#define RESOURCES_MAKE_PRIMARY "shotwell-make-primary"
+#define RESOURCES_IMPORT "shotwell-import"
+#define RESOURCES_IMPORT_ALL "shotwell-import-all"
+#define RESOURCES_ENHANCE "shotwell-auto-enhance"
+#define RESOURCES_CROP_PIVOT_RETICLE "shotwell-crop-pivot-reticle"
+#define RESOURCES_PUBLISH "applications-internet"
+#define RESOURCES_MERGE "shotwell-merge-events"
+#define RESOURCES_GO_NEXT "go-next"
+#define RESOURCES_GO_PREVIOUS "go-previous"
+#define RESOURCES_ICON_ABOUT_LOGO "shotwell-street.jpg"
+#define RESOURCES_ICON_GENERIC_PLUGIN "generic-plugin.png"
+#define RESOURCES_ICON_SLIDESHOW_EXTENSION_POINT "slideshow-extension-point"
+#define RESOURCES_ICON_RATING_REJECTED "rejected.svg"
+#define RESOURCES_ICON_RATING_ONE "one-star.svg"
+#define RESOURCES_ICON_RATING_TWO "two-stars.svg"
+#define RESOURCES_ICON_RATING_THREE "three-stars.svg"
+#define RESOURCES_ICON_RATING_FOUR "four-stars.svg"
+#define RESOURCES_ICON_RATING_FIVE "five-stars.svg"
+#define RESOURCES_ICON_FILTER_REJECTED_OR_BETTER "all-rejected.png"
+#define RESOURCES_ICON_FILTER_REJECTED_OR_BETTER_FIXED_SIZE 32
+#define RESOURCES_ICON_FILTER_UNRATED_OR_BETTER "shotwell-16.png"
+#define RESOURCES_ICON_FILTER_UNRATED_OR_BETTER_FIXED_SIZE 16
+#define RESOURCES_ICON_FILTER_ONE_OR_BETTER "one-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_TWO_OR_BETTER "two-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_THREE_OR_BETTER "three-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_FOUR_OR_BETTER "four-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_FIVE "five-star-filter.svg"
+#define RESOURCES_ICON_ZOOM_IN "zoom-in.png"
+#define RESOURCES_ICON_ZOOM_OUT "zoom-out.png"
+#define RESOURCES_ICON_ZOOM_SCALE 16
+#define RESOURCES_ICON_CAMERAS "camera-photo"
+#define RESOURCES_ICON_EVENTS "multiple-events"
+#define RESOURCES_ICON_ONE_EVENT "one-event"
+#define RESOURCES_ICON_NO_EVENT "no-event"
+#define RESOURCES_ICON_ONE_TAG "one-tag"
+#define RESOURCES_ICON_TAGS "multiple-tags"
+#define RESOURCES_ICON_FOLDER "folder"
+#define RESOURCES_ICON_FOLDER_DOCUMENTS "folder-documents"
+#define RESOURCES_ICON_IMPORTING "go-down"
+#define RESOURCES_ICON_LAST_IMPORT "document-open-recent"
+#define RESOURCES_ICON_MISSING_FILES "process-stop"
+#define RESOURCES_ICON_PHOTOS "shotwell"
+#define RESOURCES_ICON_SINGLE_PHOTO "image-x-generic"
+#define RESOURCES_ICON_FILTER_PHOTOS "filter-photos"
+#define RESOURCES_ICON_FILTER_PHOTOS_DISABLED "filter-photos-disabled"
+#define RESOURCES_ICON_FILTER_VIDEOS "filter-videos"
+#define RESOURCES_ICON_FILTER_VIDEOS_DISABLED "filter-videos-disabled"
+#define RESOURCES_ICON_FILTER_RAW "filter-raw"
+#define RESOURCES_ICON_FILTER_RAW_DISABLED "filter-raw-disabled"
+#define RESOURCES_ICON_FILTER_FLAGGED "filter-flagged"
+#define RESOURCES_ICON_FILTER_FLAGGED_DISABLED "filter-flagged-disabled"
+#define RESOURCES_ICON_TRASH_EMPTY "user-trash"
+#define RESOURCES_ICON_TRASH_FULL "user-trash-full"
+#define RESOURCES_ICON_VIDEOS_PAGE "videos-page"
+#define RESOURCES_ICON_FLAGGED_PAGE "flag-page"
+#define RESOURCES_ICON_FLAGGED_TRINKET "flag-trinket.png"
+#define RESOURCES_ROTATE_CW_MENU _ ("Rotate _Right")
+#define RESOURCES_ROTATE_CW_LABEL _ ("Rotate")
+#define RESOURCES_ROTATE_CW_FULL_LABEL _ ("Rotate Right")
+#define RESOURCES_ROTATE_CW_TOOLTIP _ ("Rotate the photos right (press Ctrl to rotate left)")
+#define RESOURCES_ROTATE_CCW_MENU _ ("Rotate _Left")
+#define RESOURCES_ROTATE_CCW_LABEL _ ("Rotate")
+#define RESOURCES_ROTATE_CCW_FULL_LABEL _ ("Rotate Left")
+#define RESOURCES_ROTATE_CCW_TOOLTIP _ ("Rotate the photos left")
+#define RESOURCES_HFLIP_MENU _ ("Flip Hori_zontally")
+#define RESOURCES_HFLIP_LABEL _ ("Flip Horizontally")
+#define RESOURCES_VFLIP_MENU _ ("Flip Verti_cally")
+#define RESOURCES_VFLIP_LABEL _ ("Flip Vertically")
+#define RESOURCES_ABOUT_LABEL _ ("_About")
+#define RESOURCES_APPLY_LABEL _ ("_Apply")
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+#define RESOURCES_DELETE_LABEL _ ("_Delete")
+#define RESOURCES_EDIT_LABEL _ ("_Edit")
+#define RESOURCES_FORWARD_LABEL _ ("_Forward")
+#define RESOURCES_FULLSCREEN_LABEL _ ("Fulls_creen")
+#define RESOURCES_HELP_LABEL _ ("_Help")
+#define RESOURCES_LEAVE_FULLSCREEN_LABEL _ ("Leave _Fullscreen")
+#define RESOURCES_NEW_LABEL _ ("_New")
+#define RESOURCES_NEXT_LABEL _ ("_Next")
+#define RESOURCES_OK_LABEL _ ("_OK")
+#define RESOURCES_PLAY_LABEL _ ("_Play")
+#define RESOURCES_PREFERENCES_LABEL _ ("_Preferences")
+#define RESOURCES_PREVIOUS_LABEL _ ("_Previous")
+#define RESOURCES_PRINT_LABEL _ ("_Print")
+#define RESOURCES_QUIT_LABEL _ ("_Quit")
+#define RESOURCES_REFRESH_LABEL _ ("_Refresh")
+#define RESOURCES_REMOVE_LABEL _ ("_Remove")
+#define RESOURCES_REVERT_TO_SAVED_LABEL _ ("_Revert")
+#define RESOURCES_SAVE_LABEL _ ("_Save")
+#define RESOURCES_SAVE_AS_LABEL _ ("Save _As")
+#define RESOURCES_SORT_ASCENDING_LABEL _ ("Sort _Ascending")
+#define RESOURCES_SORT_DESCENDING_LABEL _ ("Sort _Descending")
+#define RESOURCES_STOP_LABEL _ ("_Stop")
+#define RESOURCES_UNDELETE_LABEL _ ("_Undelete")
+#define RESOURCES_ZOOM_100_LABEL _ ("_Normal Size")
+#define RESOURCES_ZOOM_FIT_LABEL _ ("Best _Fit")
+#define RESOURCES_ZOOM_IN_LABEL _ ("Zoom _In")
+#define RESOURCES_ZOOM_OUT_LABEL _ ("Zoom _Out")
+#define RESOURCES_ENHANCE_MENU _ ("_Enhance")
+#define RESOURCES_ENHANCE_LABEL _ ("Enhance")
+#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo's appearance")
+#define RESOURCES_COPY_ADJUSTMENTS_MENU _ ("_Copy Color Adjustments")
+#define RESOURCES_COPY_ADJUSTMENTS_LABEL _ ("Copy Color Adjustments")
+#define RESOURCES_COPY_ADJUSTMENTS_TOOLTIP _ ("Copy the color adjustments applied to the photo")
+#define RESOURCES_PASTE_ADJUSTMENTS_MENU _ ("_Paste Color Adjustments")
+#define RESOURCES_PASTE_ADJUSTMENTS_LABEL _ ("Paste Color Adjustments")
+#define RESOURCES_PASTE_ADJUSTMENTS_TOOLTIP _ ("Apply copied color adjustments to the selected photos")
+#define RESOURCES_CROP_MENU _ ("_Crop")
+#define RESOURCES_CROP_LABEL _ ("Crop")
+#define RESOURCES_CROP_TOOLTIP _ ("Crop the photo's size")
+#define RESOURCES_STRAIGHTEN_MENU _ ("_Straighten")
+#define RESOURCES_STRAIGHTEN_LABEL _ ("Straighten")
+#define RESOURCES_STRAIGHTEN_TOOLTIP _ ("Straighten the photo")
+#define RESOURCES_RED_EYE_MENU _ ("_Red-eye")
+#define RESOURCES_RED_EYE_LABEL _ ("Red-eye")
+#define RESOURCES_RED_EYE_TOOLTIP _ ("Reduce or eliminate any red-eye effects in the photo")
+#define RESOURCES_ADJUST_MENU _ ("_Adjust")
+#define RESOURCES_ADJUST_LABEL _ ("Adjust")
+#define RESOURCES_ADJUST_TOOLTIP _ ("Adjust the photo's color and tone")
+#define RESOURCES_REVERT_MENU _ ("Re_vert to Original")
+#define RESOURCES_REVERT_LABEL _ ("Revert to Original")
+#define RESOURCES_REVERT_EDITABLE_MENU _ ("Revert External E_dits")
+#define RESOURCES_REVERT_EDITABLE_TOOLTIP _ ("Revert to the master photo")
+#define RESOURCES_SET_BACKGROUND_MENU _ ("Set as _Desktop Background")
+#define RESOURCES_SET_BACKGROUND_TOOLTIP _ ("Set selected image to be the new desktop background")
+#define RESOURCES_SET_BACKGROUND_SLIDESHOW_MENU _ ("Set as _Desktop Slideshow...")
+#define RESOURCES_UNDO_MENU _ ("_Undo")
+#define RESOURCES_UNDO_LABEL _ ("Undo")
+#define RESOURCES_REDO_MENU _ ("_Redo")
+#define RESOURCES_REDO_LABEL _ ("Redo")
+#define RESOURCES_RENAME_EVENT_MENU _ ("Re_name Event...")
+#define RESOURCES_RENAME_EVENT_LABEL _ ("Rename Event")
+#define RESOURCES_MAKE_KEY_PHOTO_MENU _ ("Make _Key Photo for Event")
+#define RESOURCES_MAKE_KEY_PHOTO_LABEL _ ("Make Key Photo for Event")
+#define RESOURCES_NEW_EVENT_MENU _ ("_New Event")
+#define RESOURCES_NEW_EVENT_LABEL _ ("New Event")
+#define RESOURCES_SET_PHOTO_EVENT_LABEL _ ("Move Photos")
+#define RESOURCES_SET_PHOTO_EVENT_TOOLTIP _ ("Move photos to an event")
+#define RESOURCES_MERGE_MENU _ ("_Merge Events")
+#define RESOURCES_MERGE_LABEL _ ("Merge")
+#define RESOURCES_MERGE_TOOLTIP _ ("Combine events into a single event")
+#define RESOURCES_RATING_MENU _ ("_Set Rating")
+#define RESOURCES_RATING_LABEL _ ("Set Rating")
+#define RESOURCES_RATING_TOOLTIP _ ("Change the rating of your photo")
+#define RESOURCES_INCREASE_RATING_MENU _ ("_Increase")
+#define RESOURCES_INCREASE_RATING_LABEL _ ("Increase Rating")
+#define RESOURCES_DECREASE_RATING_MENU _ ("_Decrease")
+#define RESOURCES_DECREASE_RATING_LABEL _ ("Decrease Rating")
+#define RESOURCES_RATE_UNRATED_MENU _ ("_Unrated")
+#define RESOURCES_RATE_UNRATED_COMBO_BOX _ ("Unrated")
+#define RESOURCES_RATE_UNRATED_LABEL _ ("Rate Unrated")
+#define RESOURCES_RATE_UNRATED_PROGRESS _ ("Setting as unrated")
+#define RESOURCES_RATE_UNRATED_TOOLTIP _ ("Remove any ratings")
+#define RESOURCES_RATE_REJECTED_MENU _ ("_Rejected")
+#define RESOURCES_RATE_REJECTED_COMBO_BOX _ ("Rejected")
+#define RESOURCES_RATE_REJECTED_LABEL _ ("Rate Rejected")
+#define RESOURCES_RATE_REJECTED_PROGRESS _ ("Setting as rejected")
+#define RESOURCES_RATE_REJECTED_TOOLTIP _ ("Set rating to rejected")
+#define RESOURCES_DISPLAY_REJECTED_ONLY_MENU _ ("Rejected _Only")
+#define RESOURCES_DISPLAY_REJECTED_ONLY_LABEL _ ("Rejected Only")
+#define RESOURCES_DISPLAY_REJECTED_ONLY_TOOLTIP _ ("Show only rejected photos")
+#define RESOURCES_DISPLAY_REJECTED_OR_HIGHER_MENU _ ("All + _Rejected")
+#define RESOURCES_DISPLAY_REJECTED_OR_HIGHER_TOOLTIP "Show all photos, including rejected"
+#define RESOURCES_DISPLAY_UNRATED_OR_HIGHER_MENU _ ("_All Photos")
+#define RESOURCES_DISPLAY_UNRATED_OR_HIGHER_TOOLTIP _ ("Show all photos")
+#define RESOURCES_VIEW_RATINGS_MENU _ ("_Ratings")
+#define RESOURCES_VIEW_RATINGS_TOOLTIP _ ("Display each photo's rating")
+#define RESOURCES_FILTER_PHOTOS_MENU _ ("_Filter Photos")
+#define RESOURCES_FILTER_PHOTOS_LABEL _ ("Filter Photos")
+#define RESOURCES_FILTER_PHOTOS_TOOLTIP _ ("Limit the number of photos displayed based on a filter")
+#define RESOURCES_DUPLICATE_PHOTO_MENU _ ("_Duplicate")
+#define RESOURCES_DUPLICATE_PHOTO_LABEL _ ("Duplicate")
+#define RESOURCES_DUPLICATE_PHOTO_TOOLTIP _ ("Make a duplicate of the photo")
+#define RESOURCES_EXPORT_MENU _ ("_Export...")
+#define RESOURCES_PRINT_MENU _ ("_Print...")
+#define RESOURCES_PUBLISH_MENU _ ("Pu_blish...")
+#define RESOURCES_PUBLISH_LABEL _ ("Publish")
+#define RESOURCES_PUBLISH_TOOLTIP _ ("Publish to various websites")
+#define RESOURCES_EDIT_TITLE_MENU _ ("Edit _Title...")
+#define RESOURCES_EDIT_TITLE_LABEL "Edit Title"
+#define RESOURCES_EDIT_COMMENT_MENU _ ("Edit _Comment...")
+#define RESOURCES_EDIT_COMMENT_LABEL _ ("Edit Comment")
+#define RESOURCES_EDIT_EVENT_COMMENT_MENU _ ("Edit Event _Comment...")
+#define RESOURCES_EDIT_EVENT_COMMENT_LABEL _ ("Edit Event Comment")
+#define RESOURCES_ADJUST_DATE_TIME_MENU _ ("_Adjust Date and Time...")
+#define RESOURCES_ADJUST_DATE_TIME_LABEL _ ("Adjust Date and Time")
+#define RESOURCES_ADD_TAGS_MENU _ ("Add _Tags...")
+#define RESOURCES_ADD_TAGS_CONTEXT_MENU _ ("_Add Tags...")
+#define RESOURCES_ADD_TAGS_TITLE "Add Tags"
+#define RESOURCES_PREFERENCES_MENU _ ("_Preferences")
+#define RESOURCES_EXTERNAL_EDIT_MENU _ ("Open With E_xternal Editor")
+#define RESOURCES_EXTERNAL_EDIT_RAW_MENU _ ("Open With RA_W Editor")
+#define RESOURCES_SEND_TO_MENU _ ("Send _To...")
+#define RESOURCES_SEND_TO_CONTEXT_MENU _ ("Send T_o...")
+#define RESOURCES_FIND_MENU _ ("_Find...")
+#define RESOURCES_FIND_LABEL _ ("Find")
+#define RESOURCES_FIND_TOOLTIP _ ("Find an image by typing text that appears in its name or tags")
+#define RESOURCES_FLAG_MENU _ ("_Flag")
+#define RESOURCES_UNFLAG_MENU _ ("Un_flag")
+gchar* resources_launch_editor_failed (GError* err);
+gchar* resources_add_tags_label (gchar** names, int names_length1);
+gchar* hierarchical_tag_utilities_get_basename (const gchar* in_path);
+gchar* resources_delete_tag_menu (const gchar* name);
+gchar* resources_delete_tag_label (const gchar* name);
+#define RESOURCES_DELETE_TAG_TITLE _ ("Delete Tag")
+#define RESOURCES_DELETE_TAG_SIDEBAR_MENU _ ("_Delete")
+#define RESOURCES_NEW_CHILD_TAG_SIDEBAR_MENU _ ("_New")
+gchar* resources_rename_tag_menu (const gchar* name);
+gchar* resources_rename_tag_label (const gchar* old_name, const gchar* new_name);
+#define RESOURCES_RENAME_TAG_SIDEBAR_MENU _ ("_Rename...")
+#define RESOURCES_MODIFY_TAGS_MENU _ ("Modif_y Tags...")
+#define RESOURCES_MODIFY_TAGS_LABEL _ ("Modify Tags")
+gchar* resources_tag_photos_label (const gchar* name, gint count);
+gchar* resources_tag_photos_tooltip (const gchar* name, gint count);
+gchar* resources_untag_photos_menu (const gchar* name, gint count);
+gchar* resources_untag_photos_label (const gchar* name, gint count);
+gchar* resources_rename_tag_exists_message (const gchar* name);
+gchar* resources_rename_search_exists_message (const gchar* name);
+#define RESOURCES_DEFAULT_SAVED_SEARCH_NAME _ ("Saved Search")
+#define RESOURCES_DELETE_SAVED_SEARCH_DIALOG_TITLE _ ("Delete Search")
+#define RESOURCES_DELETE_SEARCH_MENU _ ("_Delete")
+#define RESOURCES_EDIT_SEARCH_MENU _ ("_Edit...")
+#define RESOURCES_RENAME_SEARCH_MENU _ ("Re_name...")
+gchar* resources_rename_search_label (const gchar* old_name, const gchar* new_name);
+gchar* resources_delete_search_label (const gchar* name);
+GType rating_get_type (void) G_GNUC_CONST;
+const gchar* resources_rating_menu (Rating rating);
+const gchar* resources_rating_label (Rating rating);
+const gchar* resources_rating_combo_box (Rating rating);
+GType rating_filter_get_type (void) G_GNUC_CONST;
+gchar* resources_get_rating_filter_tooltip (RatingFilter filter);
+gchar* resources_rating_progress (Rating rating);
+gchar* resources_get_stars (Rating rating);
+GdkPixbuf* resources_get_rating_trinket (Rating rating, gint scale);
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+void resources_generate_rating_strings (void);
+#define RESOURCES_DELETE_PHOTOS_MENU _ ("_Delete")
+#define RESOURCES_DELETE_FROM_TRASH_TOOLTIP _ ("Remove the selected photos from the trash")
+#define RESOURCES_DELETE_FROM_LIBRARY_TOOLTIP _ ("Remove the selected photos from the library")
+#define RESOURCES_RESTORE_PHOTOS_MENU _ ("_Restore")
+#define RESOURCES_RESTORE_PHOTOS_TOOLTIP _ ("Move the selected photos back into the library")
+#define RESOURCES_JUMP_TO_FILE_MENU _ ("Show in File Mana_ger")
+#define RESOURCES_JUMP_TO_FILE_TOOLTIP _ ("Open the selected photo's directory in the file manager")
+gchar* resources_jump_to_file_failed (GError* err);
+#define RESOURCES_REMOVE_FROM_LIBRARY_MENU _ ("R_emove From Library")
+#define RESOURCES_MOVE_TO_TRASH_MENU _ ("_Move to Trash")
+#define RESOURCES_SELECT_ALL_MENU _ ("Select _All")
+#define RESOURCES_SELECT_ALL_TOOLTIP _ ("Select all items")
+void resources_init (void);
+GFile* app_dirs_get_resources_dir (void);
+void resources_add_stock_icon (GFile* file, const gchar* stock_id);
+void resources_add_stock_icon_from_themed_icon (GThemedIcon* gicon, const gchar* stock_id, ResourcesAddStockIconModify modify, void* modify_target);
+void dim_pixbuf (GdkPixbuf* pixbuf);
+static void _dim_pixbuf_resources_add_stock_icon_modify (GdkPixbuf* pixbuf, gpointer self);
+void resources_terminate (void);
+void resources_fetch_lc_time_format (void);
+gchar* resources_get_hh_mm_format_string (void);
+gchar* resources_get_hh_mm_ss_format_string (void);
+gchar* resources_get_long_date_format_string (void);
+gchar* resources_get_start_multiday_span_format_string (void);
+gchar* resources_get_end_multiday_span_format_string (void);
+gchar* resources_get_start_multimonth_span_format_string (void);
+gchar* resources_get_end_multimonth_span_format_string (void);
+GFile* resources_get_ui (const gchar* filename);
+#define RESOURCES_NONINTERPRETABLE_BADGE_FILE "noninterpretable-video.png"
+GdkPixbuf* resources_get_noninterpretable_badge_pixbuf (void);
+GtkIconTheme* resources_get_icon_theme_engine (void);
+GdkPixbuf* resources_load_icon (const gchar* name, gint scale);
+GdkPixbuf* scale_pixbuf (GdkPixbuf* pixbuf, gint scale, GdkInterpType interp, gboolean scale_up);
+gchar* resources_get_help_path (void);
+GFile* app_dirs_get_exec_dir (void);
+void resources_launch_help (GdkScreen* screen, const gchar* anchor, GError** error);
+void sys_show_uri (GdkScreen* screen, const gchar* uri, GError** error);
+gchar* resources_to_css_color (GdkRGBA* color);
+#define RESOURCES_ALL_DATA -1
+void resources_style_widget (GtkWidget* widget, const gchar* stylesheet);
+#define RESOURCES_CUSTOM_CSS "LibraryWindow * {\n" \
+" -GtkPaned-handle-size: 1;\n" \
+" }\n" \
+" LibraryWindow .pane-separator {\n" \
+" background-color: @borders;\n" \
+" }\n" \
+" SearchFilterToolbar {\n" \
+" border-width: 0 0 1px 0;\n" \
+" border-style: solid;\n" \
+" border-color: @borders;\n" \
+" }"
+#define RESOURCES_ONIMAGE_FONT_COLOR "#000000"
+#define RESOURCES_ONIMAGE_FONT_BACKGROUND "rgba(255,255,255,0.5)"
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+const gchar* RESOURCES_AUTHORS[6] = {"Jim Nelson <jim@yorba.org>", "Lucas Beeler <lucas@yorba.org>", "Allison Barlow <allison@yorba.org>", "Eric Gregory <eric@yorba.org>", "Clinton Rogers <clinton@yorba.org>", NULL};
+const gint RESOURCES_rating_thresholds[6] = {0, 1, 25, 50, 75, 99};
+
+gchar* resources_launch_editor_failed (GError* err) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ GError* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Unable to launch editor: %s");
+#line 335 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = err;
+#line 335 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = _tmp1_->message;
+#line 335 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_strdup_printf (_tmp0_, _tmp2_);
+#line 335 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 335 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 490 "Resources.c"
+}
+
+
+gchar* resources_add_tags_label (gchar** names, int names_length1) {
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 339 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = names;
+#line 339 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0__length1 = names_length1;
+#line 339 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0__length1 == 1) {
+#line 504 "Resources.c"
+ const gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _ ("Add Tag \"%s\"");
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = names;
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2__length1 = names_length1;
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_[0];
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = hierarchical_tag_utilities_get_basename (_tmp3_);
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = _tmp4_;
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_strdup_printf (_tmp1_, _tmp5_);
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = _tmp6_;
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp5_);
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp7_;
+#line 340 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 535 "Resources.c"
+ } else {
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 341 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = names;
+#line 341 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8__length1 = names_length1;
+#line 341 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp8__length1 == 2) {
+#line 545 "Resources.c"
+ const gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = _ ("Add Tags \"%s\" and \"%s\"");
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = names;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10__length1 = names_length1;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = _tmp10_[0];
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = hierarchical_tag_utilities_get_basename (_tmp11_);
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = _tmp12_;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = names;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14__length1 = names_length1;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = _tmp14_[1];
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = hierarchical_tag_utilities_get_basename (_tmp15_);
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = _tmp16_;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = g_strdup_printf (_tmp9_, _tmp13_, _tmp17_);
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = _tmp18_;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp17_);
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp13_);
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp19_;
+#line 343 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 593 "Resources.c"
+ } else {
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = C_ ("UndoRedo menu entry", "Add Tags");
+#line 348 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = g_strdup (_tmp20_);
+#line 348 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp21_;
+#line 348 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 605 "Resources.c"
+ }
+ }
+}
+
+
+gchar* resources_delete_tag_menu (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 352 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 353 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("_Delete Tag \"%s\"");
+#line 353 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = name;
+#line 353 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 353 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 353 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 628 "Resources.c"
+}
+
+
+gchar* resources_delete_tag_label (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 356 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 357 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Delete Tag \"%s\"");
+#line 357 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = name;
+#line 357 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 357 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 357 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 649 "Resources.c"
+}
+
+
+gchar* resources_rename_tag_menu (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 366 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Re_name Tag \"%s\"...");
+#line 366 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = name;
+#line 366 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 366 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 366 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 670 "Resources.c"
+}
+
+
+gchar* resources_rename_tag_label (const gchar* old_name, const gchar* new_name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (old_name != NULL, NULL);
+#line 369 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (new_name != NULL, NULL);
+#line 370 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Rename Tag \"%s\" to \"%s\"");
+#line 370 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = old_name;
+#line 370 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = new_name;
+#line 370 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_strdup_printf (_tmp0_, _tmp1_, _tmp2_);
+#line 370 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 370 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 696 "Resources.c"
+}
+
+
+gchar* resources_tag_photos_label (const gchar* name, gint count) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 378 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = count;
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp1_ == 1) {
+#line 712 "Resources.c"
+ const gchar* _tmp2_ = NULL;
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = _ ("Tag Photo as \"%s\"");
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp2_;
+#line 718 "Resources.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _ ("Tag Photos as \"%s\"");
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp3_;
+#line 725 "Resources.c"
+ }
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = name;
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_strdup_printf (_tmp0_, _tmp4_);
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 379 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 735 "Resources.c"
+}
+
+
+gchar* resources_tag_photos_tooltip (const gchar* name, gint count) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 382 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = count;
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp1_ == 1) {
+#line 751 "Resources.c"
+ const gchar* _tmp2_ = NULL;
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = _ ("Tag the selected photo as \"%s\"");
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp2_;
+#line 757 "Resources.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 384 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _ ("Tag the selected photos as \"%s\"");
+#line 384 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp3_;
+#line 764 "Resources.c"
+ }
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = name;
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_strdup_printf (_tmp0_, _tmp4_);
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 383 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 774 "Resources.c"
+}
+
+
+gchar* resources_untag_photos_menu (const gchar* name, gint count) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 387 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = count;
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp1_ == 1) {
+#line 790 "Resources.c"
+ const gchar* _tmp2_ = NULL;
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = _ ("Remove Tag \"%s\" From _Photo");
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp2_;
+#line 796 "Resources.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 389 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _ ("Remove Tag \"%s\" From _Photos");
+#line 389 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp3_;
+#line 803 "Resources.c"
+ }
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = name;
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_strdup_printf (_tmp0_, _tmp4_);
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 388 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 813 "Resources.c"
+}
+
+
+gchar* resources_untag_photos_label (const gchar* name, gint count) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = count;
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp1_ == 1) {
+#line 829 "Resources.c"
+ const gchar* _tmp2_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = _ ("Remove Tag \"%s\" From Photo");
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp2_;
+#line 835 "Resources.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _ ("Remove Tag \"%s\" From Photos");
+#line 394 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp3_;
+#line 842 "Resources.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = name;
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_strdup_printf (_tmp0_, _tmp4_);
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 393 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 852 "Resources.c"
+}
+
+
+gchar* resources_rename_tag_exists_message (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 398 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Unable to rename tag to \"%s\" because the tag already exists.");
+#line 398 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = name;
+#line 398 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 398 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 398 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 873 "Resources.c"
+}
+
+
+gchar* resources_rename_search_exists_message (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 401 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 402 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Unable to rename search to \"%s\" because the search already exists.");
+#line 402 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = name;
+#line 402 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 402 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 402 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 894 "Resources.c"
+}
+
+
+gchar* resources_rename_search_label (const gchar* old_name, const gchar* new_name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (old_name != NULL, NULL);
+#line 413 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (new_name != NULL, NULL);
+#line 414 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Rename Search \"%s\" to \"%s\"");
+#line 414 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = old_name;
+#line 414 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = new_name;
+#line 414 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_strdup_printf (_tmp0_, _tmp1_, _tmp2_);
+#line 414 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 414 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 920 "Resources.c"
+}
+
+
+gchar* resources_delete_search_label (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 417 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 418 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Delete Search \"%s\"");
+#line 418 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = name;
+#line 418 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup_printf (_tmp0_, _tmp1_);
+#line 418 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 418 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 941 "Resources.c"
+}
+
+
+const gchar* resources_rating_menu (Rating rating) {
+ const gchar* result = NULL;
+ Rating _tmp0_ = 0;
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = rating;
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ switch (_tmp0_) {
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_REJECTED:
+#line 954 "Resources.c"
+ {
+#line 424 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_REJECTED_MENU;
+#line 424 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 960 "Resources.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_UNRATED:
+#line 964 "Resources.c"
+ {
+#line 426 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_UNRATED_MENU;
+#line 426 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 970 "Resources.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_ONE:
+#line 974 "Resources.c"
+ {
+ const gchar* _tmp1_ = NULL;
+#line 428 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_RATE_ONE_MENU;
+#line 428 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp1_;
+#line 428 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 983 "Resources.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_TWO:
+#line 987 "Resources.c"
+ {
+ const gchar* _tmp2_ = NULL;
+#line 430 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = resources_RATE_TWO_MENU;
+#line 430 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 430 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 996 "Resources.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_THREE:
+#line 1000 "Resources.c"
+ {
+ const gchar* _tmp3_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = resources_RATE_THREE_MENU;
+#line 432 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 432 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1009 "Resources.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FOUR:
+#line 1013 "Resources.c"
+ {
+ const gchar* _tmp4_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = resources_RATE_FOUR_MENU;
+#line 434 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp4_;
+#line 434 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1022 "Resources.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FIVE:
+#line 1026 "Resources.c"
+ {
+ const gchar* _tmp5_ = NULL;
+#line 436 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = resources_RATE_FIVE_MENU;
+#line 436 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 436 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1035 "Resources.c"
+ }
+ default:
+ {
+#line 438 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_UNRATED_MENU;
+#line 438 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1043 "Resources.c"
+ }
+ }
+}
+
+
+const gchar* resources_rating_label (Rating rating) {
+ const gchar* result = NULL;
+ Rating _tmp0_ = 0;
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = rating;
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ switch (_tmp0_) {
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_REJECTED:
+#line 1058 "Resources.c"
+ {
+#line 445 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_REJECTED_LABEL;
+#line 445 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1064 "Resources.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_UNRATED:
+#line 1068 "Resources.c"
+ {
+#line 447 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_UNRATED_LABEL;
+#line 447 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1074 "Resources.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_ONE:
+#line 1078 "Resources.c"
+ {
+ const gchar* _tmp1_ = NULL;
+#line 449 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_RATE_ONE_LABEL;
+#line 449 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp1_;
+#line 449 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1087 "Resources.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_TWO:
+#line 1091 "Resources.c"
+ {
+ const gchar* _tmp2_ = NULL;
+#line 451 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = resources_RATE_TWO_LABEL;
+#line 451 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 451 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1100 "Resources.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_THREE:
+#line 1104 "Resources.c"
+ {
+ const gchar* _tmp3_ = NULL;
+#line 453 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = resources_RATE_THREE_LABEL;
+#line 453 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 453 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1113 "Resources.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FOUR:
+#line 1117 "Resources.c"
+ {
+ const gchar* _tmp4_ = NULL;
+#line 455 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = resources_RATE_FOUR_LABEL;
+#line 455 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp4_;
+#line 455 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1126 "Resources.c"
+ }
+#line 443 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FIVE:
+#line 1130 "Resources.c"
+ {
+ const gchar* _tmp5_ = NULL;
+#line 457 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = resources_RATE_FIVE_LABEL;
+#line 457 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 457 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1139 "Resources.c"
+ }
+ default:
+ {
+#line 459 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_UNRATED_LABEL;
+#line 459 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1147 "Resources.c"
+ }
+ }
+}
+
+
+const gchar* resources_rating_combo_box (Rating rating) {
+ const gchar* result = NULL;
+ Rating _tmp0_ = 0;
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = rating;
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ switch (_tmp0_) {
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_REJECTED:
+#line 1162 "Resources.c"
+ {
+#line 466 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_REJECTED_COMBO_BOX;
+#line 466 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1168 "Resources.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_UNRATED:
+#line 1172 "Resources.c"
+ {
+#line 468 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_UNRATED_COMBO_BOX;
+#line 468 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1178 "Resources.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_ONE:
+#line 1182 "Resources.c"
+ {
+ const gchar* _tmp1_ = NULL;
+#line 470 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_RATE_ONE_MENU;
+#line 470 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp1_;
+#line 470 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1191 "Resources.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_TWO:
+#line 1195 "Resources.c"
+ {
+ const gchar* _tmp2_ = NULL;
+#line 472 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = resources_RATE_TWO_MENU;
+#line 472 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 472 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1204 "Resources.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_THREE:
+#line 1208 "Resources.c"
+ {
+ const gchar* _tmp3_ = NULL;
+#line 474 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = resources_RATE_THREE_MENU;
+#line 474 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 474 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1217 "Resources.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FOUR:
+#line 1221 "Resources.c"
+ {
+ const gchar* _tmp4_ = NULL;
+#line 476 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = resources_RATE_FOUR_MENU;
+#line 476 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp4_;
+#line 476 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1230 "Resources.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FIVE:
+#line 1234 "Resources.c"
+ {
+ const gchar* _tmp5_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = resources_RATE_FIVE_MENU;
+#line 478 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 478 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1243 "Resources.c"
+ }
+ default:
+ {
+#line 480 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = RESOURCES_RATE_UNRATED_MENU;
+#line 480 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1251 "Resources.c"
+ }
+ }
+}
+
+
+gchar* resources_get_rating_filter_tooltip (RatingFilter filter) {
+ gchar* result = NULL;
+ RatingFilter _tmp0_ = 0;
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = filter;
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ switch (_tmp0_) {
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_REJECTED_OR_HIGHER:
+#line 1266 "Resources.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 487 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = g_strdup (RESOURCES_DISPLAY_REJECTED_OR_HIGHER_TOOLTIP);
+#line 487 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp1_;
+#line 487 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1275 "Resources.c"
+ }
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_ONE_OR_HIGHER:
+#line 1279 "Resources.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 490 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = resources_DISPLAY_ONE_OR_HIGHER_TOOLTIP;
+#line 490 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 490 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 490 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1291 "Resources.c"
+ }
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_TWO_OR_HIGHER:
+#line 1295 "Resources.c"
+ {
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 493 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = resources_DISPLAY_TWO_OR_HIGHER_TOOLTIP;
+#line 493 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 493 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 493 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1307 "Resources.c"
+ }
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_THREE_OR_HIGHER:
+#line 1311 "Resources.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 496 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = resources_DISPLAY_THREE_OR_HIGHER_TOOLTIP;
+#line 496 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 496 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp7_;
+#line 496 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1323 "Resources.c"
+ }
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_FOUR_OR_HIGHER:
+#line 1327 "Resources.c"
+ {
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = resources_DISPLAY_FOUR_OR_HIGHER_TOOLTIP;
+#line 499 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 499 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp9_;
+#line 499 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1339 "Resources.c"
+ }
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_FIVE_ONLY:
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_FIVE_OR_HIGHER:
+#line 1345 "Resources.c"
+ {
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = resources_DISPLAY_FIVE_OR_HIGHER_TOOLTIP;
+#line 503 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 503 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp11_;
+#line 503 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1357 "Resources.c"
+ }
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_REJECTED_ONLY:
+#line 1361 "Resources.c"
+ {
+ gchar* _tmp12_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = g_strdup (RESOURCES_DISPLAY_REJECTED_ONLY_TOOLTIP);
+#line 506 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp12_;
+#line 506 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1370 "Resources.c"
+ }
+ default:
+#line 485 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FILTER_UNRATED_OR_HIGHER:
+#line 1375 "Resources.c"
+ {
+ gchar* _tmp13_ = NULL;
+#line 510 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = g_strdup (RESOURCES_DISPLAY_UNRATED_OR_HIGHER_TOOLTIP);
+#line 510 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp13_;
+#line 510 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1384 "Resources.c"
+ }
+ }
+}
+
+
+gchar* resources_rating_progress (Rating rating) {
+ gchar* result = NULL;
+ Rating _tmp0_ = 0;
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = rating;
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ switch (_tmp0_) {
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_REJECTED:
+#line 1399 "Resources.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 517 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = g_strdup (RESOURCES_RATE_REJECTED_PROGRESS);
+#line 517 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp1_;
+#line 517 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1408 "Resources.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_UNRATED:
+#line 1412 "Resources.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 519 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (RESOURCES_RATE_UNRATED_PROGRESS);
+#line 519 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 519 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1421 "Resources.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_ONE:
+#line 1425 "Resources.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = resources_RATE_ONE_PROGRESS;
+#line 521 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 521 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp4_;
+#line 521 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1437 "Resources.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_TWO:
+#line 1441 "Resources.c"
+ {
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 523 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = resources_RATE_TWO_PROGRESS;
+#line 523 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 523 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp6_;
+#line 523 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1453 "Resources.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_THREE:
+#line 1457 "Resources.c"
+ {
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = resources_RATE_THREE_PROGRESS;
+#line 525 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 525 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp8_;
+#line 525 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1469 "Resources.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FOUR:
+#line 1473 "Resources.c"
+ {
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 527 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = resources_RATE_FOUR_PROGRESS;
+#line 527 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 527 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp10_;
+#line 527 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1485 "Resources.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FIVE:
+#line 1489 "Resources.c"
+ {
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 529 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = resources_RATE_FIVE_PROGRESS;
+#line 529 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 529 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp12_;
+#line 529 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1501 "Resources.c"
+ }
+ default:
+ {
+ gchar* _tmp13_ = NULL;
+#line 531 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = g_strdup (RESOURCES_RATE_UNRATED_PROGRESS);
+#line 531 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp13_;
+#line 531 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1512 "Resources.c"
+ }
+ }
+}
+
+
+gchar* resources_get_stars (Rating rating) {
+ gchar* result = NULL;
+ Rating _tmp0_ = 0;
+#line 538 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = rating;
+#line 538 "/home/jens/Source/shotwell/src/Resources.vala"
+ switch (_tmp0_) {
+#line 538 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_ONE:
+#line 1527 "Resources.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = g_strdup ("\xE2\x98\x85");
+#line 540 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp1_;
+#line 540 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1536 "Resources.c"
+ }
+#line 538 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_TWO:
+#line 1540 "Resources.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 542 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup ("\xE2\x98\x85\xE2\x98\x85");
+#line 542 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 542 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1549 "Resources.c"
+ }
+#line 538 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_THREE:
+#line 1553 "Resources.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 544 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_strdup ("\xE2\x98\x85\xE2\x98\x85\xE2\x98\x85");
+#line 544 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 544 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1562 "Resources.c"
+ }
+#line 538 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FOUR:
+#line 1566 "Resources.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 546 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = g_strdup ("\xE2\x98\x85\xE2\x98\x85\xE2\x98\x85\xE2\x98\x85");
+#line 546 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp4_;
+#line 546 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1575 "Resources.c"
+ }
+#line 538 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FIVE:
+#line 1579 "Resources.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 548 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_strdup ("\xE2\x98\x85\xE2\x98\x85\xE2\x98\x85\xE2\x98\x85\xE2\x98\x85");
+#line 548 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp5_;
+#line 548 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1588 "Resources.c"
+ }
+ default:
+ {
+ gchar* _tmp6_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_strdup ("");
+#line 550 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp6_;
+#line 550 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1599 "Resources.c"
+ }
+ }
+}
+
+
+GdkPixbuf* resources_get_rating_trinket (Rating rating, gint scale) {
+ GdkPixbuf* result = NULL;
+ Rating _tmp0_ = 0;
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = rating;
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ switch (_tmp0_) {
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_REJECTED:
+#line 1614 "Resources.c"
+ {
+ gint _tmp1_ = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = scale;
+#line 557 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = resources_get_icon (RESOURCES_ICON_RATING_REJECTED, _tmp1_);
+#line 557 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 557 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1626 "Resources.c"
+ }
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_ONE:
+#line 1630 "Resources.c"
+ {
+ gint _tmp3_ = 0;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 560 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = scale;
+#line 560 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = resources_get_icon (RESOURCES_ICON_RATING_ONE, _tmp3_);
+#line 560 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp4_;
+#line 560 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1642 "Resources.c"
+ }
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_TWO:
+#line 1646 "Resources.c"
+ {
+ gint _tmp5_ = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 562 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = scale;
+#line 562 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = resources_get_icon (RESOURCES_ICON_RATING_TWO, _tmp5_ * 2);
+#line 562 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp6_;
+#line 562 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1658 "Resources.c"
+ }
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_THREE:
+#line 1662 "Resources.c"
+ {
+ gint _tmp7_ = 0;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = scale;
+#line 564 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = resources_get_icon (RESOURCES_ICON_RATING_THREE, _tmp7_ * 3);
+#line 564 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp8_;
+#line 564 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1674 "Resources.c"
+ }
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FOUR:
+#line 1678 "Resources.c"
+ {
+ gint _tmp9_ = 0;
+ GdkPixbuf* _tmp10_ = NULL;
+#line 566 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = scale;
+#line 566 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = resources_get_icon (RESOURCES_ICON_RATING_FOUR, _tmp9_ * 4);
+#line 566 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp10_;
+#line 566 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1690 "Resources.c"
+ }
+#line 555 "/home/jens/Source/shotwell/src/Resources.vala"
+ case RATING_FIVE:
+#line 1694 "Resources.c"
+ {
+ gint _tmp11_ = 0;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 568 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = scale;
+#line 568 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = resources_get_icon (RESOURCES_ICON_RATING_FIVE, _tmp11_ * 5);
+#line 568 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp12_;
+#line 568 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1706 "Resources.c"
+ }
+ default:
+ {
+#line 570 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = NULL;
+#line 570 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 1714 "Resources.c"
+ }
+ }
+}
+
+
+void resources_generate_rating_strings (void) {
+ gchar* menu_base = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* label_base = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* tooltip_base = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* progress_base = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* display_rating_menu_base = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* display_rating_label_base = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* display_rating_tooltip_base = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* display_rating_or_higher_menu_base = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* display_rating_or_higher_label_base = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* display_rating_or_higher_tooltip_base = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ gchar* _tmp91_ = NULL;
+ gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ gchar* _tmp94_ = NULL;
+ gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ gchar* _tmp98_ = NULL;
+ gchar* _tmp99_ = NULL;
+ gchar* _tmp100_ = NULL;
+ gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+ gchar* _tmp104_ = NULL;
+ gchar* _tmp105_ = NULL;
+ gchar* _tmp106_ = NULL;
+ gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ gchar* _tmp111_ = NULL;
+ gchar* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ gchar* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ gchar* _tmp120_ = NULL;
+ gchar* _tmp121_ = NULL;
+ gchar* _tmp122_ = NULL;
+#line 575 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = g_strdup ("%s");
+#line 575 "/home/jens/Source/shotwell/src/Resources.vala"
+ menu_base = _tmp0_;
+#line 576 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _ ("Rate %s");
+#line 576 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 576 "/home/jens/Source/shotwell/src/Resources.vala"
+ label_base = _tmp2_;
+#line 577 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _ ("Set rating to %s");
+#line 577 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 577 "/home/jens/Source/shotwell/src/Resources.vala"
+ tooltip_base = _tmp4_;
+#line 578 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = _ ("Setting rating to %s");
+#line 578 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 578 "/home/jens/Source/shotwell/src/Resources.vala"
+ progress_base = _tmp6_;
+#line 579 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = g_strdup ("%s");
+#line 579 "/home/jens/Source/shotwell/src/Resources.vala"
+ display_rating_menu_base = _tmp7_;
+#line 580 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = _ ("Display %s");
+#line 580 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 580 "/home/jens/Source/shotwell/src/Resources.vala"
+ display_rating_label_base = _tmp9_;
+#line 581 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = _ ("Only show photos with a rating of %s");
+#line 581 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 581 "/home/jens/Source/shotwell/src/Resources.vala"
+ display_rating_tooltip_base = _tmp11_;
+#line 582 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = _ ("%s or Better");
+#line 582 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 582 "/home/jens/Source/shotwell/src/Resources.vala"
+ display_rating_or_higher_menu_base = _tmp13_;
+#line 583 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = _ ("Display %s or Better");
+#line 583 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 583 "/home/jens/Source/shotwell/src/Resources.vala"
+ display_rating_or_higher_label_base = _tmp15_;
+#line 584 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = _ ("Only show photos with a rating of %s or better");
+#line 584 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 584 "/home/jens/Source/shotwell/src/Resources.vala"
+ display_rating_or_higher_tooltip_base = _tmp17_;
+#line 586 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = resources_get_stars (RATING_ONE);
+#line 586 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = _tmp18_;
+#line 586 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = g_strdup_printf (menu_base, _tmp19_);
+#line 586 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_ONE_MENU);
+#line 586 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_ONE_MENU = _tmp20_;
+#line 586 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp19_);
+#line 587 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = resources_get_stars (RATING_TWO);
+#line 587 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp22_ = _tmp21_;
+#line 587 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp23_ = g_strdup_printf (menu_base, _tmp22_);
+#line 587 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_TWO_MENU);
+#line 587 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_TWO_MENU = _tmp23_;
+#line 587 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp22_);
+#line 588 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp24_ = resources_get_stars (RATING_THREE);
+#line 588 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp25_ = _tmp24_;
+#line 588 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp26_ = g_strdup_printf (menu_base, _tmp25_);
+#line 588 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_THREE_MENU);
+#line 588 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_THREE_MENU = _tmp26_;
+#line 588 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp25_);
+#line 589 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp27_ = resources_get_stars (RATING_FOUR);
+#line 589 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp28_ = _tmp27_;
+#line 589 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp29_ = g_strdup_printf (menu_base, _tmp28_);
+#line 589 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FOUR_MENU);
+#line 589 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FOUR_MENU = _tmp29_;
+#line 589 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp28_);
+#line 590 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp30_ = resources_get_stars (RATING_FIVE);
+#line 590 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp31_ = _tmp30_;
+#line 590 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp32_ = g_strdup_printf (menu_base, _tmp31_);
+#line 590 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FIVE_MENU);
+#line 590 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FIVE_MENU = _tmp32_;
+#line 590 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp31_);
+#line 592 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp33_ = resources_get_stars (RATING_ONE);
+#line 592 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp34_ = _tmp33_;
+#line 592 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp35_ = g_strdup_printf (label_base, _tmp34_);
+#line 592 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_ONE_LABEL);
+#line 592 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_ONE_LABEL = _tmp35_;
+#line 592 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp34_);
+#line 593 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp36_ = resources_get_stars (RATING_TWO);
+#line 593 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp37_ = _tmp36_;
+#line 593 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp38_ = g_strdup_printf (label_base, _tmp37_);
+#line 593 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_TWO_LABEL);
+#line 593 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_TWO_LABEL = _tmp38_;
+#line 593 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp37_);
+#line 594 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp39_ = resources_get_stars (RATING_THREE);
+#line 594 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp40_ = _tmp39_;
+#line 594 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp41_ = g_strdup_printf (label_base, _tmp40_);
+#line 594 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_THREE_LABEL);
+#line 594 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_THREE_LABEL = _tmp41_;
+#line 594 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp40_);
+#line 595 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp42_ = resources_get_stars (RATING_FOUR);
+#line 595 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp43_ = _tmp42_;
+#line 595 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp44_ = g_strdup_printf (label_base, _tmp43_);
+#line 595 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FOUR_LABEL);
+#line 595 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FOUR_LABEL = _tmp44_;
+#line 595 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp43_);
+#line 596 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp45_ = resources_get_stars (RATING_FIVE);
+#line 596 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp46_ = _tmp45_;
+#line 596 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp47_ = g_strdup_printf (label_base, _tmp46_);
+#line 596 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FIVE_LABEL);
+#line 596 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FIVE_LABEL = _tmp47_;
+#line 596 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp46_);
+#line 598 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp48_ = resources_get_stars (RATING_ONE);
+#line 598 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp49_ = _tmp48_;
+#line 598 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp50_ = g_strdup_printf (tooltip_base, _tmp49_);
+#line 598 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_ONE_TOOLTIP);
+#line 598 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_ONE_TOOLTIP = _tmp50_;
+#line 598 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp49_);
+#line 599 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp51_ = resources_get_stars (RATING_TWO);
+#line 599 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp52_ = _tmp51_;
+#line 599 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp53_ = g_strdup_printf (tooltip_base, _tmp52_);
+#line 599 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_TWO_TOOLTIP);
+#line 599 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_TWO_TOOLTIP = _tmp53_;
+#line 599 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp52_);
+#line 600 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp54_ = resources_get_stars (RATING_THREE);
+#line 600 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp55_ = _tmp54_;
+#line 600 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp56_ = g_strdup_printf (tooltip_base, _tmp55_);
+#line 600 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_THREE_TOOLTIP);
+#line 600 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_THREE_TOOLTIP = _tmp56_;
+#line 600 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp55_);
+#line 601 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp57_ = resources_get_stars (RATING_FOUR);
+#line 601 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp58_ = _tmp57_;
+#line 601 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp59_ = g_strdup_printf (tooltip_base, _tmp58_);
+#line 601 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FOUR_TOOLTIP);
+#line 601 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FOUR_TOOLTIP = _tmp59_;
+#line 601 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp58_);
+#line 602 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp60_ = resources_get_stars (RATING_FIVE);
+#line 602 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp61_ = _tmp60_;
+#line 602 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp62_ = g_strdup_printf (tooltip_base, _tmp61_);
+#line 602 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FIVE_TOOLTIP);
+#line 602 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FIVE_TOOLTIP = _tmp62_;
+#line 602 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp61_);
+#line 604 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp63_ = resources_get_stars (RATING_ONE);
+#line 604 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp64_ = _tmp63_;
+#line 604 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp65_ = g_strdup_printf (progress_base, _tmp64_);
+#line 604 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_ONE_PROGRESS);
+#line 604 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_ONE_PROGRESS = _tmp65_;
+#line 604 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp64_);
+#line 605 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp66_ = resources_get_stars (RATING_TWO);
+#line 605 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp67_ = _tmp66_;
+#line 605 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp68_ = g_strdup_printf (progress_base, _tmp67_);
+#line 605 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_TWO_PROGRESS);
+#line 605 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_TWO_PROGRESS = _tmp68_;
+#line 605 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp67_);
+#line 606 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp69_ = resources_get_stars (RATING_THREE);
+#line 606 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp70_ = _tmp69_;
+#line 606 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp71_ = g_strdup_printf (progress_base, _tmp70_);
+#line 606 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_THREE_PROGRESS);
+#line 606 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_THREE_PROGRESS = _tmp71_;
+#line 606 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp70_);
+#line 607 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp72_ = resources_get_stars (RATING_FOUR);
+#line 607 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp73_ = _tmp72_;
+#line 607 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp74_ = g_strdup_printf (progress_base, _tmp73_);
+#line 607 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FOUR_PROGRESS);
+#line 607 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FOUR_PROGRESS = _tmp74_;
+#line 607 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp73_);
+#line 608 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp75_ = resources_get_stars (RATING_FIVE);
+#line 608 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp76_ = _tmp75_;
+#line 608 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp77_ = g_strdup_printf (progress_base, _tmp76_);
+#line 608 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_RATE_FIVE_PROGRESS);
+#line 608 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_RATE_FIVE_PROGRESS = _tmp77_;
+#line 608 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp76_);
+#line 610 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp78_ = resources_get_stars (RATING_ONE);
+#line 610 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp79_ = _tmp78_;
+#line 610 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp80_ = g_strdup_printf (display_rating_or_higher_menu_base, _tmp79_);
+#line 610 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_ONE_OR_HIGHER_MENU);
+#line 610 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_ONE_OR_HIGHER_MENU = _tmp80_;
+#line 610 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp79_);
+#line 611 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp81_ = resources_get_stars (RATING_TWO);
+#line 611 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp82_ = _tmp81_;
+#line 611 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp83_ = g_strdup_printf (display_rating_or_higher_menu_base, _tmp82_);
+#line 611 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_TWO_OR_HIGHER_MENU);
+#line 611 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_TWO_OR_HIGHER_MENU = _tmp83_;
+#line 611 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp82_);
+#line 612 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp84_ = resources_get_stars (RATING_THREE);
+#line 612 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp85_ = _tmp84_;
+#line 612 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp86_ = g_strdup_printf (display_rating_or_higher_menu_base, _tmp85_);
+#line 612 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_THREE_OR_HIGHER_MENU);
+#line 612 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_THREE_OR_HIGHER_MENU = _tmp86_;
+#line 612 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp85_);
+#line 613 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp87_ = resources_get_stars (RATING_FOUR);
+#line 613 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp88_ = _tmp87_;
+#line 613 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp89_ = g_strdup_printf (display_rating_or_higher_menu_base, _tmp88_);
+#line 613 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_FOUR_OR_HIGHER_MENU);
+#line 613 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_FOUR_OR_HIGHER_MENU = _tmp89_;
+#line 613 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp88_);
+#line 614 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp90_ = resources_get_stars (RATING_FIVE);
+#line 614 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp91_ = _tmp90_;
+#line 614 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp92_ = g_strdup_printf (display_rating_menu_base, _tmp91_);
+#line 614 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_FIVE_OR_HIGHER_MENU);
+#line 614 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_FIVE_OR_HIGHER_MENU = _tmp92_;
+#line 614 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp91_);
+#line 616 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp93_ = resources_get_stars (RATING_ONE);
+#line 616 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp94_ = _tmp93_;
+#line 616 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp95_ = g_strdup_printf (display_rating_or_higher_label_base, _tmp94_);
+#line 616 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_ONE_OR_HIGHER_LABEL);
+#line 616 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_ONE_OR_HIGHER_LABEL = _tmp95_;
+#line 616 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp94_);
+#line 617 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp96_ = resources_get_stars (RATING_TWO);
+#line 617 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp97_ = _tmp96_;
+#line 617 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp98_ = g_strdup_printf (display_rating_or_higher_label_base, _tmp97_);
+#line 617 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_TWO_OR_HIGHER_LABEL);
+#line 617 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_TWO_OR_HIGHER_LABEL = _tmp98_;
+#line 617 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp97_);
+#line 618 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp99_ = resources_get_stars (RATING_THREE);
+#line 618 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp100_ = _tmp99_;
+#line 618 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp101_ = g_strdup_printf (display_rating_or_higher_label_base, _tmp100_);
+#line 618 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_THREE_OR_HIGHER_LABEL);
+#line 618 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_THREE_OR_HIGHER_LABEL = _tmp101_;
+#line 618 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp100_);
+#line 619 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp102_ = resources_get_stars (RATING_FOUR);
+#line 619 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp103_ = _tmp102_;
+#line 619 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp104_ = g_strdup_printf (display_rating_or_higher_label_base, _tmp103_);
+#line 619 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_FOUR_OR_HIGHER_LABEL);
+#line 619 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_FOUR_OR_HIGHER_LABEL = _tmp104_;
+#line 619 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp103_);
+#line 620 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp105_ = resources_get_stars (RATING_FIVE);
+#line 620 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp106_ = _tmp105_;
+#line 620 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp107_ = g_strdup_printf (display_rating_label_base, _tmp106_);
+#line 620 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_FIVE_OR_HIGHER_LABEL);
+#line 620 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_FIVE_OR_HIGHER_LABEL = _tmp107_;
+#line 620 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp106_);
+#line 622 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp108_ = resources_get_stars (RATING_ONE);
+#line 622 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp109_ = _tmp108_;
+#line 622 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp110_ = g_strdup_printf (display_rating_or_higher_tooltip_base, _tmp109_);
+#line 622 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_ONE_OR_HIGHER_TOOLTIP);
+#line 622 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_ONE_OR_HIGHER_TOOLTIP = _tmp110_;
+#line 622 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp109_);
+#line 623 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp111_ = resources_get_stars (RATING_TWO);
+#line 623 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp112_ = _tmp111_;
+#line 623 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp113_ = g_strdup_printf (display_rating_or_higher_tooltip_base, _tmp112_);
+#line 623 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_TWO_OR_HIGHER_TOOLTIP);
+#line 623 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_TWO_OR_HIGHER_TOOLTIP = _tmp113_;
+#line 623 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp112_);
+#line 624 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp114_ = resources_get_stars (RATING_THREE);
+#line 624 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp115_ = _tmp114_;
+#line 624 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp116_ = g_strdup_printf (display_rating_or_higher_tooltip_base, _tmp115_);
+#line 624 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_THREE_OR_HIGHER_TOOLTIP);
+#line 624 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_THREE_OR_HIGHER_TOOLTIP = _tmp116_;
+#line 624 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp115_);
+#line 625 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp117_ = resources_get_stars (RATING_FOUR);
+#line 625 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp118_ = _tmp117_;
+#line 625 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp119_ = g_strdup_printf (display_rating_or_higher_tooltip_base, _tmp118_);
+#line 625 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_FOUR_OR_HIGHER_TOOLTIP);
+#line 625 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_FOUR_OR_HIGHER_TOOLTIP = _tmp119_;
+#line 625 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp118_);
+#line 626 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp120_ = resources_get_stars (RATING_FIVE);
+#line 626 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp121_ = _tmp120_;
+#line 626 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp122_ = g_strdup_printf (display_rating_tooltip_base, _tmp121_);
+#line 626 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_DISPLAY_FIVE_OR_HIGHER_TOOLTIP);
+#line 626 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_DISPLAY_FIVE_OR_HIGHER_TOOLTIP = _tmp122_;
+#line 626 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp121_);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (display_rating_or_higher_tooltip_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (display_rating_or_higher_label_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (display_rating_or_higher_menu_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (display_rating_tooltip_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (display_rating_label_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (display_rating_menu_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (progress_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (tooltip_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (label_base);
+#line 574 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (menu_base);
+#line 2350 "Resources.c"
+}
+
+
+gchar* resources_jump_to_file_failed (GError* err) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ GError* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 685 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _ ("Unable to open in file manager: %s");
+#line 685 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = err;
+#line 685 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = _tmp1_->message;
+#line 685 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_strdup_printf (_tmp0_, _tmp2_);
+#line 685 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp3_;
+#line 685 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2372 "Resources.c"
+}
+
+
+static void _dim_pixbuf_resources_add_stock_icon_modify (GdkPixbuf* pixbuf, gpointer self) {
+#line 726 "/home/jens/Source/shotwell/src/Resources.vala"
+ dim_pixbuf (pixbuf);
+#line 2379 "Resources.c"
+}
+
+
+void resources_init (void) {
+ GtkIconFactory* _tmp0_ = NULL;
+ GFile* icons_dir = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ GThemedIcon* _tmp23_ = NULL;
+ GThemedIcon* _tmp24_ = NULL;
+ GThemedIcon* _tmp25_ = NULL;
+ GThemedIcon* _tmp26_ = NULL;
+ GThemedIcon* _tmp27_ = NULL;
+ GThemedIcon* _tmp28_ = NULL;
+ GThemedIcon* _tmp29_ = NULL;
+ GThemedIcon* _tmp30_ = NULL;
+ GThemedIcon* _tmp31_ = NULL;
+ GThemedIcon* _tmp32_ = NULL;
+ GThemedIcon* _tmp33_ = NULL;
+ GThemedIcon* _tmp34_ = NULL;
+ GThemedIcon* _tmp35_ = NULL;
+ GThemedIcon* _tmp36_ = NULL;
+ GThemedIcon* _tmp37_ = NULL;
+ GThemedIcon* _tmp38_ = NULL;
+ GtkIconFactory* _tmp39_ = NULL;
+#line 709 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = gtk_icon_factory_new ();
+#line 709 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (resources_factory);
+#line 709 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_factory = _tmp0_;
+#line 711 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = app_dirs_get_resources_dir ();
+#line 711 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = _tmp1_;
+#line 711 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_file_get_child (_tmp2_, "icons");
+#line 711 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = _tmp3_;
+#line 711 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp2_);
+#line 711 "/home/jens/Source/shotwell/src/Resources.vala"
+ icons_dir = _tmp4_;
+#line 712 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_file_get_child (icons_dir, "crop.svg");
+#line 712 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = _tmp5_;
+#line 712 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp6_, RESOURCES_CROP);
+#line 712 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp6_);
+#line 713 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = g_file_get_child (icons_dir, "redeye.png");
+#line 713 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = _tmp7_;
+#line 713 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp8_, RESOURCES_REDEYE);
+#line 713 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp8_);
+#line 714 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = g_file_get_child (icons_dir, "make-primary.svg");
+#line 714 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = _tmp9_;
+#line 714 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp10_, RESOURCES_MAKE_PRIMARY);
+#line 714 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp10_);
+#line 715 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = g_file_get_child (icons_dir, "import.svg");
+#line 715 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = _tmp11_;
+#line 715 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp12_, RESOURCES_IMPORT);
+#line 715 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp12_);
+#line 716 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = g_file_get_child (icons_dir, "straighten.svg");
+#line 716 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = _tmp13_;
+#line 716 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp14_, RESOURCES_STRAIGHTEN);
+#line 716 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp14_);
+#line 717 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = g_file_get_child (icons_dir, "import-all.png");
+#line 717 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = _tmp15_;
+#line 717 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp16_, RESOURCES_IMPORT_ALL);
+#line 717 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp16_);
+#line 718 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = g_file_get_child (icons_dir, "shotwell-auto-enhance.png");
+#line 718 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = _tmp17_;
+#line 718 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp18_, RESOURCES_ENHANCE);
+#line 718 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp18_);
+#line 719 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = g_file_get_child (icons_dir, "crop-pivot-reticle.png");
+#line 719 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = _tmp19_;
+#line 719 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp20_, RESOURCES_CROP_PIVOT_RETICLE);
+#line 719 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp20_);
+#line 720 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = g_file_get_child (icons_dir, "merge.svg");
+#line 720 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp22_ = _tmp21_;
+#line 720 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon (_tmp22_, RESOURCES_MERGE);
+#line 720 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp22_);
+#line 721 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp23_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_FLAGGED_PAGE);
+#line 721 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp24_ = _tmp23_;
+#line 721 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp24_, RESOURCES_ICON_FLAGGED_PAGE, NULL, NULL);
+#line 721 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp24_);
+#line 722 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp25_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_VIDEOS_PAGE);
+#line 722 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp26_ = _tmp25_;
+#line 722 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp26_, RESOURCES_ICON_VIDEOS_PAGE, NULL, NULL);
+#line 722 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp26_);
+#line 723 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp27_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_SINGLE_PHOTO);
+#line 723 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp28_ = _tmp27_;
+#line 723 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp28_, RESOURCES_ICON_SINGLE_PHOTO, NULL, NULL);
+#line 723 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp28_);
+#line 724 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp29_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_CAMERAS);
+#line 724 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp30_ = _tmp29_;
+#line 724 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp30_, RESOURCES_ICON_CAMERAS, NULL, NULL);
+#line 724 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp30_);
+#line 726 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp31_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_FILTER_FLAGGED);
+#line 726 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp32_ = _tmp31_;
+#line 726 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp32_, RESOURCES_ICON_FILTER_FLAGGED_DISABLED, _dim_pixbuf_resources_add_stock_icon_modify, NULL);
+#line 726 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp32_);
+#line 728 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp33_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_FILTER_PHOTOS);
+#line 728 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp34_ = _tmp33_;
+#line 728 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp34_, RESOURCES_ICON_FILTER_PHOTOS_DISABLED, _dim_pixbuf_resources_add_stock_icon_modify, NULL);
+#line 728 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp34_);
+#line 730 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp35_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_FILTER_VIDEOS);
+#line 730 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp36_ = _tmp35_;
+#line 730 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp36_, RESOURCES_ICON_FILTER_VIDEOS_DISABLED, _dim_pixbuf_resources_add_stock_icon_modify, NULL);
+#line 730 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp36_);
+#line 732 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp37_ = (GThemedIcon*) g_themed_icon_new (RESOURCES_ICON_FILTER_RAW);
+#line 732 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp38_ = _tmp37_;
+#line 732 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_add_stock_icon_from_themed_icon (_tmp38_, RESOURCES_ICON_FILTER_RAW_DISABLED, _dim_pixbuf_resources_add_stock_icon_modify, NULL);
+#line 732 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp38_);
+#line 735 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp39_ = resources_factory;
+#line 735 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_icon_factory_add_default (_tmp39_);
+#line 737 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_generate_rating_strings ();
+#line 707 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (icons_dir);
+#line 2587 "Resources.c"
+}
+
+
+void resources_terminate (void) {
+}
+
+
+/**
+ * @brief Helper for getting a format string that matches the
+ * user's LC_TIME settings from the system. This is intended
+ * to help support the use case where a user wants the text
+ * from one locale, but the timestamp format of another.
+ *
+ * Stolen wholesale from code written for Geary by Jim Nelson
+ * and from Marcel Stimberg's original patch to Shotwell to
+ * try to fix this; both are graciously thanked for their help.
+ */
+void resources_fetch_lc_time_format (void) {
+ gchar* old_language = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* old_messages = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* lc_time = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ const gchar* _tmp25_ = NULL;
+#line 756 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = g_getenv ("LANGUAGE");
+#line 756 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 756 "/home/jens/Source/shotwell/src/Resources.vala"
+ old_language = _tmp1_;
+#line 757 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = old_language;
+#line 757 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp2_ != NULL) {
+#line 758 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_unsetenv ("LANGUAGE");
+#line 2645 "Resources.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = setlocale (LC_MESSAGES, NULL);
+#line 762 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 762 "/home/jens/Source/shotwell/src/Resources.vala"
+ old_messages = _tmp4_;
+#line 763 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = setlocale (LC_TIME, NULL);
+#line 763 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 763 "/home/jens/Source/shotwell/src/Resources.vala"
+ lc_time = _tmp6_;
+#line 765 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = lc_time;
+#line 765 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp7_ != NULL) {
+#line 2663 "Resources.c"
+ const gchar* _tmp8_ = NULL;
+#line 766 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = lc_time;
+#line 766 "/home/jens/Source/shotwell/src/Resources.vala"
+ setlocale (LC_MESSAGES, _tmp8_);
+#line 2669 "Resources.c"
+ }
+#line 773 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = _ ("%-I:%M %p");
+#line 773 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 773 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_HH_MM_FORMAT_STRING);
+#line 773 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_HH_MM_FORMAT_STRING = _tmp10_;
+#line 778 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = _ ("%-I:%M:%S %p");
+#line 778 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 778 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_HH_MM_SS_FORMAT_STRING);
+#line 778 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_HH_MM_SS_FORMAT_STRING = _tmp12_;
+#line 782 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = _ ("%a %b %d, %Y");
+#line 782 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = g_strdup (_tmp13_);
+#line 782 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_LONG_DATE_FORMAT_STRING);
+#line 782 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_LONG_DATE_FORMAT_STRING = _tmp14_;
+#line 787 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = C_ ("MultidayFormat", "%a %b %d");
+#line 787 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 787 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_START_MULTIDAY_DATE_FORMAT_STRING);
+#line 787 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_START_MULTIDAY_DATE_FORMAT_STRING = _tmp16_;
+#line 792 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = C_ ("MultidayFormat", "%d, %Y");
+#line 792 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 792 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_END_MULTIDAY_DATE_FORMAT_STRING);
+#line 792 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_END_MULTIDAY_DATE_FORMAT_STRING = _tmp18_;
+#line 797 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = C_ ("MultimonthFormat", "%a %b %d");
+#line 797 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 797 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_START_MULTIMONTH_DATE_FORMAT_STRING);
+#line 797 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_START_MULTIMONTH_DATE_FORMAT_STRING = _tmp20_;
+#line 802 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = C_ ("MultimonthFormat", "%a %b %d, %Y");
+#line 802 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp22_ = g_strdup (_tmp21_);
+#line 802 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (resources_END_MULTIMONTH_DATE_FORMAT_STRING);
+#line 802 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_END_MULTIMONTH_DATE_FORMAT_STRING = _tmp22_;
+#line 805 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp23_ = old_messages;
+#line 805 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp23_ != NULL) {
+#line 2731 "Resources.c"
+ const gchar* _tmp24_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp24_ = old_messages;
+#line 806 "/home/jens/Source/shotwell/src/Resources.vala"
+ setlocale (LC_MESSAGES, _tmp24_);
+#line 2737 "Resources.c"
+ }
+#line 809 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp25_ = old_language;
+#line 809 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp25_ != NULL) {
+#line 2743 "Resources.c"
+ const gchar* _tmp26_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp26_ = old_language;
+#line 810 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_setenv ("LANGUAGE", _tmp26_, TRUE);
+#line 2749 "Resources.c"
+ }
+#line 753 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (lc_time);
+#line 753 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (old_messages);
+#line 753 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (old_language);
+#line 2757 "Resources.c"
+}
+
+
+/**
+ * @brief Returns a precached format string that matches the
+ * user's LC_TIME settings.
+ */
+gchar* resources_get_hh_mm_format_string (void) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 819 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_HH_MM_FORMAT_STRING;
+#line 819 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 820 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_fetch_lc_time_format ();
+#line 2776 "Resources.c"
+ }
+#line 823 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_HH_MM_FORMAT_STRING;
+#line 823 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 823 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 823 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2786 "Resources.c"
+}
+
+
+gchar* resources_get_hh_mm_ss_format_string (void) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 827 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_HH_MM_SS_FORMAT_STRING;
+#line 827 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 828 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_fetch_lc_time_format ();
+#line 2801 "Resources.c"
+ }
+#line 831 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_HH_MM_SS_FORMAT_STRING;
+#line 831 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 831 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 831 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2811 "Resources.c"
+}
+
+
+gchar* resources_get_long_date_format_string (void) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 835 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_LONG_DATE_FORMAT_STRING;
+#line 835 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 836 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_fetch_lc_time_format ();
+#line 2826 "Resources.c"
+ }
+#line 839 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_LONG_DATE_FORMAT_STRING;
+#line 839 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 839 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 839 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2836 "Resources.c"
+}
+
+
+gchar* resources_get_start_multiday_span_format_string (void) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 843 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_START_MULTIDAY_DATE_FORMAT_STRING;
+#line 843 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 844 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_fetch_lc_time_format ();
+#line 2851 "Resources.c"
+ }
+#line 847 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_START_MULTIDAY_DATE_FORMAT_STRING;
+#line 847 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 847 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 847 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2861 "Resources.c"
+}
+
+
+gchar* resources_get_end_multiday_span_format_string (void) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_END_MULTIDAY_DATE_FORMAT_STRING;
+#line 851 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 852 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_fetch_lc_time_format ();
+#line 2876 "Resources.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_END_MULTIDAY_DATE_FORMAT_STRING;
+#line 855 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 855 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 855 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2886 "Resources.c"
+}
+
+
+gchar* resources_get_start_multimonth_span_format_string (void) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 859 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_START_MULTIMONTH_DATE_FORMAT_STRING;
+#line 859 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 860 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_fetch_lc_time_format ();
+#line 2901 "Resources.c"
+ }
+#line 863 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_START_MULTIMONTH_DATE_FORMAT_STRING;
+#line 863 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 863 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 863 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2911 "Resources.c"
+}
+
+
+gchar* resources_get_end_multimonth_span_format_string (void) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 867 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_END_MULTIMONTH_DATE_FORMAT_STRING;
+#line 867 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 868 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_fetch_lc_time_format ();
+#line 2926 "Resources.c"
+ }
+#line 871 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = resources_END_MULTIMONTH_DATE_FORMAT_STRING;
+#line 871 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 871 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp2_;
+#line 871 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2936 "Resources.c"
+}
+
+
+GFile* resources_get_ui (const gchar* filename) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 874 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = app_dirs_get_resources_dir ();
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _tmp0_;
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "ui");
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_;
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = filename;
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_file_get_child (_tmp3_, _tmp4_);
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = _tmp5_;
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp3_);
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp1_);
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp6_;
+#line 875 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 2973 "Resources.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 891 "/home/jens/Source/shotwell/src/Resources.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2980 "Resources.c"
+}
+
+
+GdkPixbuf* resources_get_noninterpretable_badge_pixbuf (void) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 882 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_noninterpretable_badge_pixbuf;
+#line 882 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 2994 "Resources.c"
+ {
+ GdkPixbuf* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = app_dirs_get_resources_dir ();
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = g_file_get_child (_tmp3_, "icons");
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = _tmp4_;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_file_get_child (_tmp5_, RESOURCES_NONINTERPRETABLE_BADGE_FILE);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = _tmp6_;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = g_file_get_path (_tmp7_);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = _tmp8_;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = gdk_pixbuf_new_from_file (_tmp9_, &_inner_error_);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = _tmp10_;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp9_);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp7_);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp5_);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp3_);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _tmp11_;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3040 "Resources.c"
+ goto __catch416_g_error;
+ }
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = _tmp1_;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = NULL;
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (resources_noninterpretable_badge_pixbuf);
+#line 884 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_noninterpretable_badge_pixbuf = _tmp12_;
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3053 "Resources.c"
+ }
+ goto __finally416;
+ __catch416_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ err = _inner_error_;
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ _inner_error_ = NULL;
+#line 887 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = err->message;
+#line 887 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_error ("Resources.vala:887: VideoReader can't load noninterpretable badge imag" \
+"e: %s", _tmp13_);
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_error_free0 (err);
+#line 3070 "Resources.c"
+ }
+ __finally416:
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_clear_error (&_inner_error_);
+#line 883 "/home/jens/Source/shotwell/src/Resources.vala"
+ return NULL;
+#line 3081 "Resources.c"
+ }
+ }
+#line 891 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = resources_noninterpretable_badge_pixbuf;
+#line 891 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 891 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp15_;
+#line 891 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3092 "Resources.c"
+}
+
+
+GtkIconTheme* resources_get_icon_theme_engine (void) {
+ GtkIconTheme* result = NULL;
+ GtkIconTheme* icon_theme = NULL;
+ GtkIconTheme* _tmp0_ = NULL;
+ GtkIconTheme* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = gtk_icon_theme_get_default ();
+#line 895 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 895 "/home/jens/Source/shotwell/src/Resources.vala"
+ icon_theme = _tmp1_;
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = app_dirs_get_resources_dir ();
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_;
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = g_file_get_child (_tmp3_, "icons");
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = _tmp4_;
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = _tmp6_;
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_icon_theme_append_search_path (icon_theme, _tmp7_);
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp7_);
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp5_);
+#line 896 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp3_);
+#line 898 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = icon_theme;
+#line 898 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3137 "Resources.c"
+}
+
+
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale) {
+ GdkPixbuf* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ gint _tmp22_ = 0;
+ GdkPixbuf* scaled_pixbuf = NULL;
+ GdkPixbuf* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ GdkPixbuf* _tmp25_ = NULL;
+ GeeHashMap* _tmp26_ = NULL;
+ GeeHashMap* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ GdkPixbuf* _tmp33_ = NULL;
+#line 903 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 904 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_scaled_icon_cache;
+#line 904 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ != NULL) {
+#line 3168 "Resources.c"
+ gchar* scaled_name = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gchar* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 905 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = name;
+#line 905 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = scale;
+#line 905 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = g_strdup_printf ("%s-%d", _tmp1_, _tmp2_);
+#line 905 "/home/jens/Source/shotwell/src/Resources.vala"
+ scaled_name = _tmp3_;
+#line 906 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = resources_scaled_icon_cache;
+#line 906 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = scaled_name;
+#line 906 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_);
+#line 906 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp6_) {
+#line 3192 "Resources.c"
+ GeeHashMap* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+#line 907 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = resources_scaled_icon_cache;
+#line 907 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = scaled_name;
+#line 907 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp8_);
+#line 907 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = (GdkPixbuf*) _tmp9_;
+#line 907 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (scaled_name);
+#line 907 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3208 "Resources.c"
+ }
+#line 904 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (scaled_name);
+#line 3212 "Resources.c"
+ }
+#line 912 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = resources_icon_cache;
+#line 912 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp10_ == NULL) {
+#line 3218 "Resources.c"
+ GeeHashMap* _tmp11_ = NULL;
+#line 913 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GDK_TYPE_PIXBUF, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 913 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (resources_icon_cache);
+#line 913 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_icon_cache = _tmp11_;
+#line 3226 "Resources.c"
+ }
+#line 916 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = resources_icon_cache;
+#line 916 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = name;
+#line 916 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_);
+#line 916 "/home/jens/Source/shotwell/src/Resources.vala"
+ pixbuf = (GdkPixbuf*) _tmp14_;
+#line 917 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = pixbuf;
+#line 917 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp15_ == NULL) {
+#line 3240 "Resources.c"
+ const gchar* _tmp16_ = NULL;
+ GdkPixbuf* _tmp17_ = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+ GeeHashMap* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+#line 918 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = name;
+#line 918 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = resources_load_icon (_tmp16_, 0);
+#line 918 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 918 "/home/jens/Source/shotwell/src/Resources.vala"
+ pixbuf = _tmp17_;
+#line 919 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = pixbuf;
+#line 919 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp18_ == NULL) {
+#line 920 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = NULL;
+#line 920 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 920 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3265 "Resources.c"
+ }
+#line 922 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = resources_icon_cache;
+#line 922 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = name;
+#line 922 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = pixbuf;
+#line 922 "/home/jens/Source/shotwell/src/Resources.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp20_, _tmp21_);
+#line 3275 "Resources.c"
+ }
+#line 925 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp22_ = scale;
+#line 925 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp22_ <= 0) {
+#line 926 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = pixbuf;
+#line 926 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3285 "Resources.c"
+ }
+#line 928 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp23_ = pixbuf;
+#line 928 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp24_ = scale;
+#line 928 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp25_ = scale_pixbuf (_tmp23_, _tmp24_, GDK_INTERP_BILINEAR, FALSE);
+#line 928 "/home/jens/Source/shotwell/src/Resources.vala"
+ scaled_pixbuf = _tmp25_;
+#line 930 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp26_ = resources_scaled_icon_cache;
+#line 930 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp26_ == NULL) {
+#line 3299 "Resources.c"
+ GeeHashMap* _tmp27_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp27_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GDK_TYPE_PIXBUF, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 931 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (resources_scaled_icon_cache);
+#line 931 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_scaled_icon_cache = _tmp27_;
+#line 3307 "Resources.c"
+ }
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp28_ = resources_scaled_icon_cache;
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp29_ = name;
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp30_ = scale;
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp31_ = g_strdup_printf ("%s-%d", _tmp29_, _tmp30_);
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp32_ = _tmp31_;
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp33_ = scaled_pixbuf;
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp32_, _tmp33_);
+#line 933 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp32_);
+#line 935 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = scaled_pixbuf;
+#line 935 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 935 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3331 "Resources.c"
+}
+
+
+GdkPixbuf* resources_load_icon (const gchar* name, gint scale) {
+ GdkPixbuf* result = NULL;
+ GFile* icons_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+ GdkPixbuf* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ GError * _inner_error_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 939 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = app_dirs_get_resources_dir ();
+#line 939 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _tmp0_;
+#line 939 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "icons");
+#line 939 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_;
+#line 939 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp1_);
+#line 939 "/home/jens/Source/shotwell/src/Resources.vala"
+ icons_dir = _tmp3_;
+#line 941 "/home/jens/Source/shotwell/src/Resources.vala"
+ pixbuf = NULL;
+#line 3363 "Resources.c"
+ {
+ GdkPixbuf* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = name;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_file_get_child (icons_dir, _tmp5_);
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = _tmp6_;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = g_file_get_path (_tmp7_);
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = _tmp8_;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = gdk_pixbuf_new_from_file (_tmp9_, &_inner_error_);
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = _tmp10_;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp9_);
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp7_);
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = _tmp11_;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3396 "Resources.c"
+ goto __catch417_g_error;
+ }
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = _tmp4_;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 943 "/home/jens/Source/shotwell/src/Resources.vala"
+ pixbuf = _tmp12_;
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp4_);
+#line 3409 "Resources.c"
+ }
+ goto __finally417;
+ __catch417_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ err = _inner_error_;
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ _inner_error_ = NULL;
+#line 945 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = name;
+#line 945 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = err;
+#line 945 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = _tmp14_->message;
+#line 945 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_critical ("Resources.vala:945: Unable to load icon %s: %s", _tmp13_, _tmp15_);
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_error_free0 (err);
+#line 3432 "Resources.c"
+ }
+ __finally417:
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (icons_dir);
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_clear_error (&_inner_error_);
+#line 942 "/home/jens/Source/shotwell/src/Resources.vala"
+ return NULL;
+#line 3447 "Resources.c"
+ }
+#line 948 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = pixbuf;
+#line 948 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp16_ == NULL) {
+#line 949 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = NULL;
+#line 949 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 949 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (icons_dir);
+#line 949 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3461 "Resources.c"
+ }
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = scale;
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp18_ > 0) {
+#line 3467 "Resources.c"
+ GdkPixbuf* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ GdkPixbuf* _tmp21_ = NULL;
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = pixbuf;
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = scale;
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = scale_pixbuf (_tmp19_, _tmp20_, GDK_INTERP_BILINEAR, FALSE);
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp17_);
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = _tmp21_;
+#line 3481 "Resources.c"
+ } else {
+ GdkPixbuf* _tmp22_ = NULL;
+ GdkPixbuf* _tmp23_ = NULL;
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp22_ = pixbuf;
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp23_ = _g_object_ref0 (_tmp22_);
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp17_);
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = _tmp23_;
+#line 3493 "Resources.c"
+ }
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp17_;
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (icons_dir);
+#line 951 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3503 "Resources.c"
+}
+
+
+void resources_add_stock_icon (GFile* file, const gchar* stock_id) {
+ GdkPixbuf* pixbuf = NULL;
+ GtkIconSet* icon_set = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GtkIconSet* _tmp11_ = NULL;
+ GtkIconFactory* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 954 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 954 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_if_fail (stock_id != NULL);
+#line 955 "/home/jens/Source/shotwell/src/Resources.vala"
+ pixbuf = NULL;
+#line 3521 "Resources.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = file;
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_;
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = gdk_pixbuf_new_from_file (_tmp3_, &_inner_error_);
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = _tmp4_;
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp3_);
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = _tmp5_;
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3546 "Resources.c"
+ goto __catch418_g_error;
+ }
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = _tmp0_;
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 957 "/home/jens/Source/shotwell/src/Resources.vala"
+ pixbuf = _tmp6_;
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3559 "Resources.c"
+ }
+ goto __finally418;
+ __catch418_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ err = _inner_error_;
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ _inner_error_ = NULL;
+#line 959 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = stock_id;
+#line 959 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = err;
+#line 959 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = _tmp8_->message;
+#line 959 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_critical ("Resources.vala:959: Unable to load stock icon %s: %s", _tmp7_, _tmp9_);
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_error_free0 (err);
+#line 3582 "Resources.c"
+ }
+ __finally418:
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_clear_error (&_inner_error_);
+#line 956 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 3595 "Resources.c"
+ }
+#line 962 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = pixbuf;
+#line 962 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = gtk_icon_set_new_from_pixbuf (_tmp10_);
+#line 962 "/home/jens/Source/shotwell/src/Resources.vala"
+ icon_set = _tmp11_;
+#line 963 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = resources_factory;
+#line 963 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = stock_id;
+#line 963 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_icon_factory_add (_tmp12_, _tmp13_, icon_set);
+#line 954 "/home/jens/Source/shotwell/src/Resources.vala"
+ _gtk_icon_set_unref0 (icon_set);
+#line 954 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pixbuf);
+#line 3613 "Resources.c"
+}
+
+
+void resources_add_stock_icon_from_themed_icon (GThemedIcon* gicon, const gchar* stock_id, ResourcesAddStockIconModify modify, void* modify_target) {
+ GtkIconTheme* icon_theme = NULL;
+ GtkIconTheme* _tmp0_ = NULL;
+ GtkIconTheme* _tmp1_ = NULL;
+ GtkIconTheme* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GtkIconInfo* info = NULL;
+ GtkIconTheme* _tmp9_ = NULL;
+ GThemedIcon* _tmp10_ = NULL;
+ GtkIconInfo* _tmp11_ = NULL;
+ GtkIconInfo* _tmp12_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_if_fail (G_IS_THEMED_ICON (gicon));
+#line 968 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_if_fail (stock_id != NULL);
+#line 970 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = gtk_icon_theme_get_default ();
+#line 970 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 970 "/home/jens/Source/shotwell/src/Resources.vala"
+ icon_theme = _tmp1_;
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = icon_theme;
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = app_dirs_get_resources_dir ();
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = _tmp3_;
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_file_get_child (_tmp4_, "icons");
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = _tmp5_;
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = _tmp7_;
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_icon_theme_append_search_path (_tmp2_, _tmp8_);
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp8_);
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp6_);
+#line 971 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp4_);
+#line 973 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = icon_theme;
+#line 973 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = gicon;
+#line 973 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = gtk_icon_theme_lookup_by_gicon (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, G_TYPE_ICON, GIcon), RESOURCES_DEFAULT_ICON_SCALE, GTK_ICON_LOOKUP_FORCE_SIZE);
+#line 973 "/home/jens/Source/shotwell/src/Resources.vala"
+ info = _tmp11_;
+#line 975 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = info;
+#line 975 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp12_ == NULL) {
+#line 3678 "Resources.c"
+ const gchar* _tmp13_ = NULL;
+#line 976 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = stock_id;
+#line 976 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_debug ("Resources.vala:976: unable to load icon for: %s", _tmp13_);
+#line 977 "/home/jens/Source/shotwell/src/Resources.vala"
+ _gtk_icon_info_free0 (info);
+#line 977 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (icon_theme);
+#line 977 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 3690 "Resources.c"
+ }
+ {
+ GdkPixbuf* pix = NULL;
+ GtkIconInfo* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ ResourcesAddStockIconModify _tmp16_ = NULL;
+ void* _tmp16__target = NULL;
+ GtkIconSet* icon_set = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+ GtkIconSet* _tmp20_ = NULL;
+ GtkIconFactory* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GtkIconSet* _tmp23_ = NULL;
+#line 981 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = info;
+#line 981 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = gtk_icon_info_load_icon (_tmp14_, &_inner_error_);
+#line 981 "/home/jens/Source/shotwell/src/Resources.vala"
+ pix = _tmp15_;
+#line 981 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3712 "Resources.c"
+ goto __catch419_g_error;
+ }
+#line 982 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = modify;
+#line 982 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16__target = modify_target;
+#line 982 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp16_ != NULL) {
+#line 3721 "Resources.c"
+ ResourcesAddStockIconModify _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+#line 983 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = modify;
+#line 983 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17__target = modify_target;
+#line 983 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = pix;
+#line 983 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ (_tmp18_, _tmp17__target);
+#line 3733 "Resources.c"
+ }
+#line 985 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = pix;
+#line 985 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = gtk_icon_set_new_from_pixbuf (_tmp19_);
+#line 985 "/home/jens/Source/shotwell/src/Resources.vala"
+ icon_set = _tmp20_;
+#line 986 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = resources_factory;
+#line 986 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp22_ = stock_id;
+#line 986 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp23_ = icon_set;
+#line 986 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_icon_factory_add (_tmp21_, _tmp22_, _tmp23_);
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ _gtk_icon_set_unref0 (icon_set);
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (pix);
+#line 3753 "Resources.c"
+ }
+ goto __finally419;
+ __catch419_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ err = _inner_error_;
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ _inner_error_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp24_ = err;
+#line 988 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp25_ = _tmp24_->message;
+#line 988 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_debug ("Resources.vala:988: %s", _tmp25_);
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_error_free0 (err);
+#line 3773 "Resources.c"
+ }
+ __finally419:
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ _gtk_icon_info_free0 (info);
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (icon_theme);
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_clear_error (&_inner_error_);
+#line 980 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 3788 "Resources.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/Resources.vala"
+ _gtk_icon_info_free0 (info);
+#line 968 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (icon_theme);
+#line 3794 "Resources.c"
+}
+
+
+gchar* resources_get_help_path (void) {
+ gchar* result = NULL;
+ GFile* help_dir = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* help_index = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = app_dirs_get_exec_dir ();
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _tmp0_;
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "help");
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_;
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = g_file_get_child (_tmp3_, "C");
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = _tmp4_;
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1000 "/home/jens/Source/shotwell/src/Resources.vala"
+ help_dir = _tmp5_;
+#line 1001 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = help_dir;
+#line 1001 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = g_file_get_child (_tmp6_, "index.page");
+#line 1001 "/home/jens/Source/shotwell/src/Resources.vala"
+ help_index = _tmp7_;
+#line 1003 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = help_index;
+#line 1003 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = g_file_query_exists (_tmp8_, NULL);
+#line 1003 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp9_) {
+#line 3842 "Resources.c"
+ gchar* help_path = NULL;
+ GFile* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 1006 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = help_dir;
+#line 1006 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = g_file_get_path (_tmp10_);
+#line 1006 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 1006 "/home/jens/Source/shotwell/src/Resources.vala"
+ help_path = _tmp11_;
+#line 1008 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = help_path;
+#line 1008 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = g_str_has_suffix (_tmp12_, "/");
+#line 1008 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (!_tmp13_) {
+#line 3862 "Resources.c"
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 1009 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = help_path;
+#line 1009 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = g_strconcat (_tmp14_, "/", NULL);
+#line 1009 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 1009 "/home/jens/Source/shotwell/src/Resources.vala"
+ help_path = _tmp15_;
+#line 3873 "Resources.c"
+ }
+#line 1012 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = help_path;
+#line 1012 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (help_index);
+#line 1012 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (help_dir);
+#line 1012 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3883 "Resources.c"
+ }
+#line 1018 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = NULL;
+#line 1018 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (help_index);
+#line 1018 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (help_dir);
+#line 1018 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 3893 "Resources.c"
+}
+
+
+void resources_launch_help (GdkScreen* screen, const gchar* anchor, GError** error) {
+ gchar* help_path = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1021 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_if_fail (GDK_IS_SCREEN (screen));
+#line 1022 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_get_help_path ();
+#line 1022 "/home/jens/Source/shotwell/src/Resources.vala"
+ help_path = _tmp0_;
+#line 1024 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = help_path;
+#line 1024 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp1_ != NULL) {
+#line 3913 "Resources.c"
+ const gchar* _tmp2_ = NULL;
+ gchar** argv = NULL;
+ gchar** _tmp6_ = NULL;
+ gint argv_length1 = 0;
+ gint _argv_size_ = 0;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gchar* _tmp15_ = NULL;
+ GPid pid = 0;
+ gboolean _tmp16_ = FALSE;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GPid _tmp22_ = 0;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ gchar** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ const gchar* _tmp26_ = NULL;
+#line 1028 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = anchor;
+#line 1028 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp2_ != NULL) {
+#line 3949 "Resources.c"
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1029 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = help_path;
+#line 1029 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = anchor;
+#line 1029 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = g_strconcat (_tmp3_, _tmp4_, NULL);
+#line 1029 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 1029 "/home/jens/Source/shotwell/src/Resources.vala"
+ help_path = _tmp5_;
+#line 3963 "Resources.c"
+ }
+#line 1032 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_new0 (gchar*, 3 + 1);
+#line 1032 "/home/jens/Source/shotwell/src/Resources.vala"
+ argv = _tmp6_;
+#line 1032 "/home/jens/Source/shotwell/src/Resources.vala"
+ argv_length1 = 3;
+#line 1032 "/home/jens/Source/shotwell/src/Resources.vala"
+ _argv_size_ = argv_length1;
+#line 1033 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = argv;
+#line 1033 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7__length1 = argv_length1;
+#line 1033 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = g_strdup ("yelp");
+#line 1033 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp7_[0]);
+#line 1033 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_[0] = _tmp8_;
+#line 1033 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = _tmp7_[0];
+#line 1034 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = argv;
+#line 1034 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10__length1 = argv_length1;
+#line 1034 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = help_path;
+#line 1034 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 1034 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp10_[1]);
+#line 1034 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_[1] = _tmp12_;
+#line 1034 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = _tmp10_[1];
+#line 1035 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = argv;
+#line 1035 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14__length1 = argv_length1;
+#line 1035 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp14_[2]);
+#line 1035 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_[2] = NULL;
+#line 1035 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = _tmp14_[2];
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = app_dirs_get_exec_dir ();
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = _tmp17_;
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = g_file_get_path (_tmp18_);
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = _tmp19_;
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = argv;
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21__length1 = argv_length1;
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp23_ = g_spawn_async (_tmp20_, _tmp21_, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &_tmp22_, &_inner_error_);
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ pid = _tmp22_;
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp24_ = _tmp23_;
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp20_);
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp18_);
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = _tmp24_;
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 4043 "Resources.c"
+ }
+#line 1038 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp16_) {
+#line 1040 "/home/jens/Source/shotwell/src/Resources.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 1040 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 1040 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 4053 "Resources.c"
+ }
+#line 1043 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp25_ = argv;
+#line 1043 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp25__length1 = argv_length1;
+#line 1043 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp26_ = _tmp25_[0];
+#line 1043 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_warning ("Resources.vala:1043: Unable to launch %s", _tmp26_);
+#line 1024 "/home/jens/Source/shotwell/src/Resources.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 4065 "Resources.c"
+ }
+#line 1047 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp27_ = anchor;
+#line 1047 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp27_ != NULL) {
+#line 4071 "Resources.c"
+ GdkScreen* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp28_ = screen;
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp29_ = anchor;
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp30_ = g_strconcat ("help:shotwell", _tmp29_, NULL);
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp31_ = _tmp30_;
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ sys_show_uri (_tmp28_, _tmp31_, &_inner_error_);
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (_tmp31_);
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 1048 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 4096 "Resources.c"
+ }
+ } else {
+ GdkScreen* _tmp32_ = NULL;
+#line 1050 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp32_ = screen;
+#line 1050 "/home/jens/Source/shotwell/src/Resources.vala"
+ sys_show_uri (_tmp32_, "help:shotwell", &_inner_error_);
+#line 1050 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1050 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1050 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 1050 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 4112 "Resources.c"
+ }
+ }
+#line 1021 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_free0 (help_path);
+#line 4117 "Resources.c"
+}
+
+
+gchar* resources_to_css_color (GdkRGBA* color) {
+ gchar* result = NULL;
+ gint r = 0;
+ GdkRGBA _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gint g = 0;
+ GdkRGBA _tmp2_ = {0};
+ gdouble _tmp3_ = 0.0;
+ gint b = 0;
+ GdkRGBA _tmp4_ = {0};
+ gdouble _tmp5_ = 0.0;
+ gchar* _tmp6_ = NULL;
+#line 1054 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_val_if_fail (color != NULL, NULL);
+#line 1055 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = *color;
+#line 1055 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = _tmp0_.red;
+#line 1055 "/home/jens/Source/shotwell/src/Resources.vala"
+ r = (gint) (_tmp1_ * 255);
+#line 1056 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = *color;
+#line 1056 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = _tmp2_.green;
+#line 1056 "/home/jens/Source/shotwell/src/Resources.vala"
+ g = (gint) (_tmp3_ * 255);
+#line 1057 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = *color;
+#line 1057 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = _tmp4_.blue;
+#line 1057 "/home/jens/Source/shotwell/src/Resources.vala"
+ b = (gint) (_tmp5_ * 255);
+#line 1059 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = g_strdup_printf ("rgb(%d, %d, %d)", r, g, b);
+#line 1059 "/home/jens/Source/shotwell/src/Resources.vala"
+ result = _tmp6_;
+#line 1059 "/home/jens/Source/shotwell/src/Resources.vala"
+ return result;
+#line 4159 "Resources.c"
+}
+
+
+void resources_style_widget (GtkWidget* widget, const gchar* stylesheet) {
+ GeeMap* _tmp0_ = NULL;
+ GeeMap* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkCssProvider* styler = NULL;
+ GtkCssProvider* _tmp11_ = NULL;
+ GtkWidget* _tmp17_ = NULL;
+ GtkStyleContext* _tmp18_ = NULL;
+ GtkCssProvider* _tmp19_ = NULL;
+ GeeMap* _tmp20_ = NULL;
+ GtkWidget* _tmp21_ = NULL;
+ GtkCssProvider* _tmp22_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1066 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 1066 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_return_if_fail (stylesheet != NULL);
+#line 1067 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp0_ = resources_providers;
+#line 1067 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp0_ == NULL) {
+#line 4185 "Resources.c"
+ GeeHashMap* _tmp1_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp1_ = gee_hash_map_new (gtk_widget_get_type (), (GBoxedCopyFunc) g_object_ref, g_object_unref, GTK_TYPE_CSS_PROVIDER, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1068 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (resources_providers);
+#line 1068 "/home/jens/Source/shotwell/src/Resources.vala"
+ resources_providers = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MAP, GeeMap);
+#line 4193 "Resources.c"
+ }
+#line 1070 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp2_ = resources_providers;
+#line 1070 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp3_ = widget;
+#line 1070 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp4_ = gee_map_has_key (_tmp2_, _tmp3_);
+#line 1070 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (_tmp4_) {
+#line 4203 "Resources.c"
+ GtkWidget* _tmp5_ = NULL;
+ GtkStyleContext* _tmp6_ = NULL;
+ GeeMap* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GtkCssProvider* _tmp10_ = NULL;
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp5_ = widget;
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp6_ = gtk_widget_get_style_context (_tmp5_);
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp7_ = resources_providers;
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp8_ = widget;
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp9_ = gee_map_get (_tmp7_, _tmp8_);
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp10_ = (GtkCssProvider*) _tmp9_;
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_style_context_remove_provider (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GTK_TYPE_STYLE_PROVIDER, GtkStyleProvider));
+#line 1071 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (_tmp10_);
+#line 4226 "Resources.c"
+ }
+#line 1073 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp11_ = gtk_css_provider_new ();
+#line 1073 "/home/jens/Source/shotwell/src/Resources.vala"
+ styler = _tmp11_;
+#line 4232 "Resources.c"
+ {
+ GtkCssProvider* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 1076 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp12_ = styler;
+#line 1076 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp13_ = stylesheet;
+#line 1076 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_css_provider_load_from_data (_tmp12_, _tmp13_, (gssize) RESOURCES_ALL_DATA, &_inner_error_);
+#line 1076 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4244 "Resources.c"
+ goto __catch420_g_error;
+ }
+ }
+ goto __finally420;
+ __catch420_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 1075 "/home/jens/Source/shotwell/src/Resources.vala"
+ e = _inner_error_;
+#line 1075 "/home/jens/Source/shotwell/src/Resources.vala"
+ _inner_error_ = NULL;
+#line 1078 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp14_ = stylesheet;
+#line 1078 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp15_ = e;
+#line 1078 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp16_ = _tmp15_->message;
+#line 1078 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_warning ("Resources.vala:1078: couldn't parse widget stylesheet '%s': %s", _tmp14_, _tmp16_);
+#line 1082 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_error_free0 (e);
+#line 1082 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (styler);
+#line 1082 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 4273 "Resources.c"
+ }
+ __finally420:
+#line 1075 "/home/jens/Source/shotwell/src/Resources.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1075 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (styler);
+#line 1075 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1075 "/home/jens/Source/shotwell/src/Resources.vala"
+ g_clear_error (&_inner_error_);
+#line 1075 "/home/jens/Source/shotwell/src/Resources.vala"
+ return;
+#line 4286 "Resources.c"
+ }
+#line 1085 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp17_ = widget;
+#line 1085 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp18_ = gtk_widget_get_style_context (_tmp17_);
+#line 1085 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp19_ = styler;
+#line 1085 "/home/jens/Source/shotwell/src/Resources.vala"
+ gtk_style_context_add_provider (_tmp18_, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GTK_TYPE_STYLE_PROVIDER, GtkStyleProvider), (guint) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+#line 1088 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp20_ = resources_providers;
+#line 1088 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp21_ = widget;
+#line 1088 "/home/jens/Source/shotwell/src/Resources.vala"
+ _tmp22_ = styler;
+#line 1088 "/home/jens/Source/shotwell/src/Resources.vala"
+ gee_map_set (_tmp20_, _tmp21_, _tmp22_);
+#line 1066 "/home/jens/Source/shotwell/src/Resources.vala"
+ _g_object_unref0 (styler);
+#line 4306 "Resources.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/Resources.vala b/src/Resources.vala
index 101c49d..acc933c 100644
--- a/src/Resources.vala
+++ b/src/Resources.vala
@@ -30,7 +30,7 @@ namespace Resources {
public const string HOME_URL = "https://wiki.gnome.org/Apps/Shotwell";
public const string FAQ_URL = "https://wiki.gnome.org/Apps/Shotwell/FAQ";
public const string BUG_DB_URL = "https://wiki.gnome.org/Apps/Shotwell/ReportingABug";
- public const string DIR_PATTERN_URI_SYSWIDE = "ghelp:shotwell?other-files";
+ public const string DIR_PATTERN_URI_SYSWIDE = "help:shotwell/other-files";
private const string LIB = _LIB;
private const string LIBEXECDIR = _LIBEXECDIR;
@@ -270,12 +270,9 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
public const string DISPLAY_REJECTED_ONLY_TOOLTIP = _("Show only rejected photos");
public const string DISPLAY_REJECTED_OR_HIGHER_MENU = _("All + _Rejected");
- public const string DISPLAY_REJECTED_OR_HIGHER_LABEL = _("Show all photos, including rejected");
- public const string DISPLAY_REJECTED_OR_HIGHER_TOOLTIP = _("Show all photos, including rejected");
+ public const string DISPLAY_REJECTED_OR_HIGHER_TOOLTIP = NC_("Tooltip", "Show all photos, including rejected");
public const string DISPLAY_UNRATED_OR_HIGHER_MENU = _("_All Photos");
- // Button label
- public const string DISPLAY_UNRATED_OR_HIGHER_LABEL = _("Show all photos");
// Button tooltip
public const string DISPLAY_UNRATED_OR_HIGHER_TOOLTIP = _("Show all photos");
@@ -300,7 +297,7 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
public const string EDIT_TITLE_MENU = _("Edit _Title...");
// Button label
- public const string EDIT_TITLE_LABEL = _("Edit Title");
+ public const string EDIT_TITLE_LABEL = NC_("Button Label", "Edit Title");
public const string EDIT_COMMENT_MENU = _("Edit _Comment...");
// Button label
@@ -315,7 +312,7 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
public const string ADD_TAGS_MENU = _("Add _Tags...");
public const string ADD_TAGS_CONTEXT_MENU = _("_Add Tags...");
// Dialog title
- public const string ADD_TAGS_TITLE = _("Add Tags");
+ public const string ADD_TAGS_TITLE = NC_("Dialog Title", "Add Tags");
public const string PREFERENCES_MENU = _("_Preferences");
@@ -348,7 +345,7 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
HierarchicalTagUtilities.get_basename(names[1]));
} else {
// Undo/Redo command name (in Edit menu)
- return _("Add Tags");
+ return C_("UndoRedo menu entry", "Add Tags");
}
}
@@ -705,6 +702,7 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
private string START_MULTIDAY_DATE_FORMAT_STRING = null;
private string END_MULTIDAY_DATE_FORMAT_STRING = null;
private string START_MULTIMONTH_DATE_FORMAT_STRING = null;
+ private string END_MULTIMONTH_DATE_FORMAT_STRING = null;
public void init () {
// load application-wide stock icons as IconSets
@@ -786,18 +784,23 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
/// Locale-specific starting date format for multi-date strings,
/// i.e. the "Tue Mar 08" in "Tue Mar 08 - 10, 2006"
/// See http://developer.gnome.org/glib/2.32/glib-GDateTime.html#g-date-time-format
- START_MULTIDAY_DATE_FORMAT_STRING = _("%a %b %d");
+ START_MULTIDAY_DATE_FORMAT_STRING = C_("MultidayFormat", "%a %b %d");
/// Locale-specific ending date format for multi-date strings,
/// i.e. the "10, 2006" in "Tue Mar 08 - 10, 2006"
/// See http://developer.gnome.org/glib/2.32/glib-GDateTime.html#g-date-time-format
- END_MULTIDAY_DATE_FORMAT_STRING = _("%d, %Y");
+ END_MULTIDAY_DATE_FORMAT_STRING = C_("MultidayFormat", "%d, %Y");
/// Locale-specific calendar date format for multi-month strings,
/// i.e. the "Tue Mar 08" in "Tue Mar 08 to Mon Apr 06, 2006"
/// See http://developer.gnome.org/glib/2.32/glib-GDateTime.html#g-date-time-format
- START_MULTIMONTH_DATE_FORMAT_STRING = _("%a %b %d");
-
+ START_MULTIMONTH_DATE_FORMAT_STRING = C_("MultimonthFormat", "%a %b %d");
+
+ /// Locale-specific calendar date format for multi-month strings,
+ /// i.e. the "Mon Apr 06, 2006" in "Tue Mar 08 to Mon Apr 06, 2006"
+ /// See http://developer.gnome.org/glib/2.32/glib-GDateTime.html#g-date-time-format
+ END_MULTIMONTH_DATE_FORMAT_STRING = C_("MultimonthFormat", "%a %b %d, %Y");
+
// ...put everything back like we found it.
if (old_messages != null) {
Intl.setlocale(LocaleCategory.MESSAGES, old_messages);
@@ -861,7 +864,11 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
}
public string get_end_multimonth_span_format_string() {
- return get_long_date_format_string();
+ if (END_MULTIMONTH_DATE_FORMAT_STRING == null) {
+ fetch_lc_time_format();
+ }
+
+ return END_MULTIMONTH_DATE_FORMAT_STRING;
}
public File get_ui(string filename) {
@@ -1023,7 +1030,7 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
}
string[] argv = new string[3];
- argv[0] = "gnome-help";
+ argv[0] = "yelp";
argv[1] = help_path;
argv[2] = null;
@@ -1038,9 +1045,9 @@ along with Shotwell; if not, write to the Free Software Foundation, Inc.,
// launch from system-installed help
if (anchor != null) {
- sys_show_uri(screen, "ghelp:shotwell" + anchor);
+ sys_show_uri(screen, "help:shotwell" + anchor);
} else {
- sys_show_uri(screen, "ghelp:shotwell");
+ sys_show_uri(screen, "help:shotwell");
}
}
diff --git a/src/Screensaver.c b/src/Screensaver.c
new file mode 100644
index 0000000..50ae28a
--- /dev/null
+++ b/src/Screensaver.c
@@ -0,0 +1,425 @@
+/* Screensaver.c generated by valac 0.32.1, the Vala compiler
+ * generated from Screensaver.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SCREENSAVER (screensaver_get_type ())
+#define SCREENSAVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCREENSAVER, Screensaver))
+#define SCREENSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCREENSAVER, ScreensaverClass))
+#define IS_SCREENSAVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCREENSAVER))
+#define IS_SCREENSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCREENSAVER))
+#define SCREENSAVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCREENSAVER, ScreensaverClass))
+
+typedef struct _Screensaver Screensaver;
+typedef struct _ScreensaverClass ScreensaverClass;
+typedef struct _ScreensaverPrivate ScreensaverPrivate;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+typedef struct _ParamSpecScreensaver ParamSpecScreensaver;
+
+struct _Screensaver {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ScreensaverPrivate * priv;
+};
+
+struct _ScreensaverClass {
+ GTypeClass parent_class;
+ void (*finalize) (Screensaver *self);
+};
+
+struct _ScreensaverPrivate {
+ guint32 cookie;
+};
+
+struct _ParamSpecScreensaver {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer screensaver_parent_class = NULL;
+
+gpointer screensaver_ref (gpointer instance);
+void screensaver_unref (gpointer instance);
+GParamSpec* param_spec_screensaver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_screensaver (GValue* value, gpointer v_object);
+void value_take_screensaver (GValue* value, gpointer v_object);
+gpointer value_get_screensaver (const GValue* value);
+GType screensaver_get_type (void) G_GNUC_CONST;
+#define SCREENSAVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SCREENSAVER, ScreensaverPrivate))
+enum {
+ SCREENSAVER_DUMMY_PROPERTY
+};
+Screensaver* screensaver_new (void);
+Screensaver* screensaver_construct (GType object_type);
+void screensaver_inhibit (Screensaver* self, const gchar* reason);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+guint application_inhibit (Application* self, GtkApplicationInhibitFlags what, const gchar* reason);
+void screensaver_uninhibit (Screensaver* self);
+void application_uninhibit (Application* self, guint cookie);
+static void screensaver_finalize (Screensaver* obj);
+
+
+Screensaver* screensaver_construct (GType object_type) {
+ Screensaver* self = NULL;
+#line 10 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ self = (Screensaver*) g_type_create_instance (object_type);
+#line 10 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return self;
+#line 99 "Screensaver.c"
+}
+
+
+Screensaver* screensaver_new (void) {
+#line 10 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return screensaver_construct (TYPE_SCREENSAVER);
+#line 106 "Screensaver.c"
+}
+
+
+void screensaver_inhibit (Screensaver* self, const gchar* reason) {
+ guint32 _tmp0_ = 0U;
+ Application* _tmp1_ = NULL;
+ Application* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+#line 13 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (IS_SCREENSAVER (self));
+#line 13 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (reason != NULL);
+#line 14 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp0_ = self->priv->cookie;
+#line 14 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (_tmp0_ != ((guint32) 0)) {
+#line 15 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return;
+#line 126 "Screensaver.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp1_ = application_get_instance ();
+#line 17 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp2_ = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp3_ = _ ("Slideshow");
+#line 17 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp4_ = application_inhibit (_tmp2_, GTK_APPLICATION_INHIBIT_IDLE | GTK_APPLICATION_INHIBIT_SUSPEND, _tmp3_);
+#line 17 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ self->priv->cookie = (guint32) _tmp4_;
+#line 17 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _application_unref0 (_tmp2_);
+#line 140 "Screensaver.c"
+}
+
+
+void screensaver_uninhibit (Screensaver* self) {
+ guint32 _tmp0_ = 0U;
+ Application* _tmp1_ = NULL;
+ Application* _tmp2_ = NULL;
+ guint32 _tmp3_ = 0U;
+#line 21 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (IS_SCREENSAVER (self));
+#line 22 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp0_ = self->priv->cookie;
+#line 22 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (_tmp0_ == ((guint32) 0)) {
+#line 23 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return;
+#line 157 "Screensaver.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp1_ = application_get_instance ();
+#line 25 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp2_ = _tmp1_;
+#line 25 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _tmp3_ = self->priv->cookie;
+#line 25 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ application_uninhibit (_tmp2_, (guint) _tmp3_);
+#line 25 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ _application_unref0 (_tmp2_);
+#line 26 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ self->priv->cookie = (guint32) 0;
+#line 171 "Screensaver.c"
+}
+
+
+static void value_screensaver_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ value->data[0].v_pointer = NULL;
+#line 178 "Screensaver.c"
+}
+
+
+static void value_screensaver_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ screensaver_unref (value->data[0].v_pointer);
+#line 187 "Screensaver.c"
+ }
+}
+
+
+static void value_screensaver_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ dest_value->data[0].v_pointer = screensaver_ref (src_value->data[0].v_pointer);
+#line 197 "Screensaver.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 201 "Screensaver.c"
+ }
+}
+
+
+static gpointer value_screensaver_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return value->data[0].v_pointer;
+#line 209 "Screensaver.c"
+}
+
+
+static gchar* value_screensaver_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (collect_values[0].v_pointer) {
+#line 216 "Screensaver.c"
+ Screensaver* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 223 "Screensaver.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 227 "Screensaver.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ value->data[0].v_pointer = screensaver_ref (object);
+#line 231 "Screensaver.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ value->data[0].v_pointer = NULL;
+#line 235 "Screensaver.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return NULL;
+#line 239 "Screensaver.c"
+}
+
+
+static gchar* value_screensaver_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Screensaver** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 250 "Screensaver.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ *object_p = NULL;
+#line 256 "Screensaver.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ *object_p = value->data[0].v_pointer;
+#line 260 "Screensaver.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ *object_p = screensaver_ref (value->data[0].v_pointer);
+#line 264 "Screensaver.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return NULL;
+#line 268 "Screensaver.c"
+}
+
+
+GParamSpec* param_spec_screensaver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecScreensaver* spec;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SCREENSAVER), NULL);
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return G_PARAM_SPEC (spec);
+#line 282 "Screensaver.c"
+}
+
+
+gpointer value_get_screensaver (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCREENSAVER), NULL);
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return value->data[0].v_pointer;
+#line 291 "Screensaver.c"
+}
+
+
+void value_set_screensaver (GValue* value, gpointer v_object) {
+ Screensaver* old;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCREENSAVER));
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCREENSAVER));
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ screensaver_ref (value->data[0].v_pointer);
+#line 311 "Screensaver.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ value->data[0].v_pointer = NULL;
+#line 315 "Screensaver.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ screensaver_unref (old);
+#line 321 "Screensaver.c"
+ }
+}
+
+
+void value_take_screensaver (GValue* value, gpointer v_object) {
+ Screensaver* old;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SCREENSAVER));
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SCREENSAVER));
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ value->data[0].v_pointer = v_object;
+#line 340 "Screensaver.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ value->data[0].v_pointer = NULL;
+#line 344 "Screensaver.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ screensaver_unref (old);
+#line 350 "Screensaver.c"
+ }
+}
+
+
+static void screensaver_class_init (ScreensaverClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ screensaver_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ ((ScreensaverClass *) klass)->finalize = screensaver_finalize;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_type_class_add_private (klass, sizeof (ScreensaverPrivate));
+#line 362 "Screensaver.c"
+}
+
+
+static void screensaver_instance_init (Screensaver * self) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ self->priv = SCREENSAVER_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ self->priv->cookie = (guint32) 0;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ self->ref_count = 1;
+#line 373 "Screensaver.c"
+}
+
+
+static void screensaver_finalize (Screensaver* obj) {
+ Screensaver * self;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SCREENSAVER, Screensaver);
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_signal_handlers_destroy (self);
+#line 383 "Screensaver.c"
+}
+
+
+GType screensaver_get_type (void) {
+ static volatile gsize screensaver_type_id__volatile = 0;
+ if (g_once_init_enter (&screensaver_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_screensaver_init, value_screensaver_free_value, value_screensaver_copy_value, value_screensaver_peek_pointer, "p", value_screensaver_collect_value, "p", value_screensaver_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ScreensaverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) screensaver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Screensaver), 0, (GInstanceInitFunc) screensaver_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType screensaver_type_id;
+ screensaver_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Screensaver", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&screensaver_type_id__volatile, screensaver_type_id);
+ }
+ return screensaver_type_id__volatile;
+}
+
+
+gpointer screensaver_ref (gpointer instance) {
+ Screensaver* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ return instance;
+#line 408 "Screensaver.c"
+}
+
+
+void screensaver_unref (gpointer instance) {
+ Screensaver* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ SCREENSAVER_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/Screensaver.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 421 "Screensaver.c"
+ }
+}
+
+
+
diff --git a/src/SearchFilter.c b/src/SearchFilter.c
new file mode 100644
index 0000000..4a48100
--- /dev/null
+++ b/src/SearchFilter.c
@@ -0,0 +1,10645 @@
+/* SearchFilter.c generated by valac 0.32.1, the Vala compiler
+ * generated from SearchFilter.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* Bitfield values used to specify which search bar features we want.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <gio/gio.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SEARCH_FILTER_CRITERIA (search_filter_criteria_get_type ())
+
+#define TYPE_RATING_FILTER (rating_filter_get_type ())
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+typedef struct _SearchViewFilterPrivate SearchViewFilterPrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_DEFAULT_SEARCH_VIEW_FILTER (default_search_view_filter_get_type ())
+#define DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilter))
+#define DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define DEFAULT_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+
+typedef struct _DefaultSearchViewFilter DefaultSearchViewFilter;
+typedef struct _DefaultSearchViewFilterClass DefaultSearchViewFilterClass;
+typedef struct _DefaultSearchViewFilterPrivate DefaultSearchViewFilterPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+
+#define TYPE_THUMBNAIL (thumbnail_get_type ())
+#define THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL, Thumbnail))
+#define THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL, ThumbnailClass))
+#define IS_THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL))
+#define IS_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL))
+#define THUMBNAIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL, ThumbnailClass))
+
+typedef struct _Thumbnail Thumbnail;
+typedef struct _ThumbnailClass ThumbnailClass;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_DISABLED_VIEW_FILTER (disabled_view_filter_get_type ())
+#define DISABLED_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DISABLED_VIEW_FILTER, DisabledViewFilter))
+#define DISABLED_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DISABLED_VIEW_FILTER, DisabledViewFilterClass))
+#define IS_DISABLED_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DISABLED_VIEW_FILTER))
+#define IS_DISABLED_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DISABLED_VIEW_FILTER))
+#define DISABLED_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DISABLED_VIEW_FILTER, DisabledViewFilterClass))
+
+typedef struct _DisabledViewFilter DisabledViewFilter;
+typedef struct _DisabledViewFilterClass DisabledViewFilterClass;
+typedef struct _DisabledViewFilterPrivate DisabledViewFilterPrivate;
+
+#define TYPE_TEXT_ACTION (text_action_get_type ())
+#define TEXT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEXT_ACTION, TextAction))
+#define TEXT_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEXT_ACTION, TextActionClass))
+#define IS_TEXT_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEXT_ACTION))
+#define IS_TEXT_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEXT_ACTION))
+#define TEXT_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEXT_ACTION, TextActionClass))
+
+typedef struct _TextAction TextAction;
+typedef struct _TextActionClass TextActionClass;
+typedef struct _TextActionPrivate TextActionPrivate;
+typedef struct _ParamSpecTextAction ParamSpecTextAction;
+
+#define TYPE_SEARCH_FILTER_ACTIONS (search_filter_actions_get_type ())
+#define SEARCH_FILTER_ACTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActions))
+#define SEARCH_FILTER_ACTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActionsClass))
+#define IS_SEARCH_FILTER_ACTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_FILTER_ACTIONS))
+#define IS_SEARCH_FILTER_ACTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_FILTER_ACTIONS))
+#define SEARCH_FILTER_ACTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActionsClass))
+
+typedef struct _SearchFilterActions SearchFilterActions;
+typedef struct _SearchFilterActionsClass SearchFilterActionsClass;
+typedef struct _SearchFilterActionsPrivate SearchFilterActionsPrivate;
+#define _text_action_unref0(var) ((var == NULL) ? NULL : (var = (text_action_unref (var), NULL)))
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_MEDIA_VIEW_TRACKER (media_view_tracker_get_type ())
+#define MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTracker))
+#define MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+#define IS_MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_VIEW_TRACKER))
+#define IS_MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_VIEW_TRACKER))
+#define MEDIA_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+
+typedef struct _MediaViewTracker MediaViewTracker;
+typedef struct _MediaViewTrackerClass MediaViewTrackerClass;
+
+#define TYPE_CAMERA_VIEW_TRACKER (camera_view_tracker_get_type ())
+#define CAMERA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CAMERA_VIEW_TRACKER, CameraViewTracker))
+#define CAMERA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CAMERA_VIEW_TRACKER, CameraViewTrackerClass))
+#define IS_CAMERA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CAMERA_VIEW_TRACKER))
+#define IS_CAMERA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CAMERA_VIEW_TRACKER))
+#define CAMERA_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CAMERA_VIEW_TRACKER, CameraViewTrackerClass))
+
+typedef struct _CameraViewTracker CameraViewTracker;
+typedef struct _CameraViewTrackerClass CameraViewTrackerClass;
+#define _core_tracker_unref0(var) ((var == NULL) ? NULL : (var = (core_tracker_unref (var), NULL)))
+typedef struct _CoreTrackerPrivate CoreTrackerPrivate;
+typedef struct _CoreViewTrackerPrivate CoreViewTrackerPrivate;
+typedef struct _MediaViewTrackerPrivate MediaViewTrackerPrivate;
+
+#define TYPE_MEDIA_ACCUMULATOR (media_accumulator_get_type ())
+#define MEDIA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_ACCUMULATOR, MediaAccumulator))
+#define MEDIA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_ACCUMULATOR, MediaAccumulatorClass))
+#define IS_MEDIA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_ACCUMULATOR))
+#define IS_MEDIA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_ACCUMULATOR))
+#define MEDIA_ACCUMULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_ACCUMULATOR, MediaAccumulatorClass))
+
+typedef struct _MediaAccumulator MediaAccumulator;
+typedef struct _MediaAccumulatorClass MediaAccumulatorClass;
+
+#define CORE_TYPE_TRACKER_ACCUMULATOR (core_tracker_accumulator_get_type ())
+#define CORE_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator))
+#define CORE_IS_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR))
+#define CORE_TRACKER_ACCUMULATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulatorIface))
+
+typedef struct _CoreTrackerAccumulator CoreTrackerAccumulator;
+typedef struct _CoreTrackerAccumulatorIface CoreTrackerAccumulatorIface;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+typedef struct _MediaAccumulatorPrivate MediaAccumulatorPrivate;
+typedef struct _CameraViewTrackerPrivate CameraViewTrackerPrivate;
+
+#define TYPE_CAMERA_ACCUMULATOR (camera_accumulator_get_type ())
+#define CAMERA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CAMERA_ACCUMULATOR, CameraAccumulator))
+#define CAMERA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CAMERA_ACCUMULATOR, CameraAccumulatorClass))
+#define IS_CAMERA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CAMERA_ACCUMULATOR))
+#define IS_CAMERA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CAMERA_ACCUMULATOR))
+#define CAMERA_ACCUMULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CAMERA_ACCUMULATOR, CameraAccumulatorClass))
+
+typedef struct _CameraAccumulator CameraAccumulator;
+typedef struct _CameraAccumulatorClass CameraAccumulatorClass;
+typedef struct _ParamSpecSearchFilterActions ParamSpecSearchFilterActions;
+
+#define TYPE_SEARCH_FILTER_TOOLBAR (search_filter_toolbar_get_type ())
+#define SEARCH_FILTER_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbar))
+#define SEARCH_FILTER_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbarClass))
+#define IS_SEARCH_FILTER_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_FILTER_TOOLBAR))
+#define IS_SEARCH_FILTER_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_FILTER_TOOLBAR))
+#define SEARCH_FILTER_TOOLBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbarClass))
+
+typedef struct _SearchFilterToolbar SearchFilterToolbar;
+typedef struct _SearchFilterToolbarClass SearchFilterToolbarClass;
+typedef struct _SearchFilterToolbarPrivate SearchFilterToolbarPrivate;
+
+#define SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX (search_filter_toolbar_search_box_get_type ())
+#define SEARCH_FILTER_TOOLBAR_SEARCH_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX, SearchFilterToolbarSearchBox))
+#define SEARCH_FILTER_TOOLBAR_SEARCH_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX, SearchFilterToolbarSearchBoxClass))
+#define SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX))
+#define SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX))
+#define SEARCH_FILTER_TOOLBAR_SEARCH_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX, SearchFilterToolbarSearchBoxClass))
+
+typedef struct _SearchFilterToolbarSearchBox SearchFilterToolbarSearchBox;
+typedef struct _SearchFilterToolbarSearchBoxClass SearchFilterToolbarSearchBoxClass;
+
+#define SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON (search_filter_toolbar_rating_filter_button_get_type ())
+#define SEARCH_FILTER_TOOLBAR_RATING_FILTER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON, SearchFilterToolbarRatingFilterButton))
+#define SEARCH_FILTER_TOOLBAR_RATING_FILTER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON, SearchFilterToolbarRatingFilterButtonClass))
+#define SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_RATING_FILTER_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON, SearchFilterToolbarRatingFilterButtonClass))
+
+typedef struct _SearchFilterToolbarRatingFilterButton SearchFilterToolbarRatingFilterButton;
+typedef struct _SearchFilterToolbarRatingFilterButtonClass SearchFilterToolbarRatingFilterButtonClass;
+
+#define SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON (search_filter_toolbar_saved_search_filter_button_get_type ())
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_FILTER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON, SearchFilterToolbarSavedSearchFilterButton))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_FILTER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON, SearchFilterToolbarSavedSearchFilterButtonClass))
+#define SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_FILTER_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_FILTER_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_FILTER_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON, SearchFilterToolbarSavedSearchFilterButtonClass))
+
+typedef struct _SearchFilterToolbarSavedSearchFilterButton SearchFilterToolbarSavedSearchFilterButton;
+typedef struct _SearchFilterToolbarSavedSearchFilterButtonClass SearchFilterToolbarSavedSearchFilterButtonClass;
+
+#define SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM (search_filter_toolbar_label_tool_item_get_type ())
+#define SEARCH_FILTER_TOOLBAR_LABEL_TOOL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM, SearchFilterToolbarLabelToolItem))
+#define SEARCH_FILTER_TOOLBAR_LABEL_TOOL_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM, SearchFilterToolbarLabelToolItemClass))
+#define SEARCH_FILTER_TOOLBAR_IS_LABEL_TOOL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM))
+#define SEARCH_FILTER_TOOLBAR_IS_LABEL_TOOL_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM))
+#define SEARCH_FILTER_TOOLBAR_LABEL_TOOL_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM, SearchFilterToolbarLabelToolItemClass))
+
+typedef struct _SearchFilterToolbarLabelToolItem SearchFilterToolbarLabelToolItem;
+typedef struct _SearchFilterToolbarLabelToolItemClass SearchFilterToolbarLabelToolItemClass;
+
+#define SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON (search_filter_toolbar_toggle_action_tool_button_get_type ())
+#define SEARCH_FILTER_TOOLBAR_TOGGLE_ACTION_TOOL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON, SearchFilterToolbarToggleActionToolButton))
+#define SEARCH_FILTER_TOOLBAR_TOGGLE_ACTION_TOOL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON, SearchFilterToolbarToggleActionToolButtonClass))
+#define SEARCH_FILTER_TOOLBAR_IS_TOGGLE_ACTION_TOOL_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_IS_TOGGLE_ACTION_TOOL_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_TOGGLE_ACTION_TOOL_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON, SearchFilterToolbarToggleActionToolButtonClass))
+
+typedef struct _SearchFilterToolbarToggleActionToolButton SearchFilterToolbarToggleActionToolButton;
+typedef struct _SearchFilterToolbarToggleActionToolButtonClass SearchFilterToolbarToggleActionToolButtonClass;
+#define _search_filter_actions_unref0(var) ((var == NULL) ? NULL : (var = (search_filter_actions_unref (var), NULL)))
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _SearchFilterToolbarRatingFilterButtonPrivate SearchFilterToolbarRatingFilterButtonPrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _SearchFilterToolbarSavedSearchFilterButtonPrivate SearchFilterToolbarSavedSearchFilterButtonPrivate;
+
+#define SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER (search_filter_toolbar_saved_search_popover_get_type ())
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, SearchFilterToolbarSavedSearchPopover))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, SearchFilterToolbarSavedSearchPopoverClass))
+#define SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER))
+#define SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, SearchFilterToolbarSavedSearchPopoverClass))
+
+typedef struct _SearchFilterToolbarSavedSearchPopover SearchFilterToolbarSavedSearchPopover;
+typedef struct _SearchFilterToolbarSavedSearchPopoverClass SearchFilterToolbarSavedSearchPopoverClass;
+
+#define TYPE_SAVED_SEARCH_DIALOG (saved_search_dialog_get_type ())
+#define SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialog))
+#define SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+#define IS_SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DIALOG))
+#define IS_SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DIALOG))
+#define SAVED_SEARCH_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+
+typedef struct _SavedSearchDialog SavedSearchDialog;
+typedef struct _SavedSearchDialogClass SavedSearchDialogClass;
+#define _saved_search_dialog_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_dialog_unref (var), NULL)))
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+
+#define TYPE_DELETE_SAVED_SEARCH_COMMAND (delete_saved_search_command_get_type ())
+#define DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommand))
+#define DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+#define IS_DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define IS_DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define DELETE_SAVED_SEARCH_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+
+typedef struct _DeleteSavedSearchCommand DeleteSavedSearchCommand;
+typedef struct _DeleteSavedSearchCommandClass DeleteSavedSearchCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+#define _search_filter_toolbar_saved_search_popover_unref0(var) ((var == NULL) ? NULL : (var = (search_filter_toolbar_saved_search_popover_unref (var), NULL)))
+typedef struct _SearchFilterToolbarLabelToolItemPrivate SearchFilterToolbarLabelToolItemPrivate;
+typedef struct _SearchFilterToolbarToggleActionToolButtonPrivate SearchFilterToolbarToggleActionToolButtonPrivate;
+typedef struct _SearchFilterToolbarSearchBoxPrivate SearchFilterToolbarSearchBoxPrivate;
+typedef struct _SearchFilterToolbarSavedSearchPopoverPrivate SearchFilterToolbarSavedSearchPopoverPrivate;
+
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON (search_filter_toolbar_saved_search_popover_data_button_get_type ())
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, SearchFilterToolbarSavedSearchPopoverDataButton))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, SearchFilterToolbarSavedSearchPopoverDataButtonClass))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_IS_DATA_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_IS_DATA_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON))
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, SearchFilterToolbarSavedSearchPopoverDataButtonClass))
+
+typedef struct _SearchFilterToolbarSavedSearchPopoverDataButton SearchFilterToolbarSavedSearchPopoverDataButton;
+typedef struct _SearchFilterToolbarSavedSearchPopoverDataButtonClass SearchFilterToolbarSavedSearchPopoverDataButtonClass;
+
+#define TYPE_SAVED_SEARCH_TABLE (saved_search_table_get_type ())
+#define SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTable))
+#define SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+#define IS_SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_TABLE))
+#define IS_SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_TABLE))
+#define SAVED_SEARCH_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+
+typedef struct _SavedSearchTable SavedSearchTable;
+typedef struct _SavedSearchTableClass SavedSearchTableClass;
+#define _saved_search_table_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_table_unref (var), NULL)))
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+typedef struct _SearchFilterToolbarSavedSearchPopoverDataButtonPrivate SearchFilterToolbarSavedSearchPopoverDataButtonPrivate;
+typedef struct _SearchFilterToolbarParamSpecSavedSearchPopover SearchFilterToolbarParamSpecSavedSearchPopover;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ SEARCH_FILTER_CRITERIA_NONE = 0,
+ SEARCH_FILTER_CRITERIA_RECURSIVE = 1 << 0,
+ SEARCH_FILTER_CRITERIA_TEXT = 1 << 1,
+ SEARCH_FILTER_CRITERIA_FLAG = 1 << 2,
+ SEARCH_FILTER_CRITERIA_MEDIA = 1 << 3,
+ SEARCH_FILTER_CRITERIA_RATING = 1 << 4,
+ SEARCH_FILTER_CRITERIA_SAVEDSEARCH = 1 << 5,
+ SEARCH_FILTER_CRITERIA_ALL = 0xFFFFFFFFLL
+} SearchFilterCriteria;
+
+typedef enum {
+ RATING_FILTER_NO_FILTER = 0,
+ RATING_FILTER_REJECTED_OR_HIGHER = 1,
+ RATING_FILTER_UNRATED_OR_HIGHER = 2,
+ RATING_FILTER_ONE_OR_HIGHER = 3,
+ RATING_FILTER_TWO_OR_HIGHER = 4,
+ RATING_FILTER_THREE_OR_HIGHER = 5,
+ RATING_FILTER_FOUR_OR_HIGHER = 6,
+ RATING_FILTER_FIVE_OR_HIGHER = 7,
+ RATING_FILTER_REJECTED_ONLY = 8,
+ RATING_FILTER_UNRATED_ONLY = 9,
+ RATING_FILTER_ONE_ONLY = 10,
+ RATING_FILTER_TWO_ONLY = 11,
+ RATING_FILTER_THREE_ONLY = 12,
+ RATING_FILTER_FOUR_ONLY = 13,
+ RATING_FILTER_FIVE_ONLY = 14
+} RatingFilter;
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _SearchViewFilter {
+ ViewFilter parent_instance;
+ SearchViewFilterPrivate * priv;
+};
+
+struct _SearchViewFilterClass {
+ ViewFilterClass parent_class;
+ guint (*get_criteria) (SearchViewFilter* self);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _SearchViewFilterPrivate {
+ gboolean rating_allow_higher;
+ Rating rating;
+ RatingFilter rating_filter;
+ gboolean _flagged;
+ gboolean _show_media_video;
+ gboolean _show_media_photos;
+ gboolean _show_media_raw;
+ gchar* search_filter;
+ gchar** search_filter_words;
+ gint search_filter_words_length1;
+ gint _search_filter_words_size_;
+ SavedSearch* _saved_search;
+};
+
+struct _DefaultSearchViewFilter {
+ SearchViewFilter parent_instance;
+ DefaultSearchViewFilterPrivate * priv;
+};
+
+struct _DefaultSearchViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _DisabledViewFilter {
+ SearchViewFilter parent_instance;
+ DisabledViewFilterPrivate * priv;
+};
+
+struct _DisabledViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+struct _TextAction {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TextActionPrivate * priv;
+};
+
+struct _TextActionClass {
+ GTypeClass parent_class;
+ void (*finalize) (TextAction *self);
+};
+
+struct _TextActionPrivate {
+ gchar* text;
+ gboolean sensitive;
+ gboolean visible;
+};
+
+struct _ParamSpecTextAction {
+ GParamSpec parent_instance;
+};
+
+struct _SearchFilterActions {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SearchFilterActionsPrivate * priv;
+};
+
+struct _SearchFilterActionsClass {
+ GTypeClass parent_class;
+ void (*finalize) (SearchFilterActions *self);
+};
+
+struct _SearchFilterActionsPrivate {
+ GtkActionGroup* action_group;
+ SearchFilterCriteria criteria;
+ TextAction* _text;
+ gboolean has_flagged;
+ gboolean has_photos;
+ gboolean has_videos;
+ gboolean has_raw;
+ gboolean can_filter_by_stars;
+};
+
+struct _CoreTracker {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CoreTrackerPrivate * priv;
+};
+
+struct _CoreTrackerClass {
+ GTypeClass parent_class;
+ void (*finalize) (CoreTracker *self);
+ void (*updated) (CoreTracker* self);
+};
+
+struct _CoreViewTracker {
+ CoreTracker parent_instance;
+ CoreViewTrackerPrivate * priv;
+};
+
+struct _CoreViewTrackerClass {
+ CoreTrackerClass parent_class;
+};
+
+struct _MediaViewTracker {
+ CoreViewTracker parent_instance;
+ MediaViewTrackerPrivate * priv;
+ MediaAccumulator* all;
+ MediaAccumulator* visible;
+ MediaAccumulator* selected;
+};
+
+struct _MediaViewTrackerClass {
+ CoreViewTrackerClass parent_class;
+};
+
+struct _CoreTrackerAccumulatorIface {
+ GTypeInterface parent_iface;
+ gboolean (*include) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*uninclude) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*altered) (CoreTrackerAccumulator* self, DataObject* object, Alteration* alteration);
+};
+
+struct _MediaAccumulator {
+ GObject parent_instance;
+ MediaAccumulatorPrivate * priv;
+ gint total;
+ gint photos;
+ gint videos;
+ gint raw;
+ gint flagged;
+};
+
+struct _MediaAccumulatorClass {
+ GObjectClass parent_class;
+};
+
+struct _CameraViewTracker {
+ CoreViewTracker parent_instance;
+ CameraViewTrackerPrivate * priv;
+ CameraAccumulator* all;
+ CameraAccumulator* visible;
+ CameraAccumulator* selected;
+};
+
+struct _CameraViewTrackerClass {
+ CoreViewTrackerClass parent_class;
+};
+
+struct _ParamSpecSearchFilterActions {
+ GParamSpec parent_instance;
+};
+
+struct _SearchFilterToolbar {
+ GtkRevealer parent_instance;
+ SearchFilterToolbarPrivate * priv;
+ GtkUIManager* ui;
+};
+
+struct _SearchFilterToolbarClass {
+ GtkRevealerClass parent_class;
+};
+
+struct _SearchFilterToolbarPrivate {
+ GtkToolbar* toolbar;
+ GtkMenu* close_menu;
+ GtkMenuItem* close_item;
+ SearchFilterActions* actions;
+ SavedSearch* saved_search;
+ SearchFilterToolbarSearchBox* search_box;
+ SearchFilterToolbarRatingFilterButton* rating_button;
+ SearchFilterToolbarSavedSearchFilterButton* saved_search_button;
+ gboolean elide_showing_again;
+ SearchViewFilter* search_filter;
+ SearchFilterToolbarLabelToolItem* label_type;
+ SearchFilterToolbarToggleActionToolButton* toolbtn_photos;
+ SearchFilterToolbarToggleActionToolButton* toolbtn_videos;
+ SearchFilterToolbarToggleActionToolButton* toolbtn_raw;
+ SearchFilterToolbarToggleActionToolButton* toolbtn_flag;
+ GtkSeparatorToolItem* sepr_mediatype_flagged;
+ GtkSeparatorToolItem* sepr_flagged_rating;
+ GtkSeparatorToolItem* sepr_rating_saved;
+};
+
+struct _SearchFilterToolbarRatingFilterButton {
+ GtkToolItem parent_instance;
+ SearchFilterToolbarRatingFilterButtonPrivate * priv;
+ GtkMenu* filter_popup;
+ GtkButton* button;
+};
+
+struct _SearchFilterToolbarRatingFilterButtonClass {
+ GtkToolItemClass parent_class;
+};
+
+struct _SearchFilterToolbarSavedSearchFilterButton {
+ GtkToolItem parent_instance;
+ SearchFilterToolbarSavedSearchFilterButtonPrivate * priv;
+ SearchFilterToolbarSavedSearchPopover* filter_popup;
+ GtkToggleButton* button;
+};
+
+struct _SearchFilterToolbarSavedSearchFilterButtonClass {
+ GtkToolItemClass parent_class;
+};
+
+struct _SearchFilterToolbarLabelToolItem {
+ GtkToolItem parent_instance;
+ SearchFilterToolbarLabelToolItemPrivate * priv;
+};
+
+struct _SearchFilterToolbarLabelToolItemClass {
+ GtkToolItemClass parent_class;
+};
+
+struct _SearchFilterToolbarLabelToolItemPrivate {
+ GtkLabel* label;
+};
+
+struct _SearchFilterToolbarToggleActionToolButton {
+ GtkToolItem parent_instance;
+ SearchFilterToolbarToggleActionToolButtonPrivate * priv;
+};
+
+struct _SearchFilterToolbarToggleActionToolButtonClass {
+ GtkToolItemClass parent_class;
+};
+
+struct _SearchFilterToolbarToggleActionToolButtonPrivate {
+ GtkToggleButton* button;
+ GtkToggleAction* action;
+};
+
+struct _SearchFilterToolbarSearchBox {
+ GtkToolItem parent_instance;
+ SearchFilterToolbarSearchBoxPrivate * priv;
+};
+
+struct _SearchFilterToolbarSearchBoxClass {
+ GtkToolItemClass parent_class;
+};
+
+struct _SearchFilterToolbarSearchBoxPrivate {
+ GtkSearchEntry* search_entry;
+ TextAction* action;
+};
+
+struct _SearchFilterToolbarSavedSearchPopover {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SearchFilterToolbarSavedSearchPopoverPrivate * priv;
+};
+
+struct _SearchFilterToolbarSavedSearchPopoverClass {
+ GTypeClass parent_class;
+ void (*finalize) (SearchFilterToolbarSavedSearchPopover *self);
+};
+
+struct _SearchFilterToolbarSavedSearchPopoverPrivate {
+ GtkPopover* popover;
+ GtkListBox* list_box;
+ SearchFilterToolbarSavedSearchPopoverDataButton** edit_buttons;
+ gint edit_buttons_length1;
+ gint _edit_buttons_size_;
+ SearchFilterToolbarSavedSearchPopoverDataButton** delete_buttons;
+ gint delete_buttons_length1;
+ gint _delete_buttons_size_;
+ GtkButton* add;
+};
+
+struct _SearchFilterToolbarSavedSearchPopoverDataButton {
+ GtkBin parent_instance;
+ SearchFilterToolbarSavedSearchPopoverDataButtonPrivate * priv;
+};
+
+struct _SearchFilterToolbarSavedSearchPopoverDataButtonClass {
+ GtkBinClass parent_class;
+};
+
+struct _SearchFilterToolbarSavedSearchPopoverDataButtonPrivate {
+ GtkButton* button;
+ SavedSearch* _search;
+};
+
+struct _SearchFilterToolbarParamSpecSavedSearchPopover {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer search_view_filter_parent_class = NULL;
+static gpointer default_search_view_filter_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+static gpointer disabled_view_filter_parent_class = NULL;
+static gpointer text_action_parent_class = NULL;
+static gpointer search_filter_actions_parent_class = NULL;
+extern gchar* resources_DISPLAY_ONE_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_ONE_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_TWO_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_TWO_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_THREE_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_THREE_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_FOUR_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_FOUR_OR_HIGHER_TOOLTIP;
+extern gchar* resources_DISPLAY_FIVE_OR_HIGHER_MENU;
+extern gchar* resources_DISPLAY_FIVE_OR_HIGHER_TOOLTIP;
+static gpointer search_filter_toolbar_parent_class = NULL;
+static gpointer search_filter_toolbar_label_tool_item_parent_class = NULL;
+static gpointer search_filter_toolbar_toggle_action_tool_button_parent_class = NULL;
+static gpointer search_filter_toolbar_search_box_parent_class = NULL;
+static gpointer search_filter_toolbar_rating_filter_button_parent_class = NULL;
+static gpointer search_filter_toolbar_saved_search_filter_button_parent_class = NULL;
+static gpointer search_filter_toolbar_saved_search_popover_parent_class = NULL;
+static gpointer search_filter_toolbar_saved_search_popover_data_button_parent_class = NULL;
+
+GType search_filter_criteria_get_type (void) G_GNUC_CONST;
+GType rating_filter_get_type (void) G_GNUC_CONST;
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType saved_search_get_type (void) G_GNUC_CONST;
+#define SEARCH_VIEW_FILTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterPrivate))
+enum {
+ SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+guint search_view_filter_get_criteria (SearchViewFilter* self);
+static guint search_view_filter_real_get_criteria (SearchViewFilter* self);
+void search_view_filter_set_rating_filter (SearchViewFilter* self, RatingFilter rf);
+gboolean search_view_filter_has_search_filter (SearchViewFilter* self);
+gboolean is_string_empty (const gchar* s);
+const gchar* search_view_filter_get_search_filter (SearchViewFilter* self);
+gchar** search_view_filter_get_search_filter_words (SearchViewFilter* self, int* result_length1);
+void search_view_filter_set_search_filter (SearchViewFilter* self, const gchar* text);
+static gchar** _vala_array_dup33 (gchar** self, int length);
+void search_view_filter_clear_search_filter (SearchViewFilter* self);
+gboolean search_view_filter_has_saved_search (SearchViewFilter* self);
+SavedSearch* search_view_filter_get_saved_search (SearchViewFilter* self);
+gboolean search_view_filter_get_rating_allow_higher (SearchViewFilter* self);
+Rating search_view_filter_get_rating (SearchViewFilter* self);
+gboolean search_view_filter_filter_by_media_type (SearchViewFilter* self);
+gboolean search_view_filter_get_show_media_video (SearchViewFilter* self);
+gboolean search_view_filter_get_show_media_photos (SearchViewFilter* self);
+gboolean search_view_filter_get_show_media_raw (SearchViewFilter* self);
+SearchViewFilter* search_view_filter_construct (GType object_type);
+ViewFilter* view_filter_construct (GType object_type);
+gboolean search_view_filter_get_flagged (SearchViewFilter* self);
+void search_view_filter_set_flagged (SearchViewFilter* self, gboolean value);
+void search_view_filter_set_show_media_video (SearchViewFilter* self, gboolean value);
+void search_view_filter_set_show_media_photos (SearchViewFilter* self, gboolean value);
+void search_view_filter_set_show_media_raw (SearchViewFilter* self, gboolean value);
+void search_view_filter_set_saved_search (SearchViewFilter* self, SavedSearch* value);
+static void search_view_filter_finalize (ViewFilter* obj);
+GType default_search_view_filter_get_type (void) G_GNUC_CONST;
+enum {
+ DEFAULT_SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+static gboolean default_search_view_filter_real_predicate (ViewFilter* base, DataView* view);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType media_source_item_get_type (void) G_GNUC_CONST;
+GType thumbnail_get_type (void) G_GNUC_CONST;
+MediaSource* thumbnail_get_media_source (Thumbnail* self);
+Rating media_source_get_rating (MediaSource* self);
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+gboolean photo_is_raw_developer_available (Photo* self, RawDeveloper d);
+GType indexable_get_type (void) G_GNUC_CONST;
+const gchar* indexable_get_indexable_keywords (Indexable* self);
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+Event* media_source_get_event (MediaSource* self);
+GType tag_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
+gboolean saved_search_predicate (SavedSearch* self, MediaSource* source);
+DefaultSearchViewFilter* default_search_view_filter_construct (GType object_type);
+GType disabled_view_filter_get_type (void) G_GNUC_CONST;
+enum {
+ DISABLED_VIEW_FILTER_DUMMY_PROPERTY
+};
+static gboolean disabled_view_filter_real_predicate (ViewFilter* base, DataView* view);
+static guint disabled_view_filter_real_get_criteria (SearchViewFilter* base);
+DisabledViewFilter* disabled_view_filter_new (void);
+DisabledViewFilter* disabled_view_filter_construct (GType object_type);
+gpointer text_action_ref (gpointer instance);
+void text_action_unref (gpointer instance);
+GParamSpec* param_spec_text_action (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_text_action (GValue* value, gpointer v_object);
+void value_take_text_action (GValue* value, gpointer v_object);
+gpointer value_get_text_action (const GValue* value);
+GType text_action_get_type (void) G_GNUC_CONST;
+#define TEXT_ACTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TEXT_ACTION, TextActionPrivate))
+enum {
+ TEXT_ACTION_DUMMY_PROPERTY
+};
+TextAction* text_action_new (const gchar* init);
+TextAction* text_action_construct (GType object_type, const gchar* init);
+void text_action_set_text (TextAction* self, const gchar* text);
+void text_action_clear (TextAction* self);
+gboolean text_action_is_sensitive (TextAction* self);
+void text_action_set_sensitive (TextAction* self, gboolean sensitive);
+gboolean text_action_is_visible (TextAction* self);
+void text_action_set_visible (TextAction* self, gboolean visible);
+const gchar* text_action_get_value (TextAction* self);
+static void text_action_finalize (TextAction* obj);
+gpointer search_filter_actions_ref (gpointer instance);
+void search_filter_actions_unref (gpointer instance);
+GParamSpec* param_spec_search_filter_actions (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_search_filter_actions (GValue* value, gpointer v_object);
+void value_take_search_filter_actions (GValue* value, gpointer v_object);
+gpointer value_get_search_filter_actions (const GValue* value);
+GType search_filter_actions_get_type (void) G_GNUC_CONST;
+#define SEARCH_FILTER_ACTIONS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActionsPrivate))
+enum {
+ SEARCH_FILTER_ACTIONS_DUMMY_PROPERTY
+};
+SearchFilterActions* search_filter_actions_new (void);
+SearchFilterActions* search_filter_actions_construct (GType object_type);
+static void search_filter_actions_register (SearchFilterActions* self);
+TextAction* search_filter_actions_get_text (SearchFilterActions* self);
+static void search_filter_actions_on_text_changed (SearchFilterActions* self, TextAction* action, const gchar* text);
+static void _search_filter_actions_on_text_changed_text_action_text_changed (TextAction* _sender, const gchar* text, gpointer self);
+GtkActionGroup* search_filter_actions_get_action_group (SearchFilterActions* self);
+SearchFilterCriteria search_filter_actions_get_criteria (SearchFilterActions* self);
+GtkAction* search_filter_actions_get_action (SearchFilterActions* self, const gchar* name);
+void search_filter_actions_set_action_sensitive (SearchFilterActions* self, const gchar* name, gboolean sensitive);
+void search_filter_actions_reset (SearchFilterActions* self);
+GtkToggleAction* search_filter_actions_get_flagged (SearchFilterActions* self);
+GtkToggleAction* search_filter_actions_get_photos (SearchFilterActions* self);
+GtkToggleAction* search_filter_actions_get_raw (SearchFilterActions* self);
+GtkToggleAction* search_filter_actions_get_videos (SearchFilterActions* self);
+GtkRadioAction* search_filter_actions_get_rating (SearchFilterActions* self);
+void search_filter_actions_set_sensitive_for_search_criteria (SearchFilterActions* self, SearchFilterCriteria criteria);
+static void search_filter_actions_update_sensitivities (SearchFilterActions* self);
+GType page_get_type (void) G_GNUC_CONST;
+void search_filter_actions_monitor_page_contents (SearchFilterActions* self, Page* old_page, Page* new_page);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+CoreViewTracker* checkerboard_page_get_view_tracker (CheckerboardPage* self);
+GType media_view_tracker_get_type (void) G_GNUC_CONST;
+static void search_filter_actions_on_media_tracker_updated (SearchFilterActions* self, CoreTracker* t);
+static void _search_filter_actions_on_media_tracker_updated_core_tracker_updated (CoreTracker* _sender, gpointer self);
+GType camera_view_tracker_get_type (void) G_GNUC_CONST;
+static void search_filter_actions_on_camera_tracker_updated (SearchFilterActions* self, CoreTracker* t);
+static void _search_filter_actions_on_camera_tracker_updated_core_tracker_updated (CoreTracker* _sender, gpointer self);
+GType media_accumulator_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType core_tracker_accumulator_get_type (void) G_GNUC_CONST;
+GType camera_accumulator_get_type (void) G_GNUC_CONST;
+gint camera_accumulator_get_photos (CameraAccumulator* self);
+gint camera_accumulator_get_videos (CameraAccumulator* self);
+gint camera_accumulator_get_raw (CameraAccumulator* self);
+#define RESOURCES_ICON_FILTER_FLAGGED "filter-flagged"
+#define RESOURCES_ICON_FILTER_FLAGGED_DISABLED "filter-flagged-disabled"
+#define RESOURCES_ICON_FILTER_VIDEOS "filter-videos"
+#define RESOURCES_ICON_FILTER_VIDEOS_DISABLED "filter-videos-disabled"
+#define RESOURCES_ICON_FILTER_PHOTOS "filter-photos"
+#define RESOURCES_ICON_FILTER_PHOTOS_DISABLED "filter-photos-disabled"
+#define RESOURCES_ICON_FILTER_RAW "filter-raw"
+#define RESOURCES_ICON_FILTER_RAW_DISABLED "filter-raw-disabled"
+#define TRANSLATABLE "translatable"
+#define RESOURCES_DISPLAY_REJECTED_ONLY_MENU _ ("Rejected _Only")
+#define RESOURCES_DISPLAY_REJECTED_ONLY_TOOLTIP _ ("Show only rejected photos")
+static void _vala_array_add339 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+#define RESOURCES_DISPLAY_REJECTED_OR_HIGHER_MENU _ ("All + _Rejected")
+#define RESOURCES_DISPLAY_REJECTED_OR_HIGHER_TOOLTIP "Show all photos, including rejected"
+static void _vala_array_add340 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+#define RESOURCES_DISPLAY_UNRATED_OR_HIGHER_MENU _ ("_All Photos")
+#define RESOURCES_DISPLAY_UNRATED_OR_HIGHER_TOOLTIP _ ("Show all photos")
+static void _vala_array_add341 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add342 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add343 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add344 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add345 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void _vala_array_add346 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void search_filter_actions_on_rating_changed (SearchFilterActions* self, GtkAction* action, GtkAction* current);
+static void _search_filter_actions_on_rating_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self);
+static void search_filter_actions_on_flagged_toggled (SearchFilterActions* self, GtkAction* action);
+static void _search_filter_actions_on_flagged_toggled_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add347 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void search_filter_actions_on_photos_toggled (SearchFilterActions* self, GtkAction* action);
+static void _search_filter_actions_on_photos_toggled_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add348 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void search_filter_actions_on_videos_toggled (SearchFilterActions* self, GtkAction* action);
+static void _search_filter_actions_on_videos_toggled_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add349 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void search_filter_actions_on_raw_toggled (SearchFilterActions* self, GtkAction* action);
+static void _search_filter_actions_on_raw_toggled_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add350 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+gboolean search_filter_actions_get_has_photos (SearchFilterActions* self);
+gboolean search_filter_actions_get_has_videos (SearchFilterActions* self);
+gboolean search_filter_actions_get_has_raw (SearchFilterActions* self);
+gboolean search_filter_actions_get_has_flagged (SearchFilterActions* self);
+static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN_BOOLEAN_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void search_filter_actions_finalize (SearchFilterActions* obj);
+GType search_filter_toolbar_get_type (void) G_GNUC_CONST;
+GType search_filter_toolbar_search_box_get_type (void) G_GNUC_CONST;
+GType search_filter_toolbar_rating_filter_button_get_type (void) G_GNUC_CONST;
+GType search_filter_toolbar_saved_search_filter_button_get_type (void) G_GNUC_CONST;
+static GType search_filter_toolbar_label_tool_item_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GType search_filter_toolbar_toggle_action_tool_button_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define SEARCH_FILTER_TOOLBAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbarPrivate))
+enum {
+ SEARCH_FILTER_TOOLBAR_DUMMY_PROPERTY
+};
+static void search_filter_toolbar_on_media_context_changed (SearchFilterToolbar* self, gboolean has_photos, gboolean has_videos, gboolean has_raw, gboolean has_flagged);
+static void _search_filter_toolbar_on_media_context_changed_search_filter_actions_media_context_changed (SearchFilterActions* _sender, gboolean has_photos, gboolean has_videos, gboolean has_raw, gboolean has_flagged, gpointer self);
+static void search_filter_toolbar_on_flagged_toggled (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_flagged_toggled_search_filter_actions_flagged_toggled (SearchFilterActions* _sender, gboolean on, gpointer self);
+static void search_filter_toolbar_on_photos_toggled (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_photos_toggled_search_filter_actions_photos_toggled (SearchFilterActions* _sender, gboolean on, gpointer self);
+static void search_filter_toolbar_on_videos_toggled (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_videos_toggled_search_filter_actions_videos_toggled (SearchFilterActions* _sender, gboolean on, gpointer self);
+static void search_filter_toolbar_on_raw_toggled (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_raw_toggled_search_filter_actions_raw_toggled (SearchFilterActions* _sender, gboolean on, gpointer self);
+static void search_filter_toolbar_on_rating_changed (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_rating_changed_search_filter_actions_rating_changed (SearchFilterActions* _sender, RatingFilter filter, gpointer self);
+static void search_filter_toolbar_on_search_text_changed (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_search_text_changed_search_filter_actions_text_changed (SearchFilterActions* _sender, const gchar* text, gpointer self);
+static void search_filter_toolbar_on_criteria_changed (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_criteria_changed_search_filter_actions_criteria_changed (SearchFilterActions* _sender, gpointer self);
+static gboolean search_filter_toolbar_on_context_menu_requested (SearchFilterToolbar* self, gint x, gint y, gint button);
+static gboolean _search_filter_toolbar_on_context_menu_requested_gtk_toolbar_popup_context_menu (GtkToolbar* _sender, gint x, gint y, gint button_number, gpointer self);
+SearchFilterToolbarRatingFilterButton* search_filter_toolbar_rating_filter_button_new (void);
+SearchFilterToolbarRatingFilterButton* search_filter_toolbar_rating_filter_button_construct (GType object_type);
+SearchFilterToolbarSavedSearchFilterButton* search_filter_toolbar_saved_search_filter_button_new (void);
+SearchFilterToolbarSavedSearchFilterButton* search_filter_toolbar_saved_search_filter_button_construct (GType object_type);
+#define SEARCH_FILTER_TOOLBAR_FILTER_BUTTON_MARGIN 12
+#define SEARCH_FILTER_TOOLBAR_FILTER_ICON_STAR_SCALE 0.65f
+#define SEARCH_FILTER_TOOLBAR_FILTER_ICON_SCALE 0.75f
+#define SEARCH_FILTER_TOOLBAR_FILTER_ICON_BASE_WIDTH 30
+#define SEARCH_FILTER_TOOLBAR_FILTER_ICON_PLUS_WIDTH 20
+SearchFilterToolbar* search_filter_toolbar_new (SearchFilterActions* actions);
+SearchFilterToolbar* search_filter_toolbar_construct (GType object_type, SearchFilterActions* actions);
+SearchFilterToolbarSearchBox* search_filter_toolbar_search_box_new (TextAction* action);
+SearchFilterToolbarSearchBox* search_filter_toolbar_search_box_construct (GType object_type, TextAction* action);
+GFile* resources_get_ui (const gchar* filename);
+void app_window_panic (const gchar* msg);
+static void search_filter_toolbar_on_context_menu_close_chosen (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_context_menu_close_chosen_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static SearchFilterToolbarLabelToolItem* search_filter_toolbar_label_tool_item_new (const gchar* s, gint left_padding, gint right_padding);
+static SearchFilterToolbarLabelToolItem* search_filter_toolbar_label_tool_item_construct (GType object_type, const gchar* s, gint left_padding, gint right_padding);
+static SearchFilterToolbarToggleActionToolButton* search_filter_toolbar_toggle_action_tool_button_new (GtkToggleAction* action);
+static SearchFilterToolbarToggleActionToolButton* search_filter_toolbar_toggle_action_tool_button_construct (GType object_type, GtkToggleAction* action);
+static void search_filter_toolbar_toggle_action_tool_button_set_label (SearchFilterToolbarToggleActionToolButton* self, const gchar* label);
+void search_filter_toolbar_rating_filter_button_set_label (SearchFilterToolbarRatingFilterButton* self, const gchar* label);
+static void search_filter_toolbar_on_filter_button_clicked (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_filter_button_clicked_search_filter_toolbar_rating_filter_button_clicked (SearchFilterToolbarRatingFilterButton* _sender, gpointer self);
+void search_filter_toolbar_saved_search_filter_button_set_label (SearchFilterToolbarSavedSearchFilterButton* self, const gchar* label);
+static void search_filter_toolbar_on_saved_search_button_clicked (SearchFilterToolbar* self);
+static void _search_filter_toolbar_on_saved_search_button_clicked_search_filter_toolbar_saved_search_filter_button_clicked (SearchFilterToolbarSavedSearchFilterButton* _sender, gpointer self);
+static void search_filter_toolbar_toggle_action_tool_button_set_icon_name (SearchFilterToolbarToggleActionToolButton* self, const gchar* icon_name);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+GtkAction* app_window_get_common_action (AppWindow* self, const gchar* name);
+void search_filter_toolbar_update (SearchFilterToolbar* self);
+void search_filter_toolbar_set_view_filter (SearchFilterToolbar* self, SearchViewFilter* search_filter);
+void search_filter_toolbar_unset_view_filter (SearchFilterToolbar* self);
+void library_window_show_search_bar (LibraryWindow* self, gboolean display);
+void search_filter_toolbar_rating_filter_button_set_filter_icon (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter);
+static void search_filter_toolbar_position_filter_popup (SearchFilterToolbar* self, GtkMenu* menu, gint* x, gint* y, gboolean* push_in);
+AppWindow* app_window_get_instance (void);
+Page* page_window_get_current_page (PageWindow* self);
+GtkMenuBar* page_get_menubar (Page* self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gint configuration_facade_get_sidebar_position (ConfigurationFacade* self);
+static void _search_filter_toolbar_position_filter_popup_gtk_menu_position_func (GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer self);
+static void search_filter_toolbar_on_savedsearch_selected (SearchFilterToolbar* self, SavedSearch* saved_search);
+static void search_filter_toolbar_disable_savedsearch (SearchFilterToolbar* self);
+static void search_filter_toolbar_edit_dialog (SearchFilterToolbar* self, SavedSearch* search);
+gpointer search_filter_toolbar_saved_search_popover_ref (gpointer instance);
+void search_filter_toolbar_saved_search_popover_unref (gpointer instance);
+GParamSpec* search_filter_toolbar_param_spec_saved_search_popover (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void search_filter_toolbar_value_set_saved_search_popover (GValue* value, gpointer v_object);
+void search_filter_toolbar_value_take_saved_search_popover (GValue* value, gpointer v_object);
+gpointer search_filter_toolbar_value_get_saved_search_popover (const GValue* value);
+GType search_filter_toolbar_saved_search_popover_get_type (void) G_GNUC_CONST;
+void search_filter_toolbar_saved_search_popover_hide (SearchFilterToolbarSavedSearchPopover* self);
+gpointer saved_search_dialog_ref (gpointer instance);
+void saved_search_dialog_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_dialog (GValue* value, gpointer v_object);
+void value_take_saved_search_dialog (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_dialog (const GValue* value);
+GType saved_search_dialog_get_type (void) G_GNUC_CONST;
+SavedSearchDialog* saved_search_dialog_new_edit_existing (SavedSearch* saved_search);
+SavedSearchDialog* saved_search_dialog_construct_edit_existing (GType object_type, SavedSearch* saved_search);
+void saved_search_dialog_show (SavedSearchDialog* self);
+static void search_filter_toolbar_delete_dialog (SearchFilterToolbar* self, SavedSearch* search);
+gboolean dialogs_confirm_delete_saved_search (SavedSearch* search);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+DeleteSavedSearchCommand* delete_saved_search_command_new (SavedSearch* search);
+DeleteSavedSearchCommand* delete_saved_search_command_construct (GType object_type, SavedSearch* search);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+GType delete_saved_search_command_get_type (void) G_GNUC_CONST;
+static void search_filter_toolbar_add_dialog (SearchFilterToolbar* self);
+SavedSearchDialog* saved_search_dialog_new (void);
+SavedSearchDialog* saved_search_dialog_construct (GType object_type);
+static void search_filter_toolbar_on_popover_closed (SearchFilterToolbar* self);
+void search_filter_toolbar_saved_search_filter_button_set_active (SearchFilterToolbarSavedSearchFilterButton* self, gboolean active);
+static void _search_filter_toolbar_edit_dialog_search_filter_toolbar_saved_search_popover_edit_clicked (SearchFilterToolbarSavedSearchPopover* _sender, SavedSearch* search, gpointer self);
+static void _search_filter_toolbar_on_savedsearch_selected_search_filter_toolbar_saved_search_popover_search_activated (SearchFilterToolbarSavedSearchPopover* _sender, SavedSearch* search, gpointer self);
+static void _search_filter_toolbar_delete_dialog_search_filter_toolbar_saved_search_popover_delete_clicked (SearchFilterToolbarSavedSearchPopover* _sender, SavedSearch* search, gpointer self);
+static void _search_filter_toolbar_add_dialog_search_filter_toolbar_saved_search_popover_add_clicked (SearchFilterToolbarSavedSearchPopover* _sender, gpointer self);
+static void _search_filter_toolbar_on_popover_closed_search_filter_toolbar_saved_search_popover_closed (SearchFilterToolbarSavedSearchPopover* _sender, gpointer self);
+SearchFilterToolbarSavedSearchPopover* search_filter_toolbar_saved_search_popover_new (GtkWidget* relative_to);
+SearchFilterToolbarSavedSearchPopover* search_filter_toolbar_saved_search_popover_construct (GType object_type, GtkWidget* relative_to);
+void search_filter_toolbar_saved_search_popover_show_all (SearchFilterToolbarSavedSearchPopover* self);
+void search_filter_toolbar_take_focus (SearchFilterToolbar* self);
+void search_filter_toolbar_search_box_get_focus (SearchFilterToolbarSearchBox* self);
+#define SEARCH_FILTER_TOOLBAR_LABEL_TOOL_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM, SearchFilterToolbarLabelToolItemPrivate))
+enum {
+ SEARCH_FILTER_TOOLBAR_LABEL_TOOL_ITEM_DUMMY_PROPERTY
+};
+static void search_filter_toolbar_label_tool_item_finalize (GObject* obj);
+#define SEARCH_FILTER_TOOLBAR_TOGGLE_ACTION_TOOL_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON, SearchFilterToolbarToggleActionToolButtonPrivate))
+enum {
+ SEARCH_FILTER_TOOLBAR_TOGGLE_ACTION_TOOL_BUTTON_DUMMY_PROPERTY
+};
+static void search_filter_toolbar_toggle_action_tool_button_on_button_activate (SearchFilterToolbarToggleActionToolButton* self);
+static void _search_filter_toolbar_toggle_action_tool_button_on_button_activate_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void search_filter_toolbar_toggle_action_tool_button_finalize (GObject* obj);
+#define SEARCH_FILTER_TOOLBAR_SEARCH_BOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX, SearchFilterToolbarSearchBoxPrivate))
+enum {
+ SEARCH_FILTER_TOOLBAR_SEARCH_BOX_DUMMY_PROPERTY
+};
+static void search_filter_toolbar_search_box_on_action_text_changed (SearchFilterToolbarSearchBox* self, const gchar* text);
+static void _search_filter_toolbar_search_box_on_action_text_changed_text_action_text_changed (TextAction* _sender, const gchar* text, gpointer self);
+static void search_filter_toolbar_search_box_on_sensitivity_changed (SearchFilterToolbarSearchBox* self, gboolean sensitive);
+static void _search_filter_toolbar_search_box_on_sensitivity_changed_text_action_sensitivity_changed (TextAction* _sender, gboolean sensitive, gpointer self);
+static void search_filter_toolbar_search_box_on_visibility_changed (SearchFilterToolbarSearchBox* self, gboolean visible);
+static void _search_filter_toolbar_search_box_on_visibility_changed_text_action_visibility_changed (TextAction* _sender, gboolean visible, gpointer self);
+static void search_filter_toolbar_search_box_on_entry_changed (SearchFilterToolbarSearchBox* self);
+static void _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_deleted_text (GtkEntryBuffer* _sender, guint position, guint n_chars, gpointer self);
+static void _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_inserted_text (GtkEntryBuffer* _sender, guint position, const gchar* chars, guint n_chars, gpointer self);
+static gboolean search_filter_toolbar_search_box_on_escape_key (SearchFilterToolbarSearchBox* self, GdkEventKey* e);
+static gboolean _search_filter_toolbar_search_box_on_escape_key_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
+static void search_filter_toolbar_search_box_set_nullable_text (SearchFilterToolbarSearchBox* self, const gchar* text);
+static void search_filter_toolbar_search_box_finalize (GObject* obj);
+enum {
+ SEARCH_FILTER_TOOLBAR_RATING_FILTER_BUTTON_DUMMY_PROPERTY
+};
+static void search_filter_toolbar_rating_filter_button_on_clicked (SearchFilterToolbarRatingFilterButton* self);
+static void _search_filter_toolbar_rating_filter_button_on_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static GtkWidget* search_filter_toolbar_rating_filter_button_get_filter_icon (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter);
+#define RESOURCES_ICON_FILTER_ONE_OR_BETTER "one-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_TWO_OR_BETTER "two-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_THREE_OR_BETTER "three-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_FOUR_OR_BETTER "four-star-filter-plus.svg"
+#define RESOURCES_ICON_FILTER_FIVE "five-star-filter.svg"
+#define RESOURCES_ICON_FILTER_REJECTED_OR_BETTER "all-rejected.png"
+#define RESOURCES_ICON_RATING_REJECTED "rejected.svg"
+#define RESOURCES_ICON_FILTER_UNRATED_OR_BETTER "shotwell-16.png"
+GdkPixbuf* resources_load_icon (const gchar* name, gint scale);
+static gint search_filter_toolbar_rating_filter_button_get_filter_icon_size (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter);
+#define RESOURCES_ICON_FILTER_REJECTED_OR_BETTER_FIXED_SIZE 32
+#define RESOURCES_ICON_FILTER_UNRATED_OR_BETTER_FIXED_SIZE 16
+static gint search_filter_toolbar_rating_filter_button_get_filter_button_size (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter);
+gchar* resources_get_rating_filter_tooltip (RatingFilter filter);
+static void search_filter_toolbar_rating_filter_button_finalize (GObject* obj);
+enum {
+ SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_FILTER_BUTTON_DUMMY_PROPERTY
+};
+static void search_filter_toolbar_saved_search_filter_button_on_clicked (SearchFilterToolbarSavedSearchFilterButton* self);
+static void _search_filter_toolbar_saved_search_filter_button_on_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+void search_filter_toolbar_saved_search_filter_button_restyle (SearchFilterToolbarSavedSearchFilterButton* self);
+static void search_filter_toolbar_saved_search_filter_button_finalize (GObject* obj);
+static GType search_filter_toolbar_saved_search_popover_data_button_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, SearchFilterToolbarSavedSearchPopoverPrivate))
+enum {
+ SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DUMMY_PROPERTY
+};
+static void search_filter_toolbar_saved_search_popover_on_edit_click (SearchFilterToolbarSavedSearchPopover* self, SavedSearch* search);
+static void _search_filter_toolbar_saved_search_popover_on_edit_click_search_filter_toolbar_saved_search_popover_data_button_clicked (SearchFilterToolbarSavedSearchPopoverDataButton* _sender, SavedSearch* search, gpointer self);
+static void search_filter_toolbar_saved_search_popover_on_delete_click (SearchFilterToolbarSavedSearchPopover* self, SavedSearch* search);
+static void _search_filter_toolbar_saved_search_popover_on_delete_click_search_filter_toolbar_saved_search_popover_data_button_clicked (SearchFilterToolbarSavedSearchPopoverDataButton* _sender, SavedSearch* search, gpointer self);
+static void search_filter_toolbar_saved_search_popover_on_add_click (SearchFilterToolbarSavedSearchPopover* self);
+static void _search_filter_toolbar_saved_search_popover_on_add_click_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void search_filter_toolbar_saved_search_popover_on_activate_row (SearchFilterToolbarSavedSearchPopover* self, GtkListBoxRow* row);
+static void _search_filter_toolbar_saved_search_popover_on_activate_row_gtk_list_box_row_activated (GtkListBox* _sender, GtkListBoxRow* row, gpointer self);
+static void search_filter_toolbar_saved_search_popover_on_popover_closed (SearchFilterToolbarSavedSearchPopover* self);
+static void _search_filter_toolbar_saved_search_popover_on_popover_closed_gtk_popover_closed (GtkPopover* _sender, gpointer self);
+gpointer saved_search_table_ref (gpointer instance);
+void saved_search_table_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_table (GValue* value, gpointer v_object);
+void value_take_saved_search_table (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_table (const GValue* value);
+GType saved_search_table_get_type (void) G_GNUC_CONST;
+SavedSearchTable* saved_search_table_get_instance (void);
+GeeCollection* saved_search_table_get_all (SavedSearchTable* self);
+gchar* data_object_get_name (DataObject* self);
+static SearchFilterToolbarSavedSearchPopoverDataButton* search_filter_toolbar_saved_search_popover_data_button_new (SavedSearch* search, const gchar* name);
+static SearchFilterToolbarSavedSearchPopoverDataButton* search_filter_toolbar_saved_search_popover_data_button_construct (GType object_type, SavedSearch* search, const gchar* name);
+static void _vala_array_add351 (SearchFilterToolbarSavedSearchPopoverDataButton*** array, int* length, int* size, SearchFilterToolbarSavedSearchPopoverDataButton* value);
+static void _vala_array_add352 (SearchFilterToolbarSavedSearchPopoverDataButton*** array, int* length, int* size, SearchFilterToolbarSavedSearchPopoverDataButton* value);
+void search_filter_toolbar_saved_search_popover_restyle (SearchFilterToolbarSavedSearchPopover* self);
+static void search_filter_toolbar_saved_search_popover_data_button_restyle (SearchFilterToolbarSavedSearchPopoverDataButton* self);
+static gboolean search_filter_toolbar_saved_search_popover_is_search_row (SearchFilterToolbarSavedSearchPopover* self, GtkListBoxRow* row);
+static SavedSearch* search_filter_toolbar_saved_search_popover_get_search (SearchFilterToolbarSavedSearchPopover* self, GtkListBoxRow* row);
+static SavedSearch* search_filter_toolbar_saved_search_popover_data_button_get_search (SearchFilterToolbarSavedSearchPopoverDataButton* self);
+#define SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, SearchFilterToolbarSavedSearchPopoverDataButtonPrivate))
+enum {
+ SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_DUMMY_PROPERTY,
+ SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_SEARCH
+};
+static void search_filter_toolbar_saved_search_popover_data_button_on_click (SearchFilterToolbarSavedSearchPopoverDataButton* self);
+static void _search_filter_toolbar_saved_search_popover_data_button_on_click_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void search_filter_toolbar_saved_search_popover_data_button_set_search (SearchFilterToolbarSavedSearchPopoverDataButton* self, SavedSearch* value);
+static void search_filter_toolbar_saved_search_popover_data_button_finalize (GObject* obj);
+static void _vala_search_filter_toolbar_saved_search_popover_data_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_search_filter_toolbar_saved_search_popover_data_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void search_filter_toolbar_saved_search_popover_finalize (SearchFilterToolbarSavedSearchPopover* obj);
+static void search_filter_toolbar_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+GType search_filter_criteria_get_type (void) {
+ static volatile gsize search_filter_criteria_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_criteria_type_id__volatile)) {
+ static const GFlagsValue values[] = {{SEARCH_FILTER_CRITERIA_NONE, "SEARCH_FILTER_CRITERIA_NONE", "none"}, {SEARCH_FILTER_CRITERIA_RECURSIVE, "SEARCH_FILTER_CRITERIA_RECURSIVE", "recursive"}, {SEARCH_FILTER_CRITERIA_TEXT, "SEARCH_FILTER_CRITERIA_TEXT", "text"}, {SEARCH_FILTER_CRITERIA_FLAG, "SEARCH_FILTER_CRITERIA_FLAG", "flag"}, {SEARCH_FILTER_CRITERIA_MEDIA, "SEARCH_FILTER_CRITERIA_MEDIA", "media"}, {SEARCH_FILTER_CRITERIA_RATING, "SEARCH_FILTER_CRITERIA_RATING", "rating"}, {SEARCH_FILTER_CRITERIA_SAVEDSEARCH, "SEARCH_FILTER_CRITERIA_SAVEDSEARCH", "savedsearch"}, {SEARCH_FILTER_CRITERIA_ALL, "SEARCH_FILTER_CRITERIA_ALL", "all"}, {0, NULL, NULL}};
+ GType search_filter_criteria_type_id;
+ search_filter_criteria_type_id = g_flags_register_static ("SearchFilterCriteria", values);
+ g_once_init_leave (&search_filter_criteria_type_id__volatile, search_filter_criteria_type_id);
+ }
+ return search_filter_criteria_type_id__volatile;
+}
+
+
+GType rating_filter_get_type (void) {
+ static volatile gsize rating_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&rating_filter_type_id__volatile)) {
+ static const GEnumValue values[] = {{RATING_FILTER_NO_FILTER, "RATING_FILTER_NO_FILTER", "no-filter"}, {RATING_FILTER_REJECTED_OR_HIGHER, "RATING_FILTER_REJECTED_OR_HIGHER", "rejected-or-higher"}, {RATING_FILTER_UNRATED_OR_HIGHER, "RATING_FILTER_UNRATED_OR_HIGHER", "unrated-or-higher"}, {RATING_FILTER_ONE_OR_HIGHER, "RATING_FILTER_ONE_OR_HIGHER", "one-or-higher"}, {RATING_FILTER_TWO_OR_HIGHER, "RATING_FILTER_TWO_OR_HIGHER", "two-or-higher"}, {RATING_FILTER_THREE_OR_HIGHER, "RATING_FILTER_THREE_OR_HIGHER", "three-or-higher"}, {RATING_FILTER_FOUR_OR_HIGHER, "RATING_FILTER_FOUR_OR_HIGHER", "four-or-higher"}, {RATING_FILTER_FIVE_OR_HIGHER, "RATING_FILTER_FIVE_OR_HIGHER", "five-or-higher"}, {RATING_FILTER_REJECTED_ONLY, "RATING_FILTER_REJECTED_ONLY", "rejected-only"}, {RATING_FILTER_UNRATED_ONLY, "RATING_FILTER_UNRATED_ONLY", "unrated-only"}, {RATING_FILTER_ONE_ONLY, "RATING_FILTER_ONE_ONLY", "one-only"}, {RATING_FILTER_TWO_ONLY, "RATING_FILTER_TWO_ONLY", "two-only"}, {RATING_FILTER_THREE_ONLY, "RATING_FILTER_THREE_ONLY", "three-only"}, {RATING_FILTER_FOUR_ONLY, "RATING_FILTER_FOUR_ONLY", "four-only"}, {RATING_FILTER_FIVE_ONLY, "RATING_FILTER_FIVE_ONLY", "five-only"}, {0, NULL, NULL}};
+ GType rating_filter_type_id;
+ rating_filter_type_id = g_enum_register_static ("RatingFilter", values);
+ g_once_init_leave (&rating_filter_type_id__volatile, rating_filter_type_id);
+ }
+ return rating_filter_type_id__volatile;
+}
+
+
+static guint search_view_filter_real_get_criteria (SearchViewFilter* self) {
+#line 65 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_critical ("Type `%s' does not implement abstract method `search_view_filter_get_criteria'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 65 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return 0U;
+#line 1543 "SearchFilter.c"
+}
+
+
+guint search_view_filter_get_criteria (SearchViewFilter* self) {
+#line 65 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), 0U);
+#line 65 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return SEARCH_VIEW_FILTER_GET_CLASS (self)->get_criteria (self);
+#line 1552 "SearchFilter.c"
+}
+
+
+void search_view_filter_set_rating_filter (SearchViewFilter* self, RatingFilter rf) {
+ RatingFilter _tmp0_ = 0;
+ RatingFilter _tmp1_ = 0;
+#line 67 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 68 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = rf;
+#line 68 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_filter = _tmp0_;
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->rating_filter;
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ switch (_tmp1_) {
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_REJECTED_ONLY:
+#line 1571 "SearchFilter.c"
+ {
+#line 71 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_REJECTED;
+#line 72 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = FALSE;
+#line 73 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1579 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_REJECTED_OR_HIGHER:
+#line 1583 "SearchFilter.c"
+ {
+#line 76 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_REJECTED;
+#line 77 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 78 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1591 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_ONE_OR_HIGHER:
+#line 1595 "SearchFilter.c"
+ {
+#line 81 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_ONE;
+#line 82 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 83 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1603 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_ONE_ONLY:
+#line 1607 "SearchFilter.c"
+ {
+#line 86 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_ONE;
+#line 87 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = FALSE;
+#line 88 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1615 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_TWO_OR_HIGHER:
+#line 1619 "SearchFilter.c"
+ {
+#line 91 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_TWO;
+#line 92 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 93 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1627 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_TWO_ONLY:
+#line 1631 "SearchFilter.c"
+ {
+#line 96 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_TWO;
+#line 97 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = FALSE;
+#line 98 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1639 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_THREE_OR_HIGHER:
+#line 1643 "SearchFilter.c"
+ {
+#line 101 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_THREE;
+#line 102 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 103 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1651 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_THREE_ONLY:
+#line 1655 "SearchFilter.c"
+ {
+#line 106 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_THREE;
+#line 107 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = FALSE;
+#line 108 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1663 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FOUR_OR_HIGHER:
+#line 1667 "SearchFilter.c"
+ {
+#line 111 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_FOUR;
+#line 112 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 113 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1675 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FOUR_ONLY:
+#line 1679 "SearchFilter.c"
+ {
+#line 116 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_FOUR;
+#line 117 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1687 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FIVE_OR_HIGHER:
+#line 1691 "SearchFilter.c"
+ {
+#line 121 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_FIVE;
+#line 122 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 123 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1699 "SearchFilter.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FIVE_ONLY:
+#line 1703 "SearchFilter.c"
+ {
+#line 126 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_FIVE;
+#line 127 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = FALSE;
+#line 128 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1711 "SearchFilter.c"
+ }
+ default:
+#line 69 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_UNRATED_OR_HIGHER:
+#line 1716 "SearchFilter.c"
+ {
+#line 132 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_UNRATED;
+#line 133 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 134 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 1724 "SearchFilter.c"
+ }
+ }
+}
+
+
+gboolean search_view_filter_has_search_filter (SearchViewFilter* self) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 138 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = !_tmp1_;
+#line 139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 1744 "SearchFilter.c"
+}
+
+
+const gchar* search_view_filter_get_search_filter (SearchViewFilter* self) {
+ const gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), NULL);
+#line 143 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 143 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 143 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 1759 "SearchFilter.c"
+}
+
+
+gchar** search_view_filter_get_search_filter_words (SearchViewFilter* self, int* result_length1) {
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 146 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), NULL);
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->search_filter_words;
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0__length1 = self->priv->search_filter_words_length1;
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_;
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (result_length1) {
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *result_length1 = _tmp1__length1;
+#line 1783 "SearchFilter.c"
+ }
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp1_;
+#line 147 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 1789 "SearchFilter.c"
+}
+
+
+static gchar** _vala_array_dup33 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ for (i = 0; i < length; i++) {
+#line 1800 "SearchFilter.c"
+ gchar* _tmp0_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result[i] = _tmp0_;
+#line 1806 "SearchFilter.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 1810 "SearchFilter.c"
+}
+
+
+void search_view_filter_set_search_filter (SearchViewFilter* self, const gchar* text) {
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gchar* _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint __tmp6__size_ = 0;
+ const gchar* _tmp7_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 150 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = text;
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = is_string_empty (_tmp1_);
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp2_) {
+#line 1833 "SearchFilter.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = text;
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = g_utf8_strdown (_tmp3_, (gssize) -1);
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp0_);
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = _tmp4_;
+#line 1844 "SearchFilter.c"
+ } else {
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp0_);
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = NULL;
+#line 1850 "SearchFilter.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = g_strdup (_tmp0_);
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (self->priv->search_filter);
+#line 151 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter = _tmp5_;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = self->priv->search_filter;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp7_ != NULL) {
+#line 1862 "SearchFilter.c"
+ const gchar* _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->search_filter;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = _tmp9_ = g_strsplit (_tmp8_, " ", 0);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = _tmp10_;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6__length1 = _vala_array_length (_tmp9_);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ __tmp6__size_ = _tmp6__length1;
+#line 1878 "SearchFilter.c"
+ } else {
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6__length1 = 0;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ __tmp6__size_ = _tmp6__length1;
+#line 1888 "SearchFilter.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = (_tmp6_ != NULL) ? _vala_array_dup33 (_tmp6_, _tmp6__length1) : ((gpointer) _tmp6_);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11__length1 = _tmp6__length1;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words = (_vala_array_free (self->priv->search_filter_words, self->priv->search_filter_words_length1, (GDestroyNotify) g_free), NULL);
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words = _tmp11_;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words_length1 = _tmp11__length1;
+#line 152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_search_filter_words_size_ = self->priv->search_filter_words_length1;
+#line 150 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
+#line 150 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp0_);
+#line 1906 "SearchFilter.c"
+}
+
+
+void search_view_filter_clear_search_filter (SearchViewFilter* self) {
+#line 155 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 156 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (self->priv->search_filter);
+#line 156 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter = NULL;
+#line 157 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words = (_vala_array_free (self->priv->search_filter_words, self->priv->search_filter_words_length1, (GDestroyNotify) g_free), NULL);
+#line 157 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words = NULL;
+#line 157 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words_length1 = 0;
+#line 157 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_search_filter_words_size_ = self->priv->search_filter_words_length1;
+#line 1925 "SearchFilter.c"
+}
+
+
+gboolean search_view_filter_has_saved_search (SearchViewFilter* self) {
+ gboolean result = FALSE;
+ SavedSearch* _tmp0_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 161 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_saved_search;
+#line 161 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_ != NULL;
+#line 161 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 1940 "SearchFilter.c"
+}
+
+
+gboolean search_view_filter_get_rating_allow_higher (SearchViewFilter* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 164 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->rating_allow_higher;
+#line 165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 1955 "SearchFilter.c"
+}
+
+
+Rating search_view_filter_get_rating (SearchViewFilter* self) {
+ Rating result = 0;
+ Rating _tmp0_ = 0;
+#line 168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), 0);
+#line 169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->rating;
+#line 169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 1970 "SearchFilter.c"
+}
+
+
+gboolean search_view_filter_filter_by_media_type (SearchViewFilter* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->_show_media_video;
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp3_) {
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = TRUE;
+#line 1988 "SearchFilter.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->_show_media_photos;
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp4_;
+#line 1995 "SearchFilter.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp2_) {
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = TRUE;
+#line 2001 "SearchFilter.c"
+ } else {
+ gboolean _tmp5_ = FALSE;
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->_show_media_raw;
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp5_;
+#line 2008 "SearchFilter.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp1_) {
+#line 2012 "SearchFilter.c"
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->_show_media_video;
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp8_) {
+#line 2020 "SearchFilter.c"
+ gboolean _tmp9_ = FALSE;
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = self->priv->_show_media_photos;
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp9_;
+#line 2026 "SearchFilter.c"
+ } else {
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = FALSE;
+#line 2030 "SearchFilter.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp7_) {
+#line 2034 "SearchFilter.c"
+ gboolean _tmp10_ = FALSE;
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->_show_media_raw;
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = _tmp10_;
+#line 2040 "SearchFilter.c"
+ } else {
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = FALSE;
+#line 2044 "SearchFilter.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = !_tmp6_;
+#line 2048 "SearchFilter.c"
+ } else {
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = FALSE;
+#line 2052 "SearchFilter.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 173 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2058 "SearchFilter.c"
+}
+
+
+SearchViewFilter* search_view_filter_construct (GType object_type) {
+ SearchViewFilter* self = NULL;
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchViewFilter*) view_filter_construct (object_type);
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 2068 "SearchFilter.c"
+}
+
+
+gboolean search_view_filter_get_flagged (SearchViewFilter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_flagged;
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2083 "SearchFilter.c"
+}
+
+
+void search_view_filter_set_flagged (SearchViewFilter* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = value;
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_flagged = _tmp0_;
+#line 2095 "SearchFilter.c"
+}
+
+
+gboolean search_view_filter_get_show_media_video (SearchViewFilter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_show_media_video;
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2110 "SearchFilter.c"
+}
+
+
+void search_view_filter_set_show_media_video (SearchViewFilter* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = value;
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_show_media_video = _tmp0_;
+#line 2122 "SearchFilter.c"
+}
+
+
+gboolean search_view_filter_get_show_media_photos (SearchViewFilter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_show_media_photos;
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2137 "SearchFilter.c"
+}
+
+
+void search_view_filter_set_show_media_photos (SearchViewFilter* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = value;
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_show_media_photos = _tmp0_;
+#line 2149 "SearchFilter.c"
+}
+
+
+gboolean search_view_filter_get_show_media_raw (SearchViewFilter* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), FALSE);
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_show_media_raw;
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2164 "SearchFilter.c"
+}
+
+
+void search_view_filter_set_show_media_raw (SearchViewFilter* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = value;
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_show_media_raw = _tmp0_;
+#line 2176 "SearchFilter.c"
+}
+
+
+SavedSearch* search_view_filter_get_saved_search (SearchViewFilter* self) {
+ SavedSearch* result;
+ SavedSearch* _tmp0_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_VIEW_FILTER (self), NULL);
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_saved_search;
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2191 "SearchFilter.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2198 "SearchFilter.c"
+}
+
+
+void search_view_filter_set_saved_search (SearchViewFilter* self, SavedSearch* value) {
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (self));
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = value;
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->_saved_search);
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_saved_search = _tmp1_;
+#line 2215 "SearchFilter.c"
+}
+
+
+static void search_view_filter_class_init (SearchViewFilterClass * klass) {
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((ViewFilterClass *) klass)->finalize = search_view_filter_finalize;
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchViewFilterPrivate));
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = search_view_filter_real_get_criteria;
+#line 2228 "SearchFilter.c"
+}
+
+
+static void search_view_filter_instance_init (SearchViewFilter * self) {
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_VIEW_FILTER_GET_PRIVATE (self);
+#line 41 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_allow_higher = TRUE;
+#line 44 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating = RATING_UNRATED;
+#line 45 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_filter = RATING_FILTER_UNRATED_OR_HIGHER;
+#line 48 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_flagged = FALSE;
+#line 51 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_show_media_video = TRUE;
+#line 52 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_show_media_photos = TRUE;
+#line 53 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_show_media_raw = TRUE;
+#line 56 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter = NULL;
+#line 57 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words = NULL;
+#line 57 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words_length1 = 0;
+#line 57 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_search_filter_words_size_ = self->priv->search_filter_words_length1;
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_saved_search = NULL;
+#line 2259 "SearchFilter.c"
+}
+
+
+static void search_view_filter_finalize (ViewFilter* obj) {
+ SearchViewFilter * self;
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter);
+#line 56 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (self->priv->search_filter);
+#line 57 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter_words = (_vala_array_free (self->priv->search_filter_words, self->priv->search_filter_words_length1, (GDestroyNotify) g_free), NULL);
+#line 60 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->_saved_search);
+#line 39 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ VIEW_FILTER_CLASS (search_view_filter_parent_class)->finalize (obj);
+#line 2275 "SearchFilter.c"
+}
+
+
+GType search_view_filter_get_type (void) {
+ static volatile gsize search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchViewFilter), 0, (GInstanceInitFunc) search_view_filter_instance_init, NULL };
+ GType search_view_filter_type_id;
+ search_view_filter_type_id = g_type_register_static (TYPE_VIEW_FILTER, "SearchViewFilter", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&search_view_filter_type_id__volatile, search_view_filter_type_id);
+ }
+ return search_view_filter_type_id__volatile;
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2307 "SearchFilter.c"
+}
+
+
+static gboolean default_search_view_filter_real_predicate (ViewFilter* base, DataView* view) {
+ DefaultSearchViewFilter * self;
+ gboolean result = FALSE;
+ MediaSource* source = NULL;
+ DataView* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ guint criteria = 0U;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ guint _tmp14_ = 0U;
+ gboolean _tmp22_ = FALSE;
+ guint _tmp23_ = 0U;
+ gboolean _tmp44_ = FALSE;
+ guint _tmp45_ = 0U;
+ gboolean _tmp91_ = FALSE;
+ guint _tmp92_ = 0U;
+#line 181 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilter);
+#line 181 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 182 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = view;
+#line 182 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = thumbnail_get_media_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL, Thumbnail));
+#line 182 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ source = _tmp1_;
+#line 183 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = search_view_filter_get_criteria (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 183 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ criteria = _tmp2_;
+#line 186 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = criteria;
+#line 186 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((SEARCH_FILTER_CRITERIA_RATING & _tmp3_) != 0) {
+#line 2345 "SearchFilter.c"
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = search_view_filter_get_rating_allow_higher (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp5_) {
+#line 2352 "SearchFilter.c"
+ MediaSource* _tmp6_ = NULL;
+ Rating _tmp7_ = 0;
+ Rating _tmp8_ = 0;
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = source;
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = media_source_get_rating (_tmp6_);
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = search_view_filter_get_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = _tmp7_ < _tmp8_;
+#line 2364 "SearchFilter.c"
+ } else {
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = FALSE;
+#line 2368 "SearchFilter.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp4_) {
+#line 188 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 188 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 188 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2378 "SearchFilter.c"
+ } else {
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = search_view_filter_get_rating_allow_higher (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp10_) {
+#line 2386 "SearchFilter.c"
+ MediaSource* _tmp11_ = NULL;
+ Rating _tmp12_ = 0;
+ Rating _tmp13_ = 0;
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = source;
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = media_source_get_rating (_tmp11_);
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = search_view_filter_get_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = _tmp12_ != _tmp13_;
+#line 2398 "SearchFilter.c"
+ } else {
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = FALSE;
+#line 2402 "SearchFilter.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp9_) {
+#line 190 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 190 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 190 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2412 "SearchFilter.c"
+ }
+ }
+ }
+#line 194 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = criteria;
+#line 194 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((SEARCH_FILTER_CRITERIA_FLAG & _tmp14_) != 0) {
+#line 2420 "SearchFilter.c"
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = search_view_filter_get_flagged (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = _tmp17_;
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp18_) {
+#line 2431 "SearchFilter.c"
+ MediaSource* _tmp19_ = NULL;
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = source;
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_FLAGGABLE);
+#line 2437 "SearchFilter.c"
+ } else {
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = FALSE;
+#line 2441 "SearchFilter.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp16_) {
+#line 2445 "SearchFilter.c"
+ MediaSource* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = source;
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_FLAGGABLE, Flaggable));
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = !_tmp21_;
+#line 2454 "SearchFilter.c"
+ } else {
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = FALSE;
+#line 2458 "SearchFilter.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp15_) {
+#line 196 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 196 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 196 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2468 "SearchFilter.c"
+ }
+ }
+#line 200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = criteria;
+#line 200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((SEARCH_FILTER_CRITERIA_MEDIA & _tmp23_) != 0) {
+#line 2475 "SearchFilter.c"
+ gboolean _tmp24_ = FALSE;
+#line 200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = search_view_filter_filter_by_media_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = _tmp24_;
+#line 2481 "SearchFilter.c"
+ } else {
+#line 200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = FALSE;
+#line 2485 "SearchFilter.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp22_) {
+#line 2489 "SearchFilter.c"
+ MediaSource* _tmp25_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = source;
+#line 201 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp25_, TYPE_VIDEO_SOURCE)) {
+#line 2495 "SearchFilter.c"
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+#line 202 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp26_ = search_view_filter_get_show_media_video (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 202 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_ = _tmp26_;
+#line 202 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp27_) {
+#line 203 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 203 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 203 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2510 "SearchFilter.c"
+ }
+ } else {
+ MediaSource* _tmp28_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp28_ = source;
+#line 204 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp28_, TYPE_PHOTO)) {
+#line 2518 "SearchFilter.c"
+ Photo* photo = NULL;
+ MediaSource* _tmp29_ = NULL;
+ Photo* _tmp30_ = NULL;
+ Photo* _tmp31_ = NULL;
+ PhotoFileFormat _tmp32_ = 0;
+#line 205 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp29_ = source;
+#line 205 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp29_, TYPE_PHOTO) ? ((Photo*) _tmp29_) : NULL);
+#line 205 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ photo = _tmp30_;
+#line 206 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31_ = photo;
+#line 206 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_ = photo_get_master_file_format (_tmp31_);
+#line 206 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp32_ == PHOTO_FILE_FORMAT_RAW) {
+#line 2536 "SearchFilter.c"
+ Photo* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+#line 207 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp33_ = photo;
+#line 207 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp34_ = photo_is_raw_developer_available (_tmp33_, RAW_DEVELOPER_CAMERA);
+#line 207 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp34_) {
+#line 2545 "SearchFilter.c"
+ gboolean _tmp35_ = FALSE;
+ gboolean _tmp36_ = FALSE;
+ gboolean _tmp37_ = FALSE;
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp36_ = search_view_filter_get_show_media_photos (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp37_ = _tmp36_;
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp37_) {
+#line 2555 "SearchFilter.c"
+ gboolean _tmp38_ = FALSE;
+ gboolean _tmp39_ = FALSE;
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp38_ = search_view_filter_get_show_media_raw (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp39_ = _tmp38_;
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = !_tmp39_;
+#line 2564 "SearchFilter.c"
+ } else {
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = FALSE;
+#line 2568 "SearchFilter.c"
+ }
+#line 208 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp35_) {
+#line 209 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 209 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (photo);
+#line 209 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 209 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2580 "SearchFilter.c"
+ }
+ } else {
+ gboolean _tmp40_ = FALSE;
+ gboolean _tmp41_ = FALSE;
+#line 210 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_ = search_view_filter_get_show_media_raw (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 210 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp41_ = _tmp40_;
+#line 210 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp41_) {
+#line 211 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 211 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (photo);
+#line 211 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 211 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2599 "SearchFilter.c"
+ }
+ }
+ } else {
+ gboolean _tmp42_ = FALSE;
+ gboolean _tmp43_ = FALSE;
+#line 213 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp42_ = search_view_filter_get_show_media_photos (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 213 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp43_ = _tmp42_;
+#line 213 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp43_) {
+#line 214 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 214 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (photo);
+#line 214 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 214 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2619 "SearchFilter.c"
+ }
+ }
+#line 204 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (photo);
+#line 2624 "SearchFilter.c"
+ }
+ }
+ }
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_ = criteria;
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((SEARCH_FILTER_CRITERIA_TEXT & _tmp45_) != 0) {
+#line 2632 "SearchFilter.c"
+ gboolean _tmp46_ = FALSE;
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp46_ = search_view_filter_has_search_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp44_ = _tmp46_;
+#line 2638 "SearchFilter.c"
+ } else {
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp44_ = FALSE;
+#line 2642 "SearchFilter.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp44_) {
+#line 2646 "SearchFilter.c"
+ const gchar* media_keywords = NULL;
+ MediaSource* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ const gchar* event_keywords = NULL;
+ Event* event = NULL;
+ MediaSource* _tmp49_ = NULL;
+ Event* _tmp50_ = NULL;
+ Event* _tmp51_ = NULL;
+ GeeList* tags = NULL;
+ TagSourceCollection* _tmp54_ = NULL;
+ MediaSource* _tmp55_ = NULL;
+ GeeList* _tmp56_ = NULL;
+ gint _tmp57_ = 0;
+ GeeList* _tmp58_ = NULL;
+ gint tags_size = 0;
+ gint _tmp62_ = 0;
+ gchar** _tmp63_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp47_ = source;
+#line 220 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp48_ = indexable_get_indexable_keywords (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_INDEXABLE, Indexable));
+#line 220 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ media_keywords = _tmp48_;
+#line 222 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ event_keywords = NULL;
+#line 223 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp49_ = source;
+#line 223 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_ = media_source_get_event (_tmp49_);
+#line 223 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ event = _tmp50_;
+#line 224 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp51_ = event;
+#line 224 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp51_ != NULL) {
+#line 2682 "SearchFilter.c"
+ Event* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp52_ = event;
+#line 225 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp53_ = indexable_get_indexable_keywords (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_INDEXABLE, Indexable));
+#line 225 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ event_keywords = _tmp53_;
+#line 2691 "SearchFilter.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp54_ = tag_global;
+#line 227 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_ = source;
+#line 227 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp56_ = tag_source_collection_fetch_for_source (_tmp54_, _tmp55_);
+#line 227 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ tags = _tmp56_;
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp58_ = tags;
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp58_ != NULL) {
+#line 2705 "SearchFilter.c"
+ GeeList* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp59_ = tags;
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp60_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp61_ = _tmp60_;
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp57_ = _tmp61_;
+#line 2717 "SearchFilter.c"
+ } else {
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp57_ = 0;
+#line 2721 "SearchFilter.c"
+ }
+#line 228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ tags_size = _tmp57_;
+#line 230 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp63_ = search_view_filter_get_search_filter_words (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter), &_tmp62_);
+#line 2727 "SearchFilter.c"
+ {
+ gchar** word_collection = NULL;
+ gint word_collection_length1 = 0;
+ gint _word_collection_size_ = 0;
+ gint word_it = 0;
+#line 230 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ word_collection = _tmp63_;
+#line 230 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ word_collection_length1 = _tmp62_;
+#line 230 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ for (word_it = 0; word_it < _tmp62_; word_it = word_it + 1) {
+#line 2739 "SearchFilter.c"
+ const gchar* word = NULL;
+#line 230 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ word = word_collection[word_it];
+#line 2743 "SearchFilter.c"
+ {
+ gboolean _tmp64_ = FALSE;
+ const gchar* _tmp65_ = NULL;
+ gboolean _tmp69_ = FALSE;
+ const gchar* _tmp70_ = NULL;
+ gint _tmp74_ = 0;
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp65_ = media_keywords;
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp65_ != NULL) {
+#line 2754 "SearchFilter.c"
+ const gchar* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+ gboolean _tmp68_ = FALSE;
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp66_ = media_keywords;
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp67_ = word;
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp68_ = string_contains (_tmp66_, _tmp67_);
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp64_ = _tmp68_;
+#line 2766 "SearchFilter.c"
+ } else {
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp64_ = FALSE;
+#line 2770 "SearchFilter.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp64_) {
+#line 232 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ continue;
+#line 2776 "SearchFilter.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp70_ = event_keywords;
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp70_ != NULL) {
+#line 2782 "SearchFilter.c"
+ const gchar* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ gboolean _tmp73_ = FALSE;
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp71_ = event_keywords;
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp72_ = word;
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp73_ = string_contains (_tmp71_, _tmp72_);
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp69_ = _tmp73_;
+#line 2794 "SearchFilter.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp69_ = FALSE;
+#line 2798 "SearchFilter.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp69_) {
+#line 235 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ continue;
+#line 2804 "SearchFilter.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp74_ = tags_size;
+#line 237 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp74_ > 0) {
+#line 2810 "SearchFilter.c"
+ gboolean found = FALSE;
+ gboolean _tmp90_ = FALSE;
+#line 238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ found = FALSE;
+#line 2815 "SearchFilter.c"
+ {
+ gint ctr = 0;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ctr = 0;
+#line 2820 "SearchFilter.c"
+ {
+ gboolean _tmp75_ = FALSE;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp75_ = TRUE;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ while (TRUE) {
+#line 2827 "SearchFilter.c"
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ const gchar* tag_keywords = NULL;
+ GeeList* _tmp79_ = NULL;
+ gint _tmp80_ = 0;
+ gpointer _tmp81_ = NULL;
+ Tag* _tmp82_ = NULL;
+ const gchar* _tmp83_ = NULL;
+ const gchar* _tmp84_ = NULL;
+ gboolean _tmp85_ = FALSE;
+ const gchar* _tmp86_ = NULL;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp75_) {
+#line 2841 "SearchFilter.c"
+ gint _tmp76_ = 0;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp76_ = ctr;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ctr = _tmp76_ + 1;
+#line 2847 "SearchFilter.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp75_ = FALSE;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp77_ = ctr;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp78_ = tags_size;
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!(_tmp77_ < _tmp78_)) {
+#line 239 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 2859 "SearchFilter.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp79_ = tags;
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp80_ = ctr;
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp81_ = gee_list_get (_tmp79_, _tmp80_);
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp82_ = (Tag*) _tmp81_;
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp83_ = indexable_get_indexable_keywords (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, TYPE_INDEXABLE, Indexable));
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp84_ = _tmp83_;
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp82_);
+#line 240 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ tag_keywords = _tmp84_;
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp86_ = tag_keywords;
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp86_ != NULL) {
+#line 2881 "SearchFilter.c"
+ const gchar* _tmp87_ = NULL;
+ const gchar* _tmp88_ = NULL;
+ gboolean _tmp89_ = FALSE;
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp87_ = tag_keywords;
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp88_ = word;
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp89_ = string_contains (_tmp87_, _tmp88_);
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp85_ = _tmp89_;
+#line 2893 "SearchFilter.c"
+ } else {
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp85_ = FALSE;
+#line 2897 "SearchFilter.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp85_) {
+#line 242 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ found = TRUE;
+#line 244 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 2905 "SearchFilter.c"
+ }
+ }
+ }
+ }
+#line 248 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp90_ = found;
+#line 248 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp90_) {
+#line 249 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ continue;
+#line 2916 "SearchFilter.c"
+ }
+ }
+#line 254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (tags);
+#line 254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (event);
+#line 254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2929 "SearchFilter.c"
+ }
+ }
+ }
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (tags);
+#line 219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (event);
+#line 2937 "SearchFilter.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp92_ = criteria;
+#line 259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((SEARCH_FILTER_CRITERIA_SAVEDSEARCH & _tmp92_) != 0) {
+#line 2943 "SearchFilter.c"
+ gboolean _tmp93_ = FALSE;
+#line 259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp93_ = search_view_filter_has_saved_search (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp91_ = _tmp93_;
+#line 2949 "SearchFilter.c"
+ } else {
+#line 259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp91_ = FALSE;
+#line 2953 "SearchFilter.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp91_) {
+#line 2957 "SearchFilter.c"
+ SavedSearch* _tmp94_ = NULL;
+ SavedSearch* _tmp95_ = NULL;
+ MediaSource* _tmp96_ = NULL;
+ gboolean _tmp97_ = FALSE;
+#line 260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp94_ = search_view_filter_get_saved_search (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp95_ = _tmp94_;
+#line 260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp96_ = source;
+#line 260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp97_ = saved_search_predicate (_tmp95_, _tmp96_);
+#line 260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp97_;
+#line 260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2976 "SearchFilter.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = TRUE;
+#line 263 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (source);
+#line 263 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 2984 "SearchFilter.c"
+}
+
+
+DefaultSearchViewFilter* default_search_view_filter_construct (GType object_type) {
+ DefaultSearchViewFilter* self = NULL;
+#line 180 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (DefaultSearchViewFilter*) search_view_filter_construct (object_type);
+#line 180 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 2994 "SearchFilter.c"
+}
+
+
+static void default_search_view_filter_class_init (DefaultSearchViewFilterClass * klass) {
+#line 180 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ default_search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 180 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((ViewFilterClass *) klass)->predicate = default_search_view_filter_real_predicate;
+#line 3003 "SearchFilter.c"
+}
+
+
+static void default_search_view_filter_instance_init (DefaultSearchViewFilter * self) {
+}
+
+
+GType default_search_view_filter_get_type (void) {
+ static volatile gsize default_search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&default_search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DefaultSearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) default_search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DefaultSearchViewFilter), 0, (GInstanceInitFunc) default_search_view_filter_instance_init, NULL };
+ GType default_search_view_filter_type_id;
+ default_search_view_filter_type_id = g_type_register_static (TYPE_SEARCH_VIEW_FILTER, "DefaultSearchViewFilter", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&default_search_view_filter_type_id__volatile, default_search_view_filter_type_id);
+ }
+ return default_search_view_filter_type_id__volatile;
+}
+
+
+static gboolean disabled_view_filter_real_predicate (ViewFilter* base, DataView* view) {
+ DisabledViewFilter * self;
+ gboolean result = FALSE;
+#line 268 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DISABLED_VIEW_FILTER, DisabledViewFilter);
+#line 268 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 269 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = TRUE;
+#line 269 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3034 "SearchFilter.c"
+}
+
+
+static guint disabled_view_filter_real_get_criteria (SearchViewFilter* base) {
+ DisabledViewFilter * self;
+ guint result = 0U;
+#line 272 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DISABLED_VIEW_FILTER, DisabledViewFilter);
+#line 273 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = (guint) SEARCH_FILTER_CRITERIA_RATING;
+#line 273 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3047 "SearchFilter.c"
+}
+
+
+DisabledViewFilter* disabled_view_filter_construct (GType object_type) {
+ DisabledViewFilter* self = NULL;
+#line 267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (DisabledViewFilter*) search_view_filter_construct (object_type);
+#line 267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 3057 "SearchFilter.c"
+}
+
+
+DisabledViewFilter* disabled_view_filter_new (void) {
+#line 267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return disabled_view_filter_construct (TYPE_DISABLED_VIEW_FILTER);
+#line 3064 "SearchFilter.c"
+}
+
+
+static void disabled_view_filter_class_init (DisabledViewFilterClass * klass) {
+#line 267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ disabled_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((ViewFilterClass *) klass)->predicate = disabled_view_filter_real_predicate;
+#line 267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = disabled_view_filter_real_get_criteria;
+#line 3075 "SearchFilter.c"
+}
+
+
+static void disabled_view_filter_instance_init (DisabledViewFilter * self) {
+}
+
+
+GType disabled_view_filter_get_type (void) {
+ static volatile gsize disabled_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&disabled_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DisabledViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) disabled_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DisabledViewFilter), 0, (GInstanceInitFunc) disabled_view_filter_instance_init, NULL };
+ GType disabled_view_filter_type_id;
+ disabled_view_filter_type_id = g_type_register_static (TYPE_SEARCH_VIEW_FILTER, "DisabledViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&disabled_view_filter_type_id__volatile, disabled_view_filter_type_id);
+ }
+ return disabled_view_filter_type_id__volatile;
+}
+
+
+TextAction* text_action_construct (GType object_type, const gchar* init) {
+ TextAction* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (TextAction*) g_type_create_instance (object_type);
+#line 295 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = init;
+#line 295 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 295 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (self->priv->text);
+#line 295 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->text = _tmp1_;
+#line 294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 3111 "SearchFilter.c"
+}
+
+
+TextAction* text_action_new (const gchar* init) {
+#line 294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return text_action_construct (TYPE_TEXT_ACTION, init);
+#line 3118 "SearchFilter.c"
+}
+
+
+void text_action_set_text (TextAction* self, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 298 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_TEXT_ACTION (self));
+#line 299 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->text;
+#line 299 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = text;
+#line 299 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (g_strcmp0 (_tmp0_, _tmp1_) != 0) {
+#line 3133 "SearchFilter.c"
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = text;
+#line 300 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 300 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (self->priv->text);
+#line 300 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->text = _tmp3_;
+#line 301 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = text;
+#line 301 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "text-changed", _tmp4_);
+#line 3149 "SearchFilter.c"
+ }
+}
+
+
+void text_action_clear (TextAction* self) {
+#line 305 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_TEXT_ACTION (self));
+#line 306 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_set_text (self, NULL);
+#line 3159 "SearchFilter.c"
+}
+
+
+gboolean text_action_is_sensitive (TextAction* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 309 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_TEXT_ACTION (self), FALSE);
+#line 310 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->sensitive;
+#line 310 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 310 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3174 "SearchFilter.c"
+}
+
+
+void text_action_set_sensitive (TextAction* self, gboolean sensitive) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 313 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_TEXT_ACTION (self));
+#line 314 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->sensitive;
+#line 314 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = sensitive;
+#line 314 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp0_ != _tmp1_) {
+#line 3189 "SearchFilter.c"
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 315 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = sensitive;
+#line 315 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->sensitive = _tmp2_;
+#line 316 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = sensitive;
+#line 316 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "sensitivity-changed", _tmp3_);
+#line 3200 "SearchFilter.c"
+ }
+}
+
+
+gboolean text_action_is_visible (TextAction* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 320 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_TEXT_ACTION (self), FALSE);
+#line 321 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->visible;
+#line 321 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 321 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3216 "SearchFilter.c"
+}
+
+
+void text_action_set_visible (TextAction* self, gboolean visible) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 324 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_TEXT_ACTION (self));
+#line 325 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->visible;
+#line 325 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = visible;
+#line 325 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp0_ != _tmp1_) {
+#line 3231 "SearchFilter.c"
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 326 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = visible;
+#line 326 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->visible = _tmp2_;
+#line 327 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = visible;
+#line 327 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "visibility-changed", _tmp3_);
+#line 3242 "SearchFilter.c"
+ }
+}
+
+
+const gchar* text_action_get_value (TextAction* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_TEXT_ACTION (self), NULL);
+#line 280 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->text;
+#line 280 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 280 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3258 "SearchFilter.c"
+}
+
+
+static void value_text_action_init (GValue* value) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 3265 "SearchFilter.c"
+}
+
+
+static void value_text_action_free_value (GValue* value) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (value->data[0].v_pointer) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_unref (value->data[0].v_pointer);
+#line 3274 "SearchFilter.c"
+ }
+}
+
+
+static void value_text_action_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (src_value->data[0].v_pointer) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ dest_value->data[0].v_pointer = text_action_ref (src_value->data[0].v_pointer);
+#line 3284 "SearchFilter.c"
+ } else {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3288 "SearchFilter.c"
+ }
+}
+
+
+static gpointer value_text_action_peek_pointer (const GValue* value) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return value->data[0].v_pointer;
+#line 3296 "SearchFilter.c"
+}
+
+
+static gchar* value_text_action_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (collect_values[0].v_pointer) {
+#line 3303 "SearchFilter.c"
+ TextAction* object;
+ object = collect_values[0].v_pointer;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3310 "SearchFilter.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3314 "SearchFilter.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = text_action_ref (object);
+#line 3318 "SearchFilter.c"
+ } else {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 3322 "SearchFilter.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return NULL;
+#line 3326 "SearchFilter.c"
+}
+
+
+static gchar* value_text_action_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TextAction** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!object_p) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3337 "SearchFilter.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!value->data[0].v_pointer) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = NULL;
+#line 3343 "SearchFilter.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3347 "SearchFilter.c"
+ } else {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = text_action_ref (value->data[0].v_pointer);
+#line 3351 "SearchFilter.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return NULL;
+#line 3355 "SearchFilter.c"
+}
+
+
+GParamSpec* param_spec_text_action (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTextAction* spec;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TEXT_ACTION), NULL);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return G_PARAM_SPEC (spec);
+#line 3369 "SearchFilter.c"
+}
+
+
+gpointer value_get_text_action (const GValue* value) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TEXT_ACTION), NULL);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return value->data[0].v_pointer;
+#line 3378 "SearchFilter.c"
+}
+
+
+void value_set_text_action (GValue* value, gpointer v_object) {
+ TextAction* old;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TEXT_ACTION));
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ old = value->data[0].v_pointer;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (v_object) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TEXT_ACTION));
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = v_object;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_ref (value->data[0].v_pointer);
+#line 3398 "SearchFilter.c"
+ } else {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 3402 "SearchFilter.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (old) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_unref (old);
+#line 3408 "SearchFilter.c"
+ }
+}
+
+
+void value_take_text_action (GValue* value, gpointer v_object) {
+ TextAction* old;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TEXT_ACTION));
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ old = value->data[0].v_pointer;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (v_object) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TEXT_ACTION));
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = v_object;
+#line 3427 "SearchFilter.c"
+ } else {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 3431 "SearchFilter.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (old) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_unref (old);
+#line 3437 "SearchFilter.c"
+ }
+}
+
+
+static void text_action_class_init (TextActionClass * klass) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_parent_class = g_type_class_peek_parent (klass);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((TextActionClass *) klass)->finalize = text_action_finalize;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (TextActionPrivate));
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("text_changed", TYPE_TEXT_ACTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("sensitivity_changed", TYPE_TEXT_ACTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("visibility_changed", TYPE_TEXT_ACTION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 3455 "SearchFilter.c"
+}
+
+
+static void text_action_instance_init (TextAction * self) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = TEXT_ACTION_GET_PRIVATE (self);
+#line 284 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->text = NULL;
+#line 285 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->sensitive = TRUE;
+#line 286 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->visible = TRUE;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->ref_count = 1;
+#line 3470 "SearchFilter.c"
+}
+
+
+static void text_action_finalize (TextAction* obj) {
+ TextAction * self;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TEXT_ACTION, TextAction);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_destroy (self);
+#line 284 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (self->priv->text);
+#line 3482 "SearchFilter.c"
+}
+
+
+GType text_action_get_type (void) {
+ static volatile gsize text_action_type_id__volatile = 0;
+ if (g_once_init_enter (&text_action_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_text_action_init, value_text_action_free_value, value_text_action_copy_value, value_text_action_peek_pointer, "p", value_text_action_collect_value, "p", value_text_action_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TextActionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) text_action_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TextAction), 0, (GInstanceInitFunc) text_action_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType text_action_type_id;
+ text_action_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TextAction", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&text_action_type_id__volatile, text_action_type_id);
+ }
+ return text_action_type_id__volatile;
+}
+
+
+gpointer text_action_ref (gpointer instance) {
+ TextAction* self;
+ self = instance;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return instance;
+#line 3507 "SearchFilter.c"
+}
+
+
+void text_action_unref (gpointer instance) {
+ TextAction* self;
+ self = instance;
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ TEXT_ACTION_GET_CLASS (self)->finalize (self);
+#line 277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3520 "SearchFilter.c"
+ }
+}
+
+
+static void _search_filter_actions_on_text_changed_text_action_text_changed (TextAction* _sender, const gchar* text, gpointer self) {
+#line 410 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_text_changed ((SearchFilterActions*) self, _sender, text);
+#line 3528 "SearchFilter.c"
+}
+
+
+SearchFilterActions* search_filter_actions_construct (GType object_type) {
+ SearchFilterActions* self = NULL;
+ TextAction* _tmp0_ = NULL;
+ TextAction* _tmp1_ = NULL;
+#line 406 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterActions*) g_type_create_instance (object_type);
+#line 408 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_register (self);
+#line 410 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter_actions_get_text (self);
+#line 410 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_;
+#line 410 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (_tmp1_, "text-changed", (GCallback) _search_filter_actions_on_text_changed_text_action_text_changed, self);
+#line 406 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 3548 "SearchFilter.c"
+}
+
+
+SearchFilterActions* search_filter_actions_new (void) {
+#line 406 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_actions_construct (TYPE_SEARCH_FILTER_ACTIONS);
+#line 3555 "SearchFilter.c"
+}
+
+
+GtkActionGroup* search_filter_actions_get_action_group (SearchFilterActions* self) {
+ GtkActionGroup* result = NULL;
+ GtkActionGroup* _tmp0_ = NULL;
+ GtkActionGroup* _tmp1_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 414 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->action_group;
+#line 414 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 414 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp1_;
+#line 414 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3573 "SearchFilter.c"
+}
+
+
+SearchFilterCriteria search_filter_actions_get_criteria (SearchFilterActions* self) {
+ SearchFilterCriteria result = 0;
+ SearchFilterCriteria _tmp0_ = 0;
+#line 417 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), 0);
+#line 418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->criteria;
+#line 418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3588 "SearchFilter.c"
+}
+
+
+GtkAction* search_filter_actions_get_action (SearchFilterActions* self, const gchar* name) {
+ GtkAction* result = NULL;
+ GtkActionGroup* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 421 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->action_group;
+#line 422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = name;
+#line 422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = gtk_action_group_get_action (_tmp0_, _tmp1_);
+#line 422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp2_;
+#line 422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 3611 "SearchFilter.c"
+}
+
+
+void search_filter_actions_set_action_sensitive (SearchFilterActions* self, const gchar* name, gboolean sensitive) {
+ GtkAction* action = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ GtkAction* _tmp3_ = NULL;
+#line 425 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 425 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (name != NULL);
+#line 426 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = name;
+#line 426 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = search_filter_actions_get_action (self, _tmp0_);
+#line 426 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 426 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ action = _tmp2_;
+#line 427 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = action;
+#line 427 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp3_ != NULL) {
+#line 3637 "SearchFilter.c"
+ GtkAction* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 428 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = action;
+#line 428 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = sensitive;
+#line 428 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_set_sensitive (_tmp4_, _tmp5_);
+#line 3646 "SearchFilter.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (action);
+#line 3650 "SearchFilter.c"
+}
+
+
+void search_filter_actions_reset (SearchFilterActions* self) {
+ GtkToggleAction* _tmp0_ = NULL;
+ GtkToggleAction* _tmp1_ = NULL;
+ GtkToggleAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+ GtkToggleAction* _tmp4_ = NULL;
+ GtkToggleAction* _tmp5_ = NULL;
+ GtkToggleAction* _tmp6_ = NULL;
+ GtkToggleAction* _tmp7_ = NULL;
+ GtkRadioAction* _tmp8_ = NULL;
+ GtkRadioAction* _tmp9_ = NULL;
+ TextAction* _tmp10_ = NULL;
+ TextAction* _tmp11_ = NULL;
+#line 431 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 432 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter_actions_get_flagged (self);
+#line 432 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_;
+#line 432 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_action_set_active (_tmp1_, FALSE);
+#line 433 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = search_filter_actions_get_photos (self);
+#line 433 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = _tmp2_;
+#line 433 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_action_set_active (_tmp3_, FALSE);
+#line 434 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = search_filter_actions_get_raw (self);
+#line 434 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = _tmp4_;
+#line 434 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_action_set_active (_tmp5_, FALSE);
+#line 435 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = search_filter_actions_get_videos (self);
+#line 435 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp6_;
+#line 435 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_action_set_active (_tmp7_, FALSE);
+#line 436 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = search_filter_actions_get_rating (self);
+#line 436 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = _tmp8_;
+#line 436 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_radio_action_set_current_value (_tmp9_, (gint) RATING_FILTER_UNRATED_OR_HIGHER);
+#line 437 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = search_filter_actions_get_text (self);
+#line 437 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = _tmp10_;
+#line 437 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_set_text (_tmp11_, NULL);
+#line 3705 "SearchFilter.c"
+}
+
+
+void search_filter_actions_set_sensitive_for_search_criteria (SearchFilterActions* self, SearchFilterCriteria criteria) {
+ SearchFilterCriteria _tmp0_ = 0;
+#line 440 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 441 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = criteria;
+#line 441 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->criteria = _tmp0_;
+#line 442 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_update_sensitivities (self);
+#line 445 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "criteria-changed");
+#line 3721 "SearchFilter.c"
+}
+
+
+static void _search_filter_actions_on_media_tracker_updated_core_tracker_updated (CoreTracker* _sender, gpointer self) {
+#line 453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_media_tracker_updated ((SearchFilterActions*) self, _sender);
+#line 3728 "SearchFilter.c"
+}
+
+
+static void _search_filter_actions_on_camera_tracker_updated_core_tracker_updated (CoreTracker* _sender, gpointer self) {
+#line 455 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_camera_tracker_updated ((SearchFilterActions*) self, _sender);
+#line 3735 "SearchFilter.c"
+}
+
+
+void search_filter_actions_monitor_page_contents (SearchFilterActions* self, Page* old_page, Page* new_page) {
+ CheckerboardPage* old_tracked_page = NULL;
+ Page* _tmp0_ = NULL;
+ CheckerboardPage* _tmp1_ = NULL;
+ CheckerboardPage* _tmp2_ = NULL;
+ CheckerboardPage* new_tracked_page = NULL;
+ Page* _tmp11_ = NULL;
+ CheckerboardPage* _tmp12_ = NULL;
+ CheckerboardPage* _tmp13_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 448 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail ((old_page == NULL) || IS_PAGE (old_page));
+#line 448 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail ((new_page == NULL) || IS_PAGE (new_page));
+#line 449 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = old_page;
+#line 449 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_CHECKERBOARD_PAGE) ? ((CheckerboardPage*) _tmp0_) : NULL);
+#line 449 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ old_tracked_page = _tmp1_;
+#line 450 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = old_tracked_page;
+#line 450 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp2_ != NULL) {
+#line 3764 "SearchFilter.c"
+ CoreViewTracker* tracker = NULL;
+ CheckerboardPage* _tmp3_ = NULL;
+ CoreViewTracker* _tmp4_ = NULL;
+ CoreViewTracker* _tmp5_ = NULL;
+#line 451 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = old_tracked_page;
+#line 451 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = checkerboard_page_get_view_tracker (_tmp3_);
+#line 451 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ tracker = _tmp4_;
+#line 452 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = tracker;
+#line 452 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_MEDIA_VIEW_TRACKER)) {
+#line 3779 "SearchFilter.c"
+ CoreViewTracker* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = tracker;
+#line 453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("updated", CORE_TYPE_TRACKER, &_tmp7_, NULL, FALSE);
+#line 453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, CORE_TYPE_TRACKER, CoreTracker), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _search_filter_actions_on_media_tracker_updated_core_tracker_updated, self);
+#line 3788 "SearchFilter.c"
+ } else {
+ CoreViewTracker* _tmp8_ = NULL;
+#line 454 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = tracker;
+#line 454 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, TYPE_CAMERA_VIEW_TRACKER)) {
+#line 3795 "SearchFilter.c"
+ CoreViewTracker* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+#line 455 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = tracker;
+#line 455 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("updated", CORE_TYPE_TRACKER, &_tmp10_, NULL, FALSE);
+#line 455 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, CORE_TYPE_TRACKER, CoreTracker), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _search_filter_actions_on_camera_tracker_updated_core_tracker_updated, self);
+#line 3804 "SearchFilter.c"
+ }
+ }
+#line 450 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _core_tracker_unref0 (tracker);
+#line 3809 "SearchFilter.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = new_page;
+#line 458 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_CHECKERBOARD_PAGE) ? ((CheckerboardPage*) _tmp11_) : NULL);
+#line 458 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ new_tracked_page = _tmp12_;
+#line 459 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = new_tracked_page;
+#line 459 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp13_ != NULL) {
+#line 3821 "SearchFilter.c"
+ CoreViewTracker* tracker = NULL;
+ CheckerboardPage* _tmp14_ = NULL;
+ CoreViewTracker* _tmp15_ = NULL;
+ CoreViewTracker* _tmp16_ = NULL;
+#line 460 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->can_filter_by_stars = TRUE;
+#line 462 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = new_tracked_page;
+#line 462 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = checkerboard_page_get_view_tracker (_tmp14_);
+#line 462 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ tracker = _tmp15_;
+#line 463 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = tracker;
+#line 463 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_MEDIA_VIEW_TRACKER)) {
+#line 3838 "SearchFilter.c"
+ CoreViewTracker* _tmp17_ = NULL;
+ CoreViewTracker* _tmp18_ = NULL;
+#line 464 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = tracker;
+#line 464 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, CORE_TYPE_TRACKER, CoreTracker), "updated", (GCallback) _search_filter_actions_on_media_tracker_updated_core_tracker_updated, self);
+#line 465 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = tracker;
+#line 465 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_media_tracker_updated (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, CORE_TYPE_TRACKER, CoreTracker));
+#line 467 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _core_tracker_unref0 (tracker);
+#line 467 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (new_tracked_page);
+#line 467 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (old_tracked_page);
+#line 467 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return;
+#line 3857 "SearchFilter.c"
+ } else {
+ CoreViewTracker* _tmp19_ = NULL;
+#line 468 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = tracker;
+#line 468 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_CAMERA_VIEW_TRACKER)) {
+#line 3864 "SearchFilter.c"
+ CoreViewTracker* _tmp20_ = NULL;
+ CoreViewTracker* _tmp21_ = NULL;
+#line 469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = tracker;
+#line 469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, CORE_TYPE_TRACKER, CoreTracker), "updated", (GCallback) _search_filter_actions_on_camera_tracker_updated_core_tracker_updated, self);
+#line 470 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = tracker;
+#line 470 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_camera_tracker_updated (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, CORE_TYPE_TRACKER, CoreTracker));
+#line 472 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _core_tracker_unref0 (tracker);
+#line 472 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (new_tracked_page);
+#line 472 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (old_tracked_page);
+#line 472 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return;
+#line 3883 "SearchFilter.c"
+ }
+ }
+#line 459 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _core_tracker_unref0 (tracker);
+#line 3888 "SearchFilter.c"
+ }
+#line 477 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_flagged = FALSE;
+#line 478 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_photos = FALSE;
+#line 479 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_videos = FALSE;
+#line 480 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_raw = FALSE;
+#line 481 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->can_filter_by_stars = FALSE;
+#line 483 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_update_sensitivities (self);
+#line 448 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (new_tracked_page);
+#line 448 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (old_tracked_page);
+#line 3906 "SearchFilter.c"
+}
+
+
+static gpointer _core_tracker_ref0 (gpointer self) {
+#line 487 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self ? core_tracker_ref (self) : NULL;
+#line 3913 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_media_tracker_updated (SearchFilterActions* self, CoreTracker* t) {
+ MediaViewTracker* tracker = NULL;
+ CoreTracker* _tmp0_ = NULL;
+ MediaViewTracker* _tmp1_ = NULL;
+ MediaAccumulator* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ MediaAccumulator* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ MediaAccumulator* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ MediaAccumulator* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+#line 486 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 486 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (CORE_IS_TRACKER (t));
+#line 487 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = t;
+#line 487 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _core_tracker_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_VIEW_TRACKER, MediaViewTracker));
+#line 487 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ tracker = _tmp1_;
+#line 489 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = tracker->all;
+#line 489 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = _tmp2_->flagged;
+#line 489 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_flagged = _tmp3_ > 0;
+#line 490 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = tracker->all;
+#line 490 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = _tmp4_->photos;
+#line 490 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_photos = _tmp5_ > 0;
+#line 491 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = tracker->all;
+#line 491 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp6_->videos;
+#line 491 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_videos = _tmp7_ > 0;
+#line 492 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = tracker->all;
+#line 492 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = _tmp8_->raw;
+#line 492 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_raw = _tmp9_ > 0;
+#line 494 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_update_sensitivities (self);
+#line 486 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _core_tracker_unref0 (tracker);
+#line 3967 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_camera_tracker_updated (SearchFilterActions* self, CoreTracker* t) {
+ CameraViewTracker* tracker = NULL;
+ CoreTracker* _tmp0_ = NULL;
+ CameraViewTracker* _tmp1_ = NULL;
+ CameraAccumulator* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ CameraAccumulator* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ CameraAccumulator* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 497 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 497 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (CORE_IS_TRACKER (t));
+#line 498 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = t;
+#line 498 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _core_tracker_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_CAMERA_VIEW_TRACKER, CameraViewTracker));
+#line 498 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ tracker = _tmp1_;
+#line 500 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_flagged = FALSE;
+#line 501 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = tracker->all;
+#line 501 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = camera_accumulator_get_photos (_tmp2_);
+#line 501 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = _tmp3_;
+#line 501 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_photos = _tmp4_ > 0;
+#line 502 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = tracker->all;
+#line 502 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = camera_accumulator_get_videos (_tmp5_);
+#line 502 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp6_;
+#line 502 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_videos = _tmp7_ > 0;
+#line 503 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = tracker->all;
+#line 503 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = camera_accumulator_get_raw (_tmp8_);
+#line 503 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = _tmp9_;
+#line 503 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_raw = _tmp10_ > 0;
+#line 505 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_update_sensitivities (self);
+#line 497 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _core_tracker_unref0 (tracker);
+#line 4024 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_update_sensitivities (SearchFilterActions* self) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ SearchFilterCriteria _tmp2_ = 0;
+ GtkToggleAction* _tmp4_ = NULL;
+ GtkToggleAction* _tmp5_ = NULL;
+ gboolean allow_media = FALSE;
+ SearchFilterCriteria _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ GtkToggleAction* _tmp11_ = NULL;
+ GtkToggleAction* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ GtkToggleAction* _tmp17_ = NULL;
+ GtkToggleAction* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ GtkToggleAction* _tmp23_ = NULL;
+ GtkToggleAction* _tmp24_ = NULL;
+ gboolean allow_ratings = FALSE;
+ SearchFilterCriteria _tmp25_ = 0;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp32_ = FALSE;
+ gboolean _tmp33_ = FALSE;
+ TextAction* _tmp34_ = NULL;
+ TextAction* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ gboolean _tmp37_ = FALSE;
+ gboolean _tmp38_ = FALSE;
+ gboolean _tmp39_ = FALSE;
+#line 508 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->criteria;
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((SEARCH_FILTER_CRITERIA_FLAG & _tmp2_) != 0) {
+#line 4073 "SearchFilter.c"
+ gboolean _tmp3_ = FALSE;
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->has_flagged;
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp3_;
+#line 4079 "SearchFilter.c"
+ } else {
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = FALSE;
+#line 4083 "SearchFilter.c"
+ }
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp1_) {
+#line 510 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = RESOURCES_ICON_FILTER_FLAGGED;
+#line 4089 "SearchFilter.c"
+ } else {
+#line 510 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = RESOURCES_ICON_FILTER_FLAGGED_DISABLED;
+#line 4093 "SearchFilter.c"
+ }
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = search_filter_actions_get_flagged (self);
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = _tmp4_;
+#line 509 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_set_stock_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_action_get_type (), GtkAction), _tmp0_);
+#line 512 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = self->priv->criteria;
+#line 512 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ allow_media = (SEARCH_FILTER_CRITERIA_MEDIA & _tmp6_) != 0;
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = allow_media;
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp9_) {
+#line 4109 "SearchFilter.c"
+ gboolean _tmp10_ = FALSE;
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->has_videos;
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = _tmp10_;
+#line 4115 "SearchFilter.c"
+ } else {
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = FALSE;
+#line 4119 "SearchFilter.c"
+ }
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp8_) {
+#line 514 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = RESOURCES_ICON_FILTER_VIDEOS;
+#line 4125 "SearchFilter.c"
+ } else {
+#line 514 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = RESOURCES_ICON_FILTER_VIDEOS_DISABLED;
+#line 4129 "SearchFilter.c"
+ }
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = search_filter_actions_get_videos (self);
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = _tmp11_;
+#line 513 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_set_stock_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_action_get_type (), GtkAction), _tmp7_);
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = allow_media;
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp15_) {
+#line 4141 "SearchFilter.c"
+ gboolean _tmp16_ = FALSE;
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = self->priv->has_photos;
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = _tmp16_;
+#line 4147 "SearchFilter.c"
+ } else {
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = FALSE;
+#line 4151 "SearchFilter.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp14_) {
+#line 516 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = RESOURCES_ICON_FILTER_PHOTOS;
+#line 4157 "SearchFilter.c"
+ } else {
+#line 516 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = RESOURCES_ICON_FILTER_PHOTOS_DISABLED;
+#line 4161 "SearchFilter.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = search_filter_actions_get_photos (self);
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = _tmp17_;
+#line 515 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_set_stock_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_action_get_type (), GtkAction), _tmp13_);
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = allow_media;
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp21_) {
+#line 4173 "SearchFilter.c"
+ gboolean _tmp22_ = FALSE;
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = self->priv->has_raw;
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = _tmp22_;
+#line 4179 "SearchFilter.c"
+ } else {
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = FALSE;
+#line 4183 "SearchFilter.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp20_) {
+#line 518 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = RESOURCES_ICON_FILTER_RAW;
+#line 4189 "SearchFilter.c"
+ } else {
+#line 518 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = RESOURCES_ICON_FILTER_RAW_DISABLED;
+#line 4193 "SearchFilter.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = search_filter_actions_get_raw (self);
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = _tmp23_;
+#line 517 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_set_stock_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_action_get_type (), GtkAction), _tmp19_);
+#line 520 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = self->priv->criteria;
+#line 520 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ allow_ratings = (SEARCH_FILTER_CRITERIA_RATING & _tmp25_) != 0;
+#line 521 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp26_ = self->priv->can_filter_by_stars;
+#line 521 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayRejectedOnly", allow_ratings & _tmp26_);
+#line 522 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_ = self->priv->can_filter_by_stars;
+#line 522 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayRejectedOrHigher", allow_ratings & _tmp27_);
+#line 523 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp28_ = self->priv->can_filter_by_stars;
+#line 523 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayUnratedOrHigher", allow_ratings & _tmp28_);
+#line 524 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp29_ = self->priv->can_filter_by_stars;
+#line 524 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayOneOrHigher", allow_ratings & _tmp29_);
+#line 525 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30_ = self->priv->can_filter_by_stars;
+#line 525 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayTwoOrHigher", allow_ratings & _tmp30_);
+#line 526 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31_ = self->priv->can_filter_by_stars;
+#line 526 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayThreeOrHigher", allow_ratings & _tmp31_);
+#line 527 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_ = self->priv->can_filter_by_stars;
+#line 527 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayFourOrHigher", allow_ratings & _tmp32_);
+#line 528 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp33_ = self->priv->can_filter_by_stars;
+#line 528 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_action_sensitive (self, "CommonDisplayFiveOrHigher", allow_ratings & _tmp33_);
+#line 532 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp34_ = search_filter_actions_get_text (self);
+#line 532 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = _tmp34_;
+#line 532 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_set_sensitive (_tmp35_, TRUE);
+#line 534 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp36_ = self->priv->has_photos;
+#line 534 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp37_ = self->priv->has_videos;
+#line 534 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp38_ = self->priv->has_raw;
+#line 534 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp39_ = self->priv->has_flagged;
+#line 534 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "media-context-changed", _tmp36_, _tmp37_, _tmp38_, _tmp39_);
+#line 4253 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_text_changed (SearchFilterActions* self, TextAction* action, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+#line 537 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 537 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_TEXT_ACTION (action));
+#line 538 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = text;
+#line 538 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "text-changed", _tmp0_);
+#line 4267 "SearchFilter.c"
+}
+
+
+static void _vala_array_add339 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4278 "SearchFilter.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4282 "SearchFilter.c"
+}
+
+
+static void _vala_array_add340 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4293 "SearchFilter.c"
+ }
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4297 "SearchFilter.c"
+}
+
+
+static void _vala_array_add341 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4308 "SearchFilter.c"
+ }
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4312 "SearchFilter.c"
+}
+
+
+static void _vala_array_add342 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4323 "SearchFilter.c"
+ }
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4327 "SearchFilter.c"
+}
+
+
+static void _vala_array_add343 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4338 "SearchFilter.c"
+ }
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4342 "SearchFilter.c"
+}
+
+
+static void _vala_array_add344 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4353 "SearchFilter.c"
+ }
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4357 "SearchFilter.c"
+}
+
+
+static void _vala_array_add345 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4368 "SearchFilter.c"
+ }
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4372 "SearchFilter.c"
+}
+
+
+static void _vala_array_add346 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 4383 "SearchFilter.c"
+ }
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4387 "SearchFilter.c"
+}
+
+
+static void _search_filter_actions_on_rating_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self) {
+#line 595 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_rating_changed ((SearchFilterActions*) self, action, current);
+#line 4394 "SearchFilter.c"
+}
+
+
+static void _search_filter_actions_on_flagged_toggled_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_flagged_toggled ((SearchFilterActions*) self, action);
+#line 4401 "SearchFilter.c"
+}
+
+
+static void _vala_array_add347 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4412 "SearchFilter.c"
+ }
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4416 "SearchFilter.c"
+}
+
+
+static void _search_filter_actions_on_photos_toggled_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_photos_toggled ((SearchFilterActions*) self, action);
+#line 4423 "SearchFilter.c"
+}
+
+
+static void _vala_array_add348 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4434 "SearchFilter.c"
+ }
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4438 "SearchFilter.c"
+}
+
+
+static void _search_filter_actions_on_videos_toggled_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_videos_toggled ((SearchFilterActions*) self, action);
+#line 4445 "SearchFilter.c"
+}
+
+
+static void _vala_array_add349 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4456 "SearchFilter.c"
+ }
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4460 "SearchFilter.c"
+}
+
+
+static void _search_filter_actions_on_raw_toggled_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_on_raw_toggled ((SearchFilterActions*) self, action);
+#line 4467 "SearchFilter.c"
+}
+
+
+static void _vala_array_add350 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 4478 "SearchFilter.c"
+ }
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = *value;
+#line 4482 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_register (SearchFilterActions* self) {
+ TextAction* _tmp0_ = NULL;
+ GtkRadioActionEntry* view_filter_actions = NULL;
+ GtkRadioActionEntry* _tmp1_ = NULL;
+ gint view_filter_actions_length1 = 0;
+ gint _view_filter_actions_size_ = 0;
+ GtkRadioActionEntry rejected_only = {0};
+ GtkRadioActionEntry _tmp2_ = {0};
+ GtkRadioActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkRadioActionEntry _tmp4_ = {0};
+ GtkRadioActionEntry rejected_or_higher = {0};
+ GtkRadioActionEntry _tmp5_ = {0};
+ const gchar* _tmp6_ = NULL;
+ GtkRadioActionEntry* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ GtkRadioActionEntry _tmp8_ = {0};
+ GtkRadioActionEntry unrated_or_higher = {0};
+ GtkRadioActionEntry _tmp9_ = {0};
+ GtkRadioActionEntry* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ GtkRadioActionEntry _tmp11_ = {0};
+ GtkRadioActionEntry one_or_higher = {0};
+ GtkRadioActionEntry _tmp12_ = {0};
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkRadioActionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GtkRadioActionEntry _tmp16_ = {0};
+ GtkRadioActionEntry two_or_higher = {0};
+ GtkRadioActionEntry _tmp17_ = {0};
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GtkRadioActionEntry* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ GtkRadioActionEntry _tmp21_ = {0};
+ GtkRadioActionEntry three_or_higher = {0};
+ GtkRadioActionEntry _tmp22_ = {0};
+ const gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ GtkRadioActionEntry* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ GtkRadioActionEntry _tmp26_ = {0};
+ GtkRadioActionEntry four_or_higher = {0};
+ GtkRadioActionEntry _tmp27_ = {0};
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ GtkRadioActionEntry* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ GtkRadioActionEntry _tmp31_ = {0};
+ GtkRadioActionEntry five_or_higher = {0};
+ GtkRadioActionEntry _tmp32_ = {0};
+ const gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ GtkRadioActionEntry* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ GtkRadioActionEntry _tmp36_ = {0};
+ GtkActionGroup* _tmp37_ = NULL;
+ GtkRadioActionEntry* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ GtkToggleActionEntry* toggle_actions = NULL;
+ GtkToggleActionEntry* _tmp39_ = NULL;
+ gint toggle_actions_length1 = 0;
+ gint _toggle_actions_size_ = 0;
+ GtkToggleActionEntry flagged_action = {0};
+ GtkToggleActionEntry _tmp40_ = {0};
+ const gchar* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ GtkToggleActionEntry* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ GtkToggleActionEntry _tmp44_ = {0};
+ GtkToggleActionEntry photos_action = {0};
+ GtkToggleActionEntry _tmp45_ = {0};
+ const gchar* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ GtkToggleActionEntry* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ GtkToggleActionEntry _tmp49_ = {0};
+ GtkToggleActionEntry videos_action = {0};
+ GtkToggleActionEntry _tmp50_ = {0};
+ const gchar* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ GtkToggleActionEntry* _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ GtkToggleActionEntry _tmp54_ = {0};
+ GtkToggleActionEntry raw_action = {0};
+ GtkToggleActionEntry _tmp55_ = {0};
+ const gchar* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ GtkToggleActionEntry* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ GtkToggleActionEntry _tmp59_ = {0};
+ GtkActionGroup* _tmp60_ = NULL;
+ GtkToggleActionEntry* _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+#line 541 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 542 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = text_action_new (NULL);
+#line 542 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _text_action_unref0 (self->priv->_text);
+#line 542 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_text = _tmp0_;
+#line 544 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = g_new0 (GtkRadioActionEntry, 0);
+#line 544 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ view_filter_actions = _tmp1_;
+#line 544 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ view_filter_actions_length1 = 0;
+#line 544 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _view_filter_actions_size_ = view_filter_actions_length1;
+#line 546 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_.name = "CommonDisplayRejectedOnly";
+#line 546 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_.stock_id = NULL;
+#line 546 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 546 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_.accelerator = "<Ctrl>8";
+#line 546 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 546 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_.value = (gint) RATING_FILTER_REJECTED_ONLY;
+#line 546 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rejected_only = _tmp2_;
+#line 548 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rejected_only.label = RESOURCES_DISPLAY_REJECTED_ONLY_MENU;
+#line 549 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rejected_only.tooltip = RESOURCES_DISPLAY_REJECTED_ONLY_TOOLTIP;
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = view_filter_actions;
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3__length1 = view_filter_actions_length1;
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = rejected_only;
+#line 550 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add339 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp4_);
+#line 552 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_.name = "CommonDisplayRejectedOrHigher";
+#line 552 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_.stock_id = NULL;
+#line 552 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 552 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_.accelerator = "<Ctrl>9";
+#line 552 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 552 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_.value = (gint) RATING_FILTER_REJECTED_OR_HIGHER;
+#line 552 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rejected_or_higher = _tmp5_;
+#line 554 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rejected_or_higher.label = RESOURCES_DISPLAY_REJECTED_OR_HIGHER_MENU;
+#line 555 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = g_dpgettext2 (NULL, "Tooltip", RESOURCES_DISPLAY_REJECTED_OR_HIGHER_TOOLTIP);
+#line 555 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rejected_or_higher.tooltip = _tmp6_;
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = view_filter_actions;
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7__length1 = view_filter_actions_length1;
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = rejected_or_higher;
+#line 557 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add340 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp8_);
+#line 559 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_.name = "CommonDisplayUnratedOrHigher";
+#line 559 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_.stock_id = NULL;
+#line 559 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_.label = TRANSLATABLE;
+#line 559 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_.accelerator = "<Ctrl>0";
+#line 559 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_.tooltip = TRANSLATABLE;
+#line 559 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_.value = (gint) RATING_FILTER_UNRATED_OR_HIGHER;
+#line 559 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ unrated_or_higher = _tmp9_;
+#line 561 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ unrated_or_higher.label = RESOURCES_DISPLAY_UNRATED_OR_HIGHER_MENU;
+#line 562 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ unrated_or_higher.tooltip = RESOURCES_DISPLAY_UNRATED_OR_HIGHER_TOOLTIP;
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = view_filter_actions;
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10__length1 = view_filter_actions_length1;
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = unrated_or_higher;
+#line 563 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add341 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp11_);
+#line 565 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_.name = "CommonDisplayOneOrHigher";
+#line 565 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_.stock_id = NULL;
+#line 565 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_.label = TRANSLATABLE;
+#line 565 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_.accelerator = "<Ctrl>1";
+#line 565 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_.tooltip = TRANSLATABLE;
+#line 565 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_.value = (gint) RATING_FILTER_ONE_OR_HIGHER;
+#line 565 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ one_or_higher = _tmp12_;
+#line 567 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = resources_DISPLAY_ONE_OR_HIGHER_MENU;
+#line 567 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ one_or_higher.label = _tmp13_;
+#line 568 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = resources_DISPLAY_ONE_OR_HIGHER_TOOLTIP;
+#line 568 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ one_or_higher.tooltip = _tmp14_;
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = view_filter_actions;
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15__length1 = view_filter_actions_length1;
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = one_or_higher;
+#line 569 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add342 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp16_);
+#line 571 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_.name = "CommonDisplayTwoOrHigher";
+#line 571 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_.stock_id = NULL;
+#line 571 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_.label = TRANSLATABLE;
+#line 571 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_.accelerator = "<Ctrl>2";
+#line 571 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_.tooltip = TRANSLATABLE;
+#line 571 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_.value = (gint) RATING_FILTER_TWO_OR_HIGHER;
+#line 571 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ two_or_higher = _tmp17_;
+#line 573 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = resources_DISPLAY_TWO_OR_HIGHER_MENU;
+#line 573 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ two_or_higher.label = _tmp18_;
+#line 574 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = resources_DISPLAY_TWO_OR_HIGHER_TOOLTIP;
+#line 574 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ two_or_higher.tooltip = _tmp19_;
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = view_filter_actions;
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20__length1 = view_filter_actions_length1;
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = two_or_higher;
+#line 575 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add343 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp21_);
+#line 577 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_.name = "CommonDisplayThreeOrHigher";
+#line 577 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_.stock_id = NULL;
+#line 577 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_.label = TRANSLATABLE;
+#line 577 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_.accelerator = "<Ctrl>3";
+#line 577 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_.tooltip = TRANSLATABLE;
+#line 577 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_.value = (gint) RATING_FILTER_THREE_OR_HIGHER;
+#line 577 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ three_or_higher = _tmp22_;
+#line 579 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = resources_DISPLAY_THREE_OR_HIGHER_MENU;
+#line 579 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ three_or_higher.label = _tmp23_;
+#line 580 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = resources_DISPLAY_THREE_OR_HIGHER_TOOLTIP;
+#line 580 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ three_or_higher.tooltip = _tmp24_;
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = view_filter_actions;
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25__length1 = view_filter_actions_length1;
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp26_ = three_or_higher;
+#line 581 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add344 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp26_);
+#line 583 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_.name = "CommonDisplayFourOrHigher";
+#line 583 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_.stock_id = NULL;
+#line 583 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_.label = TRANSLATABLE;
+#line 583 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_.accelerator = "<Ctrl>4";
+#line 583 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_.tooltip = TRANSLATABLE;
+#line 583 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_.value = (gint) RATING_FILTER_FOUR_OR_HIGHER;
+#line 583 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ four_or_higher = _tmp27_;
+#line 585 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp28_ = resources_DISPLAY_FOUR_OR_HIGHER_MENU;
+#line 585 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ four_or_higher.label = _tmp28_;
+#line 586 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp29_ = resources_DISPLAY_FOUR_OR_HIGHER_TOOLTIP;
+#line 586 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ four_or_higher.tooltip = _tmp29_;
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30_ = view_filter_actions;
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30__length1 = view_filter_actions_length1;
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31_ = four_or_higher;
+#line 587 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add345 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp31_);
+#line 589 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_.name = "CommonDisplayFiveOrHigher";
+#line 589 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_.stock_id = NULL;
+#line 589 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_.label = TRANSLATABLE;
+#line 589 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_.accelerator = "<Ctrl>5";
+#line 589 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_.tooltip = TRANSLATABLE;
+#line 589 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_.value = (gint) RATING_FILTER_FIVE_OR_HIGHER;
+#line 589 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ five_or_higher = _tmp32_;
+#line 591 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp33_ = resources_DISPLAY_FIVE_OR_HIGHER_MENU;
+#line 591 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ five_or_higher.label = _tmp33_;
+#line 592 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp34_ = resources_DISPLAY_FIVE_OR_HIGHER_TOOLTIP;
+#line 592 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ five_or_higher.tooltip = _tmp34_;
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = view_filter_actions;
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35__length1 = view_filter_actions_length1;
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp36_ = five_or_higher;
+#line 593 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add346 (&view_filter_actions, &view_filter_actions_length1, &_view_filter_actions_size_, &_tmp36_);
+#line 595 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp37_ = self->priv->action_group;
+#line 595 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp38_ = view_filter_actions;
+#line 595 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp38__length1 = view_filter_actions_length1;
+#line 595 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_group_add_radio_actions (_tmp37_, _tmp38_, _tmp38__length1, (gint) RATING_FILTER_UNRATED_OR_HIGHER, (GCallback) _search_filter_actions_on_rating_changed_gtk_radio_action_callback, self);
+#line 598 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp39_ = g_new0 (GtkToggleActionEntry, 0);
+#line 598 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ toggle_actions = _tmp39_;
+#line 598 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ toggle_actions_length1 = 0;
+#line 598 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _toggle_actions_size_ = toggle_actions_length1;
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_.name = "CommonDisplayFlagged";
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_.stock_id = RESOURCES_ICON_FILTER_FLAGGED;
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_.label = TRANSLATABLE;
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_.accelerator = NULL;
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_.tooltip = TRANSLATABLE;
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_.callback = (GCallback) _search_filter_actions_on_flagged_toggled_gtk_action_callback;
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_.is_active = FALSE;
+#line 600 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ flagged_action = _tmp40_;
+#line 602 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp41_ = _ ("Flagged");
+#line 602 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ flagged_action.label = _tmp41_;
+#line 603 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp42_ = _ ("Flagged");
+#line 603 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ flagged_action.tooltip = _tmp42_;
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp43_ = toggle_actions;
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp43__length1 = toggle_actions_length1;
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp44_ = flagged_action;
+#line 604 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add347 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp44_);
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_.name = "CommonDisplayPhotos";
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_.stock_id = RESOURCES_ICON_FILTER_PHOTOS;
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_.label = TRANSLATABLE;
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_.accelerator = NULL;
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_.tooltip = TRANSLATABLE;
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_.callback = (GCallback) _search_filter_actions_on_photos_toggled_gtk_action_callback;
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_.is_active = FALSE;
+#line 606 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ photos_action = _tmp45_;
+#line 608 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp46_ = _ ("Photos");
+#line 608 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ photos_action.label = _tmp46_;
+#line 609 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp47_ = _ ("Photos");
+#line 609 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ photos_action.tooltip = _tmp47_;
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp48_ = toggle_actions;
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp48__length1 = toggle_actions_length1;
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp49_ = photos_action;
+#line 610 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add348 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp49_);
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_.name = "CommonDisplayVideos";
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_.stock_id = RESOURCES_ICON_FILTER_VIDEOS;
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_.label = TRANSLATABLE;
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_.accelerator = NULL;
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_.tooltip = TRANSLATABLE;
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_.callback = (GCallback) _search_filter_actions_on_videos_toggled_gtk_action_callback;
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_.is_active = FALSE;
+#line 612 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ videos_action = _tmp50_;
+#line 614 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp51_ = _ ("Videos");
+#line 614 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ videos_action.label = _tmp51_;
+#line 615 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp52_ = _ ("Videos");
+#line 615 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ videos_action.tooltip = _tmp52_;
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp53_ = toggle_actions;
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp53__length1 = toggle_actions_length1;
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp54_ = videos_action;
+#line 616 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add349 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp54_);
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_.name = "CommonDisplayRaw";
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_.stock_id = RESOURCES_ICON_FILTER_RAW;
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_.label = TRANSLATABLE;
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_.accelerator = NULL;
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_.tooltip = TRANSLATABLE;
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_.callback = (GCallback) _search_filter_actions_on_raw_toggled_gtk_action_callback;
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_.is_active = FALSE;
+#line 618 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ raw_action = _tmp55_;
+#line 620 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp56_ = _ ("RAW Photos");
+#line 620 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ raw_action.label = _tmp56_;
+#line 621 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp57_ = _ ("RAW photos");
+#line 621 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ raw_action.tooltip = _tmp57_;
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp58_ = toggle_actions;
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp58__length1 = toggle_actions_length1;
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp59_ = raw_action;
+#line 622 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add350 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp59_);
+#line 624 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp60_ = self->priv->action_group;
+#line 624 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp61_ = toggle_actions;
+#line 624 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp61__length1 = toggle_actions_length1;
+#line 624 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_group_add_toggle_actions (_tmp60_, _tmp61_, _tmp61__length1, self);
+#line 541 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ toggle_actions = (g_free (toggle_actions), NULL);
+#line 541 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ view_filter_actions = (g_free (view_filter_actions), NULL);
+#line 4983 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_rating_changed (SearchFilterActions* self, GtkAction* action, GtkAction* current) {
+ GtkAction* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 627 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 627 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 627 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (GTK_IS_ACTION (current));
+#line 628 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = current;
+#line 628 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = gtk_radio_action_get_current_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_radio_action_get_type (), GtkRadioAction));
+#line 628 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "rating-changed", (RatingFilter) _tmp1_);
+#line 5002 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_flagged_toggled (SearchFilterActions* self, GtkAction* action) {
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 631 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 631 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 632 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = action;
+#line 632 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 632 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp1_;
+#line 632 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "flagged-toggled", _tmp2_);
+#line 5022 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_photos_toggled (SearchFilterActions* self, GtkAction* action) {
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 635 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 635 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 636 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = action;
+#line 636 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 636 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp1_;
+#line 636 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "photos-toggled", _tmp2_);
+#line 5042 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_videos_toggled (SearchFilterActions* self, GtkAction* action) {
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 639 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 639 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 640 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = action;
+#line 640 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 640 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp1_;
+#line 640 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "videos-toggled", _tmp2_);
+#line 5062 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_on_raw_toggled (SearchFilterActions* self, GtkAction* action) {
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_ACTIONS (self));
+#line 643 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 644 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = action;
+#line 644 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 644 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp1_;
+#line 644 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "raw-toggled", _tmp2_);
+#line 5082 "SearchFilter.c"
+}
+
+
+gboolean search_filter_actions_get_has_photos (SearchFilterActions* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 647 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), FALSE);
+#line 648 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->has_photos;
+#line 648 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 648 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5097 "SearchFilter.c"
+}
+
+
+gboolean search_filter_actions_get_has_videos (SearchFilterActions* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 651 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), FALSE);
+#line 652 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->has_videos;
+#line 652 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 652 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5112 "SearchFilter.c"
+}
+
+
+gboolean search_filter_actions_get_has_raw (SearchFilterActions* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 655 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), FALSE);
+#line 656 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->has_raw;
+#line 656 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 656 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5127 "SearchFilter.c"
+}
+
+
+gboolean search_filter_actions_get_has_flagged (SearchFilterActions* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 659 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), FALSE);
+#line 660 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->has_flagged;
+#line 660 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 660 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5142 "SearchFilter.c"
+}
+
+
+GtkToggleAction* search_filter_actions_get_flagged (SearchFilterActions* self) {
+ GtkToggleAction* result;
+ GtkAction* _tmp0_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 336 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter_actions_get_action (self, "CommonDisplayFlagged");
+#line 336 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL;
+#line 336 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5157 "SearchFilter.c"
+}
+
+
+GtkToggleAction* search_filter_actions_get_photos (SearchFilterActions* self) {
+ GtkToggleAction* result;
+ GtkAction* _tmp0_ = NULL;
+#line 341 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 342 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter_actions_get_action (self, "CommonDisplayPhotos");
+#line 342 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL;
+#line 342 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5172 "SearchFilter.c"
+}
+
+
+GtkToggleAction* search_filter_actions_get_videos (SearchFilterActions* self) {
+ GtkToggleAction* result;
+ GtkAction* _tmp0_ = NULL;
+#line 347 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 348 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter_actions_get_action (self, "CommonDisplayVideos");
+#line 348 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL;
+#line 348 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5187 "SearchFilter.c"
+}
+
+
+GtkToggleAction* search_filter_actions_get_raw (SearchFilterActions* self) {
+ GtkToggleAction* result;
+ GtkAction* _tmp0_ = NULL;
+#line 353 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 354 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter_actions_get_action (self, "CommonDisplayRaw");
+#line 354 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL;
+#line 354 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5202 "SearchFilter.c"
+}
+
+
+GtkRadioAction* search_filter_actions_get_rating (SearchFilterActions* self) {
+ GtkRadioAction* result;
+ GtkAction* _tmp0_ = NULL;
+#line 359 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 360 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter_actions_get_action (self, "CommonDisplayUnratedOrHigher");
+#line 360 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_radio_action_get_type ()) ? ((GtkRadioAction*) _tmp0_) : NULL;
+#line 360 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5217 "SearchFilter.c"
+}
+
+
+TextAction* search_filter_actions_get_text (SearchFilterActions* self) {
+ TextAction* result;
+ TextAction* _tmp0_ = NULL;
+ TextAction* _tmp1_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (self), NULL);
+#line 366 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_text;
+#line 366 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_assert (_tmp0_ != NULL, "_text != null");
+#line 367 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->_text;
+#line 367 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp1_;
+#line 367 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5237 "SearchFilter.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN_BOOLEAN_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__BOOLEAN_BOOLEAN_BOOLEAN_BOOLEAN) (gpointer data1, gboolean arg_1, gboolean arg_2, gboolean arg_3, gboolean arg_4, gpointer data2);
+ register GMarshalFunc_VOID__BOOLEAN_BOOLEAN_BOOLEAN_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (n_param_values == 5);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ data1 = closure->data;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 5256 "SearchFilter.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ data2 = closure->data;
+#line 5262 "SearchFilter.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ callback = (GMarshalFunc_VOID__BOOLEAN_BOOLEAN_BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ callback (data1, g_value_get_boolean (param_values + 1), g_value_get_boolean (param_values + 2), g_value_get_boolean (param_values + 3), g_value_get_boolean (param_values + 4), data2);
+#line 5268 "SearchFilter.c"
+}
+
+
+static void value_search_filter_actions_init (GValue* value) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 5275 "SearchFilter.c"
+}
+
+
+static void value_search_filter_actions_free_value (GValue* value) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (value->data[0].v_pointer) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_unref (value->data[0].v_pointer);
+#line 5284 "SearchFilter.c"
+ }
+}
+
+
+static void value_search_filter_actions_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (src_value->data[0].v_pointer) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ dest_value->data[0].v_pointer = search_filter_actions_ref (src_value->data[0].v_pointer);
+#line 5294 "SearchFilter.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 5298 "SearchFilter.c"
+ }
+}
+
+
+static gpointer value_search_filter_actions_peek_pointer (const GValue* value) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return value->data[0].v_pointer;
+#line 5306 "SearchFilter.c"
+}
+
+
+static gchar* value_search_filter_actions_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (collect_values[0].v_pointer) {
+#line 5313 "SearchFilter.c"
+ SearchFilterActions* object;
+ object = collect_values[0].v_pointer;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5320 "SearchFilter.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5324 "SearchFilter.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = search_filter_actions_ref (object);
+#line 5328 "SearchFilter.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 5332 "SearchFilter.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return NULL;
+#line 5336 "SearchFilter.c"
+}
+
+
+static gchar* value_search_filter_actions_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SearchFilterActions** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!object_p) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 5347 "SearchFilter.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!value->data[0].v_pointer) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = NULL;
+#line 5353 "SearchFilter.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = value->data[0].v_pointer;
+#line 5357 "SearchFilter.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = search_filter_actions_ref (value->data[0].v_pointer);
+#line 5361 "SearchFilter.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return NULL;
+#line 5365 "SearchFilter.c"
+}
+
+
+GParamSpec* param_spec_search_filter_actions (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSearchFilterActions* spec;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SEARCH_FILTER_ACTIONS), NULL);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return G_PARAM_SPEC (spec);
+#line 5379 "SearchFilter.c"
+}
+
+
+gpointer value_get_search_filter_actions (const GValue* value) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_FILTER_ACTIONS), NULL);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return value->data[0].v_pointer;
+#line 5388 "SearchFilter.c"
+}
+
+
+void value_set_search_filter_actions (GValue* value, gpointer v_object) {
+ SearchFilterActions* old;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_FILTER_ACTIONS));
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ old = value->data[0].v_pointer;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (v_object) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SEARCH_FILTER_ACTIONS));
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = v_object;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_ref (value->data[0].v_pointer);
+#line 5408 "SearchFilter.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 5412 "SearchFilter.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (old) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_unref (old);
+#line 5418 "SearchFilter.c"
+ }
+}
+
+
+void value_take_search_filter_actions (GValue* value, gpointer v_object) {
+ SearchFilterActions* old;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_FILTER_ACTIONS));
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ old = value->data[0].v_pointer;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (v_object) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SEARCH_FILTER_ACTIONS));
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = v_object;
+#line 5437 "SearchFilter.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 5441 "SearchFilter.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (old) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_unref (old);
+#line 5447 "SearchFilter.c"
+ }
+}
+
+
+static void search_filter_actions_class_init (SearchFilterActionsClass * klass) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_parent_class = g_type_class_peek_parent (klass);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((SearchFilterActionsClass *) klass)->finalize = search_filter_actions_finalize;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchFilterActionsPrivate));
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("flagged_toggled", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("photos_toggled", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("videos_toggled", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("raw_toggled", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("rating_changed", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, TYPE_RATING_FILTER);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("text_changed", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 5471 "SearchFilter.c"
+ /**
+ * fired when the kinds of media present in the current view change (e.g., a video becomes
+ * available in the view through a new import operation or no raw photos are available in
+ * the view anymore because the last one was moved to the trash)
+ */
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("media_context_changed", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN_BOOLEAN_BOOLEAN, G_TYPE_NONE, 4, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("criteria_changed", TYPE_SEARCH_FILTER_ACTIONS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 5481 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_instance_init (SearchFilterActions * self) {
+ GtkActionGroup* _tmp0_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_FILTER_ACTIONS_GET_PRIVATE (self);
+#line 371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = gtk_action_group_new ("SearchFilterActionGroup");
+#line 371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->action_group = _tmp0_;
+#line 372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->criteria = SEARCH_FILTER_CRITERIA_ALL;
+#line 373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_text = NULL;
+#line 374 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_flagged = TRUE;
+#line 375 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_photos = TRUE;
+#line 376 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_videos = TRUE;
+#line 377 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->has_raw = TRUE;
+#line 378 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->can_filter_by_stars = TRUE;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->ref_count = 1;
+#line 5509 "SearchFilter.c"
+}
+
+
+static void search_filter_actions_finalize (SearchFilterActions* obj) {
+ SearchFilterActions * self;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActions);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_destroy (self);
+#line 371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->action_group);
+#line 373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _text_action_unref0 (self->priv->_text);
+#line 5523 "SearchFilter.c"
+}
+
+
+GType search_filter_actions_get_type (void) {
+ static volatile gsize search_filter_actions_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_actions_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_search_filter_actions_init, value_search_filter_actions_free_value, value_search_filter_actions_copy_value, value_search_filter_actions_peek_pointer, "p", value_search_filter_actions_collect_value, "p", value_search_filter_actions_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterActionsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_actions_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterActions), 0, (GInstanceInitFunc) search_filter_actions_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType search_filter_actions_type_id;
+ search_filter_actions_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SearchFilterActions", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&search_filter_actions_type_id__volatile, search_filter_actions_type_id);
+ }
+ return search_filter_actions_type_id__volatile;
+}
+
+
+gpointer search_filter_actions_ref (gpointer instance) {
+ SearchFilterActions* self;
+ self = instance;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return instance;
+#line 5548 "SearchFilter.c"
+}
+
+
+void search_filter_actions_unref (gpointer instance) {
+ SearchFilterActions* self;
+ self = instance;
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ SEARCH_FILTER_ACTIONS_GET_CLASS (self)->finalize (self);
+#line 333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 5561 "SearchFilter.c"
+ }
+}
+
+
+static void _search_filter_toolbar_on_media_context_changed_search_filter_actions_media_context_changed (SearchFilterActions* _sender, gboolean has_photos, gboolean has_videos, gboolean has_raw, gboolean has_flagged, gpointer self) {
+#line 1244 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_media_context_changed ((SearchFilterToolbar*) self, has_photos, has_videos, has_raw, has_flagged);
+#line 5569 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_flagged_toggled_search_filter_actions_flagged_toggled (SearchFilterActions* _sender, gboolean on, gpointer self) {
+#line 1246 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_flagged_toggled ((SearchFilterToolbar*) self);
+#line 5576 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_photos_toggled_search_filter_actions_photos_toggled (SearchFilterActions* _sender, gboolean on, gpointer self) {
+#line 1247 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_photos_toggled ((SearchFilterToolbar*) self);
+#line 5583 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_videos_toggled_search_filter_actions_videos_toggled (SearchFilterActions* _sender, gboolean on, gpointer self) {
+#line 1248 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_videos_toggled ((SearchFilterToolbar*) self);
+#line 5590 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_raw_toggled_search_filter_actions_raw_toggled (SearchFilterActions* _sender, gboolean on, gpointer self) {
+#line 1249 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_raw_toggled ((SearchFilterToolbar*) self);
+#line 5597 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_rating_changed_search_filter_actions_rating_changed (SearchFilterActions* _sender, RatingFilter filter, gpointer self) {
+#line 1250 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_rating_changed ((SearchFilterToolbar*) self);
+#line 5604 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_search_text_changed_search_filter_actions_text_changed (SearchFilterActions* _sender, const gchar* text, gpointer self) {
+#line 1251 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_search_text_changed ((SearchFilterToolbar*) self);
+#line 5611 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_criteria_changed_search_filter_actions_criteria_changed (SearchFilterActions* _sender, gpointer self) {
+#line 1252 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_criteria_changed ((SearchFilterToolbar*) self);
+#line 5618 "SearchFilter.c"
+}
+
+
+static gboolean _search_filter_toolbar_on_context_menu_requested_gtk_toolbar_popup_context_menu (GtkToolbar* _sender, gint x, gint y, gint button_number, gpointer self) {
+ gboolean result;
+ result = search_filter_toolbar_on_context_menu_requested ((SearchFilterToolbar*) self, x, y, button_number);
+#line 1254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 5627 "SearchFilter.c"
+}
+
+
+static gpointer _search_filter_actions_ref0 (gpointer self) {
+#line 1136 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self ? search_filter_actions_ref (self) : NULL;
+#line 5634 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_context_menu_close_chosen_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+#line 1161 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_context_menu_close_chosen ((SearchFilterToolbar*) self);
+#line 5641 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_filter_button_clicked_search_filter_toolbar_rating_filter_button_clicked (SearchFilterToolbarRatingFilterButton* _sender, gpointer self) {
+#line 1201 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_filter_button_clicked ((SearchFilterToolbar*) self);
+#line 5648 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_saved_search_button_clicked_search_filter_toolbar_saved_search_filter_button_clicked (SearchFilterToolbarSavedSearchFilterButton* _sender, gpointer self) {
+#line 1212 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_saved_search_button_clicked ((SearchFilterToolbar*) self);
+#line 5655 "SearchFilter.c"
+}
+
+
+SearchFilterToolbar* search_filter_toolbar_construct (GType object_type, SearchFilterActions* actions) {
+ SearchFilterToolbar * self = NULL;
+ SearchFilterActions* _tmp0_ = NULL;
+ SearchFilterActions* _tmp1_ = NULL;
+ GtkToolbar* _tmp2_ = NULL;
+ SearchFilterActions* _tmp3_ = NULL;
+ SearchFilterActions* _tmp4_ = NULL;
+ TextAction* _tmp5_ = NULL;
+ TextAction* _tmp6_ = NULL;
+ SearchFilterToolbarSearchBox* _tmp7_ = NULL;
+ GtkToolbar* _tmp8_ = NULL;
+ GtkToolbar* _tmp9_ = NULL;
+ GFile* ui_file = NULL;
+ GFile* _tmp10_ = NULL;
+ GtkUIManager* _tmp21_ = NULL;
+ SearchFilterActions* _tmp22_ = NULL;
+ GtkActionGroup* _tmp23_ = NULL;
+ GtkActionGroup* _tmp24_ = NULL;
+ GtkMenuItem* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ GtkMenuItem* _tmp27_ = NULL;
+ GtkMenuItem* _tmp28_ = NULL;
+ GtkMenu* _tmp29_ = NULL;
+ GtkMenuItem* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ SearchFilterToolbarLabelToolItem* _tmp32_ = NULL;
+ GtkToolbar* _tmp33_ = NULL;
+ SearchFilterToolbarLabelToolItem* _tmp34_ = NULL;
+ SearchFilterActions* _tmp35_ = NULL;
+ GtkToggleAction* _tmp36_ = NULL;
+ GtkToggleAction* _tmp37_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp38_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp39_ = NULL;
+ SearchFilterActions* _tmp40_ = NULL;
+ GtkActionGroup* _tmp41_ = NULL;
+ GtkActionGroup* _tmp42_ = NULL;
+ GtkAction* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ SearchFilterActions* _tmp46_ = NULL;
+ GtkToggleAction* _tmp47_ = NULL;
+ GtkToggleAction* _tmp48_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp49_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp50_ = NULL;
+ SearchFilterActions* _tmp51_ = NULL;
+ GtkActionGroup* _tmp52_ = NULL;
+ GtkActionGroup* _tmp53_ = NULL;
+ GtkAction* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ SearchFilterActions* _tmp57_ = NULL;
+ GtkToggleAction* _tmp58_ = NULL;
+ GtkToggleAction* _tmp59_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp60_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp61_ = NULL;
+ SearchFilterActions* _tmp62_ = NULL;
+ GtkActionGroup* _tmp63_ = NULL;
+ GtkActionGroup* _tmp64_ = NULL;
+ GtkAction* _tmp65_ = NULL;
+ const gchar* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+ GtkToolbar* _tmp68_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp69_ = NULL;
+ GtkToolbar* _tmp70_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp71_ = NULL;
+ GtkToolbar* _tmp72_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp73_ = NULL;
+ GtkSeparatorToolItem* _tmp74_ = NULL;
+ GtkToolbar* _tmp75_ = NULL;
+ GtkSeparatorToolItem* _tmp76_ = NULL;
+ SearchFilterActions* _tmp77_ = NULL;
+ GtkToggleAction* _tmp78_ = NULL;
+ GtkToggleAction* _tmp79_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp80_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp81_ = NULL;
+ const gchar* _tmp82_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp83_ = NULL;
+ SearchFilterActions* _tmp84_ = NULL;
+ GtkActionGroup* _tmp85_ = NULL;
+ GtkActionGroup* _tmp86_ = NULL;
+ GtkAction* _tmp87_ = NULL;
+ const gchar* _tmp88_ = NULL;
+ const gchar* _tmp89_ = NULL;
+ GtkToolbar* _tmp90_ = NULL;
+ SearchFilterToolbarToggleActionToolButton* _tmp91_ = NULL;
+ GtkSeparatorToolItem* _tmp92_ = NULL;
+ GtkToolbar* _tmp93_ = NULL;
+ GtkSeparatorToolItem* _tmp94_ = NULL;
+ SearchFilterToolbarRatingFilterButton* _tmp95_ = NULL;
+ GtkUIManager* _tmp96_ = NULL;
+ GtkWidget* _tmp97_ = NULL;
+ GtkMenu* _tmp98_ = NULL;
+ SearchFilterToolbarRatingFilterButton* _tmp99_ = NULL;
+ const gchar* _tmp100_ = NULL;
+ SearchFilterToolbarRatingFilterButton* _tmp101_ = NULL;
+ SearchFilterToolbarRatingFilterButton* _tmp102_ = NULL;
+ GtkToolbar* _tmp103_ = NULL;
+ SearchFilterToolbarRatingFilterButton* _tmp104_ = NULL;
+ GtkSeparatorToolItem* _tmp105_ = NULL;
+ GtkToolbar* _tmp106_ = NULL;
+ GtkSeparatorToolItem* _tmp107_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp108_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp109_ = NULL;
+ const gchar* _tmp110_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp111_ = NULL;
+ const gchar* _tmp112_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp113_ = NULL;
+ GtkToolbar* _tmp114_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp115_ = NULL;
+ GtkSeparatorToolItem* separator_align = NULL;
+ GtkSeparatorToolItem* _tmp116_ = NULL;
+ GtkToolbar* _tmp117_ = NULL;
+ GtkToolbar* _tmp118_ = NULL;
+ SearchFilterToolbarSearchBox* _tmp119_ = NULL;
+ GtkToolbar* _tmp120_ = NULL;
+ SearchFilterActions* _tmp121_ = NULL;
+ SearchFilterActions* _tmp122_ = NULL;
+ SearchFilterActions* _tmp123_ = NULL;
+ SearchFilterActions* _tmp124_ = NULL;
+ SearchFilterActions* _tmp125_ = NULL;
+ SearchFilterActions* _tmp126_ = NULL;
+ SearchFilterActions* _tmp127_ = NULL;
+ GtkToolbar* _tmp128_ = NULL;
+ SearchFilterActions* _tmp129_ = NULL;
+ gboolean _tmp130_ = FALSE;
+ SearchFilterActions* _tmp131_ = NULL;
+ gboolean _tmp132_ = FALSE;
+ SearchFilterActions* _tmp133_ = NULL;
+ gboolean _tmp134_ = FALSE;
+ SearchFilterActions* _tmp135_ = NULL;
+ gboolean _tmp136_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1135 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_ACTIONS (actions), NULL);
+#line 1135 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbar*) g_object_new (object_type, NULL);
+#line 1136 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = actions;
+#line 1136 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _search_filter_actions_ref0 (_tmp0_);
+#line 1136 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _search_filter_actions_unref0 (self->priv->actions);
+#line 1136 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->actions = _tmp1_;
+#line 1137 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = (GtkToolbar*) gtk_toolbar_new ();
+#line 1137 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp2_);
+#line 1137 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbar);
+#line 1137 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->toolbar = _tmp2_;
+#line 1138 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = actions;
+#line 1138 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp3_, "media-context-changed", (GCallback) _search_filter_toolbar_on_media_context_changed_search_filter_actions_media_context_changed, self, 0);
+#line 1139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = actions;
+#line 1139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = search_filter_actions_get_text (_tmp4_);
+#line 1139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = _tmp5_;
+#line 1139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = search_filter_toolbar_search_box_new (_tmp6_);
+#line 1139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp7_);
+#line 1139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->search_box);
+#line 1139 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_box = _tmp7_;
+#line 1141 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->toolbar;
+#line 1141 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_buildable_set_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GTK_TYPE_BUILDABLE, GtkBuildable), "search-filter-toolbar");
+#line 1142 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = self->priv->toolbar;
+#line 1142 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_set_icon_size (_tmp9_, GTK_ICON_SIZE_SMALL_TOOLBAR);
+#line 1144 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = resources_get_ui ("search_bar.ui");
+#line 1144 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ui_file = _tmp10_;
+#line 5841 "SearchFilter.c"
+ {
+ GtkUIManager* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 1146 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = self->ui;
+#line 1146 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = g_file_get_path (ui_file);
+#line 1146 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = _tmp12_;
+#line 1146 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_ui_manager_add_ui_from_file (_tmp11_, _tmp13_, &_inner_error_);
+#line 1146 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp13_);
+#line 1146 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5858 "SearchFilter.c"
+ goto __catch580_g_error;
+ }
+ }
+ goto __finally580;
+ __catch580_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ err = _inner_error_;
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _inner_error_ = NULL;
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = _ ("Error loading UI file %s: %s");
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = g_file_get_path (ui_file);
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = _tmp15_;
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = err;
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = _tmp17_->message;
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = g_strdup_printf (_tmp14_, _tmp16_, _tmp18_);
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = _tmp19_;
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ app_window_panic (_tmp20_);
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp20_);
+#line 1148 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp16_);
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_error_free0 (err);
+#line 5899 "SearchFilter.c"
+ }
+ __finally580:
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (ui_file);
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_clear_error (&_inner_error_);
+#line 1145 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return NULL;
+#line 5912 "SearchFilter.c"
+ }
+#line 1152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = self->ui;
+#line 1152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = actions;
+#line 1152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = search_filter_actions_get_action_group (_tmp22_);
+#line 1152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = _tmp23_;
+#line 1152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_ui_manager_insert_action_group (_tmp21_, _tmp24_, 0);
+#line 1152 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp24_);
+#line 1159 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = self->priv->close_item;
+#line 1159 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp26_ = _ ("Close");
+#line 1159 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_menu_item_set_label (_tmp25_, _tmp26_);
+#line 1160 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_ = self->priv->close_item;
+#line 1160 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget));
+#line 1161 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp28_ = self->priv->close_item;
+#line 1161 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp28_, "activate", (GCallback) _search_filter_toolbar_on_context_menu_close_chosen_gtk_menu_item_activate, self, 0);
+#line 1162 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp29_ = self->priv->close_menu;
+#line 1162 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30_ = self->priv->close_item;
+#line 1162 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_menu_shell_append (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_menu_shell_get_type (), GtkMenuShell), (GtkWidget*) _tmp30_);
+#line 1165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31_ = _ ("Type");
+#line 1165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_ = search_filter_toolbar_label_tool_item_new (_tmp31_, 10, 5);
+#line 1165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp32_);
+#line 1165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->label_type);
+#line 1165 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->label_type = _tmp32_;
+#line 1166 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp33_ = self->priv->toolbar;
+#line 1166 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp34_ = self->priv->label_type;
+#line 1166 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp33_, G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = actions;
+#line 1168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp36_ = search_filter_actions_get_photos (_tmp35_);
+#line 1168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp37_ = _tmp36_;
+#line 1168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp38_ = search_filter_toolbar_toggle_action_tool_button_new (_tmp37_);
+#line 1168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp38_);
+#line 1168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_photos);
+#line 1168 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->toolbtn_photos = _tmp38_;
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp39_ = self->priv->toolbtn_photos;
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_ = actions;
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp41_ = search_filter_actions_get_action_group (_tmp40_);
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp42_ = _tmp41_;
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp43_ = gtk_action_group_get_action (_tmp42_, "CommonDisplayPhotos");
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp44_ = gtk_action_get_tooltip (_tmp43_);
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_ = _tmp44_;
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_tool_item_get_type (), GtkToolItem), _tmp45_);
+#line 1169 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp42_);
+#line 1171 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp46_ = actions;
+#line 1171 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp47_ = search_filter_actions_get_videos (_tmp46_);
+#line 1171 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp48_ = _tmp47_;
+#line 1171 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp49_ = search_filter_toolbar_toggle_action_tool_button_new (_tmp48_);
+#line 1171 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp49_);
+#line 1171 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_videos);
+#line 1171 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->toolbtn_videos = _tmp49_;
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_ = self->priv->toolbtn_videos;
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp51_ = actions;
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp52_ = search_filter_actions_get_action_group (_tmp51_);
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp53_ = _tmp52_;
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp54_ = gtk_action_group_get_action (_tmp53_, "CommonDisplayVideos");
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_ = gtk_action_get_tooltip (_tmp54_);
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp56_ = _tmp55_;
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_tool_item_get_type (), GtkToolItem), _tmp56_);
+#line 1172 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp53_);
+#line 1174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp57_ = actions;
+#line 1174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp58_ = search_filter_actions_get_raw (_tmp57_);
+#line 1174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp59_ = _tmp58_;
+#line 1174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp60_ = search_filter_toolbar_toggle_action_tool_button_new (_tmp59_);
+#line 1174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp60_);
+#line 1174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_raw);
+#line 1174 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->toolbtn_raw = _tmp60_;
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp61_ = self->priv->toolbtn_raw;
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp62_ = actions;
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp63_ = search_filter_actions_get_action_group (_tmp62_);
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp64_ = _tmp63_;
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp65_ = gtk_action_group_get_action (_tmp64_, "CommonDisplayRaw");
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp66_ = gtk_action_get_tooltip (_tmp65_);
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp67_ = _tmp66_;
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gtk_tool_item_get_type (), GtkToolItem), _tmp67_);
+#line 1175 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp64_);
+#line 1177 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp68_ = self->priv->toolbar;
+#line 1177 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp69_ = self->priv->toolbtn_photos;
+#line 1177 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp68_, G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1178 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp70_ = self->priv->toolbar;
+#line 1178 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp71_ = self->priv->toolbtn_videos;
+#line 1178 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp70_, G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1179 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp72_ = self->priv->toolbar;
+#line 1179 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp73_ = self->priv->toolbtn_raw;
+#line 1179 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp72_, G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1182 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp74_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 1182 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp74_);
+#line 1182 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->sepr_mediatype_flagged);
+#line 1182 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->sepr_mediatype_flagged = _tmp74_;
+#line 1183 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp75_ = self->priv->toolbar;
+#line 1183 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp76_ = self->priv->sepr_mediatype_flagged;
+#line 1183 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp75_, G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp77_ = actions;
+#line 1187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp78_ = search_filter_actions_get_flagged (_tmp77_);
+#line 1187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp79_ = _tmp78_;
+#line 1187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp80_ = search_filter_toolbar_toggle_action_tool_button_new (_tmp79_);
+#line 1187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp80_);
+#line 1187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_flag);
+#line 1187 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->toolbtn_flag = _tmp80_;
+#line 1188 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp81_ = self->priv->toolbtn_flag;
+#line 1188 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp82_ = _ ("Flagged");
+#line 1188 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_label (_tmp81_, _tmp82_);
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp83_ = self->priv->toolbtn_flag;
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp84_ = actions;
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp85_ = search_filter_actions_get_action_group (_tmp84_);
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp86_ = _tmp85_;
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp87_ = gtk_action_group_get_action (_tmp86_, "CommonDisplayFlagged");
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp88_ = gtk_action_get_tooltip (_tmp87_);
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp89_ = _tmp88_;
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, gtk_tool_item_get_type (), GtkToolItem), _tmp89_);
+#line 1189 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp86_);
+#line 1191 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp90_ = self->priv->toolbar;
+#line 1191 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp91_ = self->priv->toolbtn_flag;
+#line 1191 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp90_, G_TYPE_CHECK_INSTANCE_CAST (_tmp91_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1194 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp92_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 1194 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp92_);
+#line 1194 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->sepr_flagged_rating);
+#line 1194 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->sepr_flagged_rating = _tmp92_;
+#line 1195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp93_ = self->priv->toolbar;
+#line 1195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp94_ = self->priv->sepr_flagged_rating;
+#line 1195 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp93_, G_TYPE_CHECK_INSTANCE_CAST (_tmp94_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1198 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp95_ = self->priv->rating_button;
+#line 1198 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp96_ = self->ui;
+#line 1198 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp97_ = gtk_ui_manager_get_widget (_tmp96_, "/FilterPopupMenu");
+#line 1198 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp98_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp97_, gtk_menu_get_type (), GtkMenu));
+#line 1198 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp95_->filter_popup);
+#line 1198 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp95_->filter_popup = _tmp98_;
+#line 1199 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp99_ = self->priv->rating_button;
+#line 1199 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp100_ = _ ("Rating");
+#line 1199 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_rating_filter_button_set_label (_tmp99_, _tmp100_);
+#line 1200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp101_ = self->priv->rating_button;
+#line 1200 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_expand (G_TYPE_CHECK_INSTANCE_CAST (_tmp101_, gtk_tool_item_get_type (), GtkToolItem), FALSE);
+#line 1201 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp102_ = self->priv->rating_button;
+#line 1201 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp102_, "clicked", (GCallback) _search_filter_toolbar_on_filter_button_clicked_search_filter_toolbar_rating_filter_button_clicked, self, 0);
+#line 1202 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp103_ = self->priv->toolbar;
+#line 1202 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp104_ = self->priv->rating_button;
+#line 1202 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp103_, G_TYPE_CHECK_INSTANCE_CAST (_tmp104_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1205 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp105_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 1205 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp105_);
+#line 1205 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->sepr_rating_saved);
+#line 1205 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->sepr_rating_saved = _tmp105_;
+#line 1206 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp106_ = self->priv->toolbar;
+#line 1206 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp107_ = self->priv->sepr_rating_saved;
+#line 1206 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp106_, G_TYPE_CHECK_INSTANCE_CAST (_tmp107_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1209 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp108_ = self->priv->saved_search_button;
+#line 1209 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_expand (G_TYPE_CHECK_INSTANCE_CAST (_tmp108_, gtk_tool_item_get_type (), GtkToolItem), FALSE);
+#line 1210 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp109_ = self->priv->saved_search_button;
+#line 1210 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp110_ = _ ("Saved Search");
+#line 1210 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_filter_button_set_label (_tmp109_, _tmp110_);
+#line 1211 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp111_ = self->priv->saved_search_button;
+#line 1211 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp112_ = _ ("Use a saved search to filter items in the current view");
+#line 1211 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp111_, gtk_tool_item_get_type (), GtkToolItem), _tmp112_);
+#line 1212 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp113_ = self->priv->saved_search_button;
+#line 1212 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp113_, "clicked", (GCallback) _search_filter_toolbar_on_saved_search_button_clicked_search_filter_toolbar_saved_search_filter_button_clicked, self, 0);
+#line 1213 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp114_ = self->priv->toolbar;
+#line 1213 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp115_ = self->priv->saved_search_button;
+#line 1213 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp114_, G_TYPE_CHECK_INSTANCE_CAST (_tmp115_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1216 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp116_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 1216 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp116_);
+#line 1216 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ separator_align = _tmp116_;
+#line 1217 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_expand (G_TYPE_CHECK_INSTANCE_CAST (separator_align, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 1218 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_separator_tool_item_set_draw (separator_align, FALSE);
+#line 1219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp117_ = self->priv->toolbar;
+#line 1219 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp117_, G_TYPE_CHECK_INSTANCE_CAST (separator_align, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1222 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp118_ = self->priv->toolbar;
+#line 1222 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp119_ = self->priv->search_box;
+#line 1222 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toolbar_insert (_tmp118_, G_TYPE_CHECK_INSTANCE_CAST (_tmp119_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 1224 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp120_ = self->priv->toolbar;
+#line 1224 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp120_, gtk_widget_get_type (), GtkWidget));
+#line 1227 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp121_ = actions;
+#line 1227 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp121_, "flagged-toggled", (GCallback) _search_filter_toolbar_on_flagged_toggled_search_filter_actions_flagged_toggled, self, 0);
+#line 1228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp122_ = actions;
+#line 1228 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp122_, "photos-toggled", (GCallback) _search_filter_toolbar_on_photos_toggled_search_filter_actions_photos_toggled, self, 0);
+#line 1229 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp123_ = actions;
+#line 1229 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp123_, "videos-toggled", (GCallback) _search_filter_toolbar_on_videos_toggled_search_filter_actions_videos_toggled, self, 0);
+#line 1230 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp124_ = actions;
+#line 1230 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp124_, "raw-toggled", (GCallback) _search_filter_toolbar_on_raw_toggled_search_filter_actions_raw_toggled, self, 0);
+#line 1231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp125_ = actions;
+#line 1231 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp125_, "rating-changed", (GCallback) _search_filter_toolbar_on_rating_changed_search_filter_actions_rating_changed, self, 0);
+#line 1232 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp126_ = actions;
+#line 1232 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp126_, "text-changed", (GCallback) _search_filter_toolbar_on_search_text_changed_search_filter_actions_text_changed, self, 0);
+#line 1233 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp127_ = actions;
+#line 1233 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp127_, "criteria-changed", (GCallback) _search_filter_toolbar_on_criteria_changed_search_filter_actions_criteria_changed, self, 0);
+#line 1236 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp128_ = self->priv->toolbar;
+#line 1236 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp128_, "popup-context-menu", (GCallback) _search_filter_toolbar_on_context_menu_requested_gtk_toolbar_popup_context_menu, self, 0);
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp129_ = actions;
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp130_ = search_filter_actions_get_has_photos (_tmp129_);
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp131_ = actions;
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp132_ = search_filter_actions_get_has_videos (_tmp131_);
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp133_ = actions;
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp134_ = search_filter_actions_get_has_raw (_tmp133_);
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp135_ = actions;
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp136_ = search_filter_actions_get_has_flagged (_tmp135_);
+#line 1238 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_media_context_changed (self, _tmp130_, _tmp132_, _tmp134_, _tmp136_);
+#line 1135 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (separator_align);
+#line 1135 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (ui_file);
+#line 1135 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 6300 "SearchFilter.c"
+}
+
+
+SearchFilterToolbar* search_filter_toolbar_new (SearchFilterActions* actions) {
+#line 1135 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_construct (TYPE_SEARCH_FILTER_TOOLBAR, actions);
+#line 6307 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_media_context_changed (SearchFilterToolbar* self, gboolean has_photos, gboolean has_videos, gboolean has_raw, gboolean has_flagged) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 1257 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = has_photos;
+#line 1259 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp0_) {
+#line 6322 "SearchFilter.c"
+ SearchFilterToolbarToggleActionToolButton* _tmp1_ = NULL;
+#line 1260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->toolbtn_photos;
+#line 1260 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp1_, RESOURCES_ICON_FILTER_PHOTOS);
+#line 6328 "SearchFilter.c"
+ } else {
+ SearchFilterToolbarToggleActionToolButton* _tmp2_ = NULL;
+#line 1262 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->toolbtn_photos;
+#line 1262 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp2_, RESOURCES_ICON_FILTER_PHOTOS_DISABLED);
+#line 6335 "SearchFilter.c"
+ }
+#line 1264 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = has_videos;
+#line 1264 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp3_) {
+#line 6341 "SearchFilter.c"
+ SearchFilterToolbarToggleActionToolButton* _tmp4_ = NULL;
+#line 1265 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->toolbtn_videos;
+#line 1265 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp4_, RESOURCES_ICON_FILTER_VIDEOS);
+#line 6347 "SearchFilter.c"
+ } else {
+ SearchFilterToolbarToggleActionToolButton* _tmp5_ = NULL;
+#line 1267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->toolbtn_videos;
+#line 1267 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp5_, RESOURCES_ICON_FILTER_VIDEOS_DISABLED);
+#line 6354 "SearchFilter.c"
+ }
+#line 1269 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = has_raw;
+#line 1269 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp6_) {
+#line 6360 "SearchFilter.c"
+ SearchFilterToolbarToggleActionToolButton* _tmp7_ = NULL;
+#line 1270 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = self->priv->toolbtn_raw;
+#line 1270 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp7_, RESOURCES_ICON_FILTER_RAW);
+#line 6366 "SearchFilter.c"
+ } else {
+ SearchFilterToolbarToggleActionToolButton* _tmp8_ = NULL;
+#line 1272 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->toolbtn_raw;
+#line 1272 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp8_, RESOURCES_ICON_FILTER_RAW_DISABLED);
+#line 6373 "SearchFilter.c"
+ }
+#line 1274 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = has_flagged;
+#line 1274 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp9_) {
+#line 6379 "SearchFilter.c"
+ SearchFilterToolbarToggleActionToolButton* _tmp10_ = NULL;
+#line 1275 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->toolbtn_flag;
+#line 1275 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp10_, RESOURCES_ICON_FILTER_FLAGGED);
+#line 6385 "SearchFilter.c"
+ } else {
+ SearchFilterToolbarToggleActionToolButton* _tmp11_ = NULL;
+#line 1277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = self->priv->toolbtn_flag;
+#line 1277 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_set_icon_name (_tmp11_, RESOURCES_ICON_FILTER_FLAGGED_DISABLED);
+#line 6392 "SearchFilter.c"
+ }
+}
+
+
+static gboolean search_filter_toolbar_on_context_menu_requested (SearchFilterToolbar* self, gint x, gint y, gint button) {
+ gboolean result = FALSE;
+ GtkMenu* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ guint32 _tmp2_ = 0U;
+#line 1281 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SEARCH_FILTER_TOOLBAR (self), FALSE);
+#line 1282 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->close_menu;
+#line 1282 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = button;
+#line 1282 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = gtk_get_current_event_time ();
+#line 1282 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_menu_popup (_tmp0_, NULL, NULL, NULL, NULL, (guint) _tmp1_, _tmp2_);
+#line 1283 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 1283 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 6416 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_context_menu_close_chosen (SearchFilterToolbar* self) {
+ AppWindow* aw = NULL;
+ LibraryWindow* _tmp0_ = NULL;
+ GtkToggleAction* searchbar_toggle = NULL;
+ AppWindow* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+ GtkToggleAction* _tmp4_ = NULL;
+#line 1288 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1289 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = library_window_get_app ();
+#line 1289 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ aw = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_APP_WINDOW, AppWindow);
+#line 1294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = aw;
+#line 1294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = app_window_get_common_action (_tmp1_, "CommonDisplaySearchbar");
+#line 1294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp2_) : NULL;
+#line 1294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp3_ == NULL) {
+#line 1294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp2_);
+#line 6444 "SearchFilter.c"
+ }
+#line 1294 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ searchbar_toggle = _tmp3_;
+#line 1297 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = searchbar_toggle;
+#line 1297 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp4_ != NULL) {
+#line 6452 "SearchFilter.c"
+ GtkToggleAction* _tmp5_ = NULL;
+#line 1299 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = searchbar_toggle;
+#line 1299 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_action_set_active (_tmp5_, FALSE);
+#line 6458 "SearchFilter.c"
+ }
+#line 1288 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (searchbar_toggle);
+#line 1288 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (aw);
+#line 6464 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_flagged_toggled (SearchFilterToolbar* self) {
+#line 1303 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1304 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 6473 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_videos_toggled (SearchFilterToolbar* self) {
+#line 1307 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1308 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 6482 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_photos_toggled (SearchFilterToolbar* self) {
+#line 1311 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1312 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 6491 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_raw_toggled (SearchFilterToolbar* self) {
+#line 1315 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1316 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 6500 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_search_text_changed (SearchFilterToolbar* self) {
+#line 1319 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1320 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 6509 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_rating_changed (SearchFilterToolbar* self) {
+ AppWindow* aw = NULL;
+ LibraryWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ GtkToggleAction* searchbar_toggle = NULL;
+ AppWindow* _tmp2_ = NULL;
+ GtkAction* _tmp3_ = NULL;
+ GtkToggleAction* _tmp4_ = NULL;
+ GtkToggleAction* _tmp5_ = NULL;
+#line 1323 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1324 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = library_window_get_app ();
+#line 1324 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ aw = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_APP_WINDOW, AppWindow);
+#line 1326 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = aw;
+#line 1326 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp1_ == NULL) {
+#line 1327 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (aw);
+#line 1327 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return;
+#line 6536 "SearchFilter.c"
+ }
+#line 1329 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = aw;
+#line 1329 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = app_window_get_common_action (_tmp2_, "CommonDisplaySearchbar");
+#line 1329 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp3_) : NULL;
+#line 1329 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp4_ == NULL) {
+#line 1329 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp3_);
+#line 6548 "SearchFilter.c"
+ }
+#line 1329 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ searchbar_toggle = _tmp4_;
+#line 1330 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = searchbar_toggle;
+#line 1330 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp5_ != NULL) {
+#line 6556 "SearchFilter.c"
+ GtkToggleAction* _tmp6_ = NULL;
+#line 1331 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = searchbar_toggle;
+#line 1331 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_action_set_active (_tmp6_, TRUE);
+#line 6562 "SearchFilter.c"
+ }
+#line 1333 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 1323 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (searchbar_toggle);
+#line 1323 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (aw);
+#line 6570 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_criteria_changed (SearchFilterToolbar* self) {
+#line 1339 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1340 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 6579 "SearchFilter.c"
+}
+
+
+static gpointer _view_filter_ref0 (gpointer self) {
+#line 1347 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self ? view_filter_ref (self) : NULL;
+#line 6586 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_set_view_filter (SearchFilterToolbar* self, SearchViewFilter* search_filter) {
+ SearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+ SearchViewFilter* _tmp2_ = NULL;
+ SearchViewFilter* _tmp3_ = NULL;
+ SearchFilterActions* _tmp4_ = NULL;
+ SearchViewFilter* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ SearchFilterToolbarRatingFilterButton* _tmp7_ = NULL;
+ SearchViewFilter* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+#line 1343 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1343 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_VIEW_FILTER (search_filter));
+#line 1344 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search_filter;
+#line 1344 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->search_filter;
+#line 1344 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 1345 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return;
+#line 6613 "SearchFilter.c"
+ }
+#line 1347 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = search_filter;
+#line 1347 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = _view_filter_ref0 (_tmp2_);
+#line 1347 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 1347 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter = _tmp3_;
+#line 1350 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->actions;
+#line 1350 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = search_filter;
+#line 1350 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = search_view_filter_get_criteria (_tmp5_);
+#line 1350 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_actions_set_sensitive_for_search_criteria (_tmp4_, (SearchFilterCriteria) _tmp6_);
+#line 1351 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = self->priv->rating_button;
+#line 1351 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = search_filter;
+#line 1351 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = search_view_filter_get_criteria (_tmp8_);
+#line 1351 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), (SEARCH_FILTER_CRITERIA_RATING & _tmp9_) != 0);
+#line 1353 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 6641 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_unset_view_filter (SearchFilterToolbar* self) {
+ DisabledViewFilter* _tmp0_ = NULL;
+ DisabledViewFilter* _tmp1_ = NULL;
+#line 1356 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1357 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = disabled_view_filter_new ();
+#line 1357 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_;
+#line 1357 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_set_view_filter (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 1357 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _view_filter_unref0 (_tmp1_);
+#line 6658 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_update (SearchFilterToolbar* self) {
+ SearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp3_ = NULL;
+ SearchViewFilter* _tmp4_ = NULL;
+ SearchFilterActions* _tmp5_ = NULL;
+ TextAction* _tmp6_ = NULL;
+ TextAction* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ SearchViewFilter* _tmp10_ = NULL;
+ SearchFilterActions* _tmp11_ = NULL;
+ GtkToggleAction* _tmp12_ = NULL;
+ GtkToggleAction* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ SearchViewFilter* _tmp16_ = NULL;
+ SearchFilterActions* _tmp17_ = NULL;
+ GtkToggleAction* _tmp18_ = NULL;
+ GtkToggleAction* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ SearchViewFilter* _tmp22_ = NULL;
+ SearchFilterActions* _tmp23_ = NULL;
+ GtkToggleAction* _tmp24_ = NULL;
+ GtkToggleAction* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ SearchViewFilter* _tmp28_ = NULL;
+ SearchFilterActions* _tmp29_ = NULL;
+ GtkToggleAction* _tmp30_ = NULL;
+ GtkToggleAction* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ gboolean _tmp33_ = FALSE;
+ RatingFilter filter = 0;
+ SearchFilterActions* _tmp34_ = NULL;
+ GtkRadioAction* _tmp35_ = NULL;
+ GtkRadioAction* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ SearchViewFilter* _tmp39_ = NULL;
+ RatingFilter _tmp40_ = 0;
+ SearchFilterToolbarRatingFilterButton* _tmp41_ = NULL;
+ RatingFilter _tmp42_ = 0;
+ SearchViewFilter* _tmp43_ = NULL;
+ SavedSearch* _tmp44_ = NULL;
+ SearchFilterCriteria criteria = 0;
+ SearchFilterActions* _tmp45_ = NULL;
+ SearchFilterCriteria _tmp46_ = 0;
+ SearchFilterToolbarSearchBox* _tmp47_ = NULL;
+ SearchFilterCriteria _tmp48_ = 0;
+ SearchFilterToolbarRatingFilterButton* _tmp49_ = NULL;
+ SearchFilterCriteria _tmp50_ = 0;
+ SearchFilterToolbarToggleActionToolButton* _tmp51_ = NULL;
+ SearchFilterCriteria _tmp52_ = 0;
+ SearchFilterToolbarLabelToolItem* _tmp53_ = NULL;
+ SearchFilterCriteria _tmp54_ = 0;
+ SearchFilterToolbarToggleActionToolButton* _tmp55_ = NULL;
+ SearchFilterCriteria _tmp56_ = 0;
+ SearchFilterToolbarToggleActionToolButton* _tmp57_ = NULL;
+ SearchFilterCriteria _tmp58_ = 0;
+ SearchFilterToolbarToggleActionToolButton* _tmp59_ = NULL;
+ SearchFilterCriteria _tmp60_ = 0;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp61_ = NULL;
+ SearchFilterCriteria _tmp62_ = 0;
+ gboolean _tmp63_ = FALSE;
+ SearchFilterToolbarLabelToolItem* _tmp64_ = NULL;
+ gboolean _tmp65_ = FALSE;
+ gboolean _tmp66_ = FALSE;
+ GtkSeparatorToolItem* _tmp70_ = NULL;
+ gboolean _tmp71_ = FALSE;
+ gboolean _tmp72_ = FALSE;
+ SearchFilterToolbarLabelToolItem* _tmp73_ = NULL;
+ gboolean _tmp74_ = FALSE;
+ gboolean _tmp75_ = FALSE;
+ GtkSeparatorToolItem* _tmp86_ = NULL;
+ SearchViewFilter* _tmp87_ = NULL;
+#line 1361 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1362 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 1362 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (NULL == _tmp0_) {
+#line 6744 "SearchFilter.c"
+ LibraryWindow* _tmp1_ = NULL;
+ LibraryWindow* _tmp2_ = NULL;
+#line 1364 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = library_window_get_app ();
+#line 1364 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp1_;
+#line 1364 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ library_window_show_search_bar (_tmp2_, TRUE);
+#line 1364 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp2_);
+#line 6755 "SearchFilter.c"
+ }
+#line 1367 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->search_filter;
+#line 1367 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_assert (NULL != _tmp3_, "null != search_filter");
+#line 1369 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->search_filter;
+#line 1369 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->actions;
+#line 1369 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = search_filter_actions_get_text (_tmp5_);
+#line 1369 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp6_;
+#line 1369 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = text_action_get_value (_tmp7_);
+#line 1369 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = _tmp8_;
+#line 1369 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_set_search_filter (_tmp4_, _tmp9_);
+#line 1370 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->search_filter;
+#line 1370 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = self->priv->actions;
+#line 1370 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = search_filter_actions_get_flagged (_tmp11_);
+#line 1370 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = _tmp12_;
+#line 1370 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = gtk_toggle_action_get_active (_tmp13_);
+#line 1370 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = _tmp14_;
+#line 1370 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_set_flagged (_tmp10_, _tmp15_);
+#line 1371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = self->priv->search_filter;
+#line 1371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = self->priv->actions;
+#line 1371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = search_filter_actions_get_videos (_tmp17_);
+#line 1371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = _tmp18_;
+#line 1371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = gtk_toggle_action_get_active (_tmp19_);
+#line 1371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = _tmp20_;
+#line 1371 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_set_show_media_video (_tmp16_, _tmp21_);
+#line 1372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = self->priv->search_filter;
+#line 1372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = self->priv->actions;
+#line 1372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = search_filter_actions_get_photos (_tmp23_);
+#line 1372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = _tmp24_;
+#line 1372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp26_ = gtk_toggle_action_get_active (_tmp25_);
+#line 1372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_ = _tmp26_;
+#line 1372 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_set_show_media_photos (_tmp22_, _tmp27_);
+#line 1373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp28_ = self->priv->search_filter;
+#line 1373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp29_ = self->priv->actions;
+#line 1373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30_ = search_filter_actions_get_raw (_tmp29_);
+#line 1373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31_ = _tmp30_;
+#line 1373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_ = gtk_toggle_action_get_active (_tmp31_);
+#line 1373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp33_ = _tmp32_;
+#line 1373 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_set_show_media_raw (_tmp28_, _tmp33_);
+#line 1375 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp34_ = self->priv->actions;
+#line 1375 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = search_filter_actions_get_rating (_tmp34_);
+#line 1375 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp36_ = _tmp35_;
+#line 1375 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp37_ = gtk_radio_action_get_current_value (_tmp36_);
+#line 1375 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp38_ = _tmp37_;
+#line 1375 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filter = (RatingFilter) _tmp38_;
+#line 1376 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp39_ = self->priv->search_filter;
+#line 1376 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_ = filter;
+#line 1376 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_set_rating_filter (_tmp39_, _tmp40_);
+#line 1377 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp41_ = self->priv->rating_button;
+#line 1377 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp42_ = filter;
+#line 1377 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_rating_filter_button_set_filter_icon (_tmp41_, _tmp42_);
+#line 1379 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp43_ = self->priv->search_filter;
+#line 1379 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp44_ = self->priv->saved_search;
+#line 1379 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_view_filter_set_saved_search (_tmp43_, _tmp44_);
+#line 1383 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_ = self->priv->actions;
+#line 1383 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp46_ = search_filter_actions_get_criteria (_tmp45_);
+#line 1383 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ criteria = _tmp46_;
+#line 1385 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp47_ = self->priv->search_box;
+#line 1385 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp48_ = criteria;
+#line 1385 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_widget_get_type (), GtkWidget), (_tmp48_ & SEARCH_FILTER_CRITERIA_TEXT) != 0);
+#line 1387 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp49_ = self->priv->rating_button;
+#line 1387 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_ = criteria;
+#line 1387 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_widget_get_type (), GtkWidget), (_tmp50_ & SEARCH_FILTER_CRITERIA_RATING) != 0);
+#line 1389 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp51_ = self->priv->toolbtn_flag;
+#line 1389 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp52_ = criteria;
+#line 1389 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, gtk_widget_get_type (), GtkWidget), (_tmp52_ & SEARCH_FILTER_CRITERIA_FLAG) != 0);
+#line 1391 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp53_ = self->priv->label_type;
+#line 1391 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp54_ = criteria;
+#line 1391 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_widget_get_type (), GtkWidget), (_tmp54_ & SEARCH_FILTER_CRITERIA_MEDIA) != 0);
+#line 1392 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp55_ = self->priv->toolbtn_photos;
+#line 1392 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp56_ = criteria;
+#line 1392 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, gtk_widget_get_type (), GtkWidget), (_tmp56_ & SEARCH_FILTER_CRITERIA_MEDIA) != 0);
+#line 1393 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp57_ = self->priv->toolbtn_videos;
+#line 1393 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp58_ = criteria;
+#line 1393 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, gtk_widget_get_type (), GtkWidget), (_tmp58_ & SEARCH_FILTER_CRITERIA_MEDIA) != 0);
+#line 1394 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp59_ = self->priv->toolbtn_raw;
+#line 1394 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp60_ = criteria;
+#line 1394 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, gtk_widget_get_type (), GtkWidget), (_tmp60_ & SEARCH_FILTER_CRITERIA_MEDIA) != 0);
+#line 1396 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp61_ = self->priv->saved_search_button;
+#line 1396 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp62_ = criteria;
+#line 1396 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gtk_widget_get_type (), GtkWidget), (_tmp62_ & SEARCH_FILTER_CRITERIA_SAVEDSEARCH) != 0);
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp64_ = self->priv->label_type;
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp65_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_widget_get_type (), GtkWidget));
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp66_ = _tmp65_;
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp66_) {
+#line 6923 "SearchFilter.c"
+ SearchFilterToolbarToggleActionToolButton* _tmp67_ = NULL;
+ gboolean _tmp68_ = FALSE;
+ gboolean _tmp69_ = FALSE;
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp67_ = self->priv->toolbtn_flag;
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp68_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, gtk_widget_get_type (), GtkWidget));
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp69_ = _tmp68_;
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp63_ = _tmp69_;
+#line 6935 "SearchFilter.c"
+ } else {
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp63_ = FALSE;
+#line 6939 "SearchFilter.c"
+ }
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp70_ = self->priv->sepr_mediatype_flagged;
+#line 1400 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, gtk_widget_get_type (), GtkWidget), _tmp63_);
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp73_ = self->priv->label_type;
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp74_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, gtk_widget_get_type (), GtkWidget));
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp75_ = _tmp74_;
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp75_) {
+#line 6953 "SearchFilter.c"
+ SearchFilterToolbarRatingFilterButton* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+ gboolean _tmp78_ = FALSE;
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp76_ = self->priv->rating_button;
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp77_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, gtk_widget_get_type (), GtkWidget));
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp78_ = _tmp77_;
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp72_ = _tmp78_;
+#line 6965 "SearchFilter.c"
+ } else {
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp72_ = FALSE;
+#line 6969 "SearchFilter.c"
+ }
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp72_) {
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp71_ = TRUE;
+#line 6975 "SearchFilter.c"
+ } else {
+ gboolean _tmp79_ = FALSE;
+ SearchFilterToolbarToggleActionToolButton* _tmp80_ = NULL;
+ gboolean _tmp81_ = FALSE;
+ gboolean _tmp82_ = FALSE;
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp80_ = self->priv->toolbtn_flag;
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp81_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, gtk_widget_get_type (), GtkWidget));
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp82_ = _tmp81_;
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp82_) {
+#line 6989 "SearchFilter.c"
+ SearchFilterToolbarRatingFilterButton* _tmp83_ = NULL;
+ gboolean _tmp84_ = FALSE;
+ gboolean _tmp85_ = FALSE;
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp83_ = self->priv->rating_button;
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp84_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, gtk_widget_get_type (), GtkWidget));
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp85_ = _tmp84_;
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp79_ = _tmp85_;
+#line 7001 "SearchFilter.c"
+ } else {
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp79_ = FALSE;
+#line 7005 "SearchFilter.c"
+ }
+#line 1403 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp71_ = _tmp79_;
+#line 7009 "SearchFilter.c"
+ }
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp86_ = self->priv->sepr_flagged_rating;
+#line 1402 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp86_, gtk_widget_get_type (), GtkWidget), _tmp71_);
+#line 1406 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp87_ = self->priv->search_filter;
+#line 1406 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, TYPE_VIEW_FILTER, ViewFilter), "refresh");
+#line 7019 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_position_filter_popup (SearchFilterToolbar* self, GtkMenu* menu, gint* x, gint* y, gboolean* push_in) {
+ gint _vala_x = 0;
+ gint _vala_y = 0;
+ gboolean _vala_push_in = FALSE;
+ GtkMenu* _tmp0_ = NULL;
+ gint rx = 0;
+ gint ry = 0;
+ SearchFilterToolbarRatingFilterButton* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GtkAllocation rating_button_allocation = {0};
+ SearchFilterToolbarRatingFilterButton* _tmp5_ = NULL;
+ GtkAllocation _tmp6_ = {0};
+ GtkAllocation menubar_allocation = {0};
+ AppWindow* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+ Page* _tmp10_ = NULL;
+ GtkMenuBar* _tmp11_ = NULL;
+ GtkMenuBar* _tmp12_ = NULL;
+ GtkAllocation _tmp13_ = {0};
+ gint sidebar_w = 0;
+ ConfigFacade* _tmp14_ = NULL;
+ ConfigFacade* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ GtkAllocation _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GtkAllocation _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GtkAllocation _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ GtkAllocation _tmp24_ = {0};
+ gint _tmp25_ = 0;
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (GTK_IS_MENU (menu));
+#line 1410 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = menu;
+#line 1410 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_realize (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 1412 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->rating_button;
+#line 1412 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 1412 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gdk_window_get_root_origin (_tmp2_, &_tmp3_, &_tmp4_);
+#line 1412 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rx = _tmp3_;
+#line 1412 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ry = _tmp4_;
+#line 1415 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->rating_button;
+#line 1415 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), &_tmp6_);
+#line 1415 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ rating_button_allocation = _tmp6_;
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = _tmp7_;
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE_WINDOW, PageWindow));
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = _tmp9_;
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = page_get_menubar (_tmp10_);
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = _tmp11_;
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_get_allocation (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), &_tmp13_);
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ menubar_allocation = _tmp13_;
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1418 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1420 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = config_facade_get_instance ();
+#line 1420 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = _tmp14_;
+#line 1420 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = configuration_facade_get_sidebar_position (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1420 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = _tmp16_;
+#line 1420 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp15_);
+#line 1420 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ sidebar_w = _tmp17_;
+#line 1422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = rating_button_allocation;
+#line 1422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = _tmp18_.x;
+#line 1422 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_x = (rx + _tmp19_) + sidebar_w;
+#line 1423 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = rating_button_allocation;
+#line 1423 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = _tmp20_.y;
+#line 1423 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = rating_button_allocation;
+#line 1423 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = _tmp22_.height;
+#line 1423 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = menubar_allocation;
+#line 1423 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = _tmp24_.height;
+#line 1423 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_y = ((ry + _tmp21_) + _tmp23_) + _tmp25_;
+#line 1426 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_push_in = FALSE;
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (x) {
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *x = _vala_x;
+#line 7142 "SearchFilter.c"
+ }
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (y) {
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *y = _vala_y;
+#line 7148 "SearchFilter.c"
+ }
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (push_in) {
+#line 1409 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *push_in = _vala_push_in;
+#line 7154 "SearchFilter.c"
+ }
+}
+
+
+static void _search_filter_toolbar_position_filter_popup_gtk_menu_position_func (GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer self) {
+#line 1430 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_position_filter_popup ((SearchFilterToolbar*) self, menu, x, y, push_in);
+#line 1430 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_unref (self);
+#line 7164 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_filter_button_clicked (SearchFilterToolbar* self) {
+ SearchFilterToolbarRatingFilterButton* _tmp0_ = NULL;
+ GtkMenu* _tmp1_ = NULL;
+ guint32 _tmp2_ = 0U;
+#line 1429 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1430 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->rating_button;
+#line 1430 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_->filter_popup;
+#line 1430 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = gtk_get_current_event_time ();
+#line 1430 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_menu_popup (_tmp1_, NULL, NULL, _search_filter_toolbar_position_filter_popup_gtk_menu_position_func, g_object_ref (self), (guint) 0, _tmp2_);
+#line 7182 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_savedsearch_selected (SearchFilterToolbar* self, SavedSearch* saved_search) {
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+#line 1434 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1434 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (saved_search));
+#line 1435 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = saved_search;
+#line 1435 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1435 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->saved_search);
+#line 1435 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->saved_search = _tmp1_;
+#line 1436 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 7203 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_disable_savedsearch (SearchFilterToolbar* self) {
+#line 1439 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1440 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->saved_search);
+#line 1440 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->saved_search = NULL;
+#line 1441 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_update (self);
+#line 7216 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_edit_dialog (SearchFilterToolbar* self, SavedSearch* search) {
+ SearchFilterToolbarSavedSearchFilterButton* _tmp0_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp1_ = NULL;
+ SavedSearchDialog* ssd = NULL;
+ SavedSearch* _tmp2_ = NULL;
+ SavedSearchDialog* _tmp3_ = NULL;
+#line 1444 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1444 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 1445 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->saved_search_button;
+#line 1445 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_->filter_popup;
+#line 1445 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_hide (_tmp1_);
+#line 1446 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = search;
+#line 1446 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = saved_search_dialog_new_edit_existing (_tmp2_);
+#line 1446 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ssd = _tmp3_;
+#line 1447 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ saved_search_dialog_show (ssd);
+#line 1444 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _saved_search_dialog_unref0 (ssd);
+#line 7246 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_delete_dialog (SearchFilterToolbar* self, SavedSearch* search) {
+ SearchFilterToolbarSavedSearchFilterButton* _tmp0_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp1_ = NULL;
+ SavedSearch* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1450 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1450 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 1451 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->saved_search_button;
+#line 1451 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_->filter_popup;
+#line 1451 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_hide (_tmp1_);
+#line 1452 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = search;
+#line 1452 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = dialogs_confirm_delete_saved_search (_tmp2_);
+#line 1452 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp3_) {
+#line 7271 "SearchFilter.c"
+ CommandManager* _tmp4_ = NULL;
+ CommandManager* _tmp5_ = NULL;
+ SavedSearch* _tmp6_ = NULL;
+ DeleteSavedSearchCommand* _tmp7_ = NULL;
+ DeleteSavedSearchCommand* _tmp8_ = NULL;
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = app_window_get_command_manager ();
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = _tmp4_;
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = search;
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = delete_saved_search_command_new (_tmp6_);
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = _tmp7_;
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ command_manager_execute (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_COMMAND, Command));
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1453 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _command_manager_unref0 (_tmp5_);
+#line 7293 "SearchFilter.c"
+ }
+}
+
+
+static void search_filter_toolbar_add_dialog (SearchFilterToolbar* self) {
+ SearchFilterToolbarSavedSearchFilterButton* _tmp0_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp1_ = NULL;
+ SavedSearchDialog* _tmp2_ = NULL;
+ SavedSearchDialog* _tmp3_ = NULL;
+#line 1456 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1457 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->saved_search_button;
+#line 1457 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_->filter_popup;
+#line 1457 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_hide (_tmp1_);
+#line 1458 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = saved_search_dialog_new ();
+#line 1458 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = _tmp2_;
+#line 1458 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ saved_search_dialog_show (_tmp3_);
+#line 1458 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _saved_search_dialog_unref0 (_tmp3_);
+#line 7319 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_popover_closed (SearchFilterToolbar* self) {
+ SearchFilterToolbarSavedSearchFilterButton* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp2_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp3_ = NULL;
+#line 1461 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1463 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->elide_showing_again = TRUE;
+#line 1464 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->saved_search_button;
+#line 1464 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->saved_search;
+#line 1464 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_filter_button_set_active (_tmp0_, _tmp1_ != NULL);
+#line 1465 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->saved_search_button;
+#line 1465 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = _tmp2_->filter_popup;
+#line 1465 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_hide (_tmp3_);
+#line 7344 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_edit_dialog_search_filter_toolbar_saved_search_popover_edit_clicked (SearchFilterToolbarSavedSearchPopover* _sender, SavedSearch* search, gpointer self) {
+#line 1476 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_edit_dialog ((SearchFilterToolbar*) self, search);
+#line 7351 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_savedsearch_selected_search_filter_toolbar_saved_search_popover_search_activated (SearchFilterToolbarSavedSearchPopover* _sender, SavedSearch* search, gpointer self) {
+#line 1477 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_savedsearch_selected ((SearchFilterToolbar*) self, search);
+#line 7358 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_delete_dialog_search_filter_toolbar_saved_search_popover_delete_clicked (SearchFilterToolbarSavedSearchPopover* _sender, SavedSearch* search, gpointer self) {
+#line 1478 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_delete_dialog ((SearchFilterToolbar*) self, search);
+#line 7365 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_add_dialog_search_filter_toolbar_saved_search_popover_add_clicked (SearchFilterToolbarSavedSearchPopover* _sender, gpointer self) {
+#line 1479 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_add_dialog ((SearchFilterToolbar*) self);
+#line 7372 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_on_popover_closed_search_filter_toolbar_saved_search_popover_closed (SearchFilterToolbarSavedSearchPopover* _sender, gpointer self) {
+#line 1480 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_on_popover_closed ((SearchFilterToolbar*) self);
+#line 7379 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_on_saved_search_button_clicked (SearchFilterToolbar* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 1468 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->elide_showing_again;
+#line 1469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp1_) {
+#line 7392 "SearchFilter.c"
+ SavedSearch* _tmp2_ = NULL;
+#line 1469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->saved_search;
+#line 1469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 7398 "SearchFilter.c"
+ } else {
+#line 1469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = FALSE;
+#line 7402 "SearchFilter.c"
+ }
+#line 1469 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp0_) {
+#line 7406 "SearchFilter.c"
+ } else {
+ SavedSearch* _tmp3_ = NULL;
+#line 1470 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->saved_search;
+#line 1470 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp3_ != NULL) {
+#line 7413 "SearchFilter.c"
+ SearchFilterToolbarSavedSearchFilterButton* _tmp4_ = NULL;
+#line 1471 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->saved_search);
+#line 1471 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->saved_search = NULL;
+#line 1472 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->saved_search_button;
+#line 1472 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_filter_button_set_active (_tmp4_, FALSE);
+#line 1473 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_disable_savedsearch (self);
+#line 7425 "SearchFilter.c"
+ } else {
+ SearchFilterToolbarSavedSearchFilterButton* _tmp5_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp6_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp22_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp23_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp24_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp25_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp26_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp27_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp28_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp29_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp30_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp31_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp32_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp33_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp34_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp35_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp36_ = NULL;
+#line 1475 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->saved_search_button;
+#line 1475 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = _tmp5_->filter_popup;
+#line 1475 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp6_ != NULL) {
+#line 7450 "SearchFilter.c"
+ SearchFilterToolbarSavedSearchFilterButton* _tmp7_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp10_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp13_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp16_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp19_ = NULL;
+ SearchFilterToolbarSavedSearchPopover* _tmp20_ = NULL;
+ guint _tmp21_ = 0U;
+#line 1476 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = self->priv->saved_search_button;
+#line 1476 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = _tmp7_->filter_popup;
+#line 1476 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("edit-clicked", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, &_tmp9_, NULL, FALSE);
+#line 1476 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _search_filter_toolbar_edit_dialog_search_filter_toolbar_saved_search_popover_edit_clicked, self);
+#line 1477 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->saved_search_button;
+#line 1477 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = _tmp10_->filter_popup;
+#line 1477 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("search-activated", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, &_tmp12_, NULL, FALSE);
+#line 1477 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp11_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _search_filter_toolbar_on_savedsearch_selected_search_filter_toolbar_saved_search_popover_search_activated, self);
+#line 1478 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = self->priv->saved_search_button;
+#line 1478 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = _tmp13_->filter_popup;
+#line 1478 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("delete-clicked", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, &_tmp15_, NULL, FALSE);
+#line 1478 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp14_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _search_filter_toolbar_delete_dialog_search_filter_toolbar_saved_search_popover_delete_clicked, self);
+#line 1479 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = self->priv->saved_search_button;
+#line 1479 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = _tmp16_->filter_popup;
+#line 1479 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("add-clicked", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, &_tmp18_, NULL, FALSE);
+#line 1479 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp17_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp18_, 0, NULL, (GCallback) _search_filter_toolbar_add_dialog_search_filter_toolbar_saved_search_popover_add_clicked, self);
+#line 1480 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = self->priv->saved_search_button;
+#line 1480 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = _tmp19_->filter_popup;
+#line 1480 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("closed", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, &_tmp21_, NULL, FALSE);
+#line 1480 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp20_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp21_, 0, NULL, (GCallback) _search_filter_toolbar_on_popover_closed_search_filter_toolbar_saved_search_popover_closed, self);
+#line 7506 "SearchFilter.c"
+ }
+#line 1482 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = self->priv->saved_search_button;
+#line 1482 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = self->priv->saved_search_button;
+#line 1482 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = search_filter_toolbar_saved_search_popover_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget));
+#line 1482 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _search_filter_toolbar_saved_search_popover_unref0 (_tmp22_->filter_popup);
+#line 1482 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_->filter_popup = _tmp24_;
+#line 1483 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = self->priv->saved_search_button;
+#line 1483 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp26_ = _tmp25_->filter_popup;
+#line 1483 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp26_, "edit-clicked", (GCallback) _search_filter_toolbar_edit_dialog_search_filter_toolbar_saved_search_popover_edit_clicked, self, 0);
+#line 1484 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_ = self->priv->saved_search_button;
+#line 1484 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp28_ = _tmp27_->filter_popup;
+#line 1484 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp28_, "search-activated", (GCallback) _search_filter_toolbar_on_savedsearch_selected_search_filter_toolbar_saved_search_popover_search_activated, self, 0);
+#line 1485 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp29_ = self->priv->saved_search_button;
+#line 1485 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30_ = _tmp29_->filter_popup;
+#line 1485 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp30_, "delete-clicked", (GCallback) _search_filter_toolbar_delete_dialog_search_filter_toolbar_saved_search_popover_delete_clicked, self, 0);
+#line 1486 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31_ = self->priv->saved_search_button;
+#line 1486 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_ = _tmp31_->filter_popup;
+#line 1486 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp32_, "add-clicked", (GCallback) _search_filter_toolbar_add_dialog_search_filter_toolbar_saved_search_popover_add_clicked, self, 0);
+#line 1487 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp33_ = self->priv->saved_search_button;
+#line 1487 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp34_ = _tmp33_->filter_popup;
+#line 1487 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp34_, "closed", (GCallback) _search_filter_toolbar_on_popover_closed_search_filter_toolbar_saved_search_popover_closed, self, 0);
+#line 1489 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = self->priv->saved_search_button;
+#line 1489 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp36_ = _tmp35_->filter_popup;
+#line 1489 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_show_all (_tmp36_);
+#line 7554 "SearchFilter.c"
+ }
+ }
+#line 1491 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->elide_showing_again = FALSE;
+#line 7559 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_take_focus (SearchFilterToolbar* self) {
+ SearchFilterToolbarSearchBox* _tmp0_ = NULL;
+#line 1494 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SEARCH_FILTER_TOOLBAR (self));
+#line 1495 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->search_box;
+#line 1495 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_get_focus (_tmp0_);
+#line 7571 "SearchFilter.c"
+}
+
+
+static SearchFilterToolbarLabelToolItem* search_filter_toolbar_label_tool_item_construct (GType object_type, const gchar* s, gint left_padding, gint right_padding) {
+ SearchFilterToolbarLabelToolItem * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkLabel* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 678 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (s != NULL, NULL);
+#line 678 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbarLabelToolItem*) g_object_new (object_type, NULL);
+#line 679 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = s;
+#line 679 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = (GtkLabel*) gtk_label_new (_tmp0_);
+#line 679 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp1_);
+#line 679 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->label);
+#line 679 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->label = _tmp1_;
+#line 680 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = left_padding;
+#line 680 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp3_ != 0) {
+#line 680 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = TRUE;
+#line 7601 "SearchFilter.c"
+ } else {
+ gint _tmp4_ = 0;
+#line 680 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = right_padding;
+#line 680 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp4_ != 0;
+#line 7608 "SearchFilter.c"
+ }
+#line 680 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp2_) {
+#line 7612 "SearchFilter.c"
+ GtkAlignment* alignment = NULL;
+ GtkAlignment* _tmp5_ = NULL;
+ GtkAlignment* _tmp6_ = NULL;
+ GtkLabel* _tmp7_ = NULL;
+ GtkAlignment* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ GtkAlignment* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ GtkAlignment* _tmp12_ = NULL;
+#line 681 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, 0.5f, (gfloat) 0, (gfloat) 0);
+#line 681 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp5_);
+#line 681 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ alignment = _tmp5_;
+#line 682 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = alignment;
+#line 682 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = self->priv->label;
+#line 682 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 683 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = alignment;
+#line 683 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = left_padding;
+#line 683 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_set (_tmp8_, "left-padding", (guint) _tmp9_, NULL);
+#line 684 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = alignment;
+#line 684 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = right_padding;
+#line 684 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_set (_tmp10_, "right-padding", (guint) _tmp11_, NULL);
+#line 685 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = alignment;
+#line 685 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 680 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (alignment);
+#line 7652 "SearchFilter.c"
+ } else {
+ GtkLabel* _tmp13_ = NULL;
+#line 687 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = self->priv->label;
+#line 687 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget));
+#line 7659 "SearchFilter.c"
+ }
+#line 678 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 7663 "SearchFilter.c"
+}
+
+
+static SearchFilterToolbarLabelToolItem* search_filter_toolbar_label_tool_item_new (const gchar* s, gint left_padding, gint right_padding) {
+#line 678 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_label_tool_item_construct (SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM, s, left_padding, right_padding);
+#line 7670 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_label_tool_item_class_init (SearchFilterToolbarLabelToolItemClass * klass) {
+#line 675 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_label_tool_item_parent_class = g_type_class_peek_parent (klass);
+#line 675 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchFilterToolbarLabelToolItemPrivate));
+#line 675 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->finalize = search_filter_toolbar_label_tool_item_finalize;
+#line 7681 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_label_tool_item_instance_init (SearchFilterToolbarLabelToolItem * self) {
+#line 675 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_FILTER_TOOLBAR_LABEL_TOOL_ITEM_GET_PRIVATE (self);
+#line 7688 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_label_tool_item_finalize (GObject* obj) {
+ SearchFilterToolbarLabelToolItem * self;
+#line 675 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCH_FILTER_TOOLBAR_TYPE_LABEL_TOOL_ITEM, SearchFilterToolbarLabelToolItem);
+#line 676 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->label);
+#line 675 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (search_filter_toolbar_label_tool_item_parent_class)->finalize (obj);
+#line 7700 "SearchFilter.c"
+}
+
+
+static GType search_filter_toolbar_label_tool_item_get_type (void) {
+ static volatile gsize search_filter_toolbar_label_tool_item_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_label_tool_item_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarLabelToolItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_label_tool_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbarLabelToolItem), 0, (GInstanceInitFunc) search_filter_toolbar_label_tool_item_instance_init, NULL };
+ GType search_filter_toolbar_label_tool_item_type_id;
+ search_filter_toolbar_label_tool_item_type_id = g_type_register_static (gtk_tool_item_get_type (), "SearchFilterToolbarLabelToolItem", &g_define_type_info, 0);
+ g_once_init_leave (&search_filter_toolbar_label_tool_item_type_id__volatile, search_filter_toolbar_label_tool_item_type_id);
+ }
+ return search_filter_toolbar_label_tool_item_type_id__volatile;
+}
+
+
+static void _search_filter_toolbar_toggle_action_tool_button_on_button_activate_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 710 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_on_button_activate ((SearchFilterToolbarToggleActionToolButton*) self);
+#line 7719 "SearchFilter.c"
+}
+
+
+static SearchFilterToolbarToggleActionToolButton* search_filter_toolbar_toggle_action_tool_button_construct (GType object_type, GtkToggleAction* action) {
+ SearchFilterToolbarToggleActionToolButton * self = NULL;
+ GtkToggleAction* _tmp0_ = NULL;
+ GtkToggleAction* _tmp1_ = NULL;
+ GtkToggleButton* _tmp2_ = NULL;
+ GtkToggleButton* _tmp3_ = NULL;
+ GtkToggleButton* _tmp4_ = NULL;
+ GtkToggleAction* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ GtkToggleButton* _tmp8_ = NULL;
+ GtkToggleButton* _tmp9_ = NULL;
+ GtkToggleButton* _tmp10_ = NULL;
+ GtkToggleButton* _tmp11_ = NULL;
+ GtkToggleButton* _tmp12_ = NULL;
+#line 696 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (GTK_IS_TOGGLE_ACTION (action), NULL);
+#line 696 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbarToggleActionToolButton*) g_object_new (object_type, NULL);
+#line 697 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = action;
+#line 697 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 697 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->action);
+#line 697 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->action = _tmp1_;
+#line 698 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = (GtkToggleButton*) gtk_toggle_button_new ();
+#line 698 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp2_);
+#line 698 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->button);
+#line 698 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->button = _tmp2_;
+#line 699 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->button;
+#line 699 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 700 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->button;
+#line 700 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = action;
+#line 700 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = gtk_toggle_action_get_active (_tmp5_);
+#line 700 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp6_;
+#line 700 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_button_set_active (_tmp4_, _tmp7_);
+#line 701 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->button;
+#line 701 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_button_get_type (), GtkButton), "clicked", (GCallback) _search_filter_toolbar_toggle_action_tool_button_on_button_activate_gtk_button_clicked, self, 0);
+#line 702 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = self->priv->button;
+#line 702 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_has_tooltip (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 703 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->button;
+#line 703 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_relief (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_button_get_type (), GtkButton), GTK_RELIEF_NONE);
+#line 704 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = self->priv->button;
+#line 704 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), 2);
+#line 706 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = self->priv->button;
+#line 706 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 696 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 7794 "SearchFilter.c"
+}
+
+
+static SearchFilterToolbarToggleActionToolButton* search_filter_toolbar_toggle_action_tool_button_new (GtkToggleAction* action) {
+#line 696 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_toggle_action_tool_button_construct (SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON, action);
+#line 7801 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_toggle_action_tool_button_on_button_activate (SearchFilterToolbarToggleActionToolButton* self) {
+ GtkToggleAction* _tmp0_ = NULL;
+#line 713 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_TOGGLE_ACTION_TOOL_BUTTON (self));
+#line 714 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->action;
+#line 714 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_action_activate (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_action_get_type (), GtkAction));
+#line 7813 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_toggle_action_tool_button_set_icon_name (SearchFilterToolbarToggleActionToolButton* self, const gchar* icon_name) {
+ GtkImage* image = NULL;
+ GtkToggleButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GtkImage* _tmp7_ = NULL;
+ GtkToggleButton* _tmp8_ = NULL;
+ GtkImage* _tmp9_ = NULL;
+#line 717 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_TOGGLE_ACTION_TOOL_BUTTON (self));
+#line 717 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (icon_name != NULL);
+#line 718 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ image = NULL;
+#line 719 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->button;
+#line 719 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_always_show_image (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_button_get_type (), GtkButton), TRUE);
+#line 720 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = icon_name;
+#line 720 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = string_contains (_tmp1_, "disabled");
+#line 720 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp2_) {
+#line 7841 "SearchFilter.c"
+ const gchar* _tmp3_ = NULL;
+ GtkImage* _tmp4_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = icon_name;
+#line 721 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = (GtkImage*) gtk_image_new_from_stock (_tmp3_, GTK_ICON_SIZE_SMALL_TOOLBAR);
+#line 721 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp4_);
+#line 721 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (image);
+#line 721 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ image = _tmp4_;
+#line 7854 "SearchFilter.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+ GtkImage* _tmp6_ = NULL;
+#line 723 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = icon_name;
+#line 723 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp5_, GTK_ICON_SIZE_SMALL_TOOLBAR);
+#line 723 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp6_);
+#line 723 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (image);
+#line 723 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ image = _tmp6_;
+#line 7868 "SearchFilter.c"
+ }
+#line 724 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = image;
+#line 724 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), 6);
+#line 725 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->button;
+#line 725 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = image;
+#line 725 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_image (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_button_get_type (), GtkButton), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 717 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (image);
+#line 7882 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_toggle_action_tool_button_set_label (SearchFilterToolbarToggleActionToolButton* self, const gchar* label) {
+ GtkToggleButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 728 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_TOGGLE_ACTION_TOOL_BUTTON (self));
+#line 728 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (label != NULL);
+#line 729 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->button;
+#line 729 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = label;
+#line 729 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_label (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_button_get_type (), GtkButton), _tmp1_);
+#line 7899 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_toggle_action_tool_button_class_init (SearchFilterToolbarToggleActionToolButtonClass * klass) {
+#line 692 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_toggle_action_tool_button_parent_class = g_type_class_peek_parent (klass);
+#line 692 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchFilterToolbarToggleActionToolButtonPrivate));
+#line 692 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->finalize = search_filter_toolbar_toggle_action_tool_button_finalize;
+#line 7910 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_toggle_action_tool_button_instance_init (SearchFilterToolbarToggleActionToolButton * self) {
+#line 692 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_FILTER_TOOLBAR_TOGGLE_ACTION_TOOL_BUTTON_GET_PRIVATE (self);
+#line 7917 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_toggle_action_tool_button_finalize (GObject* obj) {
+ SearchFilterToolbarToggleActionToolButton * self;
+ GtkToggleButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 692 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCH_FILTER_TOOLBAR_TYPE_TOGGLE_ACTION_TOOL_BUTTON, SearchFilterToolbarToggleActionToolButton);
+#line 710 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->button;
+#line 710 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp1_, NULL, FALSE);
+#line 710 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_button_get_type (), GtkButton), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _search_filter_toolbar_toggle_action_tool_button_on_button_activate_gtk_button_clicked, self);
+#line 693 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->button);
+#line 694 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->action);
+#line 692 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (search_filter_toolbar_toggle_action_tool_button_parent_class)->finalize (obj);
+#line 7939 "SearchFilter.c"
+}
+
+
+static GType search_filter_toolbar_toggle_action_tool_button_get_type (void) {
+ static volatile gsize search_filter_toolbar_toggle_action_tool_button_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_toggle_action_tool_button_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarToggleActionToolButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_toggle_action_tool_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbarToggleActionToolButton), 0, (GInstanceInitFunc) search_filter_toolbar_toggle_action_tool_button_instance_init, NULL };
+ GType search_filter_toolbar_toggle_action_tool_button_type_id;
+ search_filter_toolbar_toggle_action_tool_button_type_id = g_type_register_static (gtk_tool_item_get_type (), "SearchFilterToolbarToggleActionToolButton", &g_define_type_info, 0);
+ g_once_init_leave (&search_filter_toolbar_toggle_action_tool_button_type_id__volatile, search_filter_toolbar_toggle_action_tool_button_type_id);
+ }
+ return search_filter_toolbar_toggle_action_tool_button_type_id__volatile;
+}
+
+
+static void _search_filter_toolbar_search_box_on_action_text_changed_text_action_text_changed (TextAction* _sender, const gchar* text, gpointer self) {
+#line 764 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_on_action_text_changed ((SearchFilterToolbarSearchBox*) self, text);
+#line 7958 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_search_box_on_sensitivity_changed_text_action_sensitivity_changed (TextAction* _sender, gboolean sensitive, gpointer self) {
+#line 765 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_on_sensitivity_changed ((SearchFilterToolbarSearchBox*) self, sensitive);
+#line 7965 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_search_box_on_visibility_changed_text_action_visibility_changed (TextAction* _sender, gboolean visible, gpointer self) {
+#line 766 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_on_visibility_changed ((SearchFilterToolbarSearchBox*) self, visible);
+#line 7972 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_deleted_text (GtkEntryBuffer* _sender, guint position, guint n_chars, gpointer self) {
+#line 768 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_on_entry_changed ((SearchFilterToolbarSearchBox*) self);
+#line 7979 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_inserted_text (GtkEntryBuffer* _sender, guint position, const gchar* chars, guint n_chars, gpointer self) {
+#line 769 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_on_entry_changed ((SearchFilterToolbarSearchBox*) self);
+#line 7986 "SearchFilter.c"
+}
+
+
+static gpointer _text_action_ref0 (gpointer self) {
+#line 746 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self ? text_action_ref (self) : NULL;
+#line 7993 "SearchFilter.c"
+}
+
+
+static gboolean _search_filter_toolbar_search_box_on_escape_key_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
+ gboolean result;
+ result = search_filter_toolbar_search_box_on_escape_key ((SearchFilterToolbarSearchBox*) self, event);
+#line 750 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8002 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarSearchBox* search_filter_toolbar_search_box_construct (GType object_type, TextAction* action) {
+ SearchFilterToolbarSearchBox * self = NULL;
+ TextAction* _tmp0_ = NULL;
+ TextAction* _tmp1_ = NULL;
+ GtkSearchEntry* _tmp2_ = NULL;
+ GtkSearchEntry* _tmp3_ = NULL;
+ GtkSearchEntry* _tmp4_ = NULL;
+ GtkSearchEntry* _tmp5_ = NULL;
+ TextAction* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ TextAction* _tmp9_ = NULL;
+ TextAction* _tmp10_ = NULL;
+ TextAction* _tmp11_ = NULL;
+ GtkSearchEntry* _tmp12_ = NULL;
+ GtkEntryBuffer* _tmp13_ = NULL;
+ GtkEntryBuffer* _tmp14_ = NULL;
+ GtkSearchEntry* _tmp15_ = NULL;
+ GtkEntryBuffer* _tmp16_ = NULL;
+ GtkEntryBuffer* _tmp17_ = NULL;
+#line 745 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_TEXT_ACTION (action), NULL);
+#line 745 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbarSearchBox*) g_object_new (object_type, NULL);
+#line 746 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = action;
+#line 746 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _text_action_ref0 (_tmp0_);
+#line 746 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _text_action_unref0 (self->priv->action);
+#line 746 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->action = _tmp1_;
+#line 747 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = (GtkSearchEntry*) gtk_search_entry_new ();
+#line 747 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp2_);
+#line 747 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->search_entry);
+#line 747 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_entry = _tmp2_;
+#line 749 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->search_entry;
+#line 749 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_entry_set_width_chars (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_entry_get_type (), GtkEntry), 23);
+#line 750 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->search_entry;
+#line 750 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), "key-press-event", (GCallback) _search_filter_toolbar_search_box_on_escape_key_gtk_widget_key_press_event, self, 0);
+#line 751 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->search_entry;
+#line 751 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 753 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = action;
+#line 753 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = text_action_get_value (_tmp6_);
+#line 753 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = _tmp7_;
+#line 753 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_set_nullable_text (self, _tmp8_);
+#line 755 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = action;
+#line 755 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp9_, "text-changed", (GCallback) _search_filter_toolbar_search_box_on_action_text_changed_text_action_text_changed, self, 0);
+#line 756 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = action;
+#line 756 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp10_, "sensitivity-changed", (GCallback) _search_filter_toolbar_search_box_on_sensitivity_changed_text_action_sensitivity_changed, self, 0);
+#line 757 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = action;
+#line 757 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp11_, "visibility-changed", (GCallback) _search_filter_toolbar_search_box_on_visibility_changed_text_action_visibility_changed, self, 0);
+#line 759 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = self->priv->search_entry;
+#line 759 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_entry_get_type (), GtkEntry));
+#line 759 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = _tmp13_;
+#line 759 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp14_, "deleted-text", (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_deleted_text, self, 0);
+#line 760 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = self->priv->search_entry;
+#line 760 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_entry_get_type (), GtkEntry));
+#line 760 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = _tmp16_;
+#line 760 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp17_, "inserted-text", (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_inserted_text, self, 0);
+#line 745 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 8096 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarSearchBox* search_filter_toolbar_search_box_new (TextAction* action) {
+#line 745 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_search_box_construct (SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX, action);
+#line 8103 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_search_box_get_focus (SearchFilterToolbarSearchBox* self) {
+ GtkSearchEntry* _tmp0_ = NULL;
+#line 772 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX (self));
+#line 773 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->search_entry;
+#line 773 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), "has-focus", TRUE, NULL);
+#line 8115 "SearchFilter.c"
+}
+
+
+static gboolean search_filter_toolbar_search_box_on_escape_key (SearchFilterToolbarSearchBox* self, GdkEventKey* e) {
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+#line 778 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX (self), FALSE);
+#line 778 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (e != NULL, FALSE);
+#line 779 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = e;
+#line 779 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 779 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 779 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (g_strcmp0 (_tmp2_, "Escape") == 0) {
+#line 8136 "SearchFilter.c"
+ TextAction* _tmp3_ = NULL;
+#line 780 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->action;
+#line 780 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_clear (_tmp3_);
+#line 8142 "SearchFilter.c"
+ }
+#line 784 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 784 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8148 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_on_action_text_changed (SearchFilterToolbarSearchBox* self, const gchar* text) {
+ GtkSearchEntry* _tmp0_ = NULL;
+ GtkEntryBuffer* _tmp1_ = NULL;
+ GtkEntryBuffer* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ GtkSearchEntry* _tmp4_ = NULL;
+ GtkEntryBuffer* _tmp5_ = NULL;
+ GtkEntryBuffer* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ const gchar* _tmp8_ = NULL;
+ GtkSearchEntry* _tmp9_ = NULL;
+ GtkEntryBuffer* _tmp10_ = NULL;
+ GtkEntryBuffer* _tmp11_ = NULL;
+ GtkSearchEntry* _tmp12_ = NULL;
+ GtkEntryBuffer* _tmp13_ = NULL;
+ GtkEntryBuffer* _tmp14_ = NULL;
+#line 787 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX (self));
+#line 788 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->search_entry;
+#line 788 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_entry_get_type (), GtkEntry));
+#line 788 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp1_;
+#line 788 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("deleted-text", gtk_entry_buffer_get_type (), &_tmp3_, NULL, FALSE);
+#line 788 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_deleted_text, self);
+#line 789 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->search_entry;
+#line 789 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_entry_get_type (), GtkEntry));
+#line 789 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = _tmp5_;
+#line 789 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("inserted-text", gtk_entry_buffer_get_type (), &_tmp7_, NULL, FALSE);
+#line 789 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_inserted_text, self);
+#line 790 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = text;
+#line 790 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_set_nullable_text (self, _tmp8_);
+#line 791 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = self->priv->search_entry;
+#line 791 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_entry_get_type (), GtkEntry));
+#line 791 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = _tmp10_;
+#line 791 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp11_, "deleted-text", (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_deleted_text, self, 0);
+#line 792 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = self->priv->search_entry;
+#line 792 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_entry_get_type (), GtkEntry));
+#line 792 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = _tmp13_;
+#line 792 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp14_, "inserted-text", (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_inserted_text, self, 0);
+#line 8210 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_on_entry_changed (SearchFilterToolbarSearchBox* self) {
+ TextAction* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ TextAction* _tmp2_ = NULL;
+ GtkSearchEntry* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ TextAction* _tmp5_ = NULL;
+#line 795 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX (self));
+#line 796 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->action;
+#line 796 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("text-changed", TYPE_TEXT_ACTION, &_tmp1_, NULL, FALSE);
+#line 796 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_action_text_changed_text_action_text_changed, self);
+#line 797 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->action;
+#line 797 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->search_entry;
+#line 797 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = gtk_entry_get_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_entry_get_type (), GtkEntry));
+#line 797 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ text_action_set_text (_tmp2_, _tmp4_);
+#line 798 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->action;
+#line 798 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp5_, "text-changed", (GCallback) _search_filter_toolbar_search_box_on_action_text_changed_text_action_text_changed, self, 0);
+#line 8241 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_on_sensitivity_changed (SearchFilterToolbarSearchBox* self, gboolean sensitive) {
+ gboolean _tmp0_ = FALSE;
+#line 801 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX (self));
+#line 802 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = sensitive;
+#line 802 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp0_);
+#line 8253 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_on_visibility_changed (SearchFilterToolbarSearchBox* self, gboolean visible) {
+ gboolean _tmp0_ = FALSE;
+#line 805 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX (self));
+#line 806 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = visible;
+#line 806 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp0_);
+#line 8265 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_set_nullable_text (SearchFilterToolbarSearchBox* self, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkSearchEntry* _tmp3_ = NULL;
+#line 809 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SEARCH_BOX (self));
+#line 810 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = text;
+#line 810 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp1_ != NULL) {
+#line 8279 "SearchFilter.c"
+ const gchar* _tmp2_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = text;
+#line 810 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = _tmp2_;
+#line 8285 "SearchFilter.c"
+ } else {
+#line 810 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = "";
+#line 8289 "SearchFilter.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->search_entry;
+#line 810 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_entry_set_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_entry_get_type (), GtkEntry), _tmp0_);
+#line 8295 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_class_init (SearchFilterToolbarSearchBoxClass * klass) {
+#line 741 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_search_box_parent_class = g_type_class_peek_parent (klass);
+#line 741 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchFilterToolbarSearchBoxPrivate));
+#line 741 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->finalize = search_filter_toolbar_search_box_finalize;
+#line 8306 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_instance_init (SearchFilterToolbarSearchBox * self) {
+#line 741 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_FILTER_TOOLBAR_SEARCH_BOX_GET_PRIVATE (self);
+#line 8313 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_search_box_finalize (GObject* obj) {
+ SearchFilterToolbarSearchBox * self;
+ TextAction* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ TextAction* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ TextAction* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ GtkSearchEntry* _tmp6_ = NULL;
+ GtkEntryBuffer* _tmp7_ = NULL;
+ GtkEntryBuffer* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ GtkSearchEntry* _tmp10_ = NULL;
+ GtkEntryBuffer* _tmp11_ = NULL;
+ GtkEntryBuffer* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+#line 741 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCH_FILTER_TOOLBAR_TYPE_SEARCH_BOX, SearchFilterToolbarSearchBox);
+#line 764 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->action;
+#line 764 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("text-changed", TYPE_TEXT_ACTION, &_tmp1_, NULL, FALSE);
+#line 764 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_action_text_changed_text_action_text_changed, self);
+#line 765 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->action;
+#line 765 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("sensitivity-changed", TYPE_TEXT_ACTION, &_tmp3_, NULL, FALSE);
+#line 765 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_sensitivity_changed_text_action_sensitivity_changed, self);
+#line 766 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->action;
+#line 766 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("visibility-changed", TYPE_TEXT_ACTION, &_tmp5_, NULL, FALSE);
+#line 766 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_visibility_changed_text_action_visibility_changed, self);
+#line 768 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = self->priv->search_entry;
+#line 768 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_entry_get_type (), GtkEntry));
+#line 768 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = _tmp7_;
+#line 768 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("deleted-text", gtk_entry_buffer_get_type (), &_tmp9_, NULL, FALSE);
+#line 768 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_deleted_text, self);
+#line 769 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->search_entry;
+#line 769 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = gtk_entry_get_buffer (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_entry_get_type (), GtkEntry));
+#line 769 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = _tmp11_;
+#line 769 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("inserted-text", gtk_entry_buffer_get_type (), &_tmp13_, NULL, FALSE);
+#line 769 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _search_filter_toolbar_search_box_on_entry_changed_gtk_entry_buffer_inserted_text, self);
+#line 742 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->search_entry);
+#line 743 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _text_action_unref0 (self->priv->action);
+#line 741 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (search_filter_toolbar_search_box_parent_class)->finalize (obj);
+#line 8379 "SearchFilter.c"
+}
+
+
+GType search_filter_toolbar_search_box_get_type (void) {
+ static volatile gsize search_filter_toolbar_search_box_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_search_box_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarSearchBoxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_search_box_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbarSearchBox), 0, (GInstanceInitFunc) search_filter_toolbar_search_box_instance_init, NULL };
+ GType search_filter_toolbar_search_box_type_id;
+ search_filter_toolbar_search_box_type_id = g_type_register_static (gtk_tool_item_get_type (), "SearchFilterToolbarSearchBox", &g_define_type_info, 0);
+ g_once_init_leave (&search_filter_toolbar_search_box_type_id__volatile, search_filter_toolbar_search_box_type_id);
+ }
+ return search_filter_toolbar_search_box_type_id__volatile;
+}
+
+
+static void _search_filter_toolbar_rating_filter_button_on_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 836 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_rating_filter_button_on_clicked ((SearchFilterToolbarRatingFilterButton*) self);
+#line 8398 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarRatingFilterButton* search_filter_toolbar_rating_filter_button_construct (GType object_type) {
+ SearchFilterToolbarRatingFilterButton * self = NULL;
+ GtkButton* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ GtkButton* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ GtkButton* _tmp7_ = NULL;
+ GtkButton* _tmp8_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbarRatingFilterButton*) g_object_new (object_type, NULL);
+#line 822 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = (GtkButton*) gtk_button_new ();
+#line 822 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp0_);
+#line 822 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->button);
+#line 822 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->button = _tmp0_;
+#line 823 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->button;
+#line 823 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = search_filter_toolbar_rating_filter_button_get_filter_icon (self, RATING_FILTER_UNRATED_OR_HIGHER);
+#line 823 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = _tmp2_;
+#line 823 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_image (_tmp1_, _tmp3_);
+#line 823 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp3_);
+#line 824 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->button;
+#line 824 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 825 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->button;
+#line 825 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_relief (_tmp5_, GTK_RELIEF_NONE);
+#line 826 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = self->button;
+#line 826 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_margin_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), 2);
+#line 828 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = self->button;
+#line 828 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp7_, "clicked", (GCallback) _search_filter_toolbar_rating_filter_button_on_clicked_gtk_button_clicked, self, 0);
+#line 830 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_homogeneous (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tool_item_get_type (), GtkToolItem), FALSE);
+#line 832 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->button;
+#line 832 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
+#line 821 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 8457 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarRatingFilterButton* search_filter_toolbar_rating_filter_button_new (void) {
+#line 821 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_rating_filter_button_construct (SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON);
+#line 8464 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_rating_filter_button_on_clicked (SearchFilterToolbarRatingFilterButton* self) {
+#line 839 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON (self));
+#line 840 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "clicked");
+#line 8473 "SearchFilter.c"
+}
+
+
+static GtkWidget* search_filter_toolbar_rating_filter_button_get_filter_icon (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter) {
+ GtkWidget* result = NULL;
+ gchar* filename = NULL;
+ RatingFilter _tmp0_ = 0;
+ GtkImage* image = NULL;
+ const gchar* _tmp9_ = NULL;
+ RatingFilter _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ GtkImage* _tmp14_ = NULL;
+ GtkImage* _tmp15_ = NULL;
+#line 843 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON (self), NULL);
+#line 844 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = NULL;
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = filter;
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ switch (_tmp0_) {
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_ONE_OR_HIGHER:
+#line 8499 "SearchFilter.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 848 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = g_strdup (RESOURCES_ICON_FILTER_ONE_OR_BETTER);
+#line 848 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 848 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp1_;
+#line 849 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8510 "SearchFilter.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_TWO_OR_HIGHER:
+#line 8514 "SearchFilter.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 852 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = g_strdup (RESOURCES_ICON_FILTER_TWO_OR_BETTER);
+#line 852 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 852 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp2_;
+#line 853 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8525 "SearchFilter.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_THREE_OR_HIGHER:
+#line 8529 "SearchFilter.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 856 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = g_strdup (RESOURCES_ICON_FILTER_THREE_OR_BETTER);
+#line 856 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 856 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp3_;
+#line 857 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8540 "SearchFilter.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FOUR_OR_HIGHER:
+#line 8544 "SearchFilter.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = g_strdup (RESOURCES_ICON_FILTER_FOUR_OR_BETTER);
+#line 860 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 860 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp4_;
+#line 861 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8555 "SearchFilter.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FIVE_OR_HIGHER:
+#line 8559 "SearchFilter.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 864 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = g_strdup (RESOURCES_ICON_FILTER_FIVE);
+#line 864 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 864 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp5_;
+#line 865 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8570 "SearchFilter.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_REJECTED_OR_HIGHER:
+#line 8574 "SearchFilter.c"
+ {
+ gchar* _tmp6_ = NULL;
+#line 868 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = g_strdup (RESOURCES_ICON_FILTER_REJECTED_OR_BETTER);
+#line 868 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 868 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp6_;
+#line 869 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8585 "SearchFilter.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_REJECTED_ONLY:
+#line 8589 "SearchFilter.c"
+ {
+ gchar* _tmp7_ = NULL;
+#line 872 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = g_strdup (RESOURCES_ICON_RATING_REJECTED);
+#line 872 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 872 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp7_;
+#line 873 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8600 "SearchFilter.c"
+ }
+ default:
+#line 846 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_UNRATED_OR_HIGHER:
+#line 8605 "SearchFilter.c"
+ {
+ gchar* _tmp8_ = NULL;
+#line 877 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = g_strdup (RESOURCES_ICON_FILTER_UNRATED_OR_BETTER);
+#line 877 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 877 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ filename = _tmp8_;
+#line 878 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 8616 "SearchFilter.c"
+ }
+ }
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = filename;
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = filter;
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = search_filter_toolbar_rating_filter_button_get_filter_icon_size (self, _tmp10_);
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = resources_load_icon (_tmp9_, _tmp11_);
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = _tmp12_;
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = (GtkImage*) gtk_image_new_from_pixbuf (_tmp13_);
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp14_);
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = _tmp14_;
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp13_);
+#line 881 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ image = _tmp15_;
+#line 883 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (image, gtk_widget_get_type (), GtkWidget), 6);
+#line 885 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (image, gtk_widget_get_type (), GtkWidget);
+#line 885 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (filename);
+#line 885 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8647 "SearchFilter.c"
+}
+
+
+static gint search_filter_toolbar_rating_filter_button_get_filter_icon_size (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter) {
+ gint result = 0;
+ gint icon_base = 0;
+ gint icon_star_base = 0;
+ gint icon_plus = 0;
+ RatingFilter _tmp0_ = 0;
+#line 888 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON (self), 0);
+#line 889 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ icon_base = (gint) (SEARCH_FILTER_TOOLBAR_FILTER_ICON_BASE_WIDTH * SEARCH_FILTER_TOOLBAR_FILTER_ICON_SCALE);
+#line 890 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ icon_star_base = (gint) (SEARCH_FILTER_TOOLBAR_FILTER_ICON_BASE_WIDTH * SEARCH_FILTER_TOOLBAR_FILTER_ICON_STAR_SCALE);
+#line 891 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ icon_plus = (gint) (SEARCH_FILTER_TOOLBAR_FILTER_ICON_PLUS_WIDTH * SEARCH_FILTER_TOOLBAR_FILTER_ICON_STAR_SCALE);
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = filter;
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ switch (_tmp0_) {
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_ONE_OR_HIGHER:
+#line 8671 "SearchFilter.c"
+ {
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 895 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = icon_star_base;
+#line 895 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = icon_plus;
+#line 895 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp1_ + _tmp2_;
+#line 895 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8683 "SearchFilter.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_TWO_OR_HIGHER:
+#line 8687 "SearchFilter.c"
+ {
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 897 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = icon_star_base;
+#line 897 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = icon_plus;
+#line 897 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = (_tmp3_ * 2) + _tmp4_;
+#line 897 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8699 "SearchFilter.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_THREE_OR_HIGHER:
+#line 8703 "SearchFilter.c"
+ {
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 899 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = icon_star_base;
+#line 899 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = icon_plus;
+#line 899 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = (_tmp5_ * 3) + _tmp6_;
+#line 899 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8715 "SearchFilter.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FOUR_OR_HIGHER:
+#line 8719 "SearchFilter.c"
+ {
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 901 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = icon_star_base;
+#line 901 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = icon_plus;
+#line 901 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = (_tmp7_ * 4) + _tmp8_;
+#line 901 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8731 "SearchFilter.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FIVE_OR_HIGHER:
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_FIVE_ONLY:
+#line 8737 "SearchFilter.c"
+ {
+ gint _tmp9_ = 0;
+#line 904 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = icon_star_base;
+#line 904 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp9_ * 5;
+#line 904 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8746 "SearchFilter.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_REJECTED_OR_HIGHER:
+#line 8750 "SearchFilter.c"
+ {
+#line 906 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = RESOURCES_ICON_FILTER_REJECTED_OR_BETTER_FIXED_SIZE;
+#line 906 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8756 "SearchFilter.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_UNRATED_OR_HIGHER:
+#line 8760 "SearchFilter.c"
+ {
+#line 908 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = RESOURCES_ICON_FILTER_UNRATED_OR_BETTER_FIXED_SIZE;
+#line 908 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8766 "SearchFilter.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case RATING_FILTER_REJECTED_ONLY:
+#line 8770 "SearchFilter.c"
+ {
+#line 910 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = icon_plus;
+#line 910 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8776 "SearchFilter.c"
+ }
+ default:
+ {
+#line 912 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = icon_base;
+#line 912 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8784 "SearchFilter.c"
+ }
+ }
+}
+
+
+void search_filter_toolbar_rating_filter_button_set_filter_icon (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter) {
+ GtkButton* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ RatingFilter _tmp2_ = 0;
+ GtkWidget* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ RatingFilter _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ RatingFilter _tmp7_ = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 916 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON (self));
+#line 917 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->button;
+#line 917 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_always_show_image (_tmp0_, TRUE);
+#line 918 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->button;
+#line 918 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = filter;
+#line 918 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = search_filter_toolbar_rating_filter_button_get_filter_icon (self, _tmp2_);
+#line 918 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = _tmp3_;
+#line 918 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_image (_tmp1_, _tmp4_);
+#line 918 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp4_);
+#line 919 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = filter;
+#line 919 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = search_filter_toolbar_rating_filter_button_get_filter_button_size (self, _tmp5_);
+#line 919 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp6_, -1);
+#line 920 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = filter;
+#line 920 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = resources_get_rating_filter_tooltip (_tmp7_);
+#line 920 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = _tmp8_;
+#line 920 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tool_item_get_type (), GtkToolItem), _tmp9_);
+#line 920 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp9_);
+#line 921 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_has_tooltip (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 922 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 8839 "SearchFilter.c"
+}
+
+
+static gint search_filter_toolbar_rating_filter_button_get_filter_button_size (SearchFilterToolbarRatingFilterButton* self, RatingFilter filter) {
+ gint result = 0;
+ RatingFilter _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 925 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON (self), 0);
+#line 926 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = filter;
+#line 926 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = search_filter_toolbar_rating_filter_button_get_filter_icon_size (self, _tmp0_);
+#line 926 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp1_ + (2 * SEARCH_FILTER_TOOLBAR_FILTER_BUTTON_MARGIN);
+#line 926 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 8857 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_rating_filter_button_set_label (SearchFilterToolbarRatingFilterButton* self, const gchar* label) {
+ GtkButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_RATING_FILTER_BUTTON (self));
+#line 929 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (label != NULL);
+#line 930 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->button;
+#line 930 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = label;
+#line 930 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_label (_tmp0_, _tmp1_);
+#line 8874 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_rating_filter_button_class_init (SearchFilterToolbarRatingFilterButtonClass * klass) {
+#line 815 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_rating_filter_button_parent_class = g_type_class_peek_parent (klass);
+#line 815 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->finalize = search_filter_toolbar_rating_filter_button_finalize;
+#line 815 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("clicked", SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 8885 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_rating_filter_button_instance_init (SearchFilterToolbarRatingFilterButton * self) {
+#line 816 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->filter_popup = NULL;
+#line 8892 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_rating_filter_button_finalize (GObject* obj) {
+ SearchFilterToolbarRatingFilterButton * self;
+ GtkButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 815 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCH_FILTER_TOOLBAR_TYPE_RATING_FILTER_BUTTON, SearchFilterToolbarRatingFilterButton);
+#line 836 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->button;
+#line 836 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp1_, NULL, FALSE);
+#line 836 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _search_filter_toolbar_rating_filter_button_on_clicked_gtk_button_clicked, self);
+#line 816 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->filter_popup);
+#line 817 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->button);
+#line 815 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (search_filter_toolbar_rating_filter_button_parent_class)->finalize (obj);
+#line 8914 "SearchFilter.c"
+}
+
+
+GType search_filter_toolbar_rating_filter_button_get_type (void) {
+ static volatile gsize search_filter_toolbar_rating_filter_button_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_rating_filter_button_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarRatingFilterButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_rating_filter_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbarRatingFilterButton), 0, (GInstanceInitFunc) search_filter_toolbar_rating_filter_button_instance_init, NULL };
+ GType search_filter_toolbar_rating_filter_button_type_id;
+ search_filter_toolbar_rating_filter_button_type_id = g_type_register_static (gtk_tool_item_get_type (), "SearchFilterToolbarRatingFilterButton", &g_define_type_info, 0);
+ g_once_init_leave (&search_filter_toolbar_rating_filter_button_type_id__volatile, search_filter_toolbar_rating_filter_button_type_id);
+ }
+ return search_filter_toolbar_rating_filter_button_type_id__volatile;
+}
+
+
+static void _search_filter_toolbar_saved_search_filter_button_on_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 960 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_filter_button_on_clicked ((SearchFilterToolbarSavedSearchFilterButton*) self);
+#line 8933 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarSavedSearchFilterButton* search_filter_toolbar_saved_search_filter_button_construct (GType object_type) {
+ SearchFilterToolbarSavedSearchFilterButton * self = NULL;
+ GtkToggleButton* _tmp0_ = NULL;
+ GtkToggleButton* _tmp1_ = NULL;
+ GtkImage* image = NULL;
+ GtkImage* _tmp2_ = NULL;
+ GtkToggleButton* _tmp3_ = NULL;
+ GtkToggleButton* _tmp4_ = NULL;
+ GtkToggleButton* _tmp5_ = NULL;
+ GtkToggleButton* _tmp6_ = NULL;
+#line 941 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbarSavedSearchFilterButton*) g_object_new (object_type, NULL);
+#line 942 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = (GtkToggleButton*) gtk_toggle_button_new ();
+#line 942 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp0_);
+#line 942 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->button);
+#line 942 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->button = _tmp0_;
+#line 943 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->button;
+#line 943 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_always_show_image (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_button_get_type (), GtkButton), TRUE);
+#line 945 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = (GtkImage*) gtk_image_new_from_icon_name ("find", GTK_ICON_SIZE_SMALL_TOOLBAR);
+#line 945 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp2_);
+#line 945 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ image = _tmp2_;
+#line 946 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_margin_end (G_TYPE_CHECK_INSTANCE_CAST (image, gtk_widget_get_type (), GtkWidget), 6);
+#line 947 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->button;
+#line 947 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_image (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_button_get_type (), GtkButton), G_TYPE_CHECK_INSTANCE_CAST (image, gtk_widget_get_type (), GtkWidget));
+#line 948 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->button;
+#line 948 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 950 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->button;
+#line 950 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_button_get_type (), GtkButton), "clicked", (GCallback) _search_filter_toolbar_saved_search_filter_button_on_clicked_gtk_button_clicked, self, 0);
+#line 952 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_filter_button_restyle (self);
+#line 954 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_tool_item_set_homogeneous (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tool_item_get_type (), GtkToolItem), FALSE);
+#line 956 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = self->button;
+#line 956 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
+#line 941 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (image);
+#line 941 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 8993 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarSavedSearchFilterButton* search_filter_toolbar_saved_search_filter_button_new (void) {
+#line 941 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_saved_search_filter_button_construct (SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON);
+#line 9000 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_filter_button_on_clicked (SearchFilterToolbarSavedSearchFilterButton* self) {
+#line 963 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_FILTER_BUTTON (self));
+#line 964 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "clicked");
+#line 9009 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_saved_search_filter_button_set_active (SearchFilterToolbarSavedSearchFilterButton* self, gboolean active) {
+ GtkToggleButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 967 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_FILTER_BUTTON (self));
+#line 968 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->button;
+#line 968 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = active;
+#line 968 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_toggle_button_set_active (_tmp0_, _tmp1_);
+#line 9024 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_saved_search_filter_button_set_label (SearchFilterToolbarSavedSearchFilterButton* self, const gchar* label) {
+ GtkToggleButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_FILTER_BUTTON (self));
+#line 971 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (label != NULL);
+#line 972 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->button;
+#line 972 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = label;
+#line 972 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_label (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_button_get_type (), GtkButton), _tmp1_);
+#line 9041 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_saved_search_filter_button_restyle (SearchFilterToolbarSavedSearchFilterButton* self) {
+ GtkToggleButton* _tmp0_ = NULL;
+ GtkToggleButton* _tmp1_ = NULL;
+#line 975 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_FILTER_BUTTON (self));
+#line 976 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->button;
+#line 976 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), 24, 24);
+#line 977 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->button;
+#line 977 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_relief (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_button_get_type (), GtkButton), GTK_RELIEF_NONE);
+#line 9058 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_filter_button_class_init (SearchFilterToolbarSavedSearchFilterButtonClass * klass) {
+#line 935 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_filter_button_parent_class = g_type_class_peek_parent (klass);
+#line 935 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->finalize = search_filter_toolbar_saved_search_filter_button_finalize;
+#line 935 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("clicked", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 9069 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_filter_button_instance_init (SearchFilterToolbarSavedSearchFilterButton * self) {
+#line 936 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->filter_popup = NULL;
+#line 9076 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_filter_button_finalize (GObject* obj) {
+ SearchFilterToolbarSavedSearchFilterButton * self;
+ GtkToggleButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 935 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_FILTER_BUTTON, SearchFilterToolbarSavedSearchFilterButton);
+#line 960 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->button;
+#line 960 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp1_, NULL, FALSE);
+#line 960 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_button_get_type (), GtkButton), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _search_filter_toolbar_saved_search_filter_button_on_clicked_gtk_button_clicked, self);
+#line 936 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _search_filter_toolbar_saved_search_popover_unref0 (self->filter_popup);
+#line 937 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->button);
+#line 935 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (search_filter_toolbar_saved_search_filter_button_parent_class)->finalize (obj);
+#line 9098 "SearchFilter.c"
+}
+
+
+GType search_filter_toolbar_saved_search_filter_button_get_type (void) {
+ static volatile gsize search_filter_toolbar_saved_search_filter_button_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_saved_search_filter_button_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarSavedSearchFilterButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_saved_search_filter_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbarSavedSearchFilterButton), 0, (GInstanceInitFunc) search_filter_toolbar_saved_search_filter_button_instance_init, NULL };
+ GType search_filter_toolbar_saved_search_filter_button_type_id;
+ search_filter_toolbar_saved_search_filter_button_type_id = g_type_register_static (gtk_tool_item_get_type (), "SearchFilterToolbarSavedSearchFilterButton", &g_define_type_info, 0);
+ g_once_init_leave (&search_filter_toolbar_saved_search_filter_button_type_id__volatile, search_filter_toolbar_saved_search_filter_button_type_id);
+ }
+ return search_filter_toolbar_saved_search_filter_button_type_id__volatile;
+}
+
+
+static void _search_filter_toolbar_saved_search_popover_on_edit_click_search_filter_toolbar_saved_search_popover_data_button_clicked (SearchFilterToolbarSavedSearchPopoverDataButton* _sender, SavedSearch* search, gpointer self) {
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_on_edit_click ((SearchFilterToolbarSavedSearchPopover*) self, search);
+#line 9117 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_saved_search_popover_on_delete_click_search_filter_toolbar_saved_search_popover_data_button_clicked (SearchFilterToolbarSavedSearchPopoverDataButton* _sender, SavedSearch* search, gpointer self) {
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_on_delete_click ((SearchFilterToolbarSavedSearchPopover*) self, search);
+#line 9124 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_saved_search_popover_on_add_click_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1064 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_on_add_click ((SearchFilterToolbarSavedSearchPopover*) self);
+#line 9131 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_saved_search_popover_on_activate_row_gtk_list_box_row_activated (GtkListBox* _sender, GtkListBoxRow* row, gpointer self) {
+#line 1065 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_on_activate_row ((SearchFilterToolbarSavedSearchPopover*) self, row);
+#line 9138 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_saved_search_popover_on_popover_closed_gtk_popover_closed (GtkPopover* _sender, gpointer self) {
+#line 1066 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_on_popover_closed ((SearchFilterToolbarSavedSearchPopover*) self);
+#line 9145 "SearchFilter.c"
+}
+
+
+static void _vala_array_add351 (SearchFilterToolbarSavedSearchPopoverDataButton*** array, int* length, int* size, SearchFilterToolbarSavedSearchPopoverDataButton* value) {
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (SearchFilterToolbarSavedSearchPopoverDataButton*, *array, (*size) + 1);
+#line 9156 "SearchFilter.c"
+ }
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = value;
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[*length] = NULL;
+#line 9162 "SearchFilter.c"
+}
+
+
+static void _vala_array_add352 (SearchFilterToolbarSavedSearchPopoverDataButton*** array, int* length, int* size, SearchFilterToolbarSavedSearchPopoverDataButton* value) {
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if ((*length) == (*size)) {
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *array = g_renew (SearchFilterToolbarSavedSearchPopoverDataButton*, *array, (*size) + 1);
+#line 9173 "SearchFilter.c"
+ }
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[(*length)++] = value;
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ (*array)[*length] = NULL;
+#line 9179 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarSavedSearchPopover* search_filter_toolbar_saved_search_popover_construct (GType object_type, GtkWidget* relative_to) {
+ SearchFilterToolbarSavedSearchPopover* self = NULL;
+ GtkWidget* _tmp0_ = NULL;
+ GtkPopover* _tmp1_ = NULL;
+ GtkPopover* _tmp2_ = NULL;
+ GtkListBox* _tmp3_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp4_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp5_ = NULL;
+ GtkButton* _tmp44_ = NULL;
+ GtkButton* _tmp45_ = NULL;
+ GtkListBox* _tmp46_ = NULL;
+ GtkButton* _tmp47_ = NULL;
+ GtkListBox* _tmp48_ = NULL;
+ GtkListBox* _tmp49_ = NULL;
+ GtkPopover* _tmp50_ = NULL;
+ GtkListBox* _tmp51_ = NULL;
+#line 1025 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (GTK_IS_WIDGET (relative_to), NULL);
+#line 1025 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbarSavedSearchPopover*) g_type_create_instance (object_type);
+#line 1026 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = relative_to;
+#line 1026 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = (GtkPopover*) gtk_popover_new (_tmp0_);
+#line 1026 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp1_);
+#line 1026 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->popover);
+#line 1026 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->popover = _tmp1_;
+#line 1027 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->popover;
+#line 1027 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (_tmp2_, "closed", (GCallback) _search_filter_toolbar_saved_search_popover_on_popover_closed_gtk_popover_closed, self);
+#line 1028 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = (GtkListBox*) gtk_list_box_new ();
+#line 1028 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp3_);
+#line 1028 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->list_box);
+#line 1028 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->list_box = _tmp3_;
+#line 1029 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = g_new0 (SearchFilterToolbarSavedSearchPopoverDataButton*, 0 + 1);
+#line 1029 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->edit_buttons = (_vala_array_free (self->priv->edit_buttons, self->priv->edit_buttons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 1029 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->edit_buttons = _tmp4_;
+#line 1029 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->edit_buttons_length1 = 0;
+#line 1029 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_edit_buttons_size_ = self->priv->edit_buttons_length1;
+#line 1030 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = g_new0 (SearchFilterToolbarSavedSearchPopoverDataButton*, 0 + 1);
+#line 1030 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->delete_buttons = (_vala_array_free (self->priv->delete_buttons, self->priv->delete_buttons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 1030 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->delete_buttons = _tmp5_;
+#line 1030 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->delete_buttons_length1 = 0;
+#line 1030 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_delete_buttons_size_ = self->priv->delete_buttons_length1;
+#line 9245 "SearchFilter.c"
+ {
+ GeeIterator* _search_it = NULL;
+ SavedSearchTable* _tmp6_ = NULL;
+ SavedSearchTable* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = saved_search_table_get_instance ();
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp6_;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = saved_search_table_get_all (_tmp7_);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = _tmp8_;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = _tmp10_;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _saved_search_table_unref0 (_tmp7_);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _search_it = _tmp11_;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ while (TRUE) {
+#line 9274 "SearchFilter.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ SavedSearch* search = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GtkBox* row = NULL;
+ GtkBox* _tmp16_ = NULL;
+ GtkBox* _tmp17_ = NULL;
+ GtkLabel* label = NULL;
+ SavedSearch* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GtkLabel* _tmp21_ = NULL;
+ GtkLabel* _tmp22_ = NULL;
+ GtkLabel* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ GtkLabel* _tmp25_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* delete_button = NULL;
+ SavedSearch* _tmp26_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp29_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp30_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp32_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp33_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* edit_button = NULL;
+ SavedSearch* _tmp34_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp35_ = NULL;
+ GtkBox* _tmp36_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp37_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp38_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp39_ = NULL;
+ gint _tmp39__length1 = 0;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp40_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp41_ = NULL;
+ GtkListBox* _tmp42_ = NULL;
+ GtkBox* _tmp43_ = NULL;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = _search_it;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!_tmp13_) {
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 9322 "SearchFilter.c"
+ }
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = _search_it;
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search = (SavedSearch*) _tmp15_;
+#line 1033 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 1);
+#line 1033 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp16_);
+#line 1033 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ row = _tmp16_;
+#line 1034 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp17_ = row;
+#line 1034 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_box_set_homogeneous (_tmp17_, FALSE);
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp18_ = search;
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp19_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_OBJECT, DataObject));
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp20_ = _tmp19_;
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp21_ = (GtkLabel*) gtk_label_new (_tmp20_);
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp21_);
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp22_ = _tmp21_;
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_free0 (_tmp20_);
+#line 1035 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ label = _tmp22_;
+#line 1036 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp23_ = label;
+#line 1036 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
+#line 1037 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp24_ = row;
+#line 1037 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp25_ = label;
+#line 1037 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_box_pack_start (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 3);
+#line 1039 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp26_ = search;
+#line 1039 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp27_ = search_filter_toolbar_saved_search_popover_data_button_new (_tmp26_, "edit-delete-symbolic");
+#line 1039 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp27_);
+#line 1039 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ delete_button = _tmp27_;
+#line 1040 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp28_ = row;
+#line 1040 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp29_ = delete_button;
+#line 1040 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_box_pack_end (_tmp28_, G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1041 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp30_ = delete_button;
+#line 1041 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (_tmp30_, "clicked", (GCallback) _search_filter_toolbar_saved_search_popover_on_delete_click_search_filter_toolbar_saved_search_popover_data_button_clicked, self);
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31_ = self->priv->delete_buttons;
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp31__length1 = self->priv->delete_buttons_length1;
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp32_ = delete_button;
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp33_ = _g_object_ref0 (_tmp32_);
+#line 1042 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add351 (&self->priv->delete_buttons, &self->priv->delete_buttons_length1, &self->priv->_delete_buttons_size_, _tmp33_);
+#line 1044 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp34_ = search;
+#line 1044 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp35_ = search_filter_toolbar_saved_search_popover_data_button_new (_tmp34_, "text-editor-symbolic");
+#line 1044 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp35_);
+#line 1044 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ edit_button = _tmp35_;
+#line 1045 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp36_ = row;
+#line 1045 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp37_ = edit_button;
+#line 1045 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_box_pack_end (_tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1046 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp38_ = edit_button;
+#line 1046 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (_tmp38_, "clicked", (GCallback) _search_filter_toolbar_saved_search_popover_on_edit_click_search_filter_toolbar_saved_search_popover_data_button_clicked, self);
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp39_ = self->priv->edit_buttons;
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp39__length1 = self->priv->edit_buttons_length1;
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp40_ = edit_button;
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp41_ = _g_object_ref0 (_tmp40_);
+#line 1047 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _vala_array_add352 (&self->priv->edit_buttons, &self->priv->edit_buttons_length1, &self->priv->_edit_buttons_size_, _tmp41_);
+#line 1049 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp42_ = self->priv->list_box;
+#line 1049 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp43_ = row;
+#line 1049 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_list_box_insert (_tmp42_, G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), -1);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (edit_button);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (delete_button);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (label);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (row);
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (search);
+#line 9438 "SearchFilter.c"
+ }
+#line 1032 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_search_it);
+#line 9442 "SearchFilter.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp44_ = (GtkButton*) gtk_button_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_BUTTON);
+#line 1051 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp44_);
+#line 1051 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->add);
+#line 1051 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->add = _tmp44_;
+#line 1052 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp45_ = self->priv->add;
+#line 1052 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (_tmp45_, "clicked", (GCallback) _search_filter_toolbar_saved_search_popover_on_add_click_gtk_button_clicked, self);
+#line 1053 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp46_ = self->priv->list_box;
+#line 1053 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp47_ = self->priv->add;
+#line 1053 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_list_box_insert (_tmp46_, G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_widget_get_type (), GtkWidget), -1);
+#line 1054 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp48_ = self->priv->list_box;
+#line 1054 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect (_tmp48_, "row-activated", (GCallback) _search_filter_toolbar_saved_search_popover_on_activate_row_gtk_list_box_row_activated, self);
+#line 1055 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp49_ = self->priv->list_box;
+#line 1055 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_list_box_set_selection_mode (_tmp49_, GTK_SELECTION_NONE);
+#line 1056 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp50_ = self->priv->popover;
+#line 1056 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp51_ = self->priv->list_box;
+#line 1056 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, gtk_widget_get_type (), GtkWidget));
+#line 1058 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_restyle (self);
+#line 1025 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 9480 "SearchFilter.c"
+}
+
+
+SearchFilterToolbarSavedSearchPopover* search_filter_toolbar_saved_search_popover_new (GtkWidget* relative_to) {
+#line 1025 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_saved_search_popover_construct (SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, relative_to);
+#line 9487 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_saved_search_popover_restyle (SearchFilterToolbarSavedSearchPopover* self) {
+ GtkButton* _tmp0_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 1069 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1070 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->add;
+#line 1070 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_relief (_tmp0_, GTK_RELIEF_NONE);
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->edit_buttons;
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1__length1 = self->priv->edit_buttons_length1;
+#line 9507 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton** button_collection = NULL;
+ gint button_collection_length1 = 0;
+ gint _button_collection_size_ = 0;
+ gint button_it = 0;
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection = _tmp1_;
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection_length1 = _tmp1__length1;
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ for (button_it = 0; button_it < _tmp1__length1; button_it = button_it + 1) {
+#line 9519 "SearchFilter.c"
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp2_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* button = NULL;
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _g_object_ref0 (button_collection[button_it]);
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button = _tmp2_;
+#line 9526 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp3_ = NULL;
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = button;
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_data_button_restyle (_tmp3_);
+#line 1071 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (button);
+#line 9535 "SearchFilter.c"
+ }
+ }
+ }
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->delete_buttons;
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4__length1 = self->priv->delete_buttons_length1;
+#line 9543 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton** button_collection = NULL;
+ gint button_collection_length1 = 0;
+ gint _button_collection_size_ = 0;
+ gint button_it = 0;
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection = _tmp4_;
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection_length1 = _tmp4__length1;
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ for (button_it = 0; button_it < _tmp4__length1; button_it = button_it + 1) {
+#line 9555 "SearchFilter.c"
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp5_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* button = NULL;
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = _g_object_ref0 (button_collection[button_it]);
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button = _tmp5_;
+#line 9562 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp6_ = NULL;
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = button;
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_data_button_restyle (_tmp6_);
+#line 1072 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (button);
+#line 9571 "SearchFilter.c"
+ }
+ }
+ }
+}
+
+
+static gboolean search_filter_toolbar_saved_search_popover_is_search_row (SearchFilterToolbarSavedSearchPopover* self, GtkListBoxRow* row) {
+ gboolean result = FALSE;
+ GtkListBoxRow* _tmp0_ = NULL;
+ GtkListBoxRow* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ GList* _tmp3_ = NULL;
+ GList* _tmp4_ = NULL;
+ gconstpointer _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 1075 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self), FALSE);
+#line 1075 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail ((row == NULL) || GTK_IS_LIST_BOX_ROW (row), FALSE);
+#line 1076 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = row;
+#line 1076 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp0_ == NULL) {
+#line 1076 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 1076 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 9599 "SearchFilter.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = row;
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = gtk_container_get_children (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer));
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = _tmp2_;
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = g_list_last (_tmp3_);
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = _tmp4_->data;
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_TYPE ((GtkWidget*) _tmp5_, gtk_button_get_type ());
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_list_free0 (_tmp3_);
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp6_) {
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = FALSE;
+#line 1077 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 9621 "SearchFilter.c"
+ }
+#line 1078 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = TRUE;
+#line 1078 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 9627 "SearchFilter.c"
+}
+
+
+static SavedSearch* search_filter_toolbar_saved_search_popover_get_search (SearchFilterToolbarSavedSearchPopover* self, GtkListBoxRow* row) {
+ SavedSearch* result = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* button = NULL;
+ GtkListBoxRow* _tmp0_ = NULL;
+ GList* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ GList* _tmp3_ = NULL;
+ gconstpointer _tmp4_ = NULL;
+ GtkWidget* _tmp5_ = NULL;
+ GList* _tmp6_ = NULL;
+ GList* _tmp7_ = NULL;
+ GList* _tmp8_ = NULL;
+ gconstpointer _tmp9_ = NULL;
+ GtkWidget* _tmp10_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp11_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp12_ = NULL;
+ SavedSearch* _tmp13_ = NULL;
+ SavedSearch* _tmp14_ = NULL;
+ SavedSearch* _tmp15_ = NULL;
+#line 1081 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self), NULL);
+#line 1081 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (GTK_IS_LIST_BOX_ROW (row), NULL);
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = row;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = gtk_container_get_children (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_container_get_type (), GtkContainer));
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = _tmp1_;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = g_list_first (_tmp2_);
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = _tmp3_->data;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = (GtkWidget*) _tmp4_;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = gtk_container_get_children (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, gtk_box_get_type ()) ? ((GtkBox*) _tmp5_) : NULL, gtk_container_get_type (), GtkContainer));
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp7_ = _tmp6_;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = g_list_last (_tmp7_);
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp9_ = _tmp8_->data;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = (GtkWidget*) _tmp9_;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON) ? ((SearchFilterToolbarSavedSearchPopoverDataButton*) _tmp10_) : NULL);
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = _tmp11_;
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_list_free0 (_tmp7_);
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_list_free0 (_tmp2_);
+#line 1082 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button = _tmp12_;
+#line 1083 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp13_ = search_filter_toolbar_saved_search_popover_data_button_get_search (button);
+#line 1083 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = _tmp13_;
+#line 1083 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 1083 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp15_;
+#line 1083 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (button);
+#line 1083 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 9698 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_on_activate_row (SearchFilterToolbarSavedSearchPopover* self, GtkListBoxRow* row) {
+ GtkListBoxRow* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GtkPopover* _tmp5_ = NULL;
+#line 1086 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1086 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail ((row == NULL) || GTK_IS_LIST_BOX_ROW (row));
+#line 1087 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = row;
+#line 1087 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = search_filter_toolbar_saved_search_popover_is_search_row (self, _tmp0_);
+#line 1087 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (_tmp1_) {
+#line 9716 "SearchFilter.c"
+ GtkListBoxRow* _tmp2_ = NULL;
+ SavedSearch* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = row;
+#line 1088 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = search_filter_toolbar_saved_search_popover_get_search (self, _tmp2_);
+#line 1088 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = _tmp3_;
+#line 1088 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "search-activated", _tmp4_);
+#line 1088 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (_tmp4_);
+#line 9730 "SearchFilter.c"
+ }
+#line 1089 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = self->priv->popover;
+#line 1089 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 9736 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_on_edit_click (SearchFilterToolbarSavedSearchPopover* self, SavedSearch* search) {
+ SavedSearch* _tmp0_ = NULL;
+#line 1092 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1092 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 1093 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search;
+#line 1093 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "edit-clicked", _tmp0_);
+#line 9750 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_on_delete_click (SearchFilterToolbarSavedSearchPopover* self, SavedSearch* search) {
+ SavedSearch* _tmp0_ = NULL;
+#line 1096 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1096 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 1097 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = search;
+#line 1097 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "delete-clicked", _tmp0_);
+#line 9764 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_on_add_click (SearchFilterToolbarSavedSearchPopover* self) {
+#line 1100 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1101 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "add-clicked");
+#line 9773 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_on_popover_closed (SearchFilterToolbarSavedSearchPopover* self) {
+#line 1104 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1105 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "closed");
+#line 9782 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_saved_search_popover_show_all (SearchFilterToolbarSavedSearchPopover* self) {
+ GtkPopover* _tmp0_ = NULL;
+#line 1108 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1109 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->popover;
+#line 1109 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 9794 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_saved_search_popover_hide (SearchFilterToolbarSavedSearchPopover* self) {
+ GtkPopover* _tmp0_ = NULL;
+#line 1112 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_IS_SAVED_SEARCH_POPOVER (self));
+#line 1113 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->popover;
+#line 1113 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 9806 "SearchFilter.c"
+}
+
+
+static void _search_filter_toolbar_saved_search_popover_data_button_on_click_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1012 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_data_button_on_click ((SearchFilterToolbarSavedSearchPopoverDataButton*) self);
+#line 9813 "SearchFilter.c"
+}
+
+
+static SearchFilterToolbarSavedSearchPopoverDataButton* search_filter_toolbar_saved_search_popover_data_button_construct (GType object_type, SavedSearch* search, const gchar* name) {
+ SearchFilterToolbarSavedSearchPopoverDataButton * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ SavedSearch* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+#line 1001 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), NULL);
+#line 1001 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 1001 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = (SearchFilterToolbarSavedSearchPopoverDataButton*) g_object_new (object_type, NULL);
+#line 1002 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = name;
+#line 1002 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = (GtkButton*) gtk_button_new_from_icon_name (_tmp0_, GTK_ICON_SIZE_SMALL_TOOLBAR);
+#line 1002 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp1_);
+#line 1002 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->button);
+#line 1002 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->button = _tmp1_;
+#line 1003 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = search;
+#line 1003 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_data_button_set_search (self, _tmp2_);
+#line 1004 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = self->priv->button;
+#line 1004 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 1006 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_data_button_restyle (self);
+#line 1008 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->button;
+#line 1008 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_connect_object (_tmp4_, "clicked", (GCallback) _search_filter_toolbar_saved_search_popover_data_button_on_click_gtk_button_clicked, self, 0);
+#line 1001 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return self;
+#line 9856 "SearchFilter.c"
+}
+
+
+static SearchFilterToolbarSavedSearchPopoverDataButton* search_filter_toolbar_saved_search_popover_data_button_new (SavedSearch* search, const gchar* name) {
+#line 1001 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return search_filter_toolbar_saved_search_popover_data_button_construct (SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, search, name);
+#line 9863 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_data_button_restyle (SearchFilterToolbarSavedSearchPopoverDataButton* self) {
+ GtkButton* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+#line 1015 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_IS_DATA_BUTTON (self));
+#line 1016 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->button;
+#line 1016 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), 24, 24);
+#line 1017 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = self->priv->button;
+#line 1017 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ gtk_button_set_relief (_tmp1_, GTK_RELIEF_NONE);
+#line 9880 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_data_button_on_click (SearchFilterToolbarSavedSearchPopoverDataButton* self) {
+ SavedSearch* _tmp0_ = NULL;
+#line 1020 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_IS_DATA_BUTTON (self));
+#line 1021 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_search;
+#line 1021 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_emit_by_name (self, "clicked", _tmp0_);
+#line 9892 "SearchFilter.c"
+}
+
+
+static SavedSearch* search_filter_toolbar_saved_search_popover_data_button_get_search (SearchFilterToolbarSavedSearchPopoverDataButton* self) {
+ SavedSearch* result;
+ SavedSearch* _tmp0_ = NULL;
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_IS_DATA_BUTTON (self), NULL);
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->_search;
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ result = _tmp0_;
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return result;
+#line 9907 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_data_button_set_search (SearchFilterToolbarSavedSearchPopoverDataButton* self, SavedSearch* value) {
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_IS_DATA_BUTTON (self));
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = value;
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->_search);
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_search = _tmp1_;
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_notify ((GObject *) self, "search");
+#line 9926 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_data_button_class_init (SearchFilterToolbarSavedSearchPopoverDataButtonClass * klass) {
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_data_button_parent_class = g_type_class_peek_parent (klass);
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchFilterToolbarSavedSearchPopoverDataButtonPrivate));
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_search_filter_toolbar_saved_search_popover_data_button_get_property;
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_search_filter_toolbar_saved_search_popover_data_button_set_property;
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->finalize = search_filter_toolbar_saved_search_popover_data_button_finalize;
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_SEARCH, g_param_spec_object ("search", "search", "search", TYPE_SAVED_SEARCH, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("clicked", SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
+#line 9945 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_data_button_instance_init (SearchFilterToolbarSavedSearchPopoverDataButton * self) {
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_GET_PRIVATE (self);
+#line 996 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->button = NULL;
+#line 9954 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_data_button_finalize (GObject* obj) {
+ SearchFilterToolbarSavedSearchPopoverDataButton * self;
+ GtkButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, SearchFilterToolbarSavedSearchPopoverDataButton);
+#line 1012 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->button;
+#line 1012 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp1_, NULL, FALSE);
+#line 1012 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _search_filter_toolbar_saved_search_popover_data_button_on_click_gtk_button_clicked, self);
+#line 996 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->button);
+#line 997 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->_search);
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (search_filter_toolbar_saved_search_popover_data_button_parent_class)->finalize (obj);
+#line 9976 "SearchFilter.c"
+}
+
+
+static GType search_filter_toolbar_saved_search_popover_data_button_get_type (void) {
+ static volatile gsize search_filter_toolbar_saved_search_popover_data_button_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_saved_search_popover_data_button_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarSavedSearchPopoverDataButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_saved_search_popover_data_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbarSavedSearchPopoverDataButton), 0, (GInstanceInitFunc) search_filter_toolbar_saved_search_popover_data_button_instance_init, NULL };
+ GType search_filter_toolbar_saved_search_popover_data_button_type_id;
+ search_filter_toolbar_saved_search_popover_data_button_type_id = g_type_register_static (gtk_bin_get_type (), "SearchFilterToolbarSavedSearchPopoverDataButton", &g_define_type_info, 0);
+ g_once_init_leave (&search_filter_toolbar_saved_search_popover_data_button_type_id__volatile, search_filter_toolbar_saved_search_popover_data_button_type_id);
+ }
+ return search_filter_toolbar_saved_search_popover_data_button_type_id__volatile;
+}
+
+
+static void _vala_search_filter_toolbar_saved_search_popover_data_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SearchFilterToolbarSavedSearchPopoverDataButton * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, SearchFilterToolbarSavedSearchPopoverDataButton);
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ switch (property_id) {
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_SEARCH:
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_value_set_object (value, search_filter_toolbar_saved_search_popover_data_button_get_search (self));
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 10003 "SearchFilter.c"
+ default:
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 10009 "SearchFilter.c"
+ }
+}
+
+
+static void _vala_search_filter_toolbar_saved_search_popover_data_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SearchFilterToolbarSavedSearchPopoverDataButton * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, SearchFilterToolbarSavedSearchPopoverDataButton);
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ switch (property_id) {
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ case SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_DATA_BUTTON_SEARCH:
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_data_button_set_search (self, g_value_get_object (value));
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 10025 "SearchFilter.c"
+ default:
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 995 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ break;
+#line 10031 "SearchFilter.c"
+ }
+}
+
+
+static void search_filter_toolbar_value_saved_search_popover_init (GValue* value) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 10039 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_value_saved_search_popover_free_value (GValue* value) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (value->data[0].v_pointer) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_unref (value->data[0].v_pointer);
+#line 10048 "SearchFilter.c"
+ }
+}
+
+
+static void search_filter_toolbar_value_saved_search_popover_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (src_value->data[0].v_pointer) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ dest_value->data[0].v_pointer = search_filter_toolbar_saved_search_popover_ref (src_value->data[0].v_pointer);
+#line 10058 "SearchFilter.c"
+ } else {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 10062 "SearchFilter.c"
+ }
+}
+
+
+static gpointer search_filter_toolbar_value_saved_search_popover_peek_pointer (const GValue* value) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return value->data[0].v_pointer;
+#line 10070 "SearchFilter.c"
+}
+
+
+static gchar* search_filter_toolbar_value_saved_search_popover_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (collect_values[0].v_pointer) {
+#line 10077 "SearchFilter.c"
+ SearchFilterToolbarSavedSearchPopover* object;
+ object = collect_values[0].v_pointer;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 10084 "SearchFilter.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 10088 "SearchFilter.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = search_filter_toolbar_saved_search_popover_ref (object);
+#line 10092 "SearchFilter.c"
+ } else {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 10096 "SearchFilter.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return NULL;
+#line 10100 "SearchFilter.c"
+}
+
+
+static gchar* search_filter_toolbar_value_saved_search_popover_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SearchFilterToolbarSavedSearchPopover** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!object_p) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 10111 "SearchFilter.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (!value->data[0].v_pointer) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = NULL;
+#line 10117 "SearchFilter.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = value->data[0].v_pointer;
+#line 10121 "SearchFilter.c"
+ } else {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ *object_p = search_filter_toolbar_saved_search_popover_ref (value->data[0].v_pointer);
+#line 10125 "SearchFilter.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return NULL;
+#line 10129 "SearchFilter.c"
+}
+
+
+GParamSpec* search_filter_toolbar_param_spec_saved_search_popover (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ SearchFilterToolbarParamSpecSavedSearchPopover* spec;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER), NULL);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return G_PARAM_SPEC (spec);
+#line 10143 "SearchFilter.c"
+}
+
+
+gpointer search_filter_toolbar_value_get_saved_search_popover (const GValue* value) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER), NULL);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return value->data[0].v_pointer;
+#line 10152 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_value_set_saved_search_popover (GValue* value, gpointer v_object) {
+ SearchFilterToolbarSavedSearchPopover* old;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER));
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ old = value->data[0].v_pointer;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (v_object) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER));
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = v_object;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_ref (value->data[0].v_pointer);
+#line 10172 "SearchFilter.c"
+ } else {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 10176 "SearchFilter.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (old) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_unref (old);
+#line 10182 "SearchFilter.c"
+ }
+}
+
+
+void search_filter_toolbar_value_take_saved_search_popover (GValue* value, gpointer v_object) {
+ SearchFilterToolbarSavedSearchPopover* old;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER));
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ old = value->data[0].v_pointer;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (v_object) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER));
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = v_object;
+#line 10201 "SearchFilter.c"
+ } else {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ value->data[0].v_pointer = NULL;
+#line 10205 "SearchFilter.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (old) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_unref (old);
+#line 10211 "SearchFilter.c"
+ }
+}
+
+
+static void search_filter_toolbar_saved_search_popover_class_init (SearchFilterToolbarSavedSearchPopoverClass * klass) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_saved_search_popover_parent_class = g_type_class_peek_parent (klass);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ ((SearchFilterToolbarSavedSearchPopoverClass *) klass)->finalize = search_filter_toolbar_saved_search_popover_finalize;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchFilterToolbarSavedSearchPopoverPrivate));
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("search_activated", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("edit_clicked", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("delete_clicked", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("add_clicked", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_new ("closed", SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 10233 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_instance_init (SearchFilterToolbarSavedSearchPopover * self) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_GET_PRIVATE (self);
+#line 982 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->popover = NULL;
+#line 983 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->list_box = NULL;
+#line 984 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->edit_buttons = NULL;
+#line 984 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->edit_buttons_length1 = 0;
+#line 984 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_edit_buttons_size_ = self->priv->edit_buttons_length1;
+#line 985 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->delete_buttons = NULL;
+#line 985 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->delete_buttons_length1 = 0;
+#line 985 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->_delete_buttons_size_ = self->priv->delete_buttons_length1;
+#line 986 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->add = NULL;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->ref_count = 1;
+#line 10260 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_saved_search_popover_finalize (SearchFilterToolbarSavedSearchPopover* obj) {
+ SearchFilterToolbarSavedSearchPopover * self;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ SearchFilterToolbarSavedSearchPopoverDataButton** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkButton* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ GtkListBox* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ GtkPopover* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCH_FILTER_TOOLBAR_TYPE_SAVED_SEARCH_POPOVER, SearchFilterToolbarSavedSearchPopover);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_destroy (self);
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->edit_buttons;
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0__length1 = self->priv->edit_buttons_length1;
+#line 10284 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton** button_collection = NULL;
+ gint button_collection_length1 = 0;
+ gint _button_collection_size_ = 0;
+ gint button_it = 0;
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection = _tmp0_;
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection_length1 = _tmp0__length1;
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ for (button_it = 0; button_it < _tmp0__length1; button_it = button_it + 1) {
+#line 10296 "SearchFilter.c"
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp1_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* button = NULL;
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = _g_object_ref0 (button_collection[button_it]);
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button = _tmp1_;
+#line 10303 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = button;
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("clicked", SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, &_tmp3_, NULL, FALSE);
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _search_filter_toolbar_saved_search_popover_on_edit_click_search_filter_toolbar_saved_search_popover_data_button_clicked, self);
+#line 1062 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (button);
+#line 10315 "SearchFilter.c"
+ }
+ }
+ }
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->delete_buttons;
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4__length1 = self->priv->delete_buttons_length1;
+#line 10323 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton** button_collection = NULL;
+ gint button_collection_length1 = 0;
+ gint _button_collection_size_ = 0;
+ gint button_it = 0;
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection = _tmp4_;
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button_collection_length1 = _tmp4__length1;
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ for (button_it = 0; button_it < _tmp4__length1; button_it = button_it + 1) {
+#line 10335 "SearchFilter.c"
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp5_ = NULL;
+ SearchFilterToolbarSavedSearchPopoverDataButton* button = NULL;
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp5_ = _g_object_ref0 (button_collection[button_it]);
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ button = _tmp5_;
+#line 10342 "SearchFilter.c"
+ {
+ SearchFilterToolbarSavedSearchPopoverDataButton* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = button;
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("clicked", SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_TYPE_DATA_BUTTON, &_tmp7_, NULL, FALSE);
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _search_filter_toolbar_saved_search_popover_on_delete_click_search_filter_toolbar_saved_search_popover_data_button_clicked, self);
+#line 1063 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (button);
+#line 10354 "SearchFilter.c"
+ }
+ }
+ }
+#line 1064 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->add;
+#line 1064 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp9_, NULL, FALSE);
+#line 1064 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _search_filter_toolbar_saved_search_popover_on_add_click_gtk_button_clicked, self);
+#line 1065 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->list_box;
+#line 1065 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("row-activated", gtk_list_box_get_type (), &_tmp11_, NULL, FALSE);
+#line 1065 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _search_filter_toolbar_saved_search_popover_on_activate_row_gtk_list_box_row_activated, self);
+#line 1066 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = self->priv->popover;
+#line 1066 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("closed", gtk_popover_get_type (), &_tmp13_, NULL, FALSE);
+#line 1066 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _search_filter_toolbar_saved_search_popover_on_popover_closed_gtk_popover_closed, self);
+#line 982 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->popover);
+#line 983 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->list_box);
+#line 984 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->edit_buttons = (_vala_array_free (self->priv->edit_buttons, self->priv->edit_buttons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 985 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->delete_buttons = (_vala_array_free (self->priv->delete_buttons, self->priv->delete_buttons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 986 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->add);
+#line 10386 "SearchFilter.c"
+}
+
+
+GType search_filter_toolbar_saved_search_popover_get_type (void) {
+ static volatile gsize search_filter_toolbar_saved_search_popover_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_saved_search_popover_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { search_filter_toolbar_value_saved_search_popover_init, search_filter_toolbar_value_saved_search_popover_free_value, search_filter_toolbar_value_saved_search_popover_copy_value, search_filter_toolbar_value_saved_search_popover_peek_pointer, "p", search_filter_toolbar_value_saved_search_popover_collect_value, "p", search_filter_toolbar_value_saved_search_popover_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarSavedSearchPopoverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_saved_search_popover_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbarSavedSearchPopover), 0, (GInstanceInitFunc) search_filter_toolbar_saved_search_popover_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType search_filter_toolbar_saved_search_popover_type_id;
+ search_filter_toolbar_saved_search_popover_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SearchFilterToolbarSavedSearchPopover", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&search_filter_toolbar_saved_search_popover_type_id__volatile, search_filter_toolbar_saved_search_popover_type_id);
+ }
+ return search_filter_toolbar_saved_search_popover_type_id__volatile;
+}
+
+
+gpointer search_filter_toolbar_saved_search_popover_ref (gpointer instance) {
+ SearchFilterToolbarSavedSearchPopover* self;
+ self = instance;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ return instance;
+#line 10411 "SearchFilter.c"
+}
+
+
+void search_filter_toolbar_saved_search_popover_unref (gpointer instance) {
+ SearchFilterToolbarSavedSearchPopover* self;
+ self = instance;
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ SEARCH_FILTER_TOOLBAR_SAVED_SEARCH_POPOVER_GET_CLASS (self)->finalize (self);
+#line 981 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 10424 "SearchFilter.c"
+ }
+}
+
+
+static void search_filter_toolbar_class_init (SearchFilterToolbarClass * klass) {
+#line 664 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ search_filter_toolbar_parent_class = g_type_class_peek_parent (klass);
+#line 664 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_type_class_add_private (klass, sizeof (SearchFilterToolbarPrivate));
+#line 664 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (klass)->finalize = search_filter_toolbar_finalize;
+#line 10436 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_instance_init (SearchFilterToolbar * self) {
+ GtkMenu* _tmp0_ = NULL;
+ GtkMenuItem* _tmp1_ = NULL;
+ GtkUIManager* _tmp2_ = NULL;
+ SearchFilterToolbarRatingFilterButton* _tmp3_ = NULL;
+ SearchFilterToolbarSavedSearchFilterButton* _tmp4_ = NULL;
+#line 664 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv = SEARCH_FILTER_TOOLBAR_GET_PRIVATE (self);
+#line 737 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = (GtkMenu*) gtk_menu_new ();
+#line 737 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp0_);
+#line 737 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->close_menu = _tmp0_;
+#line 738 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp1_ = (GtkMenuItem*) gtk_menu_item_new ();
+#line 738 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp1_);
+#line 738 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->close_item = _tmp1_;
+#line 1117 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = gtk_ui_manager_new ();
+#line 1117 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->ui = _tmp2_;
+#line 1120 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->saved_search = NULL;
+#line 1122 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp3_ = search_filter_toolbar_rating_filter_button_new ();
+#line 1122 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp3_);
+#line 1122 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->rating_button = _tmp3_;
+#line 1123 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = search_filter_toolbar_saved_search_filter_button_new ();
+#line 1123 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_object_ref_sink (_tmp4_);
+#line 1123 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->saved_search_button = _tmp4_;
+#line 1124 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->elide_showing_again = FALSE;
+#line 1125 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self->priv->search_filter = NULL;
+#line 10482 "SearchFilter.c"
+}
+
+
+static void search_filter_toolbar_finalize (GObject* obj) {
+ SearchFilterToolbar * self;
+ SearchFilterActions* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ SearchFilterActions* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ SearchFilterActions* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ SearchFilterActions* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ SearchFilterActions* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ SearchFilterActions* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ SearchFilterActions* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ SearchFilterActions* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ GtkToolbar* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+#line 664 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbar);
+#line 1244 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp0_ = self->priv->actions;
+#line 1244 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("media-context-changed", TYPE_SEARCH_FILTER_ACTIONS, &_tmp1_, NULL, FALSE);
+#line 1244 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _search_filter_toolbar_on_media_context_changed_search_filter_actions_media_context_changed, self);
+#line 1246 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp2_ = self->priv->actions;
+#line 1246 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("flagged-toggled", TYPE_SEARCH_FILTER_ACTIONS, &_tmp3_, NULL, FALSE);
+#line 1246 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _search_filter_toolbar_on_flagged_toggled_search_filter_actions_flagged_toggled, self);
+#line 1247 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp4_ = self->priv->actions;
+#line 1247 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("photos-toggled", TYPE_SEARCH_FILTER_ACTIONS, &_tmp5_, NULL, FALSE);
+#line 1247 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _search_filter_toolbar_on_photos_toggled_search_filter_actions_photos_toggled, self);
+#line 1248 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp6_ = self->priv->actions;
+#line 1248 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("videos-toggled", TYPE_SEARCH_FILTER_ACTIONS, &_tmp7_, NULL, FALSE);
+#line 1248 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _search_filter_toolbar_on_videos_toggled_search_filter_actions_videos_toggled, self);
+#line 1249 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp8_ = self->priv->actions;
+#line 1249 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("raw-toggled", TYPE_SEARCH_FILTER_ACTIONS, &_tmp9_, NULL, FALSE);
+#line 1249 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _search_filter_toolbar_on_raw_toggled_search_filter_actions_raw_toggled, self);
+#line 1250 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp10_ = self->priv->actions;
+#line 1250 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("rating-changed", TYPE_SEARCH_FILTER_ACTIONS, &_tmp11_, NULL, FALSE);
+#line 1250 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _search_filter_toolbar_on_rating_changed_search_filter_actions_rating_changed, self);
+#line 1251 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp12_ = self->priv->actions;
+#line 1251 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("text-changed", TYPE_SEARCH_FILTER_ACTIONS, &_tmp13_, NULL, FALSE);
+#line 1251 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _search_filter_toolbar_on_search_text_changed_search_filter_actions_text_changed, self);
+#line 1252 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp14_ = self->priv->actions;
+#line 1252 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("criteria-changed", TYPE_SEARCH_FILTER_ACTIONS, &_tmp15_, NULL, FALSE);
+#line 1252 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp14_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _search_filter_toolbar_on_criteria_changed_search_filter_actions_criteria_changed, self);
+#line 1254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _tmp16_ = self->priv->toolbar;
+#line 1254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_parse_name ("popup-context-menu", gtk_toolbar_get_type (), &_tmp17_, NULL, FALSE);
+#line 1254 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ g_signal_handlers_disconnect_matched (_tmp16_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp17_, 0, NULL, (GCallback) _search_filter_toolbar_on_context_menu_requested_gtk_toolbar_popup_context_menu, self);
+#line 665 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbar);
+#line 737 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->close_menu);
+#line 738 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->close_item);
+#line 1117 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->ui);
+#line 1119 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _search_filter_actions_unref0 (self->priv->actions);
+#line 1120 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->saved_search);
+#line 1121 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->search_box);
+#line 1122 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->rating_button);
+#line 1123 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->saved_search_button);
+#line 1125 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 1126 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->label_type);
+#line 1127 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_photos);
+#line 1128 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_videos);
+#line 1129 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_raw);
+#line 1130 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->toolbtn_flag);
+#line 1131 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->sepr_mediatype_flagged);
+#line 1132 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->sepr_flagged_rating);
+#line 1133 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ _g_object_unref0 (self->priv->sepr_rating_saved);
+#line 664 "/home/jens/Source/shotwell/src/SearchFilter.vala"
+ G_OBJECT_CLASS (search_filter_toolbar_parent_class)->finalize (obj);
+#line 10600 "SearchFilter.c"
+}
+
+
+GType search_filter_toolbar_get_type (void) {
+ static volatile gsize search_filter_toolbar_type_id__volatile = 0;
+ if (g_once_init_enter (&search_filter_toolbar_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchFilterToolbarClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_filter_toolbar_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchFilterToolbar), 0, (GInstanceInitFunc) search_filter_toolbar_instance_init, NULL };
+ GType search_filter_toolbar_type_id;
+ search_filter_toolbar_type_id = g_type_register_static (gtk_revealer_get_type (), "SearchFilterToolbar", &g_define_type_info, 0);
+ g_once_init_leave (&search_filter_toolbar_type_id__volatile, search_filter_toolbar_type_id);
+ }
+ return search_filter_toolbar_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/SearchFilter.vala b/src/SearchFilter.vala
index 23f7aed..d9fe0fe 100644
--- a/src/SearchFilter.vala
+++ b/src/SearchFilter.vala
@@ -13,6 +13,7 @@ public enum SearchFilterCriteria {
FLAG,
MEDIA,
RATING,
+ SAVEDSEARCH,
ALL = 0xFFFFFFFF
}
@@ -54,6 +55,9 @@ public abstract class SearchViewFilter : ViewFilter {
// Search text filter. Should only be set to lower-case.
private string? search_filter = null;
private string[]? search_filter_words = null;
+
+ // Saved search filter
+ public SavedSearch saved_search { get; set; default = null; }
// Returns a bitmask of SearchFilterCriteria.
// IMPORTANT: There is no signal on this, changing this value after the
@@ -153,6 +157,10 @@ public abstract class SearchViewFilter : ViewFilter {
search_filter_words = null;
}
+ public bool has_saved_search() {
+ return saved_search != null;
+ }
+
public bool get_rating_allow_higher() {
return rating_allow_higher;
}
@@ -207,6 +215,7 @@ public abstract class DefaultSearchViewFilter : SearchViewFilter {
}
}
+ // Text
if (((SearchFilterCriteria.TEXT & criteria) != 0) && has_search_filter()) {
unowned string? media_keywords = source.get_indexable_keywords();
@@ -246,6 +255,11 @@ public abstract class DefaultSearchViewFilter : SearchViewFilter {
}
}
+ // Saved search
+ if (((SearchFilterCriteria.SAVEDSEARCH & criteria) != 0) && has_saved_search()) {
+ return saved_search.predicate(source);
+ }
+
return true;
}
}
@@ -538,7 +552,8 @@ public class SearchFilterActions {
Gtk.RadioActionEntry rejected_or_higher = { "CommonDisplayRejectedOrHigher", null, TRANSLATABLE,
"<Ctrl>9", TRANSLATABLE, RatingFilter.REJECTED_OR_HIGHER };
rejected_or_higher.label = Resources.DISPLAY_REJECTED_OR_HIGHER_MENU;
- rejected_or_higher.tooltip = Resources.DISPLAY_REJECTED_OR_HIGHER_TOOLTIP;
+ rejected_or_higher.tooltip = GLib.dpgettext2 (null, "Tooltip",
+ Resources.DISPLAY_REJECTED_OR_HIGHER_TOOLTIP);
view_filter_actions += rejected_or_higher;
Gtk.RadioActionEntry unrated_or_higher = { "CommonDisplayUnratedOrHigher", null, TRANSLATABLE,
@@ -916,12 +931,197 @@ public class SearchFilterToolbar : Gtk.Revealer {
}
}
+
+ protected class SavedSearchFilterButton : Gtk.ToolItem {
+ public SavedSearchPopover filter_popup = null;
+ public Gtk.ToggleButton button;
+
+ public signal void clicked();
+
+ public SavedSearchFilterButton() {
+ button = new Gtk.ToggleButton();
+ button.set_always_show_image(true);
+
+ Gtk.Image? image = new Gtk.Image.from_icon_name("find", Gtk.IconSize.SMALL_TOOLBAR);
+ image.set_margin_end(6);
+ button.set_image(image);
+ button.set_can_focus(false);
+
+ button.clicked.connect(on_clicked);
+
+ restyle();
+
+ set_homogeneous(false);
+
+ this.add(button);
+ }
+
+ ~SavedSearchFilterButton() {
+ button.clicked.disconnect(on_clicked);
+ }
+
+ private void on_clicked() {
+ clicked();
+ }
+
+ public void set_active(bool active) {
+ button.set_active(active);
+ }
+
+ public void set_label(string label) {
+ button.set_label(label);
+ }
+
+ public void restyle() {
+ button.set_size_request(24, 24);
+ button.relief = Gtk.ReliefStyle.NONE;
+ }
+ }
+
+ protected class SavedSearchPopover {
+ private Gtk.Popover popover = null;
+ private Gtk.ListBox list_box = null;
+ private DataButton[] edit_buttons = null;
+ private DataButton[] delete_buttons = null;
+ Gtk.Button add = null;
+
+ public signal void search_activated(SavedSearch search);
+ public signal void edit_clicked(SavedSearch search);
+ public signal void delete_clicked(SavedSearch search);
+ public signal void add_clicked();
+
+ public signal void closed();
+
+ private class DataButton : Gtk.Bin {
+ private Gtk.Button button = null;
+ public SavedSearch search { get; private set; }
+
+ public signal void clicked(SavedSearch search);
+
+ public DataButton(SavedSearch search, string name) {
+ button = new Gtk.Button.from_icon_name(name, Gtk.IconSize.SMALL_TOOLBAR);
+ this.search = search;
+ this.add(button);
+
+ restyle();
+
+ button.clicked.connect(on_click);
+ }
+
+ ~DataButton() {
+ button.clicked.disconnect(on_click);
+ }
+
+ public void restyle() {
+ button.set_size_request(24, 24);
+ button.relief = Gtk.ReliefStyle.NONE;
+ }
+
+ private void on_click() {
+ clicked(this.search);
+ }
+ }
+
+ public SavedSearchPopover(Gtk.Widget relative_to) {
+ popover = new Gtk.Popover(relative_to);
+ popover.closed.connect(on_popover_closed);
+ list_box = new Gtk.ListBox();
+ edit_buttons = new DataButton[0];
+ delete_buttons = new DataButton[0];
+
+ foreach (SavedSearch search in SavedSearchTable.get_instance().get_all()) {
+ Gtk.Box row = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 1);
+ row.set_homogeneous(false);
+ Gtk.Label label = new Gtk.Label(search.get_name());
+ label.halign = Gtk.Align.START;
+ row.pack_start(label, true, true, 3);
+
+ DataButton delete_button = new DataButton(search, "edit-delete-symbolic");
+ row.pack_end(delete_button, false, false);
+ delete_button.clicked.connect(on_delete_click);
+ delete_buttons += delete_button;
+
+ DataButton edit_button = new DataButton(search, "text-editor-symbolic");
+ row.pack_end(edit_button, false, false);
+ edit_button.clicked.connect(on_edit_click);
+ edit_buttons += edit_button;
+
+ list_box.insert(row, -1);
+ }
+ add = new Gtk.Button.from_icon_name("list-add-symbolic", Gtk.IconSize.BUTTON);
+ add.clicked.connect(on_add_click);
+ list_box.insert(add, -1);
+ list_box.row_activated.connect(on_activate_row);
+ list_box.selection_mode = Gtk.SelectionMode.NONE;
+ popover.add(list_box);
+
+ restyle();
+ }
+
+ ~SavedSearchPopover() {
+ foreach (DataButton button in edit_buttons) button.clicked.disconnect(on_edit_click);
+ foreach (DataButton button in delete_buttons) button.clicked.disconnect(on_delete_click);
+ add.clicked.disconnect(on_add_click);
+ list_box.row_activated.disconnect(on_activate_row);
+ popover.closed.disconnect(on_popover_closed);
+ }
+
+ public void restyle() {
+ add.relief = Gtk.ReliefStyle.NONE;
+ foreach (DataButton button in edit_buttons) button.restyle();
+ foreach (DataButton button in delete_buttons) button.restyle();
+ }
+
+ private bool is_search_row(Gtk.ListBoxRow? row) {
+ if (row == null) return false;
+ if (row.get_children().last().data is Gtk.Button) return false;
+ return true;
+ }
+
+ private SavedSearch get_search(Gtk.ListBoxRow row) {
+ DataButton button = (row.get_children().first().data as Gtk.Box).get_children().last().data as DataButton;
+ return button.search;
+ }
+
+ private void on_activate_row(Gtk.ListBoxRow? row) {
+ if (is_search_row(row))
+ search_activated(get_search(row));
+ popover.hide();
+ }
+
+ private void on_edit_click(SavedSearch search) {
+ edit_clicked(search);
+ }
+
+ private void on_delete_click(SavedSearch search) {
+ delete_clicked(search);
+ }
+
+ private void on_add_click() {
+ add_clicked();
+ }
+
+ private void on_popover_closed() {
+ closed();
+ }
+
+ public void show_all() {
+ popover.show_all();
+ }
+
+ public void hide() {
+ popover.hide();
+ }
+ }
public Gtk.UIManager ui = new Gtk.UIManager();
private SearchFilterActions actions;
+ private SavedSearch saved_search = null;
private SearchBox search_box;
private RatingFilterButton rating_button = new RatingFilterButton();
+ private SavedSearchFilterButton saved_search_button = new SavedSearchFilterButton();
+ private bool elide_showing_again = false;
private SearchViewFilter? search_filter = null;
private LabelToolItem label_type;
private ToggleActionToolButton toolbtn_photos;
@@ -930,6 +1130,7 @@ public class SearchFilterToolbar : Gtk.Revealer {
private ToggleActionToolButton toolbtn_flag;
private Gtk.SeparatorToolItem sepr_mediatype_flagged;
private Gtk.SeparatorToolItem sepr_flagged_rating;
+ private Gtk.SeparatorToolItem sepr_rating_saved;
public SearchFilterToolbar(SearchFilterActions actions) {
this.actions = actions;
@@ -1000,6 +1201,17 @@ public class SearchFilterToolbar : Gtk.Revealer {
rating_button.clicked.connect(on_filter_button_clicked);
toolbar.insert(rating_button, -1);
+ // separator
+ sepr_rating_saved = new Gtk.SeparatorToolItem();
+ toolbar.insert(sepr_rating_saved, -1);
+
+ // Saved search button
+ saved_search_button.set_expand(false);
+ saved_search_button.set_label(_("Saved Search"));
+ saved_search_button.set_tooltip_text(_("Use a saved search to filter items in the current view"));
+ saved_search_button.clicked.connect(on_saved_search_button_clicked);
+ toolbar.insert(saved_search_button, -1);
+
// Separator to right-align the text box
Gtk.SeparatorToolItem separator_align = new Gtk.SeparatorToolItem();
separator_align.set_expand(true);
@@ -1163,6 +1375,8 @@ public class SearchFilterToolbar : Gtk.Revealer {
RatingFilter filter = (RatingFilter) actions.rating.current_value;
search_filter.set_rating_filter(filter);
rating_button.set_filter_icon(filter);
+
+ search_filter.saved_search = saved_search;
// Ticket #3290, part III - check the current criteria
// and show or hide widgets as needed.
@@ -1179,6 +1393,8 @@ public class SearchFilterToolbar : Gtk.Revealer {
toolbtn_videos.visible = ((criteria & SearchFilterCriteria.MEDIA) != 0);
toolbtn_raw.visible = ((criteria & SearchFilterCriteria.MEDIA) != 0);
+ saved_search_button.visible = ((criteria & SearchFilterCriteria.SAVEDSEARCH) != 0);
+
// Ticket #3290, part IV - ensure that the separators
// are shown and/or hidden as needed.
sepr_mediatype_flagged.visible = (label_type.visible && toolbtn_flag.visible);
@@ -1214,7 +1430,67 @@ public class SearchFilterToolbar : Gtk.Revealer {
rating_button.filter_popup.popup(null, null, position_filter_popup, 0,
Gtk.get_current_event_time());
}
+
+ private void on_savedsearch_selected(SavedSearch saved_search) {
+ this.saved_search = saved_search;
+ update();
+ }
+
+ private void disable_savedsearch() {
+ this.saved_search = null;
+ update();
+ }
+ private void edit_dialog(SavedSearch search) {
+ saved_search_button.filter_popup.hide();
+ SavedSearchDialog ssd = new SavedSearchDialog.edit_existing(search);
+ ssd.show();
+ }
+
+ private void delete_dialog(SavedSearch search) {
+ saved_search_button.filter_popup.hide();
+ if (Dialogs.confirm_delete_saved_search(search))
+ AppWindow.get_command_manager().execute(new DeleteSavedSearchCommand(search));
+ }
+
+ private void add_dialog() {
+ saved_search_button.filter_popup.hide();
+ (new SavedSearchDialog()).show();
+ }
+
+ private void on_popover_closed() {
+ // set_active emits clicked, so have a flag to not actually do anything
+ elide_showing_again = true;
+ saved_search_button.set_active(saved_search != null);
+ saved_search_button.filter_popup.hide();
+ }
+
+ private void on_saved_search_button_clicked() {
+ if (elide_showing_again && saved_search == null) {
+ } else if (saved_search != null) {
+ saved_search = null;
+ saved_search_button.set_active(false);
+ disable_savedsearch();
+ } else {
+ if (saved_search_button.filter_popup != null) {
+ saved_search_button.filter_popup.edit_clicked.disconnect(edit_dialog);
+ saved_search_button.filter_popup.search_activated.disconnect(on_savedsearch_selected);
+ saved_search_button.filter_popup.delete_clicked.disconnect(delete_dialog);
+ saved_search_button.filter_popup.add_clicked.disconnect(add_dialog);
+ saved_search_button.filter_popup.closed.disconnect(on_popover_closed);
+ }
+ saved_search_button.filter_popup = new SavedSearchPopover(saved_search_button);
+ saved_search_button.filter_popup.edit_clicked.connect(edit_dialog);
+ saved_search_button.filter_popup.search_activated.connect(on_savedsearch_selected);
+ saved_search_button.filter_popup.delete_clicked.connect(delete_dialog);
+ saved_search_button.filter_popup.add_clicked.connect(add_dialog);
+ saved_search_button.filter_popup.closed.connect(on_popover_closed);
+
+ saved_search_button.filter_popup.show_all();
+ }
+ elide_showing_again = false;
+ }
+
public void take_focus() {
search_box.get_focus();
}
diff --git a/src/SlideshowPage.c b/src/SlideshowPage.c
new file mode 100644
index 0000000..ea313b0
--- /dev/null
+++ b/src/SlideshowPage.c
@@ -0,0 +1,3439 @@
+/* SlideshowPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from SlideshowPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <pango/pango.h>
+#include <pango/pangocairo.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate;
+
+#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ())
+#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer))
+#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER))
+#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER))
+#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+
+typedef struct _ZoomBuffer ZoomBuffer;
+typedef struct _ZoomBufferClass ZoomBufferClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())
+
+#define TYPE_SLIDESHOW_PAGE (slideshow_page_get_type ())
+#define SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPage))
+#define SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+#define IS_SLIDESHOW_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SLIDESHOW_PAGE))
+#define IS_SLIDESHOW_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SLIDESHOW_PAGE))
+#define SLIDESHOW_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SLIDESHOW_PAGE, SlideshowPageClass))
+
+typedef struct _SlideshowPage SlideshowPage;
+typedef struct _SlideshowPageClass SlideshowPageClass;
+typedef struct _SlideshowPagePrivate SlideshowPagePrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_PIXBUF_CACHE (pixbuf_cache_get_type ())
+#define PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXBUF_CACHE, PixbufCache))
+#define PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXBUF_CACHE, PixbufCacheClass))
+#define IS_PIXBUF_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXBUF_CACHE))
+#define IS_PIXBUF_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXBUF_CACHE))
+#define PIXBUF_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXBUF_CACHE, PixbufCacheClass))
+
+typedef struct _PixbufCache PixbufCache;
+typedef struct _PixbufCacheClass PixbufCacheClass;
+
+#define TYPE_SCREENSAVER (screensaver_get_type ())
+#define SCREENSAVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SCREENSAVER, Screensaver))
+#define SCREENSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SCREENSAVER, ScreensaverClass))
+#define IS_SCREENSAVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SCREENSAVER))
+#define IS_SCREENSAVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SCREENSAVER))
+#define SCREENSAVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SCREENSAVER, ScreensaverClass))
+
+typedef struct _Screensaver Screensaver;
+typedef struct _ScreensaverClass ScreensaverClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+#define _screensaver_unref0(var) ((var == NULL) ? NULL : (var = (screensaver_unref (var), NULL)))
+
+#define TYPE_TRANSITION_EFFECTS_MANAGER (transition_effects_manager_get_type ())
+#define TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManager))
+#define TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))
+#define IS_TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSITION_EFFECTS_MANAGER))
+#define IS_TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSITION_EFFECTS_MANAGER))
+#define TRANSITION_EFFECTS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))
+
+typedef struct _TransitionEffectsManager TransitionEffectsManager;
+typedef struct _TransitionEffectsManagerClass TransitionEffectsManagerClass;
+#define _transition_effects_manager_unref0(var) ((var == NULL) ? NULL : (var = (transition_effects_manager_unref (var), NULL)))
+
+#define PIXBUF_CACHE_TYPE_PHOTO_TYPE (pixbuf_cache_photo_type_get_type ())
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_DIRECTION (direction_get_type ())
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG (slideshow_page_settings_dialog_get_type ())
+#define SLIDESHOW_PAGE_SETTINGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialog))
+#define SLIDESHOW_PAGE_SETTINGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialogClass))
+#define SLIDESHOW_PAGE_IS_SETTINGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG))
+#define SLIDESHOW_PAGE_IS_SETTINGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG))
+#define SLIDESHOW_PAGE_SETTINGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialogClass))
+
+typedef struct _SlideshowPageSettingsDialog SlideshowPageSettingsDialog;
+typedef struct _SlideshowPageSettingsDialogClass SlideshowPageSettingsDialogClass;
+#define _pango_attribute_destroy0(var) ((var == NULL) ? NULL : (var = (pango_attribute_destroy (var), NULL)))
+#define _pango_attr_list_unref0(var) ((var == NULL) ? NULL : (var = (pango_attr_list_unref (var), NULL)))
+typedef struct _SlideshowPageSettingsDialogPrivate SlideshowPageSettingsDialogPrivate;
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
+} SinglePhotoPageUpdateReason;
+
+struct _SinglePhotoPage {
+ Page parent_instance;
+ SinglePhotoPagePrivate * priv;
+ GtkDrawingArea* canvas;
+ GtkViewport* viewport;
+};
+
+struct _SinglePhotoPageClass {
+ PageClass parent_class;
+ gboolean (*is_zoom_supported) (SinglePhotoPage* self);
+ void (*cancel_zoom) (SinglePhotoPage* self);
+ void (*save_zoom_state) (SinglePhotoPage* self);
+ void (*restore_zoom_state) (SinglePhotoPage* self);
+ ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self);
+ void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+ void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*on_previous_photo) (SinglePhotoPage* self);
+ void (*on_next_photo) (SinglePhotoPage* self);
+};
+
+struct _SlideshowPage {
+ SinglePhotoPage parent_instance;
+ SlideshowPagePrivate * priv;
+};
+
+struct _SlideshowPageClass {
+ SinglePhotoPageClass parent_class;
+};
+
+struct _SlideshowPagePrivate {
+ SourceCollection* sources;
+ ViewCollection* controller;
+ Photo* current;
+ GtkToolButton* play_pause_button;
+ GtkToolButton* settings_button;
+ PixbufCache* cache;
+ GTimer* timer;
+ gboolean playing;
+ gboolean exiting;
+ gchar** transitions;
+ gint transitions_length1;
+ gint _transitions_size_;
+ Screensaver* screensaver;
+};
+
+typedef enum {
+ PIXBUF_CACHE_PHOTO_TYPE_BASELINE,
+ PIXBUF_CACHE_PHOTO_TYPE_MASTER
+} PixbufCachePhotoType;
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef gboolean (*PixbufCacheCacheFilter) (Photo* photo, void* user_data);
+typedef enum {
+ DIRECTION_FORWARD,
+ DIRECTION_BACKWARD
+} Direction;
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _SlideshowPageSettingsDialog {
+ GtkDialog parent_instance;
+ SlideshowPageSettingsDialogPrivate * priv;
+};
+
+struct _SlideshowPageSettingsDialogClass {
+ GtkDialogClass parent_class;
+};
+
+struct _SlideshowPageSettingsDialogPrivate {
+ GtkBuilder* builder;
+ GtkSpinButton* delay_entry;
+ GtkScale* delay_hscale;
+ GtkComboBoxText* transition_effect_selector;
+ GtkScale* transition_effect_hscale;
+ GtkSpinButton* transition_effect_entry;
+ GtkAdjustment* transition_effect_adjustment;
+ GtkCheckButton* show_title_button;
+ GtkBox* pane;
+};
+
+
+static gpointer slideshow_page_parent_class = NULL;
+static gpointer slideshow_page_settings_dialog_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType zoom_buffer_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
+GType slideshow_page_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType pixbuf_cache_get_type (void) G_GNUC_CONST;
+gpointer screensaver_ref (gpointer instance);
+void screensaver_unref (gpointer instance);
+GParamSpec* param_spec_screensaver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_screensaver (GValue* value, gpointer v_object);
+void value_take_screensaver (GValue* value, gpointer v_object);
+gpointer value_get_screensaver (const GValue* value);
+GType screensaver_get_type (void) G_GNUC_CONST;
+#define SLIDESHOW_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SLIDESHOW_PAGE, SlideshowPagePrivate))
+enum {
+ SLIDESHOW_PAGE_DUMMY_PROPERTY
+};
+#define SLIDESHOW_PAGE_READAHEAD_COUNT 5
+#define SLIDESHOW_PAGE_CHECK_ADVANCE_MSEC 250
+SlideshowPage* slideshow_page_new (SourceCollection* sources, ViewCollection* controller, Photo* start);
+SlideshowPage* slideshow_page_construct (GType object_type, SourceCollection* sources, ViewCollection* controller, Photo* start);
+SinglePhotoPage* single_photo_page_construct (GType object_type, const gchar* page_name, gboolean scale_up_to_viewport);
+gpointer transition_effects_manager_ref (gpointer instance);
+void transition_effects_manager_unref (gpointer instance);
+GParamSpec* param_spec_transition_effects_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transition_effects_manager (GValue* value, gpointer v_object);
+void value_take_transition_effects_manager (GValue* value, gpointer v_object);
+gpointer value_get_transition_effects_manager (const GValue* value);
+GType transition_effects_manager_get_type (void) G_GNUC_CONST;
+TransitionEffectsManager* transition_effects_manager_get_instance (void);
+GeeCollection* transition_effects_manager_get_effect_ids (TransitionEffectsManager* self);
+#define NULL_TRANSITION_DESCRIPTOR_EFFECT_ID "org.yorba.shotwell.transitions.null"
+#define RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID "org.yorba.shotwell.transitions.random"
+static void slideshow_page_update_transition_effect (SlideshowPage* self);
+GtkToolbar* page_get_toolbar (Page* self);
+void single_photo_page_on_previous_photo (SinglePhotoPage* self);
+static void _single_photo_page_on_previous_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+static void slideshow_page_on_play_pause (SlideshowPage* self);
+static void _slideshow_page_on_play_pause_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+void single_photo_page_on_next_photo (SinglePhotoPage* self);
+static void _single_photo_page_on_next_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+static void slideshow_page_on_change_settings (SlideshowPage* self);
+static void _slideshow_page_on_change_settings_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self);
+Screensaver* screensaver_new (void);
+Screensaver* screensaver_construct (GType object_type);
+static void slideshow_page_real_switched_to (Page* base);
+void page_switched_to (Page* self);
+GType pixbuf_cache_photo_type_get_type (void) G_GNUC_CONST;
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void single_photo_page_get_canvas_scaling (SinglePhotoPage* self, Scaling* result);
+PixbufCache* pixbuf_cache_new (SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target);
+PixbufCache* pixbuf_cache_construct (GType object_type, SourceCollection* sources, PixbufCachePhotoType type, Scaling* scaling, gint max_count, PixbufCacheCacheFilter filter, void* filter_target);
+GType direction_get_type (void) G_GNUC_CONST;
+static gboolean slideshow_page_get_next_photo (SlideshowPage* self, Photo* start, Direction direction, Photo** next, GdkPixbuf** next_pixbuf);
+void single_photo_page_set_pixbuf (SinglePhotoPage* self, GdkPixbuf* unscaled, Dimensions* max_dim, Direction* direction);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+static gboolean slideshow_page_auto_advance (SlideshowPage* self);
+static gboolean _slideshow_page_auto_advance_gsource_func (gpointer self);
+void screensaver_inhibit (Screensaver* self, const gchar* reason);
+static void slideshow_page_real_switching_from (Page* base);
+void page_switching_from (Page* self);
+void screensaver_uninhibit (Screensaver* self);
+GdkPixbuf* pixbuf_cache_fetch (PixbufCache* self, Photo* photo, GError** error);
+gchar* data_object_to_string (DataObject* self);
+GType data_view_get_type (void) G_GNUC_CONST;
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+DataView* view_collection_get_next (ViewCollection* self, DataView* view);
+DataView* view_collection_get_previous (ViewCollection* self, DataView* view);
+DataSource* data_view_get_source (DataView* self);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+GtkWindow* page_get_container (Page* self);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void app_window_end_fullscreen (AppWindow* self);
+gboolean view_collection_get_immediate_neighbors (ViewCollection* self, DataSource* home, DataSource** next, DataSource** prev, const gchar* type_selector);
+#define PHOTO_TYPENAME "thumb"
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+void pixbuf_cache_prefetch (PixbufCache* self, Photo* photo, BackgroundJobJobPriority priority, gboolean force);
+GeeSet* view_collection_get_extended_neighbors (ViewCollection* self, DataSource* home, const gchar* typename);
+void pixbuf_cache_prefetch_many (PixbufCache* self, GeeCollection* photos, BackgroundJobJobPriority priority, gboolean force);
+static void slideshow_page_real_on_previous_photo (SinglePhotoPage* base);
+static void slideshow_page_advance (SlideshowPage* self, Photo* photo, Direction direction);
+static void slideshow_page_real_on_next_photo (SinglePhotoPage* base);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gchar* configuration_facade_get_slideshow_transition_effect_id (ConfigurationFacade* self);
+static void slideshow_page_random_transition_effect (SlideshowPage* self);
+gdouble configuration_facade_get_slideshow_delay (ConfigurationFacade* self);
+static gboolean slideshow_page_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+static GType slideshow_page_settings_dialog_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_new (void);
+static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_construct (GType object_type);
+void configuration_facade_set_slideshow_delay (ConfigurationFacade* self, gdouble delay);
+static gdouble slideshow_page_settings_dialog_get_delay (SlideshowPageSettingsDialog* self);
+void configuration_facade_set_slideshow_transition_delay (ConfigurationFacade* self, gdouble delay);
+static gdouble slideshow_page_settings_dialog_get_transition_delay (SlideshowPageSettingsDialog* self);
+void configuration_facade_set_slideshow_transition_effect_id (ConfigurationFacade* self, const gchar* id);
+static gchar* slideshow_page_settings_dialog_get_transition_effect_id (SlideshowPageSettingsDialog* self);
+void configuration_facade_set_slideshow_show_title (ConfigurationFacade* self, gboolean show_title);
+static gboolean slideshow_page_settings_dialog_get_show_title (SlideshowPageSettingsDialog* self);
+gdouble configuration_facade_get_slideshow_transition_delay (ConfigurationFacade* self);
+void single_photo_page_set_transition (SinglePhotoPage* self, const gchar* effect_id, gint duration_msec);
+#define TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID NULL_TRANSITION_DESCRIPTOR_EFFECT_ID
+static void slideshow_page_paint_title (SlideshowPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+gchar* media_source_get_title (MediaSource* self);
+void set_source_color_from_string (cairo_t* ctx, const gchar* spec);
+static void slideshow_page_real_paint (SinglePhotoPage* base, cairo_t* ctx, Dimensions* ctx_dim);
+void single_photo_page_paint (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+gboolean configuration_facade_get_slideshow_show_title (ConfigurationFacade* self);
+gboolean single_photo_page_is_transition_in_progress (SinglePhotoPage* self);
+#define SLIDESHOW_PAGE_SETTINGS_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialogPrivate))
+enum {
+ SLIDESHOW_PAGE_SETTINGS_DIALOG_DUMMY_PROPERTY
+};
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+FullscreenWindow* app_window_get_fullscreen (void);
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+#define RESOURCES_OK_LABEL _ ("_OK")
+#define CONFIG_FACADE_SLIDESHOW_DELAY_MIN 1.0
+#define CONFIG_FACADE_SLIDESHOW_DELAY_MAX 30.0
+gchar* transition_effects_manager_get_effect_name (TransitionEffectsManager* self, const gchar* effect_id);
+GeeCollection* transition_effects_manager_get_effect_names (TransitionEffectsManager* self, GCompareDataFunc comparator, void* comparator_target, GDestroyNotify comparator_target_destroy_notify);
+gint utf8_ci_compare (void* a, void* b);
+static gint _utf8_ci_compare_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gchar* transition_effects_manager_get_id_for_effect_name (TransitionEffectsManager* self, const gchar* effect_name);
+static void slideshow_page_settings_dialog_on_transition_changed (SlideshowPageSettingsDialog* self);
+static void _slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+#define CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MIN 0.1
+#define CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MAX 1.0
+static void slideshow_page_settings_dialog_finalize (GObject* obj);
+static void slideshow_page_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 659 "SlideshowPage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 666 "SlideshowPage.c"
+}
+
+
+static void _single_photo_page_on_previous_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 163 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_on_previous_photo ((SinglePhotoPage*) self);
+#line 673 "SlideshowPage.c"
+}
+
+
+static void _slideshow_page_on_play_pause_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 170 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_on_play_pause ((SlideshowPage*) self);
+#line 680 "SlideshowPage.c"
+}
+
+
+static void _single_photo_page_on_next_photo_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 177 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_on_next_photo ((SinglePhotoPage*) self);
+#line 687 "SlideshowPage.c"
+}
+
+
+static void _slideshow_page_on_change_settings_gtk_tool_button_clicked (GtkToolButton* _sender, gpointer self) {
+#line 185 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_on_change_settings ((SlideshowPage*) self);
+#line 694 "SlideshowPage.c"
+}
+
+
+SlideshowPage* slideshow_page_construct (GType object_type, SourceCollection* sources, ViewCollection* controller, Photo* start) {
+ SlideshowPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ SourceCollection* _tmp1_ = NULL;
+ SourceCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ GeeCollection* pluggables = NULL;
+ TransitionEffectsManager* _tmp5_ = NULL;
+ TransitionEffectsManager* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeArrayList* a = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+ GtkToolbar* toolbar = NULL;
+ GtkToolbar* _tmp14_ = NULL;
+ GtkToolButton* previous_button = NULL;
+ const gchar* _tmp15_ = NULL;
+ GtkToolButton* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ GtkToolButton* _tmp19_ = NULL;
+ GtkToolButton* _tmp20_ = NULL;
+ GtkToolButton* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GtkToolButton* _tmp23_ = NULL;
+ GtkToolButton* _tmp24_ = NULL;
+ GtkToolButton* next_button = NULL;
+ const gchar* _tmp25_ = NULL;
+ GtkToolButton* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ GtkToolButton* _tmp28_ = NULL;
+ GtkToolButton* _tmp29_ = NULL;
+ GtkToolButton* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ GtkToolButton* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ GtkToolButton* _tmp34_ = NULL;
+ GtkToolButton* _tmp35_ = NULL;
+ GtkToolButton* _tmp36_ = NULL;
+ Screensaver* _tmp37_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (controller), NULL);
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (IS_PHOTO (start), NULL);
+#line 141 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = _ ("Slideshow");
+#line 141 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = (SlideshowPage*) single_photo_page_construct (object_type, _tmp0_, TRUE);
+#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = sources;
+#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = _data_collection_ref0 (_tmp1_);
+#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 143 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->sources = _tmp2_;
+#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = controller;
+#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = _data_collection_ref0 (_tmp3_);
+#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _data_collection_unref0 (self->priv->controller);
+#line 144 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->controller = _tmp4_;
+#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = transition_effects_manager_get_instance ();
+#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = _tmp5_;
+#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = transition_effects_manager_get_effect_ids (_tmp6_);
+#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = _tmp7_;
+#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _transition_effects_manager_unref0 (_tmp6_);
+#line 146 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pluggables = _tmp8_;
+#line 147 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 147 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ a = _tmp9_;
+#line 148 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gee_array_list_add_all (a, pluggables);
+#line 149 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), NULL_TRANSITION_DESCRIPTOR_EFFECT_ID);
+#line 150 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID);
+#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = gee_collection_to_array (G_TYPE_CHECK_INSTANCE_CAST (a, GEE_TYPE_COLLECTION, GeeCollection), &_tmp10_);
+#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transitions = (_vala_array_free (self->priv->transitions, self->priv->transitions_length1, (GDestroyNotify) g_free), NULL);
+#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transitions = _tmp11_;
+#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transitions_length1 = _tmp10_;
+#line 151 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->_transitions_size_ = self->priv->transitions_length1;
+#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = start;
+#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->current);
+#line 152 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->current = _tmp13_;
+#line 154 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_update_transition_effect (self);
+#line 157 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp14_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 157 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ toolbar = _tmp14_;
+#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp15_ = _ ("Back");
+#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = (GtkToolButton*) gtk_tool_button_new (NULL, _tmp15_);
+#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_object_ref_sink (_tmp16_);
+#line 160 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ previous_button = _tmp16_;
+#line 161 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_icon_name (previous_button, "go-previous");
+#line 162 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp17_ = _ ("Go to the previous photo");
+#line 162 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (previous_button, gtk_tool_item_get_type (), GtkToolItem), _tmp17_);
+#line 163 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_signal_connect_object (previous_button, "clicked", (GCallback) _single_photo_page_on_previous_photo_gtk_tool_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), 0);
+#line 165 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (previous_button, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp18_ = _ ("Pause");
+#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp19_ = (GtkToolButton*) gtk_tool_button_new (NULL, _tmp18_);
+#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_object_ref_sink (_tmp19_);
+#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->play_pause_button);
+#line 167 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->play_pause_button = _tmp19_;
+#line 168 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp20_ = self->priv->play_pause_button;
+#line 168 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_icon_name (_tmp20_, "media-playback-pause");
+#line 169 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp21_ = self->priv->play_pause_button;
+#line 169 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp22_ = _ ("Pause the slideshow");
+#line 169 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_tool_item_get_type (), GtkToolItem), _tmp22_);
+#line 170 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp23_ = self->priv->play_pause_button;
+#line 170 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_signal_connect_object (_tmp23_, "clicked", (GCallback) _slideshow_page_on_play_pause_gtk_tool_button_clicked, self, 0);
+#line 172 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp24_ = self->priv->play_pause_button;
+#line 172 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 174 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp25_ = _ ("Next");
+#line 174 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp26_ = (GtkToolButton*) gtk_tool_button_new (NULL, _tmp25_);
+#line 174 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_object_ref_sink (_tmp26_);
+#line 174 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ next_button = _tmp26_;
+#line 175 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_icon_name (next_button, "go-next");
+#line 176 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp27_ = _ ("Go to the next photo");
+#line 176 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (next_button, gtk_tool_item_get_type (), GtkToolItem), _tmp27_);
+#line 177 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_signal_connect_object (next_button, "clicked", (GCallback) _single_photo_page_on_next_photo_gtk_tool_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), 0);
+#line 179 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (next_button, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp28_ = (GtkToolButton*) gtk_tool_button_new (NULL, NULL);
+#line 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_object_ref_sink (_tmp28_);
+#line 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->settings_button);
+#line 181 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->settings_button = _tmp28_;
+#line 182 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp29_ = self->priv->settings_button;
+#line 182 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_icon_name (_tmp29_, "preferences-system");
+#line 183 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp30_ = self->priv->settings_button;
+#line 183 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp31_ = _ ("Settings");
+#line 183 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_label (_tmp30_, _tmp31_);
+#line 184 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp32_ = self->priv->settings_button;
+#line 184 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp33_ = _ ("Change slideshow settings");
+#line 184 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_tool_item_get_type (), GtkToolItem), _tmp33_);
+#line 185 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp34_ = self->priv->settings_button;
+#line 185 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_signal_connect_object (_tmp34_, "clicked", (GCallback) _slideshow_page_on_change_settings_gtk_tool_button_clicked, self, 0);
+#line 186 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp35_ = self->priv->settings_button;
+#line 186 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_item_set_is_important (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_tool_item_get_type (), GtkToolItem), TRUE);
+#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp36_ = self->priv->settings_button;
+#line 188 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 190 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp37_ = screensaver_new ();
+#line 190 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _screensaver_unref0 (self->priv->screensaver);
+#line 190 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->screensaver = _tmp37_;
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_button);
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (previous_button);
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (toolbar);
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (a);
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (pluggables);
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return self;
+#line 933 "SlideshowPage.c"
+}
+
+
+SlideshowPage* slideshow_page_new (SourceCollection* sources, ViewCollection* controller, Photo* start) {
+#line 140 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return slideshow_page_construct (TYPE_SLIDESHOW_PAGE, sources, controller, start);
+#line 940 "SlideshowPage.c"
+}
+
+
+static gboolean _slideshow_page_auto_advance_gsource_func (gpointer self) {
+ gboolean result;
+ result = slideshow_page_auto_advance ((SlideshowPage*) self);
+#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 949 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_real_switched_to (Page* base) {
+ SlideshowPage * self;
+ SourceCollection* _tmp0_ = NULL;
+ Scaling _tmp1_ = {0};
+ PixbufCache* _tmp2_ = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GTimer* _tmp11_ = NULL;
+ Screensaver* _tmp12_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
+#line 194 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ PAGE_CLASS (slideshow_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
+#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->sources;
+#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_get_canvas_scaling (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
+#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = pixbuf_cache_new (_tmp0_, PIXBUF_CACHE_PHOTO_TYPE_BASELINE, &_tmp1_, SLIDESHOW_PAGE_READAHEAD_COUNT, NULL, NULL);
+#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->cache);
+#line 197 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->cache = _tmp2_;
+#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = self->priv->current;
+#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = slideshow_page_get_next_photo (self, _tmp3_, DIRECTION_FORWARD, &_tmp4_, &_tmp5_);
+#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->current);
+#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->current = _tmp4_;
+#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pixbuf = _tmp5_;
+#line 201 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp6_) {
+#line 993 "SlideshowPage.c"
+ GdkPixbuf* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+ Direction _tmp10_ = 0;
+#line 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = pixbuf;
+#line 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = self->priv->current;
+#line 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp9_);
+#line 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = DIRECTION_FORWARD;
+#line 202 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp7_, &_tmp9_, &_tmp10_);
+#line 1008 "SlideshowPage.c"
+ }
+#line 205 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) SLIDESHOW_PAGE_CHECK_ADVANCE_MSEC, _slideshow_page_auto_advance_gsource_func, g_object_ref (self), g_object_unref);
+#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = self->priv->timer;
+#line 206 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_timer_start (_tmp11_);
+#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = self->priv->screensaver;
+#line 208 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ screensaver_inhibit (_tmp12_, "Playing slideshow");
+#line 193 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 1022 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_real_switching_from (Page* base) {
+ SlideshowPage * self;
+ Screensaver* _tmp0_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
+#line 212 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ PAGE_CLASS (slideshow_page_parent_class)->switching_from (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page));
+#line 214 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->screensaver;
+#line 214 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ screensaver_uninhibit (_tmp0_);
+#line 215 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->exiting = TRUE;
+#line 1039 "SlideshowPage.c"
+}
+
+
+static gboolean slideshow_page_get_next_photo (SlideshowPage* self, Photo* start, Direction direction, Photo** next, GdkPixbuf** next_pixbuf) {
+ Photo* _vala_next = NULL;
+ GdkPixbuf* _vala_next_pixbuf = NULL;
+ gboolean result = FALSE;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (IS_SLIDESHOW_PAGE (self), FALSE);
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (IS_PHOTO (start), FALSE);
+#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = start;
+#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next);
+#line 220 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _vala_next = _tmp1_;
+#line 1062 "SlideshowPage.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = TRUE;
+#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ while (TRUE) {
+#line 1069 "SlideshowPage.c"
+ DataSource* forward = NULL;
+ DataSource* back = NULL;
+ ViewCollection* _tmp40_ = NULL;
+ Photo* _tmp41_ = NULL;
+ DataSource* _tmp42_ = NULL;
+ DataSource* _tmp43_ = NULL;
+ PixbufCache* _tmp44_ = NULL;
+ DataSource* _tmp45_ = NULL;
+ PixbufCache* _tmp46_ = NULL;
+ DataSource* _tmp47_ = NULL;
+ GeeSet* neighbors = NULL;
+ ViewCollection* _tmp48_ = NULL;
+ Photo* _tmp49_ = NULL;
+ GeeSet* _tmp50_ = NULL;
+ GeeSet* _tmp51_ = NULL;
+ DataSource* _tmp52_ = NULL;
+ GeeSet* _tmp53_ = NULL;
+ DataSource* _tmp54_ = NULL;
+ PixbufCache* _tmp55_ = NULL;
+ GeeSet* _tmp56_ = NULL;
+#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (!_tmp2_) {
+#line 1092 "SlideshowPage.c"
+ }
+#line 222 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = FALSE;
+#line 1096 "SlideshowPage.c"
+ {
+ GdkPixbuf* _tmp3_ = NULL;
+ PixbufCache* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = self->priv->cache;
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = _vala_next;
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = pixbuf_cache_fetch (_tmp4_, _tmp5_, &_inner_error_);
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = _tmp6_;
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1113 "SlideshowPage.c"
+ goto __catch450_g_error;
+ }
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = _tmp3_;
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next_pixbuf);
+#line 225 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _vala_next_pixbuf = _tmp7_;
+#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1126 "SlideshowPage.c"
+ }
+ goto __finally450;
+ __catch450_g_error:
+ {
+ GError* err = NULL;
+ Photo* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ DataView* view = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+ Direction _tmp17_ = 0;
+ DataView* _tmp24_ = NULL;
+ DataView* _tmp25_ = NULL;
+ DataSource* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ Photo* _tmp29_ = NULL;
+ Photo* _tmp30_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ err = _inner_error_;
+#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _inner_error_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = _vala_next;
+#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_OBJECT, DataObject));
+#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = _tmp9_;
+#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = err;
+#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = _tmp11_->message;
+#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_warning ("SlideshowPage.vala:227: Unable to fetch pixbuf for %s: %s", _tmp10_, _tmp12_);
+#line 227 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (_tmp10_);
+#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = self->priv->controller;
+#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp14_ = _vala_next;
+#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp15_ = view_collection_get_view_for_source (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_SOURCE, DataSource));
+#line 230 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ view = _tmp15_;
+#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp17_ = direction;
+#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp17_ == DIRECTION_FORWARD) {
+#line 1180 "SlideshowPage.c"
+ ViewCollection* _tmp18_ = NULL;
+ DataView* _tmp19_ = NULL;
+ DataView* _tmp20_ = NULL;
+#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp18_ = self->priv->controller;
+#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp19_ = view;
+#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp20_ = view_collection_get_next (_tmp18_, _tmp19_);
+#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 232 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = _tmp20_;
+#line 1194 "SlideshowPage.c"
+ } else {
+ ViewCollection* _tmp21_ = NULL;
+ DataView* _tmp22_ = NULL;
+ DataView* _tmp23_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp21_ = self->priv->controller;
+#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp22_ = view;
+#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp23_ = view_collection_get_previous (_tmp21_, _tmp22_);
+#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 233 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = _tmp23_;
+#line 1209 "SlideshowPage.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp24_ = _g_object_ref0 (_tmp16_);
+#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (view);
+#line 231 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ view = _tmp24_;
+#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp25_ = view;
+#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp26_ = data_view_get_source (_tmp25_);
+#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next);
+#line 234 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _vala_next = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_PHOTO, Photo);
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp29_ = _vala_next;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp30_ = start;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp29_ == _tmp30_) {
+#line 1231 "SlideshowPage.c"
+ Photo* _tmp31_ = NULL;
+ Photo* _tmp32_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp31_ = _vala_next;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp32_ = self->priv->current;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp28_ = _tmp31_ != _tmp32_;
+#line 1240 "SlideshowPage.c"
+ } else {
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp28_ = FALSE;
+#line 1244 "SlideshowPage.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp28_) {
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp27_ = TRUE;
+#line 1250 "SlideshowPage.c"
+ } else {
+ Photo* _tmp33_ = NULL;
+ Photo* _tmp34_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp33_ = _vala_next;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp34_ = self->priv->current;
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp27_ = _tmp33_ == _tmp34_;
+#line 1260 "SlideshowPage.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp27_) {
+#line 1264 "SlideshowPage.c"
+ const gchar* _tmp35_ = NULL;
+ GtkWindow* _tmp36_ = NULL;
+ GtkWindow* _tmp37_ = NULL;
+ AppWindow* _tmp38_ = NULL;
+ AppWindow* _tmp39_ = NULL;
+#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp35_ = _ ("All photo source files are missing.");
+#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp36_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp37_ = _tmp36_;
+#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ app_window_error_message (_tmp35_, _tmp37_);
+#line 238 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp37_);
+#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp38_ = app_window_get_instance ();
+#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp39_ = _tmp38_;
+#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ app_window_end_fullscreen (_tmp39_);
+#line 239 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp39_);
+#line 241 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next);
+#line 241 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _vala_next = NULL;
+#line 242 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next_pixbuf);
+#line 242 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _vala_next_pixbuf = NULL;
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = FALSE;
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (view);
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_error_free0 (err);
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (next) {
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ *next = _vala_next;
+#line 1308 "SlideshowPage.c"
+ } else {
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next);
+#line 1312 "SlideshowPage.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (next_pixbuf) {
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ *next_pixbuf = _vala_next_pixbuf;
+#line 1318 "SlideshowPage.c"
+ } else {
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next_pixbuf);
+#line 1322 "SlideshowPage.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 1326 "SlideshowPage.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (view);
+#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_error_free0 (err);
+#line 247 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ continue;
+#line 1336 "SlideshowPage.c"
+ }
+ __finally450:
+#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_clear_error (&_inner_error_);
+#line 223 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return FALSE;
+#line 1347 "SlideshowPage.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp40_ = self->priv->controller;
+#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp41_ = _vala_next;
+#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ view_collection_get_immediate_neighbors (_tmp40_, G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_DATA_SOURCE, DataSource), &_tmp42_, &_tmp43_, PHOTO_TYPENAME);
+#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (forward);
+#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ forward = _tmp42_;
+#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (back);
+#line 253 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ back = _tmp43_;
+#line 254 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp44_ = self->priv->cache;
+#line 254 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp45_ = forward;
+#line 254 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pixbuf_cache_prefetch (_tmp44_, G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_HIGHEST, FALSE);
+#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp46_ = self->priv->cache;
+#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp47_ = back;
+#line 255 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pixbuf_cache_prefetch (_tmp46_, G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_PHOTO, Photo), BACKGROUND_JOB_JOB_PRIORITY_NORMAL, FALSE);
+#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp48_ = self->priv->controller;
+#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp49_ = _vala_next;
+#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp50_ = view_collection_get_extended_neighbors (_tmp48_, G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_DATA_SOURCE, DataSource), PHOTO_TYPENAME);
+#line 257 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ neighbors = _tmp50_;
+#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp51_ = neighbors;
+#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp52_ = forward;
+#line 258 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GEE_TYPE_COLLECTION, GeeCollection), _tmp52_);
+#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp53_ = neighbors;
+#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp54_ = back;
+#line 259 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection), _tmp54_);
+#line 261 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp55_ = self->priv->cache;
+#line 261 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp56_ = neighbors;
+#line 261 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pixbuf_cache_prefetch_many (_tmp55_, G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GEE_TYPE_COLLECTION, GeeCollection), BACKGROUND_JOB_JOB_PRIORITY_LOWEST, FALSE);
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = TRUE;
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (neighbors);
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (back);
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (forward);
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (next) {
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ *next = _vala_next;
+#line 1413 "SlideshowPage.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next);
+#line 1417 "SlideshowPage.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (next_pixbuf) {
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ *next_pixbuf = _vala_next_pixbuf;
+#line 1423 "SlideshowPage.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next_pixbuf);
+#line 1427 "SlideshowPage.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 1431 "SlideshowPage.c"
+ }
+ }
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (next) {
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ *next = _vala_next;
+#line 1438 "SlideshowPage.c"
+ } else {
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next);
+#line 1442 "SlideshowPage.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (next_pixbuf) {
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ *next_pixbuf = _vala_next_pixbuf;
+#line 1448 "SlideshowPage.c"
+ } else {
+#line 218 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_vala_next_pixbuf);
+#line 1452 "SlideshowPage.c"
+ }
+}
+
+
+static void slideshow_page_on_play_pause (SlideshowPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ GTimer* _tmp12_ = NULL;
+#line 267 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (IS_SLIDESHOW_PAGE (self));
+#line 268 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->playing;
+#line 268 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp0_) {
+#line 1467 "SlideshowPage.c"
+ GtkToolButton* _tmp1_ = NULL;
+ GtkToolButton* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkToolButton* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 269 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = self->priv->play_pause_button;
+#line 269 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_icon_name (_tmp1_, "media-playback-start");
+#line 270 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = self->priv->play_pause_button;
+#line 270 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = _ ("Play");
+#line 270 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_label (_tmp2_, _tmp3_);
+#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = self->priv->play_pause_button;
+#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = _ ("Continue the slideshow");
+#line 271 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_tool_item_get_type (), GtkToolItem), _tmp5_);
+#line 1489 "SlideshowPage.c"
+ } else {
+ GtkToolButton* _tmp6_ = NULL;
+ GtkToolButton* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkToolButton* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = self->priv->play_pause_button;
+#line 273 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_icon_name (_tmp6_, "media-playback-pause");
+#line 274 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = self->priv->play_pause_button;
+#line 274 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = _ ("Pause");
+#line 274 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_button_set_label (_tmp7_, _tmp8_);
+#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = self->priv->play_pause_button;
+#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = _ ("Pause the slideshow");
+#line 275 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_tool_item_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_tool_item_get_type (), GtkToolItem), _tmp10_);
+#line 1512 "SlideshowPage.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = self->priv->playing;
+#line 278 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->playing = !_tmp11_;
+#line 281 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = self->priv->timer;
+#line 281 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_timer_start (_tmp12_);
+#line 1522 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_real_on_previous_photo (SinglePhotoPage* base) {
+ SlideshowPage * self;
+ DataView* view = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ Photo* prev_photo = NULL;
+ DataView* start_view = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ DataView* prev_view = NULL;
+ DataView* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ Photo* _tmp20_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
+#line 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->controller;
+#line 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = self->priv->current;
+#line 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = view_collection_get_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 285 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ view = _tmp2_;
+#line 287 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ prev_photo = NULL;
+#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = self->priv->controller;
+#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = view;
+#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = view_collection_get_previous (_tmp3_, _tmp4_);
+#line 288 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ start_view = _tmp5_;
+#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = start_view;
+#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 289 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ prev_view = _tmp7_;
+#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ while (TRUE) {
+#line 1569 "SlideshowPage.c"
+ DataView* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ ViewCollection* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+ DataView* _tmp19_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = prev_view;
+#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (!(_tmp8_ != NULL)) {
+#line 291 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ break;
+#line 1586 "SlideshowPage.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = prev_view;
+#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = _tmp10_;
+#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_PHOTO);
+#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 292 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp12_) {
+#line 1600 "SlideshowPage.c"
+ DataView* _tmp13_ = NULL;
+ DataSource* _tmp14_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = prev_view;
+#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp14_ = data_view_get_source (_tmp13_);
+#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (prev_photo);
+#line 293 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ prev_photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO, Photo);
+#line 294 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ break;
+#line 1613 "SlideshowPage.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp15_ = self->priv->controller;
+#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = prev_view;
+#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp17_ = view_collection_get_previous (_tmp15_, _tmp16_);
+#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (prev_view);
+#line 297 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ prev_view = _tmp17_;
+#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp18_ = prev_view;
+#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp19_ = start_view;
+#line 299 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp18_ == _tmp19_) {
+#line 300 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_warning ("SlideshowPage.vala:300: on_previous( ): can't advance to previous phot" \
+"o: collection has only videos");
+#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (prev_view);
+#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (start_view);
+#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (prev_photo);
+#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (view);
+#line 301 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return;
+#line 1643 "SlideshowPage.c"
+ }
+ }
+#line 305 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp20_ = prev_photo;
+#line 305 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_advance (self, _tmp20_, DIRECTION_BACKWARD);
+#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (prev_view);
+#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (start_view);
+#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (prev_photo);
+#line 284 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (view);
+#line 1658 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_real_on_next_photo (SinglePhotoPage* base) {
+ SlideshowPage * self;
+ DataView* view = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ Photo* next_photo = NULL;
+ DataView* start_view = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ DataView* next_view = NULL;
+ DataView* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ ConfigFacade* _tmp20_ = NULL;
+ ConfigFacade* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ Photo* _tmp25_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
+#line 309 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->controller;
+#line 309 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = self->priv->current;
+#line 309 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = view_collection_get_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 309 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ view = _tmp2_;
+#line 311 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ next_photo = NULL;
+#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = self->priv->controller;
+#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = view;
+#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = view_collection_get_next (_tmp3_, _tmp4_);
+#line 312 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ start_view = _tmp5_;
+#line 313 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = start_view;
+#line 313 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 313 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ next_view = _tmp7_;
+#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ while (TRUE) {
+#line 1710 "SlideshowPage.c"
+ DataView* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ ViewCollection* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+ DataView* _tmp19_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = next_view;
+#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (!(_tmp8_ != NULL)) {
+#line 315 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ break;
+#line 1727 "SlideshowPage.c"
+ }
+#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = next_view;
+#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = _tmp10_;
+#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_PHOTO);
+#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 316 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp12_) {
+#line 1741 "SlideshowPage.c"
+ DataView* _tmp13_ = NULL;
+ DataSource* _tmp14_ = NULL;
+#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = next_view;
+#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp14_ = data_view_get_source (_tmp13_);
+#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_photo);
+#line 317 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ next_photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_PHOTO, Photo);
+#line 318 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ break;
+#line 1754 "SlideshowPage.c"
+ }
+#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp15_ = self->priv->controller;
+#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = next_view;
+#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp17_ = view_collection_get_next (_tmp15_, _tmp16_);
+#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_view);
+#line 321 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ next_view = _tmp17_;
+#line 323 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp18_ = next_view;
+#line 323 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp19_ = start_view;
+#line 323 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp18_ == _tmp19_) {
+#line 324 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_warning ("SlideshowPage.vala:324: on_next( ): can't advance to next photo: colle" \
+"ction has only videos");
+#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_view);
+#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (start_view);
+#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_photo);
+#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (view);
+#line 325 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return;
+#line 1784 "SlideshowPage.c"
+ }
+ }
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp20_ = config_facade_get_instance ();
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp21_ = _tmp20_;
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp22_ = configuration_facade_get_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp23_ = _tmp22_;
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp24_ = g_strcmp0 (_tmp23_, RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID) == 0;
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (_tmp23_);
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 329 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp24_) {
+#line 331 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_random_transition_effect (self);
+#line 1805 "SlideshowPage.c"
+ }
+#line 334 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp25_ = next_photo;
+#line 334 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_advance (self, _tmp25_, DIRECTION_FORWARD);
+#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_view);
+#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (start_view);
+#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_photo);
+#line 308 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (view);
+#line 1819 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_advance (SlideshowPage* self, Photo* photo, Direction direction) {
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ GdkPixbuf* next_pixbuf = NULL;
+ Photo* _tmp2_ = NULL;
+ Direction _tmp3_ = 0;
+ Photo* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GTimer* _tmp11_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (IS_SLIDESHOW_PAGE (self));
+#line 337 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (IS_PHOTO (photo));
+#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = photo;
+#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->current);
+#line 338 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->current = _tmp1_;
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = self->priv->current;
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = direction;
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = slideshow_page_get_next_photo (self, _tmp2_, _tmp3_, &_tmp4_, &_tmp5_);
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->current);
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->current = _tmp4_;
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_pixbuf);
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ next_pixbuf = _tmp5_;
+#line 342 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp6_) {
+#line 1861 "SlideshowPage.c"
+ GdkPixbuf* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+ Direction _tmp10_ = 0;
+#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = next_pixbuf;
+#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = self->priv->current;
+#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp9_);
+#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = direction;
+#line 343 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp7_, &_tmp9_, &_tmp10_);
+#line 1876 "SlideshowPage.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = self->priv->timer;
+#line 346 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_timer_start (_tmp11_);
+#line 337 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (next_pixbuf);
+#line 1884 "SlideshowPage.c"
+}
+
+
+static gboolean slideshow_page_auto_advance (SlideshowPage* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GTimer* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ gboolean _tmp7_ = FALSE;
+#line 349 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (IS_SLIDESHOW_PAGE (self), FALSE);
+#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->exiting;
+#line 350 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp0_) {
+#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = FALSE;
+#line 351 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 1908 "SlideshowPage.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = self->priv->playing;
+#line 353 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (!_tmp1_) {
+#line 354 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = TRUE;
+#line 354 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 1918 "SlideshowPage.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = self->priv->timer;
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = g_timer_elapsed (_tmp2_, NULL);
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = _tmp4_;
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = configuration_facade_get_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = _tmp3_ < _tmp6_;
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 356 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp7_) {
+#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = TRUE;
+#line 357 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 1940 "SlideshowPage.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_on_next_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 361 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = TRUE;
+#line 361 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 1948 "SlideshowPage.c"
+}
+
+
+static gboolean slideshow_page_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ SlideshowPage * self;
+ gboolean result = FALSE;
+ gboolean handled = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GQuark _tmp5_ = 0U;
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ static GQuark _tmp4_label0 = 0;
+#line 1963 "SlideshowPage.c"
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
+#line 364 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 365 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ handled = TRUE;
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = event;
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = _tmp2_;
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("space")))) {
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ switch (0) {
+#line 1986 "SlideshowPage.c"
+ default:
+ {
+#line 368 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_on_play_pause (self);
+#line 369 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ break;
+#line 1993 "SlideshowPage.c"
+ }
+ }
+ } else {
+#line 366 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ switch (0) {
+#line 1999 "SlideshowPage.c"
+ default:
+ {
+#line 372 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ handled = FALSE;
+#line 373 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ break;
+#line 2006 "SlideshowPage.c"
+ }
+ }
+ }
+#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = handled;
+#line 376 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp6_) {
+#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = TRUE;
+#line 377 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 2018 "SlideshowPage.c"
+ }
+#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (GTK_WIDGET_CLASS (slideshow_page_parent_class)->key_press_event != NULL) {
+#line 2022 "SlideshowPage.c"
+ GdkEventKey* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = event;
+#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = GTK_WIDGET_CLASS (slideshow_page_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), gtk_widget_get_type (), GtkWidget), _tmp8_);
+#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = _tmp9_;
+#line 2031 "SlideshowPage.c"
+ } else {
+#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = TRUE;
+#line 2035 "SlideshowPage.c"
+ }
+#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = _tmp7_;
+#line 379 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 2041 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_on_change_settings (SlideshowPage* self) {
+ SlideshowPageSettingsDialog* settings_dialog = NULL;
+ SlideshowPageSettingsDialog* _tmp0_ = NULL;
+ SlideshowPageSettingsDialog* _tmp1_ = NULL;
+ gboolean slideshow_playing = FALSE;
+ gboolean _tmp2_ = FALSE;
+ SlideshowPageSettingsDialog* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ SlideshowPageSettingsDialog* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ GTimer* _tmp24_ = NULL;
+#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (IS_SLIDESHOW_PAGE (self));
+#line 383 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = slideshow_page_settings_dialog_new ();
+#line 383 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_object_ref_sink (_tmp0_);
+#line 383 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ settings_dialog = _tmp0_;
+#line 384 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = settings_dialog;
+#line 384 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 386 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = self->priv->playing;
+#line 386 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_playing = _tmp2_;
+#line 387 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->playing = FALSE;
+#line 388 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_signal_emit_by_name (self, "hide-toolbar");
+#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = settings_dialog;
+#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_dialog_get_type (), GtkDialog));
+#line 390 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp4_ == ((gint) GTK_RESPONSE_OK)) {
+#line 2082 "SlideshowPage.c"
+ ConfigFacade* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ SlideshowPageSettingsDialog* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ ConfigFacade* _tmp9_ = NULL;
+ ConfigFacade* _tmp10_ = NULL;
+ SlideshowPageSettingsDialog* _tmp11_ = NULL;
+ gdouble _tmp12_ = 0.0;
+ ConfigFacade* _tmp13_ = NULL;
+ ConfigFacade* _tmp14_ = NULL;
+ SlideshowPageSettingsDialog* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ ConfigFacade* _tmp18_ = NULL;
+ ConfigFacade* _tmp19_ = NULL;
+ SlideshowPageSettingsDialog* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = config_facade_get_instance ();
+#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = _tmp5_;
+#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = settings_dialog;
+#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = slideshow_page_settings_dialog_get_delay (_tmp7_);
+#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ configuration_facade_set_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp8_);
+#line 392 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = config_facade_get_instance ();
+#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = _tmp9_;
+#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = settings_dialog;
+#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = slideshow_page_settings_dialog_get_transition_delay (_tmp11_);
+#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ configuration_facade_set_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp12_);
+#line 394 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = config_facade_get_instance ();
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp14_ = _tmp13_;
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp15_ = settings_dialog;
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = slideshow_page_settings_dialog_get_transition_effect_id (_tmp15_);
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp17_ = _tmp16_;
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ configuration_facade_set_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp17_);
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (_tmp17_);
+#line 395 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp18_ = config_facade_get_instance ();
+#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp19_ = _tmp18_;
+#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp20_ = settings_dialog;
+#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp21_ = slideshow_page_settings_dialog_get_show_title (_tmp20_);
+#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ configuration_facade_set_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp21_);
+#line 396 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 398 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_update_transition_effect (self);
+#line 2154 "SlideshowPage.c"
+ }
+#line 401 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp22_ = settings_dialog;
+#line 401 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget));
+#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp23_ = slideshow_playing;
+#line 402 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->playing = _tmp23_;
+#line 403 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp24_ = self->priv->timer;
+#line 403 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_timer_start (_tmp24_);
+#line 382 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (settings_dialog);
+#line 2170 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_update_transition_effect (SlideshowPage* self) {
+ gchar* effect_id = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gdouble effect_delay = 0.0;
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+#line 406 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (IS_SLIDESHOW_PAGE (self));
+#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = _tmp0_;
+#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = configuration_facade_get_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = _tmp2_;
+#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 407 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ effect_id = _tmp3_;
+#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = _tmp4_;
+#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = configuration_facade_get_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = _tmp6_;
+#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 408 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ effect_delay = _tmp7_;
+#line 410 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_set_transition (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), effect_id, (gint) (effect_delay * 1000.0));
+#line 406 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (effect_id);
+#line 2215 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_random_transition_effect (SlideshowPage* self) {
+ gdouble effect_delay = 0.0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gchar* effect_id = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ const gchar* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+#line 413 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (IS_SLIDESHOW_PAGE (self));
+#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = _tmp0_;
+#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = configuration_facade_get_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = _tmp2_;
+#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 414 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ effect_delay = _tmp3_;
+#line 415 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = g_strdup (TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
+#line 415 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ effect_id = _tmp4_;
+#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = self->priv->transitions;
+#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5__length1 = self->priv->transitions_length1;
+#line 416 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (0 < _tmp5__length1) {
+#line 2255 "SlideshowPage.c"
+ gint random = 0;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint32 _tmp7_ = 0;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = self->priv->transitions;
+#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6__length1 = self->priv->transitions_length1;
+#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = g_random_int_range ((gint32) 0, (gint32) _tmp6__length1);
+#line 417 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ random = (gint) _tmp7_;
+#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = self->priv->transitions;
+#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8__length1 = self->priv->transitions_length1;
+#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = random;
+#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (effect_id);
+#line 418 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ effect_id = _tmp11_;
+#line 2287 "SlideshowPage.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = effect_id;
+#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = effect_delay;
+#line 420 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ single_photo_page_set_transition (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp12_, (gint) (_tmp13_ * 1000.0));
+#line 413 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (effect_id);
+#line 2297 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_paint_title (SlideshowPage* self, cairo_t* ctx, Dimensions* ctx_dim) {
+ gchar* title = NULL;
+ Photo* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ PangoLayout* layout = NULL;
+ const gchar* _tmp5_ = NULL;
+ PangoLayout* _tmp6_ = NULL;
+ PangoAttrList* list = NULL;
+ PangoAttrList* _tmp7_ = NULL;
+ PangoAttribute* size = NULL;
+ PangoAttribute* _tmp8_ = NULL;
+ PangoAttrList* _tmp9_ = NULL;
+ PangoAttribute* _tmp10_ = NULL;
+ PangoAttribute* _tmp11_ = NULL;
+ PangoLayout* _tmp12_ = NULL;
+ PangoAttrList* _tmp13_ = NULL;
+ PangoLayout* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gint title_width = 0;
+ gint title_height = 0;
+ PangoLayout* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gdouble x = 0.0;
+ Dimensions _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gdouble y = 0.0;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gdouble _tmp24_ = 0.0;
+ gint _tmp25_ = 0;
+ Dimensions _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ gdouble _tmp31_ = 0.0;
+ gint _tmp32_ = 0;
+ Dimensions _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ cairo_t* _tmp38_ = NULL;
+ cairo_t* _tmp39_ = NULL;
+ gdouble _tmp40_ = 0.0;
+ gdouble _tmp41_ = 0.0;
+ cairo_t* _tmp42_ = NULL;
+ PangoLayout* _tmp43_ = NULL;
+ cairo_t* _tmp44_ = NULL;
+ PangoLayout* _tmp45_ = NULL;
+ cairo_t* _tmp46_ = NULL;
+ cairo_t* _tmp47_ = NULL;
+ cairo_t* _tmp48_ = NULL;
+#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (IS_SLIDESHOW_PAGE (self));
+#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (ctx != NULL);
+#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (ctx_dim != NULL);
+#line 425 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->current;
+#line 425 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = media_source_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 425 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ title = _tmp1_;
+#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = title;
+#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp3_ == NULL) {
+#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = TRUE;
+#line 2370 "SlideshowPage.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = title;
+#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = g_strcmp0 (_tmp4_, "") == 0;
+#line 2377 "SlideshowPage.c"
+ }
+#line 428 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp2_) {
+#line 429 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (title);
+#line 429 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return;
+#line 2385 "SlideshowPage.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = title;
+#line 431 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = gtk_widget_create_pango_layout (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp5_);
+#line 431 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ layout = _tmp6_;
+#line 432 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = pango_attr_list_new ();
+#line 432 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ list = _tmp7_;
+#line 433 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = pango_attr_scale_new ((gdouble) 3);
+#line 433 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ size = _tmp8_;
+#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = list;
+#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = size;
+#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = pango_attribute_copy (_tmp10_);
+#line 434 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pango_attr_list_insert (_tmp9_, _tmp11_);
+#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = layout;
+#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = list;
+#line 435 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pango_layout_set_attributes (_tmp12_, _tmp13_);
+#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp14_ = layout;
+#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp15_ = *ctx_dim;
+#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = _tmp15_.width;
+#line 436 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pango_layout_set_width (_tmp14_, (gint) ((_tmp16_ * 0.9) * PANGO_SCALE));
+#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp17_ = layout;
+#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pango_layout_get_pixel_size (_tmp17_, &_tmp18_, &_tmp19_);
+#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ title_width = _tmp18_;
+#line 440 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ title_height = _tmp19_;
+#line 441 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp20_ = *ctx_dim;
+#line 441 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp21_ = _tmp20_.width;
+#line 441 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ x = _tmp21_ * 0.2;
+#line 442 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp22_ = *ctx_dim;
+#line 442 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp23_ = _tmp22_.height;
+#line 442 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ y = _tmp23_ * 0.90;
+#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp24_ = y;
+#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp25_ = title_height;
+#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp26_ = *ctx_dim;
+#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp27_ = _tmp26_.height;
+#line 445 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if ((_tmp24_ + _tmp25_) >= (_tmp27_ * 0.95)) {
+#line 2453 "SlideshowPage.c"
+ Dimensions _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp28_ = *ctx_dim;
+#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp29_ = _tmp28_.height;
+#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp30_ = title_height;
+#line 446 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ y = (_tmp29_ * 0.95) - _tmp30_;
+#line 2465 "SlideshowPage.c"
+ }
+#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp31_ = x;
+#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp32_ = title_width;
+#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp33_ = *ctx_dim;
+#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp34_ = _tmp33_.width;
+#line 448 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if ((_tmp31_ + _tmp32_) >= (_tmp34_ * 0.95)) {
+#line 2477 "SlideshowPage.c"
+ Dimensions _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp35_ = *ctx_dim;
+#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp36_ = _tmp35_.width;
+#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp37_ = title_width;
+#line 449 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ x = (gdouble) ((_tmp36_ / 2) - (_tmp37_ / 2));
+#line 2489 "SlideshowPage.c"
+ }
+#line 451 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp38_ = ctx;
+#line 451 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ set_source_color_from_string (_tmp38_, "#fff");
+#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp39_ = ctx;
+#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp40_ = x;
+#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp41_ = y;
+#line 452 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ cairo_move_to (_tmp39_, _tmp40_, _tmp41_);
+#line 453 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp42_ = ctx;
+#line 453 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp43_ = layout;
+#line 453 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pango_cairo_show_layout (_tmp42_, _tmp43_);
+#line 454 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp44_ = ctx;
+#line 454 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp45_ = layout;
+#line 454 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ pango_cairo_layout_path (_tmp44_, _tmp45_);
+#line 455 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp46_ = ctx;
+#line 455 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ cairo_set_line_width (_tmp46_, 1.5);
+#line 456 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp47_ = ctx;
+#line 456 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ set_source_color_from_string (_tmp47_, "#000");
+#line 457 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp48_ = ctx;
+#line 457 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ cairo_stroke (_tmp48_);
+#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _pango_attribute_destroy0 (size);
+#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _pango_attr_list_unref0 (list);
+#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (layout);
+#line 424 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (title);
+#line 2535 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_real_paint (SinglePhotoPage* base, cairo_t* ctx, Dimensions* ctx_dim) {
+ SlideshowPage * self;
+ cairo_t* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 460 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SLIDESHOW_PAGE, SlideshowPage);
+#line 460 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (ctx != NULL);
+#line 460 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (ctx_dim != NULL);
+#line 461 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = ctx;
+#line 461 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = *ctx_dim;
+#line 461 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ SINGLE_PHOTO_PAGE_CLASS (slideshow_page_parent_class)->paint (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp0_, &_tmp1_);
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = _tmp3_;
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = configuration_facade_get_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = _tmp5_;
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp6_) {
+#line 2572 "SlideshowPage.c"
+ gboolean _tmp7_ = FALSE;
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = single_photo_page_is_transition_in_progress (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = !_tmp7_;
+#line 2578 "SlideshowPage.c"
+ } else {
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = FALSE;
+#line 2582 "SlideshowPage.c"
+ }
+#line 463 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp2_) {
+#line 2586 "SlideshowPage.c"
+ cairo_t* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+#line 464 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = ctx;
+#line 464 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = *ctx_dim;
+#line 464 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_paint_title (self, _tmp8_, &_tmp9_);
+#line 2595 "SlideshowPage.c"
+ }
+}
+
+
+static gint _utf8_ci_compare_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = utf8_ci_compare (a, b);
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 2605 "SlideshowPage.c"
+}
+
+
+static void _slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_settings_dialog_on_transition_changed ((SlideshowPageSettingsDialog*) self);
+#line 2612 "SlideshowPage.c"
+}
+
+
+static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_construct (GType object_type) {
+ SlideshowPageSettingsDialog * self = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ GtkBuilder* _tmp1_ = NULL;
+ GObject* _tmp2_ = NULL;
+ GtkBox* _tmp3_ = NULL;
+ GtkBox* _tmp4_ = NULL;
+ GtkBox* _tmp5_ = NULL;
+ gdouble delay = 0.0;
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ FullscreenWindow* _tmp10_ = NULL;
+ FullscreenWindow* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GtkAdjustment* adjustment = NULL;
+ gdouble _tmp13_ = 0.0;
+ GtkAdjustment* _tmp14_ = NULL;
+ GtkBuilder* _tmp15_ = NULL;
+ GObject* _tmp16_ = NULL;
+ GtkScale* _tmp17_ = NULL;
+ GtkScale* _tmp18_ = NULL;
+ GtkAdjustment* _tmp19_ = NULL;
+ GtkBuilder* _tmp20_ = NULL;
+ GObject* _tmp21_ = NULL;
+ GtkSpinButton* _tmp22_ = NULL;
+ GtkSpinButton* _tmp23_ = NULL;
+ GtkAdjustment* _tmp24_ = NULL;
+ GtkSpinButton* _tmp25_ = NULL;
+ gdouble _tmp26_ = 0.0;
+ GtkSpinButton* _tmp27_ = NULL;
+ GtkSpinButton* _tmp28_ = NULL;
+ GtkBuilder* _tmp29_ = NULL;
+ GObject* _tmp30_ = NULL;
+ GtkComboBoxText* _tmp31_ = NULL;
+ gchar* effect_id = NULL;
+ ConfigFacade* _tmp32_ = NULL;
+ ConfigFacade* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* null_display_name = NULL;
+ TransitionEffectsManager* _tmp36_ = NULL;
+ TransitionEffectsManager* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ GtkComboBoxText* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ GtkComboBoxText* _tmp42_ = NULL;
+ gint i = 0;
+ GtkComboBoxText* _tmp67_ = NULL;
+ gdouble transition_delay = 0.0;
+ ConfigFacade* _tmp68_ = NULL;
+ ConfigFacade* _tmp69_ = NULL;
+ gdouble _tmp70_ = 0.0;
+ gdouble _tmp71_ = 0.0;
+ GtkAdjustment* _tmp72_ = NULL;
+ GtkBuilder* _tmp73_ = NULL;
+ GObject* _tmp74_ = NULL;
+ GtkScale* _tmp75_ = NULL;
+ GtkScale* _tmp76_ = NULL;
+ GtkAdjustment* _tmp77_ = NULL;
+ GtkBuilder* _tmp78_ = NULL;
+ GObject* _tmp79_ = NULL;
+ GtkSpinButton* _tmp80_ = NULL;
+ GtkSpinButton* _tmp81_ = NULL;
+ GtkAdjustment* _tmp82_ = NULL;
+ GtkSpinButton* _tmp83_ = NULL;
+ GtkSpinButton* _tmp84_ = NULL;
+ GtkSpinButton* _tmp85_ = NULL;
+ gboolean show_title = FALSE;
+ ConfigFacade* _tmp86_ = NULL;
+ ConfigFacade* _tmp87_ = NULL;
+ gboolean _tmp88_ = FALSE;
+ gboolean _tmp89_ = FALSE;
+ GtkBuilder* _tmp90_ = NULL;
+ GObject* _tmp91_ = NULL;
+ GtkCheckButton* _tmp92_ = NULL;
+ GtkCheckButton* _tmp93_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = (SlideshowPageSettingsDialog*) g_object_new (object_type, NULL);
+#line 38 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 38 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 38 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->builder = _tmp0_;
+#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = self->priv->builder;
+#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = gtk_builder_get_object (_tmp1_, "slideshow_settings_pane");
+#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_box_get_type ()) ? ((GtkBox*) _tmp2_) : NULL);
+#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->pane);
+#line 39 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->pane = _tmp3_;
+#line 40 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 40 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = self->priv->pane;
+#line 40 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = _tmp6_;
+#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = configuration_facade_get_slideshow_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = _tmp8_;
+#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 42 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ delay = _tmp9_;
+#line 44 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 45 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = app_window_get_fullscreen ();
+#line 45 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = _tmp10_;
+#line 45 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_window_get_type (), GtkWindow));
+#line 45 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 47 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_dialog_add_buttons (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_OK, NULL);
+#line 49 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = _ ("Settings");
+#line 49 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp12_);
+#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp13_ = delay;
+#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp14_ = gtk_adjustment_new (_tmp13_, CONFIG_FACADE_SLIDESHOW_DELAY_MIN, CONFIG_FACADE_SLIDESHOW_DELAY_MAX, 0.1, (gdouble) 1, (gdouble) 0);
+#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_object_ref_sink (_tmp14_);
+#line 51 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ adjustment = _tmp14_;
+#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp15_ = self->priv->builder;
+#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp16_ = gtk_builder_get_object (_tmp15_, "delay_hscale");
+#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, gtk_scale_get_type ()) ? ((GtkScale*) _tmp16_) : NULL);
+#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->delay_hscale);
+#line 52 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->delay_hscale = _tmp17_;
+#line 53 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp18_ = self->priv->delay_hscale;
+#line 53 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp19_ = adjustment;
+#line 53 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_range_set_adjustment (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_range_get_type (), GtkRange), _tmp19_);
+#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp20_ = self->priv->builder;
+#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp21_ = gtk_builder_get_object (_tmp20_, "delay_entry");
+#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp22_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, gtk_spin_button_get_type ()) ? ((GtkSpinButton*) _tmp21_) : NULL);
+#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->delay_entry);
+#line 55 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->delay_entry = _tmp22_;
+#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp23_ = self->priv->delay_entry;
+#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp24_ = adjustment;
+#line 56 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_spin_button_set_adjustment (_tmp23_, _tmp24_);
+#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp25_ = self->priv->delay_entry;
+#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp26_ = delay;
+#line 57 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_spin_button_set_value (_tmp25_, _tmp26_);
+#line 58 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp27_ = self->priv->delay_entry;
+#line 58 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_spin_button_set_numeric (_tmp27_, TRUE);
+#line 59 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp28_ = self->priv->delay_entry;
+#line 59 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_entry_set_activates_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_entry_get_type (), GtkEntry), TRUE);
+#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp29_ = self->priv->builder;
+#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp30_ = gtk_builder_get_object (_tmp29_, "transition_effect_selector");
+#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp31_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, gtk_combo_box_text_get_type ()) ? ((GtkComboBoxText*) _tmp30_) : NULL);
+#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_selector);
+#line 61 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transition_effect_selector = _tmp31_;
+#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp32_ = config_facade_get_instance ();
+#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp33_ = _tmp32_;
+#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp34_ = configuration_facade_get_slideshow_transition_effect_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp35_ = _tmp34_;
+#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 64 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ effect_id = _tmp35_;
+#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp36_ = transition_effects_manager_get_instance ();
+#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp37_ = _tmp36_;
+#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp38_ = transition_effects_manager_get_effect_name (_tmp37_, TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
+#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp39_ = _tmp38_;
+#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _transition_effects_manager_unref0 (_tmp37_);
+#line 67 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ null_display_name = _tmp39_;
+#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp40_ = self->priv->transition_effect_selector;
+#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp41_ = null_display_name;
+#line 69 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_combo_box_text_append_text (_tmp40_, _tmp41_);
+#line 70 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp42_ = self->priv->transition_effect_selector;
+#line 70 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 72 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ i = 1;
+#line 2847 "SlideshowPage.c"
+ {
+ GeeIterator* _display_name_it = NULL;
+ TransitionEffectsManager* _tmp43_ = NULL;
+ TransitionEffectsManager* _tmp44_ = NULL;
+ GeeCollection* _tmp45_ = NULL;
+ GeeCollection* _tmp46_ = NULL;
+ GeeIterator* _tmp47_ = NULL;
+ GeeIterator* _tmp48_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp43_ = transition_effects_manager_get_instance ();
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp44_ = _tmp43_;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp45_ = transition_effects_manager_get_effect_names (_tmp44_, _utf8_ci_compare_gcompare_data_func, NULL, NULL);
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp46_ = _tmp45_;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp47_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp48_ = _tmp47_;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp46_);
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _transition_effects_manager_unref0 (_tmp44_);
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _display_name_it = _tmp48_;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ while (TRUE) {
+#line 2876 "SlideshowPage.c"
+ GeeIterator* _tmp49_ = NULL;
+ gboolean _tmp50_ = FALSE;
+ gchar* display_name = NULL;
+ GeeIterator* _tmp51_ = NULL;
+ gpointer _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ GtkComboBoxText* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ TransitionEffectsManager* _tmp58_ = NULL;
+ TransitionEffectsManager* _tmp59_ = NULL;
+ const gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gboolean _tmp63_ = FALSE;
+ gint _tmp66_ = 0;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp49_ = _display_name_it;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp50_ = gee_iterator_next (_tmp49_);
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (!_tmp50_) {
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ break;
+#line 2902 "SlideshowPage.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp51_ = _display_name_it;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp52_ = gee_iterator_get (_tmp51_);
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ display_name = (gchar*) _tmp52_;
+#line 75 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp53_ = display_name;
+#line 75 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp54_ = null_display_name;
+#line 75 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (g_strcmp0 (_tmp53_, _tmp54_) == 0) {
+#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (display_name);
+#line 76 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ continue;
+#line 2920 "SlideshowPage.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp55_ = self->priv->transition_effect_selector;
+#line 78 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp56_ = display_name;
+#line 78 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_combo_box_text_append_text (_tmp55_, _tmp56_);
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp57_ = effect_id;
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp58_ = transition_effects_manager_get_instance ();
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp59_ = _tmp58_;
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp60_ = display_name;
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp61_ = transition_effects_manager_get_id_for_effect_name (_tmp59_, _tmp60_);
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp62_ = _tmp61_;
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp63_ = g_strcmp0 (_tmp57_, _tmp62_) == 0;
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (_tmp62_);
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _transition_effects_manager_unref0 (_tmp59_);
+#line 79 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp63_) {
+#line 2948 "SlideshowPage.c"
+ GtkComboBoxText* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp64_ = self->priv->transition_effect_selector;
+#line 80 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp65_ = i;
+#line 80 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, gtk_combo_box_get_type (), GtkComboBox), _tmp65_);
+#line 2957 "SlideshowPage.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp66_ = i;
+#line 82 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ i = _tmp66_ + 1;
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (display_name);
+#line 2965 "SlideshowPage.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_display_name_it);
+#line 2969 "SlideshowPage.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp67_ = self->priv->transition_effect_selector;
+#line 84 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _slideshow_page_settings_dialog_on_transition_changed_gtk_combo_box_changed, self, 0);
+#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp68_ = config_facade_get_instance ();
+#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp69_ = _tmp68_;
+#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp70_ = configuration_facade_get_slideshow_transition_delay (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp71_ = _tmp70_;
+#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp69_);
+#line 86 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ transition_delay = _tmp71_;
+#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp72_ = gtk_adjustment_new (transition_delay, CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MIN, CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MAX, 0.1, (gdouble) 1, (gdouble) 0);
+#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_object_ref_sink (_tmp72_);
+#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_adjustment);
+#line 87 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transition_effect_adjustment = _tmp72_;
+#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp73_ = self->priv->builder;
+#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp74_ = gtk_builder_get_object (_tmp73_, "transition_effect_hscale");
+#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp75_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp74_, gtk_scale_get_type ()) ? ((GtkScale*) _tmp74_) : NULL);
+#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_hscale);
+#line 90 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transition_effect_hscale = _tmp75_;
+#line 91 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp76_ = self->priv->transition_effect_hscale;
+#line 91 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp77_ = self->priv->transition_effect_adjustment;
+#line 91 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_range_set_adjustment (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, gtk_range_get_type (), GtkRange), _tmp77_);
+#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp78_ = self->priv->builder;
+#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp79_ = gtk_builder_get_object (_tmp78_, "transition_effect_entry");
+#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp80_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp79_, gtk_spin_button_get_type ()) ? ((GtkSpinButton*) _tmp79_) : NULL);
+#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_entry);
+#line 93 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transition_effect_entry = _tmp80_;
+#line 94 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp81_ = self->priv->transition_effect_entry;
+#line 94 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp82_ = self->priv->transition_effect_adjustment;
+#line 94 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_spin_button_set_adjustment (_tmp81_, _tmp82_);
+#line 95 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp83_ = self->priv->transition_effect_entry;
+#line 95 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_spin_button_set_value (_tmp83_, transition_delay);
+#line 96 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp84_ = self->priv->transition_effect_entry;
+#line 96 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_spin_button_set_numeric (_tmp84_, TRUE);
+#line 97 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp85_ = self->priv->transition_effect_entry;
+#line 97 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_entry_set_activates_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp85_, gtk_entry_get_type (), GtkEntry), TRUE);
+#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp86_ = config_facade_get_instance ();
+#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp87_ = _tmp86_;
+#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp88_ = configuration_facade_get_slideshow_show_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp89_ = _tmp88_;
+#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (_tmp87_);
+#line 99 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ show_title = _tmp89_;
+#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp90_ = self->priv->builder;
+#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp91_ = gtk_builder_get_object (_tmp90_, "show_title_button");
+#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp92_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp91_, gtk_check_button_get_type ()) ? ((GtkCheckButton*) _tmp91_) : NULL);
+#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->show_title_button);
+#line 100 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->show_title_button = _tmp92_;
+#line 101 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp93_ = self->priv->show_title_button;
+#line 101 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, gtk_toggle_button_get_type (), GtkToggleButton), show_title);
+#line 103 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_dialog_set_default_response (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog), (gint) GTK_RESPONSE_OK);
+#line 105 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_settings_dialog_on_transition_changed (self);
+#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (null_display_name);
+#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (effect_id);
+#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (adjustment);
+#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return self;
+#line 3077 "SlideshowPage.c"
+}
+
+
+static SlideshowPageSettingsDialog* slideshow_page_settings_dialog_new (void) {
+#line 37 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return slideshow_page_settings_dialog_construct (SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG);
+#line 3084 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_settings_dialog_on_transition_changed (SlideshowPageSettingsDialog* self) {
+ gchar* selected = NULL;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ gboolean sensitive = FALSE;
+ GtkScale* _tmp5_ = NULL;
+ GtkSpinButton* _tmp6_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self));
+#line 109 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->transition_effect_selector;
+#line 109 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = gtk_combo_box_text_get_active_text (_tmp0_);
+#line 109 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ selected = _tmp1_;
+#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = selected;
+#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp3_ != NULL) {
+#line 3109 "SlideshowPage.c"
+ const gchar* _tmp4_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = selected;
+#line 111 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = g_strcmp0 (_tmp4_, TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID) != 0;
+#line 3115 "SlideshowPage.c"
+ } else {
+#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = FALSE;
+#line 3119 "SlideshowPage.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ sensitive = _tmp2_;
+#line 113 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = self->priv->transition_effect_hscale;
+#line 113 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), sensitive);
+#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = self->priv->transition_effect_entry;
+#line 114 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), sensitive);
+#line 108 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (selected);
+#line 3133 "SlideshowPage.c"
+}
+
+
+static gdouble slideshow_page_settings_dialog_get_delay (SlideshowPageSettingsDialog* self) {
+ gdouble result = 0.0;
+ GtkSpinButton* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 117 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), 0.0);
+#line 118 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->delay_entry;
+#line 118 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = gtk_spin_button_get_value (_tmp0_);
+#line 118 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = _tmp1_;
+#line 118 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 3151 "SlideshowPage.c"
+}
+
+
+static gdouble slideshow_page_settings_dialog_get_transition_delay (SlideshowPageSettingsDialog* self) {
+ gdouble result = 0.0;
+ GtkSpinButton* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 121 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), 0.0);
+#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->transition_effect_entry;
+#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = gtk_spin_button_get_value (_tmp0_);
+#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = _tmp1_;
+#line 122 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 3169 "SlideshowPage.c"
+}
+
+
+static gchar* slideshow_page_settings_dialog_get_transition_effect_id (SlideshowPageSettingsDialog* self) {
+ gchar* result = NULL;
+ gchar* active = NULL;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* id = NULL;
+ TransitionEffectsManager* _tmp4_ = NULL;
+ TransitionEffectsManager* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), NULL);
+#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->transition_effect_selector;
+#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = gtk_combo_box_text_get_active_text (_tmp0_);
+#line 126 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ active = _tmp1_;
+#line 127 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = active;
+#line 127 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp2_ == NULL) {
+#line 3200 "SlideshowPage.c"
+ gchar* _tmp3_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp3_ = g_strdup (TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
+#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = _tmp3_;
+#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (active);
+#line 128 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 3210 "SlideshowPage.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp4_ = transition_effects_manager_get_instance ();
+#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp5_ = _tmp4_;
+#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp6_ = active;
+#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp7_ = transition_effects_manager_get_id_for_effect_name (_tmp5_, _tmp6_);
+#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp8_ = _tmp7_;
+#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _transition_effects_manager_unref0 (_tmp5_);
+#line 130 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ id = _tmp8_;
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp10_ = id;
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ if (_tmp10_ != NULL) {
+#line 3230 "SlideshowPage.c"
+ const gchar* _tmp11_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp11_ = id;
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = _tmp11_;
+#line 3236 "SlideshowPage.c"
+ } else {
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp9_ = TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID;
+#line 3240 "SlideshowPage.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp12_ = g_strdup (_tmp9_);
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = _tmp12_;
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (id);
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_free0 (active);
+#line 132 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 3252 "SlideshowPage.c"
+}
+
+
+static gboolean slideshow_page_settings_dialog_get_show_title (SlideshowPageSettingsDialog* self) {
+ gboolean result = FALSE;
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 135 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_return_val_if_fail (SLIDESHOW_PAGE_IS_SETTINGS_DIALOG (self), FALSE);
+#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = self->priv->show_title_button;
+#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp2_ = _tmp1_;
+#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ result = _tmp2_;
+#line 136 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ return result;
+#line 3273 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_settings_dialog_class_init (SlideshowPageSettingsDialogClass * klass) {
+#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_settings_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_type_class_add_private (klass, sizeof (SlideshowPageSettingsDialogPrivate));
+#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = slideshow_page_settings_dialog_finalize;
+#line 3284 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_settings_dialog_instance_init (SlideshowPageSettingsDialog * self) {
+#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv = SLIDESHOW_PAGE_SETTINGS_DIALOG_GET_PRIVATE (self);
+#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->builder = NULL;
+#line 3293 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_settings_dialog_finalize (GObject* obj) {
+ SlideshowPageSettingsDialog * self;
+#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SLIDESHOW_PAGE_TYPE_SETTINGS_DIALOG, SlideshowPageSettingsDialog);
+#line 27 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 28 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->delay_entry);
+#line 29 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->delay_hscale);
+#line 30 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_selector);
+#line 31 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_hscale);
+#line 32 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_entry);
+#line 33 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->transition_effect_adjustment);
+#line 34 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->show_title_button);
+#line 35 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->pane);
+#line 26 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ G_OBJECT_CLASS (slideshow_page_settings_dialog_parent_class)->finalize (obj);
+#line 3321 "SlideshowPage.c"
+}
+
+
+static GType slideshow_page_settings_dialog_get_type (void) {
+ static volatile gsize slideshow_page_settings_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&slideshow_page_settings_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SlideshowPageSettingsDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) slideshow_page_settings_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SlideshowPageSettingsDialog), 0, (GInstanceInitFunc) slideshow_page_settings_dialog_instance_init, NULL };
+ GType slideshow_page_settings_dialog_type_id;
+ slideshow_page_settings_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "SlideshowPageSettingsDialog", &g_define_type_info, 0);
+ g_once_init_leave (&slideshow_page_settings_dialog_type_id__volatile, slideshow_page_settings_dialog_type_id);
+ }
+ return slideshow_page_settings_dialog_type_id__volatile;
+}
+
+
+static void slideshow_page_class_init (SlideshowPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ slideshow_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_type_class_add_private (klass, sizeof (SlideshowPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ ((PageClass *) klass)->switched_to = slideshow_page_real_switched_to;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ ((PageClass *) klass)->switching_from = slideshow_page_real_switching_from;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ ((SinglePhotoPageClass *) klass)->on_previous_photo = slideshow_page_real_on_previous_photo;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ ((SinglePhotoPageClass *) klass)->on_next_photo = slideshow_page_real_on_next_photo;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = slideshow_page_real_key_press_event;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ ((SinglePhotoPageClass *) klass)->paint = slideshow_page_real_paint;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = slideshow_page_finalize;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ g_signal_new ("hide_toolbar", TYPE_SLIDESHOW_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 3358 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_instance_init (SlideshowPage * self) {
+ GTimer* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv = SLIDESHOW_PAGE_GET_PRIVATE (self);
+#line 16 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->cache = NULL;
+#line 17 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _tmp0_ = g_timer_new ();
+#line 17 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->timer = _tmp0_;
+#line 18 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->playing = TRUE;
+#line 19 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->exiting = FALSE;
+#line 3376 "SlideshowPage.c"
+}
+
+
+static void slideshow_page_finalize (GObject* obj) {
+ SlideshowPage * self;
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SLIDESHOW_PAGE, SlideshowPage);
+#line 11 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 12 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _data_collection_unref0 (self->priv->controller);
+#line 13 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->current);
+#line 14 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->play_pause_button);
+#line 15 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->settings_button);
+#line 16 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_object_unref0 (self->priv->cache);
+#line 17 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _g_timer_destroy0 (self->priv->timer);
+#line 20 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ self->priv->transitions = (_vala_array_free (self->priv->transitions, self->priv->transitions_length1, (GDestroyNotify) g_free), NULL);
+#line 22 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ _screensaver_unref0 (self->priv->screensaver);
+#line 7 "/home/jens/Source/shotwell/src/SlideshowPage.vala"
+ G_OBJECT_CLASS (slideshow_page_parent_class)->finalize (obj);
+#line 3404 "SlideshowPage.c"
+}
+
+
+GType slideshow_page_get_type (void) {
+ static volatile gsize slideshow_page_type_id__volatile = 0;
+ if (g_once_init_enter (&slideshow_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SlideshowPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) slideshow_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SlideshowPage), 0, (GInstanceInitFunc) slideshow_page_instance_init, NULL };
+ GType slideshow_page_type_id;
+ slideshow_page_type_id = g_type_register_static (TYPE_SINGLE_PHOTO_PAGE, "SlideshowPage", &g_define_type_info, 0);
+ g_once_init_leave (&slideshow_page_type_id__volatile, slideshow_page_type_id);
+ }
+ return slideshow_page_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/SortedList.c b/src/SortedList.c
new file mode 100644
index 0000000..85f22a9
--- /dev/null
+++ b/src/SortedList.c
@@ -0,0 +1,2904 @@
+/* SortedList.c generated by valac 0.32.1, the Vala compiler
+ * generated from SortedList.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gee.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+typedef struct _SortedListPrivate SortedListPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+struct _SortedList {
+ GObject parent_instance;
+ SortedListPrivate * priv;
+};
+
+struct _SortedListClass {
+ GObjectClass parent_class;
+};
+
+struct _SortedListPrivate {
+ GType g_type;
+ GBoxedCopyFunc g_dup_func;
+ GDestroyNotify g_destroy_func;
+ GeeArrayList* list;
+ Comparator cmp;
+ gpointer cmp_target;
+};
+
+
+static gpointer sorted_list_parent_class = NULL;
+static GeeTraversableIface* sorted_list_gee_traversable_parent_iface = NULL;
+static GeeIterableIface* sorted_list_gee_iterable_parent_iface = NULL;
+static GeeCollectionIface* sorted_list_gee_collection_parent_iface = NULL;
+
+gchar* g_utf8_collate_key_for_filename (const gchar* str, gssize len);
+gint64 file_comparator (void* a, void* b);
+GType sorted_list_get_type (void) G_GNUC_CONST;
+#define SORTED_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SORTED_LIST, SortedListPrivate))
+enum {
+ SORTED_LIST_DUMMY_PROPERTY,
+ SORTED_LIST_G_TYPE,
+ SORTED_LIST_G_DUP_FUNC,
+ SORTED_LIST_G_DESTROY_FUNC,
+ SORTED_LIST_ELEMENT_TYPE,
+ SORTED_LIST_READ_ONLY,
+ SORTED_LIST_IS_EMPTY,
+ SORTED_LIST_SIZE,
+ SORTED_LIST_READ_ONLY_VIEW,
+ SORTED_LIST_READ_ONLY_VIEW_AS_LIST
+};
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+static GeeIterator* sorted_list_real_iterator (GeeIterable* base);
+static gboolean sorted_list_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
+static gboolean sorted_list_real_add (GeeCollection* base, gconstpointer item);
+static gint sorted_list_get_sorted_insert_pos (SortedList* self, gconstpointer item);
+static gboolean sorted_list_real_add_all (GeeCollection* base, GeeCollection* collection);
+gboolean sorted_list_add_list (SortedList* self, GeeList* items);
+static gboolean sorted_list_merge_sort (SortedList* self, GeeList* add);
+static void sorted_list_real_clear (GeeCollection* base);
+static gboolean sorted_list_real_contains (GeeCollection* base, gconstpointer item);
+static gboolean sorted_list_real_contains_all (GeeCollection* base, GeeCollection* collection);
+static gboolean sorted_list_real_remove (GeeCollection* base, gconstpointer item);
+static gboolean sorted_list_real_remove_all (GeeCollection* base, GeeCollection* collection);
+static gboolean sorted_list_real_retain_all (GeeCollection* base, GeeCollection* collection);
+gint sorted_list_get_count (SortedList* self);
+gpointer sorted_list_get_at (SortedList* self, gint index);
+static gint sorted_list_binary_search (SortedList* self, gconstpointer search, GEqualFunc equal_func);
+gint sorted_list_index_of (SortedList* self, gconstpointer search);
+gint sorted_list_locate (SortedList* self, gconstpointer search, gboolean altered, GEqualFunc equal_func);
+gpointer sorted_list_remove_at (SortedList* self, gint index);
+static gpointer* sorted_list_real_to_array (GeeCollection* base, int* result_length1);
+void sorted_list_resort (SortedList* self, Comparator new_cmp, void* new_cmp_target);
+gboolean sorted_list_resort_item (SortedList* self, gconstpointer item);
+SortedList* sorted_list_copy (SortedList* self);
+static void _sorted_list_merge_sort (SortedList* self, gpointer* array, int array_length1, gpointer* scratch, int scratch_length1, gint start_index, gint end_index);
+static void sorted_list_merge (SortedList* self, gpointer* array, int array_length1, gpointer* scratch, int scratch_length1, gint start_index, gint middle_index, gint end_index);
+GeeList* sorted_list_get_read_only_view_as_list (SortedList* self);
+static void sorted_list_finalize (GObject* obj);
+static void _vala_sorted_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_sorted_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+gint64 file_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gchar* path_a = NULL;
+ void* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* path_b = NULL;
+ void* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GCompareFunc _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint64 _tmp16_ = 0LL;
+#line 12 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = a;
+#line 12 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = g_file_get_path (G_TYPE_CHECK_INSTANCE_CAST ((GFile*) _tmp0_, G_TYPE_FILE, GFile));
+#line 12 "/home/jens/Source/shotwell/src/SortedList.vala"
+ path_a = _tmp1_;
+#line 13 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = b;
+#line 13 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = g_file_get_path (G_TYPE_CHECK_INSTANCE_CAST ((GFile*) _tmp2_, G_TYPE_FILE, GFile));
+#line 13 "/home/jens/Source/shotwell/src/SortedList.vala"
+ path_b = _tmp3_;
+#line 16 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = path_a;
+#line 16 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp4_ == NULL) {
+#line 147 "SortedList.c"
+ gint _tmp5_ = 0;
+ const gchar* _tmp6_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = path_b;
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp6_ == NULL) {
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = 0;
+#line 156 "SortedList.c"
+ } else {
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = 1;
+#line 160 "SortedList.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = (gint64) _tmp5_;
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (path_b);
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (path_a);
+#line 17 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 170 "SortedList.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = path_b;
+#line 19 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp7_ == NULL) {
+#line 20 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = (gint64) -1;
+#line 20 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (path_b);
+#line 20 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (path_a);
+#line 20 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 184 "SortedList.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = g_strcmp0;
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = path_a;
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = g_utf8_collate_key_for_filename (_tmp9_, (gssize) -1);
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = _tmp10_;
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = path_b;
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = g_utf8_collate_key_for_filename (_tmp12_, (gssize) -1);
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = _tmp13_;
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = _tmp8_ (_tmp11_, _tmp14_);
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = (gint64) _tmp15_;
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (_tmp14_);
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (_tmp11_);
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp16_;
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (path_b);
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_free0 (path_a);
+#line 22 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 216 "SortedList.c"
+}
+
+
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target) {
+ SortedList * self = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Comparator _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 29 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = (SortedList*) g_object_new (object_type, NULL);
+#line 29 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->g_type = g_type;
+#line 29 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->g_dup_func = g_dup_func;
+#line 29 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->g_destroy_func = g_destroy_func;
+#line 30 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = gee_array_list_new (g_type, (GBoxedCopyFunc) g_dup_func, g_destroy_func, NULL, NULL, NULL);
+#line 30 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_object_unref0 (self->priv->list);
+#line 30 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->list = _tmp0_;
+#line 31 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = cmp;
+#line 31 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1__target = cmp_target;
+#line 31 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->cmp = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->cmp_target = _tmp1__target;
+#line 29 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self;
+#line 249 "SortedList.c"
+}
+
+
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target) {
+#line 29 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return sorted_list_construct (TYPE_SORTED_LIST, g_type, g_dup_func, g_destroy_func, cmp, cmp_target);
+#line 256 "SortedList.c"
+}
+
+
+static GeeIterator* sorted_list_real_iterator (GeeIterable* base) {
+ SortedList * self;
+ GeeIterator* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 43 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 43 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 43 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp1_;
+#line 43 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 275 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
+ SortedList * self;
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeForallFunc _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 46 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 47 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 47 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = f;
+#line 47 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1__target = f_target;
+#line 47 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_abstract_collection_foreach (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_, _tmp1__target);
+#line 47 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 47 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 300 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_add (GeeCollection* base, gconstpointer item) {
+ SortedList * self;
+ gboolean result = FALSE;
+ Comparator _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+#line 50 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 51 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->cmp;
+#line 51 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0__target = self->priv->cmp_target;
+#line 51 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp0_ == NULL) {
+#line 317 "SortedList.c"
+ GeeArrayList* _tmp1_ = NULL;
+ gconstpointer _tmp2_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = self->priv->list;
+#line 52 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = item;
+#line 52 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp2_);
+#line 326 "SortedList.c"
+ } else {
+ GeeArrayList* _tmp3_ = NULL;
+ gconstpointer _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gconstpointer _tmp6_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = self->priv->list;
+#line 54 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = item;
+#line 54 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = sorted_list_get_sorted_insert_pos (self, _tmp4_);
+#line 54 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = item;
+#line 54 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp5_, _tmp6_);
+#line 342 "SortedList.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = TRUE;
+#line 60 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 348 "SortedList.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 67 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 355 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_add_all (GeeCollection* base, GeeCollection* collection) {
+ SortedList * self;
+ gboolean result = FALSE;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GeeList* as_list = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ Comparator _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ gboolean changed = FALSE;
+ GeeCollection* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 63 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 63 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (collection), FALSE);
+#line 64 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = collection;
+#line 64 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 64 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 64 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp2_ == 0) {
+#line 65 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 391 "SortedList.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = collection;
+#line 67 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, GEE_TYPE_LIST) ? ((GeeList*) _tmp3_) : NULL);
+#line 67 "/home/jens/Source/shotwell/src/SortedList.vala"
+ as_list = _tmp4_;
+#line 68 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = as_list;
+#line 68 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp5_ != NULL) {
+#line 403 "SortedList.c"
+ GeeList* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 69 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = as_list;
+#line 69 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = sorted_list_add_list (self, _tmp6_);
+#line 69 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp7_;
+#line 69 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_object_unref0 (as_list);
+#line 69 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 416 "SortedList.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = self->priv->cmp;
+#line 71 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8__target = self->priv->cmp_target;
+#line 71 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp8_ == NULL) {
+#line 424 "SortedList.c"
+ GeeArrayList* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 72 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = self->priv->list;
+#line 72 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = collection;
+#line 72 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = gee_array_list_add_all (_tmp9_, _tmp10_);
+#line 72 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp11_;
+#line 72 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_object_unref0 (as_list);
+#line 72 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 440 "SortedList.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/SortedList.vala"
+ changed = FALSE;
+#line 75 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = collection;
+#line 75 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = gee_collection_get_size (_tmp12_);
+#line 75 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = _tmp13_;
+#line 75 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp14_ == 1) {
+#line 452 "SortedList.c"
+ GeeIterator* iter = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer item = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ GeeArrayList* _tmp20_ = NULL;
+ gconstpointer _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gconstpointer _tmp23_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = collection;
+#line 76 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 76 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iter = _tmp16_;
+#line 77 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = iter;
+#line 77 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_iterator_next (_tmp17_);
+#line 78 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = iter;
+#line 78 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 78 "/home/jens/Source/shotwell/src/SortedList.vala"
+ item = _tmp19_;
+#line 80 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = self->priv->list;
+#line 80 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp21_ = item;
+#line 80 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp22_ = sorted_list_get_sorted_insert_pos (self, _tmp21_);
+#line 80 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23_ = item;
+#line 80 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp22_, _tmp23_);
+#line 81 "/home/jens/Source/shotwell/src/SortedList.vala"
+ changed = TRUE;
+#line 75 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL));
+#line 75 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_object_unref0 (iter);
+#line 496 "SortedList.c"
+ } else {
+ GeeList* items = NULL;
+ GeeArrayList* _tmp24_ = NULL;
+ GeeList* _tmp25_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeList* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+#line 83 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24_ = gee_array_list_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, self->priv->g_destroy_func, NULL, NULL, NULL);
+#line 83 "/home/jens/Source/shotwell/src/SortedList.vala"
+ items = G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_LIST, GeeList);
+#line 84 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp25_ = items;
+#line 84 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26_ = collection;
+#line 84 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection), _tmp26_);
+#line 86 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp27_ = items;
+#line 86 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp28_ = sorted_list_merge_sort (self, _tmp27_);
+#line 86 "/home/jens/Source/shotwell/src/SortedList.vala"
+ changed = _tmp28_;
+#line 75 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_object_unref0 (items);
+#line 522 "SortedList.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = changed;
+#line 92 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_object_unref0 (as_list);
+#line 92 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 530 "SortedList.c"
+}
+
+
+gboolean sorted_list_add_list (SortedList* self, GeeList* items) {
+ gboolean result = FALSE;
+ gboolean added = FALSE;
+ GeeList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 95 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), FALSE);
+#line 95 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (GEE_IS_LIST (items), FALSE);
+#line 96 "/home/jens/Source/shotwell/src/SortedList.vala"
+ added = FALSE;
+#line 97 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = items;
+#line 97 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 97 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 97 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp2_ == 0) {
+#line 554 "SortedList.c"
+ } else {
+ Comparator _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+#line 99 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = self->priv->cmp;
+#line 99 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3__target = self->priv->cmp_target;
+#line 99 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp3_ != NULL) {
+#line 564 "SortedList.c"
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 102 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = items;
+#line 102 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 102 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = _tmp5_;
+#line 102 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp6_ == 1) {
+#line 576 "SortedList.c"
+ GeeArrayList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ GeeList* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = self->priv->list;
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = items;
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = gee_list_get (_tmp8_, 0);
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = _tmp9_;
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = sorted_list_get_sorted_insert_pos (self, _tmp10_);
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = items;
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = gee_list_get (_tmp12_, 0);
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = _tmp13_;
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp11_, _tmp14_);
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp14_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp14_ = (self->priv->g_destroy_func (_tmp14_), NULL));
+#line 103 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp10_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp10_ = (self->priv->g_destroy_func (_tmp10_), NULL));
+#line 104 "/home/jens/Source/shotwell/src/SortedList.vala"
+ added = TRUE;
+#line 609 "SortedList.c"
+ } else {
+ GeeList* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 106 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = items;
+#line 106 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = sorted_list_merge_sort (self, _tmp15_);
+#line 106 "/home/jens/Source/shotwell/src/SortedList.vala"
+ added = _tmp16_;
+#line 619 "SortedList.c"
+ }
+ } else {
+ GeeArrayList* _tmp17_ = NULL;
+ GeeList* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 109 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = self->priv->list;
+#line 109 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = items;
+#line 109 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = gee_array_list_add_all (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 109 "/home/jens/Source/shotwell/src/SortedList.vala"
+ added = _tmp19_;
+#line 633 "SortedList.c"
+ }
+ }
+#line 116 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = added;
+#line 116 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 640 "SortedList.c"
+}
+
+
+static void sorted_list_real_clear (GeeCollection* base) {
+ SortedList * self;
+ GeeArrayList* _tmp0_ = NULL;
+#line 119 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 120 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 120 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 653 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_contains (GeeCollection* base, gconstpointer item) {
+ SortedList * self;
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 124 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 124 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = item;
+#line 124 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 124 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 124 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 675 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_contains_all (GeeCollection* base, GeeCollection* collection) {
+ SortedList * self;
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 127 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 127 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (collection), FALSE);
+#line 128 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 128 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = collection;
+#line 128 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_collection_contains_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 128 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 128 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 699 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_remove (GeeCollection* base, gconstpointer item) {
+ SortedList * self;
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 138 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 138 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = item;
+#line 138 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 138 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 138 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 721 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_remove_all (GeeCollection* base, GeeCollection* collection) {
+ SortedList * self;
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 141 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 141 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (collection), FALSE);
+#line 142 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 142 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = collection;
+#line 142 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 142 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 142 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 745 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_retain_all (GeeCollection* base, GeeCollection* collection) {
+ SortedList * self;
+ gboolean result = FALSE;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 145 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 145 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (collection), FALSE);
+#line 146 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 146 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = collection;
+#line 146 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_collection_retain_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 146 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 146 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 769 "SortedList.c"
+}
+
+
+inline gint sorted_list_get_count (SortedList* self) {
+ gint result = 0;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 153 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), 0);
+#line 154 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 154 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 154 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 154 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 154 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 790 "SortedList.c"
+}
+
+
+gpointer sorted_list_get_at (SortedList* self, gint index) {
+ gpointer result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gpointer _tmp2_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), NULL);
+#line 158 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 158 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = index;
+#line 158 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp1_);
+#line 158 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 158 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 811 "SortedList.c"
+}
+
+
+static gint sorted_list_binary_search (SortedList* self, gconstpointer search, GEqualFunc equal_func) {
+ gint result = 0;
+ Comparator _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ gint min = 0;
+ gint max = 0;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 161 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), 0);
+#line 162 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->cmp;
+#line 162 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0__target = self->priv->cmp_target;
+#line 162 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp0_ != NULL, "cmp != null");
+#line 164 "/home/jens/Source/shotwell/src/SortedList.vala"
+ min = 0;
+#line 165 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = self->priv->list;
+#line 165 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 165 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = _tmp2_;
+#line 165 "/home/jens/Source/shotwell/src/SortedList.vala"
+ max = _tmp3_;
+#line 842 "SortedList.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 166 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = TRUE;
+#line 166 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 849 "SortedList.c"
+ gint mid = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gpointer item = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GEqualFunc _tmp12_ = NULL;
+ gint64 compare = 0LL;
+ Comparator _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ gconstpointer _tmp18_ = NULL;
+ gconstpointer _tmp19_ = NULL;
+ gint64 _tmp20_ = 0LL;
+ gint64 _tmp21_ = 0LL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 166 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!_tmp4_) {
+#line 871 "SortedList.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = min;
+#line 167 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = max;
+#line 167 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = min;
+#line 167 "/home/jens/Source/shotwell/src/SortedList.vala"
+ mid = _tmp5_ + ((_tmp6_ - _tmp7_) / 2);
+#line 168 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = self->priv->list;
+#line 168 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = mid;
+#line 168 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp9_);
+#line 168 "/home/jens/Source/shotwell/src/SortedList.vala"
+ item = _tmp10_;
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = equal_func;
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp12_ != NULL) {
+#line 895 "SortedList.c"
+ GEqualFunc _tmp13_ = NULL;
+ gconstpointer _tmp14_ = NULL;
+ gconstpointer _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = equal_func;
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = item;
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = search;
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = _tmp13_ (_tmp14_, _tmp15_);
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = _tmp16_;
+#line 910 "SortedList.c"
+ } else {
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = FALSE;
+#line 914 "SortedList.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp11_) {
+#line 171 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = mid;
+#line 171 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL));
+#line 171 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 924 "SortedList.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = self->priv->cmp;
+#line 173 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17__target = self->priv->cmp_target;
+#line 173 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = item;
+#line 173 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = search;
+#line 173 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = _tmp17_ (_tmp18_, _tmp19_, _tmp17__target);
+#line 173 "/home/jens/Source/shotwell/src/SortedList.vala"
+ compare = _tmp20_;
+#line 174 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp21_ = compare;
+#line 174 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp21_ == ((gint64) 0)) {
+#line 175 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = mid;
+#line 175 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL));
+#line 175 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 948 "SortedList.c"
+ } else {
+ gint64 _tmp22_ = 0LL;
+#line 176 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp22_ = compare;
+#line 176 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp22_ > ((gint64) 0)) {
+#line 955 "SortedList.c"
+ gint _tmp23_ = 0;
+#line 177 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23_ = mid;
+#line 177 "/home/jens/Source/shotwell/src/SortedList.vala"
+ max = _tmp23_ - 1;
+#line 961 "SortedList.c"
+ } else {
+ gint _tmp24_ = 0;
+#line 179 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24_ = mid;
+#line 179 "/home/jens/Source/shotwell/src/SortedList.vala"
+ min = _tmp24_ + 1;
+#line 968 "SortedList.c"
+ }
+ }
+#line 181 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp25_ = min;
+#line 181 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26_ = max;
+#line 181 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp25_ > _tmp26_) {
+#line 182 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL));
+#line 182 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 981 "SortedList.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL));
+#line 985 "SortedList.c"
+ }
+ }
+#line 185 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = -1;
+#line 185 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 992 "SortedList.c"
+}
+
+
+gint sorted_list_index_of (SortedList* self, gconstpointer search) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ Comparator _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 195 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), 0);
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = self->priv->cmp;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1__target = self->priv->cmp_target;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp1_ != NULL) {
+#line 1009 "SortedList.c"
+ gconstpointer _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = search;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = sorted_list_binary_search (self, _tmp2_, NULL);
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = _tmp3_;
+#line 1018 "SortedList.c"
+ } else {
+ gconstpointer _tmp4_ = NULL;
+ GEqualFunc _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = search;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = g_direct_equal;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = sorted_list_locate (self, _tmp4_, FALSE, _tmp5_);
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = _tmp6_;
+#line 1031 "SortedList.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp0_;
+#line 196 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1037 "SortedList.c"
+}
+
+
+gint sorted_list_locate (SortedList* self, gconstpointer search, gboolean altered, GEqualFunc equal_func) {
+ gint result = 0;
+ gboolean _tmp0_ = FALSE;
+ Comparator _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ gconstpointer _tmp18_ = NULL;
+ GEqualFunc _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+#line 200 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), 0);
+#line 201 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = self->priv->cmp;
+#line 201 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1__target = self->priv->cmp_target;
+#line 201 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp1_ == NULL) {
+#line 201 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = TRUE;
+#line 1059 "SortedList.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 201 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = altered;
+#line 201 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = _tmp2_;
+#line 1066 "SortedList.c"
+ }
+#line 201 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp0_) {
+#line 1070 "SortedList.c"
+ gint count = 0;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 202 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = self->priv->list;
+#line 202 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 202 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = _tmp4_;
+#line 202 "/home/jens/Source/shotwell/src/SortedList.vala"
+ count = _tmp5_;
+#line 1083 "SortedList.c"
+ {
+ gint ctr = 0;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ctr = 0;
+#line 1088 "SortedList.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = TRUE;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 1095 "SortedList.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ GEqualFunc _tmp10_ = NULL;
+ GeeArrayList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gpointer _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ gconstpointer _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!_tmp6_) {
+#line 1108 "SortedList.c"
+ gint _tmp7_ = 0;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = ctr;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ctr = _tmp7_ + 1;
+#line 1114 "SortedList.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = FALSE;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = ctr;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = count;
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 203 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 1126 "SortedList.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = equal_func;
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = self->priv->list;
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = ctr;
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp12_);
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = _tmp13_;
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = search;
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = _tmp10_ (_tmp14_, _tmp15_);
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = _tmp16_;
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp14_ == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp14_ = (self->priv->g_destroy_func (_tmp14_), NULL));
+#line 204 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp17_) {
+#line 205 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = ctr;
+#line 205 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1152 "SortedList.c"
+ }
+ }
+ }
+ }
+#line 208 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = -1;
+#line 208 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1161 "SortedList.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = search;
+#line 211 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = equal_func;
+#line 211 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = sorted_list_binary_search (self, _tmp18_, _tmp19_);
+#line 211 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp20_;
+#line 211 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1173 "SortedList.c"
+}
+
+
+gpointer sorted_list_remove_at (SortedList* self, gint index) {
+ gpointer result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gpointer _tmp2_ = NULL;
+#line 226 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), NULL);
+#line 227 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 227 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = index;
+#line 227 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp1_);
+#line 227 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 227 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1194 "SortedList.c"
+}
+
+
+static gpointer* sorted_list_real_to_array (GeeCollection* base, int* result_length1) {
+ SortedList * self;
+ gpointer* result = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gpointer* _tmp2_ = NULL;
+ gpointer* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 230 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_collection_to_array (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), &_tmp1_);
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = _tmp2_;
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3__length1 = _tmp1_;
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (result_length1) {
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ *result_length1 = _tmp3__length1;
+#line 1220 "SortedList.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp3_;
+#line 231 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1226 "SortedList.c"
+}
+
+
+void sorted_list_resort (SortedList* self, Comparator new_cmp, void* new_cmp_target) {
+ Comparator _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+#line 234 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_if_fail (IS_SORTED_LIST (self));
+#line 235 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = new_cmp;
+#line 235 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0__target = new_cmp_target;
+#line 235 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->cmp = _tmp0_;
+#line 235 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->cmp_target = _tmp0__target;
+#line 237 "/home/jens/Source/shotwell/src/SortedList.vala"
+ sorted_list_merge_sort (self, NULL);
+#line 1245 "SortedList.c"
+}
+
+
+gboolean sorted_list_resort_item (SortedList* self, gconstpointer item) {
+ gboolean result = FALSE;
+ gint index = 0;
+ gconstpointer _tmp0_ = NULL;
+ GEqualFunc _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint new_index = 0;
+ gconstpointer _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 245 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), FALSE);
+#line 246 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = item;
+#line 246 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = g_direct_equal;
+#line 246 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = sorted_list_locate (self, _tmp0_, TRUE, _tmp1_);
+#line 246 "/home/jens/Source/shotwell/src/SortedList.vala"
+ index = _tmp2_;
+#line 247 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = index;
+#line 247 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp3_ >= 0, "index >= 0");
+#line 249 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = item;
+#line 249 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = sorted_list_get_sorted_insert_pos (self, _tmp4_);
+#line 249 "/home/jens/Source/shotwell/src/SortedList.vala"
+ new_index = _tmp5_;
+#line 251 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = index;
+#line 251 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = new_index;
+#line 251 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp6_ == _tmp7_) {
+#line 252 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = FALSE;
+#line 252 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1293 "SortedList.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = new_index;
+#line 256 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = index;
+#line 256 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp8_ > _tmp9_) {
+#line 1301 "SortedList.c"
+ GeeArrayList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gconstpointer _tmp12_ = NULL;
+ gpointer removed_item = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gpointer _tmp15_ = NULL;
+ gconstpointer _tmp16_ = NULL;
+ gconstpointer _tmp17_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = self->priv->list;
+#line 257 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = new_index;
+#line 257 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = item;
+#line 257 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp11_, _tmp12_);
+#line 258 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = self->priv->list;
+#line 258 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = index;
+#line 258 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp14_);
+#line 258 "/home/jens/Source/shotwell/src/SortedList.vala"
+ removed_item = _tmp15_;
+#line 259 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = item;
+#line 259 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = removed_item;
+#line 259 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp16_ == _tmp17_, "item == removed_item");
+#line 256 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((removed_item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (removed_item = (self->priv->g_destroy_func (removed_item), NULL));
+#line 1335 "SortedList.c"
+ } else {
+ gpointer removed_item = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gpointer _tmp20_ = NULL;
+ gconstpointer _tmp21_ = NULL;
+ gconstpointer _tmp22_ = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gconstpointer _tmp25_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = self->priv->list;
+#line 261 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = index;
+#line 261 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp19_);
+#line 261 "/home/jens/Source/shotwell/src/SortedList.vala"
+ removed_item = _tmp20_;
+#line 262 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp21_ = item;
+#line 262 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp22_ = removed_item;
+#line 262 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp21_ == _tmp22_, "item == removed_item");
+#line 263 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23_ = self->priv->list;
+#line 263 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24_ = new_index;
+#line 263 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp25_ = item;
+#line 263 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp24_, _tmp25_);
+#line 256 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((removed_item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (removed_item = (self->priv->g_destroy_func (removed_item), NULL));
+#line 1370 "SortedList.c"
+ }
+#line 270 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = TRUE;
+#line 270 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1376 "SortedList.c"
+}
+
+
+static gint sorted_list_get_sorted_insert_pos (SortedList* self, gconstpointer item) {
+ gint result = 0;
+ gint low = 0;
+ gint high = 0;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 273 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), 0);
+#line 274 "/home/jens/Source/shotwell/src/SortedList.vala"
+ low = 0;
+#line 275 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 275 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 275 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 275 "/home/jens/Source/shotwell/src/SortedList.vala"
+ high = _tmp2_;
+#line 1399 "SortedList.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 276 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = TRUE;
+#line 276 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 1406 "SortedList.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint mid = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gpointer cmp_item = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ gconstpointer _tmp12_ = NULL;
+ gconstpointer _tmp13_ = NULL;
+ gint64 _result_ = 0LL;
+ Comparator _tmp24_ = NULL;
+ void* _tmp24__target = NULL;
+ gconstpointer _tmp25_ = NULL;
+ gconstpointer _tmp26_ = NULL;
+ gint64 _tmp27_ = 0LL;
+ gint64 _tmp28_ = 0LL;
+#line 276 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!_tmp3_) {
+#line 1428 "SortedList.c"
+ }
+#line 276 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = FALSE;
+#line 277 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = low;
+#line 277 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = high;
+#line 277 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp4_ == _tmp5_) {
+#line 278 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = low;
+#line 278 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1442 "SortedList.c"
+ }
+#line 280 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = low;
+#line 280 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = high;
+#line 280 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = low;
+#line 280 "/home/jens/Source/shotwell/src/SortedList.vala"
+ mid = _tmp6_ + ((_tmp7_ - _tmp8_) / 2);
+#line 284 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = self->priv->list;
+#line 284 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = mid;
+#line 284 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp10_);
+#line 284 "/home/jens/Source/shotwell/src/SortedList.vala"
+ cmp_item = _tmp11_;
+#line 285 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = item;
+#line 285 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = cmp_item;
+#line 285 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp12_ == _tmp13_) {
+#line 1466 "SortedList.c"
+ gint _tmp14_ = 0;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ GeeArrayList* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gpointer _tmp23_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = mid;
+#line 287 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = self->priv->list;
+#line 287 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 287 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = _tmp16_;
+#line 287 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp14_ >= (_tmp17_ - 1)) {
+#line 1484 "SortedList.c"
+ GeeArrayList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 288 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = self->priv->list;
+#line 288 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 288 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = _tmp19_;
+#line 288 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp20_;
+#line 288 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((cmp_item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (cmp_item = (self->priv->g_destroy_func (cmp_item), NULL));
+#line 288 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1500 "SortedList.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp21_ = self->priv->list;
+#line 290 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp22_ = mid;
+#line 290 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp22_ + 1);
+#line 290 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((cmp_item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (cmp_item = (self->priv->g_destroy_func (cmp_item), NULL));
+#line 290 "/home/jens/Source/shotwell/src/SortedList.vala"
+ cmp_item = _tmp23_;
+#line 1512 "SortedList.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24_ = self->priv->cmp;
+#line 293 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24__target = self->priv->cmp_target;
+#line 293 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp25_ = item;
+#line 293 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26_ = cmp_item;
+#line 293 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp27_ = _tmp24_ (_tmp25_, _tmp26_, _tmp24__target);
+#line 293 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _result_ = _tmp27_;
+#line 294 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp28_ = _result_;
+#line 294 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp28_ < ((gint64) 0)) {
+#line 1530 "SortedList.c"
+ gint _tmp29_ = 0;
+#line 295 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp29_ = mid;
+#line 295 "/home/jens/Source/shotwell/src/SortedList.vala"
+ high = _tmp29_;
+#line 1536 "SortedList.c"
+ } else {
+ gint64 _tmp30_ = 0LL;
+#line 296 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp30_ = _result_;
+#line 296 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp30_ > ((gint64) 0)) {
+#line 1543 "SortedList.c"
+ gint _tmp31_ = 0;
+#line 297 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp31_ = mid;
+#line 297 "/home/jens/Source/shotwell/src/SortedList.vala"
+ low = _tmp31_ + 1;
+#line 1549 "SortedList.c"
+ } else {
+#line 299 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = mid;
+#line 299 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((cmp_item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (cmp_item = (self->priv->g_destroy_func (cmp_item), NULL));
+#line 299 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1557 "SortedList.c"
+ }
+ }
+#line 276 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((cmp_item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (cmp_item = (self->priv->g_destroy_func (cmp_item), NULL));
+#line 1562 "SortedList.c"
+ }
+ }
+}
+
+
+SortedList* sorted_list_copy (SortedList* self) {
+ SortedList* result = NULL;
+ SortedList* copy = NULL;
+ Comparator _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ SortedList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), NULL);
+#line 304 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->cmp;
+#line 304 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0__target = self->priv->cmp_target;
+#line 304 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = sorted_list_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, self->priv->g_destroy_func, _tmp0_, _tmp0__target);
+#line 304 "/home/jens/Source/shotwell/src/SortedList.vala"
+ copy = _tmp1_;
+#line 306 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = copy->priv->list;
+#line 306 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = self->priv->list;
+#line 306 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_array_list_add_all (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 308 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = copy;
+#line 308 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1596 "SortedList.c"
+}
+
+
+static gboolean sorted_list_merge_sort (SortedList* self, GeeList* add) {
+ gboolean result = FALSE;
+ Comparator _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ gint list_count = 0;
+ GeeArrayList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GeeList* _tmp5_ = NULL;
+ gint add_count = 0;
+ gint count = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gpointer* array = NULL;
+ gint _tmp12_ = 0;
+ gpointer* _tmp13_ = NULL;
+ gint array_length1 = 0;
+ gint _array_size_ = 0;
+ gint offset = 0;
+ GeeList* _tmp23_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gpointer* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ gint _tmp36_ = 0;
+ gpointer* _tmp37_ = NULL;
+ gpointer* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ gint _tmp39_ = 0;
+#line 329 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), FALSE);
+#line 329 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail ((add == NULL) || GEE_IS_LIST (add), FALSE);
+#line 330 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->cmp;
+#line 330 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0__target = self->priv->cmp_target;
+#line 330 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp0_ != NULL, "cmp != null");
+#line 332 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = self->priv->list;
+#line 332 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 332 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = _tmp2_;
+#line 332 "/home/jens/Source/shotwell/src/SortedList.vala"
+ list_count = _tmp3_;
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = add;
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp5_ != NULL) {
+#line 1653 "SortedList.c"
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = add;
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = _tmp7_;
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = _tmp8_;
+#line 1665 "SortedList.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = 0;
+#line 1669 "SortedList.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/SortedList.vala"
+ add_count = _tmp4_;
+#line 335 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = list_count;
+#line 335 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = add_count;
+#line 335 "/home/jens/Source/shotwell/src/SortedList.vala"
+ count = _tmp9_ + _tmp10_;
+#line 336 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = count;
+#line 336 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp11_ == 0) {
+#line 337 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = FALSE;
+#line 337 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1687 "SortedList.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = count;
+#line 341 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = g_new0 (gpointer, _tmp12_);
+#line 341 "/home/jens/Source/shotwell/src/SortedList.vala"
+ array = _tmp13_;
+#line 341 "/home/jens/Source/shotwell/src/SortedList.vala"
+ array_length1 = _tmp12_;
+#line 341 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _array_size_ = array_length1;
+#line 342 "/home/jens/Source/shotwell/src/SortedList.vala"
+ offset = 0;
+#line 344 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 1703 "SortedList.c"
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gpointer* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint _tmp17_ = 0;
+ GeeArrayList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gpointer _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+#line 344 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = offset;
+#line 344 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = list_count;
+#line 344 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp14_ < _tmp15_)) {
+#line 344 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 1722 "SortedList.c"
+ }
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = array;
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16__length1 = array_length1;
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = offset;
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = self->priv->list;
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = offset;
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp19_);
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp16_[_tmp17_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp16_[_tmp17_] = (self->priv->g_destroy_func (_tmp16_[_tmp17_]), NULL));
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_[_tmp17_] = _tmp20_;
+#line 345 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp21_ = _tmp16_[_tmp17_];
+#line 346 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp22_ = offset;
+#line 346 "/home/jens/Source/shotwell/src/SortedList.vala"
+ offset = _tmp22_ + 1;
+#line 1746 "SortedList.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23_ = add;
+#line 349 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp23_ != NULL) {
+#line 1752 "SortedList.c"
+ gint add_ctr = 0;
+#line 350 "/home/jens/Source/shotwell/src/SortedList.vala"
+ add_ctr = 0;
+#line 351 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 1758 "SortedList.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gpointer* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gint _tmp27_ = 0;
+ GeeList* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gpointer _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+#line 351 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24_ = offset;
+#line 351 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp25_ = count;
+#line 351 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp24_ < _tmp25_)) {
+#line 351 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 1777 "SortedList.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26_ = array;
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26__length1 = array_length1;
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp27_ = offset;
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp28_ = add;
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp29_ = add_ctr;
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ add_ctr = _tmp29_ + 1;
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp30_ = gee_list_get (_tmp28_, _tmp29_);
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp26_[_tmp27_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp26_[_tmp27_] = (self->priv->g_destroy_func (_tmp26_[_tmp27_]), NULL));
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26_[_tmp27_] = _tmp30_;
+#line 352 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp31_ = _tmp26_[_tmp27_];
+#line 353 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp32_ = offset;
+#line 353 "/home/jens/Source/shotwell/src/SortedList.vala"
+ offset = _tmp32_ + 1;
+#line 1803 "SortedList.c"
+ }
+ }
+#line 357 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp33_ = offset;
+#line 357 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp34_ = count;
+#line 357 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp33_ == _tmp34_, "offset == count");
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp35_ = array;
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp35__length1 = array_length1;
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp36_ = count;
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp37_ = g_new0 (gpointer, _tmp36_);
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp38_ = _tmp37_;
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp38__length1 = _tmp36_;
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp39_ = count;
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _sorted_list_merge_sort (self, _tmp35_, _tmp35__length1, _tmp38_, _tmp36_, 0, _tmp39_ - 1);
+#line 359 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp38_ = (_vala_array_free (_tmp38_, _tmp38__length1, (GDestroyNotify) self->priv->g_destroy_func), NULL);
+#line 361 "/home/jens/Source/shotwell/src/SortedList.vala"
+ offset = 0;
+#line 362 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 1834 "SortedList.c"
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ GeeArrayList* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gpointer* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ gint _tmp45_ = 0;
+ gconstpointer _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+#line 362 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp40_ = offset;
+#line 362 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp41_ = list_count;
+#line 362 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp40_ < _tmp41_)) {
+#line 362 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 1852 "SortedList.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp42_ = self->priv->list;
+#line 363 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp43_ = offset;
+#line 363 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp44_ = array;
+#line 363 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp44__length1 = array_length1;
+#line 363 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp45_ = offset;
+#line 363 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp46_ = _tmp44_[_tmp45_];
+#line 363 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_list_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp43_, _tmp46_);
+#line 364 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp47_ = offset;
+#line 364 "/home/jens/Source/shotwell/src/SortedList.vala"
+ offset = _tmp47_ + 1;
+#line 1872 "SortedList.c"
+ }
+#line 367 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 1876 "SortedList.c"
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ GeeArrayList* _tmp50_ = NULL;
+ gint _tmp51_ = 0;
+ gpointer* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ gint _tmp53_ = 0;
+ gconstpointer _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+#line 367 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp48_ = offset;
+#line 367 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp49_ = count;
+#line 367 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp48_ < _tmp49_)) {
+#line 367 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 1894 "SortedList.c"
+ }
+#line 368 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp50_ = self->priv->list;
+#line 368 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp51_ = offset;
+#line 368 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp52_ = array;
+#line 368 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp52__length1 = array_length1;
+#line 368 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp53_ = offset;
+#line 368 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp54_ = _tmp52_[_tmp53_];
+#line 368 "/home/jens/Source/shotwell/src/SortedList.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp51_, _tmp54_);
+#line 369 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp55_ = offset;
+#line 369 "/home/jens/Source/shotwell/src/SortedList.vala"
+ offset = _tmp55_ + 1;
+#line 1914 "SortedList.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = TRUE;
+#line 372 "/home/jens/Source/shotwell/src/SortedList.vala"
+ array = (_vala_array_free (array, array_length1, (GDestroyNotify) self->priv->g_destroy_func), NULL);
+#line 372 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 1922 "SortedList.c"
+}
+
+
+static void _sorted_list_merge_sort (SortedList* self, gpointer* array, int array_length1, gpointer* scratch, int scratch_length1, gint start_index, gint end_index) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint count = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint middle_index = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gpointer* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gpointer* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gpointer* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gpointer* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ Comparator _tmp15_ = NULL;
+ void* _tmp15__target = NULL;
+ gpointer* _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gint _tmp17_ = 0;
+ gconstpointer _tmp18_ = NULL;
+ gpointer* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gint _tmp20_ = 0;
+ gconstpointer _tmp21_ = NULL;
+ gint64 _tmp22_ = 0LL;
+#line 375 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_if_fail (IS_SORTED_LIST (self));
+#line 376 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = start_index;
+#line 376 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = end_index;
+#line 376 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp0_ <= _tmp1_, "start_index <= end_index");
+#line 378 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = end_index;
+#line 378 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = start_index;
+#line 378 "/home/jens/Source/shotwell/src/SortedList.vala"
+ count = (_tmp2_ - _tmp3_) + 1;
+#line 379 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = count;
+#line 379 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp4_ <= 1) {
+#line 380 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return;
+#line 1979 "SortedList.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = start_index;
+#line 382 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = count;
+#line 382 "/home/jens/Source/shotwell/src/SortedList.vala"
+ middle_index = _tmp5_ + (_tmp6_ / 2);
+#line 384 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = array;
+#line 384 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7__length1 = array_length1;
+#line 384 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = scratch;
+#line 384 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8__length1 = scratch_length1;
+#line 384 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = start_index;
+#line 384 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = middle_index;
+#line 384 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _sorted_list_merge_sort (self, _tmp7_, _tmp7__length1, _tmp8_, _tmp8__length1, _tmp9_, _tmp10_ - 1);
+#line 385 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = array;
+#line 385 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11__length1 = array_length1;
+#line 385 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = scratch;
+#line 385 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12__length1 = scratch_length1;
+#line 385 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = middle_index;
+#line 385 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = end_index;
+#line 385 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _sorted_list_merge_sort (self, _tmp11_, _tmp11__length1, _tmp12_, _tmp12__length1, _tmp13_, _tmp14_);
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = self->priv->cmp;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15__target = self->priv->cmp_target;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = array;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16__length1 = array_length1;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = middle_index;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = _tmp16_[_tmp17_ - 1];
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = array;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19__length1 = array_length1;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = middle_index;
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp21_ = _tmp19_[_tmp20_];
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp22_ = _tmp15_ (_tmp18_, _tmp21_, _tmp15__target);
+#line 387 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp22_ > ((gint64) 0)) {
+#line 2039 "SortedList.c"
+ gpointer* _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ gpointer* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23_ = array;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23__length1 = array_length1;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24_ = scratch;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24__length1 = scratch_length1;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp25_ = start_index;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26_ = middle_index;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp27_ = end_index;
+#line 388 "/home/jens/Source/shotwell/src/SortedList.vala"
+ sorted_list_merge (self, _tmp23_, _tmp23__length1, _tmp24_, _tmp24__length1, _tmp25_, _tmp26_, _tmp27_);
+#line 2063 "SortedList.c"
+ }
+}
+
+
+static void sorted_list_merge (SortedList* self, gpointer* array, int array_length1, gpointer* scratch, int scratch_length1, gint start_index, gint middle_index, gint end_index) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint count = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint left_start = 0;
+ gint _tmp4_ = 0;
+ gint left_end = 0;
+ gint _tmp5_ = 0;
+ gint right_start = 0;
+ gint _tmp6_ = 0;
+ gint right_end = 0;
+ gint _tmp7_ = 0;
+ gpointer* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ gint scratch_index = 0;
+ gint _tmp57_ = 0;
+ gint _tmp58_ = 0;
+#line 391 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_if_fail (IS_SORTED_LIST (self));
+#line 392 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = start_index;
+#line 392 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = end_index;
+#line 392 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp0_ < _tmp1_, "start_index < end_index");
+#line 394 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = end_index;
+#line 394 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp3_ = start_index;
+#line 394 "/home/jens/Source/shotwell/src/SortedList.vala"
+ count = (_tmp2_ - _tmp3_) + 1;
+#line 395 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp4_ = start_index;
+#line 395 "/home/jens/Source/shotwell/src/SortedList.vala"
+ left_start = _tmp4_;
+#line 396 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp5_ = middle_index;
+#line 396 "/home/jens/Source/shotwell/src/SortedList.vala"
+ left_end = _tmp5_ - 1;
+#line 397 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp6_ = middle_index;
+#line 397 "/home/jens/Source/shotwell/src/SortedList.vala"
+ right_start = _tmp6_;
+#line 398 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp7_ = end_index;
+#line 398 "/home/jens/Source/shotwell/src/SortedList.vala"
+ right_end = _tmp7_;
+#line 400 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8_ = scratch;
+#line 400 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp8__length1 = scratch_length1;
+#line 400 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp9_ = count;
+#line 400 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp8__length1 >= _tmp9_, "scratch.length >= count");
+#line 401 "/home/jens/Source/shotwell/src/SortedList.vala"
+ scratch_index = 0;
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 2130 "SortedList.c"
+ gboolean _tmp10_ = FALSE;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gpointer left = NULL;
+ gpointer* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gint _tmp16_ = 0;
+ gconstpointer _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ gpointer right = NULL;
+ gpointer* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gint _tmp20_ = 0;
+ gconstpointer _tmp21_ = NULL;
+ gpointer _tmp22_ = NULL;
+ Comparator _tmp23_ = NULL;
+ void* _tmp23__target = NULL;
+ gconstpointer _tmp24_ = NULL;
+ gconstpointer _tmp25_ = NULL;
+ gint64 _tmp26_ = 0LL;
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp11_ = left_start;
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp12_ = left_end;
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp11_ <= _tmp12_) {
+#line 2157 "SortedList.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp13_ = right_start;
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp14_ = right_end;
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = _tmp13_ <= _tmp14_;
+#line 2166 "SortedList.c"
+ } else {
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp10_ = FALSE;
+#line 2170 "SortedList.c"
+ }
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!_tmp10_) {
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2176 "SortedList.c"
+ }
+#line 404 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15_ = array;
+#line 404 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp15__length1 = array_length1;
+#line 404 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp16_ = left_start;
+#line 404 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp17_ = _tmp15_[_tmp16_];
+#line 404 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp18_ = ((_tmp17_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp17_) : ((gpointer) _tmp17_);
+#line 404 "/home/jens/Source/shotwell/src/SortedList.vala"
+ left = _tmp18_;
+#line 405 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19_ = array;
+#line 405 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp19__length1 = array_length1;
+#line 405 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp20_ = right_start;
+#line 405 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp21_ = _tmp19_[_tmp20_];
+#line 405 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp22_ = ((_tmp21_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp21_) : ((gpointer) _tmp21_);
+#line 405 "/home/jens/Source/shotwell/src/SortedList.vala"
+ right = _tmp22_;
+#line 407 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23_ = self->priv->cmp;
+#line 407 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp23__target = self->priv->cmp_target;
+#line 407 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp24_ = left;
+#line 407 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp25_ = right;
+#line 407 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp26_ = _tmp23_ (_tmp24_, _tmp25_, _tmp23__target);
+#line 407 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (_tmp26_ <= ((gint64) 0)) {
+#line 2214 "SortedList.c"
+ gpointer* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ gint _tmp28_ = 0;
+ gconstpointer _tmp29_ = NULL;
+ gpointer _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp27_ = scratch;
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp27__length1 = scratch_length1;
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp28_ = scratch_index;
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ scratch_index = _tmp28_ + 1;
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp29_ = left;
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp30_ = ((_tmp29_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp29_) : ((gpointer) _tmp29_);
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp27_[_tmp28_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp27_[_tmp28_] = (self->priv->g_destroy_func (_tmp27_[_tmp28_]), NULL));
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp27_[_tmp28_] = _tmp30_;
+#line 408 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp31_ = _tmp27_[_tmp28_];
+#line 409 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp32_ = left_start;
+#line 409 "/home/jens/Source/shotwell/src/SortedList.vala"
+ left_start = _tmp32_ + 1;
+#line 2244 "SortedList.c"
+ } else {
+ gpointer* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ gint _tmp34_ = 0;
+ gconstpointer _tmp35_ = NULL;
+ gpointer _tmp36_ = NULL;
+ gpointer _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp33_ = scratch;
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp33__length1 = scratch_length1;
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp34_ = scratch_index;
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ scratch_index = _tmp34_ + 1;
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp35_ = right;
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp36_ = ((_tmp35_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp35_) : ((gpointer) _tmp35_);
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp33_[_tmp34_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp33_[_tmp34_] = (self->priv->g_destroy_func (_tmp33_[_tmp34_]), NULL));
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp33_[_tmp34_] = _tmp36_;
+#line 411 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp37_ = _tmp33_[_tmp34_];
+#line 412 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp38_ = right_start;
+#line 412 "/home/jens/Source/shotwell/src/SortedList.vala"
+ right_start = _tmp38_ + 1;
+#line 2275 "SortedList.c"
+ }
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((right == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (right = (self->priv->g_destroy_func (right), NULL));
+#line 403 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((left == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (left = (self->priv->g_destroy_func (left), NULL));
+#line 2281 "SortedList.c"
+ }
+#line 416 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 2285 "SortedList.c"
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gpointer* _tmp41_ = NULL;
+ gint _tmp41__length1 = 0;
+ gint _tmp42_ = 0;
+ gpointer* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gint _tmp44_ = 0;
+ gconstpointer _tmp45_ = NULL;
+ gpointer _tmp46_ = NULL;
+ gpointer _tmp47_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp39_ = left_start;
+#line 416 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp40_ = left_end;
+#line 416 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp39_ <= _tmp40_)) {
+#line 416 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2305 "SortedList.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp41_ = scratch;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp41__length1 = scratch_length1;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp42_ = scratch_index;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ scratch_index = _tmp42_ + 1;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp43_ = array;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp43__length1 = array_length1;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp44_ = left_start;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ left_start = _tmp44_ + 1;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp45_ = _tmp43_[_tmp44_];
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp46_ = ((_tmp45_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp45_) : ((gpointer) _tmp45_);
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp41_[_tmp42_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp41_[_tmp42_] = (self->priv->g_destroy_func (_tmp41_[_tmp42_]), NULL));
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp41_[_tmp42_] = _tmp46_;
+#line 417 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp47_ = _tmp41_[_tmp42_];
+#line 2333 "SortedList.c"
+ }
+#line 419 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 2337 "SortedList.c"
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ gpointer* _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ gint _tmp51_ = 0;
+ gpointer* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ gint _tmp53_ = 0;
+ gconstpointer _tmp54_ = NULL;
+ gpointer _tmp55_ = NULL;
+ gpointer _tmp56_ = NULL;
+#line 419 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp48_ = right_start;
+#line 419 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp49_ = right_end;
+#line 419 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp48_ <= _tmp49_)) {
+#line 419 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2357 "SortedList.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp50_ = scratch;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp50__length1 = scratch_length1;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp51_ = scratch_index;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ scratch_index = _tmp51_ + 1;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp52_ = array;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp52__length1 = array_length1;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp53_ = right_start;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ right_start = _tmp53_ + 1;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp54_ = _tmp52_[_tmp53_];
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp55_ = ((_tmp54_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp54_) : ((gpointer) _tmp54_);
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp50_[_tmp51_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp50_[_tmp51_] = (self->priv->g_destroy_func (_tmp50_[_tmp51_]), NULL));
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp50_[_tmp51_] = _tmp55_;
+#line 420 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp56_ = _tmp50_[_tmp51_];
+#line 2385 "SortedList.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp57_ = scratch_index;
+#line 422 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp58_ = count;
+#line 422 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _vala_assert (_tmp57_ == _tmp58_, "scratch_index == count");
+#line 424 "/home/jens/Source/shotwell/src/SortedList.vala"
+ scratch_index = 0;
+#line 2395 "SortedList.c"
+ {
+ gint list_index = 0;
+ gint _tmp59_ = 0;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp59_ = start_index;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ list_index = _tmp59_;
+#line 2403 "SortedList.c"
+ {
+ gboolean _tmp60_ = FALSE;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp60_ = TRUE;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ while (TRUE) {
+#line 2410 "SortedList.c"
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+ gpointer* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gint _tmp65_ = 0;
+ gpointer* _tmp66_ = NULL;
+ gint _tmp66__length1 = 0;
+ gint _tmp67_ = 0;
+ gconstpointer _tmp68_ = NULL;
+ gpointer _tmp69_ = NULL;
+ gpointer _tmp70_ = NULL;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!_tmp60_) {
+#line 2424 "SortedList.c"
+ gint _tmp61_ = 0;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp61_ = list_index;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ list_index = _tmp61_ + 1;
+#line 2430 "SortedList.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp60_ = FALSE;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp62_ = list_index;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp63_ = end_index;
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ if (!(_tmp62_ <= _tmp63_)) {
+#line 425 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2442 "SortedList.c"
+ }
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp64_ = array;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp64__length1 = array_length1;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp65_ = list_index;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp66_ = scratch;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp66__length1 = scratch_length1;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp67_ = scratch_index;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ scratch_index = _tmp67_ + 1;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp68_ = _tmp66_[_tmp67_];
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp69_ = ((_tmp68_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp68_) : ((gpointer) _tmp68_);
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ ((_tmp64_[_tmp65_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp64_[_tmp65_] = (self->priv->g_destroy_func (_tmp64_[_tmp65_]), NULL));
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp64_[_tmp65_] = _tmp69_;
+#line 426 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp70_ = _tmp64_[_tmp65_];
+#line 2468 "SortedList.c"
+ }
+ }
+ }
+}
+
+
+static GType sorted_list_real_get_element_type (GeeTraversable* base) {
+ GType result;
+ SortedList* self;
+#line 35 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 35 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = self->priv->g_type;
+#line 35 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 2484 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_get_read_only (GeeCollection* base) {
+ gboolean result;
+ SortedList* self;
+ GeeArrayList* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 39 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 39 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 39 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_abstract_collection_get_read_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 39 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 39 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 39 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 2506 "SortedList.c"
+}
+
+
+static gboolean sorted_list_real_get_is_empty (GeeCollection* base) {
+ gboolean result;
+ SortedList* self;
+ GeeArrayList* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 132 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 133 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 133 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_collection_get_is_empty (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 133 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 133 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 133 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 2528 "SortedList.c"
+}
+
+
+static gint sorted_list_real_get_size (GeeCollection* base) {
+ gint result;
+ SortedList* self;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 150 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 150 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 150 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 150 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 150 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = _tmp2_;
+#line 150 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 2550 "SortedList.c"
+}
+
+
+static GeeCollection* sorted_list_real_get_read_only_view (GeeCollection* base) {
+ GeeCollection* result;
+ SortedList* self;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeBidirList* _tmp1_ = NULL;
+ GeeBidirList* _tmp2_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SORTED_LIST, SortedList);
+#line 216 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 216 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_abstract_bidir_list_get_read_only_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList));
+#line 216 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 216 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 216 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 2572 "SortedList.c"
+}
+
+
+GeeList* sorted_list_get_read_only_view_as_list (SortedList* self) {
+ GeeList* result;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeBidirList* _tmp1_ = NULL;
+ GeeBidirList* _tmp2_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_return_val_if_fail (IS_SORTED_LIST (self), NULL);
+#line 222 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp0_ = self->priv->list;
+#line 222 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp1_ = gee_abstract_bidir_list_get_read_only_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList));
+#line 222 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _tmp2_ = _tmp1_;
+#line 222 "/home/jens/Source/shotwell/src/SortedList.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_LIST, GeeList);
+#line 222 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return result;
+#line 2593 "SortedList.c"
+}
+
+
+static void sorted_list_class_init (SortedListClass * klass) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ sorted_list_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_type_class_add_private (klass, sizeof (SortedListPrivate));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_sorted_list_get_property;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_sorted_list_set_property;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ G_OBJECT_CLASS (klass)->finalize = sorted_list_finalize;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_G_TYPE, g_param_spec_gtype ("g-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_G_DUP_FUNC, g_param_spec_pointer ("g-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_G_DESTROY_FUNC, g_param_spec_pointer ("g-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_ELEMENT_TYPE, g_param_spec_gtype ("element-type", "element-type", "element-type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_IS_EMPTY, g_param_spec_boolean ("is-empty", "is-empty", "is-empty", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_READ_ONLY_VIEW, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_COLLECTION, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SORTED_LIST_READ_ONLY_VIEW_AS_LIST, g_param_spec_object ("read-only-view-as-list", "read-only-view-as-list", "read-only-view-as-list", GEE_TYPE_LIST, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 2626 "SortedList.c"
+}
+
+
+static GType sorted_list_gee_traversable_get_g_type (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_type;
+#line 2633 "SortedList.c"
+}
+
+
+static GBoxedCopyFunc sorted_list_gee_traversable_get_g_dup_func (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_dup_func;
+#line 2640 "SortedList.c"
+}
+
+
+static GDestroyNotify sorted_list_gee_traversable_get_g_destroy_func (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_destroy_func;
+#line 2647 "SortedList.c"
+}
+
+
+static void sorted_list_gee_traversable_interface_init (GeeTraversableIface * iface) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ sorted_list_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) sorted_list_real_foreach;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_type = (GType(*)(GeeTraversable*)) sorted_list_gee_traversable_get_g_type;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) sorted_list_gee_traversable_get_g_dup_func;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) sorted_list_gee_traversable_get_g_destroy_func;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_element_type = sorted_list_real_get_element_type;
+#line 2664 "SortedList.c"
+}
+
+
+static GType sorted_list_gee_iterable_get_g_type (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_type;
+#line 2671 "SortedList.c"
+}
+
+
+static GBoxedCopyFunc sorted_list_gee_iterable_get_g_dup_func (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_dup_func;
+#line 2678 "SortedList.c"
+}
+
+
+static GDestroyNotify sorted_list_gee_iterable_get_g_destroy_func (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_destroy_func;
+#line 2685 "SortedList.c"
+}
+
+
+static void sorted_list_gee_iterable_interface_init (GeeIterableIface * iface) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ sorted_list_gee_iterable_parent_iface = g_type_interface_peek_parent (iface);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->iterator = (GeeIterator* (*)(GeeIterable*)) sorted_list_real_iterator;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_type = (GType(*)(GeeIterable*)) sorted_list_gee_iterable_get_g_type;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeIterable*)) sorted_list_gee_iterable_get_g_dup_func;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_destroy_func = (GDestroyNotify(*)(GeeIterable*)) sorted_list_gee_iterable_get_g_destroy_func;
+#line 2700 "SortedList.c"
+}
+
+
+static GType sorted_list_gee_collection_get_g_type (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_type;
+#line 2707 "SortedList.c"
+}
+
+
+static GBoxedCopyFunc sorted_list_gee_collection_get_g_dup_func (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_dup_func;
+#line 2714 "SortedList.c"
+}
+
+
+static GDestroyNotify sorted_list_gee_collection_get_g_destroy_func (SortedList* self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ return self->priv->g_destroy_func;
+#line 2721 "SortedList.c"
+}
+
+
+static void sorted_list_gee_collection_interface_init (GeeCollectionIface * iface) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ sorted_list_gee_collection_parent_iface = g_type_interface_peek_parent (iface);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->add = (gboolean (*)(GeeCollection*, gconstpointer)) sorted_list_real_add;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->add_all = (gboolean (*)(GeeCollection*, GeeCollection*)) sorted_list_real_add_all;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->clear = (void (*)(GeeCollection*)) sorted_list_real_clear;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->contains = (gboolean (*)(GeeCollection*, gconstpointer)) sorted_list_real_contains;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->contains_all = (gboolean (*)(GeeCollection*, GeeCollection*)) sorted_list_real_contains_all;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->remove = (gboolean (*)(GeeCollection*, gconstpointer)) sorted_list_real_remove;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->remove_all = (gboolean (*)(GeeCollection*, GeeCollection*)) sorted_list_real_remove_all;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->retain_all = (gboolean (*)(GeeCollection*, GeeCollection*)) sorted_list_real_retain_all;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->to_array = (gpointer* (*)(GeeCollection*, int*)) sorted_list_real_to_array;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_type = (GType(*)(GeeCollection*)) sorted_list_gee_collection_get_g_type;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeCollection*)) sorted_list_gee_collection_get_g_dup_func;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_g_destroy_func = (GDestroyNotify(*)(GeeCollection*)) sorted_list_gee_collection_get_g_destroy_func;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_read_only = sorted_list_real_get_read_only;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_is_empty = sorted_list_real_get_is_empty;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_size = sorted_list_real_get_size;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ iface->get_read_only_view = sorted_list_real_get_read_only_view;
+#line 2760 "SortedList.c"
+}
+
+
+static void sorted_list_instance_init (SortedList * self) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv = SORTED_LIST_GET_PRIVATE (self);
+#line 2767 "SortedList.c"
+}
+
+
+static void sorted_list_finalize (GObject* obj) {
+ SortedList * self;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SORTED_LIST, SortedList);
+#line 26 "/home/jens/Source/shotwell/src/SortedList.vala"
+ _g_object_unref0 (self->priv->list);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ G_OBJECT_CLASS (sorted_list_parent_class)->finalize (obj);
+#line 2779 "SortedList.c"
+}
+
+
+GType sorted_list_get_type (void) {
+ static volatile gsize sorted_list_type_id__volatile = 0;
+ if (g_once_init_enter (&sorted_list_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SortedListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sorted_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SortedList), 0, (GInstanceInitFunc) sorted_list_instance_init, NULL };
+ static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) sorted_list_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) sorted_list_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo gee_collection_info = { (GInterfaceInitFunc) sorted_list_gee_collection_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType sorted_list_type_id;
+ sorted_list_type_id = g_type_register_static (G_TYPE_OBJECT, "SortedList", &g_define_type_info, 0);
+ g_type_add_interface_static (sorted_list_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
+ g_type_add_interface_static (sorted_list_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info);
+ g_type_add_interface_static (sorted_list_type_id, GEE_TYPE_COLLECTION, &gee_collection_info);
+ g_once_init_leave (&sorted_list_type_id__volatile, sorted_list_type_id);
+ }
+ return sorted_list_type_id__volatile;
+}
+
+
+static void _vala_sorted_list_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SortedList * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_SORTED_LIST, SortedList);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ switch (property_id) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_ELEMENT_TYPE:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_value_set_gtype (value, gee_traversable_get_element_type (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_TRAVERSABLE, GeeTraversable)));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_READ_ONLY:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_value_set_boolean (value, gee_collection_get_read_only (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_COLLECTION, GeeCollection)));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_IS_EMPTY:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_value_set_boolean (value, gee_collection_get_is_empty (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_COLLECTION, GeeCollection)));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_SIZE:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_value_set_int (value, gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_COLLECTION, GeeCollection)));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_READ_ONLY_VIEW:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_value_take_object (value, gee_collection_get_read_only_view (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_COLLECTION, GeeCollection)));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_READ_ONLY_VIEW_AS_LIST:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ g_value_take_object (value, sorted_list_get_read_only_view_as_list (self));
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2842 "SortedList.c"
+ default:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2848 "SortedList.c"
+ }
+}
+
+
+static void _vala_sorted_list_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SortedList * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_SORTED_LIST, SortedList);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ switch (property_id) {
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_G_TYPE:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->g_type = g_value_get_gtype (value);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_G_DUP_FUNC:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->g_dup_func = g_value_get_pointer (value);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ case SORTED_LIST_G_DESTROY_FUNC:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ self->priv->g_destroy_func = g_value_get_pointer (value);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2876 "SortedList.c"
+ default:
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 25 "/home/jens/Source/shotwell/src/SortedList.vala"
+ break;
+#line 2882 "SortedList.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/Tag.c b/src/Tag.c
new file mode 100644
index 0000000..3682fd8
--- /dev/null
+++ b/src/Tag.c
@@ -0,0 +1,9786 @@
+/* Tag.c generated by valac 0.32.1, the Vala compiler
+ * generated from Tag.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <time.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+typedef struct _ContainerSourceCollectionPrivate ContainerSourceCollectionPrivate;
+
+#define TYPE_CONTAINER_SOURCE (container_source_get_type ())
+#define CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE, ContainerSource))
+#define IS_CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE))
+#define CONTAINER_SOURCE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONTAINER_SOURCE, ContainerSourceIface))
+
+typedef struct _ContainerSource ContainerSource;
+typedef struct _ContainerSourceIface ContainerSourceIface;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+typedef struct _TagSourceCollectionPrivate TagSourceCollectionPrivate;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_TAG_ID (tag_id_get_type ())
+typedef struct _TagID TagID;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _DataObjectPrivate DataObjectPrivate;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_PROXYABLE (proxyable_get_type ())
+#define PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROXYABLE, Proxyable))
+#define IS_PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROXYABLE))
+#define PROXYABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_PROXYABLE, ProxyableIface))
+
+typedef struct _Proxyable Proxyable;
+typedef struct _ProxyableIface ProxyableIface;
+
+#define TYPE_SOURCE_PROXY (source_proxy_get_type ())
+#define SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_PROXY, SourceProxy))
+#define SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_PROXY, SourceProxyClass))
+#define IS_SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_PROXY))
+#define IS_SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_PROXY))
+#define SOURCE_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_PROXY, SourceProxyClass))
+
+typedef struct _SourceProxy SourceProxy;
+typedef struct _SourceProxyClass SourceProxyClass;
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+typedef struct _TagPrivate TagPrivate;
+
+#define TYPE_TAG_ROW (tag_row_get_type ())
+#define TAG_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_ROW, TagRow))
+#define TAG_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_ROW, TagRowClass))
+#define IS_TAG_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_ROW))
+#define IS_TAG_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_ROW))
+#define TAG_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_ROW, TagRowClass))
+
+typedef struct _TagRow TagRow;
+typedef struct _TagRowClass TagRowClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+#define _tag_row_unref0(var) ((var == NULL) ? NULL : (var = (tag_row_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+typedef struct _TagRowPrivate TagRowPrivate;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_TAG_TABLE (tag_table_get_type ())
+#define TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_TABLE, TagTable))
+#define TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_TABLE, TagTableClass))
+#define IS_TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_TABLE))
+#define IS_TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_TABLE))
+#define TAG_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_TABLE, TagTableClass))
+
+typedef struct _TagTable TagTable;
+typedef struct _TagTableClass TagTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TAG_TYPE_TAG_SNAPSHOT (tag_tag_snapshot_get_type ())
+#define TAG_TAG_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAG_TYPE_TAG_SNAPSHOT, TagTagSnapshot))
+#define TAG_TAG_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAG_TYPE_TAG_SNAPSHOT, TagTagSnapshotClass))
+#define TAG_IS_TAG_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAG_TYPE_TAG_SNAPSHOT))
+#define TAG_IS_TAG_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAG_TYPE_TAG_SNAPSHOT))
+#define TAG_TAG_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAG_TYPE_TAG_SNAPSHOT, TagTagSnapshotClass))
+
+typedef struct _TagTagSnapshot TagTagSnapshot;
+typedef struct _TagTagSnapshotClass TagTagSnapshotClass;
+
+#define TAG_TYPE_TAG_PROXY (tag_tag_proxy_get_type ())
+#define TAG_TAG_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAG_TYPE_TAG_PROXY, TagTagProxy))
+#define TAG_TAG_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAG_TYPE_TAG_PROXY, TagTagProxyClass))
+#define TAG_IS_TAG_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAG_TYPE_TAG_PROXY))
+#define TAG_IS_TAG_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAG_TYPE_TAG_PROXY))
+#define TAG_TAG_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAG_TYPE_TAG_PROXY, TagTagProxyClass))
+
+typedef struct _TagTagProxy TagTagProxy;
+typedef struct _TagTagProxyClass TagTagProxyClass;
+#define _source_backlink_unref0(var) ((var == NULL) ? NULL : (var = (source_backlink_unref (var), NULL)))
+typedef struct _SourceSnapshotPrivate SourceSnapshotPrivate;
+typedef struct _TagTagSnapshotPrivate TagTagSnapshotPrivate;
+typedef struct _SourceProxyPrivate SourceProxyPrivate;
+typedef struct _TagTagProxyPrivate TagTagProxyPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _ContainerSourceIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_links) (ContainerSource* self);
+ SourceBacklink* (*get_backlink) (ContainerSource* self);
+ void (*break_link) (ContainerSource* self, DataSource* source);
+ void (*break_link_many) (ContainerSource* self, GeeCollection* sources);
+ void (*establish_link) (ContainerSource* self, DataSource* source);
+ void (*establish_link_many) (ContainerSource* self, GeeCollection* sources);
+};
+
+struct _ContainerSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ ContainerSourceCollectionPrivate * priv;
+};
+
+struct _ContainerSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+ void (*notify_container_contents_added) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+ void (*notify_container_contents_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+ void (*notify_container_contents_altered) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+ void (*notify_backlink_to_container_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+ GeeCollection* (*get_containers_holding_source) (ContainerSourceCollection* self, DataSource* source);
+ ContainerSource* (*convert_backlink_to_container) (ContainerSourceCollection* self, SourceBacklink* backlink);
+ void (*container_contents_added) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+ void (*container_contents_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+ void (*container_contents_altered) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+ void (*backlink_to_container_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+};
+
+struct _TagSourceCollection {
+ ContainerSourceCollection parent_instance;
+ TagSourceCollectionPrivate * priv;
+};
+
+struct _TagSourceCollectionClass {
+ ContainerSourceCollectionClass parent_class;
+};
+
+struct _TagSourceCollectionPrivate {
+ GeeHashMap* name_map;
+ GeeHashMap* source_map;
+ GeeHashMap* sorted_source_map;
+};
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+struct _TagID {
+ gint64 id;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+struct _ProxyableIface {
+ GTypeInterface parent_iface;
+ SourceProxy* (*get_proxy) (Proxyable* self);
+};
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _Tag {
+ DataSource parent_instance;
+ TagPrivate * priv;
+};
+
+struct _TagClass {
+ DataSourceClass parent_class;
+};
+
+struct _TagPrivate {
+ TagRow* row;
+ ViewCollection* media_views;
+ gchar* name_collation_key;
+ gboolean unlinking;
+ gboolean relinking;
+ gchar* indexable_keywords;
+};
+
+struct _TagRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TagRowPrivate * priv;
+ TagID tag_id;
+ gchar* name;
+ GeeSet* source_id_list;
+ time_t time_created;
+};
+
+struct _TagRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (TagRow *self);
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+typedef DataView* (*CreateView) (DataSource* source, void* user_data);
+typedef gboolean (*CreateViewPredicate) (DataSource* source, void* user_data);
+struct _SourceSnapshot {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceSnapshotPrivate * priv;
+};
+
+struct _SourceSnapshotClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceSnapshot *self);
+ void (*notify_broken) (SourceSnapshot* self);
+ void (*broken) (SourceSnapshot* self);
+};
+
+struct _TagTagSnapshot {
+ SourceSnapshot parent_instance;
+ TagTagSnapshotPrivate * priv;
+};
+
+struct _TagTagSnapshotClass {
+ SourceSnapshotClass parent_class;
+};
+
+struct _TagTagSnapshotPrivate {
+ TagRow* row;
+ GeeHashSet* sources;
+};
+
+struct _SourceProxy {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceProxyPrivate * priv;
+};
+
+struct _SourceProxyClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceProxy *self);
+ DataSource* (*reconstitute) (SourceProxy* self, gint64 object_id, SourceSnapshot* snapshot);
+ void (*notify_reconstituted) (SourceProxy* self, DataSource* source);
+ void (*notify_dehydrated) (SourceProxy* self);
+ void (*notify_broken) (SourceProxy* self);
+ void (*reconstituted) (SourceProxy* self, DataSource* source);
+ void (*dehydrated) (SourceProxy* self);
+ void (*broken) (SourceProxy* self);
+};
+
+struct _TagTagProxy {
+ SourceProxy parent_instance;
+ TagTagProxyPrivate * priv;
+};
+
+struct _TagTagProxyClass {
+ SourceProxyClass parent_class;
+};
+
+
+static gpointer tag_source_collection_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+static gpointer tag_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+TagSourceCollection* tag_global = NULL;
+static gpointer tag_tag_snapshot_parent_class = NULL;
+static gpointer tag_tag_proxy_parent_class = NULL;
+static ContainerSourceIface* tag_container_source_parent_iface = NULL;
+static ProxyableIface* tag_proxyable_parent_iface = NULL;
+static IndexableIface* tag_indexable_parent_iface = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+#define TAG_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionPrivate))
+enum {
+ TAG_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+static void tag_source_collection_on_photo_source_reimported (TagSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata);
+static void _tag_source_collection_on_photo_source_reimported_library_photo_source_collection_source_reimported (LibraryPhotoSourceCollection* _sender, LibraryPhoto* photo, PhotoMetadata* metadata, gpointer self);
+guint tag_hash_name_string (const gchar* a);
+static guint _tag_hash_name_string_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean tag_equal_name_strings (const gchar* a, const gchar* b);
+static gboolean _tag_equal_name_strings_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+TagSourceCollection* tag_source_collection_new (void);
+TagSourceCollection* tag_source_collection_construct (GType object_type);
+#define TAG_TYPENAME "tag"
+static gint64 tag_source_collection_get_tag_key (DataSource* source);
+static gint64 _tag_source_collection_get_tag_key_get_source_database_key (DataSource* source, gpointer self);
+ContainerSourceCollection* container_source_collection_construct (GType object_type, const gchar* backlink_name, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+void container_source_collection_attach_collection (ContainerSourceCollection* self, SourceCollection* collection);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+static gboolean tag_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source);
+gint64 data_source_get_instance_id (DataSource* self);
+static GeeCollection* tag_source_collection_real_get_containers_holding_source (ContainerSourceCollection* base, DataSource* source);
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
+static ContainerSource* tag_source_collection_real_convert_backlink_to_container (ContainerSourceCollection* base, SourceBacklink* backlink);
+GType tag_id_get_type (void) G_GNUC_CONST;
+TagID* tag_id_dup (const TagID* self);
+void tag_id_free (TagID* self);
+gint64 source_backlink_get_instance_id (SourceBacklink* self);
+void tag_id_init (TagID *self, gint64 id);
+Tag* tag_source_collection_fetch (TagSourceCollection* self, TagID* tag_id);
+GeeCollection* container_source_collection_get_holding_tank (ContainerSourceCollection* self);
+void tag_get_tag_id (Tag* self, TagID* result);
+gchar* tag_get_path (Tag* self);
+#define TAG_PATH_SEPARATOR_STRING "/"
+GeeList* hierarchical_tag_utilities_enumerate_parent_paths (const gchar* in_path);
+gchar* hierarchical_tag_utilities_hierarchical_to_flat (const gchar* path);
+void tag_promote (Tag* self);
+DataSource* database_source_collection_fetch_by_key (DatabaseSourceCollection* self, gint64 key);
+gboolean tag_source_collection_exists (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root);
+Tag* tag_source_collection_fetch_by_name (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root);
+GeeCollection* tag_source_collection_get_all_names (TagSourceCollection* self);
+GeeSortedSet* tag_source_collection_fetch_sorted_for_source (TagSourceCollection* self, MediaSource* photo);
+GeeList* hierarchical_tag_utilities_enumerate_path_components (const gchar* in_path);
+gchar* hierarchical_tag_utilities_flat_to_hierarchical (const gchar* name);
+Tag* tag_source_collection_restore_tag_from_holding_tank (TagSourceCollection* self, const gchar* name);
+gchar* data_object_get_name (DataObject* self);
+gboolean container_source_collection_relink_from_holding_tank (ContainerSourceCollection* self, ContainerSource* source);
+static void tag_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added);
+void data_collection_notify_items_added (DataCollection* self, GeeIterable* added);
+static void tag_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed);
+Tag* tag_get_hierarchical_parent (Tag* self);
+GeeList* tag_get_hierarchical_children (Tag* self);
+void tag_flatten (Tag* self);
+void data_collection_notify_items_removed (DataCollection* self, GeeIterable* removed);
+static void tag_source_collection_real_notify_items_altered (DataCollection* base, GeeMap* map);
+gboolean data_source_equals (DataSource* self, DataSource* source);
+void data_collection_notify_items_altered (DataCollection* self, GeeMap* items);
+static void tag_source_collection_real_notify_container_contents_added (ContainerSourceCollection* base, ContainerSource* container, GeeCollection* added, gboolean relinking);
+gint tag_compare_names (Tag* a, Tag* b);
+static gint _tag_compare_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+void container_source_collection_notify_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+static void tag_source_collection_real_notify_container_contents_removed (ContainerSourceCollection* base, ContainerSource* container, GeeCollection* removed, gboolean unlinking);
+void container_source_collection_notify_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+static void tag_source_collection_finalize (DataCollection* obj);
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+gpointer source_proxy_ref (gpointer instance);
+void source_proxy_unref (gpointer instance);
+GParamSpec* param_spec_source_proxy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_proxy (GValue* value, gpointer v_object);
+void value_take_source_proxy (GValue* value, gpointer v_object);
+gpointer value_get_source_proxy (const GValue* value);
+GType source_proxy_get_type (void) G_GNUC_CONST;
+GType proxyable_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+gpointer tag_row_ref (gpointer instance);
+void tag_row_unref (gpointer instance);
+GParamSpec* param_spec_tag_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_tag_row (GValue* value, gpointer v_object);
+void value_take_tag_row (GValue* value, gpointer v_object);
+gpointer value_get_tag_row (const GValue* value);
+GType tag_row_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+#define TAG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TAG, TagPrivate))
+enum {
+ TAG_DUMMY_PROPERTY
+};
+GType data_view_get_type (void) G_GNUC_CONST;
+static void tag_on_media_views_contents_altered (Tag* self, GeeIterable* added, GeeIterable* removed);
+static void _tag_on_media_views_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void tag_on_sources_destroyed (Tag* self, GeeCollection* sources);
+static void _tag_on_sources_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self);
+#define TAG_TAG_LIST_SEPARATOR_STRING ", "
+static Tag* tag_new (TagRow* row, gint64 object_id);
+static Tag* tag_construct (GType object_type, TagRow* row, gint64 object_id);
+DataSource* data_source_construct (GType object_type, gint64 object_id);
+gchar* tag_prep_tag_name (const gchar* name);
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+MediaSource* media_collection_registry_fetch_media (MediaCollectionRegistry* self, const gchar* source_id);
+ThumbnailView* thumbnail_view_new (ThumbnailSource* source);
+ThumbnailView* thumbnail_view_construct (GType object_type, ThumbnailSource* source);
+ViewCollection* view_collection_new (const gchar* name);
+ViewCollection* view_collection_construct (GType object_type, const gchar* name);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+void container_source_collection_notify_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+static void tag_update_indexable_keywords (Tag* self);
+void tag_init (ProgressMonitor monitor, void* monitor_target);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType tag_table_get_type (void) G_GNUC_CONST;
+TagTable* tag_table_get_instance (void);
+GQuark database_error_quark (void);
+GeeList* tag_table_get_all_rows (TagTable* self, GError** error);
+void app_window_database_error (GError* err);
+void tag_table_remove (TagTable* self, TagID* tag_id, GError** error);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+gboolean container_source_has_links (ContainerSource* self);
+void data_source_rehydrate_backlinks (DataSource* self, SourceCollection* unlinked_from, const gchar* dehydrated);
+GeeCollection* tag_get_sources (Tag* self);
+gchar* tag_get_user_visible_name (Tag* self);
+void tag_attach_many (Tag* self, GeeCollection* sources);
+GeeMultiMap* tag_detach_many (Tag* self, GeeCollection* sources);
+gboolean data_source_destroy_orphan (DataSource* self, gboolean delete_backing);
+gint tag_get_sources_count (Tag* self);
+void container_source_collection_init_add_many_unlinked (ContainerSourceCollection* self, GeeCollection* unlinked);
+void tag_terminate (void);
+gint string_precollated_compare (const gchar* astr, const gchar* akey, const gchar* bstr, const gchar* bkey);
+gchar* tag_get_name_collation_key (Tag* self);
+gint tag_compare_user_visible_names (Tag* a, Tag* b);
+guint string_collated_hash (void* ptr);
+gboolean string_collated_equals (void* a, void* b);
+Tag* tag_for_path (const gchar* name);
+TagRow* tag_table_add (TagTable* self, const gchar* name, GError** error);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+GeeCollection* tag_get_terminal_tags (GeeCollection* tags);
+GeeList* tag_make_user_visible_tag_list (GeeCollection* tags);
+static gint _tag_compare_user_visible_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gchar* tag_make_tag_markup_string (GeeList* tags, gint highlight_index);
+gchar* guarded_markup_escape_text (const gchar* plain);
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+#define DEFAULT_USER_TEXT_INPUT_LENGTH 1024
+gchar** tag_prep_tag_names (gchar** names, int names_length1, int* result_length1);
+static void _vala_array_add293 (gchar*** array, int* length, int* size, gchar* value);
+static void tag_set_raw_flat_name (Tag* self, const gchar* name);
+void tag_table_rename (TagTable* self, TagID* tag_id, const gchar* new_name, GError** error);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+Alteration* alteration_new_from_list (const gchar* list);
+Alteration* alteration_construct_from_list (GType object_type, const gchar* list);
+static void tag_set_raw_path (Tag* self, const gchar* path, gboolean suppress_notify);
+static gchar* tag_real_get_typename (DataSource* base);
+static gint64 tag_real_get_instance_id (DataSource* base);
+static gchar* tag_real_get_name (DataObject* base);
+gchar* hierarchical_tag_utilities_get_basename (const gchar* in_path);
+gchar* tag_get_searchable_name (Tag* self);
+gchar* string_remove_diacritics (const gchar* istring);
+gint tag_get_attachment_count (Tag* self, MediaSource* source);
+gboolean tag_contains (Tag* self, MediaSource* source);
+static gchar* tag_get_next_untitled_tag_name (const gchar* _prefix);
+Tag* tag_create_new_child (Tag* self);
+Tag* tag_create_new_root (void);
+static gchar* tag_real_to_string (DataObject* base);
+gint data_collection_get_count (DataCollection* self);
+static gboolean tag_real_equals (DataSource* base, DataSource* source);
+static SourceSnapshot* tag_real_save_snapshot (DataSource* base);
+static TagTagSnapshot* tag_tag_snapshot_new (Tag* tag);
+static TagTagSnapshot* tag_tag_snapshot_construct (GType object_type, Tag* tag);
+static GType tag_tag_snapshot_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SourceProxy* tag_real_get_proxy (Proxyable* base);
+static TagTagProxy* tag_tag_proxy_new (Tag* tag);
+static TagTagProxy* tag_tag_proxy_construct (GType object_type, Tag* tag);
+static GType tag_tag_proxy_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+Tag* tag_reconstitute (gint64 object_id, TagRow* row);
+void tag_table_create_from_row (TagTable* self, TagRow* row, TagID* result, GError** error);
+gchar* data_object_to_string (DataObject* self);
+static gboolean tag_real_has_links (ContainerSource* base);
+gboolean source_collection_has_backlink (SourceCollection* self, SourceBacklink* backlink);
+SourceBacklink* container_source_get_backlink (ContainerSource* self);
+static SourceBacklink* tag_real_get_backlink (ContainerSource* base);
+SourceBacklink* source_backlink_new_from_source (DataSource* source);
+SourceBacklink* source_backlink_construct_from_source (GType object_type, DataSource* source);
+static void tag_real_break_link (ContainerSource* base, DataSource* source);
+GeeList* tag_detach (Tag* self, MediaSource* source);
+static void tag_real_break_link_many (ContainerSource* base, GeeCollection* sources);
+static void tag_real_establish_link (ContainerSource* base, DataSource* source);
+void tag_attach (Tag* self, MediaSource* source);
+static void tag_real_establish_link_many (ContainerSource* base, GeeCollection* sources);
+gchar* indexable_prepare_indexable_string (const gchar* str);
+static const gchar* tag_real_get_indexable_keywords (Indexable* base);
+gboolean view_collection_has_view_for_source (ViewCollection* self, DataSource* source);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+Marker* data_collection_start_marking (DataCollection* self);
+void marker_mark (Marker* self, DataObject* object);
+gboolean tag_rename (Tag* self, const gchar* name);
+GeeCollection* view_collection_get_sources (ViewCollection* self);
+void tag_mirror_sources (Tag* self, ViewCollection* view, CreateView mirroring_ctor, void* mirroring_ctor_target);
+void view_collection_mirror (ViewCollection* self, ViewCollection* to_mirror, CreateView mirroring_ctor, void* mirroring_ctor_target, CreateViewPredicate should_mirror, void* should_mirror_target);
+DataSource* data_view_get_source (DataView* self);
+gchar* data_source_get_source_id (DataSource* self);
+void tag_table_set_tagged_sources (TagTable* self, TagID* tag_id, GeeCollection* source_ids, GError** error);
+static void tag_real_destroy (DataSource* base);
+void data_collection_clear (DataCollection* self);
+void data_source_destroy (DataSource* self);
+#define TAG_TAG_SNAPSHOT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TAG_TYPE_TAG_SNAPSHOT, TagTagSnapshotPrivate))
+enum {
+ TAG_TAG_SNAPSHOT_DUMMY_PROPERTY
+};
+static void tag_tag_snapshot_on_source_destroyed (TagTagSnapshot* self, DataSource* source);
+static void _tag_tag_snapshot_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+SourceSnapshot* source_snapshot_construct (GType object_type);
+static TagRow* tag_tag_snapshot_get_row (TagTagSnapshot* self);
+static void tag_tag_snapshot_real_notify_broken (SourceSnapshot* base);
+TagRow* tag_row_new (void);
+TagRow* tag_row_construct (GType object_type);
+void source_snapshot_notify_broken (SourceSnapshot* self);
+static void tag_tag_snapshot_finalize (SourceSnapshot* obj);
+enum {
+ TAG_TAG_PROXY_DUMMY_PROPERTY
+};
+SourceProxy* source_proxy_construct (GType object_type, DataSource* source);
+static DataSource* tag_tag_proxy_real_reconstitute (SourceProxy* base, gint64 object_id, SourceSnapshot* snapshot);
+static void tag_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static void _tag_source_collection_on_photo_source_reimported_library_photo_source_collection_source_reimported (LibraryPhotoSourceCollection* _sender, LibraryPhoto* photo, PhotoMetadata* metadata, gpointer self) {
+#line 26 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_source_collection_on_photo_source_reimported ((TagSourceCollection*) self, photo, metadata);
+#line 1015 "Tag.c"
+}
+
+
+static guint _tag_hash_name_string_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = tag_hash_name_string ((const gchar*) v);
+#line 8 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1024 "Tag.c"
+}
+
+
+static gboolean _tag_equal_name_strings_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = tag_equal_name_strings ((const gchar*) a, (const gchar*) b);
+#line 8 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1033 "Tag.c"
+}
+
+
+static gint64 _tag_source_collection_get_tag_key_get_source_database_key (DataSource* source, gpointer self) {
+ gint64 result;
+ result = tag_source_collection_get_tag_key (source);
+#line 16 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1042 "Tag.c"
+}
+
+
+TagSourceCollection* tag_source_collection_construct (GType object_type) {
+ TagSourceCollection* self = NULL;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ VideoSourceCollection* _tmp1_ = NULL;
+ LibraryPhotoSourceCollection* _tmp2_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = (TagSourceCollection*) container_source_collection_construct (object_type, TAG_TYPENAME, "TagSourceCollection", _tag_source_collection_get_tag_key_get_source_database_key, NULL);
+#line 18 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = library_photo_global;
+#line 18 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_attach_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection));
+#line 19 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = video_global;
+#line 19 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_attach_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_COLLECTION, SourceCollection));
+#line 22 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = library_photo_global;
+#line 22 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_connect (_tmp2_, "source-reimported", (GCallback) _tag_source_collection_on_photo_source_reimported_library_photo_source_collection_source_reimported, self);
+#line 15 "/home/jens/Source/shotwell/src/Tag.vala"
+ return self;
+#line 1067 "Tag.c"
+}
+
+
+TagSourceCollection* tag_source_collection_new (void) {
+#line 15 "/home/jens/Source/shotwell/src/Tag.vala"
+ return tag_source_collection_construct (TYPE_TAG_SOURCE_COLLECTION);
+#line 1074 "Tag.c"
+}
+
+
+static gboolean tag_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) {
+ TagSourceCollection * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 29 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 30 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source;
+#line 30 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_TAG);
+#line 30 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1092 "Tag.c"
+}
+
+
+static gint64 tag_source_collection_get_tag_key (DataSource* source) {
+ gint64 result = 0LL;
+ DataSource* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+#line 33 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), 0LL);
+#line 34 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source;
+#line 34 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = data_source_get_instance_id (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag), TYPE_DATA_SOURCE, DataSource));
+#line 34 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1110 "Tag.c"
+}
+
+
+static GeeCollection* tag_source_collection_real_get_containers_holding_source (ContainerSourceCollection* base, DataSource* source) {
+ TagSourceCollection * self;
+ GeeCollection* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 37 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 38 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source;
+#line 38 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_source_collection_fetch_for_source (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 38 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 38 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1131 "Tag.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/Tag.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1138 "Tag.c"
+}
+
+
+static ContainerSource* tag_source_collection_real_convert_backlink_to_container (ContainerSourceCollection* base, SourceBacklink* backlink) {
+ TagSourceCollection * self;
+ ContainerSource* result = NULL;
+ TagID tag_id = {0};
+ SourceBacklink* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ gint64 _tmp2_ = 0LL;
+ Tag* _result_ = NULL;
+ Tag* tag = NULL;
+ TagID _tmp3_ = {0};
+ Tag* _tmp4_ = NULL;
+ Tag* _tmp5_ = NULL;
+ Tag* _tmp25_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 41 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (backlink), NULL);
+#line 42 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = backlink;
+#line 42 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = source_backlink_get_instance_id (_tmp0_);
+#line 42 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 42 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_id_init (&tag_id, _tmp2_);
+#line 43 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = tag_id;
+#line 46 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_source_collection_fetch (self, &_tmp3_);
+#line 46 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp4_;
+#line 47 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = tag;
+#line 47 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp5_ != NULL) {
+#line 1179 "Tag.c"
+ Tag* _tmp6_ = NULL;
+ Tag* _tmp7_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = tag;
+#line 48 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 48 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_result_);
+#line 48 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = _tmp7_;
+#line 1190 "Tag.c"
+ } else {
+ {
+ GeeIterator* _container_it = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = container_source_collection_get_holding_tank (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection));
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _tmp8_;
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _tmp10_;
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp9_);
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _container_it = _tmp11_;
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 1212 "Tag.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ ContainerSource* _tmp16_ = NULL;
+ Tag* _tmp17_ = NULL;
+ Tag* _tmp18_ = NULL;
+ TagID _tmp19_ = {0};
+ gint64 _tmp20_ = 0LL;
+ TagID _tmp21_ = {0};
+ gint64 _tmp22_ = 0LL;
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = _container_it;
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp13_) {
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 1233 "Tag.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = _container_it;
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ container = (ContainerSource*) _tmp15_;
+#line 52 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = container;
+#line 52 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_TAG, Tag));
+#line 52 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 52 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp17_;
+#line 53 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = tag;
+#line 53 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_get_tag_id (_tmp18_, &_tmp19_);
+#line 53 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = _tmp19_.id;
+#line 53 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = tag_id;
+#line 53 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = _tmp21_.id;
+#line 53 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp20_ == _tmp22_) {
+#line 1261 "Tag.c"
+ Tag* _tmp23_ = NULL;
+ Tag* _tmp24_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = tag;
+#line 54 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 54 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_result_);
+#line 54 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = _tmp24_;
+#line 55 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (container);
+#line 55 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 1276 "Tag.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (container);
+#line 1280 "Tag.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_container_it);
+#line 1284 "Tag.c"
+ }
+ }
+#line 63 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = _result_;
+#line 63 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp25_ != NULL) {
+#line 1291 "Tag.c"
+ gboolean _tmp26_ = FALSE;
+ Tag* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = _result_;
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = tag_get_path (_tmp27_);
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = _tmp28_;
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = g_str_has_prefix (_tmp29_, TAG_PATH_SEPARATOR_STRING);
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = _tmp30_;
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp29_);
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp31_) {
+#line 1312 "Tag.c"
+ Tag* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ GeeList* _tmp35_ = NULL;
+ GeeList* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = _result_;
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = tag_get_path (_tmp32_);
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = _tmp33_;
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp34_);
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = _tmp35_;
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = _tmp37_;
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = _tmp38_ > 0;
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp36_);
+#line 65 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp34_);
+#line 1340 "Tag.c"
+ } else {
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = FALSE;
+#line 1344 "Tag.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp26_) {
+#line 1348 "Tag.c"
+ gchar* top_level_with_prefix_path = NULL;
+ Tag* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ GeeList* _tmp42_ = NULL;
+ GeeList* _tmp43_ = NULL;
+ gpointer _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* top_level_no_prefix_path = NULL;
+ const gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = _result_;
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = tag_get_path (_tmp39_);
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = _tmp40_;
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp41_);
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = _tmp42_;
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = gee_list_get (_tmp43_, 0);
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = (gchar*) _tmp44_;
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp43_);
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp41_);
+#line 66 "/home/jens/Source/shotwell/src/Tag.vala"
+ top_level_with_prefix_path = _tmp45_;
+#line 68 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp46_ = top_level_with_prefix_path;
+#line 68 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp47_ = hierarchical_tag_utilities_hierarchical_to_flat (_tmp46_);
+#line 68 "/home/jens/Source/shotwell/src/Tag.vala"
+ top_level_no_prefix_path = _tmp47_;
+#line 1386 "Tag.c"
+ {
+ GeeIterator* _container_it = NULL;
+ GeeCollection* _tmp48_ = NULL;
+ GeeCollection* _tmp49_ = NULL;
+ GeeIterator* _tmp50_ = NULL;
+ GeeIterator* _tmp51_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp48_ = container_source_collection_get_holding_tank (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection));
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp49_ = _tmp48_;
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp50_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp51_ = _tmp50_;
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp49_);
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _container_it = _tmp51_;
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 1407 "Tag.c"
+ GeeIterator* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp54_ = NULL;
+ gpointer _tmp55_ = NULL;
+ Tag* parent_candidate = NULL;
+ ContainerSource* _tmp56_ = NULL;
+ Tag* _tmp57_ = NULL;
+ Tag* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp52_ = _container_it;
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp53_ = gee_iterator_next (_tmp52_);
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp53_) {
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 1429 "Tag.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp54_ = _container_it;
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp55_ = gee_iterator_get (_tmp54_);
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ container = (ContainerSource*) _tmp55_;
+#line 72 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp56_ = container;
+#line 72 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp57_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_TAG, Tag));
+#line 72 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent_candidate = _tmp57_;
+#line 73 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp58_ = parent_candidate;
+#line 73 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp59_ = tag_get_path (_tmp58_);
+#line 73 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp60_ = _tmp59_;
+#line 73 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp61_ = top_level_no_prefix_path;
+#line 73 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp62_ = g_strcmp0 (_tmp60_, _tmp61_) == 0;
+#line 73 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp60_);
+#line 73 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp62_) {
+#line 1457 "Tag.c"
+ Tag* _tmp63_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp63_ = parent_candidate;
+#line 74 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_promote (_tmp63_);
+#line 1463 "Tag.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (parent_candidate);
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (container);
+#line 1469 "Tag.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_container_it);
+#line 1473 "Tag.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (top_level_no_prefix_path);
+#line 64 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (top_level_with_prefix_path);
+#line 1479 "Tag.c"
+ }
+ }
+#line 79 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_result_, TYPE_CONTAINER_SOURCE, ContainerSource);
+#line 79 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 79 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1488 "Tag.c"
+}
+
+
+Tag* tag_source_collection_fetch (TagSourceCollection* self, TagID* tag_id) {
+ Tag* result = NULL;
+ TagID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ DataSource* _tmp2_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_SOURCE_COLLECTION (self), NULL);
+#line 82 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (tag_id != NULL, NULL);
+#line 83 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = *tag_id;
+#line 83 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_.id;
+#line 83 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = database_source_collection_fetch_by_key (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), _tmp1_);
+#line 83 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_TAG, Tag);
+#line 83 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1511 "Tag.c"
+}
+
+
+gboolean tag_source_collection_exists (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ Tag* _tmp2_ = NULL;
+ Tag* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 86 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_SOURCE_COLLECTION (self), FALSE);
+#line 86 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (name != NULL, FALSE);
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = name;
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = treat_htags_as_root;
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_source_collection_fetch_by_name (self, _tmp0_, _tmp1_);
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _tmp3_ != NULL;
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp3_);
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp4_;
+#line 87 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1542 "Tag.c"
+}
+
+
+GeeCollection* tag_source_collection_get_all_names (TagSourceCollection* self) {
+ GeeCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 90 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_SOURCE_COLLECTION (self), NULL);
+#line 91 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->name_map;
+#line 91 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 91 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 91 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 91 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1563 "Tag.c"
+}
+
+
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source) {
+ GeeList* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_SOURCE_COLLECTION (self), NULL);
+#line 98 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 99 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->source_map;
+#line 99 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = source;
+#line 99 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 99 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = (GeeList*) _tmp2_;
+#line 99 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1586 "Tag.c"
+}
+
+
+GeeSortedSet* tag_source_collection_fetch_sorted_for_source (TagSourceCollection* self, MediaSource* photo) {
+ GeeSortedSet* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_SOURCE_COLLECTION (self), NULL);
+#line 106 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (photo), NULL);
+#line 107 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->sorted_source_map;
+#line 107 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = photo;
+#line 107 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 107 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = (GeeSortedSet*) _tmp2_;
+#line 107 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1609 "Tag.c"
+}
+
+
+Tag* tag_source_collection_fetch_by_name (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root) {
+ Tag* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GeeHashMap* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_SOURCE_COLLECTION (self), NULL);
+#line 112 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 113 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = treat_htags_as_root;
+#line 113 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp0_) {
+#line 1627 "Tag.c"
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 114 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = name;
+#line 114 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = g_str_has_prefix (_tmp1_, TAG_PATH_SEPARATOR_STRING);
+#line 114 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp2_) {
+#line 1636 "Tag.c"
+ const gchar* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = name;
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = hierarchical_tag_utilities_enumerate_path_components (_tmp3_);
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tmp6_;
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp7_ == 1;
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp5_);
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp8_) {
+#line 1659 "Tag.c"
+ Tag* tag = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ Tag* _tmp14_ = NULL;
+ Tag* _tmp15_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = self->priv->name_map;
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = name;
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = hierarchical_tag_utilities_hierarchical_to_flat (_tmp10_);
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = _tmp11_;
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_);
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = (Tag*) _tmp13_;
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp12_);
+#line 116 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp14_;
+#line 117 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = tag;
+#line 117 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp15_ != NULL) {
+#line 118 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = tag;
+#line 118 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1692 "Tag.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 1696 "Tag.c"
+ }
+ } else {
+ Tag* tag = NULL;
+ GeeHashMap* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ Tag* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = self->priv->name_map;
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = name;
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = hierarchical_tag_utilities_flat_to_hierarchical (_tmp17_);
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = _tmp18_;
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp19_);
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = (Tag*) _tmp20_;
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp19_);
+#line 121 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp21_;
+#line 122 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = tag;
+#line 122 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp22_ != NULL) {
+#line 123 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = tag;
+#line 123 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1731 "Tag.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 1735 "Tag.c"
+ }
+ }
+#line 127 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = self->priv->name_map;
+#line 127 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = name;
+#line 127 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_);
+#line 127 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = (Tag*) _tmp25_;
+#line 127 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1748 "Tag.c"
+}
+
+
+Tag* tag_source_collection_restore_tag_from_holding_tank (TagSourceCollection* self, const gchar* name) {
+ Tag* result = NULL;
+ Tag* found = NULL;
+ Tag* _tmp17_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_SOURCE_COLLECTION (self), NULL);
+#line 130 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 131 "/home/jens/Source/shotwell/src/Tag.vala"
+ found = NULL;
+#line 1762 "Tag.c"
+ {
+ GeeIterator* _container_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = container_source_collection_get_holding_tank (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection));
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp1_);
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _container_it = _tmp3_;
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 1783 "Tag.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Tag* tag = NULL;
+ ContainerSource* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ Tag* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _container_it;
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp5_) {
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 1805 "Tag.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _container_it;
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ container = (ContainerSource*) _tmp7_;
+#line 133 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = container;
+#line 133 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_TAG, Tag));
+#line 133 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp9_;
+#line 134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = tag;
+#line 134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = _tmp11_;
+#line 134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = name;
+#line 134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = g_strcmp0 (_tmp12_, _tmp13_) == 0;
+#line 134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp12_);
+#line 134 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp14_) {
+#line 1833 "Tag.c"
+ Tag* _tmp15_ = NULL;
+ Tag* _tmp16_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = tag;
+#line 135 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 135 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (found);
+#line 135 "/home/jens/Source/shotwell/src/Tag.vala"
+ found = _tmp16_;
+#line 137 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 137 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (container);
+#line 137 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 1850 "Tag.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (container);
+#line 1856 "Tag.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_container_it);
+#line 1860 "Tag.c"
+ }
+#line 141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = found;
+#line 141 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp17_ != NULL) {
+#line 1866 "Tag.c"
+ gboolean relinked = FALSE;
+ Tag* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+#line 142 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = found;
+#line 142 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = container_source_collection_relink_from_holding_tank (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 142 "/home/jens/Source/shotwell/src/Tag.vala"
+ relinked = _tmp19_;
+#line 143 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = relinked;
+#line 143 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp20_, "relinked");
+#line 1881 "Tag.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = found;
+#line 146 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 1887 "Tag.c"
+}
+
+
+static void tag_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added) {
+ TagSourceCollection * self;
+ GeeIterable* _tmp18_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 149 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 1898 "Tag.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = added;
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _object_it = _tmp1_;
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 1911 "Tag.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ Tag* tag = NULL;
+ DataObject* _tmp6_ = NULL;
+ Tag* _tmp7_ = NULL;
+ GeeHashMap* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GeeHashMap* _tmp13_ = NULL;
+ Tag* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ Tag* _tmp17_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _object_it;
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp3_) {
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 1938 "Tag.c"
+ }
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _object_it;
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ object = (DataObject*) _tmp5_;
+#line 151 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = object;
+#line 151 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_TAG, Tag));
+#line 151 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp7_;
+#line 153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = self->priv->name_map;
+#line 153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = tag;
+#line 153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _tmp10_;
+#line 153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_);
+#line 153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (!_tmp12_, "!name_map.has_key(tag.get_name())");
+#line 153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp11_);
+#line 154 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = self->priv->name_map;
+#line 154 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = tag;
+#line 154 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 154 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _tmp15_;
+#line 154 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = tag;
+#line 154 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp16_, _tmp17_);
+#line 154 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp16_);
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (object);
+#line 1984 "Tag.c"
+ }
+#line 150 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_object_it);
+#line 1988 "Tag.c"
+ }
+#line 157 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = added;
+#line 157 "/home/jens/Source/shotwell/src/Tag.vala"
+ DATA_COLLECTION_CLASS (tag_source_collection_parent_class)->notify_items_added (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp18_);
+#line 1994 "Tag.c"
+}
+
+
+static void tag_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed) {
+ TagSourceCollection * self;
+ GeeIterable* _tmp29_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 160 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 2005 "Tag.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = removed;
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _object_it = _tmp1_;
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 2018 "Tag.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ Tag* tag = NULL;
+ DataObject* _tmp6_ = NULL;
+ Tag* _tmp7_ = NULL;
+ gboolean unset = FALSE;
+ GeeHashMap* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ Tag* parent = NULL;
+ Tag* _tmp15_ = NULL;
+ Tag* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ Tag* _tmp18_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _object_it;
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp3_) {
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 2048 "Tag.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _object_it;
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ object = (DataObject*) _tmp5_;
+#line 162 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = object;
+#line 162 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_TAG, Tag));
+#line 162 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp7_;
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = self->priv->name_map;
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = tag;
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _tmp10_;
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL);
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp11_);
+#line 164 "/home/jens/Source/shotwell/src/Tag.vala"
+ unset = _tmp13_;
+#line 165 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = unset;
+#line 165 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp14_, "unset");
+#line 169 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = tag;
+#line 169 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = tag_get_hierarchical_parent (_tmp15_);
+#line 169 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent = _tmp16_;
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = parent;
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp18_ != NULL) {
+#line 2092 "Tag.c"
+ Tag* _tmp19_ = NULL;
+ Tag* _tmp20_ = NULL;
+ Tag* _tmp21_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = parent;
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = tag_get_hierarchical_parent (_tmp19_);
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = _tmp20_;
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = _tmp21_ == NULL;
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp21_);
+#line 2106 "Tag.c"
+ } else {
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = FALSE;
+#line 2110 "Tag.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp17_) {
+#line 2114 "Tag.c"
+ Tag* _tmp22_ = NULL;
+ GeeList* _tmp23_ = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gboolean _tmp27_ = FALSE;
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = parent;
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = tag_get_hierarchical_children (_tmp22_);
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = _tmp23_;
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = _tmp25_;
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = _tmp26_ == 0;
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp24_);
+#line 171 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp27_) {
+#line 2137 "Tag.c"
+ Tag* _tmp28_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = parent;
+#line 172 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_flatten (_tmp28_);
+#line 2143 "Tag.c"
+ }
+ }
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (parent);
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (object);
+#line 2152 "Tag.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_object_it);
+#line 2156 "Tag.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = removed;
+#line 176 "/home/jens/Source/shotwell/src/Tag.vala"
+ DATA_COLLECTION_CLASS (tag_source_collection_parent_class)->notify_items_removed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp29_);
+#line 2162 "Tag.c"
+}
+
+
+static void tag_source_collection_real_notify_items_altered (DataCollection* base, GeeMap* map) {
+ TagSourceCollection * self;
+ GeeMap* _tmp37_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 179 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 2173 "Tag.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = map;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp3_);
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _object_it = _tmp5_;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 2200 "Tag.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Tag* tag = NULL;
+ DataObject* _tmp10_ = NULL;
+ Tag* _tmp11_ = NULL;
+ gchar* old_name = NULL;
+ GeeMapIterator* iter = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ GeeMapIterator* _tmp13_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ Tag* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _object_it;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp7_) {
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 2227 "Tag.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _object_it;
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ object = (DataObject*) _tmp9_;
+#line 181 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = object;
+#line 181 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_TAG, Tag));
+#line 181 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp11_;
+#line 183 "/home/jens/Source/shotwell/src/Tag.vala"
+ old_name = NULL;
+#line 186 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = self->priv->name_map;
+#line 186 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = gee_abstract_map_map_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
+#line 186 "/home/jens/Source/shotwell/src/Tag.vala"
+ iter = _tmp13_;
+#line 187 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 2251 "Tag.c"
+ GeeMapIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ GeeMapIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ Tag* _tmp18_ = NULL;
+ Tag* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ GeeMapIterator* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = iter;
+#line 187 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = gee_map_iterator_next (_tmp14_);
+#line 187 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp15_) {
+#line 187 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 2270 "Tag.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = iter;
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = gee_map_iterator_get_value (_tmp16_);
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = (Tag*) _tmp17_;
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = tag;
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_SOURCE, DataSource));
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = !_tmp20_;
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp18_);
+#line 188 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp21_) {
+#line 189 "/home/jens/Source/shotwell/src/Tag.vala"
+ continue;
+#line 2290 "Tag.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = iter;
+#line 191 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = gee_map_iterator_get_key (_tmp22_);
+#line 191 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (old_name);
+#line 191 "/home/jens/Source/shotwell/src/Tag.vala"
+ old_name = (gchar*) _tmp23_;
+#line 193 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 2302 "Tag.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = old_name;
+#line 196 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp24_ != NULL, "old_name != null");
+#line 198 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = tag;
+#line 198 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject));
+#line 198 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = _tmp26_;
+#line 198 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = old_name;
+#line 198 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = g_strcmp0 (_tmp27_, _tmp28_) != 0;
+#line 198 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp27_);
+#line 198 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp29_) {
+#line 2322 "Tag.c"
+ GeeHashMap* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ GeeHashMap* _tmp32_ = NULL;
+ Tag* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ Tag* _tmp36_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = self->priv->name_map;
+#line 199 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = old_name;
+#line 199 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp31_, NULL);
+#line 200 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = self->priv->name_map;
+#line 200 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = tag;
+#line 200 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_DATA_OBJECT, DataObject));
+#line 200 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = _tmp34_;
+#line 200 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = tag;
+#line 200 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp35_, _tmp36_);
+#line 200 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp35_);
+#line 2350 "Tag.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (iter);
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (old_name);
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (object);
+#line 2360 "Tag.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_object_it);
+#line 2364 "Tag.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = map;
+#line 204 "/home/jens/Source/shotwell/src/Tag.vala"
+ DATA_COLLECTION_CLASS (tag_source_collection_parent_class)->notify_items_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp37_);
+#line 2370 "Tag.c"
+}
+
+
+static gint _tag_compare_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = tag_compare_names ((Tag*) a, (Tag*) b);
+#line 224 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 2379 "Tag.c"
+}
+
+
+static void tag_source_collection_real_notify_container_contents_added (ContainerSourceCollection* base, ContainerSource* container, GeeCollection* added, gboolean relinking) {
+ TagSourceCollection * self;
+ Tag* tag = NULL;
+ ContainerSource* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ GeeCollection* sources = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ ContainerSource* _tmp34_ = NULL;
+ GeeCollection* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+#line 207 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 207 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 207 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (added));
+#line 209 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = container;
+#line 209 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag));
+#line 209 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp1_;
+#line 210 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = added;
+#line 210 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 210 "/home/jens/Source/shotwell/src/Tag.vala"
+ sources = _tmp3_;
+#line 2412 "Tag.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = sources;
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _source_it = _tmp5_;
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 2425 "Tag.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeList* tags = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ gboolean is_added = FALSE;
+ GeeList* _tmp18_ = NULL;
+ Tag* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ GeeSortedSet* sorted_tags = NULL;
+ GeeHashMap* _tmp22_ = NULL;
+ MediaSource* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ GeeSortedSet* _tmp25_ = NULL;
+ GeeSortedSet* _tmp30_ = NULL;
+ Tag* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ gboolean _tmp33_ = FALSE;
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _source_it;
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp7_) {
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 2458 "Tag.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _source_it;
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ source = (MediaSource*) _tmp9_;
+#line 213 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = self->priv->source_map;
+#line 213 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = source;
+#line 213 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_);
+#line 213 "/home/jens/Source/shotwell/src/Tag.vala"
+ tags = (GeeList*) _tmp12_;
+#line 214 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = tags;
+#line 214 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp13_ == NULL) {
+#line 2478 "Tag.c"
+ GeeArrayList* _tmp14_ = NULL;
+ GeeHashMap* _tmp15_ = NULL;
+ MediaSource* _tmp16_ = NULL;
+ GeeList* _tmp17_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 215 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tags);
+#line 215 "/home/jens/Source/shotwell/src/Tag.vala"
+ tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_LIST, GeeList);
+#line 216 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = self->priv->source_map;
+#line 216 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = source;
+#line 216 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = tags;
+#line 216 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp16_, _tmp17_);
+#line 2497 "Tag.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = tags;
+#line 219 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = tag;
+#line 219 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), _tmp19_);
+#line 219 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_added = _tmp20_;
+#line 220 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = is_added;
+#line 220 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp21_, "is_added");
+#line 222 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = self->priv->sorted_source_map;
+#line 222 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = source;
+#line 222 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp23_);
+#line 222 "/home/jens/Source/shotwell/src/Tag.vala"
+ sorted_tags = (GeeSortedSet*) _tmp24_;
+#line 223 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = sorted_tags;
+#line 223 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp25_ == NULL) {
+#line 2523 "Tag.c"
+ GeeTreeSet* _tmp26_ = NULL;
+ GeeHashMap* _tmp27_ = NULL;
+ MediaSource* _tmp28_ = NULL;
+ GeeSortedSet* _tmp29_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = gee_tree_set_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tag_compare_names_gcompare_data_func, NULL, NULL);
+#line 224 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (sorted_tags);
+#line 224 "/home/jens/Source/shotwell/src/Tag.vala"
+ sorted_tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 225 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = self->priv->sorted_source_map;
+#line 225 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = source;
+#line 225 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = sorted_tags;
+#line 225 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp28_, _tmp29_);
+#line 2542 "Tag.c"
+ }
+#line 228 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = sorted_tags;
+#line 228 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = tag;
+#line 228 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection), _tmp31_);
+#line 228 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_added = _tmp32_;
+#line 229 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = is_added;
+#line 229 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp33_, "is_added");
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (sorted_tags);
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tags);
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 2562 "Tag.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_source_it);
+#line 2566 "Tag.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = container;
+#line 232 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = added;
+#line 232 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = relinking;
+#line 232 "/home/jens/Source/shotwell/src/Tag.vala"
+ CONTAINER_SOURCE_COLLECTION_CLASS (tag_source_collection_parent_class)->notify_container_contents_added (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), _tmp34_, _tmp35_, _tmp36_);
+#line 207 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (sources);
+#line 207 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 2580 "Tag.c"
+}
+
+
+static void tag_source_collection_real_notify_container_contents_removed (ContainerSourceCollection* base, ContainerSource* container, GeeCollection* removed, gboolean unlinking) {
+ TagSourceCollection * self;
+ Tag* tag = NULL;
+ ContainerSource* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ GeeCollection* sources = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ ContainerSource* _tmp36_ = NULL;
+ GeeCollection* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+#line 235 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 235 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 235 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (removed));
+#line 237 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = container;
+#line 237 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TAG, Tag));
+#line 237 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp1_;
+#line 238 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = removed;
+#line 238 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 238 "/home/jens/Source/shotwell/src/Tag.vala"
+ sources = _tmp3_;
+#line 2613 "Tag.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = sources;
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _source_it = _tmp5_;
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 2626 "Tag.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeList* tags = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ gboolean is_removed = FALSE;
+ GeeList* _tmp14_ = NULL;
+ Tag* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ GeeSortedSet* sorted_tags = NULL;
+ GeeHashMap* _tmp23_ = NULL;
+ MediaSource* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ GeeSortedSet* _tmp26_ = NULL;
+ GeeSortedSet* _tmp27_ = NULL;
+ Tag* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ GeeSortedSet* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _source_it;
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp7_) {
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 2665 "Tag.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _source_it;
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ source = (MediaSource*) _tmp9_;
+#line 241 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = self->priv->source_map;
+#line 241 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = source;
+#line 241 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_);
+#line 241 "/home/jens/Source/shotwell/src/Tag.vala"
+ tags = (GeeList*) _tmp12_;
+#line 242 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = tags;
+#line 242 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp13_ != NULL, "tags != null");
+#line 244 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = tags;
+#line 244 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = tag;
+#line 244 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 244 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_removed = _tmp16_;
+#line 245 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = is_removed;
+#line 245 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp17_, "is_removed");
+#line 247 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = tags;
+#line 247 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 247 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = _tmp19_;
+#line 247 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp20_ == 0) {
+#line 2705 "Tag.c"
+ GeeHashMap* _tmp21_ = NULL;
+ MediaSource* _tmp22_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = self->priv->source_map;
+#line 248 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = source;
+#line 248 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp22_, NULL);
+#line 2714 "Tag.c"
+ }
+#line 250 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = self->priv->sorted_source_map;
+#line 250 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = source;
+#line 250 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_);
+#line 250 "/home/jens/Source/shotwell/src/Tag.vala"
+ sorted_tags = (GeeSortedSet*) _tmp25_;
+#line 251 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = sorted_tags;
+#line 251 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp26_ != NULL, "sorted_tags != null");
+#line 253 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = sorted_tags;
+#line 253 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = tag;
+#line 253 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection), _tmp28_);
+#line 253 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_removed = _tmp29_;
+#line 254 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = is_removed;
+#line 254 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp30_, "is_removed");
+#line 256 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = sorted_tags;
+#line 256 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 256 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = _tmp32_;
+#line 256 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp33_ == 0) {
+#line 2748 "Tag.c"
+ GeeHashMap* _tmp34_ = NULL;
+ MediaSource* _tmp35_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = self->priv->sorted_source_map;
+#line 257 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = source;
+#line 257 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp35_, NULL);
+#line 2757 "Tag.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (sorted_tags);
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tags);
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 2765 "Tag.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_source_it);
+#line 2769 "Tag.c"
+ }
+#line 260 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = container;
+#line 260 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = removed;
+#line 260 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = unlinking;
+#line 260 "/home/jens/Source/shotwell/src/Tag.vala"
+ CONTAINER_SOURCE_COLLECTION_CLASS (tag_source_collection_parent_class)->notify_container_contents_removed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), _tmp36_, _tmp37_, _tmp38_);
+#line 235 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (sources);
+#line 235 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 2783 "Tag.c"
+}
+
+
+static void tag_source_collection_on_photo_source_reimported (TagSourceCollection* self, LibraryPhoto* photo, PhotoMetadata* metadata) {
+#line 263 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG_SOURCE_COLLECTION (self));
+#line 263 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_LIBRARY_PHOTO (photo));
+#line 263 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 2794 "Tag.c"
+}
+
+
+static void tag_source_collection_class_init (TagSourceCollectionClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataCollectionClass *) klass)->finalize = tag_source_collection_finalize;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_type_class_add_private (klass, sizeof (TagSourceCollectionPrivate));
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = tag_source_collection_real_holds_type_of_source;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((ContainerSourceCollectionClass *) klass)->get_containers_holding_source = tag_source_collection_real_get_containers_holding_source;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((ContainerSourceCollectionClass *) klass)->convert_backlink_to_container = tag_source_collection_real_convert_backlink_to_container;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataCollectionClass *) klass)->notify_items_added = tag_source_collection_real_notify_items_added;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataCollectionClass *) klass)->notify_items_removed = tag_source_collection_real_notify_items_removed;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataCollectionClass *) klass)->notify_items_altered = tag_source_collection_real_notify_items_altered;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((ContainerSourceCollectionClass *) klass)->notify_container_contents_added = tag_source_collection_real_notify_container_contents_added;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((ContainerSourceCollectionClass *) klass)->notify_container_contents_removed = tag_source_collection_real_notify_container_contents_removed;
+#line 2821 "Tag.c"
+}
+
+
+static void tag_source_collection_instance_init (TagSourceCollection * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv = TAG_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tag_hash_name_string_gee_hash_data_func, NULL, NULL, _tag_equal_name_strings_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 8 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->name_map = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = gee_hash_map_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, GEE_TYPE_LIST, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 10 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->source_map = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = gee_hash_map_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, GEE_TYPE_SORTED_SET, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 12 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->sorted_source_map = _tmp2_;
+#line 2843 "Tag.c"
+}
+
+
+static void tag_source_collection_finalize (DataCollection* obj) {
+ TagSourceCollection * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection);
+#line 26 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = library_photo_global;
+#line 26 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_parse_name ("source-reimported", TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 26 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _tag_source_collection_on_photo_source_reimported_library_photo_source_collection_source_reimported, self);
+#line 8 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (self->priv->name_map);
+#line 10 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (self->priv->source_map);
+#line 12 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (self->priv->sorted_source_map);
+#line 7 "/home/jens/Source/shotwell/src/Tag.vala"
+ DATA_COLLECTION_CLASS (tag_source_collection_parent_class)->finalize (obj);
+#line 2867 "Tag.c"
+}
+
+
+GType tag_source_collection_get_type (void) {
+ static volatile gsize tag_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagSourceCollection), 0, (GInstanceInitFunc) tag_source_collection_instance_init, NULL };
+ GType tag_source_collection_type_id;
+ tag_source_collection_type_id = g_type_register_static (TYPE_CONTAINER_SOURCE_COLLECTION, "TagSourceCollection", &g_define_type_info, 0);
+ g_once_init_leave (&tag_source_collection_type_id__volatile, tag_source_collection_type_id);
+ }
+ return tag_source_collection_type_id__volatile;
+}
+
+
+static void _tag_on_media_views_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 382 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_on_media_views_contents_altered ((Tag*) self, added, removed);
+#line 2886 "Tag.c"
+}
+
+
+static void _tag_on_sources_destroyed_source_collection_items_destroyed (SourceCollection* _sender, GeeCollection* destroyed, gpointer self) {
+#line 383 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_on_sources_destroyed ((Tag*) self, destroyed);
+#line 2893 "Tag.c"
+}
+
+
+static gpointer _tag_row_ref0 (gpointer self) {
+#line 335 "/home/jens/Source/shotwell/src/Tag.vala"
+ return self ? tag_row_ref (self) : NULL;
+#line 2900 "Tag.c"
+}
+
+
+static Tag* tag_construct (GType object_type, TagRow* row, gint64 object_id) {
+ Tag * self = NULL;
+ gint64 _tmp0_ = 0LL;
+ TagRow* _tmp1_ = NULL;
+ TagRow* _tmp2_ = NULL;
+ TagRow* _tmp3_ = NULL;
+ TagRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GeeArrayList* source_list = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ GeeArrayList* thumbnail_views = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ TagRow* _tmp9_ = NULL;
+ GeeSet* _tmp10_ = NULL;
+ TagRow* _tmp32_ = NULL;
+ TagID _tmp33_ = {0};
+ gint64 _tmp34_ = 0LL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ ViewCollection* _tmp39_ = NULL;
+ ViewCollection* _tmp40_ = NULL;
+ GeeArrayList* _tmp41_ = NULL;
+ GeeCollection* _tmp42_ = NULL;
+ GeeCollection* _tmp43_ = NULL;
+ GeeArrayList* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ ViewCollection* _tmp51_ = NULL;
+ LibraryPhotoSourceCollection* _tmp52_ = NULL;
+ VideoSourceCollection* _tmp53_ = NULL;
+#line 332 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_ROW (row), NULL);
+#line 333 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = object_id;
+#line 333 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = (Tag*) data_source_construct (object_type, _tmp0_);
+#line 335 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = row;
+#line 335 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tag_row_ref0 (_tmp1_);
+#line 335 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (self->priv->row);
+#line 335 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->row = _tmp2_;
+#line 338 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = self->priv->row;
+#line 338 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = self->priv->row;
+#line 338 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_->name;
+#line 338 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = tag_prep_tag_name (_tmp5_);
+#line 338 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp3_->name);
+#line 338 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_->name = _tmp6_;
+#line 341 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 341 "/home/jens/Source/shotwell/src/Tag.vala"
+ source_list = _tmp7_;
+#line 342 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = gee_array_list_new (TYPE_THUMBNAIL_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 342 "/home/jens/Source/shotwell/src/Tag.vala"
+ thumbnail_views = _tmp8_;
+#line 343 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = self->priv->row;
+#line 343 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_->source_id_list;
+#line 343 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp10_ != NULL) {
+#line 2977 "Tag.c"
+ {
+ GeeIterator* _source_id_it = NULL;
+ TagRow* _tmp11_ = NULL;
+ GeeSet* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = self->priv->row;
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = _tmp11_->source_id_list;
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _source_id_it = _tmp13_;
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 2993 "Tag.c"
+ GeeIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gchar* source_id = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ MediaSource* current_source = NULL;
+ MediaCollectionRegistry* _tmp18_ = NULL;
+ MediaCollectionRegistry* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ MediaSource* _tmp21_ = NULL;
+ MediaSource* _tmp22_ = NULL;
+ MediaSource* _tmp23_ = NULL;
+ GeeArrayList* _tmp24_ = NULL;
+ MediaSource* _tmp25_ = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ MediaSource* _tmp27_ = NULL;
+ ThumbnailView* _tmp28_ = NULL;
+ ThumbnailView* _tmp29_ = NULL;
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = _source_id_it;
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = gee_iterator_next (_tmp14_);
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp15_) {
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 3020 "Tag.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _source_id_it;
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = gee_iterator_get (_tmp16_);
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ source_id = (gchar*) _tmp17_;
+#line 345 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = media_collection_registry_get_instance ();
+#line 345 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = _tmp18_;
+#line 345 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = source_id;
+#line 345 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = media_collection_registry_fetch_media (_tmp19_, _tmp20_);
+#line 345 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 345 "/home/jens/Source/shotwell/src/Tag.vala"
+ _media_collection_registry_unref0 (_tmp19_);
+#line 345 "/home/jens/Source/shotwell/src/Tag.vala"
+ current_source = _tmp22_;
+#line 347 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = current_source;
+#line 347 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp23_ == NULL) {
+#line 348 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (current_source);
+#line 348 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (source_id);
+#line 348 "/home/jens/Source/shotwell/src/Tag.vala"
+ continue;
+#line 3052 "Tag.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = source_list;
+#line 350 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = current_source;
+#line 350 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp25_);
+#line 351 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = thumbnail_views;
+#line 351 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = current_source;
+#line 351 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 351 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = _tmp28_;
+#line 351 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp29_);
+#line 351 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp29_);
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (current_source);
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (source_id);
+#line 3076 "Tag.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_source_id_it);
+#line 3080 "Tag.c"
+ }
+ } else {
+ TagRow* _tmp30_ = NULL;
+ GeeHashSet* _tmp31_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = self->priv->row;
+#line 355 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 355 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp30_->source_id_list);
+#line 355 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_->source_id_list = G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_SET, GeeSet);
+#line 3093 "Tag.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = row;
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = _tmp32_->tag_id;
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = _tmp33_.id;
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp34_);
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = _tmp35_;
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = g_strdup_printf ("ViewCollection for tag %s", _tmp36_);
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = _tmp37_;
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = view_collection_new (_tmp38_);
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _data_collection_unref0 (self->priv->media_views);
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->media_views = _tmp39_;
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp38_);
+#line 359 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp36_);
+#line 360 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = self->priv->media_views;
+#line 360 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = thumbnail_views;
+#line 360 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 360 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = _tmp42_;
+#line 360 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp43_);
+#line 364 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = source_list;
+#line 364 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 364 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp46_ = _tmp45_;
+#line 364 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp46_ > 0) {
+#line 3137 "Tag.c"
+ TagSourceCollection* _tmp47_ = NULL;
+ GeeArrayList* _tmp48_ = NULL;
+ TagSourceCollection* _tmp49_ = NULL;
+ GeeArrayList* _tmp50_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp47_ = tag_global;
+#line 365 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp48_ = source_list;
+#line 365 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_notify_container_contents_added (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_COLLECTION, GeeCollection), FALSE);
+#line 366 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp49_ = tag_global;
+#line 366 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp50_ = source_list;
+#line 366 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_notify_container_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GEE_TYPE_COLLECTION, GeeCollection), FALSE, NULL, FALSE);
+#line 3154 "Tag.c"
+ }
+#line 371 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp51_ = self->priv->media_views;
+#line 371 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _tag_on_media_views_contents_altered_data_collection_contents_altered, self, 0);
+#line 375 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp52_ = library_photo_global;
+#line 375 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_SOURCE_COLLECTION, SourceCollection), "items-destroyed", (GCallback) _tag_on_sources_destroyed_source_collection_items_destroyed, self, 0);
+#line 376 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp53_ = video_global;
+#line 376 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, TYPE_SOURCE_COLLECTION, SourceCollection), "items-destroyed", (GCallback) _tag_on_sources_destroyed_source_collection_items_destroyed, self, 0);
+#line 378 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_update_indexable_keywords (self);
+#line 332 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (thumbnail_views);
+#line 332 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source_list);
+#line 332 "/home/jens/Source/shotwell/src/Tag.vala"
+ return self;
+#line 3176 "Tag.c"
+}
+
+
+static Tag* tag_new (TagRow* row, gint64 object_id) {
+#line 332 "/home/jens/Source/shotwell/src/Tag.vala"
+ return tag_construct (TYPE_TAG, row, object_id);
+#line 3183 "Tag.c"
+}
+
+
+void tag_init (ProgressMonitor monitor, void* monitor_target) {
+ TagSourceCollection* _tmp0_ = NULL;
+ GeeList* rows = NULL;
+ GeeTreeMap* ancestry_dictionary = NULL;
+ GeeTreeMap* _tmp8_ = NULL;
+ GeeArrayList* unlinked = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ gint count = 0;
+ GeeList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ GeeSet* victim_set = NULL;
+ GeeHashSet* _tmp54_ = NULL;
+ GeeSet* _tmp110_ = NULL;
+ TagSourceCollection* _tmp171_ = NULL;
+ GeeTreeMap* _tmp172_ = NULL;
+ GeeCollection* _tmp173_ = NULL;
+ GeeCollection* _tmp174_ = NULL;
+ GeeCollection* _tmp175_ = NULL;
+ GeeCollection* _tmp176_ = NULL;
+ GeeCollection* _tmp177_ = NULL;
+ TagSourceCollection* _tmp178_ = NULL;
+ GeeArrayList* _tmp179_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 388 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_source_collection_new ();
+#line 388 "/home/jens/Source/shotwell/src/Tag.vala"
+ _data_collection_unref0 (tag_global);
+#line 388 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_global = _tmp0_;
+#line 391 "/home/jens/Source/shotwell/src/Tag.vala"
+ rows = NULL;
+#line 3219 "Tag.c"
+ {
+ GeeList* _tmp1_ = NULL;
+ TagTable* _tmp2_ = NULL;
+ TagTable* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_table_get_instance ();
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_table_get_all_rows (_tmp3_, &_inner_error_);
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp3_);
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp5_;
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3243 "Tag.c"
+ goto __catch459_database_error;
+ }
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (rows);
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 3254 "Tag.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _tmp1_;
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (rows);
+#line 393 "/home/jens/Source/shotwell/src/Tag.vala"
+ rows = _tmp6_;
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp1_);
+#line 3266 "Tag.c"
+ }
+ goto __finally459;
+ __catch459_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = err;
+#line 395 "/home/jens/Source/shotwell/src/Tag.vala"
+ app_window_database_error (_tmp7_);
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 3283 "Tag.c"
+ }
+ __finally459:
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (rows);
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 392 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 3296 "Tag.c"
+ }
+#line 404 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = gee_tree_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 404 "/home/jens/Source/shotwell/src/Tag.vala"
+ ancestry_dictionary = _tmp8_;
+#line 406 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 406 "/home/jens/Source/shotwell/src/Tag.vala"
+ unlinked = _tmp9_;
+#line 407 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = rows;
+#line 407 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 407 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = _tmp11_;
+#line 407 "/home/jens/Source/shotwell/src/Tag.vala"
+ count = _tmp12_;
+#line 3314 "Tag.c"
+ {
+ gint ctr = 0;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ ctr = 0;
+#line 3319 "Tag.c"
+ {
+ gboolean _tmp13_ = FALSE;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = TRUE;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 3326 "Tag.c"
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ TagRow* row = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gpointer _tmp19_ = NULL;
+ gchar* name = NULL;
+ TagRow* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ TagRow* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ Tag* tag = NULL;
+ TagRow* _tmp37_ = NULL;
+ Tag* _tmp38_ = NULL;
+ ProgressMonitor _tmp39_ = NULL;
+ void* _tmp39__target = NULL;
+ GeeTreeMap* _tmp43_ = NULL;
+ Tag* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ Tag* _tmp47_ = NULL;
+ Tag* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp13_) {
+#line 3355 "Tag.c"
+ gint _tmp14_ = 0;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = ctr;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ ctr = _tmp14_ + 1;
+#line 3361 "Tag.c"
+ }
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = FALSE;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = ctr;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = count;
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp15_ < _tmp16_)) {
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 3373 "Tag.c"
+ }
+#line 409 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = rows;
+#line 409 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = ctr;
+#line 409 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = gee_list_get (_tmp17_, _tmp18_);
+#line 409 "/home/jens/Source/shotwell/src/Tag.vala"
+ row = (TagRow*) _tmp19_;
+#line 412 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = row;
+#line 412 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = _tmp20_->name;
+#line 412 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = tag_prep_tag_name (_tmp21_);
+#line 412 "/home/jens/Source/shotwell/src/Tag.vala"
+ name = _tmp22_;
+#line 413 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = name;
+#line 413 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp23_ == NULL) {
+#line 3395 "Tag.c"
+ TagRow* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = row;
+#line 416 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = _tmp24_->name;
+#line 416 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_warning ("Tag.vala:416: Invalid tag name \"%s\": removing from database", _tmp25_);
+#line 3404 "Tag.c"
+ {
+ TagTable* _tmp26_ = NULL;
+ TagTable* _tmp27_ = NULL;
+ TagRow* _tmp28_ = NULL;
+ TagID _tmp29_ = {0};
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = tag_table_get_instance ();
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = _tmp26_;
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = row;
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = _tmp28_->tag_id;
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_table_remove (_tmp27_, &_tmp29_, &_inner_error_);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp27_);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3426 "Tag.c"
+ goto __catch460_database_error;
+ }
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (name);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (row);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (unlinked);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (ancestry_dictionary);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (rows);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 418 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 3445 "Tag.c"
+ }
+ }
+ goto __finally460;
+ __catch460_database_error:
+ {
+ GError* err = NULL;
+ TagRow* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ GError* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = row;
+#line 420 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = _tmp30_->name;
+#line 420 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = err;
+#line 420 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = _tmp32_->message;
+#line 420 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_warning ("Tag.vala:420: Unable to delete tag \"%s\": %s", _tmp31_, _tmp33_);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 3472 "Tag.c"
+ }
+ __finally460:
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (name);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (row);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (unlinked);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (ancestry_dictionary);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (rows);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 417 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 3493 "Tag.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (name);
+#line 423 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (row);
+#line 423 "/home/jens/Source/shotwell/src/Tag.vala"
+ continue;
+#line 3501 "Tag.c"
+ }
+#line 426 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = row;
+#line 426 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = name;
+#line 426 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = g_strdup (_tmp35_);
+#line 426 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp34_->name);
+#line 426 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_->name = _tmp36_;
+#line 428 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = row;
+#line 428 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = tag_new (_tmp37_, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 428 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp38_;
+#line 429 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = monitor;
+#line 429 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39__target = monitor_target;
+#line 429 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp39_ != NULL) {
+#line 3525 "Tag.c"
+ ProgressMonitor _tmp40_ = NULL;
+ void* _tmp40__target = NULL;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+#line 430 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = monitor;
+#line 430 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40__target = monitor_target;
+#line 430 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = ctr;
+#line 430 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = count;
+#line 430 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ ((guint64) _tmp41_, (guint64) _tmp42_, TRUE, _tmp40__target);
+#line 3540 "Tag.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = ancestry_dictionary;
+#line 432 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = tag;
+#line 432 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = tag_get_path (_tmp44_);
+#line 432 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp46_ = _tmp45_;
+#line 432 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp47_ = tag;
+#line 432 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp46_, _tmp47_);
+#line 432 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp46_);
+#line 434 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp48_ = tag;
+#line 434 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp49_ = container_source_has_links (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 434 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp49_) {
+#line 3562 "Tag.c"
+ Tag* _tmp50_ = NULL;
+ TagSourceCollection* _tmp51_ = NULL;
+ GeeArrayList* _tmp52_ = NULL;
+ Tag* _tmp53_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp50_ = tag;
+#line 435 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp51_ = tag_global;
+#line 435 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_source_rehydrate_backlinks (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_SOURCE_COLLECTION, SourceCollection), NULL);
+#line 436 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp52_ = unlinked;
+#line 436 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp53_ = tag;
+#line 436 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp53_);
+#line 3579 "Tag.c"
+ }
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (name);
+#line 408 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (row);
+#line 3587 "Tag.c"
+ }
+ }
+ }
+#line 440 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp54_ = gee_hash_set_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 440 "/home/jens/Source/shotwell/src/Tag.vala"
+ victim_set = G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, GEE_TYPE_SET, GeeSet);
+#line 3595 "Tag.c"
+ {
+ GeeIterator* _fq_tag_path_it = NULL;
+ GeeTreeMap* _tmp55_ = NULL;
+ GeeSet* _tmp56_ = NULL;
+ GeeSet* _tmp57_ = NULL;
+ GeeSet* _tmp58_ = NULL;
+ GeeIterator* _tmp59_ = NULL;
+ GeeIterator* _tmp60_ = NULL;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp55_ = ancestry_dictionary;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp56_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, GEE_TYPE_MAP, GeeMap));
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp57_ = _tmp56_;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp58_ = _tmp57_;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp59_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp60_ = _tmp59_;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp58_);
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _fq_tag_path_it = _tmp60_;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 3622 "Tag.c"
+ GeeIterator* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ gchar* fq_tag_path = NULL;
+ GeeIterator* _tmp63_ = NULL;
+ gpointer _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+ GeeList* _tmp66_ = NULL;
+ GeeList* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gboolean _tmp70_ = FALSE;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp61_ = _fq_tag_path_it;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp62_ = gee_iterator_next (_tmp61_);
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp62_) {
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 3642 "Tag.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp63_ = _fq_tag_path_it;
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp64_ = gee_iterator_get (_tmp63_);
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ fq_tag_path = (gchar*) _tmp64_;
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp65_ = fq_tag_path;
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp66_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp65_);
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp67_ = _tmp66_;
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp68_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp69_ = _tmp68_;
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp70_ = _tmp69_ < 1;
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp67_);
+#line 446 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp70_) {
+#line 3666 "Tag.c"
+ gboolean _tmp71_ = FALSE;
+ const gchar* _tmp72_ = NULL;
+ gboolean _tmp73_ = FALSE;
+#line 447 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp72_ = fq_tag_path;
+#line 447 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp73_ = g_str_has_prefix (_tmp72_, TAG_PATH_SEPARATOR_STRING);
+#line 447 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp73_) {
+#line 3676 "Tag.c"
+ GeeTreeMap* _tmp74_ = NULL;
+ const gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ gboolean _tmp78_ = FALSE;
+#line 448 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp74_ = ancestry_dictionary;
+#line 448 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp75_ = fq_tag_path;
+#line 448 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp76_ = hierarchical_tag_utilities_hierarchical_to_flat (_tmp75_);
+#line 448 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp77_ = _tmp76_;
+#line 448 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp78_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp77_);
+#line 448 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp71_ = _tmp78_;
+#line 448 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp77_);
+#line 3696 "Tag.c"
+ } else {
+#line 447 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp71_ = FALSE;
+#line 3700 "Tag.c"
+ }
+#line 447 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp71_) {
+#line 3704 "Tag.c"
+ GeeSet* _tmp79_ = NULL;
+ GeeTreeMap* _tmp80_ = NULL;
+ const gchar* _tmp81_ = NULL;
+ gpointer _tmp82_ = NULL;
+ Tag* _tmp83_ = NULL;
+#line 449 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp79_ = victim_set;
+#line 449 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp80_ = ancestry_dictionary;
+#line 449 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp81_ = fq_tag_path;
+#line 449 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp82_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp81_);
+#line 449 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp83_ = (Tag*) _tmp82_;
+#line 449 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, GEE_TYPE_COLLECTION, GeeCollection), _tmp83_);
+#line 449 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp83_);
+#line 3724 "Tag.c"
+ }
+ }
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (fq_tag_path);
+#line 3729 "Tag.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_fq_tag_path_it);
+#line 3733 "Tag.c"
+ }
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeSet* _tmp84_ = NULL;
+ GeeIterator* _tmp85_ = NULL;
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp84_ = victim_set;
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp85_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp84_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_it = _tmp85_;
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 3747 "Tag.c"
+ GeeIterator* _tmp86_ = NULL;
+ gboolean _tmp87_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp88_ = NULL;
+ gpointer _tmp89_ = NULL;
+ GeeCollection* source_collection = NULL;
+ Tag* _tmp90_ = NULL;
+ GeeCollection* _tmp91_ = NULL;
+ gchar* flat_version = NULL;
+ Tag* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ TagSourceCollection* _tmp94_ = NULL;
+ const gchar* _tmp95_ = NULL;
+ Tag* _tmp96_ = NULL;
+ Tag* _tmp97_ = NULL;
+ GeeCollection* _tmp98_ = NULL;
+ GeeTreeMap* _tmp99_ = NULL;
+ Tag* _tmp100_ = NULL;
+ gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ Tag* _tmp103_ = NULL;
+ Tag* _tmp104_ = NULL;
+ GeeCollection* _tmp105_ = NULL;
+ GeeCollection* _tmp106_ = NULL;
+ GeeMultiMap* _tmp107_ = NULL;
+ GeeMultiMap* _tmp108_ = NULL;
+ Tag* _tmp109_ = NULL;
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp86_ = _tag_it;
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp87_ = gee_iterator_next (_tmp86_);
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp87_) {
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 3783 "Tag.c"
+ }
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp88_ = _tag_it;
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp89_ = gee_iterator_get (_tmp88_);
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = (Tag*) _tmp89_;
+#line 455 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp90_ = tag;
+#line 455 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp91_ = tag_get_sources (_tmp90_);
+#line 455 "/home/jens/Source/shotwell/src/Tag.vala"
+ source_collection = _tmp91_;
+#line 456 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp92_ = tag;
+#line 456 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp93_ = tag_get_user_visible_name (_tmp92_);
+#line 456 "/home/jens/Source/shotwell/src/Tag.vala"
+ flat_version = _tmp93_;
+#line 457 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp94_ = tag_global;
+#line 457 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp95_ = flat_version;
+#line 457 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp96_ = tag_source_collection_fetch_by_name (_tmp94_, _tmp95_, FALSE);
+#line 457 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp97_ = _tmp96_;
+#line 457 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp98_ = source_collection;
+#line 457 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_attach_many (_tmp97_, _tmp98_);
+#line 457 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp97_);
+#line 459 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp99_ = ancestry_dictionary;
+#line 459 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp100_ = tag;
+#line 459 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp101_ = tag_get_path (_tmp100_);
+#line 459 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp102_ = _tmp101_;
+#line 459 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp102_, NULL);
+#line 459 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp102_);
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp103_ = tag;
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp104_ = tag;
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp105_ = tag_get_sources (_tmp104_);
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp106_ = _tmp105_;
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp107_ = tag_detach_many (_tmp103_, _tmp106_);
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp108_ = _tmp107_;
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp108_);
+#line 461 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp106_);
+#line 462 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp109_ = tag;
+#line 462 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_source_destroy_orphan (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, TYPE_DATA_SOURCE, DataSource), TRUE);
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (flat_version);
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source_collection);
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 3855 "Tag.c"
+ }
+#line 454 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tag_it);
+#line 3859 "Tag.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp110_ = victim_set;
+#line 468 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp110_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 3865 "Tag.c"
+ {
+ GeeIterator* _fq_tag_path_it = NULL;
+ GeeTreeMap* _tmp111_ = NULL;
+ GeeSet* _tmp112_ = NULL;
+ GeeSet* _tmp113_ = NULL;
+ GeeSet* _tmp114_ = NULL;
+ GeeIterator* _tmp115_ = NULL;
+ GeeIterator* _tmp116_ = NULL;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp111_ = ancestry_dictionary;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp112_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp111_, GEE_TYPE_MAP, GeeMap));
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp113_ = _tmp112_;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp114_ = _tmp113_;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp115_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp114_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp116_ = _tmp115_;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp114_);
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _fq_tag_path_it = _tmp116_;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 3892 "Tag.c"
+ GeeIterator* _tmp117_ = NULL;
+ gboolean _tmp118_ = FALSE;
+ gchar* fq_tag_path = NULL;
+ GeeIterator* _tmp119_ = NULL;
+ gpointer _tmp120_ = NULL;
+ GeeList* parents_to_search = NULL;
+ const gchar* _tmp121_ = NULL;
+ GeeList* _tmp122_ = NULL;
+ Tag* curr_child = NULL;
+ GeeTreeMap* _tmp123_ = NULL;
+ const gchar* _tmp124_ = NULL;
+ gpointer _tmp125_ = NULL;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp117_ = _fq_tag_path_it;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp118_ = gee_iterator_next (_tmp117_);
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp118_) {
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 3913 "Tag.c"
+ }
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp119_ = _fq_tag_path_it;
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp120_ = gee_iterator_get (_tmp119_);
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ fq_tag_path = (gchar*) _tmp120_;
+#line 471 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp121_ = fq_tag_path;
+#line 471 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp122_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp121_);
+#line 471 "/home/jens/Source/shotwell/src/Tag.vala"
+ parents_to_search = _tmp122_;
+#line 474 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp123_ = ancestry_dictionary;
+#line 474 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp124_ = fq_tag_path;
+#line 474 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp125_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp123_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp124_);
+#line 474 "/home/jens/Source/shotwell/src/Tag.vala"
+ curr_child = (Tag*) _tmp125_;
+#line 3935 "Tag.c"
+ {
+ GeeList* _parent_path_list = NULL;
+ GeeList* _tmp126_ = NULL;
+ GeeList* _tmp127_ = NULL;
+ gint _parent_path_size = 0;
+ GeeList* _tmp128_ = NULL;
+ gint _tmp129_ = 0;
+ gint _tmp130_ = 0;
+ gint _parent_path_index = 0;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp126_ = parents_to_search;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp127_ = _g_object_ref0 (_tmp126_);
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _parent_path_list = _tmp127_;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp128_ = _parent_path_list;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp129_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp128_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp130_ = _tmp129_;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _parent_path_size = _tmp130_;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _parent_path_index = -1;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 3963 "Tag.c"
+ gint _tmp131_ = 0;
+ gint _tmp132_ = 0;
+ gint _tmp133_ = 0;
+ gchar* parent_path = NULL;
+ GeeList* _tmp134_ = NULL;
+ gint _tmp135_ = 0;
+ gpointer _tmp136_ = NULL;
+ gint child_ref_count = 0;
+ Tag* _tmp137_ = NULL;
+ gint _tmp138_ = 0;
+ gint parent_ref_count = 0;
+ GeeTreeMap* _tmp139_ = NULL;
+ const gchar* _tmp140_ = NULL;
+ gboolean _tmp141_ = FALSE;
+ gint _tmp147_ = 0;
+ gint _tmp148_ = 0;
+ GeeSet* _tmp151_ = NULL;
+ GeeTreeMap* _tmp152_ = NULL;
+ const gchar* _tmp153_ = NULL;
+ gpointer _tmp154_ = NULL;
+ Tag* _tmp155_ = NULL;
+ gboolean _tmp156_ = FALSE;
+ gboolean _tmp157_ = FALSE;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp131_ = _parent_path_index;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _parent_path_index = _tmp131_ + 1;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp132_ = _parent_path_index;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp133_ = _parent_path_size;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp132_ < _tmp133_)) {
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 3999 "Tag.c"
+ }
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp134_ = _parent_path_list;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp135_ = _parent_path_index;
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp136_ = gee_list_get (_tmp134_, _tmp135_);
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent_path = (gchar*) _tmp136_;
+#line 479 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp137_ = curr_child;
+#line 479 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp138_ = tag_get_sources_count (_tmp137_);
+#line 479 "/home/jens/Source/shotwell/src/Tag.vala"
+ child_ref_count = _tmp138_;
+#line 480 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent_ref_count = -1;
+#line 483 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp139_ = ancestry_dictionary;
+#line 483 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp140_ = parent_path;
+#line 483 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp141_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp139_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp140_);
+#line 483 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp141_) {
+#line 4025 "Tag.c"
+ GeeTreeMap* _tmp142_ = NULL;
+ const gchar* _tmp143_ = NULL;
+ gpointer _tmp144_ = NULL;
+ Tag* _tmp145_ = NULL;
+ gint _tmp146_ = 0;
+#line 485 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp142_ = ancestry_dictionary;
+#line 485 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp143_ = parent_path;
+#line 485 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp144_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp143_);
+#line 485 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp145_ = (Tag*) _tmp144_;
+#line 485 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp146_ = tag_get_sources_count (_tmp145_);
+#line 485 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent_ref_count = _tmp146_;
+#line 485 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp145_);
+#line 4045 "Tag.c"
+ }
+#line 489 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp147_ = child_ref_count;
+#line 489 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp148_ = parent_ref_count;
+#line 489 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp147_ > _tmp148_) {
+#line 4053 "Tag.c"
+ GeeSet* _tmp149_ = NULL;
+ Tag* _tmp150_ = NULL;
+#line 493 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp149_ = victim_set;
+#line 493 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp150_ = curr_child;
+#line 493 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp149_, GEE_TYPE_COLLECTION, GeeCollection), _tmp150_);
+#line 497 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (parent_path);
+#line 497 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 4066 "Tag.c"
+ }
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp151_ = victim_set;
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp152_ = ancestry_dictionary;
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp153_ = parent_path;
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp154_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp152_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp153_);
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp155_ = (Tag*) _tmp154_;
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp156_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp151_, GEE_TYPE_COLLECTION, GeeCollection), _tmp155_);
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp157_ = _tmp156_;
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp155_);
+#line 501 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp157_) {
+#line 4086 "Tag.c"
+ GeeSet* _tmp158_ = NULL;
+ Tag* _tmp159_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp158_ = victim_set;
+#line 503 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp159_ = curr_child;
+#line 503 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp158_, GEE_TYPE_COLLECTION, GeeCollection), _tmp159_);
+#line 504 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (parent_path);
+#line 504 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 4099 "Tag.c"
+ }
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (parent_path);
+#line 4103 "Tag.c"
+ }
+#line 476 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_parent_path_list);
+#line 4107 "Tag.c"
+ }
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (curr_child);
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (parents_to_search);
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (fq_tag_path);
+#line 4115 "Tag.c"
+ }
+#line 470 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_fq_tag_path_it);
+#line 4119 "Tag.c"
+ }
+ {
+ GeeIterator* _t_it = NULL;
+ GeeSet* _tmp160_ = NULL;
+ GeeIterator* _tmp161_ = NULL;
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp160_ = victim_set;
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp161_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp160_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _t_it = _tmp161_;
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 4133 "Tag.c"
+ GeeIterator* _tmp162_ = NULL;
+ gboolean _tmp163_ = FALSE;
+ Tag* t = NULL;
+ GeeIterator* _tmp164_ = NULL;
+ gpointer _tmp165_ = NULL;
+ GeeTreeMap* _tmp166_ = NULL;
+ Tag* _tmp167_ = NULL;
+ gchar* _tmp168_ = NULL;
+ gchar* _tmp169_ = NULL;
+ Tag* _tmp170_ = NULL;
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp162_ = _t_it;
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp163_ = gee_iterator_next (_tmp162_);
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp163_) {
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 4152 "Tag.c"
+ }
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp164_ = _t_it;
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp165_ = gee_iterator_get (_tmp164_);
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ t = (Tag*) _tmp165_;
+#line 511 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp166_ = ancestry_dictionary;
+#line 511 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp167_ = t;
+#line 511 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp168_ = tag_get_path (_tmp167_);
+#line 511 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp169_ = _tmp168_;
+#line 511 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp166_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp169_, NULL);
+#line 511 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp169_);
+#line 512 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp170_ = t;
+#line 512 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_source_destroy_orphan (G_TYPE_CHECK_INSTANCE_CAST (_tmp170_, TYPE_DATA_SOURCE, DataSource), TRUE);
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (t);
+#line 4178 "Tag.c"
+ }
+#line 510 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_t_it);
+#line 4182 "Tag.c"
+ }
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp171_ = tag_global;
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp172_ = ancestry_dictionary;
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp173_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp172_, GEE_TYPE_MAP, GeeMap));
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp174_ = _tmp173_;
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp175_ = _tmp174_;
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp176_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp171_, TYPE_DATA_COLLECTION, DataCollection), _tmp175_, NULL, NULL);
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp177_ = _tmp176_;
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp177_);
+#line 516 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp175_);
+#line 517 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp178_ = tag_global;
+#line 517 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp179_ = unlinked;
+#line 517 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_init_add_many_unlinked (G_TYPE_CHECK_INSTANCE_CAST (_tmp178_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp179_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 4208 "Tag.c"
+ {
+ GeeIterator* _t_it = NULL;
+ GeeTreeMap* _tmp180_ = NULL;
+ GeeCollection* _tmp181_ = NULL;
+ GeeCollection* _tmp182_ = NULL;
+ GeeCollection* _tmp183_ = NULL;
+ GeeIterator* _tmp184_ = NULL;
+ GeeIterator* _tmp185_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp180_ = ancestry_dictionary;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp181_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp180_, GEE_TYPE_MAP, GeeMap));
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp182_ = _tmp181_;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp183_ = _tmp182_;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp184_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp183_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp185_ = _tmp184_;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp183_);
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _t_it = _tmp185_;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 4235 "Tag.c"
+ GeeIterator* _tmp186_ = NULL;
+ gboolean _tmp187_ = FALSE;
+ Tag* t = NULL;
+ GeeIterator* _tmp188_ = NULL;
+ gpointer _tmp189_ = NULL;
+ gboolean _tmp190_ = FALSE;
+ Tag* _tmp191_ = NULL;
+ GeeList* _tmp192_ = NULL;
+ GeeList* _tmp193_ = NULL;
+ gint _tmp194_ = 0;
+ gint _tmp195_ = 0;
+ gboolean _tmp196_ = FALSE;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp186_ = _t_it;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp187_ = gee_iterator_next (_tmp186_);
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp187_) {
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 4256 "Tag.c"
+ }
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp188_ = _t_it;
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp189_ = gee_iterator_get (_tmp188_);
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ t = (Tag*) _tmp189_;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp191_ = t;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp192_ = tag_get_hierarchical_children (_tmp191_);
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp193_ = _tmp192_;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp194_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp193_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp195_ = _tmp194_;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp196_ = _tmp195_ < 1;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp193_);
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp196_) {
+#line 4280 "Tag.c"
+ Tag* _tmp197_ = NULL;
+ Tag* _tmp198_ = NULL;
+ Tag* _tmp199_ = NULL;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp197_ = t;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp198_ = tag_get_hierarchical_parent (_tmp197_);
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp199_ = _tmp198_;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp190_ = _tmp199_ == NULL;
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp199_);
+#line 4294 "Tag.c"
+ } else {
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp190_ = FALSE;
+#line 4298 "Tag.c"
+ }
+#line 523 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp190_) {
+#line 4302 "Tag.c"
+ Tag* _tmp200_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp200_ = t;
+#line 525 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_flatten (_tmp200_);
+#line 4308 "Tag.c"
+ }
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (t);
+#line 4312 "Tag.c"
+ }
+#line 521 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_t_it);
+#line 4316 "Tag.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (victim_set);
+#line 387 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (unlinked);
+#line 387 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (ancestry_dictionary);
+#line 387 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (rows);
+#line 4326 "Tag.c"
+}
+
+
+void tag_terminate (void) {
+}
+
+
+gint tag_compare_names (Tag* a, Tag* b) {
+ gint result = 0;
+ Tag* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ Tag* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 533 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (a), 0);
+#line 533 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (b), 0);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = a;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = a;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_get_name_collation_key (_tmp3_);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = b;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_OBJECT, DataObject));
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp7_;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = b;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = tag_get_name_collation_key (_tmp9_);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _tmp10_;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = string_precollated_compare (_tmp2_, _tmp5_, _tmp8_, _tmp11_);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp11_);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp5_);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp2_);
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp13_;
+#line 534 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 4394 "Tag.c"
+}
+
+
+gint tag_compare_user_visible_names (Tag* a, Tag* b) {
+ gint result = 0;
+ Tag* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ Tag* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 538 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (a), 0);
+#line 538 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (b), 0);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = a;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_get_user_visible_name (_tmp0_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = a;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_get_name_collation_key (_tmp3_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = b;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = tag_get_user_visible_name (_tmp6_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp7_;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = b;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = tag_get_name_collation_key (_tmp9_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _tmp10_;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = string_precollated_compare (_tmp2_, _tmp5_, _tmp8_, _tmp11_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp11_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp5_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp2_);
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp13_;
+#line 539 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 4458 "Tag.c"
+}
+
+
+guint tag_hash_name_string (const gchar* a) {
+ guint result = 0U;
+ const gchar* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 543 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (a != NULL, 0U);
+#line 544 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = a;
+#line 544 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = string_collated_hash (_tmp0_);
+#line 544 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp1_;
+#line 544 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 4476 "Tag.c"
+}
+
+
+gboolean tag_equal_name_strings (const gchar* a, const gchar* b) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 547 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (a != NULL, FALSE);
+#line 547 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (b != NULL, FALSE);
+#line 548 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = a;
+#line 548 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = b;
+#line 548 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = string_collated_equals (_tmp0_, _tmp1_);
+#line 548 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp2_;
+#line 548 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 4499 "Tag.c"
+}
+
+
+Tag* tag_for_path (const gchar* name) {
+ Tag* result = NULL;
+ Tag* tag = NULL;
+ TagSourceCollection* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ Tag* _tmp3_ = NULL;
+ Tag* _tmp7_ = NULL;
+ TagSourceCollection* _tmp16_ = NULL;
+ Tag* _tmp17_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 553 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 554 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_global;
+#line 554 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = name;
+#line 554 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_source_collection_fetch_by_name (_tmp0_, _tmp1_, TRUE);
+#line 554 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp2_;
+#line 555 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = tag;
+#line 555 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp3_ == NULL) {
+#line 4528 "Tag.c"
+ TagSourceCollection* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+#line 556 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_global;
+#line 556 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = name;
+#line 556 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = tag_source_collection_restore_tag_from_holding_tank (_tmp4_, _tmp5_);
+#line 556 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 556 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp6_;
+#line 4542 "Tag.c"
+ }
+#line 558 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = tag;
+#line 558 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp7_ != NULL) {
+#line 559 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = tag;
+#line 559 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 4552 "Tag.c"
+ }
+ {
+ TagRow* _tmp8_ = NULL;
+ TagTable* _tmp9_ = NULL;
+ TagTable* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ TagRow* _tmp12_ = NULL;
+ TagRow* _tmp13_ = NULL;
+ Tag* _tmp14_ = NULL;
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = tag_table_get_instance ();
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_;
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = name;
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = tag_table_add (_tmp10_, _tmp11_, &_inner_error_);
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp10_);
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp13_;
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 4580 "Tag.c"
+ goto __catch461_database_error;
+ }
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ return NULL;
+#line 4591 "Tag.c"
+ }
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = tag_new (_tmp8_, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 563 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp14_;
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (_tmp8_);
+#line 4601 "Tag.c"
+ }
+ goto __finally461;
+ __catch461_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp15_ = NULL;
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = err;
+#line 565 "/home/jens/Source/shotwell/src/Tag.vala"
+ app_window_database_error (_tmp15_);
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 4618 "Tag.c"
+ }
+ __finally461:
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 562 "/home/jens/Source/shotwell/src/Tag.vala"
+ return NULL;
+#line 4631 "Tag.c"
+ }
+#line 568 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = tag_global;
+#line 568 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = tag;
+#line 568 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_OBJECT, DataObject));
+#line 570 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = tag;
+#line 570 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 4643 "Tag.c"
+}
+
+
+GeeCollection* tag_get_terminal_tags (GeeCollection* tags) {
+ GeeCollection* result = NULL;
+ GeeSet* result_paths = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeArrayList* _result_ = NULL;
+ GeeArrayList* _tmp38_ = NULL;
+#line 573 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (tags), NULL);
+#line 574 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 574 "/home/jens/Source/shotwell/src/Tag.vala"
+ result_paths = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_SET, GeeSet);
+#line 4659 "Tag.c"
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tags;
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_it = _tmp2_;
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 4672 "Tag.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Tag* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ Tag* _tmp16_ = NULL;
+ Tag* _tmp17_ = NULL;
+ Tag* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ GeeSet* _tmp34_ = NULL;
+ Tag* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tag_it;
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp4_) {
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 4699 "Tag.c"
+ }
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tag_it;
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = (Tag*) _tmp6_;
+#line 578 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = tag;
+#line 578 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = tag_get_path (_tmp7_);
+#line 578 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _tmp8_;
+#line 578 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = g_str_has_prefix (_tmp9_, TAG_PATH_SEPARATOR_STRING);
+#line 578 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = !_tmp10_;
+#line 578 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp9_);
+#line 578 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp11_) {
+#line 4721 "Tag.c"
+ GeeSet* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 579 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = result_paths;
+#line 579 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = tag;
+#line 579 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = tag_get_path (_tmp13_);
+#line 579 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = _tmp14_;
+#line 579 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 579 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp15_);
+#line 580 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 580 "/home/jens/Source/shotwell/src/Tag.vala"
+ continue;
+#line 4742 "Tag.c"
+ }
+#line 586 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = tag;
+#line 586 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = tag_get_hierarchical_parent (_tmp16_);
+#line 586 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = _tmp17_;
+#line 586 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = _tmp18_ != NULL;
+#line 586 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp18_);
+#line 586 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp19_) {
+#line 4756 "Tag.c"
+ GeeSet* _tmp20_ = NULL;
+ Tag* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ Tag* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = result_paths;
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = tag;
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = tag_get_hierarchical_parent (_tmp21_);
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = _tmp22_;
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = tag_get_path (_tmp23_);
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = _tmp24_;
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = _tmp26_;
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp25_);
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp23_);
+#line 589 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp27_) {
+#line 4787 "Tag.c"
+ GeeSet* _tmp28_ = NULL;
+ Tag* _tmp29_ = NULL;
+ Tag* _tmp30_ = NULL;
+ Tag* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = result_paths;
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = tag;
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = tag_get_hierarchical_parent (_tmp29_);
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = _tmp30_;
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = tag_get_path (_tmp31_);
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = _tmp32_;
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection), _tmp33_);
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp33_);
+#line 590 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp31_);
+#line 4812 "Tag.c"
+ }
+ }
+#line 593 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = result_paths;
+#line 593 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = tag;
+#line 593 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = tag_get_path (_tmp35_);
+#line 593 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = _tmp36_;
+#line 593 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection), _tmp37_);
+#line 593 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp37_);
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 4829 "Tag.c"
+ }
+#line 576 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tag_it);
+#line 4833 "Tag.c"
+ }
+#line 596 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 596 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = _tmp38_;
+#line 4839 "Tag.c"
+ {
+ GeeIterator* _path_it = NULL;
+ GeeSet* _tmp39_ = NULL;
+ GeeIterator* _tmp40_ = NULL;
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = result_paths;
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _path_it = _tmp40_;
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 4852 "Tag.c"
+ GeeIterator* _tmp41_ = NULL;
+ gboolean _tmp42_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp43_ = NULL;
+ gpointer _tmp44_ = NULL;
+ TagSourceCollection* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ gboolean _tmp47_ = FALSE;
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = _path_it;
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = gee_iterator_next (_tmp41_);
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp42_) {
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 4869 "Tag.c"
+ }
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = _path_it;
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = gee_iterator_get (_tmp43_);
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ path = (gchar*) _tmp44_;
+#line 598 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = tag_global;
+#line 598 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp46_ = path;
+#line 598 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp47_ = tag_source_collection_exists (_tmp45_, _tmp46_, FALSE);
+#line 598 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp47_) {
+#line 4885 "Tag.c"
+ GeeArrayList* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ Tag* _tmp50_ = NULL;
+ Tag* _tmp51_ = NULL;
+#line 599 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp48_ = _result_;
+#line 599 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp49_ = path;
+#line 599 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp50_ = tag_for_path (_tmp49_);
+#line 599 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp51_ = _tmp50_;
+#line 599 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp51_);
+#line 599 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp51_);
+#line 4902 "Tag.c"
+ } else {
+ {
+ GeeIterator* _probed_tag_it = NULL;
+ GeeCollection* _tmp52_ = NULL;
+ GeeIterator* _tmp53_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp52_ = tags;
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp53_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _probed_tag_it = _tmp53_;
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 4916 "Tag.c"
+ GeeIterator* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ Tag* probed_tag = NULL;
+ GeeIterator* _tmp56_ = NULL;
+ gpointer _tmp57_ = NULL;
+ Tag* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gboolean _tmp62_ = FALSE;
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp54_ = _probed_tag_it;
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp55_ = gee_iterator_next (_tmp54_);
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp55_) {
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 4935 "Tag.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp56_ = _probed_tag_it;
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp57_ = gee_iterator_get (_tmp56_);
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ probed_tag = (Tag*) _tmp57_;
+#line 602 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp58_ = probed_tag;
+#line 602 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp59_ = tag_get_path (_tmp58_);
+#line 602 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp60_ = _tmp59_;
+#line 602 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp61_ = path;
+#line 602 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp62_ = g_strcmp0 (_tmp60_, _tmp61_) == 0;
+#line 602 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp60_);
+#line 602 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp62_) {
+#line 4957 "Tag.c"
+ GeeArrayList* _tmp63_ = NULL;
+ Tag* _tmp64_ = NULL;
+#line 603 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp63_ = _result_;
+#line 603 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp64_ = probed_tag;
+#line 603 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp64_);
+#line 4966 "Tag.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (probed_tag);
+#line 4970 "Tag.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_probed_tag_it);
+#line 4974 "Tag.c"
+ }
+ }
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (path);
+#line 4979 "Tag.c"
+ }
+#line 597 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_path_it);
+#line 4983 "Tag.c"
+ }
+#line 608 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_result_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 608 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (result_paths);
+#line 608 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 4991 "Tag.c"
+}
+
+
+static gint _tag_compare_user_visible_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = tag_compare_user_visible_names ((Tag*) a, (Tag*) b);
+#line 623 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5000 "Tag.c"
+}
+
+
+GeeList* tag_make_user_visible_tag_list (GeeCollection* tags) {
+ GeeList* result = NULL;
+ GeeHashSet* seen_tags = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeCollection* terminal_tags = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeArrayList* sorted_tags = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp19_ = NULL;
+#line 612 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (tags), NULL);
+#line 613 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 613 "/home/jens/Source/shotwell/src/Tag.vala"
+ seen_tags = _tmp0_;
+#line 614 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tags;
+#line 614 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_get_terminal_tags (_tmp1_);
+#line 614 "/home/jens/Source/shotwell/src/Tag.vala"
+ terminal_tags = _tmp2_;
+#line 615 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 615 "/home/jens/Source/shotwell/src/Tag.vala"
+ sorted_tags = _tmp3_;
+#line 5030 "Tag.c"
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = terminal_tags;
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_it = _tmp5_;
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 5043 "Tag.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gchar* user_visible_name = NULL;
+ Tag* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GeeHashSet* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _tag_it;
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp7_) {
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 5063 "Tag.c"
+ }
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tag_it;
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = (Tag*) _tmp9_;
+#line 617 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = tag;
+#line 617 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = tag_get_user_visible_name (_tmp10_);
+#line 617 "/home/jens/Source/shotwell/src/Tag.vala"
+ user_visible_name = _tmp11_;
+#line 618 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = seen_tags;
+#line 618 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = user_visible_name;
+#line 618 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp13_);
+#line 618 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp14_) {
+#line 5085 "Tag.c"
+ GeeArrayList* _tmp15_ = NULL;
+ Tag* _tmp16_ = NULL;
+ GeeHashSet* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 619 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = sorted_tags;
+#line 619 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = tag;
+#line 619 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp16_);
+#line 620 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = seen_tags;
+#line 620 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = user_visible_name;
+#line 620 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp18_);
+#line 5102 "Tag.c"
+ }
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (user_visible_name);
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 5108 "Tag.c"
+ }
+#line 616 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tag_it);
+#line 5112 "Tag.c"
+ }
+#line 623 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = sorted_tags;
+#line 623 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_list_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_LIST, GeeList), _tag_compare_user_visible_names_gcompare_data_func, NULL, NULL);
+#line 624 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (sorted_tags, GEE_TYPE_LIST, GeeList);
+#line 624 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (terminal_tags);
+#line 624 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (seen_tags);
+#line 624 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5126 "Tag.c"
+}
+
+
+gchar* tag_make_tag_markup_string (GeeList* tags, gint highlight_index) {
+ gchar* result = NULL;
+ GString* builder = NULL;
+ GString* _tmp0_ = NULL;
+ gint i = 0;
+ gboolean first = FALSE;
+ GString* _tmp27_ = NULL;
+ gchar* built = NULL;
+ GString* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 627 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (GEE_IS_LIST (tags), NULL);
+#line 628 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = g_string_new ("<small>");
+#line 628 "/home/jens/Source/shotwell/src/Tag.vala"
+ builder = _tmp0_;
+#line 629 "/home/jens/Source/shotwell/src/Tag.vala"
+ i = 0;
+#line 630 "/home/jens/Source/shotwell/src/Tag.vala"
+ first = TRUE;
+#line 5151 "Tag.c"
+ {
+ GeeList* _tag_list = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _tag_size = 0;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tag_index = 0;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tags;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_list = _tmp2_;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tag_list;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_size = _tmp5_;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_index = -1;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 5179 "Tag.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ Tag* tag = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ gchar* tag_name = NULL;
+ Tag* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* esc_tag_name = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GString* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp26_ = 0;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _tag_index;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_index = _tmp6_ + 1;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tag_index;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tag_size;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp7_ < _tmp8_)) {
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 5213 "Tag.c"
+ }
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _tag_list;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tag_index;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = gee_list_get (_tmp9_, _tmp10_);
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = (Tag*) _tmp11_;
+#line 632 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = tag;
+#line 632 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = tag_get_user_visible_name (_tmp12_);
+#line 632 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_name = _tmp13_;
+#line 633 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = tag_name;
+#line 633 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = guarded_markup_escape_text (_tmp14_);
+#line 633 "/home/jens/Source/shotwell/src/Tag.vala"
+ esc_tag_name = _tmp15_;
+#line 634 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = first;
+#line 634 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp16_) {
+#line 635 "/home/jens/Source/shotwell/src/Tag.vala"
+ first = FALSE;
+#line 5241 "Tag.c"
+ } else {
+ GString* _tmp17_ = NULL;
+#line 637 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = builder;
+#line 637 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_string_append (_tmp17_, TAG_TAG_LIST_SEPARATOR_STRING);
+#line 5248 "Tag.c"
+ }
+#line 638 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = highlight_index;
+#line 638 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = i;
+#line 638 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp18_ == _tmp19_) {
+#line 5256 "Tag.c"
+ GString* _tmp20_ = NULL;
+#line 639 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = builder;
+#line 639 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_string_append (_tmp20_, "<u>");
+#line 5262 "Tag.c"
+ }
+#line 640 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = builder;
+#line 640 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = esc_tag_name;
+#line 640 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_string_append (_tmp21_, _tmp22_);
+#line 641 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = highlight_index;
+#line 641 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = i;
+#line 641 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp23_ == _tmp24_) {
+#line 5276 "Tag.c"
+ GString* _tmp25_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = builder;
+#line 642 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_string_append (_tmp25_, "</u>");
+#line 5282 "Tag.c"
+ }
+#line 643 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = i;
+#line 643 "/home/jens/Source/shotwell/src/Tag.vala"
+ i = _tmp26_ + 1;
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (esc_tag_name);
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (tag_name);
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 5294 "Tag.c"
+ }
+#line 631 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tag_list);
+#line 5298 "Tag.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = builder;
+#line 646 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_string_append (_tmp27_, "</small>");
+#line 647 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = builder;
+#line 647 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = _tmp28_->str;
+#line 647 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 647 "/home/jens/Source/shotwell/src/Tag.vala"
+ built = _tmp30_;
+#line 648 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = built;
+#line 648 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_string_free0 (builder);
+#line 648 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5318 "Tag.c"
+}
+
+
+gchar* tag_prep_tag_name (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 653 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 654 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = name;
+#line 654 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = prepare_input_text (_tmp0_, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT, DEFAULT_USER_TEXT_INPUT_LENGTH);
+#line 654 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp1_;
+#line 654 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5336 "Tag.c"
+}
+
+
+static void _vala_array_add293 (gchar*** array, int* length, int* size, gchar* value) {
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ if ((*length) == (*size)) {
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 5347 "Tag.c"
+ }
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ (*array)[(*length)++] = value;
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ (*array)[*length] = NULL;
+#line 5353 "Tag.c"
+}
+
+
+gchar** tag_prep_tag_names (gchar** names, int names_length1, int* result_length1) {
+ gchar** result = NULL;
+ gchar** _result_ = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+#line 660 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 660 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = _tmp0_;
+#line 660 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result__length1 = 0;
+#line 660 "/home/jens/Source/shotwell/src/Tag.vala"
+ __result__size_ = _result__length1;
+#line 5373 "Tag.c"
+ {
+ gint ctr = 0;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ ctr = 0;
+#line 5378 "Tag.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = TRUE;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 5385 "Tag.c"
+ gint _tmp3_ = 0;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ gchar* new_name = NULL;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp1_) {
+#line 5398 "Tag.c"
+ gint _tmp2_ = 0;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = ctr;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ ctr = _tmp2_ + 1;
+#line 5404 "Tag.c"
+ }
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = FALSE;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = ctr;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = names;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4__length1 = names_length1;
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp3_ < _tmp4__length1)) {
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 5418 "Tag.c"
+ }
+#line 663 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = names;
+#line 663 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5__length1 = names_length1;
+#line 663 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = ctr;
+#line 663 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 663 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = tag_prep_tag_name (_tmp7_);
+#line 663 "/home/jens/Source/shotwell/src/Tag.vala"
+ new_name = _tmp8_;
+#line 664 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = new_name;
+#line 664 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp9_ != NULL) {
+#line 5436 "Tag.c"
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _result_;
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10__length1 = _result__length1;
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = new_name;
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 665 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_array_add293 (&_result_, &_result__length1, &__result__size_, _tmp12_);
+#line 5451 "Tag.c"
+ }
+#line 662 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_name);
+#line 5455 "Tag.c"
+ }
+ }
+ }
+#line 668 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _result_;
+#line 668 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13__length1 = _result__length1;
+#line 668 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (result_length1) {
+#line 668 "/home/jens/Source/shotwell/src/Tag.vala"
+ *result_length1 = _tmp13__length1;
+#line 5467 "Tag.c"
+ }
+#line 668 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp13_;
+#line 668 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5473 "Tag.c"
+}
+
+
+static void tag_set_raw_flat_name (Tag* self, const gchar* name) {
+ gchar* prepped_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ TagRow* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ Alteration* _tmp14_ = NULL;
+ Alteration* _tmp15_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 671 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 671 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (name != NULL);
+#line 672 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = name;
+#line 672 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_prep_tag_name (_tmp0_);
+#line 672 "/home/jens/Source/shotwell/src/Tag.vala"
+ prepped_name = _tmp1_;
+#line 674 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = prepped_name;
+#line 674 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp2_ != NULL, "prepped_name != null");
+#line 675 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = prepped_name;
+#line 675 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = g_str_has_prefix (_tmp3_, TAG_PATH_SEPARATOR_STRING);
+#line 675 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (!_tmp4_, "!prepped_name.has_prefix(Tag.PATH_SEPARATOR_STRING)");
+#line 5510 "Tag.c"
+ {
+ TagTable* _tmp5_ = NULL;
+ TagTable* _tmp6_ = NULL;
+ TagRow* _tmp7_ = NULL;
+ TagID _tmp8_ = {0};
+ const gchar* _tmp9_ = NULL;
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = tag_table_get_instance ();
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _tmp5_;
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = self->priv->row;
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp7_->tag_id;
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = prepped_name;
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_table_rename (_tmp6_, &_tmp8_, _tmp9_, &_inner_error_);
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp6_);
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5535 "Tag.c"
+ goto __catch462_database_error;
+ }
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_name);
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 678 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 5546 "Tag.c"
+ }
+ }
+ goto __finally462;
+ __catch462_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp10_ = NULL;
+#line 677 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 677 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 680 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = err;
+#line 680 "/home/jens/Source/shotwell/src/Tag.vala"
+ app_window_database_error (_tmp10_);
+#line 681 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 681 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_name);
+#line 681 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 5568 "Tag.c"
+ }
+ __finally462:
+#line 677 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 677 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_name);
+#line 677 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 677 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 677 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 5581 "Tag.c"
+ }
+#line 684 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = self->priv->row;
+#line 684 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = prepped_name;
+#line 684 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 684 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp11_->name);
+#line 684 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_->name = _tmp13_;
+#line 685 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (self->priv->name_collation_key);
+#line 685 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->name_collation_key = NULL;
+#line 687 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_update_indexable_keywords (self);
+#line 689 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = alteration_new_from_list ("metadata:name, indexable:keywords");
+#line 689 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = _tmp14_;
+#line 689 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp15_);
+#line 689 "/home/jens/Source/shotwell/src/Tag.vala"
+ _alteration_unref0 (_tmp15_);
+#line 671 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_name);
+#line 5609 "Tag.c"
+}
+
+
+static void tag_set_raw_path (Tag* self, const gchar* path, gboolean suppress_notify) {
+ gchar* prepped_path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ TagSourceCollection* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ TagRow* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 692 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 692 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (path != NULL);
+#line 693 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = path;
+#line 693 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_prep_tag_name (_tmp0_);
+#line 693 "/home/jens/Source/shotwell/src/Tag.vala"
+ prepped_path = _tmp1_;
+#line 695 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = prepped_path;
+#line 695 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp2_ != NULL, "prepped_path != null");
+#line 696 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = prepped_path;
+#line 696 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = g_str_has_prefix (_tmp3_, TAG_PATH_SEPARATOR_STRING);
+#line 696 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp4_, "prepped_path.has_prefix(Tag.PATH_SEPARATOR_STRING)");
+#line 697 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = tag_global;
+#line 697 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = prepped_path;
+#line 697 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = tag_source_collection_exists (_tmp5_, _tmp6_, FALSE);
+#line 697 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (!_tmp7_, "!Tag.global.exists(prepped_path)");
+#line 5656 "Tag.c"
+ {
+ TagTable* _tmp8_ = NULL;
+ TagTable* _tmp9_ = NULL;
+ TagRow* _tmp10_ = NULL;
+ TagID _tmp11_ = {0};
+ const gchar* _tmp12_ = NULL;
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = tag_table_get_instance ();
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _tmp8_;
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = self->priv->row;
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _tmp10_->tag_id;
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = prepped_path;
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_table_rename (_tmp9_, &_tmp11_, _tmp12_, &_inner_error_);
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp9_);
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5681 "Tag.c"
+ goto __catch463_database_error;
+ }
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_path);
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 700 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 5692 "Tag.c"
+ }
+ }
+ goto __finally463;
+ __catch463_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp13_ = NULL;
+#line 699 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 699 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 702 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = err;
+#line 702 "/home/jens/Source/shotwell/src/Tag.vala"
+ app_window_database_error (_tmp13_);
+#line 703 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 703 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_path);
+#line 703 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 5714 "Tag.c"
+ }
+ __finally463:
+#line 699 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 699 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_path);
+#line 699 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 699 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 699 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 5727 "Tag.c"
+ }
+#line 706 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = self->priv->row;
+#line 706 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = prepped_path;
+#line 706 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 706 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp14_->name);
+#line 706 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_->name = _tmp16_;
+#line 707 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (self->priv->name_collation_key);
+#line 707 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->name_collation_key = NULL;
+#line 709 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = suppress_notify;
+#line 709 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp17_) {
+#line 5747 "Tag.c"
+ Alteration* _tmp18_ = NULL;
+ Alteration* _tmp19_ = NULL;
+#line 710 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_update_indexable_keywords (self);
+#line 711 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = alteration_new_from_list ("metadata:name, indexable:keywords");
+#line 711 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = _tmp18_;
+#line 711 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp19_);
+#line 711 "/home/jens/Source/shotwell/src/Tag.vala"
+ _alteration_unref0 (_tmp19_);
+#line 5760 "Tag.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prepped_path);
+#line 5764 "Tag.c"
+}
+
+
+static gchar* tag_real_get_typename (DataSource* base) {
+ Tag * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 715 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 716 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = g_strdup (TAG_TYPENAME);
+#line 716 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp0_;
+#line 716 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5780 "Tag.c"
+}
+
+
+static gint64 tag_real_get_instance_id (DataSource* base) {
+ Tag * self;
+ gint64 result = 0LL;
+ TagID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+#line 719 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 720 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_get_tag_id (self, &_tmp0_);
+#line 720 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_.id;
+#line 720 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp1_;
+#line 720 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5799 "Tag.c"
+}
+
+
+static gchar* tag_real_get_name (DataObject* base) {
+ Tag * self;
+ gchar* result = NULL;
+ TagRow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 723 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 724 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->row;
+#line 724 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_->name;
+#line 724 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 724 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp2_;
+#line 724 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5821 "Tag.c"
+}
+
+
+gchar* tag_get_path (Tag* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 727 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 728 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 728 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp0_;
+#line 728 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5836 "Tag.c"
+}
+
+
+gchar* tag_get_user_visible_name (Tag* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 731 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 732 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_path (self);
+#line 732 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 732 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = hierarchical_tag_utilities_get_basename (_tmp1_);
+#line 732 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 732 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp1_);
+#line 732 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp3_;
+#line 732 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5862 "Tag.c"
+}
+
+
+gchar* tag_get_searchable_name (Tag* self) {
+ gchar* result = NULL;
+ gchar* istring = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 735 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_path (self);
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = hierarchical_tag_utilities_get_basename (_tmp1_);
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = g_utf8_strdown (_tmp3_, (gssize) -1);
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp3_);
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp1_);
+#line 736 "/home/jens/Source/shotwell/src/Tag.vala"
+ istring = _tmp5_;
+#line 737 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = string_remove_diacritics (istring);
+#line 737 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp6_;
+#line 737 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (istring);
+#line 737 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 5904 "Tag.c"
+}
+
+
+void tag_flatten (Tag* self) {
+ Tag* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 740 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 741 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_hierarchical_parent (self);
+#line 741 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 741 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp1_ == NULL, "get_hierarchical_parent() == null");
+#line 741 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp1_);
+#line 743 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_get_user_visible_name (self);
+#line 743 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 743 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_set_raw_flat_name (self, _tmp3_);
+#line 743 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp3_);
+#line 5931 "Tag.c"
+}
+
+
+void tag_promote (Tag* self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 747 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_path (self);
+#line 747 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 747 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = g_str_has_prefix (_tmp1_, TAG_PATH_SEPARATOR_STRING);
+#line 747 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 747 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp1_);
+#line 747 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp3_) {
+#line 748 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 5960 "Tag.c"
+ }
+#line 750 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_get_path (self);
+#line 750 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 750 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp5_, NULL);
+#line 750 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tmp6_;
+#line 750 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_set_raw_path (self, _tmp7_, FALSE);
+#line 750 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp7_);
+#line 750 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp5_);
+#line 5976 "Tag.c"
+}
+
+
+Tag* tag_get_hierarchical_parent (Tag* self) {
+ Tag* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GeeList* components = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gchar* parent_path = NULL;
+ gchar* _tmp14_ = NULL;
+ TagSourceCollection* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 753 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 755 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_path (self);
+#line 755 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 755 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = g_str_has_prefix (_tmp1_, TAG_PATH_SEPARATOR_STRING);
+#line 755 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = !_tmp2_;
+#line 755 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp1_);
+#line 755 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp3_) {
+#line 756 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = NULL;
+#line 756 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6020 "Tag.c"
+ }
+#line 758 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_get_path (self);
+#line 758 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 758 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = hierarchical_tag_utilities_enumerate_path_components (_tmp5_);
+#line 758 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tmp6_;
+#line 758 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp5_);
+#line 758 "/home/jens/Source/shotwell/src/Tag.vala"
+ components = _tmp7_;
+#line 761 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = components;
+#line 761 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 761 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_;
+#line 761 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp10_ > 0, "components.size > 0");
+#line 763 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = components;
+#line 763 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 763 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 763 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp13_ == 1) {
+#line 764 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = NULL;
+#line 764 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (components);
+#line 764 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6056 "Tag.c"
+ }
+#line 767 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = g_strdup ("");
+#line 767 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent_path = _tmp14_;
+#line 6062 "Tag.c"
+ {
+ gint i = 0;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ i = 0;
+#line 6067 "Tag.c"
+ {
+ gboolean _tmp15_ = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = TRUE;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 6074 "Tag.c"
+ gint _tmp17_ = 0;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ const gchar* _tmp21_ = NULL;
+ GeeList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gpointer _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp15_) {
+#line 6089 "Tag.c"
+ gint _tmp16_ = 0;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = i;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ i = _tmp16_ + 1;
+#line 6095 "Tag.c"
+ }
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = FALSE;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = i;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = components;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = _tmp19_;
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp17_ < (_tmp20_ - 1))) {
+#line 768 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 6111 "Tag.c"
+ }
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = parent_path;
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = components;
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = i;
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = gee_list_get (_tmp22_, _tmp23_);
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = (gchar*) _tmp24_;
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp25_, NULL);
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = _tmp26_;
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = g_strconcat (_tmp21_, _tmp27_, NULL);
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (parent_path);
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent_path = _tmp28_;
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp27_);
+#line 769 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp25_);
+#line 6137 "Tag.c"
+ }
+ }
+ }
+#line 771 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = tag_global;
+#line 771 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = parent_path;
+#line 771 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = tag_source_collection_exists (_tmp29_, _tmp30_, FALSE);
+#line 771 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp31_) {
+#line 6149 "Tag.c"
+ const gchar* _tmp32_ = NULL;
+ Tag* _tmp33_ = NULL;
+#line 772 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = parent_path;
+#line 772 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = tag_for_path (_tmp32_);
+#line 772 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp33_;
+#line 772 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (parent_path);
+#line 772 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (components);
+#line 772 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6164 "Tag.c"
+ } else {
+#line 774 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = NULL;
+#line 774 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (parent_path);
+#line 774 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (components);
+#line 774 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6174 "Tag.c"
+ }
+#line 753 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (parent_path);
+#line 753 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (components);
+#line 6180 "Tag.c"
+}
+
+
+gint tag_get_attachment_count (Tag* self, MediaSource* source) {
+ gint result = 0;
+ MediaSource* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gint _result_ = 0;
+#line 777 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), 0);
+#line 777 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), 0);
+#line 779 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source;
+#line 779 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_contains (self, _tmp0_);
+#line 779 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp1_) {
+#line 780 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = 0;
+#line 780 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6203 "Tag.c"
+ }
+#line 783 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = 1;
+#line 6207 "Tag.c"
+ {
+ GeeList* _child_list = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _child_size = 0;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _child_index = 0;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_get_hierarchical_children (self);
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_list = _tmp2_;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _child_list;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_size = _tmp5_;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_index = -1;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 6232 "Tag.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ Tag* child = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _child_index;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_index = _tmp6_ + 1;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _child_index;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _child_size;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp7_ < _tmp8_)) {
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 6255 "Tag.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _child_list;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _child_index;
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = gee_list_get (_tmp9_, _tmp10_);
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ child = (Tag*) _tmp11_;
+#line 787 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = child;
+#line 787 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = source;
+#line 787 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = tag_contains (_tmp12_, _tmp13_);
+#line 787 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp14_) {
+#line 6273 "Tag.c"
+ gint _tmp15_ = 0;
+#line 788 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = _result_;
+#line 788 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = _tmp15_ + 1;
+#line 6279 "Tag.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (child);
+#line 6283 "Tag.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_child_list);
+#line 6287 "Tag.c"
+ }
+#line 790 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _result_;
+#line 790 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6293 "Tag.c"
+}
+
+
+/**
+ * gets all hierarchical children of a tag recursively; tags are enumerated from most-derived
+ * to least-derived
+ */
+GeeList* tag_get_hierarchical_children (Tag* self) {
+ GeeList* result = NULL;
+ GeeArrayList* _result_ = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* result_reversed = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GeeTreeSet* forward_sorted_paths = NULL;
+ GeeTreeSet* _tmp6_ = NULL;
+ gchar* target_path = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 797 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 798 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 798 "/home/jens/Source/shotwell/src/Tag.vala"
+ _result_ = _tmp0_;
+#line 799 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 799 "/home/jens/Source/shotwell/src/Tag.vala"
+ result_reversed = _tmp1_;
+#line 802 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_get_path (self);
+#line 802 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 802 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = g_str_has_prefix (_tmp3_, TAG_PATH_SEPARATOR_STRING);
+#line 802 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = !_tmp4_;
+#line 802 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp3_);
+#line 802 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp5_) {
+#line 803 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_result_, GEE_TYPE_LIST, GeeList);
+#line 803 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (result_reversed);
+#line 803 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6346 "Tag.c"
+ }
+#line 807 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 807 "/home/jens/Source/shotwell/src/Tag.vala"
+ forward_sorted_paths = _tmp6_;
+#line 809 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = tag_get_path (self);
+#line 809 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp7_;
+#line 809 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = g_strconcat (_tmp8_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 809 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_;
+#line 809 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 809 "/home/jens/Source/shotwell/src/Tag.vala"
+ target_path = _tmp10_;
+#line 6364 "Tag.c"
+ {
+ GeeIterator* _path_it = NULL;
+ TagSourceCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = tag_global;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = tag_source_collection_get_all_names (_tmp11_);
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = _tmp14_;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp13_);
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _path_it = _tmp15_;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 6388 "Tag.c"
+ GeeIterator* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _path_it;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = gee_iterator_next (_tmp16_);
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp17_) {
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 6405 "Tag.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = _path_it;
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ path = (gchar*) _tmp19_;
+#line 811 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = path;
+#line 811 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = target_path;
+#line 811 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = g_str_has_prefix (_tmp20_, _tmp21_);
+#line 811 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp22_) {
+#line 6421 "Tag.c"
+ GeeTreeSet* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+#line 812 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = forward_sorted_paths;
+#line 812 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = path;
+#line 812 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp24_);
+#line 6430 "Tag.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (path);
+#line 6434 "Tag.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_path_it);
+#line 6438 "Tag.c"
+ }
+ {
+ GeeIterator* _tmp_it = NULL;
+ GeeTreeSet* _tmp25_ = NULL;
+ GeeIterator* _tmp26_ = NULL;
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = forward_sorted_paths;
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp_it = _tmp26_;
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 6452 "Tag.c"
+ GeeIterator* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gchar* tmp = NULL;
+ GeeIterator* _tmp29_ = NULL;
+ gpointer _tmp30_ = NULL;
+ GeeArrayList* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ Tag* _tmp33_ = NULL;
+ Tag* _tmp34_ = NULL;
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = _tmp_it;
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = gee_iterator_next (_tmp27_);
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp28_) {
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 6470 "Tag.c"
+ }
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = _tmp_it;
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = gee_iterator_get (_tmp29_);
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ tmp = (gchar*) _tmp30_;
+#line 816 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = result_reversed;
+#line 816 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = tmp;
+#line 816 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = tag_for_path (_tmp32_);
+#line 816 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = _tmp33_;
+#line 816 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp34_);
+#line 816 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp34_);
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (tmp);
+#line 6492 "Tag.c"
+ }
+#line 815 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp_it);
+#line 6496 "Tag.c"
+ }
+ {
+ gint index = 0;
+ GeeArrayList* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = result_reversed;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = _tmp36_;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ index = _tmp37_ - 1;
+#line 6511 "Tag.c"
+ {
+ gboolean _tmp38_ = FALSE;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = TRUE;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 6518 "Tag.c"
+ gint _tmp40_ = 0;
+ GeeArrayList* _tmp41_ = NULL;
+ GeeArrayList* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gpointer _tmp44_ = NULL;
+ Tag* _tmp45_ = NULL;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp38_) {
+#line 6527 "Tag.c"
+ gint _tmp39_ = 0;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = index;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ index = _tmp39_ - 1;
+#line 6533 "Tag.c"
+ }
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = FALSE;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = index;
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp40_ >= 0)) {
+#line 819 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 6543 "Tag.c"
+ }
+#line 820 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = _result_;
+#line 820 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = result_reversed;
+#line 820 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = index;
+#line 820 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp43_);
+#line 820 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = (Tag*) _tmp44_;
+#line 820 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp45_);
+#line 820 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp45_);
+#line 6559 "Tag.c"
+ }
+ }
+ }
+#line 823 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_result_, GEE_TYPE_LIST, GeeList);
+#line 823 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (target_path);
+#line 823 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (forward_sorted_paths);
+#line 823 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (result_reversed);
+#line 823 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6573 "Tag.c"
+}
+
+
+static gchar* tag_get_next_untitled_tag_name (const gchar* _prefix) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* prefix = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* candidate_name = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ guint64 counter = 0ULL;
+#line 829 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _prefix;
+#line 829 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp1_ != NULL) {
+#line 6591 "Tag.c"
+ const gchar* _tmp2_ = NULL;
+#line 829 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _prefix;
+#line 829 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = _tmp2_;
+#line 6597 "Tag.c"
+ } else {
+#line 829 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = "";
+#line 6601 "Tag.c"
+ }
+#line 829 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = g_strdup (_tmp0_);
+#line 829 "/home/jens/Source/shotwell/src/Tag.vala"
+ prefix = _tmp3_;
+#line 830 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _ ("untitled");
+#line 830 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 830 "/home/jens/Source/shotwell/src/Tag.vala"
+ candidate_name = _tmp5_;
+#line 831 "/home/jens/Source/shotwell/src/Tag.vala"
+ counter = (guint64) 0;
+#line 6615 "Tag.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 832 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = TRUE;
+#line 832 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 6622 "Tag.c"
+ gchar* _tmp8_ = NULL;
+ guint64 _tmp9_ = 0ULL;
+ gchar* path_candidate = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ TagSourceCollection* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ guint64 _tmp24_ = 0ULL;
+#line 832 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp6_) {
+#line 6638 "Tag.c"
+ guint64 _tmp7_ = 0ULL;
+#line 840 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = counter;
+#line 840 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp7_ < G_MAXUINT64)) {
+#line 840 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 6646 "Tag.c"
+ }
+ }
+#line 832 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = FALSE;
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = counter;
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp9_ == ((guint64) 0)) {
+#line 6655 "Tag.c"
+ gchar* _tmp10_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = g_strdup ("");
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp10_;
+#line 6663 "Tag.c"
+ } else {
+ guint64 _tmp11_ = 0ULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = counter;
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = g_strdup_printf ("%" G_GUINT64_FORMAT, _tmp11_);
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = g_strconcat (" ", _tmp13_, NULL);
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp14_;
+#line 834 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp13_);
+#line 6683 "Tag.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = prefix;
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = candidate_name;
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = g_strconcat (_tmp15_, _tmp16_, NULL);
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = _tmp17_;
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = g_strconcat (_tmp18_, _tmp8_, NULL);
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = _tmp19_;
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp18_);
+#line 833 "/home/jens/Source/shotwell/src/Tag.vala"
+ path_candidate = _tmp20_;
+#line 836 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = tag_global;
+#line 836 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = path_candidate;
+#line 836 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = tag_source_collection_exists (_tmp21_, _tmp22_, FALSE);
+#line 836 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp23_) {
+#line 837 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = path_candidate;
+#line 837 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 837 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (candidate_name);
+#line 837 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prefix);
+#line 837 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6719 "Tag.c"
+ }
+#line 839 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = counter;
+#line 839 "/home/jens/Source/shotwell/src/Tag.vala"
+ counter = _tmp24_ + 1;
+#line 832 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (path_candidate);
+#line 832 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 6729 "Tag.c"
+ }
+ }
+#line 843 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_assert_not_reached ();
+#line 828 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (candidate_name);
+#line 828 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (prefix);
+#line 6738 "Tag.c"
+}
+
+
+Tag* tag_create_new_child (Tag* self) {
+ Tag* result = NULL;
+ gchar* path_prefix = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ Tag* _tmp14_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 847 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_path (self);
+#line 847 "/home/jens/Source/shotwell/src/Tag.vala"
+ path_prefix = _tmp0_;
+#line 849 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = path_prefix;
+#line 849 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = g_str_has_prefix (_tmp1_, TAG_PATH_SEPARATOR_STRING);
+#line 849 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp2_) {
+#line 6767 "Tag.c"
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 850 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = tag_get_path (self);
+#line 850 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _tmp3_;
+#line 850 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = hierarchical_tag_utilities_flat_to_hierarchical (_tmp4_);
+#line 850 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _tmp5_;
+#line 850 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_set_raw_path (self, _tmp6_, FALSE);
+#line 850 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp6_);
+#line 850 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp4_);
+#line 852 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = tag_get_path (self);
+#line 852 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (path_prefix);
+#line 852 "/home/jens/Source/shotwell/src/Tag.vala"
+ path_prefix = _tmp7_;
+#line 6793 "Tag.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = path_prefix;
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = g_strconcat (_tmp8_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_;
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = tag_get_next_untitled_tag_name (_tmp10_);
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = _tmp11_;
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = tag_for_path (_tmp12_);
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = _tmp13_;
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp12_);
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp10_);
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp14_;
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (path_prefix);
+#line 855 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6819 "Tag.c"
+}
+
+
+Tag* tag_create_new_root (void) {
+ Tag* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ Tag* _tmp3_ = NULL;
+#line 859 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_next_untitled_tag_name (NULL);
+#line 859 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 859 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_for_path (_tmp1_);
+#line 859 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 859 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp1_);
+#line 859 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp3_;
+#line 859 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6843 "Tag.c"
+}
+
+
+gchar* tag_get_name_collation_key (Tag* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 862 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 863 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->name_collation_key;
+#line 863 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp0_ == NULL) {
+#line 6858 "Tag.c"
+ TagRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 864 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = self->priv->row;
+#line 864 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_->name;
+#line 864 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = g_utf8_collate_key (_tmp2_, (gssize) -1);
+#line 864 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (self->priv->name_collation_key);
+#line 864 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->name_collation_key = _tmp3_;
+#line 6872 "Tag.c"
+ }
+#line 866 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = self->priv->name_collation_key;
+#line 866 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 866 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp5_;
+#line 866 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6882 "Tag.c"
+}
+
+
+static gchar* tag_real_to_string (DataObject* base) {
+ Tag * self;
+ gchar* result = NULL;
+ TagRow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+#line 869 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 870 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->row;
+#line 870 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_->name;
+#line 870 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = self->priv->media_views;
+#line 870 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection));
+#line 870 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = g_strdup_printf ("Tag %s (%d sources)", _tmp1_, _tmp3_);
+#line 870 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp4_;
+#line 870 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6910 "Tag.c"
+}
+
+
+static gboolean tag_real_equals (DataSource* base, DataSource* source) {
+ Tag * self;
+ gboolean result = FALSE;
+ Tag* tag = NULL;
+ DataSource* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 873 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 873 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail ((source == NULL) || IS_DATA_SOURCE (source), FALSE);
+#line 875 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source;
+#line 875 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_TAG) ? ((Tag*) _tmp0_) : NULL);
+#line 875 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp1_;
+#line 876 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag;
+#line 876 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp2_ != NULL) {
+#line 6937 "Tag.c"
+ Tag* _tmp3_ = NULL;
+#line 877 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = tag;
+#line 877 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp3_ != self) {
+#line 6943 "Tag.c"
+ Tag* _tmp4_ = NULL;
+ TagRow* _tmp5_ = NULL;
+ TagID _tmp6_ = {0};
+ gint64 _tmp7_ = 0LL;
+ TagRow* _tmp8_ = NULL;
+ TagID _tmp9_ = {0};
+ gint64 _tmp10_ = 0LL;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_->priv->row;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _tmp5_->tag_id;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tmp6_.id;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = self->priv->row;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _tmp8_->tag_id;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_.id;
+#line 878 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp7_ != _tmp10_, "tag.row.tag_id.id != row.tag_id.id");
+#line 6967 "Tag.c"
+ }
+ }
+#line 882 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = source;
+#line 882 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = DATA_SOURCE_CLASS (tag_parent_class)->equals (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource), _tmp11_);
+#line 882 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp12_;
+#line 882 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (tag);
+#line 882 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 6980 "Tag.c"
+}
+
+
+void tag_get_tag_id (Tag* self, TagID* result) {
+ TagRow* _tmp0_ = NULL;
+ TagID _tmp1_ = {0};
+#line 885 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 886 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->row;
+#line 886 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_->tag_id;
+#line 886 "/home/jens/Source/shotwell/src/Tag.vala"
+ *result = _tmp1_;
+#line 886 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 6997 "Tag.c"
+}
+
+
+static SourceSnapshot* tag_real_save_snapshot (DataSource* base) {
+ Tag * self;
+ SourceSnapshot* result = NULL;
+ TagTagSnapshot* _tmp0_ = NULL;
+#line 889 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 890 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_tag_snapshot_new (self);
+#line 890 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_SNAPSHOT, SourceSnapshot);
+#line 890 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7013 "Tag.c"
+}
+
+
+static SourceProxy* tag_real_get_proxy (Proxyable* base) {
+ Tag * self;
+ SourceProxy* result = NULL;
+ TagTagProxy* _tmp0_ = NULL;
+#line 893 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 894 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_tag_proxy_new (self);
+#line 894 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_PROXY, SourceProxy);
+#line 894 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7029 "Tag.c"
+}
+
+
+Tag* tag_reconstitute (gint64 object_id, TagRow* row) {
+ Tag* result = NULL;
+ Tag* tag = NULL;
+ TagRow* _tmp8_ = NULL;
+ gint64 _tmp9_ = 0LL;
+ Tag* _tmp10_ = NULL;
+ TagSourceCollection* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 897 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG_ROW (row), NULL);
+#line 7045 "Tag.c"
+ {
+ TagID _tmp0_ = {0};
+ TagTable* _tmp1_ = NULL;
+ TagTable* _tmp2_ = NULL;
+ TagRow* _tmp3_ = NULL;
+ TagID _tmp4_ = {0};
+ TagID _tmp5_ = {0};
+ TagRow* _tmp6_ = NULL;
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_table_get_instance ();
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = row;
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_table_create_from_row (_tmp2_, _tmp3_, &_tmp4_, &_inner_error_);
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp2_);
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = _tmp5_;
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 7072 "Tag.c"
+ goto __catch464_database_error;
+ }
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ return NULL;
+#line 7081 "Tag.c"
+ }
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = row;
+#line 900 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_->tag_id = _tmp0_;
+#line 7087 "Tag.c"
+ }
+ goto __finally464;
+ __catch464_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+#line 899 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 899 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 902 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = err;
+#line 902 "/home/jens/Source/shotwell/src/Tag.vala"
+ app_window_database_error (_tmp7_);
+#line 899 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 7104 "Tag.c"
+ }
+ __finally464:
+#line 899 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 899 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 899 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 899 "/home/jens/Source/shotwell/src/Tag.vala"
+ return NULL;
+#line 7115 "Tag.c"
+ }
+#line 905 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = row;
+#line 905 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = object_id;
+#line 905 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = tag_new (_tmp8_, _tmp9_);
+#line 905 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag = _tmp10_;
+#line 906 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = tag_global;
+#line 906 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (tag, TYPE_DATA_OBJECT, DataObject));
+#line 908 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (tag, TYPE_DATA_OBJECT, DataObject));
+#line 908 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _tmp12_;
+#line 908 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_debug ("Tag.vala:908: Reconstituted %s", _tmp13_);
+#line 908 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp13_);
+#line 910 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = tag;
+#line 910 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7141 "Tag.c"
+}
+
+
+static gboolean tag_real_has_links (ContainerSource* base) {
+ Tag * self;
+ gboolean result = FALSE;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ SourceBacklink* _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 913 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = library_photo_global;
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = container_source_get_backlink (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = source_collection_has_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp2_);
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _tmp3_;
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ _source_backlink_unref0 (_tmp2_);
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp4_;
+#line 914 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7171 "Tag.c"
+}
+
+
+static SourceBacklink* tag_real_get_backlink (ContainerSource* base) {
+ Tag * self;
+ SourceBacklink* result = NULL;
+ SourceBacklink* _tmp0_ = NULL;
+#line 917 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 918 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source_backlink_new_from_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 918 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp0_;
+#line 918 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7187 "Tag.c"
+}
+
+
+static void tag_real_break_link (ContainerSource* base, DataSource* source) {
+ Tag * self;
+ DataSource* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 921 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 922 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->unlinking = TRUE;
+#line 924 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source;
+#line 924 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_detach (self, G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_MEDIA_SOURCE, MediaSource));
+#line 924 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 924 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp2_);
+#line 926 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->unlinking = FALSE;
+#line 7212 "Tag.c"
+}
+
+
+static void tag_real_break_link_many (ContainerSource* base, GeeCollection* sources) {
+ Tag * self;
+ GeeCollection* _tmp0_ = NULL;
+ GeeMultiMap* _tmp1_ = NULL;
+ GeeMultiMap* _tmp2_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 929 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 930 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->unlinking = TRUE;
+#line 932 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = sources;
+#line 932 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_detach_many (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 932 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 932 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp2_);
+#line 934 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->unlinking = FALSE;
+#line 7237 "Tag.c"
+}
+
+
+static void tag_real_establish_link (ContainerSource* base, DataSource* source) {
+ Tag * self;
+ DataSource* _tmp0_ = NULL;
+#line 937 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 937 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 938 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->relinking = TRUE;
+#line 940 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = source;
+#line 940 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_attach (self, G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_PHOTO, LibraryPhoto), TYPE_MEDIA_SOURCE, MediaSource));
+#line 942 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->relinking = FALSE;
+#line 7256 "Tag.c"
+}
+
+
+static void tag_real_establish_link_many (ContainerSource* base, GeeCollection* sources) {
+ Tag * self;
+ GeeCollection* _tmp0_ = NULL;
+#line 945 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 945 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 946 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->relinking = TRUE;
+#line 948 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = sources;
+#line 948 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_attach_many (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 950 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->relinking = FALSE;
+#line 7275 "Tag.c"
+}
+
+
+static void tag_update_indexable_keywords (Tag* self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 953 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 954 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_get_searchable_name (self);
+#line 954 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_;
+#line 954 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = indexable_prepare_indexable_string (_tmp1_);
+#line 954 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 954 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->indexable_keywords = _tmp2_;
+#line 954 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp1_);
+#line 7297 "Tag.c"
+}
+
+
+static const gchar* tag_real_get_indexable_keywords (Indexable* base) {
+ Tag * self;
+ const gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 958 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->indexable_keywords;
+#line 958 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp0_;
+#line 958 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7313 "Tag.c"
+}
+
+
+void tag_attach (Tag* self, MediaSource* source) {
+ Tag* attach_to = NULL;
+ Tag* _tmp0_ = NULL;
+#line 961 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 961 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (source));
+#line 962 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 962 "/home/jens/Source/shotwell/src/Tag.vala"
+ attach_to = _tmp0_;
+#line 963 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 7330 "Tag.c"
+ Tag* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Tag* _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+#line 963 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = attach_to;
+#line 963 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp1_ != NULL)) {
+#line 963 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 7344 "Tag.c"
+ }
+#line 964 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = attach_to;
+#line 964 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_->priv->media_views;
+#line 964 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = source;
+#line 964 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = view_collection_has_view_for_source (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource));
+#line 964 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp5_) {
+#line 7356 "Tag.c"
+ Tag* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ ThumbnailView* _tmp9_ = NULL;
+ ThumbnailView* _tmp10_ = NULL;
+#line 965 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = attach_to;
+#line 965 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tmp6_->priv->media_views;
+#line 965 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = source;
+#line 965 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 965 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_;
+#line 965 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 965 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp10_);
+#line 7376 "Tag.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = attach_to;
+#line 968 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = tag_get_hierarchical_parent (_tmp11_);
+#line 968 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (attach_to);
+#line 968 "/home/jens/Source/shotwell/src/Tag.vala"
+ attach_to = _tmp12_;
+#line 7386 "Tag.c"
+ }
+#line 961 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (attach_to);
+#line 7390 "Tag.c"
+}
+
+
+void tag_attach_many (Tag* self, GeeCollection* sources) {
+ Tag* attach_to = NULL;
+ Tag* _tmp0_ = NULL;
+#line 972 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 972 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 973 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = _g_object_ref0 (self);
+#line 973 "/home/jens/Source/shotwell/src/Tag.vala"
+ attach_to = _tmp0_;
+#line 974 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 7407 "Tag.c"
+ Tag* _tmp1_ = NULL;
+ GeeArrayList* view_list = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ Tag* _tmp25_ = NULL;
+ Tag* _tmp26_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = attach_to;
+#line 974 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp1_ != NULL)) {
+#line 974 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 7422 "Tag.c"
+ }
+#line 975 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = gee_array_list_new (TYPE_THUMBNAIL_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 975 "/home/jens/Source/shotwell/src/Tag.vala"
+ view_list = _tmp2_;
+#line 7428 "Tag.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = sources;
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _source_it = _tmp4_;
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 7441 "Tag.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _source_it;
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp6_) {
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 7459 "Tag.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _source_it;
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ source = (MediaSource*) _tmp8_;
+#line 977 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = attach_to;
+#line 977 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_->priv->media_views;
+#line 977 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = source;
+#line 977 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = view_collection_has_view_for_source (_tmp10_, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_SOURCE, DataSource));
+#line 977 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp12_) {
+#line 7477 "Tag.c"
+ GeeArrayList* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ ThumbnailView* _tmp15_ = NULL;
+ ThumbnailView* _tmp16_ = NULL;
+#line 978 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = view_list;
+#line 978 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = source;
+#line 978 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = thumbnail_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 978 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _tmp15_;
+#line 978 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp16_);
+#line 978 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp16_);
+#line 7494 "Tag.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 7498 "Tag.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_source_it);
+#line 7502 "Tag.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = view_list;
+#line 981 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 981 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = _tmp18_;
+#line 981 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp19_ > 0) {
+#line 7512 "Tag.c"
+ Tag* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+#line 982 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = attach_to;
+#line 982 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = _tmp20_->priv->media_views;
+#line 982 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = view_list;
+#line 982 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 982 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = _tmp23_;
+#line 982 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp24_);
+#line 7530 "Tag.c"
+ }
+#line 984 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = attach_to;
+#line 984 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = tag_get_hierarchical_parent (_tmp25_);
+#line 984 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (attach_to);
+#line 984 "/home/jens/Source/shotwell/src/Tag.vala"
+ attach_to = _tmp26_;
+#line 974 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (view_list);
+#line 7542 "Tag.c"
+ }
+#line 972 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (attach_to);
+#line 7546 "Tag.c"
+}
+
+
+GeeList* tag_detach (Tag* self, MediaSource* source) {
+ GeeList* result = NULL;
+ DataView* this_view = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ DataView* _tmp3_ = NULL;
+ GeeList* detached_from = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ ViewCollection* _tmp30_ = NULL;
+ DataView* _tmp31_ = NULL;
+ Marker* _tmp32_ = NULL;
+ Marker* _tmp33_ = NULL;
+ GeeList* _tmp34_ = NULL;
+#line 991 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 991 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 992 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->media_views;
+#line 992 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = source;
+#line 992 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = view_collection_get_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 992 "/home/jens/Source/shotwell/src/Tag.vala"
+ this_view = _tmp2_;
+#line 993 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = this_view;
+#line 993 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp3_ == NULL) {
+#line 994 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = NULL;
+#line 994 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (this_view);
+#line 994 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7587 "Tag.c"
+ }
+#line 996 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_array_list_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 996 "/home/jens/Source/shotwell/src/Tag.vala"
+ detached_from = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_LIST, GeeList);
+#line 7593 "Tag.c"
+ {
+ GeeList* _child_tag_list = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _child_tag_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _child_tag_index = 0;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = tag_get_hierarchical_children (self);
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_list = _tmp5_;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _child_tag_list;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp7_;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_size = _tmp8_;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_index = -1;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 7618 "Tag.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ Tag* child_tag = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ DataView* child_view = NULL;
+ Tag* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ MediaSource* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+ DataView* _tmp19_ = NULL;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = _child_tag_index;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_index = _tmp9_ + 1;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _child_tag_index;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _child_tag_size;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 7644 "Tag.c"
+ }
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = _child_tag_list;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = _child_tag_index;
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ child_tag = (Tag*) _tmp14_;
+#line 999 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = child_tag;
+#line 999 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _tmp15_->priv->media_views;
+#line 999 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = source;
+#line 999 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = view_collection_get_view_for_source (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_SOURCE, DataSource));
+#line 999 "/home/jens/Source/shotwell/src/Tag.vala"
+ child_view = _tmp18_;
+#line 1000 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = child_view;
+#line 1000 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp19_ != NULL) {
+#line 7668 "Tag.c"
+ Tag* _tmp20_ = NULL;
+ ViewCollection* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ ViewCollection* _tmp23_ = NULL;
+ DataView* _tmp24_ = NULL;
+ Marker* _tmp25_ = NULL;
+ Marker* _tmp26_ = NULL;
+ GeeList* _tmp27_ = NULL;
+ Tag* _tmp28_ = NULL;
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = child_tag;
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = _tmp20_->priv->media_views;
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = child_tag;
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = _tmp22_->priv->media_views;
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = child_view;
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_OBJECT, DataObject));
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = _tmp25_;
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection), _tmp26_);
+#line 1001 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp26_);
+#line 1002 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = detached_from;
+#line 1002 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = child_tag;
+#line 1002 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection), _tmp28_);
+#line 7702 "Tag.c"
+ }
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (child_view);
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (child_tag);
+#line 7708 "Tag.c"
+ }
+#line 998 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_child_tag_list);
+#line 7712 "Tag.c"
+ }
+#line 1006 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = self->priv->media_views;
+#line 1006 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = self->priv->media_views;
+#line 1006 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = this_view;
+#line 1006 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_OBJECT, DataObject));
+#line 1006 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = _tmp32_;
+#line 1006 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_COLLECTION, DataCollection), _tmp33_);
+#line 1006 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp33_);
+#line 1007 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = detached_from;
+#line 1007 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection), self);
+#line 1009 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = detached_from;
+#line 1009 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (this_view);
+#line 1009 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 7738 "Tag.c"
+}
+
+
+GeeMultiMap* tag_detach_many (Tag* self, GeeCollection* sources) {
+ GeeMultiMap* result = NULL;
+ GeeMultiMap* detached_from = NULL;
+ GeeHashMultiMap* _tmp0_ = NULL;
+ Marker* marker = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ Marker* _tmp2_ = NULL;
+ ViewCollection* _tmp42_ = NULL;
+ Marker* _tmp43_ = NULL;
+ GeeMultiMap* _tmp44_ = NULL;
+ GeeMultiMap* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ GeeMultiMap* _tmp49_ = NULL;
+#line 1015 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 1015 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (sources), NULL);
+#line 1016 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = gee_hash_multi_map_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1016 "/home/jens/Source/shotwell/src/Tag.vala"
+ detached_from = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 1018 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = self->priv->media_views;
+#line 1018 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1018 "/home/jens/Source/shotwell/src/Tag.vala"
+ marker = _tmp2_;
+#line 7770 "Tag.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = sources;
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _source_it = _tmp4_;
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 7783 "Tag.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DataView* view = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+ Marker* _tmp38_ = NULL;
+ DataView* _tmp39_ = NULL;
+ GeeMultiMap* _tmp40_ = NULL;
+ MediaSource* _tmp41_ = NULL;
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _source_it;
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp6_) {
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 7806 "Tag.c"
+ }
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _source_it;
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ source = (MediaSource*) _tmp8_;
+#line 1020 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = self->priv->media_views;
+#line 1020 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = source;
+#line 1020 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = view_collection_get_view_for_source (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_SOURCE, DataSource));
+#line 1020 "/home/jens/Source/shotwell/src/Tag.vala"
+ view = _tmp11_;
+#line 1021 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = view;
+#line 1021 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp12_ == NULL) {
+#line 1022 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (view);
+#line 1022 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 1022 "/home/jens/Source/shotwell/src/Tag.vala"
+ continue;
+#line 7832 "Tag.c"
+ }
+ {
+ GeeList* _child_tag_list = NULL;
+ GeeList* _tmp13_ = NULL;
+ gint _child_tag_size = 0;
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _child_tag_index = 0;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = tag_get_hierarchical_children (self);
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_list = _tmp13_;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = _child_tag_list;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _tmp15_;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_size = _tmp16_;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_index = -1;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 7858 "Tag.c"
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ Tag* child_tag = NULL;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gpointer _tmp22_ = NULL;
+ DataView* child_view = NULL;
+ Tag* _tmp23_ = NULL;
+ ViewCollection* _tmp24_ = NULL;
+ MediaSource* _tmp25_ = NULL;
+ DataView* _tmp26_ = NULL;
+ DataView* _tmp27_ = NULL;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = _child_tag_index;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_tag_index = _tmp17_ + 1;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = _child_tag_index;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = _child_tag_size;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!(_tmp18_ < _tmp19_)) {
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 7884 "Tag.c"
+ }
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = _child_tag_list;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = _child_tag_index;
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = gee_list_get (_tmp20_, _tmp21_);
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ child_tag = (Tag*) _tmp22_;
+#line 1025 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = child_tag;
+#line 1025 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = _tmp23_->priv->media_views;
+#line 1025 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = source;
+#line 1025 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = view_collection_get_view_for_source (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_SOURCE, DataSource));
+#line 1025 "/home/jens/Source/shotwell/src/Tag.vala"
+ child_view = _tmp26_;
+#line 1026 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = child_view;
+#line 1026 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp27_ != NULL) {
+#line 7908 "Tag.c"
+ Tag* _tmp28_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ Tag* _tmp30_ = NULL;
+ ViewCollection* _tmp31_ = NULL;
+ DataView* _tmp32_ = NULL;
+ Marker* _tmp33_ = NULL;
+ Marker* _tmp34_ = NULL;
+ GeeMultiMap* _tmp35_ = NULL;
+ Tag* _tmp36_ = NULL;
+ MediaSource* _tmp37_ = NULL;
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = child_tag;
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = _tmp28_->priv->media_views;
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = child_tag;
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = _tmp30_->priv->media_views;
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = child_view;
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_DATA_OBJECT, DataObject));
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = _tmp33_;
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_COLLECTION, DataCollection), _tmp34_);
+#line 1027 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp34_);
+#line 1028 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = detached_from;
+#line 1028 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = child_tag;
+#line 1028 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = source;
+#line 1028 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_multi_map_set (_tmp35_, _tmp36_, _tmp37_);
+#line 7945 "Tag.c"
+ }
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (child_view);
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (child_tag);
+#line 7951 "Tag.c"
+ }
+#line 1024 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_child_tag_list);
+#line 7955 "Tag.c"
+ }
+#line 1032 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = marker;
+#line 1032 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = view;
+#line 1032 "/home/jens/Source/shotwell/src/Tag.vala"
+ marker_mark (_tmp38_, G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_DATA_OBJECT, DataObject));
+#line 1033 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = detached_from;
+#line 1033 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = source;
+#line 1033 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_multi_map_set (_tmp40_, self, _tmp41_);
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (view);
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 7973 "Tag.c"
+ }
+#line 1019 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_source_it);
+#line 7977 "Tag.c"
+ }
+#line 1036 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = self->priv->media_views;
+#line 1036 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = marker;
+#line 1036 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_DATA_COLLECTION, DataCollection), _tmp43_);
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = detached_from;
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp46_ = gee_multi_map_get_size (_tmp45_);
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp47_ = _tmp46_;
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp47_ > 0) {
+#line 7993 "Tag.c"
+ GeeMultiMap* _tmp48_ = NULL;
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp48_ = detached_from;
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = _tmp48_;
+#line 7999 "Tag.c"
+ } else {
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = NULL;
+#line 8003 "Tag.c"
+ }
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp49_ = _g_object_ref0 (_tmp44_);
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp49_;
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (marker);
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (detached_from);
+#line 1038 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8015 "Tag.c"
+}
+
+
+static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 987 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 987 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, 0);
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = needle;
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 990 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 990 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 8042 "Tag.c"
+ gchar* _tmp4_ = NULL;
+#line 991 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 991 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 991 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8050 "Tag.c"
+ } else {
+#line 993 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = -1;
+#line 993 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8056 "Tag.c"
+ }
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 8080 "Tag.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8088 "Tag.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8100 "Tag.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 8124 "Tag.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 8130 "Tag.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 8134 "Tag.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 8138 "Tag.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 8150 "Tag.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 8160 "Tag.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 8166 "Tag.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 8180 "Tag.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 8190 "Tag.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 8196 "Tag.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 8205 "Tag.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8225 "Tag.c"
+}
+
+
+gboolean tag_rename (Tag* self, const gchar* name) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gchar* new_name = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 1042 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), FALSE);
+#line 1042 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (name != NULL, FALSE);
+#line 1043 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = name;
+#line 1043 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_get_user_visible_name (self);
+#line 1043 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 1043 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = g_strcmp0 (_tmp0_, _tmp2_) == 0;
+#line 1043 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp2_);
+#line 1043 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp3_) {
+#line 1044 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = TRUE;
+#line 1044 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8263 "Tag.c"
+ }
+#line 1046 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = name;
+#line 1046 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = tag_prep_tag_name (_tmp4_);
+#line 1046 "/home/jens/Source/shotwell/src/Tag.vala"
+ new_name = _tmp5_;
+#line 1047 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = new_name;
+#line 1047 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp6_ == NULL) {
+#line 1048 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = FALSE;
+#line 1048 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_name);
+#line 1048 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8281 "Tag.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = tag_get_path (self);
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _tmp7_;
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = g_str_has_prefix (_tmp8_, TAG_PATH_SEPARATOR_STRING);
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _tmp9_;
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp8_);
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp10_) {
+#line 8295 "Tag.c"
+ gchar* new_path = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* old_path = NULL;
+ gchar* _tmp13_ = NULL;
+ Tag* parent = NULL;
+ Tag* _tmp14_ = NULL;
+ Tag* _tmp15_ = NULL;
+ TagSourceCollection* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ GeeCollection* children = NULL;
+ GeeList* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ Alteration* _tmp53_ = NULL;
+ Alteration* _tmp54_ = NULL;
+#line 1052 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = new_name;
+#line 1052 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 1052 "/home/jens/Source/shotwell/src/Tag.vala"
+ new_path = _tmp12_;
+#line 1053 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = tag_get_path (self);
+#line 1053 "/home/jens/Source/shotwell/src/Tag.vala"
+ old_path = _tmp13_;
+#line 1055 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = tag_get_hierarchical_parent (self);
+#line 1055 "/home/jens/Source/shotwell/src/Tag.vala"
+ parent = _tmp14_;
+#line 1056 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = parent;
+#line 1056 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp15_ != NULL) {
+#line 8330 "Tag.c"
+ Tag* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = parent;
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = tag_get_path (_tmp16_);
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = _tmp17_;
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = g_strconcat (_tmp18_, TAG_PATH_SEPARATOR_STRING, NULL);
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = _tmp19_;
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = new_path;
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = g_strconcat (_tmp20_, _tmp21_, NULL);
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_path);
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ new_path = _tmp22_;
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp20_);
+#line 1057 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp18_);
+#line 8360 "Tag.c"
+ } else {
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 1059 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = new_path;
+#line 1059 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp23_, NULL);
+#line 1059 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_path);
+#line 1059 "/home/jens/Source/shotwell/src/Tag.vala"
+ new_path = _tmp24_;
+#line 8372 "Tag.c"
+ }
+#line 1062 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = tag_global;
+#line 1062 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = new_path;
+#line 1062 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = tag_source_collection_exists (_tmp25_, _tmp26_, TRUE);
+#line 1062 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp27_) {
+#line 1063 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = FALSE;
+#line 1063 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (parent);
+#line 1063 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (old_path);
+#line 1063 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_path);
+#line 1063 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_name);
+#line 1063 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8394 "Tag.c"
+ }
+#line 1065 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = tag_get_hierarchical_children (self);
+#line 1065 "/home/jens/Source/shotwell/src/Tag.vala"
+ children = G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1067 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = new_path;
+#line 1067 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_set_raw_path (self, _tmp29_, TRUE);
+#line 8404 "Tag.c"
+ {
+ GeeIterator* _child_it = NULL;
+ GeeCollection* _tmp30_ = NULL;
+ GeeIterator* _tmp31_ = NULL;
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = children;
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_it = _tmp31_;
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 8417 "Tag.c"
+ GeeIterator* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ Tag* child = NULL;
+ GeeIterator* _tmp34_ = NULL;
+ gpointer _tmp35_ = NULL;
+ gchar* old_child_path = NULL;
+ Tag* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gint old_path_index = 0;
+ const gchar* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gchar* child_subpath = NULL;
+ const gchar* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ const gchar* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gchar* _tmp47_ = NULL;
+ gchar* new_child_path = NULL;
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ Tag* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = _child_it;
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = gee_iterator_next (_tmp32_);
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp33_) {
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 8452 "Tag.c"
+ }
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = _child_it;
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = gee_iterator_get (_tmp34_);
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ child = (Tag*) _tmp35_;
+#line 1072 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = child;
+#line 1072 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = tag_get_path (_tmp36_);
+#line 1072 "/home/jens/Source/shotwell/src/Tag.vala"
+ old_child_path = _tmp37_;
+#line 1076 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = old_child_path;
+#line 1076 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = old_path;
+#line 1076 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = string_index_of (_tmp38_, _tmp39_, 0);
+#line 1076 "/home/jens/Source/shotwell/src/Tag.vala"
+ old_path_index = _tmp40_;
+#line 1077 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = old_path_index;
+#line 1077 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp41_ != -1, "old_path_index != -1");
+#line 1079 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = old_child_path;
+#line 1079 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = old_path_index;
+#line 1079 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = old_path;
+#line 1079 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = strlen (_tmp44_);
+#line 1079 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp46_ = _tmp45_;
+#line 1079 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp47_ = string_substring (_tmp42_, (glong) (_tmp43_ + _tmp46_), (glong) -1);
+#line 1079 "/home/jens/Source/shotwell/src/Tag.vala"
+ child_subpath = _tmp47_;
+#line 1081 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp48_ = new_path;
+#line 1081 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp49_ = child_subpath;
+#line 1081 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp50_ = g_strconcat (_tmp48_, _tmp49_, NULL);
+#line 1081 "/home/jens/Source/shotwell/src/Tag.vala"
+ new_child_path = _tmp50_;
+#line 1083 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp51_ = child;
+#line 1083 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp52_ = new_child_path;
+#line 1083 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_set_raw_path (_tmp51_, _tmp52_, TRUE);
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_child_path);
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (child_subpath);
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (old_child_path);
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (child);
+#line 8514 "Tag.c"
+ }
+#line 1069 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_child_it);
+#line 8518 "Tag.c"
+ }
+#line 1086 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_update_indexable_keywords (self);
+#line 1087 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp53_ = alteration_new_from_list ("metadata:name, indexable:keywords");
+#line 1087 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp54_ = _tmp53_;
+#line 1087 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp54_);
+#line 1087 "/home/jens/Source/shotwell/src/Tag.vala"
+ _alteration_unref0 (_tmp54_);
+#line 8530 "Tag.c"
+ {
+ GeeIterator* _child_it = NULL;
+ GeeCollection* _tmp55_ = NULL;
+ GeeIterator* _tmp56_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp55_ = children;
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp56_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _child_it = _tmp56_;
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 8543 "Tag.c"
+ GeeIterator* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+ Tag* child = NULL;
+ GeeIterator* _tmp59_ = NULL;
+ gpointer _tmp60_ = NULL;
+ Tag* _tmp61_ = NULL;
+ Alteration* _tmp62_ = NULL;
+ Alteration* _tmp63_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp57_ = _child_it;
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp58_ = gee_iterator_next (_tmp57_);
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp58_) {
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 8560 "Tag.c"
+ }
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp59_ = _child_it;
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp60_ = gee_iterator_get (_tmp59_);
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ child = (Tag*) _tmp60_;
+#line 1089 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp61_ = child;
+#line 1089 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp62_ = alteration_new_from_list ("metadata:name, indexable:keywords");
+#line 1089 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp63_ = _tmp62_;
+#line 1089 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, TYPE_DATA_OBJECT, DataObject), _tmp63_);
+#line 1089 "/home/jens/Source/shotwell/src/Tag.vala"
+ _alteration_unref0 (_tmp63_);
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (child);
+#line 8580 "Tag.c"
+ }
+#line 1088 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_child_it);
+#line 8584 "Tag.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (children);
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (parent);
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (old_path);
+#line 1051 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_path);
+#line 8594 "Tag.c"
+ } else {
+ TagSourceCollection* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+ gboolean _tmp66_ = FALSE;
+ const gchar* _tmp67_ = NULL;
+#line 1093 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp64_ = tag_global;
+#line 1093 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp65_ = new_name;
+#line 1093 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp66_ = tag_source_collection_exists (_tmp64_, _tmp65_, TRUE);
+#line 1093 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp66_) {
+#line 1094 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = FALSE;
+#line 1094 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_name);
+#line 1094 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8614 "Tag.c"
+ }
+#line 1096 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp67_ = new_name;
+#line 1096 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_set_raw_flat_name (self, _tmp67_);
+#line 8620 "Tag.c"
+ }
+#line 1099 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = TRUE;
+#line 1099 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (new_name);
+#line 1099 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8628 "Tag.c"
+}
+
+
+gboolean tag_contains (Tag* self, MediaSource* source) {
+ gboolean result = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1102 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), FALSE);
+#line 1102 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 1103 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->media_views;
+#line 1103 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = source;
+#line 1103 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = view_collection_has_view_for_source (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 1103 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp2_;
+#line 1103 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8651 "Tag.c"
+}
+
+
+gint tag_get_sources_count (Tag* self) {
+ gint result = 0;
+ ViewCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 1106 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), 0);
+#line 1107 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->media_views;
+#line 1107 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1107 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp1_;
+#line 1107 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8669 "Tag.c"
+}
+
+
+GeeCollection* tag_get_sources (Tag* self) {
+ GeeCollection* result = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 1110 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (self), NULL);
+#line 1111 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->media_views;
+#line 1111 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = view_collection_get_sources (_tmp0_);
+#line 1111 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1111 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 8687 "Tag.c"
+}
+
+
+void tag_mirror_sources (Tag* self, ViewCollection* view, CreateView mirroring_ctor, void* mirroring_ctor_target) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ CreateView _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 1114 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 1114 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (view));
+#line 1115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = view;
+#line 1115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = self->priv->media_views;
+#line 1115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = mirroring_ctor;
+#line 1115 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2__target = mirroring_ctor_target;
+#line 1115 "/home/jens/Source/shotwell/src/Tag.vala"
+ view_collection_mirror (_tmp0_, _tmp1_, _tmp2_, _tmp2__target, NULL, NULL);
+#line 8710 "Tag.c"
+}
+
+
+static void tag_on_media_views_contents_altered (Tag* self, GeeIterable* added, GeeIterable* removed) {
+ GeeCollection* added_sources = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeCollection* removed_sources = NULL;
+ GeeIterable* _tmp29_ = NULL;
+ GeeCollection* _tmp58_ = NULL;
+ GeeCollection* _tmp62_ = NULL;
+ gboolean _tmp66_ = FALSE;
+ GeeCollection* _tmp67_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1118 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 1118 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 1118 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 1120 "/home/jens/Source/shotwell/src/Tag.vala"
+ added_sources = NULL;
+#line 1121 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = added;
+#line 1121 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp0_ != NULL) {
+#line 8736 "Tag.c"
+ GeeArrayList* _tmp1_ = NULL;
+#line 1122 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1122 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (added_sources);
+#line 1122 "/home/jens/Source/shotwell/src/Tag.vala"
+ added_sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 8744 "Tag.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = added;
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = gee_iterable_iterator (_tmp2_);
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _view_it = _tmp3_;
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 8757 "Tag.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ MediaSource* source = NULL;
+ DataView* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ TagRow* _tmp10_ = NULL;
+ GeeSet* _tmp11_ = NULL;
+ MediaSource* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ gboolean is_added = FALSE;
+ GeeCollection* _tmp25_ = NULL;
+ MediaSource* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = _view_it;
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp5_) {
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 8786 "Tag.c"
+ }
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = _view_it;
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ view = (DataView*) _tmp7_;
+#line 1124 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = view;
+#line 1124 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = data_view_get_source (_tmp8_);
+#line 1124 "/home/jens/Source/shotwell/src/Tag.vala"
+ source = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = self->priv->row;
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = _tmp10_->source_id_list;
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = source;
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_SOURCE, DataSource));
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = _tmp13_;
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection), _tmp14_);
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = !_tmp15_;
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp14_);
+#line 1128 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp16_) {
+#line 8818 "Tag.c"
+ gboolean is_added = FALSE;
+ TagRow* _tmp17_ = NULL;
+ GeeSet* _tmp18_ = NULL;
+ MediaSource* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = self->priv->row;
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = _tmp17_->source_id_list;
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = source;
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp20_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_SOURCE, DataSource));
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp21_ = _tmp20_;
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp22_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), _tmp21_);
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp23_ = _tmp22_;
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp21_);
+#line 1129 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_added = _tmp23_;
+#line 1130 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp24_ = is_added;
+#line 1130 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp24_, "is_added");
+#line 8850 "Tag.c"
+ }
+#line 1133 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp25_ = added_sources;
+#line 1133 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp26_ = source;
+#line 1133 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp27_ = gee_collection_add (_tmp25_, _tmp26_);
+#line 1133 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_added = _tmp27_;
+#line 1134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp28_ = is_added;
+#line 1134 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp28_, "is_added");
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (view);
+#line 8868 "Tag.c"
+ }
+#line 1123 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_view_it);
+#line 8872 "Tag.c"
+ }
+ }
+#line 1138 "/home/jens/Source/shotwell/src/Tag.vala"
+ removed_sources = NULL;
+#line 1139 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp29_ = removed;
+#line 1139 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp29_ != NULL) {
+#line 8881 "Tag.c"
+ GeeArrayList* _tmp30_ = NULL;
+#line 1140 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp30_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1140 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (removed_sources);
+#line 1140 "/home/jens/Source/shotwell/src/Tag.vala"
+ removed_sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 8889 "Tag.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeIterable* _tmp31_ = NULL;
+ GeeIterator* _tmp32_ = NULL;
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp31_ = removed;
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp32_ = gee_iterable_iterator (_tmp31_);
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _view_it = _tmp32_;
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 8902 "Tag.c"
+ GeeIterator* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp35_ = NULL;
+ gpointer _tmp36_ = NULL;
+ MediaSource* source = NULL;
+ DataView* _tmp37_ = NULL;
+ DataSource* _tmp38_ = NULL;
+ gboolean is_removed = FALSE;
+ TagRow* _tmp39_ = NULL;
+ GeeSet* _tmp40_ = NULL;
+ MediaSource* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ gboolean _tmp45_ = FALSE;
+ gboolean _tmp46_ = FALSE;
+ gboolean is_added = FALSE;
+ GeeCollection* _tmp47_ = NULL;
+ MediaSource* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+ gboolean _tmp50_ = FALSE;
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp33_ = _view_it;
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp34_ = gee_iterator_next (_tmp33_);
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp34_) {
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 8933 "Tag.c"
+ }
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp35_ = _view_it;
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp36_ = gee_iterator_get (_tmp35_);
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ view = (DataView*) _tmp36_;
+#line 1142 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp37_ = view;
+#line 1142 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp38_ = data_view_get_source (_tmp37_);
+#line 1142 "/home/jens/Source/shotwell/src/Tag.vala"
+ source = G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp39_ = self->priv->row;
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp40_ = _tmp39_->source_id_list;
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp41_ = source;
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp42_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_DATA_SOURCE, DataSource));
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp43_ = _tmp42_;
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp44_ = gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_COLLECTION, GeeCollection), _tmp43_);
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp45_ = _tmp44_;
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (_tmp43_);
+#line 1144 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_removed = _tmp45_;
+#line 1145 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp46_ = is_removed;
+#line 1145 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp46_, "is_removed");
+#line 1147 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp47_ = removed_sources;
+#line 1147 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp48_ = source;
+#line 1147 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp49_ = gee_collection_add (_tmp47_, _tmp48_);
+#line 1147 "/home/jens/Source/shotwell/src/Tag.vala"
+ is_added = _tmp49_;
+#line 1148 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp50_ = is_added;
+#line 1148 "/home/jens/Source/shotwell/src/Tag.vala"
+ _vala_assert (_tmp50_, "is_added");
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (view);
+#line 8985 "Tag.c"
+ }
+#line 1141 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_view_it);
+#line 8989 "Tag.c"
+ }
+ }
+ {
+ TagTable* _tmp51_ = NULL;
+ TagTable* _tmp52_ = NULL;
+ TagRow* _tmp53_ = NULL;
+ TagID _tmp54_ = {0};
+ TagRow* _tmp55_ = NULL;
+ GeeSet* _tmp56_ = NULL;
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp51_ = tag_table_get_instance ();
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp52_ = _tmp51_;
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp53_ = self->priv->row;
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp54_ = _tmp53_->tag_id;
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp55_ = self->priv->row;
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp56_ = _tmp55_->source_id_list;
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_table_set_tagged_sources (_tmp52_, &_tmp54_, G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GEE_TYPE_COLLECTION, GeeCollection), &_inner_error_);
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp52_);
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 9019 "Tag.c"
+ goto __catch465_database_error;
+ }
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (removed_sources);
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (added_sources);
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 1153 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 9032 "Tag.c"
+ }
+ }
+ goto __finally465;
+ __catch465_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp57_ = NULL;
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 1155 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp57_ = err;
+#line 1155 "/home/jens/Source/shotwell/src/Tag.vala"
+ app_window_database_error (_tmp57_);
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 9050 "Tag.c"
+ }
+ __finally465:
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (removed_sources);
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (added_sources);
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 1152 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 9065 "Tag.c"
+ }
+#line 1159 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp58_ = added_sources;
+#line 1159 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp58_ != NULL) {
+#line 9071 "Tag.c"
+ TagSourceCollection* _tmp59_ = NULL;
+ GeeCollection* _tmp60_ = NULL;
+ gboolean _tmp61_ = FALSE;
+#line 1160 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp59_ = tag_global;
+#line 1160 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp60_ = added_sources;
+#line 1160 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp61_ = self->priv->relinking;
+#line 1160 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_notify_container_contents_added (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), _tmp60_, _tmp61_);
+#line 9083 "Tag.c"
+ }
+#line 1162 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp62_ = removed_sources;
+#line 1162 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp62_ != NULL) {
+#line 9089 "Tag.c"
+ TagSourceCollection* _tmp63_ = NULL;
+ GeeCollection* _tmp64_ = NULL;
+ gboolean _tmp65_ = FALSE;
+#line 1163 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp63_ = tag_global;
+#line 1163 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp64_ = removed_sources;
+#line 1163 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp65_ = self->priv->unlinking;
+#line 1163 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_notify_container_contents_removed (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), _tmp64_, _tmp65_);
+#line 9101 "Tag.c"
+ }
+#line 1165 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp67_ = added_sources;
+#line 1165 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp67_ != NULL) {
+#line 1165 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp66_ = TRUE;
+#line 9109 "Tag.c"
+ } else {
+ GeeCollection* _tmp68_ = NULL;
+#line 1165 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp68_ = removed_sources;
+#line 1165 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp66_ = _tmp68_ != NULL;
+#line 9116 "Tag.c"
+ }
+#line 1165 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp66_) {
+#line 9120 "Tag.c"
+ TagSourceCollection* _tmp69_ = NULL;
+ GeeCollection* _tmp70_ = NULL;
+ gboolean _tmp71_ = FALSE;
+ GeeCollection* _tmp72_ = NULL;
+ gboolean _tmp73_ = FALSE;
+#line 1166 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp69_ = tag_global;
+#line 1166 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp70_ = added_sources;
+#line 1166 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp71_ = self->priv->relinking;
+#line 1166 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp72_ = removed_sources;
+#line 1166 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp73_ = self->priv->unlinking;
+#line 1166 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_notify_container_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), _tmp70_, _tmp71_, _tmp72_, _tmp73_);
+#line 9138 "Tag.c"
+ }
+#line 1118 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (removed_sources);
+#line 1118 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (added_sources);
+#line 9144 "Tag.c"
+}
+
+
+static void tag_on_sources_destroyed (Tag* self, GeeCollection* sources) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeMultiMap* _tmp1_ = NULL;
+ GeeMultiMap* _tmp2_ = NULL;
+#line 1171 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_TAG (self));
+#line 1171 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 1172 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = sources;
+#line 1172 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = tag_detach_many (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1172 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tmp1_;
+#line 1172 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp2_);
+#line 9164 "Tag.c"
+}
+
+
+static void tag_real_destroy (DataSource* base) {
+ Tag * self;
+ ViewCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1175 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG, Tag);
+#line 1179 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->media_views;
+#line 1179 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1179 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp1_ > 0) {
+#line 9181 "Tag.c"
+ ViewCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ GeeArrayList* removed = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ TagSourceCollection* _tmp10_ = NULL;
+ GeeArrayList* _tmp11_ = NULL;
+ TagSourceCollection* _tmp12_ = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+#line 1180 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = self->priv->media_views;
+#line 1180 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 1180 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _tag_on_media_views_contents_altered_data_collection_contents_altered, self);
+#line 1182 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1182 "/home/jens/Source/shotwell/src/Tag.vala"
+ removed = _tmp4_;
+#line 1183 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = removed;
+#line 1183 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = self->priv->media_views;
+#line 1183 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = view_collection_get_sources (_tmp6_);
+#line 1183 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1183 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_array_list_add_all (_tmp5_, _tmp8_);
+#line 1183 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1185 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = self->priv->media_views;
+#line 1185 "/home/jens/Source/shotwell/src/Tag.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1187 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = tag_global;
+#line 1187 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = removed;
+#line 1187 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_notify_container_contents_removed (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection), FALSE);
+#line 1188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = tag_global;
+#line 1188 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = removed;
+#line 1188 "/home/jens/Source/shotwell/src/Tag.vala"
+ container_source_collection_notify_container_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONTAINER_SOURCE, ContainerSource), NULL, FALSE, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection), FALSE);
+#line 1190 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = self->priv->media_views;
+#line 1190 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _tag_on_media_views_contents_altered_data_collection_contents_altered, self, 0);
+#line 1179 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (removed);
+#line 9240 "Tag.c"
+ }
+ {
+ TagTable* _tmp15_ = NULL;
+ TagTable* _tmp16_ = NULL;
+ TagRow* _tmp17_ = NULL;
+ TagID _tmp18_ = {0};
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = tag_table_get_instance ();
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp16_ = _tmp15_;
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp17_ = self->priv->row;
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp18_ = _tmp17_->tag_id;
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_table_remove (_tmp16_, &_tmp18_, &_inner_error_);
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ _database_table_unref0 (_tmp16_);
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 9263 "Tag.c"
+ goto __catch466_database_error;
+ }
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 1194 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 9272 "Tag.c"
+ }
+ }
+ goto __finally466;
+ __catch466_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp19_ = NULL;
+#line 1193 "/home/jens/Source/shotwell/src/Tag.vala"
+ err = _inner_error_;
+#line 1193 "/home/jens/Source/shotwell/src/Tag.vala"
+ _inner_error_ = NULL;
+#line 1196 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp19_ = err;
+#line 1196 "/home/jens/Source/shotwell/src/Tag.vala"
+ app_window_database_error (_tmp19_);
+#line 1193 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_error_free0 (err);
+#line 9290 "Tag.c"
+ }
+ __finally466:
+#line 1193 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1193 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1193 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_clear_error (&_inner_error_);
+#line 1193 "/home/jens/Source/shotwell/src/Tag.vala"
+ return;
+#line 9301 "Tag.c"
+ }
+#line 1199 "/home/jens/Source/shotwell/src/Tag.vala"
+ DATA_SOURCE_CLASS (tag_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 9305 "Tag.c"
+}
+
+
+static void _tag_tag_snapshot_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 292 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_tag_snapshot_on_source_destroyed ((TagTagSnapshot*) self, source);
+#line 9312 "Tag.c"
+}
+
+
+static TagTagSnapshot* tag_tag_snapshot_construct (GType object_type, Tag* tag) {
+ TagTagSnapshot* self = NULL;
+ Tag* _tmp0_ = NULL;
+ TagRow* _tmp1_ = NULL;
+ TagRow* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp14_ = NULL;
+ VideoSourceCollection* _tmp15_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 278 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = (TagTagSnapshot*) source_snapshot_construct (object_type);
+#line 280 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag;
+#line 280 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tmp0_->priv->row;
+#line 280 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = _tag_row_ref0 (_tmp1_);
+#line 280 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (self->priv->row);
+#line 280 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->row = _tmp2_;
+#line 9337 "Tag.c"
+ {
+ GeeIterator* _source_it = NULL;
+ Tag* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = tag;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_get_sources (_tmp3_);
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = _tmp4_;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp7_ = _tmp6_;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_tmp5_);
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _source_it = _tmp7_;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ while (TRUE) {
+#line 9361 "Tag.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ GeeHashSet* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp8_ = _source_it;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (!_tmp9_) {
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ break;
+#line 9377 "Tag.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp10_ = _source_it;
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ source = (MediaSource*) _tmp11_;
+#line 285 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp12_ = self->priv->sources;
+#line 285 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp13_ = source;
+#line 285 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp13_);
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (source);
+#line 9393 "Tag.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (_source_it);
+#line 9397 "Tag.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp14_ = library_photo_global;
+#line 287 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _tag_tag_snapshot_on_source_destroyed_source_collection_item_destroyed, self);
+#line 288 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp15_ = video_global;
+#line 288 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_SOURCE_COLLECTION, SourceCollection), "item-destroyed", (GCallback) _tag_tag_snapshot_on_source_destroyed_source_collection_item_destroyed, self);
+#line 278 "/home/jens/Source/shotwell/src/Tag.vala"
+ return self;
+#line 9409 "Tag.c"
+}
+
+
+static TagTagSnapshot* tag_tag_snapshot_new (Tag* tag) {
+#line 278 "/home/jens/Source/shotwell/src/Tag.vala"
+ return tag_tag_snapshot_construct (TAG_TYPE_TAG_SNAPSHOT, tag);
+#line 9416 "Tag.c"
+}
+
+
+static TagRow* tag_tag_snapshot_get_row (TagTagSnapshot* self) {
+ TagRow* result = NULL;
+ TagRow* _tmp0_ = NULL;
+ TagRow* _tmp1_ = NULL;
+#line 296 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (TAG_IS_TAG_SNAPSHOT (self), NULL);
+#line 297 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->row;
+#line 297 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = _tag_row_ref0 (_tmp0_);
+#line 297 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp1_;
+#line 297 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 9434 "Tag.c"
+}
+
+
+static void tag_tag_snapshot_real_notify_broken (SourceSnapshot* base) {
+ TagTagSnapshot * self;
+ TagRow* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAG_TYPE_TAG_SNAPSHOT, TagTagSnapshot);
+#line 301 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag_row_new ();
+#line 301 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (self->priv->row);
+#line 301 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->row = _tmp0_;
+#line 302 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = self->priv->sources;
+#line 302 "/home/jens/Source/shotwell/src/Tag.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 304 "/home/jens/Source/shotwell/src/Tag.vala"
+ SOURCE_SNAPSHOT_CLASS (tag_tag_snapshot_parent_class)->notify_broken (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_SNAPSHOT, SourceSnapshot));
+#line 9456 "Tag.c"
+}
+
+
+static void tag_tag_snapshot_on_source_destroyed (TagTagSnapshot* self, DataSource* source) {
+ GeeHashSet* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 307 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (TAG_IS_TAG_SNAPSHOT (self));
+#line 307 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 308 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->sources;
+#line 308 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = source;
+#line 308 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 308 "/home/jens/Source/shotwell/src/Tag.vala"
+ if (_tmp2_) {
+#line 309 "/home/jens/Source/shotwell/src/Tag.vala"
+ source_snapshot_notify_broken (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_SNAPSHOT, SourceSnapshot));
+#line 9478 "Tag.c"
+ }
+}
+
+
+static void tag_tag_snapshot_class_init (TagTagSnapshotClass * klass) {
+#line 274 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_tag_snapshot_parent_class = g_type_class_peek_parent (klass);
+#line 274 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((SourceSnapshotClass *) klass)->finalize = tag_tag_snapshot_finalize;
+#line 274 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_type_class_add_private (klass, sizeof (TagTagSnapshotPrivate));
+#line 274 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((SourceSnapshotClass *) klass)->notify_broken = tag_tag_snapshot_real_notify_broken;
+#line 9492 "Tag.c"
+}
+
+
+static void tag_tag_snapshot_instance_init (TagTagSnapshot * self) {
+ GeeHashSet* _tmp0_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv = TAG_TAG_SNAPSHOT_GET_PRIVATE (self);
+#line 276 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 276 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->sources = _tmp0_;
+#line 9504 "Tag.c"
+}
+
+
+static void tag_tag_snapshot_finalize (SourceSnapshot* obj) {
+ TagTagSnapshot * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ VideoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 274 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TAG_TYPE_TAG_SNAPSHOT, TagTagSnapshot);
+#line 292 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = library_photo_global;
+#line 292 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 292 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _tag_tag_snapshot_on_source_destroyed_source_collection_item_destroyed, self);
+#line 293 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = video_global;
+#line 293 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 293 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _tag_tag_snapshot_on_source_destroyed_source_collection_item_destroyed, self);
+#line 275 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (self->priv->row);
+#line 276 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_object_unref0 (self->priv->sources);
+#line 274 "/home/jens/Source/shotwell/src/Tag.vala"
+ SOURCE_SNAPSHOT_CLASS (tag_tag_snapshot_parent_class)->finalize (obj);
+#line 9534 "Tag.c"
+}
+
+
+static GType tag_tag_snapshot_get_type (void) {
+ static volatile gsize tag_tag_snapshot_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_tag_snapshot_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagTagSnapshotClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_tag_snapshot_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagTagSnapshot), 0, (GInstanceInitFunc) tag_tag_snapshot_instance_init, NULL };
+ GType tag_tag_snapshot_type_id;
+ tag_tag_snapshot_type_id = g_type_register_static (TYPE_SOURCE_SNAPSHOT, "TagTagSnapshot", &g_define_type_info, 0);
+ g_once_init_leave (&tag_tag_snapshot_type_id__volatile, tag_tag_snapshot_type_id);
+ }
+ return tag_tag_snapshot_type_id__volatile;
+}
+
+
+static TagTagProxy* tag_tag_proxy_construct (GType object_type, Tag* tag) {
+ TagTagProxy* self = NULL;
+ Tag* _tmp0_ = NULL;
+#line 314 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 315 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = tag;
+#line 315 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = (TagTagProxy*) source_proxy_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 314 "/home/jens/Source/shotwell/src/Tag.vala"
+ return self;
+#line 9561 "Tag.c"
+}
+
+
+static TagTagProxy* tag_tag_proxy_new (Tag* tag) {
+#line 314 "/home/jens/Source/shotwell/src/Tag.vala"
+ return tag_tag_proxy_construct (TAG_TYPE_TAG_PROXY, tag);
+#line 9568 "Tag.c"
+}
+
+
+static DataSource* tag_tag_proxy_real_reconstitute (SourceProxy* base, gint64 object_id, SourceSnapshot* snapshot) {
+ TagTagProxy * self;
+ DataSource* result = NULL;
+ gint64 _tmp0_ = 0LL;
+ SourceSnapshot* _tmp1_ = NULL;
+ TagRow* _tmp2_ = NULL;
+ TagRow* _tmp3_ = NULL;
+ Tag* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+#line 318 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAG_TYPE_TAG_PROXY, TagTagProxy);
+#line 318 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_return_val_if_fail (IS_SOURCE_SNAPSHOT (snapshot), NULL);
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = object_id;
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp1_ = snapshot;
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = tag_tag_snapshot_get_row (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TAG_TYPE_TAG_SNAPSHOT, TagTagSnapshot));
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp3_ = _tmp2_;
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = tag_reconstitute (_tmp0_, _tmp3_);
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource);
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (_tmp3_);
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ result = _tmp5_;
+#line 319 "/home/jens/Source/shotwell/src/Tag.vala"
+ return result;
+#line 9603 "Tag.c"
+}
+
+
+static void tag_tag_proxy_class_init (TagTagProxyClass * klass) {
+#line 313 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_tag_proxy_parent_class = g_type_class_peek_parent (klass);
+#line 313 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((SourceProxyClass *) klass)->reconstitute = tag_tag_proxy_real_reconstitute;
+#line 9612 "Tag.c"
+}
+
+
+static void tag_tag_proxy_instance_init (TagTagProxy * self) {
+}
+
+
+static GType tag_tag_proxy_get_type (void) {
+ static volatile gsize tag_tag_proxy_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_tag_proxy_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagTagProxyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_tag_proxy_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagTagProxy), 0, (GInstanceInitFunc) tag_tag_proxy_instance_init, NULL };
+ GType tag_tag_proxy_type_id;
+ tag_tag_proxy_type_id = g_type_register_static (TYPE_SOURCE_PROXY, "TagTagProxy", &g_define_type_info, 0);
+ g_once_init_leave (&tag_tag_proxy_type_id__volatile, tag_tag_proxy_type_id);
+ }
+ return tag_tag_proxy_type_id__volatile;
+}
+
+
+static void tag_class_init (TagClass * klass) {
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_parent_class = g_type_class_peek_parent (klass);
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_type_class_add_private (klass, sizeof (TagPrivate));
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataSourceClass *) klass)->get_typename = tag_real_get_typename;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataSourceClass *) klass)->get_instance_id = tag_real_get_instance_id;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataObjectClass *) klass)->get_name = tag_real_get_name;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataObjectClass *) klass)->to_string = tag_real_to_string;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataSourceClass *) klass)->equals = tag_real_equals;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataSourceClass *) klass)->save_snapshot = tag_real_save_snapshot;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ ((DataSourceClass *) klass)->destroy = tag_real_destroy;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ G_OBJECT_CLASS (klass)->finalize = tag_finalize;
+#line 9653 "Tag.c"
+}
+
+
+static void tag_container_source_interface_init (ContainerSourceIface * iface) {
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_container_source_parent_iface = g_type_interface_peek_parent (iface);
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->has_links = (gboolean (*)(ContainerSource*)) tag_real_has_links;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->get_backlink = (SourceBacklink* (*)(ContainerSource*)) tag_real_get_backlink;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->break_link = (void (*)(ContainerSource*, DataSource*)) tag_real_break_link;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->break_link_many = (void (*)(ContainerSource*, GeeCollection*)) tag_real_break_link_many;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->establish_link = (void (*)(ContainerSource*, DataSource*)) tag_real_establish_link;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->establish_link_many = (void (*)(ContainerSource*, GeeCollection*)) tag_real_establish_link_many;
+#line 9672 "Tag.c"
+}
+
+
+static void tag_proxyable_interface_init (ProxyableIface * iface) {
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_proxyable_parent_iface = g_type_interface_peek_parent (iface);
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->get_proxy = (SourceProxy* (*)(Proxyable*)) tag_real_get_proxy;
+#line 9681 "Tag.c"
+}
+
+
+static void tag_indexable_interface_init (IndexableIface * iface) {
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ tag_indexable_parent_iface = g_type_interface_peek_parent (iface);
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ iface->get_indexable_keywords = (const gchar* (*)(Indexable*)) tag_real_get_indexable_keywords;
+#line 9690 "Tag.c"
+}
+
+
+static void tag_instance_init (Tag * self) {
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv = TAG_GET_PRIVATE (self);
+#line 327 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->name_collation_key = NULL;
+#line 328 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->unlinking = FALSE;
+#line 329 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->relinking = FALSE;
+#line 330 "/home/jens/Source/shotwell/src/Tag.vala"
+ self->priv->indexable_keywords = NULL;
+#line 9705 "Tag.c"
+}
+
+
+static void tag_finalize (GObject* obj) {
+ Tag * self;
+ ViewCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ LibraryPhotoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ VideoSourceCollection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TAG, Tag);
+#line 382 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp0_ = self->priv->media_views;
+#line 382 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 382 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _tag_on_media_views_contents_altered_data_collection_contents_altered, self);
+#line 383 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp2_ = library_photo_global;
+#line 383 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_parse_name ("items-destroyed", TYPE_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 383 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _tag_on_sources_destroyed_source_collection_items_destroyed, self);
+#line 384 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tmp4_ = video_global;
+#line 384 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_parse_name ("items-destroyed", TYPE_SOURCE_COLLECTION, &_tmp5_, NULL, FALSE);
+#line 384 "/home/jens/Source/shotwell/src/Tag.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_SOURCE_COLLECTION, SourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _tag_on_sources_destroyed_source_collection_items_destroyed, self);
+#line 325 "/home/jens/Source/shotwell/src/Tag.vala"
+ _tag_row_unref0 (self->priv->row);
+#line 326 "/home/jens/Source/shotwell/src/Tag.vala"
+ _data_collection_unref0 (self->priv->media_views);
+#line 327 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (self->priv->name_collation_key);
+#line 330 "/home/jens/Source/shotwell/src/Tag.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 269 "/home/jens/Source/shotwell/src/Tag.vala"
+ G_OBJECT_CLASS (tag_parent_class)->finalize (obj);
+#line 9747 "Tag.c"
+}
+
+
+GType tag_get_type (void) {
+ static volatile gsize tag_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Tag), 0, (GInstanceInitFunc) tag_instance_init, NULL };
+ static const GInterfaceInfo container_source_info = { (GInterfaceInitFunc) tag_container_source_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo proxyable_info = { (GInterfaceInitFunc) tag_proxyable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo indexable_info = { (GInterfaceInitFunc) tag_indexable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType tag_type_id;
+ tag_type_id = g_type_register_static (TYPE_DATA_SOURCE, "Tag", &g_define_type_info, 0);
+ g_type_add_interface_static (tag_type_id, TYPE_CONTAINER_SOURCE, &container_source_info);
+ g_type_add_interface_static (tag_type_id, TYPE_PROXYABLE, &proxyable_info);
+ g_type_add_interface_static (tag_type_id, TYPE_INDEXABLE, &indexable_info);
+ g_once_init_leave (&tag_type_id__volatile, tag_type_id);
+ }
+ return tag_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/Tag.vala b/src/Tag.vala
index cf41c0e..31b1e40 100644
--- a/src/Tag.vala
+++ b/src/Tag.vala
@@ -269,6 +269,7 @@ public class TagSourceCollection : ContainerSourceCollection {
public class Tag : DataSource, ContainerSource, Proxyable, Indexable {
public const string TYPENAME = "tag";
public const string PATH_SEPARATOR_STRING = "/";
+ public const string TAG_LIST_SEPARATOR_STRING = ", ";
private class TagSnapshot : SourceSnapshot {
private TagRow row;
@@ -533,7 +534,12 @@ public class Tag : DataSource, ContainerSource, Proxyable, Indexable {
return String.precollated_compare(a.get_name(), a.get_name_collation_key(), b.get_name(),
b.get_name_collation_key());
}
-
+
+ public static int compare_user_visible_names(Tag a, Tag b) {
+ return String.precollated_compare(a.get_user_visible_name(), a.get_name_collation_key(),
+ b.get_user_visible_name(), b.get_name_collation_key());
+ }
+
public static uint hash_name_string(string a) {
return String.collated_hash(a);
}
@@ -601,40 +607,47 @@ public class Tag : DataSource, ContainerSource, Proxyable, Indexable {
return result;
}
-
- public static string make_tag_string(Gee.Collection<Tag> tags, string? start = null,
- string separator = ", ", string? end = null, bool escape = false) {
- StringBuilder builder = new StringBuilder(start ?? "");
+
+ // Creates a sorted list of terminal tags, unique by user-visible-name
+ public static Gee.List<Tag> make_user_visible_tag_list(Gee.Collection<Tag> tags) {
Gee.HashSet<string> seen_tags = new Gee.HashSet<string>();
Gee.Collection<Tag> terminal_tags = get_terminal_tags(tags);
- Gee.ArrayList<string> sorted_tags = new Gee.ArrayList<string>();
+ Gee.ArrayList<Tag> sorted_tags = new Gee.ArrayList<Tag>();
foreach (Tag tag in terminal_tags) {
- string user_visible_name = escape ? guarded_markup_escape_text(
- tag.get_user_visible_name()) : tag.get_user_visible_name();
-
- if (!seen_tags.contains(user_visible_name))
- sorted_tags.add(user_visible_name);
+ string user_visible_name = tag.get_user_visible_name();
+ if (!seen_tags.contains(user_visible_name)) {
+ sorted_tags.add(tag);
+ seen_tags.add(user_visible_name);
+ }
}
-
- sorted_tags.sort();
- Gee.Iterator<string> iter = sorted_tags.iterator();
- while(iter.next()) {
- builder.append(iter.get());
- builder.append(separator);
+ sorted_tags.sort(Tag.compare_user_visible_names);
+ return sorted_tags;
+ }
+
+ public static string make_tag_markup_string(Gee.List<Tag> tags, int highlight_index = -1) {
+ StringBuilder builder = new StringBuilder("<small>");
+ int i = 0;
+ bool first = true;
+ foreach(Tag tag in tags) {
+ string tag_name = tag.get_user_visible_name();
+ string esc_tag_name = guarded_markup_escape_text(tag_name);
+ if (first)
+ first = false;
+ else
+ builder.append(TAG_LIST_SEPARATOR_STRING);
+ if (highlight_index == i)
+ builder.append("<u>");
+ builder.append(esc_tag_name);
+ if (highlight_index == i)
+ builder.append("</u>");
+ ++i;
}
-
+
+ builder.append("</small>");
string built = builder.str;
-
- if (built.length >= separator.length)
- if (built.substring(built.length - separator.length, separator.length) == separator)
- built = built.substring(0, built.length - separator.length);
-
- if (end != null)
- built += end;
-
return built;
}
-
+
// Utility function to cleanup a tag name that comes from user input and prepare it for use
// in the system and storage in the database. Returns null if the name is unacceptable.
public static string? prep_tag_name(string name) {
diff --git a/src/Thumbnail.c b/src/Thumbnail.c
new file mode 100644
index 0000000..3bc86fb
--- /dev/null
+++ b/src/Thumbnail.c
@@ -0,0 +1,2731 @@
+/* Thumbnail.c generated by valac 0.32.1, the Vala compiler
+ * generated from Thumbnail.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <cairo.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <gee.h>
+#include <pango/pango.h>
+#include <time.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+typedef struct _MediaSourceItemPrivate MediaSourceItemPrivate;
+
+#define TYPE_THUMBNAIL (thumbnail_get_type ())
+#define THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL, Thumbnail))
+#define THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL, ThumbnailClass))
+#define IS_THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL))
+#define IS_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL))
+#define THUMBNAIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL, ThumbnailClass))
+
+typedef struct _Thumbnail Thumbnail;
+typedef struct _ThumbnailClass ThumbnailClass;
+typedef struct _ThumbnailPrivate ThumbnailPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE (container_source_get_type ())
+#define CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE, ContainerSource))
+#define IS_CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE))
+#define CONTAINER_SOURCE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONTAINER_SOURCE, ContainerSourceIface))
+
+typedef struct _ContainerSource ContainerSource;
+typedef struct _ContainerSourceIface ContainerSourceIface;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define THUMBNAIL_CACHE_TYPE_SIZE (thumbnail_cache_size_get_type ())
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+#define __vala_GValue_free0(var) ((var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _MediaSourceItem {
+ CheckerboardItem parent_instance;
+ MediaSourceItemPrivate * priv;
+};
+
+struct _MediaSourceItemClass {
+ CheckerboardItemClass parent_class;
+};
+
+struct _Thumbnail {
+ MediaSourceItem parent_instance;
+ ThumbnailPrivate * priv;
+};
+
+struct _ThumbnailClass {
+ MediaSourceItemClass parent_class;
+};
+
+struct _ThumbnailPrivate {
+ MediaSource* media;
+ gint scale;
+ Dimensions original_dim;
+ Dimensions dim;
+ GdkPixbuf* unscaled_pixbuf;
+ GCancellable* cancellable;
+ gboolean hq_scheduled;
+ gboolean hq_reschedule;
+ gboolean exposure;
+};
+
+struct _ContainerSourceIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_links) (ContainerSource* self);
+ SourceBacklink* (*get_backlink) (ContainerSource* self);
+ void (*break_link) (ContainerSource* self, DataSource* source);
+ void (*break_link_many) (ContainerSource* self, GeeCollection* sources);
+ void (*establish_link) (ContainerSource* self, DataSource* source);
+ void (*establish_link_many) (ContainerSource* self, GeeCollection* sources);
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef void (*ThumbnailCacheAsyncFetchCallback) (GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err, void* user_data);
+typedef enum {
+ THUMBNAIL_CACHE_SIZE_LARGEST = 360,
+ THUMBNAIL_CACHE_SIZE_BIG = 360,
+ THUMBNAIL_CACHE_SIZE_MEDIUM = 128,
+ THUMBNAIL_CACHE_SIZE_SMALLEST = 128
+} ThumbnailCacheSize;
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+
+static gpointer thumbnail_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType media_source_item_get_type (void) G_GNUC_CONST;
+GType thumbnail_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+#define THUMBNAIL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_THUMBNAIL, ThumbnailPrivate))
+enum {
+ THUMBNAIL_DUMMY_PROPERTY
+};
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType container_source_get_type (void) G_GNUC_CONST;
+static void thumbnail_on_tag_contents_altered (Thumbnail* self, ContainerSource* container, GeeCollection* added, gboolean relinking, GeeCollection* removed, gboolean unlinking);
+static void _thumbnail_on_tag_contents_altered_container_source_collection_container_contents_altered (ContainerSourceCollection* _sender, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked, gpointer self);
+static void thumbnail_on_tags_altered (Thumbnail* self, GeeMap* altered);
+static void _thumbnail_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+#define CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES "show-subtitles"
+#define THUMBNAIL_PROP_SHOW_TAGS CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES
+#define THUMBNAIL_PROP_SIZE "thumbnail-size"
+#define THUMBNAIL_PROP_SHOW_RATINGS "show-ratings"
+#define THUMBNAIL_LOW_QUALITY_INTERP GDK_INTERP_NEAREST
+#define THUMBNAIL_HIGH_QUALITY_INTERP GDK_INTERP_BILINEAR
+#define THUMBNAIL_HQ_IMPROVEMENT_MSEC 100
+Thumbnail* thumbnail_new (MediaSource* media, gint scale);
+Thumbnail* thumbnail_construct (GType object_type, MediaSource* media, gint scale);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+void dimensions_get_scaled (Dimensions *self, gint scale, gboolean scale_up, Dimensions* result);
+gchar* data_object_get_name (DataObject* self);
+gchar* media_source_get_comment (MediaSource* self);
+MediaSourceItem* media_source_item_new (ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+MediaSourceItem* media_source_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void media_source_item_set_enable_sprockets (MediaSourceItem* self, gboolean enable_sprockets);
+static void thumbnail_update_title (Thumbnail* self, gboolean init);
+static void thumbnail_update_comment (Thumbnail* self, gboolean init);
+static void thumbnail_update_tags (Thumbnail* self, gboolean init);
+GType tag_get_type (void) G_GNUC_CONST;
+GeeSortedSet* tag_source_collection_fetch_sorted_for_source (TagSourceCollection* self, MediaSource* photo);
+void checkerboard_item_clear_tags (CheckerboardItem* self);
+void checkerboard_item_set_tags (CheckerboardItem* self, GeeCollection* tags, PangoAlignment alignment);
+gboolean tag_contains (Tag* self, MediaSource* source);
+gboolean is_string_empty (const gchar* s);
+void checkerboard_item_clear_title (CheckerboardItem* self);
+void media_source_item_set_title (MediaSourceItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+void checkerboard_item_clear_comment (CheckerboardItem* self);
+void checkerboard_item_set_comment (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+static void thumbnail_real_notify_altered (DataObject* base, Alteration* alteration);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+MediaSource* thumbnail_get_media_source (Thumbnail* self);
+gint64 thumbnail_photo_id_ascending_comparator (void* a, void* b);
+gint64 data_source_get_instance_id (DataSource* self);
+gint64 thumbnail_photo_id_descending_comparator (void* a, void* b);
+gint64 thumbnail_title_ascending_comparator (void* a, void* b);
+gchar* media_source_item_get_natural_collation_key (MediaSourceItem* self);
+gint64 thumbnail_title_descending_comparator (void* a, void* b);
+gboolean thumbnail_title_comparator_predicate (DataObject* object, Alteration* alteration);
+gint64 thumbnail_exposure_time_ascending_comparator (void* a, void* b);
+time_t media_source_get_exposure_time (MediaSource* self);
+gint64 thumbnail_filename_ascending_comparator (void* a, void* b);
+gint64 thumbnail_exposure_time_desending_comparator (void* a, void* b);
+gint64 thumbnail_filename_descending_comparator (void* a, void* b);
+gboolean thumbnail_exposure_time_comparator_predicate (DataObject* object, Alteration* alteration);
+gboolean thumbnail_filename_comparator_predicate (DataObject* object, Alteration* alteration);
+GFile* media_source_get_file (MediaSource* self);
+gchar* g_utf8_collate_key_for_filename (const gchar* str, gssize len);
+gint64 thumbnail_rating_ascending_comparator (void* a, void* b);
+GType rating_get_type (void) G_GNUC_CONST;
+Rating media_source_get_rating (MediaSource* self);
+gint64 thumbnail_rating_descending_comparator (void* a, void* b);
+gboolean thumbnail_rating_comparator_predicate (DataObject* object, Alteration* alteration);
+static void thumbnail_real_thumbnail_altered (ThumbnailView* base);
+static void thumbnail_delayed_high_quality_fetch (Thumbnail* self);
+static void thumbnail_paint_empty (Thumbnail* self);
+static void thumbnail_real_notify_collection_property_set (DataObject* base, const gchar* name, GValue* old, GValue* val);
+static void thumbnail_resize (Thumbnail* self, gint new_scale);
+void data_view_notify_view_altered (DataView* self);
+void data_object_notify_collection_property_set (DataObject* self, const gchar* name, GValue* old, GValue* val);
+gint thumbnail_get_MIN_SCALE (void);
+gint thumbnail_get_MAX_SCALE (void);
+static void thumbnail_cancel_async_fetch (Thumbnail* self);
+gboolean checkerboard_item_has_image (CheckerboardItem* self);
+GdkPixbuf* checkerboard_item_get_image (CheckerboardItem* self);
+void checkerboard_item_set_image (CheckerboardItem* self, GdkPixbuf* pixbuf);
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
+void checkerboard_item_clear_image (CheckerboardItem* self, Dimensions* dim);
+static void thumbnail_schedule_low_quality_fetch (Thumbnail* self);
+void thumbnail_cache_fetch_async_scaled (ThumbnailSource* source, gint scale, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable);
+GType thumbnail_cache_size_get_type (void) G_GNUC_CONST;
+static void thumbnail_on_low_quality_fetched (Thumbnail* self, GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err);
+static void _thumbnail_on_low_quality_fetched_thumbnail_cache_async_fetch_callback (GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err, gpointer self);
+static gboolean thumbnail_on_schedule_high_quality (Thumbnail* self);
+static gboolean _thumbnail_on_schedule_high_quality_gsource_func (gpointer self);
+static void thumbnail_on_high_quality_fetched (Thumbnail* self, GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err);
+static void _thumbnail_on_high_quality_fetched_thumbnail_cache_async_fetch_callback (GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err, gpointer self);
+gchar* data_object_to_string (DataObject* self);
+static void thumbnail_real_exposed (CheckerboardItem* base);
+void checkerboard_item_exposed (CheckerboardItem* self);
+static void thumbnail_real_unexposed (CheckerboardItem* base);
+void checkerboard_item_unexposed (CheckerboardItem* self);
+static GdkPixbuf* thumbnail_real_get_top_right_trinket (CheckerboardItem* base, gint scale);
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+#define RESOURCES_ICON_FLAGGED_TRINKET "flag-trinket.png"
+#define RESOURCES_DEFAULT_ICON_SCALE 24
+static GdkPixbuf* thumbnail_real_get_bottom_left_trinket (CheckerboardItem* base, gint scale);
+GValue* data_object_get_collection_property (DataObject* self, const gchar* name, GValue* def);
+static void _vala_GValue_free (GValue* self);
+GdkPixbuf* resources_get_rating_trinket (Rating rating, gint scale);
+gint thumbnail_cache_size_get_scale (ThumbnailCacheSize self);
+gint thumbnail_get_DEFAULT_SCALE (void);
+static void thumbnail_finalize (GObject* obj);
+static void _vala_thumbnail_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+
+
+static void _thumbnail_on_tag_contents_altered_container_source_collection_container_contents_altered (ContainerSourceCollection* _sender, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked, gpointer self) {
+#line 76 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_on_tag_contents_altered ((Thumbnail*) self, container, added, relinked, removed, unlinked);
+#line 586 "Thumbnail.c"
+}
+
+
+static void _thumbnail_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 77 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_on_tags_altered ((Thumbnail*) self, items);
+#line 593 "Thumbnail.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 53 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 600 "Thumbnail.c"
+}
+
+
+Thumbnail* thumbnail_construct (GType object_type, MediaSource* media, gint scale) {
+ Thumbnail * self = NULL;
+ MediaSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+ MediaSource* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ MediaSource* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ TagSourceCollection* _tmp14_ = NULL;
+ TagSourceCollection* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ MediaSource* _tmp17_ = NULL;
+ MediaSource* _tmp19_ = NULL;
+ MediaSource* _tmp20_ = NULL;
+ Dimensions _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ Dimensions _tmp23_ = {0};
+#line 49 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (media), NULL);
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = media;
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = media;
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ media_source_get_dimensions (_tmp1_, PHOTO_EXCEPTION_NONE, &_tmp2_);
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = scale;
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ dimensions_get_scaled (&_tmp2_, _tmp3_, TRUE, &_tmp4_);
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = media;
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = _tmp6_;
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = media;
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = media_source_get_comment (_tmp8_);
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = _tmp9_;
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = (Thumbnail*) media_source_item_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), &_tmp4_, _tmp7_, _tmp10_, FALSE, PANGO_ALIGN_LEFT);
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp10_);
+#line 50 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp7_);
+#line 53 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = media;
+#line 53 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 53 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->media);
+#line 53 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->media = _tmp12_;
+#line 54 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp13_ = scale;
+#line 54 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->scale = _tmp13_;
+#line 56 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp14_ = tag_global;
+#line 56 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), "container-contents-altered", (GCallback) _thumbnail_on_tag_contents_altered_container_source_collection_container_contents_altered, self, 0);
+#line 57 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp15_ = tag_global;
+#line 57 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _thumbnail_on_tags_altered_data_collection_items_altered, self, 0);
+#line 59 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp17_ = media;
+#line 59 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp17_, TYPE_LIBRARY_PHOTO)) {
+#line 59 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp16_ = TRUE;
+#line 685 "Thumbnail.c"
+ } else {
+ MediaSource* _tmp18_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp18_ = media;
+#line 59 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp18_, TYPE_VIDEO);
+#line 692 "Thumbnail.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _vala_assert (_tmp16_, "(media is LibraryPhoto) || (media is Video)");
+#line 60 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp19_ = media;
+#line 60 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ media_source_item_set_enable_sprockets (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_VIDEO));
+#line 62 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp20_ = media;
+#line 62 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ media_source_get_dimensions (_tmp20_, PHOTO_EXCEPTION_NONE, &_tmp21_);
+#line 62 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->original_dim = _tmp21_;
+#line 63 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp22_ = scale;
+#line 63 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ dimensions_get_scaled (&self->priv->original_dim, _tmp22_, TRUE, &_tmp23_);
+#line 63 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->dim = _tmp23_;
+#line 67 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_title (self, TRUE);
+#line 68 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_comment (self, TRUE);
+#line 69 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_tags (self, TRUE);
+#line 49 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return self;
+#line 720 "Thumbnail.c"
+}
+
+
+Thumbnail* thumbnail_new (MediaSource* media, gint scale) {
+#line 49 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return thumbnail_construct (TYPE_THUMBNAIL, media, scale);
+#line 727 "Thumbnail.c"
+}
+
+
+static void thumbnail_update_tags (Thumbnail* self, gboolean init) {
+ GeeCollection* tags = NULL;
+ TagSourceCollection* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ GeeSortedSet* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GeeCollection* _tmp4_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 81 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = tag_global;
+#line 81 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = self->priv->media;
+#line 81 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = tag_source_collection_fetch_sorted_for_source (_tmp0_, _tmp1_);
+#line 81 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = tags;
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_ == NULL) {
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = TRUE;
+#line 754 "Thumbnail.c"
+ } else {
+ GeeCollection* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = tags;
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = gee_collection_get_size (_tmp5_);
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = _tmp6_;
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp7_ == 0;
+#line 767 "Thumbnail.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp3_) {
+#line 83 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_clear_tags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 773 "Thumbnail.c"
+ } else {
+ GeeCollection* _tmp8_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = tags;
+#line 85 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_set_tags (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp8_, PANGO_ALIGN_LEFT);
+#line 780 "Thumbnail.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (tags);
+#line 784 "Thumbnail.c"
+}
+
+
+static void thumbnail_on_tag_contents_altered (Thumbnail* self, ContainerSource* container, GeeCollection* added, gboolean relinking, GeeCollection* removed, gboolean unlinking) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GeeCollection* _tmp2_ = NULL;
+ gboolean tag_added = FALSE;
+ gboolean _tmp6_ = FALSE;
+ GeeCollection* _tmp7_ = NULL;
+ gboolean tag_removed = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 88 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 88 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 88 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 88 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 90 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->exposure;
+#line 90 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (!_tmp0_) {
+#line 91 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return;
+#line 812 "Thumbnail.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = added;
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp2_ != NULL) {
+#line 818 "Thumbnail.c"
+ GeeCollection* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = added;
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = self->priv->media;
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = gee_collection_contains (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource));
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = _tmp5_;
+#line 830 "Thumbnail.c"
+ } else {
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = FALSE;
+#line 834 "Thumbnail.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ tag_added = _tmp1_;
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = removed;
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp7_ != NULL) {
+#line 842 "Thumbnail.c"
+ GeeCollection* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = removed;
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = self->priv->media;
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = gee_collection_contains (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_SOURCE, DataSource));
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = _tmp10_;
+#line 854 "Thumbnail.c"
+ } else {
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = FALSE;
+#line 858 "Thumbnail.c"
+ }
+#line 94 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ tag_removed = _tmp6_;
+#line 97 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp12_ = tag_added;
+#line 97 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp12_) {
+#line 97 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = TRUE;
+#line 868 "Thumbnail.c"
+ } else {
+ gboolean _tmp13_ = FALSE;
+#line 97 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp13_ = tag_removed;
+#line 97 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = _tmp13_;
+#line 875 "Thumbnail.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp11_) {
+#line 98 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_tags (self, FALSE);
+#line 881 "Thumbnail.c"
+ }
+}
+
+
+static void thumbnail_on_tags_altered (Thumbnail* self, GeeMap* altered) {
+ gboolean _tmp0_ = FALSE;
+#line 101 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 101 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (GEE_IS_MAP (altered));
+#line 102 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->exposure;
+#line 102 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (!_tmp0_) {
+#line 103 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return;
+#line 898 "Thumbnail.c"
+ }
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = altered;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = gee_map_get_keys (_tmp1_);
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp2_;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = _tmp3_;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = _tmp5_;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp4_);
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _object_it = _tmp6_;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ while (TRUE) {
+#line 926 "Thumbnail.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ Tag* tag = NULL;
+ DataObject* _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ MediaSource* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = _object_it;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (!_tmp8_) {
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ break;
+#line 946 "Thumbnail.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = _object_it;
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ object = (DataObject*) _tmp10_;
+#line 106 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = object;
+#line 106 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_TAG, Tag));
+#line 106 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ tag = _tmp12_;
+#line 108 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp13_ = tag;
+#line 108 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp14_ = self->priv->media;
+#line 108 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp15_ = tag_contains (_tmp13_, _tmp14_);
+#line 108 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp15_) {
+#line 109 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_tags (self, FALSE);
+#line 111 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (tag);
+#line 111 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (object);
+#line 111 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ break;
+#line 976 "Thumbnail.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (tag);
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (object);
+#line 982 "Thumbnail.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_object_it);
+#line 986 "Thumbnail.c"
+ }
+}
+
+
+static void thumbnail_update_title (Thumbnail* self, gboolean init) {
+ gchar* title = NULL;
+ MediaSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 116 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 117 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->media;
+#line 117 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 117 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ title = _tmp1_;
+#line 118 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = title;
+#line 118 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 118 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp3_) {
+#line 119 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_clear_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1013 "Thumbnail.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 120 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = init;
+#line 120 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (!_tmp4_) {
+#line 1020 "Thumbnail.c"
+ const gchar* _tmp5_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = title;
+#line 121 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ media_source_item_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), _tmp5_, FALSE, PANGO_ALIGN_LEFT);
+#line 1026 "Thumbnail.c"
+ } else {
+#line 123 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ media_source_item_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), "", FALSE, PANGO_ALIGN_LEFT);
+#line 1030 "Thumbnail.c"
+ }
+ }
+#line 116 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (title);
+#line 1035 "Thumbnail.c"
+}
+
+
+static void thumbnail_update_comment (Thumbnail* self, gboolean init) {
+ gchar* comment = NULL;
+ MediaSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 126 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 127 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->media;
+#line 127 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = media_source_get_comment (_tmp0_);
+#line 127 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ comment = _tmp1_;
+#line 128 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = comment;
+#line 128 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 128 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp3_) {
+#line 129 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_clear_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1061 "Thumbnail.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 130 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = init;
+#line 130 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (!_tmp4_) {
+#line 1068 "Thumbnail.c"
+ const gchar* _tmp5_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = comment;
+#line 131 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_set_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp5_, FALSE, PANGO_ALIGN_LEFT);
+#line 1074 "Thumbnail.c"
+ } else {
+#line 133 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_set_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), "", FALSE, PANGO_ALIGN_LEFT);
+#line 1078 "Thumbnail.c"
+ }
+ }
+#line 126 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (comment);
+#line 1083 "Thumbnail.c"
+}
+
+
+static void thumbnail_real_notify_altered (DataObject* base, Alteration* alteration) {
+ Thumbnail * self;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ Alteration* _tmp8_ = NULL;
+#line 136 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL, Thumbnail);
+#line 136 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 137 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = self->priv->exposure;
+#line 137 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp1_) {
+#line 1102 "Thumbnail.c"
+ Alteration* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = alteration;
+#line 137 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = alteration_has_detail (_tmp2_, "metadata", "name");
+#line 137 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = _tmp3_;
+#line 1111 "Thumbnail.c"
+ } else {
+#line 137 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = FALSE;
+#line 1115 "Thumbnail.c"
+ }
+#line 137 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp0_) {
+#line 138 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_title (self, FALSE);
+#line 1121 "Thumbnail.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = self->priv->exposure;
+#line 139 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp5_) {
+#line 1127 "Thumbnail.c"
+ Alteration* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 139 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = alteration;
+#line 139 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = alteration_has_detail (_tmp6_, "metadata", "comment");
+#line 139 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = _tmp7_;
+#line 1136 "Thumbnail.c"
+ } else {
+#line 139 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = FALSE;
+#line 1140 "Thumbnail.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_) {
+#line 140 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_comment (self, FALSE);
+#line 1146 "Thumbnail.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = alteration;
+#line 142 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ DATA_OBJECT_CLASS (thumbnail_parent_class)->notify_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), TYPE_DATA_OBJECT, DataObject), _tmp8_);
+#line 1152 "Thumbnail.c"
+}
+
+
+MediaSource* thumbnail_get_media_source (Thumbnail* self) {
+ MediaSource* result = NULL;
+ MediaSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_THUMBNAIL (self), NULL);
+#line 146 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->media;
+#line 146 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 146 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp1_;
+#line 146 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1170 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_photo_id_ascending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ void* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ gint64 _tmp5_ = 0LL;
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = a;
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp0_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = data_source_get_instance_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource));
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = b;
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp3_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = data_source_get_instance_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_SOURCE, DataSource));
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp2_ - _tmp5_;
+#line 154 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1198 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_photo_id_descending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+#line 158 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = b;
+#line 158 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = a;
+#line 158 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = thumbnail_photo_id_ascending_comparator (_tmp0_, _tmp1_);
+#line 158 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp2_;
+#line 158 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1217 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_title_ascending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gint64 _result_ = 0LL;
+ GCompareFunc _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ void* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint64 _tmp8_ = 0LL;
+ gint64 _tmp9_ = 0LL;
+ gint64 _tmp10_ = 0LL;
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = g_strcmp0;
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = a;
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = media_source_item_get_natural_collation_key (G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp1_, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem));
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp2_;
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = b;
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = media_source_item_get_natural_collation_key (G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp4_, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem));
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = _tmp5_;
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = _tmp0_ (_tmp3_, _tmp6_);
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = (gint64) _tmp7_;
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp6_);
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp3_);
+#line 162 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = _tmp8_;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = _result_;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp10_ != ((gint64) 0)) {
+#line 1263 "Thumbnail.c"
+ gint64 _tmp11_ = 0LL;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = _result_;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = _tmp11_;
+#line 1269 "Thumbnail.c"
+ } else {
+ void* _tmp12_ = NULL;
+ void* _tmp13_ = NULL;
+ gint64 _tmp14_ = 0LL;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp12_ = a;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp13_ = b;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp14_ = thumbnail_photo_id_ascending_comparator (_tmp12_, _tmp13_);
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = _tmp14_;
+#line 1282 "Thumbnail.c"
+ }
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp9_;
+#line 163 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1288 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_title_descending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gint64 _result_ = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ gint64 _tmp3_ = 0LL;
+ gint64 _tmp4_ = 0LL;
+#line 167 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = b;
+#line 167 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = a;
+#line 167 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = thumbnail_title_ascending_comparator (_tmp0_, _tmp1_);
+#line 167 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = _tmp2_;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = _result_;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_ != ((gint64) 0)) {
+#line 1312 "Thumbnail.c"
+ gint64 _tmp5_ = 0LL;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _result_;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp5_;
+#line 1318 "Thumbnail.c"
+ } else {
+ void* _tmp6_ = NULL;
+ void* _tmp7_ = NULL;
+ gint64 _tmp8_ = 0LL;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = a;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = b;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = thumbnail_photo_id_descending_comparator (_tmp6_, _tmp7_);
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp8_;
+#line 1331 "Thumbnail.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp3_;
+#line 169 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1337 "Thumbnail.c"
+}
+
+
+gboolean thumbnail_title_comparator_predicate (DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 172 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 173 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = alteration;
+#line 173 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "title");
+#line 173 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp1_;
+#line 173 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1357 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_exposure_time_ascending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gint64 time_a = 0LL;
+ void* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+ gint64 time_b = 0LL;
+ void* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ time_t _tmp5_ = 0;
+ gint64 _result_ = 0LL;
+ gint64 _tmp6_ = 0LL;
+ gint64 _tmp7_ = 0LL;
+ gint64 _tmp8_ = 0LL;
+ gint64 _tmp9_ = 0LL;
+#line 177 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = a;
+#line 177 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp0_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 177 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = media_source_get_exposure_time (_tmp1_);
+#line 177 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ time_a = (gint64) _tmp2_;
+#line 178 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = b;
+#line 178 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp3_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 178 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = media_source_get_exposure_time (_tmp4_);
+#line 178 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ time_b = (gint64) _tmp5_;
+#line 179 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = time_a;
+#line 179 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = time_b;
+#line 179 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = _tmp6_ - _tmp7_;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = _result_;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp9_ != ((gint64) 0)) {
+#line 1402 "Thumbnail.c"
+ gint64 _tmp10_ = 0LL;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = _result_;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = _tmp10_;
+#line 1408 "Thumbnail.c"
+ } else {
+ void* _tmp11_ = NULL;
+ void* _tmp12_ = NULL;
+ gint64 _tmp13_ = 0LL;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = a;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp12_ = b;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp13_ = thumbnail_filename_ascending_comparator (_tmp11_, _tmp12_);
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = _tmp13_;
+#line 1421 "Thumbnail.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp8_;
+#line 181 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1427 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_exposure_time_desending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gint64 _result_ = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ gint64 _tmp3_ = 0LL;
+ gint64 _tmp4_ = 0LL;
+#line 185 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = b;
+#line 185 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = a;
+#line 185 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = thumbnail_exposure_time_ascending_comparator (_tmp0_, _tmp1_);
+#line 185 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = _tmp2_;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = _result_;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_ != ((gint64) 0)) {
+#line 1451 "Thumbnail.c"
+ gint64 _tmp5_ = 0LL;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _result_;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp5_;
+#line 1457 "Thumbnail.c"
+ } else {
+ void* _tmp6_ = NULL;
+ void* _tmp7_ = NULL;
+ gint64 _tmp8_ = 0LL;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = a;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = b;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = thumbnail_filename_descending_comparator (_tmp6_, _tmp7_);
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp8_;
+#line 1470 "Thumbnail.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp3_;
+#line 187 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1476 "Thumbnail.c"
+}
+
+
+gboolean thumbnail_exposure_time_comparator_predicate (DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 190 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 190 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 191 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = alteration;
+#line 191 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "exposure-time");
+#line 191 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp1_;
+#line 191 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1496 "Thumbnail.c"
+}
+
+
+gboolean thumbnail_filename_comparator_predicate (DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 194 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 194 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 195 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = alteration;
+#line 195 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "filename");
+#line 195 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp1_;
+#line 195 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1516 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_filename_ascending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gchar* path_a = NULL;
+ void* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* path_b = NULL;
+ void* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gint64 _result_ = 0LL;
+ GCompareFunc _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint64 _tmp24_ = 0LL;
+ gint64 _tmp25_ = 0LL;
+ gint64 _tmp26_ = 0LL;
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = a;
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp0_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = media_source_get_file (_tmp1_);
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp2_;
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = g_file_get_basename (_tmp3_);
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _tmp4_;
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = g_utf8_strdown (_tmp5_, (gssize) -1);
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = _tmp6_;
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp5_);
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp3_);
+#line 199 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ path_a = _tmp7_;
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = b;
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp8_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = media_source_get_file (_tmp9_);
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = _tmp10_;
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp12_ = g_file_get_basename (_tmp11_);
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp13_ = _tmp12_;
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp14_ = g_utf8_strdown (_tmp13_, (gssize) -1);
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp15_ = _tmp14_;
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp13_);
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp11_);
+#line 200 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ path_b = _tmp15_;
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp16_ = g_strcmp0;
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp17_ = path_a;
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp18_ = g_utf8_collate_key_for_filename (_tmp17_, (gssize) -1);
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp19_ = _tmp18_;
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp20_ = path_b;
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp21_ = g_utf8_collate_key_for_filename (_tmp20_, (gssize) -1);
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp22_ = _tmp21_;
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp23_ = _tmp16_ (_tmp19_, _tmp22_);
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp24_ = (gint64) _tmp23_;
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp22_);
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp19_);
+#line 202 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = _tmp24_;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp26_ = _result_;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp26_ != ((gint64) 0)) {
+#line 1624 "Thumbnail.c"
+ gint64 _tmp27_ = 0LL;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp27_ = _result_;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp25_ = _tmp27_;
+#line 1630 "Thumbnail.c"
+ } else {
+ void* _tmp28_ = NULL;
+ void* _tmp29_ = NULL;
+ gint64 _tmp30_ = 0LL;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp28_ = a;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp29_ = b;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp30_ = thumbnail_photo_id_ascending_comparator (_tmp28_, _tmp29_);
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp25_ = _tmp30_;
+#line 1643 "Thumbnail.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp25_;
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (path_b);
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (path_a);
+#line 204 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1653 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_filename_descending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gint64 _result_ = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ gint64 _tmp3_ = 0LL;
+ gint64 _tmp4_ = 0LL;
+#line 208 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = b;
+#line 208 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = a;
+#line 208 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = thumbnail_filename_ascending_comparator (_tmp0_, _tmp1_);
+#line 208 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = _tmp2_;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = _result_;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_ != ((gint64) 0)) {
+#line 1677 "Thumbnail.c"
+ gint64 _tmp5_ = 0LL;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _result_;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp5_;
+#line 1683 "Thumbnail.c"
+ } else {
+ void* _tmp6_ = NULL;
+ void* _tmp7_ = NULL;
+ gint64 _tmp8_ = 0LL;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = a;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = b;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = thumbnail_photo_id_descending_comparator (_tmp6_, _tmp7_);
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp8_;
+#line 1696 "Thumbnail.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp3_;
+#line 210 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1702 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_rating_ascending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gint64 _result_ = 0LL;
+ void* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+ void* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ Rating _tmp5_ = 0;
+ gint64 _tmp6_ = 0LL;
+ gint64 _tmp7_ = 0LL;
+#line 214 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = a;
+#line 214 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp0_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 214 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = media_source_get_rating (_tmp1_);
+#line 214 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = b;
+#line 214 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST ((Thumbnail*) _tmp3_, TYPE_THUMBNAIL, Thumbnail)->priv->media;
+#line 214 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = media_source_get_rating (_tmp4_);
+#line 214 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = (gint64) (_tmp2_ - _tmp5_);
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = _result_;
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp7_ != ((gint64) 0)) {
+#line 1735 "Thumbnail.c"
+ gint64 _tmp8_ = 0LL;
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = _result_;
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = _tmp8_;
+#line 1741 "Thumbnail.c"
+ } else {
+ void* _tmp9_ = NULL;
+ void* _tmp10_ = NULL;
+ gint64 _tmp11_ = 0LL;
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = a;
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = b;
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = thumbnail_photo_id_ascending_comparator (_tmp9_, _tmp10_);
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = _tmp11_;
+#line 1754 "Thumbnail.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp6_;
+#line 216 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1760 "Thumbnail.c"
+}
+
+
+gint64 thumbnail_rating_descending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ gint64 _result_ = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ gint64 _tmp3_ = 0LL;
+ gint64 _tmp4_ = 0LL;
+#line 220 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = b;
+#line 220 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = a;
+#line 220 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = thumbnail_rating_ascending_comparator (_tmp0_, _tmp1_);
+#line 220 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _result_ = _tmp2_;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = _result_;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_ != ((gint64) 0)) {
+#line 1784 "Thumbnail.c"
+ gint64 _tmp5_ = 0LL;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _result_;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp5_;
+#line 1790 "Thumbnail.c"
+ } else {
+ void* _tmp6_ = NULL;
+ void* _tmp7_ = NULL;
+ gint64 _tmp8_ = 0LL;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = a;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = b;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = thumbnail_photo_id_descending_comparator (_tmp6_, _tmp7_);
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp8_;
+#line 1803 "Thumbnail.c"
+ }
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp3_;
+#line 222 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1809 "Thumbnail.c"
+}
+
+
+gboolean thumbnail_rating_comparator_predicate (DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 225 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 225 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 226 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = alteration;
+#line 226 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "rating");
+#line 226 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp1_;
+#line 226 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 1829 "Thumbnail.c"
+}
+
+
+static void thumbnail_real_thumbnail_altered (ThumbnailView* base) {
+ Thumbnail * self;
+ MediaSource* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ Dimensions _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+#line 229 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL, Thumbnail);
+#line 230 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->media;
+#line 230 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ media_source_get_dimensions (_tmp0_, PHOTO_EXCEPTION_NONE, &_tmp1_);
+#line 230 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->original_dim = _tmp1_;
+#line 231 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = self->priv->scale;
+#line 231 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ dimensions_get_scaled (&self->priv->original_dim, _tmp2_, TRUE, &_tmp3_);
+#line 231 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->dim = _tmp3_;
+#line 233 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = self->priv->exposure;
+#line 233 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_) {
+#line 234 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_delayed_high_quality_fetch (self);
+#line 1860 "Thumbnail.c"
+ } else {
+#line 236 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_paint_empty (self);
+#line 1864 "Thumbnail.c"
+ }
+#line 238 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ THUMBNAIL_VIEW_CLASS (thumbnail_parent_class)->thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), TYPE_THUMBNAIL_VIEW, ThumbnailView));
+#line 1868 "Thumbnail.c"
+}
+
+
+static void thumbnail_real_notify_collection_property_set (DataObject* base, const gchar* name, GValue* old, GValue* val) {
+ Thumbnail * self;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+ const gchar* _tmp5_ = NULL;
+ GValue* _tmp6_ = NULL;
+ GValue _tmp7_ = {0};
+#line 241 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL, Thumbnail);
+#line 241 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (name != NULL);
+#line 241 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (val != NULL);
+#line 242 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = name;
+#line 242 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = _tmp0_;
+#line 242 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 242 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp3_ == g_quark_from_string (THUMBNAIL_PROP_SIZE)) {
+#line 242 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ switch (0) {
+#line 1896 "Thumbnail.c"
+ default:
+ {
+ GValue _tmp4_ = {0};
+#line 244 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = *val;
+#line 244 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_resize (self, g_value_get_int (&_tmp4_));
+#line 245 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ break;
+#line 1906 "Thumbnail.c"
+ }
+ }
+ } else if (_tmp3_ == g_quark_from_string (THUMBNAIL_PROP_SHOW_RATINGS)) {
+#line 242 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ switch (0) {
+#line 1912 "Thumbnail.c"
+ default:
+ {
+#line 248 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ data_view_notify_view_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 249 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ break;
+#line 1919 "Thumbnail.c"
+ }
+ }
+ }
+#line 252 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = name;
+#line 252 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = old;
+#line 252 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = *val;
+#line 252 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ DATA_OBJECT_CLASS (thumbnail_parent_class)->notify_collection_property_set (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), TYPE_DATA_OBJECT, DataObject), _tmp5_, _tmp6_, &_tmp7_);
+#line 1931 "Thumbnail.c"
+}
+
+
+static void thumbnail_resize (Thumbnail* self, gint new_scale) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ Dimensions _tmp10_ = {0};
+ gboolean _tmp11_ = FALSE;
+#line 255 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 256 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = new_scale;
+#line 256 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = thumbnail_get_MIN_SCALE ();
+#line 256 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = _tmp1_;
+#line 256 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _vala_assert (_tmp0_ >= _tmp2_, "new_scale >= MIN_SCALE");
+#line 257 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = new_scale;
+#line 257 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = thumbnail_get_MAX_SCALE ();
+#line 257 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _tmp4_;
+#line 257 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _vala_assert (_tmp3_ <= _tmp5_, "new_scale <= MAX_SCALE");
+#line 259 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = self->priv->scale;
+#line 259 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = new_scale;
+#line 259 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp6_ == _tmp7_) {
+#line 260 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return;
+#line 1974 "Thumbnail.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = new_scale;
+#line 262 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->scale = _tmp8_;
+#line 263 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = self->priv->scale;
+#line 263 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ dimensions_get_scaled (&self->priv->original_dim, _tmp9_, TRUE, &_tmp10_);
+#line 263 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->dim = _tmp10_;
+#line 265 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_cancel_async_fetch (self);
+#line 267 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = self->priv->exposure;
+#line 267 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp11_) {
+#line 1992 "Thumbnail.c"
+ GdkPixbuf* resizable = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp17_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ resizable = NULL;
+#line 273 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp12_ = self->priv->unscaled_pixbuf;
+#line 273 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp12_ != NULL) {
+#line 2002 "Thumbnail.c"
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp13_ = self->priv->unscaled_pixbuf;
+#line 274 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp14_ = _g_object_ref0 (_tmp13_);
+#line 274 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (resizable);
+#line 274 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ resizable = _tmp14_;
+#line 2013 "Thumbnail.c"
+ } else {
+ gboolean _tmp15_ = FALSE;
+#line 275 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp15_ = checkerboard_item_has_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 275 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp15_) {
+#line 2020 "Thumbnail.c"
+ GdkPixbuf* _tmp16_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp16_ = checkerboard_item_get_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 276 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (resizable);
+#line 276 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ resizable = _tmp16_;
+#line 2028 "Thumbnail.c"
+ }
+ }
+#line 278 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp17_ = resizable;
+#line 278 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp17_ != NULL) {
+#line 2035 "Thumbnail.c"
+ GdkPixbuf* _tmp18_ = NULL;
+ Dimensions _tmp19_ = {0};
+ GdkPixbuf* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp18_ = resizable;
+#line 279 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp19_ = self->priv->dim;
+#line 279 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp20_ = resize_pixbuf (_tmp18_, &_tmp19_, THUMBNAIL_LOW_QUALITY_INTERP);
+#line 279 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp21_ = _tmp20_;
+#line 279 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_set_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp21_);
+#line 279 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp21_);
+#line 2052 "Thumbnail.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_delayed_high_quality_fetch (self);
+#line 267 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (resizable);
+#line 2058 "Thumbnail.c"
+ } else {
+ Dimensions _tmp22_ = {0};
+#line 283 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp22_ = self->priv->dim;
+#line 283 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_clear_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), &_tmp22_);
+#line 2065 "Thumbnail.c"
+ }
+}
+
+
+static void thumbnail_paint_empty (Thumbnail* self) {
+ Dimensions _tmp0_ = {0};
+#line 287 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 288 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_cancel_async_fetch (self);
+#line 289 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->dim;
+#line 289 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_clear_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), &_tmp0_);
+#line 290 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->unscaled_pixbuf);
+#line 290 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->unscaled_pixbuf = NULL;
+#line 2084 "Thumbnail.c"
+}
+
+
+static void _thumbnail_on_low_quality_fetched_thumbnail_cache_async_fetch_callback (GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err, gpointer self) {
+#line 297 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_on_low_quality_fetched ((Thumbnail*) self, pixbuf, unscaled, dim, interp, err);
+#line 2091 "Thumbnail.c"
+}
+
+
+static void thumbnail_schedule_low_quality_fetch (Thumbnail* self) {
+ GCancellable* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ GCancellable* _tmp3_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 294 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_cancel_async_fetch (self);
+#line 295 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = g_cancellable_new ();
+#line 295 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 295 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->cancellable = _tmp0_;
+#line 297 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = self->priv->media;
+#line 297 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = self->priv->dim;
+#line 297 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = self->priv->cancellable;
+#line 297 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_cache_fetch_async_scaled (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), (gint) THUMBNAIL_CACHE_SIZE_SMALLEST, &_tmp2_, THUMBNAIL_LOW_QUALITY_INTERP, _thumbnail_on_low_quality_fetched_thumbnail_cache_async_fetch_callback, self, _tmp3_);
+#line 2118 "Thumbnail.c"
+}
+
+
+static gboolean _thumbnail_on_schedule_high_quality_gsource_func (gpointer self) {
+ gboolean result;
+ result = thumbnail_on_schedule_high_quality ((Thumbnail*) self);
+#line 308 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2127 "Thumbnail.c"
+}
+
+
+static void thumbnail_delayed_high_quality_fetch (Thumbnail* self) {
+ gboolean _tmp0_ = FALSE;
+#line 301 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 302 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->hq_scheduled;
+#line 302 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp0_) {
+#line 303 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->hq_reschedule = TRUE;
+#line 305 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return;
+#line 2143 "Thumbnail.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) THUMBNAIL_HQ_IMPROVEMENT_MSEC, _thumbnail_on_schedule_high_quality_gsource_func, g_object_ref (self), g_object_unref);
+#line 309 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->hq_scheduled = TRUE;
+#line 2149 "Thumbnail.c"
+}
+
+
+static void _thumbnail_on_high_quality_fetched_thumbnail_cache_async_fetch_callback (GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err, gpointer self) {
+#line 323 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_on_high_quality_fetched ((Thumbnail*) self, pixbuf, unscaled, dim, interp, err);
+#line 2156 "Thumbnail.c"
+}
+
+
+static gboolean thumbnail_on_schedule_high_quality (Thumbnail* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GCancellable* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 312 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_val_if_fail (IS_THUMBNAIL (self), FALSE);
+#line 313 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->hq_reschedule;
+#line 313 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp0_) {
+#line 314 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->hq_reschedule = FALSE;
+#line 316 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = TRUE;
+#line 316 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2177 "Thumbnail.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_cancel_async_fetch (self);
+#line 320 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = g_cancellable_new ();
+#line 320 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 320 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->cancellable = _tmp1_;
+#line 322 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = self->priv->exposure;
+#line 322 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp2_) {
+#line 2191 "Thumbnail.c"
+ MediaSource* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ GCancellable* _tmp6_ = NULL;
+#line 323 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = self->priv->media;
+#line 323 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = self->priv->scale;
+#line 323 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = self->priv->dim;
+#line 323 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = self->priv->cancellable;
+#line 323 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_cache_fetch_async_scaled (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp4_, &_tmp5_, THUMBNAIL_HIGH_QUALITY_INTERP, _thumbnail_on_high_quality_fetched_thumbnail_cache_async_fetch_callback, self, _tmp6_);
+#line 2206 "Thumbnail.c"
+ }
+#line 327 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->hq_scheduled = FALSE;
+#line 329 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = FALSE;
+#line 329 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2214 "Thumbnail.c"
+}
+
+
+static void thumbnail_cancel_async_fetch (Thumbnail* self) {
+ GCancellable* _tmp0_ = NULL;
+#line 332 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 334 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 334 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp0_ != NULL) {
+#line 2226 "Thumbnail.c"
+ GCancellable* _tmp1_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = self->priv->cancellable;
+#line 335 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_cancellable_cancel (_tmp1_);
+#line 2232 "Thumbnail.c"
+ }
+}
+
+
+static void thumbnail_on_low_quality_fetched (Thumbnail* self, GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err) {
+ GError* _tmp0_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 338 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail ((pixbuf == NULL) || GDK_IS_PIXBUF (pixbuf));
+#line 338 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail ((unscaled == NULL) || GDK_IS_PIXBUF (unscaled));
+#line 338 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (dim != NULL);
+#line 340 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = err;
+#line 340 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp0_ != NULL) {
+#line 2253 "Thumbnail.c"
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 341 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 341 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = _tmp1_;
+#line 341 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = self->priv->scale;
+#line 341 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = err;
+#line 341 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _tmp4_->message;
+#line 341 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_critical ("Thumbnail.vala:341: Unable to fetch low-quality thumbnail for %s (scal" \
+"e: %d): %s", _tmp2_, _tmp3_, _tmp5_);
+#line 341 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp2_);
+#line 2273 "Thumbnail.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = pixbuf;
+#line 344 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp6_ != NULL) {
+#line 2279 "Thumbnail.c"
+ GdkPixbuf* _tmp7_ = NULL;
+#line 345 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = pixbuf;
+#line 345 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_set_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp7_);
+#line 2285 "Thumbnail.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = unscaled;
+#line 347 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp8_ != NULL) {
+#line 2291 "Thumbnail.c"
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = unscaled;
+#line 348 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 348 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->unscaled_pixbuf);
+#line 348 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->unscaled_pixbuf = _tmp10_;
+#line 2302 "Thumbnail.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_delayed_high_quality_fetch (self);
+#line 2306 "Thumbnail.c"
+}
+
+
+static void thumbnail_on_high_quality_fetched (Thumbnail* self, GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err) {
+ GError* _tmp0_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 353 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (IS_THUMBNAIL (self));
+#line 353 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail ((pixbuf == NULL) || GDK_IS_PIXBUF (pixbuf));
+#line 353 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail ((unscaled == NULL) || GDK_IS_PIXBUF (unscaled));
+#line 353 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_return_if_fail (dim != NULL);
+#line 355 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = err;
+#line 355 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp0_ != NULL) {
+#line 2326 "Thumbnail.c"
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 356 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 356 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = _tmp1_;
+#line 356 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = self->priv->scale;
+#line 356 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = err;
+#line 356 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _tmp4_->message;
+#line 356 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_critical ("Thumbnail.vala:356: Unable to fetch high-quality thumbnail for %s (sca" \
+"le: %d): %s", _tmp2_, _tmp3_, _tmp5_);
+#line 356 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_free0 (_tmp2_);
+#line 2346 "Thumbnail.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = pixbuf;
+#line 359 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp6_ != NULL) {
+#line 2352 "Thumbnail.c"
+ GdkPixbuf* _tmp7_ = NULL;
+#line 360 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = pixbuf;
+#line 360 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ checkerboard_item_set_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp7_);
+#line 2358 "Thumbnail.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = unscaled;
+#line 362 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp8_ != NULL) {
+#line 2364 "Thumbnail.c"
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = unscaled;
+#line 363 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 363 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->unscaled_pixbuf);
+#line 363 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->unscaled_pixbuf = _tmp10_;
+#line 2375 "Thumbnail.c"
+ }
+}
+
+
+static void thumbnail_real_exposed (CheckerboardItem* base) {
+ Thumbnail * self;
+ gboolean _tmp0_ = FALSE;
+#line 366 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL, Thumbnail);
+#line 367 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->exposure = TRUE;
+#line 369 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = checkerboard_item_has_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 369 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (!_tmp0_) {
+#line 370 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_schedule_low_quality_fetch (self);
+#line 2393 "Thumbnail.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_title (self, FALSE);
+#line 373 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_comment (self, FALSE);
+#line 374 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_update_tags (self, FALSE);
+#line 376 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ CHECKERBOARD_ITEM_CLASS (thumbnail_parent_class)->exposed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 2403 "Thumbnail.c"
+}
+
+
+static void thumbnail_real_unexposed (CheckerboardItem* base) {
+ Thumbnail * self;
+#line 379 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL, Thumbnail);
+#line 380 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->exposure = FALSE;
+#line 382 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_paint_empty (self);
+#line 384 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ CHECKERBOARD_ITEM_CLASS (thumbnail_parent_class)->unexposed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 2417 "Thumbnail.c"
+}
+
+
+static GdkPixbuf* thumbnail_real_get_top_right_trinket (CheckerboardItem* base, gint scale) {
+ Thumbnail * self;
+ GdkPixbuf* result = NULL;
+ Flaggable* flaggable = NULL;
+ MediaSource* _tmp0_ = NULL;
+ Flaggable* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ Flaggable* _tmp4_ = NULL;
+#line 387 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL, Thumbnail);
+#line 388 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->media;
+#line 388 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp0_) : NULL);
+#line 388 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ flaggable = _tmp1_;
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = flaggable;
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp4_ != NULL) {
+#line 2442 "Thumbnail.c"
+ Flaggable* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = flaggable;
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = flaggable_is_flagged (_tmp5_);
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = _tmp6_;
+#line 2451 "Thumbnail.c"
+ } else {
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = FALSE;
+#line 2455 "Thumbnail.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp3_) {
+#line 2459 "Thumbnail.c"
+ GdkPixbuf* _tmp7_ = NULL;
+#line 391 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = resources_get_icon (RESOURCES_ICON_FLAGGED_TRINKET, RESOURCES_DEFAULT_ICON_SCALE);
+#line 391 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp2_);
+#line 391 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = _tmp7_;
+#line 2467 "Thumbnail.c"
+ } else {
+#line 391 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp2_);
+#line 391 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = NULL;
+#line 2473 "Thumbnail.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp2_;
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (flaggable);
+#line 390 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2481 "Thumbnail.c"
+}
+
+
+static void _vala_GValue_free (GValue* self) {
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_value_unset (self);
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_free (self);
+#line 2490 "Thumbnail.c"
+}
+
+
+static GdkPixbuf* thumbnail_real_get_bottom_left_trinket (CheckerboardItem* base, gint scale) {
+ Thumbnail * self;
+ GdkPixbuf* result = NULL;
+ Rating rating = 0;
+ MediaSource* _tmp0_ = NULL;
+ Rating _tmp1_ = 0;
+ gboolean show_ratings = FALSE;
+ GValue* _tmp2_ = NULL;
+ GValue* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GdkPixbuf* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ Rating _tmp7_ = 0;
+#line 394 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_THUMBNAIL, Thumbnail);
+#line 395 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->media;
+#line 395 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = media_source_get_rating (_tmp0_);
+#line 395 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ rating = _tmp1_;
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = g_new0 (GValue, 1);
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_value_init (_tmp2_, G_TYPE_BOOLEAN);
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_value_set_boolean (_tmp2_, FALSE);
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp3_ = data_object_get_collection_property (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), THUMBNAIL_PROP_SHOW_RATINGS, _tmp2_);
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = g_value_get_boolean (_tmp3_);
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ __vala_GValue_free0 (_tmp2_);
+#line 396 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ show_ratings = _tmp4_;
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp7_ = rating;
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp7_ != RATING_UNRATED) {
+#line 2533 "Thumbnail.c"
+ gboolean _tmp8_ = FALSE;
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp8_ = show_ratings;
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = _tmp8_;
+#line 2539 "Thumbnail.c"
+ } else {
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp6_ = FALSE;
+#line 2543 "Thumbnail.c"
+ }
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp6_) {
+#line 2547 "Thumbnail.c"
+ Rating _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ GdkPixbuf* _tmp11_ = NULL;
+#line 399 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp9_ = rating;
+#line 399 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp10_ = scale;
+#line 399 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp11_ = resources_get_rating_trinket (_tmp9_, _tmp10_);
+#line 399 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp5_);
+#line 399 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = _tmp11_;
+#line 2561 "Thumbnail.c"
+ } else {
+#line 399 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (_tmp5_);
+#line 399 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp5_ = NULL;
+#line 2567 "Thumbnail.c"
+ }
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp5_;
+#line 398 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2573 "Thumbnail.c"
+}
+
+
+gint thumbnail_get_MIN_SCALE (void) {
+ gint result;
+#line 18 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = 72;
+#line 18 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2583 "Thumbnail.c"
+}
+
+
+gint thumbnail_get_MAX_SCALE (void) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 23 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = thumbnail_cache_size_get_scale (THUMBNAIL_CACHE_SIZE_LARGEST);
+#line 23 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp0_;
+#line 23 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2596 "Thumbnail.c"
+}
+
+
+gint thumbnail_get_DEFAULT_SCALE (void) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 28 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = thumbnail_cache_size_get_scale (THUMBNAIL_CACHE_SIZE_MEDIUM);
+#line 28 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ result = _tmp0_;
+#line 28 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ return result;
+#line 2609 "Thumbnail.c"
+}
+
+
+static void thumbnail_class_init (ThumbnailClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ thumbnail_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_type_class_add_private (klass, sizeof (ThumbnailPrivate));
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ ((DataObjectClass *) klass)->notify_altered = thumbnail_real_notify_altered;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ ((ThumbnailViewClass *) klass)->thumbnail_altered = thumbnail_real_thumbnail_altered;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ ((DataObjectClass *) klass)->notify_collection_property_set = thumbnail_real_notify_collection_property_set;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ ((CheckerboardItemClass *) klass)->exposed = thumbnail_real_exposed;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ ((CheckerboardItemClass *) klass)->unexposed = thumbnail_real_unexposed;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ ((CheckerboardItemClass *) klass)->get_top_right_trinket = thumbnail_real_get_top_right_trinket;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ ((CheckerboardItemClass *) klass)->get_bottom_left_trinket = thumbnail_real_get_bottom_left_trinket;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_thumbnail_get_property;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ G_OBJECT_CLASS (klass)->finalize = thumbnail_finalize;
+#line 2636 "Thumbnail.c"
+}
+
+
+static void thumbnail_instance_init (Thumbnail * self) {
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv = THUMBNAIL_GET_PRIVATE (self);
+#line 41 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->unscaled_pixbuf = NULL;
+#line 42 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->cancellable = NULL;
+#line 43 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->hq_scheduled = FALSE;
+#line 44 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->hq_reschedule = FALSE;
+#line 47 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self->priv->exposure = FALSE;
+#line 2653 "Thumbnail.c"
+}
+
+
+static void thumbnail_finalize (GObject* obj) {
+ Thumbnail * self;
+ GCancellable* _tmp0_ = NULL;
+ TagSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ TagSourceCollection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_THUMBNAIL, Thumbnail);
+#line 73 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 73 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ if (_tmp0_ != NULL) {
+#line 2670 "Thumbnail.c"
+ GCancellable* _tmp1_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp1_ = self->priv->cancellable;
+#line 74 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_cancellable_cancel (_tmp1_);
+#line 2676 "Thumbnail.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp2_ = tag_global;
+#line 76 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_signal_parse_name ("container-contents-altered", TYPE_CONTAINER_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 76 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _thumbnail_on_tag_contents_altered_container_source_collection_container_contents_altered, self);
+#line 77 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _tmp4_ = tag_global;
+#line 77 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp5_, NULL, FALSE);
+#line 77 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _thumbnail_on_tags_altered_data_collection_items_altered, self);
+#line 37 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->media);
+#line 41 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->unscaled_pixbuf);
+#line 42 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ G_OBJECT_CLASS (thumbnail_parent_class)->finalize (obj);
+#line 2698 "Thumbnail.c"
+}
+
+
+GType thumbnail_get_type (void) {
+ static volatile gsize thumbnail_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnail_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Thumbnail), 0, (GInstanceInitFunc) thumbnail_instance_init, NULL };
+ GType thumbnail_type_id;
+ thumbnail_type_id = g_type_register_static (TYPE_MEDIA_SOURCE_ITEM, "Thumbnail", &g_define_type_info, 0);
+ g_once_init_leave (&thumbnail_type_id__volatile, thumbnail_type_id);
+ }
+ return thumbnail_type_id__volatile;
+}
+
+
+static void _vala_thumbnail_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ Thumbnail * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_THUMBNAIL, Thumbnail);
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ switch (property_id) {
+#line 2719 "Thumbnail.c"
+ default:
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 7 "/home/jens/Source/shotwell/src/Thumbnail.vala"
+ break;
+#line 2725 "Thumbnail.c"
+ }
+}
+
+
+
diff --git a/src/Thumbnail.vala b/src/Thumbnail.vala
index 983ab75..2fe28e8 100644
--- a/src/Thumbnail.vala
+++ b/src/Thumbnail.vala
@@ -80,11 +80,9 @@ public class Thumbnail : MediaSourceItem {
private void update_tags(bool init = false) {
Gee.Collection<Tag>? tags = Tag.global.fetch_sorted_for_source(media);
if (tags == null || tags.size == 0)
- clear_subtitle();
- else if (!init)
- set_subtitle(Tag.make_tag_string(tags, "<small>", ", ", "</small>", true), true);
+ clear_tags();
else
- set_subtitle("<small>.</small>", true);
+ set_tags(tags);
}
private void on_tag_contents_altered(ContainerSource container, Gee.Collection<DataSource>? added,
diff --git a/src/ThumbnailCache.c b/src/ThumbnailCache.c
new file mode 100644
index 0000000..225b52d
--- /dev/null
+++ b/src/ThumbnailCache.c
@@ -0,0 +1,4522 @@
+/* ThumbnailCache.c generated by valac 0.32.1, the Vala compiler
+ * generated from ThumbnailCache.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_THUMBNAILS (thumbnails_get_type ())
+#define THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAILS, Thumbnails))
+#define THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAILS, ThumbnailsClass))
+#define IS_THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAILS))
+#define IS_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAILS))
+#define THUMBNAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAILS, ThumbnailsClass))
+
+typedef struct _Thumbnails Thumbnails;
+typedef struct _ThumbnailsClass ThumbnailsClass;
+typedef struct _ThumbnailsPrivate ThumbnailsPrivate;
+
+#define THUMBNAIL_CACHE_TYPE_SIZE (thumbnail_cache_size_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecThumbnails ParamSpecThumbnails;
+
+#define TYPE_THUMBNAIL_CACHE (thumbnail_cache_get_type ())
+#define THUMBNAIL_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_CACHE, ThumbnailCache))
+#define THUMBNAIL_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_CACHE, ThumbnailCacheClass))
+#define IS_THUMBNAIL_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_CACHE))
+#define IS_THUMBNAIL_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_CACHE))
+#define THUMBNAIL_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_CACHE, ThumbnailCacheClass))
+
+typedef struct _ThumbnailCache ThumbnailCache;
+typedef struct _ThumbnailCacheClass ThumbnailCacheClass;
+typedef struct _ThumbnailCachePrivate ThumbnailCachePrivate;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+
+#define THUMBNAIL_CACHE_TYPE_IMAGE_DATA (thumbnail_cache_image_data_get_type ())
+#define THUMBNAIL_CACHE_IMAGE_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUMBNAIL_CACHE_TYPE_IMAGE_DATA, ThumbnailCacheImageData))
+#define THUMBNAIL_CACHE_IMAGE_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUMBNAIL_CACHE_TYPE_IMAGE_DATA, ThumbnailCacheImageDataClass))
+#define THUMBNAIL_CACHE_IS_IMAGE_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUMBNAIL_CACHE_TYPE_IMAGE_DATA))
+#define THUMBNAIL_CACHE_IS_IMAGE_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUMBNAIL_CACHE_TYPE_IMAGE_DATA))
+#define THUMBNAIL_CACHE_IMAGE_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUMBNAIL_CACHE_TYPE_IMAGE_DATA, ThumbnailCacheImageDataClass))
+
+typedef struct _ThumbnailCacheImageData ThumbnailCacheImageData;
+typedef struct _ThumbnailCacheImageDataClass ThumbnailCacheImageDataClass;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_ROTATION (rotation_get_type ())
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB (thumbnail_cache_async_fetch_job_get_type ())
+#define THUMBNAIL_CACHE_ASYNC_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, ThumbnailCacheAsyncFetchJob))
+#define THUMBNAIL_CACHE_ASYNC_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, ThumbnailCacheAsyncFetchJobClass))
+#define THUMBNAIL_CACHE_IS_ASYNC_FETCH_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB))
+#define THUMBNAIL_CACHE_IS_ASYNC_FETCH_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB))
+#define THUMBNAIL_CACHE_ASYNC_FETCH_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, ThumbnailCacheAsyncFetchJobClass))
+
+typedef struct _ThumbnailCacheAsyncFetchJob ThumbnailCacheAsyncFetchJob;
+typedef struct _ThumbnailCacheAsyncFetchJobClass ThumbnailCacheAsyncFetchJobClass;
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _ThumbnailCacheAsyncFetchJobPrivate ThumbnailCacheAsyncFetchJobPrivate;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL)))
+typedef struct _ThumbnailCacheImageDataPrivate ThumbnailCacheImageDataPrivate;
+#define _thumbnail_cache_image_data_unref0(var) ((var == NULL) ? NULL : (var = (thumbnail_cache_image_data_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+typedef struct _ThumbnailCacheParamSpecImageData ThumbnailCacheParamSpecImageData;
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Thumbnails {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ThumbnailsPrivate * priv;
+};
+
+struct _ThumbnailsClass {
+ GTypeClass parent_class;
+ void (*finalize) (Thumbnails *self);
+};
+
+typedef enum {
+ THUMBNAIL_CACHE_SIZE_LARGEST = 360,
+ THUMBNAIL_CACHE_SIZE_BIG = 360,
+ THUMBNAIL_CACHE_SIZE_MEDIUM = 128,
+ THUMBNAIL_CACHE_SIZE_SMALLEST = 128
+} ThumbnailCacheSize;
+
+struct _ThumbnailsPrivate {
+ GeeHashMap* map;
+};
+
+struct _ParamSpecThumbnails {
+ GParamSpec parent_instance;
+};
+
+struct _ThumbnailCache {
+ GObject parent_instance;
+ ThumbnailCachePrivate * priv;
+};
+
+struct _ThumbnailCacheClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ThumbnailCachePrivate {
+ GFile* cache_dir;
+ ThumbnailCacheSize size;
+ gulong max_cached_bytes;
+ GdkInterpType interp;
+ JpegQuality quality;
+ GeeHashMap* cache_map;
+ GeeArrayList* cache_lru;
+ gulong cached_bytes;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef void (*OneShotCallback) (void* user_data);
+typedef void (*ThumbnailCacheAsyncFetchCallback) (GdkPixbuf* pixbuf, GdkPixbuf* unscaled, Dimensions* dim, GdkInterpType interp, GError* err, void* user_data);
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ ROTATION_CLOCKWISE,
+ ROTATION_COUNTERCLOCKWISE,
+ ROTATION_MIRROR,
+ ROTATION_UPSIDE_DOWN
+} Rotation;
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _ThumbnailCacheAsyncFetchJob {
+ BackgroundJob parent_instance;
+ ThumbnailCacheAsyncFetchJobPrivate * priv;
+ ThumbnailCache* cache;
+ gchar* thumbnail_name;
+ ThumbnailSource* source;
+ PhotoFileFormat source_format;
+ Dimensions dim;
+ GdkInterpType interp;
+ ThumbnailCacheAsyncFetchCallback callback;
+ gpointer callback_target;
+ GdkPixbuf* unscaled;
+ GdkPixbuf* scaled;
+ GError* err;
+ gboolean fetched;
+ gboolean replace;
+};
+
+struct _ThumbnailCacheAsyncFetchJobClass {
+ BackgroundJobClass parent_class;
+};
+
+struct _ThumbnailCacheImageData {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ThumbnailCacheImageDataPrivate * priv;
+ GdkPixbuf* pixbuf;
+ gulong bytes;
+};
+
+struct _ThumbnailCacheImageDataClass {
+ GTypeClass parent_class;
+ void (*finalize) (ThumbnailCacheImageData *self);
+};
+
+typedef enum {
+ PHOTO_FORMAT_ERROR_READ_ONLY
+} PhotoFormatError;
+#define PHOTO_FORMAT_ERROR photo_format_error_quark ()
+struct _ThumbnailCacheParamSpecImageData {
+ GParamSpec parent_instance;
+};
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+
+static gpointer thumbnails_parent_class = NULL;
+static gpointer thumbnail_cache_parent_class = NULL;
+static ThumbnailCacheSize* thumbnail_cache_ALL_SIZES;
+static gint thumbnail_cache_ALL_SIZES_length1;
+static ThumbnailCacheSize* thumbnail_cache_ALL_SIZES = NULL;
+static gint thumbnail_cache_ALL_SIZES_length1 = 0;
+static gint _thumbnail_cache_ALL_SIZES_size_ = 0;
+static Workers* thumbnail_cache_fetch_workers;
+static Workers* thumbnail_cache_fetch_workers = NULL;
+static ThumbnailCache* thumbnail_cache_big;
+static ThumbnailCache* thumbnail_cache_big = NULL;
+static ThumbnailCache* thumbnail_cache_medium;
+static ThumbnailCache* thumbnail_cache_medium = NULL;
+static OneShotScheduler* thumbnail_cache_debug_scheduler;
+static OneShotScheduler* thumbnail_cache_debug_scheduler = NULL;
+static gint thumbnail_cache_cycle_fetched_thumbnails;
+static gint thumbnail_cache_cycle_fetched_thumbnails = 0;
+static gint thumbnail_cache_cycle_async_fetched_thumbnails;
+static gint thumbnail_cache_cycle_async_fetched_thumbnails = 0;
+static gint thumbnail_cache_cycle_async_resized_thumbnails;
+static gint thumbnail_cache_cycle_async_resized_thumbnails = 0;
+static gint thumbnail_cache_cycle_overflow_thumbnails;
+static gint thumbnail_cache_cycle_overflow_thumbnails = 0;
+static gulong thumbnail_cache_cycle_dropped_bytes;
+static gulong thumbnail_cache_cycle_dropped_bytes = (gulong) 0;
+static gpointer thumbnail_cache_image_data_parent_class = NULL;
+static gpointer thumbnail_cache_async_fetch_job_parent_class = NULL;
+
+gpointer thumbnails_ref (gpointer instance);
+void thumbnails_unref (gpointer instance);
+GParamSpec* param_spec_thumbnails (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_thumbnails (GValue* value, gpointer v_object);
+void value_take_thumbnails (GValue* value, gpointer v_object);
+gpointer value_get_thumbnails (const GValue* value);
+GType thumbnails_get_type (void) G_GNUC_CONST;
+GType thumbnail_cache_size_get_type (void) G_GNUC_CONST;
+#define THUMBNAILS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_THUMBNAILS, ThumbnailsPrivate))
+enum {
+ THUMBNAILS_DUMMY_PROPERTY
+};
+Thumbnails* thumbnails_new (void);
+Thumbnails* thumbnails_construct (GType object_type);
+void thumbnails_set (Thumbnails* self, ThumbnailCacheSize size, GdkPixbuf* pixbuf);
+void thumbnails_remove (Thumbnails* self, ThumbnailCacheSize size);
+GdkPixbuf* thumbnails_get (Thumbnails* self, ThumbnailCacheSize size);
+static void thumbnails_finalize (Thumbnails* obj);
+GType thumbnail_cache_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+static gpointer thumbnail_cache_image_data_ref (gpointer instance);
+static void thumbnail_cache_image_data_unref (gpointer instance);
+static GParamSpec* thumbnail_cache_param_spec_image_data (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void thumbnail_cache_value_set_image_data (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void thumbnail_cache_value_take_image_data (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer thumbnail_cache_value_get_image_data (const GValue* value) G_GNUC_UNUSED;
+static GType thumbnail_cache_image_data_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define THUMBNAIL_CACHE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_THUMBNAIL_CACHE, ThumbnailCachePrivate))
+enum {
+ THUMBNAIL_CACHE_DUMMY_PROPERTY
+};
+gint thumbnail_cache_size_get_scale (ThumbnailCacheSize self);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void thumbnail_cache_size_get_scaling (ThumbnailCacheSize self, Scaling* result);
+void scaling_for_best_fit (gint pixels, gboolean scale_up, Scaling* result);
+ThumbnailCacheSize thumbnail_cache_size_get_best_size (gint scale);
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+#define THUMBNAIL_CACHE_DEFAULT_INTERP GDK_INTERP_HYPER
+#define THUMBNAIL_CACHE_DEFAULT_QUALITY JPEG_QUALITY_HIGH
+#define THUMBNAIL_CACHE_MAX_INMEMORY_DATA_SIZE (512 * 1024)
+#define THUMBNAIL_CACHE_MAX_BIG_CACHED_BYTES ((gulong) ((40 * 1024) * 1024))
+#define THUMBNAIL_CACHE_MAX_MEDIUM_CACHED_BYTES ((gulong) ((30 * 1024) * 1024))
+static ThumbnailCache* thumbnail_cache_new (ThumbnailCacheSize size, gulong max_cached_bytes, GdkInterpType interp, JpegQuality quality);
+static ThumbnailCache* thumbnail_cache_construct (GType object_type, ThumbnailCacheSize size, gulong max_cached_bytes, GdkInterpType interp, JpegQuality quality);
+GFile* app_dirs_get_cache_subdir (const gchar* name, const gchar* subname);
+void thumbnail_cache_init (void);
+static void thumbnail_cache_report_cycle (void);
+static void _thumbnail_cache_report_cycle_one_shot_callback (gpointer self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+guint workers_threads_per_cpu (gint per, gint max);
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+void thumbnail_cache_terminate (void);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+void thumbnail_cache_import_from_source (ThumbnailSource* source, gboolean force, GError** error);
+gchar* data_object_to_string (DataObject* self);
+static void _thumbnail_cache_import_from_source (ThumbnailCache* self, ThumbnailSource* source, gboolean force, GError** error);
+void thumbnail_cache_import_thumbnails (ThumbnailSource* source, Thumbnails* thumbnails, gboolean force, GError** error);
+static void _thumbnail_cache_import_thumbnail (ThumbnailCache* self, ThumbnailSource* source, GdkPixbuf* scaled, gboolean force, GError** error);
+void thumbnail_cache_duplicate (ThumbnailSource* src_source, ThumbnailSource* dest_source);
+static void _thumbnail_cache_duplicate (ThumbnailCache* self, ThumbnailSource* src_source, ThumbnailSource* dest_source);
+void thumbnail_cache_remove (ThumbnailSource* source);
+static void _thumbnail_cache_remove (ThumbnailCache* self, ThumbnailSource* source);
+static ThumbnailCache* thumbnail_cache_get_best_cache (gint scale);
+static ThumbnailCache* thumbnail_cache_get_cache_for (ThumbnailCacheSize size);
+GdkPixbuf* thumbnail_cache_fetch (ThumbnailSource* source, gint scale, GError** error);
+static GdkPixbuf* _thumbnail_cache_fetch (ThumbnailCache* self, ThumbnailSource* source, GError** error);
+void thumbnail_cache_fetch_async (ThumbnailSource* source, gint scale, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+static void _thumbnail_cache_fetch_async (ThumbnailCache* self, ThumbnailSource* source, PhotoFileFormat format, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable);
+PhotoFileFormat thumbnail_source_get_preferred_thumbnail_format (ThumbnailSource* self);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void thumbnail_cache_fetch_async_scaled (ThumbnailSource* source, gint scale, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable);
+void thumbnail_cache_replace (ThumbnailSource* source, ThumbnailCacheSize size, GdkPixbuf* replacement, GError** error);
+static void _thumbnail_cache_replace (ThumbnailCache* self, ThumbnailSource* source, GdkPixbuf* original, GError** error);
+gboolean thumbnail_cache_exists (ThumbnailSource* source);
+static gboolean _thumbnail_cache_exists (ThumbnailCache* self, ThumbnailSource* source);
+GType rotation_get_type (void) G_GNUC_CONST;
+void thumbnail_cache_rotate (ThumbnailSource* source, Rotation rotation, GError** error);
+GdkPixbuf* rotation_perform (Rotation self, GdkPixbuf* pixbuf);
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+GType orientation_get_type (void) G_GNUC_CONST;
+void thumbnail_cache_generate_for_photo (Thumbnails* thumbnails, PhotoFileReader* reader, Orientation orientation, Dimensions* original_dim, GError** error);
+void scaling_get_scaled_dimensions (Scaling *self, Dimensions* original, Dimensions* result);
+GdkPixbuf* photo_file_reader_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+GdkPixbuf* photo_file_reader_unscaled_read (PhotoFileReader* self, GError** error);
+GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+void thumbnail_cache_generate_for_video_frame (Thumbnails* thumbnails, GdkPixbuf* preview_frame);
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up);
+static void thumbnail_cache_schedule_debug (void);
+static GdkPixbuf* thumbnail_cache_fetch_from_memory (ThumbnailCache* self, const gchar* thumbnail_name);
+gchar* data_source_get_source_id (DataSource* self);
+static GdkPixbuf* thumbnail_cache_read_pixbuf (ThumbnailCache* self, const gchar* thumbnail_name, PhotoFileFormat format, GError** error);
+static void thumbnail_cache_store_in_memory (ThumbnailCache* self, const gchar* thumbnail_name, GdkPixbuf* thumbnail);
+gboolean dimensions_has_area (Dimensions *self);
+gboolean dimensions_equals (Dimensions *self, Dimensions* dim);
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static ThumbnailCacheAsyncFetchJob* thumbnail_cache_async_fetch_job_new (ThumbnailCache* cache, const gchar* thumbnail_name, ThumbnailSource* source, GdkPixbuf* prefetched, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable);
+static ThumbnailCacheAsyncFetchJob* thumbnail_cache_async_fetch_job_construct (GType object_type, ThumbnailCache* cache, const gchar* thumbnail_name, ThumbnailSource* source, GdkPixbuf* prefetched, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable);
+static GType thumbnail_cache_async_fetch_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static void thumbnail_cache_async_fetch_completion_callback (BackgroundJob* background_job);
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+static GFile* thumbnail_cache_get_source_cached_file (ThumbnailCache* self, ThumbnailSource* source);
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+static void thumbnail_cache_save_thumbnail (ThumbnailCache* self, GFile* file, GdkPixbuf* pixbuf, ThumbnailSource* source, GError** error);
+gboolean dimensions_approx_scaled (Dimensions *self, gint scale, gint fudge);
+static GFile* thumbnail_cache_get_cached_file (ThumbnailCache* self, const gchar* thumbnail_name, PhotoFileFormat thumbnail_format);
+gchar* thumbnail_source_get_representative_id (ThumbnailSource* self);
+void app_window_panic (const gchar* msg);
+static gboolean thumbnail_cache_remove_from_memory (ThumbnailCache* self, const gchar* thumbnail_name);
+GdkPixbuf* scale_pixbuf (GdkPixbuf* pixbuf, gint scale, GdkInterpType interp, gboolean scale_up);
+PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath);
+gchar* photo_file_format_get_default_basename (PhotoFileFormat self, const gchar* name);
+static ThumbnailCacheImageData* thumbnail_cache_image_data_new (GdkPixbuf* pixbuf);
+static ThumbnailCacheImageData* thumbnail_cache_image_data_construct (GType object_type, GdkPixbuf* pixbuf);
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GQuark photo_format_error_quark (void);
+PhotoFileWriter* photo_file_format_create_writer (PhotoFileFormat self, const gchar* filepath, GError** error);
+void photo_file_writer_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+enum {
+ THUMBNAIL_CACHE_IMAGE_DATA_DUMMY_PROPERTY
+};
+static void thumbnail_cache_image_data_finalize (ThumbnailCacheImageData* obj);
+enum {
+ THUMBNAIL_CACHE_ASYNC_FETCH_JOB_DUMMY_PROPERTY
+};
+static void _thumbnail_cache_async_fetch_completion_callback_completion_callback (BackgroundJob* job, gpointer self);
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+static BackgroundJobJobPriority thumbnail_cache_async_fetch_job_real_get_priority (BackgroundJob* base);
+static void thumbnail_cache_async_fetch_job_real_execute (BackgroundJob* base);
+gboolean background_job_is_cancelled (BackgroundJob* self);
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
+static void thumbnail_cache_async_fetch_job_generate_thumbnail (ThumbnailCacheAsyncFetchJob* self, GError** error);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+GdkPixbuf* thumbnail_source_create_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+static void thumbnail_cache_async_fetch_job_finalize (BackgroundJob* obj);
+static void thumbnail_cache_finalize (GObject* obj);
+
+
+Thumbnails* thumbnails_construct (GType object_type) {
+ Thumbnails* self = NULL;
+#line 11 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = (Thumbnails*) g_type_create_instance (object_type);
+#line 11 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return self;
+#line 653 "ThumbnailCache.c"
+}
+
+
+Thumbnails* thumbnails_new (void) {
+#line 11 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return thumbnails_construct (TYPE_THUMBNAILS);
+#line 660 "ThumbnailCache.c"
+}
+
+
+void thumbnails_set (Thumbnails* self, ThumbnailCacheSize size, GdkPixbuf* pixbuf) {
+ GeeHashMap* _tmp0_ = NULL;
+ ThumbnailCacheSize _tmp1_ = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAILS (self));
+#line 14 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 15 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->priv->map;
+#line 15 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = size;
+#line 15 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = pixbuf;
+#line 15 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp1_), _tmp2_);
+#line 680 "ThumbnailCache.c"
+}
+
+
+void thumbnails_remove (Thumbnails* self, ThumbnailCacheSize size) {
+ GeeHashMap* _tmp0_ = NULL;
+ ThumbnailCacheSize _tmp1_ = 0;
+#line 18 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAILS (self));
+#line 19 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->priv->map;
+#line 19 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = size;
+#line 19 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp1_), NULL);
+#line 695 "ThumbnailCache.c"
+}
+
+
+GdkPixbuf* thumbnails_get (Thumbnails* self, ThumbnailCacheSize size) {
+ GdkPixbuf* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ ThumbnailCacheSize _tmp1_ = 0;
+ gpointer _tmp2_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAILS (self), NULL);
+#line 23 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->priv->map;
+#line 23 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = size;
+#line 23 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp1_));
+#line 23 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = (GdkPixbuf*) _tmp2_;
+#line 23 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 716 "ThumbnailCache.c"
+}
+
+
+static void value_thumbnails_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 723 "ThumbnailCache.c"
+}
+
+
+static void value_thumbnails_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnails_unref (value->data[0].v_pointer);
+#line 732 "ThumbnailCache.c"
+ }
+}
+
+
+static void value_thumbnails_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dest_value->data[0].v_pointer = thumbnails_ref (src_value->data[0].v_pointer);
+#line 742 "ThumbnailCache.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 746 "ThumbnailCache.c"
+ }
+}
+
+
+static gpointer value_thumbnails_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return value->data[0].v_pointer;
+#line 754 "ThumbnailCache.c"
+}
+
+
+static gchar* value_thumbnails_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (collect_values[0].v_pointer) {
+#line 761 "ThumbnailCache.c"
+ Thumbnails* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 768 "ThumbnailCache.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 772 "ThumbnailCache.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = thumbnails_ref (object);
+#line 776 "ThumbnailCache.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 780 "ThumbnailCache.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return NULL;
+#line 784 "ThumbnailCache.c"
+}
+
+
+static gchar* value_thumbnails_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Thumbnails** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 795 "ThumbnailCache.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ *object_p = NULL;
+#line 801 "ThumbnailCache.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ *object_p = value->data[0].v_pointer;
+#line 805 "ThumbnailCache.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ *object_p = thumbnails_ref (value->data[0].v_pointer);
+#line 809 "ThumbnailCache.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return NULL;
+#line 813 "ThumbnailCache.c"
+}
+
+
+GParamSpec* param_spec_thumbnails (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecThumbnails* spec;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_THUMBNAILS), NULL);
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return G_PARAM_SPEC (spec);
+#line 827 "ThumbnailCache.c"
+}
+
+
+gpointer value_get_thumbnails (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_THUMBNAILS), NULL);
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return value->data[0].v_pointer;
+#line 836 "ThumbnailCache.c"
+}
+
+
+void value_set_thumbnails (GValue* value, gpointer v_object) {
+ Thumbnails* old;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_THUMBNAILS));
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_THUMBNAILS));
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnails_ref (value->data[0].v_pointer);
+#line 856 "ThumbnailCache.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 860 "ThumbnailCache.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnails_unref (old);
+#line 866 "ThumbnailCache.c"
+ }
+}
+
+
+void value_take_thumbnails (GValue* value, gpointer v_object) {
+ Thumbnails* old;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_THUMBNAILS));
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_THUMBNAILS));
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = v_object;
+#line 885 "ThumbnailCache.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 889 "ThumbnailCache.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnails_unref (old);
+#line 895 "ThumbnailCache.c"
+ }
+}
+
+
+static void thumbnails_class_init (ThumbnailsClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnails_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ ((ThumbnailsClass *) klass)->finalize = thumbnails_finalize;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_type_class_add_private (klass, sizeof (ThumbnailsPrivate));
+#line 907 "ThumbnailCache.c"
+}
+
+
+static void thumbnails_instance_init (Thumbnails * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv = THUMBNAILS_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = gee_hash_map_new (THUMBNAIL_CACHE_TYPE_SIZE, NULL, NULL, GDK_TYPE_PIXBUF, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 8 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->map = _tmp0_;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->ref_count = 1;
+#line 921 "ThumbnailCache.c"
+}
+
+
+static void thumbnails_finalize (Thumbnails* obj) {
+ Thumbnails * self;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_THUMBNAILS, Thumbnails);
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_signal_handlers_destroy (self);
+#line 8 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->priv->map);
+#line 933 "ThumbnailCache.c"
+}
+
+
+GType thumbnails_get_type (void) {
+ static volatile gsize thumbnails_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnails_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_thumbnails_init, value_thumbnails_free_value, value_thumbnails_copy_value, value_thumbnails_peek_pointer, "p", value_thumbnails_collect_value, "p", value_thumbnails_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnails_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Thumbnails), 0, (GInstanceInitFunc) thumbnails_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType thumbnails_type_id;
+ thumbnails_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Thumbnails", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&thumbnails_type_id__volatile, thumbnails_type_id);
+ }
+ return thumbnails_type_id__volatile;
+}
+
+
+gpointer thumbnails_ref (gpointer instance) {
+ Thumbnails* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return instance;
+#line 958 "ThumbnailCache.c"
+}
+
+
+void thumbnails_unref (gpointer instance) {
+ Thumbnails* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ THUMBNAILS_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 971 "ThumbnailCache.c"
+ }
+}
+
+
+gint thumbnail_cache_size_get_scale (ThumbnailCacheSize self) {
+ gint result = 0;
+#line 42 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = (gint) self;
+#line 42 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 982 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_size_get_scaling (ThumbnailCacheSize self, Scaling* result) {
+ gint _tmp0_ = 0;
+ Scaling _tmp1_ = {0};
+#line 46 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = thumbnail_cache_size_get_scale (self);
+#line 46 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ scaling_for_best_fit (_tmp0_, TRUE, &_tmp1_);
+#line 46 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ *result = _tmp1_;
+#line 46 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 997 "ThumbnailCache.c"
+}
+
+
+ThumbnailCacheSize thumbnail_cache_size_get_best_size (gint scale) {
+ ThumbnailCacheSize result = 0;
+ ThumbnailCacheSize _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 50 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = scale;
+#line 50 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail_cache_size_get_scale (THUMBNAIL_CACHE_SIZE_MEDIUM);
+#line 50 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp1_ <= _tmp2_) {
+#line 50 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = THUMBNAIL_CACHE_SIZE_MEDIUM;
+#line 1014 "ThumbnailCache.c"
+ } else {
+#line 50 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = THUMBNAIL_CACHE_SIZE_BIG;
+#line 1018 "ThumbnailCache.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp0_;
+#line 50 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 1024 "ThumbnailCache.c"
+}
+
+
+GType thumbnail_cache_size_get_type (void) {
+ static volatile gsize thumbnail_cache_size_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_cache_size_type_id__volatile)) {
+ static const GEnumValue values[] = {{THUMBNAIL_CACHE_SIZE_LARGEST, "THUMBNAIL_CACHE_SIZE_LARGEST", "largest"}, {THUMBNAIL_CACHE_SIZE_BIG, "THUMBNAIL_CACHE_SIZE_BIG", "big"}, {THUMBNAIL_CACHE_SIZE_MEDIUM, "THUMBNAIL_CACHE_SIZE_MEDIUM", "medium"}, {THUMBNAIL_CACHE_SIZE_SMALLEST, "THUMBNAIL_CACHE_SIZE_SMALLEST", "smallest"}, {0, NULL, NULL}};
+ GType thumbnail_cache_size_type_id;
+ thumbnail_cache_size_type_id = g_enum_register_static ("ThumbnailCacheSize", values);
+ g_once_init_leave (&thumbnail_cache_size_type_id__volatile, thumbnail_cache_size_type_id);
+ }
+ return thumbnail_cache_size_type_id__volatile;
+}
+
+
+static ThumbnailCache* thumbnail_cache_construct (GType object_type, ThumbnailCacheSize size, gulong max_cached_bytes, GdkInterpType interp, JpegQuality quality) {
+ ThumbnailCache * self = NULL;
+ ThumbnailCacheSize _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ ThumbnailCacheSize _tmp5_ = 0;
+ gulong _tmp6_ = 0UL;
+ GdkInterpType _tmp7_ = 0;
+ JpegQuality _tmp8_ = 0;
+#line 190 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = (ThumbnailCache*) g_object_new (object_type, NULL);
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = size;
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_size_get_scale (_tmp0_);
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = g_strdup_printf ("thumbs%d", _tmp1_);
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = _tmp2_;
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = app_dirs_get_cache_subdir ("thumbs", _tmp3_);
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->priv->cache_dir);
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->cache_dir = _tmp4_;
+#line 192 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp3_);
+#line 193 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = size;
+#line 193 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->size = _tmp5_;
+#line 194 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = max_cached_bytes;
+#line 194 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->max_cached_bytes = _tmp6_;
+#line 195 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = interp;
+#line 195 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->interp = _tmp7_;
+#line 196 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = quality;
+#line 196 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->quality = _tmp8_;
+#line 190 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return self;
+#line 1087 "ThumbnailCache.c"
+}
+
+
+static ThumbnailCache* thumbnail_cache_new (ThumbnailCacheSize size, gulong max_cached_bytes, GdkInterpType interp, JpegQuality quality) {
+#line 190 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return thumbnail_cache_construct (TYPE_THUMBNAIL_CACHE, size, max_cached_bytes, interp, quality);
+#line 1094 "ThumbnailCache.c"
+}
+
+
+static void _thumbnail_cache_report_cycle_one_shot_callback (gpointer self) {
+#line 201 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_report_cycle ();
+#line 1101 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_init (void) {
+ OneShotScheduler* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ Workers* _tmp2_ = NULL;
+ ThumbnailCache* _tmp3_ = NULL;
+ ThumbnailCache* _tmp4_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = one_shot_scheduler_new ("ThumbnailCache cycle reporter", _thumbnail_cache_report_cycle_one_shot_callback, NULL);
+#line 201 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _one_shot_scheduler_unref0 (thumbnail_cache_debug_scheduler);
+#line 201 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_debug_scheduler = _tmp0_;
+#line 202 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = workers_threads_per_cpu (1, -1);
+#line 202 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = workers_new (_tmp1_, TRUE);
+#line 202 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _workers_unref0 (thumbnail_cache_fetch_workers);
+#line 202 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_fetch_workers = _tmp2_;
+#line 204 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_new (THUMBNAIL_CACHE_SIZE_BIG, THUMBNAIL_CACHE_MAX_BIG_CACHED_BYTES, THUMBNAIL_CACHE_DEFAULT_INTERP, THUMBNAIL_CACHE_DEFAULT_QUALITY);
+#line 204 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (thumbnail_cache_big);
+#line 204 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_big = _tmp3_;
+#line 205 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = thumbnail_cache_new (THUMBNAIL_CACHE_SIZE_MEDIUM, THUMBNAIL_CACHE_MAX_MEDIUM_CACHED_BYTES, THUMBNAIL_CACHE_DEFAULT_INTERP, THUMBNAIL_CACHE_DEFAULT_QUALITY);
+#line 205 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (thumbnail_cache_medium);
+#line 205 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_medium = _tmp4_;
+#line 1137 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_terminate (void) {
+}
+
+
+void thumbnail_cache_import_from_source (ThumbnailSource* source, gboolean force, GError** error) {
+ ThumbnailSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ ThumbnailCache* _tmp3_ = NULL;
+ ThumbnailSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ ThumbnailCache* _tmp6_ = NULL;
+ ThumbnailSource* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 213 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 213 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 213 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp1_;
+#line 213 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_debug ("ThumbnailCache.vala:213: import from source: %s", _tmp2_);
+#line 213 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp2_);
+#line 214 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_big;
+#line 214 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = source;
+#line 214 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = force;
+#line 214 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_import_from_source (_tmp3_, _tmp4_, _tmp5_, &_inner_error_);
+#line 214 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 214 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 214 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1182 "ThumbnailCache.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = thumbnail_cache_medium;
+#line 215 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = source;
+#line 215 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = force;
+#line 215 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_import_from_source (_tmp6_, _tmp7_, _tmp8_, &_inner_error_);
+#line 215 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 215 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 215 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1198 "ThumbnailCache.c"
+ }
+}
+
+
+void thumbnail_cache_import_thumbnails (ThumbnailSource* source, Thumbnails* thumbnails, gboolean force, GError** error) {
+ ThumbnailCache* _tmp0_ = NULL;
+ ThumbnailSource* _tmp1_ = NULL;
+ Thumbnails* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ ThumbnailCache* _tmp6_ = NULL;
+ ThumbnailSource* _tmp7_ = NULL;
+ Thumbnails* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 218 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAILS (thumbnails));
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = thumbnail_cache_big;
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = source;
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnails;
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnails_get (_tmp2_, THUMBNAIL_CACHE_SIZE_BIG);
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_;
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = force;
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_import_thumbnail (_tmp0_, _tmp1_, _tmp4_, _tmp5_, &_inner_error_);
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp4_);
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 220 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1243 "ThumbnailCache.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = thumbnail_cache_medium;
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = source;
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = thumbnails;
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = thumbnails_get (_tmp8_, THUMBNAIL_CACHE_SIZE_MEDIUM);
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = _tmp9_;
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = force;
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_import_thumbnail (_tmp6_, _tmp7_, _tmp10_, _tmp11_, &_inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp10_);
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1267 "ThumbnailCache.c"
+ }
+}
+
+
+void thumbnail_cache_duplicate (ThumbnailSource* src_source, ThumbnailSource* dest_source) {
+ ThumbnailCache* _tmp0_ = NULL;
+ ThumbnailSource* _tmp1_ = NULL;
+ ThumbnailSource* _tmp2_ = NULL;
+ ThumbnailCache* _tmp3_ = NULL;
+ ThumbnailSource* _tmp4_ = NULL;
+ ThumbnailSource* _tmp5_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (src_source));
+#line 224 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (dest_source));
+#line 225 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = thumbnail_cache_big;
+#line 225 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = src_source;
+#line 225 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = dest_source;
+#line 225 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_duplicate (_tmp0_, _tmp1_, _tmp2_);
+#line 226 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_medium;
+#line 226 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = src_source;
+#line 226 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = dest_source;
+#line 226 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_duplicate (_tmp3_, _tmp4_, _tmp5_);
+#line 1299 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_remove (ThumbnailSource* source) {
+ ThumbnailCache* _tmp0_ = NULL;
+ ThumbnailSource* _tmp1_ = NULL;
+ ThumbnailCache* _tmp2_ = NULL;
+ ThumbnailSource* _tmp3_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 230 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = thumbnail_cache_big;
+#line 230 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = source;
+#line 230 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_remove (_tmp0_, _tmp1_);
+#line 231 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail_cache_medium;
+#line 231 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = source;
+#line 231 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_remove (_tmp2_, _tmp3_);
+#line 1322 "ThumbnailCache.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 237 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1329 "ThumbnailCache.c"
+}
+
+
+static ThumbnailCache* thumbnail_cache_get_best_cache (gint scale) {
+ ThumbnailCache* result = NULL;
+ ThumbnailCacheSize size = 0;
+ gint _tmp0_ = 0;
+ ThumbnailCacheSize _tmp1_ = 0;
+ ThumbnailCacheSize _tmp2_ = 0;
+#line 235 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = scale;
+#line 235 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_size_get_best_size (_tmp0_);
+#line 235 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size = _tmp1_;
+#line 236 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = size;
+#line 236 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp2_ == THUMBNAIL_CACHE_SIZE_BIG) {
+#line 1349 "ThumbnailCache.c"
+ ThumbnailCache* _tmp3_ = NULL;
+ ThumbnailCache* _tmp4_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_big;
+#line 237 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 237 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp4_;
+#line 237 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 1360 "ThumbnailCache.c"
+ } else {
+ ThumbnailCacheSize _tmp5_ = 0;
+ ThumbnailCache* _tmp6_ = NULL;
+ ThumbnailCache* _tmp7_ = NULL;
+#line 239 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = size;
+#line 239 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp5_ == THUMBNAIL_CACHE_SIZE_MEDIUM, "size == Size.MEDIUM");
+#line 241 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = thumbnail_cache_medium;
+#line 241 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 241 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp7_;
+#line 241 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 1377 "ThumbnailCache.c"
+ }
+}
+
+
+static ThumbnailCache* thumbnail_cache_get_cache_for (ThumbnailCacheSize size) {
+ ThumbnailCache* result = NULL;
+ ThumbnailCacheSize _tmp0_ = 0;
+#line 246 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = size;
+#line 246 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ switch (_tmp0_) {
+#line 246 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ case THUMBNAIL_CACHE_SIZE_BIG:
+#line 1391 "ThumbnailCache.c"
+ {
+ ThumbnailCache* _tmp1_ = NULL;
+ ThumbnailCache* _tmp2_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_big;
+#line 248 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 248 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp2_;
+#line 248 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 1403 "ThumbnailCache.c"
+ }
+#line 246 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ case THUMBNAIL_CACHE_SIZE_MEDIUM:
+#line 1407 "ThumbnailCache.c"
+ {
+ ThumbnailCache* _tmp3_ = NULL;
+ ThumbnailCache* _tmp4_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_medium;
+#line 251 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 251 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp4_;
+#line 251 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 1419 "ThumbnailCache.c"
+ }
+ default:
+ {
+ ThumbnailCacheSize _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 254 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = size;
+#line 254 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = thumbnail_cache_size_get_scale (_tmp5_);
+#line 254 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_error ("ThumbnailCache.vala:254: Unknown thumbnail size %d", _tmp6_);
+#line 1431 "ThumbnailCache.c"
+ }
+ }
+}
+
+
+GdkPixbuf* thumbnail_cache_fetch (ThumbnailSource* source, gint scale, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ ThumbnailCache* _tmp2_ = NULL;
+ ThumbnailCache* _tmp3_ = NULL;
+ ThumbnailSource* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), NULL);
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = scale;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail_cache_get_best_cache (_tmp1_);
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = _tmp2_;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = source;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = _thumbnail_cache_fetch (_tmp3_, _tmp4_, &_inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp5_;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp3_);
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = _tmp6_;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return NULL;
+#line 1472 "ThumbnailCache.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = _tmp0_;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = NULL;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp7_;
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp0_);
+#line 259 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 1484 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_fetch_async (ThumbnailSource* source, gint scale, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable) {
+ gint _tmp0_ = 0;
+ ThumbnailCache* _tmp1_ = NULL;
+ ThumbnailCache* _tmp2_ = NULL;
+ ThumbnailSource* _tmp3_ = NULL;
+ ThumbnailSource* _tmp4_ = NULL;
+ PhotoFileFormat _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+ ThumbnailCacheAsyncFetchCallback _tmp7_ = NULL;
+ void* _tmp7__target = NULL;
+ GCancellable* _tmp8_ = NULL;
+#line 262 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 262 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = scale;
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_best_cache (_tmp0_);
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp1_;
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = source;
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = source;
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = thumbnail_source_get_preferred_thumbnail_format (_tmp4_);
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dimensions_init (&_tmp6_, 0, 0);
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = callback;
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7__target = callback_target;
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = cancellable;
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_fetch_async (_tmp2_, _tmp3_, _tmp5_, &_tmp6_, THUMBNAIL_CACHE_DEFAULT_INTERP, _tmp7_, _tmp7__target, _tmp8_);
+#line 264 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1527 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_fetch_async_scaled (ThumbnailSource* source, gint scale, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable) {
+ gint _tmp0_ = 0;
+ ThumbnailCache* _tmp1_ = NULL;
+ ThumbnailCache* _tmp2_ = NULL;
+ ThumbnailSource* _tmp3_ = NULL;
+ ThumbnailSource* _tmp4_ = NULL;
+ PhotoFileFormat _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+ GdkInterpType _tmp7_ = 0;
+ ThumbnailCacheAsyncFetchCallback _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ GCancellable* _tmp9_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 268 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (dim != NULL);
+#line 268 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = scale;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_best_cache (_tmp0_);
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp1_;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = source;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = source;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = thumbnail_source_get_preferred_thumbnail_format (_tmp4_);
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = *dim;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = interp;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = callback;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8__target = callback_target;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = cancellable;
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_fetch_async (_tmp2_, _tmp3_, _tmp5_, &_tmp6_, _tmp7_, _tmp8_, _tmp8__target, _tmp9_);
+#line 270 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1575 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_replace (ThumbnailSource* source, ThumbnailCacheSize size, GdkPixbuf* replacement, GError** error) {
+ ThumbnailCacheSize _tmp0_ = 0;
+ ThumbnailCache* _tmp1_ = NULL;
+ ThumbnailCache* _tmp2_ = NULL;
+ ThumbnailSource* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 274 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (replacement));
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = size;
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_cache_for (_tmp0_);
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp1_;
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = source;
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = replacement;
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_replace (_tmp2_, _tmp3_, _tmp4_, &_inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp2_);
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1610 "ThumbnailCache.c"
+ }
+}
+
+
+gboolean thumbnail_cache_exists (ThumbnailSource* source) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ ThumbnailCache* _tmp1_ = NULL;
+ ThumbnailSource* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 279 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), FALSE);
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_big;
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = source;
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = _thumbnail_cache_exists (_tmp1_, _tmp2_);
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp3_) {
+#line 1631 "ThumbnailCache.c"
+ ThumbnailCache* _tmp4_ = NULL;
+ ThumbnailSource* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = thumbnail_cache_medium;
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = source;
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _thumbnail_cache_exists (_tmp4_, _tmp5_);
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = _tmp6_;
+#line 1643 "ThumbnailCache.c"
+ } else {
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = FALSE;
+#line 1647 "ThumbnailCache.c"
+ }
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp0_;
+#line 280 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 1653 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_rotate (ThumbnailSource* source, Rotation rotation, GError** error) {
+ ThumbnailCacheSize* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 283 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 284 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = thumbnail_cache_ALL_SIZES;
+#line 284 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0__length1 = thumbnail_cache_ALL_SIZES_length1;
+#line 1667 "ThumbnailCache.c"
+ {
+ ThumbnailCacheSize* size_collection = NULL;
+ gint size_collection_length1 = 0;
+ gint _size_collection_size_ = 0;
+ gint size_it = 0;
+#line 284 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size_collection = _tmp0_;
+#line 284 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size_collection_length1 = _tmp0__length1;
+#line 284 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ for (size_it = 0; size_it < _tmp0__length1; size_it = size_it + 1) {
+#line 1679 "ThumbnailCache.c"
+ ThumbnailCacheSize size = 0;
+#line 284 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size = size_collection[size_it];
+#line 1683 "ThumbnailCache.c"
+ {
+ GdkPixbuf* thumbnail = NULL;
+ ThumbnailSource* _tmp1_ = NULL;
+ ThumbnailCacheSize _tmp2_ = 0;
+ GdkPixbuf* _tmp3_ = NULL;
+ Rotation _tmp4_ = 0;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ ThumbnailSource* _tmp7_ = NULL;
+ ThumbnailCacheSize _tmp8_ = 0;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 285 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = source;
+#line 285 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = size;
+#line 285 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_fetch (_tmp1_, (gint) _tmp2_, &_inner_error_);
+#line 285 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail = _tmp3_;
+#line 285 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 285 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 285 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1709 "ThumbnailCache.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = rotation;
+#line 286 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = thumbnail;
+#line 286 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = rotation_perform (_tmp4_, _tmp5_);
+#line 286 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (thumbnail);
+#line 286 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail = _tmp6_;
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = source;
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = size;
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = thumbnail;
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_replace (_tmp7_, _tmp8_, _tmp9_, &_inner_error_);
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (thumbnail);
+#line 287 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1737 "ThumbnailCache.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (thumbnail);
+#line 1741 "ThumbnailCache.c"
+ }
+ }
+ }
+}
+
+
+void thumbnail_cache_generate_for_photo (Thumbnails* thumbnails, PhotoFileReader* reader, Orientation orientation, Dimensions* original_dim, GError** error) {
+ ThumbnailCacheSize max_size = 0;
+ Dimensions dim = {0};
+ ThumbnailCacheSize _tmp0_ = 0;
+ Scaling _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ GdkPixbuf* largest_thumbnail = NULL;
+ Orientation _tmp14_ = 0;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+ Dimensions largest_thumb_dimensions = {0};
+ GdkPixbuf* _tmp17_ = NULL;
+ Dimensions _tmp18_ = {0};
+ ThumbnailCacheSize* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAILS (thumbnails));
+#line 293 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_PHOTO_FILE_READER (reader));
+#line 293 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (original_dim != NULL);
+#line 296 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ max_size = THUMBNAIL_CACHE_SIZE_BIG * 2;
+#line 297 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = max_size;
+#line 297 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_size_get_scaling (_tmp0_, &_tmp1_);
+#line 297 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = *original_dim;
+#line 297 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ scaling_get_scaled_dimensions (&_tmp1_, &_tmp2_, &_tmp3_);
+#line 297 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dim = _tmp3_;
+#line 298 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ largest_thumbnail = NULL;
+#line 1785 "ThumbnailCache.c"
+ {
+ GdkPixbuf* _tmp4_ = NULL;
+ PhotoFileReader* _tmp5_ = NULL;
+ Dimensions _tmp6_ = {0};
+ Dimensions _tmp7_ = {0};
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = reader;
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = *original_dim;
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = dim;
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = photo_file_reader_scaled_read (_tmp5_, &_tmp6_, &_tmp7_, &_inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp8_;
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1805 "ThumbnailCache.c"
+ goto __catch223_g_error;
+ }
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = _tmp4_;
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (largest_thumbnail);
+#line 300 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ largest_thumbnail = _tmp9_;
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1818 "ThumbnailCache.c"
+ }
+ goto __finally223;
+ __catch223_g_error:
+ {
+ GError* err = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ PhotoFileReader* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ err = _inner_error_;
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _inner_error_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = reader;
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = photo_file_reader_unscaled_read (_tmp11_, &_inner_error_);
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = _tmp12_;
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 1842 "ThumbnailCache.c"
+ goto __finally223;
+ }
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = _tmp10_;
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (largest_thumbnail);
+#line 305 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ largest_thumbnail = _tmp13_;
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp10_);
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 1857 "ThumbnailCache.c"
+ }
+ __finally223:
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (largest_thumbnail);
+#line 299 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 1868 "ThumbnailCache.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = orientation;
+#line 307 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = largest_thumbnail;
+#line 307 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = orientation_rotate_pixbuf (_tmp14_, _tmp15_);
+#line 307 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (largest_thumbnail);
+#line 307 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ largest_thumbnail = _tmp16_;
+#line 308 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = largest_thumbnail;
+#line 308 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dimensions_for_pixbuf (_tmp17_, &_tmp18_);
+#line 308 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ largest_thumb_dimensions = _tmp18_;
+#line 310 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19_ = thumbnail_cache_ALL_SIZES;
+#line 310 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19__length1 = thumbnail_cache_ALL_SIZES_length1;
+#line 1890 "ThumbnailCache.c"
+ {
+ ThumbnailCacheSize* size_collection = NULL;
+ gint size_collection_length1 = 0;
+ gint _size_collection_size_ = 0;
+ gint size_it = 0;
+#line 310 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size_collection = _tmp19_;
+#line 310 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size_collection_length1 = _tmp19__length1;
+#line 310 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ for (size_it = 0; size_it < _tmp19__length1; size_it = size_it + 1) {
+#line 1902 "ThumbnailCache.c"
+ ThumbnailCacheSize size = 0;
+#line 310 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size = size_collection[size_it];
+#line 1906 "ThumbnailCache.c"
+ {
+ ThumbnailCacheSize _tmp20_ = 0;
+ Scaling _tmp21_ = {0};
+ Dimensions _tmp22_ = {0};
+ Dimensions _tmp23_ = {0};
+ Thumbnails* _tmp24_ = NULL;
+ ThumbnailCacheSize _tmp25_ = 0;
+ GdkPixbuf* _tmp26_ = NULL;
+ Dimensions _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ Dimensions _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ GdkPixbuf* _tmp31_ = NULL;
+ GdkPixbuf* _tmp32_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp20_ = size;
+#line 311 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_size_get_scaling (_tmp20_, &_tmp21_);
+#line 311 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp22_ = largest_thumb_dimensions;
+#line 311 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ scaling_get_scaled_dimensions (&_tmp21_, &_tmp22_, &_tmp23_);
+#line 311 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dim = _tmp23_;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp24_ = thumbnails;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp25_ = size;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp26_ = largest_thumbnail;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp27_ = dim;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp28_ = _tmp27_.width;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp29_ = dim;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp30_ = _tmp29_.height;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp31_ = gdk_pixbuf_scale_simple (_tmp26_, _tmp28_, _tmp30_, GDK_INTERP_HYPER);
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp32_ = _tmp31_;
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnails_set (_tmp24_, _tmp25_, _tmp32_);
+#line 312 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp32_);
+#line 1953 "ThumbnailCache.c"
+ }
+ }
+ }
+#line 293 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (largest_thumbnail);
+#line 1959 "ThumbnailCache.c"
+}
+
+
+void thumbnail_cache_generate_for_video_frame (Thumbnails* thumbnails, GdkPixbuf* preview_frame) {
+ ThumbnailCacheSize* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 316 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAILS (thumbnails));
+#line 316 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (preview_frame));
+#line 317 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = thumbnail_cache_ALL_SIZES;
+#line 317 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0__length1 = thumbnail_cache_ALL_SIZES_length1;
+#line 1974 "ThumbnailCache.c"
+ {
+ ThumbnailCacheSize* size_collection = NULL;
+ gint size_collection_length1 = 0;
+ gint _size_collection_size_ = 0;
+ gint size_it = 0;
+#line 317 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size_collection = _tmp0_;
+#line 317 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size_collection_length1 = _tmp0__length1;
+#line 317 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ for (size_it = 0; size_it < _tmp0__length1; size_it = size_it + 1) {
+#line 1986 "ThumbnailCache.c"
+ ThumbnailCacheSize size = 0;
+#line 317 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ size = size_collection[size_it];
+#line 1990 "ThumbnailCache.c"
+ {
+ Scaling current_scaling = {0};
+ ThumbnailCacheSize _tmp1_ = 0;
+ Scaling _tmp2_ = {0};
+ GdkPixbuf* current_thumbnail = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ Thumbnails* _tmp5_ = NULL;
+ ThumbnailCacheSize _tmp6_ = 0;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 318 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = size;
+#line 318 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_size_get_scaling (_tmp1_, &_tmp2_);
+#line 318 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ current_scaling = _tmp2_;
+#line 319 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = preview_frame;
+#line 319 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = scaling_perform_on_pixbuf (&current_scaling, _tmp3_, GDK_INTERP_HYPER, TRUE);
+#line 319 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ current_thumbnail = _tmp4_;
+#line 321 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = thumbnails;
+#line 321 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = size;
+#line 321 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = current_thumbnail;
+#line 321 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnails_set (_tmp5_, _tmp6_, _tmp7_);
+#line 317 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (current_thumbnail);
+#line 2023 "ThumbnailCache.c"
+ }
+ }
+ }
+}
+
+
+static void thumbnail_cache_schedule_debug (void) {
+}
+
+
+static void thumbnail_cache_report_cycle (void) {
+}
+
+
+static GdkPixbuf* _thumbnail_cache_fetch (ThumbnailCache* self, ThumbnailSource* source, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ ThumbnailSource* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ ThumbnailSource* _tmp10_ = NULL;
+ PhotoFileFormat _tmp11_ = 0;
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ ThumbnailSource* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (self), NULL);
+#line 371 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), NULL);
+#line 373 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 373 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 373 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp1_;
+#line 373 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_fetch_from_memory (self, _tmp2_);
+#line 373 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_;
+#line 373 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp2_);
+#line 373 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ pixbuf = _tmp4_;
+#line 374 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = pixbuf;
+#line 374 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp5_ != NULL) {
+#line 375 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = pixbuf;
+#line 375 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 2088 "ThumbnailCache.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = source;
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_SOURCE, DataSource));
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = _tmp8_;
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = source;
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = thumbnail_source_get_preferred_thumbnail_format (_tmp10_);
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = thumbnail_cache_read_pixbuf (self, _tmp9_, _tmp11_, &_inner_error_);
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = _tmp12_;
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp9_);
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp13_;
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return NULL;
+#line 2116 "ThumbnailCache.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = _tmp6_;
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 377 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ pixbuf = _tmp14_;
+#line 379 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = thumbnail_cache_cycle_fetched_thumbnails;
+#line 379 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_cycle_fetched_thumbnails = _tmp15_ + 1;
+#line 380 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_schedule_debug ();
+#line 383 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = source;
+#line 383 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_SOURCE, DataSource));
+#line 383 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp18_ = _tmp17_;
+#line 383 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19_ = pixbuf;
+#line 383 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_store_in_memory (self, _tmp18_, _tmp19_);
+#line 383 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp18_);
+#line 385 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = pixbuf;
+#line 385 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp6_);
+#line 385 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 2150 "ThumbnailCache.c"
+}
+
+
+static void _thumbnail_cache_fetch_async (ThumbnailCache* self, ThumbnailSource* source, PhotoFileFormat format, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable) {
+ gchar* thumbnail_name = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ const gchar* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GdkPixbuf* _tmp5_ = NULL;
+ Workers* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ ThumbnailSource* _tmp19_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ Dimensions _tmp21_ = {0};
+ GdkInterpType _tmp22_ = 0;
+ ThumbnailCacheAsyncFetchCallback _tmp23_ = NULL;
+ void* _tmp23__target = NULL;
+ GCancellable* _tmp24_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp25_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp26_ = NULL;
+#line 388 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 388 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 388 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (dim != NULL);
+#line 388 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 391 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 391 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 391 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_name = _tmp1_;
+#line 392 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail_name;
+#line 392 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_fetch_from_memory (self, _tmp2_);
+#line 392 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ pixbuf = _tmp3_;
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = pixbuf;
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp5_ != NULL) {
+#line 2198 "ThumbnailCache.c"
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = dimensions_has_area (dim);
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!_tmp7_) {
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = TRUE;
+#line 2207 "ThumbnailCache.c"
+ } else {
+ GdkPixbuf* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+ Dimensions _tmp10_ = {0};
+ gboolean _tmp11_ = FALSE;
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = pixbuf;
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dimensions_for_pixbuf (_tmp8_, &_tmp9_);
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = *dim;
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = dimensions_equals (&_tmp9_, &_tmp10_);
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp11_;
+#line 2223 "ThumbnailCache.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp6_;
+#line 2227 "ThumbnailCache.c"
+ } else {
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = FALSE;
+#line 2231 "ThumbnailCache.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp4_) {
+#line 2235 "ThumbnailCache.c"
+ ThumbnailCacheAsyncFetchCallback _tmp12_ = NULL;
+ void* _tmp12__target = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ GdkInterpType _tmp16_ = 0;
+#line 396 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = callback;
+#line 396 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12__target = callback_target;
+#line 396 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = pixbuf;
+#line 396 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = pixbuf;
+#line 396 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = *dim;
+#line 396 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = interp;
+#line 396 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ (_tmp13_, _tmp14_, &_tmp15_, _tmp16_, NULL, _tmp12__target);
+#line 398 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 398 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (thumbnail_name);
+#line 398 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2262 "ThumbnailCache.c"
+ }
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = thumbnail_cache_fetch_workers;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp18_ = thumbnail_name;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19_ = source;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp20_ = pixbuf;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp21_ = *dim;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp22_ = interp;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp23_ = callback;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp23__target = callback_target;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp24_ = cancellable;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp25_ = thumbnail_cache_async_fetch_job_new (self, _tmp18_, _tmp19_, _tmp20_, &_tmp21_, _tmp22_, _tmp23_, _tmp23__target, _tmp24_);
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp26_ = _tmp25_;
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ workers_enqueue (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 411 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _background_job_unref0 (_tmp26_);
+#line 388 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (pixbuf);
+#line 388 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (thumbnail_name);
+#line 2294 "ThumbnailCache.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 417 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 2301 "ThumbnailCache.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 425 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 2308 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_async_fetch_completion_callback (BackgroundJob* background_job) {
+ ThumbnailCacheAsyncFetchJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ThumbnailCacheAsyncFetchJob* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ ThumbnailCacheAsyncFetchJob* _tmp17_ = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp29_ = NULL;
+ ThumbnailCacheAsyncFetchCallback _tmp30_ = NULL;
+ void* _tmp30__target = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp31_ = NULL;
+ GdkPixbuf* _tmp32_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp33_ = NULL;
+ GdkPixbuf* _tmp34_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp35_ = NULL;
+ Dimensions _tmp36_ = {0};
+ ThumbnailCacheAsyncFetchJob* _tmp37_ = NULL;
+ GdkInterpType _tmp38_ = 0;
+ ThumbnailCacheAsyncFetchJob* _tmp39_ = NULL;
+ GError* _tmp40_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (background_job));
+#line 417 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = background_job;
+#line 417 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, ThumbnailCacheAsyncFetchJob));
+#line 417 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ job = _tmp1_;
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = job;
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_->replace;
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp4_) {
+#line 2349 "ThumbnailCache.c"
+ ThumbnailCacheAsyncFetchJob* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = job;
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp5_->unscaled;
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp6_ != NULL;
+#line 2358 "ThumbnailCache.c"
+ } else {
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = FALSE;
+#line 2362 "ThumbnailCache.c"
+ }
+#line 421 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp2_) {
+#line 2366 "ThumbnailCache.c"
+ {
+ ThumbnailCacheAsyncFetchJob* _tmp7_ = NULL;
+ ThumbnailSource* _tmp8_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp9_ = NULL;
+ ThumbnailCache* _tmp10_ = NULL;
+ ThumbnailCacheSize _tmp11_ = 0;
+ ThumbnailCacheAsyncFetchJob* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = job;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = _tmp7_->source;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = job;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = _tmp9_->cache;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = _tmp10_->priv->size;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = job;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = _tmp12_->unscaled;
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_replace (_tmp8_, _tmp11_, _tmp13_, &_inner_error_);
+#line 423 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2393 "ThumbnailCache.c"
+ goto __catch224_g_error;
+ }
+ }
+ goto __finally224;
+ __catch224_g_error:
+ {
+ GError* err = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ GError* _tmp16_ = NULL;
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ err = _inner_error_;
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _inner_error_ = NULL;
+#line 425 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = job;
+#line 425 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = err;
+#line 425 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = _g_error_copy0 (_tmp15_);
+#line 425 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (_tmp14_->err);
+#line 425 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_->err = _tmp16_;
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 2420 "ThumbnailCache.c"
+ }
+ __finally224:
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _background_job_unref0 (job);
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_clear_error (&_inner_error_);
+#line 422 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2433 "ThumbnailCache.c"
+ }
+ }
+#line 429 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = job;
+#line 429 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp18_ = _tmp17_->unscaled;
+#line 429 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp18_ != NULL) {
+#line 2442 "ThumbnailCache.c"
+ ThumbnailCacheAsyncFetchJob* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 430 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19_ = job;
+#line 430 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp20_ = _tmp19_->fetched;
+#line 430 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp20_) {
+#line 2451 "ThumbnailCache.c"
+ ThumbnailCacheAsyncFetchJob* _tmp21_ = NULL;
+ ThumbnailCache* _tmp22_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ ThumbnailCacheAsyncFetchJob* _tmp25_ = NULL;
+ GdkPixbuf* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+#line 432 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp21_ = job;
+#line 432 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp22_ = _tmp21_->cache;
+#line 432 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp23_ = job;
+#line 432 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp24_ = _tmp23_->thumbnail_name;
+#line 432 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp25_ = job;
+#line 432 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp26_ = _tmp25_->unscaled;
+#line 432 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_store_in_memory (_tmp22_, _tmp24_, _tmp26_);
+#line 434 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp27_ = thumbnail_cache_cycle_async_fetched_thumbnails;
+#line 434 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_cycle_async_fetched_thumbnails = _tmp27_ + 1;
+#line 435 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_schedule_debug ();
+#line 2479 "ThumbnailCache.c"
+ } else {
+ gint _tmp28_ = 0;
+#line 437 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp28_ = thumbnail_cache_cycle_async_resized_thumbnails;
+#line 437 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_cycle_async_resized_thumbnails = _tmp28_ + 1;
+#line 438 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_schedule_debug ();
+#line 2488 "ThumbnailCache.c"
+ }
+ }
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp29_ = job;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp30_ = _tmp29_->callback;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp30__target = _tmp29_->callback_target;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp31_ = job;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp32_ = _tmp31_->scaled;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp33_ = job;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp34_ = _tmp33_->unscaled;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp35_ = job;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp36_ = _tmp35_->dim;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp37_ = job;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp38_ = _tmp37_->interp;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp39_ = job;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp40_ = _tmp39_->err;
+#line 442 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp30_ (_tmp32_, _tmp34_, &_tmp36_, _tmp38_, _tmp40_, _tmp30__target);
+#line 416 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _background_job_unref0 (job);
+#line 2521 "ThumbnailCache.c"
+}
+
+
+static void _thumbnail_cache_import_from_source (ThumbnailCache* self, ThumbnailSource* source, gboolean force, GError** error) {
+ GFile* file = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ LibraryPhoto* photo = NULL;
+ ThumbnailSource* _tmp6_ = NULL;
+ LibraryPhoto* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ LibraryPhoto* _tmp9_ = NULL;
+ ThumbnailCacheSize _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ Scaling _tmp12_ = {0};
+ GdkPixbuf* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ ThumbnailSource* _tmp15_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 445 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 445 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 447 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 447 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_source_cached_file (self, _tmp0_);
+#line 447 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ file = _tmp1_;
+#line 451 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = force;
+#line 451 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!_tmp2_) {
+#line 2556 "ThumbnailCache.c"
+ ThumbnailSource* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 452 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = source;
+#line 452 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _thumbnail_cache_exists (self, _tmp3_);
+#line 452 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp4_) {
+#line 453 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 453 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2569 "ThumbnailCache.c"
+ }
+ } else {
+ ThumbnailSource* _tmp5_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = source;
+#line 456 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_remove (self, _tmp5_);
+#line 2577 "ThumbnailCache.c"
+ }
+#line 459 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = source;
+#line 459 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 459 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ photo = _tmp7_;
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = photo;
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = self->priv->size;
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = thumbnail_cache_size_get_scale (_tmp10_);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ scaling_for_best_fit (_tmp11_, TRUE, &_tmp12_);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp12_, &_inner_error_);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = _tmp13_;
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (photo);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2607 "ThumbnailCache.c"
+ }
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = file;
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = source;
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_save_thumbnail (self, _tmp14_, _tmp8_, _tmp15_, &_inner_error_);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp8_);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (photo);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 460 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2627 "ThumbnailCache.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp8_);
+#line 445 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (photo);
+#line 445 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 2635 "ThumbnailCache.c"
+}
+
+
+static void _thumbnail_cache_import_thumbnail (ThumbnailCache* self, ThumbnailSource* source, GdkPixbuf* scaled, gboolean force, GError** error) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ ThumbnailCacheSize _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ ThumbnailSource* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ ThumbnailSource* _tmp14_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 466 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 466 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 466 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail ((scaled == NULL) || GDK_IS_PIXBUF (scaled));
+#line 468 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = scaled;
+#line 468 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp0_ != NULL, "scaled != null");
+#line 469 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = scaled;
+#line 469 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dimensions_for_pixbuf (_tmp1_, &_tmp2_);
+#line 469 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = self->priv->size;
+#line 469 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = thumbnail_cache_size_get_scale (_tmp3_);
+#line 469 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = dimensions_approx_scaled (&_tmp2_, _tmp4_, 1);
+#line 469 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp5_, "Dimensions.for_pixbuf(scaled).approx_scaled(size.get_scale())");
+#line 473 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = force;
+#line 473 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!_tmp6_) {
+#line 2679 "ThumbnailCache.c"
+ ThumbnailSource* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 474 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = source;
+#line 474 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = _thumbnail_cache_exists (self, _tmp7_);
+#line 474 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp8_) {
+#line 475 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2690 "ThumbnailCache.c"
+ }
+ } else {
+ ThumbnailSource* _tmp9_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = source;
+#line 478 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_remove (self, _tmp9_);
+#line 2698 "ThumbnailCache.c"
+ }
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = source;
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = thumbnail_cache_get_source_cached_file (self, _tmp10_);
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = _tmp11_;
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = scaled;
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = source;
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_save_thumbnail (self, _tmp12_, _tmp13_, _tmp14_, &_inner_error_);
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp12_);
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 481 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2720 "ThumbnailCache.c"
+ }
+}
+
+
+static void _thumbnail_cache_duplicate (ThumbnailCache* self, ThumbnailSource* src_source, ThumbnailSource* dest_source) {
+ GFile* src_file = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* dest_file = NULL;
+ ThumbnailSource* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ ThumbnailSource* _tmp5_ = NULL;
+ PhotoFileFormat _tmp6_ = 0;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 488 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (src_source));
+#line 488 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (dest_source));
+#line 489 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = src_source;
+#line 489 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_source_cached_file (self, _tmp0_);
+#line 489 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ src_file = _tmp1_;
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = dest_source;
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_source_get_representative_id (_tmp2_);
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_;
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = src_source;
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = thumbnail_source_get_preferred_thumbnail_format (_tmp5_);
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = thumbnail_cache_get_cached_file (self, _tmp4_, _tmp6_);
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = _tmp7_;
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp4_);
+#line 490 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dest_file = _tmp8_;
+#line 2768 "ThumbnailCache.c"
+ {
+#line 494 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_file_copy (src_file, dest_file, G_FILE_COPY_ALL_METADATA | G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, &_inner_error_);
+#line 494 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2774 "ThumbnailCache.c"
+ goto __catch225_g_error;
+ }
+ }
+ goto __finally225;
+ __catch225_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ err = _inner_error_;
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _inner_error_ = NULL;
+#line 496 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = err;
+#line 496 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = _tmp9_->message;
+#line 496 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = g_strdup_printf ("%s", _tmp10_);
+#line 496 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = _tmp11_;
+#line 496 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ app_window_panic (_tmp12_);
+#line 496 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp12_);
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 2804 "ThumbnailCache.c"
+ }
+ __finally225:
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (dest_file);
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (src_file);
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_clear_error (&_inner_error_);
+#line 493 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2819 "ThumbnailCache.c"
+ }
+#line 488 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (dest_file);
+#line 488 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (src_file);
+#line 2825 "ThumbnailCache.c"
+}
+
+
+static void _thumbnail_cache_replace (ThumbnailCache* self, ThumbnailSource* source, GdkPixbuf* original, GError** error) {
+ GFile* file = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ ThumbnailSource* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GdkPixbuf* scaled = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ ThumbnailCacheSize _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ GdkInterpType _tmp8_ = 0;
+ GdkPixbuf* _tmp9_ = NULL;
+ ThumbnailSource* _tmp10_ = NULL;
+ ThumbnailSource* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 502 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 502 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 502 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (original));
+#line 503 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 503 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_source_cached_file (self, _tmp0_);
+#line 503 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ file = _tmp1_;
+#line 506 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = source;
+#line 506 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_SOURCE, DataSource));
+#line 506 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_;
+#line 506 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_remove_from_memory (self, _tmp4_);
+#line 506 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp4_);
+#line 509 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = original;
+#line 509 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = self->priv->size;
+#line 509 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = thumbnail_cache_size_get_scale (_tmp6_);
+#line 509 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = self->priv->interp;
+#line 509 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = scale_pixbuf (_tmp5_, _tmp7_, _tmp8_, TRUE);
+#line 509 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ scaled = _tmp9_;
+#line 512 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = source;
+#line 512 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_save_thumbnail (self, file, scaled, _tmp10_, &_inner_error_);
+#line 512 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 512 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 512 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (scaled);
+#line 512 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 512 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2895 "ThumbnailCache.c"
+ }
+#line 518 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = source;
+#line 518 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_SOURCE, DataSource));
+#line 518 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = _tmp12_;
+#line 518 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_store_in_memory (self, _tmp13_, scaled);
+#line 518 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp13_);
+#line 502 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (scaled);
+#line 502 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 2911 "ThumbnailCache.c"
+}
+
+
+static void _thumbnail_cache_remove (ThumbnailCache* self, ThumbnailSource* source) {
+ GFile* file = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ ThumbnailSource* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 521 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 522 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 522 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_source_cached_file (self, _tmp0_);
+#line 522 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ file = _tmp1_;
+#line 525 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = source;
+#line 525 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_SOURCE, DataSource));
+#line 525 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_;
+#line 525 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_remove_from_memory (self, _tmp4_);
+#line 525 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp4_);
+#line 2943 "ThumbnailCache.c"
+ {
+#line 529 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_file_delete (file, NULL, &_inner_error_);
+#line 529 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2949 "ThumbnailCache.c"
+ goto __catch226_g_error;
+ }
+ }
+ goto __finally226;
+ __catch226_g_error:
+ {
+ GError* err = NULL;
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ err = _inner_error_;
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _inner_error_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 2963 "ThumbnailCache.c"
+ }
+ __finally226:
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_clear_error (&_inner_error_);
+#line 528 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 2976 "ThumbnailCache.c"
+ }
+#line 521 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (file);
+#line 2980 "ThumbnailCache.c"
+}
+
+
+static gboolean _thumbnail_cache_exists (ThumbnailCache* self, ThumbnailSource* source) {
+ gboolean result = FALSE;
+ ThumbnailSource* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 535 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (self), FALSE);
+#line 535 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), FALSE);
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_cache_get_source_cached_file (self, _tmp0_);
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp1_;
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = g_file_query_exists (_tmp2_, NULL);
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_;
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp2_);
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp4_;
+#line 536 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 3011 "ThumbnailCache.c"
+}
+
+
+static GdkPixbuf* thumbnail_cache_read_pixbuf (ThumbnailCache* self, const gchar* thumbnail_name, PhotoFileFormat format, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ PhotoFileReader* _tmp8_ = NULL;
+ PhotoFileReader* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (self), NULL);
+#line 540 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (thumbnail_name != NULL, NULL);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = format;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail_name;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = format;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = thumbnail_cache_get_cached_file (self, _tmp2_, _tmp3_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = _tmp4_;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = _tmp6_;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = photo_file_format_create_reader (_tmp1_, _tmp7_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = _tmp8_;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = photo_file_reader_unscaled_read (_tmp9_, &_inner_error_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = _tmp10_;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _photo_file_adapter_unref0 (_tmp9_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp7_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp5_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = _tmp11_;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return NULL;
+#line 3071 "ThumbnailCache.c"
+ }
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = _tmp0_;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = NULL;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp12_;
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp0_);
+#line 541 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 3083 "ThumbnailCache.c"
+}
+
+
+static GFile* thumbnail_cache_get_source_cached_file (ThumbnailCache* self, ThumbnailSource* source) {
+ GFile* result = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ ThumbnailSource* _tmp3_ = NULL;
+ PhotoFileFormat _tmp4_ = 0;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 545 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (self), NULL);
+#line 545 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), NULL);
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = source;
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_source_get_representative_id (_tmp0_);
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = _tmp1_;
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = source;
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = thumbnail_source_get_preferred_thumbnail_format (_tmp3_);
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = thumbnail_cache_get_cached_file (self, _tmp2_, _tmp4_);
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp5_;
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp2_);
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp6_;
+#line 546 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 3120 "ThumbnailCache.c"
+}
+
+
+static GFile* thumbnail_cache_get_cached_file (ThumbnailCache* self, const gchar* thumbnail_name, PhotoFileFormat thumbnail_format) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (self), NULL);
+#line 550 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (thumbnail_name != NULL, NULL);
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->priv->cache_dir;
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_format;
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail_name;
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = photo_file_format_get_default_basename (_tmp1_, _tmp2_);
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = _tmp3_;
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = g_file_get_child (_tmp0_, _tmp4_);
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp5_;
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp4_);
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp6_;
+#line 551 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 3157 "ThumbnailCache.c"
+}
+
+
+static GdkPixbuf* thumbnail_cache_fetch_from_memory (ThumbnailCache* self, const gchar* thumbnail_name) {
+ GdkPixbuf* result = NULL;
+ ThumbnailCacheImageData* data = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ ThumbnailCacheImageData* _tmp4_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 554 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (self), NULL);
+#line 554 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (thumbnail_name != NULL, NULL);
+#line 555 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->priv->cache_map;
+#line 555 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_name;
+#line 555 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 555 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ data = (ThumbnailCacheImageData*) _tmp2_;
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = data;
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp4_ != NULL) {
+#line 3186 "ThumbnailCache.c"
+ ThumbnailCacheImageData* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = data;
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp5_->pixbuf;
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = _tmp6_;
+#line 3195 "ThumbnailCache.c"
+ } else {
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = NULL;
+#line 3199 "ThumbnailCache.c"
+ }
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = _g_object_ref0 (_tmp3_);
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = _tmp7_;
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_image_data_unref0 (data);
+#line 557 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 3209 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_store_in_memory (ThumbnailCache* self, const gchar* thumbnail_name, GdkPixbuf* thumbnail) {
+ gulong _tmp0_ = 0UL;
+ const gchar* _tmp1_ = NULL;
+ ThumbnailCacheImageData* data = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ ThumbnailCacheImageData* _tmp3_ = NULL;
+ ThumbnailCacheImageData* _tmp4_ = NULL;
+ gulong _tmp5_ = 0UL;
+ GeeHashMap* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ ThumbnailCacheImageData* _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gulong _tmp12_ = 0UL;
+ ThumbnailCacheImageData* _tmp13_ = NULL;
+ gulong _tmp14_ = 0UL;
+#line 560 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 560 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (thumbnail_name != NULL);
+#line 560 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (thumbnail));
+#line 561 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->priv->max_cached_bytes;
+#line 561 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp0_ <= ((gulong) 0)) {
+#line 562 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 3241 "ThumbnailCache.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_name;
+#line 564 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_remove_from_memory (self, _tmp1_);
+#line 566 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail;
+#line 566 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = thumbnail_cache_image_data_new (_tmp2_);
+#line 566 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ data = _tmp3_;
+#line 569 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = data;
+#line 569 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = _tmp4_->bytes;
+#line 569 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp5_ > ((gulong) THUMBNAIL_CACHE_MAX_INMEMORY_DATA_SIZE)) {
+#line 3259 "ThumbnailCache.c"
+ const gchar* _tmp6_ = NULL;
+#line 570 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = thumbnail_name;
+#line 570 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_debug ("ThumbnailCache.vala:570: Persistent thumbnail [%s] too large to cache " \
+"in memory", _tmp6_);
+#line 572 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_image_data_unref0 (data);
+#line 572 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 3269 "ThumbnailCache.c"
+ }
+#line 575 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = self->priv->cache_map;
+#line 575 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = thumbnail_name;
+#line 575 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = data;
+#line 575 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp8_, _tmp9_);
+#line 576 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = self->priv->cache_lru;
+#line 576 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = thumbnail_name;
+#line 576 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ gee_abstract_list_insert (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0, _tmp11_);
+#line 578 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = self->priv->cached_bytes;
+#line 578 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = data;
+#line 578 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = _tmp13_->bytes;
+#line 578 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->cached_bytes = _tmp12_ + _tmp14_;
+#line 581 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ while (TRUE) {
+#line 3295 "ThumbnailCache.c"
+ gulong _tmp15_ = 0UL;
+ gulong _tmp16_ = 0UL;
+ GeeArrayList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint index = 0;
+ GeeArrayList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gchar* victim_name = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gpointer _tmp25_ = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gpointer _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ GeeHashMap* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gpointer _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ gboolean _tmp37_ = FALSE;
+ ThumbnailCacheImageData* _tmp38_ = NULL;
+ gulong _tmp39_ = 0UL;
+ gulong _tmp40_ = 0UL;
+ gulong _tmp41_ = 0UL;
+ ThumbnailCacheImageData* _tmp42_ = NULL;
+ gulong _tmp43_ = 0UL;
+#line 581 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = self->priv->cached_bytes;
+#line 581 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = self->priv->max_cached_bytes;
+#line 581 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!(_tmp15_ > _tmp16_)) {
+#line 581 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ break;
+#line 3336 "ThumbnailCache.c"
+ }
+#line 582 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = self->priv->cache_lru;
+#line 582 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp18_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 582 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19_ = _tmp18_;
+#line 582 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp19_ > 0, "cache_lru.size > 0");
+#line 583 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp20_ = self->priv->cache_lru;
+#line 583 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp21_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 583 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp22_ = _tmp21_;
+#line 583 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ index = _tmp22_ - 1;
+#line 585 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp23_ = self->priv->cache_lru;
+#line 585 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp24_ = index;
+#line 585 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp25_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp24_);
+#line 585 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ victim_name = (gchar*) _tmp25_;
+#line 586 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp26_ = self->priv->cache_lru;
+#line 586 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp27_ = index;
+#line 586 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp28_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp27_);
+#line 586 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp29_ = (gchar*) _tmp28_;
+#line 586 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp29_);
+#line 588 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp30_ = self->priv->cache_map;
+#line 588 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp31_ = victim_name;
+#line 588 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp32_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp31_);
+#line 588 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_image_data_unref0 (data);
+#line 588 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ data = (ThumbnailCacheImageData*) _tmp32_;
+#line 590 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp33_ = thumbnail_cache_cycle_overflow_thumbnails;
+#line 590 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_cycle_overflow_thumbnails = _tmp33_ + 1;
+#line 591 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_schedule_debug ();
+#line 593 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp34_ = self->priv->cache_map;
+#line 593 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp35_ = victim_name;
+#line 593 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp36_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp35_, NULL);
+#line 593 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ removed = _tmp36_;
+#line 594 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp37_ = removed;
+#line 594 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp37_, "removed");
+#line 596 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp38_ = data;
+#line 596 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp39_ = _tmp38_->bytes;
+#line 596 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp40_ = self->priv->cached_bytes;
+#line 596 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp39_ <= _tmp40_, "data.bytes <= cached_bytes");
+#line 597 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp41_ = self->priv->cached_bytes;
+#line 597 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp42_ = data;
+#line 597 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp43_ = _tmp42_->bytes;
+#line 597 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->cached_bytes = _tmp41_ - _tmp43_;
+#line 581 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (victim_name);
+#line 3418 "ThumbnailCache.c"
+ }
+#line 560 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_image_data_unref0 (data);
+#line 3422 "ThumbnailCache.c"
+}
+
+
+static gboolean thumbnail_cache_remove_from_memory (ThumbnailCache* self, const gchar* thumbnail_name) {
+ gboolean result = FALSE;
+ ThumbnailCacheImageData* data = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ ThumbnailCacheImageData* _tmp3_ = NULL;
+ gulong _tmp4_ = 0UL;
+ ThumbnailCacheImageData* _tmp5_ = NULL;
+ gulong _tmp6_ = 0UL;
+ gulong _tmp7_ = 0UL;
+ ThumbnailCacheImageData* _tmp8_ = NULL;
+ gulong _tmp9_ = 0UL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ GeeArrayList* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 601 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (self), FALSE);
+#line 601 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (thumbnail_name != NULL, FALSE);
+#line 602 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->priv->cache_map;
+#line 602 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = thumbnail_name;
+#line 602 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 602 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ data = (ThumbnailCacheImageData*) _tmp2_;
+#line 603 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = data;
+#line 603 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp3_ == NULL) {
+#line 604 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = FALSE;
+#line 604 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_image_data_unref0 (data);
+#line 604 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 3470 "ThumbnailCache.c"
+ }
+#line 606 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = self->priv->cached_bytes;
+#line 606 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = data;
+#line 606 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp5_->bytes;
+#line 606 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp4_ >= _tmp6_, "cached_bytes >= data.bytes");
+#line 607 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = self->priv->cached_bytes;
+#line 607 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = data;
+#line 607 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = _tmp8_->bytes;
+#line 607 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->cached_bytes = _tmp7_ - _tmp9_;
+#line 610 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = self->priv->cache_map;
+#line 610 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = thumbnail_name;
+#line 610 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL);
+#line 610 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ removed = _tmp12_;
+#line 611 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = removed;
+#line 611 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp13_, "removed");
+#line 614 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = self->priv->cache_lru;
+#line 614 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = thumbnail_name;
+#line 614 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 614 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ removed = _tmp16_;
+#line 615 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = removed;
+#line 615 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _vala_assert (_tmp17_, "removed");
+#line 617 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = TRUE;
+#line 617 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _thumbnail_cache_image_data_unref0 (data);
+#line 617 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 3518 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_save_thumbnail (ThumbnailCache* self, GFile* file, GdkPixbuf* pixbuf, ThumbnailSource* source, GError** error) {
+ PhotoFileWriter* _tmp0_ = NULL;
+ ThumbnailSource* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ PhotoFileWriter* _tmp6_ = NULL;
+ PhotoFileWriter* _tmp7_ = NULL;
+ PhotoFileWriter* _tmp8_ = NULL;
+ PhotoFileWriter* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 620 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_CACHE (self));
+#line 620 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 620 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 620 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = source;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = thumbnail_source_get_preferred_thumbnail_format (_tmp1_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = file;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = _tmp4_;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = photo_file_format_create_writer (_tmp2_, _tmp5_, &_inner_error_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = _tmp6_;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (_tmp5_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = _tmp7_;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 3567 "ThumbnailCache.c"
+ }
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = _tmp0_;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = NULL;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = _tmp8_;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = pixbuf;
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ photo_file_writer_write (_tmp9_, _tmp10_, THUMBNAIL_CACHE_DEFAULT_QUALITY, &_inner_error_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _photo_file_adapter_unref0 (_tmp9_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _photo_file_adapter_unref0 (_tmp0_);
+#line 621 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 3589 "ThumbnailCache.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _photo_file_adapter_unref0 (_tmp0_);
+#line 3593 "ThumbnailCache.c"
+}
+
+
+static ThumbnailCacheImageData* thumbnail_cache_image_data_construct (GType object_type, GdkPixbuf* pixbuf) {
+ ThumbnailCacheImageData* self = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ GdkPixbuf* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 63 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 63 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = (ThumbnailCacheImageData*) g_type_create_instance (object_type);
+#line 64 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = pixbuf;
+#line 64 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 64 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->pixbuf);
+#line 64 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->pixbuf = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = pixbuf;
+#line 68 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = gdk_pixbuf_get_rowstride (_tmp2_);
+#line 68 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = pixbuf;
+#line 68 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = gdk_pixbuf_get_height (_tmp4_);
+#line 68 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->bytes = ((gulong) _tmp3_) * ((gulong) _tmp5_);
+#line 63 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return self;
+#line 3629 "ThumbnailCache.c"
+}
+
+
+static ThumbnailCacheImageData* thumbnail_cache_image_data_new (GdkPixbuf* pixbuf) {
+#line 63 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return thumbnail_cache_image_data_construct (THUMBNAIL_CACHE_TYPE_IMAGE_DATA, pixbuf);
+#line 3636 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_value_image_data_init (GValue* value) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 3643 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_value_image_data_free_value (GValue* value) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (value->data[0].v_pointer) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_image_data_unref (value->data[0].v_pointer);
+#line 3652 "ThumbnailCache.c"
+ }
+}
+
+
+static void thumbnail_cache_value_image_data_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (src_value->data[0].v_pointer) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dest_value->data[0].v_pointer = thumbnail_cache_image_data_ref (src_value->data[0].v_pointer);
+#line 3662 "ThumbnailCache.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3666 "ThumbnailCache.c"
+ }
+}
+
+
+static gpointer thumbnail_cache_value_image_data_peek_pointer (const GValue* value) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return value->data[0].v_pointer;
+#line 3674 "ThumbnailCache.c"
+}
+
+
+static gchar* thumbnail_cache_value_image_data_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (collect_values[0].v_pointer) {
+#line 3681 "ThumbnailCache.c"
+ ThumbnailCacheImageData* object;
+ object = collect_values[0].v_pointer;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3688 "ThumbnailCache.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3692 "ThumbnailCache.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = thumbnail_cache_image_data_ref (object);
+#line 3696 "ThumbnailCache.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 3700 "ThumbnailCache.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return NULL;
+#line 3704 "ThumbnailCache.c"
+}
+
+
+static gchar* thumbnail_cache_value_image_data_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ThumbnailCacheImageData** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!object_p) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3715 "ThumbnailCache.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (!value->data[0].v_pointer) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ *object_p = NULL;
+#line 3721 "ThumbnailCache.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3725 "ThumbnailCache.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ *object_p = thumbnail_cache_image_data_ref (value->data[0].v_pointer);
+#line 3729 "ThumbnailCache.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return NULL;
+#line 3733 "ThumbnailCache.c"
+}
+
+
+static GParamSpec* thumbnail_cache_param_spec_image_data (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ThumbnailCacheParamSpecImageData* spec;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, THUMBNAIL_CACHE_TYPE_IMAGE_DATA), NULL);
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return G_PARAM_SPEC (spec);
+#line 3747 "ThumbnailCache.c"
+}
+
+
+static gpointer thumbnail_cache_value_get_image_data (const GValue* value) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, THUMBNAIL_CACHE_TYPE_IMAGE_DATA), NULL);
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return value->data[0].v_pointer;
+#line 3756 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_value_set_image_data (GValue* value, gpointer v_object) {
+ ThumbnailCacheImageData* old;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, THUMBNAIL_CACHE_TYPE_IMAGE_DATA));
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ old = value->data[0].v_pointer;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (v_object) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, THUMBNAIL_CACHE_TYPE_IMAGE_DATA));
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = v_object;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_image_data_ref (value->data[0].v_pointer);
+#line 3776 "ThumbnailCache.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 3780 "ThumbnailCache.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (old) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_image_data_unref (old);
+#line 3786 "ThumbnailCache.c"
+ }
+}
+
+
+static void thumbnail_cache_value_take_image_data (GValue* value, gpointer v_object) {
+ ThumbnailCacheImageData* old;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, THUMBNAIL_CACHE_TYPE_IMAGE_DATA));
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ old = value->data[0].v_pointer;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (v_object) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, THUMBNAIL_CACHE_TYPE_IMAGE_DATA));
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = v_object;
+#line 3805 "ThumbnailCache.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ value->data[0].v_pointer = NULL;
+#line 3809 "ThumbnailCache.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (old) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_image_data_unref (old);
+#line 3815 "ThumbnailCache.c"
+ }
+}
+
+
+static void thumbnail_cache_image_data_class_init (ThumbnailCacheImageDataClass * klass) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_image_data_parent_class = g_type_class_peek_parent (klass);
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ ((ThumbnailCacheImageDataClass *) klass)->finalize = thumbnail_cache_image_data_finalize;
+#line 3825 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_image_data_instance_init (ThumbnailCacheImageData * self) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->ref_count = 1;
+#line 3832 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_image_data_finalize (ThumbnailCacheImageData* obj) {
+ ThumbnailCacheImageData * self;
+ gulong _tmp0_ = 0UL;
+ gulong _tmp1_ = 0UL;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, THUMBNAIL_CACHE_TYPE_IMAGE_DATA, ThumbnailCacheImageData);
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_signal_handlers_destroy (self);
+#line 72 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = thumbnail_cache_cycle_dropped_bytes;
+#line 72 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = self->bytes;
+#line 72 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_cycle_dropped_bytes = _tmp0_ + _tmp1_;
+#line 73 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_schedule_debug ();
+#line 60 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->pixbuf);
+#line 3854 "ThumbnailCache.c"
+}
+
+
+static GType thumbnail_cache_image_data_get_type (void) {
+ static volatile gsize thumbnail_cache_image_data_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_cache_image_data_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { thumbnail_cache_value_image_data_init, thumbnail_cache_value_image_data_free_value, thumbnail_cache_value_image_data_copy_value, thumbnail_cache_value_image_data_peek_pointer, "p", thumbnail_cache_value_image_data_collect_value, "p", thumbnail_cache_value_image_data_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailCacheImageDataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnail_cache_image_data_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ThumbnailCacheImageData), 0, (GInstanceInitFunc) thumbnail_cache_image_data_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType thumbnail_cache_image_data_type_id;
+ thumbnail_cache_image_data_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ThumbnailCacheImageData", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&thumbnail_cache_image_data_type_id__volatile, thumbnail_cache_image_data_type_id);
+ }
+ return thumbnail_cache_image_data_type_id__volatile;
+}
+
+
+static gpointer thumbnail_cache_image_data_ref (gpointer instance) {
+ ThumbnailCacheImageData* self;
+ self = instance;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return instance;
+#line 3879 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_image_data_unref (gpointer instance) {
+ ThumbnailCacheImageData* self;
+ self = instance;
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ THUMBNAIL_CACHE_IMAGE_DATA_GET_CLASS (self)->finalize (self);
+#line 59 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3892 "ThumbnailCache.c"
+ }
+}
+
+
+static void _thumbnail_cache_async_fetch_completion_callback_completion_callback (BackgroundJob* job, gpointer self) {
+#line 94 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_async_fetch_completion_callback (job);
+#line 3900 "ThumbnailCache.c"
+}
+
+
+static ThumbnailCacheAsyncFetchJob* thumbnail_cache_async_fetch_job_construct (GType object_type, ThumbnailCache* cache, const gchar* thumbnail_name, ThumbnailSource* source, GdkPixbuf* prefetched, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable) {
+ ThumbnailCacheAsyncFetchJob* self = NULL;
+ ThumbnailCache* _tmp0_ = NULL;
+ GCancellable* _tmp1_ = NULL;
+ ThumbnailCache* _tmp2_ = NULL;
+ ThumbnailCache* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ ThumbnailSource* _tmp6_ = NULL;
+ ThumbnailSource* _tmp7_ = NULL;
+ ThumbnailSource* _tmp8_ = NULL;
+ PhotoFileFormat _tmp9_ = 0;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ Dimensions _tmp12_ = {0};
+ GdkInterpType _tmp13_ = 0;
+ ThumbnailCacheAsyncFetchCallback _tmp14_ = NULL;
+ void* _tmp14__target = NULL;
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_CACHE (cache), NULL);
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (thumbnail_name != NULL, NULL);
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), NULL);
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail ((prefetched == NULL) || GDK_IS_PIXBUF (prefetched), NULL);
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail (dim != NULL, NULL);
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), NULL);
+#line 94 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = cache;
+#line 94 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = cancellable;
+#line 94 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = (ThumbnailCacheAsyncFetchJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _thumbnail_cache_async_fetch_completion_callback_completion_callback, NULL, _tmp1_, NULL, NULL, NULL);
+#line 96 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = cache;
+#line 96 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 96 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->cache);
+#line 96 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->cache = _tmp3_;
+#line 97 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = thumbnail_name;
+#line 97 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 97 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (self->thumbnail_name);
+#line 97 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->thumbnail_name = _tmp5_;
+#line 98 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = source;
+#line 98 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 98 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->source);
+#line 98 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->source = _tmp7_;
+#line 99 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = source;
+#line 99 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = thumbnail_source_get_preferred_thumbnail_format (_tmp8_);
+#line 99 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->source_format = _tmp9_;
+#line 100 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = prefetched;
+#line 100 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 100 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->unscaled);
+#line 100 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->unscaled = _tmp11_;
+#line 101 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = *dim;
+#line 101 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->dim = _tmp12_;
+#line 102 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = interp;
+#line 102 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->interp = _tmp13_;
+#line 103 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = callback;
+#line 103 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14__target = callback_target;
+#line 103 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->callback = _tmp14_;
+#line 103 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->callback_target = _tmp14__target;
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return self;
+#line 3996 "ThumbnailCache.c"
+}
+
+
+static ThumbnailCacheAsyncFetchJob* thumbnail_cache_async_fetch_job_new (ThumbnailCache* cache, const gchar* thumbnail_name, ThumbnailSource* source, GdkPixbuf* prefetched, Dimensions* dim, GdkInterpType interp, ThumbnailCacheAsyncFetchCallback callback, void* callback_target, GCancellable* cancellable) {
+#line 91 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return thumbnail_cache_async_fetch_job_construct (THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, cache, thumbnail_name, source, prefetched, dim, interp, callback, callback_target, cancellable);
+#line 4003 "ThumbnailCache.c"
+}
+
+
+static BackgroundJobJobPriority thumbnail_cache_async_fetch_job_real_get_priority (BackgroundJob* base) {
+ ThumbnailCacheAsyncFetchJob * self;
+ BackgroundJobJobPriority result = 0;
+ GdkInterpType _tmp0_ = 0;
+#line 106 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, ThumbnailCacheAsyncFetchJob);
+#line 109 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->interp;
+#line 109 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ switch (_tmp0_) {
+#line 109 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ case GDK_INTERP_NEAREST:
+#line 109 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ case GDK_INTERP_TILES:
+#line 4021 "ThumbnailCache.c"
+ {
+#line 112 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = BACKGROUND_JOB_JOB_PRIORITY_HIGH;
+#line 112 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 4027 "ThumbnailCache.c"
+ }
+ default:
+#line 109 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ case GDK_INTERP_BILINEAR:
+#line 109 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ case GDK_INTERP_HYPER:
+#line 4034 "ThumbnailCache.c"
+ {
+#line 117 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ result = BACKGROUND_JOB_JOB_PRIORITY_NORMAL;
+#line 117 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return result;
+#line 4040 "ThumbnailCache.c"
+ }
+ }
+}
+
+
+static void thumbnail_cache_async_fetch_job_real_execute (BackgroundJob* base) {
+ ThumbnailCacheAsyncFetchJob * self;
+ GError * _inner_error_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, ThumbnailCacheAsyncFetchJob);
+#line 4051 "ThumbnailCache.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GdkPixbuf* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GdkPixbuf* _tmp16_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->unscaled;
+#line 124 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp0_ == NULL) {
+#line 4062 "ThumbnailCache.c"
+ GdkPixbuf* _tmp1_ = NULL;
+ ThumbnailCache* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ PhotoFileFormat _tmp4_ = 0;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = self->cache;
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = self->thumbnail_name;
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = self->source_format;
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = thumbnail_cache_read_pixbuf (_tmp2_, _tmp3_, _tmp4_, &_inner_error_);
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = _tmp5_;
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4081 "ThumbnailCache.c"
+ goto __catch227_g_error;
+ }
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp1_;
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->unscaled);
+#line 125 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->unscaled = _tmp6_;
+#line 126 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->fetched = TRUE;
+#line 124 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp1_);
+#line 4096 "ThumbnailCache.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp7_ = background_job_is_cancelled (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 129 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp7_) {
+#line 130 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 4104 "ThumbnailCache.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = dimensions_has_area (&self->dim);
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp9_) {
+#line 4110 "ThumbnailCache.c"
+ GdkPixbuf* _tmp10_ = NULL;
+ Dimensions _tmp11_ = {0};
+ GdkInterpType _tmp12_ = 0;
+ GdkPixbuf* _tmp13_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = self->unscaled;
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = self->dim;
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = self->interp;
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = resize_pixbuf (_tmp10_, &_tmp11_, _tmp12_);
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp8_);
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = _tmp13_;
+#line 4127 "ThumbnailCache.c"
+ } else {
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = self->unscaled;
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp8_);
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = _tmp15_;
+#line 4139 "ThumbnailCache.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = _g_object_ref0 (_tmp8_);
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->scaled);
+#line 133 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->scaled = _tmp16_;
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp8_);
+#line 4149 "ThumbnailCache.c"
+ }
+ goto __finally227;
+ __catch227_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp17_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ err = _inner_error_;
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _inner_error_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = err;
+#line 135 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp17_->domain == G_FILE_ERROR) {
+#line 4164 "ThumbnailCache.c"
+ {
+#line 137 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_async_fetch_job_generate_thumbnail (self, &_inner_error_);
+#line 137 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4170 "ThumbnailCache.c"
+ goto __catch228_g_error;
+ }
+ }
+ goto __finally228;
+ __catch228_g_error:
+ {
+ GError* generr = NULL;
+ GError* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ generr = _inner_error_;
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _inner_error_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp18_ = generr;
+#line 140 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19_ = _g_error_copy0 (_tmp18_);
+#line 140 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 140 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ err = _tmp19_;
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (generr);
+#line 4194 "ThumbnailCache.c"
+ }
+ __finally228:
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_clear_error (&_inner_error_);
+#line 136 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 4209 "ThumbnailCache.c"
+ }
+ } else {
+ GError* _tmp20_ = NULL;
+ GError* _tmp21_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp20_ = err;
+#line 144 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp21_ = _g_error_copy0 (_tmp20_);
+#line 144 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (self->err);
+#line 144 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->err = _tmp21_;
+#line 4222 "ThumbnailCache.c"
+ }
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (err);
+#line 4226 "ThumbnailCache.c"
+ }
+ __finally227:
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_clear_error (&_inner_error_);
+#line 122 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 4237 "ThumbnailCache.c"
+ }
+}
+
+
+static void thumbnail_cache_async_fetch_job_generate_thumbnail (ThumbnailCacheAsyncFetchJob* self, GError** error) {
+ Photo* photo = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_return_if_fail (THUMBNAIL_CACHE_IS_ASYNC_FETCH_JOB (self));
+#line 150 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = self->source;
+#line 150 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO) ? ((Photo*) _tmp0_) : NULL);
+#line 150 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ photo = _tmp1_;
+#line 151 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp2_ = photo;
+#line 151 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp2_ != NULL) {
+#line 4261 "ThumbnailCache.c"
+ GdkPixbuf* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Scaling _tmp7_ = {0};
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp4_ = photo;
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp5_ = self->dim;
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp6_ = _tmp5_.width;
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ scaling_for_best_fit (_tmp6_, TRUE, &_tmp7_);
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp8_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp7_, &_inner_error_);
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = _tmp8_;
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (photo);
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 4289 "ThumbnailCache.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp9_ = _tmp3_;
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp3_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->unscaled);
+#line 152 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->unscaled = _tmp9_;
+#line 151 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp3_);
+#line 4301 "ThumbnailCache.c"
+ } else {
+ Video* video = NULL;
+ ThumbnailSource* _tmp10_ = NULL;
+ Video* _tmp11_ = NULL;
+ Video* _tmp12_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp10_ = self->source;
+#line 154 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_VIDEO) ? ((Video*) _tmp10_) : NULL);
+#line 154 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ video = _tmp11_;
+#line 155 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp12_ = video;
+#line 155 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp12_ != NULL) {
+#line 4317 "ThumbnailCache.c"
+ GdkPixbuf* _tmp13_ = NULL;
+ Video* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkPixbuf* _tmp17_ = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp14_ = video;
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp15_ = self->dim;
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp16_ = _tmp15_.width;
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp17_ = thumbnail_source_create_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp16_, &_inner_error_);
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = _tmp17_;
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_propagate_error (error, _inner_error_);
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (video);
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (photo);
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ return;
+#line 4344 "ThumbnailCache.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp18_ = _tmp13_;
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp13_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->unscaled);
+#line 156 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->unscaled = _tmp18_;
+#line 155 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (_tmp13_);
+#line 4356 "ThumbnailCache.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (video);
+#line 4360 "ThumbnailCache.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp19_ = self->unscaled;
+#line 159 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ if (_tmp19_ != NULL) {
+#line 4366 "ThumbnailCache.c"
+ GdkPixbuf* _tmp20_ = NULL;
+ Dimensions _tmp21_ = {0};
+ GdkInterpType _tmp22_ = 0;
+ GdkPixbuf* _tmp23_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp20_ = self->unscaled;
+#line 160 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp21_ = self->dim;
+#line 160 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp22_ = self->interp;
+#line 160 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp23_ = resize_pixbuf (_tmp20_, &_tmp21_, _tmp22_);
+#line 160 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->scaled);
+#line 160 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->scaled = _tmp23_;
+#line 161 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->replace = TRUE;
+#line 4385 "ThumbnailCache.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (photo);
+#line 4389 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_async_fetch_job_class_init (ThumbnailCacheAsyncFetchJobClass * klass) {
+#line 77 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_async_fetch_job_parent_class = g_type_class_peek_parent (klass);
+#line 77 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ ((BackgroundJobClass *) klass)->finalize = thumbnail_cache_async_fetch_job_finalize;
+#line 77 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ ((BackgroundJobClass *) klass)->get_priority = thumbnail_cache_async_fetch_job_real_get_priority;
+#line 77 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ ((BackgroundJobClass *) klass)->execute = thumbnail_cache_async_fetch_job_real_execute;
+#line 4402 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_async_fetch_job_instance_init (ThumbnailCacheAsyncFetchJob * self) {
+#line 86 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->scaled = NULL;
+#line 87 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->err = NULL;
+#line 88 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->fetched = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->replace = FALSE;
+#line 4415 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_async_fetch_job_finalize (BackgroundJob* obj) {
+ ThumbnailCacheAsyncFetchJob * self;
+#line 77 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, THUMBNAIL_CACHE_TYPE_ASYNC_FETCH_JOB, ThumbnailCacheAsyncFetchJob);
+#line 78 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->cache);
+#line 79 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_free0 (self->thumbnail_name);
+#line 80 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->source);
+#line 85 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->unscaled);
+#line 86 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->scaled);
+#line 87 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_error_free0 (self->err);
+#line 77 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ BACKGROUND_JOB_CLASS (thumbnail_cache_async_fetch_job_parent_class)->finalize (obj);
+#line 4437 "ThumbnailCache.c"
+}
+
+
+static GType thumbnail_cache_async_fetch_job_get_type (void) {
+ static volatile gsize thumbnail_cache_async_fetch_job_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_cache_async_fetch_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailCacheAsyncFetchJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnail_cache_async_fetch_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ThumbnailCacheAsyncFetchJob), 0, (GInstanceInitFunc) thumbnail_cache_async_fetch_job_instance_init, NULL };
+ GType thumbnail_cache_async_fetch_job_type_id;
+ thumbnail_cache_async_fetch_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "ThumbnailCacheAsyncFetchJob", &g_define_type_info, 0);
+ g_once_init_leave (&thumbnail_cache_async_fetch_job_type_id__volatile, thumbnail_cache_async_fetch_job_type_id);
+ }
+ return thumbnail_cache_async_fetch_job_type_id__volatile;
+}
+
+
+static void thumbnail_cache_class_init (ThumbnailCacheClass * klass) {
+ ThumbnailCacheSize* _tmp0_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_parent_class = g_type_class_peek_parent (klass);
+#line 27 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ g_type_class_add_private (klass, sizeof (ThumbnailCachePrivate));
+#line 27 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ G_OBJECT_CLASS (klass)->finalize = thumbnail_cache_finalize;
+#line 54 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = g_new0 (ThumbnailCacheSize, 2);
+#line 54 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_[0] = THUMBNAIL_CACHE_SIZE_BIG;
+#line 54 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_[1] = THUMBNAIL_CACHE_SIZE_MEDIUM;
+#line 54 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_ALL_SIZES = _tmp0_;
+#line 54 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ thumbnail_cache_ALL_SIZES_length1 = 2;
+#line 4471 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_instance_init (ThumbnailCache * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv = THUMBNAIL_CACHE_GET_PRIVATE (self);
+#line 186 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, THUMBNAIL_CACHE_TYPE_IMAGE_DATA, (GBoxedCopyFunc) thumbnail_cache_image_data_ref, thumbnail_cache_image_data_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 186 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->cache_map = _tmp0_;
+#line 187 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _tmp1_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 187 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->cache_lru = _tmp1_;
+#line 188 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self->priv->cached_bytes = (gulong) 0;
+#line 4490 "ThumbnailCache.c"
+}
+
+
+static void thumbnail_cache_finalize (GObject* obj) {
+ ThumbnailCache * self;
+#line 27 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_THUMBNAIL_CACHE, ThumbnailCache);
+#line 181 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->priv->cache_dir);
+#line 186 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->priv->cache_map);
+#line 187 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ _g_object_unref0 (self->priv->cache_lru);
+#line 27 "/home/jens/Source/shotwell/src/ThumbnailCache.vala"
+ G_OBJECT_CLASS (thumbnail_cache_parent_class)->finalize (obj);
+#line 4506 "ThumbnailCache.c"
+}
+
+
+GType thumbnail_cache_get_type (void) {
+ static volatile gsize thumbnail_cache_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_cache_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailCacheClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnail_cache_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ThumbnailCache), 0, (GInstanceInitFunc) thumbnail_cache_instance_init, NULL };
+ GType thumbnail_cache_type_id;
+ thumbnail_cache_type_id = g_type_register_static (G_TYPE_OBJECT, "ThumbnailCache", &g_define_type_info, 0);
+ g_once_init_leave (&thumbnail_cache_type_id__volatile, thumbnail_cache_type_id);
+ }
+ return thumbnail_cache_type_id__volatile;
+}
+
+
+
diff --git a/src/TimedQueue.c b/src/TimedQueue.c
new file mode 100644
index 0000000..9d872a5
--- /dev/null
+++ b/src/TimedQueue.c
@@ -0,0 +1,2239 @@
+/* TimedQueue.c generated by valac 0.32.1, the Vala compiler
+ * generated from TimedQueue.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* TimedQueue is a specialized collection class. It holds items in order, but rather than being*/
+/* manually dequeued, they are dequeued automatically after a specified amount of time has elapsed*/
+/* for that item. As of today, it's possible the item will be dequeued a bit later than asked*/
+/* for, but it will never be early. Future implementations might tighten up the lateness.*/
+/**/
+/* The original design was to use a signal to notify when an item has been dequeued, but Vala has*/
+/* a bug with passing an unnamed type as a signal parameter:*/
+/* https://bugzilla.gnome.org/show_bug.cgi?id=628639*/
+/**/
+/* The rate the items come off the queue can be spaced out. Note that this can cause items to back*/
+/* up. As of today, TimedQueue makes no effort to combat this.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_TIMED_QUEUE (timed_queue_get_type ())
+#define TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TIMED_QUEUE, TimedQueue))
+#define TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TIMED_QUEUE, TimedQueueClass))
+#define IS_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TIMED_QUEUE))
+#define IS_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TIMED_QUEUE))
+#define TIMED_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TIMED_QUEUE, TimedQueueClass))
+
+typedef struct _TimedQueue TimedQueue;
+typedef struct _TimedQueueClass TimedQueueClass;
+typedef struct _TimedQueuePrivate TimedQueuePrivate;
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+
+#define TIMED_QUEUE_TYPE_ELEMENT (timed_queue_element_get_type ())
+#define TIMED_QUEUE_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TIMED_QUEUE_TYPE_ELEMENT, TimedQueueElement))
+#define TIMED_QUEUE_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TIMED_QUEUE_TYPE_ELEMENT, TimedQueueElementClass))
+#define TIMED_QUEUE_IS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TIMED_QUEUE_TYPE_ELEMENT))
+#define TIMED_QUEUE_IS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TIMED_QUEUE_TYPE_ELEMENT))
+#define TIMED_QUEUE_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TIMED_QUEUE_TYPE_ELEMENT, TimedQueueElementClass))
+
+typedef struct _TimedQueueElement TimedQueueElement;
+typedef struct _TimedQueueElementClass TimedQueueElementClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _TimedQueueElementPrivate TimedQueueElementPrivate;
+#define _timed_queue_element_unref0(var) ((var == NULL) ? NULL : (var = (timed_queue_element_unref (var), NULL)))
+#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL)))
+typedef struct _TimedQueueParamSpecElement TimedQueueParamSpecElement;
+typedef struct _ParamSpecTimedQueue ParamSpecTimedQueue;
+
+#define TYPE_HASH_TIMED_QUEUE (hash_timed_queue_get_type ())
+#define HASH_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HASH_TIMED_QUEUE, HashTimedQueue))
+#define HASH_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HASH_TIMED_QUEUE, HashTimedQueueClass))
+#define IS_HASH_TIMED_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HASH_TIMED_QUEUE))
+#define IS_HASH_TIMED_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HASH_TIMED_QUEUE))
+#define HASH_TIMED_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HASH_TIMED_QUEUE, HashTimedQueueClass))
+
+typedef struct _HashTimedQueue HashTimedQueue;
+typedef struct _HashTimedQueueClass HashTimedQueueClass;
+typedef struct _HashTimedQueuePrivate HashTimedQueuePrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef void (*DequeuedCallback) (gconstpointer item, void* user_data);
+struct _TimedQueue {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TimedQueuePrivate * priv;
+};
+
+struct _TimedQueueClass {
+ GTypeClass parent_class;
+ void (*finalize) (TimedQueue *self);
+ void (*notify_dequeued) (TimedQueue* self, gconstpointer item);
+ void (*clear) (TimedQueue* self);
+ gboolean (*contains) (TimedQueue* self, gconstpointer item);
+ gboolean (*enqueue) (TimedQueue* self, gconstpointer item);
+ gboolean (*enqueue_many) (TimedQueue* self, GeeCollection* items);
+ gboolean (*remove_first) (TimedQueue* self, gconstpointer item);
+ void (*paused) (TimedQueue* self, gboolean is_paused);
+ gint (*get_size) (TimedQueue* self);
+};
+
+struct _TimedQueuePrivate {
+ GType g_type;
+ GBoxedCopyFunc g_dup_func;
+ GDestroyNotify g_destroy_func;
+ guint hold_msec;
+ DequeuedCallback callback;
+ gpointer callback_target;
+ GeeEqualDataFunc equal_func;
+ gpointer equal_func_target;
+ GDestroyNotify equal_func_target_destroy_notify;
+ gint priority;
+ guint timer_id;
+ SortedList* queue;
+ guint dequeue_spacing_msec;
+ gulong last_dequeue;
+ gboolean paused_state;
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+struct _TimedQueueElement {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TimedQueueElementPrivate * priv;
+ gpointer item;
+ gulong ready;
+};
+
+struct _TimedQueueElementClass {
+ GTypeClass parent_class;
+ void (*finalize) (TimedQueueElement *self);
+};
+
+struct _TimedQueueElementPrivate {
+ GType g_type;
+ GBoxedCopyFunc g_dup_func;
+ GDestroyNotify g_destroy_func;
+};
+
+struct _TimedQueueParamSpecElement {
+ GParamSpec parent_instance;
+};
+
+struct _ParamSpecTimedQueue {
+ GParamSpec parent_instance;
+};
+
+struct _HashTimedQueue {
+ TimedQueue parent_instance;
+ HashTimedQueuePrivate * priv;
+};
+
+struct _HashTimedQueueClass {
+ TimedQueueClass parent_class;
+};
+
+struct _HashTimedQueuePrivate {
+ GType g_type;
+ GBoxedCopyFunc g_dup_func;
+ GDestroyNotify g_destroy_func;
+ GeeHashMap* item_count;
+};
+
+
+static gpointer timed_queue_parent_class = NULL;
+static gpointer timed_queue_element_parent_class = NULL;
+static gpointer hash_timed_queue_parent_class = NULL;
+
+gpointer timed_queue_ref (gpointer instance);
+void timed_queue_unref (gpointer instance);
+GParamSpec* param_spec_timed_queue (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_timed_queue (GValue* value, gpointer v_object);
+void value_take_timed_queue (GValue* value, gpointer v_object);
+gpointer value_get_timed_queue (const GValue* value);
+GType timed_queue_get_type (void) G_GNUC_CONST;
+GType sorted_list_get_type (void) G_GNUC_CONST;
+static gpointer timed_queue_element_ref (gpointer instance);
+static void timed_queue_element_unref (gpointer instance);
+static GParamSpec* timed_queue_param_spec_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void timed_queue_value_set_element (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void timed_queue_value_take_element (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer timed_queue_value_get_element (const GValue* value) G_GNUC_UNUSED;
+static GType timed_queue_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define TIMED_QUEUE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TIMED_QUEUE, TimedQueuePrivate))
+enum {
+ TIMED_QUEUE_DUMMY_PROPERTY
+};
+TimedQueue* timed_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+TimedQueue* timed_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+static gint64 timed_queue_element_comparator (void* a, void* b);
+static gint64 _timed_queue_element_comparator_comparator (void* a, void* b, gpointer self);
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+static guint timed_queue_get_heartbeat_timeout (TimedQueue* self);
+static gboolean timed_queue_on_heartbeat (TimedQueue* self);
+static gboolean _timed_queue_on_heartbeat_gsource_func (gpointer self);
+guint timed_queue_get_dequeue_spacing_msec (TimedQueue* self);
+void timed_queue_set_dequeue_spacing_msec (TimedQueue* self, guint msec);
+void timed_queue_notify_dequeued (TimedQueue* self, gconstpointer item);
+static void timed_queue_real_notify_dequeued (TimedQueue* self, gconstpointer item);
+gboolean timed_queue_is_paused (TimedQueue* self);
+void timed_queue_pause (TimedQueue* self);
+void timed_queue_unpause (TimedQueue* self);
+void timed_queue_clear (TimedQueue* self);
+static void timed_queue_real_clear (TimedQueue* self);
+gboolean timed_queue_contains (TimedQueue* self, gconstpointer item);
+static gboolean timed_queue_real_contains (TimedQueue* self, gconstpointer item);
+gboolean timed_queue_enqueue (TimedQueue* self, gconstpointer item);
+static gboolean timed_queue_real_enqueue (TimedQueue* self, gconstpointer item);
+static gulong timed_queue_calc_ready_time (TimedQueue* self);
+static TimedQueueElement* timed_queue_element_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item, gulong ready);
+static TimedQueueElement* timed_queue_element_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item, gulong ready);
+gboolean timed_queue_enqueue_many (TimedQueue* self, GeeCollection* items);
+static gboolean timed_queue_real_enqueue_many (TimedQueue* self, GeeCollection* items);
+gboolean sorted_list_add_list (SortedList* self, GeeList* items);
+gboolean timed_queue_remove_first (TimedQueue* self, gconstpointer item);
+static gboolean timed_queue_real_remove_first (TimedQueue* self, gconstpointer item);
+gulong now_ms (void);
+gpointer sorted_list_get_at (SortedList* self, gint index);
+gpointer sorted_list_remove_at (SortedList* self, gint index);
+gint timed_queue_get_size (TimedQueue* self);
+static void timed_queue_real_paused (TimedQueue* self, gboolean is_paused);
+#define TIMED_QUEUE_ELEMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TIMED_QUEUE_TYPE_ELEMENT, TimedQueueElementPrivate))
+enum {
+ TIMED_QUEUE_ELEMENT_DUMMY_PROPERTY
+};
+static void timed_queue_element_finalize (TimedQueueElement* obj);
+static void timed_queue_finalize (TimedQueue* obj);
+GType hash_timed_queue_get_type (void) G_GNUC_CONST;
+#define HASH_TIMED_QUEUE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_HASH_TIMED_QUEUE, HashTimedQueuePrivate))
+enum {
+ HASH_TIMED_QUEUE_DUMMY_PROPERTY
+};
+HashTimedQueue* hash_timed_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+HashTimedQueue* hash_timed_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority);
+static void hash_timed_queue_real_notify_dequeued (TimedQueue* base, gconstpointer item);
+static void hash_timed_queue_removed (HashTimedQueue* self, gconstpointer item);
+static void hash_timed_queue_real_clear (TimedQueue* base);
+static gboolean hash_timed_queue_real_contains (TimedQueue* base, gconstpointer item);
+static gboolean hash_timed_queue_real_enqueue (TimedQueue* base, gconstpointer item);
+static gboolean hash_timed_queue_real_enqueue_many (TimedQueue* base, GeeCollection* items);
+static gboolean hash_timed_queue_real_remove_first (TimedQueue* base, gconstpointer item);
+static void hash_timed_queue_finalize (TimedQueue* obj);
+
+
+static gint64 _timed_queue_element_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = timed_queue_element_comparator (a, b);
+#line 64 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 249 "TimedQueue.c"
+}
+
+
+static gboolean _timed_queue_on_heartbeat_gsource_func (gpointer self) {
+ gboolean result;
+ result = timed_queue_on_heartbeat ((TimedQueue*) self);
+#line 66 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 258 "TimedQueue.c"
+}
+
+
+TimedQueue* timed_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority) {
+ TimedQueue* self = NULL;
+ guint _tmp0_ = 0U;
+ DequeuedCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GeeEqualDataFunc _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ gint _tmp7_ = 0;
+ SortedList* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ gint _tmp10_ = 0;
+ guint _tmp11_ = 0U;
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = (TimedQueue*) g_type_create_instance (object_type);
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_type = g_type;
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_dup_func = g_dup_func;
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_destroy_func = g_destroy_func;
+#line 54 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = hold_msec;
+#line 54 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->hold_msec = _tmp0_;
+#line 55 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = callback;
+#line 55 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1__target = callback_target;
+#line 55 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->callback = _tmp1_;
+#line 55 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->callback_target = _tmp1__target;
+#line 57 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = equal_func;
+#line 57 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2__target = equal_func_target;
+#line 57 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp2_ != NULL) {
+#line 300 "TimedQueue.c"
+ GeeEqualDataFunc _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ GDestroyNotify _tmp3__target_destroy_notify = NULL;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = equal_func;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3__target = equal_func_target;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3__target_destroy_notify = equal_func_target_destroy_notify;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func_target_destroy_notify = NULL;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ (self->priv->equal_func_target_destroy_notify == NULL) ? NULL : (self->priv->equal_func_target_destroy_notify (self->priv->equal_func_target), NULL);
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func = NULL;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target = NULL;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target_destroy_notify = NULL;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func = _tmp3_;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target = _tmp3__target;
+#line 58 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target_destroy_notify = _tmp3__target_destroy_notify;
+#line 326 "TimedQueue.c"
+ } else {
+ void* _tmp4_ = NULL;
+ GDestroyNotify _tmp5_ = NULL;
+ GeeEqualDataFunc _tmp6_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = gee_functions_get_equal_func_for (g_type, &_tmp4_, &_tmp5_);
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ (self->priv->equal_func_target_destroy_notify == NULL) ? NULL : (self->priv->equal_func_target_destroy_notify (self->priv->equal_func_target), NULL);
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func = NULL;
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target = NULL;
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target_destroy_notify = NULL;
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func = (GeeEqualDataFunc) _tmp6_;
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target = _tmp4_;
+#line 60 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target_destroy_notify = _tmp5_;
+#line 347 "TimedQueue.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = priority;
+#line 62 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->priority = _tmp7_;
+#line 64 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = sorted_list_new (TIMED_QUEUE_TYPE_ELEMENT, (GBoxedCopyFunc) timed_queue_element_ref, timed_queue_element_unref, _timed_queue_element_comparator_comparator, NULL);
+#line 64 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (self->priv->queue);
+#line 64 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->queue = _tmp8_;
+#line 66 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = timed_queue_get_heartbeat_timeout (self);
+#line 66 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = priority;
+#line 66 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp11_ = g_timeout_add_full (_tmp10_, _tmp9_, _timed_queue_on_heartbeat_gsource_func, timed_queue_ref (self), timed_queue_unref);
+#line 66 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->timer_id = _tmp11_;
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ (equal_func_target_destroy_notify == NULL) ? NULL : (equal_func_target_destroy_notify (equal_func_target), NULL);
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func = NULL;
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func_target = NULL;
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func_target_destroy_notify = NULL;
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return self;
+#line 377 "TimedQueue.c"
+}
+
+
+TimedQueue* timed_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority) {
+#line 52 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return timed_queue_construct (TYPE_TIMED_QUEUE, g_type, g_dup_func, g_destroy_func, hold_msec, callback, callback_target, equal_func, equal_func_target, equal_func_target_destroy_notify, priority);
+#line 384 "TimedQueue.c"
+}
+
+
+guint timed_queue_get_dequeue_spacing_msec (TimedQueue* self) {
+ guint result = 0U;
+ guint _tmp0_ = 0U;
+#line 74 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), 0U);
+#line 75 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->dequeue_spacing_msec;
+#line 75 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp0_;
+#line 75 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 399 "TimedQueue.c"
+}
+
+
+void timed_queue_set_dequeue_spacing_msec (TimedQueue* self, guint msec) {
+ guint _tmp0_ = 0U;
+ guint _tmp1_ = 0U;
+ guint _tmp2_ = 0U;
+ guint _tmp4_ = 0U;
+ guint _tmp5_ = 0U;
+ gint _tmp6_ = 0;
+ guint _tmp7_ = 0U;
+#line 78 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (IS_TIMED_QUEUE (self));
+#line 79 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = msec;
+#line 79 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = self->priv->dequeue_spacing_msec;
+#line 79 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 80 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return;
+#line 421 "TimedQueue.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = self->priv->timer_id;
+#line 82 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp2_ != ((guint) 0)) {
+#line 427 "TimedQueue.c"
+ guint _tmp3_ = 0U;
+#line 83 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = self->priv->timer_id;
+#line 83 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_source_remove (_tmp3_);
+#line 433 "TimedQueue.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = msec;
+#line 85 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->dequeue_spacing_msec = _tmp4_;
+#line 87 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = timed_queue_get_heartbeat_timeout (self);
+#line 87 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = self->priv->priority;
+#line 87 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = g_timeout_add_full (_tmp6_, _tmp5_, _timed_queue_on_heartbeat_gsource_func, timed_queue_ref (self), timed_queue_unref);
+#line 87 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->timer_id = _tmp7_;
+#line 447 "TimedQueue.c"
+}
+
+
+static guint timed_queue_get_heartbeat_timeout (TimedQueue* self) {
+ guint result = 0U;
+ guint _tmp0_ = 0U;
+ guint _tmp1_ = 0U;
+ guint _tmp4_ = 0U;
+#line 90 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), 0U);
+#line 91 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = self->priv->dequeue_spacing_msec;
+#line 91 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp1_ == ((guint) 0)) {
+#line 462 "TimedQueue.c"
+ guint _tmp2_ = 0U;
+#line 92 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = self->priv->hold_msec;
+#line 92 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = _tmp2_ / 10;
+#line 468 "TimedQueue.c"
+ } else {
+ guint _tmp3_ = 0U;
+#line 93 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = self->priv->dequeue_spacing_msec;
+#line 93 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = _tmp3_ / 2;
+#line 475 "TimedQueue.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = CLAMP (_tmp0_, (guint) 10, G_MAXUINT);
+#line 91 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp4_;
+#line 91 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 483 "TimedQueue.c"
+}
+
+
+static void timed_queue_real_notify_dequeued (TimedQueue* self, gconstpointer item) {
+ DequeuedCallback _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ gconstpointer _tmp1_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->callback;
+#line 97 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0__target = self->priv->callback_target;
+#line 97 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = item;
+#line 97 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ (_tmp1_, _tmp0__target);
+#line 499 "TimedQueue.c"
+}
+
+
+void timed_queue_notify_dequeued (TimedQueue* self, gconstpointer item) {
+#line 96 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (IS_TIMED_QUEUE (self));
+#line 96 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_GET_CLASS (self)->notify_dequeued (self, item);
+#line 508 "TimedQueue.c"
+}
+
+
+gboolean timed_queue_is_paused (TimedQueue* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 100 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), FALSE);
+#line 101 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->paused_state;
+#line 101 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp0_;
+#line 101 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 523 "TimedQueue.c"
+}
+
+
+void timed_queue_pause (TimedQueue* self) {
+ gboolean _tmp0_ = FALSE;
+#line 104 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (IS_TIMED_QUEUE (self));
+#line 105 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->paused_state;
+#line 105 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp0_) {
+#line 106 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return;
+#line 537 "TimedQueue.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->paused_state = TRUE;
+#line 110 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_signal_emit_by_name (self, "paused", TRUE);
+#line 543 "TimedQueue.c"
+}
+
+
+void timed_queue_unpause (TimedQueue* self) {
+ gboolean _tmp0_ = FALSE;
+#line 113 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (IS_TIMED_QUEUE (self));
+#line 114 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->paused_state;
+#line 114 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp0_) {
+#line 115 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return;
+#line 557 "TimedQueue.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->paused_state = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_signal_emit_by_name (self, "paused", FALSE);
+#line 563 "TimedQueue.c"
+}
+
+
+static void timed_queue_real_clear (TimedQueue* self) {
+ SortedList* _tmp0_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->queue;
+#line 123 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 573 "TimedQueue.c"
+}
+
+
+void timed_queue_clear (TimedQueue* self) {
+#line 122 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (IS_TIMED_QUEUE (self));
+#line 122 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_GET_CLASS (self)->clear (self);
+#line 582 "TimedQueue.c"
+}
+
+
+static gboolean timed_queue_real_contains (TimedQueue* self, gconstpointer item) {
+ gboolean result = FALSE;
+ {
+ GeeIterator* _e_it = NULL;
+ SortedList* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->queue;
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _e_it = _tmp1_;
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ while (TRUE) {
+#line 600 "TimedQueue.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ TimedQueueElement* e = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeEqualDataFunc _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ gconstpointer _tmp7_ = NULL;
+ TimedQueueElement* _tmp8_ = NULL;
+ gconstpointer _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = _e_it;
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp3_) {
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 620 "TimedQueue.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = _e_it;
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ e = (TimedQueueElement*) _tmp5_;
+#line 128 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = self->priv->equal_func;
+#line 128 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6__target = self->priv->equal_func_target;
+#line 128 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = item;
+#line 128 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = e;
+#line 128 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = _tmp8_->item;
+#line 128 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = _tmp6_ (_tmp7_, _tmp9_, _tmp6__target);
+#line 128 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp10_) {
+#line 129 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = TRUE;
+#line 129 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (e);
+#line 129 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (_e_it);
+#line 129 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 650 "TimedQueue.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (e);
+#line 654 "TimedQueue.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (_e_it);
+#line 658 "TimedQueue.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = FALSE;
+#line 132 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 664 "TimedQueue.c"
+}
+
+
+gboolean timed_queue_contains (TimedQueue* self, gconstpointer item) {
+#line 126 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), FALSE);
+#line 126 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return TIMED_QUEUE_GET_CLASS (self)->contains (self, item);
+#line 673 "TimedQueue.c"
+}
+
+
+static gboolean timed_queue_real_enqueue (TimedQueue* self, gconstpointer item) {
+ gboolean result = FALSE;
+ SortedList* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ gulong _tmp2_ = 0UL;
+ TimedQueueElement* _tmp3_ = NULL;
+ TimedQueueElement* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->queue;
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = item;
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = timed_queue_calc_ready_time (self);
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = timed_queue_element_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, self->priv->g_destroy_func, _tmp1_, _tmp2_);
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = _tmp3_;
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp4_);
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = _tmp5_;
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (_tmp4_);
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp6_;
+#line 136 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 706 "TimedQueue.c"
+}
+
+
+gboolean timed_queue_enqueue (TimedQueue* self, gconstpointer item) {
+#line 135 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), FALSE);
+#line 135 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return TIMED_QUEUE_GET_CLASS (self)->enqueue (self, item);
+#line 715 "TimedQueue.c"
+}
+
+
+static gboolean timed_queue_real_enqueue_many (TimedQueue* self, GeeCollection* items) {
+ gboolean result = FALSE;
+ gulong ready_time = 0UL;
+ gulong _tmp0_ = 0UL;
+ GeeArrayList* elements = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ SortedList* _tmp13_ = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 139 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (items), FALSE);
+#line 140 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = timed_queue_calc_ready_time (self);
+#line 140 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ready_time = _tmp0_;
+#line 142 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = gee_array_list_new (TIMED_QUEUE_TYPE_ELEMENT, (GBoxedCopyFunc) timed_queue_element_ref, timed_queue_element_unref, NULL, NULL, NULL);
+#line 142 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ elements = _tmp1_;
+#line 738 "TimedQueue.c"
+ {
+ GeeIterator* _item_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = items;
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _item_it = _tmp3_;
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ while (TRUE) {
+#line 751 "TimedQueue.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gpointer item = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ gconstpointer _tmp9_ = NULL;
+ gulong _tmp10_ = 0UL;
+ TimedQueueElement* _tmp11_ = NULL;
+ TimedQueueElement* _tmp12_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = _item_it;
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp5_) {
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 770 "TimedQueue.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = _item_it;
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ item = _tmp7_;
+#line 144 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = elements;
+#line 144 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = item;
+#line 144 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = ready_time;
+#line 144 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp11_ = timed_queue_element_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, self->priv->g_destroy_func, _tmp9_, _tmp10_);
+#line 144 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp12_ = _tmp11_;
+#line 144 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp12_);
+#line 144 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (_tmp12_);
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL));
+#line 794 "TimedQueue.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (_item_it);
+#line 798 "TimedQueue.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp13_ = self->priv->queue;
+#line 146 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp14_ = elements;
+#line 146 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp15_ = sorted_list_add_list (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_LIST, GeeList));
+#line 146 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp15_;
+#line 146 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (elements);
+#line 146 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 812 "TimedQueue.c"
+}
+
+
+gboolean timed_queue_enqueue_many (TimedQueue* self, GeeCollection* items) {
+#line 139 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), FALSE);
+#line 139 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return TIMED_QUEUE_GET_CLASS (self)->enqueue_many (self, items);
+#line 821 "TimedQueue.c"
+}
+
+
+static gboolean timed_queue_real_remove_first (TimedQueue* self, gconstpointer item) {
+ gboolean result = FALSE;
+ GeeIterator* iter = NULL;
+ SortedList* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->queue;
+#line 150 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 150 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ iter = _tmp1_;
+#line 151 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ while (TRUE) {
+#line 838 "TimedQueue.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ TimedQueueElement* e = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeEqualDataFunc _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ gconstpointer _tmp7_ = NULL;
+ TimedQueueElement* _tmp8_ = NULL;
+ gconstpointer _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 151 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = iter;
+#line 151 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 151 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp3_) {
+#line 151 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 858 "TimedQueue.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = iter;
+#line 152 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 152 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ e = (TimedQueueElement*) _tmp5_;
+#line 153 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = self->priv->equal_func;
+#line 153 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6__target = self->priv->equal_func_target;
+#line 153 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = item;
+#line 153 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = e;
+#line 153 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = _tmp8_->item;
+#line 153 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = _tmp6_ (_tmp7_, _tmp9_, _tmp6__target);
+#line 153 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp10_) {
+#line 880 "TimedQueue.c"
+ GeeIterator* _tmp11_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp11_ = iter;
+#line 154 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_iterator_remove (_tmp11_);
+#line 156 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = TRUE;
+#line 156 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (e);
+#line 156 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (iter);
+#line 156 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 894 "TimedQueue.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (e);
+#line 898 "TimedQueue.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = FALSE;
+#line 160 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (iter);
+#line 160 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 906 "TimedQueue.c"
+}
+
+
+gboolean timed_queue_remove_first (TimedQueue* self, gconstpointer item) {
+#line 149 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), FALSE);
+#line 149 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return TIMED_QUEUE_GET_CLASS (self)->remove_first (self, item);
+#line 915 "TimedQueue.c"
+}
+
+
+static gulong timed_queue_calc_ready_time (TimedQueue* self) {
+ gulong result = 0UL;
+ gulong _tmp0_ = 0UL;
+ guint _tmp1_ = 0U;
+#line 169 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), 0UL);
+#line 170 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = now_ms ();
+#line 170 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = self->priv->hold_msec;
+#line 170 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp0_ + ((gulong) _tmp1_);
+#line 170 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 933 "TimedQueue.c"
+}
+
+
+static gboolean timed_queue_on_heartbeat (TimedQueue* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gulong now = 0UL;
+#line 173 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), FALSE);
+#line 174 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->paused_state;
+#line 174 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp0_) {
+#line 175 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = TRUE;
+#line 175 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 951 "TimedQueue.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ now = (gulong) 0;
+#line 955 "TimedQueue.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 179 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = TRUE;
+#line 179 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ while (TRUE) {
+#line 962 "TimedQueue.c"
+ SortedList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ TimedQueueElement* head = NULL;
+ SortedList* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ TimedQueueElement* _tmp7_ = NULL;
+ gulong _tmp8_ = 0UL;
+ TimedQueueElement* _tmp10_ = NULL;
+ gulong _tmp11_ = 0UL;
+ gulong _tmp12_ = 0UL;
+ gboolean _tmp13_ = FALSE;
+ guint _tmp14_ = 0U;
+ TimedQueueElement* h = NULL;
+ SortedList* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ TimedQueueElement* _tmp20_ = NULL;
+ TimedQueueElement* _tmp21_ = NULL;
+ TimedQueueElement* _tmp22_ = NULL;
+ gconstpointer _tmp23_ = NULL;
+ gulong _tmp24_ = 0UL;
+ guint _tmp25_ = 0U;
+#line 179 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp1_) {
+#line 987 "TimedQueue.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = FALSE;
+#line 180 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = self->priv->queue;
+#line 180 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 180 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = _tmp3_;
+#line 180 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp4_ == 0) {
+#line 181 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 1001 "TimedQueue.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = self->priv->queue;
+#line 183 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = sorted_list_get_at (_tmp5_, 0);
+#line 183 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ head = (TimedQueueElement*) _tmp6_;
+#line 184 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = head;
+#line 184 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _vala_assert (_tmp7_ != NULL, "head != null");
+#line 186 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = now;
+#line 186 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp8_ == ((gulong) 0)) {
+#line 1017 "TimedQueue.c"
+ gulong _tmp9_ = 0UL;
+#line 187 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = now_ms ();
+#line 187 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ now = _tmp9_;
+#line 1023 "TimedQueue.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = head;
+#line 189 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp11_ = _tmp10_->ready;
+#line 189 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp12_ = now;
+#line 189 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp11_ > _tmp12_) {
+#line 190 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (head);
+#line 190 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 1037 "TimedQueue.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp14_ = self->priv->dequeue_spacing_msec;
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp14_ != ((guint) 0)) {
+#line 1043 "TimedQueue.c"
+ gulong _tmp15_ = 0UL;
+ gulong _tmp16_ = 0UL;
+ guint _tmp17_ = 0U;
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp15_ = now;
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp16_ = self->priv->last_dequeue;
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp17_ = self->priv->dequeue_spacing_msec;
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp13_ = (_tmp15_ - _tmp16_) < ((gulong) _tmp17_);
+#line 1055 "TimedQueue.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp13_ = FALSE;
+#line 1059 "TimedQueue.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp13_) {
+#line 194 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (head);
+#line 194 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 1067 "TimedQueue.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp18_ = self->priv->queue;
+#line 196 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp19_ = sorted_list_remove_at (_tmp18_, 0);
+#line 196 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ h = (TimedQueueElement*) _tmp19_;
+#line 197 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp20_ = head;
+#line 197 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp21_ = h;
+#line 197 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _vala_assert (_tmp20_ == _tmp21_, "head == h");
+#line 199 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp22_ = head;
+#line 199 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp23_ = _tmp22_->item;
+#line 199 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_notify_dequeued (self, _tmp23_);
+#line 200 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp24_ = now;
+#line 200 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->last_dequeue = _tmp24_;
+#line 204 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp25_ = self->priv->dequeue_spacing_msec;
+#line 204 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp25_ != ((guint) 0)) {
+#line 205 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (h);
+#line 205 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (head);
+#line 205 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 1101 "TimedQueue.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (h);
+#line 179 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _timed_queue_element_unref0 (head);
+#line 1107 "TimedQueue.c"
+ }
+ }
+#line 208 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = TRUE;
+#line 208 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 1114 "TimedQueue.c"
+}
+
+
+gint timed_queue_get_size (TimedQueue* self) {
+#line 164 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (IS_TIMED_QUEUE (self), 0);
+#line 164 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return TIMED_QUEUE_GET_CLASS (self)->get_size (self);
+#line 1123 "TimedQueue.c"
+}
+
+
+static gint timed_queue_real_get_size (TimedQueue* base) {
+ gint result;
+ TimedQueue* self;
+ SortedList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 164 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = base;
+#line 165 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->queue;
+#line 165 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 165 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = _tmp1_;
+#line 165 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp2_;
+#line 165 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 1145 "TimedQueue.c"
+}
+
+
+static void timed_queue_real_paused (TimedQueue* self, gboolean is_paused) {
+}
+
+
+static TimedQueueElement* timed_queue_element_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item, gulong ready) {
+ TimedQueueElement* self = NULL;
+ gconstpointer _tmp0_ = NULL;
+ gpointer _tmp1_ = NULL;
+ gulong _tmp2_ = 0UL;
+#line 26 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = (TimedQueueElement*) g_type_create_instance (object_type);
+#line 26 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_type = g_type;
+#line 26 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_dup_func = g_dup_func;
+#line 26 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_destroy_func = g_destroy_func;
+#line 27 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = item;
+#line 27 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = ((_tmp0_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp0_) : ((gpointer) _tmp0_);
+#line 27 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_destroy_func0 (self->item);
+#line 27 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->item = _tmp1_;
+#line 28 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = ready;
+#line 28 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->ready = _tmp2_;
+#line 26 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return self;
+#line 1180 "TimedQueue.c"
+}
+
+
+static TimedQueueElement* timed_queue_element_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item, gulong ready) {
+#line 26 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return timed_queue_element_construct (TIMED_QUEUE_TYPE_ELEMENT, g_type, g_dup_func, g_destroy_func, item, ready);
+#line 1187 "TimedQueue.c"
+}
+
+
+static gint64 timed_queue_element_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ gulong _tmp1_ = 0UL;
+ void* _tmp2_ = NULL;
+ gulong _tmp3_ = 0UL;
+#line 32 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = a;
+#line 32 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST ((TimedQueueElement*) _tmp0_, TIMED_QUEUE_TYPE_ELEMENT, TimedQueueElement)->ready;
+#line 32 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = b;
+#line 32 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST ((TimedQueueElement*) _tmp2_, TIMED_QUEUE_TYPE_ELEMENT, TimedQueueElement)->ready;
+#line 32 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = ((gint64) _tmp1_) - ((gint64) _tmp3_);
+#line 32 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 1209 "TimedQueue.c"
+}
+
+
+static void timed_queue_value_element_init (GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1216 "TimedQueue.c"
+}
+
+
+static void timed_queue_value_element_free_value (GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (value->data[0].v_pointer) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_element_unref (value->data[0].v_pointer);
+#line 1225 "TimedQueue.c"
+ }
+}
+
+
+static void timed_queue_value_element_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (src_value->data[0].v_pointer) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ dest_value->data[0].v_pointer = timed_queue_element_ref (src_value->data[0].v_pointer);
+#line 1235 "TimedQueue.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1239 "TimedQueue.c"
+ }
+}
+
+
+static gpointer timed_queue_value_element_peek_pointer (const GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return value->data[0].v_pointer;
+#line 1247 "TimedQueue.c"
+}
+
+
+static gchar* timed_queue_value_element_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (collect_values[0].v_pointer) {
+#line 1254 "TimedQueue.c"
+ TimedQueueElement* object;
+ object = collect_values[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1261 "TimedQueue.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1265 "TimedQueue.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = timed_queue_element_ref (object);
+#line 1269 "TimedQueue.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1273 "TimedQueue.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return NULL;
+#line 1277 "TimedQueue.c"
+}
+
+
+static gchar* timed_queue_value_element_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TimedQueueElement** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!object_p) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1288 "TimedQueue.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!value->data[0].v_pointer) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ *object_p = NULL;
+#line 1294 "TimedQueue.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1298 "TimedQueue.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ *object_p = timed_queue_element_ref (value->data[0].v_pointer);
+#line 1302 "TimedQueue.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return NULL;
+#line 1306 "TimedQueue.c"
+}
+
+
+static GParamSpec* timed_queue_param_spec_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ TimedQueueParamSpecElement* spec;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TIMED_QUEUE_TYPE_ELEMENT), NULL);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return G_PARAM_SPEC (spec);
+#line 1320 "TimedQueue.c"
+}
+
+
+static gpointer timed_queue_value_get_element (const GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TIMED_QUEUE_TYPE_ELEMENT), NULL);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return value->data[0].v_pointer;
+#line 1329 "TimedQueue.c"
+}
+
+
+static void timed_queue_value_set_element (GValue* value, gpointer v_object) {
+ TimedQueueElement* old;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TIMED_QUEUE_TYPE_ELEMENT));
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ old = value->data[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (v_object) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TIMED_QUEUE_TYPE_ELEMENT));
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = v_object;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_element_ref (value->data[0].v_pointer);
+#line 1349 "TimedQueue.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1353 "TimedQueue.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (old) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_element_unref (old);
+#line 1359 "TimedQueue.c"
+ }
+}
+
+
+static void timed_queue_value_take_element (GValue* value, gpointer v_object) {
+ TimedQueueElement* old;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TIMED_QUEUE_TYPE_ELEMENT));
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ old = value->data[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (v_object) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TIMED_QUEUE_TYPE_ELEMENT));
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = v_object;
+#line 1378 "TimedQueue.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1382 "TimedQueue.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (old) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_element_unref (old);
+#line 1388 "TimedQueue.c"
+ }
+}
+
+
+static void timed_queue_element_class_init (TimedQueueElementClass * klass) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_element_parent_class = g_type_class_peek_parent (klass);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueElementClass *) klass)->finalize = timed_queue_element_finalize;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_type_class_add_private (klass, sizeof (TimedQueueElementPrivate));
+#line 1400 "TimedQueue.c"
+}
+
+
+static void timed_queue_element_instance_init (TimedQueueElement * self) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv = TIMED_QUEUE_ELEMENT_GET_PRIVATE (self);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->ref_count = 1;
+#line 1409 "TimedQueue.c"
+}
+
+
+static void timed_queue_element_finalize (TimedQueueElement* obj) {
+ TimedQueueElement * self;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TIMED_QUEUE_TYPE_ELEMENT, TimedQueueElement);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_signal_handlers_destroy (self);
+#line 23 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((self->item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->item = (self->priv->g_destroy_func (self->item), NULL));
+#line 1421 "TimedQueue.c"
+}
+
+
+static GType timed_queue_element_get_type (void) {
+ static volatile gsize timed_queue_element_type_id__volatile = 0;
+ if (g_once_init_enter (&timed_queue_element_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { timed_queue_value_element_init, timed_queue_value_element_free_value, timed_queue_value_element_copy_value, timed_queue_value_element_peek_pointer, "p", timed_queue_value_element_collect_value, "p", timed_queue_value_element_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TimedQueueElementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) timed_queue_element_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TimedQueueElement), 0, (GInstanceInitFunc) timed_queue_element_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType timed_queue_element_type_id;
+ timed_queue_element_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TimedQueueElement", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&timed_queue_element_type_id__volatile, timed_queue_element_type_id);
+ }
+ return timed_queue_element_type_id__volatile;
+}
+
+
+static gpointer timed_queue_element_ref (gpointer instance) {
+ TimedQueueElement* self;
+ self = instance;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return instance;
+#line 1446 "TimedQueue.c"
+}
+
+
+static void timed_queue_element_unref (gpointer instance) {
+ TimedQueueElement* self;
+ self = instance;
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_ELEMENT_GET_CLASS (self)->finalize (self);
+#line 22 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1459 "TimedQueue.c"
+ }
+}
+
+
+static void value_timed_queue_init (GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1467 "TimedQueue.c"
+}
+
+
+static void value_timed_queue_free_value (GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_unref (value->data[0].v_pointer);
+#line 1476 "TimedQueue.c"
+ }
+}
+
+
+static void value_timed_queue_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (src_value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ dest_value->data[0].v_pointer = timed_queue_ref (src_value->data[0].v_pointer);
+#line 1486 "TimedQueue.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1490 "TimedQueue.c"
+ }
+}
+
+
+static gpointer value_timed_queue_peek_pointer (const GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return value->data[0].v_pointer;
+#line 1498 "TimedQueue.c"
+}
+
+
+static gchar* value_timed_queue_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (collect_values[0].v_pointer) {
+#line 1505 "TimedQueue.c"
+ TimedQueue* object;
+ object = collect_values[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1512 "TimedQueue.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1516 "TimedQueue.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = timed_queue_ref (object);
+#line 1520 "TimedQueue.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1524 "TimedQueue.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return NULL;
+#line 1528 "TimedQueue.c"
+}
+
+
+static gchar* value_timed_queue_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TimedQueue** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!object_p) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1539 "TimedQueue.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ *object_p = NULL;
+#line 1545 "TimedQueue.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1549 "TimedQueue.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ *object_p = timed_queue_ref (value->data[0].v_pointer);
+#line 1553 "TimedQueue.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return NULL;
+#line 1557 "TimedQueue.c"
+}
+
+
+GParamSpec* param_spec_timed_queue (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTimedQueue* spec;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TIMED_QUEUE), NULL);
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return G_PARAM_SPEC (spec);
+#line 1571 "TimedQueue.c"
+}
+
+
+gpointer value_get_timed_queue (const GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TIMED_QUEUE), NULL);
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return value->data[0].v_pointer;
+#line 1580 "TimedQueue.c"
+}
+
+
+void value_set_timed_queue (GValue* value, gpointer v_object) {
+ TimedQueue* old;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TIMED_QUEUE));
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ old = value->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (v_object) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TIMED_QUEUE));
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = v_object;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_ref (value->data[0].v_pointer);
+#line 1600 "TimedQueue.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1604 "TimedQueue.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (old) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_unref (old);
+#line 1610 "TimedQueue.c"
+ }
+}
+
+
+void value_take_timed_queue (GValue* value, gpointer v_object) {
+ TimedQueue* old;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TIMED_QUEUE));
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ old = value->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (v_object) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TIMED_QUEUE));
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = v_object;
+#line 1629 "TimedQueue.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ value->data[0].v_pointer = NULL;
+#line 1633 "TimedQueue.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (old) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_unref (old);
+#line 1639 "TimedQueue.c"
+ }
+}
+
+
+static void timed_queue_class_init (TimedQueueClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ timed_queue_parent_class = g_type_class_peek_parent (klass);
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->finalize = timed_queue_finalize;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_type_class_add_private (klass, sizeof (TimedQueuePrivate));
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->notify_dequeued = timed_queue_real_notify_dequeued;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->clear = timed_queue_real_clear;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->contains = timed_queue_real_contains;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->enqueue = timed_queue_real_enqueue;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->enqueue_many = timed_queue_real_enqueue_many;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->remove_first = timed_queue_real_remove_first;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->paused = timed_queue_real_paused;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_CLASS (klass)->get_size = timed_queue_real_get_size;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_signal_new ("paused", TYPE_TIMED_QUEUE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (TimedQueueClass, paused), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 1669 "TimedQueue.c"
+}
+
+
+static void timed_queue_instance_init (TimedQueue * self) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv = TIMED_QUEUE_GET_PRIVATE (self);
+#line 40 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->timer_id = (guint) 0;
+#line 42 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->dequeue_spacing_msec = (guint) 0;
+#line 43 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->last_dequeue = (gulong) 0;
+#line 44 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->paused_state = FALSE;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->ref_count = 1;
+#line 1686 "TimedQueue.c"
+}
+
+
+static void timed_queue_finalize (TimedQueue* obj) {
+ TimedQueue * self;
+ guint _tmp0_ = 0U;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TIMED_QUEUE, TimedQueue);
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_signal_handlers_destroy (self);
+#line 70 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->timer_id;
+#line 70 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp0_ != ((guint) 0)) {
+#line 1701 "TimedQueue.c"
+ guint _tmp1_ = 0U;
+#line 71 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = self->priv->timer_id;
+#line 71 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_source_remove (_tmp1_);
+#line 1707 "TimedQueue.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ (self->priv->equal_func_target_destroy_notify == NULL) ? NULL : (self->priv->equal_func_target_destroy_notify (self->priv->equal_func_target), NULL);
+#line 38 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func = NULL;
+#line 38 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target = NULL;
+#line 38 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->equal_func_target_destroy_notify = NULL;
+#line 41 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (self->priv->queue);
+#line 1719 "TimedQueue.c"
+}
+
+
+GType timed_queue_get_type (void) {
+ static volatile gsize timed_queue_type_id__volatile = 0;
+ if (g_once_init_enter (&timed_queue_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_timed_queue_init, value_timed_queue_free_value, value_timed_queue_copy_value, value_timed_queue_peek_pointer, "p", value_timed_queue_collect_value, "p", value_timed_queue_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TimedQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) timed_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TimedQueue), 0, (GInstanceInitFunc) timed_queue_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType timed_queue_type_id;
+ timed_queue_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TimedQueue", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&timed_queue_type_id__volatile, timed_queue_type_id);
+ }
+ return timed_queue_type_id__volatile;
+}
+
+
+gpointer timed_queue_ref (gpointer instance) {
+ TimedQueue* self;
+ self = instance;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return instance;
+#line 1744 "TimedQueue.c"
+}
+
+
+void timed_queue_unref (gpointer instance) {
+ TimedQueue* self;
+ self = instance;
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_GET_CLASS (self)->finalize (self);
+#line 21 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1757 "TimedQueue.c"
+ }
+}
+
+
+HashTimedQueue* hash_timed_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority) {
+ HashTimedQueue* self = NULL;
+ guint _tmp0_ = 0U;
+ DequeuedCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GeeEqualDataFunc _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ GDestroyNotify _tmp2__target_destroy_notify = NULL;
+ gint _tmp3_ = 0;
+ GeeHashDataFunc _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+ GDestroyNotify _tmp4__target_destroy_notify = NULL;
+ GeeEqualDataFunc _tmp5_ = NULL;
+ void* _tmp5__target = NULL;
+ GDestroyNotify _tmp5__target_destroy_notify = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = hold_msec;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = callback;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1__target = callback_target;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = equal_func;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2__target = equal_func_target;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2__target_destroy_notify = equal_func_target_destroy_notify;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func_target_destroy_notify = NULL;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = priority;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = (HashTimedQueue*) timed_queue_construct (object_type, g_type, (GBoxedCopyFunc) g_dup_func, g_destroy_func, _tmp0_, _tmp1_, _tmp1__target, _tmp2_, _tmp2__target, _tmp2__target_destroy_notify, _tmp3_);
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_type = g_type;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_dup_func = g_dup_func;
+#line 220 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->g_destroy_func = g_destroy_func;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = hash_func;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4__target = hash_func_target;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4__target_destroy_notify = hash_func_target_destroy_notify;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ hash_func_target_destroy_notify = NULL;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = equal_func;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5__target = equal_func_target;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5__target_destroy_notify = equal_func_target_destroy_notify;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func_target_destroy_notify = NULL;
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = gee_hash_map_new (g_type, (GBoxedCopyFunc) g_dup_func, g_destroy_func, G_TYPE_INT, NULL, NULL, _tmp4_, _tmp4__target, _tmp4__target_destroy_notify, _tmp5_, _tmp5__target, _tmp5__target_destroy_notify, NULL, NULL, NULL);
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (self->priv->item_count);
+#line 222 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv->item_count = _tmp6_;
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ (hash_func_target_destroy_notify == NULL) ? NULL : (hash_func_target_destroy_notify (hash_func_target), NULL);
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ hash_func = NULL;
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ hash_func_target = NULL;
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ hash_func_target_destroy_notify = NULL;
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ (equal_func_target_destroy_notify == NULL) ? NULL : (equal_func_target_destroy_notify (equal_func_target), NULL);
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func = NULL;
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func_target = NULL;
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ equal_func_target_destroy_notify = NULL;
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return self;
+#line 1842 "TimedQueue.c"
+}
+
+
+HashTimedQueue* hash_timed_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, guint hold_msec, DequeuedCallback callback, void* callback_target, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify, gint priority) {
+#line 217 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return hash_timed_queue_construct (TYPE_HASH_TIMED_QUEUE, g_type, g_dup_func, g_destroy_func, hold_msec, callback, callback_target, hash_func, hash_func_target, hash_func_target_destroy_notify, equal_func, equal_func_target, equal_func_target_destroy_notify, priority);
+#line 1849 "TimedQueue.c"
+}
+
+
+static void hash_timed_queue_real_notify_dequeued (TimedQueue* base, gconstpointer item) {
+ HashTimedQueue * self;
+ gconstpointer _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HASH_TIMED_QUEUE, HashTimedQueue);
+#line 226 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = item;
+#line 226 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ hash_timed_queue_removed (self, _tmp0_);
+#line 228 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = item;
+#line 228 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_CLASS (hash_timed_queue_parent_class)->notify_dequeued (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TIMED_QUEUE, TimedQueue), _tmp1_);
+#line 1867 "TimedQueue.c"
+}
+
+
+static void hash_timed_queue_real_clear (TimedQueue* base) {
+ HashTimedQueue * self;
+ GeeHashMap* _tmp0_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HASH_TIMED_QUEUE, HashTimedQueue);
+#line 232 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->item_count;
+#line 232 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_abstract_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap));
+#line 234 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_CLASS (hash_timed_queue_parent_class)->clear (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TIMED_QUEUE, TimedQueue));
+#line 1882 "TimedQueue.c"
+}
+
+
+static gboolean hash_timed_queue_real_contains (TimedQueue* base, gconstpointer item) {
+ HashTimedQueue * self;
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 237 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HASH_TIMED_QUEUE, HashTimedQueue);
+#line 238 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->item_count;
+#line 238 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = item;
+#line 238 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 238 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = _tmp2_;
+#line 238 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 1904 "TimedQueue.c"
+}
+
+
+static gboolean hash_timed_queue_real_enqueue (TimedQueue* base, gconstpointer item) {
+ HashTimedQueue * self;
+ gboolean result = FALSE;
+ gconstpointer _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gint _tmp2_ = 0;
+ GeeHashMap* _tmp3_ = NULL;
+ gconstpointer _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeHashMap* _tmp9_ = NULL;
+ gconstpointer _tmp10_ = NULL;
+#line 241 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HASH_TIMED_QUEUE, HashTimedQueue);
+#line 242 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = item;
+#line 242 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = TIMED_QUEUE_CLASS (hash_timed_queue_parent_class)->enqueue (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TIMED_QUEUE, TimedQueue), _tmp0_);
+#line 242 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp1_) {
+#line 243 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = FALSE;
+#line 243 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 1931 "TimedQueue.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = self->priv->item_count;
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = item;
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp5_) {
+#line 1941 "TimedQueue.c"
+ GeeHashMap* _tmp6_ = NULL;
+ gconstpointer _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = self->priv->item_count;
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = item;
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = ((gint) ((gintptr) _tmp8_)) + 1;
+#line 1953 "TimedQueue.c"
+ } else {
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = 1;
+#line 1957 "TimedQueue.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = self->priv->item_count;
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = item;
+#line 245 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_, (gpointer) ((gintptr) _tmp2_));
+#line 247 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = TRUE;
+#line 247 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 1969 "TimedQueue.c"
+}
+
+
+static gboolean hash_timed_queue_real_enqueue_many (TimedQueue* base, GeeCollection* items) {
+ HashTimedQueue * self;
+ gboolean result = FALSE;
+ GeeCollection* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 250 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HASH_TIMED_QUEUE, HashTimedQueue);
+#line 250 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (items), FALSE);
+#line 251 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = items;
+#line 251 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = TIMED_QUEUE_CLASS (hash_timed_queue_parent_class)->enqueue_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TIMED_QUEUE, TimedQueue), _tmp0_);
+#line 251 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp1_) {
+#line 252 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = FALSE;
+#line 252 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 1992 "TimedQueue.c"
+ }
+ {
+ GeeIterator* _item_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = items;
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _item_it = _tmp3_;
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ while (TRUE) {
+#line 2006 "TimedQueue.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gpointer item = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ GeeHashMap* _tmp9_ = NULL;
+ gconstpointer _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GeeHashMap* _tmp15_ = NULL;
+ gconstpointer _tmp16_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = _item_it;
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp5_) {
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ break;
+#line 2026 "TimedQueue.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = _item_it;
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ item = _tmp7_;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = self->priv->item_count;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = item;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp11_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_);
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp11_) {
+#line 2042 "TimedQueue.c"
+ GeeHashMap* _tmp12_ = NULL;
+ gconstpointer _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp12_ = self->priv->item_count;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp13_ = item;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp14_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_);
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = ((gint) ((gintptr) _tmp14_)) + 1;
+#line 2054 "TimedQueue.c"
+ } else {
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = 1;
+#line 2058 "TimedQueue.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp15_ = self->priv->item_count;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp16_ = item;
+#line 255 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp16_, (gpointer) ((gintptr) _tmp8_));
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL));
+#line 2068 "TimedQueue.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (_item_it);
+#line 2072 "TimedQueue.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = TRUE;
+#line 257 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 2078 "TimedQueue.c"
+}
+
+
+static gboolean hash_timed_queue_real_remove_first (TimedQueue* base, gconstpointer item) {
+ HashTimedQueue * self;
+ gboolean result = FALSE;
+ gconstpointer _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gconstpointer _tmp2_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_HASH_TIMED_QUEUE, HashTimedQueue);
+#line 261 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = item;
+#line 261 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = TIMED_QUEUE_CLASS (hash_timed_queue_parent_class)->remove_first (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_TIMED_QUEUE, TimedQueue), _tmp0_);
+#line 261 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp1_) {
+#line 262 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = FALSE;
+#line 262 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 2100 "TimedQueue.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = item;
+#line 264 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ hash_timed_queue_removed (self, _tmp2_);
+#line 266 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ result = TRUE;
+#line 266 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return result;
+#line 2110 "TimedQueue.c"
+}
+
+
+static void hash_timed_queue_removed (HashTimedQueue* self, gconstpointer item) {
+ GeeHashMap* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint count = 0;
+ GeeHashMap* _tmp3_ = NULL;
+ gconstpointer _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 269 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_return_if_fail (IS_HASH_TIMED_QUEUE (self));
+#line 272 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp0_ = self->priv->item_count;
+#line 272 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp1_ = item;
+#line 272 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 272 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (!_tmp2_) {
+#line 273 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ return;
+#line 2137 "TimedQueue.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp3_ = self->priv->item_count;
+#line 275 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp4_ = item;
+#line 275 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 275 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ count = (gint) ((gintptr) _tmp5_);
+#line 276 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp6_ = count;
+#line 276 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _vala_assert (_tmp6_ > 0, "count > 0");
+#line 278 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp7_ = count;
+#line 278 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ count = _tmp7_ - 1;
+#line 278 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp8_ = count;
+#line 278 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ if (_tmp8_ == 0) {
+#line 2159 "TimedQueue.c"
+ GeeHashMap* _tmp9_ = NULL;
+ gconstpointer _tmp10_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp9_ = self->priv->item_count;
+#line 279 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp10_ = item;
+#line 279 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_, NULL);
+#line 2168 "TimedQueue.c"
+ } else {
+ GeeHashMap* _tmp11_ = NULL;
+ gconstpointer _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+#line 281 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp11_ = self->priv->item_count;
+#line 281 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp12_ = item;
+#line 281 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _tmp13_ = count;
+#line 281 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_, (gpointer) ((gintptr) _tmp13_));
+#line 2181 "TimedQueue.c"
+ }
+}
+
+
+static void hash_timed_queue_class_init (HashTimedQueueClass * klass) {
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ hash_timed_queue_parent_class = g_type_class_peek_parent (klass);
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->finalize = hash_timed_queue_finalize;
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ g_type_class_add_private (klass, sizeof (HashTimedQueuePrivate));
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->notify_dequeued = hash_timed_queue_real_notify_dequeued;
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->clear = hash_timed_queue_real_clear;
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->contains = hash_timed_queue_real_contains;
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->enqueue = hash_timed_queue_real_enqueue;
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->enqueue_many = hash_timed_queue_real_enqueue_many;
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ ((TimedQueueClass *) klass)->remove_first = hash_timed_queue_real_remove_first;
+#line 2205 "TimedQueue.c"
+}
+
+
+static void hash_timed_queue_instance_init (HashTimedQueue * self) {
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self->priv = HASH_TIMED_QUEUE_GET_PRIVATE (self);
+#line 2212 "TimedQueue.c"
+}
+
+
+static void hash_timed_queue_finalize (TimedQueue* obj) {
+ HashTimedQueue * self;
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HASH_TIMED_QUEUE, HashTimedQueue);
+#line 215 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ _g_object_unref0 (self->priv->item_count);
+#line 214 "/home/jens/Source/shotwell/src/TimedQueue.vala"
+ TIMED_QUEUE_CLASS (hash_timed_queue_parent_class)->finalize (obj);
+#line 2224 "TimedQueue.c"
+}
+
+
+GType hash_timed_queue_get_type (void) {
+ static volatile gsize hash_timed_queue_type_id__volatile = 0;
+ if (g_once_init_enter (&hash_timed_queue_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (HashTimedQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_timed_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashTimedQueue), 0, (GInstanceInitFunc) hash_timed_queue_instance_init, NULL };
+ GType hash_timed_queue_type_id;
+ hash_timed_queue_type_id = g_type_register_static (TYPE_TIMED_QUEUE, "HashTimedQueue", &g_define_type_info, 0);
+ g_once_init_leave (&hash_timed_queue_type_id__volatile, hash_timed_queue_type_id);
+ }
+ return hash_timed_queue_type_id__volatile;
+}
+
+
+
diff --git a/src/Tombstone.c b/src/Tombstone.c
new file mode 100644
index 0000000..7edac33
--- /dev/null
+++ b/src/Tombstone.c
@@ -0,0 +1,3579 @@
+/* Tombstone.c generated by valac 0.32.1, the Vala compiler
+ * generated from Tombstone.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <time.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+
+#define TYPE_TOMBSTONE_SOURCE_COLLECTION (tombstone_source_collection_get_type ())
+#define TOMBSTONE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollection))
+#define TOMBSTONE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollectionClass))
+#define IS_TOMBSTONE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION))
+#define IS_TOMBSTONE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE_SOURCE_COLLECTION))
+#define TOMBSTONE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollectionClass))
+
+typedef struct _TombstoneSourceCollection TombstoneSourceCollection;
+typedef struct _TombstoneSourceCollectionClass TombstoneSourceCollectionClass;
+typedef struct _TombstoneSourceCollectionPrivate TombstoneSourceCollectionPrivate;
+
+#define TYPE_TOMBSTONE (tombstone_get_type ())
+#define TOMBSTONE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE, Tombstone))
+#define TOMBSTONE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE, TombstoneClass))
+#define IS_TOMBSTONE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE))
+#define IS_TOMBSTONE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE))
+#define TOMBSTONE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE, TombstoneClass))
+
+typedef struct _Tombstone Tombstone;
+typedef struct _TombstoneClass TombstoneClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_TOMBSTONE_ID (tombstone_id_get_type ())
+typedef struct _TombstoneID TombstoneID;
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
+#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
+#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
+#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
+#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+
+typedef struct _DirectoryMonitor DirectoryMonitor;
+typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+typedef struct _TombstoneSourceCollectionAsyncScanData TombstoneSourceCollectionAsyncScanData;
+
+#define TYPE_TOMBSTONED_FILE (tombstoned_file_get_type ())
+#define TOMBSTONED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONED_FILE, TombstonedFile))
+#define TOMBSTONED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONED_FILE, TombstonedFileClass))
+#define IS_TOMBSTONED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONED_FILE))
+#define IS_TOMBSTONED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONED_FILE))
+#define TOMBSTONED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONED_FILE, TombstonedFileClass))
+
+typedef struct _TombstonedFile TombstonedFile;
+typedef struct _TombstonedFileClass TombstonedFileClass;
+typedef struct _TombstonedFilePrivate TombstonedFilePrivate;
+typedef struct _ParamSpecTombstonedFile ParamSpecTombstonedFile;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+typedef struct _TombstonePrivate TombstonePrivate;
+
+#define TYPE_TOMBSTONE_ROW (tombstone_row_get_type ())
+#define TOMBSTONE_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE_ROW, TombstoneRow))
+#define TOMBSTONE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE_ROW, TombstoneRowClass))
+#define IS_TOMBSTONE_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE_ROW))
+#define IS_TOMBSTONE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE_ROW))
+#define TOMBSTONE_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE_ROW, TombstoneRowClass))
+
+typedef struct _TombstoneRow TombstoneRow;
+typedef struct _TombstoneRowClass TombstoneRowClass;
+
+#define TOMBSTONE_TYPE_REASON (tombstone_reason_get_type ())
+#define _tombstone_row_unref0(var) ((var == NULL) ? NULL : (var = (tombstone_row_unref (var), NULL)))
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_TOMBSTONE_TABLE (tombstone_table_get_type ())
+#define TOMBSTONE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE_TABLE, TombstoneTable))
+#define TOMBSTONE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE_TABLE, TombstoneTableClass))
+#define IS_TOMBSTONE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE_TABLE))
+#define IS_TOMBSTONE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE_TABLE))
+#define TOMBSTONE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE_TABLE, TombstoneTableClass))
+
+typedef struct _TombstoneTable TombstoneTable;
+typedef struct _TombstoneTableClass TombstoneTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+
+#define TYPE_BACKING_FILE_STATE (backing_file_state_get_type ())
+#define BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_FILE_STATE, BackingFileState))
+#define BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+#define IS_BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_FILE_STATE))
+#define IS_BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_FILE_STATE))
+#define BACKING_FILE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+
+typedef struct _BackingFileState BackingFileState;
+typedef struct _BackingFileStateClass BackingFileStateClass;
+typedef struct _BackingFileStatePrivate BackingFileStatePrivate;
+#define _tombstoned_file_unref0(var) ((var == NULL) ? NULL : (var = (tombstoned_file_unref (var), NULL)))
+#define _backing_file_state_unref0(var) ((var == NULL) ? NULL : (var = (backing_file_state_unref (var), NULL)))
+typedef struct _TombstoneRowPrivate TombstoneRowPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _TombstoneSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ TombstoneSourceCollectionPrivate * priv;
+};
+
+struct _TombstoneSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+};
+
+struct _TombstoneSourceCollectionPrivate {
+ GeeHashMap* file_map;
+};
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+struct _TombstoneID {
+ gint64 id;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _TombstoneSourceCollectionAsyncScanData {
+ int _state_;
+ GObject* _source_object_;
+ GAsyncResult* _res_;
+ GSimpleAsyncResult* _async_result;
+ TombstoneSourceCollection* self;
+ DirectoryMonitor* monitor;
+ GCancellable* cancellable;
+ Marker* marker;
+ Marker* _tmp0_;
+ GeeIterator* _object_it;
+ GeeCollection* _tmp1_;
+ GeeCollection* _tmp2_;
+ GeeIterator* _tmp3_;
+ GeeIterator* _tmp4_;
+ GeeIterator* _tmp5_;
+ gboolean _tmp6_;
+ DataObject* object;
+ GeeIterator* _tmp7_;
+ gpointer _tmp8_;
+ Tombstone* tombstone;
+ DataObject* _tmp9_;
+ Tombstone* _tmp10_;
+ GFile* file;
+ Tombstone* _tmp11_;
+ GFile* _tmp12_;
+ GFileInfo* info;
+ DirectoryMonitor* _tmp13_;
+ DirectoryMonitor* _tmp14_;
+ GFile* _tmp15_;
+ GFileInfo* _tmp16_;
+ GFileInfo* _tmp17_;
+ GFileInfo* _tmp18_;
+ GFile* _tmp19_;
+ GCancellable* _tmp20_;
+ GFileInfo* _tmp21_;
+ GFileInfo* _tmp22_;
+ GError* err;
+ GError* _tmp23_;
+ GError* _tmp24_;
+ GFile* _tmp25_;
+ gchar* _tmp26_;
+ gchar* _tmp27_;
+ GError* _tmp28_;
+ const gchar* _tmp29_;
+ GFileInfo* _tmp30_;
+ Marker* _tmp31_;
+ Tombstone* _tmp32_;
+ Marker* _tmp33_;
+ gint _tmp34_;
+ Marker* _tmp35_;
+ gint _tmp36_;
+ Marker* _tmp37_;
+ GError* err2;
+ GError* _tmp38_;
+ GError * _inner_error_;
+};
+
+struct _TombstonedFile {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TombstonedFilePrivate * priv;
+ GFile* file;
+ gint64 filesize;
+ gchar* md5;
+};
+
+struct _TombstonedFileClass {
+ GTypeClass parent_class;
+ void (*finalize) (TombstonedFile *self);
+};
+
+struct _ParamSpecTombstonedFile {
+ GParamSpec parent_instance;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+struct _Tombstone {
+ DataSource parent_instance;
+ TombstonePrivate * priv;
+};
+
+struct _TombstoneClass {
+ DataSourceClass parent_class;
+};
+
+struct _TombstonePrivate {
+ TombstoneRow* row;
+ GFile* file;
+};
+
+typedef enum {
+ TOMBSTONE_REASON_REMOVED_BY_USER = 0,
+ TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE = 1
+} TombstoneReason;
+
+struct _BackingFileState {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingFileStatePrivate * priv;
+ gchar* filepath;
+ gint64 filesize;
+ time_t modification_time;
+ gchar* md5;
+};
+
+struct _BackingFileStateClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingFileState *self);
+};
+
+struct _TombstoneRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TombstoneRowPrivate * priv;
+ TombstoneID id;
+ gchar* filepath;
+ gint64 filesize;
+ gchar* md5;
+ time_t time_created;
+ TombstoneReason reason;
+};
+
+struct _TombstoneRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (TombstoneRow *self);
+};
+
+
+static gpointer tombstone_source_collection_parent_class = NULL;
+static gpointer tombstoned_file_parent_class = NULL;
+static gpointer tombstone_parent_class = NULL;
+extern TombstoneSourceCollection* tombstone_global;
+TombstoneSourceCollection* tombstone_global = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType tombstone_source_collection_get_type (void) G_GNUC_CONST;
+GType tombstone_get_type (void) G_GNUC_CONST;
+#define TOMBSTONE_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollectionPrivate))
+enum {
+ TOMBSTONE_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+TombstoneSourceCollection* tombstone_source_collection_new (void);
+TombstoneSourceCollection* tombstone_source_collection_construct (GType object_type);
+static gint64 tombstone_source_collection_get_tombstone_id (DataSource* source);
+static gint64 _tombstone_source_collection_get_tombstone_id_get_source_database_key (DataSource* source, gpointer self);
+DatabaseSourceCollection* database_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+static gboolean tombstone_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source);
+GType tombstone_id_get_type (void) G_GNUC_CONST;
+TombstoneID* tombstone_id_dup (const TombstoneID* self);
+void tombstone_id_free (TombstoneID* self);
+void tombstone_get_tombstone_id (Tombstone* self, TombstoneID* result);
+static void tombstone_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed);
+GFile* tombstone_get_file (Tombstone* self);
+void data_collection_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+static void tombstone_source_collection_real_notify_items_altered (DataCollection* base, GeeMap* items);
+gboolean alteration_has_subject (Alteration* self, const gchar* subject);
+GeeCollection* alteration_get_details (Alteration* self, const gchar* subject);
+Tombstone* tombstone_source_collection_locate (TombstoneSourceCollection* self, GFile* file);
+gboolean tombstone_source_collection_matches (TombstoneSourceCollection* self, GFile* file);
+void tombstone_source_collection_resurrect (TombstoneSourceCollection* self, Tombstone* tombstone);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gint source_collection_destroy_marked (SourceCollection* self, Marker* marker, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+void tombstone_source_collection_resurrect_many (TombstoneSourceCollection* self, GeeCollection* tombstones);
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects);
+void data_collection_freeze_notifications (DataCollection* self);
+void database_table_begin_transaction (void);
+GQuark database_error_quark (void);
+void database_table_commit_transaction (GError** error);
+void app_window_database_error (GError* err);
+void data_collection_thaw_notifications (DataCollection* self);
+GType directory_monitor_get_type (void) G_GNUC_CONST;
+void tombstone_source_collection_launch_scan (TombstoneSourceCollection* self, DirectoryMonitor* monitor, GCancellable* cancellable);
+static void tombstone_source_collection_async_scan (TombstoneSourceCollection* self, DirectoryMonitor* monitor, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
+static void tombstone_source_collection_async_scan_finish (TombstoneSourceCollection* self, GAsyncResult* _res_);
+static void tombstone_source_collection_async_scan_data_free (gpointer _data);
+static gboolean tombstone_source_collection_async_scan_co (TombstoneSourceCollectionAsyncScanData* _data_);
+Marker* data_collection_start_marking (DataCollection* self);
+GeeCollection* data_collection_get_all (DataCollection* self);
+GFileInfo* directory_monitor_get_file_info (DirectoryMonitor* self, GFile* file);
+static void tombstone_source_collection_async_scan_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
+void marker_mark (Marker* self, DataObject* object);
+static gboolean _tombstone_source_collection_async_scan_co_gsource_func (gpointer self);
+gint marker_get_count (Marker* self);
+static void tombstone_source_collection_finalize (DataCollection* obj);
+gpointer tombstoned_file_ref (gpointer instance);
+void tombstoned_file_unref (gpointer instance);
+GParamSpec* param_spec_tombstoned_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_tombstoned_file (GValue* value, gpointer v_object);
+void value_take_tombstoned_file (GValue* value, gpointer v_object);
+gpointer value_get_tombstoned_file (const GValue* value);
+GType tombstoned_file_get_type (void) G_GNUC_CONST;
+enum {
+ TOMBSTONED_FILE_DUMMY_PROPERTY
+};
+TombstonedFile* tombstoned_file_new (GFile* file, gint64 filesize, const gchar* md5);
+TombstonedFile* tombstoned_file_construct (GType object_type, GFile* file, gint64 filesize, const gchar* md5);
+static void tombstoned_file_finalize (TombstonedFile* obj);
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+gpointer tombstone_row_ref (gpointer instance);
+void tombstone_row_unref (gpointer instance);
+GParamSpec* param_spec_tombstone_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_tombstone_row (GValue* value, gpointer v_object);
+void value_take_tombstone_row (GValue* value, gpointer v_object);
+gpointer value_get_tombstone_row (const GValue* value);
+GType tombstone_row_get_type (void) G_GNUC_CONST;
+#define TOMBSTONE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TOMBSTONE, TombstonePrivate))
+enum {
+ TOMBSTONE_DUMMY_PROPERTY
+};
+GType tombstone_reason_get_type (void) G_GNUC_CONST;
+gint tombstone_reason_serialize (TombstoneReason self);
+TombstoneReason tombstone_reason_unserialize (gint value);
+static Tombstone* tombstone_new (TombstoneRow* row);
+static Tombstone* tombstone_construct (GType object_type, TombstoneRow* row);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+DataSource* data_source_construct (GType object_type, gint64 object_id);
+void tombstone_init (void);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType tombstone_table_get_type (void) G_GNUC_CONST;
+TombstoneTable* tombstone_table_get_instance (void);
+TombstoneRow** tombstone_table_fetch_all (TombstoneTable* self, int* result_length1, GError** error);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+void tombstone_terminate (void);
+void tombstone_entomb_many_sources (GeeCollection* sources, TombstoneReason reason, GError** error);
+gpointer backing_file_state_ref (gpointer instance);
+void backing_file_state_unref (gpointer instance);
+GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_file_state (GValue* value, gpointer v_object);
+void value_take_backing_file_state (GValue* value, gpointer v_object);
+gpointer value_get_backing_file_state (const GValue* value);
+GType backing_file_state_get_type (void) G_GNUC_CONST;
+BackingFileState** media_source_get_backing_files_state (MediaSource* self, int* result_length1);
+GFile* backing_file_state_get_file (BackingFileState* self);
+void tombstone_entomb_many_files (GeeCollection* files, TombstoneReason reason, GError** error);
+TombstoneRow* tombstone_table_add (TombstoneTable* self, const gchar* filepath, gint64 filesize, const gchar* md5, TombstoneReason reason, GError** error);
+static gchar* tombstone_real_get_typename (DataSource* base);
+static gint64 tombstone_real_get_instance_id (DataSource* base);
+static gchar* tombstone_real_get_name (DataObject* base);
+static gchar* tombstone_real_to_string (DataObject* base);
+gchar* data_object_get_name (DataObject* self);
+gchar* tombstone_get_md5 (Tombstone* self);
+gboolean is_string_empty (const gchar* s);
+TombstoneReason tombstone_get_reason (Tombstone* self);
+void tombstone_move (Tombstone* self, GFile* file);
+void tombstone_table_update_file (TombstoneTable* self, TombstoneID* tombstone_id, const gchar* filepath, GError** error);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+gboolean tombstone_matches (Tombstone* self, GFile* file, gint64 filesize, const gchar* md5);
+static void tombstone_real_destroy (DataSource* base);
+void tombstone_table_remove (TombstoneTable* self, TombstoneID* tombstone_id, GError** error);
+void data_source_destroy (DataSource* self);
+static void tombstone_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 8 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 719 "Tombstone.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 8 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 728 "Tombstone.c"
+}
+
+
+static gint64 _tombstone_source_collection_get_tombstone_id_get_source_database_key (DataSource* source, gpointer self) {
+ gint64 result;
+ result = tombstone_source_collection_get_tombstone_id (source);
+#line 12 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 737 "Tombstone.c"
+}
+
+
+TombstoneSourceCollection* tombstone_source_collection_construct (GType object_type) {
+ TombstoneSourceCollection* self = NULL;
+#line 12 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = (TombstoneSourceCollection*) database_source_collection_construct (object_type, "Tombstones", _tombstone_source_collection_get_tombstone_id_get_source_database_key, NULL);
+#line 11 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return self;
+#line 747 "Tombstone.c"
+}
+
+
+TombstoneSourceCollection* tombstone_source_collection_new (void) {
+#line 11 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return tombstone_source_collection_construct (TYPE_TOMBSTONE_SOURCE_COLLECTION);
+#line 754 "Tombstone.c"
+}
+
+
+static gboolean tombstone_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) {
+ TombstoneSourceCollection * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollection);
+#line 15 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 16 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = source;
+#line 16 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_TOMBSTONE);
+#line 16 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 772 "Tombstone.c"
+}
+
+
+static gint64 tombstone_source_collection_get_tombstone_id (DataSource* source) {
+ gint64 result = 0LL;
+ DataSource* _tmp0_ = NULL;
+ TombstoneID _tmp1_ = {0};
+ gint64 _tmp2_ = 0LL;
+#line 19 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), 0LL);
+#line 20 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = source;
+#line 20 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_get_tombstone_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_TOMBSTONE, Tombstone), &_tmp1_);
+#line 20 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = _tmp1_.id;
+#line 20 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp2_;
+#line 20 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 793 "Tombstone.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 27 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 800 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed) {
+ TombstoneSourceCollection * self;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp14_ = NULL;
+ GeeIterable* _tmp36_ = NULL;
+ GeeIterable* _tmp37_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollection);
+#line 23 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 23 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 25 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = added;
+#line 25 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp0_ != NULL) {
+#line 820 "Tombstone.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = added;
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _object_it = _tmp2_;
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 833 "Tombstone.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Tombstone* tombstone = NULL;
+ DataObject* _tmp7_ = NULL;
+ Tombstone* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ Tombstone* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ Tombstone* _tmp13_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _object_it;
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp4_) {
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 855 "Tombstone.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = _object_it;
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ object = (DataObject*) _tmp6_;
+#line 27 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7_ = object;
+#line 27 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_TOMBSTONE, Tombstone));
+#line 27 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone = _tmp8_;
+#line 29 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9_ = self->priv->file_map;
+#line 29 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = tombstone;
+#line 29 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_ = tombstone_get_file (_tmp10_);
+#line 29 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp12_ = _tmp11_;
+#line 29 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp13_ = tombstone;
+#line 29 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp12_, _tmp13_);
+#line 29 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp12_);
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstone);
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (object);
+#line 887 "Tombstone.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_object_it);
+#line 891 "Tombstone.c"
+ }
+ }
+#line 33 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp14_ = removed;
+#line 33 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp14_ != NULL) {
+#line 898 "Tombstone.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp15_ = removed;
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp16_ = gee_iterable_iterator (_tmp15_);
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _object_it = _tmp16_;
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 911 "Tombstone.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ Tombstone* tombstone = NULL;
+ DataObject* _tmp21_ = NULL;
+ Tombstone* _tmp22_ = NULL;
+ GeeHashMap* _tmp23_ = NULL;
+ Tombstone* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp17_ = _object_it;
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp18_) {
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 934 "Tombstone.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp19_ = _object_it;
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ object = (DataObject*) _tmp20_;
+#line 35 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp21_ = object;
+#line 35 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp22_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_TOMBSTONE, Tombstone));
+#line 35 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone = _tmp22_;
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp23_ = self->priv->file_map;
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp24_ = tombstone;
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp25_ = tombstone_get_file (_tmp24_);
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp26_ = _tmp25_;
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp27_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp26_);
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp28_ = _tmp27_;
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp26_);
+#line 38 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp28_) {
+#line 964 "Tombstone.c"
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp29_ = NULL;
+ Tombstone* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+ GFile* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ gboolean _tmp34_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp29_ = self->priv->file_map;
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp30_ = tombstone;
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp31_ = tombstone_get_file (_tmp30_);
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp32_ = _tmp31_;
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp33_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp32_, NULL);
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp34_ = _tmp33_;
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp32_);
+#line 40 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ is_removed = _tmp34_;
+#line 41 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp35_ = is_removed;
+#line 41 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _vala_assert (_tmp35_, "is_removed");
+#line 993 "Tombstone.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstone);
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (object);
+#line 999 "Tombstone.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_object_it);
+#line 1003 "Tombstone.c"
+ }
+ }
+#line 49 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp36_ = added;
+#line 49 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp37_ = removed;
+#line 49 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ DATA_COLLECTION_CLASS (tombstone_source_collection_parent_class)->notify_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp36_, _tmp37_);
+#line 1012 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_real_notify_items_altered (DataCollection* base, GeeMap* items) {
+ TombstoneSourceCollection * self;
+#line 52 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollection);
+#line 52 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 1022 "Tombstone.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = items;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = _tmp1_;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _tmp2_;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = _tmp4_;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp3_);
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _object_it = _tmp5_;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 1049 "Tombstone.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Alteration* alteration = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ Alteration* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ Tombstone* tombstone = NULL;
+ DataObject* _tmp15_ = NULL;
+ Tombstone* _tmp16_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = _object_it;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp7_) {
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 1072 "Tombstone.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp8_ = _object_it;
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ object = (DataObject*) _tmp9_;
+#line 54 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = items;
+#line 54 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_ = object;
+#line 54 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 54 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ alteration = (Alteration*) _tmp12_;
+#line 55 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp13_ = alteration;
+#line 55 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp14_ = alteration_has_subject (_tmp13_, "file");
+#line 55 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp14_) {
+#line 56 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _alteration_unref0 (alteration);
+#line 56 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (object);
+#line 56 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ continue;
+#line 1100 "Tombstone.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp15_ = object;
+#line 58 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp16_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_TOMBSTONE, Tombstone));
+#line 58 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone = _tmp16_;
+#line 1108 "Tombstone.c"
+ {
+ GeeIterator* _detail_it = NULL;
+ Alteration* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp17_ = alteration;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp18_ = alteration_get_details (_tmp17_, "file");
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp19_ = _tmp18_;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp21_ = _tmp20_;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp19_);
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _detail_it = _tmp21_;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 1132 "Tombstone.c"
+ GeeIterator* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ gchar* detail = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ GFile* old_file = NULL;
+ const gchar* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ GeeHashMap* _tmp32_ = NULL;
+ Tombstone* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+ Tombstone* _tmp36_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp22_ = _detail_it;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp23_ = gee_iterator_next (_tmp22_);
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp23_) {
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 1159 "Tombstone.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp24_ = _detail_it;
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp25_ = gee_iterator_get (_tmp24_);
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ detail = (gchar*) _tmp25_;
+#line 61 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp26_ = detail;
+#line 61 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp27_ = g_file_new_for_path (_tmp26_);
+#line 61 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ old_file = _tmp27_;
+#line 63 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp28_ = self->priv->file_map;
+#line 63 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp29_ = old_file;
+#line 63 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp30_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp29_, NULL);
+#line 63 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ removed = _tmp30_;
+#line 64 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp31_ = removed;
+#line 64 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _vala_assert (_tmp31_, "removed");
+#line 66 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp32_ = self->priv->file_map;
+#line 66 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp33_ = tombstone;
+#line 66 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp34_ = tombstone_get_file (_tmp33_);
+#line 66 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp35_ = _tmp34_;
+#line 66 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp36_ = tombstone;
+#line 66 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp35_, _tmp36_);
+#line 66 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp35_);
+#line 68 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (old_file);
+#line 68 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (detail);
+#line 68 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 1205 "Tombstone.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_detail_it);
+#line 1209 "Tombstone.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstone);
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _alteration_unref0 (alteration);
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (object);
+#line 1217 "Tombstone.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_object_it);
+#line 1221 "Tombstone.c"
+ }
+}
+
+
+Tombstone* tombstone_source_collection_locate (TombstoneSourceCollection* self, GFile* file) {
+ Tombstone* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_TOMBSTONE_SOURCE_COLLECTION (self), NULL);
+#line 73 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 74 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = self->priv->file_map;
+#line 74 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = file;
+#line 74 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 74 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = (Tombstone*) _tmp2_;
+#line 74 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 1245 "Tombstone.c"
+}
+
+
+gboolean tombstone_source_collection_matches (TombstoneSourceCollection* self, GFile* file) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 77 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_TOMBSTONE_SOURCE_COLLECTION (self), FALSE);
+#line 77 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 78 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = self->priv->file_map;
+#line 78 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = file;
+#line 78 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 78 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp2_;
+#line 78 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 1268 "Tombstone.c"
+}
+
+
+void tombstone_source_collection_resurrect (TombstoneSourceCollection* self, Tombstone* tombstone) {
+ Tombstone* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ Marker* _tmp2_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (IS_TOMBSTONE_SOURCE_COLLECTION (self));
+#line 81 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (IS_TOMBSTONE (tombstone));
+#line 82 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = tombstone;
+#line 82 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 82 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = _tmp1_;
+#line 82 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp2_, FALSE, NULL, NULL, NULL);
+#line 82 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1290 "Tombstone.c"
+}
+
+
+void tombstone_source_collection_resurrect_many (TombstoneSourceCollection* self, GeeCollection* tombstones) {
+ Marker* marker = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (IS_TOMBSTONE_SOURCE_COLLECTION (self));
+#line 85 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (tombstones));
+#line 86 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = tombstones;
+#line 86 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = data_collection_mark_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp0_);
+#line 86 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ marker = _tmp1_;
+#line 88 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 89 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ database_table_begin_transaction ();
+#line 91 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), marker, FALSE, NULL, NULL, NULL);
+#line 1315 "Tombstone.c"
+ {
+#line 94 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ database_table_commit_transaction (&_inner_error_);
+#line 94 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 94 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1323 "Tombstone.c"
+ goto __catch535_database_error;
+ }
+#line 94 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (marker);
+#line 94 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 94 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 94 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 1334 "Tombstone.c"
+ }
+ }
+ goto __finally535;
+ __catch535_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp2_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ err = _inner_error_;
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _inner_error_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = err;
+#line 96 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ app_window_database_error (_tmp2_);
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_error_free0 (err);
+#line 1352 "Tombstone.c"
+ }
+ __finally535:
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (marker);
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 93 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 1365 "Tombstone.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 85 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (marker);
+#line 1371 "Tombstone.c"
+}
+
+
+void tombstone_source_collection_launch_scan (TombstoneSourceCollection* self, DirectoryMonitor* monitor, GCancellable* cancellable) {
+ DirectoryMonitor* _tmp0_ = NULL;
+ GCancellable* _tmp1_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (IS_TOMBSTONE_SOURCE_COLLECTION (self));
+#line 108 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail ((monitor == NULL) || IS_DIRECTORY_MONITOR (monitor));
+#line 108 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 109 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = monitor;
+#line 109 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = cancellable;
+#line 109 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_source_collection_async_scan (self, _tmp0_, _tmp1_, NULL, NULL);
+#line 1390 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_async_scan_data_free (gpointer _data) {
+ TombstoneSourceCollectionAsyncScanData* _data_;
+ _data_ = _data;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->monitor);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->cancellable);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_collection_unref0 (_data_->self);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_slice_free (TombstoneSourceCollectionAsyncScanData, _data_);
+#line 1405 "Tombstone.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 1412 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_async_scan (TombstoneSourceCollection* self, DirectoryMonitor* monitor, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_) {
+ TombstoneSourceCollectionAsyncScanData* _data_;
+ TombstoneSourceCollection* _tmp0_ = NULL;
+ DirectoryMonitor* _tmp1_ = NULL;
+ DirectoryMonitor* _tmp2_ = NULL;
+ GCancellable* _tmp3_ = NULL;
+ GCancellable* _tmp4_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_ = g_slice_new0 (TombstoneSourceCollectionAsyncScanData);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_async_result = g_simple_async_result_new (NULL, _callback_, _user_data_, tombstone_source_collection_async_scan);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, tombstone_source_collection_async_scan_data_free);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = _data_collection_ref0 (self);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->self = _tmp0_;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = monitor;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->monitor);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->monitor = _tmp2_;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = cancellable;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->cancellable);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->cancellable = _tmp4_;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_source_collection_async_scan_co (_data_);
+#line 1451 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_async_scan_finish (TombstoneSourceCollection* self, GAsyncResult* _res_) {
+ TombstoneSourceCollectionAsyncScanData* _data_;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
+#line 1459 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_async_scan_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
+ TombstoneSourceCollectionAsyncScanData* _data_;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_ = _user_data_;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_source_object_ = source_object;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_res_ = _res_;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_source_collection_async_scan_co (_data_);
+#line 1473 "Tombstone.c"
+}
+
+
+static gboolean _tombstone_source_collection_async_scan_co_gsource_func (gpointer self) {
+ gboolean result;
+ result = tombstone_source_collection_async_scan_co (self);
+#line 145 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 1482 "Tombstone.c"
+}
+
+
+static gboolean tombstone_source_collection_async_scan_co (TombstoneSourceCollectionAsyncScanData* _data_) {
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ switch (_data_->_state_) {
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ case 0:
+#line 1491 "Tombstone.c"
+ goto _state_0;
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ case 1:
+#line 1495 "Tombstone.c"
+ goto _state_1;
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ case 2:
+#line 1499 "Tombstone.c"
+ goto _state_2;
+ default:
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_assert_not_reached ();
+#line 1504 "Tombstone.c"
+ }
+ _state_0:
+#line 114 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp0_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp0_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_data_->self, TYPE_DATA_COLLECTION, DataCollection));
+#line 114 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->marker = _data_->_tmp0_;
+#line 1513 "Tombstone.c"
+ {
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp1_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp1_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_data_->self, TYPE_DATA_COLLECTION, DataCollection));
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp2_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp2_ = _data_->_tmp1_;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp3_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp4_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp4_ = _data_->_tmp3_;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->_tmp2_);
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_object_it = _data_->_tmp4_;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp5_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp5_ = _data_->_object_it;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp6_ = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp6_ = gee_iterator_next (_data_->_tmp5_);
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_data_->_tmp6_) {
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 1549 "Tombstone.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp7_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp7_ = _data_->_object_it;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp8_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp8_ = gee_iterator_get (_data_->_tmp7_);
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->object = (DataObject*) _data_->_tmp8_;
+#line 116 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp9_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp9_ = _data_->object;
+#line 116 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp10_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp9_, TYPE_TOMBSTONE, Tombstone));
+#line 116 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->tombstone = _data_->_tmp10_;
+#line 117 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp11_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp11_ = _data_->tombstone;
+#line 117 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp12_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp12_ = tombstone_get_file (_data_->_tmp11_);
+#line 117 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->file = _data_->_tmp12_;
+#line 119 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->info = NULL;
+#line 120 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp13_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp13_ = _data_->monitor;
+#line 120 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_data_->_tmp13_ != NULL) {
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp14_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp14_ = _data_->monitor;
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp15_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp15_ = _data_->file;
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp16_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp16_ = directory_monitor_get_file_info (_data_->_tmp14_, _data_->_tmp15_);
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->info);
+#line 121 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->info = _data_->_tmp16_;
+#line 1605 "Tombstone.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp17_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp17_ = _data_->info;
+#line 125 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_data_->_tmp17_ == NULL) {
+#line 1613 "Tombstone.c"
+ {
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp19_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp19_ = _data_->file;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp20_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp20_ = _data_->cancellable;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_state_ = 1;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_file_query_info_async (_data_->_tmp19_, G_FILE_ATTRIBUTE_STANDARD_NAME, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, G_PRIORITY_LOW, _data_->_tmp20_, tombstone_source_collection_async_scan_ready, _data_);
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return FALSE;
+#line 1629 "Tombstone.c"
+ _state_1:
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp21_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp21_ = g_file_query_info_finish (_data_->_tmp19_, _data_->_res_, &_data_->_inner_error_);
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp18_ = _data_->_tmp21_;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 1639 "Tombstone.c"
+ goto __catch536_g_error;
+ }
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp22_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp22_ = _data_->_tmp18_;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp18_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->info);
+#line 127 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->info = _data_->_tmp22_;
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->_tmp18_);
+#line 1654 "Tombstone.c"
+ }
+ goto __finally536;
+ __catch536_g_error:
+ {
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->err = _data_->_inner_error_;
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_inner_error_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp23_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp23_ = _data_->err;
+#line 131 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (g_error_matches (_data_->_tmp23_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+#line 132 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_error_free0 (_data_->err);
+#line 132 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->info);
+#line 132 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->file);
+#line 132 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->tombstone);
+#line 132 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->object);
+#line 132 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 1681 "Tombstone.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp24_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp24_ = _data_->err;
+#line 134 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!g_error_matches (_data_->_tmp24_, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) {
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp25_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp25_ = _data_->file;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp26_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp26_ = g_file_get_path (_data_->_tmp25_);
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp27_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp27_ = _data_->_tmp26_;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp28_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp28_ = _data_->err;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp29_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp29_ = _data_->_tmp28_->message;
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_warning ("Tombstone.vala:135: Unable to check for existence of tombstoned file %" \
+"s: %s", _data_->_tmp27_, _data_->_tmp29_);
+#line 135 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (_data_->_tmp27_);
+#line 1713 "Tombstone.c"
+ }
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_error_free0 (_data_->err);
+#line 1717 "Tombstone.c"
+ }
+ __finally536:
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->info);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->file);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->tombstone);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->object);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->_object_it);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->marker);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_data_->_inner_error_);
+#line 126 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return FALSE;
+#line 1740 "Tombstone.c"
+ }
+ }
+#line 142 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp30_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp30_ = _data_->info;
+#line 142 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_data_->_tmp30_ == NULL) {
+#line 143 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp31_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp31_ = _data_->marker;
+#line 143 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp32_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp32_ = _data_->tombstone;
+#line 143 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ marker_mark (_data_->_tmp31_, G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp32_, TYPE_DATA_OBJECT, DataObject));
+#line 1759 "Tombstone.c"
+ }
+#line 145 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, _tombstone_source_collection_async_scan_co_gsource_func, _data_, NULL);
+#line 146 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_state_ = 2;
+#line 146 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return FALSE;
+#line 1767 "Tombstone.c"
+ _state_2:
+ ;
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->info);
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->file);
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->tombstone);
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->object);
+#line 1778 "Tombstone.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->_object_it);
+#line 1782 "Tombstone.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp33_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp33_ = _data_->marker;
+#line 149 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp34_ = 0;
+#line 149 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp34_ = marker_get_count (_data_->_tmp33_);
+#line 149 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_data_->_tmp34_ > 0) {
+#line 150 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp35_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp35_ = _data_->marker;
+#line 150 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp36_ = 0;
+#line 150 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp36_ = marker_get_count (_data_->_tmp35_);
+#line 150 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_debug ("Tombstone.vala:150: Resurrecting %d tombstones with no backing file", _data_->_tmp36_);
+#line 151 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ database_table_begin_transaction ();
+#line 152 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp37_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp37_ = _data_->marker;
+#line 152 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_data_->self, TYPE_SOURCE_COLLECTION, SourceCollection), _data_->_tmp37_, FALSE, NULL, NULL, NULL);
+#line 1812 "Tombstone.c"
+ {
+#line 154 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ database_table_commit_transaction (&_data_->_inner_error_);
+#line 154 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 154 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_data_->_inner_error_->domain == DATABASE_ERROR) {
+#line 1820 "Tombstone.c"
+ goto __catch537_database_error;
+ }
+#line 154 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->marker);
+#line 154 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
+#line 154 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_data_->_inner_error_);
+#line 154 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return FALSE;
+#line 1831 "Tombstone.c"
+ }
+ }
+ goto __finally537;
+ __catch537_database_error:
+ {
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->err2 = _data_->_inner_error_;
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_inner_error_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp38_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_->_tmp38_ = _data_->err2;
+#line 156 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ app_window_database_error (_data_->_tmp38_);
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_error_free0 (_data_->err2);
+#line 1849 "Tombstone.c"
+ }
+ __finally537:
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->marker);
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_data_->_inner_error_);
+#line 153 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return FALSE;
+#line 1862 "Tombstone.c"
+ }
+ }
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_data_->marker);
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_data_->_state_ == 0) {
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_simple_async_result_complete_in_idle (_data_->_async_result);
+#line 1871 "Tombstone.c"
+ } else {
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_simple_async_result_complete (_data_->_async_result);
+#line 1875 "Tombstone.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_object_unref (_data_->_async_result);
+#line 112 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return FALSE;
+#line 1881 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_class_init (TombstoneSourceCollectionClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataCollectionClass *) klass)->finalize = tombstone_source_collection_finalize;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_type_class_add_private (klass, sizeof (TombstoneSourceCollectionPrivate));
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = tombstone_source_collection_real_holds_type_of_source;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataCollectionClass *) klass)->notify_contents_altered = tombstone_source_collection_real_notify_contents_altered;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataCollectionClass *) klass)->notify_items_altered = tombstone_source_collection_real_notify_items_altered;
+#line 1898 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_instance_init (TombstoneSourceCollection * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->priv = TOMBSTONE_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_TOMBSTONE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 8 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->priv->file_map = _tmp0_;
+#line 1910 "Tombstone.c"
+}
+
+
+static void tombstone_source_collection_finalize (DataCollection* obj) {
+ TombstoneSourceCollection * self;
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TOMBSTONE_SOURCE_COLLECTION, TombstoneSourceCollection);
+#line 8 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (self->priv->file_map);
+#line 7 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ DATA_COLLECTION_CLASS (tombstone_source_collection_parent_class)->finalize (obj);
+#line 1922 "Tombstone.c"
+}
+
+
+GType tombstone_source_collection_get_type (void) {
+ static volatile gsize tombstone_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&tombstone_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TombstoneSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tombstone_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TombstoneSourceCollection), 0, (GInstanceInitFunc) tombstone_source_collection_instance_init, NULL };
+ GType tombstone_source_collection_type_id;
+ tombstone_source_collection_type_id = g_type_register_static (TYPE_DATABASE_SOURCE_COLLECTION, "TombstoneSourceCollection", &g_define_type_info, 0);
+ g_once_init_leave (&tombstone_source_collection_type_id__volatile, tombstone_source_collection_type_id);
+ }
+ return tombstone_source_collection_type_id__volatile;
+}
+
+
+TombstonedFile* tombstoned_file_construct (GType object_type, GFile* file, gint64 filesize, const gchar* md5) {
+ TombstonedFile* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 167 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = (TombstonedFile*) g_type_create_instance (object_type);
+#line 168 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = file;
+#line 168 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 168 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (self->file);
+#line 168 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->file = _tmp1_;
+#line 169 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = filesize;
+#line 169 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->filesize = _tmp2_;
+#line 170 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = md5;
+#line 170 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 170 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (self->md5);
+#line 170 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->md5 = _tmp4_;
+#line 167 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return self;
+#line 1971 "Tombstone.c"
+}
+
+
+TombstonedFile* tombstoned_file_new (GFile* file, gint64 filesize, const gchar* md5) {
+#line 167 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return tombstoned_file_construct (TYPE_TOMBSTONED_FILE, file, filesize, md5);
+#line 1978 "Tombstone.c"
+}
+
+
+static void value_tombstoned_file_init (GValue* value) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ value->data[0].v_pointer = NULL;
+#line 1985 "Tombstone.c"
+}
+
+
+static void value_tombstoned_file_free_value (GValue* value) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (value->data[0].v_pointer) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstoned_file_unref (value->data[0].v_pointer);
+#line 1994 "Tombstone.c"
+ }
+}
+
+
+static void value_tombstoned_file_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (src_value->data[0].v_pointer) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ dest_value->data[0].v_pointer = tombstoned_file_ref (src_value->data[0].v_pointer);
+#line 2004 "Tombstone.c"
+ } else {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2008 "Tombstone.c"
+ }
+}
+
+
+static gpointer value_tombstoned_file_peek_pointer (const GValue* value) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return value->data[0].v_pointer;
+#line 2016 "Tombstone.c"
+}
+
+
+static gchar* value_tombstoned_file_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (collect_values[0].v_pointer) {
+#line 2023 "Tombstone.c"
+ TombstonedFile* object;
+ object = collect_values[0].v_pointer;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2030 "Tombstone.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2034 "Tombstone.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ value->data[0].v_pointer = tombstoned_file_ref (object);
+#line 2038 "Tombstone.c"
+ } else {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ value->data[0].v_pointer = NULL;
+#line 2042 "Tombstone.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return NULL;
+#line 2046 "Tombstone.c"
+}
+
+
+static gchar* value_tombstoned_file_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TombstonedFile** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!object_p) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2057 "Tombstone.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!value->data[0].v_pointer) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ *object_p = NULL;
+#line 2063 "Tombstone.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2067 "Tombstone.c"
+ } else {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ *object_p = tombstoned_file_ref (value->data[0].v_pointer);
+#line 2071 "Tombstone.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return NULL;
+#line 2075 "Tombstone.c"
+}
+
+
+GParamSpec* param_spec_tombstoned_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTombstonedFile* spec;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TOMBSTONED_FILE), NULL);
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return G_PARAM_SPEC (spec);
+#line 2089 "Tombstone.c"
+}
+
+
+gpointer value_get_tombstoned_file (const GValue* value) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TOMBSTONED_FILE), NULL);
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return value->data[0].v_pointer;
+#line 2098 "Tombstone.c"
+}
+
+
+void value_set_tombstoned_file (GValue* value, gpointer v_object) {
+ TombstonedFile* old;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TOMBSTONED_FILE));
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ old = value->data[0].v_pointer;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (v_object) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TOMBSTONED_FILE));
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ value->data[0].v_pointer = v_object;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstoned_file_ref (value->data[0].v_pointer);
+#line 2118 "Tombstone.c"
+ } else {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ value->data[0].v_pointer = NULL;
+#line 2122 "Tombstone.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (old) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstoned_file_unref (old);
+#line 2128 "Tombstone.c"
+ }
+}
+
+
+void value_take_tombstoned_file (GValue* value, gpointer v_object) {
+ TombstonedFile* old;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TOMBSTONED_FILE));
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ old = value->data[0].v_pointer;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (v_object) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TOMBSTONED_FILE));
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ value->data[0].v_pointer = v_object;
+#line 2147 "Tombstone.c"
+ } else {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ value->data[0].v_pointer = NULL;
+#line 2151 "Tombstone.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (old) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstoned_file_unref (old);
+#line 2157 "Tombstone.c"
+ }
+}
+
+
+static void tombstoned_file_class_init (TombstonedFileClass * klass) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstoned_file_parent_class = g_type_class_peek_parent (klass);
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((TombstonedFileClass *) klass)->finalize = tombstoned_file_finalize;
+#line 2167 "Tombstone.c"
+}
+
+
+static void tombstoned_file_instance_init (TombstonedFile * self) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->ref_count = 1;
+#line 2174 "Tombstone.c"
+}
+
+
+static void tombstoned_file_finalize (TombstonedFile* obj) {
+ TombstonedFile * self;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TOMBSTONED_FILE, TombstonedFile);
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_signal_handlers_destroy (self);
+#line 163 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (self->file);
+#line 165 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (self->md5);
+#line 2188 "Tombstone.c"
+}
+
+
+GType tombstoned_file_get_type (void) {
+ static volatile gsize tombstoned_file_type_id__volatile = 0;
+ if (g_once_init_enter (&tombstoned_file_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_tombstoned_file_init, value_tombstoned_file_free_value, value_tombstoned_file_copy_value, value_tombstoned_file_peek_pointer, "p", value_tombstoned_file_collect_value, "p", value_tombstoned_file_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TombstonedFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tombstoned_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TombstonedFile), 0, (GInstanceInitFunc) tombstoned_file_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType tombstoned_file_type_id;
+ tombstoned_file_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TombstonedFile", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&tombstoned_file_type_id__volatile, tombstoned_file_type_id);
+ }
+ return tombstoned_file_type_id__volatile;
+}
+
+
+gpointer tombstoned_file_ref (gpointer instance) {
+ TombstonedFile* self;
+ self = instance;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return instance;
+#line 2213 "Tombstone.c"
+}
+
+
+void tombstoned_file_unref (gpointer instance) {
+ TombstonedFile* self;
+ self = instance;
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ TOMBSTONED_FILE_GET_CLASS (self)->finalize (self);
+#line 162 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2226 "Tombstone.c"
+ }
+}
+
+
+gint tombstone_reason_serialize (TombstoneReason self) {
+ gint result = 0;
+#line 181 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = (gint) self;
+#line 181 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 2237 "Tombstone.c"
+}
+
+
+TombstoneReason tombstone_reason_unserialize (gint value) {
+ TombstoneReason result = 0;
+ gint _tmp0_ = 0;
+#line 185 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = value;
+#line 185 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ switch ((TombstoneReason) _tmp0_) {
+#line 185 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ case TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE:
+#line 2250 "Tombstone.c"
+ {
+#line 187 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE;
+#line 187 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 2256 "Tombstone.c"
+ }
+ default:
+#line 185 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ case TOMBSTONE_REASON_REMOVED_BY_USER:
+#line 2261 "Tombstone.c"
+ {
+#line 192 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = TOMBSTONE_REASON_REMOVED_BY_USER;
+#line 192 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 2267 "Tombstone.c"
+ }
+ }
+}
+
+
+GType tombstone_reason_get_type (void) {
+ static volatile gsize tombstone_reason_type_id__volatile = 0;
+ if (g_once_init_enter (&tombstone_reason_type_id__volatile)) {
+ static const GEnumValue values[] = {{TOMBSTONE_REASON_REMOVED_BY_USER, "TOMBSTONE_REASON_REMOVED_BY_USER", "removed-by-user"}, {TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE, "TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE", "auto-detected-duplicate"}, {0, NULL, NULL}};
+ GType tombstone_reason_type_id;
+ tombstone_reason_type_id = g_enum_register_static ("TombstoneReason", values);
+ g_once_init_leave (&tombstone_reason_type_id__volatile, tombstone_reason_type_id);
+ }
+ return tombstone_reason_type_id__volatile;
+}
+
+
+static gpointer _tombstone_row_ref0 (gpointer self) {
+#line 203 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return self ? tombstone_row_ref (self) : NULL;
+#line 2288 "Tombstone.c"
+}
+
+
+static Tombstone* tombstone_construct (GType object_type, TombstoneRow* row) {
+ Tombstone * self = NULL;
+ TombstoneRow* _tmp0_ = NULL;
+ TombstoneRow* _tmp1_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_TOMBSTONE_ROW (row), NULL);
+#line 202 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = (Tombstone*) data_source_construct (object_type, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 203 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = row;
+#line 203 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tombstone_row_ref0 (_tmp0_);
+#line 203 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstone_row_unref0 (self->priv->row);
+#line 203 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->priv->row = _tmp1_;
+#line 202 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return self;
+#line 2310 "Tombstone.c"
+}
+
+
+static Tombstone* tombstone_new (TombstoneRow* row) {
+#line 202 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return tombstone_construct (TYPE_TOMBSTONE, row);
+#line 2317 "Tombstone.c"
+}
+
+
+void tombstone_init (void) {
+ TombstoneSourceCollection* _tmp0_ = NULL;
+ TombstoneRow** rows = NULL;
+ gint rows_length1 = 0;
+ gint _rows_size_ = 0;
+ TombstoneRow** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = tombstone_source_collection_new ();
+#line 207 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _data_collection_unref0 (tombstone_global);
+#line 207 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_global = _tmp0_;
+#line 209 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows = NULL;
+#line 209 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows_length1 = 0;
+#line 209 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _rows_size_ = rows_length1;
+#line 2341 "Tombstone.c"
+ {
+ TombstoneRow** _tmp1_ = NULL;
+ TombstoneTable* _tmp2_ = NULL;
+ TombstoneTable* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ TombstoneRow** _tmp5_ = NULL;
+ TombstoneRow** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp1__length1 = 0;
+ gint __tmp1__size_ = 0;
+ TombstoneRow** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = tombstone_table_get_instance ();
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _tmp2_;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = tombstone_table_fetch_all (_tmp3_, &_tmp4_, &_inner_error_);
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = _tmp5_;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6__length1 = _tmp4_;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _database_table_unref0 (_tmp3_);
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp6_;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1__length1 = _tmp6__length1;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ __tmp1__size_ = _tmp1__length1;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 2376 "Tombstone.c"
+ goto __catch538_database_error;
+ }
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows = (_vala_array_free (rows, rows_length1, (GDestroyNotify) tombstone_row_unref), NULL);
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 2387 "Tombstone.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7_ = _tmp1_;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7__length1 = _tmp1__length1;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1__length1 = 0;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows = (_vala_array_free (rows, rows_length1, (GDestroyNotify) tombstone_row_unref), NULL);
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows = _tmp7_;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows_length1 = _tmp7__length1;
+#line 211 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _rows_size_ = rows_length1;
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = (_vala_array_free (_tmp1_, _tmp1__length1, (GDestroyNotify) tombstone_row_unref), NULL);
+#line 2407 "Tombstone.c"
+ }
+ goto __finally538;
+ __catch538_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp8_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ err = _inner_error_;
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _inner_error_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp8_ = err;
+#line 213 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ app_window_database_error (_tmp8_);
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_error_free0 (err);
+#line 2424 "Tombstone.c"
+ }
+ __finally538:
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows = (_vala_array_free (rows, rows_length1, (GDestroyNotify) tombstone_row_unref), NULL);
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 210 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 2437 "Tombstone.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9_ = rows;
+#line 216 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9__length1 = rows_length1;
+#line 216 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp9_ != NULL) {
+#line 2445 "Tombstone.c"
+ GeeArrayList* tombstones = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ TombstoneRow** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ TombstoneSourceCollection* _tmp17_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeCollection* _tmp20_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = gee_array_list_new (TYPE_TOMBSTONE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 217 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstones = _tmp10_;
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_ = rows;
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11__length1 = rows_length1;
+#line 2462 "Tombstone.c"
+ {
+ TombstoneRow** row_collection = NULL;
+ gint row_collection_length1 = 0;
+ gint _row_collection_size_ = 0;
+ gint row_it = 0;
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ row_collection = _tmp11_;
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ row_collection_length1 = _tmp11__length1;
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ for (row_it = 0; row_it < _tmp11__length1; row_it = row_it + 1) {
+#line 2474 "Tombstone.c"
+ TombstoneRow* _tmp12_ = NULL;
+ TombstoneRow* row = NULL;
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp12_ = _tombstone_row_ref0 (row_collection[row_it]);
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ row = _tmp12_;
+#line 2481 "Tombstone.c"
+ {
+ GeeArrayList* _tmp13_ = NULL;
+ TombstoneRow* _tmp14_ = NULL;
+ Tombstone* _tmp15_ = NULL;
+ Tombstone* _tmp16_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp13_ = tombstones;
+#line 219 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp14_ = row;
+#line 219 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp15_ = tombstone_new (_tmp14_);
+#line 219 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp16_ = _tmp15_;
+#line 219 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp16_);
+#line 219 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp16_);
+#line 218 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstone_row_unref0 (row);
+#line 2501 "Tombstone.c"
+ }
+ }
+ }
+#line 221 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp17_ = tombstone_global;
+#line 221 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp18_ = tombstones;
+#line 221 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp19_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 221 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp20_ = _tmp19_;
+#line 221 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp20_);
+#line 216 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstones);
+#line 2517 "Tombstone.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ rows = (_vala_array_free (rows, rows_length1, (GDestroyNotify) tombstone_row_unref), NULL);
+#line 2521 "Tombstone.c"
+}
+
+
+void tombstone_terminate (void) {
+}
+
+
+static gpointer _backing_file_state_ref0 (gpointer self) {
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return self ? backing_file_state_ref (self) : NULL;
+#line 2532 "Tombstone.c"
+}
+
+
+void tombstone_entomb_many_sources (GeeCollection* sources, TombstoneReason reason, GError** error) {
+ GeeCollection* files = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeCollection* _tmp21_ = NULL;
+ TombstoneReason _tmp22_ = 0;
+ GError * _inner_error_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 230 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = gee_array_list_new (TYPE_TOMBSTONED_FILE, (GBoxedCopyFunc) tombstoned_file_ref, tombstoned_file_unref, NULL, NULL, NULL);
+#line 230 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ files = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2548 "Tombstone.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = sources;
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _source_it = _tmp2_;
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 2561 "Tombstone.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ MediaSource* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ BackingFileState** _tmp9_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _source_it;
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp4_) {
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 2578 "Tombstone.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = _source_it;
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ source = (MediaSource*) _tmp6_;
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7_ = source;
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9_ = media_source_get_backing_files_state (_tmp7_, &_tmp8_);
+#line 2590 "Tombstone.c"
+ {
+ BackingFileState** state_collection = NULL;
+ gint state_collection_length1 = 0;
+ gint _state_collection_size_ = 0;
+ gint state_it = 0;
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ state_collection = _tmp9_;
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ state_collection_length1 = _tmp8_;
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ for (state_it = 0; state_it < _tmp8_; state_it = state_it + 1) {
+#line 2602 "Tombstone.c"
+ BackingFileState* _tmp10_ = NULL;
+ BackingFileState* state = NULL;
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = _backing_file_state_ref0 (state_collection[state_it]);
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ state = _tmp10_;
+#line 2609 "Tombstone.c"
+ {
+ GeeCollection* _tmp11_ = NULL;
+ BackingFileState* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ BackingFileState* _tmp15_ = NULL;
+ gint64 _tmp16_ = 0LL;
+ BackingFileState* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ TombstonedFile* _tmp19_ = NULL;
+ TombstonedFile* _tmp20_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_ = files;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp12_ = state;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp13_ = backing_file_state_get_file (_tmp12_);
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp14_ = _tmp13_;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp15_ = state;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp16_ = _tmp15_->filesize;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp17_ = state;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp18_ = _tmp17_->md5;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp19_ = tombstoned_file_new (_tmp14_, _tmp16_, _tmp18_);
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp20_ = _tmp19_;
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ gee_collection_add (_tmp11_, _tmp20_);
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstoned_file_unref0 (_tmp20_);
+#line 233 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp14_);
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _backing_file_state_unref0 (state);
+#line 2649 "Tombstone.c"
+ }
+ }
+#line 232 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ state_collection = (_vala_array_free (state_collection, state_collection_length1, (GDestroyNotify) backing_file_state_unref), NULL);
+#line 2654 "Tombstone.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (source);
+#line 2658 "Tombstone.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_source_it);
+#line 2662 "Tombstone.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp21_ = files;
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp22_ = reason;
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_entomb_many_files (_tmp21_, _tmp22_, &_inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_propagate_error (error, _inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (files);
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 2680 "Tombstone.c"
+ } else {
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (files);
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 2690 "Tombstone.c"
+ }
+ }
+#line 228 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (files);
+#line 2695 "Tombstone.c"
+}
+
+
+void tombstone_entomb_many_files (GeeCollection* files, TombstoneReason reason, GError** error) {
+ Marker* to_destroy = NULL;
+ TombstoneSourceCollection* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ TombstoneSourceCollection* _tmp15_ = NULL;
+ Marker* _tmp16_ = NULL;
+ GeeArrayList* tombstones = NULL;
+ GeeArrayList* _tmp17_ = NULL;
+ TombstoneSourceCollection* _tmp41_ = NULL;
+ GeeArrayList* _tmp42_ = NULL;
+ GeeCollection* _tmp43_ = NULL;
+ GeeCollection* _tmp44_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 239 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (files));
+#line 242 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = tombstone_global;
+#line 242 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 242 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ to_destroy = _tmp1_;
+#line 2720 "Tombstone.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = files;
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _file_it = _tmp3_;
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 2733 "Tombstone.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ TombstonedFile* file = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Tombstone* tombstone = NULL;
+ TombstoneSourceCollection* _tmp8_ = NULL;
+ TombstonedFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ Tombstone* _tmp11_ = NULL;
+ Tombstone* _tmp12_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = _file_it;
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp5_) {
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 2753 "Tombstone.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = _file_it;
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ file = (TombstonedFile*) _tmp7_;
+#line 244 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp8_ = tombstone_global;
+#line 244 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9_ = file;
+#line 244 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = _tmp9_->file;
+#line 244 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_ = tombstone_source_collection_locate (_tmp8_, _tmp10_);
+#line 244 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone = _tmp11_;
+#line 245 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp12_ = tombstone;
+#line 245 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp12_ != NULL) {
+#line 2775 "Tombstone.c"
+ Marker* _tmp13_ = NULL;
+ Tombstone* _tmp14_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp13_ = to_destroy;
+#line 246 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp14_ = tombstone;
+#line 246 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ marker_mark (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 2784 "Tombstone.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstone);
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstoned_file_unref0 (file);
+#line 2790 "Tombstone.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_file_it);
+#line 2794 "Tombstone.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp15_ = tombstone_global;
+#line 249 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp16_ = to_destroy;
+#line 249 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp16_, FALSE, NULL, NULL, NULL);
+#line 251 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp17_ = gee_array_list_new (TYPE_TOMBSTONE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 251 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstones = _tmp17_;
+#line 2806 "Tombstone.c"
+ {
+ GeeIterator* _file_it = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeIterator* _tmp19_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp18_ = files;
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp19_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _file_it = _tmp19_;
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ while (TRUE) {
+#line 2819 "Tombstone.c"
+ GeeIterator* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ TombstonedFile* file = NULL;
+ GeeIterator* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+ TombstoneRow* _tmp24_ = NULL;
+ TombstoneTable* _tmp25_ = NULL;
+ TombstoneTable* _tmp26_ = NULL;
+ TombstonedFile* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ TombstonedFile* _tmp31_ = NULL;
+ gint64 _tmp32_ = 0LL;
+ TombstonedFile* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ TombstoneReason _tmp35_ = 0;
+ TombstoneRow* _tmp36_ = NULL;
+ TombstoneRow* _tmp37_ = NULL;
+ GeeArrayList* _tmp38_ = NULL;
+ Tombstone* _tmp39_ = NULL;
+ Tombstone* _tmp40_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp20_ = _file_it;
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp21_ = gee_iterator_next (_tmp20_);
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (!_tmp21_) {
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ break;
+#line 2850 "Tombstone.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp22_ = _file_it;
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp23_ = gee_iterator_get (_tmp22_);
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ file = (TombstonedFile*) _tmp23_;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp25_ = tombstone_table_get_instance ();
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp26_ = _tmp25_;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp27_ = file;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp28_ = _tmp27_->file;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp29_ = g_file_get_path (_tmp28_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp30_ = _tmp29_;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp31_ = file;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp32_ = _tmp31_->filesize;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp33_ = file;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp34_ = _tmp33_->md5;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp35_ = reason;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp36_ = tombstone_table_add (_tmp26_, _tmp30_, _tmp32_, _tmp34_, _tmp35_, &_inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp37_ = _tmp36_;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (_tmp30_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _database_table_unref0 (_tmp26_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp24_ = _tmp37_;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_propagate_error (error, _inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstoned_file_unref0 (file);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_file_it);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstones);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (to_destroy);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 2906 "Tombstone.c"
+ } else {
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstoned_file_unref0 (file);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_file_it);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstones);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (to_destroy);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 2922 "Tombstone.c"
+ }
+ }
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp38_ = tombstones;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp39_ = tombstone_new (_tmp24_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp40_ = _tmp39_;
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp40_);
+#line 253 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp40_);
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstone_row_unref0 (_tmp24_);
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstoned_file_unref0 (file);
+#line 2939 "Tombstone.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_file_it);
+#line 2943 "Tombstone.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp41_ = tombstone_global;
+#line 257 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp42_ = tombstones;
+#line 257 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp43_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 257 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp44_ = _tmp43_;
+#line 257 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp44_);
+#line 239 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (tombstones);
+#line 239 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (to_destroy);
+#line 2959 "Tombstone.c"
+}
+
+
+static gchar* tombstone_real_get_typename (DataSource* base) {
+ Tombstone * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE, Tombstone);
+#line 261 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = g_strdup ("tombstone");
+#line 261 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp0_;
+#line 261 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 2975 "Tombstone.c"
+}
+
+
+static gint64 tombstone_real_get_instance_id (DataSource* base) {
+ Tombstone * self;
+ gint64 result = 0LL;
+ TombstoneID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+#line 264 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE, Tombstone);
+#line 265 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_get_tombstone_id (self, &_tmp0_);
+#line 265 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_.id;
+#line 265 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp1_;
+#line 265 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 2994 "Tombstone.c"
+}
+
+
+static gchar* tombstone_real_get_name (DataObject* base) {
+ Tombstone * self;
+ gchar* result = NULL;
+ TombstoneRow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE, Tombstone);
+#line 269 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = self->priv->row;
+#line 269 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_->filepath;
+#line 269 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 269 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp2_;
+#line 269 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3016 "Tombstone.c"
+}
+
+
+static gchar* tombstone_real_to_string (DataObject* base) {
+ Tombstone * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE, Tombstone);
+#line 273 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 273 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_;
+#line 273 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = g_strdup_printf ("Tombstone %s", _tmp1_);
+#line 273 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _tmp2_;
+#line 273 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (_tmp1_);
+#line 273 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp3_;
+#line 273 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3043 "Tombstone.c"
+}
+
+
+void tombstone_get_tombstone_id (Tombstone* self, TombstoneID* result) {
+ TombstoneRow* _tmp0_ = NULL;
+ TombstoneID _tmp1_ = {0};
+#line 276 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (IS_TOMBSTONE (self));
+#line 277 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = self->priv->row;
+#line 277 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_->id;
+#line 277 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ *result = _tmp1_;
+#line 277 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 3060 "Tombstone.c"
+}
+
+
+GFile* tombstone_get_file (Tombstone* self) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 280 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_TOMBSTONE (self), NULL);
+#line 281 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = self->priv->file;
+#line 281 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp0_ == NULL) {
+#line 3075 "Tombstone.c"
+ TombstoneRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = self->priv->row;
+#line 282 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = _tmp1_->filepath;
+#line 282 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = g_file_new_for_path (_tmp2_);
+#line 282 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (self->priv->file);
+#line 282 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->priv->file = _tmp3_;
+#line 3089 "Tombstone.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = self->priv->file;
+#line 284 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 284 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp5_;
+#line 284 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3099 "Tombstone.c"
+}
+
+
+gchar* tombstone_get_md5 (Tombstone* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ TombstoneRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gchar* _tmp6_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_TOMBSTONE (self), NULL);
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = self->priv->row;
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = _tmp1_->md5;
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp3_) {
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = NULL;
+#line 3122 "Tombstone.c"
+ } else {
+ TombstoneRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = self->priv->row;
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = _tmp4_->md5;
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = _tmp5_;
+#line 3132 "Tombstone.c"
+ }
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = g_strdup (_tmp0_);
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp6_;
+#line 288 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3140 "Tombstone.c"
+}
+
+
+TombstoneReason tombstone_get_reason (Tombstone* self) {
+ TombstoneReason result = 0;
+ TombstoneRow* _tmp0_ = NULL;
+ TombstoneReason _tmp1_ = 0;
+#line 291 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_TOMBSTONE (self), 0);
+#line 292 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = self->priv->row;
+#line 292 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_->reason;
+#line 292 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = _tmp1_;
+#line 292 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3158 "Tombstone.c"
+}
+
+
+void tombstone_move (Tombstone* self, GFile* file) {
+ gchar* old_filepath = NULL;
+ TombstoneRow* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ TombstoneRow* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ Alteration* _tmp16_ = NULL;
+ Alteration* _tmp17_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 295 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (IS_TOMBSTONE (self));
+#line 295 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 3179 "Tombstone.c"
+ {
+ TombstoneTable* _tmp0_ = NULL;
+ TombstoneTable* _tmp1_ = NULL;
+ TombstoneRow* _tmp2_ = NULL;
+ TombstoneID _tmp3_ = {0};
+ GFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = tombstone_table_get_instance ();
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_;
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = self->priv->row;
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _tmp2_->id;
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = file;
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = g_file_get_path (_tmp4_);
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = _tmp5_;
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_table_update_file (_tmp1_, &_tmp3_, _tmp6_, &_inner_error_);
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (_tmp6_);
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _database_table_unref0 (_tmp1_);
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3212 "Tombstone.c"
+ goto __catch539_database_error;
+ }
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 297 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 3221 "Tombstone.c"
+ }
+ }
+ goto __finally539;
+ __catch539_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+#line 296 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ err = _inner_error_;
+#line 296 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _inner_error_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7_ = err;
+#line 299 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ app_window_database_error (_tmp7_);
+#line 296 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_error_free0 (err);
+#line 3239 "Tombstone.c"
+ }
+ __finally539:
+#line 296 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 296 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 296 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 296 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 3250 "Tombstone.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp8_ = self->priv->row;
+#line 302 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9_ = _tmp8_->filepath;
+#line 302 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 302 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ old_filepath = _tmp10_;
+#line 303 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_ = self->priv->row;
+#line 303 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp12_ = file;
+#line 303 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp13_ = g_file_get_path (_tmp12_);
+#line 303 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (_tmp11_->filepath);
+#line 303 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_->filepath = _tmp13_;
+#line 304 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp14_ = file;
+#line 304 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 304 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (self->priv->file);
+#line 304 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->priv->file = _tmp15_;
+#line 306 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp16_ = alteration_new ("file", old_filepath);
+#line 306 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp17_ = _tmp16_;
+#line 306 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp17_);
+#line 306 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _alteration_unref0 (_tmp17_);
+#line 295 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (old_filepath);
+#line 3288 "Tombstone.c"
+}
+
+
+gboolean tombstone_matches (Tombstone* self, GFile* file, gint64 filesize, const gchar* md5) {
+ gboolean result = FALSE;
+ TombstoneRow* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ gint64 _tmp2_ = 0LL;
+ const gchar* _tmp3_ = NULL;
+ TombstoneRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gchar* this_md5 = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gchar* other_md5 = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+#line 309 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (IS_TOMBSTONE (self), FALSE);
+#line 309 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 310 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = self->priv->row;
+#line 310 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_->filesize;
+#line 310 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = filesize;
+#line 310 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp1_ != _tmp2_) {
+#line 311 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = FALSE;
+#line 311 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3331 "Tombstone.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = self->priv->row;
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp5_ = _tmp4_->md5;
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp6_ = is_string_empty (_tmp5_);
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp6_) {
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = NULL;
+#line 3343 "Tombstone.c"
+ } else {
+ TombstoneRow* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp7_ = self->priv->row;
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp8_ = _tmp7_->md5;
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _tmp8_;
+#line 3353 "Tombstone.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp9_ = g_strdup (_tmp3_);
+#line 314 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ this_md5 = _tmp9_;
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp11_ = md5;
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp12_ = is_string_empty (_tmp11_);
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp12_) {
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = NULL;
+#line 3367 "Tombstone.c"
+ } else {
+ const gchar* _tmp13_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp13_ = md5;
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp10_ = _tmp13_;
+#line 3374 "Tombstone.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp14_ = g_strdup (_tmp10_);
+#line 315 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ other_md5 = _tmp14_;
+#line 317 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp15_ = this_md5;
+#line 317 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp16_ = other_md5;
+#line 317 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (g_strcmp0 (_tmp15_, _tmp16_) != 0) {
+#line 318 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = FALSE;
+#line 318 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (other_md5);
+#line 318 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (this_md5);
+#line 318 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3394 "Tombstone.c"
+ }
+#line 320 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp17_ = tombstone_get_file (self);
+#line 320 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp18_ = _tmp17_;
+#line 320 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp19_ = file;
+#line 320 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp20_ = g_file_equal (_tmp18_, _tmp19_);
+#line 320 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp21_ = !_tmp20_;
+#line 320 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (_tmp18_);
+#line 320 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_tmp21_) {
+#line 321 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = FALSE;
+#line 321 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (other_md5);
+#line 321 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (this_md5);
+#line 321 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3418 "Tombstone.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ result = TRUE;
+#line 323 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (other_md5);
+#line 323 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_free0 (this_md5);
+#line 323 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return result;
+#line 3428 "Tombstone.c"
+}
+
+
+static void tombstone_real_destroy (DataSource* base) {
+ Tombstone * self;
+ GError * _inner_error_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TOMBSTONE, Tombstone);
+#line 3437 "Tombstone.c"
+ {
+ TombstoneTable* _tmp0_ = NULL;
+ TombstoneTable* _tmp1_ = NULL;
+ TombstoneRow* _tmp2_ = NULL;
+ TombstoneID _tmp3_ = {0};
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp0_ = tombstone_table_get_instance ();
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp1_ = _tmp0_;
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp2_ = self->priv->row;
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp3_ = _tmp2_->id;
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_table_remove (_tmp1_, &_tmp3_, &_inner_error_);
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _database_table_unref0 (_tmp1_);
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 3459 "Tombstone.c"
+ goto __catch540_database_error;
+ }
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 328 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 3468 "Tombstone.c"
+ }
+ }
+ goto __finally540;
+ __catch540_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+#line 327 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ err = _inner_error_;
+#line 327 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _inner_error_ = NULL;
+#line 330 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tmp4_ = err;
+#line 330 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ app_window_database_error (_tmp4_);
+#line 327 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_error_free0 (err);
+#line 3486 "Tombstone.c"
+ }
+ __finally540:
+#line 327 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 327 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 327 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_clear_error (&_inner_error_);
+#line 327 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ return;
+#line 3497 "Tombstone.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ DATA_SOURCE_CLASS (tombstone_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 3501 "Tombstone.c"
+}
+
+
+static void tombstone_class_init (TombstoneClass * klass) {
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ tombstone_parent_class = g_type_class_peek_parent (klass);
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ g_type_class_add_private (klass, sizeof (TombstonePrivate));
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataSourceClass *) klass)->get_typename = tombstone_real_get_typename;
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataSourceClass *) klass)->get_instance_id = tombstone_real_get_instance_id;
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataObjectClass *) klass)->get_name = tombstone_real_get_name;
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataObjectClass *) klass)->to_string = tombstone_real_to_string;
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ ((DataSourceClass *) klass)->destroy = tombstone_real_destroy;
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ G_OBJECT_CLASS (klass)->finalize = tombstone_finalize;
+#line 3522 "Tombstone.c"
+}
+
+
+static void tombstone_instance_init (Tombstone * self) {
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->priv = TOMBSTONE_GET_PRIVATE (self);
+#line 200 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self->priv->file = NULL;
+#line 3531 "Tombstone.c"
+}
+
+
+static void tombstone_finalize (GObject* obj) {
+ Tombstone * self;
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TOMBSTONE, Tombstone);
+#line 199 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _tombstone_row_unref0 (self->priv->row);
+#line 200 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ _g_object_unref0 (self->priv->file);
+#line 174 "/home/jens/Source/shotwell/src/Tombstone.vala"
+ G_OBJECT_CLASS (tombstone_parent_class)->finalize (obj);
+#line 3545 "Tombstone.c"
+}
+
+
+GType tombstone_get_type (void) {
+ static volatile gsize tombstone_type_id__volatile = 0;
+ if (g_once_init_enter (&tombstone_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TombstoneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tombstone_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Tombstone), 0, (GInstanceInitFunc) tombstone_instance_init, NULL };
+ GType tombstone_type_id;
+ tombstone_type_id = g_type_register_static (TYPE_DATA_SOURCE, "Tombstone", &g_define_type_info, 0);
+ g_once_init_leave (&tombstone_type_id__volatile, tombstone_type_id);
+ }
+ return tombstone_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/unit/rc/template.vala b/src/UnityProgressBar.c
index 31fc93d..c32a00a 100644
--- a/src/unit/rc/template.vala
+++ b/src/UnityProgressBar.c
@@ -1,7 +1,18 @@
+/* UnityProgressBar.c generated by valac 0.32.1, the Vala compiler
+ * generated from UnityProgressBar.vala, do not modify */
+
/* Copyright 2016 Software Freedom Conservancy Inc.
*
* This software is licensed under the GNU Lesser General Public License
* (version 2.1 or later). See the COPYING file in this distribution.
*/
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+
+
diff --git a/src/Upgrades.c b/src/Upgrades.c
new file mode 100644
index 0000000..4571390
--- /dev/null
+++ b/src/Upgrades.c
@@ -0,0 +1,1627 @@
+/* Upgrades.c generated by valac 0.32.1, the Vala compiler
+ * generated from Upgrades.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* Class for aggregating one-off "upgrade" tasks that occur at startup, such as*/
+/* moving or deleting files. This occurs after the UI is shown, so it's not appropriate*/
+/* for database updates and such.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_UPGRADES (upgrades_get_type ())
+#define UPGRADES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_UPGRADES, Upgrades))
+#define UPGRADES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_UPGRADES, UpgradesClass))
+#define IS_UPGRADES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_UPGRADES))
+#define IS_UPGRADES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_UPGRADES))
+#define UPGRADES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_UPGRADES, UpgradesClass))
+
+typedef struct _Upgrades Upgrades;
+typedef struct _UpgradesClass UpgradesClass;
+typedef struct _UpgradesPrivate UpgradesPrivate;
+
+#define TYPE_UPGRADE_TASK (upgrade_task_get_type ())
+#define UPGRADE_TASK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_UPGRADE_TASK, UpgradeTask))
+#define IS_UPGRADE_TASK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_UPGRADE_TASK))
+#define UPGRADE_TASK_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_UPGRADE_TASK, UpgradeTaskIface))
+
+typedef struct _UpgradeTask UpgradeTask;
+typedef struct _UpgradeTaskIface UpgradeTaskIface;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MIMICS_REMOVAL_TASK (mimics_removal_task_get_type ())
+#define MIMICS_REMOVAL_TASK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MIMICS_REMOVAL_TASK, MimicsRemovalTask))
+#define MIMICS_REMOVAL_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MIMICS_REMOVAL_TASK, MimicsRemovalTaskClass))
+#define IS_MIMICS_REMOVAL_TASK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MIMICS_REMOVAL_TASK))
+#define IS_MIMICS_REMOVAL_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MIMICS_REMOVAL_TASK))
+#define MIMICS_REMOVAL_TASK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MIMICS_REMOVAL_TASK, MimicsRemovalTaskClass))
+
+typedef struct _MimicsRemovalTask MimicsRemovalTask;
+typedef struct _MimicsRemovalTaskClass MimicsRemovalTaskClass;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+
+#define TYPE_FIXUP_RAW_THUMBNAILS_TASK (fixup_raw_thumbnails_task_get_type ())
+#define FIXUP_RAW_THUMBNAILS_TASK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FIXUP_RAW_THUMBNAILS_TASK, FixupRawThumbnailsTask))
+#define FIXUP_RAW_THUMBNAILS_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FIXUP_RAW_THUMBNAILS_TASK, FixupRawThumbnailsTaskClass))
+#define IS_FIXUP_RAW_THUMBNAILS_TASK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FIXUP_RAW_THUMBNAILS_TASK))
+#define IS_FIXUP_RAW_THUMBNAILS_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FIXUP_RAW_THUMBNAILS_TASK))
+#define FIXUP_RAW_THUMBNAILS_TASK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FIXUP_RAW_THUMBNAILS_TASK, FixupRawThumbnailsTaskClass))
+
+typedef struct _FixupRawThumbnailsTask FixupRawThumbnailsTask;
+typedef struct _FixupRawThumbnailsTaskClass FixupRawThumbnailsTaskClass;
+#define _upgrades_unref0(var) ((var == NULL) ? NULL : (var = (upgrades_unref (var), NULL)))
+typedef struct _ParamSpecUpgrades ParamSpecUpgrades;
+typedef struct _MimicsRemovalTaskPrivate MimicsRemovalTaskPrivate;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _FixupRawThumbnailsTaskPrivate FixupRawThumbnailsTaskPrivate;
+
+#define TYPE_PHOTO_ROW (photo_row_get_type ())
+#define PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_ROW, PhotoRow))
+#define PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_ROW, PhotoRowClass))
+#define IS_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_ROW))
+#define IS_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_ROW))
+#define PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_ROW, PhotoRowClass))
+
+typedef struct _PhotoRow PhotoRow;
+typedef struct _PhotoRowClass PhotoRowClass;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_PHOTO_TABLE (photo_table_get_type ())
+#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
+#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
+#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
+#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
+#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))
+
+typedef struct _PhotoTable PhotoTable;
+typedef struct _PhotoTableClass PhotoTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+typedef struct _PhotoRowPrivate PhotoRowPrivate;
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define TYPE_KEY_VALUE_MAP (key_value_map_get_type ())
+#define KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_VALUE_MAP, KeyValueMap))
+#define KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+#define IS_KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_VALUE_MAP))
+#define IS_KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_VALUE_MAP))
+#define KEY_VALUE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+
+typedef struct _KeyValueMap KeyValueMap;
+typedef struct _KeyValueMapClass KeyValueMapClass;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _photo_row_unref0(var) ((var == NULL) ? NULL : (var = (photo_row_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Upgrades {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ UpgradesPrivate * priv;
+};
+
+struct _UpgradesClass {
+ GTypeClass parent_class;
+ void (*finalize) (Upgrades *self);
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _UpgradeTaskIface {
+ GTypeInterface parent_iface;
+ guint64 (*get_step_count) (UpgradeTask* self);
+ void (*execute) (UpgradeTask* self, ProgressMonitor monitor, void* monitor_target);
+};
+
+struct _UpgradesPrivate {
+ guint64 total_steps;
+ GeeLinkedList* task_list;
+};
+
+struct _ParamSpecUpgrades {
+ GParamSpec parent_instance;
+};
+
+struct _MimicsRemovalTask {
+ GObject parent_instance;
+ MimicsRemovalTaskPrivate * priv;
+};
+
+struct _MimicsRemovalTaskClass {
+ GObjectClass parent_class;
+};
+
+struct _MimicsRemovalTaskPrivate {
+ GFile* mimic_dir;
+ guint64 num_mimics;
+};
+
+struct _FixupRawThumbnailsTask {
+ GObject parent_instance;
+ FixupRawThumbnailsTaskPrivate * priv;
+};
+
+struct _FixupRawThumbnailsTaskClass {
+ GObjectClass parent_class;
+};
+
+struct _PhotoID {
+ gint64 id;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _PhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoRowPrivate * priv;
+ PhotoID photo_id;
+ BackingPhotoRow* master;
+ time_t exposure_time;
+ ImportID import_id;
+ EventID event_id;
+ Orientation orientation;
+ GeeHashMap* transformations;
+ gchar* md5;
+ gchar* thumbnail_md5;
+ gchar* exif_md5;
+ time_t time_created;
+ guint64 flags;
+ Rating rating;
+ gchar* title;
+ gchar* comment;
+ gchar* backlinks;
+ time_t time_reimported;
+ BackingPhotoID editable_id;
+ gboolean metadata_dirty;
+ RawDeveloper developer;
+ BackingPhotoID* development_ids;
+ gint development_ids_length1;
+};
+
+struct _PhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoRow *self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+
+static gpointer upgrades_parent_class = NULL;
+static Upgrades* upgrades_instance;
+static Upgrades* upgrades_instance = NULL;
+static gpointer mimics_removal_task_parent_class = NULL;
+static UpgradeTaskIface* mimics_removal_task_upgrade_task_parent_iface = NULL;
+static gpointer fixup_raw_thumbnails_task_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+static UpgradeTaskIface* fixup_raw_thumbnails_task_upgrade_task_parent_iface = NULL;
+
+gpointer upgrades_ref (gpointer instance);
+void upgrades_unref (gpointer instance);
+GParamSpec* param_spec_upgrades (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_upgrades (GValue* value, gpointer v_object);
+void value_take_upgrades (GValue* value, gpointer v_object);
+gpointer value_get_upgrades (const GValue* value);
+GType upgrades_get_type (void) G_GNUC_CONST;
+GType upgrade_task_get_type (void) G_GNUC_CONST;
+#define UPGRADES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_UPGRADES, UpgradesPrivate))
+enum {
+ UPGRADES_DUMMY_PROPERTY
+};
+static Upgrades* upgrades_new (void);
+static Upgrades* upgrades_construct (GType object_type);
+static void upgrades_add (Upgrades* self, UpgradeTask* task);
+MimicsRemovalTask* mimics_removal_task_new (void);
+MimicsRemovalTask* mimics_removal_task_construct (GType object_type);
+GType mimics_removal_task_get_type (void) G_GNUC_CONST;
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+gboolean application_get_raw_thumbs_fix_required (Application* self);
+FixupRawThumbnailsTask* fixup_raw_thumbnails_task_new (void);
+FixupRawThumbnailsTask* fixup_raw_thumbnails_task_construct (GType object_type);
+GType fixup_raw_thumbnails_task_get_type (void) G_GNUC_CONST;
+void upgrades_init (void);
+Upgrades* upgrades_get_instance (void);
+guint64 upgrades_get_step_count (Upgrades* self);
+void upgrades_execute (Upgrades* self, ProgressMonitor monitor, void* monitor_target);
+void upgrade_task_execute (UpgradeTask* self, ProgressMonitor monitor, void* monitor_target);
+guint64 upgrade_task_get_step_count (UpgradeTask* self);
+static void upgrades_finalize (Upgrades* obj);
+#define MIMICS_REMOVAL_TASK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MIMICS_REMOVAL_TASK, MimicsRemovalTaskPrivate))
+enum {
+ MIMICS_REMOVAL_TASK_DUMMY_PROPERTY
+};
+GFile* app_dirs_get_data_dir (void);
+static guint64 mimics_removal_task_real_get_step_count (UpgradeTask* base);
+guint64 count_files_in_directory (GFile* dir, GError** error);
+static void mimics_removal_task_real_execute (UpgradeTask* base, ProgressMonitor monitor, void* monitor_target);
+void delete_all_files (GFile* dir, GeeSet* exceptions, ProgressMonitor monitor, void* monitor_target, guint64 file_count, GCancellable* cancellable, GError** error);
+static void mimics_removal_task_finalize (GObject* obj);
+enum {
+ FIXUP_RAW_THUMBNAILS_TASK_DUMMY_PROPERTY
+};
+static guint64 fixup_raw_thumbnails_task_real_get_step_count (UpgradeTask* base);
+gpointer photo_row_ref (gpointer instance);
+void photo_row_unref (gpointer instance);
+GParamSpec* param_spec_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_row (GValue* value, gpointer v_object);
+void value_take_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_photo_row (const GValue* value);
+GType photo_row_get_type (void) G_GNUC_CONST;
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType photo_table_get_type (void) G_GNUC_CONST;
+PhotoTable* photo_table_get_instance (void);
+GeeArrayList* photo_table_get_all (PhotoTable* self);
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+gpointer key_value_map_ref (gpointer instance);
+void key_value_map_unref (gpointer instance);
+GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_key_value_map (GValue* value, gpointer v_object);
+void value_take_key_value_map (GValue* value, gpointer v_object);
+gpointer value_get_key_value_map (const GValue* value);
+GType key_value_map_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+static void fixup_raw_thumbnails_task_real_execute (UpgradeTask* base, ProgressMonitor monitor, void* monitor_target);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+void thumbnail_cache_remove (ThumbnailSource* source);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+LibraryPhoto* library_photo_source_collection_fetch (LibraryPhotoSourceCollection* self, PhotoID* photo_id);
+
+
+static Upgrades* upgrades_construct (GType object_type) {
+ Upgrades* self = NULL;
+ MimicsRemovalTask* _tmp0_ = NULL;
+ MimicsRemovalTask* _tmp1_ = NULL;
+ Application* _tmp2_ = NULL;
+ Application* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 15 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = (Upgrades*) g_type_create_instance (object_type);
+#line 17 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = mimics_removal_task_new ();
+#line 17 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = _tmp0_;
+#line 17 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_add (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_UPGRADE_TASK, UpgradeTask));
+#line 17 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (_tmp1_);
+#line 19 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = application_get_instance ();
+#line 19 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp3_ = _tmp2_;
+#line 19 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp4_ = application_get_raw_thumbs_fix_required (_tmp3_);
+#line 19 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp5_ = _tmp4_;
+#line 19 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _application_unref0 (_tmp3_);
+#line 19 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (_tmp5_) {
+#line 606 "Upgrades.c"
+ FixupRawThumbnailsTask* _tmp6_ = NULL;
+ FixupRawThumbnailsTask* _tmp7_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp6_ = fixup_raw_thumbnails_task_new ();
+#line 20 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp7_ = _tmp6_;
+#line 20 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_add (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_UPGRADE_TASK, UpgradeTask));
+#line 20 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (_tmp7_);
+#line 617 "Upgrades.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return self;
+#line 621 "Upgrades.c"
+}
+
+
+static Upgrades* upgrades_new (void) {
+#line 15 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return upgrades_construct (TYPE_UPGRADES);
+#line 628 "Upgrades.c"
+}
+
+
+void upgrades_init (void) {
+ Upgrades* _tmp0_ = NULL;
+ Upgrades* _tmp1_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = upgrades_instance;
+#line 25 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _vala_assert (_tmp0_ == NULL, "instance == null");
+#line 26 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = upgrades_new ();
+#line 26 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _upgrades_unref0 (upgrades_instance);
+#line 26 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_instance = _tmp1_;
+#line 645 "Upgrades.c"
+}
+
+
+static gpointer _upgrades_ref0 (gpointer self) {
+#line 30 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return self ? upgrades_ref (self) : NULL;
+#line 652 "Upgrades.c"
+}
+
+
+Upgrades* upgrades_get_instance (void) {
+ Upgrades* result = NULL;
+ Upgrades* _tmp0_ = NULL;
+ Upgrades* _tmp1_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = upgrades_instance;
+#line 30 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = _upgrades_ref0 (_tmp0_);
+#line 30 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ result = _tmp1_;
+#line 30 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return result;
+#line 668 "Upgrades.c"
+}
+
+
+guint64 upgrades_get_step_count (Upgrades* self) {
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+#line 34 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_val_if_fail (IS_UPGRADES (self), 0ULL);
+#line 35 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = self->priv->total_steps;
+#line 35 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ result = _tmp0_;
+#line 35 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return result;
+#line 683 "Upgrades.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 690 "Upgrades.c"
+}
+
+
+void upgrades_execute (Upgrades* self, ProgressMonitor monitor, void* monitor_target) {
+#line 39 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (IS_UPGRADES (self));
+#line 697 "Upgrades.c"
+ {
+ GeeLinkedList* _task_list = NULL;
+ GeeLinkedList* _tmp0_ = NULL;
+ GeeLinkedList* _tmp1_ = NULL;
+ gint _task_size = 0;
+ GeeLinkedList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _task_index = 0;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = self->priv->task_list;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _task_list = _tmp1_;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = _task_list;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp4_ = _tmp3_;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _task_size = _tmp4_;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _task_index = -1;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ while (TRUE) {
+#line 725 "Upgrades.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ UpgradeTask* task = NULL;
+ GeeLinkedList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ UpgradeTask* _tmp11_ = NULL;
+ ProgressMonitor _tmp12_ = NULL;
+ void* _tmp12__target = NULL;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp5_ = _task_index;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _task_index = _tmp5_ + 1;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp6_ = _task_index;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp7_ = _task_size;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ break;
+#line 748 "Upgrades.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp8_ = _task_list;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp9_ = _task_index;
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp10_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp9_);
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ task = (UpgradeTask*) _tmp10_;
+#line 41 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp11_ = task;
+#line 41 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp12_ = monitor;
+#line 41 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp12__target = monitor_target;
+#line 41 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrade_task_execute (_tmp11_, _tmp12_, _tmp12__target);
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (task);
+#line 768 "Upgrades.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (_task_list);
+#line 772 "Upgrades.c"
+ }
+}
+
+
+static void upgrades_add (Upgrades* self, UpgradeTask* task) {
+ guint64 _tmp0_ = 0ULL;
+ UpgradeTask* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ GeeLinkedList* _tmp3_ = NULL;
+ UpgradeTask* _tmp4_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (IS_UPGRADES (self));
+#line 44 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (IS_UPGRADE_TASK (task));
+#line 45 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = self->priv->total_steps;
+#line 45 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = task;
+#line 45 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = upgrade_task_get_step_count (_tmp1_);
+#line 45 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv->total_steps = _tmp0_ + _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp3_ = self->priv->task_list;
+#line 46 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp4_ = task;
+#line 46 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 801 "Upgrades.c"
+}
+
+
+static void value_upgrades_init (GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ value->data[0].v_pointer = NULL;
+#line 808 "Upgrades.c"
+}
+
+
+static void value_upgrades_free_value (GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (value->data[0].v_pointer) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_unref (value->data[0].v_pointer);
+#line 817 "Upgrades.c"
+ }
+}
+
+
+static void value_upgrades_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (src_value->data[0].v_pointer) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ dest_value->data[0].v_pointer = upgrades_ref (src_value->data[0].v_pointer);
+#line 827 "Upgrades.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 831 "Upgrades.c"
+ }
+}
+
+
+static gpointer value_upgrades_peek_pointer (const GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return value->data[0].v_pointer;
+#line 839 "Upgrades.c"
+}
+
+
+static gchar* value_upgrades_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (collect_values[0].v_pointer) {
+#line 846 "Upgrades.c"
+ Upgrades* object;
+ object = collect_values[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 853 "Upgrades.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 857 "Upgrades.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ value->data[0].v_pointer = upgrades_ref (object);
+#line 861 "Upgrades.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ value->data[0].v_pointer = NULL;
+#line 865 "Upgrades.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return NULL;
+#line 869 "Upgrades.c"
+}
+
+
+static gchar* value_upgrades_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Upgrades** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (!object_p) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 880 "Upgrades.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (!value->data[0].v_pointer) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ *object_p = NULL;
+#line 886 "Upgrades.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ *object_p = value->data[0].v_pointer;
+#line 890 "Upgrades.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ *object_p = upgrades_ref (value->data[0].v_pointer);
+#line 894 "Upgrades.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return NULL;
+#line 898 "Upgrades.c"
+}
+
+
+GParamSpec* param_spec_upgrades (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecUpgrades* spec;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_UPGRADES), NULL);
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return G_PARAM_SPEC (spec);
+#line 912 "Upgrades.c"
+}
+
+
+gpointer value_get_upgrades (const GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_UPGRADES), NULL);
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return value->data[0].v_pointer;
+#line 921 "Upgrades.c"
+}
+
+
+void value_set_upgrades (GValue* value, gpointer v_object) {
+ Upgrades* old;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_UPGRADES));
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ old = value->data[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (v_object) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_UPGRADES));
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ value->data[0].v_pointer = v_object;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_ref (value->data[0].v_pointer);
+#line 941 "Upgrades.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ value->data[0].v_pointer = NULL;
+#line 945 "Upgrades.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (old) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_unref (old);
+#line 951 "Upgrades.c"
+ }
+}
+
+
+void value_take_upgrades (GValue* value, gpointer v_object) {
+ Upgrades* old;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_UPGRADES));
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ old = value->data[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (v_object) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_UPGRADES));
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ value->data[0].v_pointer = v_object;
+#line 970 "Upgrades.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ value->data[0].v_pointer = NULL;
+#line 974 "Upgrades.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (old) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_unref (old);
+#line 980 "Upgrades.c"
+ }
+}
+
+
+static void upgrades_class_init (UpgradesClass * klass) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ upgrades_parent_class = g_type_class_peek_parent (klass);
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ ((UpgradesClass *) klass)->finalize = upgrades_finalize;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_type_class_add_private (klass, sizeof (UpgradesPrivate));
+#line 992 "Upgrades.c"
+}
+
+
+static void upgrades_instance_init (Upgrades * self) {
+ GeeLinkedList* _tmp0_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv = UPGRADES_GET_PRIVATE (self);
+#line 12 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv->total_steps = (guint64) 0;
+#line 13 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = gee_linked_list_new (TYPE_UPGRADE_TASK, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv->task_list = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->ref_count = 1;
+#line 1008 "Upgrades.c"
+}
+
+
+static void upgrades_finalize (Upgrades* obj) {
+ Upgrades * self;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_UPGRADES, Upgrades);
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_signal_handlers_destroy (self);
+#line 13 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (self->priv->task_list);
+#line 1020 "Upgrades.c"
+}
+
+
+GType upgrades_get_type (void) {
+ static volatile gsize upgrades_type_id__volatile = 0;
+ if (g_once_init_enter (&upgrades_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_upgrades_init, value_upgrades_free_value, value_upgrades_copy_value, value_upgrades_peek_pointer, "p", value_upgrades_collect_value, "p", value_upgrades_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (UpgradesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) upgrades_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Upgrades), 0, (GInstanceInitFunc) upgrades_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType upgrades_type_id;
+ upgrades_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Upgrades", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&upgrades_type_id__volatile, upgrades_type_id);
+ }
+ return upgrades_type_id__volatile;
+}
+
+
+gpointer upgrades_ref (gpointer instance) {
+ Upgrades* self;
+ self = instance;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return instance;
+#line 1045 "Upgrades.c"
+}
+
+
+void upgrades_unref (gpointer instance) {
+ Upgrades* self;
+ self = instance;
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ UPGRADES_GET_CLASS (self)->finalize (self);
+#line 10 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1058 "Upgrades.c"
+ }
+}
+
+
+guint64 upgrade_task_get_step_count (UpgradeTask* self) {
+#line 55 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_val_if_fail (IS_UPGRADE_TASK (self), 0ULL);
+#line 55 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return UPGRADE_TASK_GET_INTERFACE (self)->get_step_count (self);
+#line 1068 "Upgrades.c"
+}
+
+
+void upgrade_task_execute (UpgradeTask* self, ProgressMonitor monitor, void* monitor_target) {
+#line 60 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_return_if_fail (IS_UPGRADE_TASK (self));
+#line 60 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ UPGRADE_TASK_GET_INTERFACE (self)->execute (self, monitor, monitor_target);
+#line 1077 "Upgrades.c"
+}
+
+
+static void upgrade_task_base_init (UpgradeTaskIface * iface) {
+#line 53 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ static gboolean initialized = FALSE;
+#line 53 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (!initialized) {
+#line 53 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ initialized = TRUE;
+#line 1088 "Upgrades.c"
+ }
+}
+
+
+GType upgrade_task_get_type (void) {
+ static volatile gsize upgrade_task_type_id__volatile = 0;
+ if (g_once_init_enter (&upgrade_task_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (UpgradeTaskIface), (GBaseInitFunc) upgrade_task_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType upgrade_task_type_id;
+ upgrade_task_type_id = g_type_register_static (G_TYPE_INTERFACE, "UpgradeTask", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (upgrade_task_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&upgrade_task_type_id__volatile, upgrade_task_type_id);
+ }
+ return upgrade_task_type_id__volatile;
+}
+
+
+static guint64 mimics_removal_task_real_get_step_count (UpgradeTask* base) {
+ MimicsRemovalTask * self;
+ guint64 result = 0ULL;
+ guint64 _tmp5_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MIMICS_REMOVAL_TASK, MimicsRemovalTask);
+#line 1113 "Upgrades.c"
+ {
+ guint64 _tmp0_ = 0ULL;
+ GFile* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+#line 73 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = self->priv->mimic_dir;
+#line 73 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = count_files_in_directory (_tmp1_, &_inner_error_);
+#line 73 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = _tmp2_;
+#line 73 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1126 "Upgrades.c"
+ goto __catch581_g_error;
+ }
+#line 73 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv->num_mimics = _tmp0_;
+#line 1131 "Upgrades.c"
+ }
+ goto __finally581;
+ __catch581_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ e = _inner_error_;
+#line 72 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _inner_error_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp3_ = e;
+#line 75 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp4_ = _tmp3_->message;
+#line 75 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_debug ("Upgrades.vala:75: Error on deleting mimics: %s", _tmp4_);
+#line 72 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_error_free0 (e);
+#line 1151 "Upgrades.c"
+ }
+ __finally581:
+#line 72 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 72 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 72 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_clear_error (&_inner_error_);
+#line 72 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return 0ULL;
+#line 1162 "Upgrades.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp5_ = self->priv->num_mimics;
+#line 77 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ result = _tmp5_;
+#line 77 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return result;
+#line 1170 "Upgrades.c"
+}
+
+
+static void mimics_removal_task_real_execute (UpgradeTask* base, ProgressMonitor monitor, void* monitor_target) {
+ MimicsRemovalTask * self;
+ GError * _inner_error_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_MIMICS_REMOVAL_TASK, MimicsRemovalTask);
+#line 1179 "Upgrades.c"
+ {
+ GFile* _tmp0_ = NULL;
+ ProgressMonitor _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ guint64 _tmp2_ = 0ULL;
+ GFile* _tmp3_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = self->priv->mimic_dir;
+#line 82 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = monitor;
+#line 82 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1__target = monitor_target;
+#line 82 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = self->priv->num_mimics;
+#line 82 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ delete_all_files (_tmp0_, NULL, _tmp1_, _tmp1__target, _tmp2_, NULL, &_inner_error_);
+#line 82 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1198 "Upgrades.c"
+ goto __catch582_g_error;
+ }
+#line 83 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp3_ = self->priv->mimic_dir;
+#line 83 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_file_delete (_tmp3_, NULL, &_inner_error_);
+#line 83 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1207 "Upgrades.c"
+ goto __catch582_g_error;
+ }
+ }
+ goto __finally582;
+ __catch582_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ e = _inner_error_;
+#line 81 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _inner_error_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp4_ = e;
+#line 85 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp5_ = _tmp4_->message;
+#line 85 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_debug ("Upgrades.vala:85: Could not delete mimics: %s", _tmp5_);
+#line 81 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_error_free0 (e);
+#line 1229 "Upgrades.c"
+ }
+ __finally582:
+#line 81 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 81 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 81 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_clear_error (&_inner_error_);
+#line 81 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return;
+#line 1240 "Upgrades.c"
+ }
+}
+
+
+MimicsRemovalTask* mimics_removal_task_construct (GType object_type) {
+ MimicsRemovalTask * self = NULL;
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = (MimicsRemovalTask*) g_object_new (object_type, NULL);
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return self;
+#line 1251 "Upgrades.c"
+}
+
+
+MimicsRemovalTask* mimics_removal_task_new (void) {
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return mimics_removal_task_construct (TYPE_MIMICS_REMOVAL_TASK);
+#line 1258 "Upgrades.c"
+}
+
+
+static void mimics_removal_task_class_init (MimicsRemovalTaskClass * klass) {
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ mimics_removal_task_parent_class = g_type_class_peek_parent (klass);
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_type_class_add_private (klass, sizeof (MimicsRemovalTaskPrivate));
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ G_OBJECT_CLASS (klass)->finalize = mimics_removal_task_finalize;
+#line 1269 "Upgrades.c"
+}
+
+
+static void mimics_removal_task_upgrade_task_interface_init (UpgradeTaskIface * iface) {
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ mimics_removal_task_upgrade_task_parent_iface = g_type_interface_peek_parent (iface);
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ iface->get_step_count = (guint64 (*)(UpgradeTask*)) mimics_removal_task_real_get_step_count;
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ iface->execute = (void (*)(UpgradeTask*, ProgressMonitor, void*)) mimics_removal_task_real_execute;
+#line 1280 "Upgrades.c"
+}
+
+
+static void mimics_removal_task_instance_init (MimicsRemovalTask * self) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv = MIMICS_REMOVAL_TASK_GET_PRIVATE (self);
+#line 68 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = app_dirs_get_data_dir ();
+#line 68 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = _tmp0_;
+#line 68 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = g_file_get_child (_tmp1_, "mimics");
+#line 68 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv->mimic_dir = _tmp2_;
+#line 68 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (_tmp1_);
+#line 69 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self->priv->num_mimics = (guint64) 0;
+#line 1302 "Upgrades.c"
+}
+
+
+static void mimics_removal_task_finalize (GObject* obj) {
+ MimicsRemovalTask * self;
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MIMICS_REMOVAL_TASK, MimicsRemovalTask);
+#line 68 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (self->priv->mimic_dir);
+#line 66 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ G_OBJECT_CLASS (mimics_removal_task_parent_class)->finalize (obj);
+#line 1314 "Upgrades.c"
+}
+
+
+GType mimics_removal_task_get_type (void) {
+ static volatile gsize mimics_removal_task_type_id__volatile = 0;
+ if (g_once_init_enter (&mimics_removal_task_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MimicsRemovalTaskClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) mimics_removal_task_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MimicsRemovalTask), 0, (GInstanceInitFunc) mimics_removal_task_instance_init, NULL };
+ static const GInterfaceInfo upgrade_task_info = { (GInterfaceInitFunc) mimics_removal_task_upgrade_task_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType mimics_removal_task_type_id;
+ mimics_removal_task_type_id = g_type_register_static (G_TYPE_OBJECT, "MimicsRemovalTask", &g_define_type_info, 0);
+ g_type_add_interface_static (mimics_removal_task_type_id, TYPE_UPGRADE_TASK, &upgrade_task_info);
+ g_once_init_leave (&mimics_removal_task_type_id__volatile, mimics_removal_task_type_id);
+ }
+ return mimics_removal_task_type_id__volatile;
+}
+
+
+static guint64 fixup_raw_thumbnails_task_real_get_step_count (UpgradeTask* base) {
+ FixupRawThumbnailsTask * self;
+ guint64 result = 0ULL;
+ gint num_raw_files = 0;
+#line 94 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FIXUP_RAW_THUMBNAILS_TASK, FixupRawThumbnailsTask);
+#line 95 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ num_raw_files = 0;
+#line 1340 "Upgrades.c"
+ {
+ GeeArrayList* _phr_list = NULL;
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _phr_size = 0;
+ GeeArrayList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _phr_index = 0;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = _tmp0_;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = photo_table_get_all (_tmp1_);
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp3_ = _tmp2_;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _database_table_unref0 (_tmp1_);
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_list = _tmp3_;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp4_ = _phr_list;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp5_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp6_ = _tmp5_;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_size = _tmp6_;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_index = -1;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ while (TRUE) {
+#line 1376 "Upgrades.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ PhotoRow* phr = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ PhotoRow* _tmp13_ = NULL;
+ BackingPhotoRow* _tmp14_ = NULL;
+ PhotoFileFormat _tmp15_ = 0;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp7_ = _phr_index;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_index = _tmp7_ + 1;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp8_ = _phr_index;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp9_ = _phr_size;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ break;
+#line 1399 "Upgrades.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp10_ = _phr_list;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp11_ = _phr_index;
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp12_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp11_);
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ phr = (PhotoRow*) _tmp12_;
+#line 98 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp13_ = phr;
+#line 98 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp14_ = _tmp13_->master;
+#line 98 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp15_ = _tmp14_->file_format;
+#line 98 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (_tmp15_ == PHOTO_FILE_FORMAT_RAW) {
+#line 1417 "Upgrades.c"
+ gint _tmp16_ = 0;
+#line 99 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp16_ = num_raw_files;
+#line 99 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ num_raw_files = _tmp16_ + 1;
+#line 1423 "Upgrades.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _photo_row_unref0 (phr);
+#line 1427 "Upgrades.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (_phr_list);
+#line 1431 "Upgrades.c"
+ }
+#line 101 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ result = (guint64) num_raw_files;
+#line 101 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return result;
+#line 1437 "Upgrades.c"
+}
+
+
+static void fixup_raw_thumbnails_task_real_execute (UpgradeTask* base, ProgressMonitor monitor, void* monitor_target) {
+ FixupRawThumbnailsTask * self;
+#line 104 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FIXUP_RAW_THUMBNAILS_TASK, FixupRawThumbnailsTask);
+#line 105 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ g_debug ("Upgrades.vala:105: Executing thumbnail deletion and fixup");
+#line 1447 "Upgrades.c"
+ {
+ GeeArrayList* _phr_list = NULL;
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _phr_size = 0;
+ GeeArrayList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _phr_index = 0;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp0_ = photo_table_get_instance ();
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp1_ = _tmp0_;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp2_ = photo_table_get_all (_tmp1_);
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp3_ = _tmp2_;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _database_table_unref0 (_tmp1_);
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_list = _tmp3_;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp4_ = _phr_list;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp5_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp6_ = _tmp5_;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_size = _tmp6_;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_index = -1;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ while (TRUE) {
+#line 1483 "Upgrades.c"
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ PhotoRow* phr = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gpointer _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ PhotoRow* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ PhotoFileFormat _tmp16_ = 0;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp7_ = _phr_index;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _phr_index = _tmp7_ + 1;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp8_ = _phr_index;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp9_ = _phr_size;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ break;
+#line 1507 "Upgrades.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp10_ = _phr_list;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp11_ = _phr_index;
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp12_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp11_);
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ phr = (PhotoRow*) _tmp12_;
+#line 108 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp14_ = phr;
+#line 108 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp15_ = _tmp14_->master;
+#line 108 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp16_ = _tmp15_->file_format;
+#line 108 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (_tmp16_ == PHOTO_FILE_FORMAT_RAW) {
+#line 1525 "Upgrades.c"
+ PhotoRow* _tmp17_ = NULL;
+ RawDeveloper _tmp18_ = 0;
+#line 109 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp17_ = phr;
+#line 109 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp18_ = _tmp17_->developer;
+#line 109 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp13_ = _tmp18_ == RAW_DEVELOPER_CAMERA;
+#line 1534 "Upgrades.c"
+ } else {
+#line 108 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp13_ = FALSE;
+#line 1538 "Upgrades.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ if (_tmp13_) {
+#line 1542 "Upgrades.c"
+ LibraryPhotoSourceCollection* _tmp19_ = NULL;
+ PhotoRow* _tmp20_ = NULL;
+ PhotoID _tmp21_ = {0};
+ LibraryPhoto* _tmp22_ = NULL;
+ LibraryPhoto* _tmp23_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp19_ = library_photo_global;
+#line 110 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp20_ = phr;
+#line 110 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp21_ = _tmp20_->photo_id;
+#line 110 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp22_ = library_photo_source_collection_fetch (_tmp19_, &_tmp21_);
+#line 110 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _tmp23_ = _tmp22_;
+#line 110 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ thumbnail_cache_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 110 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (_tmp23_);
+#line 1562 "Upgrades.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _photo_row_unref0 (phr);
+#line 1566 "Upgrades.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ _g_object_unref0 (_phr_list);
+#line 1570 "Upgrades.c"
+ }
+}
+
+
+FixupRawThumbnailsTask* fixup_raw_thumbnails_task_construct (GType object_type) {
+ FixupRawThumbnailsTask * self = NULL;
+#line 93 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ self = (FixupRawThumbnailsTask*) g_object_new (object_type, NULL);
+#line 93 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return self;
+#line 1581 "Upgrades.c"
+}
+
+
+FixupRawThumbnailsTask* fixup_raw_thumbnails_task_new (void) {
+#line 93 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ return fixup_raw_thumbnails_task_construct (TYPE_FIXUP_RAW_THUMBNAILS_TASK);
+#line 1588 "Upgrades.c"
+}
+
+
+static void fixup_raw_thumbnails_task_class_init (FixupRawThumbnailsTaskClass * klass) {
+#line 93 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ fixup_raw_thumbnails_task_parent_class = g_type_class_peek_parent (klass);
+#line 1595 "Upgrades.c"
+}
+
+
+static void fixup_raw_thumbnails_task_upgrade_task_interface_init (UpgradeTaskIface * iface) {
+#line 93 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ fixup_raw_thumbnails_task_upgrade_task_parent_iface = g_type_interface_peek_parent (iface);
+#line 93 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ iface->get_step_count = (guint64 (*)(UpgradeTask*)) fixup_raw_thumbnails_task_real_get_step_count;
+#line 93 "/home/jens/Source/shotwell/src/Upgrades.vala"
+ iface->execute = (void (*)(UpgradeTask*, ProgressMonitor, void*)) fixup_raw_thumbnails_task_real_execute;
+#line 1606 "Upgrades.c"
+}
+
+
+static void fixup_raw_thumbnails_task_instance_init (FixupRawThumbnailsTask * self) {
+}
+
+
+GType fixup_raw_thumbnails_task_get_type (void) {
+ static volatile gsize fixup_raw_thumbnails_task_type_id__volatile = 0;
+ if (g_once_init_enter (&fixup_raw_thumbnails_task_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FixupRawThumbnailsTaskClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fixup_raw_thumbnails_task_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FixupRawThumbnailsTask), 0, (GInstanceInitFunc) fixup_raw_thumbnails_task_instance_init, NULL };
+ static const GInterfaceInfo upgrade_task_info = { (GInterfaceInitFunc) fixup_raw_thumbnails_task_upgrade_task_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType fixup_raw_thumbnails_task_type_id;
+ fixup_raw_thumbnails_task_type_id = g_type_register_static (G_TYPE_OBJECT, "FixupRawThumbnailsTask", &g_define_type_info, 0);
+ g_type_add_interface_static (fixup_raw_thumbnails_task_type_id, TYPE_UPGRADE_TASK, &upgrade_task_info);
+ g_once_init_leave (&fixup_raw_thumbnails_task_type_id__volatile, fixup_raw_thumbnails_task_type_id);
+ }
+ return fixup_raw_thumbnails_task_type_id__volatile;
+}
+
+
+
diff --git a/src/VideoMetadata.c b/src/VideoMetadata.c
new file mode 100644
index 0000000..11c3258
--- /dev/null
+++ b/src/VideoMetadata.c
@@ -0,0 +1,5531 @@
+/* VideoMetadata.c generated by valac 0.32.1, the Vala compiler
+ * generated from VideoMetadata.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <stdio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+typedef struct _MediaMetadataPrivate MediaMetadataPrivate;
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+
+#define TYPE_VIDEO_METADATA (video_metadata_get_type ())
+#define VIDEO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_METADATA, VideoMetadata))
+#define VIDEO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_METADATA, VideoMetadataClass))
+#define IS_VIDEO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_METADATA))
+#define IS_VIDEO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_METADATA))
+#define VIDEO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_METADATA, VideoMetadataClass))
+
+typedef struct _VideoMetadata VideoMetadata;
+typedef struct _VideoMetadataClass VideoMetadataClass;
+typedef struct _VideoMetadataPrivate VideoMetadataPrivate;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_QUICK_TIME_METADATA_LOADER (quick_time_metadata_loader_get_type ())
+#define QUICK_TIME_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoader))
+#define QUICK_TIME_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoaderClass))
+#define IS_QUICK_TIME_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_QUICK_TIME_METADATA_LOADER))
+#define IS_QUICK_TIME_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_QUICK_TIME_METADATA_LOADER))
+#define QUICK_TIME_METADATA_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoaderClass))
+
+typedef struct _QuickTimeMetadataLoader QuickTimeMetadataLoader;
+typedef struct _QuickTimeMetadataLoaderClass QuickTimeMetadataLoaderClass;
+#define _quick_time_metadata_loader_unref0(var) ((var == NULL) ? NULL : (var = (quick_time_metadata_loader_unref (var), NULL)))
+
+#define TYPE_AVI_METADATA_LOADER (avi_metadata_loader_get_type ())
+#define AVI_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AVI_METADATA_LOADER, AVIMetadataLoader))
+#define AVI_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AVI_METADATA_LOADER, AVIMetadataLoaderClass))
+#define IS_AVI_METADATA_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AVI_METADATA_LOADER))
+#define IS_AVI_METADATA_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AVI_METADATA_LOADER))
+#define AVI_METADATA_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AVI_METADATA_LOADER, AVIMetadataLoaderClass))
+
+typedef struct _AVIMetadataLoader AVIMetadataLoader;
+typedef struct _AVIMetadataLoaderClass AVIMetadataLoaderClass;
+#define _avi_metadata_loader_unref0(var) ((var == NULL) ? NULL : (var = (avi_metadata_loader_unref (var), NULL)))
+typedef struct _QuickTimeMetadataLoaderPrivate QuickTimeMetadataLoaderPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_QUICK_TIME_ATOM (quick_time_atom_get_type ())
+#define QUICK_TIME_ATOM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_QUICK_TIME_ATOM, QuickTimeAtom))
+#define QUICK_TIME_ATOM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_QUICK_TIME_ATOM, QuickTimeAtomClass))
+#define IS_QUICK_TIME_ATOM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_QUICK_TIME_ATOM))
+#define IS_QUICK_TIME_ATOM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_QUICK_TIME_ATOM))
+#define QUICK_TIME_ATOM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_QUICK_TIME_ATOM, QuickTimeAtomClass))
+
+typedef struct _QuickTimeAtom QuickTimeAtom;
+typedef struct _QuickTimeAtomClass QuickTimeAtomClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _quick_time_atom_unref0(var) ((var == NULL) ? NULL : (var = (quick_time_atom_unref (var), NULL)))
+typedef struct _ParamSpecQuickTimeMetadataLoader ParamSpecQuickTimeMetadataLoader;
+typedef struct _QuickTimeAtomPrivate QuickTimeAtomPrivate;
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+typedef struct _ParamSpecQuickTimeAtom ParamSpecQuickTimeAtom;
+typedef struct _AVIMetadataLoaderPrivate AVIMetadataLoaderPrivate;
+
+#define TYPE_AVI_CHUNK (avi_chunk_get_type ())
+#define AVI_CHUNK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AVI_CHUNK, AVIChunk))
+#define AVI_CHUNK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AVI_CHUNK, AVIChunkClass))
+#define IS_AVI_CHUNK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AVI_CHUNK))
+#define IS_AVI_CHUNK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AVI_CHUNK))
+#define AVI_CHUNK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AVI_CHUNK, AVIChunkClass))
+
+typedef struct _AVIChunk AVIChunk;
+typedef struct _AVIChunkClass AVIChunkClass;
+#define _avi_chunk_unref0(var) ((var == NULL) ? NULL : (var = (avi_chunk_unref (var), NULL)))
+typedef struct _ParamSpecAVIMetadataLoader ParamSpecAVIMetadataLoader;
+typedef struct _AVIChunkPrivate AVIChunkPrivate;
+typedef struct _ParamSpecAVIChunk ParamSpecAVIChunk;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _MediaMetadata {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MediaMetadataPrivate * priv;
+};
+
+struct _MediaMetadataClass {
+ GTypeClass parent_class;
+ void (*finalize) (MediaMetadata *self);
+ void (*read_from_file) (MediaMetadata* self, GFile* file, GError** error);
+ MetadataDateTime* (*get_creation_date_time) (MediaMetadata* self);
+ gchar* (*get_title) (MediaMetadata* self);
+ gchar* (*get_comment) (MediaMetadata* self);
+};
+
+struct _VideoMetadata {
+ MediaMetadata parent_instance;
+ VideoMetadataPrivate * priv;
+};
+
+struct _VideoMetadataClass {
+ MediaMetadataClass parent_class;
+};
+
+struct _VideoMetadataPrivate {
+ MetadataDateTime* timestamp;
+ gchar* title;
+ gchar* comment;
+};
+
+struct _QuickTimeMetadataLoader {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ QuickTimeMetadataLoaderPrivate * priv;
+};
+
+struct _QuickTimeMetadataLoaderClass {
+ GTypeClass parent_class;
+ void (*finalize) (QuickTimeMetadataLoader *self);
+};
+
+struct _QuickTimeMetadataLoaderPrivate {
+ GFile* file;
+};
+
+struct _ParamSpecQuickTimeMetadataLoader {
+ GParamSpec parent_instance;
+};
+
+struct _QuickTimeAtom {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ QuickTimeAtomPrivate * priv;
+};
+
+struct _QuickTimeAtomClass {
+ GTypeClass parent_class;
+ void (*finalize) (QuickTimeAtom *self);
+};
+
+struct _QuickTimeAtomPrivate {
+ GFile* file;
+ gchar* section_name;
+ guint64 section_size;
+ guint64 section_offset;
+ GDataInputStream* input;
+ QuickTimeAtom* parent;
+};
+
+struct _ParamSpecQuickTimeAtom {
+ GParamSpec parent_instance;
+};
+
+struct _AVIMetadataLoader {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AVIMetadataLoaderPrivate * priv;
+};
+
+struct _AVIMetadataLoaderClass {
+ GTypeClass parent_class;
+ void (*finalize) (AVIMetadataLoader *self);
+};
+
+struct _AVIMetadataLoaderPrivate {
+ GFile* file;
+};
+
+struct _ParamSpecAVIMetadataLoader {
+ GParamSpec parent_instance;
+};
+
+struct _AVIChunk {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AVIChunkPrivate * priv;
+};
+
+struct _AVIChunkClass {
+ GTypeClass parent_class;
+ void (*finalize) (AVIChunk *self);
+};
+
+struct _AVIChunkPrivate {
+ GFile* file;
+ gchar* section_name;
+ guint64 section_size;
+ guint64 section_offset;
+ GDataInputStream* input;
+ AVIChunk* parent;
+};
+
+struct _ParamSpecAVIChunk {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer video_metadata_parent_class = NULL;
+static gpointer quick_time_metadata_loader_parent_class = NULL;
+static gpointer quick_time_atom_parent_class = NULL;
+static gpointer avi_metadata_loader_parent_class = NULL;
+static gpointer avi_chunk_parent_class = NULL;
+
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+GType video_metadata_get_type (void) G_GNUC_CONST;
+#define VIDEO_METADATA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_VIDEO_METADATA, VideoMetadataPrivate))
+enum {
+ VIDEO_METADATA_DUMMY_PROPERTY
+};
+VideoMetadata* video_metadata_new (void);
+VideoMetadata* video_metadata_construct (GType object_type);
+MediaMetadata* media_metadata_construct (GType object_type);
+static void video_metadata_real_read_from_file (MediaMetadata* base, GFile* file, GError** error);
+gpointer quick_time_metadata_loader_ref (gpointer instance);
+void quick_time_metadata_loader_unref (gpointer instance);
+GParamSpec* param_spec_quick_time_metadata_loader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_quick_time_metadata_loader (GValue* value, gpointer v_object);
+void value_take_quick_time_metadata_loader (GValue* value, gpointer v_object);
+gpointer value_get_quick_time_metadata_loader (const GValue* value);
+GType quick_time_metadata_loader_get_type (void) G_GNUC_CONST;
+QuickTimeMetadataLoader* quick_time_metadata_loader_new (GFile* file);
+QuickTimeMetadataLoader* quick_time_metadata_loader_construct (GType object_type, GFile* file);
+gboolean quick_time_metadata_loader_is_supported (QuickTimeMetadataLoader* self);
+MetadataDateTime* quick_time_metadata_loader_get_creation_date_time (QuickTimeMetadataLoader* self);
+gchar* quick_time_metadata_loader_get_title (QuickTimeMetadataLoader* self);
+gpointer avi_metadata_loader_ref (gpointer instance);
+void avi_metadata_loader_unref (gpointer instance);
+GParamSpec* param_spec_avi_metadata_loader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_avi_metadata_loader (GValue* value, gpointer v_object);
+void value_take_avi_metadata_loader (GValue* value, gpointer v_object);
+gpointer value_get_avi_metadata_loader (const GValue* value);
+GType avi_metadata_loader_get_type (void) G_GNUC_CONST;
+AVIMetadataLoader* avi_metadata_loader_new (GFile* file);
+AVIMetadataLoader* avi_metadata_loader_construct (GType object_type, GFile* file);
+gboolean avi_metadata_loader_is_supported (AVIMetadataLoader* self);
+MetadataDateTime* avi_metadata_loader_get_creation_date_time (AVIMetadataLoader* self);
+gchar* avi_metadata_loader_get_title (AVIMetadataLoader* self);
+static MetadataDateTime* video_metadata_real_get_creation_date_time (MediaMetadata* base);
+static gchar* video_metadata_real_get_title (MediaMetadata* base);
+static gchar* video_metadata_real_get_comment (MediaMetadata* base);
+static void video_metadata_finalize (MediaMetadata* obj);
+#define QUICK_TIME_METADATA_LOADER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoaderPrivate))
+enum {
+ QUICK_TIME_METADATA_LOADER_DUMMY_PROPERTY
+};
+#define QUICK_TIME_METADATA_LOADER_QUICKTIME_EPOCH_ADJUSTMENT ((time_t) 2082844800)
+static gulong quick_time_metadata_loader_get_creation_date_time_for_quicktime (QuickTimeMetadataLoader* self);
+MetadataDateTime* metadata_date_time_new (time_t timestamp);
+MetadataDateTime* metadata_date_time_construct (GType object_type, time_t timestamp);
+gpointer quick_time_atom_ref (gpointer instance);
+void quick_time_atom_unref (gpointer instance);
+GParamSpec* param_spec_quick_time_atom (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_quick_time_atom (GValue* value, gpointer v_object);
+void value_take_quick_time_atom (GValue* value, gpointer v_object);
+gpointer value_get_quick_time_atom (const GValue* value);
+GType quick_time_atom_get_type (void) G_GNUC_CONST;
+QuickTimeAtom* quick_time_atom_new (GFile* file);
+QuickTimeAtom* quick_time_atom_construct (GType object_type, GFile* file);
+void quick_time_atom_open_file (QuickTimeAtom* self, GError** error);
+void quick_time_atom_read_atom (QuickTimeAtom* self, GError** error);
+gchar* quick_time_atom_get_current_atom_name (QuickTimeAtom* self);
+void quick_time_atom_next_atom (QuickTimeAtom* self, GError** error);
+gboolean quick_time_atom_is_last_atom (QuickTimeAtom* self);
+void quick_time_atom_close_file (QuickTimeAtom* self, GError** error);
+QuickTimeAtom* quick_time_atom_get_first_child_atom (QuickTimeAtom* self);
+guint64 quick_time_atom_section_size_remaining (QuickTimeAtom* self);
+guint32 quick_time_atom_read_uint32 (QuickTimeAtom* self, GError** error);
+static void quick_time_metadata_loader_finalize (QuickTimeMetadataLoader* obj);
+#define QUICK_TIME_ATOM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_QUICK_TIME_ATOM, QuickTimeAtomPrivate))
+enum {
+ QUICK_TIME_ATOM_DUMMY_PROPERTY
+};
+static QuickTimeAtom* quick_time_atom_new_with_input_stream (GDataInputStream* input, QuickTimeAtom* parent);
+static QuickTimeAtom* quick_time_atom_construct_with_input_stream (GType object_type, GDataInputStream* input, QuickTimeAtom* parent);
+static void quick_time_atom_advance_section_offset (QuickTimeAtom* self, guint64 amount);
+guchar quick_time_atom_read_byte (QuickTimeAtom* self, GError** error);
+guint64 quick_time_atom_read_uint64 (QuickTimeAtom* self, GError** error);
+static void quick_time_atom_skip (QuickTimeAtom* self, guint64 skip_amount, GError** error);
+void skip_uint64 (GInputStream* input, guint64 skip_amount, GError** error);
+static void quick_time_atom_finalize (QuickTimeAtom* obj);
+#define AVI_METADATA_LOADER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_AVI_METADATA_LOADER, AVIMetadataLoaderPrivate))
+enum {
+ AVI_METADATA_LOADER_DUMMY_PROPERTY
+};
+#define AVI_METADATA_LOADER_NUMERICAL_DATE_LENGTH 19
+#define AVI_METADATA_LOADER_NIKON_NCTG_TIMESTAMP_MARKER ((guint16) 0x13)
+#define AVI_METADATA_LOADER_MAX_STRD_LENGTH 100
+static gulong avi_metadata_loader_get_creation_date_time_for_avi (AVIMetadataLoader* self);
+gpointer avi_chunk_ref (gpointer instance);
+void avi_chunk_unref (gpointer instance);
+GParamSpec* param_spec_avi_chunk (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_avi_chunk (GValue* value, gpointer v_object);
+void value_take_avi_chunk (GValue* value, gpointer v_object);
+gpointer value_get_avi_chunk (const GValue* value);
+GType avi_chunk_get_type (void) G_GNUC_CONST;
+AVIChunk* avi_chunk_new (GFile* file);
+AVIChunk* avi_chunk_construct (GType object_type, GFile* file);
+void avi_chunk_open_file (AVIChunk* self, GError** error);
+void avi_chunk_read_chunk (AVIChunk* self, GError** error);
+gchar* avi_chunk_get_current_chunk_name (AVIChunk* self);
+gchar* avi_chunk_read_name (AVIChunk* self, GError** error);
+void avi_chunk_close_file (AVIChunk* self, GError** error);
+static gchar* avi_metadata_loader_read_nikon_nctg_tag (AVIMetadataLoader* self, AVIChunk* chunk, GError** error);
+guint64 avi_chunk_section_size_remaining (AVIChunk* self);
+guint16 avi_chunk_read_uint16 (AVIChunk* self, GError** error);
+void avi_chunk_skip (AVIChunk* self, guint64 skip_amount, GError** error);
+guchar avi_chunk_read_byte (AVIChunk* self, GError** error);
+static gchar* avi_metadata_loader_read_fuji_strd_tag (AVIMetadataLoader* self, AVIChunk* chunk, GError** error);
+static gchar* avi_metadata_loader_read_section (AVIMetadataLoader* self, AVIChunk* chunk, GError** error);
+gchar* avi_chunk_section_to_string (AVIChunk* self, GError** error);
+AVIChunk* avi_chunk_get_first_child_chunk (AVIChunk* self);
+gboolean avi_chunk_is_last_chunk (AVIChunk* self);
+void avi_chunk_next_chunk (AVIChunk* self, GError** error);
+static gulong avi_metadata_loader_parse_date (AVIMetadataLoader* self, const gchar* sdate);
+static GDateMonth avi_metadata_loader_month_from_string (AVIMetadataLoader* self, const gchar* s);
+void avi_chunk_nonsection_skip (AVIChunk* self, guint64 skip_amount, GError** error);
+static void avi_metadata_loader_finalize (AVIMetadataLoader* obj);
+#define AVI_CHUNK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_AVI_CHUNK, AVIChunkPrivate))
+enum {
+ AVI_CHUNK_DUMMY_PROPERTY
+};
+#define AVI_CHUNK_MAX_STRING_TO_SECTION_LENGTH 1024
+static AVIChunk* avi_chunk_new_with_input_stream (GDataInputStream* input, AVIChunk* parent);
+static AVIChunk* avi_chunk_construct_with_input_stream (GType object_type, GDataInputStream* input, AVIChunk* parent);
+static void avi_chunk_advance_section_offset (AVIChunk* self, guint64 amount);
+static void avi_chunk_finalize (AVIChunk* obj);
+
+
+VideoMetadata* video_metadata_construct (GType object_type) {
+ VideoMetadata* self = NULL;
+#line 13 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = (VideoMetadata*) media_metadata_construct (object_type);
+#line 13 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self;
+#line 381 "VideoMetadata.c"
+}
+
+
+VideoMetadata* video_metadata_new (void) {
+#line 13 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return video_metadata_construct (TYPE_VIDEO_METADATA);
+#line 388 "VideoMetadata.c"
+}
+
+
+static void video_metadata_real_read_from_file (MediaMetadata* base, GFile* file, GError** error) {
+ VideoMetadata * self;
+ QuickTimeMetadataLoader* quicktime = NULL;
+ GFile* _tmp0_ = NULL;
+ QuickTimeMetadataLoader* _tmp1_ = NULL;
+ QuickTimeMetadataLoader* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ AVIMetadataLoader* avi = NULL;
+ GFile* _tmp8_ = NULL;
+ AVIMetadataLoader* _tmp9_ = NULL;
+ AVIMetadataLoader* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+ GError* _tmp20_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_METADATA, VideoMetadata);
+#line 19 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 20 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = file;
+#line 20 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = quick_time_metadata_loader_new (_tmp0_);
+#line 20 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quicktime = _tmp1_;
+#line 21 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = quicktime;
+#line 21 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = quick_time_metadata_loader_is_supported (_tmp2_);
+#line 21 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp3_) {
+#line 426 "VideoMetadata.c"
+ QuickTimeMetadataLoader* _tmp4_ = NULL;
+ MetadataDateTime* _tmp5_ = NULL;
+ QuickTimeMetadataLoader* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = quicktime;
+#line 22 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = quick_time_metadata_loader_get_creation_date_time (_tmp4_);
+#line 22 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _metadata_date_time_unref0 (self->priv->timestamp);
+#line 22 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->timestamp = _tmp5_;
+#line 23 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = quicktime;
+#line 23 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = quick_time_metadata_loader_get_title (_tmp6_);
+#line 23 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->title);
+#line 23 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->title = _tmp7_;
+#line 25 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->comment);
+#line 25 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->comment = NULL;
+#line 26 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_metadata_loader_unref0 (quicktime);
+#line 26 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 455 "VideoMetadata.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = file;
+#line 28 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = avi_metadata_loader_new (_tmp8_);
+#line 28 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi = _tmp9_;
+#line 29 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = avi;
+#line 29 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = avi_metadata_loader_is_supported (_tmp10_);
+#line 29 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp11_) {
+#line 469 "VideoMetadata.c"
+ AVIMetadataLoader* _tmp12_ = NULL;
+ MetadataDateTime* _tmp13_ = NULL;
+ AVIMetadataLoader* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = avi;
+#line 30 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = avi_metadata_loader_get_creation_date_time (_tmp12_);
+#line 30 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _metadata_date_time_unref0 (self->priv->timestamp);
+#line 30 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->timestamp = _tmp13_;
+#line 31 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = avi;
+#line 31 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = avi_metadata_loader_get_title (_tmp14_);
+#line 31 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->title);
+#line 31 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->title = _tmp15_;
+#line 32 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->comment);
+#line 32 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->comment = NULL;
+#line 33 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_metadata_loader_unref0 (avi);
+#line 33 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_metadata_loader_unref0 (quicktime);
+#line 33 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 500 "VideoMetadata.c"
+ }
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = file;
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = _tmp17_;
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = g_error_new (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "File %s is not a supported video format", _tmp18_);
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = _tmp19_;
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp18_);
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = _tmp20_;
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_metadata_loader_unref0 (avi);
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_metadata_loader_unref0 (quicktime);
+#line 36 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 524 "VideoMetadata.c"
+}
+
+
+static gpointer _metadata_date_time_ref0 (gpointer self) {
+#line 40 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self ? metadata_date_time_ref (self) : NULL;
+#line 531 "VideoMetadata.c"
+}
+
+
+static MetadataDateTime* video_metadata_real_get_creation_date_time (MediaMetadata* base) {
+ VideoMetadata * self;
+ MetadataDateTime* result = NULL;
+ MetadataDateTime* _tmp0_ = NULL;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_METADATA, VideoMetadata);
+#line 40 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->timestamp;
+#line 40 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _metadata_date_time_ref0 (_tmp0_);
+#line 40 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 40 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 550 "VideoMetadata.c"
+}
+
+
+static gchar* video_metadata_real_get_title (MediaMetadata* base) {
+ VideoMetadata * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_METADATA, VideoMetadata);
+#line 44 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->title;
+#line 44 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 44 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 44 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 569 "VideoMetadata.c"
+}
+
+
+static gchar* video_metadata_real_get_comment (MediaMetadata* base) {
+ VideoMetadata * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_METADATA, VideoMetadata);
+#line 48 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->comment;
+#line 48 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 48 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 588 "VideoMetadata.c"
+}
+
+
+static void video_metadata_class_init (VideoMetadataClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ video_metadata_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((MediaMetadataClass *) klass)->finalize = video_metadata_finalize;
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_class_add_private (klass, sizeof (VideoMetadataPrivate));
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((MediaMetadataClass *) klass)->read_from_file = video_metadata_real_read_from_file;
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_creation_date_time = video_metadata_real_get_creation_date_time;
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_title = video_metadata_real_get_title;
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_comment = video_metadata_real_get_comment;
+#line 607 "VideoMetadata.c"
+}
+
+
+static void video_metadata_instance_init (VideoMetadata * self) {
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv = VIDEO_METADATA_GET_PRIVATE (self);
+#line 9 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->timestamp = NULL;
+#line 10 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->title = NULL;
+#line 11 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->comment = NULL;
+#line 620 "VideoMetadata.c"
+}
+
+
+static void video_metadata_finalize (MediaMetadata* obj) {
+ VideoMetadata * self;
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_METADATA, VideoMetadata);
+#line 9 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _metadata_date_time_unref0 (self->priv->timestamp);
+#line 10 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->title);
+#line 11 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->comment);
+#line 7 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ MEDIA_METADATA_CLASS (video_metadata_parent_class)->finalize (obj);
+#line 636 "VideoMetadata.c"
+}
+
+
+GType video_metadata_get_type (void) {
+ static volatile gsize video_metadata_type_id__volatile = 0;
+ if (g_once_init_enter (&video_metadata_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoMetadataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_metadata_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoMetadata), 0, (GInstanceInitFunc) video_metadata_instance_init, NULL };
+ GType video_metadata_type_id;
+ video_metadata_type_id = g_type_register_static (TYPE_MEDIA_METADATA, "VideoMetadata", &g_define_type_info, 0);
+ g_once_init_leave (&video_metadata_type_id__volatile, video_metadata_type_id);
+ }
+ return video_metadata_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 655 "VideoMetadata.c"
+}
+
+
+QuickTimeMetadataLoader* quick_time_metadata_loader_construct (GType object_type, GFile* file) {
+ QuickTimeMetadataLoader* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 61 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = (QuickTimeMetadataLoader*) g_type_create_instance (object_type);
+#line 62 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = file;
+#line 62 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 62 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 62 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = _tmp1_;
+#line 61 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self;
+#line 677 "VideoMetadata.c"
+}
+
+
+QuickTimeMetadataLoader* quick_time_metadata_loader_new (GFile* file) {
+#line 61 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return quick_time_metadata_loader_construct (TYPE_QUICK_TIME_METADATA_LOADER, file);
+#line 684 "VideoMetadata.c"
+}
+
+
+MetadataDateTime* quick_time_metadata_loader_get_creation_date_time (QuickTimeMetadataLoader* self) {
+ MetadataDateTime* result = NULL;
+ gulong _tmp0_ = 0UL;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_METADATA_LOADER (self), NULL);
+#line 66 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = quick_time_metadata_loader_get_creation_date_time_for_quicktime (self);
+#line 66 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = metadata_date_time_new ((time_t) _tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 66 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 702 "VideoMetadata.c"
+}
+
+
+gchar* quick_time_metadata_loader_get_title (QuickTimeMetadataLoader* self) {
+ gchar* result = NULL;
+#line 69 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_METADATA_LOADER (self), NULL);
+#line 71 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = NULL;
+#line 71 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 714 "VideoMetadata.c"
+}
+
+
+gboolean quick_time_metadata_loader_is_supported (QuickTimeMetadataLoader* self) {
+ gboolean result = FALSE;
+ QuickTimeAtom* test = NULL;
+ GFile* _tmp0_ = NULL;
+ QuickTimeAtom* _tmp1_ = NULL;
+ gboolean ret = FALSE;
+ GError * _inner_error_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_METADATA_LOADER (self), FALSE);
+#line 76 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->file;
+#line 76 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = quick_time_atom_new (_tmp0_);
+#line 76 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ test = _tmp1_;
+#line 78 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ret = FALSE;
+#line 735 "VideoMetadata.c"
+ {
+ QuickTimeAtom* _tmp2_ = NULL;
+ QuickTimeAtom* _tmp3_ = NULL;
+ QuickTimeAtom* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = test;
+#line 80 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_open_file (_tmp2_, &_inner_error_);
+#line 80 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 749 "VideoMetadata.c"
+ goto __catch563_g_error;
+ }
+#line 81 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = test;
+#line 81 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_read_atom (_tmp3_, &_inner_error_);
+#line 81 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 758 "VideoMetadata.c"
+ goto __catch563_g_error;
+ }
+#line 84 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = test;
+#line 84 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = quick_time_atom_get_current_atom_name (_tmp4_);
+#line 84 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = _tmp5_;
+#line 84 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = g_strcmp0 ("ftyp", _tmp6_) == 0;
+#line 84 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp6_);
+#line 84 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp7_) {
+#line 85 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ret = TRUE;
+#line 775 "VideoMetadata.c"
+ } else {
+#line 90 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 779 "VideoMetadata.c"
+ QuickTimeAtom* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ QuickTimeAtom* _tmp12_ = NULL;
+ QuickTimeAtom* _tmp13_ = NULL;
+ QuickTimeAtom* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 91 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = test;
+#line 91 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = quick_time_atom_get_current_atom_name (_tmp8_);
+#line 91 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = _tmp9_;
+#line 91 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = g_strcmp0 ("moov", _tmp10_) == 0;
+#line 91 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp10_);
+#line 91 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp11_) {
+#line 92 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ret = TRUE;
+#line 93 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 804 "VideoMetadata.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = test;
+#line 95 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_next_atom (_tmp12_, &_inner_error_);
+#line 95 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 812 "VideoMetadata.c"
+ goto __catch563_g_error;
+ }
+#line 96 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = test;
+#line 96 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_read_atom (_tmp13_, &_inner_error_);
+#line 96 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 821 "VideoMetadata.c"
+ goto __catch563_g_error;
+ }
+#line 97 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = test;
+#line 97 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = quick_time_atom_is_last_atom (_tmp14_);
+#line 97 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp15_) {
+#line 98 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 832 "VideoMetadata.c"
+ }
+ }
+ }
+ }
+ goto __finally563;
+ __catch563_g_error:
+ {
+ GError* e = NULL;
+ GFile* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = self->priv->file;
+#line 103 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = g_file_get_path (_tmp16_);
+#line 103 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = _tmp17_;
+#line 103 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = e;
+#line 103 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = _tmp19_->message;
+#line 103 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:103: Error while testing for QuickTime file for %s:" \
+" %s", _tmp18_, _tmp20_);
+#line 103 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp18_);
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 866 "VideoMetadata.c"
+ }
+ __finally563:
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (test);
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 79 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return FALSE;
+#line 879 "VideoMetadata.c"
+ }
+ {
+ QuickTimeAtom* _tmp21_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = test;
+#line 107 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_close_file (_tmp21_, &_inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 889 "VideoMetadata.c"
+ goto __catch564_g_error;
+ }
+ }
+ goto __finally564;
+ __catch564_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp22_ = e;
+#line 109 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp23_ = _tmp22_->message;
+#line 109 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:109: Error while closing Quicktime file: %s", _tmp23_);
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 911 "VideoMetadata.c"
+ }
+ __finally564:
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (test);
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 106 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return FALSE;
+#line 924 "VideoMetadata.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = ret;
+#line 111 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (test);
+#line 111 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 932 "VideoMetadata.c"
+}
+
+
+static gulong quick_time_metadata_loader_get_creation_date_time_for_quicktime (QuickTimeMetadataLoader* self) {
+ gulong result = 0UL;
+ QuickTimeAtom* test = NULL;
+ GFile* _tmp0_ = NULL;
+ QuickTimeAtom* _tmp1_ = NULL;
+ time_t timestamp = 0;
+ time_t _tmp35_ = 0;
+ time_t _tmp37_ = 0;
+ GError * _inner_error_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_METADATA_LOADER (self), 0UL);
+#line 115 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->file;
+#line 115 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = quick_time_atom_new (_tmp0_);
+#line 115 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ test = _tmp1_;
+#line 116 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ timestamp = (time_t) 0;
+#line 955 "VideoMetadata.c"
+ {
+ QuickTimeAtom* _tmp2_ = NULL;
+ gboolean done = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = test;
+#line 119 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_open_file (_tmp2_, &_inner_error_);
+#line 119 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 965 "VideoMetadata.c"
+ goto __catch565_g_error;
+ }
+#line 120 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ done = FALSE;
+#line 121 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 972 "VideoMetadata.c"
+ gboolean _tmp3_ = FALSE;
+ QuickTimeAtom* _tmp4_ = NULL;
+ QuickTimeAtom* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ QuickTimeAtom* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ QuickTimeAtom* _tmp29_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = done;
+#line 121 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!(!_tmp3_)) {
+#line 121 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 988 "VideoMetadata.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = test;
+#line 123 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_read_atom (_tmp4_, &_inner_error_);
+#line 123 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 996 "VideoMetadata.c"
+ goto __catch565_g_error;
+ }
+#line 124 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = test;
+#line 124 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = quick_time_atom_is_last_atom (_tmp5_);
+#line 124 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp6_) {
+#line 124 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 1007 "VideoMetadata.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = test;
+#line 125 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = quick_time_atom_get_current_atom_name (_tmp7_);
+#line 125 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = _tmp8_;
+#line 125 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = g_strcmp0 ("moov", _tmp9_) == 0;
+#line 125 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp9_);
+#line 125 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp10_) {
+#line 1021 "VideoMetadata.c"
+ QuickTimeAtom* child = NULL;
+ QuickTimeAtom* _tmp11_ = NULL;
+ QuickTimeAtom* _tmp12_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = test;
+#line 126 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = quick_time_atom_get_first_child_atom (_tmp11_);
+#line 126 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ child = _tmp12_;
+#line 127 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 1033 "VideoMetadata.c"
+ gboolean _tmp13_ = FALSE;
+ QuickTimeAtom* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ QuickTimeAtom* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ QuickTimeAtom* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ QuickTimeAtom* _tmp28_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = done;
+#line 127 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!(!_tmp13_)) {
+#line 127 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 1050 "VideoMetadata.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = child;
+#line 129 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_read_atom (_tmp14_, &_inner_error_);
+#line 129 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 129 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (child);
+#line 1060 "VideoMetadata.c"
+ goto __catch565_g_error;
+ }
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = child;
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = quick_time_atom_is_last_atom (_tmp16_);
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp17_) {
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = TRUE;
+#line 1071 "VideoMetadata.c"
+ } else {
+ QuickTimeAtom* _tmp18_ = NULL;
+ guint64 _tmp19_ = 0ULL;
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = child;
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = quick_time_atom_section_size_remaining (_tmp18_);
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = ((guint64) 0) == _tmp19_;
+#line 1081 "VideoMetadata.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp15_) {
+#line 131 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ done = TRUE;
+#line 132 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 1089 "VideoMetadata.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = child;
+#line 135 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = quick_time_atom_get_current_atom_name (_tmp20_);
+#line 135 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp22_ = _tmp21_;
+#line 135 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp23_ = g_strcmp0 ("mvhd", _tmp22_) == 0;
+#line 135 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp22_);
+#line 135 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp23_) {
+#line 1103 "VideoMetadata.c"
+ QuickTimeAtom* _tmp24_ = NULL;
+ guint32 _tmp25_ = 0U;
+ QuickTimeAtom* _tmp26_ = NULL;
+ guint32 _tmp27_ = 0U;
+#line 137 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp24_ = child;
+#line 137 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_read_uint32 (_tmp24_, &_inner_error_);
+#line 137 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 137 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (child);
+#line 1116 "VideoMetadata.c"
+ goto __catch565_g_error;
+ }
+#line 139 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp26_ = child;
+#line 139 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp27_ = quick_time_atom_read_uint32 (_tmp26_, &_inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp25_ = _tmp27_;
+#line 139 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 139 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (child);
+#line 1129 "VideoMetadata.c"
+ goto __catch565_g_error;
+ }
+#line 139 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ timestamp = _tmp25_ - QUICK_TIME_METADATA_LOADER_QUICKTIME_EPOCH_ADJUSTMENT;
+#line 140 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ done = TRUE;
+#line 141 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 1138 "VideoMetadata.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp28_ = child;
+#line 143 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_next_atom (_tmp28_, &_inner_error_);
+#line 143 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 143 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (child);
+#line 1148 "VideoMetadata.c"
+ goto __catch565_g_error;
+ }
+ }
+#line 125 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (child);
+#line 1154 "VideoMetadata.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp29_ = test;
+#line 146 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_next_atom (_tmp29_, &_inner_error_);
+#line 146 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1162 "VideoMetadata.c"
+ goto __catch565_g_error;
+ }
+ }
+ }
+ goto __finally565;
+ __catch565_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp30_ = e;
+#line 149 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp31_ = _tmp30_->message;
+#line 149 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:149: Error while testing for QuickTime file: %s", _tmp31_);
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 1185 "VideoMetadata.c"
+ }
+ __finally565:
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (test);
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return 0UL;
+#line 1198 "VideoMetadata.c"
+ }
+ {
+ QuickTimeAtom* _tmp32_ = NULL;
+#line 153 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp32_ = test;
+#line 153 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_close_file (_tmp32_, &_inner_error_);
+#line 153 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1208 "VideoMetadata.c"
+ goto __catch566_g_error;
+ }
+ }
+ goto __finally566;
+ __catch566_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 155 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp33_ = e;
+#line 155 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp34_ = _tmp33_->message;
+#line 155 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:155: Error while closing Quicktime file: %s", _tmp34_);
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 1230 "VideoMetadata.c"
+ }
+ __finally566:
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (test);
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 152 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return 0UL;
+#line 1243 "VideoMetadata.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp35_ = timestamp;
+#line 166 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp35_ < ((time_t) 0)) {
+#line 1249 "VideoMetadata.c"
+ time_t _tmp36_ = 0;
+#line 167 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp36_ = timestamp;
+#line 167 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ timestamp = _tmp36_ + QUICK_TIME_METADATA_LOADER_QUICKTIME_EPOCH_ADJUSTMENT;
+#line 1255 "VideoMetadata.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp37_ = timestamp;
+#line 169 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = (gulong) _tmp37_;
+#line 169 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (test);
+#line 169 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 1265 "VideoMetadata.c"
+}
+
+
+static void value_quick_time_metadata_loader_init (GValue* value) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1272 "VideoMetadata.c"
+}
+
+
+static void value_quick_time_metadata_loader_free_value (GValue* value) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_metadata_loader_unref (value->data[0].v_pointer);
+#line 1281 "VideoMetadata.c"
+ }
+}
+
+
+static void value_quick_time_metadata_loader_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = quick_time_metadata_loader_ref (src_value->data[0].v_pointer);
+#line 1291 "VideoMetadata.c"
+ } else {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1295 "VideoMetadata.c"
+ }
+}
+
+
+static gpointer value_quick_time_metadata_loader_peek_pointer (const GValue* value) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 1303 "VideoMetadata.c"
+}
+
+
+static gchar* value_quick_time_metadata_loader_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 1310 "VideoMetadata.c"
+ QuickTimeMetadataLoader* object;
+ object = collect_values[0].v_pointer;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1317 "VideoMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1321 "VideoMetadata.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = quick_time_metadata_loader_ref (object);
+#line 1325 "VideoMetadata.c"
+ } else {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1329 "VideoMetadata.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 1333 "VideoMetadata.c"
+}
+
+
+static gchar* value_quick_time_metadata_loader_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ QuickTimeMetadataLoader** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!object_p) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1344 "VideoMetadata.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = NULL;
+#line 1350 "VideoMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1354 "VideoMetadata.c"
+ } else {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = quick_time_metadata_loader_ref (value->data[0].v_pointer);
+#line 1358 "VideoMetadata.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 1362 "VideoMetadata.c"
+}
+
+
+GParamSpec* param_spec_quick_time_metadata_loader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecQuickTimeMetadataLoader* spec;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_QUICK_TIME_METADATA_LOADER), NULL);
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 1376 "VideoMetadata.c"
+}
+
+
+gpointer value_get_quick_time_metadata_loader (const GValue* value) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_QUICK_TIME_METADATA_LOADER), NULL);
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 1385 "VideoMetadata.c"
+}
+
+
+void value_set_quick_time_metadata_loader (GValue* value, gpointer v_object) {
+ QuickTimeMetadataLoader* old;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_QUICK_TIME_METADATA_LOADER));
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_QUICK_TIME_METADATA_LOADER));
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_metadata_loader_ref (value->data[0].v_pointer);
+#line 1405 "VideoMetadata.c"
+ } else {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1409 "VideoMetadata.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_metadata_loader_unref (old);
+#line 1415 "VideoMetadata.c"
+ }
+}
+
+
+void value_take_quick_time_metadata_loader (GValue* value, gpointer v_object) {
+ QuickTimeMetadataLoader* old;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_QUICK_TIME_METADATA_LOADER));
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_QUICK_TIME_METADATA_LOADER));
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 1434 "VideoMetadata.c"
+ } else {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1438 "VideoMetadata.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_metadata_loader_unref (old);
+#line 1444 "VideoMetadata.c"
+ }
+}
+
+
+static void quick_time_metadata_loader_class_init (QuickTimeMetadataLoaderClass * klass) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_metadata_loader_parent_class = g_type_class_peek_parent (klass);
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((QuickTimeMetadataLoaderClass *) klass)->finalize = quick_time_metadata_loader_finalize;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_class_add_private (klass, sizeof (QuickTimeMetadataLoaderPrivate));
+#line 1456 "VideoMetadata.c"
+}
+
+
+static void quick_time_metadata_loader_instance_init (QuickTimeMetadataLoader * self) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv = QUICK_TIME_METADATA_LOADER_GET_PRIVATE (self);
+#line 59 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = NULL;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->ref_count = 1;
+#line 1467 "VideoMetadata.c"
+}
+
+
+static void quick_time_metadata_loader_finalize (QuickTimeMetadataLoader* obj) {
+ QuickTimeMetadataLoader * self;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_QUICK_TIME_METADATA_LOADER, QuickTimeMetadataLoader);
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 59 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 1479 "VideoMetadata.c"
+}
+
+
+GType quick_time_metadata_loader_get_type (void) {
+ static volatile gsize quick_time_metadata_loader_type_id__volatile = 0;
+ if (g_once_init_enter (&quick_time_metadata_loader_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_quick_time_metadata_loader_init, value_quick_time_metadata_loader_free_value, value_quick_time_metadata_loader_copy_value, value_quick_time_metadata_loader_peek_pointer, "p", value_quick_time_metadata_loader_collect_value, "p", value_quick_time_metadata_loader_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (QuickTimeMetadataLoaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) quick_time_metadata_loader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (QuickTimeMetadataLoader), 0, (GInstanceInitFunc) quick_time_metadata_loader_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType quick_time_metadata_loader_type_id;
+ quick_time_metadata_loader_type_id = g_type_register_fundamental (g_type_fundamental_next (), "QuickTimeMetadataLoader", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&quick_time_metadata_loader_type_id__volatile, quick_time_metadata_loader_type_id);
+ }
+ return quick_time_metadata_loader_type_id__volatile;
+}
+
+
+gpointer quick_time_metadata_loader_ref (gpointer instance) {
+ QuickTimeMetadataLoader* self;
+ self = instance;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return instance;
+#line 1504 "VideoMetadata.c"
+}
+
+
+void quick_time_metadata_loader_unref (gpointer instance) {
+ QuickTimeMetadataLoader* self;
+ self = instance;
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ QUICK_TIME_METADATA_LOADER_GET_CLASS (self)->finalize (self);
+#line 53 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1517 "VideoMetadata.c"
+ }
+}
+
+
+QuickTimeAtom* quick_time_atom_construct (GType object_type, GFile* file) {
+ QuickTimeAtom* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 181 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 181 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = (QuickTimeAtom*) g_type_create_instance (object_type);
+#line 182 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = file;
+#line 182 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 182 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 182 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = _tmp1_;
+#line 181 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self;
+#line 1540 "VideoMetadata.c"
+}
+
+
+QuickTimeAtom* quick_time_atom_new (GFile* file) {
+#line 181 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return quick_time_atom_construct (TYPE_QUICK_TIME_ATOM, file);
+#line 1547 "VideoMetadata.c"
+}
+
+
+static gpointer _quick_time_atom_ref0 (gpointer self) {
+#line 187 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self ? quick_time_atom_ref (self) : NULL;
+#line 1554 "VideoMetadata.c"
+}
+
+
+static QuickTimeAtom* quick_time_atom_construct_with_input_stream (GType object_type, GDataInputStream* input, QuickTimeAtom* parent) {
+ QuickTimeAtom* self = NULL;
+ GDataInputStream* _tmp0_ = NULL;
+ GDataInputStream* _tmp1_ = NULL;
+ QuickTimeAtom* _tmp2_ = NULL;
+ QuickTimeAtom* _tmp3_ = NULL;
+#line 185 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_IS_DATA_INPUT_STREAM (input), NULL);
+#line 185 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (parent), NULL);
+#line 185 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = (QuickTimeAtom*) g_type_create_instance (object_type);
+#line 186 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = input;
+#line 186 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 186 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 186 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = _tmp1_;
+#line 187 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = parent;
+#line 187 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = _quick_time_atom_ref0 (_tmp2_);
+#line 187 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (self->priv->parent);
+#line 187 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->parent = _tmp3_;
+#line 185 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self;
+#line 1588 "VideoMetadata.c"
+}
+
+
+static QuickTimeAtom* quick_time_atom_new_with_input_stream (GDataInputStream* input, QuickTimeAtom* parent) {
+#line 185 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return quick_time_atom_construct_with_input_stream (TYPE_QUICK_TIME_ATOM, input, parent);
+#line 1595 "VideoMetadata.c"
+}
+
+
+void quick_time_atom_open_file (QuickTimeAtom* self, GError** error) {
+ GFileInputStream* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInputStream* _tmp2_ = NULL;
+ GDataInputStream* _tmp3_ = NULL;
+ GDataInputStream* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_QUICK_TIME_ATOM (self));
+#line 191 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_close_file (self, &_inner_error_);
+#line 191 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 191 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 191 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1617 "VideoMetadata.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->file;
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_file_read (_tmp1_, NULL, &_inner_error_);
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1631 "VideoMetadata.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = g_data_input_stream_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_INPUT_STREAM, GInputStream));
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 192 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = _tmp3_;
+#line 193 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = self->priv->input;
+#line 193 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_data_input_stream_set_byte_order (_tmp4_, G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN);
+#line 194 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) 0;
+#line 195 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = (guint64) 0;
+#line 196 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = g_strdup ("");
+#line 196 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->section_name);
+#line 196 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_name = _tmp5_;
+#line 190 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (_tmp0_);
+#line 1655 "VideoMetadata.c"
+}
+
+
+void quick_time_atom_close_file (QuickTimeAtom* self, GError** error) {
+ GDataInputStream* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_QUICK_TIME_ATOM (self));
+#line 200 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->input;
+#line 200 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (NULL != _tmp0_) {
+#line 1668 "VideoMetadata.c"
+ GDataInputStream* _tmp1_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 201 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_input_stream_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_);
+#line 201 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 201 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 201 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1680 "VideoMetadata.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 202 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = NULL;
+#line 1686 "VideoMetadata.c"
+ }
+}
+
+
+static void quick_time_atom_advance_section_offset (QuickTimeAtom* self, guint64 amount) {
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+ QuickTimeAtom* _tmp2_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_QUICK_TIME_ATOM (self));
+#line 207 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_offset;
+#line 207 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = amount;
+#line 207 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = _tmp0_ + _tmp1_;
+#line 208 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = self->priv->parent;
+#line 208 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (NULL != _tmp2_) {
+#line 1707 "VideoMetadata.c"
+ QuickTimeAtom* _tmp3_ = NULL;
+ guint64 _tmp4_ = 0ULL;
+#line 209 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = self->priv->parent;
+#line 209 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = amount;
+#line 209 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_advance_section_offset (_tmp3_, _tmp4_);
+#line 1716 "VideoMetadata.c"
+ }
+}
+
+
+QuickTimeAtom* quick_time_atom_get_first_child_atom (QuickTimeAtom* self) {
+ QuickTimeAtom* result = NULL;
+ GDataInputStream* _tmp0_ = NULL;
+ QuickTimeAtom* _tmp1_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (self), NULL);
+#line 219 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->input;
+#line 219 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = quick_time_atom_new_with_input_stream (_tmp0_, self);
+#line 219 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 219 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 1735 "VideoMetadata.c"
+}
+
+
+guchar quick_time_atom_read_byte (QuickTimeAtom* self, GError** error) {
+ guchar result = '\0';
+ guint8 _tmp0_ = 0U;
+ GDataInputStream* _tmp1_ = NULL;
+ guint8 _tmp2_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 222 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (self), '\0');
+#line 223 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_advance_section_offset (self, (guint64) 1);
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_data_input_stream_read_byte (_tmp1_, NULL, &_inner_error_);
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return '\0';
+#line 1761 "VideoMetadata.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = (guchar) _tmp0_;
+#line 224 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 1767 "VideoMetadata.c"
+}
+
+
+guint32 quick_time_atom_read_uint32 (QuickTimeAtom* self, GError** error) {
+ guint32 result = 0U;
+ guint32 _tmp0_ = 0U;
+ GDataInputStream* _tmp1_ = NULL;
+ guint32 _tmp2_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (self), 0U);
+#line 228 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_advance_section_offset (self, (guint64) 4);
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_data_input_stream_read_uint32 (_tmp1_, NULL, &_inner_error_);
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return 0U;
+#line 1793 "VideoMetadata.c"
+ }
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp0_;
+#line 229 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 1799 "VideoMetadata.c"
+}
+
+
+guint64 quick_time_atom_read_uint64 (QuickTimeAtom* self, GError** error) {
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+ GDataInputStream* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 232 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (self), 0ULL);
+#line 233 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_advance_section_offset (self, (guint64) 8);
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_data_input_stream_read_uint64 (_tmp1_, NULL, &_inner_error_);
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return 0ULL;
+#line 1825 "VideoMetadata.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp0_;
+#line 234 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 1831 "VideoMetadata.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1849 "VideoMetadata.c"
+}
+
+
+void quick_time_atom_read_atom (QuickTimeAtom* self, GError** error) {
+ guint32 _tmp0_ = 0U;
+ guint32 _tmp1_ = 0U;
+ GString* sb = NULL;
+ GString* _tmp2_ = NULL;
+ guchar _tmp3_ = '\0';
+ guchar _tmp4_ = '\0';
+ GString* _tmp5_ = NULL;
+ guchar _tmp6_ = '\0';
+ guchar _tmp7_ = '\0';
+ GString* _tmp8_ = NULL;
+ guchar _tmp9_ = '\0';
+ guchar _tmp10_ = '\0';
+ GString* _tmp11_ = NULL;
+ guchar _tmp12_ = '\0';
+ guchar _tmp13_ = '\0';
+ GString* _tmp14_ = NULL;
+ GString* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ guint64 _tmp41_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_QUICK_TIME_ATOM (self));
+#line 239 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = quick_time_atom_read_uint32 (self, &_inner_error_);
+#line 239 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp1_;
+#line 239 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 239 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 239 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1890 "VideoMetadata.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) _tmp0_;
+#line 242 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_string_new ("");
+#line 242 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sb = _tmp2_;
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = quick_time_atom_read_byte (self, &_inner_error_);
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = _tmp4_;
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1910 "VideoMetadata.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = sb;
+#line 243 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp5_, (gchar) _tmp3_);
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = quick_time_atom_read_byte (self, &_inner_error_);
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = _tmp7_;
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1928 "VideoMetadata.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = sb;
+#line 244 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp8_, (gchar) _tmp6_);
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = quick_time_atom_read_byte (self, &_inner_error_);
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = _tmp10_;
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1946 "VideoMetadata.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = sb;
+#line 245 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp11_, (gchar) _tmp9_);
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = quick_time_atom_read_byte (self, &_inner_error_);
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = _tmp13_;
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 1964 "VideoMetadata.c"
+ }
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = sb;
+#line 246 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp14_, (gchar) _tmp12_);
+#line 247 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = sb;
+#line 247 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = _tmp15_->str;
+#line 247 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 247 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->section_name);
+#line 247 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_name = _tmp17_;
+#line 250 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = self->priv->section_name;
+#line 250 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = strlen (_tmp18_);
+#line 250 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = _tmp19_;
+#line 250 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp20_ != 4) {
+#line 1988 "VideoMetadata.c"
+ GFile* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ GError* _tmp24_ = NULL;
+ GError* _tmp25_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = self->priv->file;
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp22_ = g_file_get_path (_tmp21_);
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp23_ = _tmp22_;
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp24_ = g_error_new (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "QuickTime atom name length is invalid for %s", _tmp23_);
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp25_ = _tmp24_;
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp23_);
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = _tmp25_;
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 251 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 2014 "VideoMetadata.c"
+ }
+ {
+ gint i = 0;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ i = 0;
+#line 2020 "VideoMetadata.c"
+ {
+ gboolean _tmp26_ = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp26_ = TRUE;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 2027 "VideoMetadata.c"
+ gint _tmp28_ = 0;
+ const gchar* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ const gchar* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gchar _tmp34_ = '\0';
+ gboolean _tmp35_ = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!_tmp26_) {
+#line 2038 "VideoMetadata.c"
+ gint _tmp27_ = 0;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp27_ = i;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ i = _tmp27_ + 1;
+#line 2044 "VideoMetadata.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp26_ = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp28_ = i;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp29_ = self->priv->section_name;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp30_ = strlen (_tmp29_);
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp31_ = _tmp30_;
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!(_tmp28_ < _tmp31_)) {
+#line 254 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 2060 "VideoMetadata.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp32_ = self->priv->section_name;
+#line 255 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp33_ = i;
+#line 255 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp34_ = string_get (_tmp32_, (glong) _tmp33_);
+#line 255 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp35_ = g_ascii_isprint (_tmp34_);
+#line 255 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!_tmp35_) {
+#line 2072 "VideoMetadata.c"
+ GFile* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ GError* _tmp39_ = NULL;
+ GError* _tmp40_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp36_ = self->priv->file;
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp37_ = g_file_get_path (_tmp36_);
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp38_ = _tmp37_;
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp39_ = g_error_new (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "Bad QuickTime atom in file %s", _tmp38_);
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp40_ = _tmp39_;
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp38_);
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = _tmp40_;
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 256 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 2098 "VideoMetadata.c"
+ }
+ }
+ }
+ }
+#line 260 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp41_ = self->priv->section_size;
+#line 260 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (((guint64) 1) == _tmp41_) {
+#line 2107 "VideoMetadata.c"
+ guint64 _tmp42_ = 0ULL;
+ guint64 _tmp43_ = 0ULL;
+#line 263 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp43_ = quick_time_atom_read_uint64 (self, &_inner_error_);
+#line 263 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp42_ = _tmp43_;
+#line 263 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 263 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 263 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 263 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 2122 "VideoMetadata.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = _tmp42_;
+#line 2126 "VideoMetadata.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 2130 "VideoMetadata.c"
+}
+
+
+static void quick_time_atom_skip (QuickTimeAtom* self, guint64 skip_amount, GError** error) {
+ GDataInputStream* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 267 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_QUICK_TIME_ATOM (self));
+#line 268 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->input;
+#line 268 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = skip_amount;
+#line 268 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ skip_uint64 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_INPUT_STREAM, GInputStream), _tmp1_, &_inner_error_);
+#line 268 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 268 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 268 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 2152 "VideoMetadata.c"
+ }
+}
+
+
+guint64 quick_time_atom_section_size_remaining (QuickTimeAtom* self) {
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+#line 271 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (self), 0ULL);
+#line 272 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_size;
+#line 272 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->section_offset;
+#line 272 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _vala_assert (_tmp0_ >= _tmp1_, "section_size >= section_offset");
+#line 273 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = self->priv->section_size;
+#line 273 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = self->priv->section_offset;
+#line 273 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp2_ - _tmp3_;
+#line 273 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2179 "VideoMetadata.c"
+}
+
+
+void quick_time_atom_next_atom (QuickTimeAtom* self, GError** error) {
+ guint64 _tmp0_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_QUICK_TIME_ATOM (self));
+#line 277 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = quick_time_atom_section_size_remaining (self);
+#line 277 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_skip (self, _tmp0_, &_inner_error_);
+#line 277 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 277 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 277 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 2198 "VideoMetadata.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) 0;
+#line 279 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = (guint64) 0;
+#line 2204 "VideoMetadata.c"
+}
+
+
+gchar* quick_time_atom_get_current_atom_name (QuickTimeAtom* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (self), NULL);
+#line 283 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_name;
+#line 283 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 283 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 283 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2222 "VideoMetadata.c"
+}
+
+
+gboolean quick_time_atom_is_last_atom (QuickTimeAtom* self) {
+ gboolean result = FALSE;
+ guint64 _tmp0_ = 0ULL;
+#line 286 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_QUICK_TIME_ATOM (self), FALSE);
+#line 287 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_size;
+#line 287 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = ((guint64) 0) == _tmp0_;
+#line 287 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2237 "VideoMetadata.c"
+}
+
+
+static void value_quick_time_atom_init (GValue* value) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 2244 "VideoMetadata.c"
+}
+
+
+static void value_quick_time_atom_free_value (GValue* value) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_unref (value->data[0].v_pointer);
+#line 2253 "VideoMetadata.c"
+ }
+}
+
+
+static void value_quick_time_atom_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = quick_time_atom_ref (src_value->data[0].v_pointer);
+#line 2263 "VideoMetadata.c"
+ } else {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2267 "VideoMetadata.c"
+ }
+}
+
+
+static gpointer value_quick_time_atom_peek_pointer (const GValue* value) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 2275 "VideoMetadata.c"
+}
+
+
+static gchar* value_quick_time_atom_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 2282 "VideoMetadata.c"
+ QuickTimeAtom* object;
+ object = collect_values[0].v_pointer;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2289 "VideoMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2293 "VideoMetadata.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = quick_time_atom_ref (object);
+#line 2297 "VideoMetadata.c"
+ } else {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 2301 "VideoMetadata.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 2305 "VideoMetadata.c"
+}
+
+
+static gchar* value_quick_time_atom_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ QuickTimeAtom** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!object_p) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2316 "VideoMetadata.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = NULL;
+#line 2322 "VideoMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2326 "VideoMetadata.c"
+ } else {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = quick_time_atom_ref (value->data[0].v_pointer);
+#line 2330 "VideoMetadata.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 2334 "VideoMetadata.c"
+}
+
+
+GParamSpec* param_spec_quick_time_atom (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecQuickTimeAtom* spec;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_QUICK_TIME_ATOM), NULL);
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 2348 "VideoMetadata.c"
+}
+
+
+gpointer value_get_quick_time_atom (const GValue* value) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_QUICK_TIME_ATOM), NULL);
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 2357 "VideoMetadata.c"
+}
+
+
+void value_set_quick_time_atom (GValue* value, gpointer v_object) {
+ QuickTimeAtom* old;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_QUICK_TIME_ATOM));
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_QUICK_TIME_ATOM));
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_ref (value->data[0].v_pointer);
+#line 2377 "VideoMetadata.c"
+ } else {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 2381 "VideoMetadata.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_unref (old);
+#line 2387 "VideoMetadata.c"
+ }
+}
+
+
+void value_take_quick_time_atom (GValue* value, gpointer v_object) {
+ QuickTimeAtom* old;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_QUICK_TIME_ATOM));
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_QUICK_TIME_ATOM));
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 2406 "VideoMetadata.c"
+ } else {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 2410 "VideoMetadata.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_unref (old);
+#line 2416 "VideoMetadata.c"
+ }
+}
+
+
+static void quick_time_atom_class_init (QuickTimeAtomClass * klass) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ quick_time_atom_parent_class = g_type_class_peek_parent (klass);
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((QuickTimeAtomClass *) klass)->finalize = quick_time_atom_finalize;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_class_add_private (klass, sizeof (QuickTimeAtomPrivate));
+#line 2428 "VideoMetadata.c"
+}
+
+
+static void quick_time_atom_instance_init (QuickTimeAtom * self) {
+ gchar* _tmp0_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv = QUICK_TIME_ATOM_GET_PRIVATE (self);
+#line 174 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = NULL;
+#line 175 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = g_strdup ("");
+#line 175 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_name = _tmp0_;
+#line 176 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) 0;
+#line 177 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = (guint64) 0;
+#line 178 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = NULL;
+#line 179 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->parent = NULL;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->ref_count = 1;
+#line 2452 "VideoMetadata.c"
+}
+
+
+static void quick_time_atom_finalize (QuickTimeAtom* obj) {
+ QuickTimeAtom * self;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_QUICK_TIME_ATOM, QuickTimeAtom);
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 174 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 175 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->section_name);
+#line 178 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 179 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _quick_time_atom_unref0 (self->priv->parent);
+#line 2470 "VideoMetadata.c"
+}
+
+
+GType quick_time_atom_get_type (void) {
+ static volatile gsize quick_time_atom_type_id__volatile = 0;
+ if (g_once_init_enter (&quick_time_atom_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_quick_time_atom_init, value_quick_time_atom_free_value, value_quick_time_atom_copy_value, value_quick_time_atom_peek_pointer, "p", value_quick_time_atom_collect_value, "p", value_quick_time_atom_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (QuickTimeAtomClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) quick_time_atom_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (QuickTimeAtom), 0, (GInstanceInitFunc) quick_time_atom_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType quick_time_atom_type_id;
+ quick_time_atom_type_id = g_type_register_fundamental (g_type_fundamental_next (), "QuickTimeAtom", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&quick_time_atom_type_id__volatile, quick_time_atom_type_id);
+ }
+ return quick_time_atom_type_id__volatile;
+}
+
+
+gpointer quick_time_atom_ref (gpointer instance) {
+ QuickTimeAtom* self;
+ self = instance;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return instance;
+#line 2495 "VideoMetadata.c"
+}
+
+
+void quick_time_atom_unref (gpointer instance) {
+ QuickTimeAtom* self;
+ self = instance;
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ QUICK_TIME_ATOM_GET_CLASS (self)->finalize (self);
+#line 173 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2508 "VideoMetadata.c"
+ }
+}
+
+
+AVIMetadataLoader* avi_metadata_loader_construct (GType object_type, GFile* file) {
+ AVIMetadataLoader* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 305 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = (AVIMetadataLoader*) g_type_create_instance (object_type);
+#line 306 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = file;
+#line 306 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 306 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 306 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = _tmp1_;
+#line 305 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self;
+#line 2531 "VideoMetadata.c"
+}
+
+
+AVIMetadataLoader* avi_metadata_loader_new (GFile* file) {
+#line 305 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return avi_metadata_loader_construct (TYPE_AVI_METADATA_LOADER, file);
+#line 2538 "VideoMetadata.c"
+}
+
+
+MetadataDateTime* avi_metadata_loader_get_creation_date_time (AVIMetadataLoader* self) {
+ MetadataDateTime* result = NULL;
+ gulong _tmp0_ = 0UL;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 309 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), NULL);
+#line 310 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = avi_metadata_loader_get_creation_date_time_for_avi (self);
+#line 310 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = metadata_date_time_new ((time_t) _tmp0_);
+#line 310 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 310 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2556 "VideoMetadata.c"
+}
+
+
+gchar* avi_metadata_loader_get_title (AVIMetadataLoader* self) {
+ gchar* result = NULL;
+#line 313 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), NULL);
+#line 315 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = NULL;
+#line 315 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2568 "VideoMetadata.c"
+}
+
+
+gboolean avi_metadata_loader_is_supported (AVIMetadataLoader* self) {
+ gboolean result = FALSE;
+ AVIChunk* chunk = NULL;
+ GFile* _tmp0_ = NULL;
+ AVIChunk* _tmp1_ = NULL;
+ gboolean ret = FALSE;
+ GError * _inner_error_ = NULL;
+#line 319 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), FALSE);
+#line 320 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->file;
+#line 320 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = avi_chunk_new (_tmp0_);
+#line 320 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ chunk = _tmp1_;
+#line 321 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ret = FALSE;
+#line 2589 "VideoMetadata.c"
+ {
+ AVIChunk* _tmp2_ = NULL;
+ AVIChunk* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ AVIChunk* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 323 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = chunk;
+#line 323 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_open_file (_tmp2_, &_inner_error_);
+#line 323 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2604 "VideoMetadata.c"
+ goto __catch567_g_error;
+ }
+#line 324 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = chunk;
+#line 324 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_read_chunk (_tmp3_, &_inner_error_);
+#line 324 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2613 "VideoMetadata.c"
+ goto __catch567_g_error;
+ }
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = chunk;
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = avi_chunk_get_current_chunk_name (_tmp5_);
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = _tmp6_;
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = g_strcmp0 ("RIFF", _tmp7_) == 0;
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp7_);
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp8_) {
+#line 2628 "VideoMetadata.c"
+ gchar* _tmp9_ = NULL;
+ AVIChunk* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = chunk;
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = avi_chunk_read_name (_tmp10_, &_inner_error_);
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = _tmp11_;
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2642 "VideoMetadata.c"
+ goto __catch567_g_error;
+ }
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = _tmp9_;
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = NULL;
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = _tmp12_;
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = g_strcmp0 ("AVI ", _tmp13_) == 0;
+#line 327 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp13_);
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp9_);
+#line 2657 "VideoMetadata.c"
+ } else {
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = FALSE;
+#line 2661 "VideoMetadata.c"
+ }
+#line 326 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp4_) {
+#line 328 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ret = TRUE;
+#line 2667 "VideoMetadata.c"
+ }
+ }
+ goto __finally567;
+ __catch567_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = e;
+#line 331 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = _tmp14_->message;
+#line 331 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:331: Error while testing for AVI file: %s", _tmp15_);
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 2688 "VideoMetadata.c"
+ }
+ __finally567:
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (chunk);
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 322 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return FALSE;
+#line 2701 "VideoMetadata.c"
+ }
+ {
+ AVIChunk* _tmp16_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = chunk;
+#line 335 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_close_file (_tmp16_, &_inner_error_);
+#line 335 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2711 "VideoMetadata.c"
+ goto __catch568_g_error;
+ }
+ }
+ goto __finally568;
+ __catch568_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = e;
+#line 337 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = _tmp17_->message;
+#line 337 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:337: Error while closing AVI file: %s", _tmp18_);
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 2733 "VideoMetadata.c"
+ }
+ __finally568:
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (chunk);
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 334 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return FALSE;
+#line 2746 "VideoMetadata.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = ret;
+#line 339 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (chunk);
+#line 339 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2754 "VideoMetadata.c"
+}
+
+
+static gchar* avi_metadata_loader_read_nikon_nctg_tag (AVIMetadataLoader* self, AVIChunk* chunk, GError** error) {
+ gchar* result = NULL;
+ gboolean found_date = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gchar* _tmp21_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), NULL);
+#line 343 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (chunk), NULL);
+#line 344 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ found_date = FALSE;
+#line 345 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 2772 "VideoMetadata.c"
+ AVIChunk* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ guint16 tag = 0U;
+ AVIChunk* _tmp2_ = NULL;
+ guint16 _tmp3_ = 0U;
+ guint16 size = 0U;
+ AVIChunk* _tmp4_ = NULL;
+ guint16 _tmp5_ = 0U;
+ guint16 _tmp6_ = 0U;
+ AVIChunk* _tmp7_ = NULL;
+ guint16 _tmp8_ = 0U;
+#line 345 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = chunk;
+#line 345 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = avi_chunk_section_size_remaining (_tmp0_);
+#line 345 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!(_tmp1_ > ((guint64) (sizeof (guint16) * 2)))) {
+#line 345 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 2792 "VideoMetadata.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = chunk;
+#line 346 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = avi_chunk_read_uint16 (_tmp2_, &_inner_error_);
+#line 346 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ tag = _tmp3_;
+#line 346 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 346 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 346 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 2806 "VideoMetadata.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = chunk;
+#line 347 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = avi_chunk_read_uint16 (_tmp4_, &_inner_error_);
+#line 347 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ size = _tmp5_;
+#line 347 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 347 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 347 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 2820 "VideoMetadata.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = tag;
+#line 348 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (AVI_METADATA_LOADER_NIKON_NCTG_TIMESTAMP_MARKER == _tmp6_) {
+#line 349 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ found_date = TRUE;
+#line 350 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 2830 "VideoMetadata.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = chunk;
+#line 352 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = size;
+#line 352 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_skip (_tmp7_, (guint64) _tmp8_, &_inner_error_);
+#line 352 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 352 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 352 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 2844 "VideoMetadata.c"
+ }
+ }
+#line 355 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = found_date;
+#line 355 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp9_) {
+#line 2851 "VideoMetadata.c"
+ GString* sb = NULL;
+ GString* _tmp10_ = NULL;
+ GString* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 357 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = g_string_new ("");
+#line 357 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sb = _tmp10_;
+#line 2861 "VideoMetadata.c"
+ {
+ gint i = 0;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ i = 0;
+#line 2866 "VideoMetadata.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = TRUE;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 2873 "VideoMetadata.c"
+ gint _tmp13_ = 0;
+ guchar _tmp14_ = '\0';
+ AVIChunk* _tmp15_ = NULL;
+ guchar _tmp16_ = '\0';
+ GString* _tmp17_ = NULL;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!_tmp11_) {
+#line 2881 "VideoMetadata.c"
+ gint _tmp12_ = 0;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = i;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ i = _tmp12_ + 1;
+#line 2887 "VideoMetadata.c"
+ }
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = FALSE;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = i;
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!(_tmp13_ < AVI_METADATA_LOADER_NUMERICAL_DATE_LENGTH)) {
+#line 358 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 2897 "VideoMetadata.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = chunk;
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = avi_chunk_read_byte (_tmp15_, &_inner_error_);
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = _tmp16_;
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 2913 "VideoMetadata.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = sb;
+#line 359 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp17_, (gchar) _tmp14_);
+#line 2919 "VideoMetadata.c"
+ }
+ }
+ }
+#line 361 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = sb;
+#line 361 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = _tmp18_->str;
+#line 361 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 361 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp20_;
+#line 361 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 361 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2935 "VideoMetadata.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = g_strdup ("");
+#line 363 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp21_;
+#line 363 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 2943 "VideoMetadata.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 2966 "VideoMetadata.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2974 "VideoMetadata.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2986 "VideoMetadata.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 3010 "VideoMetadata.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 3016 "VideoMetadata.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 3020 "VideoMetadata.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 3024 "VideoMetadata.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 3036 "VideoMetadata.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 3046 "VideoMetadata.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 3052 "VideoMetadata.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 3066 "VideoMetadata.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 3076 "VideoMetadata.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 3082 "VideoMetadata.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 3091 "VideoMetadata.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3111 "VideoMetadata.c"
+}
+
+
+static gchar* avi_metadata_loader_read_fuji_strd_tag (AVIMetadataLoader* self, AVIChunk* chunk, GError** error) {
+ gchar* result = NULL;
+ AVIChunk* _tmp0_ = NULL;
+ AVIChunk* _tmp1_ = NULL;
+ gint colons = 0;
+ gint post_colons = 0;
+ GString* sb = NULL;
+ GString* _tmp2_ = NULL;
+ GString* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ GString* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ GString* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gchar* _tmp31_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 368 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), NULL);
+#line 368 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (chunk), NULL);
+#line 369 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = chunk;
+#line 369 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_skip (_tmp0_, (guint64) 98, &_inner_error_);
+#line 369 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 369 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 369 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3149 "VideoMetadata.c"
+ }
+#line 370 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = chunk;
+#line 370 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_skip (_tmp1_, (guint64) 8, &_inner_error_);
+#line 370 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 370 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 370 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3161 "VideoMetadata.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ colons = 0;
+#line 373 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ post_colons = 0;
+#line 374 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_string_new ("");
+#line 374 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sb = _tmp2_;
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 3173 "VideoMetadata.c"
+ gboolean _tmp3_ = FALSE;
+ gint _tmp4_ = 0;
+ guchar _tmp6_ = '\0';
+ AVIChunk* _tmp7_ = NULL;
+ guchar _tmp8_ = '\0';
+ gchar c = '\0';
+ gint _tmp9_ = 0;
+ gchar _tmp11_ = '\0';
+ gchar _tmp13_ = '\0';
+ gboolean _tmp14_ = FALSE;
+ GString* _tmp17_ = NULL;
+ gssize _tmp18_ = 0L;
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = colons;
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp4_ <= 4) {
+#line 3190 "VideoMetadata.c"
+ gint _tmp5_ = 0;
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = post_colons;
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = _tmp5_ < 2;
+#line 3196 "VideoMetadata.c"
+ } else {
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = FALSE;
+#line 3200 "VideoMetadata.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!_tmp3_) {
+#line 376 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 3206 "VideoMetadata.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = chunk;
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = avi_chunk_read_byte (_tmp7_, &_inner_error_);
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = _tmp8_;
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3222 "VideoMetadata.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ c = (gchar) _tmp6_;
+#line 378 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = colons;
+#line 378 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (4 == _tmp9_) {
+#line 3230 "VideoMetadata.c"
+ gint _tmp10_ = 0;
+#line 379 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = post_colons;
+#line 379 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ post_colons = _tmp10_ + 1;
+#line 3236 "VideoMetadata.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = c;
+#line 381 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (':' == _tmp11_) {
+#line 3242 "VideoMetadata.c"
+ gint _tmp12_ = 0;
+#line 382 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = colons;
+#line 382 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ colons = _tmp12_ + 1;
+#line 3248 "VideoMetadata.c"
+ }
+#line 384 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = c;
+#line 384 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = g_ascii_isprint (_tmp13_);
+#line 384 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp14_) {
+#line 3256 "VideoMetadata.c"
+ GString* _tmp15_ = NULL;
+ gchar _tmp16_ = '\0';
+#line 385 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = sb;
+#line 385 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = c;
+#line 385 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp15_, _tmp16_);
+#line 3265 "VideoMetadata.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = sb;
+#line 387 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = _tmp17_->len;
+#line 387 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp18_ > ((gssize) AVI_METADATA_LOADER_MAX_STRD_LENGTH)) {
+#line 3273 "VideoMetadata.c"
+ gchar* _tmp19_ = NULL;
+#line 388 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = g_strdup ("");
+#line 388 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp19_;
+#line 388 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 388 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3283 "VideoMetadata.c"
+ }
+ }
+#line 392 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = sb;
+#line 392 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = _tmp20_->str;
+#line 392 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp22_ = strlen (_tmp21_);
+#line 392 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp23_ = _tmp22_;
+#line 392 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp23_ < AVI_METADATA_LOADER_NUMERICAL_DATE_LENGTH) {
+#line 3296 "VideoMetadata.c"
+ gchar* _tmp24_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp24_ = g_strdup ("");
+#line 393 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp24_;
+#line 393 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 393 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3306 "VideoMetadata.c"
+ }
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp25_ = sb;
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp26_ = _tmp25_->str;
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp27_ = sb;
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp28_ = _tmp27_->str;
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp29_ = strlen (_tmp28_);
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp30_ = _tmp29_;
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp31_ = string_substring (_tmp26_, (glong) (_tmp30_ - AVI_METADATA_LOADER_NUMERICAL_DATE_LENGTH), (glong) -1);
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp31_;
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 396 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3328 "VideoMetadata.c"
+}
+
+
+static gchar* avi_metadata_loader_read_section (AVIMetadataLoader* self, AVIChunk* chunk, GError** error) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 400 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), NULL);
+#line 400 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (chunk), NULL);
+#line 401 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 3341 "VideoMetadata.c"
+ AVIChunk* _tmp0_ = NULL;
+ gchar* name = NULL;
+ AVIChunk* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ AVIChunk* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ AVIChunk* _tmp30_ = NULL;
+#line 402 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = chunk;
+#line 402 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_read_chunk (_tmp0_, &_inner_error_);
+#line 402 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 402 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 402 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3361 "VideoMetadata.c"
+ }
+#line 403 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = chunk;
+#line 403 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = avi_chunk_get_current_chunk_name (_tmp1_);
+#line 403 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ name = _tmp2_;
+#line 404 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = name;
+#line 404 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_strcmp0 ("IDIT", _tmp3_) == 0) {
+#line 3373 "VideoMetadata.c"
+ gchar* _tmp4_ = NULL;
+ AVIChunk* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = chunk;
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = avi_chunk_section_to_string (_tmp5_, &_inner_error_);
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = _tmp6_;
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3392 "VideoMetadata.c"
+ }
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = _tmp4_;
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp7_;
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp4_);
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 405 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3406 "VideoMetadata.c"
+ } else {
+ const gchar* _tmp8_ = NULL;
+#line 406 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = name;
+#line 406 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_strcmp0 ("nctg", _tmp8_) == 0) {
+#line 3413 "VideoMetadata.c"
+ gchar* _tmp9_ = NULL;
+ AVIChunk* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = chunk;
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = avi_metadata_loader_read_nikon_nctg_tag (self, _tmp10_, &_inner_error_);
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = _tmp11_;
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3432 "VideoMetadata.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = _tmp9_;
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = NULL;
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp12_;
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp9_);
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 407 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3446 "VideoMetadata.c"
+ } else {
+ const gchar* _tmp13_ = NULL;
+#line 408 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = name;
+#line 408 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_strcmp0 ("strd", _tmp13_) == 0) {
+#line 3453 "VideoMetadata.c"
+ gchar* _tmp14_ = NULL;
+ AVIChunk* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = chunk;
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = avi_metadata_loader_read_fuji_strd_tag (self, _tmp15_, &_inner_error_);
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = _tmp16_;
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3472 "VideoMetadata.c"
+ }
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = _tmp14_;
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = NULL;
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp17_;
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp14_);
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 409 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3486 "VideoMetadata.c"
+ }
+ }
+ }
+#line 412 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = name;
+#line 412 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_strcmp0 ("LIST", _tmp18_) == 0) {
+#line 3494 "VideoMetadata.c"
+ AVIChunk* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _result_ = NULL;
+ AVIChunk* _tmp22_ = NULL;
+ AVIChunk* _tmp23_ = NULL;
+ AVIChunk* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = chunk;
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = avi_chunk_read_name (_tmp19_, &_inner_error_);
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = _tmp20_;
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp21_);
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 413 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3521 "VideoMetadata.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp22_ = chunk;
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp23_ = avi_chunk_get_first_child_chunk (_tmp22_);
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp24_ = _tmp23_;
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp25_ = avi_metadata_loader_read_section (self, _tmp24_, &_inner_error_);
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp26_ = _tmp25_;
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (_tmp24_);
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _result_ = _tmp26_;
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 414 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3545 "VideoMetadata.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp27_ = _result_;
+#line 415 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (NULL != _tmp27_) {
+#line 416 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _result_;
+#line 416 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 416 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3557 "VideoMetadata.c"
+ }
+#line 412 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_result_);
+#line 3561 "VideoMetadata.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp28_ = chunk;
+#line 420 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp29_ = avi_chunk_is_last_chunk (_tmp28_);
+#line 420 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp29_) {
+#line 421 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 421 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 3573 "VideoMetadata.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp30_ = chunk;
+#line 423 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_next_chunk (_tmp30_, &_inner_error_);
+#line 423 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 423 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 423 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 423 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 3587 "VideoMetadata.c"
+ }
+#line 401 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (name);
+#line 3591 "VideoMetadata.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = NULL;
+#line 425 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3597 "VideoMetadata.c"
+}
+
+
+static gulong avi_metadata_loader_parse_date (AVIMetadataLoader* self, const gchar* sdate) {
+ gulong result = 0UL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GDate date = {0};
+ guint seconds = 0U;
+ gint year = 0;
+ gint month = 0;
+ gint day = 0;
+ gint hour = 0;
+ gint min = 0;
+ gint sec = 0;
+ gchar weekday[4] = {0};
+ gchar monthstr[4] = {0};
+ const gchar* _tmp3_ = NULL;
+ gchar _tmp4_ = '\0';
+ gboolean _tmp5_ = FALSE;
+ struct tm time = {0};
+ struct tm _tmp26_ = {0};
+ time_t tm = 0;
+ time_t _tmp27_ = 0;
+ gulong _result_ = 0UL;
+ time_t _tmp28_ = 0;
+ guint _tmp29_ = 0U;
+ gulong _tmp30_ = 0UL;
+ time_t _tmp31_ = 0;
+#line 432 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), 0UL);
+#line 432 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (sdate != NULL, 0UL);
+#line 433 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = sdate;
+#line 433 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = strlen (_tmp0_);
+#line 433 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = _tmp1_;
+#line 433 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp2_ == 0) {
+#line 434 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = (gulong) 0;
+#line 434 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3644 "VideoMetadata.c"
+ }
+#line 437 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ memset (&date, 0, sizeof (GDate));
+#line 438 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ seconds = (guint) 0;
+#line 443 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = sdate;
+#line 443 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = string_get (_tmp3_, (glong) 0);
+#line 443 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = g_ascii_isdigit (_tmp4_);
+#line 443 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp5_) {
+#line 3658 "VideoMetadata.c"
+ gchar* tmp = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gint _result_ = 0;
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 447 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = sdate;
+#line 447 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 447 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ tmp = _tmp7_;
+#line 448 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = tmp;
+#line 448 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_strcanon (_tmp8_, "0123456789 ", ' ');
+#line 449 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sec = 0;
+#line 450 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = tmp;
+#line 450 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = sscanf (_tmp9_, "%d %d %d %d %d %d", &year, &month, &day, &hour, &min, &sec);
+#line 450 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _result_ = _tmp10_;
+#line 451 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = _result_;
+#line 451 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp11_ < 5) {
+#line 452 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = (gulong) 0;
+#line 452 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (tmp);
+#line 452 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3701 "VideoMetadata.c"
+ }
+#line 454 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = day;
+#line 454 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = month;
+#line 454 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = year;
+#line 454 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_date_set_dmy (&date, (GDateDay) _tmp12_, (gint) ((GDateMonth) _tmp13_), (GDateYear) _tmp14_);
+#line 455 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = sec;
+#line 455 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = min;
+#line 455 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = hour;
+#line 455 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ seconds = (guint) ((_tmp15_ + (_tmp16_ * 60)) + (_tmp17_ * 3600));
+#line 443 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (tmp);
+#line 3721 "VideoMetadata.c"
+ } else {
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ GDateMonth _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 458 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = sdate;
+#line 458 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = sscanf (_tmp18_, "%3s %3s %d %d:%d:%d %d", weekday, monthstr, &day, &hour, &min, &sec, &year);
+#line 458 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (7 != _tmp19_) {
+#line 460 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = (gulong) 0;
+#line 460 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3741 "VideoMetadata.c"
+ }
+#line 462 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = day;
+#line 462 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = avi_metadata_loader_month_from_string (self, (const gchar*) monthstr);
+#line 462 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp22_ = year;
+#line 462 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_date_set_dmy (&date, (GDateDay) _tmp20_, (gint) _tmp21_, (GDateYear) _tmp22_);
+#line 463 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp23_ = sec;
+#line 463 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp24_ = min;
+#line 463 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp25_ = hour;
+#line 463 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ seconds = (guint) ((_tmp23_ + (_tmp24_ * 60)) + (_tmp25_ * 3600));
+#line 3759 "VideoMetadata.c"
+ }
+#line 466 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ memset (&time, 0, sizeof (struct tm));
+#line 467 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_date_to_struct_tm (&date, &_tmp26_);
+#line 467 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ time = _tmp26_;
+#line 470 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp27_ = mktime (&time);
+#line 470 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ tm = _tmp27_;
+#line 471 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp28_ = tm;
+#line 471 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp29_ = seconds;
+#line 471 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _result_ = (gulong) (_tmp28_ + _tmp29_);
+#line 472 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp30_ = _result_;
+#line 472 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp31_ = tm;
+#line 472 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp30_ < ((gulong) _tmp31_)) {
+#line 3783 "VideoMetadata.c"
+ GFile* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp32_ = self->priv->file;
+#line 473 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp33_ = g_file_get_path (_tmp32_);
+#line 473 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp34_ = _tmp33_;
+#line 473 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:473: Overflow for timestamp in video file %s", _tmp34_);
+#line 473 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp34_);
+#line 475 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = (gulong) 0;
+#line 475 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3801 "VideoMetadata.c"
+ }
+#line 478 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _result_;
+#line 478 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3807 "VideoMetadata.c"
+}
+
+
+static GDateMonth avi_metadata_loader_month_from_string (AVIMetadataLoader* self, const gchar* s) {
+ GDateMonth result = 0;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GQuark _tmp4_ = 0U;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label0 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label1 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label2 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label3 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label4 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label5 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label6 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label7 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label8 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label9 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label10 = 0;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ static GQuark _tmp3_label11 = 0;
+#line 481 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), 0);
+#line 481 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (s != NULL, 0);
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = s;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = g_utf8_strdown (_tmp0_, (gssize) -1);
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = _tmp1_;
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = (NULL == _tmp2_) ? 0 : g_quark_from_string (_tmp2_);
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_free (_tmp2_);
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp4_ == ((0 != _tmp3_label0) ? _tmp3_label0 : (_tmp3_label0 = g_quark_from_static_string ("jan")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3859 "VideoMetadata.c"
+ default:
+ {
+#line 484 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_JANUARY;
+#line 484 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3866 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label1) ? _tmp3_label1 : (_tmp3_label1 = g_quark_from_static_string ("feb")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3872 "VideoMetadata.c"
+ default:
+ {
+#line 486 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_FEBRUARY;
+#line 486 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3879 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label2) ? _tmp3_label2 : (_tmp3_label2 = g_quark_from_static_string ("mar")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3885 "VideoMetadata.c"
+ default:
+ {
+#line 488 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_MARCH;
+#line 488 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3892 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label3) ? _tmp3_label3 : (_tmp3_label3 = g_quark_from_static_string ("apr")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3898 "VideoMetadata.c"
+ default:
+ {
+#line 490 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_APRIL;
+#line 490 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3905 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label4) ? _tmp3_label4 : (_tmp3_label4 = g_quark_from_static_string ("may")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3911 "VideoMetadata.c"
+ default:
+ {
+#line 492 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_MAY;
+#line 492 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3918 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label5) ? _tmp3_label5 : (_tmp3_label5 = g_quark_from_static_string ("jun")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3924 "VideoMetadata.c"
+ default:
+ {
+#line 494 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_JUNE;
+#line 494 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3931 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label6) ? _tmp3_label6 : (_tmp3_label6 = g_quark_from_static_string ("jul")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3937 "VideoMetadata.c"
+ default:
+ {
+#line 496 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_JULY;
+#line 496 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3944 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label7) ? _tmp3_label7 : (_tmp3_label7 = g_quark_from_static_string ("aug")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3950 "VideoMetadata.c"
+ default:
+ {
+#line 498 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_AUGUST;
+#line 498 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3957 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label8) ? _tmp3_label8 : (_tmp3_label8 = g_quark_from_static_string ("sep")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3963 "VideoMetadata.c"
+ default:
+ {
+#line 500 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_SEPTEMBER;
+#line 500 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3970 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label9) ? _tmp3_label9 : (_tmp3_label9 = g_quark_from_static_string ("oct")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3976 "VideoMetadata.c"
+ default:
+ {
+#line 502 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_OCTOBER;
+#line 502 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3983 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label10) ? _tmp3_label10 : (_tmp3_label10 = g_quark_from_static_string ("nov")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 3989 "VideoMetadata.c"
+ default:
+ {
+#line 504 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_NOVEMBER;
+#line 504 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 3996 "VideoMetadata.c"
+ }
+ }
+ } else if (_tmp4_ == ((0 != _tmp3_label11) ? _tmp3_label11 : (_tmp3_label11 = g_quark_from_static_string ("dec")))) {
+#line 482 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ switch (0) {
+#line 4002 "VideoMetadata.c"
+ default:
+ {
+#line 506 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_DECEMBER;
+#line 506 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 4009 "VideoMetadata.c"
+ }
+ }
+ }
+#line 508 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = G_DATE_BAD_MONTH;
+#line 508 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 4017 "VideoMetadata.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 4040 "VideoMetadata.c"
+}
+
+
+static gulong avi_metadata_loader_get_creation_date_time_for_avi (AVIMetadataLoader* self) {
+ gulong result = 0UL;
+ AVIChunk* chunk = NULL;
+ GFile* _tmp0_ = NULL;
+ AVIChunk* _tmp1_ = NULL;
+ gulong timestamp = 0UL;
+ GError * _inner_error_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_METADATA_LOADER (self), 0UL);
+#line 512 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->file;
+#line 512 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = avi_chunk_new (_tmp0_);
+#line 512 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ chunk = _tmp1_;
+#line 513 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ timestamp = (gulong) 0;
+#line 4061 "VideoMetadata.c"
+ {
+ AVIChunk* _tmp2_ = NULL;
+ AVIChunk* _tmp3_ = NULL;
+ gchar* sdate = NULL;
+ AVIChunk* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = chunk;
+#line 515 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_open_file (_tmp2_, &_inner_error_);
+#line 515 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4075 "VideoMetadata.c"
+ goto __catch569_g_error;
+ }
+#line 516 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = chunk;
+#line 516 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_nonsection_skip (_tmp3_, (guint64) 12, &_inner_error_);
+#line 516 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4084 "VideoMetadata.c"
+ goto __catch569_g_error;
+ }
+#line 517 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = chunk;
+#line 517 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = avi_metadata_loader_read_section (self, _tmp4_, &_inner_error_);
+#line 517 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sdate = _tmp5_;
+#line 517 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4095 "VideoMetadata.c"
+ goto __catch569_g_error;
+ }
+#line 518 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = sdate;
+#line 518 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (NULL != _tmp6_) {
+#line 4102 "VideoMetadata.c"
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gulong _tmp10_ = 0UL;
+#line 519 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = sdate;
+#line 519 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = string_strip (_tmp7_);
+#line 519 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = _tmp8_;
+#line 519 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = avi_metadata_loader_parse_date (self, _tmp9_);
+#line 519 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ timestamp = _tmp10_;
+#line 519 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (_tmp9_);
+#line 4119 "VideoMetadata.c"
+ }
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (sdate);
+#line 4123 "VideoMetadata.c"
+ }
+ goto __finally569;
+ __catch569_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 522 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = e;
+#line 522 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = _tmp11_->message;
+#line 522 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:522: Error while reading AVI file: %s", _tmp12_);
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 4143 "VideoMetadata.c"
+ }
+ __finally569:
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (chunk);
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 514 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return 0UL;
+#line 4156 "VideoMetadata.c"
+ }
+ {
+ AVIChunk* _tmp13_ = NULL;
+#line 526 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = chunk;
+#line 526 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_close_file (_tmp13_, &_inner_error_);
+#line 526 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4166 "VideoMetadata.c"
+ goto __catch570_g_error;
+ }
+ }
+ goto __finally570;
+ __catch570_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ e = _inner_error_;
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _inner_error_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = e;
+#line 528 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = _tmp14_->message;
+#line 528 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_debug ("VideoMetadata.vala:528: Error while closing AVI file: %s", _tmp15_);
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_error_free0 (e);
+#line 4188 "VideoMetadata.c"
+ }
+ __finally570:
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (chunk);
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 525 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return 0UL;
+#line 4201 "VideoMetadata.c"
+ }
+#line 530 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = timestamp;
+#line 530 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (chunk);
+#line 530 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 4209 "VideoMetadata.c"
+}
+
+
+static void value_avi_metadata_loader_init (GValue* value) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 4216 "VideoMetadata.c"
+}
+
+
+static void value_avi_metadata_loader_free_value (GValue* value) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_metadata_loader_unref (value->data[0].v_pointer);
+#line 4225 "VideoMetadata.c"
+ }
+}
+
+
+static void value_avi_metadata_loader_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = avi_metadata_loader_ref (src_value->data[0].v_pointer);
+#line 4235 "VideoMetadata.c"
+ } else {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4239 "VideoMetadata.c"
+ }
+}
+
+
+static gpointer value_avi_metadata_loader_peek_pointer (const GValue* value) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 4247 "VideoMetadata.c"
+}
+
+
+static gchar* value_avi_metadata_loader_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 4254 "VideoMetadata.c"
+ AVIMetadataLoader* object;
+ object = collect_values[0].v_pointer;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4261 "VideoMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4265 "VideoMetadata.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = avi_metadata_loader_ref (object);
+#line 4269 "VideoMetadata.c"
+ } else {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 4273 "VideoMetadata.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 4277 "VideoMetadata.c"
+}
+
+
+static gchar* value_avi_metadata_loader_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ AVIMetadataLoader** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!object_p) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4288 "VideoMetadata.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = NULL;
+#line 4294 "VideoMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4298 "VideoMetadata.c"
+ } else {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = avi_metadata_loader_ref (value->data[0].v_pointer);
+#line 4302 "VideoMetadata.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 4306 "VideoMetadata.c"
+}
+
+
+GParamSpec* param_spec_avi_metadata_loader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAVIMetadataLoader* spec;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_AVI_METADATA_LOADER), NULL);
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 4320 "VideoMetadata.c"
+}
+
+
+gpointer value_get_avi_metadata_loader (const GValue* value) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AVI_METADATA_LOADER), NULL);
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 4329 "VideoMetadata.c"
+}
+
+
+void value_set_avi_metadata_loader (GValue* value, gpointer v_object) {
+ AVIMetadataLoader* old;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AVI_METADATA_LOADER));
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AVI_METADATA_LOADER));
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_metadata_loader_ref (value->data[0].v_pointer);
+#line 4349 "VideoMetadata.c"
+ } else {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 4353 "VideoMetadata.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_metadata_loader_unref (old);
+#line 4359 "VideoMetadata.c"
+ }
+}
+
+
+void value_take_avi_metadata_loader (GValue* value, gpointer v_object) {
+ AVIMetadataLoader* old;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AVI_METADATA_LOADER));
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AVI_METADATA_LOADER));
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 4378 "VideoMetadata.c"
+ } else {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 4382 "VideoMetadata.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_metadata_loader_unref (old);
+#line 4388 "VideoMetadata.c"
+ }
+}
+
+
+static void avi_metadata_loader_class_init (AVIMetadataLoaderClass * klass) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_metadata_loader_parent_class = g_type_class_peek_parent (klass);
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((AVIMetadataLoaderClass *) klass)->finalize = avi_metadata_loader_finalize;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_class_add_private (klass, sizeof (AVIMetadataLoaderPrivate));
+#line 4400 "VideoMetadata.c"
+}
+
+
+static void avi_metadata_loader_instance_init (AVIMetadataLoader * self) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv = AVI_METADATA_LOADER_GET_PRIVATE (self);
+#line 294 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = NULL;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->ref_count = 1;
+#line 4411 "VideoMetadata.c"
+}
+
+
+static void avi_metadata_loader_finalize (AVIMetadataLoader* obj) {
+ AVIMetadataLoader * self;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_AVI_METADATA_LOADER, AVIMetadataLoader);
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 294 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 4423 "VideoMetadata.c"
+}
+
+
+GType avi_metadata_loader_get_type (void) {
+ static volatile gsize avi_metadata_loader_type_id__volatile = 0;
+ if (g_once_init_enter (&avi_metadata_loader_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_avi_metadata_loader_init, value_avi_metadata_loader_free_value, value_avi_metadata_loader_copy_value, value_avi_metadata_loader_peek_pointer, "p", value_avi_metadata_loader_collect_value, "p", value_avi_metadata_loader_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AVIMetadataLoaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) avi_metadata_loader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AVIMetadataLoader), 0, (GInstanceInitFunc) avi_metadata_loader_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType avi_metadata_loader_type_id;
+ avi_metadata_loader_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AVIMetadataLoader", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&avi_metadata_loader_type_id__volatile, avi_metadata_loader_type_id);
+ }
+ return avi_metadata_loader_type_id__volatile;
+}
+
+
+gpointer avi_metadata_loader_ref (gpointer instance) {
+ AVIMetadataLoader* self;
+ self = instance;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return instance;
+#line 4448 "VideoMetadata.c"
+}
+
+
+void avi_metadata_loader_unref (gpointer instance) {
+ AVIMetadataLoader* self;
+ self = instance;
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ AVI_METADATA_LOADER_GET_CLASS (self)->finalize (self);
+#line 292 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4461 "VideoMetadata.c"
+ }
+}
+
+
+AVIChunk* avi_chunk_construct (GType object_type, GFile* file) {
+ AVIChunk* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 543 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 543 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = (AVIChunk*) g_type_create_instance (object_type);
+#line 544 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = file;
+#line 544 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 544 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 544 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = _tmp1_;
+#line 543 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self;
+#line 4484 "VideoMetadata.c"
+}
+
+
+AVIChunk* avi_chunk_new (GFile* file) {
+#line 543 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return avi_chunk_construct (TYPE_AVI_CHUNK, file);
+#line 4491 "VideoMetadata.c"
+}
+
+
+static gpointer _avi_chunk_ref0 (gpointer self) {
+#line 549 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self ? avi_chunk_ref (self) : NULL;
+#line 4498 "VideoMetadata.c"
+}
+
+
+static AVIChunk* avi_chunk_construct_with_input_stream (GType object_type, GDataInputStream* input, AVIChunk* parent) {
+ AVIChunk* self = NULL;
+ GDataInputStream* _tmp0_ = NULL;
+ GDataInputStream* _tmp1_ = NULL;
+ AVIChunk* _tmp2_ = NULL;
+ AVIChunk* _tmp3_ = NULL;
+#line 547 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_IS_DATA_INPUT_STREAM (input), NULL);
+#line 547 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (parent), NULL);
+#line 547 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = (AVIChunk*) g_type_create_instance (object_type);
+#line 548 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = input;
+#line 548 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 548 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 548 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = _tmp1_;
+#line 549 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = parent;
+#line 549 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = _avi_chunk_ref0 (_tmp2_);
+#line 549 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (self->priv->parent);
+#line 549 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->parent = _tmp3_;
+#line 547 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return self;
+#line 4532 "VideoMetadata.c"
+}
+
+
+static AVIChunk* avi_chunk_new_with_input_stream (GDataInputStream* input, AVIChunk* parent) {
+#line 547 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return avi_chunk_construct_with_input_stream (TYPE_AVI_CHUNK, input, parent);
+#line 4539 "VideoMetadata.c"
+}
+
+
+void avi_chunk_open_file (AVIChunk* self, GError** error) {
+ GFileInputStream* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInputStream* _tmp2_ = NULL;
+ GDataInputStream* _tmp3_ = NULL;
+ GDataInputStream* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 552 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_AVI_CHUNK (self));
+#line 553 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_close_file (self, &_inner_error_);
+#line 553 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 553 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 553 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4561 "VideoMetadata.c"
+ }
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->file;
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_file_read (_tmp1_, NULL, &_inner_error_);
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4575 "VideoMetadata.c"
+ }
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = g_data_input_stream_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_INPUT_STREAM, GInputStream));
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 554 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = _tmp3_;
+#line 555 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = self->priv->input;
+#line 555 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_data_input_stream_set_byte_order (_tmp4_, G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN);
+#line 556 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) 0;
+#line 557 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = (guint64) 0;
+#line 558 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = g_strdup ("");
+#line 558 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->section_name);
+#line 558 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_name = _tmp5_;
+#line 552 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (_tmp0_);
+#line 4599 "VideoMetadata.c"
+}
+
+
+void avi_chunk_close_file (AVIChunk* self, GError** error) {
+ GDataInputStream* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 561 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_AVI_CHUNK (self));
+#line 562 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->input;
+#line 562 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (NULL != _tmp0_) {
+#line 4612 "VideoMetadata.c"
+ GDataInputStream* _tmp1_ = NULL;
+#line 563 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 563 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_input_stream_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_);
+#line 563 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 563 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 563 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4624 "VideoMetadata.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 564 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = NULL;
+#line 4630 "VideoMetadata.c"
+ }
+}
+
+
+void avi_chunk_nonsection_skip (AVIChunk* self, guint64 skip_amount, GError** error) {
+ GDataInputStream* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 568 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_AVI_CHUNK (self));
+#line 569 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->input;
+#line 569 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = skip_amount;
+#line 569 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ skip_uint64 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_INPUT_STREAM, GInputStream), _tmp1_, &_inner_error_);
+#line 569 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 569 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 569 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4653 "VideoMetadata.c"
+ }
+}
+
+
+void avi_chunk_skip (AVIChunk* self, guint64 skip_amount, GError** error) {
+ guint64 _tmp0_ = 0ULL;
+ GDataInputStream* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_AVI_CHUNK (self));
+#line 573 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = skip_amount;
+#line 573 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_advance_section_offset (self, _tmp0_);
+#line 574 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 574 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = skip_amount;
+#line 574 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ skip_uint64 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, G_TYPE_INPUT_STREAM, GInputStream), _tmp2_, &_inner_error_);
+#line 574 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 574 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 574 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4681 "VideoMetadata.c"
+ }
+}
+
+
+AVIChunk* avi_chunk_get_first_child_chunk (AVIChunk* self) {
+ AVIChunk* result = NULL;
+ GDataInputStream* _tmp0_ = NULL;
+ AVIChunk* _tmp1_ = NULL;
+#line 577 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), NULL);
+#line 578 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->input;
+#line 578 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = avi_chunk_new_with_input_stream (_tmp0_, self);
+#line 578 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 578 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 4700 "VideoMetadata.c"
+}
+
+
+static void avi_chunk_advance_section_offset (AVIChunk* self, guint64 amount) {
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp5_ = 0ULL;
+ guint64 _tmp6_ = 0ULL;
+ AVIChunk* _tmp7_ = NULL;
+#line 581 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_AVI_CHUNK (self));
+#line 582 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_offset;
+#line 582 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = amount;
+#line 582 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = self->priv->section_size;
+#line 582 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if ((_tmp0_ + _tmp1_) > _tmp2_) {
+#line 4721 "VideoMetadata.c"
+ guint64 _tmp3_ = 0ULL;
+ guint64 _tmp4_ = 0ULL;
+#line 583 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = self->priv->section_size;
+#line 583 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = self->priv->section_offset;
+#line 583 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ amount = _tmp3_ - _tmp4_;
+#line 4730 "VideoMetadata.c"
+ }
+#line 585 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = self->priv->section_offset;
+#line 585 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = amount;
+#line 585 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = _tmp5_ + _tmp6_;
+#line 586 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = self->priv->parent;
+#line 586 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (NULL != _tmp7_) {
+#line 4742 "VideoMetadata.c"
+ AVIChunk* _tmp8_ = NULL;
+ guint64 _tmp9_ = 0ULL;
+#line 587 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = self->priv->parent;
+#line 587 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = amount;
+#line 587 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_advance_section_offset (_tmp8_, _tmp9_);
+#line 4751 "VideoMetadata.c"
+ }
+}
+
+
+guchar avi_chunk_read_byte (AVIChunk* self, GError** error) {
+ guchar result = '\0';
+ guint8 _tmp0_ = 0U;
+ GDataInputStream* _tmp1_ = NULL;
+ guint8 _tmp2_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 591 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), '\0');
+#line 592 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_advance_section_offset (self, (guint64) 1);
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_data_input_stream_read_byte (_tmp1_, NULL, &_inner_error_);
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return '\0';
+#line 4778 "VideoMetadata.c"
+ }
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = (guchar) _tmp0_;
+#line 593 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 4784 "VideoMetadata.c"
+}
+
+
+guint16 avi_chunk_read_uint16 (AVIChunk* self, GError** error) {
+ guint16 result = 0U;
+ guint16 _tmp0_ = 0U;
+ GDataInputStream* _tmp1_ = NULL;
+ guint16 _tmp2_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 596 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), 0U);
+#line 597 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_advance_section_offset (self, (guint64) 2);
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->input;
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = g_data_input_stream_read_uint16 (_tmp1_, NULL, &_inner_error_);
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return 0U;
+#line 4810 "VideoMetadata.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp0_;
+#line 598 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 4816 "VideoMetadata.c"
+}
+
+
+void avi_chunk_read_chunk (AVIChunk* self, GError** error) {
+ GString* sb = NULL;
+ GString* _tmp0_ = NULL;
+ guint8 _tmp1_ = 0U;
+ GDataInputStream* _tmp2_ = NULL;
+ guint8 _tmp3_ = 0U;
+ GString* _tmp4_ = NULL;
+ guint8 _tmp5_ = 0U;
+ GDataInputStream* _tmp6_ = NULL;
+ guint8 _tmp7_ = 0U;
+ GString* _tmp8_ = NULL;
+ guint8 _tmp9_ = 0U;
+ GDataInputStream* _tmp10_ = NULL;
+ guint8 _tmp11_ = 0U;
+ GString* _tmp12_ = NULL;
+ guint8 _tmp13_ = 0U;
+ GDataInputStream* _tmp14_ = NULL;
+ guint8 _tmp15_ = 0U;
+ GString* _tmp16_ = NULL;
+ GString* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ guint32 _tmp20_ = 0U;
+ GDataInputStream* _tmp21_ = NULL;
+ guint32 _tmp22_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_AVI_CHUNK (self));
+#line 604 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = g_string_new ("");
+#line 604 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sb = _tmp0_;
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = self->priv->input;
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = g_data_input_stream_read_byte (_tmp2_, NULL, &_inner_error_);
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _tmp3_;
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4866 "VideoMetadata.c"
+ }
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = sb;
+#line 605 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp4_, (gchar) _tmp1_);
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = self->priv->input;
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = g_data_input_stream_read_byte (_tmp6_, NULL, &_inner_error_);
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = _tmp7_;
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4886 "VideoMetadata.c"
+ }
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = sb;
+#line 606 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp8_, (gchar) _tmp5_);
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = self->priv->input;
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = g_data_input_stream_read_byte (_tmp10_, NULL, &_inner_error_);
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = _tmp11_;
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4906 "VideoMetadata.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = sb;
+#line 607 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp12_, (gchar) _tmp9_);
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = self->priv->input;
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = g_data_input_stream_read_byte (_tmp14_, NULL, &_inner_error_);
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = _tmp15_;
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4926 "VideoMetadata.c"
+ }
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp16_ = sb;
+#line 608 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp16_, (gchar) _tmp13_);
+#line 609 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp17_ = sb;
+#line 609 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp18_ = _tmp17_->str;
+#line 609 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp19_ = g_strdup (_tmp18_);
+#line 609 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->section_name);
+#line 609 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_name = _tmp19_;
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp21_ = self->priv->input;
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp22_ = g_data_input_stream_read_uint32 (_tmp21_, NULL, &_inner_error_);
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp20_ = _tmp22_;
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 4956 "VideoMetadata.c"
+ }
+#line 610 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) _tmp20_;
+#line 611 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = (guint64) 0;
+#line 601 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 4964 "VideoMetadata.c"
+}
+
+
+gchar* avi_chunk_read_name (AVIChunk* self, GError** error) {
+ gchar* result = NULL;
+ GString* sb = NULL;
+ GString* _tmp0_ = NULL;
+ guchar _tmp1_ = '\0';
+ guchar _tmp2_ = '\0';
+ GString* _tmp3_ = NULL;
+ guchar _tmp4_ = '\0';
+ guchar _tmp5_ = '\0';
+ GString* _tmp6_ = NULL;
+ guchar _tmp7_ = '\0';
+ guchar _tmp8_ = '\0';
+ GString* _tmp9_ = NULL;
+ guchar _tmp10_ = '\0';
+ guchar _tmp11_ = '\0';
+ GString* _tmp12_ = NULL;
+ GString* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 614 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), NULL);
+#line 615 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = g_string_new ("");
+#line 615 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sb = _tmp0_;
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = avi_chunk_read_byte (self, &_inner_error_);
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = _tmp2_;
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 5006 "VideoMetadata.c"
+ }
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = sb;
+#line 616 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp3_, (gchar) _tmp1_);
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = avi_chunk_read_byte (self, &_inner_error_);
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = _tmp5_;
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 5024 "VideoMetadata.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = sb;
+#line 617 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp6_, (gchar) _tmp4_);
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = avi_chunk_read_byte (self, &_inner_error_);
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = _tmp8_;
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 5042 "VideoMetadata.c"
+ }
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = sb;
+#line 618 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp9_, (gchar) _tmp7_);
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = avi_chunk_read_byte (self, &_inner_error_);
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = _tmp11_;
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 5060 "VideoMetadata.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = sb;
+#line 619 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp12_, (gchar) _tmp10_);
+#line 620 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = sb;
+#line 620 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp14_ = _tmp13_->str;
+#line 620 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 620 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp15_;
+#line 620 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 620 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 5078 "VideoMetadata.c"
+}
+
+
+void avi_chunk_next_chunk (AVIChunk* self, GError** error) {
+ guint64 _tmp0_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 623 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (IS_AVI_CHUNK (self));
+#line 624 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = avi_chunk_section_size_remaining (self);
+#line 624 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_skip (self, _tmp0_, &_inner_error_);
+#line 624 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 624 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 624 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return;
+#line 5097 "VideoMetadata.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) 0;
+#line 626 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = (guint64) 0;
+#line 5103 "VideoMetadata.c"
+}
+
+
+gchar* avi_chunk_get_current_chunk_name (AVIChunk* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 629 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), NULL);
+#line 630 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_name;
+#line 630 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 630 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp1_;
+#line 630 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 5121 "VideoMetadata.c"
+}
+
+
+gboolean avi_chunk_is_last_chunk (AVIChunk* self) {
+ gboolean result = FALSE;
+ guint64 _tmp0_ = 0ULL;
+#line 633 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), FALSE);
+#line 634 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_size;
+#line 634 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp0_ == ((guint64) 0);
+#line 634 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 5136 "VideoMetadata.c"
+}
+
+
+guint64 avi_chunk_section_size_remaining (AVIChunk* self) {
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+#line 637 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), 0ULL);
+#line 638 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = self->priv->section_size;
+#line 638 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->section_offset;
+#line 638 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _vala_assert (_tmp0_ >= _tmp1_, "section_size >= section_offset");
+#line 639 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = self->priv->section_size;
+#line 639 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = self->priv->section_offset;
+#line 639 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp2_ - _tmp3_;
+#line 639 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 5162 "VideoMetadata.c"
+}
+
+
+gchar* avi_chunk_section_to_string (AVIChunk* self, GError** error) {
+ gchar* result = NULL;
+ GString* sb = NULL;
+ GString* _tmp0_ = NULL;
+ GString* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 643 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (IS_AVI_CHUNK (self), NULL);
+#line 644 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = g_string_new ("");
+#line 644 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ sb = _tmp0_;
+#line 645 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ while (TRUE) {
+#line 5182 "VideoMetadata.c"
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+ guchar _tmp3_ = '\0';
+ guchar _tmp4_ = '\0';
+ GString* _tmp5_ = NULL;
+ GString* _tmp6_ = NULL;
+ gssize _tmp7_ = 0L;
+#line 645 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp1_ = self->priv->section_offset;
+#line 645 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp2_ = self->priv->section_size;
+#line 645 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!(_tmp1_ < _tmp2_)) {
+#line 645 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ break;
+#line 5198 "VideoMetadata.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp4_ = avi_chunk_read_byte (self, &_inner_error_);
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp3_ = _tmp4_;
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 5212 "VideoMetadata.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp5_ = sb;
+#line 646 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_string_append_c (_tmp5_, (gchar) _tmp3_);
+#line 647 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp6_ = sb;
+#line 647 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp7_ = _tmp6_->len;
+#line 647 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (_tmp7_ > ((gssize) AVI_CHUNK_MAX_STRING_TO_SECTION_LENGTH)) {
+#line 5224 "VideoMetadata.c"
+ GString* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 648 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp8_ = sb;
+#line 648 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp9_ = _tmp8_->str;
+#line 648 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 648 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp10_;
+#line 648 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 648 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 5240 "VideoMetadata.c"
+ }
+ }
+#line 651 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp11_ = sb;
+#line 651 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp12_ = _tmp11_->str;
+#line 651 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 651 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ result = _tmp13_;
+#line 651 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_string_free0 (sb);
+#line 651 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return result;
+#line 5255 "VideoMetadata.c"
+}
+
+
+static void value_avi_chunk_init (GValue* value) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 5262 "VideoMetadata.c"
+}
+
+
+static void value_avi_chunk_free_value (GValue* value) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_unref (value->data[0].v_pointer);
+#line 5271 "VideoMetadata.c"
+ }
+}
+
+
+static void value_avi_chunk_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = avi_chunk_ref (src_value->data[0].v_pointer);
+#line 5281 "VideoMetadata.c"
+ } else {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 5285 "VideoMetadata.c"
+ }
+}
+
+
+static gpointer value_avi_chunk_peek_pointer (const GValue* value) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 5293 "VideoMetadata.c"
+}
+
+
+static gchar* value_avi_chunk_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 5300 "VideoMetadata.c"
+ AVIChunk* object;
+ object = collect_values[0].v_pointer;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5307 "VideoMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 5311 "VideoMetadata.c"
+ }
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = avi_chunk_ref (object);
+#line 5315 "VideoMetadata.c"
+ } else {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 5319 "VideoMetadata.c"
+ }
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 5323 "VideoMetadata.c"
+}
+
+
+static gchar* value_avi_chunk_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ AVIChunk** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!object_p) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 5334 "VideoMetadata.c"
+ }
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = NULL;
+#line 5340 "VideoMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 5344 "VideoMetadata.c"
+ } else {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ *object_p = avi_chunk_ref (value->data[0].v_pointer);
+#line 5348 "VideoMetadata.c"
+ }
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return NULL;
+#line 5352 "VideoMetadata.c"
+}
+
+
+GParamSpec* param_spec_avi_chunk (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAVIChunk* spec;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_AVI_CHUNK), NULL);
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 5366 "VideoMetadata.c"
+}
+
+
+gpointer value_get_avi_chunk (const GValue* value) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AVI_CHUNK), NULL);
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 5375 "VideoMetadata.c"
+}
+
+
+void value_set_avi_chunk (GValue* value, gpointer v_object) {
+ AVIChunk* old;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AVI_CHUNK));
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AVI_CHUNK));
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_ref (value->data[0].v_pointer);
+#line 5395 "VideoMetadata.c"
+ } else {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 5399 "VideoMetadata.c"
+ }
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_unref (old);
+#line 5405 "VideoMetadata.c"
+ }
+}
+
+
+void value_take_avi_chunk (GValue* value, gpointer v_object) {
+ AVIChunk* old;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AVI_CHUNK));
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (v_object) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AVI_CHUNK));
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 5424 "VideoMetadata.c"
+ } else {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 5428 "VideoMetadata.c"
+ }
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (old) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_unref (old);
+#line 5434 "VideoMetadata.c"
+ }
+}
+
+
+static void avi_chunk_class_init (AVIChunkClass * klass) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ avi_chunk_parent_class = g_type_class_peek_parent (klass);
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ ((AVIChunkClass *) klass)->finalize = avi_chunk_finalize;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_class_add_private (klass, sizeof (AVIChunkPrivate));
+#line 5446 "VideoMetadata.c"
+}
+
+
+static void avi_chunk_instance_init (AVIChunk * self) {
+ gchar* _tmp0_ = NULL;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv = AVI_CHUNK_GET_PRIVATE (self);
+#line 535 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->file = NULL;
+#line 536 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _tmp0_ = g_strdup ("");
+#line 536 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_name = _tmp0_;
+#line 537 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_size = (guint64) 0;
+#line 538 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->section_offset = (guint64) 0;
+#line 539 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->input = NULL;
+#line 540 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->priv->parent = NULL;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self->ref_count = 1;
+#line 5470 "VideoMetadata.c"
+}
+
+
+static void avi_chunk_finalize (AVIChunk* obj) {
+ AVIChunk * self;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_AVI_CHUNK, AVIChunk);
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 535 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->file);
+#line 536 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_free0 (self->priv->section_name);
+#line 539 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _g_object_unref0 (self->priv->input);
+#line 540 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ _avi_chunk_unref0 (self->priv->parent);
+#line 5488 "VideoMetadata.c"
+}
+
+
+GType avi_chunk_get_type (void) {
+ static volatile gsize avi_chunk_type_id__volatile = 0;
+ if (g_once_init_enter (&avi_chunk_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_avi_chunk_init, value_avi_chunk_free_value, value_avi_chunk_copy_value, value_avi_chunk_peek_pointer, "p", value_avi_chunk_collect_value, "p", value_avi_chunk_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AVIChunkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) avi_chunk_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AVIChunk), 0, (GInstanceInitFunc) avi_chunk_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType avi_chunk_type_id;
+ avi_chunk_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AVIChunk", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&avi_chunk_type_id__volatile, avi_chunk_type_id);
+ }
+ return avi_chunk_type_id__volatile;
+}
+
+
+gpointer avi_chunk_ref (gpointer instance) {
+ AVIChunk* self;
+ self = instance;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ return instance;
+#line 5513 "VideoMetadata.c"
+}
+
+
+void avi_chunk_unref (gpointer instance) {
+ AVIChunk* self;
+ self = instance;
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ AVI_CHUNK_GET_CLASS (self)->finalize (self);
+#line 534 "/home/jens/Source/shotwell/src/VideoMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 5526 "VideoMetadata.c"
+ }
+}
+
+
+
diff --git a/src/VideoMonitor.c b/src/VideoMonitor.c
new file mode 100644
index 0000000..b3e9adb
--- /dev/null
+++ b/src/VideoMonitor.c
@@ -0,0 +1,2336 @@
+/* VideoMonitor.c generated by valac 0.32.1, the Vala compiler
+ * generated from VideoMonitor.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define TYPE_MONITORABLE_UPDATES (monitorable_updates_get_type ())
+#define MONITORABLE_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE_UPDATES, MonitorableUpdates))
+#define MONITORABLE_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MONITORABLE_UPDATES, MonitorableUpdatesClass))
+#define IS_MONITORABLE_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE_UPDATES))
+#define IS_MONITORABLE_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MONITORABLE_UPDATES))
+#define MONITORABLE_UPDATES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MONITORABLE_UPDATES, MonitorableUpdatesClass))
+
+typedef struct _MonitorableUpdates MonitorableUpdates;
+typedef struct _MonitorableUpdatesClass MonitorableUpdatesClass;
+typedef struct _MonitorableUpdatesPrivate MonitorableUpdatesPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+
+#define TYPE_VIDEO_UPDATES (video_updates_get_type ())
+#define VIDEO_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_UPDATES, VideoUpdates))
+#define VIDEO_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_UPDATES, VideoUpdatesClass))
+#define IS_VIDEO_UPDATES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_UPDATES))
+#define IS_VIDEO_UPDATES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_UPDATES))
+#define VIDEO_UPDATES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_UPDATES, VideoUpdatesClass))
+
+typedef struct _VideoUpdates VideoUpdates;
+typedef struct _VideoUpdatesClass VideoUpdatesClass;
+typedef struct _VideoUpdatesPrivate VideoUpdatesPrivate;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MEDIA_MONITOR (media_monitor_get_type ())
+#define MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_MONITOR, MediaMonitor))
+#define MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+#define IS_MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_MONITOR))
+#define IS_MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_MONITOR))
+#define MEDIA_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+
+typedef struct _MediaMonitor MediaMonitor;
+typedef struct _MediaMonitorClass MediaMonitorClass;
+typedef struct _MediaMonitorPrivate MediaMonitorPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define MEDIA_MONITOR_TYPE_DISCOVERED_FILE (media_monitor_discovered_file_get_type ())
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+
+#define TYPE_VIDEO_MONITOR (video_monitor_get_type ())
+#define VIDEO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_MONITOR, VideoMonitor))
+#define VIDEO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_MONITOR, VideoMonitorClass))
+#define IS_VIDEO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_MONITOR))
+#define IS_VIDEO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_MONITOR))
+#define VIDEO_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_MONITOR, VideoMonitorClass))
+
+typedef struct _VideoMonitor VideoMonitor;
+typedef struct _VideoMonitorClass VideoMonitorClass;
+typedef struct _VideoMonitorPrivate VideoMonitorPrivate;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+#define _workers_unref0(var) ((var == NULL) ? NULL : (var = (workers_unref (var), NULL)))
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define VIDEO_SOURCE_COLLECTION_TYPE_STATE (video_source_collection_state_get_type ())
+#define _monitorable_updates_unref0(var) ((var == NULL) ? NULL : (var = (monitorable_updates_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB (video_monitor_video_interpretable_check_job_get_type ())
+#define VIDEO_MONITOR_VIDEO_INTERPRETABLE_CHECK_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB, VideoMonitorVideoInterpretableCheckJob))
+#define VIDEO_MONITOR_VIDEO_INTERPRETABLE_CHECK_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB, VideoMonitorVideoInterpretableCheckJobClass))
+#define VIDEO_MONITOR_IS_VIDEO_INTERPRETABLE_CHECK_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB))
+#define VIDEO_MONITOR_IS_VIDEO_INTERPRETABLE_CHECK_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB))
+#define VIDEO_MONITOR_VIDEO_INTERPRETABLE_CHECK_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB, VideoMonitorVideoInterpretableCheckJobClass))
+
+typedef struct _VideoMonitorVideoInterpretableCheckJob VideoMonitorVideoInterpretableCheckJob;
+typedef struct _VideoMonitorVideoInterpretableCheckJobClass VideoMonitorVideoInterpretableCheckJobClass;
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+typedef struct _VideoMonitorVideoInterpretableCheckJobPrivate VideoMonitorVideoInterpretableCheckJobPrivate;
+
+#define VIDEO_TYPE_INTERPRETABLE_RESULTS (video_interpretable_results_get_type ())
+#define VIDEO_INTERPRETABLE_RESULTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIDEO_TYPE_INTERPRETABLE_RESULTS, VideoInterpretableResults))
+#define VIDEO_INTERPRETABLE_RESULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIDEO_TYPE_INTERPRETABLE_RESULTS, VideoInterpretableResultsClass))
+#define VIDEO_IS_INTERPRETABLE_RESULTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIDEO_TYPE_INTERPRETABLE_RESULTS))
+#define VIDEO_IS_INTERPRETABLE_RESULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIDEO_TYPE_INTERPRETABLE_RESULTS))
+#define VIDEO_INTERPRETABLE_RESULTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIDEO_TYPE_INTERPRETABLE_RESULTS, VideoInterpretableResultsClass))
+
+typedef struct _VideoInterpretableResults VideoInterpretableResults;
+typedef struct _VideoInterpretableResultsClass VideoInterpretableResultsClass;
+#define _video_interpretable_results_unref0(var) ((var == NULL) ? NULL : (var = (video_interpretable_results_unref (var), NULL)))
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _MonitorableUpdates {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MonitorableUpdatesPrivate * priv;
+ Monitorable* monitorable;
+};
+
+struct _MonitorableUpdatesClass {
+ GTypeClass parent_class;
+ void (*finalize) (MonitorableUpdates *self);
+ gboolean (*is_in_alteration) (MonitorableUpdates* self);
+ void (*set_master_file) (MonitorableUpdates* self, GFile* file);
+ void (*set_master_file_info_altered) (MonitorableUpdates* self, gboolean altered);
+ void (*set_master_file_info) (MonitorableUpdates* self, GFileInfo* info);
+ void (*set_master_in_alteration) (MonitorableUpdates* self, gboolean in_alteration);
+ void (*set_master_alterations_complete) (MonitorableUpdates* self, GFileInfo* info);
+ void (*mark_offline) (MonitorableUpdates* self);
+ void (*mark_online) (MonitorableUpdates* self);
+ void (*reset_online_offline) (MonitorableUpdates* self);
+ gboolean (*is_all_updated) (MonitorableUpdates* self);
+};
+
+struct _VideoUpdates {
+ MonitorableUpdates parent_instance;
+ VideoUpdatesPrivate * priv;
+ Video* video;
+};
+
+struct _VideoUpdatesClass {
+ MonitorableUpdatesClass parent_class;
+ void (*set_check_interpretable) (VideoUpdates* self, gboolean check);
+};
+
+struct _VideoUpdatesPrivate {
+ gboolean check_interpretable;
+};
+
+typedef enum {
+ MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED,
+ MEDIA_MONITOR_DISCOVERED_FILE_IGNORE,
+ MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN
+} MediaMonitorDiscoveredFile;
+
+struct _MediaMonitor {
+ GObject parent_instance;
+ MediaMonitorPrivate * priv;
+};
+
+struct _MediaMonitorClass {
+ GObjectClass parent_class;
+ MediaSourceCollection* (*get_media_source_collection) (MediaMonitor* self);
+ void (*close) (MediaMonitor* self);
+ gchar* (*to_string) (MediaMonitor* self);
+ MonitorableUpdates* (*create_updates) (MediaMonitor* self, Monitorable* monitorable);
+ void (*on_media_source_destroyed) (MediaMonitor* self, DataSource* source);
+ void (*notify_discovery_started) (MediaMonitor* self);
+ MediaMonitorDiscoveredFile (*notify_file_discovered) (MediaMonitor* self, GFile* file, GFileInfo* info, Monitorable** monitorable);
+ GeeCollection* (*candidates_for_unknown_file) (MediaMonitor* self, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+ GFile** (*get_auxilliary_backing_files) (MediaMonitor* self, Monitorable* monitorable, int* result_length1);
+ void (*update_backing_file_info) (MediaMonitor* self, Monitorable* monitorable, GFile* file, GFileInfo* info);
+ void (*notify_discovery_completing) (MediaMonitor* self);
+ gboolean (*is_file_represented) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_created) (MediaMonitor* self, GFile* file, GFileInfo* info);
+ gboolean (*notify_file_moved) (MediaMonitor* self, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+ gboolean (*notify_file_altered) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_attributes_altered) (MediaMonitor* self, GFile* file);
+ gboolean (*notify_file_alteration_completed) (MediaMonitor* self, GFile* file, GFileInfo* info);
+ gboolean (*notify_file_deleted) (MediaMonitor* self, GFile* file);
+ void (*process_updates) (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+};
+
+struct _VideoMonitor {
+ MediaMonitor parent_instance;
+ VideoMonitorPrivate * priv;
+};
+
+struct _VideoMonitorClass {
+ MediaMonitorClass parent_class;
+};
+
+struct _VideoMonitorPrivate {
+ Workers* workers;
+ guint64 background_jobs;
+};
+
+typedef enum {
+ VIDEO_SOURCE_COLLECTION_STATE_UNKNOWN,
+ VIDEO_SOURCE_COLLECTION_STATE_ONLINE,
+ VIDEO_SOURCE_COLLECTION_STATE_OFFLINE,
+ VIDEO_SOURCE_COLLECTION_STATE_TRASH
+} VideoSourceCollectionState;
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _VideoMonitorVideoInterpretableCheckJob {
+ BackgroundJob parent_instance;
+ VideoMonitorVideoInterpretableCheckJobPrivate * priv;
+ Video* video;
+ VideoInterpretableResults* results;
+};
+
+struct _VideoMonitorVideoInterpretableCheckJobClass {
+ BackgroundJobClass parent_class;
+};
+
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+
+static gpointer video_updates_parent_class = NULL;
+static gpointer video_monitor_parent_class = NULL;
+extern VideoSourceCollection* video_global;
+static gpointer video_monitor_video_interpretable_check_job_parent_class = NULL;
+
+gpointer monitorable_updates_ref (gpointer instance);
+void monitorable_updates_unref (gpointer instance);
+GParamSpec* param_spec_monitorable_updates (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_monitorable_updates (GValue* value, gpointer v_object);
+void value_take_monitorable_updates (GValue* value, gpointer v_object);
+gpointer value_get_monitorable_updates (const GValue* value);
+GType monitorable_updates_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType monitorable_get_type (void) G_GNUC_CONST;
+GType video_updates_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+#define VIDEO_UPDATES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_VIDEO_UPDATES, VideoUpdatesPrivate))
+enum {
+ VIDEO_UPDATES_DUMMY_PROPERTY
+};
+VideoUpdates* video_updates_new (Video* video);
+VideoUpdates* video_updates_construct (GType object_type, Video* video);
+MonitorableUpdates* monitorable_updates_new (Monitorable* monitorable);
+MonitorableUpdates* monitorable_updates_construct (GType object_type, Monitorable* monitorable);
+void video_updates_set_check_interpretable (VideoUpdates* self, gboolean check);
+static void video_updates_real_set_check_interpretable (VideoUpdates* self, gboolean check);
+static void video_updates_real_mark_online (MonitorableUpdates* base);
+void monitorable_updates_mark_online (MonitorableUpdates* self);
+gboolean video_updates_is_check_interpretable (VideoUpdates* self);
+static gboolean video_updates_real_is_all_updated (MonitorableUpdates* base);
+gboolean monitorable_updates_is_all_updated (MonitorableUpdates* self);
+static void video_updates_finalize (MonitorableUpdates* obj);
+GType media_monitor_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType media_monitor_discovered_file_get_type (void) G_GNUC_CONST;
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+GType video_monitor_get_type (void) G_GNUC_CONST;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+#define VIDEO_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_VIDEO_MONITOR, VideoMonitorPrivate))
+enum {
+ VIDEO_MONITOR_DUMMY_PROPERTY
+};
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+#define VIDEO_MONITOR_MAX_INTERPRETABLE_CHECKS_PER_CYCLE 5
+VideoMonitor* video_monitor_new (GCancellable* cancellable);
+VideoMonitor* video_monitor_construct (GType object_type, GCancellable* cancellable);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+MediaMonitor* media_monitor_construct (GType object_type, MediaSourceCollection* sources, GCancellable* cancellable);
+GeeCollection* data_collection_get_all (DataCollection* self);
+gboolean video_get_is_interpretable (Video* self);
+void video_monitor_set_check_interpretable (VideoMonitor* self, Video* video, gboolean check);
+static MonitorableUpdates* video_monitor_real_create_updates (MediaMonitor* base, Monitorable* monitorable);
+static MediaSourceCollection* video_monitor_real_get_media_source_collection (MediaMonitor* base);
+static gboolean video_monitor_real_is_file_represented (MediaMonitor* base, GFile* file);
+GType video_source_collection_state_get_type (void) G_GNUC_CONST;
+static Video* video_monitor_get_state (VideoMonitor* self, GFile* file, VideoSourceCollectionState* state);
+static MediaMonitorDiscoveredFile video_monitor_real_notify_file_discovered (MediaMonitor* base, GFile* file, GFileInfo* info, Monitorable** monitorable);
+static GeeCollection* video_monitor_real_candidates_for_unknown_file (MediaMonitor* base, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_);
+void video_source_collection_fetch_by_matching_backing (VideoSourceCollection* self, GFileInfo* info, GeeCollection* matching_master);
+static gboolean video_monitor_real_notify_file_created (MediaMonitor* base, GFile* file, GFileInfo* info);
+void media_monitor_update_online (MediaMonitor* self, Monitorable* monitorable);
+static gboolean video_monitor_real_notify_file_moved (MediaMonitor* base, GFile* old_file, GFile* new_file, GFileInfo* new_file_info);
+void media_monitor_update_master_file (MediaMonitor* self, Monitorable* monitorable, GFile* file);
+void media_monitor_update_offline (MediaMonitor* self, Monitorable* monitorable);
+static gboolean video_monitor_real_notify_file_altered (MediaMonitor* base, GFile* file);
+static gboolean video_monitor_real_notify_file_attributes_altered (MediaMonitor* base, GFile* file);
+void media_monitor_update_master_file_info_altered (MediaMonitor* self, Monitorable* monitorable);
+void media_monitor_update_master_file_in_alteration (MediaMonitor* self, Monitorable* monitorable, gboolean in_alteration);
+static gboolean video_monitor_real_notify_file_alteration_completed (MediaMonitor* base, GFile* file, GFileInfo* info);
+void media_monitor_update_master_file_alterations_completed (MediaMonitor* self, Monitorable* monitorable, GFileInfo* info);
+static gboolean video_monitor_real_notify_file_deleted (MediaMonitor* base, GFile* file);
+GeeCollection* media_monitor_get_monitorables (MediaMonitor* self);
+VideoUpdates* video_monitor_get_existing_video_updates (VideoMonitor* self, Video* video);
+GFile* monitorable_updates_get_master_file (MonitorableUpdates* self);
+GFile* media_source_get_master_file (MediaSource* self);
+Video* video_source_collection_get_state_by_file (VideoSourceCollection* self, GFile* file, VideoSourceCollectionState* state);
+VideoUpdates* video_monitor_fetch_video_updates (VideoMonitor* self, Video* video);
+MonitorableUpdates* media_monitor_fetch_updates (MediaMonitor* self, Monitorable* monitorable);
+MonitorableUpdates* media_monitor_get_existing_updates (MediaMonitor* self, Monitorable* monitorable);
+static void video_monitor_real_process_updates (MediaMonitor* base, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+void media_monitor_process_updates (MediaMonitor* self, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error);
+#define MEDIA_MONITOR_MAX_OPERATIONS_PER_CYCLE 100
+void media_monitor_mdbg (const gchar* msg);
+void video_notify_offline_thumbs_regenerated (void);
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+void workers_enqueue (Workers* self, BackgroundJob* job);
+static void video_monitor_on_interpretable_check_complete (VideoMonitor* self, BackgroundJob* j);
+static void _video_monitor_on_interpretable_check_complete_completion_callback (BackgroundJob* job, gpointer self);
+static VideoMonitorVideoInterpretableCheckJob* video_monitor_video_interpretable_check_job_new (Video* video, CompletionCallback callback, void* callback_target);
+static VideoMonitorVideoInterpretableCheckJob* video_monitor_video_interpretable_check_job_construct (GType object_type, Video* video, CompletionCallback callback, void* callback_target);
+static GType video_monitor_video_interpretable_check_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+gpointer video_interpretable_results_ref (gpointer instance);
+void video_interpretable_results_unref (gpointer instance);
+GParamSpec* video_param_spec_interpretable_results (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void video_value_set_interpretable_results (GValue* value, gpointer v_object);
+void video_value_take_interpretable_results (GValue* value, gpointer v_object);
+gpointer video_value_get_interpretable_results (const GValue* value);
+GType video_interpretable_results_get_type (void) G_GNUC_CONST;
+void video_interpretable_results_foreground_finish (VideoInterpretableResults* self);
+void video_notify_normal_thumbs_regenerated (void);
+enum {
+ VIDEO_MONITOR_VIDEO_INTERPRETABLE_CHECK_JOB_DUMMY_PROPERTY
+};
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+static void video_monitor_video_interpretable_check_job_real_execute (BackgroundJob* base);
+VideoInterpretableResults* video_check_is_interpretable (Video* self);
+static void video_monitor_video_interpretable_check_job_finalize (BackgroundJob* obj);
+static void video_monitor_finalize (GObject* obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 15 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 548 "VideoMonitor.c"
+}
+
+
+VideoUpdates* video_updates_construct (GType object_type, Video* video) {
+ VideoUpdates* self = NULL;
+ Video* _tmp0_ = NULL;
+ Video* _tmp1_ = NULL;
+ Video* _tmp2_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO (video), NULL);
+#line 13 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = video;
+#line 13 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = (VideoUpdates*) monitorable_updates_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MONITORABLE, Monitorable));
+#line 15 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = video;
+#line 15 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 15 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (self->video);
+#line 15 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->video = _tmp2_;
+#line 12 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return self;
+#line 573 "VideoMonitor.c"
+}
+
+
+VideoUpdates* video_updates_new (Video* video) {
+#line 12 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return video_updates_construct (TYPE_VIDEO_UPDATES, video);
+#line 580 "VideoMonitor.c"
+}
+
+
+static void video_updates_real_set_check_interpretable (VideoUpdates* self, gboolean check) {
+ gboolean _tmp0_ = FALSE;
+#line 19 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = check;
+#line 19 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv->check_interpretable = _tmp0_;
+#line 590 "VideoMonitor.c"
+}
+
+
+void video_updates_set_check_interpretable (VideoUpdates* self, gboolean check) {
+#line 18 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_if_fail (IS_VIDEO_UPDATES (self));
+#line 18 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ VIDEO_UPDATES_GET_CLASS (self)->set_check_interpretable (self, check);
+#line 599 "VideoMonitor.c"
+}
+
+
+static void video_updates_real_mark_online (MonitorableUpdates* base) {
+ VideoUpdates * self;
+#line 22 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_UPDATES, VideoUpdates);
+#line 23 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ MONITORABLE_UPDATES_CLASS (video_updates_parent_class)->mark_online (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 25 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_updates_set_check_interpretable (self, TRUE);
+#line 611 "VideoMonitor.c"
+}
+
+
+gboolean video_updates_is_check_interpretable (VideoUpdates* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 28 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO_UPDATES (self), FALSE);
+#line 29 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = self->priv->check_interpretable;
+#line 29 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = _tmp0_;
+#line 29 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 626 "VideoMonitor.c"
+}
+
+
+static gboolean video_updates_real_is_all_updated (MonitorableUpdates* base) {
+ VideoUpdates * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 32 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_UPDATES, VideoUpdates);
+#line 33 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = self->priv->check_interpretable;
+#line 33 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp1_ == FALSE) {
+#line 641 "VideoMonitor.c"
+ gboolean _tmp2_ = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = MONITORABLE_UPDATES_CLASS (video_updates_parent_class)->is_all_updated (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 33 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = _tmp2_;
+#line 647 "VideoMonitor.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = FALSE;
+#line 651 "VideoMonitor.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = _tmp0_;
+#line 33 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 657 "VideoMonitor.c"
+}
+
+
+static void video_updates_class_init (VideoUpdatesClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_updates_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->finalize = video_updates_finalize;
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_type_class_add_private (klass, sizeof (VideoUpdatesPrivate));
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((VideoUpdatesClass *) klass)->set_check_interpretable = video_updates_real_set_check_interpretable;
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->mark_online = video_updates_real_mark_online;
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MonitorableUpdatesClass *) klass)->is_all_updated = video_updates_real_is_all_updated;
+#line 674 "VideoMonitor.c"
+}
+
+
+static void video_updates_instance_init (VideoUpdates * self) {
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv = VIDEO_UPDATES_GET_PRIVATE (self);
+#line 10 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv->check_interpretable = FALSE;
+#line 683 "VideoMonitor.c"
+}
+
+
+static void video_updates_finalize (MonitorableUpdates* obj) {
+ VideoUpdates * self;
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_UPDATES, VideoUpdates);
+#line 8 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (self->video);
+#line 7 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ MONITORABLE_UPDATES_CLASS (video_updates_parent_class)->finalize (obj);
+#line 695 "VideoMonitor.c"
+}
+
+
+GType video_updates_get_type (void) {
+ static volatile gsize video_updates_type_id__volatile = 0;
+ if (g_once_init_enter (&video_updates_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoUpdatesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_updates_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoUpdates), 0, (GInstanceInitFunc) video_updates_instance_init, NULL };
+ GType video_updates_type_id;
+ video_updates_type_id = g_type_register_static (TYPE_MONITORABLE_UPDATES, "VideoUpdates", &g_define_type_info, 0);
+ g_once_init_leave (&video_updates_type_id__volatile, video_updates_type_id);
+ }
+ return video_updates_type_id__volatile;
+}
+
+
+VideoMonitor* video_monitor_construct (GType object_type, GCancellable* cancellable) {
+ VideoMonitor * self = NULL;
+ VideoSourceCollection* _tmp0_ = NULL;
+ GCancellable* _tmp1_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 66 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = video_global;
+#line 66 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = cancellable;
+#line 66 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = (VideoMonitor*) media_monitor_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _tmp1_);
+#line 723 "VideoMonitor.c"
+ {
+ GeeIterator* _obj_it = NULL;
+ VideoSourceCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_global;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection));
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = _tmp3_;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp6_ = _tmp5_;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_tmp4_);
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _obj_it = _tmp6_;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ while (TRUE) {
+#line 747 "VideoMonitor.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ DataObject* obj = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ Video* video = NULL;
+ DataObject* _tmp11_ = NULL;
+ Video* _tmp12_ = NULL;
+ Video* _tmp13_ = NULL;
+ Video* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp7_ = _obj_it;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (!_tmp8_) {
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ break;
+#line 767 "VideoMonitor.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp9_ = _obj_it;
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ obj = (DataObject*) _tmp10_;
+#line 69 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp11_ = obj;
+#line 69 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, TYPE_VIDEO) ? ((Video*) _tmp11_) : NULL);
+#line 69 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = _tmp12_;
+#line 70 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp13_ = video;
+#line 70 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_assert (_tmp13_ != NULL, "video != null");
+#line 71 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp14_ = video;
+#line 71 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp15_ = video_get_is_interpretable (_tmp14_);
+#line 71 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (!_tmp15_) {
+#line 791 "VideoMonitor.c"
+ Video* _tmp16_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp16_ = video;
+#line 72 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_monitor_set_check_interpretable (self, _tmp16_, TRUE);
+#line 797 "VideoMonitor.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (obj);
+#line 803 "VideoMonitor.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_obj_it);
+#line 807 "VideoMonitor.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return self;
+#line 811 "VideoMonitor.c"
+}
+
+
+VideoMonitor* video_monitor_new (GCancellable* cancellable) {
+#line 65 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return video_monitor_construct (TYPE_VIDEO_MONITOR, cancellable);
+#line 818 "VideoMonitor.c"
+}
+
+
+static MonitorableUpdates* video_monitor_real_create_updates (MediaMonitor* base, Monitorable* monitorable) {
+ VideoMonitor * self;
+ MonitorableUpdates* result = NULL;
+ Monitorable* _tmp0_ = NULL;
+ Monitorable* _tmp1_ = NULL;
+ VideoUpdates* _tmp2_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 76 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_MONITORABLE (monitorable), NULL);
+#line 77 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = monitorable;
+#line 77 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_VIDEO), "monitorable is Video");
+#line 79 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = monitorable;
+#line 79 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_updates_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_VIDEO, Video));
+#line 79 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MONITORABLE_UPDATES, MonitorableUpdates);
+#line 79 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 844 "VideoMonitor.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 83 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 851 "VideoMonitor.c"
+}
+
+
+static MediaSourceCollection* video_monitor_real_get_media_source_collection (MediaMonitor* base) {
+ VideoMonitor * self;
+ MediaSourceCollection* result = NULL;
+ VideoSourceCollection* _tmp0_ = NULL;
+ MediaSourceCollection* _tmp1_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 83 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = video_global;
+#line 83 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = _data_collection_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 83 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = _tmp1_;
+#line 83 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 870 "VideoMonitor.c"
+}
+
+
+static gboolean video_monitor_real_is_file_represented (MediaMonitor* base, GFile* file) {
+ VideoMonitor * self;
+ gboolean result = FALSE;
+ VideoSourceCollectionState state = 0;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 86 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 86 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = file;
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ state = _tmp1_;
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = _tmp3_ != NULL;
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = _tmp4_;
+#line 88 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 903 "VideoMonitor.c"
+}
+
+
+static MediaMonitorDiscoveredFile video_monitor_real_notify_file_discovered (MediaMonitor* base, GFile* file, GFileInfo* info, Monitorable** monitorable) {
+ VideoMonitor * self;
+ Monitorable* _vala_monitorable = NULL;
+ MediaMonitorDiscoveredFile result = 0;
+ VideoSourceCollectionState state = 0;
+ Video* video = NULL;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+ VideoSourceCollectionState _tmp4_ = 0;
+#line 91 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 91 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), 0);
+#line 91 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), 0);
+#line 94 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = file;
+#line 94 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 94 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ state = _tmp1_;
+#line 94 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = _tmp2_;
+#line 95 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = video;
+#line 95 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 96 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 96 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_monitorable = NULL;
+#line 98 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN;
+#line 98 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 98 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (monitorable) {
+#line 98 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 948 "VideoMonitor.c"
+ } else {
+#line 98 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 952 "VideoMonitor.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 956 "VideoMonitor.c"
+ }
+#line 101 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = state;
+#line 101 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ switch (_tmp4_) {
+#line 101 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ case VIDEO_SOURCE_COLLECTION_STATE_ONLINE:
+#line 101 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ case VIDEO_SOURCE_COLLECTION_STATE_OFFLINE:
+#line 966 "VideoMonitor.c"
+ {
+ Video* _tmp5_ = NULL;
+ Monitorable* _tmp6_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = video;
+#line 104 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MONITORABLE, Monitorable));
+#line 104 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 104 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_monitorable = _tmp6_;
+#line 106 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = MEDIA_MONITOR_DISCOVERED_FILE_REPRESENTED;
+#line 106 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 106 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (monitorable) {
+#line 106 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 986 "VideoMonitor.c"
+ } else {
+#line 106 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 990 "VideoMonitor.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 994 "VideoMonitor.c"
+ }
+ default:
+#line 101 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ case VIDEO_SOURCE_COLLECTION_STATE_TRASH:
+#line 999 "VideoMonitor.c"
+ {
+#line 111 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 111 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_monitorable = NULL;
+#line 113 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = MEDIA_MONITOR_DISCOVERED_FILE_IGNORE;
+#line 113 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 113 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (monitorable) {
+#line 113 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 1013 "VideoMonitor.c"
+ } else {
+#line 113 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 1017 "VideoMonitor.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1021 "VideoMonitor.c"
+ }
+ }
+#line 91 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 91 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (monitorable) {
+#line 91 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ *monitorable = _vala_monitorable;
+#line 1030 "VideoMonitor.c"
+ } else {
+#line 91 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_vala_monitorable);
+#line 1034 "VideoMonitor.c"
+ }
+}
+
+
+static GeeCollection* video_monitor_real_candidates_for_unknown_file (MediaMonitor* base, GFile* file, GFileInfo* info, MediaMonitorDiscoveredFile* _result_) {
+ VideoMonitor * self;
+ MediaMonitorDiscoveredFile _vala_result = 0;
+ GeeCollection* result = NULL;
+ GeeCollection* matched = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ VideoSourceCollection* _tmp1_ = NULL;
+ GFileInfo* _tmp2_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 117 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 117 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
+#line 119 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 119 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ matched = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 120 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = video_global;
+#line 120 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = info;
+#line 120 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_source_collection_fetch_by_matching_backing (_tmp1_, _tmp2_, matched);
+#line 122 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_result = MEDIA_MONITOR_DISCOVERED_FILE_UNKNOWN;
+#line 124 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = matched;
+#line 124 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_result_) {
+#line 124 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ *_result_ = _vala_result;
+#line 1071 "VideoMonitor.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1075 "VideoMonitor.c"
+}
+
+
+static gboolean video_monitor_real_notify_file_created (MediaMonitor* base, GFile* file, GFileInfo* info) {
+ VideoMonitor * self;
+ gboolean result = FALSE;
+ VideoSourceCollectionState state = 0;
+ Video* video = NULL;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+ Video* _tmp4_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 127 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 127 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 129 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = file;
+#line 129 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 129 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ state = _tmp1_;
+#line 129 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = _tmp2_;
+#line 130 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = video;
+#line 130 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 131 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = FALSE;
+#line 131 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 131 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1113 "VideoMonitor.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = video;
+#line 133 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_online (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MONITORABLE, Monitorable));
+#line 135 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = TRUE;
+#line 135 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 135 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1125 "VideoMonitor.c"
+}
+
+
+static gboolean video_monitor_real_notify_file_moved (MediaMonitor* base, GFile* old_file, GFile* new_file, GFileInfo* new_file_info) {
+ VideoMonitor * self;
+ gboolean result = FALSE;
+ VideoSourceCollectionState old_state = 0;
+ Video* old_video = NULL;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ VideoSourceCollectionState new_state = 0;
+ Video* new_video = NULL;
+ GFile* _tmp3_ = NULL;
+ VideoSourceCollectionState _tmp4_ = 0;
+ Video* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ Video* _tmp7_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 138 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (old_file), FALSE);
+#line 138 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (new_file), FALSE);
+#line 138 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (new_file_info), FALSE);
+#line 140 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = old_file;
+#line 140 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 140 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ old_state = _tmp1_;
+#line 140 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ old_video = _tmp2_;
+#line 143 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = new_file;
+#line 143 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = video_monitor_get_state (self, _tmp3_, &_tmp4_);
+#line 143 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ new_state = _tmp4_;
+#line 143 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ new_video = _tmp5_;
+#line 157 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp7_ = old_video;
+#line 157 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp7_ != NULL) {
+#line 1172 "VideoMonitor.c"
+ Video* _tmp8_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp8_ = new_video;
+#line 157 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp6_ = _tmp8_ == NULL;
+#line 1178 "VideoMonitor.c"
+ } else {
+#line 157 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp6_ = FALSE;
+#line 1182 "VideoMonitor.c"
+ }
+#line 157 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp6_) {
+#line 1186 "VideoMonitor.c"
+ Video* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp9_ = old_video;
+#line 159 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp10_ = new_file;
+#line 159 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MONITORABLE, Monitorable), _tmp10_);
+#line 1195 "VideoMonitor.c"
+ } else {
+ gboolean _tmp11_ = FALSE;
+ Video* _tmp12_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp12_ = old_video;
+#line 160 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp12_ == NULL) {
+#line 1203 "VideoMonitor.c"
+ Video* _tmp13_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp13_ = new_video;
+#line 160 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp11_ = _tmp13_ != NULL;
+#line 1209 "VideoMonitor.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp11_ = FALSE;
+#line 1213 "VideoMonitor.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp11_) {
+#line 1217 "VideoMonitor.c"
+ Video* _tmp14_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp14_ = new_video;
+#line 162 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_monitor_set_check_interpretable (self, _tmp14_, TRUE);
+#line 1223 "VideoMonitor.c"
+ } else {
+ gboolean _tmp15_ = FALSE;
+ Video* _tmp16_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp16_ = old_video;
+#line 163 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp16_ == NULL) {
+#line 1231 "VideoMonitor.c"
+ Video* _tmp17_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp17_ = new_video;
+#line 163 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp15_ = _tmp17_ == NULL;
+#line 1237 "VideoMonitor.c"
+ } else {
+#line 163 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp15_ = FALSE;
+#line 1241 "VideoMonitor.c"
+ }
+#line 163 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp15_) {
+#line 165 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = FALSE;
+#line 165 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (new_video);
+#line 165 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (old_video);
+#line 165 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1253 "VideoMonitor.c"
+ } else {
+ gboolean _tmp18_ = FALSE;
+ Video* _tmp19_ = NULL;
+ Video* _tmp21_ = NULL;
+ Video* _tmp22_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp19_ = old_video;
+#line 167 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp19_ != NULL) {
+#line 1263 "VideoMonitor.c"
+ Video* _tmp20_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp20_ = new_video;
+#line 167 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp18_ = _tmp20_ != NULL;
+#line 1269 "VideoMonitor.c"
+ } else {
+#line 167 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp18_ = FALSE;
+#line 1273 "VideoMonitor.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_assert (_tmp18_, "old_video != null && new_video != null");
+#line 170 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp21_ = old_video;
+#line 170 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_MONITORABLE, Monitorable));
+#line 171 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp22_ = new_video;
+#line 171 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_monitor_set_check_interpretable (self, _tmp22_, TRUE);
+#line 1285 "VideoMonitor.c"
+ }
+ }
+ }
+#line 174 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = TRUE;
+#line 174 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (new_video);
+#line 174 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (old_video);
+#line 174 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1297 "VideoMonitor.c"
+}
+
+
+static gboolean video_monitor_real_notify_file_altered (MediaMonitor* base, GFile* file) {
+ VideoMonitor * self;
+ gboolean result = FALSE;
+ VideoSourceCollectionState state = 0;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 177 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = file;
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ state = _tmp1_;
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = _tmp3_ != NULL;
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_tmp3_);
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = _tmp4_;
+#line 179 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1330 "VideoMonitor.c"
+}
+
+
+static gboolean video_monitor_real_notify_file_attributes_altered (MediaMonitor* base, GFile* file) {
+ VideoMonitor * self;
+ gboolean result = FALSE;
+ VideoSourceCollectionState state = 0;
+ Video* video = NULL;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+ Video* _tmp4_ = NULL;
+ Video* _tmp5_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 182 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 184 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = file;
+#line 184 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 184 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ state = _tmp1_;
+#line 184 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = _tmp2_;
+#line 185 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = video;
+#line 185 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 186 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = FALSE;
+#line 186 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 186 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1367 "VideoMonitor.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = video;
+#line 188 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_master_file_info_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MONITORABLE, Monitorable));
+#line 189 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = video;
+#line 189 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_master_file_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MONITORABLE, Monitorable), TRUE);
+#line 191 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = TRUE;
+#line 191 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 191 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1383 "VideoMonitor.c"
+}
+
+
+static gboolean video_monitor_real_notify_file_alteration_completed (MediaMonitor* base, GFile* file, GFileInfo* info) {
+ VideoMonitor * self;
+ gboolean result = FALSE;
+ VideoSourceCollectionState state = 0;
+ Video* video = NULL;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+ Video* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 194 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 194 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 196 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = file;
+#line 196 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 196 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ state = _tmp1_;
+#line 196 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = _tmp2_;
+#line 197 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = video;
+#line 197 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 198 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = FALSE;
+#line 198 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 198 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1422 "VideoMonitor.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = video;
+#line 200 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = info;
+#line 200 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_master_file_alterations_completed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MONITORABLE, Monitorable), _tmp5_);
+#line 202 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = TRUE;
+#line 202 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 202 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1436 "VideoMonitor.c"
+}
+
+
+static gboolean video_monitor_real_notify_file_deleted (MediaMonitor* base, GFile* file) {
+ VideoMonitor * self;
+ gboolean result = FALSE;
+ VideoSourceCollectionState state = 0;
+ Video* video = NULL;
+ GFile* _tmp0_ = NULL;
+ VideoSourceCollectionState _tmp1_ = 0;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+ Video* _tmp4_ = NULL;
+ Video* _tmp5_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 205 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 207 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = file;
+#line 207 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video_monitor_get_state (self, _tmp0_, &_tmp1_);
+#line 207 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ state = _tmp1_;
+#line 207 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = _tmp2_;
+#line 208 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = video;
+#line 208 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp3_ == NULL) {
+#line 209 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = FALSE;
+#line 209 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 209 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1473 "VideoMonitor.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = video;
+#line 211 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_master_file_in_alteration (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MONITORABLE, Monitorable), FALSE);
+#line 212 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = video;
+#line 212 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_update_offline (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MONITORABLE, Monitorable));
+#line 214 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = TRUE;
+#line 214 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 214 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1489 "VideoMonitor.c"
+}
+
+
+static Video* video_monitor_get_state (VideoMonitor* self, GFile* file, VideoSourceCollectionState* state) {
+ VideoSourceCollectionState _vala_state = 0;
+ Video* result = NULL;
+ GFile* real_file = NULL;
+ GFile* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ VideoSourceCollection* _tmp28_ = NULL;
+ VideoSourceCollectionState _tmp29_ = 0;
+ Video* _tmp30_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO_MONITOR (self), NULL);
+#line 217 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 218 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ real_file = NULL;
+#line 1508 "VideoMonitor.c"
+ {
+ GeeIterator* _monitorable_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = media_monitor_get_monitorables (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor));
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = _tmp0_;
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = _tmp2_;
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_tmp1_);
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_it = _tmp3_;
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ while (TRUE) {
+#line 1529 "VideoMonitor.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ Monitorable* monitorable = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Video* video = NULL;
+ Monitorable* _tmp8_ = NULL;
+ Video* _tmp9_ = NULL;
+ VideoUpdates* updates = NULL;
+ Video* _tmp10_ = NULL;
+ VideoUpdates* _tmp11_ = NULL;
+ VideoUpdates* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ VideoUpdates* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+ GFile* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = _monitorable_it;
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (!_tmp5_) {
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ break;
+#line 1555 "VideoMonitor.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp6_ = _monitorable_it;
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ monitorable = (Monitorable*) _tmp7_;
+#line 220 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp8_ = monitorable;
+#line 220 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_VIDEO, Video));
+#line 220 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = _tmp9_;
+#line 222 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp10_ = video;
+#line 222 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp11_ = video_monitor_get_existing_video_updates (self, _tmp10_);
+#line 222 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ updates = _tmp11_;
+#line 223 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp12_ = updates;
+#line 223 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp12_ == NULL) {
+#line 224 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 224 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 224 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 224 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ continue;
+#line 1587 "VideoMonitor.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp14_ = updates;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp15_ = monitorable_updates_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp16_ = _tmp15_;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp17_ = _tmp16_ != NULL;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_tmp16_);
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp17_) {
+#line 1601 "VideoMonitor.c"
+ VideoUpdates* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp18_ = updates;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp19_ = monitorable_updates_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_MONITORABLE_UPDATES, MonitorableUpdates));
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp20_ = _tmp19_;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp21_ = file;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp22_ = g_file_equal (_tmp20_, _tmp21_);
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp13_ = _tmp22_;
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1621 "VideoMonitor.c"
+ } else {
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp13_ = FALSE;
+#line 1625 "VideoMonitor.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp13_) {
+#line 1629 "VideoMonitor.c"
+ Video* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp23_ = video;
+#line 227 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp24_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 227 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (real_file);
+#line 227 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ real_file = _tmp24_;
+#line 229 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 229 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 229 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 229 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ break;
+#line 1648 "VideoMonitor.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (monitorable);
+#line 1656 "VideoMonitor.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_monitorable_it);
+#line 1660 "VideoMonitor.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp26_ = real_file;
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp25_ = _tmp26_;
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp25_ == NULL) {
+#line 1668 "VideoMonitor.c"
+ GFile* _tmp27_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp27_ = file;
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp25_ = _tmp27_;
+#line 1674 "VideoMonitor.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp28_ = video_global;
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp30_ = video_source_collection_get_state_by_file (_tmp28_, _tmp25_, &_tmp29_);
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_state = _tmp29_;
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = _tmp30_;
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (real_file);
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (state) {
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ *state = _vala_state;
+#line 1690 "VideoMonitor.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1694 "VideoMonitor.c"
+}
+
+
+VideoUpdates* video_monitor_fetch_video_updates (VideoMonitor* self, Video* video) {
+ VideoUpdates* result = NULL;
+ VideoUpdates* updates = NULL;
+ Video* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ VideoUpdates* _tmp2_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO_MONITOR (self), NULL);
+#line 236 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO (video), NULL);
+#line 237 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = video;
+#line 237 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = media_monitor_fetch_updates (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MONITORABLE, Monitorable));
+#line 237 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_VIDEO_UPDATES) ? ((VideoUpdates*) _tmp1_) : NULL;
+#line 237 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp2_ == NULL) {
+#line 237 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp1_);
+#line 1718 "VideoMonitor.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ updates = _tmp2_;
+#line 238 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _vala_assert (updates != NULL, "updates != null");
+#line 240 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = updates;
+#line 240 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1728 "VideoMonitor.c"
+}
+
+
+VideoUpdates* video_monitor_get_existing_video_updates (VideoMonitor* self, Video* video) {
+ VideoUpdates* result = NULL;
+ Video* _tmp0_ = NULL;
+ MonitorableUpdates* _tmp1_ = NULL;
+ VideoUpdates* _tmp2_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO_MONITOR (self), NULL);
+#line 243 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO (video), NULL);
+#line 244 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = video;
+#line 244 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = media_monitor_get_existing_updates (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MONITORABLE, Monitorable));
+#line 244 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_VIDEO_UPDATES) ? ((VideoUpdates*) _tmp1_) : NULL;
+#line 244 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp2_ == NULL) {
+#line 244 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp1_);
+#line 1751 "VideoMonitor.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ result = _tmp2_;
+#line 244 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return result;
+#line 1757 "VideoMonitor.c"
+}
+
+
+void video_monitor_set_check_interpretable (VideoMonitor* self, Video* video, gboolean check) {
+ Video* _tmp0_ = NULL;
+ VideoUpdates* _tmp1_ = NULL;
+ VideoUpdates* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_if_fail (IS_VIDEO_MONITOR (self));
+#line 247 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_if_fail (IS_VIDEO (video));
+#line 248 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = video;
+#line 248 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = video_monitor_fetch_video_updates (self, _tmp0_);
+#line 248 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = _tmp1_;
+#line 248 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = check;
+#line 248 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_updates_set_check_interpretable (_tmp2_, _tmp3_);
+#line 248 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (_tmp2_);
+#line 1782 "VideoMonitor.c"
+}
+
+
+static gpointer _monitorable_updates_ref0 (gpointer self) {
+#line 266 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return self ? monitorable_updates_ref (self) : NULL;
+#line 1789 "VideoMonitor.c"
+}
+
+
+static void _video_monitor_on_interpretable_check_complete_completion_callback (BackgroundJob* job, gpointer self) {
+#line 287 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_monitor_on_interpretable_check_complete ((VideoMonitor*) self, job);
+#line 1796 "VideoMonitor.c"
+}
+
+
+static void video_monitor_real_process_updates (MediaMonitor* base, GeeCollection* all_updates, TransactionController* controller, gint* op_count, GError** error) {
+ VideoMonitor * self;
+ GeeCollection* _tmp0_ = NULL;
+ TransactionController* _tmp1_ = NULL;
+ GeeArrayList* check = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 251 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (all_updates));
+#line 251 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_if_fail (IS_TRANSACTION_CONTROLLER (controller));
+#line 253 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = all_updates;
+#line 253 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = controller;
+#line 253 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ MEDIA_MONITOR_CLASS (video_monitor_parent_class)->process_updates (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_MONITOR, MediaMonitor), _tmp0_, _tmp1_, op_count, &_inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 253 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_propagate_error (error, _inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return;
+#line 1825 "VideoMonitor.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ check = NULL;
+#line 1829 "VideoMonitor.c"
+ {
+ GeeIterator* _monitorable_updates_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = all_updates;
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_it = _tmp3_;
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ while (TRUE) {
+#line 1842 "VideoMonitor.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ MonitorableUpdates* monitorable_updates = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ GeeArrayList* _tmp10_ = NULL;
+ VideoUpdates* updates = NULL;
+ MonitorableUpdates* _tmp14_ = NULL;
+ VideoUpdates* _tmp15_ = NULL;
+ VideoUpdates* _tmp16_ = NULL;
+ VideoUpdates* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = _monitorable_updates_it;
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (!_tmp5_) {
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ break;
+#line 1865 "VideoMonitor.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp6_ = _monitorable_updates_it;
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ monitorable_updates = (MonitorableUpdates*) _tmp7_;
+#line 258 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp8_ = *op_count;
+#line 258 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp8_ >= MEDIA_MONITOR_MAX_OPERATIONS_PER_CYCLE) {
+#line 259 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (monitorable_updates);
+#line 259 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ break;
+#line 1881 "VideoMonitor.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp10_ = check;
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp10_ != NULL) {
+#line 1887 "VideoMonitor.c"
+ GeeArrayList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp11_ = check;
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp12_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp13_ = _tmp12_;
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp9_ = _tmp13_ >= VIDEO_MONITOR_MAX_INTERPRETABLE_CHECKS_PER_CYCLE;
+#line 1899 "VideoMonitor.c"
+ } else {
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp9_ = FALSE;
+#line 1903 "VideoMonitor.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp9_) {
+#line 264 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (monitorable_updates);
+#line 264 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ break;
+#line 1911 "VideoMonitor.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp14_ = monitorable_updates;
+#line 266 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp15_ = _monitorable_updates_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, TYPE_VIDEO_UPDATES) ? ((VideoUpdates*) _tmp14_) : NULL);
+#line 266 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ updates = _tmp15_;
+#line 267 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp16_ = updates;
+#line 267 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp16_ == NULL) {
+#line 268 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 268 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (monitorable_updates);
+#line 268 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ continue;
+#line 1929 "VideoMonitor.c"
+ }
+#line 270 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp17_ = updates;
+#line 270 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp18_ = video_updates_is_check_interpretable (_tmp17_);
+#line 270 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp18_) {
+#line 1937 "VideoMonitor.c"
+ GeeArrayList* _tmp19_ = NULL;
+ GeeArrayList* _tmp21_ = NULL;
+ VideoUpdates* _tmp22_ = NULL;
+ Video* _tmp23_ = NULL;
+ VideoUpdates* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+#line 271 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp19_ = check;
+#line 271 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp19_ == NULL) {
+#line 1948 "VideoMonitor.c"
+ GeeArrayList* _tmp20_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp20_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 272 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (check);
+#line 272 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ check = _tmp20_;
+#line 1956 "VideoMonitor.c"
+ }
+#line 274 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp21_ = check;
+#line 274 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp22_ = updates;
+#line 274 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp23_ = _tmp22_->video;
+#line 274 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp23_);
+#line 275 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp24_ = updates;
+#line 275 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_updates_set_check_interpretable (_tmp24_, FALSE);
+#line 276 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp25_ = *op_count;
+#line 276 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ *op_count = _tmp25_ + 1;
+#line 1974 "VideoMonitor.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (updates);
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _monitorable_updates_unref0 (monitorable_updates);
+#line 1980 "VideoMonitor.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_monitorable_updates_it);
+#line 1984 "VideoMonitor.c"
+ }
+#line 280 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp26_ = check;
+#line 280 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp26_ != NULL) {
+#line 1990 "VideoMonitor.c"
+ GeeArrayList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ guint64 _tmp32_ = 0ULL;
+ GeeArrayList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 281 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp27_ = check;
+#line 281 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp28_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 281 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp29_ = _tmp28_;
+#line 281 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp30_ = g_strdup_printf ("Checking interpretable for %d videos", _tmp29_);
+#line 281 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp31_ = _tmp30_;
+#line 281 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ media_monitor_mdbg (_tmp31_);
+#line 281 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_free0 (_tmp31_);
+#line 283 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_notify_offline_thumbs_regenerated ();
+#line 285 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp32_ = self->priv->background_jobs;
+#line 285 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp33_ = check;
+#line 285 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp34_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 285 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp35_ = _tmp34_;
+#line 285 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv->background_jobs = _tmp32_ + _tmp35_;
+#line 2026 "VideoMonitor.c"
+ {
+ GeeArrayList* _video_list = NULL;
+ GeeArrayList* _tmp36_ = NULL;
+ GeeArrayList* _tmp37_ = NULL;
+ gint _video_size = 0;
+ GeeArrayList* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _video_index = 0;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp36_ = check;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp37_ = _g_object_ref0 (_tmp36_);
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _video_list = _tmp37_;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp38_ = _video_list;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp39_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp40_ = _tmp39_;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _video_size = _tmp40_;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _video_index = -1;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ while (TRUE) {
+#line 2054 "VideoMonitor.c"
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ Video* video = NULL;
+ GeeArrayList* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gpointer _tmp46_ = NULL;
+ Workers* _tmp47_ = NULL;
+ Video* _tmp48_ = NULL;
+ VideoMonitorVideoInterpretableCheckJob* _tmp49_ = NULL;
+ VideoMonitorVideoInterpretableCheckJob* _tmp50_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp41_ = _video_index;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _video_index = _tmp41_ + 1;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp42_ = _video_index;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp43_ = _video_size;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (!(_tmp42_ < _tmp43_)) {
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ break;
+#line 2078 "VideoMonitor.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp44_ = _video_list;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp45_ = _video_index;
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp46_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp45_);
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video = (Video*) _tmp46_;
+#line 287 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp47_ = self->priv->workers;
+#line 287 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp48_ = video;
+#line 287 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp49_ = video_monitor_video_interpretable_check_job_new (_tmp48_, _video_monitor_on_interpretable_check_complete_completion_callback, self);
+#line 287 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp50_ = _tmp49_;
+#line 287 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ workers_enqueue (_tmp47_, G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 287 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _background_job_unref0 (_tmp50_);
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (video);
+#line 2102 "VideoMonitor.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (_video_list);
+#line 2106 "VideoMonitor.c"
+ }
+ }
+#line 251 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (check);
+#line 2111 "VideoMonitor.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 292 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 2118 "VideoMonitor.c"
+}
+
+
+static void video_monitor_on_interpretable_check_complete (VideoMonitor* self, BackgroundJob* j) {
+ VideoMonitorVideoInterpretableCheckJob* job = NULL;
+ BackgroundJob* _tmp0_ = NULL;
+ VideoMonitorVideoInterpretableCheckJob* _tmp1_ = NULL;
+ VideoMonitorVideoInterpretableCheckJob* _tmp2_ = NULL;
+ VideoInterpretableResults* _tmp3_ = NULL;
+ guint64 _tmp4_ = 0ULL;
+ guint64 _tmp5_ = 0ULL;
+#line 291 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_if_fail (IS_VIDEO_MONITOR (self));
+#line 291 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (j));
+#line 292 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = j;
+#line 292 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = _background_job_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB, VideoMonitorVideoInterpretableCheckJob));
+#line 292 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ job = _tmp1_;
+#line 294 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = job;
+#line 294 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = _tmp2_->results;
+#line 294 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_interpretable_results_foreground_finish (_tmp3_);
+#line 296 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp4_ = self->priv->background_jobs;
+#line 296 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv->background_jobs = _tmp4_ - 1;
+#line 297 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp5_ = self->priv->background_jobs;
+#line 297 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ if (_tmp5_ <= ((guint64) 0)) {
+#line 298 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_notify_normal_thumbs_regenerated ();
+#line 2156 "VideoMonitor.c"
+ }
+#line 291 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _background_job_unref0 (job);
+#line 2160 "VideoMonitor.c"
+}
+
+
+static VideoMonitorVideoInterpretableCheckJob* video_monitor_video_interpretable_check_job_construct (GType object_type, Video* video, CompletionCallback callback, void* callback_target) {
+ VideoMonitorVideoInterpretableCheckJob* self = NULL;
+ Video* _tmp0_ = NULL;
+ CompletionCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ Video* _tmp2_ = NULL;
+ Video* _tmp3_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_return_val_if_fail (IS_VIDEO (video), NULL);
+#line 50 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = video;
+#line 50 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = callback;
+#line 50 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1__target = callback_target;
+#line 50 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = (VideoMonitorVideoInterpretableCheckJob*) background_job_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), _tmp1_, _tmp1__target, NULL, NULL, NULL, NULL);
+#line 51 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp2_ = video;
+#line 51 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 51 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (self->video);
+#line 51 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->video = _tmp3_;
+#line 49 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return self;
+#line 2191 "VideoMonitor.c"
+}
+
+
+static VideoMonitorVideoInterpretableCheckJob* video_monitor_video_interpretable_check_job_new (Video* video, CompletionCallback callback, void* callback_target) {
+#line 49 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ return video_monitor_video_interpretable_check_job_construct (VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB, video, callback, callback_target);
+#line 2198 "VideoMonitor.c"
+}
+
+
+static void video_monitor_video_interpretable_check_job_real_execute (BackgroundJob* base) {
+ VideoMonitorVideoInterpretableCheckJob * self;
+ Video* _tmp0_ = NULL;
+ VideoInterpretableResults* _tmp1_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB, VideoMonitorVideoInterpretableCheckJob);
+#line 55 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = self->video;
+#line 55 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp1_ = video_check_is_interpretable (_tmp0_);
+#line 55 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _video_interpretable_results_unref0 (self->results);
+#line 55 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->results = _tmp1_;
+#line 2216 "VideoMonitor.c"
+}
+
+
+static void video_monitor_video_interpretable_check_job_class_init (VideoMonitorVideoInterpretableCheckJobClass * klass) {
+#line 42 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_monitor_video_interpretable_check_job_parent_class = g_type_class_peek_parent (klass);
+#line 42 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((BackgroundJobClass *) klass)->finalize = video_monitor_video_interpretable_check_job_finalize;
+#line 42 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((BackgroundJobClass *) klass)->execute = video_monitor_video_interpretable_check_job_real_execute;
+#line 2227 "VideoMonitor.c"
+}
+
+
+static void video_monitor_video_interpretable_check_job_instance_init (VideoMonitorVideoInterpretableCheckJob * self) {
+#line 47 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->results = NULL;
+#line 2234 "VideoMonitor.c"
+}
+
+
+static void video_monitor_video_interpretable_check_job_finalize (BackgroundJob* obj) {
+ VideoMonitorVideoInterpretableCheckJob * self;
+#line 42 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, VIDEO_MONITOR_TYPE_VIDEO_INTERPRETABLE_CHECK_JOB, VideoMonitorVideoInterpretableCheckJob);
+#line 44 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _g_object_unref0 (self->video);
+#line 47 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _video_interpretable_results_unref0 (self->results);
+#line 42 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ BACKGROUND_JOB_CLASS (video_monitor_video_interpretable_check_job_parent_class)->finalize (obj);
+#line 2248 "VideoMonitor.c"
+}
+
+
+static GType video_monitor_video_interpretable_check_job_get_type (void) {
+ static volatile gsize video_monitor_video_interpretable_check_job_type_id__volatile = 0;
+ if (g_once_init_enter (&video_monitor_video_interpretable_check_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoMonitorVideoInterpretableCheckJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_monitor_video_interpretable_check_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoMonitorVideoInterpretableCheckJob), 0, (GInstanceInitFunc) video_monitor_video_interpretable_check_job_instance_init, NULL };
+ GType video_monitor_video_interpretable_check_job_type_id;
+ video_monitor_video_interpretable_check_job_type_id = g_type_register_static (TYPE_BACKGROUND_JOB, "VideoMonitorVideoInterpretableCheckJob", &g_define_type_info, 0);
+ g_once_init_leave (&video_monitor_video_interpretable_check_job_type_id__volatile, video_monitor_video_interpretable_check_job_type_id);
+ }
+ return video_monitor_video_interpretable_check_job_type_id__volatile;
+}
+
+
+static void video_monitor_class_init (VideoMonitorClass * klass) {
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ video_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ g_type_class_add_private (klass, sizeof (VideoMonitorPrivate));
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->create_updates = video_monitor_real_create_updates;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->get_media_source_collection = video_monitor_real_get_media_source_collection;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->is_file_represented = video_monitor_real_is_file_represented;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_discovered = video_monitor_real_notify_file_discovered;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->candidates_for_unknown_file = video_monitor_real_candidates_for_unknown_file;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_created = video_monitor_real_notify_file_created;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_moved = video_monitor_real_notify_file_moved;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_altered = video_monitor_real_notify_file_altered;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_attributes_altered = video_monitor_real_notify_file_attributes_altered;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_alteration_completed = video_monitor_real_notify_file_alteration_completed;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->notify_file_deleted = video_monitor_real_notify_file_deleted;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ ((MediaMonitorClass *) klass)->process_updates = video_monitor_real_process_updates;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ G_OBJECT_CLASS (klass)->finalize = video_monitor_finalize;
+#line 2295 "VideoMonitor.c"
+}
+
+
+static void video_monitor_instance_init (VideoMonitor * self) {
+ Workers* _tmp0_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv = VIDEO_MONITOR_GET_PRIVATE (self);
+#line 62 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _tmp0_ = workers_new ((guint) 1, FALSE);
+#line 62 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv->workers = _tmp0_;
+#line 63 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self->priv->background_jobs = (guint64) 0;
+#line 2309 "VideoMonitor.c"
+}
+
+
+static void video_monitor_finalize (GObject* obj) {
+ VideoMonitor * self;
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_MONITOR, VideoMonitor);
+#line 62 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ _workers_unref0 (self->priv->workers);
+#line 37 "/home/jens/Source/shotwell/src/VideoMonitor.vala"
+ G_OBJECT_CLASS (video_monitor_parent_class)->finalize (obj);
+#line 2321 "VideoMonitor.c"
+}
+
+
+GType video_monitor_get_type (void) {
+ static volatile gsize video_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&video_monitor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoMonitor), 0, (GInstanceInitFunc) video_monitor_instance_init, NULL };
+ GType video_monitor_type_id;
+ video_monitor_type_id = g_type_register_static (TYPE_MEDIA_MONITOR, "VideoMonitor", &g_define_type_info, 0);
+ g_once_init_leave (&video_monitor_type_id__volatile, video_monitor_type_id);
+ }
+ return video_monitor_type_id__volatile;
+}
+
+
+
diff --git a/src/VideoSupport.c b/src/VideoSupport.c
new file mode 100644
index 0000000..989976f
--- /dev/null
+++ b/src/VideoSupport.c
@@ -0,0 +1,10961 @@
+/* VideoSupport.c generated by valac 0.32.1, the Vala compiler
+ * generated from VideoSupport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gst/pbutils/pbutils.h>
+#include <gst/gst.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <gio/gunixinputstream.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <glib/gstdio.h>
+#include <gee.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_VIDEO_IMPORT_PARAMS (video_import_params_get_type ())
+#define VIDEO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_IMPORT_PARAMS, VideoImportParams))
+#define VIDEO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_IMPORT_PARAMS, VideoImportParamsClass))
+#define IS_VIDEO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_IMPORT_PARAMS))
+#define IS_VIDEO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_IMPORT_PARAMS))
+#define VIDEO_IMPORT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_IMPORT_PARAMS, VideoImportParamsClass))
+
+typedef struct _VideoImportParams VideoImportParams;
+typedef struct _VideoImportParamsClass VideoImportParamsClass;
+typedef struct _VideoImportParamsPrivate VideoImportParamsPrivate;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_THUMBNAILS (thumbnails_get_type ())
+#define THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAILS, Thumbnails))
+#define THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAILS, ThumbnailsClass))
+#define IS_THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAILS))
+#define IS_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAILS))
+#define THUMBNAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAILS, ThumbnailsClass))
+
+typedef struct _Thumbnails Thumbnails;
+typedef struct _ThumbnailsClass ThumbnailsClass;
+
+#define TYPE_VIDEO_ROW (video_row_get_type ())
+#define VIDEO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_ROW, VideoRow))
+#define VIDEO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_ROW, VideoRowClass))
+#define IS_VIDEO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_ROW))
+#define IS_VIDEO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_ROW))
+#define VIDEO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_ROW, VideoRowClass))
+
+typedef struct _VideoRow VideoRow;
+typedef struct _VideoRowClass VideoRowClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _thumbnails_unref0(var) ((var == NULL) ? NULL : (var = (thumbnails_unref (var), NULL)))
+#define _video_row_unref0(var) ((var == NULL) ? NULL : (var = (video_row_unref (var), NULL)))
+typedef struct _ParamSpecVideoImportParams ParamSpecVideoImportParams;
+
+#define TYPE_VIDEO_READER (video_reader_get_type ())
+#define VIDEO_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_READER, VideoReader))
+#define VIDEO_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_READER, VideoReaderClass))
+#define IS_VIDEO_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_READER))
+#define IS_VIDEO_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_READER))
+#define VIDEO_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_READER, VideoReaderClass))
+
+typedef struct _VideoReader VideoReader;
+typedef struct _VideoReaderClass VideoReaderClass;
+typedef struct _VideoReaderPrivate VideoReaderPrivate;
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _video_reader_unref0(var) ((var == NULL) ? NULL : (var = (video_reader_unref (var), NULL)))
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_VIDEO_METADATA (video_metadata_get_type ())
+#define VIDEO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_METADATA, VideoMetadata))
+#define VIDEO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_METADATA, VideoMetadataClass))
+#define IS_VIDEO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_METADATA))
+#define IS_VIDEO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_METADATA))
+#define VIDEO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_METADATA, VideoMetadataClass))
+
+typedef struct _VideoMetadata VideoMetadata;
+typedef struct _VideoMetadataClass VideoMetadataClass;
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+typedef struct _VideoRowPrivate VideoRowPrivate;
+
+#define TYPE_VIDEO_ID (video_id_get_type ())
+typedef struct _VideoID VideoID;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_RATING (rating_get_type ())
+typedef struct _ParamSpecVideoReader ParamSpecVideoReader;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _MediaSourcePrivate MediaSourcePrivate;
+
+#define TYPE_BACKING_FILE_STATE (backing_file_state_get_type ())
+#define BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_FILE_STATE, BackingFileState))
+#define BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+#define IS_BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_FILE_STATE))
+#define IS_BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_FILE_STATE))
+#define BACKING_FILE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+
+typedef struct _BackingFileState BackingFileState;
+typedef struct _BackingFileStateClass BackingFileStateClass;
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+typedef struct _VideoSourcePrivate VideoSourcePrivate;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+
+#define TYPE_MONITORABLE (monitorable_get_type ())
+#define MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITORABLE, Monitorable))
+#define IS_MONITORABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITORABLE))
+#define MONITORABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MONITORABLE, MonitorableIface))
+
+typedef struct _Monitorable Monitorable;
+typedef struct _MonitorableIface MonitorableIface;
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+typedef struct _VideoPrivate VideoPrivate;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_VIDEO_TABLE (video_table_get_type ())
+#define VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_TABLE, VideoTable))
+#define VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_TABLE, VideoTableClass))
+#define IS_VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_TABLE))
+#define IS_VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_TABLE))
+#define VIDEO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_TABLE, VideoTableClass))
+
+typedef struct _VideoTable VideoTable;
+typedef struct _VideoTableClass VideoTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+
+#define TYPE_EXPORTER (exporter_get_type ())
+#define EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER, Exporter))
+#define EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER, ExporterClass))
+#define IS_EXPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER))
+#define IS_EXPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER))
+#define EXPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER, ExporterClass))
+
+typedef struct _Exporter Exporter;
+typedef struct _ExporterClass ExporterClass;
+
+#define TYPE_EXPORTER_UI (exporter_ui_get_type ())
+#define EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORTER_UI, ExporterUI))
+#define EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORTER_UI, ExporterUIClass))
+#define IS_EXPORTER_UI(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORTER_UI))
+#define IS_EXPORTER_UI_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORTER_UI))
+#define EXPORTER_UI_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORTER_UI, ExporterUIClass))
+
+typedef struct _ExporterUI ExporterUI;
+typedef struct _ExporterUIClass ExporterUIClass;
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+#define _exporter_ui_unref0(var) ((var == NULL) ? NULL : (var = (exporter_ui_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+#define _backing_file_state_unref0(var) ((var == NULL) ? NULL : (var = (backing_file_state_unref (var), NULL)))
+
+#define THUMBNAIL_CACHE_TYPE_SIZE (thumbnail_cache_size_get_type ())
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define VIDEO_TYPE_INTERPRETABLE_RESULTS (video_interpretable_results_get_type ())
+#define VIDEO_INTERPRETABLE_RESULTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIDEO_TYPE_INTERPRETABLE_RESULTS, VideoInterpretableResults))
+#define VIDEO_INTERPRETABLE_RESULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIDEO_TYPE_INTERPRETABLE_RESULTS, VideoInterpretableResultsClass))
+#define VIDEO_IS_INTERPRETABLE_RESULTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIDEO_TYPE_INTERPRETABLE_RESULTS))
+#define VIDEO_IS_INTERPRETABLE_RESULTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIDEO_TYPE_INTERPRETABLE_RESULTS))
+#define VIDEO_INTERPRETABLE_RESULTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIDEO_TYPE_INTERPRETABLE_RESULTS, VideoInterpretableResultsClass))
+
+typedef struct _VideoInterpretableResults VideoInterpretableResults;
+typedef struct _VideoInterpretableResultsClass VideoInterpretableResultsClass;
+#define _video_interpretable_results_unref0(var) ((var == NULL) ? NULL : (var = (video_interpretable_results_unref (var), NULL)))
+typedef struct _VideoInterpretableResultsPrivate VideoInterpretableResultsPrivate;
+typedef struct _VideoParamSpecInterpretableResults VideoParamSpecInterpretableResults;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+typedef struct _MediaSourceCollectionPrivate MediaSourceCollectionPrivate;
+
+#define TYPE_DATABASE_SOURCE_HOLDING_TANK (database_source_holding_tank_get_type ())
+#define DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank))
+#define DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+#define IS_DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define IS_DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define DATABASE_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+
+typedef struct _DatabaseSourceHoldingTank DatabaseSourceHoldingTank;
+typedef struct _DatabaseSourceHoldingTankClass DatabaseSourceHoldingTankClass;
+
+#define TYPE_MEDIA_SOURCE_HOLDING_TANK (media_source_holding_tank_get_type ())
+#define MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTank))
+#define MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+#define IS_MEDIA_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define IS_MEDIA_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_HOLDING_TANK))
+#define MEDIA_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_HOLDING_TANK, MediaSourceHoldingTankClass))
+
+typedef struct _MediaSourceHoldingTank MediaSourceHoldingTank;
+typedef struct _MediaSourceHoldingTankClass MediaSourceHoldingTankClass;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+
+#define TYPE_MEDIA_MONITOR (media_monitor_get_type ())
+#define MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_MONITOR, MediaMonitor))
+#define MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+#define IS_MEDIA_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_MONITOR))
+#define IS_MEDIA_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_MONITOR))
+#define MEDIA_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_MONITOR, MediaMonitorClass))
+
+typedef struct _MediaMonitor MediaMonitor;
+typedef struct _MediaMonitorClass MediaMonitorClass;
+
+#define TYPE_TRANSACTION_CONTROLLER (transaction_controller_get_type ())
+#define TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionController))
+#define TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+#define IS_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSACTION_CONTROLLER))
+#define IS_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSACTION_CONTROLLER))
+#define TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSACTION_CONTROLLER, TransactionControllerClass))
+
+typedef struct _TransactionController TransactionController;
+typedef struct _TransactionControllerClass TransactionControllerClass;
+typedef struct _VideoSourceCollectionPrivate VideoSourceCollectionPrivate;
+
+#define VIDEO_SOURCE_COLLECTION_TYPE_STATE (video_source_collection_state_get_type ())
+#define _transaction_controller_unref0(var) ((var == NULL) ? NULL : (var = (transaction_controller_unref (var), NULL)))
+#define _source_holding_tank_unref0(var) ((var == NULL) ? NULL : (var = (source_holding_tank_unref (var), NULL)))
+
+#define TYPE_VIDEO_MONITOR (video_monitor_get_type ())
+#define VIDEO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_MONITOR, VideoMonitor))
+#define VIDEO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_MONITOR, VideoMonitorClass))
+#define IS_VIDEO_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_MONITOR))
+#define IS_VIDEO_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_MONITOR))
+#define VIDEO_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_MONITOR, VideoMonitorClass))
+
+typedef struct _VideoMonitor VideoMonitor;
+typedef struct _VideoMonitorClass VideoMonitorClass;
+
+#define TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER (media_source_transaction_controller_get_type ())
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionController))
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionControllerClass))
+#define IS_MEDIA_SOURCE_TRANSACTION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER))
+#define IS_MEDIA_SOURCE_TRANSACTION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER))
+#define MEDIA_SOURCE_TRANSACTION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_TRANSACTION_CONTROLLER, MediaSourceTransactionControllerClass))
+
+typedef struct _MediaSourceTransactionController MediaSourceTransactionController;
+typedef struct _MediaSourceTransactionControllerClass MediaSourceTransactionControllerClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ VIDEO_ERROR_FILE,
+ VIDEO_ERROR_CONTENTS
+} VideoError;
+#define VIDEO_ERROR video_error_quark ()
+struct _ImportID {
+ gint64 id;
+};
+
+struct _VideoImportParams {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ VideoImportParamsPrivate * priv;
+ GFile* file;
+ ImportID import_id;
+ gchar* md5;
+ time_t exposure_time_override;
+ Thumbnails* thumbnails;
+ VideoRow* row;
+};
+
+struct _VideoImportParamsClass {
+ GTypeClass parent_class;
+ void (*finalize) (VideoImportParams *self);
+};
+
+struct _ParamSpecVideoImportParams {
+ GParamSpec parent_instance;
+};
+
+struct _VideoReader {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ VideoReaderPrivate * priv;
+};
+
+struct _VideoReaderClass {
+ GTypeClass parent_class;
+ void (*finalize) (VideoReader *self);
+};
+
+struct _VideoReaderPrivate {
+ gdouble clip_duration;
+ GdkPixbuf* preview_frame;
+ GFile* file;
+ GPid thumbnailer_pid;
+ GDateTime* _timestamp;
+};
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+struct _VideoID {
+ gint64 id;
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _VideoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ VideoRowPrivate * priv;
+ VideoID video_id;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ gint width;
+ gint height;
+ gdouble clip_duration;
+ gboolean is_interpretable;
+ time_t exposure_time;
+ ImportID import_id;
+ EventID event_id;
+ gchar* md5;
+ time_t time_created;
+ Rating rating;
+ gchar* title;
+ gchar* backlinks;
+ time_t time_reimported;
+ guint64 flags;
+ gchar* comment;
+};
+
+struct _VideoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (VideoRow *self);
+};
+
+struct _ParamSpecVideoReader {
+ GParamSpec parent_instance;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _ThumbnailSource {
+ DataSource parent_instance;
+ ThumbnailSourcePrivate * priv;
+};
+
+struct _ThumbnailSourceClass {
+ DataSourceClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailSource* self);
+ GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ gchar* (*get_representative_id) (ThumbnailSource* self);
+ PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self);
+ void (*thumbnail_altered) (ThumbnailSource* self);
+};
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _MediaSource {
+ ThumbnailSource parent_instance;
+ MediaSourcePrivate * priv;
+};
+
+struct _MediaSourceClass {
+ ThumbnailSourceClass parent_class;
+ void (*notify_master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+ gboolean (*set_event_id) (MediaSource* self, EventID* id);
+ gchar* (*get_basename) (MediaSource* self);
+ GFile* (*get_file) (MediaSource* self);
+ GFile* (*get_master_file) (MediaSource* self);
+ guint64 (*get_master_filesize) (MediaSource* self);
+ guint64 (*get_filesize) (MediaSource* self);
+ time_t (*get_timestamp) (MediaSource* self);
+ BackingFileState** (*get_backing_files_state) (MediaSource* self, int* result_length1);
+ gchar* (*get_title) (MediaSource* self);
+ gchar* (*get_comment) (MediaSource* self);
+ void (*set_title) (MediaSource* self, const gchar* title);
+ gboolean (*set_comment) (MediaSource* self, const gchar* comment);
+ Rating (*get_rating) (MediaSource* self);
+ void (*set_rating) (MediaSource* self, Rating rating);
+ void (*increase_rating) (MediaSource* self);
+ void (*decrease_rating) (MediaSource* self);
+ void (*get_dimensions) (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+ GdkPixbuf* (*get_preview_pixbuf) (MediaSource* self, Scaling* scaling, GError** error);
+ gboolean (*is_trashed) (MediaSource* self);
+ void (*trash) (MediaSource* self);
+ void (*untrash) (MediaSource* self);
+ gboolean (*is_offline) (MediaSource* self);
+ void (*mark_offline) (MediaSource* self);
+ void (*mark_online) (MediaSource* self);
+ gchar* (*get_master_md5) (MediaSource* self);
+ void (*get_event_id) (MediaSource* self, EventID* result);
+ time_t (*get_exposure_time) (MediaSource* self);
+ void (*get_import_id) (MediaSource* self, ImportID* result);
+ void (*master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+};
+
+struct _VideoSource {
+ MediaSource parent_instance;
+ VideoSourcePrivate * priv;
+};
+
+struct _VideoSourceClass {
+ MediaSourceClass parent_class;
+};
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+struct _MonitorableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_offline) (Monitorable* self);
+ void (*mark_online) (Monitorable* self);
+ void (*mark_offline) (Monitorable* self);
+ void (*set_master_file) (Monitorable* self, GFile* file);
+ void (*set_master_timestamp) (Monitorable* self, GFileInfo* info);
+};
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+struct _Video {
+ VideoSource parent_instance;
+ VideoPrivate * priv;
+};
+
+struct _VideoClass {
+ VideoSourceClass parent_class;
+};
+
+struct _VideoPrivate {
+ VideoRow* backing_row;
+ GRecMutex __lock_backing_row;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+typedef void (*ExporterCompletionCallback) (Exporter* exporter, gboolean is_cancelled, void* user_data);
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef enum {
+ THUMBNAIL_CACHE_SIZE_LARGEST = 360,
+ THUMBNAIL_CACHE_SIZE_BIG = 360,
+ THUMBNAIL_CACHE_SIZE_MEDIUM = 128,
+ THUMBNAIL_CACHE_SIZE_SMALLEST = 128
+} ThumbnailCacheSize;
+
+struct _VideoInterpretableResults {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ VideoInterpretableResultsPrivate * priv;
+ Video* video;
+ gboolean update_interpretable;
+ gboolean is_interpretable;
+ GdkPixbuf* new_thumbnail;
+};
+
+struct _VideoInterpretableResultsClass {
+ GTypeClass parent_class;
+ void (*finalize) (VideoInterpretableResults *self);
+};
+
+struct _VideoParamSpecInterpretableResults {
+ GParamSpec parent_instance;
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _MediaSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ MediaSourceCollectionPrivate * priv;
+};
+
+struct _MediaSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+ MediaSourceHoldingTank* (*create_trashcan) (MediaSourceCollection* self);
+ MediaSourceHoldingTank* (*create_offline_bin) (MediaSourceCollection* self);
+ MediaMonitor* (*create_media_monitor) (MediaSourceCollection* self, Workers* workers, GCancellable* cancellable);
+ gchar* (*get_typename) (MediaSourceCollection* self);
+ gboolean (*is_file_recognized) (MediaSourceCollection* self, GFile* file);
+ MediaSource* (*fetch_by_numeric_id) (MediaSourceCollection* self, gint64 numeric_id);
+ void (*notify_import_roll_altered) (MediaSourceCollection* self);
+ void (*notify_flagged_contents_altered) (MediaSourceCollection* self);
+ void (*notify_media_import_starting) (MediaSourceCollection* self, GeeCollection* media);
+ void (*notify_media_import_completed) (MediaSourceCollection* self, GeeCollection* media);
+ MediaSource* (*fetch_by_source_id) (MediaSourceCollection* self, const gchar* source_id);
+ GeeCollection* (*get_event_source_ids) (MediaSourceCollection* self, EventID* event_id);
+ void (*import_many) (MediaSourceCollection* self, GeeCollection* media);
+ void (*postprocess_imported_media) (MediaSourceCollection* self, GeeCollection* media);
+ void (*media_import_starting) (MediaSourceCollection* self, GeeCollection* media);
+ void (*media_import_completed) (MediaSourceCollection* self, GeeCollection* media);
+ void (*master_file_replaced) (MediaSourceCollection* self, MediaSource* media, GFile* old_file, GFile* new_file);
+ void (*trashcan_contents_altered) (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+ void (*import_roll_altered) (MediaSourceCollection* self);
+ void (*offline_contents_altered) (MediaSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+ void (*flagged_contents_altered) (MediaSourceCollection* self);
+ TransactionController* (*get_transaction_controller) (MediaSourceCollection* self);
+};
+
+struct _VideoSourceCollection {
+ MediaSourceCollection parent_instance;
+ VideoSourceCollectionPrivate * priv;
+};
+
+struct _VideoSourceCollectionClass {
+ MediaSourceCollectionClass parent_class;
+};
+
+struct _VideoSourceCollectionPrivate {
+ TransactionController* _transaction_controller;
+ GeeMultiMap* filesize_to_video;
+};
+
+typedef enum {
+ VIDEO_SOURCE_COLLECTION_STATE_UNKNOWN,
+ VIDEO_SOURCE_COLLECTION_STATE_ONLINE,
+ VIDEO_SOURCE_COLLECTION_STATE_OFFLINE,
+ VIDEO_SOURCE_COLLECTION_STATE_TRASH
+} VideoSourceCollectionState;
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+typedef gboolean (*SourceHoldingTankCheckToKeep) (DataSource* source, Alteration* alteration, void* user_data);
+
+static gpointer video_import_params_parent_class = NULL;
+static gpointer video_reader_parent_class = NULL;
+static gpointer video_parent_class = NULL;
+static gboolean video_interpreter_state_changed;
+static gboolean video_interpreter_state_changed = FALSE;
+static gint video_current_state;
+static gint video_current_state = 0;
+static gboolean video_normal_regen_complete;
+static gboolean video_normal_regen_complete = FALSE;
+static gboolean video_offline_regen_complete;
+static gboolean video_offline_regen_complete = FALSE;
+extern VideoSourceCollection* video_global;
+VideoSourceCollection* video_global = NULL;
+static gpointer video_interpretable_results_parent_class = NULL;
+static FlaggableIface* video_flaggable_parent_iface = NULL;
+static MonitorableIface* video_monitorable_parent_iface = NULL;
+static DateableIface* video_dateable_parent_iface = NULL;
+static gpointer video_source_collection_parent_class = NULL;
+
+GQuark video_error_quark (void);
+gpointer video_import_params_ref (gpointer instance);
+void video_import_params_unref (gpointer instance);
+GParamSpec* param_spec_video_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_video_import_params (GValue* value, gpointer v_object);
+void value_take_video_import_params (GValue* value, gpointer v_object);
+gpointer value_get_video_import_params (const GValue* value);
+GType video_import_params_get_type (void) G_GNUC_CONST;
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+gpointer thumbnails_ref (gpointer instance);
+void thumbnails_unref (gpointer instance);
+GParamSpec* param_spec_thumbnails (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_thumbnails (GValue* value, gpointer v_object);
+void value_take_thumbnails (GValue* value, gpointer v_object);
+gpointer value_get_thumbnails (const GValue* value);
+GType thumbnails_get_type (void) G_GNUC_CONST;
+gpointer video_row_ref (gpointer instance);
+void video_row_unref (gpointer instance);
+GParamSpec* param_spec_video_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_video_row (GValue* value, gpointer v_object);
+void value_take_video_row (GValue* value, gpointer v_object);
+gpointer value_get_video_row (const GValue* value);
+GType video_row_get_type (void) G_GNUC_CONST;
+enum {
+ VIDEO_IMPORT_PARAMS_DUMMY_PROPERTY
+};
+#define IMPORT_ID_INVALID ((gint64) 0)
+void import_id_init (ImportID *self, gint64 id);
+VideoRow* video_row_new (void);
+VideoRow* video_row_construct (GType object_type);
+VideoImportParams* video_import_params_new (GFile* file, ImportID* import_id, const gchar* md5, Thumbnails* thumbnails, time_t exposure_time_override);
+VideoImportParams* video_import_params_construct (GType object_type, GFile* file, ImportID* import_id, const gchar* md5, Thumbnails* thumbnails, time_t exposure_time_override);
+static void video_import_params_finalize (VideoImportParams* obj);
+gpointer video_reader_ref (gpointer instance);
+void video_reader_unref (gpointer instance);
+GParamSpec* param_spec_video_reader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_video_reader (GValue* value, gpointer v_object);
+void value_take_video_reader (GValue* value, gpointer v_object);
+gpointer value_get_video_reader (const GValue* value);
+GType video_reader_get_type (void) G_GNUC_CONST;
+#define VIDEO_READER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_VIDEO_READER, VideoReaderPrivate))
+enum {
+ VIDEO_READER_DUMMY_PROPERTY
+};
+#define VIDEO_READER_UNKNOWN_CLIP_DURATION (-1.0)
+#define VIDEO_READER_THUMBNAILER_TIMEOUT ((guint) 10000)
+VideoReader* video_reader_new (GFile* file);
+VideoReader* video_reader_construct (GType object_type, GFile* file);
+gboolean video_reader_is_supported_video_file (GFile* file);
+gboolean video_reader_is_supported_video_filename (const gchar* filename);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+gint utf8_ci_compare (void* a, void* b);
+GType import_result_get_type (void) G_GNUC_CONST;
+ImportResult video_reader_prepare_for_import (VideoImportParams* params);
+#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
+#define DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES UTIL_FILE_ATTRIBUTES
+GdkPixbuf* video_reader_read_preview_frame (VideoReader* self);
+gdouble video_reader_read_clip_duration (VideoReader* self, GError** error);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType video_metadata_get_type (void) G_GNUC_CONST;
+VideoMetadata* video_reader_read_metadata (VideoReader* self, GError** error);
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+MetadataDateTime* media_metadata_get_creation_date_time (MediaMetadata* self);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+gchar* media_metadata_get_title (MediaMetadata* self);
+gchar* media_metadata_get_comment (MediaMetadata* self);
+GDateTime* video_reader_get_timestamp (VideoReader* self);
+GType video_id_get_type (void) G_GNUC_CONST;
+VideoID* video_id_dup (const VideoID* self);
+void video_id_free (VideoID* self);
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+GType rating_get_type (void) G_GNUC_CONST;
+#define VIDEO_ID_INVALID ((gint64) -1)
+void video_id_init (VideoID *self, gint64 id);
+#define EVENT_ID_INVALID ((gint64) -1)
+void event_id_init (EventID *self, gint64 id);
+Thumbnails* thumbnails_new (void);
+Thumbnails* thumbnails_construct (GType object_type);
+void thumbnail_cache_generate_for_video_frame (Thumbnails* thumbnails, GdkPixbuf* preview_frame);
+static void video_reader_read_internal (VideoReader* self, GError** error);
+static gboolean video_reader_does_file_exist (VideoReader* self);
+static GDate* _g_date_dup (GDate* self);
+static void video_reader_set_timestamp (VideoReader* self, GDateTime* value);
+static gboolean video_reader_on_thumbnailer_timer (VideoReader* self);
+static GdkPixbuf* video_reader_thumbnailer (VideoReader* self, const gchar* video_file);
+GFile* app_dirs_get_thumbnailer_bin (void);
+static gboolean _video_reader_on_thumbnailer_timer_gsource_func (gpointer self);
+GdkPixbuf* resources_get_noninterpretable_badge_pixbuf (void);
+VideoMetadata* video_metadata_new (void);
+VideoMetadata* video_metadata_construct (GType object_type);
+void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error);
+static void video_reader_finalize (VideoReader* obj);
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gpointer backing_file_state_ref (gpointer instance);
+void backing_file_state_unref (gpointer instance);
+GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_file_state (GValue* value, gpointer v_object);
+void value_take_backing_file_state (GValue* value, gpointer v_object);
+gpointer value_get_backing_file_state (const GValue* value);
+GType backing_file_state_get_type (void) G_GNUC_CONST;
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType flaggable_get_type (void) G_GNUC_CONST;
+GType monitorable_get_type (void) G_GNUC_CONST;
+GType dateable_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+#define VIDEO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_VIDEO, VideoPrivate))
+enum {
+ VIDEO_DUMMY_PROPERTY
+};
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+#define VIDEO_TYPENAME "video"
+#define VIDEO_FLAG_TRASH ((guint64) 0x0000000000000001)
+#define VIDEO_FLAG_OFFLINE ((guint64) 0x0000000000000002)
+#define VIDEO_FLAG_FLAGGED ((guint64) 0x0000000000000004)
+Video* video_new (VideoRow* row);
+Video* video_construct (GType object_type, VideoRow* row);
+VideoSource* video_source_construct (GType object_type);
+gchar* media_source_prep_title (const gchar* title);
+void data_source_rehydrate_backlinks (DataSource* self, SourceCollection* unlinked_from, const gchar* dehydrated);
+void video_init (ProgressMonitor monitor, void* monitor_target);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gint configuration_facade_get_video_interpreter_state_cookie (ConfigurationFacade* self);
+#define CONFIG_FACADE_NO_VIDEO_INTERPRETER_STATE -1
+VideoSourceCollection* video_source_collection_new (void);
+VideoSourceCollection* video_source_collection_construct (GType object_type);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType video_table_get_type (void) G_GNUC_CONST;
+VideoTable* video_table_get_instance (void);
+GeeArrayList* video_table_get_all (VideoTable* self);
+static void video_set_is_interpretable (Video* self, gboolean is_interpretable);
+gboolean media_source_is_trashed (MediaSource* self);
+gboolean media_source_is_offline (MediaSource* self);
+void media_source_collection_add_many_to_trash (MediaSourceCollection* self, GeeCollection* sources);
+void media_source_collection_add_many_to_offline (MediaSourceCollection* self, GeeCollection* sources);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+gboolean video_has_interpreter_state_changed (void);
+void video_notify_normal_thumbs_regenerated (void);
+static void video_save_interpreter_state (void);
+void video_notify_offline_thumbs_regenerated (void);
+void configuration_facade_set_video_interpreter_state_cookie (ConfigurationFacade* self, gint state_cookie);
+void video_terminate (void);
+GType exporter_get_type (void) G_GNUC_CONST;
+gpointer exporter_ui_ref (gpointer instance);
+void exporter_ui_unref (gpointer instance);
+GParamSpec* param_spec_exporter_ui (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_exporter_ui (GValue* value, gpointer v_object);
+void value_take_exporter_ui (GValue* value, gpointer v_object);
+gpointer value_get_exporter_ui (const GValue* value);
+GType exporter_ui_get_type (void) G_GNUC_CONST;
+ExporterUI* video_export_many (GeeCollection* videos, ExporterCompletionCallback done, void* done_target, gboolean export_in_place);
+void scaling_for_original (Scaling* result);
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+void export_format_parameters_unmodified (ExportFormatParameters* result);
+Exporter* exporter_new_for_temp_file (GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params);
+Exporter* exporter_construct_for_temp_file (GType object_type, GeeCollection* to_export, Scaling* scaling, ExportFormatParameters* export_params);
+ExporterUI* exporter_ui_new (Exporter* exporter);
+ExporterUI* exporter_ui_construct (GType object_type, Exporter* exporter);
+void exporter_ui_export (ExporterUI* self, ExporterCompletionCallback completion_callback, void* completion_callback_target);
+GFile* export_ui_choose_file (const gchar* current_file_basename);
+gchar* media_source_get_basename (MediaSource* self);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void page_window_set_busy_cursor (PageWindow* self);
+void video_export (Video* self, GFile* dest_file, GError** error);
+void page_window_set_normal_cursor (PageWindow* self);
+GtkResponseType export_error_dialog (GFile* dest, gboolean photos_remaining);
+GFile* export_ui_choose_dir (const gchar* user_title);
+Exporter* exporter_new (GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+Exporter* exporter_construct (GType object_type, GeeCollection* to_export, GFile* dir, Scaling* scaling, ExportFormatParameters* export_params, gboolean auto_replace_all);
+static void video_real_commit_backlinks (DataSource* base, SourceCollection* sources, const gchar* backlinks);
+GQuark database_error_quark (void);
+void video_table_update_backlinks (VideoTable* self, VideoID* video_id, const gchar* backlinks, GError** error);
+void video_get_video_id (Video* self, VideoID* result);
+gchar* data_object_to_string (DataObject* self);
+static gboolean video_real_set_event_id (MediaSource* base, EventID* event_id);
+gboolean video_table_set_event (VideoTable* self, VideoID* video_id, EventID* event_id);
+gboolean video_is_duplicate (GFile* file, const gchar* full_md5);
+gboolean video_table_has_duplicate (VideoTable* self, GFile* file, const gchar* md5);
+ImportResult video_import_create (VideoImportParams* params, Video** video);
+void video_table_add (VideoTable* self, VideoRow* video_row, VideoID* result, GError** error);
+gboolean video_id_is_invalid (VideoID *self);
+void video_import_failed (Video* video);
+void video_table_remove (VideoTable* self, VideoID* videoID, GError** error);
+void app_window_database_error (GError* err);
+static BackingFileState** video_real_get_backing_files_state (MediaSource* base, int* result_length1);
+BackingFileState* backing_file_state_new (const gchar* filepath, gint64 filesize, time_t modification_time, const gchar* md5);
+BackingFileState* backing_file_state_construct (GType object_type, const gchar* filepath, gint64 filesize, time_t modification_time, const gchar* md5);
+static GdkPixbuf* video_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GdkPixbuf* thumbnail_cache_fetch (ThumbnailSource* source, gint scale, GError** error);
+static gchar* video_real_get_master_md5 (MediaSource* base);
+static GdkPixbuf* video_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+GType thumbnail_cache_size_get_type (void) G_GNUC_CONST;
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up);
+static GdkPixbuf* video_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GFile* media_source_get_file (MediaSource* self);
+static gchar* video_real_get_typename (DataSource* base);
+static gint64 video_real_get_instance_id (DataSource* base);
+static void video_real_get_import_id (MediaSource* base, ImportID* result);
+static PhotoFileFormat video_real_get_preferred_thumbnail_format (ThumbnailSource* base);
+PhotoFileFormat photo_file_format_get_system_default_format (void);
+static gchar* video_real_get_title (MediaSource* base);
+static void video_real_set_title (MediaSource* base, const gchar* title);
+void video_table_set_title (VideoTable* self, VideoID* video_id, const gchar* new_title, GError** error);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+static gchar* video_real_get_comment (MediaSource* base);
+static gboolean video_real_set_comment (MediaSource* base, const gchar* comment);
+void video_table_set_comment (VideoTable* self, VideoID* video_id, const gchar* new_comment, GError** error);
+static Rating video_real_get_rating (MediaSource* base);
+static void video_real_set_rating (MediaSource* base, Rating rating);
+gboolean rating_is_valid (Rating self);
+void video_table_set_rating (VideoTable* self, VideoID* video_id, Rating rating, GError** error);
+static void video_real_increase_rating (MediaSource* base);
+void media_source_set_rating (MediaSource* self, Rating rating);
+Rating rating_increase (Rating self);
+static void video_real_decrease_rating (MediaSource* base);
+Rating rating_decrease (Rating self);
+static gboolean video_real_is_trashed (MediaSource* base);
+gboolean video_is_flag_set (Video* self, guint64 flag);
+static gboolean video_real_is_offline (Monitorable* base);
+static void video_real_mark_offline (Monitorable* base);
+guint64 video_add_flags (Video* self, guint64 flags_to_add, Alteration* additional_alteration);
+static void video_real_mark_online (Monitorable* base);
+guint64 video_remove_flags (Video* self, guint64 flags_to_remove, Alteration* additional_alteration);
+gboolean video_get_is_interpretable (Video* self);
+gpointer video_interpretable_results_ref (gpointer instance);
+void video_interpretable_results_unref (gpointer instance);
+GParamSpec* video_param_spec_interpretable_results (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void video_value_set_interpretable_results (GValue* value, gpointer v_object);
+void video_value_take_interpretable_results (GValue* value, gpointer v_object);
+gpointer video_value_get_interpretable_results (const GValue* value);
+GType video_interpretable_results_get_type (void) G_GNUC_CONST;
+VideoInterpretableResults* video_check_is_interpretable (Video* self);
+void video_interpretable_results_foreground_finish (VideoInterpretableResults* self);
+static void video_real_trash (MediaSource* base);
+static void video_real_untrash (MediaSource* base);
+static gboolean video_real_is_flagged (Flaggable* base);
+static void video_real_mark_flagged (Flaggable* base);
+static void video_real_mark_unflagged (Flaggable* base);
+static void video_real_get_event_id (MediaSource* base, EventID* result);
+static gchar* video_real_to_string (DataObject* base);
+static time_t video_real_get_exposure_time (Dateable* base);
+static void video_real_set_exposure_time (Dateable* base, time_t time);
+void video_table_set_exposure_time (VideoTable* self, VideoID* video_id, time_t time, GError** error);
+void video_get_frame_dimensions (Video* self, Dimensions* result);
+void dimensions_init (Dimensions *self, gint width, gint height);
+static void video_real_get_dimensions (MediaSource* base, PhotoException disallowed_steps, Dimensions* result);
+static guint64 video_real_get_filesize (MediaSource* base);
+guint64 media_source_get_master_filesize (MediaSource* self);
+static guint64 video_real_get_master_filesize (MediaSource* base);
+static time_t video_real_get_timestamp (MediaSource* base);
+static void video_real_set_master_timestamp (Monitorable* base, GFileInfo* info);
+void video_table_set_timestamp (VideoTable* self, VideoID* video_id, time_t timestamp, GError** error);
+gchar* video_get_filename (Video* self);
+static GFile* video_real_get_file (MediaSource* base);
+static GFile* video_real_get_master_file (MediaSource* base);
+gdouble video_get_clip_duration (Video* self);
+void video_table_update_is_interpretable (VideoTable* self, VideoID* video_id, gboolean is_interpretable, GError** error);
+VideoInterpretableResults* video_interpretable_results_new (Video* video);
+VideoInterpretableResults* video_interpretable_results_construct (GType object_type, Video* video);
+static void video_real_destroy (DataSource* base);
+void thumbnail_cache_remove (ThumbnailSource* source);
+void data_source_destroy (DataSource* self);
+static gboolean video_real_internal_delete_backing (DataSource* base, GError** error);
+gboolean media_source_delete_original_file (MediaSource* self);
+gboolean data_source_internal_delete_backing (DataSource* self, GError** error);
+static void video_notify_flags_altered (Video* self, Alteration* additional_alteration);
+Alteration* alteration_compress (Alteration* self, Alteration* other);
+guint64 media_source_internal_add_flags (guint64 flags, guint64 selector);
+void video_table_set_flags (VideoTable* self, VideoID* video_id, guint64 flags, GError** error);
+guint64 media_source_internal_remove_flags (guint64 flags, guint64 selector);
+gboolean media_source_internal_is_flag_set (guint64 flags, guint64 selector);
+static void video_real_set_master_file (Monitorable* base, GFile* file);
+void video_table_set_filepath (VideoTable* self, VideoID* video_id, const gchar* filepath, GError** error);
+void media_source_notify_master_replaced (MediaSource* self, GFile* old_file, GFile* new_file);
+Alteration* alteration_new_from_list (const gchar* list);
+Alteration* alteration_construct_from_list (GType object_type, const gchar* list);
+VideoMetadata* video_read_metadata (Video* self, GError** error);
+enum {
+ VIDEO_INTERPRETABLE_RESULTS_DUMMY_PROPERTY
+};
+void thumbnail_cache_replace (ThumbnailSource* source, ThumbnailCacheSize size, GdkPixbuf* replacement, GError** error);
+void thumbnail_source_notify_thumbnail_altered (ThumbnailSource* self);
+static void video_interpretable_results_finalize (VideoInterpretableResults* obj);
+static void video_finalize (GObject* obj);
+GType marker_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType database_source_holding_tank_get_type (void) G_GNUC_CONST;
+GType media_source_holding_tank_get_type (void) G_GNUC_CONST;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+GType media_monitor_get_type (void) G_GNUC_CONST;
+gpointer transaction_controller_ref (gpointer instance);
+void transaction_controller_unref (gpointer instance);
+GParamSpec* param_spec_transaction_controller (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transaction_controller (GValue* value, gpointer v_object);
+void value_take_transaction_controller (GValue* value, gpointer v_object);
+gpointer value_get_transaction_controller (const GValue* value);
+GType transaction_controller_get_type (void) G_GNUC_CONST;
+#define VIDEO_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionPrivate))
+enum {
+ VIDEO_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+GType video_source_collection_state_get_type (void) G_GNUC_CONST;
+gint uint64_compare (guint64* a, guint64* b);
+static gint _uint64_compare_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static guint64* _uint64_dup (guint64* self);
+gint64 video_source_collection_get_video_key (DataSource* source);
+static gint64 _video_source_collection_get_video_key_get_source_database_key (DataSource* source, gpointer self);
+MediaSourceCollection* media_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+MediaSourceHoldingTank* media_source_collection_get_trashcan (MediaSourceCollection* self);
+static void video_source_collection_on_trashcan_contents_altered (VideoSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+static void _video_source_collection_on_trashcan_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+MediaSourceHoldingTank* media_source_collection_get_offline_bin (MediaSourceCollection* self);
+static void video_source_collection_on_offline_contents_altered (VideoSourceCollection* self, GeeCollection* added, GeeCollection* removed);
+static void _video_source_collection_on_offline_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+static MediaSourceHoldingTank* video_source_collection_real_create_trashcan (MediaSourceCollection* base);
+gboolean video_source_collection_is_video_trashed (DataSource* source);
+static gboolean _video_source_collection_is_video_trashed_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self);
+MediaSourceHoldingTank* media_source_holding_tank_new (MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+MediaSourceHoldingTank* media_source_holding_tank_construct (GType object_type, MediaSourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+static MediaSourceHoldingTank* video_source_collection_real_create_offline_bin (MediaSourceCollection* base);
+gboolean video_source_collection_is_video_offline (DataSource* source);
+static gboolean _video_source_collection_is_video_offline_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self);
+static MediaMonitor* video_source_collection_real_create_media_monitor (MediaSourceCollection* base, Workers* workers, GCancellable* cancellable);
+VideoMonitor* video_monitor_new (GCancellable* cancellable);
+VideoMonitor* video_monitor_construct (GType object_type, GCancellable* cancellable);
+GType video_monitor_get_type (void) G_GNUC_CONST;
+static gboolean video_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source);
+static gchar* video_source_collection_real_get_typename (MediaSourceCollection* base);
+static gboolean video_source_collection_real_is_file_recognized (MediaSourceCollection* base, GFile* file);
+static MediaSource* video_source_collection_real_fetch_by_numeric_id (MediaSourceCollection* base, gint64 numeric_id);
+Video* video_source_collection_fetch (VideoSourceCollection* self, VideoID* video_id);
+DataSource* database_source_collection_fetch_by_key (DatabaseSourceCollection* self, gint64 key);
+static GeeCollection* video_source_collection_real_get_event_source_ids (MediaSourceCollection* base, EventID* event_id);
+GeeArrayList* video_table_get_event_source_ids (VideoTable* self, EventID* event_id);
+Video* video_source_collection_get_state_by_file (VideoSourceCollection* self, GFile* file, VideoSourceCollectionState* state);
+MediaSource* media_source_collection_fetch_by_master_file (MediaSourceCollection* self, GFile* file);
+MediaSource* media_source_holding_tank_fetch_by_master_file (MediaSourceHoldingTank* self, GFile* file);
+static void video_source_collection_compare_backing (VideoSourceCollection* self, Video* video, GFileInfo* info, GeeCollection* matching_master);
+guint64 media_source_get_filesize (MediaSource* self);
+time_t media_source_get_timestamp (MediaSource* self);
+void video_source_collection_fetch_by_matching_backing (VideoSourceCollection* self, GFileInfo* info, GeeCollection* matching_master);
+GeeCollection* data_collection_get_all (DataCollection* self);
+GeeCollection* media_source_collection_get_offline_bin_contents (MediaSourceCollection* self);
+static void video_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed);
+void data_collection_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+void video_source_collection_get_basename_filesize_duplicate (VideoSourceCollection* self, const gchar* basename, guint64 filesize, VideoID* result);
+GFile* media_source_get_master_file (MediaSource* self);
+gboolean video_source_collection_has_basename_filesize_duplicate (VideoSourceCollection* self, const gchar* basename, guint64 filesize);
+gboolean video_id_is_valid (VideoID *self);
+MediaSourceTransactionController* media_source_transaction_controller_new (MediaSourceCollection* sources);
+MediaSourceTransactionController* media_source_transaction_controller_construct (GType object_type, MediaSourceCollection* sources);
+GType media_source_transaction_controller_get_type (void) G_GNUC_CONST;
+static void video_source_collection_finalize (DataCollection* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+static const gchar* VIDEO_READER_METADATA_ONLY_FILE_EXTENSIONS[4] = {"bdm", "bdmv", "cpi", "mpl"};
+
+GQuark video_error_quark (void) {
+ return g_quark_from_static_string ("video_error-quark");
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 30 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1516 "VideoSupport.c"
+}
+
+
+static gpointer _thumbnails_ref0 (gpointer self) {
+#line 33 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self ? thumbnails_ref (self) : NULL;
+#line 1523 "VideoSupport.c"
+}
+
+
+VideoImportParams* video_import_params_construct (GType object_type, GFile* file, ImportID* import_id, const gchar* md5, Thumbnails* thumbnails, time_t exposure_time_override) {
+ VideoImportParams* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ ImportID _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ Thumbnails* _tmp5_ = NULL;
+ Thumbnails* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+#line 28 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 28 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (import_id != NULL, NULL);
+#line 28 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail ((thumbnails == NULL) || IS_THUMBNAILS (thumbnails), NULL);
+#line 28 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = (VideoImportParams*) g_type_create_instance (object_type);
+#line 30 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = file;
+#line 30 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 30 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->file);
+#line 30 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->file = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = *import_id;
+#line 31 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->import_id = _tmp2_;
+#line 32 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = md5;
+#line 32 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 32 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (self->md5);
+#line 32 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->md5 = _tmp4_;
+#line 33 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = thumbnails;
+#line 33 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _thumbnails_ref0 (_tmp5_);
+#line 33 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _thumbnails_unref0 (self->thumbnails);
+#line 33 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->thumbnails = _tmp6_;
+#line 34 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = exposure_time_override;
+#line 34 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->exposure_time_override = _tmp7_;
+#line 28 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self;
+#line 1579 "VideoSupport.c"
+}
+
+
+VideoImportParams* video_import_params_new (GFile* file, ImportID* import_id, const gchar* md5, Thumbnails* thumbnails, time_t exposure_time_override) {
+#line 28 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return video_import_params_construct (TYPE_VIDEO_IMPORT_PARAMS, file, import_id, md5, thumbnails, exposure_time_override);
+#line 1586 "VideoSupport.c"
+}
+
+
+static void value_video_import_params_init (GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 1593 "VideoSupport.c"
+}
+
+
+static void value_video_import_params_free_value (GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (value->data[0].v_pointer) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_import_params_unref (value->data[0].v_pointer);
+#line 1602 "VideoSupport.c"
+ }
+}
+
+
+static void value_video_import_params_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dest_value->data[0].v_pointer = video_import_params_ref (src_value->data[0].v_pointer);
+#line 1612 "VideoSupport.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1616 "VideoSupport.c"
+ }
+}
+
+
+static gpointer value_video_import_params_peek_pointer (const GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return value->data[0].v_pointer;
+#line 1624 "VideoSupport.c"
+}
+
+
+static gchar* value_video_import_params_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (collect_values[0].v_pointer) {
+#line 1631 "VideoSupport.c"
+ VideoImportParams* object;
+ object = collect_values[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1638 "VideoSupport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1642 "VideoSupport.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = video_import_params_ref (object);
+#line 1646 "VideoSupport.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 1650 "VideoSupport.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 1654 "VideoSupport.c"
+}
+
+
+static gchar* value_video_import_params_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ VideoImportParams** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!object_p) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1665 "VideoSupport.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!value->data[0].v_pointer) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = NULL;
+#line 1671 "VideoSupport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1675 "VideoSupport.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = video_import_params_ref (value->data[0].v_pointer);
+#line 1679 "VideoSupport.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 1683 "VideoSupport.c"
+}
+
+
+GParamSpec* param_spec_video_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecVideoImportParams* spec;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_VIDEO_IMPORT_PARAMS), NULL);
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return G_PARAM_SPEC (spec);
+#line 1697 "VideoSupport.c"
+}
+
+
+gpointer value_get_video_import_params (const GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_IMPORT_PARAMS), NULL);
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return value->data[0].v_pointer;
+#line 1706 "VideoSupport.c"
+}
+
+
+void value_set_video_import_params (GValue* value, gpointer v_object) {
+ VideoImportParams* old;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_IMPORT_PARAMS));
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old = value->data[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (v_object) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIDEO_IMPORT_PARAMS));
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = v_object;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_import_params_ref (value->data[0].v_pointer);
+#line 1726 "VideoSupport.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 1730 "VideoSupport.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (old) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_import_params_unref (old);
+#line 1736 "VideoSupport.c"
+ }
+}
+
+
+void value_take_video_import_params (GValue* value, gpointer v_object) {
+ VideoImportParams* old;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_IMPORT_PARAMS));
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old = value->data[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (v_object) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIDEO_IMPORT_PARAMS));
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = v_object;
+#line 1755 "VideoSupport.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 1759 "VideoSupport.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (old) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_import_params_unref (old);
+#line 1765 "VideoSupport.c"
+ }
+}
+
+
+static void video_import_params_class_init (VideoImportParamsClass * klass) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_import_params_parent_class = g_type_class_peek_parent (klass);
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((VideoImportParamsClass *) klass)->finalize = video_import_params_finalize;
+#line 1775 "VideoSupport.c"
+}
+
+
+static void video_import_params_instance_init (VideoImportParams * self) {
+ VideoRow* _tmp0_ = NULL;
+#line 18 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ import_id_init (&self->import_id, IMPORT_ID_INVALID);
+#line 26 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_row_new ();
+#line 26 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->row = _tmp0_;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->ref_count = 1;
+#line 1789 "VideoSupport.c"
+}
+
+
+static void video_import_params_finalize (VideoImportParams* obj) {
+ VideoImportParams * self;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_IMPORT_PARAMS, VideoImportParams);
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_signal_handlers_destroy (self);
+#line 17 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->file);
+#line 19 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (self->md5);
+#line 23 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _thumbnails_unref0 (self->thumbnails);
+#line 26 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_row_unref0 (self->row);
+#line 1807 "VideoSupport.c"
+}
+
+
+GType video_import_params_get_type (void) {
+ static volatile gsize video_import_params_type_id__volatile = 0;
+ if (g_once_init_enter (&video_import_params_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_video_import_params_init, value_video_import_params_free_value, value_video_import_params_copy_value, value_video_import_params_peek_pointer, "p", value_video_import_params_collect_value, "p", value_video_import_params_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (VideoImportParamsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_import_params_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoImportParams), 0, (GInstanceInitFunc) video_import_params_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType video_import_params_type_id;
+ video_import_params_type_id = g_type_register_fundamental (g_type_fundamental_next (), "VideoImportParams", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&video_import_params_type_id__volatile, video_import_params_type_id);
+ }
+ return video_import_params_type_id__volatile;
+}
+
+
+gpointer video_import_params_ref (gpointer instance) {
+ VideoImportParams* self;
+ self = instance;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return instance;
+#line 1832 "VideoSupport.c"
+}
+
+
+void video_import_params_unref (gpointer instance) {
+ VideoImportParams* self;
+ self = instance;
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ VIDEO_IMPORT_PARAMS_GET_CLASS (self)->finalize (self);
+#line 15 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1845 "VideoSupport.c"
+ }
+}
+
+
+VideoReader* video_reader_construct (GType object_type, GFile* file) {
+ VideoReader* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 51 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = (VideoReader*) g_type_create_instance (object_type);
+#line 52 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = file;
+#line 52 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 52 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->priv->file);
+#line 52 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->file = _tmp1_;
+#line 51 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self;
+#line 1868 "VideoSupport.c"
+}
+
+
+VideoReader* video_reader_new (GFile* file) {
+#line 51 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return video_reader_construct (TYPE_VIDEO_READER, file);
+#line 1875 "VideoSupport.c"
+}
+
+
+gboolean video_reader_is_supported_video_file (GFile* file) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 55 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = file;
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_reader_is_supported_video_filename (_tmp2_);
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp2_);
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp4_;
+#line 56 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 1904 "VideoSupport.c"
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ glong _tmp2_ = 0L;
+ glong _tmp5_ = 0L;
+ gboolean _tmp8_ = FALSE;
+ glong _tmp9_ = 0L;
+ gboolean _tmp12_ = FALSE;
+ glong _tmp13_ = 0L;
+ glong _tmp16_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ gchar* _tmp21_ = NULL;
+#line 1328 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp1_;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = start;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp2_ < ((glong) 0)) {
+#line 1937 "VideoSupport.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = string_length;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = start;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ start = _tmp3_ + _tmp4_;
+#line 1946 "VideoSupport.c"
+ }
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp5_ < ((glong) 0)) {
+#line 1952 "VideoSupport.c"
+ glong _tmp6_ = 0L;
+ glong _tmp7_ = 0L;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = string_length;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = end;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp6_ + _tmp7_;
+#line 1961 "VideoSupport.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp9_ >= ((glong) 0)) {
+#line 1967 "VideoSupport.c"
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = string_length;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp10_ <= _tmp11_;
+#line 1976 "VideoSupport.c"
+ } else {
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = FALSE;
+#line 1980 "VideoSupport.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp8_, NULL);
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp13_ >= ((glong) 0)) {
+#line 1988 "VideoSupport.c"
+ glong _tmp14_ = 0L;
+ glong _tmp15_ = 0L;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ <= _tmp15_;
+#line 1997 "VideoSupport.c"
+ } else {
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 2001 "VideoSupport.c"
+ }
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_, NULL);
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = start;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = end;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = end;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp21_;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2023 "VideoSupport.c"
+}
+
+
+gboolean video_reader_is_supported_video_filename (const gchar* filename) {
+ gboolean result = FALSE;
+ gchar* mime_type = NULL;
+ const gchar* _tmp0_ = NULL;
+ guchar* _tmp1_ = NULL;
+ guchar* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 59 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (filename != NULL, FALSE);
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = filename;
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = g_new0 (guchar, 0);
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2__length1 = 0;
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = g_content_type_guess (_tmp0_, _tmp2_, (gsize) 0, NULL);
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (mime_type);
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ mime_type = _tmp3_;
+#line 61 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = (g_free (_tmp2_), NULL);
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = mime_type;
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = strlen (_tmp5_);
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = _tmp6_;
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp7_ >= 6) {
+#line 2065 "VideoSupport.c"
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = mime_type;
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = string_slice (_tmp8_, (glong) 0, (glong) 6);
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = _tmp9_;
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = g_strcmp0 (_tmp10_, "video/") == 0;
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp10_);
+#line 2079 "VideoSupport.c"
+ } else {
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = FALSE;
+#line 2083 "VideoSupport.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp4_) {
+#line 2087 "VideoSupport.c"
+ gchar* extension = NULL;
+ gchar* name = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ extension = NULL;
+#line 64 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ name = NULL;
+#line 65 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = filename;
+#line 65 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ disassemble_filename (_tmp11_, &_tmp12_, &_tmp13_);
+#line 65 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (name);
+#line 65 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ name = _tmp12_;
+#line 65 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (extension);
+#line 65 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ extension = _tmp13_;
+#line 67 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = extension;
+#line 67 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp14_ == NULL) {
+#line 68 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = TRUE;
+#line 68 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (name);
+#line 68 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (extension);
+#line 68 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (mime_type);
+#line 68 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2124 "VideoSupport.c"
+ }
+ {
+ const gchar** s_collection = NULL;
+ gint s_collection_length1 = 0;
+ gint _s_collection_size_ = 0;
+ gint s_it = 0;
+#line 70 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ s_collection = VIDEO_READER_METADATA_ONLY_FILE_EXTENSIONS;
+#line 70 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ s_collection_length1 = G_N_ELEMENTS (VIDEO_READER_METADATA_ONLY_FILE_EXTENSIONS);
+#line 70 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ for (s_it = 0; s_it < G_N_ELEMENTS (VIDEO_READER_METADATA_ONLY_FILE_EXTENSIONS); s_it = s_it + 1) {
+#line 2137 "VideoSupport.c"
+ gchar* _tmp15_ = NULL;
+ gchar* s = NULL;
+#line 70 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = g_strdup (s_collection[s_it]);
+#line 70 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ s = _tmp15_;
+#line 2144 "VideoSupport.c"
+ {
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 71 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = s;
+#line 71 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = extension;
+#line 71 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = utf8_ci_compare (_tmp16_, _tmp17_);
+#line 71 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp18_ == 0) {
+#line 72 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = FALSE;
+#line 72 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (s);
+#line 72 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (name);
+#line 72 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (extension);
+#line 72 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (mime_type);
+#line 72 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2169 "VideoSupport.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (s);
+#line 2173 "VideoSupport.c"
+ }
+ }
+ }
+#line 75 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = TRUE;
+#line 75 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (name);
+#line 75 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (extension);
+#line 75 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (mime_type);
+#line 75 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2187 "VideoSupport.c"
+ } else {
+#line 77 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = FALSE;
+#line 77 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (mime_type);
+#line 77 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2195 "VideoSupport.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (mime_type);
+#line 2199 "VideoSupport.c"
+}
+
+
+ImportResult video_reader_prepare_for_import (VideoImportParams* params) {
+ ImportResult result = 0;
+ GFile* file = NULL;
+ VideoImportParams* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInfo* info = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileType _tmp8_ = 0;
+ GFile* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GTimeVal timestamp = {0};
+ GFileInfo* _tmp14_ = NULL;
+ GTimeVal _tmp15_ = {0};
+ VideoImportParams* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ time_t exposure_time = 0;
+ VideoImportParams* _tmp18_ = NULL;
+ time_t _tmp19_ = 0;
+ gchar* title = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* comment = NULL;
+ gchar* _tmp21_ = NULL;
+ VideoReader* reader = NULL;
+ GFile* _tmp22_ = NULL;
+ VideoReader* _tmp23_ = NULL;
+ gboolean is_interpretable = FALSE;
+ gdouble clip_duration = 0.0;
+ GdkPixbuf* preview_frame = NULL;
+ VideoReader* _tmp24_ = NULL;
+ GdkPixbuf* _tmp25_ = NULL;
+ time_t _tmp53_ = 0;
+ VideoImportParams* _tmp60_ = NULL;
+ VideoRow* _tmp61_ = NULL;
+ VideoImportParams* _tmp62_ = NULL;
+ VideoRow* _tmp63_ = NULL;
+ GFile* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ VideoImportParams* _tmp66_ = NULL;
+ VideoRow* _tmp67_ = NULL;
+ GFileInfo* _tmp68_ = NULL;
+ gint64 _tmp69_ = 0LL;
+ VideoImportParams* _tmp70_ = NULL;
+ VideoRow* _tmp71_ = NULL;
+ GTimeVal _tmp72_ = {0};
+ glong _tmp73_ = 0L;
+ VideoImportParams* _tmp74_ = NULL;
+ VideoRow* _tmp75_ = NULL;
+ GdkPixbuf* _tmp76_ = NULL;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ VideoImportParams* _tmp79_ = NULL;
+ VideoRow* _tmp80_ = NULL;
+ GdkPixbuf* _tmp81_ = NULL;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ VideoImportParams* _tmp84_ = NULL;
+ VideoRow* _tmp85_ = NULL;
+ gdouble _tmp86_ = 0.0;
+ VideoImportParams* _tmp87_ = NULL;
+ VideoRow* _tmp88_ = NULL;
+ gboolean _tmp89_ = FALSE;
+ VideoImportParams* _tmp90_ = NULL;
+ VideoRow* _tmp91_ = NULL;
+ time_t _tmp92_ = 0;
+ VideoImportParams* _tmp93_ = NULL;
+ VideoRow* _tmp94_ = NULL;
+ VideoImportParams* _tmp95_ = NULL;
+ ImportID _tmp96_ = {0};
+ VideoImportParams* _tmp97_ = NULL;
+ VideoRow* _tmp98_ = NULL;
+ VideoImportParams* _tmp99_ = NULL;
+ VideoRow* _tmp100_ = NULL;
+ VideoImportParams* _tmp101_ = NULL;
+ const gchar* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+ VideoImportParams* _tmp104_ = NULL;
+ VideoRow* _tmp105_ = NULL;
+ VideoImportParams* _tmp106_ = NULL;
+ VideoRow* _tmp107_ = NULL;
+ const gchar* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ VideoImportParams* _tmp110_ = NULL;
+ VideoRow* _tmp111_ = NULL;
+ const gchar* _tmp112_ = NULL;
+ gchar* _tmp113_ = NULL;
+ VideoImportParams* _tmp114_ = NULL;
+ VideoRow* _tmp115_ = NULL;
+ gchar* _tmp116_ = NULL;
+ VideoImportParams* _tmp117_ = NULL;
+ VideoRow* _tmp118_ = NULL;
+ VideoImportParams* _tmp119_ = NULL;
+ VideoRow* _tmp120_ = NULL;
+ VideoImportParams* _tmp121_ = NULL;
+ Thumbnails* _tmp122_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_IMPORT_PARAMS (params), 0);
+#line 85 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = params;
+#line 85 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_->file;
+#line 85 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 85 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ file = _tmp2_;
+#line 87 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ info = NULL;
+#line 2311 "VideoSupport.c"
+ {
+ GFileInfo* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = file;
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = g_file_query_info (_tmp4_, DIRECTORY_MONITOR_SUPPLIED_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp5_;
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2325 "VideoSupport.c"
+ goto __catch482_g_error;
+ }
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp3_;
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 89 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ info = _tmp6_;
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2338 "VideoSupport.c"
+ }
+ goto __finally482;
+ __catch482_g_error:
+ {
+ GError* err = NULL;
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_FILE_ERROR;
+#line 92 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 92 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 92 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 92 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2358 "VideoSupport.c"
+ }
+ __finally482:
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 88 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 2373 "VideoSupport.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = info;
+#line 95 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = g_file_info_get_file_type (_tmp7_);
+#line 95 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp8_ != G_FILE_TYPE_REGULAR) {
+#line 96 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_NOT_A_FILE;
+#line 96 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 96 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 96 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2389 "VideoSupport.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = file;
+#line 98 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = video_reader_is_supported_video_file (_tmp9_);
+#line 98 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp10_) {
+#line 2397 "VideoSupport.c"
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = file;
+#line 99 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 99 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = _tmp12_;
+#line 99 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_message ("Not importing %s: file is marked as a video file but doesn't have a" "supported extension", _tmp13_);
+#line 99 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp13_);
+#line 102 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_UNSUPPORTED_FORMAT;
+#line 102 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 102 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 102 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2419 "VideoSupport.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = info;
+#line 105 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_file_info_get_modification_time (_tmp14_, &_tmp15_);
+#line 105 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ timestamp = _tmp15_;
+#line 108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = params;
+#line 108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = _tmp16_->md5;
+#line 108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_assert (_tmp17_ != NULL, "params.md5 != null");
+#line 110 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = params;
+#line 110 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = _tmp18_->exposure_time_override;
+#line 110 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ exposure_time = _tmp19_;
+#line 111 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = g_strdup ("");
+#line 111 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ title = _tmp20_;
+#line 112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = g_strdup ("");
+#line 112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ comment = _tmp21_;
+#line 114 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = file;
+#line 114 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = video_reader_new (_tmp22_);
+#line 114 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ reader = _tmp23_;
+#line 115 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ is_interpretable = TRUE;
+#line 116 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ clip_duration = 0.0;
+#line 117 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = reader;
+#line 117 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = video_reader_read_preview_frame (_tmp24_);
+#line 117 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ preview_frame = _tmp25_;
+#line 2463 "VideoSupport.c"
+ {
+ gdouble _tmp26_ = 0.0;
+ VideoReader* _tmp27_ = NULL;
+ gdouble _tmp28_ = 0.0;
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp27_ = reader;
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp28_ = video_reader_read_clip_duration (_tmp27_, &_inner_error_);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = _tmp28_;
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == VIDEO_ERROR) {
+#line 2478 "VideoSupport.c"
+ goto __catch483_video_error;
+ }
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (reader);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (comment);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (title);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 2499 "VideoSupport.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ clip_duration = _tmp26_;
+#line 2503 "VideoSupport.c"
+ }
+ goto __finally483;
+ __catch483_video_error:
+ {
+ GError* err = NULL;
+ GError* _tmp29_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp29_ = err;
+#line 121 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_error_matches (_tmp29_, VIDEO_ERROR, VIDEO_ERROR_FILE)) {
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_FILE_ERROR;
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (reader);
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (comment);
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (title);
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 122 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2536 "VideoSupport.c"
+ } else {
+ GError* _tmp30_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp30_ = err;
+#line 123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_error_matches (_tmp30_, VIDEO_ERROR, VIDEO_ERROR_CONTENTS)) {
+#line 124 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ is_interpretable = FALSE;
+#line 125 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ clip_duration = 0.0;
+#line 2547 "VideoSupport.c"
+ } else {
+#line 127 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_error ("VideoSupport.vala:127: can't prepare video for import: an unknown kind" \
+" of video error occurred");
+#line 2551 "VideoSupport.c"
+ }
+ }
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 2556 "VideoSupport.c"
+ }
+ __finally483:
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (reader);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (comment);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (title);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 2579 "VideoSupport.c"
+ }
+ {
+ VideoMetadata* metadata = NULL;
+ VideoReader* _tmp31_ = NULL;
+ VideoMetadata* _tmp32_ = NULL;
+ MetadataDateTime* creation_date_time = NULL;
+ VideoMetadata* _tmp33_ = NULL;
+ MetadataDateTime* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+ MetadataDateTime* _tmp36_ = NULL;
+ gchar* video_title = NULL;
+ VideoMetadata* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* video_comment = NULL;
+ VideoMetadata* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ const gchar* _tmp48_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp31_ = reader;
+#line 132 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp32_ = video_reader_read_metadata (_tmp31_, &_inner_error_);
+#line 132 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ metadata = _tmp32_;
+#line 132 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2606 "VideoSupport.c"
+ goto __catch484_g_error;
+ }
+#line 133 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp33_ = metadata;
+#line 133 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp34_ = media_metadata_get_creation_date_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 133 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ creation_date_time = _tmp34_;
+#line 135 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp36_ = creation_date_time;
+#line 135 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp36_ != NULL) {
+#line 2619 "VideoSupport.c"
+ MetadataDateTime* _tmp37_ = NULL;
+ time_t _tmp38_ = 0;
+#line 135 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp37_ = creation_date_time;
+#line 135 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp38_ = metadata_date_time_get_timestamp (_tmp37_);
+#line 135 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp35_ = _tmp38_ != ((time_t) 0);
+#line 2628 "VideoSupport.c"
+ } else {
+#line 135 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp35_ = FALSE;
+#line 2632 "VideoSupport.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp35_) {
+#line 2636 "VideoSupport.c"
+ MetadataDateTime* _tmp39_ = NULL;
+ time_t _tmp40_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp39_ = creation_date_time;
+#line 136 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp40_ = metadata_date_time_get_timestamp (_tmp39_);
+#line 136 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ exposure_time = _tmp40_;
+#line 2645 "VideoSupport.c"
+ }
+#line 138 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp41_ = metadata;
+#line 138 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp42_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 138 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_title = _tmp42_;
+#line 139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp43_ = metadata;
+#line 139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp44_ = media_metadata_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_comment = _tmp44_;
+#line 140 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp45_ = video_title;
+#line 140 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp45_ != NULL) {
+#line 2663 "VideoSupport.c"
+ const gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp46_ = video_title;
+#line 141 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp47_ = g_strdup (_tmp46_);
+#line 141 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (title);
+#line 141 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ title = _tmp47_;
+#line 2674 "VideoSupport.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp48_ = video_comment;
+#line 142 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp48_ != NULL) {
+#line 2680 "VideoSupport.c"
+ const gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp49_ = video_comment;
+#line 143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp50_ = g_strdup (_tmp49_);
+#line 143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (comment);
+#line 143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ comment = _tmp50_;
+#line 2691 "VideoSupport.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (video_comment);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (video_title);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _metadata_date_time_unref0 (creation_date_time);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _media_metadata_unref0 (metadata);
+#line 2701 "VideoSupport.c"
+ }
+ goto __finally484;
+ __catch484_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp51_ = err;
+#line 145 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp52_ = _tmp51_->message;
+#line 145 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_warning ("VideoSupport.vala:145: Unable to read video metadata: %s", _tmp52_);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 2721 "VideoSupport.c"
+ }
+ __finally484:
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (reader);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (comment);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (title);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 2744 "VideoSupport.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp53_ = exposure_time;
+#line 148 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp53_ == ((time_t) 0)) {
+#line 2750 "VideoSupport.c"
+ gint64 _tmp54_ = 0LL;
+ VideoReader* _tmp55_ = NULL;
+ GDateTime* _tmp56_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp55_ = reader;
+#line 150 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp56_ = _tmp55_->priv->_timestamp;
+#line 150 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp56_ != NULL) {
+#line 2760 "VideoSupport.c"
+ VideoReader* _tmp57_ = NULL;
+ GDateTime* _tmp58_ = NULL;
+ gint64 _tmp59_ = 0LL;
+#line 151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp57_ = reader;
+#line 151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp58_ = _tmp57_->priv->_timestamp;
+#line 151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp59_ = g_date_time_to_unix (_tmp58_);
+#line 151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp54_ = _tmp59_;
+#line 2772 "VideoSupport.c"
+ } else {
+#line 151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp54_ = (gint64) 0;
+#line 2776 "VideoSupport.c"
+ }
+#line 150 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ exposure_time = (time_t) _tmp54_;
+#line 2780 "VideoSupport.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp60_ = params;
+#line 154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp61_ = _tmp60_->row;
+#line 154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_id_init (&_tmp61_->video_id, VIDEO_ID_INVALID);
+#line 155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp62_ = params;
+#line 155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp63_ = _tmp62_->row;
+#line 155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp64_ = file;
+#line 155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp65_ = g_file_get_path (_tmp64_);
+#line 155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp63_->filepath);
+#line 155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp63_->filepath = _tmp65_;
+#line 156 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp66_ = params;
+#line 156 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp67_ = _tmp66_->row;
+#line 156 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp68_ = info;
+#line 156 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp69_ = g_file_info_get_size (_tmp68_);
+#line 156 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp67_->filesize = _tmp69_;
+#line 157 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp70_ = params;
+#line 157 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp71_ = _tmp70_->row;
+#line 157 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp72_ = timestamp;
+#line 157 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp73_ = _tmp72_.tv_sec;
+#line 157 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp71_->timestamp = (time_t) _tmp73_;
+#line 158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp74_ = params;
+#line 158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp75_ = _tmp74_->row;
+#line 158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp76_ = preview_frame;
+#line 158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp77_ = gdk_pixbuf_get_width (_tmp76_);
+#line 158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp78_ = _tmp77_;
+#line 158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp75_->width = _tmp78_;
+#line 159 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp79_ = params;
+#line 159 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp80_ = _tmp79_->row;
+#line 159 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp81_ = preview_frame;
+#line 159 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp82_ = gdk_pixbuf_get_height (_tmp81_);
+#line 159 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp83_ = _tmp82_;
+#line 159 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp80_->height = _tmp83_;
+#line 160 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp84_ = params;
+#line 160 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp85_ = _tmp84_->row;
+#line 160 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp86_ = clip_duration;
+#line 160 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp85_->clip_duration = _tmp86_;
+#line 161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp87_ = params;
+#line 161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp88_ = _tmp87_->row;
+#line 161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp89_ = is_interpretable;
+#line 161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp88_->is_interpretable = _tmp89_;
+#line 162 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp90_ = params;
+#line 162 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp91_ = _tmp90_->row;
+#line 162 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp92_ = exposure_time;
+#line 162 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp91_->exposure_time = _tmp92_;
+#line 163 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp93_ = params;
+#line 163 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp94_ = _tmp93_->row;
+#line 163 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp95_ = params;
+#line 163 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp96_ = _tmp95_->import_id;
+#line 163 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp94_->import_id = _tmp96_;
+#line 164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp97_ = params;
+#line 164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp98_ = _tmp97_->row;
+#line 164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ event_id_init (&_tmp98_->event_id, EVENT_ID_INVALID);
+#line 165 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp99_ = params;
+#line 165 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp100_ = _tmp99_->row;
+#line 165 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp101_ = params;
+#line 165 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp102_ = _tmp101_->md5;
+#line 165 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp103_ = g_strdup (_tmp102_);
+#line 165 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp100_->md5);
+#line 165 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp100_->md5 = _tmp103_;
+#line 166 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp104_ = params;
+#line 166 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp105_ = _tmp104_->row;
+#line 166 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp105_->time_created = (time_t) 0;
+#line 167 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp106_ = params;
+#line 167 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp107_ = _tmp106_->row;
+#line 167 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp108_ = title;
+#line 167 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp109_ = g_strdup (_tmp108_);
+#line 167 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp107_->title);
+#line 167 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp107_->title = _tmp109_;
+#line 168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp110_ = params;
+#line 168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp111_ = _tmp110_->row;
+#line 168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp112_ = comment;
+#line 168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp113_ = g_strdup (_tmp112_);
+#line 168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp111_->comment);
+#line 168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp111_->comment = _tmp113_;
+#line 169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp114_ = params;
+#line 169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp115_ = _tmp114_->row;
+#line 169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp116_ = g_strdup ("");
+#line 169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp115_->backlinks);
+#line 169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp115_->backlinks = _tmp116_;
+#line 170 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp117_ = params;
+#line 170 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp118_ = _tmp117_->row;
+#line 170 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp118_->time_reimported = (time_t) 0;
+#line 171 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp119_ = params;
+#line 171 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp120_ = _tmp119_->row;
+#line 171 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp120_->flags = (guint64) 0;
+#line 173 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp121_ = params;
+#line 173 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp122_ = _tmp121_->thumbnails;
+#line 173 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp122_ != NULL) {
+#line 2956 "VideoSupport.c"
+ VideoImportParams* _tmp123_ = NULL;
+ Thumbnails* _tmp124_ = NULL;
+ VideoImportParams* _tmp125_ = NULL;
+ Thumbnails* _tmp126_ = NULL;
+ GdkPixbuf* _tmp127_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp123_ = params;
+#line 174 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp124_ = thumbnails_new ();
+#line 174 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _thumbnails_unref0 (_tmp123_->thumbnails);
+#line 174 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp123_->thumbnails = _tmp124_;
+#line 175 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp125_ = params;
+#line 175 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp126_ = _tmp125_->thumbnails;
+#line 175 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp127_ = preview_frame;
+#line 175 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ thumbnail_cache_generate_for_video_frame (_tmp126_, _tmp127_);
+#line 2978 "VideoSupport.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (reader);
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (comment);
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (title);
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (file);
+#line 181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 2996 "VideoSupport.c"
+}
+
+
+static GDate* _g_date_dup (GDate* self) {
+ GDate* dup;
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dup = g_new0 (GDate, 1);
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ memcpy (dup, self, sizeof (GDate));
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return dup;
+#line 3008 "VideoSupport.c"
+}
+
+
+static gpointer __g_date_dup0 (gpointer self) {
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self ? _g_date_dup (self) : NULL;
+#line 3015 "VideoSupport.c"
+}
+
+
+static void video_reader_read_internal (VideoReader* self, GError** error) {
+ gboolean _tmp0_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO_READER (self));
+#line 185 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_reader_does_file_exist (self);
+#line 185 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp0_) {
+#line 3028 "VideoSupport.c"
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+ GError* _tmp7_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->file;
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = g_strdup_printf ("video file '%s' does not exist or is inaccessible", _tmp3_);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = g_error_new_literal (VIDEO_ERROR, VIDEO_ERROR_FILE, _tmp5_);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = _tmp6_;
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp5_);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp3_);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = _tmp7_;
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == VIDEO_ERROR) {
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 3062 "VideoSupport.c"
+ } else {
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 186 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 3070 "VideoSupport.c"
+ }
+ }
+ {
+ GstDiscoverer* d = NULL;
+ GstDiscoverer* _tmp8_ = NULL;
+ GstDiscovererInfo* info = NULL;
+ GstDiscoverer* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GstDiscovererInfo* _tmp13_ = NULL;
+ GstDiscovererInfo* _tmp14_ = NULL;
+ GstDiscovererInfo* _tmp15_ = NULL;
+ GstClockTime _tmp16_ = 0ULL;
+ GDate* video_date = NULL;
+ gboolean _tmp17_ = FALSE;
+ GstDiscovererInfo* _tmp18_ = NULL;
+ GstTagList* _tmp19_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = gst_discoverer_new ((GstClockTime) (GST_SECOND * 5), &_inner_error_);
+#line 190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ d = _tmp8_;
+#line 190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3095 "VideoSupport.c"
+ goto __catch485_g_error;
+ }
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = d;
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = self->priv->file;
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = g_file_get_uri (_tmp10_);
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = _tmp11_;
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = gst_discoverer_discover_uri (_tmp9_, _tmp12_, &_inner_error_);
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = _tmp13_;
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp12_);
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ info = _tmp14_;
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 191 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (d);
+#line 3118 "VideoSupport.c"
+ goto __catch485_g_error;
+ }
+#line 193 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = info;
+#line 193 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = gst_discoverer_info_get_duration (_tmp15_);
+#line 193 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->clip_duration = ((gdouble) _tmp16_) / 1000000000.0;
+#line 198 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_date = NULL;
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = info;
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = gst_discoverer_info_get_tags (_tmp18_);
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp19_ != NULL) {
+#line 3135 "VideoSupport.c"
+ GstDiscovererInfo* _tmp20_ = NULL;
+ GstTagList* _tmp21_ = NULL;
+ GDate _tmp22_ = {0};
+ gboolean _tmp23_ = FALSE;
+ GDate _tmp24_ = {0};
+ GDate* _tmp25_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = info;
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = gst_discoverer_info_get_tags (_tmp20_);
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = gst_tag_list_get_date (_tmp21_, GST_TAG_DATE, &_tmp22_);
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (video_date);
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = _tmp22_;
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = __g_date_dup0 (&_tmp24_);
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_date = _tmp25_;
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = _tmp23_;
+#line 3158 "VideoSupport.c"
+ } else {
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = FALSE;
+#line 3162 "VideoSupport.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp17_) {
+#line 3166 "VideoSupport.c"
+ GDate* _tmp26_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = video_date;
+#line 201 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp26_ != NULL) {
+#line 3172 "VideoSupport.c"
+ GDate* _tmp27_ = NULL;
+ GDateYear _tmp28_ = 0U;
+ GDate* _tmp29_ = NULL;
+ GDateMonth _tmp30_ = 0;
+ GDate* _tmp31_ = NULL;
+ GDateDay _tmp32_ = '\0';
+ GDateTime* _tmp33_ = NULL;
+ GDateTime* _tmp34_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp27_ = video_date;
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp28_ = g_date_get_year (_tmp27_);
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp29_ = video_date;
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp30_ = g_date_get_month (_tmp29_);
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp31_ = video_date;
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp32_ = g_date_get_day (_tmp31_);
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp33_ = g_date_time_new_local ((gint) _tmp28_, (gint) _tmp30_, (gint) _tmp32_, 0, 0, (gdouble) 0);
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp34_ = _tmp33_;
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_reader_set_timestamp (self, _tmp34_);
+#line 202 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_date_time_unref0 (_tmp34_);
+#line 3201 "VideoSupport.c"
+ }
+ }
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (video_date);
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (info);
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (d);
+#line 3210 "VideoSupport.c"
+ }
+ goto __finally485;
+ __catch485_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ GError* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ GError* _tmp41_ = NULL;
+ GError* _tmp42_ = NULL;
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp35_ = e;
+#line 207 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp36_ = _tmp35_->message;
+#line 207 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:207: Video read error: %s", _tmp36_);
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp37_ = e;
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp38_ = _tmp37_->message;
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp39_ = g_strdup_printf ("GStreamer couldn't extract clip information: %s", _tmp38_);
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp40_ = _tmp39_;
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp41_ = g_error_new_literal (VIDEO_ERROR, VIDEO_ERROR_CONTENTS, _tmp40_);
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp42_ = _tmp41_;
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp40_);
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = _tmp42_;
+#line 208 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 3252 "VideoSupport.c"
+ goto __finally485;
+ }
+ __finally485:
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == VIDEO_ERROR) {
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 3264 "VideoSupport.c"
+ } else {
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 3272 "VideoSupport.c"
+ }
+ }
+}
+
+
+static gboolean video_reader_on_thumbnailer_timer (VideoReader* self) {
+ gboolean result = FALSE;
+ GPid _tmp0_ = 0;
+#line 214 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_READER (self), FALSE);
+#line 215 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:215: Thumbnailer timer called");
+#line 216 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->thumbnailer_pid;
+#line 216 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_ != ((GPid) 0)) {
+#line 3289 "VideoSupport.c"
+ GPid _tmp1_ = 0;
+ GPid _tmp2_ = 0;
+#line 217 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->thumbnailer_pid;
+#line 217 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:217: Killing thumbnailer process: %d", (gint) _tmp1_);
+#line 218 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->thumbnailer_pid;
+#line 218 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ kill ((pid_t) _tmp2_, SIGKILL);
+#line 3300 "VideoSupport.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = FALSE;
+#line 220 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3306 "VideoSupport.c"
+}
+
+
+static gboolean _video_reader_on_thumbnailer_timer_gsource_func (gpointer self) {
+ gboolean result;
+ result = video_reader_on_thumbnailer_timer ((VideoReader*) self);
+#line 243 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3315 "VideoSupport.c"
+}
+
+
+static GdkPixbuf* video_reader_thumbnailer (VideoReader* self, const gchar* video_file) {
+ GdkPixbuf* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar** argv = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint argv_length1 = 0;
+ gint _argv_size_ = 0;
+ gint child_stdout = 0;
+ GdkPixbuf* buf = NULL;
+ gint child_status = 0;
+ gint ret_waitpid = 0;
+ GPid _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ pid_t _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp36_ = 0;
+ GPid _tmp37_ = 0;
+ GError * _inner_error_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_READER (self), NULL);
+#line 225 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (video_file != NULL, NULL);
+#line 227 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = app_dirs_get_thumbnailer_bin ();
+#line 227 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 227 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 227 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 227 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:227: Launching thumbnailer process: %s", _tmp3_);
+#line 227 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp3_);
+#line 227 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp1_);
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = app_dirs_get_thumbnailer_bin ();
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video_file;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = g_new0 (gchar*, 2 + 1);
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_[0] = _tmp6_;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_[1] = _tmp8_;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = _tmp9_;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10__length1 = 2;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp5_);
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ argv = _tmp10_;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ argv_length1 = _tmp10__length1;
+#line 228 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _argv_size_ = argv_length1;
+#line 3393 "VideoSupport.c"
+ {
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ GPid _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GPid _tmp14_ = 0;
+#line 231 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = argv;
+#line 231 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11__length1 = argv_length1;
+#line 231 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_spawn_async_with_pipes (NULL, _tmp11_, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &_tmp12_, NULL, &_tmp13_, NULL, &_inner_error_);
+#line 231 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->thumbnailer_pid = _tmp12_;
+#line 231 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ child_stdout = _tmp13_;
+#line 231 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3412 "VideoSupport.c"
+ goto __catch486_g_error;
+ }
+#line 234 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = self->priv->thumbnailer_pid;
+#line 234 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:234: Spawned thumbnailer, child pid: %d", (gint) _tmp14_);
+#line 3419 "VideoSupport.c"
+ }
+ goto __finally486;
+ __catch486_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GPid _tmp17_ = 0;
+#line 230 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 230 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = e;
+#line 236 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = _tmp15_->message;
+#line 236 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:236: Error spawning process: %s", _tmp16_);
+#line 237 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = self->priv->thumbnailer_pid;
+#line 237 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp17_ != ((GPid) 0)) {
+#line 3442 "VideoSupport.c"
+ GPid _tmp18_ = 0;
+#line 238 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = self->priv->thumbnailer_pid;
+#line 238 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_spawn_close_pid (_tmp18_);
+#line 3448 "VideoSupport.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = NULL;
+#line 239 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 239 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 239 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3458 "VideoSupport.c"
+ }
+ __finally486:
+#line 230 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 230 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 230 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 230 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 230 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 3471 "VideoSupport.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, VIDEO_READER_THUMBNAILER_TIMEOUT, _video_reader_on_thumbnailer_timer_gsource_func, video_reader_ref (self), video_reader_unref);
+#line 246 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ buf = NULL;
+#line 3477 "VideoSupport.c"
+ {
+ GUnixInputStream* unix_input = NULL;
+ gint _tmp19_ = 0;
+ GUnixInputStream* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ GUnixInputStream* _tmp22_ = NULL;
+ GdkPixbuf* _tmp23_ = NULL;
+ GdkPixbuf* _tmp24_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = child_stdout;
+#line 248 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = (GUnixInputStream*) g_unix_input_stream_new (_tmp19_, TRUE);
+#line 248 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ unix_input = _tmp20_;
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = unix_input;
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = gdk_pixbuf_new_from_stream (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_);
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = _tmp23_;
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (unix_input);
+#line 3502 "VideoSupport.c"
+ goto __catch487_g_error;
+ }
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = _tmp21_;
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = NULL;
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (buf);
+#line 249 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ buf = _tmp24_;
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp21_);
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (unix_input);
+#line 3517 "VideoSupport.c"
+ }
+ goto __finally487;
+ __catch487_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = e;
+#line 251 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = _tmp25_->message;
+#line 251 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:251: Error creating pixbuf: %s", _tmp26_);
+#line 252 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (buf);
+#line 252 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ buf = NULL;
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 3541 "VideoSupport.c"
+ }
+ __finally487:
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (buf);
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 247 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 3556 "VideoSupport.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ child_status = 0;
+#line 257 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp27_ = self->priv->thumbnailer_pid;
+#line 257 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp29_ = waitpid ((pid_t) _tmp27_, &_tmp28_, 0);
+#line 257 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ child_status = _tmp28_;
+#line 257 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ret_waitpid = (gint) _tmp29_;
+#line 258 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp30_ = ret_waitpid;
+#line 258 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp30_ < 0) {
+#line 3572 "VideoSupport.c"
+ gint _tmp31_ = 0;
+#line 259 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp31_ = ret_waitpid;
+#line 259 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:259: waitpid returned error code: %d", _tmp31_);
+#line 260 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (buf);
+#line 260 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ buf = NULL;
+#line 3582 "VideoSupport.c"
+ } else {
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+#line 261 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp32_ = child_status;
+#line 261 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp33_ = WEXITSTATUS (_tmp32_);
+#line 261 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (0 != _tmp33_) {
+#line 3592 "VideoSupport.c"
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp34_ = child_status;
+#line 262 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp35_ = WEXITSTATUS (_tmp34_);
+#line 262 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:262: Thumbnailer exited with error code: %d", _tmp35_);
+#line 264 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (buf);
+#line 264 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ buf = NULL;
+#line 3605 "VideoSupport.c"
+ }
+ }
+#line 267 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp36_ = child_stdout;
+#line 267 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ close (_tmp36_);
+#line 268 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp37_ = self->priv->thumbnailer_pid;
+#line 268 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_spawn_close_pid (_tmp37_);
+#line 269 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->thumbnailer_pid = (GPid) 0;
+#line 270 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = buf;
+#line 270 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL);
+#line 270 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3624 "VideoSupport.c"
+}
+
+
+static gboolean video_reader_does_file_exist (VideoReader* self) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 273 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_READER (self), FALSE);
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->file;
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = g_file_test (_tmp2_, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR);
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp2_);
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp4_;
+#line 274 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3653 "VideoSupport.c"
+}
+
+
+GdkPixbuf* video_reader_read_preview_frame (VideoReader* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_READER (self), NULL);
+#line 278 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->preview_frame;
+#line 278 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_ != NULL) {
+#line 3674 "VideoSupport.c"
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->preview_frame;
+#line 279 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 279 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp2_;
+#line 279 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3685 "VideoSupport.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_reader_does_file_exist (self);
+#line 281 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp3_) {
+#line 282 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = NULL;
+#line 282 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3695 "VideoSupport.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->file;
+#line 285 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = g_file_get_path (_tmp4_);
+#line 285 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp5_;
+#line 285 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video_reader_thumbnailer (self, _tmp6_);
+#line 285 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->priv->preview_frame);
+#line 285 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->preview_frame = _tmp7_;
+#line 285 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp6_);
+#line 286 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = self->priv->preview_frame;
+#line 286 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (NULL == _tmp8_) {
+#line 3715 "VideoSupport.c"
+ GdkPixbuf* _tmp9_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = resources_get_noninterpretable_badge_pixbuf ();
+#line 287 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->priv->preview_frame);
+#line 287 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->preview_frame = _tmp9_;
+#line 3723 "VideoSupport.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = self->priv->preview_frame;
+#line 289 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 289 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp11_;
+#line 289 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3733 "VideoSupport.c"
+}
+
+
+gdouble video_reader_read_clip_duration (VideoReader* self, GError** error) {
+ gdouble result = 0.0;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ GError * _inner_error_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_READER (self), 0.0);
+#line 293 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->clip_duration;
+#line 293 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_ == VIDEO_READER_UNKNOWN_CLIP_DURATION) {
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_reader_read_internal (self, &_inner_error_);
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == VIDEO_ERROR) {
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0.0;
+#line 3758 "VideoSupport.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 294 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0.0;
+#line 3766 "VideoSupport.c"
+ }
+ }
+ }
+#line 296 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->clip_duration;
+#line 296 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp1_;
+#line 296 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3776 "VideoSupport.c"
+}
+
+
+VideoMetadata* video_reader_read_metadata (VideoReader* self, GError** error) {
+ VideoMetadata* result = NULL;
+ VideoMetadata* metadata = NULL;
+ VideoMetadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_READER (self), NULL);
+#line 300 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_metadata_new ();
+#line 300 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ metadata = _tmp0_;
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->file;
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = g_file_new_for_path (_tmp3_);
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (metadata, TYPE_MEDIA_METADATA, MediaMetadata), _tmp5_, &_inner_error_);
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp5_);
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp3_);
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _media_metadata_unref0 (metadata);
+#line 301 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 3820 "VideoSupport.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = metadata;
+#line 303 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3826 "VideoSupport.c"
+}
+
+
+GDateTime* video_reader_get_timestamp (VideoReader* self) {
+ GDateTime* result;
+ GDateTime* _tmp0_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_READER (self), NULL);
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->_timestamp;
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 3841 "VideoSupport.c"
+}
+
+
+static gpointer _g_date_time_ref0 (gpointer self) {
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self ? g_date_time_ref (self) : NULL;
+#line 3848 "VideoSupport.c"
+}
+
+
+static void video_reader_set_timestamp (VideoReader* self, GDateTime* value) {
+ GDateTime* _tmp0_ = NULL;
+ GDateTime* _tmp1_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO_READER (self));
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = value;
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _g_date_time_ref0 (_tmp0_);
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_date_time_unref0 (self->priv->_timestamp);
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->_timestamp = _tmp1_;
+#line 3865 "VideoSupport.c"
+}
+
+
+static void value_video_reader_init (GValue* value) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3872 "VideoSupport.c"
+}
+
+
+static void value_video_reader_free_value (GValue* value) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (value->data[0].v_pointer) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_reader_unref (value->data[0].v_pointer);
+#line 3881 "VideoSupport.c"
+ }
+}
+
+
+static void value_video_reader_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dest_value->data[0].v_pointer = video_reader_ref (src_value->data[0].v_pointer);
+#line 3891 "VideoSupport.c"
+ } else {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3895 "VideoSupport.c"
+ }
+}
+
+
+static gpointer value_video_reader_peek_pointer (const GValue* value) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return value->data[0].v_pointer;
+#line 3903 "VideoSupport.c"
+}
+
+
+static gchar* value_video_reader_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (collect_values[0].v_pointer) {
+#line 3910 "VideoSupport.c"
+ VideoReader* object;
+ object = collect_values[0].v_pointer;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3917 "VideoSupport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3921 "VideoSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = video_reader_ref (object);
+#line 3925 "VideoSupport.c"
+ } else {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 3929 "VideoSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 3933 "VideoSupport.c"
+}
+
+
+static gchar* value_video_reader_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ VideoReader** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!object_p) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3944 "VideoSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!value->data[0].v_pointer) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = NULL;
+#line 3950 "VideoSupport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3954 "VideoSupport.c"
+ } else {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = video_reader_ref (value->data[0].v_pointer);
+#line 3958 "VideoSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 3962 "VideoSupport.c"
+}
+
+
+GParamSpec* param_spec_video_reader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecVideoReader* spec;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_VIDEO_READER), NULL);
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return G_PARAM_SPEC (spec);
+#line 3976 "VideoSupport.c"
+}
+
+
+gpointer value_get_video_reader (const GValue* value) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_READER), NULL);
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return value->data[0].v_pointer;
+#line 3985 "VideoSupport.c"
+}
+
+
+void value_set_video_reader (GValue* value, gpointer v_object) {
+ VideoReader* old;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_READER));
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old = value->data[0].v_pointer;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (v_object) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIDEO_READER));
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = v_object;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_reader_ref (value->data[0].v_pointer);
+#line 4005 "VideoSupport.c"
+ } else {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 4009 "VideoSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (old) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_reader_unref (old);
+#line 4015 "VideoSupport.c"
+ }
+}
+
+
+void value_take_video_reader (GValue* value, gpointer v_object) {
+ VideoReader* old;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_READER));
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old = value->data[0].v_pointer;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (v_object) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIDEO_READER));
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = v_object;
+#line 4034 "VideoSupport.c"
+ } else {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 4038 "VideoSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (old) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_reader_unref (old);
+#line 4044 "VideoSupport.c"
+ }
+}
+
+
+static void video_reader_class_init (VideoReaderClass * klass) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_reader_parent_class = g_type_class_peek_parent (klass);
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((VideoReaderClass *) klass)->finalize = video_reader_finalize;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_type_class_add_private (klass, sizeof (VideoReaderPrivate));
+#line 4056 "VideoSupport.c"
+}
+
+
+static void video_reader_instance_init (VideoReader * self) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv = VIDEO_READER_GET_PRIVATE (self);
+#line 45 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->clip_duration = VIDEO_READER_UNKNOWN_CLIP_DURATION;
+#line 46 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->preview_frame = NULL;
+#line 47 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->file = NULL;
+#line 48 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->thumbnailer_pid = (GPid) 0;
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->_timestamp = NULL;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->ref_count = 1;
+#line 4075 "VideoSupport.c"
+}
+
+
+static void video_reader_finalize (VideoReader* obj) {
+ VideoReader * self;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_READER, VideoReader);
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_signal_handlers_destroy (self);
+#line 46 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->priv->preview_frame);
+#line 47 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->priv->file);
+#line 49 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_date_time_unref0 (self->priv->_timestamp);
+#line 4091 "VideoSupport.c"
+}
+
+
+GType video_reader_get_type (void) {
+ static volatile gsize video_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&video_reader_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_video_reader_init, value_video_reader_free_value, value_video_reader_copy_value, value_video_reader_peek_pointer, "p", value_video_reader_collect_value, "p", value_video_reader_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (VideoReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoReader), 0, (GInstanceInitFunc) video_reader_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType video_reader_type_id;
+ video_reader_type_id = g_type_register_fundamental (g_type_fundamental_next (), "VideoReader", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&video_reader_type_id__volatile, video_reader_type_id);
+ }
+ return video_reader_type_id__volatile;
+}
+
+
+gpointer video_reader_ref (gpointer instance) {
+ VideoReader* self;
+ self = instance;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return instance;
+#line 4116 "VideoSupport.c"
+}
+
+
+void video_reader_unref (gpointer instance) {
+ VideoReader* self;
+ self = instance;
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ VIDEO_READER_GET_CLASS (self)->finalize (self);
+#line 38 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4129 "VideoSupport.c"
+ }
+}
+
+
+static gpointer _video_row_ref0 (gpointer self) {
+#line 351 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self ? video_row_ref (self) : NULL;
+#line 4137 "VideoSupport.c"
+}
+
+
+Video* video_construct (GType object_type, VideoRow* row) {
+ Video * self = NULL;
+ VideoRow* _tmp0_ = NULL;
+ VideoRow* _tmp1_ = NULL;
+ VideoRow* _tmp2_ = NULL;
+ VideoRow* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ VideoRow* _tmp7_ = NULL;
+ guint64 _tmp8_ = 0ULL;
+#line 350 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_ROW (row), NULL);
+#line 350 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = (Video*) video_source_construct (object_type);
+#line 351 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = row;
+#line 351 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _video_row_ref0 (_tmp0_);
+#line 351 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_row_unref0 (self->priv->backing_row);
+#line 351 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->backing_row = _tmp1_;
+#line 354 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->backing_row;
+#line 354 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 354 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->title;
+#line 354 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = media_source_prep_title (_tmp4_);
+#line 354 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp2_->title);
+#line 354 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_->title = _tmp5_;
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = row;
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _tmp7_->flags;
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if ((_tmp8_ & VIDEO_FLAG_TRASH) != ((guint64) 0)) {
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = TRUE;
+#line 4184 "VideoSupport.c"
+ } else {
+ VideoRow* _tmp9_ = NULL;
+ guint64 _tmp10_ = 0ULL;
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = row;
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = _tmp9_->flags;
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = (_tmp10_ & VIDEO_FLAG_OFFLINE) != ((guint64) 0);
+#line 4194 "VideoSupport.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp6_) {
+#line 4198 "VideoSupport.c"
+ VideoSourceCollection* _tmp11_ = NULL;
+ VideoRow* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 357 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = video_global;
+#line 357 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = row;
+#line 357 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = _tmp12_->backlinks;
+#line 357 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_source_rehydrate_backlinks (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp13_);
+#line 4210 "VideoSupport.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self;
+#line 4214 "VideoSupport.c"
+}
+
+
+Video* video_new (VideoRow* row) {
+#line 350 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return video_construct (TYPE_VIDEO, row);
+#line 4221 "VideoSupport.c"
+}
+
+
+void video_init (ProgressMonitor monitor, void* monitor_target) {
+ gchar** fake_args = NULL;
+ gchar** _tmp0_ = NULL;
+ gint fake_args_length1 = 0;
+ gint _fake_args_size_ = 0;
+ gchar** fake_unowned_args = NULL;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gint fake_unowned_args_length1 = 0;
+ gint _fake_unowned_args_size_ = 0;
+ gint saved_state = 0;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GstRegistry* _tmp6_ = NULL;
+ guint32 _tmp7_ = 0U;
+ gint _tmp8_ = 0;
+ VideoSourceCollection* _tmp11_ = NULL;
+ GeeArrayList* all = NULL;
+ VideoTable* _tmp12_ = NULL;
+ VideoTable* _tmp13_ = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ GeeArrayList* all_videos = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+ GeeArrayList* trashed_videos = NULL;
+ GeeArrayList* _tmp17_ = NULL;
+ GeeArrayList* offline_videos = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ gint count = 0;
+ GeeArrayList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ VideoSourceCollection* _tmp48_ = NULL;
+ GeeArrayList* _tmp49_ = NULL;
+ VideoSourceCollection* _tmp50_ = NULL;
+ GeeArrayList* _tmp51_ = NULL;
+ VideoSourceCollection* _tmp52_ = NULL;
+ GeeArrayList* _tmp53_ = NULL;
+ GeeCollection* _tmp54_ = NULL;
+ GeeCollection* _tmp55_ = NULL;
+#line 364 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpreter_state_changed = FALSE;
+#line 365 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_current_state = -1;
+#line 366 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_normal_regen_complete = FALSE;
+#line 367 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_offline_regen_complete = FALSE;
+#line 371 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 371 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ fake_args = _tmp0_;
+#line 371 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ fake_args_length1 = 0;
+#line 371 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _fake_args_size_ = fake_args_length1;
+#line 372 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = fake_args;
+#line 372 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1__length1 = fake_args_length1;
+#line 372 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ fake_unowned_args = _tmp1_;
+#line 372 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ fake_unowned_args_length1 = _tmp1__length1;
+#line 372 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _fake_unowned_args_size_ = fake_unowned_args_length1;
+#line 373 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ gst_init (&fake_unowned_args_length1, &fake_unowned_args);
+#line 375 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 375 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 375 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = configuration_facade_get_video_interpreter_state_cookie (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 375 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 375 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp3_);
+#line 375 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ saved_state = _tmp5_;
+#line 376 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = gst_registry_get ();
+#line 376 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = gst_registry_get_feature_list_cookie (_tmp6_);
+#line 376 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_current_state = (gint) _tmp7_;
+#line 377 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = saved_state;
+#line 377 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp8_ == CONFIG_FACADE_NO_VIDEO_INTERPRETER_STATE) {
+#line 378 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_message ("VideoSupport.vala:378: interpreter state cookie not found; assuming al" \
+"l video thumbnails are out of date");
+#line 379 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpreter_state_changed = TRUE;
+#line 4321 "VideoSupport.c"
+ } else {
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 380 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = saved_state;
+#line 380 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = video_current_state;
+#line 380 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp9_ != _tmp10_) {
+#line 381 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_message ("VideoSupport.vala:381: interpreter state has changed; video thumbnails" \
+" may be out of date");
+#line 382 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpreter_state_changed = TRUE;
+#line 4335 "VideoSupport.c"
+ }
+ }
+#line 385 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = video_source_collection_new ();
+#line 385 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _data_collection_unref0 (video_global);
+#line 385 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_global = _tmp11_;
+#line 387 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = video_table_get_instance ();
+#line 387 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = _tmp12_;
+#line 387 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = video_table_get_all (_tmp13_);
+#line 387 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = _tmp14_;
+#line 387 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp13_);
+#line 387 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ all = _tmp15_;
+#line 388 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 388 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ all_videos = _tmp16_;
+#line 389 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 389 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ trashed_videos = _tmp17_;
+#line 390 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 390 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ offline_videos = _tmp18_;
+#line 391 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = all;
+#line 391 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 391 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = _tmp20_;
+#line 391 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ count = _tmp21_;
+#line 4376 "VideoSupport.c"
+ {
+ gint ctr = 0;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ctr = 0;
+#line 4381 "VideoSupport.c"
+ {
+ gboolean _tmp22_ = FALSE;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = TRUE;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ while (TRUE) {
+#line 4388 "VideoSupport.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ Video* video = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gpointer _tmp28_ = NULL;
+ VideoRow* _tmp29_ = NULL;
+ Video* _tmp30_ = NULL;
+ Video* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ Video* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+ ProgressMonitor _tmp44_ = NULL;
+ void* _tmp44__target = NULL;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp22_) {
+#line 4405 "VideoSupport.c"
+ gint _tmp23_ = 0;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = ctr;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ctr = _tmp23_ + 1;
+#line 4411 "VideoSupport.c"
+ }
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = FALSE;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = ctr;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = count;
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!(_tmp24_ < _tmp25_)) {
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 4423 "VideoSupport.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = all;
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp27_ = ctr;
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp28_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp27_);
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp29_ = (VideoRow*) _tmp28_;
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp30_ = video_new (_tmp29_);
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp31_ = _tmp30_;
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_row_unref0 (_tmp29_);
+#line 393 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = _tmp31_;
+#line 395 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp32_ = video_interpreter_state_changed;
+#line 395 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp32_) {
+#line 4445 "VideoSupport.c"
+ Video* _tmp33_ = NULL;
+#line 396 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp33_ = video;
+#line 396 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_set_is_interpretable (_tmp33_, FALSE);
+#line 4451 "VideoSupport.c"
+ }
+#line 398 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp34_ = video;
+#line 398 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp35_ = media_source_is_trashed (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 398 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp35_) {
+#line 4459 "VideoSupport.c"
+ GeeArrayList* _tmp36_ = NULL;
+ Video* _tmp37_ = NULL;
+#line 399 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp36_ = trashed_videos;
+#line 399 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp37_ = video;
+#line 399 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp37_);
+#line 4468 "VideoSupport.c"
+ } else {
+ Video* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 400 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp38_ = video;
+#line 400 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp39_ = media_source_is_offline (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 400 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp39_) {
+#line 4478 "VideoSupport.c"
+ GeeArrayList* _tmp40_ = NULL;
+ Video* _tmp41_ = NULL;
+#line 401 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp40_ = offline_videos;
+#line 401 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp41_ = video;
+#line 401 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp41_);
+#line 4487 "VideoSupport.c"
+ } else {
+ GeeArrayList* _tmp42_ = NULL;
+ Video* _tmp43_ = NULL;
+#line 403 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp42_ = all_videos;
+#line 403 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp43_ = video;
+#line 403 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp43_);
+#line 4497 "VideoSupport.c"
+ }
+ }
+#line 405 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp44_ = monitor;
+#line 405 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp44__target = monitor_target;
+#line 405 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp44_ != NULL) {
+#line 4506 "VideoSupport.c"
+ ProgressMonitor _tmp45_ = NULL;
+ void* _tmp45__target = NULL;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+#line 406 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp45_ = monitor;
+#line 406 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp45__target = monitor_target;
+#line 406 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp46_ = ctr;
+#line 406 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp47_ = count;
+#line 406 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp45_ ((guint64) _tmp46_, (guint64) _tmp47_, TRUE, _tmp45__target);
+#line 4521 "VideoSupport.c"
+ }
+#line 392 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 4525 "VideoSupport.c"
+ }
+ }
+ }
+#line 409 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp48_ = video_global;
+#line 409 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp49_ = trashed_videos;
+#line 409 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ media_source_collection_add_many_to_trash (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 410 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp50_ = video_global;
+#line 410 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp51_ = offline_videos;
+#line 410 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ media_source_collection_add_many_to_offline (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 411 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp52_ = video_global;
+#line 411 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp53_ = all_videos;
+#line 411 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp54_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 411 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp55_ = _tmp54_;
+#line 411 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp55_);
+#line 360 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (offline_videos);
+#line 360 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (trashed_videos);
+#line 360 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (all_videos);
+#line 360 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (all);
+#line 360 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ fake_args = (_vala_array_free (fake_args, fake_args_length1, (GDestroyNotify) g_free), NULL);
+#line 4561 "VideoSupport.c"
+}
+
+
+gboolean video_has_interpreter_state_changed (void) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 415 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_interpreter_state_changed;
+#line 415 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 415 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 4574 "VideoSupport.c"
+}
+
+
+void video_notify_normal_thumbs_regenerated (void) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 419 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_normal_regen_complete;
+#line 419 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_) {
+#line 420 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 4588 "VideoSupport.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_message ("VideoSupport.vala:422: normal video thumbnail regeneration completed");
+#line 424 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_normal_regen_complete = TRUE;
+#line 425 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = video_normal_regen_complete;
+#line 425 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp2_) {
+#line 4598 "VideoSupport.c"
+ gboolean _tmp3_ = FALSE;
+#line 425 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_offline_regen_complete;
+#line 425 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp3_;
+#line 4604 "VideoSupport.c"
+ } else {
+#line 425 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = FALSE;
+#line 4608 "VideoSupport.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp1_) {
+#line 426 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_save_interpreter_state ();
+#line 4614 "VideoSupport.c"
+ }
+}
+
+
+void video_notify_offline_thumbs_regenerated (void) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 430 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_offline_regen_complete;
+#line 430 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_) {
+#line 431 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 4629 "VideoSupport.c"
+ }
+#line 433 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_message ("VideoSupport.vala:433: offline video thumbnail regeneration completed");
+#line 435 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_offline_regen_complete = TRUE;
+#line 436 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = video_normal_regen_complete;
+#line 436 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp2_) {
+#line 4639 "VideoSupport.c"
+ gboolean _tmp3_ = FALSE;
+#line 436 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_offline_regen_complete;
+#line 436 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp3_;
+#line 4645 "VideoSupport.c"
+ } else {
+#line 436 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = FALSE;
+#line 4649 "VideoSupport.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp1_) {
+#line 437 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_save_interpreter_state ();
+#line 4655 "VideoSupport.c"
+ }
+}
+
+
+static void video_save_interpreter_state (void) {
+ gboolean _tmp0_ = FALSE;
+#line 441 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_interpreter_state_changed;
+#line 441 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_) {
+#line 4666 "VideoSupport.c"
+ ConfigFacade* _tmp1_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 442 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_message ("VideoSupport.vala:442: saving video interpreter state to configuration" \
+" system");
+#line 444 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = config_facade_get_instance ();
+#line 444 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 444 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_current_state;
+#line 444 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ configuration_facade_set_video_interpreter_state_cookie (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp3_);
+#line 444 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 445 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpreter_state_changed = FALSE;
+#line 4684 "VideoSupport.c"
+ }
+}
+
+
+void video_terminate (void) {
+}
+
+
+ExporterUI* video_export_many (GeeCollection* videos, ExporterCompletionCallback done, void* done_target, gboolean export_in_place) {
+ ExporterUI* result = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ GeeCollection* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ GFile* export_dir = NULL;
+ const gchar* _tmp39_ = NULL;
+ GFile* _tmp40_ = NULL;
+ GFile* _tmp41_ = NULL;
+ ExporterUI* exporter = NULL;
+ GeeCollection* _tmp42_ = NULL;
+ GFile* _tmp43_ = NULL;
+ Scaling _tmp44_ = {0};
+ ExportFormatParameters _tmp45_ = {0};
+ Exporter* _tmp46_ = NULL;
+ Exporter* _tmp47_ = NULL;
+ ExporterUI* _tmp48_ = NULL;
+ ExporterUI* _tmp49_ = NULL;
+ ExporterUI* _tmp50_ = NULL;
+ ExporterCompletionCallback _tmp51_ = NULL;
+ void* _tmp51__target = NULL;
+ GError * _inner_error_ = NULL;
+#line 452 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (videos), NULL);
+#line 454 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = videos;
+#line 454 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 454 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 454 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp2_ == 0) {
+#line 455 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = NULL;
+#line 455 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 4733 "VideoSupport.c"
+ }
+#line 458 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = export_in_place;
+#line 458 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp3_) {
+#line 4739 "VideoSupport.c"
+ ExporterUI* temp_exporter = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ Scaling _tmp5_ = {0};
+ ExportFormatParameters _tmp6_ = {0};
+ Exporter* _tmp7_ = NULL;
+ Exporter* _tmp8_ = NULL;
+ ExporterUI* _tmp9_ = NULL;
+ ExporterUI* _tmp10_ = NULL;
+ ExporterUI* _tmp11_ = NULL;
+ ExporterCompletionCallback _tmp12_ = NULL;
+ void* _tmp12__target = NULL;
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = videos;
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ scaling_for_original (&_tmp5_);
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ export_format_parameters_unmodified (&_tmp6_);
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = exporter_new_for_temp_file (_tmp4_, &_tmp5_, &_tmp6_);
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _tmp7_;
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = exporter_ui_new (_tmp8_);
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = _tmp9_;
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp8_);
+#line 459 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ temp_exporter = _tmp10_;
+#line 461 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = temp_exporter;
+#line 461 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = done;
+#line 461 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12__target = done_target;
+#line 461 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ exporter_ui_export (_tmp11_, _tmp12_, _tmp12__target);
+#line 462 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = temp_exporter;
+#line 462 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 4781 "VideoSupport.c"
+ }
+#line 466 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = videos;
+#line 466 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = gee_collection_get_size (_tmp13_);
+#line 466 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = _tmp14_;
+#line 466 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp15_ == 1) {
+#line 4791 "VideoSupport.c"
+ Video* video = NULL;
+ GFile* save_as = NULL;
+ Video* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ GFile* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+#line 467 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = NULL;
+#line 4802 "VideoSupport.c"
+ {
+ GeeIterator* _v_it = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ GeeIterator* _tmp17_ = NULL;
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = videos;
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _v_it = _tmp17_;
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ while (TRUE) {
+#line 4815 "VideoSupport.c"
+ GeeIterator* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ Video* v = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+ Video* _tmp22_ = NULL;
+ Video* _tmp23_ = NULL;
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = _v_it;
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = gee_iterator_next (_tmp18_);
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp19_) {
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 4831 "VideoSupport.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = _v_it;
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = gee_iterator_get (_tmp20_);
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ v = (Video*) _tmp21_;
+#line 469 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = v;
+#line 469 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = _g_object_ref0 (_tmp22_);
+#line 469 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 469 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = _tmp23_;
+#line 470 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (v);
+#line 470 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 4851 "VideoSupport.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_v_it);
+#line 4855 "VideoSupport.c"
+ }
+#line 473 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = video;
+#line 473 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = media_source_get_basename (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 473 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = _tmp25_;
+#line 473 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp27_ = export_ui_choose_file (_tmp26_);
+#line 473 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp28_ = _tmp27_;
+#line 473 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp26_);
+#line 473 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ save_as = _tmp28_;
+#line 474 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp29_ = save_as;
+#line 474 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp29_ == NULL) {
+#line 475 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = NULL;
+#line 475 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (save_as);
+#line 475 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 475 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 4883 "VideoSupport.c"
+ }
+ {
+ AppWindow* _tmp30_ = NULL;
+ AppWindow* _tmp31_ = NULL;
+ Video* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ AppWindow* _tmp34_ = NULL;
+ AppWindow* _tmp35_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp30_ = app_window_get_instance ();
+#line 478 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp31_ = _tmp30_;
+#line 478 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_PAGE_WINDOW, PageWindow));
+#line 478 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp31_);
+#line 479 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp32_ = video;
+#line 479 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp33_ = save_as;
+#line 479 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_export (_tmp32_, _tmp33_, &_inner_error_);
+#line 479 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4908 "VideoSupport.c"
+ goto __catch488_g_error;
+ }
+#line 480 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp34_ = app_window_get_instance ();
+#line 480 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp35_ = _tmp34_;
+#line 480 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_PAGE_WINDOW, PageWindow));
+#line 480 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp35_);
+#line 4919 "VideoSupport.c"
+ }
+ goto __finally488;
+ __catch488_g_error:
+ {
+ GError* err = NULL;
+ AppWindow* _tmp36_ = NULL;
+ AppWindow* _tmp37_ = NULL;
+ GFile* _tmp38_ = NULL;
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 482 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp36_ = app_window_get_instance ();
+#line 482 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp37_ = _tmp36_;
+#line 482 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, TYPE_PAGE_WINDOW, PageWindow));
+#line 482 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp37_);
+#line 483 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp38_ = save_as;
+#line 483 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ export_error_dialog (_tmp38_, FALSE);
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 4946 "VideoSupport.c"
+ }
+ __finally488:
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (save_as);
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 477 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 4961 "VideoSupport.c"
+ }
+#line 486 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = NULL;
+#line 486 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (save_as);
+#line 486 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 486 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 4971 "VideoSupport.c"
+ }
+#line 490 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp39_ = _ ("Export Videos");
+#line 490 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp40_ = export_ui_choose_dir (_tmp39_);
+#line 490 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ export_dir = _tmp40_;
+#line 491 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp41_ = export_dir;
+#line 491 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp41_ == NULL) {
+#line 492 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = NULL;
+#line 492 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (export_dir);
+#line 492 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 4989 "VideoSupport.c"
+ }
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp42_ = videos;
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp43_ = export_dir;
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ scaling_for_original (&_tmp44_);
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ export_format_parameters_unmodified (&_tmp45_);
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp46_ = exporter_new (_tmp42_, _tmp43_, &_tmp44_, &_tmp45_, FALSE);
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp47_ = _tmp46_;
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp48_ = exporter_ui_new (_tmp47_);
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp49_ = _tmp48_;
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp47_);
+#line 494 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ exporter = _tmp49_;
+#line 496 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp50_ = exporter;
+#line 496 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp51_ = done;
+#line 496 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp51__target = done_target;
+#line 496 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ exporter_ui_export (_tmp50_, _tmp51_, _tmp51__target);
+#line 498 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = exporter;
+#line 498 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (export_dir);
+#line 498 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5025 "VideoSupport.c"
+}
+
+
+static void video_real_commit_backlinks (DataSource* base, SourceCollection* sources, const gchar* backlinks) {
+ Video * self;
+ GError * _inner_error_ = NULL;
+#line 501 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 501 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((sources == NULL) || IS_SOURCE_COLLECTION (sources));
+#line 5036 "VideoSupport.c"
+ {
+ VideoTable* _tmp0_ = NULL;
+ VideoTable* _tmp1_ = NULL;
+ VideoID _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_table_get_instance ();
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (self, &_tmp2_);
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = backlinks;
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_update_backlinks (_tmp1_, &_tmp2_, _tmp3_, &_inner_error_);
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp1_);
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5058 "VideoSupport.c"
+ goto __catch489_database_error;
+ }
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 503 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 5067 "VideoSupport.c"
+ }
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 5075 "VideoSupport.c"
+ {
+ VideoRow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 505 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 505 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = backlinks;
+#line 505 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 505 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp5_->backlinks);
+#line 505 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_->backlinks = _tmp7_;
+#line 5090 "VideoSupport.c"
+ }
+ __finally490:
+ {
+ VideoRow* _tmp8_ = NULL;
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = self->priv->backing_row;
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5099 "VideoSupport.c"
+ }
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5105 "VideoSupport.c"
+ goto __catch489_database_error;
+ }
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 504 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 5114 "VideoSupport.c"
+ }
+ }
+ }
+ goto __finally489;
+ __catch489_database_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 502 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 502 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 508 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 508 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = _tmp9_;
+#line 508 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = err;
+#line 508 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = _tmp11_->message;
+#line 508 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_warning ("VideoSupport.vala:508: Unable to update link state for %s: %s", _tmp10_, _tmp12_);
+#line 508 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp10_);
+#line 502 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 5144 "VideoSupport.c"
+ }
+ __finally489:
+#line 502 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 502 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 502 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 502 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 5155 "VideoSupport.c"
+ }
+}
+
+
+static gboolean video_real_set_event_id (MediaSource* base, EventID* event_id) {
+ Video * self;
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 512 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 512 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 5168 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 5175 "VideoSupport.c"
+ {
+ gboolean committed = FALSE;
+ VideoTable* _tmp1_ = NULL;
+ VideoTable* _tmp2_ = NULL;
+ VideoRow* _tmp3_ = NULL;
+ VideoID _tmp4_ = {0};
+ EventID _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = video_table_get_instance ();
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->video_id;
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = *event_id;
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = video_table_set_event (_tmp2_, &_tmp4_, &_tmp5_);
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = _tmp6_;
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp2_);
+#line 514 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ committed = _tmp7_;
+#line 516 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = committed;
+#line 516 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp8_) {
+#line 5208 "VideoSupport.c"
+ VideoRow* _tmp9_ = NULL;
+ EventID _tmp10_ = {0};
+#line 517 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = self->priv->backing_row;
+#line 517 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = *event_id;
+#line 517 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_->event_id = _tmp10_;
+#line 5217 "VideoSupport.c"
+ }
+#line 519 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = committed;
+#line 5221 "VideoSupport.c"
+ {
+ VideoRow* _tmp11_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = self->priv->backing_row;
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5228 "VideoSupport.c"
+ }
+#line 519 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5232 "VideoSupport.c"
+ }
+ __finally491:
+ {
+ VideoRow* _tmp12_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = self->priv->backing_row;
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5241 "VideoSupport.c"
+ }
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 513 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return FALSE;
+#line 5249 "VideoSupport.c"
+ }
+}
+
+
+gboolean video_is_duplicate (GFile* file, const gchar* full_md5) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ VideoTable* _tmp3_ = NULL;
+ VideoTable* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 523 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), FALSE);
+#line 524 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = file;
+#line 524 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp1_ != NULL) {
+#line 524 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = TRUE;
+#line 5272 "VideoSupport.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 524 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = full_md5;
+#line 524 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 5279 "VideoSupport.c"
+ }
+#line 524 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_assert (_tmp0_, "file != null || full_md5 != null");
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_table_get_instance ();
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = file;
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = full_md5;
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video_table_has_duplicate (_tmp4_, _tmp5_, _tmp6_);
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _tmp7_;
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp4_);
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp8_;
+#line 526 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5301 "VideoSupport.c"
+}
+
+
+ImportResult video_import_create (VideoImportParams* params, Video** video) {
+ Video* _vala_video = NULL;
+ ImportResult result = 0;
+ VideoImportParams* _tmp8_ = NULL;
+ VideoRow* _tmp9_ = NULL;
+ Video* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_IMPORT_PARAMS (params), 0);
+#line 533 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_vala_video);
+#line 533 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_video = NULL;
+#line 5318 "VideoSupport.c"
+ {
+ VideoID _tmp0_ = {0};
+ VideoTable* _tmp1_ = NULL;
+ VideoTable* _tmp2_ = NULL;
+ VideoImportParams* _tmp3_ = NULL;
+ VideoRow* _tmp4_ = NULL;
+ VideoID _tmp5_ = {0};
+ VideoID _tmp6_ = {0};
+ gboolean _tmp7_ = FALSE;
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = video_table_get_instance ();
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = params;
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->row;
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_add (_tmp2_, _tmp4_, &_tmp5_, &_inner_error_);
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp5_;
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp2_);
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = _tmp6_;
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5348 "VideoSupport.c"
+ goto __catch492_database_error;
+ }
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 5357 "VideoSupport.c"
+ }
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video_id_is_invalid (&_tmp0_);
+#line 537 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp7_) {
+#line 538 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_DATABASE_ERROR;
+#line 538 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (video) {
+#line 538 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *video = _vala_video;
+#line 5369 "VideoSupport.c"
+ } else {
+#line 538 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_vala_video);
+#line 5373 "VideoSupport.c"
+ }
+#line 538 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5377 "VideoSupport.c"
+ }
+ }
+ goto __finally492;
+ __catch492_database_error:
+ {
+ GError* err = NULL;
+#line 536 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 536 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_DATABASE_ERROR;
+#line 540 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 540 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (video) {
+#line 540 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *video = _vala_video;
+#line 5396 "VideoSupport.c"
+ } else {
+#line 540 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_vala_video);
+#line 5400 "VideoSupport.c"
+ }
+#line 540 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5404 "VideoSupport.c"
+ }
+ __finally492:
+#line 536 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 536 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 536 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 536 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 5415 "VideoSupport.c"
+ }
+#line 544 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = params;
+#line 544 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_->row;
+#line 544 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = video_new (_tmp9_);
+#line 544 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_vala_video);
+#line 544 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_video = _tmp10_;
+#line 546 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 546 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (video) {
+#line 546 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *video = _vala_video;
+#line 5433 "VideoSupport.c"
+ } else {
+#line 546 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_vala_video);
+#line 5437 "VideoSupport.c"
+ }
+#line 546 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5441 "VideoSupport.c"
+}
+
+
+void video_import_failed (Video* video) {
+ GError * _inner_error_ = NULL;
+#line 549 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO (video));
+#line 5449 "VideoSupport.c"
+ {
+ VideoTable* _tmp0_ = NULL;
+ VideoTable* _tmp1_ = NULL;
+ Video* _tmp2_ = NULL;
+ VideoID _tmp3_ = {0};
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_table_get_instance ();
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = video;
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (_tmp2_, &_tmp3_);
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_remove (_tmp1_, &_tmp3_, &_inner_error_);
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp1_);
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5471 "VideoSupport.c"
+ goto __catch493_database_error;
+ }
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 551 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 5480 "VideoSupport.c"
+ }
+ }
+ goto __finally493;
+ __catch493_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 550 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 553 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = err;
+#line 553 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp4_);
+#line 550 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 5498 "VideoSupport.c"
+ }
+ __finally493:
+#line 550 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 550 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 550 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 550 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 5509 "VideoSupport.c"
+ }
+}
+
+
+static BackingFileState** video_real_get_backing_files_state (MediaSource* base, int* result_length1) {
+ Video * self;
+ BackingFileState** result = NULL;
+ BackingFileState** backing = NULL;
+ BackingFileState** _tmp0_ = NULL;
+ gint backing_length1 = 0;
+ gint _backing_size_ = 0;
+ BackingFileState** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 558 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = g_new0 (BackingFileState*, 1 + 1);
+#line 558 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ backing = _tmp0_;
+#line 558 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ backing_length1 = 1;
+#line 558 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _backing_size_ = backing_length1;
+#line 5534 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 5541 "VideoSupport.c"
+ {
+ VideoRow* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ VideoRow* _tmp4_ = NULL;
+ gint64 _tmp5_ = 0LL;
+ VideoRow* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+ VideoRow* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ BackingFileState* _tmp10_ = NULL;
+ BackingFileState* _tmp11_ = NULL;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->backing_row;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_->filepath;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_->filesize;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->priv->backing_row;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = _tmp6_->timestamp;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = self->priv->backing_row;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_->md5;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = backing_file_state_new (_tmp3_, _tmp5_, _tmp7_, _tmp9_);
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _backing_file_state_unref0 (backing[0]);
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ backing[0] = _tmp10_;
+#line 560 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = backing[0];
+#line 5577 "VideoSupport.c"
+ }
+ __finally494:
+ {
+ VideoRow* _tmp12_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = self->priv->backing_row;
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5586 "VideoSupport.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ backing = (_vala_array_free (backing, backing_length1, (GDestroyNotify) backing_file_state_unref), NULL);
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 559 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 5598 "VideoSupport.c"
+ }
+ }
+#line 564 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = backing;
+#line 564 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13__length1 = backing_length1;
+#line 564 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (result_length1) {
+#line 564 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result_length1 = _tmp13__length1;
+#line 5609 "VideoSupport.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp13_;
+#line 564 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5615 "VideoSupport.c"
+}
+
+
+static GdkPixbuf* video_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ Video * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 567 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = scale;
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = thumbnail_cache_fetch (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp1_, &_inner_error_);
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = _tmp2_;
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 5641 "VideoSupport.c"
+ }
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp0_;
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = NULL;
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp3_;
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 568 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5653 "VideoSupport.c"
+}
+
+
+static gchar* video_real_get_master_md5 (MediaSource* base) {
+ Video * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 571 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 5663 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 5670 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 573 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 573 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->md5;
+#line 573 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 573 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp3_;
+#line 5683 "VideoSupport.c"
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5690 "VideoSupport.c"
+ }
+#line 573 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5694 "VideoSupport.c"
+ }
+ __finally495:
+ {
+ VideoRow* _tmp5_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5703 "VideoSupport.c"
+ }
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 572 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 5711 "VideoSupport.c"
+ }
+}
+
+
+static GdkPixbuf* video_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error) {
+ Video * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 577 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 577 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 578 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = thumbnail_source_get_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), (gint) THUMBNAIL_CACHE_SIZE_BIG, &_inner_error_);
+#line 578 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ pixbuf = _tmp0_;
+#line 578 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 578 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 578 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 5737 "VideoSupport.c"
+ }
+#line 580 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = scaling_perform_on_pixbuf (scaling, pixbuf, GDK_INTERP_NEAREST, TRUE);
+#line 580 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp1_;
+#line 580 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (pixbuf);
+#line 580 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5747 "VideoSupport.c"
+}
+
+
+static GdkPixbuf* video_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ Video * self;
+ GdkPixbuf* result = NULL;
+ VideoReader* reader = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ VideoReader* _tmp2_ = NULL;
+ VideoReader* _tmp3_ = NULL;
+ GdkPixbuf* frame = NULL;
+ VideoReader* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 583 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 584 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 584 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 584 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = video_reader_new (_tmp1_);
+#line 584 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 584 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp1_);
+#line 584 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ reader = _tmp3_;
+#line 585 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = reader;
+#line 585 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = video_reader_read_preview_frame (_tmp4_);
+#line 585 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ frame = _tmp5_;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = frame;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp7_ != NULL) {
+#line 5788 "VideoSupport.c"
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = frame;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp6_);
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp9_;
+#line 5799 "VideoSupport.c"
+ } else {
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = resources_get_noninterpretable_badge_pixbuf ();
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = _tmp10_;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = gdk_pixbuf_copy (_tmp11_);
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp6_);
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp12_;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp11_);
+#line 5816 "VideoSupport.c"
+ }
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp6_;
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (frame);
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (reader);
+#line 587 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5826 "VideoSupport.c"
+}
+
+
+static gchar* video_real_get_typename (DataSource* base) {
+ Video * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 590 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 591 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = g_strdup (VIDEO_TYPENAME);
+#line 591 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 591 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5842 "VideoSupport.c"
+}
+
+
+static gint64 video_real_get_instance_id (DataSource* base) {
+ Video * self;
+ gint64 result = 0LL;
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+#line 594 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 595 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (self, &_tmp0_);
+#line 595 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_.id;
+#line 595 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp1_;
+#line 595 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5861 "VideoSupport.c"
+}
+
+
+static void video_real_get_import_id (MediaSource* base, ImportID* result) {
+ Video * self;
+ GError * _inner_error_ = NULL;
+#line 598 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 5870 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 5877 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ ImportID _tmp2_ = {0};
+#line 600 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 600 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->import_id;
+#line 600 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result = _tmp2_;
+#line 5887 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5894 "VideoSupport.c"
+ }
+#line 600 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 5898 "VideoSupport.c"
+ }
+ __finally496:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5907 "VideoSupport.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 599 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 5915 "VideoSupport.c"
+ }
+}
+
+
+static PhotoFileFormat video_real_get_preferred_thumbnail_format (ThumbnailSource* base) {
+ Video * self;
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _tmp0_ = 0;
+#line 604 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 605 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = photo_file_format_get_system_default_format ();
+#line 605 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 605 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5932 "VideoSupport.c"
+}
+
+
+static gchar* video_real_get_title (MediaSource* base) {
+ Video * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 608 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 5942 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 5949 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 610 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 610 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->title;
+#line 610 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 610 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp3_;
+#line 5962 "VideoSupport.c"
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5969 "VideoSupport.c"
+ }
+#line 610 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 5973 "VideoSupport.c"
+ }
+ __finally497:
+ {
+ VideoRow* _tmp5_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 5982 "VideoSupport.c"
+ }
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 609 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 5990 "VideoSupport.c"
+ }
+}
+
+
+static void video_real_set_title (MediaSource* base, const gchar* title) {
+ Video * self;
+ gchar* new_title = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ Alteration* _tmp20_ = NULL;
+ Alteration* _tmp21_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 614 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 615 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = title;
+#line 615 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_prep_title (_tmp0_);
+#line 615 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ new_title = _tmp1_;
+#line 6011 "VideoSupport.c"
+ {
+ VideoRow* _tmp2_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->backing_row;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6018 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ VideoRow* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 618 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->title;
+#line 618 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = new_title;
+#line 618 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_strcmp0 (_tmp4_, _tmp5_) == 0) {
+#line 6034 "VideoSupport.c"
+ {
+ VideoRow* _tmp6_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->priv->backing_row;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6041 "VideoSupport.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_title);
+#line 619 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6047 "VideoSupport.c"
+ }
+ {
+ VideoTable* _tmp7_ = NULL;
+ VideoTable* _tmp8_ = NULL;
+ VideoRow* _tmp9_ = NULL;
+ VideoID _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video_table_get_instance ();
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _tmp7_;
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = self->priv->backing_row;
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = _tmp9_->video_id;
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = new_title;
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_title (_tmp8_, &_tmp10_, _tmp11_, &_inner_error_);
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp8_);
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6073 "VideoSupport.c"
+ goto __catch499_database_error;
+ }
+ {
+ VideoRow* _tmp12_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = self->priv->backing_row;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6082 "VideoSupport.c"
+ }
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_title);
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 622 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6092 "VideoSupport.c"
+ }
+ }
+ goto __finally499;
+ __catch499_database_error:
+ {
+ GError* e = NULL;
+ GError* _tmp13_ = NULL;
+#line 621 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 621 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 624 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = e;
+#line 624 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp13_);
+#line 625 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 6110 "VideoSupport.c"
+ {
+ VideoRow* _tmp14_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = self->priv->backing_row;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6117 "VideoSupport.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_title);
+#line 625 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6123 "VideoSupport.c"
+ }
+ __finally499:
+#line 621 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6128 "VideoSupport.c"
+ {
+ VideoRow* _tmp15_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = self->priv->backing_row;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6135 "VideoSupport.c"
+ }
+#line 621 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_title);
+#line 621 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 621 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 621 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6145 "VideoSupport.c"
+ }
+#line 629 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = self->priv->backing_row;
+#line 629 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = new_title;
+#line 629 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 629 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp16_->title);
+#line 629 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_->title = _tmp18_;
+#line 6157 "VideoSupport.c"
+ }
+ __finally498:
+ {
+ VideoRow* _tmp19_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = self->priv->backing_row;
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6166 "VideoSupport.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_title);
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 617 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6178 "VideoSupport.c"
+ }
+ }
+#line 632 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = alteration_new ("metadata", "name");
+#line 632 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = _tmp20_;
+#line 632 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp21_);
+#line 632 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp21_);
+#line 614 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_title);
+#line 6191 "VideoSupport.c"
+}
+
+
+static gchar* video_real_get_comment (MediaSource* base) {
+ Video * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 635 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 6201 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6208 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 637 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 637 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->comment;
+#line 637 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 637 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp3_;
+#line 6221 "VideoSupport.c"
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6228 "VideoSupport.c"
+ }
+#line 637 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6232 "VideoSupport.c"
+ }
+ __finally500:
+ {
+ VideoRow* _tmp5_ = NULL;
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6241 "VideoSupport.c"
+ }
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 636 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 6249 "VideoSupport.c"
+ }
+}
+
+
+static gboolean video_real_set_comment (MediaSource* base, const gchar* comment) {
+ Video * self;
+ gboolean result = FALSE;
+ gchar* new_comment = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ Alteration* _tmp20_ = NULL;
+ Alteration* _tmp21_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 641 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 642 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = comment;
+#line 642 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_prep_title (_tmp0_);
+#line 642 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ new_comment = _tmp1_;
+#line 6271 "VideoSupport.c"
+ {
+ VideoRow* _tmp2_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->backing_row;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6278 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ VideoRow* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 645 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 645 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->comment;
+#line 645 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = new_comment;
+#line 645 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_strcmp0 (_tmp4_, _tmp5_) == 0) {
+#line 646 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = TRUE;
+#line 6296 "VideoSupport.c"
+ {
+ VideoRow* _tmp6_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->priv->backing_row;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6303 "VideoSupport.c"
+ }
+#line 646 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_comment);
+#line 646 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6309 "VideoSupport.c"
+ }
+ {
+ VideoTable* _tmp7_ = NULL;
+ VideoTable* _tmp8_ = NULL;
+ VideoRow* _tmp9_ = NULL;
+ VideoID _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video_table_get_instance ();
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _tmp7_;
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = self->priv->backing_row;
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = _tmp9_->video_id;
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = new_comment;
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_comment (_tmp8_, &_tmp10_, _tmp11_, &_inner_error_);
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp8_);
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6335 "VideoSupport.c"
+ goto __catch502_database_error;
+ }
+ {
+ VideoRow* _tmp12_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = self->priv->backing_row;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6344 "VideoSupport.c"
+ }
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_comment);
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 649 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return FALSE;
+#line 6354 "VideoSupport.c"
+ }
+ }
+ goto __finally502;
+ __catch502_database_error:
+ {
+ GError* e = NULL;
+ GError* _tmp13_ = NULL;
+#line 648 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 648 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 651 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = e;
+#line 651 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp13_);
+#line 652 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = FALSE;
+#line 652 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 6374 "VideoSupport.c"
+ {
+ VideoRow* _tmp14_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = self->priv->backing_row;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6381 "VideoSupport.c"
+ }
+#line 652 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_comment);
+#line 652 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6387 "VideoSupport.c"
+ }
+ __finally502:
+#line 648 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6392 "VideoSupport.c"
+ {
+ VideoRow* _tmp15_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = self->priv->backing_row;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6399 "VideoSupport.c"
+ }
+#line 648 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_comment);
+#line 648 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 648 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 648 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return FALSE;
+#line 6409 "VideoSupport.c"
+ }
+#line 656 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = self->priv->backing_row;
+#line 656 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = new_comment;
+#line 656 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 656 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp16_->comment);
+#line 656 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_->comment = _tmp18_;
+#line 6421 "VideoSupport.c"
+ }
+ __finally501:
+ {
+ VideoRow* _tmp19_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = self->priv->backing_row;
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6430 "VideoSupport.c"
+ }
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_comment);
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 644 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return FALSE;
+#line 6442 "VideoSupport.c"
+ }
+ }
+#line 659 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = alteration_new ("metadata", "comment");
+#line 659 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = _tmp20_;
+#line 659 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp21_);
+#line 659 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp21_);
+#line 661 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = TRUE;
+#line 661 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_comment);
+#line 661 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6459 "VideoSupport.c"
+}
+
+
+static Rating video_real_get_rating (MediaSource* base) {
+ Video * self;
+ Rating result = 0;
+ GError * _inner_error_ = NULL;
+#line 665 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 6469 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6476 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+#line 667 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 667 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->rating;
+#line 667 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp2_;
+#line 6486 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6493 "VideoSupport.c"
+ }
+#line 667 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6497 "VideoSupport.c"
+ }
+ __finally503:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6506 "VideoSupport.c"
+ }
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 666 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 6514 "VideoSupport.c"
+ }
+}
+
+
+static void video_real_set_rating (MediaSource* base, Rating rating) {
+ Video * self;
+ Alteration* _tmp19_ = NULL;
+ Alteration* _tmp20_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 671 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 6526 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6533 "VideoSupport.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ Rating _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ VideoRow* _tmp16_ = NULL;
+ Rating _tmp17_ = 0;
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = rating;
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = rating_is_valid (_tmp2_);
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp3_) {
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = TRUE;
+#line 6548 "VideoSupport.c"
+ } else {
+ Rating _tmp4_ = 0;
+ VideoRow* _tmp5_ = NULL;
+ Rating _tmp6_ = 0;
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = rating;
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp5_->rating;
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp4_ == _tmp6_;
+#line 6561 "VideoSupport.c"
+ }
+#line 673 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp1_) {
+#line 6565 "VideoSupport.c"
+ {
+ VideoRow* _tmp7_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = self->priv->backing_row;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6572 "VideoSupport.c"
+ }
+#line 674 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6576 "VideoSupport.c"
+ }
+ {
+ VideoTable* _tmp8_ = NULL;
+ VideoTable* _tmp9_ = NULL;
+ VideoID _tmp10_ = {0};
+ Rating _tmp11_ = 0;
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = video_table_get_instance ();
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_;
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (self, &_tmp10_);
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = rating;
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_rating (_tmp9_, &_tmp10_, _tmp11_, &_inner_error_);
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp9_);
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6599 "VideoSupport.c"
+ goto __catch505_database_error;
+ }
+ {
+ VideoRow* _tmp12_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = self->priv->backing_row;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6608 "VideoSupport.c"
+ }
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 677 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6616 "VideoSupport.c"
+ }
+ }
+ goto __finally505;
+ __catch505_database_error:
+ {
+ GError* e = NULL;
+ GError* _tmp13_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 676 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 679 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = e;
+#line 679 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp13_);
+#line 680 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 6634 "VideoSupport.c"
+ {
+ VideoRow* _tmp14_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = self->priv->backing_row;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6641 "VideoSupport.c"
+ }
+#line 680 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6645 "VideoSupport.c"
+ }
+ __finally505:
+#line 676 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6650 "VideoSupport.c"
+ {
+ VideoRow* _tmp15_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = self->priv->backing_row;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6657 "VideoSupport.c"
+ }
+#line 676 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 676 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 676 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6665 "VideoSupport.c"
+ }
+#line 684 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = self->priv->backing_row;
+#line 684 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = rating;
+#line 684 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_->rating = _tmp17_;
+#line 6673 "VideoSupport.c"
+ }
+ __finally504:
+ {
+ VideoRow* _tmp18_ = NULL;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = self->priv->backing_row;
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6682 "VideoSupport.c"
+ }
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 672 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6692 "VideoSupport.c"
+ }
+ }
+#line 687 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = alteration_new ("metadata", "rating");
+#line 687 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = _tmp19_;
+#line 687 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp20_);
+#line 687 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp20_);
+#line 6703 "VideoSupport.c"
+}
+
+
+static void video_real_increase_rating (MediaSource* base) {
+ Video * self;
+ GError * _inner_error_ = NULL;
+#line 690 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 6712 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6719 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+ Rating _tmp3_ = 0;
+#line 692 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 692 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->rating;
+#line 692 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = rating_increase (_tmp2_);
+#line 692 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp3_);
+#line 6732 "VideoSupport.c"
+ }
+ __finally506:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6741 "VideoSupport.c"
+ }
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 691 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6751 "VideoSupport.c"
+ }
+ }
+}
+
+
+static void video_real_decrease_rating (MediaSource* base) {
+ Video * self;
+ GError * _inner_error_ = NULL;
+#line 696 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 6762 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6769 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ Rating _tmp2_ = 0;
+ Rating _tmp3_ = 0;
+#line 698 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 698 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->rating;
+#line 698 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = rating_decrease (_tmp2_);
+#line 698 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp3_);
+#line 6782 "VideoSupport.c"
+ }
+ __finally507:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6791 "VideoSupport.c"
+ }
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 697 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6801 "VideoSupport.c"
+ }
+ }
+}
+
+
+static gboolean video_real_is_trashed (MediaSource* base) {
+ Video * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 702 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 703 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_is_flag_set (self, VIDEO_FLAG_TRASH);
+#line 703 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 703 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6819 "VideoSupport.c"
+}
+
+
+static gboolean video_real_is_offline (Monitorable* base) {
+ Video * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 706 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 707 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_is_flag_set (self, VIDEO_FLAG_OFFLINE);
+#line 707 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 707 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6835 "VideoSupport.c"
+}
+
+
+static void video_real_mark_offline (Monitorable* base) {
+ Video * self;
+#line 710 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 711 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_add_flags (self, VIDEO_FLAG_OFFLINE, NULL);
+#line 6845 "VideoSupport.c"
+}
+
+
+static void video_real_mark_online (Monitorable* base) {
+ Video * self;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 714 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 715 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_remove_flags (self, VIDEO_FLAG_OFFLINE, NULL);
+#line 717 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = video_get_is_interpretable (self);
+#line 717 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp1_) {
+#line 6861 "VideoSupport.c"
+ gboolean _tmp2_ = FALSE;
+#line 717 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = video_has_interpreter_state_changed ();
+#line 717 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = _tmp2_;
+#line 6867 "VideoSupport.c"
+ } else {
+#line 717 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = FALSE;
+#line 6871 "VideoSupport.c"
+ }
+#line 717 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_) {
+#line 6875 "VideoSupport.c"
+ VideoInterpretableResults* _tmp3_ = NULL;
+ VideoInterpretableResults* _tmp4_ = NULL;
+#line 718 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_check_is_interpretable (self);
+#line 718 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 718 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpretable_results_foreground_finish (_tmp4_);
+#line 718 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_interpretable_results_unref0 (_tmp4_);
+#line 6886 "VideoSupport.c"
+ }
+}
+
+
+static void video_real_trash (MediaSource* base) {
+ Video * self;
+#line 721 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 722 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_add_flags (self, VIDEO_FLAG_TRASH, NULL);
+#line 6897 "VideoSupport.c"
+}
+
+
+static void video_real_untrash (MediaSource* base) {
+ Video * self;
+#line 725 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 726 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_remove_flags (self, VIDEO_FLAG_TRASH, NULL);
+#line 6907 "VideoSupport.c"
+}
+
+
+static gboolean video_real_is_flagged (Flaggable* base) {
+ Video * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 729 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 730 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_is_flag_set (self, VIDEO_FLAG_FLAGGED);
+#line 730 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 730 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 6923 "VideoSupport.c"
+}
+
+
+static void video_real_mark_flagged (Flaggable* base) {
+ Video * self;
+ Alteration* _tmp0_ = NULL;
+ Alteration* _tmp1_ = NULL;
+#line 733 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 734 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = alteration_new ("metadata", "flagged");
+#line 734 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 734 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_add_flags (self, VIDEO_FLAG_FLAGGED, _tmp1_);
+#line 734 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp1_);
+#line 6941 "VideoSupport.c"
+}
+
+
+static void video_real_mark_unflagged (Flaggable* base) {
+ Video * self;
+ Alteration* _tmp0_ = NULL;
+ Alteration* _tmp1_ = NULL;
+#line 737 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 738 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = alteration_new ("metadata", "flagged");
+#line 738 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 738 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_remove_flags (self, VIDEO_FLAG_FLAGGED, _tmp1_);
+#line 738 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp1_);
+#line 6959 "VideoSupport.c"
+}
+
+
+static void video_real_get_event_id (MediaSource* base, EventID* result) {
+ Video * self;
+ GError * _inner_error_ = NULL;
+#line 741 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 6968 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 6975 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ EventID _tmp2_ = {0};
+#line 743 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 743 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->event_id;
+#line 743 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result = _tmp2_;
+#line 6985 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 6992 "VideoSupport.c"
+ }
+#line 743 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 6996 "VideoSupport.c"
+ }
+ __finally508:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7005 "VideoSupport.c"
+ }
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 742 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7013 "VideoSupport.c"
+ }
+}
+
+
+static gchar* video_real_to_string (DataObject* base) {
+ Video * self;
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 747 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 7024 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7031 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ VideoID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ VideoRow* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->video_id;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_.id;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp3_);
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->priv->backing_row;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = _tmp6_->filepath;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = g_strdup_printf ("[%s] %s", _tmp5_, _tmp7_);
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_;
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp5_);
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp9_;
+#line 7064 "VideoSupport.c"
+ {
+ VideoRow* _tmp10_ = NULL;
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = self->priv->backing_row;
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7071 "VideoSupport.c"
+ }
+#line 749 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7075 "VideoSupport.c"
+ }
+ __finally509:
+ {
+ VideoRow* _tmp11_ = NULL;
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = self->priv->backing_row;
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7084 "VideoSupport.c"
+ }
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 748 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 7092 "VideoSupport.c"
+ }
+}
+
+
+void video_get_video_id (Video* self, VideoID* result) {
+ GError * _inner_error_ = NULL;
+#line 753 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO (self));
+#line 7101 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7108 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ VideoID _tmp2_ = {0};
+#line 755 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 755 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->video_id;
+#line 755 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result = _tmp2_;
+#line 7118 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7125 "VideoSupport.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7129 "VideoSupport.c"
+ }
+ __finally510:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7138 "VideoSupport.c"
+ }
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 754 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7146 "VideoSupport.c"
+ }
+}
+
+
+static time_t video_real_get_exposure_time (Dateable* base) {
+ Video * self;
+ time_t result = 0;
+ GError * _inner_error_ = NULL;
+#line 759 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 7157 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7164 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+#line 761 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 761 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->exposure_time;
+#line 761 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp2_;
+#line 7174 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7181 "VideoSupport.c"
+ }
+#line 761 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7185 "VideoSupport.c"
+ }
+ __finally511:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7194 "VideoSupport.c"
+ }
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 760 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 7202 "VideoSupport.c"
+ }
+}
+
+
+static void video_real_set_exposure_time (Dateable* base, time_t time) {
+ Video * self;
+ Alteration* _tmp12_ = NULL;
+ Alteration* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 765 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 7214 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7221 "VideoSupport.c"
+ {
+ VideoRow* _tmp9_ = NULL;
+ time_t _tmp10_ = 0;
+ {
+ VideoTable* _tmp1_ = NULL;
+ VideoTable* _tmp2_ = NULL;
+ VideoRow* _tmp3_ = NULL;
+ VideoID _tmp4_ = {0};
+ time_t _tmp5_ = 0;
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = video_table_get_instance ();
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->video_id;
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = time;
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_exposure_time (_tmp2_, &_tmp4_, _tmp5_, &_inner_error_);
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp2_);
+#line 768 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7247 "VideoSupport.c"
+ goto __catch513_g_error;
+ }
+ }
+ goto __finally513;
+ __catch513_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 767 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 767 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = e;
+#line 770 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = _tmp6_->message;
+#line 770 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:770: Warning - %s", _tmp7_);
+#line 767 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 7269 "VideoSupport.c"
+ }
+ __finally513:
+#line 767 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7274 "VideoSupport.c"
+ {
+ VideoRow* _tmp8_ = NULL;
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = self->priv->backing_row;
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7281 "VideoSupport.c"
+ }
+#line 767 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 767 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 767 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7289 "VideoSupport.c"
+ }
+#line 772 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = self->priv->backing_row;
+#line 772 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = time;
+#line 772 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_->exposure_time = _tmp10_;
+#line 7297 "VideoSupport.c"
+ }
+ __finally512:
+ {
+ VideoRow* _tmp11_ = NULL;
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = self->priv->backing_row;
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7306 "VideoSupport.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 766 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7316 "VideoSupport.c"
+ }
+ }
+#line 775 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = alteration_new ("metadata", "exposure-time");
+#line 775 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = _tmp12_;
+#line 775 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp13_);
+#line 775 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp13_);
+#line 7327 "VideoSupport.c"
+}
+
+
+void video_get_frame_dimensions (Video* self, Dimensions* result) {
+ GError * _inner_error_ = NULL;
+#line 778 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO (self));
+#line 7335 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7342 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ VideoRow* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+#line 780 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 780 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->width;
+#line 780 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 780 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->height;
+#line 780 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dimensions_init (&_tmp5_, _tmp2_, _tmp4_);
+#line 780 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result = _tmp5_;
+#line 7361 "VideoSupport.c"
+ {
+ VideoRow* _tmp6_ = NULL;
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->priv->backing_row;
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7368 "VideoSupport.c"
+ }
+#line 780 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7372 "VideoSupport.c"
+ }
+ __finally514:
+ {
+ VideoRow* _tmp7_ = NULL;
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = self->priv->backing_row;
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7381 "VideoSupport.c"
+ }
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 779 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7389 "VideoSupport.c"
+ }
+}
+
+
+static void video_real_get_dimensions (MediaSource* base, PhotoException disallowed_steps, Dimensions* result) {
+ Video * self;
+ Dimensions _tmp0_ = {0};
+#line 784 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 785 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_frame_dimensions (self, &_tmp0_);
+#line 785 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result = _tmp0_;
+#line 785 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7405 "VideoSupport.c"
+}
+
+
+static guint64 video_real_get_filesize (MediaSource* base) {
+ Video * self;
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+#line 788 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 789 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = media_source_get_master_filesize (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 789 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 789 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7421 "VideoSupport.c"
+}
+
+
+static guint64 video_real_get_master_filesize (MediaSource* base) {
+ Video * self;
+ guint64 result = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 792 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 7431 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7438 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+#line 794 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 794 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->filesize;
+#line 794 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = (guint64) _tmp2_;
+#line 7448 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7455 "VideoSupport.c"
+ }
+#line 794 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7459 "VideoSupport.c"
+ }
+ __finally515:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7468 "VideoSupport.c"
+ }
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 793 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0ULL;
+#line 7476 "VideoSupport.c"
+ }
+}
+
+
+static time_t video_real_get_timestamp (MediaSource* base) {
+ Video * self;
+ time_t result = 0;
+ GError * _inner_error_ = NULL;
+#line 798 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 7487 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7494 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+#line 800 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 800 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->timestamp;
+#line 800 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp2_;
+#line 7504 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7511 "VideoSupport.c"
+ }
+#line 800 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7515 "VideoSupport.c"
+ }
+ __finally516:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7524 "VideoSupport.c"
+ }
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 799 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0;
+#line 7532 "VideoSupport.c"
+ }
+}
+
+
+static void video_real_set_master_timestamp (Monitorable* base, GFileInfo* info) {
+ Video * self;
+ GTimeVal time_val = {0};
+ GFileInfo* _tmp0_ = NULL;
+ GTimeVal _tmp1_ = {0};
+ Alteration* _tmp19_ = NULL;
+ Alteration* _tmp20_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 804 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 804 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 805 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = info;
+#line 805 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_file_info_get_modification_time (_tmp0_, &_tmp1_);
+#line 805 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ time_val = _tmp1_;
+#line 7555 "VideoSupport.c"
+ {
+ {
+ VideoRow* _tmp2_ = NULL;
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->backing_row;
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7563 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+ time_t _tmp4_ = 0;
+ GTimeVal _tmp5_ = {0};
+ glong _tmp6_ = 0L;
+ VideoTable* _tmp8_ = NULL;
+ VideoTable* _tmp9_ = NULL;
+ VideoRow* _tmp10_ = NULL;
+ VideoID _tmp11_ = {0};
+ GTimeVal _tmp12_ = {0};
+ glong _tmp13_ = 0L;
+ VideoRow* _tmp14_ = NULL;
+ GTimeVal _tmp15_ = {0};
+ glong _tmp16_ = 0L;
+#line 809 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 809 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->timestamp;
+#line 809 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = time_val;
+#line 809 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp5_.tv_sec;
+#line 809 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp4_ == ((time_t) _tmp6_)) {
+#line 7588 "VideoSupport.c"
+ {
+ VideoRow* _tmp7_ = NULL;
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = self->priv->backing_row;
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7595 "VideoSupport.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7599 "VideoSupport.c"
+ }
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = video_table_get_instance ();
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_;
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = self->priv->backing_row;
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = _tmp10_->video_id;
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = time_val;
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = _tmp12_.tv_sec;
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_timestamp (_tmp9_, &_tmp11_, (time_t) _tmp13_, &_inner_error_);
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp9_);
+#line 812 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7619 "VideoSupport.c"
+ goto __finally518;
+ }
+#line 813 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = self->priv->backing_row;
+#line 813 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = time_val;
+#line 813 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = _tmp15_.tv_sec;
+#line 813 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_->timestamp = (time_t) _tmp16_;
+#line 7630 "VideoSupport.c"
+ }
+ __finally518:
+ {
+ VideoRow* _tmp17_ = NULL;
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = self->priv->backing_row;
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7639 "VideoSupport.c"
+ }
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 7645 "VideoSupport.c"
+ goto __catch517_database_error;
+ }
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 808 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7654 "VideoSupport.c"
+ }
+ }
+ }
+ goto __finally517;
+ __catch517_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp18_ = NULL;
+#line 807 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 807 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 816 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = err;
+#line 816 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp18_);
+#line 818 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 818 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7675 "VideoSupport.c"
+ }
+ __finally517:
+#line 807 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 807 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 807 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 807 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7686 "VideoSupport.c"
+ }
+#line 821 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = alteration_new ("metadata", "master-timestamp");
+#line 821 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = _tmp19_;
+#line 821 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp20_);
+#line 821 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp20_);
+#line 7696 "VideoSupport.c"
+}
+
+
+gchar* video_get_filename (Video* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 824 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), NULL);
+#line 7705 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7712 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 826 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 826 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->filepath;
+#line 826 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 826 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp3_;
+#line 7725 "VideoSupport.c"
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7732 "VideoSupport.c"
+ }
+#line 826 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7736 "VideoSupport.c"
+ }
+ __finally519:
+ {
+ VideoRow* _tmp5_ = NULL;
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7745 "VideoSupport.c"
+ }
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 825 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 7753 "VideoSupport.c"
+ }
+}
+
+
+static GFile* video_real_get_file (MediaSource* base) {
+ Video * self;
+ GFile* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 830 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 831 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_get_filename (self);
+#line 831 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 831 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+#line 831 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 831 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp1_);
+#line 831 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp3_;
+#line 831 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7781 "VideoSupport.c"
+}
+
+
+static GFile* video_real_get_master_file (MediaSource* base) {
+ Video * self;
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 835 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 835 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 835 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7797 "VideoSupport.c"
+}
+
+
+void video_export (Video* self, GFile* dest_file, GError** error) {
+ GFile* source_file = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 838 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO (self));
+#line 838 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_IS_FILE (dest_file));
+#line 839 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_get_filename (self);
+#line 839 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 839 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+#line 839 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 839 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp1_);
+#line 839 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ source_file = _tmp3_;
+#line 840 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = dest_file;
+#line 840 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_file_copy (source_file, _tmp4_, G_FILE_COPY_OVERWRITE | G_FILE_COPY_TARGET_DEFAULT_PERMS, NULL, NULL, NULL, &_inner_error_);
+#line 840 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 840 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 840 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (source_file);
+#line 840 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7837 "VideoSupport.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (source_file);
+#line 7841 "VideoSupport.c"
+}
+
+
+gdouble video_get_clip_duration (Video* self) {
+ gdouble result = 0.0;
+ GError * _inner_error_ = NULL;
+#line 844 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), 0.0);
+#line 7850 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7857 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+#line 846 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 846 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->clip_duration;
+#line 846 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp2_;
+#line 7867 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7874 "VideoSupport.c"
+ }
+#line 846 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7878 "VideoSupport.c"
+ }
+ __finally520:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7887 "VideoSupport.c"
+ }
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 845 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0.0;
+#line 7895 "VideoSupport.c"
+ }
+}
+
+
+gboolean video_get_is_interpretable (Video* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 850 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), FALSE);
+#line 7905 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7912 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 852 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 852 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->is_interpretable;
+#line 852 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp2_;
+#line 7922 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7929 "VideoSupport.c"
+ }
+#line 852 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 7933 "VideoSupport.c"
+ }
+ __finally521:
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7942 "VideoSupport.c"
+ }
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 851 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return FALSE;
+#line 7950 "VideoSupport.c"
+ }
+}
+
+
+static void video_set_is_interpretable (Video* self, gboolean is_interpretable) {
+ GError * _inner_error_ = NULL;
+#line 856 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO (self));
+#line 7959 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 7966 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ VideoRow* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 858 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 858 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->is_interpretable;
+#line 858 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = is_interpretable;
+#line 858 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp2_ == _tmp3_) {
+#line 7981 "VideoSupport.c"
+ {
+ VideoRow* _tmp4_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->priv->backing_row;
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 7988 "VideoSupport.c"
+ }
+#line 859 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 7992 "VideoSupport.c"
+ }
+#line 861 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 861 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = is_interpretable;
+#line 861 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_->is_interpretable = _tmp6_;
+#line 8000 "VideoSupport.c"
+ }
+ __finally522:
+ {
+ VideoRow* _tmp7_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = self->priv->backing_row;
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8009 "VideoSupport.c"
+ }
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 857 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 8019 "VideoSupport.c"
+ }
+ }
+ {
+ VideoTable* _tmp8_ = NULL;
+ VideoTable* _tmp9_ = NULL;
+ VideoID _tmp10_ = {0};
+ gboolean _tmp11_ = FALSE;
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = video_table_get_instance ();
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_;
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (self, &_tmp10_);
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = is_interpretable;
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_update_is_interpretable (_tmp9_, &_tmp10_, _tmp11_, &_inner_error_);
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp9_);
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 8043 "VideoSupport.c"
+ goto __catch523_database_error;
+ }
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 865 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 8052 "VideoSupport.c"
+ }
+ }
+ goto __finally523;
+ __catch523_database_error:
+ {
+ GError* e = NULL;
+ GError* _tmp12_ = NULL;
+#line 864 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 864 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 867 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = e;
+#line 867 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp12_);
+#line 864 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 8070 "VideoSupport.c"
+ }
+ __finally523:
+#line 864 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 864 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 864 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 864 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 8081 "VideoSupport.c"
+ }
+}
+
+
+VideoInterpretableResults* video_check_is_interpretable (Video* self) {
+ VideoInterpretableResults* result = NULL;
+ VideoInterpretableResults* results = NULL;
+ VideoInterpretableResults* _tmp0_ = NULL;
+ gdouble clip_duration = 0.0;
+ GdkPixbuf* preview_frame = NULL;
+ VideoReader* backing_file_reader = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ VideoReader* _tmp3_ = NULL;
+ VideoReader* _tmp4_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ VideoInterpretableResults* _tmp24_ = NULL;
+ VideoInterpretableResults* _tmp25_ = NULL;
+ VideoInterpretableResults* _tmp26_ = NULL;
+ GdkPixbuf* _tmp27_ = NULL;
+ GdkPixbuf* _tmp28_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 874 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), NULL);
+#line 875 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_interpretable_results_new (self);
+#line 875 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ results = _tmp0_;
+#line 877 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ clip_duration = -1.0;
+#line 878 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ preview_frame = NULL;
+#line 880 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 880 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 880 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_reader_new (_tmp2_);
+#line 880 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 880 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 880 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ backing_file_reader = _tmp4_;
+#line 8130 "VideoSupport.c"
+ {
+ gdouble _tmp5_ = 0.0;
+ VideoReader* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ VideoReader* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = backing_file_reader;
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video_reader_read_clip_duration (_tmp6_, &_inner_error_);
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp7_;
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == VIDEO_ERROR) {
+#line 8147 "VideoSupport.c"
+ goto __catch524_video_error;
+ }
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (backing_file_reader);
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_interpretable_results_unref0 (results);
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 8162 "VideoSupport.c"
+ }
+#line 882 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ clip_duration = _tmp5_;
+#line 883 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = backing_file_reader;
+#line 883 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = video_reader_read_preview_frame (_tmp8_);
+#line 883 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 883 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ preview_frame = _tmp9_;
+#line 8174 "VideoSupport.c"
+ }
+ goto __finally524;
+ __catch524_video_error:
+ {
+ GError* e = NULL;
+ VideoInterpretableResults* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ VideoInterpretableResults* _tmp12_ = NULL;
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 887 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = results;
+#line 887 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = video_get_is_interpretable (self);
+#line 887 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_->update_interpretable = _tmp11_;
+#line 888 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = results;
+#line 888 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_->is_interpretable = FALSE;
+#line 890 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = results;
+#line 890 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 890 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (backing_file_reader);
+#line 890 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 890 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8207 "VideoSupport.c"
+ }
+ __finally524:
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (backing_file_reader);
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_interpretable_results_unref0 (results);
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 881 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 8224 "VideoSupport.c"
+ }
+#line 894 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = video_get_is_interpretable (self);
+#line 894 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp13_) {
+#line 8230 "VideoSupport.c"
+ VideoInterpretableResults* _tmp14_ = NULL;
+ VideoInterpretableResults* _tmp15_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = results;
+#line 895 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_->update_interpretable = FALSE;
+#line 896 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = results;
+#line 896 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_->is_interpretable = TRUE;
+#line 898 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = results;
+#line 898 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (backing_file_reader);
+#line 898 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 898 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8249 "VideoSupport.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 901 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = _tmp16_;
+#line 901 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = g_file_get_basename (_tmp17_);
+#line 901 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = _tmp18_;
+#line 901 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_debug ("VideoSupport.vala:901: video %s has become interpretable", _tmp19_);
+#line 901 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp19_);
+#line 901 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp17_);
+#line 8265 "VideoSupport.c"
+ {
+ VideoRow* _tmp20_ = NULL;
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = self->priv->backing_row;
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 8272 "VideoSupport.c"
+ {
+ VideoRow* _tmp21_ = NULL;
+ gdouble _tmp22_ = 0.0;
+#line 905 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = self->priv->backing_row;
+#line 905 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = clip_duration;
+#line 905 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_->clip_duration = _tmp22_;
+#line 8282 "VideoSupport.c"
+ }
+ __finally525:
+ {
+ VideoRow* _tmp23_ = NULL;
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = self->priv->backing_row;
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8291 "VideoSupport.c"
+ }
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (backing_file_reader);
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_interpretable_results_unref0 (results);
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 904 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 8307 "VideoSupport.c"
+ }
+ }
+#line 908 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = results;
+#line 908 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_->update_interpretable = TRUE;
+#line 909 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = results;
+#line 909 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_->is_interpretable = TRUE;
+#line 910 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = results;
+#line 910 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp27_ = preview_frame;
+#line 910 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp28_ = _g_object_ref0 (_tmp27_);
+#line 910 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp26_->new_thumbnail);
+#line 910 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_->new_thumbnail = _tmp28_;
+#line 912 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = results;
+#line 912 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (backing_file_reader);
+#line 912 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (preview_frame);
+#line 912 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8336 "VideoSupport.c"
+}
+
+
+static void video_real_destroy (DataSource* base) {
+ Video * self;
+ VideoID video_id = {0};
+ VideoID _tmp0_ = {0};
+ GError * _inner_error_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 916 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (self, &_tmp0_);
+#line 916 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_id = _tmp0_;
+#line 918 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ thumbnail_cache_remove (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 8353 "VideoSupport.c"
+ {
+ VideoTable* _tmp1_ = NULL;
+ VideoTable* _tmp2_ = NULL;
+ VideoID _tmp3_ = {0};
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = video_table_get_instance ();
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_id;
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_remove (_tmp2_, &_tmp3_, &_inner_error_);
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp2_);
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 8372 "VideoSupport.c"
+ goto __catch526_database_error;
+ }
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 921 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 8381 "VideoSupport.c"
+ }
+ }
+ goto __finally526;
+ __catch526_database_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 920 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 920 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 923 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 923 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 923 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_error ("VideoSupport.vala:923: failed to remove video %s from video table", _tmp5_);
+#line 923 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp5_);
+#line 920 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 8404 "VideoSupport.c"
+ }
+ __finally526:
+#line 920 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 920 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 920 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 920 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 8415 "VideoSupport.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ DATA_SOURCE_CLASS (video_parent_class)->destroy (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_VIDEO_SOURCE, VideoSource), TYPE_DATA_SOURCE, DataSource));
+#line 8419 "VideoSupport.c"
+}
+
+
+static gboolean video_real_internal_delete_backing (DataSource* base, GError** error) {
+ Video * self;
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 930 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = media_source_delete_original_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 930 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ret = _tmp0_;
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = DATA_SOURCE_CLASS (video_parent_class)->internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_VIDEO_SOURCE, VideoSource), TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp3_;
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return FALSE;
+#line 8448 "VideoSupport.c"
+ }
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp2_) {
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = ret;
+#line 8454 "VideoSupport.c"
+ } else {
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = FALSE;
+#line 8458 "VideoSupport.c"
+ }
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp1_;
+#line 933 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8464 "VideoSupport.c"
+}
+
+
+static void video_notify_flags_altered (Video* self, Alteration* additional_alteration) {
+ Alteration* alteration = NULL;
+ Alteration* _tmp0_ = NULL;
+ Alteration* _tmp1_ = NULL;
+ Alteration* _tmp5_ = NULL;
+#line 936 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO (self));
+#line 936 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration));
+#line 937 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = alteration_new ("metadata", "flags");
+#line 937 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ alteration = _tmp0_;
+#line 938 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = additional_alteration;
+#line 938 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp1_ != NULL) {
+#line 8485 "VideoSupport.c"
+ Alteration* _tmp2_ = NULL;
+ Alteration* _tmp3_ = NULL;
+ Alteration* _tmp4_ = NULL;
+#line 939 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = alteration;
+#line 939 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = additional_alteration;
+#line 939 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = alteration_compress (_tmp2_, _tmp3_);
+#line 939 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (alteration);
+#line 939 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ alteration = _tmp4_;
+#line 8499 "VideoSupport.c"
+ }
+#line 941 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = alteration;
+#line 941 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp5_);
+#line 936 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (alteration);
+#line 8507 "VideoSupport.c"
+}
+
+
+guint64 video_add_flags (Video* self, guint64 flags_to_add, Alteration* additional_alteration) {
+ guint64 result = 0ULL;
+ guint64 new_flags = 0ULL;
+ Alteration* _tmp24_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 944 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), 0ULL);
+#line 944 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration), 0ULL);
+#line 8520 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 8527 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ guint64 _tmp4_ = 0ULL;
+ VideoRow* _tmp5_ = NULL;
+ guint64 _tmp6_ = 0ULL;
+ guint64 _tmp7_ = 0ULL;
+ VideoRow* _tmp21_ = NULL;
+ guint64 _tmp22_ = 0ULL;
+#line 947 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 947 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 947 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = flags_to_add;
+#line 947 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = media_source_internal_add_flags (_tmp2_, _tmp3_);
+#line 947 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ new_flags = _tmp4_;
+#line 948 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 948 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp5_->flags;
+#line 948 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = new_flags;
+#line 948 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp6_ == _tmp7_) {
+#line 8556 "VideoSupport.c"
+ VideoRow* _tmp8_ = NULL;
+ guint64 _tmp9_ = 0ULL;
+#line 949 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = self->priv->backing_row;
+#line 949 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_->flags;
+#line 949 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp9_;
+#line 8565 "VideoSupport.c"
+ {
+ VideoRow* _tmp10_ = NULL;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = self->priv->backing_row;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8572 "VideoSupport.c"
+ }
+#line 949 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8576 "VideoSupport.c"
+ }
+ {
+ VideoTable* _tmp11_ = NULL;
+ VideoTable* _tmp12_ = NULL;
+ VideoID _tmp13_ = {0};
+ guint64 _tmp14_ = 0ULL;
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = video_table_get_instance ();
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = _tmp11_;
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (self, &_tmp13_);
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = new_flags;
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_flags (_tmp12_, &_tmp13_, _tmp14_, &_inner_error_);
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp12_);
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 8599 "VideoSupport.c"
+ goto __catch528_database_error;
+ }
+ {
+ VideoRow* _tmp15_ = NULL;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = self->priv->backing_row;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8608 "VideoSupport.c"
+ }
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 952 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0ULL;
+#line 8616 "VideoSupport.c"
+ }
+ }
+ goto __finally528;
+ __catch528_database_error:
+ {
+ GError* e = NULL;
+ GError* _tmp16_ = NULL;
+ VideoRow* _tmp17_ = NULL;
+ guint64 _tmp18_ = 0ULL;
+#line 951 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 951 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 954 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = e;
+#line 954 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp16_);
+#line 955 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = self->priv->backing_row;
+#line 955 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = _tmp17_->flags;
+#line 955 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp18_;
+#line 955 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 8642 "VideoSupport.c"
+ {
+ VideoRow* _tmp19_ = NULL;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = self->priv->backing_row;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8649 "VideoSupport.c"
+ }
+#line 955 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8653 "VideoSupport.c"
+ }
+ __finally528:
+#line 951 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8658 "VideoSupport.c"
+ {
+ VideoRow* _tmp20_ = NULL;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = self->priv->backing_row;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8665 "VideoSupport.c"
+ }
+#line 951 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 951 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 951 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0ULL;
+#line 8673 "VideoSupport.c"
+ }
+#line 958 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = self->priv->backing_row;
+#line 958 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = new_flags;
+#line 958 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_->flags = _tmp22_;
+#line 8681 "VideoSupport.c"
+ }
+ __finally527:
+ {
+ VideoRow* _tmp23_ = NULL;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = self->priv->backing_row;
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8690 "VideoSupport.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 946 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0ULL;
+#line 8700 "VideoSupport.c"
+ }
+ }
+#line 961 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = additional_alteration;
+#line 961 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_notify_flags_altered (self, _tmp24_);
+#line 963 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = new_flags;
+#line 963 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8711 "VideoSupport.c"
+}
+
+
+guint64 video_remove_flags (Video* self, guint64 flags_to_remove, Alteration* additional_alteration) {
+ guint64 result = 0ULL;
+ guint64 new_flags = 0ULL;
+ Alteration* _tmp24_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 966 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), 0ULL);
+#line 966 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail ((additional_alteration == NULL) || IS_ALTERATION (additional_alteration), 0ULL);
+#line 8724 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 8731 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ guint64 _tmp4_ = 0ULL;
+ VideoRow* _tmp5_ = NULL;
+ guint64 _tmp6_ = 0ULL;
+ guint64 _tmp7_ = 0ULL;
+ VideoRow* _tmp21_ = NULL;
+ guint64 _tmp22_ = 0ULL;
+#line 969 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 969 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 969 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = flags_to_remove;
+#line 969 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = media_source_internal_remove_flags (_tmp2_, _tmp3_);
+#line 969 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ new_flags = _tmp4_;
+#line 970 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 970 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp5_->flags;
+#line 970 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = new_flags;
+#line 970 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp6_ == _tmp7_) {
+#line 8760 "VideoSupport.c"
+ VideoRow* _tmp8_ = NULL;
+ guint64 _tmp9_ = 0ULL;
+#line 971 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = self->priv->backing_row;
+#line 971 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_->flags;
+#line 971 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp9_;
+#line 8769 "VideoSupport.c"
+ {
+ VideoRow* _tmp10_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = self->priv->backing_row;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8776 "VideoSupport.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8780 "VideoSupport.c"
+ }
+ {
+ VideoTable* _tmp11_ = NULL;
+ VideoTable* _tmp12_ = NULL;
+ VideoID _tmp13_ = {0};
+ guint64 _tmp14_ = 0ULL;
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = video_table_get_instance ();
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = _tmp11_;
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (self, &_tmp13_);
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = new_flags;
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_flags (_tmp12_, &_tmp13_, _tmp14_, &_inner_error_);
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp12_);
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 8803 "VideoSupport.c"
+ goto __catch530_database_error;
+ }
+ {
+ VideoRow* _tmp15_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = self->priv->backing_row;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8812 "VideoSupport.c"
+ }
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 974 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0ULL;
+#line 8820 "VideoSupport.c"
+ }
+ }
+ goto __finally530;
+ __catch530_database_error:
+ {
+ GError* e = NULL;
+ GError* _tmp16_ = NULL;
+ VideoRow* _tmp17_ = NULL;
+ guint64 _tmp18_ = 0ULL;
+#line 973 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ e = _inner_error_;
+#line 973 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 976 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = e;
+#line 976 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp16_);
+#line 977 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = self->priv->backing_row;
+#line 977 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = _tmp17_->flags;
+#line 977 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp18_;
+#line 977 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (e);
+#line 8846 "VideoSupport.c"
+ {
+ VideoRow* _tmp19_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = self->priv->backing_row;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8853 "VideoSupport.c"
+ }
+#line 977 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8857 "VideoSupport.c"
+ }
+ __finally530:
+#line 973 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 8862 "VideoSupport.c"
+ {
+ VideoRow* _tmp20_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = self->priv->backing_row;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8869 "VideoSupport.c"
+ }
+#line 973 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 973 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 973 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0ULL;
+#line 8877 "VideoSupport.c"
+ }
+#line 980 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = self->priv->backing_row;
+#line 980 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = new_flags;
+#line 980 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_->flags = _tmp22_;
+#line 8885 "VideoSupport.c"
+ }
+ __finally529:
+ {
+ VideoRow* _tmp23_ = NULL;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = self->priv->backing_row;
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8894 "VideoSupport.c"
+ }
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 968 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return 0ULL;
+#line 8904 "VideoSupport.c"
+ }
+ }
+#line 983 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = additional_alteration;
+#line 983 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_notify_flags_altered (self, _tmp24_);
+#line 985 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = new_flags;
+#line 985 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8915 "VideoSupport.c"
+}
+
+
+gboolean video_is_flag_set (Video* self, guint64 flag) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), FALSE);
+#line 8924 "VideoSupport.c"
+ {
+ VideoRow* _tmp0_ = NULL;
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->backing_row;
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 8931 "VideoSupport.c"
+ {
+ VideoRow* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+ gboolean _tmp4_ = FALSE;
+#line 990 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->priv->backing_row;
+#line 990 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_->flags;
+#line 990 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = flag;
+#line 990 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = media_source_internal_is_flag_set (_tmp2_, _tmp3_);
+#line 990 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp4_;
+#line 8947 "VideoSupport.c"
+ {
+ VideoRow* _tmp5_ = NULL;
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->priv->backing_row;
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8954 "VideoSupport.c"
+ }
+#line 990 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 8958 "VideoSupport.c"
+ }
+ __finally531:
+ {
+ VideoRow* _tmp6_ = NULL;
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->priv->backing_row;
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 8967 "VideoSupport.c"
+ }
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 989 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return FALSE;
+#line 8975 "VideoSupport.c"
+ }
+}
+
+
+static void video_real_set_master_file (Monitorable* base, GFile* file) {
+ Video * self;
+ gchar* new_filepath = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* old_filepath = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ Alteration* _tmp25_ = NULL;
+ Alteration* _tmp26_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 994 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO, Video);
+#line 994 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 995 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = file;
+#line 995 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 995 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ new_filepath = _tmp1_;
+#line 996 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old_filepath = NULL;
+#line 9006 "VideoSupport.c"
+ {
+ {
+ VideoRow* _tmp2_ = NULL;
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->backing_row;
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_lock (&self->priv->__lock_backing_row);
+#line 9014 "VideoSupport.c"
+ {
+ VideoRow* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ VideoRow* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ VideoTable* _tmp10_ = NULL;
+ VideoTable* _tmp11_ = NULL;
+ VideoRow* _tmp12_ = NULL;
+ VideoID _tmp13_ = {0};
+ const gchar* _tmp14_ = NULL;
+ VideoRow* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 999 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->priv->backing_row;
+#line 999 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_->filepath;
+#line 999 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = new_filepath;
+#line 999 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_strcmp0 (_tmp4_, _tmp5_) == 0) {
+#line 9038 "VideoSupport.c"
+ {
+ VideoRow* _tmp6_ = NULL;
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->priv->backing_row;
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 9045 "VideoSupport.c"
+ }
+#line 1000 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (old_filepath);
+#line 1000 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_filepath);
+#line 1000 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 9053 "VideoSupport.c"
+ }
+#line 1002 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = self->priv->backing_row;
+#line 1002 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _tmp7_->filepath;
+#line 1002 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 1002 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (old_filepath);
+#line 1002 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old_filepath = _tmp9_;
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = video_table_get_instance ();
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = _tmp10_;
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = self->priv->backing_row;
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = _tmp12_->video_id;
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = new_filepath;
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_table_set_filepath (_tmp11_, &_tmp13_, _tmp14_, &_inner_error_);
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp11_);
+#line 1004 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9081 "VideoSupport.c"
+ goto __finally533;
+ }
+#line 1005 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = self->priv->backing_row;
+#line 1005 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = new_filepath;
+#line 1005 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 1005 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp15_->filepath);
+#line 1005 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_->filepath = _tmp17_;
+#line 9094 "VideoSupport.c"
+ }
+ __finally533:
+ {
+ VideoRow* _tmp18_ = NULL;
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = self->priv->backing_row;
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_backing_row);
+#line 9103 "VideoSupport.c"
+ }
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 9109 "VideoSupport.c"
+ goto __catch532_database_error;
+ }
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (old_filepath);
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_filepath);
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 998 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 9122 "VideoSupport.c"
+ }
+ }
+ }
+ goto __finally532;
+ __catch532_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp19_ = NULL;
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 1008 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = err;
+#line 1008 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ app_window_database_error (_tmp19_);
+#line 1010 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 1010 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (old_filepath);
+#line 1010 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_filepath);
+#line 1010 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 9147 "VideoSupport.c"
+ }
+ __finally532:
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (old_filepath);
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_filepath);
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 997 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 9162 "VideoSupport.c"
+ }
+#line 1013 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = old_filepath;
+#line 1013 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_assert (_tmp20_ != NULL, "old_filepath != null");
+#line 1014 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = old_filepath;
+#line 1014 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = g_file_new_for_path (_tmp21_);
+#line 1014 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = _tmp22_;
+#line 1014 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = file;
+#line 1014 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ media_source_notify_master_replaced (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource), _tmp23_, _tmp24_);
+#line 1014 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp23_);
+#line 1016 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = alteration_new_from_list ("backing:master,metadata:name");
+#line 1016 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = _tmp25_;
+#line 1016 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp26_);
+#line 1016 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _alteration_unref0 (_tmp26_);
+#line 994 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (old_filepath);
+#line 994 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (new_filepath);
+#line 9192 "VideoSupport.c"
+}
+
+
+VideoMetadata* video_read_metadata (Video* self, GError** error) {
+ VideoMetadata* result = NULL;
+ VideoMetadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ VideoReader* _tmp3_ = NULL;
+ VideoReader* _tmp4_ = NULL;
+ VideoMetadata* _tmp5_ = NULL;
+ VideoMetadata* _tmp6_ = NULL;
+ VideoMetadata* _tmp7_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1019 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (self), NULL);
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_reader_new (_tmp2_);
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = video_reader_read_metadata (_tmp4_, &_inner_error_);
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _tmp5_;
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_reader_unref0 (_tmp4_);
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = _tmp6_;
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 9233 "VideoSupport.c"
+ }
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = _tmp0_;
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = NULL;
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp7_;
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _media_metadata_unref0 (_tmp0_);
+#line 1020 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9245 "VideoSupport.c"
+}
+
+
+VideoInterpretableResults* video_interpretable_results_construct (GType object_type, Video* video) {
+ VideoInterpretableResults* self = NULL;
+ Video* _tmp0_ = NULL;
+ Video* _tmp1_ = NULL;
+#line 320 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO (video), NULL);
+#line 320 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = (VideoInterpretableResults*) g_type_create_instance (object_type);
+#line 321 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video;
+#line 321 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 321 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->video);
+#line 321 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->video = _tmp1_;
+#line 320 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self;
+#line 9267 "VideoSupport.c"
+}
+
+
+VideoInterpretableResults* video_interpretable_results_new (Video* video) {
+#line 320 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return video_interpretable_results_construct (VIDEO_TYPE_INTERPRETABLE_RESULTS, video);
+#line 9274 "VideoSupport.c"
+}
+
+
+void video_interpretable_results_foreground_finish (VideoInterpretableResults* self) {
+ gboolean _tmp0_ = FALSE;
+ GdkPixbuf* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (VIDEO_IS_INTERPRETABLE_RESULTS (self));
+#line 325 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->update_interpretable;
+#line 325 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_) {
+#line 9288 "VideoSupport.c"
+ Video* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 326 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = self->video;
+#line 326 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->is_interpretable;
+#line 326 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_set_is_interpretable (_tmp1_, _tmp2_);
+#line 9297 "VideoSupport.c"
+ }
+#line 328 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = self->new_thumbnail;
+#line 328 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp3_ != NULL) {
+#line 9303 "VideoSupport.c"
+ {
+ Video* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ Video* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ Video* _tmp8_ = NULL;
+#line 330 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = self->video;
+#line 330 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = self->new_thumbnail;
+#line 330 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ thumbnail_cache_replace (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), THUMBNAIL_CACHE_SIZE_BIG, _tmp5_, &_inner_error_);
+#line 330 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9318 "VideoSupport.c"
+ goto __catch534_g_error;
+ }
+#line 331 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = self->video;
+#line 331 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = self->new_thumbnail;
+#line 331 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ thumbnail_cache_replace (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), THUMBNAIL_CACHE_SIZE_MEDIUM, _tmp7_, &_inner_error_);
+#line 331 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 9329 "VideoSupport.c"
+ goto __catch534_g_error;
+ }
+#line 333 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = self->video;
+#line 333 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ thumbnail_source_notify_thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 9336 "VideoSupport.c"
+ }
+ goto __finally534;
+ __catch534_g_error:
+ {
+ GError* err = NULL;
+ Video* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GError* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 329 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ err = _inner_error_;
+#line 329 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _inner_error_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = self->video;
+#line 335 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 335 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = _tmp10_;
+#line 335 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = err;
+#line 335 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = _tmp12_->message;
+#line 335 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_message ("VideoSupport.vala:335: Unable to update video thumbnails for %s: %s", _tmp11_, _tmp13_);
+#line 335 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_free0 (_tmp11_);
+#line 329 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_error_free0 (err);
+#line 9367 "VideoSupport.c"
+ }
+ __finally534:
+#line 329 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 329 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 329 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 329 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 9378 "VideoSupport.c"
+ }
+ }
+}
+
+
+static void video_value_interpretable_results_init (GValue* value) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 9387 "VideoSupport.c"
+}
+
+
+static void video_value_interpretable_results_free_value (GValue* value) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (value->data[0].v_pointer) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpretable_results_unref (value->data[0].v_pointer);
+#line 9396 "VideoSupport.c"
+ }
+}
+
+
+static void video_value_interpretable_results_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (src_value->data[0].v_pointer) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dest_value->data[0].v_pointer = video_interpretable_results_ref (src_value->data[0].v_pointer);
+#line 9406 "VideoSupport.c"
+ } else {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 9410 "VideoSupport.c"
+ }
+}
+
+
+static gpointer video_value_interpretable_results_peek_pointer (const GValue* value) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return value->data[0].v_pointer;
+#line 9418 "VideoSupport.c"
+}
+
+
+static gchar* video_value_interpretable_results_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (collect_values[0].v_pointer) {
+#line 9425 "VideoSupport.c"
+ VideoInterpretableResults* object;
+ object = collect_values[0].v_pointer;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9432 "VideoSupport.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 9436 "VideoSupport.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = video_interpretable_results_ref (object);
+#line 9440 "VideoSupport.c"
+ } else {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 9444 "VideoSupport.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 9448 "VideoSupport.c"
+}
+
+
+static gchar* video_value_interpretable_results_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ VideoInterpretableResults** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!object_p) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 9459 "VideoSupport.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!value->data[0].v_pointer) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = NULL;
+#line 9465 "VideoSupport.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = value->data[0].v_pointer;
+#line 9469 "VideoSupport.c"
+ } else {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *object_p = video_interpretable_results_ref (value->data[0].v_pointer);
+#line 9473 "VideoSupport.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return NULL;
+#line 9477 "VideoSupport.c"
+}
+
+
+GParamSpec* video_param_spec_interpretable_results (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ VideoParamSpecInterpretableResults* spec;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, VIDEO_TYPE_INTERPRETABLE_RESULTS), NULL);
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return G_PARAM_SPEC (spec);
+#line 9491 "VideoSupport.c"
+}
+
+
+gpointer video_value_get_interpretable_results (const GValue* value) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VIDEO_TYPE_INTERPRETABLE_RESULTS), NULL);
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return value->data[0].v_pointer;
+#line 9500 "VideoSupport.c"
+}
+
+
+void video_value_set_interpretable_results (GValue* value, gpointer v_object) {
+ VideoInterpretableResults* old;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VIDEO_TYPE_INTERPRETABLE_RESULTS));
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old = value->data[0].v_pointer;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (v_object) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VIDEO_TYPE_INTERPRETABLE_RESULTS));
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = v_object;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpretable_results_ref (value->data[0].v_pointer);
+#line 9520 "VideoSupport.c"
+ } else {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 9524 "VideoSupport.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (old) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpretable_results_unref (old);
+#line 9530 "VideoSupport.c"
+ }
+}
+
+
+void video_value_take_interpretable_results (GValue* value, gpointer v_object) {
+ VideoInterpretableResults* old;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VIDEO_TYPE_INTERPRETABLE_RESULTS));
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ old = value->data[0].v_pointer;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (v_object) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VIDEO_TYPE_INTERPRETABLE_RESULTS));
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = v_object;
+#line 9549 "VideoSupport.c"
+ } else {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ value->data[0].v_pointer = NULL;
+#line 9553 "VideoSupport.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (old) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpretable_results_unref (old);
+#line 9559 "VideoSupport.c"
+ }
+}
+
+
+static void video_interpretable_results_class_init (VideoInterpretableResultsClass * klass) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_interpretable_results_parent_class = g_type_class_peek_parent (klass);
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((VideoInterpretableResultsClass *) klass)->finalize = video_interpretable_results_finalize;
+#line 9569 "VideoSupport.c"
+}
+
+
+static void video_interpretable_results_instance_init (VideoInterpretableResults * self) {
+#line 316 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->update_interpretable = FALSE;
+#line 317 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->is_interpretable = FALSE;
+#line 318 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->new_thumbnail = NULL;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->ref_count = 1;
+#line 9582 "VideoSupport.c"
+}
+
+
+static void video_interpretable_results_finalize (VideoInterpretableResults* obj) {
+ VideoInterpretableResults * self;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, VIDEO_TYPE_INTERPRETABLE_RESULTS, VideoInterpretableResults);
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_signal_handlers_destroy (self);
+#line 315 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->video);
+#line 318 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->new_thumbnail);
+#line 9596 "VideoSupport.c"
+}
+
+
+GType video_interpretable_results_get_type (void) {
+ static volatile gsize video_interpretable_results_type_id__volatile = 0;
+ if (g_once_init_enter (&video_interpretable_results_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { video_value_interpretable_results_init, video_value_interpretable_results_free_value, video_value_interpretable_results_copy_value, video_value_interpretable_results_peek_pointer, "p", video_value_interpretable_results_collect_value, "p", video_value_interpretable_results_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (VideoInterpretableResultsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_interpretable_results_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoInterpretableResults), 0, (GInstanceInitFunc) video_interpretable_results_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType video_interpretable_results_type_id;
+ video_interpretable_results_type_id = g_type_register_fundamental (g_type_fundamental_next (), "VideoInterpretableResults", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&video_interpretable_results_type_id__volatile, video_interpretable_results_type_id);
+ }
+ return video_interpretable_results_type_id__volatile;
+}
+
+
+gpointer video_interpretable_results_ref (gpointer instance) {
+ VideoInterpretableResults* self;
+ self = instance;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return instance;
+#line 9621 "VideoSupport.c"
+}
+
+
+void video_interpretable_results_unref (gpointer instance) {
+ VideoInterpretableResults* self;
+ self = instance;
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ VIDEO_INTERPRETABLE_RESULTS_GET_CLASS (self)->finalize (self);
+#line 314 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 9634 "VideoSupport.c"
+ }
+}
+
+
+static void video_class_init (VideoClass * klass) {
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_parent_class = g_type_class_peek_parent (klass);
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_type_class_add_private (klass, sizeof (VideoPrivate));
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataSourceClass *) klass)->commit_backlinks = video_real_commit_backlinks;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->set_event_id = video_real_set_event_id;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_backing_files_state = video_real_get_backing_files_state;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((ThumbnailSourceClass *) klass)->get_thumbnail = video_real_get_thumbnail;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_master_md5 = video_real_get_master_md5;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_preview_pixbuf = video_real_get_preview_pixbuf;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((ThumbnailSourceClass *) klass)->create_thumbnail = video_real_create_thumbnail;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataSourceClass *) klass)->get_typename = video_real_get_typename;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataSourceClass *) klass)->get_instance_id = video_real_get_instance_id;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_import_id = video_real_get_import_id;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((ThumbnailSourceClass *) klass)->get_preferred_thumbnail_format = video_real_get_preferred_thumbnail_format;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_title = video_real_get_title;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->set_title = video_real_set_title;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_comment = video_real_get_comment;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->set_comment = video_real_set_comment;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_rating = video_real_get_rating;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->set_rating = video_real_set_rating;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->increase_rating = video_real_increase_rating;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->decrease_rating = video_real_decrease_rating;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->is_trashed = video_real_is_trashed;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->is_offline = video_real_is_offline;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->mark_offline = video_real_mark_offline;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->mark_online = video_real_mark_online;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->trash = video_real_trash;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->untrash = video_real_untrash;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_event_id = video_real_get_event_id;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataObjectClass *) klass)->to_string = video_real_to_string;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_exposure_time = video_real_get_exposure_time;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_dimensions = video_real_get_dimensions;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_filesize = video_real_get_filesize;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_master_filesize = video_real_get_master_filesize;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_timestamp = video_real_get_timestamp;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_file = video_real_get_file;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceClass *) klass)->get_master_file = video_real_get_master_file;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataSourceClass *) klass)->destroy = video_real_destroy;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataSourceClass *) klass)->internal_delete_backing = video_real_internal_delete_backing;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ G_OBJECT_CLASS (klass)->finalize = video_finalize;
+#line 9718 "VideoSupport.c"
+}
+
+
+static void video_flaggable_interface_init (FlaggableIface * iface) {
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_flaggable_parent_iface = g_type_interface_peek_parent (iface);
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->is_flagged = (gboolean (*)(Flaggable*)) video_real_is_flagged;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->mark_flagged = (void (*)(Flaggable*)) video_real_mark_flagged;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->mark_unflagged = (void (*)(Flaggable*)) video_real_mark_unflagged;
+#line 9731 "VideoSupport.c"
+}
+
+
+static void video_monitorable_interface_init (MonitorableIface * iface) {
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_monitorable_parent_iface = g_type_interface_peek_parent (iface);
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->is_offline = (gboolean (*)(Monitorable*)) video_real_is_offline;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->mark_offline = (void (*)(Monitorable*)) video_real_mark_offline;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->mark_online = (void (*)(Monitorable*)) video_real_mark_online;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->set_master_timestamp = (void (*)(Monitorable*, GFileInfo*)) video_real_set_master_timestamp;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->set_master_file = (void (*)(Monitorable*, GFile*)) video_real_set_master_file;
+#line 9748 "VideoSupport.c"
+}
+
+
+static void video_dateable_interface_init (DateableIface * iface) {
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_dateable_parent_iface = g_type_interface_peek_parent (iface);
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->get_exposure_time = (time_t (*)(Dateable*)) video_real_get_exposure_time;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ iface->set_exposure_time = (void (*)(Dateable*, time_t)) video_real_set_exposure_time;
+#line 9759 "VideoSupport.c"
+}
+
+
+static void video_instance_init (Video * self) {
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv = VIDEO_GET_PRIVATE (self);
+#line 348 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_init (&self->priv->__lock_backing_row);
+#line 9768 "VideoSupport.c"
+}
+
+
+static void video_finalize (GObject* obj) {
+ Video * self;
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO, Video);
+#line 348 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_rec_mutex_clear (&self->priv->__lock_backing_row);
+#line 348 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_row_unref0 (self->priv->backing_row);
+#line 307 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ G_OBJECT_CLASS (video_parent_class)->finalize (obj);
+#line 9782 "VideoSupport.c"
+}
+
+
+GType video_get_type (void) {
+ static volatile gsize video_type_id__volatile = 0;
+ if (g_once_init_enter (&video_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Video), 0, (GInstanceInitFunc) video_instance_init, NULL };
+ static const GInterfaceInfo flaggable_info = { (GInterfaceInitFunc) video_flaggable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo monitorable_info = { (GInterfaceInitFunc) video_monitorable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo dateable_info = { (GInterfaceInitFunc) video_dateable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType video_type_id;
+ video_type_id = g_type_register_static (TYPE_VIDEO_SOURCE, "Video", &g_define_type_info, 0);
+ g_type_add_interface_static (video_type_id, TYPE_FLAGGABLE, &flaggable_info);
+ g_type_add_interface_static (video_type_id, TYPE_MONITORABLE, &monitorable_info);
+ g_type_add_interface_static (video_type_id, TYPE_DATEABLE, &dateable_info);
+ g_once_init_leave (&video_type_id__volatile, video_type_id);
+ }
+ return video_type_id__volatile;
+}
+
+
+GType video_source_collection_state_get_type (void) {
+ static volatile gsize video_source_collection_state_type_id__volatile = 0;
+ if (g_once_init_enter (&video_source_collection_state_type_id__volatile)) {
+ static const GEnumValue values[] = {{VIDEO_SOURCE_COLLECTION_STATE_UNKNOWN, "VIDEO_SOURCE_COLLECTION_STATE_UNKNOWN", "unknown"}, {VIDEO_SOURCE_COLLECTION_STATE_ONLINE, "VIDEO_SOURCE_COLLECTION_STATE_ONLINE", "online"}, {VIDEO_SOURCE_COLLECTION_STATE_OFFLINE, "VIDEO_SOURCE_COLLECTION_STATE_OFFLINE", "offline"}, {VIDEO_SOURCE_COLLECTION_STATE_TRASH, "VIDEO_SOURCE_COLLECTION_STATE_TRASH", "trash"}, {0, NULL, NULL}};
+ GType video_source_collection_state_type_id;
+ video_source_collection_state_type_id = g_enum_register_static ("VideoSourceCollectionState", values);
+ g_once_init_leave (&video_source_collection_state_type_id__volatile, video_source_collection_state_type_id);
+ }
+ return video_source_collection_state_type_id__volatile;
+}
+
+
+static gint _uint64_compare_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = uint64_compare ((guint64*) a, (guint64*) b);
+#line 1042 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9821 "VideoSupport.c"
+}
+
+
+static guint64* _uint64_dup (guint64* self) {
+ guint64* dup;
+#line 1042 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ dup = g_new0 (guint64, 1);
+#line 1042 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ memcpy (dup, self, sizeof (guint64));
+#line 1042 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return dup;
+#line 9833 "VideoSupport.c"
+}
+
+
+static gint64 _video_source_collection_get_video_key_get_source_database_key (DataSource* source, gpointer self) {
+ gint64 result;
+ result = video_source_collection_get_video_key (source);
+#line 1046 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9842 "VideoSupport.c"
+}
+
+
+static void _video_source_collection_on_trashcan_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 1048 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_source_collection_on_trashcan_contents_altered ((VideoSourceCollection*) self, added, removed);
+#line 9849 "VideoSupport.c"
+}
+
+
+static void _video_source_collection_on_offline_contents_altered_source_holding_tank_contents_altered (SourceHoldingTank* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 1049 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_source_collection_on_offline_contents_altered ((VideoSourceCollection*) self, added, removed);
+#line 9856 "VideoSupport.c"
+}
+
+
+VideoSourceCollection* video_source_collection_construct (GType object_type) {
+ VideoSourceCollection* self = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+ MediaSourceHoldingTank* _tmp1_ = NULL;
+ MediaSourceHoldingTank* _tmp2_ = NULL;
+ MediaSourceHoldingTank* _tmp3_ = NULL;
+#line 1046 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = (VideoSourceCollection*) media_source_collection_construct (object_type, "VideoSourceCollection", _video_source_collection_get_video_key_get_source_database_key, NULL);
+#line 1048 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 1048 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 1048 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), "contents-altered", (GCallback) _video_source_collection_on_trashcan_contents_altered_source_holding_tank_contents_altered, self);
+#line 1048 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _source_holding_tank_unref0 (_tmp1_);
+#line 1049 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 1049 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 1049 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), "contents-altered", (GCallback) _video_source_collection_on_offline_contents_altered_source_holding_tank_contents_altered, self);
+#line 1049 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _source_holding_tank_unref0 (_tmp3_);
+#line 1045 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return self;
+#line 9886 "VideoSupport.c"
+}
+
+
+VideoSourceCollection* video_source_collection_new (void) {
+#line 1045 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return video_source_collection_construct (TYPE_VIDEO_SOURCE_COLLECTION);
+#line 9893 "VideoSupport.c"
+}
+
+
+static gboolean _video_source_collection_is_video_trashed_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = video_source_collection_is_video_trashed (source);
+#line 1053 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9902 "VideoSupport.c"
+}
+
+
+static MediaSourceHoldingTank* video_source_collection_real_create_trashcan (MediaSourceCollection* base) {
+ VideoSourceCollection * self;
+ MediaSourceHoldingTank* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+#line 1052 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1053 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = media_source_holding_tank_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _video_source_collection_is_video_trashed_source_holding_tank_check_to_keep, NULL, _video_source_collection_get_video_key_get_source_database_key, NULL);
+#line 1053 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 1053 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9918 "VideoSupport.c"
+}
+
+
+static gboolean _video_source_collection_is_video_offline_source_holding_tank_check_to_keep (DataSource* source, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = video_source_collection_is_video_offline (source);
+#line 1057 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9927 "VideoSupport.c"
+}
+
+
+static MediaSourceHoldingTank* video_source_collection_real_create_offline_bin (MediaSourceCollection* base) {
+ VideoSourceCollection * self;
+ MediaSourceHoldingTank* result = NULL;
+ MediaSourceHoldingTank* _tmp0_ = NULL;
+#line 1056 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1057 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = media_source_holding_tank_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _video_source_collection_is_video_offline_source_holding_tank_check_to_keep, NULL, _video_source_collection_get_video_key_get_source_database_key, NULL);
+#line 1057 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 1057 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9943 "VideoSupport.c"
+}
+
+
+static MediaMonitor* video_source_collection_real_create_media_monitor (MediaSourceCollection* base, Workers* workers, GCancellable* cancellable) {
+ VideoSourceCollection * self;
+ MediaMonitor* result = NULL;
+ GCancellable* _tmp0_ = NULL;
+ VideoMonitor* _tmp1_ = NULL;
+#line 1060 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1060 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_WORKERS (workers), NULL);
+#line 1060 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
+#line 1061 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = cancellable;
+#line 1061 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = video_monitor_new (_tmp0_);
+#line 1061 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_MONITOR, MediaMonitor);
+#line 1061 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9966 "VideoSupport.c"
+}
+
+
+static gboolean video_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) {
+ VideoSourceCollection * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 1064 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1064 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 1065 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = source;
+#line 1065 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_VIDEO);
+#line 1065 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 9984 "VideoSupport.c"
+}
+
+
+static gchar* video_source_collection_real_get_typename (MediaSourceCollection* base) {
+ VideoSourceCollection * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1069 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = g_strdup (VIDEO_TYPENAME);
+#line 1069 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp0_;
+#line 1069 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10000 "VideoSupport.c"
+}
+
+
+static gboolean video_source_collection_real_is_file_recognized (MediaSourceCollection* base, GFile* file) {
+ VideoSourceCollection * self;
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 1072 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1072 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 1073 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = file;
+#line 1073 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = video_reader_is_supported_video_file (_tmp0_);
+#line 1073 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp1_;
+#line 1073 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10021 "VideoSupport.c"
+}
+
+
+static void video_source_collection_on_trashcan_contents_altered (VideoSourceCollection* self, GeeCollection* added, GeeCollection* removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 1076 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO_SOURCE_COLLECTION (self));
+#line 1076 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 1076 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 1078 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = added;
+#line 1078 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = removed;
+#line 1078 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "trashcan-contents-altered", G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 10040 "VideoSupport.c"
+}
+
+
+static void video_source_collection_on_offline_contents_altered (VideoSourceCollection* self, GeeCollection* added, GeeCollection* removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 1082 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO_SOURCE_COLLECTION (self));
+#line 1082 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 1082 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 1084 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = added;
+#line 1084 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = removed;
+#line 1084 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "offline-contents-altered", G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 10059 "VideoSupport.c"
+}
+
+
+static MediaSource* video_source_collection_real_fetch_by_numeric_id (MediaSourceCollection* base, gint64 numeric_id) {
+ VideoSourceCollection * self;
+ MediaSource* result = NULL;
+ gint64 _tmp0_ = 0LL;
+ VideoID _tmp1_ = {0};
+ Video* _tmp2_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1089 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = numeric_id;
+#line 1089 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_id_init (&_tmp1_, _tmp0_);
+#line 1089 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = video_source_collection_fetch (self, &_tmp1_);
+#line 1089 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 1089 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10081 "VideoSupport.c"
+}
+
+
+gint64 video_source_collection_get_video_key (DataSource* source) {
+ gint64 result = 0LL;
+ Video* video = NULL;
+ DataSource* _tmp0_ = NULL;
+ Video* _tmp1_ = NULL;
+ VideoID video_id = {0};
+ VideoID _tmp2_ = {0};
+ VideoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+#line 1092 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), 0LL);
+#line 1093 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = source;
+#line 1093 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIDEO, Video));
+#line 1093 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = _tmp1_;
+#line 1094 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (video, &_tmp2_);
+#line 1094 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_id = _tmp2_;
+#line 1096 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_id;
+#line 1096 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_.id;
+#line 1096 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp4_;
+#line 1096 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 1096 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10116 "VideoSupport.c"
+}
+
+
+gboolean video_source_collection_is_video_trashed (DataSource* source) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 1099 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 1100 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = source;
+#line 1100 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_is_trashed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIDEO, Video), TYPE_MEDIA_SOURCE, MediaSource));
+#line 1100 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp1_;
+#line 1100 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10134 "VideoSupport.c"
+}
+
+
+gboolean video_source_collection_is_video_offline (DataSource* source) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 1103 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 1104 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = source;
+#line 1104 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_is_offline (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIDEO, Video), TYPE_MEDIA_SOURCE, MediaSource));
+#line 1104 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp1_;
+#line 1104 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10152 "VideoSupport.c"
+}
+
+
+Video* video_source_collection_fetch (VideoSourceCollection* self, VideoID* video_id) {
+ Video* result = NULL;
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ DataSource* _tmp2_ = NULL;
+#line 1107 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_SOURCE_COLLECTION (self), NULL);
+#line 1107 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (video_id != NULL, NULL);
+#line 1108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = *video_id;
+#line 1108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_.id;
+#line 1108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = database_source_collection_fetch_by_key (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), _tmp1_);
+#line 1108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIDEO, Video);
+#line 1108 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10175 "VideoSupport.c"
+}
+
+
+static GeeCollection* video_source_collection_real_get_event_source_ids (MediaSourceCollection* base, EventID* event_id) {
+ VideoSourceCollection * self;
+ GeeCollection* result = NULL;
+ VideoTable* _tmp0_ = NULL;
+ VideoTable* _tmp1_ = NULL;
+ EventID _tmp2_ = {0};
+ GeeArrayList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 1111 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1111 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video_table_get_instance ();
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = *event_id;
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_table_get_event_source_ids (_tmp1_, &_tmp2_);
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _database_table_unref0 (_tmp1_);
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp4_;
+#line 1112 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10207 "VideoSupport.c"
+}
+
+
+Video* video_source_collection_get_state_by_file (VideoSourceCollection* self, GFile* file, VideoSourceCollectionState* state) {
+ VideoSourceCollectionState _vala_state = 0;
+ Video* result = NULL;
+ Video* video = NULL;
+ GFile* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ Video* _tmp2_ = NULL;
+ MediaSourceHoldingTank* _tmp3_ = NULL;
+ MediaSourceHoldingTank* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ Video* _tmp7_ = NULL;
+ MediaSourceHoldingTank* _tmp8_ = NULL;
+ MediaSourceHoldingTank* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ MediaSource* _tmp11_ = NULL;
+ Video* _tmp12_ = NULL;
+#line 1115 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_SOURCE_COLLECTION (self), NULL);
+#line 1115 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 1116 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = file;
+#line 1116 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_collection_fetch_by_master_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), _tmp0_);
+#line 1116 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_VIDEO, Video);
+#line 1117 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = video;
+#line 1117 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp2_ != NULL) {
+#line 1118 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_state = VIDEO_SOURCE_COLLECTION_STATE_ONLINE;
+#line 1120 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = video;
+#line 1120 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (state) {
+#line 1120 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *state = _vala_state;
+#line 10250 "VideoSupport.c"
+ }
+#line 1120 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10254 "VideoSupport.c"
+ }
+#line 1123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = media_source_collection_get_trashcan (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 1123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 1123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = file;
+#line 1123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = media_source_holding_tank_fetch_by_master_file (_tmp4_, _tmp5_);
+#line 1123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 1123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_VIDEO, Video);
+#line 1123 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _source_holding_tank_unref0 (_tmp4_);
+#line 1124 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = video;
+#line 1124 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp7_ != NULL) {
+#line 1125 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_state = VIDEO_SOURCE_COLLECTION_STATE_TRASH;
+#line 1127 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = video;
+#line 1127 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (state) {
+#line 1127 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *state = _vala_state;
+#line 10282 "VideoSupport.c"
+ }
+#line 1127 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10286 "VideoSupport.c"
+ }
+#line 1130 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = media_source_collection_get_offline_bin (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 1130 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = _tmp8_;
+#line 1130 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = file;
+#line 1130 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = media_source_holding_tank_fetch_by_master_file (_tmp9_, _tmp10_);
+#line 1130 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 1130 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_VIDEO, Video);
+#line 1130 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _source_holding_tank_unref0 (_tmp9_);
+#line 1131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = video;
+#line 1131 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp12_ != NULL) {
+#line 1132 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_state = VIDEO_SOURCE_COLLECTION_STATE_OFFLINE;
+#line 1134 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = video;
+#line 1134 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (state) {
+#line 1134 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *state = _vala_state;
+#line 10314 "VideoSupport.c"
+ }
+#line 1134 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10318 "VideoSupport.c"
+ }
+#line 1137 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _vala_state = VIDEO_SOURCE_COLLECTION_STATE_UNKNOWN;
+#line 1139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = NULL;
+#line 1139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 1139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (state) {
+#line 1139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *state = _vala_state;
+#line 10330 "VideoSupport.c"
+ }
+#line 1139 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10334 "VideoSupport.c"
+}
+
+
+static void video_source_collection_compare_backing (VideoSourceCollection* self, Video* video, GFileInfo* info, GeeCollection* matching_master) {
+ Video* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ GFileInfo* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+ Video* _tmp4_ = NULL;
+ time_t _tmp5_ = 0;
+ GFileInfo* _tmp6_ = NULL;
+ GTimeVal _tmp7_ = {0};
+ glong _tmp8_ = 0L;
+#line 1142 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO_SOURCE_COLLECTION (self));
+#line 1142 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO (video));
+#line 1142 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 1142 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matching_master));
+#line 1143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = video;
+#line 1143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_get_filesize (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = info;
+#line 1143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = g_file_info_get_size (_tmp2_);
+#line 1143 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp1_ != ((guint64) _tmp3_)) {
+#line 1144 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 10368 "VideoSupport.c"
+ }
+#line 1146 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = video;
+#line 1146 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = media_source_get_timestamp (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1146 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = info;
+#line 1146 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_file_info_get_modification_time (_tmp6_, &_tmp7_);
+#line 1146 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _tmp7_.tv_sec;
+#line 1146 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp5_ == ((time_t) _tmp8_)) {
+#line 10382 "VideoSupport.c"
+ GeeCollection* _tmp9_ = NULL;
+ Video* _tmp10_ = NULL;
+#line 1147 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = matching_master;
+#line 1147 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = video;
+#line 1147 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ gee_collection_add (_tmp9_, _tmp10_);
+#line 10391 "VideoSupport.c"
+ }
+}
+
+
+void video_source_collection_fetch_by_matching_backing (VideoSourceCollection* self, GFileInfo* info, GeeCollection* matching_master) {
+#line 1150 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO_SOURCE_COLLECTION (self));
+#line 1150 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 1150 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (matching_master));
+#line 10403 "VideoSupport.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _object_it = _tmp3_;
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ while (TRUE) {
+#line 10424 "VideoSupport.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ DataObject* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = _object_it;
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp5_) {
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 10441 "VideoSupport.c"
+ }
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _object_it;
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ object = (DataObject*) _tmp7_;
+#line 1152 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = object;
+#line 1152 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = info;
+#line 1152 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = matching_master;
+#line 1152 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_source_collection_compare_backing (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_VIDEO, Video), _tmp9_, _tmp10_);
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (object);
+#line 10459 "VideoSupport.c"
+ }
+#line 1151 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_object_it);
+#line 10463 "VideoSupport.c"
+ }
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = media_source_collection_get_offline_bin_contents (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = _tmp11_;
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = _tmp13_;
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _media_it = _tmp14_;
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ while (TRUE) {
+#line 10485 "VideoSupport.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ MediaSource* _tmp19_ = NULL;
+ GFileInfo* _tmp20_ = NULL;
+ GeeCollection* _tmp21_ = NULL;
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = _media_it;
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp16_) {
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 10502 "VideoSupport.c"
+ }
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = _media_it;
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ media = (MediaSource*) _tmp18_;
+#line 1155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = media;
+#line 1155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = info;
+#line 1155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = matching_master;
+#line 1155 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_source_collection_compare_backing (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_VIDEO, Video), _tmp20_, _tmp21_);
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (media);
+#line 10520 "VideoSupport.c"
+ }
+#line 1154 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_media_it);
+#line 10524 "VideoSupport.c"
+ }
+}
+
+
+static void video_source_collection_real_notify_contents_altered (DataCollection* base, GeeIterable* added, GeeIterable* removed) {
+ VideoSourceCollection * self;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp13_ = NULL;
+ GeeIterable* _tmp26_ = NULL;
+ GeeIterable* _tmp27_ = NULL;
+#line 1158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 1158 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 1160 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = added;
+#line 1160 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_ != NULL) {
+#line 10545 "VideoSupport.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = added;
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _object_it = _tmp2_;
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ while (TRUE) {
+#line 10558 "VideoSupport.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ Video* video = NULL;
+ DataObject* _tmp7_ = NULL;
+ Video* _tmp8_ = NULL;
+ GeeMultiMap* _tmp9_ = NULL;
+ Video* _tmp10_ = NULL;
+ guint64 _tmp11_ = 0ULL;
+ Video* _tmp12_ = NULL;
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _object_it;
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp4_) {
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 10579 "VideoSupport.c"
+ }
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _object_it;
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ object = (DataObject*) _tmp6_;
+#line 1162 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = object;
+#line 1162 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_VIDEO, Video));
+#line 1162 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = _tmp8_;
+#line 1164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = self->priv->filesize_to_video;
+#line 1164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = video;
+#line 1164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = media_source_get_master_filesize (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = video;
+#line 1164 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ gee_multi_map_set (_tmp9_, &_tmp11_, _tmp12_);
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (object);
+#line 10607 "VideoSupport.c"
+ }
+#line 1161 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_object_it);
+#line 10611 "VideoSupport.c"
+ }
+ }
+#line 1168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = removed;
+#line 1168 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp13_ != NULL) {
+#line 10618 "VideoSupport.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = removed;
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = gee_iterable_iterator (_tmp14_);
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _object_it = _tmp15_;
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ while (TRUE) {
+#line 10631 "VideoSupport.c"
+ GeeIterator* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ Video* video = NULL;
+ DataObject* _tmp20_ = NULL;
+ Video* _tmp21_ = NULL;
+ GeeMultiMap* _tmp22_ = NULL;
+ Video* _tmp23_ = NULL;
+ guint64 _tmp24_ = 0ULL;
+ Video* _tmp25_ = NULL;
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = _object_it;
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = gee_iterator_next (_tmp16_);
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp17_) {
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 10652 "VideoSupport.c"
+ }
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp18_ = _object_it;
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ object = (DataObject*) _tmp19_;
+#line 1170 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp20_ = object;
+#line 1170 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp21_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_VIDEO, Video));
+#line 1170 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = _tmp21_;
+#line 1172 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp22_ = self->priv->filesize_to_video;
+#line 1172 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp23_ = video;
+#line 1172 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp24_ = media_source_get_master_filesize (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1172 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp25_ = video;
+#line 1172 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ gee_multi_map_remove (_tmp22_, &_tmp24_, _tmp25_);
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (object);
+#line 10680 "VideoSupport.c"
+ }
+#line 1169 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_object_it);
+#line 10684 "VideoSupport.c"
+ }
+ }
+#line 1176 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp26_ = added;
+#line 1176 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp27_ = removed;
+#line 1176 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ DATA_COLLECTION_CLASS (video_source_collection_parent_class)->notify_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp26_, _tmp27_);
+#line 10693 "VideoSupport.c"
+}
+
+
+void video_source_collection_get_basename_filesize_duplicate (VideoSourceCollection* self, const gchar* basename, guint64 filesize, VideoID* result) {
+ VideoID _tmp19_ = {0};
+#line 1179 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (IS_VIDEO_SOURCE_COLLECTION (self));
+#line 1179 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_if_fail (basename != NULL);
+#line 10703 "VideoSupport.c"
+ {
+ GeeIterator* _video_it = NULL;
+ GeeMultiMap* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->filesize_to_video;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = filesize;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = gee_multi_map_get (_tmp0_, &_tmp1_);
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = _tmp2_;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _video_it = _tmp5_;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ while (TRUE) {
+#line 10730 "VideoSupport.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Video* video = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Video* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gboolean _tmp16_ = FALSE;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp6_ = _video_it;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (!_tmp7_) {
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ break;
+#line 10751 "VideoSupport.c"
+ }
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp8_ = _video_it;
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video = (Video*) _tmp9_;
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp10_ = video;
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp11_ = media_source_get_master_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp12_ = _tmp11_;
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp13_ = g_file_get_basename (_tmp12_);
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp14_ = basename;
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp15_ = utf8_ci_compare (_tmp13_, _tmp14_);
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp16_ = _tmp15_ == 0;
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1181 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp16_) {
+#line 10777 "VideoSupport.c"
+ Video* _tmp17_ = NULL;
+ VideoID _tmp18_ = {0};
+#line 1182 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp17_ = video;
+#line 1182 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_get_video_id (_tmp17_, &_tmp18_);
+#line 1182 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result = _tmp18_;
+#line 1182 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 1182 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_video_it);
+#line 1182 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 10792 "VideoSupport.c"
+ }
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (video);
+#line 10796 "VideoSupport.c"
+ }
+#line 1180 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (_video_it);
+#line 10800 "VideoSupport.c"
+ }
+#line 1185 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_id_init (&_tmp19_, VIDEO_ID_INVALID);
+#line 1185 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ *result = _tmp19_;
+#line 1185 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return;
+#line 10808 "VideoSupport.c"
+}
+
+
+gboolean video_source_collection_has_basename_filesize_duplicate (VideoSourceCollection* self, const gchar* basename, guint64 filesize) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ VideoID _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+#line 1189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (IS_VIDEO_SOURCE_COLLECTION (self), FALSE);
+#line 1189 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_return_val_if_fail (basename != NULL, FALSE);
+#line 1190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = basename;
+#line 1190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = filesize;
+#line 1190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_source_collection_get_basename_filesize_duplicate (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 1190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp3_ = video_id_is_valid (&_tmp2_);
+#line 1190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp3_;
+#line 1190 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10834 "VideoSupport.c"
+}
+
+
+static TransactionController* video_source_collection_real_get_transaction_controller (MediaSourceCollection* base) {
+ TransactionController* result;
+ VideoSourceCollection* self;
+ TransactionController* _tmp0_ = NULL;
+ TransactionController* _tmp2_ = NULL;
+#line 1033 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1034 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = self->priv->_transaction_controller;
+#line 1034 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ if (_tmp0_ == NULL) {
+#line 10849 "VideoSupport.c"
+ MediaSourceTransactionController* _tmp1_ = NULL;
+#line 1035 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp1_ = media_source_transaction_controller_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 1035 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _transaction_controller_unref0 (self->priv->_transaction_controller);
+#line 1035 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->_transaction_controller = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_TRANSACTION_CONTROLLER, TransactionController);
+#line 10857 "VideoSupport.c"
+ }
+#line 1037 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp2_ = self->priv->_transaction_controller;
+#line 1037 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ result = _tmp2_;
+#line 1037 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ return result;
+#line 10865 "VideoSupport.c"
+}
+
+
+static void video_source_collection_class_init (VideoSourceCollectionClass * klass) {
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ video_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataCollectionClass *) klass)->finalize = video_source_collection_finalize;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ g_type_class_add_private (klass, sizeof (VideoSourceCollectionPrivate));
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceCollectionClass *) klass)->create_trashcan = video_source_collection_real_create_trashcan;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceCollectionClass *) klass)->create_offline_bin = video_source_collection_real_create_offline_bin;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceCollectionClass *) klass)->create_media_monitor = video_source_collection_real_create_media_monitor;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = video_source_collection_real_holds_type_of_source;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceCollectionClass *) klass)->get_typename = video_source_collection_real_get_typename;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceCollectionClass *) klass)->is_file_recognized = video_source_collection_real_is_file_recognized;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceCollectionClass *) klass)->fetch_by_numeric_id = video_source_collection_real_fetch_by_numeric_id;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((MediaSourceCollectionClass *) klass)->get_event_source_ids = video_source_collection_real_get_event_source_ids;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ ((DataCollectionClass *) klass)->notify_contents_altered = video_source_collection_real_notify_contents_altered;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ MEDIA_SOURCE_COLLECTION_CLASS (klass)->get_transaction_controller = video_source_collection_real_get_transaction_controller;
+#line 10896 "VideoSupport.c"
+}
+
+
+static void video_source_collection_instance_init (VideoSourceCollection * self) {
+ GeeTreeMultiMap* _tmp0_ = NULL;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv = VIDEO_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 1041 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->_transaction_controller = NULL;
+#line 1042 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _tmp0_ = gee_tree_multi_map_new (G_TYPE_UINT64, (GBoxedCopyFunc) _uint64_dup, g_free, TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _uint64_compare_gcompare_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 1042 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self->priv->filesize_to_video = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 10910 "VideoSupport.c"
+}
+
+
+static void video_source_collection_finalize (DataCollection* obj) {
+ VideoSourceCollection * self;
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection);
+#line 1041 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _transaction_controller_unref0 (self->priv->_transaction_controller);
+#line 1042 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ _g_object_unref0 (self->priv->filesize_to_video);
+#line 1024 "/home/jens/Source/shotwell/src/VideoSupport.vala"
+ DATA_COLLECTION_CLASS (video_source_collection_parent_class)->finalize (obj);
+#line 10924 "VideoSupport.c"
+}
+
+
+GType video_source_collection_get_type (void) {
+ static volatile gsize video_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&video_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoSourceCollection), 0, (GInstanceInitFunc) video_source_collection_instance_init, NULL };
+ GType video_source_collection_type_id;
+ video_source_collection_type_id = g_type_register_static (TYPE_MEDIA_SOURCE_COLLECTION, "VideoSourceCollection", &g_define_type_info, 0);
+ g_once_init_leave (&video_source_collection_type_id__volatile, video_source_collection_type_id);
+ }
+ return video_source_collection_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/camera/Branch.c b/src/camera/Branch.c
new file mode 100644
index 0000000..7f2836e
--- /dev/null
+++ b/src/camera/Branch.c
@@ -0,0 +1,1222 @@
+/* Branch.c generated by valac 0.32.1, the Vala compiler
+ * generated from Branch.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <gdk/gdk.h>
+#include <gphoto2/gphoto2-camera.h>
+#include <gphoto.h>
+
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define CAMERA_TYPE_BRANCH (camera_branch_get_type ())
+#define CAMERA_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAMERA_TYPE_BRANCH, CameraBranch))
+#define CAMERA_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CAMERA_TYPE_BRANCH, CameraBranchClass))
+#define CAMERA_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAMERA_TYPE_BRANCH))
+#define CAMERA_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CAMERA_TYPE_BRANCH))
+#define CAMERA_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CAMERA_TYPE_BRANCH, CameraBranchClass))
+
+typedef struct _CameraBranch CameraBranch;
+typedef struct _CameraBranchClass CameraBranchClass;
+typedef struct _CameraBranchPrivate CameraBranchPrivate;
+
+#define TYPE_DISCOVERED_CAMERA (discovered_camera_get_type ())
+#define DISCOVERED_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DISCOVERED_CAMERA, DiscoveredCamera))
+#define DISCOVERED_CAMERA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DISCOVERED_CAMERA, DiscoveredCameraClass))
+#define IS_DISCOVERED_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DISCOVERED_CAMERA))
+#define IS_DISCOVERED_CAMERA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DISCOVERED_CAMERA))
+#define DISCOVERED_CAMERA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DISCOVERED_CAMERA, DiscoveredCameraClass))
+
+typedef struct _DiscoveredCamera DiscoveredCamera;
+typedef struct _DiscoveredCameraClass DiscoveredCameraClass;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+
+#define CAMERA_TYPE_SIDEBAR_ENTRY (camera_sidebar_entry_get_type ())
+#define CAMERA_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntry))
+#define CAMERA_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntryClass))
+#define CAMERA_IS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAMERA_TYPE_SIDEBAR_ENTRY))
+#define CAMERA_IS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CAMERA_TYPE_SIDEBAR_ENTRY))
+#define CAMERA_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntryClass))
+
+typedef struct _CameraSidebarEntry CameraSidebarEntry;
+typedef struct _CameraSidebarEntryClass CameraSidebarEntryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+
+#define CAMERA_TYPE_HEADER (camera_header_get_type ())
+#define CAMERA_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAMERA_TYPE_HEADER, CameraHeader))
+#define CAMERA_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CAMERA_TYPE_HEADER, CameraHeaderClass))
+#define CAMERA_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAMERA_TYPE_HEADER))
+#define CAMERA_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CAMERA_TYPE_HEADER))
+#define CAMERA_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CAMERA_TYPE_HEADER, CameraHeaderClass))
+
+typedef struct _CameraHeader CameraHeader;
+typedef struct _CameraHeaderClass CameraHeaderClass;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+
+#define TYPE_CAMERA_TABLE (camera_table_get_type ())
+#define CAMERA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CAMERA_TABLE, CameraTable))
+#define CAMERA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CAMERA_TABLE, CameraTableClass))
+#define IS_CAMERA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CAMERA_TABLE))
+#define IS_CAMERA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CAMERA_TABLE))
+#define CAMERA_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CAMERA_TABLE, CameraTableClass))
+
+typedef struct _CameraTable CameraTable;
+typedef struct _CameraTableClass CameraTableClass;
+#define _camera_table_unref0(var) ((var == NULL) ? NULL : (var = (camera_table_unref (var), NULL)))
+#define _discovered_camera_unref0(var) ((var == NULL) ? NULL : (var = (discovered_camera_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+typedef struct _SidebarGroupingPrivate SidebarGroupingPrivate;
+
+#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
+#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
+#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
+#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))
+
+typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
+typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
+typedef struct _SidebarHeaderPrivate SidebarHeaderPrivate;
+typedef struct _CameraHeaderPrivate CameraHeaderPrivate;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+typedef struct _CameraSidebarEntryPrivate CameraSidebarEntryPrivate;
+typedef struct _DiscoveredCameraPrivate DiscoveredCameraPrivate;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_IMPORT_PAGE (import_page_get_type ())
+#define IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_PAGE, ImportPage))
+#define IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_PAGE, ImportPageClass))
+#define IS_IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_PAGE))
+#define IS_IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_PAGE))
+#define IMPORT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_PAGE, ImportPageClass))
+
+typedef struct _ImportPage ImportPage;
+typedef struct _ImportPageClass ImportPageClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+struct _CameraBranch {
+ SidebarBranch parent_instance;
+ CameraBranchPrivate * priv;
+};
+
+struct _CameraBranchClass {
+ SidebarBranchClass parent_class;
+};
+
+struct _CameraBranchPrivate {
+ GeeHashMap* camera_map;
+};
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _SidebarGrouping {
+ GObject parent_instance;
+ SidebarGroupingPrivate * priv;
+};
+
+struct _SidebarGroupingClass {
+ GObjectClass parent_class;
+};
+
+struct _SidebarEmphasizableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
+};
+
+struct _SidebarHeader {
+ SidebarGrouping parent_instance;
+ SidebarHeaderPrivate * priv;
+};
+
+struct _SidebarHeaderClass {
+ SidebarGroupingClass parent_class;
+};
+
+struct _CameraHeader {
+ SidebarHeader parent_instance;
+ CameraHeaderPrivate * priv;
+};
+
+struct _CameraHeaderClass {
+ SidebarHeaderClass parent_class;
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _CameraSidebarEntry {
+ SidebarSimplePageEntry parent_instance;
+ CameraSidebarEntryPrivate * priv;
+};
+
+struct _CameraSidebarEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _CameraSidebarEntryPrivate {
+ DiscoveredCamera* camera;
+ gchar* uri;
+};
+
+struct _DiscoveredCamera {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DiscoveredCameraPrivate * priv;
+ Camera* gcamera;
+ gchar* uri;
+ gchar* display_name;
+ gchar* icon;
+};
+
+struct _DiscoveredCameraClass {
+ GTypeClass parent_class;
+ void (*finalize) (DiscoveredCamera *self);
+};
+
+
+static gpointer camera_branch_parent_class = NULL;
+extern gchar* camera_branch_cameras_icon;
+gchar* camera_branch_cameras_icon = NULL;
+static gpointer camera_header_parent_class = NULL;
+static gpointer camera_sidebar_entry_parent_class = NULL;
+
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType camera_branch_get_type (void) G_GNUC_CONST;
+gpointer discovered_camera_ref (gpointer instance);
+void discovered_camera_unref (gpointer instance);
+GParamSpec* param_spec_discovered_camera (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_discovered_camera (GValue* value, gpointer v_object);
+void value_take_discovered_camera (GValue* value, gpointer v_object);
+gpointer value_get_discovered_camera (const GValue* value);
+GType discovered_camera_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType camera_sidebar_entry_get_type (void) G_GNUC_CONST;
+#define CAMERA_BRANCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CAMERA_TYPE_BRANCH, CameraBranchPrivate))
+enum {
+ CAMERA_BRANCH_DUMMY_PROPERTY
+};
+#define RESOURCES_ICON_CAMERAS "camera-photo"
+CameraBranch* camera_branch_new (void);
+CameraBranch* camera_branch_construct (GType object_type);
+CameraHeader* camera_header_new (void);
+CameraHeader* camera_header_construct (GType object_type);
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+GType camera_header_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+static gint camera_branch_camera_comparator (SidebarEntry* a, SidebarEntry* b);
+static gint _camera_branch_camera_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+gpointer camera_table_ref (gpointer instance);
+void camera_table_unref (gpointer instance);
+GParamSpec* param_spec_camera_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_camera_table (GValue* value, gpointer v_object);
+void value_take_camera_table (GValue* value, gpointer v_object);
+gpointer value_get_camera_table (const GValue* value);
+GType camera_table_get_type (void) G_GNUC_CONST;
+CameraTable* camera_table_get_instance (void);
+GeeIterable* camera_table_get_cameras (CameraTable* self);
+static void camera_branch_add_camera (CameraBranch* self, DiscoveredCamera* camera);
+static void camera_branch_on_camera_added (CameraBranch* self, DiscoveredCamera* camera);
+static void _camera_branch_on_camera_added_camera_table_camera_added (CameraTable* _sender, DiscoveredCamera* camera, gpointer self);
+static void camera_branch_on_camera_removed (CameraBranch* self, DiscoveredCamera* camera);
+static void _camera_branch_on_camera_removed_camera_table_camera_removed (CameraTable* _sender, DiscoveredCamera* camera, gpointer self);
+void camera_branch_init (void);
+void camera_branch_terminate (void);
+gchar* sidebar_entry_get_sidebar_name (SidebarEntry* self);
+gchar* camera_sidebar_entry_get_uri (CameraSidebarEntry* self);
+CameraSidebarEntry* camera_branch_get_entry_for_camera (CameraBranch* self, DiscoveredCamera* camera);
+static void camera_branch_remove_camera (CameraBranch* self, DiscoveredCamera* camera);
+CameraSidebarEntry* camera_sidebar_entry_new (DiscoveredCamera* camera);
+CameraSidebarEntry* camera_sidebar_entry_construct (GType object_type, DiscoveredCamera* camera);
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry);
+static void camera_branch_finalize (GObject* obj);
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST;
+enum {
+ CAMERA_HEADER_DUMMY_PROPERTY
+};
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized);
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+#define CAMERA_SIDEBAR_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntryPrivate))
+enum {
+ CAMERA_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+static gchar* camera_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+static gchar* camera_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static Page* camera_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+gchar* sidebar_simple_page_entry_get_sidebar_name (SidebarSimplePageEntry* self);
+gchar* sidebar_simple_page_entry_get_sidebar_icon (SidebarSimplePageEntry* self);
+ImportPage* import_page_new (Camera* camera, const gchar* uri, const gchar* display_name, const gchar* icon);
+ImportPage* import_page_construct (GType object_type, Camera* camera, const gchar* uri, const gchar* display_name, const gchar* icon);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType import_page_get_type (void) G_GNUC_CONST;
+static void camera_sidebar_entry_finalize (GObject* obj);
+
+
+static gint _camera_branch_camera_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = camera_branch_camera_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 14 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 465 "Branch.c"
+}
+
+
+static void _camera_branch_on_camera_added_camera_table_camera_added (CameraTable* _sender, DiscoveredCamera* camera, gpointer self) {
+#line 21 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_branch_on_camera_added ((CameraBranch*) self, camera);
+#line 472 "Branch.c"
+}
+
+
+static void _camera_branch_on_camera_removed_camera_table_camera_removed (CameraTable* _sender, DiscoveredCamera* camera, gpointer self) {
+#line 22 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_branch_on_camera_removed ((CameraBranch*) self, camera);
+#line 479 "Branch.c"
+}
+
+
+CameraBranch* camera_branch_construct (GType object_type) {
+ CameraBranch * self = NULL;
+ CameraHeader* _tmp0_ = NULL;
+ CameraHeader* _tmp1_ = NULL;
+ CameraTable* _tmp13_ = NULL;
+ CameraTable* _tmp14_ = NULL;
+ CameraTable* _tmp15_ = NULL;
+ CameraTable* _tmp16_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = camera_header_new ();
+#line 14 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 14 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = (CameraBranch*) sidebar_branch_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, SIDEBAR_TYPE_ENTRY, SidebarEntry), SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY | SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD, _camera_branch_camera_comparator_gcompare_func, NULL);
+#line 14 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 499 "Branch.c"
+ {
+ GeeIterator* _camera_it = NULL;
+ CameraTable* _tmp2_ = NULL;
+ CameraTable* _tmp3_ = NULL;
+ GeeIterable* _tmp4_ = NULL;
+ GeeIterable* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = camera_table_get_instance ();
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = camera_table_get_cameras (_tmp3_);
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp6_ = gee_iterable_iterator (_tmp5_);
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp7_ = _tmp6_;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (_tmp5_);
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _camera_table_unref0 (_tmp3_);
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _camera_it = _tmp7_;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ while (TRUE) {
+#line 528 "Branch.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ DiscoveredCamera* camera = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ DiscoveredCamera* _tmp12_ = NULL;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp8_ = _camera_it;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ if (!_tmp9_) {
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ break;
+#line 543 "Branch.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp10_ = _camera_it;
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera = (DiscoveredCamera*) _tmp11_;
+#line 19 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp12_ = camera;
+#line 19 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_branch_add_camera (self, _tmp12_);
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _discovered_camera_unref0 (camera);
+#line 557 "Branch.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (_camera_it);
+#line 561 "Branch.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp13_ = camera_table_get_instance ();
+#line 21 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 21 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_signal_connect_object (_tmp14_, "camera-added", (GCallback) _camera_branch_on_camera_added_camera_table_camera_added, self, 0);
+#line 21 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _camera_table_unref0 (_tmp14_);
+#line 22 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp15_ = camera_table_get_instance ();
+#line 22 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp16_ = _tmp15_;
+#line 22 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_signal_connect_object (_tmp16_, "camera-removed", (GCallback) _camera_branch_on_camera_removed_camera_table_camera_removed, self, 0);
+#line 22 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _camera_table_unref0 (_tmp16_);
+#line 13 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return self;
+#line 581 "Branch.c"
+}
+
+
+CameraBranch* camera_branch_new (void) {
+#line 13 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return camera_branch_construct (CAMERA_TYPE_BRANCH);
+#line 588 "Branch.c"
+}
+
+
+void camera_branch_init (void) {
+}
+
+
+void camera_branch_terminate (void) {
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 39 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 603 "Branch.c"
+}
+
+
+static gint camera_branch_camera_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gint ret = 0;
+ SidebarEntry* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 31 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 31 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 32 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = a;
+#line 32 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = b;
+#line 32 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 33 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ result = 0;
+#line 33 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 635 "Branch.c"
+ }
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = a;
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = sidebar_entry_get_sidebar_name (_tmp2_);
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp5_ = b;
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp6_ = sidebar_entry_get_sidebar_name (_tmp5_);
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp7_ = _tmp6_;
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp8_ = g_utf8_collate (_tmp4_, _tmp7_);
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp9_ = _tmp8_;
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (_tmp7_);
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (_tmp4_);
+#line 36 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ ret = _tmp9_;
+#line 37 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp10_ = ret;
+#line 37 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ if (_tmp10_ == 0) {
+#line 663 "Branch.c"
+ CameraSidebarEntry* cam_a = NULL;
+ SidebarEntry* _tmp11_ = NULL;
+ CameraSidebarEntry* _tmp12_ = NULL;
+ CameraSidebarEntry* cam_b = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ CameraSidebarEntry* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ CameraSidebarEntry* _tmp16_ = NULL;
+ CameraSidebarEntry* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ CameraSidebarEntry* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+#line 39 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp11_ = a;
+#line 39 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp12_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, CAMERA_TYPE_SIDEBAR_ENTRY) ? ((CameraSidebarEntry*) _tmp11_) : NULL);
+#line 39 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ cam_a = _tmp12_;
+#line 40 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp13_ = b;
+#line 40 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, CAMERA_TYPE_SIDEBAR_ENTRY) ? ((CameraSidebarEntry*) _tmp13_) : NULL);
+#line 40 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ cam_b = _tmp14_;
+#line 41 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp16_ = cam_a;
+#line 41 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ if (_tmp16_ != NULL) {
+#line 695 "Branch.c"
+ CameraSidebarEntry* _tmp17_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp17_ = cam_b;
+#line 41 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp15_ = _tmp17_ != NULL;
+#line 701 "Branch.c"
+ } else {
+#line 41 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp15_ = FALSE;
+#line 705 "Branch.c"
+ }
+#line 41 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _vala_assert (_tmp15_, "cam_a != null && cam_b != null");
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp18_ = cam_a;
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp19_ = camera_sidebar_entry_get_uri (_tmp18_);
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp20_ = _tmp19_;
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp21_ = cam_b;
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp22_ = camera_sidebar_entry_get_uri (_tmp21_);
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp23_ = _tmp22_;
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp24_ = g_utf8_collate (_tmp20_, _tmp23_);
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ ret = _tmp24_;
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (_tmp23_);
+#line 42 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (_tmp20_);
+#line 37 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (cam_b);
+#line 37 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (cam_a);
+#line 733 "Branch.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ result = ret;
+#line 45 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 739 "Branch.c"
+}
+
+
+CameraSidebarEntry* camera_branch_get_entry_for_camera (CameraBranch* self, DiscoveredCamera* camera) {
+ CameraSidebarEntry* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ DiscoveredCamera* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_val_if_fail (CAMERA_IS_BRANCH (self), NULL);
+#line 48 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_val_if_fail (IS_DISCOVERED_CAMERA (camera), NULL);
+#line 49 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = self->priv->camera_map;
+#line 49 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = camera;
+#line 49 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 49 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ result = (CameraSidebarEntry*) _tmp2_;
+#line 49 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 762 "Branch.c"
+}
+
+
+static void camera_branch_on_camera_added (CameraBranch* self, DiscoveredCamera* camera) {
+ DiscoveredCamera* _tmp0_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (CAMERA_IS_BRANCH (self));
+#line 52 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (IS_DISCOVERED_CAMERA (camera));
+#line 53 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = camera;
+#line 53 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_branch_add_camera (self, _tmp0_);
+#line 776 "Branch.c"
+}
+
+
+static void camera_branch_on_camera_removed (CameraBranch* self, DiscoveredCamera* camera) {
+ DiscoveredCamera* _tmp0_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (CAMERA_IS_BRANCH (self));
+#line 56 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (IS_DISCOVERED_CAMERA (camera));
+#line 57 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = camera;
+#line 57 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_branch_remove_camera (self, _tmp0_);
+#line 790 "Branch.c"
+}
+
+
+static void camera_branch_add_camera (CameraBranch* self, DiscoveredCamera* camera) {
+ GeeHashMap* _tmp0_ = NULL;
+ DiscoveredCamera* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ CameraSidebarEntry* entry = NULL;
+ DiscoveredCamera* _tmp3_ = NULL;
+ CameraSidebarEntry* _tmp4_ = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ DiscoveredCamera* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ SidebarEntry* _tmp8_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (CAMERA_IS_BRANCH (self));
+#line 60 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (IS_DISCOVERED_CAMERA (camera));
+#line 61 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = self->priv->camera_map;
+#line 61 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = camera;
+#line 61 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 61 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _vala_assert (!_tmp2_, "!camera_map.has_key(camera)");
+#line 63 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = camera;
+#line 63 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = camera_sidebar_entry_new (_tmp3_);
+#line 63 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ entry = _tmp4_;
+#line 64 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp5_ = self->priv->camera_map;
+#line 64 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp6_ = camera;
+#line 64 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp6_, entry);
+#line 67 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp7_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 67 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 67 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp8_, G_TYPE_CHECK_INSTANCE_CAST (entry, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 67 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (_tmp8_);
+#line 60 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (entry);
+#line 839 "Branch.c"
+}
+
+
+static void camera_branch_remove_camera (CameraBranch* self, DiscoveredCamera* camera) {
+ GeeHashMap* _tmp0_ = NULL;
+ DiscoveredCamera* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ CameraSidebarEntry* entry = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ DiscoveredCamera* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp6_ = NULL;
+ DiscoveredCamera* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 70 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (CAMERA_IS_BRANCH (self));
+#line 70 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_if_fail (IS_DISCOVERED_CAMERA (camera));
+#line 71 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = self->priv->camera_map;
+#line 71 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = camera;
+#line 71 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 71 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _vala_assert (_tmp2_, "camera_map.has_key(camera)");
+#line 73 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = self->priv->camera_map;
+#line 73 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = camera;
+#line 73 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 73 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ entry = (CameraSidebarEntry*) _tmp5_;
+#line 74 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _vala_assert (entry != NULL, "entry != null");
+#line 76 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp6_ = self->priv->camera_map;
+#line 76 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp7_ = camera;
+#line 76 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp8_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_, NULL);
+#line 76 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ removed = _tmp8_;
+#line 77 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _vala_assert (removed, "removed");
+#line 79 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (entry, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 70 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (entry);
+#line 891 "Branch.c"
+}
+
+
+static void camera_branch_class_init (CameraBranchClass * klass) {
+ gchar* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_branch_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_type_class_add_private (klass, sizeof (CameraBranchPrivate));
+#line 7 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = camera_branch_finalize;
+#line 8 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_CAMERAS);
+#line 8 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_branch_cameras_icon = _tmp0_;
+#line 907 "Branch.c"
+}
+
+
+static void camera_branch_instance_init (CameraBranch * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self->priv = CAMERA_BRANCH_GET_PRIVATE (self);
+#line 10 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_DISCOVERED_CAMERA, (GBoxedCopyFunc) discovered_camera_ref, discovered_camera_unref, CAMERA_TYPE_SIDEBAR_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 10 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self->priv->camera_map = _tmp0_;
+#line 919 "Branch.c"
+}
+
+
+static void camera_branch_finalize (GObject* obj) {
+ CameraBranch * self;
+#line 7 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, CAMERA_TYPE_BRANCH, CameraBranch);
+#line 10 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_object_unref0 (self->priv->camera_map);
+#line 7 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ G_OBJECT_CLASS (camera_branch_parent_class)->finalize (obj);
+#line 931 "Branch.c"
+}
+
+
+GType camera_branch_get_type (void) {
+ static volatile gsize camera_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&camera_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CameraBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) camera_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CameraBranch), 0, (GInstanceInitFunc) camera_branch_instance_init, NULL };
+ GType camera_branch_type_id;
+ camera_branch_type_id = g_type_register_static (SIDEBAR_TYPE_BRANCH, "CameraBranch", &g_define_type_info, 0);
+ g_once_init_leave (&camera_branch_type_id__volatile, camera_branch_type_id);
+ }
+ return camera_branch_type_id__volatile;
+}
+
+
+CameraHeader* camera_header_construct (GType object_type) {
+ CameraHeader * self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = _ ("Cameras");
+#line 85 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = (CameraHeader*) sidebar_header_construct (object_type, _tmp0_, TRUE);
+#line 84 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return self;
+#line 956 "Branch.c"
+}
+
+
+CameraHeader* camera_header_new (void) {
+#line 84 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return camera_header_construct (CAMERA_TYPE_HEADER);
+#line 963 "Branch.c"
+}
+
+
+static void camera_header_class_init (CameraHeaderClass * klass) {
+#line 83 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_header_parent_class = g_type_class_peek_parent (klass);
+#line 970 "Branch.c"
+}
+
+
+static void camera_header_instance_init (CameraHeader * self) {
+}
+
+
+GType camera_header_get_type (void) {
+ static volatile gsize camera_header_type_id__volatile = 0;
+ if (g_once_init_enter (&camera_header_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CameraHeaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) camera_header_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CameraHeader), 0, (GInstanceInitFunc) camera_header_instance_init, NULL };
+ GType camera_header_type_id;
+ camera_header_type_id = g_type_register_static (SIDEBAR_TYPE_HEADER, "CameraHeader", &g_define_type_info, 0);
+ g_once_init_leave (&camera_header_type_id__volatile, camera_header_type_id);
+ }
+ return camera_header_type_id__volatile;
+}
+
+
+static gpointer _discovered_camera_ref0 (gpointer self) {
+#line 94 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return self ? discovered_camera_ref (self) : NULL;
+#line 993 "Branch.c"
+}
+
+
+CameraSidebarEntry* camera_sidebar_entry_construct (GType object_type, DiscoveredCamera* camera) {
+ CameraSidebarEntry * self = NULL;
+ DiscoveredCamera* _tmp0_ = NULL;
+ DiscoveredCamera* _tmp1_ = NULL;
+ DiscoveredCamera* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_val_if_fail (IS_DISCOVERED_CAMERA (camera), NULL);
+#line 93 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = (CameraSidebarEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 94 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = camera;
+#line 94 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = _discovered_camera_ref0 (_tmp0_);
+#line 94 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _discovered_camera_unref0 (self->priv->camera);
+#line 94 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self->priv->camera = _tmp1_;
+#line 95 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = camera;
+#line 95 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = _tmp2_->uri;
+#line 95 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 95 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (self->priv->uri);
+#line 95 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self->priv->uri = _tmp4_;
+#line 93 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return self;
+#line 1028 "Branch.c"
+}
+
+
+CameraSidebarEntry* camera_sidebar_entry_new (DiscoveredCamera* camera) {
+#line 93 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return camera_sidebar_entry_construct (CAMERA_TYPE_SIDEBAR_ENTRY, camera);
+#line 1035 "Branch.c"
+}
+
+
+static gchar* camera_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ CameraSidebarEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ DiscoveredCamera* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntry);
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = self->priv->camera;
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = _tmp1_->display_name;
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = _tmp2_;
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ if (_tmp0_ == NULL) {
+#line 1056 "Branch.c"
+ const gchar* _tmp3_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = _ ("Camera");
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = _tmp3_;
+#line 1062 "Branch.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = g_strdup (_tmp0_);
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ result = _tmp4_;
+#line 99 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 1070 "Branch.c"
+}
+
+
+static gchar* camera_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ CameraSidebarEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ DiscoveredCamera* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntry);
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = self->priv->camera;
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = _tmp1_->icon;
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ if (_tmp0_ == NULL) {
+#line 1091 "Branch.c"
+ const gchar* _tmp3_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = camera_branch_cameras_icon;
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = _tmp3_;
+#line 1097 "Branch.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = g_strdup (_tmp0_);
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ result = _tmp4_;
+#line 103 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 1105 "Branch.c"
+}
+
+
+static Page* camera_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ CameraSidebarEntry * self;
+ Page* result = NULL;
+ DiscoveredCamera* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ ImportPage* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntry);
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = self->priv->camera;
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = _tmp0_->gcamera;
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp2_ = self->priv->uri;
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp3_ = sidebar_simple_page_entry_get_sidebar_name (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry));
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp5_ = sidebar_simple_page_entry_get_sidebar_icon (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry));
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp7_ = import_page_new (_tmp1_, _tmp2_, _tmp4_, _tmp6_);
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_object_ref_sink (_tmp7_);
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_PAGE, Page);
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (_tmp6_);
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (_tmp4_);
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ result = _tmp8_;
+#line 107 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 1151 "Branch.c"
+}
+
+
+gchar* camera_sidebar_entry_get_uri (CameraSidebarEntry* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_return_val_if_fail (CAMERA_IS_SIDEBAR_ENTRY (self), NULL);
+#line 111 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp0_ = self->priv->uri;
+#line 111 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 111 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ result = _tmp1_;
+#line 111 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ return result;
+#line 1169 "Branch.c"
+}
+
+
+static void camera_sidebar_entry_class_init (CameraSidebarEntryClass * klass) {
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ camera_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ g_type_class_add_private (klass, sizeof (CameraSidebarEntryPrivate));
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = camera_sidebar_entry_real_get_sidebar_name;
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = camera_sidebar_entry_real_get_sidebar_icon;
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = camera_sidebar_entry_real_create_page;
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = camera_sidebar_entry_finalize;
+#line 1186 "Branch.c"
+}
+
+
+static void camera_sidebar_entry_instance_init (CameraSidebarEntry * self) {
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self->priv = CAMERA_SIDEBAR_ENTRY_GET_PRIVATE (self);
+#line 1193 "Branch.c"
+}
+
+
+static void camera_sidebar_entry_finalize (GObject* obj) {
+ CameraSidebarEntry * self;
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntry);
+#line 90 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _discovered_camera_unref0 (self->priv->camera);
+#line 91 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ _g_free0 (self->priv->uri);
+#line 89 "/home/jens/Source/shotwell/src/camera/Branch.vala"
+ G_OBJECT_CLASS (camera_sidebar_entry_parent_class)->finalize (obj);
+#line 1207 "Branch.c"
+}
+
+
+GType camera_sidebar_entry_get_type (void) {
+ static volatile gsize camera_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&camera_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CameraSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) camera_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CameraSidebarEntry), 0, (GInstanceInitFunc) camera_sidebar_entry_instance_init, NULL };
+ GType camera_sidebar_entry_type_id;
+ camera_sidebar_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "CameraSidebarEntry", &g_define_type_info, 0);
+ g_once_init_leave (&camera_sidebar_entry_type_id__volatile, camera_sidebar_entry_type_id);
+ }
+ return camera_sidebar_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/camera/Camera.c b/src/camera/Camera.c
new file mode 100644
index 0000000..71768fa
--- /dev/null
+++ b/src/camera/Camera.c
@@ -0,0 +1,36 @@
+/* Camera.c generated by valac 0.32.1, the Vala compiler
+ * generated from Camera.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void camera_init (GError** error);
+void camera_branch_init (void);
+void camera_terminate (void);
+void camera_branch_terminate (void);
+
+
+void camera_init (GError** error) {
+#line 10 "/home/jens/Source/shotwell/src/camera/Camera.vala"
+ camera_branch_init ();
+#line 26 "Camera.c"
+}
+
+
+void camera_terminate (void) {
+#line 14 "/home/jens/Source/shotwell/src/camera/Camera.vala"
+ camera_branch_terminate ();
+#line 33 "Camera.c"
+}
+
+
+
diff --git a/src/camera/CameraTable.c b/src/camera/CameraTable.c
new file mode 100644
index 0000000..f758943
--- /dev/null
+++ b/src/camera/CameraTable.c
@@ -0,0 +1,4549 @@
+/* CameraTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from CameraTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gphoto2/gphoto2-camera.h>
+#include <gphoto.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gudev/gudev.h>
+#include <gphoto2/gphoto2-context.h>
+#include <gphoto2/gphoto2-abilities-list.h>
+#include <gio/gio.h>
+#include <gee.h>
+#include <gtk/gtk.h>
+#include <gphoto2/gphoto2-result.h>
+#include <gphoto2/gphoto2-port-result.h>
+#include <stdio.h>
+#include <gphoto2/gphoto2-port-info-list.h>
+#include <gphoto2/gphoto2-list.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DISCOVERED_CAMERA (discovered_camera_get_type ())
+#define DISCOVERED_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DISCOVERED_CAMERA, DiscoveredCamera))
+#define DISCOVERED_CAMERA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DISCOVERED_CAMERA, DiscoveredCameraClass))
+#define IS_DISCOVERED_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DISCOVERED_CAMERA))
+#define IS_DISCOVERED_CAMERA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DISCOVERED_CAMERA))
+#define DISCOVERED_CAMERA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DISCOVERED_CAMERA, DiscoveredCameraClass))
+
+typedef struct _DiscoveredCamera DiscoveredCamera;
+typedef struct _DiscoveredCameraClass DiscoveredCameraClass;
+typedef struct _DiscoveredCameraPrivate DiscoveredCameraPrivate;
+#define _gp_camera_unref0(var) ((var == NULL) ? NULL : (var = (gp_camera_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecDiscoveredCamera ParamSpecDiscoveredCamera;
+
+#define TYPE_CAMERA_TABLE (camera_table_get_type ())
+#define CAMERA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CAMERA_TABLE, CameraTable))
+#define CAMERA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CAMERA_TABLE, CameraTableClass))
+#define IS_CAMERA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CAMERA_TABLE))
+#define IS_CAMERA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CAMERA_TABLE))
+#define CAMERA_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CAMERA_TABLE, CameraTableClass))
+
+typedef struct _CameraTable CameraTable;
+typedef struct _CameraTableClass CameraTableClass;
+typedef struct _CameraTablePrivate CameraTablePrivate;
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
+#define _gp_context_unref0(var) ((var == NULL) ? NULL : (var = (gp_context_unref (var), NULL)))
+#define _gp_abilities_list_free0(var) ((var == NULL) ? NULL : (var = (gp_abilities_list_free (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _camera_table_unref0(var) ((var == NULL) ? NULL : (var = (camera_table_unref (var), NULL)))
+#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _gp_port_info_list_free0(var) ((var == NULL) ? NULL : (var = (gp_port_info_list_free (var), NULL)))
+#define _gp_list_unref0(var) ((var == NULL) ? NULL : (var = (gp_list_unref (var), NULL)))
+#define _discovered_camera_unref0(var) ((var == NULL) ? NULL : (var = (discovered_camera_unref (var), NULL)))
+typedef struct _ParamSpecCameraTable ParamSpecCameraTable;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DiscoveredCamera {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DiscoveredCameraPrivate * priv;
+ Camera* gcamera;
+ gchar* uri;
+ gchar* display_name;
+ gchar* icon;
+};
+
+struct _DiscoveredCameraClass {
+ GTypeClass parent_class;
+ void (*finalize) (DiscoveredCamera *self);
+};
+
+struct _ParamSpecDiscoveredCamera {
+ GParamSpec parent_instance;
+};
+
+struct _CameraTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CameraTablePrivate * priv;
+};
+
+struct _CameraTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (CameraTable *self);
+};
+
+struct _CameraTablePrivate {
+ GUdevClient* client;
+ OneShotScheduler* camera_update_scheduler;
+ GPContext* null_context;
+ CameraAbilitiesList* abilities_list;
+ GVolumeMonitor* volume_monitor;
+ GeeHashMap* camera_map;
+};
+
+typedef void (*OneShotCallback) (void* user_data);
+typedef enum {
+ GPHOTO_ERROR_LIBRARY
+} GPhotoError;
+#define GPHOTO_ERROR gphoto_error_quark ()
+struct _ParamSpecCameraTable {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer discovered_camera_parent_class = NULL;
+static gpointer camera_table_parent_class = NULL;
+static CameraTable* camera_table_instance;
+static CameraTable* camera_table_instance = NULL;
+
+gpointer discovered_camera_ref (gpointer instance);
+void discovered_camera_unref (gpointer instance);
+GParamSpec* param_spec_discovered_camera (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_discovered_camera (GValue* value, gpointer v_object);
+void value_take_discovered_camera (GValue* value, gpointer v_object);
+gpointer value_get_discovered_camera (const GValue* value);
+GType discovered_camera_get_type (void) G_GNUC_CONST;
+enum {
+ DISCOVERED_CAMERA_DUMMY_PROPERTY
+};
+DiscoveredCamera* discovered_camera_new (Camera* gcamera, const gchar* uri, const gchar* display_name, const gchar* icon);
+DiscoveredCamera* discovered_camera_construct (GType object_type, Camera* gcamera, const gchar* uri, const gchar* display_name, const gchar* icon);
+static void discovered_camera_finalize (DiscoveredCamera* obj);
+gpointer camera_table_ref (gpointer instance);
+void camera_table_unref (gpointer instance);
+GParamSpec* param_spec_camera_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_camera_table (GValue* value, gpointer v_object);
+void value_take_camera_table (GValue* value, gpointer v_object);
+gpointer value_get_camera_table (const GValue* value);
+GType camera_table_get_type (void) G_GNUC_CONST;
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+#define CAMERA_TABLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CAMERA_TABLE, CameraTablePrivate))
+enum {
+ CAMERA_TABLE_DUMMY_PROPERTY
+};
+#define CAMERA_TABLE_UPDATE_DELAY_MSEC 1000
+static CameraTable* camera_table_new (void);
+static CameraTable* camera_table_construct (GType object_type);
+static void camera_table_on_update_cameras (CameraTable* self);
+static void _camera_table_on_update_cameras_one_shot_callback (gpointer self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+static void camera_table_on_udev_event (CameraTable* self, const gchar* action, GUdevDevice* device);
+static void _camera_table_on_udev_event_g_udev_client_uevent (GUdevClient* _sender, const gchar* action, GUdevDevice* device, gpointer self);
+void camera_table_on_volume_changed (CameraTable* self, GVolume* volume);
+static void _camera_table_on_volume_changed_g_volume_monitor_volume_changed (GVolumeMonitor* _sender, GVolume* volume, gpointer self);
+static void _camera_table_on_volume_changed_g_volume_monitor_volume_added (GVolumeMonitor* _sender, GVolume* volume, gpointer self);
+static gboolean camera_table_delayed_init (CameraTable* self);
+static gboolean _camera_table_delayed_init_gsource_func (gpointer self);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+GType library_window_get_type (void) G_GNUC_CONST;
+void library_window_set_page_switching_enabled (LibraryWindow* self, gboolean should_enable);
+GQuark gphoto_error_quark (void);
+static void camera_table_init_camera_table (CameraTable* self, GError** error);
+static void camera_table_update_camera_table (CameraTable* self, GError** error);
+CameraTable* camera_table_get_instance (void);
+GeeIterable* camera_table_get_cameras (CameraTable* self);
+gint camera_table_get_count (CameraTable* self);
+DiscoveredCamera* camera_table_get_for_uri (CameraTable* self, const gchar* uri);
+static void camera_table_do_op (CameraTable* self, int res, const gchar* op, GError** error);
+static gchar** camera_table_get_all_usb_cameras (CameraTable* self, int* result_length1);
+static void _vala_array_add141 (gchar*** array, int* length, int* size, gchar* value);
+static void _g_object_unref0_ (gpointer var);
+static void _g_list_free__g_object_unref0_ (GList* self);
+static gboolean camera_table_usb_esp (CameraTable* self, gint current_camera_count, gchar** usb_cameras, int usb_cameras_length1, const gchar* port, gchar** full_port);
+gchar* camera_table_get_port_uri (const gchar* port);
+gchar* camera_table_get_port_path (const gchar* port);
+static gchar* camera_table_get_name_for_uuid (CameraTable* self, const gchar* uuid);
+static gchar* camera_table_get_icon_for_uuid (CameraTable* self, const gchar* uuid);
+static void _vala_array_add142 (DiscoveredCamera*** array, int* length, int* size, DiscoveredCamera* value);
+void one_shot_scheduler_after_timeout (OneShotScheduler* self, guint msec, gboolean reschedule);
+static void g_cclosure_user_marshal_VOID__DISCOVERED_CAMERA (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void camera_table_finalize (CameraTable* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+static const gchar* CAMERA_TABLE_SUBSYSTEMS[3] = {"usb", "block", NULL};
+
+static gpointer _GPHOTO_REF_CAMERA0 (gpointer self) {
+#line 14 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return self ? GPHOTO_REF_CAMERA (self) : NULL;
+#line 245 "CameraTable.c"
+}
+
+
+DiscoveredCamera* discovered_camera_construct (GType object_type, Camera* gcamera, const gchar* uri, const gchar* display_name, const gchar* icon) {
+ DiscoveredCamera* self = NULL;
+ Camera* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (gcamera != NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (uri != NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (display_name != NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self = (DiscoveredCamera*) g_type_create_instance (object_type);
+#line 14 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = gcamera;
+#line 14 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = _GPHOTO_REF_CAMERA0 (_tmp0_);
+#line 14 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (self->gcamera);
+#line 14 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->gcamera = _tmp1_;
+#line 15 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = uri;
+#line 15 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 15 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (self->uri);
+#line 15 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->uri = _tmp3_;
+#line 16 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = display_name;
+#line 16 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 16 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (self->display_name);
+#line 16 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->display_name = _tmp5_;
+#line 17 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = icon;
+#line 17 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 17 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (self->icon);
+#line 17 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->icon = _tmp7_;
+#line 13 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return self;
+#line 301 "CameraTable.c"
+}
+
+
+DiscoveredCamera* discovered_camera_new (Camera* gcamera, const gchar* uri, const gchar* display_name, const gchar* icon) {
+#line 13 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return discovered_camera_construct (TYPE_DISCOVERED_CAMERA, gcamera, uri, display_name, icon);
+#line 308 "CameraTable.c"
+}
+
+
+static void value_discovered_camera_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 315 "CameraTable.c"
+}
+
+
+static void value_discovered_camera_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ discovered_camera_unref (value->data[0].v_pointer);
+#line 324 "CameraTable.c"
+ }
+}
+
+
+static void value_discovered_camera_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ dest_value->data[0].v_pointer = discovered_camera_ref (src_value->data[0].v_pointer);
+#line 334 "CameraTable.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 338 "CameraTable.c"
+ }
+}
+
+
+static gpointer value_discovered_camera_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return value->data[0].v_pointer;
+#line 346 "CameraTable.c"
+}
+
+
+static gchar* value_discovered_camera_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 353 "CameraTable.c"
+ DiscoveredCamera* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 360 "CameraTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 364 "CameraTable.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = discovered_camera_ref (object);
+#line 368 "CameraTable.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 372 "CameraTable.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return NULL;
+#line 376 "CameraTable.c"
+}
+
+
+static gchar* value_discovered_camera_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DiscoveredCamera** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 387 "CameraTable.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *object_p = NULL;
+#line 393 "CameraTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 397 "CameraTable.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *object_p = discovered_camera_ref (value->data[0].v_pointer);
+#line 401 "CameraTable.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return NULL;
+#line 405 "CameraTable.c"
+}
+
+
+GParamSpec* param_spec_discovered_camera (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecDiscoveredCamera* spec;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_DISCOVERED_CAMERA), NULL);
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 419 "CameraTable.c"
+}
+
+
+gpointer value_get_discovered_camera (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DISCOVERED_CAMERA), NULL);
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return value->data[0].v_pointer;
+#line 428 "CameraTable.c"
+}
+
+
+void value_set_discovered_camera (GValue* value, gpointer v_object) {
+ DiscoveredCamera* old;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DISCOVERED_CAMERA));
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DISCOVERED_CAMERA));
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ discovered_camera_ref (value->data[0].v_pointer);
+#line 448 "CameraTable.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 452 "CameraTable.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ discovered_camera_unref (old);
+#line 458 "CameraTable.c"
+ }
+}
+
+
+void value_take_discovered_camera (GValue* value, gpointer v_object) {
+ DiscoveredCamera* old;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DISCOVERED_CAMERA));
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DISCOVERED_CAMERA));
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 477 "CameraTable.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 481 "CameraTable.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ discovered_camera_unref (old);
+#line 487 "CameraTable.c"
+ }
+}
+
+
+static void discovered_camera_class_init (DiscoveredCameraClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ discovered_camera_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ ((DiscoveredCameraClass *) klass)->finalize = discovered_camera_finalize;
+#line 497 "CameraTable.c"
+}
+
+
+static void discovered_camera_instance_init (DiscoveredCamera * self) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->ref_count = 1;
+#line 504 "CameraTable.c"
+}
+
+
+static void discovered_camera_finalize (DiscoveredCamera* obj) {
+ DiscoveredCamera * self;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DISCOVERED_CAMERA, DiscoveredCamera);
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_handlers_destroy (self);
+#line 8 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (self->gcamera);
+#line 9 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (self->uri);
+#line 10 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (self->display_name);
+#line 11 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (self->icon);
+#line 522 "CameraTable.c"
+}
+
+
+GType discovered_camera_get_type (void) {
+ static volatile gsize discovered_camera_type_id__volatile = 0;
+ if (g_once_init_enter (&discovered_camera_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_discovered_camera_init, value_discovered_camera_free_value, value_discovered_camera_copy_value, value_discovered_camera_peek_pointer, "p", value_discovered_camera_collect_value, "p", value_discovered_camera_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DiscoveredCameraClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) discovered_camera_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DiscoveredCamera), 0, (GInstanceInitFunc) discovered_camera_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType discovered_camera_type_id;
+ discovered_camera_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DiscoveredCamera", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&discovered_camera_type_id__volatile, discovered_camera_type_id);
+ }
+ return discovered_camera_type_id__volatile;
+}
+
+
+gpointer discovered_camera_ref (gpointer instance) {
+ DiscoveredCamera* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return instance;
+#line 547 "CameraTable.c"
+}
+
+
+void discovered_camera_unref (gpointer instance) {
+ DiscoveredCamera* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ DISCOVERED_CAMERA_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 560 "CameraTable.c"
+ }
+}
+
+
+static void _camera_table_on_update_cameras_one_shot_callback (gpointer self) {
+#line 42 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_on_update_cameras ((CameraTable*) self);
+#line 568 "CameraTable.c"
+}
+
+
+static void _camera_table_on_udev_event_g_udev_client_uevent (GUdevClient* _sender, const gchar* action, GUdevDevice* device, gpointer self) {
+#line 46 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_on_udev_event ((CameraTable*) self, action, device);
+#line 575 "CameraTable.c"
+}
+
+
+static void _camera_table_on_volume_changed_g_volume_monitor_volume_changed (GVolumeMonitor* _sender, GVolume* volume, gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_on_volume_changed ((CameraTable*) self, volume);
+#line 582 "CameraTable.c"
+}
+
+
+static void _camera_table_on_volume_changed_g_volume_monitor_volume_added (GVolumeMonitor* _sender, GVolume* volume, gpointer self) {
+#line 49 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_on_volume_changed ((CameraTable*) self, volume);
+#line 589 "CameraTable.c"
+}
+
+
+static gboolean _camera_table_delayed_init_gsource_func (gpointer self) {
+ gboolean result;
+ result = camera_table_delayed_init ((CameraTable*) self);
+#line 54 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 598 "CameraTable.c"
+}
+
+
+static CameraTable* camera_table_construct (GType object_type) {
+ CameraTable* self = NULL;
+ OneShotScheduler* _tmp0_ = NULL;
+ GUdevClient* _tmp1_ = NULL;
+ GVolumeMonitor* _tmp2_ = NULL;
+ GVolumeMonitor* _tmp3_ = NULL;
+ GVolumeMonitor* _tmp4_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self = (CameraTable*) g_type_create_instance (object_type);
+#line 42 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = one_shot_scheduler_new ("CameraTable update scheduler", _camera_table_on_update_cameras_one_shot_callback, self);
+#line 42 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _one_shot_scheduler_unref0 (self->priv->camera_update_scheduler);
+#line 42 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv->camera_update_scheduler = _tmp0_;
+#line 46 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = self->priv->client;
+#line 46 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_connect (_tmp1_, "uevent", (GCallback) _camera_table_on_udev_event_g_udev_client_uevent, self);
+#line 47 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = g_volume_monitor_get ();
+#line 47 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (self->priv->volume_monitor);
+#line 47 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv->volume_monitor = _tmp2_;
+#line 48 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = self->priv->volume_monitor;
+#line 48 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_connect (_tmp3_, "volume-changed", (GCallback) _camera_table_on_volume_changed_g_volume_monitor_volume_changed, self);
+#line 49 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = self->priv->volume_monitor;
+#line 49 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_connect (_tmp4_, "volume-added", (GCallback) _camera_table_on_volume_changed_g_volume_monitor_volume_added, self);
+#line 54 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) 500, _camera_table_delayed_init_gsource_func, camera_table_ref (self), camera_table_unref);
+#line 41 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return self;
+#line 639 "CameraTable.c"
+}
+
+
+static CameraTable* camera_table_new (void) {
+#line 41 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return camera_table_construct (TYPE_CAMERA_TABLE);
+#line 646 "CameraTable.c"
+}
+
+
+static gboolean camera_table_delayed_init (CameraTable* self) {
+ gboolean result = FALSE;
+ AppWindow* _tmp0_ = NULL;
+ LibraryWindow* _tmp1_ = NULL;
+ AppWindow* _tmp6_ = NULL;
+ LibraryWindow* _tmp7_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), FALSE);
+#line 60 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = app_window_get_instance ();
+#line 60 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 60 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ library_window_set_page_switching_enabled (_tmp1_, FALSE);
+#line 60 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_tmp1_);
+#line 667 "CameraTable.c"
+ {
+#line 63 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_init_camera_table (self, &_inner_error_);
+#line 63 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 63 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 675 "CameraTable.c"
+ goto __catch54_gphoto_error;
+ }
+#line 63 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 63 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 63 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return FALSE;
+#line 684 "CameraTable.c"
+ }
+ }
+ goto __finally54;
+ __catch54_gphoto_error:
+ {
+ GError* err = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ err = _inner_error_;
+#line 62 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _inner_error_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = err;
+#line 65 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = _tmp2_->message;
+#line 65 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_warning ("CameraTable.vala:65: Unable to initialize camera table: %s", _tmp3_);
+#line 67 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = FALSE;
+#line 67 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_error_free0 (err);
+#line 67 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 709 "CameraTable.c"
+ }
+ __finally54:
+#line 62 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 62 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 62 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 62 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return FALSE;
+#line 720 "CameraTable.c"
+ }
+ {
+#line 71 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_update_camera_table (self, &_inner_error_);
+#line 71 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 71 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 729 "CameraTable.c"
+ goto __catch55_gphoto_error;
+ }
+#line 71 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 71 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 71 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return FALSE;
+#line 738 "CameraTable.c"
+ }
+ }
+ goto __finally55;
+ __catch55_gphoto_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ err = _inner_error_;
+#line 70 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _inner_error_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = err;
+#line 73 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = _tmp4_->message;
+#line 73 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_warning ("CameraTable.vala:73: Unable to update camera table: %s", _tmp5_);
+#line 70 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_error_free0 (err);
+#line 759 "CameraTable.c"
+ }
+ __finally55:
+#line 70 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 70 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 70 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 70 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return FALSE;
+#line 770 "CameraTable.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = app_window_get_instance ();
+#line 78 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 78 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ library_window_set_page_switching_enabled (_tmp7_, TRUE);
+#line 78 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_tmp7_);
+#line 79 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = FALSE;
+#line 79 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 784 "CameraTable.c"
+}
+
+
+static gpointer _camera_table_ref0 (gpointer self) {
+#line 86 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return self ? camera_table_ref (self) : NULL;
+#line 791 "CameraTable.c"
+}
+
+
+CameraTable* camera_table_get_instance (void) {
+ CameraTable* result = NULL;
+ CameraTable* _tmp0_ = NULL;
+ CameraTable* _tmp2_ = NULL;
+ CameraTable* _tmp3_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = camera_table_instance;
+#line 83 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp0_ == NULL) {
+#line 804 "CameraTable.c"
+ CameraTable* _tmp1_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = camera_table_new ();
+#line 84 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _camera_table_unref0 (camera_table_instance);
+#line 84 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_instance = _tmp1_;
+#line 812 "CameraTable.c"
+ }
+#line 86 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = camera_table_instance;
+#line 86 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = _camera_table_ref0 (_tmp2_);
+#line 86 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = _tmp3_;
+#line 86 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 822 "CameraTable.c"
+}
+
+
+GeeIterable* camera_table_get_cameras (CameraTable* self) {
+ GeeIterable* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), NULL);
+#line 90 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = self->priv->camera_map;
+#line 90 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 90 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = _tmp1_;
+#line 90 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable);
+#line 90 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 843 "CameraTable.c"
+}
+
+
+gint camera_table_get_count (CameraTable* self) {
+ gint result = 0;
+ GeeHashMap* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 93 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), 0);
+#line 94 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = self->priv->camera_map;
+#line 94 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 94 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = _tmp1_;
+#line 94 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = _tmp2_;
+#line 94 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 864 "CameraTable.c"
+}
+
+
+DiscoveredCamera* camera_table_get_for_uri (CameraTable* self, const gchar* uri) {
+ DiscoveredCamera* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), NULL);
+#line 97 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (uri != NULL, NULL);
+#line 98 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = self->priv->camera_map;
+#line 98 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = uri;
+#line 98 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = (DiscoveredCamera*) _tmp2_;
+#line 98 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 887 "CameraTable.c"
+}
+
+
+static void camera_table_do_op (CameraTable* self, int res, const gchar* op, GError** error) {
+ int _tmp0_ = 0;
+ GError * _inner_error_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (IS_CAMERA_TABLE (self));
+#line 101 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (op != NULL);
+#line 102 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = res;
+#line 102 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp0_ != GP_OK) {
+#line 902 "CameraTable.c"
+ int _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ int _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ GError* _tmp5_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = res;
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = op;
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = res;
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = gp_port_result_as_string (_tmp3_);
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Unable to %s: %s", (gint) _tmp1_, _tmp2_, _tmp4_);
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _inner_error_ = _tmp5_;
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 926 "CameraTable.c"
+ } else {
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 103 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 934 "CameraTable.c"
+ }
+ }
+}
+
+
+static void camera_table_init_camera_table (CameraTable* self, GError** error) {
+ CameraAbilitiesList* _tmp0_ = NULL;
+ int _tmp1_ = 0;
+ CameraAbilitiesList* _tmp2_ = NULL;
+ GPContext* _tmp3_ = NULL;
+ int _tmp4_ = 0;
+ GError * _inner_error_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (IS_CAMERA_TABLE (self));
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = gp_abilities_list_new (&_tmp0_);
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_abilities_list_free0 (self->priv->abilities_list);
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv->abilities_list = _tmp0_;
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp1_, "create camera abilities list", &_inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 965 "CameraTable.c"
+ } else {
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 973 "CameraTable.c"
+ }
+ }
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = self->priv->abilities_list;
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = self->priv->null_context;
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = gp_abilities_list_load (_tmp2_, _tmp3_);
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp4_, "load camera abilities list", &_inner_error_);
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 992 "CameraTable.c"
+ } else {
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 108 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 1000 "CameraTable.c"
+ }
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1009 "CameraTable.c"
+}
+
+
+static void _vala_array_add141 (gchar*** array, int* length, int* size, gchar* value) {
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if ((*length) == (*size)) {
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 1020 "CameraTable.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (*array)[(*length)++] = value;
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (*array)[*length] = NULL;
+#line 1026 "CameraTable.c"
+}
+
+
+static void _g_object_unref0_ (gpointer var) {
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+#line 1033 "CameraTable.c"
+}
+
+
+static void _g_list_free__g_object_unref0_ (GList* self) {
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_list_free (self);
+#line 1042 "CameraTable.c"
+}
+
+
+static gchar** camera_table_get_all_usb_cameras (CameraTable* self, int* result_length1) {
+ gchar** result = NULL;
+ gchar** cameras = NULL;
+ gchar** _tmp0_ = NULL;
+ gint cameras_length1 = 0;
+ gint _cameras_size_ = 0;
+ GList* device_list = NULL;
+ GUdevClient* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ GList* _tmp3_ = NULL;
+ gchar** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+#line 111 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), NULL);
+#line 112 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 112 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ cameras = _tmp0_;
+#line 112 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ cameras_length1 = 0;
+#line 112 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _cameras_size_ = cameras_length1;
+#line 114 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = self->priv->client;
+#line 114 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = g_udev_client_query_by_subsystem (_tmp1_, NULL);
+#line 114 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ device_list = _tmp2_;
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = device_list;
+#line 1076 "CameraTable.c"
+ {
+ GList* device_collection = NULL;
+ GList* device_it = NULL;
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ device_collection = _tmp3_;
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ for (device_it = device_collection; device_it != NULL; device_it = device_it->next) {
+#line 1084 "CameraTable.c"
+ GUdevDevice* _tmp4_ = NULL;
+ GUdevDevice* device = NULL;
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = _g_object_ref0 ((GUdevDevice*) device_it->data);
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ device = _tmp4_;
+#line 1091 "CameraTable.c"
+ {
+ gchar* device_file = NULL;
+ GUdevDevice* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ const gchar* _tmp10_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = device;
+#line 116 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = g_udev_device_get_device_file (_tmp5_);
+#line 116 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 116 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ device_file = _tmp7_;
+#line 120 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp10_ = device_file;
+#line 120 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp10_ != NULL) {
+#line 1112 "CameraTable.c"
+ GUdevDevice* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 121 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp11_ = device;
+#line 121 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp12_ = g_udev_device_has_property (_tmp11_, "ID_GPHOTO2");
+#line 121 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp9_ = _tmp12_;
+#line 1121 "CameraTable.c"
+ } else {
+#line 120 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp9_ = FALSE;
+#line 1125 "CameraTable.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp9_) {
+#line 1129 "CameraTable.c"
+ GUdevDevice* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 122 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp13_ = device;
+#line 122 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp14_ = g_udev_device_has_property (_tmp13_, "GPHOTO2_DRIVER");
+#line 122 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp8_ = _tmp14_;
+#line 1138 "CameraTable.c"
+ } else {
+#line 120 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp8_ = FALSE;
+#line 1142 "CameraTable.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp8_) {
+#line 1146 "CameraTable.c"
+ gint camera_bus = 0;
+ gint camera_device = 0;
+ const gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gchar* camera = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp15_ = device_file;
+#line 128 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp16_ = sscanf (_tmp15_, "/dev/bus/usb/%d/%d", &camera_bus, &camera_device);
+#line 128 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp16_ < 2) {
+#line 1166 "CameraTable.c"
+ const gchar* _tmp17_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp17_ = device_file;
+#line 129 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("CameraTable.vala:129: get_all_usb_cameras: Failed to scanf device file" \
+" %s", _tmp17_);
+#line 131 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (device_file);
+#line 131 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (device);
+#line 131 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ continue;
+#line 1178 "CameraTable.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp18_ = camera_bus;
+#line 133 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp19_ = camera_device;
+#line 133 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp20_ = g_strdup_printf ("usb:%.3d,%.3d", _tmp18_, _tmp19_);
+#line 133 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera = _tmp20_;
+#line 134 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp21_ = camera;
+#line 134 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:134: USB camera detected at %s", _tmp21_);
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp22_ = cameras;
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp22__length1 = cameras_length1;
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp23_ = camera;
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp24_ = g_strdup (_tmp23_);
+#line 135 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _vala_array_add141 (&cameras, &cameras_length1, &_cameras_size_, _tmp24_);
+#line 117 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (camera);
+#line 1204 "CameraTable.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (device_file);
+#line 115 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (device);
+#line 1210 "CameraTable.c"
+ }
+ }
+ }
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp25_ = cameras;
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp25__length1 = cameras_length1;
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (result_length1) {
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *result_length1 = _tmp25__length1;
+#line 1222 "CameraTable.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = _tmp25_;
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ __g_list_free__g_object_unref0_0 (device_list);
+#line 139 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1230 "CameraTable.c"
+}
+
+
+static gboolean camera_table_usb_esp (CameraTable* self, gint current_camera_count, gchar** usb_cameras, int usb_cameras_length1, const gchar* port, gchar** full_port) {
+ gchar* _vala_full_port = NULL;
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gint _tmp4_ = 0;
+ const gchar* _tmp11_ = NULL;
+ gint bus = 0;
+ gint device = 0;
+ const gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ const gchar* _tmp30_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), FALSE);
+#line 150 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (port != NULL, FALSE);
+#line 153 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = current_camera_count;
+#line 153 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _vala_assert (_tmp0_ > 0, "current_camera_count > 0");
+#line 155 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = current_camera_count;
+#line 155 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = port;
+#line 155 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:155: USB ESP: current_camera_count=%d port=%s", _tmp1_, _tmp2_);
+#line 157 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 157 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _vala_full_port = NULL;
+#line 160 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = current_camera_count;
+#line 160 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp4_ == 1) {
+#line 1272 "CameraTable.c"
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 160 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = usb_cameras;
+#line 160 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5__length1 = usb_cameras_length1;
+#line 160 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = _tmp5__length1 == 1;
+#line 1281 "CameraTable.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = FALSE;
+#line 1285 "CameraTable.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp3_) {
+#line 1289 "CameraTable.c"
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = usb_cameras;
+#line 161 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6__length1 = usb_cameras_length1;
+#line 161 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = _tmp6_[0];
+#line 161 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 161 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 161 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _vala_full_port = _tmp8_;
+#line 163 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp9_ = port;
+#line 163 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp10_ = _vala_full_port;
+#line 163 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:163: USB ESP: port=%s full_port=%s", _tmp9_, _tmp10_);
+#line 165 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = TRUE;
+#line 165 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (full_port) {
+#line 165 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *full_port = _vala_full_port;
+#line 1320 "CameraTable.c"
+ } else {
+#line 165 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 1324 "CameraTable.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1328 "CameraTable.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp11_ = port;
+#line 169 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (g_strcmp0 (_tmp11_, "usb:") == 0) {
+#line 1334 "CameraTable.c"
+ const gchar* _tmp12_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp12_ = port;
+#line 170 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:170: USB ESP: Skipping %s", _tmp12_);
+#line 172 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (full_port) {
+#line 172 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *full_port = _vala_full_port;
+#line 1346 "CameraTable.c"
+ } else {
+#line 172 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 1350 "CameraTable.c"
+ }
+#line 172 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1354 "CameraTable.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp13_ = port;
+#line 177 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp14_ = sscanf (_tmp13_, "usb:%d,%d", &bus, &device);
+#line 177 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp14_ < 2) {
+#line 1362 "CameraTable.c"
+ const gchar* _tmp15_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp15_ = port;
+#line 178 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("CameraTable.vala:178: USB ESP: Failed to scanf %s", _tmp15_);
+#line 180 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = FALSE;
+#line 180 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (full_port) {
+#line 180 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *full_port = _vala_full_port;
+#line 1374 "CameraTable.c"
+ } else {
+#line 180 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 1378 "CameraTable.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1382 "CameraTable.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp16_ = usb_cameras;
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp16__length1 = usb_cameras_length1;
+#line 1388 "CameraTable.c"
+ {
+ gchar** usb_camera_collection = NULL;
+ gint usb_camera_collection_length1 = 0;
+ gint _usb_camera_collection_size_ = 0;
+ gint usb_camera_it = 0;
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_camera_collection = _tmp16_;
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_camera_collection_length1 = _tmp16__length1;
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ for (usb_camera_it = 0; usb_camera_it < _tmp16__length1; usb_camera_it = usb_camera_it + 1) {
+#line 1400 "CameraTable.c"
+ gchar* _tmp17_ = NULL;
+ gchar* usb_camera = NULL;
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp17_ = g_strdup (usb_camera_collection[usb_camera_it]);
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_camera = _tmp17_;
+#line 1407 "CameraTable.c"
+ {
+ gint camera_bus = 0;
+ gint camera_device = 0;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gboolean _tmp21_ = FALSE;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 185 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp18_ = usb_camera;
+#line 185 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp19_ = sscanf (_tmp18_, "usb:%d,%d", &camera_bus, &camera_device);
+#line 185 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp19_ < 2) {
+#line 1422 "CameraTable.c"
+ const gchar* _tmp20_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp20_ = usb_camera;
+#line 186 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("CameraTable.vala:186: USB ESP: Failed to scanf %s", _tmp20_);
+#line 188 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (usb_camera);
+#line 188 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ continue;
+#line 1432 "CameraTable.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp22_ = bus;
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp23_ = camera_bus;
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp22_ == _tmp23_) {
+#line 1440 "CameraTable.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp24_ = device;
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp25_ = camera_device;
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp21_ = _tmp24_ == _tmp25_;
+#line 1449 "CameraTable.c"
+ } else {
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp21_ = FALSE;
+#line 1453 "CameraTable.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp21_) {
+#line 1457 "CameraTable.c"
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp26_ = port;
+#line 192 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp27_ = g_strdup (_tmp26_);
+#line 192 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 192 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _vala_full_port = _tmp27_;
+#line 194 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp28_ = port;
+#line 194 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp29_ = _vala_full_port;
+#line 194 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:194: USB ESP: port=%s full_port=%s", _tmp28_, _tmp29_);
+#line 196 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = TRUE;
+#line 196 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (usb_camera);
+#line 196 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (full_port) {
+#line 196 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *full_port = _vala_full_port;
+#line 1484 "CameraTable.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 1488 "CameraTable.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1492 "CameraTable.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (usb_camera);
+#line 1496 "CameraTable.c"
+ }
+ }
+ }
+#line 200 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp30_ = port;
+#line 200 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:200: USB ESP: No matching bus/device found for port=%" \
+"s", _tmp30_);
+#line 202 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = FALSE;
+#line 202 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (full_port) {
+#line 202 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *full_port = _vala_full_port;
+#line 1510 "CameraTable.c"
+ } else {
+#line 202 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_vala_full_port);
+#line 1514 "CameraTable.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1518 "CameraTable.c"
+}
+
+
+gchar* camera_table_get_port_uri (const gchar* port) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (port != NULL, NULL);
+#line 206 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = port;
+#line 206 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = g_strdup_printf ("gphoto2://[%s]/", _tmp0_);
+#line 206 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = _tmp1_;
+#line 206 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1536 "CameraTable.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 1559 "CameraTable.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1567 "CameraTable.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1579 "CameraTable.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 1603 "CameraTable.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 1609 "CameraTable.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 1613 "CameraTable.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 1617 "CameraTable.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 1629 "CameraTable.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 1639 "CameraTable.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 1645 "CameraTable.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 1659 "CameraTable.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 1669 "CameraTable.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 1675 "CameraTable.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 1684 "CameraTable.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1704 "CameraTable.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 1717 "CameraTable.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1748 "CameraTable.c"
+ goto __catch56_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1757 "CameraTable.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1773 "CameraTable.c"
+ goto __catch56_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1784 "CameraTable.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1798 "CameraTable.c"
+ }
+ goto __finally56;
+ __catch56_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 1812 "CameraTable.c"
+ }
+ __finally56:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1823 "CameraTable.c"
+ }
+}
+
+
+gchar* camera_table_get_port_path (const gchar* port) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 209 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (port != NULL, NULL);
+#line 211 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = port;
+#line 211 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = g_str_has_prefix (_tmp1_, "usb:");
+#line 211 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp2_) {
+#line 1841 "CameraTable.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = port;
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = string_substring (_tmp3_, (glong) 4, (glong) -1);
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = _tmp4_;
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = string_replace (_tmp5_, ",", "/");
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = _tmp6_;
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp8_ = g_strdup_printf ("/dev/bus/usb/%s", _tmp7_);
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp0_);
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = _tmp8_;
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp7_);
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp5_);
+#line 1868 "CameraTable.c"
+ } else {
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp0_);
+#line 212 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = NULL;
+#line 1874 "CameraTable.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = _tmp0_;
+#line 211 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1880 "CameraTable.c"
+}
+
+
+static gchar* camera_table_get_name_for_uuid (CameraTable* self, const gchar* uuid) {
+ gchar* result = NULL;
+ GVolumeMonitor* _tmp0_ = NULL;
+ GList* _tmp1_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), NULL);
+#line 215 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (uuid != NULL, NULL);
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = self->priv->volume_monitor;
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = g_volume_monitor_get_volumes (_tmp0_);
+#line 1896 "CameraTable.c"
+ {
+ GList* volume_collection = NULL;
+ GList* volume_it = NULL;
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ volume_collection = _tmp1_;
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ for (volume_it = volume_collection; volume_it != NULL; volume_it = volume_it->next) {
+#line 1904 "CameraTable.c"
+ GVolume* _tmp2_ = NULL;
+ GVolume* volume = NULL;
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = _g_object_ref0 ((GVolume*) volume_it->data);
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ volume = _tmp2_;
+#line 1911 "CameraTable.c"
+ {
+ GVolume* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 217 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = volume;
+#line 217 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = g_volume_get_identifier (_tmp3_, G_VOLUME_IDENTIFIER_KIND_UUID);
+#line 217 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = _tmp4_;
+#line 217 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = uuid;
+#line 217 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = g_strcmp0 (_tmp5_, _tmp6_) == 0;
+#line 217 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp5_);
+#line 217 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp7_) {
+#line 1932 "CameraTable.c"
+ GVolume* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp8_ = volume;
+#line 218 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp9_ = g_volume_get_name (_tmp8_);
+#line 218 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = _tmp9_;
+#line 218 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (volume);
+#line 218 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ __g_list_free__g_object_unref0_0 (volume_collection);
+#line 218 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1947 "CameraTable.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (volume);
+#line 1951 "CameraTable.c"
+ }
+ }
+#line 216 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ __g_list_free__g_object_unref0_0 (volume_collection);
+#line 1956 "CameraTable.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = NULL;
+#line 221 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 1962 "CameraTable.c"
+}
+
+
+static gchar* camera_table_get_icon_for_uuid (CameraTable* self, const gchar* uuid) {
+ gchar* result = NULL;
+ GVolumeMonitor* _tmp0_ = NULL;
+ GList* _tmp1_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (IS_CAMERA_TABLE (self), NULL);
+#line 224 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (uuid != NULL, NULL);
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = self->priv->volume_monitor;
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = g_volume_monitor_get_volumes (_tmp0_);
+#line 1978 "CameraTable.c"
+ {
+ GList* volume_collection = NULL;
+ GList* volume_it = NULL;
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ volume_collection = _tmp1_;
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ for (volume_it = volume_collection; volume_it != NULL; volume_it = volume_it->next) {
+#line 1986 "CameraTable.c"
+ GVolume* _tmp2_ = NULL;
+ GVolume* volume = NULL;
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = _g_object_ref0 ((GVolume*) volume_it->data);
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ volume = _tmp2_;
+#line 1993 "CameraTable.c"
+ {
+ GVolume* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 226 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = volume;
+#line 226 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp4_ = g_volume_get_identifier (_tmp3_, G_VOLUME_IDENTIFIER_KIND_UUID);
+#line 226 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = _tmp4_;
+#line 226 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = uuid;
+#line 226 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = g_strcmp0 (_tmp5_, _tmp6_) == 0;
+#line 226 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp5_);
+#line 226 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp7_) {
+#line 2014 "CameraTable.c"
+ GVolume* _tmp8_ = NULL;
+ GIcon* _tmp9_ = NULL;
+ GIcon* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp8_ = volume;
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp9_ = g_volume_get_icon (_tmp8_);
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp10_ = _tmp9_;
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp11_ = g_icon_to_string (_tmp10_);
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp12_ = _tmp11_;
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_tmp10_);
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = _tmp12_;
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (volume);
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ __g_list_free__g_object_unref0_0 (volume_collection);
+#line 227 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 2040 "CameraTable.c"
+ }
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (volume);
+#line 2044 "CameraTable.c"
+ }
+ }
+#line 225 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ __g_list_free__g_object_unref0_0 (volume_collection);
+#line 2049 "CameraTable.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ result = NULL;
+#line 230 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return result;
+#line 2055 "CameraTable.c"
+}
+
+
+static gpointer _discovered_camera_ref0 (gpointer self) {
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return self ? discovered_camera_ref (self) : NULL;
+#line 2062 "CameraTable.c"
+}
+
+
+static void _vala_array_add142 (DiscoveredCamera*** array, int* length, int* size, DiscoveredCamera* value) {
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if ((*length) == (*size)) {
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *array = g_renew (DiscoveredCamera*, *array, (*size) + 1);
+#line 2073 "CameraTable.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (*array)[(*length)++] = value;
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (*array)[*length] = NULL;
+#line 2079 "CameraTable.c"
+}
+
+
+static void camera_table_update_camera_table (CameraTable* self, GError** error) {
+ GPPortInfoList* port_info_list = NULL;
+ GPPortInfoList* _tmp0_ = NULL;
+ int _tmp1_ = 0;
+ GPPortInfoList* _tmp2_ = NULL;
+ int _tmp3_ = 0;
+ CameraList* camera_list = NULL;
+ CameraList* _tmp4_ = NULL;
+ int _tmp5_ = 0;
+ CameraAbilitiesList* _tmp6_ = NULL;
+ GPPortInfoList* _tmp7_ = NULL;
+ CameraList* _tmp8_ = NULL;
+ GPContext* _tmp9_ = NULL;
+ int _tmp10_ = 0;
+ GeeHashMap* detected_map = NULL;
+ GeeHashMap* _tmp11_ = NULL;
+ gchar** usb_cameras = NULL;
+ gint _tmp12_ = 0;
+ gchar** _tmp13_ = NULL;
+ gint usb_cameras_length1 = 0;
+ gint _usb_cameras_size_ = 0;
+ DiscoveredCamera** missing = NULL;
+ DiscoveredCamera** _tmp47_ = NULL;
+ gint missing_length1 = 0;
+ gint _missing_size_ = 0;
+ DiscoveredCamera** _tmp80_ = NULL;
+ gint _tmp80__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (IS_CAMERA_TABLE (self));
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = gp_port_info_list_new (&_tmp0_);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ port_info_list = _tmp0_;
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp1_, "create port list", &_inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2131 "CameraTable.c"
+ } else {
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2141 "CameraTable.c"
+ }
+ }
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = port_info_list;
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = gp_port_info_list_load (_tmp2_);
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp3_, "load port list", &_inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2160 "CameraTable.c"
+ } else {
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2170 "CameraTable.c"
+ }
+ }
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp5_ = gp_list_new (&_tmp4_);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_list = _tmp4_;
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp5_, "create camera list", &_inner_error_);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2193 "CameraTable.c"
+ } else {
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 240 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2205 "CameraTable.c"
+ }
+ }
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp6_ = self->priv->abilities_list;
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp7_ = port_info_list;
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp8_ = camera_list;
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp9_ = self->priv->null_context;
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp10_ = gp_abilities_list_detect (_tmp6_, _tmp7_, _tmp8_, _tmp9_);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp10_, "detect cameras", &_inner_error_);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2232 "CameraTable.c"
+ } else {
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 241 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2244 "CameraTable.c"
+ }
+ }
+#line 243 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp11_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 243 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ detected_map = _tmp11_;
+#line 246 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp13_ = camera_table_get_all_usb_cameras (self, &_tmp12_);
+#line 246 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = _tmp13_;
+#line 246 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras_length1 = _tmp12_;
+#line 246 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _usb_cameras_size_ = usb_cameras_length1;
+#line 2259 "CameraTable.c"
+ {
+ gint ctr = 0;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ ctr = 0;
+#line 2264 "CameraTable.c"
+ {
+ gboolean _tmp14_ = FALSE;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp14_ = TRUE;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ while (TRUE) {
+#line 2271 "CameraTable.c"
+ gint _tmp16_ = 0;
+ CameraList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gchar* name = NULL;
+ CameraList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ const gchar* _tmp21_ = NULL;
+ int _tmp22_ = 0;
+ gchar* _tmp23_ = NULL;
+ gchar* port = NULL;
+ CameraList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ const gchar* _tmp26_ = NULL;
+ int _tmp27_ = 0;
+ gchar* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ CameraList* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+ GeeHashMap* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!_tmp14_) {
+#line 2299 "CameraTable.c"
+ gint _tmp15_ = 0;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp15_ = ctr;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ ctr = _tmp15_ + 1;
+#line 2305 "CameraTable.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp14_ = FALSE;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp16_ = ctr;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp17_ = camera_list;
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp18_ = gp_list_count (_tmp17_);
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!(_tmp16_ < _tmp18_)) {
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ break;
+#line 2319 "CameraTable.c"
+ }
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp19_ = camera_list;
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp20_ = ctr;
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp22_ = gp_list_get_name (_tmp19_, _tmp20_, &_tmp21_);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp23_ = g_strdup (_tmp21_);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ name = _tmp23_;
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp22_, "get detected camera name", &_inner_error_);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2353 "CameraTable.c"
+ } else {
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 251 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2371 "CameraTable.c"
+ }
+ }
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp24_ = camera_list;
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp25_ = ctr;
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp27_ = gp_list_get_value (_tmp24_, _tmp25_, &_tmp26_);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp28_ = g_strdup (_tmp26_);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ port = _tmp28_;
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp27_, "get detected camera port", &_inner_error_);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2408 "CameraTable.c"
+ } else {
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 254 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2428 "CameraTable.c"
+ }
+ }
+#line 256 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp29_ = ctr;
+#line 256 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp30_ = camera_list;
+#line 256 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp31_ = gp_list_count (_tmp30_);
+#line 256 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp32_ = name;
+#line 256 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp33_ = port;
+#line 256 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:256: Detected %d/%d %s @ %s", _tmp29_ + 1, _tmp31_, _tmp32_, _tmp33_);
+#line 259 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp34_ = port;
+#line 259 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp35_ = g_str_has_prefix (_tmp34_, "usb:");
+#line 259 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp35_) {
+#line 2449 "CameraTable.c"
+ gchar* full_port = NULL;
+ CameraList* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gchar** _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+ const gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp36_ = camera_list;
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp37_ = gp_list_count (_tmp36_);
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp38_ = usb_cameras;
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp38__length1 = usb_cameras_length1;
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp39_ = port;
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp41_ = camera_table_usb_esp (self, _tmp37_, _tmp38_, _tmp38__length1, _tmp39_, &_tmp40_);
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (full_port);
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ full_port = _tmp40_;
+#line 261 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!_tmp41_) {
+#line 262 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (full_port);
+#line 262 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 262 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 262 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ continue;
+#line 2486 "CameraTable.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp42_ = full_port;
+#line 264 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp43_ = g_strdup (_tmp42_);
+#line 264 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 264 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ port = _tmp43_;
+#line 259 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (full_port);
+#line 2498 "CameraTable.c"
+ }
+#line 267 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp44_ = detected_map;
+#line 267 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp45_ = port;
+#line 267 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp46_ = name;
+#line 267 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp45_, _tmp46_);
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 249 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 2512 "CameraTable.c"
+ }
+ }
+ }
+#line 271 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp47_ = g_new0 (DiscoveredCamera*, 0 + 1);
+#line 271 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = _tmp47_;
+#line 271 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing_length1 = 0;
+#line 271 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _missing_size_ = missing_length1;
+#line 2524 "CameraTable.c"
+ {
+ GeeIterator* _camera_it = NULL;
+ GeeHashMap* _tmp48_ = NULL;
+ GeeCollection* _tmp49_ = NULL;
+ GeeCollection* _tmp50_ = NULL;
+ GeeCollection* _tmp51_ = NULL;
+ GeeIterator* _tmp52_ = NULL;
+ GeeIterator* _tmp53_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp48_ = self->priv->camera_map;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp49_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_MAP, GeeMap));
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp50_ = _tmp49_;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp51_ = _tmp50_;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp52_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp53_ = _tmp52_;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_tmp51_);
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _camera_it = _tmp53_;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ while (TRUE) {
+#line 2551 "CameraTable.c"
+ GeeIterator* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+ DiscoveredCamera* camera = NULL;
+ GeeIterator* _tmp56_ = NULL;
+ gpointer _tmp57_ = NULL;
+ GPPortInfo port_info = {0};
+ gchar* tmp_path = NULL;
+ DiscoveredCamera* _tmp58_ = NULL;
+ Camera* _tmp59_ = NULL;
+ GPPortInfo _tmp60_ = {0};
+ int _tmp61_ = 0;
+ const gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ CameraAbilities abilities = {0};
+ DiscoveredCamera* _tmp64_ = NULL;
+ Camera* _tmp65_ = NULL;
+ CameraAbilities _tmp66_ = {0};
+ int _tmp67_ = 0;
+ GeeHashMap* _tmp68_ = NULL;
+ const gchar* _tmp69_ = NULL;
+ gboolean _tmp70_ = FALSE;
+ CameraAbilities _tmp74_ = {0};
+ const gchar* _tmp75_ = NULL;
+ const gchar* _tmp76_ = NULL;
+ DiscoveredCamera** _tmp77_ = NULL;
+ gint _tmp77__length1 = 0;
+ DiscoveredCamera* _tmp78_ = NULL;
+ DiscoveredCamera* _tmp79_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp54_ = _camera_it;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp55_ = gee_iterator_next (_tmp54_);
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!_tmp55_) {
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ break;
+#line 2588 "CameraTable.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp56_ = _camera_it;
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp57_ = gee_iterator_get (_tmp56_);
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera = (DiscoveredCamera*) _tmp57_;
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp58_ = camera;
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp59_ = _tmp58_->gcamera;
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp61_ = gp_camera_get_port_info (_tmp59_, &_tmp60_);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ port_info = _tmp60_;
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp61_, "retrieve missing camera port information", &_inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_camera_it);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2634 "CameraTable.c"
+ } else {
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_camera_it);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2660 "CameraTable.c"
+ }
+ }
+#line 279 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ gp_port_info_get_path (port_info, &_tmp62_);
+#line 279 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 279 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp63_ = g_strdup (_tmp62_);
+#line 279 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ tmp_path = _tmp63_;
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp64_ = camera;
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp65_ = _tmp64_->gcamera;
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp67_ = gp_camera_get_abilities (_tmp65_, &_tmp66_);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ abilities = _tmp66_;
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp67_, "retrieve camera abilities", &_inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_camera_it);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2711 "CameraTable.c"
+ } else {
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_camera_it);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2739 "CameraTable.c"
+ }
+ }
+#line 284 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp68_ = detected_map;
+#line 284 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp69_ = tmp_path;
+#line 284 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp70_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp69_);
+#line 284 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp70_) {
+#line 2750 "CameraTable.c"
+ CameraAbilities _tmp71_ = {0};
+ const gchar* _tmp72_ = NULL;
+ const gchar* _tmp73_ = NULL;
+#line 285 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp71_ = abilities;
+#line 285 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp72_ = _tmp71_.model;
+#line 285 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp73_ = tmp_path;
+#line 285 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:285: Found camera for %s @ %s in detected map", _tmp72_, _tmp73_);
+#line 287 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 287 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 287 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 287 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 287 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ continue;
+#line 2772 "CameraTable.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp74_ = abilities;
+#line 290 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp75_ = _tmp74_.model;
+#line 290 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp76_ = tmp_path;
+#line 290 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:290: %s @ %s missing", _tmp75_, _tmp76_);
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp77_ = missing;
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp77__length1 = missing_length1;
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp78_ = camera;
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp79_ = _discovered_camera_ref0 (_tmp78_);
+#line 292 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _vala_array_add142 (&missing, &missing_length1, &_missing_size_, _tmp79_);
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 2800 "CameraTable.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_camera_it);
+#line 2804 "CameraTable.c"
+ }
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp80_ = missing;
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp80__length1 = missing_length1;
+#line 2810 "CameraTable.c"
+ {
+ DiscoveredCamera** camera_collection = NULL;
+ gint camera_collection_length1 = 0;
+ gint _camera_collection_size_ = 0;
+ gint camera_it = 0;
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_collection = _tmp80_;
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_collection_length1 = _tmp80__length1;
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ for (camera_it = 0; camera_it < _tmp80__length1; camera_it = camera_it + 1) {
+#line 2822 "CameraTable.c"
+ DiscoveredCamera* _tmp81_ = NULL;
+ DiscoveredCamera* camera = NULL;
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp81_ = _discovered_camera_ref0 (camera_collection[camera_it]);
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera = _tmp81_;
+#line 2829 "CameraTable.c"
+ {
+ GPPortInfo port_info = {0};
+ gchar* tmp_path = NULL;
+ DiscoveredCamera* _tmp82_ = NULL;
+ Camera* _tmp83_ = NULL;
+ GPPortInfo _tmp84_ = {0};
+ int _tmp85_ = 0;
+ const gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ CameraAbilities abilities = {0};
+ DiscoveredCamera* _tmp88_ = NULL;
+ Camera* _tmp89_ = NULL;
+ CameraAbilities _tmp90_ = {0};
+ int _tmp91_ = 0;
+ CameraAbilities _tmp92_ = {0};
+ const gchar* _tmp93_ = NULL;
+ const gchar* _tmp94_ = NULL;
+ GeeHashMap* _tmp95_ = NULL;
+ const gchar* _tmp96_ = NULL;
+ gchar* _tmp97_ = NULL;
+ gchar* _tmp98_ = NULL;
+ DiscoveredCamera* _tmp99_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp82_ = camera;
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp83_ = _tmp82_->gcamera;
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp85_ = gp_camera_get_port_info (_tmp83_, &_tmp84_);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ port_info = _tmp84_;
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp85_, "retrieve missing camera port information", &_inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2888 "CameraTable.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2912 "CameraTable.c"
+ }
+ }
+#line 302 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ gp_port_info_get_path (port_info, &_tmp86_);
+#line 302 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 302 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp87_ = g_strdup (_tmp86_);
+#line 302 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ tmp_path = _tmp87_;
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp88_ = camera;
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp89_ = _tmp88_->gcamera;
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp91_ = gp_camera_get_abilities (_tmp89_, &_tmp90_);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ abilities = _tmp90_;
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp91_, "retrieve missing camera abilities", &_inner_error_);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2961 "CameraTable.c"
+ } else {
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 305 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 2987 "CameraTable.c"
+ }
+ }
+#line 307 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp92_ = abilities;
+#line 307 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp93_ = _tmp92_.model;
+#line 307 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp94_ = tmp_path;
+#line 307 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:307: Removing from camera table: %s @ %s", _tmp93_, _tmp94_);
+#line 309 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp95_ = self->priv->camera_map;
+#line 309 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp96_ = tmp_path;
+#line 309 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp97_ = camera_table_get_port_uri (_tmp96_);
+#line 309 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp98_ = _tmp97_;
+#line 309 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp95_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp98_, NULL);
+#line 309 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp98_);
+#line 311 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp99_ = camera;
+#line 311 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_emit_by_name (self, "camera-removed", _tmp99_);
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (abilities);
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 296 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 3022 "CameraTable.c"
+ }
+ }
+ }
+ {
+ GeeIterator* _port_it = NULL;
+ GeeHashMap* _tmp100_ = NULL;
+ GeeSet* _tmp101_ = NULL;
+ GeeSet* _tmp102_ = NULL;
+ GeeSet* _tmp103_ = NULL;
+ GeeIterator* _tmp104_ = NULL;
+ GeeIterator* _tmp105_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp100_ = detected_map;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp101_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, GEE_TYPE_MAP, GeeMap));
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp102_ = _tmp101_;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp103_ = _tmp102_;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp104_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp103_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp105_ = _tmp104_;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_tmp103_);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _port_it = _tmp105_;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ while (TRUE) {
+#line 3052 "CameraTable.c"
+ GeeIterator* _tmp106_ = NULL;
+ gboolean _tmp107_ = FALSE;
+ gchar* port = NULL;
+ GeeIterator* _tmp108_ = NULL;
+ gpointer _tmp109_ = NULL;
+ gchar* name = NULL;
+ GeeHashMap* _tmp110_ = NULL;
+ const gchar* _tmp111_ = NULL;
+ gpointer _tmp112_ = NULL;
+ gchar* display_name = NULL;
+ gchar* icon = NULL;
+ gchar* uri = NULL;
+ const gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ GeeHashMap* _tmp115_ = NULL;
+ const gchar* _tmp116_ = NULL;
+ gboolean _tmp117_ = FALSE;
+ gchar* path = NULL;
+ const gchar* _tmp120_ = NULL;
+ gchar* _tmp121_ = NULL;
+ const gchar* _tmp122_ = NULL;
+ const gchar* _tmp142_ = NULL;
+ gint index = 0;
+ GPPortInfoList* _tmp145_ = NULL;
+ const gchar* _tmp146_ = NULL;
+ gint _tmp147_ = 0;
+ gint _tmp148_ = 0;
+ GPPortInfo port_info = {0};
+ gchar* tmp_path = NULL;
+ GPPortInfoList* _tmp153_ = NULL;
+ gint _tmp154_ = 0;
+ GPPortInfo _tmp155_ = {0};
+ int _tmp156_ = 0;
+ const gchar* _tmp157_ = NULL;
+ gchar* _tmp158_ = NULL;
+ gchar* _tmp159_ = NULL;
+ const gchar* _tmp160_ = NULL;
+ gchar* _tmp161_ = NULL;
+ const gchar* _tmp162_ = NULL;
+ const gchar* _tmp163_ = NULL;
+ CameraAbilitiesList* _tmp164_ = NULL;
+ const gchar* _tmp165_ = NULL;
+ gint _tmp166_ = 0;
+ gint _tmp167_ = 0;
+ CameraAbilities camera_abilities = {0};
+ CameraAbilitiesList* _tmp172_ = NULL;
+ gint _tmp173_ = 0;
+ CameraAbilities _tmp174_ = {0};
+ int _tmp175_ = 0;
+ const gchar* _tmp176_ = NULL;
+ gchar* _tmp177_ = NULL;
+ gchar* _tmp178_ = NULL;
+ Camera* gcamera = NULL;
+ Camera* _tmp179_ = NULL;
+ int _tmp180_ = 0;
+ const gchar* _tmp181_ = NULL;
+ gchar* _tmp182_ = NULL;
+ gchar* _tmp183_ = NULL;
+ Camera* _tmp184_ = NULL;
+ CameraAbilities _tmp185_ = {0};
+ int _tmp186_ = 0;
+ const gchar* _tmp187_ = NULL;
+ gchar* _tmp188_ = NULL;
+ gchar* _tmp189_ = NULL;
+ Camera* _tmp190_ = NULL;
+ GPPortInfo _tmp191_ = {0};
+ int _tmp192_ = 0;
+ const gchar* _tmp193_ = NULL;
+ const gchar* _tmp194_ = NULL;
+ gchar* _tmp195_ = NULL;
+ gchar* _tmp196_ = NULL;
+ const gchar* _tmp197_ = NULL;
+ const gchar* _tmp198_ = NULL;
+ DiscoveredCamera* camera = NULL;
+ Camera* _tmp199_ = NULL;
+ const gchar* _tmp200_ = NULL;
+ const gchar* _tmp201_ = NULL;
+ const gchar* _tmp202_ = NULL;
+ DiscoveredCamera* _tmp203_ = NULL;
+ GeeHashMap* _tmp204_ = NULL;
+ const gchar* _tmp205_ = NULL;
+ DiscoveredCamera* _tmp206_ = NULL;
+ DiscoveredCamera* _tmp207_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp106_ = _port_it;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp107_ = gee_iterator_next (_tmp106_);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!_tmp107_) {
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ break;
+#line 3144 "CameraTable.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp108_ = _port_it;
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp109_ = gee_iterator_get (_tmp108_);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ port = (gchar*) _tmp109_;
+#line 316 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp110_ = detected_map;
+#line 316 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp111_ = port;
+#line 316 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp112_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp110_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp111_);
+#line 316 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ name = (gchar*) _tmp112_;
+#line 317 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ display_name = NULL;
+#line 318 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ icon = NULL;
+#line 319 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp113_ = port;
+#line 319 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp114_ = camera_table_get_port_uri (_tmp113_);
+#line 319 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ uri = _tmp114_;
+#line 321 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp115_ = self->priv->camera_map;
+#line 321 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp116_ = uri;
+#line 321 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp117_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp115_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp116_);
+#line 321 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp117_) {
+#line 3178 "CameraTable.c"
+ const gchar* _tmp118_ = NULL;
+ const gchar* _tmp119_ = NULL;
+#line 323 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp118_ = name;
+#line 323 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp119_ = port;
+#line 323 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:323: %s @ %s already registered, skipping", _tmp118_, _tmp119_);
+#line 325 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 325 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 325 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 325 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 325 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 325 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ continue;
+#line 3199 "CameraTable.c"
+ }
+#line 329 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp120_ = port;
+#line 329 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp121_ = camera_table_get_port_path (_tmp120_);
+#line 329 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ path = _tmp121_;
+#line 330 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp122_ = path;
+#line 330 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (NULL != _tmp122_) {
+#line 3211 "CameraTable.c"
+ GUdevDevice* device = NULL;
+ GUdevClient* _tmp123_ = NULL;
+ const gchar* _tmp124_ = NULL;
+ GUdevDevice* _tmp125_ = NULL;
+ gchar* serial = NULL;
+ GUdevDevice* _tmp126_ = NULL;
+ const gchar* _tmp127_ = NULL;
+ gchar* _tmp128_ = NULL;
+ const gchar* _tmp129_ = NULL;
+ const gchar* _tmp134_ = NULL;
+ const gchar* _tmp138_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp123_ = self->priv->client;
+#line 331 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp124_ = path;
+#line 331 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp125_ = g_udev_client_query_by_device_file (_tmp123_, _tmp124_);
+#line 331 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ device = _tmp125_;
+#line 332 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp126_ = device;
+#line 332 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp127_ = g_udev_device_get_property (_tmp126_, "ID_SERIAL_SHORT");
+#line 332 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp128_ = g_strdup (_tmp127_);
+#line 332 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ serial = _tmp128_;
+#line 333 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp129_ = serial;
+#line 333 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (NULL != _tmp129_) {
+#line 3243 "CameraTable.c"
+ const gchar* _tmp130_ = NULL;
+ gchar* _tmp131_ = NULL;
+ const gchar* _tmp132_ = NULL;
+ gchar* _tmp133_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp130_ = serial;
+#line 335 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp131_ = camera_table_get_name_for_uuid (self, _tmp130_);
+#line 335 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 335 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ display_name = _tmp131_;
+#line 336 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp132_ = serial;
+#line 336 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp133_ = camera_table_get_icon_for_uuid (self, _tmp132_);
+#line 336 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 336 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ icon = _tmp133_;
+#line 3264 "CameraTable.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp134_ = display_name;
+#line 338 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (NULL == _tmp134_) {
+#line 3270 "CameraTable.c"
+ GUdevDevice* _tmp135_ = NULL;
+ const gchar* _tmp136_ = NULL;
+ gchar* _tmp137_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp135_ = device;
+#line 339 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp136_ = g_udev_device_get_sysfs_attr (_tmp135_, "product");
+#line 339 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp137_ = g_strdup (_tmp136_);
+#line 339 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 339 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ display_name = _tmp137_;
+#line 3284 "CameraTable.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp138_ = display_name;
+#line 341 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (NULL == _tmp138_) {
+#line 3290 "CameraTable.c"
+ GUdevDevice* _tmp139_ = NULL;
+ const gchar* _tmp140_ = NULL;
+ gchar* _tmp141_ = NULL;
+#line 342 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp139_ = device;
+#line 342 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp140_ = g_udev_device_get_property (_tmp139_, "ID_MODEL");
+#line 342 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp141_ = g_strdup (_tmp140_);
+#line 342 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 342 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ display_name = _tmp141_;
+#line 3304 "CameraTable.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (serial);
+#line 330 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (device);
+#line 3310 "CameraTable.c"
+ }
+#line 345 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp142_ = display_name;
+#line 345 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (NULL == _tmp142_) {
+#line 3316 "CameraTable.c"
+ const gchar* _tmp143_ = NULL;
+ gchar* _tmp144_ = NULL;
+#line 347 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp143_ = name;
+#line 347 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp144_ = g_strdup (_tmp143_);
+#line 347 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 347 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ display_name = _tmp144_;
+#line 3327 "CameraTable.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp145_ = port_info_list;
+#line 350 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp146_ = port;
+#line 350 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp147_ = gp_port_info_list_lookup_path (_tmp145_, _tmp146_);
+#line 350 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ index = _tmp147_;
+#line 351 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp148_ = index;
+#line 351 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp148_ < 0) {
+#line 3341 "CameraTable.c"
+ gint _tmp149_ = 0;
+ const gchar* _tmp150_ = NULL;
+ gchar* _tmp151_ = NULL;
+ gchar* _tmp152_ = NULL;
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp149_ = index;
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp150_ = port;
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp151_ = g_strdup_printf ("lookup port %s", _tmp150_);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp152_ = _tmp151_;
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, (int) _tmp149_, _tmp152_, &_inner_error_);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp152_);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3390 "CameraTable.c"
+ } else {
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 352 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3422 "CameraTable.c"
+ }
+ }
+ }
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp153_ = port_info_list;
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp154_ = index;
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp156_ = gp_port_info_list_get_info (_tmp153_, _tmp154_, &_tmp155_);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ port_info = _tmp155_;
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp157_ = port;
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp158_ = g_strdup_printf ("get port info for %s", _tmp157_);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp159_ = _tmp158_;
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp156_, _tmp159_, &_inner_error_);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp159_);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3482 "CameraTable.c"
+ } else {
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 357 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3518 "CameraTable.c"
+ }
+ }
+#line 358 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ gp_port_info_get_path (port_info, &_tmp160_);
+#line 358 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 358 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp161_ = g_strdup (_tmp160_);
+#line 358 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ tmp_path = _tmp161_;
+#line 361 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp162_ = port;
+#line 361 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp163_ = tmp_path;
+#line 361 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _vala_assert (g_strcmp0 (_tmp162_, _tmp163_) == 0, "port == tmp_path");
+#line 363 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp164_ = self->priv->abilities_list;
+#line 363 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp165_ = name;
+#line 363 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp166_ = gp_abilities_list_lookup_model (_tmp164_, _tmp165_);
+#line 363 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ index = _tmp166_;
+#line 364 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp167_ = index;
+#line 364 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_tmp167_ < 0) {
+#line 3547 "CameraTable.c"
+ gint _tmp168_ = 0;
+ const gchar* _tmp169_ = NULL;
+ gchar* _tmp170_ = NULL;
+ gchar* _tmp171_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp168_ = index;
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp169_ = name;
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp170_ = g_strdup_printf ("lookup camera model %s", _tmp169_);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp171_ = _tmp170_;
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, (int) _tmp168_, _tmp171_, &_inner_error_);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp171_);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3600 "CameraTable.c"
+ } else {
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 365 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3636 "CameraTable.c"
+ }
+ }
+ }
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp172_ = self->priv->abilities_list;
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp173_ = index;
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp175_ = gp_abilities_list_get_abilities (_tmp172_, _tmp173_, &_tmp174_);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_abilities = _tmp174_;
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp176_ = name;
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp177_ = g_strdup_printf ("lookup camera abilities for %s", _tmp176_);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp178_ = _tmp177_;
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp175_, _tmp178_, &_inner_error_);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp178_);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3698 "CameraTable.c"
+ } else {
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 368 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3736 "CameraTable.c"
+ }
+ }
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp180_ = gp_camera_new (&_tmp179_);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ gcamera = _tmp179_;
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp181_ = name;
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp182_ = g_strdup_printf ("create camera object for %s", _tmp181_);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp183_ = _tmp182_;
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp180_, _tmp183_, &_inner_error_);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp183_);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3795 "CameraTable.c"
+ } else {
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 372 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3835 "CameraTable.c"
+ }
+ }
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp184_ = gcamera;
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp185_ = camera_abilities;
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp186_ = gp_camera_set_abilities (_tmp184_, _tmp185_);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp187_ = name;
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp188_ = g_strdup_printf ("set camera abilities for %s", _tmp187_);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp189_ = _tmp188_;
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp186_, _tmp189_, &_inner_error_);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp189_);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3894 "CameraTable.c"
+ } else {
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 373 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3934 "CameraTable.c"
+ }
+ }
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp190_ = gcamera;
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp191_ = port_info;
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp192_ = gp_camera_set_port_info (_tmp190_, _tmp191_);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp193_ = name;
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp194_ = port;
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp195_ = g_strdup_printf ("set port info for %s on %s", _tmp193_, _tmp194_);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp196_ = _tmp195_;
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_do_op (self, _tmp192_, _tmp196_, &_inner_error_);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (_tmp196_);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 3995 "CameraTable.c"
+ } else {
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 374 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 4035 "CameraTable.c"
+ }
+ }
+#line 376 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp197_ = name;
+#line 376 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp198_ = port;
+#line 376 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:376: Adding to camera table: %s @ %s", _tmp197_, _tmp198_);
+#line 378 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp199_ = gcamera;
+#line 378 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp200_ = uri;
+#line 378 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp201_ = display_name;
+#line 378 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp202_ = icon;
+#line 378 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp203_ = discovered_camera_new (_tmp199_, _tmp200_, _tmp201_, _tmp202_);
+#line 378 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera = _tmp203_;
+#line 379 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp204_ = self->priv->camera_map;
+#line 379 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp205_ = uri;
+#line 379 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp206_ = camera;
+#line 379 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp204_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp205_, _tmp206_);
+#line 381 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp207_ = camera;
+#line 381 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_emit_by_name (self, "camera-added", _tmp207_);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _discovered_camera_unref0 (camera);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_camera_unref0 (gcamera);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (camera_abilities);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (tmp_path);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ (port_info);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (path);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (uri);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (icon);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (display_name);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (name);
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_free0 (port);
+#line 4090 "CameraTable.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (_port_it);
+#line 4094 "CameraTable.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ missing = (_vala_array_free (missing, missing_length1, (GDestroyNotify) discovered_camera_unref), NULL);
+#line 233 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ usb_cameras = (_vala_array_free (usb_cameras, usb_cameras_length1, (GDestroyNotify) g_free), NULL);
+#line 233 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (detected_map);
+#line 233 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_list_unref0 (camera_list);
+#line 233 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_port_info_list_free0 (port_info_list);
+#line 4106 "CameraTable.c"
+}
+
+
+static void camera_table_on_udev_event (CameraTable* self, const gchar* action, GUdevDevice* device) {
+ const gchar* _tmp0_ = NULL;
+ GUdevDevice* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ OneShotScheduler* _tmp3_ = NULL;
+#line 385 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (IS_CAMERA_TABLE (self));
+#line 385 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (action != NULL);
+#line 385 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_UDEV_IS_DEVICE (device));
+#line 386 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = action;
+#line 386 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = device;
+#line 386 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = g_udev_device_get_name (_tmp1_);
+#line 386 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_debug ("CameraTable.vala:386: udev event: %s on %s", _tmp0_, _tmp2_);
+#line 390 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = self->priv->camera_update_scheduler;
+#line 390 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ one_shot_scheduler_after_timeout (_tmp3_, (guint) CAMERA_TABLE_UPDATE_DELAY_MSEC, TRUE);
+#line 4133 "CameraTable.c"
+}
+
+
+void camera_table_on_volume_changed (CameraTable* self, GVolume* volume) {
+ OneShotScheduler* _tmp0_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (IS_CAMERA_TABLE (self));
+#line 393 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_IS_VOLUME (volume));
+#line 394 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = self->priv->camera_update_scheduler;
+#line 394 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ one_shot_scheduler_after_timeout (_tmp0_, (guint) CAMERA_TABLE_UPDATE_DELAY_MSEC, TRUE);
+#line 4147 "CameraTable.c"
+}
+
+
+static void camera_table_on_update_cameras (CameraTable* self) {
+ GError * _inner_error_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (IS_CAMERA_TABLE (self));
+#line 4155 "CameraTable.c"
+ {
+ CameraTable* _tmp0_ = NULL;
+ CameraTable* _tmp1_ = NULL;
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = camera_table_get_instance ();
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = _tmp0_;
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_update_camera_table (_tmp1_, &_inner_error_);
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _camera_table_unref0 (_tmp1_);
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (_inner_error_->domain == GPHOTO_ERROR) {
+#line 4171 "CameraTable.c"
+ goto __catch57_gphoto_error;
+ }
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 399 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 4180 "CameraTable.c"
+ }
+ }
+ goto __finally57;
+ __catch57_gphoto_error:
+ {
+ GError* err = NULL;
+ GError* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ err = _inner_error_;
+#line 398 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _inner_error_ = NULL;
+#line 401 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = err;
+#line 401 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp3_ = _tmp2_->message;
+#line 401 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_warning ("CameraTable.vala:401: Error updating camera table: %s", _tmp3_);
+#line 398 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_error_free0 (err);
+#line 4201 "CameraTable.c"
+ }
+ __finally57:
+#line 398 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 398 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 398 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_clear_error (&_inner_error_);
+#line 398 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return;
+#line 4212 "CameraTable.c"
+ }
+}
+
+
+static void g_cclosure_user_marshal_VOID__DISCOVERED_CAMERA (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__DISCOVERED_CAMERA) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__DISCOVERED_CAMERA callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ data1 = closure->data;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 4232 "CameraTable.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ data2 = closure->data;
+#line 4238 "CameraTable.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ callback = (GMarshalFunc_VOID__DISCOVERED_CAMERA) (marshal_data ? marshal_data : cc->callback);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ callback (data1, value_get_discovered_camera (param_values + 1), data2);
+#line 4244 "CameraTable.c"
+}
+
+
+static void value_camera_table_init (GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 4251 "CameraTable.c"
+}
+
+
+static void value_camera_table_free_value (GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_unref (value->data[0].v_pointer);
+#line 4260 "CameraTable.c"
+ }
+}
+
+
+static void value_camera_table_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ dest_value->data[0].v_pointer = camera_table_ref (src_value->data[0].v_pointer);
+#line 4270 "CameraTable.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4274 "CameraTable.c"
+ }
+}
+
+
+static gpointer value_camera_table_peek_pointer (const GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return value->data[0].v_pointer;
+#line 4282 "CameraTable.c"
+}
+
+
+static gchar* value_camera_table_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 4289 "CameraTable.c"
+ CameraTable* object;
+ object = collect_values[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4296 "CameraTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4300 "CameraTable.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = camera_table_ref (object);
+#line 4304 "CameraTable.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 4308 "CameraTable.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return NULL;
+#line 4312 "CameraTable.c"
+}
+
+
+static gchar* value_camera_table_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ CameraTable** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!object_p) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4323 "CameraTable.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *object_p = NULL;
+#line 4329 "CameraTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4333 "CameraTable.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ *object_p = camera_table_ref (value->data[0].v_pointer);
+#line 4337 "CameraTable.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return NULL;
+#line 4341 "CameraTable.c"
+}
+
+
+GParamSpec* param_spec_camera_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecCameraTable* spec;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_CAMERA_TABLE), NULL);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 4355 "CameraTable.c"
+}
+
+
+gpointer value_get_camera_table (const GValue* value) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CAMERA_TABLE), NULL);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return value->data[0].v_pointer;
+#line 4364 "CameraTable.c"
+}
+
+
+void value_set_camera_table (GValue* value, gpointer v_object) {
+ CameraTable* old;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CAMERA_TABLE));
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ old = value->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (v_object) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_CAMERA_TABLE));
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_ref (value->data[0].v_pointer);
+#line 4384 "CameraTable.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 4388 "CameraTable.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (old) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_unref (old);
+#line 4394 "CameraTable.c"
+ }
+}
+
+
+void value_take_camera_table (GValue* value, gpointer v_object) {
+ CameraTable* old;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_CAMERA_TABLE));
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ old = value->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (v_object) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_CAMERA_TABLE));
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 4413 "CameraTable.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 4417 "CameraTable.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (old) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_unref (old);
+#line 4423 "CameraTable.c"
+ }
+}
+
+
+static void camera_table_class_init (CameraTableClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ camera_table_parent_class = g_type_class_peek_parent (klass);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ ((CameraTableClass *) klass)->finalize = camera_table_finalize;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_type_class_add_private (klass, sizeof (CameraTablePrivate));
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_new ("camera_added", TYPE_CAMERA_TABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__DISCOVERED_CAMERA, G_TYPE_NONE, 1, TYPE_DISCOVERED_CAMERA);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_new ("camera_removed", TYPE_CAMERA_TABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__DISCOVERED_CAMERA, G_TYPE_NONE, 1, TYPE_DISCOVERED_CAMERA);
+#line 4439 "CameraTable.c"
+}
+
+
+static void camera_table_instance_init (CameraTable * self) {
+ GUdevClient* _tmp0_ = NULL;
+ GPContext* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv = CAMERA_TABLE_GET_PRIVATE (self);
+#line 29 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp0_ = g_udev_client_new (CAMERA_TABLE_SUBSYSTEMS);
+#line 29 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv->client = _tmp0_;
+#line 30 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv->camera_update_scheduler = NULL;
+#line 31 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp1_ = gp_context_new ();
+#line 31 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv->null_context = _tmp1_;
+#line 35 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_DISCOVERED_CAMERA, (GBoxedCopyFunc) discovered_camera_ref, discovered_camera_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 35 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->priv->camera_map = _tmp2_;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self->ref_count = 1;
+#line 4465 "CameraTable.c"
+}
+
+
+static void camera_table_finalize (CameraTable* obj) {
+ CameraTable * self;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CAMERA_TABLE, CameraTable);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_signal_handlers_destroy (self);
+#line 29 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (self->priv->client);
+#line 30 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _one_shot_scheduler_unref0 (self->priv->camera_update_scheduler);
+#line 31 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_context_unref0 (self->priv->null_context);
+#line 32 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _gp_abilities_list_free0 (self->priv->abilities_list);
+#line 33 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (self->priv->volume_monitor);
+#line 35 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ _g_object_unref0 (self->priv->camera_map);
+#line 4487 "CameraTable.c"
+}
+
+
+GType camera_table_get_type (void) {
+ static volatile gsize camera_table_type_id__volatile = 0;
+ if (g_once_init_enter (&camera_table_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_camera_table_init, value_camera_table_free_value, value_camera_table_copy_value, value_camera_table_peek_pointer, "p", value_camera_table_collect_value, "p", value_camera_table_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (CameraTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) camera_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CameraTable), 0, (GInstanceInitFunc) camera_table_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType camera_table_type_id;
+ camera_table_type_id = g_type_register_fundamental (g_type_fundamental_next (), "CameraTable", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&camera_table_type_id__volatile, camera_table_type_id);
+ }
+ return camera_table_type_id__volatile;
+}
+
+
+gpointer camera_table_ref (gpointer instance) {
+ CameraTable* self;
+ self = instance;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ return instance;
+#line 4512 "CameraTable.c"
+}
+
+
+void camera_table_unref (gpointer instance) {
+ CameraTable* self;
+ self = instance;
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ CAMERA_TABLE_GET_CLASS (self)->finalize (self);
+#line 21 "/home/jens/Source/shotwell/src/camera/CameraTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4525 "CameraTable.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/camera/GPhoto.c b/src/camera/GPhoto.c
new file mode 100644
index 0000000..a703945
--- /dev/null
+++ b/src/camera/GPhoto.c
@@ -0,0 +1,2807 @@
+/* GPhoto.c generated by valac 0.32.1, the Vala compiler
+ * generated from GPhoto.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <gphoto2/gphoto2-context.h>
+#include <gphoto.h>
+#include <gphoto2/gphoto2-camera.h>
+#include <gphoto2/gphoto2-filesys.h>
+#include <gphoto2/gphoto2-result.h>
+#include <gphoto2/gphoto2-port-result.h>
+#include <gphoto2/gphoto2-port-info-list.h>
+#include <gio/gio.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gphoto2/gphoto2-file.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define GP_TYPE_CONTEXT_WRAPPER (gp_context_wrapper_get_type ())
+#define GP_CONTEXT_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper))
+#define GP_CONTEXT_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GP_TYPE_CONTEXT_WRAPPER, GPContextWrapperClass))
+#define GP_IS_CONTEXT_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GP_TYPE_CONTEXT_WRAPPER))
+#define GP_IS_CONTEXT_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GP_TYPE_CONTEXT_WRAPPER))
+#define GP_CONTEXT_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GP_TYPE_CONTEXT_WRAPPER, GPContextWrapperClass))
+
+typedef struct _GPContextWrapper GPContextWrapper;
+typedef struct _GPContextWrapperClass GPContextWrapperClass;
+typedef struct _GPContextWrapperPrivate GPContextWrapperPrivate;
+#define _gp_context_unref0(var) ((var == NULL) ? NULL : (var = (gp_context_unref (var), NULL)))
+typedef struct _GPParamSpecContextWrapper GPParamSpecContextWrapper;
+
+#define GP_TYPE_SPIN_IDLE_WRAPPER (gp_spin_idle_wrapper_get_type ())
+#define GP_SPIN_IDLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapper))
+#define GP_SPIN_IDLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapperClass))
+#define GP_IS_SPIN_IDLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GP_TYPE_SPIN_IDLE_WRAPPER))
+#define GP_IS_SPIN_IDLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GP_TYPE_SPIN_IDLE_WRAPPER))
+#define GP_SPIN_IDLE_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapperClass))
+
+typedef struct _GPSpinIdleWrapper GPSpinIdleWrapper;
+typedef struct _GPSpinIdleWrapperClass GPSpinIdleWrapperClass;
+typedef struct _GPSpinIdleWrapperPrivate GPSpinIdleWrapperPrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+
+#define TYPE_PHOTO_PREVIEW (photo_preview_get_type ())
+#define PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_PREVIEW, PhotoPreview))
+#define PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+#define IS_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_PREVIEW))
+#define IS_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_PREVIEW))
+#define PHOTO_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+
+typedef struct _PhotoPreview PhotoPreview;
+typedef struct _PhotoPreviewClass PhotoPreviewClass;
+#define _photo_preview_unref0(var) ((var == NULL) ? NULL : (var = (photo_preview_unref (var), NULL)))
+
+#define JPEG_TYPE_MARKER (jpeg_marker_get_type ())
+#define _gp_file_unref0(var) ((var == NULL) ? NULL : (var = (gp_file_unref (var), NULL)))
+
+typedef enum {
+ GPHOTO_ERROR_LIBRARY
+} GPhotoError;
+#define GPHOTO_ERROR gphoto_error_quark ()
+struct _GPContextWrapper {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ GPContextWrapperPrivate * priv;
+ GPContext* context;
+};
+
+struct _GPContextWrapperClass {
+ GTypeClass parent_class;
+ void (*finalize) (GPContextWrapper *self);
+ void (*idle) (GPContextWrapper* self);
+ void (*error) (GPContextWrapper* self, const gchar* text, void* data);
+ void (*status) (GPContextWrapper* self, const gchar* text, void* data);
+ void (*message) (GPContextWrapper* self, const gchar* text, void* data);
+ void (*progress_start) (GPContextWrapper* self, gfloat current, const gchar* text, void* data);
+ void (*progress_update) (GPContextWrapper* self, gfloat current, void* data);
+ void (*progress_stop) (GPContextWrapper* self);
+};
+
+struct _GPParamSpecContextWrapper {
+ GParamSpec parent_instance;
+};
+
+struct _GPSpinIdleWrapper {
+ GPContextWrapper parent_instance;
+ GPSpinIdleWrapperPrivate * priv;
+};
+
+struct _GPSpinIdleWrapperClass {
+ GPContextWrapperClass parent_class;
+};
+
+typedef enum {
+ JPEG_MARKER_INVALID = 0x00,
+ JPEG_MARKER_SOI = 0xD8,
+ JPEG_MARKER_EOI = 0xD9,
+ JPEG_MARKER_APP0 = 0xE0,
+ JPEG_MARKER_APP1 = 0xE1
+} JpegMarker;
+
+
+static gpointer gp_context_wrapper_parent_class = NULL;
+static gpointer gp_spin_idle_wrapper_parent_class = NULL;
+
+GQuark gphoto_error_quark (void);
+gpointer gp_context_wrapper_ref (gpointer instance);
+void gp_context_wrapper_unref (gpointer instance);
+GParamSpec* gp_param_spec_context_wrapper (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void gp_value_set_context_wrapper (GValue* value, gpointer v_object);
+void gp_value_take_context_wrapper (GValue* value, gpointer v_object);
+gpointer gp_value_get_context_wrapper (const GValue* value);
+GType gp_context_wrapper_get_type (void) G_GNUC_CONST;
+enum {
+ GP_CONTEXT_WRAPPER_DUMMY_PROPERTY
+};
+GPContextWrapper* gp_context_wrapper_new (void);
+GPContextWrapper* gp_context_wrapper_construct (GType object_type);
+static void gp_context_wrapper_on_idle (GPContextWrapper* self, GPContext* context);
+static void _gp_context_wrapper_on_idle_gp_context_idle_func (GPContext* context, gpointer self);
+static void gp_context_wrapper_on_error (GPContextWrapper* self, GPContext* context, const gchar* text);
+static void _gp_context_wrapper_on_error_gp_context_error_func (GPContext* context, const gchar* text, gpointer self);
+static void gp_context_wrapper_on_status (GPContextWrapper* self, GPContext* context, const gchar* text);
+static void _gp_context_wrapper_on_status_gp_context_status_func (GPContext* context, const gchar* text, gpointer self);
+static void gp_context_wrapper_on_message (GPContextWrapper* self, GPContext* context, const gchar* text);
+static void _gp_context_wrapper_on_message_gp_context_message_func (GPContext* context, const gchar* text, gpointer self);
+static guint gp_context_wrapper_on_progress_start (GPContextWrapper* self, GPContext* context, gfloat target, const gchar* text);
+static guint _gp_context_wrapper_on_progress_start_gp_context_progress_start_func (GPContext* context, gfloat target, const gchar* text, gpointer self);
+static void gp_context_wrapper_on_progress_update (GPContextWrapper* self, GPContext* context, guint id, gfloat current);
+static void _gp_context_wrapper_on_progress_update_gp_context_progress_update_func (GPContext* context, guint id, gfloat current, gpointer self);
+static void gp_context_wrapper_on_progress_stop (GPContextWrapper* self, GPContext* context, guint id);
+static void _gp_context_wrapper_on_progress_stop_gp_context_progress_stop_func (GPContext* context, guint id, gpointer self);
+void gp_context_wrapper_idle (GPContextWrapper* self);
+static void gp_context_wrapper_real_idle (GPContextWrapper* self);
+void gp_context_wrapper_error (GPContextWrapper* self, const gchar* text, void* data);
+static void gp_context_wrapper_real_error (GPContextWrapper* self, const gchar* text, void* data);
+void gp_context_wrapper_status (GPContextWrapper* self, const gchar* text, void* data);
+static void gp_context_wrapper_real_status (GPContextWrapper* self, const gchar* text, void* data);
+void gp_context_wrapper_message (GPContextWrapper* self, const gchar* text, void* data);
+static void gp_context_wrapper_real_message (GPContextWrapper* self, const gchar* text, void* data);
+void gp_context_wrapper_progress_start (GPContextWrapper* self, gfloat current, const gchar* text, void* data);
+static void gp_context_wrapper_real_progress_start (GPContextWrapper* self, gfloat current, const gchar* text, void* data);
+void gp_context_wrapper_progress_update (GPContextWrapper* self, gfloat current, void* data);
+static void gp_context_wrapper_real_progress_update (GPContextWrapper* self, gfloat current, void* data);
+void gp_context_wrapper_progress_stop (GPContextWrapper* self);
+static void gp_context_wrapper_real_progress_stop (GPContextWrapper* self);
+static void gp_context_wrapper_finalize (GPContextWrapper* obj);
+GType gp_spin_idle_wrapper_get_type (void) G_GNUC_CONST;
+enum {
+ GP_SPIN_IDLE_WRAPPER_DUMMY_PROPERTY
+};
+GPSpinIdleWrapper* gp_spin_idle_wrapper_new (void);
+GPSpinIdleWrapper* gp_spin_idle_wrapper_construct (GType object_type);
+static void gp_spin_idle_wrapper_real_idle (GPContextWrapper* base);
+void spin_event_loop (void);
+static void gp_spin_idle_wrapper_real_progress_update (GPContextWrapper* base, gfloat current, void* data);
+#define GP_MAX_FILENAME_LENGTH 63
+#define GP_MAX_BASEDIR_LENGTH 255
+gboolean gp_get_info (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, CameraFileInfo* info, GError** error);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+PhotoMetadata* gp_get_fallback_metadata (Camera* camera, GPContext* context, const gchar* folder, const gchar* filename);
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error);
+GdkPixbuf* gp_load_preview (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, guint8** raw, int* raw_length1, gsize* raw_length, GError** error);
+guint8* gp_load_file_into_buffer (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, CameraFileType filetype, int* result_length1, GError** error);
+guint photo_metadata_get_preview_count (PhotoMetadata* self);
+gpointer photo_preview_ref (gpointer instance);
+void photo_preview_unref (gpointer instance);
+GParamSpec* param_spec_photo_preview (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_preview (GValue* value, gpointer v_object);
+void value_take_photo_preview (GValue* value, gpointer v_object);
+gpointer value_get_photo_preview (const GValue* value);
+GType photo_preview_get_type (void) G_GNUC_CONST;
+PhotoPreview* photo_metadata_get_preview (PhotoMetadata* self, guint number);
+guint8* photo_preview_flatten (PhotoPreview* self, int* result_length1, GError** error);
+#define JPEG_MARKER_PREFIX ((guint8) 0xFF)
+GType jpeg_marker_get_type (void) G_GNUC_CONST;
+static guint8* _vala_array_dup23 (guint8* self, int length);
+#define IMPORT_PREVIEW_MAX_SCALE 128
+GdkPixbuf* gp_load_image (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GError** error);
+GInputStream* gp_load_file_into_stream (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, CameraFileType filetype, GError** error);
+void gp_save_image (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GFile* dest_file, GError** error);
+PhotoMetadata* gp_load_metadata (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GError** error);
+void photo_metadata_read_from_app1_segment (PhotoMetadata* self, guint8* buffer, int buffer_length1, gint length, GError** error);
+static guint8* _vala_array_dup24 (guint8* self, int length);
+void gp_on_mins_destroyed (void* data);
+static void _gp_on_mins_destroyed_gdestroy_notify (void* data);
+GFile* app_dirs_get_temp_dir (void);
+
+
+GQuark gphoto_error_quark (void) {
+ return g_quark_from_static_string ("gphoto_error-quark");
+}
+
+
+static void _gp_context_wrapper_on_idle_gp_context_idle_func (GPContext* context, gpointer self) {
+#line 18 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_on_idle ((GPContextWrapper*) self, context);
+#line 240 "GPhoto.c"
+}
+
+
+static void _gp_context_wrapper_on_error_gp_context_error_func (GPContext* context, const gchar* text, gpointer self) {
+#line 19 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_on_error ((GPContextWrapper*) self, context, text);
+#line 247 "GPhoto.c"
+}
+
+
+static void _gp_context_wrapper_on_status_gp_context_status_func (GPContext* context, const gchar* text, gpointer self) {
+#line 20 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_on_status ((GPContextWrapper*) self, context, text);
+#line 254 "GPhoto.c"
+}
+
+
+static void _gp_context_wrapper_on_message_gp_context_message_func (GPContext* context, const gchar* text, gpointer self) {
+#line 21 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_on_message ((GPContextWrapper*) self, context, text);
+#line 261 "GPhoto.c"
+}
+
+
+static guint _gp_context_wrapper_on_progress_start_gp_context_progress_start_func (GPContext* context, gfloat target, const gchar* text, gpointer self) {
+ guint result;
+ result = gp_context_wrapper_on_progress_start ((GPContextWrapper*) self, context, target, text);
+#line 22 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 270 "GPhoto.c"
+}
+
+
+static void _gp_context_wrapper_on_progress_update_gp_context_progress_update_func (GPContext* context, guint id, gfloat current, gpointer self) {
+#line 22 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_on_progress_update ((GPContextWrapper*) self, context, id, current);
+#line 277 "GPhoto.c"
+}
+
+
+static void _gp_context_wrapper_on_progress_stop_gp_context_progress_stop_func (GPContext* context, guint id, gpointer self) {
+#line 22 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_on_progress_stop ((GPContextWrapper*) self, context, id);
+#line 284 "GPhoto.c"
+}
+
+
+GPContextWrapper* gp_context_wrapper_construct (GType object_type) {
+ GPContextWrapper* self = NULL;
+ GPContext* _tmp0_ = NULL;
+ GPContext* _tmp1_ = NULL;
+ GPContext* _tmp2_ = NULL;
+ GPContext* _tmp3_ = NULL;
+ GPContext* _tmp4_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ self = (GPContextWrapper*) g_type_create_instance (object_type);
+#line 18 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = self->context;
+#line 18 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_set_idle_func (_tmp0_, _gp_context_wrapper_on_idle_gp_context_idle_func, self);
+#line 19 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = self->context;
+#line 19 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_set_error_func (_tmp1_, _gp_context_wrapper_on_error_gp_context_error_func, self);
+#line 20 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = self->context;
+#line 20 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_set_status_func (_tmp2_, _gp_context_wrapper_on_status_gp_context_status_func, self);
+#line 21 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = self->context;
+#line 21 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_set_message_func (_tmp3_, _gp_context_wrapper_on_message_gp_context_message_func, self);
+#line 22 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = self->context;
+#line 22 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_set_progress_funcs (_tmp4_, _gp_context_wrapper_on_progress_start_gp_context_progress_start_func, _gp_context_wrapper_on_progress_update_gp_context_progress_update_func, _gp_context_wrapper_on_progress_stop_gp_context_progress_stop_func, self);
+#line 17 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return self;
+#line 319 "GPhoto.c"
+}
+
+
+GPContextWrapper* gp_context_wrapper_new (void) {
+#line 17 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return gp_context_wrapper_construct (GP_TYPE_CONTEXT_WRAPPER);
+#line 326 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_real_idle (GPContextWrapper* self) {
+}
+
+
+void gp_context_wrapper_idle (GPContextWrapper* self) {
+#line 25 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 25 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->idle (self);
+#line 339 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_real_error (GPContextWrapper* self, const gchar* text, void* data) {
+#line 28 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (text != NULL);
+#line 346 "GPhoto.c"
+}
+
+
+void gp_context_wrapper_error (GPContextWrapper* self, const gchar* text, void* data) {
+#line 28 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 28 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->error (self, text, data);
+#line 355 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_real_status (GPContextWrapper* self, const gchar* text, void* data) {
+#line 31 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (text != NULL);
+#line 362 "GPhoto.c"
+}
+
+
+void gp_context_wrapper_status (GPContextWrapper* self, const gchar* text, void* data) {
+#line 31 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 31 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->status (self, text, data);
+#line 371 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_real_message (GPContextWrapper* self, const gchar* text, void* data) {
+#line 34 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (text != NULL);
+#line 378 "GPhoto.c"
+}
+
+
+void gp_context_wrapper_message (GPContextWrapper* self, const gchar* text, void* data) {
+#line 34 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 34 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->message (self, text, data);
+#line 387 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_real_progress_start (GPContextWrapper* self, gfloat current, const gchar* text, void* data) {
+#line 37 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (text != NULL);
+#line 394 "GPhoto.c"
+}
+
+
+void gp_context_wrapper_progress_start (GPContextWrapper* self, gfloat current, const gchar* text, void* data) {
+#line 37 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 37 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->progress_start (self, current, text, data);
+#line 403 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_real_progress_update (GPContextWrapper* self, gfloat current, void* data) {
+}
+
+
+void gp_context_wrapper_progress_update (GPContextWrapper* self, gfloat current, void* data) {
+#line 40 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 40 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->progress_update (self, current, data);
+#line 416 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_real_progress_stop (GPContextWrapper* self) {
+}
+
+
+void gp_context_wrapper_progress_stop (GPContextWrapper* self) {
+#line 43 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 43 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->progress_stop (self);
+#line 429 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_on_idle (GPContextWrapper* self, GPContext* context) {
+#line 46 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 46 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (context != NULL);
+#line 47 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_idle (self);
+#line 440 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_on_error (GPContextWrapper* self, GPContext* context, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 50 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (context != NULL);
+#line 50 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (text != NULL);
+#line 51 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = text;
+#line 51 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_error (self, _tmp0_, NULL);
+#line 456 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_on_status (GPContextWrapper* self, GPContext* context, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 54 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (context != NULL);
+#line 54 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (text != NULL);
+#line 55 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = text;
+#line 55 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_status (self, _tmp0_, NULL);
+#line 472 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_on_message (GPContextWrapper* self, GPContext* context, const gchar* text) {
+ const gchar* _tmp0_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 58 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (context != NULL);
+#line 58 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (text != NULL);
+#line 59 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = text;
+#line 59 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_message (self, _tmp0_, NULL);
+#line 488 "GPhoto.c"
+}
+
+
+static guint gp_context_wrapper_on_progress_start (GPContextWrapper* self, GPContext* context, gfloat target, const gchar* text) {
+ guint result = 0U;
+ gfloat _tmp0_ = 0.0F;
+ const gchar* _tmp1_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (GP_IS_CONTEXT_WRAPPER (self), 0U);
+#line 62 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, 0U);
+#line 62 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (text != NULL, 0U);
+#line 63 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = target;
+#line 63 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = text;
+#line 63 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_progress_start (self, _tmp0_, _tmp1_, NULL);
+#line 65 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = (guint) 0;
+#line 65 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 512 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_on_progress_update (GPContextWrapper* self, GPContext* context, guint id, gfloat current) {
+ gfloat _tmp0_ = 0.0F;
+#line 68 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 68 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (context != NULL);
+#line 69 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = current;
+#line 69 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_progress_update (self, _tmp0_, NULL);
+#line 526 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_on_progress_stop (GPContextWrapper* self, GPContext* context, guint id) {
+#line 72 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (GP_IS_CONTEXT_WRAPPER (self));
+#line 72 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (context != NULL);
+#line 73 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_progress_stop (self);
+#line 537 "GPhoto.c"
+}
+
+
+static void gp_value_context_wrapper_init (GValue* value) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ value->data[0].v_pointer = NULL;
+#line 544 "GPhoto.c"
+}
+
+
+static void gp_value_context_wrapper_free_value (GValue* value) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (value->data[0].v_pointer) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_unref (value->data[0].v_pointer);
+#line 553 "GPhoto.c"
+ }
+}
+
+
+static void gp_value_context_wrapper_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (src_value->data[0].v_pointer) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ dest_value->data[0].v_pointer = gp_context_wrapper_ref (src_value->data[0].v_pointer);
+#line 563 "GPhoto.c"
+ } else {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 567 "GPhoto.c"
+ }
+}
+
+
+static gpointer gp_value_context_wrapper_peek_pointer (const GValue* value) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return value->data[0].v_pointer;
+#line 575 "GPhoto.c"
+}
+
+
+static gchar* gp_value_context_wrapper_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (collect_values[0].v_pointer) {
+#line 582 "GPhoto.c"
+ GPContextWrapper* object;
+ object = collect_values[0].v_pointer;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 589 "GPhoto.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 593 "GPhoto.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ value->data[0].v_pointer = gp_context_wrapper_ref (object);
+#line 597 "GPhoto.c"
+ } else {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ value->data[0].v_pointer = NULL;
+#line 601 "GPhoto.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 605 "GPhoto.c"
+}
+
+
+static gchar* gp_value_context_wrapper_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ GPContextWrapper** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (!object_p) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 616 "GPhoto.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (!value->data[0].v_pointer) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *object_p = NULL;
+#line 622 "GPhoto.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *object_p = value->data[0].v_pointer;
+#line 626 "GPhoto.c"
+ } else {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *object_p = gp_context_wrapper_ref (value->data[0].v_pointer);
+#line 630 "GPhoto.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 634 "GPhoto.c"
+}
+
+
+GParamSpec* gp_param_spec_context_wrapper (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ GPParamSpecContextWrapper* spec;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, GP_TYPE_CONTEXT_WRAPPER), NULL);
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return G_PARAM_SPEC (spec);
+#line 648 "GPhoto.c"
+}
+
+
+gpointer gp_value_get_context_wrapper (const GValue* value) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GP_TYPE_CONTEXT_WRAPPER), NULL);
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return value->data[0].v_pointer;
+#line 657 "GPhoto.c"
+}
+
+
+void gp_value_set_context_wrapper (GValue* value, gpointer v_object) {
+ GPContextWrapper* old;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GP_TYPE_CONTEXT_WRAPPER));
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ old = value->data[0].v_pointer;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (v_object) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GP_TYPE_CONTEXT_WRAPPER));
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ value->data[0].v_pointer = v_object;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_ref (value->data[0].v_pointer);
+#line 677 "GPhoto.c"
+ } else {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ value->data[0].v_pointer = NULL;
+#line 681 "GPhoto.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (old) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_unref (old);
+#line 687 "GPhoto.c"
+ }
+}
+
+
+void gp_value_take_context_wrapper (GValue* value, gpointer v_object) {
+ GPContextWrapper* old;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GP_TYPE_CONTEXT_WRAPPER));
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ old = value->data[0].v_pointer;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (v_object) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GP_TYPE_CONTEXT_WRAPPER));
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ value->data[0].v_pointer = v_object;
+#line 706 "GPhoto.c"
+ } else {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ value->data[0].v_pointer = NULL;
+#line 710 "GPhoto.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (old) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_unref (old);
+#line 716 "GPhoto.c"
+ }
+}
+
+
+static void gp_context_wrapper_class_init (GPContextWrapperClass * klass) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_context_wrapper_parent_class = g_type_class_peek_parent (klass);
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->finalize = gp_context_wrapper_finalize;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->idle = gp_context_wrapper_real_idle;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->error = gp_context_wrapper_real_error;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->status = gp_context_wrapper_real_status;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->message = gp_context_wrapper_real_message;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->progress_start = gp_context_wrapper_real_progress_start;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->progress_update = gp_context_wrapper_real_progress_update;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->progress_stop = gp_context_wrapper_real_progress_stop;
+#line 740 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_instance_init (GPContextWrapper * self) {
+ GPContext* _tmp0_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = gp_context_new ();
+#line 15 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ self->context = _tmp0_;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ self->ref_count = 1;
+#line 752 "GPhoto.c"
+}
+
+
+static void gp_context_wrapper_finalize (GPContextWrapper* obj) {
+ GPContextWrapper * self;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper);
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_signal_handlers_destroy (self);
+#line 15 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_context_unref0 (self->context);
+#line 764 "GPhoto.c"
+}
+
+
+GType gp_context_wrapper_get_type (void) {
+ static volatile gsize gp_context_wrapper_type_id__volatile = 0;
+ if (g_once_init_enter (&gp_context_wrapper_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { gp_value_context_wrapper_init, gp_value_context_wrapper_free_value, gp_value_context_wrapper_copy_value, gp_value_context_wrapper_peek_pointer, "p", gp_value_context_wrapper_collect_value, "p", gp_value_context_wrapper_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (GPContextWrapperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gp_context_wrapper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GPContextWrapper), 0, (GInstanceInitFunc) gp_context_wrapper_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType gp_context_wrapper_type_id;
+ gp_context_wrapper_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GPContextWrapper", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&gp_context_wrapper_type_id__volatile, gp_context_wrapper_type_id);
+ }
+ return gp_context_wrapper_type_id__volatile;
+}
+
+
+gpointer gp_context_wrapper_ref (gpointer instance) {
+ GPContextWrapper* self;
+ self = instance;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return instance;
+#line 789 "GPhoto.c"
+}
+
+
+void gp_context_wrapper_unref (gpointer instance) {
+ GPContextWrapper* self;
+ self = instance;
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_GET_CLASS (self)->finalize (self);
+#line 14 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 802 "GPhoto.c"
+ }
+}
+
+
+GPSpinIdleWrapper* gp_spin_idle_wrapper_construct (GType object_type) {
+ GPSpinIdleWrapper* self = NULL;
+#line 79 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ self = (GPSpinIdleWrapper*) gp_context_wrapper_construct (object_type);
+#line 79 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return self;
+#line 813 "GPhoto.c"
+}
+
+
+GPSpinIdleWrapper* gp_spin_idle_wrapper_new (void) {
+#line 79 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return gp_spin_idle_wrapper_construct (GP_TYPE_SPIN_IDLE_WRAPPER);
+#line 820 "GPhoto.c"
+}
+
+
+static void gp_spin_idle_wrapper_real_idle (GPContextWrapper* base) {
+ GPSpinIdleWrapper * self;
+#line 82 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapper);
+#line 83 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_CLASS (gp_spin_idle_wrapper_parent_class)->idle (G_TYPE_CHECK_INSTANCE_CAST (self, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper));
+#line 85 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ spin_event_loop ();
+#line 832 "GPhoto.c"
+}
+
+
+static void gp_spin_idle_wrapper_real_progress_update (GPContextWrapper* base, gfloat current, void* data) {
+ GPSpinIdleWrapper * self;
+ gfloat _tmp0_ = 0.0F;
+ void* _tmp1_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapper);
+#line 89 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = current;
+#line 89 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = data;
+#line 89 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ GP_CONTEXT_WRAPPER_CLASS (gp_spin_idle_wrapper_parent_class)->progress_update (G_TYPE_CHECK_INSTANCE_CAST (self, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper), _tmp0_, _tmp1_);
+#line 91 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ spin_event_loop ();
+#line 850 "GPhoto.c"
+}
+
+
+static void gp_spin_idle_wrapper_class_init (GPSpinIdleWrapperClass * klass) {
+#line 78 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_spin_idle_wrapper_parent_class = g_type_class_peek_parent (klass);
+#line 78 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->idle = gp_spin_idle_wrapper_real_idle;
+#line 78 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ((GPContextWrapperClass *) klass)->progress_update = gp_spin_idle_wrapper_real_progress_update;
+#line 861 "GPhoto.c"
+}
+
+
+static void gp_spin_idle_wrapper_instance_init (GPSpinIdleWrapper * self) {
+}
+
+
+GType gp_spin_idle_wrapper_get_type (void) {
+ static volatile gsize gp_spin_idle_wrapper_type_id__volatile = 0;
+ if (g_once_init_enter (&gp_spin_idle_wrapper_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (GPSpinIdleWrapperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gp_spin_idle_wrapper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GPSpinIdleWrapper), 0, (GInstanceInitFunc) gp_spin_idle_wrapper_instance_init, NULL };
+ GType gp_spin_idle_wrapper_type_id;
+ gp_spin_idle_wrapper_type_id = g_type_register_static (GP_TYPE_CONTEXT_WRAPPER, "GPSpinIdleWrapper", &g_define_type_info, 0);
+ g_once_init_leave (&gp_spin_idle_wrapper_type_id__volatile, gp_spin_idle_wrapper_type_id);
+ }
+ return gp_spin_idle_wrapper_type_id__volatile;
+}
+
+
+gboolean gp_get_info (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, CameraFileInfo* info, GError** error) {
+ CameraFileInfo _vala_info = {0};
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ int res = 0;
+ Camera* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ GPContext* _tmp11_ = NULL;
+ CameraFileInfo _tmp12_ = {0};
+ int _tmp13_ = 0;
+ int _tmp14_ = 0;
+ GError * _inner_error_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, FALSE);
+#line 102 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (camera != NULL, FALSE);
+#line 102 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (folder != NULL, FALSE);
+#line 102 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (filename != NULL, FALSE);
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = folder;
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = strlen (_tmp1_);
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = _tmp2_;
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp3_ > GP_MAX_BASEDIR_LENGTH) {
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = TRUE;
+#line 915 "GPhoto.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = filename;
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp5_ = strlen (_tmp4_);
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = _tmp5_;
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = _tmp6_ > GP_MAX_FILENAME_LENGTH;
+#line 928 "GPhoto.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp0_) {
+#line 932 "GPhoto.c"
+ CameraFileInfo _tmp7_ = {0};
+#line 105 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (_vala_info);
+#line 105 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_info = _tmp7_;
+#line 107 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = FALSE;
+#line 107 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (info) {
+#line 107 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *info = _vala_info;
+#line 944 "GPhoto.c"
+ } else {
+#line 107 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (_vala_info);
+#line 948 "GPhoto.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 952 "GPhoto.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = camera;
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = folder;
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp10_ = filename;
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp11_ = context;
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = gp_camera_file_get_info (_tmp8_, _tmp9_, _tmp10_, &_tmp12_, _tmp11_);
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (_vala_info);
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_info = _tmp12_;
+#line 110 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp13_;
+#line 111 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14_ = res;
+#line 111 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp14_ != GP_OK) {
+#line 974 "GPhoto.c"
+ int _tmp15_ = 0;
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ int _tmp18_ = 0;
+ const gchar* _tmp19_ = NULL;
+ GError* _tmp20_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15_ = res;
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp16_ = folder;
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp17_ = filename;
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18_ = res;
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp19_ = gp_port_result_as_string (_tmp18_);
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error retrieving file information for %s/%s: %s", (gint) _tmp15_, _tmp16_, _tmp17_, _tmp19_);
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp20_;
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 112 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return FALSE;
+#line 999 "GPhoto.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = TRUE;
+#line 115 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (info) {
+#line 115 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *info = _vala_info;
+#line 1007 "GPhoto.c"
+ } else {
+#line 115 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (_vala_info);
+#line 1011 "GPhoto.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1015 "GPhoto.c"
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ glong _tmp2_ = 0L;
+ glong _tmp5_ = 0L;
+ gboolean _tmp8_ = FALSE;
+ glong _tmp9_ = 0L;
+ gboolean _tmp12_ = FALSE;
+ glong _tmp13_ = 0L;
+ glong _tmp16_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ gchar* _tmp21_ = NULL;
+#line 1328 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp1_;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = start;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp2_ < ((glong) 0)) {
+#line 1048 "GPhoto.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = string_length;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = start;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ start = _tmp3_ + _tmp4_;
+#line 1057 "GPhoto.c"
+ }
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp5_ < ((glong) 0)) {
+#line 1063 "GPhoto.c"
+ glong _tmp6_ = 0L;
+ glong _tmp7_ = 0L;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = string_length;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = end;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp6_ + _tmp7_;
+#line 1072 "GPhoto.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp9_ >= ((glong) 0)) {
+#line 1078 "GPhoto.c"
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = string_length;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp10_ <= _tmp11_;
+#line 1087 "GPhoto.c"
+ } else {
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = FALSE;
+#line 1091 "GPhoto.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp8_, NULL);
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp13_ >= ((glong) 0)) {
+#line 1099 "GPhoto.c"
+ glong _tmp14_ = 0L;
+ glong _tmp15_ = 0L;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ <= _tmp15_;
+#line 1108 "GPhoto.c"
+ } else {
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 1112 "GPhoto.c"
+ }
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_, NULL);
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = start;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = end;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = end;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp21_;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1134 "GPhoto.c"
+}
+
+
+PhotoMetadata* gp_get_fallback_metadata (Camera* camera, GPContext* context, const gchar* folder, const gchar* filename) {
+ PhotoMetadata* result = NULL;
+ CameraStorageInformation* sifs = NULL;
+ gint count = 0;
+ Camera* _tmp0_ = NULL;
+ GPContext* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GPPortInfo port_info = {0};
+ Camera* _tmp3_ = NULL;
+ GPPortInfo _tmp4_ = {0};
+ gchar* path = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* prefix = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp17_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 121 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, NULL);
+#line 121 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 121 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 122 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ sifs = NULL;
+#line 123 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ count = 0;
+#line 124 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = camera;
+#line 124 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = context;
+#line 124 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_camera_get_storageinfo (_tmp0_, &sifs, &_tmp2_, _tmp1_);
+#line 124 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ count = _tmp2_;
+#line 127 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = camera;
+#line 127 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_camera_get_port_info (_tmp3_, &_tmp4_);
+#line 127 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (port_info);
+#line 127 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ port_info = _tmp4_;
+#line 130 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_port_info_get_path (port_info, &_tmp5_);
+#line 130 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (path);
+#line 130 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 130 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ path = _tmp6_;
+#line 132 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7_ = g_strdup ("disk:");
+#line 132 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ prefix = _tmp7_;
+#line 133 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = path;
+#line 133 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = g_str_has_prefix (_tmp8_, prefix);
+#line 133 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp9_) {
+#line 1204 "GPhoto.c"
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ const gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gchar* _tmp16_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp10_ = path;
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp11_ = strlen (prefix);
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp12_ = _tmp11_;
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = path;
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14_ = strlen (_tmp13_);
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15_ = _tmp14_;
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp16_ = string_slice (_tmp10_, (glong) _tmp12_, (glong) _tmp15_);
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (path);
+#line 134 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ path = _tmp16_;
+#line 1230 "GPhoto.c"
+ } else {
+#line 136 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = NULL;
+#line 136 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (prefix);
+#line 136 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (path);
+#line 136 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (port_info);
+#line 136 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1242 "GPhoto.c"
+ }
+#line 138 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp17_ = photo_metadata_new ();
+#line 138 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ metadata = _tmp17_;
+#line 1248 "GPhoto.c"
+ {
+ PhotoMetadata* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18_ = metadata;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp19_ = path;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20_ = folder;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp21_ = g_strconcat (_tmp19_, _tmp20_, NULL);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp22_ = _tmp21_;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp23_ = g_strconcat (_tmp22_, "/", NULL);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp24_ = _tmp23_;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp25_ = filename;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26_ = g_strconcat (_tmp24_, _tmp25_, NULL);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp27_ = _tmp26_;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp28_ = g_file_new_for_path (_tmp27_);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29_ = _tmp28_;
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_MEDIA_METADATA, MediaMetadata), _tmp29_, &_inner_error_);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (_tmp29_);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (_tmp27_);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (_tmp24_);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (_tmp22_);
+#line 140 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1298 "GPhoto.c"
+ goto __catch58_g_error;
+ }
+ }
+ goto __finally58;
+ __catch58_g_error:
+ {
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_clear_error (&_inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 142 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ metadata = NULL;
+#line 1313 "GPhoto.c"
+ }
+ __finally58:
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (prefix);
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (path);
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (port_info);
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_clear_error (&_inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 1332 "GPhoto.c"
+ }
+#line 145 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = metadata;
+#line 145 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (prefix);
+#line 145 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (path);
+#line 145 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ (port_info);
+#line 145 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1344 "GPhoto.c"
+}
+
+
+static guint8* _vala_array_dup23 (guint8* self, int length) {
+#line 186 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 1351 "GPhoto.c"
+}
+
+
+GdkPixbuf* gp_load_preview (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, guint8** raw, int* raw_length1, gsize* raw_length, GError** error) {
+ guint8* _vala_raw = NULL;
+ int _vala_raw_length1 = 0;
+ gsize _vala_raw_length = 0UL;
+ GdkPixbuf* result = NULL;
+ guint8* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ guint8* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gsize _tmp27_ = 0UL;
+ GMemoryInputStream* mins = NULL;
+ guint8* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ guint8* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ GMemoryInputStream* _tmp44_ = NULL;
+ GdkPixbuf* _tmp45_ = NULL;
+ GMemoryInputStream* _tmp46_ = NULL;
+ GdkPixbuf* _tmp47_ = NULL;
+ GdkPixbuf* _tmp48_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, NULL);
+#line 148 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 148 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 148 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 150 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = (g_free (_vala_raw), NULL);
+#line 150 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = NULL;
+#line 150 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw_length1 = 0;
+#line 151 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw_length = (gsize) 0;
+#line 1392 "GPhoto.c"
+ {
+ guint8* _tmp0_ = NULL;
+ GPContext* _tmp1_ = NULL;
+ Camera* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ guint8* _tmp6_ = NULL;
+ gint _tmp0__length1 = 0;
+ gint __tmp0__size_ = 0;
+ guint8* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = context;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = camera;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = folder;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = filename;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = gp_load_file_into_buffer (_tmp1_, _tmp2_, _tmp3_, _tmp4_, GP_FILE_TYPE_PREVIEW, &_tmp5_, &_inner_error_);
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = _tmp6_;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0__length1 = _tmp5_;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ __tmp0__size_ = _tmp0__length1;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1423 "GPhoto.c"
+ goto __catch59_g_error;
+ }
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7_ = _tmp0_;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7__length1 = _tmp0__length1;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0__length1 = 0;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = (g_free (_vala_raw), NULL);
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = _tmp7_;
+#line 154 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw_length1 = _tmp7__length1;
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = (g_free (_tmp0_), NULL);
+#line 1442 "GPhoto.c"
+ }
+ goto __finally59;
+ __catch59_g_error:
+ {
+ PhotoMetadata* metadata = NULL;
+ Camera* _tmp8_ = NULL;
+ GPContext* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ PhotoMetadata* _tmp12_ = NULL;
+ PhotoMetadata* _tmp13_ = NULL;
+ PhotoMetadata* _tmp14_ = NULL;
+ guint _tmp15_ = 0U;
+ PhotoPreview* preview = NULL;
+ PhotoMetadata* _tmp16_ = NULL;
+ PhotoMetadata* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+ PhotoPreview* _tmp19_ = NULL;
+ guint8* _tmp20_ = NULL;
+ PhotoPreview* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ guint8* _tmp23_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint __tmp20__size_ = 0;
+ guint8* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_clear_error (&_inner_error_);
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = camera;
+#line 156 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = context;
+#line 156 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp10_ = folder;
+#line 156 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp11_ = filename;
+#line 156 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp12_ = gp_get_fallback_metadata (_tmp8_, _tmp9_, _tmp10_, _tmp11_);
+#line 156 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ metadata = _tmp12_;
+#line 157 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = metadata;
+#line 157 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (NULL == _tmp13_) {
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = NULL;
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw) {
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw = _vala_raw;
+#line 1497 "GPhoto.c"
+ } else {
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = (g_free (_vala_raw), NULL);
+#line 1501 "GPhoto.c"
+ }
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length1) {
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length1 = _vala_raw_length1;
+#line 1507 "GPhoto.c"
+ }
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length) {
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length = _vala_raw_length;
+#line 1513 "GPhoto.c"
+ }
+#line 158 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1517 "GPhoto.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14_ = metadata;
+#line 159 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15_ = photo_metadata_get_preview_count (_tmp14_);
+#line 159 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (((guint) 0) == _tmp15_) {
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = NULL;
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw) {
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw = _vala_raw;
+#line 1533 "GPhoto.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = (g_free (_vala_raw), NULL);
+#line 1537 "GPhoto.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length1) {
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length1 = _vala_raw_length1;
+#line 1543 "GPhoto.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length) {
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length = _vala_raw_length;
+#line 1549 "GPhoto.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1553 "GPhoto.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp16_ = metadata;
+#line 161 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp17_ = metadata;
+#line 161 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18_ = photo_metadata_get_preview_count (_tmp17_);
+#line 161 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp19_ = photo_metadata_get_preview (_tmp16_, _tmp18_ - 1);
+#line 161 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ preview = _tmp19_;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp21_ = preview;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp23_ = photo_preview_flatten (_tmp21_, &_tmp22_, &_inner_error_);
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20_ = _tmp23_;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20__length1 = _tmp22_;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ __tmp20__size_ = _tmp20__length1;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _photo_preview_unref0 (preview);
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 1581 "GPhoto.c"
+ goto __finally59;
+ }
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp24_ = _tmp20_;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp24__length1 = _tmp20__length1;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20__length1 = 0;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = (g_free (_vala_raw), NULL);
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = _tmp24_;
+#line 162 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw_length1 = _tmp24__length1;
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20_ = (g_free (_tmp20_), NULL);
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _photo_preview_unref0 (preview);
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 1604 "GPhoto.c"
+ }
+ __finally59:
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 153 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 1613 "GPhoto.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp25_ = _vala_raw;
+#line 165 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp25__length1 = _vala_raw_length1;
+#line 165 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp25_ == NULL) {
+#line 166 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw_length = (gsize) 0;
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = NULL;
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw) {
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw = _vala_raw;
+#line 1629 "GPhoto.c"
+ } else {
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = (g_free (_vala_raw), NULL);
+#line 1633 "GPhoto.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length1) {
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length1 = _vala_raw_length1;
+#line 1639 "GPhoto.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length) {
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length = _vala_raw_length;
+#line 1645 "GPhoto.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1649 "GPhoto.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26_ = _vala_raw;
+#line 170 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26__length1 = _vala_raw_length1;
+#line 170 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw_length = (gsize) _tmp26__length1;
+#line 176 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp27_ = _vala_raw_length;
+#line 176 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp27_ > ((gsize) 32)) {
+#line 1661 "GPhoto.c"
+ {
+ gsize i = 0UL;
+ gsize _tmp28_ = 0UL;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp28_ = _vala_raw_length;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ i = _tmp28_ - 2;
+#line 1669 "GPhoto.c"
+ {
+ gboolean _tmp29_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29_ = TRUE;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ while (TRUE) {
+#line 1676 "GPhoto.c"
+ gsize _tmp31_ = 0UL;
+ gsize _tmp32_ = 0UL;
+ gboolean _tmp33_ = FALSE;
+ guint8* _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ gsize _tmp35_ = 0UL;
+ guint8 _tmp36_ = 0U;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (!_tmp29_) {
+#line 1686 "GPhoto.c"
+ gsize _tmp30_ = 0UL;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp30_ = i;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ i = _tmp30_ - 1;
+#line 1692 "GPhoto.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp31_ = i;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp32_ = _vala_raw_length;
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (!(_tmp31_ > (_tmp32_ - 32))) {
+#line 177 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ break;
+#line 1704 "GPhoto.c"
+ }
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp34_ = _vala_raw;
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp34__length1 = _vala_raw_length1;
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp35_ = i;
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp36_ = _tmp34_[_tmp35_];
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp36_ == JPEG_MARKER_PREFIX) {
+#line 1716 "GPhoto.c"
+ guint8* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ gsize _tmp38_ = 0UL;
+ guint8 _tmp39_ = 0U;
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp37_ = _vala_raw;
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp37__length1 = _vala_raw_length1;
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp38_ = i;
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp39_ = _tmp37_[_tmp38_ + 1];
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp33_ = _tmp39_ == JPEG_MARKER_EOI;
+#line 1731 "GPhoto.c"
+ } else {
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp33_ = FALSE;
+#line 1735 "GPhoto.c"
+ }
+#line 178 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp33_) {
+#line 1739 "GPhoto.c"
+ const gchar* _tmp40_ = NULL;
+ gsize _tmp41_ = 0UL;
+#line 179 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp40_ = filename;
+#line 179 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_debug ("GPhoto.vala:179: Adjusted length of thumbnail for: %s", _tmp40_);
+#line 180 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp41_ = i;
+#line 180 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw_length = _tmp41_ + 2;
+#line 181 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ break;
+#line 1752 "GPhoto.c"
+ }
+ }
+ }
+ }
+ }
+#line 186 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp42_ = _vala_raw;
+#line 186 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp42__length1 = _vala_raw_length1;
+#line 186 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp43_ = (_tmp42_ != NULL) ? _vala_array_dup23 (_tmp42_, _tmp42__length1) : ((gpointer) _tmp42_);
+#line 186 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp43__length1 = _tmp42__length1;
+#line 186 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp44_ = (GMemoryInputStream*) g_memory_input_stream_new_from_data (_tmp43_, _tmp43__length1, NULL);
+#line 186 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ mins = _tmp44_;
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp46_ = mins;
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp47_ = gdk_pixbuf_new_from_stream_at_scale (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, G_TYPE_INPUT_STREAM, GInputStream), IMPORT_PREVIEW_MAX_SCALE, IMPORT_PREVIEW_MAX_SCALE, TRUE, NULL, &_inner_error_);
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp45_ = _tmp47_;
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (mins);
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 1784 "GPhoto.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp48_ = _tmp45_;
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp45_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = _tmp48_;
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (_tmp45_);
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (mins);
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw) {
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw = _vala_raw;
+#line 1800 "GPhoto.c"
+ } else {
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _vala_raw = (g_free (_vala_raw), NULL);
+#line 1804 "GPhoto.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length1) {
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length1 = _vala_raw_length1;
+#line 1810 "GPhoto.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (raw_length) {
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *raw_length = _vala_raw_length;
+#line 1816 "GPhoto.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1820 "GPhoto.c"
+}
+
+
+GdkPixbuf* gp_load_image (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GError** error) {
+ GdkPixbuf* result = NULL;
+ GInputStream* ins = NULL;
+ GPContext* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GInputStream* _tmp4_ = NULL;
+ GInputStream* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GInputStream* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, NULL);
+#line 190 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 190 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 190 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = context;
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = camera;
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = folder;
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = filename;
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = gp_load_file_into_stream (_tmp0_, _tmp1_, _tmp2_, _tmp3_, GP_FILE_TYPE_NORMAL, &_inner_error_);
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ ins = _tmp4_;
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 192 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 1864 "GPhoto.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp5_ = ins;
+#line 193 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp5_ == NULL) {
+#line 194 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = NULL;
+#line 194 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (ins);
+#line 194 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1876 "GPhoto.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7_ = ins;
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = gdk_pixbuf_new_from_stream (_tmp7_, NULL, &_inner_error_);
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = _tmp8_;
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (ins);
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 1892 "GPhoto.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = _tmp6_;
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = _tmp9_;
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (_tmp6_);
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (ins);
+#line 196 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 1906 "GPhoto.c"
+}
+
+
+void gp_save_image (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GFile* dest_file, GError** error) {
+ CameraFile* camera_file = NULL;
+ int res = 0;
+ CameraFile* _tmp0_ = NULL;
+ int _tmp1_ = 0;
+ int _tmp2_ = 0;
+ Camera* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ CameraFile* _tmp10_ = NULL;
+ GPContext* _tmp11_ = NULL;
+ int _tmp12_ = 0;
+ int _tmp13_ = 0;
+ CameraFile* _tmp20_ = NULL;
+ GFile* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ int _tmp24_ = 0;
+ int _tmp25_ = 0;
+ GError * _inner_error_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (context != NULL);
+#line 199 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (camera != NULL);
+#line 199 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (folder != NULL);
+#line 199 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (filename != NULL);
+#line 199 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_if_fail (G_IS_FILE (dest_file));
+#line 202 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = gp_file_new (&_tmp0_);
+#line 202 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 202 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_file = _tmp0_;
+#line 202 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp1_;
+#line 203 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = res;
+#line 203 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp2_ != GP_OK) {
+#line 1952 "GPhoto.c"
+ int _tmp3_ = 0;
+ int _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = res;
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = res;
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp5_ = gp_port_result_as_string (_tmp4_);
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error allocating camera file: %s", (gint) _tmp3_, _tmp5_);
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp6_;
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 204 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return;
+#line 1973 "GPhoto.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7_ = camera;
+#line 206 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = folder;
+#line 206 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = filename;
+#line 206 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp10_ = camera_file;
+#line 206 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp11_ = context;
+#line 206 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp12_ = gp_camera_file_get (_tmp7_, _tmp8_, _tmp9_, GP_FILE_TYPE_NORMAL, _tmp10_, _tmp11_);
+#line 206 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp12_;
+#line 207 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = res;
+#line 207 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp13_ != GP_OK) {
+#line 1993 "GPhoto.c"
+ int _tmp14_ = 0;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ int _tmp17_ = 0;
+ const gchar* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14_ = res;
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15_ = folder;
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp16_ = filename;
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp17_ = res;
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18_ = gp_port_result_as_string (_tmp17_);
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp19_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error retrieving file object for %s/%s: %s", (gint) _tmp14_, _tmp15_, _tmp16_, _tmp18_);
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp19_;
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 208 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return;
+#line 2020 "GPhoto.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20_ = camera_file;
+#line 211 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp21_ = dest_file;
+#line 211 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp22_ = g_file_get_path (_tmp21_);
+#line 211 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp23_ = _tmp22_;
+#line 211 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp24_ = gp_file_save (_tmp20_, _tmp23_);
+#line 211 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp24_;
+#line 211 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (_tmp23_);
+#line 212 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp25_ = res;
+#line 212 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp25_ != GP_OK) {
+#line 2040 "GPhoto.c"
+ int _tmp26_ = 0;
+ const gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ int _tmp32_ = 0;
+ const gchar* _tmp33_ = NULL;
+ GError* _tmp34_ = NULL;
+ GError* _tmp35_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26_ = res;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp27_ = folder;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp28_ = filename;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29_ = dest_file;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp30_ = g_file_get_path (_tmp29_);
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp31_ = _tmp30_;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp32_ = res;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp33_ = gp_port_result_as_string (_tmp32_);
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp34_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error copying file %s/%s to %s: %s", (gint) _tmp26_, _tmp27_, _tmp28_, _tmp31_, _tmp33_);
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp35_ = _tmp34_;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (_tmp31_);
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp35_;
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 213 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return;
+#line 2081 "GPhoto.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 2085 "GPhoto.c"
+}
+
+
+PhotoMetadata* gp_load_metadata (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GError** error) {
+ PhotoMetadata* result = NULL;
+ guint8* camera_raw = NULL;
+ gint camera_raw_length1 = 0;
+ gint _camera_raw_size_ = 0;
+ gboolean _tmp13_ = FALSE;
+ guint8* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp16_ = NULL;
+ PhotoMetadata* _tmp17_ = NULL;
+ guint8* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, NULL);
+#line 217 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 217 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 217 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 219 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = NULL;
+#line 219 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw_length1 = 0;
+#line 219 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _camera_raw_size_ = camera_raw_length1;
+#line 2117 "GPhoto.c"
+ {
+ guint8* _tmp0_ = NULL;
+ GPContext* _tmp1_ = NULL;
+ Camera* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ guint8* _tmp6_ = NULL;
+ gint _tmp0__length1 = 0;
+ gint __tmp0__size_ = 0;
+ guint8* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = context;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = camera;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = folder;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = filename;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = gp_load_file_into_buffer (_tmp1_, _tmp2_, _tmp3_, _tmp4_, GP_FILE_TYPE_EXIF, &_tmp5_, &_inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = _tmp6_;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0__length1 = _tmp5_;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ __tmp0__size_ = _tmp0__length1;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2148 "GPhoto.c"
+ goto __catch60_g_error;
+ }
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7_ = _tmp0_;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7__length1 = _tmp0__length1;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0__length1 = 0;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = (g_free (camera_raw), NULL);
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = _tmp7_;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw_length1 = _tmp7__length1;
+#line 221 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _camera_raw_size_ = camera_raw_length1;
+#line 220 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = (g_free (_tmp0_), NULL);
+#line 2169 "GPhoto.c"
+ }
+ goto __finally60;
+ __catch60_g_error:
+ {
+ Camera* _tmp8_ = NULL;
+ GPContext* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ PhotoMetadata* _tmp12_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_clear_error (&_inner_error_);
+#line 220 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = camera;
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = context;
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp10_ = folder;
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp11_ = filename;
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp12_ = gp_get_fallback_metadata (_tmp8_, _tmp9_, _tmp10_, _tmp11_);
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = _tmp12_;
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = (g_free (camera_raw), NULL);
+#line 223 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 2199 "GPhoto.c"
+ }
+ __finally60:
+#line 220 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 220 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 220 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = (g_free (camera_raw), NULL);
+#line 220 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2210 "GPhoto.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14_ = camera_raw;
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14__length1 = camera_raw_length1;
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp14_ == NULL) {
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = TRUE;
+#line 2220 "GPhoto.c"
+ } else {
+ guint8* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15_ = camera_raw;
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15__length1 = camera_raw_length1;
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = _tmp15__length1 == 0;
+#line 2230 "GPhoto.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp13_) {
+#line 227 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = NULL;
+#line 227 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = (g_free (camera_raw), NULL);
+#line 227 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 2240 "GPhoto.c"
+ }
+#line 229 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp16_ = photo_metadata_new ();
+#line 229 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ metadata = _tmp16_;
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp17_ = metadata;
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18_ = camera_raw;
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18__length1 = camera_raw_length1;
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ photo_metadata_read_from_app1_segment (_tmp17_, _tmp18_, _tmp18__length1, 0, &_inner_error_);
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = (g_free (camera_raw), NULL);
+#line 230 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2264 "GPhoto.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = metadata;
+#line 232 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_raw = (g_free (camera_raw), NULL);
+#line 232 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 2272 "GPhoto.c"
+}
+
+
+static guint8* _vala_array_dup24 (guint8* self, int length) {
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 2279 "GPhoto.c"
+}
+
+
+static void _gp_on_mins_destroyed_gdestroy_notify (void* data) {
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ gp_on_mins_destroyed (data);
+#line 2286 "GPhoto.c"
+}
+
+
+GInputStream* gp_load_file_into_stream (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, CameraFileType filetype, GError** error) {
+ GInputStream* result = NULL;
+ CameraFile* camera_file = NULL;
+ int res = 0;
+ CameraFile* _tmp0_ = NULL;
+ int _tmp1_ = 0;
+ int _tmp2_ = 0;
+ Camera* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ CameraFileType _tmp10_ = 0;
+ GPContext* _tmp11_ = NULL;
+ int _tmp12_ = 0;
+ int _tmp13_ = 0;
+ guint8* data = NULL;
+ gulong data_len = 0UL;
+ guint8* _tmp20_ = NULL;
+ gulong _tmp21_ = 0UL;
+ int _tmp22_ = 0;
+ int _tmp23_ = 0;
+ GFile* temp = NULL;
+ GFile* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ GFile* _tmp35_ = NULL;
+ GFile* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ int _tmp39_ = 0;
+ int _tmp40_ = 0;
+ GFileInputStream* _tmp51_ = NULL;
+ GFile* _tmp52_ = NULL;
+ GFileInputStream* _tmp53_ = NULL;
+ GFileInputStream* _tmp54_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, NULL);
+#line 237 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 237 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 237 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 240 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = gp_file_new (&_tmp0_);
+#line 240 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 240 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_file = _tmp0_;
+#line 240 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp1_;
+#line 241 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = res;
+#line 241 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp2_ != GP_OK) {
+#line 2345 "GPhoto.c"
+ int _tmp3_ = 0;
+ int _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = res;
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = res;
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp5_ = gp_port_result_as_string (_tmp4_);
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error allocating camera file: %s", (gint) _tmp3_, _tmp5_);
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp6_;
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 242 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2366 "GPhoto.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7_ = camera;
+#line 244 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = folder;
+#line 244 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = filename;
+#line 244 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp10_ = filetype;
+#line 244 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp11_ = context;
+#line 244 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp12_ = gp_camera_file_get (_tmp7_, _tmp8_, _tmp9_, _tmp10_, camera_file, _tmp11_);
+#line 244 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp12_;
+#line 245 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = res;
+#line 245 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp13_ != GP_OK) {
+#line 2386 "GPhoto.c"
+ int _tmp14_ = 0;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ int _tmp17_ = 0;
+ const gchar* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14_ = res;
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15_ = folder;
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp16_ = filename;
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp17_ = res;
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18_ = gp_port_result_as_string (_tmp17_);
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp19_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error retrieving file object for %s/%s: %s", (gint) _tmp14_, _tmp15_, _tmp16_, _tmp18_);
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp19_;
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 246 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2413 "GPhoto.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp22_ = gp_file_get_data_and_size (camera_file, &_tmp20_, &_tmp21_);
+#line 254 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ data = _tmp20_;
+#line 254 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ data_len = _tmp21_;
+#line 254 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp22_;
+#line 255 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp23_ = res;
+#line 255 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp23_ == GP_OK) {
+#line 2427 "GPhoto.c"
+ guint8* buffer = NULL;
+ gulong _tmp24_ = 0UL;
+ guint8* _tmp25_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ guint8* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ guint8* _tmp27_ = NULL;
+ guint8* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ guint8* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ guint8* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ GMemoryInputStream* _tmp31_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp24_ = data_len;
+#line 256 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp25_ = g_new0 (guint8, _tmp24_);
+#line 256 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ buffer = _tmp25_;
+#line 256 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ buffer_length1 = _tmp24_;
+#line 256 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _buffer_size_ = buffer_length1;
+#line 257 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26_ = buffer;
+#line 257 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26__length1 = buffer_length1;
+#line 257 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp27_ = data;
+#line 257 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp28_ = buffer;
+#line 257 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp28__length1 = buffer_length1;
+#line 257 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ memcpy (_tmp26_, _tmp27_, (gsize) _tmp28__length1);
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29_ = buffer;
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29__length1 = buffer_length1;
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp30_ = (_tmp29_ != NULL) ? _vala_array_dup24 (_tmp29_, _tmp29__length1) : ((gpointer) _tmp29_);
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp30__length1 = _tmp29__length1;
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp31_ = (GMemoryInputStream*) g_memory_input_stream_new_from_data (_tmp30_, _tmp30__length1, _gp_on_mins_destroyed_gdestroy_notify);
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, G_TYPE_INPUT_STREAM, GInputStream);
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ buffer = (g_free (buffer), NULL);
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 259 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 2483 "GPhoto.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp32_ = app_dirs_get_temp_dir ();
+#line 263 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp33_ = _tmp32_;
+#line 263 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp34_ = g_file_get_child (_tmp33_, "import.tmp");
+#line 263 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp35_ = _tmp34_;
+#line 263 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (_tmp33_);
+#line 263 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ temp = _tmp35_;
+#line 264 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp36_ = temp;
+#line 264 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp37_ = g_file_get_path (_tmp36_);
+#line 264 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp38_ = _tmp37_;
+#line 264 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp39_ = gp_file_save (camera_file, _tmp38_);
+#line 264 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp39_;
+#line 264 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (_tmp38_);
+#line 265 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp40_ = res;
+#line 265 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp40_ != GP_OK) {
+#line 2513 "GPhoto.c"
+ int _tmp41_ = 0;
+ const gchar* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ GFile* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ int _tmp47_ = 0;
+ const gchar* _tmp48_ = NULL;
+ GError* _tmp49_ = NULL;
+ GError* _tmp50_ = NULL;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp41_ = res;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp42_ = folder;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp43_ = filename;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp44_ = temp;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp45_ = g_file_get_path (_tmp44_);
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp46_ = _tmp45_;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp47_ = res;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp48_ = gp_port_result_as_string (_tmp47_);
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp49_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error copying file %s/%s to %s: %s", (gint) _tmp41_, _tmp42_, _tmp43_, _tmp46_, _tmp48_);
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp50_ = _tmp49_;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_free0 (_tmp46_);
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp50_;
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (temp);
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 266 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2556 "GPhoto.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp52_ = temp;
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp53_ = g_file_read (_tmp52_, NULL, &_inner_error_);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp51_ = _tmp53_;
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (temp);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2574 "GPhoto.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp54_ = _tmp51_;
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp51_ = NULL;
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, G_TYPE_INPUT_STREAM, GInputStream);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (_tmp51_);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _g_object_unref0 (temp);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 269 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 2590 "GPhoto.c"
+}
+
+
+void gp_on_mins_destroyed (void* data) {
+ void* _tmp0_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp0_ = data;
+#line 273 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_free (_tmp0_);
+#line 2600 "GPhoto.c"
+}
+
+
+guint8* gp_load_file_into_buffer (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, CameraFileType filetype, int* result_length1, GError** error) {
+ guint8* result = NULL;
+ CameraFile* camera_file = NULL;
+ int res = 0;
+ CameraFile* _tmp0_ = NULL;
+ int _tmp1_ = 0;
+ int _tmp2_ = 0;
+ Camera* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ CameraFileType _tmp10_ = 0;
+ CameraFile* _tmp11_ = NULL;
+ GPContext* _tmp12_ = NULL;
+ int _tmp13_ = 0;
+ int _tmp14_ = 0;
+ guint8* data = NULL;
+ gulong data_len = 0UL;
+ CameraFile* _tmp21_ = NULL;
+ guint8* _tmp22_ = NULL;
+ gulong _tmp23_ = 0UL;
+ int _tmp24_ = 0;
+ int _tmp25_ = 0;
+ guint8* buffer = NULL;
+ gulong _tmp27_ = 0UL;
+ guint8* _tmp28_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ guint8* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ guint8* _tmp30_ = NULL;
+ guint8* _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ guint8* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (context != NULL, NULL);
+#line 277 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 277 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 277 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 280 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp1_ = gp_file_new (&_tmp0_);
+#line 280 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 280 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ camera_file = _tmp0_;
+#line 280 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp1_;
+#line 281 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp2_ = res;
+#line 281 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp2_ != GP_OK) {
+#line 2659 "GPhoto.c"
+ int _tmp3_ = 0;
+ int _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp3_ = res;
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp4_ = res;
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp5_ = gp_port_result_as_string (_tmp4_);
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp6_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error allocating camera file: %s", (gint) _tmp3_, _tmp5_);
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp6_;
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 282 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2680 "GPhoto.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp7_ = camera;
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp8_ = folder;
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp9_ = filename;
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp10_ = filetype;
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp11_ = camera_file;
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp12_ = context;
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp13_ = gp_camera_file_get (_tmp7_, _tmp8_, _tmp9_, _tmp10_, _tmp11_, _tmp12_);
+#line 284 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp13_;
+#line 285 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp14_ = res;
+#line 285 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp14_ != GP_OK) {
+#line 2702 "GPhoto.c"
+ int _tmp15_ = 0;
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ int _tmp18_ = 0;
+ const gchar* _tmp19_ = NULL;
+ GError* _tmp20_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp15_ = res;
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp16_ = folder;
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp17_ = filename;
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp18_ = res;
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp19_ = gp_port_result_as_string (_tmp18_);
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp20_ = g_error_new (GPHOTO_ERROR, GPHOTO_ERROR_LIBRARY, "[%d] Error retrieving file object for %s/%s: %s", (gint) _tmp15_, _tmp16_, _tmp17_, _tmp19_);
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _inner_error_ = _tmp20_;
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 286 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return NULL;
+#line 2729 "GPhoto.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp21_ = camera_file;
+#line 293 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp24_ = gp_file_get_data_and_size (_tmp21_, &_tmp22_, &_tmp23_);
+#line 293 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ data = _tmp22_;
+#line 293 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ data_len = _tmp23_;
+#line 293 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ res = _tmp24_;
+#line 294 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp25_ = res;
+#line 294 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (_tmp25_ != GP_OK) {
+#line 2745 "GPhoto.c"
+ guint8* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+#line 295 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26_ = NULL;
+#line 295 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp26__length1 = 0;
+#line 295 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (result_length1) {
+#line 295 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *result_length1 = _tmp26__length1;
+#line 2756 "GPhoto.c"
+ }
+#line 295 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = _tmp26_;
+#line 295 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 295 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 2764 "GPhoto.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp27_ = data_len;
+#line 297 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp28_ = g_new0 (guint8, _tmp27_);
+#line 297 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ buffer = _tmp28_;
+#line 297 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ buffer_length1 = _tmp27_;
+#line 297 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _buffer_size_ = buffer_length1;
+#line 298 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29_ = buffer;
+#line 298 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp29__length1 = buffer_length1;
+#line 298 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp30_ = data;
+#line 298 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp31_ = buffer;
+#line 298 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp31__length1 = buffer_length1;
+#line 298 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ memcpy (_tmp29_, _tmp30_, (gsize) _tmp31__length1);
+#line 300 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp32_ = buffer;
+#line 300 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _tmp32__length1 = buffer_length1;
+#line 300 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ if (result_length1) {
+#line 300 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ *result_length1 = _tmp32__length1;
+#line 2796 "GPhoto.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ result = _tmp32_;
+#line 300 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ _gp_file_unref0 (camera_file);
+#line 300 "/home/jens/Source/shotwell/src/camera/GPhoto.vala"
+ return result;
+#line 2804 "GPhoto.c"
+}
+
+
+
diff --git a/src/camera/ImportPage.c b/src/camera/ImportPage.c
new file mode 100644
index 0000000..810c2b6
--- /dev/null
+++ b/src/camera/ImportPage.c
@@ -0,0 +1,13681 @@
+/* ImportPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from ImportPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <time.h>
+#include <gphoto2/gphoto2-camera.h>
+#include <gphoto.h>
+#include <gphoto2/gphoto2-result.h>
+#include <gphoto2/gphoto2-port-result.h>
+#include <float.h>
+#include <math.h>
+#include <gphoto2/gphoto2-context.h>
+#include <cairo.h>
+#include <gdk/gdk.h>
+#include <pango/pango.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <gtk/gtk.h>
+#include <gphoto2/gphoto2-abilities-list.h>
+#include <gphoto2/gphoto2-list.h>
+#include <gphoto2/gphoto2-filesys.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_IMPORT_SOURCE_COLLECTION (import_source_collection_get_type ())
+#define IMPORT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_SOURCE_COLLECTION, ImportSourceCollection))
+#define IMPORT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_SOURCE_COLLECTION, ImportSourceCollectionClass))
+#define IS_IMPORT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_SOURCE_COLLECTION))
+#define IS_IMPORT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_SOURCE_COLLECTION))
+#define IMPORT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_SOURCE_COLLECTION, ImportSourceCollectionClass))
+
+typedef struct _ImportSourceCollection ImportSourceCollection;
+typedef struct _ImportSourceCollectionClass ImportSourceCollectionClass;
+typedef struct _ImportSourceCollectionPrivate ImportSourceCollectionPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_IMPORT_SOURCE (import_source_get_type ())
+#define IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_SOURCE, ImportSource))
+#define IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_SOURCE, ImportSourceClass))
+#define IS_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_SOURCE))
+#define IS_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_SOURCE))
+#define IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_SOURCE, ImportSourceClass))
+
+typedef struct _ImportSource ImportSource;
+typedef struct _ImportSourceClass ImportSourceClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+typedef struct _ImportSourcePrivate ImportSourcePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _gp_camera_unref0(var) ((var == NULL) ? NULL : (var = (gp_camera_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define GP_TYPE_CONTEXT_WRAPPER (gp_context_wrapper_get_type ())
+#define GP_CONTEXT_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper))
+#define GP_CONTEXT_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GP_TYPE_CONTEXT_WRAPPER, GPContextWrapperClass))
+#define GP_IS_CONTEXT_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GP_TYPE_CONTEXT_WRAPPER))
+#define GP_IS_CONTEXT_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GP_TYPE_CONTEXT_WRAPPER))
+#define GP_CONTEXT_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GP_TYPE_CONTEXT_WRAPPER, GPContextWrapperClass))
+
+typedef struct _GPContextWrapper GPContextWrapper;
+typedef struct _GPContextWrapperClass GPContextWrapperClass;
+
+#define GP_TYPE_SPIN_IDLE_WRAPPER (gp_spin_idle_wrapper_get_type ())
+#define GP_SPIN_IDLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapper))
+#define GP_SPIN_IDLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapperClass))
+#define GP_IS_SPIN_IDLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GP_TYPE_SPIN_IDLE_WRAPPER))
+#define GP_IS_SPIN_IDLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GP_TYPE_SPIN_IDLE_WRAPPER))
+#define GP_SPIN_IDLE_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GP_TYPE_SPIN_IDLE_WRAPPER, GPSpinIdleWrapperClass))
+
+typedef struct _GPSpinIdleWrapper GPSpinIdleWrapper;
+typedef struct _GPSpinIdleWrapperClass GPSpinIdleWrapperClass;
+typedef struct _GPContextWrapperPrivate GPContextWrapperPrivate;
+
+#define TYPE_VIDEO_IMPORT_SOURCE (video_import_source_get_type ())
+#define VIDEO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource))
+#define VIDEO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_IMPORT_SOURCE, VideoImportSourceClass))
+#define IS_VIDEO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_IMPORT_SOURCE))
+#define IS_VIDEO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_IMPORT_SOURCE))
+#define VIDEO_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_IMPORT_SOURCE, VideoImportSourceClass))
+
+typedef struct _VideoImportSource VideoImportSource;
+typedef struct _VideoImportSourceClass VideoImportSourceClass;
+typedef struct _VideoImportSourcePrivate VideoImportSourcePrivate;
+
+#define TYPE_PHOTO_IMPORT_SOURCE (photo_import_source_get_type ())
+#define PHOTO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource))
+#define PHOTO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSourceClass))
+#define IS_PHOTO_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_IMPORT_SOURCE))
+#define IS_PHOTO_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_IMPORT_SOURCE))
+#define PHOTO_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSourceClass))
+
+typedef struct _PhotoImportSource PhotoImportSource;
+typedef struct _PhotoImportSourceClass PhotoImportSourceClass;
+typedef struct _PhotoImportSourcePrivate PhotoImportSourcePrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+typedef struct _MediaSourceItemPrivate MediaSourceItemPrivate;
+
+#define TYPE_IMPORT_PREVIEW (import_preview_get_type ())
+#define IMPORT_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_PREVIEW, ImportPreview))
+#define IMPORT_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_PREVIEW, ImportPreviewClass))
+#define IS_IMPORT_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_PREVIEW))
+#define IS_IMPORT_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_PREVIEW))
+#define IMPORT_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_PREVIEW, ImportPreviewClass))
+
+typedef struct _ImportPreview ImportPreview;
+typedef struct _ImportPreviewClass ImportPreviewClass;
+typedef struct _ImportPreviewPrivate ImportPreviewPrivate;
+
+#define TYPE_DUPLICATED_FILE (duplicated_file_get_type ())
+#define DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATED_FILE, DuplicatedFile))
+#define DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+#define IS_DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATED_FILE))
+#define IS_DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATED_FILE))
+#define DUPLICATED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+
+typedef struct _DuplicatedFile DuplicatedFile;
+typedef struct _DuplicatedFileClass DuplicatedFileClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_VIDEO_ID (video_id_get_type ())
+typedef struct _VideoID VideoID;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+typedef struct _CoreTrackerPrivate CoreTrackerPrivate;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+typedef struct _CoreViewTrackerPrivate CoreViewTrackerPrivate;
+
+#define TYPE_CAMERA_VIEW_TRACKER (camera_view_tracker_get_type ())
+#define CAMERA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CAMERA_VIEW_TRACKER, CameraViewTracker))
+#define CAMERA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CAMERA_VIEW_TRACKER, CameraViewTrackerClass))
+#define IS_CAMERA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CAMERA_VIEW_TRACKER))
+#define IS_CAMERA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CAMERA_VIEW_TRACKER))
+#define CAMERA_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CAMERA_VIEW_TRACKER, CameraViewTrackerClass))
+
+typedef struct _CameraViewTracker CameraViewTracker;
+typedef struct _CameraViewTrackerClass CameraViewTrackerClass;
+typedef struct _CameraViewTrackerPrivate CameraViewTrackerPrivate;
+
+#define TYPE_CAMERA_ACCUMULATOR (camera_accumulator_get_type ())
+#define CAMERA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CAMERA_ACCUMULATOR, CameraAccumulator))
+#define CAMERA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CAMERA_ACCUMULATOR, CameraAccumulatorClass))
+#define IS_CAMERA_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CAMERA_ACCUMULATOR))
+#define IS_CAMERA_ACCUMULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CAMERA_ACCUMULATOR))
+#define CAMERA_ACCUMULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CAMERA_ACCUMULATOR, CameraAccumulatorClass))
+
+typedef struct _CameraAccumulator CameraAccumulator;
+typedef struct _CameraAccumulatorClass CameraAccumulatorClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define CORE_TYPE_TRACKER_ACCUMULATOR (core_tracker_accumulator_get_type ())
+#define CORE_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator))
+#define CORE_IS_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR))
+#define CORE_TRACKER_ACCUMULATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulatorIface))
+
+typedef struct _CoreTrackerAccumulator CoreTrackerAccumulator;
+typedef struct _CoreTrackerAccumulatorIface CoreTrackerAccumulatorIface;
+typedef struct _CameraAccumulatorPrivate CameraAccumulatorPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define TYPE_IMPORT_PAGE (import_page_get_type ())
+#define IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_PAGE, ImportPage))
+#define IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_PAGE, ImportPageClass))
+#define IS_IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_PAGE))
+#define IS_IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_PAGE))
+#define IMPORT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_PAGE, ImportPageClass))
+
+typedef struct _ImportPage ImportPage;
+typedef struct _ImportPageClass ImportPageClass;
+typedef struct _ImportPagePrivate ImportPagePrivate;
+
+#define IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER (import_page_import_page_search_view_filter_get_type ())
+#define IMPORT_PAGE_IMPORT_PAGE_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER, ImportPageImportPageSearchViewFilter))
+#define IMPORT_PAGE_IMPORT_PAGE_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER, ImportPageImportPageSearchViewFilterClass))
+#define IMPORT_PAGE_IS_IMPORT_PAGE_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER))
+#define IMPORT_PAGE_IS_IMPORT_PAGE_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER))
+#define IMPORT_PAGE_IMPORT_PAGE_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER, ImportPageImportPageSearchViewFilterClass))
+
+typedef struct _ImportPageImportPageSearchViewFilter ImportPageImportPageSearchViewFilter;
+typedef struct _ImportPageImportPageSearchViewFilterClass ImportPageImportPageSearchViewFilterClass;
+
+#define IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER (import_page_hide_imported_view_filter_get_type ())
+#define IMPORT_PAGE_HIDE_IMPORTED_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER, ImportPageHideImportedViewFilter))
+#define IMPORT_PAGE_HIDE_IMPORTED_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER, ImportPageHideImportedViewFilterClass))
+#define IMPORT_PAGE_IS_HIDE_IMPORTED_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER))
+#define IMPORT_PAGE_IS_HIDE_IMPORTED_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER))
+#define IMPORT_PAGE_HIDE_IMPORTED_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER, ImportPageHideImportedViewFilterClass))
+
+typedef struct _ImportPageHideImportedViewFilter ImportPageHideImportedViewFilter;
+typedef struct _ImportPageHideImportedViewFilterClass ImportPageHideImportedViewFilterClass;
+
+#define IMPORT_PAGE_TYPE_REFRESH_RESULT (import_page_refresh_result_get_type ())
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+#define _core_tracker_unref0(var) ((var == NULL) ? NULL : (var = (core_tracker_unref (var), NULL)))
+#define _gp_context_wrapper_unref0(var) ((var == NULL) ? NULL : (var = (gp_context_wrapper_unref (var), NULL)))
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+
+#define IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER (import_page_import_view_manager_get_type ())
+#define IMPORT_PAGE_IMPORT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER, ImportPageImportViewManager))
+#define IMPORT_PAGE_IMPORT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER, ImportPageImportViewManagerClass))
+#define IMPORT_PAGE_IS_IMPORT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER))
+#define IMPORT_PAGE_IS_IMPORT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER))
+#define IMPORT_PAGE_IMPORT_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER, ImportPageImportViewManagerClass))
+
+typedef struct _ImportPageImportViewManager ImportPageImportViewManager;
+typedef struct _ImportPageImportViewManagerClass ImportPageImportViewManagerClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+
+#define IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB (import_page_camera_import_job_get_type ())
+#define IMPORT_PAGE_CAMERA_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob))
+#define IMPORT_PAGE_CAMERA_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJobClass))
+#define IMPORT_PAGE_IS_CAMERA_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB))
+#define IMPORT_PAGE_IS_CAMERA_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB))
+#define IMPORT_PAGE_CAMERA_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJobClass))
+
+typedef struct _ImportPageCameraImportJob ImportPageCameraImportJob;
+typedef struct _ImportPageCameraImportJobClass ImportPageCameraImportJobClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+#define _gp_list_unref0(var) ((var == NULL) ? NULL : (var = (gp_list_unref (var), NULL)))
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+
+#define TYPE_BATCH_IMPORT_RESULT (batch_import_result_get_type ())
+#define BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResult))
+#define BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+#define IS_BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_RESULT))
+#define IS_BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_RESULT))
+#define BATCH_IMPORT_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+
+typedef struct _BatchImportResult BatchImportResult;
+typedef struct _BatchImportResultClass BatchImportResultClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+#define _import_manifest_unref0(var) ((var == NULL) ? NULL : (var = (import_manifest_unref (var), NULL)))
+typedef struct _BatchImportResultPrivate BatchImportResultPrivate;
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+typedef struct _ImportManifestPrivate ImportManifestPrivate;
+
+#define IMPORT_UI_TYPE_QUESTION_PARAMS (import_ui_question_params_get_type ())
+#define IMPORT_UI_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParams))
+#define IMPORT_UI_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+#define IMPORT_UI_IS_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_IS_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_QUESTION_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+
+typedef struct _ImportUIQuestionParams ImportUIQuestionParams;
+typedef struct _ImportUIQuestionParamsClass ImportUIQuestionParamsClass;
+#define _import_ui_question_params_unref0(var) ((var == NULL) ? NULL : (var = (import_ui_question_params_unref (var), NULL)))
+#define _batch_import_result_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_result_unref (var), NULL)))
+
+#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
+#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
+#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
+#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
+#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+
+typedef struct _ProgressDialog ProgressDialog;
+typedef struct _ProgressDialogClass ProgressDialogClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+typedef struct _ImportPageImportViewManagerPrivate ImportPageImportViewManagerPrivate;
+typedef struct _BatchImportJobPrivate BatchImportJobPrivate;
+typedef struct _ImportPageCameraImportJobPrivate ImportPageCameraImportJobPrivate;
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+#define _backing_photo_row_unref0(var) ((var == NULL) ? NULL : (var = (backing_photo_row_unref (var), NULL)))
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _SearchViewFilterPrivate SearchViewFilterPrivate;
+typedef struct _ImportPageImportPageSearchViewFilterPrivate ImportPageImportPageSearchViewFilterPrivate;
+
+#define TYPE_SEARCH_FILTER_CRITERIA (search_filter_criteria_get_type ())
+typedef struct _ImportPageHideImportedViewFilterPrivate ImportPageHideImportedViewFilterPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _ImportSourceCollection {
+ SourceCollection parent_instance;
+ ImportSourceCollectionPrivate * priv;
+};
+
+struct _ImportSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _ThumbnailSource {
+ DataSource parent_instance;
+ ThumbnailSourcePrivate * priv;
+};
+
+struct _ThumbnailSourceClass {
+ DataSourceClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailSource* self);
+ GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ gchar* (*get_representative_id) (ThumbnailSource* self);
+ PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self);
+ void (*thumbnail_altered) (ThumbnailSource* self);
+};
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _ImportSource {
+ ThumbnailSource parent_instance;
+ ImportSourcePrivate * priv;
+};
+
+struct _ImportSourceClass {
+ ThumbnailSourceClass parent_class;
+ GdkPixbuf* (*get_preview) (ImportSource* self);
+ time_t (*get_exposure_time) (ImportSource* self);
+};
+
+struct _ImportSourcePrivate {
+ gchar* camera_name;
+ Camera* camera;
+ gint fsid;
+ gchar* folder;
+ gchar* filename;
+ gulong file_size;
+ time_t modification_time;
+ GdkPixbuf* preview;
+ gchar* indexable_keywords;
+};
+
+struct _GPContextWrapper {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ GPContextWrapperPrivate * priv;
+ GPContext* context;
+};
+
+struct _GPContextWrapperClass {
+ GTypeClass parent_class;
+ void (*finalize) (GPContextWrapper *self);
+ void (*idle) (GPContextWrapper* self);
+ void (*error) (GPContextWrapper* self, const gchar* text, void* data);
+ void (*status) (GPContextWrapper* self, const gchar* text, void* data);
+ void (*message) (GPContextWrapper* self, const gchar* text, void* data);
+ void (*progress_start) (GPContextWrapper* self, gfloat current, const gchar* text, void* data);
+ void (*progress_update) (GPContextWrapper* self, gfloat current, void* data);
+ void (*progress_stop) (GPContextWrapper* self);
+};
+
+struct _VideoImportSource {
+ ImportSource parent_instance;
+ VideoImportSourcePrivate * priv;
+};
+
+struct _VideoImportSourceClass {
+ ImportSourceClass parent_class;
+};
+
+struct _PhotoImportSource {
+ ImportSource parent_instance;
+ PhotoImportSourcePrivate * priv;
+};
+
+struct _PhotoImportSourceClass {
+ ImportSourceClass parent_class;
+};
+
+struct _PhotoImportSourcePrivate {
+ PhotoFileFormat file_format;
+ gchar* preview_md5;
+ PhotoMetadata* metadata;
+ gchar* exif_md5;
+ PhotoImportSource* associated;
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _MediaSourceItem {
+ CheckerboardItem parent_instance;
+ MediaSourceItemPrivate * priv;
+};
+
+struct _MediaSourceItemClass {
+ CheckerboardItemClass parent_class;
+};
+
+struct _ImportPreview {
+ MediaSourceItem parent_instance;
+ ImportPreviewPrivate * priv;
+};
+
+struct _ImportPreviewClass {
+ MediaSourceItemClass parent_class;
+};
+
+struct _ImportPreviewPrivate {
+ DuplicatedFile* duplicated_file;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _PhotoID {
+ gint64 id;
+};
+
+struct _VideoID {
+ gint64 id;
+};
+
+struct _CoreTracker {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CoreTrackerPrivate * priv;
+};
+
+struct _CoreTrackerClass {
+ GTypeClass parent_class;
+ void (*finalize) (CoreTracker *self);
+ void (*updated) (CoreTracker* self);
+};
+
+struct _CoreViewTracker {
+ CoreTracker parent_instance;
+ CoreViewTrackerPrivate * priv;
+};
+
+struct _CoreViewTrackerClass {
+ CoreTrackerClass parent_class;
+};
+
+struct _CameraViewTracker {
+ CoreViewTracker parent_instance;
+ CameraViewTrackerPrivate * priv;
+ CameraAccumulator* all;
+ CameraAccumulator* visible;
+ CameraAccumulator* selected;
+};
+
+struct _CameraViewTrackerClass {
+ CoreViewTrackerClass parent_class;
+};
+
+struct _CoreTrackerAccumulatorIface {
+ GTypeInterface parent_iface;
+ gboolean (*include) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*uninclude) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*altered) (CoreTrackerAccumulator* self, DataObject* object, Alteration* alteration);
+};
+
+struct _CameraAccumulator {
+ GObject parent_instance;
+ CameraAccumulatorPrivate * priv;
+};
+
+struct _CameraAccumulatorClass {
+ GObjectClass parent_class;
+};
+
+struct _CameraAccumulatorPrivate {
+ gint _total;
+ gint _photos;
+ gint _videos;
+ gint _raw;
+};
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+struct _ImportPage {
+ CheckerboardPage parent_instance;
+ ImportPagePrivate * priv;
+};
+
+struct _ImportPageClass {
+ CheckerboardPageClass parent_class;
+};
+
+struct _ImportPagePrivate {
+ SourceCollection* import_sources;
+ GtkLabel* camera_label;
+ GtkCheckButton* hide_imported;
+ GtkProgressBar* progress_bar;
+ Camera* camera;
+ gchar* uri;
+ gboolean busy;
+ gboolean refreshed;
+ int refresh_result;
+ gchar* refresh_error;
+ gchar* camera_name;
+ GVolumeMonitor* volume_monitor;
+ ImportPage* local_ref;
+ gchar* icon;
+ ImportPageImportPageSearchViewFilter* search_filter;
+ ImportPageHideImportedViewFilter* hide_imported_filter;
+ CameraViewTracker* tracker;
+};
+
+typedef enum {
+ IMPORT_PAGE_REFRESH_RESULT_OK,
+ IMPORT_PAGE_REFRESH_RESULT_BUSY,
+ IMPORT_PAGE_REFRESH_RESULT_LOCKED,
+ IMPORT_PAGE_REFRESH_RESULT_LIBRARY_ERROR
+} ImportPageRefreshResult;
+
+typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
+typedef void (*BatchImportImportReporter) (ImportManifest* manifest, BatchImportRoll* import_roll, void* user_data);
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+struct _BatchImportResult {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportResultPrivate * priv;
+ BatchImportJob* job;
+ GFile* file;
+ gchar* src_identifier;
+ gchar* dest_identifier;
+ ImportResult result;
+ gchar* errmsg;
+ DuplicatedFile* duplicate_of;
+};
+
+struct _BatchImportResultClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportResult *self);
+};
+
+struct _ImportManifest {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ImportManifestPrivate * priv;
+ GeeList* imported;
+ GeeList* success;
+ GeeList* camera_failed;
+ GeeList* failed;
+ GeeList* write_failed;
+ GeeList* skipped_photos;
+ GeeList* skipped_files;
+ GeeList* aborted;
+ GeeList* already_imported;
+ GeeList* corrupt_files;
+ GeeList* all;
+};
+
+struct _ImportManifestClass {
+ GTypeClass parent_class;
+ void (*finalize) (ImportManifest *self);
+};
+
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _ImportPageImportViewManager {
+ ViewManager parent_instance;
+ ImportPageImportViewManagerPrivate * priv;
+};
+
+struct _ImportPageImportViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _ImportPageImportViewManagerPrivate {
+ ImportPage* owner;
+};
+
+struct _BatchImportJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportJobPrivate * priv;
+};
+
+struct _BatchImportJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportJob *self);
+ gchar* (*get_dest_identifier) (BatchImportJob* self);
+ gchar* (*get_source_identifier) (BatchImportJob* self);
+ gboolean (*is_directory) (BatchImportJob* self);
+ gchar* (*get_basename) (BatchImportJob* self);
+ gchar* (*get_path) (BatchImportJob* self);
+ DuplicatedFile* (*get_duplicated_file) (BatchImportJob* self);
+ void (*set_associated) (BatchImportJob* self, BatchImportJob* associated);
+ gboolean (*determine_file_size) (BatchImportJob* self, guint64* filesize, GFile** file_or_dir);
+ gboolean (*prepare) (BatchImportJob* self, GFile** file_to_import, gboolean* copy_to_library, GError** error);
+ gboolean (*complete) (BatchImportJob* self, MediaSource* source, BatchImportRoll* import_roll, GError** error);
+ time_t (*get_exposure_time_override) (BatchImportJob* self);
+};
+
+struct _ImportPageCameraImportJob {
+ BatchImportJob parent_instance;
+ ImportPageCameraImportJobPrivate * priv;
+};
+
+struct _ImportPageCameraImportJobClass {
+ BatchImportJobClass parent_class;
+};
+
+struct _ImportPageCameraImportJobPrivate {
+ GPContextWrapper* context;
+ ImportSource* import_file;
+ Camera* camera;
+ gchar* fulldir;
+ gchar* filename;
+ guint64 filesize;
+ PhotoMetadata* metadata;
+ time_t exposure_time;
+ ImportPageCameraImportJob* associated;
+ BackingPhotoRow* associated_file;
+ DuplicatedFile* duplicated_file;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _SearchViewFilter {
+ ViewFilter parent_instance;
+ SearchViewFilterPrivate * priv;
+};
+
+struct _SearchViewFilterClass {
+ ViewFilterClass parent_class;
+ guint (*get_criteria) (SearchViewFilter* self);
+};
+
+struct _ImportPageImportPageSearchViewFilter {
+ SearchViewFilter parent_instance;
+ ImportPageImportPageSearchViewFilterPrivate * priv;
+};
+
+struct _ImportPageImportPageSearchViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+typedef enum {
+ SEARCH_FILTER_CRITERIA_NONE = 0,
+ SEARCH_FILTER_CRITERIA_RECURSIVE = 1 << 0,
+ SEARCH_FILTER_CRITERIA_TEXT = 1 << 1,
+ SEARCH_FILTER_CRITERIA_FLAG = 1 << 2,
+ SEARCH_FILTER_CRITERIA_MEDIA = 1 << 3,
+ SEARCH_FILTER_CRITERIA_RATING = 1 << 4,
+ SEARCH_FILTER_CRITERIA_SAVEDSEARCH = 1 << 5,
+ SEARCH_FILTER_CRITERIA_ALL = 0xFFFFFFFFLL
+} SearchFilterCriteria;
+
+struct _ImportPageHideImportedViewFilter {
+ ViewFilter parent_instance;
+ ImportPageHideImportedViewFilterPrivate * priv;
+};
+
+struct _ImportPageHideImportedViewFilterClass {
+ ViewFilterClass parent_class;
+};
+
+
+static gpointer import_source_collection_parent_class = NULL;
+static gpointer import_source_parent_class = NULL;
+extern GPSpinIdleWrapper* import_page_spin_idle_context;
+static IndexableIface* import_source_indexable_parent_iface = NULL;
+static gpointer video_import_source_parent_class = NULL;
+static gpointer photo_import_source_parent_class = NULL;
+static gpointer import_preview_parent_class = NULL;
+static GdkPixbuf* import_preview_placeholder_preview;
+static GdkPixbuf* import_preview_placeholder_preview = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+static gpointer camera_view_tracker_parent_class = NULL;
+static gpointer camera_accumulator_parent_class = NULL;
+static CoreTrackerAccumulatorIface* camera_accumulator_core_tracker_accumulator_parent_iface = NULL;
+static gpointer import_page_parent_class = NULL;
+extern GPContextWrapper* import_page_null_context;
+GPContextWrapper* import_page_null_context = NULL;
+GPSpinIdleWrapper* import_page_spin_idle_context = NULL;
+static gpointer import_page_import_view_manager_parent_class = NULL;
+static gpointer import_page_camera_import_job_parent_class = NULL;
+static gpointer import_page_import_page_search_view_filter_parent_class = NULL;
+static gpointer import_page_hide_imported_view_filter_parent_class = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType import_source_collection_get_type (void) G_GNUC_CONST;
+enum {
+ IMPORT_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+ImportSourceCollection* import_source_collection_new (const gchar* name);
+ImportSourceCollection* import_source_collection_construct (GType object_type, const gchar* name);
+SourceCollection* source_collection_construct (GType object_type, const gchar* name);
+static gboolean import_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType import_source_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+#define IMPORT_SOURCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IMPORT_SOURCE, ImportSourcePrivate))
+enum {
+ IMPORT_SOURCE_DUMMY_PROPERTY
+};
+ImportSource* import_source_construct (GType object_type, const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+ThumbnailSource* thumbnail_source_construct (GType object_type, gint64 object_id);
+gchar* indexable_prepare_indexable_string (const gchar* str);
+void import_source_set_preview (ImportSource* self, GdkPixbuf* preview);
+gchar* import_source_get_camera_name (ImportSource* self);
+Camera* import_source_get_camera (ImportSource* self);
+gint import_source_get_fsid (ImportSource* self);
+gchar* import_source_get_folder (ImportSource* self);
+gchar* import_source_get_filename (ImportSource* self);
+gulong import_source_get_filesize (ImportSource* self);
+time_t import_source_get_modification_time (ImportSource* self);
+GdkPixbuf* import_source_get_preview (ImportSource* self);
+static GdkPixbuf* import_source_real_get_preview (ImportSource* self);
+time_t import_source_get_exposure_time (ImportSource* self);
+static time_t import_source_real_get_exposure_time (ImportSource* self);
+gchar* import_source_get_fulldir (ImportSource* self);
+gchar* import_page_get_fulldir (Camera* camera, const gchar* camera_name, gint fsid, const gchar* folder);
+static gchar* import_source_real_to_string (DataObject* base);
+static gboolean import_source_real_internal_delete_backing (DataSource* base, GError** error);
+gchar* data_object_to_string (DataObject* self);
+gboolean data_source_internal_delete_backing (DataSource* self, GError** error);
+gpointer gp_context_wrapper_ref (gpointer instance);
+void gp_context_wrapper_unref (gpointer instance);
+GParamSpec* gp_param_spec_context_wrapper (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void gp_value_set_context_wrapper (GValue* value, gpointer v_object);
+void gp_value_take_context_wrapper (GValue* value, gpointer v_object);
+gpointer gp_value_get_context_wrapper (const GValue* value);
+GType gp_context_wrapper_get_type (void) G_GNUC_CONST;
+GType gp_spin_idle_wrapper_get_type (void) G_GNUC_CONST;
+static const gchar* import_source_real_get_indexable_keywords (Indexable* base);
+static void import_source_finalize (GObject* obj);
+GType video_import_source_get_type (void) G_GNUC_CONST;
+enum {
+ VIDEO_IMPORT_SOURCE_DUMMY_PROPERTY
+};
+VideoImportSource* video_import_source_new (const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time);
+VideoImportSource* video_import_source_construct (GType object_type, const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time);
+static GdkPixbuf* video_import_source_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GdkPixbuf* thumbnail_source_create_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+static GdkPixbuf* video_import_source_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+GdkPixbuf* scale_pixbuf (GdkPixbuf* pixbuf, gint scale, GdkInterpType interp, gboolean scale_up);
+static gchar* video_import_source_real_get_typename (DataSource* base);
+static gint64 video_import_source_real_get_instance_id (DataSource* base);
+gint64 data_object_get_object_id (DataObject* self);
+static PhotoFileFormat video_import_source_real_get_preferred_thumbnail_format (ThumbnailSource* base);
+PhotoFileFormat photo_file_format_get_system_default_format (void);
+static gchar* video_import_source_real_get_name (DataObject* base);
+void video_import_source_update (VideoImportSource* self, GdkPixbuf* preview);
+GdkPixbuf* resources_get_noninterpretable_badge_pixbuf (void);
+GType photo_import_source_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+#define PHOTO_IMPORT_SOURCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSourcePrivate))
+enum {
+ PHOTO_IMPORT_SOURCE_DUMMY_PROPERTY
+};
+#define PHOTO_IMPORT_SOURCE_INTERP GDK_INTERP_BILINEAR
+PhotoImportSource* photo_import_source_new (const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time, PhotoFileFormat file_format);
+PhotoImportSource* photo_import_source_construct (GType object_type, const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time, PhotoFileFormat file_format);
+static gchar* photo_import_source_real_get_name (DataObject* base);
+gchar* photo_import_source_get_title (PhotoImportSource* self);
+gboolean is_string_empty (const gchar* s);
+static gchar* photo_import_source_real_get_typename (DataSource* base);
+static gint64 photo_import_source_real_get_instance_id (DataSource* base);
+static PhotoFileFormat photo_import_source_real_get_preferred_thumbnail_format (ThumbnailSource* base);
+gboolean photo_file_format_can_write (PhotoFileFormat self);
+static GdkPixbuf* photo_import_source_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+void photo_import_source_update (PhotoImportSource* self, GdkPixbuf* preview, const gchar* preview_md5, PhotoMetadata* metadata, const gchar* exif_md5);
+static time_t photo_import_source_real_get_exposure_time (ImportSource* base);
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+gchar* media_metadata_get_title (MediaMetadata* self);
+PhotoMetadata* photo_import_source_get_metadata (PhotoImportSource* self);
+static GdkPixbuf* photo_import_source_real_get_preview (ImportSource* base);
+static GdkPixbuf* photo_import_source_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+PhotoFileFormat photo_import_source_get_file_format (PhotoImportSource* self);
+gchar* photo_import_source_get_preview_md5 (PhotoImportSource* self);
+void photo_import_source_set_associated (PhotoImportSource* self, PhotoImportSource* associated);
+PhotoImportSource* photo_import_source_get_associated (PhotoImportSource* self);
+static gboolean photo_import_source_real_internal_delete_backing (DataSource* base, GError** error);
+static void photo_import_source_finalize (GObject* obj);
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType media_source_item_get_type (void) G_GNUC_CONST;
+GType import_preview_get_type (void) G_GNUC_CONST;
+GType duplicated_file_get_type (void) G_GNUC_CONST;
+#define IMPORT_PREVIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IMPORT_PREVIEW, ImportPreviewPrivate))
+enum {
+ IMPORT_PREVIEW_DUMMY_PROPERTY
+};
+#define IMPORT_PREVIEW_MAX_SCALE 128
+ImportPreview* import_preview_new (ImportSource* source);
+ImportPreview* import_preview_construct (GType object_type, ImportSource* source);
+void dimensions_init (Dimensions *self, gint width, gint height);
+gchar* data_object_get_name (DataObject* self);
+MediaSourceItem* media_source_item_new (ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+MediaSourceItem* media_source_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+void media_source_item_set_enable_sprockets (MediaSourceItem* self, gboolean enable_sprockets);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+GdkPixbuf* get_placeholder_pixbuf (void);
+GType orientation_get_type (void) G_GNUC_CONST;
+Orientation photo_metadata_get_orientation (PhotoMetadata* self);
+GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf);
+void checkerboard_item_set_subtitle (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+void checkerboard_item_set_image (CheckerboardItem* self, GdkPixbuf* pixbuf);
+gboolean import_preview_is_already_imported (ImportPreview* self);
+ImportSource* import_preview_get_import_source (ImportPreview* self);
+gboolean library_photo_has_nontrash_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format);
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+DuplicatedFile* duplicated_file_create_from_photo_id (PhotoID* photo_id);
+void library_photo_get_nontrash_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format, PhotoID* result);
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+gboolean library_photo_source_collection_has_basename_filesize_duplicate (LibraryPhotoSourceCollection* self, const gchar* basename, gint64 filesize);
+void library_photo_source_collection_get_basename_filesize_duplicate (LibraryPhotoSourceCollection* self, const gchar* basename, gint64 filesize, PhotoID* result);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+gboolean video_source_collection_has_basename_filesize_duplicate (VideoSourceCollection* self, const gchar* basename, guint64 filesize);
+GType video_id_get_type (void) G_GNUC_CONST;
+VideoID* video_id_dup (const VideoID* self);
+void video_id_free (VideoID* self);
+DuplicatedFile* duplicated_file_create_from_video_id (VideoID* video_id);
+void video_source_collection_get_basename_filesize_duplicate (VideoSourceCollection* self, const gchar* basename, guint64 filesize, VideoID* result);
+DuplicatedFile* import_preview_get_duplicated_file (ImportPreview* self);
+DataSource* data_view_get_source (DataView* self);
+static void import_preview_finalize (GObject* obj);
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType camera_view_tracker_get_type (void) G_GNUC_CONST;
+GType camera_accumulator_get_type (void) G_GNUC_CONST;
+enum {
+ CAMERA_VIEW_TRACKER_DUMMY_PROPERTY
+};
+CameraAccumulator* camera_accumulator_new (void);
+CameraAccumulator* camera_accumulator_construct (GType object_type);
+GType view_collection_get_type (void) G_GNUC_CONST;
+CameraViewTracker* camera_view_tracker_new (ViewCollection* collection);
+CameraViewTracker* camera_view_tracker_construct (GType object_type, ViewCollection* collection);
+CoreViewTracker* core_view_tracker_new (ViewCollection* collection);
+CoreViewTracker* core_view_tracker_construct (GType object_type, ViewCollection* collection);
+GType core_tracker_accumulator_get_type (void) G_GNUC_CONST;
+void core_view_tracker_start (CoreViewTracker* self, CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected);
+static void camera_view_tracker_finalize (CoreTracker* obj);
+#define CAMERA_ACCUMULATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CAMERA_ACCUMULATOR, CameraAccumulatorPrivate))
+enum {
+ CAMERA_ACCUMULATOR_DUMMY_PROPERTY,
+ CAMERA_ACCUMULATOR_TOTAL,
+ CAMERA_ACCUMULATOR_PHOTOS,
+ CAMERA_ACCUMULATOR_VIDEOS,
+ CAMERA_ACCUMULATOR_RAW
+};
+static gboolean camera_accumulator_real_include (CoreTrackerAccumulator* base, DataObject* object);
+gint camera_accumulator_get_total (CameraAccumulator* self);
+static void camera_accumulator_set_total (CameraAccumulator* self, gint value);
+gint camera_accumulator_get_photos (CameraAccumulator* self);
+static void camera_accumulator_set_photos (CameraAccumulator* self, gint value);
+gint camera_accumulator_get_raw (CameraAccumulator* self);
+static void camera_accumulator_set_raw (CameraAccumulator* self, gint value);
+gint camera_accumulator_get_videos (CameraAccumulator* self);
+static void camera_accumulator_set_videos (CameraAccumulator* self, gint value);
+static gboolean camera_accumulator_real_uninclude (CoreTrackerAccumulator* base, DataObject* object);
+static gboolean camera_accumulator_real_altered (CoreTrackerAccumulator* base, DataObject* object, Alteration* alteration);
+gchar* camera_accumulator_to_string (CameraAccumulator* self);
+static void camera_accumulator_finalize (GObject* obj);
+static void _vala_camera_accumulator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_camera_accumulator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+GType import_page_get_type (void) G_GNUC_CONST;
+static GType import_page_import_page_search_view_filter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GType import_page_hide_imported_view_filter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define IMPORT_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IMPORT_PAGE, ImportPagePrivate))
+enum {
+ IMPORT_PAGE_DUMMY_PROPERTY
+};
+static void import_page_on_media_added_removed (ImportPage* self);
+static void _import_page_on_media_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+GType import_page_refresh_result_get_type (void) G_GNUC_CONST;
+static ImportPageImportPageSearchViewFilter* import_page_import_page_search_view_filter_new (void);
+static ImportPageImportPageSearchViewFilter* import_page_import_page_search_view_filter_construct (GType object_type);
+static ImportPageHideImportedViewFilter* import_page_hide_imported_view_filter_new (void);
+static ImportPageHideImportedViewFilter* import_page_hide_imported_view_filter_construct (GType object_type);
+#define IMPORT_PAGE_UNMOUNT_FAILED_MSG _ ("Unable to unmount camera. Try unmounting the camera from the file man" \
+"ager.")
+ImportPage* import_page_new (Camera* camera, const gchar* uri, const gchar* display_name, const gchar* icon);
+ImportPage* import_page_construct (GType object_type, Camera* camera, const gchar* uri, const gchar* display_name, const gchar* icon);
+CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name);
+ViewCollection* page_get_view (Page* self);
+void page_set_page_name (Page* self, const gchar* page_name);
+GPContextWrapper* gp_context_wrapper_new (void);
+GPContextWrapper* gp_context_wrapper_construct (GType object_type);
+GPSpinIdleWrapper* gp_spin_idle_wrapper_new (void);
+GPSpinIdleWrapper* gp_spin_idle_wrapper_construct (GType object_type);
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+static ImportPageImportViewManager* import_page_import_view_manager_new (ImportPage* owner);
+static ImportPageImportViewManager* import_page_import_view_manager_construct (GType object_type, ImportPage* owner);
+static GType import_page_import_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+static gint64 import_page_preview_comparator (void* a, void* b);
+static gint64 _import_page_preview_comparator_comparator (void* a, void* b, gpointer self);
+static gboolean import_page_preview_comparator_predicate (DataObject* object, Alteration* alteration);
+static gboolean _import_page_preview_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+static void import_page_on_view_changed (ImportPage* self);
+static void _import_page_on_view_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
+static void _import_page_on_view_changed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void _import_page_on_view_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self);
+void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
+#define CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES "show-subtitles"
+void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path);
+void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path);
+static GtkToolbar* import_page_real_get_toolbar (Page* base);
+GtkToolbar* page_get_toolbar (Page* self);
+static void import_page_on_hide_imported (ImportPage* self);
+static void _import_page_on_hide_imported_gtk_button_clicked (GtkButton* _sender, gpointer self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_hide_photos_already_imported (ConfigurationFacade* self);
+GtkAction* page_get_action (Page* self, const gchar* name);
+#define RESOURCES_IMPORT "shotwell-import"
+#define RESOURCES_IMPORT_ALL "shotwell-import-all"
+static void import_page_update_toolbar_state (ImportPage* self);
+static CoreViewTracker* import_page_real_get_view_tracker (CheckerboardPage* base);
+static gchar* import_page_real_get_view_empty_message (CheckerboardPage* base);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+static gint64 import_page_import_job_comparator (ImportPage* self, void* a, void* b);
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+static GType import_page_camera_import_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static time_t import_page_camera_import_job_get_exposure_time (ImportPageCameraImportJob* self);
+static void import_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkToggleActionEntry* import_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1);
+GtkToggleActionEntry* page_init_collect_toggle_action_entries (Page* self, int* result_length1);
+#define TRANSLATABLE "translatable"
+static void import_page_on_display_titles (ImportPage* self, GtkAction* action);
+static void _import_page_on_display_titles_gtk_action_callback (GtkAction* action, gpointer self);
+gboolean configuration_facade_get_display_photo_titles (ConfigurationFacade* self);
+static void _vala_array_add143 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static GtkActionEntry* import_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+static void import_page_on_import_selected (ImportPage* self);
+static void _import_page_on_import_selected_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add144 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void import_page_on_import_all (ImportPage* self);
+static void _import_page_on_import_all_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add145 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+Camera* import_page_get_camera (ImportPage* self);
+gchar* import_page_get_uri (ImportPage* self);
+gboolean import_page_is_busy (ImportPage* self);
+static void import_page_real_init_actions (Page* base, gint selected_count, gint count);
+void page_set_action_important (Page* self, const gchar* name, gboolean important);
+void page_init_actions (Page* self, gint selected_count, gint count);
+gboolean import_page_is_refreshed (ImportPage* self);
+gchar* import_page_get_refresh_message (ImportPage* self);
+static void import_page_update_status (ImportPage* self, gboolean busy, gboolean refreshed);
+gint view_collection_get_unfiltered_count (ViewCollection* self);
+gint view_collection_get_selected_count (ViewCollection* self);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+gint data_collection_get_count (DataCollection* self);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void app_window_set_common_action_sensitive (AppWindow* self, const gchar* name, gboolean sensitive);
+void checkerboard_page_set_display_titles (CheckerboardPage* self, gboolean display);
+void configuration_facade_set_display_photo_titles (ConfigurationFacade* self, gboolean display);
+static void import_page_real_switched_to (Page* base);
+void page_switched_to (Page* self);
+static void import_page_real_ready (Page* base);
+static void import_page_try_refreshing_camera (ImportPage* self, gboolean fail_on_locked);
+static ImportPageRefreshResult import_page_refresh_camera (ImportPage* self);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+#define RESOURCES_APP_TITLE "Shotwell"
+void checkerboard_page_set_page_message (CheckerboardPage* self, const gchar* message);
+gboolean import_page_unmount_camera (ImportPage* self, GMount* mount);
+static void import_page_on_unmounted (ImportPage* self, GMount* mount);
+static void _import_page_on_unmounted_g_mount_unmounted (GMount* _sender, gpointer self);
+static void import_page_on_unmount_finished (ImportPage* self, GObject* source, GAsyncResult* aresult);
+static void _import_page_on_unmount_finished_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
+static void import_page_clear_all_import_sources (ImportPage* self);
+Marker* data_collection_start_marking (DataCollection* self);
+void marker_mark_all (Marker* self);
+GType media_source_get_type (void) G_GNUC_CONST;
+gint source_collection_destroy_marked (SourceCollection* self, Marker* marker, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+static gboolean import_page_check_directory_exists (ImportPage* self, gint fsid, const gchar* dir, const gchar* search_target);
+static gboolean import_page_enumerate_files (ImportPage* self, gint fsid, const gchar* dir, GeeArrayList* import_list);
+static void import_page_auto_match_raw_jpeg (ImportPage* self, GeeArrayList* import_list);
+static void import_page_load_previews_and_metadata (ImportPage* self, GeeList* import_list);
+static gchar* import_page_chomp_ch (const gchar* str, gchar ch);
+gchar* import_page_append_path (const gchar* basepath, const gchar* addition);
+gchar* import_page_get_fs_basedir (Camera* camera, gint fsid);
+#define GP_MAX_BASEDIR_LENGTH 255
+gboolean gp_get_info (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, CameraFileInfo* info, GError** error);
+gboolean video_reader_is_supported_video_filename (const gchar* filename);
+PhotoFileFormat photo_file_format_from_gphoto_type (const gchar* type);
+PhotoFileFormat photo_file_format_get_by_basename_extension (const gchar* basename);
+void spin_event_loop (void);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+PhotoMetadata* gp_load_metadata (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GError** error);
+guint8* photo_metadata_flatten_exif (PhotoMetadata* self, gboolean include_preview, int* result_length1);
+gchar* md5_binary (guint8* buffer, gsize length);
+GdkPixbuf* gp_load_preview (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, guint8** raw, int* raw_length1, gsize* raw_length, GError** error);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+void view_collection_install_view_filter (ViewCollection* self, ViewFilter* f);
+void view_collection_remove_view_filter (ViewCollection* self, ViewFilter* f);
+void configuration_facade_set_hide_photos_already_imported (ConfigurationFacade* self, gboolean hide_imported);
+static void import_page_import (ImportPage* self, GeeIterable* items);
+GeeList* view_collection_get_selected (ViewCollection* self);
+GeeCollection* data_collection_get_all (DataCollection* self);
+GType sorted_list_get_type (void) G_GNUC_CONST;
+static gint64 _import_page_import_job_comparator_comparator (void* a, void* b, gpointer self);
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+static ImportPageCameraImportJob* import_page_camera_import_job_new (GPContextWrapper* context, ImportSource* import_file, DuplicatedFile* duplicated_file);
+static ImportPageCameraImportJob* import_page_camera_import_job_construct (GType object_type, GPContextWrapper* context, ImportSource* import_file, DuplicatedFile* duplicated_file);
+void batch_import_job_set_associated (BatchImportJob* self, BatchImportJob* associated);
+GType batch_import_get_type (void) G_GNUC_CONST;
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+static void import_page_import_reporter (ImportPage* self, ImportManifest* manifest);
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+static void _import_page_import_reporter_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
+BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+gpointer batch_import_result_ref (gpointer instance);
+void batch_import_result_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_result (GValue* value, gpointer v_object);
+void value_take_batch_import_result (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_result (const GValue* value);
+GType batch_import_result_get_type (void) G_GNUC_CONST;
+static void import_page_on_import_job_failed (ImportPage* self, BatchImportResult* _result_);
+static void _import_page_on_import_job_failed_batch_import_import_job_failed (BatchImport* _sender, BatchImportResult* _result_, gpointer self);
+static void import_page_close_import (ImportPage* self);
+static void _import_page_close_import_batch_import_import_complete (BatchImport* _sender, ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_enqueue_batch_import (LibraryWindow* self, BatchImport* batch_import, gboolean allow_user_cancel);
+void library_window_switch_to_import_queue_page (LibraryWindow* self);
+ImportManifest* import_manifest_new (GeeList* prefailed, GeeList* pre_already_imported);
+ImportManifest* import_manifest_construct (GType object_type, GeeList* prefailed, GeeList* pre_already_imported);
+GType import_result_get_type (void) G_GNUC_CONST;
+gchar* import_ui_get_media_specific_string (GeeCollection* import_collection, const gchar* photos_msg, const gchar* videos_msg, const gchar* both_msg, const gchar* neither_msg);
+gpointer import_ui_question_params_ref (gpointer instance);
+void import_ui_question_params_unref (gpointer instance);
+GParamSpec* import_ui_param_spec_question_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void import_ui_value_set_question_params (GValue* value, gpointer v_object);
+void import_ui_value_take_question_params (GValue* value, gpointer v_object);
+gpointer import_ui_value_get_question_params (const GValue* value);
+GType import_ui_question_params_get_type (void) G_GNUC_CONST;
+#define RESOURCES_DELETE_LABEL _ ("_Delete")
+ImportUIQuestionParams* import_ui_question_params_new (const gchar* question, const gchar* yes_button, const gchar* no_button);
+ImportUIQuestionParams* import_ui_question_params_construct (GType object_type, const gchar* question, const gchar* yes_button, const gchar* no_button);
+gboolean import_ui_report_manifest (ImportManifest* manifest, gboolean show_dest_id, ImportUIQuestionParams* question);
+void marker_mark (Marker* self, DataObject* object);
+static ImportSource* import_page_camera_import_job_get_source (ImportPageCameraImportJob* self);
+GType progress_dialog_get_type (void) G_GNUC_CONST;
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+void progress_dialog_close (ProgressDialog* self);
+static void import_page_real_set_display_titles (CheckerboardPage* base, gboolean display);
+static SearchViewFilter* import_page_real_get_search_view_filter (CheckerboardPage* base);
+#define IMPORT_PAGE_IMPORT_VIEW_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER, ImportPageImportViewManagerPrivate))
+enum {
+ IMPORT_PAGE_IMPORT_VIEW_MANAGER_DUMMY_PROPERTY
+};
+ViewManager* view_manager_construct (GType object_type);
+static DataView* import_page_import_view_manager_real_create_view (ViewManager* base, DataSource* source);
+static void import_page_import_view_manager_finalize (ViewManager* obj);
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+#define IMPORT_PAGE_CAMERA_IMPORT_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJobPrivate))
+enum {
+ IMPORT_PAGE_CAMERA_IMPORT_JOB_DUMMY_PROPERTY
+};
+BatchImportJob* batch_import_job_construct (GType object_type);
+static DuplicatedFile* import_page_camera_import_job_real_get_duplicated_file (BatchImportJob* base);
+static time_t import_page_camera_import_job_real_get_exposure_time_override (BatchImportJob* base);
+static gchar* import_page_camera_import_job_real_get_dest_identifier (BatchImportJob* base);
+static gchar* import_page_camera_import_job_real_get_source_identifier (BatchImportJob* base);
+static gchar* import_page_camera_import_job_real_get_basename (BatchImportJob* base);
+static gchar* import_page_camera_import_job_real_get_path (BatchImportJob* base);
+static void import_page_camera_import_job_real_set_associated (BatchImportJob* base, BatchImportJob* associated);
+static gboolean import_page_camera_import_job_real_is_directory (BatchImportJob* base);
+static gboolean import_page_camera_import_job_real_determine_file_size (BatchImportJob* base, guint64* filesize, GFile** file);
+static gboolean import_page_camera_import_job_real_prepare (BatchImportJob* base, GFile** file_to_import, gboolean* copy_to_library, GError** error);
+GFile* library_files_generate_unique_file (const gchar* basename, MediaMetadata* metadata, time_t ts, gboolean* collision, GError** error);
+void library_monitor_blacklist_file (GFile* file, const gchar* reason);
+void gp_save_image (GPContext* context, Camera* camera, const gchar* folder, const gchar* filename, GFile* dest_file, GError** error);
+void library_monitor_unblacklist_file (GFile* file);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+BackingPhotoRow* raw_developer_create_backing_row_for_development (RawDeveloper self, const gchar* raw_filepath, const gchar* camera_development_filename, GError** error);
+gchar* batch_import_job_get_basename (BatchImportJob* self);
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+static gboolean import_page_camera_import_job_real_complete (BatchImportJob* base, MediaSource* source, BatchImportRoll* import_roll, GError** error);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+void photo_add_backing_photo_for_development (Photo* self, RawDeveloper d, BackingPhotoRow* bpr, GError** error);
+void photo_set_raw_developer (Photo* self, RawDeveloper d);
+RawDeveloper configuration_facade_get_default_raw_developer (ConfigurationFacade* self);
+static void import_page_camera_import_job_finalize (BatchImportJob* obj);
+enum {
+ IMPORT_PAGE_IMPORT_PAGE_SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+static guint import_page_import_page_search_view_filter_real_get_criteria (SearchViewFilter* base);
+GType search_filter_criteria_get_type (void) G_GNUC_CONST;
+static gboolean import_page_import_page_search_view_filter_real_predicate (ViewFilter* base, DataView* view);
+guint search_view_filter_get_criteria (SearchViewFilter* self);
+gboolean search_view_filter_filter_by_media_type (SearchViewFilter* self);
+gboolean search_view_filter_get_show_media_video (SearchViewFilter* self);
+gboolean search_view_filter_get_show_media_photos (SearchViewFilter* self);
+gboolean search_view_filter_get_show_media_raw (SearchViewFilter* self);
+const gchar* indexable_get_indexable_keywords (Indexable* self);
+gchar** search_view_filter_get_search_filter_words (SearchViewFilter* self, int* result_length1);
+SearchViewFilter* search_view_filter_construct (GType object_type);
+enum {
+ IMPORT_PAGE_HIDE_IMPORTED_VIEW_FILTER_DUMMY_PROPERTY
+};
+static gboolean import_page_hide_imported_view_filter_real_predicate (ViewFilter* base, DataView* view);
+ViewFilter* view_filter_construct (GType object_type);
+static void import_page_finalize (GObject* obj);
+
+
+ImportSourceCollection* import_source_collection_construct (GType object_type, const gchar* name) {
+ ImportSourceCollection* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 8 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 9 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = name;
+#line 9 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportSourceCollection*) source_collection_construct (object_type, _tmp0_);
+#line 8 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 2096 "ImportPage.c"
+}
+
+
+ImportSourceCollection* import_source_collection_new (const gchar* name) {
+#line 8 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return import_source_collection_construct (TYPE_IMPORT_SOURCE_COLLECTION, name);
+#line 2103 "ImportPage.c"
+}
+
+
+static gboolean import_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) {
+ ImportSourceCollection * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_SOURCE_COLLECTION, ImportSourceCollection);
+#line 12 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 13 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = source;
+#line 13 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_IMPORT_SOURCE);
+#line 13 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2121 "ImportPage.c"
+}
+
+
+static void import_source_collection_class_init (ImportSourceCollectionClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = import_source_collection_real_holds_type_of_source;
+#line 2130 "ImportPage.c"
+}
+
+
+static void import_source_collection_instance_init (ImportSourceCollection * self) {
+}
+
+
+GType import_source_collection_get_type (void) {
+ static volatile gsize import_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&import_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportSourceCollection), 0, (GInstanceInitFunc) import_source_collection_instance_init, NULL };
+ GType import_source_collection_type_id;
+ import_source_collection_type_id = g_type_register_static (TYPE_SOURCE_COLLECTION, "ImportSourceCollection", &g_define_type_info, 0);
+ g_once_init_leave (&import_source_collection_type_id__volatile, import_source_collection_type_id);
+ }
+ return import_source_collection_type_id__volatile;
+}
+
+
+static gpointer _GPHOTO_REF_CAMERA0 (gpointer self) {
+#line 31 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self ? GPHOTO_REF_CAMERA (self) : NULL;
+#line 2153 "ImportPage.c"
+}
+
+
+ImportSource* import_source_construct (GType object_type, const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time) {
+ ImportSource * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ Camera* _tmp2_ = NULL;
+ Camera* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gulong _tmp9_ = 0UL;
+ time_t _tmp10_ = 0;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera_name != NULL, NULL);
+#line 28 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 28 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 28 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 28 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportSource*) thumbnail_source_construct (object_type, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 30 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = camera_name;
+#line 30 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 30 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->camera_name);
+#line 30 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->camera_name = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = camera;
+#line 31 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _GPHOTO_REF_CAMERA0 (_tmp2_);
+#line 31 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (self->priv->camera);
+#line 31 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->camera = _tmp3_;
+#line 32 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = fsid;
+#line 32 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->fsid = _tmp4_;
+#line 33 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = folder;
+#line 33 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 33 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->folder);
+#line 33 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->folder = _tmp6_;
+#line 34 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = filename;
+#line 34 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 34 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->filename);
+#line 34 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->filename = _tmp8_;
+#line 35 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = file_size;
+#line 35 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->file_size = _tmp9_;
+#line 36 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = modification_time;
+#line 36 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->modification_time = _tmp10_;
+#line 37 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = filename;
+#line 37 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = indexable_prepare_indexable_string (_tmp11_);
+#line 37 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 37 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->indexable_keywords = _tmp12_;
+#line 28 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 2236 "ImportPage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2243 "ImportPage.c"
+}
+
+
+void import_source_set_preview (ImportSource* self, GdkPixbuf* preview) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_SOURCE (self));
+#line 40 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail ((preview == NULL) || GDK_IS_PIXBUF (preview));
+#line 41 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = preview;
+#line 41 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->preview);
+#line 41 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->preview = _tmp1_;
+#line 2262 "ImportPage.c"
+}
+
+
+gchar* import_source_get_camera_name (ImportSource* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), NULL);
+#line 45 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->camera_name;
+#line 45 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 45 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 45 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2280 "ImportPage.c"
+}
+
+
+Camera* import_source_get_camera (ImportSource* self) {
+ Camera* result = NULL;
+ Camera* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), NULL);
+#line 49 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->camera;
+#line 49 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _GPHOTO_REF_CAMERA0 (_tmp0_);
+#line 49 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 49 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2298 "ImportPage.c"
+}
+
+
+gint import_source_get_fsid (ImportSource* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 52 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), 0);
+#line 53 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->fsid;
+#line 53 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 53 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2313 "ImportPage.c"
+}
+
+
+gchar* import_source_get_folder (ImportSource* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), NULL);
+#line 57 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->folder;
+#line 57 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 57 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 57 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2331 "ImportPage.c"
+}
+
+
+gchar* import_source_get_filename (ImportSource* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), NULL);
+#line 61 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->filename;
+#line 61 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 61 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 61 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2349 "ImportPage.c"
+}
+
+
+gulong import_source_get_filesize (ImportSource* self) {
+ gulong result = 0UL;
+ gulong _tmp0_ = 0UL;
+#line 64 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), 0UL);
+#line 65 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->file_size;
+#line 65 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 65 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2364 "ImportPage.c"
+}
+
+
+time_t import_source_get_modification_time (ImportSource* self) {
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+#line 68 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), 0);
+#line 69 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->modification_time;
+#line 69 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 69 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2379 "ImportPage.c"
+}
+
+
+static GdkPixbuf* import_source_real_get_preview (ImportSource* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->preview;
+#line 73 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 73 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 73 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2395 "ImportPage.c"
+}
+
+
+GdkPixbuf* import_source_get_preview (ImportSource* self) {
+#line 72 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), NULL);
+#line 72 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return IMPORT_SOURCE_GET_CLASS (self)->get_preview (self);
+#line 2404 "ImportPage.c"
+}
+
+
+static time_t import_source_real_get_exposure_time (ImportSource* self) {
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+#line 77 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_source_get_modification_time (self);
+#line 77 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 77 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2417 "ImportPage.c"
+}
+
+
+time_t import_source_get_exposure_time (ImportSource* self) {
+#line 76 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), 0);
+#line 76 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return IMPORT_SOURCE_GET_CLASS (self)->get_exposure_time (self);
+#line 2426 "ImportPage.c"
+}
+
+
+gchar* import_source_get_fulldir (ImportSource* self) {
+ gchar* result = NULL;
+ Camera* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (self), NULL);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_source_get_camera (self);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = import_source_get_camera_name (self);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = import_source_get_fsid (self);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = import_source_get_folder (self);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = import_page_get_fulldir (_tmp1_, _tmp3_, _tmp4_, _tmp6_);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _tmp7_;
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp6_);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp3_);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (_tmp1_);
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp8_;
+#line 81 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2471 "ImportPage.c"
+}
+
+
+static gchar* import_source_real_to_string (DataObject* base) {
+ ImportSource * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_SOURCE, ImportSource);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_source_get_camera_name (self);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = import_source_get_folder (self);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = import_source_get_filename (self);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _tmp4_;
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = g_strdup_printf ("%s %s/%s", _tmp1_, _tmp3_, _tmp5_);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp6_;
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp5_);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp3_);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp1_);
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp7_;
+#line 85 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2514 "ImportPage.c"
+}
+
+
+static gchar* gp_result_to_full_string (int self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 480 "/home/jens/Source/shotwell/vapi/libgphoto2.vapi"
+ _tmp0_ = gp_port_result_as_string (self);
+#line 480 "/home/jens/Source/shotwell/vapi/libgphoto2.vapi"
+ _tmp1_ = g_strdup_printf ("%s (%d)", _tmp0_, (gint) self);
+#line 480 "/home/jens/Source/shotwell/vapi/libgphoto2.vapi"
+ result = _tmp1_;
+#line 480 "/home/jens/Source/shotwell/vapi/libgphoto2.vapi"
+ return result;
+#line 2530 "ImportPage.c"
+}
+
+
+static gboolean import_source_real_internal_delete_backing (DataSource* base, GError** error) {
+ ImportSource * self;
+ gboolean result = FALSE;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* fulldir = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ int _result_ = 0;
+ Camera* _tmp10_ = NULL;
+ Camera* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GPSpinIdleWrapper* _tmp15_ = NULL;
+ GPContext* _tmp16_ = NULL;
+ int _tmp17_ = 0;
+ int _tmp18_ = 0;
+ int _tmp19_ = 0;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_SOURCE, ImportSource);
+#line 89 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 89 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 89 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->camera_name;
+#line 89 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:89: Deleting %s from %s", _tmp1_, _tmp2_);
+#line 89 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp1_);
+#line 91 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = import_source_get_fulldir (self);
+#line 91 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ fulldir = _tmp3_;
+#line 92 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = fulldir;
+#line 92 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp4_ == NULL) {
+#line 2578 "ImportPage.c"
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 93 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 93 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 93 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = self->priv->camera_name;
+#line 93 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:93: Skipping deleting %s from %s: invalid folder name", _tmp6_, _tmp7_);
+#line 93 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp6_);
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = DATA_SOURCE_CLASS (import_source_parent_class)->internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _tmp9_;
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 2606 "ImportPage.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp8_;
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 95 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2614 "ImportPage.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = import_source_get_camera (self);
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp10_;
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = fulldir;
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = import_source_get_filename (self);
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = _tmp13_;
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = import_page_spin_idle_context;
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = gp_camera_file_delete (_tmp11_, _tmp12_, _tmp14_, _tmp16_);
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = _tmp17_;
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp14_);
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (_tmp11_);
+#line 98 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _result_ = _tmp18_;
+#line 100 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = _result_;
+#line 100 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp19_ != GP_OK) {
+#line 2644 "ImportPage.c"
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ int _tmp23_ = 0;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = _tmp20_;
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = self->priv->camera_name;
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = _result_;
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = gp_result_to_full_string (_tmp23_);
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = _tmp24_;
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:101: Error deleting %s from %s: %s", _tmp21_, _tmp22_, _tmp25_);
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp25_);
+#line 101 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp21_);
+#line 2669 "ImportPage.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = DATA_SOURCE_CLASS (import_source_parent_class)->internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = _tmp28_;
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 2683 "ImportPage.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp27_) {
+#line 2687 "ImportPage.c"
+ int _tmp29_ = 0;
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = _result_;
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = _tmp29_ == GP_OK;
+#line 2693 "ImportPage.c"
+ } else {
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = FALSE;
+#line 2697 "ImportPage.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp26_;
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 103 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2705 "ImportPage.c"
+}
+
+
+static const gchar* import_source_real_get_indexable_keywords (Indexable* base) {
+ ImportSource * self;
+ const gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_SOURCE, ImportSource);
+#line 107 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->indexable_keywords;
+#line 107 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 107 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2721 "ImportPage.c"
+}
+
+
+static void import_source_class_init (ImportSourceClass * klass) {
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_source_parent_class = g_type_class_peek_parent (klass);
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_type_class_add_private (klass, sizeof (ImportSourcePrivate));
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ImportSourceClass *) klass)->get_preview = import_source_real_get_preview;
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ImportSourceClass *) klass)->get_exposure_time = import_source_real_get_exposure_time;
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataObjectClass *) klass)->to_string = import_source_real_to_string;
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataSourceClass *) klass)->internal_delete_backing = import_source_real_internal_delete_backing;
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = import_source_finalize;
+#line 2740 "ImportPage.c"
+}
+
+
+static void import_source_indexable_interface_init (IndexableIface * iface) {
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_source_indexable_parent_iface = g_type_interface_peek_parent (iface);
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ iface->get_indexable_keywords = (const gchar* (*)(Indexable*)) import_source_real_get_indexable_keywords;
+#line 2749 "ImportPage.c"
+}
+
+
+static void import_source_instance_init (ImportSource * self) {
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv = IMPORT_SOURCE_GET_PRIVATE (self);
+#line 25 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->preview = NULL;
+#line 26 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->indexable_keywords = NULL;
+#line 2760 "ImportPage.c"
+}
+
+
+static void import_source_finalize (GObject* obj) {
+ ImportSource * self;
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IMPORT_SOURCE, ImportSource);
+#line 18 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->camera_name);
+#line 19 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (self->priv->camera);
+#line 21 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->folder);
+#line 22 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->filename);
+#line 25 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->preview);
+#line 26 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->indexable_keywords);
+#line 17 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (import_source_parent_class)->finalize (obj);
+#line 2782 "ImportPage.c"
+}
+
+
+GType import_source_get_type (void) {
+ static volatile gsize import_source_type_id__volatile = 0;
+ if (g_once_init_enter (&import_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportSource), 0, (GInstanceInitFunc) import_source_instance_init, NULL };
+ static const GInterfaceInfo indexable_info = { (GInterfaceInitFunc) import_source_indexable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType import_source_type_id;
+ import_source_type_id = g_type_register_static (TYPE_THUMBNAIL_SOURCE, "ImportSource", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_type_add_interface_static (import_source_type_id, TYPE_INDEXABLE, &indexable_info);
+ g_once_init_leave (&import_source_type_id__volatile, import_source_type_id);
+ }
+ return import_source_type_id__volatile;
+}
+
+
+VideoImportSource* video_import_source_construct (GType object_type, const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time) {
+ VideoImportSource * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gulong _tmp5_ = 0UL;
+ time_t _tmp6_ = 0;
+#line 112 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera_name != NULL, NULL);
+#line 112 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 112 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 112 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = camera_name;
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = camera;
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = fsid;
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = folder;
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = filename;
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = file_size;
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = modification_time;
+#line 114 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (VideoImportSource*) import_source_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_, _tmp6_);
+#line 112 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 2835 "ImportPage.c"
+}
+
+
+VideoImportSource* video_import_source_new (const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time) {
+#line 112 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return video_import_source_construct (TYPE_VIDEO_IMPORT_SOURCE, camera_name, camera, fsid, folder, filename, file_size, modification_time);
+#line 2842 "ImportPage.c"
+}
+
+
+static GdkPixbuf* video_import_source_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ VideoImportSource * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource);
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = scale;
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = thumbnail_source_create_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), _tmp1_, &_inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp2_;
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return NULL;
+#line 2868 "ImportPage.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp0_;
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp3_;
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2880 "ImportPage.c"
+}
+
+
+static GdkPixbuf* video_import_source_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ VideoImportSource * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GdkPixbuf* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 121 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource);
+#line 122 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 122 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 122 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_ == NULL;
+#line 122 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 122 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_) {
+#line 123 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 123 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2908 "ImportPage.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = scale;
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp4_ > 0) {
+#line 2914 "ImportPage.c"
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = scale;
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = scale_pixbuf (_tmp6_, _tmp7_, GDK_INTERP_BILINEAR, TRUE);
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp8_;
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 2933 "ImportPage.c"
+ } else {
+ GdkPixbuf* _tmp9_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 128 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 128 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp9_;
+#line 2942 "ImportPage.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp3_;
+#line 127 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2948 "ImportPage.c"
+}
+
+
+static gchar* video_import_source_real_get_typename (DataSource* base) {
+ VideoImportSource * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource);
+#line 132 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = g_strdup ("videoimport");
+#line 132 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 132 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2964 "ImportPage.c"
+}
+
+
+static gint64 video_import_source_real_get_instance_id (DataSource* base) {
+ VideoImportSource * self;
+ gint64 result = 0LL;
+ gint64 _tmp0_ = 0LL;
+#line 135 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource);
+#line 136 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = data_object_get_object_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 136 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 136 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2980 "ImportPage.c"
+}
+
+
+static PhotoFileFormat video_import_source_real_get_preferred_thumbnail_format (ThumbnailSource* base) {
+ VideoImportSource * self;
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _tmp0_ = 0;
+#line 139 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource);
+#line 140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = photo_file_format_get_system_default_format ();
+#line 140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 2996 "ImportPage.c"
+}
+
+
+static gchar* video_import_source_real_get_name (DataObject* base) {
+ VideoImportSource * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIDEO_IMPORT_SOURCE, VideoImportSource);
+#line 144 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 144 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 144 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3012 "ImportPage.c"
+}
+
+
+void video_import_source_update (VideoImportSource* self, GdkPixbuf* preview) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_VIDEO_IMPORT_SOURCE (self));
+#line 147 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail ((preview == NULL) || GDK_IS_PIXBUF (preview));
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = preview;
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_ != NULL) {
+#line 3027 "ImportPage.c"
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = preview;
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp3_;
+#line 3038 "ImportPage.c"
+ } else {
+ GdkPixbuf* _tmp4_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = resources_get_noninterpretable_badge_pixbuf ();
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp4_;
+#line 3047 "ImportPage.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_source_set_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource), _tmp0_);
+#line 147 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3053 "ImportPage.c"
+}
+
+
+static void video_import_source_class_init (VideoImportSourceClass * klass) {
+#line 111 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ video_import_source_parent_class = g_type_class_peek_parent (klass);
+#line 111 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ThumbnailSourceClass *) klass)->get_thumbnail = video_import_source_real_get_thumbnail;
+#line 111 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ThumbnailSourceClass *) klass)->create_thumbnail = video_import_source_real_create_thumbnail;
+#line 111 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataSourceClass *) klass)->get_typename = video_import_source_real_get_typename;
+#line 111 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataSourceClass *) klass)->get_instance_id = video_import_source_real_get_instance_id;
+#line 111 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ThumbnailSourceClass *) klass)->get_preferred_thumbnail_format = video_import_source_real_get_preferred_thumbnail_format;
+#line 111 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataObjectClass *) klass)->get_name = video_import_source_real_get_name;
+#line 3072 "ImportPage.c"
+}
+
+
+static void video_import_source_instance_init (VideoImportSource * self) {
+}
+
+
+GType video_import_source_get_type (void) {
+ static volatile gsize video_import_source_type_id__volatile = 0;
+ if (g_once_init_enter (&video_import_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoImportSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_import_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoImportSource), 0, (GInstanceInitFunc) video_import_source_instance_init, NULL };
+ GType video_import_source_type_id;
+ video_import_source_type_id = g_type_register_static (TYPE_IMPORT_SOURCE, "VideoImportSource", &g_define_type_info, 0);
+ g_once_init_leave (&video_import_source_type_id__volatile, video_import_source_type_id);
+ }
+ return video_import_source_type_id__volatile;
+}
+
+
+PhotoImportSource* photo_import_source_construct (GType object_type, const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time, PhotoFileFormat file_format) {
+ PhotoImportSource * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gulong _tmp5_ = 0UL;
+ time_t _tmp6_ = 0;
+ PhotoFileFormat _tmp7_ = 0;
+#line 161 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera_name != NULL, NULL);
+#line 161 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 161 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 161 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (filename != NULL, NULL);
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = camera_name;
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = camera;
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = fsid;
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = folder;
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = filename;
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = file_size;
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = modification_time;
+#line 163 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (PhotoImportSource*) import_source_construct (object_type, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_, _tmp6_);
+#line 164 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = file_format;
+#line 164 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->file_format = _tmp7_;
+#line 161 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 3132 "ImportPage.c"
+}
+
+
+PhotoImportSource* photo_import_source_new (const gchar* camera_name, Camera* camera, gint fsid, const gchar* folder, const gchar* filename, gulong file_size, time_t modification_time, PhotoFileFormat file_format) {
+#line 161 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return photo_import_source_construct (TYPE_PHOTO_IMPORT_SOURCE, camera_name, camera, fsid, folder, filename, file_size, modification_time, file_format);
+#line 3139 "ImportPage.c"
+}
+
+
+static gchar* photo_import_source_real_get_name (DataObject* base) {
+ PhotoImportSource * self;
+ gchar* result = NULL;
+ gchar* title = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 168 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = photo_import_source_get_title (self);
+#line 168 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ title = _tmp0_;
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = title;
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp3_) {
+#line 3163 "ImportPage.c"
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = title;
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp1_);
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp5_;
+#line 3174 "ImportPage.c"
+ } else {
+ gchar* _tmp6_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp1_);
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp6_;
+#line 3183 "ImportPage.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (title);
+#line 170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3191 "ImportPage.c"
+}
+
+
+static gchar* photo_import_source_real_get_typename (DataSource* base) {
+ PhotoImportSource * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 174 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = g_strdup ("photoimport");
+#line 174 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 174 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3207 "ImportPage.c"
+}
+
+
+static gint64 photo_import_source_real_get_instance_id (DataSource* base) {
+ PhotoImportSource * self;
+ gint64 result = 0LL;
+ gint64 _tmp0_ = 0LL;
+#line 177 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = data_object_get_object_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3223 "ImportPage.c"
+}
+
+
+static PhotoFileFormat photo_import_source_real_get_preferred_thumbnail_format (ThumbnailSource* base) {
+ PhotoImportSource * self;
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _tmp0_ = 0;
+ PhotoFileFormat _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+#line 181 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->file_format;
+#line 182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = photo_file_format_can_write (_tmp1_);
+#line 182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_) {
+#line 3241 "ImportPage.c"
+ PhotoFileFormat _tmp3_ = 0;
+#line 182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->file_format;
+#line 182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp3_;
+#line 3247 "ImportPage.c"
+ } else {
+ PhotoFileFormat _tmp4_ = 0;
+#line 183 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = photo_file_format_get_system_default_format ();
+#line 183 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp4_;
+#line 3254 "ImportPage.c"
+ }
+#line 182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3260 "ImportPage.c"
+}
+
+
+static GdkPixbuf* photo_import_source_real_create_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ PhotoImportSource * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GdkPixbuf* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 186 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 187 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 187 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 187 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_ == NULL;
+#line 187 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 187 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_) {
+#line 188 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 188 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3288 "ImportPage.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = scale;
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp4_ > 0) {
+#line 3294 "ImportPage.c"
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = scale;
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = scale_pixbuf (_tmp6_, _tmp7_, PHOTO_IMPORT_SOURCE_INTERP, TRUE);
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp8_;
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 3313 "ImportPage.c"
+ } else {
+ GdkPixbuf* _tmp9_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp9_;
+#line 3322 "ImportPage.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp3_;
+#line 192 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3328 "ImportPage.c"
+}
+
+
+static gpointer _media_metadata_ref0 (gpointer self) {
+#line 199 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self ? media_metadata_ref (self) : NULL;
+#line 3335 "ImportPage.c"
+}
+
+
+void photo_import_source_update (PhotoImportSource* self, GdkPixbuf* preview, const gchar* preview_md5, PhotoMetadata* metadata, const gchar* exif_md5) {
+ GdkPixbuf* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+ PhotoMetadata* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_PHOTO_IMPORT_SOURCE (self));
+#line 196 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail ((preview == NULL) || GDK_IS_PIXBUF (preview));
+#line 196 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail ((metadata == NULL) || IS_PHOTO_METADATA (metadata));
+#line 197 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = preview;
+#line 197 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_source_set_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource), _tmp0_);
+#line 198 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = preview_md5;
+#line 198 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 198 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->preview_md5);
+#line 198 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->preview_md5 = _tmp2_;
+#line 199 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = metadata;
+#line 199 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _media_metadata_ref0 (_tmp3_);
+#line 199 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (self->priv->metadata);
+#line 199 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->metadata = _tmp4_;
+#line 200 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = exif_md5;
+#line 200 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 200 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->exif_md5);
+#line 200 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->exif_md5 = _tmp6_;
+#line 3381 "ImportPage.c"
+}
+
+
+static time_t photo_import_source_real_get_exposure_time (ImportSource* base) {
+ PhotoImportSource * self;
+ time_t result = 0;
+ PhotoMetadata* _tmp0_ = NULL;
+ MetadataDateTime* date_time = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ MetadataDateTime* _tmp3_ = NULL;
+ time_t _tmp4_ = 0;
+ MetadataDateTime* _tmp5_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 204 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->metadata;
+#line 204 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_ == NULL) {
+#line 3400 "ImportPage.c"
+ time_t _tmp1_ = 0;
+#line 205 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_source_get_modification_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 205 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 205 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3408 "ImportPage.c"
+ }
+#line 207 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->metadata;
+#line 207 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = photo_metadata_get_exposure_date_time (_tmp2_);
+#line 207 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ date_time = _tmp3_;
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = date_time;
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_ != NULL) {
+#line 3420 "ImportPage.c"
+ MetadataDateTime* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = date_time;
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = metadata_date_time_get_timestamp (_tmp6_);
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _tmp7_;
+#line 3429 "ImportPage.c"
+ } else {
+ time_t _tmp8_ = 0;
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = import_source_get_modification_time (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _tmp8_;
+#line 3436 "ImportPage.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp4_;
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3444 "ImportPage.c"
+}
+
+
+gchar* photo_import_source_get_title (PhotoImportSource* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ PhotoMetadata* _tmp1_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_SOURCE (self), NULL);
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->metadata;
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_ != NULL) {
+#line 3458 "ImportPage.c"
+ PhotoMetadata* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->metadata;
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp0_);
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp3_;
+#line 3469 "ImportPage.c"
+ } else {
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp0_);
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = NULL;
+#line 3475 "ImportPage.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 213 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3481 "ImportPage.c"
+}
+
+
+PhotoMetadata* photo_import_source_get_metadata (PhotoImportSource* self) {
+ PhotoMetadata* result = NULL;
+ PhotoImportSource* _tmp0_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+ PhotoMetadata* _tmp4_ = NULL;
+#line 216 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_SOURCE (self), NULL);
+#line 217 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->associated;
+#line 217 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_ != NULL) {
+#line 3496 "ImportPage.c"
+ PhotoImportSource* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->associated;
+#line 218 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = photo_import_source_get_metadata (_tmp1_);
+#line 218 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp2_;
+#line 218 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3507 "ImportPage.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->metadata;
+#line 220 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _media_metadata_ref0 (_tmp3_);
+#line 220 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp4_;
+#line 220 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3517 "ImportPage.c"
+}
+
+
+static GdkPixbuf* photo_import_source_real_get_preview (ImportSource* base) {
+ PhotoImportSource * self;
+ GdkPixbuf* result = NULL;
+ PhotoImportSource* _tmp0_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 223 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 224 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->associated;
+#line 224 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_ != NULL) {
+#line 3534 "ImportPage.c"
+ PhotoImportSource* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->associated;
+#line 225 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 225 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp2_;
+#line 225 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3545 "ImportPage.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = IMPORT_SOURCE_CLASS (photo_import_source_parent_class)->get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 227 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _tmp3_;
+#line 227 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _tmp4_ != NULL;
+#line 227 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 227 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_) {
+#line 3557 "ImportPage.c"
+ GdkPixbuf* _tmp6_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = IMPORT_SOURCE_CLASS (photo_import_source_parent_class)->get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 228 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp6_;
+#line 228 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3565 "ImportPage.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 230 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3571 "ImportPage.c"
+}
+
+
+static GdkPixbuf* photo_import_source_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ PhotoImportSource * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GdkPixbuf* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 233 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 234 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 234 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 234 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_ == NULL;
+#line 234 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 234 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_) {
+#line 235 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 235 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3599 "ImportPage.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = scale;
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp4_ > 0) {
+#line 3605 "ImportPage.c"
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = scale;
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = scale_pixbuf (_tmp6_, _tmp7_, PHOTO_IMPORT_SOURCE_INTERP, TRUE);
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp8_;
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 3624 "ImportPage.c"
+ } else {
+ GdkPixbuf* _tmp9_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = import_source_get_preview (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource));
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp9_;
+#line 3633 "ImportPage.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp3_;
+#line 237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3639 "ImportPage.c"
+}
+
+
+PhotoFileFormat photo_import_source_get_file_format (PhotoImportSource* self) {
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _tmp0_ = 0;
+#line 240 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_SOURCE (self), 0);
+#line 241 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->file_format;
+#line 241 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 241 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3654 "ImportPage.c"
+}
+
+
+gchar* photo_import_source_get_preview_md5 (PhotoImportSource* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_SOURCE (self), NULL);
+#line 245 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->preview_md5;
+#line 245 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 245 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 245 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3672 "ImportPage.c"
+}
+
+
+void photo_import_source_set_associated (PhotoImportSource* self, PhotoImportSource* associated) {
+ PhotoImportSource* _tmp0_ = NULL;
+ PhotoImportSource* _tmp1_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_PHOTO_IMPORT_SOURCE (self));
+#line 248 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail ((associated == NULL) || IS_PHOTO_IMPORT_SOURCE (associated));
+#line 249 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = associated;
+#line 249 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 249 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->associated);
+#line 249 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->associated = _tmp1_;
+#line 3691 "ImportPage.c"
+}
+
+
+PhotoImportSource* photo_import_source_get_associated (PhotoImportSource* self) {
+ PhotoImportSource* result = NULL;
+ PhotoImportSource* _tmp0_ = NULL;
+ PhotoImportSource* _tmp1_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_PHOTO_IMPORT_SOURCE (self), NULL);
+#line 253 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->associated;
+#line 253 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 253 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 253 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3709 "ImportPage.c"
+}
+
+
+static gboolean photo_import_source_real_internal_delete_backing (DataSource* base, GError** error) {
+ PhotoImportSource * self;
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ gboolean _tmp0_ = FALSE;
+ PhotoImportSource* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 257 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = DATA_SOURCE_CLASS (photo_import_source_parent_class)->internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_IMPORT_SOURCE, ImportSource), TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 257 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ret = _tmp0_;
+#line 257 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 257 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 257 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 3732 "ImportPage.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->associated;
+#line 258 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_ != NULL) {
+#line 3738 "ImportPage.c"
+ gboolean _tmp2_ = FALSE;
+ PhotoImportSource* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->associated;
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = data_source_internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp4_;
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 3755 "ImportPage.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = ret;
+#line 259 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ret = _tmp5_ & _tmp2_;
+#line 3761 "ImportPage.c"
+ }
+#line 260 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = ret;
+#line 260 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 3767 "ImportPage.c"
+}
+
+
+static void photo_import_source_class_init (PhotoImportSourceClass * klass) {
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_import_source_parent_class = g_type_class_peek_parent (klass);
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_type_class_add_private (klass, sizeof (PhotoImportSourcePrivate));
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataObjectClass *) klass)->get_name = photo_import_source_real_get_name;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataSourceClass *) klass)->get_typename = photo_import_source_real_get_typename;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataSourceClass *) klass)->get_instance_id = photo_import_source_real_get_instance_id;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ThumbnailSourceClass *) klass)->get_preferred_thumbnail_format = photo_import_source_real_get_preferred_thumbnail_format;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ThumbnailSourceClass *) klass)->create_thumbnail = photo_import_source_real_create_thumbnail;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ImportSourceClass *) klass)->get_exposure_time = photo_import_source_real_get_exposure_time;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ImportSourceClass *) klass)->get_preview = photo_import_source_real_get_preview;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ThumbnailSourceClass *) klass)->get_thumbnail = photo_import_source_real_get_thumbnail;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((DataSourceClass *) klass)->internal_delete_backing = photo_import_source_real_internal_delete_backing;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = photo_import_source_finalize;
+#line 3796 "ImportPage.c"
+}
+
+
+static void photo_import_source_instance_init (PhotoImportSource * self) {
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv = PHOTO_IMPORT_SOURCE_GET_PRIVATE (self);
+#line 156 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->preview_md5 = NULL;
+#line 157 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->metadata = NULL;
+#line 158 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->exif_md5 = NULL;
+#line 159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->associated = NULL;
+#line 3811 "ImportPage.c"
+}
+
+
+static void photo_import_source_finalize (GObject* obj) {
+ PhotoImportSource * self;
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource);
+#line 156 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->preview_md5);
+#line 157 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (self->priv->metadata);
+#line 158 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->exif_md5);
+#line 159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->associated);
+#line 152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (photo_import_source_parent_class)->finalize (obj);
+#line 3829 "ImportPage.c"
+}
+
+
+GType photo_import_source_get_type (void) {
+ static volatile gsize photo_import_source_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_import_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoImportSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_import_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoImportSource), 0, (GInstanceInitFunc) photo_import_source_instance_init, NULL };
+ GType photo_import_source_type_id;
+ photo_import_source_type_id = g_type_register_static (TYPE_IMPORT_SOURCE, "PhotoImportSource", &g_define_type_info, 0);
+ g_once_init_leave (&photo_import_source_type_id__volatile, photo_import_source_type_id);
+ }
+ return photo_import_source_type_id__volatile;
+}
+
+
+ImportPreview* import_preview_construct (GType object_type, ImportSource* source) {
+ ImportPreview * self = NULL;
+ ImportSource* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ ImportSource* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ ImportSource* _tmp5_ = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ gboolean using_placeholder = FALSE;
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ GdkPixbuf* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ ImportSource* _tmp29_ = NULL;
+ GdkPixbuf* _tmp50_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (source), NULL);
+#line 272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = source;
+#line 272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ dimensions_init (&_tmp1_, 0, 0);
+#line 272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = source;
+#line 272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _tmp3_;
+#line 272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportPreview*) media_source_item_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), &_tmp1_, _tmp4_, NULL, FALSE, PANGO_ALIGN_LEFT);
+#line 272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp4_);
+#line 274 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->duplicated_file);
+#line 274 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->duplicated_file = NULL;
+#line 277 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = source;
+#line 277 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_VIDEO_IMPORT_SOURCE)) {
+#line 278 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ media_source_item_set_enable_sprockets (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem), TRUE);
+#line 3889 "ImportPage.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ pixbuf = NULL;
+#line 3893 "ImportPage.c"
+ {
+ GdkPixbuf* _tmp6_ = NULL;
+ ImportSource* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = source;
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = thumbnail_source_get_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), 0, &_inner_error_);
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp8_;
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3907 "ImportPage.c"
+ goto __catch61_g_error;
+ }
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _tmp6_;
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = NULL;
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 283 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ pixbuf = _tmp9_;
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 3920 "ImportPage.c"
+ }
+ goto __finally61;
+ __catch61_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GError* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 285 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 285 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp10_;
+#line 285 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = err;
+#line 285 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = _tmp12_->message;
+#line 285 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:285: Unable to fetch loaded import preview for %s: %s", _tmp11_, _tmp13_);
+#line 285 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp11_);
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 3948 "ImportPage.c"
+ }
+ __finally61:
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return NULL;
+#line 3961 "ImportPage.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = pixbuf;
+#line 289 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ using_placeholder = _tmp14_ == NULL;
+#line 290 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = pixbuf;
+#line 290 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp15_ == NULL) {
+#line 3971 "ImportPage.c"
+ GdkPixbuf* _tmp16_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = import_preview_placeholder_preview;
+#line 291 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp16_ == NULL) {
+#line 3979 "ImportPage.c"
+ GdkPixbuf* _tmp17_ = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+ GdkPixbuf* _tmp19_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = get_placeholder_pixbuf ();
+#line 292 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_preview_placeholder_preview);
+#line 292 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_preview_placeholder_preview = _tmp17_;
+#line 293 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = import_preview_placeholder_preview;
+#line 293 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = scale_pixbuf (_tmp18_, IMPORT_PREVIEW_MAX_SCALE, GDK_INTERP_BILINEAR, TRUE);
+#line 293 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_preview_placeholder_preview);
+#line 293 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_preview_placeholder_preview = _tmp19_;
+#line 3997 "ImportPage.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = import_preview_placeholder_preview;
+#line 297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ pixbuf = _tmp21_;
+#line 4007 "ImportPage.c"
+ }
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = pixbuf;
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = gdk_pixbuf_get_width (_tmp23_);
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp24_ > IMPORT_PREVIEW_MAX_SCALE) {
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = TRUE;
+#line 4017 "ImportPage.c"
+ } else {
+ GdkPixbuf* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = pixbuf;
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = gdk_pixbuf_get_height (_tmp25_);
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = _tmp26_ > IMPORT_PREVIEW_MAX_SCALE;
+#line 4027 "ImportPage.c"
+ }
+#line 301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp22_) {
+#line 4031 "ImportPage.c"
+ GdkPixbuf* _tmp27_ = NULL;
+ GdkPixbuf* _tmp28_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = pixbuf;
+#line 302 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = scale_pixbuf (_tmp27_, IMPORT_PREVIEW_MAX_SCALE, PHOTO_IMPORT_SOURCE_INTERP, FALSE);
+#line 302 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 302 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ pixbuf = _tmp28_;
+#line 4042 "ImportPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = source;
+#line 304 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp29_, TYPE_PHOTO_IMPORT_SOURCE)) {
+#line 4048 "ImportPage.c"
+ PhotoImportSource* photo_import_source = NULL;
+ ImportSource* _tmp30_ = NULL;
+ PhotoImportSource* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ gboolean _tmp33_ = FALSE;
+ PhotoImportSource* _tmp43_ = NULL;
+ PhotoImportSource* _tmp44_ = NULL;
+ PhotoImportSource* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+#line 306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = source;
+#line 306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp30_) : NULL);
+#line 306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_import_source = _tmp31_;
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = using_placeholder;
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp33_) {
+#line 4068 "ImportPage.c"
+ PhotoImportSource* _tmp34_ = NULL;
+ PhotoMetadata* _tmp35_ = NULL;
+ PhotoMetadata* _tmp36_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = photo_import_source;
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = photo_import_source_get_metadata (_tmp34_);
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = _tmp35_;
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = _tmp36_ != NULL;
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (_tmp36_);
+#line 4082 "ImportPage.c"
+ } else {
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = FALSE;
+#line 4086 "ImportPage.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp32_) {
+#line 4090 "ImportPage.c"
+ PhotoImportSource* _tmp37_ = NULL;
+ PhotoMetadata* _tmp38_ = NULL;
+ PhotoMetadata* _tmp39_ = NULL;
+ Orientation _tmp40_ = 0;
+ GdkPixbuf* _tmp41_ = NULL;
+ GdkPixbuf* _tmp42_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = photo_import_source;
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = photo_import_source_get_metadata (_tmp37_);
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = _tmp38_;
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = photo_metadata_get_orientation (_tmp39_);
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = pixbuf;
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = orientation_rotate_pixbuf (_tmp40_, _tmp41_);
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ pixbuf = _tmp42_;
+#line 308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (_tmp39_);
+#line 4115 "ImportPage.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = photo_import_source;
+#line 310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = photo_import_source_get_associated (_tmp43_);
+#line 310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = _tmp44_;
+#line 310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = _tmp45_ != NULL;
+#line 310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp45_);
+#line 310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp46_) {
+#line 4129 "ImportPage.c"
+ const gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = _ ("RAW+JPEG");
+#line 311 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = g_strdup_printf ("<small>%s</small>", _tmp47_);
+#line 311 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = _tmp48_;
+#line 311 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_item_set_subtitle (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp49_, TRUE, PANGO_ALIGN_LEFT);
+#line 311 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp49_);
+#line 4143 "ImportPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo_import_source);
+#line 4147 "ImportPage.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = pixbuf;
+#line 315 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_item_set_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp50_);
+#line 271 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (pixbuf);
+#line 271 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 4157 "ImportPage.c"
+}
+
+
+ImportPreview* import_preview_new (ImportSource* source) {
+#line 271 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return import_preview_construct (TYPE_IMPORT_PREVIEW, source);
+#line 4164 "ImportPage.c"
+}
+
+
+gboolean import_preview_is_already_imported (ImportPreview* self) {
+ gboolean result = FALSE;
+ PhotoImportSource* photo_import_source = NULL;
+ ImportSource* _tmp0_ = NULL;
+ PhotoImportSource* _tmp1_ = NULL;
+ PhotoImportSource* _tmp2_ = NULL;
+ VideoImportSource* video_import_source = NULL;
+ ImportSource* _tmp39_ = NULL;
+ VideoImportSource* _tmp40_ = NULL;
+ VideoImportSource* _tmp41_ = NULL;
+#line 318 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PREVIEW (self), FALSE);
+#line 319 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_preview_get_import_source (self);
+#line 319 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp0_) : NULL;
+#line 319 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_ == NULL) {
+#line 319 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 4188 "ImportPage.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_import_source = _tmp1_;
+#line 320 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = photo_import_source;
+#line 320 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_ != NULL) {
+#line 4196 "ImportPage.c"
+ gchar* preview_md5 = NULL;
+ PhotoImportSource* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ PhotoFileFormat file_format = 0;
+ PhotoImportSource* _tmp5_ = NULL;
+ PhotoFileFormat _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ PhotoFileFormat _tmp17_ = 0;
+#line 321 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = photo_import_source;
+#line 321 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = photo_import_source_get_preview_md5 (_tmp3_);
+#line 321 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_md5 = _tmp4_;
+#line 322 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = photo_import_source;
+#line 322 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = photo_import_source_get_file_format (_tmp5_);
+#line 322 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ file_format = _tmp6_;
+#line 325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = preview_md5;
+#line 325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = is_string_empty (_tmp8_);
+#line 325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp9_) {
+#line 4225 "ImportPage.c"
+ const gchar* _tmp10_ = NULL;
+ PhotoFileFormat _tmp11_ = 0;
+ gboolean _tmp12_ = FALSE;
+#line 326 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = preview_md5;
+#line 326 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = file_format;
+#line 326 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = library_photo_has_nontrash_duplicate (NULL, _tmp10_, NULL, _tmp11_);
+#line 326 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp12_;
+#line 4237 "ImportPage.c"
+ } else {
+#line 325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = FALSE;
+#line 4241 "ImportPage.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp7_) {
+#line 4245 "ImportPage.c"
+ const gchar* _tmp13_ = NULL;
+ PhotoFileFormat _tmp14_ = 0;
+ PhotoID _tmp15_ = {0};
+ DuplicatedFile* _tmp16_ = NULL;
+#line 328 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = preview_md5;
+#line 328 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = file_format;
+#line 328 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_photo_get_nontrash_duplicate (NULL, _tmp13_, NULL, _tmp14_, &_tmp15_);
+#line 328 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = duplicated_file_create_from_photo_id (&_tmp15_);
+#line 328 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->duplicated_file);
+#line 328 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->duplicated_file = _tmp16_;
+#line 331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_md5);
+#line 331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo_import_source);
+#line 331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4270 "ImportPage.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = file_format;
+#line 337 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp17_ == PHOTO_FILE_FORMAT_RAW) {
+#line 4276 "ImportPage.c"
+ guint64 filesize = 0ULL;
+ ImportSource* _tmp18_ = NULL;
+ ImportSource* _tmp19_ = NULL;
+ gulong _tmp20_ = 0UL;
+ guint64 _tmp21_ = 0ULL;
+ guint64 _tmp22_ = 0ULL;
+#line 338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = import_preview_get_import_source (self);
+#line 338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = _tmp18_;
+#line 338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = import_source_get_filesize (_tmp19_);
+#line 338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = (guint64) _tmp20_;
+#line 338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ filesize = _tmp21_;
+#line 340 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = filesize;
+#line 340 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp22_ <= ((guint64) G_MAXINT64)) {
+#line 4299 "ImportPage.c"
+ LibraryPhotoSourceCollection* _tmp23_ = NULL;
+ ImportSource* _tmp24_ = NULL;
+ ImportSource* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ guint64 _tmp28_ = 0ULL;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = library_photo_global;
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = import_preview_get_import_source (self);
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = _tmp24_;
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = import_source_get_filename (_tmp25_);
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = _tmp26_;
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = filesize;
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = library_photo_source_collection_has_basename_filesize_duplicate (_tmp23_, _tmp27_, (gint64) _tmp28_);
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = _tmp29_;
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp27_);
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp25_);
+#line 341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp30_) {
+#line 4330 "ImportPage.c"
+ LibraryPhotoSourceCollection* _tmp31_ = NULL;
+ ImportSource* _tmp32_ = NULL;
+ ImportSource* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ guint64 _tmp36_ = 0ULL;
+ PhotoID _tmp37_ = {0};
+ DuplicatedFile* _tmp38_ = NULL;
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = library_photo_global;
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = import_preview_get_import_source (self);
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = _tmp32_;
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = import_source_get_filename (_tmp33_);
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = _tmp34_;
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = filesize;
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_photo_source_collection_get_basename_filesize_duplicate (_tmp31_, _tmp35_, (gint64) _tmp36_, &_tmp37_);
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = duplicated_file_create_from_photo_id (&_tmp37_);
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->duplicated_file);
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->duplicated_file = _tmp38_;
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp35_);
+#line 344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 348 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 348 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_md5);
+#line 348 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo_import_source);
+#line 348 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4371 "ImportPage.c"
+ }
+ }
+ }
+#line 353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_md5);
+#line 353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo_import_source);
+#line 353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4383 "ImportPage.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = import_preview_get_import_source (self);
+#line 356 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp39_, TYPE_VIDEO_IMPORT_SOURCE) ? ((VideoImportSource*) _tmp39_) : NULL;
+#line 356 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp40_ == NULL) {
+#line 356 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp39_);
+#line 4393 "ImportPage.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ video_import_source = _tmp40_;
+#line 357 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = video_import_source;
+#line 357 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp41_ != NULL) {
+#line 4401 "ImportPage.c"
+ VideoSourceCollection* _tmp42_ = NULL;
+ VideoImportSource* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ VideoImportSource* _tmp46_ = NULL;
+ gulong _tmp47_ = 0UL;
+ gboolean _tmp48_ = FALSE;
+ gboolean _tmp49_ = FALSE;
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = video_global;
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = video_import_source;
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = _tmp44_;
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = video_import_source;
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = import_source_get_filesize (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = video_source_collection_has_basename_filesize_duplicate (_tmp42_, _tmp45_, (guint64) _tmp47_);
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = _tmp48_;
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp45_);
+#line 362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp49_) {
+#line 4430 "ImportPage.c"
+ VideoSourceCollection* _tmp50_ = NULL;
+ VideoImportSource* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ VideoImportSource* _tmp54_ = NULL;
+ gulong _tmp55_ = 0UL;
+ VideoID _tmp56_ = {0};
+ DuplicatedFile* _tmp57_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = video_global;
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = video_import_source;
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = _tmp52_;
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = video_import_source;
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = import_source_get_filesize (G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ video_source_collection_get_basename_filesize_duplicate (_tmp50_, _tmp53_, (guint64) _tmp55_, &_tmp56_);
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = duplicated_file_create_from_video_id (&_tmp56_);
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->duplicated_file);
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->duplicated_file = _tmp57_;
+#line 365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp53_);
+#line 370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (video_import_source);
+#line 370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo_import_source);
+#line 370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4469 "ImportPage.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 373 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (video_import_source);
+#line 373 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo_import_source);
+#line 373 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4479 "ImportPage.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 376 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (video_import_source);
+#line 376 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo_import_source);
+#line 376 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4489 "ImportPage.c"
+}
+
+
+DuplicatedFile* import_preview_get_duplicated_file (ImportPreview* self) {
+ DuplicatedFile* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ DuplicatedFile* _tmp1_ = NULL;
+ DuplicatedFile* _tmp2_ = NULL;
+#line 379 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PREVIEW (self), NULL);
+#line 380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_preview_is_already_imported (self);
+#line 380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp0_) {
+#line 381 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 381 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4508 "ImportPage.c"
+ }
+#line 383 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->duplicated_file;
+#line 383 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 383 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp2_;
+#line 383 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4518 "ImportPage.c"
+}
+
+
+ImportSource* import_preview_get_import_source (ImportPreview* self) {
+ ImportSource* result = NULL;
+ DataSource* _tmp0_ = NULL;
+#line 386 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PREVIEW (self), NULL);
+#line 387 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 387 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_IMPORT_SOURCE, ImportSource);
+#line 387 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4533 "ImportPage.c"
+}
+
+
+static void import_preview_class_init (ImportPreviewClass * klass) {
+#line 264 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_preview_parent_class = g_type_class_peek_parent (klass);
+#line 264 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_type_class_add_private (klass, sizeof (ImportPreviewPrivate));
+#line 264 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = import_preview_finalize;
+#line 4544 "ImportPage.c"
+}
+
+
+static void import_preview_instance_init (ImportPreview * self) {
+#line 264 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv = IMPORT_PREVIEW_GET_PRIVATE (self);
+#line 4551 "ImportPage.c"
+}
+
+
+static void import_preview_finalize (GObject* obj) {
+ ImportPreview * self;
+#line 264 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IMPORT_PREVIEW, ImportPreview);
+#line 269 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->duplicated_file);
+#line 264 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (import_preview_parent_class)->finalize (obj);
+#line 4563 "ImportPage.c"
+}
+
+
+GType import_preview_get_type (void) {
+ static volatile gsize import_preview_type_id__volatile = 0;
+ if (g_once_init_enter (&import_preview_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportPreviewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_preview_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportPreview), 0, (GInstanceInitFunc) import_preview_instance_init, NULL };
+ GType import_preview_type_id;
+ import_preview_type_id = g_type_register_static (TYPE_MEDIA_SOURCE_ITEM, "ImportPreview", &g_define_type_info, 0);
+ g_once_init_leave (&import_preview_type_id__volatile, import_preview_type_id);
+ }
+ return import_preview_type_id__volatile;
+}
+
+
+CameraViewTracker* camera_view_tracker_construct (GType object_type, ViewCollection* collection) {
+ CameraViewTracker* self = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ CameraAccumulator* _tmp1_ = NULL;
+ CameraAccumulator* _tmp2_ = NULL;
+ CameraAccumulator* _tmp3_ = NULL;
+#line 396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (collection), NULL);
+#line 397 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = collection;
+#line 397 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (CameraViewTracker*) core_view_tracker_construct (object_type, _tmp0_);
+#line 399 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->all;
+#line 399 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->visible;
+#line 399 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->selected;
+#line 399 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ core_view_tracker_start (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_VIEW_TRACKER, CoreViewTracker), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator));
+#line 396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 4601 "ImportPage.c"
+}
+
+
+CameraViewTracker* camera_view_tracker_new (ViewCollection* collection) {
+#line 396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return camera_view_tracker_construct (TYPE_CAMERA_VIEW_TRACKER, collection);
+#line 4608 "ImportPage.c"
+}
+
+
+static void camera_view_tracker_class_init (CameraViewTrackerClass * klass) {
+#line 391 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_view_tracker_parent_class = g_type_class_peek_parent (klass);
+#line 391 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((CoreTrackerClass *) klass)->finalize = camera_view_tracker_finalize;
+#line 4617 "ImportPage.c"
+}
+
+
+static void camera_view_tracker_instance_init (CameraViewTracker * self) {
+ CameraAccumulator* _tmp0_ = NULL;
+ CameraAccumulator* _tmp1_ = NULL;
+ CameraAccumulator* _tmp2_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = camera_accumulator_new ();
+#line 392 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->all = _tmp0_;
+#line 393 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = camera_accumulator_new ();
+#line 393 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->visible = _tmp1_;
+#line 394 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = camera_accumulator_new ();
+#line 394 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->selected = _tmp2_;
+#line 4637 "ImportPage.c"
+}
+
+
+static void camera_view_tracker_finalize (CoreTracker* obj) {
+ CameraViewTracker * self;
+#line 391 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CAMERA_VIEW_TRACKER, CameraViewTracker);
+#line 392 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->all);
+#line 393 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->visible);
+#line 394 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->selected);
+#line 391 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ CORE_TRACKER_CLASS (camera_view_tracker_parent_class)->finalize (obj);
+#line 4653 "ImportPage.c"
+}
+
+
+GType camera_view_tracker_get_type (void) {
+ static volatile gsize camera_view_tracker_type_id__volatile = 0;
+ if (g_once_init_enter (&camera_view_tracker_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CameraViewTrackerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) camera_view_tracker_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CameraViewTracker), 0, (GInstanceInitFunc) camera_view_tracker_instance_init, NULL };
+ GType camera_view_tracker_type_id;
+ camera_view_tracker_type_id = g_type_register_static (CORE_TYPE_VIEW_TRACKER, "CameraViewTracker", &g_define_type_info, 0);
+ g_once_init_leave (&camera_view_tracker_type_id__volatile, camera_view_tracker_type_id);
+ }
+ return camera_view_tracker_type_id__volatile;
+}
+
+
+static gboolean camera_accumulator_real_include (CoreTrackerAccumulator* base, DataObject* object) {
+ CameraAccumulator * self;
+ gboolean result = FALSE;
+ ImportSource* source = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ PhotoImportSource* photo = NULL;
+ ImportSource* _tmp3_ = NULL;
+ PhotoImportSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ PhotoImportSource* _tmp6_ = NULL;
+#line 409 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CAMERA_ACCUMULATOR, CameraAccumulator);
+#line 409 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 410 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = object;
+#line 410 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 410 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ source = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_IMPORT_SOURCE, ImportSource);
+#line 412 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->_total;
+#line 412 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_total (self, _tmp2_ + 1);
+#line 414 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = source;
+#line 414 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp3_) : NULL);
+#line 414 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo = _tmp4_;
+#line 415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = photo;
+#line 415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp6_ != NULL) {
+#line 4705 "ImportPage.c"
+ PhotoImportSource* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+#line 415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = photo;
+#line 415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = photo_import_source_get_file_format (_tmp7_);
+#line 415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _tmp8_ != PHOTO_FILE_FORMAT_RAW;
+#line 4714 "ImportPage.c"
+ } else {
+#line 415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = FALSE;
+#line 4718 "ImportPage.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_) {
+#line 4722 "ImportPage.c"
+ gint _tmp9_ = 0;
+#line 416 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = self->priv->_photos;
+#line 416 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_photos (self, _tmp9_ + 1);
+#line 4728 "ImportPage.c"
+ } else {
+ gboolean _tmp10_ = FALSE;
+ PhotoImportSource* _tmp11_ = NULL;
+#line 417 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = photo;
+#line 417 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp11_ != NULL) {
+#line 4736 "ImportPage.c"
+ PhotoImportSource* _tmp12_ = NULL;
+ PhotoFileFormat _tmp13_ = 0;
+#line 417 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = photo;
+#line 417 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = photo_import_source_get_file_format (_tmp12_);
+#line 417 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = _tmp13_ == PHOTO_FILE_FORMAT_RAW;
+#line 4745 "ImportPage.c"
+ } else {
+#line 417 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = FALSE;
+#line 4749 "ImportPage.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp10_) {
+#line 4753 "ImportPage.c"
+ gint _tmp14_ = 0;
+#line 418 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = self->priv->_raw;
+#line 418 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_raw (self, _tmp14_ + 1);
+#line 4759 "ImportPage.c"
+ } else {
+ ImportSource* _tmp15_ = NULL;
+#line 419 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = source;
+#line 419 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, TYPE_VIDEO_IMPORT_SOURCE)) {
+#line 4766 "ImportPage.c"
+ gint _tmp16_ = 0;
+#line 420 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = self->priv->_videos;
+#line 420 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_videos (self, _tmp16_ + 1);
+#line 4772 "ImportPage.c"
+ }
+ }
+ }
+#line 423 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 423 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 423 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 423 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4784 "ImportPage.c"
+}
+
+
+static gboolean camera_accumulator_real_uninclude (CoreTrackerAccumulator* base, DataObject* object) {
+ CameraAccumulator * self;
+ gboolean result = FALSE;
+ ImportSource* source = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ PhotoImportSource* photo = NULL;
+ ImportSource* _tmp3_ = NULL;
+ PhotoImportSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ PhotoImportSource* _tmp6_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CAMERA_ACCUMULATOR, CameraAccumulator);
+#line 426 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 427 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = object;
+#line 427 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 427 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ source = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_IMPORT_SOURCE, ImportSource);
+#line 429 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->_total;
+#line 429 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_total (self, _tmp2_ + 1);
+#line 431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = source;
+#line 431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp3_) : NULL);
+#line 431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo = _tmp4_;
+#line 432 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = photo;
+#line 432 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp6_ != NULL) {
+#line 4824 "ImportPage.c"
+ PhotoImportSource* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+#line 432 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = photo;
+#line 432 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = photo_import_source_get_file_format (_tmp7_);
+#line 432 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _tmp8_ != PHOTO_FILE_FORMAT_RAW;
+#line 4833 "ImportPage.c"
+ } else {
+#line 432 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = FALSE;
+#line 4837 "ImportPage.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_) {
+#line 4841 "ImportPage.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 433 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = self->priv->_photos;
+#line 433 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_assert (_tmp9_ > 0, "photos > 0");
+#line 434 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = self->priv->_photos;
+#line 434 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_photos (self, _tmp10_ - 1);
+#line 4852 "ImportPage.c"
+ } else {
+ gboolean _tmp11_ = FALSE;
+ PhotoImportSource* _tmp12_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = photo;
+#line 435 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp12_ != NULL) {
+#line 4860 "ImportPage.c"
+ PhotoImportSource* _tmp13_ = NULL;
+ PhotoFileFormat _tmp14_ = 0;
+#line 435 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = photo;
+#line 435 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = photo_import_source_get_file_format (_tmp13_);
+#line 435 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp14_ == PHOTO_FILE_FORMAT_RAW;
+#line 4869 "ImportPage.c"
+ } else {
+#line 435 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = FALSE;
+#line 4873 "ImportPage.c"
+ }
+#line 435 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp11_) {
+#line 4877 "ImportPage.c"
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = self->priv->_raw;
+#line 436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_assert (_tmp15_ > 0, "raw > 0");
+#line 437 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = self->priv->_raw;
+#line 437 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_raw (self, _tmp16_ - 1);
+#line 4888 "ImportPage.c"
+ } else {
+ ImportSource* _tmp17_ = NULL;
+#line 438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = source;
+#line 438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp17_, TYPE_VIDEO_IMPORT_SOURCE)) {
+#line 4895 "ImportPage.c"
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 439 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = self->priv->_videos;
+#line 439 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_assert (_tmp18_ > 0, "videos > 0");
+#line 440 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = self->priv->_videos;
+#line 440 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_videos (self, _tmp19_ - 1);
+#line 4906 "ImportPage.c"
+ }
+ }
+ }
+#line 444 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 444 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 444 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 444 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4918 "ImportPage.c"
+}
+
+
+static gboolean camera_accumulator_real_altered (CoreTrackerAccumulator* base, DataObject* object, Alteration* alteration) {
+ CameraAccumulator * self;
+ gboolean result = FALSE;
+#line 447 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CAMERA_ACCUMULATOR, CameraAccumulator);
+#line 447 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 447 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 449 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 449 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4935 "ImportPage.c"
+}
+
+
+gchar* camera_accumulator_to_string (CameraAccumulator* self) {
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+#line 452 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_CAMERA_ACCUMULATOR (self), NULL);
+#line 453 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->_total;
+#line 453 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->_photos;
+#line 453 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->_videos;
+#line 453 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->_raw;
+#line 453 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = g_strdup_printf ("%d total/%d photos/%d videos/%d raw", _tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 453 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp4_;
+#line 453 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4962 "ImportPage.c"
+}
+
+
+CameraAccumulator* camera_accumulator_construct (GType object_type) {
+ CameraAccumulator * self = NULL;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (CameraAccumulator*) g_object_new (object_type, NULL);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 4972 "ImportPage.c"
+}
+
+
+CameraAccumulator* camera_accumulator_new (void) {
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return camera_accumulator_construct (TYPE_CAMERA_ACCUMULATOR);
+#line 4979 "ImportPage.c"
+}
+
+
+gint camera_accumulator_get_total (CameraAccumulator* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_CAMERA_ACCUMULATOR (self), 0);
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->_total;
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 4994 "ImportPage.c"
+}
+
+
+static void camera_accumulator_set_total (CameraAccumulator* self, gint value) {
+ gint _tmp0_ = 0;
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_CAMERA_ACCUMULATOR (self));
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = value;
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_total = _tmp0_;
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_notify ((GObject *) self, "total");
+#line 5008 "ImportPage.c"
+}
+
+
+gint camera_accumulator_get_photos (CameraAccumulator* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_CAMERA_ACCUMULATOR (self), 0);
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->_photos;
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5023 "ImportPage.c"
+}
+
+
+static void camera_accumulator_set_photos (CameraAccumulator* self, gint value) {
+ gint _tmp0_ = 0;
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_CAMERA_ACCUMULATOR (self));
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = value;
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_photos = _tmp0_;
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_notify ((GObject *) self, "photos");
+#line 5037 "ImportPage.c"
+}
+
+
+gint camera_accumulator_get_videos (CameraAccumulator* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_CAMERA_ACCUMULATOR (self), 0);
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->_videos;
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5052 "ImportPage.c"
+}
+
+
+static void camera_accumulator_set_videos (CameraAccumulator* self, gint value) {
+ gint _tmp0_ = 0;
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_CAMERA_ACCUMULATOR (self));
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = value;
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_videos = _tmp0_;
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_notify ((GObject *) self, "videos");
+#line 5066 "ImportPage.c"
+}
+
+
+gint camera_accumulator_get_raw (CameraAccumulator* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_CAMERA_ACCUMULATOR (self), 0);
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->_raw;
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5081 "ImportPage.c"
+}
+
+
+static void camera_accumulator_set_raw (CameraAccumulator* self, gint value) {
+ gint _tmp0_ = 0;
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_CAMERA_ACCUMULATOR (self));
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = value;
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_raw = _tmp0_;
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_notify ((GObject *) self, "raw");
+#line 5095 "ImportPage.c"
+}
+
+
+static void camera_accumulator_class_init (CameraAccumulatorClass * klass) {
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_parent_class = g_type_class_peek_parent (klass);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_type_class_add_private (klass, sizeof (CameraAccumulatorPrivate));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_camera_accumulator_get_property;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_camera_accumulator_set_property;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = camera_accumulator_finalize;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), CAMERA_ACCUMULATOR_TOTAL, g_param_spec_int ("total", "total", "total", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), CAMERA_ACCUMULATOR_PHOTOS, g_param_spec_int ("photos", "photos", "photos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), CAMERA_ACCUMULATOR_VIDEOS, g_param_spec_int ("videos", "videos", "videos", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), CAMERA_ACCUMULATOR_RAW, g_param_spec_int ("raw", "raw", "raw", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 5118 "ImportPage.c"
+}
+
+
+static void camera_accumulator_core_tracker_accumulator_interface_init (CoreTrackerAccumulatorIface * iface) {
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_core_tracker_accumulator_parent_iface = g_type_interface_peek_parent (iface);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ iface->include = (gboolean (*)(CoreTrackerAccumulator*, DataObject*)) camera_accumulator_real_include;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ iface->uninclude = (gboolean (*)(CoreTrackerAccumulator*, DataObject*)) camera_accumulator_real_uninclude;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ iface->altered = (gboolean (*)(CoreTrackerAccumulator*, DataObject*, Alteration*)) camera_accumulator_real_altered;
+#line 5131 "ImportPage.c"
+}
+
+
+static void camera_accumulator_instance_init (CameraAccumulator * self) {
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv = CAMERA_ACCUMULATOR_GET_PRIVATE (self);
+#line 404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_total = 0;
+#line 405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_photos = 0;
+#line 406 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_videos = 0;
+#line 407 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->_raw = 0;
+#line 5146 "ImportPage.c"
+}
+
+
+static void camera_accumulator_finalize (GObject* obj) {
+ CameraAccumulator * self;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CAMERA_ACCUMULATOR, CameraAccumulator);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (camera_accumulator_parent_class)->finalize (obj);
+#line 5156 "ImportPage.c"
+}
+
+
+GType camera_accumulator_get_type (void) {
+ static volatile gsize camera_accumulator_type_id__volatile = 0;
+ if (g_once_init_enter (&camera_accumulator_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CameraAccumulatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) camera_accumulator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CameraAccumulator), 0, (GInstanceInitFunc) camera_accumulator_instance_init, NULL };
+ static const GInterfaceInfo core_tracker_accumulator_info = { (GInterfaceInitFunc) camera_accumulator_core_tracker_accumulator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType camera_accumulator_type_id;
+ camera_accumulator_type_id = g_type_register_static (G_TYPE_OBJECT, "CameraAccumulator", &g_define_type_info, 0);
+ g_type_add_interface_static (camera_accumulator_type_id, CORE_TYPE_TRACKER_ACCUMULATOR, &core_tracker_accumulator_info);
+ g_once_init_leave (&camera_accumulator_type_id__volatile, camera_accumulator_type_id);
+ }
+ return camera_accumulator_type_id__volatile;
+}
+
+
+static void _vala_camera_accumulator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ CameraAccumulator * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CAMERA_ACCUMULATOR, CameraAccumulator);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ switch (property_id) {
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_TOTAL:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_value_set_int (value, camera_accumulator_get_total (self));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_PHOTOS:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_value_set_int (value, camera_accumulator_get_photos (self));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_VIDEOS:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_value_set_int (value, camera_accumulator_get_videos (self));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_RAW:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_value_set_int (value, camera_accumulator_get_raw (self));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 5203 "ImportPage.c"
+ default:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 5209 "ImportPage.c"
+ }
+}
+
+
+static void _vala_camera_accumulator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ CameraAccumulator * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_CAMERA_ACCUMULATOR, CameraAccumulator);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ switch (property_id) {
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_TOTAL:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_total (self, g_value_get_int (value));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_PHOTOS:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_photos (self, g_value_get_int (value));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_VIDEOS:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_videos (self, g_value_get_int (value));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case CAMERA_ACCUMULATOR_RAW:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ camera_accumulator_set_raw (self, g_value_get_int (value));
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 5243 "ImportPage.c"
+ default:
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 5249 "ImportPage.c"
+ }
+}
+
+
+static void _import_page_on_media_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 766 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_media_added_removed ((ImportPage*) self);
+#line 5257 "ImportPage.c"
+}
+
+
+GType import_page_refresh_result_get_type (void) {
+ static volatile gsize import_page_refresh_result_type_id__volatile = 0;
+ if (g_once_init_enter (&import_page_refresh_result_type_id__volatile)) {
+ static const GEnumValue values[] = {{IMPORT_PAGE_REFRESH_RESULT_OK, "IMPORT_PAGE_REFRESH_RESULT_OK", "ok"}, {IMPORT_PAGE_REFRESH_RESULT_BUSY, "IMPORT_PAGE_REFRESH_RESULT_BUSY", "busy"}, {IMPORT_PAGE_REFRESH_RESULT_LOCKED, "IMPORT_PAGE_REFRESH_RESULT_LOCKED", "locked"}, {IMPORT_PAGE_REFRESH_RESULT_LIBRARY_ERROR, "IMPORT_PAGE_REFRESH_RESULT_LIBRARY_ERROR", "library-error"}, {0, NULL, NULL}};
+ GType import_page_refresh_result_type_id;
+ import_page_refresh_result_type_id = g_enum_register_static ("ImportPageRefreshResult", values);
+ g_once_init_leave (&import_page_refresh_result_type_id__volatile, import_page_refresh_result_type_id);
+ }
+ return import_page_refresh_result_type_id__volatile;
+}
+
+
+static gint64 _import_page_preview_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = import_page_preview_comparator (a, b);
+#line 747 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5278 "ImportPage.c"
+}
+
+
+static gboolean _import_page_preview_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = import_page_preview_comparator_predicate (object, alteration);
+#line 747 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5287 "ImportPage.c"
+}
+
+
+static void _import_page_on_view_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
+#line 750 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed ((ImportPage*) self);
+#line 5294 "ImportPage.c"
+}
+
+
+static void _import_page_on_view_changed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed ((ImportPage*) self);
+#line 5301 "ImportPage.c"
+}
+
+
+static void _import_page_on_view_changed_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self) {
+#line 752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed ((ImportPage*) self);
+#line 5308 "ImportPage.c"
+}
+
+
+ImportPage* import_page_construct (GType object_type, Camera* camera, const gchar* uri, const gchar* display_name, const gchar* icon) {
+ ImportPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+ Camera* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ ImportSourceCollection* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ CameraViewTracker* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkLabel* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GVolumeMonitor* _tmp29_ = NULL;
+ GPContextWrapper* _tmp30_ = NULL;
+ GPSpinIdleWrapper* _tmp32_ = NULL;
+ ViewCollection* _tmp34_ = NULL;
+ ViewCollection* _tmp35_ = NULL;
+ SourceCollection* _tmp36_ = NULL;
+ ImportPageImportViewManager* _tmp37_ = NULL;
+ ImportPageImportViewManager* _tmp38_ = NULL;
+ ViewCollectionMonitor* _tmp39_ = NULL;
+ ViewCollectionMonitor* _tmp40_ = NULL;
+ ViewCollection* _tmp41_ = NULL;
+ ViewCollection* _tmp42_ = NULL;
+ ViewCollection* _tmp43_ = NULL;
+ ViewCollection* _tmp44_ = NULL;
+ ViewCollection* _tmp45_ = NULL;
+ ViewCollection* _tmp46_ = NULL;
+ ViewCollection* _tmp47_ = NULL;
+ ViewCollection* _tmp48_ = NULL;
+ ViewCollection* _tmp49_ = NULL;
+ ViewCollection* _tmp50_ = NULL;
+ GValue _tmp51_ = {0};
+ LibraryPhotoSourceCollection* _tmp52_ = NULL;
+ VideoSourceCollection* _tmp53_ = NULL;
+#line 709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (uri != NULL, NULL);
+#line 710 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _ ("Camera");
+#line 710 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportPage*) checkerboard_page_construct (object_type, _tmp0_);
+#line 711 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = camera;
+#line 711 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _GPHOTO_REF_CAMERA0 (_tmp1_);
+#line 711 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (self->priv->camera);
+#line 711 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->camera = _tmp2_;
+#line 712 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = uri;
+#line 712 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 712 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->uri);
+#line 712 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->uri = _tmp4_;
+#line 713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = uri;
+#line 713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = g_strdup_printf ("ImportSources for %s", _tmp5_);
+#line 713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp6_;
+#line 713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = import_source_collection_new (_tmp7_);
+#line 713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (self->priv->import_sources);
+#line 713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->import_sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_SOURCE_COLLECTION, SourceCollection);
+#line 713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp7_);
+#line 714 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = icon;
+#line 714 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 714 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->icon);
+#line 714 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->icon = _tmp10_;
+#line 716 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 716 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = _tmp11_;
+#line 716 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = camera_view_tracker_new (_tmp12_);
+#line 716 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 716 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->tracker = _tmp13_;
+#line 716 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp12_);
+#line 719 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = display_name;
+#line 719 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (NULL != _tmp14_) {
+#line 5417 "ImportPage.c"
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 720 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = display_name;
+#line 720 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 720 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->camera_name);
+#line 720 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->camera_name = _tmp16_;
+#line 5428 "ImportPage.c"
+ } else {
+ CameraAbilities abilities = {0};
+ int res = 0;
+ Camera* _tmp17_ = NULL;
+ CameraAbilities _tmp18_ = {0};
+ int _tmp19_ = 0;
+ int _tmp20_ = 0;
+#line 723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = camera;
+#line 723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = gp_camera_get_abilities (_tmp17_, &_tmp18_);
+#line 723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (abilities);
+#line 723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ abilities = _tmp18_;
+#line 723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ res = _tmp19_;
+#line 724 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = res;
+#line 724 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp20_ != GP_OK) {
+#line 5450 "ImportPage.c"
+ int _tmp21_ = 0;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 725 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = res;
+#line 725 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = gp_result_to_full_string (_tmp21_);
+#line 725 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = _tmp22_;
+#line 725 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:725: Unable to get camera abilities: %s", _tmp23_);
+#line 725 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp23_);
+#line 726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = _ ("Camera");
+#line 726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = g_strdup (_tmp24_);
+#line 726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->camera_name);
+#line 726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->camera_name = _tmp25_;
+#line 5474 "ImportPage.c"
+ }
+#line 719 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (abilities);
+#line 5478 "ImportPage.c"
+ }
+#line 729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = self->priv->camera_label;
+#line 729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = self->priv->camera_name;
+#line 729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_label_set_text (_tmp26_, _tmp27_);
+#line 730 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = self->priv->camera_name;
+#line 730 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ page_set_page_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp28_);
+#line 733 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = g_volume_monitor_get ();
+#line 733 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->volume_monitor);
+#line 733 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->volume_monitor = _tmp29_;
+#line 736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = import_page_null_context;
+#line 736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp30_ == NULL) {
+#line 5500 "ImportPage.c"
+ GPContextWrapper* _tmp31_ = NULL;
+#line 737 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = gp_context_wrapper_new ();
+#line 737 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_context_wrapper_unref0 (import_page_null_context);
+#line 737 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_null_context = _tmp31_;
+#line 5508 "ImportPage.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = import_page_spin_idle_context;
+#line 740 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp32_ == NULL) {
+#line 5514 "ImportPage.c"
+ GPSpinIdleWrapper* _tmp33_ = NULL;
+#line 741 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = gp_spin_idle_wrapper_new ();
+#line 741 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_context_wrapper_unref0 (import_page_spin_idle_context);
+#line 741 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_spin_idle_context = _tmp33_;
+#line 5522 "ImportPage.c"
+ }
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = _tmp34_;
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = self->priv->import_sources;
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = import_page_import_view_manager_new (self);
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = _tmp37_;
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = view_collection_monitor_source_collection (_tmp35_, _tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_VIEW_MANAGER, ViewManager), NULL, NULL, NULL, NULL);
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = _tmp39_;
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _view_collection_monitor_unref0 (_tmp40_);
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _view_manager_unref0 (_tmp38_);
+#line 744 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp35_);
+#line 747 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 747 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = _tmp41_;
+#line 747 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_DATA_COLLECTION, DataCollection), _import_page_preview_comparator_comparator, NULL, _import_page_preview_comparator_predicate_comparator_predicate, NULL);
+#line 747 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp42_);
+#line 750 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 750 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = _tmp43_;
+#line 750 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (_tmp44_, "items-state-changed", (GCallback) _import_page_on_view_changed_view_collection_items_state_changed, self, 0);
+#line 750 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp44_);
+#line 751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = _tmp45_;
+#line 751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _import_page_on_view_changed_data_collection_contents_altered, self, 0);
+#line 751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp46_);
+#line 752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = _tmp47_;
+#line 752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (_tmp48_, "items-visibility-changed", (GCallback) _import_page_on_view_changed_view_collection_items_visibility_changed, self, 0);
+#line 752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp48_);
+#line 755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = _tmp49_;
+#line 755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_value_init (&_tmp51_, G_TYPE_BOOLEAN);
+#line 755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_value_set_boolean (&_tmp51_, TRUE);
+#line 755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_DATA_COLLECTION, DataCollection), CHECKERBOARD_ITEM_PROP_SHOW_SUBTITLES, &_tmp51_, NULL, NULL);
+#line 755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_IS_VALUE (&_tmp51_) ? (g_value_unset (&_tmp51_), NULL) : NULL;
+#line 755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp50_);
+#line 758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = library_photo_global;
+#line 758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _import_page_on_media_added_removed_data_collection_contents_altered, self, 0);
+#line 759 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = video_global;
+#line 759 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _import_page_on_media_added_removed_data_collection_contents_altered, self, 0);
+#line 761 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_page_init_item_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/ImportContextMenu");
+#line 762 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_page_init_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/ImportContextMenu");
+#line 709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 5604 "ImportPage.c"
+}
+
+
+ImportPage* import_page_new (Camera* camera, const gchar* uri, const gchar* display_name, const gchar* icon) {
+#line 709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return import_page_construct (TYPE_IMPORT_PAGE, camera, uri, display_name, icon);
+#line 5611 "ImportPage.c"
+}
+
+
+static void _import_page_on_hide_imported_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 777 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_hide_imported ((ImportPage*) self);
+#line 5618 "ImportPage.c"
+}
+
+
+static GtkToolbar* import_page_real_get_toolbar (Page* base) {
+ ImportPage * self;
+ GtkToolbar* result = NULL;
+ GtkToolbar* _tmp0_ = NULL;
+ GtkToolbar* _tmp56_ = NULL;
+ GtkToolbar* _tmp57_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_ == NULL) {
+#line 5634 "ImportPage.c"
+ GtkToolbar* _tmp1_ = NULL;
+ GtkToolbar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkCheckButton* _tmp4_ = NULL;
+ GtkCheckButton* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkCheckButton* _tmp7_ = NULL;
+ GtkCheckButton* _tmp8_ = NULL;
+ GtkCheckButton* _tmp9_ = NULL;
+ ConfigFacade* _tmp10_ = NULL;
+ ConfigFacade* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GtkToolItem* hide_item = NULL;
+ GtkToolItem* _tmp13_ = NULL;
+ GtkToolItem* _tmp14_ = NULL;
+ GtkToolItem* _tmp15_ = NULL;
+ GtkCheckButton* _tmp16_ = NULL;
+ GtkToolbar* _tmp17_ = NULL;
+ GtkToolItem* _tmp18_ = NULL;
+ GtkSeparatorToolItem* separator = NULL;
+ GtkSeparatorToolItem* _tmp19_ = NULL;
+ GtkSeparatorToolItem* _tmp20_ = NULL;
+ GtkToolbar* _tmp21_ = NULL;
+ GtkSeparatorToolItem* _tmp22_ = NULL;
+ GtkProgressBar* _tmp23_ = NULL;
+ GtkProgressBar* _tmp24_ = NULL;
+ GtkToolItem* progress_item = NULL;
+ GtkToolItem* _tmp25_ = NULL;
+ GtkToolItem* _tmp26_ = NULL;
+ GtkToolItem* _tmp27_ = NULL;
+ GtkProgressBar* _tmp28_ = NULL;
+ GtkProgressBar* _tmp29_ = NULL;
+ GtkToolbar* _tmp30_ = NULL;
+ GtkToolItem* _tmp31_ = NULL;
+ GtkToggleToolButton* find_button = NULL;
+ GtkToggleToolButton* _tmp32_ = NULL;
+ GtkToggleToolButton* _tmp33_ = NULL;
+ GtkAction* _tmp34_ = NULL;
+ GtkAction* _tmp35_ = NULL;
+ GtkToolbar* _tmp36_ = NULL;
+ GtkToggleToolButton* _tmp37_ = NULL;
+ GtkToolbar* _tmp38_ = NULL;
+ GtkSeparatorToolItem* _tmp39_ = NULL;
+ GtkSeparatorToolItem* _tmp40_ = NULL;
+ GtkToolButton* import_selected_button = NULL;
+ GtkToolButton* _tmp41_ = NULL;
+ GtkToolButton* _tmp42_ = NULL;
+ GtkToolButton* _tmp43_ = NULL;
+ GtkAction* _tmp44_ = NULL;
+ GtkAction* _tmp45_ = NULL;
+ GtkToolbar* _tmp46_ = NULL;
+ GtkToolButton* _tmp47_ = NULL;
+ GtkToolButton* import_all_button = NULL;
+ GtkToolButton* _tmp48_ = NULL;
+ GtkToolButton* _tmp49_ = NULL;
+ GtkToolButton* _tmp50_ = NULL;
+ GtkAction* _tmp51_ = NULL;
+ GtkAction* _tmp52_ = NULL;
+ GtkToolbar* _tmp53_ = NULL;
+ GtkToolButton* _tmp54_ = NULL;
+ GtkProgressBar* _tmp55_ = NULL;
+#line 772 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = PAGE_CLASS (import_page_parent_class)->get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page));
+#line 772 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_;
+#line 772 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 775 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _ ("Hide photos already imported");
+#line 775 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp3_);
+#line 775 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp4_);
+#line 775 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->hide_imported);
+#line 775 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->hide_imported = _tmp4_;
+#line 776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = self->priv->hide_imported;
+#line 776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _ ("Only display photos that have not been imported");
+#line 776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), _tmp6_);
+#line 777 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = self->priv->hide_imported;
+#line 777 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_button_get_type (), GtkButton), "clicked", (GCallback) _import_page_on_hide_imported_gtk_button_clicked, self, 0);
+#line 778 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = self->priv->hide_imported;
+#line 778 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = self->priv->hide_imported;
+#line 779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = config_facade_get_instance ();
+#line 779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp10_;
+#line 779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = configuration_facade_get_hide_photos_already_imported (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_toggle_button_get_type (), GtkToggleButton), _tmp12_);
+#line 779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 780 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = gtk_tool_item_new ();
+#line 780 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp13_);
+#line 780 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ hide_item = _tmp13_;
+#line 781 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = hide_item;
+#line 781 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_tool_item_set_is_important (_tmp14_, TRUE);
+#line 782 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = hide_item;
+#line 782 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = self->priv->hide_imported;
+#line 782 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget));
+#line 784 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 784 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = hide_item;
+#line 784 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toolbar_insert (_tmp17_, _tmp18_, -1);
+#line 787 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 787 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp19_);
+#line 787 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ separator = _tmp19_;
+#line 788 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = separator;
+#line 788 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_separator_tool_item_set_draw (_tmp20_, FALSE);
+#line 790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = separator;
+#line 790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toolbar_insert (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 793 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = self->priv->progress_bar;
+#line 793 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_orientable_set_orientation (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GTK_TYPE_ORIENTABLE, GtkOrientable), GTK_ORIENTATION_HORIZONTAL);
+#line 794 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = self->priv->progress_bar;
+#line 794 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 795 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = gtk_tool_item_new ();
+#line 795 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp25_);
+#line 795 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ progress_item = _tmp25_;
+#line 796 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = progress_item;
+#line 796 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_tool_item_set_expand (_tmp26_, TRUE);
+#line 797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = progress_item;
+#line 797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = self->priv->progress_bar;
+#line 797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget));
+#line 798 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = self->priv->progress_bar;
+#line 798 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_show_text (_tmp29_, TRUE);
+#line 800 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 800 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = progress_item;
+#line 800 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toolbar_insert (_tmp30_, _tmp31_, -1);
+#line 803 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = (GtkToggleToolButton*) gtk_toggle_tool_button_new ();
+#line 803 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp32_);
+#line 803 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ find_button = _tmp32_;
+#line 804 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = find_button;
+#line 804 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonDisplaySearchbar");
+#line 804 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = _tmp34_;
+#line 804 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_activatable_set_related_action (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GTK_TYPE_ACTIVATABLE, GtkActivatable), _tmp35_);
+#line 804 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp35_);
+#line 806 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 806 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = find_button;
+#line 806 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toolbar_insert (_tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 809 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 809 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 809 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp39_);
+#line 809 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = _tmp39_;
+#line 809 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toolbar_insert (_tmp38_, G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 809 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp40_);
+#line 812 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = (GtkToolButton*) gtk_tool_button_new (NULL, NULL);
+#line 812 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp41_);
+#line 812 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_selected_button = _tmp41_;
+#line 813 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = import_selected_button;
+#line 813 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_tool_button_set_icon_name (_tmp42_, RESOURCES_IMPORT);
+#line 814 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = import_selected_button;
+#line 814 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ImportSelected");
+#line 814 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = _tmp44_;
+#line 814 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_activatable_set_related_action (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, GTK_TYPE_ACTIVATABLE, GtkActivatable), _tmp45_);
+#line 814 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp45_);
+#line 816 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 816 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = import_selected_button;
+#line 816 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toolbar_insert (_tmp46_, G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 819 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = (GtkToolButton*) gtk_tool_button_new (NULL, NULL);
+#line 819 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp48_);
+#line 819 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_all_button = _tmp48_;
+#line 820 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = import_all_button;
+#line 820 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_tool_button_set_icon_name (_tmp49_, RESOURCES_IMPORT_ALL);
+#line 821 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = import_all_button;
+#line 821 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ImportAll");
+#line 821 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = _tmp51_;
+#line 821 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_activatable_set_related_action (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, GTK_TYPE_ACTIVATABLE, GtkActivatable), _tmp52_);
+#line 821 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp52_);
+#line 823 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 823 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = import_all_button;
+#line 823 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toolbar_insert (_tmp53_, G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 827 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = self->priv->progress_bar;
+#line 827 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_no_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 829 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_toolbar_state (self);
+#line 831 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_all_button);
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_selected_button);
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (find_button);
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (progress_item);
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (separator);
+#line 771 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (hide_item);
+#line 5916 "ImportPage.c"
+ }
+#line 834 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->toolbar;
+#line 834 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = _g_object_ref0 (_tmp56_);
+#line 834 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp57_;
+#line 834 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5926 "ImportPage.c"
+}
+
+
+static gpointer _core_tracker_ref0 (gpointer self) {
+#line 838 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self ? core_tracker_ref (self) : NULL;
+#line 5933 "ImportPage.c"
+}
+
+
+static CoreViewTracker* import_page_real_get_view_tracker (CheckerboardPage* base) {
+ ImportPage * self;
+ CoreViewTracker* result = NULL;
+ CameraViewTracker* _tmp0_ = NULL;
+ CoreViewTracker* _tmp1_ = NULL;
+#line 837 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 838 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->tracker;
+#line 838 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _core_tracker_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, CORE_TYPE_VIEW_TRACKER, CoreViewTracker));
+#line 838 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 838 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5952 "ImportPage.c"
+}
+
+
+static gchar* import_page_real_get_view_empty_message (CheckerboardPage* base) {
+ ImportPage * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 846 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _ ("Starting import, please wait...");
+#line 846 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 846 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 846 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 5971 "ImportPage.c"
+}
+
+
+static gint64 import_page_preview_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ ImportSource* _tmp1_ = NULL;
+ ImportSource* _tmp2_ = NULL;
+ time_t _tmp3_ = 0;
+ void* _tmp4_ = NULL;
+ ImportSource* _tmp5_ = NULL;
+ ImportSource* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+ gint64 _tmp8_ = 0LL;
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = a;
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_preview_get_import_source (G_TYPE_CHECK_INSTANCE_CAST ((ImportPreview*) _tmp0_, TYPE_IMPORT_PREVIEW, ImportPreview));
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_;
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = import_source_get_exposure_time (_tmp2_);
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = b;
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = import_preview_get_import_source (G_TYPE_CHECK_INSTANCE_CAST ((ImportPreview*) _tmp4_, TYPE_IMPORT_PREVIEW, ImportPreview));
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = import_source_get_exposure_time (_tmp6_);
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = (gint64) (_tmp3_ - _tmp7_);
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp8_;
+#line 850 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6012 "ImportPage.c"
+}
+
+
+static gboolean import_page_preview_comparator_predicate (DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 854 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 854 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 855 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = alteration;
+#line 855 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "exposure-time");
+#line 855 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 855 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6032 "ImportPage.c"
+}
+
+
+static gint64 import_page_import_job_comparator (ImportPage* self, void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ void* _tmp2_ = NULL;
+ time_t _tmp3_ = 0;
+#line 858 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), 0LL);
+#line 859 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = a;
+#line 859 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_page_camera_import_job_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST ((ImportPageCameraImportJob*) _tmp0_, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob));
+#line 859 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = b;
+#line 859 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = import_page_camera_import_job_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST ((ImportPageCameraImportJob*) _tmp2_, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob));
+#line 859 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = (gint64) (_tmp1_ - _tmp3_);
+#line 859 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6056 "ImportPage.c"
+}
+
+
+static void import_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ ImportPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 862 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 862 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 863 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = ui_filenames;
+#line 863 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ PAGE_CLASS (import_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp0_);
+#line 865 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = ui_filenames;
+#line 865 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "import.ui");
+#line 6076 "ImportPage.c"
+}
+
+
+static void _import_page_on_display_titles_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_display_titles ((ImportPage*) self, action);
+#line 6083 "ImportPage.c"
+}
+
+
+static void _vala_array_add143 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((*length) == (*size)) {
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 6094 "ImportPage.c"
+ }
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (*array)[(*length)++] = *value;
+#line 6098 "ImportPage.c"
+}
+
+
+static GtkToggleActionEntry* import_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1) {
+ ImportPage * self;
+ GtkToggleActionEntry* result = NULL;
+ GtkToggleActionEntry* toggle_actions = NULL;
+ gint _tmp0_ = 0;
+ GtkToggleActionEntry* _tmp1_ = NULL;
+ gint toggle_actions_length1 = 0;
+ gint _toggle_actions_size_ = 0;
+ GtkToggleActionEntry titles = {0};
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkToggleActionEntry _tmp5_ = {0};
+ GtkToggleActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkToggleActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkToggleActionEntry _tmp10_ = {0};
+ GtkToggleActionEntry* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 868 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 869 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = PAGE_CLASS (import_page_parent_class)->init_collect_toggle_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 869 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ toggle_actions = _tmp1_;
+#line 869 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ toggle_actions_length1 = _tmp0_;
+#line 869 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _toggle_actions_size_ = toggle_actions_length1;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = configuration_facade_get_display_photo_titles (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_.name = "ViewTitle";
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_.accelerator = "<Ctrl><Shift>T";
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_.callback = (GCallback) _import_page_on_display_titles_gtk_action_callback;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_.is_active = _tmp4_;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 871 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ titles = _tmp6_;
+#line 873 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _ ("_Titles");
+#line 873 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ titles.label = _tmp7_;
+#line 874 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _ ("Display the title of each photo");
+#line 874 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ titles.tooltip = _tmp8_;
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = toggle_actions;
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9__length1 = toggle_actions_length1;
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = titles;
+#line 875 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_array_add143 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp10_);
+#line 877 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = toggle_actions;
+#line 877 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11__length1 = toggle_actions_length1;
+#line 877 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (result_length1) {
+#line 877 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *result_length1 = _tmp11__length1;
+#line 6183 "ImportPage.c"
+ }
+#line 877 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp11_;
+#line 877 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6189 "ImportPage.c"
+}
+
+
+static void _import_page_on_import_selected_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_import_selected ((ImportPage*) self);
+#line 6196 "ImportPage.c"
+}
+
+
+static void _vala_array_add144 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((*length) == (*size)) {
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 6207 "ImportPage.c"
+ }
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (*array)[(*length)++] = *value;
+#line 6211 "ImportPage.c"
+}
+
+
+static void _import_page_on_import_all_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_import_all ((ImportPage*) self);
+#line 6218 "ImportPage.c"
+}
+
+
+static void _vala_array_add145 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((*length) == (*size)) {
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 6229 "ImportPage.c"
+ }
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (*array)[(*length)++] = *value;
+#line 6233 "ImportPage.c"
+}
+
+
+static GtkActionEntry* import_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ ImportPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry import_selected = {0};
+ GtkActionEntry _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkActionEntry* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GtkActionEntry _tmp6_ = {0};
+ GtkActionEntry import_all = {0};
+ GtkActionEntry _tmp7_ = {0};
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GtkActionEntry* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ GtkActionEntry _tmp11_ = {0};
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+#line 880 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 881 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = PAGE_CLASS (import_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 881 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ actions = _tmp1_;
+#line 881 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ actions_length1 = _tmp0_;
+#line 881 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _actions_size_ = actions_length1;
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_.name = "ImportSelected";
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_.stock_id = RESOURCES_IMPORT;
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_.accelerator = NULL;
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_.tooltip = NULL;
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_.callback = (GCallback) _import_page_on_import_selected_gtk_action_callback;
+#line 883 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_selected = _tmp2_;
+#line 885 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _ ("Import _Selected");
+#line 885 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_selected.label = _tmp3_;
+#line 886 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _ ("Import the selected photos into your library");
+#line 886 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_selected.tooltip = _tmp4_;
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = actions;
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5__length1 = actions_length1;
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = import_selected;
+#line 887 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_array_add144 (&actions, &actions_length1, &_actions_size_, &_tmp6_);
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_.name = "ImportAll";
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_.stock_id = RESOURCES_IMPORT_ALL;
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_.label = TRANSLATABLE;
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_.accelerator = NULL;
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_.tooltip = NULL;
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_.callback = (GCallback) _import_page_on_import_all_gtk_action_callback;
+#line 889 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_all = _tmp7_;
+#line 891 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _ ("Import _All");
+#line 891 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_all.label = _tmp8_;
+#line 892 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _ ("Import all the photos into your library");
+#line 892 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_all.tooltip = _tmp9_;
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = actions;
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10__length1 = actions_length1;
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = import_all;
+#line 893 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_array_add145 (&actions, &actions_length1, &_actions_size_, &_tmp11_);
+#line 895 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = actions;
+#line 895 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12__length1 = actions_length1;
+#line 895 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (result_length1) {
+#line 895 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *result_length1 = _tmp12__length1;
+#line 6339 "ImportPage.c"
+ }
+#line 895 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp12_;
+#line 895 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6345 "ImportPage.c"
+}
+
+
+Camera* import_page_get_camera (ImportPage* self) {
+ Camera* result = NULL;
+ Camera* _tmp0_ = NULL;
+ Camera* _tmp1_ = NULL;
+#line 898 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), NULL);
+#line 899 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->camera;
+#line 899 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _GPHOTO_REF_CAMERA0 (_tmp0_);
+#line 899 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 899 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6363 "ImportPage.c"
+}
+
+
+gchar* import_page_get_uri (ImportPage* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 902 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), NULL);
+#line 903 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->uri;
+#line 903 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 903 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 903 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6381 "ImportPage.c"
+}
+
+
+gboolean import_page_is_busy (ImportPage* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 906 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), FALSE);
+#line 907 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->busy;
+#line 907 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 907 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6396 "ImportPage.c"
+}
+
+
+static void import_page_real_init_actions (Page* base, gint selected_count, gint count) {
+ ImportPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 910 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 911 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed (self);
+#line 913 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ImportSelected", TRUE);
+#line 914 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ImportAll", TRUE);
+#line 916 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = selected_count;
+#line 916 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = count;
+#line 916 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ PAGE_CLASS (import_page_parent_class)->init_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp0_, _tmp1_);
+#line 6418 "ImportPage.c"
+}
+
+
+gboolean import_page_is_refreshed (ImportPage* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 919 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), FALSE);
+#line 920 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->refreshed;
+#line 920 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_) {
+#line 6432 "ImportPage.c"
+ gboolean _tmp2_ = FALSE;
+#line 920 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->busy;
+#line 920 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = !_tmp2_;
+#line 6438 "ImportPage.c"
+ } else {
+#line 920 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = FALSE;
+#line 6442 "ImportPage.c"
+ }
+#line 920 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 920 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6448 "ImportPage.c"
+}
+
+
+gchar* import_page_get_refresh_message (ImportPage* self) {
+ gchar* result = NULL;
+ gchar* msg = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 923 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), NULL);
+#line 924 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ msg = NULL;
+#line 925 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->refresh_error;
+#line 925 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_ != NULL) {
+#line 6464 "ImportPage.c"
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->refresh_error;
+#line 926 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 926 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (msg);
+#line 926 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ msg = _tmp2_;
+#line 6475 "ImportPage.c"
+ } else {
+ int _tmp3_ = 0;
+#line 927 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->refresh_result;
+#line 927 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp3_ == GP_OK) {
+#line 6482 "ImportPage.c"
+ } else {
+ int _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+#line 930 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = self->priv->refresh_result;
+#line 930 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = gp_result_to_full_string (_tmp4_);
+#line 930 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (msg);
+#line 930 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ msg = _tmp5_;
+#line 6494 "ImportPage.c"
+ }
+ }
+#line 933 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = msg;
+#line 933 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 6501 "ImportPage.c"
+}
+
+
+static void import_page_update_status (ImportPage* self, gboolean busy, gboolean refreshed) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 936 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 937 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = busy;
+#line 937 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->busy = _tmp0_;
+#line 938 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = refreshed;
+#line 938 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refreshed = _tmp1_;
+#line 940 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed (self);
+#line 6520 "ImportPage.c"
+}
+
+
+static void import_page_update_toolbar_state (ImportPage* self) {
+ GtkCheckButton* _tmp0_ = NULL;
+#line 943 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 944 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->hide_imported;
+#line 944 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_ != NULL) {
+#line 6532 "ImportPage.c"
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GtkCheckButton* _tmp8_ = NULL;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->busy;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp3_) {
+#line 6541 "ImportPage.c"
+ gboolean _tmp4_ = FALSE;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = self->priv->refreshed;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp4_;
+#line 6547 "ImportPage.c"
+ } else {
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = FALSE;
+#line 6551 "ImportPage.c"
+ }
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_) {
+#line 6555 "ImportPage.c"
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = view_collection_get_unfiltered_count (_tmp6_);
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp7_ > 0;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 6569 "ImportPage.c"
+ } else {
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = FALSE;
+#line 6573 "ImportPage.c"
+ }
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = self->priv->hide_imported;
+#line 945 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), _tmp1_);
+#line 6579 "ImportPage.c"
+ }
+}
+
+
+static void import_page_on_view_changed (ImportPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ AppWindow* _tmp19_ = NULL;
+ AppWindow* _tmp20_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->busy;
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp2_) {
+#line 6601 "ImportPage.c"
+ gboolean _tmp3_ = FALSE;
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->refreshed;
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp3_;
+#line 6607 "ImportPage.c"
+ } else {
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = FALSE;
+#line 6611 "ImportPage.c"
+ }
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_) {
+#line 6615 "ImportPage.c"
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _tmp4_;
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = view_collection_get_selected_count (_tmp5_);
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp6_ > 0;
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 6629 "ImportPage.c"
+ } else {
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = FALSE;
+#line 6633 "ImportPage.c"
+ }
+#line 949 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ImportSelected", _tmp0_);
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = self->priv->busy;
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp9_) {
+#line 6641 "ImportPage.c"
+ gboolean _tmp10_ = FALSE;
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = self->priv->refreshed;
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _tmp10_;
+#line 6647 "ImportPage.c"
+ } else {
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = FALSE;
+#line 6651 "ImportPage.c"
+ }
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp8_) {
+#line 6655 "ImportPage.c"
+ ViewCollection* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = _tmp11_;
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_COLLECTION, DataCollection));
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp13_ > 0;
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp12_);
+#line 6669 "ImportPage.c"
+ } else {
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = FALSE;
+#line 6673 "ImportPage.c"
+ }
+#line 950 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ImportAll", _tmp7_);
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = self->priv->busy;
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp15_) {
+#line 6681 "ImportPage.c"
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = _tmp16_;
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection));
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = _tmp18_ > 0;
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 6695 "ImportPage.c"
+ } else {
+#line 952 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = FALSE;
+#line 6699 "ImportPage.c"
+ }
+#line 951 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = app_window_get_instance ();
+#line 951 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = _tmp19_;
+#line 951 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ app_window_set_common_action_sensitive (_tmp20_, "CommonSelectAll", _tmp14_);
+#line 951 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 954 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_toolbar_state (self);
+#line 6711 "ImportPage.c"
+}
+
+
+static void import_page_on_media_added_removed (ImportPage* self) {
+ ImportPageImportPageSearchViewFilter* _tmp0_ = NULL;
+#line 957 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 958 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 958 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIEW_FILTER, ViewFilter), "refresh");
+#line 6723 "ImportPage.c"
+}
+
+
+static void import_page_on_display_titles (ImportPage* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 961 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 961 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 962 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = action;
+#line 962 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 962 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ display = _tmp1_;
+#line 964 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_page_set_display_titles (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), display);
+#line 965 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 965 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 965 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ configuration_facade_set_display_photo_titles (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), display);
+#line 965 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 6753 "ImportPage.c"
+}
+
+
+static void import_page_real_switched_to (Page* base) {
+ ImportPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 968 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 969 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 969 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 969 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = configuration_facade_get_display_photo_titles (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 969 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_page_set_display_titles (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp2_);
+#line 969 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 971 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ PAGE_CLASS (import_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page));
+#line 6776 "ImportPage.c"
+}
+
+
+static void import_page_real_ready (Page* base) {
+ ImportPage * self;
+ ImportPageHideImportedViewFilter* _tmp0_ = NULL;
+#line 974 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 975 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_try_refreshing_camera (self, FALSE);
+#line 976 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->hide_imported_filter;
+#line 976 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIEW_FILTER, ViewFilter), "refresh");
+#line 6791 "ImportPage.c"
+}
+
+
+static void import_page_try_refreshing_camera (ImportPage* self, gboolean fail_on_locked) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ ImportPageRefreshResult res = 0;
+ ImportPageRefreshResult _tmp3_ = 0;
+ ImportPageRefreshResult _tmp4_ = 0;
+ GError * _inner_error_ = NULL;
+#line 979 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 981 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->refreshed;
+#line 981 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_) {
+#line 981 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = TRUE;
+#line 6810 "ImportPage.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 981 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->busy;
+#line 981 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp2_;
+#line 6817 "ImportPage.c"
+ }
+#line 981 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_) {
+#line 982 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 6823 "ImportPage.c"
+ }
+#line 984 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = import_page_refresh_camera (self);
+#line 984 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ res = _tmp3_;
+#line 985 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = res;
+#line 985 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ switch (_tmp4_) {
+#line 985 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case IMPORT_PAGE_REFRESH_RESULT_OK:
+#line 985 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case IMPORT_PAGE_REFRESH_RESULT_BUSY:
+#line 6837 "ImportPage.c"
+ {
+#line 990 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 6841 "ImportPage.c"
+ }
+#line 985 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case IMPORT_PAGE_REFRESH_RESULT_LOCKED:
+#line 6845 "ImportPage.c"
+ {
+ gboolean _tmp5_ = FALSE;
+ const gchar* _tmp6_ = NULL;
+ GFile* uri = NULL;
+ const gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GMount* mount = NULL;
+ GMount* _tmp13_ = NULL;
+#line 993 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = fail_on_locked;
+#line 993 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_) {
+#line 994 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ app_window_error_message (IMPORT_PAGE_UNMOUNT_FAILED_MSG, NULL);
+#line 996 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 6862 "ImportPage.c"
+ }
+#line 1000 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = self->priv->uri;
+#line 1000 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1000: Checking if %s is mounted ...", _tmp6_);
+#line 1002 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = self->priv->uri;
+#line 1002 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = g_file_new_for_uri (_tmp7_);
+#line 1002 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ uri = _tmp8_;
+#line 1004 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ mount = NULL;
+#line 6876 "ImportPage.c"
+ {
+ GMount* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GMount* _tmp11_ = NULL;
+ GMount* _tmp12_ = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = uri;
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = g_file_find_enclosing_mount (_tmp10_, NULL, &_inner_error_);
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _tmp11_;
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 6890 "ImportPage.c"
+ goto __catch62_g_error;
+ }
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = _tmp9_;
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (mount);
+#line 1006 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ mount = _tmp12_;
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 6903 "ImportPage.c"
+ }
+ goto __finally62;
+ __catch62_g_error:
+ {
+ GError* err = NULL;
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 6915 "ImportPage.c"
+ }
+ __finally62:
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (mount);
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (uri);
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1005 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 6930 "ImportPage.c"
+ }
+#line 1011 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = mount;
+#line 1011 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp13_ != NULL) {
+#line 6936 "ImportPage.c"
+ gchar* mounted_message = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ AppWindow* _tmp16_ = NULL;
+ AppWindow* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ GtkMessageDialog* _tmp19_ = NULL;
+ GtkMessageDialog* _tmp20_ = NULL;
+ GtkMessageDialog* _tmp21_ = NULL;
+ GtkMessageDialog* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gint dialog_res = 0;
+ GtkMessageDialog* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ GtkMessageDialog* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+#line 1013 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = _ ("Shotwell needs to unmount the camera from the filesystem in order to a" \
+"ccess it. Continue?");
+#line 1013 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 1013 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ mounted_message = _tmp15_;
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = app_window_get_instance ();
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = _tmp16_;
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = mounted_message;
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = (GtkMessageDialog*) gtk_message_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_QUESTION, GTK_BUTTONS_CANCEL, "%s", _tmp18_);
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp19_);
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = _tmp19_;
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp17_);
+#line 1015 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ dialog = _tmp20_;
+#line 1018 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = dialog;
+#line 1018 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_window_get_type (), GtkWindow), RESOURCES_APP_TITLE);
+#line 1019 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = dialog;
+#line 1019 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = _ ("_Unmount");
+#line 1019 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_dialog_add_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_dialog_get_type (), GtkDialog), _tmp23_, (gint) GTK_RESPONSE_YES);
+#line 1020 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = dialog;
+#line 1020 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_dialog_get_type (), GtkDialog));
+#line 1020 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ dialog_res = _tmp25_;
+#line 1021 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = dialog;
+#line 1021 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget));
+#line 1023 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = dialog_res;
+#line 1023 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp27_ != ((gint) GTK_RESPONSE_YES)) {
+#line 7000 "ImportPage.c"
+ const gchar* _tmp28_ = NULL;
+#line 1024 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = _ ("Please unmount the camera.");
+#line 1024 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_page_set_page_message (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp28_);
+#line 7006 "ImportPage.c"
+ } else {
+ GMount* _tmp29_ = NULL;
+#line 1026 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = mount;
+#line 1026 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_unmount_camera (self, _tmp29_);
+#line 7013 "ImportPage.c"
+ }
+#line 1011 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dialog);
+#line 1011 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (mounted_message);
+#line 7019 "ImportPage.c"
+ } else {
+ gchar* locked_message = NULL;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ GtkMessageDialog* dialog = NULL;
+ AppWindow* _tmp32_ = NULL;
+ AppWindow* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ GtkMessageDialog* _tmp35_ = NULL;
+ GtkMessageDialog* _tmp36_ = NULL;
+ GtkMessageDialog* _tmp37_ = NULL;
+ GtkMessageDialog* _tmp38_ = NULL;
+ GtkMessageDialog* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+#line 1029 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = _ ("The camera is locked by another application. Shotwell can only access" \
+" the camera when it's unlocked. Please close any other application us" \
+"ing the camera and try again.");
+#line 1029 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = g_strdup (_tmp30_);
+#line 1029 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ locked_message = _tmp31_;
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = app_window_get_instance ();
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = _tmp32_;
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = locked_message;
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = (GtkMessageDialog*) gtk_message_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_window_get_type (), GtkWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, "%s", _tmp34_);
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp35_);
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = _tmp35_;
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 1032 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ dialog = _tmp36_;
+#line 1035 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = dialog;
+#line 1035 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_window_get_type (), GtkWindow), RESOURCES_APP_TITLE);
+#line 1036 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = dialog;
+#line 1036 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_dialog_get_type (), GtkDialog));
+#line 1037 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = dialog;
+#line 1037 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_widget_get_type (), GtkWidget));
+#line 1039 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = _ ("Please close any other application using the camera.");
+#line 1039 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ checkerboard_page_set_page_message (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp40_);
+#line 1011 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dialog);
+#line 1011 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (locked_message);
+#line 7076 "ImportPage.c"
+ }
+#line 1041 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (mount);
+#line 1041 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (uri);
+#line 1041 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 7084 "ImportPage.c"
+ }
+#line 985 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case IMPORT_PAGE_REFRESH_RESULT_LIBRARY_ERROR:
+#line 7088 "ImportPage.c"
+ {
+ const gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = _ ("Unable to fetch previews from the camera:\n%s");
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = import_page_get_refresh_message (self);
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = _tmp42_;
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = g_strdup_printf (_tmp41_, _tmp43_);
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = _tmp44_;
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ app_window_error_message (_tmp45_, NULL);
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp45_);
+#line 1044 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp43_);
+#line 1046 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 7113 "ImportPage.c"
+ }
+ default:
+ {
+ ImportPageRefreshResult _tmp46_ = 0;
+#line 1049 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = res;
+#line 1049 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_error ("ImportPage.vala:1049: Unknown result type %d", (gint) _tmp46_);
+#line 7122 "ImportPage.c"
+ }
+ }
+}
+
+
+static void _import_page_on_unmounted_g_mount_unmounted (GMount* _sender, gpointer self) {
+#line 1066 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_unmounted ((ImportPage*) self, _sender);
+#line 7131 "ImportPage.c"
+}
+
+
+static void _import_page_on_unmount_finished_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_unmount_finished ((ImportPage*) self, source_object, res);
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_unref (self);
+#line 7140 "ImportPage.c"
+}
+
+
+gboolean import_page_unmount_camera (ImportPage* self, GMount* mount) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GtkProgressBar* _tmp1_ = NULL;
+ GtkProgressBar* _tmp2_ = NULL;
+ GtkProgressBar* _tmp3_ = NULL;
+ GtkProgressBar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GMount* _tmp6_ = NULL;
+ GMount* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+ AppWindow* _tmp9_ = NULL;
+ GtkMountOperation* _tmp10_ = NULL;
+ GtkMountOperation* _tmp11_ = NULL;
+#line 1053 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), FALSE);
+#line 1053 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (G_IS_MOUNT (mount), FALSE);
+#line 1054 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->busy;
+#line 1054 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_) {
+#line 1055 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1055 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7170 "ImportPage.c"
+ }
+#line 1057 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, TRUE, FALSE);
+#line 1058 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->progress_bar;
+#line 1058 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 1059 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->progress_bar;
+#line 1059 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_fraction (_tmp2_, 0.0);
+#line 1060 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->progress_bar;
+#line 1060 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp3_, PANGO_ELLIPSIZE_NONE);
+#line 1061 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = self->priv->progress_bar;
+#line 1061 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _ ("Unmounting...");
+#line 1061 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_text (_tmp4_, _tmp5_);
+#line 1066 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = mount;
+#line 1066 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (_tmp6_, "unmounted", (GCallback) _import_page_on_unmounted_g_mount_unmounted, self, 0);
+#line 1068 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1068: Unmounting camera ...");
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = mount;
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = app_window_get_instance ();
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _tmp8_;
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = (GtkMountOperation*) gtk_mount_operation_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_window_get_type (), GtkWindow));
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp10_;
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_mount_unmount_with_operation (_tmp7_, G_MOUNT_UNMOUNT_NONE, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, g_mount_operation_get_type (), GMountOperation), NULL, _import_page_on_unmount_finished_gasync_ready_callback, g_object_ref (self));
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1069 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1072 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 1072 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7218 "ImportPage.c"
+}
+
+
+static void import_page_on_unmount_finished (ImportPage* self, GObject* source, GAsyncResult* aresult) {
+ GMount* mount = NULL;
+ GObject* _tmp0_ = NULL;
+ GMount* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1075 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1075 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail ((source == NULL) || G_IS_OBJECT (source));
+#line 1075 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (G_IS_ASYNC_RESULT (aresult));
+#line 1076 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1076: Async unmount finished");
+#line 1078 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = source;
+#line 1078 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, g_mount_get_type (), GMount));
+#line 1078 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ mount = _tmp1_;
+#line 7241 "ImportPage.c"
+ {
+ GAsyncResult* _tmp2_ = NULL;
+#line 1080 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = aresult;
+#line 1080 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_mount_unmount_with_operation_finish (mount, _tmp2_, &_inner_error_);
+#line 1080 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7250 "ImportPage.c"
+ goto __catch63_g_error;
+ }
+ }
+ goto __finally63;
+ __catch63_g_error:
+ {
+ GError* err = NULL;
+ guint _tmp3_ = 0U;
+ gboolean _tmp4_ = FALSE;
+ GtkProgressBar* _tmp5_ = NULL;
+ GtkProgressBar* _tmp6_ = NULL;
+ GtkProgressBar* _tmp7_ = NULL;
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 1082 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ app_window_error_message (IMPORT_PAGE_UNMOUNT_FAILED_MSG, NULL);
+#line 1085 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_parse_name ("unmounted", g_mount_get_type (), &_tmp3_, NULL, FALSE);
+#line 1085 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_handlers_disconnect_matched (mount, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _import_page_on_unmounted_g_mount_unmounted, self);
+#line 1087 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = self->priv->refreshed;
+#line 1087 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, FALSE, _tmp4_);
+#line 1088 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = self->priv->progress_bar;
+#line 1088 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp5_, PANGO_ELLIPSIZE_NONE);
+#line 1089 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = self->priv->progress_bar;
+#line 1089 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_text (_tmp6_, "");
+#line 1090 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = self->priv->progress_bar;
+#line 1090 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 7291 "ImportPage.c"
+ }
+ __finally63:
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (mount);
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1079 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 7304 "ImportPage.c"
+ }
+#line 1075 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (mount);
+#line 7308 "ImportPage.c"
+}
+
+
+static void import_page_on_unmounted (ImportPage* self, GMount* mount) {
+ gboolean _tmp0_ = FALSE;
+ GtkProgressBar* _tmp1_ = NULL;
+ GtkProgressBar* _tmp2_ = NULL;
+ GtkProgressBar* _tmp3_ = NULL;
+#line 1094 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1094 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (G_IS_MOUNT (mount));
+#line 1095 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1095: on_unmounted");
+#line 1097 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->refreshed;
+#line 1097 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, FALSE, _tmp0_);
+#line 1098 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->progress_bar;
+#line 1098 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp1_, PANGO_ELLIPSIZE_NONE);
+#line 1099 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->progress_bar;
+#line 1099 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_text (_tmp2_, "");
+#line 1100 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->progress_bar;
+#line 1100 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 1102 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_try_refreshing_camera (self, TRUE);
+#line 7341 "ImportPage.c"
+}
+
+
+static void import_page_clear_all_import_sources (ImportPage* self) {
+ Marker* marker = NULL;
+ SourceCollection* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ SourceCollection* _tmp2_ = NULL;
+#line 1105 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1106 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->import_sources;
+#line 1106 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1106 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ marker = _tmp1_;
+#line 1107 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ marker_mark_all (marker);
+#line 1108 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->import_sources;
+#line 1108 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ source_collection_destroy_marked (_tmp2_, marker, FALSE, NULL, NULL, NULL);
+#line 1105 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (marker);
+#line 7366 "ImportPage.c"
+}
+
+
+/**
+ * @brief Returns whether the current device has a given directory or not.
+ *
+ * @param fsid The file system id of the camera or other device to search.
+ * @param dir The path to start searching from.
+ * @param search_target The name of the directory to look for.
+ */
+static gboolean import_page_check_directory_exists (ImportPage* self, gint fsid, const gchar* dir, const gchar* search_target) {
+ gboolean result = FALSE;
+ gchar* fulldir = NULL;
+ Camera* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ int _result_ = 0;
+ CameraList* folders = NULL;
+ CameraList* _tmp5_ = NULL;
+ int _tmp6_ = 0;
+ int _tmp7_ = 0;
+ Camera* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ CameraList* _tmp10_ = NULL;
+ GPSpinIdleWrapper* _tmp11_ = NULL;
+ GPContext* _tmp12_ = NULL;
+ int _tmp13_ = 0;
+ int _tmp14_ = 0;
+ gint list_len = 0;
+ CameraList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 1118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), FALSE);
+#line 1118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (dir != NULL, FALSE);
+#line 1118 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (search_target != NULL, FALSE);
+#line 1119 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->camera;
+#line 1119 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->camera_name;
+#line 1119 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = fsid;
+#line 1119 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = dir;
+#line 1119 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = import_page_get_fulldir (_tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 1119 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ fulldir = _tmp4_;
+#line 1123 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = gp_list_new (&_tmp5_);
+#line 1123 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1123 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ folders = _tmp5_;
+#line 1123 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _result_ = _tmp6_;
+#line 1124 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _result_;
+#line 1124 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp7_ != GP_OK) {
+#line 1126 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1126 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1126 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1126 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7438 "ImportPage.c"
+ }
+#line 1129 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = self->priv->camera;
+#line 1129 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = fulldir;
+#line 1129 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = folders;
+#line 1129 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = import_page_spin_idle_context;
+#line 1129 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1129 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = gp_camera_folder_list_folders (_tmp8_, _tmp9_, _tmp10_, _tmp12_);
+#line 1129 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _result_ = _tmp13_;
+#line 1130 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = _result_;
+#line 1130 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp14_ != GP_OK) {
+#line 1132 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1132 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1132 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1132 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7466 "ImportPage.c"
+ }
+#line 1135 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = folders;
+#line 1135 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = gp_list_count (_tmp15_);
+#line 1135 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ list_len = _tmp16_;
+#line 7474 "ImportPage.c"
+ {
+ gint list_index = 0;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ list_index = 0;
+#line 7479 "ImportPage.c"
+ {
+ gboolean _tmp17_ = FALSE;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = TRUE;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 7486 "ImportPage.c"
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gchar* tmp = NULL;
+ CameraList* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp17_) {
+#line 7498 "ImportPage.c"
+ gint _tmp18_ = 0;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = list_index;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ list_index = _tmp18_ + 1;
+#line 7504 "ImportPage.c"
+ }
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = FALSE;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = list_index;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = list_len;
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp19_ < _tmp20_)) {
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 7516 "ImportPage.c"
+ }
+#line 1140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = folders;
+#line 1140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = list_index;
+#line 1140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gp_list_get_name (_tmp21_, _tmp22_, &_tmp23_);
+#line 1140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (tmp);
+#line 1140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = g_strdup (_tmp23_);
+#line 1140 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ tmp = _tmp24_;
+#line 1141 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = tmp;
+#line 1141 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = search_target;
+#line 1141 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (g_strcmp0 (_tmp25_, _tmp26_) == 0) {
+#line 1142 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 1142 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (tmp);
+#line 1142 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1142 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1142 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7546 "ImportPage.c"
+ }
+#line 1137 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (tmp);
+#line 7550 "ImportPage.c"
+ }
+ }
+ }
+#line 1145 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1145 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1145 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1145 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7562 "ImportPage.c"
+}
+
+
+static ImportPageRefreshResult import_page_refresh_camera (ImportPage* self) {
+ ImportPageRefreshResult result = 0;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ Camera* _tmp2_ = NULL;
+ GPSpinIdleWrapper* _tmp3_ = NULL;
+ GPContext* _tmp4_ = NULL;
+ int _tmp5_ = 0;
+ int _tmp6_ = 0;
+ gboolean _tmp12_ = FALSE;
+ GtkProgressBar* _tmp13_ = NULL;
+ GtkProgressBar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GtkProgressBar* _tmp16_ = NULL;
+ GtkProgressBar* _tmp17_ = NULL;
+ GtkProgressBar* _tmp18_ = NULL;
+ GeeArrayList* import_list = NULL;
+ GeeArrayList* _tmp19_ = NULL;
+ CameraStorageInformation* sifs = NULL;
+ gint count = 0;
+ Camera* _tmp20_ = NULL;
+ GPSpinIdleWrapper* _tmp21_ = NULL;
+ GPContext* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ int _tmp24_ = 0;
+ int _tmp25_ = 0;
+ GeeArrayList* _tmp74_ = NULL;
+ GeeArrayList* _tmp75_ = NULL;
+ GtkProgressBar* _tmp76_ = NULL;
+ GtkProgressBar* _tmp77_ = NULL;
+ GtkProgressBar* _tmp78_ = NULL;
+ GtkProgressBar* _tmp79_ = NULL;
+ int res = 0;
+ Camera* _tmp80_ = NULL;
+ GPSpinIdleWrapper* _tmp81_ = NULL;
+ GPContext* _tmp82_ = NULL;
+ int _tmp83_ = 0;
+ int _tmp84_ = 0;
+ int _tmp88_ = 0;
+ int _tmp89_ = 0;
+#line 1148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), 0);
+#line 1149 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->busy;
+#line 1149 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_) {
+#line 1150 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = IMPORT_PAGE_REFRESH_RESULT_BUSY;
+#line 1150 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7616 "ImportPage.c"
+ }
+#line 1152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->busy;
+#line 1152 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, _tmp1_, FALSE);
+#line 1154 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->refresh_error);
+#line 1154 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_error = NULL;
+#line 1155 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->camera;
+#line 1155 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = import_page_spin_idle_context;
+#line 1155 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1155 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = gp_camera_init (_tmp2_, _tmp4_);
+#line 1155 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp5_;
+#line 1156 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = self->priv->refresh_result;
+#line 1156 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp6_ != GP_OK) {
+#line 7640 "ImportPage.c"
+ int _tmp7_ = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ ImportPageRefreshResult _tmp10_ = 0;
+ int _tmp11_ = 0;
+#line 1157 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = self->priv->refresh_result;
+#line 1157 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = gp_result_to_full_string (_tmp7_);
+#line 1157 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _tmp8_;
+#line 1157 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1157: Unable to initialize camera: %s", _tmp9_);
+#line 1157 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp9_);
+#line 1159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = self->priv->refresh_result;
+#line 1159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp11_ == GP_ERROR_IO_LOCK) {
+#line 1159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = IMPORT_PAGE_REFRESH_RESULT_LOCKED;
+#line 7662 "ImportPage.c"
+ } else {
+#line 1159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = IMPORT_PAGE_REFRESH_RESULT_LIBRARY_ERROR;
+#line 7666 "ImportPage.c"
+ }
+#line 1159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp10_;
+#line 1159 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 7672 "ImportPage.c"
+ }
+#line 1162 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = self->priv->refreshed;
+#line 1162 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, TRUE, _tmp12_);
+#line 1164 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed (self);
+#line 1166 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = self->priv->progress_bar;
+#line 1166 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp13_, PANGO_ELLIPSIZE_NONE);
+#line 1167 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = self->priv->progress_bar;
+#line 1167 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = _ ("Fetching photo information");
+#line 1167 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_text (_tmp14_, _tmp15_);
+#line 1168 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = self->priv->progress_bar;
+#line 1168 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_fraction (_tmp16_, 0.0);
+#line 1169 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = self->priv->progress_bar;
+#line 1169 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_pulse_step (_tmp17_, 0.01);
+#line 1170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = self->priv->progress_bar;
+#line 1170 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 1172 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = gee_array_list_new (TYPE_IMPORT_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1172 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_list = _tmp19_;
+#line 1174 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ sifs = NULL;
+#line 1175 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ count = 0;
+#line 1176 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = self->priv->camera;
+#line 1176 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = import_page_spin_idle_context;
+#line 1176 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1176 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = gp_camera_get_storageinfo (_tmp20_, &sifs, &_tmp23_, _tmp22_);
+#line 1176 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ count = _tmp23_;
+#line 1176 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp24_;
+#line 1177 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = self->priv->refresh_result;
+#line 1177 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp25_ == GP_OK) {
+#line 7726 "ImportPage.c"
+ {
+ gint fsid = 0;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ fsid = 0;
+#line 7731 "ImportPage.c"
+ {
+ gboolean _tmp26_ = FALSE;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = TRUE;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 7738 "ImportPage.c"
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gboolean got_well_known_dir = FALSE;
+ gint _tmp30_ = 0;
+ gboolean _tmp31_ = FALSE;
+ gint _tmp34_ = 0;
+ gboolean _tmp35_ = FALSE;
+ gint _tmp38_ = 0;
+ gboolean _tmp39_ = FALSE;
+ gint _tmp42_ = 0;
+ gboolean _tmp43_ = FALSE;
+ gint _tmp46_ = 0;
+ gboolean _tmp47_ = FALSE;
+ gint _tmp50_ = 0;
+ gboolean _tmp51_ = FALSE;
+ gint _tmp54_ = 0;
+ gboolean _tmp55_ = FALSE;
+ gint _tmp58_ = 0;
+ gboolean _tmp59_ = FALSE;
+ gint _tmp62_ = 0;
+ gboolean _tmp63_ = FALSE;
+ gint _tmp66_ = 0;
+ gboolean _tmp67_ = FALSE;
+ gboolean _tmp70_ = FALSE;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp26_) {
+#line 7765 "ImportPage.c"
+ gint _tmp27_ = 0;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = fsid;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ fsid = _tmp27_ + 1;
+#line 7771 "ImportPage.c"
+ }
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = FALSE;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = fsid;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = count;
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp28_ < _tmp29_)) {
+#line 1178 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 7783 "ImportPage.c"
+ }
+#line 1182 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = FALSE;
+#line 1185 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = fsid;
+#line 1185 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = import_page_check_directory_exists (self, _tmp30_, "/", "DCIM");
+#line 1185 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp31_) {
+#line 7793 "ImportPage.c"
+ gint _tmp32_ = 0;
+ GeeArrayList* _tmp33_ = NULL;
+#line 1186 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = fsid;
+#line 1186 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = import_list;
+#line 1186 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp32_, "/DCIM", _tmp33_);
+#line 1187 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7804 "ImportPage.c"
+ }
+#line 1189 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = fsid;
+#line 1189 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = import_page_check_directory_exists (self, _tmp34_, "/", "dcim");
+#line 1189 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp35_) {
+#line 7812 "ImportPage.c"
+ gint _tmp36_ = 0;
+ GeeArrayList* _tmp37_ = NULL;
+#line 1190 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = fsid;
+#line 1190 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = import_list;
+#line 1190 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp36_, "/dcim", _tmp37_);
+#line 1191 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7823 "ImportPage.c"
+ }
+#line 1196 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = fsid;
+#line 1196 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = import_page_check_directory_exists (self, _tmp38_, "/PRIVATE/", "AVCHD");
+#line 1196 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp39_) {
+#line 7831 "ImportPage.c"
+ gint _tmp40_ = 0;
+ GeeArrayList* _tmp41_ = NULL;
+#line 1197 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = fsid;
+#line 1197 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = import_list;
+#line 1197 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp40_, "/PRIVATE/AVCHD", _tmp41_);
+#line 1198 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7842 "ImportPage.c"
+ }
+#line 1200 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = fsid;
+#line 1200 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = import_page_check_directory_exists (self, _tmp42_, "/private/", "avchd");
+#line 1200 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp43_) {
+#line 7850 "ImportPage.c"
+ gint _tmp44_ = 0;
+ GeeArrayList* _tmp45_ = NULL;
+#line 1201 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = fsid;
+#line 1201 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = import_list;
+#line 1201 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp44_, "/private/avchd", _tmp45_);
+#line 1202 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7861 "ImportPage.c"
+ }
+#line 1204 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = fsid;
+#line 1204 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = import_page_check_directory_exists (self, _tmp46_, "/", "AVCHD");
+#line 1204 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp47_) {
+#line 7869 "ImportPage.c"
+ gint _tmp48_ = 0;
+ GeeArrayList* _tmp49_ = NULL;
+#line 1205 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = fsid;
+#line 1205 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = import_list;
+#line 1205 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp48_, "/AVCHD", _tmp49_);
+#line 1206 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7880 "ImportPage.c"
+ }
+#line 1208 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = fsid;
+#line 1208 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = import_page_check_directory_exists (self, _tmp50_, "/", "avchd");
+#line 1208 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp51_) {
+#line 7888 "ImportPage.c"
+ gint _tmp52_ = 0;
+ GeeArrayList* _tmp53_ = NULL;
+#line 1209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = fsid;
+#line 1209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = import_list;
+#line 1209 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp52_, "/avchd", _tmp53_);
+#line 1210 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7899 "ImportPage.c"
+ }
+#line 1215 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = fsid;
+#line 1215 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = import_page_check_directory_exists (self, _tmp54_, "/PRIVATE/", "SONY");
+#line 1215 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp55_) {
+#line 7907 "ImportPage.c"
+ gint _tmp56_ = 0;
+ GeeArrayList* _tmp57_ = NULL;
+#line 1216 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = fsid;
+#line 1216 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = import_list;
+#line 1216 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp56_, "/PRIVATE/SONY", _tmp57_);
+#line 1217 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7918 "ImportPage.c"
+ }
+#line 1219 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp58_ = fsid;
+#line 1219 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp59_ = import_page_check_directory_exists (self, _tmp58_, "/private/", "sony");
+#line 1219 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp59_) {
+#line 7926 "ImportPage.c"
+ gint _tmp60_ = 0;
+ GeeArrayList* _tmp61_ = NULL;
+#line 1220 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp60_ = fsid;
+#line 1220 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp61_ = import_list;
+#line 1220 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp60_, "/private/sony", _tmp61_);
+#line 1221 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7937 "ImportPage.c"
+ }
+#line 1225 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp62_ = fsid;
+#line 1225 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp63_ = import_page_check_directory_exists (self, _tmp62_, "/", "MP_ROOT");
+#line 1225 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp63_) {
+#line 7945 "ImportPage.c"
+ gint _tmp64_ = 0;
+ GeeArrayList* _tmp65_ = NULL;
+#line 1226 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp64_ = fsid;
+#line 1226 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp65_ = import_list;
+#line 1226 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp64_, "/MP_ROOT", _tmp65_);
+#line 1227 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7956 "ImportPage.c"
+ }
+#line 1229 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp66_ = fsid;
+#line 1229 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp67_ = import_page_check_directory_exists (self, _tmp66_, "/", "mp_root");
+#line 1229 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp67_) {
+#line 7964 "ImportPage.c"
+ gint _tmp68_ = 0;
+ GeeArrayList* _tmp69_ = NULL;
+#line 1230 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp68_ = fsid;
+#line 1230 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp69_ = import_list;
+#line 1230 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_enumerate_files (self, _tmp68_, "/mp_root", _tmp69_);
+#line 1231 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ got_well_known_dir = TRUE;
+#line 7975 "ImportPage.c"
+ }
+#line 1236 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp70_ = got_well_known_dir;
+#line 1236 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp70_) {
+#line 7981 "ImportPage.c"
+ gint _tmp71_ = 0;
+ GeeArrayList* _tmp72_ = NULL;
+ gboolean _tmp73_ = FALSE;
+#line 1237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp71_ = fsid;
+#line 1237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp72_ = import_list;
+#line 1237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp73_ = import_page_enumerate_files (self, _tmp71_, "/", _tmp72_);
+#line 1237 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp73_) {
+#line 1238 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 7995 "ImportPage.c"
+ }
+ }
+ }
+ }
+ }
+ }
+#line 1243 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_clear_all_import_sources (self);
+#line 1246 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp74_ = import_list;
+#line 1246 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_auto_match_raw_jpeg (self, _tmp74_);
+#line 1253 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp75_ = import_list;
+#line 1253 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_load_previews_and_metadata (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, GEE_TYPE_LIST, GeeList));
+#line 1260 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp76_ = self->priv->progress_bar;
+#line 1260 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 1261 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp77_ = self->priv->progress_bar;
+#line 1261 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp77_, PANGO_ELLIPSIZE_NONE);
+#line 1262 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp78_ = self->priv->progress_bar;
+#line 1262 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_text (_tmp78_, "");
+#line 1263 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp79_ = self->priv->progress_bar;
+#line 1263 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_fraction (_tmp79_, 0.0);
+#line 1265 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp80_ = self->priv->camera;
+#line 1265 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp81_ = import_page_spin_idle_context;
+#line 1265 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp82_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp81_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1265 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp83_ = gp_camera_exit (_tmp80_, _tmp82_);
+#line 1265 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ res = _tmp83_;
+#line 1266 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp84_ = res;
+#line 1266 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp84_ != GP_OK) {
+#line 8042 "ImportPage.c"
+ int _tmp85_ = 0;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+#line 1268 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp85_ = res;
+#line 1268 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp86_ = gp_result_to_full_string (_tmp85_);
+#line 1268 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp87_ = _tmp86_;
+#line 1268 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1268: Unable to unlock camera: %s", _tmp87_);
+#line 1268 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp87_);
+#line 8056 "ImportPage.c"
+ }
+#line 1271 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp88_ = self->priv->refresh_result;
+#line 1271 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp88_ == GP_OK) {
+#line 1272 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, FALSE, TRUE);
+#line 8064 "ImportPage.c"
+ } else {
+#line 1274 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, FALSE, FALSE);
+#line 1277 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_clear_all_import_sources (self);
+#line 8070 "ImportPage.c"
+ }
+#line 1280 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed (self);
+#line 1282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp89_ = self->priv->refresh_result;
+#line 1282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ switch (_tmp89_) {
+#line 1282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case GP_OK:
+#line 8080 "ImportPage.c"
+ {
+#line 1284 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = IMPORT_PAGE_REFRESH_RESULT_OK;
+#line 1284 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_list);
+#line 1284 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8088 "ImportPage.c"
+ }
+#line 1282 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ case GP_ERROR_IO_LOCK:
+#line 8092 "ImportPage.c"
+ {
+#line 1287 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = IMPORT_PAGE_REFRESH_RESULT_LOCKED;
+#line 1287 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_list);
+#line 1287 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8100 "ImportPage.c"
+ }
+ default:
+ {
+#line 1290 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = IMPORT_PAGE_REFRESH_RESULT_LIBRARY_ERROR;
+#line 1290 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_list);
+#line 1290 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8110 "ImportPage.c"
+ }
+ }
+#line 1148 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_list);
+#line 8115 "ImportPage.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8133 "ImportPage.c"
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ glong _tmp2_ = 0L;
+ glong _tmp5_ = 0L;
+ gboolean _tmp8_ = FALSE;
+ glong _tmp9_ = 0L;
+ gboolean _tmp12_ = FALSE;
+ glong _tmp13_ = 0L;
+ glong _tmp16_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ gchar* _tmp21_ = NULL;
+#line 1328 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp1_;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = start;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp2_ < ((glong) 0)) {
+#line 8166 "ImportPage.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = string_length;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = start;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ start = _tmp3_ + _tmp4_;
+#line 8175 "ImportPage.c"
+ }
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp5_ < ((glong) 0)) {
+#line 8181 "ImportPage.c"
+ glong _tmp6_ = 0L;
+ glong _tmp7_ = 0L;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = string_length;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = end;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp6_ + _tmp7_;
+#line 8190 "ImportPage.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp9_ >= ((glong) 0)) {
+#line 8196 "ImportPage.c"
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = string_length;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp10_ <= _tmp11_;
+#line 8205 "ImportPage.c"
+ } else {
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = FALSE;
+#line 8209 "ImportPage.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp8_, NULL);
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp13_ >= ((glong) 0)) {
+#line 8217 "ImportPage.c"
+ glong _tmp14_ = 0L;
+ glong _tmp15_ = 0L;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ <= _tmp15_;
+#line 8226 "ImportPage.c"
+ } else {
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 8230 "ImportPage.c"
+ }
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_, NULL);
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = start;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = end;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = end;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp21_;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 8252 "ImportPage.c"
+}
+
+
+static gchar* import_page_chomp_ch (const gchar* str, gchar ch) {
+ gchar* result = NULL;
+ glong offset = 0L;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar* _tmp12_ = NULL;
+#line 1294 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (str != NULL, NULL);
+#line 1295 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = str;
+#line 1295 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = strlen (_tmp0_);
+#line 1295 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_;
+#line 1295 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ offset = (glong) _tmp2_;
+#line 1296 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 8275 "ImportPage.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ const gchar* _tmp5_ = NULL;
+ glong _tmp6_ = 0L;
+ gchar _tmp7_ = '\0';
+ gchar _tmp8_ = '\0';
+#line 1296 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = offset;
+#line 1296 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ offset = _tmp3_ - 1;
+#line 1296 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = offset;
+#line 1296 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp4_ >= ((glong) 0))) {
+#line 1296 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 8292 "ImportPage.c"
+ }
+#line 1297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = str;
+#line 1297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = offset;
+#line 1297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = string_get (_tmp5_, _tmp6_);
+#line 1297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = ch;
+#line 1297 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp7_ != _tmp8_) {
+#line 8304 "ImportPage.c"
+ const gchar* _tmp9_ = NULL;
+ glong _tmp10_ = 0L;
+ gchar* _tmp11_ = NULL;
+#line 1298 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = str;
+#line 1298 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = offset;
+#line 1298 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = string_slice (_tmp9_, (glong) 0, _tmp10_);
+#line 1298 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp11_;
+#line 1298 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8318 "ImportPage.c"
+ }
+ }
+#line 1301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = g_strdup ("");
+#line 1301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp12_;
+#line 1301 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8327 "ImportPage.c"
+}
+
+
+gchar* import_page_append_path (const gchar* basepath, const gchar* addition) {
+ gchar* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1304 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (basepath != NULL, NULL);
+#line 1304 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (addition != NULL, NULL);
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = basepath;
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = g_str_has_suffix (_tmp1_, "/");
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp2_) {
+#line 8346 "ImportPage.c"
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = addition;
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = g_str_has_prefix (_tmp3_, "/");
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = !_tmp4_;
+#line 8355 "ImportPage.c"
+ } else {
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = FALSE;
+#line 8359 "ImportPage.c"
+ }
+#line 1305 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_) {
+#line 8363 "ImportPage.c"
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = basepath;
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = g_strconcat (_tmp5_, "/", NULL);
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = addition;
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = g_strconcat (_tmp7_, _tmp8_, NULL);
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = _tmp9_;
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp7_);
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp10_;
+#line 1306 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8388 "ImportPage.c"
+ } else {
+ gboolean _tmp11_ = FALSE;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = basepath;
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = g_str_has_suffix (_tmp12_, "/");
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp13_) {
+#line 8399 "ImportPage.c"
+ const gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = addition;
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = g_str_has_prefix (_tmp14_, "/");
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp15_;
+#line 8408 "ImportPage.c"
+ } else {
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = FALSE;
+#line 8412 "ImportPage.c"
+ }
+#line 1307 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp11_) {
+#line 8416 "ImportPage.c"
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = basepath;
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = import_page_chomp_ch (_tmp16_, '/');
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = _tmp17_;
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = addition;
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = g_strconcat (_tmp18_, _tmp19_, NULL);
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = _tmp20_;
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp18_);
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp21_;
+#line 1308 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8441 "ImportPage.c"
+ } else {
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 1310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = basepath;
+#line 1310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = addition;
+#line 1310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = g_strconcat (_tmp22_, _tmp23_, NULL);
+#line 1310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp24_;
+#line 1310 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8456 "ImportPage.c"
+ }
+ }
+}
+
+
+gchar* import_page_get_fs_basedir (Camera* camera, gint fsid) {
+ gchar* result = NULL;
+ CameraStorageInformation* sifs = NULL;
+ gint count = 0;
+ int res = 0;
+ Camera* _tmp0_ = NULL;
+ GPContextWrapper* _tmp1_ = NULL;
+ GPContext* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ int _tmp4_ = 0;
+ int _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ CameraStorageInformation* ifs = NULL;
+ CameraStorageInformation* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ CameraStorageInformation* _tmp11_ = NULL;
+ CameraStorageInfoFields _tmp12_ = 0;
+ gchar* _tmp15_ = NULL;
+#line 1315 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 1316 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ sifs = NULL;
+#line 1317 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ count = 0;
+#line 1318 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = camera;
+#line 1318 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_page_null_context;
+#line 1318 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_->context;
+#line 1318 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = gp_camera_get_storageinfo (_tmp0_, &sifs, &_tmp3_, _tmp2_);
+#line 1318 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ count = _tmp3_;
+#line 1318 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ res = _tmp4_;
+#line 1319 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = res;
+#line 1319 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_ != GP_OK) {
+#line 1320 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 1320 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8508 "ImportPage.c"
+ }
+#line 1322 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = fsid;
+#line 1322 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = count;
+#line 1322 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp6_ >= _tmp7_) {
+#line 1323 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 1323 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8520 "ImportPage.c"
+ }
+#line 1325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = sifs;
+#line 1325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = fsid;
+#line 1325 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ifs = _tmp8_ + _tmp9_;
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = ifs;
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = (*_tmp11_).fields;
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((_tmp12_ & GP_STORAGEINFO_BASE) != 0) {
+#line 8534 "ImportPage.c"
+ CameraStorageInformation* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = ifs;
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = (*_tmp13_).basedir;
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = _tmp14_;
+#line 8543 "ImportPage.c"
+ } else {
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = "/";
+#line 8547 "ImportPage.c"
+ }
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = g_strdup (_tmp10_);
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp15_;
+#line 1327 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8555 "ImportPage.c"
+}
+
+
+gchar* import_page_get_fulldir (Camera* camera, const gchar* camera_name, gint fsid, const gchar* folder) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar* basedir = NULL;
+ Camera* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 1330 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera != NULL, NULL);
+#line 1330 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (camera_name != NULL, NULL);
+#line 1330 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (folder != NULL, NULL);
+#line 1331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = folder;
+#line 1331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = strlen (_tmp0_);
+#line 1331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_;
+#line 1331 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_ > GP_MAX_BASEDIR_LENGTH) {
+#line 1332 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = NULL;
+#line 1332 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8590 "ImportPage.c"
+ }
+#line 1334 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = camera;
+#line 1334 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = fsid;
+#line 1334 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = import_page_get_fs_basedir (_tmp3_, _tmp4_);
+#line 1334 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ basedir = _tmp5_;
+#line 1335 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = basedir;
+#line 1335 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp6_ == NULL) {
+#line 8604 "ImportPage.c"
+ const gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 1336 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = camera_name;
+#line 1336 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = fsid;
+#line 1336 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1336: Unable to find base directory for %s fsid %d", _tmp7_, _tmp8_);
+#line 1338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = folder;
+#line 1338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 1338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp10_;
+#line 1338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (basedir);
+#line 1338 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8625 "ImportPage.c"
+ }
+#line 1341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = basedir;
+#line 1341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = folder;
+#line 1341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = import_page_append_path (_tmp11_, _tmp12_);
+#line 1341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp13_;
+#line 1341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (basedir);
+#line 1341 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8639 "ImportPage.c"
+}
+
+
+static gboolean import_page_enumerate_files (ImportPage* self, gint fsid, const gchar* dir, GeeArrayList* import_list) {
+ gboolean result = FALSE;
+ gchar* fulldir = NULL;
+ Camera* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ CameraList* files = NULL;
+ CameraList* _tmp7_ = NULL;
+ int _tmp8_ = 0;
+ int _tmp9_ = 0;
+ Camera* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ CameraList* _tmp15_ = NULL;
+ GPSpinIdleWrapper* _tmp16_ = NULL;
+ GPContext* _tmp17_ = NULL;
+ int _tmp18_ = 0;
+ int _tmp19_ = 0;
+ CameraList* folders = NULL;
+ CameraList* _tmp109_ = NULL;
+ int _tmp110_ = 0;
+ int _tmp111_ = 0;
+ Camera* _tmp115_ = NULL;
+ const gchar* _tmp116_ = NULL;
+ CameraList* _tmp117_ = NULL;
+ GPSpinIdleWrapper* _tmp118_ = NULL;
+ GPContext* _tmp119_ = NULL;
+ int _tmp120_ = 0;
+ int _tmp121_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (self), FALSE);
+#line 1344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (dir != NULL, FALSE);
+#line 1344 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (GEE_IS_ARRAY_LIST (import_list), FALSE);
+#line 1345 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->camera;
+#line 1345 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->camera_name;
+#line 1345 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = fsid;
+#line 1345 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = dir;
+#line 1345 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = import_page_get_fulldir (_tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 1345 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ fulldir = _tmp4_;
+#line 1346 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = fulldir;
+#line 1346 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_ == NULL) {
+#line 8697 "ImportPage.c"
+ const gchar* _tmp6_ = NULL;
+#line 1347 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = dir;
+#line 1347 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1347: Skipping enumerating %s: invalid folder name", _tmp6_);
+#line 1349 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 1349 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1349 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8709 "ImportPage.c"
+ }
+#line 1353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = gp_list_new (&_tmp7_);
+#line 1353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ files = _tmp7_;
+#line 1353 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp8_;
+#line 1354 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = self->priv->refresh_result;
+#line 1354 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp9_ != GP_OK) {
+#line 8723 "ImportPage.c"
+ int _tmp10_ = 0;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 1355 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = self->priv->refresh_result;
+#line 1355 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = gp_result_to_full_string (_tmp10_);
+#line 1355 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = _tmp11_;
+#line 1355 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1355: Unable to create file list: %s", _tmp12_);
+#line 1355 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp12_);
+#line 1357 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1357 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1357 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1357 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8745 "ImportPage.c"
+ }
+#line 1360 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = self->priv->camera;
+#line 1360 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = fulldir;
+#line 1360 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = files;
+#line 1360 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = import_page_spin_idle_context;
+#line 1360 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1360 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = gp_camera_folder_list_files (_tmp13_, _tmp14_, _tmp15_, _tmp17_);
+#line 1360 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp18_;
+#line 1361 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = self->priv->refresh_result;
+#line 1361 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp19_ != GP_OK) {
+#line 8765 "ImportPage.c"
+ const gchar* _tmp20_ = NULL;
+ int _tmp21_ = 0;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+#line 1362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = fulldir;
+#line 1362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = self->priv->refresh_result;
+#line 1362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = gp_result_to_full_string (_tmp21_);
+#line 1362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = _tmp22_;
+#line 1362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1362: Unable to list files in %s: %s", _tmp20_, _tmp23_);
+#line 1362 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp23_);
+#line 1365 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = GP_OK;
+#line 1367 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 1367 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1367 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1367 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8792 "ImportPage.c"
+ }
+ {
+ gint ctr = 0;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ctr = 0;
+#line 8798 "ImportPage.c"
+ {
+ gboolean _tmp24_ = FALSE;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = TRUE;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 8805 "ImportPage.c"
+ gint _tmp26_ = 0;
+ CameraList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gchar* filename = NULL;
+ CameraList* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ const gchar* _tmp31_ = NULL;
+ int _tmp32_ = 0;
+ gchar* _tmp33_ = NULL;
+ int _tmp34_ = 0;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp24_) {
+#line 8818 "ImportPage.c"
+ gint _tmp25_ = 0;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = ctr;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ctr = _tmp25_ + 1;
+#line 8824 "ImportPage.c"
+ }
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = FALSE;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = ctr;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = files;
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = gp_list_count (_tmp27_);
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp26_ < _tmp28_)) {
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 8838 "ImportPage.c"
+ }
+#line 1372 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = files;
+#line 1372 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = ctr;
+#line 1372 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = gp_list_get_name (_tmp29_, _tmp30_, &_tmp31_);
+#line 1372 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1372 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = g_strdup (_tmp31_);
+#line 1372 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ filename = _tmp33_;
+#line 1372 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp32_;
+#line 1373 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = self->priv->refresh_result;
+#line 1373 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp34_ != GP_OK) {
+#line 8858 "ImportPage.c"
+ gint _tmp35_ = 0;
+ const gchar* _tmp36_ = NULL;
+ int _tmp37_ = 0;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+#line 1374 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = ctr;
+#line 1374 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = fulldir;
+#line 1374 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = self->priv->refresh_result;
+#line 1374 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = gp_result_to_full_string (_tmp37_);
+#line 1374 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = _tmp38_;
+#line 1374 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1374: Unable to get the name of file %d in %s: %s", _tmp35_, _tmp36_, _tmp39_);
+#line 1374 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp39_);
+#line 1377 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1377 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1377 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1377 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1377 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 8888 "ImportPage.c"
+ }
+ {
+ CameraFileInfo info = {0};
+ gboolean _tmp40_ = FALSE;
+ GPSpinIdleWrapper* _tmp41_ = NULL;
+ GPContext* _tmp42_ = NULL;
+ Camera* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ CameraFileInfo _tmp46_ = {0};
+ gboolean _tmp47_ = FALSE;
+ CameraFileInfo _tmp50_ = {0};
+ CameraFileInfoFile _tmp51_ = {0};
+ CameraFileInfoFields _tmp52_ = 0;
+ const gchar* _tmp58_ = NULL;
+ gboolean _tmp59_ = FALSE;
+ GtkProgressBar* _tmp102_ = NULL;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = import_page_spin_idle_context;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = self->priv->camera;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = fulldir;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = filename;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = gp_get_info (_tmp42_, _tmp43_, _tmp44_, _tmp45_, &_tmp46_, &_inner_error_);
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (info);
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ info = _tmp46_;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = _tmp47_;
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (info);
+#line 8928 "ImportPage.c"
+ goto __catch64_g_error;
+ }
+#line 1382 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp40_) {
+#line 8933 "ImportPage.c"
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+#line 1383 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = fulldir;
+#line 1383 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = filename;
+#line 1383 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1383: Skipping import of %s/%s: name too long", _tmp48_, _tmp49_);
+#line 1385 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (info);
+#line 1385 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1385 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ continue;
+#line 8948 "ImportPage.c"
+ }
+#line 1388 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = info;
+#line 1388 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = _tmp50_.file;
+#line 1388 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = _tmp51_.fields;
+#line 1388 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((_tmp52_ & GP_FILE_INFO_TYPE) == 0) {
+#line 8958 "ImportPage.c"
+ const gchar* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ CameraFileInfo _tmp55_ = {0};
+ CameraFileInfoFile _tmp56_ = {0};
+ CameraFileInfoFields _tmp57_ = 0;
+#line 1389 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = fulldir;
+#line 1389 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = filename;
+#line 1389 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = info;
+#line 1389 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = _tmp55_.file;
+#line 1389 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = _tmp56_.fields;
+#line 1389 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_message ("ImportPage.vala:1389: Skipping %s/%s: No file (file=%02Xh)", _tmp53_, _tmp54_, (guint) _tmp57_);
+#line 1392 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (info);
+#line 1392 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1392 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ continue;
+#line 8982 "ImportPage.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp58_ = filename;
+#line 1395 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp59_ = video_reader_is_supported_video_filename (_tmp58_);
+#line 1395 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp59_) {
+#line 8990 "ImportPage.c"
+ VideoImportSource* video_source = NULL;
+ const gchar* _tmp60_ = NULL;
+ Camera* _tmp61_ = NULL;
+ gint _tmp62_ = 0;
+ const gchar* _tmp63_ = NULL;
+ const gchar* _tmp64_ = NULL;
+ CameraFileInfo _tmp65_ = {0};
+ CameraFileInfoFile _tmp66_ = {0};
+ gulong _tmp67_ = 0UL;
+ CameraFileInfo _tmp68_ = {0};
+ CameraFileInfoFile _tmp69_ = {0};
+ time_t _tmp70_ = 0;
+ VideoImportSource* _tmp71_ = NULL;
+ GeeArrayList* _tmp72_ = NULL;
+ VideoImportSource* _tmp73_ = NULL;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp60_ = self->priv->camera_name;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp61_ = self->priv->camera;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp62_ = fsid;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp63_ = dir;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp64_ = filename;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp65_ = info;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp66_ = _tmp65_.file;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp67_ = _tmp66_.size;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp68_ = info;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp69_ = _tmp68_.file;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp70_ = _tmp69_.mtime;
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp71_ = video_import_source_new (_tmp60_, _tmp61_, _tmp62_, _tmp63_, _tmp64_, _tmp67_, _tmp70_);
+#line 1396 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ video_source = _tmp71_;
+#line 1398 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp72_ = import_list;
+#line 1398 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp73_ = video_source;
+#line 1398 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1395 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (video_source);
+#line 9040 "ImportPage.c"
+ } else {
+ PhotoFileFormat file_format = 0;
+ CameraFileInfo _tmp74_ = {0};
+ CameraFileInfoFile _tmp75_ = {0};
+ const gchar* _tmp76_ = NULL;
+ PhotoFileFormat _tmp77_ = 0;
+ PhotoFileFormat _tmp78_ = 0;
+ GeeArrayList* _tmp87_ = NULL;
+ const gchar* _tmp88_ = NULL;
+ Camera* _tmp89_ = NULL;
+ gint _tmp90_ = 0;
+ const gchar* _tmp91_ = NULL;
+ const gchar* _tmp92_ = NULL;
+ CameraFileInfo _tmp93_ = {0};
+ CameraFileInfoFile _tmp94_ = {0};
+ gulong _tmp95_ = 0UL;
+ CameraFileInfo _tmp96_ = {0};
+ CameraFileInfoFile _tmp97_ = {0};
+ time_t _tmp98_ = 0;
+ PhotoFileFormat _tmp99_ = 0;
+ PhotoImportSource* _tmp100_ = NULL;
+ PhotoImportSource* _tmp101_ = NULL;
+#line 1401 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp74_ = info;
+#line 1401 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp75_ = _tmp74_.file;
+#line 1401 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp76_ = _tmp75_.type;
+#line 1401 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp77_ = photo_file_format_from_gphoto_type (_tmp76_);
+#line 1401 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ file_format = _tmp77_;
+#line 1402 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp78_ = file_format;
+#line 1402 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp78_ == PHOTO_FILE_FORMAT_UNKNOWN) {
+#line 9077 "ImportPage.c"
+ const gchar* _tmp79_ = NULL;
+ PhotoFileFormat _tmp80_ = 0;
+ PhotoFileFormat _tmp81_ = 0;
+#line 1403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp79_ = filename;
+#line 1403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp80_ = photo_file_format_get_by_basename_extension (_tmp79_);
+#line 1403 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ file_format = _tmp80_;
+#line 1404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp81_ = file_format;
+#line 1404 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp81_ == PHOTO_FILE_FORMAT_UNKNOWN) {
+#line 9091 "ImportPage.c"
+ const gchar* _tmp82_ = NULL;
+ const gchar* _tmp83_ = NULL;
+ CameraFileInfo _tmp84_ = {0};
+ CameraFileInfoFile _tmp85_ = {0};
+ const gchar* _tmp86_ = NULL;
+#line 1405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp82_ = fulldir;
+#line 1405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp83_ = filename;
+#line 1405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp84_ = info;
+#line 1405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp85_ = _tmp84_.file;
+#line 1405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp86_ = _tmp85_.type;
+#line 1405 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_message ("ImportPage.vala:1405: Skipping %s/%s: Not a supported file extension (" \
+"%s)", _tmp82_, _tmp83_, _tmp86_);
+#line 1408 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (info);
+#line 1408 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1408 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ continue;
+#line 9115 "ImportPage.c"
+ }
+ }
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp87_ = import_list;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp88_ = self->priv->camera_name;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp89_ = self->priv->camera;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp90_ = fsid;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp91_ = dir;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp92_ = filename;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp93_ = info;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp94_ = _tmp93_.file;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp95_ = _tmp94_.size;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp96_ = info;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp97_ = _tmp96_.file;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp98_ = _tmp97_.mtime;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp99_ = file_format;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp100_ = photo_import_source_new (_tmp88_, _tmp89_, _tmp90_, _tmp91_, _tmp92_, _tmp95_, _tmp98_, _tmp99_);
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp101_ = _tmp100_;
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp101_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1411 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp101_);
+#line 9152 "ImportPage.c"
+ }
+#line 1415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp102_ = self->priv->progress_bar;
+#line 1415 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_pulse (_tmp102_);
+#line 1418 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ spin_event_loop ();
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ (info);
+#line 9162 "ImportPage.c"
+ }
+ goto __finally64;
+ __catch64_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp103_ = NULL;
+ GError* _tmp104_ = NULL;
+ const gchar* _tmp105_ = NULL;
+ GError* _tmp106_ = NULL;
+ const gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 1420 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp103_ = fulldir;
+#line 1420 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp104_ = err;
+#line 1420 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp105_ = _tmp104_->message;
+#line 1420 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1420: Error while enumerating files in %s: %s", _tmp103_, _tmp105_);
+#line 1422 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp106_ = err;
+#line 1422 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp107_ = _tmp106_->message;
+#line 1422 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp108_ = g_strdup (_tmp107_);
+#line 1422 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->refresh_error);
+#line 1422 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_error = _tmp108_;
+#line 1424 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1424 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 1424 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1424 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1424 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1424 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 9208 "ImportPage.c"
+ }
+ __finally64:
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1380 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 9225 "ImportPage.c"
+ }
+#line 1370 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 9229 "ImportPage.c"
+ }
+ }
+ }
+#line 1429 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp110_ = gp_list_new (&_tmp109_);
+#line 1429 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1429 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ folders = _tmp109_;
+#line 1429 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp110_;
+#line 1430 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp111_ = self->priv->refresh_result;
+#line 1430 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp111_ != GP_OK) {
+#line 9245 "ImportPage.c"
+ int _tmp112_ = 0;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+#line 1431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp112_ = self->priv->refresh_result;
+#line 1431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp113_ = gp_result_to_full_string (_tmp112_);
+#line 1431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp114_ = _tmp113_;
+#line 1431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1431: Unable to create folder list: %s", _tmp114_);
+#line 1431 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp114_);
+#line 1433 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1433 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1433 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1433 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1433 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 9269 "ImportPage.c"
+ }
+#line 1436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp115_ = self->priv->camera;
+#line 1436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp116_ = fulldir;
+#line 1436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp117_ = folders;
+#line 1436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp118_ = import_page_spin_idle_context;
+#line 1436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp119_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp118_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp120_ = gp_camera_folder_list_folders (_tmp115_, _tmp116_, _tmp117_, _tmp119_);
+#line 1436 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp120_;
+#line 1437 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp121_ = self->priv->refresh_result;
+#line 1437 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp121_ != GP_OK) {
+#line 9289 "ImportPage.c"
+ const gchar* _tmp122_ = NULL;
+ int _tmp123_ = 0;
+ gchar* _tmp124_ = NULL;
+ gchar* _tmp125_ = NULL;
+#line 1438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp122_ = fulldir;
+#line 1438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp123_ = self->priv->refresh_result;
+#line 1438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp124_ = gp_result_to_full_string (_tmp123_);
+#line 1438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp125_ = _tmp124_;
+#line 1438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1438: Unable to list folders in %s: %s", _tmp122_, _tmp125_);
+#line 1438 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp125_);
+#line 1441 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = GP_OK;
+#line 1443 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 1443 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1443 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1443 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1443 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 9318 "ImportPage.c"
+ }
+ {
+ gint ctr = 0;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ctr = 0;
+#line 9324 "ImportPage.c"
+ {
+ gboolean _tmp126_ = FALSE;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp126_ = TRUE;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 9331 "ImportPage.c"
+ gint _tmp128_ = 0;
+ CameraList* _tmp129_ = NULL;
+ gint _tmp130_ = 0;
+ gchar* subdir = NULL;
+ CameraList* _tmp131_ = NULL;
+ gint _tmp132_ = 0;
+ const gchar* _tmp133_ = NULL;
+ int _tmp134_ = 0;
+ gchar* _tmp135_ = NULL;
+ int _tmp136_ = 0;
+ gint _tmp141_ = 0;
+ const gchar* _tmp142_ = NULL;
+ const gchar* _tmp143_ = NULL;
+ gchar* _tmp144_ = NULL;
+ gchar* _tmp145_ = NULL;
+ GeeArrayList* _tmp146_ = NULL;
+ gboolean _tmp147_ = FALSE;
+ gboolean _tmp148_ = FALSE;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp126_) {
+#line 9352 "ImportPage.c"
+ gint _tmp127_ = 0;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp127_ = ctr;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ctr = _tmp127_ + 1;
+#line 9358 "ImportPage.c"
+ }
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp126_ = FALSE;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp128_ = ctr;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp129_ = folders;
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp130_ = gp_list_count (_tmp129_);
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp128_ < _tmp130_)) {
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 9372 "ImportPage.c"
+ }
+#line 1448 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp131_ = folders;
+#line 1448 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp132_ = ctr;
+#line 1448 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp134_ = gp_list_get_name (_tmp131_, _tmp132_, &_tmp133_);
+#line 1448 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (subdir);
+#line 1448 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp135_ = g_strdup (_tmp133_);
+#line 1448 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ subdir = _tmp135_;
+#line 1448 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = _tmp134_;
+#line 1449 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp136_ = self->priv->refresh_result;
+#line 1449 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp136_ != GP_OK) {
+#line 9392 "ImportPage.c"
+ gint _tmp137_ = 0;
+ int _tmp138_ = 0;
+ gchar* _tmp139_ = NULL;
+ gchar* _tmp140_ = NULL;
+#line 1450 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp137_ = ctr;
+#line 1450 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp138_ = self->priv->refresh_result;
+#line 1450 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp139_ = gp_result_to_full_string (_tmp138_);
+#line 1450 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp140_ = _tmp139_;
+#line 1450 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1450: Unable to get name of folder %d: %s", _tmp137_, _tmp140_);
+#line 1450 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp140_);
+#line 1452 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1452 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (subdir);
+#line 1452 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1452 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1452 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1452 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 9421 "ImportPage.c"
+ }
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp141_ = fsid;
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp142_ = dir;
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp143_ = subdir;
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp144_ = import_page_append_path (_tmp142_, _tmp143_);
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp145_ = _tmp144_;
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp146_ = import_list;
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp147_ = import_page_enumerate_files (self, _tmp141_, _tmp145_, _tmp146_);
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp148_ = !_tmp147_;
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp145_);
+#line 1455 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp148_) {
+#line 1456 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 1456 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (subdir);
+#line 1456 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1456 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1456 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1456 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 9455 "ImportPage.c"
+ }
+#line 1446 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (subdir);
+#line 9459 "ImportPage.c"
+ }
+ }
+ }
+#line 1459 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 1459 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (folders);
+#line 1459 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_list_unref0 (files);
+#line 1459 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1459 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 9473 "ImportPage.c"
+}
+
+
+static void import_page_auto_match_raw_jpeg (ImportPage* self, GeeArrayList* import_list) {
+#line 1463 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1463 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (GEE_IS_ARRAY_LIST (import_list));
+#line 9482 "ImportPage.c"
+ {
+ gint i = 0;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ i = 0;
+#line 9487 "ImportPage.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = TRUE;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 9494 "ImportPage.c"
+ gint _tmp2_ = 0;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ PhotoImportSource* current = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gpointer _tmp8_ = NULL;
+ ImportSource* _tmp9_ = NULL;
+ PhotoImportSource* _tmp10_ = NULL;
+ PhotoImportSource* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ PhotoImportSource* next = NULL;
+ PhotoImportSource* _tmp21_ = NULL;
+ PhotoImportSource* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ PhotoImportSource* prev = NULL;
+ PhotoImportSource* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ PhotoImportSource* _tmp31_ = NULL;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp0_) {
+#line 9520 "ImportPage.c"
+ gint _tmp1_ = 0;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = i;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ i = _tmp1_ + 1;
+#line 9526 "ImportPage.c"
+ }
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = FALSE;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = i;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = import_list;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp2_ < _tmp5_)) {
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 9542 "ImportPage.c"
+ }
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = import_list;
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = i;
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp7_);
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = (ImportSource*) _tmp8_;
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp9_) : NULL;
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp10_ == NULL) {
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 9558 "ImportPage.c"
+ }
+#line 1465 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ current = _tmp10_;
+#line 1466 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = i;
+#line 1466 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = import_list;
+#line 1466 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1466 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = _tmp14_;
+#line 1466 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((_tmp12_ + 1) < _tmp15_) {
+#line 9572 "ImportPage.c"
+ GeeArrayList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gpointer _tmp18_ = NULL;
+ ImportSource* _tmp19_ = NULL;
+ PhotoImportSource* _tmp20_ = NULL;
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = import_list;
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = i;
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp17_ + 1);
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = (ImportSource*) _tmp18_;
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp19_) : NULL;
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp20_ == NULL) {
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp19_);
+#line 9592 "ImportPage.c"
+ }
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp20_;
+#line 9598 "ImportPage.c"
+ } else {
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = NULL;
+#line 9604 "ImportPage.c"
+ }
+#line 1466 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = _g_object_ref0 (_tmp11_);
+#line 1466 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ next = _tmp21_;
+#line 1468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = i;
+#line 1468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp23_ > 0) {
+#line 9614 "ImportPage.c"
+ GeeArrayList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gpointer _tmp26_ = NULL;
+ ImportSource* _tmp27_ = NULL;
+ PhotoImportSource* _tmp28_ = NULL;
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = import_list;
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = i;
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp25_ - 1);
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = (ImportSource*) _tmp26_;
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp27_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp27_) : NULL;
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp28_ == NULL) {
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp27_);
+#line 9634 "ImportPage.c"
+ }
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = _tmp28_;
+#line 9640 "ImportPage.c"
+ } else {
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1469 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = NULL;
+#line 9646 "ImportPage.c"
+ }
+#line 1468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = _g_object_ref0 (_tmp22_);
+#line 1468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ prev = _tmp29_;
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = current;
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp31_ != NULL) {
+#line 9656 "ImportPage.c"
+ PhotoImportSource* _tmp32_ = NULL;
+ PhotoFileFormat _tmp33_ = 0;
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = current;
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = photo_import_source_get_file_format (_tmp32_);
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = _tmp33_ == PHOTO_FILE_FORMAT_RAW;
+#line 9665 "ImportPage.c"
+ } else {
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = FALSE;
+#line 9669 "ImportPage.c"
+ }
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp30_) {
+#line 9673 "ImportPage.c"
+ gchar* current_name = NULL;
+ gchar* ext = NULL;
+ PhotoImportSource* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ PhotoImportSource* associated = NULL;
+ gboolean _tmp39_ = FALSE;
+ PhotoImportSource* _tmp40_ = NULL;
+ gboolean _tmp52_ = FALSE;
+ PhotoImportSource* _tmp53_ = NULL;
+ PhotoImportSource* _tmp65_ = NULL;
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = current;
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = _tmp35_;
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ disassemble_filename (_tmp36_, &_tmp37_, &_tmp38_);
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (current_name);
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ current_name = _tmp37_;
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (ext);
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ext = _tmp38_;
+#line 1473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp36_);
+#line 1476 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ associated = NULL;
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = next;
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp40_ != NULL) {
+#line 9711 "ImportPage.c"
+ PhotoImportSource* _tmp41_ = NULL;
+ PhotoFileFormat _tmp42_ = 0;
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = next;
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = photo_import_source_get_file_format (_tmp41_);
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = _tmp42_ == PHOTO_FILE_FORMAT_JFIF;
+#line 9720 "ImportPage.c"
+ } else {
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = FALSE;
+#line 9724 "ImportPage.c"
+ }
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp39_) {
+#line 9728 "ImportPage.c"
+ gchar* next_name = NULL;
+ PhotoImportSource* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = next;
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = _tmp44_;
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ disassemble_filename (_tmp45_, &_tmp46_, &_tmp47_);
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (next_name);
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ next_name = _tmp46_;
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (ext);
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ext = _tmp47_;
+#line 1479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp45_);
+#line 1480 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = next_name;
+#line 1480 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = current_name;
+#line 1480 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (g_strcmp0 (_tmp48_, _tmp49_) == 0) {
+#line 9761 "ImportPage.c"
+ PhotoImportSource* _tmp50_ = NULL;
+ PhotoImportSource* _tmp51_ = NULL;
+#line 1481 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = next;
+#line 1481 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = _g_object_ref0 (_tmp50_);
+#line 1481 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1481 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ associated = _tmp51_;
+#line 9772 "ImportPage.c"
+ }
+#line 1477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (next_name);
+#line 9776 "ImportPage.c"
+ }
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = prev;
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp53_ != NULL) {
+#line 9782 "ImportPage.c"
+ PhotoImportSource* _tmp54_ = NULL;
+ PhotoFileFormat _tmp55_ = 0;
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = prev;
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = photo_import_source_get_file_format (_tmp54_);
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = _tmp55_ == PHOTO_FILE_FORMAT_JFIF;
+#line 9791 "ImportPage.c"
+ } else {
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = FALSE;
+#line 9795 "ImportPage.c"
+ }
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp52_) {
+#line 9799 "ImportPage.c"
+ gchar* prev_name = NULL;
+ PhotoImportSource* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = prev;
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp58_ = _tmp57_;
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ disassemble_filename (_tmp58_, &_tmp59_, &_tmp60_);
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (prev_name);
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ prev_name = _tmp59_;
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (ext);
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ext = _tmp60_;
+#line 1485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp58_);
+#line 1486 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp61_ = prev_name;
+#line 1486 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp62_ = current_name;
+#line 1486 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (g_strcmp0 (_tmp61_, _tmp62_) == 0) {
+#line 9832 "ImportPage.c"
+ PhotoImportSource* _tmp63_ = NULL;
+ PhotoImportSource* _tmp64_ = NULL;
+#line 1487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp63_ = prev;
+#line 1487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp64_ = _g_object_ref0 (_tmp63_);
+#line 1487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ associated = _tmp64_;
+#line 9843 "ImportPage.c"
+ }
+#line 1483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (prev_name);
+#line 9847 "ImportPage.c"
+ }
+#line 1491 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp65_ = associated;
+#line 1491 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp65_ != NULL) {
+#line 9853 "ImportPage.c"
+ PhotoImportSource* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ PhotoImportSource* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ PhotoImportSource* _tmp72_ = NULL;
+ PhotoImportSource* _tmp73_ = NULL;
+ GeeArrayList* _tmp74_ = NULL;
+ PhotoImportSource* _tmp75_ = NULL;
+ gboolean _tmp76_ = FALSE;
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp66_ = current;
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp67_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp68_ = _tmp67_;
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp69_ = associated;
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp70_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp71_ = _tmp70_;
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1492: Found RAW+JPEG pair: %s and %s", _tmp68_, _tmp71_);
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp71_);
+#line 1492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp68_);
+#line 1493 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp72_ = current;
+#line 1493 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp73_ = associated;
+#line 1493 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_import_source_set_associated (_tmp72_, _tmp73_);
+#line 1494 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp74_ = import_list;
+#line 1494 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp75_ = associated;
+#line 1494 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp76_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1494 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp76_) {
+#line 9897 "ImportPage.c"
+ PhotoImportSource* _tmp77_ = NULL;
+#line 1495 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1495: Unable to associate files");
+#line 1496 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp77_ = current;
+#line 1496 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_import_source_set_associated (_tmp77_, NULL);
+#line 9905 "ImportPage.c"
+ }
+ }
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (ext);
+#line 1470 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (current_name);
+#line 9914 "ImportPage.c"
+ }
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (prev);
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (next);
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (current);
+#line 9926 "ImportPage.c"
+ }
+ }
+ }
+}
+
+
+static void import_page_load_previews_and_metadata (ImportPage* self, GeeList* import_list) {
+ gint loaded_photos = 0;
+ GError * _inner_error_ = NULL;
+#line 1503 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1503 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (GEE_IS_LIST (import_list));
+#line 1504 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ loaded_photos = 0;
+#line 9942 "ImportPage.c"
+ {
+ GeeList* _import_source_list = NULL;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ gint _import_source_size = 0;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _import_source_index = 0;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = import_list;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _import_source_list = _tmp1_;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _import_source_list;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _tmp3_;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _import_source_size = _tmp4_;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _import_source_index = -1;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 9970 "ImportPage.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ ImportSource* import_source = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ gchar* filename = NULL;
+ ImportSource* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* fulldir = NULL;
+ ImportSource* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ PhotoImportSource* associated = NULL;
+ gboolean _tmp19_ = FALSE;
+ ImportSource* _tmp20_ = NULL;
+ GtkProgressBar* _tmp26_ = NULL;
+ GtkProgressBar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ ImportSource* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ PhotoMetadata* metadata = NULL;
+ const gchar* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+ gchar* exif_only_md5 = NULL;
+ PhotoMetadata* _tmp48_ = NULL;
+ guint8* preview_raw = NULL;
+ gint preview_raw_length1 = 0;
+ gint _preview_raw_size_ = 0;
+ gsize preview_raw_length = 0UL;
+ GdkPixbuf* preview = NULL;
+ gchar* preview_md5 = NULL;
+ gboolean _tmp84_ = FALSE;
+ gboolean _tmp85_ = FALSE;
+ GdkPixbuf* _tmp86_ = NULL;
+ ImportSource* _tmp92_ = NULL;
+ ImportSource* _tmp95_ = NULL;
+ PhotoImportSource* _tmp101_ = NULL;
+ SourceCollection* _tmp125_ = NULL;
+ ImportSource* _tmp126_ = NULL;
+ GtkProgressBar* _tmp127_ = NULL;
+ gint _tmp128_ = 0;
+ gint _tmp129_ = 0;
+ GeeList* _tmp130_ = NULL;
+ gint _tmp131_ = 0;
+ gint _tmp132_ = 0;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _import_source_index;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _import_source_index = _tmp5_ + 1;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _import_source_index;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _import_source_size;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 10033 "ImportPage.c"
+ }
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _import_source_list;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _import_source_index;
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = gee_list_get (_tmp8_, _tmp9_);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_source = (ImportSource*) _tmp10_;
+#line 1506 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = import_source;
+#line 1506 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = import_source_get_filename (_tmp11_);
+#line 1506 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ filename = _tmp12_;
+#line 1507 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = import_source;
+#line 1507 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = import_source_get_fulldir (_tmp13_);
+#line 1507 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ fulldir = _tmp14_;
+#line 1508 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = fulldir;
+#line 1508 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp15_ == NULL) {
+#line 10059 "ImportPage.c"
+ ImportSource* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 1509 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = import_source;
+#line 1509 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_OBJECT, DataObject));
+#line 1509 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = _tmp17_;
+#line 1509 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1509: Skipping loading preview of %s: invalid folder n" \
+"ame", _tmp18_);
+#line 1509 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp18_);
+#line 1511 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1511 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1511 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_source);
+#line 1511 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ continue;
+#line 10081 "ImportPage.c"
+ }
+#line 1515 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ associated = NULL;
+#line 1516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = import_source;
+#line 1516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp20_, TYPE_PHOTO_IMPORT_SOURCE)) {
+#line 10089 "ImportPage.c"
+ ImportSource* _tmp21_ = NULL;
+ PhotoImportSource* _tmp22_ = NULL;
+ PhotoImportSource* _tmp23_ = NULL;
+#line 1517 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = import_source;
+#line 1517 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = photo_import_source_get_associated (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource));
+#line 1517 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = _tmp22_;
+#line 1517 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = _tmp23_ != NULL;
+#line 1517 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp23_);
+#line 10103 "ImportPage.c"
+ } else {
+#line 1516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = FALSE;
+#line 10107 "ImportPage.c"
+ }
+#line 1516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp19_) {
+#line 10111 "ImportPage.c"
+ ImportSource* _tmp24_ = NULL;
+ PhotoImportSource* _tmp25_ = NULL;
+#line 1518 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = import_source;
+#line 1518 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = photo_import_source_get_associated (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource));
+#line 1518 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1518 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ associated = _tmp25_;
+#line 10122 "ImportPage.c"
+ }
+#line 1521 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = self->priv->progress_bar;
+#line 1521 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp26_, PANGO_ELLIPSIZE_MIDDLE);
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = self->priv->progress_bar;
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = _ ("Fetching preview for %s");
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = import_source;
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_OBJECT, DataObject));
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = _tmp30_;
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = g_strdup_printf (_tmp28_, _tmp31_);
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = _tmp32_;
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_text (_tmp27_, _tmp33_);
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp33_);
+#line 1522 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp31_);
+#line 1529 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ metadata = NULL;
+#line 1530 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = filename;
+#line 1530 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = video_reader_is_supported_video_filename (_tmp34_);
+#line 1530 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp35_) {
+#line 10156 "ImportPage.c"
+ {
+ PhotoMetadata* _tmp36_ = NULL;
+ GPSpinIdleWrapper* _tmp37_ = NULL;
+ GPContext* _tmp38_ = NULL;
+ Camera* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+ PhotoMetadata* _tmp42_ = NULL;
+ PhotoMetadata* _tmp43_ = NULL;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = import_page_spin_idle_context;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = self->priv->camera;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = fulldir;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = filename;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = gp_load_metadata (_tmp38_, _tmp39_, _tmp40_, _tmp41_, &_inner_error_);
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = _tmp42_;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10182 "ImportPage.c"
+ goto __catch65_g_error;
+ }
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = _tmp36_;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = NULL;
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (metadata);
+#line 1532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ metadata = _tmp43_;
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (_tmp36_);
+#line 10195 "ImportPage.c"
+ }
+ goto __finally65;
+ __catch65_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ GError* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 1535 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = fulldir;
+#line 1535 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = filename;
+#line 1535 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = err;
+#line 1535 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = _tmp46_->message;
+#line 1535 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1535: Unable to fetch metadata for %s/%s: %s", _tmp44_, _tmp45_, _tmp47_);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 10221 "ImportPage.c"
+ }
+ __finally65:
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (metadata);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_source);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_import_source_list);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 10244 "ImportPage.c"
+ }
+ }
+#line 1541 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ exif_only_md5 = NULL;
+#line 1542 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = metadata;
+#line 1542 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp48_ != NULL) {
+#line 10253 "ImportPage.c"
+ guint8* flattened_sans_thumbnail = NULL;
+ PhotoMetadata* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ guint8* _tmp51_ = NULL;
+ gint flattened_sans_thumbnail_length1 = 0;
+ gint _flattened_sans_thumbnail_size_ = 0;
+ gboolean _tmp52_ = FALSE;
+ guint8* _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+#line 1543 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = metadata;
+#line 1543 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = photo_metadata_flatten_exif (_tmp49_, FALSE, &_tmp50_);
+#line 1543 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ flattened_sans_thumbnail = _tmp51_;
+#line 1543 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ flattened_sans_thumbnail_length1 = _tmp50_;
+#line 1543 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _flattened_sans_thumbnail_size_ = flattened_sans_thumbnail_length1;
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = flattened_sans_thumbnail;
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53__length1 = flattened_sans_thumbnail_length1;
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp53_ != NULL) {
+#line 10279 "ImportPage.c"
+ guint8* _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = flattened_sans_thumbnail;
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54__length1 = flattened_sans_thumbnail_length1;
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = _tmp54__length1 > 0;
+#line 10288 "ImportPage.c"
+ } else {
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = FALSE;
+#line 10292 "ImportPage.c"
+ }
+#line 1544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp52_) {
+#line 10296 "ImportPage.c"
+ guint8* _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ guint8* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ gchar* _tmp57_ = NULL;
+#line 1545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = flattened_sans_thumbnail;
+#line 1545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55__length1 = flattened_sans_thumbnail_length1;
+#line 1545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = flattened_sans_thumbnail;
+#line 1545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56__length1 = flattened_sans_thumbnail_length1;
+#line 1545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = md5_binary (_tmp55_, (gsize) _tmp56__length1);
+#line 1545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (exif_only_md5);
+#line 1545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ exif_only_md5 = _tmp57_;
+#line 10316 "ImportPage.c"
+ }
+#line 1542 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ flattened_sans_thumbnail = (g_free (flattened_sans_thumbnail), NULL);
+#line 10320 "ImportPage.c"
+ }
+#line 1554 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw = NULL;
+#line 1554 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw_length1 = 0;
+#line 1554 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _preview_raw_size_ = preview_raw_length1;
+#line 1555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw_length = (gsize) 0;
+#line 1556 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview = NULL;
+#line 10332 "ImportPage.c"
+ {
+ gchar* preview_fulldir = NULL;
+ const gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* preview_filename = NULL;
+ const gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ PhotoImportSource* _tmp62_ = NULL;
+ GdkPixbuf* _tmp67_ = NULL;
+ GPSpinIdleWrapper* _tmp68_ = NULL;
+ GPContext* _tmp69_ = NULL;
+ Camera* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ guint8* _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ gsize _tmp75_ = 0UL;
+ GdkPixbuf* _tmp76_ = NULL;
+ GdkPixbuf* _tmp77_ = NULL;
+#line 1558 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp58_ = fulldir;
+#line 1558 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp59_ = g_strdup (_tmp58_);
+#line 1558 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_fulldir = _tmp59_;
+#line 1559 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp60_ = filename;
+#line 1559 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp61_ = g_strdup (_tmp60_);
+#line 1559 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_filename = _tmp61_;
+#line 1560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp62_ = associated;
+#line 1560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp62_ != NULL) {
+#line 10368 "ImportPage.c"
+ PhotoImportSource* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ PhotoImportSource* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+#line 1561 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp63_ = associated;
+#line 1561 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp64_ = import_source_get_fulldir (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1561 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_fulldir);
+#line 1561 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_fulldir = _tmp64_;
+#line 1562 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp65_ = associated;
+#line 1562 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp66_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp65_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1562 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_filename);
+#line 1562 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_filename = _tmp66_;
+#line 10389 "ImportPage.c"
+ }
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp68_ = import_page_spin_idle_context;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp69_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp70_ = self->priv->camera;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp71_ = preview_fulldir;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp72_ = preview_filename;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp76_ = gp_load_preview (_tmp69_, _tmp70_, _tmp71_, _tmp72_, &_tmp73_, &_tmp74_, &_tmp75_, &_inner_error_);
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw = (g_free (preview_raw), NULL);
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw = _tmp73_;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw_length1 = _tmp74_;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _preview_raw_size_ = preview_raw_length1;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw_length = _tmp75_;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp67_ = _tmp76_;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_filename);
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_fulldir);
+#line 10421 "ImportPage.c"
+ goto __catch66_g_error;
+ }
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp77_ = _tmp67_;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp67_ = NULL;
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (preview);
+#line 1564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview = _tmp77_;
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp67_);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_filename);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_fulldir);
+#line 10438 "ImportPage.c"
+ }
+ goto __finally66;
+ __catch66_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp78_ = NULL;
+ gboolean _tmp79_ = FALSE;
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 1572 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp78_ = filename;
+#line 1572 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp79_ = video_reader_is_supported_video_filename (_tmp78_);
+#line 1572 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp79_) {
+#line 10456 "ImportPage.c"
+ const gchar* _tmp80_ = NULL;
+ const gchar* _tmp81_ = NULL;
+ GError* _tmp82_ = NULL;
+ const gchar* _tmp83_ = NULL;
+#line 1573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp80_ = fulldir;
+#line 1573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp81_ = filename;
+#line 1573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp82_ = err;
+#line 1573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp83_ = _tmp82_->message;
+#line 1573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1573: Unable to fetch preview for %s/%s: %s", _tmp80_, _tmp81_, _tmp83_);
+#line 10471 "ImportPage.c"
+ }
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 10475 "ImportPage.c"
+ }
+ __finally66:
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (preview);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw = (g_free (preview_raw), NULL);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (exif_only_md5);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (metadata);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_source);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_import_source_list);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 10504 "ImportPage.c"
+ }
+#line 1578 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_md5 = NULL;
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp86_ = preview;
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp86_ != NULL) {
+#line 10512 "ImportPage.c"
+ guint8* _tmp87_ = NULL;
+ gint _tmp87__length1 = 0;
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp87_ = preview_raw;
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp87__length1 = preview_raw_length1;
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp85_ = _tmp87_ != NULL;
+#line 10521 "ImportPage.c"
+ } else {
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp85_ = FALSE;
+#line 10525 "ImportPage.c"
+ }
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp85_) {
+#line 10529 "ImportPage.c"
+ gsize _tmp88_ = 0UL;
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp88_ = preview_raw_length;
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp84_ = _tmp88_ > ((gsize) 0);
+#line 10535 "ImportPage.c"
+ } else {
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp84_ = FALSE;
+#line 10539 "ImportPage.c"
+ }
+#line 1579 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp84_) {
+#line 10543 "ImportPage.c"
+ guint8* _tmp89_ = NULL;
+ gint _tmp89__length1 = 0;
+ gsize _tmp90_ = 0UL;
+ gchar* _tmp91_ = NULL;
+#line 1580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp89_ = preview_raw;
+#line 1580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp89__length1 = preview_raw_length1;
+#line 1580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp90_ = preview_raw_length;
+#line 1580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp91_ = md5_binary (_tmp89_, _tmp90_);
+#line 1580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_md5);
+#line 1580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_md5 = _tmp91_;
+#line 10560 "ImportPage.c"
+ }
+#line 1586 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp92_ = import_source;
+#line 1586 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp92_, TYPE_VIDEO_IMPORT_SOURCE)) {
+#line 10566 "ImportPage.c"
+ ImportSource* _tmp93_ = NULL;
+ GdkPixbuf* _tmp94_ = NULL;
+#line 1587 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp93_ = import_source;
+#line 1587 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp94_ = preview;
+#line 1587 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ video_import_source_update (G_TYPE_CHECK_INSTANCE_TYPE (_tmp93_, TYPE_VIDEO_IMPORT_SOURCE) ? ((VideoImportSource*) _tmp93_) : NULL, _tmp94_);
+#line 10575 "ImportPage.c"
+ }
+#line 1589 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp95_ = import_source;
+#line 1589 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp95_, TYPE_PHOTO_IMPORT_SOURCE)) {
+#line 10581 "ImportPage.c"
+ ImportSource* _tmp96_ = NULL;
+ GdkPixbuf* _tmp97_ = NULL;
+ const gchar* _tmp98_ = NULL;
+ PhotoMetadata* _tmp99_ = NULL;
+ const gchar* _tmp100_ = NULL;
+#line 1590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp96_ = import_source;
+#line 1590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp97_ = preview;
+#line 1590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp98_ = preview_md5;
+#line 1590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp99_ = metadata;
+#line 1590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp100_ = exif_only_md5;
+#line 1590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_import_source_update (G_TYPE_CHECK_INSTANCE_TYPE (_tmp96_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp96_) : NULL, _tmp97_, _tmp98_, _tmp99_, _tmp100_);
+#line 10599 "ImportPage.c"
+ }
+#line 1593 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp101_ = associated;
+#line 1593 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp101_ != NULL) {
+#line 10605 "ImportPage.c"
+ {
+ PhotoMetadata* associated_metadata = NULL;
+ GPSpinIdleWrapper* _tmp102_ = NULL;
+ GPContext* _tmp103_ = NULL;
+ Camera* _tmp104_ = NULL;
+ PhotoImportSource* _tmp105_ = NULL;
+ gchar* _tmp106_ = NULL;
+ gchar* _tmp107_ = NULL;
+ PhotoImportSource* _tmp108_ = NULL;
+ gchar* _tmp109_ = NULL;
+ gchar* _tmp110_ = NULL;
+ PhotoMetadata* _tmp111_ = NULL;
+ PhotoMetadata* _tmp112_ = NULL;
+ PhotoImportSource* _tmp113_ = NULL;
+ GdkPixbuf* _tmp114_ = NULL;
+ const gchar* _tmp115_ = NULL;
+ PhotoMetadata* _tmp116_ = NULL;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp102_ = import_page_spin_idle_context;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp103_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp102_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp104_ = self->priv->camera;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp105_ = associated;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp106_ = import_source_get_fulldir (G_TYPE_CHECK_INSTANCE_CAST (_tmp105_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp107_ = _tmp106_;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp108_ = associated;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp109_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp108_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp110_ = _tmp109_;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp111_ = gp_load_metadata (_tmp103_, _tmp104_, _tmp107_, _tmp110_, &_inner_error_);
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp112_ = _tmp111_;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp110_);
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp107_);
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ associated_metadata = _tmp112_;
+#line 1595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10653 "ImportPage.c"
+ goto __catch67_g_error;
+ }
+#line 1597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp113_ = associated;
+#line 1597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp114_ = preview;
+#line 1597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp115_ = preview_md5;
+#line 1597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp116_ = associated_metadata;
+#line 1597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_import_source_update (_tmp113_, _tmp114_, _tmp115_, _tmp116_, NULL);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (associated_metadata);
+#line 10668 "ImportPage.c"
+ }
+ goto __finally67;
+ __catch67_g_error:
+ {
+ GError* err = NULL;
+ PhotoImportSource* _tmp117_ = NULL;
+ gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ PhotoImportSource* _tmp120_ = NULL;
+ gchar* _tmp121_ = NULL;
+ gchar* _tmp122_ = NULL;
+ GError* _tmp123_ = NULL;
+ const gchar* _tmp124_ = NULL;
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp117_ = associated;
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp118_ = import_source_get_fulldir (G_TYPE_CHECK_INSTANCE_CAST (_tmp117_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp119_ = _tmp118_;
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp120_ = associated;
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp121_ = import_source_get_filename (G_TYPE_CHECK_INSTANCE_CAST (_tmp120_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp122_ = _tmp121_;
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp123_ = err;
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp124_ = _tmp123_->message;
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:1599: Unable to fetch metadata for %s/%s: %s", _tmp119_, _tmp122_, _tmp124_);
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp122_);
+#line 1599 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp119_);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 10710 "ImportPage.c"
+ }
+ __finally67:
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_md5);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (preview);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw = (g_free (preview_raw), NULL);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (exif_only_md5);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (metadata);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_source);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_import_source_list);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1594 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 10741 "ImportPage.c"
+ }
+ }
+#line 1605 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp125_ = self->priv->import_sources;
+#line 1605 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp126_ = import_source;
+#line 1605 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp125_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp126_, TYPE_DATA_OBJECT, DataObject));
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp127_ = self->priv->progress_bar;
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp128_ = loaded_photos;
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ loaded_photos = _tmp128_ + 1;
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp129_ = loaded_photos;
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp130_ = import_list;
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp131_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp130_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp132_ = _tmp131_;
+#line 1607 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_progress_bar_set_fraction (_tmp127_, ((gdouble) _tmp129_) / ((gdouble) _tmp132_));
+#line 1614 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ spin_event_loop ();
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (preview_md5);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (preview);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview_raw = (g_free (preview_raw), NULL);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (exif_only_md5);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (metadata);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (associated);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (fulldir);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (filename);
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_source);
+#line 10786 "ImportPage.c"
+ }
+#line 1505 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_import_source_list);
+#line 10790 "ImportPage.c"
+ }
+}
+
+
+static void import_page_on_hide_imported (ImportPage* self) {
+ GtkCheckButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp8_ = NULL;
+ ConfigFacade* _tmp9_ = NULL;
+ GtkCheckButton* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 1618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1619 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->hide_imported;
+#line 1619 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 1619 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp1_) {
+#line 10810 "ImportPage.c"
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ImportPageHideImportedViewFilter* _tmp4_ = NULL;
+#line 1620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = self->priv->hide_imported_filter;
+#line 1620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ view_collection_install_view_filter (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_VIEW_FILTER, ViewFilter));
+#line 1620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 10824 "ImportPage.c"
+ } else {
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ImportPageHideImportedViewFilter* _tmp7_ = NULL;
+#line 1622 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1622 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 1622 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = self->priv->hide_imported_filter;
+#line 1622 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ view_collection_remove_view_filter (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_VIEW_FILTER, ViewFilter));
+#line 1622 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 10839 "ImportPage.c"
+ }
+#line 1624 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = config_facade_get_instance ();
+#line 1624 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _tmp8_;
+#line 1624 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = self->priv->hide_imported;
+#line 1624 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 1624 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ configuration_facade_set_hide_photos_already_imported (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp11_);
+#line 1624 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 10853 "ImportPage.c"
+}
+
+
+static void import_page_on_import_selected (ImportPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+#line 1627 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = view_collection_get_selected (_tmp1_);
+#line 1628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_import (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 10878 "ImportPage.c"
+}
+
+
+static void import_page_on_import_all (ImportPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 1631 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 1632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 1632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 1632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_import (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 10903 "ImportPage.c"
+}
+
+
+static gint64 _import_page_import_job_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = import_page_import_job_comparator ((ImportPage*) self, a, b);
+#line 1648 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 10912 "ImportPage.c"
+}
+
+
+static void _import_page_import_reporter_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
+#line 1684 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_import_reporter ((ImportPage*) self, manifest);
+#line 10919 "ImportPage.c"
+}
+
+
+static void _import_page_on_import_job_failed_batch_import_import_job_failed (BatchImport* _sender, BatchImportResult* _result_, gpointer self) {
+#line 1686 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_import_job_failed ((ImportPage*) self, _result_);
+#line 10926 "ImportPage.c"
+}
+
+
+static void _import_page_close_import_batch_import_import_complete (BatchImport* _sender, ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
+#line 1687 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_close_import ((ImportPage*) self);
+#line 10933 "ImportPage.c"
+}
+
+
+static void import_page_import (ImportPage* self, GeeIterable* items) {
+ int res = 0;
+ Camera* _tmp0_ = NULL;
+ GPSpinIdleWrapper* _tmp1_ = NULL;
+ GPContext* _tmp2_ = NULL;
+ int _tmp3_ = 0;
+ int _tmp4_ = 0;
+ gboolean _tmp11_ = FALSE;
+ GtkProgressBar* _tmp12_ = NULL;
+ SortedList* jobs = NULL;
+ SortedList* _tmp13_ = NULL;
+ GeeArrayList* already_imported = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ SortedList* _tmp55_ = NULL;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ const gchar* _tmp58_ = NULL;
+ SortedList* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+#line 1635 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1635 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (items));
+#line 1636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->camera;
+#line 1636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_page_spin_idle_context;
+#line 1636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = gp_camera_init (_tmp0_, _tmp2_);
+#line 1636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ res = _tmp3_;
+#line 1637 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = res;
+#line 1637 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp4_ != GP_OK) {
+#line 10975 "ImportPage.c"
+ const gchar* _tmp5_ = NULL;
+ int _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _ ("Unable to lock camera: %s");
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = res;
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = gp_result_to_full_string (_tmp6_);
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _tmp7_;
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = g_strdup_printf (_tmp5_, _tmp8_);
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = _tmp9_;
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ app_window_error_message (_tmp10_, NULL);
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp10_);
+#line 1638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp8_);
+#line 1640 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 11002 "ImportPage.c"
+ }
+#line 1643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = self->priv->refreshed;
+#line 1643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, TRUE, _tmp11_);
+#line 1645 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed (self);
+#line 1646 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = self->priv->progress_bar;
+#line 1646 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 1648 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = sorted_list_new (IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, _import_page_import_job_comparator_comparator, self);
+#line 1648 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ jobs = _tmp13_;
+#line 1649 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = gee_array_list_new (IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL);
+#line 1649 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ already_imported = _tmp14_;
+#line 11022 "ImportPage.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = items;
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = gee_iterable_iterator (_tmp15_);
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _object_it = _tmp16_;
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 11035 "ImportPage.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ ImportPreview* preview = NULL;
+ DataObject* _tmp21_ = NULL;
+ ImportPreview* _tmp22_ = NULL;
+ ImportSource* import_file = NULL;
+ ImportPreview* _tmp23_ = NULL;
+ DataSource* _tmp24_ = NULL;
+ ImportPreview* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ ImportPageCameraImportJob* import_job = NULL;
+ GPContextWrapper* _tmp38_ = NULL;
+ ImportSource* _tmp39_ = NULL;
+ ImportPageCameraImportJob* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+ ImportSource* _tmp42_ = NULL;
+ SortedList* _tmp53_ = NULL;
+ ImportPageCameraImportJob* _tmp54_ = NULL;
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = _object_it;
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp18_) {
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 11065 "ImportPage.c"
+ }
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = _object_it;
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ object = (DataObject*) _tmp20_;
+#line 1652 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = object;
+#line 1652 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_IMPORT_PREVIEW, ImportPreview));
+#line 1652 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ preview = _tmp22_;
+#line 1653 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = preview;
+#line 1653 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_DATA_VIEW, DataView));
+#line 1653 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_file = G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_IMPORT_SOURCE, ImportSource);
+#line 1655 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = preview;
+#line 1655 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = import_preview_is_already_imported (_tmp25_);
+#line 1655 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp26_) {
+#line 11091 "ImportPage.c"
+ ImportSource* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ GeeArrayList* _tmp30_ = NULL;
+ GPContextWrapper* _tmp31_ = NULL;
+ ImportSource* _tmp32_ = NULL;
+ ImportPreview* _tmp33_ = NULL;
+ DuplicatedFile* _tmp34_ = NULL;
+ DuplicatedFile* _tmp35_ = NULL;
+ ImportPageCameraImportJob* _tmp36_ = NULL;
+ ImportPageCameraImportJob* _tmp37_ = NULL;
+#line 1656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = import_file;
+#line 1656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = import_source_get_filename (_tmp27_);
+#line 1656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = _tmp28_;
+#line 1656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_message ("ImportPage.vala:1656: Skipping import of %s: checksum detected in libr" \
+"ary", _tmp29_);
+#line 1656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp29_);
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = already_imported;
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = import_page_null_context;
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = import_file;
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = preview;
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = import_preview_get_duplicated_file (_tmp33_);
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = _tmp34_;
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = import_page_camera_import_job_new (_tmp31_, _tmp32_, _tmp35_);
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = _tmp36_;
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp37_);
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_import_job_unref0 (_tmp37_);
+#line 1659 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp35_);
+#line 1662 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_file);
+#line 1662 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (preview);
+#line 1662 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (object);
+#line 1662 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ continue;
+#line 11143 "ImportPage.c"
+ }
+#line 1665 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = import_page_null_context;
+#line 1665 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = import_file;
+#line 1665 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = import_page_camera_import_job_new (_tmp38_, _tmp39_, NULL);
+#line 1665 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_job = _tmp40_;
+#line 1668 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = import_file;
+#line 1668 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp42_, TYPE_PHOTO_IMPORT_SOURCE)) {
+#line 11157 "ImportPage.c"
+ ImportSource* _tmp43_ = NULL;
+ PhotoImportSource* _tmp44_ = NULL;
+ PhotoImportSource* _tmp45_ = NULL;
+#line 1669 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = import_file;
+#line 1669 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = photo_import_source_get_associated (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource));
+#line 1669 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = _tmp44_;
+#line 1669 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = _tmp45_ != NULL;
+#line 1669 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp45_);
+#line 11171 "ImportPage.c"
+ } else {
+#line 1668 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = FALSE;
+#line 11175 "ImportPage.c"
+ }
+#line 1668 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp41_) {
+#line 11179 "ImportPage.c"
+ ImportPageCameraImportJob* _tmp46_ = NULL;
+ GPContextWrapper* _tmp47_ = NULL;
+ ImportSource* _tmp48_ = NULL;
+ PhotoImportSource* _tmp49_ = NULL;
+ PhotoImportSource* _tmp50_ = NULL;
+ ImportPageCameraImportJob* _tmp51_ = NULL;
+ ImportPageCameraImportJob* _tmp52_ = NULL;
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = import_job;
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = import_page_null_context;
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = import_file;
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = photo_import_source_get_associated (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_PHOTO_IMPORT_SOURCE, PhotoImportSource));
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = _tmp49_;
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = import_page_camera_import_job_new (_tmp47_, G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_IMPORT_SOURCE, ImportSource), NULL);
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = _tmp51_;
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ batch_import_job_set_associated (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_BATCH_IMPORT_JOB, BatchImportJob), G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, TYPE_BATCH_IMPORT_JOB, BatchImportJob));
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_import_job_unref0 (_tmp52_);
+#line 1670 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp50_);
+#line 11207 "ImportPage.c"
+ }
+#line 1674 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = jobs;
+#line 1674 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = import_job;
+#line 1674 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_COLLECTION, GeeCollection), _tmp54_);
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_import_job_unref0 (import_job);
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (import_file);
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (preview);
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (object);
+#line 11223 "ImportPage.c"
+ }
+#line 1651 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_object_it);
+#line 11227 "ImportPage.c"
+ }
+#line 1677 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = jobs;
+#line 1677 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1677 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = _tmp56_;
+#line 1677 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp58_ = self->priv->camera_name;
+#line 1677 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_debug ("ImportPage.vala:1677: Importing %d files from %s", _tmp57_, _tmp58_);
+#line 1679 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp59_ = jobs;
+#line 1679 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp60_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp59_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1679 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp61_ = _tmp60_;
+#line 1679 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp61_ > 0) {
+#line 11247 "ImportPage.c"
+ ImportPage* _tmp62_ = NULL;
+ ImportPage* _tmp63_ = NULL;
+ BatchImport* batch_import = NULL;
+ SortedList* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+ GeeArrayList* _tmp66_ = NULL;
+ BatchImport* _tmp67_ = NULL;
+ BatchImport* _tmp68_ = NULL;
+ BatchImport* _tmp69_ = NULL;
+ LibraryWindow* _tmp70_ = NULL;
+ LibraryWindow* _tmp71_ = NULL;
+ BatchImport* _tmp72_ = NULL;
+ LibraryWindow* _tmp73_ = NULL;
+ LibraryWindow* _tmp74_ = NULL;
+#line 1681 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp62_ = self->priv->local_ref;
+#line 1681 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_assert (_tmp62_ == NULL, "local_ref == null");
+#line 1682 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp63_ = _g_object_ref0 (self);
+#line 1682 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->local_ref);
+#line 1682 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->local_ref = _tmp63_;
+#line 1684 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp64_ = jobs;
+#line 1684 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp65_ = self->priv->camera_name;
+#line 1684 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp66_ = already_imported;
+#line 1684 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp67_ = batch_import_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, GEE_TYPE_ITERABLE, GeeIterable), _tmp65_, _import_page_import_reporter_batch_import_import_reporter, self, NULL, _tmp66_, NULL, NULL, NULL);
+#line 1684 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ batch_import = _tmp67_;
+#line 1686 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp68_ = batch_import;
+#line 1686 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (_tmp68_, "import-job-failed", (GCallback) _import_page_on_import_job_failed_batch_import_import_job_failed, self, 0);
+#line 1687 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp69_ = batch_import;
+#line 1687 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_connect_object (_tmp69_, "import-complete", (GCallback) _import_page_close_import_batch_import_import_complete, self, 0);
+#line 1689 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp70_ = library_window_get_app ();
+#line 1689 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp71_ = _tmp70_;
+#line 1689 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp72_ = batch_import;
+#line 1689 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_window_enqueue_batch_import (_tmp71_, _tmp72_, TRUE);
+#line 1689 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp71_);
+#line 1690 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp73_ = library_window_get_app ();
+#line 1690 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp74_ = _tmp73_;
+#line 1690 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_window_switch_to_import_queue_page (_tmp74_);
+#line 1690 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp74_);
+#line 1679 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (batch_import);
+#line 11310 "ImportPage.c"
+ } else {
+ GeeArrayList* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+#line 1694 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp75_ = already_imported;
+#line 1694 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp76_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1694 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp77_ = _tmp76_;
+#line 1694 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp77_ > 0) {
+#line 11323 "ImportPage.c"
+ GeeArrayList* _tmp78_ = NULL;
+ ImportManifest* _tmp79_ = NULL;
+ ImportManifest* _tmp80_ = NULL;
+#line 1695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp78_ = already_imported;
+#line 1695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp79_ = import_manifest_new (NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, GEE_TYPE_LIST, GeeList));
+#line 1695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp80_ = _tmp79_;
+#line 1695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_import_reporter (self, _tmp80_);
+#line 1695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _import_manifest_unref0 (_tmp80_);
+#line 11337 "ImportPage.c"
+ }
+#line 1697 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_close_import (self);
+#line 11341 "ImportPage.c"
+ }
+#line 1635 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (already_imported);
+#line 1635 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (jobs);
+#line 11347 "ImportPage.c"
+}
+
+
+static void import_page_on_import_job_failed (ImportPage* self, BatchImportResult* _result_) {
+ gboolean _tmp0_ = FALSE;
+ BatchImportResult* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1701 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1701 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_RESULT (_result_));
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _result_;
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp1_->file;
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_ == NULL) {
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = TRUE;
+#line 11368 "ImportPage.c"
+ } else {
+ BatchImportResult* _tmp3_ = NULL;
+ ImportResult _tmp4_ = 0;
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _result_;
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = _tmp3_->result;
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp4_ == IMPORT_RESULT_SUCCESS;
+#line 11378 "ImportPage.c"
+ }
+#line 1702 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp0_) {
+#line 1703 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 11384 "ImportPage.c"
+ }
+ {
+ BatchImportResult* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 1707 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _result_;
+#line 1707 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp5_->file;
+#line 1707 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_file_delete (_tmp6_, NULL, &_inner_error_);
+#line 1707 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 11397 "ImportPage.c"
+ goto __catch68_g_error;
+ }
+ }
+ goto __finally68;
+ __catch68_g_error:
+ {
+ GError* err = NULL;
+ BatchImportResult* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 1706 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 1706 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _result_;
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _tmp7_->file;
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = g_file_get_path (_tmp8_);
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = _tmp9_;
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = err;
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = _tmp11_->message;
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_message ("ImportPage.vala:1709: Unable to delete downloaded file %s: %s", _tmp10_, _tmp12_);
+#line 1709 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp10_);
+#line 1706 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 11433 "ImportPage.c"
+ }
+ __finally68:
+#line 1706 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1706 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1706 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_clear_error (&_inner_error_);
+#line 1706 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 11444 "ImportPage.c"
+ }
+}
+
+
+static gpointer _batch_import_job_ref0 (gpointer self) {
+#line 1753 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self ? batch_import_job_ref (self) : NULL;
+#line 11452 "ImportPage.c"
+}
+
+
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop);
+#line 1760 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 11461 "ImportPage.c"
+}
+
+
+static void import_page_import_reporter (ImportPage* self, ImportManifest* manifest) {
+ ImportPage* local_ref = NULL;
+ ImportPage* _tmp0_ = NULL;
+ ImportPage* _tmp1_ = NULL;
+ ImportManifest* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ Marker* marker = NULL;
+ SourceCollection* _tmp60_ = NULL;
+ Marker* _tmp61_ = NULL;
+ ProgressDialog* progress = NULL;
+ AppWindow* _tmp81_ = NULL;
+ AppWindow* _tmp82_ = NULL;
+ const gchar* _tmp83_ = NULL;
+ GCancellable* _tmp84_ = NULL;
+ GCancellable* _tmp85_ = NULL;
+ ProgressDialog* _tmp86_ = NULL;
+ ProgressDialog* _tmp87_ = NULL;
+ gint error_count = 0;
+ SourceCollection* _tmp88_ = NULL;
+ Marker* _tmp89_ = NULL;
+ ProgressDialog* _tmp90_ = NULL;
+ gint _tmp91_ = 0;
+ gint _tmp92_ = 0;
+ ProgressDialog* _tmp98_ = NULL;
+#line 1713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_MANIFEST (manifest));
+#line 1719 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->local_ref;
+#line 1719 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 1719 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ local_ref = _tmp1_;
+#line 1720 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->local_ref);
+#line 1720 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->local_ref = NULL;
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = manifest;
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _tmp2_->success;
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _tmp4_;
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp5_ > 0) {
+#line 11515 "ImportPage.c"
+ gchar* photos_string = NULL;
+ ImportManifest* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ ImportManifest* _tmp11_ = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gchar* _tmp15_ = NULL;
+ gchar* videos_string = NULL;
+ ImportManifest* _tmp16_ = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ const gchar* _tmp20_ = NULL;
+ ImportManifest* _tmp21_ = NULL;
+ GeeList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gchar* _tmp25_ = NULL;
+ gchar* both_string = NULL;
+ ImportManifest* _tmp26_ = NULL;
+ GeeList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ const gchar* _tmp30_ = NULL;
+ ImportManifest* _tmp31_ = NULL;
+ GeeList* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gchar* _tmp35_ = NULL;
+ gchar* neither_string = NULL;
+ ImportManifest* _tmp36_ = NULL;
+ GeeList* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ const gchar* _tmp40_ = NULL;
+ ImportManifest* _tmp41_ = NULL;
+ GeeList* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ gchar* _tmp45_ = NULL;
+ gchar* question_string = NULL;
+ ImportManifest* _tmp46_ = NULL;
+ GeeList* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ ImportUIQuestionParams* question = NULL;
+ const gchar* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ ImportUIQuestionParams* _tmp55_ = NULL;
+ ImportManifest* _tmp56_ = NULL;
+ ImportUIQuestionParams* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = manifest;
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp6_->success;
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _tmp8_;
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = ngettext ("Delete this photo from camera?", "Delete these %d photos from camera?", (gulong) _tmp9_);
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = manifest;
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = _tmp11_->success;
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = _tmp13_;
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = g_strdup_printf (_tmp10_, _tmp14_);
+#line 1723 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photos_string = _tmp15_;
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = manifest;
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = _tmp16_->success;
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = _tmp18_;
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = ngettext ("Delete this video from camera?", "Delete these %d videos from camera?", (gulong) _tmp19_);
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = manifest;
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = _tmp21_->success;
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = _tmp23_;
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = g_strdup_printf (_tmp20_, _tmp24_);
+#line 1726 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ videos_string = _tmp25_;
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = manifest;
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = _tmp26_->success;
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = _tmp28_;
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = ngettext ("Delete this photo/video from camera?", "Delete these %d photos/videos from camera?", (gulong) _tmp29_);
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = manifest;
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = _tmp31_->success;
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = _tmp33_;
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = g_strdup_printf (_tmp30_, _tmp34_);
+#line 1729 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ both_string = _tmp35_;
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = manifest;
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = _tmp36_->success;
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = _tmp38_;
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = ngettext ("Delete these files from camera?", "Delete these %d files from camera?", (gulong) _tmp39_);
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = manifest;
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = _tmp41_->success;
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = _tmp43_;
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = g_strdup_printf (_tmp40_, _tmp44_);
+#line 1732 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ neither_string = _tmp45_;
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = manifest;
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = _tmp46_->success;
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = photos_string;
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = videos_string;
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = both_string;
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = neither_string;
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = import_ui_get_media_specific_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GEE_TYPE_COLLECTION, GeeCollection), _tmp48_, _tmp49_, _tmp50_, _tmp51_);
+#line 1736 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ question_string = _tmp52_;
+#line 1739 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = question_string;
+#line 1739 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = _ ("_Keep");
+#line 1739 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = import_ui_question_params_new (_tmp53_, RESOURCES_DELETE_LABEL, _tmp54_);
+#line 1739 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ question = _tmp55_;
+#line 1742 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = manifest;
+#line 1742 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp57_ = question;
+#line 1742 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp58_ = import_ui_report_manifest (_tmp56_, FALSE, _tmp57_);
+#line 1742 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp58_) {
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _import_ui_question_params_unref0 (question);
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (question_string);
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (neither_string);
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (both_string);
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (videos_string);
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (photos_string);
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (local_ref);
+#line 1743 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 11711 "ImportPage.c"
+ }
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _import_ui_question_params_unref0 (question);
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (question_string);
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (neither_string);
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (both_string);
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (videos_string);
+#line 1722 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (photos_string);
+#line 11725 "ImportPage.c"
+ } else {
+ ImportManifest* _tmp59_ = NULL;
+#line 1745 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp59_ = manifest;
+#line 1745 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_ui_report_manifest (_tmp59_, FALSE, NULL);
+#line 1746 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (local_ref);
+#line 1746 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return;
+#line 11736 "ImportPage.c"
+ }
+#line 1751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp60_ = self->priv->import_sources;
+#line 1751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp61_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_DATA_COLLECTION, DataCollection));
+#line 1751 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ marker = _tmp61_;
+#line 11744 "ImportPage.c"
+ {
+ GeeList* _batch_result_list = NULL;
+ ImportManifest* _tmp62_ = NULL;
+ GeeList* _tmp63_ = NULL;
+ GeeList* _tmp64_ = NULL;
+ gint _batch_result_size = 0;
+ GeeList* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _batch_result_index = 0;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp62_ = manifest;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp63_ = _tmp62_->success;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp64_ = _g_object_ref0 (_tmp63_);
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_result_list = _tmp64_;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp65_ = _batch_result_list;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp66_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp65_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp67_ = _tmp66_;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_result_size = _tmp67_;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_result_index = -1;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ while (TRUE) {
+#line 11775 "ImportPage.c"
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+ BatchImportResult* batch_result = NULL;
+ GeeList* _tmp71_ = NULL;
+ gint _tmp72_ = 0;
+ gpointer _tmp73_ = NULL;
+ ImportPageCameraImportJob* job = NULL;
+ BatchImportResult* _tmp74_ = NULL;
+ BatchImportJob* _tmp75_ = NULL;
+ ImportPageCameraImportJob* _tmp76_ = NULL;
+ Marker* _tmp77_ = NULL;
+ ImportPageCameraImportJob* _tmp78_ = NULL;
+ ImportSource* _tmp79_ = NULL;
+ ImportSource* _tmp80_ = NULL;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp68_ = _batch_result_index;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_result_index = _tmp68_ + 1;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp69_ = _batch_result_index;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp70_ = _batch_result_size;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!(_tmp69_ < _tmp70_)) {
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ break;
+#line 11803 "ImportPage.c"
+ }
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp71_ = _batch_result_list;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp72_ = _batch_result_index;
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp73_ = gee_list_get (_tmp71_, _tmp72_);
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ batch_result = (BatchImportResult*) _tmp73_;
+#line 1753 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp74_ = batch_result;
+#line 1753 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp75_ = _tmp74_->job;
+#line 1753 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp76_ = _batch_import_job_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp75_, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB) ? ((ImportPageCameraImportJob*) _tmp75_) : NULL);
+#line 1753 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ job = _tmp76_;
+#line 1755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp77_ = marker;
+#line 1755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp78_ = job;
+#line 1755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp79_ = import_page_camera_import_job_get_source (_tmp78_);
+#line 1755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp80_ = _tmp79_;
+#line 1755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ marker_mark (_tmp77_, G_TYPE_CHECK_INSTANCE_CAST (_tmp80_, TYPE_DATA_OBJECT, DataObject));
+#line 1755 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp80_);
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_import_job_unref0 (job);
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_import_result_unref0 (batch_result);
+#line 11837 "ImportPage.c"
+ }
+#line 1752 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_batch_result_list);
+#line 11841 "ImportPage.c"
+ }
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp81_ = app_window_get_instance ();
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp82_ = _tmp81_;
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp83_ = _ ("Removing photos/videos from camera");
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp84_ = g_cancellable_new ();
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp85_ = _tmp84_;
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp86_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp82_, gtk_window_get_type (), GtkWindow), _tmp83_, _tmp85_);
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp86_);
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp87_ = _tmp86_;
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp85_);
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp82_);
+#line 1758 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ progress = _tmp87_;
+#line 1760 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp88_ = self->priv->import_sources;
+#line 1760 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp89_ = marker;
+#line 1760 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp90_ = progress;
+#line 1760 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp91_ = source_collection_destroy_marked (_tmp88_, _tmp89_, TRUE, _progress_dialog_monitor_progress_monitor, _tmp90_, NULL);
+#line 1760 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ error_count = _tmp91_;
+#line 1761 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp92_ = error_count;
+#line 1761 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp92_ > 0) {
+#line 11879 "ImportPage.c"
+ gchar* error_string = NULL;
+ gint _tmp93_ = 0;
+ const gchar* _tmp94_ = NULL;
+ gint _tmp95_ = 0;
+ gchar* _tmp96_ = NULL;
+ const gchar* _tmp97_ = NULL;
+#line 1762 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp93_ = error_count;
+#line 1762 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp94_ = ngettext ("Unable to delete %d photo/video from the camera due to errors.", "Unable to delete %d photos/videos from the camera due to errors.", (gulong) _tmp93_);
+#line 1762 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp95_ = error_count;
+#line 1762 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp96_ = g_strdup_printf (_tmp94_, _tmp95_);
+#line 1762 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ error_string = _tmp96_;
+#line 1766 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp97_ = error_string;
+#line 1766 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ app_window_error_message (_tmp97_, NULL);
+#line 1761 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (error_string);
+#line 11902 "ImportPage.c"
+ }
+#line 1769 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp98_ = progress;
+#line 1769 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ progress_dialog_close (_tmp98_);
+#line 1772 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (local_ref);
+#line 1772 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ local_ref = NULL;
+#line 1713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (progress);
+#line 1713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (marker);
+#line 1713 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (local_ref);
+#line 11918 "ImportPage.c"
+}
+
+
+static void import_page_close_import (ImportPage* self) {
+ int res = 0;
+ Camera* _tmp0_ = NULL;
+ GPSpinIdleWrapper* _tmp1_ = NULL;
+ GPContext* _tmp2_ = NULL;
+ int _tmp3_ = 0;
+ int _tmp4_ = 0;
+ gboolean _tmp8_ = FALSE;
+#line 1775 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_IMPORT_PAGE (self));
+#line 1776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->camera;
+#line 1776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_page_spin_idle_context;
+#line 1776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GP_TYPE_CONTEXT_WRAPPER, GPContextWrapper)->context;
+#line 1776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = gp_camera_exit (_tmp0_, _tmp2_);
+#line 1776 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ res = _tmp3_;
+#line 1777 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = res;
+#line 1777 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp4_ != GP_OK) {
+#line 11946 "ImportPage.c"
+ int _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = res;
+#line 1779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = gp_result_to_full_string (_tmp5_);
+#line 1779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp6_;
+#line 1779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_message ("ImportPage.vala:1779: Unable to unlock camera: %s", _tmp7_);
+#line 1779 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp7_);
+#line 11960 "ImportPage.c"
+ }
+#line 1782 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = self->priv->refreshed;
+#line 1782 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_update_status (self, FALSE, _tmp8_);
+#line 1784 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_on_view_changed (self);
+#line 11968 "ImportPage.c"
+}
+
+
+static void import_page_real_set_display_titles (CheckerboardPage* base, gboolean display) {
+ ImportPage * self;
+ gboolean _tmp0_ = FALSE;
+ GtkToggleAction* action = NULL;
+ GtkAction* _tmp1_ = NULL;
+ GtkToggleAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+#line 1787 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 1788 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = display;
+#line 1788 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ CHECKERBOARD_PAGE_CLASS (import_page_parent_class)->set_display_titles (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), _tmp0_);
+#line 1790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ViewTitle");
+#line 1790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp1_) : NULL;
+#line 1790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_ == NULL) {
+#line 1790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 11993 "ImportPage.c"
+ }
+#line 1790 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ action = _tmp2_;
+#line 1791 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = action;
+#line 1791 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp3_ != NULL) {
+#line 12001 "ImportPage.c"
+ GtkToggleAction* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1792 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = action;
+#line 1792 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = display;
+#line 1792 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gtk_toggle_action_set_active (_tmp4_, _tmp5_);
+#line 12010 "ImportPage.c"
+ }
+#line 1787 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (action);
+#line 12014 "ImportPage.c"
+}
+
+
+static gpointer _view_filter_ref0 (gpointer self) {
+#line 1797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self ? view_filter_ref (self) : NULL;
+#line 12021 "ImportPage.c"
+}
+
+
+static SearchViewFilter* import_page_real_get_search_view_filter (CheckerboardPage* base) {
+ ImportPage * self;
+ SearchViewFilter* result = NULL;
+ ImportPageImportPageSearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+#line 1796 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_PAGE, ImportPage);
+#line 1797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 1797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _view_filter_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 1797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 1797 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12040 "ImportPage.c"
+}
+
+
+static ImportPageImportViewManager* import_page_import_view_manager_construct (GType object_type, ImportPage* owner) {
+ ImportPageImportViewManager* self = NULL;
+ ImportPage* _tmp0_ = NULL;
+ ImportPage* _tmp1_ = NULL;
+#line 463 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_PAGE (owner), NULL);
+#line 463 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportPageImportViewManager*) view_manager_construct (object_type);
+#line 464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = owner;
+#line 464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->owner);
+#line 464 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->owner = _tmp1_;
+#line 463 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 12062 "ImportPage.c"
+}
+
+
+static ImportPageImportViewManager* import_page_import_view_manager_new (ImportPage* owner) {
+#line 463 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return import_page_import_view_manager_construct (IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER, owner);
+#line 12069 "ImportPage.c"
+}
+
+
+static DataView* import_page_import_view_manager_real_create_view (ViewManager* base, DataSource* source) {
+ ImportPageImportViewManager * self;
+ DataView* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ ImportPreview* _tmp1_ = NULL;
+#line 467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER, ImportPageImportViewManager);
+#line 467 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = source;
+#line 468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_preview_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_IMPORT_SOURCE, ImportSource));
+#line 468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
+#line 468 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12090 "ImportPage.c"
+}
+
+
+static void import_page_import_view_manager_class_init (ImportPageImportViewManagerClass * klass) {
+#line 460 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_import_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 460 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ViewManagerClass *) klass)->finalize = import_page_import_view_manager_finalize;
+#line 460 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_type_class_add_private (klass, sizeof (ImportPageImportViewManagerPrivate));
+#line 460 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ViewManagerClass *) klass)->create_view = import_page_import_view_manager_real_create_view;
+#line 12103 "ImportPage.c"
+}
+
+
+static void import_page_import_view_manager_instance_init (ImportPageImportViewManager * self) {
+#line 460 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv = IMPORT_PAGE_IMPORT_VIEW_MANAGER_GET_PRIVATE (self);
+#line 12110 "ImportPage.c"
+}
+
+
+static void import_page_import_view_manager_finalize (ViewManager* obj) {
+ ImportPageImportViewManager * self;
+#line 460 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, IMPORT_PAGE_TYPE_IMPORT_VIEW_MANAGER, ImportPageImportViewManager);
+#line 461 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->owner);
+#line 460 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ VIEW_MANAGER_CLASS (import_page_import_view_manager_parent_class)->finalize (obj);
+#line 12122 "ImportPage.c"
+}
+
+
+static GType import_page_import_view_manager_get_type (void) {
+ static volatile gsize import_page_import_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&import_page_import_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportPageImportViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_page_import_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportPageImportViewManager), 0, (GInstanceInitFunc) import_page_import_view_manager_instance_init, NULL };
+ GType import_page_import_view_manager_type_id;
+ import_page_import_view_manager_type_id = g_type_register_static (TYPE_VIEW_MANAGER, "ImportPageImportViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&import_page_import_view_manager_type_id__volatile, import_page_import_view_manager_type_id);
+ }
+ return import_page_import_view_manager_type_id__volatile;
+}
+
+
+static gpointer _gp_context_wrapper_ref0 (gpointer self) {
+#line 487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self ? gp_context_wrapper_ref (self) : NULL;
+#line 12141 "ImportPage.c"
+}
+
+
+static ImportPageCameraImportJob* import_page_camera_import_job_construct (GType object_type, GPContextWrapper* context, ImportSource* import_file, DuplicatedFile* duplicated_file) {
+ ImportPageCameraImportJob* self = NULL;
+ GPContextWrapper* _tmp0_ = NULL;
+ GPContextWrapper* _tmp1_ = NULL;
+ ImportSource* _tmp2_ = NULL;
+ ImportSource* _tmp3_ = NULL;
+ DuplicatedFile* _tmp4_ = NULL;
+ DuplicatedFile* _tmp5_ = NULL;
+ ImportSource* _tmp6_ = NULL;
+ Camera* _tmp7_ = NULL;
+ ImportSource* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ ImportSource* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ ImportSource* _tmp13_ = NULL;
+ gulong _tmp14_ = 0UL;
+ PhotoMetadata* _tmp15_ = NULL;
+ ImportSource* _tmp16_ = NULL;
+ PhotoMetadata* _tmp19_ = NULL;
+ ImportSource* _tmp20_ = NULL;
+ time_t _tmp21_ = 0;
+#line 485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (GP_IS_CONTEXT_WRAPPER (context), NULL);
+#line 485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_IMPORT_SOURCE (import_file), NULL);
+#line 485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail ((duplicated_file == NULL) || IS_DUPLICATED_FILE (duplicated_file), NULL);
+#line 485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportPageCameraImportJob*) batch_import_job_construct (object_type);
+#line 487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = context;
+#line 487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _gp_context_wrapper_ref0 (_tmp0_);
+#line 487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_context_wrapper_unref0 (self->priv->context);
+#line 487 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->context = _tmp1_;
+#line 488 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = import_file;
+#line 488 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 488 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->import_file);
+#line 488 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->import_file = _tmp3_;
+#line 489 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = duplicated_file;
+#line 489 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 489 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->duplicated_file);
+#line 489 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->duplicated_file = _tmp5_;
+#line 492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = import_file;
+#line 492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = import_source_get_camera (_tmp6_);
+#line 492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (self->priv->camera);
+#line 492 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->camera = _tmp7_;
+#line 493 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = import_file;
+#line 493 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = import_source_get_fulldir (_tmp8_);
+#line 493 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->fulldir);
+#line 493 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->fulldir = _tmp9_;
+#line 495 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = self->priv->fulldir;
+#line 495 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_assert (_tmp10_ != NULL, "fulldir != null");
+#line 496 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = import_file;
+#line 496 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = import_source_get_filename (_tmp11_);
+#line 496 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->filename);
+#line 496 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->filename = _tmp12_;
+#line 497 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = import_file;
+#line 497 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = import_source_get_filesize (_tmp13_);
+#line 497 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->filesize = (guint64) _tmp14_;
+#line 498 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = import_file;
+#line 498 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, TYPE_PHOTO_IMPORT_SOURCE)) {
+#line 12237 "ImportPage.c"
+ ImportSource* _tmp17_ = NULL;
+ PhotoMetadata* _tmp18_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = import_file;
+#line 499 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = photo_import_source_get_metadata (G_TYPE_CHECK_INSTANCE_TYPE (_tmp17_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp17_) : NULL);
+#line 499 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (_tmp15_);
+#line 499 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = _tmp18_;
+#line 12248 "ImportPage.c"
+ } else {
+#line 499 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (_tmp15_);
+#line 499 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = NULL;
+#line 12254 "ImportPage.c"
+ }
+#line 498 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = _media_metadata_ref0 (_tmp15_);
+#line 498 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (self->priv->metadata);
+#line 498 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->metadata = _tmp19_;
+#line 500 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = import_file;
+#line 500 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = import_source_get_exposure_time (_tmp20_);
+#line 500 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->exposure_time = _tmp21_;
+#line 485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (_tmp15_);
+#line 485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 12272 "ImportPage.c"
+}
+
+
+static ImportPageCameraImportJob* import_page_camera_import_job_new (GPContextWrapper* context, ImportSource* import_file, DuplicatedFile* duplicated_file) {
+#line 485 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return import_page_camera_import_job_construct (IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, context, import_file, duplicated_file);
+#line 12279 "ImportPage.c"
+}
+
+
+static time_t import_page_camera_import_job_get_exposure_time (ImportPageCameraImportJob* self) {
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+#line 503 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IMPORT_PAGE_IS_CAMERA_IMPORT_JOB (self), 0);
+#line 504 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->exposure_time;
+#line 504 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 504 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12294 "ImportPage.c"
+}
+
+
+static DuplicatedFile* import_page_camera_import_job_real_get_duplicated_file (BatchImportJob* base) {
+ ImportPageCameraImportJob * self;
+ DuplicatedFile* result = NULL;
+ DuplicatedFile* _tmp0_ = NULL;
+ DuplicatedFile* _tmp1_ = NULL;
+#line 507 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 508 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->duplicated_file;
+#line 508 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 508 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 508 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12313 "ImportPage.c"
+}
+
+
+static time_t import_page_camera_import_job_real_get_exposure_time_override (BatchImportJob* base) {
+ ImportPageCameraImportJob * self;
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+ ImportSource* _tmp1_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 512 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->import_file;
+#line 512 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_VIDEO_IMPORT_SOURCE)) {
+#line 12328 "ImportPage.c"
+ time_t _tmp2_ = 0;
+#line 512 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = import_page_camera_import_job_get_exposure_time (self);
+#line 512 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp2_;
+#line 12334 "ImportPage.c"
+ } else {
+#line 512 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = (time_t) 0;
+#line 12338 "ImportPage.c"
+ }
+#line 512 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp0_;
+#line 512 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12344 "ImportPage.c"
+}
+
+
+static gchar* import_page_camera_import_job_real_get_dest_identifier (BatchImportJob* base) {
+ ImportPageCameraImportJob * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->filename;
+#line 516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 516 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12363 "ImportPage.c"
+}
+
+
+static gchar* import_page_camera_import_job_real_get_source_identifier (BatchImportJob* base) {
+ ImportPageCameraImportJob * self;
+ gchar* result = NULL;
+ ImportSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 519 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 520 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->import_file;
+#line 520 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_source_get_filename (_tmp0_);
+#line 520 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 520 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12382 "ImportPage.c"
+}
+
+
+static gchar* import_page_camera_import_job_real_get_basename (BatchImportJob* base) {
+ ImportPageCameraImportJob * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 523 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 524 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->filename;
+#line 524 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 524 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 524 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12401 "ImportPage.c"
+}
+
+
+static gchar* import_page_camera_import_job_real_get_path (BatchImportJob* base) {
+ ImportPageCameraImportJob * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 527 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 528 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->fulldir;
+#line 528 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 528 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 528 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12420 "ImportPage.c"
+}
+
+
+static void import_page_camera_import_job_real_set_associated (BatchImportJob* base, BatchImportJob* associated) {
+ ImportPageCameraImportJob * self;
+ BatchImportJob* _tmp0_ = NULL;
+ ImportPageCameraImportJob* _tmp1_ = NULL;
+#line 531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 531 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (associated));
+#line 532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = associated;
+#line 532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _batch_import_job_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB) ? ((ImportPageCameraImportJob*) _tmp0_) : NULL);
+#line 532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_import_job_unref0 (self->priv->associated);
+#line 532 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->associated = _tmp1_;
+#line 12440 "ImportPage.c"
+}
+
+
+static ImportSource* import_page_camera_import_job_get_source (ImportPageCameraImportJob* self) {
+ ImportSource* result = NULL;
+ ImportSource* _tmp0_ = NULL;
+ ImportSource* _tmp1_ = NULL;
+#line 535 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IMPORT_PAGE_IS_CAMERA_IMPORT_JOB (self), NULL);
+#line 536 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->import_file;
+#line 536 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 536 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = _tmp1_;
+#line 536 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12458 "ImportPage.c"
+}
+
+
+static gboolean import_page_camera_import_job_real_is_directory (BatchImportJob* base) {
+ ImportPageCameraImportJob * self;
+ gboolean result = FALSE;
+#line 539 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 540 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 540 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12471 "ImportPage.c"
+}
+
+
+static gboolean import_page_camera_import_job_real_determine_file_size (BatchImportJob* base, guint64* filesize, GFile** file) {
+ ImportPageCameraImportJob * self;
+ guint64 _vala_filesize = 0ULL;
+ GFile* _vala_file = NULL;
+ gboolean result = FALSE;
+ guint64 _tmp0_ = 0ULL;
+#line 543 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_vala_file);
+#line 544 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_file = NULL;
+#line 545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = self->priv->filesize;
+#line 545 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_filesize = _tmp0_;
+#line 547 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 547 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (filesize) {
+#line 547 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *filesize = _vala_filesize;
+#line 12497 "ImportPage.c"
+ }
+#line 547 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (file) {
+#line 547 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *file = _vala_file;
+#line 12503 "ImportPage.c"
+ } else {
+#line 547 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_vala_file);
+#line 12507 "ImportPage.c"
+ }
+#line 547 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12511 "ImportPage.c"
+}
+
+
+static gboolean import_page_camera_import_job_real_prepare (BatchImportJob* base, GFile** file_to_import, gboolean* copy_to_library, GError** error) {
+ ImportPageCameraImportJob * self;
+ GFile* _vala_file_to_import = NULL;
+ gboolean _vala_copy_to_library = FALSE;
+ gboolean result = FALSE;
+ GFile* dest_file = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp16_ = NULL;
+ ImportPageCameraImportJob* _tmp24_ = NULL;
+ GFile* _tmp55_ = NULL;
+ GFile* _tmp56_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 551 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 551 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_file_to_import = NULL;
+#line 552 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_copy_to_library = FALSE;
+#line 554 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ dest_file = NULL;
+#line 12537 "ImportPage.c"
+ {
+ gboolean collision = FALSE;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ time_t _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = self->priv->filename;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = self->priv->metadata;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->exposure_time;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = library_files_generate_unique_file (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_METADATA, MediaMetadata), _tmp3_, &_tmp4_, &_inner_error_);
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ collision = _tmp4_;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = _tmp5_;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12561 "ImportPage.c"
+ goto __catch69_g_error;
+ }
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = _tmp0_;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 557 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ dest_file = _tmp6_;
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 12574 "ImportPage.c"
+ }
+ goto __finally69;
+ __catch69_g_error:
+ {
+ GError* err = NULL;
+ ImportSource* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = self->priv->import_file;
+#line 560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = import_source_get_filename (_tmp7_);
+#line 560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = _tmp8_;
+#line 560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = err;
+#line 560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = _tmp10_->message;
+#line 560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:560: Unable to generate local file for %s: %s", _tmp9_, _tmp11_);
+#line 560 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp9_);
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 12605 "ImportPage.c"
+ }
+ __finally69:
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 555 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 12616 "ImportPage.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = dest_file;
+#line 564 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp12_ == NULL) {
+#line 12622 "ImportPage.c"
+ ImportSource* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = self->priv->import_file;
+#line 565 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = import_source_get_filename (_tmp13_);
+#line 565 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = _tmp14_;
+#line 565 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_message ("ImportPage.vala:565: Unable to generate local file for %s", _tmp15_);
+#line 565 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp15_);
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (file_to_import) {
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *file_to_import = _vala_file_to_import;
+#line 12644 "ImportPage.c"
+ } else {
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 12648 "ImportPage.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (copy_to_library) {
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *copy_to_library = _vala_copy_to_library;
+#line 12654 "ImportPage.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12658 "ImportPage.c"
+ }
+#line 572 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = dest_file;
+#line 572 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_monitor_blacklist_file (_tmp16_, "CameraImportJob.prepare");
+#line 12664 "ImportPage.c"
+ {
+ GPContextWrapper* _tmp17_ = NULL;
+ GPContext* _tmp18_ = NULL;
+ Camera* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = self->priv->context;
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = _tmp17_->context;
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = self->priv->camera;
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = self->priv->fulldir;
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = self->priv->filename;
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = dest_file;
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gp_save_image (_tmp18_, _tmp19_, _tmp20_, _tmp21_, _tmp22_, &_inner_error_);
+#line 574 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12688 "ImportPage.c"
+ goto __finally70;
+ }
+ }
+ __finally70:
+ {
+ GFile* _tmp23_ = NULL;
+#line 576 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = dest_file;
+#line 576 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_monitor_unblacklist_file (_tmp23_);
+#line 12699 "ImportPage.c"
+ }
+#line 573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 573 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 12709 "ImportPage.c"
+ }
+#line 580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = self->priv->associated;
+#line 580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp24_ != NULL) {
+#line 12715 "ImportPage.c"
+ BackingPhotoRow* _tmp39_ = NULL;
+ GFile* assoc_dest = NULL;
+ BackingPhotoRow* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ GFile* _tmp44_ = NULL;
+ GFile* _tmp45_ = NULL;
+ {
+ BackingPhotoRow* _tmp25_ = NULL;
+ GFile* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ ImportPageCameraImportJob* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ BackingPhotoRow* _tmp32_ = NULL;
+ BackingPhotoRow* _tmp33_ = NULL;
+ BackingPhotoRow* _tmp34_ = NULL;
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = dest_file;
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = g_file_get_path (_tmp26_);
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = _tmp27_;
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = self->priv->associated;
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = batch_import_job_get_basename (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_BATCH_IMPORT_JOB, BatchImportJob));
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp31_ = _tmp30_;
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = raw_developer_create_backing_row_for_development (RAW_DEVELOPER_CAMERA, _tmp28_, _tmp31_, &_inner_error_);
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = _tmp32_;
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp31_);
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (_tmp28_);
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = _tmp33_;
+#line 583 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12757 "ImportPage.c"
+ goto __catch71_g_error;
+ }
+#line 582 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = _tmp25_;
+#line 582 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = NULL;
+#line 582 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _backing_photo_row_unref0 (self->priv->associated_file);
+#line 582 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->associated_file = _tmp34_;
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _backing_photo_row_unref0 (_tmp25_);
+#line 12770 "ImportPage.c"
+ }
+ goto __finally71;
+ __catch71_g_error:
+ {
+ GError* err = NULL;
+ ImportPageCameraImportJob* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ GError* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ err = _inner_error_;
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _inner_error_ = NULL;
+#line 586 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = self->priv->associated;
+#line 586 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp36_ = _tmp35_->priv->filename;
+#line 586 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp37_ = err;
+#line 586 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp38_ = _tmp37_->message;
+#line 586 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_warning ("ImportPage.vala:586: Unable to generate backing associated file for %s" \
+": %s", _tmp36_, _tmp38_);
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_error_free0 (err);
+#line 12796 "ImportPage.c"
+ }
+ __finally71:
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 581 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 12807 "ImportPage.c"
+ }
+#line 590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp39_ = self->priv->associated_file;
+#line 590 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp39_ == NULL) {
+#line 12813 "ImportPage.c"
+ ImportPageCameraImportJob* _tmp40_ = NULL;
+ const gchar* _tmp41_ = NULL;
+#line 591 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp40_ = self->priv->associated;
+#line 591 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp41_ = _tmp40_->priv->filename;
+#line 591 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_message ("ImportPage.vala:591: Unable to generate backing associated file for %s", _tmp41_);
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (file_to_import) {
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *file_to_import = _vala_file_to_import;
+#line 12830 "ImportPage.c"
+ } else {
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 12834 "ImportPage.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (copy_to_library) {
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *copy_to_library = _vala_copy_to_library;
+#line 12840 "ImportPage.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12844 "ImportPage.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp42_ = self->priv->associated_file;
+#line 595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp43_ = _tmp42_->filepath;
+#line 595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp44_ = g_file_new_for_path (_tmp43_);
+#line 595 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ assoc_dest = _tmp44_;
+#line 596 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp45_ = assoc_dest;
+#line 596 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_monitor_blacklist_file (_tmp45_, "CameraImportJob.prepare");
+#line 12858 "ImportPage.c"
+ {
+ GPContextWrapper* _tmp46_ = NULL;
+ GPContext* _tmp47_ = NULL;
+ Camera* _tmp48_ = NULL;
+ ImportPageCameraImportJob* _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ ImportPageCameraImportJob* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ GFile* _tmp53_ = NULL;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp46_ = self->priv->context;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp47_ = _tmp46_->context;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp48_ = self->priv->camera;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp49_ = self->priv->associated;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp50_ = _tmp49_->priv->fulldir;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp51_ = self->priv->associated;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp52_ = _tmp51_->priv->filename;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp53_ = assoc_dest;
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ gp_save_image (_tmp47_, _tmp48_, _tmp50_, _tmp52_, _tmp53_, &_inner_error_);
+#line 598 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 12888 "ImportPage.c"
+ goto __finally72;
+ }
+ }
+ __finally72:
+ {
+ GFile* _tmp54_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp54_ = assoc_dest;
+#line 601 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ library_monitor_unblacklist_file (_tmp54_);
+#line 12899 "ImportPage.c"
+ }
+#line 597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (assoc_dest);
+#line 597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 597 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 12911 "ImportPage.c"
+ }
+#line 580 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (assoc_dest);
+#line 12915 "ImportPage.c"
+ }
+#line 605 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp55_ = dest_file;
+#line 605 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp56_ = _g_object_ref0 (_tmp55_);
+#line 605 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 605 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_file_to_import = _tmp56_;
+#line 606 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _vala_copy_to_library = FALSE;
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (dest_file);
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (file_to_import) {
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *file_to_import = _vala_file_to_import;
+#line 12935 "ImportPage.c"
+ } else {
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 12939 "ImportPage.c"
+ }
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (copy_to_library) {
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ *copy_to_library = _vala_copy_to_library;
+#line 12945 "ImportPage.c"
+ }
+#line 608 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 12949 "ImportPage.c"
+}
+
+
+static gboolean import_page_camera_import_job_real_complete (BatchImportJob* base, MediaSource* source, BatchImportRoll* import_roll, GError** error) {
+ ImportPageCameraImportJob * self;
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ MediaSource* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 611 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 611 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 611 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_ROLL (import_roll), FALSE);
+#line 612 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ret = FALSE;
+#line 613 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = source;
+#line 613 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO)) {
+#line 12971 "ImportPage.c"
+ Photo* photo = NULL;
+ MediaSource* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ BackingPhotoRow* _tmp3_ = NULL;
+#line 614 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = source;
+#line 614 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_PHOTO) ? ((Photo*) _tmp1_) : NULL);
+#line 614 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo = _tmp2_;
+#line 617 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = self->priv->associated_file;
+#line 617 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp3_ != NULL) {
+#line 12986 "ImportPage.c"
+ Photo* _tmp4_ = NULL;
+ BackingPhotoRow* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ ConfigFacade* _tmp8_ = NULL;
+ RawDeveloper _tmp9_ = 0;
+#line 618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = photo;
+#line 618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = self->priv->associated_file;
+#line 618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_add_backing_photo_for_development (_tmp4_, RAW_DEVELOPER_CAMERA, _tmp5_, &_inner_error_);
+#line 618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_propagate_error (error, _inner_error_);
+#line 618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 618 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return FALSE;
+#line 13007 "ImportPage.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ret = TRUE;
+#line 620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = photo;
+#line 620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = config_facade_get_instance ();
+#line 620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = _tmp7_;
+#line 620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = configuration_facade_get_default_raw_developer (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo_set_raw_developer (_tmp6_, _tmp9_);
+#line 620 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 13023 "ImportPage.c"
+ }
+#line 613 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 13027 "ImportPage.c"
+ }
+#line 623 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = ret;
+#line 623 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13033 "ImportPage.c"
+}
+
+
+static void import_page_camera_import_job_class_init (ImportPageCameraImportJobClass * klass) {
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_camera_import_job_parent_class = g_type_class_peek_parent (klass);
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->finalize = import_page_camera_import_job_finalize;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_type_class_add_private (klass, sizeof (ImportPageCameraImportJobPrivate));
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->get_duplicated_file = import_page_camera_import_job_real_get_duplicated_file;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->get_exposure_time_override = import_page_camera_import_job_real_get_exposure_time_override;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->get_dest_identifier = import_page_camera_import_job_real_get_dest_identifier;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->get_source_identifier = import_page_camera_import_job_real_get_source_identifier;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->get_basename = import_page_camera_import_job_real_get_basename;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->get_path = import_page_camera_import_job_real_get_path;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->set_associated = import_page_camera_import_job_real_set_associated;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->is_directory = import_page_camera_import_job_real_is_directory;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->determine_file_size = import_page_camera_import_job_real_determine_file_size;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->prepare = import_page_camera_import_job_real_prepare;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((BatchImportJobClass *) klass)->complete = import_page_camera_import_job_real_complete;
+#line 13066 "ImportPage.c"
+}
+
+
+static void import_page_camera_import_job_instance_init (ImportPageCameraImportJob * self) {
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv = IMPORT_PAGE_CAMERA_IMPORT_JOB_GET_PRIVATE (self);
+#line 481 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->associated = NULL;
+#line 482 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->associated_file = NULL;
+#line 13077 "ImportPage.c"
+}
+
+
+static void import_page_camera_import_job_finalize (BatchImportJob* obj) {
+ ImportPageCameraImportJob * self;
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, IMPORT_PAGE_TYPE_CAMERA_IMPORT_JOB, ImportPageCameraImportJob);
+#line 473 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_context_wrapper_unref0 (self->priv->context);
+#line 474 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->import_file);
+#line 475 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (self->priv->camera);
+#line 476 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->fulldir);
+#line 477 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->filename);
+#line 479 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _media_metadata_unref0 (self->priv->metadata);
+#line 481 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _batch_import_job_unref0 (self->priv->associated);
+#line 482 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _backing_photo_row_unref0 (self->priv->associated_file);
+#line 483 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->duplicated_file);
+#line 472 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ BATCH_IMPORT_JOB_CLASS (import_page_camera_import_job_parent_class)->finalize (obj);
+#line 13105 "ImportPage.c"
+}
+
+
+static GType import_page_camera_import_job_get_type (void) {
+ static volatile gsize import_page_camera_import_job_type_id__volatile = 0;
+ if (g_once_init_enter (&import_page_camera_import_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportPageCameraImportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_page_camera_import_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportPageCameraImportJob), 0, (GInstanceInitFunc) import_page_camera_import_job_instance_init, NULL };
+ GType import_page_camera_import_job_type_id;
+ import_page_camera_import_job_type_id = g_type_register_static (TYPE_BATCH_IMPORT_JOB, "ImportPageCameraImportJob", &g_define_type_info, 0);
+ g_once_init_leave (&import_page_camera_import_job_type_id__volatile, import_page_camera_import_job_type_id);
+ }
+ return import_page_camera_import_job_type_id__volatile;
+}
+
+
+static guint import_page_import_page_search_view_filter_real_get_criteria (SearchViewFilter* base) {
+ ImportPageImportPageSearchViewFilter * self;
+ guint result = 0U;
+#line 628 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER, ImportPageImportPageSearchViewFilter);
+#line 629 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = (guint) (SEARCH_FILTER_CRITERIA_TEXT | SEARCH_FILTER_CRITERIA_MEDIA);
+#line 629 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13130 "ImportPage.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 13150 "ImportPage.c"
+}
+
+
+static gboolean import_page_import_page_search_view_filter_real_predicate (ViewFilter* base, DataView* view) {
+ ImportPageImportPageSearchViewFilter * self;
+ gboolean result = FALSE;
+ ImportSource* source = NULL;
+ DataView* _tmp0_ = NULL;
+ ImportSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ guint _tmp3_ = 0U;
+ guint _tmp26_ = 0U;
+#line 632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER, ImportPageImportPageSearchViewFilter);
+#line 632 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 633 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = view;
+#line 633 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_preview_get_import_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_IMPORT_PREVIEW, ImportPreview));
+#line 633 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ source = _tmp1_;
+#line 636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = search_view_filter_get_criteria (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((gboolean) (SEARCH_FILTER_CRITERIA_MEDIA & _tmp3_)) {
+#line 13177 "ImportPage.c"
+ gboolean _tmp4_ = FALSE;
+#line 636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp4_ = search_view_filter_filter_by_media_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = _tmp4_;
+#line 13183 "ImportPage.c"
+ } else {
+#line 636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = FALSE;
+#line 13187 "ImportPage.c"
+ }
+#line 636 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp2_) {
+#line 13191 "ImportPage.c"
+ ImportSource* _tmp5_ = NULL;
+#line 637 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp5_ = source;
+#line 637 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_VIDEO_IMPORT_SOURCE)) {
+#line 13197 "ImportPage.c"
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp6_ = search_view_filter_get_show_media_video (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp7_ = _tmp6_;
+#line 638 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp7_) {
+#line 639 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 639 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 639 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13212 "ImportPage.c"
+ }
+ } else {
+ ImportSource* _tmp8_ = NULL;
+#line 640 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp8_ = source;
+#line 640 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, TYPE_PHOTO_IMPORT_SOURCE)) {
+#line 13220 "ImportPage.c"
+ PhotoImportSource* photo = NULL;
+ ImportSource* _tmp9_ = NULL;
+ PhotoImportSource* _tmp10_ = NULL;
+ PhotoImportSource* _tmp11_ = NULL;
+ PhotoFileFormat _tmp12_ = 0;
+#line 641 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp9_ = source;
+#line 641 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_PHOTO_IMPORT_SOURCE) ? ((PhotoImportSource*) _tmp9_) : NULL);
+#line 641 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ photo = _tmp10_;
+#line 642 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp11_ = photo;
+#line 642 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp12_ = photo_import_source_get_file_format (_tmp11_);
+#line 642 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp12_ == PHOTO_FILE_FORMAT_RAW) {
+#line 13238 "ImportPage.c"
+ PhotoImportSource* _tmp13_ = NULL;
+ PhotoImportSource* _tmp14_ = NULL;
+ PhotoImportSource* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp13_ = photo;
+#line 643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp14_ = photo_import_source_get_associated (_tmp13_);
+#line 643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp15_ = _tmp14_;
+#line 643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp16_ = _tmp15_ != NULL;
+#line 643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 643 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp16_) {
+#line 13255 "ImportPage.c"
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp18_ = search_view_filter_get_show_media_photos (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp19_ = _tmp18_;
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp19_) {
+#line 13265 "ImportPage.c"
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp20_ = search_view_filter_get_show_media_raw (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp21_ = _tmp20_;
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = !_tmp21_;
+#line 13274 "ImportPage.c"
+ } else {
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp17_ = FALSE;
+#line 13278 "ImportPage.c"
+ }
+#line 644 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp17_) {
+#line 645 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 645 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 645 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 645 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13290 "ImportPage.c"
+ }
+ } else {
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+#line 646 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp22_ = search_view_filter_get_show_media_raw (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 646 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp23_ = _tmp22_;
+#line 646 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp23_) {
+#line 647 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 647 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 647 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 647 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13309 "ImportPage.c"
+ }
+ }
+ } else {
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+#line 649 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp24_ = search_view_filter_get_show_media_photos (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 649 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp25_ = _tmp24_;
+#line 649 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp25_) {
+#line 650 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 650 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 650 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 650 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13329 "ImportPage.c"
+ }
+ }
+#line 640 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (photo);
+#line 13334 "ImportPage.c"
+ }
+ }
+ }
+#line 654 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp26_ = search_view_filter_get_criteria (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 654 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if ((gboolean) (SEARCH_FILTER_CRITERIA_TEXT & _tmp26_)) {
+#line 13342 "ImportPage.c"
+ const gchar* keywords = NULL;
+ ImportSource* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ gint _tmp31_ = 0;
+ gchar** _tmp32_ = NULL;
+#line 655 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp27_ = source;
+#line 655 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp28_ = indexable_get_indexable_keywords (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_INDEXABLE, Indexable));
+#line 655 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ keywords = _tmp28_;
+#line 656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp29_ = keywords;
+#line 656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp30_ = is_string_empty (_tmp29_);
+#line 656 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (_tmp30_) {
+#line 657 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 657 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 657 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13368 "ImportPage.c"
+ }
+#line 660 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp32_ = search_view_filter_get_search_filter_words (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter), &_tmp31_);
+#line 13372 "ImportPage.c"
+ {
+ gchar** word_collection = NULL;
+ gint word_collection_length1 = 0;
+ gint _word_collection_size_ = 0;
+ gint word_it = 0;
+#line 660 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ word_collection = _tmp32_;
+#line 660 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ word_collection_length1 = _tmp31_;
+#line 660 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ for (word_it = 0; word_it < _tmp31_; word_it = word_it + 1) {
+#line 13384 "ImportPage.c"
+ const gchar* word = NULL;
+#line 660 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ word = word_collection[word_it];
+#line 13388 "ImportPage.c"
+ {
+ const gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 661 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp33_ = keywords;
+#line 661 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp34_ = word;
+#line 661 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp35_ = string_contains (_tmp33_, _tmp34_);
+#line 661 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ if (!_tmp35_) {
+#line 662 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = FALSE;
+#line 662 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 662 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13407 "ImportPage.c"
+ }
+ }
+ }
+ }
+ }
+#line 666 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = TRUE;
+#line 666 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (source);
+#line 666 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13419 "ImportPage.c"
+}
+
+
+static ImportPageImportPageSearchViewFilter* import_page_import_page_search_view_filter_construct (GType object_type) {
+ ImportPageImportPageSearchViewFilter* self = NULL;
+#line 627 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportPageImportPageSearchViewFilter*) search_view_filter_construct (object_type);
+#line 627 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 13429 "ImportPage.c"
+}
+
+
+static ImportPageImportPageSearchViewFilter* import_page_import_page_search_view_filter_new (void) {
+#line 627 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return import_page_import_page_search_view_filter_construct (IMPORT_PAGE_TYPE_IMPORT_PAGE_SEARCH_VIEW_FILTER);
+#line 13436 "ImportPage.c"
+}
+
+
+static void import_page_import_page_search_view_filter_class_init (ImportPageImportPageSearchViewFilterClass * klass) {
+#line 627 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_import_page_search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 627 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = import_page_import_page_search_view_filter_real_get_criteria;
+#line 627 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ViewFilterClass *) klass)->predicate = import_page_import_page_search_view_filter_real_predicate;
+#line 13447 "ImportPage.c"
+}
+
+
+static void import_page_import_page_search_view_filter_instance_init (ImportPageImportPageSearchViewFilter * self) {
+}
+
+
+static GType import_page_import_page_search_view_filter_get_type (void) {
+ static volatile gsize import_page_import_page_search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&import_page_import_page_search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportPageImportPageSearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_page_import_page_search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportPageImportPageSearchViewFilter), 0, (GInstanceInitFunc) import_page_import_page_search_view_filter_instance_init, NULL };
+ GType import_page_import_page_search_view_filter_type_id;
+ import_page_import_page_search_view_filter_type_id = g_type_register_static (TYPE_SEARCH_VIEW_FILTER, "ImportPageImportPageSearchViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&import_page_import_page_search_view_filter_type_id__volatile, import_page_import_page_search_view_filter_type_id);
+ }
+ return import_page_import_page_search_view_filter_type_id__volatile;
+}
+
+
+static gboolean import_page_hide_imported_view_filter_real_predicate (ViewFilter* base, DataView* view) {
+ ImportPageHideImportedViewFilter * self;
+ gboolean result = FALSE;
+ DataView* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 672 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER, ImportPageHideImportedViewFilter);
+#line 672 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 673 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = view;
+#line 673 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = import_preview_is_already_imported (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_IMPORT_PREVIEW, ImportPreview));
+#line 673 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ result = !_tmp1_;
+#line 673 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return result;
+#line 13484 "ImportPage.c"
+}
+
+
+static ImportPageHideImportedViewFilter* import_page_hide_imported_view_filter_construct (GType object_type) {
+ ImportPageHideImportedViewFilter* self = NULL;
+#line 671 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = (ImportPageHideImportedViewFilter*) view_filter_construct (object_type);
+#line 671 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return self;
+#line 13494 "ImportPage.c"
+}
+
+
+static ImportPageHideImportedViewFilter* import_page_hide_imported_view_filter_new (void) {
+#line 671 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ return import_page_hide_imported_view_filter_construct (IMPORT_PAGE_TYPE_HIDE_IMPORTED_VIEW_FILTER);
+#line 13501 "ImportPage.c"
+}
+
+
+static void import_page_hide_imported_view_filter_class_init (ImportPageHideImportedViewFilterClass * klass) {
+#line 671 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_hide_imported_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 671 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((ViewFilterClass *) klass)->predicate = import_page_hide_imported_view_filter_real_predicate;
+#line 13510 "ImportPage.c"
+}
+
+
+static void import_page_hide_imported_view_filter_instance_init (ImportPageHideImportedViewFilter * self) {
+}
+
+
+static GType import_page_hide_imported_view_filter_get_type (void) {
+ static volatile gsize import_page_hide_imported_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&import_page_hide_imported_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportPageHideImportedViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_page_hide_imported_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportPageHideImportedViewFilter), 0, (GInstanceInitFunc) import_page_hide_imported_view_filter_instance_init, NULL };
+ GType import_page_hide_imported_view_filter_type_id;
+ import_page_hide_imported_view_filter_type_id = g_type_register_static (TYPE_VIEW_FILTER, "ImportPageHideImportedViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&import_page_hide_imported_view_filter_type_id__volatile, import_page_hide_imported_view_filter_type_id);
+ }
+ return import_page_hide_imported_view_filter_type_id__volatile;
+}
+
+
+static void import_page_class_init (ImportPageClass * klass) {
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ import_page_parent_class = g_type_class_peek_parent (klass);
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_type_class_add_private (klass, sizeof (ImportPagePrivate));
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((PageClass *) klass)->get_toolbar = import_page_real_get_toolbar;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((CheckerboardPageClass *) klass)->get_view_tracker = import_page_real_get_view_tracker;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((CheckerboardPageClass *) klass)->get_view_empty_message = import_page_real_get_view_empty_message;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = import_page_real_init_collect_ui_filenames;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((PageClass *) klass)->init_collect_toggle_action_entries = import_page_real_init_collect_toggle_action_entries;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = import_page_real_init_collect_action_entries;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((PageClass *) klass)->init_actions = import_page_real_init_actions;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((PageClass *) klass)->switched_to = import_page_real_switched_to;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((PageClass *) klass)->ready = import_page_real_ready;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((CheckerboardPageClass *) klass)->set_display_titles = import_page_real_set_display_titles;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ ((CheckerboardPageClass *) klass)->get_search_view_filter = import_page_real_get_search_view_filter;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = import_page_finalize;
+#line 13559 "ImportPage.c"
+}
+
+
+static void import_page_instance_init (ImportPage * self) {
+ GtkLabel* _tmp0_ = NULL;
+ GtkProgressBar* _tmp1_ = NULL;
+ ImportPageImportPageSearchViewFilter* _tmp2_ = NULL;
+ ImportPageHideImportedViewFilter* _tmp3_ = NULL;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv = IMPORT_PAGE_GET_PRIVATE (self);
+#line 680 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->import_sources = NULL;
+#line 681 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = (GtkLabel*) gtk_label_new (NULL);
+#line 681 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp0_);
+#line 681 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->camera_label = _tmp0_;
+#line 683 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp1_ = (GtkProgressBar*) gtk_progress_bar_new ();
+#line 683 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_object_ref_sink (_tmp1_);
+#line 683 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->progress_bar = _tmp1_;
+#line 686 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->busy = FALSE;
+#line 687 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refreshed = FALSE;
+#line 688 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_result = GP_OK;
+#line 689 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->refresh_error = NULL;
+#line 691 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->volume_monitor = NULL;
+#line 692 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->local_ref = NULL;
+#line 694 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = import_page_import_page_search_view_filter_new ();
+#line 694 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->search_filter = _tmp2_;
+#line 695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp3_ = import_page_hide_imported_view_filter_new ();
+#line 695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self->priv->hide_imported_filter = _tmp3_;
+#line 13604 "ImportPage.c"
+}
+
+
+static void import_page_finalize (GObject* obj) {
+ ImportPage * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ VideoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IMPORT_PAGE, ImportPage);
+#line 766 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp0_ = library_photo_global;
+#line 766 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 766 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _import_page_on_media_added_removed_data_collection_contents_altered, self);
+#line 767 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _tmp2_ = video_global;
+#line 767 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 767 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _import_page_on_media_added_removed_data_collection_contents_altered, self);
+#line 680 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _data_collection_unref0 (self->priv->import_sources);
+#line 681 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->camera_label);
+#line 682 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->hide_imported);
+#line 683 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->progress_bar);
+#line 684 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _gp_camera_unref0 (self->priv->camera);
+#line 685 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->uri);
+#line 689 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->refresh_error);
+#line 690 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->camera_name);
+#line 691 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->volume_monitor);
+#line 692 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_object_unref0 (self->priv->local_ref);
+#line 693 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _g_free0 (self->priv->icon);
+#line 694 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 695 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _view_filter_unref0 (self->priv->hide_imported_filter);
+#line 696 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 457 "/home/jens/Source/shotwell/src/camera/ImportPage.vala"
+ G_OBJECT_CLASS (import_page_parent_class)->finalize (obj);
+#line 13658 "ImportPage.c"
+}
+
+
+GType import_page_get_type (void) {
+ static volatile gsize import_page_type_id__volatile = 0;
+ if (g_once_init_enter (&import_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportPage), 0, (GInstanceInitFunc) import_page_instance_init, NULL };
+ GType import_page_type_id;
+ import_page_type_id = g_type_register_static (TYPE_CHECKERBOARD_PAGE, "ImportPage", &g_define_type_info, 0);
+ g_once_init_leave (&import_page_type_id__volatile, import_page_type_id);
+ }
+ return import_page_type_id__volatile;
+}
+
+
+
diff --git a/src/camera/mk/camera.mk b/src/camera/mk/camera.mk
deleted file mode 100644
index 1812a42..0000000
--- a/src/camera/mk/camera.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Camera
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := camera
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- Branch.vala \
- CameraTable.vala \
- GPhoto.vala \
- ImportPage.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Sidebar
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/config/Config.c b/src/config/Config.c
new file mode 100644
index 0000000..0bcb4d4
--- /dev/null
+++ b/src/config/Config.c
@@ -0,0 +1,872 @@
+/* Config.c generated by valac 0.32.1, the Vala compiler
+ * generated from Config.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* This file is the master unit file for the Config unit. It should be edited to include
+ * whatever code is deemed necessary.
+ *
+ * The init() and terminate() methods are mandatory.
+ *
+ * If the unit needs to be configured prior to initialization, add the proper parameters to
+ * the preconfigure() method, implement it, and ensure in init() that it's been called.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+typedef struct _ConfigurationFacadePrivate ConfigurationFacadePrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_FUZZY_PROPERTY_STATE (fuzzy_property_state_get_type ())
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _ConfigFacadePrivate ConfigFacadePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_GSETTINGS_CONFIGURATION_ENGINE (gsettings_configuration_engine_get_type ())
+#define GSETTINGS_CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine))
+#define GSETTINGS_CONFIGURATION_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngineClass))
+#define IS_GSETTINGS_CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GSETTINGS_CONFIGURATION_ENGINE))
+#define IS_GSETTINGS_CONFIGURATION_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GSETTINGS_CONFIGURATION_ENGINE))
+#define GSETTINGS_CONFIGURATION_ENGINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngineClass))
+
+typedef struct _GSettingsConfigurationEngine GSettingsConfigurationEngine;
+typedef struct _GSettingsConfigurationEngineClass GSettingsConfigurationEngineClass;
+
+#define TYPE_CONFIGURATION_ENGINE (configuration_engine_get_type ())
+#define CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_ENGINE, ConfigurationEngine))
+#define IS_CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_ENGINE))
+#define CONFIGURATION_ENGINE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONFIGURATION_ENGINE, ConfigurationEngineIface))
+
+typedef struct _ConfigurationEngine ConfigurationEngine;
+typedef struct _ConfigurationEngineIface ConfigurationEngineIface;
+
+#define TYPE_CONFIGURABLE_PROPERTY (configurable_property_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+typedef enum {
+ FUZZY_PROPERTY_STATE_ENABLED,
+ FUZZY_PROPERTY_STATE_DISABLED,
+ FUZZY_PROPERTY_STATE_UNKNOWN
+} FuzzyPropertyState;
+
+struct _ConfigurationFacade {
+ GObject parent_instance;
+ ConfigurationFacadePrivate * priv;
+};
+
+struct _ConfigurationFacadeClass {
+ GObjectClass parent_class;
+ gboolean (*get_auto_import_from_library) (ConfigurationFacade* self);
+ void (*set_auto_import_from_library) (ConfigurationFacade* self, gboolean auto_import);
+ gchar* (*get_bg_color_name) (ConfigurationFacade* self);
+ void (*set_bg_color_name) (ConfigurationFacade* self, const gchar* color_name);
+ gboolean (*get_commit_metadata_to_masters) (ConfigurationFacade* self);
+ void (*set_commit_metadata_to_masters) (ConfigurationFacade* self, gboolean commit_metadata);
+ gchar* (*get_desktop_background) (ConfigurationFacade* self);
+ void (*set_desktop_background) (ConfigurationFacade* self, const gchar* filename);
+ gchar* (*get_screensaver) (ConfigurationFacade* self);
+ void (*set_screensaver) (ConfigurationFacade* self, const gchar* filename);
+ gchar* (*get_directory_pattern) (ConfigurationFacade* self);
+ void (*set_directory_pattern) (ConfigurationFacade* self, const gchar* s);
+ gchar* (*get_directory_pattern_custom) (ConfigurationFacade* self);
+ void (*set_directory_pattern_custom) (ConfigurationFacade* self, const gchar* s);
+ void (*get_direct_window_state) (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+ void (*set_direct_window_state) (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+ gboolean (*get_display_basic_properties) (ConfigurationFacade* self);
+ void (*set_display_basic_properties) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_extended_properties) (ConfigurationFacade* self);
+ void (*set_display_extended_properties) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_sidebar) (ConfigurationFacade* self);
+ void (*set_display_sidebar) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_toolbar) (ConfigurationFacade* self);
+ void (*set_display_toolbar) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_search_bar) (ConfigurationFacade* self);
+ void (*set_display_search_bar) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_ratings) (ConfigurationFacade* self);
+ void (*set_display_photo_ratings) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_tags) (ConfigurationFacade* self);
+ void (*set_display_photo_tags) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_titles) (ConfigurationFacade* self);
+ void (*set_display_photo_titles) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_comments) (ConfigurationFacade* self);
+ void (*set_display_photo_comments) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_event_comments) (ConfigurationFacade* self);
+ void (*set_display_event_comments) (ConfigurationFacade* self, gboolean display);
+ void (*get_event_photos_sort) (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+ void (*set_event_photos_sort) (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+ gboolean (*get_events_sort_ascending) (ConfigurationFacade* self);
+ void (*set_events_sort_ascending) (ConfigurationFacade* self, gboolean sort);
+ gchar* (*get_external_photo_app) (ConfigurationFacade* self);
+ void (*set_external_photo_app) (ConfigurationFacade* self, const gchar* external_photo_app);
+ gchar* (*get_external_raw_app) (ConfigurationFacade* self);
+ void (*set_external_raw_app) (ConfigurationFacade* self, const gchar* external_raw_app);
+ RawDeveloper (*get_default_raw_developer) (ConfigurationFacade* self);
+ void (*set_default_raw_developer) (ConfigurationFacade* self, RawDeveloper d);
+ gboolean (*get_hide_photos_already_imported) (ConfigurationFacade* self);
+ void (*set_hide_photos_already_imported) (ConfigurationFacade* self, gboolean hide_imported);
+ gchar* (*get_import_dir) (ConfigurationFacade* self);
+ void (*set_import_dir) (ConfigurationFacade* self, const gchar* import_dir);
+ gboolean (*get_keep_relativity) (ConfigurationFacade* self);
+ void (*set_keep_relativity) (ConfigurationFacade* self, gboolean keep_relativity);
+ gboolean (*get_pin_toolbar_state) (ConfigurationFacade* self);
+ void (*set_pin_toolbar_state) (ConfigurationFacade* self, gboolean state);
+ gint (*get_last_crop_height) (ConfigurationFacade* self);
+ void (*set_last_crop_height) (ConfigurationFacade* self, gint choice);
+ gint (*get_last_crop_menu_choice) (ConfigurationFacade* self);
+ void (*set_last_crop_menu_choice) (ConfigurationFacade* self, gint choice);
+ gint (*get_last_crop_width) (ConfigurationFacade* self);
+ void (*set_last_crop_width) (ConfigurationFacade* self, gint choice);
+ gchar* (*get_last_used_service) (ConfigurationFacade* self);
+ void (*set_last_used_service) (ConfigurationFacade* self, const gchar* service_name);
+ gchar* (*get_last_used_dataimports_service) (ConfigurationFacade* self);
+ void (*set_last_used_dataimports_service) (ConfigurationFacade* self, const gchar* service_name);
+ void (*get_library_photos_sort) (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+ void (*set_library_photos_sort) (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+ void (*get_library_window_state) (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+ void (*set_library_window_state) (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+ gboolean (*get_modify_originals) (ConfigurationFacade* self);
+ void (*set_modify_originals) (ConfigurationFacade* self, gboolean modify_originals);
+ gint (*get_photo_thumbnail_scale) (ConfigurationFacade* self);
+ void (*set_photo_thumbnail_scale) (ConfigurationFacade* self, gint scale);
+ gdouble (*get_printing_content_height) (ConfigurationFacade* self);
+ void (*set_printing_content_height) (ConfigurationFacade* self, gdouble content_height);
+ gint (*get_printing_content_layout) (ConfigurationFacade* self);
+ void (*set_printing_content_layout) (ConfigurationFacade* self, gint layout_code);
+ gint (*get_printing_content_ppi) (ConfigurationFacade* self);
+ void (*set_printing_content_ppi) (ConfigurationFacade* self, gint content_ppi);
+ gint (*get_printing_content_units) (ConfigurationFacade* self);
+ void (*set_printing_content_units) (ConfigurationFacade* self, gint units_code);
+ gdouble (*get_printing_content_width) (ConfigurationFacade* self);
+ void (*set_printing_content_width) (ConfigurationFacade* self, gdouble content_width);
+ gint (*get_printing_images_per_page) (ConfigurationFacade* self);
+ void (*set_printing_images_per_page) (ConfigurationFacade* self, gint images_per_page_code);
+ gboolean (*get_printing_match_aspect_ratio) (ConfigurationFacade* self);
+ void (*set_printing_match_aspect_ratio) (ConfigurationFacade* self, gboolean match_aspect_ratio);
+ gboolean (*get_printing_print_titles) (ConfigurationFacade* self);
+ void (*set_printing_print_titles) (ConfigurationFacade* self, gboolean print_titles);
+ gint (*get_printing_size_selection) (ConfigurationFacade* self);
+ void (*set_printing_size_selection) (ConfigurationFacade* self, gint size_code);
+ gchar* (*get_printing_titles_font) (ConfigurationFacade* self);
+ void (*set_printing_titles_font) (ConfigurationFacade* self, const gchar* font_name);
+ gboolean (*get_show_welcome_dialog) (ConfigurationFacade* self);
+ void (*set_show_welcome_dialog) (ConfigurationFacade* self, gboolean show);
+ gint (*get_sidebar_position) (ConfigurationFacade* self);
+ void (*set_sidebar_position) (ConfigurationFacade* self, gint position);
+ gdouble (*get_slideshow_delay) (ConfigurationFacade* self);
+ void (*set_slideshow_delay) (ConfigurationFacade* self, gdouble delay);
+ gdouble (*get_slideshow_transition_delay) (ConfigurationFacade* self);
+ void (*set_slideshow_transition_delay) (ConfigurationFacade* self, gdouble delay);
+ gchar* (*get_slideshow_transition_effect_id) (ConfigurationFacade* self);
+ void (*set_slideshow_transition_effect_id) (ConfigurationFacade* self, const gchar* id);
+ gboolean (*get_slideshow_show_title) (ConfigurationFacade* self);
+ void (*set_slideshow_show_title) (ConfigurationFacade* self, gboolean show_title);
+ gboolean (*get_use_24_hour_time) (ConfigurationFacade* self);
+ void (*set_use_24_hour_time) (ConfigurationFacade* self, gboolean use_24_hour_time);
+ gboolean (*get_use_lowercase_filenames) (ConfigurationFacade* self);
+ void (*set_use_lowercase_filenames) (ConfigurationFacade* self, gboolean b);
+ gint (*get_video_interpreter_state_cookie) (ConfigurationFacade* self);
+ void (*set_video_interpreter_state_cookie) (ConfigurationFacade* self, gint state_cookie);
+ gboolean (*get_plugin_bool) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+ void (*set_plugin_bool) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+ gdouble (*get_plugin_double) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+ void (*set_plugin_double) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+ gint (*get_plugin_int) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+ void (*set_plugin_int) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+ gchar* (*get_plugin_string) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+ void (*set_plugin_string) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+ void (*unset_plugin_key) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key);
+ FuzzyPropertyState (*is_plugin_enabled) (ConfigurationFacade* self, const gchar* id);
+ void (*set_plugin_enabled) (ConfigurationFacade* self, const gchar* id, gboolean enabled);
+};
+
+struct _ConfigFacade {
+ ConfigurationFacade parent_instance;
+ ConfigFacadePrivate * priv;
+};
+
+struct _ConfigFacadeClass {
+ ConfigurationFacadeClass parent_class;
+};
+
+struct _ConfigFacadePrivate {
+ gchar* bg_color;
+ gchar* selected_color;
+ gchar* unselected_color;
+ gchar* unfocused_selected_color;
+ gchar* border_color;
+};
+
+typedef enum {
+ CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY = 0,
+ CONFIGURABLE_PROPERTY_BG_COLOR_NAME,
+ CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS,
+ CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE,
+ CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE,
+ CONFIGURABLE_PROPERTY_SCREENSAVER_FILE,
+ CONFIGURABLE_PROPERTY_SCREENSAVER_MODE,
+ CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN,
+ CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH,
+ CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES,
+ CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS,
+ CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES,
+ CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS,
+ CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY,
+ CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP,
+ CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP,
+ CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED,
+ CONFIGURABLE_PROPERTY_IMPORT_DIR,
+ CONFIGURABLE_PROPERTY_KEEP_RELATIVITY,
+ CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT,
+ CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE,
+ CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH,
+ CONFIGURABLE_PROPERTY_LAST_USED_SERVICE,
+ CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE,
+ CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH,
+ CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS,
+ CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE,
+ CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH,
+ CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE,
+ CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO,
+ CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES,
+ CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION,
+ CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT,
+ CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT,
+ CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG,
+ CONFIGURABLE_PROPERTY_SIDEBAR_POSITION,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE,
+ CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME,
+ CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES,
+ CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE,
+ CONFIGURABLE_PROPERTY_NUM_PROPERTIES
+} ConfigurableProperty;
+
+typedef enum {
+ CONFIGURATION_ERROR_PROPERTY_HAS_NO_VALUE,
+ CONFIGURATION_ERROR_ENGINE_ERROR
+} ConfigurationError;
+#define CONFIGURATION_ERROR configuration_error_quark ()
+struct _ConfigurationEngineIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (ConfigurationEngine* self);
+ gint (*get_int_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_int_property) (ConfigurationEngine* self, ConfigurableProperty p, gint val, GError** error);
+ gchar* (*get_string_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_string_property) (ConfigurationEngine* self, ConfigurableProperty p, const gchar* val, GError** error);
+ gboolean (*get_bool_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_bool_property) (ConfigurationEngine* self, ConfigurableProperty p, gboolean val, GError** error);
+ gdouble (*get_double_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_double_property) (ConfigurationEngine* self, ConfigurableProperty p, gdouble val, GError** error);
+ gboolean (*get_plugin_bool) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+ void (*set_plugin_bool) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+ gdouble (*get_plugin_double) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+ void (*set_plugin_double) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+ gint (*get_plugin_int) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+ void (*set_plugin_int) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+ gchar* (*get_plugin_string) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+ void (*set_plugin_string) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+ void (*unset_plugin_key) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key);
+ FuzzyPropertyState (*is_plugin_enabled) (ConfigurationEngine* self, const gchar* id);
+ void (*set_plugin_enabled) (ConfigurationEngine* self, const gchar* id, gboolean enabled);
+};
+
+
+static gpointer config_facade_parent_class = NULL;
+static ConfigFacade* config_facade_instance;
+static ConfigFacade* config_facade_instance = NULL;
+
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType fuzzy_property_state_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+#define CONFIG_FACADE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CONFIG_TYPE_FACADE, ConfigFacadePrivate))
+enum {
+ CONFIG_FACADE_DUMMY_PROPERTY
+};
+#define CONFIG_FACADE_SLIDESHOW_DELAY_MAX 30.0
+#define CONFIG_FACADE_SLIDESHOW_DELAY_MIN 1.0
+#define CONFIG_FACADE_SLIDESHOW_DELAY_DEFAULT 3.0
+#define CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MAX 1.0
+#define CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_MIN 0.1
+#define CONFIG_FACADE_SLIDESHOW_TRANSITION_DELAY_DEFAULT 0.3
+#define CONFIG_FACADE_WIDTH_DEFAULT 1024
+#define CONFIG_FACADE_HEIGHT_DEFAULT 768
+#define CONFIG_FACADE_SIDEBAR_MIN_POSITION 180
+#define CONFIG_FACADE_SIDEBAR_MAX_POSITION 1000
+#define CONFIG_FACADE_DEFAULT_BG_COLOR "#444"
+#define CONFIG_FACADE_NO_VIDEO_INTERPRETER_STATE -1
+#define CONFIG_FACADE_BLACK_THRESHOLD 0.61
+#define CONFIG_FACADE_DARK_SELECTED_COLOR "#0AD"
+#define CONFIG_FACADE_LIGHT_SELECTED_COLOR "#2DF"
+#define CONFIG_FACADE_DARK_UNSELECTED_COLOR "#000"
+#define CONFIG_FACADE_LIGHT_UNSELECTED_COLOR "#FFF"
+#define CONFIG_FACADE_DARK_BORDER_COLOR "#999"
+#define CONFIG_FACADE_LIGHT_BORDER_COLOR "#AAA"
+#define CONFIG_FACADE_DARK_UNFOCUSED_SELECTED_COLOR "#6fc4dd"
+#define CONFIG_FACADE_LIGHT_UNFOCUSED_SELECTED_COLOR "#99efff"
+static ConfigFacade* config_facade_new (void);
+static ConfigFacade* config_facade_construct (GType object_type);
+GSettingsConfigurationEngine* gsettings_configuration_engine_new (void);
+GSettingsConfigurationEngine* gsettings_configuration_engine_construct (GType object_type);
+GType gsettings_configuration_engine_get_type (void) G_GNUC_CONST;
+GType configurable_property_get_type (void) G_GNUC_CONST;
+GQuark configuration_error_quark (void);
+GType configuration_engine_get_type (void) G_GNUC_CONST;
+ConfigurationFacade* configuration_facade_construct (GType object_type, ConfigurationEngine* engine);
+static void config_facade_on_color_name_changed (ConfigFacade* self);
+static void _config_facade_on_color_name_changed_configuration_facade_bg_color_name_changed (ConfigurationFacade* _sender, gpointer self);
+ConfigFacade* config_facade_get_instance (void);
+static void config_facade_set_text_colors (ConfigFacade* self, GdkRGBA* bg_color);
+static void config_facade_get_colors (ConfigFacade* self);
+gchar* configuration_facade_get_bg_color_name (ConfigurationFacade* self);
+gboolean is_color_parsable (const gchar* spec);
+void parse_color (const gchar* spec, GdkRGBA* result);
+void config_facade_get_bg_color (ConfigFacade* self, GdkRGBA* result);
+gboolean is_string_empty (const gchar* s);
+void config_facade_get_selected_color (ConfigFacade* self, gboolean in_focus, GdkRGBA* result);
+void config_facade_get_unselected_color (ConfigFacade* self, GdkRGBA* result);
+void config_facade_get_border_color (ConfigFacade* self, GdkRGBA* result);
+void config_facade_set_bg_color (ConfigFacade* self, GdkRGBA* color);
+void configuration_facade_set_bg_color_name (ConfigurationFacade* self, const gchar* color_name);
+void config_facade_commit_bg_color (ConfigFacade* self);
+static void config_facade_finalize (GObject* obj);
+void config_preconfigure (void);
+void config_init (GError** error);
+void config_terminate (void);
+
+
+static void _config_facade_on_color_name_changed_configuration_facade_bg_color_name_changed (ConfigurationFacade* _sender, gpointer self) {
+#line 55 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_on_color_name_changed ((ConfigFacade*) self);
+#line 410 "Config.c"
+}
+
+
+static ConfigFacade* config_facade_construct (GType object_type) {
+ ConfigFacade * self = NULL;
+ GSettingsConfigurationEngine* _tmp0_ = NULL;
+ GSettingsConfigurationEngine* _tmp1_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = gsettings_configuration_engine_new ();
+#line 53 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = _tmp0_;
+#line 53 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self = (ConfigFacade*) configuration_facade_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_ENGINE, ConfigurationEngine));
+#line 53 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_object_unref0 (_tmp1_);
+#line 55 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), "bg-color-name-changed", (GCallback) _config_facade_on_color_name_changed_configuration_facade_bg_color_name_changed, self, 0);
+#line 52 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return self;
+#line 430 "Config.c"
+}
+
+
+static ConfigFacade* config_facade_new (void) {
+#line 52 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return config_facade_construct (CONFIG_TYPE_FACADE);
+#line 437 "Config.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 444 "Config.c"
+}
+
+
+ConfigFacade* config_facade_get_instance (void) {
+ ConfigFacade* result = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = config_facade_instance;
+#line 59 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp0_ == NULL) {
+#line 457 "Config.c"
+ ConfigFacade* _tmp1_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = config_facade_new ();
+#line 60 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_object_unref0 (config_facade_instance);
+#line 60 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_instance = _tmp1_;
+#line 465 "Config.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = config_facade_instance;
+#line 62 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 62 "/home/jens/Source/shotwell/src/config/Config.vala"
+ result = _tmp3_;
+#line 62 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return result;
+#line 475 "Config.c"
+}
+
+
+static void config_facade_on_color_name_changed (ConfigFacade* self) {
+#line 65 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 66 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_signal_emit_by_name (self, "colors-changed");
+#line 484 "Config.c"
+}
+
+
+static void config_facade_set_text_colors (ConfigFacade* self, GdkRGBA* bg_color) {
+ GdkRGBA _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+#line 69 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 69 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (bg_color != NULL);
+#line 73 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = *bg_color;
+#line 73 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = _tmp0_.red;
+#line 73 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp1_ > CONFIG_FACADE_BLACK_THRESHOLD) {
+#line 501 "Config.c"
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = g_strdup (CONFIG_FACADE_DARK_SELECTED_COLOR);
+#line 74 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->selected_color);
+#line 74 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->selected_color = _tmp2_;
+#line 75 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp3_ = g_strdup (CONFIG_FACADE_DARK_UNSELECTED_COLOR);
+#line 75 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->unselected_color);
+#line 75 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->unselected_color = _tmp3_;
+#line 76 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp4_ = g_strdup (CONFIG_FACADE_DARK_UNFOCUSED_SELECTED_COLOR);
+#line 76 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->unfocused_selected_color);
+#line 76 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->unfocused_selected_color = _tmp4_;
+#line 77 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp5_ = g_strdup (CONFIG_FACADE_DARK_BORDER_COLOR);
+#line 77 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->border_color);
+#line 77 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->border_color = _tmp5_;
+#line 530 "Config.c"
+ } else {
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp6_ = g_strdup (CONFIG_FACADE_LIGHT_SELECTED_COLOR);
+#line 79 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->selected_color);
+#line 79 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->selected_color = _tmp6_;
+#line 80 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp7_ = g_strdup (CONFIG_FACADE_LIGHT_UNSELECTED_COLOR);
+#line 80 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->unselected_color);
+#line 80 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->unselected_color = _tmp7_;
+#line 81 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp8_ = g_strdup (CONFIG_FACADE_LIGHT_UNFOCUSED_SELECTED_COLOR);
+#line 81 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->unfocused_selected_color);
+#line 81 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->unfocused_selected_color = _tmp8_;
+#line 82 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp9_ = g_strdup (CONFIG_FACADE_LIGHT_BORDER_COLOR);
+#line 82 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->border_color);
+#line 82 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->border_color = _tmp9_;
+#line 560 "Config.c"
+ }
+}
+
+
+static void config_facade_get_colors (ConfigFacade* self) {
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ GdkRGBA _tmp5_ = {0};
+#line 86 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 87 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = CONFIGURATION_FACADE_CLASS (config_facade_parent_class)->get_bg_color_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 87 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->bg_color);
+#line 87 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->bg_color = _tmp0_;
+#line 89 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = self->priv->bg_color;
+#line 89 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = is_color_parsable (_tmp1_);
+#line 89 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (!_tmp2_) {
+#line 585 "Config.c"
+ gchar* _tmp3_ = NULL;
+#line 90 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp3_ = g_strdup (CONFIG_FACADE_DEFAULT_BG_COLOR);
+#line 90 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->bg_color);
+#line 90 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->bg_color = _tmp3_;
+#line 593 "Config.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp4_ = self->priv->bg_color;
+#line 92 "/home/jens/Source/shotwell/src/config/Config.vala"
+ parse_color (_tmp4_, &_tmp5_);
+#line 92 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_set_text_colors (self, &_tmp5_);
+#line 601 "Config.c"
+}
+
+
+void config_facade_get_bg_color (ConfigFacade* self, GdkRGBA* result) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ GdkRGBA _tmp3_ = {0};
+#line 95 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 96 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = self->priv->bg_color;
+#line 96 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 96 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp1_) {
+#line 97 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_get_colors (self);
+#line 620 "Config.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = self->priv->bg_color;
+#line 99 "/home/jens/Source/shotwell/src/config/Config.vala"
+ parse_color (_tmp2_, &_tmp3_);
+#line 99 "/home/jens/Source/shotwell/src/config/Config.vala"
+ *result = _tmp3_;
+#line 99 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return;
+#line 630 "Config.c"
+}
+
+
+void config_facade_get_selected_color (ConfigFacade* self, gboolean in_focus, GdkRGBA* result) {
+ gboolean _tmp0_ = FALSE;
+#line 102 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 103 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = in_focus;
+#line 103 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp0_) {
+#line 642 "Config.c"
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ GdkRGBA _tmp4_ = {0};
+#line 104 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = self->priv->selected_color;
+#line 104 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = is_string_empty (_tmp1_);
+#line 104 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp2_) {
+#line 105 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_get_colors (self);
+#line 655 "Config.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp3_ = self->priv->selected_color;
+#line 107 "/home/jens/Source/shotwell/src/config/Config.vala"
+ parse_color (_tmp3_, &_tmp4_);
+#line 107 "/home/jens/Source/shotwell/src/config/Config.vala"
+ *result = _tmp4_;
+#line 107 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return;
+#line 665 "Config.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ const gchar* _tmp7_ = NULL;
+ GdkRGBA _tmp8_ = {0};
+#line 109 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp5_ = self->priv->unfocused_selected_color;
+#line 109 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp6_ = is_string_empty (_tmp5_);
+#line 109 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp6_) {
+#line 110 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_get_colors (self);
+#line 679 "Config.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp7_ = self->priv->unfocused_selected_color;
+#line 112 "/home/jens/Source/shotwell/src/config/Config.vala"
+ parse_color (_tmp7_, &_tmp8_);
+#line 112 "/home/jens/Source/shotwell/src/config/Config.vala"
+ *result = _tmp8_;
+#line 112 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return;
+#line 689 "Config.c"
+ }
+}
+
+
+void config_facade_get_unselected_color (ConfigFacade* self, GdkRGBA* result) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ GdkRGBA _tmp3_ = {0};
+#line 116 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 117 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = self->priv->unselected_color;
+#line 117 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 117 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp1_) {
+#line 118 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_get_colors (self);
+#line 709 "Config.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = self->priv->unselected_color;
+#line 120 "/home/jens/Source/shotwell/src/config/Config.vala"
+ parse_color (_tmp2_, &_tmp3_);
+#line 120 "/home/jens/Source/shotwell/src/config/Config.vala"
+ *result = _tmp3_;
+#line 120 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return;
+#line 719 "Config.c"
+}
+
+
+void config_facade_get_border_color (ConfigFacade* self, GdkRGBA* result) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ GdkRGBA _tmp3_ = {0};
+#line 123 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 124 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = self->priv->border_color;
+#line 124 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 124 "/home/jens/Source/shotwell/src/config/Config.vala"
+ if (_tmp1_) {
+#line 125 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_get_colors (self);
+#line 738 "Config.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = self->priv->border_color;
+#line 127 "/home/jens/Source/shotwell/src/config/Config.vala"
+ parse_color (_tmp2_, &_tmp3_);
+#line 127 "/home/jens/Source/shotwell/src/config/Config.vala"
+ *result = _tmp3_;
+#line 127 "/home/jens/Source/shotwell/src/config/Config.vala"
+ return;
+#line 748 "Config.c"
+}
+
+
+void config_facade_set_bg_color (ConfigFacade* self, GdkRGBA* color) {
+ guint8 col_tmp = 0U;
+ GdkRGBA _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GdkRGBA _tmp4_ = {0};
+#line 130 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 130 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (color != NULL);
+#line 131 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = *color;
+#line 131 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp1_ = _tmp0_.red;
+#line 131 "/home/jens/Source/shotwell/src/config/Config.vala"
+ col_tmp = (guint8) (_tmp1_ * 255.0);
+#line 133 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp2_ = g_strdup_printf ("#%02X%02X%02X", (guint) col_tmp, (guint) col_tmp, (guint) col_tmp);
+#line 133 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->bg_color);
+#line 133 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->bg_color = _tmp2_;
+#line 134 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp3_ = self->priv->bg_color;
+#line 134 "/home/jens/Source/shotwell/src/config/Config.vala"
+ configuration_facade_set_bg_color_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp3_);
+#line 136 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp4_ = *color;
+#line 136 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_set_text_colors (self, &_tmp4_);
+#line 783 "Config.c"
+}
+
+
+void config_facade_commit_bg_color (ConfigFacade* self) {
+ const gchar* _tmp0_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_return_if_fail (CONFIG_IS_FACADE (self));
+#line 140 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _tmp0_ = self->priv->bg_color;
+#line 140 "/home/jens/Source/shotwell/src/config/Config.vala"
+ CONFIGURATION_FACADE_CLASS (config_facade_parent_class)->set_bg_color_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp0_);
+#line 795 "Config.c"
+}
+
+
+static void config_facade_class_init (ConfigFacadeClass * klass) {
+#line 18 "/home/jens/Source/shotwell/src/config/Config.vala"
+ config_facade_parent_class = g_type_class_peek_parent (klass);
+#line 18 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_type_class_add_private (klass, sizeof (ConfigFacadePrivate));
+#line 18 "/home/jens/Source/shotwell/src/config/Config.vala"
+ G_OBJECT_CLASS (klass)->finalize = config_facade_finalize;
+#line 18 "/home/jens/Source/shotwell/src/config/Config.vala"
+ g_signal_new ("colors_changed", CONFIG_TYPE_FACADE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 808 "Config.c"
+}
+
+
+static void config_facade_instance_init (ConfigFacade * self) {
+#line 18 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv = CONFIG_FACADE_GET_PRIVATE (self);
+#line 42 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->bg_color = NULL;
+#line 43 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->selected_color = NULL;
+#line 44 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->unselected_color = NULL;
+#line 45 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->unfocused_selected_color = NULL;
+#line 46 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self->priv->border_color = NULL;
+#line 825 "Config.c"
+}
+
+
+static void config_facade_finalize (GObject* obj) {
+ ConfigFacade * self;
+#line 18 "/home/jens/Source/shotwell/src/config/Config.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, CONFIG_TYPE_FACADE, ConfigFacade);
+#line 42 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->bg_color);
+#line 43 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->selected_color);
+#line 44 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->unselected_color);
+#line 45 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->unfocused_selected_color);
+#line 46 "/home/jens/Source/shotwell/src/config/Config.vala"
+ _g_free0 (self->priv->border_color);
+#line 18 "/home/jens/Source/shotwell/src/config/Config.vala"
+ G_OBJECT_CLASS (config_facade_parent_class)->finalize (obj);
+#line 845 "Config.c"
+}
+
+
+GType config_facade_get_type (void) {
+ static volatile gsize config_facade_type_id__volatile = 0;
+ if (g_once_init_enter (&config_facade_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ConfigFacadeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_facade_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigFacade), 0, (GInstanceInitFunc) config_facade_instance_init, NULL };
+ GType config_facade_type_id;
+ config_facade_type_id = g_type_register_static (TYPE_CONFIGURATION_FACADE, "ConfigFacade", &g_define_type_info, 0);
+ g_once_init_leave (&config_facade_type_id__volatile, config_facade_type_id);
+ }
+ return config_facade_type_id__volatile;
+}
+
+
+void config_preconfigure (void) {
+}
+
+
+void config_init (GError** error) {
+}
+
+
+void config_terminate (void) {
+}
+
+
+
diff --git a/src/config/ConfigurationInterfaces.c b/src/config/ConfigurationInterfaces.c
new file mode 100644
index 0000000..0e35565
--- /dev/null
+++ b/src/config/ConfigurationInterfaces.c
@@ -0,0 +1,12023 @@
+/* ConfigurationInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from ConfigurationInterfaces.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <time.h>
+
+
+#define TYPE_FUZZY_PROPERTY_STATE (fuzzy_property_state_get_type ())
+
+#define TYPE_CONFIGURABLE_PROPERTY (configurable_property_get_type ())
+
+#define TYPE_CONFIGURATION_ENGINE (configuration_engine_get_type ())
+#define CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_ENGINE, ConfigurationEngine))
+#define IS_CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_ENGINE))
+#define CONFIGURATION_ENGINE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONFIGURATION_ENGINE, ConfigurationEngineIface))
+
+typedef struct _ConfigurationEngine ConfigurationEngine;
+typedef struct _ConfigurationEngineIface ConfigurationEngineIface;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+typedef struct _ConfigurationFacadePrivate ConfigurationFacadePrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+typedef enum {
+ CONFIGURATION_ERROR_PROPERTY_HAS_NO_VALUE,
+ CONFIGURATION_ERROR_ENGINE_ERROR
+} ConfigurationError;
+#define CONFIGURATION_ERROR configuration_error_quark ()
+typedef enum {
+ FUZZY_PROPERTY_STATE_ENABLED,
+ FUZZY_PROPERTY_STATE_DISABLED,
+ FUZZY_PROPERTY_STATE_UNKNOWN
+} FuzzyPropertyState;
+
+typedef enum {
+ CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY = 0,
+ CONFIGURABLE_PROPERTY_BG_COLOR_NAME,
+ CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS,
+ CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE,
+ CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE,
+ CONFIGURABLE_PROPERTY_SCREENSAVER_FILE,
+ CONFIGURABLE_PROPERTY_SCREENSAVER_MODE,
+ CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN,
+ CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH,
+ CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES,
+ CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS,
+ CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES,
+ CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS,
+ CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY,
+ CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP,
+ CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP,
+ CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED,
+ CONFIGURABLE_PROPERTY_IMPORT_DIR,
+ CONFIGURABLE_PROPERTY_KEEP_RELATIVITY,
+ CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT,
+ CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE,
+ CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH,
+ CONFIGURABLE_PROPERTY_LAST_USED_SERVICE,
+ CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE,
+ CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH,
+ CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS,
+ CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE,
+ CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH,
+ CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE,
+ CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO,
+ CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES,
+ CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION,
+ CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT,
+ CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT,
+ CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG,
+ CONFIGURABLE_PROPERTY_SIDEBAR_POSITION,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE,
+ CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME,
+ CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES,
+ CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE,
+ CONFIGURABLE_PROPERTY_NUM_PROPERTIES
+} ConfigurableProperty;
+
+struct _ConfigurationEngineIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (ConfigurationEngine* self);
+ gint (*get_int_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_int_property) (ConfigurationEngine* self, ConfigurableProperty p, gint val, GError** error);
+ gchar* (*get_string_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_string_property) (ConfigurationEngine* self, ConfigurableProperty p, const gchar* val, GError** error);
+ gboolean (*get_bool_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_bool_property) (ConfigurationEngine* self, ConfigurableProperty p, gboolean val, GError** error);
+ gdouble (*get_double_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_double_property) (ConfigurationEngine* self, ConfigurableProperty p, gdouble val, GError** error);
+ gboolean (*get_plugin_bool) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+ void (*set_plugin_bool) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+ gdouble (*get_plugin_double) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+ void (*set_plugin_double) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+ gint (*get_plugin_int) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+ void (*set_plugin_int) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+ gchar* (*get_plugin_string) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+ void (*set_plugin_string) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+ void (*unset_plugin_key) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key);
+ FuzzyPropertyState (*is_plugin_enabled) (ConfigurationEngine* self, const gchar* id);
+ void (*set_plugin_enabled) (ConfigurationEngine* self, const gchar* id, gboolean enabled);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _ConfigurationFacade {
+ GObject parent_instance;
+ ConfigurationFacadePrivate * priv;
+};
+
+struct _ConfigurationFacadeClass {
+ GObjectClass parent_class;
+ gboolean (*get_auto_import_from_library) (ConfigurationFacade* self);
+ void (*set_auto_import_from_library) (ConfigurationFacade* self, gboolean auto_import);
+ gchar* (*get_bg_color_name) (ConfigurationFacade* self);
+ void (*set_bg_color_name) (ConfigurationFacade* self, const gchar* color_name);
+ gboolean (*get_commit_metadata_to_masters) (ConfigurationFacade* self);
+ void (*set_commit_metadata_to_masters) (ConfigurationFacade* self, gboolean commit_metadata);
+ gchar* (*get_desktop_background) (ConfigurationFacade* self);
+ void (*set_desktop_background) (ConfigurationFacade* self, const gchar* filename);
+ gchar* (*get_screensaver) (ConfigurationFacade* self);
+ void (*set_screensaver) (ConfigurationFacade* self, const gchar* filename);
+ gchar* (*get_directory_pattern) (ConfigurationFacade* self);
+ void (*set_directory_pattern) (ConfigurationFacade* self, const gchar* s);
+ gchar* (*get_directory_pattern_custom) (ConfigurationFacade* self);
+ void (*set_directory_pattern_custom) (ConfigurationFacade* self, const gchar* s);
+ void (*get_direct_window_state) (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+ void (*set_direct_window_state) (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+ gboolean (*get_display_basic_properties) (ConfigurationFacade* self);
+ void (*set_display_basic_properties) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_extended_properties) (ConfigurationFacade* self);
+ void (*set_display_extended_properties) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_sidebar) (ConfigurationFacade* self);
+ void (*set_display_sidebar) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_toolbar) (ConfigurationFacade* self);
+ void (*set_display_toolbar) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_search_bar) (ConfigurationFacade* self);
+ void (*set_display_search_bar) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_ratings) (ConfigurationFacade* self);
+ void (*set_display_photo_ratings) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_tags) (ConfigurationFacade* self);
+ void (*set_display_photo_tags) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_titles) (ConfigurationFacade* self);
+ void (*set_display_photo_titles) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_photo_comments) (ConfigurationFacade* self);
+ void (*set_display_photo_comments) (ConfigurationFacade* self, gboolean display);
+ gboolean (*get_display_event_comments) (ConfigurationFacade* self);
+ void (*set_display_event_comments) (ConfigurationFacade* self, gboolean display);
+ void (*get_event_photos_sort) (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+ void (*set_event_photos_sort) (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+ gboolean (*get_events_sort_ascending) (ConfigurationFacade* self);
+ void (*set_events_sort_ascending) (ConfigurationFacade* self, gboolean sort);
+ gchar* (*get_external_photo_app) (ConfigurationFacade* self);
+ void (*set_external_photo_app) (ConfigurationFacade* self, const gchar* external_photo_app);
+ gchar* (*get_external_raw_app) (ConfigurationFacade* self);
+ void (*set_external_raw_app) (ConfigurationFacade* self, const gchar* external_raw_app);
+ RawDeveloper (*get_default_raw_developer) (ConfigurationFacade* self);
+ void (*set_default_raw_developer) (ConfigurationFacade* self, RawDeveloper d);
+ gboolean (*get_hide_photos_already_imported) (ConfigurationFacade* self);
+ void (*set_hide_photos_already_imported) (ConfigurationFacade* self, gboolean hide_imported);
+ gchar* (*get_import_dir) (ConfigurationFacade* self);
+ void (*set_import_dir) (ConfigurationFacade* self, const gchar* import_dir);
+ gboolean (*get_keep_relativity) (ConfigurationFacade* self);
+ void (*set_keep_relativity) (ConfigurationFacade* self, gboolean keep_relativity);
+ gboolean (*get_pin_toolbar_state) (ConfigurationFacade* self);
+ void (*set_pin_toolbar_state) (ConfigurationFacade* self, gboolean state);
+ gint (*get_last_crop_height) (ConfigurationFacade* self);
+ void (*set_last_crop_height) (ConfigurationFacade* self, gint choice);
+ gint (*get_last_crop_menu_choice) (ConfigurationFacade* self);
+ void (*set_last_crop_menu_choice) (ConfigurationFacade* self, gint choice);
+ gint (*get_last_crop_width) (ConfigurationFacade* self);
+ void (*set_last_crop_width) (ConfigurationFacade* self, gint choice);
+ gchar* (*get_last_used_service) (ConfigurationFacade* self);
+ void (*set_last_used_service) (ConfigurationFacade* self, const gchar* service_name);
+ gchar* (*get_last_used_dataimports_service) (ConfigurationFacade* self);
+ void (*set_last_used_dataimports_service) (ConfigurationFacade* self, const gchar* service_name);
+ void (*get_library_photos_sort) (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+ void (*set_library_photos_sort) (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+ void (*get_library_window_state) (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+ void (*set_library_window_state) (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+ gboolean (*get_modify_originals) (ConfigurationFacade* self);
+ void (*set_modify_originals) (ConfigurationFacade* self, gboolean modify_originals);
+ gint (*get_photo_thumbnail_scale) (ConfigurationFacade* self);
+ void (*set_photo_thumbnail_scale) (ConfigurationFacade* self, gint scale);
+ gdouble (*get_printing_content_height) (ConfigurationFacade* self);
+ void (*set_printing_content_height) (ConfigurationFacade* self, gdouble content_height);
+ gint (*get_printing_content_layout) (ConfigurationFacade* self);
+ void (*set_printing_content_layout) (ConfigurationFacade* self, gint layout_code);
+ gint (*get_printing_content_ppi) (ConfigurationFacade* self);
+ void (*set_printing_content_ppi) (ConfigurationFacade* self, gint content_ppi);
+ gint (*get_printing_content_units) (ConfigurationFacade* self);
+ void (*set_printing_content_units) (ConfigurationFacade* self, gint units_code);
+ gdouble (*get_printing_content_width) (ConfigurationFacade* self);
+ void (*set_printing_content_width) (ConfigurationFacade* self, gdouble content_width);
+ gint (*get_printing_images_per_page) (ConfigurationFacade* self);
+ void (*set_printing_images_per_page) (ConfigurationFacade* self, gint images_per_page_code);
+ gboolean (*get_printing_match_aspect_ratio) (ConfigurationFacade* self);
+ void (*set_printing_match_aspect_ratio) (ConfigurationFacade* self, gboolean match_aspect_ratio);
+ gboolean (*get_printing_print_titles) (ConfigurationFacade* self);
+ void (*set_printing_print_titles) (ConfigurationFacade* self, gboolean print_titles);
+ gint (*get_printing_size_selection) (ConfigurationFacade* self);
+ void (*set_printing_size_selection) (ConfigurationFacade* self, gint size_code);
+ gchar* (*get_printing_titles_font) (ConfigurationFacade* self);
+ void (*set_printing_titles_font) (ConfigurationFacade* self, const gchar* font_name);
+ gboolean (*get_show_welcome_dialog) (ConfigurationFacade* self);
+ void (*set_show_welcome_dialog) (ConfigurationFacade* self, gboolean show);
+ gint (*get_sidebar_position) (ConfigurationFacade* self);
+ void (*set_sidebar_position) (ConfigurationFacade* self, gint position);
+ gdouble (*get_slideshow_delay) (ConfigurationFacade* self);
+ void (*set_slideshow_delay) (ConfigurationFacade* self, gdouble delay);
+ gdouble (*get_slideshow_transition_delay) (ConfigurationFacade* self);
+ void (*set_slideshow_transition_delay) (ConfigurationFacade* self, gdouble delay);
+ gchar* (*get_slideshow_transition_effect_id) (ConfigurationFacade* self);
+ void (*set_slideshow_transition_effect_id) (ConfigurationFacade* self, const gchar* id);
+ gboolean (*get_slideshow_show_title) (ConfigurationFacade* self);
+ void (*set_slideshow_show_title) (ConfigurationFacade* self, gboolean show_title);
+ gboolean (*get_use_24_hour_time) (ConfigurationFacade* self);
+ void (*set_use_24_hour_time) (ConfigurationFacade* self, gboolean use_24_hour_time);
+ gboolean (*get_use_lowercase_filenames) (ConfigurationFacade* self);
+ void (*set_use_lowercase_filenames) (ConfigurationFacade* self, gboolean b);
+ gint (*get_video_interpreter_state_cookie) (ConfigurationFacade* self);
+ void (*set_video_interpreter_state_cookie) (ConfigurationFacade* self, gint state_cookie);
+ gboolean (*get_plugin_bool) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+ void (*set_plugin_bool) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+ gdouble (*get_plugin_double) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+ void (*set_plugin_double) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+ gint (*get_plugin_int) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+ void (*set_plugin_int) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+ gchar* (*get_plugin_string) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+ void (*set_plugin_string) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+ void (*unset_plugin_key) (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key);
+ FuzzyPropertyState (*is_plugin_enabled) (ConfigurationFacade* self, const gchar* id);
+ void (*set_plugin_enabled) (ConfigurationFacade* self, const gchar* id, gboolean enabled);
+};
+
+struct _ConfigurationFacadePrivate {
+ ConfigurationEngine* engine;
+};
+
+
+static gpointer configuration_facade_parent_class = NULL;
+
+GQuark configuration_error_quark (void);
+GType fuzzy_property_state_get_type (void) G_GNUC_CONST;
+GType configurable_property_get_type (void) G_GNUC_CONST;
+gchar* configurable_property_to_string (ConfigurableProperty self);
+GType configuration_engine_get_type (void) G_GNUC_CONST;
+gchar* configuration_engine_get_name (ConfigurationEngine* self);
+gint configuration_engine_get_int_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+void configuration_engine_set_int_property (ConfigurationEngine* self, ConfigurableProperty p, gint val, GError** error);
+gchar* configuration_engine_get_string_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+void configuration_engine_set_string_property (ConfigurationEngine* self, ConfigurableProperty p, const gchar* val, GError** error);
+gboolean configuration_engine_get_bool_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+void configuration_engine_set_bool_property (ConfigurationEngine* self, ConfigurableProperty p, gboolean val, GError** error);
+gdouble configuration_engine_get_double_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+void configuration_engine_set_double_property (ConfigurationEngine* self, ConfigurableProperty p, gdouble val, GError** error);
+gboolean configuration_engine_get_plugin_bool (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+void configuration_engine_set_plugin_bool (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+gdouble configuration_engine_get_plugin_double (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+void configuration_engine_set_plugin_double (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+gint configuration_engine_get_plugin_int (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+void configuration_engine_set_plugin_int (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+gchar* configuration_engine_get_plugin_string (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+void configuration_engine_set_plugin_string (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+void configuration_engine_unset_plugin_key (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key);
+FuzzyPropertyState configuration_engine_is_plugin_enabled (ConfigurationEngine* self, const gchar* id);
+void configuration_engine_set_plugin_enabled (ConfigurationEngine* self, const gchar* id, gboolean enabled);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+#define CONFIGURATION_FACADE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIGURATION_FACADE, ConfigurationFacadePrivate))
+enum {
+ CONFIGURATION_FACADE_DUMMY_PROPERTY
+};
+ConfigurationFacade* configuration_facade_construct (GType object_type, ConfigurationEngine* engine);
+static void configuration_facade_on_property_changed (ConfigurationFacade* self, ConfigurableProperty p);
+static void _configuration_facade_on_property_changed_configuration_engine_property_changed (ConfigurationEngine* _sender, ConfigurableProperty p, gpointer self);
+ConfigurationEngine* configuration_facade_get_engine (ConfigurationFacade* self);
+void configuration_facade_on_configuration_error (ConfigurationFacade* self, GError* err);
+gboolean configuration_facade_get_auto_import_from_library (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_auto_import_from_library (ConfigurationFacade* self);
+void configuration_facade_set_auto_import_from_library (ConfigurationFacade* self, gboolean auto_import);
+static void configuration_facade_real_set_auto_import_from_library (ConfigurationFacade* self, gboolean auto_import);
+gchar* configuration_facade_get_bg_color_name (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_bg_color_name (ConfigurationFacade* self);
+void configuration_facade_set_bg_color_name (ConfigurationFacade* self, const gchar* color_name);
+static void configuration_facade_real_set_bg_color_name (ConfigurationFacade* self, const gchar* color_name);
+gboolean configuration_facade_get_commit_metadata_to_masters (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_commit_metadata_to_masters (ConfigurationFacade* self);
+void configuration_facade_set_commit_metadata_to_masters (ConfigurationFacade* self, gboolean commit_metadata);
+static void configuration_facade_real_set_commit_metadata_to_masters (ConfigurationFacade* self, gboolean commit_metadata);
+gchar* configuration_facade_get_desktop_background (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_desktop_background (ConfigurationFacade* self);
+void configuration_facade_set_desktop_background (ConfigurationFacade* self, const gchar* filename);
+static void configuration_facade_real_set_desktop_background (ConfigurationFacade* self, const gchar* filename);
+gchar* configuration_facade_get_screensaver (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_screensaver (ConfigurationFacade* self);
+void configuration_facade_set_screensaver (ConfigurationFacade* self, const gchar* filename);
+static void configuration_facade_real_set_screensaver (ConfigurationFacade* self, const gchar* filename);
+gchar* configuration_facade_get_directory_pattern (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_directory_pattern (ConfigurationFacade* self);
+void configuration_facade_set_directory_pattern (ConfigurationFacade* self, const gchar* s);
+static void configuration_facade_real_set_directory_pattern (ConfigurationFacade* self, const gchar* s);
+gchar* configuration_facade_get_directory_pattern_custom (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_directory_pattern_custom (ConfigurationFacade* self);
+void configuration_facade_set_directory_pattern_custom (ConfigurationFacade* self, const gchar* s);
+static void configuration_facade_real_set_directory_pattern_custom (ConfigurationFacade* self, const gchar* s);
+void configuration_facade_get_direct_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+static void configuration_facade_real_get_direct_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void configuration_facade_set_direct_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+static void configuration_facade_real_set_direct_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+gboolean configuration_facade_get_display_basic_properties (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_basic_properties (ConfigurationFacade* self);
+void configuration_facade_set_display_basic_properties (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_basic_properties (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_extended_properties (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_extended_properties (ConfigurationFacade* self);
+void configuration_facade_set_display_extended_properties (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_extended_properties (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_sidebar (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_sidebar (ConfigurationFacade* self);
+void configuration_facade_set_display_sidebar (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_sidebar (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_toolbar (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_toolbar (ConfigurationFacade* self);
+void configuration_facade_set_display_toolbar (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_toolbar (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_search_bar (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_search_bar (ConfigurationFacade* self);
+void configuration_facade_set_display_search_bar (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_search_bar (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_photo_ratings (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_photo_ratings (ConfigurationFacade* self);
+void configuration_facade_set_display_photo_ratings (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_photo_ratings (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_photo_tags (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_photo_tags (ConfigurationFacade* self);
+void configuration_facade_set_display_photo_tags (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_photo_tags (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_photo_titles (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_photo_titles (ConfigurationFacade* self);
+void configuration_facade_set_display_photo_titles (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_photo_titles (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_photo_comments (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_photo_comments (ConfigurationFacade* self);
+void configuration_facade_set_display_photo_comments (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_photo_comments (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_event_comments (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_display_event_comments (ConfigurationFacade* self);
+void configuration_facade_set_display_event_comments (ConfigurationFacade* self, gboolean display);
+static void configuration_facade_real_set_display_event_comments (ConfigurationFacade* self, gboolean display);
+void configuration_facade_get_event_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void configuration_facade_real_get_event_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+void configuration_facade_set_event_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+static void configuration_facade_real_set_event_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+gboolean configuration_facade_get_events_sort_ascending (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_events_sort_ascending (ConfigurationFacade* self);
+void configuration_facade_set_events_sort_ascending (ConfigurationFacade* self, gboolean sort);
+static void configuration_facade_real_set_events_sort_ascending (ConfigurationFacade* self, gboolean sort);
+gchar* configuration_facade_get_external_photo_app (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_external_photo_app (ConfigurationFacade* self);
+void configuration_facade_set_external_photo_app (ConfigurationFacade* self, const gchar* external_photo_app);
+static void configuration_facade_real_set_external_photo_app (ConfigurationFacade* self, const gchar* external_photo_app);
+gchar* configuration_facade_get_external_raw_app (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_external_raw_app (ConfigurationFacade* self);
+void configuration_facade_set_external_raw_app (ConfigurationFacade* self, const gchar* external_raw_app);
+static void configuration_facade_real_set_external_raw_app (ConfigurationFacade* self, const gchar* external_raw_app);
+RawDeveloper configuration_facade_get_default_raw_developer (ConfigurationFacade* self);
+static RawDeveloper configuration_facade_real_get_default_raw_developer (ConfigurationFacade* self);
+RawDeveloper raw_developer_from_string (const gchar* value);
+void configuration_facade_set_default_raw_developer (ConfigurationFacade* self, RawDeveloper d);
+static void configuration_facade_real_set_default_raw_developer (ConfigurationFacade* self, RawDeveloper d);
+gchar* raw_developer_to_string (RawDeveloper self);
+gboolean configuration_facade_get_hide_photos_already_imported (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_hide_photos_already_imported (ConfigurationFacade* self);
+void configuration_facade_set_hide_photos_already_imported (ConfigurationFacade* self, gboolean hide_imported);
+static void configuration_facade_real_set_hide_photos_already_imported (ConfigurationFacade* self, gboolean hide_imported);
+gchar* configuration_facade_get_import_dir (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_import_dir (ConfigurationFacade* self);
+void configuration_facade_set_import_dir (ConfigurationFacade* self, const gchar* import_dir);
+static void configuration_facade_real_set_import_dir (ConfigurationFacade* self, const gchar* import_dir);
+gboolean configuration_facade_get_keep_relativity (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_keep_relativity (ConfigurationFacade* self);
+void configuration_facade_set_keep_relativity (ConfigurationFacade* self, gboolean keep_relativity);
+static void configuration_facade_real_set_keep_relativity (ConfigurationFacade* self, gboolean keep_relativity);
+gboolean configuration_facade_get_pin_toolbar_state (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_pin_toolbar_state (ConfigurationFacade* self);
+void configuration_facade_set_pin_toolbar_state (ConfigurationFacade* self, gboolean state);
+static void configuration_facade_real_set_pin_toolbar_state (ConfigurationFacade* self, gboolean state);
+gint configuration_facade_get_last_crop_height (ConfigurationFacade* self);
+static gint configuration_facade_real_get_last_crop_height (ConfigurationFacade* self);
+void configuration_facade_set_last_crop_height (ConfigurationFacade* self, gint choice);
+static void configuration_facade_real_set_last_crop_height (ConfigurationFacade* self, gint choice);
+gint configuration_facade_get_last_crop_menu_choice (ConfigurationFacade* self);
+static gint configuration_facade_real_get_last_crop_menu_choice (ConfigurationFacade* self);
+void configuration_facade_set_last_crop_menu_choice (ConfigurationFacade* self, gint choice);
+static void configuration_facade_real_set_last_crop_menu_choice (ConfigurationFacade* self, gint choice);
+gint configuration_facade_get_last_crop_width (ConfigurationFacade* self);
+static gint configuration_facade_real_get_last_crop_width (ConfigurationFacade* self);
+void configuration_facade_set_last_crop_width (ConfigurationFacade* self, gint choice);
+static void configuration_facade_real_set_last_crop_width (ConfigurationFacade* self, gint choice);
+gchar* configuration_facade_get_last_used_service (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_last_used_service (ConfigurationFacade* self);
+void configuration_facade_set_last_used_service (ConfigurationFacade* self, const gchar* service_name);
+static void configuration_facade_real_set_last_used_service (ConfigurationFacade* self, const gchar* service_name);
+gchar* configuration_facade_get_last_used_dataimports_service (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_last_used_dataimports_service (ConfigurationFacade* self);
+void configuration_facade_set_last_used_dataimports_service (ConfigurationFacade* self, const gchar* service_name);
+static void configuration_facade_real_set_last_used_dataimports_service (ConfigurationFacade* self, const gchar* service_name);
+void configuration_facade_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void configuration_facade_real_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+void configuration_facade_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+static void configuration_facade_real_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+void configuration_facade_get_library_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+static void configuration_facade_real_get_library_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions);
+void configuration_facade_set_library_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+static void configuration_facade_real_set_library_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+gboolean configuration_facade_get_modify_originals (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_modify_originals (ConfigurationFacade* self);
+void configuration_facade_set_modify_originals (ConfigurationFacade* self, gboolean modify_originals);
+static void configuration_facade_real_set_modify_originals (ConfigurationFacade* self, gboolean modify_originals);
+gint configuration_facade_get_photo_thumbnail_scale (ConfigurationFacade* self);
+static gint configuration_facade_real_get_photo_thumbnail_scale (ConfigurationFacade* self);
+gint thumbnail_get_DEFAULT_SCALE (void);
+void configuration_facade_set_photo_thumbnail_scale (ConfigurationFacade* self, gint scale);
+static void configuration_facade_real_set_photo_thumbnail_scale (ConfigurationFacade* self, gint scale);
+gdouble configuration_facade_get_printing_content_height (ConfigurationFacade* self);
+static gdouble configuration_facade_real_get_printing_content_height (ConfigurationFacade* self);
+void configuration_facade_set_printing_content_height (ConfigurationFacade* self, gdouble content_height);
+static void configuration_facade_real_set_printing_content_height (ConfigurationFacade* self, gdouble content_height);
+gint configuration_facade_get_printing_content_layout (ConfigurationFacade* self);
+static gint configuration_facade_real_get_printing_content_layout (ConfigurationFacade* self);
+void configuration_facade_set_printing_content_layout (ConfigurationFacade* self, gint layout_code);
+static void configuration_facade_real_set_printing_content_layout (ConfigurationFacade* self, gint layout_code);
+gint configuration_facade_get_printing_content_ppi (ConfigurationFacade* self);
+static gint configuration_facade_real_get_printing_content_ppi (ConfigurationFacade* self);
+void configuration_facade_set_printing_content_ppi (ConfigurationFacade* self, gint content_ppi);
+static void configuration_facade_real_set_printing_content_ppi (ConfigurationFacade* self, gint content_ppi);
+gint configuration_facade_get_printing_content_units (ConfigurationFacade* self);
+static gint configuration_facade_real_get_printing_content_units (ConfigurationFacade* self);
+void configuration_facade_set_printing_content_units (ConfigurationFacade* self, gint units_code);
+static void configuration_facade_real_set_printing_content_units (ConfigurationFacade* self, gint units_code);
+gdouble configuration_facade_get_printing_content_width (ConfigurationFacade* self);
+static gdouble configuration_facade_real_get_printing_content_width (ConfigurationFacade* self);
+void configuration_facade_set_printing_content_width (ConfigurationFacade* self, gdouble content_width);
+static void configuration_facade_real_set_printing_content_width (ConfigurationFacade* self, gdouble content_width);
+gint configuration_facade_get_printing_images_per_page (ConfigurationFacade* self);
+static gint configuration_facade_real_get_printing_images_per_page (ConfigurationFacade* self);
+void configuration_facade_set_printing_images_per_page (ConfigurationFacade* self, gint images_per_page_code);
+static void configuration_facade_real_set_printing_images_per_page (ConfigurationFacade* self, gint images_per_page_code);
+gboolean configuration_facade_get_printing_match_aspect_ratio (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_printing_match_aspect_ratio (ConfigurationFacade* self);
+void configuration_facade_set_printing_match_aspect_ratio (ConfigurationFacade* self, gboolean match_aspect_ratio);
+static void configuration_facade_real_set_printing_match_aspect_ratio (ConfigurationFacade* self, gboolean match_aspect_ratio);
+gboolean configuration_facade_get_printing_print_titles (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_printing_print_titles (ConfigurationFacade* self);
+void configuration_facade_set_printing_print_titles (ConfigurationFacade* self, gboolean print_titles);
+static void configuration_facade_real_set_printing_print_titles (ConfigurationFacade* self, gboolean print_titles);
+gint configuration_facade_get_printing_size_selection (ConfigurationFacade* self);
+static gint configuration_facade_real_get_printing_size_selection (ConfigurationFacade* self);
+void configuration_facade_set_printing_size_selection (ConfigurationFacade* self, gint size_code);
+static void configuration_facade_real_set_printing_size_selection (ConfigurationFacade* self, gint size_code);
+gchar* configuration_facade_get_printing_titles_font (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_printing_titles_font (ConfigurationFacade* self);
+void configuration_facade_set_printing_titles_font (ConfigurationFacade* self, const gchar* font_name);
+static void configuration_facade_real_set_printing_titles_font (ConfigurationFacade* self, const gchar* font_name);
+gboolean configuration_facade_get_show_welcome_dialog (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_show_welcome_dialog (ConfigurationFacade* self);
+void configuration_facade_set_show_welcome_dialog (ConfigurationFacade* self, gboolean show);
+static void configuration_facade_real_set_show_welcome_dialog (ConfigurationFacade* self, gboolean show);
+gint configuration_facade_get_sidebar_position (ConfigurationFacade* self);
+static gint configuration_facade_real_get_sidebar_position (ConfigurationFacade* self);
+void configuration_facade_set_sidebar_position (ConfigurationFacade* self, gint position);
+static void configuration_facade_real_set_sidebar_position (ConfigurationFacade* self, gint position);
+gdouble configuration_facade_get_slideshow_delay (ConfigurationFacade* self);
+static gdouble configuration_facade_real_get_slideshow_delay (ConfigurationFacade* self);
+void configuration_facade_set_slideshow_delay (ConfigurationFacade* self, gdouble delay);
+static void configuration_facade_real_set_slideshow_delay (ConfigurationFacade* self, gdouble delay);
+gdouble configuration_facade_get_slideshow_transition_delay (ConfigurationFacade* self);
+static gdouble configuration_facade_real_get_slideshow_transition_delay (ConfigurationFacade* self);
+void configuration_facade_set_slideshow_transition_delay (ConfigurationFacade* self, gdouble delay);
+static void configuration_facade_real_set_slideshow_transition_delay (ConfigurationFacade* self, gdouble delay);
+gchar* configuration_facade_get_slideshow_transition_effect_id (ConfigurationFacade* self);
+static gchar* configuration_facade_real_get_slideshow_transition_effect_id (ConfigurationFacade* self);
+#define NULL_TRANSITION_DESCRIPTOR_EFFECT_ID "org.yorba.shotwell.transitions.null"
+#define TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID NULL_TRANSITION_DESCRIPTOR_EFFECT_ID
+void configuration_facade_set_slideshow_transition_effect_id (ConfigurationFacade* self, const gchar* id);
+static void configuration_facade_real_set_slideshow_transition_effect_id (ConfigurationFacade* self, const gchar* id);
+gboolean configuration_facade_get_slideshow_show_title (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_slideshow_show_title (ConfigurationFacade* self);
+void configuration_facade_set_slideshow_show_title (ConfigurationFacade* self, gboolean show_title);
+static void configuration_facade_real_set_slideshow_show_title (ConfigurationFacade* self, gboolean show_title);
+gboolean configuration_facade_get_use_24_hour_time (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_use_24_hour_time (ConfigurationFacade* self);
+gboolean is_string_empty (const gchar* s);
+void configuration_facade_set_use_24_hour_time (ConfigurationFacade* self, gboolean use_24_hour_time);
+static void configuration_facade_real_set_use_24_hour_time (ConfigurationFacade* self, gboolean use_24_hour_time);
+gboolean configuration_facade_get_use_lowercase_filenames (ConfigurationFacade* self);
+static gboolean configuration_facade_real_get_use_lowercase_filenames (ConfigurationFacade* self);
+void configuration_facade_set_use_lowercase_filenames (ConfigurationFacade* self, gboolean b);
+static void configuration_facade_real_set_use_lowercase_filenames (ConfigurationFacade* self, gboolean b);
+gint configuration_facade_get_video_interpreter_state_cookie (ConfigurationFacade* self);
+static gint configuration_facade_real_get_video_interpreter_state_cookie (ConfigurationFacade* self);
+void configuration_facade_set_video_interpreter_state_cookie (ConfigurationFacade* self, gint state_cookie);
+static void configuration_facade_real_set_video_interpreter_state_cookie (ConfigurationFacade* self, gint state_cookie);
+gboolean configuration_facade_get_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+static gboolean configuration_facade_real_get_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+void configuration_facade_set_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+static void configuration_facade_real_set_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+gdouble configuration_facade_get_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+static gdouble configuration_facade_real_get_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+void configuration_facade_set_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+static void configuration_facade_real_set_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+gint configuration_facade_get_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+static gint configuration_facade_real_get_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+void configuration_facade_set_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+static void configuration_facade_real_set_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+gchar* configuration_facade_get_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+static gchar* configuration_facade_real_get_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+void configuration_facade_set_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+static void configuration_facade_real_set_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+void configuration_facade_unset_plugin_key (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key);
+static void configuration_facade_real_unset_plugin_key (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key);
+FuzzyPropertyState configuration_facade_is_plugin_enabled (ConfigurationFacade* self, const gchar* id);
+static FuzzyPropertyState configuration_facade_real_is_plugin_enabled (ConfigurationFacade* self, const gchar* id);
+void configuration_facade_set_plugin_enabled (ConfigurationFacade* self, const gchar* id, gboolean enabled);
+static void configuration_facade_real_set_plugin_enabled (ConfigurationFacade* self, const gchar* id, gboolean enabled);
+static void configuration_facade_finalize (GObject* obj);
+
+
+GQuark configuration_error_quark (void) {
+ return g_quark_from_static_string ("configuration_error-quark");
+}
+
+
+GType fuzzy_property_state_get_type (void) {
+ static volatile gsize fuzzy_property_state_type_id__volatile = 0;
+ if (g_once_init_enter (&fuzzy_property_state_type_id__volatile)) {
+ static const GEnumValue values[] = {{FUZZY_PROPERTY_STATE_ENABLED, "FUZZY_PROPERTY_STATE_ENABLED", "enabled"}, {FUZZY_PROPERTY_STATE_DISABLED, "FUZZY_PROPERTY_STATE_DISABLED", "disabled"}, {FUZZY_PROPERTY_STATE_UNKNOWN, "FUZZY_PROPERTY_STATE_UNKNOWN", "unknown"}, {0, NULL, NULL}};
+ GType fuzzy_property_state_type_id;
+ fuzzy_property_state_type_id = g_enum_register_static ("FuzzyPropertyState", values);
+ g_once_init_leave (&fuzzy_property_state_type_id__volatile, fuzzy_property_state_type_id);
+ }
+ return fuzzy_property_state_type_id__volatile;
+}
+
+
+gchar* configurable_property_to_string (ConfigurableProperty self) {
+ gchar* result = NULL;
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ switch (self) {
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY:
+#line 615 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = g_strdup ("AUTO_IMPORT_FROM_LIBRARY");
+#line 93 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 93 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 624 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_BG_COLOR_NAME:
+#line 628 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = g_strdup ("BG_COLOR_NAME");
+#line 96 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp1_;
+#line 96 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 637 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS:
+#line 641 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = g_strdup ("COMMIT_METADATA_TO_MASTERS");
+#line 99 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp2_;
+#line 99 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 650 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE:
+#line 654 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = g_strdup ("DESKTOP_BACKGROUND_FILE");
+#line 102 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp3_;
+#line 102 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 663 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE:
+#line 667 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = g_strdup ("DESKTOP_BACKGROUND_MODE");
+#line 105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp4_;
+#line 105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 676 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SCREENSAVER_FILE:
+#line 680 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = g_strdup ("SCREENSAVER_FILE");
+#line 108 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 108 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 689 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SCREENSAVER_MODE:
+#line 693 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp6_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = g_strdup ("SCREENSAVER_MODE");
+#line 111 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp6_;
+#line 111 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 702 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN:
+#line 706 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp7_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("DIRECTORY_PATTERN");
+#line 114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 715 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM:
+#line 719 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp8_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = g_strdup ("DIRECTORY_PATTERN_CUSTOM");
+#line 117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp8_;
+#line 117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 728 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT:
+#line 732 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp9_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = g_strdup ("DIRECT_WINDOW_HEIGHT");
+#line 120 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp9_;
+#line 120 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 741 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE:
+#line 745 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp10_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = g_strdup ("DIRECT_WINDOW_MAXIMIZE");
+#line 123 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp10_;
+#line 123 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 754 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH:
+#line 758 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp11_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp11_ = g_strdup ("DIRECT_WINDOW_WIDTH");
+#line 126 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp11_;
+#line 126 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 767 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES:
+#line 771 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp12_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp12_ = g_strdup ("DISPLAY_BASIC_PROPERTIES");
+#line 129 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp12_;
+#line 129 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 780 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES:
+#line 784 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp13_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp13_ = g_strdup ("DISPLAY_EXTENDED_PROPERTIES");
+#line 132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp13_;
+#line 132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 793 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR:
+#line 797 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp14_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp14_ = g_strdup ("DISPLAY_SIDEBAR");
+#line 135 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp14_;
+#line 135 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 806 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR:
+#line 810 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp15_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp15_ = g_strdup ("DISPLAY_TOOLBAR");
+#line 138 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp15_;
+#line 138 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 819 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR:
+#line 823 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp16_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp16_ = g_strdup ("DISPLAY_SEARCH_BAR");
+#line 141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp16_;
+#line 141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 832 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS:
+#line 836 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp17_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp17_ = g_strdup ("DISPLAY_PHOTO_RATINGS");
+#line 144 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp17_;
+#line 144 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 845 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS:
+#line 849 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp18_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp18_ = g_strdup ("DISPLAY_PHOTO_TAGS");
+#line 147 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp18_;
+#line 147 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 858 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES:
+#line 862 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp19_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp19_ = g_strdup ("DISPLAY_PHOTO_TITLES");
+#line 150 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp19_;
+#line 150 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 871 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS:
+#line 875 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp20_ = NULL;
+#line 153 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp20_ = g_strdup ("DISPLAY_PHOTO_COMMENTS");
+#line 153 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp20_;
+#line 153 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 884 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS:
+#line 888 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp21_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp21_ = g_strdup ("DISPLAY_EVENT_COMMENTS");
+#line 156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp21_;
+#line 156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 897 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING:
+#line 901 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp22_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp22_ = g_strdup ("EVENT_PHOTOS_SORT_ASCENDING");
+#line 159 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp22_;
+#line 159 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 910 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY:
+#line 914 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp23_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp23_ = g_strdup ("EVENT_PHOTOS_SORT_BY");
+#line 162 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp23_;
+#line 162 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 923 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING:
+#line 927 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp24_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp24_ = g_strdup ("EVENTS_SORT_ASCENDING");
+#line 165 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp24_;
+#line 165 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 936 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP:
+#line 940 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp25_ = NULL;
+#line 168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp25_ = g_strdup ("EXTERNAL_PHOTO_APP");
+#line 168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp25_;
+#line 168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 949 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP:
+#line 953 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp26_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp26_ = g_strdup ("EXTERNAL_RAW_APP");
+#line 171 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp26_;
+#line 171 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 962 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED:
+#line 966 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp27_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp27_ = g_strdup ("HIDE_PHOTOS_ALREADY_IMPORTED");
+#line 174 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp27_;
+#line 174 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 975 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_IMPORT_DIR:
+#line 979 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp28_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp28_ = g_strdup ("IMPORT_DIR");
+#line 177 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp28_;
+#line 177 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 988 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_KEEP_RELATIVITY:
+#line 992 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp29_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp29_ = g_strdup ("KEEP_RELATIVITY");
+#line 180 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp29_;
+#line 180 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1001 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT:
+#line 1005 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp30_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp30_ = g_strdup ("LAST_CROP_HEIGHT");
+#line 183 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp30_;
+#line 183 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1014 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE:
+#line 1018 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp31_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp31_ = g_strdup ("LAST_CROP_MENU_CHOICE");
+#line 186 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp31_;
+#line 186 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1027 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH:
+#line 1031 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp32_ = NULL;
+#line 189 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp32_ = g_strdup ("LAST_CROP_WIDTH");
+#line 189 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp32_;
+#line 189 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1040 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LAST_USED_SERVICE:
+#line 1044 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp33_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp33_ = g_strdup ("LAST_USED_SERVICE");
+#line 192 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp33_;
+#line 192 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1053 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE:
+#line 1057 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp34_ = NULL;
+#line 195 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp34_ = g_strdup ("LAST_USED_DATAIMPORTS_SERVICE");
+#line 195 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp34_;
+#line 195 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1066 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING:
+#line 1070 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp35_ = NULL;
+#line 198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp35_ = g_strdup ("LIBRARY_PHOTOS_SORT_ASCENDING");
+#line 198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp35_;
+#line 198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1079 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY:
+#line 1083 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp36_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp36_ = g_strdup ("LIBRARY_PHOTOS_SORT_BY");
+#line 201 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp36_;
+#line 201 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1092 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT:
+#line 1096 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp37_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp37_ = g_strdup ("LIBRARY_WINDOW_HEIGHT");
+#line 204 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp37_;
+#line 204 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1105 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE:
+#line 1109 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp38_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp38_ = g_strdup ("LIBRARY_WINDOW_MAXIMIZE");
+#line 207 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp38_;
+#line 207 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1118 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH:
+#line 1122 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp39_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp39_ = g_strdup ("LIBRARY_WINDOW_WIDTH");
+#line 210 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp39_;
+#line 210 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1131 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS:
+#line 1135 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp40_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp40_ = g_strdup ("MODIFY_ORIGINALS");
+#line 213 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp40_;
+#line 213 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1144 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE:
+#line 1148 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp41_ = NULL;
+#line 216 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp41_ = g_strdup ("PHOTO_THUMBNAIL_SCALE");
+#line 216 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp41_;
+#line 216 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1157 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE:
+#line 1161 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp42_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp42_ = g_strdup ("PIN_TOOLBAR_STATE");
+#line 219 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp42_;
+#line 219 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1170 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT:
+#line 1174 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp43_ = NULL;
+#line 222 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp43_ = g_strdup ("PRINTING_CONTENT_HEIGHT");
+#line 222 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp43_;
+#line 222 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1183 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT:
+#line 1187 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp44_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp44_ = g_strdup ("PRINTING_CONTENT_LAYOUT");
+#line 225 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp44_;
+#line 225 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1196 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI:
+#line 1200 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp45_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp45_ = g_strdup ("PRINTING_CONTENT_PPI");
+#line 228 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp45_;
+#line 228 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1209 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS:
+#line 1213 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp46_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp46_ = g_strdup ("PRINTING_CONTENT_UNITS");
+#line 231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp46_;
+#line 231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1222 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH:
+#line 1226 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp47_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp47_ = g_strdup ("PRINTING_CONTENT_WIDTH");
+#line 234 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp47_;
+#line 234 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1235 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE:
+#line 1239 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp48_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp48_ = g_strdup ("PRINTING_IMAGES_PER_PAGE");
+#line 237 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp48_;
+#line 237 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1248 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO:
+#line 1252 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp49_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp49_ = g_strdup ("PRINTING_MATCH_ASPECT_RATIO");
+#line 240 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp49_;
+#line 240 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1261 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES:
+#line 1265 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp50_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp50_ = g_strdup ("PRINTING_PRINT_TITLES");
+#line 243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp50_;
+#line 243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1274 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION:
+#line 1278 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp51_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp51_ = g_strdup ("PRINTING_SIZE_SELECTION");
+#line 246 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp51_;
+#line 246 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1287 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT:
+#line 1291 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp52_ = NULL;
+#line 249 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp52_ = g_strdup ("PRINTING_TITLES_FONT");
+#line 249 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp52_;
+#line 249 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1300 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT:
+#line 1304 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp53_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp53_ = g_strdup ("RAW_DEVELOPER_DEFAULT");
+#line 252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp53_;
+#line 252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1313 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG:
+#line 1317 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp54_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp54_ = g_strdup ("SHOW_WELCOME_DIALOG");
+#line 255 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp54_;
+#line 255 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1326 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SIDEBAR_POSITION:
+#line 1330 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp55_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp55_ = g_strdup ("SIDEBAR_POSITION");
+#line 258 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp55_;
+#line 258 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1339 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY:
+#line 1343 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp56_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp56_ = g_strdup ("SLIDESHOW_DELAY");
+#line 261 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp56_;
+#line 261 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1352 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY:
+#line 1356 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp57_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp57_ = g_strdup ("SLIDESHOW_TRANSITION_DELAY");
+#line 264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp57_;
+#line 264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1365 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID:
+#line 1369 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp58_ = NULL;
+#line 267 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp58_ = g_strdup ("SLIDESHOW_TRANSITION_EFFECT_ID");
+#line 267 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp58_;
+#line 267 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1378 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE:
+#line 1382 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp59_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp59_ = g_strdup ("SLIDESHOW_SHOW_TITLE");
+#line 270 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp59_;
+#line 270 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1391 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME:
+#line 1395 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp60_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp60_ = g_strdup ("USE_24_HOUR_TIME");
+#line 273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp60_;
+#line 273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1404 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES:
+#line 1408 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp61_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp61_ = g_strdup ("USE_LOWERCASE_FILENAMES");
+#line 276 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp61_;
+#line 276 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1417 "ConfigurationInterfaces.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE:
+#line 1421 "ConfigurationInterfaces.c"
+ {
+ gchar* _tmp62_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp62_ = g_strdup ("VIDEO_INTERPRETER_STATE_COOKIE");
+#line 279 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp62_;
+#line 279 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1430 "ConfigurationInterfaces.c"
+ }
+ default:
+ {
+#line 282 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_error ("ConfigurationInterfaces.vala:282: unknown ConfigurableProperty enumera" \
+"tion value");
+#line 1436 "ConfigurationInterfaces.c"
+ }
+ }
+}
+
+
+GType configurable_property_get_type (void) {
+ static volatile gsize configurable_property_type_id__volatile = 0;
+ if (g_once_init_enter (&configurable_property_type_id__volatile)) {
+ static const GEnumValue values[] = {{CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY, "CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY", "auto-import-from-library"}, {CONFIGURABLE_PROPERTY_BG_COLOR_NAME, "CONFIGURABLE_PROPERTY_BG_COLOR_NAME", "bg-color-name"}, {CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS, "CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS", "commit-metadata-to-masters"}, {CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE, "CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE", "desktop-background-file"}, {CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE, "CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE", "desktop-background-mode"}, {CONFIGURABLE_PROPERTY_SCREENSAVER_FILE, "CONFIGURABLE_PROPERTY_SCREENSAVER_FILE", "screensaver-file"}, {CONFIGURABLE_PROPERTY_SCREENSAVER_MODE, "CONFIGURABLE_PROPERTY_SCREENSAVER_MODE", "screensaver-mode"}, {CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN, "CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN", "directory-pattern"}, {CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM, "CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM", "directory-pattern-custom"}, {CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT, "CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT", "direct-window-height"}, {CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE, "CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE", "direct-window-maximize"}, {CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH, "CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH", "direct-window-width"}, {CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES, "CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES", "display-basic-properties"}, {CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS, "CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS", "display-event-comments"}, {CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES, "CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES", "display-extended-properties"}, {CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR, "CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR", "display-sidebar"}, {CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR, "CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR", "display-toolbar"}, {CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR, "CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR", "display-search-bar"}, {CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS, "CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS", "display-photo-ratings"}, {CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS, "CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS", "display-photo-tags"}, {CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES, "CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES", "display-photo-titles"}, {CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS, "CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS", "display-photo-comments"}, {CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING, "CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING", "event-photos-sort-ascending"}, {CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY, "CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY", "event-photos-sort-by"}, {CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING, "CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING", "events-sort-ascending"}, {CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP, "CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP", "external-photo-app"}, {CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP, "CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP", "external-raw-app"}, {CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED, "CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED", "hide-photos-already-imported"}, {CONFIGURABLE_PROPERTY_IMPORT_DIR, "CONFIGURABLE_PROPERTY_IMPORT_DIR", "import-dir"}, {CONFIGURABLE_PROPERTY_KEEP_RELATIVITY, "CONFIGURABLE_PROPERTY_KEEP_RELATIVITY", "keep-relativity"}, {CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT, "CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT", "last-crop-height"}, {CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE, "CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE", "last-crop-menu-choice"}, {CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH, "CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH", "last-crop-width"}, {CONFIGURABLE_PROPERTY_LAST_USED_SERVICE, "CONFIGURABLE_PROPERTY_LAST_USED_SERVICE", "last-used-service"}, {CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE, "CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE", "last-used-dataimports-service"}, {CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING, "CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING", "library-photos-sort-ascending"}, {CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY, "CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY", "library-photos-sort-by"}, {CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT, "CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT", "library-window-height"}, {CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE, "CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE", "library-window-maximize"}, {CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH, "CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH", "library-window-width"}, {CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS, "CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS", "modify-originals"}, {CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE, "CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE", "photo-thumbnail-scale"}, {CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE, "CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE", "pin-toolbar-state"}, {CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT, "CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT", "printing-content-height"}, {CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT, "CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT", "printing-content-layout"}, {CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI, "CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI", "printing-content-ppi"}, {CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS, "CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS", "printing-content-units"}, {CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH, "CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH", "printing-content-width"}, {CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE, "CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE", "printing-images-per-page"}, {CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO, "CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO", "printing-match-aspect-ratio"}, {CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES, "CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES", "printing-print-titles"}, {CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION, "CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION", "printing-size-selection"}, {CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT, "CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT", "printing-titles-font"}, {CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT, "CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT", "raw-developer-default"}, {CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG, "CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG", "show-welcome-dialog"}, {CONFIGURABLE_PROPERTY_SIDEBAR_POSITION, "CONFIGURABLE_PROPERTY_SIDEBAR_POSITION", "sidebar-position"}, {CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY, "CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY", "slideshow-delay"}, {CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY, "CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY", "slideshow-transition-delay"}, {CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID, "CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID", "slideshow-transition-effect-id"}, {CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE, "CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE", "slideshow-show-title"}, {CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME, "CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME", "use-24-hour-time"}, {CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES, "CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES", "use-lowercase-filenames"}, {CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE, "CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE", "video-interpreter-state-cookie"}, {CONFIGURABLE_PROPERTY_NUM_PROPERTIES, "CONFIGURABLE_PROPERTY_NUM_PROPERTIES", "num-properties"}, {0, NULL, NULL}};
+ GType configurable_property_type_id;
+ configurable_property_type_id = g_enum_register_static ("ConfigurableProperty", values);
+ g_once_init_leave (&configurable_property_type_id__volatile, configurable_property_type_id);
+ }
+ return configurable_property_type_id__volatile;
+}
+
+
+gchar* configuration_engine_get_name (ConfigurationEngine* self) {
+#line 290 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), NULL);
+#line 290 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_name (self);
+#line 1459 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_engine_get_int_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error) {
+#line 292 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), 0);
+#line 292 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_int_property (self, p, error);
+#line 1468 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_int_property (ConfigurationEngine* self, ConfigurableProperty p, gint val, GError** error) {
+#line 293 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 293 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_int_property (self, p, val, error);
+#line 1477 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_engine_get_string_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error) {
+#line 295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), NULL);
+#line 295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_string_property (self, p, error);
+#line 1486 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_string_property (ConfigurationEngine* self, ConfigurableProperty p, const gchar* val, GError** error) {
+#line 296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_string_property (self, p, val, error);
+#line 1495 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_engine_get_bool_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error) {
+#line 298 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), FALSE);
+#line 298 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_bool_property (self, p, error);
+#line 1504 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_bool_property (ConfigurationEngine* self, ConfigurableProperty p, gboolean val, GError** error) {
+#line 299 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 299 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_bool_property (self, p, val, error);
+#line 1513 "ConfigurationInterfaces.c"
+}
+
+
+gdouble configuration_engine_get_double_property (ConfigurationEngine* self, ConfigurableProperty p, GError** error) {
+#line 301 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), 0.0);
+#line 301 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_double_property (self, p, error);
+#line 1522 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_double_property (ConfigurationEngine* self, ConfigurableProperty p, gdouble val, GError** error) {
+#line 302 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 302 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_double_property (self, p, val, error);
+#line 1531 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_engine_get_plugin_bool (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def) {
+#line 304 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), FALSE);
+#line 304 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_plugin_bool (self, domain, id, key, def);
+#line 1540 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_plugin_bool (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val) {
+#line 305 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 305 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_plugin_bool (self, domain, id, key, val);
+#line 1549 "ConfigurationInterfaces.c"
+}
+
+
+gdouble configuration_engine_get_plugin_double (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def) {
+#line 306 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), 0.0);
+#line 306 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_plugin_double (self, domain, id, key, def);
+#line 1558 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_plugin_double (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val) {
+#line 307 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 307 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_plugin_double (self, domain, id, key, val);
+#line 1567 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_engine_get_plugin_int (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint def) {
+#line 308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), 0);
+#line 308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_plugin_int (self, domain, id, key, def);
+#line 1576 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_plugin_int (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint val) {
+#line 309 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 309 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_plugin_int (self, domain, id, key, val);
+#line 1585 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_engine_get_plugin_string (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def) {
+#line 310 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), NULL);
+#line 310 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->get_plugin_string (self, domain, id, key, def);
+#line 1594 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_plugin_string (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val) {
+#line 311 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 311 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_plugin_string (self, domain, id, key, val);
+#line 1603 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_unset_plugin_key (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key) {
+#line 312 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 312 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->unset_plugin_key (self, domain, id, key);
+#line 1612 "ConfigurationInterfaces.c"
+}
+
+
+FuzzyPropertyState configuration_engine_is_plugin_enabled (ConfigurationEngine* self, const gchar* id) {
+#line 314 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (self), 0);
+#line 314 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_ENGINE_GET_INTERFACE (self)->is_plugin_enabled (self, id);
+#line 1621 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_engine_set_plugin_enabled (ConfigurationEngine* self, const gchar* id, gboolean enabled) {
+#line 315 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_ENGINE (self));
+#line 315 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_ENGINE_GET_INTERFACE (self)->set_plugin_enabled (self, id, enabled);
+#line 1630 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_engine_base_init (ConfigurationEngineIface * iface) {
+#line 287 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 287 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (!initialized) {
+#line 287 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ initialized = TRUE;
+#line 287 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_new ("property_changed", TYPE_CONFIGURATION_ENGINE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, TYPE_CONFIGURABLE_PROPERTY);
+#line 1643 "ConfigurationInterfaces.c"
+ }
+}
+
+
+GType configuration_engine_get_type (void) {
+ static volatile gsize configuration_engine_type_id__volatile = 0;
+ if (g_once_init_enter (&configuration_engine_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ConfigurationEngineIface), (GBaseInitFunc) configuration_engine_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType configuration_engine_type_id;
+ configuration_engine_type_id = g_type_register_static (G_TYPE_INTERFACE, "ConfigurationEngine", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (configuration_engine_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&configuration_engine_type_id__volatile, configuration_engine_type_id);
+ }
+ return configuration_engine_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1664 "ConfigurationInterfaces.c"
+}
+
+
+static void _configuration_facade_on_property_changed_configuration_engine_property_changed (ConfigurationEngine* _sender, ConfigurableProperty p, gpointer self) {
+#line 331 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_property_changed ((ConfigurationFacade*) self, p);
+#line 1671 "ConfigurationInterfaces.c"
+}
+
+
+ConfigurationFacade* configuration_facade_construct (GType object_type, ConfigurationEngine* engine) {
+ ConfigurationFacade * self = NULL;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+#line 328 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_ENGINE (engine), NULL);
+#line 328 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ self = (ConfigurationFacade*) g_object_new (object_type, NULL);
+#line 329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = engine;
+#line 329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (self->priv->engine);
+#line 329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ self->priv->engine = _tmp1_;
+#line 331 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = engine;
+#line 331 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_connect_object (_tmp2_, "property-changed", (GCallback) _configuration_facade_on_property_changed_configuration_engine_property_changed, self, 0);
+#line 328 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return self;
+#line 1698 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_on_property_changed (ConfigurationFacade* self, ConfigurableProperty p) {
+ ConfigurableProperty _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ ConfigurableProperty _tmp3_ = 0;
+#line 334 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 335 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = p;
+#line 335 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configurable_property_to_string (_tmp0_);
+#line 335 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 335 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_debug ("ConfigurationInterfaces.vala:335: ConfigurationFacade: engine reports " \
+"property '%s' changed.", _tmp2_);
+#line 335 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp2_);
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = p;
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ switch (_tmp3_) {
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY:
+#line 1725 "ConfigurationInterfaces.c"
+ {
+#line 339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_emit_by_name (self, "auto-import-from-library-changed");
+#line 340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ break;
+#line 1731 "ConfigurationInterfaces.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_BG_COLOR_NAME:
+#line 1735 "ConfigurationInterfaces.c"
+ {
+#line 343 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_emit_by_name (self, "bg-color-name-changed");
+#line 344 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ break;
+#line 1741 "ConfigurationInterfaces.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS:
+#line 1745 "ConfigurationInterfaces.c"
+ {
+#line 347 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_emit_by_name (self, "commit-metadata-to-masters-changed");
+#line 348 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ break;
+#line 1751 "ConfigurationInterfaces.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING:
+#line 1755 "ConfigurationInterfaces.c"
+ {
+#line 351 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_emit_by_name (self, "events-sort-ascending-changed");
+#line 352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ break;
+#line 1761 "ConfigurationInterfaces.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP:
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP:
+#line 1767 "ConfigurationInterfaces.c"
+ {
+#line 356 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_emit_by_name (self, "external-app-changed");
+#line 357 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ break;
+#line 1773 "ConfigurationInterfaces.c"
+ }
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ case CONFIGURABLE_PROPERTY_IMPORT_DIR:
+#line 1777 "ConfigurationInterfaces.c"
+ {
+#line 360 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_emit_by_name (self, "import-directory-changed");
+#line 361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ break;
+#line 1783 "ConfigurationInterfaces.c"
+ }
+ default:
+#line 337 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ break;
+#line 1788 "ConfigurationInterfaces.c"
+ }
+}
+
+
+ConfigurationEngine* configuration_facade_get_engine (ConfigurationFacade* self) {
+ ConfigurationEngine* result = NULL;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 366 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = self->priv->engine;
+#line 366 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 366 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp1_;
+#line 366 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1807 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_facade_on_configuration_error (ConfigurationFacade* self, GError* err) {
+ GError* _tmp0_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 370 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = err;
+#line 370 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (g_error_matches (_tmp0_, CONFIGURATION_ERROR, CONFIGURATION_ERROR_PROPERTY_HAS_NO_VALUE)) {
+#line 1819 "ConfigurationInterfaces.c"
+ ConfigurationEngine* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GError* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = self->priv->engine;
+#line 371 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = configuration_engine_get_name (_tmp1_);
+#line 371 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = _tmp2_;
+#line 371 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = err;
+#line 371 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp4_->message;
+#line 371 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_message ("ConfigurationInterfaces.vala:371: configuration engine '%s' reports PR" \
+"OPERTY_HAS_NO_VALUE error: %s", _tmp3_, _tmp5_);
+#line 371 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp3_);
+#line 1839 "ConfigurationInterfaces.c"
+ } else {
+ GError* _tmp6_ = NULL;
+#line 374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (g_error_matches (_tmp6_, CONFIGURATION_ERROR, CONFIGURATION_ERROR_ENGINE_ERROR)) {
+#line 1846 "ConfigurationInterfaces.c"
+ ConfigurationEngine* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = self->priv->engine;
+#line 375 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = configuration_engine_get_name (_tmp7_);
+#line 375 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = _tmp8_;
+#line 375 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = err;
+#line 375 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp11_ = _tmp10_->message;
+#line 375 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("ConfigurationInterfaces.vala:375: configuration engine '%s' reports EN" \
+"GINE_ERROR: %s", _tmp9_, _tmp11_);
+#line 375 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp9_);
+#line 1866 "ConfigurationInterfaces.c"
+ } else {
+ ConfigurationEngine* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp12_ = self->priv->engine;
+#line 378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp13_ = configuration_engine_get_name (_tmp12_);
+#line 378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp14_ = _tmp13_;
+#line 378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp15_ = err;
+#line 378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp16_ = _tmp15_->message;
+#line 378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("ConfigurationInterfaces.vala:378: configuration engine '%s' reports un" \
+"known error: %s", _tmp14_, _tmp16_);
+#line 378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp14_);
+#line 1887 "ConfigurationInterfaces.c"
+ }
+ }
+}
+
+
+static gboolean configuration_facade_real_get_auto_import_from_library (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY, &_inner_error_);
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 1918 "ConfigurationInterfaces.c"
+ goto __catch79_configuration_error;
+ }
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 1927 "ConfigurationInterfaces.c"
+ }
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 388 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1933 "ConfigurationInterfaces.c"
+ }
+ goto __finally79;
+ __catch79_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 387 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 387 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 390 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 392 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 392 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 392 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 1954 "ConfigurationInterfaces.c"
+ }
+ __finally79:
+#line 387 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 387 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 387 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 1963 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_auto_import_from_library (ConfigurationFacade* self) {
+#line 386 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 386 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_auto_import_from_library (self);
+#line 1972 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_auto_import_from_library (ConfigurationFacade* self, gboolean auto_import) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = auto_import;
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY, _tmp2_, &_inner_error_);
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 1996 "ConfigurationInterfaces.c"
+ goto __catch80_configuration_error;
+ }
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2005 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally80;
+ __catch80_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 397 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 401 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 401 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 402 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 402 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2025 "ConfigurationInterfaces.c"
+ }
+ __finally80:
+#line 397 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 397 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 397 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 397 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2036 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_auto_import_from_library (ConfigurationFacade* self, gboolean auto_import) {
+#line 396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_auto_import_from_library (self, auto_import);
+#line 2046 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_bg_color_name (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_BG_COLOR_NAME, &_inner_error_);
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2076 "ConfigurationInterfaces.c"
+ goto __catch81_configuration_error;
+ }
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2085 "ConfigurationInterfaces.c"
+ }
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 411 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2097 "ConfigurationInterfaces.c"
+ }
+ goto __finally81;
+ __catch81_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 410 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 410 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 413 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 415 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 415 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 415 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 415 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2121 "ConfigurationInterfaces.c"
+ }
+ __finally81:
+#line 410 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 410 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 410 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2130 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_bg_color_name (ConfigurationFacade* self) {
+#line 409 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 409 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_bg_color_name (self);
+#line 2139 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_bg_color_name (ConfigurationFacade* self, const gchar* color_name) {
+ GError * _inner_error_ = NULL;
+#line 419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (color_name != NULL);
+#line 2147 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = color_name;
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_BG_COLOR_NAME, _tmp2_, &_inner_error_);
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2166 "ConfigurationInterfaces.c"
+ goto __catch82_configuration_error;
+ }
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2175 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally82;
+ __catch82_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 420 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 423 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 424 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 424 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2195 "ConfigurationInterfaces.c"
+ }
+ __finally82:
+#line 420 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 420 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 420 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 420 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2206 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_bg_color_name (ConfigurationFacade* self, const gchar* color_name) {
+#line 419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_bg_color_name (self, color_name);
+#line 2216 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_commit_metadata_to_masters (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS, &_inner_error_);
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2245 "ConfigurationInterfaces.c"
+ goto __catch83_configuration_error;
+ }
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 2254 "ConfigurationInterfaces.c"
+ }
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 433 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2260 "ConfigurationInterfaces.c"
+ }
+ goto __finally83;
+ __catch83_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 432 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 435 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 437 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 437 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 437 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2281 "ConfigurationInterfaces.c"
+ }
+ __finally83:
+#line 432 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 432 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 432 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 2290 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_commit_metadata_to_masters (ConfigurationFacade* self) {
+#line 431 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 431 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_commit_metadata_to_masters (self);
+#line 2299 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_commit_metadata_to_masters (ConfigurationFacade* self, gboolean commit_metadata) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = commit_metadata;
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS, _tmp2_, &_inner_error_);
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2323 "ConfigurationInterfaces.c"
+ goto __catch84_configuration_error;
+ }
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2332 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally84;
+ __catch84_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 442 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 442 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 446 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 446 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 447 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 447 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2352 "ConfigurationInterfaces.c"
+ }
+ __finally84:
+#line 442 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 442 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 442 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 442 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2363 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_commit_metadata_to_masters (ConfigurationFacade* self, gboolean commit_metadata) {
+#line 441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_commit_metadata_to_masters (self, commit_metadata);
+#line 2373 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_desktop_background (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE, &_inner_error_);
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2403 "ConfigurationInterfaces.c"
+ goto __catch85_configuration_error;
+ }
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2412 "ConfigurationInterfaces.c"
+ }
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 456 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2424 "ConfigurationInterfaces.c"
+ }
+ goto __finally85;
+ __catch85_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 455 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 455 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 458 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 460 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 460 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 460 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 460 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2448 "ConfigurationInterfaces.c"
+ }
+ __finally85:
+#line 455 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 455 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 455 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2457 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_desktop_background (ConfigurationFacade* self) {
+#line 454 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 454 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_desktop_background (self);
+#line 2466 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_desktop_background (ConfigurationFacade* self, const gchar* filename) {
+ GError * _inner_error_ = NULL;
+#line 464 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (filename != NULL);
+#line 2474 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ ConfigurationEngine* _tmp3_ = NULL;
+ ConfigurationEngine* _tmp4_ = NULL;
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = filename;
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE, _tmp2_, &_inner_error_);
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2495 "ConfigurationInterfaces.c"
+ goto __catch86_configuration_error;
+ }
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2504 "ConfigurationInterfaces.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_facade_get_engine (self);
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp4_, CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE, "zoom", &_inner_error_);
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp4_);
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2518 "ConfigurationInterfaces.c"
+ goto __catch86_configuration_error;
+ }
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 468 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2527 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally86;
+ __catch86_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 465 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 465 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 465 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 2545 "ConfigurationInterfaces.c"
+ }
+ __finally86:
+#line 465 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 465 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 465 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 465 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2556 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_desktop_background (ConfigurationFacade* self, const gchar* filename) {
+#line 464 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 464 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_desktop_background (self, filename);
+#line 2566 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_screensaver (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_SCREENSAVER_FILE, &_inner_error_);
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2596 "ConfigurationInterfaces.c"
+ goto __catch87_configuration_error;
+ }
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2605 "ConfigurationInterfaces.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 480 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2617 "ConfigurationInterfaces.c"
+ }
+ goto __finally87;
+ __catch87_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 479 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 479 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 482 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 482 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 484 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 484 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 484 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 484 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2641 "ConfigurationInterfaces.c"
+ }
+ __finally87:
+#line 479 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 479 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 479 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2650 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_screensaver (ConfigurationFacade* self) {
+#line 478 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 478 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_screensaver (self);
+#line 2659 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_screensaver (ConfigurationFacade* self, const gchar* filename) {
+ GError * _inner_error_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (filename != NULL);
+#line 2667 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ ConfigurationEngine* _tmp3_ = NULL;
+ ConfigurationEngine* _tmp4_ = NULL;
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = filename;
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_SCREENSAVER_FILE, _tmp2_, &_inner_error_);
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2688 "ConfigurationInterfaces.c"
+ goto __catch88_configuration_error;
+ }
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 490 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2697 "ConfigurationInterfaces.c"
+ }
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_facade_get_engine (self);
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp4_, CONFIGURABLE_PROPERTY_SCREENSAVER_MODE, "zoom", &_inner_error_);
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp4_);
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2711 "ConfigurationInterfaces.c"
+ goto __catch88_configuration_error;
+ }
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2720 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally88;
+ __catch88_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 489 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 489 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 495 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 489 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 2738 "ConfigurationInterfaces.c"
+ }
+ __finally88:
+#line 489 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 489 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 489 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 489 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2749 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_screensaver (ConfigurationFacade* self, const gchar* filename) {
+#line 488 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 488 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_screensaver (self, filename);
+#line 2759 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_directory_pattern (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* s = NULL;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = configuration_engine_get_string_property (_tmp1_, CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN, &_inner_error_);
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = _tmp2_;
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ s = _tmp3_;
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2790 "ConfigurationInterfaces.c"
+ goto __catch89_configuration_error;
+ }
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2799 "ConfigurationInterfaces.c"
+ }
+#line 505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (g_strcmp0 (s, "") == 0) {
+#line 505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = NULL;
+#line 2805 "ConfigurationInterfaces.c"
+ } else {
+#line 505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = s;
+#line 2809 "ConfigurationInterfaces.c"
+ }
+#line 505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (s);
+#line 505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2819 "ConfigurationInterfaces.c"
+ }
+ goto __finally89;
+ __catch89_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 503 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 507 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 507 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 509 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 509 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 509 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 509 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2843 "ConfigurationInterfaces.c"
+ }
+ __finally89:
+#line 503 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 503 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 503 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2852 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_directory_pattern (ConfigurationFacade* self) {
+#line 502 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 502 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_directory_pattern (self);
+#line 2861 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_directory_pattern (ConfigurationFacade* self, const gchar* s) {
+ GError * _inner_error_ = NULL;
+ {
+ const gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = s;
+#line 515 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_tmp0_ == NULL) {
+#line 516 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ s = "";
+#line 2878 "ConfigurationInterfaces.c"
+ }
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = s;
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp2_, CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN, _tmp3_, &_inner_error_);
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2894 "ConfigurationInterfaces.c"
+ goto __catch90_configuration_error;
+ }
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2903 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally90;
+ __catch90_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+#line 514 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 514 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 520 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = err;
+#line 520 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp4_);
+#line 514 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 2921 "ConfigurationInterfaces.c"
+ }
+ __finally90:
+#line 514 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 514 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 514 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 514 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 2932 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_directory_pattern (ConfigurationFacade* self, const gchar* s) {
+#line 513 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 513 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_directory_pattern (self, s);
+#line 2942 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_directory_pattern_custom (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM, &_inner_error_);
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 2972 "ConfigurationInterfaces.c"
+ goto __catch91_configuration_error;
+ }
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 2981 "ConfigurationInterfaces.c"
+ }
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 2993 "ConfigurationInterfaces.c"
+ }
+ goto __finally91;
+ __catch91_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 528 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 533 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 533 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 533 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 533 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3017 "ConfigurationInterfaces.c"
+ }
+ __finally91:
+#line 528 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 528 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 528 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 3026 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_directory_pattern_custom (ConfigurationFacade* self) {
+#line 527 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 527 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_directory_pattern_custom (self);
+#line 3035 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_directory_pattern_custom (ConfigurationFacade* self, const gchar* s) {
+ GError * _inner_error_ = NULL;
+#line 537 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (s != NULL);
+#line 3043 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = s;
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM, _tmp2_, &_inner_error_);
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3062 "ConfigurationInterfaces.c"
+ goto __catch92_configuration_error;
+ }
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3071 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally92;
+ __catch92_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 538 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 538 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 538 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 3089 "ConfigurationInterfaces.c"
+ }
+ __finally92:
+#line 538 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 538 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 538 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 538 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3100 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_directory_pattern_custom (ConfigurationFacade* self, const gchar* s) {
+#line 537 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 537 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_directory_pattern_custom (self, s);
+#line 3110 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_get_direct_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions) {
+ gboolean _vala_maximize = FALSE;
+ Dimensions _vala_dimensions = {0};
+ GError * _inner_error_ = NULL;
+#line 549 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_maximize = FALSE;
+#line 550 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ dimensions_init (&_vala_dimensions, 1024, 768);
+#line 3122 "ConfigurationInterfaces.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gint w = 0;
+ ConfigurationEngine* _tmp5_ = NULL;
+ ConfigurationEngine* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint h = 0;
+ ConfigurationEngine* _tmp9_ = NULL;
+ ConfigurationEngine* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE, &_inner_error_);
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3157 "ConfigurationInterfaces.c"
+ goto __catch93_configuration_error;
+ }
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3166 "ConfigurationInterfaces.c"
+ }
+#line 552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_maximize = _tmp0_;
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = configuration_facade_get_engine (self);
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = _tmp5_;
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = configuration_engine_get_int_property (_tmp6_, CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH, &_inner_error_);
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = _tmp7_;
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp6_);
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ w = _tmp8_;
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3186 "ConfigurationInterfaces.c"
+ goto __catch93_configuration_error;
+ }
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 553 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3195 "ConfigurationInterfaces.c"
+ }
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = configuration_facade_get_engine (self);
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = _tmp9_;
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp11_ = configuration_engine_get_int_property (_tmp10_, CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT, &_inner_error_);
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp12_ = _tmp11_;
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp10_);
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ h = _tmp12_;
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3213 "ConfigurationInterfaces.c"
+ goto __catch93_configuration_error;
+ }
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3222 "ConfigurationInterfaces.c"
+ }
+#line 555 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp13_ = w;
+#line 555 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp14_ = h;
+#line 555 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ dimensions_init (&_vala_dimensions, _tmp13_, _tmp14_);
+#line 3230 "ConfigurationInterfaces.c"
+ }
+ goto __finally93;
+ __catch93_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp15_ = NULL;
+#line 551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 557 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp15_ = err;
+#line 557 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp15_);
+#line 551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 3247 "ConfigurationInterfaces.c"
+ }
+ __finally93:
+#line 551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3258 "ConfigurationInterfaces.c"
+ }
+#line 548 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (maximize) {
+#line 548 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *maximize = _vala_maximize;
+#line 3264 "ConfigurationInterfaces.c"
+ }
+#line 548 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (dimensions) {
+#line 548 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *dimensions = _vala_dimensions;
+#line 3270 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_get_direct_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions) {
+#line 548 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 548 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->get_direct_window_state (self, maximize, dimensions);
+#line 3280 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_direct_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions) {
+ GError * _inner_error_ = NULL;
+#line 561 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (dimensions != NULL);
+#line 3288 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ConfigurationEngine* _tmp3_ = NULL;
+ ConfigurationEngine* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ ConfigurationEngine* _tmp7_ = NULL;
+ ConfigurationEngine* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = maximize;
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE, _tmp2_, &_inner_error_);
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3315 "ConfigurationInterfaces.c"
+ goto __catch94_configuration_error;
+ }
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3324 "ConfigurationInterfaces.c"
+ }
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_facade_get_engine (self);
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = *dimensions;
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = _tmp5_.width;
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp4_, CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH, _tmp6_, &_inner_error_);
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp4_);
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3342 "ConfigurationInterfaces.c"
+ goto __catch94_configuration_error;
+ }
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3351 "ConfigurationInterfaces.c"
+ }
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = configuration_facade_get_engine (self);
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = _tmp7_;
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = *dimensions;
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = _tmp9_.height;
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp8_, CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT, _tmp10_, &_inner_error_);
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp8_);
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3369 "ConfigurationInterfaces.c"
+ goto __catch94_configuration_error;
+ }
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3378 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally94;
+ __catch94_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp11_ = NULL;
+#line 562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 569 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp11_ = err;
+#line 569 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp11_);
+#line 562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 3396 "ConfigurationInterfaces.c"
+ }
+ __finally94:
+#line 562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3407 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_direct_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions) {
+#line 561 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 561 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_direct_window_state (self, maximize, dimensions);
+#line 3417 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_basic_properties (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES, &_inner_error_);
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3446 "ConfigurationInterfaces.c"
+ goto __catch95_configuration_error;
+ }
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3455 "ConfigurationInterfaces.c"
+ }
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 578 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3461 "ConfigurationInterfaces.c"
+ }
+ goto __finally95;
+ __catch95_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 577 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 577 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 580 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 580 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 582 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = TRUE;
+#line 582 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 582 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3482 "ConfigurationInterfaces.c"
+ }
+ __finally95:
+#line 577 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 577 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 577 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3491 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_basic_properties (ConfigurationFacade* self) {
+#line 576 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 576 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_basic_properties (self);
+#line 3500 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_basic_properties (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES, _tmp2_, &_inner_error_);
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3524 "ConfigurationInterfaces.c"
+ goto __catch96_configuration_error;
+ }
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 588 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3533 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally96;
+ __catch96_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 590 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 590 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 3551 "ConfigurationInterfaces.c"
+ }
+ __finally96:
+#line 587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3562 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_basic_properties (ConfigurationFacade* self, gboolean display) {
+#line 586 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 586 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_basic_properties (self, display);
+#line 3572 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_extended_properties (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES, &_inner_error_);
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3601 "ConfigurationInterfaces.c"
+ goto __catch97_configuration_error;
+ }
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3610 "ConfigurationInterfaces.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3616 "ConfigurationInterfaces.c"
+ }
+ goto __finally97;
+ __catch97_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 598 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 598 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 601 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 603 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 603 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 603 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3637 "ConfigurationInterfaces.c"
+ }
+ __finally97:
+#line 598 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 598 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 598 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3646 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_extended_properties (ConfigurationFacade* self) {
+#line 597 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 597 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_extended_properties (self);
+#line 3655 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_extended_properties (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES, _tmp2_, &_inner_error_);
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3679 "ConfigurationInterfaces.c"
+ goto __catch98_configuration_error;
+ }
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 609 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3688 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally98;
+ __catch98_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 608 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 608 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 612 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 612 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 608 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 3706 "ConfigurationInterfaces.c"
+ }
+ __finally98:
+#line 608 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 608 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 608 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 608 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3717 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_extended_properties (ConfigurationFacade* self, gboolean display) {
+#line 607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_extended_properties (self, display);
+#line 3727 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_sidebar (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR, &_inner_error_);
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3756 "ConfigurationInterfaces.c"
+ goto __catch99_configuration_error;
+ }
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3765 "ConfigurationInterfaces.c"
+ }
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3771 "ConfigurationInterfaces.c"
+ }
+ goto __finally99;
+ __catch99_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 620 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 620 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 623 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 623 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3792 "ConfigurationInterfaces.c"
+ }
+ __finally99:
+#line 620 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 620 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 620 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3801 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_sidebar (ConfigurationFacade* self) {
+#line 619 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 619 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_sidebar (self);
+#line 3810 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_sidebar (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR, _tmp2_, &_inner_error_);
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3834 "ConfigurationInterfaces.c"
+ goto __catch100_configuration_error;
+ }
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 631 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3843 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally100;
+ __catch100_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 633 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 633 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 3861 "ConfigurationInterfaces.c"
+ }
+ __finally100:
+#line 630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3872 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_sidebar (ConfigurationFacade* self, gboolean display) {
+#line 629 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 629 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_sidebar (self, display);
+#line 3882 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_toolbar (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR, &_inner_error_);
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3911 "ConfigurationInterfaces.c"
+ goto __catch101_configuration_error;
+ }
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3920 "ConfigurationInterfaces.c"
+ }
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3926 "ConfigurationInterfaces.c"
+ }
+ goto __finally101;
+ __catch101_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 645 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 645 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 647 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 647 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 647 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 3947 "ConfigurationInterfaces.c"
+ }
+ __finally101:
+#line 642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 3956 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_toolbar (ConfigurationFacade* self) {
+#line 641 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 641 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_toolbar (self);
+#line 3965 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_toolbar (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR, _tmp2_, &_inner_error_);
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 3989 "ConfigurationInterfaces.c"
+ goto __catch102_configuration_error;
+ }
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 3998 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally102;
+ __catch102_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 652 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 652 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 655 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 655 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 652 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 4016 "ConfigurationInterfaces.c"
+ }
+ __finally102:
+#line 652 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 652 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 652 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 652 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4027 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_toolbar (ConfigurationFacade* self, gboolean display) {
+#line 651 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 651 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_toolbar (self, display);
+#line 4037 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_search_bar (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR, &_inner_error_);
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4066 "ConfigurationInterfaces.c"
+ goto __catch103_configuration_error;
+ }
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4075 "ConfigurationInterfaces.c"
+ }
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4081 "ConfigurationInterfaces.c"
+ }
+ goto __finally103;
+ __catch103_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 663 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 663 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 666 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 668 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 668 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 668 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4102 "ConfigurationInterfaces.c"
+ }
+ __finally103:
+#line 663 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 663 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 663 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4111 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_search_bar (ConfigurationFacade* self) {
+#line 662 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 662 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_search_bar (self);
+#line 4120 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_search_bar (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR, _tmp2_, &_inner_error_);
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4144 "ConfigurationInterfaces.c"
+ goto __catch104_configuration_error;
+ }
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 674 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4153 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally104;
+ __catch104_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 673 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 673 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 676 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 676 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 673 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 4171 "ConfigurationInterfaces.c"
+ }
+ __finally104:
+#line 673 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 673 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 673 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 673 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4182 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_search_bar (ConfigurationFacade* self, gboolean display) {
+#line 672 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 672 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_search_bar (self, display);
+#line 4192 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_photo_ratings (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS, &_inner_error_);
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4221 "ConfigurationInterfaces.c"
+ goto __catch105_configuration_error;
+ }
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4230 "ConfigurationInterfaces.c"
+ }
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 685 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4236 "ConfigurationInterfaces.c"
+ }
+ goto __finally105;
+ __catch105_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 684 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 684 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 687 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 687 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 689 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = TRUE;
+#line 689 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 689 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4257 "ConfigurationInterfaces.c"
+ }
+ __finally105:
+#line 684 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 684 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 684 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4266 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_photo_ratings (ConfigurationFacade* self) {
+#line 683 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 683 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_photo_ratings (self);
+#line 4275 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_photo_ratings (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS, _tmp2_, &_inner_error_);
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4299 "ConfigurationInterfaces.c"
+ goto __catch106_configuration_error;
+ }
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 695 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4308 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally106;
+ __catch106_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 694 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 694 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 697 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 697 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 694 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 4326 "ConfigurationInterfaces.c"
+ }
+ __finally106:
+#line 694 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 694 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 694 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 694 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4337 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_photo_ratings (ConfigurationFacade* self, gboolean display) {
+#line 693 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 693 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_photo_ratings (self, display);
+#line 4347 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_photo_tags (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS, &_inner_error_);
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4376 "ConfigurationInterfaces.c"
+ goto __catch107_configuration_error;
+ }
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4385 "ConfigurationInterfaces.c"
+ }
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 706 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4391 "ConfigurationInterfaces.c"
+ }
+ goto __finally107;
+ __catch107_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 705 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 705 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 708 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 708 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 710 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = TRUE;
+#line 710 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 710 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4412 "ConfigurationInterfaces.c"
+ }
+ __finally107:
+#line 705 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 705 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 705 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4421 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_photo_tags (ConfigurationFacade* self) {
+#line 704 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 704 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_photo_tags (self);
+#line 4430 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_photo_tags (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS, _tmp2_, &_inner_error_);
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4454 "ConfigurationInterfaces.c"
+ goto __catch108_configuration_error;
+ }
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 716 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4463 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally108;
+ __catch108_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 715 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 715 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 718 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 718 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 715 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 4481 "ConfigurationInterfaces.c"
+ }
+ __finally108:
+#line 715 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 715 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 715 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 715 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4492 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_photo_tags (ConfigurationFacade* self, gboolean display) {
+#line 714 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 714 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_photo_tags (self, display);
+#line 4502 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_photo_titles (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES, &_inner_error_);
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4531 "ConfigurationInterfaces.c"
+ goto __catch109_configuration_error;
+ }
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4540 "ConfigurationInterfaces.c"
+ }
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 727 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4546 "ConfigurationInterfaces.c"
+ }
+ goto __finally109;
+ __catch109_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 726 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 726 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 729 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 729 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 731 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 731 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 731 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4567 "ConfigurationInterfaces.c"
+ }
+ __finally109:
+#line 726 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 726 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 726 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4576 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_photo_titles (ConfigurationFacade* self) {
+#line 725 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 725 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_photo_titles (self);
+#line 4585 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_photo_titles (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES, _tmp2_, &_inner_error_);
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4609 "ConfigurationInterfaces.c"
+ goto __catch110_configuration_error;
+ }
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 737 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4618 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally110;
+ __catch110_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 736 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 736 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 739 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 739 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 736 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 4636 "ConfigurationInterfaces.c"
+ }
+ __finally110:
+#line 736 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 736 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 736 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 736 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4647 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_photo_titles (ConfigurationFacade* self, gboolean display) {
+#line 735 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 735 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_photo_titles (self, display);
+#line 4657 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_photo_comments (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS, &_inner_error_);
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4686 "ConfigurationInterfaces.c"
+ goto __catch111_configuration_error;
+ }
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4695 "ConfigurationInterfaces.c"
+ }
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 748 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4701 "ConfigurationInterfaces.c"
+ }
+ goto __finally111;
+ __catch111_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 747 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 747 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 750 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 750 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 752 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 752 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 752 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4722 "ConfigurationInterfaces.c"
+ }
+ __finally111:
+#line 747 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 747 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 747 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4731 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_photo_comments (ConfigurationFacade* self) {
+#line 746 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 746 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_photo_comments (self);
+#line 4740 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_photo_comments (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS, _tmp2_, &_inner_error_);
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4764 "ConfigurationInterfaces.c"
+ goto __catch112_configuration_error;
+ }
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 758 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4773 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally112;
+ __catch112_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 757 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 757 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 760 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 760 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 757 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 4791 "ConfigurationInterfaces.c"
+ }
+ __finally112:
+#line 757 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 757 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 757 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 757 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4802 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_photo_comments (ConfigurationFacade* self, gboolean display) {
+#line 756 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 756 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_photo_comments (self, display);
+#line 4812 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_display_event_comments (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS, &_inner_error_);
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4841 "ConfigurationInterfaces.c"
+ goto __catch113_configuration_error;
+ }
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4850 "ConfigurationInterfaces.c"
+ }
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 769 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4856 "ConfigurationInterfaces.c"
+ }
+ goto __finally113;
+ __catch113_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 768 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 768 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 771 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 771 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 773 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 773 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 773 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 4877 "ConfigurationInterfaces.c"
+ }
+ __finally113:
+#line 768 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 768 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 768 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 4886 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_display_event_comments (ConfigurationFacade* self) {
+#line 767 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 767 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_display_event_comments (self);
+#line 4895 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_display_event_comments (ConfigurationFacade* self, gboolean display) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = display;
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS, _tmp2_, &_inner_error_);
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4919 "ConfigurationInterfaces.c"
+ goto __catch114_configuration_error;
+ }
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 779 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4928 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally114;
+ __catch114_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 778 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 778 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 781 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 781 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 778 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 4946 "ConfigurationInterfaces.c"
+ }
+ __finally114:
+#line 778 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 778 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 778 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 778 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 4957 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_display_event_comments (ConfigurationFacade* self, gboolean display) {
+#line 777 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 777 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_display_event_comments (self, display);
+#line 4967 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_get_event_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by) {
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ GError * _inner_error_ = NULL;
+#line 789 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_order = FALSE;
+#line 790 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_by = 2;
+#line 4979 "ConfigurationInterfaces.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gint _tmp5_ = 0;
+ ConfigurationEngine* _tmp6_ = NULL;
+ ConfigurationEngine* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING, &_inner_error_);
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5007 "ConfigurationInterfaces.c"
+ goto __catch115_configuration_error;
+ }
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5016 "ConfigurationInterfaces.c"
+ }
+#line 792 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_order = _tmp0_;
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = configuration_facade_get_engine (self);
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = _tmp6_;
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = configuration_engine_get_int_property (_tmp7_, CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY, &_inner_error_);
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = _tmp8_;
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp7_);
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp9_;
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5036 "ConfigurationInterfaces.c"
+ goto __catch115_configuration_error;
+ }
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5045 "ConfigurationInterfaces.c"
+ }
+#line 794 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_by = _tmp5_;
+#line 5049 "ConfigurationInterfaces.c"
+ }
+ goto __finally115;
+ __catch115_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp10_ = NULL;
+#line 791 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 791 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 796 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = err;
+#line 796 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp10_);
+#line 791 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 5066 "ConfigurationInterfaces.c"
+ }
+ __finally115:
+#line 791 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 791 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 791 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 791 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5077 "ConfigurationInterfaces.c"
+ }
+#line 788 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (sort_order) {
+#line 788 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *sort_order = _vala_sort_order;
+#line 5083 "ConfigurationInterfaces.c"
+ }
+#line 788 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (sort_by) {
+#line 788 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *sort_by = _vala_sort_by;
+#line 5089 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_get_event_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by) {
+#line 788 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 788 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->get_event_photos_sort (self, sort_order, sort_by);
+#line 5099 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_event_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ConfigurationEngine* _tmp3_ = NULL;
+ ConfigurationEngine* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = sort_order;
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING, _tmp2_, &_inner_error_);
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5126 "ConfigurationInterfaces.c"
+ goto __catch116_configuration_error;
+ }
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 802 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5135 "ConfigurationInterfaces.c"
+ }
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_facade_get_engine (self);
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = sort_by;
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp4_, CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY, _tmp5_, &_inner_error_);
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp4_);
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5151 "ConfigurationInterfaces.c"
+ goto __catch116_configuration_error;
+ }
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 804 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5160 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally116;
+ __catch116_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 801 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 807 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 807 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 801 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 5178 "ConfigurationInterfaces.c"
+ }
+ __finally116:
+#line 801 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 801 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 801 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 801 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5189 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_event_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by) {
+#line 800 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 800 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_event_photos_sort (self, sort_order, sort_by);
+#line 5199 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_events_sort_ascending (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING, &_inner_error_);
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5228 "ConfigurationInterfaces.c"
+ goto __catch117_configuration_error;
+ }
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 5237 "ConfigurationInterfaces.c"
+ }
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 816 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5243 "ConfigurationInterfaces.c"
+ }
+ goto __finally117;
+ __catch117_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 815 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 815 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 818 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 818 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 820 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 820 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 820 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5264 "ConfigurationInterfaces.c"
+ }
+ __finally117:
+#line 815 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 815 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 815 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 5273 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_events_sort_ascending (ConfigurationFacade* self) {
+#line 814 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 814 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_events_sort_ascending (self);
+#line 5282 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_events_sort_ascending (ConfigurationFacade* self, gboolean sort) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = sort;
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING, _tmp2_, &_inner_error_);
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5306 "ConfigurationInterfaces.c"
+ goto __catch118_configuration_error;
+ }
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 826 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5315 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally118;
+ __catch118_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 825 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 825 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 828 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 828 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 829 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 829 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5335 "ConfigurationInterfaces.c"
+ }
+ __finally118:
+#line 825 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 825 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 825 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 825 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5346 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_events_sort_ascending (ConfigurationFacade* self, gboolean sort) {
+#line 824 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 824 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_events_sort_ascending (self, sort);
+#line 5356 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_external_photo_app (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP, &_inner_error_);
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5386 "ConfigurationInterfaces.c"
+ goto __catch119_configuration_error;
+ }
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 5395 "ConfigurationInterfaces.c"
+ }
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 838 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5407 "ConfigurationInterfaces.c"
+ }
+ goto __finally119;
+ __catch119_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 837 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 837 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 840 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 840 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 842 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 842 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 842 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 842 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5431 "ConfigurationInterfaces.c"
+ }
+ __finally119:
+#line 837 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 837 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 837 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 5440 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_external_photo_app (ConfigurationFacade* self) {
+#line 836 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 836 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_external_photo_app (self);
+#line 5449 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_external_photo_app (ConfigurationFacade* self, const gchar* external_photo_app) {
+ GError * _inner_error_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (external_photo_app != NULL);
+#line 5457 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = external_photo_app;
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP, _tmp2_, &_inner_error_);
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5476 "ConfigurationInterfaces.c"
+ goto __catch120_configuration_error;
+ }
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 848 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5485 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally120;
+ __catch120_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 847 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 851 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 851 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 852 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 852 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5505 "ConfigurationInterfaces.c"
+ }
+ __finally120:
+#line 847 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 847 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 847 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 847 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5516 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_external_photo_app (ConfigurationFacade* self, const gchar* external_photo_app) {
+#line 846 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 846 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_external_photo_app (self, external_photo_app);
+#line 5526 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_external_raw_app (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP, &_inner_error_);
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5556 "ConfigurationInterfaces.c"
+ goto __catch121_configuration_error;
+ }
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 5565 "ConfigurationInterfaces.c"
+ }
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 861 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5577 "ConfigurationInterfaces.c"
+ }
+ goto __finally121;
+ __catch121_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 860 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 863 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 863 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 865 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 865 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 865 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 865 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5601 "ConfigurationInterfaces.c"
+ }
+ __finally121:
+#line 860 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 860 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 860 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 5610 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_external_raw_app (ConfigurationFacade* self) {
+#line 859 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 859 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_external_raw_app (self);
+#line 5619 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_external_raw_app (ConfigurationFacade* self, const gchar* external_raw_app) {
+ GError * _inner_error_ = NULL;
+#line 869 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (external_raw_app != NULL);
+#line 5627 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = external_raw_app;
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP, _tmp2_, &_inner_error_);
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5646 "ConfigurationInterfaces.c"
+ goto __catch122_configuration_error;
+ }
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 871 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5655 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally122;
+ __catch122_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 870 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 870 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 874 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 874 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 875 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 875 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5675 "ConfigurationInterfaces.c"
+ }
+ __finally122:
+#line 870 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 870 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 870 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 870 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5686 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_external_raw_app (ConfigurationFacade* self, const gchar* external_raw_app) {
+#line 869 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 869 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_external_raw_app (self, external_raw_app);
+#line 5696 "ConfigurationInterfaces.c"
+}
+
+
+static RawDeveloper configuration_facade_real_get_default_raw_developer (ConfigurationFacade* self) {
+ RawDeveloper result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ RawDeveloper _tmp5_ = 0;
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT, &_inner_error_);
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5726 "ConfigurationInterfaces.c"
+ goto __catch123_configuration_error;
+ }
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 5735 "ConfigurationInterfaces.c"
+ }
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = raw_developer_from_string (_tmp0_);
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 884 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5745 "ConfigurationInterfaces.c"
+ }
+ goto __finally123;
+ __catch123_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+#line 883 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 883 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 887 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 887 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 889 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = RAW_DEVELOPER_CAMERA;
+#line 889 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 889 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5766 "ConfigurationInterfaces.c"
+ }
+ __finally123:
+#line 883 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 883 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 883 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 5775 "ConfigurationInterfaces.c"
+}
+
+
+RawDeveloper configuration_facade_get_default_raw_developer (ConfigurationFacade* self) {
+#line 882 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 882 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_default_raw_developer (self);
+#line 5784 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_default_raw_developer (ConfigurationFacade* self, RawDeveloper d) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ RawDeveloper _tmp2_ = 0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = d;
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = raw_developer_to_string (_tmp2_);
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT, _tmp4_, &_inner_error_);
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp4_);
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5816 "ConfigurationInterfaces.c"
+ goto __catch124_configuration_error;
+ }
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 895 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5825 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally124;
+ __catch124_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 894 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 894 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 898 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 898 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 899 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 899 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5845 "ConfigurationInterfaces.c"
+ }
+ __finally124:
+#line 894 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 894 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 894 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 894 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5856 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_default_raw_developer (ConfigurationFacade* self, RawDeveloper d) {
+#line 893 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 893 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_default_raw_developer (self, d);
+#line 5866 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_hide_photos_already_imported (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED, &_inner_error_);
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5895 "ConfigurationInterfaces.c"
+ goto __catch125_configuration_error;
+ }
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 5904 "ConfigurationInterfaces.c"
+ }
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 908 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5910 "ConfigurationInterfaces.c"
+ }
+ goto __finally125;
+ __catch125_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 907 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 907 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 910 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 910 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 912 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = TRUE;
+#line 912 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 912 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 5931 "ConfigurationInterfaces.c"
+ }
+ __finally125:
+#line 907 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 907 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 907 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 5940 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_hide_photos_already_imported (ConfigurationFacade* self) {
+#line 906 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 906 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_hide_photos_already_imported (self);
+#line 5949 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_hide_photos_already_imported (ConfigurationFacade* self, gboolean hide_imported) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = hide_imported;
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED, _tmp2_, &_inner_error_);
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5973 "ConfigurationInterfaces.c"
+ goto __catch126_configuration_error;
+ }
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 918 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 5982 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally126;
+ __catch126_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 917 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 917 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 920 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 920 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 917 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 6000 "ConfigurationInterfaces.c"
+ }
+ __finally126:
+#line 917 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 917 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 917 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 917 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6011 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_hide_photos_already_imported (ConfigurationFacade* self, gboolean hide_imported) {
+#line 916 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 916 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_hide_photos_already_imported (self, hide_imported);
+#line 6021 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_import_dir (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_IMPORT_DIR, &_inner_error_);
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6051 "ConfigurationInterfaces.c"
+ goto __catch127_configuration_error;
+ }
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 6060 "ConfigurationInterfaces.c"
+ }
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 929 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6072 "ConfigurationInterfaces.c"
+ }
+ goto __finally127;
+ __catch127_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 928 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 928 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 931 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 931 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 933 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 933 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 933 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 933 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6096 "ConfigurationInterfaces.c"
+ }
+ __finally127:
+#line 928 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 928 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 928 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 6105 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_import_dir (ConfigurationFacade* self) {
+#line 927 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 927 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_import_dir (self);
+#line 6114 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_import_dir (ConfigurationFacade* self, const gchar* import_dir) {
+ GError * _inner_error_ = NULL;
+#line 937 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (import_dir != NULL);
+#line 6122 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = import_dir;
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_IMPORT_DIR, _tmp2_, &_inner_error_);
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6141 "ConfigurationInterfaces.c"
+ goto __catch128_configuration_error;
+ }
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 939 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6150 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally128;
+ __catch128_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 938 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 941 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 941 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 938 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 6168 "ConfigurationInterfaces.c"
+ }
+ __finally128:
+#line 938 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 938 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 938 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 938 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6179 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_import_dir (ConfigurationFacade* self, const gchar* import_dir) {
+#line 937 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 937 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_import_dir (self, import_dir);
+#line 6189 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_keep_relativity (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_KEEP_RELATIVITY, &_inner_error_);
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6218 "ConfigurationInterfaces.c"
+ goto __catch129_configuration_error;
+ }
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 6227 "ConfigurationInterfaces.c"
+ }
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 950 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6233 "ConfigurationInterfaces.c"
+ }
+ goto __finally129;
+ __catch129_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 949 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 949 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 952 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 952 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 954 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = TRUE;
+#line 954 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 954 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6254 "ConfigurationInterfaces.c"
+ }
+ __finally129:
+#line 949 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 949 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 949 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 6263 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_keep_relativity (ConfigurationFacade* self) {
+#line 948 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 948 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_keep_relativity (self);
+#line 6272 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_keep_relativity (ConfigurationFacade* self, gboolean keep_relativity) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = keep_relativity;
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_KEEP_RELATIVITY, _tmp2_, &_inner_error_);
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6296 "ConfigurationInterfaces.c"
+ goto __catch130_configuration_error;
+ }
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 960 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6305 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally130;
+ __catch130_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 959 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 959 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 962 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 962 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 959 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 6323 "ConfigurationInterfaces.c"
+ }
+ __finally130:
+#line 959 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 959 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 959 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 959 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6334 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_keep_relativity (ConfigurationFacade* self, gboolean keep_relativity) {
+#line 958 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 958 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_keep_relativity (self, keep_relativity);
+#line 6344 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_pin_toolbar_state (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE, &_inner_error_);
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6373 "ConfigurationInterfaces.c"
+ goto __catch131_configuration_error;
+ }
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 6382 "ConfigurationInterfaces.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 971 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6388 "ConfigurationInterfaces.c"
+ }
+ goto __finally131;
+ __catch131_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 970 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 970 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 973 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 973 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 974 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 974 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 974 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6409 "ConfigurationInterfaces.c"
+ }
+ __finally131:
+#line 970 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 970 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 970 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 6418 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_pin_toolbar_state (ConfigurationFacade* self) {
+#line 969 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 969 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_pin_toolbar_state (self);
+#line 6427 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_pin_toolbar_state (ConfigurationFacade* self, gboolean state) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = state;
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE, _tmp2_, &_inner_error_);
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6451 "ConfigurationInterfaces.c"
+ goto __catch132_configuration_error;
+ }
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 980 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6460 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally132;
+ __catch132_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 979 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 979 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 982 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 982 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 979 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 6478 "ConfigurationInterfaces.c"
+ }
+ __finally132:
+#line 979 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 979 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 979 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 979 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6489 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_pin_toolbar_state (ConfigurationFacade* self, gboolean state) {
+#line 978 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 978 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_pin_toolbar_state (self, state);
+#line 6499 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_last_crop_height (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT, &_inner_error_);
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6528 "ConfigurationInterfaces.c"
+ goto __catch133_configuration_error;
+ }
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 6537 "ConfigurationInterfaces.c"
+ }
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 991 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6543 "ConfigurationInterfaces.c"
+ }
+ goto __finally133;
+ __catch133_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 990 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 990 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 993 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 993 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 994 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 1;
+#line 994 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 994 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6564 "ConfigurationInterfaces.c"
+ }
+ __finally133:
+#line 990 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 990 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 990 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 6573 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_last_crop_height (ConfigurationFacade* self) {
+#line 989 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 989 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_last_crop_height (self);
+#line 6582 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_last_crop_height (ConfigurationFacade* self, gint choice) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = choice;
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT, _tmp2_, &_inner_error_);
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6606 "ConfigurationInterfaces.c"
+ goto __catch134_configuration_error;
+ }
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1000 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6615 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally134;
+ __catch134_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 999 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 999 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1002 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1002 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 999 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 6633 "ConfigurationInterfaces.c"
+ }
+ __finally134:
+#line 999 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 999 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 999 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 999 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6644 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_last_crop_height (ConfigurationFacade* self, gint choice) {
+#line 998 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 998 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_last_crop_height (self, choice);
+#line 6654 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_last_crop_menu_choice (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE, &_inner_error_);
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6683 "ConfigurationInterfaces.c"
+ goto __catch135_configuration_error;
+ }
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 6692 "ConfigurationInterfaces.c"
+ }
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1011 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6698 "ConfigurationInterfaces.c"
+ }
+ goto __finally135;
+ __catch135_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1010 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1010 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1013 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1013 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1018 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 0;
+#line 1018 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1018 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6719 "ConfigurationInterfaces.c"
+ }
+ __finally135:
+#line 1010 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1010 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1010 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 6728 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_last_crop_menu_choice (ConfigurationFacade* self) {
+#line 1009 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1009 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_last_crop_menu_choice (self);
+#line 6737 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_last_crop_menu_choice (ConfigurationFacade* self, gint choice) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = choice;
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE, _tmp2_, &_inner_error_);
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6761 "ConfigurationInterfaces.c"
+ goto __catch136_configuration_error;
+ }
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1024 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6770 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally136;
+ __catch136_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1023 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1023 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1026 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1026 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1023 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 6788 "ConfigurationInterfaces.c"
+ }
+ __finally136:
+#line 1023 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1023 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1023 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1023 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6799 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_last_crop_menu_choice (ConfigurationFacade* self, gint choice) {
+#line 1022 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1022 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_last_crop_menu_choice (self, choice);
+#line 6809 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_last_crop_width (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH, &_inner_error_);
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6838 "ConfigurationInterfaces.c"
+ goto __catch137_configuration_error;
+ }
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 6847 "ConfigurationInterfaces.c"
+ }
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1035 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6853 "ConfigurationInterfaces.c"
+ }
+ goto __finally137;
+ __catch137_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1034 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1034 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1037 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1037 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1038 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 1;
+#line 1038 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1038 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 6874 "ConfigurationInterfaces.c"
+ }
+ __finally137:
+#line 1034 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1034 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1034 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 6883 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_last_crop_width (ConfigurationFacade* self) {
+#line 1033 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1033 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_last_crop_width (self);
+#line 6892 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_last_crop_width (ConfigurationFacade* self, gint choice) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = choice;
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH, _tmp2_, &_inner_error_);
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6916 "ConfigurationInterfaces.c"
+ goto __catch138_configuration_error;
+ }
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1044 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6925 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally138;
+ __catch138_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1043 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1043 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1046 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1046 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1043 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 6943 "ConfigurationInterfaces.c"
+ }
+ __finally138:
+#line 1043 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1043 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1043 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1043 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 6954 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_last_crop_width (ConfigurationFacade* self, gint choice) {
+#line 1042 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1042 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_last_crop_width (self, choice);
+#line 6964 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_last_used_service (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_LAST_USED_SERVICE, &_inner_error_);
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 6994 "ConfigurationInterfaces.c"
+ goto __catch139_configuration_error;
+ }
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 7003 "ConfigurationInterfaces.c"
+ }
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 1055 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 7015 "ConfigurationInterfaces.c"
+ }
+ goto __finally139;
+ __catch139_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1054 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1054 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1057 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 1057 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 1062 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 1062 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1062 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1062 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 7039 "ConfigurationInterfaces.c"
+ }
+ __finally139:
+#line 1054 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1054 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1054 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 7048 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_last_used_service (ConfigurationFacade* self) {
+#line 1053 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 1053 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_last_used_service (self);
+#line 7057 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_last_used_service (ConfigurationFacade* self, const gchar* service_name) {
+ GError * _inner_error_ = NULL;
+#line 1066 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (service_name != NULL);
+#line 7065 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = service_name;
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_LAST_USED_SERVICE, _tmp2_, &_inner_error_);
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7084 "ConfigurationInterfaces.c"
+ goto __catch140_configuration_error;
+ }
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1068 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7093 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally140;
+ __catch140_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1067 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1067 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1070 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1070 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1067 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 7111 "ConfigurationInterfaces.c"
+ }
+ __finally140:
+#line 1067 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1067 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1067 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1067 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7122 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_last_used_service (ConfigurationFacade* self, const gchar* service_name) {
+#line 1066 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1066 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_last_used_service (self, service_name);
+#line 7132 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_last_used_dataimports_service (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE, &_inner_error_);
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7162 "ConfigurationInterfaces.c"
+ goto __catch141_configuration_error;
+ }
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 7171 "ConfigurationInterfaces.c"
+ }
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 1079 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 7183 "ConfigurationInterfaces.c"
+ }
+ goto __finally141;
+ __catch141_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1078 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1078 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1081 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 1081 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 1086 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("");
+#line 1086 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1086 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1086 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 7207 "ConfigurationInterfaces.c"
+ }
+ __finally141:
+#line 1078 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1078 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1078 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 7216 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_last_used_dataimports_service (ConfigurationFacade* self) {
+#line 1077 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 1077 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_last_used_dataimports_service (self);
+#line 7225 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_last_used_dataimports_service (ConfigurationFacade* self, const gchar* service_name) {
+ GError * _inner_error_ = NULL;
+#line 1090 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (service_name != NULL);
+#line 7233 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = service_name;
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE, _tmp2_, &_inner_error_);
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7252 "ConfigurationInterfaces.c"
+ goto __catch142_configuration_error;
+ }
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1092 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7261 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally142;
+ __catch142_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1091 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1091 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1094 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1094 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1091 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 7279 "ConfigurationInterfaces.c"
+ }
+ __finally142:
+#line 1091 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1091 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1091 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1091 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7290 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_last_used_dataimports_service (ConfigurationFacade* self, const gchar* service_name) {
+#line 1090 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1090 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_last_used_dataimports_service (self, service_name);
+#line 7300 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by) {
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ GError * _inner_error_ = NULL;
+#line 1102 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_order = FALSE;
+#line 1103 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_by = 2;
+#line 7312 "ConfigurationInterfaces.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gint _tmp5_ = 0;
+ ConfigurationEngine* _tmp6_ = NULL;
+ ConfigurationEngine* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING, &_inner_error_);
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7340 "ConfigurationInterfaces.c"
+ goto __catch143_configuration_error;
+ }
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7349 "ConfigurationInterfaces.c"
+ }
+#line 1105 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_order = _tmp0_;
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = configuration_facade_get_engine (self);
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = _tmp6_;
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = configuration_engine_get_int_property (_tmp7_, CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY, &_inner_error_);
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = _tmp8_;
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp9_;
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7369 "ConfigurationInterfaces.c"
+ goto __catch143_configuration_error;
+ }
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7378 "ConfigurationInterfaces.c"
+ }
+#line 1107 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_sort_by = _tmp5_;
+#line 7382 "ConfigurationInterfaces.c"
+ }
+ goto __finally143;
+ __catch143_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp10_ = NULL;
+#line 1104 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1104 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1109 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = err;
+#line 1109 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp10_);
+#line 1104 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 7399 "ConfigurationInterfaces.c"
+ }
+ __finally143:
+#line 1104 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1104 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1104 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1104 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7410 "ConfigurationInterfaces.c"
+ }
+#line 1101 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (sort_order) {
+#line 1101 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *sort_order = _vala_sort_order;
+#line 7416 "ConfigurationInterfaces.c"
+ }
+#line 1101 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (sort_by) {
+#line 1101 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *sort_by = _vala_sort_by;
+#line 7422 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by) {
+#line 1101 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1101 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->get_library_photos_sort (self, sort_order, sort_by);
+#line 7432 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ConfigurationEngine* _tmp3_ = NULL;
+ ConfigurationEngine* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = sort_order;
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING, _tmp2_, &_inner_error_);
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7459 "ConfigurationInterfaces.c"
+ goto __catch144_configuration_error;
+ }
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1115 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7468 "ConfigurationInterfaces.c"
+ }
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_facade_get_engine (self);
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = sort_by;
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp4_, CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY, _tmp5_, &_inner_error_);
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7484 "ConfigurationInterfaces.c"
+ goto __catch144_configuration_error;
+ }
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1117 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7493 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally144;
+ __catch144_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+#line 1114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1120 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 1120 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 1114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 7511 "ConfigurationInterfaces.c"
+ }
+ __finally144:
+#line 1114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1114 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7522 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by) {
+#line 1113 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1113 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_library_photos_sort (self, sort_order, sort_by);
+#line 7532 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_get_library_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions) {
+ gboolean _vala_maximize = FALSE;
+ Dimensions _vala_dimensions = {0};
+ GError * _inner_error_ = NULL;
+#line 1128 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_maximize = FALSE;
+#line 1129 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ dimensions_init (&_vala_dimensions, 1024, 768);
+#line 7544 "ConfigurationInterfaces.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gint w = 0;
+ ConfigurationEngine* _tmp5_ = NULL;
+ ConfigurationEngine* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint h = 0;
+ ConfigurationEngine* _tmp9_ = NULL;
+ ConfigurationEngine* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE, &_inner_error_);
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7579 "ConfigurationInterfaces.c"
+ goto __catch145_configuration_error;
+ }
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7588 "ConfigurationInterfaces.c"
+ }
+#line 1131 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _vala_maximize = _tmp0_;
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = configuration_facade_get_engine (self);
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = _tmp5_;
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = configuration_engine_get_int_property (_tmp6_, CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH, &_inner_error_);
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = _tmp7_;
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ w = _tmp8_;
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7608 "ConfigurationInterfaces.c"
+ goto __catch145_configuration_error;
+ }
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1132 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7617 "ConfigurationInterfaces.c"
+ }
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = configuration_facade_get_engine (self);
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = _tmp9_;
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp11_ = configuration_engine_get_int_property (_tmp10_, CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT, &_inner_error_);
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp12_ = _tmp11_;
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ h = _tmp12_;
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7635 "ConfigurationInterfaces.c"
+ goto __catch145_configuration_error;
+ }
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1133 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7644 "ConfigurationInterfaces.c"
+ }
+#line 1134 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp13_ = w;
+#line 1134 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp14_ = h;
+#line 1134 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ dimensions_init (&_vala_dimensions, _tmp13_, _tmp14_);
+#line 7652 "ConfigurationInterfaces.c"
+ }
+ goto __finally145;
+ __catch145_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp15_ = NULL;
+#line 1130 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1130 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1136 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp15_ = err;
+#line 1136 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp15_);
+#line 1130 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 7669 "ConfigurationInterfaces.c"
+ }
+ __finally145:
+#line 1130 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1130 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1130 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1130 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7680 "ConfigurationInterfaces.c"
+ }
+#line 1127 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (maximize) {
+#line 1127 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *maximize = _vala_maximize;
+#line 7686 "ConfigurationInterfaces.c"
+ }
+#line 1127 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (dimensions) {
+#line 1127 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ *dimensions = _vala_dimensions;
+#line 7692 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_get_library_window_state (ConfigurationFacade* self, gboolean* maximize, Dimensions* dimensions) {
+#line 1127 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1127 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->get_library_window_state (self, maximize, dimensions);
+#line 7702 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_library_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions) {
+ GError * _inner_error_ = NULL;
+#line 1140 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (dimensions != NULL);
+#line 7710 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ConfigurationEngine* _tmp3_ = NULL;
+ ConfigurationEngine* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ ConfigurationEngine* _tmp7_ = NULL;
+ ConfigurationEngine* _tmp8_ = NULL;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = maximize;
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE, _tmp2_, &_inner_error_);
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7737 "ConfigurationInterfaces.c"
+ goto __catch146_configuration_error;
+ }
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1142 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7746 "ConfigurationInterfaces.c"
+ }
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_facade_get_engine (self);
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = *dimensions;
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = _tmp5_.width;
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp4_, CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH, _tmp6_, &_inner_error_);
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7764 "ConfigurationInterfaces.c"
+ goto __catch146_configuration_error;
+ }
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1143 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7773 "ConfigurationInterfaces.c"
+ }
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = configuration_facade_get_engine (self);
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = _tmp7_;
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = *dimensions;
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = _tmp9_.height;
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp8_, CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT, _tmp10_, &_inner_error_);
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7791 "ConfigurationInterfaces.c"
+ goto __catch146_configuration_error;
+ }
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1145 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7800 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally146;
+ __catch146_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp11_ = NULL;
+#line 1141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1148 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp11_ = err;
+#line 1148 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp11_);
+#line 1141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 7818 "ConfigurationInterfaces.c"
+ }
+ __finally146:
+#line 1141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1141 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7829 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_library_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions) {
+#line 1140 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1140 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_library_window_state (self, maximize, dimensions);
+#line 7839 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_modify_originals (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS, &_inner_error_);
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7868 "ConfigurationInterfaces.c"
+ goto __catch147_configuration_error;
+ }
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 7877 "ConfigurationInterfaces.c"
+ }
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1157 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 7883 "ConfigurationInterfaces.c"
+ }
+ goto __finally147;
+ __catch147_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1159 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1159 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1162 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 1162 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1162 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 7904 "ConfigurationInterfaces.c"
+ }
+ __finally147:
+#line 1156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1156 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 7913 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_modify_originals (ConfigurationFacade* self) {
+#line 1155 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1155 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_modify_originals (self);
+#line 7922 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_modify_originals (ConfigurationFacade* self, gboolean modify_originals) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = modify_originals;
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS, _tmp2_, &_inner_error_);
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 7946 "ConfigurationInterfaces.c"
+ goto __catch148_configuration_error;
+ }
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1168 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7955 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally148;
+ __catch148_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1167 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1167 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1170 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1170 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1167 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 7973 "ConfigurationInterfaces.c"
+ }
+ __finally148:
+#line 1167 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1167 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1167 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1167 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 7984 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_modify_originals (ConfigurationFacade* self, gboolean modify_originals) {
+#line 1166 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1166 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_modify_originals (self, modify_originals);
+#line 7994 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_photo_thumbnail_scale (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE, &_inner_error_);
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8023 "ConfigurationInterfaces.c"
+ goto __catch149_configuration_error;
+ }
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8032 "ConfigurationInterfaces.c"
+ }
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1179 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8038 "ConfigurationInterfaces.c"
+ }
+ goto __finally149;
+ __catch149_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1178 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1178 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1181 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1181 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1182 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = thumbnail_get_DEFAULT_SCALE ();
+#line 1182 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = _tmp6_;
+#line 1182 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1182 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1182 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8065 "ConfigurationInterfaces.c"
+ }
+ __finally149:
+#line 1178 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1178 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1178 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8074 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_photo_thumbnail_scale (ConfigurationFacade* self) {
+#line 1177 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1177 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_photo_thumbnail_scale (self);
+#line 8083 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_photo_thumbnail_scale (ConfigurationFacade* self, gint scale) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = scale;
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE, _tmp2_, &_inner_error_);
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8107 "ConfigurationInterfaces.c"
+ goto __catch150_configuration_error;
+ }
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1188 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8116 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally150;
+ __catch150_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1187 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1187 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1190 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1190 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1187 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 8134 "ConfigurationInterfaces.c"
+ }
+ __finally150:
+#line 1187 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1187 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1187 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1187 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8145 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_photo_thumbnail_scale (ConfigurationFacade* self, gint scale) {
+#line 1186 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1186 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_photo_thumbnail_scale (self, scale);
+#line 8155 "ConfigurationInterfaces.c"
+}
+
+
+static gdouble configuration_facade_real_get_printing_content_height (ConfigurationFacade* self) {
+ gdouble result = 0.0;
+ GError * _inner_error_ = NULL;
+ {
+ gdouble _tmp0_ = 0.0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_double_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT, &_inner_error_);
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8184 "ConfigurationInterfaces.c"
+ goto __catch151_configuration_error;
+ }
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 8193 "ConfigurationInterfaces.c"
+ }
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1199 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8199 "ConfigurationInterfaces.c"
+ }
+ goto __finally151;
+ __catch151_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1201 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1201 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1203 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 5.0;
+#line 1203 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1203 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8220 "ConfigurationInterfaces.c"
+ }
+ __finally151:
+#line 1198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1198 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 8229 "ConfigurationInterfaces.c"
+}
+
+
+gdouble configuration_facade_get_printing_content_height (ConfigurationFacade* self) {
+#line 1197 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0.0);
+#line 1197 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_content_height (self);
+#line 8238 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_content_height (ConfigurationFacade* self, gdouble content_height) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = content_height;
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_double_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT, _tmp2_, &_inner_error_);
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8262 "ConfigurationInterfaces.c"
+ goto __catch152_configuration_error;
+ }
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1209 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8271 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally152;
+ __catch152_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1208 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1208 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1212 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1212 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1208 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 8289 "ConfigurationInterfaces.c"
+ }
+ __finally152:
+#line 1208 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1208 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1208 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1208 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8300 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_content_height (ConfigurationFacade* self, gdouble content_height) {
+#line 1207 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1207 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_content_height (self, content_height);
+#line 8310 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_printing_content_layout (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT, &_inner_error_);
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8339 "ConfigurationInterfaces.c"
+ goto __catch153_configuration_error;
+ }
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8348 "ConfigurationInterfaces.c"
+ }
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_ - 1;
+#line 1221 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8354 "ConfigurationInterfaces.c"
+ }
+ goto __finally153;
+ __catch153_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1220 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1220 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1223 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1223 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1225 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 0;
+#line 1225 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1225 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8375 "ConfigurationInterfaces.c"
+ }
+ __finally153:
+#line 1220 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1220 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1220 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8384 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_printing_content_layout (ConfigurationFacade* self) {
+#line 1219 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1219 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_content_layout (self);
+#line 8393 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_content_layout (ConfigurationFacade* self, gint layout_code) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = layout_code;
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT, _tmp2_ + 1, &_inner_error_);
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8417 "ConfigurationInterfaces.c"
+ goto __catch154_configuration_error;
+ }
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1231 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8426 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally154;
+ __catch154_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1230 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1230 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1234 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1234 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1230 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 8444 "ConfigurationInterfaces.c"
+ }
+ __finally154:
+#line 1230 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1230 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1230 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1230 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8455 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_content_layout (ConfigurationFacade* self, gint layout_code) {
+#line 1229 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1229 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_content_layout (self, layout_code);
+#line 8465 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_printing_content_ppi (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI, &_inner_error_);
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8494 "ConfigurationInterfaces.c"
+ goto __catch155_configuration_error;
+ }
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8503 "ConfigurationInterfaces.c"
+ }
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1243 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8509 "ConfigurationInterfaces.c"
+ }
+ goto __finally155;
+ __catch155_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1242 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1242 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1245 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1245 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1247 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 600;
+#line 1247 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1247 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8530 "ConfigurationInterfaces.c"
+ }
+ __finally155:
+#line 1242 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1242 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1242 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8539 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_printing_content_ppi (ConfigurationFacade* self) {
+#line 1241 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1241 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_content_ppi (self);
+#line 8548 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_content_ppi (ConfigurationFacade* self, gint content_ppi) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = content_ppi;
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI, _tmp2_, &_inner_error_);
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8572 "ConfigurationInterfaces.c"
+ goto __catch156_configuration_error;
+ }
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1253 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8581 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally156;
+ __catch156_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1255 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1255 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 8599 "ConfigurationInterfaces.c"
+ }
+ __finally156:
+#line 1252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1252 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8610 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_content_ppi (ConfigurationFacade* self, gint content_ppi) {
+#line 1251 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1251 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_content_ppi (self, content_ppi);
+#line 8620 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_printing_content_units (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS, &_inner_error_);
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8649 "ConfigurationInterfaces.c"
+ goto __catch157_configuration_error;
+ }
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8658 "ConfigurationInterfaces.c"
+ }
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_ - 1;
+#line 1264 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8664 "ConfigurationInterfaces.c"
+ }
+ goto __finally157;
+ __catch157_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1263 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1263 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1266 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1266 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1268 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 0;
+#line 1268 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1268 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8685 "ConfigurationInterfaces.c"
+ }
+ __finally157:
+#line 1263 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1263 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1263 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8694 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_printing_content_units (ConfigurationFacade* self) {
+#line 1262 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1262 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_content_units (self);
+#line 8703 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_content_units (ConfigurationFacade* self, gint units_code) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = units_code;
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS, _tmp2_ + 1, &_inner_error_);
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8727 "ConfigurationInterfaces.c"
+ goto __catch158_configuration_error;
+ }
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1274 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8736 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally158;
+ __catch158_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1277 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1277 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 8754 "ConfigurationInterfaces.c"
+ }
+ __finally158:
+#line 1273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1273 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8765 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_content_units (ConfigurationFacade* self, gint units_code) {
+#line 1272 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1272 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_content_units (self, units_code);
+#line 8775 "ConfigurationInterfaces.c"
+}
+
+
+static gdouble configuration_facade_real_get_printing_content_width (ConfigurationFacade* self) {
+ gdouble result = 0.0;
+ GError * _inner_error_ = NULL;
+ {
+ gdouble _tmp0_ = 0.0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_double_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH, &_inner_error_);
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8804 "ConfigurationInterfaces.c"
+ goto __catch159_configuration_error;
+ }
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 8813 "ConfigurationInterfaces.c"
+ }
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1286 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8819 "ConfigurationInterfaces.c"
+ }
+ goto __finally159;
+ __catch159_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1285 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1285 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1288 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1288 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1290 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 7.0;
+#line 1290 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1290 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8840 "ConfigurationInterfaces.c"
+ }
+ __finally159:
+#line 1285 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1285 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1285 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 8849 "ConfigurationInterfaces.c"
+}
+
+
+gdouble configuration_facade_get_printing_content_width (ConfigurationFacade* self) {
+#line 1284 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0.0);
+#line 1284 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_content_width (self);
+#line 8858 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_content_width (ConfigurationFacade* self, gdouble content_width) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = content_width;
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_double_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH, _tmp2_, &_inner_error_);
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8882 "ConfigurationInterfaces.c"
+ goto __catch160_configuration_error;
+ }
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1296 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8891 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally160;
+ __catch160_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1299 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1299 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 8909 "ConfigurationInterfaces.c"
+ }
+ __finally160:
+#line 1295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1295 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 8920 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_content_width (ConfigurationFacade* self, gdouble content_width) {
+#line 1294 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1294 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_content_width (self, content_width);
+#line 8930 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_printing_images_per_page (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE, &_inner_error_);
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 8959 "ConfigurationInterfaces.c"
+ goto __catch161_configuration_error;
+ }
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 8968 "ConfigurationInterfaces.c"
+ }
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_ - 1;
+#line 1308 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8974 "ConfigurationInterfaces.c"
+ }
+ goto __finally161;
+ __catch161_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1307 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1307 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1310 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1310 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1312 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 0;
+#line 1312 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1312 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 8995 "ConfigurationInterfaces.c"
+ }
+ __finally161:
+#line 1307 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1307 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1307 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 9004 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_printing_images_per_page (ConfigurationFacade* self) {
+#line 1306 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1306 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_images_per_page (self);
+#line 9013 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_images_per_page (ConfigurationFacade* self, gint images_per_page_code) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = images_per_page_code;
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE, _tmp2_ + 1, &_inner_error_);
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9037 "ConfigurationInterfaces.c"
+ goto __catch162_configuration_error;
+ }
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9046 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally162;
+ __catch162_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1317 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1317 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1321 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1321 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1317 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 9064 "ConfigurationInterfaces.c"
+ }
+ __finally162:
+#line 1317 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1317 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1317 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1317 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9075 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_images_per_page (ConfigurationFacade* self, gint images_per_page_code) {
+#line 1316 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1316 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_images_per_page (self, images_per_page_code);
+#line 9085 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_printing_match_aspect_ratio (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO, &_inner_error_);
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9114 "ConfigurationInterfaces.c"
+ goto __catch163_configuration_error;
+ }
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 9123 "ConfigurationInterfaces.c"
+ }
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1330 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9129 "ConfigurationInterfaces.c"
+ }
+ goto __finally163;
+ __catch163_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1332 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1332 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1334 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = TRUE;
+#line 1334 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1334 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9150 "ConfigurationInterfaces.c"
+ }
+ __finally163:
+#line 1329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1329 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 9159 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_printing_match_aspect_ratio (ConfigurationFacade* self) {
+#line 1328 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1328 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_match_aspect_ratio (self);
+#line 9168 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_match_aspect_ratio (ConfigurationFacade* self, gboolean match_aspect_ratio) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = match_aspect_ratio;
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO, _tmp2_, &_inner_error_);
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9192 "ConfigurationInterfaces.c"
+ goto __catch164_configuration_error;
+ }
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1340 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9201 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally164;
+ __catch164_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1343 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1343 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 9219 "ConfigurationInterfaces.c"
+ }
+ __finally164:
+#line 1339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1339 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9230 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_match_aspect_ratio (ConfigurationFacade* self, gboolean match_aspect_ratio) {
+#line 1338 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1338 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_match_aspect_ratio (self, match_aspect_ratio);
+#line 9240 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_printing_print_titles (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES, &_inner_error_);
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9269 "ConfigurationInterfaces.c"
+ goto __catch165_configuration_error;
+ }
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 9278 "ConfigurationInterfaces.c"
+ }
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1352 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9284 "ConfigurationInterfaces.c"
+ }
+ goto __finally165;
+ __catch165_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1351 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1351 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1354 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1354 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1356 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 1356 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1356 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9305 "ConfigurationInterfaces.c"
+ }
+ __finally165:
+#line 1351 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1351 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1351 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 9314 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_printing_print_titles (ConfigurationFacade* self) {
+#line 1350 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1350 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_print_titles (self);
+#line 9323 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_print_titles (ConfigurationFacade* self, gboolean print_titles) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = print_titles;
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES, _tmp2_, &_inner_error_);
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9347 "ConfigurationInterfaces.c"
+ goto __catch166_configuration_error;
+ }
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1362 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9356 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally166;
+ __catch166_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1365 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1365 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 9374 "ConfigurationInterfaces.c"
+ }
+ __finally166:
+#line 1361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1361 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9385 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_print_titles (ConfigurationFacade* self, gboolean print_titles) {
+#line 1360 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1360 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_print_titles (self, print_titles);
+#line 9395 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_printing_size_selection (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION, &_inner_error_);
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9424 "ConfigurationInterfaces.c"
+ goto __catch167_configuration_error;
+ }
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 9433 "ConfigurationInterfaces.c"
+ }
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_ - 1;
+#line 1374 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9439 "ConfigurationInterfaces.c"
+ }
+ goto __finally167;
+ __catch167_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1373 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1373 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1376 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1376 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 0;
+#line 1378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1378 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9460 "ConfigurationInterfaces.c"
+ }
+ __finally167:
+#line 1373 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1373 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1373 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 9469 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_printing_size_selection (ConfigurationFacade* self) {
+#line 1372 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1372 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_size_selection (self);
+#line 9478 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_size_selection (ConfigurationFacade* self, gint size_code) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = size_code;
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION, _tmp2_ + 1, &_inner_error_);
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9502 "ConfigurationInterfaces.c"
+ goto __catch168_configuration_error;
+ }
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1384 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9511 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally168;
+ __catch168_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1383 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1383 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1387 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1387 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1383 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 9529 "ConfigurationInterfaces.c"
+ }
+ __finally168:
+#line 1383 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1383 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9540 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_size_selection (ConfigurationFacade* self, gint size_code) {
+#line 1382 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1382 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_size_selection (self, size_code);
+#line 9550 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_printing_titles_font (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT, &_inner_error_);
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9580 "ConfigurationInterfaces.c"
+ goto __catch169_configuration_error;
+ }
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 9589 "ConfigurationInterfaces.c"
+ }
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 1396 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9601 "ConfigurationInterfaces.c"
+ }
+ goto __finally169;
+ __catch169_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1395 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1395 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 1398 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 1402 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup ("Sans Bold 12");
+#line 1402 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1402 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1402 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9625 "ConfigurationInterfaces.c"
+ }
+ __finally169:
+#line 1395 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1395 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1395 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 9634 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_printing_titles_font (ConfigurationFacade* self) {
+#line 1394 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 1394 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_printing_titles_font (self);
+#line 9643 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_printing_titles_font (ConfigurationFacade* self, const gchar* font_name) {
+ GError * _inner_error_ = NULL;
+#line 1406 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (font_name != NULL);
+#line 9651 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = font_name;
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT, _tmp2_, &_inner_error_);
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9670 "ConfigurationInterfaces.c"
+ goto __catch170_configuration_error;
+ }
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1408 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9679 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally170;
+ __catch170_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1407 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1407 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1410 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1410 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1407 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 9697 "ConfigurationInterfaces.c"
+ }
+ __finally170:
+#line 1407 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1407 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1407 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1407 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9708 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_printing_titles_font (ConfigurationFacade* self, const gchar* font_name) {
+#line 1406 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1406 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_printing_titles_font (self, font_name);
+#line 9718 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_show_welcome_dialog (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG, &_inner_error_);
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9747 "ConfigurationInterfaces.c"
+ goto __catch171_configuration_error;
+ }
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 9756 "ConfigurationInterfaces.c"
+ }
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1419 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9762 "ConfigurationInterfaces.c"
+ }
+ goto __finally171;
+ __catch171_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1418 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1418 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1421 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1423 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = TRUE;
+#line 1423 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1423 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9783 "ConfigurationInterfaces.c"
+ }
+ __finally171:
+#line 1418 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1418 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1418 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 9792 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_show_welcome_dialog (ConfigurationFacade* self) {
+#line 1417 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1417 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_show_welcome_dialog (self);
+#line 9801 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_show_welcome_dialog (ConfigurationFacade* self, gboolean show) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = show;
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG, _tmp2_, &_inner_error_);
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9825 "ConfigurationInterfaces.c"
+ goto __catch172_configuration_error;
+ }
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1429 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9834 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally172;
+ __catch172_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1428 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1428 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1432 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1432 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1428 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 9852 "ConfigurationInterfaces.c"
+ }
+ __finally172:
+#line 1428 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1428 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1428 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1428 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9863 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_show_welcome_dialog (ConfigurationFacade* self, gboolean show) {
+#line 1427 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1427 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_show_welcome_dialog (self, show);
+#line 9873 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_sidebar_position (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_SIDEBAR_POSITION, &_inner_error_);
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9902 "ConfigurationInterfaces.c"
+ goto __catch173_configuration_error;
+ }
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 9911 "ConfigurationInterfaces.c"
+ }
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1441 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9917 "ConfigurationInterfaces.c"
+ }
+ goto __finally173;
+ __catch173_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1440 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1440 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1443 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1445 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 180;
+#line 1445 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1445 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 9938 "ConfigurationInterfaces.c"
+ }
+ __finally173:
+#line 1440 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1440 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1440 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 9947 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_sidebar_position (ConfigurationFacade* self) {
+#line 1439 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1439 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_sidebar_position (self);
+#line 9956 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_sidebar_position (ConfigurationFacade* self, gint position) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = position;
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_SIDEBAR_POSITION, _tmp2_, &_inner_error_);
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 9980 "ConfigurationInterfaces.c"
+ goto __catch174_configuration_error;
+ }
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1451 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 9989 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally174;
+ __catch174_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1450 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1450 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1453 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1453 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1450 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 10007 "ConfigurationInterfaces.c"
+ }
+ __finally174:
+#line 1450 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1450 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1450 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1450 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10018 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_sidebar_position (ConfigurationFacade* self, gint position) {
+#line 1449 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1449 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_sidebar_position (self, position);
+#line 10028 "ConfigurationInterfaces.c"
+}
+
+
+static gdouble configuration_facade_real_get_slideshow_delay (ConfigurationFacade* self) {
+ gdouble result = 0.0;
+ GError * _inner_error_ = NULL;
+ {
+ gdouble _tmp0_ = 0.0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_double_property (_tmp2_, CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY, &_inner_error_);
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10057 "ConfigurationInterfaces.c"
+ goto __catch175_configuration_error;
+ }
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 10066 "ConfigurationInterfaces.c"
+ }
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1462 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10072 "ConfigurationInterfaces.c"
+ }
+ goto __finally175;
+ __catch175_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1461 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1461 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1464 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1464 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 3.0;
+#line 1466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1466 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10093 "ConfigurationInterfaces.c"
+ }
+ __finally175:
+#line 1461 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1461 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1461 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 10102 "ConfigurationInterfaces.c"
+}
+
+
+gdouble configuration_facade_get_slideshow_delay (ConfigurationFacade* self) {
+#line 1460 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0.0);
+#line 1460 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_slideshow_delay (self);
+#line 10111 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_slideshow_delay (ConfigurationFacade* self, gdouble delay) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = delay;
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_double_property (_tmp1_, CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY, _tmp2_, &_inner_error_);
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10135 "ConfigurationInterfaces.c"
+ goto __catch176_configuration_error;
+ }
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1472 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10144 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally176;
+ __catch176_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1474 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1474 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 10162 "ConfigurationInterfaces.c"
+ }
+ __finally176:
+#line 1471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1471 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10173 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_slideshow_delay (ConfigurationFacade* self, gdouble delay) {
+#line 1470 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1470 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_slideshow_delay (self, delay);
+#line 10183 "ConfigurationInterfaces.c"
+}
+
+
+static gdouble configuration_facade_real_get_slideshow_transition_delay (ConfigurationFacade* self) {
+ gdouble result = 0.0;
+ GError * _inner_error_ = NULL;
+ {
+ gdouble _tmp0_ = 0.0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_double_property (_tmp2_, CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY, &_inner_error_);
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10212 "ConfigurationInterfaces.c"
+ goto __catch177_configuration_error;
+ }
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 10221 "ConfigurationInterfaces.c"
+ }
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1483 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10227 "ConfigurationInterfaces.c"
+ }
+ goto __finally177;
+ __catch177_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1482 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1482 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1486 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1486 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1488 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = 0.3;
+#line 1488 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1488 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10248 "ConfigurationInterfaces.c"
+ }
+ __finally177:
+#line 1482 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1482 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1482 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0.0;
+#line 10257 "ConfigurationInterfaces.c"
+}
+
+
+gdouble configuration_facade_get_slideshow_transition_delay (ConfigurationFacade* self) {
+#line 1481 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0.0);
+#line 1481 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_slideshow_transition_delay (self);
+#line 10266 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_slideshow_transition_delay (ConfigurationFacade* self, gdouble delay) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = delay;
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_double_property (_tmp1_, CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY, _tmp2_, &_inner_error_);
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10290 "ConfigurationInterfaces.c"
+ goto __catch178_configuration_error;
+ }
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1494 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10299 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally178;
+ __catch178_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1493 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1493 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1497 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1497 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1493 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 10317 "ConfigurationInterfaces.c"
+ }
+ __finally178:
+#line 1493 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1493 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1493 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1493 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10328 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_slideshow_transition_delay (ConfigurationFacade* self, gdouble delay) {
+#line 1492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1492 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_slideshow_transition_delay (self, delay);
+#line 10338 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_slideshow_transition_effect_id (ConfigurationFacade* self) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+ {
+ gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_string_property (_tmp2_, CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID, &_inner_error_);
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10368 "ConfigurationInterfaces.c"
+ goto __catch179_configuration_error;
+ }
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 10377 "ConfigurationInterfaces.c"
+ }
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = _tmp0_;
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = NULL;
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp5_;
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp0_);
+#line 1506 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10389 "ConfigurationInterfaces.c"
+ }
+ goto __finally179;
+ __catch179_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 1505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1509 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = err;
+#line 1509 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp6_);
+#line 1513 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_strdup (TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID);
+#line 1513 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1513 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1513 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10413 "ConfigurationInterfaces.c"
+ }
+ __finally179:
+#line 1505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1505 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return NULL;
+#line 10422 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_slideshow_transition_effect_id (ConfigurationFacade* self) {
+#line 1504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 1504 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_slideshow_transition_effect_id (self);
+#line 10431 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_slideshow_transition_effect_id (ConfigurationFacade* self, const gchar* id) {
+ GError * _inner_error_ = NULL;
+#line 1517 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (id != NULL);
+#line 10439 "ConfigurationInterfaces.c"
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = id;
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_string_property (_tmp1_, CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID, _tmp2_, &_inner_error_);
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10458 "ConfigurationInterfaces.c"
+ goto __catch180_configuration_error;
+ }
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1519 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10467 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally180;
+ __catch180_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1522 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1522 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 10485 "ConfigurationInterfaces.c"
+ }
+ __finally180:
+#line 1518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1518 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10496 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_slideshow_transition_effect_id (ConfigurationFacade* self, const gchar* id) {
+#line 1517 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1517 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_slideshow_transition_effect_id (self, id);
+#line 10506 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_slideshow_show_title (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE, &_inner_error_);
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10535 "ConfigurationInterfaces.c"
+ goto __catch181_configuration_error;
+ }
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 10544 "ConfigurationInterfaces.c"
+ }
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1531 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10550 "ConfigurationInterfaces.c"
+ }
+ goto __finally181;
+ __catch181_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1530 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1530 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1533 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1533 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1535 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 1535 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1535 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10571 "ConfigurationInterfaces.c"
+ }
+ __finally181:
+#line 1530 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1530 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1530 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 10580 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_slideshow_show_title (ConfigurationFacade* self) {
+#line 1529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1529 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_slideshow_show_title (self);
+#line 10589 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_slideshow_show_title (ConfigurationFacade* self, gboolean show_title) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = show_title;
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE, _tmp2_, &_inner_error_);
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10613 "ConfigurationInterfaces.c"
+ goto __catch182_configuration_error;
+ }
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1541 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10622 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally182;
+ __catch182_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1540 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1540 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1543 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1543 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1540 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 10640 "ConfigurationInterfaces.c"
+ }
+ __finally182:
+#line 1540 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1540 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1540 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1540 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10651 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_slideshow_show_title (ConfigurationFacade* self, gboolean show_title) {
+#line 1539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1539 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_slideshow_show_title (self, show_title);
+#line 10661 "ConfigurationInterfaces.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 10676 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* g_time_format (struct tm *self, const gchar* format) {
+ gchar* result = NULL;
+ gchar* buffer = NULL;
+ gchar* _tmp0_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+#line 2709 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (format != NULL, NULL);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 64);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = _tmp0_;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer_length1 = 64;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _buffer_size_ = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = buffer;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = format;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ strftime (_tmp1_, _tmp1__length1, _tmp2_, &(*self));
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = buffer;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = buffer_length1;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_strdup ((const gchar*) _tmp3_);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = (g_free (buffer), NULL);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 10722 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_use_24_hour_time (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME, &_inner_error_);
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10751 "ConfigurationInterfaces.c"
+ goto __catch183_configuration_error;
+ }
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 10760 "ConfigurationInterfaces.c"
+ }
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1552 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10766 "ConfigurationInterfaces.c"
+ }
+ goto __finally183;
+ __catch183_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+ struct tm _tmp6_ = {0};
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 1551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1554 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_time_local ((time_t) 0, &_tmp6_);
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = g_time_format (&_tmp6_, "%p");
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = _tmp7_;
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = is_string_empty (_tmp8_);
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = _tmp9_;
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_tmp8_);
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp10_;
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1558 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10804 "ConfigurationInterfaces.c"
+ }
+ __finally183:
+#line 1551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1551 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 10813 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_use_24_hour_time (ConfigurationFacade* self) {
+#line 1550 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1550 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_use_24_hour_time (self);
+#line 10822 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_use_24_hour_time (ConfigurationFacade* self, gboolean use_24_hour_time) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = use_24_hour_time;
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME, _tmp2_, &_inner_error_);
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10846 "ConfigurationInterfaces.c"
+ goto __catch184_configuration_error;
+ }
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1564 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10855 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally184;
+ __catch184_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1566 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 10873 "ConfigurationInterfaces.c"
+ }
+ __finally184:
+#line 1563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1563 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 10884 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_use_24_hour_time (ConfigurationFacade* self, gboolean use_24_hour_time) {
+#line 1562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1562 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_use_24_hour_time (self, use_24_hour_time);
+#line 10894 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_use_lowercase_filenames (ConfigurationFacade* self) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+ {
+ gboolean _tmp0_ = FALSE;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_bool_property (_tmp2_, CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES, &_inner_error_);
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 10923 "ConfigurationInterfaces.c"
+ goto __catch185_configuration_error;
+ }
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 10932 "ConfigurationInterfaces.c"
+ }
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1575 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10938 "ConfigurationInterfaces.c"
+ }
+ goto __finally185;
+ __catch185_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1574 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1574 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1577 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1577 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1579 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = FALSE;
+#line 1579 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1579 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 10959 "ConfigurationInterfaces.c"
+ }
+ __finally185:
+#line 1574 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1574 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1574 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return FALSE;
+#line 10968 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_use_lowercase_filenames (ConfigurationFacade* self) {
+#line 1573 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1573 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_use_lowercase_filenames (self);
+#line 10977 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_use_lowercase_filenames (ConfigurationFacade* self, gboolean b) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = b;
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_bool_property (_tmp1_, CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES, _tmp2_, &_inner_error_);
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 11001 "ConfigurationInterfaces.c"
+ goto __catch186_configuration_error;
+ }
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1585 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 11010 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally186;
+ __catch186_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1584 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1584 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1587 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1584 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 11028 "ConfigurationInterfaces.c"
+ }
+ __finally186:
+#line 1584 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1584 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1584 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1584 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 11039 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_use_lowercase_filenames (ConfigurationFacade* self, gboolean b) {
+#line 1583 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1583 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_use_lowercase_filenames (self, b);
+#line 11049 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_video_interpreter_state_cookie (ConfigurationFacade* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+ {
+ gint _tmp0_ = 0;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_get_int_property (_tmp2_, CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE, &_inner_error_);
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = _tmp4_;
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 11078 "ConfigurationInterfaces.c"
+ goto __catch187_configuration_error;
+ }
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 11087 "ConfigurationInterfaces.c"
+ }
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp0_;
+#line 1596 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 11093 "ConfigurationInterfaces.c"
+ }
+ goto __finally187;
+ __catch187_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+#line 1595 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1595 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = err;
+#line 1599 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp5_);
+#line 1601 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = -1;
+#line 1601 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 1601 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 11114 "ConfigurationInterfaces.c"
+ }
+ __finally187:
+#line 1595 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1595 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1595 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return 0;
+#line 11123 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_video_interpreter_state_cookie (ConfigurationFacade* self) {
+#line 1594 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1594 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_video_interpreter_state_cookie (self);
+#line 11132 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_video_interpreter_state_cookie (ConfigurationFacade* self, gint state_cookie) {
+ GError * _inner_error_ = NULL;
+ {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = state_cookie;
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_int_property (_tmp1_, CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE, _tmp2_, &_inner_error_);
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 11156 "ConfigurationInterfaces.c"
+ goto __catch188_configuration_error;
+ }
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1607 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 11165 "ConfigurationInterfaces.c"
+ }
+ }
+ goto __finally188;
+ __catch188_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 1606 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ err = _inner_error_;
+#line 1606 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _inner_error_ = NULL;
+#line 1610 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = err;
+#line 1610 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_on_configuration_error (self, _tmp3_);
+#line 1606 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_error_free0 (err);
+#line 11183 "ConfigurationInterfaces.c"
+ }
+ __finally188:
+#line 1606 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1606 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1606 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_clear_error (&_inner_error_);
+#line 1606 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return;
+#line 11194 "ConfigurationInterfaces.c"
+ }
+}
+
+
+void configuration_facade_set_video_interpreter_state_cookie (ConfigurationFacade* self, gint state_cookie) {
+#line 1605 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1605 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_video_interpreter_state_cookie (self, state_cookie);
+#line 11204 "ConfigurationInterfaces.c"
+}
+
+
+static gboolean configuration_facade_real_get_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def) {
+ gboolean result = FALSE;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 1617 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (domain != NULL, FALSE);
+#line 1617 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (id != NULL, FALSE);
+#line 1617 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = def;
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = configuration_engine_get_plugin_bool (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = _tmp6_;
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1618 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 11246 "ConfigurationInterfaces.c"
+}
+
+
+gboolean configuration_facade_get_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def) {
+#line 1617 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), FALSE);
+#line 1617 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_plugin_bool (self, domain, id, key, def);
+#line 11255 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val) {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 1621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (domain != NULL);
+#line 1621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (id != NULL);
+#line 1621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (key != NULL);
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = val;
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_plugin_bool (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1622 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 11288 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_facade_set_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val) {
+#line 1621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1621 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_plugin_bool (self, domain, id, key, val);
+#line 11297 "ConfigurationInterfaces.c"
+}
+
+
+static gdouble configuration_facade_real_get_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def) {
+ gdouble result = 0.0;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+#line 1625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (domain != NULL, 0.0);
+#line 1625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (id != NULL, 0.0);
+#line 1625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (key != NULL, 0.0);
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = def;
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = configuration_engine_get_plugin_double (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = _tmp6_;
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1626 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 11339 "ConfigurationInterfaces.c"
+}
+
+
+gdouble configuration_facade_get_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def) {
+#line 1625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0.0);
+#line 1625 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_plugin_double (self, domain, id, key, def);
+#line 11348 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val) {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+#line 1629 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (domain != NULL);
+#line 1629 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (id != NULL);
+#line 1629 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (key != NULL);
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = val;
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_plugin_double (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1630 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 11381 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_facade_set_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val) {
+#line 1629 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1629 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_plugin_double (self, domain, id, key, val);
+#line 11390 "ConfigurationInterfaces.c"
+}
+
+
+static gint configuration_facade_real_get_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def) {
+ gint result = 0;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1633 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (domain != NULL, 0);
+#line 1633 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (id != NULL, 0);
+#line 1633 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = def;
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = configuration_engine_get_plugin_int (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = _tmp6_;
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp7_;
+#line 1634 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 11432 "ConfigurationInterfaces.c"
+}
+
+
+gint configuration_facade_get_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def) {
+#line 1633 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1633 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_plugin_int (self, domain, id, key, def);
+#line 11441 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val) {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 1637 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (domain != NULL);
+#line 1637 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (id != NULL);
+#line 1637 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (key != NULL);
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = val;
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_plugin_int (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1638 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 11474 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_facade_set_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val) {
+#line 1637 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1637 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_plugin_int (self, domain, id, key, val);
+#line 11483 "ConfigurationInterfaces.c"
+}
+
+
+static gchar* configuration_facade_real_get_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 1641 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (domain != NULL, NULL);
+#line 1641 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 1641 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = def;
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = configuration_engine_get_plugin_string (_tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp7_ = _tmp6_;
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1642 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _result_ = _tmp7_;
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp9_ = _result_;
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (g_strcmp0 (_tmp9_, "") == 0) {
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = NULL;
+#line 11533 "ConfigurationInterfaces.c"
+ } else {
+ const gchar* _tmp10_ = NULL;
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp10_ = _result_;
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp8_ = _tmp10_;
+#line 11540 "ConfigurationInterfaces.c"
+ }
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp11_ = g_strdup (_tmp8_);
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp11_;
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_free0 (_result_);
+#line 1643 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 11550 "ConfigurationInterfaces.c"
+}
+
+
+gchar* configuration_facade_get_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def) {
+#line 1641 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), NULL);
+#line 1641 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->get_plugin_string (self, domain, id, key, def);
+#line 11559 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val) {
+ const gchar* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ ConfigurationEngine* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 1646 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (domain != NULL);
+#line 1646 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (id != NULL);
+#line 1646 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (key != NULL);
+#line 1647 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = val;
+#line 1647 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ if (_tmp0_ == NULL) {
+#line 1648 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ val = "";
+#line 11583 "ConfigurationInterfaces.c"
+ }
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = configuration_facade_get_engine (self);
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = domain;
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = id;
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp5_ = key;
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp6_ = val;
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_plugin_string (_tmp2_, _tmp3_, _tmp4_, _tmp5_, _tmp6_);
+#line 1650 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp2_);
+#line 11601 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_facade_set_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val) {
+#line 1646 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1646 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_plugin_string (self, domain, id, key, val);
+#line 11610 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_unset_plugin_key (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key) {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 1653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (domain != NULL);
+#line 1653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (id != NULL);
+#line 1653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (key != NULL);
+#line 1654 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1654 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1654 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = domain;
+#line 1654 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = id;
+#line 1654 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = key;
+#line 1654 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_unset_plugin_key (_tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 1654 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 11640 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_facade_unset_plugin_key (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key) {
+#line 1653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1653 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->unset_plugin_key (self, domain, id, key);
+#line 11649 "ConfigurationInterfaces.c"
+}
+
+
+static FuzzyPropertyState configuration_facade_real_is_plugin_enabled (ConfigurationFacade* self, const gchar* id) {
+ FuzzyPropertyState result = 0;
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ FuzzyPropertyState _tmp3_ = 0;
+ FuzzyPropertyState _tmp4_ = 0;
+#line 1660 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (id != NULL, 0);
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = id;
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = configuration_engine_is_plugin_enabled (_tmp1_, _tmp2_);
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ result = _tmp4_;
+#line 1661 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return result;
+#line 11678 "ConfigurationInterfaces.c"
+}
+
+
+FuzzyPropertyState configuration_facade_is_plugin_enabled (ConfigurationFacade* self, const gchar* id) {
+#line 1660 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_val_if_fail (IS_CONFIGURATION_FACADE (self), 0);
+#line 1660 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ return CONFIGURATION_FACADE_GET_CLASS (self)->is_plugin_enabled (self, id);
+#line 11687 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_real_set_plugin_enabled (ConfigurationFacade* self, const gchar* id, gboolean enabled) {
+ ConfigurationEngine* _tmp0_ = NULL;
+ ConfigurationEngine* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (id != NULL);
+#line 1665 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp0_ = configuration_facade_get_engine (self);
+#line 1665 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp1_ = _tmp0_;
+#line 1665 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp2_ = id;
+#line 1665 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _tmp3_ = enabled;
+#line 1665 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_engine_set_plugin_enabled (_tmp1_, _tmp2_, _tmp3_);
+#line 1665 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (_tmp1_);
+#line 11710 "ConfigurationInterfaces.c"
+}
+
+
+void configuration_facade_set_plugin_enabled (ConfigurationFacade* self, const gchar* id, gboolean enabled) {
+#line 1664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_return_if_fail (IS_CONFIGURATION_FACADE (self));
+#line 1664 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ CONFIGURATION_FACADE_GET_CLASS (self)->set_plugin_enabled (self, id, enabled);
+#line 11719 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_class_init (ConfigurationFacadeClass * klass) {
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ configuration_facade_parent_class = g_type_class_peek_parent (klass);
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_type_class_add_private (klass, sizeof (ConfigurationFacadePrivate));
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_auto_import_from_library = configuration_facade_real_get_auto_import_from_library;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_auto_import_from_library = configuration_facade_real_set_auto_import_from_library;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_bg_color_name = configuration_facade_real_get_bg_color_name;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_bg_color_name = configuration_facade_real_set_bg_color_name;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_commit_metadata_to_masters = configuration_facade_real_get_commit_metadata_to_masters;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_commit_metadata_to_masters = configuration_facade_real_set_commit_metadata_to_masters;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_desktop_background = configuration_facade_real_get_desktop_background;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_desktop_background = configuration_facade_real_set_desktop_background;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_screensaver = configuration_facade_real_get_screensaver;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_screensaver = configuration_facade_real_set_screensaver;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_directory_pattern = configuration_facade_real_get_directory_pattern;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_directory_pattern = configuration_facade_real_set_directory_pattern;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_directory_pattern_custom = configuration_facade_real_get_directory_pattern_custom;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_directory_pattern_custom = configuration_facade_real_set_directory_pattern_custom;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_direct_window_state = configuration_facade_real_get_direct_window_state;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_direct_window_state = configuration_facade_real_set_direct_window_state;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_basic_properties = configuration_facade_real_get_display_basic_properties;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_basic_properties = configuration_facade_real_set_display_basic_properties;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_extended_properties = configuration_facade_real_get_display_extended_properties;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_extended_properties = configuration_facade_real_set_display_extended_properties;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_sidebar = configuration_facade_real_get_display_sidebar;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_sidebar = configuration_facade_real_set_display_sidebar;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_toolbar = configuration_facade_real_get_display_toolbar;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_toolbar = configuration_facade_real_set_display_toolbar;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_search_bar = configuration_facade_real_get_display_search_bar;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_search_bar = configuration_facade_real_set_display_search_bar;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_photo_ratings = configuration_facade_real_get_display_photo_ratings;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_photo_ratings = configuration_facade_real_set_display_photo_ratings;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_photo_tags = configuration_facade_real_get_display_photo_tags;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_photo_tags = configuration_facade_real_set_display_photo_tags;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_photo_titles = configuration_facade_real_get_display_photo_titles;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_photo_titles = configuration_facade_real_set_display_photo_titles;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_photo_comments = configuration_facade_real_get_display_photo_comments;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_photo_comments = configuration_facade_real_set_display_photo_comments;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_display_event_comments = configuration_facade_real_get_display_event_comments;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_display_event_comments = configuration_facade_real_set_display_event_comments;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_event_photos_sort = configuration_facade_real_get_event_photos_sort;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_event_photos_sort = configuration_facade_real_set_event_photos_sort;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_events_sort_ascending = configuration_facade_real_get_events_sort_ascending;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_events_sort_ascending = configuration_facade_real_set_events_sort_ascending;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_external_photo_app = configuration_facade_real_get_external_photo_app;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_external_photo_app = configuration_facade_real_set_external_photo_app;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_external_raw_app = configuration_facade_real_get_external_raw_app;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_external_raw_app = configuration_facade_real_set_external_raw_app;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_default_raw_developer = configuration_facade_real_get_default_raw_developer;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_default_raw_developer = configuration_facade_real_set_default_raw_developer;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_hide_photos_already_imported = configuration_facade_real_get_hide_photos_already_imported;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_hide_photos_already_imported = configuration_facade_real_set_hide_photos_already_imported;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_import_dir = configuration_facade_real_get_import_dir;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_import_dir = configuration_facade_real_set_import_dir;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_keep_relativity = configuration_facade_real_get_keep_relativity;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_keep_relativity = configuration_facade_real_set_keep_relativity;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_pin_toolbar_state = configuration_facade_real_get_pin_toolbar_state;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_pin_toolbar_state = configuration_facade_real_set_pin_toolbar_state;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_last_crop_height = configuration_facade_real_get_last_crop_height;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_last_crop_height = configuration_facade_real_set_last_crop_height;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_last_crop_menu_choice = configuration_facade_real_get_last_crop_menu_choice;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_last_crop_menu_choice = configuration_facade_real_set_last_crop_menu_choice;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_last_crop_width = configuration_facade_real_get_last_crop_width;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_last_crop_width = configuration_facade_real_set_last_crop_width;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_last_used_service = configuration_facade_real_get_last_used_service;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_last_used_service = configuration_facade_real_set_last_used_service;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_last_used_dataimports_service = configuration_facade_real_get_last_used_dataimports_service;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_last_used_dataimports_service = configuration_facade_real_set_last_used_dataimports_service;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_library_photos_sort = configuration_facade_real_get_library_photos_sort;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_library_photos_sort = configuration_facade_real_set_library_photos_sort;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_library_window_state = configuration_facade_real_get_library_window_state;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_library_window_state = configuration_facade_real_set_library_window_state;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_modify_originals = configuration_facade_real_get_modify_originals;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_modify_originals = configuration_facade_real_set_modify_originals;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_photo_thumbnail_scale = configuration_facade_real_get_photo_thumbnail_scale;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_photo_thumbnail_scale = configuration_facade_real_set_photo_thumbnail_scale;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_content_height = configuration_facade_real_get_printing_content_height;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_content_height = configuration_facade_real_set_printing_content_height;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_content_layout = configuration_facade_real_get_printing_content_layout;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_content_layout = configuration_facade_real_set_printing_content_layout;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_content_ppi = configuration_facade_real_get_printing_content_ppi;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_content_ppi = configuration_facade_real_set_printing_content_ppi;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_content_units = configuration_facade_real_get_printing_content_units;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_content_units = configuration_facade_real_set_printing_content_units;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_content_width = configuration_facade_real_get_printing_content_width;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_content_width = configuration_facade_real_set_printing_content_width;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_images_per_page = configuration_facade_real_get_printing_images_per_page;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_images_per_page = configuration_facade_real_set_printing_images_per_page;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_match_aspect_ratio = configuration_facade_real_get_printing_match_aspect_ratio;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_match_aspect_ratio = configuration_facade_real_set_printing_match_aspect_ratio;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_print_titles = configuration_facade_real_get_printing_print_titles;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_print_titles = configuration_facade_real_set_printing_print_titles;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_size_selection = configuration_facade_real_get_printing_size_selection;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_size_selection = configuration_facade_real_set_printing_size_selection;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_printing_titles_font = configuration_facade_real_get_printing_titles_font;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_printing_titles_font = configuration_facade_real_set_printing_titles_font;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_show_welcome_dialog = configuration_facade_real_get_show_welcome_dialog;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_show_welcome_dialog = configuration_facade_real_set_show_welcome_dialog;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_sidebar_position = configuration_facade_real_get_sidebar_position;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_sidebar_position = configuration_facade_real_set_sidebar_position;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_slideshow_delay = configuration_facade_real_get_slideshow_delay;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_slideshow_delay = configuration_facade_real_set_slideshow_delay;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_slideshow_transition_delay = configuration_facade_real_get_slideshow_transition_delay;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_slideshow_transition_delay = configuration_facade_real_set_slideshow_transition_delay;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_slideshow_transition_effect_id = configuration_facade_real_get_slideshow_transition_effect_id;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_slideshow_transition_effect_id = configuration_facade_real_set_slideshow_transition_effect_id;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_slideshow_show_title = configuration_facade_real_get_slideshow_show_title;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_slideshow_show_title = configuration_facade_real_set_slideshow_show_title;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_use_24_hour_time = configuration_facade_real_get_use_24_hour_time;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_use_24_hour_time = configuration_facade_real_set_use_24_hour_time;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_use_lowercase_filenames = configuration_facade_real_get_use_lowercase_filenames;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_use_lowercase_filenames = configuration_facade_real_set_use_lowercase_filenames;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_video_interpreter_state_cookie = configuration_facade_real_get_video_interpreter_state_cookie;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_video_interpreter_state_cookie = configuration_facade_real_set_video_interpreter_state_cookie;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_plugin_bool = configuration_facade_real_get_plugin_bool;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_plugin_bool = configuration_facade_real_set_plugin_bool;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_plugin_double = configuration_facade_real_get_plugin_double;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_plugin_double = configuration_facade_real_set_plugin_double;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_plugin_int = configuration_facade_real_get_plugin_int;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_plugin_int = configuration_facade_real_set_plugin_int;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->get_plugin_string = configuration_facade_real_get_plugin_string;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_plugin_string = configuration_facade_real_set_plugin_string;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->unset_plugin_key = configuration_facade_real_unset_plugin_key;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->is_plugin_enabled = configuration_facade_real_is_plugin_enabled;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ ((ConfigurationFacadeClass *) klass)->set_plugin_enabled = configuration_facade_real_set_plugin_enabled;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ G_OBJECT_CLASS (klass)->finalize = configuration_facade_finalize;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_new ("auto_import_from_library_changed", TYPE_CONFIGURATION_FACADE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_new ("bg_color_name_changed", TYPE_CONFIGURATION_FACADE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_new ("commit_metadata_to_masters_changed", TYPE_CONFIGURATION_FACADE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_new ("events_sort_ascending_changed", TYPE_CONFIGURATION_FACADE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_new ("external_app_changed", TYPE_CONFIGURATION_FACADE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ g_signal_new ("import_directory_changed", TYPE_CONFIGURATION_FACADE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 11984 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_instance_init (ConfigurationFacade * self) {
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ self->priv = CONFIGURATION_FACADE_GET_PRIVATE (self);
+#line 11991 "ConfigurationInterfaces.c"
+}
+
+
+static void configuration_facade_finalize (GObject* obj) {
+ ConfigurationFacade * self;
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CONFIGURATION_FACADE, ConfigurationFacade);
+#line 319 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ _g_object_unref0 (self->priv->engine);
+#line 318 "/home/jens/Source/shotwell/src/config/ConfigurationInterfaces.vala"
+ G_OBJECT_CLASS (configuration_facade_parent_class)->finalize (obj);
+#line 12003 "ConfigurationInterfaces.c"
+}
+
+
+GType configuration_facade_get_type (void) {
+ static volatile gsize configuration_facade_type_id__volatile = 0;
+ if (g_once_init_enter (&configuration_facade_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ConfigurationFacadeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) configuration_facade_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigurationFacade), 0, (GInstanceInitFunc) configuration_facade_instance_init, NULL };
+ GType configuration_facade_type_id;
+ configuration_facade_type_id = g_type_register_static (G_TYPE_OBJECT, "ConfigurationFacade", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&configuration_facade_type_id__volatile, configuration_facade_type_id);
+ }
+ return configuration_facade_type_id__volatile;
+}
+
+
+
diff --git a/src/config/ConfigurationInterfaces.vala b/src/config/ConfigurationInterfaces.vala
index 03e7f59..9414f49 100644
--- a/src/config/ConfigurationInterfaces.vala
+++ b/src/config/ConfigurationInterfaces.vala
@@ -36,6 +36,7 @@ public enum ConfigurableProperty {
DISPLAY_EVENT_COMMENTS,
DISPLAY_EXTENDED_PROPERTIES,
DISPLAY_SIDEBAR,
+ DISPLAY_TOOLBAR,
DISPLAY_SEARCH_BAR,
DISPLAY_PHOTO_RATINGS,
DISPLAY_PHOTO_TAGS,
@@ -132,6 +133,9 @@ public enum ConfigurableProperty {
case DISPLAY_SIDEBAR:
return "DISPLAY_SIDEBAR";
+
+ case DISPLAY_TOOLBAR:
+ return "DISPLAY_TOOLBAR";
case DISPLAY_SEARCH_BAR:
return "DISPLAY_SEARCH_BAR";
@@ -630,6 +634,28 @@ public abstract class ConfigurationFacade : Object {
}
}
+
+ //
+ // display toolbar
+ //
+ public virtual bool get_display_toolbar() {
+ try {
+ return get_engine().get_bool_property(ConfigurableProperty.DISPLAY_TOOLBAR);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+
+ return false;
+ }
+ }
+
+ public virtual void set_display_toolbar(bool display) {
+ try {
+ get_engine().set_bool_property(ConfigurableProperty.DISPLAY_TOOLBAR, display);
+ } catch (ConfigurationError err) {
+ on_configuration_error(err);
+ }
+ }
+
//
// display search & filter toolbar
//
diff --git a/src/config/GSettingsEngine.c b/src/config/GSettingsEngine.c
new file mode 100644
index 0000000..c27e400
--- /dev/null
+++ b/src/config/GSettingsEngine.c
@@ -0,0 +1,5519 @@
+/* GSettingsEngine.c generated by valac 0.32.1, the Vala compiler
+ * generated from GSettingsEngine.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <gee.h>
+#include <gio/gio.h>
+
+
+#define TYPE_CONFIGURATION_ENGINE (configuration_engine_get_type ())
+#define CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_ENGINE, ConfigurationEngine))
+#define IS_CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_ENGINE))
+#define CONFIGURATION_ENGINE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONFIGURATION_ENGINE, ConfigurationEngineIface))
+
+typedef struct _ConfigurationEngine ConfigurationEngine;
+typedef struct _ConfigurationEngineIface ConfigurationEngineIface;
+
+#define TYPE_CONFIGURABLE_PROPERTY (configurable_property_get_type ())
+
+#define TYPE_FUZZY_PROPERTY_STATE (fuzzy_property_state_get_type ())
+
+#define TYPE_GSETTINGS_CONFIGURATION_ENGINE (gsettings_configuration_engine_get_type ())
+#define GSETTINGS_CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine))
+#define GSETTINGS_CONFIGURATION_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngineClass))
+#define IS_GSETTINGS_CONFIGURATION_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GSETTINGS_CONFIGURATION_ENGINE))
+#define IS_GSETTINGS_CONFIGURATION_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GSETTINGS_CONFIGURATION_ENGINE))
+#define GSETTINGS_CONFIGURATION_ENGINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngineClass))
+
+typedef struct _GSettingsConfigurationEngine GSettingsConfigurationEngine;
+typedef struct _GSettingsConfigurationEngineClass GSettingsConfigurationEngineClass;
+typedef struct _GSettingsConfigurationEnginePrivate GSettingsConfigurationEnginePrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+typedef enum {
+ CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY = 0,
+ CONFIGURABLE_PROPERTY_BG_COLOR_NAME,
+ CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS,
+ CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE,
+ CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE,
+ CONFIGURABLE_PROPERTY_SCREENSAVER_FILE,
+ CONFIGURABLE_PROPERTY_SCREENSAVER_MODE,
+ CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN,
+ CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE,
+ CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH,
+ CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES,
+ CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS,
+ CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES,
+ CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES,
+ CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS,
+ CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY,
+ CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP,
+ CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP,
+ CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED,
+ CONFIGURABLE_PROPERTY_IMPORT_DIR,
+ CONFIGURABLE_PROPERTY_KEEP_RELATIVITY,
+ CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT,
+ CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE,
+ CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH,
+ CONFIGURABLE_PROPERTY_LAST_USED_SERVICE,
+ CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE,
+ CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING,
+ CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE,
+ CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH,
+ CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS,
+ CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE,
+ CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS,
+ CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH,
+ CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE,
+ CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO,
+ CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES,
+ CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION,
+ CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT,
+ CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT,
+ CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG,
+ CONFIGURABLE_PROPERTY_SIDEBAR_POSITION,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID,
+ CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE,
+ CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME,
+ CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES,
+ CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE,
+ CONFIGURABLE_PROPERTY_NUM_PROPERTIES
+} ConfigurableProperty;
+
+typedef enum {
+ CONFIGURATION_ERROR_PROPERTY_HAS_NO_VALUE,
+ CONFIGURATION_ERROR_ENGINE_ERROR
+} ConfigurationError;
+#define CONFIGURATION_ERROR configuration_error_quark ()
+typedef enum {
+ FUZZY_PROPERTY_STATE_ENABLED,
+ FUZZY_PROPERTY_STATE_DISABLED,
+ FUZZY_PROPERTY_STATE_UNKNOWN
+} FuzzyPropertyState;
+
+struct _ConfigurationEngineIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (ConfigurationEngine* self);
+ gint (*get_int_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_int_property) (ConfigurationEngine* self, ConfigurableProperty p, gint val, GError** error);
+ gchar* (*get_string_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_string_property) (ConfigurationEngine* self, ConfigurableProperty p, const gchar* val, GError** error);
+ gboolean (*get_bool_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_bool_property) (ConfigurationEngine* self, ConfigurableProperty p, gboolean val, GError** error);
+ gdouble (*get_double_property) (ConfigurationEngine* self, ConfigurableProperty p, GError** error);
+ void (*set_double_property) (ConfigurationEngine* self, ConfigurableProperty p, gdouble val, GError** error);
+ gboolean (*get_plugin_bool) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+ void (*set_plugin_bool) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+ gdouble (*get_plugin_double) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+ void (*set_plugin_double) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+ gint (*get_plugin_int) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+ void (*set_plugin_int) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+ gchar* (*get_plugin_string) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+ void (*set_plugin_string) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+ void (*unset_plugin_key) (ConfigurationEngine* self, const gchar* domain, const gchar* id, const gchar* key);
+ FuzzyPropertyState (*is_plugin_enabled) (ConfigurationEngine* self, const gchar* id);
+ void (*set_plugin_enabled) (ConfigurationEngine* self, const gchar* id, gboolean enabled);
+};
+
+struct _GSettingsConfigurationEngine {
+ GObject parent_instance;
+ GSettingsConfigurationEnginePrivate * priv;
+};
+
+struct _GSettingsConfigurationEngineClass {
+ GObjectClass parent_class;
+};
+
+struct _GSettingsConfigurationEnginePrivate {
+ GeeSet* known_schemas;
+ gchar** schema_names;
+ gint schema_names_length1;
+ gint _schema_names_size_;
+ gchar** key_names;
+ gint key_names_length1;
+ gint _key_names_size_;
+};
+
+
+static gpointer gsettings_configuration_engine_parent_class = NULL;
+static ConfigurationEngineIface* gsettings_configuration_engine_configuration_engine_parent_iface = NULL;
+
+GType configurable_property_get_type (void) G_GNUC_CONST;
+GQuark configuration_error_quark (void);
+GType fuzzy_property_state_get_type (void) G_GNUC_CONST;
+GType configuration_engine_get_type (void) G_GNUC_CONST;
+GType gsettings_configuration_engine_get_type (void) G_GNUC_CONST;
+#define GSETTINGS_CONFIGURATION_ENGINE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEnginePrivate))
+enum {
+ GSETTINGS_CONFIGURATION_ENGINE_DUMMY_PROPERTY
+};
+#define GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME "org.yorba.shotwell"
+#define GSETTINGS_CONFIGURATION_ENGINE_PREFS_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME ".preferences"
+#define GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_PREFS_SCHEMA_NAME ".ui"
+#define GSETTINGS_CONFIGURATION_ENGINE_SLIDESHOW_PREFS_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_PREFS_SCHEMA_NAME ".slideshow"
+#define GSETTINGS_CONFIGURATION_ENGINE_WINDOW_PREFS_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_PREFS_SCHEMA_NAME ".window"
+#define GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_PREFS_SCHEMA_NAME ".files"
+#define GSETTINGS_CONFIGURATION_ENGINE_EDITING_PREFS_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_PREFS_SCHEMA_NAME ".editing"
+#define GSETTINGS_CONFIGURATION_ENGINE_VIDEO_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME ".video"
+#define GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME ".printing"
+#define GSETTINGS_CONFIGURATION_ENGINE_SHARING_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME ".sharing"
+#define GSETTINGS_CONFIGURATION_ENGINE_IMPORTING_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME ".dataimports"
+#define GSETTINGS_CONFIGURATION_ENGINE_CROP_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME ".crop-settings"
+#define GSETTINGS_CONFIGURATION_ENGINE_SYSTEM_DESKTOP_SCHEMA_NAME "org.gnome.desktop.background"
+#define GSETTINGS_CONFIGURATION_ENGINE_SYSTEM_SCREENSAVER_SCHEMA_NAME "org.gnome.desktop.screensaver"
+#define GSETTINGS_CONFIGURATION_ENGINE_PLUGINS_ENABLE_DISABLE_SCHEMA_NAME GSETTINGS_CONFIGURATION_ENGINE_ROOT_SCHEMA_NAME ".plugins.enable-state"
+GSettingsConfigurationEngine* gsettings_configuration_engine_new (void);
+GSettingsConfigurationEngine* gsettings_configuration_engine_construct (GType object_type);
+static gboolean gsettings_configuration_engine_schema_has_key (GSettingsConfigurationEngine* self, GSettings* schema_object, const gchar* key);
+static void gsettings_configuration_engine_check_key_valid (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error);
+static gboolean gsettings_configuration_engine_get_gs_bool (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error);
+static void gsettings_configuration_engine_set_gs_bool (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, gboolean value, GError** error);
+static gint gsettings_configuration_engine_get_gs_int (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error);
+static void gsettings_configuration_engine_set_gs_int (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, gint value, GError** error);
+static gdouble gsettings_configuration_engine_get_gs_double (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error);
+static void gsettings_configuration_engine_set_gs_double (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, gdouble value, GError** error);
+static gchar* gsettings_configuration_engine_get_gs_string (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error);
+static void gsettings_configuration_engine_set_gs_string (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, const gchar* value, GError** error);
+static void gsettings_configuration_engine_reset_gs_to_default (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error);
+static gchar* gsettings_configuration_engine_clean_plugin_id (const gchar* id);
+gboolean is_string_empty (const gchar* s);
+static gchar* gsettings_configuration_engine_get_plugin_enable_disable_name (const gchar* id);
+static gchar* gsettings_configuration_engine_make_plugin_schema_name (const gchar* domain, const gchar* id);
+static gchar* gsettings_configuration_engine_make_gsettings_key (const gchar* gconf_key);
+static gchar* gsettings_configuration_engine_real_get_name (ConfigurationEngine* base);
+static gint gsettings_configuration_engine_real_get_int_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error);
+static void gsettings_configuration_engine_real_set_int_property (ConfigurationEngine* base, ConfigurableProperty p, gint val, GError** error);
+static gchar* gsettings_configuration_engine_real_get_string_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error);
+static void gsettings_configuration_engine_real_set_string_property (ConfigurationEngine* base, ConfigurableProperty p, const gchar* val, GError** error);
+static gboolean gsettings_configuration_engine_real_get_bool_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error);
+static void gsettings_configuration_engine_real_set_bool_property (ConfigurationEngine* base, ConfigurableProperty p, gboolean val, GError** error);
+static gdouble gsettings_configuration_engine_real_get_double_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error);
+static void gsettings_configuration_engine_real_set_double_property (ConfigurationEngine* base, ConfigurableProperty p, gdouble val, GError** error);
+static gboolean gsettings_configuration_engine_real_get_plugin_bool (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+static void gsettings_configuration_engine_real_set_plugin_bool (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+static gdouble gsettings_configuration_engine_real_get_plugin_double (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+static void gsettings_configuration_engine_real_set_plugin_double (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+static gint gsettings_configuration_engine_real_get_plugin_int (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gint def);
+static void gsettings_configuration_engine_real_set_plugin_int (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gint val);
+static gchar* gsettings_configuration_engine_real_get_plugin_string (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+static void gsettings_configuration_engine_real_set_plugin_string (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+static void gsettings_configuration_engine_real_unset_plugin_key (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key);
+static FuzzyPropertyState gsettings_configuration_engine_real_is_plugin_enabled (ConfigurationEngine* base, const gchar* id);
+static void gsettings_configuration_engine_real_set_plugin_enabled (ConfigurationEngine* base, const gchar* id, gboolean enabled);
+void gsettings_configuration_engine_run_gsettings_migrator (void);
+GFile* app_dirs_get_settings_migrator_bin (void);
+static void gsettings_configuration_engine_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+GSettingsConfigurationEngine* gsettings_configuration_engine_construct (GType object_type) {
+ GSettingsConfigurationEngine * self = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar** _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar** _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar** _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar** _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar** _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar** _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar** _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar** _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar** _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar** _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar** _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar** _tmp67_ = NULL;
+ gint _tmp67__length1 = 0;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar** _tmp70_ = NULL;
+ gint _tmp70__length1 = 0;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar** _tmp73_ = NULL;
+ gint _tmp73__length1 = 0;
+ gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar** _tmp76_ = NULL;
+ gint _tmp76__length1 = 0;
+ gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ gchar** _tmp79_ = NULL;
+ gint _tmp79__length1 = 0;
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar** _tmp82_ = NULL;
+ gint _tmp82__length1 = 0;
+ gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ gchar** _tmp85_ = NULL;
+ gint _tmp85__length1 = 0;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar** _tmp88_ = NULL;
+ gint _tmp88__length1 = 0;
+ gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ gchar** _tmp91_ = NULL;
+ gint _tmp91__length1 = 0;
+ gchar* _tmp92_ = NULL;
+ gchar* _tmp93_ = NULL;
+ gchar** _tmp94_ = NULL;
+ gint _tmp94__length1 = 0;
+ gchar* _tmp95_ = NULL;
+ gchar* _tmp96_ = NULL;
+ gchar** _tmp97_ = NULL;
+ gint _tmp97__length1 = 0;
+ gchar* _tmp98_ = NULL;
+ gchar* _tmp99_ = NULL;
+ gchar** _tmp100_ = NULL;
+ gint _tmp100__length1 = 0;
+ gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ gchar** _tmp103_ = NULL;
+ gint _tmp103__length1 = 0;
+ gchar* _tmp104_ = NULL;
+ gchar* _tmp105_ = NULL;
+ gchar** _tmp106_ = NULL;
+ gint _tmp106__length1 = 0;
+ gchar* _tmp107_ = NULL;
+ gchar* _tmp108_ = NULL;
+ gchar** _tmp109_ = NULL;
+ gint _tmp109__length1 = 0;
+ gchar* _tmp110_ = NULL;
+ gchar* _tmp111_ = NULL;
+ gchar** _tmp112_ = NULL;
+ gint _tmp112__length1 = 0;
+ gchar* _tmp113_ = NULL;
+ gchar* _tmp114_ = NULL;
+ gchar** _tmp115_ = NULL;
+ gint _tmp115__length1 = 0;
+ gchar* _tmp116_ = NULL;
+ gchar* _tmp117_ = NULL;
+ gchar** _tmp118_ = NULL;
+ gint _tmp118__length1 = 0;
+ gchar* _tmp119_ = NULL;
+ gchar* _tmp120_ = NULL;
+ gchar** _tmp121_ = NULL;
+ gint _tmp121__length1 = 0;
+ gchar* _tmp122_ = NULL;
+ gchar* _tmp123_ = NULL;
+ gchar** _tmp124_ = NULL;
+ gint _tmp124__length1 = 0;
+ gchar* _tmp125_ = NULL;
+ gchar* _tmp126_ = NULL;
+ gchar** _tmp127_ = NULL;
+ gint _tmp127__length1 = 0;
+ gchar* _tmp128_ = NULL;
+ gchar* _tmp129_ = NULL;
+ gchar** _tmp130_ = NULL;
+ gint _tmp130__length1 = 0;
+ gchar* _tmp131_ = NULL;
+ gchar* _tmp132_ = NULL;
+ gchar** _tmp133_ = NULL;
+ gint _tmp133__length1 = 0;
+ gchar* _tmp134_ = NULL;
+ gchar* _tmp135_ = NULL;
+ gchar** _tmp136_ = NULL;
+ gint _tmp136__length1 = 0;
+ gchar* _tmp137_ = NULL;
+ gchar* _tmp138_ = NULL;
+ gchar** _tmp139_ = NULL;
+ gint _tmp139__length1 = 0;
+ gchar* _tmp140_ = NULL;
+ gchar* _tmp141_ = NULL;
+ gchar** _tmp142_ = NULL;
+ gint _tmp142__length1 = 0;
+ gchar* _tmp143_ = NULL;
+ gchar* _tmp144_ = NULL;
+ gchar** _tmp145_ = NULL;
+ gint _tmp145__length1 = 0;
+ gchar* _tmp146_ = NULL;
+ gchar* _tmp147_ = NULL;
+ gchar** _tmp148_ = NULL;
+ gint _tmp148__length1 = 0;
+ gchar* _tmp149_ = NULL;
+ gchar* _tmp150_ = NULL;
+ gchar** _tmp151_ = NULL;
+ gint _tmp151__length1 = 0;
+ gchar* _tmp152_ = NULL;
+ gchar* _tmp153_ = NULL;
+ gchar** _tmp154_ = NULL;
+ gint _tmp154__length1 = 0;
+ gchar* _tmp155_ = NULL;
+ gchar* _tmp156_ = NULL;
+ gchar** _tmp157_ = NULL;
+ gint _tmp157__length1 = 0;
+ gchar* _tmp158_ = NULL;
+ gchar* _tmp159_ = NULL;
+ gchar** _tmp160_ = NULL;
+ gint _tmp160__length1 = 0;
+ gchar* _tmp161_ = NULL;
+ gchar* _tmp162_ = NULL;
+ gchar** _tmp163_ = NULL;
+ gint _tmp163__length1 = 0;
+ gchar* _tmp164_ = NULL;
+ gchar* _tmp165_ = NULL;
+ gchar** _tmp166_ = NULL;
+ gint _tmp166__length1 = 0;
+ gchar* _tmp167_ = NULL;
+ gchar* _tmp168_ = NULL;
+ gchar** _tmp169_ = NULL;
+ gint _tmp169__length1 = 0;
+ gchar* _tmp170_ = NULL;
+ gchar* _tmp171_ = NULL;
+ gchar** _tmp172_ = NULL;
+ gint _tmp172__length1 = 0;
+ gchar* _tmp173_ = NULL;
+ gchar* _tmp174_ = NULL;
+ gchar** _tmp175_ = NULL;
+ gint _tmp175__length1 = 0;
+ gchar* _tmp176_ = NULL;
+ gchar* _tmp177_ = NULL;
+ gchar** _tmp178_ = NULL;
+ gint _tmp178__length1 = 0;
+ gchar* _tmp179_ = NULL;
+ gchar* _tmp180_ = NULL;
+ gchar** _tmp181_ = NULL;
+ gint _tmp181__length1 = 0;
+ gchar* _tmp182_ = NULL;
+ gchar* _tmp183_ = NULL;
+ gchar** _tmp184_ = NULL;
+ gint _tmp184__length1 = 0;
+ gchar* _tmp185_ = NULL;
+ gchar* _tmp186_ = NULL;
+ gchar** _tmp187_ = NULL;
+ gint _tmp187__length1 = 0;
+ gchar* _tmp188_ = NULL;
+ gchar* _tmp189_ = NULL;
+ gchar** _tmp190_ = NULL;
+ gint _tmp190__length1 = 0;
+ gchar* _tmp191_ = NULL;
+ gchar* _tmp192_ = NULL;
+ gchar** _tmp193_ = NULL;
+ gint _tmp193__length1 = 0;
+ gchar* _tmp194_ = NULL;
+ gchar* _tmp195_ = NULL;
+ gchar** _tmp196_ = NULL;
+ gchar** _tmp197_ = NULL;
+ gint _tmp197__length1 = 0;
+ gchar* _tmp198_ = NULL;
+ gchar* _tmp199_ = NULL;
+ gchar** _tmp200_ = NULL;
+ gint _tmp200__length1 = 0;
+ gchar* _tmp201_ = NULL;
+ gchar* _tmp202_ = NULL;
+ gchar** _tmp203_ = NULL;
+ gint _tmp203__length1 = 0;
+ gchar* _tmp204_ = NULL;
+ gchar* _tmp205_ = NULL;
+ gchar** _tmp206_ = NULL;
+ gint _tmp206__length1 = 0;
+ gchar* _tmp207_ = NULL;
+ gchar* _tmp208_ = NULL;
+ gchar** _tmp209_ = NULL;
+ gint _tmp209__length1 = 0;
+ gchar* _tmp210_ = NULL;
+ gchar* _tmp211_ = NULL;
+ gchar** _tmp212_ = NULL;
+ gint _tmp212__length1 = 0;
+ gchar* _tmp213_ = NULL;
+ gchar* _tmp214_ = NULL;
+ gchar** _tmp215_ = NULL;
+ gint _tmp215__length1 = 0;
+ gchar* _tmp216_ = NULL;
+ gchar* _tmp217_ = NULL;
+ gchar** _tmp218_ = NULL;
+ gint _tmp218__length1 = 0;
+ gchar* _tmp219_ = NULL;
+ gchar* _tmp220_ = NULL;
+ gchar** _tmp221_ = NULL;
+ gint _tmp221__length1 = 0;
+ gchar* _tmp222_ = NULL;
+ gchar* _tmp223_ = NULL;
+ gchar** _tmp224_ = NULL;
+ gint _tmp224__length1 = 0;
+ gchar* _tmp225_ = NULL;
+ gchar* _tmp226_ = NULL;
+ gchar** _tmp227_ = NULL;
+ gint _tmp227__length1 = 0;
+ gchar* _tmp228_ = NULL;
+ gchar* _tmp229_ = NULL;
+ gchar** _tmp230_ = NULL;
+ gint _tmp230__length1 = 0;
+ gchar* _tmp231_ = NULL;
+ gchar* _tmp232_ = NULL;
+ gchar** _tmp233_ = NULL;
+ gint _tmp233__length1 = 0;
+ gchar* _tmp234_ = NULL;
+ gchar* _tmp235_ = NULL;
+ gchar** _tmp236_ = NULL;
+ gint _tmp236__length1 = 0;
+ gchar* _tmp237_ = NULL;
+ gchar* _tmp238_ = NULL;
+ gchar** _tmp239_ = NULL;
+ gint _tmp239__length1 = 0;
+ gchar* _tmp240_ = NULL;
+ gchar* _tmp241_ = NULL;
+ gchar** _tmp242_ = NULL;
+ gint _tmp242__length1 = 0;
+ gchar* _tmp243_ = NULL;
+ gchar* _tmp244_ = NULL;
+ gchar** _tmp245_ = NULL;
+ gint _tmp245__length1 = 0;
+ gchar* _tmp246_ = NULL;
+ gchar* _tmp247_ = NULL;
+ gchar** _tmp248_ = NULL;
+ gint _tmp248__length1 = 0;
+ gchar* _tmp249_ = NULL;
+ gchar* _tmp250_ = NULL;
+ gchar** _tmp251_ = NULL;
+ gint _tmp251__length1 = 0;
+ gchar* _tmp252_ = NULL;
+ gchar* _tmp253_ = NULL;
+ gchar** _tmp254_ = NULL;
+ gint _tmp254__length1 = 0;
+ gchar* _tmp255_ = NULL;
+ gchar* _tmp256_ = NULL;
+ gchar** _tmp257_ = NULL;
+ gint _tmp257__length1 = 0;
+ gchar* _tmp258_ = NULL;
+ gchar* _tmp259_ = NULL;
+ gchar** _tmp260_ = NULL;
+ gint _tmp260__length1 = 0;
+ gchar* _tmp261_ = NULL;
+ gchar* _tmp262_ = NULL;
+ gchar** _tmp263_ = NULL;
+ gint _tmp263__length1 = 0;
+ gchar* _tmp264_ = NULL;
+ gchar* _tmp265_ = NULL;
+ gchar** _tmp266_ = NULL;
+ gint _tmp266__length1 = 0;
+ gchar* _tmp267_ = NULL;
+ gchar* _tmp268_ = NULL;
+ gchar** _tmp269_ = NULL;
+ gint _tmp269__length1 = 0;
+ gchar* _tmp270_ = NULL;
+ gchar* _tmp271_ = NULL;
+ gchar** _tmp272_ = NULL;
+ gint _tmp272__length1 = 0;
+ gchar* _tmp273_ = NULL;
+ gchar* _tmp274_ = NULL;
+ gchar** _tmp275_ = NULL;
+ gint _tmp275__length1 = 0;
+ gchar* _tmp276_ = NULL;
+ gchar* _tmp277_ = NULL;
+ gchar** _tmp278_ = NULL;
+ gint _tmp278__length1 = 0;
+ gchar* _tmp279_ = NULL;
+ gchar* _tmp280_ = NULL;
+ gchar** _tmp281_ = NULL;
+ gint _tmp281__length1 = 0;
+ gchar* _tmp282_ = NULL;
+ gchar* _tmp283_ = NULL;
+ gchar** _tmp284_ = NULL;
+ gint _tmp284__length1 = 0;
+ gchar* _tmp285_ = NULL;
+ gchar* _tmp286_ = NULL;
+ gchar** _tmp287_ = NULL;
+ gint _tmp287__length1 = 0;
+ gchar* _tmp288_ = NULL;
+ gchar* _tmp289_ = NULL;
+ gchar** _tmp290_ = NULL;
+ gint _tmp290__length1 = 0;
+ gchar* _tmp291_ = NULL;
+ gchar* _tmp292_ = NULL;
+ gchar** _tmp293_ = NULL;
+ gint _tmp293__length1 = 0;
+ gchar* _tmp294_ = NULL;
+ gchar* _tmp295_ = NULL;
+ gchar** _tmp296_ = NULL;
+ gint _tmp296__length1 = 0;
+ gchar* _tmp297_ = NULL;
+ gchar* _tmp298_ = NULL;
+ gchar** _tmp299_ = NULL;
+ gint _tmp299__length1 = 0;
+ gchar* _tmp300_ = NULL;
+ gchar* _tmp301_ = NULL;
+ gchar** _tmp302_ = NULL;
+ gint _tmp302__length1 = 0;
+ gchar* _tmp303_ = NULL;
+ gchar* _tmp304_ = NULL;
+ gchar** _tmp305_ = NULL;
+ gint _tmp305__length1 = 0;
+ gchar* _tmp306_ = NULL;
+ gchar* _tmp307_ = NULL;
+ gchar** _tmp308_ = NULL;
+ gint _tmp308__length1 = 0;
+ gchar* _tmp309_ = NULL;
+ gchar* _tmp310_ = NULL;
+ gchar** _tmp311_ = NULL;
+ gint _tmp311__length1 = 0;
+ gchar* _tmp312_ = NULL;
+ gchar* _tmp313_ = NULL;
+ gchar** _tmp314_ = NULL;
+ gint _tmp314__length1 = 0;
+ gchar* _tmp315_ = NULL;
+ gchar* _tmp316_ = NULL;
+ gchar** _tmp317_ = NULL;
+ gint _tmp317__length1 = 0;
+ gchar* _tmp318_ = NULL;
+ gchar* _tmp319_ = NULL;
+ gchar** _tmp320_ = NULL;
+ gint _tmp320__length1 = 0;
+ gchar* _tmp321_ = NULL;
+ gchar* _tmp322_ = NULL;
+ gchar** _tmp323_ = NULL;
+ gint _tmp323__length1 = 0;
+ gchar* _tmp324_ = NULL;
+ gchar* _tmp325_ = NULL;
+ gchar** _tmp326_ = NULL;
+ gint _tmp326__length1 = 0;
+ gchar* _tmp327_ = NULL;
+ gchar* _tmp328_ = NULL;
+ gchar** _tmp329_ = NULL;
+ gint _tmp329__length1 = 0;
+ gchar* _tmp330_ = NULL;
+ gchar* _tmp331_ = NULL;
+ gchar** _tmp332_ = NULL;
+ gint _tmp332__length1 = 0;
+ gchar* _tmp333_ = NULL;
+ gchar* _tmp334_ = NULL;
+ gchar** _tmp335_ = NULL;
+ gint _tmp335__length1 = 0;
+ gchar* _tmp336_ = NULL;
+ gchar* _tmp337_ = NULL;
+ gchar** _tmp338_ = NULL;
+ gint _tmp338__length1 = 0;
+ gchar* _tmp339_ = NULL;
+ gchar* _tmp340_ = NULL;
+ gchar** _tmp341_ = NULL;
+ gint _tmp341__length1 = 0;
+ gchar* _tmp342_ = NULL;
+ gchar* _tmp343_ = NULL;
+ gchar** _tmp344_ = NULL;
+ gint _tmp344__length1 = 0;
+ gchar* _tmp345_ = NULL;
+ gchar* _tmp346_ = NULL;
+ gchar** _tmp347_ = NULL;
+ gint _tmp347__length1 = 0;
+ gchar* _tmp348_ = NULL;
+ gchar* _tmp349_ = NULL;
+ gchar** _tmp350_ = NULL;
+ gint _tmp350__length1 = 0;
+ gchar* _tmp351_ = NULL;
+ gchar* _tmp352_ = NULL;
+ gchar** _tmp353_ = NULL;
+ gint _tmp353__length1 = 0;
+ gchar* _tmp354_ = NULL;
+ gchar* _tmp355_ = NULL;
+ gchar** _tmp356_ = NULL;
+ gint _tmp356__length1 = 0;
+ gchar* _tmp357_ = NULL;
+ gchar* _tmp358_ = NULL;
+ gchar** _tmp359_ = NULL;
+ gint _tmp359__length1 = 0;
+ gchar* _tmp360_ = NULL;
+ gchar* _tmp361_ = NULL;
+ gchar** _tmp362_ = NULL;
+ gint _tmp362__length1 = 0;
+ gchar* _tmp363_ = NULL;
+ gchar* _tmp364_ = NULL;
+ gchar** _tmp365_ = NULL;
+ gint _tmp365__length1 = 0;
+ gchar* _tmp366_ = NULL;
+ gchar* _tmp367_ = NULL;
+ gchar** _tmp368_ = NULL;
+ gint _tmp368__length1 = 0;
+ gchar* _tmp369_ = NULL;
+ gchar* _tmp370_ = NULL;
+ gchar** _tmp371_ = NULL;
+ gint _tmp371__length1 = 0;
+ gchar* _tmp372_ = NULL;
+ gchar* _tmp373_ = NULL;
+ gchar** _tmp374_ = NULL;
+ gint _tmp374__length1 = 0;
+ gchar* _tmp375_ = NULL;
+ gchar* _tmp376_ = NULL;
+ gchar** _tmp377_ = NULL;
+ gint _tmp377__length1 = 0;
+ gchar* _tmp378_ = NULL;
+ gchar* _tmp379_ = NULL;
+ gchar** _tmp380_ = NULL;
+ gint _tmp380__length1 = 0;
+ gchar* _tmp381_ = NULL;
+ gchar* _tmp382_ = NULL;
+ gchar** _tmp383_ = NULL;
+ gint _tmp383__length1 = 0;
+ gchar* _tmp384_ = NULL;
+ gchar* _tmp385_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = (GSettingsConfigurationEngine*) g_object_new (object_type, NULL);
+#line 30 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 30 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (self->priv->known_schemas);
+#line 30 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->known_schemas = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_SET, GeeSet);
+#line 32 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = _tmp1_ = g_settings_list_schemas ();
+#line 764 "GSettingsEngine.c"
+ {
+ gchar** current_schema_collection = NULL;
+ gint current_schema_collection_length1 = 0;
+ gint _current_schema_collection_size_ = 0;
+ gint current_schema_it = 0;
+#line 32 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_schema_collection = _tmp2_;
+#line 32 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_schema_collection_length1 = _vala_array_length (_tmp1_);
+#line 32 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ for (current_schema_it = 0; current_schema_it < _vala_array_length (_tmp1_); current_schema_it = current_schema_it + 1) {
+#line 776 "GSettingsEngine.c"
+ gchar* _tmp3_ = NULL;
+ gchar* current_schema = NULL;
+#line 32 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_strdup (current_schema_collection[current_schema_it]);
+#line 32 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_schema = _tmp3_;
+#line 783 "GSettingsEngine.c"
+ {
+ GeeSet* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = self->priv->known_schemas;
+#line 33 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = current_schema;
+#line 33 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), _tmp5_);
+#line 32 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (current_schema);
+#line 795 "GSettingsEngine.c"
+ }
+ }
+ }
+#line 35 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = g_new0 (gchar*, CONFIGURABLE_PROPERTY_NUM_PROPERTIES + 1);
+#line 35 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->schema_names = (_vala_array_free (self->priv->schema_names, self->priv->schema_names_length1, (GDestroyNotify) g_free), NULL);
+#line 35 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->schema_names = _tmp6_;
+#line 35 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->schema_names_length1 = CONFIGURABLE_PROPERTY_NUM_PROPERTIES;
+#line 35 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->_schema_names_size_ = self->priv->schema_names_length1;
+#line 37 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = self->priv->schema_names;
+#line 37 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7__length1 = self->priv->schema_names_length1;
+#line 37 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME);
+#line 37 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp7_[CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY]);
+#line 37 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_[CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY] = _tmp8_;
+#line 37 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = _tmp7_[CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY];
+#line 38 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_ = self->priv->schema_names;
+#line 38 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10__length1 = self->priv->schema_names_length1;
+#line 38 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp11_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 38 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp10_[CONFIGURABLE_PROPERTY_BG_COLOR_NAME]);
+#line 38 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_[CONFIGURABLE_PROPERTY_BG_COLOR_NAME] = _tmp11_;
+#line 38 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp12_ = _tmp10_[CONFIGURABLE_PROPERTY_BG_COLOR_NAME];
+#line 39 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp13_ = self->priv->schema_names;
+#line 39 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp13__length1 = self->priv->schema_names_length1;
+#line 39 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp14_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME);
+#line 39 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp13_[CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS]);
+#line 39 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp13_[CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS] = _tmp14_;
+#line 39 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp15_ = _tmp13_[CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS];
+#line 40 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp16_ = self->priv->schema_names;
+#line 40 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp16__length1 = self->priv->schema_names_length1;
+#line 40 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp17_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SYSTEM_DESKTOP_SCHEMA_NAME);
+#line 40 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp16_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE]);
+#line 40 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp16_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE] = _tmp17_;
+#line 40 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp18_ = _tmp16_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE];
+#line 41 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp19_ = self->priv->schema_names;
+#line 41 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp19__length1 = self->priv->schema_names_length1;
+#line 41 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp20_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SYSTEM_DESKTOP_SCHEMA_NAME);
+#line 41 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp19_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE]);
+#line 41 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp19_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE] = _tmp20_;
+#line 41 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp21_ = _tmp19_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE];
+#line 42 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp22_ = self->priv->schema_names;
+#line 42 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp22__length1 = self->priv->schema_names_length1;
+#line 42 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp23_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SYSTEM_SCREENSAVER_SCHEMA_NAME);
+#line 42 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp22_[CONFIGURABLE_PROPERTY_SCREENSAVER_FILE]);
+#line 42 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp22_[CONFIGURABLE_PROPERTY_SCREENSAVER_FILE] = _tmp23_;
+#line 42 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp24_ = _tmp22_[CONFIGURABLE_PROPERTY_SCREENSAVER_FILE];
+#line 43 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp25_ = self->priv->schema_names;
+#line 43 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp25__length1 = self->priv->schema_names_length1;
+#line 43 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp26_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SYSTEM_SCREENSAVER_SCHEMA_NAME);
+#line 43 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp25_[CONFIGURABLE_PROPERTY_SCREENSAVER_MODE]);
+#line 43 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp25_[CONFIGURABLE_PROPERTY_SCREENSAVER_MODE] = _tmp26_;
+#line 43 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp27_ = _tmp25_[CONFIGURABLE_PROPERTY_SCREENSAVER_MODE];
+#line 44 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp28_ = self->priv->schema_names;
+#line 44 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp28__length1 = self->priv->schema_names_length1;
+#line 44 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp29_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME);
+#line 44 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp28_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN]);
+#line 44 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp28_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN] = _tmp29_;
+#line 44 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp30_ = _tmp28_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN];
+#line 45 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp31_ = self->priv->schema_names;
+#line 45 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp31__length1 = self->priv->schema_names_length1;
+#line 45 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp32_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME);
+#line 45 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp31_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM]);
+#line 45 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp31_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM] = _tmp32_;
+#line 45 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp33_ = _tmp31_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM];
+#line 46 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp34_ = self->priv->schema_names;
+#line 46 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp34__length1 = self->priv->schema_names_length1;
+#line 46 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp35_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_WINDOW_PREFS_SCHEMA_NAME);
+#line 46 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp34_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT]);
+#line 46 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp34_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT] = _tmp35_;
+#line 46 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp36_ = _tmp34_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT];
+#line 47 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp37_ = self->priv->schema_names;
+#line 47 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp37__length1 = self->priv->schema_names_length1;
+#line 47 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp38_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_WINDOW_PREFS_SCHEMA_NAME);
+#line 47 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp37_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE]);
+#line 47 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp37_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE] = _tmp38_;
+#line 47 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp39_ = _tmp37_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE];
+#line 48 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp40_ = self->priv->schema_names;
+#line 48 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp40__length1 = self->priv->schema_names_length1;
+#line 48 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp41_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_WINDOW_PREFS_SCHEMA_NAME);
+#line 48 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp40_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH]);
+#line 48 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp40_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH] = _tmp41_;
+#line 48 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp42_ = _tmp40_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH];
+#line 49 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp43_ = self->priv->schema_names;
+#line 49 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp43__length1 = self->priv->schema_names_length1;
+#line 49 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp44_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 49 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp43_[CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES]);
+#line 49 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp43_[CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES] = _tmp44_;
+#line 49 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp45_ = _tmp43_[CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES];
+#line 50 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp46_ = self->priv->schema_names;
+#line 50 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp46__length1 = self->priv->schema_names_length1;
+#line 50 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp47_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 50 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp46_[CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES]);
+#line 50 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp46_[CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES] = _tmp47_;
+#line 50 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp48_ = _tmp46_[CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES];
+#line 51 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp49_ = self->priv->schema_names;
+#line 51 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp49__length1 = self->priv->schema_names_length1;
+#line 51 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp50_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 51 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp49_[CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR]);
+#line 51 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp49_[CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR] = _tmp50_;
+#line 51 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp51_ = _tmp49_[CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR];
+#line 52 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp52_ = self->priv->schema_names;
+#line 52 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp52__length1 = self->priv->schema_names_length1;
+#line 52 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp53_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 52 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp52_[CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR]);
+#line 52 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp52_[CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR] = _tmp53_;
+#line 52 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp54_ = _tmp52_[CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR];
+#line 53 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp55_ = self->priv->schema_names;
+#line 53 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp55__length1 = self->priv->schema_names_length1;
+#line 53 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp56_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 53 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp55_[CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR]);
+#line 53 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp55_[CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR] = _tmp56_;
+#line 53 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp57_ = _tmp55_[CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR];
+#line 54 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp58_ = self->priv->schema_names;
+#line 54 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp58__length1 = self->priv->schema_names_length1;
+#line 54 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp59_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 54 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp58_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS]);
+#line 54 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp58_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS] = _tmp59_;
+#line 54 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp60_ = _tmp58_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS];
+#line 55 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp61_ = self->priv->schema_names;
+#line 55 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp61__length1 = self->priv->schema_names_length1;
+#line 55 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp62_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 55 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp61_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS]);
+#line 55 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp61_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS] = _tmp62_;
+#line 55 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp63_ = _tmp61_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS];
+#line 56 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp64_ = self->priv->schema_names;
+#line 56 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp64__length1 = self->priv->schema_names_length1;
+#line 56 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp65_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 56 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp64_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES]);
+#line 56 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp64_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES] = _tmp65_;
+#line 56 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp66_ = _tmp64_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES];
+#line 57 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp67_ = self->priv->schema_names;
+#line 57 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp67__length1 = self->priv->schema_names_length1;
+#line 57 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp68_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 57 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp67_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS]);
+#line 57 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp67_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS] = _tmp68_;
+#line 57 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp69_ = _tmp67_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS];
+#line 58 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp70_ = self->priv->schema_names;
+#line 58 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp70__length1 = self->priv->schema_names_length1;
+#line 58 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp71_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 58 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp70_[CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS]);
+#line 58 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp70_[CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS] = _tmp71_;
+#line 58 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp72_ = _tmp70_[CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS];
+#line 59 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp73_ = self->priv->schema_names;
+#line 59 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp73__length1 = self->priv->schema_names_length1;
+#line 59 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp74_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 59 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp73_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING]);
+#line 59 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp73_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING] = _tmp74_;
+#line 59 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp75_ = _tmp73_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING];
+#line 60 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp76_ = self->priv->schema_names;
+#line 60 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp76__length1 = self->priv->schema_names_length1;
+#line 60 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp77_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 60 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp76_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY]);
+#line 60 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp76_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY] = _tmp77_;
+#line 60 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp78_ = _tmp76_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY];
+#line 61 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp79_ = self->priv->schema_names;
+#line 61 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp79__length1 = self->priv->schema_names_length1;
+#line 61 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp80_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 61 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp79_[CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING]);
+#line 61 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp79_[CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING] = _tmp80_;
+#line 61 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp81_ = _tmp79_[CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING];
+#line 62 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp82_ = self->priv->schema_names;
+#line 62 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp82__length1 = self->priv->schema_names_length1;
+#line 62 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp83_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_EDITING_PREFS_SCHEMA_NAME);
+#line 62 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp82_[CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP]);
+#line 62 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp82_[CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP] = _tmp83_;
+#line 62 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp84_ = _tmp82_[CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP];
+#line 63 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp85_ = self->priv->schema_names;
+#line 63 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp85__length1 = self->priv->schema_names_length1;
+#line 63 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp86_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_EDITING_PREFS_SCHEMA_NAME);
+#line 63 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp85_[CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP]);
+#line 63 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp85_[CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP] = _tmp86_;
+#line 63 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp87_ = _tmp85_[CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP];
+#line 64 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp88_ = self->priv->schema_names;
+#line 64 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp88__length1 = self->priv->schema_names_length1;
+#line 64 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp89_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 64 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp88_[CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED]);
+#line 64 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp88_[CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED] = _tmp89_;
+#line 64 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp90_ = _tmp88_[CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED];
+#line 65 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp91_ = self->priv->schema_names;
+#line 65 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp91__length1 = self->priv->schema_names_length1;
+#line 65 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp92_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME);
+#line 65 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp91_[CONFIGURABLE_PROPERTY_IMPORT_DIR]);
+#line 65 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp91_[CONFIGURABLE_PROPERTY_IMPORT_DIR] = _tmp92_;
+#line 65 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp93_ = _tmp91_[CONFIGURABLE_PROPERTY_IMPORT_DIR];
+#line 66 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp94_ = self->priv->schema_names;
+#line 66 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp94__length1 = self->priv->schema_names_length1;
+#line 66 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp95_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 66 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp94_[CONFIGURABLE_PROPERTY_KEEP_RELATIVITY]);
+#line 66 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp94_[CONFIGURABLE_PROPERTY_KEEP_RELATIVITY] = _tmp95_;
+#line 66 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp96_ = _tmp94_[CONFIGURABLE_PROPERTY_KEEP_RELATIVITY];
+#line 67 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp97_ = self->priv->schema_names;
+#line 67 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp97__length1 = self->priv->schema_names_length1;
+#line 67 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp98_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_CROP_SCHEMA_NAME);
+#line 67 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp97_[CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT]);
+#line 67 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp97_[CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT] = _tmp98_;
+#line 67 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp99_ = _tmp97_[CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT];
+#line 68 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp100_ = self->priv->schema_names;
+#line 68 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp100__length1 = self->priv->schema_names_length1;
+#line 68 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp101_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_CROP_SCHEMA_NAME);
+#line 68 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp100_[CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE]);
+#line 68 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp100_[CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE] = _tmp101_;
+#line 68 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp102_ = _tmp100_[CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE];
+#line 69 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp103_ = self->priv->schema_names;
+#line 69 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp103__length1 = self->priv->schema_names_length1;
+#line 69 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp104_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_CROP_SCHEMA_NAME);
+#line 69 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp103_[CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH]);
+#line 69 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp103_[CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH] = _tmp104_;
+#line 69 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp105_ = _tmp103_[CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH];
+#line 70 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp106_ = self->priv->schema_names;
+#line 70 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp106__length1 = self->priv->schema_names_length1;
+#line 70 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp107_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SHARING_SCHEMA_NAME);
+#line 70 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp106_[CONFIGURABLE_PROPERTY_LAST_USED_SERVICE]);
+#line 70 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp106_[CONFIGURABLE_PROPERTY_LAST_USED_SERVICE] = _tmp107_;
+#line 70 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp108_ = _tmp106_[CONFIGURABLE_PROPERTY_LAST_USED_SERVICE];
+#line 71 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp109_ = self->priv->schema_names;
+#line 71 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp109__length1 = self->priv->schema_names_length1;
+#line 71 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp110_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_IMPORTING_SCHEMA_NAME);
+#line 71 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp109_[CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE]);
+#line 71 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp109_[CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE] = _tmp110_;
+#line 71 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp111_ = _tmp109_[CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE];
+#line 72 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp112_ = self->priv->schema_names;
+#line 72 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp112__length1 = self->priv->schema_names_length1;
+#line 72 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp113_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 72 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp112_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING]);
+#line 72 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp112_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING] = _tmp113_;
+#line 72 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp114_ = _tmp112_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING];
+#line 73 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp115_ = self->priv->schema_names;
+#line 73 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp115__length1 = self->priv->schema_names_length1;
+#line 73 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp116_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 73 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp115_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY]);
+#line 73 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp115_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY] = _tmp116_;
+#line 73 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp117_ = _tmp115_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY];
+#line 74 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp118_ = self->priv->schema_names;
+#line 74 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp118__length1 = self->priv->schema_names_length1;
+#line 74 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp119_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_WINDOW_PREFS_SCHEMA_NAME);
+#line 74 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp118_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT]);
+#line 74 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp118_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT] = _tmp119_;
+#line 74 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp120_ = _tmp118_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT];
+#line 75 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp121_ = self->priv->schema_names;
+#line 75 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp121__length1 = self->priv->schema_names_length1;
+#line 75 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp122_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_WINDOW_PREFS_SCHEMA_NAME);
+#line 75 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp121_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE]);
+#line 75 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp121_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE] = _tmp122_;
+#line 75 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp123_ = _tmp121_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE];
+#line 76 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp124_ = self->priv->schema_names;
+#line 76 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp124__length1 = self->priv->schema_names_length1;
+#line 76 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp125_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_WINDOW_PREFS_SCHEMA_NAME);
+#line 76 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp124_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH]);
+#line 76 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp124_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH] = _tmp125_;
+#line 76 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp126_ = _tmp124_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH];
+#line 77 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp127_ = self->priv->schema_names;
+#line 77 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp127__length1 = self->priv->schema_names_length1;
+#line 77 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp128_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 77 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp127_[CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS]);
+#line 77 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp127_[CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS] = _tmp128_;
+#line 77 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp129_ = _tmp127_[CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS];
+#line 78 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp130_ = self->priv->schema_names;
+#line 78 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp130__length1 = self->priv->schema_names_length1;
+#line 78 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp131_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 78 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp130_[CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE]);
+#line 78 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp130_[CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE] = _tmp131_;
+#line 78 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp132_ = _tmp130_[CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE];
+#line 79 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp133_ = self->priv->schema_names;
+#line 79 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp133__length1 = self->priv->schema_names_length1;
+#line 79 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp134_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 79 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp133_[CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE]);
+#line 79 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp133_[CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE] = _tmp134_;
+#line 79 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp135_ = _tmp133_[CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE];
+#line 80 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp136_ = self->priv->schema_names;
+#line 80 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp136__length1 = self->priv->schema_names_length1;
+#line 80 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp137_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 80 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp136_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT]);
+#line 80 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp136_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT] = _tmp137_;
+#line 80 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp138_ = _tmp136_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT];
+#line 81 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp139_ = self->priv->schema_names;
+#line 81 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp139__length1 = self->priv->schema_names_length1;
+#line 81 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp140_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 81 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp139_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT]);
+#line 81 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp139_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT] = _tmp140_;
+#line 81 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp141_ = _tmp139_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT];
+#line 82 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp142_ = self->priv->schema_names;
+#line 82 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp142__length1 = self->priv->schema_names_length1;
+#line 82 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp143_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 82 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp142_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI]);
+#line 82 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp142_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI] = _tmp143_;
+#line 82 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp144_ = _tmp142_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI];
+#line 83 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp145_ = self->priv->schema_names;
+#line 83 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp145__length1 = self->priv->schema_names_length1;
+#line 83 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp146_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 83 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp145_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS]);
+#line 83 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp145_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS] = _tmp146_;
+#line 83 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp147_ = _tmp145_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS];
+#line 84 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp148_ = self->priv->schema_names;
+#line 84 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp148__length1 = self->priv->schema_names_length1;
+#line 84 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp149_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 84 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp148_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH]);
+#line 84 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp148_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH] = _tmp149_;
+#line 84 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp150_ = _tmp148_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH];
+#line 85 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp151_ = self->priv->schema_names;
+#line 85 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp151__length1 = self->priv->schema_names_length1;
+#line 85 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp152_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 85 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp151_[CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE]);
+#line 85 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp151_[CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE] = _tmp152_;
+#line 85 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp153_ = _tmp151_[CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE];
+#line 86 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp154_ = self->priv->schema_names;
+#line 86 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp154__length1 = self->priv->schema_names_length1;
+#line 86 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp155_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 86 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp154_[CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO]);
+#line 86 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp154_[CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO] = _tmp155_;
+#line 86 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp156_ = _tmp154_[CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO];
+#line 87 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp157_ = self->priv->schema_names;
+#line 87 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp157__length1 = self->priv->schema_names_length1;
+#line 87 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp158_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 87 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp157_[CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES]);
+#line 87 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp157_[CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES] = _tmp158_;
+#line 87 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp159_ = _tmp157_[CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES];
+#line 88 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp160_ = self->priv->schema_names;
+#line 88 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp160__length1 = self->priv->schema_names_length1;
+#line 88 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp161_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 88 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp160_[CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION]);
+#line 88 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp160_[CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION] = _tmp161_;
+#line 88 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp162_ = _tmp160_[CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION];
+#line 89 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp163_ = self->priv->schema_names;
+#line 89 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp163__length1 = self->priv->schema_names_length1;
+#line 89 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp164_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_PRINTING_SCHEMA_NAME);
+#line 89 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp163_[CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT]);
+#line 89 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp163_[CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT] = _tmp164_;
+#line 89 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp165_ = _tmp163_[CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT];
+#line 90 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp166_ = self->priv->schema_names;
+#line 90 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp166__length1 = self->priv->schema_names_length1;
+#line 90 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp167_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME);
+#line 90 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp166_[CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT]);
+#line 90 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp166_[CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT] = _tmp167_;
+#line 90 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp168_ = _tmp166_[CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT];
+#line 91 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp169_ = self->priv->schema_names;
+#line 91 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp169__length1 = self->priv->schema_names_length1;
+#line 91 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp170_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 91 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp169_[CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG]);
+#line 91 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp169_[CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG] = _tmp170_;
+#line 91 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp171_ = _tmp169_[CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG];
+#line 92 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp172_ = self->priv->schema_names;
+#line 92 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp172__length1 = self->priv->schema_names_length1;
+#line 92 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp173_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 92 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp172_[CONFIGURABLE_PROPERTY_SIDEBAR_POSITION]);
+#line 92 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp172_[CONFIGURABLE_PROPERTY_SIDEBAR_POSITION] = _tmp173_;
+#line 92 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp174_ = _tmp172_[CONFIGURABLE_PROPERTY_SIDEBAR_POSITION];
+#line 93 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp175_ = self->priv->schema_names;
+#line 93 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp175__length1 = self->priv->schema_names_length1;
+#line 93 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp176_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SLIDESHOW_PREFS_SCHEMA_NAME);
+#line 93 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp175_[CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY]);
+#line 93 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp175_[CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY] = _tmp176_;
+#line 93 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp177_ = _tmp175_[CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY];
+#line 94 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp178_ = self->priv->schema_names;
+#line 94 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp178__length1 = self->priv->schema_names_length1;
+#line 94 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp179_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SLIDESHOW_PREFS_SCHEMA_NAME);
+#line 94 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp178_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY]);
+#line 94 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp178_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY] = _tmp179_;
+#line 94 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp180_ = _tmp178_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY];
+#line 95 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp181_ = self->priv->schema_names;
+#line 95 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp181__length1 = self->priv->schema_names_length1;
+#line 95 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp182_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SLIDESHOW_PREFS_SCHEMA_NAME);
+#line 95 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp181_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID]);
+#line 95 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp181_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID] = _tmp182_;
+#line 95 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp183_ = _tmp181_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID];
+#line 96 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp184_ = self->priv->schema_names;
+#line 96 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp184__length1 = self->priv->schema_names_length1;
+#line 96 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp185_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_SLIDESHOW_PREFS_SCHEMA_NAME);
+#line 96 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp184_[CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE]);
+#line 96 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp184_[CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE] = _tmp185_;
+#line 96 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp186_ = _tmp184_[CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE];
+#line 97 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp187_ = self->priv->schema_names;
+#line 97 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp187__length1 = self->priv->schema_names_length1;
+#line 97 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp188_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_UI_PREFS_SCHEMA_NAME);
+#line 97 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp187_[CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME]);
+#line 97 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp187_[CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME] = _tmp188_;
+#line 97 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp189_ = _tmp187_[CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME];
+#line 98 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp190_ = self->priv->schema_names;
+#line 98 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp190__length1 = self->priv->schema_names_length1;
+#line 98 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp191_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_FILES_PREFS_SCHEMA_NAME);
+#line 98 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp190_[CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES]);
+#line 98 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp190_[CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES] = _tmp191_;
+#line 98 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp192_ = _tmp190_[CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES];
+#line 99 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp193_ = self->priv->schema_names;
+#line 99 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp193__length1 = self->priv->schema_names_length1;
+#line 99 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp194_ = g_strdup (GSETTINGS_CONFIGURATION_ENGINE_VIDEO_SCHEMA_NAME);
+#line 99 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp193_[CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE]);
+#line 99 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp193_[CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE] = _tmp194_;
+#line 99 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp195_ = _tmp193_[CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE];
+#line 101 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp196_ = g_new0 (gchar*, CONFIGURABLE_PROPERTY_NUM_PROPERTIES + 1);
+#line 101 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->key_names = (_vala_array_free (self->priv->key_names, self->priv->key_names_length1, (GDestroyNotify) g_free), NULL);
+#line 101 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->key_names = _tmp196_;
+#line 101 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->key_names_length1 = CONFIGURABLE_PROPERTY_NUM_PROPERTIES;
+#line 101 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->_key_names_size_ = self->priv->key_names_length1;
+#line 103 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp197_ = self->priv->key_names;
+#line 103 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp197__length1 = self->priv->key_names_length1;
+#line 103 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp198_ = g_strdup ("auto-import");
+#line 103 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp197_[CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY]);
+#line 103 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp197_[CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY] = _tmp198_;
+#line 103 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp199_ = _tmp197_[CONFIGURABLE_PROPERTY_AUTO_IMPORT_FROM_LIBRARY];
+#line 104 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp200_ = self->priv->key_names;
+#line 104 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp200__length1 = self->priv->key_names_length1;
+#line 104 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp201_ = g_strdup ("background-color");
+#line 104 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp200_[CONFIGURABLE_PROPERTY_BG_COLOR_NAME]);
+#line 104 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp200_[CONFIGURABLE_PROPERTY_BG_COLOR_NAME] = _tmp201_;
+#line 104 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp202_ = _tmp200_[CONFIGURABLE_PROPERTY_BG_COLOR_NAME];
+#line 105 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp203_ = self->priv->key_names;
+#line 105 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp203__length1 = self->priv->key_names_length1;
+#line 105 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp204_ = g_strdup ("commit-metadata");
+#line 105 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp203_[CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS]);
+#line 105 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp203_[CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS] = _tmp204_;
+#line 105 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp205_ = _tmp203_[CONFIGURABLE_PROPERTY_COMMIT_METADATA_TO_MASTERS];
+#line 106 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp206_ = self->priv->key_names;
+#line 106 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp206__length1 = self->priv->key_names_length1;
+#line 106 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp207_ = g_strdup ("picture-uri");
+#line 106 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp206_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE]);
+#line 106 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp206_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE] = _tmp207_;
+#line 106 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp208_ = _tmp206_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE];
+#line 107 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp209_ = self->priv->key_names;
+#line 107 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp209__length1 = self->priv->key_names_length1;
+#line 107 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp210_ = g_strdup ("picture-options");
+#line 107 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp209_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE]);
+#line 107 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp209_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE] = _tmp210_;
+#line 107 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp211_ = _tmp209_[CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_MODE];
+#line 108 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp212_ = self->priv->key_names;
+#line 108 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp212__length1 = self->priv->key_names_length1;
+#line 108 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp213_ = g_strdup ("picture-uri");
+#line 108 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp212_[CONFIGURABLE_PROPERTY_SCREENSAVER_FILE]);
+#line 108 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp212_[CONFIGURABLE_PROPERTY_SCREENSAVER_FILE] = _tmp213_;
+#line 108 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp214_ = _tmp212_[CONFIGURABLE_PROPERTY_SCREENSAVER_FILE];
+#line 109 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp215_ = self->priv->key_names;
+#line 109 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp215__length1 = self->priv->key_names_length1;
+#line 109 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp216_ = g_strdup ("picture-options");
+#line 109 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp215_[CONFIGURABLE_PROPERTY_SCREENSAVER_MODE]);
+#line 109 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp215_[CONFIGURABLE_PROPERTY_SCREENSAVER_MODE] = _tmp216_;
+#line 109 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp217_ = _tmp215_[CONFIGURABLE_PROPERTY_SCREENSAVER_MODE];
+#line 110 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp218_ = self->priv->key_names;
+#line 110 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp218__length1 = self->priv->key_names_length1;
+#line 110 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp219_ = g_strdup ("directory-pattern");
+#line 110 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp218_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN]);
+#line 110 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp218_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN] = _tmp219_;
+#line 110 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp220_ = _tmp218_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN];
+#line 111 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp221_ = self->priv->key_names;
+#line 111 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp221__length1 = self->priv->key_names_length1;
+#line 111 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp222_ = g_strdup ("directory-pattern-custom");
+#line 111 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp221_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM]);
+#line 111 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp221_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM] = _tmp222_;
+#line 111 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp223_ = _tmp221_[CONFIGURABLE_PROPERTY_DIRECTORY_PATTERN_CUSTOM];
+#line 112 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp224_ = self->priv->key_names;
+#line 112 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp224__length1 = self->priv->key_names_length1;
+#line 112 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp225_ = g_strdup ("direct-height");
+#line 112 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp224_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT]);
+#line 112 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp224_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT] = _tmp225_;
+#line 112 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp226_ = _tmp224_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_HEIGHT];
+#line 113 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp227_ = self->priv->key_names;
+#line 113 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp227__length1 = self->priv->key_names_length1;
+#line 113 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp228_ = g_strdup ("direct-maximize");
+#line 113 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp227_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE]);
+#line 113 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp227_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE] = _tmp228_;
+#line 113 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp229_ = _tmp227_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_MAXIMIZE];
+#line 114 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp230_ = self->priv->key_names;
+#line 114 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp230__length1 = self->priv->key_names_length1;
+#line 114 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp231_ = g_strdup ("direct-width");
+#line 114 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp230_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH]);
+#line 114 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp230_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH] = _tmp231_;
+#line 114 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp232_ = _tmp230_[CONFIGURABLE_PROPERTY_DIRECT_WINDOW_WIDTH];
+#line 115 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp233_ = self->priv->key_names;
+#line 115 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp233__length1 = self->priv->key_names_length1;
+#line 115 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp234_ = g_strdup ("display-basic-properties");
+#line 115 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp233_[CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES]);
+#line 115 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp233_[CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES] = _tmp234_;
+#line 115 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp235_ = _tmp233_[CONFIGURABLE_PROPERTY_DISPLAY_BASIC_PROPERTIES];
+#line 116 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp236_ = self->priv->key_names;
+#line 116 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp236__length1 = self->priv->key_names_length1;
+#line 116 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp237_ = g_strdup ("display-extended-properties");
+#line 116 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp236_[CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES]);
+#line 116 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp236_[CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES] = _tmp237_;
+#line 116 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp238_ = _tmp236_[CONFIGURABLE_PROPERTY_DISPLAY_EXTENDED_PROPERTIES];
+#line 117 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp239_ = self->priv->key_names;
+#line 117 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp239__length1 = self->priv->key_names_length1;
+#line 117 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp240_ = g_strdup ("display-sidebar");
+#line 117 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp239_[CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR]);
+#line 117 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp239_[CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR] = _tmp240_;
+#line 117 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp241_ = _tmp239_[CONFIGURABLE_PROPERTY_DISPLAY_SIDEBAR];
+#line 118 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp242_ = self->priv->key_names;
+#line 118 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp242__length1 = self->priv->key_names_length1;
+#line 118 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp243_ = g_strdup ("display-toolbar");
+#line 118 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp242_[CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR]);
+#line 118 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp242_[CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR] = _tmp243_;
+#line 118 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp244_ = _tmp242_[CONFIGURABLE_PROPERTY_DISPLAY_TOOLBAR];
+#line 119 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp245_ = self->priv->key_names;
+#line 119 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp245__length1 = self->priv->key_names_length1;
+#line 119 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp246_ = g_strdup ("display-search-bar");
+#line 119 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp245_[CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR]);
+#line 119 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp245_[CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR] = _tmp246_;
+#line 119 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp247_ = _tmp245_[CONFIGURABLE_PROPERTY_DISPLAY_SEARCH_BAR];
+#line 120 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp248_ = self->priv->key_names;
+#line 120 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp248__length1 = self->priv->key_names_length1;
+#line 120 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp249_ = g_strdup ("display-photo-ratings");
+#line 120 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp248_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS]);
+#line 120 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp248_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS] = _tmp249_;
+#line 120 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp250_ = _tmp248_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_RATINGS];
+#line 121 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp251_ = self->priv->key_names;
+#line 121 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp251__length1 = self->priv->key_names_length1;
+#line 121 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp252_ = g_strdup ("display-photo-tags");
+#line 121 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp251_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS]);
+#line 121 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp251_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS] = _tmp252_;
+#line 121 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp253_ = _tmp251_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TAGS];
+#line 122 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp254_ = self->priv->key_names;
+#line 122 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp254__length1 = self->priv->key_names_length1;
+#line 122 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp255_ = g_strdup ("display-photo-titles");
+#line 122 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp254_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES]);
+#line 122 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp254_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES] = _tmp255_;
+#line 122 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp256_ = _tmp254_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_TITLES];
+#line 123 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp257_ = self->priv->key_names;
+#line 123 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp257__length1 = self->priv->key_names_length1;
+#line 123 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp258_ = g_strdup ("display-photo-comments");
+#line 123 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp257_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS]);
+#line 123 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp257_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS] = _tmp258_;
+#line 123 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp259_ = _tmp257_[CONFIGURABLE_PROPERTY_DISPLAY_PHOTO_COMMENTS];
+#line 124 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp260_ = self->priv->key_names;
+#line 124 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp260__length1 = self->priv->key_names_length1;
+#line 124 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp261_ = g_strdup ("display-event-comments");
+#line 124 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp260_[CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS]);
+#line 124 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp260_[CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS] = _tmp261_;
+#line 124 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp262_ = _tmp260_[CONFIGURABLE_PROPERTY_DISPLAY_EVENT_COMMENTS];
+#line 125 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp263_ = self->priv->key_names;
+#line 125 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp263__length1 = self->priv->key_names_length1;
+#line 125 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp264_ = g_strdup ("event-photos-sort-ascending");
+#line 125 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp263_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING]);
+#line 125 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp263_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING] = _tmp264_;
+#line 125 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp265_ = _tmp263_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_ASCENDING];
+#line 126 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp266_ = self->priv->key_names;
+#line 126 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp266__length1 = self->priv->key_names_length1;
+#line 126 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp267_ = g_strdup ("event-photos-sort-by");
+#line 126 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp266_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY]);
+#line 126 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp266_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY] = _tmp267_;
+#line 126 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp268_ = _tmp266_[CONFIGURABLE_PROPERTY_EVENT_PHOTOS_SORT_BY];
+#line 127 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp269_ = self->priv->key_names;
+#line 127 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp269__length1 = self->priv->key_names_length1;
+#line 127 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp270_ = g_strdup ("events-sort-ascending");
+#line 127 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp269_[CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING]);
+#line 127 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp269_[CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING] = _tmp270_;
+#line 127 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp271_ = _tmp269_[CONFIGURABLE_PROPERTY_EVENTS_SORT_ASCENDING];
+#line 128 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp272_ = self->priv->key_names;
+#line 128 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp272__length1 = self->priv->key_names_length1;
+#line 128 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp273_ = g_strdup ("external-photo-editor");
+#line 128 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp272_[CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP]);
+#line 128 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp272_[CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP] = _tmp273_;
+#line 128 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp274_ = _tmp272_[CONFIGURABLE_PROPERTY_EXTERNAL_PHOTO_APP];
+#line 129 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp275_ = self->priv->key_names;
+#line 129 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp275__length1 = self->priv->key_names_length1;
+#line 129 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp276_ = g_strdup ("external-raw-editor");
+#line 129 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp275_[CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP]);
+#line 129 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp275_[CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP] = _tmp276_;
+#line 129 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp277_ = _tmp275_[CONFIGURABLE_PROPERTY_EXTERNAL_RAW_APP];
+#line 130 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp278_ = self->priv->key_names;
+#line 130 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp278__length1 = self->priv->key_names_length1;
+#line 130 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp279_ = g_strdup ("hide-photos-already-imported");
+#line 130 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp278_[CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED]);
+#line 130 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp278_[CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED] = _tmp279_;
+#line 130 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp280_ = _tmp278_[CONFIGURABLE_PROPERTY_HIDE_PHOTOS_ALREADY_IMPORTED];
+#line 131 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp281_ = self->priv->key_names;
+#line 131 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp281__length1 = self->priv->key_names_length1;
+#line 131 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp282_ = g_strdup ("import-dir");
+#line 131 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp281_[CONFIGURABLE_PROPERTY_IMPORT_DIR]);
+#line 131 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp281_[CONFIGURABLE_PROPERTY_IMPORT_DIR] = _tmp282_;
+#line 131 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp283_ = _tmp281_[CONFIGURABLE_PROPERTY_IMPORT_DIR];
+#line 132 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp284_ = self->priv->key_names;
+#line 132 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp284__length1 = self->priv->key_names_length1;
+#line 132 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp285_ = g_strdup ("keep-relativity");
+#line 132 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp284_[CONFIGURABLE_PROPERTY_KEEP_RELATIVITY]);
+#line 132 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp284_[CONFIGURABLE_PROPERTY_KEEP_RELATIVITY] = _tmp285_;
+#line 132 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp286_ = _tmp284_[CONFIGURABLE_PROPERTY_KEEP_RELATIVITY];
+#line 133 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp287_ = self->priv->key_names;
+#line 133 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp287__length1 = self->priv->key_names_length1;
+#line 133 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp288_ = g_strdup ("last-crop-height");
+#line 133 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp287_[CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT]);
+#line 133 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp287_[CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT] = _tmp288_;
+#line 133 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp289_ = _tmp287_[CONFIGURABLE_PROPERTY_LAST_CROP_HEIGHT];
+#line 134 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp290_ = self->priv->key_names;
+#line 134 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp290__length1 = self->priv->key_names_length1;
+#line 134 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp291_ = g_strdup ("last-crop-menu-choice");
+#line 134 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp290_[CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE]);
+#line 134 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp290_[CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE] = _tmp291_;
+#line 134 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp292_ = _tmp290_[CONFIGURABLE_PROPERTY_LAST_CROP_MENU_CHOICE];
+#line 135 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp293_ = self->priv->key_names;
+#line 135 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp293__length1 = self->priv->key_names_length1;
+#line 135 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp294_ = g_strdup ("last-crop-width");
+#line 135 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp293_[CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH]);
+#line 135 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp293_[CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH] = _tmp294_;
+#line 135 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp295_ = _tmp293_[CONFIGURABLE_PROPERTY_LAST_CROP_WIDTH];
+#line 136 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp296_ = self->priv->key_names;
+#line 136 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp296__length1 = self->priv->key_names_length1;
+#line 136 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp297_ = g_strdup ("last-used-service");
+#line 136 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp296_[CONFIGURABLE_PROPERTY_LAST_USED_SERVICE]);
+#line 136 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp296_[CONFIGURABLE_PROPERTY_LAST_USED_SERVICE] = _tmp297_;
+#line 136 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp298_ = _tmp296_[CONFIGURABLE_PROPERTY_LAST_USED_SERVICE];
+#line 137 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp299_ = self->priv->key_names;
+#line 137 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp299__length1 = self->priv->key_names_length1;
+#line 137 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp300_ = g_strdup ("last-used-dataimports-service");
+#line 137 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp299_[CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE]);
+#line 137 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp299_[CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE] = _tmp300_;
+#line 137 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp301_ = _tmp299_[CONFIGURABLE_PROPERTY_LAST_USED_DATAIMPORTS_SERVICE];
+#line 138 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp302_ = self->priv->key_names;
+#line 138 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp302__length1 = self->priv->key_names_length1;
+#line 138 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp303_ = g_strdup ("library-photos-sort-ascending");
+#line 138 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp302_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING]);
+#line 138 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp302_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING] = _tmp303_;
+#line 138 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp304_ = _tmp302_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_ASCENDING];
+#line 139 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp305_ = self->priv->key_names;
+#line 139 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp305__length1 = self->priv->key_names_length1;
+#line 139 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp306_ = g_strdup ("library-photos-sort-by");
+#line 139 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp305_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY]);
+#line 139 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp305_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY] = _tmp306_;
+#line 139 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp307_ = _tmp305_[CONFIGURABLE_PROPERTY_LIBRARY_PHOTOS_SORT_BY];
+#line 140 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp308_ = self->priv->key_names;
+#line 140 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp308__length1 = self->priv->key_names_length1;
+#line 140 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp309_ = g_strdup ("library-height");
+#line 140 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp308_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT]);
+#line 140 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp308_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT] = _tmp309_;
+#line 140 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp310_ = _tmp308_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_HEIGHT];
+#line 141 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp311_ = self->priv->key_names;
+#line 141 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp311__length1 = self->priv->key_names_length1;
+#line 141 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp312_ = g_strdup ("library-maximize");
+#line 141 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp311_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE]);
+#line 141 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp311_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE] = _tmp312_;
+#line 141 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp313_ = _tmp311_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_MAXIMIZE];
+#line 142 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp314_ = self->priv->key_names;
+#line 142 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp314__length1 = self->priv->key_names_length1;
+#line 142 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp315_ = g_strdup ("library-width");
+#line 142 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp314_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH]);
+#line 142 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp314_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH] = _tmp315_;
+#line 142 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp316_ = _tmp314_[CONFIGURABLE_PROPERTY_LIBRARY_WINDOW_WIDTH];
+#line 143 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp317_ = self->priv->key_names;
+#line 143 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp317__length1 = self->priv->key_names_length1;
+#line 143 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp318_ = g_strdup ("modify-originals");
+#line 143 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp317_[CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS]);
+#line 143 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp317_[CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS] = _tmp318_;
+#line 143 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp319_ = _tmp317_[CONFIGURABLE_PROPERTY_MODIFY_ORIGINALS];
+#line 144 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp320_ = self->priv->key_names;
+#line 144 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp320__length1 = self->priv->key_names_length1;
+#line 144 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp321_ = g_strdup ("photo-thumbnail-scale");
+#line 144 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp320_[CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE]);
+#line 144 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp320_[CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE] = _tmp321_;
+#line 144 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp322_ = _tmp320_[CONFIGURABLE_PROPERTY_PHOTO_THUMBNAIL_SCALE];
+#line 145 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp323_ = self->priv->key_names;
+#line 145 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp323__length1 = self->priv->key_names_length1;
+#line 145 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp324_ = g_strdup ("pin-toolbar-state");
+#line 145 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp323_[CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE]);
+#line 145 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp323_[CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE] = _tmp324_;
+#line 145 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp325_ = _tmp323_[CONFIGURABLE_PROPERTY_PIN_TOOLBAR_STATE];
+#line 146 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp326_ = self->priv->key_names;
+#line 146 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp326__length1 = self->priv->key_names_length1;
+#line 146 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp327_ = g_strdup ("content-height");
+#line 146 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp326_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT]);
+#line 146 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp326_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT] = _tmp327_;
+#line 146 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp328_ = _tmp326_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_HEIGHT];
+#line 147 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp329_ = self->priv->key_names;
+#line 147 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp329__length1 = self->priv->key_names_length1;
+#line 147 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp330_ = g_strdup ("content-layout");
+#line 147 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp329_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT]);
+#line 147 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp329_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT] = _tmp330_;
+#line 147 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp331_ = _tmp329_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_LAYOUT];
+#line 148 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp332_ = self->priv->key_names;
+#line 148 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp332__length1 = self->priv->key_names_length1;
+#line 148 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp333_ = g_strdup ("content-ppi");
+#line 148 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp332_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI]);
+#line 148 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp332_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI] = _tmp333_;
+#line 148 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp334_ = _tmp332_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_PPI];
+#line 149 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp335_ = self->priv->key_names;
+#line 149 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp335__length1 = self->priv->key_names_length1;
+#line 149 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp336_ = g_strdup ("content-units");
+#line 149 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp335_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS]);
+#line 149 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp335_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS] = _tmp336_;
+#line 149 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp337_ = _tmp335_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_UNITS];
+#line 150 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp338_ = self->priv->key_names;
+#line 150 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp338__length1 = self->priv->key_names_length1;
+#line 150 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp339_ = g_strdup ("content-width");
+#line 150 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp338_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH]);
+#line 150 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp338_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH] = _tmp339_;
+#line 150 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp340_ = _tmp338_[CONFIGURABLE_PROPERTY_PRINTING_CONTENT_WIDTH];
+#line 151 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp341_ = self->priv->key_names;
+#line 151 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp341__length1 = self->priv->key_names_length1;
+#line 151 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp342_ = g_strdup ("images-per-page");
+#line 151 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp341_[CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE]);
+#line 151 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp341_[CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE] = _tmp342_;
+#line 151 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp343_ = _tmp341_[CONFIGURABLE_PROPERTY_PRINTING_IMAGES_PER_PAGE];
+#line 152 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp344_ = self->priv->key_names;
+#line 152 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp344__length1 = self->priv->key_names_length1;
+#line 152 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp345_ = g_strdup ("match-aspect-ratio");
+#line 152 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp344_[CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO]);
+#line 152 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp344_[CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO] = _tmp345_;
+#line 152 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp346_ = _tmp344_[CONFIGURABLE_PROPERTY_PRINTING_MATCH_ASPECT_RATIO];
+#line 153 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp347_ = self->priv->key_names;
+#line 153 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp347__length1 = self->priv->key_names_length1;
+#line 153 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp348_ = g_strdup ("print-titles");
+#line 153 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp347_[CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES]);
+#line 153 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp347_[CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES] = _tmp348_;
+#line 153 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp349_ = _tmp347_[CONFIGURABLE_PROPERTY_PRINTING_PRINT_TITLES];
+#line 154 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp350_ = self->priv->key_names;
+#line 154 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp350__length1 = self->priv->key_names_length1;
+#line 154 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp351_ = g_strdup ("size-selection");
+#line 154 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp350_[CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION]);
+#line 154 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp350_[CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION] = _tmp351_;
+#line 154 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp352_ = _tmp350_[CONFIGURABLE_PROPERTY_PRINTING_SIZE_SELECTION];
+#line 155 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp353_ = self->priv->key_names;
+#line 155 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp353__length1 = self->priv->key_names_length1;
+#line 155 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp354_ = g_strdup ("titles-font");
+#line 155 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp353_[CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT]);
+#line 155 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp353_[CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT] = _tmp354_;
+#line 155 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp355_ = _tmp353_[CONFIGURABLE_PROPERTY_PRINTING_TITLES_FONT];
+#line 156 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp356_ = self->priv->key_names;
+#line 156 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp356__length1 = self->priv->key_names_length1;
+#line 156 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp357_ = g_strdup ("raw-developer-default");
+#line 156 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp356_[CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT]);
+#line 156 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp356_[CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT] = _tmp357_;
+#line 156 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp358_ = _tmp356_[CONFIGURABLE_PROPERTY_RAW_DEVELOPER_DEFAULT];
+#line 157 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp359_ = self->priv->key_names;
+#line 157 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp359__length1 = self->priv->key_names_length1;
+#line 157 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp360_ = g_strdup ("show-welcome-dialog");
+#line 157 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp359_[CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG]);
+#line 157 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp359_[CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG] = _tmp360_;
+#line 157 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp361_ = _tmp359_[CONFIGURABLE_PROPERTY_SHOW_WELCOME_DIALOG];
+#line 158 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp362_ = self->priv->key_names;
+#line 158 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp362__length1 = self->priv->key_names_length1;
+#line 158 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp363_ = g_strdup ("sidebar-position");
+#line 158 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp362_[CONFIGURABLE_PROPERTY_SIDEBAR_POSITION]);
+#line 158 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp362_[CONFIGURABLE_PROPERTY_SIDEBAR_POSITION] = _tmp363_;
+#line 158 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp364_ = _tmp362_[CONFIGURABLE_PROPERTY_SIDEBAR_POSITION];
+#line 159 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp365_ = self->priv->key_names;
+#line 159 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp365__length1 = self->priv->key_names_length1;
+#line 159 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp366_ = g_strdup ("delay");
+#line 159 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp365_[CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY]);
+#line 159 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp365_[CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY] = _tmp366_;
+#line 159 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp367_ = _tmp365_[CONFIGURABLE_PROPERTY_SLIDESHOW_DELAY];
+#line 160 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp368_ = self->priv->key_names;
+#line 160 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp368__length1 = self->priv->key_names_length1;
+#line 160 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp369_ = g_strdup ("transition-delay");
+#line 160 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp368_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY]);
+#line 160 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp368_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY] = _tmp369_;
+#line 160 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp370_ = _tmp368_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_DELAY];
+#line 161 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp371_ = self->priv->key_names;
+#line 161 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp371__length1 = self->priv->key_names_length1;
+#line 161 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp372_ = g_strdup ("transition-effect-id");
+#line 161 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp371_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID]);
+#line 161 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp371_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID] = _tmp372_;
+#line 161 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp373_ = _tmp371_[CONFIGURABLE_PROPERTY_SLIDESHOW_TRANSITION_EFFECT_ID];
+#line 162 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp374_ = self->priv->key_names;
+#line 162 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp374__length1 = self->priv->key_names_length1;
+#line 162 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp375_ = g_strdup ("show-title");
+#line 162 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp374_[CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE]);
+#line 162 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp374_[CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE] = _tmp375_;
+#line 162 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp376_ = _tmp374_[CONFIGURABLE_PROPERTY_SLIDESHOW_SHOW_TITLE];
+#line 163 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp377_ = self->priv->key_names;
+#line 163 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp377__length1 = self->priv->key_names_length1;
+#line 163 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp378_ = g_strdup ("use-24-hour-time");
+#line 163 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp377_[CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME]);
+#line 163 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp377_[CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME] = _tmp378_;
+#line 163 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp379_ = _tmp377_[CONFIGURABLE_PROPERTY_USE_24_HOUR_TIME];
+#line 164 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp380_ = self->priv->key_names;
+#line 164 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp380__length1 = self->priv->key_names_length1;
+#line 164 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp381_ = g_strdup ("use-lowercase-filenames");
+#line 164 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp380_[CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES]);
+#line 164 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp380_[CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES] = _tmp381_;
+#line 164 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp382_ = _tmp380_[CONFIGURABLE_PROPERTY_USE_LOWERCASE_FILENAMES];
+#line 165 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp383_ = self->priv->key_names;
+#line 165 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp383__length1 = self->priv->key_names_length1;
+#line 165 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp384_ = g_strdup ("interpreter-state-cookie");
+#line 165 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp383_[CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE]);
+#line 165 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp383_[CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE] = _tmp384_;
+#line 165 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp385_ = _tmp383_[CONFIGURABLE_PROPERTY_VIDEO_INTERPRETER_STATE_COOKIE];
+#line 29 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return self;
+#line 2333 "GSettingsEngine.c"
+}
+
+
+GSettingsConfigurationEngine* gsettings_configuration_engine_new (void) {
+#line 29 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return gsettings_configuration_engine_construct (TYPE_GSETTINGS_CONFIGURATION_ENGINE);
+#line 2340 "GSettingsEngine.c"
+}
+
+
+static gboolean gsettings_configuration_engine_schema_has_key (GSettingsConfigurationEngine* self, GSettings* schema_object, const gchar* key) {
+ gboolean result = FALSE;
+ GSettings* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+#line 168 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self), FALSE);
+#line 168 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (G_IS_SETTINGS (schema_object), FALSE);
+#line 168 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema_object;
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = _tmp1_ = g_settings_list_keys (_tmp0_);
+#line 2359 "GSettingsEngine.c"
+ {
+ gchar** current_key_collection = NULL;
+ gint current_key_collection_length1 = 0;
+ gint _current_key_collection_size_ = 0;
+ gint current_key_it = 0;
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_key_collection = _tmp2_;
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_key_collection_length1 = _vala_array_length (_tmp1_);
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ for (current_key_it = 0; current_key_it < _vala_array_length (_tmp1_); current_key_it = current_key_it + 1) {
+#line 2371 "GSettingsEngine.c"
+ gchar* _tmp3_ = NULL;
+ gchar* current_key = NULL;
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_strdup (current_key_collection[current_key_it]);
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_key = _tmp3_;
+#line 2378 "GSettingsEngine.c"
+ {
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = current_key;
+#line 170 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 170 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (g_strcmp0 (_tmp4_, _tmp5_) == 0) {
+#line 171 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = TRUE;
+#line 171 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (current_key);
+#line 171 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_key_collection = (_vala_array_free (current_key_collection, current_key_collection_length1, (GDestroyNotify) g_free), NULL);
+#line 171 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 2396 "GSettingsEngine.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (current_key);
+#line 2400 "GSettingsEngine.c"
+ }
+ }
+#line 169 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ current_key_collection = (_vala_array_free (current_key_collection, current_key_collection_length1, (GDestroyNotify) g_free), NULL);
+#line 2405 "GSettingsEngine.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = FALSE;
+#line 174 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 2411 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_check_key_valid (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error) {
+ GeeSet* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp8_ = NULL;
+ GSettings* _tmp9_ = NULL;
+ GSettings* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self));
+#line 177 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (schema != NULL);
+#line 177 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 178 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = self->priv->known_schemas;
+#line 178 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = schema;
+#line 178 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 178 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (!_tmp2_) {
+#line 2440 "GSettingsEngine.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+ GError* _tmp7_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = schema;
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = g_strdup_printf ("schema '%s' is not installed", _tmp3_);
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp4_;
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = g_error_new_literal (CONFIGURATION_ERROR, CONFIGURATION_ERROR_ENGINE_ERROR, _tmp5_);
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = _tmp6_;
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp5_);
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = _tmp7_;
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2466 "GSettingsEngine.c"
+ } else {
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 179 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2474 "GSettingsEngine.c"
+ }
+ }
+#line 181 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = schema;
+#line 181 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = g_settings_new (_tmp8_);
+#line 181 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp9_;
+#line 183 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_ = schema_object;
+#line 183 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp11_ = key;
+#line 183 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp12_ = gsettings_configuration_engine_schema_has_key (self, _tmp10_, _tmp11_);
+#line 183 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (!_tmp12_) {
+#line 2491 "GSettingsEngine.c"
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+ GError* _tmp18_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp13_ = schema;
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp14_ = key;
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp15_ = g_strdup_printf ("schema '%s' does not define key '%s'", _tmp13_, _tmp14_);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp16_ = _tmp15_;
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp17_ = g_error_new_literal (CONFIGURATION_ERROR, CONFIGURATION_ERROR_ENGINE_ERROR, _tmp16_);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp18_ = _tmp17_;
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp16_);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = _tmp18_;
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2522 "GSettingsEngine.c"
+ } else {
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 184 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2532 "GSettingsEngine.c"
+ }
+ }
+#line 177 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 2537 "GSettingsEngine.c"
+}
+
+
+static gboolean gsettings_configuration_engine_get_gs_bool (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self), FALSE);
+#line 188 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (schema != NULL, FALSE);
+#line 188 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return FALSE;
+#line 2572 "GSettingsEngine.c"
+ } else {
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 189 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return FALSE;
+#line 2580 "GSettingsEngine.c"
+ }
+ }
+#line 191 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 191 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 191 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 193 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 193 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 193 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = g_settings_get_boolean (_tmp4_, _tmp5_);
+#line 193 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp6_;
+#line 193 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 193 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 2601 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_set_gs_bool (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, gboolean value, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self));
+#line 196 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (schema != NULL);
+#line 196 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2635 "GSettingsEngine.c"
+ } else {
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 197 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2643 "GSettingsEngine.c"
+ }
+ }
+#line 199 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 199 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 199 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 201 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 201 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 201 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = value;
+#line 201 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_settings_set_boolean (_tmp4_, _tmp5_, _tmp6_);
+#line 196 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 2662 "GSettingsEngine.c"
+}
+
+
+static gint gsettings_configuration_engine_get_gs_int (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error) {
+ gint result = 0;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ GError * _inner_error_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self), 0);
+#line 204 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (schema != NULL, 0);
+#line 204 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 2697 "GSettingsEngine.c"
+ } else {
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 205 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 2705 "GSettingsEngine.c"
+ }
+ }
+#line 207 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 207 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 207 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 209 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 209 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 209 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = g_settings_get_int (_tmp4_, _tmp5_);
+#line 209 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp6_;
+#line 209 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 209 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 2726 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_set_gs_int (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, gint value, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ GError * _inner_error_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self));
+#line 212 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (schema != NULL);
+#line 212 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2760 "GSettingsEngine.c"
+ } else {
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 213 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2768 "GSettingsEngine.c"
+ }
+ }
+#line 215 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 215 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 215 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 217 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 217 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 217 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = value;
+#line 217 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_settings_set_int (_tmp4_, _tmp5_, _tmp6_);
+#line 212 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 2787 "GSettingsEngine.c"
+}
+
+
+static gdouble gsettings_configuration_engine_get_gs_double (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error) {
+ gdouble result = 0.0;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ GError * _inner_error_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self), 0.0);
+#line 220 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (schema != NULL, 0.0);
+#line 220 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, 0.0);
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0.0;
+#line 2822 "GSettingsEngine.c"
+ } else {
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0.0;
+#line 2830 "GSettingsEngine.c"
+ }
+ }
+#line 223 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 223 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 223 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 225 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 225 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 225 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = g_settings_get_double (_tmp4_, _tmp5_);
+#line 225 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp6_;
+#line 225 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 225 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 2851 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_set_gs_double (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, gdouble value, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ GError * _inner_error_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self));
+#line 228 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (schema != NULL);
+#line 228 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2885 "GSettingsEngine.c"
+ } else {
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 229 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 2893 "GSettingsEngine.c"
+ }
+ }
+#line 231 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 231 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 231 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 233 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 233 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 233 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = value;
+#line 233 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_settings_set_double (_tmp4_, _tmp5_, _tmp6_);
+#line 228 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 2912 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_get_gs_string (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self), NULL);
+#line 236 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (schema != NULL, NULL);
+#line 236 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return NULL;
+#line 2947 "GSettingsEngine.c"
+ } else {
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return NULL;
+#line 2955 "GSettingsEngine.c"
+ }
+ }
+#line 239 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 239 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 239 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 241 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 241 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 241 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = g_settings_get_string (_tmp4_, _tmp5_);
+#line 241 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp6_;
+#line 241 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 241 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 2976 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_set_gs_string (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, const gchar* value, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self));
+#line 244 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (schema != NULL);
+#line 244 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 244 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (value != NULL);
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3012 "GSettingsEngine.c"
+ } else {
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 245 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3020 "GSettingsEngine.c"
+ }
+ }
+#line 247 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 247 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 247 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 249 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 249 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 249 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = value;
+#line 249 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_settings_set_string (_tmp4_, _tmp5_, _tmp6_);
+#line 244 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 3039 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_reset_gs_to_default (GSettingsConfigurationEngine* self, const gchar* schema, const gchar* key, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GSettings* schema_object = NULL;
+ const gchar* _tmp2_ = NULL;
+ GSettings* _tmp3_ = NULL;
+ GSettings* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (IS_GSETTINGS_CONFIGURATION_ENGINE (self));
+#line 252 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (schema != NULL);
+#line 252 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = schema;
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = key;
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_check_key_valid (self, _tmp0_, _tmp1_, &_inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3072 "GSettingsEngine.c"
+ } else {
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3080 "GSettingsEngine.c"
+ }
+ }
+#line 255 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = schema;
+#line 255 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_settings_new (_tmp2_);
+#line 255 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_object = _tmp3_;
+#line 257 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = schema_object;
+#line 257 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = key;
+#line 257 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_settings_reset (_tmp4_, _tmp5_);
+#line 252 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (schema_object);
+#line 3097 "GSettingsEngine.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 3110 "GSettingsEngine.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 3141 "GSettingsEngine.c"
+ goto __catch189_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 3150 "GSettingsEngine.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 3166 "GSettingsEngine.c"
+ goto __catch189_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 3177 "GSettingsEngine.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3191 "GSettingsEngine.c"
+ }
+ goto __finally189;
+ __catch189_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 3205 "GSettingsEngine.c"
+ }
+ __finally189:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 3216 "GSettingsEngine.c"
+ }
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3240 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_clean_plugin_id (const gchar* id) {
+ gchar* result = NULL;
+ gchar* cleaned = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gchar* _tmp8_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 261 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = id;
+#line 261 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = string_replace (_tmp0_, "/", "-");
+#line 261 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned = _tmp1_;
+#line 262 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = cleaned;
+#line 262 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = string_strip (_tmp2_);
+#line 262 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned);
+#line 262 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned = _tmp3_;
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = cleaned;
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = is_string_empty (_tmp5_);
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (!_tmp6_) {
+#line 3277 "GSettingsEngine.c"
+ const gchar* _tmp7_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = cleaned;
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = _tmp7_;
+#line 3283 "GSettingsEngine.c"
+ } else {
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = NULL;
+#line 3287 "GSettingsEngine.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = g_strdup (_tmp4_);
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp8_;
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned);
+#line 264 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3297 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_get_plugin_enable_disable_name (const gchar* id) {
+ gchar* result = NULL;
+ gchar* cleaned_id = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 267 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 268 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = id;
+#line 268 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = gsettings_configuration_engine_clean_plugin_id (_tmp0_);
+#line 268 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned_id = _tmp1_;
+#line 269 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = cleaned_id;
+#line 269 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_tmp2_ == NULL) {
+#line 3323 "GSettingsEngine.c"
+ gchar* _tmp3_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_strdup ("default");
+#line 270 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned_id);
+#line 270 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned_id = _tmp3_;
+#line 3331 "GSettingsEngine.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = cleaned_id;
+#line 272 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = string_replace (_tmp4_, "org.yorba.shotwell.", "");
+#line 272 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned_id);
+#line 272 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned_id = _tmp5_;
+#line 273 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = cleaned_id;
+#line 273 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = string_replace (_tmp6_, ".", "-");
+#line 273 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned_id);
+#line 273 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned_id = _tmp7_;
+#line 275 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = cleaned_id;
+#line 275 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3353 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_make_plugin_schema_name (const gchar* domain, const gchar* id) {
+ gchar* result = NULL;
+ gchar* cleaned_id = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (domain != NULL, NULL);
+#line 278 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 279 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = id;
+#line 279 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = gsettings_configuration_engine_clean_plugin_id (_tmp0_);
+#line 279 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned_id = _tmp1_;
+#line 280 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = cleaned_id;
+#line 280 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_tmp2_ == NULL) {
+#line 3382 "GSettingsEngine.c"
+ gchar* _tmp3_ = NULL;
+#line 281 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = g_strdup ("default");
+#line 281 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned_id);
+#line 281 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned_id = _tmp3_;
+#line 3390 "GSettingsEngine.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = cleaned_id;
+#line 282 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = string_replace (_tmp4_, ".", "-");
+#line 282 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned_id);
+#line 282 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cleaned_id = _tmp5_;
+#line 284 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = domain;
+#line 284 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = cleaned_id;
+#line 284 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = g_strdup_printf ("org.yorba.shotwell.%s.%s", _tmp6_, _tmp7_);
+#line 284 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp8_;
+#line 284 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cleaned_id);
+#line 284 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3412 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_make_gsettings_key (const gchar* gconf_key) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (gconf_key != NULL, NULL);
+#line 288 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = gconf_key;
+#line 288 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = string_replace (_tmp0_, "_", "-");
+#line 288 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp1_;
+#line 288 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3430 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_real_get_name (ConfigurationEngine* base) {
+ GSettingsConfigurationEngine * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 292 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = g_strdup ("GSettings");
+#line 292 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp0_;
+#line 292 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3446 "GSettingsEngine.c"
+}
+
+
+static gint gsettings_configuration_engine_real_get_int_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ ConfigurableProperty _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ ConfigurableProperty _tmp5_ = 0;
+ const gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ GError * _inner_error_ = NULL;
+#line 295 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = self->priv->schema_names;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1__length1 = self->priv->schema_names_length1;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = p;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp1_[_tmp2_];
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = self->priv->key_names;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4__length1 = self->priv->key_names_length1;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = p;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp4_[_tmp5_];
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = gsettings_configuration_engine_get_gs_int (self, _tmp3_, _tmp6_, &_inner_error_);
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = _tmp7_;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 3494 "GSettingsEngine.c"
+ } else {
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 3502 "GSettingsEngine.c"
+ }
+ }
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp0_;
+#line 296 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3509 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_int_property (ConfigurationEngine* base, ConfigurableProperty p, gint val, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ ConfigurableProperty _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ ConfigurableProperty _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ ConfigurableProperty _tmp7_ = 0;
+ GError * _inner_error_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = self->priv->schema_names;
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0__length1 = self->priv->schema_names_length1;
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = p;
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = _tmp0_[_tmp1_];
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = self->priv->key_names;
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3__length1 = self->priv->key_names_length1;
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = p;
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp3_[_tmp4_];
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = val;
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_int (self, _tmp2_, _tmp5_, _tmp6_, &_inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3556 "GSettingsEngine.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3564 "GSettingsEngine.c"
+ }
+ }
+#line 301 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = p;
+#line 301 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_ENGINE, ConfigurationEngine), "property-changed", _tmp7_);
+#line 3571 "GSettingsEngine.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 3594 "GSettingsEngine.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3602 "GSettingsEngine.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3614 "GSettingsEngine.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 3638 "GSettingsEngine.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 3644 "GSettingsEngine.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 3648 "GSettingsEngine.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 3652 "GSettingsEngine.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 3664 "GSettingsEngine.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 3674 "GSettingsEngine.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 3680 "GSettingsEngine.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 3694 "GSettingsEngine.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 3704 "GSettingsEngine.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 3710 "GSettingsEngine.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 3719 "GSettingsEngine.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3739 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_real_get_string_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gchar* result = NULL;
+ gchar* gs_result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ ConfigurableProperty _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ ConfigurableProperty _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp7_ = NULL;
+ ConfigurableProperty _tmp8_ = 0;
+ GError * _inner_error_ = NULL;
+#line 304 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = self->priv->schema_names;
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0__length1 = self->priv->schema_names_length1;
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = p;
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = _tmp0_[_tmp1_];
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = self->priv->key_names;
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3__length1 = self->priv->key_names_length1;
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = p;
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp3_[_tmp4_];
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = gsettings_configuration_engine_get_gs_string (self, _tmp2_, _tmp5_, &_inner_error_);
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gs_result = _tmp6_;
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return NULL;
+#line 3790 "GSettingsEngine.c"
+ } else {
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 305 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return NULL;
+#line 3798 "GSettingsEngine.c"
+ }
+ }
+#line 309 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = g_strdup (gs_result);
+#line 309 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _result_ = _tmp7_;
+#line 310 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = p;
+#line 310 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_tmp8_ == CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE) {
+#line 3809 "GSettingsEngine.c"
+ gchar* _tmp9_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = string_substring (gs_result, (glong) 7, (glong) -1);
+#line 311 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_result_);
+#line 311 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _result_ = _tmp9_;
+#line 3817 "GSettingsEngine.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _result_;
+#line 314 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (gs_result);
+#line 314 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3825 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_string_property (ConfigurationEngine* base, ConfigurableProperty p, const gchar* val, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gchar* converted_val = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ConfigurableProperty _tmp3_ = 0;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ ConfigurableProperty _tmp8_ = 0;
+ const gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ ConfigurableProperty _tmp11_ = 0;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ ConfigurableProperty _tmp14_ = 0;
+ GError * _inner_error_ = NULL;
+#line 317 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 317 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (val != NULL);
+#line 319 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = val;
+#line 319 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 319 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ converted_val = _tmp1_;
+#line 320 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = p;
+#line 320 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_tmp3_ == CONFIGURABLE_PROPERTY_DESKTOP_BACKGROUND_FILE) {
+#line 320 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = TRUE;
+#line 3863 "GSettingsEngine.c"
+ } else {
+ ConfigurableProperty _tmp4_ = 0;
+#line 321 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = p;
+#line 321 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = _tmp4_ == CONFIGURABLE_PROPERTY_SCREENSAVER_FILE;
+#line 3870 "GSettingsEngine.c"
+ }
+#line 320 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_tmp2_) {
+#line 3874 "GSettingsEngine.c"
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 322 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = val;
+#line 322 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = g_strconcat ("file://", _tmp5_, NULL);
+#line 322 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (converted_val);
+#line 322 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ converted_val = _tmp6_;
+#line 3885 "GSettingsEngine.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = self->priv->schema_names;
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7__length1 = self->priv->schema_names_length1;
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = p;
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = _tmp7_[_tmp8_];
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_ = self->priv->key_names;
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10__length1 = self->priv->key_names_length1;
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp11_ = p;
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp12_ = _tmp10_[_tmp11_];
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp13_ = converted_val;
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_string (self, _tmp9_, _tmp12_, _tmp13_, &_inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (converted_val);
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3917 "GSettingsEngine.c"
+ } else {
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (converted_val);
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 3927 "GSettingsEngine.c"
+ }
+ }
+#line 326 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp14_ = p;
+#line 326 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_ENGINE, ConfigurationEngine), "property-changed", _tmp14_);
+#line 317 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (converted_val);
+#line 3936 "GSettingsEngine.c"
+}
+
+
+static gboolean gsettings_configuration_engine_real_get_bool_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ ConfigurableProperty _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ ConfigurableProperty _tmp5_ = 0;
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 329 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = self->priv->schema_names;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1__length1 = self->priv->schema_names_length1;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = p;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp1_[_tmp2_];
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = self->priv->key_names;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4__length1 = self->priv->key_names_length1;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = p;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp4_[_tmp5_];
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = gsettings_configuration_engine_get_gs_bool (self, _tmp3_, _tmp6_, &_inner_error_);
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = _tmp7_;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return FALSE;
+#line 3984 "GSettingsEngine.c"
+ } else {
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return FALSE;
+#line 3992 "GSettingsEngine.c"
+ }
+ }
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp0_;
+#line 330 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 3999 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_bool_property (ConfigurationEngine* base, ConfigurableProperty p, gboolean val, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ ConfigurableProperty _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ ConfigurableProperty _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ ConfigurableProperty _tmp7_ = 0;
+ GError * _inner_error_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = self->priv->schema_names;
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0__length1 = self->priv->schema_names_length1;
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = p;
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = _tmp0_[_tmp1_];
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = self->priv->key_names;
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3__length1 = self->priv->key_names_length1;
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = p;
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp3_[_tmp4_];
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = val;
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_bool (self, _tmp2_, _tmp5_, _tmp6_, &_inner_error_);
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4046 "GSettingsEngine.c"
+ } else {
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 334 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4054 "GSettingsEngine.c"
+ }
+ }
+#line 335 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = p;
+#line 335 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_ENGINE, ConfigurationEngine), "property-changed", _tmp7_);
+#line 4061 "GSettingsEngine.c"
+}
+
+
+static gdouble gsettings_configuration_engine_real_get_double_property (ConfigurationEngine* base, ConfigurableProperty p, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gdouble result = 0.0;
+ gdouble _tmp0_ = 0.0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ ConfigurableProperty _tmp2_ = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ ConfigurableProperty _tmp5_ = 0;
+ const gchar* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ GError * _inner_error_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = self->priv->schema_names;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1__length1 = self->priv->schema_names_length1;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = p;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp1_[_tmp2_];
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = self->priv->key_names;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4__length1 = self->priv->key_names_length1;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = p;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp4_[_tmp5_];
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = gsettings_configuration_engine_get_gs_double (self, _tmp3_, _tmp6_, &_inner_error_);
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = _tmp7_;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0.0;
+#line 4109 "GSettingsEngine.c"
+ } else {
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0.0;
+#line 4117 "GSettingsEngine.c"
+ }
+ }
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp0_;
+#line 339 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4124 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_double_property (ConfigurationEngine* base, ConfigurableProperty p, gdouble val, GError** error) {
+ GSettingsConfigurationEngine * self;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ ConfigurableProperty _tmp1_ = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ ConfigurableProperty _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ ConfigurableProperty _tmp7_ = 0;
+ GError * _inner_error_ = NULL;
+#line 342 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = self->priv->schema_names;
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0__length1 = self->priv->schema_names_length1;
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = p;
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = _tmp0_[_tmp1_];
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = self->priv->key_names;
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3__length1 = self->priv->key_names_length1;
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = p;
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp3_[_tmp4_];
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = val;
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_double (self, _tmp2_, _tmp5_, _tmp6_, &_inner_error_);
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_propagate_error (error, _inner_error_);
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4171 "GSettingsEngine.c"
+ } else {
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 343 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4179 "GSettingsEngine.c"
+ }
+ }
+#line 344 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = p;
+#line 344 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CONFIGURATION_ENGINE, ConfigurationEngine), "property-changed", _tmp7_);
+#line 4186 "GSettingsEngine.c"
+}
+
+
+static gboolean gsettings_configuration_engine_real_get_plugin_bool (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gboolean def) {
+ GSettingsConfigurationEngine * self;
+ gboolean result = FALSE;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 347 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 347 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (domain != NULL, FALSE);
+#line 347 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, FALSE);
+#line 347 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 348 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 348 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 348 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 348 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4214 "GSettingsEngine.c"
+ {
+ gboolean _tmp3_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = key;
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = gsettings_configuration_engine_make_gsettings_key (_tmp4_);
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp5_;
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = gsettings_configuration_engine_get_gs_bool (self, schema_name, _tmp6_, &_inner_error_);
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_;
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp6_);
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp8_;
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4240 "GSettingsEngine.c"
+ goto __catch190_configuration_error;
+ }
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return FALSE;
+#line 4251 "GSettingsEngine.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp3_;
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 351 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4259 "GSettingsEngine.c"
+ }
+ goto __finally190;
+ __catch190_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 350 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 350 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 353 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = err;
+#line 353 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_ = _tmp9_->message;
+#line 353 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:353: GSettingsConfigurationEngine: error: %s", _tmp10_);
+#line 354 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp11_ = def;
+#line 354 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp11_;
+#line 354 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 354 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 354 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4288 "GSettingsEngine.c"
+ }
+ __finally190:
+#line 350 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 350 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 350 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 350 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return FALSE;
+#line 4299 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_plugin_bool (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gboolean val) {
+ GSettingsConfigurationEngine * self;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 358 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 358 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (domain != NULL);
+#line 358 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (id != NULL);
+#line 358 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 359 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 359 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 359 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 359 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4326 "GSettingsEngine.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = key;
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = gsettings_configuration_engine_make_gsettings_key (_tmp3_);
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp4_;
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = val;
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_bool (self, schema_name, _tmp5_, _tmp6_, &_inner_error_);
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp5_);
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4348 "GSettingsEngine.c"
+ goto __catch191_configuration_error;
+ }
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 362 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4359 "GSettingsEngine.c"
+ }
+ }
+ goto __finally191;
+ __catch191_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 364 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = err;
+#line 364 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_->message;
+#line 364 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:364: GSettingsConfigurationEngine: error: %s", _tmp8_);
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 4380 "GSettingsEngine.c"
+ }
+ __finally191:
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 361 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4393 "GSettingsEngine.c"
+ }
+#line 358 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 4397 "GSettingsEngine.c"
+}
+
+
+static gdouble gsettings_configuration_engine_real_get_plugin_double (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gdouble def) {
+ GSettingsConfigurationEngine * self;
+ gdouble result = 0.0;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 368 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 368 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (domain != NULL, 0.0);
+#line 368 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, 0.0);
+#line 368 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, 0.0);
+#line 369 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 369 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 369 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 369 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4425 "GSettingsEngine.c"
+ {
+ gdouble _tmp3_ = 0.0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = key;
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = gsettings_configuration_engine_make_gsettings_key (_tmp4_);
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp5_;
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = gsettings_configuration_engine_get_gs_double (self, schema_name, _tmp6_, &_inner_error_);
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_;
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp6_);
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp8_;
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4451 "GSettingsEngine.c"
+ goto __catch192_configuration_error;
+ }
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0.0;
+#line 4462 "GSettingsEngine.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp3_;
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 372 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4470 "GSettingsEngine.c"
+ }
+ goto __finally192;
+ __catch192_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gdouble _tmp11_ = 0.0;
+#line 371 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 371 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 374 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = err;
+#line 374 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_ = _tmp9_->message;
+#line 374 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:374: GSettingsConfigurationEngine: error: %s", _tmp10_);
+#line 375 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp11_ = def;
+#line 375 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp11_;
+#line 375 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 375 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 375 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4499 "GSettingsEngine.c"
+ }
+ __finally192:
+#line 371 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 371 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 371 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 371 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0.0;
+#line 4510 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_plugin_double (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gdouble val) {
+ GSettingsConfigurationEngine * self;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 379 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 379 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (domain != NULL);
+#line 379 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (id != NULL);
+#line 379 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 380 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 380 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 380 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 380 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4537 "GSettingsEngine.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = key;
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = gsettings_configuration_engine_make_gsettings_key (_tmp3_);
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp4_;
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = val;
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_double (self, schema_name, _tmp5_, _tmp6_, &_inner_error_);
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp5_);
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4559 "GSettingsEngine.c"
+ goto __catch193_configuration_error;
+ }
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 383 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4570 "GSettingsEngine.c"
+ }
+ }
+ goto __finally193;
+ __catch193_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 385 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = err;
+#line 385 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_->message;
+#line 385 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:385: GSettingsConfigurationEngine: error: %s", _tmp8_);
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 4591 "GSettingsEngine.c"
+ }
+ __finally193:
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 382 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4604 "GSettingsEngine.c"
+ }
+#line 379 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 4608 "GSettingsEngine.c"
+}
+
+
+static gint gsettings_configuration_engine_real_get_plugin_int (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gint def) {
+ GSettingsConfigurationEngine * self;
+ gint result = 0;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 389 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 389 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (domain != NULL, 0);
+#line 389 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, 0);
+#line 389 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 390 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 390 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 390 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 390 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4636 "GSettingsEngine.c"
+ {
+ gint _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = key;
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = gsettings_configuration_engine_make_gsettings_key (_tmp4_);
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp5_;
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = gsettings_configuration_engine_get_gs_int (self, schema_name, _tmp6_, &_inner_error_);
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_;
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp6_);
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp8_;
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4662 "GSettingsEngine.c"
+ goto __catch194_configuration_error;
+ }
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 4673 "GSettingsEngine.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp3_;
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 393 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4681 "GSettingsEngine.c"
+ }
+ goto __finally194;
+ __catch194_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+#line 392 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 392 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = err;
+#line 395 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_ = _tmp9_->message;
+#line 395 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:395: GSettingsConfigurationEngine: error: %s", _tmp10_);
+#line 396 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp11_ = def;
+#line 396 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp11_;
+#line 396 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 396 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 396 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4710 "GSettingsEngine.c"
+ }
+ __finally194:
+#line 392 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 392 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 392 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 392 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 4721 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_plugin_int (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, gint val) {
+ GSettingsConfigurationEngine * self;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 400 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 400 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (domain != NULL);
+#line 400 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (id != NULL);
+#line 400 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 401 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 401 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 401 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 401 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4748 "GSettingsEngine.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = key;
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = gsettings_configuration_engine_make_gsettings_key (_tmp3_);
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp4_;
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = val;
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_int (self, schema_name, _tmp5_, _tmp6_, &_inner_error_);
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp5_);
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4770 "GSettingsEngine.c"
+ goto __catch195_configuration_error;
+ }
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 404 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4781 "GSettingsEngine.c"
+ }
+ }
+ goto __finally195;
+ __catch195_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 406 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = err;
+#line 406 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_->message;
+#line 406 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:406: GSettingsConfigurationEngine: error: %s", _tmp8_);
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 4802 "GSettingsEngine.c"
+ }
+ __finally195:
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 403 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 4815 "GSettingsEngine.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 4819 "GSettingsEngine.c"
+}
+
+
+static gchar* gsettings_configuration_engine_real_get_plugin_string (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, const gchar* def) {
+ GSettingsConfigurationEngine * self;
+ gchar* result = NULL;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 410 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 410 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (domain != NULL, NULL);
+#line 410 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 410 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 411 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 411 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 411 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 411 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4847 "GSettingsEngine.c"
+ {
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = key;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = gsettings_configuration_engine_make_gsettings_key (_tmp4_);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp5_;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = gsettings_configuration_engine_get_gs_string (self, schema_name, _tmp6_, &_inner_error_);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp6_);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp8_;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4874 "GSettingsEngine.c"
+ goto __catch196_configuration_error;
+ }
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return NULL;
+#line 4885 "GSettingsEngine.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp9_ = _tmp3_;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = NULL;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp9_;
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp3_);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 414 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4899 "GSettingsEngine.c"
+ }
+ goto __finally196;
+ __catch196_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 413 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 413 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp10_ = err;
+#line 416 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp11_ = _tmp10_->message;
+#line 416 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:416: GSettingsConfigurationEngine: error: %s", _tmp11_);
+#line 417 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp12_ = def;
+#line 417 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 417 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp13_;
+#line 417 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 417 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 417 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 4931 "GSettingsEngine.c"
+ }
+ __finally196:
+#line 413 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 413 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 413 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 413 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return NULL;
+#line 4942 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_plugin_string (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key, const gchar* val) {
+ GSettingsConfigurationEngine * self;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 421 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (domain != NULL);
+#line 421 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (id != NULL);
+#line 421 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 422 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 422 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 422 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 422 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 4969 "GSettingsEngine.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = key;
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = gsettings_configuration_engine_make_gsettings_key (_tmp3_);
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp4_;
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = val;
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_string (self, schema_name, _tmp5_, _tmp6_, &_inner_error_);
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp5_);
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 4991 "GSettingsEngine.c"
+ goto __catch197_configuration_error;
+ }
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 425 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 5002 "GSettingsEngine.c"
+ }
+ }
+ goto __finally197;
+ __catch197_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 427 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = err;
+#line 427 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp8_ = _tmp7_->message;
+#line 427 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:427: GSettingsConfigurationEngine: error: %s", _tmp8_);
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 5023 "GSettingsEngine.c"
+ }
+ __finally197:
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 424 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 5036 "GSettingsEngine.c"
+ }
+#line 421 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 5040 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_unset_plugin_key (ConfigurationEngine* base, const gchar* domain, const gchar* id, const gchar* key) {
+ GSettingsConfigurationEngine * self;
+ gchar* schema_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 431 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 431 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (domain != NULL);
+#line 431 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (id != NULL);
+#line 431 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (key != NULL);
+#line 432 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = domain;
+#line 432 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = id;
+#line 432 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = gsettings_configuration_engine_make_plugin_schema_name (_tmp0_, _tmp1_);
+#line 432 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ schema_name = _tmp2_;
+#line 5067 "GSettingsEngine.c"
+ {
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = key;
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = gsettings_configuration_engine_make_gsettings_key (_tmp3_);
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp4_;
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_reset_gs_to_default (self, schema_name, _tmp5_, &_inner_error_);
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp5_);
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5086 "GSettingsEngine.c"
+ goto __catch198_configuration_error;
+ }
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 435 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 5097 "GSettingsEngine.c"
+ }
+ }
+ goto __finally198;
+ __catch198_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 437 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = err;
+#line 437 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = _tmp6_->message;
+#line 437 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:437: GSettingsConfigurationEngine: error: %s", _tmp7_);
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 5118 "GSettingsEngine.c"
+ }
+ __finally198:
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 434 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 5131 "GSettingsEngine.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (schema_name);
+#line 5135 "GSettingsEngine.c"
+}
+
+
+static FuzzyPropertyState gsettings_configuration_engine_real_is_plugin_enabled (ConfigurationEngine* base, const gchar* id) {
+ GSettingsConfigurationEngine * self;
+ FuzzyPropertyState result = 0;
+ gchar* enable_disable_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 441 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 441 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_val_if_fail (id != NULL, 0);
+#line 442 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = id;
+#line 442 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = gsettings_configuration_engine_get_plugin_enable_disable_name (_tmp0_);
+#line 442 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ enable_disable_name = _tmp1_;
+#line 5156 "GSettingsEngine.c"
+ {
+ FuzzyPropertyState _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = gsettings_configuration_engine_get_gs_bool (self, GSETTINGS_CONFIGURATION_ENGINE_PLUGINS_ENABLE_DISABLE_SCHEMA_NAME, enable_disable_name, &_inner_error_);
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp4_;
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5169 "GSettingsEngine.c"
+ goto __catch199_configuration_error;
+ }
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (enable_disable_name);
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 5180 "GSettingsEngine.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_tmp3_) {
+#line 446 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = FUZZY_PROPERTY_STATE_ENABLED;
+#line 5186 "GSettingsEngine.c"
+ } else {
+#line 446 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = FUZZY_PROPERTY_STATE_DISABLED;
+#line 5190 "GSettingsEngine.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = _tmp2_;
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (enable_disable_name);
+#line 445 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 5198 "GSettingsEngine.c"
+ }
+ goto __finally199;
+ __catch199_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 444 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = err;
+#line 448 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = _tmp5_->message;
+#line 448 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:448: GSettingsConfigurationEngine: error: %s", _tmp6_);
+#line 449 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ result = FUZZY_PROPERTY_STATE_UNKNOWN;
+#line 449 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 449 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (enable_disable_name);
+#line 449 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return result;
+#line 5224 "GSettingsEngine.c"
+ }
+ __finally199:
+#line 444 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (enable_disable_name);
+#line 444 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 444 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 444 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return 0;
+#line 5235 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_real_set_plugin_enabled (ConfigurationEngine* base, const gchar* id, gboolean enabled) {
+ GSettingsConfigurationEngine * self;
+ gchar* enable_disable_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 453 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 453 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_return_if_fail (id != NULL);
+#line 454 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = id;
+#line 454 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = gsettings_configuration_engine_get_plugin_enable_disable_name (_tmp0_);
+#line 454 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ enable_disable_name = _tmp1_;
+#line 5255 "GSettingsEngine.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = enabled;
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_set_gs_bool (self, GSETTINGS_CONFIGURATION_ENGINE_PLUGINS_ENABLE_DISABLE_SCHEMA_NAME, enable_disable_name, _tmp2_, &_inner_error_);
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (_inner_error_->domain == CONFIGURATION_ERROR) {
+#line 5266 "GSettingsEngine.c"
+ goto __catch200_configuration_error;
+ }
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (enable_disable_name);
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 457 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 5277 "GSettingsEngine.c"
+ }
+ }
+ goto __finally200;
+ __catch200_configuration_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 459 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = err;
+#line 459 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = _tmp3_->message;
+#line 459 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("GSettingsEngine.vala:459: GSettingsConfigurationEngine: error: %s", _tmp4_);
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 5298 "GSettingsEngine.c"
+ }
+ __finally200:
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (enable_disable_name);
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 456 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 5311 "GSettingsEngine.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (enable_disable_name);
+#line 5315 "GSettingsEngine.c"
+}
+
+
+void gsettings_configuration_engine_run_gsettings_migrator (void) {
+ gchar* cmd_line = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp0_ = app_dirs_get_settings_migrator_bin ();
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp1_ = _tmp0_;
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp3_ = _tmp2_;
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp4_ = g_strconcat ("sh ", _tmp3_, NULL);
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp5_ = _tmp4_;
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (_tmp3_);
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (_tmp1_);
+#line 468 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ cmd_line = _tmp5_;
+#line 5346 "GSettingsEngine.c"
+ {
+#line 471 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_spawn_command_line_sync (cmd_line, NULL, NULL, NULL, &_inner_error_);
+#line 471 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 5352 "GSettingsEngine.c"
+ goto __catch201_g_error;
+ }
+ }
+ goto __finally201;
+ __catch201_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ err = _inner_error_;
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _inner_error_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp6_ = err;
+#line 473 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _tmp7_ = _tmp6_->message;
+#line 473 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_message ("GSettingsEngine.vala:473: Error running shotwell-settings-migrator: %s", _tmp7_);
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_error_free0 (err);
+#line 5374 "GSettingsEngine.c"
+ }
+ __finally201:
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cmd_line);
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_clear_error (&_inner_error_);
+#line 470 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ return;
+#line 5387 "GSettingsEngine.c"
+ }
+#line 467 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_free0 (cmd_line);
+#line 5391 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_class_init (GSettingsConfigurationEngineClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ g_type_class_add_private (klass, sizeof (GSettingsConfigurationEnginePrivate));
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ G_OBJECT_CLASS (klass)->finalize = gsettings_configuration_engine_finalize;
+#line 5402 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_configuration_engine_interface_init (ConfigurationEngineIface * iface) {
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ gsettings_configuration_engine_configuration_engine_parent_iface = g_type_interface_peek_parent (iface);
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_name = (gchar* (*)(ConfigurationEngine*)) gsettings_configuration_engine_real_get_name;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_int_property = (gint (*)(ConfigurationEngine*, ConfigurableProperty, GError**)) gsettings_configuration_engine_real_get_int_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_int_property = (void (*)(ConfigurationEngine*, ConfigurableProperty, gint, GError**)) gsettings_configuration_engine_real_set_int_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_string_property = (gchar* (*)(ConfigurationEngine*, ConfigurableProperty, GError**)) gsettings_configuration_engine_real_get_string_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_string_property = (void (*)(ConfigurationEngine*, ConfigurableProperty, const gchar*, GError**)) gsettings_configuration_engine_real_set_string_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_bool_property = (gboolean (*)(ConfigurationEngine*, ConfigurableProperty, GError**)) gsettings_configuration_engine_real_get_bool_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_bool_property = (void (*)(ConfigurationEngine*, ConfigurableProperty, gboolean, GError**)) gsettings_configuration_engine_real_set_bool_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_double_property = (gdouble (*)(ConfigurationEngine*, ConfigurableProperty, GError**)) gsettings_configuration_engine_real_get_double_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_double_property = (void (*)(ConfigurationEngine*, ConfigurableProperty, gdouble, GError**)) gsettings_configuration_engine_real_set_double_property;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_plugin_bool = (gboolean (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, gboolean)) gsettings_configuration_engine_real_get_plugin_bool;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_plugin_bool = (void (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, gboolean)) gsettings_configuration_engine_real_set_plugin_bool;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_plugin_double = (gdouble (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, gdouble)) gsettings_configuration_engine_real_get_plugin_double;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_plugin_double = (void (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, gdouble)) gsettings_configuration_engine_real_set_plugin_double;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_plugin_int = (gint (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, gint)) gsettings_configuration_engine_real_get_plugin_int;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_plugin_int = (void (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, gint)) gsettings_configuration_engine_real_set_plugin_int;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->get_plugin_string = (gchar* (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, const gchar*)) gsettings_configuration_engine_real_get_plugin_string;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_plugin_string = (void (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*, const gchar*)) gsettings_configuration_engine_real_set_plugin_string;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->unset_plugin_key = (void (*)(ConfigurationEngine*, const gchar*, const gchar*, const gchar*)) gsettings_configuration_engine_real_unset_plugin_key;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->is_plugin_enabled = (FuzzyPropertyState (*)(ConfigurationEngine*, const gchar*)) gsettings_configuration_engine_real_is_plugin_enabled;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ iface->set_plugin_enabled = (void (*)(ConfigurationEngine*, const gchar*, gboolean)) gsettings_configuration_engine_real_set_plugin_enabled;
+#line 5449 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_instance_init (GSettingsConfigurationEngine * self) {
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv = GSETTINGS_CONFIGURATION_ENGINE_GET_PRIVATE (self);
+#line 5456 "GSettingsEngine.c"
+}
+
+
+static void gsettings_configuration_engine_finalize (GObject* obj) {
+ GSettingsConfigurationEngine * self;
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_GSETTINGS_CONFIGURATION_ENGINE, GSettingsConfigurationEngine);
+#line 25 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ _g_object_unref0 (self->priv->known_schemas);
+#line 26 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->schema_names = (_vala_array_free (self->priv->schema_names, self->priv->schema_names_length1, (GDestroyNotify) g_free), NULL);
+#line 27 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ self->priv->key_names = (_vala_array_free (self->priv->key_names, self->priv->key_names_length1, (GDestroyNotify) g_free), NULL);
+#line 7 "/home/jens/Source/shotwell/src/config/GSettingsEngine.vala"
+ G_OBJECT_CLASS (gsettings_configuration_engine_parent_class)->finalize (obj);
+#line 5472 "GSettingsEngine.c"
+}
+
+
+GType gsettings_configuration_engine_get_type (void) {
+ static volatile gsize gsettings_configuration_engine_type_id__volatile = 0;
+ if (g_once_init_enter (&gsettings_configuration_engine_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (GSettingsConfigurationEngineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gsettings_configuration_engine_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GSettingsConfigurationEngine), 0, (GInstanceInitFunc) gsettings_configuration_engine_instance_init, NULL };
+ static const GInterfaceInfo configuration_engine_info = { (GInterfaceInitFunc) gsettings_configuration_engine_configuration_engine_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType gsettings_configuration_engine_type_id;
+ gsettings_configuration_engine_type_id = g_type_register_static (G_TYPE_OBJECT, "GSettingsConfigurationEngine", &g_define_type_info, 0);
+ g_type_add_interface_static (gsettings_configuration_engine_type_id, TYPE_CONFIGURATION_ENGINE, &configuration_engine_info);
+ g_once_init_leave (&gsettings_configuration_engine_type_id__volatile, gsettings_configuration_engine_type_id);
+ }
+ return gsettings_configuration_engine_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/config/GSettingsEngine.vala b/src/config/GSettingsEngine.vala
index d7ad69f..6329b78 100644
--- a/src/config/GSettingsEngine.vala
+++ b/src/config/GSettingsEngine.vala
@@ -49,6 +49,7 @@ public class GSettingsConfigurationEngine : ConfigurationEngine, GLib.Object {
schema_names[ConfigurableProperty.DISPLAY_BASIC_PROPERTIES] = UI_PREFS_SCHEMA_NAME;
schema_names[ConfigurableProperty.DISPLAY_EXTENDED_PROPERTIES] = UI_PREFS_SCHEMA_NAME;
schema_names[ConfigurableProperty.DISPLAY_SIDEBAR] = UI_PREFS_SCHEMA_NAME;
+ schema_names[ConfigurableProperty.DISPLAY_TOOLBAR] = UI_PREFS_SCHEMA_NAME;
schema_names[ConfigurableProperty.DISPLAY_SEARCH_BAR] = UI_PREFS_SCHEMA_NAME;
schema_names[ConfigurableProperty.DISPLAY_PHOTO_RATINGS] = UI_PREFS_SCHEMA_NAME;
schema_names[ConfigurableProperty.DISPLAY_PHOTO_TAGS] = UI_PREFS_SCHEMA_NAME;
@@ -114,6 +115,7 @@ public class GSettingsConfigurationEngine : ConfigurationEngine, GLib.Object {
key_names[ConfigurableProperty.DISPLAY_BASIC_PROPERTIES] = "display-basic-properties";
key_names[ConfigurableProperty.DISPLAY_EXTENDED_PROPERTIES] = "display-extended-properties";
key_names[ConfigurableProperty.DISPLAY_SIDEBAR] = "display-sidebar";
+ key_names[ConfigurableProperty.DISPLAY_TOOLBAR] = "display-toolbar";
key_names[ConfigurableProperty.DISPLAY_SEARCH_BAR] = "display-search-bar";
key_names[ConfigurableProperty.DISPLAY_PHOTO_RATINGS] = "display-photo-ratings";
key_names[ConfigurableProperty.DISPLAY_PHOTO_TAGS] = "display-photo-tags";
diff --git a/src/config/mk/config.mk b/src/config/mk/config.mk
deleted file mode 100644
index e06dedf..0000000
--- a/src/config/mk/config.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Config
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := config
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- ConfigurationInterfaces.vala \
- GSettingsEngine.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/core/Alteration.c b/src/core/Alteration.c
new file mode 100644
index 0000000..2bb624a
--- /dev/null
+++ b/src/core/Alteration.c
@@ -0,0 +1,2918 @@
+/* Alteration.c generated by valac 0.32.1, the Vala compiler
+ * generated from Alteration.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/**/
+/* Alteration represents a description of what has changed in the DataObject (reported via the*/
+/* "altered" signal). Since the descriptions can vary wildly depending on the semantics of each*/
+/* DataObject, no assumptions or requirements are placed on Alteration other than it must have*/
+/* one or more "subjects", each with a "detail". Subscribers to the "altered" signal can query*/
+/* the Alteration object to determine if the change is important to them.*/
+/**/
+/* Alteration is an immutable type. This means it's possible to store const Alterations of oft-used*/
+/* values for reuse.*/
+/**/
+/* Alterations may be compressed, merging their subjects and details into a new aggregated*/
+/* Alteration. Generally this is handled automatically by DataObject and DataCollection, when*/
+/* necessary.*/
+/**/
+/* NOTE: subjects and details should be ASCII labels (as in, plain-old ASCII, no code pages).*/
+/* They are treated as case-sensitive strings.*/
+/**/
+/* Recommended subjects include: image, thumbnail, metadata.*/
+/**/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+typedef struct _AlterationPrivate AlterationPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecAlteration ParamSpecAlteration;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Alteration {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AlterationPrivate * priv;
+};
+
+struct _AlterationClass {
+ GTypeClass parent_class;
+ void (*finalize) (Alteration *self);
+};
+
+struct _AlterationPrivate {
+ gchar* subject;
+ gchar* detail;
+ GeeMultiMap* map;
+};
+
+struct _ParamSpecAlteration {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer alteration_parent_class = NULL;
+
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+#define ALTERATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ALTERATION, AlterationPrivate))
+enum {
+ ALTERATION_DUMMY_PROPERTY
+};
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+static void alteration_add_detail (Alteration* self, const gchar* sub, const gchar* det);
+Alteration* alteration_new_from_list (const gchar* list);
+Alteration* alteration_construct_from_list (GType object_type, const gchar* list);
+Alteration* alteration_new_from_array (gchar** array, int array_length1);
+Alteration* alteration_construct_from_array (GType object_type, gchar** array, int array_length1);
+static Alteration* alteration_new_from_map (GeeMultiMap* map);
+static Alteration* alteration_construct_from_map (GType object_type, GeeMultiMap* map);
+static GeeMultiMap* alteration_create_map (Alteration* self);
+static guint alteration_case_hash (const gchar* a);
+static guint _alteration_case_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+static gboolean alteration_case_equal (const gchar* a, const gchar* b);
+static gboolean _alteration_case_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static inline gboolean alteration_equal_values (const gchar* str1, const gchar* str2);
+static inline guint alteration_hash_value (const gchar* str);
+gboolean alteration_has_subject (Alteration* self, const gchar* subject);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+GeeCollection* alteration_get_details (Alteration* self, const gchar* subject);
+gchar* alteration_to_string (Alteration* self);
+gboolean alteration_contains_any (Alteration* self, Alteration* other);
+gboolean alteration_equals (Alteration* self, Alteration* other);
+static void alteration_multimap_add_all (GeeMultiMap* dest, GeeMultiMap* src);
+Alteration* alteration_compress (Alteration* self, Alteration* other);
+static void alteration_finalize (Alteration* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail) {
+ Alteration* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (subject != NULL, NULL);
+#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (detail != NULL, NULL);
+#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self = (Alteration*) g_type_create_instance (object_type);
+#line 33 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = subject;
+#line 33 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = detail;
+#line 33 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_add_detail (self, _tmp0_, _tmp1_);
+#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return self;
+#line 139 "Alteration.c"
+}
+
+
+Alteration* alteration_new (const gchar* subject, const gchar* detail) {
+#line 32 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return alteration_construct (TYPE_ALTERATION, subject, detail);
+#line 146 "Alteration.c"
+}
+
+
+Alteration* alteration_construct_from_list (GType object_type, const gchar* list) {
+ Alteration* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar** pairs = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint pairs_length1 = 0;
+ gint _pairs_size_ = 0;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (list != NULL, NULL);
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self = (Alteration*) g_type_create_instance (object_type);
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = list;
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = strlen (_tmp0_);
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = _tmp1_;
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_return_val_if_fail (_tmp2_ > 0, "list.length > 0", NULL);
+#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = list;
+#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, ",", 0);
+#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pairs = _tmp5_;
+#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pairs_length1 = _vala_array_length (_tmp4_);
+#line 39 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _pairs_size_ = pairs_length1;
+#line 40 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = pairs;
+#line 40 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6__length1 = pairs_length1;
+#line 40 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp6__length1 >= 1, "pairs.length >= 1");
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = pairs;
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7__length1 = pairs_length1;
+#line 197 "Alteration.c"
+ {
+ gchar** pair_collection = NULL;
+ gint pair_collection_length1 = 0;
+ gint _pair_collection_size_ = 0;
+ gint pair_it = 0;
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pair_collection = _tmp7_;
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pair_collection_length1 = _tmp7__length1;
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ for (pair_it = 0; pair_it < _tmp7__length1; pair_it = pair_it + 1) {
+#line 209 "Alteration.c"
+ gchar* _tmp8_ = NULL;
+ gchar* pair = NULL;
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = g_strdup (pair_collection[pair_it]);
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pair = _tmp8_;
+#line 216 "Alteration.c"
+ {
+ gchar** subject_detail = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint subject_detail_length1 = 0;
+ gint _subject_detail_size_ = 0;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ const gchar* _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ const gchar* _tmp16_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = pair;
+#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = _tmp10_ = g_strsplit (_tmp9_, ":", 2);
+#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject_detail = _tmp11_;
+#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject_detail_length1 = _vala_array_length (_tmp10_);
+#line 43 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _subject_detail_size_ = subject_detail_length1;
+#line 44 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = subject_detail;
+#line 44 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12__length1 = subject_detail_length1;
+#line 44 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp12__length1 == 2, "subject_detail.length == 2");
+#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = subject_detail;
+#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13__length1 = subject_detail_length1;
+#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = _tmp13_[0];
+#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = subject_detail;
+#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15__length1 = subject_detail_length1;
+#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = _tmp15_[1];
+#line 46 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_add_detail (self, _tmp14_, _tmp16_);
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject_detail = (_vala_array_free (subject_detail, subject_detail_length1, (GDestroyNotify) g_free), NULL);
+#line 42 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (pair);
+#line 266 "Alteration.c"
+ }
+ }
+ }
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pairs = (_vala_array_free (pairs, pairs_length1, (GDestroyNotify) g_free), NULL);
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return self;
+#line 274 "Alteration.c"
+}
+
+
+Alteration* alteration_new_from_list (const gchar* list) {
+#line 38 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return alteration_construct_from_list (TYPE_ALTERATION, list);
+#line 281 "Alteration.c"
+}
+
+
+Alteration* alteration_construct_from_array (GType object_type, gchar** array, int array_length1) {
+ Alteration* self = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self = (Alteration*) g_type_create_instance (object_type);
+#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = array;
+#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0__length1 = array_length1;
+#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_return_val_if_fail (_tmp0__length1 > 0, "array.length > 0", NULL);
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = array;
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1__length1 = array_length1;
+#line 303 "Alteration.c"
+ {
+ gchar** pair_collection = NULL;
+ gint pair_collection_length1 = 0;
+ gint _pair_collection_size_ = 0;
+ gint pair_it = 0;
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pair_collection = _tmp1_;
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pair_collection_length1 = _tmp1__length1;
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ for (pair_it = 0; pair_it < _tmp1__length1; pair_it = pair_it + 1) {
+#line 315 "Alteration.c"
+ gchar* _tmp2_ = NULL;
+ gchar* pair = NULL;
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = g_strdup (pair_collection[pair_it]);
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ pair = _tmp2_;
+#line 322 "Alteration.c"
+ {
+ gchar** subject_detail = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint subject_detail_length1 = 0;
+ gint _subject_detail_size_ = 0;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ const gchar* _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ const gchar* _tmp10_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = pair;
+#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, ":", 2);
+#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject_detail = _tmp5_;
+#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject_detail_length1 = _vala_array_length (_tmp4_);
+#line 54 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _subject_detail_size_ = subject_detail_length1;
+#line 55 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = subject_detail;
+#line 55 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6__length1 = subject_detail_length1;
+#line 55 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp6__length1 == 2, "subject_detail.length == 2");
+#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = subject_detail;
+#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7__length1 = subject_detail_length1;
+#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = _tmp7_[0];
+#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = subject_detail;
+#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9__length1 = subject_detail_length1;
+#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = _tmp9_[1];
+#line 57 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_add_detail (self, _tmp8_, _tmp10_);
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject_detail = (_vala_array_free (subject_detail, subject_detail_length1, (GDestroyNotify) g_free), NULL);
+#line 53 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (pair);
+#line 372 "Alteration.c"
+ }
+ }
+ }
+#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return self;
+#line 378 "Alteration.c"
+}
+
+
+Alteration* alteration_new_from_array (gchar** array, int array_length1) {
+#line 52 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return alteration_construct_from_array (TYPE_ALTERATION, array, array_length1);
+#line 385 "Alteration.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 392 "Alteration.c"
+}
+
+
+static Alteration* alteration_construct_from_map (GType object_type, GeeMultiMap* map) {
+ Alteration* self = NULL;
+ GeeMultiMap* _tmp0_ = NULL;
+ GeeMultiMap* _tmp1_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (GEE_IS_MULTI_MAP (map), NULL);
+#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self = (Alteration*) g_type_create_instance (object_type);
+#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = map;
+#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (self->priv->map);
+#line 63 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->map = _tmp1_;
+#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return self;
+#line 414 "Alteration.c"
+}
+
+
+static Alteration* alteration_new_from_map (GeeMultiMap* map) {
+#line 62 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return alteration_construct_from_map (TYPE_ALTERATION, map);
+#line 421 "Alteration.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 444 "Alteration.c"
+}
+
+
+static void alteration_add_detail (Alteration* self, const gchar* sub, const gchar* det) {
+ gchar* subject = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gchar* detail = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ GeeMultiMap* _tmp18_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ GeeMultiMap* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (IS_ALTERATION (self));
+#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (sub != NULL);
+#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (det != NULL);
+#line 68 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = sub;
+#line 68 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = string_strip (_tmp0_);
+#line 68 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject = _tmp1_;
+#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = subject;
+#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = strlen (_tmp2_);
+#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = _tmp3_;
+#line 69 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp4_ > 0, "subject.length > 0");
+#line 71 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = det;
+#line 71 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = string_strip (_tmp5_);
+#line 71 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ detail = _tmp6_;
+#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = detail;
+#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = strlen (_tmp7_);
+#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = _tmp8_;
+#line 72 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp9_ > 0, "detail.length > 0");
+#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = self->priv->subject;
+#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp11_ == NULL) {
+#line 506 "Alteration.c"
+ GeeMultiMap* _tmp12_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = self->priv->map;
+#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = _tmp12_ == NULL;
+#line 512 "Alteration.c"
+ } else {
+#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = FALSE;
+#line 516 "Alteration.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp10_) {
+#line 520 "Alteration.c"
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = self->priv->detail;
+#line 76 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp13_ == NULL, "this.detail == null");
+#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = subject;
+#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (self->priv->subject);
+#line 78 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->subject = _tmp15_;
+#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = detail;
+#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (self->priv->detail);
+#line 79 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->detail = _tmp17_;
+#line 81 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (detail);
+#line 81 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (subject);
+#line 81 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return;
+#line 552 "Alteration.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp18_ = self->priv->map;
+#line 85 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp18_ == NULL) {
+#line 558 "Alteration.c"
+ GeeMultiMap* _tmp19_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = alteration_create_map (self);
+#line 86 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (self->priv->map);
+#line 86 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->map = _tmp19_;
+#line 566 "Alteration.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp20_ = self->priv->subject;
+#line 89 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp20_ != NULL) {
+#line 572 "Alteration.c"
+ const gchar* _tmp21_ = NULL;
+ GeeMultiMap* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+#line 90 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp21_ = self->priv->detail;
+#line 90 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp21_ != NULL, "this.detail != null");
+#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp22_ = self->priv->map;
+#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp23_ = self->priv->subject;
+#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp24_ = self->priv->detail;
+#line 92 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ gee_multi_map_set (_tmp22_, _tmp23_, _tmp24_);
+#line 93 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (self->priv->subject);
+#line 93 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->subject = NULL;
+#line 94 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (self->priv->detail);
+#line 94 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->detail = NULL;
+#line 597 "Alteration.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp25_ = self->priv->map;
+#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp26_ = subject;
+#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp27_ = detail;
+#line 98 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ gee_multi_map_set (_tmp25_, _tmp26_, _tmp27_);
+#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (detail);
+#line 66 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (subject);
+#line 611 "Alteration.c"
+}
+
+
+static guint _alteration_case_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = alteration_case_hash ((const gchar*) v);
+#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 620 "Alteration.c"
+}
+
+
+static gboolean _alteration_case_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = alteration_case_equal ((const gchar*) a, (const gchar*) b);
+#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 629 "Alteration.c"
+}
+
+
+static GeeMultiMap* alteration_create_map (Alteration* self) {
+ GeeMultiMap* result = NULL;
+ GeeHashMultiMap* _tmp0_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), NULL);
+#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = gee_hash_multi_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, _alteration_case_hash_gee_hash_data_func, NULL, NULL, _alteration_case_equal_gee_equal_data_func, NULL, NULL, _alteration_case_hash_gee_hash_data_func, NULL, NULL, _alteration_case_equal_gee_equal_data_func, NULL, NULL);
+#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 102 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 644 "Alteration.c"
+}
+
+
+static gboolean alteration_case_equal (const gchar* a, const gchar* b) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = a;
+#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = b;
+#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = alteration_equal_values (_tmp0_, _tmp1_);
+#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp2_;
+#line 106 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 663 "Alteration.c"
+}
+
+
+static guint alteration_case_hash (const gchar* a) {
+ guint result = 0U;
+ const gchar* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = a;
+#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = alteration_hash_value (_tmp0_);
+#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp1_;
+#line 110 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 679 "Alteration.c"
+}
+
+
+static inline gboolean alteration_equal_values (const gchar* str1, const gchar* str2) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 113 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (str1 != NULL, FALSE);
+#line 113 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (str2 != NULL, FALSE);
+#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = str1;
+#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = str2;
+#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = g_ascii_strcasecmp (_tmp0_, _tmp1_);
+#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp2_ == 0;
+#line 114 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 702 "Alteration.c"
+}
+
+
+static inline guint alteration_hash_value (const gchar* str) {
+ guint result = 0U;
+ GHashFunc _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 117 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (str != NULL, 0U);
+#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = g_str_hash;
+#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = str;
+#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = _tmp0_ (_tmp1_);
+#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp2_;
+#line 118 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 723 "Alteration.c"
+}
+
+
+gboolean alteration_has_subject (Alteration* self, const gchar* subject) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ GeeMultiMap* _tmp4_ = NULL;
+ GeeSet* keys = NULL;
+ GeeMultiMap* _tmp5_ = NULL;
+ GeeSet* _tmp6_ = NULL;
+ GeeSet* _tmp7_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), FALSE);
+#line 121 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (subject != NULL, FALSE);
+#line 122 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = self->priv->subject;
+#line 122 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp0_ != NULL) {
+#line 743 "Alteration.c"
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = self->priv->subject;
+#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = subject;
+#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = alteration_equal_values (_tmp1_, _tmp2_);
+#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp3_;
+#line 123 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 757 "Alteration.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = self->priv->map;
+#line 125 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp4_ != NULL, "map != null");
+#line 126 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = self->priv->map;
+#line 126 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = gee_multi_map_get_keys (_tmp5_);
+#line 126 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ keys = _tmp6_;
+#line 127 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = keys;
+#line 127 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp7_ != NULL) {
+#line 773 "Alteration.c"
+ {
+ GeeIterator* _key_it = NULL;
+ GeeSet* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = keys;
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _key_it = _tmp9_;
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 786 "Alteration.c"
+ GeeIterator* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gchar* key = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = _key_it;
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = gee_iterator_next (_tmp10_);
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp11_) {
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 803 "Alteration.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = _key_it;
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = gee_iterator_get (_tmp12_);
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ key = (gchar*) _tmp13_;
+#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = key;
+#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = subject;
+#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = alteration_equal_values (_tmp14_, _tmp15_);
+#line 129 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp16_) {
+#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = TRUE;
+#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 130 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 829 "Alteration.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 833 "Alteration.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 837 "Alteration.c"
+ }
+ }
+#line 134 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 134 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 134 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 846 "Alteration.c"
+}
+
+
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ GeeMultiMap* _tmp10_ = NULL;
+ GeeCollection* values = NULL;
+ GeeMultiMap* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), FALSE);
+#line 137 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (subject != NULL, FALSE);
+#line 137 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (detail != NULL, FALSE);
+#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = self->priv->subject;
+#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp1_ != NULL) {
+#line 870 "Alteration.c"
+ const gchar* _tmp2_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = self->priv->detail;
+#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 876 "Alteration.c"
+ } else {
+#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = FALSE;
+#line 880 "Alteration.c"
+ }
+#line 138 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp0_) {
+#line 884 "Alteration.c"
+ gboolean _tmp3_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = self->priv->subject;
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = subject;
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = alteration_equal_values (_tmp4_, _tmp5_);
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp6_) {
+#line 897 "Alteration.c"
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = self->priv->detail;
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = detail;
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = alteration_equal_values (_tmp7_, _tmp8_);
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = _tmp9_;
+#line 909 "Alteration.c"
+ } else {
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = FALSE;
+#line 913 "Alteration.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp3_;
+#line 139 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 919 "Alteration.c"
+ }
+#line 141 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = self->priv->map;
+#line 141 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp10_ != NULL, "map != null");
+#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = self->priv->map;
+#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = subject;
+#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = gee_multi_map_get (_tmp11_, _tmp12_);
+#line 142 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ values = _tmp13_;
+#line 143 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = values;
+#line 143 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp14_ != NULL) {
+#line 937 "Alteration.c"
+ {
+ GeeIterator* _value_it = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ GeeIterator* _tmp16_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = values;
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _value_it = _tmp16_;
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 950 "Alteration.c"
+ GeeIterator* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gchar* value = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp17_ = _value_it;
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp18_ = gee_iterator_next (_tmp17_);
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp18_) {
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 967 "Alteration.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = _value_it;
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp20_ = gee_iterator_get (_tmp19_);
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value = (gchar*) _tmp20_;
+#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp21_ = value;
+#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp22_ = detail;
+#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp23_ = alteration_equal_values (_tmp21_, _tmp22_);
+#line 145 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp23_) {
+#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = TRUE;
+#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (value);
+#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_value_it);
+#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (values);
+#line 146 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 993 "Alteration.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (value);
+#line 997 "Alteration.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_value_it);
+#line 1001 "Alteration.c"
+ }
+ }
+#line 150 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 150 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (values);
+#line 150 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1010 "Alteration.c"
+}
+
+
+GeeCollection* alteration_get_details (Alteration* self, const gchar* subject) {
+ GeeCollection* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GeeMultiMap* _tmp11_ = NULL;
+#line 153 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), NULL);
+#line 153 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (subject != NULL, NULL);
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = self->priv->subject;
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp2_ != NULL) {
+#line 1029 "Alteration.c"
+ const gchar* _tmp3_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = self->priv->detail;
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 1035 "Alteration.c"
+ } else {
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = FALSE;
+#line 1039 "Alteration.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp1_) {
+#line 1043 "Alteration.c"
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = self->priv->subject;
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = subject;
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = alteration_equal_values (_tmp4_, _tmp5_);
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = _tmp6_;
+#line 1055 "Alteration.c"
+ } else {
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = FALSE;
+#line 1059 "Alteration.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp0_) {
+#line 1063 "Alteration.c"
+ GeeArrayList* details = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 155 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 155 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ details = _tmp7_;
+#line 156 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = details;
+#line 156 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = self->priv->detail;
+#line 156 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp9_);
+#line 158 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (details, GEE_TYPE_COLLECTION, GeeCollection);
+#line 158 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1082 "Alteration.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = self->priv->map;
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp11_ != NULL) {
+#line 1088 "Alteration.c"
+ GeeMultiMap* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = self->priv->map;
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = subject;
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = gee_multi_map_get (_tmp12_, _tmp13_);
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_tmp10_);
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = _tmp14_;
+#line 1102 "Alteration.c"
+ } else {
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_tmp10_);
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = NULL;
+#line 1108 "Alteration.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp10_;
+#line 161 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1114 "Alteration.c"
+}
+
+
+gchar* alteration_to_string (Alteration* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ GeeMultiMap* _tmp5_ = NULL;
+ gchar* str = NULL;
+ gchar* _tmp6_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), NULL);
+#line 165 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = self->priv->subject;
+#line 165 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp0_ != NULL) {
+#line 1130 "Alteration.c"
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 166 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = self->priv->detail;
+#line 166 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp1_ != NULL, "detail != null");
+#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = self->priv->subject;
+#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = self->priv->detail;
+#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = g_strdup_printf ("%s:%s", _tmp2_, _tmp3_);
+#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp4_;
+#line 168 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1149 "Alteration.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = self->priv->map;
+#line 171 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp5_ != NULL, "map != null");
+#line 173 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = g_strdup ("");
+#line 173 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ str = _tmp6_;
+#line 1159 "Alteration.c"
+ {
+ GeeIterator* _key_it = NULL;
+ GeeMultiMap* _tmp7_ = NULL;
+ GeeSet* _tmp8_ = NULL;
+ GeeSet* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = self->priv->map;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = gee_multi_map_get_keys (_tmp7_);
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = _tmp8_;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = _tmp10_;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_tmp9_);
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _key_it = _tmp11_;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 1183 "Alteration.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gchar* key = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = _key_it;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp13_) {
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 1197 "Alteration.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = _key_it;
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ key = (gchar*) _tmp15_;
+#line 1205 "Alteration.c"
+ {
+ GeeIterator* _value_it = NULL;
+ GeeMultiMap* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = self->priv->map;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp17_ = key;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp18_ = gee_multi_map_get (_tmp16_, _tmp17_);
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = _tmp18_;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp21_ = _tmp20_;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_tmp19_);
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _value_it = _tmp21_;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 1232 "Alteration.c"
+ GeeIterator* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ gchar* value = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ const gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp22_ = _value_it;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp23_ = gee_iterator_next (_tmp22_);
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp23_) {
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 1255 "Alteration.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp24_ = _value_it;
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp25_ = gee_iterator_get (_tmp24_);
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value = (gchar*) _tmp25_;
+#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp26_ = str;
+#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp27_ = strlen (_tmp26_);
+#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp28_ = _tmp27_;
+#line 176 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp28_ != 0) {
+#line 1271 "Alteration.c"
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp29_ = str;
+#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp30_ = g_strconcat (_tmp29_, ", ", NULL);
+#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (str);
+#line 177 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ str = _tmp30_;
+#line 1282 "Alteration.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp31_ = str;
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp32_ = key;
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp33_ = value;
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp34_ = g_strdup_printf ("%s:%s", _tmp32_, _tmp33_);
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp35_ = _tmp34_;
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp36_ = g_strconcat (_tmp31_, _tmp35_, NULL);
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (str);
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ str = _tmp36_;
+#line 179 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (_tmp35_);
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (value);
+#line 1304 "Alteration.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_value_it);
+#line 1308 "Alteration.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 1312 "Alteration.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 1316 "Alteration.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = str;
+#line 183 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1322 "Alteration.c"
+}
+
+
+gboolean alteration_contains_any (Alteration* self, Alteration* other) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ GeeMultiMap* _tmp21_ = NULL;
+ gboolean _tmp56_ = FALSE;
+ GeeMultiMap* _tmp57_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), FALSE);
+#line 187 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (other), FALSE);
+#line 189 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = other;
+#line 189 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (self == _tmp0_) {
+#line 190 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = TRUE;
+#line 190 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1350 "Alteration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = self->priv->subject;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp4_ != NULL) {
+#line 1356 "Alteration.c"
+ Alteration* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = other;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = _tmp5_->priv->subject;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = _tmp6_ != NULL;
+#line 1365 "Alteration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = FALSE;
+#line 1369 "Alteration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp3_) {
+#line 1373 "Alteration.c"
+ const gchar* _tmp7_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = self->priv->detail;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = _tmp7_ != NULL;
+#line 1379 "Alteration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = FALSE;
+#line 1383 "Alteration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp2_) {
+#line 1387 "Alteration.c"
+ Alteration* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = other;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = _tmp8_->priv->detail;
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = _tmp9_ != NULL;
+#line 1396 "Alteration.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = FALSE;
+#line 1400 "Alteration.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp1_) {
+#line 1404 "Alteration.c"
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ Alteration* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = self->priv->subject;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = other;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = _tmp12_->priv->subject;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = alteration_equal_values (_tmp11_, _tmp13_);
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp14_) {
+#line 1420 "Alteration.c"
+ const gchar* _tmp15_ = NULL;
+ Alteration* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = self->priv->detail;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = other;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp17_ = _tmp16_->priv->detail;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp18_ = alteration_equal_values (_tmp15_, _tmp17_);
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = _tmp18_;
+#line 1435 "Alteration.c"
+ } else {
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = FALSE;
+#line 1439 "Alteration.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp10_;
+#line 194 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1445 "Alteration.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp21_ = self->priv->map;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp21_ != NULL) {
+#line 1451 "Alteration.c"
+ Alteration* _tmp22_ = NULL;
+ GeeMultiMap* _tmp23_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp22_ = other;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp23_ = _tmp22_->priv->map;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp20_ = _tmp23_ == NULL;
+#line 1460 "Alteration.c"
+ } else {
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp20_ = FALSE;
+#line 1464 "Alteration.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp20_) {
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = TRUE;
+#line 1470 "Alteration.c"
+ } else {
+ gboolean _tmp24_ = FALSE;
+ GeeMultiMap* _tmp25_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp25_ = self->priv->map;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp25_ == NULL) {
+#line 1478 "Alteration.c"
+ Alteration* _tmp26_ = NULL;
+ GeeMultiMap* _tmp27_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp26_ = other;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp27_ = _tmp26_->priv->map;
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp24_ = _tmp27_ != NULL;
+#line 1487 "Alteration.c"
+ } else {
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp24_ = FALSE;
+#line 1491 "Alteration.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = _tmp24_;
+#line 1495 "Alteration.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp19_) {
+#line 1499 "Alteration.c"
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* single_subject = NULL;
+ gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ const gchar* _tmp35_ = NULL;
+ gchar* single_detail = NULL;
+ gchar* _tmp39_ = NULL;
+ GeeMultiMap* _tmp40_ = NULL;
+ GeeMultiMap* _tmp41_ = NULL;
+ GeeMultiMap* multimap = NULL;
+ GeeMultiMap* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ GeeMultiMap* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp29_ = self->priv->subject;
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp29_ != NULL) {
+#line 1520 "Alteration.c"
+ const gchar* _tmp30_ = NULL;
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp30_ = self->priv->subject;
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp28_ = _tmp30_;
+#line 1526 "Alteration.c"
+ } else {
+ Alteration* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp31_ = other;
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp32_ = _tmp31_->priv->subject;
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp28_ = _tmp32_;
+#line 1536 "Alteration.c"
+ }
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp33_ = g_strdup (_tmp28_);
+#line 198 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ single_subject = _tmp33_;
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp35_ = self->priv->detail;
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp35_ != NULL) {
+#line 1546 "Alteration.c"
+ const gchar* _tmp36_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp36_ = self->priv->detail;
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp34_ = _tmp36_;
+#line 1552 "Alteration.c"
+ } else {
+ Alteration* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp37_ = other;
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp38_ = _tmp37_->priv->detail;
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp34_ = _tmp38_;
+#line 1562 "Alteration.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp39_ = g_strdup (_tmp34_);
+#line 199 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ single_detail = _tmp39_;
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp41_ = self->priv->map;
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp41_ != NULL) {
+#line 1572 "Alteration.c"
+ GeeMultiMap* _tmp42_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp42_ = self->priv->map;
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp40_ = _tmp42_;
+#line 1578 "Alteration.c"
+ } else {
+ Alteration* _tmp43_ = NULL;
+ GeeMultiMap* _tmp44_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp43_ = other;
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp44_ = _tmp43_->priv->map;
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp40_ = _tmp44_;
+#line 1588 "Alteration.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp45_ = _g_object_ref0 (_tmp40_);
+#line 200 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ multimap = _tmp45_;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp47_ = multimap;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp48_ = single_subject;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp49_ = gee_multi_map_contains (_tmp47_, _tmp48_);
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp49_) {
+#line 1602 "Alteration.c"
+ GeeMultiMap* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ GeeCollection* _tmp52_ = NULL;
+ GeeCollection* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp50_ = self->priv->map;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp51_ = single_subject;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp52_ = gee_multi_map_get (_tmp50_, _tmp51_);
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp53_ = _tmp52_;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp54_ = single_detail;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp55_ = gee_collection_contains (_tmp53_, _tmp54_);
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp46_ = _tmp55_;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_tmp53_);
+#line 1625 "Alteration.c"
+ } else {
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp46_ = FALSE;
+#line 1629 "Alteration.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp46_;
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (multimap);
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (single_detail);
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (single_subject);
+#line 202 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1641 "Alteration.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp57_ = self->priv->map;
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp57_ != NULL) {
+#line 1647 "Alteration.c"
+ Alteration* _tmp58_ = NULL;
+ GeeMultiMap* _tmp59_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp58_ = other;
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp59_ = _tmp58_->priv->map;
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp56_ = _tmp59_ != NULL;
+#line 1656 "Alteration.c"
+ } else {
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp56_ = FALSE;
+#line 1660 "Alteration.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp56_) {
+#line 1664 "Alteration.c"
+ GeeSet* keys = NULL;
+ GeeMultiMap* _tmp60_ = NULL;
+ GeeSet* _tmp61_ = NULL;
+ GeeSet* _tmp62_ = NULL;
+ GeeSet* other_keys = NULL;
+ Alteration* _tmp63_ = NULL;
+ GeeMultiMap* _tmp64_ = NULL;
+ GeeSet* _tmp65_ = NULL;
+ GeeSet* _tmp66_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp60_ = self->priv->map;
+#line 207 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp61_ = gee_multi_map_get_keys (_tmp60_);
+#line 207 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ keys = _tmp61_;
+#line 208 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp62_ = keys;
+#line 208 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp62_ != NULL, "keys != null");
+#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp63_ = other;
+#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp64_ = _tmp63_->priv->map;
+#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp65_ = gee_multi_map_get_keys (_tmp64_);
+#line 209 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ other_keys = _tmp65_;
+#line 210 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp66_ = other_keys;
+#line 210 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp66_ != NULL, "other_keys != null");
+#line 1696 "Alteration.c"
+ {
+ GeeIterator* _subject_it = NULL;
+ GeeSet* _tmp67_ = NULL;
+ GeeIterator* _tmp68_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp67_ = other_keys;
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp68_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp67_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _subject_it = _tmp68_;
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 1709 "Alteration.c"
+ GeeIterator* _tmp69_ = NULL;
+ gboolean _tmp70_ = FALSE;
+ gchar* subject = NULL;
+ GeeIterator* _tmp71_ = NULL;
+ gpointer _tmp72_ = NULL;
+ GeeSet* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ gboolean _tmp75_ = FALSE;
+ GeeCollection* details = NULL;
+ GeeMultiMap* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ GeeCollection* _tmp78_ = NULL;
+ GeeCollection* other_details = NULL;
+ Alteration* _tmp79_ = NULL;
+ GeeMultiMap* _tmp80_ = NULL;
+ const gchar* _tmp81_ = NULL;
+ GeeCollection* _tmp82_ = NULL;
+ gboolean _tmp83_ = FALSE;
+ GeeCollection* _tmp84_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp69_ = _subject_it;
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp70_ = gee_iterator_next (_tmp69_);
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp70_) {
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 1737 "Alteration.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp71_ = _subject_it;
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp72_ = gee_iterator_get (_tmp71_);
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ subject = (gchar*) _tmp72_;
+#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp73_ = keys;
+#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp74_ = subject;
+#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp75_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, GEE_TYPE_COLLECTION, GeeCollection), _tmp74_);
+#line 213 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp75_) {
+#line 214 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (subject);
+#line 214 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ continue;
+#line 1757 "Alteration.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp76_ = self->priv->map;
+#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp77_ = subject;
+#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp78_ = gee_multi_map_get (_tmp76_, _tmp77_);
+#line 216 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ details = _tmp78_;
+#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp79_ = other;
+#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp80_ = _tmp79_->priv->map;
+#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp81_ = subject;
+#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp82_ = gee_multi_map_get (_tmp80_, _tmp81_);
+#line 217 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ other_details = _tmp82_;
+#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp84_ = details;
+#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp84_ != NULL) {
+#line 1781 "Alteration.c"
+ GeeCollection* _tmp85_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp85_ = other_details;
+#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp83_ = _tmp85_ != NULL;
+#line 1787 "Alteration.c"
+ } else {
+#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp83_ = FALSE;
+#line 1791 "Alteration.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp83_) {
+#line 1795 "Alteration.c"
+ {
+ GeeIterator* _detail_it = NULL;
+ GeeCollection* _tmp86_ = NULL;
+ GeeIterator* _tmp87_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp86_ = other_details;
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp87_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp86_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _detail_it = _tmp87_;
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 1808 "Alteration.c"
+ GeeIterator* _tmp88_ = NULL;
+ gboolean _tmp89_ = FALSE;
+ gchar* detail = NULL;
+ GeeIterator* _tmp90_ = NULL;
+ gpointer _tmp91_ = NULL;
+ GeeCollection* _tmp92_ = NULL;
+ const gchar* _tmp93_ = NULL;
+ gboolean _tmp94_ = FALSE;
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp88_ = _detail_it;
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp89_ = gee_iterator_next (_tmp88_);
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp89_) {
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 1825 "Alteration.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp90_ = _detail_it;
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp91_ = gee_iterator_get (_tmp90_);
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ detail = (gchar*) _tmp91_;
+#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp92_ = details;
+#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp93_ = detail;
+#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp94_ = gee_collection_contains (_tmp92_, _tmp93_);
+#line 221 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp94_) {
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = TRUE;
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (detail);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_detail_it);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_details);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (details);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (subject);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_subject_it);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 222 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1861 "Alteration.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (detail);
+#line 1865 "Alteration.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_detail_it);
+#line 1869 "Alteration.c"
+ }
+ }
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_details);
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (details);
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (subject);
+#line 1878 "Alteration.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_subject_it);
+#line 1882 "Alteration.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 206 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 1888 "Alteration.c"
+ }
+#line 228 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 228 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1894 "Alteration.c"
+}
+
+
+gboolean alteration_equals (Alteration* self, Alteration* other) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ GeeMultiMap* _tmp20_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), FALSE);
+#line 231 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (other), FALSE);
+#line 233 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = other;
+#line 233 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (self == _tmp0_) {
+#line 234 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = TRUE;
+#line 234 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 1919 "Alteration.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = self->priv->subject;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp4_ != NULL) {
+#line 1925 "Alteration.c"
+ Alteration* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = other;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = _tmp5_->priv->subject;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = _tmp6_ != NULL;
+#line 1934 "Alteration.c"
+ } else {
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = FALSE;
+#line 1938 "Alteration.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp3_) {
+#line 1942 "Alteration.c"
+ const gchar* _tmp7_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = self->priv->detail;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = _tmp7_ != NULL;
+#line 1948 "Alteration.c"
+ } else {
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = FALSE;
+#line 1952 "Alteration.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp2_) {
+#line 1956 "Alteration.c"
+ Alteration* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = other;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = _tmp8_->priv->detail;
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = _tmp9_ != NULL;
+#line 1965 "Alteration.c"
+ } else {
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = FALSE;
+#line 1969 "Alteration.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp1_) {
+#line 1973 "Alteration.c"
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ Alteration* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = self->priv->subject;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = other;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = _tmp12_->priv->subject;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = alteration_equal_values (_tmp11_, _tmp13_);
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp14_) {
+#line 1989 "Alteration.c"
+ const gchar* _tmp15_ = NULL;
+ Alteration* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = self->priv->detail;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = other;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp17_ = _tmp16_->priv->detail;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp18_ = alteration_equal_values (_tmp15_, _tmp17_);
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = _tmp18_;
+#line 2004 "Alteration.c"
+ } else {
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = FALSE;
+#line 2008 "Alteration.c"
+ }
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp10_;
+#line 238 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2014 "Alteration.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp20_ = self->priv->map;
+#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp20_ != NULL) {
+#line 2020 "Alteration.c"
+ Alteration* _tmp21_ = NULL;
+ GeeMultiMap* _tmp22_ = NULL;
+#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp21_ = other;
+#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp22_ = _tmp21_->priv->map;
+#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = _tmp22_ != NULL;
+#line 2029 "Alteration.c"
+ } else {
+#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = FALSE;
+#line 2033 "Alteration.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp19_) {
+#line 2037 "Alteration.c"
+ GeeSet* keys = NULL;
+ GeeMultiMap* _tmp23_ = NULL;
+ GeeSet* _tmp24_ = NULL;
+ GeeSet* _tmp25_ = NULL;
+ GeeSet* other_keys = NULL;
+ Alteration* _tmp26_ = NULL;
+ GeeMultiMap* _tmp27_ = NULL;
+ GeeSet* _tmp28_ = NULL;
+ GeeSet* _tmp29_ = NULL;
+ GeeSet* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ GeeSet* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ GeeSet* _tmp36_ = NULL;
+ GeeSet* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ GeeSet* _tmp39_ = NULL;
+ GeeSet* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+#line 243 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp23_ = self->priv->map;
+#line 243 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp24_ = gee_multi_map_get_keys (_tmp23_);
+#line 243 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ keys = _tmp24_;
+#line 244 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp25_ = keys;
+#line 244 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp25_ != NULL, "keys != null");
+#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp26_ = other;
+#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp27_ = _tmp26_->priv->map;
+#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp28_ = gee_multi_map_get_keys (_tmp27_);
+#line 245 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ other_keys = _tmp28_;
+#line 246 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp29_ = other_keys;
+#line 246 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp29_ != NULL, "other_keys != null");
+#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp30_ = keys;
+#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp31_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp32_ = _tmp31_;
+#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp33_ = other_keys;
+#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp34_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp35_ = _tmp34_;
+#line 248 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp32_ != _tmp35_) {
+#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 249 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2103 "Alteration.c"
+ }
+#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp36_ = keys;
+#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp37_ = other_keys;
+#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp38_ = gee_collection_contains_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 251 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp38_) {
+#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 252 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2121 "Alteration.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp39_ = other_keys;
+#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp40_ = keys;
+#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp41_ = gee_collection_contains_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 254 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp41_) {
+#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 255 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2139 "Alteration.c"
+ }
+ {
+ GeeIterator* _key_it = NULL;
+ GeeSet* _tmp42_ = NULL;
+ GeeIterator* _tmp43_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp42_ = keys;
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp43_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _key_it = _tmp43_;
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 2153 "Alteration.c"
+ GeeIterator* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+ gchar* key = NULL;
+ GeeIterator* _tmp46_ = NULL;
+ gpointer _tmp47_ = NULL;
+ GeeCollection* values = NULL;
+ GeeMultiMap* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ GeeCollection* _tmp50_ = NULL;
+ GeeCollection* other_values = NULL;
+ Alteration* _tmp51_ = NULL;
+ GeeMultiMap* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ GeeCollection* _tmp54_ = NULL;
+ GeeCollection* _tmp55_ = NULL;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ GeeCollection* _tmp58_ = NULL;
+ gint _tmp59_ = 0;
+ gint _tmp60_ = 0;
+ GeeCollection* _tmp61_ = NULL;
+ GeeCollection* _tmp62_ = NULL;
+ gboolean _tmp63_ = FALSE;
+ GeeCollection* _tmp64_ = NULL;
+ GeeCollection* _tmp65_ = NULL;
+ gboolean _tmp66_ = FALSE;
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp44_ = _key_it;
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp45_ = gee_iterator_next (_tmp44_);
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp45_) {
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 2188 "Alteration.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp46_ = _key_it;
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp47_ = gee_iterator_get (_tmp46_);
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ key = (gchar*) _tmp47_;
+#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp48_ = self->priv->map;
+#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp49_ = key;
+#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp50_ = gee_multi_map_get (_tmp48_, _tmp49_);
+#line 258 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ values = _tmp50_;
+#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp51_ = other;
+#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp52_ = _tmp51_->priv->map;
+#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp53_ = key;
+#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp54_ = gee_multi_map_get (_tmp52_, _tmp53_);
+#line 259 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ other_values = _tmp54_;
+#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp55_ = values;
+#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp56_ = gee_collection_get_size (_tmp55_);
+#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp57_ = _tmp56_;
+#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp58_ = other_values;
+#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp59_ = gee_collection_get_size (_tmp58_);
+#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp60_ = _tmp59_;
+#line 261 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp57_ != _tmp60_) {
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_values);
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (values);
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 262 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2244 "Alteration.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp61_ = values;
+#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp62_ = other_values;
+#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp63_ = gee_collection_contains_all (_tmp61_, _tmp62_);
+#line 264 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp63_) {
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_values);
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (values);
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 265 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2270 "Alteration.c"
+ }
+#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp64_ = other_values;
+#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp65_ = values;
+#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp66_ = gee_collection_contains_all (_tmp64_, _tmp65_);
+#line 267 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp66_) {
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_values);
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (values);
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 268 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2296 "Alteration.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_values);
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (values);
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 2304 "Alteration.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 2308 "Alteration.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = TRUE;
+#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (other_keys);
+#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 272 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2318 "Alteration.c"
+ }
+#line 276 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = FALSE;
+#line 276 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2324 "Alteration.c"
+}
+
+
+static void alteration_multimap_add_all (GeeMultiMap* dest, GeeMultiMap* src) {
+ GeeSet* keys = NULL;
+ GeeMultiMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (GEE_IS_MULTI_MAP (dest));
+#line 279 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (GEE_IS_MULTI_MAP (src));
+#line 281 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = src;
+#line 281 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = gee_multi_map_get_keys (_tmp0_);
+#line 281 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ keys = _tmp1_;
+#line 2342 "Alteration.c"
+ {
+ GeeIterator* _key_it = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = keys;
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _key_it = _tmp3_;
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 2355 "Alteration.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gchar* key = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ GeeCollection* values = NULL;
+ GeeMultiMap* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = _key_it;
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp5_) {
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 2373 "Alteration.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = _key_it;
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ key = (gchar*) _tmp7_;
+#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = src;
+#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = key;
+#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = gee_multi_map_get (_tmp8_, _tmp9_);
+#line 283 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ values = _tmp10_;
+#line 2389 "Alteration.c"
+ {
+ GeeIterator* _value_it = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeIterator* _tmp12_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = values;
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _value_it = _tmp12_;
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ while (TRUE) {
+#line 2402 "Alteration.c"
+ GeeIterator* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gchar* value = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ GeeMultiMap* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = _value_it;
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = gee_iterator_next (_tmp13_);
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!_tmp14_) {
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ break;
+#line 2419 "Alteration.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = _value_it;
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = gee_iterator_get (_tmp15_);
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value = (gchar*) _tmp16_;
+#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp17_ = dest;
+#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp18_ = key;
+#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = value;
+#line 285 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ gee_multi_map_set (_tmp17_, _tmp18_, _tmp19_);
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (value);
+#line 2437 "Alteration.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_value_it);
+#line 2441 "Alteration.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (values);
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (key);
+#line 2447 "Alteration.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (_key_it);
+#line 2451 "Alteration.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (keys);
+#line 2455 "Alteration.c"
+}
+
+
+static gpointer _alteration_ref0 (gpointer self) {
+#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return self ? alteration_ref (self) : NULL;
+#line 2462 "Alteration.c"
+}
+
+
+Alteration* alteration_compress (Alteration* self, Alteration* other) {
+ Alteration* result = NULL;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeMultiMap* compressed = NULL;
+ GeeMultiMap* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ Alteration* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GeeMultiMap* _tmp28_ = NULL;
+ Alteration* _tmp29_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (self), NULL);
+#line 291 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (IS_ALTERATION (other), NULL);
+#line 292 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp0_ = other;
+#line 292 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp1_ = alteration_equals (self, _tmp0_);
+#line 292 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp1_) {
+#line 2489 "Alteration.c"
+ Alteration* _tmp2_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp2_ = _alteration_ref0 (self);
+#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp2_;
+#line 293 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2497 "Alteration.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp3_ = alteration_create_map (self);
+#line 297 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ compressed = _tmp3_;
+#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp5_ = self->priv->subject;
+#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp5_ != NULL) {
+#line 2507 "Alteration.c"
+ const gchar* _tmp6_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp6_ = self->priv->detail;
+#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = _tmp6_ != NULL;
+#line 2513 "Alteration.c"
+ } else {
+#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp4_ = FALSE;
+#line 2517 "Alteration.c"
+ }
+#line 299 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp4_) {
+#line 2521 "Alteration.c"
+ GeeMultiMap* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp7_ = compressed;
+#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp8_ = self->priv->subject;
+#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp9_ = self->priv->detail;
+#line 300 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ gee_multi_map_set (_tmp7_, _tmp8_, _tmp9_);
+#line 2533 "Alteration.c"
+ } else {
+ GeeMultiMap* _tmp10_ = NULL;
+ GeeMultiMap* _tmp11_ = NULL;
+ GeeMultiMap* _tmp12_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp10_ = self->priv->map;
+#line 302 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp10_ != NULL, "map != null");
+#line 303 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp11_ = compressed;
+#line 303 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp12_ = self->priv->map;
+#line 303 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_multimap_add_all (_tmp11_, _tmp12_);
+#line 2548 "Alteration.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp14_ = other;
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp15_ = _tmp14_->priv->subject;
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp15_ != NULL) {
+#line 2556 "Alteration.c"
+ Alteration* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp16_ = other;
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp17_ = _tmp16_->priv->detail;
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = _tmp17_ != NULL;
+#line 2565 "Alteration.c"
+ } else {
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp13_ = FALSE;
+#line 2569 "Alteration.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (_tmp13_) {
+#line 2573 "Alteration.c"
+ GeeMultiMap* _tmp18_ = NULL;
+ Alteration* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ Alteration* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp18_ = compressed;
+#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp19_ = other;
+#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp20_ = _tmp19_->priv->subject;
+#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp21_ = other;
+#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp22_ = _tmp21_->priv->detail;
+#line 307 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ gee_multi_map_set (_tmp18_, _tmp20_, _tmp22_);
+#line 2591 "Alteration.c"
+ } else {
+ Alteration* _tmp23_ = NULL;
+ GeeMultiMap* _tmp24_ = NULL;
+ GeeMultiMap* _tmp25_ = NULL;
+ Alteration* _tmp26_ = NULL;
+ GeeMultiMap* _tmp27_ = NULL;
+#line 309 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp23_ = other;
+#line 309 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp24_ = _tmp23_->priv->map;
+#line 309 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _vala_assert (_tmp24_ != NULL, "other.map != null");
+#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp25_ = compressed;
+#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp26_ = other;
+#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp27_ = _tmp26_->priv->map;
+#line 310 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_multimap_add_all (_tmp25_, _tmp27_);
+#line 2612 "Alteration.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp28_ = compressed;
+#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _tmp29_ = alteration_new_from_map (_tmp28_);
+#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ result = _tmp29_;
+#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (compressed);
+#line 313 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return result;
+#line 2624 "Alteration.c"
+}
+
+
+static void value_alteration_init (GValue* value) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2631 "Alteration.c"
+}
+
+
+static void value_alteration_free_value (GValue* value) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (value->data[0].v_pointer) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_unref (value->data[0].v_pointer);
+#line 2640 "Alteration.c"
+ }
+}
+
+
+static void value_alteration_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (src_value->data[0].v_pointer) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ dest_value->data[0].v_pointer = alteration_ref (src_value->data[0].v_pointer);
+#line 2650 "Alteration.c"
+ } else {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2654 "Alteration.c"
+ }
+}
+
+
+static gpointer value_alteration_peek_pointer (const GValue* value) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return value->data[0].v_pointer;
+#line 2662 "Alteration.c"
+}
+
+
+static gchar* value_alteration_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (collect_values[0].v_pointer) {
+#line 2669 "Alteration.c"
+ Alteration* object;
+ object = collect_values[0].v_pointer;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2676 "Alteration.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2680 "Alteration.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value->data[0].v_pointer = alteration_ref (object);
+#line 2684 "Alteration.c"
+ } else {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2688 "Alteration.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return NULL;
+#line 2692 "Alteration.c"
+}
+
+
+static gchar* value_alteration_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Alteration** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!object_p) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2703 "Alteration.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (!value->data[0].v_pointer) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ *object_p = NULL;
+#line 2709 "Alteration.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2713 "Alteration.c"
+ } else {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ *object_p = alteration_ref (value->data[0].v_pointer);
+#line 2717 "Alteration.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return NULL;
+#line 2721 "Alteration.c"
+}
+
+
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAlteration* spec;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_ALTERATION), NULL);
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return G_PARAM_SPEC (spec);
+#line 2735 "Alteration.c"
+}
+
+
+gpointer value_get_alteration (const GValue* value) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ALTERATION), NULL);
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return value->data[0].v_pointer;
+#line 2744 "Alteration.c"
+}
+
+
+void value_set_alteration (GValue* value, gpointer v_object) {
+ Alteration* old;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ALTERATION));
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ old = value->data[0].v_pointer;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (v_object) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ALTERATION));
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value->data[0].v_pointer = v_object;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_ref (value->data[0].v_pointer);
+#line 2764 "Alteration.c"
+ } else {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2768 "Alteration.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (old) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_unref (old);
+#line 2774 "Alteration.c"
+ }
+}
+
+
+void value_take_alteration (GValue* value, gpointer v_object) {
+ Alteration* old;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ALTERATION));
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ old = value->data[0].v_pointer;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (v_object) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ALTERATION));
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value->data[0].v_pointer = v_object;
+#line 2793 "Alteration.c"
+ } else {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ value->data[0].v_pointer = NULL;
+#line 2797 "Alteration.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (old) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_unref (old);
+#line 2803 "Alteration.c"
+ }
+}
+
+
+static void alteration_class_init (AlterationClass * klass) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ alteration_parent_class = g_type_class_peek_parent (klass);
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ ((AlterationClass *) klass)->finalize = alteration_finalize;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_type_class_add_private (klass, sizeof (AlterationPrivate));
+#line 2815 "Alteration.c"
+}
+
+
+static void alteration_instance_init (Alteration * self) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv = ALTERATION_GET_PRIVATE (self);
+#line 28 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->subject = NULL;
+#line 29 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->detail = NULL;
+#line 30 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->priv->map = NULL;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self->ref_count = 1;
+#line 2830 "Alteration.c"
+}
+
+
+static void alteration_finalize (Alteration* obj) {
+ Alteration * self;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ALTERATION, Alteration);
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_signal_handlers_destroy (self);
+#line 28 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (self->priv->subject);
+#line 29 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_free0 (self->priv->detail);
+#line 30 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ _g_object_unref0 (self->priv->map);
+#line 2846 "Alteration.c"
+}
+
+
+GType alteration_get_type (void) {
+ static volatile gsize alteration_type_id__volatile = 0;
+ if (g_once_init_enter (&alteration_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_alteration_init, value_alteration_free_value, value_alteration_copy_value, value_alteration_peek_pointer, "p", value_alteration_collect_value, "p", value_alteration_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AlterationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) alteration_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Alteration), 0, (GInstanceInitFunc) alteration_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType alteration_type_id;
+ alteration_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Alteration", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&alteration_type_id__volatile, alteration_type_id);
+ }
+ return alteration_type_id__volatile;
+}
+
+
+gpointer alteration_ref (gpointer instance) {
+ Alteration* self;
+ self = instance;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ return instance;
+#line 2871 "Alteration.c"
+}
+
+
+void alteration_unref (gpointer instance) {
+ Alteration* self;
+ self = instance;
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ ALTERATION_GET_CLASS (self)->finalize (self);
+#line 27 "/home/jens/Source/shotwell/src/core/Alteration.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2884 "Alteration.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/core/ContainerSourceCollection.c b/src/core/ContainerSourceCollection.c
new file mode 100644
index 0000000..2e98ee8
--- /dev/null
+++ b/src/core/ContainerSourceCollection.c
@@ -0,0 +1,2124 @@
+/* ContainerSourceCollection.c generated by valac 0.32.1, the Vala compiler
+ * generated from ContainerSourceCollection.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* A ContainerSourceCollection is for DataSources which maintain links to one or more other*/
+/* DataSources, assumed to be of a different type. ContainerSourceCollection automates the task*/
+/* of handling unlinking and relinking and maintaining backlinks. Unlinked DataSources are*/
+/* held in a holding tank, until they are either relinked or destroyed.*/
+/**/
+/* If the ContainerSourceCollection's DataSources are types that "evaporate" (i.e. they disappear*/
+/* when they hold no items), they should use the evaporate() method, which will either destroy*/
+/* the DataSource or hold it in the tank (if backlinks are outstanding).*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+typedef struct _ContainerSourceCollectionPrivate ContainerSourceCollectionPrivate;
+
+#define TYPE_CONTAINER_SOURCE (container_source_get_type ())
+#define CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE, ContainerSource))
+#define IS_CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE))
+#define CONTAINER_SOURCE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONTAINER_SOURCE, ContainerSourceIface))
+
+typedef struct _ContainerSource ContainerSource;
+typedef struct _ContainerSourceIface ContainerSourceIface;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _source_backlink_unref0(var) ((var == NULL) ? NULL : (var = (source_backlink_unref (var), NULL)))
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _ContainerSourceIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_links) (ContainerSource* self);
+ SourceBacklink* (*get_backlink) (ContainerSource* self);
+ void (*break_link) (ContainerSource* self, DataSource* source);
+ void (*break_link_many) (ContainerSource* self, GeeCollection* sources);
+ void (*establish_link) (ContainerSource* self, DataSource* source);
+ void (*establish_link_many) (ContainerSource* self, GeeCollection* sources);
+};
+
+struct _ContainerSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ ContainerSourceCollectionPrivate * priv;
+};
+
+struct _ContainerSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+ void (*notify_container_contents_added) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+ void (*notify_container_contents_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+ void (*notify_container_contents_altered) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+ void (*notify_backlink_to_container_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+ GeeCollection* (*get_containers_holding_source) (ContainerSourceCollection* self, DataSource* source);
+ ContainerSource* (*convert_backlink_to_container) (ContainerSourceCollection* self, SourceBacklink* backlink);
+ void (*container_contents_added) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+ void (*container_contents_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+ void (*container_contents_altered) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+ void (*backlink_to_container_removed) (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+};
+
+struct _ContainerSourceCollectionPrivate {
+ GeeHashSet* attached_collections;
+ gchar* backlink_name;
+ GeeHashSet* holding_tank;
+};
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+
+static gpointer container_source_collection_parent_class = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_get_type (void) G_GNUC_CONST;
+#define CONTAINER_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionPrivate))
+enum {
+ CONTAINER_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+void container_source_collection_detach_all_collections (ContainerSourceCollection* self);
+ContainerSourceCollection* container_source_collection_construct (GType object_type, const gchar* backlink_name, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+DatabaseSourceCollection* database_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+static void container_source_collection_real_notify_backlink_removed (SourceCollection* base, SourceBacklink* backlink, GeeCollection* sources);
+void source_collection_notify_backlink_removed (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ContainerSource* container_source_collection_convert_backlink_to_container (ContainerSourceCollection* self, SourceBacklink* backlink);
+void container_source_collection_notify_backlink_to_container_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+void container_source_collection_notify_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+static void container_source_collection_real_notify_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+void source_collection_relink (SourceCollection* self, DataSource* source);
+void container_source_collection_notify_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+static void container_source_collection_real_notify_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+void container_source_collection_notify_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+static void container_source_collection_real_notify_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+static void container_source_collection_real_notify_backlink_to_container_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+GeeCollection* container_source_collection_get_containers_holding_source (ContainerSourceCollection* self, DataSource* source);
+static GeeCollection* container_source_collection_real_get_containers_holding_source (ContainerSourceCollection* self, DataSource* source);
+static ContainerSource* container_source_collection_real_convert_backlink_to_container (ContainerSourceCollection* self, SourceBacklink* backlink);
+void container_source_collection_freeze_attached_notifications (ContainerSourceCollection* self);
+void data_collection_freeze_notifications (DataCollection* self);
+void container_source_collection_thaw_attached_notifications (ContainerSourceCollection* self);
+void data_collection_thaw_notifications (DataCollection* self);
+GeeCollection* container_source_collection_get_holding_tank (ContainerSourceCollection* self);
+void container_source_collection_init_add_unlinked (ContainerSourceCollection* self, ContainerSource* unlinked);
+void container_source_collection_init_add_many_unlinked (ContainerSourceCollection* self, GeeCollection* unlinked);
+gboolean container_source_collection_relink_from_holding_tank (ContainerSourceCollection* self, ContainerSource* source);
+static void container_source_collection_on_contained_sources_unlinking (ContainerSourceCollection* self, GeeCollection* unlinking);
+void data_source_set_backlink (DataSource* self, SourceBacklink* backlink);
+SourceBacklink* container_source_get_backlink (ContainerSource* self);
+void container_source_break_link_many (ContainerSource* self, GeeCollection* sources);
+static void container_source_collection_on_contained_sources_relinked (ContainerSourceCollection* self, GeeCollection* relinked);
+GeeList* data_source_get_backlinks (DataSource* self, const gchar* name);
+gchar* data_object_to_string (DataObject* self);
+gchar* source_backlink_to_string (SourceBacklink* self);
+void container_source_establish_link_many (ContainerSource* self, GeeCollection* sources);
+static void container_source_collection_on_contained_source_destroyed (ContainerSourceCollection* self, DataSource* source);
+gboolean container_source_has_links (ContainerSource* self);
+GType tag_get_type (void) G_GNUC_CONST;
+gboolean data_source_destroy_orphan (DataSource* self, gboolean delete_backing);
+static void container_source_collection_real_notify_item_destroyed (SourceCollection* base, DataSource* source);
+void source_collection_remove_backlink (SourceCollection* self, SourceBacklink* backlink);
+void source_collection_notify_item_destroyed (SourceCollection* self, DataSource* source);
+void container_source_collection_evaporate (ContainerSourceCollection* self, ContainerSource* container);
+gboolean source_collection_has_backlink (SourceCollection* self, SourceBacklink* backlink);
+GeeCollection* source_collection_unlink_marked (SourceCollection* self, Marker* marker, ProgressMonitor monitor, void* monitor_target);
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gint source_collection_destroy_marked (SourceCollection* self, Marker* marker, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+void container_source_collection_attach_collection (ContainerSourceCollection* self, SourceCollection* collection);
+gchar* data_collection_to_string (DataCollection* self);
+static void _container_source_collection_on_contained_sources_unlinking_source_collection_items_unlinking (SourceCollection* _sender, GeeCollection* unlinking, gpointer self);
+static void _container_source_collection_on_contained_sources_relinked_source_collection_items_relinked (SourceCollection* _sender, GeeCollection* relinked, gpointer self);
+static void _container_source_collection_on_contained_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+static void _container_source_collection_on_contained_source_destroyed_source_collection_unlinked_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+static void container_source_collection_real_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void container_source_collection_real_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked);
+static void container_source_collection_real_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOOLEAN_OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void container_source_collection_real_backlink_to_container_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void container_source_collection_finalize (DataCollection* obj);
+
+
+ContainerSourceCollection* container_source_collection_construct (GType object_type, const gchar* backlink_name, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target) {
+ ContainerSourceCollection* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ GetSourceDatabaseKey _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_val_if_fail (backlink_name != NULL, NULL);
+#line 37 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 39 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = name;
+#line 39 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = source_key_func;
+#line 39 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1__target = source_key_func_target;
+#line 39 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self = (ContainerSourceCollection*) database_source_collection_construct (object_type, _tmp0_, _tmp1_, _tmp1__target);
+#line 41 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = backlink_name;
+#line 41 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 41 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_free0 (self->priv->backlink_name);
+#line 41 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self->priv->backlink_name = _tmp3_;
+#line 37 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return self;
+#line 420 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_notify_backlink_removed (SourceCollection* base, SourceBacklink* backlink, GeeCollection* sources) {
+ ContainerSourceCollection * self;
+ SourceBacklink* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ ContainerSource* container = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ ContainerSource* _tmp3_ = NULL;
+ ContainerSource* _tmp4_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection);
+#line 48 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 48 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 50 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = backlink;
+#line 50 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = sources;
+#line 50 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ SOURCE_COLLECTION_CLASS (container_source_collection_parent_class)->notify_backlink_removed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_SOURCE_COLLECTION, SourceCollection), _tmp0_, _tmp1_);
+#line 52 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = backlink;
+#line 52 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = container_source_collection_convert_backlink_to_container (self, _tmp2_);
+#line 52 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container = _tmp3_;
+#line 53 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = container;
+#line 53 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp4_ != NULL) {
+#line 454 "ContainerSourceCollection.c"
+ ContainerSource* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = container;
+#line 54 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = sources;
+#line 54 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_notify_backlink_to_container_removed (self, _tmp5_, _tmp6_);
+#line 463 "ContainerSourceCollection.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (container);
+#line 467 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_notify_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked) {
+ GeeHashSet* _tmp0_ = NULL;
+ ContainerSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ContainerSource* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 57 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 57 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (added));
+#line 60 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->holding_tank;
+#line 60 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = container;
+#line 60 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 60 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp2_) {
+#line 490 "ContainerSourceCollection.c"
+ gboolean removed = FALSE;
+ GeeHashSet* _tmp3_ = NULL;
+ ContainerSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ ContainerSource* _tmp7_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = self->priv->holding_tank;
+#line 61 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = container;
+#line 61 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 61 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ removed = _tmp5_;
+#line 62 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = removed;
+#line 62 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 64 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp7_ = container;
+#line 64 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ source_collection_relink (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_SOURCE, DataSource));
+#line 513 "ContainerSourceCollection.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = container;
+#line 67 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = added;
+#line 67 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = relinked;
+#line 67 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_emit_by_name (self, "container-contents-added", _tmp8_, _tmp9_, _tmp10_);
+#line 523 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_notify_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked) {
+#line 57 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 57 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ CONTAINER_SOURCE_COLLECTION_GET_CLASS (self)->notify_container_contents_added (self, container, added, relinked);
+#line 532 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_notify_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked) {
+ ContainerSource* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 70 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 70 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (removed));
+#line 72 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = container;
+#line 72 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = removed;
+#line 72 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = unlinked;
+#line 72 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_emit_by_name (self, "container-contents-removed", _tmp0_, _tmp1_, _tmp2_);
+#line 552 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_notify_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked) {
+#line 70 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 70 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ CONTAINER_SOURCE_COLLECTION_GET_CLASS (self)->notify_container_contents_removed (self, container, removed, unlinked);
+#line 561 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_notify_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked) {
+ ContainerSource* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 75 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 75 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 75 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 78 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = container;
+#line 78 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = added;
+#line 78 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = relinked;
+#line 78 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = removed;
+#line 78 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = unlinked;
+#line 78 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_emit_by_name (self, "container-contents-altered", _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 589 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_notify_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked) {
+#line 75 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 75 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ CONTAINER_SOURCE_COLLECTION_GET_CLASS (self)->notify_container_contents_altered (self, container, added, relinked, removed, unlinked);
+#line 598 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_notify_backlink_to_container_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources) {
+ ContainerSource* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 81 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 83 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = container;
+#line 83 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = sources;
+#line 83 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_emit_by_name (self, "backlink-to-container-removed", _tmp0_, _tmp1_);
+#line 615 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_notify_backlink_to_container_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources) {
+#line 81 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 81 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ CONTAINER_SOURCE_COLLECTION_GET_CLASS (self)->notify_backlink_to_container_removed (self, container, sources);
+#line 624 "ContainerSourceCollection.c"
+}
+
+
+static GeeCollection* container_source_collection_real_get_containers_holding_source (ContainerSourceCollection* self, DataSource* source) {
+#line 86 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_critical ("Type `%s' does not implement abstract method `container_source_collection_get_containers_holding_source'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 86 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return NULL;
+#line 633 "ContainerSourceCollection.c"
+}
+
+
+GeeCollection* container_source_collection_get_containers_holding_source (ContainerSourceCollection* self, DataSource* source) {
+#line 86 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_val_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self), NULL);
+#line 86 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return CONTAINER_SOURCE_COLLECTION_GET_CLASS (self)->get_containers_holding_source (self, source);
+#line 642 "ContainerSourceCollection.c"
+}
+
+
+static ContainerSource* container_source_collection_real_convert_backlink_to_container (ContainerSourceCollection* self, SourceBacklink* backlink) {
+#line 89 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_critical ("Type `%s' does not implement abstract method `container_source_collection_convert_backlink_to_container'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 89 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return NULL;
+#line 651 "ContainerSourceCollection.c"
+}
+
+
+ContainerSource* container_source_collection_convert_backlink_to_container (ContainerSourceCollection* self, SourceBacklink* backlink) {
+#line 89 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_val_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self), NULL);
+#line 89 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return CONTAINER_SOURCE_COLLECTION_GET_CLASS (self)->convert_backlink_to_container (self, backlink);
+#line 660 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_freeze_attached_notifications (ContainerSourceCollection* self) {
+#line 91 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 667 "ContainerSourceCollection.c"
+ {
+ GeeIterator* _collection_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->attached_collections;
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _collection_it = _tmp1_;
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 680 "ContainerSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* collection = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = _collection_it;
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp3_) {
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 695 "ContainerSourceCollection.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = _collection_it;
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ collection = (SourceCollection*) _tmp5_;
+#line 93 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = collection;
+#line 93 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _data_collection_unref0 (collection);
+#line 709 "ContainerSourceCollection.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_collection_it);
+#line 713 "ContainerSourceCollection.c"
+ }
+}
+
+
+void container_source_collection_thaw_attached_notifications (ContainerSourceCollection* self) {
+#line 96 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 721 "ContainerSourceCollection.c"
+ {
+ GeeIterator* _collection_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->attached_collections;
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _collection_it = _tmp1_;
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 734 "ContainerSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* collection = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = _collection_it;
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp3_) {
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 749 "ContainerSourceCollection.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = _collection_it;
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ collection = (SourceCollection*) _tmp5_;
+#line 98 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = collection;
+#line 98 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _data_collection_unref0 (collection);
+#line 763 "ContainerSourceCollection.c"
+ }
+#line 97 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_collection_it);
+#line 767 "ContainerSourceCollection.c"
+ }
+}
+
+
+GeeCollection* container_source_collection_get_holding_tank (ContainerSourceCollection* self) {
+ GeeCollection* result = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_val_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self), NULL);
+#line 102 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->holding_tank;
+#line 102 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_abstract_set_get_read_only_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_SET, GeeAbstractSet));
+#line 102 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 102 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 102 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return result;
+#line 789 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_init_add_unlinked (ContainerSourceCollection* self, ContainerSource* unlinked) {
+ GeeHashSet* _tmp0_ = NULL;
+ ContainerSource* _tmp1_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 105 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (unlinked));
+#line 106 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->holding_tank;
+#line 106 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = unlinked;
+#line 106 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 806 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_init_add_many_unlinked (ContainerSourceCollection* self, GeeCollection* unlinked) {
+ GeeHashSet* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 109 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (unlinked));
+#line 110 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->holding_tank;
+#line 110 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = unlinked;
+#line 110 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 823 "ContainerSourceCollection.c"
+}
+
+
+gboolean container_source_collection_relink_from_holding_tank (ContainerSourceCollection* self, ContainerSource* source) {
+ gboolean result = FALSE;
+ GeeHashSet* _tmp0_ = NULL;
+ ContainerSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ContainerSource* _tmp3_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_val_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self), FALSE);
+#line 113 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_val_if_fail (IS_CONTAINER_SOURCE (source), FALSE);
+#line 114 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->holding_tank;
+#line 114 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = source;
+#line 114 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 114 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp2_) {
+#line 115 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ result = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return result;
+#line 849 "ContainerSourceCollection.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = source;
+#line 117 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ source_collection_relink (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_SOURCE, DataSource));
+#line 119 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ result = TRUE;
+#line 119 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return result;
+#line 859 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_on_contained_sources_unlinking (ContainerSourceCollection* self, GeeCollection* unlinking) {
+ GeeHashMultiMap* map = NULL;
+ GeeHashMultiMap* _tmp0_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 122 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (unlinking));
+#line 123 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_freeze_attached_notifications (self);
+#line 125 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = gee_hash_multi_map_new (TYPE_CONTAINER_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 125 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ map = _tmp0_;
+#line 876 "ContainerSourceCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = unlinking;
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _source_it = _tmp2_;
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 889 "ContainerSourceCollection.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ GeeCollection* containers = NULL;
+ DataSource* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GeeCollection* _tmp10_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = _source_it;
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp4_) {
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 908 "ContainerSourceCollection.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = _source_it;
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ source = (DataSource*) _tmp6_;
+#line 129 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp7_ = source;
+#line 129 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = container_source_collection_get_containers_holding_source (self, _tmp7_);
+#line 129 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ containers = _tmp8_;
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = containers;
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp10_ == NULL) {
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = TRUE;
+#line 928 "ContainerSourceCollection.c"
+ } else {
+ GeeCollection* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp11_ = containers;
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp12_ = gee_collection_get_size (_tmp11_);
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp13_ = _tmp12_;
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = _tmp13_ == 0;
+#line 941 "ContainerSourceCollection.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp9_) {
+#line 131 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (containers);
+#line 131 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (source);
+#line 131 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ continue;
+#line 951 "ContainerSourceCollection.c"
+ }
+ {
+ GeeIterator* _container_it = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp14_ = containers;
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _container_it = _tmp15_;
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 965 "ContainerSourceCollection.c"
+ GeeIterator* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ GeeHashMultiMap* _tmp20_ = NULL;
+ ContainerSource* _tmp21_ = NULL;
+ DataSource* _tmp22_ = NULL;
+ DataSource* _tmp23_ = NULL;
+ ContainerSource* _tmp24_ = NULL;
+ SourceBacklink* _tmp25_ = NULL;
+ SourceBacklink* _tmp26_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp16_ = _container_it;
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp17_ = gee_iterator_next (_tmp16_);
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp17_) {
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 986 "ContainerSourceCollection.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp18_ = _container_it;
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container = (ContainerSource*) _tmp19_;
+#line 134 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp20_ = map;
+#line 134 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp21_ = container;
+#line 134 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp22_ = source;
+#line 134 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp21_, _tmp22_);
+#line 135 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp23_ = source;
+#line 135 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp24_ = container;
+#line 135 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp25_ = container_source_get_backlink (_tmp24_);
+#line 135 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp26_ = _tmp25_;
+#line 135 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data_source_set_backlink (_tmp23_, _tmp26_);
+#line 135 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _source_backlink_unref0 (_tmp26_);
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (container);
+#line 1016 "ContainerSourceCollection.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_container_it);
+#line 1020 "ContainerSourceCollection.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (containers);
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (source);
+#line 1026 "ContainerSourceCollection.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 1030 "ContainerSourceCollection.c"
+ }
+ {
+ GeeIterator* _container_it = NULL;
+ GeeHashMultiMap* _tmp27_ = NULL;
+ GeeSet* _tmp28_ = NULL;
+ GeeSet* _tmp29_ = NULL;
+ GeeIterator* _tmp30_ = NULL;
+ GeeIterator* _tmp31_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp27_ = map;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp28_ = gee_multi_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_MULTI_MAP, GeeMultiMap));
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp29_ = _tmp28_;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp30_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp31_ = _tmp30_;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_tmp29_);
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _container_it = _tmp31_;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1055 "ContainerSourceCollection.c"
+ GeeIterator* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp34_ = NULL;
+ gpointer _tmp35_ = NULL;
+ ContainerSource* _tmp36_ = NULL;
+ GeeHashMultiMap* _tmp37_ = NULL;
+ ContainerSource* _tmp38_ = NULL;
+ GeeCollection* _tmp39_ = NULL;
+ GeeCollection* _tmp40_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp32_ = _container_it;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp33_ = gee_iterator_next (_tmp32_);
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp33_) {
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1074 "ContainerSourceCollection.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp34_ = _container_it;
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp35_ = gee_iterator_get (_tmp34_);
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container = (ContainerSource*) _tmp35_;
+#line 140 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp36_ = container;
+#line 140 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp37_ = map;
+#line 140 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp38_ = container;
+#line 140 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp39_ = gee_multi_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp38_);
+#line 140 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp40_ = _tmp39_;
+#line 140 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_break_link_many (_tmp36_, _tmp40_);
+#line 140 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_tmp40_);
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (container);
+#line 1098 "ContainerSourceCollection.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_container_it);
+#line 1102 "ContainerSourceCollection.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_thaw_attached_notifications (self);
+#line 122 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (map);
+#line 1108 "ContainerSourceCollection.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1115 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_on_contained_sources_relinked (ContainerSourceCollection* self, GeeCollection* relinked) {
+ GeeHashMultiMap* map = NULL;
+ GeeHashMultiMap* _tmp0_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 145 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (relinked));
+#line 146 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_freeze_attached_notifications (self);
+#line 148 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = gee_hash_multi_map_new (TYPE_CONTAINER_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 148 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ map = _tmp0_;
+#line 1132 "ContainerSourceCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = relinked;
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _source_it = _tmp2_;
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1145 "ContainerSourceCollection.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ GeeList* backlinks = NULL;
+ DataSource* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GeeList* _tmp11_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = _source_it;
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp4_) {
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1165 "ContainerSourceCollection.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = _source_it;
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ source = (DataSource*) _tmp6_;
+#line 152 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp7_ = source;
+#line 152 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = self->priv->backlink_name;
+#line 152 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = data_source_get_backlinks (_tmp7_, _tmp8_);
+#line 152 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ backlinks = _tmp9_;
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp11_ = backlinks;
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp11_ == NULL) {
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = TRUE;
+#line 1187 "ContainerSourceCollection.c"
+ } else {
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp12_ = backlinks;
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp13_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp14_ = _tmp13_;
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = _tmp14_ == 0;
+#line 1200 "ContainerSourceCollection.c"
+ }
+#line 153 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp10_) {
+#line 154 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (backlinks);
+#line 154 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (source);
+#line 154 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ continue;
+#line 1210 "ContainerSourceCollection.c"
+ }
+ {
+ GeeList* _backlink_list = NULL;
+ GeeList* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ gint _backlink_size = 0;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _backlink_index = 0;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp15_ = backlinks;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _backlink_list = _tmp16_;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp17_ = _backlink_list;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp18_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp19_ = _tmp18_;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _backlink_size = _tmp19_;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _backlink_index = -1;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1239 "ContainerSourceCollection.c"
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ SourceBacklink* backlink = NULL;
+ GeeList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gpointer _tmp25_ = NULL;
+ ContainerSource* container = NULL;
+ SourceBacklink* _tmp26_ = NULL;
+ ContainerSource* _tmp27_ = NULL;
+ ContainerSource* _tmp28_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp20_ = _backlink_index;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _backlink_index = _tmp20_ + 1;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp21_ = _backlink_index;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp22_ = _backlink_size;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!(_tmp21_ < _tmp22_)) {
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1263 "ContainerSourceCollection.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp23_ = _backlink_list;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp24_ = _backlink_index;
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp25_ = gee_list_get (_tmp23_, _tmp24_);
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ backlink = (SourceBacklink*) _tmp25_;
+#line 157 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp26_ = backlink;
+#line 157 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp27_ = container_source_collection_convert_backlink_to_container (self, _tmp26_);
+#line 157 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container = _tmp27_;
+#line 158 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp28_ = container;
+#line 158 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp28_ != NULL) {
+#line 1283 "ContainerSourceCollection.c"
+ GeeHashMultiMap* _tmp29_ = NULL;
+ ContainerSource* _tmp30_ = NULL;
+ DataSource* _tmp31_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp29_ = map;
+#line 159 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp30_ = container;
+#line 159 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp31_ = source;
+#line 159 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp30_, _tmp31_);
+#line 1295 "ContainerSourceCollection.c"
+ } else {
+ DataSource* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ SourceBacklink* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp32_ = source;
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp33_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_DATA_OBJECT, DataObject));
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp34_ = _tmp33_;
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp35_ = backlink;
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp36_ = source_backlink_to_string (_tmp35_);
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp37_ = _tmp36_;
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_warning ("ContainerSourceCollection.vala:161: Unable to relink %s to container b" \
+"acklink %s", _tmp34_, _tmp37_);
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_free0 (_tmp37_);
+#line 161 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_free0 (_tmp34_);
+#line 1321 "ContainerSourceCollection.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (container);
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _source_backlink_unref0 (backlink);
+#line 1327 "ContainerSourceCollection.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_backlink_list);
+#line 1331 "ContainerSourceCollection.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (backlinks);
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (source);
+#line 1337 "ContainerSourceCollection.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 1341 "ContainerSourceCollection.c"
+ }
+ {
+ GeeIterator* _container_it = NULL;
+ GeeHashMultiMap* _tmp38_ = NULL;
+ GeeSet* _tmp39_ = NULL;
+ GeeSet* _tmp40_ = NULL;
+ GeeIterator* _tmp41_ = NULL;
+ GeeIterator* _tmp42_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp38_ = map;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp39_ = gee_multi_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_MULTI_MAP, GeeMultiMap));
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp40_ = _tmp39_;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp41_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp42_ = _tmp41_;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_tmp40_);
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _container_it = _tmp42_;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1366 "ContainerSourceCollection.c"
+ GeeIterator* _tmp43_ = NULL;
+ gboolean _tmp44_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp45_ = NULL;
+ gpointer _tmp46_ = NULL;
+ ContainerSource* _tmp47_ = NULL;
+ GeeHashMultiMap* _tmp48_ = NULL;
+ ContainerSource* _tmp49_ = NULL;
+ GeeCollection* _tmp50_ = NULL;
+ GeeCollection* _tmp51_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp43_ = _container_it;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp44_ = gee_iterator_next (_tmp43_);
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp44_) {
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1385 "ContainerSourceCollection.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp45_ = _container_it;
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp46_ = gee_iterator_get (_tmp45_);
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container = (ContainerSource*) _tmp46_;
+#line 168 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp47_ = container;
+#line 168 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp48_ = map;
+#line 168 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp49_ = container;
+#line 168 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp50_ = gee_multi_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp49_);
+#line 168 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp51_ = _tmp50_;
+#line 168 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_establish_link_many (_tmp47_, _tmp51_);
+#line 168 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_tmp51_);
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (container);
+#line 1409 "ContainerSourceCollection.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_container_it);
+#line 1413 "ContainerSourceCollection.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_thaw_attached_notifications (self);
+#line 145 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (map);
+#line 1419 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_on_contained_source_destroyed (ContainerSourceCollection* self, DataSource* source) {
+ GeeIterator* iter = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 173 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 174 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->holding_tank;
+#line 174 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 174 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ iter = _tmp1_;
+#line 175 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1439 "ContainerSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ ContainerSource* container = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ ContainerSource* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 175 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = iter;
+#line 175 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 175 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp3_) {
+#line 175 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1456 "ContainerSourceCollection.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = iter;
+#line 176 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 176 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container = (ContainerSource*) _tmp5_;
+#line 180 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp7_ = container;
+#line 180 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = container_source_has_links (_tmp7_);
+#line 180 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp8_) {
+#line 1470 "ContainerSourceCollection.c"
+ ContainerSource* _tmp9_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = container;
+#line 180 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_TAG);
+#line 1476 "ContainerSourceCollection.c"
+ } else {
+#line 180 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = FALSE;
+#line 1480 "ContainerSourceCollection.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp6_) {
+#line 1484 "ContainerSourceCollection.c"
+ GeeIterator* _tmp10_ = NULL;
+ ContainerSource* _tmp11_ = NULL;
+#line 181 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = iter;
+#line 181 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ gee_iterator_remove (_tmp10_);
+#line 182 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp11_ = container;
+#line 182 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data_source_destroy_orphan (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_SOURCE, DataSource), TRUE);
+#line 1495 "ContainerSourceCollection.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (container);
+#line 1499 "ContainerSourceCollection.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (iter);
+#line 1503 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_notify_item_destroyed (SourceCollection* base, DataSource* source) {
+ ContainerSourceCollection * self;
+ DataSource* _tmp10_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection);
+#line 187 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1514 "ContainerSourceCollection.c"
+ {
+ GeeIterator* _collection_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->attached_collections;
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _collection_it = _tmp1_;
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1527 "ContainerSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* collection = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ SourceBacklink* _tmp8_ = NULL;
+ SourceBacklink* _tmp9_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = _collection_it;
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp3_) {
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1545 "ContainerSourceCollection.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = _collection_it;
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ collection = (SourceCollection*) _tmp5_;
+#line 189 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = collection;
+#line 189 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp7_ = source;
+#line 189 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = container_source_get_backlink (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONTAINER_SOURCE, ContainerSource));
+#line 189 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = _tmp8_;
+#line 189 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ source_collection_remove_backlink (_tmp6_, _tmp9_);
+#line 189 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _source_backlink_unref0 (_tmp9_);
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _data_collection_unref0 (collection);
+#line 1567 "ContainerSourceCollection.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_collection_it);
+#line 1571 "ContainerSourceCollection.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = source;
+#line 192 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ SOURCE_COLLECTION_CLASS (container_source_collection_parent_class)->notify_item_destroyed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_SOURCE_COLLECTION, SourceCollection), _tmp10_);
+#line 1577 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_evaporate (ContainerSourceCollection* self, ContainerSource* container) {
+ ContainerSource* _tmp21_ = NULL;
+ Marker* _tmp22_ = NULL;
+ Marker* _tmp23_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 199 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 1589 "ContainerSourceCollection.c"
+ {
+ GeeIterator* _collection_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->attached_collections;
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _collection_it = _tmp1_;
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1602 "ContainerSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* collection = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ ContainerSource* _tmp7_ = NULL;
+ SourceBacklink* _tmp8_ = NULL;
+ SourceBacklink* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = _collection_it;
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp3_) {
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1622 "ContainerSourceCollection.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = _collection_it;
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ collection = (SourceCollection*) _tmp5_;
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = collection;
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp7_ = container;
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = container_source_get_backlink (_tmp7_);
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = _tmp8_;
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = source_collection_has_backlink (_tmp6_, _tmp9_);
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _source_backlink_unref0 (_tmp9_);
+#line 201 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp11_) {
+#line 1646 "ContainerSourceCollection.c"
+ ContainerSource* _tmp12_ = NULL;
+ Marker* _tmp13_ = NULL;
+ Marker* _tmp14_ = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ gboolean added = FALSE;
+ GeeHashSet* _tmp17_ = NULL;
+ ContainerSource* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+#line 202 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp12_ = container;
+#line 202 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp13_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 202 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp14_ = _tmp13_;
+#line 202 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp15_ = source_collection_unlink_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp14_, NULL, NULL);
+#line 202 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp16_ = _tmp15_;
+#line 202 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_tmp16_);
+#line 202 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_tmp14_);
+#line 203 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp17_ = self->priv->holding_tank;
+#line 203 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp18_ = container;
+#line 203 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp19_ = gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp18_);
+#line 203 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ added = _tmp19_;
+#line 204 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp20_ = added;
+#line 204 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _vala_assert (_tmp20_, "added");
+#line 205 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _data_collection_unref0 (collection);
+#line 205 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_collection_it);
+#line 205 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return;
+#line 1689 "ContainerSourceCollection.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _data_collection_unref0 (collection);
+#line 1693 "ContainerSourceCollection.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_collection_it);
+#line 1697 "ContainerSourceCollection.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp21_ = container;
+#line 209 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp22_ = data_collection_mark (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_OBJECT, DataObject));
+#line 209 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp23_ = _tmp22_;
+#line 209 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ source_collection_destroy_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp23_, TRUE, NULL, NULL, NULL);
+#line 209 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_tmp23_);
+#line 1709 "ContainerSourceCollection.c"
+}
+
+
+static void _container_source_collection_on_contained_sources_unlinking_source_collection_items_unlinking (SourceCollection* _sender, GeeCollection* unlinking, gpointer self) {
+#line 220 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_on_contained_sources_unlinking ((ContainerSourceCollection*) self, unlinking);
+#line 1716 "ContainerSourceCollection.c"
+}
+
+
+static void _container_source_collection_on_contained_sources_relinked_source_collection_items_relinked (SourceCollection* _sender, GeeCollection* relinked, gpointer self) {
+#line 221 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_on_contained_sources_relinked ((ContainerSourceCollection*) self, relinked);
+#line 1723 "ContainerSourceCollection.c"
+}
+
+
+static void _container_source_collection_on_contained_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 222 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_on_contained_source_destroyed ((ContainerSourceCollection*) self, source);
+#line 1730 "ContainerSourceCollection.c"
+}
+
+
+static void _container_source_collection_on_contained_source_destroyed_source_collection_unlinked_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 223 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_on_contained_source_destroyed ((ContainerSourceCollection*) self, source);
+#line 1737 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_attach_collection (ContainerSourceCollection* self, SourceCollection* collection) {
+ GeeHashSet* _tmp0_ = NULL;
+ SourceCollection* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* _tmp8_ = NULL;
+ SourceCollection* _tmp9_ = NULL;
+ SourceCollection* _tmp10_ = NULL;
+ SourceCollection* _tmp11_ = NULL;
+ SourceCollection* _tmp12_ = NULL;
+ SourceCollection* _tmp13_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 212 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (collection));
+#line 213 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->attached_collections;
+#line 213 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = collection;
+#line 213 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 213 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (_tmp2_) {
+#line 1763 "ContainerSourceCollection.c"
+ SourceCollection* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = collection;
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = data_collection_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection));
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = data_collection_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp7_ = _tmp6_;
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_warning ("ContainerSourceCollection.vala:214: attempted to multiple-attach '%s' " \
+"to '%s'", _tmp5_, _tmp7_);
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_free0 (_tmp7_);
+#line 214 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_free0 (_tmp5_);
+#line 215 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ return;
+#line 1787 "ContainerSourceCollection.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = self->priv->attached_collections;
+#line 218 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp9_ = collection;
+#line 218 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp9_);
+#line 220 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = collection;
+#line 220 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_connect (_tmp10_, "items-unlinking", (GCallback) _container_source_collection_on_contained_sources_unlinking_source_collection_items_unlinking, self);
+#line 221 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp11_ = collection;
+#line 221 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_connect (_tmp11_, "items-relinked", (GCallback) _container_source_collection_on_contained_sources_relinked_source_collection_items_relinked, self);
+#line 222 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp12_ = collection;
+#line 222 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_connect (_tmp12_, "item-destroyed", (GCallback) _container_source_collection_on_contained_source_destroyed_source_collection_item_destroyed, self);
+#line 223 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp13_ = collection;
+#line 223 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_connect (_tmp13_, "unlinked-destroyed", (GCallback) _container_source_collection_on_contained_source_destroyed_source_collection_unlinked_destroyed, self);
+#line 1811 "ContainerSourceCollection.c"
+}
+
+
+void container_source_collection_detach_all_collections (ContainerSourceCollection* self) {
+ GeeHashSet* _tmp14_ = NULL;
+#line 226 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE_COLLECTION (self));
+#line 1819 "ContainerSourceCollection.c"
+ {
+ GeeIterator* _collection_it = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = self->priv->attached_collections;
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _collection_it = _tmp1_;
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ while (TRUE) {
+#line 1832 "ContainerSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ SourceCollection* collection = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ SourceCollection* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ SourceCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ SourceCollection* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp2_ = _collection_it;
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (!_tmp3_) {
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ break;
+#line 1854 "ContainerSourceCollection.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp4_ = _collection_it;
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ collection = (SourceCollection*) _tmp5_;
+#line 228 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp6_ = collection;
+#line 228 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_parse_name ("items-unlinking", TYPE_SOURCE_COLLECTION, &_tmp7_, NULL, FALSE);
+#line 228 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _container_source_collection_on_contained_sources_unlinking_source_collection_items_unlinking, self);
+#line 229 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp8_ = collection;
+#line 229 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_parse_name ("items-relinked", TYPE_SOURCE_COLLECTION, &_tmp9_, NULL, FALSE);
+#line 229 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _container_source_collection_on_contained_sources_relinked_source_collection_items_relinked, self);
+#line 230 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp10_ = collection;
+#line 230 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 230 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _container_source_collection_on_contained_source_destroyed_source_collection_item_destroyed, self);
+#line 231 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp12_ = collection;
+#line 231 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_parse_name ("unlinked-destroyed", TYPE_SOURCE_COLLECTION, &_tmp13_, NULL, FALSE);
+#line 231 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _container_source_collection_on_contained_source_destroyed_source_collection_unlinked_destroyed, self);
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _data_collection_unref0 (collection);
+#line 1888 "ContainerSourceCollection.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (_collection_it);
+#line 1892 "ContainerSourceCollection.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp14_ = self->priv->attached_collections;
+#line 234 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ gee_abstract_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 1898 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_container_contents_added (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked) {
+#line 20 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 20 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (added));
+#line 1907 "ContainerSourceCollection.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_BOOLEAN) (gpointer data1, gpointer arg_1, gpointer arg_2, gboolean arg_3, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (n_param_values == 4);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data1 = closure->data;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 1926 "ContainerSourceCollection.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data2 = closure->data;
+#line 1932 "ContainerSourceCollection.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_boolean (param_values + 3), data2);
+#line 1938 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_container_contents_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* removed, gboolean unlinked) {
+#line 24 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 24 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (removed));
+#line 1947 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_container_contents_altered (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* added, gboolean relinked, GeeCollection* removed, gboolean unlinked) {
+#line 28 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 28 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 28 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 1958 "ContainerSourceCollection.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOOLEAN_OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_BOOLEAN_OBJECT_BOOLEAN) (gpointer data1, gpointer arg_1, gpointer arg_2, gboolean arg_3, gpointer arg_4, gboolean arg_5, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT_BOOLEAN_OBJECT_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (n_param_values == 6);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data1 = closure->data;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 1977 "ContainerSourceCollection.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data2 = closure->data;
+#line 1983 "ContainerSourceCollection.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT_BOOLEAN_OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_boolean (param_values + 3), g_value_get_object (param_values + 4), g_value_get_boolean (param_values + 5), data2);
+#line 1989 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_real_backlink_to_container_removed (ContainerSourceCollection* self, ContainerSource* container, GeeCollection* sources) {
+#line 33 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (container));
+#line 33 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 1998 "ContainerSourceCollection.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data1 = closure->data;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2017 "ContainerSourceCollection.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ data2 = closure->data;
+#line 2023 "ContainerSourceCollection.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 2029 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_class_init (ContainerSourceCollectionClass * klass) {
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((DataCollectionClass *) klass)->finalize = container_source_collection_finalize;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_type_class_add_private (klass, sizeof (ContainerSourceCollectionPrivate));
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_backlink_removed = container_source_collection_real_notify_backlink_removed;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->notify_container_contents_added = container_source_collection_real_notify_container_contents_added;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->notify_container_contents_removed = container_source_collection_real_notify_container_contents_removed;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->notify_container_contents_altered = container_source_collection_real_notify_container_contents_altered;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->notify_backlink_to_container_removed = container_source_collection_real_notify_backlink_to_container_removed;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->get_containers_holding_source = container_source_collection_real_get_containers_holding_source;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->convert_backlink_to_container = container_source_collection_real_convert_backlink_to_container;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_item_destroyed = container_source_collection_real_notify_item_destroyed;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->container_contents_added = container_source_collection_real_container_contents_added;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->container_contents_removed = container_source_collection_real_container_contents_removed;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->container_contents_altered = container_source_collection_real_container_contents_altered;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ ((ContainerSourceCollectionClass *) klass)->backlink_to_container_removed = container_source_collection_real_backlink_to_container_removed;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_new ("container_contents_added", TYPE_CONTAINER_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ContainerSourceCollectionClass, container_contents_added), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOOLEAN, G_TYPE_NONE, 3, TYPE_CONTAINER_SOURCE, GEE_TYPE_COLLECTION, G_TYPE_BOOLEAN);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_new ("container_contents_removed", TYPE_CONTAINER_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ContainerSourceCollectionClass, container_contents_removed), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOOLEAN, G_TYPE_NONE, 3, TYPE_CONTAINER_SOURCE, GEE_TYPE_COLLECTION, G_TYPE_BOOLEAN);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_new ("container_contents_altered", TYPE_CONTAINER_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ContainerSourceCollectionClass, container_contents_altered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOOLEAN_OBJECT_BOOLEAN, G_TYPE_NONE, 5, TYPE_CONTAINER_SOURCE, GEE_TYPE_COLLECTION, G_TYPE_BOOLEAN, GEE_TYPE_COLLECTION, G_TYPE_BOOLEAN);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ g_signal_new ("backlink_to_container_removed", TYPE_CONTAINER_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ContainerSourceCollectionClass, backlink_to_container_removed), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, TYPE_CONTAINER_SOURCE, GEE_TYPE_COLLECTION);
+#line 2072 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_instance_init (ContainerSourceCollection * self) {
+ GeeHashSet* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self->priv = CONTAINER_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 16 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_SOURCE_COLLECTION, (GBoxedCopyFunc) data_collection_ref, data_collection_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 16 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self->priv->attached_collections = _tmp0_;
+#line 18 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _tmp1_ = gee_hash_set_new (TYPE_CONTAINER_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 18 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self->priv->holding_tank = _tmp1_;
+#line 2089 "ContainerSourceCollection.c"
+}
+
+
+static void container_source_collection_finalize (DataCollection* obj) {
+ ContainerSourceCollection * self;
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection);
+#line 45 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ container_source_collection_detach_all_collections (self);
+#line 16 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (self->priv->attached_collections);
+#line 17 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_free0 (self->priv->backlink_name);
+#line 18 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ _g_object_unref0 (self->priv->holding_tank);
+#line 15 "/home/jens/Source/shotwell/src/core/ContainerSourceCollection.vala"
+ DATA_COLLECTION_CLASS (container_source_collection_parent_class)->finalize (obj);
+#line 2107 "ContainerSourceCollection.c"
+}
+
+
+GType container_source_collection_get_type (void) {
+ static volatile gsize container_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&container_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ContainerSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) container_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ContainerSourceCollection), 0, (GInstanceInitFunc) container_source_collection_instance_init, NULL };
+ GType container_source_collection_type_id;
+ container_source_collection_type_id = g_type_register_static (TYPE_DATABASE_SOURCE_COLLECTION, "ContainerSourceCollection", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&container_source_collection_type_id__volatile, container_source_collection_type_id);
+ }
+ return container_source_collection_type_id__volatile;
+}
+
+
+
diff --git a/src/unit/rc/Unit.m4 b/src/core/Core.c
index 2665dd6..7fd60d2 100644
--- a/src/unit/rc/Unit.m4
+++ b/src/core/Core.c
@@ -1,10 +1,12 @@
+/* Core.c generated by valac 0.32.1, the Vala compiler
+ * generated from Core.vala, do not modify */
+
/* Copyright 2016 Software Freedom Conservancy Inc.
*
* This software is licensed under the GNU Lesser General Public License
* (version 2.1 or later). See the COPYING file in this distribution.
*/
-
-/* This file is the master unit file for the _UNIT_NAME_ unit. It should be edited to include
+/* This file is the master unit file for the Core unit. It should be edited to include
* whatever code is deemed necessary.
*
* The init() and terminate() methods are mandatory.
@@ -13,17 +15,27 @@
* the preconfigure() method, implement it, and ensure in init() that it's been called.
*/
-namespace _UNIT_NAME_ {
+#include <glib.h>
+#include <glib-object.h>
-// preconfigure may be deleted if not used.
-public void preconfigure() {
-}
-public void init() throws Error {
+
+
+void core_preconfigure (void);
+void core_init (GError** error);
+void core_terminate (void);
+
+
+void core_preconfigure (void) {
}
-public void terminate() {
+
+void core_init (GError** error) {
}
+
+void core_terminate (void) {
}
+
+
diff --git a/src/core/DataCollection.c b/src/core/DataCollection.c
new file mode 100644
index 0000000..7040412
--- /dev/null
+++ b/src/core/DataCollection.c
@@ -0,0 +1,3944 @@
+/* DataCollection.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataCollection.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_DATA_SET (data_set_get_type ())
+#define DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SET, DataSet))
+#define DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SET, DataSetClass))
+#define IS_DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SET))
+#define IS_DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SET))
+#define DATA_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SET, DataSetClass))
+
+typedef struct _DataSet DataSet;
+typedef struct _DataSetClass DataSetClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _data_set_unref0(var) ((var == NULL) ? NULL : (var = (data_set_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_SINGLETON_COLLECTION (singleton_collection_get_type ())
+#define SINGLETON_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLETON_COLLECTION, SingletonCollection))
+#define SINGLETON_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLETON_COLLECTION, SingletonCollectionClass))
+#define IS_SINGLETON_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLETON_COLLECTION))
+#define IS_SINGLETON_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLETON_COLLECTION))
+#define SINGLETON_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLETON_COLLECTION, SingletonCollectionClass))
+
+typedef struct _SingletonCollection SingletonCollection;
+typedef struct _SingletonCollectionClass SingletonCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define DATA_COLLECTION_TYPE_MARKER_IMPL (data_collection_marker_impl_get_type ())
+#define DATA_COLLECTION_MARKER_IMPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl))
+#define DATA_COLLECTION_MARKER_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImplClass))
+#define DATA_COLLECTION_IS_MARKER_IMPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_COLLECTION_TYPE_MARKER_IMPL))
+#define DATA_COLLECTION_IS_MARKER_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_COLLECTION_TYPE_MARKER_IMPL))
+#define DATA_COLLECTION_MARKER_IMPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImplClass))
+
+typedef struct _DataCollectionMarkerImpl DataCollectionMarkerImpl;
+typedef struct _DataCollectionMarkerImplClass DataCollectionMarkerImplClass;
+typedef struct _DataCollectionMarkerImplPrivate DataCollectionMarkerImplPrivate;
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+#define __vala_GValue_free0(var) ((var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL)))
+typedef struct _ParamSpecDataCollection ParamSpecDataCollection;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _DataCollectionPrivate {
+ gchar* name;
+ DataSet* dataset;
+ GeeHashMap* properties;
+ gint64 object_ordinal_generator;
+ gint notifies_frozen;
+ GeeHashMap* frozen_items_altered;
+ gboolean fire_ordering_changed;
+};
+
+typedef gboolean (*MarkedAction) (DataObject* object, GObject* user, void* user_data);
+struct _DataCollectionMarkerImpl {
+ GObject parent_instance;
+ DataCollectionMarkerImplPrivate * priv;
+ DataCollection* owner;
+ GeeHashSet* marked;
+ gint freeze_count;
+};
+
+struct _DataCollectionMarkerImplClass {
+ GObjectClass parent_class;
+};
+
+typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
+struct _ParamSpecDataCollection {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer data_collection_parent_class = NULL;
+static gpointer data_collection_marker_impl_parent_class = NULL;
+static MarkerIface* data_collection_marker_impl_marker_parent_iface = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+gpointer data_set_ref (gpointer instance);
+void data_set_unref (gpointer instance);
+GParamSpec* param_spec_data_set (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_set (GValue* value, gpointer v_object);
+void value_take_data_set (GValue* value, gpointer v_object);
+gpointer value_get_data_set (const GValue* value);
+GType data_set_get_type (void) G_GNUC_CONST;
+#define DATA_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DATA_COLLECTION, DataCollectionPrivate))
+enum {
+ DATA_COLLECTION_DUMMY_PROPERTY
+};
+DataSet* data_set_new (void);
+DataSet* data_set_construct (GType object_type);
+static GValue* _g_value_dup (GValue* self);
+static void _vala_GValue_free (GValue* self);
+#define DATA_COLLECTION_INVALID_OBJECT_ORDINAL ((gint64) -1)
+DataCollection* data_collection_new (const gchar* name);
+DataCollection* data_collection_construct (GType object_type, const gchar* name);
+gchar* data_collection_to_string (DataCollection* self);
+static gchar* data_collection_real_to_string (DataCollection* self);
+gint data_collection_get_count (DataCollection* self);
+void data_collection_notify_items_added (DataCollection* self, GeeIterable* added);
+static void data_collection_real_notify_items_added (DataCollection* self, GeeIterable* added);
+void data_collection_notify_items_removed (DataCollection* self, GeeIterable* removed);
+static void data_collection_real_notify_items_removed (DataCollection* self, GeeIterable* removed);
+void data_collection_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+static void data_collection_real_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+void data_collection_notify_items_altered (DataCollection* self, GeeMap* items);
+static void data_collection_real_notify_items_altered (DataCollection* self, GeeMap* items);
+void data_collection_notify_ordering_changed (DataCollection* self);
+static void data_collection_real_notify_ordering_changed (DataCollection* self);
+void data_collection_notify_property_set (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+static void data_collection_real_notify_property_set (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+void data_collection_notify_property_cleared (DataCollection* self, const gchar* name);
+static void data_collection_real_notify_property_cleared (DataCollection* self, const gchar* name);
+GeeCollection* data_collection_get_singleton (DataObject* object);
+SingletonCollection* singleton_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object);
+SingletonCollection* singleton_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object);
+GType singleton_collection_get_type (void) G_GNUC_CONST;
+GeeMap* data_collection_get_alteration_singleton (DataObject* object, Alteration* alteration);
+gboolean data_collection_valid_type (DataCollection* self, DataObject* object);
+static gboolean data_collection_real_valid_type (DataCollection* self, DataObject* object);
+Comparator data_collection_get_comparator (DataCollection* self, void** result_target);
+Comparator data_set_get_comparator (DataSet* self, void** result_target);
+ComparatorPredicate data_collection_get_comparator_predicate (DataCollection* self, void** result_target);
+ComparatorPredicate data_set_get_comparator_predicate (DataSet* self, void** result_target);
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+static void data_collection_real_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+void data_set_set_comparator (DataSet* self, Comparator user_comparator, void* user_comparator_target, ComparatorPredicate comparator_predicate, void* comparator_predicate_target);
+void data_collection_reset_comparator (DataCollection* self);
+static void data_collection_real_reset_comparator (DataCollection* self);
+void data_set_reset_comparator (DataSet* self);
+GeeCollection* data_collection_get_all (DataCollection* self);
+static GeeCollection* data_collection_real_get_all (DataCollection* self);
+GeeList* data_set_get_all (DataSet* self);
+DataSet* data_collection_get_dataset_copy (DataCollection* self);
+DataSet* data_set_copy (DataSet* self);
+static gint data_collection_real_get_count (DataCollection* self);
+gint data_set_get_count (DataSet* self);
+DataObject* data_collection_get_at (DataCollection* self, gint index);
+static DataObject* data_collection_real_get_at (DataCollection* self, gint index);
+DataObject* data_set_get_at (DataSet* self, gint index);
+gint data_collection_index_of (DataCollection* self, DataObject* object);
+static gint data_collection_real_index_of (DataCollection* self, DataObject* object);
+gint data_set_index_of (DataSet* self, DataObject* object);
+gboolean data_collection_contains (DataCollection* self, DataObject* object);
+static gboolean data_collection_real_contains (DataCollection* self, DataObject* object);
+static gboolean data_collection_internal_contains (DataCollection* self, DataObject* object);
+gboolean data_set_contains (DataSet* self, DataObject* object);
+DataCollection* data_object_get_membership (DataObject* self);
+static void data_collection_internal_add (DataCollection* self, DataObject* object);
+void data_object_internal_set_membership (DataObject* self, DataCollection* collection, gint64 ordinal);
+gboolean data_set_add (DataSet* self, DataObject* object);
+static void data_collection_internal_add_many (DataCollection* self, GeeList* objects, ProgressMonitor monitor, void* monitor_target);
+gboolean data_set_add_many (DataSet* self, GeeCollection* objects);
+static void data_collection_internal_remove (DataCollection* self, DataObject* object);
+gboolean data_set_remove (DataSet* self, DataObject* object);
+void data_object_internal_clear_membership (DataObject* self);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+static gboolean data_collection_real_add (DataCollection* self, DataObject* object);
+gchar* data_object_to_string (DataObject* self);
+void data_object_notify_membership_changed (DataObject* self, DataCollection* collection);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+static GeeCollection* data_collection_real_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+Marker* data_collection_start_marking (DataCollection* self);
+static DataCollectionMarkerImpl* data_collection_marker_impl_new (DataCollection* owner);
+static DataCollectionMarkerImpl* data_collection_marker_impl_construct (GType object_type, DataCollection* owner);
+static GType data_collection_marker_impl_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+Marker* data_collection_mark (DataCollection* self, DataObject* object);
+void marker_mark (Marker* self, DataObject* object);
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects);
+void marker_mark_many (Marker* self, GeeCollection* list);
+void data_collection_act_on_marked (DataCollection* self, Marker* m, MarkedAction action, void* action_target, ProgressMonitor monitor, void* monitor_target, GObject* user);
+static gboolean data_collection_marker_impl_is_valid (DataCollectionMarkerImpl* self, DataCollection* collection);
+static void data_collection_marker_impl_freeze (DataCollectionMarkerImpl* self);
+static void data_collection_marker_impl_finished (DataCollectionMarkerImpl* self);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+static void data_collection_real_remove_marked (DataCollection* self, Marker* m);
+void data_collection_clear (DataCollection* self);
+static void data_collection_real_clear (DataCollection* self);
+void data_collection_close (DataCollection* self);
+static void data_collection_real_close (DataCollection* self);
+void data_collection_internal_notify_altered (DataCollection* self, DataObject* object, Alteration* alteration);
+gboolean data_set_resort_object (DataSet* self, DataObject* object, Alteration* alteration);
+gboolean data_collection_are_notifications_frozen (DataCollection* self);
+Alteration* alteration_compress (Alteration* self, Alteration* other);
+GValue* data_collection_get_property (DataCollection* self, const gchar* name);
+void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
+gboolean bool_value_equals (GValue* a, GValue* b);
+static gboolean _bool_value_equals_value_equal_func (GValue* a, GValue* b, gpointer self);
+gboolean int_value_equals (GValue* a, GValue* b);
+static gboolean _int_value_equals_value_equal_func (GValue* a, GValue* b, gpointer self);
+void data_object_notify_collection_property_set (DataObject* self, const gchar* name, GValue* old, GValue* val);
+void data_collection_clear_property (DataCollection* self, const gchar* name);
+void data_object_notify_collection_property_cleared (DataObject* self, const gchar* name);
+void data_collection_freeze_notifications (DataCollection* self);
+void data_collection_notify_frozen (DataCollection* self);
+void data_collection_thaw_notifications (DataCollection* self);
+void data_collection_notify_thawed (DataCollection* self);
+static void data_collection_real_notify_frozen (DataCollection* self);
+static void data_collection_real_notify_thawed (DataCollection* self);
+static void data_collection_real_items_added (DataCollection* self, GeeIterable* added);
+static void data_collection_real_items_removed (DataCollection* self, GeeIterable* removed);
+static void data_collection_real_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void data_collection_real_items_altered (DataCollection* self, GeeMap* items);
+static void data_collection_real_ordering_changed (DataCollection* self);
+static void data_collection_real_property_set (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+static void g_cclosure_user_marshal_VOID__STRING_BOXED_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void data_collection_real_property_cleared (DataCollection* self, const gchar* name);
+static void data_collection_real_frozen (DataCollection* self);
+static void data_collection_real_thawed (DataCollection* self);
+enum {
+ DATA_COLLECTION_MARKER_IMPL_DUMMY_PROPERTY
+};
+static void data_collection_marker_impl_on_items_removed (DataCollectionMarkerImpl* self, GeeIterable* removed);
+static void _data_collection_marker_impl_on_items_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self);
+static void data_collection_marker_impl_real_mark (Marker* base, DataObject* object);
+static void data_collection_marker_impl_real_unmark (Marker* base, DataObject* object);
+static gboolean data_collection_marker_impl_real_toggle (Marker* base, DataObject* object);
+static void data_collection_marker_impl_real_mark_many (Marker* base, GeeCollection* list);
+static void data_collection_marker_impl_real_unmark_many (Marker* base, GeeCollection* list);
+static void data_collection_marker_impl_real_mark_all (Marker* base);
+static gint data_collection_marker_impl_real_get_count (Marker* base);
+static GeeCollection* data_collection_marker_impl_real_get_all (Marker* base);
+static void data_collection_marker_impl_finalize (GObject* obj);
+static void data_collection_finalize (DataCollection* obj);
+
+
+static GValue* _g_value_dup (GValue* self) {
+#line 109 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return g_boxed_copy (G_TYPE_VALUE, self);
+#line 359 "DataCollection.c"
+}
+
+
+static void _vala_GValue_free (GValue* self) {
+#line 109 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_value_unset (self);
+#line 109 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_free (self);
+#line 368 "DataCollection.c"
+}
+
+
+DataCollection* data_collection_construct (GType object_type, const gchar* name) {
+ DataCollection* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 157 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = (DataCollection*) g_type_create_instance (object_type);
+#line 158 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = name;
+#line 158 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 158 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (self->priv->name);
+#line 158 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->name = _tmp1_;
+#line 157 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return self;
+#line 390 "DataCollection.c"
+}
+
+
+DataCollection* data_collection_new (const gchar* name) {
+#line 157 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return data_collection_construct (TYPE_DATA_COLLECTION, name);
+#line 397 "DataCollection.c"
+}
+
+
+static gchar* data_collection_real_to_string (DataCollection* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+#line 168 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->name;
+#line 168 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_collection_get_count (self);
+#line 168 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = g_strdup_printf ("%s (%d)", _tmp0_, _tmp1_);
+#line 168 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp2_;
+#line 168 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 416 "DataCollection.c"
+}
+
+
+gchar* data_collection_to_string (DataCollection* self) {
+#line 167 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 167 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->to_string (self);
+#line 425 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_items_added (DataCollection* self, GeeIterable* added) {
+ GeeIterable* _tmp0_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 173 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = added;
+#line 173 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "items-added", _tmp0_);
+#line 437 "DataCollection.c"
+}
+
+
+void data_collection_notify_items_added (DataCollection* self, GeeIterable* added) {
+#line 172 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 172 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_items_added (self, added);
+#line 446 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_items_removed (DataCollection* self, GeeIterable* removed) {
+ GeeIterable* _tmp0_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 177 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = removed;
+#line 177 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "items-removed", _tmp0_);
+#line 458 "DataCollection.c"
+}
+
+
+void data_collection_notify_items_removed (DataCollection* self, GeeIterable* removed) {
+#line 176 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 176 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_items_removed (self, removed);
+#line 467 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed) {
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 180 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 182 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = added;
+#line 182 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = removed;
+#line 182 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "contents-altered", _tmp0_, _tmp1_);
+#line 484 "DataCollection.c"
+}
+
+
+void data_collection_notify_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed) {
+#line 180 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 180 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_contents_altered (self, added, removed);
+#line 493 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_items_altered (DataCollection* self, GeeMap* items) {
+ GeeMap* _tmp0_ = NULL;
+#line 185 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 186 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = items;
+#line 186 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "items-altered", _tmp0_);
+#line 505 "DataCollection.c"
+}
+
+
+void data_collection_notify_items_altered (DataCollection* self, GeeMap* items) {
+#line 185 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 185 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_items_altered (self, items);
+#line 514 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_ordering_changed (DataCollection* self) {
+#line 190 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "ordering-changed");
+#line 521 "DataCollection.c"
+}
+
+
+void data_collection_notify_ordering_changed (DataCollection* self) {
+#line 189 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 189 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_ordering_changed (self);
+#line 530 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_property_set (DataCollection* self, const gchar* name, GValue* old, GValue* val) {
+ const gchar* _tmp0_ = NULL;
+ GValue* _tmp1_ = NULL;
+ GValue _tmp2_ = {0};
+#line 193 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (name != NULL);
+#line 193 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (val != NULL);
+#line 194 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = name;
+#line 194 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = old;
+#line 194 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = *val;
+#line 194 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "property-set", _tmp0_, _tmp1_, &_tmp2_);
+#line 550 "DataCollection.c"
+}
+
+
+void data_collection_notify_property_set (DataCollection* self, const gchar* name, GValue* old, GValue* val) {
+#line 193 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 193 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_property_set (self, name, old, val);
+#line 559 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_property_cleared (DataCollection* self, const gchar* name) {
+ const gchar* _tmp0_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (name != NULL);
+#line 198 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = name;
+#line 198 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "property-cleared", _tmp0_);
+#line 571 "DataCollection.c"
+}
+
+
+void data_collection_notify_property_cleared (DataCollection* self, const gchar* name) {
+#line 197 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 197 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_property_cleared (self, name);
+#line 580 "DataCollection.c"
+}
+
+
+GeeCollection* data_collection_get_singleton (DataObject* object) {
+ GeeCollection* result = NULL;
+ DataObject* _tmp0_ = NULL;
+ SingletonCollection* _tmp1_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), NULL);
+#line 207 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = object;
+#line 207 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = singleton_collection_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tmp0_);
+#line 207 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 207 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 598 "DataCollection.c"
+}
+
+
+GeeMap* data_collection_get_alteration_singleton (DataObject* object, Alteration* alteration) {
+ GeeMap* result = NULL;
+ GeeMap* map = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ Alteration* _tmp2_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), NULL);
+#line 210 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), NULL);
+#line 212 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_ALTERATION, (GBoxedCopyFunc) alteration_ref, alteration_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 212 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ map = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap);
+#line 213 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 213 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = alteration;
+#line 213 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_map_set (map, _tmp1_, _tmp2_);
+#line 215 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = map;
+#line 215 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 626 "DataCollection.c"
+}
+
+
+static gboolean data_collection_real_valid_type (DataCollection* self, DataObject* object) {
+ gboolean result = FALSE;
+#line 218 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 219 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = TRUE;
+#line 219 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 638 "DataCollection.c"
+}
+
+
+gboolean data_collection_valid_type (DataCollection* self, DataObject* object) {
+#line 218 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), FALSE);
+#line 218 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->valid_type (self, object);
+#line 647 "DataCollection.c"
+}
+
+
+Comparator data_collection_get_comparator (DataCollection* self, void** result_target) {
+ Comparator result = NULL;
+ DataSet* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ Comparator _tmp2_ = NULL;
+ Comparator _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+#line 222 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 223 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 223 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_set_get_comparator (_tmp0_, &_tmp1_);
+#line 223 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 223 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3__target = _tmp1_;
+#line 223 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ *result_target = _tmp3__target;
+#line 223 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp3_;
+#line 223 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 674 "DataCollection.c"
+}
+
+
+ComparatorPredicate data_collection_get_comparator_predicate (DataCollection* self, void** result_target) {
+ ComparatorPredicate result = NULL;
+ DataSet* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ ComparatorPredicate _tmp2_ = NULL;
+ ComparatorPredicate _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+#line 226 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 227 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 227 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_set_get_comparator_predicate (_tmp0_, &_tmp1_);
+#line 227 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 227 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3__target = _tmp1_;
+#line 227 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ *result_target = _tmp3__target;
+#line 227 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp3_;
+#line 227 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 701 "DataCollection.c"
+}
+
+
+static void data_collection_real_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target) {
+ DataSet* _tmp0_ = NULL;
+ Comparator _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ ComparatorPredicate _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 231 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 231 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = comparator;
+#line 231 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1__target = comparator_target;
+#line 231 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = predicate;
+#line 231 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2__target = predicate_target;
+#line 231 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_set_set_comparator (_tmp0_, _tmp1_, _tmp1__target, _tmp2_, _tmp2__target);
+#line 232 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_ordering_changed (self);
+#line 725 "DataCollection.c"
+}
+
+
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target) {
+#line 230 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 230 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->set_comparator (self, comparator, comparator_target, predicate, predicate_target);
+#line 734 "DataCollection.c"
+}
+
+
+static void data_collection_real_reset_comparator (DataCollection* self) {
+ DataSet* _tmp0_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 237 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_set_reset_comparator (_tmp0_);
+#line 238 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_ordering_changed (self);
+#line 746 "DataCollection.c"
+}
+
+
+void data_collection_reset_comparator (DataCollection* self) {
+#line 236 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 236 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->reset_comparator (self);
+#line 755 "DataCollection.c"
+}
+
+
+static GeeCollection* data_collection_real_get_all (DataCollection* self) {
+ GeeCollection* result = NULL;
+ DataSet* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 242 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_set_get_all (_tmp0_);
+#line 242 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 242 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 771 "DataCollection.c"
+}
+
+
+GeeCollection* data_collection_get_all (DataCollection* self) {
+#line 241 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 241 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->get_all (self);
+#line 780 "DataCollection.c"
+}
+
+
+DataSet* data_collection_get_dataset_copy (DataCollection* self) {
+ DataSet* result = NULL;
+ DataSet* _tmp0_ = NULL;
+ DataSet* _tmp1_ = NULL;
+#line 245 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 246 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 246 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_set_copy (_tmp0_);
+#line 246 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp1_;
+#line 246 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 798 "DataCollection.c"
+}
+
+
+static gint data_collection_real_get_count (DataCollection* self) {
+ gint result = 0;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 250 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 250 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_set_get_count (_tmp0_);
+#line 250 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp1_;
+#line 250 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 814 "DataCollection.c"
+}
+
+
+gint data_collection_get_count (DataCollection* self) {
+#line 249 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), 0);
+#line 249 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->get_count (self);
+#line 823 "DataCollection.c"
+}
+
+
+static DataObject* data_collection_real_get_at (DataCollection* self, gint index) {
+ DataObject* result = NULL;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ DataObject* _tmp2_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 254 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = index;
+#line 254 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_set_get_at (_tmp0_, _tmp1_);
+#line 254 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp2_;
+#line 254 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 842 "DataCollection.c"
+}
+
+
+DataObject* data_collection_get_at (DataCollection* self, gint index) {
+#line 253 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 253 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->get_at (self, index);
+#line 851 "DataCollection.c"
+}
+
+
+static gint data_collection_real_index_of (DataCollection* self, DataObject* object) {
+ gint result = 0;
+ DataSet* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 257 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), 0);
+#line 258 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 258 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 258 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_set_index_of (_tmp0_, _tmp1_);
+#line 258 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp2_;
+#line 258 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 872 "DataCollection.c"
+}
+
+
+gint data_collection_index_of (DataCollection* self, DataObject* object) {
+#line 257 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), 0);
+#line 257 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->index_of (self, object);
+#line 881 "DataCollection.c"
+}
+
+
+static gboolean data_collection_real_contains (DataCollection* self, DataObject* object) {
+ gboolean result = FALSE;
+ DataObject* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 261 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 262 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = object;
+#line 262 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_collection_internal_contains (self, _tmp0_);
+#line 262 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp1_;
+#line 262 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 899 "DataCollection.c"
+}
+
+
+gboolean data_collection_contains (DataCollection* self, DataObject* object) {
+#line 261 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), FALSE);
+#line 261 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->contains (self, object);
+#line 908 "DataCollection.c"
+}
+
+
+static gboolean data_collection_internal_contains (DataCollection* self, DataObject* object) {
+ gboolean result = FALSE;
+ DataSet* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ DataObject* _tmp3_ = NULL;
+ DataCollection* _tmp4_ = NULL;
+ DataCollection* _tmp5_ = NULL;
+#line 267 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), FALSE);
+#line 267 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 268 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 268 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 268 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_set_contains (_tmp0_, _tmp1_);
+#line 268 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp2_) {
+#line 269 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = FALSE;
+#line 269 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 936 "DataCollection.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = object;
+#line 271 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = data_object_get_membership (_tmp3_);
+#line 271 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 271 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp5_ == self, "object.get_membership() == this");
+#line 271 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 273 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = TRUE;
+#line 273 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 952 "DataCollection.c"
+}
+
+
+static void data_collection_internal_add (DataCollection* self, DataObject* object) {
+ DataObject* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ DataObject* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+ gboolean added = FALSE;
+ DataSet* _tmp4_ = NULL;
+ DataObject* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 276 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 276 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_OBJECT (object));
+#line 277 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = object;
+#line 277 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_collection_valid_type (self, _tmp0_);
+#line 277 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp1_, "valid_type(object)");
+#line 279 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = object;
+#line 279 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = self->priv->object_ordinal_generator;
+#line 279 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->object_ordinal_generator = _tmp3_ + 1;
+#line 279 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_internal_set_membership (_tmp2_, self, _tmp3_);
+#line 281 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = self->priv->dataset;
+#line 281 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = object;
+#line 281 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = data_set_add (_tmp4_, _tmp5_);
+#line 281 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ added = _tmp6_;
+#line 282 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (added, "added");
+#line 993 "DataCollection.c"
+}
+
+
+static void data_collection_internal_add_many (DataCollection* self, GeeList* objects, ProgressMonitor monitor, void* monitor_target) {
+ gint count = 0;
+ GeeList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean added = FALSE;
+ DataSet* _tmp18_ = NULL;
+ GeeList* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 285 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 285 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_LIST (objects));
+#line 286 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = objects;
+#line 286 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 286 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 286 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ count = _tmp2_;
+#line 1018 "DataCollection.c"
+ {
+ gint ctr = 0;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = 0;
+#line 1023 "DataCollection.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = TRUE;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 1030 "DataCollection.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ DataObject* object = NULL;
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gpointer _tmp9_ = NULL;
+ DataObject* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ DataObject* _tmp12_ = NULL;
+ gint64 _tmp13_ = 0LL;
+ ProgressMonitor _tmp14_ = NULL;
+ void* _tmp14__target = NULL;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp3_) {
+#line 1045 "DataCollection.c"
+ gint _tmp4_ = 0;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = ctr;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = _tmp4_ + 1;
+#line 1051 "DataCollection.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = FALSE;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = ctr;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = count;
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!(_tmp5_ < _tmp6_)) {
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1063 "DataCollection.c"
+ }
+#line 288 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = objects;
+#line 288 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = ctr;
+#line 288 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = gee_list_get (_tmp7_, _tmp8_);
+#line 288 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp9_;
+#line 289 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = object;
+#line 289 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = data_collection_valid_type (self, _tmp10_);
+#line 289 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp11_, "valid_type(object)");
+#line 291 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = object;
+#line 291 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = self->priv->object_ordinal_generator;
+#line 291 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->object_ordinal_generator = _tmp13_ + 1;
+#line 291 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_internal_set_membership (_tmp12_, self, _tmp13_);
+#line 293 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = monitor;
+#line 293 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14__target = monitor_target;
+#line 293 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp14_ != NULL) {
+#line 1093 "DataCollection.c"
+ ProgressMonitor _tmp15_ = NULL;
+ void* _tmp15__target = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 294 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ = monitor;
+#line 294 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15__target = monitor_target;
+#line 294 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp16_ = ctr;
+#line 294 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp17_ = count;
+#line 294 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ ((guint64) _tmp16_, (guint64) _tmp17_, TRUE, _tmp15__target);
+#line 1108 "DataCollection.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 1112 "DataCollection.c"
+ }
+ }
+ }
+#line 297 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp18_ = self->priv->dataset;
+#line 297 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp19_ = objects;
+#line 297 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = data_set_add_many (_tmp18_, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 297 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ added = _tmp20_;
+#line 298 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (added, "added");
+#line 1126 "DataCollection.c"
+}
+
+
+static void data_collection_internal_remove (DataCollection* self, DataObject* object) {
+ gboolean removed = FALSE;
+ DataSet* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ DataObject* _tmp3_ = NULL;
+#line 301 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 301 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_OBJECT (object));
+#line 302 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 302 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 302 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_set_remove (_tmp0_, _tmp1_);
+#line 302 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ removed = _tmp2_;
+#line 303 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (removed, "removed");
+#line 305 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = object;
+#line 305 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_internal_clear_membership (_tmp3_);
+#line 1154 "DataCollection.c"
+}
+
+
+static gboolean data_collection_real_add (DataCollection* self, DataObject* object) {
+ gboolean result = FALSE;
+ DataObject* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ DataObject* _tmp7_ = NULL;
+ GeeCollection* added = NULL;
+ DataObject* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ DataObject* _tmp12_ = NULL;
+#line 309 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 310 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = object;
+#line 310 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_collection_internal_contains (self, _tmp0_);
+#line 310 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp1_) {
+#line 1177 "DataCollection.c"
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ DataObject* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_collection_to_string (self);
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = object;
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = data_object_to_string (_tmp4_);
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = _tmp5_;
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_debug ("DataCollection.vala:311: %s cannot add %s: already present", _tmp3_, _tmp6_);
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (_tmp6_);
+#line 311 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (_tmp3_);
+#line 313 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = FALSE;
+#line 313 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 1203 "DataCollection.c"
+ }
+#line 316 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = object;
+#line 316 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_internal_add (self, _tmp7_);
+#line 319 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = object;
+#line 319 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = data_collection_get_singleton (_tmp8_);
+#line 319 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ added = _tmp9_;
+#line 320 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = added;
+#line 320 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_items_added (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 321 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = added;
+#line 321 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_contents_altered (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable), NULL);
+#line 324 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = object;
+#line 324 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_notify_membership_changed (_tmp12_, self);
+#line 326 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = TRUE;
+#line 326 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (added);
+#line 326 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 1233 "DataCollection.c"
+}
+
+
+gboolean data_collection_add (DataCollection* self, DataObject* object) {
+#line 309 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), FALSE);
+#line 309 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->add (self, object);
+#line 1242 "DataCollection.c"
+}
+
+
+static GeeCollection* data_collection_real_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target) {
+ GeeCollection* result = NULL;
+ GeeArrayList* added = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint count = 0;
+ GeeArrayList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GeeArrayList* _tmp20_ = NULL;
+ ProgressMonitor _tmp21_ = NULL;
+ void* _tmp21__target = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+#line 330 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (objects), NULL);
+#line 332 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 332 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ added = _tmp0_;
+#line 1266 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = objects;
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp2_;
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 1279 "DataCollection.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GeeArrayList* _tmp14_ = NULL;
+ DataObject* _tmp15_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = _object_it;
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp4_) {
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1297 "DataCollection.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = _object_it;
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp6_;
+#line 334 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = object;
+#line 334 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = data_collection_internal_contains (self, _tmp7_);
+#line 334 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp8_) {
+#line 1311 "DataCollection.c"
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = data_collection_to_string (self);
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = _tmp9_;
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = object;
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = data_object_to_string (_tmp11_);
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = _tmp12_;
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_debug ("DataCollection.vala:335: %s cannot add %s: already present", _tmp10_, _tmp13_);
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (_tmp13_);
+#line 335 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (_tmp10_);
+#line 337 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 337 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ continue;
+#line 1337 "DataCollection.c"
+ }
+#line 340 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = added;
+#line 340 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ = object;
+#line 340 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 1347 "DataCollection.c"
+ }
+#line 333 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 1351 "DataCollection.c"
+ }
+#line 343 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp16_ = added;
+#line 343 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp17_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 343 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp18_ = _tmp17_;
+#line 343 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ count = _tmp18_;
+#line 344 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp19_ = count;
+#line 344 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp19_ == 0) {
+#line 345 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (added, GEE_TYPE_COLLECTION, GeeCollection);
+#line 345 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 1369 "DataCollection.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = added;
+#line 347 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21_ = monitor;
+#line 347 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21__target = monitor_target;
+#line 347 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_internal_add_many (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_LIST, GeeList), _tmp21_, _tmp21__target);
+#line 350 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp22_ = added;
+#line 350 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_items_added (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 351 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp23_ = added;
+#line 351 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_contents_altered (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ITERABLE, GeeIterable), NULL);
+#line 1387 "DataCollection.c"
+ {
+ gint ctr = 0;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = 0;
+#line 1392 "DataCollection.c"
+ {
+ gboolean _tmp24_ = FALSE;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp24_ = TRUE;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 1399 "DataCollection.c"
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ GeeArrayList* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gpointer _tmp30_ = NULL;
+ DataObject* _tmp31_ = NULL;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp24_) {
+#line 1408 "DataCollection.c"
+ gint _tmp25_ = 0;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp25_ = ctr;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = _tmp25_ + 1;
+#line 1414 "DataCollection.c"
+ }
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp24_ = FALSE;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp26_ = ctr;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp27_ = count;
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!(_tmp26_ < _tmp27_)) {
+#line 354 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1426 "DataCollection.c"
+ }
+#line 355 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp28_ = added;
+#line 355 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp29_ = ctr;
+#line 355 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp30_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp29_);
+#line 355 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp31_ = (DataObject*) _tmp30_;
+#line 355 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_notify_membership_changed (_tmp31_, self);
+#line 355 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_tmp31_);
+#line 1440 "DataCollection.c"
+ }
+ }
+ }
+#line 357 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (added, GEE_TYPE_COLLECTION, GeeCollection);
+#line 357 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 1448 "DataCollection.c"
+}
+
+
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target) {
+#line 330 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 330 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return DATA_COLLECTION_GET_CLASS (self)->add_many (self, objects, monitor, monitor_target);
+#line 1457 "DataCollection.c"
+}
+
+
+Marker* data_collection_start_marking (DataCollection* self) {
+ Marker* result = NULL;
+ DataCollectionMarkerImpl* _tmp0_ = NULL;
+#line 361 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 362 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = data_collection_marker_impl_new (self);
+#line 362 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MARKER, Marker);
+#line 362 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 1472 "DataCollection.c"
+}
+
+
+Marker* data_collection_mark (DataCollection* self, DataObject* object) {
+ Marker* result = NULL;
+ Marker* marker = NULL;
+ DataCollectionMarkerImpl* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+#line 366 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 366 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), NULL);
+#line 367 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = data_collection_marker_impl_new (self);
+#line 367 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ marker = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MARKER, Marker);
+#line 368 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 368 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ marker_mark (marker, _tmp1_);
+#line 370 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = marker;
+#line 370 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 1497 "DataCollection.c"
+}
+
+
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects) {
+ Marker* result = NULL;
+ Marker* marker = NULL;
+ DataCollectionMarkerImpl* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 374 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 374 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (objects), NULL);
+#line 375 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = data_collection_marker_impl_new (self);
+#line 375 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ marker = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MARKER, Marker);
+#line 376 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = objects;
+#line 376 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ marker_mark_many (marker, _tmp1_);
+#line 378 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = marker;
+#line 378 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 1522 "DataCollection.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 385 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1529 "DataCollection.c"
+}
+
+
+void data_collection_act_on_marked (DataCollection* self, Marker* m, MarkedAction action, void* action_target, ProgressMonitor monitor, void* monitor_target, GObject* user) {
+ DataCollectionMarkerImpl* marker = NULL;
+ Marker* _tmp0_ = NULL;
+ DataCollectionMarkerImpl* _tmp1_ = NULL;
+ DataCollectionMarkerImpl* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataCollectionMarkerImpl* _tmp4_ = NULL;
+ guint64 count = 0ULL;
+ guint64 total = 0ULL;
+ DataCollectionMarkerImpl* _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ DataCollectionMarkerImpl* _tmp31_ = NULL;
+#line 383 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 383 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_MARKER (m));
+#line 383 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail ((user == NULL) || G_IS_OBJECT (user));
+#line 385 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = m;
+#line 385 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl));
+#line 385 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ marker = _tmp1_;
+#line 387 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = marker;
+#line 387 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = data_collection_marker_impl_is_valid (_tmp2_, self);
+#line 387 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp3_, "marker.is_valid(this)");
+#line 390 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = marker;
+#line 390 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_marker_impl_freeze (_tmp4_);
+#line 392 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ count = (guint64) 0;
+#line 393 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = marker;
+#line 393 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = _tmp5_->marked;
+#line 393 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 393 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = _tmp7_;
+#line 393 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ total = (guint64) _tmp8_;
+#line 1581 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ DataCollectionMarkerImpl* _tmp9_ = NULL;
+ GeeHashSet* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = marker;
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = _tmp9_->marked;
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp11_;
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 1597 "DataCollection.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ DataObject* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ MarkedAction _tmp21_ = NULL;
+ void* _tmp21__target = NULL;
+ DataObject* _tmp22_ = NULL;
+ GObject* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ ProgressMonitor _tmp25_ = NULL;
+ void* _tmp25__target = NULL;
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = _object_it;
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp13_) {
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1620 "DataCollection.c"
+ }
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = _object_it;
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp15_;
+#line 398 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp16_ = object;
+#line 398 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp17_ = data_collection_internal_contains (self, _tmp16_);
+#line 398 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp17_) {
+#line 1634 "DataCollection.c"
+ DataObject* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 399 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp18_ = object;
+#line 399 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp19_ = data_object_to_string (_tmp18_);
+#line 399 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = _tmp19_;
+#line 399 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_warning ("DataCollection.vala:399: act_on_marked: marker holding ref to unknown " \
+"%s", _tmp20_);
+#line 399 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (_tmp20_);
+#line 401 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 401 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ continue;
+#line 1652 "DataCollection.c"
+ }
+#line 404 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21_ = action;
+#line 404 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21__target = action_target;
+#line 404 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp22_ = object;
+#line 404 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp23_ = user;
+#line 404 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp24_ = _tmp21_ (_tmp22_, _tmp23_, _tmp21__target);
+#line 404 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp24_) {
+#line 405 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 405 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1670 "DataCollection.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp25_ = monitor;
+#line 407 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp25__target = monitor_target;
+#line 407 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp25_ != NULL) {
+#line 1678 "DataCollection.c"
+ ProgressMonitor _tmp26_ = NULL;
+ void* _tmp26__target = NULL;
+ guint64 _tmp27_ = 0ULL;
+ guint64 _tmp28_ = 0ULL;
+ guint64 _tmp29_ = 0ULL;
+ gboolean _tmp30_ = FALSE;
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp26_ = monitor;
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp26__target = monitor_target;
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp27_ = count;
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ count = _tmp27_ + 1;
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp28_ = count;
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp29_ = total;
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp30_ = _tmp26_ (_tmp28_, _tmp29_, TRUE, _tmp26__target);
+#line 408 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp30_) {
+#line 409 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 409 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1705 "DataCollection.c"
+ }
+ }
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 1710 "DataCollection.c"
+ }
+#line 396 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 1714 "DataCollection.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp31_ = marker;
+#line 414 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_marker_impl_finished (_tmp31_);
+#line 383 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (marker);
+#line 1722 "DataCollection.c"
+}
+
+
+static void data_collection_real_remove_marked (DataCollection* self, Marker* m) {
+ DataCollectionMarkerImpl* marker = NULL;
+ Marker* _tmp0_ = NULL;
+ DataCollectionMarkerImpl* _tmp1_ = NULL;
+ DataCollectionMarkerImpl* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataCollectionMarkerImpl* _tmp4_ = NULL;
+ GeeArrayList* skipped = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ DataCollectionMarkerImpl* _tmp26_ = NULL;
+ GeeHashSet* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ DataCollectionMarkerImpl* _tmp42_ = NULL;
+#line 419 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_MARKER (m));
+#line 420 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = m;
+#line 420 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl));
+#line 420 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ marker = _tmp1_;
+#line 422 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = marker;
+#line 422 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = data_collection_marker_impl_is_valid (_tmp2_, self);
+#line 422 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp3_, "marker.is_valid(this)");
+#line 425 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = marker;
+#line 425 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_marker_impl_freeze (_tmp4_);
+#line 428 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ skipped = NULL;
+#line 1760 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ DataCollectionMarkerImpl* _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = marker;
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = _tmp5_->marked;
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp7_;
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 1776 "DataCollection.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ DataObject* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ DataObject* _tmp21_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = _object_it;
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp9_) {
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1793 "DataCollection.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = _object_it;
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp11_;
+#line 431 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = object;
+#line 431 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = data_collection_internal_contains (self, _tmp12_);
+#line 431 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp13_) {
+#line 1807 "DataCollection.c"
+ DataObject* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GeeArrayList* _tmp17_ = NULL;
+ GeeArrayList* _tmp19_ = NULL;
+ DataObject* _tmp20_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = object;
+#line 432 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ = data_object_to_string (_tmp14_);
+#line 432 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp16_ = _tmp15_;
+#line 432 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_warning ("DataCollection.vala:432: remove_marked: marker holding ref to unknown " \
+"%s", _tmp16_);
+#line 432 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (_tmp16_);
+#line 434 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp17_ = skipped;
+#line 434 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp17_ == NULL) {
+#line 1828 "DataCollection.c"
+ GeeArrayList* _tmp18_ = NULL;
+#line 435 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp18_ = gee_array_list_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 435 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (skipped);
+#line 435 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ skipped = _tmp18_;
+#line 1836 "DataCollection.c"
+ }
+#line 437 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp19_ = skipped;
+#line 437 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = object;
+#line 437 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp20_);
+#line 439 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 439 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ continue;
+#line 1848 "DataCollection.c"
+ }
+#line 442 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21_ = object;
+#line 442 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_internal_remove (self, _tmp21_);
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 1856 "DataCollection.c"
+ }
+#line 429 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 1860 "DataCollection.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp22_ = skipped;
+#line 445 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp22_ != NULL) {
+#line 1866 "DataCollection.c"
+ DataCollectionMarkerImpl* _tmp23_ = NULL;
+ GeeHashSet* _tmp24_ = NULL;
+ GeeArrayList* _tmp25_ = NULL;
+#line 446 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp23_ = marker;
+#line 446 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp24_ = _tmp23_->marked;
+#line 446 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp25_ = skipped;
+#line 446 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1878 "DataCollection.c"
+ }
+#line 449 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp26_ = marker;
+#line 449 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp27_ = _tmp26_->marked;
+#line 449 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp28_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 449 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp29_ = _tmp28_;
+#line 449 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp29_ > 0) {
+#line 1890 "DataCollection.c"
+ DataCollectionMarkerImpl* _tmp30_ = NULL;
+ GeeHashSet* _tmp31_ = NULL;
+ DataCollectionMarkerImpl* _tmp32_ = NULL;
+ GeeHashSet* _tmp33_ = NULL;
+#line 450 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp30_ = marker;
+#line 450 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp31_ = _tmp30_->marked;
+#line 450 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_items_removed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 451 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp32_ = marker;
+#line 451 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp33_ = _tmp32_->marked;
+#line 451 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_contents_altered (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1907 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ DataCollectionMarkerImpl* _tmp34_ = NULL;
+ GeeHashSet* _tmp35_ = NULL;
+ GeeIterator* _tmp36_ = NULL;
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp34_ = marker;
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp35_ = _tmp34_->marked;
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp36_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp36_;
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 1923 "DataCollection.c"
+ GeeIterator* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp39_ = NULL;
+ gpointer _tmp40_ = NULL;
+ DataObject* _tmp41_ = NULL;
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp37_ = _object_it;
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp38_ = gee_iterator_next (_tmp37_);
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp38_) {
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 1938 "DataCollection.c"
+ }
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp39_ = _object_it;
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp40_ = gee_iterator_get (_tmp39_);
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp40_;
+#line 455 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp41_ = object;
+#line 455 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_notify_membership_changed (_tmp41_, NULL);
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 1952 "DataCollection.c"
+ }
+#line 454 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 1956 "DataCollection.c"
+ }
+ }
+#line 459 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp42_ = marker;
+#line 459 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_marker_impl_finished (_tmp42_);
+#line 419 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (skipped);
+#line 419 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (marker);
+#line 1967 "DataCollection.c"
+}
+
+
+void data_collection_remove_marked (DataCollection* self, Marker* m) {
+#line 419 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 419 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->remove_marked (self, m);
+#line 1976 "DataCollection.c"
+}
+
+
+static void data_collection_real_clear (DataCollection* self) {
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ GeeArrayList* removed = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+#line 463 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->dataset;
+#line 463 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_set_get_count (_tmp0_);
+#line 463 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp1_ == 0) {
+#line 464 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return;
+#line 1995 "DataCollection.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = gee_array_list_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 468 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ removed = _tmp2_;
+#line 2001 "DataCollection.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 469 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = TRUE;
+#line 469 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 2008 "DataCollection.c"
+ DataObject* object = NULL;
+ DataSet* _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+ DataObject* _tmp8_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ DataObject* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+#line 469 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp3_) {
+#line 2018 "DataCollection.c"
+ DataSet* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 475 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = self->priv->dataset;
+#line 475 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = data_set_get_count (_tmp4_);
+#line 475 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!(_tmp5_ > 0)) {
+#line 475 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 2029 "DataCollection.c"
+ }
+ }
+#line 469 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = FALSE;
+#line 470 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = self->priv->dataset;
+#line 470 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = data_set_get_at (_tmp6_, 0);
+#line 470 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = _tmp7_;
+#line 471 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = object;
+#line 471 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp8_ != NULL, "object != null");
+#line 473 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = removed;
+#line 473 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = object;
+#line 473 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 474 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = object;
+#line 474 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_internal_remove (self, _tmp11_);
+#line 469 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 2056 "DataCollection.c"
+ }
+ }
+#line 478 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = removed;
+#line 478 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_items_removed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 479 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = removed;
+#line 479 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_contents_altered (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 2067 "DataCollection.c"
+ {
+ GeeArrayList* _object_list = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _object_size = 0;
+ GeeArrayList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _object_index = 0;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = removed;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_list = _tmp15_;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp16_ = _object_list;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp17_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp18_ = _tmp17_;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_size = _tmp18_;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_index = -1;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 2095 "DataCollection.c"
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ DataObject* object = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gpointer _tmp24_ = NULL;
+ DataObject* _tmp25_ = NULL;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp19_ = _object_index;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_index = _tmp19_ + 1;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = _object_index;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21_ = _object_size;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!(_tmp20_ < _tmp21_)) {
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 2116 "DataCollection.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp22_ = _object_list;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp23_ = _object_index;
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp24_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp23_);
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp24_;
+#line 483 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp25_ = object;
+#line 483 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_notify_membership_changed (_tmp25_, NULL);
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 2132 "DataCollection.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_list);
+#line 2136 "DataCollection.c"
+ }
+#line 462 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (removed);
+#line 2140 "DataCollection.c"
+}
+
+
+void data_collection_clear (DataCollection* self) {
+#line 462 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 462 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->clear (self);
+#line 2149 "DataCollection.c"
+}
+
+
+static void data_collection_real_close (DataCollection* self) {
+#line 493 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_clear (self);
+#line 2156 "DataCollection.c"
+}
+
+
+void data_collection_close (DataCollection* self) {
+#line 492 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 492 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->close (self);
+#line 2165 "DataCollection.c"
+}
+
+
+static gpointer _alteration_ref0 (gpointer self) {
+#line 513 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return self ? alteration_ref (self) : NULL;
+#line 2172 "DataCollection.c"
+}
+
+
+void data_collection_internal_notify_altered (DataCollection* self, DataObject* object, Alteration* alteration) {
+ DataObject* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean resort_occurred = FALSE;
+ DataSet* _tmp2_ = NULL;
+ DataObject* _tmp3_ = NULL;
+ Alteration* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ DataObject* _tmp25_ = NULL;
+ Alteration* _tmp26_ = NULL;
+ GeeMap* _tmp27_ = NULL;
+ GeeMap* _tmp28_ = NULL;
+#line 498 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 498 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_OBJECT (object));
+#line 498 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 499 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = object;
+#line 499 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_collection_internal_contains (self, _tmp0_);
+#line 499 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp1_, "internal_contains(object)");
+#line 501 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = self->priv->dataset;
+#line 501 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = object;
+#line 501 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = alteration;
+#line 501 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = data_set_resort_object (_tmp2_, _tmp3_, _tmp4_);
+#line 501 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ resort_occurred = _tmp5_;
+#line 503 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = data_collection_are_notifications_frozen (self);
+#line 503 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp6_) {
+#line 2216 "DataCollection.c"
+ GeeHashMap* _tmp7_ = NULL;
+ Alteration* current = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ DataObject* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ Alteration* _tmp12_ = NULL;
+ GeeHashMap* _tmp18_ = NULL;
+ DataObject* _tmp19_ = NULL;
+ Alteration* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+#line 504 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = self->priv->frozen_items_altered;
+#line 504 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp7_ == NULL) {
+#line 2232 "DataCollection.c"
+ GeeHashMap* _tmp8_ = NULL;
+#line 505 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = gee_hash_map_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_ALTERATION, (GBoxedCopyFunc) alteration_ref, alteration_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 505 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (self->priv->frozen_items_altered);
+#line 505 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->frozen_items_altered = _tmp8_;
+#line 2240 "DataCollection.c"
+ }
+#line 509 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = self->priv->frozen_items_altered;
+#line 509 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = object;
+#line 509 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_);
+#line 509 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ current = (Alteration*) _tmp11_;
+#line 510 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = current;
+#line 510 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp12_ != NULL) {
+#line 2254 "DataCollection.c"
+ Alteration* _tmp13_ = NULL;
+ Alteration* _tmp14_ = NULL;
+ Alteration* _tmp15_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = current;
+#line 511 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = alteration;
+#line 511 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ = alteration_compress (_tmp13_, _tmp14_);
+#line 511 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _alteration_unref0 (current);
+#line 511 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ current = _tmp15_;
+#line 2268 "DataCollection.c"
+ } else {
+ Alteration* _tmp16_ = NULL;
+ Alteration* _tmp17_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp16_ = alteration;
+#line 513 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp17_ = _alteration_ref0 (_tmp16_);
+#line 513 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _alteration_unref0 (current);
+#line 513 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ current = _tmp17_;
+#line 2280 "DataCollection.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp18_ = self->priv->frozen_items_altered;
+#line 515 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp19_ = object;
+#line 515 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = current;
+#line 515 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp19_, _tmp20_);
+#line 517 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp22_ = self->priv->fire_ordering_changed;
+#line 517 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp22_) {
+#line 517 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21_ = TRUE;
+#line 2296 "DataCollection.c"
+ } else {
+ gboolean _tmp23_ = FALSE;
+#line 517 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp23_ = resort_occurred;
+#line 517 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21_ = _tmp23_;
+#line 2303 "DataCollection.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->fire_ordering_changed = _tmp21_;
+#line 519 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _alteration_unref0 (current);
+#line 519 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return;
+#line 2311 "DataCollection.c"
+ }
+#line 522 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp24_ = resort_occurred;
+#line 522 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp24_) {
+#line 523 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_ordering_changed (self);
+#line 2319 "DataCollection.c"
+ }
+#line 525 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp25_ = object;
+#line 525 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp26_ = alteration;
+#line 525 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp27_ = data_collection_get_alteration_singleton (_tmp25_, _tmp26_);
+#line 525 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp28_ = _tmp27_;
+#line 525 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_items_altered (self, _tmp28_);
+#line 525 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_tmp28_);
+#line 2333 "DataCollection.c"
+}
+
+
+GValue* data_collection_get_property (DataCollection* self, const gchar* name) {
+ GValue* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), NULL);
+#line 528 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 529 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->properties;
+#line 529 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = name;
+#line 529 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 529 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = (GValue*) _tmp2_;
+#line 529 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 2356 "DataCollection.c"
+}
+
+
+static gboolean _bool_value_equals_value_equal_func (GValue* a, GValue* b, gpointer self) {
+ gboolean result;
+ result = bool_value_equals (a, b);
+#line 535 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 2365 "DataCollection.c"
+}
+
+
+static gboolean _int_value_equals_value_equal_func (GValue* a, GValue* b, gpointer self) {
+ gboolean result;
+ result = int_value_equals (a, b);
+#line 537 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 2374 "DataCollection.c"
+}
+
+
+void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target) {
+ ValueEqualFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ GValue* old = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GValue* _tmp6_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GValue _tmp14_ = {0};
+ const gchar* _tmp15_ = NULL;
+ GValue* _tmp16_ = NULL;
+ GValue _tmp17_ = {0};
+ gint count = 0;
+ DataSet* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+#line 532 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 532 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (name != NULL);
+#line 532 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (val != NULL);
+#line 533 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = value_equals;
+#line 533 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0__target = value_equals_target;
+#line 533 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp0_ == NULL) {
+#line 2407 "DataCollection.c"
+ gboolean _tmp1_ = FALSE;
+#line 534 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = G_VALUE_HOLDS (val, G_TYPE_BOOLEAN);
+#line 534 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp1_) {
+#line 535 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value_equals = _bool_value_equals_value_equal_func;
+#line 535 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value_equals_target = NULL;
+#line 2417 "DataCollection.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 536 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = G_VALUE_HOLDS (val, G_TYPE_INT);
+#line 536 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp2_) {
+#line 537 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value_equals = _int_value_equals_value_equal_func;
+#line 537 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value_equals_target = NULL;
+#line 2428 "DataCollection.c"
+ } else {
+#line 539 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_error ("DataCollection.vala:539: value_equals must be specified for this type");
+#line 2432 "DataCollection.c"
+ }
+ }
+ }
+#line 542 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = self->priv->properties;
+#line 542 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = name;
+#line 542 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 542 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ old = (GValue*) _tmp5_;
+#line 543 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = old;
+#line 543 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp6_ != NULL) {
+#line 2448 "DataCollection.c"
+ ValueEqualFunc _tmp7_ = NULL;
+ void* _tmp7__target = NULL;
+ GValue* _tmp8_ = NULL;
+ GValue _tmp9_ = {0};
+ GValue _tmp10_ = {0};
+ gboolean _tmp11_ = FALSE;
+#line 544 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = value_equals;
+#line 544 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7__target = value_equals_target;
+#line 544 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = old;
+#line 544 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = *val;
+#line 544 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = *_tmp8_;
+#line 544 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = _tmp7_ (&_tmp10_, &_tmp9_, _tmp7__target);
+#line 544 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp11_) {
+#line 545 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ __vala_GValue_free0 (old);
+#line 545 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return;
+#line 2473 "DataCollection.c"
+ }
+ }
+#line 548 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = self->priv->properties;
+#line 548 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = name;
+#line 548 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = *val;
+#line 548 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_, &_tmp14_);
+#line 550 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp15_ = name;
+#line 550 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp16_ = old;
+#line 550 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp17_ = *val;
+#line 550 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_property_set (self, _tmp15_, _tmp16_, &_tmp17_);
+#line 553 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp18_ = self->priv->dataset;
+#line 553 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp19_ = data_set_get_count (_tmp18_);
+#line 553 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ count = _tmp19_;
+#line 2498 "DataCollection.c"
+ {
+ gint ctr = 0;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = 0;
+#line 2503 "DataCollection.c"
+ {
+ gboolean _tmp20_ = FALSE;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = TRUE;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 2510 "DataCollection.c"
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ DataSet* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ DataObject* _tmp26_ = NULL;
+ DataObject* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GValue* _tmp29_ = NULL;
+ GValue _tmp30_ = {0};
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp20_) {
+#line 2522 "DataCollection.c"
+ gint _tmp21_ = 0;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp21_ = ctr;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = _tmp21_ + 1;
+#line 2528 "DataCollection.c"
+ }
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp20_ = FALSE;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp22_ = ctr;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp23_ = count;
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!(_tmp22_ < _tmp23_)) {
+#line 554 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 2540 "DataCollection.c"
+ }
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp24_ = self->priv->dataset;
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp25_ = ctr;
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp26_ = data_set_get_at (_tmp24_, _tmp25_);
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp27_ = _tmp26_;
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp28_ = name;
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp29_ = old;
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp30_ = *val;
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_notify_collection_property_set (_tmp27_, _tmp28_, _tmp29_, &_tmp30_);
+#line 555 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_tmp27_);
+#line 2560 "DataCollection.c"
+ }
+ }
+ }
+#line 532 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ __vala_GValue_free0 (old);
+#line 2566 "DataCollection.c"
+}
+
+
+void data_collection_clear_property (DataCollection* self, const gchar* name) {
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ gint count = 0;
+ DataSet* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 558 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 558 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (name != NULL);
+#line 559 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->properties;
+#line 559 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = name;
+#line 559 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_, NULL);
+#line 559 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp2_) {
+#line 560 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return;
+#line 2592 "DataCollection.c"
+ }
+#line 563 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = name;
+#line 563 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_property_cleared (self, _tmp3_);
+#line 566 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = self->priv->dataset;
+#line 566 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = data_set_get_count (_tmp4_);
+#line 566 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ count = _tmp5_;
+#line 2604 "DataCollection.c"
+ {
+ gint ctr = 0;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = 0;
+#line 2609 "DataCollection.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = TRUE;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 2616 "DataCollection.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ DataSet* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ DataObject* _tmp12_ = NULL;
+ DataObject* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp6_) {
+#line 2626 "DataCollection.c"
+ gint _tmp7_ = 0;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = ctr;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ctr = _tmp7_ + 1;
+#line 2632 "DataCollection.c"
+ }
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = FALSE;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = ctr;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = count;
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 567 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 2644 "DataCollection.c"
+ }
+#line 568 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = self->priv->dataset;
+#line 568 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = ctr;
+#line 568 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = data_set_get_at (_tmp10_, _tmp11_);
+#line 568 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp13_ = _tmp12_;
+#line 568 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp14_ = name;
+#line 568 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_object_notify_collection_property_cleared (_tmp13_, _tmp14_);
+#line 568 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_tmp13_);
+#line 2660 "DataCollection.c"
+ }
+ }
+ }
+}
+
+
+void data_collection_freeze_notifications (DataCollection* self) {
+ gint _tmp0_ = 0;
+#line 581 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 582 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->notifies_frozen;
+#line 582 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->notifies_frozen = _tmp0_ + 1;
+#line 582 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp0_ == 0) {
+#line 583 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_frozen (self);
+#line 2679 "DataCollection.c"
+ }
+}
+
+
+void data_collection_thaw_notifications (DataCollection* self) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 586 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 587 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->notifies_frozen;
+#line 587 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp0_ == 0) {
+#line 588 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return;
+#line 2696 "DataCollection.c"
+ }
+#line 590 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = self->priv->notifies_frozen;
+#line 590 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->notifies_frozen = _tmp1_ - 1;
+#line 590 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = self->priv->notifies_frozen;
+#line 590 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp2_ == 0) {
+#line 591 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_thawed (self);
+#line 2708 "DataCollection.c"
+ }
+}
+
+
+gboolean data_collection_are_notifications_frozen (DataCollection* self) {
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+#line 594 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (self), FALSE);
+#line 595 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->notifies_frozen;
+#line 595 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp0_ > 0;
+#line 595 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 2724 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_frozen (DataCollection* self) {
+#line 601 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "frozen");
+#line 2731 "DataCollection.c"
+}
+
+
+void data_collection_notify_frozen (DataCollection* self) {
+#line 600 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 600 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_frozen (self);
+#line 2740 "DataCollection.c"
+}
+
+
+static void data_collection_real_notify_thawed (DataCollection* self) {
+ GeeHashMap* _tmp0_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 607 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->priv->frozen_items_altered;
+#line 607 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp0_ != NULL) {
+#line 2751 "DataCollection.c"
+ GeeMap* copy = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeMap* _tmp2_ = NULL;
+ GeeMap* _tmp3_ = NULL;
+#line 609 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = self->priv->frozen_items_altered;
+#line 609 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MAP, GeeMap));
+#line 609 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ copy = _tmp2_;
+#line 610 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (self->priv->frozen_items_altered);
+#line 610 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->frozen_items_altered = NULL;
+#line 612 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = copy;
+#line 612 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_items_altered (self, _tmp3_);
+#line 607 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (copy);
+#line 2772 "DataCollection.c"
+ }
+#line 615 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = self->priv->fire_ordering_changed;
+#line 615 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp4_) {
+#line 616 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->fire_ordering_changed = FALSE;
+#line 617 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_notify_ordering_changed (self);
+#line 2782 "DataCollection.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_emit_by_name (self, "thawed");
+#line 2786 "DataCollection.c"
+}
+
+
+void data_collection_notify_thawed (DataCollection* self) {
+#line 606 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (self));
+#line 606 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->notify_thawed (self);
+#line 2795 "DataCollection.c"
+}
+
+
+static void data_collection_real_items_added (DataCollection* self, GeeIterable* added) {
+#line 116 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 2802 "DataCollection.c"
+}
+
+
+static void data_collection_real_items_removed (DataCollection* self, GeeIterable* removed) {
+#line 120 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 2809 "DataCollection.c"
+}
+
+
+static void data_collection_real_contents_altered (DataCollection* self, GeeIterable* added, GeeIterable* removed) {
+#line 124 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 124 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 2818 "DataCollection.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data1 = closure->data;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2837 "DataCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data2 = closure->data;
+#line 2843 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 2849 "DataCollection.c"
+}
+
+
+static void data_collection_real_items_altered (DataCollection* self, GeeMap* items) {
+#line 130 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 2856 "DataCollection.c"
+}
+
+
+static void data_collection_real_ordering_changed (DataCollection* self) {
+}
+
+
+static void data_collection_real_property_set (DataCollection* self, const gchar* name, GValue* old, GValue* val) {
+#line 140 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (name != NULL);
+#line 140 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (val != NULL);
+#line 2869 "DataCollection.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__STRING_BOXED_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__STRING_BOXED_BOXED) (gpointer data1, const char* arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_VOID__STRING_BOXED_BOXED callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (n_param_values == 4);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data1 = closure->data;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2888 "DataCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data2 = closure->data;
+#line 2894 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ callback = (GMarshalFunc_VOID__STRING_BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ callback (data1, g_value_get_string (param_values + 1), g_value_get_boxed (param_values + 2), g_value_get_boxed (param_values + 3), data2);
+#line 2900 "DataCollection.c"
+}
+
+
+static void data_collection_real_property_cleared (DataCollection* self, const gchar* name) {
+#line 144 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (name != NULL);
+#line 2907 "DataCollection.c"
+}
+
+
+static void data_collection_real_frozen (DataCollection* self) {
+}
+
+
+static void data_collection_real_thawed (DataCollection* self) {
+}
+
+
+static void _data_collection_marker_impl_on_items_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self) {
+#line 24 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_marker_impl_on_items_removed ((DataCollectionMarkerImpl*) self, removed);
+#line 2922 "DataCollection.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 16 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 2929 "DataCollection.c"
+}
+
+
+static DataCollectionMarkerImpl* data_collection_marker_impl_construct (GType object_type, DataCollection* owner) {
+ DataCollectionMarkerImpl * self = NULL;
+ DataCollection* _tmp0_ = NULL;
+ DataCollection* _tmp1_ = NULL;
+ DataCollection* _tmp2_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (owner), NULL);
+#line 15 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = (DataCollectionMarkerImpl*) g_object_new (object_type, NULL);
+#line 16 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = owner;
+#line 16 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _data_collection_unref0 (self->owner);
+#line 16 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->owner = _tmp1_;
+#line 20 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = owner;
+#line 20 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_connect_object (_tmp2_, "items-removed", (GCallback) _data_collection_marker_impl_on_items_removed_data_collection_items_removed, self, 0);
+#line 15 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return self;
+#line 2956 "DataCollection.c"
+}
+
+
+static DataCollectionMarkerImpl* data_collection_marker_impl_new (DataCollection* owner) {
+#line 15 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return data_collection_marker_impl_construct (DATA_COLLECTION_TYPE_MARKER_IMPL, owner);
+#line 2963 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_real_mark (Marker* base, DataObject* object) {
+ DataCollectionMarkerImpl * self;
+ DataCollection* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* _tmp3_ = NULL;
+ DataObject* _tmp4_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 27 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_OBJECT (object));
+#line 28 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->owner;
+#line 28 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 28 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_collection_internal_contains (_tmp0_, _tmp1_);
+#line 28 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp2_, "owner.internal_contains(object)");
+#line 30 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = self->marked;
+#line 30 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = object;
+#line 30 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 2992 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_real_unmark (Marker* base, DataObject* object) {
+ DataCollectionMarkerImpl * self;
+ DataCollection* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* _tmp3_ = NULL;
+ DataObject* _tmp4_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 33 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (IS_DATA_OBJECT (object));
+#line 34 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->owner;
+#line 34 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 34 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_collection_internal_contains (_tmp0_, _tmp1_);
+#line 34 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp2_, "owner.internal_contains(object)");
+#line 36 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = self->marked;
+#line 36 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = object;
+#line 36 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 3021 "DataCollection.c"
+}
+
+
+static gboolean data_collection_marker_impl_real_toggle (Marker* base, DataObject* object) {
+ DataCollectionMarkerImpl * self;
+ gboolean result = FALSE;
+ DataCollection* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* _tmp3_ = NULL;
+ DataObject* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeHashSet* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 39 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 39 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 40 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->owner;
+#line 40 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = object;
+#line 40 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = data_collection_internal_contains (_tmp0_, _tmp1_);
+#line 40 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp2_, "owner.internal_contains(object)");
+#line 42 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = self->marked;
+#line 42 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = object;
+#line 42 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 42 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp5_) {
+#line 3057 "DataCollection.c"
+ GeeHashSet* _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = self->marked;
+#line 43 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = object;
+#line 43 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp7_);
+#line 3066 "DataCollection.c"
+ } else {
+ GeeHashSet* _tmp8_ = NULL;
+ DataObject* _tmp9_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = self->marked;
+#line 45 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = object;
+#line 45 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp9_);
+#line 3076 "DataCollection.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = self->marked;
+#line 48 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp11_ = object;
+#line 48 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp12_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp11_);
+#line 48 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp12_;
+#line 48 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 3088 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_real_mark_many (Marker* base, GeeCollection* list) {
+ DataCollectionMarkerImpl * self;
+#line 51 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 51 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (list));
+#line 3098 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = list;
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp1_;
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 3111 "DataCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataCollection* _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GeeHashSet* _tmp9_ = NULL;
+ DataObject* _tmp10_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = _object_it;
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp3_) {
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 3130 "DataCollection.c"
+ }
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = _object_it;
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 53 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = self->owner;
+#line 53 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = object;
+#line 53 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = data_collection_internal_contains (_tmp6_, _tmp7_);
+#line 53 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp8_, "owner.internal_contains(object)");
+#line 55 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = self->marked;
+#line 55 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = object;
+#line 55 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 3154 "DataCollection.c"
+ }
+#line 52 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3158 "DataCollection.c"
+ }
+}
+
+
+static void data_collection_marker_impl_real_unmark_many (Marker* base, GeeCollection* list) {
+ DataCollectionMarkerImpl * self;
+#line 59 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 59 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (list));
+#line 3169 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = list;
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp1_;
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 3182 "DataCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataCollection* _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GeeHashSet* _tmp9_ = NULL;
+ DataObject* _tmp10_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = _object_it;
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp3_) {
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 3201 "DataCollection.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = _object_it;
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 61 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = self->owner;
+#line 61 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = object;
+#line 61 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = data_collection_internal_contains (_tmp6_, _tmp7_);
+#line 61 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _vala_assert (_tmp8_, "owner.internal_contains(object)");
+#line 63 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = self->marked;
+#line 63 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = object;
+#line 63 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 3225 "DataCollection.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3229 "DataCollection.c"
+ }
+}
+
+
+static void data_collection_marker_impl_real_mark_all (Marker* base) {
+ DataCollectionMarkerImpl * self;
+#line 67 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 3238 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ DataCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->owner;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = data_collection_get_all (_tmp0_);
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = _tmp3_;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_tmp2_);
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp4_;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 3262 "DataCollection.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ GeeHashSet* _tmp9_ = NULL;
+ DataObject* _tmp10_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = _object_it;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp6_) {
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 3278 "DataCollection.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = _object_it;
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp8_;
+#line 69 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp9_ = self->marked;
+#line 69 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp10_ = object;
+#line 69 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 3294 "DataCollection.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3298 "DataCollection.c"
+ }
+}
+
+
+static gint data_collection_marker_impl_real_get_count (Marker* base) {
+ DataCollectionMarkerImpl * self;
+ gint result = 0;
+ gint _tmp0_ = 0;
+ GeeHashSet* _tmp1_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = self->marked;
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 3314 "DataCollection.c"
+ GeeHashSet* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = self->marked;
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = _tmp3_;
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = _tmp4_;
+#line 3326 "DataCollection.c"
+ } else {
+ gint _tmp5_ = 0;
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = self->freeze_count;
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = _tmp5_;
+#line 3333 "DataCollection.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp0_;
+#line 73 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 3339 "DataCollection.c"
+}
+
+
+static GeeCollection* data_collection_marker_impl_real_get_all (Marker* base) {
+ DataCollectionMarkerImpl * self;
+ GeeCollection* result = NULL;
+ GeeArrayList* copy = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 77 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 77 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ copy = _tmp0_;
+#line 78 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = self->marked;
+#line 78 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_array_list_add_all (copy, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 80 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (copy, GEE_TYPE_COLLECTION, GeeCollection);
+#line 80 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 3363 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_on_items_removed (DataCollectionMarkerImpl* self, GeeIterable* removed) {
+#line 83 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (DATA_COLLECTION_IS_MARKER_IMPL (self));
+#line 83 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 3372 "DataCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = removed;
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _object_it = _tmp1_;
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ while (TRUE) {
+#line 3385 "DataCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = _object_it;
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!_tmp3_) {
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ break;
+#line 3401 "DataCollection.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp4_ = _object_it;
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 85 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp6_ = self->marked;
+#line 85 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp7_ = object;
+#line 85 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp7_);
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (object);
+#line 3417 "DataCollection.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3421 "DataCollection.c"
+ }
+}
+
+
+static void data_collection_marker_impl_freeze (DataCollectionMarkerImpl* self) {
+ DataCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 91 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (DATA_COLLECTION_IS_MARKER_IMPL (self));
+#line 92 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->owner;
+#line 92 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_parse_name ("items-removed", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 92 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _data_collection_marker_impl_on_items_removed_data_collection_items_removed, self);
+#line 3437 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_finished (DataCollectionMarkerImpl* self) {
+ GeeHashSet* _tmp0_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (DATA_COLLECTION_IS_MARKER_IMPL (self));
+#line 96 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->marked;
+#line 96 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp0_ != NULL) {
+#line 3449 "DataCollection.c"
+ GeeHashSet* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 97 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = self->marked;
+#line 97 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 97 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 97 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->freeze_count = _tmp3_;
+#line 3461 "DataCollection.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (self->marked);
+#line 99 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->marked = NULL;
+#line 3467 "DataCollection.c"
+}
+
+
+static gboolean data_collection_marker_impl_is_valid (DataCollectionMarkerImpl* self, DataCollection* collection) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ DataCollection* _tmp1_ = NULL;
+ DataCollection* _tmp2_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (DATA_COLLECTION_IS_MARKER_IMPL (self), FALSE);
+#line 102 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (collection), FALSE);
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = collection;
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp2_ = self->owner;
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (_tmp1_ == _tmp2_) {
+#line 3486 "DataCollection.c"
+ GeeHashSet* _tmp3_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp3_ = self->marked;
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = _tmp3_ != NULL;
+#line 3492 "DataCollection.c"
+ } else {
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = FALSE;
+#line 3496 "DataCollection.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ result = _tmp0_;
+#line 103 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return result;
+#line 3502 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_class_init (DataCollectionMarkerImplClass * klass) {
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_marker_impl_parent_class = g_type_class_peek_parent (klass);
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_collection_marker_impl_finalize;
+#line 3511 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_marker_interface_init (MarkerIface * iface) {
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_marker_impl_marker_parent_iface = g_type_interface_peek_parent (iface);
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->mark = (void (*)(Marker*, DataObject*)) data_collection_marker_impl_real_mark;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->unmark = (void (*)(Marker*, DataObject*)) data_collection_marker_impl_real_unmark;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->toggle = (gboolean (*)(Marker*, DataObject*)) data_collection_marker_impl_real_toggle;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->mark_many = (void (*)(Marker*, GeeCollection*)) data_collection_marker_impl_real_mark_many;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->unmark_many = (void (*)(Marker*, GeeCollection*)) data_collection_marker_impl_real_unmark_many;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->mark_all = (void (*)(Marker*)) data_collection_marker_impl_real_mark_all;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->get_count = (gint (*)(Marker*)) data_collection_marker_impl_real_get_count;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ iface->get_all = (GeeCollection* (*)(Marker*)) data_collection_marker_impl_real_get_all;
+#line 3534 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_instance_init (DataCollectionMarkerImpl * self) {
+ GeeHashSet* _tmp0_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 12 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->marked = _tmp0_;
+#line 13 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->freeze_count = 0;
+#line 3546 "DataCollection.c"
+}
+
+
+static void data_collection_marker_impl_finalize (GObject* obj) {
+ DataCollectionMarkerImpl * self;
+ DataCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DATA_COLLECTION_TYPE_MARKER_IMPL, DataCollectionMarkerImpl);
+#line 24 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = self->owner;
+#line 24 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_parse_name ("items-removed", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 24 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _data_collection_marker_impl_on_items_removed_data_collection_items_removed, self);
+#line 11 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _data_collection_unref0 (self->owner);
+#line 12 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (self->marked);
+#line 10 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ G_OBJECT_CLASS (data_collection_marker_impl_parent_class)->finalize (obj);
+#line 3568 "DataCollection.c"
+}
+
+
+static GType data_collection_marker_impl_get_type (void) {
+ static volatile gsize data_collection_marker_impl_type_id__volatile = 0;
+ if (g_once_init_enter (&data_collection_marker_impl_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataCollectionMarkerImplClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_collection_marker_impl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataCollectionMarkerImpl), 0, (GInstanceInitFunc) data_collection_marker_impl_instance_init, NULL };
+ static const GInterfaceInfo marker_info = { (GInterfaceInitFunc) data_collection_marker_impl_marker_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType data_collection_marker_impl_type_id;
+ data_collection_marker_impl_type_id = g_type_register_static (G_TYPE_OBJECT, "DataCollectionMarkerImpl", &g_define_type_info, 0);
+ g_type_add_interface_static (data_collection_marker_impl_type_id, TYPE_MARKER, &marker_info);
+ g_once_init_leave (&data_collection_marker_impl_type_id__volatile, data_collection_marker_impl_type_id);
+ }
+ return data_collection_marker_impl_type_id__volatile;
+}
+
+
+static void value_data_collection_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 3589 "DataCollection.c"
+}
+
+
+static void value_data_collection_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_unref (value->data[0].v_pointer);
+#line 3598 "DataCollection.c"
+ }
+}
+
+
+static void value_data_collection_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ dest_value->data[0].v_pointer = data_collection_ref (src_value->data[0].v_pointer);
+#line 3608 "DataCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3612 "DataCollection.c"
+ }
+}
+
+
+static gpointer value_data_collection_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return value->data[0].v_pointer;
+#line 3620 "DataCollection.c"
+}
+
+
+static gchar* value_data_collection_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (collect_values[0].v_pointer) {
+#line 3627 "DataCollection.c"
+ DataCollection* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3634 "DataCollection.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3638 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value->data[0].v_pointer = data_collection_ref (object);
+#line 3642 "DataCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 3646 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return NULL;
+#line 3650 "DataCollection.c"
+}
+
+
+static gchar* value_data_collection_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DataCollection** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3661 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ *object_p = NULL;
+#line 3667 "DataCollection.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3671 "DataCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ *object_p = data_collection_ref (value->data[0].v_pointer);
+#line 3675 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return NULL;
+#line 3679 "DataCollection.c"
+}
+
+
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecDataCollection* spec;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_DATA_COLLECTION), NULL);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return G_PARAM_SPEC (spec);
+#line 3693 "DataCollection.c"
+}
+
+
+gpointer value_get_data_collection (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATA_COLLECTION), NULL);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return value->data[0].v_pointer;
+#line 3702 "DataCollection.c"
+}
+
+
+void value_set_data_collection (GValue* value, gpointer v_object) {
+ DataCollection* old;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATA_COLLECTION));
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DATA_COLLECTION));
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_ref (value->data[0].v_pointer);
+#line 3722 "DataCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 3726 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_unref (old);
+#line 3732 "DataCollection.c"
+ }
+}
+
+
+void value_take_data_collection (GValue* value, gpointer v_object) {
+ DataCollection* old;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATA_COLLECTION));
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DATA_COLLECTION));
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 3751 "DataCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 3755 "DataCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_unref (old);
+#line 3761 "DataCollection.c"
+ }
+}
+
+
+static void data_collection_class_init (DataCollectionClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ data_collection_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->finalize = data_collection_finalize;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_type_class_add_private (klass, sizeof (DataCollectionPrivate));
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->to_string = data_collection_real_to_string;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_items_added = data_collection_real_notify_items_added;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_items_removed = data_collection_real_notify_items_removed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_contents_altered = data_collection_real_notify_contents_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_items_altered = data_collection_real_notify_items_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_ordering_changed = data_collection_real_notify_ordering_changed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_property_set = data_collection_real_notify_property_set;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_property_cleared = data_collection_real_notify_property_cleared;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->valid_type = data_collection_real_valid_type;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->set_comparator = data_collection_real_set_comparator;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->reset_comparator = data_collection_real_reset_comparator;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->get_all = data_collection_real_get_all;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->get_count = data_collection_real_get_count;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->get_at = data_collection_real_get_at;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->index_of = data_collection_real_index_of;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->contains = data_collection_real_contains;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->add = data_collection_real_add;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->add_many = data_collection_real_add_many;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->remove_marked = data_collection_real_remove_marked;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->clear = data_collection_real_clear;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->close = data_collection_real_close;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_frozen = data_collection_real_notify_frozen;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->notify_thawed = data_collection_real_notify_thawed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->items_added = data_collection_real_items_added;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->items_removed = data_collection_real_items_removed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->contents_altered = data_collection_real_contents_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->items_altered = data_collection_real_items_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->ordering_changed = data_collection_real_ordering_changed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->property_set = data_collection_real_property_set;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->property_cleared = data_collection_real_property_cleared;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->frozen = data_collection_real_frozen;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ ((DataCollectionClass *) klass)->thawed = data_collection_real_thawed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("items_added", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, items_added), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_ITERABLE);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("items_removed", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, items_removed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_ITERABLE);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("contents_altered", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, contents_altered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GEE_TYPE_ITERABLE, GEE_TYPE_ITERABLE);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("items_altered", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, items_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_MAP);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("ordering_changed", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, ordering_changed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("property_set", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, property_set), NULL, NULL, g_cclosure_user_marshal_VOID__STRING_BOXED_BOXED, G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_VALUE);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("property_cleared", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, property_cleared), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("frozen", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, frozen), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_new ("thawed", TYPE_DATA_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataCollectionClass, thawed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 3855 "DataCollection.c"
+}
+
+
+static void data_collection_instance_init (DataCollection * self) {
+ DataSet* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv = DATA_COLLECTION_GET_PRIVATE (self);
+#line 108 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp0_ = data_set_new ();
+#line 108 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->dataset = _tmp0_;
+#line 109 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_VALUE, (GBoxedCopyFunc) _g_value_dup, _vala_GValue_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 109 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->properties = _tmp1_;
+#line 110 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->object_ordinal_generator = (gint64) 0;
+#line 111 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->notifies_frozen = 0;
+#line 112 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->frozen_items_altered = NULL;
+#line 113 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->priv->fire_ordering_changed = FALSE;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self->ref_count = 1;
+#line 3882 "DataCollection.c"
+}
+
+
+static void data_collection_finalize (DataCollection* obj) {
+ DataCollection * self;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATA_COLLECTION, DataCollection);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_signal_handlers_destroy (self);
+#line 107 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_free0 (self->priv->name);
+#line 108 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _data_set_unref0 (self->priv->dataset);
+#line 109 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (self->priv->properties);
+#line 112 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ _g_object_unref0 (self->priv->frozen_items_altered);
+#line 3900 "DataCollection.c"
+}
+
+
+GType data_collection_get_type (void) {
+ static volatile gsize data_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&data_collection_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_data_collection_init, value_data_collection_free_value, value_data_collection_copy_value, value_data_collection_peek_pointer, "p", value_data_collection_collect_value, "p", value_data_collection_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DataCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataCollection), 0, (GInstanceInitFunc) data_collection_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType data_collection_type_id;
+ data_collection_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DataCollection", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&data_collection_type_id__volatile, data_collection_type_id);
+ }
+ return data_collection_type_id__volatile;
+}
+
+
+gpointer data_collection_ref (gpointer instance) {
+ DataCollection* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ return instance;
+#line 3925 "DataCollection.c"
+}
+
+
+void data_collection_unref (gpointer instance) {
+ DataCollection* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ DATA_COLLECTION_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/core/DataCollection.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3938 "DataCollection.c"
+ }
+}
+
+
+
diff --git a/src/core/DataObject.c b/src/core/DataObject.c
new file mode 100644
index 0000000..88351fe
--- /dev/null
+++ b/src/core/DataObject.c
@@ -0,0 +1,639 @@
+/* DataObject.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataObject.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/**/
+/* DataObject*/
+/**/
+/* Object IDs are incremented for each DataObject, and therefore may be used to compare*/
+/* creation order. This behavior may be relied upon elsewhere. Object IDs may be recycled when*/
+/* DataObjects are reconstituted by a proxy.*/
+/**/
+/* Ordinal IDs are supplied by DataCollections to record the ordering of the object being added*/
+/* to the collection. This value is primarily only used by DataCollection, but may be used*/
+/* elsewhere to resolve ordering questions (including stabilizing a sort).*/
+/**/
+/* Have to inherit from Object due to ContainerSource and this bug:*/
+/* https://bugzilla.gnome.org/show_bug.cgi?id=615904*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define __vala_GValue_free0(var) ((var == NULL) ? NULL : (var = (_vala_GValue_free (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataObjectPrivate {
+ gint64 object_id;
+ DataCollection* member_of;
+ gint64 ordinal;
+};
+
+typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
+
+static gpointer data_object_parent_class = NULL;
+static gint64 data_object_object_id_generator;
+static gint64 data_object_object_id_generator = (gint64) 0;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+#define DATA_OBJECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DATA_OBJECT, DataObjectPrivate))
+enum {
+ DATA_OBJECT_DUMMY_PROPERTY
+};
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+#define DATA_COLLECTION_INVALID_OBJECT_ORDINAL ((gint64) -1)
+DataObject* data_object_construct (GType object_type, gint64 object_id);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+static void data_object_real_notify_altered (DataObject* self, Alteration* alteration);
+void data_collection_internal_notify_altered (DataCollection* self, DataObject* object, Alteration* alteration);
+void data_object_notify_membership_changed (DataObject* self, DataCollection* collection);
+static void data_object_real_notify_membership_changed (DataObject* self, DataCollection* collection);
+void data_object_notify_collection_property_set (DataObject* self, const gchar* name, GValue* old, GValue* val);
+static void data_object_real_notify_collection_property_set (DataObject* self, const gchar* name, GValue* old, GValue* val);
+void data_object_notify_collection_property_cleared (DataObject* self, const gchar* name);
+static void data_object_real_notify_collection_property_cleared (DataObject* self, const gchar* name);
+gchar* data_object_get_name (DataObject* self);
+static gchar* data_object_real_get_name (DataObject* self);
+gchar* data_object_to_string (DataObject* self);
+static gchar* data_object_real_to_string (DataObject* self);
+DataCollection* data_object_get_membership (DataObject* self);
+gboolean data_object_has_membership (DataObject* self);
+void data_object_internal_set_membership (DataObject* self, DataCollection* collection, gint64 ordinal);
+void data_object_internal_set_ordinal (DataObject* self, gint64 ordinal);
+void data_object_internal_clear_membership (DataObject* self);
+gint64 data_object_internal_get_ordinal (DataObject* self);
+gint64 data_object_get_object_id (DataObject* self);
+GValue* data_object_get_collection_property (DataObject* self, const gchar* name, GValue* def);
+static GValue* _g_value_dup (GValue* self);
+GValue* data_collection_get_property (DataCollection* self, const gchar* name);
+static void _vala_GValue_free (GValue* self);
+void data_object_set_collection_property (DataObject* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
+void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
+void data_object_clear_collection_property (DataObject* self, const gchar* name);
+void data_collection_clear_property (DataCollection* self, const gchar* name);
+static void data_object_finalize (GObject* obj);
+
+
+DataObject* data_object_construct (GType object_type, gint64 object_id) {
+ DataObject * self = NULL;
+ gint64 _tmp0_ = 0LL;
+ gint64 _tmp1_ = 0LL;
+#line 38 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self = (DataObject*) g_object_new (object_type, NULL);
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = object_id;
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ if (_tmp1_ == DATA_OBJECT_INVALID_OBJECT_ID) {
+#line 157 "DataObject.c"
+ gint64 _tmp2_ = 0LL;
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp2_ = data_object_object_id_generator;
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ data_object_object_id_generator = _tmp2_ + 1;
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = _tmp2_;
+#line 165 "DataObject.c"
+ } else {
+ gint64 _tmp3_ = 0LL;
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp3_ = object_id;
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = _tmp3_;
+#line 172 "DataObject.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->object_id = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return self;
+#line 178 "DataObject.c"
+}
+
+
+static void data_object_real_notify_altered (DataObject* self, Alteration* alteration) {
+ DataCollection* _tmp0_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 43 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 43 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ if (_tmp0_ != NULL) {
+#line 190 "DataObject.c"
+ DataCollection* _tmp1_ = NULL;
+ Alteration* _tmp2_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = self->priv->member_of;
+#line 44 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp2_ = alteration;
+#line 44 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ data_collection_internal_notify_altered (_tmp1_, self, _tmp2_);
+#line 199 "DataObject.c"
+ }
+}
+
+
+void data_object_notify_altered (DataObject* self, Alteration* alteration) {
+#line 42 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 42 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ DATA_OBJECT_GET_CLASS (self)->notify_altered (self, alteration);
+#line 209 "DataObject.c"
+}
+
+
+static void data_object_real_notify_membership_changed (DataObject* self, DataCollection* collection) {
+#line 56 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail ((collection == NULL) || IS_DATA_COLLECTION (collection));
+#line 216 "DataObject.c"
+}
+
+
+void data_object_notify_membership_changed (DataObject* self, DataCollection* collection) {
+#line 56 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 56 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ DATA_OBJECT_GET_CLASS (self)->notify_membership_changed (self, collection);
+#line 225 "DataObject.c"
+}
+
+
+static void data_object_real_notify_collection_property_set (DataObject* self, const gchar* name, GValue* old, GValue* val) {
+#line 61 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (name != NULL);
+#line 61 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (val != NULL);
+#line 234 "DataObject.c"
+}
+
+
+void data_object_notify_collection_property_set (DataObject* self, const gchar* name, GValue* old, GValue* val) {
+#line 61 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 61 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ DATA_OBJECT_GET_CLASS (self)->notify_collection_property_set (self, name, old, val);
+#line 243 "DataObject.c"
+}
+
+
+static void data_object_real_notify_collection_property_cleared (DataObject* self, const gchar* name) {
+#line 66 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (name != NULL);
+#line 250 "DataObject.c"
+}
+
+
+void data_object_notify_collection_property_cleared (DataObject* self, const gchar* name) {
+#line 66 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 66 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ DATA_OBJECT_GET_CLASS (self)->notify_collection_property_cleared (self, name);
+#line 259 "DataObject.c"
+}
+
+
+static gchar* data_object_real_get_name (DataObject* self) {
+#line 69 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_critical ("Type `%s' does not implement abstract method `data_object_get_name'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 69 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return NULL;
+#line 268 "DataObject.c"
+}
+
+
+gchar* data_object_get_name (DataObject* self) {
+#line 69 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (self), NULL);
+#line 69 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return DATA_OBJECT_GET_CLASS (self)->get_name (self);
+#line 277 "DataObject.c"
+}
+
+
+static gchar* data_object_real_to_string (DataObject* self) {
+#line 71 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_critical ("Type `%s' does not implement abstract method `data_object_to_string'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 71 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return NULL;
+#line 286 "DataObject.c"
+}
+
+
+gchar* data_object_to_string (DataObject* self) {
+#line 71 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (self), NULL);
+#line 71 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return DATA_OBJECT_GET_CLASS (self)->to_string (self);
+#line 295 "DataObject.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 74 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 302 "DataObject.c"
+}
+
+
+DataCollection* data_object_get_membership (DataObject* self) {
+ DataCollection* result = NULL;
+ DataCollection* _tmp0_ = NULL;
+ DataCollection* _tmp1_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (self), NULL);
+#line 74 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 74 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 74 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ result = _tmp1_;
+#line 74 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return result;
+#line 320 "DataObject.c"
+}
+
+
+gboolean data_object_has_membership (DataObject* self) {
+ gboolean result = FALSE;
+ DataCollection* _tmp0_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (self), FALSE);
+#line 78 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 78 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ result = _tmp0_ != NULL;
+#line 78 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return result;
+#line 335 "DataObject.c"
+}
+
+
+void data_object_internal_set_membership (DataObject* self, DataCollection* collection, gint64 ordinal) {
+ DataCollection* _tmp0_ = NULL;
+ DataCollection* _tmp1_ = NULL;
+ DataCollection* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+#line 83 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 83 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (collection));
+#line 84 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 84 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _vala_assert (_tmp0_ == NULL, "member_of == null");
+#line 86 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = collection;
+#line 86 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp2_ = _data_collection_ref0 (_tmp1_);
+#line 86 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _data_collection_unref0 (self->priv->member_of);
+#line 86 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->member_of = _tmp2_;
+#line 87 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp3_ = ordinal;
+#line 87 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->ordinal = _tmp3_;
+#line 364 "DataObject.c"
+}
+
+
+void data_object_internal_set_ordinal (DataObject* self, gint64 ordinal) {
+ DataCollection* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+#line 96 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 97 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 97 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _vala_assert (_tmp0_ == NULL, "member_of == null");
+#line 99 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = ordinal;
+#line 99 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->ordinal = _tmp1_;
+#line 381 "DataObject.c"
+}
+
+
+void data_object_internal_clear_membership (DataObject* self) {
+#line 104 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 105 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _data_collection_unref0 (self->priv->member_of);
+#line 105 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->member_of = NULL;
+#line 106 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->ordinal = DATA_COLLECTION_INVALID_OBJECT_ORDINAL;
+#line 394 "DataObject.c"
+}
+
+
+inline gint64 data_object_internal_get_ordinal (DataObject* self) {
+ gint64 result = 0LL;
+ gint64 _tmp0_ = 0LL;
+#line 110 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (self), 0LL);
+#line 111 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->ordinal;
+#line 111 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ result = _tmp0_;
+#line 111 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return result;
+#line 409 "DataObject.c"
+}
+
+
+inline gint64 data_object_get_object_id (DataObject* self) {
+ gint64 result = 0LL;
+ gint64 _tmp0_ = 0LL;
+#line 114 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (self), 0LL);
+#line 115 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->object_id;
+#line 115 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ result = _tmp0_;
+#line 115 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return result;
+#line 424 "DataObject.c"
+}
+
+
+static GValue* _g_value_dup (GValue* self) {
+#line 120 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return g_boxed_copy (G_TYPE_VALUE, self);
+#line 431 "DataObject.c"
+}
+
+
+static gpointer __g_value_dup0 (gpointer self) {
+#line 120 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return self ? _g_value_dup (self) : NULL;
+#line 438 "DataObject.c"
+}
+
+
+static void _vala_GValue_free (GValue* self) {
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_value_unset (self);
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_free (self);
+#line 447 "DataObject.c"
+}
+
+
+GValue* data_object_get_collection_property (DataObject* self, const gchar* name, GValue* def) {
+ GValue* result = NULL;
+ DataCollection* _tmp0_ = NULL;
+ GValue* _result_ = NULL;
+ DataCollection* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GValue* _tmp5_ = NULL;
+ GValue* _tmp6_ = NULL;
+ GValue* _tmp7_ = NULL;
+ GValue* _tmp10_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (self), NULL);
+#line 118 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 119 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 119 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ if (_tmp0_ == NULL) {
+#line 469 "DataObject.c"
+ GValue* _tmp1_ = NULL;
+ GValue* _tmp2_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = def;
+#line 120 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp2_ = __g_value_dup0 (_tmp1_);
+#line 120 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ result = _tmp2_;
+#line 120 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return result;
+#line 480 "DataObject.c"
+ }
+#line 122 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp3_ = self->priv->member_of;
+#line 122 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp4_ = name;
+#line 122 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp5_ = data_collection_get_property (_tmp3_, _tmp4_);
+#line 122 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _result_ = _tmp5_;
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp7_ = _result_;
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ if (_tmp7_ != NULL) {
+#line 494 "DataObject.c"
+ GValue* _tmp8_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp8_ = _result_;
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp6_ = _tmp8_;
+#line 500 "DataObject.c"
+ } else {
+ GValue* _tmp9_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp9_ = def;
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp6_ = _tmp9_;
+#line 507 "DataObject.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp10_ = __g_value_dup0 (_tmp6_);
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ result = _tmp10_;
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ __vala_GValue_free0 (_result_);
+#line 124 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ return result;
+#line 517 "DataObject.c"
+}
+
+
+void data_object_set_collection_property (DataObject* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target) {
+ DataCollection* _tmp0_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 127 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (name != NULL);
+#line 127 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (val != NULL);
+#line 128 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 128 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ if (_tmp0_ != NULL) {
+#line 533 "DataObject.c"
+ DataCollection* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GValue _tmp3_ = {0};
+ ValueEqualFunc _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+#line 129 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = self->priv->member_of;
+#line 129 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp2_ = name;
+#line 129 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp3_ = *val;
+#line 129 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp4_ = value_equals;
+#line 129 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp4__target = value_equals_target;
+#line 129 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ data_collection_set_property (_tmp1_, _tmp2_, &_tmp3_, _tmp4_, _tmp4__target);
+#line 551 "DataObject.c"
+ }
+}
+
+
+void data_object_clear_collection_property (DataObject* self, const gchar* name) {
+ DataCollection* _tmp0_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (IS_DATA_OBJECT (self));
+#line 132 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_return_if_fail (name != NULL);
+#line 133 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp0_ = self->priv->member_of;
+#line 133 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ if (_tmp0_ != NULL) {
+#line 566 "DataObject.c"
+ DataCollection* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp1_ = self->priv->member_of;
+#line 134 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _tmp2_ = name;
+#line 134 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ data_collection_clear_property (_tmp1_, _tmp2_);
+#line 575 "DataObject.c"
+ }
+}
+
+
+static void data_object_class_init (DataObjectClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ data_object_parent_class = g_type_class_peek_parent (klass);
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ g_type_class_add_private (klass, sizeof (DataObjectPrivate));
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ ((DataObjectClass *) klass)->notify_altered = data_object_real_notify_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ ((DataObjectClass *) klass)->notify_membership_changed = data_object_real_notify_membership_changed;
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ ((DataObjectClass *) klass)->notify_collection_property_set = data_object_real_notify_collection_property_set;
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ ((DataObjectClass *) klass)->notify_collection_property_cleared = data_object_real_notify_collection_property_cleared;
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ ((DataObjectClass *) klass)->get_name = data_object_real_get_name;
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ ((DataObjectClass *) klass)->to_string = data_object_real_to_string;
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_object_finalize;
+#line 599 "DataObject.c"
+}
+
+
+static void data_object_instance_init (DataObject * self) {
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv = DATA_OBJECT_GET_PRIVATE (self);
+#line 32 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->object_id = DATA_OBJECT_INVALID_OBJECT_ID;
+#line 33 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->member_of = NULL;
+#line 34 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self->priv->ordinal = DATA_COLLECTION_INVALID_OBJECT_ORDINAL;
+#line 612 "DataObject.c"
+}
+
+
+static void data_object_finalize (GObject* obj) {
+ DataObject * self;
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATA_OBJECT, DataObject);
+#line 33 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ _data_collection_unref0 (self->priv->member_of);
+#line 21 "/home/jens/Source/shotwell/src/core/DataObject.vala"
+ G_OBJECT_CLASS (data_object_parent_class)->finalize (obj);
+#line 624 "DataObject.c"
+}
+
+
+GType data_object_get_type (void) {
+ static volatile gsize data_object_type_id__volatile = 0;
+ if (g_once_init_enter (&data_object_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataObject), 0, (GInstanceInitFunc) data_object_instance_init, NULL };
+ GType data_object_type_id;
+ data_object_type_id = g_type_register_static (G_TYPE_OBJECT, "DataObject", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&data_object_type_id__volatile, data_object_type_id);
+ }
+ return data_object_type_id__volatile;
+}
+
+
+
diff --git a/src/core/DataSet.c b/src/core/DataSet.c
new file mode 100644
index 0000000..75c2ca2
--- /dev/null
+++ b/src/core/DataSet.c
@@ -0,0 +1,1163 @@
+/* DataSet.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataSet.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/**/
+/* DataSet*/
+/**/
+/* A DataSet is a collection class used for internal implementations of DataCollection*/
+/* and its children. It may be of use to other classes, however.*/
+/**/
+/* The general purpose of DataSet is to provide low-cost implementations of various collection*/
+/* operations at a cost of internally maintaining its objects in more than one simple collection.*/
+/* contains(), for example, can return a result with hash-table performance while notions of*/
+/* ordering are maintained by a SortedList. The cost is in adding and removing objects (in general,*/
+/* there are others).*/
+/**/
+/* Because this class has no signalling mechanisms and does not manipulate DataObjects in ways*/
+/* they expect to be manipulated (these features are performed by DataCollection), it's probably*/
+/* best not to use this class. Even in cases of building a list of DataObjects for some quick*/
+/* operation is probably best done by a Gee.ArrayList.*/
+/**/
+/* ComparatorPredicate is used to determine if a re-sort operation is necessary; it has no*/
+/* effect on adding a DataObject to a DataSet in sorted order.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_SET (data_set_get_type ())
+#define DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SET, DataSet))
+#define DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SET, DataSetClass))
+#define IS_DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SET))
+#define IS_DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SET))
+#define DATA_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SET, DataSetClass))
+
+typedef struct _DataSet DataSet;
+typedef struct _DataSetClass DataSetClass;
+typedef struct _DataSetPrivate DataSetPrivate;
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _data_set_unref0(var) ((var == NULL) ? NULL : (var = (data_set_unref (var), NULL)))
+typedef struct _ParamSpecDataSet ParamSpecDataSet;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+struct _DataSet {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataSetPrivate * priv;
+};
+
+struct _DataSetClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataSet *self);
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+struct _DataSetPrivate {
+ SortedList* list;
+ GeeHashSet* hash_set;
+ Comparator user_comparator;
+ gpointer user_comparator_target;
+ ComparatorPredicate comparator_predicate;
+ gpointer comparator_predicate_target;
+};
+
+struct _ParamSpecDataSet {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer data_set_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_set_ref (gpointer instance);
+void data_set_unref (gpointer instance);
+GParamSpec* param_spec_data_set (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_set (GValue* value, gpointer v_object);
+void value_take_data_set (GValue* value, gpointer v_object);
+gpointer value_get_data_set (const GValue* value);
+GType data_set_get_type (void) G_GNUC_CONST;
+GType sorted_list_get_type (void) G_GNUC_CONST;
+#define DATA_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DATA_SET, DataSetPrivate))
+enum {
+ DATA_SET_DUMMY_PROPERTY
+};
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+DataSet* data_set_new (void);
+DataSet* data_set_construct (GType object_type);
+void data_set_reset_comparator (DataSet* self);
+static gint64 data_set_order_added_comparator (DataSet* self, void* a, void* b);
+gint64 data_object_internal_get_ordinal (DataObject* self);
+static gboolean data_set_order_added_predicate (DataSet* self, DataObject* object, Alteration* alteration);
+static gint64 data_set_comparator_wrapper (DataSet* self, void* a, void* b);
+gboolean data_set_contains (DataSet* self, DataObject* object);
+gint data_set_get_count (DataSet* self);
+gint sorted_list_get_count (SortedList* self);
+static gboolean _data_set_order_added_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+void sorted_list_resort (SortedList* self, Comparator new_cmp, void* new_cmp_target);
+static gint64 _data_set_order_added_comparator_comparator (void* a, void* b, gpointer self);
+Comparator data_set_get_comparator (DataSet* self, void** result_target);
+ComparatorPredicate data_set_get_comparator_predicate (DataSet* self, void** result_target);
+void data_set_set_comparator (DataSet* self, Comparator user_comparator, void* user_comparator_target, ComparatorPredicate comparator_predicate, void* comparator_predicate_target);
+static gint64 _data_set_comparator_wrapper_comparator (void* a, void* b, gpointer self);
+GeeList* data_set_get_all (DataSet* self);
+GeeList* sorted_list_get_read_only_view_as_list (SortedList* self);
+DataSet* data_set_copy (DataSet* self);
+SortedList* sorted_list_copy (SortedList* self);
+DataObject* data_set_get_at (DataSet* self, gint index);
+gpointer sorted_list_get_at (SortedList* self, gint index);
+gint data_set_index_of (DataSet* self, DataObject* object);
+gint sorted_list_locate (SortedList* self, gconstpointer search, gboolean altered, GEqualFunc equal_func);
+gboolean data_set_add (DataSet* self, DataObject* object);
+gboolean data_set_add_many (DataSet* self, GeeCollection* objects);
+gboolean data_set_remove (DataSet* self, DataObject* object);
+gboolean data_set_remove_many (DataSet* self, GeeCollection* objects);
+gboolean data_set_resort_object (DataSet* self, DataObject* object, Alteration* alteration);
+gboolean sorted_list_resort_item (SortedList* self, gconstpointer item);
+static void data_set_finalize (DataSet* obj);
+
+
+DataSet* data_set_construct (GType object_type) {
+ DataSet* self = NULL;
+#line 35 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self = (DataSet*) g_type_create_instance (object_type);
+#line 36 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ data_set_reset_comparator (self);
+#line 35 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return self;
+#line 177 "DataSet.c"
+}
+
+
+DataSet* data_set_new (void) {
+#line 35 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return data_set_construct (TYPE_DATA_SET);
+#line 184 "DataSet.c"
+}
+
+
+static gint64 data_set_order_added_comparator (DataSet* self, void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ void* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+#line 39 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), 0LL);
+#line 40 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = a;
+#line 40 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = data_object_internal_get_ordinal (G_TYPE_CHECK_INSTANCE_CAST ((DataObject*) _tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 40 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = b;
+#line 40 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = data_object_internal_get_ordinal (G_TYPE_CHECK_INSTANCE_CAST ((DataObject*) _tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 40 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp1_ - _tmp3_;
+#line 40 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 208 "DataSet.c"
+}
+
+
+static gboolean data_set_order_added_predicate (DataSet* self, DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+#line 43 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), FALSE);
+#line 43 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 43 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 45 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = FALSE;
+#line 45 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 224 "DataSet.c"
+}
+
+
+static gint64 data_set_comparator_wrapper (DataSet* self, void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint64 _result_ = 0LL;
+ Comparator _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ gint64 _tmp7_ = 0LL;
+ gint64 _tmp11_ = 0LL;
+#line 48 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), 0LL);
+#line 49 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = a;
+#line 49 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = b;
+#line 49 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 50 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = (gint64) 0;
+#line 50 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 249 "DataSet.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _result_ = (gint64) 0;
+#line 56 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = self->priv->user_comparator;
+#line 56 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2__target = self->priv->user_comparator_target;
+#line 56 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (_tmp2_ != NULL) {
+#line 259 "DataSet.c"
+ Comparator _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ void* _tmp4_ = NULL;
+ void* _tmp5_ = NULL;
+ gint64 _tmp6_ = 0LL;
+#line 57 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = self->priv->user_comparator;
+#line 57 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3__target = self->priv->user_comparator_target;
+#line 57 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4_ = a;
+#line 57 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp5_ = b;
+#line 57 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp6_ = _tmp3_ (_tmp4_, _tmp5_, _tmp3__target);
+#line 57 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _result_ = _tmp6_;
+#line 277 "DataSet.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp7_ = _result_;
+#line 59 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (_tmp7_ == ((gint64) 0)) {
+#line 283 "DataSet.c"
+ void* _tmp8_ = NULL;
+ void* _tmp9_ = NULL;
+ gint64 _tmp10_ = 0LL;
+#line 60 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp8_ = a;
+#line 60 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp9_ = b;
+#line 60 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp10_ = data_set_order_added_comparator (self, _tmp8_, _tmp9_);
+#line 60 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _result_ = _tmp10_;
+#line 295 "DataSet.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp11_ = _result_;
+#line 62 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _vala_assert (_tmp11_ != ((gint64) 0), "result != 0");
+#line 64 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _result_;
+#line 64 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 305 "DataSet.c"
+}
+
+
+gboolean data_set_contains (DataSet* self, DataObject* object) {
+ gboolean result = FALSE;
+ GeeHashSet* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 67 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), FALSE);
+#line 67 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 68 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->hash_set;
+#line 68 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = object;
+#line 68 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 68 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp2_;
+#line 68 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 328 "DataSet.c"
+}
+
+
+inline gint data_set_get_count (DataSet* self) {
+ gint result = 0;
+ SortedList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 71 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), 0);
+#line 72 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 72 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = sorted_list_get_count (_tmp0_);
+#line 72 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp1_;
+#line 72 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 346 "DataSet.c"
+}
+
+
+static gboolean _data_set_order_added_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = data_set_order_added_predicate ((DataSet*) self, object, alteration);
+#line 77 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 355 "DataSet.c"
+}
+
+
+static gint64 _data_set_order_added_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = data_set_order_added_comparator ((DataSet*) self, a, b);
+#line 78 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 364 "DataSet.c"
+}
+
+
+void data_set_reset_comparator (DataSet* self) {
+ SortedList* _tmp0_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (IS_DATA_SET (self));
+#line 76 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->user_comparator = NULL;
+#line 76 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->user_comparator_target = NULL;
+#line 77 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->comparator_predicate = _data_set_order_added_predicate_comparator_predicate;
+#line 77 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->comparator_predicate_target = self;
+#line 78 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 78 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ sorted_list_resort (_tmp0_, _data_set_order_added_comparator_comparator, self);
+#line 384 "DataSet.c"
+}
+
+
+Comparator data_set_get_comparator (DataSet* self, void** result_target) {
+ Comparator result = NULL;
+ Comparator _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ Comparator _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 81 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), NULL);
+#line 82 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->user_comparator;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0__target = self->priv->user_comparator_target;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = _tmp0_;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1__target = _tmp0__target;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ *result_target = _tmp1__target;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp1_;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 410 "DataSet.c"
+}
+
+
+ComparatorPredicate data_set_get_comparator_predicate (DataSet* self, void** result_target) {
+ ComparatorPredicate result = NULL;
+ ComparatorPredicate _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ ComparatorPredicate _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 85 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), NULL);
+#line 86 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->comparator_predicate;
+#line 86 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0__target = self->priv->comparator_predicate_target;
+#line 86 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = _tmp0_;
+#line 86 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1__target = _tmp0__target;
+#line 86 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ *result_target = _tmp1__target;
+#line 86 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp1_;
+#line 86 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 436 "DataSet.c"
+}
+
+
+static gint64 _data_set_comparator_wrapper_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = data_set_comparator_wrapper ((DataSet*) self, a, b);
+#line 92 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 445 "DataSet.c"
+}
+
+
+void data_set_set_comparator (DataSet* self, Comparator user_comparator, void* user_comparator_target, ComparatorPredicate comparator_predicate, void* comparator_predicate_target) {
+ Comparator _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ ComparatorPredicate _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ SortedList* _tmp2_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (IS_DATA_SET (self));
+#line 90 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = user_comparator;
+#line 90 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0__target = user_comparator_target;
+#line 90 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->user_comparator = _tmp0_;
+#line 90 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->user_comparator_target = _tmp0__target;
+#line 91 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = comparator_predicate;
+#line 91 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1__target = comparator_predicate_target;
+#line 91 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->comparator_predicate = _tmp1_;
+#line 91 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->comparator_predicate_target = _tmp1__target;
+#line 92 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = self->priv->list;
+#line 92 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ sorted_list_resort (_tmp2_, _data_set_comparator_wrapper_comparator, self);
+#line 477 "DataSet.c"
+}
+
+
+GeeList* data_set_get_all (DataSet* self) {
+ GeeList* result = NULL;
+ SortedList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), NULL);
+#line 96 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 96 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = sorted_list_get_read_only_view_as_list (_tmp0_);
+#line 96 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = _tmp1_;
+#line 96 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp2_;
+#line 96 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 498 "DataSet.c"
+}
+
+
+DataSet* data_set_copy (DataSet* self) {
+ DataSet* result = NULL;
+ DataSet* clone = NULL;
+ DataSet* _tmp0_ = NULL;
+ SortedList* _tmp1_ = NULL;
+ SortedList* _tmp2_ = NULL;
+ GeeHashSet* _tmp3_ = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), NULL);
+#line 100 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = data_set_new ();
+#line 100 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ clone = _tmp0_;
+#line 101 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = self->priv->list;
+#line 101 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = sorted_list_copy (_tmp1_);
+#line 101 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _g_object_unref0 (clone->priv->list);
+#line 101 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ clone->priv->list = _tmp2_;
+#line 102 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = clone->priv->hash_set;
+#line 102 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4_ = self->priv->hash_set;
+#line 102 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 104 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = clone;
+#line 104 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 534 "DataSet.c"
+}
+
+
+DataObject* data_set_get_at (DataSet* self, gint index) {
+ DataObject* result = NULL;
+ SortedList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gpointer _tmp2_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), NULL);
+#line 108 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 108 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = index;
+#line 108 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = sorted_list_get_at (_tmp0_, _tmp1_);
+#line 108 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = (DataObject*) _tmp2_;
+#line 108 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 555 "DataSet.c"
+}
+
+
+gint data_set_index_of (DataSet* self, DataObject* object) {
+ gint result = 0;
+ SortedList* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ GEqualFunc _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 111 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), 0);
+#line 111 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), 0);
+#line 112 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 112 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = object;
+#line 112 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = g_direct_equal;
+#line 112 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = sorted_list_locate (_tmp0_, _tmp1_, FALSE, _tmp2_);
+#line 112 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp3_;
+#line 112 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 581 "DataSet.c"
+}
+
+
+gboolean data_set_add (DataSet* self, DataObject* object) {
+ gboolean result = FALSE;
+ SortedList* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* _tmp3_ = NULL;
+ DataObject* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 116 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), FALSE);
+#line 116 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 117 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 117 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = object;
+#line 117 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 117 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp2_) {
+#line 118 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 609 "DataSet.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = self->priv->hash_set;
+#line 120 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4_ = object;
+#line 120 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp5_ = gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 120 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp5_) {
+#line 619 "DataSet.c"
+ SortedList* _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp6_ = self->priv->list;
+#line 122 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp7_ = object;
+#line 122 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection), _tmp7_);
+#line 124 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = FALSE;
+#line 124 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 632 "DataSet.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = TRUE;
+#line 127 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 638 "DataSet.c"
+}
+
+
+gboolean data_set_add_many (DataSet* self, GeeCollection* objects) {
+ gboolean result = FALSE;
+ gint count = 0;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ SortedList* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GeeHashSet* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 131 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), FALSE);
+#line 131 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (objects), FALSE);
+#line 132 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = objects;
+#line 132 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 132 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = _tmp1_;
+#line 132 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ count = _tmp2_;
+#line 133 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = count;
+#line 133 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (_tmp3_ == 0) {
+#line 134 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = TRUE;
+#line 134 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 675 "DataSet.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4_ = self->priv->list;
+#line 136 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp5_ = objects;
+#line 136 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp6_ = gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), _tmp5_);
+#line 136 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp6_) {
+#line 137 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 689 "DataSet.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp7_ = self->priv->hash_set;
+#line 139 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp8_ = objects;
+#line 139 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp9_ = gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), _tmp8_);
+#line 139 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp9_) {
+#line 699 "DataSet.c"
+ SortedList* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp10_ = self->priv->list;
+#line 141 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp11_ = objects;
+#line 141 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection), _tmp11_);
+#line 143 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = FALSE;
+#line 143 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 712 "DataSet.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = TRUE;
+#line 146 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 718 "DataSet.c"
+}
+
+
+gboolean data_set_remove (DataSet* self, DataObject* object) {
+ gboolean result = FALSE;
+ gboolean success = FALSE;
+ SortedList* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* _tmp3_ = NULL;
+ DataObject* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 149 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), FALSE);
+#line 149 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 150 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ success = TRUE;
+#line 152 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 152 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = object;
+#line 152 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 152 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp2_) {
+#line 153 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ success = FALSE;
+#line 747 "DataSet.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = self->priv->hash_set;
+#line 155 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4_ = object;
+#line 155 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp5_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp4_);
+#line 155 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp5_) {
+#line 156 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ success = FALSE;
+#line 759 "DataSet.c"
+ }
+#line 158 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = success;
+#line 158 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 765 "DataSet.c"
+}
+
+
+gboolean data_set_remove_many (DataSet* self, GeeCollection* objects) {
+ gboolean result = FALSE;
+ gboolean success = FALSE;
+ SortedList* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashSet* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 161 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), FALSE);
+#line 161 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (objects), FALSE);
+#line 162 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ success = TRUE;
+#line 164 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = self->priv->list;
+#line 164 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = objects;
+#line 164 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 164 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp2_) {
+#line 165 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ success = FALSE;
+#line 794 "DataSet.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = self->priv->hash_set;
+#line 167 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4_ = objects;
+#line 167 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp5_ = gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection), _tmp4_);
+#line 167 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!_tmp5_) {
+#line 168 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ success = FALSE;
+#line 806 "DataSet.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = success;
+#line 170 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 812 "DataSet.c"
+}
+
+
+gboolean data_set_resort_object (DataSet* self, DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ ComparatorPredicate _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ SortedList* _tmp8_ = NULL;
+ DataObject* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 174 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_SET (self), FALSE);
+#line 174 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 174 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail ((alteration == NULL) || IS_ALTERATION (alteration), FALSE);
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2_ = self->priv->comparator_predicate;
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp2__target = self->priv->comparator_predicate_target;
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (_tmp2_ != NULL) {
+#line 837 "DataSet.c"
+ Alteration* _tmp3_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp3_ = alteration;
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 843 "DataSet.c"
+ } else {
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = FALSE;
+#line 847 "DataSet.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (_tmp1_) {
+#line 851 "DataSet.c"
+ ComparatorPredicate _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+ DataObject* _tmp5_ = NULL;
+ Alteration* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4_ = self->priv->comparator_predicate;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp4__target = self->priv->comparator_predicate_target;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp5_ = object;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp6_ = alteration;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp7_ = _tmp4_ (_tmp5_, _tmp6_, _tmp4__target);
+#line 176 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = !_tmp7_;
+#line 869 "DataSet.c"
+ } else {
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = FALSE;
+#line 873 "DataSet.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (_tmp0_) {
+#line 177 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 881 "DataSet.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp8_ = self->priv->list;
+#line 180 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp9_ = object;
+#line 180 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp10_ = sorted_list_resort_item (_tmp8_, _tmp9_);
+#line 180 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ result = _tmp10_;
+#line 180 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return result;
+#line 893 "DataSet.c"
+}
+
+
+static void value_data_set_init (GValue* value) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ value->data[0].v_pointer = NULL;
+#line 900 "DataSet.c"
+}
+
+
+static void value_data_set_free_value (GValue* value) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (value->data[0].v_pointer) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ data_set_unref (value->data[0].v_pointer);
+#line 909 "DataSet.c"
+ }
+}
+
+
+static void value_data_set_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (src_value->data[0].v_pointer) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ dest_value->data[0].v_pointer = data_set_ref (src_value->data[0].v_pointer);
+#line 919 "DataSet.c"
+ } else {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 923 "DataSet.c"
+ }
+}
+
+
+static gpointer value_data_set_peek_pointer (const GValue* value) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return value->data[0].v_pointer;
+#line 931 "DataSet.c"
+}
+
+
+static gchar* value_data_set_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (collect_values[0].v_pointer) {
+#line 938 "DataSet.c"
+ DataSet* object;
+ object = collect_values[0].v_pointer;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 945 "DataSet.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 949 "DataSet.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ value->data[0].v_pointer = data_set_ref (object);
+#line 953 "DataSet.c"
+ } else {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ value->data[0].v_pointer = NULL;
+#line 957 "DataSet.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return NULL;
+#line 961 "DataSet.c"
+}
+
+
+static gchar* value_data_set_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DataSet** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!object_p) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 972 "DataSet.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (!value->data[0].v_pointer) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ *object_p = NULL;
+#line 978 "DataSet.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ *object_p = value->data[0].v_pointer;
+#line 982 "DataSet.c"
+ } else {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ *object_p = data_set_ref (value->data[0].v_pointer);
+#line 986 "DataSet.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return NULL;
+#line 990 "DataSet.c"
+}
+
+
+GParamSpec* param_spec_data_set (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecDataSet* spec;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_DATA_SET), NULL);
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return G_PARAM_SPEC (spec);
+#line 1004 "DataSet.c"
+}
+
+
+gpointer value_get_data_set (const GValue* value) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATA_SET), NULL);
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return value->data[0].v_pointer;
+#line 1013 "DataSet.c"
+}
+
+
+void value_set_data_set (GValue* value, gpointer v_object) {
+ DataSet* old;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATA_SET));
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ old = value->data[0].v_pointer;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (v_object) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DATA_SET));
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ value->data[0].v_pointer = v_object;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ data_set_ref (value->data[0].v_pointer);
+#line 1033 "DataSet.c"
+ } else {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ value->data[0].v_pointer = NULL;
+#line 1037 "DataSet.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (old) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ data_set_unref (old);
+#line 1043 "DataSet.c"
+ }
+}
+
+
+void value_take_data_set (GValue* value, gpointer v_object) {
+ DataSet* old;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATA_SET));
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ old = value->data[0].v_pointer;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (v_object) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DATA_SET));
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ value->data[0].v_pointer = v_object;
+#line 1062 "DataSet.c"
+ } else {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ value->data[0].v_pointer = NULL;
+#line 1066 "DataSet.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (old) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ data_set_unref (old);
+#line 1072 "DataSet.c"
+ }
+}
+
+
+static void data_set_class_init (DataSetClass * klass) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ data_set_parent_class = g_type_class_peek_parent (klass);
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ ((DataSetClass *) klass)->finalize = data_set_finalize;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_type_class_add_private (klass, sizeof (DataSetPrivate));
+#line 1084 "DataSet.c"
+}
+
+
+static void data_set_instance_init (DataSet * self) {
+ SortedList* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv = DATA_SET_GET_PRIVATE (self);
+#line 30 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp0_ = sorted_list_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL);
+#line 30 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->list = _tmp0_;
+#line 31 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _tmp1_ = gee_hash_set_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 31 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->hash_set = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->user_comparator = NULL;
+#line 33 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->priv->comparator_predicate = NULL;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self->ref_count = 1;
+#line 1107 "DataSet.c"
+}
+
+
+static void data_set_finalize (DataSet* obj) {
+ DataSet * self;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATA_SET, DataSet);
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_signal_handlers_destroy (self);
+#line 30 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _g_object_unref0 (self->priv->list);
+#line 31 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ _g_object_unref0 (self->priv->hash_set);
+#line 1121 "DataSet.c"
+}
+
+
+GType data_set_get_type (void) {
+ static volatile gsize data_set_type_id__volatile = 0;
+ if (g_once_init_enter (&data_set_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_data_set_init, value_data_set_free_value, value_data_set_copy_value, value_data_set_peek_pointer, "p", value_data_set_collect_value, "p", value_data_set_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DataSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataSet), 0, (GInstanceInitFunc) data_set_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType data_set_type_id;
+ data_set_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DataSet", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&data_set_type_id__volatile, data_set_type_id);
+ }
+ return data_set_type_id__volatile;
+}
+
+
+gpointer data_set_ref (gpointer instance) {
+ DataSet* self;
+ self = instance;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ return instance;
+#line 1146 "DataSet.c"
+}
+
+
+void data_set_unref (gpointer instance) {
+ DataSet* self;
+ self = instance;
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ DATA_SET_GET_CLASS (self)->finalize (self);
+#line 29 "/home/jens/Source/shotwell/src/core/DataSet.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1159 "DataSet.c"
+ }
+}
+
+
+
diff --git a/src/core/DataSource.c b/src/core/DataSource.c
new file mode 100644
index 0000000..2b48942
--- /dev/null
+++ b/src/core/DataSource.c
@@ -0,0 +1,4864 @@
+/* DataSource.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataSource.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/**/
+/* DataSource*/
+/* */
+/* A DataSource is an object that is unique throughout the system. DataSources*/
+/* commonly have external and/or persistent representations, hence they have a notion of being*/
+/* destroyed (versus removed or freed). Several DataViews may exist that reference a single*/
+/* DataSource. Note that DataSources MUST be destroyed (rather than simply removed) from their*/
+/* SourceCollection, and that they MUST be destroyed via their SourceCollection (rather than*/
+/* calling DataSource.destroy() directly.)*/
+/**/
+/* Destroying a DataSource indicates it should remove all secondary and tertiary structures (such*/
+/* as thumbnails) and any records pointing to its backing store. SourceCollection.destroy_marked()*/
+/* has a parameter indicating if the backing should be destroyed as well; that is when*/
+/* internal_delete_backing() is called.*/
+/**/
+/* There are no provisions (currently) for a DataSource to be removed from its SourceCollection*/
+/* without destroying its backing and/or secondary and tertiary structures. DataSources are intended*/
+/* to go to the grave with their SourceCollection otherwise. If a need arises for a DataSource to*/
+/* be peaceably removed from its SourceCollection, code will need to be written. SourceSnapshots*/
+/* may be one solution to this problem.*/
+/**/
+/* Some DataSources cannot be reconstituted (for example, if its backing file is deleted). In*/
+/* that case, dehydrate() should return null. When reconstituted, it is the responsibility of the*/
+/* implementation to ensure an exact clone is produced, minus any details that are not relevant or*/
+/* exposed (such as a database ID).*/
+/**/
+/* If other DataSources refer to this DataSource, their state will *not* be */
+/* saved/restored. This must be achieved via other means. However, implementations *should**/
+/* track when changes to external state would break the proxy and call notify_broken();*/
+/**/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+#define _source_holding_tank_unref0(var) ((var == NULL) ? NULL : (var = (source_holding_tank_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+#define _source_backlink_unref0(var) ((var == NULL) ? NULL : (var = (source_backlink_unref (var), NULL)))
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _SourceSnapshotPrivate SourceSnapshotPrivate;
+typedef struct _ParamSpecSourceSnapshot ParamSpecSourceSnapshot;
+typedef struct _SourceBacklinkPrivate SourceBacklinkPrivate;
+typedef struct _ParamSpecSourceBacklink ParamSpecSourceBacklink;
+
+#define TYPE_SOURCE_PROXY (source_proxy_get_type ())
+#define SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_PROXY, SourceProxy))
+#define SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_PROXY, SourceProxyClass))
+#define IS_SOURCE_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_PROXY))
+#define IS_SOURCE_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_PROXY))
+#define SOURCE_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_PROXY, SourceProxyClass))
+
+typedef struct _SourceProxy SourceProxy;
+typedef struct _SourceProxyClass SourceProxyClass;
+typedef struct _SourceProxyPrivate SourceProxyPrivate;
+#define _source_snapshot_unref0(var) ((var == NULL) ? NULL : (var = (source_snapshot_unref (var), NULL)))
+typedef struct _ParamSpecSourceProxy ParamSpecSourceProxy;
+
+#define TYPE_PROXYABLE (proxyable_get_type ())
+#define PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROXYABLE, Proxyable))
+#define IS_PROXYABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROXYABLE))
+#define PROXYABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_PROXYABLE, ProxyableIface))
+
+typedef struct _Proxyable Proxyable;
+typedef struct _ProxyableIface ProxyableIface;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+struct _DataSourcePrivate {
+ DataView** subscribers;
+ gint subscribers_length1;
+ gint _subscribers_size_;
+ SourceHoldingTank* holding_tank;
+ SourceCollection* unlinked_from_collection;
+ GeeHashMap* backlinks;
+ gboolean in_contact;
+ gboolean marked_for_destroy;
+ gboolean is_destroyed;
+};
+
+typedef void (*DataSourceContactSubscriber) (DataView* view, void* user_data);
+typedef void (*DataSourceContactSubscriberAlteration) (DataView* view, Alteration* alteration, void* user_data);
+struct _SourceSnapshot {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceSnapshotPrivate * priv;
+};
+
+struct _SourceSnapshotClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceSnapshot *self);
+ void (*notify_broken) (SourceSnapshot* self);
+ void (*broken) (SourceSnapshot* self);
+};
+
+struct _SourceSnapshotPrivate {
+ gboolean snapshot_broken;
+};
+
+struct _ParamSpecSourceSnapshot {
+ GParamSpec parent_instance;
+};
+
+struct _SourceBacklink {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceBacklinkPrivate * priv;
+};
+
+struct _SourceBacklinkClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceBacklink *self);
+};
+
+struct _SourceBacklinkPrivate {
+ gchar* _name;
+ gchar* _value;
+};
+
+struct _ParamSpecSourceBacklink {
+ GParamSpec parent_instance;
+};
+
+struct _SourceProxy {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceProxyPrivate * priv;
+};
+
+struct _SourceProxyClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceProxy *self);
+ DataSource* (*reconstitute) (SourceProxy* self, gint64 object_id, SourceSnapshot* snapshot);
+ void (*notify_reconstituted) (SourceProxy* self, DataSource* source);
+ void (*notify_dehydrated) (SourceProxy* self);
+ void (*notify_broken) (SourceProxy* self);
+ void (*reconstituted) (SourceProxy* self, DataSource* source);
+ void (*dehydrated) (SourceProxy* self);
+ void (*broken) (SourceProxy* self);
+};
+
+struct _SourceProxyPrivate {
+ gint64 object_id;
+ gchar* source_string;
+ DataSource* source;
+ SourceSnapshot* snapshot;
+ SourceCollection* membership;
+};
+
+struct _ParamSpecSourceProxy {
+ GParamSpec parent_instance;
+};
+
+struct _ProxyableIface {
+ GTypeInterface parent_iface;
+ SourceProxy* (*get_proxy) (Proxyable* self);
+};
+
+
+static gpointer data_source_parent_class = NULL;
+static gpointer source_snapshot_parent_class = NULL;
+static gpointer source_backlink_parent_class = NULL;
+static gpointer source_proxy_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+#define DATA_SOURCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DATA_SOURCE, DataSourcePrivate))
+enum {
+ DATA_SOURCE_DUMMY_PROPERTY
+};
+DataSource* data_source_construct (GType object_type, gint64 object_id);
+DataObject* data_object_construct (GType object_type, gint64 object_id);
+static void data_source_real_notify_membership_changed (DataObject* base, DataCollection* collection);
+void data_source_notify_unlinked (DataSource* self);
+void data_object_notify_membership_changed (DataObject* self, DataCollection* collection);
+void data_source_notify_held_in_tank (DataSource* self, SourceHoldingTank* holding_tank);
+static void data_source_real_notify_held_in_tank (DataSource* self, SourceHoldingTank* holding_tank);
+DataCollection* data_object_get_membership (DataObject* self);
+static void data_source_real_notify_altered (DataObject* base, Alteration* alteration);
+void source_holding_tank_internal_notify_altered (SourceHoldingTank* self, DataSource* source, Alteration* alteration);
+void data_source_contact_subscribers_alteration (DataSource* self, Alteration* alteration);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+void data_source_notify_unlinking (DataSource* self, SourceCollection* collection);
+static void data_source_real_notify_unlinking (DataSource* self, SourceCollection* collection);
+static void data_source_real_notify_unlinked (DataSource* self);
+void data_source_commit_backlinks (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+static gchar* data_source_dehydrate_backlinks (DataSource* self);
+void data_source_notify_relinking (DataSource* self, SourceCollection* collection);
+static void data_source_real_notify_relinking (DataSource* self, SourceCollection* collection);
+void data_source_notify_relinked (DataSource* self);
+static void data_source_real_notify_relinked (DataSource* self);
+gchar* data_source_get_typename (DataSource* self);
+static gchar* data_source_real_get_typename (DataSource* self);
+gint64 data_source_get_instance_id (DataSource* self);
+static gint64 data_source_real_get_instance_id (DataSource* self);
+gchar* data_source_get_source_id (DataSource* self);
+static gchar* data_source_real_get_source_id (DataSource* self);
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+gboolean data_source_has_backlink (DataSource* self, SourceBacklink* backlink);
+const gchar* source_backlink_get_name (SourceBacklink* self);
+const gchar* source_backlink_get_value (SourceBacklink* self);
+GeeList* data_source_get_backlinks (DataSource* self, const gchar* name);
+SourceBacklink* source_backlink_new (const gchar* name, const gchar* value);
+SourceBacklink* source_backlink_construct (GType object_type, const gchar* name, const gchar* value);
+void data_source_set_backlink (DataSource* self, SourceBacklink* backlink);
+void source_collection_internal_backlink_set (SourceCollection* self, DataSource* source, SourceBacklink* backlink);
+gboolean data_source_remove_backlink (DataSource* self, SourceBacklink* backlink);
+void source_collection_internal_backlink_removed (SourceCollection* self, DataSource* source, SourceBacklink* backlink);
+static void data_source_real_commit_backlinks (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+gchar* data_object_to_string (DataObject* self);
+gboolean is_string_empty (const gchar* s);
+void data_source_rehydrate_backlinks (DataSource* self, SourceCollection* unlinked_from, const gchar* dehydrated);
+SourceSnapshot* data_source_save_snapshot (DataSource* self);
+static SourceSnapshot* data_source_real_save_snapshot (DataSource* self);
+void data_source_internal_mark_for_destroy (DataSource* self);
+gboolean data_source_internal_delete_backing (DataSource* self, GError** error);
+static gboolean data_source_real_internal_delete_backing (DataSource* self, GError** error);
+gboolean data_source_equals (DataSource* self, DataSource* source);
+static gboolean data_source_real_equals (DataSource* self, DataSource* source);
+void data_source_destroy (DataSource* self);
+static void data_source_real_destroy (DataSource* self);
+void data_view_notify_unsubscribed (DataView* self, DataSource* source);
+gboolean data_source_destroy_orphan (DataSource* self, gboolean delete_backing);
+void source_collection_notify_unlinked_destroyed (SourceCollection* self, DataSource* unlinked);
+void data_source_internal_subscribe (DataSource* self, DataView* view);
+static void _vala_array_add122 (DataView*** array, int* length, int* size, DataView* value);
+void data_source_internal_unsubscribe (DataSource* self, DataView* view);
+void data_source_contact_subscribers (DataSource* self, DataSourceContactSubscriber contact_subscriber, void* contact_subscriber_target);
+static void data_source_real_unlinked (DataSource* self, SourceCollection* sources);
+static void g_cclosure_user_marshal_VOID__DATA_COLLECTION (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void data_source_real_relinked (DataSource* self, SourceCollection* sources);
+static void data_source_real_destroyed (DataSource* self);
+static void data_source_finalize (GObject* obj);
+#define SOURCE_SNAPSHOT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SOURCE_SNAPSHOT, SourceSnapshotPrivate))
+enum {
+ SOURCE_SNAPSHOT_DUMMY_PROPERTY
+};
+void source_snapshot_notify_broken (SourceSnapshot* self);
+static void source_snapshot_real_notify_broken (SourceSnapshot* self);
+gboolean source_snapshot_is_broken (SourceSnapshot* self);
+SourceSnapshot* source_snapshot_construct (GType object_type);
+static void source_snapshot_real_broken (SourceSnapshot* self);
+static void source_snapshot_finalize (SourceSnapshot* obj);
+#define SOURCE_BACKLINK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SOURCE_BACKLINK, SourceBacklinkPrivate))
+enum {
+ SOURCE_BACKLINK_DUMMY_PROPERTY
+};
+static gboolean source_backlink_validate_name_value (const gchar* name, const gchar* value);
+SourceBacklink* source_backlink_new_from_source (DataSource* source);
+SourceBacklink* source_backlink_construct_from_source (GType object_type, DataSource* source);
+gchar* source_backlink_to_string (SourceBacklink* self);
+guint source_backlink_hash_func (SourceBacklink* backlink);
+gboolean source_backlink_equal_func (SourceBacklink* alink, SourceBacklink* blink);
+const gchar* source_backlink_get_typename (SourceBacklink* self);
+gint64 source_backlink_get_instance_id (SourceBacklink* self);
+static void source_backlink_finalize (SourceBacklink* obj);
+gpointer source_proxy_ref (gpointer instance);
+void source_proxy_unref (gpointer instance);
+GParamSpec* param_spec_source_proxy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_proxy (GValue* value, gpointer v_object);
+void value_take_source_proxy (GValue* value, gpointer v_object);
+gpointer value_get_source_proxy (const GValue* value);
+GType source_proxy_get_type (void) G_GNUC_CONST;
+#define SOURCE_PROXY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SOURCE_PROXY, SourceProxyPrivate))
+enum {
+ SOURCE_PROXY_DUMMY_PROPERTY
+};
+static void source_proxy_drop_source (SourceProxy* self);
+static void source_proxy_on_source_added (SourceProxy* self, GeeIterable* added);
+static void _source_proxy_on_source_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self);
+SourceProxy* source_proxy_construct (GType object_type, DataSource* source);
+gint64 data_object_get_object_id (DataObject* self);
+static void source_proxy_on_snapshot_broken (SourceProxy* self);
+static void _source_proxy_on_snapshot_broken_source_snapshot_broken (SourceSnapshot* _sender, gpointer self);
+static void source_proxy_set_source (SourceProxy* self, DataSource* source);
+DataSource* source_proxy_reconstitute (SourceProxy* self, gint64 object_id, SourceSnapshot* snapshot);
+static DataSource* source_proxy_real_reconstitute (SourceProxy* self, gint64 object_id, SourceSnapshot* snapshot);
+void source_proxy_notify_reconstituted (SourceProxy* self, DataSource* source);
+static void source_proxy_real_notify_reconstituted (SourceProxy* self, DataSource* source);
+void source_proxy_notify_dehydrated (SourceProxy* self);
+static void source_proxy_real_notify_dehydrated (SourceProxy* self);
+void source_proxy_notify_broken (SourceProxy* self);
+static void source_proxy_real_notify_broken (SourceProxy* self);
+static void source_proxy_on_destroyed (SourceProxy* self);
+static void _source_proxy_on_destroyed_data_source_destroyed (DataSource* _sender, gpointer self);
+DataSource* source_proxy_get_source (SourceProxy* self);
+gboolean data_collection_contains (DataCollection* self, DataObject* object);
+static void source_proxy_real_reconstituted (SourceProxy* self, DataSource* source);
+static void source_proxy_real_dehydrated (SourceProxy* self);
+static void source_proxy_real_broken (SourceProxy* self);
+static void source_proxy_finalize (SourceProxy* obj);
+GType proxyable_get_type (void) G_GNUC_CONST;
+SourceProxy* proxyable_get_proxy (Proxyable* self);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+DataSource* data_source_construct (GType object_type, gint64 object_id) {
+ DataSource * self = NULL;
+ gint64 _tmp0_ = 0LL;
+#line 64 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = object_id;
+#line 64 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = (DataSource*) data_object_construct (object_type, _tmp0_);
+#line 63 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self;
+#line 492 "DataSource.c"
+}
+
+
+static void data_source_real_notify_membership_changed (DataObject* base, DataCollection* collection) {
+ DataSource * self;
+ DataCollection* _tmp0_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataCollection* _tmp6_ = NULL;
+ DataCollection* _tmp8_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DATA_SOURCE, DataSource);
+#line 73 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail ((collection == NULL) || IS_DATA_COLLECTION (collection));
+#line 75 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = collection;
+#line 75 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_ == NULL) {
+#line 510 "DataSource.c"
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 76 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = self->priv->is_destroyed;
+#line 76 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp2_) {
+#line 76 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = TRUE;
+#line 519 "DataSource.c"
+ } else {
+ GeeHashMap* _tmp3_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = self->priv->backlinks;
+#line 76 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 526 "DataSource.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp1_, "is_destroyed || backlinks != null");
+#line 530 "DataSource.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 78 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->is_destroyed;
+#line 78 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (!_tmp4_, "!is_destroyed");
+#line 537 "DataSource.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = collection;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp6_ == NULL) {
+#line 543 "DataSource.c"
+ GeeHashMap* _tmp7_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = self->priv->backlinks;
+#line 82 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = _tmp7_ != NULL;
+#line 549 "DataSource.c"
+ } else {
+#line 82 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = FALSE;
+#line 553 "DataSource.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp5_) {
+#line 83 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_notify_unlinked (self);
+#line 559 "DataSource.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = collection;
+#line 85 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_OBJECT_CLASS (data_source_parent_class)->notify_membership_changed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp8_);
+#line 565 "DataSource.c"
+}
+
+
+static gpointer _source_holding_tank_ref0 (gpointer self) {
+#line 100 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self ? source_holding_tank_ref (self) : NULL;
+#line 572 "DataSource.c"
+}
+
+
+static void data_source_real_notify_held_in_tank (DataSource* self, SourceHoldingTank* holding_tank) {
+ DataCollection* _tmp0_ = NULL;
+ DataCollection* _tmp1_ = NULL;
+ SourceHoldingTank* _tmp2_ = NULL;
+ SourceHoldingTank* _tmp5_ = NULL;
+ SourceHoldingTank* _tmp6_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail ((holding_tank == NULL) || IS_SOURCE_HOLDING_TANK (holding_tank));
+#line 90 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 90 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = _tmp0_;
+#line 90 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp1_ == NULL, "get_membership() == null");
+#line 90 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 94 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = holding_tank;
+#line 94 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp2_ != NULL) {
+#line 596 "DataSource.c"
+ SourceHoldingTank* _tmp3_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = self->priv->holding_tank;
+#line 95 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp3_ == NULL, "this.holding_tank == null");
+#line 602 "DataSource.c"
+ } else {
+ SourceHoldingTank* _tmp4_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->holding_tank;
+#line 97 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp4_ != NULL, "this.holding_tank != null");
+#line 609 "DataSource.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = holding_tank;
+#line 100 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = _source_holding_tank_ref0 (_tmp5_);
+#line 100 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _source_holding_tank_unref0 (self->priv->holding_tank);
+#line 100 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->holding_tank = _tmp6_;
+#line 619 "DataSource.c"
+}
+
+
+void data_source_notify_held_in_tank (DataSource* self, SourceHoldingTank* holding_tank) {
+#line 88 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 88 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_SOURCE_GET_CLASS (self)->notify_held_in_tank (self, holding_tank);
+#line 628 "DataSource.c"
+}
+
+
+static void data_source_real_notify_altered (DataObject* base, Alteration* alteration) {
+ DataSource * self;
+ SourceHoldingTank* _tmp0_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DATA_SOURCE, DataSource);
+#line 103 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 105 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->holding_tank;
+#line 105 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_ != NULL) {
+#line 643 "DataSource.c"
+ SourceHoldingTank* _tmp1_ = NULL;
+ Alteration* _tmp2_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->holding_tank;
+#line 106 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = alteration;
+#line 106 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_holding_tank_internal_notify_altered (_tmp1_, self, _tmp2_);
+#line 652 "DataSource.c"
+ } else {
+ Alteration* _tmp3_ = NULL;
+ Alteration* _tmp4_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = alteration;
+#line 108 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_contact_subscribers_alteration (self, _tmp3_);
+#line 110 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = alteration;
+#line 110 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_OBJECT_CLASS (data_source_parent_class)->notify_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject), _tmp4_);
+#line 664 "DataSource.c"
+ }
+}
+
+
+static void data_source_real_notify_unlinking (DataSource* self, SourceCollection* collection) {
+ gboolean _tmp0_ = FALSE;
+ GeeHashMap* _tmp1_ = NULL;
+ SourceCollection* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (collection));
+#line 116 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 116 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_ == NULL) {
+#line 680 "DataSource.c"
+ SourceCollection* _tmp2_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = self->priv->unlinked_from_collection;
+#line 116 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 686 "DataSource.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = FALSE;
+#line 690 "DataSource.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp0_, "backlinks == null && unlinked_from_collection == null");
+#line 118 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = collection;
+#line 118 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->unlinked_from_collection = _tmp3_;
+#line 119 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_LIST, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 119 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->backlinks);
+#line 119 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->backlinks = _tmp4_;
+#line 704 "DataSource.c"
+}
+
+
+void data_source_notify_unlinking (DataSource* self, SourceCollection* collection) {
+#line 115 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 115 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_SOURCE_GET_CLASS (self)->notify_unlinking (self, collection);
+#line 713 "DataSource.c"
+}
+
+
+static void data_source_real_notify_unlinked (DataSource* self) {
+ gboolean _tmp0_ = FALSE;
+ SourceCollection* _tmp1_ = NULL;
+ SourceCollection* _tmp3_ = NULL;
+ GeeHashMap* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 124 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->unlinked_from_collection;
+#line 124 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_ != NULL) {
+#line 728 "DataSource.c"
+ GeeHashMap* _tmp2_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = self->priv->backlinks;
+#line 124 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 734 "DataSource.c"
+ } else {
+#line 124 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = FALSE;
+#line 738 "DataSource.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp0_, "unlinked_from_collection != null && backlinks != null");
+#line 126 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = self->priv->unlinked_from_collection;
+#line 126 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_emit_by_name (self, "unlinked", _tmp3_);
+#line 129 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->backlinks;
+#line 129 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_MAP, GeeMap));
+#line 129 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = _tmp5_;
+#line 129 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp6_ > 0) {
+#line 754 "DataSource.c"
+ SourceCollection* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = self->priv->unlinked_from_collection;
+#line 130 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = data_source_dehydrate_backlinks (self);
+#line 130 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = _tmp8_;
+#line 130 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_commit_backlinks (self, _tmp7_, _tmp9_);
+#line 130 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp9_);
+#line 768 "DataSource.c"
+ }
+}
+
+
+void data_source_notify_unlinked (DataSource* self) {
+#line 123 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 123 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_SOURCE_GET_CLASS (self)->notify_unlinked (self);
+#line 778 "DataSource.c"
+}
+
+
+static void data_source_real_notify_relinking (DataSource* self, SourceCollection* collection) {
+ gboolean _tmp0_ = FALSE;
+ GeeHashMap* _tmp1_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (collection));
+#line 135 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 135 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_ != NULL) {
+#line 791 "DataSource.c"
+ SourceCollection* _tmp2_ = NULL;
+ SourceCollection* _tmp3_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = self->priv->unlinked_from_collection;
+#line 135 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = collection;
+#line 135 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = _tmp2_ == _tmp3_;
+#line 800 "DataSource.c"
+ } else {
+#line 135 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = FALSE;
+#line 804 "DataSource.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp0_, "(backlinks != null) && (unlinked_from_collection == collection)");
+#line 808 "DataSource.c"
+}
+
+
+void data_source_notify_relinking (DataSource* self, SourceCollection* collection) {
+#line 134 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 134 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_SOURCE_GET_CLASS (self)->notify_relinking (self, collection);
+#line 817 "DataSource.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 142 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 824 "DataSource.c"
+}
+
+
+static void data_source_real_notify_relinked (DataSource* self) {
+ gboolean _tmp0_ = FALSE;
+ GeeHashMap* _tmp1_ = NULL;
+ SourceCollection* relinked_to = NULL;
+ SourceCollection* _tmp3_ = NULL;
+ SourceCollection* _tmp4_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 140 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_ != NULL) {
+#line 838 "DataSource.c"
+ SourceCollection* _tmp2_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = self->priv->unlinked_from_collection;
+#line 140 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 844 "DataSource.c"
+ } else {
+#line 140 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = FALSE;
+#line 848 "DataSource.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp0_, "backlinks != null && unlinked_from_collection != null");
+#line 142 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = self->priv->unlinked_from_collection;
+#line 142 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _data_collection_ref0 (_tmp3_);
+#line 142 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ relinked_to = _tmp4_;
+#line 143 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->backlinks);
+#line 143 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->backlinks = NULL;
+#line 144 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->unlinked_from_collection = NULL;
+#line 145 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_emit_by_name (self, "relinked", relinked_to);
+#line 148 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_commit_backlinks (self, NULL, NULL);
+#line 139 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _data_collection_unref0 (relinked_to);
+#line 870 "DataSource.c"
+}
+
+
+void data_source_notify_relinked (DataSource* self) {
+#line 139 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 139 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_SOURCE_GET_CLASS (self)->notify_relinked (self);
+#line 879 "DataSource.c"
+}
+
+
+static gchar* data_source_real_get_typename (DataSource* self) {
+#line 156 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_critical ("Type `%s' does not implement abstract method `data_source_get_typename'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 156 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 888 "DataSource.c"
+}
+
+
+gchar* data_source_get_typename (DataSource* self) {
+#line 156 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), NULL);
+#line 156 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return DATA_SOURCE_GET_CLASS (self)->get_typename (self);
+#line 897 "DataSource.c"
+}
+
+
+static gint64 data_source_real_get_instance_id (DataSource* self) {
+#line 162 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_critical ("Type `%s' does not implement abstract method `data_source_get_instance_id'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 162 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return 0LL;
+#line 906 "DataSource.c"
+}
+
+
+gint64 data_source_get_instance_id (DataSource* self) {
+#line 162 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), 0LL);
+#line 162 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return DATA_SOURCE_GET_CLASS (self)->get_instance_id (self);
+#line 915 "DataSource.c"
+}
+
+
+static gchar* data_source_real_get_source_id (DataSource* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = data_source_get_typename (self);
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = _tmp0_;
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = data_source_get_instance_id (self);
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = g_strdup_printf ("%s-%016" G_GINT64_MODIFIER "x", _tmp1_, _tmp2_);
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _tmp3_;
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp1_);
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp4_;
+#line 167 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 942 "DataSource.c"
+}
+
+
+gchar* data_source_get_source_id (DataSource* self) {
+#line 166 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), NULL);
+#line 166 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return DATA_SOURCE_GET_CLASS (self)->get_source_id (self);
+#line 951 "DataSource.c"
+}
+
+
+gboolean data_source_has_backlink (DataSource* self, SourceBacklink* backlink) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeList* values = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GeeList* _tmp7_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), FALSE);
+#line 170 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (backlink), FALSE);
+#line 171 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->backlinks;
+#line 171 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_ == NULL) {
+#line 172 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 978 "DataSource.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 174 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = backlink;
+#line 174 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = source_backlink_get_name (_tmp2_);
+#line 174 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _tmp3_;
+#line 174 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 174 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ values = (GeeList*) _tmp5_;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = values;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp7_ != NULL) {
+#line 996 "DataSource.c"
+ GeeList* _tmp8_ = NULL;
+ SourceBacklink* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = values;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = backlink;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = source_backlink_get_value (_tmp9_);
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _tmp10_;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection), _tmp11_);
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = _tmp12_;
+#line 1014 "DataSource.c"
+ } else {
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = FALSE;
+#line 1018 "DataSource.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp6_;
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 176 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1026 "DataSource.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1033 "DataSource.c"
+}
+
+
+GeeList* data_source_get_backlinks (DataSource* self, const gchar* name) {
+ GeeList* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeList* values = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gpointer _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeList* _tmp5_ = NULL;
+ GeeList* backlinks = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), NULL);
+#line 179 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 180 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->backlinks;
+#line 180 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_ == NULL) {
+#line 181 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = NULL;
+#line 181 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1060 "DataSource.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 183 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = name;
+#line 183 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_);
+#line 183 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ values = (GeeList*) _tmp3_;
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = values;
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp5_ == NULL) {
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = TRUE;
+#line 1076 "DataSource.c"
+ } else {
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = values;
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = _tmp7_;
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _tmp8_ == 0;
+#line 1089 "DataSource.c"
+ }
+#line 184 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp4_) {
+#line 185 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = NULL;
+#line 185 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 185 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1099 "DataSource.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = gee_array_list_new (TYPE_SOURCE_BACKLINK, (GBoxedCopyFunc) source_backlink_ref, source_backlink_unref, NULL, NULL, NULL);
+#line 187 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ backlinks = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_LIST, GeeList);
+#line 1105 "DataSource.c"
+ {
+ GeeList* _value_list = NULL;
+ GeeList* _tmp10_ = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _value_size = 0;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _value_index = 0;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = values;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_list = _tmp11_;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = _value_list;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = _tmp13_;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_size = _tmp14_;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_index = -1;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 1133 "DataSource.c"
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gchar* value = NULL;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gpointer _tmp20_ = NULL;
+ GeeList* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ SourceBacklink* _tmp24_ = NULL;
+ SourceBacklink* _tmp25_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = _value_index;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_index = _tmp15_ + 1;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp16_ = _value_index;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp17_ = _value_size;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!(_tmp16_ < _tmp17_)) {
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 1158 "DataSource.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp18_ = _value_list;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp19_ = _value_index;
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp20_ = gee_list_get (_tmp18_, _tmp19_);
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value = (gchar*) _tmp20_;
+#line 189 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp21_ = backlinks;
+#line 189 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp22_ = name;
+#line 189 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp23_ = value;
+#line 189 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp24_ = source_backlink_new (_tmp22_, _tmp23_);
+#line 189 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp25_ = _tmp24_;
+#line 189 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 189 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _source_backlink_unref0 (_tmp25_);
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (value);
+#line 1184 "DataSource.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_value_list);
+#line 1188 "DataSource.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = backlinks;
+#line 191 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 191 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1196 "DataSource.c"
+}
+
+
+void data_source_set_backlink (DataSource* self, SourceBacklink* backlink) {
+ GeeHashMap* _tmp0_ = NULL;
+ GeeList* values = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ SourceBacklink* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ SourceCollection* sources = NULL;
+ DataCollection* _tmp17_ = NULL;
+ SourceCollection* _tmp18_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 194 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 196 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->backlinks;
+#line 196 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp0_ != NULL, "backlinks != null");
+#line 198 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 198 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = backlink;
+#line 198 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = source_backlink_get_name (_tmp2_);
+#line 198 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _tmp3_;
+#line 198 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 198 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ values = (GeeList*) _tmp5_;
+#line 199 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = values;
+#line 199 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp6_ == NULL) {
+#line 1240 "DataSource.c"
+ GeeArrayList* _tmp7_ = NULL;
+ GeeHashMap* _tmp8_ = NULL;
+ SourceBacklink* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GeeList* _tmp12_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 200 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 200 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ values = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_LIST, GeeList);
+#line 201 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = self->priv->backlinks;
+#line 201 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = backlink;
+#line 201 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = source_backlink_get_name (_tmp9_);
+#line 201 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _tmp10_;
+#line 201 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = values;
+#line 201 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, _tmp12_);
+#line 1265 "DataSource.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = values;
+#line 204 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = backlink;
+#line 204 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = source_backlink_get_value (_tmp14_);
+#line 204 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp16_ = _tmp15_;
+#line 204 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection), _tmp16_);
+#line 206 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp17_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 206 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_SOURCE_COLLECTION, SourceCollection);
+#line 207 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp18_ = sources;
+#line 207 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp18_ != NULL) {
+#line 1285 "DataSource.c"
+ SourceCollection* _tmp19_ = NULL;
+ SourceBacklink* _tmp20_ = NULL;
+#line 208 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp19_ = sources;
+#line 208 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp20_ = backlink;
+#line 208 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_collection_internal_backlink_set (_tmp19_, self, _tmp20_);
+#line 1294 "DataSource.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _data_collection_unref0 (sources);
+#line 194 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 1300 "DataSource.c"
+}
+
+
+gboolean data_source_remove_backlink (DataSource* self, SourceBacklink* backlink) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeList* values = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ gint original_size = 0;
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ GeeIterator* iter = NULL;
+ GeeList* _tmp11_ = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ GeeList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ SourceCollection* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ SourceCollection* sources = NULL;
+ DataCollection* _tmp33_ = NULL;
+ SourceCollection* _tmp34_ = NULL;
+ GeeList* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+#line 211 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), FALSE);
+#line 211 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (backlink), FALSE);
+#line 212 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->backlinks;
+#line 212 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_ == NULL) {
+#line 213 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = FALSE;
+#line 213 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1347 "DataSource.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 215 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = backlink;
+#line 215 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = source_backlink_get_name (_tmp2_);
+#line 215 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _tmp3_;
+#line 215 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 215 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ values = (GeeList*) _tmp5_;
+#line 216 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = values;
+#line 216 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp6_ == NULL) {
+#line 217 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = FALSE;
+#line 217 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 217 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1371 "DataSource.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = values;
+#line 219 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 219 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = _tmp8_;
+#line 219 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ original_size = _tmp9_;
+#line 220 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = original_size;
+#line 220 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp10_ > 0, "original_size > 0");
+#line 222 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = values;
+#line 222 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 222 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ iter = _tmp12_;
+#line 223 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 1393 "DataSource.c"
+ GeeIterator* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ GeeIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ SourceBacklink* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 223 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = iter;
+#line 223 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = gee_iterator_next (_tmp13_);
+#line 223 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp14_) {
+#line 223 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 1411 "DataSource.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = iter;
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp16_ = gee_iterator_get (_tmp15_);
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp17_ = (gchar*) _tmp16_;
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp18_ = backlink;
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp19_ = source_backlink_get_value (_tmp18_);
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp20_ = _tmp19_;
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp21_ = g_strcmp0 (_tmp17_, _tmp20_) == 0;
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp17_);
+#line 224 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp21_) {
+#line 1431 "DataSource.c"
+ GeeIterator* _tmp22_ = NULL;
+#line 225 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp22_ = iter;
+#line 225 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ gee_iterator_remove (_tmp22_);
+#line 1437 "DataSource.c"
+ }
+ }
+#line 228 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp23_ = values;
+#line 228 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp24_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 228 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp25_ = _tmp24_;
+#line 228 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp25_ == 0) {
+#line 1448 "DataSource.c"
+ GeeHashMap* _tmp26_ = NULL;
+ SourceBacklink* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp26_ = self->priv->backlinks;
+#line 229 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp27_ = backlink;
+#line 229 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp28_ = source_backlink_get_name (_tmp27_);
+#line 229 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp29_ = _tmp28_;
+#line 229 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp29_, NULL);
+#line 1463 "DataSource.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp30_ = self->priv->unlinked_from_collection;
+#line 233 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp31_ = data_source_dehydrate_backlinks (self);
+#line 233 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp32_ = _tmp31_;
+#line 233 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_commit_backlinks (self, _tmp30_, _tmp32_);
+#line 233 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp32_);
+#line 235 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp33_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 235 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_SOURCE_COLLECTION, SourceCollection);
+#line 236 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp34_ = sources;
+#line 236 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp34_ != NULL) {
+#line 1483 "DataSource.c"
+ SourceCollection* _tmp35_ = NULL;
+ SourceBacklink* _tmp36_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp35_ = sources;
+#line 237 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp36_ = backlink;
+#line 237 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_collection_internal_backlink_removed (_tmp35_, self, _tmp36_);
+#line 1492 "DataSource.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp37_ = values;
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp38_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp39_ = _tmp38_;
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp40_ = original_size;
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp39_ != _tmp40_;
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _data_collection_unref0 (sources);
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (iter);
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 239 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1512 "DataSource.c"
+}
+
+
+static void data_source_real_commit_backlinks (DataSource* self, SourceCollection* sources, const gchar* dehydrated) {
+ gboolean _tmp0_ = FALSE;
+ SourceCollection* _tmp1_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail ((sources == NULL) || IS_SOURCE_COLLECTION (sources));
+#line 249 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = sources;
+#line 249 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_ != NULL) {
+#line 249 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = TRUE;
+#line 1527 "DataSource.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 249 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = dehydrated;
+#line 249 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 1534 "DataSource.c"
+ }
+#line 249 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_) {
+#line 1538 "DataSource.c"
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 250 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _tmp3_;
+#line 250 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_warning ("DataSource.vala:250: No implementation to commit link state for %s", _tmp4_);
+#line 250 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp4_);
+#line 1549 "DataSource.c"
+ }
+}
+
+
+void data_source_commit_backlinks (DataSource* self, SourceCollection* sources, const gchar* dehydrated) {
+#line 248 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 248 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_SOURCE_GET_CLASS (self)->commit_backlinks (self, sources, dehydrated);
+#line 1559 "DataSource.c"
+}
+
+
+static gchar* data_source_dehydrate_backlinks (DataSource* self) {
+ gchar* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GeeHashMap* _tmp1_ = NULL;
+ GString* builder = NULL;
+ GString* _tmp5_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ GString* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ gchar* _tmp58_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), NULL);
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_ == NULL) {
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = TRUE;
+#line 1583 "DataSource.c"
+ } else {
+ GeeHashMap* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = self->priv->backlinks;
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _tmp3_;
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = _tmp4_ == 0;
+#line 1596 "DataSource.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_) {
+#line 255 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = NULL;
+#line 255 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1604 "DataSource.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = g_string_new ("");
+#line 257 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ builder = _tmp5_;
+#line 1610 "DataSource.c"
+ {
+ GeeIterator* _name_it = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ GeeSet* _tmp7_ = NULL;
+ GeeSet* _tmp8_ = NULL;
+ GeeSet* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = self->priv->backlinks;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_MAP, GeeMap));
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = _tmp7_;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = _tmp8_;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _tmp10_;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_tmp9_);
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _name_it = _tmp11_;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 1637 "DataSource.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gchar* name = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GeeList* values = NULL;
+ GeeHashMap* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ GeeList* _tmp20_ = NULL;
+ gchar* value_field = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = _name_it;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp13_) {
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 1662 "DataSource.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = _name_it;
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ name = (gchar*) _tmp15_;
+#line 259 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp16_ = self->priv->backlinks;
+#line 259 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp17_ = name;
+#line 259 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp18_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp17_);
+#line 259 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ values = (GeeList*) _tmp18_;
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp20_ = values;
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp20_ == NULL) {
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp19_ = TRUE;
+#line 1684 "DataSource.c"
+ } else {
+ GeeList* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp21_ = values;
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp22_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp23_ = _tmp22_;
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp19_ = _tmp23_ == 0;
+#line 1697 "DataSource.c"
+ }
+#line 260 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp19_) {
+#line 261 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 261 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (name);
+#line 261 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ continue;
+#line 1707 "DataSource.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp24_ = g_strdup ("");
+#line 263 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value_field = _tmp24_;
+#line 1713 "DataSource.c"
+ {
+ GeeList* _value_list = NULL;
+ GeeList* _tmp25_ = NULL;
+ GeeList* _tmp26_ = NULL;
+ gint _value_size = 0;
+ GeeList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _value_index = 0;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp25_ = values;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp26_ = _g_object_ref0 (_tmp25_);
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_list = _tmp26_;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp27_ = _value_list;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp28_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp29_ = _tmp28_;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_size = _tmp29_;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_index = -1;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 1741 "DataSource.c"
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gchar* value = NULL;
+ GeeList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gpointer _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ gboolean _tmp37_ = FALSE;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp30_ = _value_index;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _value_index = _tmp30_ + 1;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp31_ = _value_index;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp32_ = _value_size;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!(_tmp31_ < _tmp32_)) {
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 1763 "DataSource.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp33_ = _value_list;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp34_ = _value_index;
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp35_ = gee_list_get (_tmp33_, _tmp34_);
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value = (gchar*) _tmp35_;
+#line 265 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp36_ = value;
+#line 265 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp37_ = is_string_empty (_tmp36_);
+#line 265 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp37_) {
+#line 1779 "DataSource.c"
+ const gchar* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp38_ = value_field;
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp39_ = value;
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp40_ = g_strconcat (_tmp39_, "|", NULL);
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp41_ = _tmp40_;
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp42_ = g_strconcat (_tmp38_, _tmp41_, NULL);
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (value_field);
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value_field = _tmp42_;
+#line 266 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp41_);
+#line 1801 "DataSource.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (value);
+#line 1805 "DataSource.c"
+ }
+#line 264 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_value_list);
+#line 1809 "DataSource.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp43_ = value_field;
+#line 269 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp44_ = strlen (_tmp43_);
+#line 269 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp45_ = _tmp44_;
+#line 269 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp45_ > 0) {
+#line 1819 "DataSource.c"
+ GString* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp46_ = builder;
+#line 270 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp47_ = name;
+#line 270 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp48_ = value_field;
+#line 270 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp49_ = g_strdup_printf ("%s=%s\n", _tmp47_, _tmp48_);
+#line 270 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp50_ = _tmp49_;
+#line 270 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_string_append (_tmp46_, _tmp50_);
+#line 270 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp50_);
+#line 1839 "DataSource.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (value_field);
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (name);
+#line 1847 "DataSource.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_name_it);
+#line 1851 "DataSource.c"
+ }
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp52_ = builder;
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp53_ = _tmp52_->str;
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp54_ = strlen (_tmp53_);
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp55_ = _tmp54_;
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp55_ > 0) {
+#line 1863 "DataSource.c"
+ GString* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp56_ = builder;
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp57_ = _tmp56_->str;
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp51_ = _tmp57_;
+#line 1872 "DataSource.c"
+ } else {
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp51_ = NULL;
+#line 1876 "DataSource.c"
+ }
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp58_ = g_strdup (_tmp51_);
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp58_;
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_string_free0 (builder);
+#line 273 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 1886 "DataSource.c"
+}
+
+
+void data_source_rehydrate_backlinks (DataSource* self, SourceCollection* unlinked_from, const gchar* dehydrated) {
+ SourceCollection* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar** lines = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint lines_length1 = 0;
+ gint _lines_size_ = 0;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 278 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 278 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (unlinked_from));
+#line 279 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = unlinked_from;
+#line 279 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->unlinked_from_collection = _tmp0_;
+#line 280 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_LIST, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 280 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->backlinks);
+#line 280 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->backlinks = _tmp1_;
+#line 282 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = dehydrated;
+#line 282 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp2_ == NULL) {
+#line 283 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return;
+#line 1922 "DataSource.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = dehydrated;
+#line 285 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, "\n", 0);
+#line 285 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ lines = _tmp5_;
+#line 285 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ lines_length1 = _vala_array_length (_tmp4_);
+#line 285 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _lines_size_ = lines_length1;
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = lines;
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6__length1 = lines_length1;
+#line 1938 "DataSource.c"
+ {
+ gchar** line_collection = NULL;
+ gint line_collection_length1 = 0;
+ gint _line_collection_size_ = 0;
+ gint line_it = 0;
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ line_collection = _tmp6_;
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ line_collection_length1 = _tmp6__length1;
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ for (line_it = 0; line_it < _tmp6__length1; line_it = line_it + 1) {
+#line 1950 "DataSource.c"
+ gchar* _tmp7_ = NULL;
+ gchar* line = NULL;
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = g_strdup (line_collection[line_it]);
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ line = _tmp7_;
+#line 1957 "DataSource.c"
+ {
+ const gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gchar** tokens = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar** _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gint tokens_length1 = 0;
+ gint _tokens_size_ = 0;
+ gchar** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gchar** decoded_values = NULL;
+ gchar** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ const gchar* _tmp19_ = NULL;
+ gchar** _tmp20_ = NULL;
+ gchar** _tmp21_ = NULL;
+ gint decoded_values_length1 = 0;
+ gint _decoded_values_size_ = 0;
+ GeeList* values = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ gchar** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ GeeList* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+#line 287 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = line;
+#line 287 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = strlen (_tmp8_);
+#line 287 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = _tmp9_;
+#line 287 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp10_ == 0) {
+#line 288 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (line);
+#line 288 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ continue;
+#line 1997 "DataSource.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = line;
+#line 290 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = _tmp12_ = g_strsplit (_tmp11_, "=", 2);
+#line 290 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ tokens = _tmp13_;
+#line 290 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ tokens_length1 = _vala_array_length (_tmp12_);
+#line 290 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tokens_size_ = tokens_length1;
+#line 291 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = tokens;
+#line 291 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14__length1 = tokens_length1;
+#line 291 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp14__length1 < 2) {
+#line 2015 "DataSource.c"
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = line;
+#line 292 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp16_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 292 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp17_ = _tmp16_;
+#line 292 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_warning ("DataSource.vala:292: Unable to rehydrate \"%s\" for %s: name and value" \
+" not present", _tmp15_, _tmp17_);
+#line 292 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp17_);
+#line 295 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
+#line 295 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (line);
+#line 295 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ continue;
+#line 2035 "DataSource.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp18_ = tokens;
+#line 298 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp18__length1 = tokens_length1;
+#line 298 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp19_ = _tmp18_[1];
+#line 298 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp21_ = _tmp20_ = g_strsplit (_tmp19_, "|", 0);
+#line 298 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ decoded_values = _tmp21_;
+#line 298 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ decoded_values_length1 = _vala_array_length (_tmp20_);
+#line 298 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _decoded_values_size_ = decoded_values_length1;
+#line 299 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp22_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 299 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ values = G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_LIST, GeeList);
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp23_ = decoded_values;
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp23__length1 = decoded_values_length1;
+#line 2059 "DataSource.c"
+ {
+ gchar** value_collection = NULL;
+ gint value_collection_length1 = 0;
+ gint _value_collection_size_ = 0;
+ gint value_it = 0;
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value_collection = _tmp23_;
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value_collection_length1 = _tmp23__length1;
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ for (value_it = 0; value_it < _tmp23__length1; value_it = value_it + 1) {
+#line 2071 "DataSource.c"
+ gchar* _tmp24_ = NULL;
+ gchar* value = NULL;
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp24_ = g_strdup (value_collection[value_it]);
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value = _tmp24_;
+#line 2078 "DataSource.c"
+ {
+ gboolean _tmp25_ = FALSE;
+ const gchar* _tmp26_ = NULL;
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp26_ = value;
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp26_ != NULL) {
+#line 2086 "DataSource.c"
+ const gchar* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp27_ = value;
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp28_ = strlen (_tmp27_);
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp29_ = _tmp28_;
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp25_ = _tmp29_ > 0;
+#line 2098 "DataSource.c"
+ } else {
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp25_ = FALSE;
+#line 2102 "DataSource.c"
+ }
+#line 301 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp25_) {
+#line 2106 "DataSource.c"
+ GeeList* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp30_ = values;
+#line 302 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp31_ = value;
+#line 302 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection), _tmp31_);
+#line 2115 "DataSource.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (value);
+#line 2119 "DataSource.c"
+ }
+ }
+ }
+#line 305 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp32_ = values;
+#line 305 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp33_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 305 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp34_ = _tmp33_;
+#line 305 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp34_ > 0) {
+#line 2131 "DataSource.c"
+ GeeHashMap* _tmp35_ = NULL;
+ gchar** _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ const gchar* _tmp37_ = NULL;
+ GeeList* _tmp38_ = NULL;
+#line 306 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp35_ = self->priv->backlinks;
+#line 306 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp36_ = tokens;
+#line 306 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp36__length1 = tokens_length1;
+#line 306 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp37_ = _tmp36_[0];
+#line 306 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp38_ = values;
+#line 306 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp37_, _tmp38_);
+#line 2149 "DataSource.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (values);
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ decoded_values = (_vala_array_free (decoded_values, decoded_values_length1, (GDestroyNotify) g_free), NULL);
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL);
+#line 286 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (line);
+#line 2159 "DataSource.c"
+ }
+ }
+ }
+#line 278 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ lines = (_vala_array_free (lines, lines_length1, (GDestroyNotify) g_free), NULL);
+#line 2165 "DataSource.c"
+}
+
+
+static SourceSnapshot* data_source_real_save_snapshot (DataSource* self) {
+ SourceSnapshot* result = NULL;
+#line 312 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = NULL;
+#line 312 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 2175 "DataSource.c"
+}
+
+
+SourceSnapshot* data_source_save_snapshot (DataSource* self) {
+#line 311 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), NULL);
+#line 311 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return DATA_SOURCE_GET_CLASS (self)->save_snapshot (self);
+#line 2184 "DataSource.c"
+}
+
+
+void data_source_internal_mark_for_destroy (DataSource* self) {
+#line 316 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 317 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->marked_for_destroy = TRUE;
+#line 2193 "DataSource.c"
+}
+
+
+static gboolean data_source_real_internal_delete_backing (DataSource* self, GError** error) {
+ gboolean result = FALSE;
+#line 325 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = TRUE;
+#line 325 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 2203 "DataSource.c"
+}
+
+
+gboolean data_source_internal_delete_backing (DataSource* self, GError** error) {
+#line 324 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), FALSE);
+#line 324 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return DATA_SOURCE_GET_CLASS (self)->internal_delete_backing (self, error);
+#line 2212 "DataSource.c"
+}
+
+
+static gboolean data_source_real_equals (DataSource* self, DataSource* source) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 330 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail ((source == NULL) || IS_DATA_SOURCE (source), FALSE);
+#line 331 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = source;
+#line 331 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = self == _tmp0_;
+#line 331 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 2227 "DataSource.c"
+}
+
+
+gboolean data_source_equals (DataSource* self, DataSource* source) {
+#line 330 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), FALSE);
+#line 330 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return DATA_SOURCE_GET_CLASS (self)->equals (self, source);
+#line 2236 "DataSource.c"
+}
+
+
+static void data_source_real_destroy (DataSource* self) {
+ gboolean _tmp0_ = FALSE;
+#line 341 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->marked_for_destroy;
+#line 341 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp0_, "marked_for_destroy");
+#line 344 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->is_destroyed = TRUE;
+#line 2248 "DataSource.c"
+ {
+ gint ctr = 0;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = 0;
+#line 2253 "DataSource.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = TRUE;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 2260 "DataSource.c"
+ gint _tmp3_ = 0;
+ DataView** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ DataView** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ DataView* _tmp7_ = NULL;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp1_) {
+#line 2270 "DataSource.c"
+ gint _tmp2_ = 0;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = ctr;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = _tmp2_ + 1;
+#line 2276 "DataSource.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = FALSE;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = ctr;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->subscribers;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4__length1 = self->priv->subscribers_length1;
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!(_tmp3_ < _tmp4__length1)) {
+#line 347 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 2290 "DataSource.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = self->priv->subscribers;
+#line 348 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5__length1 = self->priv->subscribers_length1;
+#line 348 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = ctr;
+#line 348 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 348 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp7_ != NULL) {
+#line 2302 "DataSource.c"
+ DataView* view = NULL;
+ DataView** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ DataView* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ DataView** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ gint _tmp13_ = 0;
+ DataView* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = self->priv->subscribers;
+#line 349 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8__length1 = self->priv->subscribers_length1;
+#line 349 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = ctr;
+#line 349 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 349 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 349 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ view = _tmp11_;
+#line 350 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = self->priv->subscribers;
+#line 350 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12__length1 = self->priv->subscribers_length1;
+#line 350 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = ctr;
+#line 350 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_tmp12_[_tmp13_]);
+#line 350 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_[_tmp13_] = NULL;
+#line 350 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = _tmp12_[_tmp13_];
+#line 352 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = view;
+#line 352 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_view_notify_unsubscribed (_tmp15_, self);
+#line 348 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (view);
+#line 2344 "DataSource.c"
+ }
+ }
+ }
+ }
+#line 357 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_emit_by_name (self, "destroyed");
+#line 2351 "DataSource.c"
+}
+
+
+void data_source_destroy (DataSource* self) {
+#line 340 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 340 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ DATA_SOURCE_GET_CLASS (self)->destroy (self);
+#line 2360 "DataSource.c"
+}
+
+
+gboolean data_source_destroy_orphan (DataSource* self, gboolean delete_backing) {
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ gboolean _tmp0_ = FALSE;
+ SourceCollection* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 366 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (self), FALSE);
+#line 367 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ret = TRUE;
+#line 368 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = delete_backing;
+#line 368 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_) {
+#line 2378 "DataSource.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 370 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = data_source_internal_delete_backing (self, &_inner_error_);
+#line 370 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = _tmp2_;
+#line 370 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2389 "DataSource.c"
+ goto __catch47_g_error;
+ }
+#line 370 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ret = _tmp1_;
+#line 371 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = ret;
+#line 371 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp3_) {
+#line 2398 "DataSource.c"
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 372 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = _tmp4_;
+#line 372 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_warning ("DataSource.vala:372: Unable to delete backing for %s", _tmp5_);
+#line 372 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp5_);
+#line 2409 "DataSource.c"
+ }
+ }
+ goto __finally47;
+ __catch47_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ err = _inner_error_;
+#line 369 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _inner_error_ = NULL;
+#line 375 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 375 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp6_;
+#line 375 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = err;
+#line 375 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = _tmp8_->message;
+#line 375 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_warning ("DataSource.vala:375: Unable to delete backing for %s: %s", _tmp7_, _tmp9_);
+#line 375 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp7_);
+#line 376 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ret = FALSE;
+#line 369 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_error_free0 (err);
+#line 2440 "DataSource.c"
+ }
+ __finally47:
+#line 369 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 369 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 369 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_clear_error (&_inner_error_);
+#line 369 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return FALSE;
+#line 2451 "DataSource.c"
+ }
+ }
+#line 380 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_internal_mark_for_destroy (self);
+#line 381 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_destroy (self);
+#line 383 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = self->priv->unlinked_from_collection;
+#line 383 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp10_ != NULL) {
+#line 2462 "DataSource.c"
+ SourceCollection* _tmp11_ = NULL;
+#line 384 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = self->priv->unlinked_from_collection;
+#line 384 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_collection_notify_unlinked_destroyed (_tmp11_, self);
+#line 2468 "DataSource.c"
+ }
+#line 386 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = ret;
+#line 386 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 2474 "DataSource.c"
+}
+
+
+static void _vala_array_add122 (DataView*** array, int* length, int* size, DataView* value) {
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if ((*length) == (*size)) {
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *array = g_renew (DataView*, *array, (*size) + 1);
+#line 2485 "DataSource.c"
+ }
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ (*array)[(*length)++] = value;
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ (*array)[*length] = NULL;
+#line 2491 "DataSource.c"
+}
+
+
+void data_source_internal_subscribe (DataSource* self, DataView* view) {
+ gboolean _tmp0_ = FALSE;
+ DataView** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ DataView* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 395 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 396 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->in_contact;
+#line 396 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (!_tmp0_, "!in_contact");
+#line 2509 "DataSource.c"
+ {
+ gint ctr = 0;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = 0;
+#line 2514 "DataSource.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = TRUE;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 2521 "DataSource.c"
+ gint _tmp3_ = 0;
+ DataView** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ DataView** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ DataView* _tmp7_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp1_) {
+#line 2531 "DataSource.c"
+ gint _tmp2_ = 0;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = ctr;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = _tmp2_ + 1;
+#line 2537 "DataSource.c"
+ }
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = FALSE;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = ctr;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->subscribers;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4__length1 = self->priv->subscribers_length1;
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!(_tmp3_ < _tmp4__length1)) {
+#line 398 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 2551 "DataSource.c"
+ }
+#line 399 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = self->priv->subscribers;
+#line 399 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5__length1 = self->priv->subscribers_length1;
+#line 399 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = ctr;
+#line 399 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 399 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp7_ == NULL) {
+#line 2563 "DataSource.c"
+ DataView** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ DataView* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = self->priv->subscribers;
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8__length1 = self->priv->subscribers_length1;
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = ctr;
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = view;
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_tmp8_[_tmp9_]);
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_[_tmp9_] = _tmp11_;
+#line 400 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = _tmp8_[_tmp9_];
+#line 402 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return;
+#line 2588 "DataSource.c"
+ }
+ }
+ }
+ }
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = self->priv->subscribers;
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13__length1 = self->priv->subscribers_length1;
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = view;
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 406 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_array_add122 (&self->priv->subscribers, &self->priv->subscribers_length1, &self->priv->_subscribers_size_, _tmp15_);
+#line 2603 "DataSource.c"
+}
+
+
+void data_source_internal_unsubscribe (DataSource* self, DataView* view) {
+ gboolean _tmp0_ = FALSE;
+#line 411 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 411 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 412 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->in_contact;
+#line 412 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (!_tmp0_, "!in_contact");
+#line 2617 "DataSource.c"
+ {
+ gint ctr = 0;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = 0;
+#line 2622 "DataSource.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = TRUE;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 2629 "DataSource.c"
+ gint _tmp3_ = 0;
+ DataView** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ DataView** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ DataView* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp1_) {
+#line 2640 "DataSource.c"
+ gint _tmp2_ = 0;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = ctr;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = _tmp2_ + 1;
+#line 2646 "DataSource.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = FALSE;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = ctr;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->subscribers;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4__length1 = self->priv->subscribers_length1;
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!(_tmp3_ < _tmp4__length1)) {
+#line 414 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 2660 "DataSource.c"
+ }
+#line 415 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = self->priv->subscribers;
+#line 415 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5__length1 = self->priv->subscribers_length1;
+#line 415 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = ctr;
+#line 415 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 415 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = view;
+#line 415 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp7_ == _tmp8_) {
+#line 2674 "DataSource.c"
+ DataView** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gint _tmp10_ = 0;
+ DataView* _tmp11_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = self->priv->subscribers;
+#line 416 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9__length1 = self->priv->subscribers_length1;
+#line 416 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = ctr;
+#line 416 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_tmp9_[_tmp10_]);
+#line 416 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_[_tmp10_] = NULL;
+#line 416 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _tmp9_[_tmp10_];
+#line 418 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return;
+#line 2693 "DataSource.c"
+ }
+ }
+ }
+ }
+}
+
+
+void data_source_contact_subscribers (DataSource* self, DataSourceContactSubscriber contact_subscriber, void* contact_subscriber_target) {
+ gboolean _tmp0_ = FALSE;
+#line 423 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 424 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->in_contact;
+#line 424 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (!_tmp0_, "!in_contact");
+#line 426 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->in_contact = TRUE;
+#line 2711 "DataSource.c"
+ {
+ gint ctr = 0;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = 0;
+#line 2716 "DataSource.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = TRUE;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 2723 "DataSource.c"
+ gint _tmp3_ = 0;
+ DataView** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ DataView** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ DataView* _tmp7_ = NULL;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp1_) {
+#line 2733 "DataSource.c"
+ gint _tmp2_ = 0;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = ctr;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = _tmp2_ + 1;
+#line 2739 "DataSource.c"
+ }
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = FALSE;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = ctr;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->subscribers;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4__length1 = self->priv->subscribers_length1;
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!(_tmp3_ < _tmp4__length1)) {
+#line 427 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 2753 "DataSource.c"
+ }
+#line 428 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = self->priv->subscribers;
+#line 428 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5__length1 = self->priv->subscribers_length1;
+#line 428 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = ctr;
+#line 428 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 428 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp7_ != NULL) {
+#line 2765 "DataSource.c"
+ DataSourceContactSubscriber _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ DataView** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gint _tmp10_ = 0;
+ DataView* _tmp11_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = contact_subscriber;
+#line 429 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8__target = contact_subscriber_target;
+#line 429 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = self->priv->subscribers;
+#line 429 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9__length1 = self->priv->subscribers_length1;
+#line 429 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = ctr;
+#line 429 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _tmp9_[_tmp10_];
+#line 429 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ (_tmp11_, _tmp8__target);
+#line 2786 "DataSource.c"
+ }
+ }
+ }
+ }
+#line 431 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->in_contact = FALSE;
+#line 2793 "DataSource.c"
+}
+
+
+void data_source_contact_subscribers_alteration (DataSource* self, Alteration* alteration) {
+ gboolean _tmp0_ = FALSE;
+#line 434 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (self));
+#line 434 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 435 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->in_contact;
+#line 435 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (!_tmp0_, "!in_contact");
+#line 437 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->in_contact = TRUE;
+#line 2809 "DataSource.c"
+ {
+ gint ctr = 0;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = 0;
+#line 2814 "DataSource.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = TRUE;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 2821 "DataSource.c"
+ gint _tmp3_ = 0;
+ DataView** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ DataView** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gint _tmp6_ = 0;
+ DataView* _tmp7_ = NULL;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp1_) {
+#line 2831 "DataSource.c"
+ gint _tmp2_ = 0;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = ctr;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ctr = _tmp2_ + 1;
+#line 2837 "DataSource.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = FALSE;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = ctr;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = self->priv->subscribers;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4__length1 = self->priv->subscribers_length1;
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!(_tmp3_ < _tmp4__length1)) {
+#line 438 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 2851 "DataSource.c"
+ }
+#line 439 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = self->priv->subscribers;
+#line 439 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5__length1 = self->priv->subscribers_length1;
+#line 439 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = ctr;
+#line 439 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp5_[_tmp6_];
+#line 439 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp7_ != NULL) {
+#line 2863 "DataSource.c"
+ DataView** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ DataView* _tmp10_ = NULL;
+ Alteration* _tmp11_ = NULL;
+#line 440 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = self->priv->subscribers;
+#line 440 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8__length1 = self->priv->subscribers_length1;
+#line 440 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = ctr;
+#line 440 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 440 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = alteration;
+#line 440 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_object_notify_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject), _tmp11_);
+#line 2881 "DataSource.c"
+ }
+ }
+ }
+ }
+#line 442 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->in_contact = FALSE;
+#line 2888 "DataSource.c"
+}
+
+
+static void data_source_real_unlinked (DataSource* self, SourceCollection* sources) {
+#line 51 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (sources));
+#line 2895 "DataSource.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__DATA_COLLECTION (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__DATA_COLLECTION) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__DATA_COLLECTION callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data1 = closure->data;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2914 "DataSource.c"
+ } else {
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data2 = closure->data;
+#line 2920 "DataSource.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ callback = (GMarshalFunc_VOID__DATA_COLLECTION) (marshal_data ? marshal_data : cc->callback);
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ callback (data1, value_get_data_collection (param_values + 1), data2);
+#line 2926 "DataSource.c"
+}
+
+
+static void data_source_real_relinked (DataSource* self, SourceCollection* sources) {
+#line 55 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (sources));
+#line 2933 "DataSource.c"
+}
+
+
+static void data_source_real_destroyed (DataSource* self) {
+}
+
+
+static void data_source_class_init (DataSourceClass * klass) {
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ data_source_parent_class = g_type_class_peek_parent (klass);
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_type_class_add_private (klass, sizeof (DataSourcePrivate));
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataObjectClass *) klass)->notify_membership_changed = data_source_real_notify_membership_changed;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->notify_held_in_tank = data_source_real_notify_held_in_tank;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataObjectClass *) klass)->notify_altered = data_source_real_notify_altered;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->notify_unlinking = data_source_real_notify_unlinking;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->notify_unlinked = data_source_real_notify_unlinked;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->notify_relinking = data_source_real_notify_relinking;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->notify_relinked = data_source_real_notify_relinked;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->get_typename = data_source_real_get_typename;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->get_instance_id = data_source_real_get_instance_id;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->get_source_id = data_source_real_get_source_id;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->commit_backlinks = data_source_real_commit_backlinks;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->save_snapshot = data_source_real_save_snapshot;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->internal_delete_backing = data_source_real_internal_delete_backing;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->equals = data_source_real_equals;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->destroy = data_source_real_destroy;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->unlinked = data_source_real_unlinked;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->relinked = data_source_real_relinked;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((DataSourceClass *) klass)->destroyed = data_source_real_destroyed;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_source_finalize;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_new ("unlinked", TYPE_DATA_SOURCE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataSourceClass, unlinked), NULL, NULL, g_cclosure_user_marshal_VOID__DATA_COLLECTION, G_TYPE_NONE, 1, TYPE_SOURCE_COLLECTION);
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_new ("relinked", TYPE_DATA_SOURCE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataSourceClass, relinked), NULL, NULL, g_cclosure_user_marshal_VOID__DATA_COLLECTION, G_TYPE_NONE, 1, TYPE_SOURCE_COLLECTION);
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_new ("destroyed", TYPE_DATA_SOURCE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataSourceClass, destroyed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 2990 "DataSource.c"
+}
+
+
+static void data_source_instance_init (DataSource * self) {
+ DataView** _tmp0_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv = DATA_SOURCE_GET_PRIVATE (self);
+#line 42 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = g_new0 (DataView*, 4 + 1);
+#line 42 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->subscribers = _tmp0_;
+#line 42 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->subscribers_length1 = 4;
+#line 42 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->_subscribers_size_ = self->priv->subscribers_length1;
+#line 43 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->holding_tank = NULL;
+#line 44 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->unlinked_from_collection = NULL;
+#line 45 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->backlinks = NULL;
+#line 46 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->in_contact = FALSE;
+#line 47 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->marked_for_destroy = FALSE;
+#line 48 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->is_destroyed = FALSE;
+#line 3018 "DataSource.c"
+}
+
+
+static void data_source_finalize (GObject* obj) {
+ DataSource * self;
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATA_SOURCE, DataSource);
+#line 42 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->subscribers = (_vala_array_free (self->priv->subscribers, self->priv->subscribers_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 43 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _source_holding_tank_unref0 (self->priv->holding_tank);
+#line 45 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->backlinks);
+#line 38 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ G_OBJECT_CLASS (data_source_parent_class)->finalize (obj);
+#line 3034 "DataSource.c"
+}
+
+
+GType data_source_get_type (void) {
+ static volatile gsize data_source_type_id__volatile = 0;
+ if (g_once_init_enter (&data_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataSource), 0, (GInstanceInitFunc) data_source_instance_init, NULL };
+ GType data_source_type_id;
+ data_source_type_id = g_type_register_static (TYPE_DATA_OBJECT, "DataSource", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&data_source_type_id__volatile, data_source_type_id);
+ }
+ return data_source_type_id__volatile;
+}
+
+
+static void source_snapshot_real_notify_broken (SourceSnapshot* self) {
+#line 455 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->snapshot_broken = TRUE;
+#line 457 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_emit_by_name (self, "broken");
+#line 3055 "DataSource.c"
+}
+
+
+void source_snapshot_notify_broken (SourceSnapshot* self) {
+#line 454 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_SNAPSHOT (self));
+#line 454 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ SOURCE_SNAPSHOT_GET_CLASS (self)->notify_broken (self);
+#line 3064 "DataSource.c"
+}
+
+
+gboolean source_snapshot_is_broken (SourceSnapshot* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 460 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_SNAPSHOT (self), FALSE);
+#line 461 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->snapshot_broken;
+#line 461 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp0_;
+#line 461 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3079 "DataSource.c"
+}
+
+
+SourceSnapshot* source_snapshot_construct (GType object_type) {
+ SourceSnapshot* self = NULL;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = (SourceSnapshot*) g_type_create_instance (object_type);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self;
+#line 3089 "DataSource.c"
+}
+
+
+static void source_snapshot_real_broken (SourceSnapshot* self) {
+}
+
+
+static void value_source_snapshot_init (GValue* value) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3100 "DataSource.c"
+}
+
+
+static void value_source_snapshot_free_value (GValue* value) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (value->data[0].v_pointer) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_snapshot_unref (value->data[0].v_pointer);
+#line 3109 "DataSource.c"
+ }
+}
+
+
+static void value_source_snapshot_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (src_value->data[0].v_pointer) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ dest_value->data[0].v_pointer = source_snapshot_ref (src_value->data[0].v_pointer);
+#line 3119 "DataSource.c"
+ } else {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3123 "DataSource.c"
+ }
+}
+
+
+static gpointer value_source_snapshot_peek_pointer (const GValue* value) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return value->data[0].v_pointer;
+#line 3131 "DataSource.c"
+}
+
+
+static gchar* value_source_snapshot_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (collect_values[0].v_pointer) {
+#line 3138 "DataSource.c"
+ SourceSnapshot* object;
+ object = collect_values[0].v_pointer;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3145 "DataSource.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3149 "DataSource.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = source_snapshot_ref (object);
+#line 3153 "DataSource.c"
+ } else {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3157 "DataSource.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 3161 "DataSource.c"
+}
+
+
+static gchar* value_source_snapshot_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SourceSnapshot** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!object_p) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3172 "DataSource.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!value->data[0].v_pointer) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = NULL;
+#line 3178 "DataSource.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3182 "DataSource.c"
+ } else {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = source_snapshot_ref (value->data[0].v_pointer);
+#line 3186 "DataSource.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 3190 "DataSource.c"
+}
+
+
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSourceSnapshot* spec;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SOURCE_SNAPSHOT), NULL);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return G_PARAM_SPEC (spec);
+#line 3204 "DataSource.c"
+}
+
+
+gpointer value_get_source_snapshot (const GValue* value) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_SNAPSHOT), NULL);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return value->data[0].v_pointer;
+#line 3213 "DataSource.c"
+}
+
+
+void value_set_source_snapshot (GValue* value, gpointer v_object) {
+ SourceSnapshot* old;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_SNAPSHOT));
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ old = value->data[0].v_pointer;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (v_object) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_SNAPSHOT));
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_snapshot_ref (value->data[0].v_pointer);
+#line 3233 "DataSource.c"
+ } else {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3237 "DataSource.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (old) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_snapshot_unref (old);
+#line 3243 "DataSource.c"
+ }
+}
+
+
+void value_take_source_snapshot (GValue* value, gpointer v_object) {
+ SourceSnapshot* old;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_SNAPSHOT));
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ old = value->data[0].v_pointer;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (v_object) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_SNAPSHOT));
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 3262 "DataSource.c"
+ } else {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3266 "DataSource.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (old) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_snapshot_unref (old);
+#line 3272 "DataSource.c"
+ }
+}
+
+
+static void source_snapshot_class_init (SourceSnapshotClass * klass) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_snapshot_parent_class = g_type_class_peek_parent (klass);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceSnapshotClass *) klass)->finalize = source_snapshot_finalize;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_type_class_add_private (klass, sizeof (SourceSnapshotPrivate));
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceSnapshotClass *) klass)->notify_broken = source_snapshot_real_notify_broken;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceSnapshotClass *) klass)->broken = source_snapshot_real_broken;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_new ("broken", TYPE_SOURCE_SNAPSHOT, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceSnapshotClass, broken), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 3290 "DataSource.c"
+}
+
+
+static void source_snapshot_instance_init (SourceSnapshot * self) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv = SOURCE_SNAPSHOT_GET_PRIVATE (self);
+#line 447 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->snapshot_broken = FALSE;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->ref_count = 1;
+#line 3301 "DataSource.c"
+}
+
+
+static void source_snapshot_finalize (SourceSnapshot* obj) {
+ SourceSnapshot * self;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SOURCE_SNAPSHOT, SourceSnapshot);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_handlers_destroy (self);
+#line 3311 "DataSource.c"
+}
+
+
+GType source_snapshot_get_type (void) {
+ static volatile gsize source_snapshot_type_id__volatile = 0;
+ if (g_once_init_enter (&source_snapshot_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_source_snapshot_init, value_source_snapshot_free_value, value_source_snapshot_copy_value, value_source_snapshot_peek_pointer, "p", value_source_snapshot_collect_value, "p", value_source_snapshot_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SourceSnapshotClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) source_snapshot_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SourceSnapshot), 0, (GInstanceInitFunc) source_snapshot_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType source_snapshot_type_id;
+ source_snapshot_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SourceSnapshot", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&source_snapshot_type_id__volatile, source_snapshot_type_id);
+ }
+ return source_snapshot_type_id__volatile;
+}
+
+
+gpointer source_snapshot_ref (gpointer instance) {
+ SourceSnapshot* self;
+ self = instance;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return instance;
+#line 3336 "DataSource.c"
+}
+
+
+void source_snapshot_unref (gpointer instance) {
+ SourceSnapshot* self;
+ self = instance;
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ SOURCE_SNAPSHOT_GET_CLASS (self)->finalize (self);
+#line 446 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3349 "DataSource.c"
+ }
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3373 "DataSource.c"
+}
+
+
+SourceBacklink* source_backlink_construct (GType object_type, const gchar* name, const gchar* value) {
+ SourceBacklink* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 498 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 498 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (value != NULL, NULL);
+#line 498 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = (SourceBacklink*) g_type_create_instance (object_type);
+#line 499 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = name;
+#line 499 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = value;
+#line 499 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = source_backlink_validate_name_value (_tmp0_, _tmp1_);
+#line 499 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp2_, "validate_name_value(name, value)");
+#line 501 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = name;
+#line 501 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = string_strip (_tmp3_);
+#line 501 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->_name);
+#line 501 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->_name = _tmp4_;
+#line 502 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = value;
+#line 502 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = string_strip (_tmp5_);
+#line 502 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->_value);
+#line 502 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->_value = _tmp6_;
+#line 498 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self;
+#line 3418 "DataSource.c"
+}
+
+
+SourceBacklink* source_backlink_new (const gchar* name, const gchar* value) {
+#line 498 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return source_backlink_construct (TYPE_SOURCE_BACKLINK, name, value);
+#line 3425 "DataSource.c"
+}
+
+
+SourceBacklink* source_backlink_construct_from_source (GType object_type, DataSource* source) {
+ SourceBacklink* self = NULL;
+ DataSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ gint64 _tmp5_ = 0LL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 505 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 505 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = (SourceBacklink*) g_type_create_instance (object_type);
+#line 506 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = source;
+#line 506 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = data_source_get_typename (_tmp0_);
+#line 506 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = _tmp1_;
+#line 506 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = string_strip (_tmp2_);
+#line 506 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->_name);
+#line 506 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->_name = _tmp3_;
+#line 506 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp2_);
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = source;
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = data_source_get_instance_id (_tmp4_);
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp5_);
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp6_;
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = string_strip (_tmp7_);
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->_value);
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->_value = _tmp8_;
+#line 507 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (_tmp7_);
+#line 509 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = self->priv->_name;
+#line 509 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = self->priv->_value;
+#line 509 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = source_backlink_validate_name_value (_tmp9_, _tmp10_);
+#line 509 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp11_, "validate_name_value(_name, _value)");
+#line 505 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self;
+#line 3487 "DataSource.c"
+}
+
+
+SourceBacklink* source_backlink_new_from_source (DataSource* source) {
+#line 505 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return source_backlink_construct_from_source (TYPE_SOURCE_BACKLINK, source);
+#line 3494 "DataSource.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3514 "DataSource.c"
+}
+
+
+static gboolean source_backlink_validate_name_value (const gchar* name, const gchar* value) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 512 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (name != NULL, FALSE);
+#line 512 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (value != NULL, FALSE);
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = name;
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = string_contains (_tmp2_, "=");
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp3_) {
+#line 3534 "DataSource.c"
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = name;
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = string_contains (_tmp4_, "|");
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = !_tmp5_;
+#line 3543 "DataSource.c"
+ } else {
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = FALSE;
+#line 3547 "DataSource.c"
+ }
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_) {
+#line 3551 "DataSource.c"
+ const gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = value;
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = string_contains (_tmp6_, "|");
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = !_tmp7_;
+#line 3560 "DataSource.c"
+ } else {
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = FALSE;
+#line 3564 "DataSource.c"
+ }
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp0_;
+#line 513 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3570 "DataSource.c"
+}
+
+
+gchar* source_backlink_to_string (SourceBacklink* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 516 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (self), NULL);
+#line 517 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = source_backlink_get_name (self);
+#line 517 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = _tmp0_;
+#line 517 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = source_backlink_get_value (self);
+#line 517 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = _tmp2_;
+#line 517 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = g_strdup_printf ("Backlink %s=%s", _tmp1_, _tmp3_);
+#line 517 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp4_;
+#line 517 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3597 "DataSource.c"
+}
+
+
+guint source_backlink_hash_func (SourceBacklink* backlink) {
+ guint result = 0U;
+ GHashFunc _tmp0_ = NULL;
+ SourceBacklink* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ GHashFunc _tmp4_ = NULL;
+ SourceBacklink* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 520 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail ((backlink == NULL) || IS_SOURCE_BACKLINK (backlink), 0U);
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = g_str_hash;
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = backlink;
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = _tmp1_->priv->_name;
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = _tmp0_ (_tmp2_);
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = g_str_hash;
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = backlink;
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = _tmp5_->priv->_value;
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = _tmp4_ (_tmp6_);
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp3_ ^ _tmp7_;
+#line 521 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3633 "DataSource.c"
+}
+
+
+gboolean source_backlink_equal_func (SourceBacklink* alink, SourceBacklink* blink) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GEqualFunc _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ SourceBacklink* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 524 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail ((alink == NULL) || IS_SOURCE_BACKLINK (alink), FALSE);
+#line 524 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail ((blink == NULL) || IS_SOURCE_BACKLINK (blink), FALSE);
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = g_str_equal;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = alink;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = _tmp2_->priv->_name;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = blink;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = _tmp4_->priv->_name;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = _tmp1_ (_tmp3_, _tmp5_);
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp6_) {
+#line 3664 "DataSource.c"
+ GEqualFunc _tmp7_ = NULL;
+ SourceBacklink* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ SourceBacklink* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = g_str_equal;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = alink;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = _tmp8_->priv->_value;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = blink;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _tmp10_->priv->_value;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = _tmp7_ (_tmp9_, _tmp11_);
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = _tmp12_;
+#line 3685 "DataSource.c"
+ } else {
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = FALSE;
+#line 3689 "DataSource.c"
+ }
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp0_;
+#line 525 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3695 "DataSource.c"
+}
+
+
+const gchar* source_backlink_get_name (SourceBacklink* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (self), NULL);
+#line 474 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->_name;
+#line 474 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp0_;
+#line 474 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3710 "DataSource.c"
+}
+
+
+const gchar* source_backlink_get_value (SourceBacklink* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 479 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (self), NULL);
+#line 480 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->_value;
+#line 480 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp0_;
+#line 480 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3725 "DataSource.c"
+}
+
+
+const gchar* source_backlink_get_typename (SourceBacklink* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 486 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (self), NULL);
+#line 487 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->_name;
+#line 487 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp0_;
+#line 487 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3740 "DataSource.c"
+}
+
+
+static gint64 int64_parse (const gchar* str) {
+ gint64 result = 0LL;
+ const gchar* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+#line 679 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (str != NULL, 0LL);
+#line 680 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 680 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_ascii_strtoll (_tmp0_, NULL, (guint) 0);
+#line 680 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 680 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3758 "DataSource.c"
+}
+
+
+gint64 source_backlink_get_instance_id (SourceBacklink* self) {
+ gint64 result;
+ const gchar* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+#line 493 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (self), 0LL);
+#line 494 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->_value;
+#line 494 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = int64_parse (_tmp0_);
+#line 494 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp1_;
+#line 494 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 3776 "DataSource.c"
+}
+
+
+static void value_source_backlink_init (GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3783 "DataSource.c"
+}
+
+
+static void value_source_backlink_free_value (GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (value->data[0].v_pointer) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_backlink_unref (value->data[0].v_pointer);
+#line 3792 "DataSource.c"
+ }
+}
+
+
+static void value_source_backlink_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (src_value->data[0].v_pointer) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ dest_value->data[0].v_pointer = source_backlink_ref (src_value->data[0].v_pointer);
+#line 3802 "DataSource.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3806 "DataSource.c"
+ }
+}
+
+
+static gpointer value_source_backlink_peek_pointer (const GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return value->data[0].v_pointer;
+#line 3814 "DataSource.c"
+}
+
+
+static gchar* value_source_backlink_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (collect_values[0].v_pointer) {
+#line 3821 "DataSource.c"
+ SourceBacklink* object;
+ object = collect_values[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3828 "DataSource.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3832 "DataSource.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = source_backlink_ref (object);
+#line 3836 "DataSource.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3840 "DataSource.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 3844 "DataSource.c"
+}
+
+
+static gchar* value_source_backlink_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SourceBacklink** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!object_p) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3855 "DataSource.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!value->data[0].v_pointer) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = NULL;
+#line 3861 "DataSource.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3865 "DataSource.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = source_backlink_ref (value->data[0].v_pointer);
+#line 3869 "DataSource.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 3873 "DataSource.c"
+}
+
+
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSourceBacklink* spec;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SOURCE_BACKLINK), NULL);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return G_PARAM_SPEC (spec);
+#line 3887 "DataSource.c"
+}
+
+
+gpointer value_get_source_backlink (const GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_BACKLINK), NULL);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return value->data[0].v_pointer;
+#line 3896 "DataSource.c"
+}
+
+
+void value_set_source_backlink (GValue* value, gpointer v_object) {
+ SourceBacklink* old;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_BACKLINK));
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ old = value->data[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (v_object) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_BACKLINK));
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_backlink_ref (value->data[0].v_pointer);
+#line 3916 "DataSource.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3920 "DataSource.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (old) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_backlink_unref (old);
+#line 3926 "DataSource.c"
+ }
+}
+
+
+void value_take_source_backlink (GValue* value, gpointer v_object) {
+ SourceBacklink* old;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_BACKLINK));
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ old = value->data[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (v_object) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_BACKLINK));
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 3945 "DataSource.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 3949 "DataSource.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (old) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_backlink_unref (old);
+#line 3955 "DataSource.c"
+ }
+}
+
+
+static void source_backlink_class_init (SourceBacklinkClass * klass) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_backlink_parent_class = g_type_class_peek_parent (klass);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceBacklinkClass *) klass)->finalize = source_backlink_finalize;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_type_class_add_private (klass, sizeof (SourceBacklinkPrivate));
+#line 3967 "DataSource.c"
+}
+
+
+static void source_backlink_instance_init (SourceBacklink * self) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv = SOURCE_BACKLINK_GET_PRIVATE (self);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->ref_count = 1;
+#line 3976 "DataSource.c"
+}
+
+
+static void source_backlink_finalize (SourceBacklink* obj) {
+ SourceBacklink * self;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SOURCE_BACKLINK, SourceBacklink);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_handlers_destroy (self);
+#line 469 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->_name);
+#line 470 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->_value);
+#line 3990 "DataSource.c"
+}
+
+
+GType source_backlink_get_type (void) {
+ static volatile gsize source_backlink_type_id__volatile = 0;
+ if (g_once_init_enter (&source_backlink_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_source_backlink_init, value_source_backlink_free_value, value_source_backlink_copy_value, value_source_backlink_peek_pointer, "p", value_source_backlink_collect_value, "p", value_source_backlink_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SourceBacklinkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) source_backlink_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SourceBacklink), 0, (GInstanceInitFunc) source_backlink_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType source_backlink_type_id;
+ source_backlink_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SourceBacklink", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&source_backlink_type_id__volatile, source_backlink_type_id);
+ }
+ return source_backlink_type_id__volatile;
+}
+
+
+gpointer source_backlink_ref (gpointer instance) {
+ SourceBacklink* self;
+ self = instance;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return instance;
+#line 4015 "DataSource.c"
+}
+
+
+void source_backlink_unref (gpointer instance) {
+ SourceBacklink* self;
+ self = instance;
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ SOURCE_BACKLINK_GET_CLASS (self)->finalize (self);
+#line 468 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4028 "DataSource.c"
+ }
+}
+
+
+static void _source_proxy_on_source_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self) {
+#line 588 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_on_source_added ((SourceProxy*) self, added);
+#line 4036 "DataSource.c"
+}
+
+
+static void _source_proxy_on_snapshot_broken_source_snapshot_broken (SourceSnapshot* _sender, gpointer self) {
+#line 577 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_on_snapshot_broken ((SourceProxy*) self);
+#line 4043 "DataSource.c"
+}
+
+
+SourceProxy* source_proxy_construct (GType object_type, DataSource* source) {
+ SourceProxy* self = NULL;
+ DataSource* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ DataSource* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ SourceSnapshot* _tmp5_ = NULL;
+ SourceSnapshot* _tmp6_ = NULL;
+ SourceSnapshot* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ DataCollection* _tmp10_ = NULL;
+ SourceCollection* _tmp11_ = NULL;
+ SourceCollection* _tmp12_ = NULL;
+#line 571 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 571 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = (SourceProxy*) g_type_create_instance (object_type);
+#line 572 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = source;
+#line 572 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = data_object_get_object_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 572 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->object_id = _tmp1_;
+#line 573 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = source;
+#line 573 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 573 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->source_string);
+#line 573 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->source_string = _tmp3_;
+#line 575 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = source;
+#line 575 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = data_source_save_snapshot (_tmp4_);
+#line 575 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _source_snapshot_unref0 (self->priv->snapshot);
+#line 575 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->snapshot = _tmp5_;
+#line 576 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = self->priv->snapshot;
+#line 576 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp6_ != NULL, "snapshot != null");
+#line 577 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = self->priv->snapshot;
+#line 577 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_connect (_tmp7_, "broken", (GCallback) _source_proxy_on_snapshot_broken_source_snapshot_broken, self);
+#line 579 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = source;
+#line 579 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_set_source (self, _tmp8_);
+#line 581 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = source;
+#line 581 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 581 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _data_collection_unref0 (self->priv->membership);
+#line 581 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->membership = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_SOURCE_COLLECTION, SourceCollection);
+#line 582 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = self->priv->membership;
+#line 582 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp11_ != NULL, "membership != null");
+#line 583 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = self->priv->membership;
+#line 583 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_COLLECTION, DataCollection), "items-added", (GCallback) _source_proxy_on_source_added_data_collection_items_added, self);
+#line 571 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return self;
+#line 4118 "DataSource.c"
+}
+
+
+static DataSource* source_proxy_real_reconstitute (SourceProxy* self, gint64 object_id, SourceSnapshot* snapshot) {
+#line 591 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_critical ("Type `%s' does not implement abstract method `source_proxy_reconstitute'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 591 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 4127 "DataSource.c"
+}
+
+
+DataSource* source_proxy_reconstitute (SourceProxy* self, gint64 object_id, SourceSnapshot* snapshot) {
+#line 591 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_PROXY (self), NULL);
+#line 591 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return SOURCE_PROXY_GET_CLASS (self)->reconstitute (self, object_id, snapshot);
+#line 4136 "DataSource.c"
+}
+
+
+static void source_proxy_real_notify_reconstituted (SourceProxy* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+#line 593 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 594 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = source;
+#line 594 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_emit_by_name (self, "reconstituted", _tmp0_);
+#line 4148 "DataSource.c"
+}
+
+
+void source_proxy_notify_reconstituted (SourceProxy* self, DataSource* source) {
+#line 593 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 593 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ SOURCE_PROXY_GET_CLASS (self)->notify_reconstituted (self, source);
+#line 4157 "DataSource.c"
+}
+
+
+static void source_proxy_real_notify_dehydrated (SourceProxy* self) {
+#line 598 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_emit_by_name (self, "dehydrated");
+#line 4164 "DataSource.c"
+}
+
+
+void source_proxy_notify_dehydrated (SourceProxy* self) {
+#line 597 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 597 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ SOURCE_PROXY_GET_CLASS (self)->notify_dehydrated (self);
+#line 4173 "DataSource.c"
+}
+
+
+static void source_proxy_real_notify_broken (SourceProxy* self) {
+#line 602 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_emit_by_name (self, "broken");
+#line 4180 "DataSource.c"
+}
+
+
+void source_proxy_notify_broken (SourceProxy* self) {
+#line 601 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 601 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ SOURCE_PROXY_GET_CLASS (self)->notify_broken (self);
+#line 4189 "DataSource.c"
+}
+
+
+static void source_proxy_on_snapshot_broken (SourceProxy* self) {
+#line 605 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 606 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_drop_source (self);
+#line 608 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_notify_broken (self);
+#line 4200 "DataSource.c"
+}
+
+
+static void _source_proxy_on_destroyed_data_source_destroyed (DataSource* _sender, gpointer self) {
+#line 615 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_on_destroyed ((SourceProxy*) self);
+#line 4207 "DataSource.c"
+}
+
+
+static void source_proxy_set_source (SourceProxy* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+#line 611 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 611 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 612 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_drop_source (self);
+#line 614 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = source;
+#line 614 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 614 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->source);
+#line 614 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->source = _tmp1_;
+#line 615 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = source;
+#line 615 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_connect (_tmp2_, "destroyed", (GCallback) _source_proxy_on_destroyed_data_source_destroyed, self);
+#line 4233 "DataSource.c"
+}
+
+
+static void source_proxy_drop_source (SourceProxy* self) {
+ DataSource* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 618 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 619 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->source;
+#line 619 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_ == NULL) {
+#line 620 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return;
+#line 4249 "DataSource.c"
+ }
+#line 622 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = self->priv->source;
+#line 622 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_parse_name ("destroyed", TYPE_DATA_SOURCE, &_tmp2_, NULL, FALSE);
+#line 622 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _source_proxy_on_destroyed_data_source_destroyed, self);
+#line 623 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->source);
+#line 623 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->source = NULL;
+#line 4261 "DataSource.c"
+}
+
+
+DataSource* source_proxy_get_source (SourceProxy* self) {
+ DataSource* result = NULL;
+ SourceSnapshot* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ DataSource* _tmp2_ = NULL;
+ DataSource* new_source = NULL;
+ gint64 _tmp5_ = 0LL;
+ SourceSnapshot* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ gint64 _tmp12_ = 0LL;
+ DataSource* _tmp13_ = NULL;
+ gint64 _tmp14_ = 0LL;
+ DataSource* _tmp17_ = NULL;
+ gint64 _tmp18_ = 0LL;
+ gint64 _tmp19_ = 0LL;
+ SourceCollection* _tmp20_ = NULL;
+ DataSource* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ DataSource* _tmp23_ = NULL;
+ DataSource* _tmp24_ = NULL;
+#line 626 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_SOURCE_PROXY (self), NULL);
+#line 627 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->snapshot;
+#line 627 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = source_snapshot_is_broken (_tmp0_);
+#line 627 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp1_) {
+#line 628 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = NULL;
+#line 628 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 4299 "DataSource.c"
+ }
+#line 630 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = self->priv->source;
+#line 630 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp2_ != NULL) {
+#line 4305 "DataSource.c"
+ DataSource* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+#line 631 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = self->priv->source;
+#line 631 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 631 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp4_;
+#line 631 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 4316 "DataSource.c"
+ }
+#line 636 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = self->priv->object_id;
+#line 636 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = self->priv->snapshot;
+#line 636 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = source_proxy_reconstitute (self, _tmp5_, _tmp6_);
+#line 636 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ new_source = _tmp7_;
+#line 637 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = self->priv->source;
+#line 637 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = new_source;
+#line 637 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp8_ != _tmp9_) {
+#line 4332 "DataSource.c"
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+#line 638 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = new_source;
+#line 638 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 638 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->source);
+#line 638 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->source = _tmp11_;
+#line 4343 "DataSource.c"
+ }
+#line 639 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp12_ = self->priv->object_id;
+#line 639 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp13_ = self->priv->source;
+#line 639 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp14_ = data_object_get_object_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_OBJECT, DataObject));
+#line 639 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp12_ != _tmp14_) {
+#line 4353 "DataSource.c"
+ DataSource* _tmp15_ = NULL;
+ gint64 _tmp16_ = 0LL;
+#line 640 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp15_ = new_source;
+#line 640 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp16_ = data_object_get_object_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_OBJECT, DataObject));
+#line 640 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv->object_id = _tmp16_;
+#line 4362 "DataSource.c"
+ }
+#line 641 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp17_ = self->priv->source;
+#line 641 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp18_ = data_object_get_object_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_OBJECT, DataObject));
+#line 641 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp19_ = self->priv->object_id;
+#line 641 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp18_ == _tmp19_, "source.get_object_id() == object_id");
+#line 642 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp20_ = self->priv->membership;
+#line 642 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp21_ = self->priv->source;
+#line 642 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp22_ = data_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_OBJECT, DataObject));
+#line 642 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp22_, "membership.contains(source)");
+#line 644 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp23_ = self->priv->source;
+#line 644 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 644 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ result = _tmp24_;
+#line 644 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (new_source);
+#line 644 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return result;
+#line 4390 "DataSource.c"
+}
+
+
+static void source_proxy_on_destroyed (SourceProxy* self) {
+ DataSource* _tmp0_ = NULL;
+#line 647 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 648 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->source;
+#line 648 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _vala_assert (_tmp0_ != NULL, "source != null");
+#line 651 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_drop_source (self);
+#line 653 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_notify_dehydrated (self);
+#line 4406 "DataSource.c"
+}
+
+
+static void source_proxy_on_source_added (SourceProxy* self, GeeIterable* added) {
+ DataSource* _tmp0_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_SOURCE_PROXY (self));
+#line 656 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 658 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->source;
+#line 658 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp0_ != NULL) {
+#line 659 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return;
+#line 4422 "DataSource.c"
+ }
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp1_ = added;
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _object_it = _tmp2_;
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ while (TRUE) {
+#line 4436 "DataSource.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+ gint64 _tmp8_ = 0LL;
+ gint64 _tmp9_ = 0LL;
+ DataObject* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp3_ = _object_it;
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!_tmp4_) {
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 4455 "DataSource.c"
+ }
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp5_ = _object_it;
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ object = (DataObject*) _tmp6_;
+#line 663 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp7_ = object;
+#line 663 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp8_ = data_object_get_object_id (_tmp7_);
+#line 663 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp9_ = self->priv->object_id;
+#line 663 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (_tmp8_ != _tmp9_) {
+#line 664 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (object);
+#line 664 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ continue;
+#line 4475 "DataSource.c"
+ }
+#line 667 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp10_ = object;
+#line 667 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_set_source (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_SOURCE, DataSource));
+#line 669 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp11_ = object;
+#line 669 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_notify_reconstituted (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_SOURCE, DataSource));
+#line 671 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (object);
+#line 671 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ break;
+#line 4489 "DataSource.c"
+ }
+#line 661 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (_object_it);
+#line 4493 "DataSource.c"
+ }
+}
+
+
+static void source_proxy_real_reconstituted (SourceProxy* self, DataSource* source) {
+#line 558 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 4501 "DataSource.c"
+}
+
+
+static void source_proxy_real_dehydrated (SourceProxy* self) {
+}
+
+
+static void source_proxy_real_broken (SourceProxy* self) {
+}
+
+
+static void value_source_proxy_init (GValue* value) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 4516 "DataSource.c"
+}
+
+
+static void value_source_proxy_free_value (GValue* value) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (value->data[0].v_pointer) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_unref (value->data[0].v_pointer);
+#line 4525 "DataSource.c"
+ }
+}
+
+
+static void value_source_proxy_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (src_value->data[0].v_pointer) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ dest_value->data[0].v_pointer = source_proxy_ref (src_value->data[0].v_pointer);
+#line 4535 "DataSource.c"
+ } else {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4539 "DataSource.c"
+ }
+}
+
+
+static gpointer value_source_proxy_peek_pointer (const GValue* value) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return value->data[0].v_pointer;
+#line 4547 "DataSource.c"
+}
+
+
+static gchar* value_source_proxy_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (collect_values[0].v_pointer) {
+#line 4554 "DataSource.c"
+ SourceProxy* object;
+ object = collect_values[0].v_pointer;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4561 "DataSource.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4565 "DataSource.c"
+ }
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = source_proxy_ref (object);
+#line 4569 "DataSource.c"
+ } else {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 4573 "DataSource.c"
+ }
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 4577 "DataSource.c"
+}
+
+
+static gchar* value_source_proxy_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SourceProxy** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!object_p) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4588 "DataSource.c"
+ }
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!value->data[0].v_pointer) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = NULL;
+#line 4594 "DataSource.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4598 "DataSource.c"
+ } else {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ *object_p = source_proxy_ref (value->data[0].v_pointer);
+#line 4602 "DataSource.c"
+ }
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return NULL;
+#line 4606 "DataSource.c"
+}
+
+
+GParamSpec* param_spec_source_proxy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSourceProxy* spec;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SOURCE_PROXY), NULL);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return G_PARAM_SPEC (spec);
+#line 4620 "DataSource.c"
+}
+
+
+gpointer value_get_source_proxy (const GValue* value) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_PROXY), NULL);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return value->data[0].v_pointer;
+#line 4629 "DataSource.c"
+}
+
+
+void value_set_source_proxy (GValue* value, gpointer v_object) {
+ SourceProxy* old;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_PROXY));
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ old = value->data[0].v_pointer;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (v_object) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_PROXY));
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_ref (value->data[0].v_pointer);
+#line 4649 "DataSource.c"
+ } else {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 4653 "DataSource.c"
+ }
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (old) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_unref (old);
+#line 4659 "DataSource.c"
+ }
+}
+
+
+void value_take_source_proxy (GValue* value, gpointer v_object) {
+ SourceProxy* old;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_PROXY));
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ old = value->data[0].v_pointer;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (v_object) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_PROXY));
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 4678 "DataSource.c"
+ } else {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 4682 "DataSource.c"
+ }
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (old) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_unref (old);
+#line 4688 "DataSource.c"
+ }
+}
+
+
+static void source_proxy_class_init (SourceProxyClass * klass) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_parent_class = g_type_class_peek_parent (klass);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->finalize = source_proxy_finalize;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_type_class_add_private (klass, sizeof (SourceProxyPrivate));
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->reconstitute = source_proxy_real_reconstitute;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->notify_reconstituted = source_proxy_real_notify_reconstituted;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->notify_dehydrated = source_proxy_real_notify_dehydrated;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->notify_broken = source_proxy_real_notify_broken;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->reconstituted = source_proxy_real_reconstituted;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->dehydrated = source_proxy_real_dehydrated;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ ((SourceProxyClass *) klass)->broken = source_proxy_real_broken;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_new ("reconstituted", TYPE_SOURCE_PROXY, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceProxyClass, reconstituted), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_DATA_SOURCE);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_new ("dehydrated", TYPE_SOURCE_PROXY, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceProxyClass, dehydrated), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_new ("broken", TYPE_SOURCE_PROXY, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceProxyClass, broken), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 4720 "DataSource.c"
+}
+
+
+static void source_proxy_instance_init (SourceProxy * self) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->priv = SOURCE_PROXY_GET_PRIVATE (self);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self->ref_count = 1;
+#line 4729 "DataSource.c"
+}
+
+
+static void source_proxy_finalize (SourceProxy* obj) {
+ SourceProxy * self;
+ SourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SOURCE_PROXY, SourceProxy);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_handlers_destroy (self);
+#line 587 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ source_proxy_drop_source (self);
+#line 588 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _tmp0_ = self->priv->membership;
+#line 588 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_parse_name ("items-added", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 588 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _source_proxy_on_source_added_data_collection_items_added, self);
+#line 551 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_free0 (self->priv->source_string);
+#line 552 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _g_object_unref0 (self->priv->source);
+#line 553 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _source_snapshot_unref0 (self->priv->snapshot);
+#line 554 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ _data_collection_unref0 (self->priv->membership);
+#line 4757 "DataSource.c"
+}
+
+
+GType source_proxy_get_type (void) {
+ static volatile gsize source_proxy_type_id__volatile = 0;
+ if (g_once_init_enter (&source_proxy_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_source_proxy_init, value_source_proxy_free_value, value_source_proxy_copy_value, value_source_proxy_peek_pointer, "p", value_source_proxy_collect_value, "p", value_source_proxy_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SourceProxyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) source_proxy_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SourceProxy), 0, (GInstanceInitFunc) source_proxy_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType source_proxy_type_id;
+ source_proxy_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SourceProxy", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&source_proxy_type_id__volatile, source_proxy_type_id);
+ }
+ return source_proxy_type_id__volatile;
+}
+
+
+gpointer source_proxy_ref (gpointer instance) {
+ SourceProxy* self;
+ self = instance;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return instance;
+#line 4782 "DataSource.c"
+}
+
+
+void source_proxy_unref (gpointer instance) {
+ SourceProxy* self;
+ self = instance;
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ SOURCE_PROXY_GET_CLASS (self)->finalize (self);
+#line 549 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4795 "DataSource.c"
+ }
+}
+
+
+SourceProxy* proxyable_get_proxy (Proxyable* self) {
+#line 677 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ g_return_val_if_fail (IS_PROXYABLE (self), NULL);
+#line 677 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ return PROXYABLE_GET_INTERFACE (self)->get_proxy (self);
+#line 4805 "DataSource.c"
+}
+
+
+static void proxyable_base_init (ProxyableIface * iface) {
+#line 676 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ static gboolean initialized = FALSE;
+#line 676 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ if (!initialized) {
+#line 676 "/home/jens/Source/shotwell/src/core/DataSource.vala"
+ initialized = TRUE;
+#line 4816 "DataSource.c"
+ }
+}
+
+
+GType proxyable_get_type (void) {
+ static volatile gsize proxyable_type_id__volatile = 0;
+ if (g_once_init_enter (&proxyable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ProxyableIface), (GBaseInitFunc) proxyable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType proxyable_type_id;
+ proxyable_type_id = g_type_register_static (G_TYPE_INTERFACE, "Proxyable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (proxyable_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&proxyable_type_id__volatile, proxyable_type_id);
+ }
+ return proxyable_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/core/DataSourceTypes.c b/src/core/DataSourceTypes.c
new file mode 100644
index 0000000..0abd6e8
--- /dev/null
+++ b/src/core/DataSourceTypes.c
@@ -0,0 +1,1127 @@
+/* DataSourceTypes.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataSourceTypes.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/**/
+/* Media sources*/
+/**/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <time.h>
+#include <gee.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _MediaSourcePrivate MediaSourcePrivate;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_BACKING_FILE_STATE (backing_file_state_get_type ())
+#define BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_FILE_STATE, BackingFileState))
+#define BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+#define IS_BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_FILE_STATE))
+#define IS_BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_FILE_STATE))
+#define BACKING_FILE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+
+typedef struct _BackingFileState BackingFileState;
+typedef struct _BackingFileStateClass BackingFileStateClass;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+typedef struct _PhotoSourcePrivate PhotoSourcePrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+typedef struct _VideoSourcePrivate VideoSourcePrivate;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+typedef struct _EventSourcePrivate EventSourcePrivate;
+
+#define TYPE_CONTAINER_SOURCE (container_source_get_type ())
+#define CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE, ContainerSource))
+#define IS_CONTAINER_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE))
+#define CONTAINER_SOURCE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_CONTAINER_SOURCE, ContainerSourceIface))
+
+typedef struct _ContainerSource ContainerSource;
+typedef struct _ContainerSourceIface ContainerSourceIface;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _ThumbnailSource {
+ DataSource parent_instance;
+ ThumbnailSourcePrivate * priv;
+};
+
+struct _ThumbnailSourceClass {
+ DataSourceClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailSource* self);
+ GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ gchar* (*get_representative_id) (ThumbnailSource* self);
+ PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self);
+ void (*thumbnail_altered) (ThumbnailSource* self);
+};
+
+typedef void (*DataSourceContactSubscriber) (DataView* view, void* user_data);
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _MediaSource {
+ ThumbnailSource parent_instance;
+ MediaSourcePrivate * priv;
+};
+
+struct _MediaSourceClass {
+ ThumbnailSourceClass parent_class;
+ void (*notify_master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+ gboolean (*set_event_id) (MediaSource* self, EventID* id);
+ gchar* (*get_basename) (MediaSource* self);
+ GFile* (*get_file) (MediaSource* self);
+ GFile* (*get_master_file) (MediaSource* self);
+ guint64 (*get_master_filesize) (MediaSource* self);
+ guint64 (*get_filesize) (MediaSource* self);
+ time_t (*get_timestamp) (MediaSource* self);
+ BackingFileState** (*get_backing_files_state) (MediaSource* self, int* result_length1);
+ gchar* (*get_title) (MediaSource* self);
+ gchar* (*get_comment) (MediaSource* self);
+ void (*set_title) (MediaSource* self, const gchar* title);
+ gboolean (*set_comment) (MediaSource* self, const gchar* comment);
+ Rating (*get_rating) (MediaSource* self);
+ void (*set_rating) (MediaSource* self, Rating rating);
+ void (*increase_rating) (MediaSource* self);
+ void (*decrease_rating) (MediaSource* self);
+ void (*get_dimensions) (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+ GdkPixbuf* (*get_preview_pixbuf) (MediaSource* self, Scaling* scaling, GError** error);
+ gboolean (*is_trashed) (MediaSource* self);
+ void (*trash) (MediaSource* self);
+ void (*untrash) (MediaSource* self);
+ gboolean (*is_offline) (MediaSource* self);
+ void (*mark_offline) (MediaSource* self);
+ void (*mark_online) (MediaSource* self);
+ gchar* (*get_master_md5) (MediaSource* self);
+ void (*get_event_id) (MediaSource* self, EventID* result);
+ time_t (*get_exposure_time) (MediaSource* self);
+ void (*get_import_id) (MediaSource* self, ImportID* result);
+ void (*master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+};
+
+struct _PhotoSource {
+ MediaSource parent_instance;
+ PhotoSourcePrivate * priv;
+};
+
+struct _PhotoSourceClass {
+ MediaSourceClass parent_class;
+ PhotoMetadata* (*get_metadata) (PhotoSource* self);
+ GdkPixbuf* (*get_pixbuf) (PhotoSource* self, Scaling* scaling, GError** error);
+};
+
+struct _VideoSource {
+ MediaSource parent_instance;
+ VideoSourcePrivate * priv;
+};
+
+struct _VideoSourceClass {
+ MediaSourceClass parent_class;
+};
+
+struct _EventSource {
+ ThumbnailSource parent_instance;
+ EventSourcePrivate * priv;
+};
+
+struct _EventSourceClass {
+ ThumbnailSourceClass parent_class;
+ time_t (*get_start_time) (EventSource* self);
+ time_t (*get_end_time) (EventSource* self);
+ guint64 (*get_total_filesize) (EventSource* self);
+ gint (*get_media_count) (EventSource* self);
+ GeeCollection* (*get_media) (EventSource* self);
+ gchar* (*get_comment) (EventSource* self);
+ gboolean (*set_comment) (EventSource* self, const gchar* comment);
+};
+
+struct _ContainerSourceIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_links) (ContainerSource* self);
+ SourceBacklink* (*get_backlink) (ContainerSource* self);
+ void (*break_link) (ContainerSource* self, DataSource* source);
+ void (*break_link_many) (ContainerSource* self, GeeCollection* sources);
+ void (*establish_link) (ContainerSource* self, DataSource* source);
+ void (*establish_link_many) (ContainerSource* self, GeeCollection* sources);
+};
+
+
+static gpointer thumbnail_source_parent_class = NULL;
+static gpointer photo_source_parent_class = NULL;
+static gpointer video_source_parent_class = NULL;
+static gpointer event_source_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+enum {
+ THUMBNAIL_SOURCE_DUMMY_PROPERTY
+};
+ThumbnailSource* thumbnail_source_construct (GType object_type, gint64 object_id);
+DataSource* data_source_construct (GType object_type, gint64 object_id);
+void thumbnail_source_notify_thumbnail_altered (ThumbnailSource* self);
+static void thumbnail_source_real_notify_thumbnail_altered (ThumbnailSource* self);
+GType data_view_get_type (void) G_GNUC_CONST;
+void data_source_contact_subscribers (DataSource* self, DataSourceContactSubscriber contact_subscriber, void* contact_subscriber_target);
+static void thumbnail_source_subscriber_thumbnail_altered (ThumbnailSource* self, DataView* view);
+static void _thumbnail_source_subscriber_thumbnail_altered_data_source_contact_subscriber (DataView* view, gpointer self);
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+void thumbnail_view_notify_thumbnail_altered (ThumbnailView* self);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+static GdkPixbuf* thumbnail_source_real_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+GdkPixbuf* thumbnail_source_create_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+static GdkPixbuf* thumbnail_source_real_create_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+gchar* thumbnail_source_get_representative_id (ThumbnailSource* self);
+static gchar* thumbnail_source_real_get_representative_id (ThumbnailSource* self);
+gchar* data_source_get_source_id (DataSource* self);
+PhotoFileFormat thumbnail_source_get_preferred_thumbnail_format (ThumbnailSource* self);
+static PhotoFileFormat thumbnail_source_real_get_preferred_thumbnail_format (ThumbnailSource* self);
+static void thumbnail_source_real_thumbnail_altered (ThumbnailSource* self);
+GType indexable_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+gpointer backing_file_state_ref (gpointer instance);
+void backing_file_state_unref (gpointer instance);
+GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_file_state (GValue* value, gpointer v_object);
+void value_take_backing_file_state (GValue* value, gpointer v_object);
+gpointer value_get_backing_file_state (const GValue* value);
+GType backing_file_state_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_SOURCE_DUMMY_PROPERTY
+};
+PhotoSource* photo_source_construct (GType object_type, gint64 object_id);
+MediaSource* media_source_construct (GType object_type, gint64 object_id);
+PhotoMetadata* photo_source_get_metadata (PhotoSource* self);
+static PhotoMetadata* photo_source_real_get_metadata (PhotoSource* self);
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+static GdkPixbuf* photo_source_real_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+GType video_source_get_type (void) G_GNUC_CONST;
+enum {
+ VIDEO_SOURCE_DUMMY_PROPERTY
+};
+VideoSource* video_source_construct (GType object_type);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+GType event_source_get_type (void) G_GNUC_CONST;
+enum {
+ EVENT_SOURCE_DUMMY_PROPERTY
+};
+EventSource* event_source_construct (GType object_type, gint64 object_id);
+time_t event_source_get_start_time (EventSource* self);
+static time_t event_source_real_get_start_time (EventSource* self);
+time_t event_source_get_end_time (EventSource* self);
+static time_t event_source_real_get_end_time (EventSource* self);
+guint64 event_source_get_total_filesize (EventSource* self);
+static guint64 event_source_real_get_total_filesize (EventSource* self);
+gint event_source_get_media_count (EventSource* self);
+static gint event_source_real_get_media_count (EventSource* self);
+GeeCollection* event_source_get_media (EventSource* self);
+static GeeCollection* event_source_real_get_media (EventSource* self);
+gchar* event_source_get_comment (EventSource* self);
+static gchar* event_source_real_get_comment (EventSource* self);
+gboolean event_source_set_comment (EventSource* self, const gchar* comment);
+static gboolean event_source_real_set_comment (EventSource* self, const gchar* comment);
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType container_source_get_type (void) G_GNUC_CONST;
+gboolean container_source_has_links (ContainerSource* self);
+SourceBacklink* container_source_get_backlink (ContainerSource* self);
+void container_source_break_link (ContainerSource* self, DataSource* source);
+void container_source_break_link_many (ContainerSource* self, GeeCollection* sources);
+void container_source_establish_link (ContainerSource* self, DataSource* source);
+void container_source_establish_link_many (ContainerSource* self, GeeCollection* sources);
+
+
+ThumbnailSource* thumbnail_source_construct (GType object_type, gint64 object_id) {
+ ThumbnailSource * self = NULL;
+ gint64 _tmp0_ = 0LL;
+#line 16 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ _tmp0_ = object_id;
+#line 16 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ self = (ThumbnailSource*) data_source_construct (object_type, _tmp0_);
+#line 15 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return self;
+#line 604 "DataSourceTypes.c"
+}
+
+
+static void _thumbnail_source_subscriber_thumbnail_altered_data_source_contact_subscriber (DataView* view, gpointer self) {
+#line 24 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ thumbnail_source_subscriber_thumbnail_altered ((ThumbnailSource*) self, view);
+#line 611 "DataSourceTypes.c"
+}
+
+
+static void thumbnail_source_real_notify_thumbnail_altered (ThumbnailSource* self) {
+#line 21 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_signal_emit_by_name (self, "thumbnail-altered");
+#line 24 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ data_source_contact_subscribers (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource), _thumbnail_source_subscriber_thumbnail_altered_data_source_contact_subscriber, self);
+#line 620 "DataSourceTypes.c"
+}
+
+
+void thumbnail_source_notify_thumbnail_altered (ThumbnailSource* self) {
+#line 19 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (self));
+#line 19 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ THUMBNAIL_SOURCE_GET_CLASS (self)->notify_thumbnail_altered (self);
+#line 629 "DataSourceTypes.c"
+}
+
+
+static void thumbnail_source_subscriber_thumbnail_altered (ThumbnailSource* self, DataView* view) {
+ DataView* _tmp0_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (self));
+#line 27 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 28 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ _tmp0_ = view;
+#line 28 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ thumbnail_view_notify_thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL_VIEW, ThumbnailView));
+#line 643 "DataSourceTypes.c"
+}
+
+
+static GdkPixbuf* thumbnail_source_real_get_thumbnail (ThumbnailSource* self, gint scale, GError** error) {
+#line 31 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `thumbnail_source_get_thumbnail'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 31 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return NULL;
+#line 652 "DataSourceTypes.c"
+}
+
+
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error) {
+#line 31 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (self), NULL);
+#line 31 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return THUMBNAIL_SOURCE_GET_CLASS (self)->get_thumbnail (self, scale, error);
+#line 661 "DataSourceTypes.c"
+}
+
+
+static GdkPixbuf* thumbnail_source_real_create_thumbnail (ThumbnailSource* self, gint scale, GError** error) {
+#line 35 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `thumbnail_source_create_thumbnail'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 35 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return NULL;
+#line 670 "DataSourceTypes.c"
+}
+
+
+GdkPixbuf* thumbnail_source_create_thumbnail (ThumbnailSource* self, gint scale, GError** error) {
+#line 35 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (self), NULL);
+#line 35 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return THUMBNAIL_SOURCE_GET_CLASS (self)->create_thumbnail (self, scale, error);
+#line 679 "DataSourceTypes.c"
+}
+
+
+static gchar* thumbnail_source_real_get_representative_id (ThumbnailSource* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ _tmp0_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_SOURCE, DataSource));
+#line 47 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ result = _tmp0_;
+#line 47 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return result;
+#line 692 "DataSourceTypes.c"
+}
+
+
+gchar* thumbnail_source_get_representative_id (ThumbnailSource* self) {
+#line 46 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (self), NULL);
+#line 46 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return THUMBNAIL_SOURCE_GET_CLASS (self)->get_representative_id (self);
+#line 701 "DataSourceTypes.c"
+}
+
+
+static PhotoFileFormat thumbnail_source_real_get_preferred_thumbnail_format (ThumbnailSource* self) {
+#line 50 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `thumbnail_source_get_preferred_thumbnail_format'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 50 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return 0;
+#line 710 "DataSourceTypes.c"
+}
+
+
+PhotoFileFormat thumbnail_source_get_preferred_thumbnail_format (ThumbnailSource* self) {
+#line 50 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (self), 0);
+#line 50 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return THUMBNAIL_SOURCE_GET_CLASS (self)->get_preferred_thumbnail_format (self);
+#line 719 "DataSourceTypes.c"
+}
+
+
+static void thumbnail_source_real_thumbnail_altered (ThumbnailSource* self) {
+}
+
+
+static void thumbnail_source_class_init (ThumbnailSourceClass * klass) {
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ thumbnail_source_parent_class = g_type_class_peek_parent (klass);
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((ThumbnailSourceClass *) klass)->notify_thumbnail_altered = thumbnail_source_real_notify_thumbnail_altered;
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((ThumbnailSourceClass *) klass)->get_thumbnail = thumbnail_source_real_get_thumbnail;
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((ThumbnailSourceClass *) klass)->create_thumbnail = thumbnail_source_real_create_thumbnail;
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((ThumbnailSourceClass *) klass)->get_representative_id = thumbnail_source_real_get_representative_id;
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((ThumbnailSourceClass *) klass)->get_preferred_thumbnail_format = thumbnail_source_real_get_preferred_thumbnail_format;
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((ThumbnailSourceClass *) klass)->thumbnail_altered = thumbnail_source_real_thumbnail_altered;
+#line 11 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_signal_new ("thumbnail_altered", TYPE_THUMBNAIL_SOURCE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThumbnailSourceClass, thumbnail_altered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 744 "DataSourceTypes.c"
+}
+
+
+static void thumbnail_source_instance_init (ThumbnailSource * self) {
+}
+
+
+GType thumbnail_source_get_type (void) {
+ static volatile gsize thumbnail_source_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnail_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ThumbnailSource), 0, (GInstanceInitFunc) thumbnail_source_instance_init, NULL };
+ GType thumbnail_source_type_id;
+ thumbnail_source_type_id = g_type_register_static (TYPE_DATA_SOURCE, "ThumbnailSource", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&thumbnail_source_type_id__volatile, thumbnail_source_type_id);
+ }
+ return thumbnail_source_type_id__volatile;
+}
+
+
+PhotoSource* photo_source_construct (GType object_type, gint64 object_id) {
+ PhotoSource * self = NULL;
+ gint64 _tmp0_ = 0LL;
+#line 55 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ _tmp0_ = object_id;
+#line 55 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ self = (PhotoSource*) media_source_construct (object_type, _tmp0_);
+#line 54 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return self;
+#line 773 "DataSourceTypes.c"
+}
+
+
+static PhotoMetadata* photo_source_real_get_metadata (PhotoSource* self) {
+#line 58 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_source_get_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 58 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return NULL;
+#line 782 "DataSourceTypes.c"
+}
+
+
+PhotoMetadata* photo_source_get_metadata (PhotoSource* self) {
+#line 58 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_PHOTO_SOURCE (self), NULL);
+#line 58 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return PHOTO_SOURCE_GET_CLASS (self)->get_metadata (self);
+#line 791 "DataSourceTypes.c"
+}
+
+
+static GdkPixbuf* photo_source_real_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error) {
+#line 60 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_source_get_pixbuf'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 60 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return NULL;
+#line 800 "DataSourceTypes.c"
+}
+
+
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error) {
+#line 60 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_PHOTO_SOURCE (self), NULL);
+#line 60 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return PHOTO_SOURCE_GET_CLASS (self)->get_pixbuf (self, scaling, error);
+#line 809 "DataSourceTypes.c"
+}
+
+
+static void photo_source_class_init (PhotoSourceClass * klass) {
+#line 53 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ photo_source_parent_class = g_type_class_peek_parent (klass);
+#line 53 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((PhotoSourceClass *) klass)->get_metadata = photo_source_real_get_metadata;
+#line 53 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((PhotoSourceClass *) klass)->get_pixbuf = photo_source_real_get_pixbuf;
+#line 820 "DataSourceTypes.c"
+}
+
+
+static void photo_source_instance_init (PhotoSource * self) {
+}
+
+
+GType photo_source_get_type (void) {
+ static volatile gsize photo_source_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoSource), 0, (GInstanceInitFunc) photo_source_instance_init, NULL };
+ GType photo_source_type_id;
+ photo_source_type_id = g_type_register_static (TYPE_MEDIA_SOURCE, "PhotoSource", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_source_type_id__volatile, photo_source_type_id);
+ }
+ return photo_source_type_id__volatile;
+}
+
+
+VideoSource* video_source_construct (GType object_type) {
+ VideoSource * self = NULL;
+#line 63 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ self = (VideoSource*) media_source_construct (object_type, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 63 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return self;
+#line 846 "DataSourceTypes.c"
+}
+
+
+static void video_source_class_init (VideoSourceClass * klass) {
+#line 63 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ video_source_parent_class = g_type_class_peek_parent (klass);
+#line 853 "DataSourceTypes.c"
+}
+
+
+static void video_source_instance_init (VideoSource * self) {
+}
+
+
+GType video_source_get_type (void) {
+ static volatile gsize video_source_type_id__volatile = 0;
+ if (g_once_init_enter (&video_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoSource), 0, (GInstanceInitFunc) video_source_instance_init, NULL };
+ GType video_source_type_id;
+ video_source_type_id = g_type_register_static (TYPE_MEDIA_SOURCE, "VideoSource", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&video_source_type_id__volatile, video_source_type_id);
+ }
+ return video_source_type_id__volatile;
+}
+
+
+EventSource* event_source_construct (GType object_type, gint64 object_id) {
+ EventSource * self = NULL;
+ gint64 _tmp0_ = 0LL;
+#line 72 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ _tmp0_ = object_id;
+#line 72 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ self = (EventSource*) thumbnail_source_construct (object_type, _tmp0_);
+#line 71 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return self;
+#line 882 "DataSourceTypes.c"
+}
+
+
+static time_t event_source_real_get_start_time (EventSource* self) {
+#line 75 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `event_source_get_start_time'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 75 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return 0;
+#line 891 "DataSourceTypes.c"
+}
+
+
+time_t event_source_get_start_time (EventSource* self) {
+#line 75 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (self), 0);
+#line 75 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return EVENT_SOURCE_GET_CLASS (self)->get_start_time (self);
+#line 900 "DataSourceTypes.c"
+}
+
+
+static time_t event_source_real_get_end_time (EventSource* self) {
+#line 77 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `event_source_get_end_time'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 77 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return 0;
+#line 909 "DataSourceTypes.c"
+}
+
+
+time_t event_source_get_end_time (EventSource* self) {
+#line 77 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (self), 0);
+#line 77 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return EVENT_SOURCE_GET_CLASS (self)->get_end_time (self);
+#line 918 "DataSourceTypes.c"
+}
+
+
+static guint64 event_source_real_get_total_filesize (EventSource* self) {
+#line 79 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `event_source_get_total_filesize'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 79 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return 0ULL;
+#line 927 "DataSourceTypes.c"
+}
+
+
+guint64 event_source_get_total_filesize (EventSource* self) {
+#line 79 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (self), 0ULL);
+#line 79 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return EVENT_SOURCE_GET_CLASS (self)->get_total_filesize (self);
+#line 936 "DataSourceTypes.c"
+}
+
+
+static gint event_source_real_get_media_count (EventSource* self) {
+#line 81 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `event_source_get_media_count'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 81 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return 0;
+#line 945 "DataSourceTypes.c"
+}
+
+
+gint event_source_get_media_count (EventSource* self) {
+#line 81 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (self), 0);
+#line 81 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return EVENT_SOURCE_GET_CLASS (self)->get_media_count (self);
+#line 954 "DataSourceTypes.c"
+}
+
+
+static GeeCollection* event_source_real_get_media (EventSource* self) {
+#line 83 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `event_source_get_media'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 83 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return NULL;
+#line 963 "DataSourceTypes.c"
+}
+
+
+GeeCollection* event_source_get_media (EventSource* self) {
+#line 83 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (self), NULL);
+#line 83 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return EVENT_SOURCE_GET_CLASS (self)->get_media (self);
+#line 972 "DataSourceTypes.c"
+}
+
+
+static gchar* event_source_real_get_comment (EventSource* self) {
+#line 85 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `event_source_get_comment'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 85 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return NULL;
+#line 981 "DataSourceTypes.c"
+}
+
+
+gchar* event_source_get_comment (EventSource* self) {
+#line 85 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (self), NULL);
+#line 85 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return EVENT_SOURCE_GET_CLASS (self)->get_comment (self);
+#line 990 "DataSourceTypes.c"
+}
+
+
+static gboolean event_source_real_set_comment (EventSource* self, const gchar* comment) {
+#line 87 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_critical ("Type `%s' does not implement abstract method `event_source_set_comment'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 87 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return FALSE;
+#line 999 "DataSourceTypes.c"
+}
+
+
+gboolean event_source_set_comment (EventSource* self, const gchar* comment) {
+#line 87 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (self), FALSE);
+#line 87 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return EVENT_SOURCE_GET_CLASS (self)->set_comment (self, comment);
+#line 1008 "DataSourceTypes.c"
+}
+
+
+static void event_source_class_init (EventSourceClass * klass) {
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ event_source_parent_class = g_type_class_peek_parent (klass);
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((EventSourceClass *) klass)->get_start_time = event_source_real_get_start_time;
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((EventSourceClass *) klass)->get_end_time = event_source_real_get_end_time;
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((EventSourceClass *) klass)->get_total_filesize = event_source_real_get_total_filesize;
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((EventSourceClass *) klass)->get_media_count = event_source_real_get_media_count;
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((EventSourceClass *) klass)->get_media = event_source_real_get_media;
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((EventSourceClass *) klass)->get_comment = event_source_real_get_comment;
+#line 70 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ ((EventSourceClass *) klass)->set_comment = event_source_real_set_comment;
+#line 1029 "DataSourceTypes.c"
+}
+
+
+static void event_source_instance_init (EventSource * self) {
+}
+
+
+GType event_source_get_type (void) {
+ static volatile gsize event_source_type_id__volatile = 0;
+ if (g_once_init_enter (&event_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventSource), 0, (GInstanceInitFunc) event_source_instance_init, NULL };
+ GType event_source_type_id;
+ event_source_type_id = g_type_register_static (TYPE_THUMBNAIL_SOURCE, "EventSource", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&event_source_type_id__volatile, event_source_type_id);
+ }
+ return event_source_type_id__volatile;
+}
+
+
+gboolean container_source_has_links (ContainerSource* self) {
+#line 95 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_CONTAINER_SOURCE (self), FALSE);
+#line 95 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return CONTAINER_SOURCE_GET_INTERFACE (self)->has_links (self);
+#line 1054 "DataSourceTypes.c"
+}
+
+
+SourceBacklink* container_source_get_backlink (ContainerSource* self) {
+#line 97 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_val_if_fail (IS_CONTAINER_SOURCE (self), NULL);
+#line 97 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ return CONTAINER_SOURCE_GET_INTERFACE (self)->get_backlink (self);
+#line 1063 "DataSourceTypes.c"
+}
+
+
+void container_source_break_link (ContainerSource* self, DataSource* source) {
+#line 99 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (self));
+#line 99 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ CONTAINER_SOURCE_GET_INTERFACE (self)->break_link (self, source);
+#line 1072 "DataSourceTypes.c"
+}
+
+
+void container_source_break_link_many (ContainerSource* self, GeeCollection* sources) {
+#line 101 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (self));
+#line 101 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ CONTAINER_SOURCE_GET_INTERFACE (self)->break_link_many (self, sources);
+#line 1081 "DataSourceTypes.c"
+}
+
+
+void container_source_establish_link (ContainerSource* self, DataSource* source) {
+#line 103 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (self));
+#line 103 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ CONTAINER_SOURCE_GET_INTERFACE (self)->establish_link (self, source);
+#line 1090 "DataSourceTypes.c"
+}
+
+
+void container_source_establish_link_many (ContainerSource* self, GeeCollection* sources) {
+#line 105 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ g_return_if_fail (IS_CONTAINER_SOURCE (self));
+#line 105 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ CONTAINER_SOURCE_GET_INTERFACE (self)->establish_link_many (self, sources);
+#line 1099 "DataSourceTypes.c"
+}
+
+
+static void container_source_base_init (ContainerSourceIface * iface) {
+#line 94 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ static gboolean initialized = FALSE;
+#line 94 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ if (!initialized) {
+#line 94 "/home/jens/Source/shotwell/src/core/DataSourceTypes.vala"
+ initialized = TRUE;
+#line 1110 "DataSourceTypes.c"
+ }
+}
+
+
+GType container_source_get_type (void) {
+ static volatile gsize container_source_type_id__volatile = 0;
+ if (g_once_init_enter (&container_source_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ContainerSourceIface), (GBaseInitFunc) container_source_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType container_source_type_id;
+ container_source_type_id = g_type_register_static (G_TYPE_INTERFACE, "ContainerSource", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (container_source_type_id, TYPE_DATA_SOURCE);
+ g_once_init_leave (&container_source_type_id__volatile, container_source_type_id);
+ }
+ return container_source_type_id__volatile;
+}
+
+
+
diff --git a/src/core/DataView.c b/src/core/DataView.c
new file mode 100644
index 0000000..40153fc
--- /dev/null
+++ b/src/core/DataView.c
@@ -0,0 +1,681 @@
+/* DataView.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataView.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _DataViewPrivate {
+ DataSource* source;
+ gboolean selected;
+ gboolean visible;
+};
+
+
+static gpointer data_view_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+#define DATA_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DATA_VIEW, DataViewPrivate))
+enum {
+ DATA_VIEW_DUMMY_PROPERTY
+};
+void data_source_internal_unsubscribe (DataSource* self, DataView* view);
+DataView* data_view_new (DataSource* source);
+DataView* data_view_construct (GType object_type, DataSource* source);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+DataObject* data_object_construct (GType object_type, gint64 object_id);
+void data_source_internal_subscribe (DataSource* self, DataView* view);
+static gchar* data_view_real_get_name (DataObject* base);
+gchar* data_object_get_name (DataObject* self);
+static gchar* data_view_real_to_string (DataObject* base);
+gchar* data_object_to_string (DataObject* self);
+DataSource* data_view_get_source (DataView* self);
+gboolean data_view_is_selected (DataView* self);
+void data_view_internal_set_selected (DataView* self, gboolean selected);
+gboolean data_view_internal_toggle (DataView* self);
+gboolean data_view_is_visible (DataView* self);
+void data_view_internal_set_visible (DataView* self, gboolean visible);
+void data_view_notify_view_altered (DataView* self);
+static void data_view_real_notify_view_altered (DataView* self);
+GType view_collection_get_type (void) G_GNUC_CONST;
+DataCollection* data_object_get_membership (DataObject* self);
+gboolean data_collection_are_notifications_frozen (DataCollection* self);
+void view_collection_internal_notify_view_altered (ViewCollection* self, DataView* view);
+void data_view_notify_geometry_altered (DataView* self);
+static void data_view_real_notify_geometry_altered (DataView* self);
+void view_collection_internal_notify_geometry_altered (ViewCollection* self, DataView* view);
+void data_view_notify_unsubscribed (DataView* self, DataSource* source);
+static void data_view_real_notify_unsubscribed (DataView* self, DataSource* source);
+static void data_view_real_state_changed (DataView* self, gboolean selected);
+static void data_view_real_visibility_changed (DataView* self, gboolean visible);
+static void data_view_real_view_altered (DataView* self);
+static void data_view_real_geometry_altered (DataView* self);
+static void data_view_real_unsubscribed (DataView* self, DataSource* source);
+static void data_view_finalize (GObject* obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 33 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 182 "DataView.c"
+}
+
+
+DataView* data_view_construct (GType object_type, DataSource* source) {
+ DataView * self = NULL;
+ DataSource* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 32 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self = (DataView*) data_object_construct (object_type, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 33 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = source;
+#line 33 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 33 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _g_object_unref0 (self->priv->source);
+#line 33 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self->priv->source = _tmp1_;
+#line 37 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = source;
+#line 37 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ data_source_internal_subscribe (_tmp2_, self);
+#line 32 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return self;
+#line 209 "DataView.c"
+}
+
+
+DataView* data_view_new (DataSource* source) {
+#line 32 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return data_view_construct (TYPE_DATA_VIEW, source);
+#line 216 "DataView.c"
+}
+
+
+static gchar* data_view_real_get_name (DataObject* base) {
+ DataView * self;
+ gchar* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DATA_VIEW, DataView);
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->source;
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp3_ = g_strdup_printf ("View of %s", _tmp2_);
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp4_ = _tmp3_;
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _g_free0 (_tmp2_);
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ result = _tmp4_;
+#line 48 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return result;
+#line 246 "DataView.c"
+}
+
+
+static gchar* data_view_real_to_string (DataObject* base) {
+ DataView * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DATA_VIEW, DataView);
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = _tmp0_;
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = self->priv->source;
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp3_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp4_ = _tmp3_;
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp5_ = g_strdup_printf ("DataView %s [DataSource %s]", _tmp1_, _tmp4_);
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp6_ = _tmp5_;
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _g_free0 (_tmp4_);
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _g_free0 (_tmp1_);
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ result = _tmp6_;
+#line 52 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return result;
+#line 284 "DataView.c"
+}
+
+
+DataSource* data_view_get_source (DataView* self) {
+ DataSource* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (self), NULL);
+#line 56 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->source;
+#line 56 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 56 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ result = _tmp1_;
+#line 56 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return result;
+#line 302 "DataView.c"
+}
+
+
+gboolean data_view_is_selected (DataView* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 59 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (self), FALSE);
+#line 60 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->selected;
+#line 60 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ result = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return result;
+#line 317 "DataView.c"
+}
+
+
+void data_view_internal_set_selected (DataView* self, gboolean selected) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_if_fail (IS_DATA_VIEW (self));
+#line 65 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->selected;
+#line 65 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = selected;
+#line 65 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 66 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return;
+#line 336 "DataView.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = selected;
+#line 68 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self->priv->selected = _tmp2_;
+#line 69 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp3_ = selected;
+#line 69 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "state-changed", _tmp3_);
+#line 346 "DataView.c"
+}
+
+
+gboolean data_view_internal_toggle (DataView* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 73 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (self), FALSE);
+#line 74 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->selected;
+#line 74 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self->priv->selected = !_tmp0_;
+#line 75 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = self->priv->selected;
+#line 75 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "state-changed", _tmp1_);
+#line 77 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = self->priv->selected;
+#line 77 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ result = _tmp2_;
+#line 77 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return result;
+#line 371 "DataView.c"
+}
+
+
+gboolean data_view_is_visible (DataView* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (self), FALSE);
+#line 81 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->visible;
+#line 81 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ result = _tmp0_;
+#line 81 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return result;
+#line 386 "DataView.c"
+}
+
+
+void data_view_internal_set_visible (DataView* self, gboolean visible) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 85 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_if_fail (IS_DATA_VIEW (self));
+#line 86 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->visible;
+#line 86 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = visible;
+#line 86 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 87 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return;
+#line 405 "DataView.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = visible;
+#line 89 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self->priv->visible = _tmp2_;
+#line 90 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp3_ = visible;
+#line 90 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "visibility-changed", _tmp3_);
+#line 415 "DataView.c"
+}
+
+
+static void data_view_real_notify_view_altered (DataView* self) {
+ gboolean _tmp0_ = FALSE;
+ ViewCollection* vc = NULL;
+ DataCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->visible;
+#line 95 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (!_tmp0_) {
+#line 96 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return;
+#line 431 "DataView.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 98 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_VIEW_COLLECTION) ? ((ViewCollection*) _tmp1_) : NULL;
+#line 98 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (_tmp2_ == NULL) {
+#line 98 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 441 "DataView.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ vc = _tmp2_;
+#line 99 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp3_ = vc;
+#line 99 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (_tmp3_ != NULL) {
+#line 449 "DataView.c"
+ ViewCollection* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ ViewCollection* _tmp6_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp4_ = vc;
+#line 100 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp5_ = data_collection_are_notifications_frozen (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection));
+#line 100 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (!_tmp5_) {
+#line 101 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "view-altered");
+#line 461 "DataView.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp6_ = vc;
+#line 104 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ view_collection_internal_notify_view_altered (_tmp6_, self);
+#line 467 "DataView.c"
+ } else {
+#line 106 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "view-altered");
+#line 471 "DataView.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _data_collection_unref0 (vc);
+#line 475 "DataView.c"
+}
+
+
+void data_view_notify_view_altered (DataView* self) {
+#line 93 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_if_fail (IS_DATA_VIEW (self));
+#line 93 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ DATA_VIEW_GET_CLASS (self)->notify_view_altered (self);
+#line 484 "DataView.c"
+}
+
+
+static void data_view_real_notify_geometry_altered (DataView* self) {
+ gboolean _tmp0_ = FALSE;
+ ViewCollection* vc = NULL;
+ DataCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->visible;
+#line 112 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (!_tmp0_) {
+#line 113 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ return;
+#line 500 "DataView.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp1_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 115 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_VIEW_COLLECTION) ? ((ViewCollection*) _tmp1_) : NULL;
+#line 115 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (_tmp2_ == NULL) {
+#line 115 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 510 "DataView.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ vc = _tmp2_;
+#line 116 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp3_ = vc;
+#line 116 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (_tmp3_ != NULL) {
+#line 518 "DataView.c"
+ ViewCollection* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ ViewCollection* _tmp6_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp4_ = vc;
+#line 117 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp5_ = data_collection_are_notifications_frozen (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection));
+#line 117 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ if (!_tmp5_) {
+#line 118 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "geometry-altered");
+#line 530 "DataView.c"
+ }
+#line 121 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp6_ = vc;
+#line 121 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ view_collection_internal_notify_geometry_altered (_tmp6_, self);
+#line 536 "DataView.c"
+ } else {
+#line 123 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "geometry-altered");
+#line 540 "DataView.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _data_collection_unref0 (vc);
+#line 544 "DataView.c"
+}
+
+
+void data_view_notify_geometry_altered (DataView* self) {
+#line 110 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_if_fail (IS_DATA_VIEW (self));
+#line 110 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ DATA_VIEW_GET_CLASS (self)->notify_geometry_altered (self);
+#line 553 "DataView.c"
+}
+
+
+static void data_view_real_notify_unsubscribed (DataView* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 129 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = source;
+#line 129 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_emit_by_name (self, "unsubscribed", _tmp0_);
+#line 565 "DataView.c"
+}
+
+
+void data_view_notify_unsubscribed (DataView* self, DataSource* source) {
+#line 128 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_if_fail (IS_DATA_VIEW (self));
+#line 128 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ DATA_VIEW_GET_CLASS (self)->notify_unsubscribed (self, source);
+#line 574 "DataView.c"
+}
+
+
+static void data_view_real_state_changed (DataView* self, gboolean selected) {
+}
+
+
+static void data_view_real_visibility_changed (DataView* self, gboolean visible) {
+}
+
+
+static void data_view_real_view_altered (DataView* self) {
+}
+
+
+static void data_view_real_geometry_altered (DataView* self) {
+}
+
+
+static void data_view_real_unsubscribed (DataView* self, DataSource* source) {
+#line 29 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 597 "DataView.c"
+}
+
+
+static void data_view_class_init (DataViewClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ data_view_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_type_class_add_private (klass, sizeof (DataViewPrivate));
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataObjectClass *) klass)->get_name = data_view_real_get_name;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataObjectClass *) klass)->to_string = data_view_real_to_string;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->notify_view_altered = data_view_real_notify_view_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->notify_geometry_altered = data_view_real_notify_geometry_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->notify_unsubscribed = data_view_real_notify_unsubscribed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->state_changed = data_view_real_state_changed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->visibility_changed = data_view_real_visibility_changed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->view_altered = data_view_real_view_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->geometry_altered = data_view_real_geometry_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ ((DataViewClass *) klass)->unsubscribed = data_view_real_unsubscribed;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_view_finalize;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_new ("state_changed", TYPE_DATA_VIEW, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataViewClass, state_changed), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_new ("visibility_changed", TYPE_DATA_VIEW, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataViewClass, visibility_changed), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_new ("view_altered", TYPE_DATA_VIEW, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataViewClass, view_altered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_new ("geometry_altered", TYPE_DATA_VIEW, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataViewClass, geometry_altered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ g_signal_new ("unsubscribed", TYPE_DATA_VIEW, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (DataViewClass, unsubscribed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_DATA_SOURCE);
+#line 638 "DataView.c"
+}
+
+
+static void data_view_instance_init (DataView * self) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self->priv = DATA_VIEW_GET_PRIVATE (self);
+#line 9 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self->priv->selected = FALSE;
+#line 10 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self->priv->visible = TRUE;
+#line 649 "DataView.c"
+}
+
+
+static void data_view_finalize (GObject* obj) {
+ DataView * self;
+ DataSource* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATA_VIEW, DataView);
+#line 44 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _tmp0_ = self->priv->source;
+#line 44 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ data_source_internal_unsubscribe (_tmp0_, self);
+#line 8 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ _g_object_unref0 (self->priv->source);
+#line 7 "/home/jens/Source/shotwell/src/core/DataView.vala"
+ G_OBJECT_CLASS (data_view_parent_class)->finalize (obj);
+#line 666 "DataView.c"
+}
+
+
+GType data_view_get_type (void) {
+ static volatile gsize data_view_type_id__volatile = 0;
+ if (g_once_init_enter (&data_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataView), 0, (GInstanceInitFunc) data_view_instance_init, NULL };
+ GType data_view_type_id;
+ data_view_type_id = g_type_register_static (TYPE_DATA_OBJECT, "DataView", &g_define_type_info, 0);
+ g_once_init_leave (&data_view_type_id__volatile, data_view_type_id);
+ }
+ return data_view_type_id__volatile;
+}
+
+
+
diff --git a/src/core/DataViewTypes.c b/src/core/DataViewTypes.c
new file mode 100644
index 0000000..0e55db0
--- /dev/null
+++ b/src/core/DataViewTypes.c
@@ -0,0 +1,546 @@
+/* DataViewTypes.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataViewTypes.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_PHOTO_VIEW (photo_view_get_type ())
+#define PHOTO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_VIEW, PhotoView))
+#define PHOTO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_VIEW, PhotoViewClass))
+#define IS_PHOTO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_VIEW))
+#define IS_PHOTO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_VIEW))
+#define PHOTO_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_VIEW, PhotoViewClass))
+
+typedef struct _PhotoView PhotoView;
+typedef struct _PhotoViewClass PhotoViewClass;
+typedef struct _PhotoViewPrivate PhotoViewPrivate;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_VIDEO_VIEW (video_view_get_type ())
+#define VIDEO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_VIEW, VideoView))
+#define VIDEO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_VIEW, VideoViewClass))
+#define IS_VIDEO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_VIEW))
+#define IS_VIDEO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_VIEW))
+#define VIDEO_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_VIEW, VideoViewClass))
+
+typedef struct _VideoView VideoView;
+typedef struct _VideoViewClass VideoViewClass;
+typedef struct _VideoViewPrivate VideoViewPrivate;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_EVENT_VIEW (event_view_get_type ())
+#define EVENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_VIEW, EventView))
+#define EVENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_VIEW, EventViewClass))
+#define IS_EVENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_VIEW))
+#define IS_EVENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_VIEW))
+#define EVENT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_VIEW, EventViewClass))
+
+typedef struct _EventView EventView;
+typedef struct _EventViewClass EventViewClass;
+typedef struct _EventViewPrivate EventViewPrivate;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _PhotoView {
+ ThumbnailView parent_instance;
+ PhotoViewPrivate * priv;
+};
+
+struct _PhotoViewClass {
+ ThumbnailViewClass parent_class;
+};
+
+struct _VideoView {
+ ThumbnailView parent_instance;
+ VideoViewPrivate * priv;
+};
+
+struct _VideoViewClass {
+ ThumbnailViewClass parent_class;
+};
+
+struct _EventView {
+ ThumbnailView parent_instance;
+ EventViewPrivate * priv;
+};
+
+struct _EventViewClass {
+ ThumbnailViewClass parent_class;
+};
+
+
+static gpointer thumbnail_view_parent_class = NULL;
+static gpointer photo_view_parent_class = NULL;
+static gpointer video_view_parent_class = NULL;
+static gpointer event_view_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+enum {
+ THUMBNAIL_VIEW_DUMMY_PROPERTY
+};
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+ThumbnailView* thumbnail_view_new (ThumbnailSource* source);
+ThumbnailView* thumbnail_view_construct (GType object_type, ThumbnailSource* source);
+DataView* data_view_new (DataSource* source);
+DataView* data_view_construct (GType object_type, DataSource* source);
+void thumbnail_view_notify_thumbnail_altered (ThumbnailView* self);
+static void thumbnail_view_real_notify_thumbnail_altered (ThumbnailView* self);
+static void thumbnail_view_real_thumbnail_altered (ThumbnailView* self);
+GType photo_view_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_VIEW_DUMMY_PROPERTY
+};
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+PhotoView* photo_view_new (PhotoSource* source);
+PhotoView* photo_view_construct (GType object_type, PhotoSource* source);
+PhotoSource* photo_view_get_photo_source (PhotoView* self);
+DataSource* data_view_get_source (DataView* self);
+GType video_view_get_type (void) G_GNUC_CONST;
+enum {
+ VIDEO_VIEW_DUMMY_PROPERTY
+};
+GType video_source_get_type (void) G_GNUC_CONST;
+VideoView* video_view_new (VideoSource* source);
+VideoView* video_view_construct (GType object_type, VideoSource* source);
+VideoSource* video_view_get_video_source (VideoView* self);
+GType event_view_get_type (void) G_GNUC_CONST;
+enum {
+ EVENT_VIEW_DUMMY_PROPERTY
+};
+GType event_source_get_type (void) G_GNUC_CONST;
+EventView* event_view_new (EventSource* source);
+EventView* event_view_construct (GType object_type, EventSource* source);
+EventSource* event_view_get_event_source (EventView* self);
+
+
+ThumbnailView* thumbnail_view_construct (GType object_type, ThumbnailSource* source) {
+ ThumbnailView * self = NULL;
+ ThumbnailSource* _tmp0_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_val_if_fail (IS_THUMBNAIL_SOURCE (source), NULL);
+#line 12 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ _tmp0_ = source;
+#line 12 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ self = (ThumbnailView*) data_view_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 11 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return self;
+#line 307 "DataViewTypes.c"
+}
+
+
+ThumbnailView* thumbnail_view_new (ThumbnailSource* source) {
+#line 11 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return thumbnail_view_construct (TYPE_THUMBNAIL_VIEW, source);
+#line 314 "DataViewTypes.c"
+}
+
+
+static void thumbnail_view_real_notify_thumbnail_altered (ThumbnailView* self) {
+#line 17 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_signal_emit_by_name (self, "thumbnail-altered");
+#line 321 "DataViewTypes.c"
+}
+
+
+void thumbnail_view_notify_thumbnail_altered (ThumbnailView* self) {
+#line 15 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_if_fail (IS_THUMBNAIL_VIEW (self));
+#line 15 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ THUMBNAIL_VIEW_GET_CLASS (self)->notify_thumbnail_altered (self);
+#line 330 "DataViewTypes.c"
+}
+
+
+static void thumbnail_view_real_thumbnail_altered (ThumbnailView* self) {
+}
+
+
+static void thumbnail_view_class_init (ThumbnailViewClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ thumbnail_view_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ ((ThumbnailViewClass *) klass)->notify_thumbnail_altered = thumbnail_view_real_notify_thumbnail_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ ((ThumbnailViewClass *) klass)->thumbnail_altered = thumbnail_view_real_thumbnail_altered;
+#line 7 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_signal_new ("thumbnail_altered", TYPE_THUMBNAIL_VIEW, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ThumbnailViewClass, thumbnail_altered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 347 "DataViewTypes.c"
+}
+
+
+static void thumbnail_view_instance_init (ThumbnailView * self) {
+}
+
+
+GType thumbnail_view_get_type (void) {
+ static volatile gsize thumbnail_view_type_id__volatile = 0;
+ if (g_once_init_enter (&thumbnail_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ThumbnailViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) thumbnail_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ThumbnailView), 0, (GInstanceInitFunc) thumbnail_view_instance_init, NULL };
+ GType thumbnail_view_type_id;
+ thumbnail_view_type_id = g_type_register_static (TYPE_DATA_VIEW, "ThumbnailView", &g_define_type_info, 0);
+ g_once_init_leave (&thumbnail_view_type_id__volatile, thumbnail_view_type_id);
+ }
+ return thumbnail_view_type_id__volatile;
+}
+
+
+PhotoView* photo_view_construct (GType object_type, PhotoSource* source) {
+ PhotoView * self = NULL;
+ PhotoSource* _tmp0_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_val_if_fail (IS_PHOTO_SOURCE (source), NULL);
+#line 23 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ _tmp0_ = source;
+#line 23 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ self = (PhotoView*) thumbnail_view_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 22 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return self;
+#line 378 "DataViewTypes.c"
+}
+
+
+PhotoView* photo_view_new (PhotoSource* source) {
+#line 22 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return photo_view_construct (TYPE_PHOTO_VIEW, source);
+#line 385 "DataViewTypes.c"
+}
+
+
+PhotoSource* photo_view_get_photo_source (PhotoView* self) {
+ PhotoSource* result = NULL;
+ DataSource* _tmp0_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_val_if_fail (IS_PHOTO_VIEW (self), NULL);
+#line 27 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ _tmp0_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 27 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_SOURCE, PhotoSource);
+#line 27 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return result;
+#line 400 "DataViewTypes.c"
+}
+
+
+static void photo_view_class_init (PhotoViewClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ photo_view_parent_class = g_type_class_peek_parent (klass);
+#line 407 "DataViewTypes.c"
+}
+
+
+static void photo_view_instance_init (PhotoView * self) {
+}
+
+
+GType photo_view_get_type (void) {
+ static volatile gsize photo_view_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoView), 0, (GInstanceInitFunc) photo_view_instance_init, NULL };
+ GType photo_view_type_id;
+ photo_view_type_id = g_type_register_static (TYPE_THUMBNAIL_VIEW, "PhotoView", &g_define_type_info, 0);
+ g_once_init_leave (&photo_view_type_id__volatile, photo_view_type_id);
+ }
+ return photo_view_type_id__volatile;
+}
+
+
+VideoView* video_view_construct (GType object_type, VideoSource* source) {
+ VideoView * self = NULL;
+ VideoSource* _tmp0_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_val_if_fail (IS_VIDEO_SOURCE (source), NULL);
+#line 33 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ _tmp0_ = source;
+#line 33 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ self = (VideoView*) thumbnail_view_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 32 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return self;
+#line 438 "DataViewTypes.c"
+}
+
+
+VideoView* video_view_new (VideoSource* source) {
+#line 32 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return video_view_construct (TYPE_VIDEO_VIEW, source);
+#line 445 "DataViewTypes.c"
+}
+
+
+VideoSource* video_view_get_video_source (VideoView* self) {
+ VideoSource* result = NULL;
+ DataSource* _tmp0_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_val_if_fail (IS_VIDEO_VIEW (self), NULL);
+#line 37 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ _tmp0_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 37 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIDEO_SOURCE, VideoSource);
+#line 37 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return result;
+#line 460 "DataViewTypes.c"
+}
+
+
+static void video_view_class_init (VideoViewClass * klass) {
+#line 31 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ video_view_parent_class = g_type_class_peek_parent (klass);
+#line 467 "DataViewTypes.c"
+}
+
+
+static void video_view_instance_init (VideoView * self) {
+}
+
+
+GType video_view_get_type (void) {
+ static volatile gsize video_view_type_id__volatile = 0;
+ if (g_once_init_enter (&video_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoView), 0, (GInstanceInitFunc) video_view_instance_init, NULL };
+ GType video_view_type_id;
+ video_view_type_id = g_type_register_static (TYPE_THUMBNAIL_VIEW, "VideoView", &g_define_type_info, 0);
+ g_once_init_leave (&video_view_type_id__volatile, video_view_type_id);
+ }
+ return video_view_type_id__volatile;
+}
+
+
+EventView* event_view_construct (GType object_type, EventSource* source) {
+ EventView * self = NULL;
+ EventSource* _tmp0_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_val_if_fail (IS_EVENT_SOURCE (source), NULL);
+#line 43 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ _tmp0_ = source;
+#line 43 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ self = (EventView*) thumbnail_view_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource));
+#line 42 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return self;
+#line 498 "DataViewTypes.c"
+}
+
+
+EventView* event_view_new (EventSource* source) {
+#line 42 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return event_view_construct (TYPE_EVENT_VIEW, source);
+#line 505 "DataViewTypes.c"
+}
+
+
+EventSource* event_view_get_event_source (EventView* self) {
+ EventSource* result = NULL;
+ DataSource* _tmp0_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ g_return_val_if_fail (IS_EVENT_VIEW (self), NULL);
+#line 47 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ _tmp0_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_VIEW, DataView));
+#line 47 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT_SOURCE, EventSource);
+#line 47 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ return result;
+#line 520 "DataViewTypes.c"
+}
+
+
+static void event_view_class_init (EventViewClass * klass) {
+#line 41 "/home/jens/Source/shotwell/src/core/DataViewTypes.vala"
+ event_view_parent_class = g_type_class_peek_parent (klass);
+#line 527 "DataViewTypes.c"
+}
+
+
+static void event_view_instance_init (EventView * self) {
+}
+
+
+GType event_view_get_type (void) {
+ static volatile gsize event_view_type_id__volatile = 0;
+ if (g_once_init_enter (&event_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventView), 0, (GInstanceInitFunc) event_view_instance_init, NULL };
+ GType event_view_type_id;
+ event_view_type_id = g_type_register_static (TYPE_THUMBNAIL_VIEW, "EventView", &g_define_type_info, 0);
+ g_once_init_leave (&event_view_type_id__volatile, event_view_type_id);
+ }
+ return event_view_type_id__volatile;
+}
+
+
+
diff --git a/src/core/DatabaseSourceCollection.c b/src/core/DatabaseSourceCollection.c
new file mode 100644
index 0000000..b83be40
--- /dev/null
+++ b/src/core/DatabaseSourceCollection.c
@@ -0,0 +1,914 @@
+/* DatabaseSourceCollection.c generated by valac 0.32.1, the Vala compiler
+ * generated from DatabaseSourceCollection.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+typedef struct _SourceHoldingTankPrivate SourceHoldingTankPrivate;
+
+#define TYPE_DATABASE_SOURCE_HOLDING_TANK (database_source_holding_tank_get_type ())
+#define DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank))
+#define DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+#define IS_DATABASE_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define IS_DATABASE_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_HOLDING_TANK))
+#define DATABASE_SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankClass))
+
+typedef struct _DatabaseSourceHoldingTank DatabaseSourceHoldingTank;
+typedef struct _DatabaseSourceHoldingTankClass DatabaseSourceHoldingTankClass;
+typedef struct _DatabaseSourceHoldingTankPrivate DatabaseSourceHoldingTankPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _DatabaseSourceCollectionPrivate {
+ GetSourceDatabaseKey source_key_func;
+ gpointer source_key_func_target;
+ GeeHashMap* map;
+};
+
+struct _SourceHoldingTank {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceHoldingTankPrivate * priv;
+};
+
+struct _SourceHoldingTankClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceHoldingTank *self);
+ void (*notify_contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+ void (*contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+};
+
+struct _DatabaseSourceHoldingTank {
+ SourceHoldingTank parent_instance;
+ DatabaseSourceHoldingTankPrivate * priv;
+};
+
+struct _DatabaseSourceHoldingTankClass {
+ SourceHoldingTankClass parent_class;
+};
+
+struct _DatabaseSourceHoldingTankPrivate {
+ GetSourceDatabaseKey get_key;
+ gpointer get_key_target;
+ GeeHashMap* map;
+};
+
+typedef gboolean (*SourceHoldingTankCheckToKeep) (DataSource* source, Alteration* alteration, void* user_data);
+
+static gpointer database_source_collection_parent_class = NULL;
+static gpointer database_source_holding_tank_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+#define DATABASE_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionPrivate))
+enum {
+ DATABASE_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+guint int64_hash (gint64* n);
+static guint _int64_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean int64_equal (gint64* a, gint64* b);
+static gboolean _int64_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static gint64* _int64_dup (gint64* self);
+DatabaseSourceCollection* database_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+SourceCollection* source_collection_construct (GType object_type, const gchar* name);
+static void database_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added);
+void data_collection_notify_items_added (DataCollection* self, GeeIterable* added);
+static void database_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed);
+void data_collection_notify_items_removed (DataCollection* self, GeeIterable* removed);
+DataSource* database_source_collection_fetch_by_key (DatabaseSourceCollection* self, gint64 key);
+static void database_source_collection_finalize (DataCollection* obj);
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType database_source_holding_tank_get_type (void) G_GNUC_CONST;
+#define DATABASE_SOURCE_HOLDING_TANK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTankPrivate))
+enum {
+ DATABASE_SOURCE_HOLDING_TANK_DUMMY_PROPERTY
+};
+DatabaseSourceHoldingTank* database_source_holding_tank_new (SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+DatabaseSourceHoldingTank* database_source_holding_tank_construct (GType object_type, SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target);
+SourceHoldingTank* source_holding_tank_new (SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target);
+SourceHoldingTank* source_holding_tank_construct (GType object_type, SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target);
+DataSource* database_source_holding_tank_get_by_id (DatabaseSourceHoldingTank* self, gint64 id);
+static void database_source_holding_tank_real_notify_contents_altered (SourceHoldingTank* base, GeeCollection* added, GeeCollection* removed);
+void source_holding_tank_notify_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+static void database_source_holding_tank_finalize (SourceHoldingTank* obj);
+
+
+static guint _int64_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = int64_hash ((gint64*) v);
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return result;
+#line 327 "DatabaseSourceCollection.c"
+}
+
+
+static gboolean _int64_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = int64_equal ((gint64*) a, (gint64*) b);
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return result;
+#line 336 "DatabaseSourceCollection.c"
+}
+
+
+static gint64* _int64_dup (gint64* self) {
+ gint64* dup;
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ dup = g_new0 (gint64, 1);
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ memcpy (dup, self, sizeof (gint64));
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return dup;
+#line 348 "DatabaseSourceCollection.c"
+}
+
+
+DatabaseSourceCollection* database_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target) {
+ DatabaseSourceCollection* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ GetSourceDatabaseKey _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 20 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 21 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = name;
+#line 21 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self = (DatabaseSourceCollection*) source_collection_construct (object_type, _tmp0_);
+#line 23 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1_ = source_key_func;
+#line 23 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1__target = source_key_func_target;
+#line 23 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv->source_key_func = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv->source_key_func_target = _tmp1__target;
+#line 20 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return self;
+#line 373 "DatabaseSourceCollection.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 28 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 380 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added) {
+ DatabaseSourceCollection * self;
+ GeeIterable* _tmp17_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection);
+#line 26 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 391 "DatabaseSourceCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = added;
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _object_it = _tmp1_;
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ while (TRUE) {
+#line 404 "DatabaseSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataSource* source = NULL;
+ DataObject* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ gint64 key = 0LL;
+ GetSourceDatabaseKey _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ DataSource* _tmp9_ = NULL;
+ gint64 _tmp10_ = 0LL;
+ GeeHashMap* _tmp11_ = NULL;
+ gint64 _tmp12_ = 0LL;
+ gboolean _tmp13_ = FALSE;
+ GeeHashMap* _tmp14_ = NULL;
+ gint64 _tmp15_ = 0LL;
+ DataSource* _tmp16_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp2_ = _object_it;
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ if (!_tmp3_) {
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ break;
+#line 432 "DatabaseSourceCollection.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp4_ = _object_it;
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 28 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp6_ = object;
+#line 28 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_SOURCE, DataSource));
+#line 28 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ source = _tmp7_;
+#line 29 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp8_ = self->priv->source_key_func;
+#line 29 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp8__target = self->priv->source_key_func_target;
+#line 29 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp9_ = source;
+#line 29 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp10_ = _tmp8_ (_tmp9_, _tmp8__target);
+#line 29 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ key = _tmp10_;
+#line 31 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp11_ = self->priv->map;
+#line 31 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp12_ = key;
+#line 31 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp13_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), &_tmp12_);
+#line 31 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _vala_assert (!_tmp13_, "!map.has_key(key)");
+#line 33 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp14_ = self->priv->map;
+#line 33 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp15_ = key;
+#line 33 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp16_ = source;
+#line 33 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), &_tmp15_, _tmp16_);
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (source);
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (object);
+#line 476 "DatabaseSourceCollection.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 480 "DatabaseSourceCollection.c"
+ }
+#line 36 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp17_ = added;
+#line 36 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ DATA_COLLECTION_CLASS (database_source_collection_parent_class)->notify_items_added (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp17_);
+#line 486 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed) {
+ DatabaseSourceCollection * self;
+ GeeIterable* _tmp13_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection);
+#line 39 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 497 "DatabaseSourceCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = removed;
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _object_it = _tmp1_;
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ while (TRUE) {
+#line 510 "DatabaseSourceCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gint64 key = 0LL;
+ GetSourceDatabaseKey _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ DataObject* _tmp7_ = NULL;
+ gint64 _tmp8_ = 0LL;
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp9_ = NULL;
+ gint64 _tmp10_ = 0LL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp2_ = _object_it;
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ if (!_tmp3_) {
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ break;
+#line 534 "DatabaseSourceCollection.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp4_ = _object_it;
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 41 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp6_ = self->priv->source_key_func;
+#line 41 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp6__target = self->priv->source_key_func_target;
+#line 41 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp7_ = object;
+#line 41 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp8_ = _tmp6_ (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_SOURCE, DataSource), _tmp6__target);
+#line 41 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ key = _tmp8_;
+#line 43 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp9_ = self->priv->map;
+#line 43 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp10_ = key;
+#line 43 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp11_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), &_tmp10_, NULL);
+#line 43 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ is_removed = _tmp11_;
+#line 44 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp12_ = is_removed;
+#line 44 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _vala_assert (_tmp12_, "is_removed");
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (object);
+#line 566 "DatabaseSourceCollection.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 570 "DatabaseSourceCollection.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp13_ = removed;
+#line 47 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ DATA_COLLECTION_CLASS (database_source_collection_parent_class)->notify_items_removed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_COLLECTION, SourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp13_);
+#line 576 "DatabaseSourceCollection.c"
+}
+
+
+DataSource* database_source_collection_fetch_by_key (DatabaseSourceCollection* self, gint64 key) {
+ DataSource* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ gpointer _tmp2_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_val_if_fail (IS_DATABASE_SOURCE_COLLECTION (self), NULL);
+#line 51 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = self->priv->map;
+#line 51 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1_ = key;
+#line 51 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), &_tmp1_);
+#line 51 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ result = (DataSource*) _tmp2_;
+#line 51 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return result;
+#line 597 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_collection_class_init (DatabaseSourceCollectionClass * klass) {
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ database_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ ((DataCollectionClass *) klass)->finalize = database_source_collection_finalize;
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_type_class_add_private (klass, sizeof (DatabaseSourceCollectionPrivate));
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ ((DataCollectionClass *) klass)->notify_items_added = database_source_collection_real_notify_items_added;
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ ((DataCollectionClass *) klass)->notify_items_removed = database_source_collection_real_notify_items_removed;
+#line 612 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_collection_instance_init (DatabaseSourceCollection * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv = DATABASE_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_INT64, (GBoxedCopyFunc) _int64_dup, g_free, TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _int64_hash_gee_hash_data_func, NULL, NULL, _int64_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv->map = _tmp0_;
+#line 624 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_collection_finalize (DataCollection* obj) {
+ DatabaseSourceCollection * self;
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection);
+#line 17 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (self->priv->map);
+#line 15 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ DATA_COLLECTION_CLASS (database_source_collection_parent_class)->finalize (obj);
+#line 636 "DatabaseSourceCollection.c"
+}
+
+
+GType database_source_collection_get_type (void) {
+ static volatile gsize database_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&database_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DatabaseSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) database_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DatabaseSourceCollection), 0, (GInstanceInitFunc) database_source_collection_instance_init, NULL };
+ GType database_source_collection_type_id;
+ database_source_collection_type_id = g_type_register_static (TYPE_SOURCE_COLLECTION, "DatabaseSourceCollection", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&database_source_collection_type_id__volatile, database_source_collection_type_id);
+ }
+ return database_source_collection_type_id__volatile;
+}
+
+
+DatabaseSourceHoldingTank* database_source_holding_tank_construct (GType object_type, SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target) {
+ DatabaseSourceHoldingTank* self = NULL;
+ SourceCollection* _tmp0_ = NULL;
+ SourceHoldingTankCheckToKeep _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GetSourceDatabaseKey _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 60 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
+#line 62 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = sources;
+#line 62 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1_ = check_to_keep;
+#line 62 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1__target = check_to_keep_target;
+#line 62 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self = (DatabaseSourceHoldingTank*) source_holding_tank_construct (object_type, _tmp0_, _tmp1_, _tmp1__target);
+#line 64 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp2_ = get_key;
+#line 64 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp2__target = get_key_target;
+#line 64 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv->get_key = _tmp2_;
+#line 64 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv->get_key_target = _tmp2__target;
+#line 60 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return self;
+#line 679 "DatabaseSourceCollection.c"
+}
+
+
+DatabaseSourceHoldingTank* database_source_holding_tank_new (SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target, GetSourceDatabaseKey get_key, void* get_key_target) {
+#line 60 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return database_source_holding_tank_construct (TYPE_DATABASE_SOURCE_HOLDING_TANK, sources, check_to_keep, check_to_keep_target, get_key, get_key_target);
+#line 686 "DatabaseSourceCollection.c"
+}
+
+
+DataSource* database_source_holding_tank_get_by_id (DatabaseSourceHoldingTank* self, gint64 id) {
+ DataSource* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ gpointer _tmp2_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_val_if_fail (IS_DATABASE_SOURCE_HOLDING_TANK (self), NULL);
+#line 68 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = self->priv->map;
+#line 68 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1_ = id;
+#line 68 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), &_tmp1_);
+#line 68 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ result = (DataSource*) _tmp2_;
+#line 68 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ return result;
+#line 707 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_holding_tank_real_notify_contents_altered (SourceHoldingTank* base, GeeCollection* added, GeeCollection* removed) {
+ DatabaseSourceHoldingTank * self;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank);
+#line 71 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 71 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 73 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = added;
+#line 73 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ if (_tmp0_ != NULL) {
+#line 727 "DatabaseSourceCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp1_ = added;
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _source_it = _tmp2_;
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ while (TRUE) {
+#line 740 "DatabaseSourceCollection.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ GetSourceDatabaseKey _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ DataSource* _tmp9_ = NULL;
+ gint64 _tmp10_ = 0LL;
+ DataSource* _tmp11_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp3_ = _source_it;
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ if (!_tmp4_) {
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ break;
+#line 760 "DatabaseSourceCollection.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp5_ = _source_it;
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ source = (DataSource*) _tmp6_;
+#line 75 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp7_ = self->priv->map;
+#line 75 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp8_ = self->priv->get_key;
+#line 75 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp8__target = self->priv->get_key_target;
+#line 75 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp9_ = source;
+#line 75 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp10_ = _tmp8_ (_tmp9_, _tmp8__target);
+#line 75 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp11_ = source;
+#line 75 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), &_tmp10_, _tmp11_);
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (source);
+#line 784 "DatabaseSourceCollection.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 788 "DatabaseSourceCollection.c"
+ }
+ }
+#line 78 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp12_ = removed;
+#line 78 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ if (_tmp12_ != NULL) {
+#line 795 "DatabaseSourceCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp13_ = removed;
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _source_it = _tmp14_;
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ while (TRUE) {
+#line 808 "DatabaseSourceCollection.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ GeeHashMap* _tmp19_ = NULL;
+ GetSourceDatabaseKey _tmp20_ = NULL;
+ void* _tmp20__target = NULL;
+ DataSource* _tmp21_ = NULL;
+ gint64 _tmp22_ = 0LL;
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp15_ = _source_it;
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ if (!_tmp16_) {
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ break;
+#line 827 "DatabaseSourceCollection.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp17_ = _source_it;
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ source = (DataSource*) _tmp18_;
+#line 80 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp19_ = self->priv->map;
+#line 80 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp20_ = self->priv->get_key;
+#line 80 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp20__target = self->priv->get_key_target;
+#line 80 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp21_ = source;
+#line 80 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp22_ = _tmp20_ (_tmp21_, _tmp20__target);
+#line 80 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), &_tmp22_, NULL);
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (source);
+#line 849 "DatabaseSourceCollection.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 853 "DatabaseSourceCollection.c"
+ }
+ }
+#line 83 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp23_ = added;
+#line 83 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp24_ = removed;
+#line 83 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ SOURCE_HOLDING_TANK_CLASS (database_source_holding_tank_parent_class)->notify_contents_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank), _tmp23_, _tmp24_);
+#line 862 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_holding_tank_class_init (DatabaseSourceHoldingTankClass * klass) {
+#line 55 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ database_source_holding_tank_parent_class = g_type_class_peek_parent (klass);
+#line 55 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ ((SourceHoldingTankClass *) klass)->finalize = database_source_holding_tank_finalize;
+#line 55 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ g_type_class_add_private (klass, sizeof (DatabaseSourceHoldingTankPrivate));
+#line 55 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ ((SourceHoldingTankClass *) klass)->notify_contents_altered = database_source_holding_tank_real_notify_contents_altered;
+#line 875 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_holding_tank_instance_init (DatabaseSourceHoldingTank * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv = DATABASE_SOURCE_HOLDING_TANK_GET_PRIVATE (self);
+#line 57 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_INT64, (GBoxedCopyFunc) _int64_dup, g_free, TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _int64_hash_gee_hash_data_func, NULL, NULL, _int64_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 57 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self->priv->map = _tmp0_;
+#line 887 "DatabaseSourceCollection.c"
+}
+
+
+static void database_source_holding_tank_finalize (SourceHoldingTank* obj) {
+ DatabaseSourceHoldingTank * self;
+#line 55 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATABASE_SOURCE_HOLDING_TANK, DatabaseSourceHoldingTank);
+#line 57 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ _g_object_unref0 (self->priv->map);
+#line 55 "/home/jens/Source/shotwell/src/core/DatabaseSourceCollection.vala"
+ SOURCE_HOLDING_TANK_CLASS (database_source_holding_tank_parent_class)->finalize (obj);
+#line 899 "DatabaseSourceCollection.c"
+}
+
+
+GType database_source_holding_tank_get_type (void) {
+ static volatile gsize database_source_holding_tank_type_id__volatile = 0;
+ if (g_once_init_enter (&database_source_holding_tank_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DatabaseSourceHoldingTankClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) database_source_holding_tank_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DatabaseSourceHoldingTank), 0, (GInstanceInitFunc) database_source_holding_tank_instance_init, NULL };
+ GType database_source_holding_tank_type_id;
+ database_source_holding_tank_type_id = g_type_register_static (TYPE_SOURCE_HOLDING_TANK, "DatabaseSourceHoldingTank", &g_define_type_info, 0);
+ g_once_init_leave (&database_source_holding_tank_type_id__volatile, database_source_holding_tank_type_id);
+ }
+ return database_source_holding_tank_type_id__volatile;
+}
+
+
+
diff --git a/src/core/SourceCollection.c b/src/core/SourceCollection.c
new file mode 100644
index 0000000..6321f92
--- /dev/null
+++ b/src/core/SourceCollection.c
@@ -0,0 +1,1694 @@
+/* SourceCollection.c generated by valac 0.32.1, the Vala compiler
+ * generated from SourceCollection.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define SOURCE_COLLECTION_TYPE_DESTROY_COUNTER (source_collection_destroy_counter_get_type ())
+#define SOURCE_COLLECTION_DESTROY_COUNTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, SourceCollectionDestroyCounter))
+#define SOURCE_COLLECTION_DESTROY_COUNTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, SourceCollectionDestroyCounterClass))
+#define SOURCE_COLLECTION_IS_DESTROY_COUNTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOURCE_COLLECTION_TYPE_DESTROY_COUNTER))
+#define SOURCE_COLLECTION_IS_DESTROY_COUNTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SOURCE_COLLECTION_TYPE_DESTROY_COUNTER))
+#define SOURCE_COLLECTION_DESTROY_COUNTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, SourceCollectionDestroyCounterClass))
+
+typedef struct _SourceCollectionDestroyCounter SourceCollectionDestroyCounter;
+typedef struct _SourceCollectionDestroyCounterClass SourceCollectionDestroyCounterClass;
+typedef struct _SourceCollectionDestroyCounterPrivate SourceCollectionDestroyCounterPrivate;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _SourceCollectionPrivate {
+ GeeMultiMap* backlinks;
+};
+
+typedef gboolean (*MarkedAction) (DataObject* object, GObject* user, void* user_data);
+struct _SourceCollectionDestroyCounter {
+ GObject parent_instance;
+ SourceCollectionDestroyCounterPrivate * priv;
+ Marker* remove_marker;
+ GeeArrayList* notify_list;
+ GeeArrayList* not_removed;
+};
+
+struct _SourceCollectionDestroyCounterClass {
+ GObjectClass parent_class;
+};
+
+
+static gpointer source_collection_parent_class = NULL;
+static gpointer source_collection_destroy_counter_parent_class = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+#define SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SOURCE_COLLECTION, SourceCollectionPrivate))
+enum {
+ SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+SourceCollection* source_collection_construct (GType object_type, const gchar* name);
+DataCollection* data_collection_new (const gchar* name);
+DataCollection* data_collection_construct (GType object_type, const gchar* name);
+gboolean source_collection_holds_type_of_source (SourceCollection* self, DataSource* source);
+static gboolean source_collection_real_holds_type_of_source (SourceCollection* self, DataSource* source);
+void source_collection_notify_items_unlinking (SourceCollection* self, GeeCollection* unlinking);
+static void source_collection_real_notify_items_unlinking (SourceCollection* self, GeeCollection* unlinking);
+void source_collection_notify_items_relinked (SourceCollection* self, GeeCollection* relinked);
+static void source_collection_real_notify_items_relinked (SourceCollection* self, GeeCollection* relinked);
+void source_collection_notify_item_destroyed (SourceCollection* self, DataSource* source);
+static void source_collection_real_notify_item_destroyed (SourceCollection* self, DataSource* source);
+void source_collection_notify_items_destroyed (SourceCollection* self, GeeCollection* destroyed);
+static void source_collection_real_notify_items_destroyed (SourceCollection* self, GeeCollection* destroyed);
+void source_collection_notify_unlinked_destroyed (SourceCollection* self, DataSource* unlinked);
+static void source_collection_real_notify_unlinked_destroyed (SourceCollection* self, DataSource* unlinked);
+void source_collection_notify_backlink_removed (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+static void source_collection_real_notify_backlink_removed (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+static gboolean source_collection_real_valid_type (DataCollection* base, DataObject* object);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gint source_collection_destroy_marked (SourceCollection* self, Marker* marker, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+static GType source_collection_destroy_counter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+Marker* data_collection_start_marking (DataCollection* self);
+static SourceCollectionDestroyCounter* source_collection_destroy_counter_new (Marker* remove_marker);
+static SourceCollectionDestroyCounter* source_collection_destroy_counter_construct (GType object_type, Marker* remove_marker);
+void data_collection_act_on_marked (DataCollection* self, Marker* m, MarkedAction action, void* action_target, ProgressMonitor monitor, void* monitor_target, GObject* user);
+static gboolean source_collection_destroy_and_delete_source (SourceCollection* self, DataObject* object, GObject* user);
+static gboolean _source_collection_destroy_and_delete_source_marked_action (DataObject* object, GObject* user, gpointer self);
+static gboolean source_collection_destroy_source (SourceCollection* self, DataObject* object, GObject* user);
+static gboolean _source_collection_destroy_source_marked_action (DataObject* object, GObject* user, gpointer self);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+gboolean data_source_internal_delete_backing (DataSource* self, GError** error);
+void data_source_internal_mark_for_destroy (DataSource* self);
+void data_source_destroy (DataSource* self);
+void marker_mark (Marker* self, DataObject* object);
+void source_collection_internal_backlink_set (SourceCollection* self, DataSource* source, SourceBacklink* backlink);
+guint source_backlink_hash_func (SourceBacklink* backlink);
+static guint _source_backlink_hash_func_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean source_backlink_equal_func (SourceBacklink* alink, SourceBacklink* blink);
+static gboolean _source_backlink_equal_func_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+void source_collection_internal_backlink_removed (SourceCollection* self, DataSource* source, SourceBacklink* backlink);
+gboolean source_collection_has_backlink (SourceCollection* self, SourceBacklink* backlink);
+static gboolean source_collection_real_has_backlink (SourceCollection* self, SourceBacklink* backlink);
+GeeCollection* source_collection_unlink_marked (SourceCollection* self, Marker* marker, ProgressMonitor monitor, void* monitor_target);
+static gboolean source_collection_prepare_for_unlink (SourceCollection* self, DataObject* object, GObject* user);
+static gboolean _source_collection_prepare_for_unlink_marked_action (DataObject* object, GObject* user, gpointer self);
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects);
+void data_source_notify_unlinking (DataSource* self, SourceCollection* collection);
+void source_collection_relink (SourceCollection* self, DataSource* source);
+void data_source_notify_relinking (DataSource* self, SourceCollection* collection);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+GeeCollection* data_collection_get_singleton (DataObject* object);
+void data_source_notify_relinked (DataSource* self);
+void source_collection_relink_many (SourceCollection* self, GeeCollection* relink);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+void source_collection_remove_backlink (SourceCollection* self, SourceBacklink* backlink);
+static void source_collection_real_remove_backlink (SourceCollection* self, SourceBacklink* backlink);
+gboolean data_source_remove_backlink (DataSource* self, SourceBacklink* backlink);
+static void source_collection_real_items_unlinking (SourceCollection* self, GeeCollection* unlinking);
+static void source_collection_real_items_relinked (SourceCollection* self, GeeCollection* relinked);
+static void source_collection_real_item_destroyed (SourceCollection* self, DataSource* source);
+static void source_collection_real_items_destroyed (SourceCollection* self, GeeCollection* destroyed);
+static void source_collection_real_unlinked_destroyed (SourceCollection* self, DataSource* source);
+static void source_collection_real_backlink_removed (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+static void g_cclosure_user_marshal_VOID__SOURCE_BACKLINK_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+enum {
+ SOURCE_COLLECTION_DESTROY_COUNTER_DUMMY_PROPERTY
+};
+static void source_collection_destroy_counter_finalize (GObject* obj);
+static void source_collection_finalize (DataCollection* obj);
+
+
+SourceCollection* source_collection_construct (GType object_type, const gchar* name) {
+ SourceCollection* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 51 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = name;
+#line 51 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self = (SourceCollection*) data_collection_construct (object_type, _tmp0_);
+#line 50 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return self;
+#line 340 "SourceCollection.c"
+}
+
+
+static gboolean source_collection_real_holds_type_of_source (SourceCollection* self, DataSource* source) {
+#line 54 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_critical ("Type `%s' does not implement abstract method `source_collection_holds_type_of_source'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 54 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return FALSE;
+#line 349 "SourceCollection.c"
+}
+
+
+gboolean source_collection_holds_type_of_source (SourceCollection* self, DataSource* source) {
+#line 54 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (self), FALSE);
+#line 54 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return SOURCE_COLLECTION_GET_CLASS (self)->holds_type_of_source (self, source);
+#line 358 "SourceCollection.c"
+}
+
+
+static void source_collection_real_notify_items_unlinking (SourceCollection* self, GeeCollection* unlinking) {
+ GeeCollection* _tmp0_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (unlinking));
+#line 57 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = unlinking;
+#line 57 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_emit_by_name (self, "items-unlinking", _tmp0_);
+#line 370 "SourceCollection.c"
+}
+
+
+void source_collection_notify_items_unlinking (SourceCollection* self, GeeCollection* unlinking) {
+#line 56 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 56 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ SOURCE_COLLECTION_GET_CLASS (self)->notify_items_unlinking (self, unlinking);
+#line 379 "SourceCollection.c"
+}
+
+
+static void source_collection_real_notify_items_relinked (SourceCollection* self, GeeCollection* relinked) {
+ GeeCollection* _tmp0_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (relinked));
+#line 61 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = relinked;
+#line 61 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_emit_by_name (self, "items-relinked", _tmp0_);
+#line 391 "SourceCollection.c"
+}
+
+
+void source_collection_notify_items_relinked (SourceCollection* self, GeeCollection* relinked) {
+#line 60 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 60 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ SOURCE_COLLECTION_GET_CLASS (self)->notify_items_relinked (self, relinked);
+#line 400 "SourceCollection.c"
+}
+
+
+static void source_collection_real_notify_item_destroyed (SourceCollection* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 65 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = source;
+#line 65 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_emit_by_name (self, "item-destroyed", _tmp0_);
+#line 412 "SourceCollection.c"
+}
+
+
+void source_collection_notify_item_destroyed (SourceCollection* self, DataSource* source) {
+#line 64 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 64 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ SOURCE_COLLECTION_GET_CLASS (self)->notify_item_destroyed (self, source);
+#line 421 "SourceCollection.c"
+}
+
+
+static void source_collection_real_notify_items_destroyed (SourceCollection* self, GeeCollection* destroyed) {
+ GeeCollection* _tmp0_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (destroyed));
+#line 69 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = destroyed;
+#line 69 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_emit_by_name (self, "items-destroyed", _tmp0_);
+#line 433 "SourceCollection.c"
+}
+
+
+void source_collection_notify_items_destroyed (SourceCollection* self, GeeCollection* destroyed) {
+#line 68 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 68 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ SOURCE_COLLECTION_GET_CLASS (self)->notify_items_destroyed (self, destroyed);
+#line 442 "SourceCollection.c"
+}
+
+
+static void source_collection_real_notify_unlinked_destroyed (SourceCollection* self, DataSource* unlinked) {
+ DataSource* _tmp0_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (unlinked));
+#line 74 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = unlinked;
+#line 74 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_emit_by_name (self, "unlinked-destroyed", _tmp0_);
+#line 454 "SourceCollection.c"
+}
+
+
+void source_collection_notify_unlinked_destroyed (SourceCollection* self, DataSource* unlinked) {
+#line 73 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 73 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ SOURCE_COLLECTION_GET_CLASS (self)->notify_unlinked_destroyed (self, unlinked);
+#line 463 "SourceCollection.c"
+}
+
+
+static void source_collection_real_notify_backlink_removed (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources) {
+ SourceBacklink* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 77 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 79 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = backlink;
+#line 79 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = sources;
+#line 79 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_emit_by_name (self, "backlink-removed", _tmp0_, _tmp1_);
+#line 480 "SourceCollection.c"
+}
+
+
+void source_collection_notify_backlink_removed (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources) {
+#line 77 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 77 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ SOURCE_COLLECTION_GET_CLASS (self)->notify_backlink_removed (self, backlink, sources);
+#line 489 "SourceCollection.c"
+}
+
+
+static gboolean source_collection_real_valid_type (DataCollection* base, DataObject* object) {
+ SourceCollection * self;
+ gboolean result = FALSE;
+ DataObject* _tmp0_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SOURCE_COLLECTION, SourceCollection);
+#line 82 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 83 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = object;
+#line 83 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_DATA_SOURCE);
+#line 83 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 507 "SourceCollection.c"
+}
+
+
+static gboolean _source_collection_destroy_and_delete_source_marked_action (DataObject* object, GObject* user, gpointer self) {
+ gboolean result;
+ result = source_collection_destroy_and_delete_source ((SourceCollection*) self, object, user);
+#line 93 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 516 "SourceCollection.c"
+}
+
+
+static gboolean _source_collection_destroy_source_marked_action (DataObject* object, GObject* user, gpointer self) {
+ gboolean result;
+ result = source_collection_destroy_source ((SourceCollection*) self, object, user);
+#line 95 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 525 "SourceCollection.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 532 "SourceCollection.c"
+}
+
+
+gint source_collection_destroy_marked (SourceCollection* self, Marker* marker, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed) {
+ gint result = 0;
+ SourceCollectionDestroyCounter* counter = NULL;
+ Marker* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ SourceCollectionDestroyCounter* _tmp2_ = NULL;
+ SourceCollectionDestroyCounter* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ SourceCollectionDestroyCounter* _tmp24_ = NULL;
+ GeeArrayList* _tmp25_ = NULL;
+ SourceCollectionDestroyCounter* _tmp26_ = NULL;
+ Marker* _tmp27_ = NULL;
+ GeeList* _tmp28_ = NULL;
+ SourceCollectionDestroyCounter* _tmp32_ = NULL;
+ GeeArrayList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 88 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (self), 0);
+#line 88 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_MARKER (marker), 0);
+#line 88 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail ((not_removed == NULL) || GEE_IS_LIST (not_removed), 0);
+#line 90 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 90 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = _tmp0_;
+#line 90 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = source_collection_destroy_counter_new (_tmp1_);
+#line 90 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 90 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_tmp1_);
+#line 90 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ counter = _tmp3_;
+#line 92 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = delete_backing;
+#line 92 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp4_) {
+#line 575 "SourceCollection.c"
+ Marker* _tmp5_ = NULL;
+ ProgressMonitor _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+ SourceCollectionDestroyCounter* _tmp7_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp5_ = marker;
+#line 93 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp6_ = monitor;
+#line 93 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp6__target = monitor_target;
+#line 93 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp7_ = counter;
+#line 93 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp5_, _source_collection_destroy_and_delete_source_marked_action, self, _tmp6_, _tmp6__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, G_TYPE_OBJECT, GObject));
+#line 590 "SourceCollection.c"
+ } else {
+ Marker* _tmp8_ = NULL;
+ ProgressMonitor _tmp9_ = NULL;
+ void* _tmp9__target = NULL;
+ SourceCollectionDestroyCounter* _tmp10_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp8_ = marker;
+#line 95 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp9_ = monitor;
+#line 95 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp9__target = monitor_target;
+#line 95 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp10_ = counter;
+#line 95 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp8_, _source_collection_destroy_source_marked_action, self, _tmp9_, _tmp9__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, G_TYPE_OBJECT, GObject));
+#line 606 "SourceCollection.c"
+ }
+ {
+ GeeArrayList* _source_list = NULL;
+ SourceCollectionDestroyCounter* _tmp11_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _source_size = 0;
+ GeeArrayList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _source_index = 0;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp11_ = counter;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp12_ = _tmp11_->notify_list;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_list = _tmp13_;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp14_ = _source_list;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp15_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp16_ = _tmp15_;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_size = _tmp16_;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_index = -1;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ while (TRUE) {
+#line 638 "SourceCollection.c"
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ DataSource* source = NULL;
+ GeeArrayList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gpointer _tmp22_ = NULL;
+ DataSource* _tmp23_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp17_ = _source_index;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_index = _tmp17_ + 1;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp18_ = _source_index;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp19_ = _source_size;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (!(_tmp18_ < _tmp19_)) {
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ break;
+#line 659 "SourceCollection.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp20_ = _source_list;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp21_ = _source_index;
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp22_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp21_);
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source = (DataSource*) _tmp22_;
+#line 99 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp23_ = source;
+#line 99 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_notify_item_destroyed (self, _tmp23_);
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (source);
+#line 675 "SourceCollection.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_source_list);
+#line 679 "SourceCollection.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp24_ = counter;
+#line 100 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp25_ = _tmp24_->notify_list;
+#line 100 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_notify_items_destroyed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 103 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp26_ = counter;
+#line 103 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp27_ = _tmp26_->remove_marker;
+#line 103 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp27_);
+#line 105 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp28_ = not_removed;
+#line 105 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (NULL != _tmp28_) {
+#line 697 "SourceCollection.c"
+ GeeList* _tmp29_ = NULL;
+ SourceCollectionDestroyCounter* _tmp30_ = NULL;
+ GeeArrayList* _tmp31_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp29_ = not_removed;
+#line 106 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp30_ = counter;
+#line 106 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp31_ = _tmp30_->not_removed;
+#line 106 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 709 "SourceCollection.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp32_ = counter;
+#line 109 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp33_ = _tmp32_->not_removed;
+#line 109 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp34_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 109 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp35_ = _tmp34_;
+#line 109 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = _tmp35_;
+#line 109 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (counter);
+#line 109 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 725 "SourceCollection.c"
+}
+
+
+static gboolean source_collection_destroy_and_delete_source (SourceCollection* self, DataObject* object, GObject* user) {
+ gboolean result = FALSE;
+ gboolean success = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ DataObject* _tmp10_ = NULL;
+ GObject* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (self), FALSE);
+#line 112 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 112 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail ((user == NULL) || G_IS_OBJECT (user), FALSE);
+#line 113 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ success = FALSE;
+#line 747 "SourceCollection.c"
+ {
+ gboolean _tmp0_ = FALSE;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = object;
+#line 115 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = data_source_internal_delete_backing (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_SOURCE, DataSource), &_inner_error_);
+#line 115 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = _tmp2_;
+#line 115 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 760 "SourceCollection.c"
+ goto __catch46_g_error;
+ }
+#line 115 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ success = _tmp0_;
+#line 765 "SourceCollection.c"
+ }
+ goto __finally46;
+ __catch46_g_error:
+ {
+ GError* err = NULL;
+#line 114 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ err = _inner_error_;
+#line 114 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _inner_error_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ success = FALSE;
+#line 114 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_error_free0 (err);
+#line 779 "SourceCollection.c"
+ }
+ __finally46:
+#line 114 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 114 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 114 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_clear_error (&_inner_error_);
+#line 114 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return FALSE;
+#line 790 "SourceCollection.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = success;
+#line 120 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (!_tmp4_) {
+#line 796 "SourceCollection.c"
+ DataObject* _tmp5_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp5_ = object;
+#line 120 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_MEDIA_SOURCE);
+#line 802 "SourceCollection.c"
+ } else {
+#line 120 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = FALSE;
+#line 806 "SourceCollection.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp3_) {
+#line 810 "SourceCollection.c"
+ GObject* _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ DataObject* _tmp8_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp6_ = user;
+#line 121 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, SourceCollectionDestroyCounter)->not_removed;
+#line 121 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp8_ = object;
+#line 121 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 822 "SourceCollection.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp10_ = object;
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp11_ = user;
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp12_ = source_collection_destroy_source (self, _tmp10_, _tmp11_);
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp12_) {
+#line 832 "SourceCollection.c"
+ gboolean _tmp13_ = FALSE;
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp13_ = success;
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp9_ = _tmp13_;
+#line 838 "SourceCollection.c"
+ } else {
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp9_ = FALSE;
+#line 842 "SourceCollection.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = _tmp9_;
+#line 124 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 848 "SourceCollection.c"
+}
+
+
+static gboolean source_collection_destroy_source (SourceCollection* self, DataObject* object, GObject* user) {
+ gboolean result = FALSE;
+ DataSource* source = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ GObject* _tmp2_ = NULL;
+ Marker* _tmp3_ = NULL;
+ GObject* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (self), FALSE);
+#line 127 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 127 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail ((user == NULL) || G_IS_OBJECT (user), FALSE);
+#line 128 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = object;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 128 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source = _tmp1_;
+#line 130 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_internal_mark_for_destroy (source);
+#line 131 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_destroy (source);
+#line 133 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = user;
+#line 133 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, SourceCollectionDestroyCounter)->remove_marker;
+#line 133 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ marker_mark (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (source, TYPE_DATA_OBJECT, DataObject));
+#line 134 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = user;
+#line 134 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, SourceCollectionDestroyCounter)->notify_list;
+#line 134 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), source);
+#line 136 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = TRUE;
+#line 136 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (source);
+#line 136 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 895 "SourceCollection.c"
+}
+
+
+static guint _source_backlink_hash_func_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = source_backlink_hash_func ((SourceBacklink*) v);
+#line 142 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 904 "SourceCollection.c"
+}
+
+
+static gboolean _source_backlink_equal_func_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = source_backlink_equal_func ((SourceBacklink*) a, (SourceBacklink*) b);
+#line 142 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 913 "SourceCollection.c"
+}
+
+
+void source_collection_internal_backlink_set (SourceCollection* self, DataSource* source, SourceBacklink* backlink) {
+ GeeMultiMap* _tmp0_ = NULL;
+ GeeMultiMap* _tmp2_ = NULL;
+ SourceBacklink* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 140 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 140 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 141 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = self->priv->backlinks;
+#line 141 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp0_ == NULL) {
+#line 932 "SourceCollection.c"
+ GeeHashMultiMap* _tmp1_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = gee_hash_multi_map_new (TYPE_SOURCE_BACKLINK, (GBoxedCopyFunc) source_backlink_ref, source_backlink_unref, TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _source_backlink_hash_func_gee_hash_data_func, NULL, NULL, _source_backlink_equal_func_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 142 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (self->priv->backlinks);
+#line 142 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self->priv->backlinks = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MULTI_MAP, GeeMultiMap);
+#line 940 "SourceCollection.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = self->priv->backlinks;
+#line 146 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = backlink;
+#line 146 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = source;
+#line 146 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ gee_multi_map_set (_tmp2_, _tmp3_, _tmp4_);
+#line 950 "SourceCollection.c"
+}
+
+
+void source_collection_internal_backlink_removed (SourceCollection* self, DataSource* source, SourceBacklink* backlink) {
+ GeeMultiMap* _tmp0_ = NULL;
+ gboolean removed = FALSE;
+ GeeMultiMap* _tmp1_ = NULL;
+ SourceBacklink* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 150 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 150 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 150 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 151 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = self->priv->backlinks;
+#line 151 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _vala_assert (_tmp0_ != NULL, "backlinks != null");
+#line 153 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 153 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = backlink;
+#line 153 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = source;
+#line 153 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = gee_multi_map_remove (_tmp1_, _tmp2_, _tmp3_);
+#line 153 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ removed = _tmp4_;
+#line 154 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _vala_assert (removed, "removed");
+#line 983 "SourceCollection.c"
+}
+
+
+static gboolean source_collection_real_has_backlink (SourceCollection* self, SourceBacklink* backlink) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GeeMultiMap* _tmp1_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (backlink), FALSE);
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = self->priv->backlinks;
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 997 "SourceCollection.c"
+ GeeMultiMap* _tmp2_ = NULL;
+ SourceBacklink* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = self->priv->backlinks;
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = backlink;
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = gee_multi_map_contains (_tmp2_, _tmp3_);
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = _tmp4_;
+#line 1009 "SourceCollection.c"
+ } else {
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = FALSE;
+#line 1013 "SourceCollection.c"
+ }
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = _tmp0_;
+#line 158 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 1019 "SourceCollection.c"
+}
+
+
+gboolean source_collection_has_backlink (SourceCollection* self, SourceBacklink* backlink) {
+#line 157 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (self), FALSE);
+#line 157 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return SOURCE_COLLECTION_GET_CLASS (self)->has_backlink (self, backlink);
+#line 1028 "SourceCollection.c"
+}
+
+
+static gboolean _source_collection_prepare_for_unlink_marked_action (DataObject* object, GObject* user, gpointer self) {
+ gboolean result;
+ result = source_collection_prepare_for_unlink ((SourceCollection*) self, object, user);
+#line 163 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 1037 "SourceCollection.c"
+}
+
+
+GeeCollection* source_collection_unlink_marked (SourceCollection* self, Marker* marker, ProgressMonitor monitor, void* monitor_target) {
+ GeeCollection* result = NULL;
+ GeeArrayList* list = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ ProgressMonitor _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GeeArrayList* _tmp7_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ Marker* _tmp9_ = NULL;
+ Marker* _tmp10_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (self), NULL);
+#line 161 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_MARKER (marker), NULL);
+#line 162 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 162 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ list = _tmp0_;
+#line 163 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = marker;
+#line 163 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = monitor;
+#line 163 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2__target = monitor_target;
+#line 163 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = list;
+#line 163 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp1_, _source_collection_prepare_for_unlink_marked_action, self, _tmp2_, _tmp2__target, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, G_TYPE_OBJECT, GObject));
+#line 165 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = list;
+#line 165 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp5_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 165 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp6_ = _tmp5_;
+#line 165 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp6_ == 0) {
+#line 166 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = NULL;
+#line 166 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (list);
+#line 166 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 1088 "SourceCollection.c"
+ }
+#line 168 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp7_ = list;
+#line 168 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_notify_items_unlinking (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 170 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp8_ = list;
+#line 170 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp9_ = data_collection_mark_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 170 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp10_ = _tmp9_;
+#line 170 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp10_);
+#line 170 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_tmp10_);
+#line 172 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (list, GEE_TYPE_COLLECTION, GeeCollection);
+#line 172 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 1108 "SourceCollection.c"
+}
+
+
+static gboolean source_collection_prepare_for_unlink (SourceCollection* self, DataObject* object, GObject* user) {
+ gboolean result = FALSE;
+ DataSource* source = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ GObject* _tmp2_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (self), FALSE);
+#line 175 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 175 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail ((user == NULL) || G_IS_OBJECT (user), FALSE);
+#line 176 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = object;
+#line 176 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 176 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source = _tmp1_;
+#line 178 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_notify_unlinking (source, self);
+#line 179 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = user;
+#line 179 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_LIST, GeeList), GEE_TYPE_COLLECTION, GeeCollection), source);
+#line 181 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ result = TRUE;
+#line 181 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (source);
+#line 181 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return result;
+#line 1142 "SourceCollection.c"
+}
+
+
+void source_collection_relink (SourceCollection* self, DataSource* source) {
+ DataSource* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 184 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 185 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = source;
+#line 185 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_notify_relinking (_tmp0_, self);
+#line 187 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = source;
+#line 187 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 188 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = source;
+#line 188 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = data_collection_get_singleton (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 188 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 188 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_notify_items_relinked (self, _tmp4_);
+#line 188 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_tmp4_);
+#line 190 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp5_ = source;
+#line 190 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_notify_relinked (_tmp5_);
+#line 1179 "SourceCollection.c"
+}
+
+
+void source_collection_relink_many (SourceCollection* self, GeeCollection* relink) {
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GeeCollection* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 193 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (relink));
+#line 194 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = relink;
+#line 194 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 194 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 194 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp2_ == 0) {
+#line 195 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return;
+#line 1205 "SourceCollection.c"
+ }
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = relink;
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_it = _tmp4_;
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ while (TRUE) {
+#line 1219 "SourceCollection.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp5_ = _source_it;
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (!_tmp6_) {
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ break;
+#line 1234 "SourceCollection.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp7_ = _source_it;
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source = (DataSource*) _tmp8_;
+#line 198 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp9_ = source;
+#line 198 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_notify_relinking (_tmp9_, self);
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (source);
+#line 1248 "SourceCollection.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 1252 "SourceCollection.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp10_ = relink;
+#line 200 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp11_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp10_, NULL, NULL);
+#line 200 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp12_ = _tmp11_;
+#line 200 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_tmp12_);
+#line 201 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp13_ = relink;
+#line 201 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_notify_items_relinked (self, _tmp13_);
+#line 1266 "SourceCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp14_ = relink;
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_it = _tmp15_;
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ while (TRUE) {
+#line 1279 "SourceCollection.c"
+ GeeIterator* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ DataSource* _tmp20_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp16_ = _source_it;
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp17_ = gee_iterator_next (_tmp16_);
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (!_tmp17_) {
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ break;
+#line 1294 "SourceCollection.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp18_ = _source_it;
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source = (DataSource*) _tmp19_;
+#line 204 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp20_ = source;
+#line 204 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_notify_relinked (_tmp20_);
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (source);
+#line 1308 "SourceCollection.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 1312 "SourceCollection.c"
+ }
+}
+
+
+static void source_collection_real_remove_backlink (SourceCollection* self, SourceBacklink* backlink) {
+ GeeMultiMap* _tmp0_ = NULL;
+ GeeArrayList* sources = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeMultiMap* _tmp3_ = NULL;
+ SourceBacklink* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ SourceBacklink* _tmp20_ = NULL;
+ GeeArrayList* _tmp21_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 208 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = self->priv->backlinks;
+#line 208 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (_tmp0_ == NULL) {
+#line 209 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return;
+#line 1336 "SourceCollection.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 212 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ sources = _tmp1_;
+#line 213 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp2_ = sources;
+#line 213 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp3_ = self->priv->backlinks;
+#line 213 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp4_ = backlink;
+#line 213 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp5_ = gee_multi_map_get (_tmp3_, _tmp4_);
+#line 213 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp6_ = _tmp5_;
+#line 213 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ gee_array_list_add_all (_tmp2_, _tmp6_);
+#line 213 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1356 "SourceCollection.c"
+ {
+ GeeArrayList* _source_list = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ gint _source_size = 0;
+ GeeArrayList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _source_index = 0;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp7_ = sources;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_list = _tmp8_;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp9_ = _source_list;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp10_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_size = _tmp11_;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_index = -1;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ while (TRUE) {
+#line 1384 "SourceCollection.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ DataSource* source = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ SourceBacklink* _tmp19_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp12_ = _source_index;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _source_index = _tmp12_ + 1;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp13_ = _source_index;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp14_ = _source_size;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ break;
+#line 1406 "SourceCollection.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp15_ = _source_list;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp16_ = _source_index;
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp17_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp16_);
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source = (DataSource*) _tmp17_;
+#line 216 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp18_ = source;
+#line 216 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp19_ = backlink;
+#line 216 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data_source_remove_backlink (_tmp18_, _tmp19_);
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (source);
+#line 1424 "SourceCollection.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (_source_list);
+#line 1428 "SourceCollection.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp20_ = backlink;
+#line 218 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp21_ = sources;
+#line 218 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_notify_backlink_removed (self, _tmp20_, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 207 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (sources);
+#line 1438 "SourceCollection.c"
+}
+
+
+void source_collection_remove_backlink (SourceCollection* self, SourceBacklink* backlink) {
+#line 207 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (self));
+#line 207 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ SOURCE_COLLECTION_GET_CLASS (self)->remove_backlink (self, backlink);
+#line 1447 "SourceCollection.c"
+}
+
+
+static void source_collection_real_items_unlinking (SourceCollection* self, GeeCollection* unlinking) {
+#line 20 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (unlinking));
+#line 1454 "SourceCollection.c"
+}
+
+
+static void source_collection_real_items_relinked (SourceCollection* self, GeeCollection* relinked) {
+#line 25 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (relinked));
+#line 1461 "SourceCollection.c"
+}
+
+
+static void source_collection_real_item_destroyed (SourceCollection* self, DataSource* source) {
+#line 30 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1468 "SourceCollection.c"
+}
+
+
+static void source_collection_real_items_destroyed (SourceCollection* self, GeeCollection* destroyed) {
+#line 35 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (destroyed));
+#line 1475 "SourceCollection.c"
+}
+
+
+static void source_collection_real_unlinked_destroyed (SourceCollection* self, DataSource* source) {
+#line 40 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 1482 "SourceCollection.c"
+}
+
+
+static void source_collection_real_backlink_removed (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources) {
+#line 44 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 44 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (sources));
+#line 1491 "SourceCollection.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__SOURCE_BACKLINK_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__SOURCE_BACKLINK_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__SOURCE_BACKLINK_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data1 = closure->data;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 1510 "SourceCollection.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ data2 = closure->data;
+#line 1516 "SourceCollection.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ callback = (GMarshalFunc_VOID__SOURCE_BACKLINK_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ callback (data1, value_get_source_backlink (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 1522 "SourceCollection.c"
+}
+
+
+static SourceCollectionDestroyCounter* source_collection_destroy_counter_construct (GType object_type, Marker* remove_marker) {
+ SourceCollectionDestroyCounter * self = NULL;
+ Marker* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_return_val_if_fail (IS_MARKER (remove_marker), NULL);
+#line 13 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self = (SourceCollectionDestroyCounter*) g_object_new (object_type, NULL);
+#line 14 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = remove_marker;
+#line 14 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 14 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (self->remove_marker);
+#line 14 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self->remove_marker = _tmp1_;
+#line 13 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return self;
+#line 1544 "SourceCollection.c"
+}
+
+
+static SourceCollectionDestroyCounter* source_collection_destroy_counter_new (Marker* remove_marker) {
+#line 13 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ return source_collection_destroy_counter_construct (SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, remove_marker);
+#line 1551 "SourceCollection.c"
+}
+
+
+static void source_collection_destroy_counter_class_init (SourceCollectionDestroyCounterClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_destroy_counter_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ G_OBJECT_CLASS (klass)->finalize = source_collection_destroy_counter_finalize;
+#line 1560 "SourceCollection.c"
+}
+
+
+static void source_collection_destroy_counter_instance_init (SourceCollectionDestroyCounter * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 10 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self->notify_list = _tmp0_;
+#line 11 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _tmp1_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 11 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self->not_removed = _tmp1_;
+#line 1575 "SourceCollection.c"
+}
+
+
+static void source_collection_destroy_counter_finalize (GObject* obj) {
+ SourceCollectionDestroyCounter * self;
+#line 8 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SOURCE_COLLECTION_TYPE_DESTROY_COUNTER, SourceCollectionDestroyCounter);
+#line 9 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (self->remove_marker);
+#line 10 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (self->notify_list);
+#line 11 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (self->not_removed);
+#line 8 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ G_OBJECT_CLASS (source_collection_destroy_counter_parent_class)->finalize (obj);
+#line 1591 "SourceCollection.c"
+}
+
+
+static GType source_collection_destroy_counter_get_type (void) {
+ static volatile gsize source_collection_destroy_counter_type_id__volatile = 0;
+ if (g_once_init_enter (&source_collection_destroy_counter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SourceCollectionDestroyCounterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) source_collection_destroy_counter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SourceCollectionDestroyCounter), 0, (GInstanceInitFunc) source_collection_destroy_counter_instance_init, NULL };
+ GType source_collection_destroy_counter_type_id;
+ source_collection_destroy_counter_type_id = g_type_register_static (G_TYPE_OBJECT, "SourceCollectionDestroyCounter", &g_define_type_info, 0);
+ g_once_init_leave (&source_collection_destroy_counter_type_id__volatile, source_collection_destroy_counter_type_id);
+ }
+ return source_collection_destroy_counter_type_id__volatile;
+}
+
+
+static void source_collection_class_init (SourceCollectionClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((DataCollectionClass *) klass)->finalize = source_collection_finalize;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_type_class_add_private (klass, sizeof (SourceCollectionPrivate));
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = source_collection_real_holds_type_of_source;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_items_unlinking = source_collection_real_notify_items_unlinking;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_items_relinked = source_collection_real_notify_items_relinked;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_item_destroyed = source_collection_real_notify_item_destroyed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_items_destroyed = source_collection_real_notify_items_destroyed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_unlinked_destroyed = source_collection_real_notify_unlinked_destroyed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->notify_backlink_removed = source_collection_real_notify_backlink_removed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((DataCollectionClass *) klass)->valid_type = source_collection_real_valid_type;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->has_backlink = source_collection_real_has_backlink;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->remove_backlink = source_collection_real_remove_backlink;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->items_unlinking = source_collection_real_items_unlinking;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->items_relinked = source_collection_real_items_relinked;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->item_destroyed = source_collection_real_item_destroyed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->items_destroyed = source_collection_real_items_destroyed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->unlinked_destroyed = source_collection_real_unlinked_destroyed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ ((SourceCollectionClass *) klass)->backlink_removed = source_collection_real_backlink_removed;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_new ("items_unlinking", TYPE_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceCollectionClass, items_unlinking), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_new ("items_relinked", TYPE_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceCollectionClass, items_relinked), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_new ("item_destroyed", TYPE_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceCollectionClass, item_destroyed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_DATA_SOURCE);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_new ("items_destroyed", TYPE_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceCollectionClass, items_destroyed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_new ("unlinked_destroyed", TYPE_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceCollectionClass, unlinked_destroyed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_DATA_SOURCE);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ g_signal_new ("backlink_removed", TYPE_SOURCE_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceCollectionClass, backlink_removed), NULL, NULL, g_cclosure_user_marshal_VOID__SOURCE_BACKLINK_OBJECT, G_TYPE_NONE, 2, TYPE_SOURCE_BACKLINK, GEE_TYPE_COLLECTION);
+#line 1658 "SourceCollection.c"
+}
+
+
+static void source_collection_instance_init (SourceCollection * self) {
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self->priv = SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 48 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self->priv->backlinks = NULL;
+#line 1667 "SourceCollection.c"
+}
+
+
+static void source_collection_finalize (DataCollection* obj) {
+ SourceCollection * self;
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SOURCE_COLLECTION, SourceCollection);
+#line 48 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ _g_object_unref0 (self->priv->backlinks);
+#line 7 "/home/jens/Source/shotwell/src/core/SourceCollection.vala"
+ DATA_COLLECTION_CLASS (source_collection_parent_class)->finalize (obj);
+#line 1679 "SourceCollection.c"
+}
+
+
+GType source_collection_get_type (void) {
+ static volatile gsize source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SourceCollection), 0, (GInstanceInitFunc) source_collection_instance_init, NULL };
+ GType source_collection_type_id;
+ source_collection_type_id = g_type_register_static (TYPE_DATA_COLLECTION, "SourceCollection", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&source_collection_type_id__volatile, source_collection_type_id);
+ }
+ return source_collection_type_id__volatile;
+}
+
+
+
diff --git a/src/core/SourceHoldingTank.c b/src/core/SourceHoldingTank.c
new file mode 100644
index 0000000..ed7d671
--- /dev/null
+++ b/src/core/SourceHoldingTank.c
@@ -0,0 +1,1729 @@
+/* SourceHoldingTank.c generated by valac 0.32.1, the Vala compiler
+ * generated from SourceHoldingTank.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* A SourceHoldingTank is similar to the holding tank used by ContainerSourceCollection, but for*/
+/* non-ContainerSources to be held offline from their natural SourceCollection (i.e. PhotoSources*/
+/* being held in a trashcan, for example). It is *not* a DataCollection (important!), but rather*/
+/* a signalled collection that moves DataSources to and from their SourceCollection.*/
+/**/
+/* DataSources can be shuttled from their SourceCollection to the SourceHoldingTank manually*/
+/* (via unlink_and_hold) or can be automatically moved by installing a HoldingPredicate.*/
+/* Only one HoldingConditional may be installed. Because of assertions in the methods, it's unwise*/
+/* to use more than one method. add() and add_many() should ONLY be used for DataSources not*/
+/* first installed in their SourceCollection (i.e. they're born in the SourceHoldingTank).*/
+/**/
+/* NOTE: DataSources should never be in more than one SourceHoldingTank. No tests are performed*/
+/* here to verify this. This is why a filter/predicate method (which could automatically move*/
+/* them in as they're altered) is not offered; there's no easy way to keep DataSources from being*/
+/* moved into more than one holding tank, or which should have preference. The CheckToRemove*/
+/* predicate is offered only to know when to release them.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+typedef struct _SourceHoldingTankPrivate SourceHoldingTankPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_SET (data_set_get_type ())
+#define DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SET, DataSet))
+#define DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SET, DataSetClass))
+#define IS_DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SET))
+#define IS_DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SET))
+#define DATA_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SET, DataSetClass))
+
+typedef struct _DataSet DataSet;
+typedef struct _DataSetClass DataSetClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _data_set_unref0(var) ((var == NULL) ? NULL : (var = (data_set_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+
+#define TYPE_SINGLETON_COLLECTION (singleton_collection_get_type ())
+#define SINGLETON_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLETON_COLLECTION, SingletonCollection))
+#define SINGLETON_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLETON_COLLECTION, SingletonCollectionClass))
+#define IS_SINGLETON_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLETON_COLLECTION))
+#define IS_SINGLETON_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLETON_COLLECTION))
+#define SINGLETON_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLETON_COLLECTION, SingletonCollectionClass))
+
+typedef struct _SingletonCollection SingletonCollection;
+typedef struct _SingletonCollectionClass SingletonCollectionClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecSourceHoldingTank ParamSpecSourceHoldingTank;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SourceHoldingTank {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SourceHoldingTankPrivate * priv;
+};
+
+struct _SourceHoldingTankClass {
+ GTypeClass parent_class;
+ void (*finalize) (SourceHoldingTank *self);
+ void (*notify_contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+ void (*contents_altered) (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+};
+
+typedef gboolean (*SourceHoldingTankCheckToKeep) (DataSource* source, Alteration* alteration, void* user_data);
+struct _SourceHoldingTankPrivate {
+ SourceCollection* sources;
+ SourceHoldingTankCheckToKeep check_to_keep;
+ gpointer check_to_keep_target;
+ DataSet* tank;
+ GeeHashSet* relinks;
+ GeeHashSet* unlinking;
+ gint64 ordinal;
+};
+
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _ParamSpecSourceHoldingTank {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer source_holding_tank_parent_class = NULL;
+
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_set_ref (gpointer instance);
+void data_set_unref (gpointer instance);
+GParamSpec* param_spec_data_set (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_set (GValue* value, gpointer v_object);
+void value_take_data_set (GValue* value, gpointer v_object);
+gpointer value_get_data_set (const GValue* value);
+GType data_set_get_type (void) G_GNUC_CONST;
+#define SOURCE_HOLDING_TANK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankPrivate))
+enum {
+ SOURCE_HOLDING_TANK_DUMMY_PROPERTY
+};
+static void source_holding_tank_on_source_destroyed (SourceHoldingTank* self, DataSource* source);
+static void _source_holding_tank_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self);
+static void source_holding_tank_on_source_collection_thawed (SourceHoldingTank* self);
+static void _source_holding_tank_on_source_collection_thawed_data_collection_thawed (DataCollection* _sender, gpointer self);
+DataSet* data_set_new (void);
+DataSet* data_set_construct (GType object_type);
+SourceHoldingTank* source_holding_tank_new (SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target);
+SourceHoldingTank* source_holding_tank_construct (GType object_type, SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target);
+void source_holding_tank_notify_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+static void source_holding_tank_real_notify_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+void data_source_notify_held_in_tank (DataSource* self, SourceHoldingTank* holding_tank);
+gint source_holding_tank_get_count (SourceHoldingTank* self);
+gint data_set_get_count (DataSet* self);
+GeeCollection* source_holding_tank_get_all (SourceHoldingTank* self);
+GeeList* data_set_get_all (DataSet* self);
+gboolean source_holding_tank_contains (SourceHoldingTank* self, DataSource* source);
+gboolean data_set_contains (DataSet* self, DataObject* object);
+void source_holding_tank_add_many (SourceHoldingTank* self, GeeCollection* many);
+void data_object_internal_set_ordinal (DataObject* self, gint64 ordinal);
+gboolean data_set_add_many (DataSet* self, GeeCollection* objects);
+void source_holding_tank_unlink_and_hold (SourceHoldingTank* self, GeeCollection* unlink);
+GType marker_get_type (void) G_GNUC_CONST;
+GeeCollection* source_collection_unlink_marked (SourceCollection* self, Marker* marker, ProgressMonitor monitor, void* monitor_target);
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects);
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+gboolean source_holding_tank_has_backlink (SourceHoldingTank* self, SourceBacklink* backlink);
+DataObject* data_set_get_at (DataSet* self, gint index);
+gboolean data_source_has_backlink (DataSource* self, SourceBacklink* backlink);
+void source_holding_tank_remove_backlink (SourceHoldingTank* self, SourceBacklink* backlink);
+gboolean data_source_remove_backlink (DataSource* self, SourceBacklink* backlink);
+void source_holding_tank_destroy_orphans (SourceHoldingTank* self, GeeList* destroy, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+gboolean data_set_remove_many (DataSet* self, GeeCollection* objects);
+gboolean data_source_destroy_orphan (DataSource* self, gboolean delete_backing);
+gboolean data_set_remove (DataSet* self, DataObject* object);
+SingletonCollection* singleton_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object);
+SingletonCollection* singleton_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object);
+GType singleton_collection_get_type (void) G_GNUC_CONST;
+void source_holding_tank_internal_notify_altered (SourceHoldingTank* self, DataSource* source, Alteration* alteration);
+gchar* data_object_to_string (DataObject* self);
+gchar* source_holding_tank_to_string (SourceHoldingTank* self);
+gboolean data_collection_are_notifications_frozen (DataCollection* self);
+void source_collection_relink (SourceCollection* self, DataSource* source);
+void source_collection_relink_many (SourceCollection* self, GeeCollection* relink);
+static void source_holding_tank_real_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void source_holding_tank_finalize (SourceHoldingTank* obj);
+
+
+static void _source_holding_tank_on_source_destroyed_source_collection_item_destroyed (SourceCollection* _sender, DataSource* source, gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_on_source_destroyed ((SourceHoldingTank*) self, source);
+#line 279 "SourceHoldingTank.c"
+}
+
+
+static void _source_holding_tank_on_source_collection_thawed_data_collection_thawed (DataCollection* _sender, gpointer self) {
+#line 49 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_on_source_collection_thawed ((SourceHoldingTank*) self);
+#line 286 "SourceHoldingTank.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 40 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 293 "SourceHoldingTank.c"
+}
+
+
+SourceHoldingTank* source_holding_tank_construct (GType object_type, SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target) {
+ SourceHoldingTank* self = NULL;
+ SourceCollection* _tmp0_ = NULL;
+ SourceCollection* _tmp1_ = NULL;
+ SourceHoldingTankCheckToKeep _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ SourceCollection* _tmp3_ = NULL;
+ SourceCollection* _tmp4_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
+#line 39 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self = (SourceHoldingTank*) g_type_create_instance (object_type);
+#line 40 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = sources;
+#line 40 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 40 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 40 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->sources = _tmp1_;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = check_to_keep;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2__target = check_to_keep_target;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->check_to_keep = _tmp2_;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->check_to_keep_target = _tmp2__target;
+#line 43 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = self->priv->sources;
+#line 43 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_connect (_tmp3_, "item-destroyed", (GCallback) _source_holding_tank_on_source_destroyed_source_collection_item_destroyed, self);
+#line 44 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = self->priv->sources;
+#line 44 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection), "thawed", (GCallback) _source_holding_tank_on_source_collection_thawed_data_collection_thawed, self);
+#line 39 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return self;
+#line 335 "SourceHoldingTank.c"
+}
+
+
+SourceHoldingTank* source_holding_tank_new (SourceCollection* sources, SourceHoldingTankCheckToKeep check_to_keep, void* check_to_keep_target) {
+#line 39 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return source_holding_tank_construct (TYPE_SOURCE_HOLDING_TANK, sources, check_to_keep, check_to_keep_target);
+#line 342 "SourceHoldingTank.c"
+}
+
+
+static void source_holding_tank_real_notify_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 52 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 54 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = added;
+#line 54 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp0_ != NULL) {
+#line 359 "SourceHoldingTank.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = added;
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _source_it = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ while (TRUE) {
+#line 372 "SourceHoldingTank.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = _source_it;
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp4_) {
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ break;
+#line 387 "SourceHoldingTank.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = _source_it;
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source = (DataSource*) _tmp6_;
+#line 56 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = source;
+#line 56 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data_source_notify_held_in_tank (_tmp7_, self);
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (source);
+#line 401 "SourceHoldingTank.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_source_it);
+#line 405 "SourceHoldingTank.c"
+ }
+ }
+#line 59 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = removed;
+#line 59 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp8_ != NULL) {
+#line 412 "SourceHoldingTank.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = removed;
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _source_it = _tmp10_;
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ while (TRUE) {
+#line 425 "SourceHoldingTank.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ DataSource* _tmp15_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp11_ = _source_it;
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp12_) {
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ break;
+#line 440 "SourceHoldingTank.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp13_ = _source_it;
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source = (DataSource*) _tmp14_;
+#line 61 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp15_ = source;
+#line 61 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data_source_notify_held_in_tank (_tmp15_, NULL);
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (source);
+#line 454 "SourceHoldingTank.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_source_it);
+#line 458 "SourceHoldingTank.c"
+ }
+ }
+#line 64 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp16_ = added;
+#line 64 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp17_ = removed;
+#line 64 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_emit_by_name (self, "contents-altered", _tmp16_, _tmp17_);
+#line 467 "SourceHoldingTank.c"
+}
+
+
+void source_holding_tank_notify_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed) {
+#line 52 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 52 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ SOURCE_HOLDING_TANK_GET_CLASS (self)->notify_contents_altered (self, added, removed);
+#line 476 "SourceHoldingTank.c"
+}
+
+
+gint source_holding_tank_get_count (SourceHoldingTank* self) {
+ gint result = 0;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 67 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_SOURCE_HOLDING_TANK (self), 0);
+#line 68 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->tank;
+#line 68 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = data_set_get_count (_tmp0_);
+#line 68 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ result = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return result;
+#line 494 "SourceHoldingTank.c"
+}
+
+
+GeeCollection* source_holding_tank_get_all (SourceHoldingTank* self) {
+ GeeCollection* result = NULL;
+ DataSet* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_SOURCE_HOLDING_TANK (self), NULL);
+#line 72 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->tank;
+#line 72 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = data_set_get_all (_tmp0_);
+#line 72 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 72 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return result;
+#line 512 "SourceHoldingTank.c"
+}
+
+
+gboolean source_holding_tank_contains (SourceHoldingTank* self, DataSource* source) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ DataSet* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 75 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_SOURCE_HOLDING_TANK (self), FALSE);
+#line 75 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = self->priv->tank;
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = source;
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = data_set_contains (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp3_) {
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = TRUE;
+#line 536 "SourceHoldingTank.c"
+ } else {
+ GeeHashSet* _tmp4_ = NULL;
+ DataSource* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = self->priv->unlinking;
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = source;
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp5_);
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = _tmp6_;
+#line 549 "SourceHoldingTank.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ result = _tmp0_;
+#line 76 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return result;
+#line 555 "SourceHoldingTank.c"
+}
+
+
+void source_holding_tank_add_many (SourceHoldingTank* self, GeeCollection* many) {
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean added = FALSE;
+ DataSet* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ GeeCollection* _tmp15_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 80 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (many));
+#line 81 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = many;
+#line 81 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 81 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = _tmp1_;
+#line 81 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp2_ == 0) {
+#line 82 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 583 "SourceHoldingTank.c"
+ }
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = many;
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _source_it = _tmp4_;
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ while (TRUE) {
+#line 597 "SourceHoldingTank.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ gint64 _tmp10_ = 0LL;
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = _source_it;
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp6_) {
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ break;
+#line 613 "SourceHoldingTank.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = _source_it;
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source = (DataSource*) _tmp8_;
+#line 85 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = source;
+#line 85 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp10_ = self->priv->ordinal;
+#line 85 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->ordinal = _tmp10_ + 1;
+#line 85 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data_object_internal_set_ordinal (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject), _tmp10_);
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (source);
+#line 631 "SourceHoldingTank.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_source_it);
+#line 635 "SourceHoldingTank.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp11_ = self->priv->tank;
+#line 87 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp12_ = many;
+#line 87 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp13_ = data_set_add_many (_tmp11_, _tmp12_);
+#line 87 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ added = _tmp13_;
+#line 88 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp14_ = added;
+#line 88 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _vala_assert (_tmp14_, "added");
+#line 90 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp15_ = many;
+#line 90 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_notify_contents_altered (self, _tmp15_, NULL);
+#line 653 "SourceHoldingTank.c"
+}
+
+
+void source_holding_tank_unlink_and_hold (SourceHoldingTank* self, GeeCollection* unlink) {
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GeeHashSet* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ SourceCollection* _tmp5_ = NULL;
+ SourceCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ Marker* _tmp8_ = NULL;
+ Marker* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ gboolean added = FALSE;
+ DataSet* _tmp20_ = NULL;
+ GeeCollection* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ GeeHashSet* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 95 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (unlink));
+#line 96 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = unlink;
+#line 96 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 96 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = _tmp1_;
+#line 96 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp2_ == 0) {
+#line 97 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 692 "SourceHoldingTank.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = self->priv->unlinking;
+#line 100 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = unlink;
+#line 100 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection), _tmp4_);
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = self->priv->sources;
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = self->priv->sources;
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = unlink;
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = data_collection_mark_many (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection), _tmp7_);
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = _tmp8_;
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp10_ = source_collection_unlink_marked (_tmp5_, _tmp9_, NULL, NULL);
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp11_ = _tmp10_;
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_tmp11_);
+#line 102 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_tmp9_);
+#line 718 "SourceHoldingTank.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp12_ = unlink;
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _source_it = _tmp13_;
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ while (TRUE) {
+#line 731 "SourceHoldingTank.c"
+ GeeIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ gint64 _tmp19_ = 0LL;
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp14_ = _source_it;
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp15_ = gee_iterator_next (_tmp14_);
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp15_) {
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ break;
+#line 747 "SourceHoldingTank.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp16_ = _source_it;
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp17_ = gee_iterator_get (_tmp16_);
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source = (DataSource*) _tmp17_;
+#line 105 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp18_ = source;
+#line 105 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp19_ = self->priv->ordinal;
+#line 105 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->ordinal = _tmp19_ + 1;
+#line 105 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data_object_internal_set_ordinal (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_OBJECT, DataObject), _tmp19_);
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (source);
+#line 765 "SourceHoldingTank.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_source_it);
+#line 769 "SourceHoldingTank.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp20_ = self->priv->tank;
+#line 107 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp21_ = unlink;
+#line 107 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp22_ = data_set_add_many (_tmp20_, _tmp21_);
+#line 107 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ added = _tmp22_;
+#line 108 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp23_ = added;
+#line 108 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _vala_assert (_tmp23_, "added");
+#line 111 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp24_ = self->priv->unlinking;
+#line 111 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp25_ = unlink;
+#line 111 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ gee_collection_remove_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 113 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp26_ = unlink;
+#line 113 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_notify_contents_altered (self, _tmp26_, NULL);
+#line 793 "SourceHoldingTank.c"
+}
+
+
+gboolean source_holding_tank_has_backlink (SourceHoldingTank* self, SourceBacklink* backlink) {
+ gboolean result = FALSE;
+ gint count = 0;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 116 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_SOURCE_HOLDING_TANK (self), FALSE);
+#line 116 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_SOURCE_BACKLINK (backlink), FALSE);
+#line 117 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->tank;
+#line 117 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = data_set_get_count (_tmp0_);
+#line 117 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ count = _tmp1_;
+#line 812 "SourceHoldingTank.c"
+ {
+ gint ctr = 0;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ctr = 0;
+#line 817 "SourceHoldingTank.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = TRUE;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ while (TRUE) {
+#line 824 "SourceHoldingTank.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ DataSet* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ DataObject* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ SourceBacklink* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp2_) {
+#line 836 "SourceHoldingTank.c"
+ gint _tmp3_ = 0;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = ctr;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ctr = _tmp3_ + 1;
+#line 842 "SourceHoldingTank.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = ctr;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = count;
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!(_tmp4_ < _tmp5_)) {
+#line 118 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ break;
+#line 854 "SourceHoldingTank.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = self->priv->tank;
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = ctr;
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = data_set_get_at (_tmp6_, _tmp7_);
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_SOURCE, DataSource);
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp10_ = backlink;
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp11_ = data_source_has_backlink (_tmp9_, _tmp10_);
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp12_ = _tmp11_;
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_tmp9_);
+#line 119 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp12_) {
+#line 120 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ result = TRUE;
+#line 120 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return result;
+#line 878 "SourceHoldingTank.c"
+ }
+ }
+ }
+ }
+#line 123 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ result = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return result;
+#line 887 "SourceHoldingTank.c"
+}
+
+
+void source_holding_tank_remove_backlink (SourceHoldingTank* self, SourceBacklink* backlink) {
+ gint count = 0;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 126 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 126 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_BACKLINK (backlink));
+#line 127 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->tank;
+#line 127 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = data_set_get_count (_tmp0_);
+#line 127 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ count = _tmp1_;
+#line 905 "SourceHoldingTank.c"
+ {
+ gint ctr = 0;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ctr = 0;
+#line 910 "SourceHoldingTank.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = TRUE;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ while (TRUE) {
+#line 917 "SourceHoldingTank.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ DataSet* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ DataObject* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ SourceBacklink* _tmp10_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp2_) {
+#line 927 "SourceHoldingTank.c"
+ gint _tmp3_ = 0;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = ctr;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ctr = _tmp3_ + 1;
+#line 933 "SourceHoldingTank.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = FALSE;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = ctr;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = count;
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!(_tmp4_ < _tmp5_)) {
+#line 128 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ break;
+#line 945 "SourceHoldingTank.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = self->priv->tank;
+#line 129 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = ctr;
+#line 129 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = data_set_get_at (_tmp6_, _tmp7_);
+#line 129 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_SOURCE, DataSource);
+#line 129 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp10_ = backlink;
+#line 129 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data_source_remove_backlink (_tmp9_, _tmp10_);
+#line 129 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_tmp9_);
+#line 961 "SourceHoldingTank.c"
+ }
+ }
+ }
+}
+
+
+void source_holding_tank_destroy_orphans (SourceHoldingTank* self, GeeList* destroy, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed) {
+ GeeList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean removed = FALSE;
+ DataSet* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ GeeList* _tmp7_ = NULL;
+ gint count = 0;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 132 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 132 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (GEE_IS_LIST (destroy));
+#line 132 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail ((not_removed == NULL) || GEE_IS_LIST (not_removed));
+#line 134 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = destroy;
+#line 134 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 134 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = _tmp1_;
+#line 134 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp2_ == 0) {
+#line 135 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 998 "SourceHoldingTank.c"
+ }
+#line 137 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = self->priv->tank;
+#line 137 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = destroy;
+#line 137 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = data_set_remove_many (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 137 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ removed = _tmp5_;
+#line 138 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = removed;
+#line 138 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 140 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = destroy;
+#line 140 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_notify_contents_altered (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 142 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = destroy;
+#line 142 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 142 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp10_ = _tmp9_;
+#line 142 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ count = _tmp10_;
+#line 1024 "SourceHoldingTank.c"
+ {
+ gint ctr = 0;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ctr = 0;
+#line 1029 "SourceHoldingTank.c"
+ {
+ gboolean _tmp11_ = FALSE;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp11_ = TRUE;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ while (TRUE) {
+#line 1036 "SourceHoldingTank.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ DataSource* source = NULL;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ ProgressMonitor _tmp24_ = NULL;
+ void* _tmp24__target = NULL;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp11_) {
+#line 1050 "SourceHoldingTank.c"
+ gint _tmp12_ = 0;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp12_ = ctr;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ctr = _tmp12_ + 1;
+#line 1056 "SourceHoldingTank.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp11_ = FALSE;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp13_ = ctr;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp14_ = count;
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ break;
+#line 1068 "SourceHoldingTank.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp15_ = destroy;
+#line 144 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp16_ = ctr;
+#line 144 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp17_ = gee_list_get (_tmp15_, _tmp16_);
+#line 144 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source = (DataSource*) _tmp17_;
+#line 145 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp18_ = source;
+#line 145 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp19_ = delete_backing;
+#line 145 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp20_ = data_source_destroy_orphan (_tmp18_, _tmp19_);
+#line 145 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp20_) {
+#line 1086 "SourceHoldingTank.c"
+ GeeList* _tmp21_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp21_ = not_removed;
+#line 146 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (NULL != _tmp21_) {
+#line 1092 "SourceHoldingTank.c"
+ GeeList* _tmp22_ = NULL;
+ DataSource* _tmp23_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp22_ = not_removed;
+#line 147 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp23_ = source;
+#line 147 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), _tmp23_);
+#line 1101 "SourceHoldingTank.c"
+ }
+ }
+#line 150 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp24_ = monitor;
+#line 150 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp24__target = monitor_target;
+#line 150 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp24_ != NULL) {
+#line 1110 "SourceHoldingTank.c"
+ ProgressMonitor _tmp25_ = NULL;
+ void* _tmp25__target = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 151 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp25_ = monitor;
+#line 151 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp25__target = monitor_target;
+#line 151 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp26_ = ctr;
+#line 151 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp27_ = count;
+#line 151 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp25_ ((guint64) (_tmp26_ + 1), (guint64) _tmp27_, TRUE, _tmp25__target);
+#line 1125 "SourceHoldingTank.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (source);
+#line 1129 "SourceHoldingTank.c"
+ }
+ }
+ }
+}
+
+
+static void source_holding_tank_on_source_destroyed (SourceHoldingTank* self, DataSource* source) {
+ DataSet* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean removed = FALSE;
+ DataSet* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ DataSource* _tmp7_ = NULL;
+ SingletonCollection* _tmp8_ = NULL;
+ SingletonCollection* _tmp9_ = NULL;
+#line 155 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 155 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 156 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->tank;
+#line 156 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = source;
+#line 156 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = data_set_contains (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 156 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp2_) {
+#line 157 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 1162 "SourceHoldingTank.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = self->priv->tank;
+#line 159 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = source;
+#line 159 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = data_set_remove (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_OBJECT, DataObject));
+#line 159 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ removed = _tmp5_;
+#line 160 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = removed;
+#line 160 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 162 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = source;
+#line 162 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = singleton_collection_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tmp7_);
+#line 162 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = _tmp8_;
+#line 162 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_notify_contents_altered (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 162 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1186 "SourceHoldingTank.c"
+}
+
+
+void source_holding_tank_internal_notify_altered (SourceHoldingTank* self, DataSource* source, Alteration* alteration) {
+ DataSet* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ SourceHoldingTankCheckToKeep _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ DataSource* _tmp9_ = NULL;
+ Alteration* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean removed = FALSE;
+ DataSet* _tmp12_ = NULL;
+ DataSource* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ SourceCollection* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ DataSource* _tmp20_ = NULL;
+ SingletonCollection* _tmp21_ = NULL;
+ SingletonCollection* _tmp22_ = NULL;
+ SourceCollection* _tmp23_ = NULL;
+ DataSource* _tmp24_ = NULL;
+#line 166 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 166 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_DATA_SOURCE (source));
+#line 166 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 167 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->tank;
+#line 167 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = source;
+#line 167 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = data_set_contains (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 167 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!_tmp2_) {
+#line 1225 "SourceHoldingTank.c"
+ DataSource* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = source;
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = _tmp4_;
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = source_holding_tank_to_string (self);
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = _tmp6_;
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_debug ("SourceHoldingTank.vala:168: SourceHoldingTank.internal_notify_altered " \
+"called for %s not stored in %s", _tmp5_, _tmp7_);
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_free0 (_tmp7_);
+#line 168 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_free0 (_tmp5_);
+#line 171 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 1249 "SourceHoldingTank.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = self->priv->check_to_keep;
+#line 175 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8__target = self->priv->check_to_keep_target;
+#line 175 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp9_ = source;
+#line 175 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp10_ = alteration;
+#line 175 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp11_ = _tmp8_ (_tmp9_, _tmp10_, _tmp8__target);
+#line 175 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp11_) {
+#line 176 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 1265 "SourceHoldingTank.c"
+ }
+#line 178 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp12_ = self->priv->tank;
+#line 178 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp13_ = source;
+#line 178 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp14_ = data_set_remove (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_OBJECT, DataObject));
+#line 178 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ removed = _tmp14_;
+#line 179 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp15_ = removed;
+#line 179 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _vala_assert (_tmp15_, "removed");
+#line 181 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp16_ = self->priv->sources;
+#line 181 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp17_ = data_collection_are_notifications_frozen (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_COLLECTION, DataCollection));
+#line 181 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp17_) {
+#line 1285 "SourceHoldingTank.c"
+ GeeHashSet* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp18_ = self->priv->relinks;
+#line 182 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp19_ = source;
+#line 182 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp19_);
+#line 184 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 1296 "SourceHoldingTank.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp20_ = source;
+#line 187 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp21_ = singleton_collection_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tmp20_);
+#line 187 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp22_ = _tmp21_;
+#line 187 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_notify_contents_altered (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 187 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (_tmp22_);
+#line 189 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp23_ = self->priv->sources;
+#line 189 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp24_ = source;
+#line 189 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_collection_relink (_tmp23_, _tmp24_);
+#line 1314 "SourceHoldingTank.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 197 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1321 "SourceHoldingTank.c"
+}
+
+
+static void source_holding_tank_on_source_collection_thawed (SourceHoldingTank* self) {
+ GeeHashSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GeeHashSet* copy = NULL;
+ GeeHashSet* _tmp3_ = NULL;
+ GeeHashSet* _tmp4_ = NULL;
+ GeeHashSet* _tmp5_ = NULL;
+ GeeHashSet* _tmp6_ = NULL;
+ SourceCollection* _tmp7_ = NULL;
+ GeeHashSet* _tmp8_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (IS_SOURCE_HOLDING_TANK (self));
+#line 193 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->relinks;
+#line 193 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 193 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = _tmp1_;
+#line 193 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (_tmp2_ == 0) {
+#line 194 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return;
+#line 1348 "SourceHoldingTank.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp3_ = self->priv->relinks;
+#line 197 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 197 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ copy = _tmp4_;
+#line 198 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp5_ = gee_hash_set_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 198 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (self->priv->relinks);
+#line 198 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->relinks = _tmp5_;
+#line 200 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp6_ = copy;
+#line 200 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_notify_contents_altered (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 202 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp7_ = self->priv->sources;
+#line 202 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp8_ = copy;
+#line 202 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_collection_relink_many (_tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 192 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (copy);
+#line 1374 "SourceHoldingTank.c"
+}
+
+
+gchar* source_holding_tank_to_string (SourceHoldingTank* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (IS_SOURCE_HOLDING_TANK (self), NULL);
+#line 206 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = g_strdup_printf ("SourceHoldingTank @ 0x%p", self);
+#line 206 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ result = _tmp0_;
+#line 206 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return result;
+#line 1389 "SourceHoldingTank.c"
+}
+
+
+static void source_holding_tank_real_contents_altered (SourceHoldingTank* self, GeeCollection* added, GeeCollection* removed) {
+#line 35 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 35 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 1398 "SourceHoldingTank.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data1 = closure->data;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 1417 "SourceHoldingTank.c"
+ } else {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ data2 = closure->data;
+#line 1423 "SourceHoldingTank.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 1429 "SourceHoldingTank.c"
+}
+
+
+static void value_source_holding_tank_init (GValue* value) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ value->data[0].v_pointer = NULL;
+#line 1436 "SourceHoldingTank.c"
+}
+
+
+static void value_source_holding_tank_free_value (GValue* value) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (value->data[0].v_pointer) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_unref (value->data[0].v_pointer);
+#line 1445 "SourceHoldingTank.c"
+ }
+}
+
+
+static void value_source_holding_tank_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (src_value->data[0].v_pointer) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ dest_value->data[0].v_pointer = source_holding_tank_ref (src_value->data[0].v_pointer);
+#line 1455 "SourceHoldingTank.c"
+ } else {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1459 "SourceHoldingTank.c"
+ }
+}
+
+
+static gpointer value_source_holding_tank_peek_pointer (const GValue* value) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return value->data[0].v_pointer;
+#line 1467 "SourceHoldingTank.c"
+}
+
+
+static gchar* value_source_holding_tank_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (collect_values[0].v_pointer) {
+#line 1474 "SourceHoldingTank.c"
+ SourceHoldingTank* object;
+ object = collect_values[0].v_pointer;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1481 "SourceHoldingTank.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1485 "SourceHoldingTank.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ value->data[0].v_pointer = source_holding_tank_ref (object);
+#line 1489 "SourceHoldingTank.c"
+ } else {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ value->data[0].v_pointer = NULL;
+#line 1493 "SourceHoldingTank.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return NULL;
+#line 1497 "SourceHoldingTank.c"
+}
+
+
+static gchar* value_source_holding_tank_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SourceHoldingTank** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!object_p) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1508 "SourceHoldingTank.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (!value->data[0].v_pointer) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ *object_p = NULL;
+#line 1514 "SourceHoldingTank.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1518 "SourceHoldingTank.c"
+ } else {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ *object_p = source_holding_tank_ref (value->data[0].v_pointer);
+#line 1522 "SourceHoldingTank.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return NULL;
+#line 1526 "SourceHoldingTank.c"
+}
+
+
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSourceHoldingTank* spec;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SOURCE_HOLDING_TANK), NULL);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return G_PARAM_SPEC (spec);
+#line 1540 "SourceHoldingTank.c"
+}
+
+
+gpointer value_get_source_holding_tank (const GValue* value) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_HOLDING_TANK), NULL);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return value->data[0].v_pointer;
+#line 1549 "SourceHoldingTank.c"
+}
+
+
+void value_set_source_holding_tank (GValue* value, gpointer v_object) {
+ SourceHoldingTank* old;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_HOLDING_TANK));
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ old = value->data[0].v_pointer;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (v_object) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_HOLDING_TANK));
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ value->data[0].v_pointer = v_object;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_ref (value->data[0].v_pointer);
+#line 1569 "SourceHoldingTank.c"
+ } else {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ value->data[0].v_pointer = NULL;
+#line 1573 "SourceHoldingTank.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (old) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_unref (old);
+#line 1579 "SourceHoldingTank.c"
+ }
+}
+
+
+void value_take_source_holding_tank (GValue* value, gpointer v_object) {
+ SourceHoldingTank* old;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SOURCE_HOLDING_TANK));
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ old = value->data[0].v_pointer;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (v_object) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SOURCE_HOLDING_TANK));
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ value->data[0].v_pointer = v_object;
+#line 1598 "SourceHoldingTank.c"
+ } else {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ value->data[0].v_pointer = NULL;
+#line 1602 "SourceHoldingTank.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (old) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_unref (old);
+#line 1608 "SourceHoldingTank.c"
+ }
+}
+
+
+static void source_holding_tank_class_init (SourceHoldingTankClass * klass) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ source_holding_tank_parent_class = g_type_class_peek_parent (klass);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ((SourceHoldingTankClass *) klass)->finalize = source_holding_tank_finalize;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_type_class_add_private (klass, sizeof (SourceHoldingTankPrivate));
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ((SourceHoldingTankClass *) klass)->notify_contents_altered = source_holding_tank_real_notify_contents_altered;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ ((SourceHoldingTankClass *) klass)->contents_altered = source_holding_tank_real_contents_altered;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_new ("contents_altered", TYPE_SOURCE_HOLDING_TANK, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SourceHoldingTankClass, contents_altered), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GEE_TYPE_COLLECTION, GEE_TYPE_COLLECTION);
+#line 1626 "SourceHoldingTank.c"
+}
+
+
+static void source_holding_tank_instance_init (SourceHoldingTank * self) {
+ DataSet* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+ GeeHashSet* _tmp2_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv = SOURCE_HOLDING_TANK_GET_PRIVATE (self);
+#line 30 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = data_set_new ();
+#line 30 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->tank = _tmp0_;
+#line 31 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp1_ = gee_hash_set_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 31 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->relinks = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = gee_hash_set_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 32 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->unlinking = _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->priv->ordinal = (gint64) 0;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self->ref_count = 1;
+#line 1652 "SourceHoldingTank.c"
+}
+
+
+static void source_holding_tank_finalize (SourceHoldingTank* obj) {
+ SourceHoldingTank * self;
+ SourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ SourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_handlers_destroy (self);
+#line 48 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp0_ = self->priv->sources;
+#line 48 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_parse_name ("item-destroyed", TYPE_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 48 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _source_holding_tank_on_source_destroyed_source_collection_item_destroyed, self);
+#line 49 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _tmp2_ = self->priv->sources;
+#line 49 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_parse_name ("thawed", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 49 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _source_holding_tank_on_source_collection_thawed_data_collection_thawed, self);
+#line 28 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _data_collection_unref0 (self->priv->sources);
+#line 30 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _data_set_unref0 (self->priv->tank);
+#line 31 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (self->priv->relinks);
+#line 32 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ _g_object_unref0 (self->priv->unlinking);
+#line 1686 "SourceHoldingTank.c"
+}
+
+
+GType source_holding_tank_get_type (void) {
+ static volatile gsize source_holding_tank_type_id__volatile = 0;
+ if (g_once_init_enter (&source_holding_tank_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_source_holding_tank_init, value_source_holding_tank_free_value, value_source_holding_tank_copy_value, value_source_holding_tank_peek_pointer, "p", value_source_holding_tank_collect_value, "p", value_source_holding_tank_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SourceHoldingTankClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) source_holding_tank_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SourceHoldingTank), 0, (GInstanceInitFunc) source_holding_tank_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType source_holding_tank_type_id;
+ source_holding_tank_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SourceHoldingTank", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&source_holding_tank_type_id__volatile, source_holding_tank_type_id);
+ }
+ return source_holding_tank_type_id__volatile;
+}
+
+
+gpointer source_holding_tank_ref (gpointer instance) {
+ SourceHoldingTank* self;
+ self = instance;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ return instance;
+#line 1711 "SourceHoldingTank.c"
+}
+
+
+void source_holding_tank_unref (gpointer instance) {
+ SourceHoldingTank* self;
+ self = instance;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ SOURCE_HOLDING_TANK_GET_CLASS (self)->finalize (self);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceHoldingTank.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1724 "SourceHoldingTank.c"
+ }
+}
+
+
+
diff --git a/src/core/SourceInterfaces.c b/src/core/SourceInterfaces.c
new file mode 100644
index 0000000..5cfc5a9
--- /dev/null
+++ b/src/core/SourceInterfaces.c
@@ -0,0 +1,328 @@
+/* SourceInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from SourceInterfaces.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* See the note in MediaInterfaces.vala for some thoughts on the theory of expanding Shotwell's*/
+/* features via interfaces rather than class heirarchies.*/
+/* Indexable DataSources provide raw strings that may be searched against (and, in the future,*/
+/* indexed) for free-text search queries. DataSources implementing Indexable must prepare and*/
+/* store (i.e. cache) these strings using prepare_indexable_string(s), as preparing the strings*/
+/* for each call is expensive.*/
+/**/
+/* When the indexable string has changed, the object should fire an alteration of*/
+/* "indexable:keywords". The prepare methods will not do this.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+
+
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+const gchar* indexable_get_indexable_keywords (Indexable* self);
+gchar* indexable_prepare_indexable_string (const gchar* str);
+gboolean is_string_empty (const gchar* s);
+gchar* string_remove_diacritics (const gchar* istring);
+gchar* indexable_prepare_indexable_strings (gchar** strs, int strs_length1);
+
+
+const gchar* indexable_get_indexable_keywords (Indexable* self) {
+#line 19 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ g_return_val_if_fail (IS_INDEXABLE (self), NULL);
+#line 19 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ return INDEXABLE_GET_INTERFACE (self)->get_indexable_keywords (self);
+#line 78 "SourceInterfaces.c"
+}
+
+
+gchar* indexable_prepare_indexable_string (const gchar* str) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp0_ = str;
+#line 22 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 22 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (_tmp1_) {
+#line 23 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ result = NULL;
+#line 23 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ return result;
+#line 101 "SourceInterfaces.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp2_ = str;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp3_ = g_utf8_strdown (_tmp2_, (gssize) -1);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp4_ = _tmp3_;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp5_ = string_remove_diacritics (_tmp4_);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp6_ = _tmp5_;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _g_free0 (_tmp4_);
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ result = _tmp6_;
+#line 24 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ return result;
+#line 119 "SourceInterfaces.c"
+}
+
+
+gchar* indexable_prepare_indexable_strings (gchar** strs, int strs_length1) {
+ gchar* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ GString* builder = NULL;
+ GString* _tmp3_ = NULL;
+ gint ctr = 0;
+ const gchar* _tmp21_ = NULL;
+ GString* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gchar* _tmp27_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp1_ = strs;
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp1__length1 = strs_length1;
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (_tmp1_ == NULL) {
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp0_ = TRUE;
+#line 144 "SourceInterfaces.c"
+ } else {
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp2_ = strs;
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp2__length1 = strs_length1;
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp0_ = _tmp2__length1 == 0;
+#line 154 "SourceInterfaces.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (_tmp0_) {
+#line 29 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ result = NULL;
+#line 29 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ return result;
+#line 162 "SourceInterfaces.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp3_ = g_string_new ("");
+#line 31 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ builder = _tmp3_;
+#line 32 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ ctr = 0;
+#line 170 "SourceInterfaces.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp4_ = TRUE;
+#line 33 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ while (TRUE) {
+#line 177 "SourceInterfaces.c"
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (!_tmp4_) {
+#line 185 "SourceInterfaces.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 39 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp5_ = ctr;
+#line 39 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ ctr = _tmp5_ + 1;
+#line 39 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp6_ = ctr;
+#line 39 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp7_ = strs;
+#line 39 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp7__length1 = strs_length1;
+#line 39 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (!(_tmp6_ < _tmp7__length1)) {
+#line 39 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ break;
+#line 204 "SourceInterfaces.c"
+ }
+ }
+#line 33 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp4_ = FALSE;
+#line 34 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp8_ = strs;
+#line 34 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp8__length1 = strs_length1;
+#line 34 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp9_ = ctr;
+#line 34 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 34 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp11_ = is_string_empty (_tmp10_);
+#line 34 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (!_tmp11_) {
+#line 221 "SourceInterfaces.c"
+ GString* _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp14_ = 0;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp12_ = builder;
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp13_ = strs;
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp13__length1 = strs_length1;
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp14_ = ctr;
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp15_ = _tmp13_[_tmp14_];
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp16_ = g_utf8_strdown (_tmp15_, (gssize) -1);
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp17_ = _tmp16_;
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ g_string_append (_tmp12_, _tmp17_);
+#line 35 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _g_free0 (_tmp17_);
+#line 36 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp18_ = ctr;
+#line 36 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp19_ = strs;
+#line 36 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp19__length1 = strs_length1;
+#line 36 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (_tmp18_ < (_tmp19__length1 - 1)) {
+#line 258 "SourceInterfaces.c"
+ GString* _tmp20_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp20_ = builder;
+#line 37 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ g_string_append_c (_tmp20_, ' ');
+#line 264 "SourceInterfaces.c"
+ }
+ }
+ }
+ }
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp22_ = builder;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp23_ = _tmp22_->str;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp24_ = is_string_empty (_tmp23_);
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (!_tmp24_) {
+#line 277 "SourceInterfaces.c"
+ GString* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp25_ = builder;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp26_ = _tmp25_->str;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp21_ = _tmp26_;
+#line 286 "SourceInterfaces.c"
+ } else {
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp21_ = NULL;
+#line 290 "SourceInterfaces.c"
+ }
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _tmp27_ = g_strdup (_tmp21_);
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ result = _tmp27_;
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ _g_string_free0 (builder);
+#line 41 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ return result;
+#line 300 "SourceInterfaces.c"
+}
+
+
+static void indexable_base_init (IndexableIface * iface) {
+#line 18 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 18 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ if (!initialized) {
+#line 18 "/home/jens/Source/shotwell/src/core/SourceInterfaces.vala"
+ initialized = TRUE;
+#line 311 "SourceInterfaces.c"
+ }
+}
+
+
+GType indexable_get_type (void) {
+ static volatile gsize indexable_type_id__volatile = 0;
+ if (g_once_init_enter (&indexable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (IndexableIface), (GBaseInitFunc) indexable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType indexable_type_id;
+ indexable_type_id = g_type_register_static (G_TYPE_INTERFACE, "Indexable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (indexable_type_id, TYPE_DATA_SOURCE);
+ g_once_init_leave (&indexable_type_id__volatile, indexable_type_id);
+ }
+ return indexable_type_id__volatile;
+}
+
+
+
diff --git a/src/core/Tracker.c b/src/core/Tracker.c
new file mode 100644
index 0000000..fa66f0e
--- /dev/null
+++ b/src/core/Tracker.c
@@ -0,0 +1,2025 @@
+/* Tracker.c generated by valac 0.32.1, the Vala compiler
+ * generated from Tracker.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define CORE_TYPE_TRACKER_ACCUMULATOR (core_tracker_accumulator_get_type ())
+#define CORE_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator))
+#define CORE_IS_TRACKER_ACCUMULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR))
+#define CORE_TRACKER_ACCUMULATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulatorIface))
+
+typedef struct _CoreTrackerAccumulator CoreTrackerAccumulator;
+typedef struct _CoreTrackerAccumulatorIface CoreTrackerAccumulatorIface;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+typedef struct _CoreTrackerPrivate CoreTrackerPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+typedef struct _CoreParamSpecTracker CoreParamSpecTracker;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+typedef struct _CoreViewTrackerPrivate CoreViewTrackerPrivate;
+
+#define CORE_VIEW_TRACKER_TYPE_MUX (core_view_tracker_mux_get_type ())
+#define CORE_VIEW_TRACKER_MUX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_VIEW_TRACKER_TYPE_MUX, CoreViewTrackerMux))
+#define CORE_VIEW_TRACKER_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_VIEW_TRACKER_TYPE_MUX, CoreViewTrackerMuxClass))
+#define CORE_VIEW_TRACKER_IS_MUX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_VIEW_TRACKER_TYPE_MUX))
+#define CORE_VIEW_TRACKER_IS_MUX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_VIEW_TRACKER_TYPE_MUX))
+#define CORE_VIEW_TRACKER_MUX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_VIEW_TRACKER_TYPE_MUX, CoreViewTrackerMuxClass))
+
+typedef struct _CoreViewTrackerMux CoreViewTrackerMux;
+typedef struct _CoreViewTrackerMuxClass CoreViewTrackerMuxClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _CoreViewTrackerMuxPrivate CoreViewTrackerMuxPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _CoreTrackerAccumulatorIface {
+ GTypeInterface parent_iface;
+ gboolean (*include) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*uninclude) (CoreTrackerAccumulator* self, DataObject* object);
+ gboolean (*altered) (CoreTrackerAccumulator* self, DataObject* object, Alteration* alteration);
+};
+
+struct _CoreTracker {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ CoreTrackerPrivate * priv;
+};
+
+struct _CoreTrackerClass {
+ GTypeClass parent_class;
+ void (*finalize) (CoreTracker *self);
+ void (*updated) (CoreTracker* self);
+};
+
+struct _CoreTrackerPrivate {
+ DataCollection* collection;
+ GeeCollection* initial;
+ CoreTrackerAccumulator* acc;
+};
+
+typedef gboolean (*CoreTrackerIncludeUnincludeObject) (DataObject* object, void* user_data);
+struct _CoreParamSpecTracker {
+ GParamSpec parent_instance;
+};
+
+struct _CoreViewTracker {
+ CoreTracker parent_instance;
+ CoreViewTrackerPrivate * priv;
+};
+
+struct _CoreViewTrackerClass {
+ CoreTrackerClass parent_class;
+};
+
+struct _CoreViewTrackerPrivate {
+ CoreViewTrackerMux* mux;
+};
+
+struct _CoreViewTrackerMux {
+ GObject parent_instance;
+ CoreViewTrackerMuxPrivate * priv;
+ CoreTrackerAccumulator* all;
+ CoreTrackerAccumulator* visible;
+ CoreTrackerAccumulator* selected;
+};
+
+struct _CoreViewTrackerMuxClass {
+ GObjectClass parent_class;
+};
+
+
+static gpointer core_tracker_parent_class = NULL;
+static gpointer core_view_tracker_parent_class = NULL;
+static gpointer core_view_tracker_mux_parent_class = NULL;
+static CoreTrackerAccumulatorIface* core_view_tracker_mux_core_tracker_accumulator_parent_iface = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType core_tracker_accumulator_get_type (void) G_GNUC_CONST;
+gboolean core_tracker_accumulator_include (CoreTrackerAccumulator* self, DataObject* object);
+gboolean core_tracker_accumulator_uninclude (CoreTrackerAccumulator* self, DataObject* object);
+gboolean core_tracker_accumulator_altered (CoreTrackerAccumulator* self, DataObject* object, Alteration* alteration);
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+#define CORE_TRACKER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CORE_TYPE_TRACKER, CoreTrackerPrivate))
+enum {
+ CORE_TRACKER_DUMMY_PROPERTY
+};
+static void core_tracker_on_items_added (CoreTracker* self, GeeIterable* added);
+static void _core_tracker_on_items_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self);
+static void core_tracker_on_items_removed (CoreTracker* self, GeeIterable* removed);
+static void _core_tracker_on_items_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self);
+static void core_tracker_on_items_altered (CoreTracker* self, GeeMap* map);
+static void _core_tracker_on_items_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+CoreTracker* core_tracker_new (DataCollection* collection, GeeCollection* initial);
+CoreTracker* core_tracker_construct (GType object_type, DataCollection* collection, GeeCollection* initial);
+void core_tracker_start (CoreTracker* self, CoreTrackerAccumulator* acc);
+GeeCollection* data_collection_get_all (DataCollection* self);
+DataCollection* core_tracker_get_collection (CoreTracker* self);
+void core_tracker_include_uninclude (CoreTracker* self, GeeIterable* objects, CoreTrackerIncludeUnincludeObject cb, void* cb_target);
+static gboolean _core_tracker_accumulator_include_core_tracker_include_uninclude_object (DataObject* object, gpointer self);
+static gboolean _core_tracker_accumulator_uninclude_core_tracker_include_uninclude_object (DataObject* object, gpointer self);
+static void core_tracker_real_updated (CoreTracker* self);
+static void core_tracker_finalize (CoreTracker* obj);
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+static GType core_view_tracker_mux_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define CORE_VIEW_TRACKER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerPrivate))
+enum {
+ CORE_VIEW_TRACKER_DUMMY_PROPERTY
+};
+GType view_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+static void core_view_tracker_on_items_shown (CoreViewTracker* self, GeeCollection* shown);
+static void _core_view_tracker_on_items_shown_view_collection_items_shown (ViewCollection* _sender, GeeCollection* visible, gpointer self);
+static void core_view_tracker_on_items_hidden (CoreViewTracker* self, GeeCollection* hidden);
+static void _core_view_tracker_on_items_hidden_view_collection_items_hidden (ViewCollection* _sender, GeeCollection* hidden, gpointer self);
+static void core_view_tracker_on_items_selected (CoreViewTracker* self, GeeIterable* selected);
+static void _core_view_tracker_on_items_selected_view_collection_items_selected (ViewCollection* _sender, GeeIterable* selected, gpointer self);
+static void core_view_tracker_on_items_unselected (CoreViewTracker* self, GeeIterable* unselected);
+static void _core_view_tracker_on_items_unselected_view_collection_items_unselected (ViewCollection* _sender, GeeIterable* unselected, gpointer self);
+CoreViewTracker* core_view_tracker_new (ViewCollection* collection);
+CoreViewTracker* core_view_tracker_construct (GType object_type, ViewCollection* collection);
+GeeCollection* view_collection_get_all_unfiltered (ViewCollection* self);
+void core_view_tracker_start (CoreViewTracker* self, CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected);
+static CoreViewTrackerMux* core_view_tracker_mux_new (CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected);
+static CoreViewTrackerMux* core_view_tracker_mux_construct (GType object_type, CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected);
+enum {
+ CORE_VIEW_TRACKER_MUX_DUMMY_PROPERTY
+};
+static gboolean core_view_tracker_mux_real_include (CoreTrackerAccumulator* base, DataObject* object);
+gboolean data_view_is_visible (DataView* self);
+gboolean data_view_is_selected (DataView* self);
+static gboolean core_view_tracker_mux_real_uninclude (CoreTrackerAccumulator* base, DataObject* object);
+static gboolean core_view_tracker_mux_real_altered (CoreTrackerAccumulator* base, DataObject* object, Alteration* alteration);
+static void core_view_tracker_mux_finalize (GObject* obj);
+static void core_view_tracker_finalize (CoreTracker* obj);
+
+
+gboolean core_tracker_accumulator_include (CoreTrackerAccumulator* self, DataObject* object) {
+#line 13 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (CORE_IS_TRACKER_ACCUMULATOR (self), FALSE);
+#line 13 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return CORE_TRACKER_ACCUMULATOR_GET_INTERFACE (self)->include (self, object);
+#line 262 "Tracker.c"
+}
+
+
+gboolean core_tracker_accumulator_uninclude (CoreTrackerAccumulator* self, DataObject* object) {
+#line 15 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (CORE_IS_TRACKER_ACCUMULATOR (self), FALSE);
+#line 15 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return CORE_TRACKER_ACCUMULATOR_GET_INTERFACE (self)->uninclude (self, object);
+#line 271 "Tracker.c"
+}
+
+
+gboolean core_tracker_accumulator_altered (CoreTrackerAccumulator* self, DataObject* object, Alteration* alteration) {
+#line 17 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (CORE_IS_TRACKER_ACCUMULATOR (self), FALSE);
+#line 17 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return CORE_TRACKER_ACCUMULATOR_GET_INTERFACE (self)->altered (self, object, alteration);
+#line 280 "Tracker.c"
+}
+
+
+static void core_tracker_accumulator_base_init (CoreTrackerAccumulatorIface * iface) {
+#line 12 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ static gboolean initialized = FALSE;
+#line 12 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (!initialized) {
+#line 12 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ initialized = TRUE;
+#line 291 "Tracker.c"
+ }
+}
+
+
+GType core_tracker_accumulator_get_type (void) {
+ static volatile gsize core_tracker_accumulator_type_id__volatile = 0;
+ if (g_once_init_enter (&core_tracker_accumulator_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CoreTrackerAccumulatorIface), (GBaseInitFunc) core_tracker_accumulator_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType core_tracker_accumulator_type_id;
+ core_tracker_accumulator_type_id = g_type_register_static (G_TYPE_INTERFACE, "CoreTrackerAccumulator", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (core_tracker_accumulator_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&core_tracker_accumulator_type_id__volatile, core_tracker_accumulator_type_id);
+ }
+ return core_tracker_accumulator_type_id__volatile;
+}
+
+
+static void _core_tracker_on_items_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self) {
+#line 40 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_on_items_added ((CoreTracker*) self, added);
+#line 312 "Tracker.c"
+}
+
+
+static void _core_tracker_on_items_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_on_items_removed ((CoreTracker*) self, removed);
+#line 319 "Tracker.c"
+}
+
+
+static void _core_tracker_on_items_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 42 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_on_items_altered ((CoreTracker*) self, items);
+#line 326 "Tracker.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 34 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 333 "Tracker.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 35 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 340 "Tracker.c"
+}
+
+
+CoreTracker* core_tracker_construct (GType object_type, DataCollection* collection, GeeCollection* initial) {
+ CoreTracker* self = NULL;
+ DataCollection* _tmp0_ = NULL;
+ DataCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (IS_DATA_COLLECTION (collection), NULL);
+#line 33 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail ((initial == NULL) || GEE_IS_COLLECTION (initial), NULL);
+#line 33 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = (CoreTracker*) g_type_create_instance (object_type);
+#line 34 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = collection;
+#line 34 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 34 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _data_collection_unref0 (self->priv->collection);
+#line 34 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv->collection = _tmp1_;
+#line 35 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = initial;
+#line 35 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 35 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->priv->initial);
+#line 35 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv->initial = _tmp3_;
+#line 33 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return self;
+#line 374 "Tracker.c"
+}
+
+
+CoreTracker* core_tracker_new (DataCollection* collection, GeeCollection* initial) {
+#line 33 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return core_tracker_construct (CORE_TYPE_TRACKER, collection, initial);
+#line 381 "Tracker.c"
+}
+
+
+void core_tracker_start (CoreTracker* self, CoreTrackerAccumulator* acc) {
+ CoreTrackerAccumulator* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+ CoreTrackerAccumulator* _tmp2_ = NULL;
+ DataCollection* _tmp3_ = NULL;
+ DataCollection* _tmp4_ = NULL;
+ DataCollection* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GeeCollection* _tmp7_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_TRACKER (self));
+#line 46 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_TRACKER_ACCUMULATOR (acc));
+#line 48 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->acc;
+#line 48 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _vala_assert (_tmp0_ == NULL, "this.acc == null");
+#line 50 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = acc;
+#line 50 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 50 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->priv->acc);
+#line 50 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv->acc = _tmp2_;
+#line 52 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = self->priv->collection;
+#line 52 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_connect (_tmp3_, "items-added", (GCallback) _core_tracker_on_items_added_data_collection_items_added, self);
+#line 53 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = self->priv->collection;
+#line 53 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_connect (_tmp4_, "items-removed", (GCallback) _core_tracker_on_items_removed_data_collection_items_removed, self);
+#line 54 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = self->priv->collection;
+#line 54 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_connect (_tmp5_, "items-altered", (GCallback) _core_tracker_on_items_altered_data_collection_items_altered, self);
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7_ = self->priv->initial;
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp7_ != NULL) {
+#line 426 "Tracker.c"
+ GeeCollection* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = self->priv->initial;
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp9_ = gee_collection_get_size (_tmp8_);
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = _tmp9_;
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = _tmp10_ > 0;
+#line 438 "Tracker.c"
+ } else {
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = FALSE;
+#line 442 "Tracker.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp6_) {
+#line 446 "Tracker.c"
+ GeeCollection* _tmp11_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp11_ = self->priv->initial;
+#line 57 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_on_items_added (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 452 "Tracker.c"
+ } else {
+ GeeCollection* _tmp12_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp12_ = self->priv->initial;
+#line 58 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp12_ == NULL) {
+#line 459 "Tracker.c"
+ DataCollection* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ GeeCollection* _tmp15_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp13_ = self->priv->collection;
+#line 59 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp14_ = data_collection_get_all (_tmp13_);
+#line 59 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp15_ = _tmp14_;
+#line 59 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_on_items_added (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 59 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (_tmp15_);
+#line 473 "Tracker.c"
+ }
+ }
+#line 61 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->priv->initial);
+#line 61 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv->initial = NULL;
+#line 480 "Tracker.c"
+}
+
+
+DataCollection* core_tracker_get_collection (CoreTracker* self) {
+ DataCollection* result = NULL;
+ DataCollection* _tmp0_ = NULL;
+ DataCollection* _tmp1_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (CORE_IS_TRACKER (self), NULL);
+#line 65 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->collection;
+#line 65 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 65 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ result = _tmp1_;
+#line 65 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return result;
+#line 498 "Tracker.c"
+}
+
+
+static gboolean _core_tracker_accumulator_include_core_tracker_include_uninclude_object (DataObject* object, gpointer self) {
+ gboolean result;
+ result = core_tracker_accumulator_include ((CoreTrackerAccumulator*) self, object);
+#line 69 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return result;
+#line 507 "Tracker.c"
+}
+
+
+static void core_tracker_on_items_added (CoreTracker* self, GeeIterable* added) {
+ GeeIterable* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_TRACKER (self));
+#line 68 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 69 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = added;
+#line 69 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = self->priv->acc;
+#line 69 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_include_uninclude (self, _tmp0_, _core_tracker_accumulator_include_core_tracker_include_uninclude_object, _tmp1_);
+#line 524 "Tracker.c"
+}
+
+
+static gboolean _core_tracker_accumulator_uninclude_core_tracker_include_uninclude_object (DataObject* object, gpointer self) {
+ gboolean result;
+ result = core_tracker_accumulator_uninclude ((CoreTrackerAccumulator*) self, object);
+#line 73 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return result;
+#line 533 "Tracker.c"
+}
+
+
+static void core_tracker_on_items_removed (CoreTracker* self, GeeIterable* removed) {
+ GeeIterable* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_TRACKER (self));
+#line 72 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 73 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = removed;
+#line 73 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = self->priv->acc;
+#line 73 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_include_uninclude (self, _tmp0_, _core_tracker_accumulator_uninclude_core_tracker_include_uninclude_object, _tmp1_);
+#line 550 "Tracker.c"
+}
+
+
+void core_tracker_include_uninclude (CoreTracker* self, GeeIterable* objects, CoreTrackerIncludeUnincludeObject cb, void* cb_target) {
+ gboolean fire_updated = FALSE;
+ gboolean _tmp11_ = FALSE;
+#line 77 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_TRACKER (self));
+#line 77 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (objects));
+#line 78 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = FALSE;
+#line 563 "Tracker.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = objects;
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _object_it = _tmp1_;
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ while (TRUE) {
+#line 576 "Tracker.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ CoreTrackerIncludeUnincludeObject _tmp7_ = NULL;
+ void* _tmp7__target = NULL;
+ DataObject* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = _object_it;
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (!_tmp3_) {
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ break;
+#line 595 "Tracker.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = _object_it;
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ object = (DataObject*) _tmp5_;
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7_ = cb;
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7__target = cb_target;
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = object;
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp9_ = _tmp7_ (_tmp8_, _tmp7__target);
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp9_) {
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = TRUE;
+#line 615 "Tracker.c"
+ } else {
+ gboolean _tmp10_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = fire_updated;
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = _tmp10_;
+#line 622 "Tracker.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp6_;
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (object);
+#line 628 "Tracker.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (_object_it);
+#line 632 "Tracker.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp11_ = fire_updated;
+#line 82 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp11_) {
+#line 83 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_emit_by_name (self, "updated");
+#line 640 "Tracker.c"
+ }
+}
+
+
+static void core_tracker_on_items_altered (CoreTracker* self, GeeMap* map) {
+ gboolean fire_updated = FALSE;
+ gboolean _tmp20_ = FALSE;
+#line 86 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_TRACKER (self));
+#line 86 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 87 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = FALSE;
+#line 654 "Tracker.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = map;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = _tmp1_;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = _tmp2_;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = _tmp4_;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (_tmp3_);
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _object_it = _tmp5_;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ while (TRUE) {
+#line 681 "Tracker.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ CoreTrackerAccumulator* _tmp11_ = NULL;
+ DataObject* _tmp12_ = NULL;
+ GeeMap* _tmp13_ = NULL;
+ DataObject* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ Alteration* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = _object_it;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (!_tmp7_) {
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ break;
+#line 704 "Tracker.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = _object_it;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ object = (DataObject*) _tmp9_;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp11_ = self->priv->acc;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp12_ = object;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp13_ = map;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp14_ = object;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp15_ = gee_map_get (_tmp13_, _tmp14_);
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp16_ = (Alteration*) _tmp15_;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp17_ = core_tracker_accumulator_altered (_tmp11_, _tmp12_, _tmp16_);
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp18_ = _tmp17_;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _alteration_unref0 (_tmp16_);
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp18_) {
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = TRUE;
+#line 734 "Tracker.c"
+ } else {
+ gboolean _tmp19_ = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp19_ = fire_updated;
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = _tmp19_;
+#line 741 "Tracker.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp10_;
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (object);
+#line 747 "Tracker.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (_object_it);
+#line 751 "Tracker.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp20_ = fire_updated;
+#line 91 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp20_) {
+#line 92 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_emit_by_name (self, "updated");
+#line 759 "Tracker.c"
+ }
+}
+
+
+static void core_tracker_real_updated (CoreTracker* self) {
+}
+
+
+static void core_value_tracker_init (GValue* value) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ value->data[0].v_pointer = NULL;
+#line 771 "Tracker.c"
+}
+
+
+static void core_value_tracker_free_value (GValue* value) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (value->data[0].v_pointer) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_unref (value->data[0].v_pointer);
+#line 780 "Tracker.c"
+ }
+}
+
+
+static void core_value_tracker_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (src_value->data[0].v_pointer) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ dest_value->data[0].v_pointer = core_tracker_ref (src_value->data[0].v_pointer);
+#line 790 "Tracker.c"
+ } else {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 794 "Tracker.c"
+ }
+}
+
+
+static gpointer core_value_tracker_peek_pointer (const GValue* value) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return value->data[0].v_pointer;
+#line 802 "Tracker.c"
+}
+
+
+static gchar* core_value_tracker_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (collect_values[0].v_pointer) {
+#line 809 "Tracker.c"
+ CoreTracker* object;
+ object = collect_values[0].v_pointer;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 816 "Tracker.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 820 "Tracker.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ value->data[0].v_pointer = core_tracker_ref (object);
+#line 824 "Tracker.c"
+ } else {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ value->data[0].v_pointer = NULL;
+#line 828 "Tracker.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return NULL;
+#line 832 "Tracker.c"
+}
+
+
+static gchar* core_value_tracker_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ CoreTracker** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (!object_p) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 843 "Tracker.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (!value->data[0].v_pointer) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ *object_p = NULL;
+#line 849 "Tracker.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ *object_p = value->data[0].v_pointer;
+#line 853 "Tracker.c"
+ } else {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ *object_p = core_tracker_ref (value->data[0].v_pointer);
+#line 857 "Tracker.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return NULL;
+#line 861 "Tracker.c"
+}
+
+
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ CoreParamSpecTracker* spec;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, CORE_TYPE_TRACKER), NULL);
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return G_PARAM_SPEC (spec);
+#line 875 "Tracker.c"
+}
+
+
+gpointer core_value_get_tracker (const GValue* value) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CORE_TYPE_TRACKER), NULL);
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return value->data[0].v_pointer;
+#line 884 "Tracker.c"
+}
+
+
+void core_value_set_tracker (GValue* value, gpointer v_object) {
+ CoreTracker* old;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CORE_TYPE_TRACKER));
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ old = value->data[0].v_pointer;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (v_object) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CORE_TYPE_TRACKER));
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ value->data[0].v_pointer = v_object;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_ref (value->data[0].v_pointer);
+#line 904 "Tracker.c"
+ } else {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ value->data[0].v_pointer = NULL;
+#line 908 "Tracker.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (old) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_unref (old);
+#line 914 "Tracker.c"
+ }
+}
+
+
+void core_value_take_tracker (GValue* value, gpointer v_object) {
+ CoreTracker* old;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, CORE_TYPE_TRACKER));
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ old = value->data[0].v_pointer;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (v_object) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, CORE_TYPE_TRACKER));
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ value->data[0].v_pointer = v_object;
+#line 933 "Tracker.c"
+ } else {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ value->data[0].v_pointer = NULL;
+#line 937 "Tracker.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (old) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_unref (old);
+#line 943 "Tracker.c"
+ }
+}
+
+
+static void core_tracker_class_init (CoreTrackerClass * klass) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_parent_class = g_type_class_peek_parent (klass);
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ ((CoreTrackerClass *) klass)->finalize = core_tracker_finalize;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_type_class_add_private (klass, sizeof (CoreTrackerPrivate));
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ ((CoreTrackerClass *) klass)->updated = core_tracker_real_updated;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_new ("updated", CORE_TYPE_TRACKER, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (CoreTrackerClass, updated), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 959 "Tracker.c"
+}
+
+
+static void core_tracker_instance_init (CoreTracker * self) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv = CORE_TRACKER_GET_PRIVATE (self);
+#line 28 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv->acc = NULL;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->ref_count = 1;
+#line 970 "Tracker.c"
+}
+
+
+static void core_tracker_finalize (CoreTracker* obj) {
+ CoreTracker * self;
+ CoreTrackerAccumulator* _tmp0_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, CORE_TYPE_TRACKER, CoreTracker);
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_destroy (self);
+#line 39 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->acc;
+#line 39 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp0_ != NULL) {
+#line 985 "Tracker.c"
+ DataCollection* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ DataCollection* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ DataCollection* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+#line 40 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = self->priv->collection;
+#line 40 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_parse_name ("items-added", TYPE_DATA_COLLECTION, &_tmp2_, NULL, FALSE);
+#line 40 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _core_tracker_on_items_added_data_collection_items_added, self);
+#line 41 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = self->priv->collection;
+#line 41 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_parse_name ("items-removed", TYPE_DATA_COLLECTION, &_tmp4_, NULL, FALSE);
+#line 41 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _core_tracker_on_items_removed_data_collection_items_removed, self);
+#line 42 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = self->priv->collection;
+#line 42 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp6_, NULL, FALSE);
+#line 42 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _core_tracker_on_items_altered_data_collection_items_altered, self);
+#line 1010 "Tracker.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _data_collection_unref0 (self->priv->collection);
+#line 27 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->priv->initial);
+#line 28 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->priv->acc);
+#line 1018 "Tracker.c"
+}
+
+
+GType core_tracker_get_type (void) {
+ static volatile gsize core_tracker_type_id__volatile = 0;
+ if (g_once_init_enter (&core_tracker_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { core_value_tracker_init, core_value_tracker_free_value, core_value_tracker_copy_value, core_value_tracker_peek_pointer, "p", core_value_tracker_collect_value, "p", core_value_tracker_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (CoreTrackerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) core_tracker_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CoreTracker), 0, (GInstanceInitFunc) core_tracker_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType core_tracker_type_id;
+ core_tracker_type_id = g_type_register_fundamental (g_type_fundamental_next (), "CoreTracker", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&core_tracker_type_id__volatile, core_tracker_type_id);
+ }
+ return core_tracker_type_id__volatile;
+}
+
+
+gpointer core_tracker_ref (gpointer instance) {
+ CoreTracker* self;
+ self = instance;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return instance;
+#line 1043 "Tracker.c"
+}
+
+
+void core_tracker_unref (gpointer instance) {
+ CoreTracker* self;
+ self = instance;
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ CORE_TRACKER_GET_CLASS (self)->finalize (self);
+#line 23 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1056 "Tracker.c"
+ }
+}
+
+
+static void _core_view_tracker_on_items_shown_view_collection_items_shown (ViewCollection* _sender, GeeCollection* visible, gpointer self) {
+#line 173 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_view_tracker_on_items_shown ((CoreViewTracker*) self, visible);
+#line 1064 "Tracker.c"
+}
+
+
+static void _core_view_tracker_on_items_hidden_view_collection_items_hidden (ViewCollection* _sender, GeeCollection* hidden, gpointer self) {
+#line 174 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_view_tracker_on_items_hidden ((CoreViewTracker*) self, hidden);
+#line 1071 "Tracker.c"
+}
+
+
+static void _core_view_tracker_on_items_selected_view_collection_items_selected (ViewCollection* _sender, GeeIterable* selected, gpointer self) {
+#line 175 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_view_tracker_on_items_selected ((CoreViewTracker*) self, selected);
+#line 1078 "Tracker.c"
+}
+
+
+static void _core_view_tracker_on_items_unselected_view_collection_items_unselected (ViewCollection* _sender, GeeIterable* unselected, gpointer self) {
+#line 176 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_view_tracker_on_items_unselected ((CoreViewTracker*) self, unselected);
+#line 1085 "Tracker.c"
+}
+
+
+CoreViewTracker* core_view_tracker_construct (GType object_type, ViewCollection* collection) {
+ CoreViewTracker* self = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (collection), NULL);
+#line 166 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = collection;
+#line 166 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = collection;
+#line 166 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = view_collection_get_all_unfiltered (_tmp1_);
+#line 166 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = _tmp2_;
+#line 166 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = (CoreViewTracker*) core_tracker_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), _tmp3_);
+#line 166 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (_tmp3_);
+#line 165 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return self;
+#line 1111 "Tracker.c"
+}
+
+
+CoreViewTracker* core_view_tracker_new (ViewCollection* collection) {
+#line 165 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return core_view_tracker_construct (CORE_TYPE_VIEW_TRACKER, collection);
+#line 1118 "Tracker.c"
+}
+
+
+void core_view_tracker_start (CoreViewTracker* self, CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected) {
+ CoreViewTrackerMux* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+ CoreTrackerAccumulator* _tmp2_ = NULL;
+ CoreTrackerAccumulator* _tmp3_ = NULL;
+ CoreViewTrackerMux* _tmp4_ = NULL;
+ ViewCollection* collection = NULL;
+ DataCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ CoreViewTrackerMux* _tmp7_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_VIEW_TRACKER (self));
+#line 180 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail ((all == NULL) || CORE_IS_TRACKER_ACCUMULATOR (all));
+#line 180 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail ((visible == NULL) || CORE_IS_TRACKER_ACCUMULATOR (visible));
+#line 180 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail ((selected == NULL) || CORE_IS_TRACKER_ACCUMULATOR (selected));
+#line 181 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->mux;
+#line 181 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _vala_assert (_tmp0_ == NULL, "mux == null");
+#line 183 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = all;
+#line 183 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = visible;
+#line 183 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = selected;
+#line 183 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = core_view_tracker_mux_new (_tmp1_, _tmp2_, _tmp3_);
+#line 183 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->priv->mux);
+#line 183 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv->mux = _tmp4_;
+#line 185 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = core_tracker_get_collection (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_TRACKER, CoreTracker));
+#line 185 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_VIEW_COLLECTION) ? ((ViewCollection*) _tmp5_) : NULL;
+#line 185 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp6_ == NULL) {
+#line 185 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 1164 "Tracker.c"
+ }
+#line 185 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ collection = _tmp6_;
+#line 186 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _vala_assert (collection != NULL, "collection != null");
+#line 187 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_connect (collection, "items-shown", (GCallback) _core_view_tracker_on_items_shown_view_collection_items_shown, self);
+#line 188 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_connect (collection, "items-hidden", (GCallback) _core_view_tracker_on_items_hidden_view_collection_items_hidden, self);
+#line 189 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_connect (collection, "items-selected", (GCallback) _core_view_tracker_on_items_selected_view_collection_items_selected, self);
+#line 190 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_connect (collection, "items-unselected", (GCallback) _core_view_tracker_on_items_unselected_view_collection_items_unselected, self);
+#line 192 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7_ = self->priv->mux;
+#line 192 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_start (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_TRACKER, CoreTracker), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, CORE_TYPE_TRACKER_ACCUMULATOR, CoreTrackerAccumulator));
+#line 180 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _data_collection_unref0 (collection);
+#line 1184 "Tracker.c"
+}
+
+
+static void core_view_tracker_on_items_shown (CoreViewTracker* self, GeeCollection* shown) {
+ CoreViewTrackerMux* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+#line 195 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_VIEW_TRACKER (self));
+#line 195 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (shown));
+#line 196 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->mux;
+#line 196 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _tmp0_->visible;
+#line 196 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp1_ != NULL) {
+#line 1201 "Tracker.c"
+ GeeCollection* _tmp2_ = NULL;
+ CoreViewTrackerMux* _tmp3_ = NULL;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = shown;
+#line 197 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = self->priv->mux;
+#line 197 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = _tmp3_->visible;
+#line 197 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_include_uninclude (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_TRACKER, CoreTracker), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable), _core_tracker_accumulator_include_core_tracker_include_uninclude_object, _tmp4_);
+#line 1213 "Tracker.c"
+ }
+}
+
+
+static void core_view_tracker_on_items_hidden (CoreViewTracker* self, GeeCollection* hidden) {
+ CoreViewTrackerMux* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_VIEW_TRACKER (self));
+#line 200 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (hidden));
+#line 201 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->mux;
+#line 201 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _tmp0_->visible;
+#line 201 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp1_ != NULL) {
+#line 1231 "Tracker.c"
+ GeeCollection* _tmp2_ = NULL;
+ CoreViewTrackerMux* _tmp3_ = NULL;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = hidden;
+#line 202 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = self->priv->mux;
+#line 202 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = _tmp3_->visible;
+#line 202 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_include_uninclude (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_TRACKER, CoreTracker), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable), _core_tracker_accumulator_uninclude_core_tracker_include_uninclude_object, _tmp4_);
+#line 1243 "Tracker.c"
+ }
+}
+
+
+static void core_view_tracker_on_items_selected (CoreViewTracker* self, GeeIterable* selected) {
+ CoreViewTrackerMux* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_VIEW_TRACKER (self));
+#line 205 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (selected));
+#line 206 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->mux;
+#line 206 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _tmp0_->selected;
+#line 206 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp1_ != NULL) {
+#line 1261 "Tracker.c"
+ GeeIterable* _tmp2_ = NULL;
+ CoreViewTrackerMux* _tmp3_ = NULL;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = selected;
+#line 207 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = self->priv->mux;
+#line 207 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = _tmp3_->selected;
+#line 207 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_include_uninclude (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_TRACKER, CoreTracker), _tmp2_, _core_tracker_accumulator_include_core_tracker_include_uninclude_object, _tmp4_);
+#line 1273 "Tracker.c"
+ }
+}
+
+
+static void core_view_tracker_on_items_unselected (CoreViewTracker* self, GeeIterable* unselected) {
+ CoreViewTrackerMux* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (CORE_IS_VIEW_TRACKER (self));
+#line 210 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (unselected));
+#line 211 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->mux;
+#line 211 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _tmp0_->selected;
+#line 211 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp1_ != NULL) {
+#line 1291 "Tracker.c"
+ GeeIterable* _tmp2_ = NULL;
+ CoreViewTrackerMux* _tmp3_ = NULL;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = unselected;
+#line 212 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = self->priv->mux;
+#line 212 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = _tmp3_->selected;
+#line 212 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_tracker_include_uninclude (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_TRACKER, CoreTracker), _tmp2_, _core_tracker_accumulator_uninclude_core_tracker_include_uninclude_object, _tmp4_);
+#line 1303 "Tracker.c"
+ }
+}
+
+
+static CoreViewTrackerMux* core_view_tracker_mux_construct (GType object_type, CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected) {
+ CoreViewTrackerMux * self = NULL;
+ CoreTrackerAccumulator* _tmp0_ = NULL;
+ CoreTrackerAccumulator* _tmp1_ = NULL;
+ CoreTrackerAccumulator* _tmp2_ = NULL;
+ CoreTrackerAccumulator* _tmp3_ = NULL;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+ CoreTrackerAccumulator* _tmp5_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail ((all == NULL) || CORE_IS_TRACKER_ACCUMULATOR (all), NULL);
+#line 105 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail ((visible == NULL) || CORE_IS_TRACKER_ACCUMULATOR (visible), NULL);
+#line 105 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail ((selected == NULL) || CORE_IS_TRACKER_ACCUMULATOR (selected), NULL);
+#line 105 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = (CoreViewTrackerMux*) g_object_new (object_type, NULL);
+#line 106 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = all;
+#line 106 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 106 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->all);
+#line 106 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->all = _tmp1_;
+#line 107 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = visible;
+#line 107 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 107 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->visible);
+#line 107 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->visible = _tmp3_;
+#line 108 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = selected;
+#line 108 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 108 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->selected);
+#line 108 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->selected = _tmp5_;
+#line 105 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return self;
+#line 1350 "Tracker.c"
+}
+
+
+static CoreViewTrackerMux* core_view_tracker_mux_new (CoreTrackerAccumulator* all, CoreTrackerAccumulator* visible, CoreTrackerAccumulator* selected) {
+#line 105 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return core_view_tracker_mux_construct (CORE_VIEW_TRACKER_TYPE_MUX, all, visible, selected);
+#line 1357 "Tracker.c"
+}
+
+
+static gboolean core_view_tracker_mux_real_include (CoreTrackerAccumulator* base, DataObject* object) {
+ CoreViewTrackerMux * self;
+ gboolean result = FALSE;
+ DataView* view = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ gboolean fire_updated = FALSE;
+ CoreTrackerAccumulator* _tmp2_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ CoreTrackerAccumulator* _tmp9_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ CoreTrackerAccumulator* _tmp18_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, CORE_VIEW_TRACKER_TYPE_MUX, CoreViewTrackerMux);
+#line 111 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 112 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = object;
+#line 112 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 112 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ view = _tmp1_;
+#line 114 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = FALSE;
+#line 116 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = self->all;
+#line 116 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp2_ != NULL) {
+#line 1389 "Tracker.c"
+ gboolean _tmp3_ = FALSE;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = self->all;
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = view;
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = core_tracker_accumulator_include (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp6_) {
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = TRUE;
+#line 1404 "Tracker.c"
+ } else {
+ gboolean _tmp7_ = FALSE;
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7_ = fire_updated;
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = _tmp7_;
+#line 1411 "Tracker.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp3_;
+#line 1415 "Tracker.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp9_ = self->visible;
+#line 119 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp9_ != NULL) {
+#line 1421 "Tracker.c"
+ DataView* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = view;
+#line 119 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp11_ = data_view_is_visible (_tmp10_);
+#line 119 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = _tmp11_;
+#line 1430 "Tracker.c"
+ } else {
+#line 119 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = FALSE;
+#line 1434 "Tracker.c"
+ }
+#line 119 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp8_) {
+#line 1438 "Tracker.c"
+ gboolean _tmp12_ = FALSE;
+ CoreTrackerAccumulator* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp13_ = self->visible;
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp14_ = view;
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp15_ = core_tracker_accumulator_include (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp15_) {
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp12_ = TRUE;
+#line 1453 "Tracker.c"
+ } else {
+ gboolean _tmp16_ = FALSE;
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp16_ = fire_updated;
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp12_ = _tmp16_;
+#line 1460 "Tracker.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp12_;
+#line 1464 "Tracker.c"
+ }
+#line 122 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp18_ = self->selected;
+#line 122 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp18_ != NULL) {
+#line 1470 "Tracker.c"
+ DataView* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 122 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp19_ = view;
+#line 122 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp20_ = data_view_is_selected (_tmp19_);
+#line 122 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp17_ = _tmp20_;
+#line 1479 "Tracker.c"
+ } else {
+#line 122 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp17_ = FALSE;
+#line 1483 "Tracker.c"
+ }
+#line 122 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp17_) {
+#line 1487 "Tracker.c"
+ gboolean _tmp21_ = FALSE;
+ CoreTrackerAccumulator* _tmp22_ = NULL;
+ DataView* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp22_ = self->selected;
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp23_ = view;
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp24_ = core_tracker_accumulator_include (_tmp22_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_DATA_OBJECT, DataObject));
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp24_) {
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp21_ = TRUE;
+#line 1502 "Tracker.c"
+ } else {
+ gboolean _tmp25_ = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp25_ = fire_updated;
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp21_ = _tmp25_;
+#line 1509 "Tracker.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp21_;
+#line 1513 "Tracker.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ result = fire_updated;
+#line 125 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (view);
+#line 125 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return result;
+#line 1521 "Tracker.c"
+}
+
+
+static gboolean core_view_tracker_mux_real_uninclude (CoreTrackerAccumulator* base, DataObject* object) {
+ CoreViewTrackerMux * self;
+ gboolean result = FALSE;
+ DataView* view = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ gboolean fire_updated = FALSE;
+ CoreTrackerAccumulator* _tmp2_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ CoreTrackerAccumulator* _tmp9_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ CoreTrackerAccumulator* _tmp18_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, CORE_VIEW_TRACKER_TYPE_MUX, CoreViewTrackerMux);
+#line 128 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 129 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = object;
+#line 129 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 129 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ view = _tmp1_;
+#line 131 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = FALSE;
+#line 133 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = self->all;
+#line 133 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp2_ != NULL) {
+#line 1553 "Tracker.c"
+ gboolean _tmp3_ = FALSE;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = self->all;
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = view;
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = core_tracker_accumulator_uninclude (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp6_) {
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = TRUE;
+#line 1568 "Tracker.c"
+ } else {
+ gboolean _tmp7_ = FALSE;
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7_ = fire_updated;
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = _tmp7_;
+#line 1575 "Tracker.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp3_;
+#line 1579 "Tracker.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp9_ = self->visible;
+#line 136 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp9_ != NULL) {
+#line 1585 "Tracker.c"
+ DataView* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = view;
+#line 136 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp11_ = data_view_is_visible (_tmp10_);
+#line 136 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = _tmp11_;
+#line 1594 "Tracker.c"
+ } else {
+#line 136 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = FALSE;
+#line 1598 "Tracker.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp8_) {
+#line 1602 "Tracker.c"
+ gboolean _tmp12_ = FALSE;
+ CoreTrackerAccumulator* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp13_ = self->visible;
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp14_ = view;
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp15_ = core_tracker_accumulator_uninclude (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp15_) {
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp12_ = TRUE;
+#line 1617 "Tracker.c"
+ } else {
+ gboolean _tmp16_ = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp16_ = fire_updated;
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp12_ = _tmp16_;
+#line 1624 "Tracker.c"
+ }
+#line 137 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp12_;
+#line 1628 "Tracker.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp18_ = self->selected;
+#line 139 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp18_ != NULL) {
+#line 1634 "Tracker.c"
+ DataView* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 139 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp19_ = view;
+#line 139 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp20_ = data_view_is_selected (_tmp19_);
+#line 139 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp17_ = _tmp20_;
+#line 1643 "Tracker.c"
+ } else {
+#line 139 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp17_ = FALSE;
+#line 1647 "Tracker.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp17_) {
+#line 1651 "Tracker.c"
+ gboolean _tmp21_ = FALSE;
+ CoreTrackerAccumulator* _tmp22_ = NULL;
+ DataView* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp22_ = self->selected;
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp23_ = view;
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp24_ = core_tracker_accumulator_uninclude (_tmp22_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_DATA_OBJECT, DataObject));
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp24_) {
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp21_ = TRUE;
+#line 1666 "Tracker.c"
+ } else {
+ gboolean _tmp25_ = FALSE;
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp25_ = fire_updated;
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp21_ = _tmp25_;
+#line 1673 "Tracker.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp21_;
+#line 1677 "Tracker.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ result = fire_updated;
+#line 142 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (view);
+#line 142 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return result;
+#line 1685 "Tracker.c"
+}
+
+
+static gboolean core_view_tracker_mux_real_altered (CoreTrackerAccumulator* base, DataObject* object, Alteration* alteration) {
+ CoreViewTrackerMux * self;
+ gboolean result = FALSE;
+ DataView* view = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ gboolean fire_updated = FALSE;
+ CoreTrackerAccumulator* _tmp2_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ CoreTrackerAccumulator* _tmp10_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ CoreTrackerAccumulator* _tmp20_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, CORE_VIEW_TRACKER_TYPE_MUX, CoreViewTrackerMux);
+#line 145 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 145 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 146 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = object;
+#line 146 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 146 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ view = _tmp1_;
+#line 148 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = FALSE;
+#line 150 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = self->all;
+#line 150 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp2_ != NULL) {
+#line 1719 "Tracker.c"
+ gboolean _tmp3_ = FALSE;
+ CoreTrackerAccumulator* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ Alteration* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = self->all;
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp5_ = view;
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = alteration;
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp7_ = core_tracker_accumulator_altered (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject), _tmp6_);
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp7_) {
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = TRUE;
+#line 1737 "Tracker.c"
+ } else {
+ gboolean _tmp8_ = FALSE;
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = fire_updated;
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = _tmp8_;
+#line 1744 "Tracker.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp3_;
+#line 1748 "Tracker.c"
+ }
+#line 153 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = self->visible;
+#line 153 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp10_ != NULL) {
+#line 1754 "Tracker.c"
+ DataView* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 153 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp11_ = view;
+#line 153 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp12_ = data_view_is_visible (_tmp11_);
+#line 153 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp9_ = _tmp12_;
+#line 1763 "Tracker.c"
+ } else {
+#line 153 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp9_ = FALSE;
+#line 1767 "Tracker.c"
+ }
+#line 153 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp9_) {
+#line 1771 "Tracker.c"
+ gboolean _tmp13_ = FALSE;
+ CoreTrackerAccumulator* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+ Alteration* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp14_ = self->visible;
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp15_ = view;
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp16_ = alteration;
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp17_ = core_tracker_accumulator_altered (_tmp14_, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_DATA_OBJECT, DataObject), _tmp16_);
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp17_) {
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp13_ = TRUE;
+#line 1789 "Tracker.c"
+ } else {
+ gboolean _tmp18_ = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp18_ = fire_updated;
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp13_ = _tmp18_;
+#line 1796 "Tracker.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp13_;
+#line 1800 "Tracker.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp20_ = self->selected;
+#line 156 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp20_ != NULL) {
+#line 1806 "Tracker.c"
+ DataView* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 156 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp21_ = view;
+#line 156 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp22_ = data_view_is_selected (_tmp21_);
+#line 156 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp19_ = _tmp22_;
+#line 1815 "Tracker.c"
+ } else {
+#line 156 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp19_ = FALSE;
+#line 1819 "Tracker.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp19_) {
+#line 1823 "Tracker.c"
+ gboolean _tmp23_ = FALSE;
+ CoreTrackerAccumulator* _tmp24_ = NULL;
+ DataView* _tmp25_ = NULL;
+ Alteration* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp24_ = self->selected;
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp25_ = view;
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp26_ = alteration;
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp27_ = core_tracker_accumulator_altered (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject), _tmp26_);
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp27_) {
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp23_ = TRUE;
+#line 1841 "Tracker.c"
+ } else {
+ gboolean _tmp28_ = FALSE;
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp28_ = fire_updated;
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp23_ = _tmp28_;
+#line 1848 "Tracker.c"
+ }
+#line 157 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ fire_updated = _tmp23_;
+#line 1852 "Tracker.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ result = fire_updated;
+#line 159 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (view);
+#line 159 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ return result;
+#line 1860 "Tracker.c"
+}
+
+
+static void core_view_tracker_mux_class_init (CoreViewTrackerMuxClass * klass) {
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_view_tracker_mux_parent_class = g_type_class_peek_parent (klass);
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ G_OBJECT_CLASS (klass)->finalize = core_view_tracker_mux_finalize;
+#line 1869 "Tracker.c"
+}
+
+
+static void core_view_tracker_mux_core_tracker_accumulator_interface_init (CoreTrackerAccumulatorIface * iface) {
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_view_tracker_mux_core_tracker_accumulator_parent_iface = g_type_interface_peek_parent (iface);
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ iface->include = (gboolean (*)(CoreTrackerAccumulator*, DataObject*)) core_view_tracker_mux_real_include;
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ iface->uninclude = (gboolean (*)(CoreTrackerAccumulator*, DataObject*)) core_view_tracker_mux_real_uninclude;
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ iface->altered = (gboolean (*)(CoreTrackerAccumulator*, DataObject*, Alteration*)) core_view_tracker_mux_real_altered;
+#line 1882 "Tracker.c"
+}
+
+
+static void core_view_tracker_mux_instance_init (CoreViewTrackerMux * self) {
+}
+
+
+static void core_view_tracker_mux_finalize (GObject* obj) {
+ CoreViewTrackerMux * self;
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, CORE_VIEW_TRACKER_TYPE_MUX, CoreViewTrackerMux);
+#line 101 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->all);
+#line 102 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->visible);
+#line 103 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->selected);
+#line 100 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ G_OBJECT_CLASS (core_view_tracker_mux_parent_class)->finalize (obj);
+#line 1902 "Tracker.c"
+}
+
+
+static GType core_view_tracker_mux_get_type (void) {
+ static volatile gsize core_view_tracker_mux_type_id__volatile = 0;
+ if (g_once_init_enter (&core_view_tracker_mux_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CoreViewTrackerMuxClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) core_view_tracker_mux_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CoreViewTrackerMux), 0, (GInstanceInitFunc) core_view_tracker_mux_instance_init, NULL };
+ static const GInterfaceInfo core_tracker_accumulator_info = { (GInterfaceInitFunc) core_view_tracker_mux_core_tracker_accumulator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType core_view_tracker_mux_type_id;
+ core_view_tracker_mux_type_id = g_type_register_static (G_TYPE_OBJECT, "CoreViewTrackerMux", &g_define_type_info, 0);
+ g_type_add_interface_static (core_view_tracker_mux_type_id, CORE_TYPE_TRACKER_ACCUMULATOR, &core_tracker_accumulator_info);
+ g_once_init_leave (&core_view_tracker_mux_type_id__volatile, core_view_tracker_mux_type_id);
+ }
+ return core_view_tracker_mux_type_id__volatile;
+}
+
+
+static void core_view_tracker_class_init (CoreViewTrackerClass * klass) {
+#line 99 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ core_view_tracker_parent_class = g_type_class_peek_parent (klass);
+#line 99 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ ((CoreTrackerClass *) klass)->finalize = core_view_tracker_finalize;
+#line 99 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_type_class_add_private (klass, sizeof (CoreViewTrackerPrivate));
+#line 1927 "Tracker.c"
+}
+
+
+static void core_view_tracker_instance_init (CoreViewTracker * self) {
+#line 99 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv = CORE_VIEW_TRACKER_GET_PRIVATE (self);
+#line 163 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self->priv->mux = NULL;
+#line 1936 "Tracker.c"
+}
+
+
+static void core_view_tracker_finalize (CoreTracker* obj) {
+ CoreViewTracker * self;
+ CoreViewTrackerMux* _tmp0_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, CORE_TYPE_VIEW_TRACKER, CoreViewTracker);
+#line 170 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp0_ = self->priv->mux;
+#line 170 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp0_ != NULL) {
+#line 1949 "Tracker.c"
+ ViewCollection* collection = NULL;
+ DataCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ ViewCollection* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ ViewCollection* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ ViewCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 171 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp1_ = core_tracker_get_collection (G_TYPE_CHECK_INSTANCE_CAST (self, CORE_TYPE_TRACKER, CoreTracker));
+#line 171 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_VIEW_COLLECTION) ? ((ViewCollection*) _tmp1_) : NULL;
+#line 171 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ if (_tmp2_ == NULL) {
+#line 171 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 1970 "Tracker.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ collection = _tmp2_;
+#line 172 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp3_ = collection;
+#line 172 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _vala_assert (_tmp3_ != NULL, "collection != null");
+#line 173 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp4_ = collection;
+#line 173 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_parse_name ("items-shown", TYPE_VIEW_COLLECTION, &_tmp5_, NULL, FALSE);
+#line 173 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _core_view_tracker_on_items_shown_view_collection_items_shown, self);
+#line 174 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp6_ = collection;
+#line 174 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_parse_name ("items-hidden", TYPE_VIEW_COLLECTION, &_tmp7_, NULL, FALSE);
+#line 174 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _core_view_tracker_on_items_hidden_view_collection_items_hidden, self);
+#line 175 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp8_ = collection;
+#line 175 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_parse_name ("items-selected", TYPE_VIEW_COLLECTION, &_tmp9_, NULL, FALSE);
+#line 175 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _core_view_tracker_on_items_selected_view_collection_items_selected, self);
+#line 176 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _tmp10_ = collection;
+#line 176 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_parse_name ("items-unselected", TYPE_VIEW_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 176 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _core_view_tracker_on_items_unselected_view_collection_items_unselected, self);
+#line 170 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _data_collection_unref0 (collection);
+#line 2004 "Tracker.c"
+ }
+#line 163 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ _g_object_unref0 (self->priv->mux);
+#line 99 "/home/jens/Source/shotwell/src/core/Tracker.vala"
+ CORE_TRACKER_CLASS (core_view_tracker_parent_class)->finalize (obj);
+#line 2010 "Tracker.c"
+}
+
+
+GType core_view_tracker_get_type (void) {
+ static volatile gsize core_view_tracker_type_id__volatile = 0;
+ if (g_once_init_enter (&core_view_tracker_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CoreViewTrackerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) core_view_tracker_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CoreViewTracker), 0, (GInstanceInitFunc) core_view_tracker_instance_init, NULL };
+ GType core_view_tracker_type_id;
+ core_view_tracker_type_id = g_type_register_static (CORE_TYPE_TRACKER, "CoreViewTracker", &g_define_type_info, 0);
+ g_once_init_leave (&core_view_tracker_type_id__volatile, core_view_tracker_type_id);
+ }
+ return core_view_tracker_type_id__volatile;
+}
+
+
+
diff --git a/src/core/ViewCollection.c b/src/core/ViewCollection.c
new file mode 100644
index 0000000..597091c
--- /dev/null
+++ b/src/core/ViewCollection.c
@@ -0,0 +1,9140 @@
+/* ViewCollection.c generated by valac 0.32.1, the Vala compiler
+ * generated from ViewCollection.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* A ViewCollection holds DataView objects, which are view instances wrapping DataSource objects.*/
+/* Thus, multiple views can exist of a single SourceCollection, each view displaying all or some*/
+/* of that SourceCollection. A view collection also has a notion of order*/
+/* (first/last/next/previous) that can be overridden by child classes. It also understands hidden*/
+/* objects, which are withheld entirely from the collection until they're made visible. Currently*/
+/* the only way to hide objects is with a ViewFilter.*/
+/**/
+/* A ViewCollection may also be locked. When locked, it will not (a) remove hidden items from the*/
+/* collection and (b) remove DataViews representing unlinked DataSources. This allows for the*/
+/* ViewCollection to be "frozen" while manipulating items within it. When the collection is*/
+/* unlocked, all changes are applied at once.*/
+/**/
+/* The default implementation provides a browser which orders the view in the order they're*/
+/* stored in DataCollection, which is not specified.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+typedef struct _ViewCollectionPrivate ViewCollectionPrivate;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR_IMPL (view_collection_monitor_impl_get_type ())
+#define VIEW_COLLECTION_MONITOR_IMPL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR_IMPL, ViewCollectionMonitorImpl))
+#define VIEW_COLLECTION_MONITOR_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR_IMPL, ViewCollectionMonitorImplClass))
+#define VIEW_COLLECTION_IS_MONITOR_IMPL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR_IMPL))
+#define VIEW_COLLECTION_IS_MONITOR_IMPL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR_IMPL))
+#define VIEW_COLLECTION_MONITOR_IMPL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR_IMPL, ViewCollectionMonitorImplClass))
+
+typedef struct _ViewCollectionMonitorImpl ViewCollectionMonitorImpl;
+typedef struct _ViewCollectionMonitorImplClass ViewCollectionMonitorImplClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_DATA_SET (data_set_get_type ())
+#define DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SET, DataSet))
+#define DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SET, DataSetClass))
+#define IS_DATA_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SET))
+#define IS_DATA_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SET))
+#define DATA_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SET, DataSetClass))
+
+typedef struct _DataSet DataSet;
+typedef struct _DataSetClass DataSetClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _data_set_unref0(var) ((var == NULL) ? NULL : (var = (data_set_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+typedef struct _ViewCollectionMonitorPrivate ViewCollectionMonitorPrivate;
+typedef struct _ViewCollectionMonitorImplPrivate ViewCollectionMonitorImplPrivate;
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define VIEW_COLLECTION_TYPE_TOGGLE_LISTS (view_collection_toggle_lists_get_type ())
+#define VIEW_COLLECTION_TOGGLE_LISTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_TOGGLE_LISTS, ViewCollectionToggleLists))
+#define VIEW_COLLECTION_TOGGLE_LISTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_TOGGLE_LISTS, ViewCollectionToggleListsClass))
+#define VIEW_COLLECTION_IS_TOGGLE_LISTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_TOGGLE_LISTS))
+#define VIEW_COLLECTION_IS_TOGGLE_LISTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_TOGGLE_LISTS))
+#define VIEW_COLLECTION_TOGGLE_LISTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_TOGGLE_LISTS, ViewCollectionToggleListsClass))
+
+typedef struct _ViewCollectionToggleLists ViewCollectionToggleLists;
+typedef struct _ViewCollectionToggleListsClass ViewCollectionToggleListsClass;
+typedef struct _ViewCollectionToggleListsPrivate ViewCollectionToggleListsPrivate;
+typedef struct _ViewCollectionParamSpecMonitor ViewCollectionParamSpecMonitor;
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+typedef struct _ParamSpecViewManager ParamSpecViewManager;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _ParamSpecViewFilter ParamSpecViewFilter;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _ViewCollection {
+ DataCollection parent_instance;
+ ViewCollectionPrivate * priv;
+};
+
+struct _ViewCollectionClass {
+ DataCollectionClass parent_class;
+ void (*notify_items_selected_unselected) (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected);
+ void (*notify_selection_group_altered) (ViewCollection* self);
+ void (*notify_item_view_altered) (ViewCollection* self, DataView* view);
+ void (*notify_views_altered) (ViewCollection* self, GeeCollection* views);
+ void (*notify_item_geometry_altered) (ViewCollection* self, DataView* view);
+ void (*notify_geometries_altered) (ViewCollection* self, GeeCollection* views);
+ void (*notify_items_shown) (ViewCollection* self, GeeCollection* shown);
+ void (*notify_items_hidden) (ViewCollection* self, GeeCollection* hidden);
+ void (*notify_items_visibility_changed) (ViewCollection* self, GeeCollection* changed);
+ void (*notify_view_filter_installed) (ViewCollection* self, ViewFilter* filter);
+ void (*notify_view_filter_removed) (ViewCollection* self, ViewFilter* filter);
+ DataView* (*get_first) (ViewCollection* self);
+ DataView* (*get_first_unrejected) (ViewCollection* self);
+ DataView* (*get_last) (ViewCollection* self);
+ DataView* (*get_next) (ViewCollection* self, DataView* view);
+ DataView* (*get_previous) (ViewCollection* self, DataView* view);
+ void (*items_selected) (ViewCollection* self, GeeIterable* selected);
+ void (*items_unselected) (ViewCollection* self, GeeIterable* unselected);
+ void (*items_state_changed) (ViewCollection* self, GeeIterable* changed);
+ void (*selection_group_altered) (ViewCollection* self);
+ void (*items_shown) (ViewCollection* self, GeeCollection* visible);
+ void (*items_hidden) (ViewCollection* self, GeeCollection* hidden);
+ void (*items_visibility_changed) (ViewCollection* self, GeeCollection* changed);
+ void (*item_view_altered) (ViewCollection* self, DataView* view);
+ void (*item_geometry_altered) (ViewCollection* self, DataView* view);
+ void (*views_altered) (ViewCollection* self, GeeCollection* views);
+ void (*geometries_altered) (ViewCollection* self, GeeCollection* views);
+ void (*view_filter_installed) (ViewCollection* self, ViewFilter* filer);
+ void (*view_filter_removed) (ViewCollection* self, ViewFilter* filer);
+};
+
+typedef DataView* (*CreateView) (DataSource* source, void* user_data);
+typedef gboolean (*CreateViewPredicate) (DataSource* source, void* user_data);
+struct _ViewCollectionPrivate {
+ GeeHashMultiMap* monitors;
+ ViewCollection* mirroring;
+ CreateView mirroring_ctor;
+ gpointer mirroring_ctor_target;
+ CreateViewPredicate should_mirror;
+ gpointer should_mirror_target;
+ GeeSet* filters;
+ DataSet* selected;
+ DataSet* visible;
+ GeeHashSet* frozen_views_altered;
+ GeeHashSet* frozen_geometries_altered;
+ GeeHashMap* source_map;
+};
+
+struct _ViewCollectionMonitor {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewCollectionMonitorPrivate * priv;
+};
+
+struct _ViewCollectionMonitorClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewCollectionMonitor *self);
+};
+
+struct _ViewCollectionMonitorImpl {
+ ViewCollectionMonitor parent_instance;
+ ViewCollectionMonitorImplPrivate * priv;
+ ViewCollection* owner;
+ SourceCollection* sources;
+ ViewManager* manager;
+ Alteration* prereq;
+};
+
+struct _ViewCollectionMonitorImplClass {
+ ViewCollectionMonitorClass parent_class;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef gboolean (*MarkedAction) (DataObject* object, GObject* user, void* user_data);
+struct _ViewCollectionToggleLists {
+ GObject parent_instance;
+ ViewCollectionToggleListsPrivate * priv;
+ GeeArrayList* selected;
+ GeeArrayList* unselected;
+};
+
+struct _ViewCollectionToggleListsClass {
+ GObjectClass parent_class;
+};
+
+struct _ViewCollectionParamSpecMonitor {
+ GParamSpec parent_instance;
+};
+
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _ParamSpecViewManager {
+ GParamSpec parent_instance;
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _ParamSpecViewFilter {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer view_collection_parent_class = NULL;
+static gpointer view_collection_monitor_parent_class = NULL;
+static gpointer view_collection_monitor_impl_parent_class = NULL;
+static gpointer view_collection_toggle_lists_parent_class = NULL;
+static gpointer view_manager_parent_class = NULL;
+static gpointer view_filter_parent_class = NULL;
+
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+static GType view_collection_monitor_impl_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer data_set_ref (gpointer instance);
+void data_set_unref (gpointer instance);
+GParamSpec* param_spec_data_set (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_set (GValue* value, gpointer v_object);
+void value_take_data_set (GValue* value, gpointer v_object);
+gpointer value_get_data_set (const GValue* value);
+GType data_set_get_type (void) G_GNUC_CONST;
+#define VIEW_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_VIEW_COLLECTION, ViewCollectionPrivate))
+enum {
+ VIEW_COLLECTION_DUMMY_PROPERTY
+};
+DataSet* data_set_new (void);
+DataSet* data_set_construct (GType object_type);
+ViewCollection* view_collection_new (const gchar* name);
+ViewCollection* view_collection_construct (GType object_type, const gchar* name);
+DataCollection* data_collection_new (const gchar* name);
+DataCollection* data_collection_construct (GType object_type, const gchar* name);
+void view_collection_notify_items_selected_unselected (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected);
+static void view_collection_real_notify_items_selected_unselected (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected);
+void view_collection_notify_selection_group_altered (ViewCollection* self);
+static void view_collection_real_notify_selection_group_altered (ViewCollection* self);
+void view_collection_notify_item_view_altered (ViewCollection* self, DataView* view);
+static void view_collection_real_notify_item_view_altered (ViewCollection* self, DataView* view);
+void view_collection_notify_views_altered (ViewCollection* self, GeeCollection* views);
+static void view_collection_real_notify_views_altered (ViewCollection* self, GeeCollection* views);
+void view_collection_notify_item_geometry_altered (ViewCollection* self, DataView* view);
+static void view_collection_real_notify_item_geometry_altered (ViewCollection* self, DataView* view);
+void view_collection_notify_geometries_altered (ViewCollection* self, GeeCollection* views);
+static void view_collection_real_notify_geometries_altered (ViewCollection* self, GeeCollection* views);
+void view_collection_notify_items_shown (ViewCollection* self, GeeCollection* shown);
+static void view_collection_real_notify_items_shown (ViewCollection* self, GeeCollection* shown);
+void view_collection_notify_items_hidden (ViewCollection* self, GeeCollection* hidden);
+static void view_collection_real_notify_items_hidden (ViewCollection* self, GeeCollection* hidden);
+void view_collection_notify_items_visibility_changed (ViewCollection* self, GeeCollection* changed);
+static void view_collection_real_notify_items_visibility_changed (ViewCollection* self, GeeCollection* changed);
+void view_collection_notify_view_filter_installed (ViewCollection* self, ViewFilter* filter);
+static void view_collection_real_notify_view_filter_installed (ViewCollection* self, ViewFilter* filter);
+void view_collection_notify_view_filter_removed (ViewCollection* self, ViewFilter* filter);
+static void view_collection_real_notify_view_filter_removed (ViewCollection* self, ViewFilter* filter);
+static void view_collection_real_clear (DataCollection* base);
+gchar* data_collection_to_string (DataCollection* self);
+void data_collection_clear (DataCollection* self);
+static void view_collection_real_close (DataCollection* base);
+void view_collection_halt_all_monitoring (ViewCollection* self);
+void view_collection_halt_mirroring (ViewCollection* self);
+static void view_collection_on_view_filter_refresh (ViewCollection* self);
+static void _view_collection_on_view_filter_refresh_view_filter_refresh (ViewFilter* _sender, gpointer self);
+void data_collection_close (DataCollection* self);
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+void data_collection_freeze_notifications (DataCollection* self);
+static ViewCollectionMonitorImpl* view_collection_monitor_impl_new (ViewCollection* owner, SourceCollection* sources, ViewManager* manager, Alteration* prereq);
+static ViewCollectionMonitorImpl* view_collection_monitor_impl_construct (GType object_type, ViewCollection* owner, SourceCollection* sources, ViewManager* manager, Alteration* prereq);
+DataView* view_manager_create_view (ViewManager* self, DataSource* source);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+static void view_collection_add_sources (ViewCollection* self, SourceCollection* sources, GeeIterable* added, ProgressMonitor progress_monitor, void* progress_monitor_target);
+GeeCollection* data_collection_get_all (DataCollection* self);
+void data_collection_thaw_notifications (DataCollection* self);
+void view_collection_halt_monitoring (ViewCollection* self, ViewCollectionMonitor* m);
+void view_collection_mirror (ViewCollection* self, ViewCollection* to_mirror, CreateView mirroring_ctor, void* mirroring_ctor_target, CreateViewPredicate should_mirror, void* should_mirror_target);
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+Comparator data_collection_get_comparator (DataCollection* self, void** result_target);
+ComparatorPredicate data_collection_get_comparator_predicate (DataCollection* self, void** result_target);
+static void view_collection_on_mirror_contents_added (ViewCollection* self, GeeIterable* added);
+static void _view_collection_on_mirror_contents_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self);
+static void view_collection_on_mirror_contents_removed (ViewCollection* self, GeeIterable* removed);
+static void _view_collection_on_mirror_contents_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self);
+void view_collection_copy_into (ViewCollection* self, ViewCollection* to_copy, CreateView copying_ctor, void* copying_ctor_target, CreateViewPredicate should_copy, void* should_copy_target);
+DataSource* data_view_get_source (DataView* self);
+gboolean view_collection_is_view_filter_installed (ViewCollection* self, ViewFilter* f);
+void view_collection_install_view_filter (ViewCollection* self, ViewFilter* f);
+void view_collection_remove_view_filter (ViewCollection* self, ViewFilter* f);
+static void view_collection_filter_altered_items (ViewCollection* self, GeeCollection* views);
+static gboolean view_collection_is_in_filter (ViewCollection* self, DataView* view);
+gboolean view_filter_predicate (ViewFilter* self, DataView* view);
+static gboolean view_collection_real_valid_type (DataCollection* base, DataObject* object);
+static void view_collection_on_sources_added (ViewCollection* self, DataCollection* sources, GeeIterable* added);
+gboolean view_manager_include_in_view (ViewManager* self, DataSource* source);
+static DataView* _view_manager_create_view_create_view (DataSource* source, gpointer self);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+static gboolean view_collection_real_add (DataCollection* base, DataObject* object);
+void data_view_internal_set_visible (DataView* self, gboolean visible);
+GeeCollection* data_collection_get_singleton (DataObject* object);
+static GeeCollection* view_collection_real_add_many (DataCollection* base, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+static void view_collection_on_sources_removed (ViewCollection* self, GeeIterable* removed);
+Marker* data_collection_start_marking (DataCollection* self);
+void marker_mark (Marker* self, DataObject* object);
+gint marker_get_count (Marker* self);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+static void view_collection_on_sources_altered (ViewCollection* self, DataCollection* collection, GeeMap* items);
+gboolean alteration_contains_any (Alteration* self, Alteration* other);
+gboolean view_collection_has_view_for_source (ViewCollection* self, DataSource* source);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+gboolean data_set_contains (DataSet* self, DataObject* object);
+gboolean data_set_resort_object (DataSet* self, DataObject* object, Alteration* alteration);
+static gboolean view_collection_is_visible (ViewCollection* self, DataView* view);
+Marker* data_collection_mark_many (DataCollection* self, GeeCollection* objects);
+void data_collection_notify_ordering_changed (DataCollection* self);
+static void view_collection_real_notify_items_added (DataCollection* base, GeeIterable* added);
+gboolean data_view_is_selected (DataView* self);
+gboolean data_view_is_visible (DataView* self);
+static gboolean view_collection_add_many_visible (ViewCollection* self, GeeCollection* many);
+static void view_collection_add_many_selected (ViewCollection* self, GeeCollection* views);
+void data_collection_notify_items_added (DataCollection* self, GeeIterable* added);
+static void view_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed);
+gboolean data_set_remove (DataSet* self, DataObject* object);
+static void view_collection_remove_many_selected (ViewCollection* self, GeeCollection* views);
+void data_collection_notify_items_removed (DataCollection* self, GeeIterable* removed);
+static void view_collection_show_items (ViewCollection* self, GeeList* to_show);
+static void view_collection_hide_items (ViewCollection* self, GeeList* to_hide);
+static void view_collection_real_items_altered (DataCollection* base, GeeMap* map);
+static void view_collection_real_set_comparator (DataCollection* base, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+void data_set_set_comparator (DataSet* self, Comparator user_comparator, void* user_comparator_target, ComparatorPredicate comparator_predicate, void* comparator_predicate_target);
+static void view_collection_real_reset_comparator (DataCollection* base);
+void data_set_reset_comparator (DataSet* self);
+void data_collection_reset_comparator (DataCollection* self);
+static GeeCollection* view_collection_real_get_all (DataCollection* base);
+GeeList* data_set_get_all (DataSet* self);
+GeeCollection* view_collection_get_all_unfiltered (ViewCollection* self);
+static gint view_collection_real_get_count (DataCollection* base);
+gint data_set_get_count (DataSet* self);
+gint data_collection_get_count (DataCollection* self);
+gint view_collection_get_unfiltered_count (ViewCollection* self);
+static DataObject* view_collection_real_get_at (DataCollection* base, gint index);
+DataObject* data_set_get_at (DataSet* self, gint index);
+DataObject* data_collection_get_at (DataCollection* self, gint index);
+static gint view_collection_real_index_of (DataCollection* base, DataObject* object);
+gint data_set_index_of (DataSet* self, DataObject* object);
+gint data_collection_index_of (DataCollection* self, DataObject* object);
+static gboolean view_collection_real_contains (DataCollection* base, DataObject* object);
+gboolean data_collection_contains (DataCollection* self, DataObject* object);
+DataView* view_collection_get_first (ViewCollection* self);
+static DataView* view_collection_real_get_first (ViewCollection* self);
+DataView* view_collection_get_first_unrejected (ViewCollection* self);
+static DataView* view_collection_real_get_first_unrejected (ViewCollection* self);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+Rating media_source_get_rating (MediaSource* self);
+DataView* view_collection_get_next (ViewCollection* self, DataView* view);
+DataView* view_collection_get_last (ViewCollection* self);
+static DataView* view_collection_real_get_last (ViewCollection* self);
+static DataView* view_collection_real_get_next (ViewCollection* self, DataView* view);
+DataView* view_collection_get_previous (ViewCollection* self, DataView* view);
+static DataView* view_collection_real_get_previous (ViewCollection* self, DataView* view);
+gboolean view_collection_get_immediate_neighbors (ViewCollection* self, DataSource* home, DataSource** next, DataSource** prev, const gchar* type_selector);
+gchar* data_source_get_typename (DataSource* self);
+GeeSet* view_collection_get_extended_neighbors (ViewCollection* self, DataSource* home, const gchar* typename);
+gboolean data_set_add_many (DataSet* self, GeeCollection* objects);
+gboolean data_set_remove_many (DataSet* self, GeeCollection* objects);
+void view_collection_select_marked (ViewCollection* self, Marker* marker);
+void data_collection_act_on_marked (DataCollection* self, Marker* m, MarkedAction action, void* action_target, ProgressMonitor monitor, void* monitor_target, GObject* user);
+static gboolean view_collection_select_item (ViewCollection* self, DataObject* object, GObject* user);
+static gboolean _view_collection_select_item_marked_action (DataObject* object, GObject* user, gpointer self);
+void view_collection_select_all (ViewCollection* self);
+void marker_mark_all (Marker* self);
+void data_view_internal_set_selected (DataView* self, gboolean selected);
+void view_collection_unselect_marked (ViewCollection* self, Marker* marker);
+static gboolean view_collection_unselect_item (ViewCollection* self, DataObject* object, GObject* user);
+static gboolean _view_collection_unselect_item_marked_action (DataObject* object, GObject* user, gpointer self);
+void view_collection_unselect_all (ViewCollection* self);
+void marker_mark_many (Marker* self, GeeCollection* list);
+GeeList* view_collection_get_selected (ViewCollection* self);
+void view_collection_unselect_all_but (ViewCollection* self, DataView* exception);
+void view_collection_unselect_and_select_marked (ViewCollection* self, Marker* unselect, Marker* select);
+void view_collection_toggle_marked (ViewCollection* self, Marker* marker);
+static GType view_collection_toggle_lists_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static ViewCollectionToggleLists* view_collection_toggle_lists_new (void);
+static ViewCollectionToggleLists* view_collection_toggle_lists_construct (GType object_type);
+static gboolean view_collection_toggle_item (ViewCollection* self, DataObject* object, GObject* user);
+static gboolean _view_collection_toggle_item_marked_action (DataObject* object, GObject* user, gpointer self);
+gboolean data_view_internal_toggle (DataView* self);
+gint view_collection_get_selected_count (ViewCollection* self);
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+DataSet* data_collection_get_dataset_copy (DataCollection* self);
+gboolean view_collection_has_view_for_source_with_filtered (ViewCollection* self, DataSource* source);
+DataView* view_collection_get_view_for_source_filtered (ViewCollection* self, DataSource* source);
+GeeCollection* view_collection_get_sources (ViewCollection* self);
+gboolean view_collection_has_source_of_type (ViewCollection* self, GType t);
+gint view_collection_get_sources_of_type_count (ViewCollection* self, GType t);
+GeeList* view_collection_get_sources_of_type (ViewCollection* self, GType t);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+DataSource* view_collection_get_selected_source_at (ViewCollection* self, gint index);
+GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t);
+gint view_collection_index_of_source (ViewCollection* self, DataSource* source);
+void view_collection_internal_notify_view_altered (ViewCollection* self, DataView* view);
+gboolean data_collection_are_notifications_frozen (DataCollection* self);
+void view_collection_internal_notify_geometry_altered (ViewCollection* self, DataView* view);
+static void view_collection_real_notify_thawed (DataCollection* base);
+void data_collection_notify_thawed (DataCollection* self);
+gboolean view_collection_are_items_filtered_out (ViewCollection* self);
+static void view_collection_real_items_selected (ViewCollection* self, GeeIterable* selected);
+static void view_collection_real_items_unselected (ViewCollection* self, GeeIterable* unselected);
+static void view_collection_real_items_state_changed (ViewCollection* self, GeeIterable* changed);
+static void view_collection_real_selection_group_altered (ViewCollection* self);
+static void view_collection_real_items_shown (ViewCollection* self, GeeCollection* visible);
+static void view_collection_real_items_hidden (ViewCollection* self, GeeCollection* hidden);
+static void view_collection_real_items_visibility_changed (ViewCollection* self, GeeCollection* changed);
+static void view_collection_real_item_view_altered (ViewCollection* self, DataView* view);
+static void view_collection_real_item_geometry_altered (ViewCollection* self, DataView* view);
+static void view_collection_real_views_altered (ViewCollection* self, GeeCollection* views);
+static void view_collection_real_geometries_altered (ViewCollection* self, GeeCollection* views);
+static void view_collection_real_view_filter_installed (ViewCollection* self, ViewFilter* filer);
+static void g_cclosure_user_marshal_VOID__VIEW_FILTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void view_collection_real_view_filter_removed (ViewCollection* self, ViewFilter* filer);
+enum {
+ VIEW_COLLECTION_MONITOR_DUMMY_PROPERTY
+};
+ViewCollectionMonitor* view_collection_monitor_new (void);
+ViewCollectionMonitor* view_collection_monitor_construct (GType object_type);
+static void view_collection_monitor_finalize (ViewCollectionMonitor* obj);
+enum {
+ VIEW_COLLECTION_MONITOR_IMPL_DUMMY_PROPERTY
+};
+static void _view_collection_on_sources_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self);
+static void _view_collection_on_sources_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self);
+static void _view_collection_on_sources_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void view_collection_monitor_impl_finalize (ViewCollectionMonitor* obj);
+enum {
+ VIEW_COLLECTION_TOGGLE_LISTS_DUMMY_PROPERTY
+};
+static void view_collection_toggle_lists_finalize (GObject* obj);
+static void view_collection_finalize (DataCollection* obj);
+enum {
+ VIEW_MANAGER_DUMMY_PROPERTY
+};
+static gboolean view_manager_real_include_in_view (ViewManager* self, DataSource* source);
+static DataView* view_manager_real_create_view (ViewManager* self, DataSource* source);
+ViewManager* view_manager_construct (GType object_type);
+static void view_manager_finalize (ViewManager* obj);
+enum {
+ VIEW_FILTER_DUMMY_PROPERTY
+};
+static gboolean view_filter_real_predicate (ViewFilter* self, DataView* view);
+ViewFilter* view_filter_construct (GType object_type);
+static void view_filter_real_refresh (ViewFilter* self);
+static void view_filter_finalize (ViewFilter* obj);
+
+
+ViewCollection* view_collection_construct (GType object_type, const gchar* name) {
+ ViewCollection* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 126 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = name;
+#line 126 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = (ViewCollection*) data_collection_construct (object_type, _tmp0_);
+#line 125 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self;
+#line 711 "ViewCollection.c"
+}
+
+
+ViewCollection* view_collection_new (const gchar* name) {
+#line 125 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return view_collection_construct (TYPE_VIEW_COLLECTION, name);
+#line 718 "ViewCollection.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 725 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_items_selected_unselected (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected) {
+ gboolean _tmp0_ = FALSE;
+ GeeCollection* _tmp1_ = NULL;
+ gboolean has_selected = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GeeCollection* _tmp6_ = NULL;
+ gboolean has_unselected = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ GeeCollection* sum = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ GeeCollection* _tmp32_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail ((selected == NULL) || GEE_IS_COLLECTION (selected));
+#line 129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail ((unselected == NULL) || GEE_IS_COLLECTION (unselected));
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = selected;
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 750 "ViewCollection.c"
+ GeeCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = selected;
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_collection_get_size (_tmp2_);
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _tmp3_;
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp4_ > 0;
+#line 762 "ViewCollection.c"
+ } else {
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = FALSE;
+#line 766 "ViewCollection.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ has_selected = _tmp0_;
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = unselected;
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp6_ != NULL) {
+#line 774 "ViewCollection.c"
+ GeeCollection* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = unselected;
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = gee_collection_get_size (_tmp7_);
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = _tmp8_;
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp9_ > 0;
+#line 786 "ViewCollection.c"
+ } else {
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = FALSE;
+#line 790 "ViewCollection.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ has_unselected = _tmp5_;
+#line 134 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = has_selected;
+#line 134 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp10_) {
+#line 798 "ViewCollection.c"
+ GeeCollection* _tmp11_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = selected;
+#line 135 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "items-selected", G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 804 "ViewCollection.c"
+ }
+#line 137 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = has_unselected;
+#line 137 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp12_) {
+#line 810 "ViewCollection.c"
+ GeeCollection* _tmp13_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = unselected;
+#line 138 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "items-unselected", G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 816 "ViewCollection.c"
+ }
+#line 141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = has_selected;
+#line 141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_) {
+#line 822 "ViewCollection.c"
+ gboolean _tmp16_ = FALSE;
+#line 141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = has_unselected;
+#line 141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = !_tmp16_;
+#line 828 "ViewCollection.c"
+ } else {
+#line 141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = FALSE;
+#line 832 "ViewCollection.c"
+ }
+#line 141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp14_) {
+#line 836 "ViewCollection.c"
+ GeeCollection* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = selected;
+#line 142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (sum);
+#line 142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sum = _tmp18_;
+#line 847 "ViewCollection.c"
+ } else {
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+#line 143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = has_selected;
+#line 143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp20_) {
+#line 855 "ViewCollection.c"
+ gboolean _tmp21_ = FALSE;
+#line 143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = has_unselected;
+#line 143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = _tmp21_;
+#line 861 "ViewCollection.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = FALSE;
+#line 865 "ViewCollection.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp19_) {
+#line 869 "ViewCollection.c"
+ GeeCollection* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = unselected;
+#line 144 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = _g_object_ref0 (_tmp22_);
+#line 144 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (sum);
+#line 144 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sum = _tmp23_;
+#line 880 "ViewCollection.c"
+ } else {
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+#line 145 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = has_selected;
+#line 145 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp25_) {
+#line 888 "ViewCollection.c"
+ gboolean _tmp26_ = FALSE;
+#line 145 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = has_unselected;
+#line 145 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = !_tmp26_;
+#line 894 "ViewCollection.c"
+ } else {
+#line 145 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = FALSE;
+#line 898 "ViewCollection.c"
+ }
+#line 145 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp24_) {
+#line 146 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (sum);
+#line 146 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sum = NULL;
+#line 906 "ViewCollection.c"
+ } else {
+ GeeHashSet* _tmp27_ = NULL;
+ GeeCollection* _tmp28_ = NULL;
+ GeeCollection* _tmp29_ = NULL;
+ GeeCollection* _tmp30_ = NULL;
+ GeeCollection* _tmp31_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = gee_hash_set_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 148 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (sum);
+#line 148 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sum = G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 149 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = sum;
+#line 149 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = selected;
+#line 149 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add_all (_tmp28_, _tmp29_);
+#line 150 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = sum;
+#line 150 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = unselected;
+#line 150 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add_all (_tmp30_, _tmp31_);
+#line 931 "ViewCollection.c"
+ }
+ }
+ }
+#line 153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = sum;
+#line 153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp32_ != NULL) {
+#line 939 "ViewCollection.c"
+ GeeCollection* _tmp33_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp33_ = sum;
+#line 154 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "items-state-changed", G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 155 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_selection_group_altered (self);
+#line 947 "ViewCollection.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (sum);
+#line 951 "ViewCollection.c"
+}
+
+
+void view_collection_notify_items_selected_unselected (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected) {
+#line 129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_items_selected_unselected (self, selected, unselected);
+#line 960 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_selection_group_altered (ViewCollection* self) {
+#line 160 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "selection-group-altered");
+#line 967 "ViewCollection.c"
+}
+
+
+void view_collection_notify_selection_group_altered (ViewCollection* self) {
+#line 159 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 159 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_selection_group_altered (self);
+#line 976 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_item_view_altered (ViewCollection* self, DataView* view) {
+ DataView* _tmp0_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 164 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = view;
+#line 164 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "item-view-altered", _tmp0_);
+#line 988 "ViewCollection.c"
+}
+
+
+void view_collection_notify_item_view_altered (ViewCollection* self, DataView* view) {
+#line 163 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 163 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_item_view_altered (self, view);
+#line 997 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_views_altered (ViewCollection* self, GeeCollection* views) {
+ GeeCollection* _tmp0_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (views));
+#line 168 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = views;
+#line 168 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "views-altered", _tmp0_);
+#line 1009 "ViewCollection.c"
+}
+
+
+void view_collection_notify_views_altered (ViewCollection* self, GeeCollection* views) {
+#line 167 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 167 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_views_altered (self, views);
+#line 1018 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_item_geometry_altered (ViewCollection* self, DataView* view) {
+ DataView* _tmp0_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 172 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = view;
+#line 172 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "item-geometry-altered", _tmp0_);
+#line 1030 "ViewCollection.c"
+}
+
+
+void view_collection_notify_item_geometry_altered (ViewCollection* self, DataView* view) {
+#line 171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_item_geometry_altered (self, view);
+#line 1039 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_geometries_altered (ViewCollection* self, GeeCollection* views) {
+ GeeCollection* _tmp0_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (views));
+#line 176 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = views;
+#line 176 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "geometries-altered", _tmp0_);
+#line 1051 "ViewCollection.c"
+}
+
+
+void view_collection_notify_geometries_altered (ViewCollection* self, GeeCollection* views) {
+#line 175 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 175 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_geometries_altered (self, views);
+#line 1060 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_items_shown (ViewCollection* self, GeeCollection* shown) {
+ GeeCollection* _tmp0_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (shown));
+#line 180 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = shown;
+#line 180 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "items-shown", _tmp0_);
+#line 1072 "ViewCollection.c"
+}
+
+
+void view_collection_notify_items_shown (ViewCollection* self, GeeCollection* shown) {
+#line 179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_items_shown (self, shown);
+#line 1081 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_items_hidden (ViewCollection* self, GeeCollection* hidden) {
+ GeeCollection* _tmp0_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (hidden));
+#line 184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = hidden;
+#line 184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "items-hidden", _tmp0_);
+#line 1093 "ViewCollection.c"
+}
+
+
+void view_collection_notify_items_hidden (ViewCollection* self, GeeCollection* hidden) {
+#line 183 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 183 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_items_hidden (self, hidden);
+#line 1102 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_items_visibility_changed (ViewCollection* self, GeeCollection* changed) {
+ GeeCollection* _tmp0_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (changed));
+#line 188 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = changed;
+#line 188 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "items-visibility-changed", _tmp0_);
+#line 1114 "ViewCollection.c"
+}
+
+
+void view_collection_notify_items_visibility_changed (ViewCollection* self, GeeCollection* changed) {
+#line 187 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 187 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_items_visibility_changed (self, changed);
+#line 1123 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_view_filter_installed (ViewCollection* self, ViewFilter* filter) {
+ ViewFilter* _tmp0_ = NULL;
+#line 191 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_FILTER (filter));
+#line 192 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = filter;
+#line 192 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "view-filter-installed", _tmp0_);
+#line 1135 "ViewCollection.c"
+}
+
+
+void view_collection_notify_view_filter_installed (ViewCollection* self, ViewFilter* filter) {
+#line 191 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 191 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_view_filter_installed (self, filter);
+#line 1144 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_view_filter_removed (ViewCollection* self, ViewFilter* filter) {
+ ViewFilter* _tmp0_ = NULL;
+#line 195 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_FILTER (filter));
+#line 196 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = filter;
+#line 196 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_emit_by_name (self, "view-filter-removed", _tmp0_);
+#line 1156 "ViewCollection.c"
+}
+
+
+void view_collection_notify_view_filter_removed (ViewCollection* self, ViewFilter* filter) {
+#line 195 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 195 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_GET_CLASS (self)->notify_view_filter_removed (self, filter);
+#line 1165 "ViewCollection.c"
+}
+
+
+static void view_collection_real_clear (DataCollection* base) {
+ ViewCollection * self;
+ gboolean _tmp0_ = FALSE;
+ GeeHashMultiMap* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 199 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->monitors;
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_multi_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MULTI_MAP, GeeMultiMap));
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp3_ > 0) {
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = TRUE;
+#line 1187 "ViewCollection.c"
+ } else {
+ ViewCollection* _tmp4_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = self->priv->mirroring;
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp4_ != NULL;
+#line 1194 "ViewCollection.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp0_) {
+#line 1198 "ViewCollection.c"
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = data_collection_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 203 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = _tmp5_;
+#line 203 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_warning ("ViewCollection.vala:203: Cannot clear %s: monitoring or mirroring in e" \
+"ffect", _tmp6_);
+#line 203 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_free0 (_tmp6_);
+#line 205 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return;
+#line 1211 "ViewCollection.c"
+ }
+#line 208 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->clear (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1215 "ViewCollection.c"
+}
+
+
+static void _view_collection_on_view_filter_refresh_view_filter_refresh (ViewFilter* _sender, gpointer self) {
+#line 215 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_view_filter_refresh ((ViewCollection*) self);
+#line 1222 "ViewCollection.c"
+}
+
+
+static void view_collection_real_close (DataCollection* base) {
+ ViewCollection * self;
+ GeeSet* _tmp8_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 212 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_halt_all_monitoring (self);
+#line 213 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_halt_mirroring (self);
+#line 1235 "ViewCollection.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->filters;
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _f_it = _tmp1_;
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 1248 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ ViewFilter* f = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ ViewFilter* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _f_it;
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 1264 "ViewCollection.c"
+ }
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _f_it;
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ f = (ViewFilter*) _tmp5_;
+#line 215 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = f;
+#line 215 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_parse_name ("refresh", TYPE_VIEW_FILTER, &_tmp7_, NULL, FALSE);
+#line 215 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _view_collection_on_view_filter_refresh_view_filter_refresh, self);
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_filter_unref0 (f);
+#line 1280 "ViewCollection.c"
+ }
+#line 214 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_f_it);
+#line 1284 "ViewCollection.c"
+ }
+#line 216 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = self->priv->filters;
+#line 216 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 218 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->close (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1292 "ViewCollection.c"
+}
+
+
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target) {
+ ViewCollectionMonitor* result = NULL;
+ ViewCollectionMonitorImpl* monitor = NULL;
+ SourceCollection* _tmp0_ = NULL;
+ ViewManager* _tmp1_ = NULL;
+ Alteration* _tmp2_ = NULL;
+ ViewCollectionMonitorImpl* _tmp3_ = NULL;
+ GeeHashMultiMap* _tmp4_ = NULL;
+ SourceCollection* _tmp5_ = NULL;
+ ViewCollectionMonitorImpl* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeCollection* _tmp8_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 221 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
+#line 221 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_MANAGER (manager), NULL);
+#line 221 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail ((prereq == NULL) || IS_ALTERATION (prereq), NULL);
+#line 221 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail ((initial == NULL) || GEE_IS_COLLECTION (initial), NULL);
+#line 225 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_halt_mirroring (self);
+#line 227 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_freeze_notifications (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = sources;
+#line 230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = manager;
+#line 230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = prereq;
+#line 230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = view_collection_monitor_impl_new (self, _tmp0_, _tmp1_, _tmp2_);
+#line 230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ monitor = _tmp3_;
+#line 231 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = self->priv->monitors;
+#line 231 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = sources;
+#line 231 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = monitor;
+#line 231 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_multi_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp5_, _tmp6_);
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = initial;
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp8_ != NULL) {
+#line 1344 "ViewCollection.c"
+ GeeCollection* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = initial;
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = gee_collection_get_size (_tmp9_);
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _tmp11_ > 0;
+#line 1356 "ViewCollection.c"
+ } else {
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = FALSE;
+#line 1360 "ViewCollection.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp7_) {
+#line 1364 "ViewCollection.c"
+ GeeArrayList* created_views = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ GeeArrayList* _tmp24_ = NULL;
+ ProgressMonitor _tmp25_ = NULL;
+ void* _tmp25__target = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+#line 235 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 235 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ created_views = _tmp12_;
+#line 1376 "ViewCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = initial;
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _source_it = _tmp14_;
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 1389 "ViewCollection.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ GeeArrayList* _tmp19_ = NULL;
+ ViewManager* _tmp20_ = NULL;
+ DataSource* _tmp21_ = NULL;
+ DataView* _tmp22_ = NULL;
+ DataView* _tmp23_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = _source_it;
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp16_) {
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 1408 "ViewCollection.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = _source_it;
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = (DataSource*) _tmp18_;
+#line 237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = created_views;
+#line 237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = manager;
+#line 237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = source;
+#line 237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = view_manager_create_view (_tmp20_, _tmp21_);
+#line 237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = _tmp22_;
+#line 237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp23_);
+#line 237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp23_);
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 1432 "ViewCollection.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 1436 "ViewCollection.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = created_views;
+#line 239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = progress_monitor;
+#line 239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25__target = progress_monitor_target;
+#line 239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_, _tmp25__target);
+#line 239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = _tmp26_;
+#line 239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp27_);
+#line 233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (created_views);
+#line 1452 "ViewCollection.c"
+ } else {
+ SourceCollection* _tmp28_ = NULL;
+ SourceCollection* _tmp29_ = NULL;
+ GeeCollection* _tmp30_ = NULL;
+ GeeIterable* _tmp31_ = NULL;
+ ProgressMonitor _tmp32_ = NULL;
+ void* _tmp32__target = NULL;
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = sources;
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = sources;
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_COLLECTION, DataCollection));
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ITERABLE, GeeIterable);
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = progress_monitor;
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32__target = progress_monitor_target;
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_add_sources (self, _tmp28_, _tmp31_, _tmp32_, _tmp32__target);
+#line 242 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp31_);
+#line 1476 "ViewCollection.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_thaw_notifications (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 247 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (monitor, VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor);
+#line 247 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 1484 "ViewCollection.c"
+}
+
+
+static gpointer _view_collection_monitor_ref0 (gpointer self) {
+#line 251 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self ? view_collection_monitor_ref (self) : NULL;
+#line 1491 "ViewCollection.c"
+}
+
+
+void view_collection_halt_monitoring (ViewCollection* self, ViewCollectionMonitor* m) {
+ ViewCollectionMonitorImpl* monitor = NULL;
+ ViewCollectionMonitor* _tmp0_ = NULL;
+ ViewCollectionMonitorImpl* _tmp1_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMultiMap* _tmp2_ = NULL;
+ SourceCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 250 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 250 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (VIEW_COLLECTION_IS_MONITOR (m));
+#line 251 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = m;
+#line 251 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = _view_collection_monitor_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, VIEW_COLLECTION_TYPE_MONITOR_IMPL, ViewCollectionMonitorImpl));
+#line 251 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ monitor = _tmp1_;
+#line 253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->monitors;
+#line 253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = monitor->sources;
+#line 253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_multi_map_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp3_, monitor);
+#line 253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ removed = _tmp4_;
+#line 254 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (removed, "removed");
+#line 250 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor);
+#line 1525 "ViewCollection.c"
+}
+
+
+void view_collection_halt_all_monitoring (ViewCollection* self) {
+ GeeHashMultiMap* _tmp0_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 258 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->monitors;
+#line 258 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_multi_map_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MULTI_MAP, GeeMultiMap));
+#line 1537 "ViewCollection.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 267 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 1544 "ViewCollection.c"
+}
+
+
+static void _view_collection_on_mirror_contents_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self) {
+#line 275 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_mirror_contents_added ((ViewCollection*) self, added);
+#line 1551 "ViewCollection.c"
+}
+
+
+static void _view_collection_on_mirror_contents_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self) {
+#line 276 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_mirror_contents_removed ((ViewCollection*) self, removed);
+#line 1558 "ViewCollection.c"
+}
+
+
+void view_collection_mirror (ViewCollection* self, ViewCollection* to_mirror, CreateView mirroring_ctor, void* mirroring_ctor_target, CreateViewPredicate should_mirror, void* should_mirror_target) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ CreateView _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ CreateViewPredicate _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ void* _tmp5_ = NULL;
+ Comparator _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ void* _tmp8_ = NULL;
+ ComparatorPredicate _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 261 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (to_mirror));
+#line 263 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_halt_mirroring (self);
+#line 264 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_halt_all_monitoring (self);
+#line 265 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 267 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = to_mirror;
+#line 267 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 267 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_collection_unref0 (self->priv->mirroring);
+#line 267 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->mirroring = _tmp1_;
+#line 268 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = mirroring_ctor;
+#line 268 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2__target = mirroring_ctor_target;
+#line 268 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->mirroring_ctor = _tmp2_;
+#line 268 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->mirroring_ctor_target = _tmp2__target;
+#line 269 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = should_mirror;
+#line 269 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3__target = should_mirror_target;
+#line 269 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->should_mirror = _tmp3_;
+#line 269 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->should_mirror_target = _tmp3__target;
+#line 270 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = to_mirror;
+#line 270 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = data_collection_get_comparator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection), &_tmp5_);
+#line 270 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = to_mirror;
+#line 270 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = data_collection_get_comparator_predicate (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection), &_tmp8_);
+#line 270 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp6_, _tmp5_, _tmp9_, _tmp8_);
+#line 273 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = self->priv->mirroring;
+#line 273 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection));
+#line 273 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = _tmp11_;
+#line 273 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_mirror_contents_added (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 273 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp12_);
+#line 275 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = self->priv->mirroring;
+#line 275 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), "items-added", (GCallback) _view_collection_on_mirror_contents_added_data_collection_items_added, self);
+#line 276 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = self->priv->mirroring;
+#line 276 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection), "items-removed", (GCallback) _view_collection_on_mirror_contents_removed_data_collection_items_removed, self);
+#line 1642 "ViewCollection.c"
+}
+
+
+void view_collection_halt_mirroring (ViewCollection* self) {
+ ViewCollection* _tmp0_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 280 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->mirroring;
+#line 280 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp0_ != NULL) {
+#line 1654 "ViewCollection.c"
+ ViewCollection* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ ViewCollection* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+#line 281 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->mirroring;
+#line 281 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_parse_name ("items-added", TYPE_DATA_COLLECTION, &_tmp2_, NULL, FALSE);
+#line 281 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _view_collection_on_mirror_contents_added_data_collection_items_added, self);
+#line 282 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = self->priv->mirroring;
+#line 282 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_parse_name ("items-removed", TYPE_DATA_COLLECTION, &_tmp4_, NULL, FALSE);
+#line 282 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _view_collection_on_mirror_contents_removed_data_collection_items_removed, self);
+#line 1671 "ViewCollection.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_collection_unref0 (self->priv->mirroring);
+#line 285 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->mirroring = NULL;
+#line 1677 "ViewCollection.c"
+}
+
+
+void view_collection_copy_into (ViewCollection* self, ViewCollection* to_copy, CreateView copying_ctor, void* copying_ctor_target, CreateViewPredicate should_copy, void* should_copy_target) {
+ GeeArrayList* copy_view = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp25_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 288 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (to_copy));
+#line 291 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_OBJECT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 291 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ copy_view = _tmp0_;
+#line 1695 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = to_copy;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp5_;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 1719 "ViewCollection.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ DataView* view = NULL;
+ DataObject* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ CreateViewPredicate _tmp12_ = NULL;
+ void* _tmp12__target = NULL;
+ DataView* _tmp13_ = NULL;
+ DataSource* _tmp14_ = NULL;
+ DataSource* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = _object_it;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp7_) {
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 1743 "ViewCollection.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = _object_it;
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp9_;
+#line 293 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = object;
+#line 293 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_VIEW, DataView));
+#line 293 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp11_;
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = should_copy;
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12__target = should_copy_target;
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = view;
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = data_view_get_source (_tmp13_);
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = _tmp14_;
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = _tmp12_ (_tmp15_, _tmp12__target);
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = _tmp16_;
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp15_);
+#line 294 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp17_) {
+#line 1775 "ViewCollection.c"
+ GeeArrayList* _tmp18_ = NULL;
+ CreateView _tmp19_ = NULL;
+ void* _tmp19__target = NULL;
+ DataView* _tmp20_ = NULL;
+ DataSource* _tmp21_ = NULL;
+ DataSource* _tmp22_ = NULL;
+ DataView* _tmp23_ = NULL;
+ DataView* _tmp24_ = NULL;
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = copy_view;
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = copying_ctor;
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19__target = copying_ctor_target;
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = view;
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = data_view_get_source (_tmp20_);
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = _tmp21_;
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = _tmp19_ (_tmp22_, _tmp19__target);
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = _tmp23_;
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_OBJECT, DataObject));
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp24_);
+#line 295 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1806 "ViewCollection.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 1812 "ViewCollection.c"
+ }
+#line 292 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 1816 "ViewCollection.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = copy_view;
+#line 298 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 298 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = _tmp26_;
+#line 298 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp27_);
+#line 288 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (copy_view);
+#line 1828 "ViewCollection.c"
+}
+
+
+gboolean view_collection_is_view_filter_installed (ViewCollection* self, ViewFilter* f) {
+ gboolean result = FALSE;
+ GeeSet* _tmp0_ = NULL;
+ ViewFilter* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 301 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 301 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_FILTER (f), FALSE);
+#line 302 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->filters;
+#line 302 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = f;
+#line 302 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 302 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp2_;
+#line 302 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 1851 "ViewCollection.c"
+}
+
+
+void view_collection_install_view_filter (ViewCollection* self, ViewFilter* f) {
+ ViewFilter* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeSet* _tmp2_ = NULL;
+ ViewFilter* _tmp3_ = NULL;
+ ViewFilter* _tmp4_ = NULL;
+ ViewFilter* _tmp5_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 305 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_FILTER (f));
+#line 306 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = f;
+#line 306 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view_collection_is_view_filter_installed (self, _tmp0_);
+#line 306 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_) {
+#line 307 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return;
+#line 1874 "ViewCollection.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->filters;
+#line 309 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = f;
+#line 309 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), _tmp3_);
+#line 310 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = f;
+#line 310 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_connect (_tmp4_, "refresh", (GCallback) _view_collection_on_view_filter_refresh_view_filter_refresh, self);
+#line 313 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_view_filter_refresh (self);
+#line 316 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = f;
+#line 316 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_view_filter_installed (self, _tmp5_);
+#line 1892 "ViewCollection.c"
+}
+
+
+void view_collection_remove_view_filter (ViewCollection* self, ViewFilter* f) {
+ ViewFilter* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeSet* _tmp2_ = NULL;
+ ViewFilter* _tmp3_ = NULL;
+ ViewFilter* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ ViewFilter* _tmp6_ = NULL;
+#line 319 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 319 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_FILTER (f));
+#line 320 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = f;
+#line 320 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view_collection_is_view_filter_installed (self, _tmp0_);
+#line 320 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp1_) {
+#line 321 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return;
+#line 1916 "ViewCollection.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->filters;
+#line 323 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = f;
+#line 323 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), _tmp3_);
+#line 324 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = f;
+#line 324 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_parse_name ("refresh", TYPE_VIEW_FILTER, &_tmp5_, NULL, FALSE);
+#line 324 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _view_collection_on_view_filter_refresh_view_filter_refresh, self);
+#line 327 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_view_filter_refresh (self);
+#line 330 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = f;
+#line 330 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_view_filter_removed (self, _tmp6_);
+#line 1936 "ViewCollection.c"
+}
+
+
+static void view_collection_on_view_filter_refresh (ViewCollection* self) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 334 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_all (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 334 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 334 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_filter_altered_items (self, _tmp1_);
+#line 334 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1953 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_is_in_filter (ViewCollection* self, DataView* view) {
+ gboolean result = FALSE;
+#line 338 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 338 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 1963 "ViewCollection.c"
+ {
+ GeeIterator* _f_it = NULL;
+ GeeSet* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->filters;
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _f_it = _tmp1_;
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 1976 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ ViewFilter* f = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ ViewFilter* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _f_it;
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 1993 "ViewCollection.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _f_it;
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ f = (ViewFilter*) _tmp5_;
+#line 340 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = f;
+#line 340 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = view;
+#line 340 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = view_filter_predicate (_tmp6_, _tmp7_);
+#line 340 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp8_) {
+#line 341 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = FALSE;
+#line 341 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_filter_unref0 (f);
+#line 341 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_f_it);
+#line 341 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 2017 "ViewCollection.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_filter_unref0 (f);
+#line 2021 "ViewCollection.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_f_it);
+#line 2025 "ViewCollection.c"
+ }
+#line 343 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 343 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 2031 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_real_valid_type (DataCollection* base, DataObject* object) {
+ ViewCollection * self;
+ gboolean result = FALSE;
+ DataObject* _tmp0_ = NULL;
+#line 346 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 346 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 347 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = object;
+#line 347 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_DATA_VIEW);
+#line 347 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 2049 "ViewCollection.c"
+}
+
+
+static void view_collection_on_sources_added (ViewCollection* self, DataCollection* sources, GeeIterable* added) {
+ DataCollection* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+#line 350 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 350 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (sources));
+#line 350 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 351 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = sources;
+#line 351 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = added;
+#line 351 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_add_sources (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp1_, NULL, NULL);
+#line 2068 "ViewCollection.c"
+}
+
+
+static DataView* _view_manager_create_view_create_view (DataSource* source, gpointer self) {
+ DataView* result;
+ result = view_manager_create_view ((ViewManager*) self, source);
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 2077 "ViewCollection.c"
+}
+
+
+static void view_collection_add_sources (ViewCollection* self, SourceCollection* sources, GeeIterable* added, ProgressMonitor progress_monitor, void* progress_monitor_target) {
+ DataView* created_view = NULL;
+ GeeArrayList* created_views = NULL;
+ DataView* _tmp37_ = NULL;
+#line 354 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 354 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_SOURCE_COLLECTION (sources));
+#line 354 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 358 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ created_view = NULL;
+#line 359 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ created_views = NULL;
+#line 2095 "ViewCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = added;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _source_it = _tmp1_;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 2108 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ CreateView factory = NULL;
+ void* factory_target = NULL;
+ GDestroyNotify factory_target_destroy_notify = NULL;
+ CreateView _tmp22_ = NULL;
+ void* _tmp22__target = NULL;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _source_it;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2127 "ViewCollection.c"
+ }
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _source_it;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = (DataSource*) _tmp5_;
+#line 361 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory = NULL;
+#line 361 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target = NULL;
+#line 361 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target_destroy_notify = NULL;
+#line 2141 "ViewCollection.c"
+ {
+ GeeIterator* _monitor_it = NULL;
+ GeeHashMultiMap* _tmp6_ = NULL;
+ SourceCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = self->priv->monitors;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = sources;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = gee_multi_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_MULTI_MAP, GeeMultiMap), _tmp7_);
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = _tmp8_;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp9_);
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _monitor_it = _tmp11_;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 2168 "ViewCollection.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ ViewCollectionMonitorImpl* monitor = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ ViewCollectionMonitorImpl* _tmp16_ = NULL;
+ ViewManager* _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = _monitor_it;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp13_) {
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2186 "ViewCollection.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = _monitor_it;
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ monitor = (ViewCollectionMonitorImpl*) _tmp15_;
+#line 363 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = monitor;
+#line 363 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = _tmp16_->manager;
+#line 363 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = source;
+#line 363 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = view_manager_include_in_view (_tmp17_, _tmp18_);
+#line 363 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp19_) {
+#line 2204 "ViewCollection.c"
+ ViewCollectionMonitorImpl* _tmp20_ = NULL;
+ ViewManager* _tmp21_ = NULL;
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = monitor;
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = _tmp20_->manager;
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ (factory_target_destroy_notify == NULL) ? NULL : (factory_target_destroy_notify (factory_target), NULL);
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory = NULL;
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target = NULL;
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target_destroy_notify = NULL;
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory = _view_manager_create_view_create_view;
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target = view_manager_ref (_tmp21_);
+#line 364 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target_destroy_notify = view_manager_unref;
+#line 366 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor);
+#line 366 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2229 "ViewCollection.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor);
+#line 2233 "ViewCollection.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_monitor_it);
+#line 2237 "ViewCollection.c"
+ }
+#line 370 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = factory;
+#line 370 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22__target = factory_target;
+#line 370 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp22_ != NULL) {
+#line 2245 "ViewCollection.c"
+ DataView* new_view = NULL;
+ CreateView _tmp23_ = NULL;
+ void* _tmp23__target = NULL;
+ DataSource* _tmp24_ = NULL;
+ DataView* _tmp25_ = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = factory;
+#line 371 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23__target = factory_target;
+#line 371 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = source;
+#line 371 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = _tmp23_ (_tmp24_, _tmp23__target);
+#line 371 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ new_view = _tmp25_;
+#line 375 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = created_views;
+#line 375 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp26_ != NULL) {
+#line 2266 "ViewCollection.c"
+ GeeArrayList* _tmp27_ = NULL;
+ DataView* _tmp28_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = created_views;
+#line 376 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = new_view;
+#line 376 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp28_);
+#line 2275 "ViewCollection.c"
+ } else {
+ DataView* _tmp29_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = created_view;
+#line 377 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp29_ == NULL) {
+#line 2282 "ViewCollection.c"
+ DataView* _tmp30_ = NULL;
+ DataView* _tmp31_ = NULL;
+#line 378 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = new_view;
+#line 378 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 378 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (created_view);
+#line 378 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ created_view = _tmp31_;
+#line 2293 "ViewCollection.c"
+ } else {
+ GeeArrayList* _tmp32_ = NULL;
+ GeeArrayList* _tmp33_ = NULL;
+ DataView* _tmp34_ = NULL;
+ GeeArrayList* _tmp35_ = NULL;
+ DataView* _tmp36_ = NULL;
+#line 380 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 380 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (created_views);
+#line 380 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ created_views = _tmp32_;
+#line 381 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp33_ = created_views;
+#line 381 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp34_ = created_view;
+#line 381 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp34_);
+#line 382 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (created_view);
+#line 382 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ created_view = NULL;
+#line 383 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp35_ = created_views;
+#line 383 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp36_ = new_view;
+#line 383 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp36_);
+#line 2322 "ViewCollection.c"
+ }
+ }
+#line 370 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (new_view);
+#line 2327 "ViewCollection.c"
+ }
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ (factory_target_destroy_notify == NULL) ? NULL : (factory_target_destroy_notify (factory_target), NULL);
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory = NULL;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target = NULL;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ factory_target_destroy_notify = NULL;
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 2339 "ViewCollection.c"
+ }
+#line 360 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 2343 "ViewCollection.c"
+ }
+#line 388 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp37_ = created_view;
+#line 388 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp37_ != NULL) {
+#line 2349 "ViewCollection.c"
+ DataView* _tmp38_ = NULL;
+#line 389 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp38_ = created_view;
+#line 389 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_DATA_OBJECT, DataObject));
+#line 2355 "ViewCollection.c"
+ } else {
+ gboolean _tmp39_ = FALSE;
+ GeeArrayList* _tmp40_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp40_ = created_views;
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp40_ != NULL) {
+#line 2363 "ViewCollection.c"
+ GeeArrayList* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp41_ = created_views;
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp42_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp43_ = _tmp42_;
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp39_ = _tmp43_ > 0;
+#line 2375 "ViewCollection.c"
+ } else {
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp39_ = FALSE;
+#line 2379 "ViewCollection.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp39_) {
+#line 2383 "ViewCollection.c"
+ GeeArrayList* _tmp44_ = NULL;
+ ProgressMonitor _tmp45_ = NULL;
+ void* _tmp45__target = NULL;
+ GeeCollection* _tmp46_ = NULL;
+ GeeCollection* _tmp47_ = NULL;
+#line 391 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp44_ = created_views;
+#line 391 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp45_ = progress_monitor;
+#line 391 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp45__target = progress_monitor_target;
+#line 391 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp46_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_COLLECTION, GeeCollection), _tmp45_, _tmp45__target);
+#line 391 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp47_ = _tmp46_;
+#line 391 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp47_);
+#line 2401 "ViewCollection.c"
+ }
+ }
+#line 354 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (created_views);
+#line 354 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (created_view);
+#line 2408 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_real_add (DataCollection* base, DataObject* object) {
+ ViewCollection * self;
+ gboolean result = FALSE;
+ DataObject* _tmp0_ = NULL;
+ DataObject* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ DataObject* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 394 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 395 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = object;
+#line 395 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_view_internal_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView), TRUE);
+#line 397 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = object;
+#line 397 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->add (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp1_);
+#line 397 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp2_) {
+#line 398 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = FALSE;
+#line 398 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 2439 "ViewCollection.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = object;
+#line 400 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = data_collection_get_singleton (_tmp3_);
+#line 400 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 400 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_filter_altered_items (self, _tmp5_);
+#line 400 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp5_);
+#line 402 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 402 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 2455 "ViewCollection.c"
+}
+
+
+static GeeCollection* view_collection_real_add_many (DataCollection* base, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target) {
+ ViewCollection * self;
+ GeeCollection* result = NULL;
+ GeeCollection* return_list = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ ProgressMonitor _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ GeeCollection* _tmp9_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 405 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (objects), NULL);
+#line 2471 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = objects;
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp1_;
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 2484 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataObject* _tmp6_ = NULL;
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _object_it;
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2499 "ViewCollection.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _object_it;
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 408 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = object;
+#line 408 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_view_internal_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_VIEW, DataView), TRUE);
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 2513 "ViewCollection.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 2517 "ViewCollection.c"
+ }
+#line 410 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = objects;
+#line 410 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = monitor;
+#line 410 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8__target = monitor_target;
+#line 410 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp7_, _tmp8_, _tmp8__target);
+#line 410 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return_list = _tmp9_;
+#line 412 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_filter_altered_items (self, G_TYPE_CHECK_INSTANCE_CAST (return_list, GEE_TYPE_COLLECTION, GeeCollection));
+#line 414 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = return_list;
+#line 414 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 2535 "ViewCollection.c"
+}
+
+
+static void view_collection_on_sources_removed (ViewCollection* self, GeeIterable* removed) {
+ Marker* marker = NULL;
+ gboolean _tmp14_ = FALSE;
+ Marker* _tmp15_ = NULL;
+#line 417 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 417 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 419 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker = NULL;
+#line 2549 "ViewCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = removed;
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _source_it = _tmp1_;
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 2562 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataView* view = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _source_it;
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2581 "ViewCollection.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _source_it;
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = (DataSource*) _tmp5_;
+#line 421 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = self->priv->source_map;
+#line 421 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = source;
+#line 421 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 421 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp8_;
+#line 424 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = view;
+#line 424 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp9_ != NULL) {
+#line 2601 "ViewCollection.c"
+ Marker* _tmp10_ = NULL;
+ Marker* _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+#line 425 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = marker;
+#line 425 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp10_ == NULL) {
+#line 2609 "ViewCollection.c"
+ Marker* _tmp11_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 426 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (marker);
+#line 426 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker = _tmp11_;
+#line 2617 "ViewCollection.c"
+ }
+#line 428 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = marker;
+#line 428 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = view;
+#line 428 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker_mark (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_OBJECT, DataObject));
+#line 2625 "ViewCollection.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 2631 "ViewCollection.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 2635 "ViewCollection.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = marker;
+#line 432 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_ != NULL) {
+#line 2641 "ViewCollection.c"
+ Marker* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+#line 432 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = marker;
+#line 432 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = marker_get_count (_tmp16_);
+#line 432 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = _tmp17_ != 0;
+#line 2650 "ViewCollection.c"
+ } else {
+#line 432 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = FALSE;
+#line 2654 "ViewCollection.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp14_) {
+#line 2658 "ViewCollection.c"
+ Marker* _tmp18_ = NULL;
+#line 433 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = marker;
+#line 433 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp18_);
+#line 2664 "ViewCollection.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (marker);
+#line 2668 "ViewCollection.c"
+}
+
+
+static void view_collection_on_sources_altered (ViewCollection* self, DataCollection* collection, GeeMap* items) {
+ GeeArrayList* to_add = NULL;
+ GeeArrayList* to_remove = NULL;
+ gboolean ordering_changed = FALSE;
+ GeeArrayList* _tmp82_ = NULL;
+ GeeArrayList* _tmp86_ = NULL;
+ gboolean _tmp90_ = FALSE;
+#line 436 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 436 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_COLLECTION (collection));
+#line 436 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_MAP (items));
+#line 439 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_add = NULL;
+#line 440 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_remove = NULL;
+#line 441 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ordering_changed = FALSE;
+#line 2691 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = items;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp5_;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 2718 "ViewCollection.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Alteration* alteration = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ DataSource* source = NULL;
+ DataObject* _tmp13_ = NULL;
+ DataSource* _tmp14_ = NULL;
+ ViewCollectionMonitorImpl* monitor = NULL;
+ gboolean ignored = FALSE;
+ gboolean _tmp38_ = FALSE;
+ gboolean _tmp40_ = FALSE;
+ ViewCollectionMonitorImpl* _tmp41_ = NULL;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = _object_it;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp7_) {
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2744 "ViewCollection.c"
+ }
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = _object_it;
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp9_;
+#line 443 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = items;
+#line 443 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = object;
+#line 443 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 443 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ alteration = (Alteration*) _tmp12_;
+#line 444 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = object;
+#line 444 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_SOURCE, DataSource));
+#line 444 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = _tmp14_;
+#line 446 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ monitor = NULL;
+#line 447 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ignored = TRUE;
+#line 2770 "ViewCollection.c"
+ {
+ GeeIterator* _monitor_impl_it = NULL;
+ GeeHashMultiMap* _tmp15_ = NULL;
+ DataCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeIterator* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = self->priv->monitors;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = collection;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = gee_multi_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_MULTI_MAP, GeeMultiMap), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_SOURCE_COLLECTION, SourceCollection));
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = _tmp17_;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = _tmp19_;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp18_);
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _monitor_impl_it = _tmp20_;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 2797 "ViewCollection.c"
+ GeeIterator* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ ViewCollectionMonitorImpl* monitor_impl = NULL;
+ GeeIterator* _tmp23_ = NULL;
+ gpointer _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ ViewCollectionMonitorImpl* _tmp26_ = NULL;
+ Alteration* _tmp27_ = NULL;
+ ViewCollectionMonitorImpl* _tmp32_ = NULL;
+ ViewManager* _tmp33_ = NULL;
+ DataSource* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = _monitor_impl_it;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = gee_iterator_next (_tmp21_);
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp22_) {
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2818 "ViewCollection.c"
+ }
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = _monitor_impl_it;
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = gee_iterator_get (_tmp23_);
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ monitor_impl = (ViewCollectionMonitorImpl*) _tmp24_;
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = monitor_impl;
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = _tmp26_->prereq;
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp27_ != NULL) {
+#line 2832 "ViewCollection.c"
+ Alteration* _tmp28_ = NULL;
+ ViewCollectionMonitorImpl* _tmp29_ = NULL;
+ Alteration* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = alteration;
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = monitor_impl;
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = _tmp29_->prereq;
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = alteration_contains_any (_tmp28_, _tmp30_);
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = !_tmp31_;
+#line 2847 "ViewCollection.c"
+ } else {
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = FALSE;
+#line 2851 "ViewCollection.c"
+ }
+#line 449 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp25_) {
+#line 450 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor_impl);
+#line 450 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ continue;
+#line 2859 "ViewCollection.c"
+ }
+#line 452 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ignored = FALSE;
+#line 454 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = monitor_impl;
+#line 454 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp33_ = _tmp32_->manager;
+#line 454 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp34_ = source;
+#line 454 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp35_ = view_manager_include_in_view (_tmp33_, _tmp34_);
+#line 454 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp35_) {
+#line 2873 "ViewCollection.c"
+ ViewCollectionMonitorImpl* _tmp36_ = NULL;
+ ViewCollectionMonitorImpl* _tmp37_ = NULL;
+#line 455 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp36_ = monitor_impl;
+#line 455 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp37_ = _view_collection_monitor_ref0 (_tmp36_);
+#line 455 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor);
+#line 455 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ monitor = _tmp37_;
+#line 457 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor_impl);
+#line 457 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 2888 "ViewCollection.c"
+ }
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor_impl);
+#line 2892 "ViewCollection.c"
+ }
+#line 448 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_monitor_impl_it);
+#line 2896 "ViewCollection.c"
+ }
+#line 461 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp38_ = ignored;
+#line 461 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp38_) {
+#line 2902 "ViewCollection.c"
+ ViewCollectionMonitorImpl* _tmp39_ = NULL;
+#line 462 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp39_ = monitor;
+#line 462 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp39_ == NULL, "monitor == null");
+#line 464 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor);
+#line 464 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 464 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _alteration_unref0 (alteration);
+#line 464 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 464 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ continue;
+#line 2918 "ViewCollection.c"
+ }
+#line 467 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp41_ = monitor;
+#line 467 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp41_ != NULL) {
+#line 2924 "ViewCollection.c"
+ DataSource* _tmp42_ = NULL;
+ gboolean _tmp43_ = FALSE;
+#line 467 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp42_ = source;
+#line 467 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp43_ = view_collection_has_view_for_source (self, _tmp42_);
+#line 467 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp40_ = !_tmp43_;
+#line 2933 "ViewCollection.c"
+ } else {
+#line 467 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp40_ = FALSE;
+#line 2937 "ViewCollection.c"
+ }
+#line 467 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp40_) {
+#line 2941 "ViewCollection.c"
+ GeeArrayList* _tmp44_ = NULL;
+ GeeArrayList* _tmp46_ = NULL;
+ ViewCollectionMonitorImpl* _tmp47_ = NULL;
+ ViewManager* _tmp48_ = NULL;
+ DataSource* _tmp49_ = NULL;
+ DataView* _tmp50_ = NULL;
+ DataView* _tmp51_ = NULL;
+#line 468 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp44_ = to_add;
+#line 468 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp44_ == NULL) {
+#line 2953 "ViewCollection.c"
+ GeeArrayList* _tmp45_ = NULL;
+#line 469 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp45_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 469 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_add);
+#line 469 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_add = _tmp45_;
+#line 2961 "ViewCollection.c"
+ }
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp46_ = to_add;
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp47_ = monitor;
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp48_ = _tmp47_->manager;
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp49_ = source;
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp50_ = view_manager_create_view (_tmp48_, _tmp49_);
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp51_ = _tmp50_;
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp51_);
+#line 471 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp51_);
+#line 2979 "ViewCollection.c"
+ } else {
+ gboolean _tmp52_ = FALSE;
+ ViewCollectionMonitorImpl* _tmp53_ = NULL;
+#line 472 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp53_ = monitor;
+#line 472 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp53_ == NULL) {
+#line 2987 "ViewCollection.c"
+ DataSource* _tmp54_ = NULL;
+ gboolean _tmp55_ = FALSE;
+#line 472 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp54_ = source;
+#line 472 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp55_ = view_collection_has_view_for_source (self, _tmp54_);
+#line 472 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp52_ = _tmp55_;
+#line 2996 "ViewCollection.c"
+ } else {
+#line 472 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp52_ = FALSE;
+#line 3000 "ViewCollection.c"
+ }
+#line 472 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp52_) {
+#line 3004 "ViewCollection.c"
+ GeeArrayList* _tmp56_ = NULL;
+ GeeArrayList* _tmp58_ = NULL;
+ DataSource* _tmp59_ = NULL;
+ DataView* _tmp60_ = NULL;
+ DataView* _tmp61_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp56_ = to_remove;
+#line 473 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp56_ == NULL) {
+#line 3014 "ViewCollection.c"
+ GeeArrayList* _tmp57_ = NULL;
+#line 474 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp57_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 474 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_remove);
+#line 474 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_remove = _tmp57_;
+#line 3022 "ViewCollection.c"
+ }
+#line 476 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp58_ = to_remove;
+#line 476 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp59_ = source;
+#line 476 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp60_ = view_collection_get_view_for_source (self, _tmp59_);
+#line 476 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp61_ = _tmp60_;
+#line 476 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp61_);
+#line 476 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp61_);
+#line 3036 "ViewCollection.c"
+ } else {
+ gboolean _tmp62_ = FALSE;
+ ViewCollectionMonitorImpl* _tmp63_ = NULL;
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp63_ = monitor;
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp63_ != NULL) {
+#line 3044 "ViewCollection.c"
+ DataSource* _tmp64_ = NULL;
+ gboolean _tmp65_ = FALSE;
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp64_ = source;
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp65_ = view_collection_has_view_for_source (self, _tmp64_);
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp62_ = _tmp65_;
+#line 3053 "ViewCollection.c"
+ } else {
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp62_ = FALSE;
+#line 3057 "ViewCollection.c"
+ }
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp62_) {
+#line 3061 "ViewCollection.c"
+ DataView* view = NULL;
+ DataSource* _tmp66_ = NULL;
+ DataView* _tmp67_ = NULL;
+ DataSet* _tmp68_ = NULL;
+ DataView* _tmp69_ = NULL;
+ gboolean _tmp70_ = FALSE;
+ gboolean _tmp74_ = FALSE;
+ DataSet* _tmp75_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp66_ = source;
+#line 478 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp67_ = view_collection_get_view_for_source (self, _tmp66_);
+#line 478 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp67_;
+#line 480 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp68_ = self->priv->selected;
+#line 480 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp69_ = view;
+#line 480 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp70_ = data_set_contains (_tmp68_, G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, TYPE_DATA_OBJECT, DataObject));
+#line 480 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp70_) {
+#line 3084 "ViewCollection.c"
+ DataSet* _tmp71_ = NULL;
+ DataView* _tmp72_ = NULL;
+ Alteration* _tmp73_ = NULL;
+#line 481 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp71_ = self->priv->selected;
+#line 481 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp72_ = view;
+#line 481 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp73_ = alteration;
+#line 481 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_set_resort_object (_tmp71_, G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, TYPE_DATA_OBJECT, DataObject), _tmp73_);
+#line 3096 "ViewCollection.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp75_ = self->priv->visible;
+#line 483 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp75_ != NULL) {
+#line 3102 "ViewCollection.c"
+ DataView* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+#line 483 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp76_ = view;
+#line 483 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp77_ = view_collection_is_visible (self, _tmp76_);
+#line 483 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp74_ = _tmp77_;
+#line 3111 "ViewCollection.c"
+ } else {
+#line 483 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp74_ = FALSE;
+#line 3115 "ViewCollection.c"
+ }
+#line 483 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp74_) {
+#line 3119 "ViewCollection.c"
+ DataSet* _tmp78_ = NULL;
+ DataView* _tmp79_ = NULL;
+ Alteration* _tmp80_ = NULL;
+ gboolean _tmp81_ = FALSE;
+#line 484 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp78_ = self->priv->visible;
+#line 484 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp79_ = view;
+#line 484 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp80_ = alteration;
+#line 484 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp81_ = data_set_resort_object (_tmp78_, G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, TYPE_DATA_OBJECT, DataObject), _tmp80_);
+#line 484 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp81_) {
+#line 485 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ordering_changed = TRUE;
+#line 3136 "ViewCollection.c"
+ }
+ }
+#line 477 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 3141 "ViewCollection.c"
+ }
+ }
+ }
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_collection_monitor_unref0 (monitor);
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _alteration_unref0 (alteration);
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 3153 "ViewCollection.c"
+ }
+#line 442 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3157 "ViewCollection.c"
+ }
+#line 490 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp82_ = to_add;
+#line 490 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp82_ != NULL) {
+#line 3163 "ViewCollection.c"
+ GeeArrayList* _tmp83_ = NULL;
+ GeeCollection* _tmp84_ = NULL;
+ GeeCollection* _tmp85_ = NULL;
+#line 491 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp83_ = to_add;
+#line 491 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp84_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 491 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp85_ = _tmp84_;
+#line 491 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp85_);
+#line 3175 "ViewCollection.c"
+ }
+#line 493 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp86_ = to_remove;
+#line 493 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp86_ != NULL) {
+#line 3181 "ViewCollection.c"
+ GeeArrayList* _tmp87_ = NULL;
+ Marker* _tmp88_ = NULL;
+ Marker* _tmp89_ = NULL;
+#line 494 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp87_ = to_remove;
+#line 494 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp88_ = data_collection_mark_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp87_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 494 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp89_ = _tmp88_;
+#line 494 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp89_);
+#line 494 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp89_);
+#line 3195 "ViewCollection.c"
+ }
+#line 496 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp90_ = ordering_changed;
+#line 496 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp90_) {
+#line 497 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_notify_ordering_changed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 3203 "ViewCollection.c"
+ }
+#line 436 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_remove);
+#line 436 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_add);
+#line 3209 "ViewCollection.c"
+}
+
+
+static void view_collection_on_mirror_contents_added (ViewCollection* self, GeeIterable* added) {
+ GeeArrayList* to_add = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 500 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 500 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 501 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 501 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_add = _tmp0_;
+#line 3227 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = added;
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp2_;
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 3240 "ViewCollection.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataSource* source = NULL;
+ DataObject* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ CreateViewPredicate _tmp10_ = NULL;
+ void* _tmp10__target = NULL;
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _object_it;
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp4_) {
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 3260 "ViewCollection.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _object_it;
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp6_;
+#line 503 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = object;
+#line 503 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_VIEW, DataView));
+#line 503 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = _tmp8_;
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = self->priv->should_mirror;
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10__target = self->priv->should_mirror_target;
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp10_ == NULL) {
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = TRUE;
+#line 3282 "ViewCollection.c"
+ } else {
+ CreateViewPredicate _tmp11_ = NULL;
+ void* _tmp11__target = NULL;
+ DataSource* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = self->priv->should_mirror;
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11__target = self->priv->should_mirror_target;
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = source;
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = _tmp11_ (_tmp12_, _tmp11__target);
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = _tmp13_;
+#line 3298 "ViewCollection.c"
+ }
+#line 505 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp9_) {
+#line 3302 "ViewCollection.c"
+ GeeArrayList* _tmp14_ = NULL;
+ CreateView _tmp15_ = NULL;
+ void* _tmp15__target = NULL;
+ DataSource* _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = to_add;
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = self->priv->mirroring_ctor;
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15__target = self->priv->mirroring_ctor_target;
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = source;
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = _tmp15_ (_tmp16_, _tmp15__target);
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = _tmp17_;
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp18_);
+#line 506 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp18_);
+#line 3325 "ViewCollection.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 3331 "ViewCollection.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3335 "ViewCollection.c"
+ }
+#line 509 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = to_add;
+#line 509 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 509 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = _tmp20_;
+#line 509 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp21_ > 0) {
+#line 3345 "ViewCollection.c"
+ GeeArrayList* _tmp22_ = NULL;
+ GeeCollection* _tmp23_ = NULL;
+ GeeCollection* _tmp24_ = NULL;
+#line 510 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = to_add;
+#line 510 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), NULL, NULL);
+#line 510 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = _tmp23_;
+#line 510 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp24_);
+#line 3357 "ViewCollection.c"
+ }
+#line 500 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_add);
+#line 3361 "ViewCollection.c"
+}
+
+
+static void view_collection_on_mirror_contents_removed (ViewCollection* self, GeeIterable* removed) {
+ Marker* marker = NULL;
+ Marker* _tmp0_ = NULL;
+ Marker* _tmp17_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 513 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 514 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 514 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker = _tmp0_;
+#line 3377 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = removed;
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp2_;
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 3390 "ViewCollection.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataView* view = NULL;
+ DataObject* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+ DataView* our_view = NULL;
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ Marker* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _object_it;
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp4_) {
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 3416 "ViewCollection.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _object_it;
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp6_;
+#line 516 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = object;
+#line 516 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_VIEW, DataView));
+#line 516 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp8_;
+#line 518 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = view;
+#line 518 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 518 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 518 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = view_collection_get_view_for_source (self, _tmp11_);
+#line 518 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = _tmp12_;
+#line 518 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp11_);
+#line 518 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ our_view = _tmp13_;
+#line 519 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = our_view;
+#line 519 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp14_ != NULL, "our_view != null");
+#line 521 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = marker;
+#line 521 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = our_view;
+#line 521 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker_mark (_tmp15_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_DATA_OBJECT, DataObject));
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (our_view);
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 3460 "ViewCollection.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3464 "ViewCollection.c"
+ }
+#line 524 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = marker;
+#line 524 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp17_);
+#line 513 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (marker);
+#line 3472 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_items_added (DataCollection* base, GeeIterable* added) {
+ ViewCollection * self;
+ GeeArrayList* added_visible = NULL;
+ GeeArrayList* added_selected = NULL;
+ GeeArrayList* _tmp30_ = NULL;
+ GeeArrayList* _tmp34_ = NULL;
+ GeeIterable* _tmp37_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 528 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 529 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ added_visible = NULL;
+#line 530 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ added_selected = NULL;
+#line 3491 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = added;
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp1_;
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 3504 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataView* view = NULL;
+ DataObject* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ GeeHashMap* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ DataView* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ DataView* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _object_it;
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 3532 "ViewCollection.c"
+ }
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _object_it;
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 533 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = object;
+#line 533 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_VIEW, DataView));
+#line 533 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp7_;
+#line 534 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = self->priv->source_map;
+#line 534 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = view;
+#line 534 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 534 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 534 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = view;
+#line 534 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, _tmp12_);
+#line 534 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp11_);
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = view;
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = data_view_is_selected (_tmp14_);
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_) {
+#line 3566 "ViewCollection.c"
+ DataView* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = view;
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = data_view_is_visible (_tmp16_);
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = _tmp17_;
+#line 3575 "ViewCollection.c"
+ } else {
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = FALSE;
+#line 3579 "ViewCollection.c"
+ }
+#line 536 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp13_) {
+#line 3583 "ViewCollection.c"
+ GeeArrayList* _tmp18_ = NULL;
+ GeeArrayList* _tmp20_ = NULL;
+ DataView* _tmp21_ = NULL;
+#line 537 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = added_selected;
+#line 537 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp18_ == NULL) {
+#line 3591 "ViewCollection.c"
+ GeeArrayList* _tmp19_ = NULL;
+#line 538 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 538 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (added_selected);
+#line 538 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ added_selected = _tmp19_;
+#line 3599 "ViewCollection.c"
+ }
+#line 540 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = added_selected;
+#line 540 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = view;
+#line 540 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp21_);
+#line 3607 "ViewCollection.c"
+ }
+#line 544 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = view;
+#line 544 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = data_view_is_visible (_tmp23_);
+#line 544 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp24_) {
+#line 3615 "ViewCollection.c"
+ DataSet* _tmp25_ = NULL;
+#line 544 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = self->priv->visible;
+#line 544 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = _tmp25_ != NULL;
+#line 3621 "ViewCollection.c"
+ } else {
+#line 544 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = FALSE;
+#line 3625 "ViewCollection.c"
+ }
+#line 544 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp22_) {
+#line 3629 "ViewCollection.c"
+ GeeArrayList* _tmp26_ = NULL;
+ GeeArrayList* _tmp28_ = NULL;
+ DataView* _tmp29_ = NULL;
+#line 545 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = added_visible;
+#line 545 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp26_ == NULL) {
+#line 3637 "ViewCollection.c"
+ GeeArrayList* _tmp27_ = NULL;
+#line 546 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 546 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (added_visible);
+#line 546 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ added_visible = _tmp27_;
+#line 3645 "ViewCollection.c"
+ }
+#line 548 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = added_visible;
+#line 548 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = view;
+#line 548 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp29_);
+#line 3653 "ViewCollection.c"
+ }
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 3659 "ViewCollection.c"
+ }
+#line 532 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3663 "ViewCollection.c"
+ }
+#line 552 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = added_visible;
+#line 552 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp30_ != NULL) {
+#line 3669 "ViewCollection.c"
+ gboolean is_added = FALSE;
+ GeeArrayList* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ gboolean _tmp33_ = FALSE;
+#line 553 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = added_visible;
+#line 553 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = view_collection_add_many_visible (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 553 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ is_added = _tmp32_;
+#line 554 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp33_ = is_added;
+#line 554 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp33_, "is_added");
+#line 3684 "ViewCollection.c"
+ }
+#line 557 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp34_ = added_selected;
+#line 557 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp34_ != NULL) {
+#line 3690 "ViewCollection.c"
+ GeeArrayList* _tmp35_ = NULL;
+ GeeArrayList* _tmp36_ = NULL;
+#line 558 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp35_ = added_selected;
+#line 558 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_add_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 559 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp36_ = added_selected;
+#line 559 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_selected_unselected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection), NULL);
+#line 3701 "ViewCollection.c"
+ }
+#line 562 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp37_ = added;
+#line 562 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->notify_items_added (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp37_);
+#line 528 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (added_selected);
+#line 528 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (added_visible);
+#line 3711 "ViewCollection.c"
+}
+
+
+static void view_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed) {
+ ViewCollection * self;
+ GeeArrayList* selected_removed = NULL;
+ GeeArrayList* _tmp42_ = NULL;
+ GeeIterable* _tmp44_ = NULL;
+#line 566 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 566 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 567 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ selected_removed = NULL;
+#line 3726 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = removed;
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp1_;
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 3739 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataView* view = NULL;
+ DataObject* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ GeeHashMap* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _object_it;
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 3762 "ViewCollection.c"
+ }
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _object_it;
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp5_;
+#line 569 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = object;
+#line 569 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_VIEW, DataView));
+#line 569 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp7_;
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = self->priv->source_map;
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = view;
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_);
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = _tmp12_;
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp11_);
+#line 575 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp13_) {
+#line 3792 "ViewCollection.c"
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+ DataSource* _tmp16_ = NULL;
+ DataSource* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ DataView* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp34_ = FALSE;
+ DataView* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = self->priv->source_map;
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = view;
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = data_view_get_source (_tmp15_);
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = _tmp16_;
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp17_, NULL);
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = _tmp18_;
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp17_);
+#line 576 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ is_removed = _tmp19_;
+#line 577 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = is_removed;
+#line 577 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp20_, "is_removed");
+#line 579 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = view;
+#line 579 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = data_view_is_selected (_tmp21_);
+#line 579 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp22_) {
+#line 3832 "ViewCollection.c"
+ DataSet* _tmp23_ = NULL;
+ DataView* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ DataView* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ DataView* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 581 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = self->priv->selected;
+#line 581 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = view;
+#line 581 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = data_set_contains (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_OBJECT, DataObject));
+#line 581 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = view;
+#line 581 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = data_view_is_visible (_tmp26_);
+#line 581 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp25_ == _tmp27_, "selected.contains(view) == view.is_visible()");
+#line 583 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = view;
+#line 583 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = data_view_is_visible (_tmp28_);
+#line 583 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp29_) {
+#line 3858 "ViewCollection.c"
+ GeeArrayList* _tmp30_ = NULL;
+ GeeArrayList* _tmp32_ = NULL;
+ DataView* _tmp33_ = NULL;
+#line 584 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = selected_removed;
+#line 584 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp30_ == NULL) {
+#line 3866 "ViewCollection.c"
+ GeeArrayList* _tmp31_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 585 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (selected_removed);
+#line 585 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ selected_removed = _tmp31_;
+#line 3874 "ViewCollection.c"
+ }
+#line 587 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = selected_removed;
+#line 587 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp33_ = view;
+#line 587 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp33_);
+#line 3882 "ViewCollection.c"
+ }
+ }
+#line 591 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp35_ = view;
+#line 591 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp36_ = data_view_is_visible (_tmp35_);
+#line 591 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp36_) {
+#line 3891 "ViewCollection.c"
+ DataSet* _tmp37_ = NULL;
+#line 591 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp37_ = self->priv->visible;
+#line 591 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp34_ = _tmp37_ != NULL;
+#line 3897 "ViewCollection.c"
+ } else {
+#line 591 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp34_ = FALSE;
+#line 3901 "ViewCollection.c"
+ }
+#line 591 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp34_) {
+#line 3905 "ViewCollection.c"
+ DataSet* _tmp38_ = NULL;
+ DataView* _tmp39_ = NULL;
+ gboolean _tmp40_ = FALSE;
+ gboolean _tmp41_ = FALSE;
+#line 592 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp38_ = self->priv->visible;
+#line 592 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp39_ = view;
+#line 592 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp40_ = data_set_remove (_tmp38_, G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, TYPE_DATA_OBJECT, DataObject));
+#line 592 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ is_removed = _tmp40_;
+#line 593 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp41_ = is_removed;
+#line 593 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp41_, "is_removed");
+#line 3922 "ViewCollection.c"
+ }
+ }
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 3929 "ViewCollection.c"
+ }
+#line 568 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 3933 "ViewCollection.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp42_ = selected_removed;
+#line 598 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp42_ != NULL) {
+#line 3939 "ViewCollection.c"
+ GeeArrayList* _tmp43_ = NULL;
+#line 599 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp43_ = selected_removed;
+#line 599 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_remove_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 604 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_selection_group_altered (self);
+#line 3947 "ViewCollection.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp44_ = removed;
+#line 607 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->notify_items_removed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp44_);
+#line 566 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (selected_removed);
+#line 3955 "ViewCollection.c"
+}
+
+
+static void view_collection_filter_altered_items (ViewCollection* self, GeeCollection* views) {
+ GeeArrayList* to_show = NULL;
+ GeeArrayList* to_hide = NULL;
+ GeeArrayList* _tmp20_ = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+#line 610 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 610 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (views));
+#line 613 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_show = NULL;
+#line 614 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_hide = NULL;
+#line 3972 "ViewCollection.c"
+ {
+ GeeIterator* _view_it = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = views;
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_it = _tmp1_;
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 3985 "ViewCollection.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _view_it;
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 4001 "ViewCollection.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _view_it;
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp5_;
+#line 620 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = view;
+#line 620 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = view_collection_is_in_filter (self, _tmp6_);
+#line 620 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp7_) {
+#line 4015 "ViewCollection.c"
+ DataView* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 621 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = view;
+#line 621 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = data_view_is_visible (_tmp8_);
+#line 621 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp9_) {
+#line 4024 "ViewCollection.c"
+ GeeArrayList* _tmp10_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+#line 622 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = to_show;
+#line 622 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp10_ == NULL) {
+#line 4032 "ViewCollection.c"
+ GeeArrayList* _tmp11_ = NULL;
+#line 623 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 623 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_show);
+#line 623 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_show = _tmp11_;
+#line 4040 "ViewCollection.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = to_show;
+#line 625 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = view;
+#line 625 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp13_);
+#line 4048 "ViewCollection.c"
+ }
+ } else {
+ DataView* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 628 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = view;
+#line 628 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = data_view_is_visible (_tmp14_);
+#line 628 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_) {
+#line 4059 "ViewCollection.c"
+ GeeArrayList* _tmp16_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ DataView* _tmp19_ = NULL;
+#line 629 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = to_hide;
+#line 629 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp16_ == NULL) {
+#line 4067 "ViewCollection.c"
+ GeeArrayList* _tmp17_ = NULL;
+#line 630 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 630 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_hide);
+#line 630 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ to_hide = _tmp17_;
+#line 4075 "ViewCollection.c"
+ }
+#line 632 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = to_hide;
+#line 632 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = view;
+#line 632 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp19_);
+#line 4083 "ViewCollection.c"
+ }
+ }
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 4088 "ViewCollection.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_view_it);
+#line 4092 "ViewCollection.c"
+ }
+#line 641 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = to_show;
+#line 641 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp20_ != NULL) {
+#line 4098 "ViewCollection.c"
+ GeeArrayList* _tmp21_ = NULL;
+#line 642 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = to_show;
+#line 642 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_show_items (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_LIST, GeeList));
+#line 4104 "ViewCollection.c"
+ }
+#line 644 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = to_hide;
+#line 644 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp22_ != NULL) {
+#line 4110 "ViewCollection.c"
+ GeeArrayList* _tmp23_ = NULL;
+#line 645 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = to_hide;
+#line 645 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_hide_items (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_LIST, GeeList));
+#line 4116 "ViewCollection.c"
+ }
+#line 610 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_hide);
+#line 610 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (to_show);
+#line 4122 "ViewCollection.c"
+}
+
+
+static void view_collection_real_items_altered (DataCollection* base, GeeMap* map) {
+ ViewCollection * self;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeMap* _tmp4_ = NULL;
+#line 648 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 648 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 649 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = map;
+#line 649 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 649 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 649 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 649 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_filter_altered_items (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 649 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 651 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = map;
+#line 651 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->items_altered (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp4_);
+#line 4153 "ViewCollection.c"
+}
+
+
+static void view_collection_real_set_comparator (DataCollection* base, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target) {
+ ViewCollection * self;
+ DataSet* _tmp0_ = NULL;
+ Comparator _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ ComparatorPredicate _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ DataSet* _tmp3_ = NULL;
+ Comparator _tmp7_ = NULL;
+ void* _tmp7__target = NULL;
+ ComparatorPredicate _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+#line 654 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 655 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->selected;
+#line 655 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = comparator;
+#line 655 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1__target = comparator_target;
+#line 655 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = predicate;
+#line 655 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2__target = predicate_target;
+#line 655 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_set_set_comparator (_tmp0_, _tmp1_, _tmp1__target, _tmp2_, _tmp2__target);
+#line 656 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = self->priv->visible;
+#line 656 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp3_ != NULL) {
+#line 4187 "ViewCollection.c"
+ DataSet* _tmp4_ = NULL;
+ Comparator _tmp5_ = NULL;
+ void* _tmp5__target = NULL;
+ ComparatorPredicate _tmp6_ = NULL;
+ void* _tmp6__target = NULL;
+#line 657 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = self->priv->visible;
+#line 657 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = comparator;
+#line 657 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5__target = comparator_target;
+#line 657 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = predicate;
+#line 657 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6__target = predicate_target;
+#line 657 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_set_set_comparator (_tmp4_, _tmp5_, _tmp5__target, _tmp6_, _tmp6__target);
+#line 4205 "ViewCollection.c"
+ }
+#line 659 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = comparator;
+#line 659 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7__target = comparator_target;
+#line 659 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = predicate;
+#line 659 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8__target = predicate_target;
+#line 659 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->set_comparator (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp7_, _tmp7__target, _tmp8_, _tmp8__target);
+#line 4217 "ViewCollection.c"
+}
+
+
+static void view_collection_real_reset_comparator (DataCollection* base) {
+ ViewCollection * self;
+ DataSet* _tmp0_ = NULL;
+ DataSet* _tmp1_ = NULL;
+#line 662 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 663 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->selected;
+#line 663 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_set_reset_comparator (_tmp0_);
+#line 664 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->visible;
+#line 664 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 4235 "ViewCollection.c"
+ DataSet* _tmp2_ = NULL;
+#line 665 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->visible;
+#line 665 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_set_reset_comparator (_tmp2_);
+#line 4241 "ViewCollection.c"
+ }
+#line 667 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->reset_comparator (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 4245 "ViewCollection.c"
+}
+
+
+static GeeCollection* view_collection_real_get_all (DataCollection* base) {
+ ViewCollection * self;
+ GeeCollection* result = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ DataSet* _tmp1_ = NULL;
+#line 670 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->visible;
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 4260 "ViewCollection.c"
+ DataSet* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->visible;
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_set_get_all (_tmp2_);
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 4271 "ViewCollection.c"
+ } else {
+ GeeCollection* _tmp4_ = NULL;
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_all (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp4_;
+#line 4280 "ViewCollection.c"
+ }
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 671 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4286 "ViewCollection.c"
+}
+
+
+GeeCollection* view_collection_get_all_unfiltered (ViewCollection* self) {
+ GeeCollection* result = NULL;
+ GeeCollection* _tmp0_ = NULL;
+#line 674 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 675 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_all (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 675 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 675 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4301 "ViewCollection.c"
+}
+
+
+static gint view_collection_real_get_count (DataCollection* base) {
+ ViewCollection * self;
+ gint result = 0;
+ gint _tmp0_ = 0;
+ DataSet* _tmp1_ = NULL;
+#line 678 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->visible;
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 4316 "ViewCollection.c"
+ DataSet* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->visible;
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_set_get_count (_tmp2_);
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp3_;
+#line 4325 "ViewCollection.c"
+ } else {
+ gint _tmp4_ = 0;
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp4_;
+#line 4332 "ViewCollection.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 679 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4338 "ViewCollection.c"
+}
+
+
+gint view_collection_get_unfiltered_count (ViewCollection* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 682 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), 0);
+#line 683 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 683 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 683 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4353 "ViewCollection.c"
+}
+
+
+static DataObject* view_collection_real_get_at (DataCollection* base, gint index) {
+ ViewCollection * self;
+ DataObject* result = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataSet* _tmp1_ = NULL;
+#line 686 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->visible;
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 4368 "ViewCollection.c"
+ DataSet* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ DataObject* _tmp4_ = NULL;
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->visible;
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = index;
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = data_set_get_at (_tmp2_, _tmp3_);
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp4_;
+#line 4382 "ViewCollection.c"
+ } else {
+ gint _tmp5_ = 0;
+ DataObject* _tmp6_ = NULL;
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = index;
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_at (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp5_);
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp6_;
+#line 4394 "ViewCollection.c"
+ }
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 687 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4400 "ViewCollection.c"
+}
+
+
+static gint view_collection_real_index_of (DataCollection* base, DataObject* object) {
+ ViewCollection * self;
+ gint result = 0;
+ gint _tmp0_ = 0;
+ DataSet* _tmp1_ = NULL;
+#line 690 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 690 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), 0);
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->visible;
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 4417 "ViewCollection.c"
+ DataSet* _tmp2_ = NULL;
+ DataObject* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->visible;
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = object;
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = data_set_index_of (_tmp2_, _tmp3_);
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp4_;
+#line 4429 "ViewCollection.c"
+ } else {
+ DataObject* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = object;
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->index_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp5_);
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp6_;
+#line 4439 "ViewCollection.c"
+ }
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 691 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4445 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_real_contains (DataCollection* base, DataObject* object) {
+ ViewCollection * self;
+ gboolean result = FALSE;
+ DataObject* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ DataObject* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 694 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 694 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 697 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = object;
+#line 697 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->contains (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp0_);
+#line 697 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp1_) {
+#line 698 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = FALSE;
+#line 698 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4470 "ViewCollection.c"
+ }
+#line 701 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = object;
+#line 701 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = view_collection_is_visible (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_VIEW, DataView));
+#line 701 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp3_;
+#line 701 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4480 "ViewCollection.c"
+}
+
+
+static DataView* view_collection_real_get_first (ViewCollection* self) {
+ DataView* result = NULL;
+ DataView* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ > 0) {
+#line 4492 "ViewCollection.c"
+ DataObject* _tmp2_ = NULL;
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), 0);
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_VIEW, DataView);
+#line 4500 "ViewCollection.c"
+ } else {
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = NULL;
+#line 4506 "ViewCollection.c"
+ }
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 705 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4512 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_first (ViewCollection* self) {
+#line 704 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 704 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_COLLECTION_GET_CLASS (self)->get_first (self);
+#line 4521 "ViewCollection.c"
+}
+
+
+/**
+ * @brief A helper method for places in the app that need a
+ * non-rejected media source (namely Events, when looking to
+ * automatically choose a thumbnail).
+ *
+ * @note If every view in this collection is rejected, we
+ * return the first view; this is intentional. This prevents
+ * pathological events that have nothing but rejected images
+ * in them from breaking.
+ */
+static DataView* view_collection_real_get_first_unrejected (ViewCollection* self) {
+ DataView* result = NULL;
+ gint _tmp0_ = 0;
+ DataView* dv = NULL;
+ DataView* _tmp1_ = NULL;
+ gint num_views = 0;
+ gint _tmp2_ = 0;
+ DataView* _tmp17_ = NULL;
+#line 720 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 720 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp0_ < 1) {
+#line 721 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = NULL;
+#line 721 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4551 "ViewCollection.c"
+ }
+#line 724 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view_collection_get_first (self);
+#line 724 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dv = _tmp1_;
+#line 725 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 725 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ num_views = _tmp2_;
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 4563 "ViewCollection.c"
+ gboolean _tmp3_ = FALSE;
+ DataView* _tmp4_ = NULL;
+ MediaSource* tmp = NULL;
+ DataView* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ MediaSource* _tmp12_ = NULL;
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = dv;
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp4_ != NULL) {
+#line 4576 "ViewCollection.c"
+ DataView* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = dv;
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = data_collection_index_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = num_views;
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp6_ < (_tmp7_ - 1);
+#line 4588 "ViewCollection.c"
+ } else {
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = FALSE;
+#line 4592 "ViewCollection.c"
+ }
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 4598 "ViewCollection.c"
+ }
+#line 728 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = dv;
+#line 728 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = data_view_get_source (_tmp8_);
+#line 728 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_MEDIA_SOURCE) ? ((MediaSource*) _tmp9_) : NULL;
+#line 728 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp10_ == NULL) {
+#line 728 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp9_);
+#line 4610 "ViewCollection.c"
+ }
+#line 728 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ tmp = _tmp10_;
+#line 730 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = tmp;
+#line 730 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp12_ != NULL) {
+#line 4618 "ViewCollection.c"
+ MediaSource* _tmp13_ = NULL;
+ Rating _tmp14_ = 0;
+#line 730 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = tmp;
+#line 730 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = media_source_get_rating (_tmp13_);
+#line 730 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _tmp14_ != RATING_REJECTED;
+#line 4627 "ViewCollection.c"
+ } else {
+#line 730 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = FALSE;
+#line 4631 "ViewCollection.c"
+ }
+#line 730 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp11_) {
+#line 732 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = dv;
+#line 732 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (tmp);
+#line 732 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4641 "ViewCollection.c"
+ } else {
+ DataView* _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+#line 734 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = dv;
+#line 734 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = view_collection_get_next (self, _tmp15_);
+#line 734 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (dv);
+#line 734 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dv = _tmp16_;
+#line 4653 "ViewCollection.c"
+ }
+#line 727 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (tmp);
+#line 4657 "ViewCollection.c"
+ }
+#line 740 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = view_collection_get_first (self);
+#line 740 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp17_;
+#line 740 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (dv);
+#line 740 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4667 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_first_unrejected (ViewCollection* self) {
+#line 718 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 718 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_COLLECTION_GET_CLASS (self)->get_first_unrejected (self);
+#line 4676 "ViewCollection.c"
+}
+
+
+static DataView* view_collection_real_get_last (ViewCollection* self) {
+ DataView* result = NULL;
+ DataView* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ > 0) {
+#line 4688 "ViewCollection.c"
+ gint _tmp2_ = 0;
+ DataObject* _tmp3_ = NULL;
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp2_ - 1);
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_VIEW, DataView);
+#line 4699 "ViewCollection.c"
+ } else {
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp0_);
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = NULL;
+#line 4705 "ViewCollection.c"
+ }
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 744 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4711 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_last (ViewCollection* self) {
+#line 743 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 743 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_COLLECTION_GET_CLASS (self)->get_last (self);
+#line 4720 "ViewCollection.c"
+}
+
+
+static DataView* view_collection_real_get_next (ViewCollection* self, DataView* view) {
+ DataView* result = NULL;
+ gint _tmp0_ = 0;
+ gint index = 0;
+ DataView* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ DataObject* _tmp8_ = NULL;
+#line 747 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), NULL);
+#line 748 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 748 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp0_ == 0) {
+#line 749 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = NULL;
+#line 749 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4746 "ViewCollection.c"
+ }
+#line 751 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view;
+#line 751 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_index_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 751 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ index = _tmp2_;
+#line 752 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = index;
+#line 752 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp3_ < 0) {
+#line 753 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = NULL;
+#line 753 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4762 "ViewCollection.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = index;
+#line 755 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ index = _tmp4_ + 1;
+#line 756 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = index;
+#line 756 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 756 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_ >= _tmp6_) {
+#line 757 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ index = 0;
+#line 4776 "ViewCollection.c"
+ }
+#line 759 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = index;
+#line 759 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp7_);
+#line 759 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_VIEW, DataView);
+#line 759 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4786 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_next (ViewCollection* self, DataView* view) {
+#line 747 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 747 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_COLLECTION_GET_CLASS (self)->get_next (self, view);
+#line 4795 "ViewCollection.c"
+}
+
+
+static DataView* view_collection_real_get_previous (ViewCollection* self, DataView* view) {
+ DataView* result = NULL;
+ gint _tmp0_ = 0;
+ gint index = 0;
+ DataView* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp7_ = 0;
+ DataObject* _tmp8_ = NULL;
+#line 762 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), NULL);
+#line 763 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 763 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp0_ == 0) {
+#line 764 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = NULL;
+#line 764 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4820 "ViewCollection.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view;
+#line 766 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_index_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 766 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ index = _tmp2_;
+#line 767 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = index;
+#line 767 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp3_ < 0) {
+#line 768 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = NULL;
+#line 768 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4836 "ViewCollection.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = index;
+#line 770 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ index = _tmp4_ - 1;
+#line 771 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = index;
+#line 771 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_ < 0) {
+#line 4846 "ViewCollection.c"
+ gint _tmp6_ = 0;
+#line 772 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 772 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ index = _tmp6_ - 1;
+#line 4852 "ViewCollection.c"
+ }
+#line 774 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = index;
+#line 774 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp7_);
+#line 774 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_VIEW, DataView);
+#line 774 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4862 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_previous (ViewCollection* self, DataView* view) {
+#line 762 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 762 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_COLLECTION_GET_CLASS (self)->get_previous (self, view);
+#line 4871 "ViewCollection.c"
+}
+
+
+gboolean view_collection_get_immediate_neighbors (ViewCollection* self, DataSource* home, DataSource** next, DataSource** prev, const gchar* type_selector) {
+ DataSource* _vala_next = NULL;
+ DataSource* _vala_prev = NULL;
+ gboolean result = FALSE;
+ DataView* home_view = NULL;
+ DataSource* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ DataView* next_view = NULL;
+ DataView* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataView* prev_view = NULL;
+ DataView* _tmp19_ = NULL;
+ DataView* _tmp20_ = NULL;
+#line 777 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 777 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (home), FALSE);
+#line 779 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_next);
+#line 779 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_next = NULL;
+#line 780 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_prev);
+#line 780 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_prev = NULL;
+#line 782 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = home;
+#line 782 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view_collection_get_view_for_source (self, _tmp0_);
+#line 782 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ home_view = _tmp1_;
+#line 783 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = home_view;
+#line 783 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp2_ == NULL) {
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = FALSE;
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (home_view);
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (next) {
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *next = _vala_next;
+#line 4919 "ViewCollection.c"
+ } else {
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_next);
+#line 4923 "ViewCollection.c"
+ }
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (prev) {
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *prev = _vala_prev;
+#line 4929 "ViewCollection.c"
+ } else {
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_prev);
+#line 4933 "ViewCollection.c"
+ }
+#line 784 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 4937 "ViewCollection.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = home_view;
+#line 786 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = view_collection_get_next (self, _tmp3_);
+#line 786 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ next_view = _tmp4_;
+#line 787 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 4947 "ViewCollection.c"
+ DataView* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ const gchar* _tmp8_ = NULL;
+ DataView* _tmp17_ = NULL;
+ DataView* _tmp18_ = NULL;
+#line 787 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = next_view;
+#line 787 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = home_view;
+#line 787 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!(_tmp5_ != _tmp6_)) {
+#line 787 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 4962 "ViewCollection.c"
+ }
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = type_selector;
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp8_ == NULL) {
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = TRUE;
+#line 4970 "ViewCollection.c"
+ } else {
+ DataView* _tmp9_ = NULL;
+ DataSource* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = next_view;
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = data_view_get_source (_tmp9_);
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = _tmp10_;
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = data_source_get_typename (_tmp11_);
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = _tmp12_;
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = type_selector;
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = g_strcmp0 (_tmp13_, _tmp14_) == 0;
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_free0 (_tmp13_);
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp11_);
+#line 4996 "ViewCollection.c"
+ }
+#line 788 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp7_) {
+#line 5000 "ViewCollection.c"
+ DataView* _tmp15_ = NULL;
+ DataSource* _tmp16_ = NULL;
+#line 789 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = next_view;
+#line 789 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = data_view_get_source (_tmp15_);
+#line 789 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_next);
+#line 789 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_next = _tmp16_;
+#line 790 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 5013 "ViewCollection.c"
+ }
+#line 792 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = next_view;
+#line 792 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = view_collection_get_next (self, _tmp17_);
+#line 792 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_view);
+#line 792 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ next_view = _tmp18_;
+#line 5023 "ViewCollection.c"
+ }
+#line 795 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = home_view;
+#line 795 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = view_collection_get_previous (self, _tmp19_);
+#line 795 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ prev_view = _tmp20_;
+#line 796 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 5033 "ViewCollection.c"
+ DataView* _tmp21_ = NULL;
+ DataView* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ const gchar* _tmp24_ = NULL;
+ DataView* _tmp33_ = NULL;
+ DataView* _tmp34_ = NULL;
+#line 796 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = prev_view;
+#line 796 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = home_view;
+#line 796 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!(_tmp21_ != _tmp22_)) {
+#line 796 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 5048 "ViewCollection.c"
+ }
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = type_selector;
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp24_ == NULL) {
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = TRUE;
+#line 5056 "ViewCollection.c"
+ } else {
+ DataView* _tmp25_ = NULL;
+ DataSource* _tmp26_ = NULL;
+ DataSource* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = prev_view;
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = data_view_get_source (_tmp25_);
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = _tmp26_;
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = data_source_get_typename (_tmp27_);
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = _tmp28_;
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = type_selector;
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = g_strcmp0 (_tmp29_, _tmp30_) == 0;
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_free0 (_tmp29_);
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp27_);
+#line 5082 "ViewCollection.c"
+ }
+#line 797 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp23_) {
+#line 5086 "ViewCollection.c"
+ DataView* _tmp31_ = NULL;
+ DataSource* _tmp32_ = NULL;
+#line 798 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = prev_view;
+#line 798 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = data_view_get_source (_tmp31_);
+#line 798 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_prev);
+#line 798 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_prev = _tmp32_;
+#line 799 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 5099 "ViewCollection.c"
+ }
+#line 801 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp33_ = prev_view;
+#line 801 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp34_ = view_collection_get_previous (self, _tmp33_);
+#line 801 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (prev_view);
+#line 801 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ prev_view = _tmp34_;
+#line 5109 "ViewCollection.c"
+ }
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (prev_view);
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_view);
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (home_view);
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (next) {
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *next = _vala_next;
+#line 5123 "ViewCollection.c"
+ } else {
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_next);
+#line 5127 "ViewCollection.c"
+ }
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (prev) {
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *prev = _vala_prev;
+#line 5133 "ViewCollection.c"
+ } else {
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_vala_prev);
+#line 5137 "ViewCollection.c"
+ }
+#line 804 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5141 "ViewCollection.c"
+}
+
+
+GeeSet* view_collection_get_extended_neighbors (ViewCollection* self, DataSource* home, const gchar* typename) {
+ GeeSet* result = NULL;
+ GeeSet* neighbors = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ DataSource* next = NULL;
+ DataSource* prev = NULL;
+ DataSource* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataSource* _tmp6_ = NULL;
+ DataSource* _tmp16_ = NULL;
+ GeeSet* _tmp26_ = NULL;
+ DataSource* _tmp27_ = NULL;
+#line 808 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 808 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (home), NULL);
+#line 810 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_hash_set_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 810 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ neighbors = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_SET, GeeSet);
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = home;
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = typename;
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = view_collection_get_immediate_neighbors (self, _tmp1_, &_tmp3_, &_tmp4_, _tmp2_);
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next);
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ next = _tmp3_;
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (prev);
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ prev = _tmp4_;
+#line 814 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp5_) {
+#line 815 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = neighbors;
+#line 815 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (prev);
+#line 815 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next);
+#line 815 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5192 "ViewCollection.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = next;
+#line 818 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp6_ != NULL) {
+#line 5198 "ViewCollection.c"
+ GeeSet* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+ DataSource* next_next = NULL;
+ DataSource* next_prev = NULL;
+ DataSource* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ DataSource* _tmp13_ = NULL;
+#line 819 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = neighbors;
+#line 819 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = next;
+#line 819 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), _tmp8_);
+#line 822 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = next;
+#line 822 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = typename;
+#line 822 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_get_immediate_neighbors (self, _tmp9_, &_tmp11_, &_tmp12_, _tmp10_);
+#line 822 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_next);
+#line 822 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ next_next = _tmp11_;
+#line 822 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_prev);
+#line 822 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ next_prev = _tmp12_;
+#line 825 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = next_next;
+#line 825 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp13_ != NULL) {
+#line 5232 "ViewCollection.c"
+ GeeSet* _tmp14_ = NULL;
+ DataSource* _tmp15_ = NULL;
+#line 826 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = neighbors;
+#line 826 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = next_next;
+#line 826 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection), _tmp15_);
+#line 5241 "ViewCollection.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_prev);
+#line 818 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_next);
+#line 5247 "ViewCollection.c"
+ }
+#line 830 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = prev;
+#line 830 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp16_ != NULL) {
+#line 5253 "ViewCollection.c"
+ GeeSet* _tmp17_ = NULL;
+ DataSource* _tmp18_ = NULL;
+ DataSource* next_prev = NULL;
+ DataSource* prev_prev = NULL;
+ DataSource* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ DataSource* _tmp21_ = NULL;
+ DataSource* _tmp22_ = NULL;
+ DataSource* _tmp23_ = NULL;
+#line 831 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = neighbors;
+#line 831 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = prev;
+#line 831 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection), _tmp18_);
+#line 834 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = prev;
+#line 834 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = typename;
+#line 834 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_get_immediate_neighbors (self, _tmp19_, &_tmp21_, &_tmp22_, _tmp20_);
+#line 834 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_prev);
+#line 834 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ next_prev = _tmp21_;
+#line 834 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (prev_prev);
+#line 834 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ prev_prev = _tmp22_;
+#line 837 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = prev_prev;
+#line 837 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp23_ != NULL) {
+#line 5287 "ViewCollection.c"
+ GeeSet* _tmp24_ = NULL;
+ DataSource* _tmp25_ = NULL;
+#line 838 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = neighbors;
+#line 838 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = prev_prev;
+#line 838 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 5296 "ViewCollection.c"
+ }
+#line 830 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (prev_prev);
+#line 830 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next_prev);
+#line 5302 "ViewCollection.c"
+ }
+#line 842 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = neighbors;
+#line 842 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = home;
+#line 842 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_COLLECTION, GeeCollection), _tmp27_);
+#line 844 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = neighbors;
+#line 844 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (prev);
+#line 844 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (next);
+#line 844 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5318 "ViewCollection.c"
+}
+
+
+static void view_collection_add_many_selected (ViewCollection* self, GeeCollection* views) {
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean added = FALSE;
+ DataSet* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+#line 849 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 849 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (views));
+#line 850 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = views;
+#line 850 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 850 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 850 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp2_ == 0) {
+#line 851 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return;
+#line 5345 "ViewCollection.c"
+ }
+ {
+ GeeIterator* _view_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = views;
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_it = _tmp4_;
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 5359 "ViewCollection.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _view_it;
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp6_) {
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 5375 "ViewCollection.c"
+ }
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _view_it;
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp8_;
+#line 854 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = view;
+#line 854 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = data_view_is_visible (_tmp9_);
+#line 854 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp10_, "view.is_visible()");
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 5391 "ViewCollection.c"
+ }
+#line 853 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_view_it);
+#line 5395 "ViewCollection.c"
+ }
+#line 856 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = self->priv->selected;
+#line 856 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = views;
+#line 856 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = data_set_add_many (_tmp11_, _tmp12_);
+#line 856 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ added = _tmp13_;
+#line 857 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = added;
+#line 857 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp14_, "added");
+#line 5409 "ViewCollection.c"
+}
+
+
+static void view_collection_remove_many_selected (ViewCollection* self, GeeCollection* views) {
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean removed = FALSE;
+ DataSet* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 860 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 860 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (views));
+#line 861 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = views;
+#line 861 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 861 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 861 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp2_ == 0) {
+#line 862 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return;
+#line 5436 "ViewCollection.c"
+ }
+#line 864 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = self->priv->selected;
+#line 864 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = views;
+#line 864 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = data_set_remove_many (_tmp3_, _tmp4_);
+#line 864 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ removed = _tmp5_;
+#line 865 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = removed;
+#line 865 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp6_, "removed");
+#line 5450 "ViewCollection.c"
+}
+
+
+static gboolean _view_collection_select_item_marked_action (DataObject* object, GObject* user, gpointer self) {
+ gboolean result;
+ result = view_collection_select_item ((ViewCollection*) self, object, user);
+#line 871 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5459 "ViewCollection.c"
+}
+
+
+void view_collection_select_marked (ViewCollection* self, Marker* marker) {
+ GeeArrayList* selected = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 869 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 869 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_MARKER (marker));
+#line 870 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 870 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ selected = _tmp0_;
+#line 871 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = marker;
+#line 871 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = selected;
+#line 871 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp1_, _view_collection_select_item_marked_action, self, NULL, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, G_TYPE_OBJECT, GObject));
+#line 873 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = selected;
+#line 873 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 873 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 873 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_ > 0) {
+#line 5493 "ViewCollection.c"
+ GeeArrayList* _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+#line 874 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = selected;
+#line 874 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_add_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 875 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = selected;
+#line 875 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_selected_unselected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), NULL);
+#line 5504 "ViewCollection.c"
+ }
+#line 869 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (selected);
+#line 5508 "ViewCollection.c"
+}
+
+
+void view_collection_select_all (ViewCollection* self) {
+ Marker* marker = NULL;
+ Marker* _tmp0_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 881 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 881 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker = _tmp0_;
+#line 882 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker_mark_all (marker);
+#line 883 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_select_marked (self, marker);
+#line 880 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (marker);
+#line 5527 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_select_item (ViewCollection* self, DataObject* object, GObject* user) {
+ gboolean result = FALSE;
+ DataView* view = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataView* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 886 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 886 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 886 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail ((user == NULL) || G_IS_OBJECT (user), FALSE);
+#line 887 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = object;
+#line 887 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 887 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp1_;
+#line 888 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = view;
+#line 888 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_view_is_selected (_tmp2_);
+#line 888 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp3_) {
+#line 5559 "ViewCollection.c"
+ DataView* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 889 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = view;
+#line 889 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = data_view_is_visible (_tmp4_);
+#line 889 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_) {
+#line 5568 "ViewCollection.c"
+ DataSet* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 890 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = self->priv->selected;
+#line 890 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = view;
+#line 890 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = data_set_contains (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_OBJECT, DataObject));
+#line 890 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp8_, "selected.contains(view)");
+#line 5580 "ViewCollection.c"
+ }
+#line 892 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 892 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 892 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5588 "ViewCollection.c"
+ }
+#line 895 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = view;
+#line 895 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_view_internal_set_selected (_tmp9_, TRUE);
+#line 899 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = view;
+#line 899 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = data_view_is_visible (_tmp10_);
+#line 899 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp11_) {
+#line 5600 "ViewCollection.c"
+ GObject* _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+#line 900 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = user;
+#line 900 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = view;
+#line 900 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ARRAY_LIST, GeeArrayList), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp13_);
+#line 5609 "ViewCollection.c"
+ }
+#line 902 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 902 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 902 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5617 "ViewCollection.c"
+}
+
+
+static gboolean _view_collection_unselect_item_marked_action (DataObject* object, GObject* user, gpointer self) {
+ gboolean result;
+ result = view_collection_unselect_item ((ViewCollection*) self, object, user);
+#line 908 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5626 "ViewCollection.c"
+}
+
+
+void view_collection_unselect_marked (ViewCollection* self, Marker* marker) {
+ GeeArrayList* unselected = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 906 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 906 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_MARKER (marker));
+#line 907 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 907 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ unselected = _tmp0_;
+#line 908 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = marker;
+#line 908 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = unselected;
+#line 908 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp1_, _view_collection_unselect_item_marked_action, self, NULL, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, G_TYPE_OBJECT, GObject));
+#line 910 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = unselected;
+#line 910 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 910 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 910 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_ > 0) {
+#line 5660 "ViewCollection.c"
+ GeeArrayList* _tmp6_ = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+#line 911 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = unselected;
+#line 911 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_remove_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 912 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = unselected;
+#line 912 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_selected_unselected (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 5671 "ViewCollection.c"
+ }
+#line 906 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (unselected);
+#line 5675 "ViewCollection.c"
+}
+
+
+void view_collection_unselect_all (ViewCollection* self) {
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ Marker* marker = NULL;
+ Marker* _tmp2_ = NULL;
+ Marker* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ Marker* _tmp6_ = NULL;
+#line 917 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 918 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->selected;
+#line 918 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = data_set_get_count (_tmp0_);
+#line 918 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ == 0) {
+#line 919 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return;
+#line 5698 "ViewCollection.c"
+ }
+#line 921 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 921 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker = _tmp2_;
+#line 922 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = marker;
+#line 922 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = view_collection_get_selected (self);
+#line 922 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 922 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker_mark_many (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 922 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp5_);
+#line 924 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = marker;
+#line 924 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_unselect_marked (self, _tmp6_);
+#line 917 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (marker);
+#line 5720 "ViewCollection.c"
+}
+
+
+void view_collection_unselect_all_but (ViewCollection* self, DataView* exception) {
+ Marker* marker = NULL;
+ Marker* _tmp0_ = NULL;
+ Marker* _tmp15_ = NULL;
+#line 928 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 928 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_VIEW (exception));
+#line 929 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 929 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker = _tmp0_;
+#line 5736 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _tmp3_;
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp2_);
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp4_;
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 5757 "ViewCollection.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ DataView* view = NULL;
+ DataObject* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ DataView* _tmp12_ = NULL;
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _object_it;
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp6_) {
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 5776 "ViewCollection.c"
+ }
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _object_it;
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp8_;
+#line 931 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = object;
+#line 931 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_VIEW, DataView));
+#line 931 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp10_;
+#line 932 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = view;
+#line 932 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = exception;
+#line 932 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp11_ != _tmp12_) {
+#line 5796 "ViewCollection.c"
+ Marker* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+#line 933 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = marker;
+#line 933 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = view;
+#line 933 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ marker_mark (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 5805 "ViewCollection.c"
+ }
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 5811 "ViewCollection.c"
+ }
+#line 930 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 5815 "ViewCollection.c"
+ }
+#line 936 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = marker;
+#line 936 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_unselect_marked (self, _tmp15_);
+#line 928 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (marker);
+#line 5823 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_unselect_item (ViewCollection* self, DataObject* object, GObject* user) {
+ gboolean result = FALSE;
+ DataView* view = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataView* _tmp7_ = NULL;
+ GObject* _tmp8_ = NULL;
+ DataView* _tmp9_ = NULL;
+#line 939 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 939 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 939 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail ((user == NULL) || G_IS_OBJECT (user), FALSE);
+#line 940 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = object;
+#line 940 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 940 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp1_;
+#line 941 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = view;
+#line 941 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_view_is_selected (_tmp2_);
+#line 941 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 5855 "ViewCollection.c"
+ DataSet* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 942 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = self->priv->selected;
+#line 942 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = view;
+#line 942 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = data_set_contains (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_OBJECT, DataObject));
+#line 942 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (!_tmp6_, "!selected.contains(view)");
+#line 944 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 944 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 944 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5873 "ViewCollection.c"
+ }
+#line 947 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = view;
+#line 947 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_view_internal_set_selected (_tmp7_, FALSE);
+#line 948 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = user;
+#line 948 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = view;
+#line 948 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ARRAY_LIST, GeeArrayList), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp9_);
+#line 950 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 950 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 950 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5891 "ViewCollection.c"
+}
+
+
+void view_collection_unselect_and_select_marked (ViewCollection* self, Marker* unselect, Marker* select) {
+ GeeArrayList* unselected = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ GeeArrayList* selected = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ Marker* _tmp3_ = NULL;
+#line 954 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 954 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_MARKER (unselect));
+#line 954 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_MARKER (select));
+#line 955 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 955 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ unselected = _tmp0_;
+#line 956 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = unselect;
+#line 956 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp1_, _view_collection_unselect_item_marked_action, self, NULL, NULL, G_TYPE_CHECK_INSTANCE_CAST (unselected, G_TYPE_OBJECT, GObject));
+#line 958 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_remove_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (unselected, GEE_TYPE_COLLECTION, GeeCollection));
+#line 960 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 960 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ selected = _tmp2_;
+#line 961 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = select;
+#line 961 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp3_, _view_collection_select_item_marked_action, self, NULL, NULL, G_TYPE_CHECK_INSTANCE_CAST (selected, G_TYPE_OBJECT, GObject));
+#line 963 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_add_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (selected, GEE_TYPE_COLLECTION, GeeCollection));
+#line 965 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_selected_unselected (self, G_TYPE_CHECK_INSTANCE_CAST (selected, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (unselected, GEE_TYPE_COLLECTION, GeeCollection));
+#line 954 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (selected);
+#line 954 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (unselected);
+#line 5934 "ViewCollection.c"
+}
+
+
+static gboolean _view_collection_toggle_item_marked_action (DataObject* object, GObject* user, gpointer self) {
+ gboolean result;
+ result = view_collection_toggle_item ((ViewCollection*) self, object, user);
+#line 972 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 5943 "ViewCollection.c"
+}
+
+
+void view_collection_toggle_marked (ViewCollection* self, Marker* marker) {
+ ViewCollectionToggleLists* lists = NULL;
+ ViewCollectionToggleLists* _tmp0_ = NULL;
+ Marker* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GeeArrayList* _tmp3_ = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+#line 970 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 970 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_MARKER (marker));
+#line 971 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = view_collection_toggle_lists_new ();
+#line 971 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ lists = _tmp0_;
+#line 972 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = marker;
+#line 972 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_collection_act_on_marked (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp1_, _view_collection_toggle_item_marked_action, self, NULL, NULL, G_TYPE_CHECK_INSTANCE_CAST (lists, G_TYPE_OBJECT, GObject));
+#line 975 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = lists->selected;
+#line 975 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_add_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 976 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = lists->unselected;
+#line 976 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_remove_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 978 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = lists->selected;
+#line 978 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = lists->unselected;
+#line 978 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_selected_unselected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 970 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (lists);
+#line 5983 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_toggle_item (ViewCollection* self, DataObject* object, GObject* user) {
+ gboolean result = FALSE;
+ DataView* view = NULL;
+ DataObject* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ ViewCollectionToggleLists* lists = NULL;
+ GObject* _tmp2_ = NULL;
+ ViewCollectionToggleLists* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 981 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 981 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 981 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail ((user == NULL) || G_IS_OBJECT (user), FALSE);
+#line 982 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = object;
+#line 982 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_VIEW, DataView));
+#line 982 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp1_;
+#line 983 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = user;
+#line 983 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, VIEW_COLLECTION_TYPE_TOGGLE_LISTS, ViewCollectionToggleLists));
+#line 983 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ lists = _tmp3_;
+#line 989 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = view;
+#line 989 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = data_view_internal_toggle (_tmp4_);
+#line 989 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_) {
+#line 6021 "ViewCollection.c"
+ DataView* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 990 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = view;
+#line 990 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = data_view_is_visible (_tmp6_);
+#line 990 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp7_) {
+#line 6030 "ViewCollection.c"
+ ViewCollectionToggleLists* _tmp8_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ DataView* _tmp10_ = NULL;
+#line 991 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = lists;
+#line 991 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = _tmp8_->selected;
+#line 991 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = view;
+#line 991 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 6042 "ViewCollection.c"
+ }
+ } else {
+ ViewCollectionToggleLists* _tmp11_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ DataView* _tmp13_ = NULL;
+#line 993 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = lists;
+#line 993 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = _tmp11_->unselected;
+#line 993 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = view;
+#line 993 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp13_);
+#line 6056 "ViewCollection.c"
+ }
+#line 996 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 996 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (lists);
+#line 996 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 996 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6066 "ViewCollection.c"
+}
+
+
+gint view_collection_get_selected_count (ViewCollection* self) {
+ gint result = 0;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 999 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), 0);
+#line 1000 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->selected;
+#line 1000 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = data_set_get_count (_tmp0_);
+#line 1000 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp1_;
+#line 1000 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6084 "ViewCollection.c"
+}
+
+
+GeeList* view_collection_get_selected (ViewCollection* self) {
+ GeeList* result = NULL;
+ DataSet* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 1003 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1004 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->selected;
+#line 1004 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = data_set_get_all (_tmp0_);
+#line 1004 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_LIST, GeeList);
+#line 1004 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6102 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index) {
+ DataView* result = NULL;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ DataObject* _tmp2_ = NULL;
+#line 1007 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1008 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->selected;
+#line 1008 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = index;
+#line 1008 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_set_get_at (_tmp0_, _tmp1_);
+#line 1008 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_VIEW, DataView);
+#line 1008 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6123 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_is_visible (ViewCollection* self, DataView* view) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ DataSet* _tmp1_ = NULL;
+#line 1011 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 1011 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->visible;
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp1_ != NULL) {
+#line 6139 "ViewCollection.c"
+ DataSet* _tmp2_ = NULL;
+ DataView* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->visible;
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = view;
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = data_set_contains (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = _tmp4_;
+#line 6151 "ViewCollection.c"
+ } else {
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = TRUE;
+#line 6155 "ViewCollection.c"
+ }
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_;
+#line 1012 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6161 "ViewCollection.c"
+}
+
+
+static gboolean view_collection_add_many_visible (ViewCollection* self, GeeCollection* many) {
+ gboolean result = FALSE;
+ DataSet* _tmp0_ = NULL;
+ DataSet* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataSet* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 1015 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 1015 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (many), FALSE);
+#line 1016 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->visible;
+#line 1016 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp0_ == NULL) {
+#line 1017 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 1017 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6186 "ViewCollection.c"
+ }
+#line 1019 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->visible;
+#line 1019 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = many;
+#line 1019 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_set_add_many (_tmp1_, _tmp2_);
+#line 1019 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 1020 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = FALSE;
+#line 1020 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6200 "ViewCollection.c"
+ }
+#line 1023 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = self->priv->visible;
+#line 1023 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = data_set_get_count (_tmp4_);
+#line 1023 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1023 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_ == _tmp6_) {
+#line 1024 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_set_unref0 (self->priv->visible);
+#line 1024 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->visible = NULL;
+#line 6214 "ViewCollection.c"
+ }
+#line 1026 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 1026 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6220 "ViewCollection.c"
+}
+
+
+static void view_collection_hide_items (ViewCollection* self, GeeList* to_hide) {
+ GeeArrayList* unselected = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint count = 0;
+ GeeList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ DataSet* _tmp22_ = NULL;
+ gboolean removed = FALSE;
+ DataSet* _tmp24_ = NULL;
+ GeeList* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ GeeArrayList* _tmp28_ = NULL;
+ GeeArrayList* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ GeeList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 1030 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 1030 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_LIST (to_hide));
+#line 1031 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1031 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ unselected = _tmp0_;
+#line 1033 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = to_hide;
+#line 1033 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1033 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 1033 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ count = _tmp3_;
+#line 6260 "ViewCollection.c"
+ {
+ gint ctr = 0;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ctr = 0;
+#line 6265 "ViewCollection.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = TRUE;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 6272 "ViewCollection.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ DataView* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ DataView* _tmp21_ = NULL;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp4_) {
+#line 6286 "ViewCollection.c"
+ gint _tmp5_ = 0;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = ctr;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ctr = _tmp5_ + 1;
+#line 6292 "ViewCollection.c"
+ }
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = FALSE;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = ctr;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = count;
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 6304 "ViewCollection.c"
+ }
+#line 1035 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = to_hide;
+#line 1035 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = ctr;
+#line 1035 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = gee_list_get (_tmp8_, _tmp9_);
+#line 1035 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp10_;
+#line 1036 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = view;
+#line 1036 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = data_view_is_visible (_tmp11_);
+#line 1036 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp12_, "view.is_visible()");
+#line 1038 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = view;
+#line 1038 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = data_view_is_selected (_tmp13_);
+#line 1038 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp14_) {
+#line 6326 "ViewCollection.c"
+ DataView* _tmp15_ = NULL;
+ GeeArrayList* _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+#line 1039 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = view;
+#line 1039 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_view_internal_set_selected (_tmp15_, FALSE);
+#line 1040 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = unselected;
+#line 1040 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = view;
+#line 1040 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp17_);
+#line 6340 "ViewCollection.c"
+ } else {
+ DataSet* _tmp18_ = NULL;
+ DataView* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 1042 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = self->priv->selected;
+#line 1042 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = view;
+#line 1042 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = data_set_contains (_tmp18_, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_DATA_OBJECT, DataObject));
+#line 1042 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (!_tmp20_, "!selected.contains(view)");
+#line 6353 "ViewCollection.c"
+ }
+#line 1045 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = view;
+#line 1045 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_view_internal_set_visible (_tmp21_, FALSE);
+#line 1034 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 6361 "ViewCollection.c"
+ }
+ }
+ }
+#line 1048 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = self->priv->visible;
+#line 1048 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp22_ == NULL) {
+#line 6369 "ViewCollection.c"
+ DataSet* _tmp23_ = NULL;
+#line 1050 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = data_collection_get_dataset_copy (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1050 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_set_unref0 (self->priv->visible);
+#line 1050 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->visible = _tmp23_;
+#line 6377 "ViewCollection.c"
+ }
+#line 1053 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = self->priv->visible;
+#line 1053 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = to_hide;
+#line 1053 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = data_set_remove_many (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1053 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ removed = _tmp26_;
+#line 1054 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = removed;
+#line 1054 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp27_, "removed");
+#line 1056 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = unselected;
+#line 1056 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_remove_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1058 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = unselected;
+#line 1058 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp30_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1058 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp31_ = _tmp30_;
+#line 1058 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp31_ > 0) {
+#line 6403 "ViewCollection.c"
+ GeeArrayList* _tmp32_ = NULL;
+#line 1059 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp32_ = unselected;
+#line 1059 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_selected_unselected (self, NULL, G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 6409 "ViewCollection.c"
+ }
+#line 1061 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp33_ = to_hide;
+#line 1061 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp34_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1061 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp35_ = _tmp34_;
+#line 1061 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp35_ > 0) {
+#line 6419 "ViewCollection.c"
+ GeeList* _tmp36_ = NULL;
+ GeeList* _tmp37_ = NULL;
+#line 1062 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp36_ = to_hide;
+#line 1062 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_hidden (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1063 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp37_ = to_hide;
+#line 1063 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_visibility_changed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 6430 "ViewCollection.c"
+ }
+#line 1030 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (unselected);
+#line 6434 "ViewCollection.c"
+}
+
+
+static void view_collection_show_items (ViewCollection* self, GeeList* to_show) {
+ GeeArrayList* added_selected = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint count = 0;
+ GeeList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean added = FALSE;
+ GeeList* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ GeeArrayList* _tmp24_ = NULL;
+ GeeList* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 1068 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 1068 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_LIST (to_show));
+#line 1069 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1069 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ added_selected = _tmp0_;
+#line 1071 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = to_show;
+#line 1071 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1071 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 1071 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ count = _tmp3_;
+#line 6469 "ViewCollection.c"
+ {
+ gint ctr = 0;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ctr = 0;
+#line 6474 "ViewCollection.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = TRUE;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 6481 "ViewCollection.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gpointer _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ DataView* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp4_) {
+#line 6495 "ViewCollection.c"
+ gint _tmp5_ = 0;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = ctr;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ctr = _tmp5_ + 1;
+#line 6501 "ViewCollection.c"
+ }
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = FALSE;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = ctr;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = count;
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!(_tmp6_ < _tmp7_)) {
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 6513 "ViewCollection.c"
+ }
+#line 1073 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = to_show;
+#line 1073 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = ctr;
+#line 1073 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = gee_list_get (_tmp8_, _tmp9_);
+#line 1073 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp10_;
+#line 1074 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = view;
+#line 1074 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = data_view_is_visible (_tmp11_);
+#line 1074 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (!_tmp12_, "!view.is_visible()");
+#line 1076 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = view;
+#line 1076 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data_view_internal_set_visible (_tmp13_, TRUE);
+#line 1079 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = view;
+#line 1079 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = data_view_is_selected (_tmp14_);
+#line 1079 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_) {
+#line 6539 "ViewCollection.c"
+ DataSet* _tmp16_ = NULL;
+ DataView* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ GeeArrayList* _tmp19_ = NULL;
+ DataView* _tmp20_ = NULL;
+#line 1080 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = self->priv->selected;
+#line 1080 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = view;
+#line 1080 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = data_set_contains (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_OBJECT, DataObject));
+#line 1080 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (!_tmp18_, "!selected.contains(view)");
+#line 1081 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = added_selected;
+#line 1081 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp20_ = view;
+#line 1081 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp20_);
+#line 6559 "ViewCollection.c"
+ }
+#line 1072 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 6563 "ViewCollection.c"
+ }
+ }
+ }
+#line 1085 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp21_ = to_show;
+#line 1085 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp22_ = view_collection_add_many_visible (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1085 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ added = _tmp22_;
+#line 1086 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp23_ = added;
+#line 1086 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp23_, "added");
+#line 1088 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp24_ = added_selected;
+#line 1088 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_add_many_selected (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1090 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp25_ = to_show;
+#line 1090 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp26_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1090 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp27_ = _tmp26_;
+#line 1090 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp27_ > 0) {
+#line 6589 "ViewCollection.c"
+ GeeList* _tmp28_ = NULL;
+ GeeList* _tmp29_ = NULL;
+#line 1091 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp28_ = to_show;
+#line 1091 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_shown (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1092 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp29_ = to_show;
+#line 1092 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_items_visibility_changed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 6600 "ViewCollection.c"
+ }
+#line 1068 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (added_selected);
+#line 6604 "ViewCollection.c"
+}
+
+
+gboolean view_collection_has_view_for_source (ViewCollection* self, DataSource* source) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1097 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 1097 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 1098 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = source;
+#line 1098 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view_collection_get_view_for_source (self, _tmp0_);
+#line 1098 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 1098 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_ != NULL;
+#line 1098 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1098 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp3_;
+#line 1098 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6632 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source) {
+ DataView* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 1102 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1102 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 1103 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->source_map;
+#line 1103 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = source;
+#line 1103 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 1103 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = (DataView*) _tmp2_;
+#line 1103 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6655 "ViewCollection.c"
+}
+
+
+gboolean view_collection_has_view_for_source_with_filtered (ViewCollection* self, DataSource* source) {
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1107 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 1107 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 1108 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = source;
+#line 1108 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view_collection_get_view_for_source_filtered (self, _tmp0_);
+#line 1108 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 1108 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_ != NULL;
+#line 1108 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1108 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp3_;
+#line 1108 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6683 "ViewCollection.c"
+}
+
+
+DataView* view_collection_get_view_for_source_filtered (ViewCollection* self, DataSource* source) {
+ DataView* result = NULL;
+ DataView* view = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataView* _tmp4_ = NULL;
+#line 1112 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1112 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 1113 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->source_map;
+#line 1113 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = source;
+#line 1113 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 1113 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp2_;
+#line 1115 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = view;
+#line 1115 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp4_ != NULL) {
+#line 6711 "ViewCollection.c"
+ DataView* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 1115 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = view;
+#line 1115 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = view_collection_is_in_filter (self, _tmp5_);
+#line 1115 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = !_tmp6_;
+#line 6720 "ViewCollection.c"
+ } else {
+#line 1115 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = FALSE;
+#line 6724 "ViewCollection.c"
+ }
+#line 1115 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp3_) {
+#line 1116 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = NULL;
+#line 1116 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 1116 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6734 "ViewCollection.c"
+ }
+#line 1117 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = view;
+#line 1117 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6740 "ViewCollection.c"
+}
+
+
+GeeCollection* view_collection_get_sources (ViewCollection* self) {
+ GeeCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+#line 1121 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->source_map;
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp1_;
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_set_get_read_only_view (_tmp3_);
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp6_;
+#line 1122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6775 "ViewCollection.c"
+}
+
+
+gboolean view_collection_has_source_of_type (ViewCollection* self, GType t) {
+ gboolean result = FALSE;
+ GType _tmp0_ = 0UL;
+ gboolean _tmp1_ = FALSE;
+#line 1126 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 1127 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = t;
+#line 1127 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = g_type_is_a (_tmp0_, TYPE_DATA_SOURCE);
+#line 1127 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp1_, "t.is_a(typeof(DataSource))");
+#line 6791 "ViewCollection.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = self->priv->source_map;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _tmp3_;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _tmp6_;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _source_it = _tmp7_;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 6818 "ViewCollection.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ DataSource* source = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ GType _tmp13_ = 0UL;
+ GType _tmp14_ = 0UL;
+ gboolean _tmp15_ = FALSE;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = _source_it;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp9_) {
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 6836 "ViewCollection.c"
+ }
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = _source_it;
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = (DataSource*) _tmp11_;
+#line 1130 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = source;
+#line 1130 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, G_TYPE_OBJECT, GObject));
+#line 1130 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = t;
+#line 1130 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = g_type_is_a (_tmp13_, _tmp14_);
+#line 1130 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_) {
+#line 1131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 1131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 1131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 1131 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6862 "ViewCollection.c"
+ }
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 6866 "ViewCollection.c"
+ }
+#line 1129 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_source_it);
+#line 6870 "ViewCollection.c"
+ }
+#line 1134 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = FALSE;
+#line 1134 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6876 "ViewCollection.c"
+}
+
+
+gint view_collection_get_sources_of_type_count (ViewCollection* self, GType t) {
+ gint result = 0;
+ GType _tmp0_ = 0UL;
+ gboolean _tmp1_ = FALSE;
+ gint count = 0;
+#line 1137 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), 0);
+#line 1138 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = t;
+#line 1138 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = g_type_is_a (_tmp0_, TYPE_DATA_SOURCE);
+#line 1138 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp1_, "t.is_a(typeof(DataSource))");
+#line 1140 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ count = 0;
+#line 6895 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp5_;
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 6916 "ViewCollection.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ DataObject* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ GType _tmp13_ = 0UL;
+ GType _tmp14_ = 0UL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = _object_it;
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp7_) {
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 6937 "ViewCollection.c"
+ }
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = _object_it;
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp9_;
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = object;
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_VIEW, DataView));
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = _tmp11_;
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, G_TYPE_OBJECT, GObject));
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = t;
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = g_type_is_a (_tmp13_, _tmp14_);
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = _tmp15_;
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1142 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp16_) {
+#line 6963 "ViewCollection.c"
+ gint _tmp17_ = 0;
+#line 1143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = count;
+#line 1143 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ count = _tmp17_ + 1;
+#line 6969 "ViewCollection.c"
+ }
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 6973 "ViewCollection.c"
+ }
+#line 1141 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 6977 "ViewCollection.c"
+ }
+#line 1146 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = count;
+#line 1146 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 6983 "ViewCollection.c"
+}
+
+
+GeeList* view_collection_get_sources_of_type (ViewCollection* self, GType t) {
+ GeeList* result = NULL;
+ GType _tmp0_ = 0UL;
+ gboolean _tmp1_ = FALSE;
+ GeeList* sources = NULL;
+#line 1149 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1150 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = t;
+#line 1150 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = g_type_is_a (_tmp0_, TYPE_DATA_SOURCE);
+#line 1150 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _vala_assert (_tmp1_, "t.is_a(typeof(DataSource))");
+#line 1152 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sources = NULL;
+#line 7002 "ViewCollection.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _tmp4_;
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _object_it = _tmp5_;
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 7023 "ViewCollection.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ DataSource* source = NULL;
+ DataObject* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ GType _tmp13_ = 0UL;
+ GType _tmp14_ = 0UL;
+ gboolean _tmp15_ = FALSE;
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = _object_it;
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp7_) {
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 7044 "ViewCollection.c"
+ }
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = _object_it;
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = (DataObject*) _tmp9_;
+#line 1154 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = object;
+#line 1154 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_VIEW, DataView));
+#line 1154 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = _tmp11_;
+#line 1155 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = source;
+#line 1155 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, G_TYPE_OBJECT, GObject));
+#line 1155 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = t;
+#line 1155 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = g_type_is_a (_tmp13_, _tmp14_);
+#line 1155 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_) {
+#line 7068 "ViewCollection.c"
+ GeeList* _tmp16_ = NULL;
+ GeeList* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+#line 1156 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = sources;
+#line 1156 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp16_ == NULL) {
+#line 7076 "ViewCollection.c"
+ GeeArrayList* _tmp17_ = NULL;
+#line 1157 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1157 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (sources);
+#line 1157 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_LIST, GeeList);
+#line 7084 "ViewCollection.c"
+ }
+#line 1159 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = sources;
+#line 1159 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = source;
+#line 1159 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), _tmp19_);
+#line 7092 "ViewCollection.c"
+ }
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 7098 "ViewCollection.c"
+ }
+#line 1153 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_object_it);
+#line 7102 "ViewCollection.c"
+ }
+#line 1163 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = sources;
+#line 1163 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 7108 "ViewCollection.c"
+}
+
+
+GeeList* view_collection_get_selected_sources (ViewCollection* self) {
+ GeeList* result = NULL;
+ GeeList* sources = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ gint count = 0;
+ DataSet* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 1166 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1167 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1167 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
+#line 1169 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->selected;
+#line 1169 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_set_get_count (_tmp1_);
+#line 1169 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ count = _tmp2_;
+#line 7131 "ViewCollection.c"
+ {
+ gint ctr = 0;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ctr = 0;
+#line 7136 "ViewCollection.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = TRUE;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 7143 "ViewCollection.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GeeList* _tmp7_ = NULL;
+ DataSet* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ DataObject* _tmp10_ = NULL;
+ DataView* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ DataSource* _tmp13_ = NULL;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp3_) {
+#line 7155 "ViewCollection.c"
+ gint _tmp4_ = 0;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = ctr;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ctr = _tmp4_ + 1;
+#line 7161 "ViewCollection.c"
+ }
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = FALSE;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = ctr;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = count;
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!(_tmp5_ < _tmp6_)) {
+#line 1170 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 7173 "ViewCollection.c"
+ }
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = sources;
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = self->priv->selected;
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = ctr;
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = data_set_get_at (_tmp8_, _tmp9_);
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_VIEW, DataView);
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = data_view_get_source (_tmp11_);
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = _tmp12_;
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection), _tmp13_);
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp13_);
+#line 1171 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp11_);
+#line 7195 "ViewCollection.c"
+ }
+ }
+ }
+#line 1173 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = sources;
+#line 1173 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 7203 "ViewCollection.c"
+}
+
+
+DataSource* view_collection_get_selected_source_at (ViewCollection* self, gint index) {
+ DataSource* result = NULL;
+ DataObject* object = NULL;
+ DataSet* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ DataObject* _tmp2_ = NULL;
+ DataSource* _tmp3_ = NULL;
+ DataObject* _tmp4_ = NULL;
+#line 1176 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1177 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->selected;
+#line 1177 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = index;
+#line 1177 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_set_get_at (_tmp0_, _tmp1_);
+#line 1177 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ object = _tmp2_;
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = object;
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp4_ != NULL) {
+#line 7229 "ViewCollection.c"
+ DataObject* _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = object;
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = data_view_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_VIEW, DataView));
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp6_;
+#line 7240 "ViewCollection.c"
+ } else {
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = NULL;
+#line 7246 "ViewCollection.c"
+ }
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp3_;
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (object);
+#line 1179 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 7254 "ViewCollection.c"
+}
+
+
+GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t) {
+ GeeList* result = NULL;
+ GeeList* sources = NULL;
+#line 1182 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), NULL);
+#line 1183 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sources = NULL;
+#line 7265 "ViewCollection.c"
+ {
+ GeeList* _view_list = NULL;
+ GeeList* _tmp0_ = NULL;
+ gint _view_size = 0;
+ GeeList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _view_index = 0;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = view_collection_get_selected (self);
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_list = _tmp0_;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = _view_list;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _tmp2_;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_size = _tmp3_;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_index = -1;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 7290 "ViewCollection.c"
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ DataView* view = NULL;
+ GeeList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gpointer _tmp9_ = NULL;
+ DataSource* source = NULL;
+ DataView* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ DataSource* _tmp12_ = NULL;
+ GType _tmp13_ = 0UL;
+ GType _tmp14_ = 0UL;
+ gboolean _tmp15_ = FALSE;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = _view_index;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_index = _tmp4_ + 1;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _view_index;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = _view_size;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!(_tmp5_ < _tmp6_)) {
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 7317 "ViewCollection.c"
+ }
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _view_list;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = _view_index;
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = gee_list_get (_tmp7_, _tmp8_);
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp9_;
+#line 1185 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = view;
+#line 1185 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = data_view_get_source (_tmp10_);
+#line 1185 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ source = _tmp11_;
+#line 1186 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = source;
+#line 1186 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, G_TYPE_OBJECT, GObject));
+#line 1186 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = t;
+#line 1186 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = g_type_is_a (_tmp13_, _tmp14_);
+#line 1186 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp15_) {
+#line 7343 "ViewCollection.c"
+ GeeList* _tmp16_ = NULL;
+ GeeList* _tmp18_ = NULL;
+ DataSource* _tmp19_ = NULL;
+#line 1187 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = sources;
+#line 1187 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp16_ == NULL) {
+#line 7351 "ViewCollection.c"
+ GeeArrayList* _tmp17_ = NULL;
+#line 1188 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = gee_array_list_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 1188 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (sources);
+#line 1188 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ sources = G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_LIST, GeeList);
+#line 7359 "ViewCollection.c"
+ }
+#line 1190 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp18_ = sources;
+#line 1190 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp19_ = source;
+#line 1190 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), _tmp19_);
+#line 7367 "ViewCollection.c"
+ }
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (source);
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 7373 "ViewCollection.c"
+ }
+#line 1184 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_view_list);
+#line 7377 "ViewCollection.c"
+ }
+#line 1194 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = sources;
+#line 1194 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 7383 "ViewCollection.c"
+}
+
+
+gint view_collection_index_of_source (ViewCollection* self, DataSource* source) {
+ gint result = 0;
+ DataView* view = NULL;
+ DataSource* _tmp0_ = NULL;
+ DataView* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ DataView* _tmp3_ = NULL;
+#line 1198 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), 0);
+#line 1198 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), 0);
+#line 1199 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = source;
+#line 1199 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view_collection_get_view_for_source (self, _tmp0_);
+#line 1199 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = _tmp1_;
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = view;
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp3_ != NULL) {
+#line 7408 "ViewCollection.c"
+ DataView* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = view;
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = data_collection_index_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_OBJECT, DataObject));
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = _tmp5_;
+#line 7417 "ViewCollection.c"
+ } else {
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = -1;
+#line 7421 "ViewCollection.c"
+ }
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp2_;
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 1201 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 7429 "ViewCollection.c"
+}
+
+
+void view_collection_internal_notify_view_altered (ViewCollection* self, DataView* view) {
+ gboolean _tmp0_ = FALSE;
+#line 1205 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 1205 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 1206 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_are_notifications_frozen (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1206 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp0_) {
+#line 7443 "ViewCollection.c"
+ DataView* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 1207 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view;
+#line 1207 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_item_view_altered (self, _tmp1_);
+#line 1208 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = view;
+#line 1208 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_collection_get_singleton (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 1208 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1208 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_views_altered (self, _tmp4_);
+#line 1208 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp4_);
+#line 7462 "ViewCollection.c"
+ } else {
+ GeeHashSet* _tmp5_ = NULL;
+ GeeHashSet* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+#line 1210 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = self->priv->frozen_views_altered;
+#line 1210 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_ == NULL) {
+#line 7471 "ViewCollection.c"
+ GeeHashSet* _tmp6_ = NULL;
+#line 1211 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_hash_set_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1211 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->frozen_views_altered);
+#line 1211 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->frozen_views_altered = _tmp6_;
+#line 7479 "ViewCollection.c"
+ }
+#line 1212 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = self->priv->frozen_views_altered;
+#line 1212 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = view;
+#line 1212 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp8_);
+#line 7487 "ViewCollection.c"
+ }
+}
+
+
+void view_collection_internal_notify_geometry_altered (ViewCollection* self, DataView* view) {
+ gboolean _tmp0_ = FALSE;
+#line 1217 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_COLLECTION (self));
+#line 1217 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 1218 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = data_collection_are_notifications_frozen (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1218 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp0_) {
+#line 7502 "ViewCollection.c"
+ DataView* _tmp1_ = NULL;
+ DataView* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 1219 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = view;
+#line 1219 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_item_geometry_altered (self, _tmp1_);
+#line 1220 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = view;
+#line 1220 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = data_collection_get_singleton (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_OBJECT, DataObject));
+#line 1220 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 1220 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_geometries_altered (self, _tmp4_);
+#line 1220 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_tmp4_);
+#line 7521 "ViewCollection.c"
+ } else {
+ GeeHashSet* _tmp5_ = NULL;
+ GeeHashSet* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+#line 1222 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = self->priv->frozen_geometries_altered;
+#line 1222 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp5_ == NULL) {
+#line 7530 "ViewCollection.c"
+ GeeHashSet* _tmp6_ = NULL;
+#line 1223 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_hash_set_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 1223 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->frozen_geometries_altered);
+#line 1223 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->frozen_geometries_altered = _tmp6_;
+#line 7538 "ViewCollection.c"
+ }
+#line 1224 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = self->priv->frozen_geometries_altered;
+#line 1224 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = view;
+#line 1224 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp8_);
+#line 7546 "ViewCollection.c"
+ }
+}
+
+
+static void view_collection_real_notify_thawed (DataCollection* base) {
+ ViewCollection * self;
+ GeeHashSet* _tmp0_ = NULL;
+ GeeHashSet* _tmp9_ = NULL;
+#line 1228 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 1229 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->priv->frozen_views_altered;
+#line 1229 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp0_ != NULL) {
+#line 7561 "ViewCollection.c"
+ GeeHashSet* _tmp8_ = NULL;
+ {
+ GeeIterator* _view_it = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->priv->frozen_views_altered;
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_it = _tmp2_;
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 7575 "ViewCollection.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _view_it;
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp4_) {
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 7590 "ViewCollection.c"
+ }
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _view_it;
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp6_;
+#line 1231 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = view;
+#line 1231 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_item_view_altered (self, _tmp7_);
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 7604 "ViewCollection.c"
+ }
+#line 1230 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_view_it);
+#line 7608 "ViewCollection.c"
+ }
+#line 1232 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = self->priv->frozen_views_altered;
+#line 1232 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_views_altered (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->frozen_views_altered);
+#line 1233 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->frozen_views_altered = NULL;
+#line 7618 "ViewCollection.c"
+ }
+#line 1236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = self->priv->frozen_geometries_altered;
+#line 1236 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (_tmp9_ != NULL) {
+#line 7624 "ViewCollection.c"
+ GeeHashSet* _tmp17_ = NULL;
+ {
+ GeeIterator* _view_it = NULL;
+ GeeHashSet* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = self->priv->frozen_geometries_altered;
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = gee_abstract_collection_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection));
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_it = _tmp11_;
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ while (TRUE) {
+#line 7638 "ViewCollection.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ DataView* view = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ DataView* _tmp16_ = NULL;
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = _view_it;
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!_tmp13_) {
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ break;
+#line 7653 "ViewCollection.c"
+ }
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp14_ = _view_it;
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view = (DataView*) _tmp15_;
+#line 1238 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp16_ = view;
+#line 1238 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_item_geometry_altered (self, _tmp16_);
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (view);
+#line 7667 "ViewCollection.c"
+ }
+#line 1237 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (_view_it);
+#line 7671 "ViewCollection.c"
+ }
+#line 1239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp17_ = self->priv->frozen_geometries_altered;
+#line 1239 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_notify_geometries_altered (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1240 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->frozen_geometries_altered);
+#line 1240 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->frozen_geometries_altered = NULL;
+#line 7681 "ViewCollection.c"
+ }
+#line 1243 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->notify_thawed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 7685 "ViewCollection.c"
+}
+
+
+gboolean view_collection_are_items_filtered_out (ViewCollection* self) {
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 1246 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (self), FALSE);
+#line 1247 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = DATA_COLLECTION_CLASS (view_collection_parent_class)->get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1247 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection));
+#line 1247 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = _tmp0_ != _tmp1_;
+#line 1247 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 7703 "ViewCollection.c"
+}
+
+
+static void view_collection_real_items_selected (ViewCollection* self, GeeIterable* selected) {
+#line 75 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (selected));
+#line 7710 "ViewCollection.c"
+}
+
+
+static void view_collection_real_items_unselected (ViewCollection* self, GeeIterable* unselected) {
+#line 79 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (unselected));
+#line 7717 "ViewCollection.c"
+}
+
+
+static void view_collection_real_items_state_changed (ViewCollection* self, GeeIterable* changed) {
+#line 83 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (changed));
+#line 7724 "ViewCollection.c"
+}
+
+
+static void view_collection_real_selection_group_altered (ViewCollection* self) {
+}
+
+
+static void view_collection_real_items_shown (ViewCollection* self, GeeCollection* visible) {
+#line 94 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (visible));
+#line 7735 "ViewCollection.c"
+}
+
+
+static void view_collection_real_items_hidden (ViewCollection* self, GeeCollection* hidden) {
+#line 98 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (hidden));
+#line 7742 "ViewCollection.c"
+}
+
+
+static void view_collection_real_items_visibility_changed (ViewCollection* self, GeeCollection* changed) {
+#line 102 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (changed));
+#line 7749 "ViewCollection.c"
+}
+
+
+static void view_collection_real_item_view_altered (ViewCollection* self, DataView* view) {
+#line 106 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 7756 "ViewCollection.c"
+}
+
+
+static void view_collection_real_item_geometry_altered (ViewCollection* self, DataView* view) {
+#line 110 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_DATA_VIEW (view));
+#line 7763 "ViewCollection.c"
+}
+
+
+static void view_collection_real_views_altered (ViewCollection* self, GeeCollection* views) {
+#line 113 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (views));
+#line 7770 "ViewCollection.c"
+}
+
+
+static void view_collection_real_geometries_altered (ViewCollection* self, GeeCollection* views) {
+#line 116 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (views));
+#line 7777 "ViewCollection.c"
+}
+
+
+static void view_collection_real_view_filter_installed (ViewCollection* self, ViewFilter* filer) {
+#line 119 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_FILTER (filer));
+#line 7784 "ViewCollection.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__VIEW_FILTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__VIEW_FILTER) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__VIEW_FILTER callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data1 = closure->data;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 7803 "ViewCollection.c"
+ } else {
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ data2 = closure->data;
+#line 7809 "ViewCollection.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ callback = (GMarshalFunc_VOID__VIEW_FILTER) (marshal_data ? marshal_data : cc->callback);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ callback (data1, value_get_view_filter (param_values + 1), data2);
+#line 7815 "ViewCollection.c"
+}
+
+
+static void view_collection_real_view_filter_removed (ViewCollection* self, ViewFilter* filer) {
+#line 122 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (IS_VIEW_FILTER (filer));
+#line 7822 "ViewCollection.c"
+}
+
+
+ViewCollectionMonitor* view_collection_monitor_construct (GType object_type) {
+ ViewCollectionMonitor* self = NULL;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = (ViewCollectionMonitor*) g_type_create_instance (object_type);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self;
+#line 7832 "ViewCollection.c"
+}
+
+
+ViewCollectionMonitor* view_collection_monitor_new (void) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return view_collection_monitor_construct (VIEW_COLLECTION_TYPE_MONITOR);
+#line 7839 "ViewCollection.c"
+}
+
+
+static void view_collection_value_monitor_init (GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 7846 "ViewCollection.c"
+}
+
+
+static void view_collection_value_monitor_free_value (GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (value->data[0].v_pointer) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_monitor_unref (value->data[0].v_pointer);
+#line 7855 "ViewCollection.c"
+ }
+}
+
+
+static void view_collection_value_monitor_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (src_value->data[0].v_pointer) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dest_value->data[0].v_pointer = view_collection_monitor_ref (src_value->data[0].v_pointer);
+#line 7865 "ViewCollection.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 7869 "ViewCollection.c"
+ }
+}
+
+
+static gpointer view_collection_value_monitor_peek_pointer (const GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return value->data[0].v_pointer;
+#line 7877 "ViewCollection.c"
+}
+
+
+static gchar* view_collection_value_monitor_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (collect_values[0].v_pointer) {
+#line 7884 "ViewCollection.c"
+ ViewCollectionMonitor* object;
+ object = collect_values[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 7891 "ViewCollection.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 7895 "ViewCollection.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = view_collection_monitor_ref (object);
+#line 7899 "ViewCollection.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 7903 "ViewCollection.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return NULL;
+#line 7907 "ViewCollection.c"
+}
+
+
+static gchar* view_collection_value_monitor_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ViewCollectionMonitor** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!object_p) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 7918 "ViewCollection.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!value->data[0].v_pointer) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = NULL;
+#line 7924 "ViewCollection.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = value->data[0].v_pointer;
+#line 7928 "ViewCollection.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = view_collection_monitor_ref (value->data[0].v_pointer);
+#line 7932 "ViewCollection.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return NULL;
+#line 7936 "ViewCollection.c"
+}
+
+
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ViewCollectionParamSpecMonitor* spec;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, VIEW_COLLECTION_TYPE_MONITOR), NULL);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return G_PARAM_SPEC (spec);
+#line 7950 "ViewCollection.c"
+}
+
+
+gpointer view_collection_value_get_monitor (const GValue* value) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VIEW_COLLECTION_TYPE_MONITOR), NULL);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return value->data[0].v_pointer;
+#line 7959 "ViewCollection.c"
+}
+
+
+void view_collection_value_set_monitor (GValue* value, gpointer v_object) {
+ ViewCollectionMonitor* old;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VIEW_COLLECTION_TYPE_MONITOR));
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ old = value->data[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (v_object) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VIEW_COLLECTION_TYPE_MONITOR));
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_monitor_ref (value->data[0].v_pointer);
+#line 7979 "ViewCollection.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 7983 "ViewCollection.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (old) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_monitor_unref (old);
+#line 7989 "ViewCollection.c"
+ }
+}
+
+
+void view_collection_value_take_monitor (GValue* value, gpointer v_object) {
+ ViewCollectionMonitor* old;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, VIEW_COLLECTION_TYPE_MONITOR));
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ old = value->data[0].v_pointer;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (v_object) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, VIEW_COLLECTION_TYPE_MONITOR));
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 8008 "ViewCollection.c"
+ } else {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 8012 "ViewCollection.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (old) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_monitor_unref (old);
+#line 8018 "ViewCollection.c"
+ }
+}
+
+
+static void view_collection_monitor_class_init (ViewCollectionMonitorClass * klass) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionMonitorClass *) klass)->finalize = view_collection_monitor_finalize;
+#line 8028 "ViewCollection.c"
+}
+
+
+static void view_collection_monitor_instance_init (ViewCollectionMonitor * self) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->ref_count = 1;
+#line 8035 "ViewCollection.c"
+}
+
+
+static void view_collection_monitor_finalize (ViewCollectionMonitor* obj) {
+ ViewCollectionMonitor * self;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_destroy (self);
+#line 8045 "ViewCollection.c"
+}
+
+
+GType view_collection_monitor_get_type (void) {
+ static volatile gsize view_collection_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&view_collection_monitor_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { view_collection_value_monitor_init, view_collection_value_monitor_free_value, view_collection_value_monitor_copy_value, view_collection_value_monitor_peek_pointer, "p", view_collection_value_monitor_collect_value, "p", view_collection_value_monitor_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ViewCollectionMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_collection_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewCollectionMonitor), 0, (GInstanceInitFunc) view_collection_monitor_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType view_collection_monitor_type_id;
+ view_collection_monitor_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ViewCollectionMonitor", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&view_collection_monitor_type_id__volatile, view_collection_monitor_type_id);
+ }
+ return view_collection_monitor_type_id__volatile;
+}
+
+
+gpointer view_collection_monitor_ref (gpointer instance) {
+ ViewCollectionMonitor* self;
+ self = instance;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return instance;
+#line 8070 "ViewCollection.c"
+}
+
+
+void view_collection_monitor_unref (gpointer instance) {
+ ViewCollectionMonitor* self;
+ self = instance;
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_MONITOR_GET_CLASS (self)->finalize (self);
+#line 22 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 8083 "ViewCollection.c"
+ }
+}
+
+
+static void _view_collection_on_sources_added_data_collection_items_added (DataCollection* _sender, GeeIterable* added, gpointer self) {
+#line 44 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_sources_added ((ViewCollection*) self, _sender, added);
+#line 8091 "ViewCollection.c"
+}
+
+
+static void _view_collection_on_sources_removed_data_collection_items_removed (DataCollection* _sender, GeeIterable* removed, gpointer self) {
+#line 45 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_sources_removed ((ViewCollection*) self, removed);
+#line 8098 "ViewCollection.c"
+}
+
+
+static void _view_collection_on_sources_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 46 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_on_sources_altered ((ViewCollection*) self, _sender, items);
+#line 8105 "ViewCollection.c"
+}
+
+
+static gpointer _view_manager_ref0 (gpointer self) {
+#line 35 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self ? view_manager_ref (self) : NULL;
+#line 8112 "ViewCollection.c"
+}
+
+
+static gpointer _alteration_ref0 (gpointer self) {
+#line 36 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self ? alteration_ref (self) : NULL;
+#line 8119 "ViewCollection.c"
+}
+
+
+static ViewCollectionMonitorImpl* view_collection_monitor_impl_construct (GType object_type, ViewCollection* owner, SourceCollection* sources, ViewManager* manager, Alteration* prereq) {
+ ViewCollectionMonitorImpl* self = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ SourceCollection* _tmp2_ = NULL;
+ SourceCollection* _tmp3_ = NULL;
+ ViewManager* _tmp4_ = NULL;
+ ViewManager* _tmp5_ = NULL;
+ Alteration* _tmp6_ = NULL;
+ Alteration* _tmp7_ = NULL;
+ SourceCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ SourceCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ SourceCollection* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_COLLECTION (owner), NULL);
+#line 31 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_SOURCE_COLLECTION (sources), NULL);
+#line 31 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_MANAGER (manager), NULL);
+#line 31 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail ((prereq == NULL) || IS_ALTERATION (prereq), NULL);
+#line 31 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = (ViewCollectionMonitorImpl*) view_collection_monitor_construct (object_type);
+#line 33 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = owner;
+#line 33 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = _data_collection_ref0 (_tmp0_);
+#line 33 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_collection_unref0 (self->owner);
+#line 33 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->owner = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = sources;
+#line 34 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = _data_collection_ref0 (_tmp2_);
+#line 34 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_collection_unref0 (self->sources);
+#line 34 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->sources = _tmp3_;
+#line 35 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = manager;
+#line 35 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp5_ = _view_manager_ref0 (_tmp4_);
+#line 35 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_manager_unref0 (self->manager);
+#line 35 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->manager = _tmp5_;
+#line 36 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = prereq;
+#line 36 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = _alteration_ref0 (_tmp6_);
+#line 36 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _alteration_unref0 (self->prereq);
+#line 36 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->prereq = _tmp7_;
+#line 38 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp8_ = sources;
+#line 38 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp9_ = owner;
+#line 38 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), "items-added", (GCallback) _view_collection_on_sources_added_data_collection_items_added, _tmp9_);
+#line 39 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp10_ = sources;
+#line 39 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp11_ = owner;
+#line 39 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection), "items-removed", (GCallback) _view_collection_on_sources_removed_data_collection_items_removed, _tmp11_);
+#line 40 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp12_ = sources;
+#line 40 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp13_ = owner;
+#line 40 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _view_collection_on_sources_altered_data_collection_items_altered, _tmp13_);
+#line 31 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self;
+#line 8201 "ViewCollection.c"
+}
+
+
+static ViewCollectionMonitorImpl* view_collection_monitor_impl_new (ViewCollection* owner, SourceCollection* sources, ViewManager* manager, Alteration* prereq) {
+#line 31 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return view_collection_monitor_impl_construct (VIEW_COLLECTION_TYPE_MONITOR_IMPL, owner, sources, manager, prereq);
+#line 8208 "ViewCollection.c"
+}
+
+
+static void view_collection_monitor_impl_class_init (ViewCollectionMonitorImplClass * klass) {
+#line 25 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_monitor_impl_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionMonitorClass *) klass)->finalize = view_collection_monitor_impl_finalize;
+#line 8217 "ViewCollection.c"
+}
+
+
+static void view_collection_monitor_impl_instance_init (ViewCollectionMonitorImpl * self) {
+}
+
+
+static void view_collection_monitor_impl_finalize (ViewCollectionMonitor* obj) {
+ ViewCollectionMonitorImpl * self;
+ SourceCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ SourceCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ SourceCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 25 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, VIEW_COLLECTION_TYPE_MONITOR_IMPL, ViewCollectionMonitorImpl);
+#line 44 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = self->sources;
+#line 44 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = self->owner;
+#line 44 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_parse_name ("items-added", TYPE_DATA_COLLECTION, &_tmp2_, NULL, FALSE);
+#line 44 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _view_collection_on_sources_added_data_collection_items_added, _tmp1_);
+#line 45 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = self->sources;
+#line 45 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp4_ = self->owner;
+#line 45 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_parse_name ("items-removed", TYPE_DATA_COLLECTION, &_tmp5_, NULL, FALSE);
+#line 45 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _view_collection_on_sources_removed_data_collection_items_removed, _tmp4_);
+#line 46 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp6_ = self->sources;
+#line 46 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp7_ = self->owner;
+#line 46 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp8_, NULL, FALSE);
+#line 46 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _view_collection_on_sources_altered_data_collection_items_altered, _tmp7_);
+#line 26 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_collection_unref0 (self->owner);
+#line 27 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_collection_unref0 (self->sources);
+#line 28 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _view_manager_unref0 (self->manager);
+#line 29 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _alteration_unref0 (self->prereq);
+#line 25 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_COLLECTION_MONITOR_CLASS (view_collection_monitor_impl_parent_class)->finalize (obj);
+#line 8272 "ViewCollection.c"
+}
+
+
+static GType view_collection_monitor_impl_get_type (void) {
+ static volatile gsize view_collection_monitor_impl_type_id__volatile = 0;
+ if (g_once_init_enter (&view_collection_monitor_impl_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ViewCollectionMonitorImplClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_collection_monitor_impl_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewCollectionMonitorImpl), 0, (GInstanceInitFunc) view_collection_monitor_impl_instance_init, NULL };
+ GType view_collection_monitor_impl_type_id;
+ view_collection_monitor_impl_type_id = g_type_register_static (VIEW_COLLECTION_TYPE_MONITOR, "ViewCollectionMonitorImpl", &g_define_type_info, 0);
+ g_once_init_leave (&view_collection_monitor_impl_type_id__volatile, view_collection_monitor_impl_type_id);
+ }
+ return view_collection_monitor_impl_type_id__volatile;
+}
+
+
+static ViewCollectionToggleLists* view_collection_toggle_lists_construct (GType object_type) {
+ ViewCollectionToggleLists * self = NULL;
+#line 50 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = (ViewCollectionToggleLists*) g_object_new (object_type, NULL);
+#line 50 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self;
+#line 8294 "ViewCollection.c"
+}
+
+
+static ViewCollectionToggleLists* view_collection_toggle_lists_new (void) {
+#line 50 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return view_collection_toggle_lists_construct (VIEW_COLLECTION_TYPE_TOGGLE_LISTS);
+#line 8301 "ViewCollection.c"
+}
+
+
+static void view_collection_toggle_lists_class_init (ViewCollectionToggleListsClass * klass) {
+#line 50 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_toggle_lists_parent_class = g_type_class_peek_parent (klass);
+#line 50 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ G_OBJECT_CLASS (klass)->finalize = view_collection_toggle_lists_finalize;
+#line 8310 "ViewCollection.c"
+}
+
+
+static void view_collection_toggle_lists_instance_init (ViewCollectionToggleLists * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 51 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->selected = _tmp0_;
+#line 52 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 52 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->unselected = _tmp1_;
+#line 8325 "ViewCollection.c"
+}
+
+
+static void view_collection_toggle_lists_finalize (GObject* obj) {
+ ViewCollectionToggleLists * self;
+#line 50 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, VIEW_COLLECTION_TYPE_TOGGLE_LISTS, ViewCollectionToggleLists);
+#line 51 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->selected);
+#line 52 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->unselected);
+#line 50 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ G_OBJECT_CLASS (view_collection_toggle_lists_parent_class)->finalize (obj);
+#line 8339 "ViewCollection.c"
+}
+
+
+static GType view_collection_toggle_lists_get_type (void) {
+ static volatile gsize view_collection_toggle_lists_type_id__volatile = 0;
+ if (g_once_init_enter (&view_collection_toggle_lists_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ViewCollectionToggleListsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_collection_toggle_lists_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewCollectionToggleLists), 0, (GInstanceInitFunc) view_collection_toggle_lists_instance_init, NULL };
+ GType view_collection_toggle_lists_type_id;
+ view_collection_toggle_lists_type_id = g_type_register_static (G_TYPE_OBJECT, "ViewCollectionToggleLists", &g_define_type_info, 0);
+ g_once_init_leave (&view_collection_toggle_lists_type_id__volatile, view_collection_toggle_lists_type_id);
+ }
+ return view_collection_toggle_lists_type_id__volatile;
+}
+
+
+static void view_collection_class_init (ViewCollectionClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_collection_parent_class = g_type_class_peek_parent (klass);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->finalize = view_collection_finalize;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_type_class_add_private (klass, sizeof (ViewCollectionPrivate));
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_items_selected_unselected = view_collection_real_notify_items_selected_unselected;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_selection_group_altered = view_collection_real_notify_selection_group_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_item_view_altered = view_collection_real_notify_item_view_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_views_altered = view_collection_real_notify_views_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_item_geometry_altered = view_collection_real_notify_item_geometry_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_geometries_altered = view_collection_real_notify_geometries_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_items_shown = view_collection_real_notify_items_shown;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_items_hidden = view_collection_real_notify_items_hidden;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_items_visibility_changed = view_collection_real_notify_items_visibility_changed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_view_filter_installed = view_collection_real_notify_view_filter_installed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->notify_view_filter_removed = view_collection_real_notify_view_filter_removed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->clear = view_collection_real_clear;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->close = view_collection_real_close;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->valid_type = view_collection_real_valid_type;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->add = view_collection_real_add;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->add_many = view_collection_real_add_many;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->notify_items_added = view_collection_real_notify_items_added;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->notify_items_removed = view_collection_real_notify_items_removed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->items_altered = view_collection_real_items_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->set_comparator = view_collection_real_set_comparator;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->reset_comparator = view_collection_real_reset_comparator;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->get_all = view_collection_real_get_all;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->get_count = view_collection_real_get_count;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->get_at = view_collection_real_get_at;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->index_of = view_collection_real_index_of;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->contains = view_collection_real_contains;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->get_first = view_collection_real_get_first;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->get_first_unrejected = view_collection_real_get_first_unrejected;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->get_last = view_collection_real_get_last;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->get_next = view_collection_real_get_next;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->get_previous = view_collection_real_get_previous;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((DataCollectionClass *) klass)->notify_thawed = view_collection_real_notify_thawed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->items_selected = view_collection_real_items_selected;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->items_unselected = view_collection_real_items_unselected;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->items_state_changed = view_collection_real_items_state_changed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->selection_group_altered = view_collection_real_selection_group_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->items_shown = view_collection_real_items_shown;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->items_hidden = view_collection_real_items_hidden;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->items_visibility_changed = view_collection_real_items_visibility_changed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->item_view_altered = view_collection_real_item_view_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->item_geometry_altered = view_collection_real_item_geometry_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->views_altered = view_collection_real_views_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->geometries_altered = view_collection_real_geometries_altered;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->view_filter_installed = view_collection_real_view_filter_installed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewCollectionClass *) klass)->view_filter_removed = view_collection_real_view_filter_removed;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("items_selected", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, items_selected), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_ITERABLE);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("items_unselected", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, items_unselected), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_ITERABLE);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("items_state_changed", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, items_state_changed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_ITERABLE);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("selection_group_altered", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, selection_group_altered), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("items_shown", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, items_shown), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("items_hidden", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, items_hidden), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("items_visibility_changed", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, items_visibility_changed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("item_view_altered", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, item_view_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_DATA_VIEW);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("item_geometry_altered", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, item_geometry_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_DATA_VIEW);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("views_altered", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, views_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("geometries_altered", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, geometries_altered), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEE_TYPE_COLLECTION);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("view_filter_installed", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, view_filter_installed), NULL, NULL, g_cclosure_user_marshal_VOID__VIEW_FILTER, G_TYPE_NONE, 1, TYPE_VIEW_FILTER);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("view_filter_removed", TYPE_VIEW_COLLECTION, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewCollectionClass, view_filter_removed), NULL, NULL, g_cclosure_user_marshal_VOID__VIEW_FILTER, G_TYPE_NONE, 1, TYPE_VIEW_FILTER);
+#line 8478 "ViewCollection.c"
+}
+
+
+static void view_collection_instance_init (ViewCollection * self) {
+ GeeHashMultiMap* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+ DataSet* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv = VIEW_COLLECTION_GET_PRIVATE (self);
+#line 59 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp0_ = gee_hash_multi_map_new (TYPE_SOURCE_COLLECTION, (GBoxedCopyFunc) data_collection_ref, data_collection_unref, VIEW_COLLECTION_TYPE_MONITOR_IMPL, (GBoxedCopyFunc) view_collection_monitor_ref, view_collection_monitor_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 59 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->monitors = _tmp0_;
+#line 61 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->mirroring = NULL;
+#line 62 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->mirroring_ctor = NULL;
+#line 63 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->should_mirror = NULL;
+#line 64 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp1_ = gee_hash_set_new (TYPE_VIEW_FILTER, (GBoxedCopyFunc) view_filter_ref, view_filter_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 64 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->filters = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_SET, GeeSet);
+#line 65 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp2_ = data_set_new ();
+#line 65 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->selected = _tmp2_;
+#line 66 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->visible = NULL;
+#line 67 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->frozen_views_altered = NULL;
+#line 68 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->frozen_geometries_altered = NULL;
+#line 72 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _tmp3_ = gee_hash_map_new (TYPE_DATA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 72 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->priv->source_map = _tmp3_;
+#line 8517 "ViewCollection.c"
+}
+
+
+static void view_collection_finalize (DataCollection* obj) {
+ ViewCollection * self;
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIEW_COLLECTION, ViewCollection);
+#line 59 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->monitors);
+#line 61 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_collection_unref0 (self->priv->mirroring);
+#line 64 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->filters);
+#line 65 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_set_unref0 (self->priv->selected);
+#line 66 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _data_set_unref0 (self->priv->visible);
+#line 67 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->frozen_views_altered);
+#line 68 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->frozen_geometries_altered);
+#line 72 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ _g_object_unref0 (self->priv->source_map);
+#line 21 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ DATA_COLLECTION_CLASS (view_collection_parent_class)->finalize (obj);
+#line 8543 "ViewCollection.c"
+}
+
+
+GType view_collection_get_type (void) {
+ static volatile gsize view_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&view_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ViewCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewCollection), 0, (GInstanceInitFunc) view_collection_instance_init, NULL };
+ GType view_collection_type_id;
+ view_collection_type_id = g_type_register_static (TYPE_DATA_COLLECTION, "ViewCollection", &g_define_type_info, 0);
+ g_once_init_leave (&view_collection_type_id__volatile, view_collection_type_id);
+ }
+ return view_collection_type_id__volatile;
+}
+
+
+static gboolean view_manager_real_include_in_view (ViewManager* self, DataSource* source) {
+ gboolean result = FALSE;
+#line 1257 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 1258 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ result = TRUE;
+#line 1258 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return result;
+#line 8567 "ViewCollection.c"
+}
+
+
+gboolean view_manager_include_in_view (ViewManager* self, DataSource* source) {
+#line 1257 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_MANAGER (self), FALSE);
+#line 1257 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_MANAGER_GET_CLASS (self)->include_in_view (self, source);
+#line 8576 "ViewCollection.c"
+}
+
+
+static DataView* view_manager_real_create_view (ViewManager* self, DataSource* source) {
+#line 1263 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_critical ("Type `%s' does not implement abstract method `view_manager_create_view'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 1263 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return NULL;
+#line 8585 "ViewCollection.c"
+}
+
+
+DataView* view_manager_create_view (ViewManager* self, DataSource* source) {
+#line 1263 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_MANAGER (self), NULL);
+#line 1263 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_MANAGER_GET_CLASS (self)->create_view (self, source);
+#line 8594 "ViewCollection.c"
+}
+
+
+ViewManager* view_manager_construct (GType object_type) {
+ ViewManager* self = NULL;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = (ViewManager*) g_type_create_instance (object_type);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self;
+#line 8604 "ViewCollection.c"
+}
+
+
+static void value_view_manager_init (GValue* value) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 8611 "ViewCollection.c"
+}
+
+
+static void value_view_manager_free_value (GValue* value) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (value->data[0].v_pointer) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_manager_unref (value->data[0].v_pointer);
+#line 8620 "ViewCollection.c"
+ }
+}
+
+
+static void value_view_manager_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dest_value->data[0].v_pointer = view_manager_ref (src_value->data[0].v_pointer);
+#line 8630 "ViewCollection.c"
+ } else {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 8634 "ViewCollection.c"
+ }
+}
+
+
+static gpointer value_view_manager_peek_pointer (const GValue* value) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return value->data[0].v_pointer;
+#line 8642 "ViewCollection.c"
+}
+
+
+static gchar* value_view_manager_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (collect_values[0].v_pointer) {
+#line 8649 "ViewCollection.c"
+ ViewManager* object;
+ object = collect_values[0].v_pointer;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8656 "ViewCollection.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8660 "ViewCollection.c"
+ }
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = view_manager_ref (object);
+#line 8664 "ViewCollection.c"
+ } else {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 8668 "ViewCollection.c"
+ }
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return NULL;
+#line 8672 "ViewCollection.c"
+}
+
+
+static gchar* value_view_manager_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ViewManager** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!object_p) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 8683 "ViewCollection.c"
+ }
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!value->data[0].v_pointer) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = NULL;
+#line 8689 "ViewCollection.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = value->data[0].v_pointer;
+#line 8693 "ViewCollection.c"
+ } else {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = view_manager_ref (value->data[0].v_pointer);
+#line 8697 "ViewCollection.c"
+ }
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return NULL;
+#line 8701 "ViewCollection.c"
+}
+
+
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecViewManager* spec;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_VIEW_MANAGER), NULL);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return G_PARAM_SPEC (spec);
+#line 8715 "ViewCollection.c"
+}
+
+
+gpointer value_get_view_manager (const GValue* value) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIEW_MANAGER), NULL);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return value->data[0].v_pointer;
+#line 8724 "ViewCollection.c"
+}
+
+
+void value_set_view_manager (GValue* value, gpointer v_object) {
+ ViewManager* old;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIEW_MANAGER));
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ old = value->data[0].v_pointer;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (v_object) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIEW_MANAGER));
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_manager_ref (value->data[0].v_pointer);
+#line 8744 "ViewCollection.c"
+ } else {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 8748 "ViewCollection.c"
+ }
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (old) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_manager_unref (old);
+#line 8754 "ViewCollection.c"
+ }
+}
+
+
+void value_take_view_manager (GValue* value, gpointer v_object) {
+ ViewManager* old;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIEW_MANAGER));
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ old = value->data[0].v_pointer;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (v_object) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIEW_MANAGER));
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 8773 "ViewCollection.c"
+ } else {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 8777 "ViewCollection.c"
+ }
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (old) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_manager_unref (old);
+#line 8783 "ViewCollection.c"
+ }
+}
+
+
+static void view_manager_class_init (ViewManagerClass * klass) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewManagerClass *) klass)->finalize = view_manager_finalize;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewManagerClass *) klass)->include_in_view = view_manager_real_include_in_view;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewManagerClass *) klass)->create_view = view_manager_real_create_view;
+#line 8797 "ViewCollection.c"
+}
+
+
+static void view_manager_instance_init (ViewManager * self) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->ref_count = 1;
+#line 8804 "ViewCollection.c"
+}
+
+
+static void view_manager_finalize (ViewManager* obj) {
+ ViewManager * self;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIEW_MANAGER, ViewManager);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_destroy (self);
+#line 8814 "ViewCollection.c"
+}
+
+
+GType view_manager_get_type (void) {
+ static volatile gsize view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&view_manager_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_view_manager_init, value_view_manager_free_value, value_view_manager_copy_value, value_view_manager_peek_pointer, "p", value_view_manager_collect_value, "p", value_view_manager_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewManager), 0, (GInstanceInitFunc) view_manager_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType view_manager_type_id;
+ view_manager_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ViewManager", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&view_manager_type_id__volatile, view_manager_type_id);
+ }
+ return view_manager_type_id__volatile;
+}
+
+
+gpointer view_manager_ref (gpointer instance) {
+ ViewManager* self;
+ self = instance;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return instance;
+#line 8839 "ViewCollection.c"
+}
+
+
+void view_manager_unref (gpointer instance) {
+ ViewManager* self;
+ self = instance;
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_MANAGER_GET_CLASS (self)->finalize (self);
+#line 1253 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 8852 "ViewCollection.c"
+ }
+}
+
+
+static gboolean view_filter_real_predicate (ViewFilter* self, DataView* view) {
+#line 1285 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_critical ("Type `%s' does not implement abstract method `view_filter_predicate'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 1285 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return FALSE;
+#line 8862 "ViewCollection.c"
+}
+
+
+gboolean view_filter_predicate (ViewFilter* self, DataView* view) {
+#line 1285 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (IS_VIEW_FILTER (self), FALSE);
+#line 1285 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return VIEW_FILTER_GET_CLASS (self)->predicate (self, view);
+#line 8871 "ViewCollection.c"
+}
+
+
+ViewFilter* view_filter_construct (GType object_type) {
+ ViewFilter* self = NULL;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = (ViewFilter*) g_type_create_instance (object_type);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return self;
+#line 8881 "ViewCollection.c"
+}
+
+
+static void view_filter_real_refresh (ViewFilter* self) {
+}
+
+
+static void value_view_filter_init (GValue* value) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 8892 "ViewCollection.c"
+}
+
+
+static void value_view_filter_free_value (GValue* value) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (value->data[0].v_pointer) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_filter_unref (value->data[0].v_pointer);
+#line 8901 "ViewCollection.c"
+ }
+}
+
+
+static void value_view_filter_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dest_value->data[0].v_pointer = view_filter_ref (src_value->data[0].v_pointer);
+#line 8911 "ViewCollection.c"
+ } else {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 8915 "ViewCollection.c"
+ }
+}
+
+
+static gpointer value_view_filter_peek_pointer (const GValue* value) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return value->data[0].v_pointer;
+#line 8923 "ViewCollection.c"
+}
+
+
+static gchar* value_view_filter_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (collect_values[0].v_pointer) {
+#line 8930 "ViewCollection.c"
+ ViewFilter* object;
+ object = collect_values[0].v_pointer;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8937 "ViewCollection.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8941 "ViewCollection.c"
+ }
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = view_filter_ref (object);
+#line 8945 "ViewCollection.c"
+ } else {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 8949 "ViewCollection.c"
+ }
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return NULL;
+#line 8953 "ViewCollection.c"
+}
+
+
+static gchar* value_view_filter_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ ViewFilter** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!object_p) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 8964 "ViewCollection.c"
+ }
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (!value->data[0].v_pointer) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = NULL;
+#line 8970 "ViewCollection.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = value->data[0].v_pointer;
+#line 8974 "ViewCollection.c"
+ } else {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ *object_p = view_filter_ref (value->data[0].v_pointer);
+#line 8978 "ViewCollection.c"
+ }
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return NULL;
+#line 8982 "ViewCollection.c"
+}
+
+
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecViewFilter* spec;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_VIEW_FILTER), NULL);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return G_PARAM_SPEC (spec);
+#line 8996 "ViewCollection.c"
+}
+
+
+gpointer value_get_view_filter (const GValue* value) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIEW_FILTER), NULL);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return value->data[0].v_pointer;
+#line 9005 "ViewCollection.c"
+}
+
+
+void value_set_view_filter (GValue* value, gpointer v_object) {
+ ViewFilter* old;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIEW_FILTER));
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ old = value->data[0].v_pointer;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (v_object) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIEW_FILTER));
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_filter_ref (value->data[0].v_pointer);
+#line 9025 "ViewCollection.c"
+ } else {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 9029 "ViewCollection.c"
+ }
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (old) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_filter_unref (old);
+#line 9035 "ViewCollection.c"
+ }
+}
+
+
+void value_take_view_filter (GValue* value, gpointer v_object) {
+ ViewFilter* old;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIEW_FILTER));
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ old = value->data[0].v_pointer;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (v_object) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIEW_FILTER));
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = v_object;
+#line 9054 "ViewCollection.c"
+ } else {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ value->data[0].v_pointer = NULL;
+#line 9058 "ViewCollection.c"
+ }
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (old) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_filter_unref (old);
+#line 9064 "ViewCollection.c"
+ }
+}
+
+
+static void view_filter_class_init (ViewFilterClass * klass) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewFilterClass *) klass)->finalize = view_filter_finalize;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewFilterClass *) klass)->predicate = view_filter_real_predicate;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ ((ViewFilterClass *) klass)->refresh = view_filter_real_refresh;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_new ("refresh", TYPE_VIEW_FILTER, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (ViewFilterClass, refresh), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 9080 "ViewCollection.c"
+}
+
+
+static void view_filter_instance_init (ViewFilter * self) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self->ref_count = 1;
+#line 9087 "ViewCollection.c"
+}
+
+
+static void view_filter_finalize (ViewFilter* obj) {
+ ViewFilter * self;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIEW_FILTER, ViewFilter);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_signal_handlers_destroy (self);
+#line 9097 "ViewCollection.c"
+}
+
+
+GType view_filter_get_type (void) {
+ static volatile gsize view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&view_filter_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_view_filter_init, value_view_filter_free_value, value_view_filter_copy_value, value_view_filter_peek_pointer, "p", value_view_filter_collect_value, "p", value_view_filter_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (ViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewFilter), 0, (GInstanceInitFunc) view_filter_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType view_filter_type_id;
+ view_filter_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ViewFilter", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&view_filter_type_id__volatile, view_filter_type_id);
+ }
+ return view_filter_type_id__volatile;
+}
+
+
+gpointer view_filter_ref (gpointer instance) {
+ ViewFilter* self;
+ self = instance;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ return instance;
+#line 9122 "ViewCollection.c"
+}
+
+
+void view_filter_unref (gpointer instance) {
+ ViewFilter* self;
+ self = instance;
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ VIEW_FILTER_GET_CLASS (self)->finalize (self);
+#line 1278 "/home/jens/Source/shotwell/src/core/ViewCollection.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 9135 "ViewCollection.c"
+ }
+}
+
+
+
diff --git a/src/core/mk/core.mk b/src/core/mk/core.mk
deleted file mode 100644
index c35c93a..0000000
--- a/src/core/mk/core.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Core
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := core
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- DataCollection.vala \
- DataSet.vala \
- util.vala \
- SourceCollection.vala \
- SourceHoldingTank.vala \
- DatabaseSourceCollection.vala \
- ContainerSourceCollection.vala \
- ViewCollection.vala \
- DataObject.vala \
- Alteration.vala \
- DataSource.vala \
- DataSourceTypes.vala \
- DataView.vala \
- DataViewTypes.vala \
- Tracker.vala \
- SourceInterfaces.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/core/util.c b/src/core/util.c
new file mode 100644
index 0000000..0088011
--- /dev/null
+++ b/src/core/util.c
@@ -0,0 +1,1791 @@
+/* util.c generated by valac 0.32.1, the Vala compiler
+ * generated from util.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* SingletonCollection is a read-only collection designed to hold exactly one item in it. This*/
+/* is far more efficient than creating a dummy collection (such as ArrayList) merely to pass around*/
+/* a single item, particularly for signals which require Iterables and Collections.*/
+/**/
+/* This collection cannot be used to store null.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SINGLETON_COLLECTION (singleton_collection_get_type ())
+#define SINGLETON_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLETON_COLLECTION, SingletonCollection))
+#define SINGLETON_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLETON_COLLECTION, SingletonCollectionClass))
+#define IS_SINGLETON_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLETON_COLLECTION))
+#define IS_SINGLETON_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLETON_COLLECTION))
+#define SINGLETON_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLETON_COLLECTION, SingletonCollectionClass))
+
+typedef struct _SingletonCollection SingletonCollection;
+typedef struct _SingletonCollectionClass SingletonCollectionClass;
+typedef struct _SingletonCollectionPrivate SingletonCollectionPrivate;
+#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL)))
+
+#define SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR (singleton_collection_singleton_iterator_get_type ())
+#define SINGLETON_COLLECTION_SINGLETON_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator))
+#define SINGLETON_COLLECTION_SINGLETON_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIteratorClass))
+#define SINGLETON_COLLECTION_IS_SINGLETON_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR))
+#define SINGLETON_COLLECTION_IS_SINGLETON_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR))
+#define SINGLETON_COLLECTION_SINGLETON_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIteratorClass))
+
+typedef struct _SingletonCollectionSingletonIterator SingletonCollectionSingletonIterator;
+typedef struct _SingletonCollectionSingletonIteratorClass SingletonCollectionSingletonIteratorClass;
+typedef struct _SingletonCollectionSingletonIteratorPrivate SingletonCollectionSingletonIteratorPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_UNKNOWN_TOTAL_MONITOR (unknown_total_monitor_get_type ())
+#define UNKNOWN_TOTAL_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_UNKNOWN_TOTAL_MONITOR, UnknownTotalMonitor))
+#define UNKNOWN_TOTAL_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_UNKNOWN_TOTAL_MONITOR, UnknownTotalMonitorClass))
+#define IS_UNKNOWN_TOTAL_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_UNKNOWN_TOTAL_MONITOR))
+#define IS_UNKNOWN_TOTAL_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_UNKNOWN_TOTAL_MONITOR))
+#define UNKNOWN_TOTAL_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_UNKNOWN_TOTAL_MONITOR, UnknownTotalMonitorClass))
+
+typedef struct _UnknownTotalMonitor UnknownTotalMonitor;
+typedef struct _UnknownTotalMonitorClass UnknownTotalMonitorClass;
+typedef struct _UnknownTotalMonitorPrivate UnknownTotalMonitorPrivate;
+typedef struct _ParamSpecUnknownTotalMonitor ParamSpecUnknownTotalMonitor;
+
+#define TYPE_AGGREGATE_PROGRESS_MONITOR (aggregate_progress_monitor_get_type ())
+#define AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitor))
+#define AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))
+#define IS_AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR))
+#define IS_AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR))
+#define AGGREGATE_PROGRESS_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))
+
+typedef struct _AggregateProgressMonitor AggregateProgressMonitor;
+typedef struct _AggregateProgressMonitorClass AggregateProgressMonitorClass;
+typedef struct _AggregateProgressMonitorPrivate AggregateProgressMonitorPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecAggregateProgressMonitor ParamSpecAggregateProgressMonitor;
+
+struct _SingletonCollection {
+ GeeAbstractCollection parent_instance;
+ SingletonCollectionPrivate * priv;
+};
+
+struct _SingletonCollectionClass {
+ GeeAbstractCollectionClass parent_class;
+};
+
+struct _SingletonCollectionPrivate {
+ GType g_type;
+ GBoxedCopyFunc g_dup_func;
+ GDestroyNotify g_destroy_func;
+ gpointer object;
+};
+
+struct _SingletonCollectionSingletonIterator {
+ GObject parent_instance;
+ SingletonCollectionSingletonIteratorPrivate * priv;
+};
+
+struct _SingletonCollectionSingletonIteratorClass {
+ GObjectClass parent_class;
+};
+
+struct _SingletonCollectionSingletonIteratorPrivate {
+ GType g_type;
+ GBoxedCopyFunc g_dup_func;
+ GDestroyNotify g_destroy_func;
+ SingletonCollection* c;
+ gboolean done;
+ gpointer current;
+};
+
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+typedef gboolean (*MarkedAction) (DataObject* object, GObject* user, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _UnknownTotalMonitor {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ UnknownTotalMonitorPrivate * priv;
+};
+
+struct _UnknownTotalMonitorClass {
+ GTypeClass parent_class;
+ void (*finalize) (UnknownTotalMonitor *self);
+};
+
+struct _UnknownTotalMonitorPrivate {
+ guint64 total;
+ ProgressMonitor wrapped_monitor;
+ gpointer wrapped_monitor_target;
+};
+
+struct _ParamSpecUnknownTotalMonitor {
+ GParamSpec parent_instance;
+};
+
+struct _AggregateProgressMonitor {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AggregateProgressMonitorPrivate * priv;
+};
+
+struct _AggregateProgressMonitorClass {
+ GTypeClass parent_class;
+ void (*finalize) (AggregateProgressMonitor *self);
+};
+
+struct _AggregateProgressMonitorPrivate {
+ guint64 grand_total;
+ ProgressMonitor wrapped_monitor;
+ gpointer wrapped_monitor_target;
+ guint64 aggregate_count;
+ guint64 last_count;
+};
+
+struct _ParamSpecAggregateProgressMonitor {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer singleton_collection_parent_class = NULL;
+static gpointer singleton_collection_singleton_iterator_parent_class = NULL;
+static GeeTraversableIface* singleton_collection_singleton_iterator_gee_traversable_parent_iface = NULL;
+static GeeIteratorIface* singleton_collection_singleton_iterator_gee_iterator_parent_iface = NULL;
+static gpointer unknown_total_monitor_parent_class = NULL;
+static gpointer aggregate_progress_monitor_parent_class = NULL;
+
+GType singleton_collection_get_type (void) G_GNUC_CONST;
+#define SINGLETON_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SINGLETON_COLLECTION, SingletonCollectionPrivate))
+enum {
+ SINGLETON_COLLECTION_DUMMY_PROPERTY,
+ SINGLETON_COLLECTION_G_TYPE,
+ SINGLETON_COLLECTION_G_DUP_FUNC,
+ SINGLETON_COLLECTION_G_DESTROY_FUNC,
+ SINGLETON_COLLECTION_READ_ONLY,
+ SINGLETON_COLLECTION_SIZE
+};
+SingletonCollection* singleton_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object);
+SingletonCollection* singleton_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object);
+static gboolean singleton_collection_real_add (GeeAbstractCollection* base, gconstpointer object);
+static void singleton_collection_real_clear (GeeAbstractCollection* base);
+static gboolean singleton_collection_real_contains (GeeAbstractCollection* base, gconstpointer object);
+static GeeIterator* singleton_collection_real_iterator (GeeAbstractCollection* base);
+static SingletonCollectionSingletonIterator* singleton_collection_singleton_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, SingletonCollection* c);
+static SingletonCollectionSingletonIterator* singleton_collection_singleton_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, SingletonCollection* c);
+static GType singleton_collection_singleton_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static gboolean singleton_collection_real_remove (GeeAbstractCollection* base, gconstpointer item);
+#define SINGLETON_COLLECTION_SINGLETON_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIteratorPrivate))
+enum {
+ SINGLETON_COLLECTION_SINGLETON_ITERATOR_DUMMY_PROPERTY,
+ SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_TYPE,
+ SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_DUP_FUNC,
+ SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_DESTROY_FUNC,
+ SINGLETON_COLLECTION_SINGLETON_ITERATOR_READ_ONLY,
+ SINGLETON_COLLECTION_SINGLETON_ITERATOR_VALID
+};
+static gboolean singleton_collection_singleton_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
+static gpointer singleton_collection_singleton_iterator_real_get (GeeIterator* base);
+static gboolean singleton_collection_singleton_iterator_real_has_next (GeeIterator* base);
+static gboolean singleton_collection_singleton_iterator_real_next (GeeIterator* base);
+static void singleton_collection_singleton_iterator_real_remove (GeeIterator* base);
+static void singleton_collection_singleton_iterator_finalize (GObject* obj);
+static void _vala_singleton_collection_singleton_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_singleton_collection_singleton_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void singleton_collection_finalize (GObject* obj);
+static void _vala_singleton_collection_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_singleton_collection_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType marker_get_type (void) G_GNUC_CONST;
+void marker_mark (Marker* self, DataObject* object);
+void marker_unmark (Marker* self, DataObject* object);
+gboolean marker_toggle (Marker* self, DataObject* object);
+void marker_mark_many (Marker* self, GeeCollection* list);
+void marker_unmark_many (Marker* self, GeeCollection* list);
+void marker_mark_all (Marker* self);
+gint marker_get_count (Marker* self);
+GeeCollection* marker_get_all (Marker* self);
+gpointer unknown_total_monitor_ref (gpointer instance);
+void unknown_total_monitor_unref (gpointer instance);
+GParamSpec* param_spec_unknown_total_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_unknown_total_monitor (GValue* value, gpointer v_object);
+void value_take_unknown_total_monitor (GValue* value, gpointer v_object);
+gpointer value_get_unknown_total_monitor (const GValue* value);
+GType unknown_total_monitor_get_type (void) G_GNUC_CONST;
+#define UNKNOWN_TOTAL_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_UNKNOWN_TOTAL_MONITOR, UnknownTotalMonitorPrivate))
+enum {
+ UNKNOWN_TOTAL_MONITOR_DUMMY_PROPERTY
+};
+UnknownTotalMonitor* unknown_total_monitor_new (guint64 total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+UnknownTotalMonitor* unknown_total_monitor_construct (GType object_type, guint64 total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+gboolean unknown_total_monitor_monitor (UnknownTotalMonitor* self, guint64 count, guint64 total);
+static void unknown_total_monitor_finalize (UnknownTotalMonitor* obj);
+gpointer aggregate_progress_monitor_ref (gpointer instance);
+void aggregate_progress_monitor_unref (gpointer instance);
+GParamSpec* param_spec_aggregate_progress_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_aggregate_progress_monitor (GValue* value, gpointer v_object);
+void value_take_aggregate_progress_monitor (GValue* value, gpointer v_object);
+gpointer value_get_aggregate_progress_monitor (const GValue* value);
+GType aggregate_progress_monitor_get_type (void) G_GNUC_CONST;
+#define AGGREGATE_PROGRESS_MONITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorPrivate))
+enum {
+ AGGREGATE_PROGRESS_MONITOR_DUMMY_PROPERTY
+};
+AggregateProgressMonitor* aggregate_progress_monitor_new (guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+AggregateProgressMonitor* aggregate_progress_monitor_construct (GType object_type, guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+void aggregate_progress_monitor_next_step (AggregateProgressMonitor* self, const gchar* name);
+gboolean aggregate_progress_monitor_monitor (AggregateProgressMonitor* self, guint64 count, guint64 total);
+static void aggregate_progress_monitor_finalize (AggregateProgressMonitor* obj);
+gboolean null_progress_monitor (guint64 count, guint64 total);
+gdouble degrees_to_radians (gdouble theta);
+
+
+SingletonCollection* singleton_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object) {
+ SingletonCollection * self = NULL;
+ gconstpointer _tmp0_ = NULL;
+ gpointer _tmp1_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = (SingletonCollection*) gee_abstract_collection_construct (object_type, g_type, (GBoxedCopyFunc) g_dup_func, g_destroy_func);
+#line 65 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_type = g_type;
+#line 65 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_dup_func = g_dup_func;
+#line 65 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_destroy_func = g_destroy_func;
+#line 66 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = object;
+#line 66 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = ((_tmp0_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp0_) : ((gpointer) _tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/core/util.vala"
+ _g_destroy_func0 (self->priv->object);
+#line 66 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->object = _tmp1_;
+#line 65 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self;
+#line 300 "util.c"
+}
+
+
+SingletonCollection* singleton_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer object) {
+#line 65 "/home/jens/Source/shotwell/src/core/util.vala"
+ return singleton_collection_construct (TYPE_SINGLETON_COLLECTION, g_type, g_dup_func, g_destroy_func, object);
+#line 307 "util.c"
+}
+
+
+static gboolean singleton_collection_real_add (GeeAbstractCollection* base, gconstpointer object) {
+ SingletonCollection * self;
+ gboolean result = FALSE;
+#line 73 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 74 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_warning ("util.vala:74: Cannot add to SingletonCollection");
+#line 76 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = FALSE;
+#line 76 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 322 "util.c"
+}
+
+
+static void singleton_collection_real_clear (GeeAbstractCollection* base) {
+ SingletonCollection * self;
+#line 79 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 80 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((self->priv->object == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->priv->object = (self->priv->g_destroy_func (self->priv->object), NULL));
+#line 80 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->object = NULL;
+#line 334 "util.c"
+}
+
+
+static gboolean singleton_collection_real_contains (GeeAbstractCollection* base, gconstpointer object) {
+ SingletonCollection * self;
+ gboolean result = FALSE;
+ gconstpointer _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 84 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = self->priv->object;
+#line 84 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = object;
+#line 84 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp0_ == _tmp1_;
+#line 84 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 353 "util.c"
+}
+
+
+static GeeIterator* singleton_collection_real_iterator (GeeAbstractCollection* base) {
+ SingletonCollection * self;
+ GeeIterator* result = NULL;
+ SingletonCollectionSingletonIterator* _tmp0_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 88 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = singleton_collection_singleton_iterator_new (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, self->priv->g_destroy_func, self);
+#line 88 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERATOR, GeeIterator);
+#line 88 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 369 "util.c"
+}
+
+
+static gboolean singleton_collection_real_remove (GeeAbstractCollection* base, gconstpointer item) {
+ SingletonCollection * self;
+ gboolean result = FALSE;
+ gconstpointer _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 92 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = item;
+#line 92 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = self->priv->object;
+#line 92 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 93 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((self->priv->object == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->priv->object = (self->priv->g_destroy_func (self->priv->object), NULL));
+#line 93 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->object = NULL;
+#line 95 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = TRUE;
+#line 95 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 394 "util.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = FALSE;
+#line 98 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 400 "util.c"
+}
+
+
+static gboolean singleton_collection_real_get_read_only (GeeAbstractCollection* base) {
+ gboolean result;
+ SingletonCollection* self;
+#line 70 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 70 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = FALSE;
+#line 70 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 413 "util.c"
+}
+
+
+static gint singleton_collection_real_get_size (GeeAbstractCollection* base) {
+ gint result;
+ SingletonCollection* self;
+ gint _tmp0_ = 0;
+ gconstpointer _tmp1_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 103 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = self->priv->object;
+#line 103 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (_tmp1_ != NULL) {
+#line 103 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = 1;
+#line 430 "util.c"
+ } else {
+#line 103 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = 0;
+#line 434 "util.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp0_;
+#line 103 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 440 "util.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 20 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 447 "util.c"
+}
+
+
+static SingletonCollectionSingletonIterator* singleton_collection_singleton_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, SingletonCollection* c) {
+ SingletonCollectionSingletonIterator * self = NULL;
+ SingletonCollection* _tmp0_ = NULL;
+ SingletonCollection* _tmp1_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (IS_SINGLETON_COLLECTION (c), NULL);
+#line 19 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = (SingletonCollectionSingletonIterator*) g_object_new (object_type, NULL);
+#line 19 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_type = g_type;
+#line 19 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_dup_func = g_dup_func;
+#line 19 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_destroy_func = g_destroy_func;
+#line 20 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = c;
+#line 20 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 20 "/home/jens/Source/shotwell/src/core/util.vala"
+ _g_object_unref0 (self->priv->c);
+#line 20 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->c = _tmp1_;
+#line 19 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self;
+#line 475 "util.c"
+}
+
+
+static SingletonCollectionSingletonIterator* singleton_collection_singleton_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, SingletonCollection* c) {
+#line 19 "/home/jens/Source/shotwell/src/core/util.vala"
+ return singleton_collection_singleton_iterator_construct (SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, g_type, g_dup_func, g_destroy_func, c);
+#line 482 "util.c"
+}
+
+
+static gboolean singleton_collection_singleton_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
+ SingletonCollectionSingletonIterator * self;
+ gboolean result = FALSE;
+ GeeForallFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ SingletonCollection* _tmp1_ = NULL;
+ gconstpointer _tmp2_ = NULL;
+ gpointer _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = f;
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0__target = f_target;
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = self->priv->c;
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp2_ = _tmp1_->priv->object;
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp3_ = ((_tmp2_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp2_) : ((gpointer) _tmp2_);
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp4_ = _tmp0_ (_tmp3_, _tmp0__target);
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp4_;
+#line 32 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 513 "util.c"
+}
+
+
+static gpointer singleton_collection_singleton_iterator_real_get (GeeIterator* base) {
+ SingletonCollectionSingletonIterator * self;
+ gpointer result = NULL;
+ gconstpointer _tmp0_ = NULL;
+ gpointer _tmp1_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 36 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = self->priv->current;
+#line 36 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = ((_tmp0_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp0_) : ((gpointer) _tmp0_);
+#line 36 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp1_;
+#line 36 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 532 "util.c"
+}
+
+
+static gboolean singleton_collection_singleton_iterator_real_has_next (GeeIterator* base) {
+ SingletonCollectionSingletonIterator * self;
+ gboolean result = FALSE;
+#line 39 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 40 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = FALSE;
+#line 40 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 545 "util.c"
+}
+
+
+static gboolean singleton_collection_singleton_iterator_real_next (GeeIterator* base) {
+ SingletonCollectionSingletonIterator * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ SingletonCollection* _tmp1_ = NULL;
+ gconstpointer _tmp2_ = NULL;
+ gpointer _tmp3_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 44 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = self->priv->done;
+#line 44 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (_tmp0_) {
+#line 45 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = FALSE;
+#line 45 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 566 "util.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->done = TRUE;
+#line 48 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = self->priv->c;
+#line 48 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp2_ = _tmp1_->priv->object;
+#line 48 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp3_ = ((_tmp2_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp2_) : ((gpointer) _tmp2_);
+#line 48 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((self->priv->current == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->priv->current = (self->priv->g_destroy_func (self->priv->current), NULL));
+#line 48 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->current = _tmp3_;
+#line 50 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = TRUE;
+#line 50 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 584 "util.c"
+}
+
+
+static void singleton_collection_singleton_iterator_real_remove (GeeIterator* base) {
+ SingletonCollectionSingletonIterator * self;
+ gboolean _tmp0_ = FALSE;
+#line 53 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 54 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = self->priv->done;
+#line 54 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (!_tmp0_) {
+#line 597 "util.c"
+ SingletonCollection* _tmp1_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = self->priv->c;
+#line 55 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((_tmp1_->priv->object == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp1_->priv->object = (self->priv->g_destroy_func (_tmp1_->priv->object), NULL));
+#line 55 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_->priv->object = NULL;
+#line 56 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((self->priv->current == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->priv->current = (self->priv->g_destroy_func (self->priv->current), NULL));
+#line 56 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->current = NULL;
+#line 609 "util.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->done = TRUE;
+#line 613 "util.c"
+}
+
+
+static gboolean singleton_collection_singleton_iterator_real_get_read_only (GeeIterator* base) {
+ gboolean result;
+ SingletonCollectionSingletonIterator* self;
+ gboolean _tmp0_ = FALSE;
+#line 24 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 24 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = self->priv->done;
+#line 24 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp0_;
+#line 24 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 629 "util.c"
+}
+
+
+static gboolean singleton_collection_singleton_iterator_real_get_valid (GeeIterator* base) {
+ gboolean result;
+ SingletonCollectionSingletonIterator* self;
+ gboolean _tmp0_ = FALSE;
+#line 28 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 28 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = self->priv->done;
+#line 28 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp0_;
+#line 28 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 645 "util.c"
+}
+
+
+static void singleton_collection_singleton_iterator_class_init (SingletonCollectionSingletonIteratorClass * klass) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ singleton_collection_singleton_iterator_parent_class = g_type_class_peek_parent (klass);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_type_class_add_private (klass, sizeof (SingletonCollectionSingletonIteratorPrivate));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_singleton_collection_singleton_iterator_get_property;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_singleton_collection_singleton_iterator_set_property;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (klass)->finalize = singleton_collection_singleton_iterator_finalize;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_TYPE, g_param_spec_gtype ("g-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_DUP_FUNC, g_param_spec_pointer ("g-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_DESTROY_FUNC, g_param_spec_pointer ("g-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_SINGLETON_ITERATOR_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_SINGLETON_ITERATOR_VALID, g_param_spec_boolean ("valid", "valid", "valid", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 670 "util.c"
+}
+
+
+static GType singleton_collection_singleton_iterator_gee_traversable_get_g_type (SingletonCollectionSingletonIterator* self) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self->priv->g_type;
+#line 677 "util.c"
+}
+
+
+static GBoxedCopyFunc singleton_collection_singleton_iterator_gee_traversable_get_g_dup_func (SingletonCollectionSingletonIterator* self) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self->priv->g_dup_func;
+#line 684 "util.c"
+}
+
+
+static GDestroyNotify singleton_collection_singleton_iterator_gee_traversable_get_g_destroy_func (SingletonCollectionSingletonIterator* self) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self->priv->g_destroy_func;
+#line 691 "util.c"
+}
+
+
+static void singleton_collection_singleton_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ singleton_collection_singleton_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) singleton_collection_singleton_iterator_real_foreach;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->get_g_type = (GType(*)(GeeTraversable*)) singleton_collection_singleton_iterator_gee_traversable_get_g_type;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) singleton_collection_singleton_iterator_gee_traversable_get_g_dup_func;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) singleton_collection_singleton_iterator_gee_traversable_get_g_destroy_func;
+#line 706 "util.c"
+}
+
+
+static void singleton_collection_singleton_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ singleton_collection_singleton_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->get = (gpointer (*)(GeeIterator*)) singleton_collection_singleton_iterator_real_get;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->has_next = (gboolean (*)(GeeIterator*)) singleton_collection_singleton_iterator_real_has_next;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->next = (gboolean (*)(GeeIterator*)) singleton_collection_singleton_iterator_real_next;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->remove = (void (*)(GeeIterator*)) singleton_collection_singleton_iterator_real_remove;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->get_read_only = singleton_collection_singleton_iterator_real_get_read_only;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ iface->get_valid = singleton_collection_singleton_iterator_real_get_valid;
+#line 725 "util.c"
+}
+
+
+static void singleton_collection_singleton_iterator_instance_init (SingletonCollectionSingletonIterator * self) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv = SINGLETON_COLLECTION_SINGLETON_ITERATOR_GET_PRIVATE (self);
+#line 16 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->done = FALSE;
+#line 17 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->current = NULL;
+#line 736 "util.c"
+}
+
+
+static void singleton_collection_singleton_iterator_finalize (GObject* obj) {
+ SingletonCollectionSingletonIterator * self;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 15 "/home/jens/Source/shotwell/src/core/util.vala"
+ _g_object_unref0 (self->priv->c);
+#line 17 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((self->priv->current == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->priv->current = (self->priv->g_destroy_func (self->priv->current), NULL));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (singleton_collection_singleton_iterator_parent_class)->finalize (obj);
+#line 750 "util.c"
+}
+
+
+static GType singleton_collection_singleton_iterator_get_type (void) {
+ static volatile gsize singleton_collection_singleton_iterator_type_id__volatile = 0;
+ if (g_once_init_enter (&singleton_collection_singleton_iterator_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SingletonCollectionSingletonIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) singleton_collection_singleton_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SingletonCollectionSingletonIterator), 0, (GInstanceInitFunc) singleton_collection_singleton_iterator_instance_init, NULL };
+ static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) singleton_collection_singleton_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) singleton_collection_singleton_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType singleton_collection_singleton_iterator_type_id;
+ singleton_collection_singleton_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "SingletonCollectionSingletonIterator", &g_define_type_info, 0);
+ g_type_add_interface_static (singleton_collection_singleton_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
+ g_type_add_interface_static (singleton_collection_singleton_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
+ g_once_init_leave (&singleton_collection_singleton_iterator_type_id__volatile, singleton_collection_singleton_iterator_type_id);
+ }
+ return singleton_collection_singleton_iterator_type_id__volatile;
+}
+
+
+static void _vala_singleton_collection_singleton_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SingletonCollectionSingletonIterator * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ switch (property_id) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_SINGLETON_ITERATOR_READ_ONLY:
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_value_set_boolean (value, gee_iterator_get_read_only (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_ITERATOR, GeeIterator)));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_SINGLETON_ITERATOR_VALID:
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_value_set_boolean (value, gee_iterator_get_valid (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_ITERATOR, GeeIterator)));
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 787 "util.c"
+ default:
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 793 "util.c"
+ }
+}
+
+
+static void _vala_singleton_collection_singleton_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SingletonCollectionSingletonIterator * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SINGLETON_COLLECTION_TYPE_SINGLETON_ITERATOR, SingletonCollectionSingletonIterator);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ switch (property_id) {
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_TYPE:
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_type = g_value_get_gtype (value);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_DUP_FUNC:
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_dup_func = g_value_get_pointer (value);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_SINGLETON_ITERATOR_G_DESTROY_FUNC:
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_destroy_func = g_value_get_pointer (value);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 821 "util.c"
+ default:
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 14 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 827 "util.c"
+ }
+}
+
+
+static void singleton_collection_class_init (SingletonCollectionClass * klass) {
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ singleton_collection_parent_class = g_type_class_peek_parent (klass);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_type_class_add_private (klass, sizeof (SingletonCollectionPrivate));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((GeeAbstractCollectionClass *) klass)->add = singleton_collection_real_add;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((GeeAbstractCollectionClass *) klass)->clear = singleton_collection_real_clear;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((GeeAbstractCollectionClass *) klass)->contains = singleton_collection_real_contains;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((GeeAbstractCollectionClass *) klass)->iterator = singleton_collection_real_iterator;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((GeeAbstractCollectionClass *) klass)->remove = singleton_collection_real_remove;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = singleton_collection_real_get_read_only;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = singleton_collection_real_get_size;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_singleton_collection_get_property;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_singleton_collection_set_property;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (klass)->finalize = singleton_collection_finalize;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_G_TYPE, g_param_spec_gtype ("g-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_G_DUP_FUNC, g_param_spec_pointer ("g-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_G_DESTROY_FUNC, g_param_spec_pointer ("g-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SINGLETON_COLLECTION_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 867 "util.c"
+}
+
+
+static void singleton_collection_instance_init (SingletonCollection * self) {
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv = SINGLETON_COLLECTION_GET_PRIVATE (self);
+#line 874 "util.c"
+}
+
+
+static void singleton_collection_finalize (GObject* obj) {
+ SingletonCollection * self;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 63 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((self->priv->object == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (self->priv->object = (self->priv->g_destroy_func (self->priv->object), NULL));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_CLASS (singleton_collection_parent_class)->finalize (obj);
+#line 886 "util.c"
+}
+
+
+GType singleton_collection_get_type (void) {
+ static volatile gsize singleton_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&singleton_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SingletonCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) singleton_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SingletonCollection), 0, (GInstanceInitFunc) singleton_collection_instance_init, NULL };
+ GType singleton_collection_type_id;
+ singleton_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "SingletonCollection", &g_define_type_info, 0);
+ g_once_init_leave (&singleton_collection_type_id__volatile, singleton_collection_type_id);
+ }
+ return singleton_collection_type_id__volatile;
+}
+
+
+static void _vala_singleton_collection_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SingletonCollection * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ switch (property_id) {
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_READ_ONLY:
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_value_set_boolean (value, gee_abstract_collection_get_read_only (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_SIZE:
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_value_set_int (value, gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (self, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)));
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 919 "util.c"
+ default:
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 925 "util.c"
+ }
+}
+
+
+static void _vala_singleton_collection_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SingletonCollection * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_SINGLETON_COLLECTION, SingletonCollection);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ switch (property_id) {
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_G_TYPE:
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_type = g_value_get_gtype (value);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_G_DUP_FUNC:
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_dup_func = g_value_get_pointer (value);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ case SINGLETON_COLLECTION_G_DESTROY_FUNC:
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->g_destroy_func = g_value_get_pointer (value);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 953 "util.c"
+ default:
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 13 "/home/jens/Source/shotwell/src/core/util.vala"
+ break;
+#line 959 "util.c"
+ }
+}
+
+
+void marker_mark (Marker* self, DataObject* object) {
+#line 113 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (IS_MARKER (self));
+#line 113 "/home/jens/Source/shotwell/src/core/util.vala"
+ MARKER_GET_INTERFACE (self)->mark (self, object);
+#line 969 "util.c"
+}
+
+
+void marker_unmark (Marker* self, DataObject* object) {
+#line 115 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (IS_MARKER (self));
+#line 115 "/home/jens/Source/shotwell/src/core/util.vala"
+ MARKER_GET_INTERFACE (self)->unmark (self, object);
+#line 978 "util.c"
+}
+
+
+gboolean marker_toggle (Marker* self, DataObject* object) {
+#line 117 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (IS_MARKER (self), FALSE);
+#line 117 "/home/jens/Source/shotwell/src/core/util.vala"
+ return MARKER_GET_INTERFACE (self)->toggle (self, object);
+#line 987 "util.c"
+}
+
+
+void marker_mark_many (Marker* self, GeeCollection* list) {
+#line 119 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (IS_MARKER (self));
+#line 119 "/home/jens/Source/shotwell/src/core/util.vala"
+ MARKER_GET_INTERFACE (self)->mark_many (self, list);
+#line 996 "util.c"
+}
+
+
+void marker_unmark_many (Marker* self, GeeCollection* list) {
+#line 121 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (IS_MARKER (self));
+#line 121 "/home/jens/Source/shotwell/src/core/util.vala"
+ MARKER_GET_INTERFACE (self)->unmark_many (self, list);
+#line 1005 "util.c"
+}
+
+
+void marker_mark_all (Marker* self) {
+#line 123 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (IS_MARKER (self));
+#line 123 "/home/jens/Source/shotwell/src/core/util.vala"
+ MARKER_GET_INTERFACE (self)->mark_all (self);
+#line 1014 "util.c"
+}
+
+
+gint marker_get_count (Marker* self) {
+#line 127 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (IS_MARKER (self), 0);
+#line 127 "/home/jens/Source/shotwell/src/core/util.vala"
+ return MARKER_GET_INTERFACE (self)->get_count (self);
+#line 1023 "util.c"
+}
+
+
+GeeCollection* marker_get_all (Marker* self) {
+#line 130 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (IS_MARKER (self), NULL);
+#line 130 "/home/jens/Source/shotwell/src/core/util.vala"
+ return MARKER_GET_INTERFACE (self)->get_all (self);
+#line 1032 "util.c"
+}
+
+
+static void marker_base_init (MarkerIface * iface) {
+#line 112 "/home/jens/Source/shotwell/src/core/util.vala"
+ static gboolean initialized = FALSE;
+#line 112 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (!initialized) {
+#line 112 "/home/jens/Source/shotwell/src/core/util.vala"
+ initialized = TRUE;
+#line 1043 "util.c"
+ }
+}
+
+
+GType marker_get_type (void) {
+ static volatile gsize marker_type_id__volatile = 0;
+ if (g_once_init_enter (&marker_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MarkerIface), (GBaseInitFunc) marker_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType marker_type_id;
+ marker_type_id = g_type_register_static (G_TYPE_INTERFACE, "Marker", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (marker_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&marker_type_id__volatile, marker_type_id);
+ }
+ return marker_type_id__volatile;
+}
+
+
+UnknownTotalMonitor* unknown_total_monitor_construct (GType object_type, guint64 total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target) {
+ UnknownTotalMonitor* self = NULL;
+ guint64 _tmp0_ = 0ULL;
+ ProgressMonitor _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 147 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = (UnknownTotalMonitor*) g_type_create_instance (object_type);
+#line 148 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = total;
+#line 148 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->total = _tmp0_;
+#line 149 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = wrapped_monitor;
+#line 149 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1__target = wrapped_monitor_target;
+#line 149 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->wrapped_monitor = _tmp1_;
+#line 149 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->wrapped_monitor_target = _tmp1__target;
+#line 147 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self;
+#line 1082 "util.c"
+}
+
+
+UnknownTotalMonitor* unknown_total_monitor_new (guint64 total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target) {
+#line 147 "/home/jens/Source/shotwell/src/core/util.vala"
+ return unknown_total_monitor_construct (TYPE_UNKNOWN_TOTAL_MONITOR, total, wrapped_monitor, wrapped_monitor_target);
+#line 1089 "util.c"
+}
+
+
+gboolean unknown_total_monitor_monitor (UnknownTotalMonitor* self, guint64 count, guint64 total) {
+ gboolean result = FALSE;
+ ProgressMonitor _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+ gboolean _tmp3_ = FALSE;
+#line 152 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (IS_UNKNOWN_TOTAL_MONITOR (self), FALSE);
+#line 153 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = self->priv->wrapped_monitor;
+#line 153 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0__target = self->priv->wrapped_monitor_target;
+#line 153 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = count;
+#line 153 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp2_ = self->priv->total;
+#line 153 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp3_ = _tmp0_ (_tmp1_, _tmp2_, TRUE, _tmp0__target);
+#line 153 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp3_;
+#line 153 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 1116 "util.c"
+}
+
+
+static void value_unknown_total_monitor_init (GValue* value) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1123 "util.c"
+}
+
+
+static void value_unknown_total_monitor_free_value (GValue* value) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (value->data[0].v_pointer) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ unknown_total_monitor_unref (value->data[0].v_pointer);
+#line 1132 "util.c"
+ }
+}
+
+
+static void value_unknown_total_monitor_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (src_value->data[0].v_pointer) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ dest_value->data[0].v_pointer = unknown_total_monitor_ref (src_value->data[0].v_pointer);
+#line 1142 "util.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1146 "util.c"
+ }
+}
+
+
+static gpointer value_unknown_total_monitor_peek_pointer (const GValue* value) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return value->data[0].v_pointer;
+#line 1154 "util.c"
+}
+
+
+static gchar* value_unknown_total_monitor_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (collect_values[0].v_pointer) {
+#line 1161 "util.c"
+ UnknownTotalMonitor* object;
+ object = collect_values[0].v_pointer;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1168 "util.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1172 "util.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = unknown_total_monitor_ref (object);
+#line 1176 "util.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1180 "util.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return NULL;
+#line 1184 "util.c"
+}
+
+
+static gchar* value_unknown_total_monitor_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ UnknownTotalMonitor** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (!object_p) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1195 "util.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (!value->data[0].v_pointer) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ *object_p = NULL;
+#line 1201 "util.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1205 "util.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ *object_p = unknown_total_monitor_ref (value->data[0].v_pointer);
+#line 1209 "util.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return NULL;
+#line 1213 "util.c"
+}
+
+
+GParamSpec* param_spec_unknown_total_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecUnknownTotalMonitor* spec;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_UNKNOWN_TOTAL_MONITOR), NULL);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return G_PARAM_SPEC (spec);
+#line 1227 "util.c"
+}
+
+
+gpointer value_get_unknown_total_monitor (const GValue* value) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_UNKNOWN_TOTAL_MONITOR), NULL);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return value->data[0].v_pointer;
+#line 1236 "util.c"
+}
+
+
+void value_set_unknown_total_monitor (GValue* value, gpointer v_object) {
+ UnknownTotalMonitor* old;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_UNKNOWN_TOTAL_MONITOR));
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ old = value->data[0].v_pointer;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (v_object) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_UNKNOWN_TOTAL_MONITOR));
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = v_object;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ unknown_total_monitor_ref (value->data[0].v_pointer);
+#line 1256 "util.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1260 "util.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (old) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ unknown_total_monitor_unref (old);
+#line 1266 "util.c"
+ }
+}
+
+
+void value_take_unknown_total_monitor (GValue* value, gpointer v_object) {
+ UnknownTotalMonitor* old;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_UNKNOWN_TOTAL_MONITOR));
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ old = value->data[0].v_pointer;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (v_object) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_UNKNOWN_TOTAL_MONITOR));
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = v_object;
+#line 1285 "util.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1289 "util.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (old) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ unknown_total_monitor_unref (old);
+#line 1295 "util.c"
+ }
+}
+
+
+static void unknown_total_monitor_class_init (UnknownTotalMonitorClass * klass) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ unknown_total_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((UnknownTotalMonitorClass *) klass)->finalize = unknown_total_monitor_finalize;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_type_class_add_private (klass, sizeof (UnknownTotalMonitorPrivate));
+#line 1307 "util.c"
+}
+
+
+static void unknown_total_monitor_instance_init (UnknownTotalMonitor * self) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv = UNKNOWN_TOTAL_MONITOR_GET_PRIVATE (self);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->ref_count = 1;
+#line 1316 "util.c"
+}
+
+
+static void unknown_total_monitor_finalize (UnknownTotalMonitor* obj) {
+ UnknownTotalMonitor * self;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_UNKNOWN_TOTAL_MONITOR, UnknownTotalMonitor);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_signal_handlers_destroy (self);
+#line 1326 "util.c"
+}
+
+
+GType unknown_total_monitor_get_type (void) {
+ static volatile gsize unknown_total_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&unknown_total_monitor_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_unknown_total_monitor_init, value_unknown_total_monitor_free_value, value_unknown_total_monitor_copy_value, value_unknown_total_monitor_peek_pointer, "p", value_unknown_total_monitor_collect_value, "p", value_unknown_total_monitor_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (UnknownTotalMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unknown_total_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnknownTotalMonitor), 0, (GInstanceInitFunc) unknown_total_monitor_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType unknown_total_monitor_type_id;
+ unknown_total_monitor_type_id = g_type_register_fundamental (g_type_fundamental_next (), "UnknownTotalMonitor", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&unknown_total_monitor_type_id__volatile, unknown_total_monitor_type_id);
+ }
+ return unknown_total_monitor_type_id__volatile;
+}
+
+
+gpointer unknown_total_monitor_ref (gpointer instance) {
+ UnknownTotalMonitor* self;
+ self = instance;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ return instance;
+#line 1351 "util.c"
+}
+
+
+void unknown_total_monitor_unref (gpointer instance) {
+ UnknownTotalMonitor* self;
+ self = instance;
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ UNKNOWN_TOTAL_MONITOR_GET_CLASS (self)->finalize (self);
+#line 143 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1364 "util.c"
+ }
+}
+
+
+AggregateProgressMonitor* aggregate_progress_monitor_construct (GType object_type, guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target) {
+ AggregateProgressMonitor* self = NULL;
+ guint64 _tmp0_ = 0ULL;
+ ProgressMonitor _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 165 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = (AggregateProgressMonitor*) g_type_create_instance (object_type);
+#line 166 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = grand_total;
+#line 166 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->grand_total = _tmp0_;
+#line 167 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = wrapped_monitor;
+#line 167 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1__target = wrapped_monitor_target;
+#line 167 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->wrapped_monitor = _tmp1_;
+#line 167 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->wrapped_monitor_target = _tmp1__target;
+#line 165 "/home/jens/Source/shotwell/src/core/util.vala"
+ return self;
+#line 1390 "util.c"
+}
+
+
+AggregateProgressMonitor* aggregate_progress_monitor_new (guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target) {
+#line 165 "/home/jens/Source/shotwell/src/core/util.vala"
+ return aggregate_progress_monitor_construct (TYPE_AGGREGATE_PROGRESS_MONITOR, grand_total, wrapped_monitor, wrapped_monitor_target);
+#line 1397 "util.c"
+}
+
+
+void aggregate_progress_monitor_next_step (AggregateProgressMonitor* self, const gchar* name) {
+ const gchar* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ guint64 _tmp4_ = 0ULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (IS_AGGREGATE_PROGRESS_MONITOR (self));
+#line 170 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (name != NULL);
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = name;
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = self->priv->aggregate_count;
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp2_ = g_strdup_printf ("%" G_GUINT64_FORMAT, _tmp1_);
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp3_ = _tmp2_;
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp4_ = self->priv->grand_total;
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp5_ = g_strdup_printf ("%" G_GUINT64_FORMAT, _tmp4_);
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp6_ = _tmp5_;
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_debug ("util.vala:171: next step: %s (%s/%s)", _tmp0_, _tmp3_, _tmp6_);
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _g_free0 (_tmp6_);
+#line 171 "/home/jens/Source/shotwell/src/core/util.vala"
+ _g_free0 (_tmp3_);
+#line 172 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->last_count = G_MAXUINT64;
+#line 1435 "util.c"
+}
+
+
+gboolean aggregate_progress_monitor_monitor (AggregateProgressMonitor* self, guint64 count, guint64 total) {
+ gboolean result = FALSE;
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp5_ = 0ULL;
+ guint64 _tmp6_ = 0ULL;
+ guint64 _tmp7_ = 0ULL;
+ guint64 _tmp9_ = 0ULL;
+ ProgressMonitor _tmp10_ = NULL;
+ void* _tmp10__target = NULL;
+ guint64 _tmp11_ = 0ULL;
+ guint64 _tmp12_ = 0ULL;
+ gboolean _tmp13_ = FALSE;
+#line 175 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (IS_AGGREGATE_PROGRESS_MONITOR (self), FALSE);
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp1_ = self->priv->last_count;
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (_tmp1_ != G_MAXUINT64) {
+#line 1458 "util.c"
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp2_ = count;
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp3_ = self->priv->last_count;
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = _tmp2_ - _tmp3_;
+#line 1467 "util.c"
+ } else {
+ guint64 _tmp4_ = 0ULL;
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp4_ = count;
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = _tmp4_;
+#line 1474 "util.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp5_ = self->priv->aggregate_count;
+#line 177 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->aggregate_count = _tmp5_ + _tmp0_;
+#line 178 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp6_ = self->priv->aggregate_count;
+#line 178 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp7_ = self->priv->grand_total;
+#line 178 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (_tmp6_ > _tmp7_) {
+#line 1486 "util.c"
+ guint64 _tmp8_ = 0ULL;
+#line 179 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp8_ = self->priv->grand_total;
+#line 179 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->aggregate_count = _tmp8_;
+#line 1492 "util.c"
+ }
+#line 182 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp9_ = count;
+#line 182 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->last_count = _tmp9_;
+#line 184 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp10_ = self->priv->wrapped_monitor;
+#line 184 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp10__target = self->priv->wrapped_monitor_target;
+#line 184 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp11_ = self->priv->aggregate_count;
+#line 184 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp12_ = self->priv->grand_total;
+#line 184 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp13_ = _tmp10_ (_tmp11_, _tmp12_, TRUE, _tmp10__target);
+#line 184 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp13_;
+#line 184 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 1512 "util.c"
+}
+
+
+static void value_aggregate_progress_monitor_init (GValue* value) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1519 "util.c"
+}
+
+
+static void value_aggregate_progress_monitor_free_value (GValue* value) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (value->data[0].v_pointer) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ aggregate_progress_monitor_unref (value->data[0].v_pointer);
+#line 1528 "util.c"
+ }
+}
+
+
+static void value_aggregate_progress_monitor_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (src_value->data[0].v_pointer) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ dest_value->data[0].v_pointer = aggregate_progress_monitor_ref (src_value->data[0].v_pointer);
+#line 1538 "util.c"
+ } else {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1542 "util.c"
+ }
+}
+
+
+static gpointer value_aggregate_progress_monitor_peek_pointer (const GValue* value) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return value->data[0].v_pointer;
+#line 1550 "util.c"
+}
+
+
+static gchar* value_aggregate_progress_monitor_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (collect_values[0].v_pointer) {
+#line 1557 "util.c"
+ AggregateProgressMonitor* object;
+ object = collect_values[0].v_pointer;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1564 "util.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1568 "util.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = aggregate_progress_monitor_ref (object);
+#line 1572 "util.c"
+ } else {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1576 "util.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return NULL;
+#line 1580 "util.c"
+}
+
+
+static gchar* value_aggregate_progress_monitor_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ AggregateProgressMonitor** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (!object_p) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1591 "util.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (!value->data[0].v_pointer) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ *object_p = NULL;
+#line 1597 "util.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1601 "util.c"
+ } else {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ *object_p = aggregate_progress_monitor_ref (value->data[0].v_pointer);
+#line 1605 "util.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return NULL;
+#line 1609 "util.c"
+}
+
+
+GParamSpec* param_spec_aggregate_progress_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAggregateProgressMonitor* spec;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_AGGREGATE_PROGRESS_MONITOR), NULL);
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return G_PARAM_SPEC (spec);
+#line 1623 "util.c"
+}
+
+
+gpointer value_get_aggregate_progress_monitor (const GValue* value) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AGGREGATE_PROGRESS_MONITOR), NULL);
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return value->data[0].v_pointer;
+#line 1632 "util.c"
+}
+
+
+void value_set_aggregate_progress_monitor (GValue* value, gpointer v_object) {
+ AggregateProgressMonitor* old;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AGGREGATE_PROGRESS_MONITOR));
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ old = value->data[0].v_pointer;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (v_object) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AGGREGATE_PROGRESS_MONITOR));
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = v_object;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ aggregate_progress_monitor_ref (value->data[0].v_pointer);
+#line 1652 "util.c"
+ } else {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1656 "util.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (old) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ aggregate_progress_monitor_unref (old);
+#line 1662 "util.c"
+ }
+}
+
+
+void value_take_aggregate_progress_monitor (GValue* value, gpointer v_object) {
+ AggregateProgressMonitor* old;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_AGGREGATE_PROGRESS_MONITOR));
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ old = value->data[0].v_pointer;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (v_object) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_AGGREGATE_PROGRESS_MONITOR));
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = v_object;
+#line 1681 "util.c"
+ } else {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ value->data[0].v_pointer = NULL;
+#line 1685 "util.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (old) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ aggregate_progress_monitor_unref (old);
+#line 1691 "util.c"
+ }
+}
+
+
+static void aggregate_progress_monitor_class_init (AggregateProgressMonitorClass * klass) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ aggregate_progress_monitor_parent_class = g_type_class_peek_parent (klass);
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ ((AggregateProgressMonitorClass *) klass)->finalize = aggregate_progress_monitor_finalize;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_type_class_add_private (klass, sizeof (AggregateProgressMonitorPrivate));
+#line 1703 "util.c"
+}
+
+
+static void aggregate_progress_monitor_instance_init (AggregateProgressMonitor * self) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv = AGGREGATE_PROGRESS_MONITOR_GET_PRIVATE (self);
+#line 162 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->aggregate_count = (guint64) 0;
+#line 163 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->priv->last_count = G_MAXUINT64;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ self->ref_count = 1;
+#line 1716 "util.c"
+}
+
+
+static void aggregate_progress_monitor_finalize (AggregateProgressMonitor* obj) {
+ AggregateProgressMonitor * self;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitor);
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_signal_handlers_destroy (self);
+#line 1726 "util.c"
+}
+
+
+GType aggregate_progress_monitor_get_type (void) {
+ static volatile gsize aggregate_progress_monitor_type_id__volatile = 0;
+ if (g_once_init_enter (&aggregate_progress_monitor_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_aggregate_progress_monitor_init, value_aggregate_progress_monitor_free_value, value_aggregate_progress_monitor_copy_value, value_aggregate_progress_monitor_peek_pointer, "p", value_aggregate_progress_monitor_collect_value, "p", value_aggregate_progress_monitor_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AggregateProgressMonitorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) aggregate_progress_monitor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AggregateProgressMonitor), 0, (GInstanceInitFunc) aggregate_progress_monitor_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType aggregate_progress_monitor_type_id;
+ aggregate_progress_monitor_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AggregateProgressMonitor", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&aggregate_progress_monitor_type_id__volatile, aggregate_progress_monitor_type_id);
+ }
+ return aggregate_progress_monitor_type_id__volatile;
+}
+
+
+gpointer aggregate_progress_monitor_ref (gpointer instance) {
+ AggregateProgressMonitor* self;
+ self = instance;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ return instance;
+#line 1751 "util.c"
+}
+
+
+void aggregate_progress_monitor_unref (gpointer instance) {
+ AggregateProgressMonitor* self;
+ self = instance;
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ AGGREGATE_PROGRESS_MONITOR_GET_CLASS (self)->finalize (self);
+#line 159 "/home/jens/Source/shotwell/src/core/util.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1764 "util.c"
+ }
+}
+
+
+gboolean null_progress_monitor (guint64 count, guint64 total) {
+ gboolean result = FALSE;
+#line 190 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = TRUE;
+#line 190 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 1775 "util.c"
+}
+
+
+gdouble degrees_to_radians (gdouble theta) {
+ gdouble result = 0.0;
+ gdouble _tmp0_ = 0.0;
+#line 195 "/home/jens/Source/shotwell/src/core/util.vala"
+ _tmp0_ = theta;
+#line 195 "/home/jens/Source/shotwell/src/core/util.vala"
+ result = _tmp0_ * (G_PI / 180.0);
+#line 195 "/home/jens/Source/shotwell/src/core/util.vala"
+ return result;
+#line 1788 "util.c"
+}
+
+
+
diff --git a/src/data_imports/DataImportJob.c b/src/data_imports/DataImportJob.c
new file mode 100644
index 0000000..1cef36b
--- /dev/null
+++ b/src/data_imports/DataImportJob.c
@@ -0,0 +1,1754 @@
+/* DataImportJob.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataImportJob.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <time.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gee.h>
+
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+typedef struct _BatchImportJobPrivate BatchImportJobPrivate;
+
+#define TYPE_DUPLICATED_FILE (duplicated_file_get_type ())
+#define DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUPLICATED_FILE, DuplicatedFile))
+#define DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+#define IS_DUPLICATED_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUPLICATED_FILE))
+#define IS_DUPLICATED_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUPLICATED_FILE))
+#define DUPLICATED_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUPLICATED_FILE, DuplicatedFileClass))
+
+typedef struct _DuplicatedFile DuplicatedFile;
+typedef struct _DuplicatedFileClass DuplicatedFileClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+
+#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB (spit_data_imports_data_import_job_get_type ())
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJobClass))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJobClass))
+
+typedef struct _SpitDataImportsDataImportJob SpitDataImportsDataImportJob;
+typedef struct _SpitDataImportsDataImportJobClass SpitDataImportsDataImportJobClass;
+typedef struct _SpitDataImportsDataImportJobPrivate SpitDataImportsDataImportJobPrivate;
+
+#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE (spit_data_imports_data_import_source_get_type ())
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSource))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))
+
+typedef struct _SpitDataImportsDataImportSource SpitDataImportsDataImportSource;
+typedef struct _SpitDataImportsDataImportSourceClass SpitDataImportsDataImportSourceClass;
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+#define _spit_data_imports_data_import_source_unref0(var) ((var == NULL) ? NULL : (var = (spit_data_imports_data_import_source_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+typedef struct _BatchImportRollPrivate BatchImportRollPrivate;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _BatchImportJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportJobPrivate * priv;
+};
+
+struct _BatchImportJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportJob *self);
+ gchar* (*get_dest_identifier) (BatchImportJob* self);
+ gchar* (*get_source_identifier) (BatchImportJob* self);
+ gboolean (*is_directory) (BatchImportJob* self);
+ gchar* (*get_basename) (BatchImportJob* self);
+ gchar* (*get_path) (BatchImportJob* self);
+ DuplicatedFile* (*get_duplicated_file) (BatchImportJob* self);
+ void (*set_associated) (BatchImportJob* self, BatchImportJob* associated);
+ gboolean (*determine_file_size) (BatchImportJob* self, guint64* filesize, GFile** file_or_dir);
+ gboolean (*prepare) (BatchImportJob* self, GFile** file_to_import, gboolean* copy_to_library, GError** error);
+ gboolean (*complete) (BatchImportJob* self, MediaSource* source, BatchImportRoll* import_roll, GError** error);
+ time_t (*get_exposure_time_override) (BatchImportJob* self);
+};
+
+struct _SpitDataImportsDataImportJob {
+ BatchImportJob parent_instance;
+ SpitDataImportsDataImportJobPrivate * priv;
+};
+
+struct _SpitDataImportsDataImportJobClass {
+ BatchImportJobClass parent_class;
+};
+
+struct _SpitDataImportsDataImportJobPrivate {
+ SpitDataImportsDataImportSource* import_source;
+ GFile* src_file;
+ guint64 filesize;
+ time_t exposure_time;
+ SpitDataImportsDataImportJob* associated;
+ HierarchicalTagIndex* detected_htags;
+};
+
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _BatchImportRoll {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BatchImportRollPrivate * priv;
+ ImportID import_id;
+ ViewCollection* generated_events;
+};
+
+struct _BatchImportRollClass {
+ GTypeClass parent_class;
+ void (*finalize) (BatchImportRoll *self);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+
+static gpointer spit_data_imports_data_import_job_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+GType duplicated_file_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_data_import_job_get_type (void) G_GNUC_CONST;
+gpointer spit_data_imports_data_import_source_ref (gpointer instance);
+void spit_data_imports_data_import_source_unref (gpointer instance);
+GParamSpec* spit_data_imports_param_spec_data_import_source (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void spit_data_imports_value_set_data_import_source (GValue* value, gpointer v_object);
+void spit_data_imports_value_take_data_import_source (GValue* value, gpointer v_object);
+gpointer spit_data_imports_value_get_data_import_source (const GValue* value);
+GType spit_data_imports_data_import_source_get_type (void) G_GNUC_CONST;
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJobPrivate))
+enum {
+ SPIT_DATA_IMPORTS_DATA_IMPORT_JOB_DUMMY_PROPERTY
+};
+SpitDataImportsDataImportJob* spit_data_imports_data_import_job_new (SpitDataImportsDataImportSource* import_source);
+SpitDataImportsDataImportJob* spit_data_imports_data_import_job_construct (GType object_type, SpitDataImportsDataImportSource* import_source);
+BatchImportJob* batch_import_job_construct (GType object_type);
+GFile* spit_data_imports_data_import_source_get_file (SpitDataImportsDataImportSource* self);
+guint64 spit_data_imports_data_import_source_get_filesize (SpitDataImportsDataImportSource* self);
+time_t spit_data_imports_data_import_source_get_exposure_time (SpitDataImportsDataImportSource* self);
+static HierarchicalTagIndex* spit_data_imports_data_import_job_build_exclusion_index (SpitDataImportsDataImportJob* self, SpitDataImportsImportableTag** src_tags, int src_tags_length1);
+gchar* hierarchical_tag_utilities_join_path_components (gchar** path_components, int path_components_length1);
+gchar** tag_prep_tag_names (gchar** names, int names_length1, int* result_length1);
+static gchar** spit_data_imports_data_import_job_build_path_components (SpitDataImportsDataImportJob* self, SpitDataImportsImportableTag* tag, int* result_length1);
+#define TAG_PATH_SEPARATOR_STRING "/"
+GeeList* hierarchical_tag_utilities_enumerate_parent_paths (const gchar* in_path);
+HierarchicalTagIndex* hierarchical_tag_index_from_paths (GeeCollection* client_paths);
+time_t spit_data_imports_data_import_job_get_exposure_time (SpitDataImportsDataImportJob* self);
+static gchar* spit_data_imports_data_import_job_real_get_dest_identifier (BatchImportJob* base);
+gchar* spit_data_imports_data_import_source_get_filename (SpitDataImportsDataImportSource* self);
+static gchar* spit_data_imports_data_import_job_real_get_source_identifier (BatchImportJob* base);
+static gboolean spit_data_imports_data_import_job_real_is_directory (BatchImportJob* base);
+static gchar* spit_data_imports_data_import_job_real_get_basename (BatchImportJob* base);
+static gchar* spit_data_imports_data_import_job_real_get_path (BatchImportJob* base);
+static void spit_data_imports_data_import_job_real_set_associated (BatchImportJob* base, BatchImportJob* associated);
+static gboolean spit_data_imports_data_import_job_real_determine_file_size (BatchImportJob* base, guint64* filesize, GFile** file);
+static gboolean spit_data_imports_data_import_job_real_prepare (BatchImportJob* base, GFile** file_to_import, gboolean* copy_to_library, GError** error);
+SpitDataImportsImportableMediaItem* spit_data_imports_data_import_source_get_photo (SpitDataImportsDataImportSource* self);
+static gboolean spit_data_imports_data_import_job_real_complete (BatchImportJob* base, MediaSource* source, BatchImportRoll* import_roll, GError** error);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GeeCollection* hierarchical_tag_index_get_all_paths (HierarchicalTagIndex* self);
+GType tag_get_type (void) G_GNUC_CONST;
+Tag* tag_for_path (const gchar* name);
+GeeList* hierarchical_tag_utilities_enumerate_path_components (const gchar* in_path);
+gchar* hierarchical_tag_utilities_hierarchical_to_flat (const gchar* path);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+gboolean tag_source_collection_exists (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root);
+void tag_promote (Tag* self);
+void tag_attach (Tag* self, MediaSource* source);
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+GType view_collection_get_type (void) G_GNUC_CONST;
+void event_generate_single_event (MediaSource* media, ViewCollection* events_so_far, const gchar* event_name);
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+GType rating_get_type (void) G_GNUC_CONST;
+Rating rating_unserialize (gint value);
+void media_source_set_rating (MediaSource* self, Rating rating);
+void media_source_set_title (MediaSource* self, const gchar* title);
+GType dateable_get_type (void) G_GNUC_CONST;
+void dateable_set_exposure_time (Dateable* self, time_t target_time);
+void photo_set_import_id (Photo* self, ImportID* import_id);
+gchar* hierarchical_tag_utilities_make_flat_tag_safe (const gchar* in_tag);
+static void spit_data_imports_data_import_job_finalize (BatchImportJob* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _spit_data_imports_data_import_source_ref0 (gpointer self) {
+#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return self ? spit_data_imports_data_import_source_ref (self) : NULL;
+#line 443 "DataImportJob.c"
+}
+
+
+SpitDataImportsDataImportJob* spit_data_imports_data_import_job_construct (GType object_type, SpitDataImportsDataImportSource* import_source) {
+ SpitDataImportsDataImportJob* self = NULL;
+ SpitDataImportsDataImportSource* _tmp0_ = NULL;
+ SpitDataImportsDataImportSource* _tmp1_ = NULL;
+ SpitDataImportsDataImportSource* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ SpitDataImportsDataImportSource* _tmp4_ = NULL;
+ guint64 _tmp5_ = 0ULL;
+ SpitDataImportsDataImportSource* _tmp6_ = NULL;
+ time_t _tmp7_ = 0;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (import_source), NULL);
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = (SpitDataImportsDataImportJob*) batch_import_job_construct (object_type);
+#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = import_source;
+#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = _spit_data_imports_data_import_source_ref0 (_tmp0_);
+#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _spit_data_imports_data_import_source_unref0 (self->priv->import_source);
+#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->import_source = _tmp1_;
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp2_ = import_source;
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp3_ = spit_data_imports_data_import_source_get_file (_tmp2_);
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (self->priv->src_file);
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->src_file = _tmp3_;
+#line 25 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp4_ = import_source;
+#line 25 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp5_ = spit_data_imports_data_import_source_get_filesize (_tmp4_);
+#line 25 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->filesize = _tmp5_;
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp6_ = import_source;
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp7_ = spit_data_imports_data_import_source_get_exposure_time (_tmp6_);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->exposure_time = _tmp7_;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return self;
+#line 491 "DataImportJob.c"
+}
+
+
+SpitDataImportsDataImportJob* spit_data_imports_data_import_job_new (SpitDataImportsDataImportSource* import_source) {
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return spit_data_imports_data_import_job_construct (SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, import_source);
+#line 498 "DataImportJob.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 505 "DataImportJob.c"
+}
+
+
+static HierarchicalTagIndex* spit_data_imports_data_import_job_build_exclusion_index (SpitDataImportsDataImportJob* self, SpitDataImportsImportableTag** src_tags, int src_tags_length1) {
+ HierarchicalTagIndex* result = NULL;
+ GeeSet* detected_htags = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ SpitDataImportsImportableTag** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ HierarchicalTagIndex* _tmp33_ = NULL;
+ GeeSet* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+#line 29 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_JOB (self), NULL);
+#line 30 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 30 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ detected_htags = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_SET, GeeSet);
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = src_tags;
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1__length1 = src_tags_length1;
+#line 529 "DataImportJob.c"
+ {
+ SpitDataImportsImportableTag** src_tag_collection = NULL;
+ gint src_tag_collection_length1 = 0;
+ gint _src_tag_collection_size_ = 0;
+ gint src_tag_it = 0;
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tag_collection = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tag_collection_length1 = _tmp1__length1;
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ for (src_tag_it = 0; src_tag_it < _tmp1__length1; src_tag_it = src_tag_it + 1) {
+#line 541 "DataImportJob.c"
+ SpitDataImportsImportableTag* _tmp2_ = NULL;
+ SpitDataImportsImportableTag* src_tag = NULL;
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp2_ = _g_object_ref0 (src_tag_collection[src_tag_it]);
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tag = _tmp2_;
+#line 548 "DataImportJob.c"
+ {
+ gchar* prepped = NULL;
+ SpitDataImportsImportableTag* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gchar** _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ gchar** _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ const gchar* _tmp13_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp3_ = src_tag;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp5_ = spit_data_imports_data_import_job_build_path_components (self, _tmp3_, &_tmp4_);
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp6_ = _tmp5_;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp6__length1 = _tmp4_;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp8_ = tag_prep_tag_names (_tmp6_, _tmp4_, &_tmp7_);
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp9_ = _tmp8_;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp9__length1 = _tmp7_;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp10_ = hierarchical_tag_utilities_join_path_components (_tmp9_, _tmp7_);
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp11_ = _tmp10_;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp6_ = (_vala_array_free (_tmp6_, _tmp6__length1, (GDestroyNotify) g_free), NULL);
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ prepped = _tmp11_;
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp13_ = prepped;
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp13_ != NULL) {
+#line 592 "DataImportJob.c"
+ const gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp14_ = prepped;
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp15_ = g_str_has_prefix (_tmp14_, TAG_PATH_SEPARATOR_STRING);
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp12_ = _tmp15_;
+#line 601 "DataImportJob.c"
+ } else {
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp12_ = FALSE;
+#line 605 "DataImportJob.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp12_) {
+#line 609 "DataImportJob.c"
+ GeeSet* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GeeList* parents = NULL;
+ const gchar* _tmp18_ = NULL;
+ GeeList* _tmp19_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp16_ = detected_htags;
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp17_ = prepped;
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection), _tmp17_);
+#line 42 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp18_ = prepped;
+#line 42 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp19_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp18_);
+#line 42 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ parents = _tmp19_;
+#line 627 "DataImportJob.c"
+ {
+ GeeList* _parent_list = NULL;
+ GeeList* _tmp20_ = NULL;
+ GeeList* _tmp21_ = NULL;
+ gint _parent_size = 0;
+ GeeList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _parent_index = 0;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp20_ = parents;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp21_ = _g_object_ref0 (_tmp20_);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _parent_list = _tmp21_;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp22_ = _parent_list;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp23_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp24_ = _tmp23_;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _parent_size = _tmp24_;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _parent_index = -1;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ while (TRUE) {
+#line 655 "DataImportJob.c"
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gchar* parent = NULL;
+ GeeList* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gpointer _tmp30_ = NULL;
+ GeeSet* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp25_ = _parent_index;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _parent_index = _tmp25_ + 1;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp26_ = _parent_index;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp27_ = _parent_size;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (!(_tmp26_ < _tmp27_)) {
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ break;
+#line 677 "DataImportJob.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp28_ = _parent_list;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp29_ = _parent_index;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp30_ = gee_list_get (_tmp28_, _tmp29_);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ parent = (gchar*) _tmp30_;
+#line 44 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp31_ = detected_htags;
+#line 44 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp32_ = parent;
+#line 44 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection), _tmp32_);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (parent);
+#line 695 "DataImportJob.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_parent_list);
+#line 699 "DataImportJob.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (parents);
+#line 703 "DataImportJob.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (prepped);
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (src_tag);
+#line 709 "DataImportJob.c"
+ }
+ }
+ }
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp34_ = detected_htags;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp35_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp36_ = _tmp35_;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp36_ > 0) {
+#line 721 "DataImportJob.c"
+ GeeSet* _tmp37_ = NULL;
+ HierarchicalTagIndex* _tmp38_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp37_ = detected_htags;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp38_ = hierarchical_tag_index_from_paths (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _hierarchical_tag_index_unref0 (_tmp33_);
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp33_ = _tmp38_;
+#line 732 "DataImportJob.c"
+ } else {
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _hierarchical_tag_index_unref0 (_tmp33_);
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp33_ = NULL;
+#line 738 "DataImportJob.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = _tmp33_;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (detected_htags);
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 746 "DataImportJob.c"
+}
+
+
+time_t spit_data_imports_data_import_job_get_exposure_time (SpitDataImportsDataImportJob* self) {
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_JOB (self), 0);
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = self->priv->exposure_time;
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = _tmp0_;
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 761 "DataImportJob.c"
+}
+
+
+static gchar* spit_data_imports_data_import_job_real_get_dest_identifier (BatchImportJob* base) {
+ SpitDataImportsDataImportJob * self;
+ gchar* result = NULL;
+ SpitDataImportsDataImportSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = self->priv->import_source;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = spit_data_imports_data_import_source_get_filename (_tmp0_);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = _tmp1_;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 780 "DataImportJob.c"
+}
+
+
+static gchar* spit_data_imports_data_import_job_real_get_source_identifier (BatchImportJob* base) {
+ SpitDataImportsDataImportJob * self;
+ gchar* result = NULL;
+ SpitDataImportsDataImportSource* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 60 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = self->priv->import_source;
+#line 60 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = spit_data_imports_data_import_source_get_filename (_tmp0_);
+#line 60 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = _tmp1_;
+#line 60 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 799 "DataImportJob.c"
+}
+
+
+static gboolean spit_data_imports_data_import_job_real_is_directory (BatchImportJob* base) {
+ SpitDataImportsDataImportJob * self;
+ gboolean result = FALSE;
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 812 "DataImportJob.c"
+}
+
+
+static gchar* spit_data_imports_data_import_job_real_get_basename (BatchImportJob* base) {
+ SpitDataImportsDataImportJob * self;
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 68 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = self->priv->src_file;
+#line 68 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 68 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 831 "DataImportJob.c"
+}
+
+
+static gchar* spit_data_imports_data_import_job_real_get_path (BatchImportJob* base) {
+ SpitDataImportsDataImportJob * self;
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = self->priv->src_file;
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = g_file_get_parent (_tmp0_);
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp2_ = _tmp1_;
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp4_ = _tmp3_;
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_tmp2_);
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = _tmp4_;
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 861 "DataImportJob.c"
+}
+
+
+static gpointer _batch_import_job_ref0 (gpointer self) {
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return self ? batch_import_job_ref (self) : NULL;
+#line 868 "DataImportJob.c"
+}
+
+
+static void spit_data_imports_data_import_job_real_set_associated (BatchImportJob* base, BatchImportJob* associated) {
+ SpitDataImportsDataImportJob * self;
+ BatchImportJob* _tmp0_ = NULL;
+ SpitDataImportsDataImportJob* _tmp1_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_JOB (associated));
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = associated;
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = _batch_import_job_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB) ? ((SpitDataImportsDataImportJob*) _tmp0_) : NULL);
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _batch_import_job_unref0 (self->priv->associated);
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->associated = _tmp1_;
+#line 888 "DataImportJob.c"
+}
+
+
+static gboolean spit_data_imports_data_import_job_real_determine_file_size (BatchImportJob* base, guint64* filesize, GFile** file) {
+ SpitDataImportsDataImportJob * self;
+ guint64 _vala_filesize = 0ULL;
+ GFile* _vala_file = NULL;
+ gboolean result = FALSE;
+ guint64 _tmp0_ = 0ULL;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 80 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_vala_file);
+#line 80 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _vala_file = NULL;
+#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = self->priv->filesize;
+#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _vala_filesize = _tmp0_;
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = TRUE;
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (filesize) {
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ *filesize = _vala_filesize;
+#line 914 "DataImportJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (file) {
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ *file = _vala_file;
+#line 920 "DataImportJob.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_vala_file);
+#line 924 "DataImportJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 928 "DataImportJob.c"
+}
+
+
+static gboolean spit_data_imports_data_import_job_real_prepare (BatchImportJob* base, GFile** file_to_import, gboolean* copy_to_library, GError** error) {
+ SpitDataImportsDataImportJob * self;
+ GFile* _vala_file_to_import = NULL;
+ gboolean _vala_copy_to_library = FALSE;
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ SpitDataImportsDataImportSource* _tmp2_ = NULL;
+ SpitDataImportsImportableMediaItem* _tmp3_ = NULL;
+ SpitDataImportsImportableMediaItem* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ SpitDataImportsImportableTag** _tmp6_ = NULL;
+ SpitDataImportsImportableTag** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ HierarchicalTagIndex* _tmp8_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = self->priv->src_file;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _vala_file_to_import = _tmp1_;
+#line 88 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _vala_copy_to_library = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp2_ = self->priv->import_source;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp3_ = spit_data_imports_data_import_source_get_photo (_tmp2_);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp4_ = _tmp3_;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp6_ = spit_data_imports_importable_media_item_get_tags (_tmp4_, &_tmp5_);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp7_ = _tmp6_;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp7__length1 = _tmp5_;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp8_ = spit_data_imports_data_import_job_build_exclusion_index (self, _tmp7_, _tmp5_);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _hierarchical_tag_index_unref0 (self->priv->detected_htags);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->detected_htags = _tmp8_;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_object_unref), NULL);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_tmp4_);
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = TRUE;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (file_to_import) {
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ *file_to_import = _vala_file_to_import;
+#line 987 "DataImportJob.c"
+ } else {
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_vala_file_to_import);
+#line 991 "DataImportJob.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (copy_to_library) {
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ *copy_to_library = _vala_copy_to_library;
+#line 997 "DataImportJob.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 1001 "DataImportJob.c"
+}
+
+
+static gboolean spit_data_imports_data_import_job_real_complete (BatchImportJob* base, MediaSource* source, BatchImportRoll* import_roll, GError** error) {
+ SpitDataImportsDataImportJob * self;
+ gboolean result = FALSE;
+ LibraryPhoto* photo = NULL;
+ MediaSource* _tmp0_ = NULL;
+ LibraryPhoto* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ SpitDataImportsImportableMediaItem* src_photo = NULL;
+ SpitDataImportsDataImportSource* _tmp3_ = NULL;
+ SpitDataImportsImportableMediaItem* _tmp4_ = NULL;
+ HierarchicalTagIndex* _tmp5_ = NULL;
+ SpitDataImportsImportableTag** src_tags = NULL;
+ SpitDataImportsImportableMediaItem* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ SpitDataImportsImportableTag** _tmp19_ = NULL;
+ gint src_tags_length1 = 0;
+ gint _src_tags_size_ = 0;
+ SpitDataImportsImportableTag** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ SpitDataImportsImportableEvent* src_event = NULL;
+ SpitDataImportsImportableMediaItem* _tmp61_ = NULL;
+ SpitDataImportsImportableEvent* _tmp62_ = NULL;
+ SpitDataImportsImportableEvent* _tmp63_ = NULL;
+ Rating dst_rating = 0;
+ SpitDataImportsImportableRating* src_rating = NULL;
+ SpitDataImportsImportableMediaItem* _tmp74_ = NULL;
+ SpitDataImportsImportableRating* _tmp75_ = NULL;
+ SpitDataImportsImportableRating* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+ LibraryPhoto* _tmp83_ = NULL;
+ Rating _tmp84_ = 0;
+ gchar* title = NULL;
+ SpitDataImportsImportableMediaItem* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+ const gchar* _tmp87_ = NULL;
+ time_t* date_time = NULL;
+ SpitDataImportsImportableMediaItem* _tmp90_ = NULL;
+ time_t* _tmp91_ = NULL;
+ time_t* _tmp92_ = NULL;
+ LibraryPhoto* _tmp95_ = NULL;
+ BatchImportRoll* _tmp96_ = NULL;
+ ImportID _tmp97_ = {0};
+#line 95 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 95 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 95 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_val_if_fail (IS_BATCH_IMPORT_ROLL (import_roll), FALSE);
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = source;
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp0_) : NULL);
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ photo = _tmp1_;
+#line 97 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp2_ = photo;
+#line 97 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp2_ == NULL) {
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = FALSE;
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (photo);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 1069 "DataImportJob.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp3_ = self->priv->import_source;
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp4_ = spit_data_imports_data_import_source_get_photo (_tmp3_);
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_photo = _tmp4_;
+#line 103 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp5_ = self->priv->detected_htags;
+#line 103 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp5_ != NULL) {
+#line 1081 "DataImportJob.c"
+ GeeCollection* paths = NULL;
+ HierarchicalTagIndex* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp6_ = self->priv->detected_htags;
+#line 104 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp7_ = hierarchical_tag_index_get_all_paths (_tmp6_);
+#line 104 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ paths = _tmp7_;
+#line 1091 "DataImportJob.c"
+ {
+ GeeIterator* _path_it = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp8_ = paths;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _path_it = _tmp9_;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ while (TRUE) {
+#line 1104 "DataImportJob.c"
+ GeeIterator* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ Tag* _tmp15_ = NULL;
+ Tag* _tmp16_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp10_ = _path_it;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp11_ = gee_iterator_next (_tmp10_);
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (!_tmp11_) {
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ break;
+#line 1121 "DataImportJob.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp12_ = _path_it;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp13_ = gee_iterator_get (_tmp12_);
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ path = (gchar*) _tmp13_;
+#line 107 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp14_ = path;
+#line 107 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp15_ = tag_for_path (_tmp14_);
+#line 107 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp16_ = _tmp15_;
+#line 107 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_tmp16_);
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (path);
+#line 1139 "DataImportJob.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_path_it);
+#line 1143 "DataImportJob.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (paths);
+#line 1147 "DataImportJob.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp17_ = src_photo;
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp19_ = spit_data_imports_importable_media_item_get_tags (_tmp17_, &_tmp18_);
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tags = _tmp19_;
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tags_length1 = _tmp18_;
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _src_tags_size_ = src_tags_length1;
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp20_ = src_tags;
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp20__length1 = src_tags_length1;
+#line 1163 "DataImportJob.c"
+ {
+ SpitDataImportsImportableTag** src_tag_collection = NULL;
+ gint src_tag_collection_length1 = 0;
+ gint _src_tag_collection_size_ = 0;
+ gint src_tag_it = 0;
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tag_collection = _tmp20_;
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tag_collection_length1 = _tmp20__length1;
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ for (src_tag_it = 0; src_tag_it < _tmp20__length1; src_tag_it = src_tag_it + 1) {
+#line 1175 "DataImportJob.c"
+ SpitDataImportsImportableTag* _tmp21_ = NULL;
+ SpitDataImportsImportableTag* src_tag = NULL;
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp21_ = _g_object_ref0 (src_tag_collection[src_tag_it]);
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tag = _tmp21_;
+#line 1182 "DataImportJob.c"
+ {
+ gchar* prepped = NULL;
+ SpitDataImportsImportableTag* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gchar** _tmp24_ = NULL;
+ gchar** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gint _tmp26_ = 0;
+ gchar** _tmp27_ = NULL;
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp22_ = src_tag;
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp24_ = spit_data_imports_data_import_job_build_path_components (self, _tmp22_, &_tmp23_);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp25_ = _tmp24_;
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp25__length1 = _tmp23_;
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp27_ = tag_prep_tag_names (_tmp25_, _tmp23_, &_tmp26_);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp28_ = _tmp27_;
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp28__length1 = _tmp26_;
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp29_ = hierarchical_tag_utilities_join_path_components (_tmp28_, _tmp26_);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp30_ = _tmp29_;
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp28_ = (_vala_array_free (_tmp28_, _tmp28__length1, (GDestroyNotify) g_free), NULL);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp25_ = (_vala_array_free (_tmp25_, _tmp25__length1, (GDestroyNotify) g_free), NULL);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ prepped = _tmp30_;
+#line 117 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp31_ = prepped;
+#line 117 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp31_ != NULL) {
+#line 1225 "DataImportJob.c"
+ const gchar* _tmp32_ = NULL;
+ GeeList* _tmp33_ = NULL;
+ GeeList* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gboolean _tmp37_ = FALSE;
+ const gchar* _tmp57_ = NULL;
+ Tag* _tmp58_ = NULL;
+ Tag* _tmp59_ = NULL;
+ LibraryPhoto* _tmp60_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp32_ = prepped;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp33_ = hierarchical_tag_utilities_enumerate_path_components (_tmp32_);
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp34_ = _tmp33_;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp35_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp36_ = _tmp35_;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp37_ = _tmp36_ == 1;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_tmp34_);
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp37_) {
+#line 1252 "DataImportJob.c"
+ const gchar* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp38_ = prepped;
+#line 119 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp39_ = g_str_has_prefix (_tmp38_, TAG_PATH_SEPARATOR_STRING);
+#line 119 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp39_) {
+#line 1261 "DataImportJob.c"
+ const gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp40_ = prepped;
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp41_ = hierarchical_tag_utilities_hierarchical_to_flat (_tmp40_);
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (prepped);
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ prepped = _tmp41_;
+#line 1272 "DataImportJob.c"
+ }
+ } else {
+ GeeList* parents = NULL;
+ const gchar* _tmp42_ = NULL;
+ GeeList* _tmp43_ = NULL;
+ GeeList* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gchar* top_level_parent = NULL;
+ GeeList* _tmp47_ = NULL;
+ gpointer _tmp48_ = NULL;
+ gchar* flat_top_level_parent = NULL;
+ const gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ TagSourceCollection* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp42_ = prepped;
+#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp43_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp42_);
+#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ parents = _tmp43_;
+#line 125 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp44_ = parents;
+#line 125 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp45_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 125 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp46_ = _tmp45_;
+#line 125 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _vala_assert (_tmp46_ > 0, "parents.size > 0");
+#line 127 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp47_ = parents;
+#line 127 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp48_ = gee_list_get (_tmp47_, 0);
+#line 127 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ top_level_parent = (gchar*) _tmp48_;
+#line 128 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp49_ = top_level_parent;
+#line 128 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp50_ = hierarchical_tag_utilities_hierarchical_to_flat (_tmp49_);
+#line 128 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ flat_top_level_parent = _tmp50_;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp51_ = tag_global;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp52_ = flat_top_level_parent;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp53_ = tag_source_collection_exists (_tmp51_, _tmp52_, FALSE);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp53_) {
+#line 1324 "DataImportJob.c"
+ const gchar* _tmp54_ = NULL;
+ Tag* _tmp55_ = NULL;
+ Tag* _tmp56_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp54_ = flat_top_level_parent;
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp55_ = tag_for_path (_tmp54_);
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp56_ = _tmp55_;
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ tag_promote (_tmp56_);
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_tmp56_);
+#line 1338 "DataImportJob.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (flat_top_level_parent);
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (top_level_parent);
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (parents);
+#line 1346 "DataImportJob.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp57_ = prepped;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp58_ = tag_for_path (_tmp57_);
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp59_ = _tmp58_;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp60_ = photo;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ tag_attach (_tmp59_, G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (_tmp59_);
+#line 1360 "DataImportJob.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (prepped);
+#line 111 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (src_tag);
+#line 1366 "DataImportJob.c"
+ }
+ }
+ }
+#line 139 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp61_ = src_photo;
+#line 139 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp62_ = spit_data_imports_importable_media_item_get_event (_tmp61_);
+#line 139 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_event = _tmp62_;
+#line 140 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp63_ = src_event;
+#line 140 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp63_ != NULL) {
+#line 1380 "DataImportJob.c"
+ gchar* prepped = NULL;
+ SpitDataImportsImportableEvent* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ const gchar* _tmp69_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp64_ = src_event;
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp65_ = spit_data_imports_importable_event_get_name (_tmp64_);
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp66_ = _tmp65_;
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp67_ = prepare_input_text (_tmp66_, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT, -1);
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp68_ = _tmp67_;
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (_tmp66_);
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ prepped = _tmp68_;
+#line 143 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp69_ = prepped;
+#line 143 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp69_ != NULL) {
+#line 1406 "DataImportJob.c"
+ LibraryPhoto* _tmp70_ = NULL;
+ BatchImportRoll* _tmp71_ = NULL;
+ ViewCollection* _tmp72_ = NULL;
+ const gchar* _tmp73_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp70_ = photo;
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp71_ = import_roll;
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp72_ = _tmp71_->generated_events;
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp73_ = prepped;
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ event_generate_single_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, TYPE_MEDIA_SOURCE, MediaSource), _tmp72_, _tmp73_);
+#line 1421 "DataImportJob.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (prepped);
+#line 1425 "DataImportJob.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp74_ = src_photo;
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp75_ = spit_data_imports_importable_media_item_get_rating (_tmp74_);
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_rating = _tmp75_;
+#line 149 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp76_ = src_rating;
+#line 149 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp77_ = spit_data_imports_importable_rating_is_rejected (_tmp76_);
+#line 149 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp77_) {
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ dst_rating = RATING_REJECTED;
+#line 1441 "DataImportJob.c"
+ } else {
+ SpitDataImportsImportableRating* _tmp78_ = NULL;
+ gboolean _tmp79_ = FALSE;
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp78_ = src_rating;
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp79_ = spit_data_imports_importable_rating_is_unrated (_tmp78_);
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp79_) {
+#line 152 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ dst_rating = RATING_UNRATED;
+#line 1453 "DataImportJob.c"
+ } else {
+ SpitDataImportsImportableRating* _tmp80_ = NULL;
+ gint _tmp81_ = 0;
+ Rating _tmp82_ = 0;
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp80_ = src_rating;
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp81_ = spit_data_imports_importable_rating_get_value (_tmp80_);
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp82_ = rating_unserialize (_tmp81_);
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ dst_rating = _tmp82_;
+#line 1466 "DataImportJob.c"
+ }
+ }
+#line 155 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp83_ = photo;
+#line 155 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp84_ = dst_rating;
+#line 155 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ media_source_set_rating (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, TYPE_MEDIA_SOURCE, MediaSource), _tmp84_);
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp85_ = src_photo;
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp86_ = spit_data_imports_importable_media_item_get_title (_tmp85_);
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ title = _tmp86_;
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp87_ = title;
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp87_ != NULL) {
+#line 1485 "DataImportJob.c"
+ LibraryPhoto* _tmp88_ = NULL;
+ const gchar* _tmp89_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp88_ = photo;
+#line 159 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp89_ = title;
+#line 159 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ media_source_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp88_, TYPE_MEDIA_SOURCE, MediaSource), _tmp89_);
+#line 1494 "DataImportJob.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp90_ = src_photo;
+#line 161 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp91_ = spit_data_imports_importable_media_item_get_exposure_time (_tmp90_);
+#line 161 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ date_time = _tmp91_;
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp92_ = date_time;
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (_tmp92_ != NULL) {
+#line 1506 "DataImportJob.c"
+ LibraryPhoto* _tmp93_ = NULL;
+ time_t* _tmp94_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp93_ = photo;
+#line 163 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp94_ = date_time;
+#line 163 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ dateable_set_exposure_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, TYPE_DATEABLE, Dateable), *_tmp94_);
+#line 1515 "DataImportJob.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp95_ = photo;
+#line 165 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp96_ = import_roll;
+#line 165 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp97_ = _tmp96_->import_id;
+#line 165 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ photo_set_import_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp95_, TYPE_PHOTO, Photo), &_tmp97_);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = TRUE;
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (date_time);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (title);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (src_rating);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (src_event);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ src_tags = (_vala_array_free (src_tags, src_tags_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (src_photo);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (photo);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 1543 "DataImportJob.c"
+}
+
+
+static gchar** spit_data_imports_data_import_job_build_path_components (SpitDataImportsDataImportJob* self, SpitDataImportsImportableTag* tag, int* result_length1) {
+ gchar** result = NULL;
+ GeeList* components = NULL;
+ GeeLinkedList* _tmp0_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gpointer* _tmp15_ = NULL;
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+#line 170 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_JOB (self), NULL);
+#line 170 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_TAG (tag), NULL);
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp0_ = gee_linked_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ components = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
+#line 1564 "DataImportJob.c"
+ {
+ SpitDataImportsImportableTag* current_tag = NULL;
+ SpitDataImportsImportableTag* _tmp1_ = NULL;
+ SpitDataImportsImportableTag* _tmp2_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp1_ = tag;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ current_tag = _tmp2_;
+#line 1575 "DataImportJob.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp3_ = TRUE;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ while (TRUE) {
+#line 1582 "DataImportJob.c"
+ SpitDataImportsImportableTag* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ SpitDataImportsImportableTag* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (!_tmp3_) {
+#line 1592 "DataImportJob.c"
+ SpitDataImportsImportableTag* _tmp4_ = NULL;
+ SpitDataImportsImportableTag* _tmp5_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp4_ = current_tag;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp5_ = spit_data_imports_importable_tag_get_parent (_tmp4_);
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (current_tag);
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ current_tag = _tmp5_;
+#line 1603 "DataImportJob.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp3_ = FALSE;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp6_ = current_tag;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (!(_tmp6_ != NULL)) {
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ break;
+#line 1613 "DataImportJob.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp7_ = components;
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp8_ = current_tag;
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp9_ = spit_data_imports_importable_tag_get_name (_tmp8_);
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp10_ = _tmp9_;
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp11_ = hierarchical_tag_utilities_make_flat_tag_safe (_tmp10_);
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp12_ = _tmp11_;
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ gee_list_insert (_tmp7_, 0, _tmp12_);
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (_tmp12_);
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_free0 (_tmp10_);
+#line 1633 "DataImportJob.c"
+ }
+ }
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (current_tag);
+#line 1638 "DataImportJob.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp13_ = components;
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp15_ = gee_collection_to_array (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection), &_tmp14_);
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp16_ = _tmp15_;
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _tmp16__length1 = _tmp14_;
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ if (result_length1) {
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ *result_length1 = _tmp16__length1;
+#line 1652 "DataImportJob.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ result = _tmp16_;
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (components);
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ return result;
+#line 1660 "DataImportJob.c"
+}
+
+
+static void spit_data_imports_data_import_job_class_init (SpitDataImportsDataImportJobClass * klass) {
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ spit_data_imports_data_import_job_parent_class = g_type_class_peek_parent (klass);
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->finalize = spit_data_imports_data_import_job_finalize;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ g_type_class_add_private (klass, sizeof (SpitDataImportsDataImportJobPrivate));
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->get_dest_identifier = spit_data_imports_data_import_job_real_get_dest_identifier;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->get_source_identifier = spit_data_imports_data_import_job_real_get_source_identifier;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->is_directory = spit_data_imports_data_import_job_real_is_directory;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->get_basename = spit_data_imports_data_import_job_real_get_basename;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->get_path = spit_data_imports_data_import_job_real_get_path;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->set_associated = spit_data_imports_data_import_job_real_set_associated;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->determine_file_size = spit_data_imports_data_import_job_real_determine_file_size;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->prepare = spit_data_imports_data_import_job_real_prepare;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ ((BatchImportJobClass *) klass)->complete = spit_data_imports_data_import_job_real_complete;
+#line 1689 "DataImportJob.c"
+}
+
+
+static void spit_data_imports_data_import_job_instance_init (SpitDataImportsDataImportJob * self) {
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv = SPIT_DATA_IMPORTS_DATA_IMPORT_JOB_GET_PRIVATE (self);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->associated = NULL;
+#line 18 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self->priv->detected_htags = NULL;
+#line 1700 "DataImportJob.c"
+}
+
+
+static void spit_data_imports_data_import_job_finalize (BatchImportJob* obj) {
+ SpitDataImportsDataImportJob * self;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob);
+#line 13 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _spit_data_imports_data_import_source_unref0 (self->priv->import_source);
+#line 14 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _g_object_unref0 (self->priv->src_file);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _batch_import_job_unref0 (self->priv->associated);
+#line 18 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ _hierarchical_tag_index_unref0 (self->priv->detected_htags);
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportJob.vala"
+ BATCH_IMPORT_JOB_CLASS (spit_data_imports_data_import_job_parent_class)->finalize (obj);
+#line 1718 "DataImportJob.c"
+}
+
+
+/**
+ * A specialized import job implementation for alien databases.
+ */
+GType spit_data_imports_data_import_job_get_type (void) {
+ static volatile gsize spit_data_imports_data_import_job_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_data_import_job_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsDataImportJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_data_import_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsDataImportJob), 0, (GInstanceInitFunc) spit_data_imports_data_import_job_instance_init, NULL };
+ GType spit_data_imports_data_import_job_type_id;
+ spit_data_imports_data_import_job_type_id = g_type_register_static (TYPE_BATCH_IMPORT_JOB, "SpitDataImportsDataImportJob", &g_define_type_info, 0);
+ g_once_init_leave (&spit_data_imports_data_import_job_type_id__volatile, spit_data_imports_data_import_job_type_id);
+ }
+ return spit_data_imports_data_import_job_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/data_imports/DataImportSource.c b/src/data_imports/DataImportSource.c
new file mode 100644
index 0000000..4c6b25d
--- /dev/null
+++ b/src/data_imports/DataImportSource.c
@@ -0,0 +1,1425 @@
+/* DataImportSource.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataImportSource.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE (spit_data_imports_data_import_source_get_type ())
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSource))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))
+
+typedef struct _SpitDataImportsDataImportSource SpitDataImportsDataImportSource;
+typedef struct _SpitDataImportsDataImportSourceClass SpitDataImportsDataImportSourceClass;
+typedef struct _SpitDataImportsDataImportSourcePrivate SpitDataImportsDataImportSourcePrivate;
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_PHOTO_PREVIEW (photo_preview_get_type ())
+#define PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_PREVIEW, PhotoPreview))
+#define PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+#define IS_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_PREVIEW))
+#define IS_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_PREVIEW))
+#define PHOTO_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+
+typedef struct _PhotoPreview PhotoPreview;
+typedef struct _PhotoPreviewClass PhotoPreviewClass;
+#define _photo_preview_unref0(var) ((var == NULL) ? NULL : (var = (photo_preview_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+typedef struct _SpitDataImportsParamSpecDataImportSource SpitDataImportsParamSpecDataImportSource;
+
+struct _SpitDataImportsDataImportSource {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SpitDataImportsDataImportSourcePrivate * priv;
+};
+
+struct _SpitDataImportsDataImportSourceClass {
+ GTypeClass parent_class;
+ void (*finalize) (SpitDataImportsDataImportSource *self);
+};
+
+struct _SpitDataImportsDataImportSourcePrivate {
+ gboolean backing_file_found;
+ SpitDataImportsImportableMediaItem* db_photo;
+ gchar* title;
+ gchar* preview_md5;
+ guint64 file_size;
+ time_t modification_time;
+ MetadataDateTime* exposure_time;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _SpitDataImportsParamSpecDataImportSource {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer spit_data_imports_data_import_source_parent_class = NULL;
+
+gpointer spit_data_imports_data_import_source_ref (gpointer instance);
+void spit_data_imports_data_import_source_unref (gpointer instance);
+GParamSpec* spit_data_imports_param_spec_data_import_source (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void spit_data_imports_value_set_data_import_source (GValue* value, gpointer v_object);
+void spit_data_imports_value_take_data_import_source (GValue* value, gpointer v_object);
+gpointer spit_data_imports_value_get_data_import_source (const GValue* value);
+GType spit_data_imports_data_import_source_get_type (void) G_GNUC_CONST;
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourcePrivate))
+enum {
+ SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_DUMMY_PROPERTY
+};
+SpitDataImportsDataImportSource* spit_data_imports_data_import_source_new (SpitDataImportsImportableMediaItem* db_photo);
+SpitDataImportsDataImportSource* spit_data_imports_data_import_source_construct (GType object_type, SpitDataImportsImportableMediaItem* db_photo);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error);
+gchar* spit_data_imports_data_import_source_get_filename (SpitDataImportsDataImportSource* self);
+gchar* media_metadata_get_title (MediaMetadata* self);
+MetadataDateTime* metadata_date_time_new (time_t timestamp);
+MetadataDateTime* metadata_date_time_construct (GType object_type, time_t timestamp);
+MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self);
+gpointer photo_preview_ref (gpointer instance);
+void photo_preview_unref (gpointer instance);
+GParamSpec* param_spec_photo_preview (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_preview (GValue* value, gpointer v_object);
+void value_take_photo_preview (GValue* value, gpointer v_object);
+gpointer value_get_photo_preview (const GValue* value);
+GType photo_preview_get_type (void) G_GNUC_CONST;
+PhotoPreview* photo_metadata_get_preview (PhotoMetadata* self, guint number);
+guint8* photo_preview_flatten (PhotoPreview* self, int* result_length1, GError** error);
+gchar* md5_binary (guint8* buffer, gsize length);
+guint64 query_total_file_size (GFile* file_or_dir, GCancellable* cancellable, GError** error);
+time_t query_file_modified (GFile* file, GError** error);
+gchar* spit_data_imports_data_import_source_get_fulldir (SpitDataImportsDataImportSource* self);
+GFile* spit_data_imports_data_import_source_get_file (SpitDataImportsDataImportSource* self);
+gchar* spit_data_imports_data_import_source_get_name (SpitDataImportsDataImportSource* self);
+gboolean is_string_empty (const gchar* s);
+gchar* spit_data_imports_data_import_source_get_title (SpitDataImportsDataImportSource* self);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat spit_data_imports_data_import_source_get_file_format (SpitDataImportsDataImportSource* self);
+PhotoFileFormat photo_file_format_get_by_basename_extension (const gchar* basename);
+gchar* spit_data_imports_data_import_source_to_string (SpitDataImportsDataImportSource* self);
+time_t spit_data_imports_data_import_source_get_exposure_time (SpitDataImportsDataImportSource* self);
+time_t metadata_date_time_get_timestamp (MetadataDateTime* self);
+guint64 spit_data_imports_data_import_source_get_filesize (SpitDataImportsDataImportSource* self);
+SpitDataImportsImportableMediaItem* spit_data_imports_data_import_source_get_photo (SpitDataImportsDataImportSource* self);
+gboolean spit_data_imports_data_import_source_is_already_imported (SpitDataImportsDataImportSource* self);
+gboolean library_photo_has_nontrash_duplicate (GFile* file, const gchar* thumbnail_md5, const gchar* full_md5, PhotoFileFormat file_format);
+gboolean spit_data_imports_data_import_source_was_backing_file_found (SpitDataImportsDataImportSource* self);
+static void spit_data_imports_data_import_source_finalize (SpitDataImportsDataImportSource* obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 188 "DataImportSource.c"
+}
+
+
+static gpointer _metadata_date_time_ref0 (gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return self ? metadata_date_time_ref (self) : NULL;
+#line 195 "DataImportSource.c"
+}
+
+
+static gpointer _photo_preview_ref0 (gpointer self) {
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return self ? photo_preview_ref (self) : NULL;
+#line 202 "DataImportSource.c"
+}
+
+
+SpitDataImportsDataImportSource* spit_data_imports_data_import_source_construct (GType object_type, SpitDataImportsImportableMediaItem* db_photo) {
+ SpitDataImportsDataImportSource* self = NULL;
+ SpitDataImportsImportableMediaItem* _tmp0_ = NULL;
+ SpitDataImportsImportableMediaItem* _tmp1_ = NULL;
+ gchar* folder_path = NULL;
+ SpitDataImportsImportableMediaItem* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* filename = NULL;
+ SpitDataImportsImportableMediaItem* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GFile* photo = NULL;
+ gboolean _tmp6_ = FALSE;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ GFile* _tmp21_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (db_photo), NULL);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self = (SpitDataImportsDataImportSource*) g_type_create_instance (object_type);
+#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = db_photo;
+#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (self->priv->db_photo);
+#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->db_photo = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp2_ = db_photo;
+#line 31 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp3_ = spit_data_imports_importable_media_item_get_folder_path (_tmp2_);
+#line 31 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ folder_path = _tmp3_;
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp4_ = db_photo;
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp5_ = spit_data_imports_importable_media_item_get_filename (_tmp4_);
+#line 32 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ filename = _tmp5_;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ photo = NULL;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp7_ = folder_path;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp7_ != NULL) {
+#line 252 "DataImportSource.c"
+ const gchar* _tmp8_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp8_ = filename;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp6_ = _tmp8_ != NULL;
+#line 258 "DataImportSource.c"
+ } else {
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp6_ = FALSE;
+#line 262 "DataImportSource.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp6_) {
+#line 266 "DataImportSource.c"
+ SpitDataImportsImportableMediaItem* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ SpitDataImportsImportableMediaItem* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp9_ = db_photo;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp10_ = spit_data_imports_importable_media_item_get_folder_path (_tmp9_);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp11_ = _tmp10_;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp12_ = g_file_new_for_path (_tmp11_);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp13_ = _tmp12_;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp14_ = db_photo;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp15_ = spit_data_imports_importable_media_item_get_filename (_tmp14_);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp16_ = _tmp15_;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp17_ = g_file_get_child (_tmp13_, _tmp16_);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (photo);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ photo = _tmp17_;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp16_);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (_tmp13_);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp11_);
+#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp18_ = photo;
+#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp19_ = g_file_query_exists (_tmp18_, NULL);
+#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->backing_file_found = _tmp19_;
+#line 312 "DataImportSource.c"
+ } else {
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->backing_file_found = FALSE;
+#line 316 "DataImportSource.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp21_ = photo;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp21_ != NULL) {
+#line 322 "DataImportSource.c"
+ gboolean _tmp22_ = FALSE;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp22_ = self->priv->backing_file_found;
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp20_ = _tmp22_;
+#line 328 "DataImportSource.c"
+ } else {
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp20_ = FALSE;
+#line 332 "DataImportSource.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp20_) {
+#line 336 "DataImportSource.c"
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp23_ = NULL;
+ SpitDataImportsImportableMediaItem* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ time_t* date_time = NULL;
+ SpitDataImportsImportableMediaItem* _tmp38_ = NULL;
+ time_t* _tmp39_ = NULL;
+ time_t* _tmp40_ = NULL;
+ PhotoPreview* _tmp48_ = NULL;
+ PhotoMetadata* _tmp49_ = NULL;
+ PhotoPreview* preview = NULL;
+ PhotoPreview* _tmp52_ = NULL;
+ PhotoPreview* _tmp53_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp23_ = photo_metadata_new ();
+#line 44 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ metadata = _tmp23_;
+#line 355 "DataImportSource.c"
+ {
+ PhotoMetadata* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp24_ = metadata;
+#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp25_ = photo;
+#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_MEDIA_METADATA, MediaMetadata), _tmp25_, &_inner_error_);
+#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 367 "DataImportSource.c"
+ goto __catch202_g_error;
+ }
+ }
+ goto __finally202;
+ __catch202_g_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ GError* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ e = _inner_error_;
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _inner_error_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp26_ = spit_data_imports_data_import_source_get_filename (self);
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp27_ = _tmp26_;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp28_ = e;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp29_ = _tmp28_->message;
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_warning ("DataImportSource.vala:48: Could not get file metadata for %s: %s", _tmp27_, _tmp29_);
+#line 48 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp27_);
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _media_metadata_unref0 (metadata);
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ metadata = NULL;
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_error_free0 (e);
+#line 401 "DataImportSource.c"
+ }
+ __finally202:
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _media_metadata_unref0 (metadata);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (photo);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (filename);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (folder_path);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_clear_error (&_inner_error_);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return NULL;
+#line 420 "DataImportSource.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp30_ = db_photo;
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp31_ = spit_data_imports_importable_media_item_get_title (_tmp30_);
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (self->priv->title);
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->title = _tmp31_;
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp32_ = self->priv->title;
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp32_ == NULL) {
+#line 434 "DataImportSource.c"
+ gchar* _tmp33_ = NULL;
+ PhotoMetadata* _tmp34_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp34_ = metadata;
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp34_ != NULL) {
+#line 442 "DataImportSource.c"
+ PhotoMetadata* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp35_ = metadata;
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp36_ = media_metadata_get_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_MEDIA_METADATA, MediaMetadata));
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp33_);
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp33_ = _tmp36_;
+#line 453 "DataImportSource.c"
+ } else {
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp33_);
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp33_ = NULL;
+#line 459 "DataImportSource.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp37_ = g_strdup (_tmp33_);
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (self->priv->title);
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->title = _tmp37_;
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp33_);
+#line 469 "DataImportSource.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp38_ = db_photo;
+#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp39_ = spit_data_imports_importable_media_item_get_exposure_time (_tmp38_);
+#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ date_time = _tmp39_;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp40_ = date_time;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp40_ != NULL) {
+#line 481 "DataImportSource.c"
+ time_t* _tmp41_ = NULL;
+ MetadataDateTime* _tmp42_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp41_ = date_time;
+#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp42_ = metadata_date_time_new (*_tmp41_);
+#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _metadata_date_time_unref0 (self->priv->exposure_time);
+#line 57 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->exposure_time = _tmp42_;
+#line 492 "DataImportSource.c"
+ } else {
+ MetadataDateTime* _tmp43_ = NULL;
+ PhotoMetadata* _tmp44_ = NULL;
+ MetadataDateTime* _tmp47_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp44_ = metadata;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp44_ != NULL) {
+#line 501 "DataImportSource.c"
+ PhotoMetadata* _tmp45_ = NULL;
+ MetadataDateTime* _tmp46_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp45_ = metadata;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp46_ = photo_metadata_get_exposure_date_time (_tmp45_);
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _metadata_date_time_unref0 (_tmp43_);
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp43_ = _tmp46_;
+#line 512 "DataImportSource.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _metadata_date_time_unref0 (_tmp43_);
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp43_ = NULL;
+#line 518 "DataImportSource.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp47_ = _metadata_date_time_ref0 (_tmp43_);
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _metadata_date_time_unref0 (self->priv->exposure_time);
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->exposure_time = _tmp47_;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _metadata_date_time_unref0 (_tmp43_);
+#line 528 "DataImportSource.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp49_ = metadata;
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp49_ != NULL) {
+#line 534 "DataImportSource.c"
+ PhotoMetadata* _tmp50_ = NULL;
+ PhotoPreview* _tmp51_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp50_ = metadata;
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp51_ = photo_metadata_get_preview (_tmp50_, (guint) 0);
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (_tmp48_);
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp48_ = _tmp51_;
+#line 545 "DataImportSource.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (_tmp48_);
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp48_ = NULL;
+#line 551 "DataImportSource.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp52_ = _photo_preview_ref0 (_tmp48_);
+#line 61 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ preview = _tmp52_;
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp53_ = preview;
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp53_ != NULL) {
+#line 561 "DataImportSource.c"
+ {
+ guint8* preview_raw = NULL;
+ PhotoPreview* _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+ guint8* _tmp56_ = NULL;
+ gint preview_raw_length1 = 0;
+ gint _preview_raw_size_ = 0;
+ guint8* _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ guint8* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ gchar* _tmp59_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp54_ = preview;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp56_ = photo_preview_flatten (_tmp54_, &_tmp55_, &_inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ preview_raw = _tmp56_;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ preview_raw_length1 = _tmp55_;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _preview_raw_size_ = preview_raw_length1;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 586 "DataImportSource.c"
+ goto __catch203_g_error;
+ }
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp57_ = preview_raw;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp57__length1 = preview_raw_length1;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp58_ = preview_raw;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp58__length1 = preview_raw_length1;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp59_ = md5_binary (_tmp57_, (gsize) _tmp58__length1);
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (self->priv->preview_md5);
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->preview_md5 = _tmp59_;
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ preview_raw = (g_free (preview_raw), NULL);
+#line 605 "DataImportSource.c"
+ }
+ goto __finally203;
+ __catch203_g_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ GError* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ e = _inner_error_;
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _inner_error_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp60_ = spit_data_imports_data_import_source_get_filename (self);
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp61_ = _tmp60_;
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp62_ = e;
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp63_ = _tmp62_->message;
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_warning ("DataImportSource.vala:67: Could not get raw preview for %s: %s", _tmp61_, _tmp63_);
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp61_);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_error_free0 (e);
+#line 633 "DataImportSource.c"
+ }
+ __finally203:
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (preview);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (_tmp48_);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (date_time);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _media_metadata_unref0 (metadata);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (photo);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (filename);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (folder_path);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_clear_error (&_inner_error_);
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return NULL;
+#line 658 "DataImportSource.c"
+ }
+ }
+ {
+ guint64 _tmp64_ = 0ULL;
+ GFile* _tmp65_ = NULL;
+ guint64 _tmp66_ = 0ULL;
+#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp65_ = photo;
+#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp66_ = query_total_file_size (_tmp65_, NULL, &_inner_error_);
+#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp64_ = _tmp66_;
+#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 673 "DataImportSource.c"
+ goto __catch204_g_error;
+ }
+#line 75 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->file_size = _tmp64_;
+#line 678 "DataImportSource.c"
+ }
+ goto __finally204;
+ __catch204_g_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ GError* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ e = _inner_error_;
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _inner_error_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp67_ = spit_data_imports_data_import_source_get_filename (self);
+#line 77 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp68_ = _tmp67_;
+#line 77 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp69_ = e;
+#line 77 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp70_ = _tmp69_->message;
+#line 77 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_warning ("DataImportSource.vala:77: Could not get file size for %s: %s", _tmp68_, _tmp70_);
+#line 77 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp68_);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_error_free0 (e);
+#line 706 "DataImportSource.c"
+ }
+ __finally204:
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (preview);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (_tmp48_);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (date_time);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _media_metadata_unref0 (metadata);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (photo);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (filename);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (folder_path);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_clear_error (&_inner_error_);
+#line 74 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return NULL;
+#line 731 "DataImportSource.c"
+ }
+ {
+ time_t _tmp71_ = 0;
+ GFile* _tmp72_ = NULL;
+ time_t _tmp73_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp72_ = photo;
+#line 80 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp73_ = query_file_modified (_tmp72_, &_inner_error_);
+#line 80 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp71_ = _tmp73_;
+#line 80 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 745 "DataImportSource.c"
+ goto __catch205_g_error;
+ }
+#line 80 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->modification_time = _tmp71_;
+#line 750 "DataImportSource.c"
+ }
+ goto __finally205;
+ __catch205_g_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ GError* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ e = _inner_error_;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _inner_error_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp74_ = spit_data_imports_data_import_source_get_filename (self);
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp75_ = _tmp74_;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp76_ = e;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp77_ = _tmp76_->message;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_warning ("DataImportSource.vala:82: Could not get modification time for %s: %s", _tmp75_, _tmp77_);
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp75_);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_error_free0 (e);
+#line 778 "DataImportSource.c"
+ }
+ __finally205:
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (preview);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (_tmp48_);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (date_time);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _media_metadata_unref0 (metadata);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (photo);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (filename);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (folder_path);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_clear_error (&_inner_error_);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return NULL;
+#line 803 "DataImportSource.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (preview);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _photo_preview_unref0 (_tmp48_);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (date_time);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _media_metadata_unref0 (metadata);
+#line 813 "DataImportSource.c"
+ } else {
+ GFile* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp78_ = photo;
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp79_ = g_file_get_path (_tmp78_);
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp80_ = _tmp79_;
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp81_ = g_strdup_printf ("Photo file %s not found", _tmp80_);
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp82_ = _tmp81_;
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_debug ("DataImportSource.vala:85: %s", _tmp82_);
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp82_);
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp80_);
+#line 836 "DataImportSource.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (photo);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (filename);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (folder_path);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return self;
+#line 846 "DataImportSource.c"
+}
+
+
+SpitDataImportsDataImportSource* spit_data_imports_data_import_source_new (SpitDataImportsImportableMediaItem* db_photo) {
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return spit_data_imports_data_import_source_construct (SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, db_photo);
+#line 853 "DataImportSource.c"
+}
+
+
+gchar* spit_data_imports_data_import_source_get_filename (SpitDataImportsDataImportSource* self) {
+ gchar* result = NULL;
+ SpitDataImportsImportableMediaItem* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = self->priv->db_photo;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = spit_data_imports_importable_media_item_get_filename (_tmp0_);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp1_;
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 871 "DataImportSource.c"
+}
+
+
+gchar* spit_data_imports_data_import_source_get_fulldir (SpitDataImportsDataImportSource* self) {
+ gchar* result = NULL;
+ SpitDataImportsImportableMediaItem* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
+#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = self->priv->db_photo;
+#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = spit_data_imports_importable_media_item_get_folder_path (_tmp0_);
+#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp1_;
+#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 889 "DataImportSource.c"
+}
+
+
+GFile* spit_data_imports_data_import_source_get_file (SpitDataImportsDataImportSource* self) {
+ GFile* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = spit_data_imports_data_import_source_get_fulldir (self);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = _tmp0_;
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp3_ = _tmp2_;
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp4_ = spit_data_imports_data_import_source_get_filename (self);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp5_ = _tmp4_;
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp6_ = g_file_get_child (_tmp3_, _tmp5_);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp7_ = _tmp6_;
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp5_);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (_tmp3_);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp7_;
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 931 "DataImportSource.c"
+}
+
+
+gchar* spit_data_imports_data_import_source_get_name (SpitDataImportsDataImportSource* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = self->priv->title;
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp2_ = is_string_empty (_tmp1_);
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (!_tmp2_) {
+#line 948 "DataImportSource.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp3_ = self->priv->title;
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp0_);
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = _tmp4_;
+#line 959 "DataImportSource.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp5_ = spit_data_imports_data_import_source_get_filename (self);
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp0_);
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = _tmp5_;
+#line 968 "DataImportSource.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp0_;
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 974 "DataImportSource.c"
+}
+
+
+gchar* spit_data_imports_data_import_source_get_title (SpitDataImportsDataImportSource* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = self->priv->title;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp1_;
+#line 106 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 992 "DataImportSource.c"
+}
+
+
+PhotoFileFormat spit_data_imports_data_import_source_get_file_format (SpitDataImportsDataImportSource* self) {
+ PhotoFileFormat result = 0;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ PhotoFileFormat _tmp3_ = 0;
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), 0);
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = spit_data_imports_data_import_source_get_filename (self);
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = _tmp0_;
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp2_ = photo_file_format_get_by_basename_extension (_tmp1_);
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp3_ = _tmp2_;
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (_tmp1_);
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp3_;
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 1018 "DataImportSource.c"
+}
+
+
+gchar* spit_data_imports_data_import_source_to_string (SpitDataImportsDataImportSource* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = spit_data_imports_data_import_source_get_name (self);
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp0_;
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 1033 "DataImportSource.c"
+}
+
+
+time_t spit_data_imports_data_import_source_get_exposure_time (SpitDataImportsDataImportSource* self) {
+ time_t result = 0;
+ time_t _tmp0_ = 0;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), 0);
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = self->priv->exposure_time;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp1_ != NULL) {
+#line 1047 "DataImportSource.c"
+ MetadataDateTime* _tmp2_ = NULL;
+ time_t _tmp3_ = 0;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp2_ = self->priv->exposure_time;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp3_ = metadata_date_time_get_timestamp (_tmp2_);
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = _tmp3_;
+#line 1056 "DataImportSource.c"
+ } else {
+ time_t _tmp4_ = 0;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp4_ = self->priv->modification_time;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = _tmp4_;
+#line 1063 "DataImportSource.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp0_;
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 1069 "DataImportSource.c"
+}
+
+
+guint64 spit_data_imports_data_import_source_get_filesize (SpitDataImportsDataImportSource* self) {
+ guint64 result = 0ULL;
+ guint64 _tmp0_ = 0ULL;
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), 0ULL);
+#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = self->priv->file_size;
+#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp0_;
+#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 1084 "DataImportSource.c"
+}
+
+
+SpitDataImportsImportableMediaItem* spit_data_imports_data_import_source_get_photo (SpitDataImportsDataImportSource* self) {
+ SpitDataImportsImportableMediaItem* result = NULL;
+ SpitDataImportsImportableMediaItem* _tmp0_ = NULL;
+ SpitDataImportsImportableMediaItem* _tmp1_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), NULL);
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = self->priv->db_photo;
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp1_;
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 1102 "DataImportSource.c"
+}
+
+
+gboolean spit_data_imports_data_import_source_is_already_imported (SpitDataImportsDataImportSource* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), FALSE);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp1_ = self->priv->preview_md5;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (_tmp1_ != NULL) {
+#line 1116 "DataImportSource.c"
+ const gchar* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp2_ = self->priv->preview_md5;
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp3_ = spit_data_imports_data_import_source_get_file_format (self);
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp4_ = library_photo_has_nontrash_duplicate (NULL, _tmp2_, NULL, _tmp3_);
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = _tmp4_;
+#line 1128 "DataImportSource.c"
+ } else {
+#line 133 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = FALSE;
+#line 1132 "DataImportSource.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp0_;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 1138 "DataImportSource.c"
+}
+
+
+gboolean spit_data_imports_data_import_source_was_backing_file_found (SpitDataImportsDataImportSource* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE (self), FALSE);
+#line 137 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _tmp0_ = self->priv->backing_file_found;
+#line 137 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ result = _tmp0_;
+#line 137 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return result;
+#line 1153 "DataImportSource.c"
+}
+
+
+static void spit_data_imports_value_data_import_source_init (GValue* value) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 1160 "DataImportSource.c"
+}
+
+
+static void spit_data_imports_value_data_import_source_free_value (GValue* value) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (value->data[0].v_pointer) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ spit_data_imports_data_import_source_unref (value->data[0].v_pointer);
+#line 1169 "DataImportSource.c"
+ }
+}
+
+
+static void spit_data_imports_value_data_import_source_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (src_value->data[0].v_pointer) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ dest_value->data[0].v_pointer = spit_data_imports_data_import_source_ref (src_value->data[0].v_pointer);
+#line 1179 "DataImportSource.c"
+ } else {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1183 "DataImportSource.c"
+ }
+}
+
+
+static gpointer spit_data_imports_value_data_import_source_peek_pointer (const GValue* value) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return value->data[0].v_pointer;
+#line 1191 "DataImportSource.c"
+}
+
+
+static gchar* spit_data_imports_value_data_import_source_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (collect_values[0].v_pointer) {
+#line 1198 "DataImportSource.c"
+ SpitDataImportsDataImportSource* object;
+ object = collect_values[0].v_pointer;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1205 "DataImportSource.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1209 "DataImportSource.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ value->data[0].v_pointer = spit_data_imports_data_import_source_ref (object);
+#line 1213 "DataImportSource.c"
+ } else {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 1217 "DataImportSource.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return NULL;
+#line 1221 "DataImportSource.c"
+}
+
+
+static gchar* spit_data_imports_value_data_import_source_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SpitDataImportsDataImportSource** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (!object_p) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1232 "DataImportSource.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (!value->data[0].v_pointer) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ *object_p = NULL;
+#line 1238 "DataImportSource.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1242 "DataImportSource.c"
+ } else {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ *object_p = spit_data_imports_data_import_source_ref (value->data[0].v_pointer);
+#line 1246 "DataImportSource.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return NULL;
+#line 1250 "DataImportSource.c"
+}
+
+
+GParamSpec* spit_data_imports_param_spec_data_import_source (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ SpitDataImportsParamSpecDataImportSource* spec;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE), NULL);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return G_PARAM_SPEC (spec);
+#line 1264 "DataImportSource.c"
+}
+
+
+gpointer spit_data_imports_value_get_data_import_source (const GValue* value) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE), NULL);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return value->data[0].v_pointer;
+#line 1273 "DataImportSource.c"
+}
+
+
+void spit_data_imports_value_set_data_import_source (GValue* value, gpointer v_object) {
+ SpitDataImportsDataImportSource* old;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ old = value->data[0].v_pointer;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (v_object) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ spit_data_imports_data_import_source_ref (value->data[0].v_pointer);
+#line 1293 "DataImportSource.c"
+ } else {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 1297 "DataImportSource.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (old) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ spit_data_imports_data_import_source_unref (old);
+#line 1303 "DataImportSource.c"
+ }
+}
+
+
+void spit_data_imports_value_take_data_import_source (GValue* value, gpointer v_object) {
+ SpitDataImportsDataImportSource* old;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ old = value->data[0].v_pointer;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (v_object) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE));
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ value->data[0].v_pointer = v_object;
+#line 1322 "DataImportSource.c"
+ } else {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ value->data[0].v_pointer = NULL;
+#line 1326 "DataImportSource.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (old) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ spit_data_imports_data_import_source_unref (old);
+#line 1332 "DataImportSource.c"
+ }
+}
+
+
+static void spit_data_imports_data_import_source_class_init (SpitDataImportsDataImportSourceClass * klass) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ spit_data_imports_data_import_source_parent_class = g_type_class_peek_parent (klass);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ ((SpitDataImportsDataImportSourceClass *) klass)->finalize = spit_data_imports_data_import_source_finalize;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_type_class_add_private (klass, sizeof (SpitDataImportsDataImportSourcePrivate));
+#line 1344 "DataImportSource.c"
+}
+
+
+static void spit_data_imports_data_import_source_instance_init (SpitDataImportsDataImportSource * self) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv = SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_PRIVATE (self);
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->title = NULL;
+#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->priv->preview_md5 = NULL;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self->ref_count = 1;
+#line 1357 "DataImportSource.c"
+}
+
+
+static void spit_data_imports_data_import_source_finalize (SpitDataImportsDataImportSource* obj) {
+ SpitDataImportsDataImportSource * self;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSource);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_signal_handlers_destroy (self);
+#line 19 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_object_unref0 (self->priv->db_photo);
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (self->priv->title);
+#line 21 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _g_free0 (self->priv->preview_md5);
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ _metadata_date_time_unref0 (self->priv->exposure_time);
+#line 1375 "DataImportSource.c"
+}
+
+
+/**
+ * Photo source implementation for alien databases. This class is responsible
+ * for extracting meta-data out of a source photo to support the import
+ * process.
+ *
+ * This class does not extend PhotoSource in order to minimise the API to the
+ * absolute minimum required to run the import job.
+ */
+GType spit_data_imports_data_import_source_get_type (void) {
+ static volatile gsize spit_data_imports_data_import_source_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_data_import_source_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { spit_data_imports_value_data_import_source_init, spit_data_imports_value_data_import_source_free_value, spit_data_imports_value_data_import_source_copy_value, spit_data_imports_value_data_import_source_peek_pointer, "p", spit_data_imports_value_data_import_source_collect_value, "p", spit_data_imports_value_data_import_source_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsDataImportSourceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_data_import_source_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsDataImportSource), 0, (GInstanceInitFunc) spit_data_imports_data_import_source_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType spit_data_imports_data_import_source_type_id;
+ spit_data_imports_data_import_source_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SpitDataImportsDataImportSource", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&spit_data_imports_data_import_source_type_id__volatile, spit_data_imports_data_import_source_type_id);
+ }
+ return spit_data_imports_data_import_source_type_id__volatile;
+}
+
+
+gpointer spit_data_imports_data_import_source_ref (gpointer instance) {
+ SpitDataImportsDataImportSource* self;
+ self = instance;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ return instance;
+#line 1408 "DataImportSource.c"
+}
+
+
+void spit_data_imports_data_import_source_unref (gpointer instance) {
+ SpitDataImportsDataImportSource* self;
+ self = instance;
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_CLASS (self)->finalize (self);
+#line 17 "/home/jens/Source/shotwell/src/data_imports/DataImportSource.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1421 "DataImportSource.c"
+ }
+}
+
+
+
diff --git a/src/data_imports/DataImports.c b/src/data_imports/DataImports.c
new file mode 100644
index 0000000..2b9e8e9
--- /dev/null
+++ b/src/data_imports/DataImports.c
@@ -0,0 +1,117 @@
+/* DataImports.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataImports.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* This file is the master unit file for the DataImports unit. It should be edited to include
+ * whatever code is deemed necessary.
+ *
+ * The init() and terminate() methods are mandatory.
+ *
+ * If the unit needs to be configured prior to initialization, add the proper parameters to
+ * the preconfigure() method, implement it, and ensure in init() that it's been called.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <glib/gi18n-lib.h>
+
+
+
+
+void data_imports_init (GError** error);
+static void _vala_array_add150 (gchar*** array, int* length, int* size, gchar* value);
+void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+#define RESOURCES_IMPORT "shotwell-import"
+void data_imports_terminate (void);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static void _vala_array_add150 (gchar*** array, int* length, int* size, gchar* value) {
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ if ((*length) == (*size)) {
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 45 "DataImports.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ (*array)[(*length)++] = value;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ (*array)[*length] = NULL;
+#line 51 "DataImports.c"
+}
+
+
+void data_imports_init (GError** error) {
+ gchar** core_ids = NULL;
+ gchar** _tmp0_ = NULL;
+ gint core_ids_length1 = 0;
+ gint _core_ids_size_ = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 19 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 19 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ core_ids = _tmp0_;
+#line 19 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ core_ids_length1 = 0;
+#line 19 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _core_ids_size_ = core_ids_length1;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _tmp1_ = core_ids;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _tmp1__length1 = core_ids_length1;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _tmp2_ = g_strdup ("org.yorba.shotwell.dataimports.fspot");
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _vala_array_add150 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp2_);
+#line 22 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _tmp3_ = _ ("Data Imports");
+#line 22 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _tmp4_ = core_ids;
+#line 22 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ _tmp4__length1 = core_ids_length1;
+#line 22 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ plugins_register_extension_point (SPIT_DATA_IMPORTS_TYPE_SERVICE, _tmp3_, RESOURCES_IMPORT, _tmp4_, _tmp4__length1);
+#line 18 "/home/jens/Source/shotwell/src/data_imports/DataImports.vala"
+ core_ids = (_vala_array_free (core_ids, core_ids_length1, (GDestroyNotify) g_free), NULL);
+#line 92 "DataImports.c"
+}
+
+
+void data_imports_terminate (void) {
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/data_imports/DataImportsPluginHost.c b/src/data_imports/DataImportsPluginHost.c
new file mode 100644
index 0000000..308cd17
--- /dev/null
+++ b/src/data_imports/DataImportsPluginHost.c
@@ -0,0 +1,3451 @@
+/* DataImportsPluginHost.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataImportsPluginHost.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <gtk/gtk.h>
+#include <time.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER (spit_data_imports_core_importer_get_type ())
+#define SPIT_DATA_IMPORTS_CORE_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER, SpitDataImportsCoreImporter))
+#define SPIT_DATA_IMPORTS_CORE_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER, SpitDataImportsCoreImporterClass))
+#define SPIT_DATA_IMPORTS_IS_CORE_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER))
+#define SPIT_DATA_IMPORTS_IS_CORE_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER))
+#define SPIT_DATA_IMPORTS_CORE_IMPORTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER, SpitDataImportsCoreImporterClass))
+
+typedef struct _SpitDataImportsCoreImporter SpitDataImportsCoreImporter;
+typedef struct _SpitDataImportsCoreImporterClass SpitDataImportsCoreImporterClass;
+typedef struct _SpitDataImportsCoreImporterPrivate SpitDataImportsCoreImporterPrivate;
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+#define _batch_import_roll_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_roll_unref (var), NULL)))
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+
+#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB (spit_data_imports_data_import_job_get_type ())
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJobClass))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJobClass))
+
+typedef struct _SpitDataImportsDataImportJob SpitDataImportsDataImportJob;
+typedef struct _SpitDataImportsDataImportJobClass SpitDataImportsDataImportJobClass;
+
+#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE (spit_data_imports_data_import_source_get_type ())
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSource))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE))
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_SOURCE, SpitDataImportsDataImportSourceClass))
+
+typedef struct _SpitDataImportsDataImportSource SpitDataImportsDataImportSource;
+typedef struct _SpitDataImportsDataImportSourceClass SpitDataImportsDataImportSourceClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))
+#define _spit_data_imports_data_import_source_unref0(var) ((var == NULL) ? NULL : (var = (spit_data_imports_data_import_source_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+typedef struct _SpitDataImportsParamSpecCoreImporter SpitDataImportsParamSpecCoreImporter;
+
+#define PLUGINS_TYPE_STANDARD_HOST_INTERFACE (plugins_standard_host_interface_get_type ())
+#define PLUGINS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface))
+#define PLUGINS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+
+typedef struct _PluginsStandardHostInterface PluginsStandardHostInterface;
+typedef struct _PluginsStandardHostInterfaceClass PluginsStandardHostInterfaceClass;
+typedef struct _PluginsStandardHostInterfacePrivate PluginsStandardHostInterfacePrivate;
+
+#define SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST (spit_data_imports_concrete_data_imports_host_get_type ())
+#define SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost))
+#define SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHostClass))
+#define SPIT_DATA_IMPORTS_IS_CONCRETE_DATA_IMPORTS_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST))
+#define SPIT_DATA_IMPORTS_IS_CONCRETE_DATA_IMPORTS_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST))
+#define SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHostClass))
+
+typedef struct _SpitDataImportsConcreteDataImportsHost SpitDataImportsConcreteDataImportsHost;
+typedef struct _SpitDataImportsConcreteDataImportsHostClass SpitDataImportsConcreteDataImportsHostClass;
+typedef struct _SpitDataImportsConcreteDataImportsHostPrivate SpitDataImportsConcreteDataImportsHostPrivate;
+
+#define DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG (data_imports_ui_data_imports_dialog_get_type ())
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialog))
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialogClass))
+#define DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG))
+#define DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG))
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialogClass))
+
+typedef struct _DataImportsUIDataImportsDialog DataImportsUIDataImportsDialog;
+typedef struct _DataImportsUIDataImportsDialogClass DataImportsUIDataImportsDialogClass;
+
+#define DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE (data_imports_ui_concrete_dialog_pane_get_type ())
+#define DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPane))
+#define DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPaneClass))
+#define DATA_IMPORTS_UI_IS_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define DATA_IMPORTS_UI_IS_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPaneClass))
+
+typedef struct _DataImportsUIConcreteDialogPane DataImportsUIConcreteDialogPane;
+typedef struct _DataImportsUIConcreteDialogPaneClass DataImportsUIConcreteDialogPaneClass;
+
+#define DATA_IMPORTS_UI_TYPE_PROGRESS_PANE (data_imports_ui_progress_pane_get_type ())
+#define DATA_IMPORTS_UI_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPane))
+#define DATA_IMPORTS_UI_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPaneClass))
+#define DATA_IMPORTS_UI_IS_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE))
+#define DATA_IMPORTS_UI_IS_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE))
+#define DATA_IMPORTS_UI_PROGRESS_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPaneClass))
+
+typedef struct _DataImportsUIProgressPane DataImportsUIProgressPane;
+typedef struct _DataImportsUIProgressPaneClass DataImportsUIProgressPaneClass;
+#define _spit_data_imports_core_importer_unref0(var) ((var == NULL) ? NULL : (var = (spit_data_imports_core_importer_unref (var), NULL)))
+
+#define DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE (data_imports_ui_static_message_pane_get_type ())
+#define DATA_IMPORTS_UI_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, DataImportsUIStaticMessagePane))
+#define DATA_IMPORTS_UI_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, DataImportsUIStaticMessagePaneClass))
+#define DATA_IMPORTS_UI_IS_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE))
+#define DATA_IMPORTS_UI_IS_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE))
+#define DATA_IMPORTS_UI_STATIC_MESSAGE_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, DataImportsUIStaticMessagePaneClass))
+
+typedef struct _DataImportsUIStaticMessagePane DataImportsUIStaticMessagePane;
+typedef struct _DataImportsUIStaticMessagePaneClass DataImportsUIStaticMessagePaneClass;
+
+#define DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE (data_imports_ui_library_selection_pane_get_type ())
+#define DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPane))
+#define DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPaneClass))
+#define DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE))
+#define DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE))
+#define DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPaneClass))
+
+typedef struct _DataImportsUILibrarySelectionPane DataImportsUILibrarySelectionPane;
+typedef struct _DataImportsUILibrarySelectionPaneClass DataImportsUILibrarySelectionPaneClass;
+
+#define SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST (spit_data_imports_welcome_data_imports_host_get_type ())
+#define SPIT_DATA_IMPORTS_WELCOME_DATA_IMPORTS_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost))
+#define SPIT_DATA_IMPORTS_WELCOME_DATA_IMPORTS_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHostClass))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_DATA_IMPORTS_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_DATA_IMPORTS_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST))
+#define SPIT_DATA_IMPORTS_WELCOME_DATA_IMPORTS_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHostClass))
+
+typedef struct _SpitDataImportsWelcomeDataImportsHost SpitDataImportsWelcomeDataImportsHost;
+typedef struct _SpitDataImportsWelcomeDataImportsHostClass SpitDataImportsWelcomeDataImportsHostClass;
+typedef struct _SpitDataImportsWelcomeDataImportsHostPrivate SpitDataImportsWelcomeDataImportsHostPrivate;
+
+#define SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST (spit_data_imports_welcome_import_meta_host_get_type ())
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHost))
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHostClass))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST))
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHostClass))
+
+typedef struct _SpitDataImportsWelcomeImportMetaHost SpitDataImportsWelcomeImportMetaHost;
+typedef struct _SpitDataImportsWelcomeImportMetaHostClass SpitDataImportsWelcomeImportMetaHostClass;
+
+#define TYPE_WELCOME_SERVICE_ENTRY (welcome_service_entry_get_type ())
+#define WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntry))
+#define IS_WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_SERVICE_ENTRY))
+#define WELCOME_SERVICE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntryIface))
+
+typedef struct _WelcomeServiceEntry WelcomeServiceEntry;
+typedef struct _WelcomeServiceEntryIface WelcomeServiceEntryIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY (spit_data_imports_welcome_import_service_entry_get_type ())
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, SpitDataImportsWelcomeImportServiceEntry))
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_SERVICE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, SpitDataImportsWelcomeImportServiceEntryClass))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY))
+#define SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_SERVICE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY))
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_SERVICE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, SpitDataImportsWelcomeImportServiceEntryClass))
+
+typedef struct _SpitDataImportsWelcomeImportServiceEntry SpitDataImportsWelcomeImportServiceEntry;
+typedef struct _SpitDataImportsWelcomeImportServiceEntryClass SpitDataImportsWelcomeImportServiceEntryClass;
+typedef struct _SpitDataImportsWelcomeImportServiceEntryPrivate SpitDataImportsWelcomeImportServiceEntryPrivate;
+typedef struct _SpitDataImportsWelcomeImportMetaHostPrivate SpitDataImportsWelcomeImportMetaHostPrivate;
+
+#define TYPE_WELCOME_DIALOG (welcome_dialog_get_type ())
+#define WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_DIALOG, WelcomeDialog))
+#define WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WELCOME_DIALOG, WelcomeDialogClass))
+#define IS_WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_DIALOG))
+#define IS_WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WELCOME_DIALOG))
+#define WELCOME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WELCOME_DIALOG, WelcomeDialogClass))
+
+typedef struct _WelcomeDialog WelcomeDialog;
+typedef struct _WelcomeDialogClass WelcomeDialogClass;
+typedef struct _ImportManifestPrivate ImportManifestPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_BATCH_IMPORT_RESULT (batch_import_result_get_type ())
+#define BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResult))
+#define BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+#define IS_BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_RESULT))
+#define IS_BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_RESULT))
+#define BATCH_IMPORT_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+
+typedef struct _BatchImportResult BatchImportResult;
+typedef struct _BatchImportResultClass BatchImportResultClass;
+#define _import_manifest_unref0(var) ((var == NULL) ? NULL : (var = (import_manifest_unref (var), NULL)))
+#define _batch_import_result_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_result_unref (var), NULL)))
+
+#define IMPORT_UI_TYPE_QUESTION_PARAMS (import_ui_question_params_get_type ())
+#define IMPORT_UI_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParams))
+#define IMPORT_UI_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+#define IMPORT_UI_IS_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_IS_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_QUESTION_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+
+typedef struct _ImportUIQuestionParams ImportUIQuestionParams;
+typedef struct _ImportUIQuestionParamsClass ImportUIQuestionParamsClass;
+
+struct _SpitDataImportsCoreImporter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SpitDataImportsCoreImporterPrivate * priv;
+ gint imported_items_count;
+ BatchImportRoll* current_import_roll;
+};
+
+struct _SpitDataImportsCoreImporterClass {
+ GTypeClass parent_class;
+ void (*finalize) (SpitDataImportsCoreImporter *self);
+};
+
+struct _SpitDataImportsCoreImporterPrivate {
+ SpitDataImportsPluginHost* host;
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef void (*BatchImportImportReporter) (ImportManifest* manifest, BatchImportRoll* import_roll, void* user_data);
+struct _SpitDataImportsParamSpecCoreImporter {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsStandardHostInterface {
+ GObject parent_instance;
+ PluginsStandardHostInterfacePrivate * priv;
+};
+
+struct _PluginsStandardHostInterfaceClass {
+ GObjectClass parent_class;
+};
+
+struct _SpitDataImportsConcreteDataImportsHost {
+ PluginsStandardHostInterface parent_instance;
+ SpitDataImportsConcreteDataImportsHostPrivate * priv;
+};
+
+struct _SpitDataImportsConcreteDataImportsHostClass {
+ PluginsStandardHostInterfaceClass parent_class;
+};
+
+struct _SpitDataImportsConcreteDataImportsHostPrivate {
+ SpitDataImportsDataImporter* active_importer;
+ DataImportsUIDataImportsDialog* dialog;
+ DataImportsUIProgressPane* progress_pane;
+ gboolean importing_halted;
+ SpitDataImportsCoreImporter* core_importer;
+};
+
+struct _SpitDataImportsWelcomeDataImportsHost {
+ PluginsStandardHostInterface parent_instance;
+ SpitDataImportsWelcomeDataImportsHostPrivate * priv;
+};
+
+struct _SpitDataImportsWelcomeDataImportsHostClass {
+ PluginsStandardHostInterfaceClass parent_class;
+};
+
+struct _SpitDataImportsWelcomeDataImportsHostPrivate {
+ SpitDataImportsWelcomeImportMetaHost* meta_host;
+ SpitDataImportsDataImporter* active_importer;
+ gboolean importing_halted;
+ SpitDataImportsCoreImporter* core_importer;
+};
+
+struct _WelcomeServiceEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_service_name) (WelcomeServiceEntry* self);
+ void (*execute) (WelcomeServiceEntry* self);
+};
+
+struct _SpitDataImportsWelcomeImportServiceEntry {
+ GObject parent_instance;
+ SpitDataImportsWelcomeImportServiceEntryPrivate * priv;
+};
+
+struct _SpitDataImportsWelcomeImportServiceEntryClass {
+ GObjectClass parent_class;
+};
+
+struct _SpitDataImportsWelcomeImportServiceEntryPrivate {
+ gchar* pluggable_name;
+ SpitDataImportsImportableLibrary** discovered_libraries;
+ gint discovered_libraries_length1;
+ gint _discovered_libraries_size_;
+ SpitDataImportsPluginHost* host;
+};
+
+struct _SpitDataImportsWelcomeImportMetaHost {
+ GObject parent_instance;
+ SpitDataImportsWelcomeImportMetaHostPrivate * priv;
+};
+
+struct _SpitDataImportsWelcomeImportMetaHostClass {
+ GObjectClass parent_class;
+};
+
+struct _SpitDataImportsWelcomeImportMetaHostPrivate {
+ WelcomeDialog* dialog;
+};
+
+struct _ImportManifest {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ImportManifestPrivate * priv;
+ GeeList* imported;
+ GeeList* success;
+ GeeList* camera_failed;
+ GeeList* failed;
+ GeeList* write_failed;
+ GeeList* skipped_photos;
+ GeeList* skipped_files;
+ GeeList* aborted;
+ GeeList* already_imported;
+ GeeList* corrupt_files;
+ GeeList* all;
+};
+
+struct _ImportManifestClass {
+ GTypeClass parent_class;
+ void (*finalize) (ImportManifest *self);
+};
+
+
+static gpointer spit_data_imports_core_importer_parent_class = NULL;
+static gpointer spit_data_imports_concrete_data_imports_host_parent_class = NULL;
+static SpitDataImportsPluginHostIface* spit_data_imports_concrete_data_imports_host_spit_data_imports_plugin_host_parent_iface = NULL;
+static gpointer spit_data_imports_welcome_data_imports_host_parent_class = NULL;
+static SpitDataImportsPluginHostIface* spit_data_imports_welcome_data_imports_host_spit_data_imports_plugin_host_parent_iface = NULL;
+static gpointer spit_data_imports_welcome_import_service_entry_parent_class = NULL;
+static WelcomeServiceEntryIface* spit_data_imports_welcome_import_service_entry_welcome_service_entry_parent_iface = NULL;
+static gpointer spit_data_imports_welcome_import_meta_host_parent_class = NULL;
+extern ImportManifest* spit_data_imports_meta_manifest;
+ImportManifest* spit_data_imports_meta_manifest = NULL;
+
+gpointer spit_data_imports_core_importer_ref (gpointer instance);
+void spit_data_imports_core_importer_unref (gpointer instance);
+GParamSpec* spit_data_imports_param_spec_core_importer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void spit_data_imports_value_set_core_importer (GValue* value, gpointer v_object);
+void spit_data_imports_value_take_core_importer (GValue* value, gpointer v_object);
+gpointer spit_data_imports_value_get_core_importer (const GValue* value);
+GType spit_data_imports_core_importer_get_type (void) G_GNUC_CONST;
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+#define SPIT_DATA_IMPORTS_CORE_IMPORTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER, SpitDataImportsCoreImporterPrivate))
+enum {
+ SPIT_DATA_IMPORTS_CORE_IMPORTER_DUMMY_PROPERTY
+};
+SpitDataImportsCoreImporter* spit_data_imports_core_importer_new (SpitDataImportsPluginHost* host);
+SpitDataImportsCoreImporter* spit_data_imports_core_importer_construct (GType object_type, SpitDataImportsPluginHost* host);
+void spit_data_imports_core_importer_prepare_media_items_for_import (SpitDataImportsCoreImporter* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message);
+GType sorted_list_get_type (void) G_GNUC_CONST;
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_data_import_job_get_type (void) G_GNUC_CONST;
+gint64 spit_data_imports_import_job_comparator (void* a, void* b);
+static gint64 _spit_data_imports_import_job_comparator_comparator (void* a, void* b, gpointer self);
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+gpointer spit_data_imports_data_import_source_ref (gpointer instance);
+void spit_data_imports_data_import_source_unref (gpointer instance);
+GParamSpec* spit_data_imports_param_spec_data_import_source (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void spit_data_imports_value_set_data_import_source (GValue* value, gpointer v_object);
+void spit_data_imports_value_take_data_import_source (GValue* value, gpointer v_object);
+gpointer spit_data_imports_value_get_data_import_source (const GValue* value);
+GType spit_data_imports_data_import_source_get_type (void) G_GNUC_CONST;
+SpitDataImportsDataImportSource* spit_data_imports_data_import_source_new (SpitDataImportsImportableMediaItem* db_photo);
+SpitDataImportsDataImportSource* spit_data_imports_data_import_source_construct (GType object_type, SpitDataImportsImportableMediaItem* db_photo);
+gboolean spit_data_imports_data_import_source_was_backing_file_found (SpitDataImportsDataImportSource* self);
+gchar* spit_data_imports_data_import_source_get_filename (SpitDataImportsDataImportSource* self);
+SpitDataImportsDataImportJob* spit_data_imports_data_import_job_new (SpitDataImportsDataImportSource* import_source);
+SpitDataImportsDataImportJob* spit_data_imports_data_import_job_construct (GType object_type, SpitDataImportsDataImportSource* import_source);
+gboolean spit_data_imports_data_import_source_is_already_imported (SpitDataImportsDataImportSource* self);
+BatchImportRoll* batch_import_roll_new (void);
+BatchImportRoll* batch_import_roll_construct (GType object_type);
+GType batch_import_get_type (void) G_GNUC_CONST;
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+void spit_data_imports_data_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll);
+static void _spit_data_imports_data_import_reporter_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
+BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_enqueue_batch_import (LibraryWindow* self, BatchImport* batch_import, gboolean allow_user_cancel);
+void spit_data_imports_core_importer_finalize_import (SpitDataImportsCoreImporter* self);
+static void spit_data_imports_core_importer_finalize (SpitDataImportsCoreImporter* obj);
+GType plugins_standard_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_concrete_data_imports_host_get_type (void) G_GNUC_CONST;
+GType data_imports_ui_data_imports_dialog_get_type (void) G_GNUC_CONST;
+GType data_imports_ui_concrete_dialog_pane_get_type (void) G_GNUC_CONST;
+GType data_imports_ui_progress_pane_get_type (void) G_GNUC_CONST;
+#define SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHostPrivate))
+enum {
+ SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST_DUMMY_PROPERTY
+};
+SpitDataImportsConcreteDataImportsHost* spit_data_imports_concrete_data_imports_host_new (SpitDataImportsService* service, DataImportsUIDataImportsDialog* dialog);
+SpitDataImportsConcreteDataImportsHost* spit_data_imports_concrete_data_imports_host_construct (GType object_type, SpitDataImportsService* service, DataImportsUIDataImportsDialog* dialog);
+PluginsStandardHostInterface* plugins_standard_host_interface_new (SpitPluggable* pluggable, const gchar* config_domain);
+PluginsStandardHostInterface* plugins_standard_host_interface_construct (GType object_type, SpitPluggable* pluggable, const gchar* config_domain);
+static SpitDataImportsDataImporter* spit_data_imports_concrete_data_imports_host_real_get_data_importer (SpitDataImportsPluginHost* base);
+static void spit_data_imports_concrete_data_imports_host_real_start_importing (SpitDataImportsPluginHost* base);
+static void spit_data_imports_concrete_data_imports_host_real_stop_importing (SpitDataImportsPluginHost* base);
+static void spit_data_imports_concrete_data_imports_host_clean_up (SpitDataImportsConcreteDataImportsHost* self);
+void spit_data_imports_concrete_data_imports_host_set_button_mode (SpitDataImportsConcreteDataImportsHost* self, SpitDataImportsPluginHostButtonMode mode);
+void data_imports_ui_data_imports_dialog_set_close_button_mode (DataImportsUIDataImportsDialog* self);
+void data_imports_ui_data_imports_dialog_set_cancel_button_mode (DataImportsUIDataImportsDialog* self);
+static void spit_data_imports_concrete_data_imports_host_real_post_error (SpitDataImportsPluginHost* base, GError* err);
+static void spit_data_imports_concrete_data_imports_host_real_post_error_message (SpitDataImportsPluginHost* base, const gchar* message);
+void data_imports_ui_data_imports_dialog_install_pane (DataImportsUIDataImportsDialog* self, SpitDataImportsDialogPane* pane);
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_new_with_pango (const gchar* msg);
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_construct_with_pango (GType object_type, const gchar* msg);
+GType data_imports_ui_static_message_pane_get_type (void) G_GNUC_CONST;
+void data_imports_ui_data_imports_dialog_unlock_service (DataImportsUIDataImportsDialog* self);
+static void spit_data_imports_concrete_data_imports_host_real_install_dialog_pane (SpitDataImportsPluginHost* base, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode button_mode);
+static void spit_data_imports_concrete_data_imports_host_real_install_static_message_pane (SpitDataImportsPluginHost* base, const gchar* message, SpitDataImportsPluginHostButtonMode button_mode);
+static void spit_data_imports_concrete_data_imports_host_real_install_library_selection_pane (SpitDataImportsPluginHost* base, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+DataImportsUILibrarySelectionPane* data_imports_ui_library_selection_pane_new (SpitDataImportsPluginHost* host, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+DataImportsUILibrarySelectionPane* data_imports_ui_library_selection_pane_construct (GType object_type, SpitDataImportsPluginHost* host, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+GType data_imports_ui_library_selection_pane_get_type (void) G_GNUC_CONST;
+static void spit_data_imports_concrete_data_imports_host_real_install_import_progress_pane (SpitDataImportsPluginHost* base, const gchar* message);
+DataImportsUIProgressPane* data_imports_ui_progress_pane_new (const gchar* message);
+DataImportsUIProgressPane* data_imports_ui_progress_pane_construct (GType object_type, const gchar* message);
+static void spit_data_imports_concrete_data_imports_host_real_update_import_progress_pane (SpitDataImportsPluginHost* base, gdouble progress, const gchar* progress_message);
+void data_imports_ui_progress_pane_update_progress (DataImportsUIProgressPane* self, gdouble progress, const gchar* progress_message);
+static void spit_data_imports_concrete_data_imports_host_real_prepare_media_items_for_import (SpitDataImportsPluginHost* base, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message);
+static void spit_data_imports_concrete_data_imports_host_real_finalize_import (SpitDataImportsPluginHost* base, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message);
+void library_window_switch_to_import_queue_page (LibraryWindow* self);
+static void spit_data_imports_concrete_data_imports_host_finalize (GObject* obj);
+GType spit_data_imports_welcome_data_imports_host_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_welcome_import_meta_host_get_type (void) G_GNUC_CONST;
+#define SPIT_DATA_IMPORTS_WELCOME_DATA_IMPORTS_HOST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHostPrivate))
+enum {
+ SPIT_DATA_IMPORTS_WELCOME_DATA_IMPORTS_HOST_DUMMY_PROPERTY
+};
+SpitDataImportsWelcomeDataImportsHost* spit_data_imports_welcome_data_imports_host_new (SpitDataImportsService* service, SpitDataImportsWelcomeImportMetaHost* meta_host);
+SpitDataImportsWelcomeDataImportsHost* spit_data_imports_welcome_data_imports_host_construct (GType object_type, SpitDataImportsService* service, SpitDataImportsWelcomeImportMetaHost* meta_host);
+static SpitDataImportsDataImporter* spit_data_imports_welcome_data_imports_host_real_get_data_importer (SpitDataImportsPluginHost* base);
+static void spit_data_imports_welcome_data_imports_host_real_start_importing (SpitDataImportsPluginHost* base);
+static void spit_data_imports_welcome_data_imports_host_real_stop_importing (SpitDataImportsPluginHost* base);
+static void spit_data_imports_welcome_data_imports_host_clean_up (SpitDataImportsWelcomeDataImportsHost* self);
+static void spit_data_imports_welcome_data_imports_host_real_post_error (SpitDataImportsPluginHost* base, GError* err);
+static void spit_data_imports_welcome_data_imports_host_real_post_error_message (SpitDataImportsPluginHost* base, const gchar* message);
+static void spit_data_imports_welcome_data_imports_host_real_install_dialog_pane (SpitDataImportsPluginHost* base, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode button_mode);
+static void spit_data_imports_welcome_data_imports_host_real_install_static_message_pane (SpitDataImportsPluginHost* base, const gchar* message, SpitDataImportsPluginHostButtonMode button_mode);
+static void spit_data_imports_welcome_data_imports_host_real_install_library_selection_pane (SpitDataImportsPluginHost* base, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+GType welcome_service_entry_get_type (void) G_GNUC_CONST;
+void spit_data_imports_welcome_import_meta_host_install_service_entry (SpitDataImportsWelcomeImportMetaHost* self, WelcomeServiceEntry* entry);
+SpitDataImportsWelcomeImportServiceEntry* spit_data_imports_welcome_import_service_entry_new (SpitDataImportsPluginHost* host, const gchar* pluggable_name, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1);
+SpitDataImportsWelcomeImportServiceEntry* spit_data_imports_welcome_import_service_entry_construct (GType object_type, SpitDataImportsPluginHost* host, const gchar* pluggable_name, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1);
+GType spit_data_imports_welcome_import_service_entry_get_type (void) G_GNUC_CONST;
+static void spit_data_imports_welcome_data_imports_host_real_install_import_progress_pane (SpitDataImportsPluginHost* base, const gchar* message);
+static void spit_data_imports_welcome_data_imports_host_real_update_import_progress_pane (SpitDataImportsPluginHost* base, gdouble progress, const gchar* progress_message);
+static void spit_data_imports_welcome_data_imports_host_real_prepare_media_items_for_import (SpitDataImportsPluginHost* base, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message);
+static void spit_data_imports_welcome_data_imports_host_real_finalize_import (SpitDataImportsPluginHost* base, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message);
+void spit_data_imports_welcome_import_meta_host_finalize_import (SpitDataImportsWelcomeImportMetaHost* self, SpitDataImportsWelcomeDataImportsHost* host);
+static void spit_data_imports_welcome_data_imports_host_finalize (GObject* obj);
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_SERVICE_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, SpitDataImportsWelcomeImportServiceEntryPrivate))
+enum {
+ SPIT_DATA_IMPORTS_WELCOME_IMPORT_SERVICE_ENTRY_DUMMY_PROPERTY
+};
+static SpitDataImportsImportableLibrary** _vala_array_dup25 (SpitDataImportsImportableLibrary** self, int length);
+static gchar* spit_data_imports_welcome_import_service_entry_real_get_service_name (WelcomeServiceEntry* base);
+static void spit_data_imports_welcome_import_service_entry_real_execute (WelcomeServiceEntry* base);
+static void spit_data_imports_welcome_import_service_entry_finalize (GObject* obj);
+GType welcome_dialog_get_type (void) G_GNUC_CONST;
+#define SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHostPrivate))
+enum {
+ SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST_DUMMY_PROPERTY
+};
+SpitDataImportsWelcomeImportMetaHost* spit_data_imports_welcome_import_meta_host_new (WelcomeDialog* dialog);
+SpitDataImportsWelcomeImportMetaHost* spit_data_imports_welcome_import_meta_host_construct (GType object_type, WelcomeDialog* dialog);
+void spit_data_imports_welcome_import_meta_host_start (SpitDataImportsWelcomeImportMetaHost* self);
+SpitDataImportsService** spit_data_imports_load_all_services (int* result_length1);
+gchar* welcome_service_entry_get_service_name (WelcomeServiceEntry* self);
+void welcome_dialog_install_service_entry (WelcomeDialog* self, WelcomeServiceEntry* entry);
+static void spit_data_imports_welcome_import_meta_host_finalize (GObject* obj);
+SpitDataImportsService** spit_data_imports_load_services (gboolean load_all, int* result_length1);
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled);
+gchar* plugins_get_pluggable_module_id (SpitPluggable* needle);
+static void _vala_array_add151 (SpitDataImportsService*** array, int* length, int* size, SpitDataImportsService* value);
+static gint __lambda21_ (void* a, void* b);
+gint utf8_cs_compare (void* a, void* b);
+static gint ___lambda21____compar_fn_t (void* key1, void* key2);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gpointer batch_import_result_ref (gpointer instance);
+void batch_import_result_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_result (GValue* value, gpointer v_object);
+void value_take_batch_import_result (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_result (const GValue* value);
+GType batch_import_result_get_type (void) G_GNUC_CONST;
+ImportManifest* import_manifest_new (GeeList* prefailed, GeeList* pre_already_imported);
+ImportManifest* import_manifest_construct (GType object_type, GeeList* prefailed, GeeList* pre_already_imported);
+void import_manifest_add_result (ImportManifest* self, BatchImportResult* batch_result);
+void data_imports_ui_data_imports_dialog_terminate_instance (void);
+gpointer import_ui_question_params_ref (gpointer instance);
+void import_ui_question_params_unref (gpointer instance);
+GParamSpec* import_ui_param_spec_question_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void import_ui_value_set_question_params (GValue* value, gpointer v_object);
+void import_ui_value_take_question_params (GValue* value, gpointer v_object);
+gpointer import_ui_value_get_question_params (const GValue* value);
+GType import_ui_question_params_get_type (void) G_GNUC_CONST;
+gboolean import_ui_report_manifest (ImportManifest* manifest, gboolean show_dest_id, ImportUIQuestionParams* question);
+time_t spit_data_imports_data_import_job_get_exposure_time (SpitDataImportsDataImportJob* self);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+SpitDataImportsCoreImporter* spit_data_imports_core_importer_construct (GType object_type, SpitDataImportsPluginHost* host) {
+ SpitDataImportsCoreImporter* self = NULL;
+ SpitDataImportsPluginHost* _tmp0_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (host), NULL);
+#line 14 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = (SpitDataImportsCoreImporter*) g_type_create_instance (object_type);
+#line 15 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = host;
+#line 15 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->host = _tmp0_;
+#line 14 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return self;
+#line 672 "DataImportsPluginHost.c"
+}
+
+
+SpitDataImportsCoreImporter* spit_data_imports_core_importer_new (SpitDataImportsPluginHost* host) {
+#line 14 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return spit_data_imports_core_importer_construct (SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER, host);
+#line 679 "DataImportsPluginHost.c"
+}
+
+
+static gint64 _spit_data_imports_import_job_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = spit_data_imports_import_job_comparator (a, b);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 688 "DataImportsPluginHost.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 695 "DataImportsPluginHost.c"
+}
+
+
+static void _spit_data_imports_data_import_reporter_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_import_reporter (manifest, import_roll);
+#line 702 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_core_importer_prepare_media_items_for_import (SpitDataImportsCoreImporter* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message) {
+ SpitDataImportsPluginHost* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ const gchar* _tmp2_ = NULL;
+ SortedList* jobs = NULL;
+ SortedList* _tmp3_ = NULL;
+ GeeArrayList* already_imported = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* failed = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ gint item_idx = 0;
+ gdouble item_progress_delta = 0.0;
+ gdouble _tmp6_ = 0.0;
+ SpitDataImportsImportableMediaItem** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ SpitDataImportsImportableMediaItem** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ SortedList* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ SpitDataImportsPluginHost* _tmp66_ = NULL;
+ gdouble _tmp67_ = 0.0;
+ gdouble _tmp68_ = 0.0;
+#line 18 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_CORE_IMPORTER (self));
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->host;
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = progress;
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = progress_message;
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_update_import_progress_pane (_tmp0_, _tmp1_, _tmp2_);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = sorted_list_new (SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, _spit_data_imports_import_job_comparator_comparator, NULL);
+#line 26 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ jobs = _tmp3_;
+#line 28 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = gee_array_list_new (SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL);
+#line 28 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ already_imported = _tmp4_;
+#line 30 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = gee_array_list_new (SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL);
+#line 30 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ failed = _tmp5_;
+#line 33 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ item_idx = 0;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = host_progress_delta;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = items;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7__length1 = items_length1;
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ item_progress_delta = _tmp6_ / _tmp7__length1;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = items;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8__length1 = items_length1;
+#line 765 "DataImportsPluginHost.c"
+ {
+ SpitDataImportsImportableMediaItem** src_item_collection = NULL;
+ gint src_item_collection_length1 = 0;
+ gint _src_item_collection_size_ = 0;
+ gint src_item_it = 0;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ src_item_collection = _tmp8_;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ src_item_collection_length1 = _tmp8__length1;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ for (src_item_it = 0; src_item_it < _tmp8__length1; src_item_it = src_item_it + 1) {
+#line 777 "DataImportsPluginHost.c"
+ SpitDataImportsImportableMediaItem* _tmp9_ = NULL;
+ SpitDataImportsImportableMediaItem* src_item = NULL;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp9_ = _g_object_ref0 (src_item_collection[src_item_it]);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ src_item = _tmp9_;
+#line 784 "DataImportsPluginHost.c"
+ {
+ SpitDataImportsDataImportSource* import_source = NULL;
+ SpitDataImportsImportableMediaItem* _tmp10_ = NULL;
+ SpitDataImportsDataImportSource* _tmp11_ = NULL;
+ SpitDataImportsDataImportSource* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ SpitDataImportsDataImportSource* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ SortedList* _tmp30_ = NULL;
+ SpitDataImportsDataImportSource* _tmp31_ = NULL;
+ SpitDataImportsDataImportJob* _tmp32_ = NULL;
+ SpitDataImportsDataImportJob* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ SpitDataImportsPluginHost* _tmp35_ = NULL;
+ gdouble _tmp36_ = 0.0;
+ gint _tmp37_ = 0;
+ gdouble _tmp38_ = 0.0;
+#line 36 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp10_ = src_item;
+#line 36 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp11_ = spit_data_imports_data_import_source_new (_tmp10_);
+#line 36 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ import_source = _tmp11_;
+#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp12_ = import_source;
+#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp13_ = spit_data_imports_data_import_source_was_backing_file_found (_tmp12_);
+#line 38 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (!_tmp13_) {
+#line 814 "DataImportsPluginHost.c"
+ SpitDataImportsDataImportSource* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GeeArrayList* _tmp17_ = NULL;
+ SpitDataImportsDataImportSource* _tmp18_ = NULL;
+ SpitDataImportsDataImportJob* _tmp19_ = NULL;
+ SpitDataImportsDataImportJob* _tmp20_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp14_ = import_source;
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp15_ = spit_data_imports_data_import_source_get_filename (_tmp14_);
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp16_ = _tmp15_;
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_message ("DataImportsPluginHost.vala:39: Skipping import of %s: backing file not" \
+" found", _tmp16_);
+#line 39 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (_tmp16_);
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp17_ = failed;
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp18_ = import_source;
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp19_ = spit_data_imports_data_import_job_new (_tmp18_);
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp20_ = _tmp19_;
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp20_);
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_job_unref0 (_tmp20_);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _spit_data_imports_data_import_source_unref0 (import_source);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (src_item);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ continue;
+#line 850 "DataImportsPluginHost.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp21_ = import_source;
+#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp22_ = spit_data_imports_data_import_source_is_already_imported (_tmp21_);
+#line 46 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp22_) {
+#line 858 "DataImportsPluginHost.c"
+ SpitDataImportsDataImportSource* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ SpitDataImportsDataImportSource* _tmp27_ = NULL;
+ SpitDataImportsDataImportJob* _tmp28_ = NULL;
+ SpitDataImportsDataImportJob* _tmp29_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp23_ = import_source;
+#line 47 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp24_ = spit_data_imports_data_import_source_get_filename (_tmp23_);
+#line 47 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp25_ = _tmp24_;
+#line 47 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_message ("DataImportsPluginHost.vala:47: Skipping import of %s: checksum detecte" \
+"d in library", _tmp25_);
+#line 47 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (_tmp25_);
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp26_ = already_imported;
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp27_ = import_source;
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp28_ = spit_data_imports_data_import_job_new (_tmp27_);
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp29_ = _tmp28_;
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp29_);
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_job_unref0 (_tmp29_);
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _spit_data_imports_data_import_source_unref0 (import_source);
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (src_item);
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ continue;
+#line 894 "DataImportsPluginHost.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp30_ = jobs;
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp31_ = import_source;
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp32_ = spit_data_imports_data_import_job_new (_tmp31_);
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp33_ = _tmp32_;
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection), _tmp33_);
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_job_unref0 (_tmp33_);
+#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp34_ = item_idx;
+#line 55 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ item_idx = _tmp34_ + 1;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp35_ = self->priv->host;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp36_ = progress;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp37_ = item_idx;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp38_ = item_progress_delta;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_update_import_progress_pane (_tmp35_, _tmp36_ + (_tmp37_ * _tmp38_), NULL);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _spit_data_imports_data_import_source_unref0 (import_source);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (src_item);
+#line 926 "DataImportsPluginHost.c"
+ }
+ }
+ }
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp39_ = jobs;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp40_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp41_ = _tmp40_;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp41_ > 0) {
+#line 938 "DataImportsPluginHost.c"
+ BatchImportRoll* _tmp42_ = NULL;
+ gchar* db_name = NULL;
+ const gchar* _tmp44_ = NULL;
+ SpitDataImportsPluginHost* _tmp45_ = NULL;
+ SpitDataImportsDataImporter* _tmp46_ = NULL;
+ SpitDataImportsDataImporter* _tmp47_ = NULL;
+ SpitDataImportsService* _tmp48_ = NULL;
+ SpitDataImportsService* _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ BatchImport* batch_import = NULL;
+ SortedList* _tmp53_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ GeeArrayList* _tmp55_ = NULL;
+ GeeArrayList* _tmp56_ = NULL;
+ BatchImportRoll* _tmp57_ = NULL;
+ BatchImport* _tmp58_ = NULL;
+ LibraryWindow* _tmp59_ = NULL;
+ LibraryWindow* _tmp60_ = NULL;
+ BatchImport* _tmp61_ = NULL;
+ gint _tmp62_ = 0;
+ SortedList* _tmp63_ = NULL;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp42_ = self->current_import_roll;
+#line 63 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp42_ == NULL) {
+#line 968 "DataImportsPluginHost.c"
+ BatchImportRoll* _tmp43_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp43_ = batch_import_roll_new ();
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_roll_unref0 (self->current_import_roll);
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->current_import_roll = _tmp43_;
+#line 976 "DataImportsPluginHost.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp44_ = _ ("%s Database");
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp45_ = self->priv->host;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp46_ = spit_data_imports_plugin_host_get_data_importer (_tmp45_);
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp47_ = _tmp46_;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp48_ = spit_data_imports_data_importer_get_service (_tmp47_);
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp49_ = _tmp48_;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp50_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp51_ = g_strdup_printf (_tmp44_, _tmp50_);
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp52_ = _tmp51_;
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp49_);
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp47_);
+#line 65 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ db_name = _tmp52_;
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp53_ = jobs;
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp54_ = db_name;
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp55_ = failed;
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp56_ = already_imported;
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp57_ = self->current_import_roll;
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp58_ = batch_import_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, GEE_TYPE_ITERABLE, GeeIterable), _tmp54_, _spit_data_imports_data_import_reporter_batch_import_import_reporter, NULL, _tmp55_, _tmp56_, NULL, _tmp57_, NULL);
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ batch_import = _tmp58_;
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp59_ = library_window_get_app ();
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp60_ = _tmp59_;
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp61_ = batch_import;
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ library_window_enqueue_batch_import (_tmp60_, _tmp61_, TRUE);
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp60_);
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp62_ = self->imported_items_count;
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp63_ = jobs;
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp64_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp65_ = _tmp64_;
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->imported_items_count = _tmp62_ + _tmp65_;
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (batch_import);
+#line 59 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (db_name);
+#line 1040 "DataImportsPluginHost.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp66_ = self->priv->host;
+#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp67_ = progress;
+#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp68_ = host_progress_delta;
+#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_update_import_progress_pane (_tmp66_, _tmp67_ + _tmp68_, NULL);
+#line 18 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (failed);
+#line 18 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (already_imported);
+#line 18 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (jobs);
+#line 1056 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_core_importer_finalize_import (SpitDataImportsCoreImporter* self) {
+ gchar* db_name = NULL;
+ const gchar* _tmp0_ = NULL;
+ SpitDataImportsPluginHost* _tmp1_ = NULL;
+ SpitDataImportsDataImporter* _tmp2_ = NULL;
+ SpitDataImportsDataImporter* _tmp3_ = NULL;
+ SpitDataImportsService* _tmp4_ = NULL;
+ SpitDataImportsService* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ BatchImport* batch_import = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ BatchImportRoll* _tmp11_ = NULL;
+ BatchImport* _tmp12_ = NULL;
+ BatchImport* _tmp13_ = NULL;
+ LibraryWindow* _tmp14_ = NULL;
+ LibraryWindow* _tmp15_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_CORE_IMPORTER (self));
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = _ ("%s Database");
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = self->priv->host;
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_plugin_host_get_data_importer (_tmp1_);
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_data_importer_get_service (_tmp3_);
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = _tmp4_;
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = g_strdup_printf (_tmp0_, _tmp6_);
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = _tmp7_;
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp5_);
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp3_);
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ db_name = _tmp8_;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp9_ = gee_array_list_new (TYPE_BATCH_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp10_ = _tmp9_;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp11_ = self->current_import_roll;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp12_ = batch_import_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable), db_name, _spit_data_imports_data_import_reporter_batch_import_import_reporter, NULL, NULL, NULL, NULL, _tmp11_, NULL);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp13_ = _tmp12_;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp10_);
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ batch_import = _tmp13_;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp14_ = library_window_get_app ();
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp15_ = _tmp14_;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ library_window_enqueue_batch_import (_tmp15_, batch_import, TRUE);
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp15_);
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_roll_unref0 (self->current_import_roll);
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->current_import_roll = NULL;
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (batch_import);
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (db_name);
+#line 1135 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_value_core_importer_init (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ value->data[0].v_pointer = NULL;
+#line 1142 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_value_core_importer_free_value (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_unref (value->data[0].v_pointer);
+#line 1151 "DataImportsPluginHost.c"
+ }
+}
+
+
+static void spit_data_imports_value_core_importer_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (src_value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ dest_value->data[0].v_pointer = spit_data_imports_core_importer_ref (src_value->data[0].v_pointer);
+#line 1161 "DataImportsPluginHost.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1165 "DataImportsPluginHost.c"
+ }
+}
+
+
+static gpointer spit_data_imports_value_core_importer_peek_pointer (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return value->data[0].v_pointer;
+#line 1173 "DataImportsPluginHost.c"
+}
+
+
+static gchar* spit_data_imports_value_core_importer_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (collect_values[0].v_pointer) {
+#line 1180 "DataImportsPluginHost.c"
+ SpitDataImportsCoreImporter* object;
+ object = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1187 "DataImportsPluginHost.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1191 "DataImportsPluginHost.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ value->data[0].v_pointer = spit_data_imports_core_importer_ref (object);
+#line 1195 "DataImportsPluginHost.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ value->data[0].v_pointer = NULL;
+#line 1199 "DataImportsPluginHost.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return NULL;
+#line 1203 "DataImportsPluginHost.c"
+}
+
+
+static gchar* spit_data_imports_value_core_importer_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SpitDataImportsCoreImporter** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (!object_p) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1214 "DataImportsPluginHost.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (!value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ *object_p = NULL;
+#line 1220 "DataImportsPluginHost.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1224 "DataImportsPluginHost.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ *object_p = spit_data_imports_core_importer_ref (value->data[0].v_pointer);
+#line 1228 "DataImportsPluginHost.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return NULL;
+#line 1232 "DataImportsPluginHost.c"
+}
+
+
+GParamSpec* spit_data_imports_param_spec_core_importer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ SpitDataImportsParamSpecCoreImporter* spec;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER), NULL);
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return G_PARAM_SPEC (spec);
+#line 1246 "DataImportsPluginHost.c"
+}
+
+
+gpointer spit_data_imports_value_get_core_importer (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER), NULL);
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return value->data[0].v_pointer;
+#line 1255 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_value_set_core_importer (GValue* value, gpointer v_object) {
+ SpitDataImportsCoreImporter* old;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER));
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER));
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ value->data[0].v_pointer = v_object;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_ref (value->data[0].v_pointer);
+#line 1275 "DataImportsPluginHost.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ value->data[0].v_pointer = NULL;
+#line 1279 "DataImportsPluginHost.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_unref (old);
+#line 1285 "DataImportsPluginHost.c"
+ }
+}
+
+
+void spit_data_imports_value_take_core_importer (GValue* value, gpointer v_object) {
+ SpitDataImportsCoreImporter* old;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER));
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER));
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ value->data[0].v_pointer = v_object;
+#line 1304 "DataImportsPluginHost.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ value->data[0].v_pointer = NULL;
+#line 1308 "DataImportsPluginHost.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_unref (old);
+#line 1314 "DataImportsPluginHost.c"
+ }
+}
+
+
+static void spit_data_imports_core_importer_class_init (SpitDataImportsCoreImporterClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ ((SpitDataImportsCoreImporterClass *) klass)->finalize = spit_data_imports_core_importer_finalize;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_type_class_add_private (klass, sizeof (SpitDataImportsCoreImporterPrivate));
+#line 1326 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_core_importer_instance_init (SpitDataImportsCoreImporter * self) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv = SPIT_DATA_IMPORTS_CORE_IMPORTER_GET_PRIVATE (self);
+#line 11 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->imported_items_count = 0;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->current_import_roll = NULL;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->ref_count = 1;
+#line 1339 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_core_importer_finalize (SpitDataImportsCoreImporter* obj) {
+ SpitDataImportsCoreImporter * self;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_CORE_IMPORTER, SpitDataImportsCoreImporter);
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_signal_handlers_destroy (self);
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_roll_unref0 (self->current_import_roll);
+#line 1351 "DataImportsPluginHost.c"
+}
+
+
+GType spit_data_imports_core_importer_get_type (void) {
+ static volatile gsize spit_data_imports_core_importer_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_core_importer_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { spit_data_imports_value_core_importer_init, spit_data_imports_value_core_importer_free_value, spit_data_imports_value_core_importer_copy_value, spit_data_imports_value_core_importer_peek_pointer, "p", spit_data_imports_value_core_importer_collect_value, "p", spit_data_imports_value_core_importer_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsCoreImporterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_core_importer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsCoreImporter), 0, (GInstanceInitFunc) spit_data_imports_core_importer_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType spit_data_imports_core_importer_type_id;
+ spit_data_imports_core_importer_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SpitDataImportsCoreImporter", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&spit_data_imports_core_importer_type_id__volatile, spit_data_imports_core_importer_type_id);
+ }
+ return spit_data_imports_core_importer_type_id__volatile;
+}
+
+
+gpointer spit_data_imports_core_importer_ref (gpointer instance) {
+ SpitDataImportsCoreImporter* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return instance;
+#line 1376 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_core_importer_unref (gpointer instance) {
+ SpitDataImportsCoreImporter* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ SPIT_DATA_IMPORTS_CORE_IMPORTER_GET_CLASS (self)->finalize (self);
+#line 9 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1389 "DataImportsPluginHost.c"
+ }
+}
+
+
+SpitDataImportsConcreteDataImportsHost* spit_data_imports_concrete_data_imports_host_construct (GType object_type, SpitDataImportsService* service, DataImportsUIDataImportsDialog* dialog) {
+ SpitDataImportsConcreteDataImportsHost * self = NULL;
+ SpitDataImportsService* _tmp0_ = NULL;
+ DataImportsUIDataImportsDialog* _tmp1_ = NULL;
+ SpitDataImportsService* _tmp2_ = NULL;
+ SpitDataImportsDataImporter* _tmp3_ = NULL;
+ SpitDataImportsCoreImporter* _tmp4_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (service), NULL);
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (dialog), NULL);
+#line 97 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = service;
+#line 97 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = (SpitDataImportsConcreteDataImportsHost*) plugins_standard_host_interface_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_TYPE_PLUGGABLE, SpitPluggable), "data_imports");
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = dialog;
+#line 98 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->dialog = _tmp1_;
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = service;
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = spit_data_imports_service_create_data_importer (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->active_importer);
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->active_importer = _tmp3_;
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_core_importer_new (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _spit_data_imports_core_importer_unref0 (self->priv->core_importer);
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->core_importer = _tmp4_;
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return self;
+#line 1429 "DataImportsPluginHost.c"
+}
+
+
+SpitDataImportsConcreteDataImportsHost* spit_data_imports_concrete_data_imports_host_new (SpitDataImportsService* service, DataImportsUIDataImportsDialog* dialog) {
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return spit_data_imports_concrete_data_imports_host_construct (SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, service, dialog);
+#line 1436 "DataImportsPluginHost.c"
+}
+
+
+static SpitDataImportsDataImporter* spit_data_imports_concrete_data_imports_host_real_get_data_importer (SpitDataImportsPluginHost* base) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ SpitDataImportsDataImporter* result = NULL;
+ SpitDataImportsDataImporter* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 105 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->active_importer;
+#line 105 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 105 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = _tmp1_;
+#line 105 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 1455 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_start_importing (SpitDataImportsPluginHost* base) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ SpitDataImportsDataImporter* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ SpitDataImportsDataImporter* _tmp4_ = NULL;
+ SpitDataImportsDataImporter* _tmp5_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_;
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_data_importer_is_running (_tmp1_);
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp1_);
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp3_) {
+#line 110 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return;
+#line 1483 "DataImportsPluginHost.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:112: ConcreteDataImportsHost.start_importin" \
+"g( ): invoked.");
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = _tmp4_;
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_importer_start (_tmp5_);
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1495 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_stop_importing (SpitDataImportsPluginHost* base) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ SpitDataImportsDataImporter* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 117 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 118 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:118: ConcreteDataImportsHost.stop_importing" \
+"( ): invoked.");
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_;
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_data_importer_is_running (_tmp1_);
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp1_);
+#line 120 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp3_) {
+#line 1521 "DataImportsPluginHost.c"
+ SpitDataImportsDataImporter* _tmp4_ = NULL;
+ SpitDataImportsDataImporter* _tmp5_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = _tmp4_;
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_importer_stop (_tmp5_);
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1532 "DataImportsPluginHost.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_clean_up (self);
+#line 125 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->importing_halted = TRUE;
+#line 1538 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_clean_up (SpitDataImportsConcreteDataImportsHost* self) {
+#line 128 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_CONCRETE_DATA_IMPORTS_HOST (self));
+#line 129 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->progress_pane);
+#line 129 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->progress_pane = NULL;
+#line 1549 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_concrete_data_imports_host_set_button_mode (SpitDataImportsConcreteDataImportsHost* self, SpitDataImportsPluginHostButtonMode mode) {
+ SpitDataImportsPluginHostButtonMode _tmp0_ = 0;
+#line 132 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_CONCRETE_DATA_IMPORTS_HOST (self));
+#line 133 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = mode;
+#line 133 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp0_ == SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE) {
+#line 1561 "DataImportsPluginHost.c"
+ DataImportsUIDataImportsDialog* _tmp1_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 134 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_set_close_button_mode (_tmp1_);
+#line 1567 "DataImportsPluginHost.c"
+ } else {
+ SpitDataImportsPluginHostButtonMode _tmp2_ = 0;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = mode;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp2_ == SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL) {
+#line 1574 "DataImportsPluginHost.c"
+ DataImportsUIDataImportsDialog* _tmp3_ = NULL;
+#line 136 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = self->priv->dialog;
+#line 136 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_set_cancel_button_mode (_tmp3_);
+#line 1580 "DataImportsPluginHost.c"
+ } else {
+#line 138 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_error ("DataImportsPluginHost.vala:138: unrecognized button mode enumeration v" \
+"alue");
+#line 1584 "DataImportsPluginHost.c"
+ }
+ }
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_post_error (SpitDataImportsPluginHost* base, GError* err) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ GError* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = err;
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_->message;
+#line 144 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_post_error_message (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost), _tmp1_);
+#line 1602 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_post_error_message (SpitDataImportsPluginHost* base, const gchar* message) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ gchar* msg = NULL;
+ const gchar* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ SpitDataImportsService* _tmp2_ = NULL;
+ SpitDataImportsService* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ DataImportsUIDataImportsDialog* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ DataImportsUIStaticMessagePane* _tmp17_ = NULL;
+ DataImportsUIStaticMessagePane* _tmp18_ = NULL;
+ DataImportsUIDataImportsDialog* _tmp19_ = NULL;
+ DataImportsUIDataImportsDialog* _tmp20_ = NULL;
+ SpitDataImportsDataImporter* _tmp21_ = NULL;
+ SpitDataImportsDataImporter* _tmp22_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 147 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (message != NULL);
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = _ ("Importing from %s can't continue because an error occurred:");
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = self->priv->active_importer;
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_data_importer_get_service (_tmp1_);
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = g_strdup_printf (_tmp0_, _tmp4_);
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = _tmp5_;
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp3_);
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ msg = _tmp6_;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = msg;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = message;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp9_ = g_markup_printf_escaped ("\n\n<i>%s</i>\n\n", _tmp8_);
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp10_ = _tmp9_;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp11_ = g_strconcat (_tmp7_, _tmp10_, NULL);
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (msg);
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ msg = _tmp11_;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (_tmp10_);
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp12_ = msg;
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp13_ = _ ("To try importing from another service, select one from the above menu.");
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp14_ = g_strconcat (_tmp12_, _tmp13_, NULL);
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (msg);
+#line 151 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ msg = _tmp14_;
+#line 153 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp15_ = self->priv->dialog;
+#line 153 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp16_ = msg;
+#line 153 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp17_ = data_imports_ui_static_message_pane_new_with_pango (_tmp16_);
+#line 153 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp18_ = _tmp17_;
+#line 153 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_install_pane (_tmp15_, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 153 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp18_);
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp19_ = self->priv->dialog;
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_set_close_button_mode (_tmp19_);
+#line 155 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp20_ = self->priv->dialog;
+#line 155 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_unlock_service (_tmp20_);
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp21_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp22_ = _tmp21_;
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_importer_stop (_tmp22_);
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp22_);
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_clean_up (self);
+#line 147 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (msg);
+#line 1712 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_install_dialog_pane (SpitDataImportsPluginHost* base, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode button_mode) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ gboolean _tmp0_ = FALSE;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ SpitDataImportsDataImporter* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataImportsUIDataImportsDialog* _tmp7_ = NULL;
+ SpitDataImportsDialogPane* _tmp8_ = NULL;
+ SpitDataImportsPluginHostButtonMode _tmp9_ = 0;
+#line 165 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 165 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (pane));
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:167: DataImports.PluginHost: install_dialog" \
+"_pane( ): invoked.");
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = _tmp1_;
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_ == NULL;
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp2_);
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp3_) {
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = TRUE;
+#line 1743 "DataImportsPluginHost.c"
+ } else {
+ SpitDataImportsDataImporter* _tmp4_ = NULL;
+ SpitDataImportsDataImporter* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = _tmp4_;
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = spit_data_imports_data_importer_is_running (_tmp5_);
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = !_tmp6_;
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1758 "DataImportsPluginHost.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp0_) {
+#line 170 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return;
+#line 1764 "DataImportsPluginHost.c"
+ }
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = self->priv->dialog;
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = pane;
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_install_pane (_tmp7_, _tmp8_);
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp9_ = button_mode;
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_set_button_mode (self, _tmp9_);
+#line 1776 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_install_static_message_pane (SpitDataImportsPluginHost* base, const gchar* message, SpitDataImportsPluginHostButtonMode button_mode) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ SpitDataImportsPluginHostButtonMode _tmp0_ = 0;
+ DataImportsUIDataImportsDialog* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ DataImportsUIStaticMessagePane* _tmp3_ = NULL;
+ DataImportsUIStaticMessagePane* _tmp4_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 177 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (message != NULL);
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = button_mode;
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_set_button_mode (self, _tmp0_);
+#line 182 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 182 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = message;
+#line 182 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = data_imports_ui_static_message_pane_new_with_pango (_tmp2_);
+#line 182 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = _tmp3_;
+#line 182 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_install_pane (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 182 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1807 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_install_library_selection_pane (SpitDataImportsPluginHost* base, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ gboolean _tmp0_ = FALSE;
+ SpitDataImportsImportableLibrary** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 185 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 185 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (welcome_message != NULL);
+#line 190 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = discovered_libraries;
+#line 190 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1__length1 = discovered_libraries_length1;
+#line 190 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp1__length1 == 0) {
+#line 1826 "DataImportsPluginHost.c"
+ const gchar* _tmp2_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = file_select_label;
+#line 190 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 1832 "DataImportsPluginHost.c"
+ } else {
+#line 190 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = FALSE;
+#line 1836 "DataImportsPluginHost.c"
+ }
+#line 190 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp0_) {
+#line 191 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_post_error_message (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost), "Libraries or file option needed");
+#line 1842 "DataImportsPluginHost.c"
+ } else {
+ DataImportsUIDataImportsDialog* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ SpitDataImportsImportableLibrary** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ const gchar* _tmp6_ = NULL;
+ DataImportsUILibrarySelectionPane* _tmp7_ = NULL;
+ DataImportsUILibrarySelectionPane* _tmp8_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = self->priv->dialog;
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = welcome_message;
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = discovered_libraries;
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5__length1 = discovered_libraries_length1;
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = file_select_label;
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = data_imports_ui_library_selection_pane_new (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost), _tmp4_, _tmp5_, _tmp5__length1, _tmp6_);
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = _tmp7_;
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_install_pane (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 193 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1869 "DataImportsPluginHost.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_set_button_mode (self, SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE);
+#line 1873 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_install_import_progress_pane (SpitDataImportsPluginHost* base, const gchar* message) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ const gchar* _tmp0_ = NULL;
+ DataImportsUIProgressPane* _tmp1_ = NULL;
+ DataImportsUIDataImportsDialog* _tmp2_ = NULL;
+ DataImportsUIProgressPane* _tmp3_ = NULL;
+ SpitDataImportsCoreImporter* _tmp4_ = NULL;
+ SpitDataImportsCoreImporter* _tmp5_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 202 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (message != NULL);
+#line 205 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = message;
+#line 205 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = data_imports_ui_progress_pane_new (_tmp0_);
+#line 205 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->progress_pane);
+#line 205 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->progress_pane = _tmp1_;
+#line 206 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = self->priv->dialog;
+#line 206 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = self->priv->progress_pane;
+#line 206 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_install_pane (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 207 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_set_button_mode (self, SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL);
+#line 209 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = self->priv->core_importer;
+#line 209 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_->imported_items_count = 0;
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = self->priv->core_importer;
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_roll_unref0 (_tmp5_->current_import_roll);
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_->current_import_roll = NULL;
+#line 1915 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_update_import_progress_pane (SpitDataImportsPluginHost* base, gdouble progress, const gchar* progress_message) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ DataImportsUIProgressPane* _tmp0_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 217 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->progress_pane;
+#line 217 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp0_ != NULL) {
+#line 1928 "DataImportsPluginHost.c"
+ DataImportsUIProgressPane* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ const gchar* _tmp3_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = self->priv->progress_pane;
+#line 218 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = progress;
+#line 218 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = progress_message;
+#line 218 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_progress_pane_update_progress (_tmp1_, _tmp2_, _tmp3_);
+#line 1940 "DataImportsPluginHost.c"
+ }
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_prepare_media_items_for_import (SpitDataImportsPluginHost* base, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ SpitDataImportsCoreImporter* _tmp0_ = NULL;
+ SpitDataImportsImportableMediaItem** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ const gchar* _tmp4_ = NULL;
+#line 222 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 228 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->core_importer;
+#line 228 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = items;
+#line 228 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1__length1 = items_length1;
+#line 228 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = progress;
+#line 228 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = host_progress_delta;
+#line 228 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = progress_message;
+#line 228 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_prepare_media_items_for_import (_tmp0_, _tmp1_, _tmp1__length1, _tmp2_, _tmp3_, _tmp4_);
+#line 1969 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_real_finalize_import (SpitDataImportsPluginHost* base, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message) {
+ SpitDataImportsConcreteDataImportsHost * self;
+ const gchar* _tmp0_ = NULL;
+ SpitDataImportsCoreImporter* _tmp1_ = NULL;
+ SpitDataImportsImportedItemsCountCallback _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ SpitDataImportsCoreImporter* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ SpitDataImportsCoreImporter* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 231 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 235 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = finalize_message;
+#line 235 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_update_import_progress_pane (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost), 1.0, _tmp0_);
+#line 236 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_set_button_mode (self, SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE);
+#line 237 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = self->priv->core_importer;
+#line 237 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_finalize_import (_tmp1_);
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = report_imported_items_count;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2__target = report_imported_items_count_target;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = self->priv->core_importer;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = _tmp3_->imported_items_count;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ (_tmp4_, _tmp2__target);
+#line 239 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = self->priv->core_importer;
+#line 239 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = _tmp5_->imported_items_count;
+#line 239 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp6_ > 0) {
+#line 2011 "DataImportsPluginHost.c"
+ LibraryWindow* _tmp7_ = NULL;
+ LibraryWindow* _tmp8_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = library_window_get_app ();
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = _tmp7_;
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ library_window_switch_to_import_queue_page (_tmp8_);
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp8_);
+#line 2022 "DataImportsPluginHost.c"
+ }
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_class_init (SpitDataImportsConcreteDataImportsHostClass * klass) {
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_parent_class = g_type_class_peek_parent (klass);
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_type_class_add_private (klass, sizeof (SpitDataImportsConcreteDataImportsHostPrivate));
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_data_imports_concrete_data_imports_host_finalize;
+#line 2034 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_spit_data_imports_plugin_host_interface_init (SpitDataImportsPluginHostIface * iface) {
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_concrete_data_imports_host_spit_data_imports_plugin_host_parent_iface = g_type_interface_peek_parent (iface);
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->get_data_importer = (SpitDataImportsDataImporter* (*)(SpitDataImportsPluginHost*)) spit_data_imports_concrete_data_imports_host_real_get_data_importer;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->start_importing = (void (*)(SpitDataImportsPluginHost*)) spit_data_imports_concrete_data_imports_host_real_start_importing;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->stop_importing = (void (*)(SpitDataImportsPluginHost*)) spit_data_imports_concrete_data_imports_host_real_stop_importing;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->post_error = (void (*)(SpitDataImportsPluginHost*, GError*)) spit_data_imports_concrete_data_imports_host_real_post_error;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->post_error_message = (void (*)(SpitDataImportsPluginHost*, const gchar*)) spit_data_imports_concrete_data_imports_host_real_post_error_message;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_dialog_pane = (void (*)(SpitDataImportsPluginHost*, SpitDataImportsDialogPane*, SpitDataImportsPluginHostButtonMode)) spit_data_imports_concrete_data_imports_host_real_install_dialog_pane;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_static_message_pane = (void (*)(SpitDataImportsPluginHost*, const gchar*, SpitDataImportsPluginHostButtonMode)) spit_data_imports_concrete_data_imports_host_real_install_static_message_pane;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_library_selection_pane = (void (*)(SpitDataImportsPluginHost*, const gchar*, SpitDataImportsImportableLibrary**, int, const gchar*)) spit_data_imports_concrete_data_imports_host_real_install_library_selection_pane;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_import_progress_pane = (void (*)(SpitDataImportsPluginHost*, const gchar*)) spit_data_imports_concrete_data_imports_host_real_install_import_progress_pane;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->update_import_progress_pane = (void (*)(SpitDataImportsPluginHost*, gdouble, const gchar*)) spit_data_imports_concrete_data_imports_host_real_update_import_progress_pane;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->prepare_media_items_for_import = (void (*)(SpitDataImportsPluginHost*, SpitDataImportsImportableMediaItem**, int, gdouble, gdouble, const gchar*)) spit_data_imports_concrete_data_imports_host_real_prepare_media_items_for_import;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->finalize_import = (void (*)(SpitDataImportsPluginHost*, SpitDataImportsImportedItemsCountCallback, void*, const gchar*)) spit_data_imports_concrete_data_imports_host_real_finalize_import;
+#line 2065 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_instance_init (SpitDataImportsConcreteDataImportsHost * self) {
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv = SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST_GET_PRIVATE (self);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->active_importer = NULL;
+#line 91 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->dialog = NULL;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->progress_pane = NULL;
+#line 93 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->importing_halted = FALSE;
+#line 2080 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_concrete_data_imports_host_finalize (GObject* obj) {
+ SpitDataImportsConcreteDataImportsHost * self;
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost);
+#line 90 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->active_importer);
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->progress_pane);
+#line 94 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _spit_data_imports_core_importer_unref0 (self->priv->core_importer);
+#line 87 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (spit_data_imports_concrete_data_imports_host_parent_class)->finalize (obj);
+#line 2096 "DataImportsPluginHost.c"
+}
+
+
+GType spit_data_imports_concrete_data_imports_host_get_type (void) {
+ static volatile gsize spit_data_imports_concrete_data_imports_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_concrete_data_imports_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsConcreteDataImportsHostClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_concrete_data_imports_host_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsConcreteDataImportsHost), 0, (GInstanceInitFunc) spit_data_imports_concrete_data_imports_host_instance_init, NULL };
+ static const GInterfaceInfo spit_data_imports_plugin_host_info = { (GInterfaceInitFunc) spit_data_imports_concrete_data_imports_host_spit_data_imports_plugin_host_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType spit_data_imports_concrete_data_imports_host_type_id;
+ spit_data_imports_concrete_data_imports_host_type_id = g_type_register_static (PLUGINS_TYPE_STANDARD_HOST_INTERFACE, "SpitDataImportsConcreteDataImportsHost", &g_define_type_info, 0);
+ g_type_add_interface_static (spit_data_imports_concrete_data_imports_host_type_id, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, &spit_data_imports_plugin_host_info);
+ g_once_init_leave (&spit_data_imports_concrete_data_imports_host_type_id__volatile, spit_data_imports_concrete_data_imports_host_type_id);
+ }
+ return spit_data_imports_concrete_data_imports_host_type_id__volatile;
+}
+
+
+SpitDataImportsWelcomeDataImportsHost* spit_data_imports_welcome_data_imports_host_construct (GType object_type, SpitDataImportsService* service, SpitDataImportsWelcomeImportMetaHost* meta_host) {
+ SpitDataImportsWelcomeDataImportsHost * self = NULL;
+ SpitDataImportsService* _tmp0_ = NULL;
+ SpitDataImportsService* _tmp1_ = NULL;
+ SpitDataImportsDataImporter* _tmp2_ = NULL;
+ SpitDataImportsCoreImporter* _tmp3_ = NULL;
+ SpitDataImportsWelcomeImportMetaHost* _tmp4_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (service), NULL);
+#line 252 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST (meta_host), NULL);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = service;
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = (SpitDataImportsWelcomeDataImportsHost*) plugins_standard_host_interface_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_TYPE_PLUGGABLE, SpitPluggable), "data_imports");
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = service;
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_service_create_data_importer (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->active_importer);
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->active_importer = _tmp2_;
+#line 256 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = spit_data_imports_core_importer_new (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 256 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _spit_data_imports_core_importer_unref0 (self->priv->core_importer);
+#line 256 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->core_importer = _tmp3_;
+#line 257 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = meta_host;
+#line 257 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->meta_host = _tmp4_;
+#line 252 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return self;
+#line 2149 "DataImportsPluginHost.c"
+}
+
+
+SpitDataImportsWelcomeDataImportsHost* spit_data_imports_welcome_data_imports_host_new (SpitDataImportsService* service, SpitDataImportsWelcomeImportMetaHost* meta_host) {
+#line 252 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return spit_data_imports_welcome_data_imports_host_construct (SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, service, meta_host);
+#line 2156 "DataImportsPluginHost.c"
+}
+
+
+static SpitDataImportsDataImporter* spit_data_imports_welcome_data_imports_host_real_get_data_importer (SpitDataImportsPluginHost* base) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ SpitDataImportsDataImporter* result = NULL;
+ SpitDataImportsDataImporter* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 261 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->active_importer;
+#line 261 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 261 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = _tmp1_;
+#line 261 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 2175 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_start_importing (SpitDataImportsPluginHost* base) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ SpitDataImportsDataImporter* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ SpitDataImportsDataImporter* _tmp4_ = NULL;
+ SpitDataImportsDataImporter* _tmp5_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 265 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 265 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_;
+#line 265 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_data_importer_is_running (_tmp1_);
+#line 265 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 265 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp1_);
+#line 265 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp3_) {
+#line 266 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return;
+#line 2203 "DataImportsPluginHost.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:268: WelcomeDataImportsHost.start_importing" \
+"( ): invoked.");
+#line 270 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 270 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = _tmp4_;
+#line 270 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_importer_start (_tmp5_);
+#line 270 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2215 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_stop_importing (SpitDataImportsPluginHost* base) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ SpitDataImportsDataImporter* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 273 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 274 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:274: WelcomeDataImportsHost.stop_importing(" \
+" ): invoked.");
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_;
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_data_importer_is_running (_tmp1_);
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp1_);
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp3_) {
+#line 2241 "DataImportsPluginHost.c"
+ SpitDataImportsDataImporter* _tmp4_ = NULL;
+ SpitDataImportsDataImporter* _tmp5_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 277 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = _tmp4_;
+#line 277 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_importer_stop (_tmp5_);
+#line 277 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2252 "DataImportsPluginHost.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_data_imports_host_clean_up (self);
+#line 281 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->importing_halted = TRUE;
+#line 2258 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_clean_up (SpitDataImportsWelcomeDataImportsHost* self) {
+#line 284 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_WELCOME_DATA_IMPORTS_HOST (self));
+#line 2265 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_post_error (SpitDataImportsPluginHost* base, GError* err) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ GError* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 289 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 290 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = err;
+#line 290 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_->message;
+#line 290 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_post_error_message (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost), _tmp1_);
+#line 2281 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_post_error_message (SpitDataImportsPluginHost* base, const gchar* message) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ gchar* msg = NULL;
+ const gchar* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ SpitDataImportsService* _tmp2_ = NULL;
+ SpitDataImportsService* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ SpitDataImportsDataImporter* _tmp7_ = NULL;
+ SpitDataImportsDataImporter* _tmp8_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 293 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (message != NULL);
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = _ ("Importing from %s can't continue because an error occurred:");
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = self->priv->active_importer;
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_data_importer_get_service (_tmp1_);
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = g_strdup_printf (_tmp0_, _tmp4_);
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = _tmp5_;
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp3_);
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ msg = _tmp6_;
+#line 297 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:297: %s", msg);
+#line 299 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 299 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = _tmp7_;
+#line 299 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_importer_stop (_tmp8_);
+#line 299 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp8_);
+#line 304 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_data_imports_host_clean_up (self);
+#line 293 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (msg);
+#line 2333 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_install_dialog_pane (SpitDataImportsPluginHost* base, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode button_mode) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+#line 307 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 307 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (pane));
+#line 2343 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_install_static_message_pane (SpitDataImportsPluginHost* base, const gchar* message, SpitDataImportsPluginHostButtonMode button_mode) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+#line 312 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 312 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (message != NULL);
+#line 2353 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_install_library_selection_pane (SpitDataImportsPluginHost* base, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ SpitDataImportsDataImporter* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ SpitDataImportsService* _tmp2_ = NULL;
+ SpitDataImportsService* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ SpitDataImportsImportableLibrary** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 317 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 317 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (welcome_message != NULL);
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_;
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = spit_data_imports_data_importer_get_service (_tmp1_);
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = g_strdup_printf ("WelcomeDataImportsHost: Installing library selection pane for %s", _tmp4_);
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = _tmp5_;
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:322: %s", _tmp6_);
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (_tmp6_);
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp3_);
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp1_);
+#line 323 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = discovered_libraries;
+#line 323 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7__length1 = discovered_libraries_length1;
+#line 323 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp7__length1 > 0) {
+#line 2400 "DataImportsPluginHost.c"
+ SpitDataImportsWelcomeImportMetaHost* _tmp8_ = NULL;
+ SpitDataImportsDataImporter* _tmp9_ = NULL;
+ SpitDataImportsDataImporter* _tmp10_ = NULL;
+ SpitDataImportsService* _tmp11_ = NULL;
+ SpitDataImportsService* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ SpitDataImportsImportableLibrary** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ SpitDataImportsWelcomeImportServiceEntry* _tmp15_ = NULL;
+ SpitDataImportsWelcomeImportServiceEntry* _tmp16_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = self->priv->meta_host;
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp9_ = spit_data_imports_plugin_host_get_data_importer (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp10_ = _tmp9_;
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp11_ = spit_data_imports_data_importer_get_service (_tmp10_);
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp12_ = _tmp11_;
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp13_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp14_ = discovered_libraries;
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp14__length1 = discovered_libraries_length1;
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp15_ = spit_data_imports_welcome_import_service_entry_new (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost), _tmp13_, _tmp14_, _tmp14__length1);
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp16_ = _tmp15_;
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_import_meta_host_install_service_entry (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntry));
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp16_);
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp12_);
+#line 324 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp10_);
+#line 2439 "DataImportsPluginHost.c"
+ }
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_install_import_progress_pane (SpitDataImportsPluginHost* base, const gchar* message) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+#line 332 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 332 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (message != NULL);
+#line 2450 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_update_import_progress_pane (SpitDataImportsPluginHost* base, gdouble progress, const gchar* progress_message) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+#line 338 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 2458 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_prepare_media_items_for_import (SpitDataImportsPluginHost* base, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ SpitDataImportsCoreImporter* _tmp0_ = NULL;
+ SpitDataImportsImportableMediaItem** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ const gchar* _tmp4_ = NULL;
+#line 345 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->core_importer;
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = items;
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1__length1 = items_length1;
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = progress;
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = host_progress_delta;
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = progress_message;
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_prepare_media_items_for_import (_tmp0_, _tmp1_, _tmp1__length1, _tmp2_, _tmp3_, _tmp4_);
+#line 2486 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_real_finalize_import (SpitDataImportsPluginHost* base, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+ SpitDataImportsCoreImporter* _tmp0_ = NULL;
+ SpitDataImportsImportedItemsCountCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ SpitDataImportsCoreImporter* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ SpitDataImportsWelcomeImportMetaHost* _tmp4_ = NULL;
+#line 354 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 358 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->core_importer;
+#line 358 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_core_importer_finalize_import (_tmp0_);
+#line 359 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = report_imported_items_count;
+#line 359 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1__target = report_imported_items_count_target;
+#line 359 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = self->priv->core_importer;
+#line 359 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_->imported_items_count;
+#line 359 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ (_tmp3_, _tmp1__target);
+#line 360 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = self->priv->meta_host;
+#line 360 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_import_meta_host_finalize_import (_tmp4_, self);
+#line 2518 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_class_init (SpitDataImportsWelcomeDataImportsHostClass * klass) {
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_data_imports_host_parent_class = g_type_class_peek_parent (klass);
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_type_class_add_private (klass, sizeof (SpitDataImportsWelcomeDataImportsHostPrivate));
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_data_imports_welcome_data_imports_host_finalize;
+#line 2529 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_spit_data_imports_plugin_host_interface_init (SpitDataImportsPluginHostIface * iface) {
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_data_imports_host_spit_data_imports_plugin_host_parent_iface = g_type_interface_peek_parent (iface);
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->get_data_importer = (SpitDataImportsDataImporter* (*)(SpitDataImportsPluginHost*)) spit_data_imports_welcome_data_imports_host_real_get_data_importer;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->start_importing = (void (*)(SpitDataImportsPluginHost*)) spit_data_imports_welcome_data_imports_host_real_start_importing;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->stop_importing = (void (*)(SpitDataImportsPluginHost*)) spit_data_imports_welcome_data_imports_host_real_stop_importing;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->post_error = (void (*)(SpitDataImportsPluginHost*, GError*)) spit_data_imports_welcome_data_imports_host_real_post_error;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->post_error_message = (void (*)(SpitDataImportsPluginHost*, const gchar*)) spit_data_imports_welcome_data_imports_host_real_post_error_message;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_dialog_pane = (void (*)(SpitDataImportsPluginHost*, SpitDataImportsDialogPane*, SpitDataImportsPluginHostButtonMode)) spit_data_imports_welcome_data_imports_host_real_install_dialog_pane;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_static_message_pane = (void (*)(SpitDataImportsPluginHost*, const gchar*, SpitDataImportsPluginHostButtonMode)) spit_data_imports_welcome_data_imports_host_real_install_static_message_pane;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_library_selection_pane = (void (*)(SpitDataImportsPluginHost*, const gchar*, SpitDataImportsImportableLibrary**, int, const gchar*)) spit_data_imports_welcome_data_imports_host_real_install_library_selection_pane;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->install_import_progress_pane = (void (*)(SpitDataImportsPluginHost*, const gchar*)) spit_data_imports_welcome_data_imports_host_real_install_import_progress_pane;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->update_import_progress_pane = (void (*)(SpitDataImportsPluginHost*, gdouble, const gchar*)) spit_data_imports_welcome_data_imports_host_real_update_import_progress_pane;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->prepare_media_items_for_import = (void (*)(SpitDataImportsPluginHost*, SpitDataImportsImportableMediaItem**, int, gdouble, gdouble, const gchar*)) spit_data_imports_welcome_data_imports_host_real_prepare_media_items_for_import;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->finalize_import = (void (*)(SpitDataImportsPluginHost*, SpitDataImportsImportedItemsCountCallback, void*, const gchar*)) spit_data_imports_welcome_data_imports_host_real_finalize_import;
+#line 2560 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_instance_init (SpitDataImportsWelcomeDataImportsHost * self) {
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv = SPIT_DATA_IMPORTS_WELCOME_DATA_IMPORTS_HOST_GET_PRIVATE (self);
+#line 248 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->active_importer = NULL;
+#line 249 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->importing_halted = FALSE;
+#line 2571 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_data_imports_host_finalize (GObject* obj) {
+ SpitDataImportsWelcomeDataImportsHost * self;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_WELCOME_DATA_IMPORTS_HOST, SpitDataImportsWelcomeDataImportsHost);
+#line 248 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->active_importer);
+#line 250 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _spit_data_imports_core_importer_unref0 (self->priv->core_importer);
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (spit_data_imports_welcome_data_imports_host_parent_class)->finalize (obj);
+#line 2585 "DataImportsPluginHost.c"
+}
+
+
+GType spit_data_imports_welcome_data_imports_host_get_type (void) {
+ static volatile gsize spit_data_imports_welcome_data_imports_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_welcome_data_imports_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsWelcomeDataImportsHostClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_welcome_data_imports_host_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsWelcomeDataImportsHost), 0, (GInstanceInitFunc) spit_data_imports_welcome_data_imports_host_instance_init, NULL };
+ static const GInterfaceInfo spit_data_imports_plugin_host_info = { (GInterfaceInitFunc) spit_data_imports_welcome_data_imports_host_spit_data_imports_plugin_host_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType spit_data_imports_welcome_data_imports_host_type_id;
+ spit_data_imports_welcome_data_imports_host_type_id = g_type_register_static (PLUGINS_TYPE_STANDARD_HOST_INTERFACE, "SpitDataImportsWelcomeDataImportsHost", &g_define_type_info, 0);
+ g_type_add_interface_static (spit_data_imports_welcome_data_imports_host_type_id, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, &spit_data_imports_plugin_host_info);
+ g_once_init_leave (&spit_data_imports_welcome_data_imports_host_type_id__volatile, spit_data_imports_welcome_data_imports_host_type_id);
+ }
+ return spit_data_imports_welcome_data_imports_host_type_id__volatile;
+}
+
+
+static SpitDataImportsImportableLibrary** _vala_array_dup25 (SpitDataImportsImportableLibrary** self, int length) {
+ SpitDataImportsImportableLibrary** result;
+ int i;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = g_new0 (SpitDataImportsImportableLibrary*, length + 1);
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ for (i = 0; i < length; i++) {
+#line 2610 "DataImportsPluginHost.c"
+ SpitDataImportsImportableLibrary* _tmp0_ = NULL;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result[i] = _tmp0_;
+#line 2616 "DataImportsPluginHost.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 2620 "DataImportsPluginHost.c"
+}
+
+
+SpitDataImportsWelcomeImportServiceEntry* spit_data_imports_welcome_import_service_entry_construct (GType object_type, SpitDataImportsPluginHost* host, const gchar* pluggable_name, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1) {
+ SpitDataImportsWelcomeImportServiceEntry * self = NULL;
+ SpitDataImportsPluginHost* _tmp0_ = NULL;
+ SpitDataImportsPluginHost* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ SpitDataImportsImportableLibrary** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ SpitDataImportsImportableLibrary** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 372 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (host), NULL);
+#line 372 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (pluggable_name != NULL, NULL);
+#line 372 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = (SpitDataImportsWelcomeImportServiceEntry*) g_object_new (object_type, NULL);
+#line 376 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = host;
+#line 376 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 376 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->host);
+#line 376 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->host = _tmp1_;
+#line 377 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = pluggable_name;
+#line 377 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 377 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (self->priv->pluggable_name);
+#line 377 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->pluggable_name = _tmp3_;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = discovered_libraries;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4__length1 = discovered_libraries_length1;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = (_tmp4_ != NULL) ? _vala_array_dup25 (_tmp4_, _tmp4__length1) : ((gpointer) _tmp4_);
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5__length1 = _tmp4__length1;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->discovered_libraries = (_vala_array_free (self->priv->discovered_libraries, self->priv->discovered_libraries_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->discovered_libraries = _tmp5_;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->discovered_libraries_length1 = _tmp5__length1;
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->_discovered_libraries_size_ = self->priv->discovered_libraries_length1;
+#line 372 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return self;
+#line 2674 "DataImportsPluginHost.c"
+}
+
+
+SpitDataImportsWelcomeImportServiceEntry* spit_data_imports_welcome_import_service_entry_new (SpitDataImportsPluginHost* host, const gchar* pluggable_name, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1) {
+#line 372 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return spit_data_imports_welcome_import_service_entry_construct (SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, host, pluggable_name, discovered_libraries, discovered_libraries_length1);
+#line 2681 "DataImportsPluginHost.c"
+}
+
+
+static gchar* spit_data_imports_welcome_import_service_entry_real_get_service_name (WelcomeServiceEntry* base) {
+ SpitDataImportsWelcomeImportServiceEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, SpitDataImportsWelcomeImportServiceEntry);
+#line 382 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->pluggable_name;
+#line 382 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 382 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = _tmp1_;
+#line 382 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 2700 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_import_service_entry_real_execute (WelcomeServiceEntry* base) {
+ SpitDataImportsWelcomeImportServiceEntry * self;
+ SpitDataImportsImportableLibrary** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 385 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, SpitDataImportsWelcomeImportServiceEntry);
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = self->priv->discovered_libraries;
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0__length1 = self->priv->discovered_libraries_length1;
+#line 2714 "DataImportsPluginHost.c"
+ {
+ SpitDataImportsImportableLibrary** library_collection = NULL;
+ gint library_collection_length1 = 0;
+ gint _library_collection_size_ = 0;
+ gint library_it = 0;
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ library_collection = _tmp0_;
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ library_collection_length1 = _tmp0__length1;
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ for (library_it = 0; library_it < _tmp0__length1; library_it = library_it + 1) {
+#line 2726 "DataImportsPluginHost.c"
+ SpitDataImportsImportableLibrary* _tmp1_ = NULL;
+ SpitDataImportsImportableLibrary* library = NULL;
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _g_object_ref0 (library_collection[library_it]);
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ library = _tmp1_;
+#line 2733 "DataImportsPluginHost.c"
+ {
+ SpitDataImportsPluginHost* _tmp2_ = NULL;
+ SpitDataImportsDataImporter* _tmp3_ = NULL;
+ SpitDataImportsDataImporter* _tmp4_ = NULL;
+ SpitDataImportsImportableLibrary* _tmp5_ = NULL;
+#line 387 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = self->priv->host;
+#line 387 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = spit_data_imports_plugin_host_get_data_importer (_tmp2_);
+#line 387 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = _tmp3_;
+#line 387 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = library;
+#line 387 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_data_importer_on_library_selected (_tmp4_, _tmp5_);
+#line 387 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_tmp4_);
+#line 386 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (library);
+#line 2753 "DataImportsPluginHost.c"
+ }
+ }
+ }
+}
+
+
+static void spit_data_imports_welcome_import_service_entry_class_init (SpitDataImportsWelcomeImportServiceEntryClass * klass) {
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_import_service_entry_parent_class = g_type_class_peek_parent (klass);
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_type_class_add_private (klass, sizeof (SpitDataImportsWelcomeImportServiceEntryPrivate));
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_data_imports_welcome_import_service_entry_finalize;
+#line 2767 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_import_service_entry_welcome_service_entry_interface_init (WelcomeServiceEntryIface * iface) {
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_import_service_entry_welcome_service_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->get_service_name = (gchar* (*)(WelcomeServiceEntry*)) spit_data_imports_welcome_import_service_entry_real_get_service_name;
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ iface->execute = (void (*)(WelcomeServiceEntry*)) spit_data_imports_welcome_import_service_entry_real_execute;
+#line 2778 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_import_service_entry_instance_init (SpitDataImportsWelcomeImportServiceEntry * self) {
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv = SPIT_DATA_IMPORTS_WELCOME_IMPORT_SERVICE_ENTRY_GET_PRIVATE (self);
+#line 2785 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_import_service_entry_finalize (GObject* obj) {
+ SpitDataImportsWelcomeImportServiceEntry * self;
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_SERVICE_ENTRY, SpitDataImportsWelcomeImportServiceEntry);
+#line 368 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (self->priv->pluggable_name);
+#line 369 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->discovered_libraries = (_vala_array_free (self->priv->discovered_libraries, self->priv->discovered_libraries_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 370 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->host);
+#line 367 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (spit_data_imports_welcome_import_service_entry_parent_class)->finalize (obj);
+#line 2801 "DataImportsPluginHost.c"
+}
+
+
+GType spit_data_imports_welcome_import_service_entry_get_type (void) {
+ static volatile gsize spit_data_imports_welcome_import_service_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_welcome_import_service_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsWelcomeImportServiceEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_welcome_import_service_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsWelcomeImportServiceEntry), 0, (GInstanceInitFunc) spit_data_imports_welcome_import_service_entry_instance_init, NULL };
+ static const GInterfaceInfo welcome_service_entry_info = { (GInterfaceInitFunc) spit_data_imports_welcome_import_service_entry_welcome_service_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType spit_data_imports_welcome_import_service_entry_type_id;
+ spit_data_imports_welcome_import_service_entry_type_id = g_type_register_static (G_TYPE_OBJECT, "SpitDataImportsWelcomeImportServiceEntry", &g_define_type_info, 0);
+ g_type_add_interface_static (spit_data_imports_welcome_import_service_entry_type_id, TYPE_WELCOME_SERVICE_ENTRY, &welcome_service_entry_info);
+ g_once_init_leave (&spit_data_imports_welcome_import_service_entry_type_id__volatile, spit_data_imports_welcome_import_service_entry_type_id);
+ }
+ return spit_data_imports_welcome_import_service_entry_type_id__volatile;
+}
+
+
+SpitDataImportsWelcomeImportMetaHost* spit_data_imports_welcome_import_meta_host_construct (GType object_type, WelcomeDialog* dialog) {
+ SpitDataImportsWelcomeImportMetaHost * self = NULL;
+ WelcomeDialog* _tmp0_ = NULL;
+ WelcomeDialog* _tmp1_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_val_if_fail (IS_WELCOME_DIALOG (dialog), NULL);
+#line 395 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = (SpitDataImportsWelcomeImportMetaHost*) g_object_new (object_type, NULL);
+#line 396 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = dialog;
+#line 396 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 396 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 396 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv->dialog = _tmp1_;
+#line 395 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return self;
+#line 2837 "DataImportsPluginHost.c"
+}
+
+
+SpitDataImportsWelcomeImportMetaHost* spit_data_imports_welcome_import_meta_host_new (WelcomeDialog* dialog) {
+#line 395 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return spit_data_imports_welcome_import_meta_host_construct (SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, dialog);
+#line 2844 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_welcome_import_meta_host_start (SpitDataImportsWelcomeImportMetaHost* self) {
+ SpitDataImportsService** services = NULL;
+ gint _tmp0_ = 0;
+ SpitDataImportsService** _tmp1_ = NULL;
+ gint services_length1 = 0;
+ gint _services_size_ = 0;
+ SpitDataImportsService** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 399 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST (self));
+#line 400 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = spit_data_imports_load_all_services (&_tmp0_);
+#line 400 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ services = _tmp1_;
+#line 400 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ services_length1 = _tmp0_;
+#line 400 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _services_size_ = services_length1;
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = services;
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2__length1 = services_length1;
+#line 2870 "DataImportsPluginHost.c"
+ {
+ SpitDataImportsService** service_collection = NULL;
+ gint service_collection_length1 = 0;
+ gint _service_collection_size_ = 0;
+ gint service_it = 0;
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ service_collection = _tmp2_;
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ service_collection_length1 = _tmp2__length1;
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ for (service_it = 0; service_it < _tmp2__length1; service_it = service_it + 1) {
+#line 2882 "DataImportsPluginHost.c"
+ SpitDataImportsService* _tmp3_ = NULL;
+ SpitDataImportsService* service = NULL;
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _g_object_ref0 (service_collection[service_it]);
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ service = _tmp3_;
+#line 2889 "DataImportsPluginHost.c"
+ {
+ SpitDataImportsWelcomeDataImportsHost* host = NULL;
+ SpitDataImportsService* _tmp4_ = NULL;
+ SpitDataImportsWelcomeDataImportsHost* _tmp5_ = NULL;
+ SpitDataImportsWelcomeDataImportsHost* _tmp6_ = NULL;
+#line 402 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = service;
+#line 402 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = spit_data_imports_welcome_data_imports_host_new (_tmp4_, self);
+#line 402 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ host = _tmp5_;
+#line 403 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = host;
+#line 403 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_start_importing (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (host);
+#line 401 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (service);
+#line 2909 "DataImportsPluginHost.c"
+ }
+ }
+ }
+#line 399 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 2915 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_welcome_import_meta_host_finalize_import (SpitDataImportsWelcomeImportMetaHost* self, SpitDataImportsWelcomeDataImportsHost* host) {
+ SpitDataImportsWelcomeDataImportsHost* _tmp0_ = NULL;
+#line 407 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST (self));
+#line 407 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_WELCOME_DATA_IMPORTS_HOST (host));
+#line 408 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = host;
+#line 408 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_plugin_host_stop_importing (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 2929 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_welcome_import_meta_host_install_service_entry (SpitDataImportsWelcomeImportMetaHost* self, WelcomeServiceEntry* entry) {
+ WelcomeServiceEntry* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ WelcomeDialog* _tmp5_ = NULL;
+ WelcomeServiceEntry* _tmp6_ = NULL;
+#line 411 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_WELCOME_IMPORT_META_HOST (self));
+#line 411 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (IS_WELCOME_SERVICE_ENTRY (entry));
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = entry;
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = welcome_service_entry_get_service_name (_tmp0_);
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = _tmp1_;
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = g_strdup_printf ("WelcomeImportMetaHost: Installing service entry for %s", _tmp2_);
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = _tmp3_;
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:412: %s", _tmp4_);
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (_tmp4_);
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (_tmp2_);
+#line 413 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = self->priv->dialog;
+#line 413 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = entry;
+#line 413 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ welcome_dialog_install_service_entry (_tmp5_, _tmp6_);
+#line 2967 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_import_meta_host_class_init (SpitDataImportsWelcomeImportMetaHostClass * klass) {
+#line 392 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_welcome_import_meta_host_parent_class = g_type_class_peek_parent (klass);
+#line 392 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_type_class_add_private (klass, sizeof (SpitDataImportsWelcomeImportMetaHostPrivate));
+#line 392 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_data_imports_welcome_import_meta_host_finalize;
+#line 2978 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_import_meta_host_instance_init (SpitDataImportsWelcomeImportMetaHost * self) {
+#line 392 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self->priv = SPIT_DATA_IMPORTS_WELCOME_IMPORT_META_HOST_GET_PRIVATE (self);
+#line 2985 "DataImportsPluginHost.c"
+}
+
+
+static void spit_data_imports_welcome_import_meta_host_finalize (GObject* obj) {
+ SpitDataImportsWelcomeImportMetaHost * self;
+#line 392 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_DATA_IMPORTS_TYPE_WELCOME_IMPORT_META_HOST, SpitDataImportsWelcomeImportMetaHost);
+#line 393 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 392 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ G_OBJECT_CLASS (spit_data_imports_welcome_import_meta_host_parent_class)->finalize (obj);
+#line 2997 "DataImportsPluginHost.c"
+}
+
+
+GType spit_data_imports_welcome_import_meta_host_get_type (void) {
+ static volatile gsize spit_data_imports_welcome_import_meta_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_welcome_import_meta_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsWelcomeImportMetaHostClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_data_imports_welcome_import_meta_host_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitDataImportsWelcomeImportMetaHost), 0, (GInstanceInitFunc) spit_data_imports_welcome_import_meta_host_instance_init, NULL };
+ GType spit_data_imports_welcome_import_meta_host_type_id;
+ spit_data_imports_welcome_import_meta_host_type_id = g_type_register_static (G_TYPE_OBJECT, "SpitDataImportsWelcomeImportMetaHost", &g_define_type_info, 0);
+ g_once_init_leave (&spit_data_imports_welcome_import_meta_host_type_id__volatile, spit_data_imports_welcome_import_meta_host_type_id);
+ }
+ return spit_data_imports_welcome_import_meta_host_type_id__volatile;
+}
+
+
+SpitDataImportsService** spit_data_imports_load_all_services (int* result_length1) {
+ SpitDataImportsService** result = NULL;
+ gint _tmp0_ = 0;
+ SpitDataImportsService** _tmp1_ = NULL;
+ SpitDataImportsService** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 418 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = spit_data_imports_load_services (TRUE, &_tmp0_);
+#line 418 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = _tmp1_;
+#line 418 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2__length1 = _tmp0_;
+#line 418 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (result_length1) {
+#line 418 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ *result_length1 = _tmp2__length1;
+#line 3029 "DataImportsPluginHost.c"
+ }
+#line 418 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = _tmp2_;
+#line 418 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 3035 "DataImportsPluginHost.c"
+}
+
+
+static void _vala_array_add151 (SpitDataImportsService*** array, int* length, int* size, SpitDataImportsService* value) {
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if ((*length) == (*size)) {
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ *array = g_renew (SpitDataImportsService*, *array, (*size) + 1);
+#line 3046 "DataImportsPluginHost.c"
+ }
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ (*array)[(*length)++] = value;
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ (*array)[*length] = NULL;
+#line 3052 "DataImportsPluginHost.c"
+}
+
+
+static gint __lambda21_ (void* a, void* b) {
+ gint result = 0;
+ void* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ void* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 453 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = a;
+#line 453 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (*((SpitDataImportsService**) _tmp0_), SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 453 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = b;
+#line 453 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (*((SpitDataImportsService**) _tmp2_), SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 453 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = utf8_cs_compare (_tmp1_, _tmp3_);
+#line 453 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = _tmp4_;
+#line 453 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 3077 "DataImportsPluginHost.c"
+}
+
+
+static gint ___lambda21____compar_fn_t (void* key1, void* key2) {
+ gint result;
+ result = __lambda21_ (key1, key2);
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 3086 "DataImportsPluginHost.c"
+}
+
+
+SpitDataImportsService** spit_data_imports_load_services (gboolean load_all, int* result_length1) {
+ SpitDataImportsService** result = NULL;
+ SpitDataImportsService** loaded_services = NULL;
+ SpitDataImportsService** _tmp0_ = NULL;
+ gint loaded_services_length1 = 0;
+ gint _loaded_services_size_ = 0;
+ GeeCollection* pluggables = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ SpitDataImportsService** _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ SpitDataImportsService** _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ SpitDataImportsService** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+#line 422 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = g_new0 (SpitDataImportsService*, 0 + 1);
+#line 422 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ loaded_services = _tmp0_;
+#line 422 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ loaded_services_length1 = 0;
+#line 422 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _loaded_services_size_ = loaded_services_length1;
+#line 425 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = load_all;
+#line 425 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = plugins_get_pluggables_for_type (SPIT_DATA_IMPORTS_TYPE_SERVICE, NULL, NULL, NULL, _tmp1_);
+#line 425 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ pluggables = _tmp2_;
+#line 429 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = pluggables;
+#line 429 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = gee_collection_get_size (_tmp3_);
+#line 429 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = _tmp4_;
+#line 429 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:429: DataImportsDialog: discovered %d plugg" \
+"able data import services.", _tmp5_);
+#line 3130 "DataImportsPluginHost.c"
+ {
+ GeeIterator* _pluggable_it = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = pluggables;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _pluggable_it = _tmp7_;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ while (TRUE) {
+#line 3143 "DataImportsPluginHost.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ SpitPluggable* pluggable = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ gint pluggable_interface = 0;
+ SpitPluggable* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ SpitDataImportsService* service = NULL;
+ SpitPluggable* _tmp19_ = NULL;
+ SpitDataImportsService* _tmp20_ = NULL;
+ SpitDataImportsService* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ SpitDataImportsService** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ SpitDataImportsService* _tmp24_ = NULL;
+ SpitDataImportsService* _tmp25_ = NULL;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = _pluggable_it;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (!_tmp9_) {
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ break;
+#line 3170 "DataImportsPluginHost.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp10_ = _pluggable_it;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ pluggable = (SpitPluggable*) _tmp11_;
+#line 432 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp12_ = pluggable;
+#line 432 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp13_ = spit_pluggable_get_pluggable_interface (_tmp12_, SPIT_DATA_IMPORTS_CURRENT_INTERFACE, SPIT_DATA_IMPORTS_CURRENT_INTERFACE);
+#line 432 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ pluggable_interface = _tmp13_;
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp14_ = pluggable_interface;
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp14_ != SPIT_DATA_IMPORTS_CURRENT_INTERFACE) {
+#line 3188 "DataImportsPluginHost.c"
+ SpitPluggable* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 435 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp15_ = pluggable;
+#line 435 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp16_ = plugins_get_pluggable_module_id (_tmp15_);
+#line 435 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp17_ = _tmp16_;
+#line 435 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp18_ = pluggable_interface;
+#line 435 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_warning ("DataImportsPluginHost.vala:435: Unable to load data import plugin %s: " \
+"reported interface %d.", _tmp17_, _tmp18_);
+#line 435 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_free0 (_tmp17_);
+#line 438 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (pluggable);
+#line 438 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ continue;
+#line 3209 "DataImportsPluginHost.c"
+ }
+#line 441 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp19_ = pluggable;
+#line 441 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp20_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, SPIT_DATA_IMPORTS_TYPE_SERVICE, SpitDataImportsService));
+#line 441 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ service = _tmp20_;
+#line 444 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp21_ = service;
+#line 444 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp22_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 444 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_debug ("DataImportsPluginHost.vala:444: DataImportsDialog: discovered pluggabl" \
+"e data import service '%s'.", _tmp22_);
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp23_ = loaded_services;
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp23__length1 = loaded_services_length1;
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp24_ = service;
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp25_ = _g_object_ref0 (_tmp24_);
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _vala_array_add151 (&loaded_services, &loaded_services_length1, &_loaded_services_size_, _tmp25_);
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (service);
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (pluggable);
+#line 3237 "DataImportsPluginHost.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_pluggable_it);
+#line 3241 "DataImportsPluginHost.c"
+ }
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp26_ = loaded_services;
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp26__length1 = loaded_services_length1;
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp27_ = loaded_services;
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp27__length1 = loaded_services_length1;
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ qsort (_tmp26_, (gsize) _tmp27__length1, (gsize) sizeof (SpitDataImportsService*), ___lambda21____compar_fn_t);
+#line 457 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp28_ = loaded_services;
+#line 457 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp28__length1 = loaded_services_length1;
+#line 457 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (result_length1) {
+#line 457 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ *result_length1 = _tmp28__length1;
+#line 3261 "DataImportsPluginHost.c"
+ }
+#line 457 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = _tmp28_;
+#line 457 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (pluggables);
+#line 457 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 3269 "DataImportsPluginHost.c"
+}
+
+
+void spit_data_imports_data_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll) {
+ ImportManifest* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 462 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (IS_IMPORT_MANIFEST (manifest));
+#line 462 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_ROLL (import_roll));
+#line 463 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = manifest;
+#line 463 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = _tmp0_->all;
+#line 463 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 463 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 463 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp3_ > 0) {
+#line 3292 "DataImportsPluginHost.c"
+ ImportManifest* _tmp4_ = NULL;
+#line 464 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp4_ = spit_data_imports_meta_manifest;
+#line 464 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (_tmp4_ == NULL) {
+#line 3298 "DataImportsPluginHost.c"
+ ImportManifest* _tmp5_ = NULL;
+#line 465 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp5_ = import_manifest_new (NULL, NULL);
+#line 465 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _import_manifest_unref0 (spit_data_imports_meta_manifest);
+#line 465 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_meta_manifest = _tmp5_;
+#line 3306 "DataImportsPluginHost.c"
+ }
+ {
+ GeeList* _result_list = NULL;
+ ImportManifest* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ gint _result_size = 0;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _result_index = 0;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp6_ = manifest;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp7_ = _tmp6_->all;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _result_list = _tmp8_;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp9_ = _result_list;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp11_ = _tmp10_;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _result_size = _tmp11_;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _result_index = -1;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ while (TRUE) {
+#line 3338 "DataImportsPluginHost.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ BatchImportResult* _result_ = NULL;
+ GeeList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gpointer _tmp17_ = NULL;
+ ImportManifest* _tmp18_ = NULL;
+ BatchImportResult* _tmp19_ = NULL;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp12_ = _result_index;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _result_index = _tmp12_ + 1;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp13_ = _result_index;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp14_ = _result_size;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ if (!(_tmp13_ < _tmp14_)) {
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ break;
+#line 3360 "DataImportsPluginHost.c"
+ }
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp15_ = _result_list;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp16_ = _result_index;
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp17_ = gee_list_get (_tmp15_, _tmp16_);
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _result_ = (BatchImportResult*) _tmp17_;
+#line 467 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp18_ = spit_data_imports_meta_manifest;
+#line 467 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp19_ = _result_;
+#line 467 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ import_manifest_add_result (_tmp18_, _tmp19_);
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _batch_import_result_unref0 (_result_);
+#line 3378 "DataImportsPluginHost.c"
+ }
+#line 466 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _g_object_unref0 (_result_list);
+#line 3382 "DataImportsPluginHost.c"
+ }
+ } else {
+ ImportManifest* _tmp20_ = NULL;
+#line 470 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ data_imports_ui_data_imports_dialog_terminate_instance ();
+#line 471 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp20_ = spit_data_imports_meta_manifest;
+#line 471 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ import_ui_report_manifest (_tmp20_, TRUE, NULL);
+#line 472 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _import_manifest_unref0 (spit_data_imports_meta_manifest);
+#line 472 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ spit_data_imports_meta_manifest = NULL;
+#line 3396 "DataImportsPluginHost.c"
+ }
+}
+
+
+gint64 spit_data_imports_import_job_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ void* _tmp2_ = NULL;
+ time_t _tmp3_ = 0;
+#line 477 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp0_ = a;
+#line 477 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp1_ = spit_data_imports_data_import_job_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST ((SpitDataImportsDataImportJob*) _tmp0_, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob));
+#line 477 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp2_ = b;
+#line 477 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ _tmp3_ = spit_data_imports_data_import_job_get_exposure_time (G_TYPE_CHECK_INSTANCE_CAST ((SpitDataImportsDataImportJob*) _tmp2_, SPIT_DATA_IMPORTS_TYPE_DATA_IMPORT_JOB, SpitDataImportsDataImportJob));
+#line 477 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ result = (gint64) (_tmp1_ - _tmp3_);
+#line 477 "/home/jens/Source/shotwell/src/data_imports/DataImportsPluginHost.vala"
+ return result;
+#line 3419 "DataImportsPluginHost.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/data_imports/DataImportsUI.c b/src/data_imports/DataImportsUI.c
new file mode 100644
index 0000000..ac73508
--- /dev/null
+++ b/src/data_imports/DataImportsUI.c
@@ -0,0 +1,2693 @@
+/* DataImportsUI.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataImportsUI.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+
+
+#define DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE (data_imports_ui_concrete_dialog_pane_get_type ())
+#define DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPane))
+#define DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPaneClass))
+#define DATA_IMPORTS_UI_IS_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define DATA_IMPORTS_UI_IS_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPaneClass))
+
+typedef struct _DataImportsUIConcreteDialogPane DataImportsUIConcreteDialogPane;
+typedef struct _DataImportsUIConcreteDialogPaneClass DataImportsUIConcreteDialogPaneClass;
+typedef struct _DataImportsUIConcreteDialogPanePrivate DataImportsUIConcreteDialogPanePrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE (data_imports_ui_static_message_pane_get_type ())
+#define DATA_IMPORTS_UI_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, DataImportsUIStaticMessagePane))
+#define DATA_IMPORTS_UI_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, DataImportsUIStaticMessagePaneClass))
+#define DATA_IMPORTS_UI_IS_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE))
+#define DATA_IMPORTS_UI_IS_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE))
+#define DATA_IMPORTS_UI_STATIC_MESSAGE_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, DataImportsUIStaticMessagePaneClass))
+
+typedef struct _DataImportsUIStaticMessagePane DataImportsUIStaticMessagePane;
+typedef struct _DataImportsUIStaticMessagePaneClass DataImportsUIStaticMessagePaneClass;
+typedef struct _DataImportsUIStaticMessagePanePrivate DataImportsUIStaticMessagePanePrivate;
+
+#define DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE (data_imports_ui_library_selection_pane_get_type ())
+#define DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPane))
+#define DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPaneClass))
+#define DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE))
+#define DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE))
+#define DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPaneClass))
+
+typedef struct _DataImportsUILibrarySelectionPane DataImportsUILibrarySelectionPane;
+typedef struct _DataImportsUILibrarySelectionPaneClass DataImportsUILibrarySelectionPaneClass;
+typedef struct _DataImportsUILibrarySelectionPanePrivate DataImportsUILibrarySelectionPanePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _Block10Data Block10Data;
+typedef struct _Block11Data Block11Data;
+
+#define DATA_IMPORTS_UI_TYPE_PROGRESS_PANE (data_imports_ui_progress_pane_get_type ())
+#define DATA_IMPORTS_UI_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPane))
+#define DATA_IMPORTS_UI_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPaneClass))
+#define DATA_IMPORTS_UI_IS_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE))
+#define DATA_IMPORTS_UI_IS_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE))
+#define DATA_IMPORTS_UI_PROGRESS_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPaneClass))
+
+typedef struct _DataImportsUIProgressPane DataImportsUIProgressPane;
+typedef struct _DataImportsUIProgressPaneClass DataImportsUIProgressPaneClass;
+typedef struct _DataImportsUIProgressPanePrivate DataImportsUIProgressPanePrivate;
+
+#define DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG (data_imports_ui_data_imports_dialog_get_type ())
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialog))
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialogClass))
+#define DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG))
+#define DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG))
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialogClass))
+
+typedef struct _DataImportsUIDataImportsDialog DataImportsUIDataImportsDialog;
+typedef struct _DataImportsUIDataImportsDialogClass DataImportsUIDataImportsDialogClass;
+typedef struct _DataImportsUIDataImportsDialogPrivate DataImportsUIDataImportsDialogPrivate;
+
+#define PLUGINS_TYPE_STANDARD_HOST_INTERFACE (plugins_standard_host_interface_get_type ())
+#define PLUGINS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface))
+#define PLUGINS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+
+typedef struct _PluginsStandardHostInterface PluginsStandardHostInterface;
+typedef struct _PluginsStandardHostInterfaceClass PluginsStandardHostInterfaceClass;
+
+#define SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST (spit_data_imports_concrete_data_imports_host_get_type ())
+#define SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHost))
+#define SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHostClass))
+#define SPIT_DATA_IMPORTS_IS_CONCRETE_DATA_IMPORTS_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST))
+#define SPIT_DATA_IMPORTS_IS_CONCRETE_DATA_IMPORTS_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST))
+#define SPIT_DATA_IMPORTS_CONCRETE_DATA_IMPORTS_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_DATA_IMPORTS_TYPE_CONCRETE_DATA_IMPORTS_HOST, SpitDataImportsConcreteDataImportsHostClass))
+
+typedef struct _SpitDataImportsConcreteDataImportsHost SpitDataImportsConcreteDataImportsHost;
+typedef struct _SpitDataImportsConcreteDataImportsHostClass SpitDataImportsConcreteDataImportsHostClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DataImportsUIConcreteDialogPane {
+ GObject parent_instance;
+ DataImportsUIConcreteDialogPanePrivate * priv;
+};
+
+struct _DataImportsUIConcreteDialogPaneClass {
+ GObjectClass parent_class;
+};
+
+struct _DataImportsUIConcreteDialogPanePrivate {
+ GtkBox* pane_widget;
+};
+
+struct _DataImportsUIStaticMessagePane {
+ DataImportsUIConcreteDialogPane parent_instance;
+ DataImportsUIStaticMessagePanePrivate * priv;
+};
+
+struct _DataImportsUIStaticMessagePaneClass {
+ DataImportsUIConcreteDialogPaneClass parent_class;
+};
+
+struct _DataImportsUILibrarySelectionPane {
+ DataImportsUIConcreteDialogPane parent_instance;
+ DataImportsUILibrarySelectionPanePrivate * priv;
+};
+
+struct _DataImportsUILibrarySelectionPaneClass {
+ DataImportsUIConcreteDialogPaneClass parent_class;
+};
+
+struct _DataImportsUILibrarySelectionPanePrivate {
+ SpitDataImportsPluginHost* host;
+ SpitDataImportsImportableLibrary* selected_library;
+ GFile* selected_file;
+ GtkButton* import_button;
+ GtkRadioButton* file_radio;
+};
+
+struct _Block10Data {
+ int _ref_count_;
+ DataImportsUILibrarySelectionPane* self;
+ GtkFileChooserButton* file_chooser;
+};
+
+struct _Block11Data {
+ int _ref_count_;
+ DataImportsUILibrarySelectionPane* self;
+ GtkRadioButton* button;
+ SpitDataImportsImportableLibrary* library;
+};
+
+struct _DataImportsUIProgressPane {
+ DataImportsUIConcreteDialogPane parent_instance;
+ DataImportsUIProgressPanePrivate * priv;
+};
+
+struct _DataImportsUIProgressPaneClass {
+ DataImportsUIConcreteDialogPaneClass parent_class;
+};
+
+struct _DataImportsUIProgressPanePrivate {
+ GtkLabel* message_label;
+ GtkLabel* progress_label;
+ GtkProgressBar* progress_bar;
+};
+
+struct _DataImportsUIDataImportsDialog {
+ GtkDialog parent_instance;
+ DataImportsUIDataImportsDialogPrivate * priv;
+};
+
+struct _DataImportsUIDataImportsDialogClass {
+ GtkDialogClass parent_class;
+};
+
+struct _DataImportsUIDataImportsDialogPrivate {
+ GtkComboBoxText* service_selector_box;
+ GtkBox* central_area_layouter;
+ GtkButton* close_cancel_button;
+ SpitDataImportsDialogPane* active_pane;
+ SpitDataImportsConcreteDataImportsHost* host;
+};
+
+
+static gpointer data_imports_ui_concrete_dialog_pane_parent_class = NULL;
+static SpitDataImportsDialogPaneIface* data_imports_ui_concrete_dialog_pane_spit_data_imports_dialog_pane_parent_iface = NULL;
+static gpointer data_imports_ui_static_message_pane_parent_class = NULL;
+static gpointer data_imports_ui_library_selection_pane_parent_class = NULL;
+static gpointer data_imports_ui_progress_pane_parent_class = NULL;
+static gpointer data_imports_ui_data_imports_dialog_parent_class = NULL;
+static DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_instance;
+static DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_instance = NULL;
+
+#define DATA_IMPORTS_UI_NO_PLUGINS_ENABLED_MESSAGE _ ("You do not have any data imports plugins enabled.\n" \
+"\n" \
+"In order to use the Import From Application functionality, you need to" \
+" have at least one data imports plugin enabled. Plugins can be enabled" \
+" in the Preferences dialog.")
+GType data_imports_ui_concrete_dialog_pane_get_type (void) G_GNUC_CONST;
+#define DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPanePrivate))
+enum {
+ DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE_DUMMY_PROPERTY
+};
+DataImportsUIConcreteDialogPane* data_imports_ui_concrete_dialog_pane_new (void);
+DataImportsUIConcreteDialogPane* data_imports_ui_concrete_dialog_pane_construct (GType object_type);
+static GtkWidget* data_imports_ui_concrete_dialog_pane_real_get_widget (SpitDataImportsDialogPane* base);
+static SpitDataImportsDialogPaneGeometryOptions data_imports_ui_concrete_dialog_pane_real_get_preferred_geometry (SpitDataImportsDialogPane* base);
+static void data_imports_ui_concrete_dialog_pane_real_on_pane_installed (SpitDataImportsDialogPane* base);
+static void data_imports_ui_concrete_dialog_pane_real_on_pane_uninstalled (SpitDataImportsDialogPane* base);
+static void data_imports_ui_concrete_dialog_pane_finalize (GObject* obj);
+GType data_imports_ui_static_message_pane_get_type (void) G_GNUC_CONST;
+enum {
+ DATA_IMPORTS_UI_STATIC_MESSAGE_PANE_DUMMY_PROPERTY
+};
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_new (const gchar* message_string);
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_construct (GType object_type, const gchar* message_string);
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_new_with_pango (const gchar* msg);
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_construct_with_pango (GType object_type, const gchar* msg);
+GType data_imports_ui_library_selection_pane_get_type (void) G_GNUC_CONST;
+#define DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPanePrivate))
+enum {
+ DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE_DUMMY_PROPERTY
+};
+DataImportsUILibrarySelectionPane* data_imports_ui_library_selection_pane_new (SpitDataImportsPluginHost* host, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+DataImportsUILibrarySelectionPane* data_imports_ui_library_selection_pane_construct (GType object_type, SpitDataImportsPluginHost* host, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+static void data_imports_ui_library_selection_pane_on_file_selected (DataImportsUILibrarySelectionPane* self, GFile* file);
+static GtkRadioButton* data_imports_ui_library_selection_pane_create_radio_button (DataImportsUILibrarySelectionPane* self, GtkBox* box, GtkRadioButton* group, SpitDataImportsImportableLibrary* library, const gchar* label, gint margin_left, gint margin_right);
+static Block10Data* block10_data_ref (Block10Data* _data10_);
+static void block10_data_unref (void * _userdata_);
+static void ___lambda19_ (Block10Data* _data10_);
+static void data_imports_ui_library_selection_pane_set_import_button_sensitivity (DataImportsUILibrarySelectionPane* self);
+static void ____lambda19__gtk_file_chooser_selection_changed (GtkFileChooser* _sender, gpointer self);
+static void __lambda20_ (DataImportsUILibrarySelectionPane* self);
+static void data_imports_ui_library_selection_pane_on_library_selected (DataImportsUILibrarySelectionPane* self, SpitDataImportsImportableLibrary* library);
+static void ___lambda20__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static Block11Data* block11_data_ref (Block11Data* _data11_);
+static void block11_data_unref (void * _userdata_);
+static void __lambda18_ (Block11Data* _data11_);
+static void ___lambda18__gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self);
+static void data_imports_ui_library_selection_pane_finalize (GObject* obj);
+GType data_imports_ui_progress_pane_get_type (void) G_GNUC_CONST;
+#define DATA_IMPORTS_UI_PROGRESS_PANE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPanePrivate))
+enum {
+ DATA_IMPORTS_UI_PROGRESS_PANE_DUMMY_PROPERTY
+};
+DataImportsUIProgressPane* data_imports_ui_progress_pane_new (const gchar* message);
+DataImportsUIProgressPane* data_imports_ui_progress_pane_construct (GType object_type, const gchar* message);
+void data_imports_ui_progress_pane_update_progress (DataImportsUIProgressPane* self, gdouble progress, const gchar* progress_message);
+void spin_event_loop (void);
+static void data_imports_ui_progress_pane_finalize (GObject* obj);
+GType data_imports_ui_data_imports_dialog_get_type (void) G_GNUC_CONST;
+GType plugins_standard_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_concrete_data_imports_host_get_type (void) G_GNUC_CONST;
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialogPrivate))
+enum {
+ DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_DUMMY_PROPERTY
+};
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_LARGE_WINDOW_WIDTH 860
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_LARGE_WINDOW_HEIGHT 688
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_COLOSSAL_WINDOW_WIDTH 1024
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_COLOSSAL_WINDOW_HEIGHT 688
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_WINDOW_WIDTH 600
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_WINDOW_HEIGHT 510
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_WIDTH 16
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_HEIGHT 100
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_CONTENT_LABEL_WIDTH 500
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_ACTION_BUTTON_WIDTH 128
+DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_new (void);
+DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_construct (GType object_type);
+static gboolean data_imports_ui_data_imports_dialog_on_window_close (DataImportsUIDataImportsDialog* self, GdkEventAny* evt);
+static gboolean _data_imports_ui_data_imports_dialog_on_window_close_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+SpitDataImportsService** spit_data_imports_load_services (gboolean load_all, int* result_length1);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gchar* configuration_facade_get_last_used_dataimports_service (ConfigurationFacade* self);
+static void data_imports_ui_data_imports_dialog_on_service_changed (DataImportsUIDataImportsDialog* self);
+static void _data_imports_ui_data_imports_dialog_on_service_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void data_imports_ui_data_imports_dialog_on_close_cancel_clicked (DataImportsUIDataImportsDialog* self);
+static void _data_imports_ui_data_imports_dialog_on_close_cancel_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void data_imports_ui_data_imports_dialog_set_standard_window_mode (DataImportsUIDataImportsDialog* self);
+void data_imports_ui_data_imports_dialog_install_pane (DataImportsUIDataImportsDialog* self, SpitDataImportsDialogPane* pane);
+void data_imports_ui_data_imports_dialog_set_close_button_mode (DataImportsUIDataImportsDialog* self);
+DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_get_or_create_instance (void);
+void data_imports_ui_data_imports_dialog_terminate_instance (void);
+static void data_imports_ui_data_imports_dialog_terminate (DataImportsUIDataImportsDialog* self);
+SpitDataImportsService** spit_data_imports_load_all_services (int* result_length1);
+void configuration_facade_set_last_used_dataimports_service (ConfigurationFacade* self, const gchar* service_name);
+SpitDataImportsConcreteDataImportsHost* spit_data_imports_concrete_data_imports_host_new (SpitDataImportsService* service, DataImportsUIDataImportsDialog* dialog);
+SpitDataImportsConcreteDataImportsHost* spit_data_imports_concrete_data_imports_host_construct (GType object_type, SpitDataImportsService* service, DataImportsUIDataImportsDialog* dialog);
+static void data_imports_ui_data_imports_dialog_set_large_window_mode (DataImportsUIDataImportsDialog* self);
+static void data_imports_ui_data_imports_dialog_set_colossal_window_mode (DataImportsUIDataImportsDialog* self);
+static void data_imports_ui_data_imports_dialog_set_free_sizable_window_mode (DataImportsUIDataImportsDialog* self);
+static void data_imports_ui_data_imports_dialog_clear_free_sizable_window_mode (DataImportsUIDataImportsDialog* self);
+SpitDataImportsDialogPane* data_imports_ui_data_imports_dialog_get_active_pane (DataImportsUIDataImportsDialog* self);
+void data_imports_ui_data_imports_dialog_set_cancel_button_mode (DataImportsUIDataImportsDialog* self);
+void data_imports_ui_data_imports_dialog_lock_service (DataImportsUIDataImportsDialog* self);
+void data_imports_ui_data_imports_dialog_unlock_service (DataImportsUIDataImportsDialog* self);
+static void data_imports_ui_data_imports_dialog_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+DataImportsUIConcreteDialogPane* data_imports_ui_concrete_dialog_pane_construct (GType object_type) {
+ DataImportsUIConcreteDialogPane * self = NULL;
+ GtkBox* _tmp0_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = (DataImportsUIConcreteDialogPane*) g_object_new (object_type, NULL);
+#line 16 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
+#line 16 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->pane_widget);
+#line 16 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->pane_widget = _tmp0_;
+#line 15 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return self;
+#line 342 "DataImportsUI.c"
+}
+
+
+DataImportsUIConcreteDialogPane* data_imports_ui_concrete_dialog_pane_new (void) {
+#line 15 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return data_imports_ui_concrete_dialog_pane_construct (DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE);
+#line 349 "DataImportsUI.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 356 "DataImportsUI.c"
+}
+
+
+static GtkWidget* data_imports_ui_concrete_dialog_pane_real_get_widget (SpitDataImportsDialogPane* base) {
+ DataImportsUIConcreteDialogPane * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPane);
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->pane_widget;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ result = _tmp1_;
+#line 20 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return result;
+#line 375 "DataImportsUI.c"
+}
+
+
+static SpitDataImportsDialogPaneGeometryOptions data_imports_ui_concrete_dialog_pane_real_get_preferred_geometry (SpitDataImportsDialogPane* base) {
+ DataImportsUIConcreteDialogPane * self;
+ SpitDataImportsDialogPaneGeometryOptions result = 0;
+#line 23 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPane);
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ result = SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_NONE;
+#line 24 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return result;
+#line 388 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_concrete_dialog_pane_real_on_pane_installed (SpitDataImportsDialogPane* base) {
+ DataImportsUIConcreteDialogPane * self;
+#line 27 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPane);
+#line 396 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_concrete_dialog_pane_real_on_pane_uninstalled (SpitDataImportsDialogPane* base) {
+ DataImportsUIConcreteDialogPane * self;
+#line 30 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPane);
+#line 404 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_concrete_dialog_pane_class_init (DataImportsUIConcreteDialogPaneClass * klass) {
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_concrete_dialog_pane_parent_class = g_type_class_peek_parent (klass);
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_type_class_add_private (klass, sizeof (DataImportsUIConcreteDialogPanePrivate));
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_imports_ui_concrete_dialog_pane_finalize;
+#line 415 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_concrete_dialog_pane_spit_data_imports_dialog_pane_interface_init (SpitDataImportsDialogPaneIface * iface) {
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_concrete_dialog_pane_spit_data_imports_dialog_pane_parent_iface = g_type_interface_peek_parent (iface);
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ iface->get_widget = (GtkWidget* (*)(SpitDataImportsDialogPane*)) data_imports_ui_concrete_dialog_pane_real_get_widget;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ iface->get_preferred_geometry = (SpitDataImportsDialogPaneGeometryOptions (*)(SpitDataImportsDialogPane*)) data_imports_ui_concrete_dialog_pane_real_get_preferred_geometry;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ iface->on_pane_installed = (void (*)(SpitDataImportsDialogPane*)) data_imports_ui_concrete_dialog_pane_real_on_pane_installed;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ iface->on_pane_uninstalled = (void (*)(SpitDataImportsDialogPane*)) data_imports_ui_concrete_dialog_pane_real_on_pane_uninstalled;
+#line 430 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_concrete_dialog_pane_instance_init (DataImportsUIConcreteDialogPane * self) {
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv = DATA_IMPORTS_UI_CONCRETE_DIALOG_PANE_GET_PRIVATE (self);
+#line 437 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_concrete_dialog_pane_finalize (GObject* obj) {
+ DataImportsUIConcreteDialogPane * self;
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, DataImportsUIConcreteDialogPane);
+#line 13 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->pane_widget);
+#line 12 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (data_imports_ui_concrete_dialog_pane_parent_class)->finalize (obj);
+#line 449 "DataImportsUI.c"
+}
+
+
+GType data_imports_ui_concrete_dialog_pane_get_type (void) {
+ static volatile gsize data_imports_ui_concrete_dialog_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&data_imports_ui_concrete_dialog_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataImportsUIConcreteDialogPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_imports_ui_concrete_dialog_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataImportsUIConcreteDialogPane), 0, (GInstanceInitFunc) data_imports_ui_concrete_dialog_pane_instance_init, NULL };
+ static const GInterfaceInfo spit_data_imports_dialog_pane_info = { (GInterfaceInitFunc) data_imports_ui_concrete_dialog_pane_spit_data_imports_dialog_pane_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType data_imports_ui_concrete_dialog_pane_type_id;
+ data_imports_ui_concrete_dialog_pane_type_id = g_type_register_static (G_TYPE_OBJECT, "DataImportsUIConcreteDialogPane", &g_define_type_info, 0);
+ g_type_add_interface_static (data_imports_ui_concrete_dialog_pane_type_id, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, &spit_data_imports_dialog_pane_info);
+ g_once_init_leave (&data_imports_ui_concrete_dialog_pane_type_id__volatile, data_imports_ui_concrete_dialog_pane_type_id);
+ }
+ return data_imports_ui_concrete_dialog_pane_type_id__volatile;
+}
+
+
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_construct (GType object_type, const gchar* message_string) {
+ DataImportsUIStaticMessagePane * self = NULL;
+ GtkLabel* message_label = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkLabel* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkBox* _tmp3_ = NULL;
+ GtkBox* _tmp4_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (message_string != NULL, NULL);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = (DataImportsUIStaticMessagePane*) data_imports_ui_concrete_dialog_pane_construct (object_type);
+#line 36 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = message_string;
+#line 36 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = (GtkLabel*) gtk_label_new (_tmp0_);
+#line 36 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp1_);
+#line 36 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ message_label = _tmp1_;
+#line 37 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = spit_data_imports_dialog_pane_get_widget (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 37 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_box_get_type ()) ? ((GtkBox*) _tmp2_) : NULL;
+#line 37 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp3_ == NULL) {
+#line 37 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp2_);
+#line 495 "DataImportsUI.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = _tmp3_;
+#line 37 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (message_label, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 37 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp4_);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (message_label);
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return self;
+#line 507 "DataImportsUI.c"
+}
+
+
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_new (const gchar* message_string) {
+#line 35 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return data_imports_ui_static_message_pane_construct (DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, message_string);
+#line 514 "DataImportsUI.c"
+}
+
+
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_construct_with_pango (GType object_type, const gchar* msg) {
+ DataImportsUIStaticMessagePane * self = NULL;
+ GtkLabel* label = NULL;
+ GtkLabel* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+ GtkBox* _tmp3_ = NULL;
+ GtkBox* _tmp4_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (msg != NULL, NULL);
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = (DataImportsUIStaticMessagePane*) data_imports_ui_concrete_dialog_pane_construct (object_type);
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = (GtkLabel*) gtk_label_new (NULL);
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ label = _tmp0_;
+#line 42 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = msg;
+#line 42 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_label_set_markup (label, _tmp1_);
+#line 43 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_label_set_line_wrap (label, TRUE);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = spit_data_imports_dialog_pane_get_widget (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_box_get_type ()) ? ((GtkBox*) _tmp2_) : NULL;
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp3_ == NULL) {
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp2_);
+#line 550 "DataImportsUI.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = _tmp3_;
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (label, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 45 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp4_);
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (label);
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return self;
+#line 562 "DataImportsUI.c"
+}
+
+
+DataImportsUIStaticMessagePane* data_imports_ui_static_message_pane_new_with_pango (const gchar* msg) {
+#line 40 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return data_imports_ui_static_message_pane_construct_with_pango (DATA_IMPORTS_UI_TYPE_STATIC_MESSAGE_PANE, msg);
+#line 569 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_static_message_pane_class_init (DataImportsUIStaticMessagePaneClass * klass) {
+#line 34 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_static_message_pane_parent_class = g_type_class_peek_parent (klass);
+#line 576 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_static_message_pane_instance_init (DataImportsUIStaticMessagePane * self) {
+}
+
+
+GType data_imports_ui_static_message_pane_get_type (void) {
+ static volatile gsize data_imports_ui_static_message_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&data_imports_ui_static_message_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataImportsUIStaticMessagePaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_imports_ui_static_message_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataImportsUIStaticMessagePane), 0, (GInstanceInitFunc) data_imports_ui_static_message_pane_instance_init, NULL };
+ GType data_imports_ui_static_message_pane_type_id;
+ data_imports_ui_static_message_pane_type_id = g_type_register_static (DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, "DataImportsUIStaticMessagePane", &g_define_type_info, 0);
+ g_once_init_leave (&data_imports_ui_static_message_pane_type_id__volatile, data_imports_ui_static_message_pane_type_id);
+ }
+ return data_imports_ui_static_message_pane_type_id__volatile;
+}
+
+
+static Block10Data* block10_data_ref (Block10Data* _data10_) {
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_atomic_int_inc (&_data10_->_ref_count_);
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return _data10_;
+#line 601 "DataImportsUI.c"
+}
+
+
+static void block10_data_unref (void * _userdata_) {
+ Block10Data* _data10_;
+ _data10_ = (Block10Data*) _userdata_;
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (g_atomic_int_dec_and_test (&_data10_->_ref_count_)) {
+#line 610 "DataImportsUI.c"
+ DataImportsUILibrarySelectionPane* self;
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = _data10_->self;
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_data10_->file_chooser);
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self);
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_slice_free (Block10Data, _data10_);
+#line 620 "DataImportsUI.c"
+ }
+}
+
+
+static void ___lambda19_ (Block10Data* _data10_) {
+ DataImportsUILibrarySelectionPane* self;
+ GtkFileChooserButton* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GtkRadioButton* _tmp2_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = _data10_->self;
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = _data10_->file_chooser;
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = gtk_file_chooser_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->selected_file);
+#line 102 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->selected_file = _tmp1_;
+#line 103 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = self->priv->file_radio;
+#line 103 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp2_ != NULL) {
+#line 644 "DataImportsUI.c"
+ GtkRadioButton* _tmp3_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = self->priv->file_radio;
+#line 104 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 650 "DataImportsUI.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_library_selection_pane_set_import_button_sensitivity (self);
+#line 654 "DataImportsUI.c"
+}
+
+
+static void ____lambda19__gtk_file_chooser_selection_changed (GtkFileChooser* _sender, gpointer self) {
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ ___lambda19_ (self);
+#line 661 "DataImportsUI.c"
+}
+
+
+static void __lambda20_ (DataImportsUILibrarySelectionPane* self) {
+ SpitDataImportsImportableLibrary* _tmp0_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->selected_library;
+#line 114 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp0_ != NULL) {
+#line 671 "DataImportsUI.c"
+ SpitDataImportsImportableLibrary* _tmp1_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = self->priv->selected_library;
+#line 115 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_library_selection_pane_on_library_selected (self, _tmp1_);
+#line 677 "DataImportsUI.c"
+ } else {
+ GFile* _tmp2_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = self->priv->selected_file;
+#line 116 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp2_ != NULL) {
+#line 684 "DataImportsUI.c"
+ GFile* _tmp3_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = self->priv->selected_file;
+#line 117 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_library_selection_pane_on_file_selected (self, _tmp3_);
+#line 690 "DataImportsUI.c"
+ } else {
+#line 119 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_debug ("DataImportsUI.vala:119: LibrarySelectionPane: Library or file should b" \
+"e selected.");
+#line 694 "DataImportsUI.c"
+ }
+ }
+}
+
+
+static void ___lambda20__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 113 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ __lambda20_ ((DataImportsUILibrarySelectionPane*) self);
+#line 703 "DataImportsUI.c"
+}
+
+
+DataImportsUILibrarySelectionPane* data_imports_ui_library_selection_pane_construct (GType object_type, SpitDataImportsPluginHost* host, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label) {
+ DataImportsUILibrarySelectionPane * self = NULL;
+ gboolean _tmp0_ = FALSE;
+ SpitDataImportsImportableLibrary** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ SpitDataImportsPluginHost* _tmp2_ = NULL;
+ GtkBox* content_box = NULL;
+ GtkBox* _tmp3_ = NULL;
+ GtkBox* _tmp4_ = NULL;
+ GtkBox* _tmp5_ = NULL;
+ GtkLabel* welcome_label = NULL;
+ GtkLabel* _tmp6_ = NULL;
+ GtkLabel* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkLabel* _tmp9_ = NULL;
+ GtkLabel* _tmp10_ = NULL;
+ GtkBox* _tmp11_ = NULL;
+ GtkLabel* _tmp12_ = NULL;
+ gint radio_margin_left = 0;
+ gint radio_margin_right = 0;
+ gint chooser_margin_left = 0;
+ gint _tmp13_ = 0;
+ gint chooser_margin_right = 0;
+ gint _tmp14_ = 0;
+ GtkRadioButton* lib_radio = NULL;
+ SpitDataImportsImportableLibrary** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ const gchar* _tmp37_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ GtkButton* _tmp48_ = NULL;
+ GtkButton* _tmp49_ = NULL;
+ GtkButtonBox* button_box = NULL;
+ GtkButtonBox* _tmp50_ = NULL;
+ GtkButton* _tmp51_ = NULL;
+ GtkBox* _tmp52_ = NULL;
+ GtkWidget* _tmp53_ = NULL;
+ GtkBox* _tmp54_ = NULL;
+ GtkBox* _tmp55_ = NULL;
+ GtkBox* _tmp56_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (host), NULL);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (welcome_message != NULL, NULL);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = (DataImportsUILibrarySelectionPane*) data_imports_ui_concrete_dialog_pane_construct (object_type);
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = discovered_libraries;
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1__length1 = discovered_libraries_length1;
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp1__length1 > 0) {
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = TRUE;
+#line 760 "DataImportsUI.c"
+ } else {
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = data_imports_ui_library_selection_pane_on_file_selected != NULL;
+#line 764 "DataImportsUI.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _vala_assert (_tmp0_, "discovered_libraries.length > 0 || on_file_selected != null");
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = host;
+#line 64 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->host = _tmp2_;
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp3_);
+#line 66 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ content_box = _tmp3_;
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = content_box;
+#line 67 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_margin_left (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), 30);
+#line 68 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp5_ = content_box;
+#line 68 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), 30);
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp6_ = (GtkLabel*) gtk_label_new (NULL);
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp6_);
+#line 69 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ welcome_label = _tmp6_;
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp7_ = welcome_label;
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp8_ = welcome_message;
+#line 70 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_label_set_markup (_tmp7_, _tmp8_);
+#line 71 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp9_ = welcome_label;
+#line 71 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_label_set_line_wrap (_tmp9_, TRUE);
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp10_ = welcome_label;
+#line 72 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_halign (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), GTK_ALIGN_START);
+#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp11_ = content_box;
+#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp12_ = welcome_label;
+#line 73 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 6);
+#line 76 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ radio_margin_left = 20;
+#line 77 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ radio_margin_right = 20;
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp13_ = radio_margin_left;
+#line 78 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ chooser_margin_left = _tmp13_;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp14_ = radio_margin_right;
+#line 79 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ chooser_margin_right = _tmp14_;
+#line 81 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ lib_radio = NULL;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp15_ = discovered_libraries;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp15__length1 = discovered_libraries_length1;
+#line 82 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp15__length1 > 0) {
+#line 832 "DataImportsUI.c"
+ gint _tmp16_ = 0;
+ SpitDataImportsImportableLibrary** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ const gchar* _tmp28_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp16_ = radio_margin_left;
+#line 83 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ chooser_margin_left = _tmp16_ + 20;
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp17_ = discovered_libraries;
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp17__length1 = discovered_libraries_length1;
+#line 845 "DataImportsUI.c"
+ {
+ SpitDataImportsImportableLibrary** library_collection = NULL;
+ gint library_collection_length1 = 0;
+ gint _library_collection_size_ = 0;
+ gint library_it = 0;
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ library_collection = _tmp17_;
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ library_collection_length1 = _tmp17__length1;
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ for (library_it = 0; library_it < _tmp17__length1; library_it = library_it + 1) {
+#line 857 "DataImportsUI.c"
+ SpitDataImportsImportableLibrary* _tmp18_ = NULL;
+ SpitDataImportsImportableLibrary* library = NULL;
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp18_ = _g_object_ref0 (library_collection[library_it]);
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ library = _tmp18_;
+#line 864 "DataImportsUI.c"
+ {
+ gchar* lib_radio_label = NULL;
+ SpitDataImportsImportableLibrary* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GtkBox* _tmp21_ = NULL;
+ GtkRadioButton* _tmp22_ = NULL;
+ SpitDataImportsImportableLibrary* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ GtkRadioButton* _tmp27_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp19_ = library;
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp20_ = spit_data_imports_importable_library_get_display_name (_tmp19_);
+#line 85 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ lib_radio_label = _tmp20_;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp21_ = content_box;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp22_ = lib_radio;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp23_ = library;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp24_ = lib_radio_label;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp25_ = radio_margin_left;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp26_ = radio_margin_right;
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp27_ = data_imports_ui_library_selection_pane_create_radio_button (self, _tmp21_, _tmp22_, _tmp23_, _tmp24_, _tmp25_, _tmp26_);
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (lib_radio);
+#line 86 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ lib_radio = _tmp27_;
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_free0 (lib_radio_label);
+#line 84 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (library);
+#line 904 "DataImportsUI.c"
+ }
+ }
+ }
+#line 91 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp28_ = file_select_label;
+#line 91 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp28_ != NULL) {
+#line 912 "DataImportsUI.c"
+ GtkBox* _tmp29_ = NULL;
+ GtkRadioButton* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ GtkRadioButton* _tmp34_ = NULL;
+ GtkRadioButton* _tmp35_ = NULL;
+ GtkRadioButton* _tmp36_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp29_ = content_box;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp30_ = lib_radio;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp31_ = file_select_label;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp32_ = radio_margin_left;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp33_ = radio_margin_right;
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp34_ = data_imports_ui_library_selection_pane_create_radio_button (self, _tmp29_, _tmp30_, NULL, _tmp31_, _tmp32_, _tmp33_);
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (lib_radio);
+#line 92 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ lib_radio = _tmp34_;
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp35_ = lib_radio;
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp36_ = _g_object_ref0 (_tmp35_);
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->file_radio);
+#line 96 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->file_radio = _tmp36_;
+#line 945 "DataImportsUI.c"
+ }
+ }
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp37_ = file_select_label;
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp37_ != NULL) {
+#line 952 "DataImportsUI.c"
+ Block10Data* _data10_;
+ const gchar* _tmp38_ = NULL;
+ GtkFileChooserButton* _tmp39_ = NULL;
+ GtkFileChooserButton* _tmp40_ = NULL;
+ GtkFileChooserButton* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ GtkFileChooserButton* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ GtkBox* _tmp45_ = NULL;
+ GtkFileChooserButton* _tmp46_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data10_ = g_slice_new0 (Block10Data);
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data10_->_ref_count_ = 1;
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data10_->self = g_object_ref (self);
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp38_ = _ ("Database file:");
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp39_ = (GtkFileChooserButton*) gtk_file_chooser_button_new (_tmp38_, GTK_FILE_CHOOSER_ACTION_OPEN);
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp39_);
+#line 100 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data10_->file_chooser = _tmp39_;
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp40_ = _data10_->file_chooser;
+#line 101 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_signal_connect_data (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), "selection-changed", (GCallback) ____lambda19__gtk_file_chooser_selection_changed, block10_data_ref (_data10_), (GClosureNotify) block10_data_unref, 0);
+#line 107 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp41_ = _data10_->file_chooser;
+#line 107 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp42_ = chooser_margin_left;
+#line 107 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_margin_left (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_widget_get_type (), GtkWidget), _tmp42_);
+#line 108 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp43_ = _data10_->file_chooser;
+#line 108 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp44_ = chooser_margin_right;
+#line 108 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), _tmp44_);
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp45_ = content_box;
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp46_ = _data10_->file_chooser;
+#line 109 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp45_, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 6);
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ block10_data_unref (_data10_);
+#line 99 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data10_ = NULL;
+#line 1003 "DataImportsUI.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp47_ = _ ("_Import");
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp48_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp47_);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp48_);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->import_button);
+#line 112 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->import_button = _tmp48_;
+#line 113 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp49_ = self->priv->import_button;
+#line 113 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_signal_connect_object (_tmp49_, "clicked", (GCallback) ___lambda20__gtk_button_clicked, self, 0);
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp50_ = (GtkButtonBox*) gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp50_);
+#line 121 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ button_box = _tmp50_;
+#line 122 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_set (button_box, "layout-style", GTK_BUTTONBOX_CENTER, NULL);
+#line 123 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp51_ = self->priv->import_button;
+#line 123 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (button_box, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, gtk_widget_get_type (), GtkWidget));
+#line 124 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp52_ = content_box;
+#line 124 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_end (_tmp52_, G_TYPE_CHECK_INSTANCE_CAST (button_box, gtk_widget_get_type (), GtkWidget), TRUE, FALSE, (guint) 6);
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp53_ = spit_data_imports_dialog_pane_get_widget (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp54_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp53_, gtk_box_get_type ()) ? ((GtkBox*) _tmp53_) : NULL;
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp54_ == NULL) {
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp53_);
+#line 1043 "DataImportsUI.c"
+ }
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp55_ = _tmp54_;
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp56_ = content_box;
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp55_, G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 126 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp55_);
+#line 128 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_library_selection_pane_set_import_button_sensitivity (self);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (button_box);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (lib_radio);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (welcome_label);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (content_box);
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return self;
+#line 1065 "DataImportsUI.c"
+}
+
+
+DataImportsUILibrarySelectionPane* data_imports_ui_library_selection_pane_new (SpitDataImportsPluginHost* host, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label) {
+#line 56 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return data_imports_ui_library_selection_pane_construct (DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, host, welcome_message, discovered_libraries, discovered_libraries_length1, file_select_label);
+#line 1072 "DataImportsUI.c"
+}
+
+
+static Block11Data* block11_data_ref (Block11Data* _data11_) {
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_atomic_int_inc (&_data11_->_ref_count_);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return _data11_;
+#line 1081 "DataImportsUI.c"
+}
+
+
+static void block11_data_unref (void * _userdata_) {
+ Block11Data* _data11_;
+ _data11_ = (Block11Data*) _userdata_;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (g_atomic_int_dec_and_test (&_data11_->_ref_count_)) {
+#line 1090 "DataImportsUI.c"
+ DataImportsUILibrarySelectionPane* self;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = _data11_->self;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_data11_->button);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_data11_->library);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_slice_free (Block11Data, _data11_);
+#line 1102 "DataImportsUI.c"
+ }
+}
+
+
+static void __lambda18_ (Block11Data* _data11_) {
+ DataImportsUILibrarySelectionPane* self;
+ GtkRadioButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 140 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = _data11_->self;
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = _data11_->button;
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = gtk_toggle_button_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_button_get_type (), GtkToggleButton));
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = _tmp1_;
+#line 141 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp2_) {
+#line 1122 "DataImportsUI.c"
+ SpitDataImportsImportableLibrary* _tmp3_ = NULL;
+ SpitDataImportsImportableLibrary* _tmp4_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = _data11_->library;
+#line 142 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 142 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->selected_library);
+#line 142 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->selected_library = _tmp4_;
+#line 143 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_library_selection_pane_set_import_button_sensitivity (self);
+#line 1135 "DataImportsUI.c"
+ }
+}
+
+
+static void ___lambda18__gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) {
+#line 140 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ __lambda18_ (self);
+#line 1143 "DataImportsUI.c"
+}
+
+
+static GtkRadioButton* data_imports_ui_library_selection_pane_create_radio_button (DataImportsUILibrarySelectionPane* self, GtkBox* box, GtkRadioButton* group, SpitDataImportsImportableLibrary* library, const gchar* label, gint margin_left, gint margin_right) {
+ GtkRadioButton* result = NULL;
+ Block11Data* _data11_;
+ SpitDataImportsImportableLibrary* _tmp0_ = NULL;
+ SpitDataImportsImportableLibrary* _tmp1_ = NULL;
+ GtkRadioButton* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkRadioButton* _tmp4_ = NULL;
+ GtkRadioButton* _tmp5_ = NULL;
+ GtkRadioButton* _tmp9_ = NULL;
+ GtkRadioButton* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ GtkRadioButton* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ GtkBox* _tmp14_ = NULL;
+ GtkRadioButton* _tmp15_ = NULL;
+ GtkRadioButton* _tmp16_ = NULL;
+ GtkRadioButton* _tmp17_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE (self), NULL);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (GTK_IS_BOX (box), NULL);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail ((group == NULL) || GTK_IS_RADIO_BUTTON (group), NULL);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail ((library == NULL) || SPIT_DATA_IMPORTS_IS_IMPORTABLE_LIBRARY (library), NULL);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (label != NULL, NULL);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data11_ = g_slice_new0 (Block11Data);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data11_->_ref_count_ = 1;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data11_->self = g_object_ref (self);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = library;
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_data11_->library);
+#line 131 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data11_->library = _tmp1_;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = group;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = label;
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = (GtkRadioButton*) gtk_radio_button_new_with_label_from_widget (_tmp2_, _tmp3_);
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp4_);
+#line 135 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data11_->button = _tmp4_;
+#line 136 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp5_ = group;
+#line 136 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp5_ == NULL) {
+#line 1203 "DataImportsUI.c"
+ GtkRadioButton* _tmp6_ = NULL;
+ SpitDataImportsImportableLibrary* _tmp7_ = NULL;
+ SpitDataImportsImportableLibrary* _tmp8_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp6_ = _data11_->button;
+#line 137 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_toggle_button_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_toggle_button_get_type (), GtkToggleButton), TRUE);
+#line 138 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp7_ = _data11_->library;
+#line 138 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp8_ = _g_object_ref0 (_tmp7_);
+#line 138 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->selected_library);
+#line 138 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->selected_library = _tmp8_;
+#line 1219 "DataImportsUI.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp9_ = _data11_->button;
+#line 140 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_signal_connect_data (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_toggle_button_get_type (), GtkToggleButton), "toggled", (GCallback) ___lambda18__gtk_toggle_button_toggled, block11_data_ref (_data11_), (GClosureNotify) block11_data_unref, 0);
+#line 147 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp10_ = _data11_->button;
+#line 147 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp11_ = margin_left;
+#line 147 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_margin_left (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), _tmp11_);
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp12_ = _data11_->button;
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp13_ = margin_right;
+#line 148 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), _tmp13_);
+#line 149 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp14_ = box;
+#line 149 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp15_ = _data11_->button;
+#line 149 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp14_, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 6);
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp16_ = _data11_->button;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp17_ = _g_object_ref0 (_tmp16_);
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ result = _tmp17_;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ block11_data_unref (_data11_);
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _data11_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return result;
+#line 1255 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_library_selection_pane_set_import_button_sensitivity (DataImportsUILibrarySelectionPane* self) {
+ gboolean _tmp0_ = FALSE;
+ SpitDataImportsImportableLibrary* _tmp1_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+#line 153 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE (self));
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = self->priv->selected_library;
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp1_ != NULL) {
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = TRUE;
+#line 1271 "DataImportsUI.c"
+ } else {
+ GFile* _tmp2_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = self->priv->selected_file;
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 1278 "DataImportsUI.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = self->priv->import_button;
+#line 154 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), _tmp0_);
+#line 1284 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_library_selection_pane_on_library_selected (DataImportsUILibrarySelectionPane* self, SpitDataImportsImportableLibrary* library) {
+ SpitDataImportsPluginHost* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ SpitDataImportsDataImporter* _tmp2_ = NULL;
+ SpitDataImportsImportableLibrary* _tmp3_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE (self));
+#line 157 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_LIBRARY (library));
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->host;
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = spit_data_imports_plugin_host_get_data_importer (_tmp0_);
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = _tmp1_;
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = library;
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ spit_data_imports_data_importer_on_library_selected (_tmp2_, _tmp3_);
+#line 158 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1309 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_library_selection_pane_on_file_selected (DataImportsUILibrarySelectionPane* self, GFile* file) {
+ SpitDataImportsPluginHost* _tmp0_ = NULL;
+ SpitDataImportsDataImporter* _tmp1_ = NULL;
+ SpitDataImportsDataImporter* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_LIBRARY_SELECTION_PANE (self));
+#line 161 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->host;
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = spit_data_imports_plugin_host_get_data_importer (_tmp0_);
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = _tmp1_;
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = file;
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ spit_data_imports_data_importer_on_file_selected (_tmp2_, _tmp3_);
+#line 162 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1334 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_library_selection_pane_class_init (DataImportsUILibrarySelectionPaneClass * klass) {
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_library_selection_pane_parent_class = g_type_class_peek_parent (klass);
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_type_class_add_private (klass, sizeof (DataImportsUILibrarySelectionPanePrivate));
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_imports_ui_library_selection_pane_finalize;
+#line 1345 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_library_selection_pane_instance_init (DataImportsUILibrarySelectionPane * self) {
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv = DATA_IMPORTS_UI_LIBRARY_SELECTION_PANE_GET_PRIVATE (self);
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->selected_library = NULL;
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->selected_file = NULL;
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->file_radio = NULL;
+#line 1358 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_library_selection_pane_finalize (GObject* obj) {
+ DataImportsUILibrarySelectionPane * self;
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DATA_IMPORTS_UI_TYPE_LIBRARY_SELECTION_PANE, DataImportsUILibrarySelectionPane);
+#line 51 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->selected_library);
+#line 52 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->selected_file);
+#line 53 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->import_button);
+#line 54 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->file_radio);
+#line 49 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (data_imports_ui_library_selection_pane_parent_class)->finalize (obj);
+#line 1376 "DataImportsUI.c"
+}
+
+
+GType data_imports_ui_library_selection_pane_get_type (void) {
+ static volatile gsize data_imports_ui_library_selection_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&data_imports_ui_library_selection_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataImportsUILibrarySelectionPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_imports_ui_library_selection_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataImportsUILibrarySelectionPane), 0, (GInstanceInitFunc) data_imports_ui_library_selection_pane_instance_init, NULL };
+ GType data_imports_ui_library_selection_pane_type_id;
+ data_imports_ui_library_selection_pane_type_id = g_type_register_static (DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, "DataImportsUILibrarySelectionPane", &g_define_type_info, 0);
+ g_once_init_leave (&data_imports_ui_library_selection_pane_type_id__volatile, data_imports_ui_library_selection_pane_type_id);
+ }
+ return data_imports_ui_library_selection_pane_type_id__volatile;
+}
+
+
+DataImportsUIProgressPane* data_imports_ui_progress_pane_construct (GType object_type, const gchar* message) {
+ DataImportsUIProgressPane * self = NULL;
+ GtkBox* content_box = NULL;
+ GtkBox* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkLabel* _tmp2_ = NULL;
+ GtkLabel* _tmp3_ = NULL;
+ GtkProgressBar* _tmp4_ = NULL;
+ GtkProgressBar* _tmp5_ = NULL;
+ GtkLabel* _tmp6_ = NULL;
+ GtkLabel* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ GtkContainer* _tmp9_ = NULL;
+ GtkContainer* _tmp10_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (message != NULL, NULL);
+#line 171 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = (DataImportsUIProgressPane*) data_imports_ui_concrete_dialog_pane_construct (object_type);
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp0_);
+#line 172 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ content_box = _tmp0_;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = message;
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = (GtkLabel*) gtk_label_new (_tmp1_);
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp2_);
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->message_label);
+#line 173 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->message_label = _tmp2_;
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = self->priv->message_label;
+#line 174 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (content_box, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 6);
+#line 175 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = (GtkProgressBar*) gtk_progress_bar_new ();
+#line 175 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp4_);
+#line 175 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->progress_bar);
+#line 175 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->progress_bar = _tmp4_;
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp5_ = self->priv->progress_bar;
+#line 176 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (content_box, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), FALSE, TRUE, (guint) 6);
+#line 177 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp6_ = (GtkLabel*) gtk_label_new ("");
+#line 177 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp6_);
+#line 177 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->progress_label);
+#line 177 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->progress_label = _tmp6_;
+#line 178 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp7_ = self->priv->progress_label;
+#line 178 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (content_box, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), FALSE, TRUE, (guint) 6);
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp8_ = spit_data_imports_dialog_pane_get_widget (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, gtk_container_get_type ()) ? ((GtkContainer*) _tmp8_) : NULL;
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp9_ == NULL) {
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp8_);
+#line 1462 "DataImportsUI.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp10_ = _tmp9_;
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_add (_tmp10_, G_TYPE_CHECK_INSTANCE_CAST (content_box, gtk_widget_get_type (), GtkWidget));
+#line 180 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp10_);
+#line 171 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (content_box);
+#line 171 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return self;
+#line 1474 "DataImportsUI.c"
+}
+
+
+DataImportsUIProgressPane* data_imports_ui_progress_pane_new (const gchar* message) {
+#line 171 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return data_imports_ui_progress_pane_construct (DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, message);
+#line 1481 "DataImportsUI.c"
+}
+
+
+void data_imports_ui_progress_pane_update_progress (DataImportsUIProgressPane* self, gdouble progress, const gchar* progress_message) {
+ GtkProgressBar* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ const gchar* _tmp2_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_PROGRESS_PANE (self));
+#line 184 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->progress_bar;
+#line 184 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = progress;
+#line 184 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_progress_bar_set_fraction (_tmp0_, _tmp1_);
+#line 185 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = progress_message;
+#line 185 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp2_ != NULL) {
+#line 1501 "DataImportsUI.c"
+ GtkLabel* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = self->priv->progress_label;
+#line 186 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = progress_message;
+#line 186 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_label_set_label (_tmp3_, _tmp4_);
+#line 1510 "DataImportsUI.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ spin_event_loop ();
+#line 1514 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_progress_pane_class_init (DataImportsUIProgressPaneClass * klass) {
+#line 166 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_progress_pane_parent_class = g_type_class_peek_parent (klass);
+#line 166 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_type_class_add_private (klass, sizeof (DataImportsUIProgressPanePrivate));
+#line 166 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_imports_ui_progress_pane_finalize;
+#line 1525 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_progress_pane_instance_init (DataImportsUIProgressPane * self) {
+#line 166 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv = DATA_IMPORTS_UI_PROGRESS_PANE_GET_PRIVATE (self);
+#line 1532 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_progress_pane_finalize (GObject* obj) {
+ DataImportsUIProgressPane * self;
+#line 166 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DATA_IMPORTS_UI_TYPE_PROGRESS_PANE, DataImportsUIProgressPane);
+#line 167 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->message_label);
+#line 168 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->progress_label);
+#line 169 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->progress_bar);
+#line 166 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (data_imports_ui_progress_pane_parent_class)->finalize (obj);
+#line 1548 "DataImportsUI.c"
+}
+
+
+GType data_imports_ui_progress_pane_get_type (void) {
+ static volatile gsize data_imports_ui_progress_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&data_imports_ui_progress_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataImportsUIProgressPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_imports_ui_progress_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataImportsUIProgressPane), 0, (GInstanceInitFunc) data_imports_ui_progress_pane_instance_init, NULL };
+ GType data_imports_ui_progress_pane_type_id;
+ data_imports_ui_progress_pane_type_id = g_type_register_static (DATA_IMPORTS_UI_TYPE_CONCRETE_DIALOG_PANE, "DataImportsUIProgressPane", &g_define_type_info, 0);
+ g_once_init_leave (&data_imports_ui_progress_pane_type_id__volatile, data_imports_ui_progress_pane_type_id);
+ }
+ return data_imports_ui_progress_pane_type_id__volatile;
+}
+
+
+static gboolean _data_imports_ui_data_imports_dialog_on_window_close_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = data_imports_ui_data_imports_dialog_on_window_close ((DataImportsUIDataImportsDialog*) self, event);
+#line 218 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return result;
+#line 1569 "DataImportsUI.c"
+}
+
+
+static void _data_imports_ui_data_imports_dialog_on_service_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 251 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_on_service_changed ((DataImportsUIDataImportsDialog*) self);
+#line 1576 "DataImportsUI.c"
+}
+
+
+static void _data_imports_ui_data_imports_dialog_on_close_cancel_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 291 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_on_close_cancel_clicked ((DataImportsUIDataImportsDialog*) self);
+#line 1583 "DataImportsUI.c"
+}
+
+
+DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_construct (GType object_type) {
+ DataImportsUIDataImportsDialog * self = NULL;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gchar* title = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* label = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ SpitDataImportsService** loaded_services = NULL;
+ gint _tmp10_ = 0;
+ SpitDataImportsService** _tmp11_ = NULL;
+ gint loaded_services_length1 = 0;
+ gint _loaded_services_size_ = 0;
+ SpitDataImportsService** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkBox* _tmp64_ = NULL;
+ GtkBox* _tmp65_ = NULL;
+ GtkBox* _tmp66_ = NULL;
+ GtkButton* _tmp67_ = NULL;
+ GtkButton* _tmp68_ = NULL;
+ GtkButton* _tmp69_ = NULL;
+ gboolean _tmp70_ = FALSE;
+ SpitDataImportsService** _tmp77_ = NULL;
+ gint _tmp77__length1 = 0;
+#line 212 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = gtk_settings_get_default ();
+#line 212 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 213 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = use_header;
+#line 213 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp2_) {
+#line 213 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = 1;
+#line 1627 "DataImportsUI.c"
+ } else {
+#line 213 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = 0;
+#line 1631 "DataImportsUI.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = (DataImportsUIDataImportsDialog*) g_object_new (object_type, "use-header-bar", _tmp1_, NULL);
+#line 214 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = use_header;
+#line 214 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp3_) {
+#line 1639 "DataImportsUI.c"
+ GtkWidget* _tmp4_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = gtk_dialog_get_header_bar (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 215 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_header_bar_set_show_close_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_header_bar_get_type (), GtkHeaderBar), FALSE);
+#line 1645 "DataImportsUI.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 218 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "delete-event", (GCallback) _data_imports_ui_data_imports_dialog_on_window_close_gtk_widget_delete_event, self, 0);
+#line 220 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp5_ = _ ("Import From Application");
+#line 220 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 220 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ title = _tmp6_;
+#line 221 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp7_ = _ ("Import media _from:");
+#line 221 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 221 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ label = _tmp8_;
+#line 223 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp9_ = title;
+#line 223 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp9_);
+#line 225 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp11_ = spit_data_imports_load_services (FALSE, &_tmp10_);
+#line 225 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ loaded_services = _tmp11_;
+#line 225 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ loaded_services_length1 = _tmp10_;
+#line 225 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _loaded_services_size_ = loaded_services_length1;
+#line 227 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp12_ = loaded_services;
+#line 227 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp12__length1 = loaded_services_length1;
+#line 227 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp12__length1 > 0) {
+#line 1681 "DataImportsUI.c"
+ GtkComboBoxText* _tmp13_ = NULL;
+ GtkComboBoxText* _tmp14_ = NULL;
+ gchar* last_used_service = NULL;
+ ConfigFacade* _tmp15_ = NULL;
+ ConfigFacade* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gint ticker = 0;
+ gint last_used_index = 0;
+ SpitDataImportsService** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gint _tmp33_ = 0;
+ GtkComboBoxText* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+#line 230 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp13_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 230 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp13_);
+#line 230 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->service_selector_box);
+#line 230 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->service_selector_box = _tmp13_;
+#line 231 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp14_ = self->priv->service_selector_box;
+#line 231 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 234 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp15_ = config_facade_get_instance ();
+#line 234 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp16_ = _tmp15_;
+#line 234 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp17_ = configuration_facade_get_last_used_dataimports_service (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 234 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp18_ = _tmp17_;
+#line 234 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp16_);
+#line 234 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ last_used_service = _tmp18_;
+#line 236 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ ticker = 0;
+#line 237 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ last_used_index = -1;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp19_ = loaded_services;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp19__length1 = loaded_services_length1;
+#line 1728 "DataImportsUI.c"
+ {
+ SpitDataImportsService** service_collection = NULL;
+ gint service_collection_length1 = 0;
+ gint _service_collection_size_ = 0;
+ gint service_it = 0;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_collection = _tmp19_;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_collection_length1 = _tmp19__length1;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ for (service_it = 0; service_it < _tmp19__length1; service_it = service_it + 1) {
+#line 1740 "DataImportsUI.c"
+ SpitDataImportsService* _tmp20_ = NULL;
+ SpitDataImportsService* service = NULL;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp20_ = _g_object_ref0 (service_collection[service_it]);
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service = _tmp20_;
+#line 1747 "DataImportsUI.c"
+ {
+ gchar* curr_service_id = NULL;
+ SpitDataImportsService* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ const gchar* _tmp25_ = NULL;
+ GtkComboBoxText* _tmp29_ = NULL;
+ SpitDataImportsService* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+#line 239 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp21_ = service;
+#line 239 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp22_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 239 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp23_ = g_strdup (_tmp22_);
+#line 239 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ curr_service_id = _tmp23_;
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp25_ = last_used_service;
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp25_ != NULL) {
+#line 1771 "DataImportsUI.c"
+ const gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp26_ = last_used_service;
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp27_ = curr_service_id;
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp24_ = g_strcmp0 (_tmp26_, _tmp27_) == 0;
+#line 1780 "DataImportsUI.c"
+ } else {
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp24_ = FALSE;
+#line 1784 "DataImportsUI.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp24_) {
+#line 1788 "DataImportsUI.c"
+ gint _tmp28_ = 0;
+#line 241 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp28_ = ticker;
+#line 241 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ last_used_index = _tmp28_;
+#line 1794 "DataImportsUI.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp29_ = self->priv->service_selector_box;
+#line 243 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp30_ = service;
+#line 243 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp31_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 243 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_combo_box_text_append_text (_tmp29_, _tmp31_);
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp32_ = ticker;
+#line 244 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ ticker = _tmp32_ + 1;
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_free0 (curr_service_id);
+#line 238 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service);
+#line 1812 "DataImportsUI.c"
+ }
+ }
+ }
+#line 246 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp33_ = last_used_index;
+#line 246 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp33_ >= 0) {
+#line 1820 "DataImportsUI.c"
+ GtkComboBoxText* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+#line 247 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp34_ = self->priv->service_selector_box;
+#line 247 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp35_ = last_used_index;
+#line 247 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_combo_box_get_type (), GtkComboBox), _tmp35_);
+#line 1829 "DataImportsUI.c"
+ } else {
+ GtkComboBoxText* _tmp36_ = NULL;
+#line 249 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp36_ = self->priv->service_selector_box;
+#line 249 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 1836 "DataImportsUI.c"
+ }
+#line 251 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp37_ = self->priv->service_selector_box;
+#line 251 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _data_imports_ui_data_imports_dialog_on_service_changed_gtk_combo_box_changed, self, 0);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp38_ = use_header;
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (!_tmp38_) {
+#line 1846 "DataImportsUI.c"
+ GtkLabel* service_selector_box_label = NULL;
+ const gchar* _tmp39_ = NULL;
+ GtkLabel* _tmp40_ = NULL;
+ GtkLabel* _tmp41_ = NULL;
+ GtkComboBoxText* _tmp42_ = NULL;
+ GtkLabel* _tmp43_ = NULL;
+ GtkAlignment* service_selector_box_wrapper = NULL;
+ GtkAlignment* _tmp44_ = NULL;
+ GtkAlignment* _tmp45_ = NULL;
+ GtkComboBoxText* _tmp46_ = NULL;
+ GtkBox* service_selector_layouter = NULL;
+ GtkBox* _tmp47_ = NULL;
+ GtkBox* _tmp48_ = NULL;
+ GtkBox* _tmp49_ = NULL;
+ GtkLabel* _tmp50_ = NULL;
+ GtkBox* _tmp51_ = NULL;
+ GtkAlignment* _tmp52_ = NULL;
+ GtkBox* service_area_layouter = NULL;
+ GtkBox* _tmp53_ = NULL;
+ GtkBox* _tmp54_ = NULL;
+ GtkBox* _tmp55_ = NULL;
+ GtkSeparator* service_central_separator = NULL;
+ GtkSeparator* _tmp56_ = NULL;
+ GtkBox* _tmp57_ = NULL;
+ GtkSeparator* _tmp58_ = NULL;
+ GtkAlignment* service_area_wrapper = NULL;
+ GtkAlignment* _tmp59_ = NULL;
+ GtkAlignment* _tmp60_ = NULL;
+ GtkBox* _tmp61_ = NULL;
+ GtkBox* _tmp62_ = NULL;
+ GtkAlignment* _tmp63_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp39_ = label;
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp40_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp39_);
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp40_);
+#line 255 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_selector_box_label = _tmp40_;
+#line 256 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp41_ = service_selector_box_label;
+#line 256 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp42_ = self->priv->service_selector_box;
+#line 256 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_label_set_mnemonic_widget (_tmp41_, G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget));
+#line 257 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp43_ = service_selector_box_label;
+#line 257 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 263 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp44_ = (GtkAlignment*) gtk_alignment_new (1.0f, 0.5f, 0.0f, 0.0f);
+#line 263 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp44_);
+#line 263 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_selector_box_wrapper = _tmp44_;
+#line 264 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp45_ = service_selector_box_wrapper;
+#line 264 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp46_ = self->priv->service_selector_box;
+#line 264 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp45_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget));
+#line 266 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp47_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
+#line 266 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp47_);
+#line 266 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_selector_layouter = _tmp47_;
+#line 267 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp48_ = service_selector_layouter;
+#line 267 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_container_get_type (), GtkContainer), (guint) 12);
+#line 268 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp49_ = service_selector_layouter;
+#line 268 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp50_ = service_selector_box_label;
+#line 268 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_widget_get_type (), GtkWidget));
+#line 269 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp51_ = service_selector_layouter;
+#line 269 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp52_ = service_selector_box_wrapper;
+#line 269 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp51_, G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 273 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp53_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 273 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp53_);
+#line 273 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_area_layouter = _tmp53_;
+#line 274 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp54_ = service_area_layouter;
+#line 274 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp55_ = service_selector_layouter;
+#line 274 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp54_, G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 275 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp56_ = (GtkSeparator*) gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+#line 275 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp56_);
+#line 275 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_central_separator = _tmp56_;
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp57_ = service_area_layouter;
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp58_ = service_central_separator;
+#line 276 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, gtk_widget_get_type (), GtkWidget));
+#line 278 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp59_ = (GtkAlignment*) gtk_alignment_new (0.0f, 0.0f, 1.0f, 0.0f);
+#line 278 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp59_);
+#line 278 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_area_wrapper = _tmp59_;
+#line 279 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp60_ = service_area_wrapper;
+#line 279 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp61_ = service_area_layouter;
+#line 279 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp60_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, gtk_widget_get_type (), GtkWidget));
+#line 281 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp62_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 281 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp63_ = service_area_wrapper;
+#line 281 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, gtk_box_get_type (), GtkBox), G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service_area_wrapper);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service_central_separator);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service_area_layouter);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service_selector_layouter);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service_selector_box_wrapper);
+#line 253 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service_selector_box_label);
+#line 1984 "DataImportsUI.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_free0 (last_used_service);
+#line 1988 "DataImportsUI.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp64_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 286 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp64_);
+#line 286 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->central_area_layouter);
+#line 286 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->central_area_layouter = _tmp64_;
+#line 287 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp65_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 287 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp66_ = self->priv->central_area_layouter;
+#line 287 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp65_, gtk_box_get_type (), GtkBox), G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 289 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp67_ = (GtkButton*) gtk_button_new_with_mnemonic ("_Cancel");
+#line 289 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp67_);
+#line 289 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->close_cancel_button);
+#line 289 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->close_cancel_button = _tmp67_;
+#line 290 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp68_ = self->priv->close_cancel_button;
+#line 290 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_can_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp68_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 291 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp69_ = self->priv->close_cancel_button;
+#line 291 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_signal_connect_object (_tmp69_, "clicked", (GCallback) _data_imports_ui_data_imports_dialog_on_close_cancel_clicked_gtk_button_clicked, self, 0);
+#line 293 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp70_ = use_header;
+#line 293 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp70_) {
+#line 2024 "DataImportsUI.c"
+ GtkWidget* _tmp71_ = NULL;
+ GtkButton* _tmp72_ = NULL;
+ GtkWidget* _tmp73_ = NULL;
+ GtkComboBoxText* _tmp74_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp71_ = gtk_dialog_get_header_bar (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp72_ = self->priv->close_cancel_button;
+#line 294 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_header_bar_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp71_, gtk_header_bar_get_type (), GtkHeaderBar), G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, gtk_widget_get_type (), GtkWidget));
+#line 295 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp73_ = gtk_dialog_get_header_bar (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 295 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp74_ = self->priv->service_selector_box;
+#line 295 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_header_bar_pack_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp73_, gtk_header_bar_get_type (), GtkHeaderBar), G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, gtk_widget_get_type (), GtkWidget));
+#line 2041 "DataImportsUI.c"
+ } else {
+ GtkWidget* _tmp75_ = NULL;
+ GtkButton* _tmp76_ = NULL;
+#line 298 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp75_ = gtk_dialog_get_action_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 298 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp76_ = self->priv->close_cancel_button;
+#line 298 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, gtk_box_get_type (), GtkBox), gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, gtk_widget_get_type (), GtkWidget));
+#line 2051 "DataImportsUI.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_set_standard_window_mode (self);
+#line 302 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp77_ = loaded_services;
+#line 302 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp77__length1 = loaded_services_length1;
+#line 302 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp77__length1 > 0) {
+#line 304 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_on_service_changed (self);
+#line 2063 "DataImportsUI.c"
+ } else {
+ DataImportsUIStaticMessagePane* _tmp78_ = NULL;
+ DataImportsUIStaticMessagePane* _tmp79_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp78_ = data_imports_ui_static_message_pane_new_with_pango (DATA_IMPORTS_UI_NO_PLUGINS_ENABLED_MESSAGE);
+#line 307 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp79_ = _tmp78_;
+#line 307 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_install_pane (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp79_, SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane));
+#line 307 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp79_);
+#line 308 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_set_close_button_mode (self);
+#line 2077 "DataImportsUI.c"
+ }
+#line 311 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ loaded_services = (_vala_array_free (loaded_services, loaded_services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_free0 (label);
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_free0 (title);
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return self;
+#line 2089 "DataImportsUI.c"
+}
+
+
+DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_new (void) {
+#line 210 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return data_imports_ui_data_imports_dialog_construct (DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG);
+#line 2096 "DataImportsUI.c"
+}
+
+
+DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_get_or_create_instance (void) {
+ DataImportsUIDataImportsDialog* result = NULL;
+ DataImportsUIDataImportsDialog* _tmp0_ = NULL;
+ DataImportsUIDataImportsDialog* _tmp2_ = NULL;
+ DataImportsUIDataImportsDialog* _tmp3_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = data_imports_ui_data_imports_dialog_instance;
+#line 315 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp0_ == NULL) {
+#line 2109 "DataImportsUI.c"
+ DataImportsUIDataImportsDialog* _tmp1_ = NULL;
+#line 316 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = data_imports_ui_data_imports_dialog_new ();
+#line 316 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_object_ref_sink (_tmp1_);
+#line 316 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (data_imports_ui_data_imports_dialog_instance);
+#line 316 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_instance = _tmp1_;
+#line 2119 "DataImportsUI.c"
+ }
+#line 318 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = data_imports_ui_data_imports_dialog_instance;
+#line 318 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 318 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ result = _tmp3_;
+#line 318 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return result;
+#line 2129 "DataImportsUI.c"
+}
+
+
+void data_imports_ui_data_imports_dialog_terminate_instance (void) {
+ DataImportsUIDataImportsDialog* _tmp0_ = NULL;
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = data_imports_ui_data_imports_dialog_instance;
+#line 322 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp0_ != NULL) {
+#line 2139 "DataImportsUI.c"
+ DataImportsUIDataImportsDialog* _tmp1_ = NULL;
+#line 323 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = data_imports_ui_data_imports_dialog_instance;
+#line 323 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_terminate (_tmp1_);
+#line 2145 "DataImportsUI.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (data_imports_ui_data_imports_dialog_instance);
+#line 325 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_instance = NULL;
+#line 2151 "DataImportsUI.c"
+}
+
+
+static gboolean data_imports_ui_data_imports_dialog_on_window_close (DataImportsUIDataImportsDialog* self, GdkEventAny* evt) {
+ gboolean result = FALSE;
+#line 328 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self), FALSE);
+#line 328 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (evt != NULL, FALSE);
+#line 329 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_debug ("DataImportsUI.vala:329: DataImportsDialog: on_window_close( ): invoked" \
+".");
+#line 330 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_terminate (self);
+#line 332 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ result = TRUE;
+#line 332 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return result;
+#line 2169 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_on_service_changed (DataImportsUIDataImportsDialog* self) {
+ gchar* service_name = NULL;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ SpitDataImportsService* selected_service = NULL;
+ SpitDataImportsService** services = NULL;
+ gint _tmp2_ = 0;
+ SpitDataImportsService** _tmp3_ = NULL;
+ gint services_length1 = 0;
+ gint _services_size_ = 0;
+ SpitDataImportsService** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ SpitDataImportsService* _tmp11_ = NULL;
+ ConfigFacade* _tmp12_ = NULL;
+ ConfigFacade* _tmp13_ = NULL;
+ SpitDataImportsService* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ SpitDataImportsService* _tmp16_ = NULL;
+ SpitDataImportsConcreteDataImportsHost* _tmp17_ = NULL;
+ SpitDataImportsConcreteDataImportsHost* _tmp18_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 336 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_debug ("DataImportsUI.vala:336: DataImportsDialog: on_service_changed invoked.");
+#line 337 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->service_selector_box;
+#line 337 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = gtk_combo_box_text_get_active_text (_tmp0_);
+#line 337 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_name = _tmp1_;
+#line 339 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ selected_service = NULL;
+#line 340 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = spit_data_imports_load_all_services (&_tmp2_);
+#line 340 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ services = _tmp3_;
+#line 340 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ services_length1 = _tmp2_;
+#line 340 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _services_size_ = services_length1;
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = services;
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4__length1 = services_length1;
+#line 2217 "DataImportsUI.c"
+ {
+ SpitDataImportsService** service_collection = NULL;
+ gint service_collection_length1 = 0;
+ gint _service_collection_size_ = 0;
+ gint service_it = 0;
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_collection = _tmp4_;
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service_collection_length1 = _tmp4__length1;
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ for (service_it = 0; service_it < _tmp4__length1; service_it = service_it + 1) {
+#line 2229 "DataImportsUI.c"
+ SpitDataImportsService* _tmp5_ = NULL;
+ SpitDataImportsService* service = NULL;
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp5_ = _g_object_ref0 (service_collection[service_it]);
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ service = _tmp5_;
+#line 2236 "DataImportsUI.c"
+ {
+ SpitDataImportsService* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 342 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp6_ = service;
+#line 342 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp7_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 342 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp8_ = service_name;
+#line 342 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (g_strcmp0 (_tmp7_, _tmp8_) == 0) {
+#line 2249 "DataImportsUI.c"
+ SpitDataImportsService* _tmp9_ = NULL;
+ SpitDataImportsService* _tmp10_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp9_ = service;
+#line 343 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 343 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (selected_service);
+#line 343 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ selected_service = _tmp10_;
+#line 344 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service);
+#line 344 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ break;
+#line 2264 "DataImportsUI.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (service);
+#line 2268 "DataImportsUI.c"
+ }
+ }
+ }
+#line 347 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp11_ = selected_service;
+#line 347 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _vala_assert (_tmp11_ != NULL, "selected_service != null");
+#line 349 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp12_ = config_facade_get_instance ();
+#line 349 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp13_ = _tmp12_;
+#line 349 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp14_ = selected_service;
+#line 349 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp15_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 349 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ configuration_facade_set_last_used_dataimports_service (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp15_);
+#line 349 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp13_);
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp16_ = selected_service;
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp17_ = spit_data_imports_concrete_data_imports_host_new (_tmp16_, self);
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 351 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->host = _tmp17_;
+#line 352 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp18_ = self->priv->host;
+#line 352 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ spit_data_imports_plugin_host_start_importing (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 335 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 335 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (selected_service);
+#line 335 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_free0 (service_name);
+#line 2306 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_on_close_cancel_clicked (DataImportsUIDataImportsDialog* self) {
+#line 355 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 356 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_debug ("DataImportsUI.vala:356: DataImportsDialog: on_close_cancel_clicked( ):" \
+" invoked.");
+#line 358 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_terminate (self);
+#line 2317 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_terminate (DataImportsUIDataImportsDialog* self) {
+ SpitDataImportsConcreteDataImportsHost* _tmp0_ = NULL;
+#line 361 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 362 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_debug ("DataImportsUI.vala:362: DataImportsDialog: terminate( ): invoked.");
+#line 364 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->host;
+#line 364 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp0_ != NULL) {
+#line 2331 "DataImportsUI.c"
+ SpitDataImportsConcreteDataImportsHost* _tmp1_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = self->priv->host;
+#line 365 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ spit_data_imports_plugin_host_stop_importing (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost));
+#line 366 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 366 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->host = NULL;
+#line 2341 "DataImportsUI.c"
+ }
+#line 369 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 370 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 371 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (data_imports_ui_data_imports_dialog_instance);
+#line 371 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_instance = NULL;
+#line 2351 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_set_large_window_mode (DataImportsUIDataImportsDialog* self) {
+ GtkBox* _tmp0_ = NULL;
+#line 374 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 375 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_LARGE_WINDOW_WIDTH, DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_LARGE_WINDOW_HEIGHT);
+#line 376 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->central_area_layouter;
+#line 376 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_LARGE_WINDOW_WIDTH - DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_WIDTH, DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_LARGE_WINDOW_HEIGHT - DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_HEIGHT);
+#line 378 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 2367 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_set_colossal_window_mode (DataImportsUIDataImportsDialog* self) {
+ GtkBox* _tmp0_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 382 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_COLOSSAL_WINDOW_WIDTH, DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_COLOSSAL_WINDOW_HEIGHT);
+#line 383 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->central_area_layouter;
+#line 383 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_COLOSSAL_WINDOW_WIDTH - DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_WIDTH, DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_COLOSSAL_WINDOW_HEIGHT - DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_HEIGHT);
+#line 385 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 2383 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_set_standard_window_mode (DataImportsUIDataImportsDialog* self) {
+ GtkBox* _tmp0_ = NULL;
+#line 388 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 389 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_WINDOW_WIDTH, DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_WINDOW_HEIGHT);
+#line 390 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->central_area_layouter;
+#line 390 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_WINDOW_WIDTH - DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_WIDTH, DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_STANDARD_WINDOW_HEIGHT - DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_BORDER_REGION_HEIGHT);
+#line 392 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 2399 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_set_free_sizable_window_mode (DataImportsUIDataImportsDialog* self) {
+#line 395 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 396 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 2408 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_clear_free_sizable_window_mode (DataImportsUIDataImportsDialog* self) {
+#line 399 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 400 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 2417 "DataImportsUI.c"
+}
+
+
+SpitDataImportsDialogPane* data_imports_ui_data_imports_dialog_get_active_pane (DataImportsUIDataImportsDialog* self) {
+ SpitDataImportsDialogPane* result = NULL;
+ SpitDataImportsDialogPane* _tmp0_ = NULL;
+ SpitDataImportsDialogPane* _tmp1_ = NULL;
+#line 403 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_val_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self), NULL);
+#line 404 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->active_pane;
+#line 404 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 404 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ result = _tmp1_;
+#line 404 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ return result;
+#line 2435 "DataImportsUI.c"
+}
+
+
+void data_imports_ui_data_imports_dialog_set_close_button_mode (DataImportsUIDataImportsDialog* self) {
+ GtkButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkButton* _tmp2_ = NULL;
+#line 407 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 408 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->close_cancel_button;
+#line 408 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = _ ("_Close");
+#line 408 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_button_set_label (_tmp0_, _tmp1_);
+#line 409 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = self->priv->close_cancel_button;
+#line 409 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_window_set_default (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 2455 "DataImportsUI.c"
+}
+
+
+void data_imports_ui_data_imports_dialog_set_cancel_button_mode (DataImportsUIDataImportsDialog* self) {
+ GtkButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 412 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 413 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->close_cancel_button;
+#line 413 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = _ ("_Cancel");
+#line 413 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_button_set_label (_tmp0_, _tmp1_);
+#line 2470 "DataImportsUI.c"
+}
+
+
+void data_imports_ui_data_imports_dialog_lock_service (DataImportsUIDataImportsDialog* self) {
+ GtkComboBoxText* _tmp0_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 417 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->service_selector_box;
+#line 417 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 2482 "DataImportsUI.c"
+}
+
+
+void data_imports_ui_data_imports_dialog_unlock_service (DataImportsUIDataImportsDialog* self) {
+ GtkComboBoxText* _tmp0_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 421 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->service_selector_box;
+#line 421 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 2494 "DataImportsUI.c"
+}
+
+
+void data_imports_ui_data_imports_dialog_install_pane (DataImportsUIDataImportsDialog* self, SpitDataImportsDialogPane* pane) {
+ SpitDataImportsDialogPane* _tmp0_ = NULL;
+ GtkBox* _tmp6_ = NULL;
+ SpitDataImportsDialogPane* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ GtkWidget* _tmp9_ = NULL;
+ SpitDataImportsDialogPaneGeometryOptions geometry_options = 0;
+ SpitDataImportsDialogPane* _tmp10_ = NULL;
+ SpitDataImportsDialogPaneGeometryOptions _tmp11_ = 0;
+ SpitDataImportsDialogPaneGeometryOptions _tmp12_ = 0;
+ SpitDataImportsDialogPaneGeometryOptions _tmp14_ = 0;
+ SpitDataImportsDialogPane* _tmp15_ = NULL;
+ SpitDataImportsDialogPane* _tmp16_ = NULL;
+ SpitDataImportsDialogPane* _tmp17_ = NULL;
+#line 424 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG (self));
+#line 424 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (pane));
+#line 425 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_debug ("DataImportsUI.vala:425: DataImportsDialog: install_pane( ): invoked.");
+#line 427 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp0_ = self->priv->active_pane;
+#line 427 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if (_tmp0_ != NULL) {
+#line 2522 "DataImportsUI.c"
+ SpitDataImportsDialogPane* _tmp1_ = NULL;
+ GtkBox* _tmp2_ = NULL;
+ SpitDataImportsDialogPane* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ GtkWidget* _tmp5_ = NULL;
+#line 428 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_debug ("DataImportsUI.vala:428: DataImportsDialog: install_pane( ): a pane is " \
+"already installed; removing it.");
+#line 430 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp1_ = self->priv->active_pane;
+#line 430 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ spit_data_imports_dialog_pane_on_pane_uninstalled (_tmp1_);
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp2_ = self->priv->central_area_layouter;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp3_ = self->priv->active_pane;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp4_ = spit_data_imports_dialog_pane_get_widget (_tmp3_);
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp5_ = _tmp4_;
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_container_get_type (), GtkContainer), _tmp5_);
+#line 431 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp5_);
+#line 2546 "DataImportsUI.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp6_ = self->priv->central_area_layouter;
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp7_ = pane;
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp8_ = spit_data_imports_dialog_pane_get_widget (_tmp7_);
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp9_ = _tmp8_;
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_box_pack_start (_tmp6_, _tmp9_, TRUE, TRUE, (guint) 0);
+#line 434 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (_tmp9_);
+#line 435 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 437 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp10_ = pane;
+#line 437 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp11_ = spit_data_imports_dialog_pane_get_preferred_geometry (_tmp10_);
+#line 437 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ geometry_options = _tmp11_;
+#line 439 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp12_ = geometry_options;
+#line 439 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if ((_tmp12_ & SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE) != 0) {
+#line 440 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_set_large_window_mode (self);
+#line 2574 "DataImportsUI.c"
+ } else {
+ SpitDataImportsDialogPaneGeometryOptions _tmp13_ = 0;
+#line 441 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp13_ = geometry_options;
+#line 441 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if ((_tmp13_ & SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE) != 0) {
+#line 442 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_set_colossal_window_mode (self);
+#line 2583 "DataImportsUI.c"
+ } else {
+#line 444 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_set_standard_window_mode (self);
+#line 2587 "DataImportsUI.c"
+ }
+ }
+#line 446 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp14_ = geometry_options;
+#line 446 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ if ((_tmp14_ & SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE) != 0) {
+#line 447 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_set_free_sizable_window_mode (self);
+#line 2596 "DataImportsUI.c"
+ } else {
+#line 449 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_clear_free_sizable_window_mode (self);
+#line 2600 "DataImportsUI.c"
+ }
+#line 451 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp15_ = pane;
+#line 451 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 451 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->active_pane);
+#line 451 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv->active_pane = _tmp16_;
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _tmp17_ = pane;
+#line 452 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ spit_data_imports_dialog_pane_on_pane_installed (_tmp17_);
+#line 2614 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_class_init (DataImportsUIDataImportsDialogClass * klass) {
+#line 191 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ data_imports_ui_data_imports_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 191 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ g_type_class_add_private (klass, sizeof (DataImportsUIDataImportsDialogPrivate));
+#line 191 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = data_imports_ui_data_imports_dialog_finalize;
+#line 2625 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_instance_init (DataImportsUIDataImportsDialog * self) {
+#line 191 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self->priv = DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_GET_PRIVATE (self);
+#line 2632 "DataImportsUI.c"
+}
+
+
+static void data_imports_ui_data_imports_dialog_finalize (GObject* obj) {
+ DataImportsUIDataImportsDialog * self;
+#line 191 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialog);
+#line 204 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->service_selector_box);
+#line 205 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->central_area_layouter);
+#line 206 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->close_cancel_button);
+#line 207 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->active_pane);
+#line 208 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 191 "/home/jens/Source/shotwell/src/data_imports/DataImportsUI.vala"
+ G_OBJECT_CLASS (data_imports_ui_data_imports_dialog_parent_class)->finalize (obj);
+#line 2652 "DataImportsUI.c"
+}
+
+
+GType data_imports_ui_data_imports_dialog_get_type (void) {
+ static volatile gsize data_imports_ui_data_imports_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&data_imports_ui_data_imports_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DataImportsUIDataImportsDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) data_imports_ui_data_imports_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DataImportsUIDataImportsDialog), 0, (GInstanceInitFunc) data_imports_ui_data_imports_dialog_instance_init, NULL };
+ GType data_imports_ui_data_imports_dialog_type_id;
+ data_imports_ui_data_imports_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "DataImportsUIDataImportsDialog", &g_define_type_info, 0);
+ g_once_init_leave (&data_imports_ui_data_imports_dialog_type_id__volatile, data_imports_ui_data_imports_dialog_type_id);
+ }
+ return data_imports_ui_data_imports_dialog_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/data_imports/mk/data_imports.mk b/src/data_imports/mk/data_imports.mk
deleted file mode 100644
index 771ba74..0000000
--- a/src/data_imports/mk/data_imports.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := DataImports
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := data_imports
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- DataImportsPluginHost.vala \
- DataImportsUI.vala \
- DataImportJob.vala \
- DataImportSource.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/db/DatabaseTable.c b/src/db/DatabaseTable.c
new file mode 100644
index 0000000..4e0ada2
--- /dev/null
+++ b/src/db/DatabaseTable.c
@@ -0,0 +1,2638 @@
+/* DatabaseTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from DatabaseTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sqlite3.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _sqlite3_close0(var) ((var == NULL) ? NULL : (var = (sqlite3_close (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+typedef struct _ParamSpecDatabaseTable ParamSpecDatabaseTable;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _ParamSpecDatabaseTable {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer database_table_parent_class = NULL;
+extern sqlite3* database_table_db;
+sqlite3* database_table_db = NULL;
+static gint database_table_in_transaction;
+static gint database_table_in_transaction = 0;
+
+GQuark database_error_quark (void);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+enum {
+ DATABASE_TABLE_DUMMY_PROPERTY
+};
+#define DATABASE_TABLE_SCHEMA_VERSION 20
+static void database_table_prepare_db (const gchar* filename);
+void app_window_panic (const gchar* msg);
+#define DB_IN_MEMORY_NAME ":memory:"
+void database_table_on_trace (const gchar* message);
+void database_table_init (const gchar* filename);
+void database_table_warning (const gchar* op, gint res);
+void database_table_terminate (void);
+void database_table_fatal (const gchar* op, gint res);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+void database_table_throw_error (const gchar* method, gint res, GError** error);
+gboolean database_table_exists_by_id (DatabaseTable* self, gint64 id);
+gboolean database_table_select_by_id (DatabaseTable* self, gint64 id, const gchar* columns, sqlite3_stmt** stmt);
+static void database_table_prepare_update_by_id (DatabaseTable* self, gint64 id, const gchar* column, sqlite3_stmt** stmt);
+static gboolean database_table_execute_update_by_id (DatabaseTable* self, sqlite3_stmt* stmt);
+gboolean database_table_update_text_by_id (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text);
+void database_table_update_text_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text, GError** error);
+gboolean database_table_update_int_by_id (DatabaseTable* self, gint64 id, const gchar* column, gint value);
+void database_table_update_int_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint value, GError** error);
+gboolean database_table_update_int64_by_id (DatabaseTable* self, gint64 id, const gchar* column, gint64 value);
+void database_table_update_int64_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint64 value, GError** error);
+void database_table_delete_by_id (DatabaseTable* self, gint64 id, GError** error);
+gboolean database_table_has_column (const gchar* table_name, const gchar* column_name);
+gboolean database_table_has_table (const gchar* table_name);
+gboolean database_table_add_column (const gchar* table_name, const gchar* column_name, const gchar* column_constraints);
+gboolean database_table_ensure_column (const gchar* table_name, const gchar* column_name, const gchar* column_constraints, const gchar* upgrade_msg);
+gint database_table_get_row_count (DatabaseTable* self);
+void database_table_begin_transaction (void);
+void database_table_commit_transaction (GError** error);
+DatabaseTable* database_table_construct (GType object_type);
+static void database_table_finalize (DatabaseTable* obj);
+
+
+GQuark database_error_quark (void) {
+ return g_quark_from_static_string ("database_error-quark");
+}
+
+
+static void database_table_prepare_db (const gchar* filename) {
+ gint res = 0;
+ const gchar* _tmp0_ = NULL;
+ sqlite3* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ const gchar* _tmp9_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (filename != NULL);
+#line 34 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = filename;
+#line 34 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = sqlite3_open_v2 (_tmp0_, &_tmp1_, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
+#line 34 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_close0 (database_table_db);
+#line 34 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_db = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp2_;
+#line 36 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = res;
+#line 36 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp3_ != SQLITE_OK) {
+#line 147 "DatabaseTable.c"
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = _ ("Unable to open/create photo database %s: error code %d");
+#line 37 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = filename;
+#line 37 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = res;
+#line 37 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = g_strdup_printf (_tmp4_, _tmp5_, _tmp6_);
+#line 37 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = _tmp7_;
+#line 37 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ app_window_panic (_tmp8_);
+#line 37 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp8_);
+#line 167 "DatabaseTable.c"
+ }
+#line 41 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = filename;
+#line 41 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (g_strcmp0 (_tmp9_, DB_IN_MEMORY_NAME) != 0) {
+#line 173 "DatabaseTable.c"
+ {
+ GFile* file_db = NULL;
+ const gchar* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFileInfo* info = NULL;
+ GFile* _tmp12_ = NULL;
+ GFileInfo* _tmp13_ = NULL;
+ GFileInfo* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 43 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = filename;
+#line 43 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = g_file_new_for_path (_tmp10_);
+#line 43 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ file_db = _tmp11_;
+#line 44 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = file_db;
+#line 44 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = g_file_query_info (_tmp12_, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_);
+#line 44 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ info = _tmp13_;
+#line 44 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 44 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_object_unref0 (file_db);
+#line 199 "DatabaseTable.c"
+ goto __catch13_g_error;
+ }
+#line 45 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = info;
+#line 45 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = g_file_info_get_attribute_boolean (_tmp14_, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE);
+#line 45 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (!_tmp15_) {
+#line 208 "DatabaseTable.c"
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = _ ("Unable to write to photo database file:\n %s");
+#line 46 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = filename;
+#line 46 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp18_ = g_strdup_printf (_tmp16_, _tmp17_);
+#line 46 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp19_ = _tmp18_;
+#line 46 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ app_window_panic (_tmp19_);
+#line 46 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp19_);
+#line 225 "DatabaseTable.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_object_unref0 (info);
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_object_unref0 (file_db);
+#line 231 "DatabaseTable.c"
+ }
+ goto __finally13;
+ __catch13_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GError* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ e = _inner_error_;
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp20_ = _ ("Error accessing database file:\n %s\n\nError was: \n%s");
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp21_ = filename;
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp22_ = e;
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp23_ = _tmp22_->message;
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp24_ = g_strdup_printf (_tmp20_, _tmp21_, _tmp23_);
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp25_ = _tmp24_;
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ app_window_panic (_tmp25_);
+#line 48 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp25_);
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_error_free0 (e);
+#line 265 "DatabaseTable.c"
+ }
+ __finally13:
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 42 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 276 "DatabaseTable.c"
+ }
+ }
+}
+
+
+void database_table_on_trace (const gchar* message) {
+ const gchar* _tmp0_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (message != NULL);
+#line 58 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = message;
+#line 58 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_debug ("DatabaseTable.vala:58: SQLITE: %s", _tmp0_);
+#line 290 "DatabaseTable.c"
+}
+
+
+static gint _sqlite3_exec (sqlite3* self, const gchar* sql, sqlite3_callback callback, void* callback_target, gchar** errmsg) {
+ gchar* _vala_errmsg = NULL;
+ gint result = 0;
+ const gchar* sqlite_errmsg = NULL;
+ gint ec = 0;
+ const gchar* _tmp0_ = NULL;
+ sqlite3_callback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ const gchar* _tmp6_ = NULL;
+#line 34 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 34 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ g_return_val_if_fail (sql != NULL, 0);
+#line 36 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _tmp0_ = sql;
+#line 36 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _tmp1_ = callback;
+#line 36 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _tmp1__target = callback_target;
+#line 36 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _tmp3_ = sqlite3_exec (self, _tmp0_, _tmp1_, _tmp1__target, (char**) (&_tmp2_));
+#line 36 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ sqlite_errmsg = _tmp2_;
+#line 36 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ ec = _tmp3_;
+#line 37 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ if ((&_vala_errmsg) != NULL) {
+#line 323 "DatabaseTable.c"
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 38 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _tmp4_ = sqlite_errmsg;
+#line 38 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 38 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _g_free0 (_vala_errmsg);
+#line 38 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _vala_errmsg = _tmp5_;
+#line 334 "DatabaseTable.c"
+ }
+#line 40 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _tmp6_ = sqlite_errmsg;
+#line 40 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ sqlite3_free ((void*) _tmp6_);
+#line 41 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ result = ec;
+#line 41 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ if (errmsg) {
+#line 41 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ *errmsg = _vala_errmsg;
+#line 346 "DatabaseTable.c"
+ } else {
+#line 41 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ _g_free0 (_vala_errmsg);
+#line 350 "DatabaseTable.c"
+ }
+#line 41 "/usr/share/vala-0.32/vapi/sqlite3.vapi"
+ return result;
+#line 354 "DatabaseTable.c"
+}
+
+
+void database_table_init (const gchar* filename) {
+ const gchar* _tmp0_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ sqlite3* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ GError * _inner_error_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (filename != NULL);
+#line 63 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = filename;
+#line 63 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_db (_tmp0_);
+#line 67 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = database_table_db;
+#line 67 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = sqlite3_prepare_v2 (_tmp1_, "CREATE TABLE IF NOT EXISTS VersionTable (" "id INTEGER PRIMARY KEY, " "schema_version INTEGER, " "app_version TEXT, " "user_data TEXT NULL" ")", -1, &_tmp2_, NULL);
+#line 67 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 67 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp2_;
+#line 67 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp3_;
+#line 75 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = res;
+#line 75 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp4_ != SQLITE_OK) {
+#line 390 "DatabaseTable.c"
+ gchar* backup_path = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_close0 (database_table_db);
+#line 76 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_db = NULL;
+#line 78 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = filename;
+#line 78 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = g_strconcat (_tmp5_, ".bak", NULL);
+#line 78 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ backup_path = _tmp6_;
+#line 404 "DatabaseTable.c"
+ {
+ GFile* src = NULL;
+ const gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* dest = NULL;
+ const gchar* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = backup_path;
+#line 81 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = g_file_new_for_commandline_arg (_tmp7_);
+#line 81 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ src = _tmp8_;
+#line 82 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = filename;
+#line 82 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = g_file_new_for_commandline_arg (_tmp9_);
+#line 82 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ dest = _tmp10_;
+#line 83 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = src;
+#line 83 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = dest;
+#line 83 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_file_copy (_tmp11_, _tmp12_, G_FILE_COPY_OVERWRITE | G_FILE_COPY_ALL_METADATA, NULL, NULL, NULL, &_inner_error_);
+#line 83 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 83 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_object_unref0 (dest);
+#line 83 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_object_unref0 (src);
+#line 439 "DatabaseTable.c"
+ goto __catch14_g_error;
+ }
+#line 86 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = filename;
+#line 86 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_db (_tmp13_);
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_object_unref0 (dest);
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_object_unref0 (src);
+#line 450 "DatabaseTable.c"
+ }
+ goto __finally14;
+ __catch14_g_error:
+ {
+ GError* _error_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _error_ = _inner_error_;
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = _ ("Unable to restore photo database %s");
+#line 88 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = _error_;
+#line 88 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = _tmp15_->message;
+#line 88 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = g_strdup_printf (_tmp14_, _tmp16_);
+#line 88 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp18_ = _tmp17_;
+#line 88 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ app_window_panic (_tmp18_);
+#line 88 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp18_);
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_error_free0 (_error_);
+#line 481 "DatabaseTable.c"
+ }
+ __finally14:
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (backup_path);
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 80 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 496 "DatabaseTable.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (backup_path);
+#line 500 "DatabaseTable.c"
+ }
+#line 94 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp19_ = database_table_db;
+#line 94 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp20_ = _sqlite3_exec (_tmp19_, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp20_;
+#line 95 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp21_ = res;
+#line 95 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp21_ != SQLITE_OK) {
+#line 512 "DatabaseTable.c"
+ gint _tmp22_ = 0;
+#line 96 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp22_ = res;
+#line 96 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_warning ("Unable to disable synchronous mode", _tmp22_);
+#line 518 "DatabaseTable.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 522 "DatabaseTable.c"
+}
+
+
+void database_table_terminate (void) {
+#line 101 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_close0 (database_table_db);
+#line 101 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_db = NULL;
+#line 531 "DatabaseTable.c"
+}
+
+
+void database_table_fatal (const gchar* op, gint res) {
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ sqlite3* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (op != NULL);
+#line 106 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = op;
+#line 106 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = res;
+#line 106 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = database_table_db;
+#line 106 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = sqlite3_errmsg (_tmp2_);
+#line 106 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_error ("DatabaseTable.vala:106: %s: [%d] %s", _tmp0_, _tmp1_, _tmp3_);
+#line 552 "DatabaseTable.c"
+}
+
+
+void database_table_warning (const gchar* op, gint res) {
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ sqlite3* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (op != NULL);
+#line 111 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = op;
+#line 111 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = res;
+#line 111 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = database_table_db;
+#line 111 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = sqlite3_errmsg (_tmp2_);
+#line 111 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_warning ("DatabaseTable.vala:111: %s: [%d] %s", _tmp0_, _tmp1_, _tmp3_);
+#line 573 "DatabaseTable.c"
+}
+
+
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (IS_DATABASE_TABLE (self));
+#line 114 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (table_name != NULL);
+#line 115 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = table_name;
+#line 115 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 115 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (self->table_name);
+#line 115 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ self->table_name = _tmp1_;
+#line 592 "DatabaseTable.c"
+}
+
+
+void database_table_throw_error (const gchar* method, gint res, GError** error) {
+ gchar* msg = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ sqlite3* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ GError * _inner_error_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (method != NULL);
+#line 121 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = method;
+#line 121 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = res;
+#line 121 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = database_table_db;
+#line 121 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = sqlite3_errmsg (_tmp2_);
+#line 121 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = g_strdup_printf ("(%s) [%d] - %s", _tmp0_, _tmp1_, _tmp3_);
+#line 121 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ msg = _tmp4_;
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = res;
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ switch (_tmp5_) {
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_OK:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_DONE:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_ROW:
+#line 629 "DatabaseTable.c"
+ {
+#line 127 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 127 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 635 "DatabaseTable.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_PERM:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_BUSY:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_READONLY:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_IOERR:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_CORRUPT:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_CANTOPEN:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_NOLFS:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_AUTH:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_FORMAT:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_NOTADB:
+#line 657 "DatabaseTable.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ GError* _tmp7_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = msg;
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = g_error_new_literal (DATABASE_ERROR, DATABASE_ERROR_BACKING, _tmp6_);
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = _tmp7_;
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 675 "DatabaseTable.c"
+ } else {
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 685 "DatabaseTable.c"
+ }
+ }
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_NOMEM:
+#line 690 "DatabaseTable.c"
+ {
+ const gchar* _tmp8_ = NULL;
+ GError* _tmp9_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = msg;
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = g_error_new_literal (DATABASE_ERROR, DATABASE_ERROR_MEMORY, _tmp8_);
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = _tmp9_;
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 708 "DatabaseTable.c"
+ } else {
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 142 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 718 "DatabaseTable.c"
+ }
+ }
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_ABORT:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_LOCKED:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_INTERRUPT:
+#line 727 "DatabaseTable.c"
+ {
+ const gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = msg;
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = g_error_new_literal (DATABASE_ERROR, DATABASE_ERROR_ABORT, _tmp10_);
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = _tmp11_;
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 745 "DatabaseTable.c"
+ } else {
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 147 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 755 "DatabaseTable.c"
+ }
+ }
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_FULL:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_EMPTY:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_TOOBIG:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_CONSTRAINT:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_RANGE:
+#line 768 "DatabaseTable.c"
+ {
+ const gchar* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = msg;
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = g_error_new_literal (DATABASE_ERROR, DATABASE_ERROR_LIMITS, _tmp12_);
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = _tmp13_;
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 786 "DatabaseTable.c"
+ } else {
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 154 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 796 "DatabaseTable.c"
+ }
+ }
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_SCHEMA:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_MISMATCH:
+#line 803 "DatabaseTable.c"
+ {
+ const gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = msg;
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = g_error_new_literal (DATABASE_ERROR, DATABASE_ERROR_TYPESPEC, _tmp14_);
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = _tmp15_;
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 821 "DatabaseTable.c"
+ } else {
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 158 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 831 "DatabaseTable.c"
+ }
+ }
+ default:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_ERROR:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_INTERNAL:
+#line 123 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ case SQLITE_MISUSE:
+#line 841 "DatabaseTable.c"
+ {
+ const gchar* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = msg;
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = g_error_new_literal (DATABASE_ERROR, DATABASE_ERROR_ERROR, _tmp16_);
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _inner_error_ = _tmp17_;
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 859 "DatabaseTable.c"
+ } else {
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 164 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 869 "DatabaseTable.c"
+ }
+ }
+ }
+#line 120 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (msg);
+#line 875 "DatabaseTable.c"
+}
+
+
+gboolean database_table_exists_by_id (DatabaseTable* self, gint64 id) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ gint64 _tmp9_ = 0LL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ gint _tmp15_ = 0;
+ gint _tmp24_ = 0;
+#line 168 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (IS_DATABASE_TABLE (self), FALSE);
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_db;
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = self->table_name;
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = g_strdup_printf ("SELECT id FROM %s WHERE id=?", _tmp1_);
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = _tmp2_;
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp0_, _tmp3_, -1, &_tmp4_, NULL);
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp4_;
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = _tmp5_;
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp3_);
+#line 170 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp6_;
+#line 171 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = res;
+#line 171 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 173 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = stmt;
+#line 173 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = id;
+#line 173 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp8_, 1, _tmp9_);
+#line 173 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp10_;
+#line 174 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = res;
+#line 174 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 176 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = stmt;
+#line 176 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 176 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp13_;
+#line 177 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = res;
+#line 177 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp15_ != SQLITE_ROW) {
+#line 948 "DatabaseTable.c"
+ gint _tmp16_ = 0;
+#line 177 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = res;
+#line 177 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = _tmp16_ != SQLITE_DONE;
+#line 954 "DatabaseTable.c"
+ } else {
+#line 177 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = FALSE;
+#line 958 "DatabaseTable.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp14_) {
+#line 962 "DatabaseTable.c"
+ gint64 _tmp17_ = 0LL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = id;
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp18_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp17_);
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp19_ = _tmp18_;
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp20_ = self->table_name;
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp21_ = g_strdup_printf ("exists_by_id [%s] %s", _tmp19_, _tmp20_);
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp22_ = _tmp21_;
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp23_ = res;
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_fatal (_tmp22_, _tmp23_);
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp22_);
+#line 178 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp19_);
+#line 990 "DatabaseTable.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp24_ = res;
+#line 180 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp24_ == SQLITE_ROW;
+#line 180 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 180 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1000 "DatabaseTable.c"
+}
+
+
+gboolean database_table_select_by_id (DatabaseTable* self, gint64 id, const gchar* columns, sqlite3_stmt** stmt) {
+ sqlite3_stmt* _vala_stmt = NULL;
+ gboolean result = FALSE;
+ gchar* sql = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gint res = 0;
+ sqlite3* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ sqlite3_stmt* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ gint64 _tmp9_ = 0LL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ gint _tmp15_ = 0;
+ gint _tmp25_ = 0;
+#line 183 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (IS_DATABASE_TABLE (self), FALSE);
+#line 183 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (columns != NULL, FALSE);
+#line 184 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = columns;
+#line 184 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = self->table_name;
+#line 184 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = g_strdup_printf ("SELECT %s FROM %s WHERE id=?", _tmp0_, _tmp1_);
+#line 184 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ sql = _tmp2_;
+#line 186 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = database_table_db;
+#line 186 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = sql;
+#line 186 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = sqlite3_prepare_v2 (_tmp3_, _tmp4_, -1, &_tmp5_, NULL);
+#line 186 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (_vala_stmt);
+#line 186 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_stmt = _tmp5_;
+#line 186 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp6_;
+#line 187 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = res;
+#line 187 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 189 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = _vala_stmt;
+#line 189 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = id;
+#line 189 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp8_, 1, _tmp9_);
+#line 189 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp10_;
+#line 190 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = res;
+#line 190 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 192 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = _vala_stmt;
+#line 192 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 192 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp13_;
+#line 193 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = res;
+#line 193 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp15_ != SQLITE_ROW) {
+#line 1076 "DatabaseTable.c"
+ gint _tmp16_ = 0;
+#line 193 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = res;
+#line 193 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = _tmp16_ != SQLITE_DONE;
+#line 1082 "DatabaseTable.c"
+ } else {
+#line 193 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = FALSE;
+#line 1086 "DatabaseTable.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp14_) {
+#line 1090 "DatabaseTable.c"
+ gint64 _tmp17_ = 0LL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = id;
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp18_ = g_strdup_printf ("%" G_GINT64_FORMAT, _tmp17_);
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp19_ = _tmp18_;
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp20_ = self->table_name;
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp21_ = columns;
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp22_ = g_strdup_printf ("select_by_id [%s] %s %s", _tmp19_, _tmp20_, _tmp21_);
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp23_ = _tmp22_;
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp24_ = res;
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_fatal (_tmp23_, _tmp24_);
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp23_);
+#line 194 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp19_);
+#line 1121 "DatabaseTable.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp25_ = res;
+#line 196 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp25_ == SQLITE_ROW;
+#line 196 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (sql);
+#line 196 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (stmt) {
+#line 196 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ *stmt = _vala_stmt;
+#line 1133 "DatabaseTable.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (_vala_stmt);
+#line 1137 "DatabaseTable.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1141 "DatabaseTable.c"
+}
+
+
+static void database_table_prepare_update_by_id (DatabaseTable* self, gint64 id, const gchar* column, sqlite3_stmt** stmt) {
+ sqlite3_stmt* _vala_stmt = NULL;
+ gchar* sql = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gint res = 0;
+ sqlite3* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint64 _tmp7_ = 0LL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 200 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (IS_DATABASE_TABLE (self));
+#line 200 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (column != NULL);
+#line 201 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = self->table_name;
+#line 201 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = column;
+#line 201 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = g_strdup_printf ("UPDATE %s SET %s=? WHERE id=?", _tmp0_, _tmp1_);
+#line 201 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ sql = _tmp2_;
+#line 203 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = database_table_db;
+#line 203 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp3_, sql, -1, &_tmp4_, NULL);
+#line 203 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (_vala_stmt);
+#line 203 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_stmt = _tmp4_;
+#line 203 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp5_;
+#line 204 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = res;
+#line 204 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 206 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = id;
+#line 206 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = sqlite3_bind_int64 (_vala_stmt, 2, _tmp7_);
+#line 206 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp8_;
+#line 207 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = res;
+#line 207 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 200 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (sql);
+#line 200 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (stmt) {
+#line 200 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ *stmt = _vala_stmt;
+#line 1201 "DatabaseTable.c"
+ } else {
+#line 200 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (_vala_stmt);
+#line 1205 "DatabaseTable.c"
+ }
+}
+
+
+static gboolean database_table_execute_update_by_id (DatabaseTable* self, sqlite3_stmt* stmt) {
+ gboolean result = FALSE;
+ gint res = 0;
+ sqlite3_stmt* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 210 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (IS_DATABASE_TABLE (self), FALSE);
+#line 210 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (stmt != NULL, FALSE);
+#line 211 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = stmt;
+#line 211 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = sqlite3_step (_tmp0_);
+#line 211 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp1_;
+#line 212 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = res;
+#line 212 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp2_ != SQLITE_DONE) {
+#line 1230 "DatabaseTable.c"
+ gint _tmp3_ = 0;
+#line 213 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = res;
+#line 213 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_fatal ("execute_update_by_id", _tmp3_);
+#line 215 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = FALSE;
+#line 215 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1240 "DatabaseTable.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = TRUE;
+#line 218 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1246 "DatabaseTable.c"
+}
+
+
+gboolean database_table_update_text_by_id (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint64 _tmp0_ = 0LL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint res = 0;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GDestroyNotify _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+#line 221 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (IS_DATABASE_TABLE (self), FALSE);
+#line 221 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column != NULL, FALSE);
+#line 221 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (text != NULL, FALSE);
+#line 223 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = id;
+#line 223 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = column;
+#line 223 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_update_by_id (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 223 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 223 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp2_;
+#line 225 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = text;
+#line 225 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 225 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = g_free;
+#line 225 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = sqlite3_bind_text (stmt, 1, _tmp4_, -1, _tmp5_);
+#line 225 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp6_;
+#line 226 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (res == SQLITE_OK, "res == Sqlite.OK");
+#line 228 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = database_table_execute_update_by_id (self, stmt);
+#line 228 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp7_;
+#line 228 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 228 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1298 "DatabaseTable.c"
+}
+
+
+void database_table_update_text_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint64 _tmp0_ = 0LL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint res = 0;
+ sqlite3_stmt* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GDestroyNotify _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GError * _inner_error_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (IS_DATABASE_TABLE (self));
+#line 231 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (column != NULL);
+#line 231 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (text != NULL);
+#line 233 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = id;
+#line 233 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = column;
+#line 233 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_update_by_id (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 233 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 233 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp2_;
+#line 235 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = stmt;
+#line 235 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = text;
+#line 235 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 235 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = g_free;
+#line 235 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = sqlite3_bind_text (_tmp3_, 1, _tmp5_, -1, _tmp6_);
+#line 235 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp7_;
+#line 236 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = res;
+#line 236 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 238 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = stmt;
+#line 238 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 238 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp10_;
+#line 239 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = res;
+#line 239 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp11_ != SQLITE_DONE) {
+#line 1360 "DatabaseTable.c"
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = self->table_name;
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = column;
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = g_strdup_printf ("DatabaseTable.update_text_by_id_2 %s.%s", _tmp12_, _tmp13_);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = _tmp14_;
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = res;
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_throw_error (_tmp15_, _tmp16_, &_inner_error_);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp15_);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1390 "DatabaseTable.c"
+ } else {
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 240 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1400 "DatabaseTable.c"
+ }
+ }
+ }
+#line 231 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1406 "DatabaseTable.c"
+}
+
+
+gboolean database_table_update_int_by_id (DatabaseTable* self, gint64 id, const gchar* column, gint value) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint64 _tmp0_ = 0LL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint res = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+#line 243 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (IS_DATABASE_TABLE (self), FALSE);
+#line 243 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column != NULL, FALSE);
+#line 245 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = id;
+#line 245 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = column;
+#line 245 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_update_by_id (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 245 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 245 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp2_;
+#line 247 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = value;
+#line 247 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = sqlite3_bind_int (stmt, 1, _tmp3_);
+#line 247 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp4_;
+#line 248 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (res == SQLITE_OK, "res == Sqlite.OK");
+#line 250 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = database_table_execute_update_by_id (self, stmt);
+#line 250 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp5_;
+#line 250 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 250 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1450 "DatabaseTable.c"
+}
+
+
+void database_table_update_int_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint value, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint64 _tmp0_ = 0LL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint res = 0;
+ sqlite3_stmt* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ GError * _inner_error_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (IS_DATABASE_TABLE (self));
+#line 253 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (column != NULL);
+#line 255 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = id;
+#line 255 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = column;
+#line 255 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_update_by_id (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 255 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 255 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp2_;
+#line 257 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = stmt;
+#line 257 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = value;
+#line 257 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_bind_int (_tmp3_, 1, _tmp4_);
+#line 257 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp5_;
+#line 258 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = res;
+#line 258 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 260 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = stmt;
+#line 260 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = sqlite3_step (_tmp7_);
+#line 260 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp8_;
+#line 261 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = res;
+#line 261 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp9_ != SQLITE_DONE) {
+#line 1504 "DatabaseTable.c"
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = self->table_name;
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = column;
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = g_strdup_printf ("DatabaseTable.update_int_by_id_2 %s.%s", _tmp10_, _tmp11_);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = _tmp12_;
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = res;
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_throw_error (_tmp13_, _tmp14_, &_inner_error_);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp13_);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1534 "DatabaseTable.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 262 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1544 "DatabaseTable.c"
+ }
+ }
+ }
+#line 253 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1550 "DatabaseTable.c"
+}
+
+
+gboolean database_table_update_int64_by_id (DatabaseTable* self, gint64 id, const gchar* column, gint64 value) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint64 _tmp0_ = 0LL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint res = 0;
+ gint64 _tmp3_ = 0LL;
+ gint _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+#line 265 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (IS_DATABASE_TABLE (self), FALSE);
+#line 265 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column != NULL, FALSE);
+#line 267 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = id;
+#line 267 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = column;
+#line 267 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_update_by_id (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 267 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 267 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp2_;
+#line 269 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = value;
+#line 269 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = sqlite3_bind_int64 (stmt, 1, _tmp3_);
+#line 269 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp4_;
+#line 270 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (res == SQLITE_OK, "res == Sqlite.OK");
+#line 272 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = database_table_execute_update_by_id (self, stmt);
+#line 272 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp5_;
+#line 272 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 272 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1594 "DatabaseTable.c"
+}
+
+
+void database_table_update_int64_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint64 value, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint64 _tmp0_ = 0LL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint res = 0;
+ sqlite3_stmt* _tmp3_ = NULL;
+ gint64 _tmp4_ = 0LL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ GError * _inner_error_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (IS_DATABASE_TABLE (self));
+#line 275 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (column != NULL);
+#line 277 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = id;
+#line 277 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = column;
+#line 277 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_prepare_update_by_id (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 277 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 277 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp2_;
+#line 279 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = stmt;
+#line 279 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = value;
+#line 279 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_bind_int64 (_tmp3_, 1, _tmp4_);
+#line 279 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp5_;
+#line 280 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = res;
+#line 280 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 282 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = stmt;
+#line 282 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = sqlite3_step (_tmp7_);
+#line 282 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp8_;
+#line 283 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = res;
+#line 283 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp9_ != SQLITE_DONE) {
+#line 1648 "DatabaseTable.c"
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = self->table_name;
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = column;
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = g_strdup_printf ("DatabaseTable.update_int64_by_id_2 %s.%s", _tmp10_, _tmp11_);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = _tmp12_;
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = res;
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_throw_error (_tmp13_, _tmp14_, &_inner_error_);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp13_);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1678 "DatabaseTable.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 284 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1688 "DatabaseTable.c"
+ }
+ }
+ }
+#line 275 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1694 "DatabaseTable.c"
+}
+
+
+void database_table_delete_by_id (DatabaseTable* self, gint64 id, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ gint64 _tmp9_ = 0LL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ GError * _inner_error_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (IS_DATABASE_TABLE (self));
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_db;
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = self->table_name;
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = g_strdup_printf ("DELETE FROM %s WHERE id=?", _tmp1_);
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = _tmp2_;
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp0_, _tmp3_, -1, &_tmp4_, NULL);
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp4_;
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = _tmp5_;
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp3_);
+#line 289 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp6_;
+#line 290 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = res;
+#line 290 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 292 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = stmt;
+#line 292 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = id;
+#line 292 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp8_, 1, _tmp9_);
+#line 292 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp10_;
+#line 293 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = res;
+#line 293 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 295 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = stmt;
+#line 295 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 295 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp13_;
+#line 296 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = res;
+#line 296 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp14_ != SQLITE_DONE) {
+#line 1765 "DatabaseTable.c"
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = self->table_name;
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = g_strdup_printf ("%s.remove", _tmp15_);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = _tmp16_;
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp18_ = res;
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_throw_error (_tmp17_, _tmp18_, &_inner_error_);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp17_);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1792 "DatabaseTable.c"
+ } else {
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 297 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 1802 "DatabaseTable.c"
+ }
+ }
+ }
+#line 287 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1808 "DatabaseTable.c"
+}
+
+
+gboolean database_table_has_column (const gchar* table_name, const gchar* column_name) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 300 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (table_name != NULL, FALSE);
+#line 300 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column_name != NULL, FALSE);
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_db;
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = table_name;
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = g_strdup_printf ("PRAGMA table_info(%s)", _tmp1_);
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = _tmp2_;
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp0_, _tmp3_, -1, &_tmp4_, NULL);
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp4_;
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = _tmp5_;
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp3_);
+#line 302 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp6_;
+#line 303 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = res;
+#line 303 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1852 "DatabaseTable.c"
+ {
+ gboolean _tmp8_ = FALSE;
+#line 305 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = TRUE;
+#line 305 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ while (TRUE) {
+#line 1859 "DatabaseTable.c"
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 305 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (!_tmp8_) {
+#line 1865 "DatabaseTable.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = FALSE;
+#line 306 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = stmt;
+#line 306 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 306 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp10_;
+#line 307 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = res;
+#line 307 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp11_ == SQLITE_DONE) {
+#line 308 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ break;
+#line 1881 "DatabaseTable.c"
+ } else {
+ gint _tmp12_ = 0;
+#line 309 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = res;
+#line 309 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp12_ != SQLITE_ROW) {
+#line 1888 "DatabaseTable.c"
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 310 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = table_name;
+#line 310 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = g_strdup_printf ("has_column %s", _tmp13_);
+#line 310 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = _tmp14_;
+#line 310 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = res;
+#line 310 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_fatal (_tmp15_, _tmp16_);
+#line 310 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp15_);
+#line 312 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ break;
+#line 1907 "DatabaseTable.c"
+ } else {
+ gchar* column = NULL;
+ sqlite3_stmt* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ const gchar* _tmp21_ = NULL;
+#line 314 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = stmt;
+#line 314 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp18_ = sqlite3_column_text (_tmp17_, 1);
+#line 314 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp19_ = g_strdup (_tmp18_);
+#line 314 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ column = _tmp19_;
+#line 315 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp21_ = column;
+#line 315 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp21_ != NULL) {
+#line 1927 "DatabaseTable.c"
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp22_ = column;
+#line 315 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp23_ = column_name;
+#line 315 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp20_ = g_strcmp0 (_tmp22_, _tmp23_) == 0;
+#line 1936 "DatabaseTable.c"
+ } else {
+#line 315 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp20_ = FALSE;
+#line 1940 "DatabaseTable.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp20_) {
+#line 316 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = TRUE;
+#line 316 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (column);
+#line 316 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 316 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1952 "DatabaseTable.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (column);
+#line 1956 "DatabaseTable.c"
+ }
+ }
+ }
+ }
+#line 320 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = FALSE;
+#line 320 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 320 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 1967 "DatabaseTable.c"
+}
+
+
+gboolean database_table_has_table (const gchar* table_name) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 323 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (table_name != NULL, FALSE);
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_db;
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = table_name;
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = g_strdup_printf ("PRAGMA table_info(%s)", _tmp1_);
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = _tmp2_;
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp0_, _tmp3_, -1, &_tmp4_, NULL);
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp4_;
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = _tmp5_;
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp3_);
+#line 325 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp6_;
+#line 326 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = res;
+#line 326 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 328 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = sqlite3_step (stmt);
+#line 328 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp8_;
+#line 330 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = res;
+#line 330 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp9_ != SQLITE_DONE;
+#line 330 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 330 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 2023 "DatabaseTable.c"
+}
+
+
+gboolean database_table_add_column (const gchar* table_name, const gchar* column_name, const gchar* column_constraints) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ sqlite3_stmt* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 333 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (table_name != NULL, FALSE);
+#line 333 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column_name != NULL, FALSE);
+#line 333 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column_constraints != NULL, FALSE);
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_db;
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = table_name;
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = column_name;
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = column_constraints;
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = g_strdup_printf ("ALTER TABLE %s ADD COLUMN %s %s", _tmp1_, _tmp2_, _tmp3_);
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = _tmp4_;
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = sqlite3_prepare_v2 (_tmp0_, _tmp5_, -1, &_tmp6_, NULL);
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp6_;
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = _tmp7_;
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp5_);
+#line 335 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp8_;
+#line 337 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = res;
+#line 337 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 339 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = stmt;
+#line 339 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = sqlite3_step (_tmp10_);
+#line 339 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp11_;
+#line 340 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = res;
+#line 340 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp12_ != SQLITE_DONE) {
+#line 2088 "DatabaseTable.c"
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ sqlite3* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 341 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = table_name;
+#line 341 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = column_name;
+#line 341 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = column_constraints;
+#line 341 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = res;
+#line 341 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp17_ = database_table_db;
+#line 341 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp18_ = sqlite3_errmsg (_tmp17_);
+#line 341 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("DatabaseTable.vala:341: Unable to add column %s %s %s: (%d) %s", _tmp13_, _tmp14_, _tmp15_, _tmp16_, _tmp18_);
+#line 344 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = FALSE;
+#line 344 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 344 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 2115 "DatabaseTable.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = TRUE;
+#line 347 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 347 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 2123 "DatabaseTable.c"
+}
+
+
+gboolean database_table_ensure_column (const gchar* table_name, const gchar* column_name, const gchar* column_constraints, const gchar* upgrade_msg) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 353 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (table_name != NULL, FALSE);
+#line 353 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column_name != NULL, FALSE);
+#line 353 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (column_constraints != NULL, FALSE);
+#line 353 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (upgrade_msg != NULL, FALSE);
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = table_name;
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = database_table_has_table (_tmp1_);
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (!_tmp2_) {
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = TRUE;
+#line 2153 "DatabaseTable.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = table_name;
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = column_name;
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = database_table_has_column (_tmp3_, _tmp4_);
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = _tmp5_;
+#line 2166 "DatabaseTable.c"
+ }
+#line 355 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp0_) {
+#line 356 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = TRUE;
+#line 356 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 2174 "DatabaseTable.c"
+ }
+#line 358 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = upgrade_msg;
+#line 358 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_message ("DatabaseTable.vala:358: %s", _tmp6_);
+#line 360 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = table_name;
+#line 360 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = column_name;
+#line 360 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = column_constraints;
+#line 360 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = database_table_add_column (_tmp7_, _tmp8_, _tmp9_);
+#line 360 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp10_;
+#line 360 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 2192 "DatabaseTable.c"
+}
+
+
+gint database_table_get_row_count (DatabaseTable* self) {
+ gint result = 0;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ sqlite3_stmt* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 363 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (IS_DATABASE_TABLE (self), 0);
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_db;
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = self->table_name;
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = g_strdup_printf ("SELECT COUNT(id) AS RowCount FROM %s", _tmp1_);
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = _tmp2_;
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp0_, _tmp3_, -1, &_tmp4_, NULL);
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ stmt = _tmp4_;
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = _tmp5_;
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (_tmp3_);
+#line 365 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp6_;
+#line 366 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp7_ = res;
+#line 366 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 368 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp8_ = stmt;
+#line 368 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp9_ = sqlite3_step (_tmp8_);
+#line 368 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp9_;
+#line 369 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp10_ = res;
+#line 369 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp10_ != SQLITE_ROW) {
+#line 2249 "DatabaseTable.c"
+ const gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ sqlite3* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 370 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp11_ = self->table_name;
+#line 370 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp12_ = res;
+#line 370 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp13_ = database_table_db;
+#line 370 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp14_ = sqlite3_errmsg (_tmp13_);
+#line 370 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("DatabaseTable.vala:370: Unable to retrieve row count on %s: (%d) %s", _tmp11_, _tmp12_, _tmp14_);
+#line 372 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = 0;
+#line 372 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 372 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 2270 "DatabaseTable.c"
+ }
+#line 375 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp15_ = stmt;
+#line 375 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp16_ = sqlite3_column_int (_tmp15_, 0);
+#line 375 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ result = _tmp16_;
+#line 375 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 375 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return result;
+#line 2282 "DatabaseTable.c"
+}
+
+
+void database_table_begin_transaction (void) {
+ gint _tmp0_ = 0;
+ gint res = 0;
+ sqlite3* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 380 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_in_transaction;
+#line 380 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_in_transaction = _tmp0_ + 1;
+#line 380 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp0_ != 0) {
+#line 381 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 2300 "DatabaseTable.c"
+ }
+#line 383 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = database_table_db;
+#line 383 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = _sqlite3_exec (_tmp1_, "BEGIN TRANSACTION", NULL, NULL, NULL);
+#line 383 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp2_;
+#line 384 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = res;
+#line 384 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 2312 "DatabaseTable.c"
+}
+
+
+void database_table_commit_transaction (GError** error) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint res = 0;
+ sqlite3* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GError * _inner_error_ = NULL;
+#line 389 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp0_ = database_table_in_transaction;
+#line 389 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _vala_assert (_tmp0_ > 0, "in_transaction > 0");
+#line 390 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp1_ = database_table_in_transaction;
+#line 390 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_in_transaction = _tmp1_ - 1;
+#line 390 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp2_ = database_table_in_transaction;
+#line 390 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp2_ != 0) {
+#line 391 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 2339 "DatabaseTable.c"
+ }
+#line 393 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp3_ = database_table_db;
+#line 393 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp4_ = _sqlite3_exec (_tmp3_, "COMMIT TRANSACTION", NULL, NULL, NULL);
+#line 393 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ res = _tmp4_;
+#line 394 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp5_ = res;
+#line 394 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_tmp5_ != SQLITE_DONE) {
+#line 2351 "DatabaseTable.c"
+ gint _tmp6_ = 0;
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _tmp6_ = res;
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_throw_error ("commit_transaction", _tmp6_, &_inner_error_);
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 2365 "DatabaseTable.c"
+ } else {
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_clear_error (&_inner_error_);
+#line 395 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return;
+#line 2373 "DatabaseTable.c"
+ }
+ }
+ }
+}
+
+
+DatabaseTable* database_table_construct (GType object_type) {
+ DatabaseTable* self = NULL;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ self = (DatabaseTable*) g_type_create_instance (object_type);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return self;
+#line 2386 "DatabaseTable.c"
+}
+
+
+static void value_database_table_init (GValue* value) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 2393 "DatabaseTable.c"
+}
+
+
+static void value_database_table_free_value (GValue* value) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (value->data[0].v_pointer) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_unref (value->data[0].v_pointer);
+#line 2402 "DatabaseTable.c"
+ }
+}
+
+
+static void value_database_table_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ dest_value->data[0].v_pointer = database_table_ref (src_value->data[0].v_pointer);
+#line 2412 "DatabaseTable.c"
+ } else {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2416 "DatabaseTable.c"
+ }
+}
+
+
+static gpointer value_database_table_peek_pointer (const GValue* value) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return value->data[0].v_pointer;
+#line 2424 "DatabaseTable.c"
+}
+
+
+static gchar* value_database_table_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 2431 "DatabaseTable.c"
+ DatabaseTable* object;
+ object = collect_values[0].v_pointer;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2438 "DatabaseTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2442 "DatabaseTable.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ value->data[0].v_pointer = database_table_ref (object);
+#line 2446 "DatabaseTable.c"
+ } else {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 2450 "DatabaseTable.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return NULL;
+#line 2454 "DatabaseTable.c"
+}
+
+
+static gchar* value_database_table_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DatabaseTable** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (!object_p) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2465 "DatabaseTable.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ *object_p = NULL;
+#line 2471 "DatabaseTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2475 "DatabaseTable.c"
+ } else {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ *object_p = database_table_ref (value->data[0].v_pointer);
+#line 2479 "DatabaseTable.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return NULL;
+#line 2483 "DatabaseTable.c"
+}
+
+
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecDatabaseTable* spec;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_DATABASE_TABLE), NULL);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 2497 "DatabaseTable.c"
+}
+
+
+gpointer value_get_database_table (const GValue* value) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATABASE_TABLE), NULL);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return value->data[0].v_pointer;
+#line 2506 "DatabaseTable.c"
+}
+
+
+void value_set_database_table (GValue* value, gpointer v_object) {
+ DatabaseTable* old;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATABASE_TABLE));
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ old = value->data[0].v_pointer;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (v_object) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DATABASE_TABLE));
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_ref (value->data[0].v_pointer);
+#line 2526 "DatabaseTable.c"
+ } else {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 2530 "DatabaseTable.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (old) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_unref (old);
+#line 2536 "DatabaseTable.c"
+ }
+}
+
+
+void value_take_database_table (GValue* value, gpointer v_object) {
+ DatabaseTable* old;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DATABASE_TABLE));
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ old = value->data[0].v_pointer;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (v_object) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DATABASE_TABLE));
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 2555 "DatabaseTable.c"
+ } else {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 2559 "DatabaseTable.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (old) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_unref (old);
+#line 2565 "DatabaseTable.c"
+ }
+}
+
+
+static void database_table_class_init (DatabaseTableClass * klass) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ database_table_parent_class = g_type_class_peek_parent (klass);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = database_table_finalize;
+#line 2575 "DatabaseTable.c"
+}
+
+
+static void database_table_instance_init (DatabaseTable * self) {
+#line 30 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ self->table_name = NULL;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ self->ref_count = 1;
+#line 2584 "DatabaseTable.c"
+}
+
+
+static void database_table_finalize (DatabaseTable* obj) {
+ DatabaseTable * self;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DATABASE_TABLE, DatabaseTable);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_signal_handlers_destroy (self);
+#line 30 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ _g_free0 (self->table_name);
+#line 2596 "DatabaseTable.c"
+}
+
+
+GType database_table_get_type (void) {
+ static volatile gsize database_table_type_id__volatile = 0;
+ if (g_once_init_enter (&database_table_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_database_table_init, value_database_table_free_value, value_database_table_copy_value, value_database_table_peek_pointer, "p", value_database_table_collect_value, "p", value_database_table_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DatabaseTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) database_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DatabaseTable), 0, (GInstanceInitFunc) database_table_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType database_table_type_id;
+ database_table_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DatabaseTable", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&database_table_type_id__volatile, database_table_type_id);
+ }
+ return database_table_type_id__volatile;
+}
+
+
+gpointer database_table_ref (gpointer instance) {
+ DatabaseTable* self;
+ self = instance;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ return instance;
+#line 2621 "DatabaseTable.c"
+}
+
+
+void database_table_unref (gpointer instance) {
+ DatabaseTable* self;
+ self = instance;
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ DATABASE_TABLE_GET_CLASS (self)->finalize (self);
+#line 16 "/home/jens/Source/shotwell/src/db/DatabaseTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2634 "DatabaseTable.c"
+ }
+}
+
+
+
diff --git a/src/db/DatabaseTable.vala b/src/db/DatabaseTable.vala
index 42eac69..09c026f 100644
--- a/src/db/DatabaseTable.vala
+++ b/src/db/DatabaseTable.vala
@@ -49,6 +49,13 @@ public abstract class DatabaseTable {
e.message));
}
}
+#if SQLITE_DEBUG
+ db.trace (on_trace);
+#endif
+ }
+
+ public static void on_trace (string message) {
+ debug ("SQLITE: %s", message);
}
public static void init(string filename) {
diff --git a/src/db/Db.c b/src/db/Db.c
new file mode 100644
index 0000000..9c7e328
--- /dev/null
+++ b/src/db/Db.c
@@ -0,0 +1,852 @@
+/* Db.c generated by valac 0.32.1, the Vala compiler
+ * generated from Db.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define DB_TYPE_VERIFY_RESULT (db_verify_result_get_type ())
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_VERSION_TABLE (version_table_get_type ())
+#define VERSION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VERSION_TABLE, VersionTable))
+#define VERSION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VERSION_TABLE, VersionTableClass))
+#define IS_VERSION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VERSION_TABLE))
+#define IS_VERSION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VERSION_TABLE))
+#define VERSION_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VERSION_TABLE, VersionTableClass))
+
+typedef struct _VersionTable VersionTable;
+typedef struct _VersionTableClass VersionTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ DB_VERIFY_RESULT_OK,
+ DB_VERIFY_RESULT_FUTURE_VERSION,
+ DB_VERIFY_RESULT_UPGRADE_ERROR,
+ DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE
+} DbVerifyResult;
+
+
+extern gchar* db_filename;
+gchar* db_filename = NULL;
+
+#define DB_IN_MEMORY_NAME ":memory:"
+void db_preconfigure (GFile* db_file);
+void db_init (GError** error);
+void database_table_init (const gchar* filename);
+void db_terminate (void);
+void database_table_terminate (void);
+GType db_verify_result_get_type (void) G_GNUC_CONST;
+DbVerifyResult db_verify_database (gchar** app_version, gint* schema_version);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType version_table_get_type (void) G_GNUC_CONST;
+VersionTable* version_table_get_instance (void);
+gint version_table_get_version (VersionTable* self, gchar** app_version);
+#define DATABASE_TABLE_SCHEMA_VERSION 20
+#define RESOURCES_APP_VERSION _VERSION
+void version_table_set_version (VersionTable* self, gint version, const gchar* app_version, const gchar* user_data);
+DbVerifyResult db_upgrade_database (gint input_version);
+gboolean database_table_has_column (const gchar* table_name, const gchar* column_name);
+gboolean database_table_add_column (const gchar* table_name, const gchar* column_name, const gchar* column_constraints);
+gboolean database_table_has_table (const gchar* table_name);
+gboolean database_table_ensure_column (const gchar* table_name, const gchar* column_name, const gchar* column_constraints, const gchar* upgrade_msg);
+void tag_table_upgrade_for_htags (void);
+void gsettings_configuration_engine_run_gsettings_migrator (void);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void application_set_raw_thumbs_fix_required (Application* self, gboolean should_fixup);
+void version_table_update_version (VersionTable* self, gint version, const gchar* app_version);
+
+
+void db_preconfigure (GFile* db_file) {
+ gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_return_if_fail ((db_file == NULL) || G_IS_FILE (db_file));
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp1_ = db_file;
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp1_ != NULL) {
+#line 118 "Db.c"
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp2_ = db_file;
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_tmp0_);
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp0_ = _tmp3_;
+#line 129 "Db.c"
+ } else {
+ gchar* _tmp4_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp4_ = g_strdup (DB_IN_MEMORY_NAME);
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_tmp0_);
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp0_ = _tmp4_;
+#line 138 "Db.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp5_ = g_strdup (_tmp0_);
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (db_filename);
+#line 15 "/home/jens/Source/shotwell/src/db/Db.vala"
+ db_filename = _tmp5_;
+#line 14 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_tmp0_);
+#line 148 "Db.c"
+}
+
+
+void db_init (GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp0_ = db_filename;
+#line 19 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _vala_assert (_tmp0_ != NULL, "filename != null");
+#line 21 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp1_ = db_filename;
+#line 21 "/home/jens/Source/shotwell/src/db/Db.vala"
+ database_table_init (_tmp1_);
+#line 163 "Db.c"
+}
+
+
+void db_terminate (void) {
+#line 25 "/home/jens/Source/shotwell/src/db/Db.vala"
+ database_table_terminate ();
+#line 170 "Db.c"
+}
+
+
+GType db_verify_result_get_type (void) {
+ static volatile gsize db_verify_result_type_id__volatile = 0;
+ if (g_once_init_enter (&db_verify_result_type_id__volatile)) {
+ static const GEnumValue values[] = {{DB_VERIFY_RESULT_OK, "DB_VERIFY_RESULT_OK", "ok"}, {DB_VERIFY_RESULT_FUTURE_VERSION, "DB_VERIFY_RESULT_FUTURE_VERSION", "future-version"}, {DB_VERIFY_RESULT_UPGRADE_ERROR, "DB_VERIFY_RESULT_UPGRADE_ERROR", "upgrade-error"}, {DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE, "DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE", "no-upgrade-available"}, {0, NULL, NULL}};
+ GType db_verify_result_type_id;
+ db_verify_result_type_id = g_enum_register_static ("DbVerifyResult", values);
+ g_once_init_leave (&db_verify_result_type_id__volatile, db_verify_result_type_id);
+ }
+ return db_verify_result_type_id__volatile;
+}
+
+
+DbVerifyResult db_verify_database (gchar** app_version, gint* schema_version) {
+ gchar* _vala_app_version = NULL;
+ gint _vala_schema_version = 0;
+ DbVerifyResult result = 0;
+ VersionTable* version_table = NULL;
+ VersionTable* _tmp0_ = NULL;
+ VersionTable* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp7_ = 0;
+#line 36 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp0_ = version_table_get_instance ();
+#line 36 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version_table = _tmp0_;
+#line 37 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp1_ = version_table;
+#line 37 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp3_ = version_table_get_version (_tmp1_, &_tmp2_);
+#line 37 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_vala_app_version);
+#line 37 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _vala_app_version = _tmp2_;
+#line 37 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _vala_schema_version = _tmp3_;
+#line 39 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp4_ = _vala_schema_version;
+#line 39 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp4_ >= 0) {
+#line 215 "Db.c"
+ gint _tmp5_ = 0;
+ const gchar* _tmp6_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp5_ = _vala_schema_version;
+#line 40 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp6_ = _vala_app_version;
+#line 40 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_debug ("Db.vala:40: Database schema version %d created by app version %s", _tmp5_, _tmp6_);
+#line 224 "Db.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp7_ = _vala_schema_version;
+#line 42 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp7_ == -1) {
+#line 230 "Db.c"
+ VersionTable* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_debug ("Db.vala:44: Creating database schema version %d for app version %s", DATABASE_TABLE_SCHEMA_VERSION, RESOURCES_APP_VERSION);
+#line 46 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp8_ = version_table;
+#line 46 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version_table_set_version (_tmp8_, DATABASE_TABLE_SCHEMA_VERSION, RESOURCES_APP_VERSION, NULL);
+#line 47 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp9_ = g_strdup (RESOURCES_APP_VERSION);
+#line 47 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_vala_app_version);
+#line 47 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _vala_app_version = _tmp9_;
+#line 48 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _vala_schema_version = DATABASE_TABLE_SCHEMA_VERSION;
+#line 247 "Db.c"
+ } else {
+ gint _tmp10_ = 0;
+#line 49 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp10_ = _vala_schema_version;
+#line 49 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp10_ > DATABASE_TABLE_SCHEMA_VERSION) {
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_FUTURE_VERSION;
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _database_table_unref0 (version_table);
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (app_version) {
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ *app_version = _vala_app_version;
+#line 262 "Db.c"
+ } else {
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_vala_app_version);
+#line 266 "Db.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (schema_version) {
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ *schema_version = _vala_schema_version;
+#line 272 "Db.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 276 "Db.c"
+ } else {
+ gint _tmp11_ = 0;
+#line 52 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp11_ = _vala_schema_version;
+#line 52 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp11_ < DATABASE_TABLE_SCHEMA_VERSION) {
+#line 283 "Db.c"
+ DbVerifyResult _result_ = 0;
+ gint _tmp12_ = 0;
+ DbVerifyResult _tmp13_ = 0;
+ DbVerifyResult _tmp14_ = 0;
+#line 54 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp12_ = _vala_schema_version;
+#line 54 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp13_ = db_upgrade_database (_tmp12_);
+#line 54 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _result_ = _tmp13_;
+#line 55 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp14_ = _result_;
+#line 55 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp14_ != DB_VERIFY_RESULT_OK) {
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = _result_;
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _database_table_unref0 (version_table);
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (app_version) {
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ *app_version = _vala_app_version;
+#line 306 "Db.c"
+ } else {
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_vala_app_version);
+#line 310 "Db.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (schema_version) {
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ *schema_version = _vala_schema_version;
+#line 316 "Db.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 320 "Db.c"
+ }
+ }
+ }
+ }
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_OK;
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _database_table_unref0 (version_table);
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (app_version) {
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ *app_version = _vala_app_version;
+#line 333 "Db.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _g_free0 (_vala_app_version);
+#line 337 "Db.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (schema_version) {
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ *schema_version = _vala_schema_version;
+#line 343 "Db.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 347 "Db.c"
+}
+
+
+DbVerifyResult db_upgrade_database (gint input_version) {
+ DbVerifyResult result = 0;
+ gint _tmp0_ = 0;
+ gint version = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp33_ = FALSE;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gboolean _tmp37_ = FALSE;
+ gboolean _tmp39_ = FALSE;
+ gboolean _tmp41_ = FALSE;
+ gint _tmp43_ = 0;
+ gint _tmp46_ = 0;
+ VersionTable* _tmp47_ = NULL;
+ VersionTable* _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+#line 63 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp0_ = input_version;
+#line 63 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _vala_assert (_tmp0_ < DATABASE_TABLE_SCHEMA_VERSION, "input_version < DatabaseTable.SCHEMA_VERSION");
+#line 65 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp1_ = input_version;
+#line 65 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp2_ = version;
+#line 68 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp2_ == 1) {
+#line 69 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE;
+#line 69 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 401 "Db.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp3_ = version;
+#line 71 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:71: Upgrading database from schema version %d to %d", _tmp3_, DATABASE_TABLE_SCHEMA_VERSION);
+#line 83 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp4_ = database_table_has_column ("PhotoTable", "flags");
+#line 83 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp4_) {
+#line 411 "Db.c"
+ gboolean _tmp5_ = FALSE;
+#line 84 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:84: upgrade_database: adding flags column to PhotoTable");
+#line 85 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp5_ = database_table_add_column ("PhotoTable", "flags", "INTEGER DEFAULT 0");
+#line 85 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp5_) {
+#line 86 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 86 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 423 "Db.c"
+ }
+ }
+#line 89 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 3;
+#line 100 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp6_ = database_table_has_column ("PhotoTable", "file_format");
+#line 100 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp6_) {
+#line 432 "Db.c"
+ gboolean _tmp7_ = FALSE;
+#line 101 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:101: upgrade_database: adding file_format column to PhotoTable");
+#line 102 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp7_ = database_table_add_column ("PhotoTable", "file_format", "INTEGER DEFAULT 0");
+#line 102 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp7_) {
+#line 103 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 103 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 444 "Db.c"
+ }
+ }
+#line 106 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 4;
+#line 113 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp8_ = database_table_has_column ("PhotoTable", "title");
+#line 113 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp8_) {
+#line 453 "Db.c"
+ gboolean _tmp9_ = FALSE;
+#line 114 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:114: upgrade_database: adding title column to PhotoTable");
+#line 115 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp9_ = database_table_add_column ("PhotoTable", "title", "TEXT");
+#line 115 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp9_) {
+#line 116 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 116 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 465 "Db.c"
+ }
+ }
+#line 119 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 5;
+#line 126 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp10_ = database_table_has_column ("PhotoTable", "backlinks");
+#line 126 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp10_) {
+#line 474 "Db.c"
+ gboolean _tmp11_ = FALSE;
+#line 127 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:127: upgrade_database: adding backlinks column to PhotoTable");
+#line 128 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp11_ = database_table_add_column ("PhotoTable", "backlinks", "TEXT");
+#line 128 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp11_) {
+#line 129 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 129 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 486 "Db.c"
+ }
+ }
+#line 132 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 6;
+#line 146 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp12_ = database_table_has_column ("PhotoTable", "time_reimported");
+#line 146 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp12_) {
+#line 495 "Db.c"
+ gboolean _tmp13_ = FALSE;
+#line 147 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:147: upgrade_database: adding time_reimported column to PhotoT" \
+"able");
+#line 148 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp13_ = database_table_add_column ("PhotoTable", "time_reimported", "INTEGER");
+#line 148 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp13_) {
+#line 149 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 149 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 507 "Db.c"
+ }
+ }
+#line 152 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp14_ = database_table_has_column ("PhotoTable", "editable_id");
+#line 152 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp14_) {
+#line 514 "Db.c"
+ gboolean _tmp15_ = FALSE;
+#line 153 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:153: upgrade_database: adding editable_id column to PhotoTable");
+#line 154 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp15_ = database_table_add_column ("PhotoTable", "editable_id", "INTEGER DEFAULT -1");
+#line 154 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp15_) {
+#line 155 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 155 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 526 "Db.c"
+ }
+ }
+#line 158 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 7;
+#line 170 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp16_ = database_table_has_column ("PhotoTable", "rating");
+#line 170 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp16_) {
+#line 535 "Db.c"
+ gboolean _tmp17_ = FALSE;
+#line 171 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:171: upgrade_database: adding rating column to PhotoTable");
+#line 172 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp17_ = database_table_add_column ("PhotoTable", "rating", "INTEGER DEFAULT 0");
+#line 172 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp17_) {
+#line 173 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 173 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 547 "Db.c"
+ }
+ }
+#line 182 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp18_ = database_table_has_column ("PhotoTable", "metadata_dirty");
+#line 182 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp18_) {
+#line 554 "Db.c"
+ gboolean _tmp19_ = FALSE;
+#line 183 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:183: upgrade_database: adding metadata_dirty column to PhotoTa" \
+"ble");
+#line 184 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp19_ = database_table_add_column ("PhotoTable", "metadata_dirty", "INTEGER DEFAULT 1");
+#line 184 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp19_) {
+#line 185 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 185 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 566 "Db.c"
+ }
+ }
+#line 188 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 9;
+#line 195 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp21_ = database_table_has_table ("VideoTable");
+#line 195 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp21_) {
+#line 575 "Db.c"
+ gboolean _tmp22_ = FALSE;
+#line 195 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp22_ = database_table_has_column ("VideoTable", "flags");
+#line 195 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp20_ = !_tmp22_;
+#line 581 "Db.c"
+ } else {
+#line 195 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp20_ = FALSE;
+#line 585 "Db.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp20_) {
+#line 589 "Db.c"
+ gboolean _tmp23_ = FALSE;
+#line 196 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:196: upgrade_database: adding flags column to VideoTable");
+#line 197 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp23_ = database_table_add_column ("VideoTable", "flags", "INTEGER DEFAULT 0");
+#line 197 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp23_) {
+#line 198 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 198 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 601 "Db.c"
+ }
+ }
+#line 201 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 10;
+#line 208 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp24_ = database_table_has_column ("EventTable", "primary_source_id");
+#line 208 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp24_) {
+#line 610 "Db.c"
+ gboolean _tmp25_ = FALSE;
+#line 209 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:209: upgrade_database: adding primary_source_id column to Even" \
+"tTable");
+#line 210 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp25_ = database_table_add_column ("EventTable", "primary_source_id", "INTEGER DEFAULT 0");
+#line 210 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp25_) {
+#line 211 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 211 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 622 "Db.c"
+ }
+ }
+#line 214 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 11;
+#line 221 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp26_ = database_table_ensure_column ("TombstoneTable", "reason", "INTEGER DEFAULT 0", "upgrade_database: adding reason column to TombstoneTable");
+#line 221 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp26_) {
+#line 223 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 223 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 635 "Db.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 12;
+#line 233 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp27_ = database_table_has_column ("PhotoTable", "developer");
+#line 233 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp27_) {
+#line 643 "Db.c"
+ gboolean _tmp28_ = FALSE;
+#line 234 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:234: upgrade_database: adding developer column to PhotoTable");
+#line 235 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp28_ = database_table_add_column ("PhotoTable", "developer", "TEXT");
+#line 235 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp28_) {
+#line 236 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 236 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 655 "Db.c"
+ }
+ }
+#line 239 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp29_ = database_table_has_column ("PhotoTable", "develop_shotwell_id");
+#line 239 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp29_) {
+#line 662 "Db.c"
+ gboolean _tmp30_ = FALSE;
+#line 240 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:240: upgrade_database: adding develop_shotwell_id column to Ph" \
+"otoTable");
+#line 241 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp30_ = database_table_add_column ("PhotoTable", "develop_shotwell_id", "INTEGER DEFAULT -1");
+#line 241 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp30_) {
+#line 242 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 242 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 674 "Db.c"
+ }
+ }
+#line 245 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp31_ = database_table_has_column ("PhotoTable", "develop_camera_id");
+#line 245 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp31_) {
+#line 681 "Db.c"
+ gboolean _tmp32_ = FALSE;
+#line 246 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:246: upgrade_database: adding develop_camera_id column to Phot" \
+"oTable");
+#line 247 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp32_ = database_table_add_column ("PhotoTable", "develop_camera_id", "INTEGER DEFAULT -1");
+#line 247 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp32_) {
+#line 248 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 248 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 693 "Db.c"
+ }
+ }
+#line 251 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp33_ = database_table_has_column ("PhotoTable", "develop_embedded_id");
+#line 251 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp33_) {
+#line 700 "Db.c"
+ gboolean _tmp34_ = FALSE;
+#line 252 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:252: upgrade_database: adding develop_embedded_id column to Ph" \
+"otoTable");
+#line 253 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp34_ = database_table_add_column ("PhotoTable", "develop_embedded_id", "INTEGER DEFAULT -1");
+#line 253 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp34_) {
+#line 254 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 254 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 712 "Db.c"
+ }
+ }
+#line 257 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 13;
+#line 264 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp35_ = input_version;
+#line 264 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp35_ < 14) {
+#line 265 "/home/jens/Source/shotwell/src/db/Db.vala"
+ tag_table_upgrade_for_htags ();
+#line 723 "Db.c"
+ }
+#line 267 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 14;
+#line 279 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 15;
+#line 289 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp36_ = input_version;
+#line 289 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp36_ < 16) {
+#line 292 "/home/jens/Source/shotwell/src/db/Db.vala"
+ gsettings_configuration_engine_run_gsettings_migrator ();
+#line 735 "Db.c"
+ }
+#line 295 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 16;
+#line 302 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp37_ = database_table_has_column ("PhotoTable", "comment");
+#line 302 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp37_) {
+#line 743 "Db.c"
+ gboolean _tmp38_ = FALSE;
+#line 303 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:303: upgrade_database: adding comment column to PhotoTable");
+#line 304 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp38_ = database_table_add_column ("PhotoTable", "comment", "TEXT");
+#line 304 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp38_) {
+#line 305 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 305 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 755 "Db.c"
+ }
+ }
+#line 307 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp39_ = database_table_has_column ("VideoTable", "comment");
+#line 307 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp39_) {
+#line 762 "Db.c"
+ gboolean _tmp40_ = FALSE;
+#line 308 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:308: upgrade_database: adding comment column to VideoTable");
+#line 309 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp40_ = database_table_add_column ("VideoTable", "comment", "TEXT");
+#line 309 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp40_) {
+#line 310 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 310 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 774 "Db.c"
+ }
+ }
+#line 313 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 17;
+#line 320 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp41_ = database_table_has_column ("EventTable", "comment");
+#line 320 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp41_) {
+#line 783 "Db.c"
+ gboolean _tmp42_ = FALSE;
+#line 321 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:321: upgrade_database: adding comment column to EventTable");
+#line 322 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp42_ = database_table_add_column ("EventTable", "comment", "TEXT");
+#line 322 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (!_tmp42_) {
+#line 323 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_UPGRADE_ERROR;
+#line 323 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 795 "Db.c"
+ }
+ }
+#line 326 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 18;
+#line 337 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp43_ = input_version;
+#line 337 "/home/jens/Source/shotwell/src/db/Db.vala"
+ if (_tmp43_ < 19) {
+#line 804 "Db.c"
+ Application* _tmp44_ = NULL;
+ Application* _tmp45_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp44_ = application_get_instance ();
+#line 338 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp45_ = _tmp44_;
+#line 338 "/home/jens/Source/shotwell/src/db/Db.vala"
+ application_set_raw_thumbs_fix_required (_tmp45_, TRUE);
+#line 338 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _application_unref0 (_tmp45_);
+#line 815 "Db.c"
+ }
+#line 341 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 19;
+#line 351 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version = 20;
+#line 357 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp46_ = version;
+#line 357 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _vala_assert (_tmp46_ == DATABASE_TABLE_SCHEMA_VERSION, "version == DatabaseTable.SCHEMA_VERSION");
+#line 358 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp47_ = version_table_get_instance ();
+#line 358 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp48_ = _tmp47_;
+#line 358 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp49_ = version;
+#line 358 "/home/jens/Source/shotwell/src/db/Db.vala"
+ version_table_update_version (_tmp48_, _tmp49_, RESOURCES_APP_VERSION);
+#line 358 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _database_table_unref0 (_tmp48_);
+#line 360 "/home/jens/Source/shotwell/src/db/Db.vala"
+ _tmp50_ = version;
+#line 360 "/home/jens/Source/shotwell/src/db/Db.vala"
+ g_message ("Db.vala:360: Database upgrade to schema version %d successful", _tmp50_);
+#line 362 "/home/jens/Source/shotwell/src/db/Db.vala"
+ result = DB_VERIFY_RESULT_OK;
+#line 362 "/home/jens/Source/shotwell/src/db/Db.vala"
+ return result;
+#line 843 "Db.c"
+}
+
+
+
diff --git a/src/db/Db.vala b/src/db/Db.vala
index d536b41..e4f83bf 100644
--- a/src/db/Db.vala
+++ b/src/db/Db.vala
@@ -6,7 +6,7 @@
namespace Db {
-public static const string IN_MEMORY_NAME = ":memory:";
+public const string IN_MEMORY_NAME = ":memory:";
private string? filename = null;
diff --git a/src/db/EventTable.c b/src/db/EventTable.c
new file mode 100644
index 0000000..0e763e9
--- /dev/null
+++ b/src/db/EventTable.c
@@ -0,0 +1,1877 @@
+/* EventTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from EventTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sqlite3.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_EVENT_ROW (event_row_get_type ())
+#define EVENT_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_ROW, EventRow))
+#define EVENT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_ROW, EventRowClass))
+#define IS_EVENT_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_ROW))
+#define IS_EVENT_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_ROW))
+#define EVENT_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_ROW, EventRowClass))
+
+typedef struct _EventRow EventRow;
+typedef struct _EventRowClass EventRowClass;
+typedef struct _EventRowPrivate EventRowPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecEventRow ParamSpecEventRow;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+
+#define TYPE_EVENT_TABLE (event_table_get_type ())
+#define EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_TABLE, EventTable))
+#define EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_TABLE, EventTableClass))
+#define IS_EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_TABLE))
+#define IS_EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_TABLE))
+#define EVENT_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_TABLE, EventTableClass))
+
+typedef struct _EventTable EventTable;
+typedef struct _EventTableClass EventTableClass;
+typedef struct _EventTablePrivate EventTablePrivate;
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+#define _event_row_unref0(var) ((var == NULL) ? NULL : (var = (event_row_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _EventID {
+ gint64 id;
+};
+
+struct _EventRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EventRowPrivate * priv;
+ EventID event_id;
+ gchar* name;
+ time_t time_created;
+ gchar* primary_source_id;
+ gchar* comment;
+};
+
+struct _EventRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (EventRow *self);
+};
+
+struct _ParamSpecEventRow {
+ GParamSpec parent_instance;
+};
+
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _EventTable {
+ DatabaseTable parent_instance;
+ EventTablePrivate * priv;
+};
+
+struct _EventTableClass {
+ DatabaseTableClass parent_class;
+};
+
+struct _PhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+
+static gpointer event_row_parent_class = NULL;
+static gpointer event_table_parent_class = NULL;
+static EventTable* event_table_instance;
+static EventTable* event_table_instance = NULL;
+extern sqlite3* database_table_db;
+
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+#define EVENT_ID_INVALID ((gint64) -1)
+void event_id_init (EventID *self, gint64 id);
+gboolean event_id_is_invalid (EventID *self);
+gboolean event_id_is_valid (EventID *self);
+gpointer event_row_ref (gpointer instance);
+void event_row_unref (gpointer instance);
+GParamSpec* param_spec_event_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_event_row (GValue* value, gpointer v_object);
+void value_take_event_row (GValue* value, gpointer v_object);
+gpointer value_get_event_row (const GValue* value);
+GType event_row_get_type (void) G_GNUC_CONST;
+enum {
+ EVENT_ROW_DUMMY_PROPERTY
+};
+EventRow* event_row_new (void);
+EventRow* event_row_construct (GType object_type);
+static void event_row_finalize (EventRow* obj);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType event_table_get_type (void) G_GNUC_CONST;
+enum {
+ EVENT_TABLE_DUMMY_PROPERTY
+};
+static EventTable* event_table_new (void);
+static EventTable* event_table_construct (GType object_type);
+DatabaseTable* database_table_construct (GType object_type);
+void database_table_fatal (const gchar* op, gint res);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+EventTable* event_table_get_instance (void);
+static gchar* event_table_source_id_upgrade (EventTable* self, gint64 primary_photo_id, const gchar* primary_source_id);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+gboolean media_collection_registry_is_valid_source_id (MediaCollectionRegistry* self, const gchar* source_id);
+#define PHOTO_ID_INVALID ((gint64) -1)
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+gchar* photo_id_upgrade_photo_id_to_source_id (PhotoID* photo_id);
+void photo_id_init (PhotoID *self, gint64 id);
+GQuark database_error_quark (void);
+EventRow* event_table_create (EventTable* self, const gchar* primary_source_id, const gchar* comment, GError** error);
+gulong now_sec (void);
+void database_table_throw_error (const gchar* method, gint res, GError** error);
+void event_table_create_from_row (EventTable* self, EventRow* row, EventID* result);
+EventRow* event_table_get_row (EventTable* self, EventID* event_id);
+void event_table_remove (EventTable* self, EventID* event_id, GError** error);
+void database_table_delete_by_id (DatabaseTable* self, gint64 id, GError** error);
+GeeArrayList* event_table_get_events (EventTable* self);
+gboolean event_table_rename (EventTable* self, EventID* event_id, const gchar* name);
+gboolean database_table_update_text_by_id (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text);
+gchar* event_table_get_name (EventTable* self, EventID* event_id);
+gboolean database_table_select_by_id (DatabaseTable* self, gint64 id, const gchar* columns, sqlite3_stmt** stmt);
+gchar* event_table_get_primary_source_id (EventTable* self, EventID* event_id);
+gboolean event_table_set_primary_source_id (EventTable* self, EventID* event_id, const gchar* primary_source_id);
+time_t event_table_get_time_created (EventTable* self, EventID* event_id);
+gboolean event_table_set_comment (EventTable* self, EventID* event_id, const gchar* new_comment);
+static void event_table_finalize (DatabaseTable* obj);
+
+
+void event_id_init (EventID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 12 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ memset (self, 0, sizeof (EventID));
+#line 13 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = id;
+#line 13 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ (*self).id = _tmp0_;
+#line 227 "EventTable.c"
+}
+
+
+gboolean event_id_is_invalid (EventID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 17 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = (*self).id;
+#line 17 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp0_ == EVENT_ID_INVALID;
+#line 17 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 240 "EventTable.c"
+}
+
+
+gboolean event_id_is_valid (EventID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 21 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = (*self).id;
+#line 21 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp0_ != EVENT_ID_INVALID;
+#line 21 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 253 "EventTable.c"
+}
+
+
+EventID* event_id_dup (const EventID* self) {
+ EventID* dup;
+#line 7 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ dup = g_new0 (EventID, 1);
+#line 7 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ memcpy (dup, self, sizeof (EventID));
+#line 7 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return dup;
+#line 265 "EventTable.c"
+}
+
+
+void event_id_free (EventID* self) {
+#line 7 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_free (self);
+#line 272 "EventTable.c"
+}
+
+
+GType event_id_get_type (void) {
+ static volatile gsize event_id_type_id__volatile = 0;
+ if (g_once_init_enter (&event_id_type_id__volatile)) {
+ GType event_id_type_id;
+ event_id_type_id = g_boxed_type_register_static ("EventID", (GBoxedCopyFunc) event_id_dup, (GBoxedFreeFunc) event_id_free);
+ g_once_init_leave (&event_id_type_id__volatile, event_id_type_id);
+ }
+ return event_id_type_id__volatile;
+}
+
+
+EventRow* event_row_construct (GType object_type) {
+ EventRow* self = NULL;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ self = (EventRow*) g_type_create_instance (object_type);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return self;
+#line 293 "EventTable.c"
+}
+
+
+EventRow* event_row_new (void) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return event_row_construct (TYPE_EVENT_ROW);
+#line 300 "EventTable.c"
+}
+
+
+static void value_event_row_init (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 307 "EventTable.c"
+}
+
+
+static void value_event_row_free_value (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_row_unref (value->data[0].v_pointer);
+#line 316 "EventTable.c"
+ }
+}
+
+
+static void value_event_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ dest_value->data[0].v_pointer = event_row_ref (src_value->data[0].v_pointer);
+#line 326 "EventTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 330 "EventTable.c"
+ }
+}
+
+
+static gpointer value_event_row_peek_pointer (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return value->data[0].v_pointer;
+#line 338 "EventTable.c"
+}
+
+
+static gchar* value_event_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 345 "EventTable.c"
+ EventRow* object;
+ object = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 352 "EventTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 356 "EventTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ value->data[0].v_pointer = event_row_ref (object);
+#line 360 "EventTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 364 "EventTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return NULL;
+#line 368 "EventTable.c"
+}
+
+
+static gchar* value_event_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ EventRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (!object_p) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 379 "EventTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ *object_p = NULL;
+#line 385 "EventTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 389 "EventTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ *object_p = event_row_ref (value->data[0].v_pointer);
+#line 393 "EventTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return NULL;
+#line 397 "EventTable.c"
+}
+
+
+GParamSpec* param_spec_event_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecEventRow* spec;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_EVENT_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 411 "EventTable.c"
+}
+
+
+gpointer value_get_event_row (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EVENT_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return value->data[0].v_pointer;
+#line 420 "EventTable.c"
+}
+
+
+void value_set_event_row (GValue* value, gpointer v_object) {
+ EventRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EVENT_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_EVENT_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_row_ref (value->data[0].v_pointer);
+#line 440 "EventTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 444 "EventTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_row_unref (old);
+#line 450 "EventTable.c"
+ }
+}
+
+
+void value_take_event_row (GValue* value, gpointer v_object) {
+ EventRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_EVENT_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_EVENT_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 469 "EventTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 473 "EventTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_row_unref (old);
+#line 479 "EventTable.c"
+ }
+}
+
+
+static void event_row_class_init (EventRowClass * klass) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_row_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ ((EventRowClass *) klass)->finalize = event_row_finalize;
+#line 489 "EventTable.c"
+}
+
+
+static void event_row_instance_init (EventRow * self) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ self->ref_count = 1;
+#line 496 "EventTable.c"
+}
+
+
+static void event_row_finalize (EventRow* obj) {
+ EventRow * self;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENT_ROW, EventRow);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_signal_handlers_destroy (self);
+#line 27 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (self->name);
+#line 29 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (self->primary_source_id);
+#line 30 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (self->comment);
+#line 512 "EventTable.c"
+}
+
+
+GType event_row_get_type (void) {
+ static volatile gsize event_row_type_id__volatile = 0;
+ if (g_once_init_enter (&event_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_event_row_init, value_event_row_free_value, value_event_row_copy_value, value_event_row_peek_pointer, "p", value_event_row_collect_value, "p", value_event_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (EventRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventRow), 0, (GInstanceInitFunc) event_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType event_row_type_id;
+ event_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EventRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&event_row_type_id__volatile, event_row_type_id);
+ }
+ return event_row_type_id__volatile;
+}
+
+
+gpointer event_row_ref (gpointer instance) {
+ EventRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return instance;
+#line 537 "EventTable.c"
+}
+
+
+void event_row_unref (gpointer instance) {
+ EventRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ EVENT_ROW_GET_CLASS (self)->finalize (self);
+#line 25 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 550 "EventTable.c"
+ }
+}
+
+
+static EventTable* event_table_construct (GType object_type) {
+ EventTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 36 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ self = (EventTable*) database_table_construct (object_type);
+#line 38 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = database_table_db;
+#line 38 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS EventTable (" "id INTEGER PRIMARY KEY, " "name TEXT, " "primary_photo_id INTEGER, " "time_created INTEGER," "primary_source_id TEXT," "comment TEXT" ")", -1, &_tmp1_, NULL);
+#line 38 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 38 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp1_;
+#line 38 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = res;
+#line 46 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 48 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = stmt;
+#line 48 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 48 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp5_;
+#line 49 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = res;
+#line 49 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 592 "EventTable.c"
+ gint _tmp7_ = 0;
+#line 50 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = res;
+#line 50 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ database_table_fatal ("create photo table", _tmp7_);
+#line 598 "EventTable.c"
+ }
+#line 52 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "EventTable");
+#line 36 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 36 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return self;
+#line 606 "EventTable.c"
+}
+
+
+static EventTable* event_table_new (void) {
+#line 36 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return event_table_construct (TYPE_EVENT_TABLE);
+#line 613 "EventTable.c"
+}
+
+
+static gpointer _database_table_ref0 (gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return self ? database_table_ref (self) : NULL;
+#line 620 "EventTable.c"
+}
+
+
+EventTable* event_table_get_instance (void) {
+ EventTable* result = NULL;
+ EventTable* _tmp0_ = NULL;
+ EventTable* _tmp2_ = NULL;
+ EventTable* _tmp3_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = event_table_instance;
+#line 56 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp0_ == NULL) {
+#line 633 "EventTable.c"
+ EventTable* _tmp1_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = event_table_new ();
+#line 57 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _database_table_unref0 (event_table_instance);
+#line 57 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_table_instance = _tmp1_;
+#line 641 "EventTable.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = event_table_instance;
+#line 59 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 59 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp3_;
+#line 59 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 651 "EventTable.c"
+}
+
+
+static gchar* event_table_source_id_upgrade (EventTable* self, gint64 primary_photo_id, const gchar* primary_source_id) {
+ gchar* result = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gint64 _tmp7_ = 0LL;
+#line 63 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), NULL);
+#line 64 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 64 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = primary_source_id;
+#line 64 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = media_collection_registry_is_valid_source_id (_tmp1_, _tmp2_);
+#line 64 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = _tmp3_;
+#line 64 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 64 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp4_) {
+#line 679 "EventTable.c"
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = primary_source_id;
+#line 65 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 65 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp6_;
+#line 65 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 690 "EventTable.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = primary_photo_id;
+#line 67 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp7_ != PHOTO_ID_INVALID) {
+#line 696 "EventTable.c"
+ gint64 _tmp8_ = 0LL;
+ PhotoID _tmp9_ = {0};
+ gchar* _tmp10_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp8_ = primary_photo_id;
+#line 69 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ photo_id_init (&_tmp9_, _tmp8_);
+#line 69 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp10_ = photo_id_upgrade_photo_id_to_source_id (&_tmp9_);
+#line 69 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp10_;
+#line 69 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 710 "EventTable.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = NULL;
+#line 71 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 716 "EventTable.c"
+}
+
+
+EventRow* event_table_create (EventTable* self, const gchar* primary_source_id, const gchar* comment, GError** error) {
+ EventRow* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ time_t time_created = 0;
+ gulong _tmp7_ = 0UL;
+ sqlite3_stmt* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GDestroyNotify _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ sqlite3_stmt* _tmp14_ = NULL;
+ time_t _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ sqlite3_stmt* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GDestroyNotify _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ sqlite3_stmt* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ EventRow* row = NULL;
+ EventRow* _tmp28_ = NULL;
+ EventRow* _tmp29_ = NULL;
+ sqlite3* _tmp30_ = NULL;
+ gint64 _tmp31_ = 0LL;
+ EventRow* _tmp32_ = NULL;
+ EventRow* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ EventRow* _tmp36_ = NULL;
+ time_t _tmp37_ = 0;
+ EventRow* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), NULL);
+#line 75 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = primary_source_id;
+#line 75 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp1_ != NULL) {
+#line 772 "EventTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = primary_source_id;
+#line 75 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = g_strcmp0 (_tmp2_, "") != 0;
+#line 778 "EventTable.c"
+ } else {
+#line 75 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = FALSE;
+#line 782 "EventTable.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp0_, "primary_source_id != null && primary_source_id != \"\"");
+#line 78 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = database_table_db;
+#line 78 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp3_, "INSERT INTO EventTable (primary_source_id, time_created, comment) VALU" \
+"ES (?, ?, ?)", -1, &_tmp4_, NULL);
+#line 78 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 78 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp4_;
+#line 78 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp5_;
+#line 81 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = res;
+#line 81 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 83 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = now_sec ();
+#line 83 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ time_created = (time_t) _tmp7_;
+#line 85 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp8_ = stmt;
+#line 85 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp9_ = primary_source_id;
+#line 85 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 85 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp11_ = g_free;
+#line 85 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp12_ = sqlite3_bind_text (_tmp8_, 1, _tmp10_, -1, _tmp11_);
+#line 85 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp12_;
+#line 86 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp13_ = res;
+#line 86 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp13_ == SQLITE_OK, "res == Sqlite.OK");
+#line 87 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp14_ = stmt;
+#line 87 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp15_ = time_created;
+#line 87 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp16_ = sqlite3_bind_int64 (_tmp14_, 2, (gint64) _tmp15_);
+#line 87 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp16_;
+#line 88 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp17_ = res;
+#line 88 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp17_ == SQLITE_OK, "res == Sqlite.OK");
+#line 89 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp18_ = stmt;
+#line 89 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp19_ = comment;
+#line 89 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 89 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp21_ = g_free;
+#line 89 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp22_ = sqlite3_bind_text (_tmp18_, 3, _tmp20_, -1, _tmp21_);
+#line 89 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp22_;
+#line 90 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp23_ = res;
+#line 90 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp23_ == SQLITE_OK, "res == Sqlite.OK");
+#line 92 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp24_ = stmt;
+#line 92 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp25_ = sqlite3_step (_tmp24_);
+#line 92 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp25_;
+#line 93 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp26_ = res;
+#line 93 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp26_ != SQLITE_DONE) {
+#line 858 "EventTable.c"
+ gint _tmp27_ = 0;
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp27_ = res;
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ database_table_throw_error ("EventTable.create", _tmp27_, &_inner_error_);
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return NULL;
+#line 874 "EventTable.c"
+ } else {
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_clear_error (&_inner_error_);
+#line 94 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return NULL;
+#line 884 "EventTable.c"
+ }
+ }
+ }
+#line 96 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp28_ = event_row_new ();
+#line 96 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ row = _tmp28_;
+#line 97 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp29_ = row;
+#line 97 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp30_ = database_table_db;
+#line 97 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp31_ = sqlite3_last_insert_rowid (_tmp30_);
+#line 97 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_id_init (&_tmp29_->event_id, _tmp31_);
+#line 98 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp32_ = row;
+#line 98 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp32_->name);
+#line 98 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp32_->name = NULL;
+#line 99 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp33_ = row;
+#line 99 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp34_ = primary_source_id;
+#line 99 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp35_ = g_strdup (_tmp34_);
+#line 99 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp33_->primary_source_id);
+#line 99 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp33_->primary_source_id = _tmp35_;
+#line 100 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp36_ = row;
+#line 100 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp37_ = time_created;
+#line 100 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp36_->time_created = _tmp37_;
+#line 101 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp38_ = row;
+#line 101 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp39_ = comment;
+#line 101 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp40_ = g_strdup (_tmp39_);
+#line 101 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp38_->comment);
+#line 101 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp38_->comment = _tmp40_;
+#line 103 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = row;
+#line 103 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 103 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 938 "EventTable.c"
+}
+
+
+void event_table_create_from_row (EventTable* self, EventRow* row, EventID* result) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ EventRow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GDestroyNotify _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ sqlite3_stmt* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ sqlite3_stmt* _tmp14_ = NULL;
+ EventRow* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ GDestroyNotify _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ sqlite3_stmt* _tmp21_ = NULL;
+ EventRow* _tmp22_ = NULL;
+ time_t _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ sqlite3_stmt* _tmp26_ = NULL;
+ EventRow* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ GDestroyNotify _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ sqlite3_stmt* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ sqlite3* _tmp38_ = NULL;
+ gint64 _tmp39_ = 0LL;
+ EventID _tmp40_ = {0};
+#line 109 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (IS_EVENT_TABLE (self));
+#line 109 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (IS_EVENT_ROW (row));
+#line 111 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = database_table_db;
+#line 111 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO EventTable (name, primary_photo_id, primary_source_id, tim" \
+"e_created, comment) VALUES (?, ?, ?, ?, ?)", -1, &_tmp1_, NULL);
+#line 111 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 111 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp1_;
+#line 111 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp2_;
+#line 113 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = res;
+#line 113 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 115 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = stmt;
+#line 115 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = row;
+#line 115 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = _tmp5_->name;
+#line 115 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 115 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp8_ = g_free;
+#line 115 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp9_ = sqlite3_bind_text (_tmp4_, 1, _tmp7_, -1, _tmp8_);
+#line 115 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp9_;
+#line 116 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp10_ = res;
+#line 116 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp10_ == SQLITE_OK, "res == Sqlite.OK");
+#line 117 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp11_ = stmt;
+#line 117 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp12_ = sqlite3_bind_int64 (_tmp11_, 2, PHOTO_ID_INVALID);
+#line 117 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp12_;
+#line 118 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp13_ = res;
+#line 118 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp13_ == SQLITE_OK, "res == Sqlite.OK");
+#line 119 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp14_ = stmt;
+#line 119 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp15_ = row;
+#line 119 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp16_ = _tmp15_->primary_source_id;
+#line 119 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 119 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp18_ = g_free;
+#line 119 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp19_ = sqlite3_bind_text (_tmp14_, 3, _tmp17_, -1, _tmp18_);
+#line 119 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp19_;
+#line 120 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp20_ = res;
+#line 120 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp20_ == SQLITE_OK, "res == Sqlite.OK");
+#line 121 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp21_ = stmt;
+#line 121 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp22_ = row;
+#line 121 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp23_ = _tmp22_->time_created;
+#line 121 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp24_ = sqlite3_bind_int64 (_tmp21_, 4, (gint64) _tmp23_);
+#line 121 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp24_;
+#line 122 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp25_ = res;
+#line 122 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp25_ == SQLITE_OK, "res == Sqlite.OK");
+#line 123 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp26_ = stmt;
+#line 123 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp27_ = row;
+#line 123 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp28_ = _tmp27_->comment;
+#line 123 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp29_ = g_strdup (_tmp28_);
+#line 123 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp30_ = g_free;
+#line 123 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp31_ = sqlite3_bind_text (_tmp26_, 5, _tmp29_, -1, _tmp30_);
+#line 123 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp31_;
+#line 124 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp32_ = res;
+#line 124 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp32_ == SQLITE_OK, "res == Sqlite.OK");
+#line 126 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp33_ = stmt;
+#line 126 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp34_ = sqlite3_step (_tmp33_);
+#line 126 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp34_;
+#line 127 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp35_ = res;
+#line 127 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp35_ != SQLITE_DONE) {
+#line 1090 "EventTable.c"
+ gint _tmp36_ = 0;
+ EventID _tmp37_ = {0};
+#line 128 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp36_ = res;
+#line 128 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ database_table_fatal ("Event create_from_row", _tmp36_);
+#line 130 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_id_init (&_tmp37_, EVENT_ID_INVALID);
+#line 130 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ *result = _tmp37_;
+#line 130 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 130 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return;
+#line 1105 "EventTable.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp38_ = database_table_db;
+#line 133 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp39_ = sqlite3_last_insert_rowid (_tmp38_);
+#line 133 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_id_init (&_tmp40_, _tmp39_);
+#line 133 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ *result = _tmp40_;
+#line 133 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 133 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return;
+#line 1119 "EventTable.c"
+}
+
+
+EventRow* event_table_get_row (EventTable* self, EventID* event_id) {
+ EventRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ EventID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ EventRow* row = NULL;
+ EventRow* _tmp11_ = NULL;
+ EventRow* _tmp12_ = NULL;
+ EventID _tmp13_ = {0};
+ EventRow* _tmp14_ = NULL;
+ sqlite3_stmt* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ EventRow* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ EventRow* _tmp26_ = NULL;
+ sqlite3_stmt* _tmp27_ = NULL;
+ gint64 _tmp28_ = 0LL;
+ sqlite3_stmt* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ EventRow* _tmp32_ = NULL;
+ sqlite3_stmt* _tmp33_ = NULL;
+ gint64 _tmp34_ = 0LL;
+ EventRow* _tmp35_ = NULL;
+ sqlite3_stmt* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+#line 136 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), NULL);
+#line 136 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 138 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = database_table_db;
+#line 138 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT name, primary_photo_id, primary_source_id, time_created, commen" \
+"t FROM EventTable WHERE id=?", -1, &_tmp1_, NULL);
+#line 138 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 138 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp1_;
+#line 138 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp2_;
+#line 140 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = res;
+#line 140 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 142 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = stmt;
+#line 142 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = *event_id;
+#line 142 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 142 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 142 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp7_;
+#line 143 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp8_ = res;
+#line 143 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 145 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp9_ = stmt;
+#line 145 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 145 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp10_ != SQLITE_ROW) {
+#line 146 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = NULL;
+#line 146 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 146 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1206 "EventTable.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp11_ = event_row_new ();
+#line 148 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ row = _tmp11_;
+#line 149 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp12_ = row;
+#line 149 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp13_ = *event_id;
+#line 149 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp12_->event_id = _tmp13_;
+#line 150 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp14_ = row;
+#line 150 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp15_ = stmt;
+#line 150 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp16_ = sqlite3_column_text (_tmp15_, 0);
+#line 150 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 150 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp14_->name);
+#line 150 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp14_->name = _tmp17_;
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp19_ = row;
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp20_ = _tmp19_->name;
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp20_ != NULL) {
+#line 1236 "EventTable.c"
+ EventRow* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp21_ = row;
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp22_ = _tmp21_->name;
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp23_ = strlen (_tmp22_);
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp24_ = _tmp23_;
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp18_ = _tmp24_ == 0;
+#line 1251 "EventTable.c"
+ } else {
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp18_ = FALSE;
+#line 1255 "EventTable.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp18_) {
+#line 1259 "EventTable.c"
+ EventRow* _tmp25_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp25_ = row;
+#line 152 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp25_->name);
+#line 152 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp25_->name = NULL;
+#line 1267 "EventTable.c"
+ }
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp26_ = row;
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp27_ = stmt;
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp28_ = sqlite3_column_int64 (_tmp27_, 1);
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp29_ = stmt;
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp30_ = sqlite3_column_text (_tmp29_, 2);
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp31_ = event_table_source_id_upgrade (self, _tmp28_, _tmp30_);
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp26_->primary_source_id);
+#line 153 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp26_->primary_source_id = _tmp31_;
+#line 154 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp32_ = row;
+#line 154 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp33_ = stmt;
+#line 154 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp34_ = sqlite3_column_int64 (_tmp33_, 3);
+#line 154 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp32_->time_created = (time_t) _tmp34_;
+#line 155 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp35_ = row;
+#line 155 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp36_ = stmt;
+#line 155 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp37_ = sqlite3_column_text (_tmp36_, 4);
+#line 155 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp38_ = g_strdup (_tmp37_);
+#line 155 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp35_->comment);
+#line 155 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp35_->comment = _tmp38_;
+#line 157 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = row;
+#line 157 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 157 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1311 "EventTable.c"
+}
+
+
+void event_table_remove (EventTable* self, EventID* event_id, GError** error) {
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (IS_EVENT_TABLE (self));
+#line 160 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_if_fail (event_id != NULL);
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = *event_id;
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ database_table_delete_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, &_inner_error_);
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return;
+#line 1337 "EventTable.c"
+ } else {
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_clear_error (&_inner_error_);
+#line 161 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return;
+#line 1345 "EventTable.c"
+ }
+ }
+}
+
+
+GeeArrayList* event_table_get_events (EventTable* self) {
+ GeeArrayList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeArrayList* event_rows = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), NULL);
+#line 166 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = database_table_db;
+#line 166 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id, name, primary_photo_id, primary_source_id, time_created, co" \
+"mment FROM EventTable", -1, &_tmp1_, NULL);
+#line 166 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 166 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp1_;
+#line 166 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp2_;
+#line 168 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = res;
+#line 168 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 170 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = gee_array_list_new (TYPE_EVENT_ROW, (GBoxedCopyFunc) event_row_ref, event_row_unref, NULL, NULL, NULL);
+#line 170 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_rows = _tmp4_;
+#line 1381 "EventTable.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 171 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = TRUE;
+#line 171 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ while (TRUE) {
+#line 1388 "EventTable.c"
+ sqlite3_stmt* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ EventRow* row = NULL;
+ EventRow* _tmp11_ = NULL;
+ EventRow* _tmp12_ = NULL;
+ sqlite3_stmt* _tmp13_ = NULL;
+ gint64 _tmp14_ = 0LL;
+ EventRow* _tmp15_ = NULL;
+ sqlite3_stmt* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ EventRow* _tmp19_ = NULL;
+ sqlite3_stmt* _tmp20_ = NULL;
+ gint64 _tmp21_ = 0LL;
+ sqlite3_stmt* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ EventRow* _tmp25_ = NULL;
+ sqlite3_stmt* _tmp26_ = NULL;
+ gint64 _tmp27_ = 0LL;
+ EventRow* _tmp28_ = NULL;
+ sqlite3_stmt* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ GeeArrayList* _tmp32_ = NULL;
+ EventRow* _tmp33_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (!_tmp5_) {
+#line 1418 "EventTable.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = stmt;
+#line 172 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = sqlite3_step (_tmp6_);
+#line 172 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ res = _tmp7_;
+#line 173 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp8_ = res;
+#line 173 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp8_ == SQLITE_DONE) {
+#line 174 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ break;
+#line 1434 "EventTable.c"
+ } else {
+ gint _tmp9_ = 0;
+#line 175 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp9_ = res;
+#line 175 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp9_ != SQLITE_ROW) {
+#line 1441 "EventTable.c"
+ gint _tmp10_ = 0;
+#line 176 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp10_ = res;
+#line 176 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ database_table_fatal ("get_events", _tmp10_);
+#line 178 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ break;
+#line 1449 "EventTable.c"
+ }
+ }
+#line 181 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp11_ = event_row_new ();
+#line 181 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ row = _tmp11_;
+#line 183 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp12_ = row;
+#line 183 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp13_ = stmt;
+#line 183 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp14_ = sqlite3_column_int64 (_tmp13_, 0);
+#line 183 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_id_init (&_tmp12_->event_id, _tmp14_);
+#line 184 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp15_ = row;
+#line 184 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp16_ = stmt;
+#line 184 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp17_ = sqlite3_column_text (_tmp16_, 1);
+#line 184 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 184 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp15_->name);
+#line 184 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp15_->name = _tmp18_;
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp19_ = row;
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp20_ = stmt;
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp21_ = sqlite3_column_int64 (_tmp20_, 2);
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp22_ = stmt;
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp23_ = sqlite3_column_text (_tmp22_, 3);
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp24_ = event_table_source_id_upgrade (self, _tmp21_, _tmp23_);
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp19_->primary_source_id);
+#line 185 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp19_->primary_source_id = _tmp24_;
+#line 186 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp25_ = row;
+#line 186 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp26_ = stmt;
+#line 186 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp27_ = sqlite3_column_int64 (_tmp26_, 4);
+#line 186 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp25_->time_created = (time_t) _tmp27_;
+#line 187 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp28_ = row;
+#line 187 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp29_ = stmt;
+#line 187 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp30_ = sqlite3_column_text (_tmp29_, 5);
+#line 187 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp31_ = g_strdup (_tmp30_);
+#line 187 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (_tmp28_->comment);
+#line 187 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp28_->comment = _tmp31_;
+#line 189 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp32_ = event_rows;
+#line 189 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp33_ = row;
+#line 189 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp33_);
+#line 171 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _event_row_unref0 (row);
+#line 1520 "EventTable.c"
+ }
+ }
+#line 192 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = event_rows;
+#line 192 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 192 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1529 "EventTable.c"
+}
+
+
+gboolean event_table_rename (EventTable* self, EventID* event_id, const gchar* name) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ EventID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ gboolean _tmp5_ = FALSE;
+#line 195 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), FALSE);
+#line 195 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = name;
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp1_ != NULL) {
+#line 1548 "EventTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = name;
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = _tmp2_;
+#line 1554 "EventTable.c"
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = "";
+#line 1558 "EventTable.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = *event_id;
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = database_table_update_text_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "name", _tmp0_);
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp5_;
+#line 196 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1570 "EventTable.c"
+}
+
+
+gchar* event_table_get_name (EventTable* self, EventID* event_id) {
+ gchar* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gchar* name = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), NULL);
+#line 199 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 201 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = *event_id;
+#line 201 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 201 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = database_table_select_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "name", &_tmp2_);
+#line 201 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 201 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp2_;
+#line 201 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (!_tmp3_) {
+#line 202 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = NULL;
+#line 202 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 202 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1611 "EventTable.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = stmt;
+#line 204 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = sqlite3_column_text (_tmp4_, 0);
+#line 204 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 204 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ name = _tmp6_;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp9_ = name;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp9_ != NULL) {
+#line 1625 "EventTable.c"
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp10_ = name;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp11_ = strlen (_tmp10_);
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp12_ = _tmp11_;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp8_ = _tmp12_ > 0;
+#line 1637 "EventTable.c"
+ } else {
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp8_ = FALSE;
+#line 1641 "EventTable.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp8_) {
+#line 1645 "EventTable.c"
+ const gchar* _tmp13_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp13_ = name;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = _tmp13_;
+#line 1651 "EventTable.c"
+ } else {
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp7_ = NULL;
+#line 1655 "EventTable.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp14_ = g_strdup (_tmp7_);
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp14_;
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _g_free0 (name);
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 206 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1667 "EventTable.c"
+}
+
+
+gchar* event_table_get_primary_source_id (EventTable* self, EventID* event_id) {
+ gchar* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ sqlite3_stmt* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 209 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), NULL);
+#line 209 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 211 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = *event_id;
+#line 211 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 211 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = database_table_select_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "primary_source_id", &_tmp2_);
+#line 211 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 211 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp2_;
+#line 211 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (!_tmp3_) {
+#line 212 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = NULL;
+#line 212 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 212 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1703 "EventTable.c"
+ }
+#line 214 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = stmt;
+#line 214 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = sqlite3_column_text (_tmp4_, 0);
+#line 214 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 214 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp6_;
+#line 214 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 214 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1717 "EventTable.c"
+}
+
+
+gboolean event_table_set_primary_source_id (EventTable* self, EventID* event_id, const gchar* primary_source_id) {
+ gboolean result = FALSE;
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 217 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), FALSE);
+#line 217 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 217 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (primary_source_id != NULL, FALSE);
+#line 218 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = *event_id;
+#line 218 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 218 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = primary_source_id;
+#line 218 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = database_table_update_text_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "primary_source_id", _tmp2_);
+#line 218 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp3_;
+#line 218 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1745 "EventTable.c"
+}
+
+
+time_t event_table_get_time_created (EventTable* self, EventID* event_id) {
+ time_t result = 0;
+ sqlite3_stmt* stmt = NULL;
+ EventID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint64 _tmp5_ = 0LL;
+#line 221 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), 0);
+#line 221 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (event_id != NULL, 0);
+#line 223 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = *event_id;
+#line 223 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 223 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = database_table_select_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "time_created", &_tmp2_);
+#line 223 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 223 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ stmt = _tmp2_;
+#line 223 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (!_tmp3_) {
+#line 224 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = (time_t) 0;
+#line 224 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 224 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1780 "EventTable.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = stmt;
+#line 226 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = sqlite3_column_int64 (_tmp4_, 0);
+#line 226 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = (time_t) _tmp5_;
+#line 226 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 226 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1792 "EventTable.c"
+}
+
+
+gboolean event_table_set_comment (EventTable* self, EventID* event_id, const gchar* new_comment) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ EventID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ gboolean _tmp5_ = FALSE;
+#line 229 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (IS_EVENT_TABLE (self), FALSE);
+#line 229 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 229 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ g_return_val_if_fail (new_comment != NULL, FALSE);
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp1_ = new_comment;
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ if (_tmp1_ != NULL) {
+#line 1813 "EventTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp2_ = new_comment;
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = _tmp2_;
+#line 1819 "EventTable.c"
+ } else {
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp0_ = "";
+#line 1823 "EventTable.c"
+ }
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp3_ = *event_id;
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ _tmp5_ = database_table_update_text_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "comment", _tmp0_);
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ result = _tmp5_;
+#line 230 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ return result;
+#line 1835 "EventTable.c"
+}
+
+
+static void event_table_class_init (EventTableClass * klass) {
+#line 33 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ event_table_parent_class = g_type_class_peek_parent (klass);
+#line 33 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = event_table_finalize;
+#line 1844 "EventTable.c"
+}
+
+
+static void event_table_instance_init (EventTable * self) {
+}
+
+
+static void event_table_finalize (DatabaseTable* obj) {
+ EventTable * self;
+#line 33 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENT_TABLE, EventTable);
+#line 33 "/home/jens/Source/shotwell/src/db/EventTable.vala"
+ DATABASE_TABLE_CLASS (event_table_parent_class)->finalize (obj);
+#line 1858 "EventTable.c"
+}
+
+
+GType event_table_get_type (void) {
+ static volatile gsize event_table_type_id__volatile = 0;
+ if (g_once_init_enter (&event_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventTable), 0, (GInstanceInitFunc) event_table_instance_init, NULL };
+ GType event_table_type_id;
+ event_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "EventTable", &g_define_type_info, 0);
+ g_once_init_leave (&event_table_type_id__volatile, event_table_type_id);
+ }
+ return event_table_type_id__volatile;
+}
+
+
+
diff --git a/src/db/PhotoTable.c b/src/db/PhotoTable.c
new file mode 100644
index 0000000..42ed64a
--- /dev/null
+++ b/src/db/PhotoTable.c
@@ -0,0 +1,9397 @@
+/* PhotoTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from PhotoTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+#include <gee.h>
+#include <sqlite3.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_PHOTO_ROW (photo_row_get_type ())
+#define PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_ROW, PhotoRow))
+#define PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_ROW, PhotoRowClass))
+#define IS_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_ROW))
+#define IS_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_ROW))
+#define PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_ROW, PhotoRowClass))
+
+typedef struct _PhotoRow PhotoRow;
+typedef struct _PhotoRowClass PhotoRowClass;
+typedef struct _PhotoRowPrivate PhotoRowPrivate;
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define TYPE_KEY_VALUE_MAP (key_value_map_get_type ())
+#define KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_VALUE_MAP, KeyValueMap))
+#define KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+#define IS_KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_VALUE_MAP))
+#define IS_KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_VALUE_MAP))
+#define KEY_VALUE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+
+typedef struct _KeyValueMap KeyValueMap;
+typedef struct _KeyValueMapClass KeyValueMapClass;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+#define _backing_photo_row_unref0(var) ((var == NULL) ? NULL : (var = (backing_photo_row_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecPhotoRow ParamSpecPhotoRow;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+
+#define TYPE_PHOTO_TABLE (photo_table_get_type ())
+#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
+#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
+#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
+#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
+#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))
+
+typedef struct _PhotoTable PhotoTable;
+typedef struct _PhotoTableClass PhotoTableClass;
+typedef struct _PhotoTablePrivate PhotoTablePrivate;
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _photo_row_unref0(var) ((var == NULL) ? NULL : (var = (photo_row_unref (var), NULL)))
+#define _g_key_file_unref0(var) ((var == NULL) ? NULL : (var = (g_key_file_unref (var), NULL)))
+#define _key_value_map_unref0(var) ((var == NULL) ? NULL : (var = (key_value_map_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _ParamSpecBackingPhotoRow ParamSpecBackingPhotoRow;
+
+#define TYPE_BACKING_PHOTO_TABLE (backing_photo_table_get_type ())
+#define BACKING_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_TABLE, BackingPhotoTable))
+#define BACKING_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_TABLE, BackingPhotoTableClass))
+#define IS_BACKING_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_TABLE))
+#define IS_BACKING_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_TABLE))
+#define BACKING_PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_TABLE, BackingPhotoTableClass))
+
+typedef struct _BackingPhotoTable BackingPhotoTable;
+typedef struct _BackingPhotoTableClass BackingPhotoTableClass;
+typedef struct _BackingPhotoTablePrivate BackingPhotoTablePrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _PhotoID {
+ gint64 id;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _PhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoRowPrivate * priv;
+ PhotoID photo_id;
+ BackingPhotoRow* master;
+ time_t exposure_time;
+ ImportID import_id;
+ EventID event_id;
+ Orientation orientation;
+ GeeHashMap* transformations;
+ gchar* md5;
+ gchar* thumbnail_md5;
+ gchar* exif_md5;
+ time_t time_created;
+ guint64 flags;
+ Rating rating;
+ gchar* title;
+ gchar* comment;
+ gchar* backlinks;
+ time_t time_reimported;
+ BackingPhotoID editable_id;
+ gboolean metadata_dirty;
+ RawDeveloper developer;
+ BackingPhotoID* development_ids;
+ gint development_ids_length1;
+};
+
+struct _PhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoRow *self);
+};
+
+struct _ParamSpecPhotoRow {
+ GParamSpec parent_instance;
+};
+
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _PhotoTable {
+ DatabaseTable parent_instance;
+ PhotoTablePrivate * priv;
+};
+
+struct _PhotoTableClass {
+ DatabaseTableClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _ParamSpecBackingPhotoRow {
+ GParamSpec parent_instance;
+};
+
+struct _BackingPhotoTable {
+ DatabaseTable parent_instance;
+ BackingPhotoTablePrivate * priv;
+};
+
+struct _BackingPhotoTableClass {
+ DatabaseTableClass parent_class;
+};
+
+
+static gpointer photo_row_parent_class = NULL;
+static gpointer photo_table_parent_class = NULL;
+static PhotoTable* photo_table_instance;
+static PhotoTable* photo_table_instance = NULL;
+extern sqlite3* database_table_db;
+static gpointer backing_photo_row_parent_class = NULL;
+static gpointer backing_photo_table_parent_class = NULL;
+static BackingPhotoTable* backing_photo_table_instance;
+static BackingPhotoTable* backing_photo_table_instance = NULL;
+
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+#define PHOTO_ID_INVALID ((gint64) -1)
+void photo_id_init (PhotoID *self, gint64 id);
+gboolean photo_id_is_invalid (PhotoID *self);
+gboolean photo_id_is_valid (PhotoID *self);
+guint photo_id_hash (PhotoID *self);
+guint int64_hash (gint64* n);
+gboolean photo_id_equal (void* a, void* b);
+gchar* photo_id_upgrade_photo_id_to_source_id (PhotoID* photo_id);
+#define PHOTO_TYPENAME "thumb"
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+#define IMPORT_ID_INVALID ((gint64) 0)
+void import_id_init (ImportID *self, gint64 id);
+void import_id_generate (ImportID* result);
+gboolean import_id_is_invalid (ImportID *self);
+gboolean import_id_is_valid (ImportID *self);
+gint import_id_compare_func (ImportID* a, ImportID* b);
+gint64 import_id_comparator (void* a, void* b);
+gpointer photo_row_ref (gpointer instance);
+void photo_row_unref (gpointer instance);
+GParamSpec* param_spec_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_row (GValue* value, gpointer v_object);
+void value_take_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_photo_row (const GValue* value);
+GType photo_row_get_type (void) G_GNUC_CONST;
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+gpointer key_value_map_ref (gpointer instance);
+void key_value_map_unref (gpointer instance);
+GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_key_value_map (GValue* value, gpointer v_object);
+void value_take_key_value_map (GValue* value, gpointer v_object);
+gpointer value_get_key_value_map (const GValue* value);
+GType key_value_map_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_ROW_DUMMY_PROPERTY
+};
+PhotoRow* photo_row_new (void);
+PhotoRow* photo_row_construct (GType object_type);
+BackingPhotoRow* backing_photo_row_new (void);
+BackingPhotoRow* backing_photo_row_construct (GType object_type);
+#define BACKING_PHOTO_ID_INVALID ((gint64) -1)
+void backing_photo_id_init (BackingPhotoID *self, gint64 id);
+RawDeveloper* raw_developer_as_array (int* result_length1);
+static void photo_row_finalize (PhotoRow* obj);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType photo_table_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_TABLE_DUMMY_PROPERTY
+};
+static PhotoTable* photo_table_new (void);
+static PhotoTable* photo_table_construct (GType object_type);
+DatabaseTable* database_table_construct (GType object_type);
+void database_table_fatal (const gchar* op, gint res);
+void database_table_warning (const gchar* op, gint res);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+PhotoTable* photo_table_get_instance (void);
+void photo_table_add (PhotoTable* self, PhotoRow* photo_row, PhotoID* result);
+gulong now_sec (void);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+#define EVENT_ID_INVALID ((gint64) -1)
+gint photo_file_format_serialize (PhotoFileFormat self);
+gint rating_serialize (Rating self);
+gchar* raw_developer_to_string (RawDeveloper self);
+void event_id_init (EventID *self, gint64 id);
+GQuark database_error_quark (void);
+void photo_table_reimport (PhotoTable* self, PhotoRow* row, GError** error);
+void database_table_throw_error (const gchar* method, gint res, GError** error);
+gboolean photo_table_master_exif_updated (PhotoTable* self, PhotoID* photoID, gint64 filesize, glong timestamp, const gchar* md5, const gchar* exif_md5, const gchar* thumbnail_md5, PhotoRow* row);
+static void photo_table_validate_orientation (PhotoTable* self, PhotoRow* row);
+gboolean photo_table_set_orientation (PhotoTable* self, PhotoID* photo_id, Orientation orientation);
+PhotoRow* photo_table_get_row (PhotoTable* self, PhotoID* photo_id);
+void dimensions_init (Dimensions *self, gint width, gint height);
+GeeHashMap* photo_table_marshall_all_transformations (const gchar* trans);
+Rating rating_unserialize (gint value);
+PhotoFileFormat photo_file_format_unserialize (gint value);
+RawDeveloper raw_developer_from_string (const gchar* value);
+GeeArrayList* photo_table_get_all (PhotoTable* self);
+void photo_table_duplicate (PhotoTable* self, PhotoID* photo_id, const gchar* new_filename, BackingPhotoID* editable_id, BackingPhotoID* develop_shotwell, BackingPhotoID* develop_camera_id, BackingPhotoID* develop_embedded_id, PhotoID* result);
+gchar* photo_table_unmarshall_all_transformations (GeeHashMap* transformations);
+gboolean photo_table_set_title (PhotoTable* self, PhotoID* photo_id, const gchar* new_title);
+gboolean database_table_update_text_by_id (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text);
+gboolean photo_table_set_comment (PhotoTable* self, PhotoID* photo_id, const gchar* new_comment);
+void photo_table_set_filepath (PhotoTable* self, PhotoID* photo_id, const gchar* filepath, GError** error);
+void database_table_update_text_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text, GError** error);
+void photo_table_update_timestamp (PhotoTable* self, PhotoID* photo_id, time_t timestamp, GError** error);
+void database_table_update_int64_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint64 value, GError** error);
+gboolean photo_table_set_exposure_time (PhotoTable* self, PhotoID* photo_id, time_t time);
+gboolean database_table_update_int64_by_id (DatabaseTable* self, gint64 id, const gchar* column, gint64 value);
+void photo_table_set_import_id (PhotoTable* self, PhotoID* photo_id, ImportID* import_id, GError** error);
+gboolean photo_table_remove_by_file (PhotoTable* self, GFile* file);
+void photo_table_remove (PhotoTable* self, PhotoID* photo_id, GError** error);
+void database_table_delete_by_id (DatabaseTable* self, gint64 id, GError** error);
+GeeArrayList* photo_table_get_photos (PhotoTable* self);
+gboolean database_table_update_int_by_id (DatabaseTable* self, gint64 id, const gchar* column, gint value);
+gboolean photo_table_replace_flags (PhotoTable* self, PhotoID* photo_id, guint64 flags);
+gboolean photo_table_set_rating (PhotoTable* self, PhotoID* photo_id, Rating rating);
+gint photo_table_get_event_photo_count (PhotoTable* self, EventID* event_id);
+GeeArrayList* photo_table_get_event_source_ids (PhotoTable* self, EventID* event_id);
+gboolean photo_table_event_has_photos (PhotoTable* self, EventID* event_id);
+gboolean photo_table_drop_event (PhotoTable* self, EventID* event_id);
+gboolean photo_table_set_event (PhotoTable* self, PhotoID* photo_id, EventID* event_id);
+static gchar* photo_table_get_raw_transformations (PhotoTable* self, PhotoID* photo_id);
+gboolean database_table_select_by_id (DatabaseTable* self, gint64 id, const gchar* columns, sqlite3_stmt** stmt);
+static gboolean photo_table_set_raw_transformations (PhotoTable* self, PhotoID* photo_id, const gchar* trans);
+gboolean photo_table_set_transformation_state (PhotoTable* self, PhotoID* photo_id, Orientation orientation, GeeHashMap* transformations);
+KeyValueMap* key_value_map_new (const gchar* group);
+KeyValueMap* key_value_map_construct (GType object_type, const gchar* group);
+void key_value_map_set_string (KeyValueMap* self, const gchar* key, const gchar* value);
+GeeSet* key_value_map_get_keys (KeyValueMap* self);
+gchar* key_value_map_get_string (KeyValueMap* self, const gchar* key, const gchar* def);
+gboolean photo_table_set_transformation (PhotoTable* self, PhotoID* photo_id, KeyValueMap* map);
+gchar* key_value_map_get_group (KeyValueMap* self);
+gboolean photo_table_remove_transformation (PhotoTable* self, PhotoID* photo_id, const gchar* object);
+gboolean photo_table_remove_all_transformations (PhotoTable* self, PhotoID* photo_id);
+static sqlite3_stmt* photo_table_get_duplicate_stmt (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format);
+gboolean photo_table_has_duplicate (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format);
+PhotoID* photo_table_get_duplicate_ids (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format, int* result_length1);
+static void _vala_array_add2 (PhotoID** array, int* length, int* size, const PhotoID* value);
+void photo_table_update_backlinks (PhotoTable* self, PhotoID* photo_id, const gchar* backlinks, GError** error);
+void photo_table_attach_editable (PhotoTable* self, PhotoRow* row, BackingPhotoID* editable_id, GError** error);
+void photo_table_detach_editable (PhotoTable* self, PhotoRow* row, GError** error);
+void photo_table_set_metadata_dirty (PhotoTable* self, PhotoID* photo_id, gboolean dirty, GError** error);
+void database_table_update_int_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint value, GError** error);
+void photo_table_update_raw_development (PhotoTable* self, PhotoRow* row, RawDeveloper rd, BackingPhotoID* backing_photo_id, GError** error);
+void photo_table_remove_development (PhotoTable* self, PhotoRow* row, RawDeveloper rd, GError** error);
+static void photo_table_finalize (DatabaseTable* obj);
+gboolean backing_photo_id_is_invalid (BackingPhotoID *self);
+gboolean backing_photo_id_is_valid (BackingPhotoID *self);
+enum {
+ BACKING_PHOTO_ROW_DUMMY_PROPERTY
+};
+gboolean backing_photo_row_matches_file_info (BackingPhotoRow* self, GFileInfo* info);
+gboolean backing_photo_row_is_touched (BackingPhotoRow* self, GFileInfo* info);
+void backing_photo_row_copy_from (BackingPhotoRow* self, BackingPhotoRow* from);
+static void backing_photo_row_finalize (BackingPhotoRow* obj);
+GType backing_photo_table_get_type (void) G_GNUC_CONST;
+enum {
+ BACKING_PHOTO_TABLE_DUMMY_PROPERTY
+};
+static BackingPhotoTable* backing_photo_table_new (void);
+static BackingPhotoTable* backing_photo_table_construct (GType object_type);
+BackingPhotoTable* backing_photo_table_get_instance (void);
+void backing_photo_table_add (BackingPhotoTable* self, BackingPhotoRow* state, GError** error);
+BackingPhotoRow* backing_photo_table_fetch (BackingPhotoTable* self, BackingPhotoID* id, GError** error);
+void backing_photo_table_update (BackingPhotoTable* self, BackingPhotoRow* row, GError** error);
+void backing_photo_table_update_attributes (BackingPhotoTable* self, BackingPhotoID* id, time_t timestamp, gint64 filesize, GError** error);
+void backing_photo_table_remove (BackingPhotoTable* self, BackingPhotoID* backing_id, GError** error);
+void backing_photo_table_set_filepath (BackingPhotoTable* self, BackingPhotoID* id, const gchar* filepath, GError** error);
+void backing_photo_table_update_timestamp (BackingPhotoTable* self, BackingPhotoID* id, time_t timestamp, GError** error);
+static void backing_photo_table_finalize (DatabaseTable* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+void photo_id_init (PhotoID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 12 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ memset (self, 0, sizeof (PhotoID));
+#line 13 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = id;
+#line 13 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ (*self).id = _tmp0_;
+#line 484 "PhotoTable.c"
+}
+
+
+gboolean photo_id_is_invalid (PhotoID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 17 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = (*self).id;
+#line 17 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp0_ == PHOTO_ID_INVALID;
+#line 17 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 497 "PhotoTable.c"
+}
+
+
+gboolean photo_id_is_valid (PhotoID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 21 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = (*self).id;
+#line 21 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp0_ != PHOTO_ID_INVALID;
+#line 21 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 510 "PhotoTable.c"
+}
+
+
+guint photo_id_hash (PhotoID *self) {
+ guint result = 0U;
+ gint64 _tmp0_ = 0LL;
+ guint _tmp1_ = 0U;
+#line 25 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = (*self).id;
+#line 25 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = int64_hash (&_tmp0_);
+#line 25 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp1_;
+#line 25 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 526 "PhotoTable.c"
+}
+
+
+gboolean photo_id_equal (void* a, void* b) {
+ gboolean result = FALSE;
+ void* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ void* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+#line 29 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = a;
+#line 29 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = (*((PhotoID*) _tmp0_)).id;
+#line 29 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = b;
+#line 29 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = (*((PhotoID*) _tmp2_)).id;
+#line 29 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp1_ == _tmp3_;
+#line 29 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 548 "PhotoTable.c"
+}
+
+
+gchar* photo_id_upgrade_photo_id_to_source_id (PhotoID* photo_id) {
+ gchar* result = NULL;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ gchar* _tmp2_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, NULL);
+#line 33 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 33 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 33 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = g_strdup_printf ("%s%016" G_GINT64_MODIFIER "x", PHOTO_TYPENAME, _tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 569 "PhotoTable.c"
+}
+
+
+PhotoID* photo_id_dup (const PhotoID* self) {
+ PhotoID* dup;
+#line 7 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dup = g_new0 (PhotoID, 1);
+#line 7 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ memcpy (dup, self, sizeof (PhotoID));
+#line 7 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return dup;
+#line 581 "PhotoTable.c"
+}
+
+
+void photo_id_free (PhotoID* self) {
+#line 7 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_free (self);
+#line 588 "PhotoTable.c"
+}
+
+
+GType photo_id_get_type (void) {
+ static volatile gsize photo_id_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_id_type_id__volatile)) {
+ GType photo_id_type_id;
+ photo_id_type_id = g_boxed_type_register_static ("PhotoID", (GBoxedCopyFunc) photo_id_dup, (GBoxedFreeFunc) photo_id_free);
+ g_once_init_leave (&photo_id_type_id__volatile, photo_id_type_id);
+ }
+ return photo_id_type_id__volatile;
+}
+
+
+void import_id_init (ImportID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 42 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ memset (self, 0, sizeof (ImportID));
+#line 43 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = id;
+#line 43 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ (*self).id = _tmp0_;
+#line 611 "PhotoTable.c"
+}
+
+
+void import_id_generate (ImportID* result) {
+ GTimeVal timestamp = {0};
+ gint64 id = 0LL;
+ GTimeVal _tmp0_ = {0};
+ glong _tmp1_ = 0L;
+ ImportID _tmp2_ = {0};
+#line 47 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_get_current_time (&timestamp);
+#line 48 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_get_current_time (&timestamp);
+#line 49 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = timestamp;
+#line 49 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.tv_sec;
+#line 49 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ id = (gint64) _tmp1_;
+#line 51 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ import_id_init (&_tmp2_, id);
+#line 51 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *result = _tmp2_;
+#line 51 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 637 "PhotoTable.c"
+}
+
+
+gboolean import_id_is_invalid (ImportID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 55 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = (*self).id;
+#line 55 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp0_ == IMPORT_ID_INVALID;
+#line 55 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 650 "PhotoTable.c"
+}
+
+
+gboolean import_id_is_valid (ImportID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 59 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = (*self).id;
+#line 59 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp0_ != IMPORT_ID_INVALID;
+#line 59 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 663 "PhotoTable.c"
+}
+
+
+gint import_id_compare_func (ImportID* a, ImportID* b) {
+ gint result = 0;
+ gboolean _tmp0_ = FALSE;
+ ImportID* _tmp1_ = NULL;
+ ImportID* _tmp3_ = NULL;
+ gint64 _tmp4_ = 0LL;
+ ImportID* _tmp5_ = NULL;
+ gint64 _tmp6_ = 0LL;
+#line 63 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = a;
+#line 63 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 679 "PhotoTable.c"
+ ImportID* _tmp2_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = b;
+#line 63 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 685 "PhotoTable.c"
+ } else {
+#line 63 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = FALSE;
+#line 689 "PhotoTable.c"
+ }
+#line 63 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp0_, "a != null && b != null");
+#line 64 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = a;
+#line 64 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = (*_tmp3_).id;
+#line 64 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = b;
+#line 64 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = (*_tmp5_).id;
+#line 64 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = (gint) (_tmp4_ - _tmp6_);
+#line 64 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 705 "PhotoTable.c"
+}
+
+
+gint64 import_id_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ void* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+#line 68 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = a;
+#line 68 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = (*((ImportID*) _tmp0_)).id;
+#line 68 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = b;
+#line 68 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = (*((ImportID*) _tmp2_)).id;
+#line 68 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp1_ - _tmp3_;
+#line 68 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 727 "PhotoTable.c"
+}
+
+
+ImportID* import_id_dup (const ImportID* self) {
+ ImportID* dup;
+#line 37 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dup = g_new0 (ImportID, 1);
+#line 37 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ memcpy (dup, self, sizeof (ImportID));
+#line 37 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return dup;
+#line 739 "PhotoTable.c"
+}
+
+
+void import_id_free (ImportID* self) {
+#line 37 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_free (self);
+#line 746 "PhotoTable.c"
+}
+
+
+GType import_id_get_type (void) {
+ static volatile gsize import_id_type_id__volatile = 0;
+ if (g_once_init_enter (&import_id_type_id__volatile)) {
+ GType import_id_type_id;
+ import_id_type_id = g_boxed_type_register_static ("ImportID", (GBoxedCopyFunc) import_id_dup, (GBoxedFreeFunc) import_id_free);
+ g_once_init_leave (&import_id_type_id__volatile, import_id_type_id);
+ }
+ return import_id_type_id__volatile;
+}
+
+
+PhotoRow* photo_row_construct (GType object_type) {
+ PhotoRow* self = NULL;
+ BackingPhotoRow* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ RawDeveloper* _tmp2_ = NULL;
+ RawDeveloper* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ BackingPhotoID* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ RawDeveloper* _tmp6_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = (PhotoRow*) g_type_create_instance (object_type);
+#line 101 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = backing_photo_row_new ();
+#line 101 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _backing_photo_row_unref0 (self->master);
+#line 101 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->master = _tmp0_;
+#line 102 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&self->editable_id, BACKING_PHOTO_ID_INVALID);
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = raw_developer_as_array (&_tmp1_);
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3__length1 = _tmp1_;
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = g_new0 (BackingPhotoID, _tmp1_);
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->development_ids = (g_free (self->development_ids), NULL);
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->development_ids = _tmp4_;
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->development_ids_length1 = _tmp1_;
+#line 103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = (g_free (_tmp3_), NULL);
+#line 104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = raw_developer_as_array (&_tmp5_);
+#line 799 "PhotoTable.c"
+ {
+ RawDeveloper* d_collection = NULL;
+ gint d_collection_length1 = 0;
+ gint _d_collection_size_ = 0;
+ gint d_it = 0;
+#line 104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ d_collection = _tmp6_;
+#line 104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ d_collection_length1 = _tmp5_;
+#line 104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ for (d_it = 0; d_it < _tmp5_; d_it = d_it + 1) {
+#line 811 "PhotoTable.c"
+ RawDeveloper d = 0;
+#line 104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ d = d_collection[d_it];
+#line 815 "PhotoTable.c"
+ {
+ BackingPhotoID* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ RawDeveloper _tmp8_ = 0;
+ BackingPhotoID _tmp9_ = {0};
+ BackingPhotoID _tmp10_ = {0};
+#line 105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = self->development_ids;
+#line 105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7__length1 = self->development_ids_length1;
+#line 105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = d;
+#line 105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp9_, BACKING_PHOTO_ID_INVALID);
+#line 105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_[_tmp8_] = _tmp9_;
+#line 105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = _tmp7_[_tmp8_];
+#line 834 "PhotoTable.c"
+ }
+ }
+#line 104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ d_collection = (g_free (d_collection), NULL);
+#line 839 "PhotoTable.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return self;
+#line 843 "PhotoTable.c"
+}
+
+
+PhotoRow* photo_row_new (void) {
+#line 100 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return photo_row_construct (TYPE_PHOTO_ROW);
+#line 850 "PhotoTable.c"
+}
+
+
+static void value_photo_row_init (GValue* value) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 857 "PhotoTable.c"
+}
+
+
+static void value_photo_row_free_value (GValue* value) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (value->data[0].v_pointer) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_row_unref (value->data[0].v_pointer);
+#line 866 "PhotoTable.c"
+ }
+}
+
+
+static void value_photo_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dest_value->data[0].v_pointer = photo_row_ref (src_value->data[0].v_pointer);
+#line 876 "PhotoTable.c"
+ } else {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 880 "PhotoTable.c"
+ }
+}
+
+
+static gpointer value_photo_row_peek_pointer (const GValue* value) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return value->data[0].v_pointer;
+#line 888 "PhotoTable.c"
+}
+
+
+static gchar* value_photo_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 895 "PhotoTable.c"
+ PhotoRow* object;
+ object = collect_values[0].v_pointer;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 902 "PhotoTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 906 "PhotoTable.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = photo_row_ref (object);
+#line 910 "PhotoTable.c"
+ } else {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 914 "PhotoTable.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return NULL;
+#line 918 "PhotoTable.c"
+}
+
+
+static gchar* value_photo_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!object_p) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 929 "PhotoTable.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *object_p = NULL;
+#line 935 "PhotoTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 939 "PhotoTable.c"
+ } else {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *object_p = photo_row_ref (value->data[0].v_pointer);
+#line 943 "PhotoTable.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return NULL;
+#line 947 "PhotoTable.c"
+}
+
+
+GParamSpec* param_spec_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoRow* spec;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_ROW), NULL);
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 961 "PhotoTable.c"
+}
+
+
+gpointer value_get_photo_row (const GValue* value) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_ROW), NULL);
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return value->data[0].v_pointer;
+#line 970 "PhotoTable.c"
+}
+
+
+void value_set_photo_row (GValue* value, gpointer v_object) {
+ PhotoRow* old;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_ROW));
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ old = value->data[0].v_pointer;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (v_object) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_ROW));
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_row_ref (value->data[0].v_pointer);
+#line 990 "PhotoTable.c"
+ } else {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 994 "PhotoTable.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (old) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_row_unref (old);
+#line 1000 "PhotoTable.c"
+ }
+}
+
+
+void value_take_photo_row (GValue* value, gpointer v_object) {
+ PhotoRow* old;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_ROW));
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ old = value->data[0].v_pointer;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (v_object) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_ROW));
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 1019 "PhotoTable.c"
+ } else {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 1023 "PhotoTable.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (old) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_row_unref (old);
+#line 1029 "PhotoTable.c"
+ }
+}
+
+
+static void photo_row_class_init (PhotoRowClass * klass) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_row_parent_class = g_type_class_peek_parent (klass);
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ((PhotoRowClass *) klass)->finalize = photo_row_finalize;
+#line 1039 "PhotoTable.c"
+}
+
+
+static void photo_row_instance_init (PhotoRow * self) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->ref_count = 1;
+#line 1046 "PhotoTable.c"
+}
+
+
+static void photo_row_finalize (PhotoRow* obj) {
+ PhotoRow * self;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_ROW, PhotoRow);
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_signal_handlers_destroy (self);
+#line 74 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _backing_photo_row_unref0 (self->master);
+#line 79 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (self->transformations);
+#line 80 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->md5);
+#line 81 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->thumbnail_md5);
+#line 82 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->exif_md5);
+#line 86 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->title);
+#line 87 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->comment);
+#line 88 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->backlinks);
+#line 97 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->development_ids = (g_free (self->development_ids), NULL);
+#line 1074 "PhotoTable.c"
+}
+
+
+GType photo_row_get_type (void) {
+ static volatile gsize photo_row_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_row_init, value_photo_row_free_value, value_photo_row_copy_value, value_photo_row_peek_pointer, "p", value_photo_row_collect_value, "p", value_photo_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoRow), 0, (GInstanceInitFunc) photo_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_row_type_id;
+ photo_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&photo_row_type_id__volatile, photo_row_type_id);
+ }
+ return photo_row_type_id__volatile;
+}
+
+
+gpointer photo_row_ref (gpointer instance) {
+ PhotoRow* self;
+ self = instance;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return instance;
+#line 1099 "PhotoTable.c"
+}
+
+
+void photo_row_unref (gpointer instance) {
+ PhotoRow* self;
+ self = instance;
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ PHOTO_ROW_GET_CLASS (self)->finalize (self);
+#line 72 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1112 "PhotoTable.c"
+ }
+}
+
+
+static PhotoTable* photo_table_construct (GType object_type) {
+ PhotoTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* stmt2 = NULL;
+ gint res2 = 0;
+ sqlite3* _tmp8_ = NULL;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ sqlite3* _tmp16_ = NULL;
+ sqlite3_stmt* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ sqlite3_stmt* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ sqlite3* _tmp24_ = NULL;
+ sqlite3_stmt* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ sqlite3_stmt* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ sqlite3* _tmp32_ = NULL;
+ sqlite3_stmt* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ sqlite3_stmt* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 112 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = (PhotoTable*) database_table_construct (object_type);
+#line 114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS PhotoTable (" "id INTEGER PRIMARY KEY, " "filename TEXT UNIQUE NOT NULL, " "width INTEGER, " "height INTEGER, " "filesize INTEGER, " "timestamp INTEGER, " "exposure_time INTEGER, " "orientation INTEGER, " "original_orientation INTEGER, " "import_id INTEGER, " "event_id INTEGER, " "transformations TEXT, " "md5 TEXT, " "thumbnail_md5 TEXT, " "exif_md5 TEXT, " "time_created INTEGER, " "flags INTEGER DEFAULT 0, " "rating INTEGER DEFAULT 0, " "file_format INTEGER DEFAULT 0, " "title TEXT, " "backlinks TEXT, " "time_reimported INTEGER, " "editable_id INTEGER DEFAULT -1, " "metadata_dirty INTEGER DEFAULT 0, " "developer TEXT, " "develop_shotwell_id INTEGER DEFAULT -1, " "develop_camera_id INTEGER DEFAULT -1, " "develop_embedded_id INTEGER DEFAULT -1, " "comment TEXT" ")", -1, &_tmp1_, NULL);
+#line 114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 145 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 145 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 147 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 147 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 147 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp5_;
+#line 148 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = res;
+#line 148 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 1184 "PhotoTable.c"
+ gint _tmp7_ = 0;
+#line 149 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = res;
+#line 149 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("create photo table", _tmp7_);
+#line 1190 "PhotoTable.c"
+ }
+#line 153 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = database_table_db;
+#line 153 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_prepare_v2 (_tmp8_, "CREATE INDEX IF NOT EXISTS PhotoEventIDIndex ON PhotoTable (event_id)", -1, &_tmp9_, NULL);
+#line 153 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt2);
+#line 153 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt2 = _tmp9_;
+#line 153 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res2 = _tmp10_;
+#line 155 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res2;
+#line 155 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res2 == Sqlite.OK");
+#line 157 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt2;
+#line 157 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 157 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res2 = _tmp13_;
+#line 158 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = res2;
+#line 158 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp14_ != SQLITE_DONE) {
+#line 1216 "PhotoTable.c"
+ gint _tmp15_ = 0;
+#line 159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = res2;
+#line 159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("create photo table", _tmp15_);
+#line 1222 "PhotoTable.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = database_table_db;
+#line 165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = sqlite3_prepare_v2 (_tmp16_, "CREATE UNIQUE INDEX IF NOT EXISTS PhotoTableMD5Format on PhotoTable(md" \
+"5, file_format)", -1, &_tmp17_, NULL);
+#line 165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp17_;
+#line 165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp18_;
+#line 166 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = res;
+#line 166 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp19_ == SQLITE_OK, "res == Sqlite.OK");
+#line 167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = stmt;
+#line 167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = sqlite3_step (_tmp20_);
+#line 167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp21_;
+#line 168 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = res;
+#line 168 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp22_ != SQLITE_DONE) {
+#line 1248 "PhotoTable.c"
+ gint _tmp23_ = 0;
+#line 169 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = res;
+#line 169 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_warning ("Failed to create index on md5 and file_format", _tmp23_);
+#line 1254 "PhotoTable.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = database_table_db;
+#line 173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = sqlite3_prepare_v2 (_tmp24_, "CREATE INDEX IF NOT EXISTS PhotoTableThumbnailMD5Format on PhotoTable(" \
+"thumbnail_md5, file_format)", -1, &_tmp25_, NULL);
+#line 173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp25_;
+#line 173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp26_;
+#line 174 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = res;
+#line 174 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp27_ == SQLITE_OK, "res == Sqlite.OK");
+#line 175 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = stmt;
+#line 175 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = sqlite3_step (_tmp28_);
+#line 175 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp29_;
+#line 176 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = res;
+#line 176 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp30_ != SQLITE_DONE) {
+#line 1280 "PhotoTable.c"
+ gint _tmp31_ = 0;
+#line 177 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = res;
+#line 177 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_warning ("Failed to create index on md5 and file_format", _tmp31_);
+#line 1286 "PhotoTable.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = database_table_db;
+#line 181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = sqlite3_prepare_v2 (_tmp32_, "CREATE INDEX IF NOT EXISTS PhotoTableThumbnailMD5MD5 on PhotoTable(thu" \
+"mbnail_md5, md5)", -1, &_tmp33_, NULL);
+#line 181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp33_;
+#line 181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp34_;
+#line 182 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = res;
+#line 182 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp35_ == SQLITE_OK, "res == Sqlite.OK");
+#line 183 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = stmt;
+#line 183 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = sqlite3_step (_tmp36_);
+#line 183 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp37_;
+#line 184 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = res;
+#line 184 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp38_ != SQLITE_DONE) {
+#line 1312 "PhotoTable.c"
+ gint _tmp39_ = 0;
+#line 185 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = res;
+#line 185 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_warning ("Failed to create index on thumbnail_md5 and md5", _tmp39_);
+#line 1318 "PhotoTable.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "PhotoTable");
+#line 112 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt2);
+#line 112 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 112 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return self;
+#line 1328 "PhotoTable.c"
+}
+
+
+static PhotoTable* photo_table_new (void) {
+#line 112 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return photo_table_construct (TYPE_PHOTO_TABLE);
+#line 1335 "PhotoTable.c"
+}
+
+
+static gpointer _database_table_ref0 (gpointer self) {
+#line 195 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return self ? database_table_ref (self) : NULL;
+#line 1342 "PhotoTable.c"
+}
+
+
+PhotoTable* photo_table_get_instance (void) {
+ PhotoTable* result = NULL;
+ PhotoTable* _tmp0_ = NULL;
+ PhotoTable* _tmp2_ = NULL;
+ PhotoTable* _tmp3_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = photo_table_instance;
+#line 192 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp0_ == NULL) {
+#line 1355 "PhotoTable.c"
+ PhotoTable* _tmp1_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = photo_table_new ();
+#line 193 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _database_table_unref0 (photo_table_instance);
+#line 193 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_table_instance = _tmp1_;
+#line 1363 "PhotoTable.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = photo_table_instance;
+#line 195 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 195 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_;
+#line 195 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 1373 "PhotoTable.c"
+}
+
+
+void photo_table_add (PhotoTable* self, PhotoRow* photo_row, PhotoID* result) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gulong time_created = 0UL;
+ gulong _tmp4_ = 0UL;
+ sqlite3_stmt* _tmp5_ = NULL;
+ PhotoRow* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GDestroyNotify _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ sqlite3_stmt* _tmp13_ = NULL;
+ PhotoRow* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ Dimensions _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ sqlite3_stmt* _tmp20_ = NULL;
+ PhotoRow* _tmp21_ = NULL;
+ BackingPhotoRow* _tmp22_ = NULL;
+ Dimensions _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ sqlite3_stmt* _tmp27_ = NULL;
+ PhotoRow* _tmp28_ = NULL;
+ BackingPhotoRow* _tmp29_ = NULL;
+ gint64 _tmp30_ = 0LL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ sqlite3_stmt* _tmp33_ = NULL;
+ PhotoRow* _tmp34_ = NULL;
+ BackingPhotoRow* _tmp35_ = NULL;
+ time_t _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ sqlite3_stmt* _tmp39_ = NULL;
+ PhotoRow* _tmp40_ = NULL;
+ time_t _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ sqlite3_stmt* _tmp44_ = NULL;
+ PhotoRow* _tmp45_ = NULL;
+ BackingPhotoRow* _tmp46_ = NULL;
+ Orientation _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ gint _tmp49_ = 0;
+ sqlite3_stmt* _tmp50_ = NULL;
+ PhotoRow* _tmp51_ = NULL;
+ BackingPhotoRow* _tmp52_ = NULL;
+ Orientation _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ sqlite3_stmt* _tmp56_ = NULL;
+ PhotoRow* _tmp57_ = NULL;
+ ImportID _tmp58_ = {0};
+ gint64 _tmp59_ = 0LL;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+ sqlite3_stmt* _tmp62_ = NULL;
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+ sqlite3_stmt* _tmp65_ = NULL;
+ PhotoRow* _tmp66_ = NULL;
+ const gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ GDestroyNotify _tmp69_ = NULL;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ sqlite3_stmt* _tmp72_ = NULL;
+ PhotoRow* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ GDestroyNotify _tmp76_ = NULL;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ sqlite3_stmt* _tmp79_ = NULL;
+ PhotoRow* _tmp80_ = NULL;
+ const gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ GDestroyNotify _tmp83_ = NULL;
+ gint _tmp84_ = 0;
+ gint _tmp85_ = 0;
+ sqlite3_stmt* _tmp86_ = NULL;
+ gulong _tmp87_ = 0UL;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+ sqlite3_stmt* _tmp90_ = NULL;
+ PhotoRow* _tmp91_ = NULL;
+ BackingPhotoRow* _tmp92_ = NULL;
+ PhotoFileFormat _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ sqlite3_stmt* _tmp97_ = NULL;
+ PhotoRow* _tmp98_ = NULL;
+ const gchar* _tmp99_ = NULL;
+ gchar* _tmp100_ = NULL;
+ GDestroyNotify _tmp101_ = NULL;
+ gint _tmp102_ = 0;
+ gint _tmp103_ = 0;
+ sqlite3_stmt* _tmp104_ = NULL;
+ PhotoRow* _tmp105_ = NULL;
+ Rating _tmp106_ = 0;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ sqlite3_stmt* _tmp110_ = NULL;
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ sqlite3_stmt* _tmp113_ = NULL;
+ PhotoRow* _tmp114_ = NULL;
+ RawDeveloper _tmp115_ = 0;
+ gchar* _tmp116_ = NULL;
+ GDestroyNotify _tmp117_ = NULL;
+ gint _tmp118_ = 0;
+ gint _tmp119_ = 0;
+ sqlite3_stmt* _tmp120_ = NULL;
+ PhotoRow* _tmp121_ = NULL;
+ const gchar* _tmp122_ = NULL;
+ gchar* _tmp123_ = NULL;
+ GDestroyNotify _tmp124_ = NULL;
+ gint _tmp125_ = 0;
+ gint _tmp126_ = 0;
+ sqlite3_stmt* _tmp127_ = NULL;
+ gint _tmp128_ = 0;
+ gint _tmp129_ = 0;
+ PhotoRow* _tmp133_ = NULL;
+ sqlite3* _tmp134_ = NULL;
+ gint64 _tmp135_ = 0LL;
+ PhotoRow* _tmp136_ = NULL;
+ PhotoRow* _tmp137_ = NULL;
+ BackingPhotoRow* _tmp138_ = NULL;
+ Orientation _tmp139_ = 0;
+ PhotoRow* _tmp140_ = NULL;
+ PhotoRow* _tmp141_ = NULL;
+ gulong _tmp142_ = 0UL;
+ PhotoRow* _tmp143_ = NULL;
+ PhotoRow* _tmp144_ = NULL;
+ PhotoID _tmp145_ = {0};
+#line 200 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 200 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_ROW (photo_row));
+#line 202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO PhotoTable (filename, width, height, filesize, timestamp, " \
+"exposure_time, " "orientation, original_orientation, import_id, event_id, md5, thumbnail" \
+"_md5, " "exif_md5, time_created, file_format, title, rating, editable_id, devel" \
+"oper, comment) " "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", -1, &_tmp1_, NULL);
+#line 202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 208 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 208 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 210 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = now_sec ();
+#line 210 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ time_created = _tmp4_;
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = stmt;
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = photo_row;
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = _tmp6_->master;
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = _tmp7_->filepath;
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = g_free;
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = sqlite3_bind_text (_tmp5_, 1, _tmp9_, -1, _tmp10_);
+#line 212 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp11_;
+#line 213 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = res;
+#line 213 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp12_ == SQLITE_OK, "res == Sqlite.OK");
+#line 214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = stmt;
+#line 214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = photo_row;
+#line 214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = _tmp14_->master;
+#line 214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _tmp15_->dim;
+#line 214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = _tmp16_.width;
+#line 214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = sqlite3_bind_int (_tmp13_, 2, _tmp17_);
+#line 214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp18_;
+#line 215 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = res;
+#line 215 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp19_ == SQLITE_OK, "res == Sqlite.OK");
+#line 216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = stmt;
+#line 216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = photo_row;
+#line 216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = _tmp21_->master;
+#line 216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = _tmp22_->dim;
+#line 216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = _tmp23_.height;
+#line 216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = sqlite3_bind_int (_tmp20_, 3, _tmp24_);
+#line 216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp25_;
+#line 217 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = res;
+#line 217 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp26_ == SQLITE_OK, "res == Sqlite.OK");
+#line 218 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = stmt;
+#line 218 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = photo_row;
+#line 218 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = _tmp28_->master;
+#line 218 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = _tmp29_->filesize;
+#line 218 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = sqlite3_bind_int64 (_tmp27_, 4, _tmp30_);
+#line 218 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp31_;
+#line 219 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = res;
+#line 219 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp32_ == SQLITE_OK, "res == Sqlite.OK");
+#line 220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = stmt;
+#line 220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = photo_row;
+#line 220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = _tmp34_->master;
+#line 220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = _tmp35_->timestamp;
+#line 220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = sqlite3_bind_int64 (_tmp33_, 5, (gint64) _tmp36_);
+#line 220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp37_;
+#line 221 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = res;
+#line 221 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp38_ == SQLITE_OK, "res == Sqlite.OK");
+#line 222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = stmt;
+#line 222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = photo_row;
+#line 222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = _tmp40_->exposure_time;
+#line 222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = sqlite3_bind_int64 (_tmp39_, 6, (gint64) _tmp41_);
+#line 222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp42_;
+#line 223 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = res;
+#line 223 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp43_ == SQLITE_OK, "res == Sqlite.OK");
+#line 224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = stmt;
+#line 224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = photo_row;
+#line 224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = _tmp45_->master;
+#line 224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = _tmp46_->original_orientation;
+#line 224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = sqlite3_bind_int (_tmp44_, 7, (gint) _tmp47_);
+#line 224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp48_;
+#line 225 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = res;
+#line 225 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp49_ == SQLITE_OK, "res == Sqlite.OK");
+#line 226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = stmt;
+#line 226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = photo_row;
+#line 226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = _tmp51_->master;
+#line 226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = _tmp52_->original_orientation;
+#line 226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = sqlite3_bind_int (_tmp50_, 8, (gint) _tmp53_);
+#line 226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp54_;
+#line 227 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_ = res;
+#line 227 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp55_ == SQLITE_OK, "res == Sqlite.OK");
+#line 228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_ = stmt;
+#line 228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_ = photo_row;
+#line 228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp58_ = _tmp57_->import_id;
+#line 228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp59_ = _tmp58_.id;
+#line 228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp60_ = sqlite3_bind_int64 (_tmp56_, 9, _tmp59_);
+#line 228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp60_;
+#line 229 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp61_ = res;
+#line 229 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp61_ == SQLITE_OK, "res == Sqlite.OK");
+#line 230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp62_ = stmt;
+#line 230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_ = sqlite3_bind_int64 (_tmp62_, 10, EVENT_ID_INVALID);
+#line 230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp63_;
+#line 231 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp64_ = res;
+#line 231 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp64_ == SQLITE_OK, "res == Sqlite.OK");
+#line 232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp65_ = stmt;
+#line 232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp66_ = photo_row;
+#line 232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp67_ = _tmp66_->md5;
+#line 232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp68_ = g_strdup (_tmp67_);
+#line 232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp69_ = g_free;
+#line 232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp70_ = sqlite3_bind_text (_tmp65_, 11, _tmp68_, -1, _tmp69_);
+#line 232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp70_;
+#line 233 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp71_ = res;
+#line 233 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp71_ == SQLITE_OK, "res == Sqlite.OK");
+#line 234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp72_ = stmt;
+#line 234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp73_ = photo_row;
+#line 234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp74_ = _tmp73_->thumbnail_md5;
+#line 234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp75_ = g_strdup (_tmp74_);
+#line 234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp76_ = g_free;
+#line 234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp77_ = sqlite3_bind_text (_tmp72_, 12, _tmp75_, -1, _tmp76_);
+#line 234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp77_;
+#line 235 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp78_ = res;
+#line 235 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp78_ == SQLITE_OK, "res == Sqlite.OK");
+#line 236 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp79_ = stmt;
+#line 236 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp80_ = photo_row;
+#line 236 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp81_ = _tmp80_->exif_md5;
+#line 236 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp82_ = g_strdup (_tmp81_);
+#line 236 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp83_ = g_free;
+#line 236 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp84_ = sqlite3_bind_text (_tmp79_, 13, _tmp82_, -1, _tmp83_);
+#line 236 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp84_;
+#line 237 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp85_ = res;
+#line 237 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp85_ == SQLITE_OK, "res == Sqlite.OK");
+#line 238 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp86_ = stmt;
+#line 238 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp87_ = time_created;
+#line 238 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp88_ = sqlite3_bind_int64 (_tmp86_, 14, (gint64) _tmp87_);
+#line 238 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp88_;
+#line 239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp89_ = res;
+#line 239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp89_ == SQLITE_OK, "res == Sqlite.OK");
+#line 240 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp90_ = stmt;
+#line 240 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp91_ = photo_row;
+#line 240 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp92_ = _tmp91_->master;
+#line 240 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp93_ = _tmp92_->file_format;
+#line 240 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp94_ = photo_file_format_serialize (_tmp93_);
+#line 240 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp95_ = sqlite3_bind_int (_tmp90_, 15, _tmp94_);
+#line 240 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp95_;
+#line 241 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp96_ = res;
+#line 241 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp96_ == SQLITE_OK, "res == Sqlite.OK");
+#line 242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp97_ = stmt;
+#line 242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp98_ = photo_row;
+#line 242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp99_ = _tmp98_->title;
+#line 242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp100_ = g_strdup (_tmp99_);
+#line 242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp101_ = g_free;
+#line 242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp102_ = sqlite3_bind_text (_tmp97_, 16, _tmp100_, -1, _tmp101_);
+#line 242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp102_;
+#line 243 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp103_ = res;
+#line 243 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp103_ == SQLITE_OK, "res == Sqlite.OK");
+#line 244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp104_ = stmt;
+#line 244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp105_ = photo_row;
+#line 244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp106_ = _tmp105_->rating;
+#line 244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp107_ = rating_serialize (_tmp106_);
+#line 244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp108_ = sqlite3_bind_int64 (_tmp104_, 17, (gint64) _tmp107_);
+#line 244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp108_;
+#line 245 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp109_ = res;
+#line 245 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp109_ == SQLITE_OK, "res == Sqlite.OK");
+#line 246 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp110_ = stmt;
+#line 246 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp111_ = sqlite3_bind_int64 (_tmp110_, 18, BACKING_PHOTO_ID_INVALID);
+#line 246 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp111_;
+#line 247 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp112_ = res;
+#line 247 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp112_ == SQLITE_OK, "res == Sqlite.OK");
+#line 248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp113_ = stmt;
+#line 248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp114_ = photo_row;
+#line 248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp115_ = _tmp114_->developer;
+#line 248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp116_ = raw_developer_to_string (_tmp115_);
+#line 248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp117_ = g_free;
+#line 248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp118_ = sqlite3_bind_text (_tmp113_, 19, _tmp116_, -1, _tmp117_);
+#line 248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp118_;
+#line 249 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp119_ = res;
+#line 249 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp119_ == SQLITE_OK, "res == Sqlite.OK");
+#line 250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp120_ = stmt;
+#line 250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp121_ = photo_row;
+#line 250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp122_ = _tmp121_->comment;
+#line 250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp123_ = g_strdup (_tmp122_);
+#line 250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp124_ = g_free;
+#line 250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp125_ = sqlite3_bind_text (_tmp120_, 20, _tmp123_, -1, _tmp124_);
+#line 250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp125_;
+#line 251 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp126_ = res;
+#line 251 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp126_ == SQLITE_OK, "res == Sqlite.OK");
+#line 253 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp127_ = stmt;
+#line 253 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp128_ = sqlite3_step (_tmp127_);
+#line 253 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp128_;
+#line 254 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp129_ = res;
+#line 254 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp129_ != SQLITE_DONE) {
+#line 1880 "PhotoTable.c"
+ gint _tmp130_ = 0;
+ PhotoID _tmp132_ = {0};
+#line 255 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp130_ = res;
+#line 255 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp130_ != SQLITE_CONSTRAINT) {
+#line 1887 "PhotoTable.c"
+ gint _tmp131_ = 0;
+#line 256 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp131_ = res;
+#line 256 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("add_photo", _tmp131_);
+#line 1893 "PhotoTable.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_id_init (&_tmp132_, PHOTO_ID_INVALID);
+#line 258 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *result = _tmp132_;
+#line 258 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 258 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 1903 "PhotoTable.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp133_ = photo_row;
+#line 262 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp134_ = database_table_db;
+#line 262 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp135_ = sqlite3_last_insert_rowid (_tmp134_);
+#line 262 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_id_init (&_tmp133_->photo_id, _tmp135_);
+#line 263 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp136_ = photo_row;
+#line 263 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp137_ = photo_row;
+#line 263 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp138_ = _tmp137_->master;
+#line 263 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp139_ = _tmp138_->original_orientation;
+#line 263 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp136_->orientation = _tmp139_;
+#line 264 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp140_ = photo_row;
+#line 264 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ event_id_init (&_tmp140_->event_id, EVENT_ID_INVALID);
+#line 265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp141_ = photo_row;
+#line 265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp142_ = time_created;
+#line 265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp141_->time_created = (time_t) _tmp142_;
+#line 266 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp143_ = photo_row;
+#line 266 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp143_->flags = (guint64) 0;
+#line 268 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp144_ = photo_row;
+#line 268 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp145_ = _tmp144_->photo_id;
+#line 268 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *result = _tmp145_;
+#line 268 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 268 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 1947 "PhotoTable.c"
+}
+
+
+void photo_table_reimport (PhotoTable* self, PhotoRow* row, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ time_t time_reimported = 0;
+ gulong _tmp4_ = 0UL;
+ sqlite3_stmt* _tmp5_ = NULL;
+ PhotoRow* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ PhotoRow* _tmp13_ = NULL;
+ BackingPhotoRow* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ sqlite3_stmt* _tmp19_ = NULL;
+ PhotoRow* _tmp20_ = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+ gint64 _tmp22_ = 0LL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ sqlite3_stmt* _tmp25_ = NULL;
+ PhotoRow* _tmp26_ = NULL;
+ BackingPhotoRow* _tmp27_ = NULL;
+ time_t _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ sqlite3_stmt* _tmp31_ = NULL;
+ PhotoRow* _tmp32_ = NULL;
+ time_t _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ sqlite3_stmt* _tmp36_ = NULL;
+ PhotoRow* _tmp37_ = NULL;
+ BackingPhotoRow* _tmp38_ = NULL;
+ Orientation _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ sqlite3_stmt* _tmp42_ = NULL;
+ PhotoRow* _tmp43_ = NULL;
+ BackingPhotoRow* _tmp44_ = NULL;
+ Orientation _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ sqlite3_stmt* _tmp48_ = NULL;
+ PhotoRow* _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ GDestroyNotify _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ sqlite3_stmt* _tmp55_ = NULL;
+ PhotoRow* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ GDestroyNotify _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+ sqlite3_stmt* _tmp62_ = NULL;
+ PhotoRow* _tmp63_ = NULL;
+ const gchar* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ GDestroyNotify _tmp66_ = NULL;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ sqlite3_stmt* _tmp69_ = NULL;
+ PhotoRow* _tmp70_ = NULL;
+ BackingPhotoRow* _tmp71_ = NULL;
+ PhotoFileFormat _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ sqlite3_stmt* _tmp76_ = NULL;
+ PhotoRow* _tmp77_ = NULL;
+ const gchar* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ GDestroyNotify _tmp80_ = NULL;
+ gint _tmp81_ = 0;
+ gint _tmp82_ = 0;
+ sqlite3_stmt* _tmp83_ = NULL;
+ time_t _tmp84_ = 0;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ sqlite3_stmt* _tmp87_ = NULL;
+ PhotoRow* _tmp88_ = NULL;
+ PhotoID _tmp89_ = {0};
+ gint64 _tmp90_ = 0LL;
+ gint _tmp91_ = 0;
+ gint _tmp92_ = 0;
+ sqlite3_stmt* _tmp93_ = NULL;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ PhotoRow* _tmp97_ = NULL;
+ time_t _tmp98_ = 0;
+ PhotoRow* _tmp99_ = NULL;
+ PhotoRow* _tmp100_ = NULL;
+ BackingPhotoRow* _tmp101_ = NULL;
+ Orientation _tmp102_ = 0;
+ GError * _inner_error_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 276 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_ROW (row));
+#line 278 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 278 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE PhotoTable SET width = ?, height = ?, filesize = ?, timestamp =" \
+" ?, " "exposure_time = ?, orientation = ?, original_orientation = ?, md5 = ?," \
+" " "exif_md5 = ?, thumbnail_md5 = ?, file_format = ?, title = ?, time_reim" \
+"ported = ? " "WHERE id = ?", -1, &_tmp1_, NULL);
+#line 278 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 278 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 278 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 283 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 283 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 285 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = now_sec ();
+#line 285 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ time_reimported = (time_t) _tmp4_;
+#line 287 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = stmt;
+#line 287 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = row;
+#line 287 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = _tmp6_->master;
+#line 287 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = _tmp7_->dim;
+#line 287 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = _tmp8_.width;
+#line 287 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_bind_int (_tmp5_, 1, _tmp9_);
+#line 287 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 288 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 288 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 289 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt;
+#line 289 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = row;
+#line 289 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = _tmp13_->master;
+#line 289 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = _tmp14_->dim;
+#line 289 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _tmp15_.height;
+#line 289 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = sqlite3_bind_int (_tmp12_, 2, _tmp16_);
+#line 289 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp17_;
+#line 290 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = res;
+#line 290 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp18_ == SQLITE_OK, "res == Sqlite.OK");
+#line 291 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = stmt;
+#line 291 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = row;
+#line 291 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = _tmp20_->master;
+#line 291 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = _tmp21_->filesize;
+#line 291 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = sqlite3_bind_int64 (_tmp19_, 3, _tmp22_);
+#line 291 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp23_;
+#line 292 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = res;
+#line 292 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp24_ == SQLITE_OK, "res == Sqlite.OK");
+#line 293 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = stmt;
+#line 293 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = row;
+#line 293 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = _tmp26_->master;
+#line 293 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = _tmp27_->timestamp;
+#line 293 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = sqlite3_bind_int64 (_tmp25_, 4, (gint64) _tmp28_);
+#line 293 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp29_;
+#line 294 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = res;
+#line 294 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp30_ == SQLITE_OK, "res == Sqlite.OK");
+#line 295 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = stmt;
+#line 295 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = row;
+#line 295 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = _tmp32_->exposure_time;
+#line 295 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = sqlite3_bind_int64 (_tmp31_, 5, (gint64) _tmp33_);
+#line 295 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp34_;
+#line 296 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = res;
+#line 296 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp35_ == SQLITE_OK, "res == Sqlite.OK");
+#line 297 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = stmt;
+#line 297 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = row;
+#line 297 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = _tmp37_->master;
+#line 297 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = _tmp38_->original_orientation;
+#line 297 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = sqlite3_bind_int (_tmp36_, 6, (gint) _tmp39_);
+#line 297 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp40_;
+#line 298 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = res;
+#line 298 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp41_ == SQLITE_OK, "res == Sqlite.OK");
+#line 299 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = stmt;
+#line 299 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = row;
+#line 299 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = _tmp43_->master;
+#line 299 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = _tmp44_->original_orientation;
+#line 299 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = sqlite3_bind_int (_tmp42_, 7, (gint) _tmp45_);
+#line 299 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp46_;
+#line 300 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = res;
+#line 300 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp47_ == SQLITE_OK, "res == Sqlite.OK");
+#line 301 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = stmt;
+#line 301 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = row;
+#line 301 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = _tmp49_->md5;
+#line 301 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = g_strdup (_tmp50_);
+#line 301 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = g_free;
+#line 301 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = sqlite3_bind_text (_tmp48_, 8, _tmp51_, -1, _tmp52_);
+#line 301 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp53_;
+#line 302 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = res;
+#line 302 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp54_ == SQLITE_OK, "res == Sqlite.OK");
+#line 303 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_ = stmt;
+#line 303 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_ = row;
+#line 303 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_ = _tmp56_->exif_md5;
+#line 303 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp58_ = g_strdup (_tmp57_);
+#line 303 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp59_ = g_free;
+#line 303 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp60_ = sqlite3_bind_text (_tmp55_, 9, _tmp58_, -1, _tmp59_);
+#line 303 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp60_;
+#line 304 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp61_ = res;
+#line 304 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp61_ == SQLITE_OK, "res == Sqlite.OK");
+#line 305 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp62_ = stmt;
+#line 305 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_ = row;
+#line 305 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp64_ = _tmp63_->thumbnail_md5;
+#line 305 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp65_ = g_strdup (_tmp64_);
+#line 305 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp66_ = g_free;
+#line 305 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp67_ = sqlite3_bind_text (_tmp62_, 10, _tmp65_, -1, _tmp66_);
+#line 305 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp67_;
+#line 306 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp68_ = res;
+#line 306 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp68_ == SQLITE_OK, "res == Sqlite.OK");
+#line 307 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp69_ = stmt;
+#line 307 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp70_ = row;
+#line 307 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp71_ = _tmp70_->master;
+#line 307 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp72_ = _tmp71_->file_format;
+#line 307 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp73_ = photo_file_format_serialize (_tmp72_);
+#line 307 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp74_ = sqlite3_bind_int (_tmp69_, 11, _tmp73_);
+#line 307 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp74_;
+#line 308 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp75_ = res;
+#line 308 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp75_ == SQLITE_OK, "res == Sqlite.OK");
+#line 309 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp76_ = stmt;
+#line 309 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp77_ = row;
+#line 309 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp78_ = _tmp77_->title;
+#line 309 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp79_ = g_strdup (_tmp78_);
+#line 309 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp80_ = g_free;
+#line 309 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp81_ = sqlite3_bind_text (_tmp76_, 12, _tmp79_, -1, _tmp80_);
+#line 309 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp81_;
+#line 310 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp82_ = res;
+#line 310 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp82_ == SQLITE_OK, "res == Sqlite.OK");
+#line 311 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp83_ = stmt;
+#line 311 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp84_ = time_reimported;
+#line 311 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp85_ = sqlite3_bind_int64 (_tmp83_, 13, (gint64) _tmp84_);
+#line 311 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp85_;
+#line 312 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp86_ = res;
+#line 312 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp86_ == SQLITE_OK, "res == Sqlite.OK");
+#line 313 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp87_ = stmt;
+#line 313 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp88_ = row;
+#line 313 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp89_ = _tmp88_->photo_id;
+#line 313 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp90_ = _tmp89_.id;
+#line 313 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp91_ = sqlite3_bind_int64 (_tmp87_, 14, _tmp90_);
+#line 313 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp91_;
+#line 314 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp92_ = res;
+#line 314 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp92_ == SQLITE_OK, "res == Sqlite.OK");
+#line 316 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp93_ = stmt;
+#line 316 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp94_ = sqlite3_step (_tmp93_);
+#line 316 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp94_;
+#line 317 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp95_ = res;
+#line 317 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp95_ != SQLITE_DONE) {
+#line 2322 "PhotoTable.c"
+ gint _tmp96_ = 0;
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp96_ = res;
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_throw_error ("PhotoTable.reimport_master", _tmp96_, &_inner_error_);
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 2338 "PhotoTable.c"
+ } else {
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 318 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 2348 "PhotoTable.c"
+ }
+ }
+ }
+#line 320 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp97_ = row;
+#line 320 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp98_ = time_reimported;
+#line 320 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp97_->time_reimported = _tmp98_;
+#line 321 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp99_ = row;
+#line 321 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp100_ = row;
+#line 321 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp101_ = _tmp100_->master;
+#line 321 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp102_ = _tmp101_->original_orientation;
+#line 321 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp99_->orientation = _tmp102_;
+#line 276 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 2370 "PhotoTable.c"
+}
+
+
+gboolean photo_table_master_exif_updated (PhotoTable* self, PhotoID* photoID, gint64 filesize, glong timestamp, const gchar* md5, const gchar* exif_md5, const gchar* thumbnail_md5, PhotoRow* row) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint64 _tmp5_ = 0LL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ glong _tmp9_ = 0L;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GDestroyNotify _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ sqlite3_stmt* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GDestroyNotify _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ sqlite3_stmt* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ GDestroyNotify _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ sqlite3_stmt* _tmp30_ = NULL;
+ PhotoID _tmp31_ = {0};
+ gint64 _tmp32_ = 0LL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ sqlite3_stmt* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ PhotoRow* _tmp40_ = NULL;
+ BackingPhotoRow* _tmp41_ = NULL;
+ gint64 _tmp42_ = 0LL;
+ PhotoRow* _tmp43_ = NULL;
+ BackingPhotoRow* _tmp44_ = NULL;
+ glong _tmp45_ = 0L;
+ PhotoRow* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ PhotoRow* _tmp49_ = NULL;
+ const gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ PhotoRow* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 324 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photoID != NULL, FALSE);
+#line 324 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (md5 != NULL, FALSE);
+#line 324 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_ROW (row), FALSE);
+#line 327 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 327 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE PhotoTable SET filesize = ?, timestamp = ?, md5 = ?, exif_md5 =" \
+" ?," "thumbnail_md5 =? WHERE id = ?", -1, &_tmp1_, NULL);
+#line 327 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 327 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 327 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 330 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 330 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 332 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 332 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = filesize;
+#line 332 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp5_);
+#line 332 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp6_;
+#line 333 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = res;
+#line 333 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 334 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = stmt;
+#line 334 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = timestamp;
+#line 334 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp8_, 2, (gint64) _tmp9_);
+#line 334 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 335 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 335 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 336 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt;
+#line 336 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = md5;
+#line 336 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = g_strdup (_tmp13_);
+#line 336 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = g_free;
+#line 336 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = sqlite3_bind_text (_tmp12_, 3, _tmp14_, -1, _tmp15_);
+#line 336 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp16_;
+#line 337 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = res;
+#line 337 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp17_ == SQLITE_OK, "res == Sqlite.OK");
+#line 338 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = stmt;
+#line 338 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = exif_md5;
+#line 338 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 338 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = g_free;
+#line 338 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = sqlite3_bind_text (_tmp18_, 4, _tmp20_, -1, _tmp21_);
+#line 338 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp22_;
+#line 339 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = res;
+#line 339 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp23_ == SQLITE_OK, "res == Sqlite.OK");
+#line 340 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = stmt;
+#line 340 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = thumbnail_md5;
+#line 340 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = g_strdup (_tmp25_);
+#line 340 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = g_free;
+#line 340 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = sqlite3_bind_text (_tmp24_, 5, _tmp26_, -1, _tmp27_);
+#line 340 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp28_;
+#line 341 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = res;
+#line 341 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp29_ == SQLITE_OK, "res == Sqlite.OK");
+#line 342 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = stmt;
+#line 342 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = *photoID;
+#line 342 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = _tmp31_.id;
+#line 342 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = sqlite3_bind_int64 (_tmp30_, 6, _tmp32_);
+#line 342 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp33_;
+#line 343 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = res;
+#line 343 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp34_ == SQLITE_OK, "res == Sqlite.OK");
+#line 345 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = stmt;
+#line 345 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = sqlite3_step (_tmp35_);
+#line 345 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp36_;
+#line 346 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = res;
+#line 346 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp37_ != SQLITE_DONE) {
+#line 2549 "PhotoTable.c"
+ gint _tmp38_ = 0;
+#line 347 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = res;
+#line 347 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp38_ != SQLITE_CONSTRAINT) {
+#line 2555 "PhotoTable.c"
+ gint _tmp39_ = 0;
+#line 348 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = res;
+#line 348 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("write_update_photo", _tmp39_);
+#line 2561 "PhotoTable.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 350 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 350 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 2569 "PhotoTable.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = row;
+#line 353 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = _tmp40_->master;
+#line 353 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = filesize;
+#line 353 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_->filesize = _tmp42_;
+#line 354 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = row;
+#line 354 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = _tmp43_->master;
+#line 354 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = timestamp;
+#line 354 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_->timestamp = (time_t) _tmp45_;
+#line 355 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = row;
+#line 355 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = md5;
+#line 355 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = g_strdup (_tmp47_);
+#line 355 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp46_->md5);
+#line 355 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_->md5 = _tmp48_;
+#line 356 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = row;
+#line 356 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = exif_md5;
+#line 356 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = g_strdup (_tmp50_);
+#line 356 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp49_->exif_md5);
+#line 356 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_->exif_md5 = _tmp51_;
+#line 357 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = row;
+#line 357 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = thumbnail_md5;
+#line 357 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = g_strdup (_tmp53_);
+#line 357 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp52_->thumbnail_md5);
+#line 357 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_->thumbnail_md5 = _tmp54_;
+#line 359 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 359 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 359 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 2623 "PhotoTable.c"
+}
+
+
+static void photo_table_validate_orientation (PhotoTable* self, PhotoRow* row) {
+ gboolean _tmp0_ = FALSE;
+ PhotoRow* _tmp1_ = NULL;
+ Orientation _tmp2_ = 0;
+#line 370 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 370 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_ROW (row));
+#line 371 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = row;
+#line 371 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = _tmp1_->orientation;
+#line 371 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp2_ < ORIENTATION_MIN) {
+#line 371 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = TRUE;
+#line 2643 "PhotoTable.c"
+ } else {
+ PhotoRow* _tmp3_ = NULL;
+ Orientation _tmp4_ = 0;
+#line 372 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = row;
+#line 372 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp3_->orientation;
+#line 372 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp4_ > ORIENTATION_MAX;
+#line 2653 "PhotoTable.c"
+ }
+#line 371 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp0_) {
+#line 2657 "PhotoTable.c"
+ PhotoRow* _tmp5_ = NULL;
+ PhotoID _tmp6_ = {0};
+ PhotoRow* _tmp7_ = NULL;
+#line 374 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = row;
+#line 374 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_->photo_id;
+#line 374 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_table_set_orientation (self, &_tmp6_, ORIENTATION_MIN);
+#line 375 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = row;
+#line 375 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_->orientation = ORIENTATION_MIN;
+#line 2671 "PhotoTable.c"
+ }
+}
+
+
+PhotoRow* photo_table_get_row (PhotoTable* self, PhotoID* photo_id) {
+ PhotoRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ PhotoID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ PhotoRow* row = NULL;
+ PhotoRow* _tmp11_ = NULL;
+ PhotoRow* _tmp12_ = NULL;
+ PhotoID _tmp13_ = {0};
+ PhotoRow* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ sqlite3_stmt* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ PhotoRow* _tmp19_ = NULL;
+ BackingPhotoRow* _tmp20_ = NULL;
+ sqlite3_stmt* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ sqlite3_stmt* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ PhotoRow* _tmp25_ = NULL;
+ BackingPhotoRow* _tmp26_ = NULL;
+ sqlite3_stmt* _tmp27_ = NULL;
+ gint64 _tmp28_ = 0LL;
+ PhotoRow* _tmp29_ = NULL;
+ BackingPhotoRow* _tmp30_ = NULL;
+ sqlite3_stmt* _tmp31_ = NULL;
+ gint64 _tmp32_ = 0LL;
+ PhotoRow* _tmp33_ = NULL;
+ sqlite3_stmt* _tmp34_ = NULL;
+ gint64 _tmp35_ = 0LL;
+ PhotoRow* _tmp36_ = NULL;
+ sqlite3_stmt* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ PhotoRow* _tmp39_ = NULL;
+ BackingPhotoRow* _tmp40_ = NULL;
+ sqlite3_stmt* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ PhotoRow* _tmp43_ = NULL;
+ sqlite3_stmt* _tmp44_ = NULL;
+ gint64 _tmp45_ = 0LL;
+ PhotoRow* _tmp46_ = NULL;
+ sqlite3_stmt* _tmp47_ = NULL;
+ gint64 _tmp48_ = 0LL;
+ PhotoRow* _tmp49_ = NULL;
+ sqlite3_stmt* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ GeeHashMap* _tmp52_ = NULL;
+ PhotoRow* _tmp53_ = NULL;
+ sqlite3_stmt* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ PhotoRow* _tmp57_ = NULL;
+ sqlite3_stmt* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ PhotoRow* _tmp61_ = NULL;
+ sqlite3_stmt* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ PhotoRow* _tmp65_ = NULL;
+ sqlite3_stmt* _tmp66_ = NULL;
+ gint64 _tmp67_ = 0LL;
+ PhotoRow* _tmp68_ = NULL;
+ sqlite3_stmt* _tmp69_ = NULL;
+ gint64 _tmp70_ = 0LL;
+ PhotoRow* _tmp71_ = NULL;
+ sqlite3_stmt* _tmp72_ = NULL;
+ gint _tmp73_ = 0;
+ Rating _tmp74_ = 0;
+ PhotoRow* _tmp75_ = NULL;
+ BackingPhotoRow* _tmp76_ = NULL;
+ sqlite3_stmt* _tmp77_ = NULL;
+ gint _tmp78_ = 0;
+ PhotoFileFormat _tmp79_ = 0;
+ PhotoRow* _tmp80_ = NULL;
+ sqlite3_stmt* _tmp81_ = NULL;
+ const gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ PhotoRow* _tmp84_ = NULL;
+ sqlite3_stmt* _tmp85_ = NULL;
+ const gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ PhotoRow* _tmp88_ = NULL;
+ sqlite3_stmt* _tmp89_ = NULL;
+ gint64 _tmp90_ = 0LL;
+ PhotoRow* _tmp91_ = NULL;
+ sqlite3_stmt* _tmp92_ = NULL;
+ gint64 _tmp93_ = 0LL;
+ PhotoRow* _tmp94_ = NULL;
+ sqlite3_stmt* _tmp95_ = NULL;
+ gint _tmp96_ = 0;
+ RawDeveloper _tmp97_ = 0;
+ sqlite3_stmt* _tmp98_ = NULL;
+ const gchar* _tmp99_ = NULL;
+ PhotoRow* _tmp103_ = NULL;
+ PhotoRow* _tmp104_ = NULL;
+ BackingPhotoID* _tmp105_ = NULL;
+ gint _tmp105__length1 = 0;
+ sqlite3_stmt* _tmp106_ = NULL;
+ gint64 _tmp107_ = 0LL;
+ BackingPhotoID _tmp108_ = {0};
+ BackingPhotoID _tmp109_ = {0};
+ PhotoRow* _tmp110_ = NULL;
+ BackingPhotoID* _tmp111_ = NULL;
+ gint _tmp111__length1 = 0;
+ sqlite3_stmt* _tmp112_ = NULL;
+ gint64 _tmp113_ = 0LL;
+ BackingPhotoID _tmp114_ = {0};
+ BackingPhotoID _tmp115_ = {0};
+ PhotoRow* _tmp116_ = NULL;
+ BackingPhotoID* _tmp117_ = NULL;
+ gint _tmp117__length1 = 0;
+ sqlite3_stmt* _tmp118_ = NULL;
+ gint64 _tmp119_ = 0LL;
+ BackingPhotoID _tmp120_ = {0};
+ BackingPhotoID _tmp121_ = {0};
+ PhotoRow* _tmp122_ = NULL;
+ sqlite3_stmt* _tmp123_ = NULL;
+ const gchar* _tmp124_ = NULL;
+ gchar* _tmp125_ = NULL;
+#line 379 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), NULL);
+#line 379 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, NULL);
+#line 381 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 381 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT filename, width, height, filesize, timestamp, exposure_time, or" \
+"ientation, " "original_orientation, import_id, event_id, transformations, md5, thumb" \
+"nail_md5, " "exif_md5, time_created, flags, rating, file_format, title, backlinks, " "time_reimported, editable_id, metadata_dirty, developer, develop_shotw" \
+"ell_id, " "develop_camera_id, develop_embedded_id, comment " "FROM PhotoTable WHERE id=?", -1, &_tmp1_, NULL);
+#line 381 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 381 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 381 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 389 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 389 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 391 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 391 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = *photo_id;
+#line 391 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 391 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 391 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 392 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 392 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 394 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = stmt;
+#line 394 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 394 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp10_ != SQLITE_ROW) {
+#line 395 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = NULL;
+#line 395 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 395 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 2851 "PhotoTable.c"
+ }
+#line 397 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = photo_row_new ();
+#line 397 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ row = _tmp11_;
+#line 398 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = row;
+#line 398 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = *photo_id;
+#line 398 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_->photo_id = _tmp13_;
+#line 399 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = row;
+#line 399 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = _tmp14_->master;
+#line 399 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = stmt;
+#line 399 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = sqlite3_column_text (_tmp16_, 0);
+#line 399 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 399 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp15_->filepath);
+#line 399 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_->filepath = _tmp18_;
+#line 400 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = row;
+#line 400 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = _tmp19_->master;
+#line 400 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = stmt;
+#line 400 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = sqlite3_column_int (_tmp21_, 1);
+#line 400 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = stmt;
+#line 400 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = sqlite3_column_int (_tmp23_, 2);
+#line 400 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dimensions_init (&_tmp20_->dim, _tmp22_, _tmp24_);
+#line 401 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = row;
+#line 401 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = _tmp25_->master;
+#line 401 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = stmt;
+#line 401 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = sqlite3_column_int64 (_tmp27_, 3);
+#line 401 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_->filesize = _tmp28_;
+#line 402 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = row;
+#line 402 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = _tmp29_->master;
+#line 402 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = stmt;
+#line 402 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = sqlite3_column_int64 (_tmp31_, 4);
+#line 402 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_->timestamp = (time_t) _tmp32_;
+#line 403 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = row;
+#line 403 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = stmt;
+#line 403 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = sqlite3_column_int64 (_tmp34_, 5);
+#line 403 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_->exposure_time = (time_t) _tmp35_;
+#line 404 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = row;
+#line 404 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = stmt;
+#line 404 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = sqlite3_column_int (_tmp37_, 6);
+#line 404 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_->orientation = (Orientation) _tmp38_;
+#line 405 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = row;
+#line 405 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = _tmp39_->master;
+#line 405 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = stmt;
+#line 405 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = sqlite3_column_int (_tmp41_, 7);
+#line 405 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_->original_orientation = (Orientation) _tmp42_;
+#line 406 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = row;
+#line 406 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = stmt;
+#line 406 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = sqlite3_column_int64 (_tmp44_, 8);
+#line 406 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_->import_id.id = _tmp45_;
+#line 407 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = row;
+#line 407 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = stmt;
+#line 407 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = sqlite3_column_int64 (_tmp47_, 9);
+#line 407 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_->event_id.id = _tmp48_;
+#line 408 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = row;
+#line 408 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = stmt;
+#line 408 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = sqlite3_column_text (_tmp50_, 10);
+#line 408 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = photo_table_marshall_all_transformations (_tmp51_);
+#line 408 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_tmp49_->transformations);
+#line 408 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_->transformations = _tmp52_;
+#line 409 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = row;
+#line 409 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = stmt;
+#line 409 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_ = sqlite3_column_text (_tmp54_, 11);
+#line 409 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_ = g_strdup (_tmp55_);
+#line 409 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp53_->md5);
+#line 409 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_->md5 = _tmp56_;
+#line 410 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_ = row;
+#line 410 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp58_ = stmt;
+#line 410 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp59_ = sqlite3_column_text (_tmp58_, 12);
+#line 410 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp60_ = g_strdup (_tmp59_);
+#line 410 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp57_->thumbnail_md5);
+#line 410 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_->thumbnail_md5 = _tmp60_;
+#line 411 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp61_ = row;
+#line 411 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp62_ = stmt;
+#line 411 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_ = sqlite3_column_text (_tmp62_, 13);
+#line 411 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp64_ = g_strdup (_tmp63_);
+#line 411 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp61_->exif_md5);
+#line 411 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp61_->exif_md5 = _tmp64_;
+#line 412 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp65_ = row;
+#line 412 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp66_ = stmt;
+#line 412 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp67_ = sqlite3_column_int64 (_tmp66_, 14);
+#line 412 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp65_->time_created = (time_t) _tmp67_;
+#line 413 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp68_ = row;
+#line 413 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp69_ = stmt;
+#line 413 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp70_ = sqlite3_column_int64 (_tmp69_, 15);
+#line 413 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp68_->flags = (guint64) _tmp70_;
+#line 414 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp71_ = row;
+#line 414 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp72_ = stmt;
+#line 414 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp73_ = sqlite3_column_int (_tmp72_, 16);
+#line 414 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp74_ = rating_unserialize (_tmp73_);
+#line 414 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp71_->rating = _tmp74_;
+#line 415 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp75_ = row;
+#line 415 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp76_ = _tmp75_->master;
+#line 415 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp77_ = stmt;
+#line 415 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp78_ = sqlite3_column_int (_tmp77_, 17);
+#line 415 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp79_ = photo_file_format_unserialize (_tmp78_);
+#line 415 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp76_->file_format = _tmp79_;
+#line 416 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp80_ = row;
+#line 416 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp81_ = stmt;
+#line 416 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp82_ = sqlite3_column_text (_tmp81_, 18);
+#line 416 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp83_ = g_strdup (_tmp82_);
+#line 416 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp80_->title);
+#line 416 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp80_->title = _tmp83_;
+#line 417 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp84_ = row;
+#line 417 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp85_ = stmt;
+#line 417 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp86_ = sqlite3_column_text (_tmp85_, 19);
+#line 417 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp87_ = g_strdup (_tmp86_);
+#line 417 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp84_->backlinks);
+#line 417 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp84_->backlinks = _tmp87_;
+#line 418 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp88_ = row;
+#line 418 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp89_ = stmt;
+#line 418 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp90_ = sqlite3_column_int64 (_tmp89_, 20);
+#line 418 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp88_->time_reimported = (time_t) _tmp90_;
+#line 419 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp91_ = row;
+#line 419 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp92_ = stmt;
+#line 419 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp93_ = sqlite3_column_int64 (_tmp92_, 21);
+#line 419 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp91_->editable_id, _tmp93_);
+#line 420 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp94_ = row;
+#line 420 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp95_ = stmt;
+#line 420 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp96_ = sqlite3_column_int (_tmp95_, 22);
+#line 420 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp94_->metadata_dirty = _tmp96_ != 0;
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp98_ = stmt;
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp99_ = sqlite3_column_text (_tmp98_, 23);
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp99_ != NULL) {
+#line 3093 "PhotoTable.c"
+ sqlite3_stmt* _tmp100_ = NULL;
+ const gchar* _tmp101_ = NULL;
+ RawDeveloper _tmp102_ = 0;
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp100_ = stmt;
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp101_ = sqlite3_column_text (_tmp100_, 23);
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp102_ = raw_developer_from_string (_tmp101_);
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp97_ = _tmp102_;
+#line 3105 "PhotoTable.c"
+ } else {
+#line 422 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp97_ = RAW_DEVELOPER_CAMERA;
+#line 3109 "PhotoTable.c"
+ }
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp103_ = row;
+#line 421 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp103_->developer = _tmp97_;
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp104_ = row;
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp105_ = _tmp104_->development_ids;
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp105__length1 = _tmp104_->development_ids_length1;
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp106_ = stmt;
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp107_ = sqlite3_column_int64 (_tmp106_, 24);
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp108_, _tmp107_);
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp105_[RAW_DEVELOPER_SHOTWELL] = _tmp108_;
+#line 423 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp109_ = _tmp105_[RAW_DEVELOPER_SHOTWELL];
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp110_ = row;
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp111_ = _tmp110_->development_ids;
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp111__length1 = _tmp110_->development_ids_length1;
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp112_ = stmt;
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp113_ = sqlite3_column_int64 (_tmp112_, 25);
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp114_, _tmp113_);
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp111_[RAW_DEVELOPER_CAMERA] = _tmp114_;
+#line 424 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp115_ = _tmp111_[RAW_DEVELOPER_CAMERA];
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp116_ = row;
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp117_ = _tmp116_->development_ids;
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp117__length1 = _tmp116_->development_ids_length1;
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp118_ = stmt;
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp119_ = sqlite3_column_int64 (_tmp118_, 26);
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp120_, _tmp119_);
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp117_[RAW_DEVELOPER_EMBEDDED] = _tmp120_;
+#line 425 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp121_ = _tmp117_[RAW_DEVELOPER_EMBEDDED];
+#line 426 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp122_ = row;
+#line 426 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp123_ = stmt;
+#line 426 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp124_ = sqlite3_column_text (_tmp123_, 27);
+#line 426 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp125_ = g_strdup (_tmp124_);
+#line 426 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp122_->comment);
+#line 426 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp122_->comment = _tmp125_;
+#line 428 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = row;
+#line 428 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 428 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 3181 "PhotoTable.c"
+}
+
+
+GeeArrayList* photo_table_get_all (PhotoTable* self) {
+ GeeArrayList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeArrayList* all = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+#line 431 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), NULL);
+#line 433 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 433 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id, filename, width, height, filesize, timestamp, exposure_time" \
+", orientation, " "original_orientation, import_id, event_id, transformations, md5, thumb" \
+"nail_md5, " "exif_md5, time_created, flags, rating, file_format, title, backlinks, " \
+"time_reimported, " "editable_id, metadata_dirty, developer, develop_shotwell_id, develop_c" \
+"amera_id, " "develop_embedded_id, comment FROM PhotoTable", -1, &_tmp1_, NULL);
+#line 433 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 433 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 433 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 440 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 440 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 442 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = gee_array_list_new (TYPE_PHOTO_ROW, (GBoxedCopyFunc) photo_row_ref, photo_row_unref, NULL, NULL, NULL);
+#line 442 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ all = _tmp4_;
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 3217 "PhotoTable.c"
+ sqlite3_stmt* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ PhotoRow* row = NULL;
+ PhotoRow* _tmp8_ = NULL;
+ PhotoRow* _tmp9_ = NULL;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint64 _tmp11_ = 0LL;
+ PhotoRow* _tmp12_ = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ sqlite3_stmt* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ PhotoRow* _tmp17_ = NULL;
+ BackingPhotoRow* _tmp18_ = NULL;
+ sqlite3_stmt* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ sqlite3_stmt* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ PhotoRow* _tmp23_ = NULL;
+ BackingPhotoRow* _tmp24_ = NULL;
+ sqlite3_stmt* _tmp25_ = NULL;
+ gint64 _tmp26_ = 0LL;
+ PhotoRow* _tmp27_ = NULL;
+ BackingPhotoRow* _tmp28_ = NULL;
+ sqlite3_stmt* _tmp29_ = NULL;
+ gint64 _tmp30_ = 0LL;
+ PhotoRow* _tmp31_ = NULL;
+ sqlite3_stmt* _tmp32_ = NULL;
+ gint64 _tmp33_ = 0LL;
+ PhotoRow* _tmp34_ = NULL;
+ sqlite3_stmt* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ PhotoRow* _tmp37_ = NULL;
+ BackingPhotoRow* _tmp38_ = NULL;
+ sqlite3_stmt* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ PhotoRow* _tmp41_ = NULL;
+ sqlite3_stmt* _tmp42_ = NULL;
+ gint64 _tmp43_ = 0LL;
+ PhotoRow* _tmp44_ = NULL;
+ sqlite3_stmt* _tmp45_ = NULL;
+ gint64 _tmp46_ = 0LL;
+ PhotoRow* _tmp47_ = NULL;
+ sqlite3_stmt* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ GeeHashMap* _tmp50_ = NULL;
+ PhotoRow* _tmp51_ = NULL;
+ sqlite3_stmt* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ PhotoRow* _tmp55_ = NULL;
+ sqlite3_stmt* _tmp56_ = NULL;
+ const gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ PhotoRow* _tmp59_ = NULL;
+ sqlite3_stmt* _tmp60_ = NULL;
+ const gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ PhotoRow* _tmp63_ = NULL;
+ sqlite3_stmt* _tmp64_ = NULL;
+ gint64 _tmp65_ = 0LL;
+ PhotoRow* _tmp66_ = NULL;
+ sqlite3_stmt* _tmp67_ = NULL;
+ gint64 _tmp68_ = 0LL;
+ PhotoRow* _tmp69_ = NULL;
+ sqlite3_stmt* _tmp70_ = NULL;
+ gint _tmp71_ = 0;
+ Rating _tmp72_ = 0;
+ PhotoRow* _tmp73_ = NULL;
+ BackingPhotoRow* _tmp74_ = NULL;
+ sqlite3_stmt* _tmp75_ = NULL;
+ gint _tmp76_ = 0;
+ PhotoFileFormat _tmp77_ = 0;
+ PhotoRow* _tmp78_ = NULL;
+ sqlite3_stmt* _tmp79_ = NULL;
+ const gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ PhotoRow* _tmp82_ = NULL;
+ sqlite3_stmt* _tmp83_ = NULL;
+ const gchar* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ PhotoRow* _tmp86_ = NULL;
+ sqlite3_stmt* _tmp87_ = NULL;
+ gint64 _tmp88_ = 0LL;
+ PhotoRow* _tmp89_ = NULL;
+ sqlite3_stmt* _tmp90_ = NULL;
+ gint64 _tmp91_ = 0LL;
+ PhotoRow* _tmp92_ = NULL;
+ sqlite3_stmt* _tmp93_ = NULL;
+ gint _tmp94_ = 0;
+ RawDeveloper _tmp95_ = 0;
+ sqlite3_stmt* _tmp96_ = NULL;
+ const gchar* _tmp97_ = NULL;
+ PhotoRow* _tmp101_ = NULL;
+ PhotoRow* _tmp102_ = NULL;
+ BackingPhotoID* _tmp103_ = NULL;
+ gint _tmp103__length1 = 0;
+ sqlite3_stmt* _tmp104_ = NULL;
+ gint64 _tmp105_ = 0LL;
+ BackingPhotoID _tmp106_ = {0};
+ BackingPhotoID _tmp107_ = {0};
+ PhotoRow* _tmp108_ = NULL;
+ BackingPhotoID* _tmp109_ = NULL;
+ gint _tmp109__length1 = 0;
+ sqlite3_stmt* _tmp110_ = NULL;
+ gint64 _tmp111_ = 0LL;
+ BackingPhotoID _tmp112_ = {0};
+ BackingPhotoID _tmp113_ = {0};
+ PhotoRow* _tmp114_ = NULL;
+ BackingPhotoID* _tmp115_ = NULL;
+ gint _tmp115__length1 = 0;
+ sqlite3_stmt* _tmp116_ = NULL;
+ gint64 _tmp117_ = 0LL;
+ BackingPhotoID _tmp118_ = {0};
+ BackingPhotoID _tmp119_ = {0};
+ PhotoRow* _tmp120_ = NULL;
+ sqlite3_stmt* _tmp121_ = NULL;
+ const gchar* _tmp122_ = NULL;
+ gchar* _tmp123_ = NULL;
+ PhotoRow* _tmp124_ = NULL;
+ GeeArrayList* _tmp125_ = NULL;
+ PhotoRow* _tmp126_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = stmt;
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = sqlite3_step (_tmp5_);
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp6_;
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = res;
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!(_tmp7_ == SQLITE_ROW)) {
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 3353 "PhotoTable.c"
+ }
+#line 445 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = photo_row_new ();
+#line 445 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ row = _tmp8_;
+#line 446 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = row;
+#line 446 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = stmt;
+#line 446 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = sqlite3_column_int64 (_tmp10_, 0);
+#line 446 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_->photo_id.id = _tmp11_;
+#line 447 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = row;
+#line 447 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = _tmp12_->master;
+#line 447 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = stmt;
+#line 447 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = sqlite3_column_text (_tmp14_, 1);
+#line 447 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 447 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp13_->filepath);
+#line 447 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_->filepath = _tmp16_;
+#line 448 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = row;
+#line 448 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = _tmp17_->master;
+#line 448 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = stmt;
+#line 448 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = sqlite3_column_int (_tmp19_, 2);
+#line 448 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = stmt;
+#line 448 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = sqlite3_column_int (_tmp21_, 3);
+#line 448 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dimensions_init (&_tmp18_->dim, _tmp20_, _tmp22_);
+#line 449 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = row;
+#line 449 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = _tmp23_->master;
+#line 449 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = stmt;
+#line 449 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = sqlite3_column_int64 (_tmp25_, 4);
+#line 449 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_->filesize = _tmp26_;
+#line 450 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = row;
+#line 450 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = _tmp27_->master;
+#line 450 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = stmt;
+#line 450 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = sqlite3_column_int64 (_tmp29_, 5);
+#line 450 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_->timestamp = (time_t) _tmp30_;
+#line 451 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = row;
+#line 451 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = stmt;
+#line 451 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = sqlite3_column_int64 (_tmp32_, 6);
+#line 451 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_->exposure_time = (time_t) _tmp33_;
+#line 452 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = row;
+#line 452 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = stmt;
+#line 452 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = sqlite3_column_int (_tmp35_, 7);
+#line 452 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_->orientation = (Orientation) _tmp36_;
+#line 453 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = row;
+#line 453 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = _tmp37_->master;
+#line 453 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = stmt;
+#line 453 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = sqlite3_column_int (_tmp39_, 8);
+#line 453 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_->original_orientation = (Orientation) _tmp40_;
+#line 454 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = row;
+#line 454 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = stmt;
+#line 454 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = sqlite3_column_int64 (_tmp42_, 9);
+#line 454 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_->import_id.id = _tmp43_;
+#line 455 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = row;
+#line 455 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = stmt;
+#line 455 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = sqlite3_column_int64 (_tmp45_, 10);
+#line 455 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_->event_id.id = _tmp46_;
+#line 456 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = row;
+#line 456 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = stmt;
+#line 456 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = sqlite3_column_text (_tmp48_, 11);
+#line 456 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = photo_table_marshall_all_transformations (_tmp49_);
+#line 456 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_tmp47_->transformations);
+#line 456 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_->transformations = _tmp50_;
+#line 457 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = row;
+#line 457 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = stmt;
+#line 457 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = sqlite3_column_text (_tmp52_, 12);
+#line 457 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = g_strdup (_tmp53_);
+#line 457 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp51_->md5);
+#line 457 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_->md5 = _tmp54_;
+#line 458 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_ = row;
+#line 458 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_ = stmt;
+#line 458 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_ = sqlite3_column_text (_tmp56_, 13);
+#line 458 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp58_ = g_strdup (_tmp57_);
+#line 458 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp55_->thumbnail_md5);
+#line 458 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_->thumbnail_md5 = _tmp58_;
+#line 459 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp59_ = row;
+#line 459 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp60_ = stmt;
+#line 459 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp61_ = sqlite3_column_text (_tmp60_, 14);
+#line 459 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp62_ = g_strdup (_tmp61_);
+#line 459 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp59_->exif_md5);
+#line 459 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp59_->exif_md5 = _tmp62_;
+#line 460 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_ = row;
+#line 460 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp64_ = stmt;
+#line 460 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp65_ = sqlite3_column_int64 (_tmp64_, 15);
+#line 460 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_->time_created = (time_t) _tmp65_;
+#line 461 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp66_ = row;
+#line 461 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp67_ = stmt;
+#line 461 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp68_ = sqlite3_column_int64 (_tmp67_, 16);
+#line 461 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp66_->flags = (guint64) _tmp68_;
+#line 462 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp69_ = row;
+#line 462 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp70_ = stmt;
+#line 462 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp71_ = sqlite3_column_int (_tmp70_, 17);
+#line 462 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp72_ = rating_unserialize (_tmp71_);
+#line 462 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp69_->rating = _tmp72_;
+#line 463 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp73_ = row;
+#line 463 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp74_ = _tmp73_->master;
+#line 463 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp75_ = stmt;
+#line 463 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp76_ = sqlite3_column_int (_tmp75_, 18);
+#line 463 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp77_ = photo_file_format_unserialize (_tmp76_);
+#line 463 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp74_->file_format = _tmp77_;
+#line 464 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp78_ = row;
+#line 464 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp79_ = stmt;
+#line 464 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp80_ = sqlite3_column_text (_tmp79_, 19);
+#line 464 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp81_ = g_strdup (_tmp80_);
+#line 464 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp78_->title);
+#line 464 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp78_->title = _tmp81_;
+#line 465 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp82_ = row;
+#line 465 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp83_ = stmt;
+#line 465 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp84_ = sqlite3_column_text (_tmp83_, 20);
+#line 465 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp85_ = g_strdup (_tmp84_);
+#line 465 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp82_->backlinks);
+#line 465 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp82_->backlinks = _tmp85_;
+#line 466 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp86_ = row;
+#line 466 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp87_ = stmt;
+#line 466 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp88_ = sqlite3_column_int64 (_tmp87_, 21);
+#line 466 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp86_->time_reimported = (time_t) _tmp88_;
+#line 467 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp89_ = row;
+#line 467 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp90_ = stmt;
+#line 467 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp91_ = sqlite3_column_int64 (_tmp90_, 22);
+#line 467 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp89_->editable_id, _tmp91_);
+#line 468 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp92_ = row;
+#line 468 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp93_ = stmt;
+#line 468 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp94_ = sqlite3_column_int (_tmp93_, 23);
+#line 468 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp92_->metadata_dirty = _tmp94_ != 0;
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp96_ = stmt;
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp97_ = sqlite3_column_text (_tmp96_, 24);
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp97_ != NULL) {
+#line 3597 "PhotoTable.c"
+ sqlite3_stmt* _tmp98_ = NULL;
+ const gchar* _tmp99_ = NULL;
+ RawDeveloper _tmp100_ = 0;
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp98_ = stmt;
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp99_ = sqlite3_column_text (_tmp98_, 24);
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp100_ = raw_developer_from_string (_tmp99_);
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp95_ = _tmp100_;
+#line 3609 "PhotoTable.c"
+ } else {
+#line 470 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp95_ = RAW_DEVELOPER_CAMERA;
+#line 3613 "PhotoTable.c"
+ }
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp101_ = row;
+#line 469 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp101_->developer = _tmp95_;
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp102_ = row;
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp103_ = _tmp102_->development_ids;
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp103__length1 = _tmp102_->development_ids_length1;
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp104_ = stmt;
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp105_ = sqlite3_column_int64 (_tmp104_, 25);
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp106_, _tmp105_);
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp103_[RAW_DEVELOPER_SHOTWELL] = _tmp106_;
+#line 471 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp107_ = _tmp103_[RAW_DEVELOPER_SHOTWELL];
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp108_ = row;
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp109_ = _tmp108_->development_ids;
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp109__length1 = _tmp108_->development_ids_length1;
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp110_ = stmt;
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp111_ = sqlite3_column_int64 (_tmp110_, 26);
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp112_, _tmp111_);
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp109_[RAW_DEVELOPER_CAMERA] = _tmp112_;
+#line 472 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp113_ = _tmp109_[RAW_DEVELOPER_CAMERA];
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp114_ = row;
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp115_ = _tmp114_->development_ids;
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp115__length1 = _tmp114_->development_ids_length1;
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp116_ = stmt;
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp117_ = sqlite3_column_int64 (_tmp116_, 27);
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp118_, _tmp117_);
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp115_[RAW_DEVELOPER_EMBEDDED] = _tmp118_;
+#line 473 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp119_ = _tmp115_[RAW_DEVELOPER_EMBEDDED];
+#line 474 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp120_ = row;
+#line 474 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp121_ = stmt;
+#line 474 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp122_ = sqlite3_column_text (_tmp121_, 28);
+#line 474 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp123_ = g_strdup (_tmp122_);
+#line 474 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp120_->comment);
+#line 474 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp120_->comment = _tmp123_;
+#line 476 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp124_ = row;
+#line 476 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_table_validate_orientation (self, _tmp124_);
+#line 478 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp125_ = all;
+#line 478 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp126_ = row;
+#line 478 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp125_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp126_);
+#line 444 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _photo_row_unref0 (row);
+#line 3691 "PhotoTable.c"
+ }
+#line 481 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = all;
+#line 481 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 481 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 3699 "PhotoTable.c"
+}
+
+
+void photo_table_duplicate (PhotoTable* self, PhotoID* photo_id, const gchar* new_filename, BackingPhotoID* editable_id, BackingPhotoID* develop_shotwell, BackingPhotoID* develop_camera_id, BackingPhotoID* develop_embedded_id, PhotoID* result) {
+ PhotoRow* original = NULL;
+ PhotoID _tmp0_ = {0};
+ PhotoRow* _tmp1_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp2_ = NULL;
+ sqlite3_stmt* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ sqlite3_stmt* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GDestroyNotify _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ PhotoRow* _tmp13_ = NULL;
+ BackingPhotoRow* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ sqlite3_stmt* _tmp19_ = NULL;
+ PhotoRow* _tmp20_ = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ sqlite3_stmt* _tmp26_ = NULL;
+ PhotoRow* _tmp27_ = NULL;
+ BackingPhotoRow* _tmp28_ = NULL;
+ gint64 _tmp29_ = 0LL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ sqlite3_stmt* _tmp32_ = NULL;
+ PhotoRow* _tmp33_ = NULL;
+ BackingPhotoRow* _tmp34_ = NULL;
+ time_t _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ sqlite3_stmt* _tmp38_ = NULL;
+ PhotoRow* _tmp39_ = NULL;
+ time_t _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ sqlite3_stmt* _tmp43_ = NULL;
+ PhotoRow* _tmp44_ = NULL;
+ Orientation _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ sqlite3_stmt* _tmp48_ = NULL;
+ PhotoRow* _tmp49_ = NULL;
+ BackingPhotoRow* _tmp50_ = NULL;
+ Orientation _tmp51_ = 0;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ sqlite3_stmt* _tmp54_ = NULL;
+ PhotoRow* _tmp55_ = NULL;
+ ImportID _tmp56_ = {0};
+ gint64 _tmp57_ = 0LL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ sqlite3_stmt* _tmp60_ = NULL;
+ PhotoRow* _tmp61_ = NULL;
+ EventID _tmp62_ = {0};
+ gint64 _tmp63_ = 0LL;
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ sqlite3_stmt* _tmp66_ = NULL;
+ PhotoRow* _tmp67_ = NULL;
+ GeeHashMap* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ GDestroyNotify _tmp70_ = NULL;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ sqlite3_stmt* _tmp73_ = NULL;
+ PhotoRow* _tmp74_ = NULL;
+ const gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ GDestroyNotify _tmp77_ = NULL;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ sqlite3_stmt* _tmp80_ = NULL;
+ PhotoRow* _tmp81_ = NULL;
+ const gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ GDestroyNotify _tmp84_ = NULL;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ sqlite3_stmt* _tmp87_ = NULL;
+ PhotoRow* _tmp88_ = NULL;
+ const gchar* _tmp89_ = NULL;
+ gchar* _tmp90_ = NULL;
+ GDestroyNotify _tmp91_ = NULL;
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ sqlite3_stmt* _tmp94_ = NULL;
+ gulong _tmp95_ = 0UL;
+ gint _tmp96_ = 0;
+ gint _tmp97_ = 0;
+ sqlite3_stmt* _tmp98_ = NULL;
+ PhotoRow* _tmp99_ = NULL;
+ guint64 _tmp100_ = 0ULL;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+ sqlite3_stmt* _tmp103_ = NULL;
+ PhotoRow* _tmp104_ = NULL;
+ Rating _tmp105_ = 0;
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+ sqlite3_stmt* _tmp109_ = NULL;
+ PhotoRow* _tmp110_ = NULL;
+ BackingPhotoRow* _tmp111_ = NULL;
+ PhotoFileFormat _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+ gint _tmp115_ = 0;
+ sqlite3_stmt* _tmp116_ = NULL;
+ PhotoRow* _tmp117_ = NULL;
+ const gchar* _tmp118_ = NULL;
+ gchar* _tmp119_ = NULL;
+ GDestroyNotify _tmp120_ = NULL;
+ gint _tmp121_ = 0;
+ gint _tmp122_ = 0;
+ sqlite3_stmt* _tmp123_ = NULL;
+ BackingPhotoID _tmp124_ = {0};
+ gint64 _tmp125_ = 0LL;
+ gint _tmp126_ = 0;
+ gint _tmp127_ = 0;
+ sqlite3_stmt* _tmp128_ = NULL;
+ PhotoRow* _tmp129_ = NULL;
+ RawDeveloper _tmp130_ = 0;
+ gchar* _tmp131_ = NULL;
+ GDestroyNotify _tmp132_ = NULL;
+ gint _tmp133_ = 0;
+ gint _tmp134_ = 0;
+ sqlite3_stmt* _tmp135_ = NULL;
+ BackingPhotoID _tmp136_ = {0};
+ gint64 _tmp137_ = 0LL;
+ gint _tmp138_ = 0;
+ gint _tmp139_ = 0;
+ sqlite3_stmt* _tmp140_ = NULL;
+ BackingPhotoID _tmp141_ = {0};
+ gint64 _tmp142_ = 0LL;
+ gint _tmp143_ = 0;
+ gint _tmp144_ = 0;
+ sqlite3_stmt* _tmp145_ = NULL;
+ BackingPhotoID _tmp146_ = {0};
+ gint64 _tmp147_ = 0LL;
+ gint _tmp148_ = 0;
+ gint _tmp149_ = 0;
+ sqlite3_stmt* _tmp150_ = NULL;
+ PhotoRow* _tmp151_ = NULL;
+ const gchar* _tmp152_ = NULL;
+ gchar* _tmp153_ = NULL;
+ GDestroyNotify _tmp154_ = NULL;
+ gint _tmp155_ = 0;
+ gint _tmp156_ = 0;
+ sqlite3_stmt* _tmp157_ = NULL;
+ gint _tmp158_ = 0;
+ gint _tmp159_ = 0;
+ sqlite3* _tmp163_ = NULL;
+ gint64 _tmp164_ = 0LL;
+ PhotoID _tmp165_ = {0};
+#line 486 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 486 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (photo_id != NULL);
+#line 486 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (new_filename != NULL);
+#line 486 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (editable_id != NULL);
+#line 486 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (develop_shotwell != NULL);
+#line 486 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (develop_camera_id != NULL);
+#line 486 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (develop_embedded_id != NULL);
+#line 490 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 490 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = photo_table_get_row (self, &_tmp0_);
+#line 490 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ original = _tmp1_;
+#line 493 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = database_table_db;
+#line 493 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = sqlite3_prepare_v2 (_tmp2_, "INSERT INTO PhotoTable (filename, width, height, filesize, " "timestamp, exposure_time, orientation, original_orientation, import_id" \
+", event_id, " "transformations, md5, thumbnail_md5, exif_md5, time_created, flags, ra" \
+"ting, " "file_format, title, editable_id, developer, develop_shotwell_id, devel" \
+"op_camera_id, " "develop_embedded_id, comment) " "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?," \
+" ?, ?, ?, ?)", -1, &_tmp3_, NULL);
+#line 493 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 493 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp3_;
+#line 493 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp4_;
+#line 500 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = res;
+#line 500 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp5_ == SQLITE_OK, "res == Sqlite.OK");
+#line 502 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = stmt;
+#line 502 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = new_filename;
+#line 502 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 502 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = g_free;
+#line 502 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_bind_text (_tmp6_, 1, _tmp8_, -1, _tmp9_);
+#line 502 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 503 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 503 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 504 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt;
+#line 504 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = original;
+#line 504 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = _tmp13_->master;
+#line 504 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = _tmp14_->dim;
+#line 504 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _tmp15_.width;
+#line 504 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = sqlite3_bind_int (_tmp12_, 2, _tmp16_);
+#line 504 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp17_;
+#line 505 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = res;
+#line 505 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp18_ == SQLITE_OK, "res == Sqlite.OK");
+#line 506 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = stmt;
+#line 506 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = original;
+#line 506 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = _tmp20_->master;
+#line 506 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = _tmp21_->dim;
+#line 506 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = _tmp22_.height;
+#line 506 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = sqlite3_bind_int (_tmp19_, 3, _tmp23_);
+#line 506 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp24_;
+#line 507 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = res;
+#line 507 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp25_ == SQLITE_OK, "res == Sqlite.OK");
+#line 508 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = stmt;
+#line 508 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = original;
+#line 508 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = _tmp27_->master;
+#line 508 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = _tmp28_->filesize;
+#line 508 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = sqlite3_bind_int64 (_tmp26_, 4, _tmp29_);
+#line 508 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp30_;
+#line 509 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = res;
+#line 509 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp31_ == SQLITE_OK, "res == Sqlite.OK");
+#line 510 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = stmt;
+#line 510 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = original;
+#line 510 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = _tmp33_->master;
+#line 510 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = _tmp34_->timestamp;
+#line 510 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = sqlite3_bind_int64 (_tmp32_, 5, (gint64) _tmp35_);
+#line 510 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp36_;
+#line 511 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = res;
+#line 511 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp37_ == SQLITE_OK, "res == Sqlite.OK");
+#line 512 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = stmt;
+#line 512 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = original;
+#line 512 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = _tmp39_->exposure_time;
+#line 512 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = sqlite3_bind_int64 (_tmp38_, 6, (gint64) _tmp40_);
+#line 512 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp41_;
+#line 513 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = res;
+#line 513 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp42_ == SQLITE_OK, "res == Sqlite.OK");
+#line 514 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = stmt;
+#line 514 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = original;
+#line 514 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = _tmp44_->orientation;
+#line 514 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = sqlite3_bind_int (_tmp43_, 7, (gint) _tmp45_);
+#line 514 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp46_;
+#line 515 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = res;
+#line 515 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp47_ == SQLITE_OK, "res == Sqlite.OK");
+#line 516 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = stmt;
+#line 516 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = original;
+#line 516 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = _tmp49_->master;
+#line 516 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = _tmp50_->original_orientation;
+#line 516 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = sqlite3_bind_int (_tmp48_, 8, (gint) _tmp51_);
+#line 516 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp52_;
+#line 517 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = res;
+#line 517 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp53_ == SQLITE_OK, "res == Sqlite.OK");
+#line 518 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = stmt;
+#line 518 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_ = original;
+#line 518 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_ = _tmp55_->import_id;
+#line 518 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_ = _tmp56_.id;
+#line 518 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp58_ = sqlite3_bind_int64 (_tmp54_, 9, _tmp57_);
+#line 518 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp58_;
+#line 519 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp59_ = res;
+#line 519 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp59_ == SQLITE_OK, "res == Sqlite.OK");
+#line 520 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp60_ = stmt;
+#line 520 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp61_ = original;
+#line 520 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp62_ = _tmp61_->event_id;
+#line 520 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_ = _tmp62_.id;
+#line 520 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp64_ = sqlite3_bind_int64 (_tmp60_, 10, _tmp63_);
+#line 520 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp64_;
+#line 521 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp65_ = res;
+#line 521 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp65_ == SQLITE_OK, "res == Sqlite.OK");
+#line 522 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp66_ = stmt;
+#line 522 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp67_ = original;
+#line 522 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp68_ = _tmp67_->transformations;
+#line 522 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp69_ = photo_table_unmarshall_all_transformations (_tmp68_);
+#line 522 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp70_ = g_free;
+#line 522 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp71_ = sqlite3_bind_text (_tmp66_, 11, _tmp69_, -1, _tmp70_);
+#line 522 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp71_;
+#line 523 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp72_ = res;
+#line 523 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp72_ == SQLITE_OK, "res == Sqlite.OK");
+#line 524 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp73_ = stmt;
+#line 524 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp74_ = original;
+#line 524 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp75_ = _tmp74_->md5;
+#line 524 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp76_ = g_strdup (_tmp75_);
+#line 524 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp77_ = g_free;
+#line 524 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp78_ = sqlite3_bind_text (_tmp73_, 12, _tmp76_, -1, _tmp77_);
+#line 524 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp78_;
+#line 525 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp79_ = res;
+#line 525 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp79_ == SQLITE_OK, "res == Sqlite.OK");
+#line 526 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp80_ = stmt;
+#line 526 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp81_ = original;
+#line 526 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp82_ = _tmp81_->thumbnail_md5;
+#line 526 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp83_ = g_strdup (_tmp82_);
+#line 526 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp84_ = g_free;
+#line 526 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp85_ = sqlite3_bind_text (_tmp80_, 13, _tmp83_, -1, _tmp84_);
+#line 526 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp85_;
+#line 527 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp86_ = res;
+#line 527 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp86_ == SQLITE_OK, "res == Sqlite.OK");
+#line 528 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp87_ = stmt;
+#line 528 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp88_ = original;
+#line 528 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp89_ = _tmp88_->exif_md5;
+#line 528 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp90_ = g_strdup (_tmp89_);
+#line 528 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp91_ = g_free;
+#line 528 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp92_ = sqlite3_bind_text (_tmp87_, 14, _tmp90_, -1, _tmp91_);
+#line 528 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp92_;
+#line 529 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp93_ = res;
+#line 529 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp93_ == SQLITE_OK, "res == Sqlite.OK");
+#line 530 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp94_ = stmt;
+#line 530 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp95_ = now_sec ();
+#line 530 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp96_ = sqlite3_bind_int64 (_tmp94_, 15, (gint64) _tmp95_);
+#line 530 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp96_;
+#line 531 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp97_ = res;
+#line 531 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp97_ == SQLITE_OK, "res == Sqlite.OK");
+#line 532 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp98_ = stmt;
+#line 532 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp99_ = original;
+#line 532 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp100_ = _tmp99_->flags;
+#line 532 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp101_ = sqlite3_bind_int64 (_tmp98_, 16, (gint64) _tmp100_);
+#line 532 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp101_;
+#line 533 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp102_ = res;
+#line 533 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp102_ == SQLITE_OK, "res == Sqlite.OK");
+#line 534 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp103_ = stmt;
+#line 534 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp104_ = original;
+#line 534 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp105_ = _tmp104_->rating;
+#line 534 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp106_ = rating_serialize (_tmp105_);
+#line 534 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp107_ = sqlite3_bind_int64 (_tmp103_, 17, (gint64) _tmp106_);
+#line 534 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp107_;
+#line 535 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp108_ = res;
+#line 535 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp108_ == SQLITE_OK, "res == Sqlite.OK");
+#line 536 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp109_ = stmt;
+#line 536 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp110_ = original;
+#line 536 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp111_ = _tmp110_->master;
+#line 536 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp112_ = _tmp111_->file_format;
+#line 536 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp113_ = photo_file_format_serialize (_tmp112_);
+#line 536 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp114_ = sqlite3_bind_int (_tmp109_, 18, _tmp113_);
+#line 536 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp114_;
+#line 537 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp115_ = res;
+#line 537 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp115_ == SQLITE_OK, "res == Sqlite.OK");
+#line 538 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp116_ = stmt;
+#line 538 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp117_ = original;
+#line 538 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp118_ = _tmp117_->title;
+#line 538 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp119_ = g_strdup (_tmp118_);
+#line 538 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp120_ = g_free;
+#line 538 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp121_ = sqlite3_bind_text (_tmp116_, 19, _tmp119_, -1, _tmp120_);
+#line 538 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp121_;
+#line 539 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp122_ = res;
+#line 539 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp122_ == SQLITE_OK, "res == Sqlite.OK");
+#line 540 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp123_ = stmt;
+#line 540 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp124_ = *editable_id;
+#line 540 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp125_ = _tmp124_.id;
+#line 540 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp126_ = sqlite3_bind_int64 (_tmp123_, 20, _tmp125_);
+#line 540 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp126_;
+#line 541 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp127_ = res;
+#line 541 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp127_ == SQLITE_OK, "res == Sqlite.OK");
+#line 543 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp128_ = stmt;
+#line 543 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp129_ = original;
+#line 543 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp130_ = _tmp129_->developer;
+#line 543 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp131_ = raw_developer_to_string (_tmp130_);
+#line 543 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp132_ = g_free;
+#line 543 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp133_ = sqlite3_bind_text (_tmp128_, 21, _tmp131_, -1, _tmp132_);
+#line 543 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp133_;
+#line 544 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp134_ = res;
+#line 544 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp134_ == SQLITE_OK, "res == Sqlite.OK");
+#line 545 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp135_ = stmt;
+#line 545 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp136_ = *develop_shotwell;
+#line 545 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp137_ = _tmp136_.id;
+#line 545 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp138_ = sqlite3_bind_int64 (_tmp135_, 22, _tmp137_);
+#line 545 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp138_;
+#line 546 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp139_ = res;
+#line 546 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp139_ == SQLITE_OK, "res == Sqlite.OK");
+#line 547 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp140_ = stmt;
+#line 547 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp141_ = *develop_camera_id;
+#line 547 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp142_ = _tmp141_.id;
+#line 547 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp143_ = sqlite3_bind_int64 (_tmp140_, 23, _tmp142_);
+#line 547 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp143_;
+#line 548 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp144_ = res;
+#line 548 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp144_ == SQLITE_OK, "res == Sqlite.OK");
+#line 549 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp145_ = stmt;
+#line 549 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp146_ = *develop_embedded_id;
+#line 549 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp147_ = _tmp146_.id;
+#line 549 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp148_ = sqlite3_bind_int64 (_tmp145_, 24, _tmp147_);
+#line 549 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp148_;
+#line 550 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp149_ = res;
+#line 550 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp149_ == SQLITE_OK, "res == Sqlite.OK");
+#line 551 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp150_ = stmt;
+#line 551 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp151_ = original;
+#line 551 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp152_ = _tmp151_->comment;
+#line 551 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp153_ = g_strdup (_tmp152_);
+#line 551 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp154_ = g_free;
+#line 551 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp155_ = sqlite3_bind_text (_tmp150_, 25, _tmp153_, -1, _tmp154_);
+#line 551 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp155_;
+#line 552 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp156_ = res;
+#line 552 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp156_ == SQLITE_OK, "res == Sqlite.OK");
+#line 554 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp157_ = stmt;
+#line 554 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp158_ = sqlite3_step (_tmp157_);
+#line 554 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp158_;
+#line 555 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp159_ = res;
+#line 555 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp159_ != SQLITE_DONE) {
+#line 4316 "PhotoTable.c"
+ gint _tmp160_ = 0;
+ PhotoID _tmp162_ = {0};
+#line 556 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp160_ = res;
+#line 556 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp160_ != SQLITE_CONSTRAINT) {
+#line 4323 "PhotoTable.c"
+ gint _tmp161_ = 0;
+#line 557 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp161_ = res;
+#line 557 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("duplicate", _tmp161_);
+#line 4329 "PhotoTable.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_id_init (&_tmp162_, PHOTO_ID_INVALID);
+#line 559 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *result = _tmp162_;
+#line 559 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 559 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _photo_row_unref0 (original);
+#line 559 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4341 "PhotoTable.c"
+ }
+#line 562 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp163_ = database_table_db;
+#line 562 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp164_ = sqlite3_last_insert_rowid (_tmp163_);
+#line 562 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_id_init (&_tmp165_, _tmp164_);
+#line 562 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *result = _tmp165_;
+#line 562 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 562 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _photo_row_unref0 (original);
+#line 562 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4357 "PhotoTable.c"
+}
+
+
+gboolean photo_table_set_title (PhotoTable* self, PhotoID* photo_id, const gchar* new_title) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ PhotoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ gboolean _tmp5_ = FALSE;
+#line 565 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 565 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = new_title;
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 4376 "PhotoTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = new_title;
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp2_;
+#line 4382 "PhotoTable.c"
+ } else {
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = "";
+#line 4386 "PhotoTable.c"
+ }
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = *photo_id;
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = database_table_update_text_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "title", _tmp0_);
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp5_;
+#line 566 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4398 "PhotoTable.c"
+}
+
+
+gboolean photo_table_set_comment (PhotoTable* self, PhotoID* photo_id, const gchar* new_comment) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ PhotoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ gboolean _tmp5_ = FALSE;
+#line 569 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 569 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = new_comment;
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 4417 "PhotoTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = new_comment;
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp2_;
+#line 4423 "PhotoTable.c"
+ } else {
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = "";
+#line 4427 "PhotoTable.c"
+ }
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = *photo_id;
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = database_table_update_text_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "comment", _tmp0_);
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp5_;
+#line 570 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4439 "PhotoTable.c"
+}
+
+
+void photo_table_set_filepath (PhotoTable* self, PhotoID* photo_id, const gchar* filepath, GError** error) {
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 573 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 573 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (photo_id != NULL);
+#line 573 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (filepath != NULL);
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = filepath;
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "filename", _tmp2_, &_inner_error_);
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4470 "PhotoTable.c"
+ } else {
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 574 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4478 "PhotoTable.c"
+ }
+ }
+}
+
+
+void photo_table_update_timestamp (PhotoTable* self, PhotoID* photo_id, time_t timestamp, GError** error) {
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ time_t _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 577 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 577 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (photo_id != NULL);
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = timestamp;
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "timestamp", (gint64) _tmp2_, &_inner_error_);
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4509 "PhotoTable.c"
+ } else {
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 578 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4517 "PhotoTable.c"
+ }
+ }
+}
+
+
+gboolean photo_table_set_exposure_time (PhotoTable* self, PhotoID* photo_id, time_t time) {
+ gboolean result = FALSE;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ time_t _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 581 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 581 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 582 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 582 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 582 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = time;
+#line 582 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = database_table_update_int64_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "exposure_time", (gint64) _tmp2_);
+#line 582 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_;
+#line 582 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4545 "PhotoTable.c"
+}
+
+
+void photo_table_set_import_id (PhotoTable* self, PhotoID* photo_id, ImportID* import_id, GError** error) {
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ ImportID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 585 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (photo_id != NULL);
+#line 585 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (import_id != NULL);
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = *import_id;
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _tmp2_.id;
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "import_id", _tmp3_, &_inner_error_);
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4579 "PhotoTable.c"
+ } else {
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 586 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4587 "PhotoTable.c"
+ }
+ }
+}
+
+
+gboolean photo_table_remove_by_file (PhotoTable* self, GFile* file) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GDestroyNotify _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 589 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 589 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 591 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 591 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "DELETE FROM PhotoTable WHERE filename=?", -1, &_tmp1_, NULL);
+#line 591 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 591 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 591 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 592 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 592 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 594 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 594 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = file;
+#line 594 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 594 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = g_free;
+#line 594 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = sqlite3_bind_text (_tmp4_, 1, _tmp6_, -1, _tmp7_);
+#line 594 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp8_;
+#line 595 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = res;
+#line 595 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 597 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = stmt;
+#line 597 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = sqlite3_step (_tmp10_);
+#line 597 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp11_;
+#line 598 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = res;
+#line 598 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp12_ != SQLITE_DONE) {
+#line 4654 "PhotoTable.c"
+ gint _tmp13_ = 0;
+#line 599 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = res;
+#line 599 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_warning ("remove", _tmp13_);
+#line 601 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 601 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 601 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4666 "PhotoTable.c"
+ }
+#line 604 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 604 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 604 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4674 "PhotoTable.c"
+}
+
+
+void photo_table_remove (PhotoTable* self, PhotoID* photo_id, GError** error) {
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 607 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 607 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (photo_id != NULL);
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_delete_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, &_inner_error_);
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4700 "PhotoTable.c"
+ } else {
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 608 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 4708 "PhotoTable.c"
+ }
+ }
+}
+
+
+GeeArrayList* photo_table_get_photos (PhotoTable* self) {
+ GeeArrayList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeArrayList* photo_ids = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+#line 611 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), NULL);
+#line 613 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 613 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id FROM PhotoTable", -1, &_tmp1_, NULL);
+#line 613 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 613 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 613 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 614 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 614 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 616 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = gee_array_list_new (TYPE_PHOTO_ID, (GBoxedCopyFunc) photo_id_dup, photo_id_free, NULL, NULL, NULL);
+#line 616 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_ids = _tmp4_;
+#line 4744 "PhotoTable.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 617 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = TRUE;
+#line 617 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 4751 "PhotoTable.c"
+ sqlite3_stmt* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GeeArrayList* _tmp11_ = NULL;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint64 _tmp13_ = 0LL;
+ PhotoID _tmp14_ = {0};
+#line 617 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp5_) {
+#line 4761 "PhotoTable.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = FALSE;
+#line 618 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = stmt;
+#line 618 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_step (_tmp6_);
+#line 618 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 619 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 619 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp8_ == SQLITE_DONE) {
+#line 620 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 4777 "PhotoTable.c"
+ } else {
+ gint _tmp9_ = 0;
+#line 621 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = res;
+#line 621 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp9_ != SQLITE_ROW) {
+#line 4784 "PhotoTable.c"
+ gint _tmp10_ = 0;
+#line 622 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = res;
+#line 622 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("get_photos", _tmp10_);
+#line 624 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 4792 "PhotoTable.c"
+ }
+ }
+#line 627 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = photo_ids;
+#line 627 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt;
+#line 627 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = sqlite3_column_int64 (_tmp12_, 0);
+#line 627 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_id_init (&_tmp14_, _tmp13_);
+#line 627 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), &_tmp14_);
+#line 4805 "PhotoTable.c"
+ }
+ }
+#line 630 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = photo_ids;
+#line 630 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 630 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4814 "PhotoTable.c"
+}
+
+
+gboolean photo_table_set_orientation (PhotoTable* self, PhotoID* photo_id, Orientation orientation) {
+ gboolean result = FALSE;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ Orientation _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 633 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 633 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 634 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 634 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 634 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = orientation;
+#line 634 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = database_table_update_int_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "orientation", (gint) _tmp2_);
+#line 634 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_;
+#line 634 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4840 "PhotoTable.c"
+}
+
+
+gboolean photo_table_replace_flags (PhotoTable* self, PhotoID* photo_id, guint64 flags) {
+ gboolean result = FALSE;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ guint64 _tmp2_ = 0ULL;
+ gboolean _tmp3_ = FALSE;
+#line 637 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 637 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 638 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 638 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 638 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = flags;
+#line 638 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = database_table_update_int64_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "flags", (gint64) _tmp2_);
+#line 638 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_;
+#line 638 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4866 "PhotoTable.c"
+}
+
+
+gboolean photo_table_set_rating (PhotoTable* self, PhotoID* photo_id, Rating rating) {
+ gboolean result = FALSE;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ Rating _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+#line 641 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 641 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 642 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 642 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 642 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = rating;
+#line 642 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = rating_serialize (_tmp2_);
+#line 642 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = database_table_update_int_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "rating", _tmp3_);
+#line 642 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp4_;
+#line 642 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 4895 "PhotoTable.c"
+}
+
+
+gint photo_table_get_event_photo_count (PhotoTable* self, EventID* event_id) {
+ gint result = 0;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ EventID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint count = 0;
+#line 645 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), 0);
+#line 645 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (event_id != NULL, 0);
+#line 647 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 647 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id FROM PhotoTable WHERE event_id = ?", -1, &_tmp1_, NULL);
+#line 647 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 647 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 647 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 648 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 648 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 650 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 650 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = *event_id;
+#line 650 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 650 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 650 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 651 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 651 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 653 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ count = 0;
+#line 4947 "PhotoTable.c"
+ {
+ gboolean _tmp9_ = FALSE;
+#line 654 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = TRUE;
+#line 654 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 4954 "PhotoTable.c"
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp15_ = 0;
+#line 654 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp9_) {
+#line 4961 "PhotoTable.c"
+ }
+#line 654 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = FALSE;
+#line 655 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = stmt;
+#line 655 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = sqlite3_step (_tmp10_);
+#line 655 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp11_;
+#line 656 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = res;
+#line 656 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp12_ == SQLITE_DONE) {
+#line 657 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 4977 "PhotoTable.c"
+ } else {
+ gint _tmp13_ = 0;
+#line 658 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = res;
+#line 658 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp13_ != SQLITE_ROW) {
+#line 4984 "PhotoTable.c"
+ gint _tmp14_ = 0;
+#line 659 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = res;
+#line 659 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("get_event_photo_count", _tmp14_);
+#line 661 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 4992 "PhotoTable.c"
+ }
+ }
+#line 664 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = count;
+#line 664 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ count = _tmp15_ + 1;
+#line 4999 "PhotoTable.c"
+ }
+ }
+#line 667 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = count;
+#line 667 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 667 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5008 "PhotoTable.c"
+}
+
+
+GeeArrayList* photo_table_get_event_source_ids (PhotoTable* self, EventID* event_id) {
+ GeeArrayList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ EventID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GeeArrayList* _result_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+#line 670 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), NULL);
+#line 670 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 672 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 672 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id FROM PhotoTable WHERE event_id = ?", -1, &_tmp1_, NULL);
+#line 672 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 672 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 672 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 673 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 673 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 675 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 675 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = *event_id;
+#line 675 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 675 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 675 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 676 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 676 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 678 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 678 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _result_ = _tmp9_;
+#line 5063 "PhotoTable.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 679 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = TRUE;
+#line 679 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 5070 "PhotoTable.c"
+ sqlite3_stmt* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GeeArrayList* _tmp16_ = NULL;
+ sqlite3_stmt* _tmp17_ = NULL;
+ gint64 _tmp18_ = 0LL;
+ PhotoID _tmp19_ = {0};
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 679 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp10_) {
+#line 5082 "PhotoTable.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = FALSE;
+#line 680 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = stmt;
+#line 680 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = sqlite3_step (_tmp11_);
+#line 680 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp12_;
+#line 681 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = res;
+#line 681 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp13_ == SQLITE_DONE) {
+#line 682 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 5098 "PhotoTable.c"
+ } else {
+ gint _tmp14_ = 0;
+#line 683 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = res;
+#line 683 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp14_ != SQLITE_ROW) {
+#line 5105 "PhotoTable.c"
+ gint _tmp15_ = 0;
+#line 684 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = res;
+#line 684 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("get_event_source_ids", _tmp15_);
+#line 686 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 5113 "PhotoTable.c"
+ }
+ }
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _result_;
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = stmt;
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = sqlite3_column_int64 (_tmp17_, 0);
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_id_init (&_tmp19_, _tmp18_);
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = photo_id_upgrade_photo_id_to_source_id (&_tmp19_);
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = _tmp20_;
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp21_);
+#line 689 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp21_);
+#line 5132 "PhotoTable.c"
+ }
+ }
+#line 692 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _result_;
+#line 692 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 692 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5141 "PhotoTable.c"
+}
+
+
+gboolean photo_table_event_has_photos (PhotoTable* self, EventID* event_id) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ EventID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 695 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 695 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 697 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 697 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id FROM PhotoTable WHERE event_id = ? LIMIT 1", -1, &_tmp1_, NULL);
+#line 697 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 697 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 697 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 698 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 698 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 700 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 700 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = *event_id;
+#line 700 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 700 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 700 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 701 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 701 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 703 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = stmt;
+#line 703 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 703 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 704 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 704 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp11_ == SQLITE_DONE) {
+#line 705 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 705 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 705 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5209 "PhotoTable.c"
+ } else {
+ gint _tmp12_ = 0;
+#line 706 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = res;
+#line 706 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp12_ != SQLITE_ROW) {
+#line 5216 "PhotoTable.c"
+ gint _tmp13_ = 0;
+#line 707 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = res;
+#line 707 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("event_has_photos", _tmp13_);
+#line 709 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 709 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 709 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5228 "PhotoTable.c"
+ }
+ }
+#line 712 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 712 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 712 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5237 "PhotoTable.c"
+}
+
+
+gboolean photo_table_drop_event (PhotoTable* self, EventID* event_id) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* _tmp7_ = NULL;
+ EventID _tmp8_ = {0};
+ gint64 _tmp9_ = 0LL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 715 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 715 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 717 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 717 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE PhotoTable SET event_id = ? WHERE event_id = ?", -1, &_tmp1_, NULL);
+#line 717 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 717 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 717 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 718 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 718 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 720 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 720 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = sqlite3_bind_int64 (_tmp4_, 1, EVENT_ID_INVALID);
+#line 720 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp5_;
+#line 721 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = res;
+#line 721 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 722 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = stmt;
+#line 722 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = *event_id;
+#line 722 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = _tmp8_.id;
+#line 722 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp7_, 2, _tmp9_);
+#line 722 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 723 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 723 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 725 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt;
+#line 725 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 725 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp13_;
+#line 726 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = res;
+#line 726 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp14_ != SQLITE_DONE) {
+#line 5312 "PhotoTable.c"
+ gint _tmp15_ = 0;
+#line 727 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = res;
+#line 727 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("drop_event", _tmp15_);
+#line 729 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 729 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 729 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5324 "PhotoTable.c"
+ }
+#line 732 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 732 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 732 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5332 "PhotoTable.c"
+}
+
+
+gboolean photo_table_set_event (PhotoTable* self, PhotoID* photo_id, EventID* event_id) {
+ gboolean result = FALSE;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ EventID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+ gboolean _tmp4_ = FALSE;
+#line 735 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 735 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 735 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 736 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 736 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 736 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = *event_id;
+#line 736 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _tmp2_.id;
+#line 736 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = database_table_update_int64_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "event_id", _tmp3_);
+#line 736 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp4_;
+#line 736 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5363 "PhotoTable.c"
+}
+
+
+static gchar* photo_table_get_raw_transformations (PhotoTable* self, PhotoID* photo_id) {
+ gchar* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gchar* trans = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ const gchar* _tmp8_ = NULL;
+#line 739 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), NULL);
+#line 739 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, NULL);
+#line 741 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 741 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 741 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = database_table_select_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "transformations", &_tmp2_);
+#line 741 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 741 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp2_;
+#line 741 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp3_) {
+#line 742 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = NULL;
+#line 742 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 742 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5402 "PhotoTable.c"
+ }
+#line 744 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 744 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = sqlite3_column_text (_tmp4_, 0);
+#line 744 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 744 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ trans = _tmp6_;
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = trans;
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp8_ == NULL) {
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = TRUE;
+#line 5418 "PhotoTable.c"
+ } else {
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = trans;
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = strlen (_tmp9_);
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = _tmp10_;
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = _tmp11_ == 0;
+#line 5431 "PhotoTable.c"
+ }
+#line 745 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp7_) {
+#line 746 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = NULL;
+#line 746 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 746 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 746 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5443 "PhotoTable.c"
+ }
+#line 748 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = trans;
+#line 748 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 748 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5451 "PhotoTable.c"
+}
+
+
+static gboolean photo_table_set_raw_transformations (PhotoTable* self, PhotoID* photo_id, const gchar* trans) {
+ gboolean result = FALSE;
+ PhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 751 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 751 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 751 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (trans != NULL, FALSE);
+#line 752 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 752 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 752 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = trans;
+#line 752 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = database_table_update_text_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "transformations", _tmp2_);
+#line 752 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_;
+#line 752 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5479 "PhotoTable.c"
+}
+
+
+gboolean photo_table_set_transformation_state (PhotoTable* self, PhotoID* photo_id, Orientation orientation, GeeHashMap* transformations) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ Orientation _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GDestroyNotify _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ sqlite3_stmt* _tmp14_ = NULL;
+ PhotoID _tmp15_ = {0};
+ gint64 _tmp16_ = 0LL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ sqlite3_stmt* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 755 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 755 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail ((transformations == NULL) || GEE_IS_HASH_MAP (transformations), FALSE);
+#line 758 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 758 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE PhotoTable SET orientation = ?, transformations = ? WHERE id = " \
+"?", -1, &_tmp1_, NULL);
+#line 758 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 758 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 758 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 760 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 760 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 762 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 762 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = orientation;
+#line 762 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = sqlite3_bind_int (_tmp4_, 1, (gint) _tmp5_);
+#line 762 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp6_;
+#line 763 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = res;
+#line 763 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 764 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = stmt;
+#line 764 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = transformations;
+#line 764 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = photo_table_unmarshall_all_transformations (_tmp9_);
+#line 764 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = g_free;
+#line 764 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = sqlite3_bind_text (_tmp8_, 2, _tmp10_, -1, _tmp11_);
+#line 764 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp12_;
+#line 765 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = res;
+#line 765 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp13_ == SQLITE_OK, "res == Sqlite.OK");
+#line 766 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = stmt;
+#line 766 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = *photo_id;
+#line 766 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _tmp15_.id;
+#line 766 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = sqlite3_bind_int64 (_tmp14_, 3, _tmp16_);
+#line 766 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp17_;
+#line 767 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = res;
+#line 767 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp18_ == SQLITE_OK, "res == Sqlite.OK");
+#line 769 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = stmt;
+#line 769 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = sqlite3_step (_tmp19_);
+#line 769 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp20_;
+#line 770 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = res;
+#line 770 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp21_ != SQLITE_DONE) {
+#line 5581 "PhotoTable.c"
+ gint _tmp22_ = 0;
+#line 771 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = res;
+#line 771 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("set_transformation_state", _tmp22_);
+#line 773 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 773 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 773 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5593 "PhotoTable.c"
+ }
+#line 776 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 776 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 776 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5601 "PhotoTable.c"
+}
+
+
+GeeHashMap* photo_table_marshall_all_transformations (const gchar* trans) {
+ GeeHashMap* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = trans;
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_ == NULL) {
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = TRUE;
+#line 5616 "PhotoTable.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = trans;
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = strlen (_tmp2_);
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp3_;
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp4_ == 0;
+#line 5629 "PhotoTable.c"
+ }
+#line 780 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp0_) {
+#line 781 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = NULL;
+#line 781 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5637 "PhotoTable.c"
+ }
+ {
+ GKeyFile* keyfile = NULL;
+ GKeyFile* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GKeyFile* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gboolean _tmp12_ = FALSE;
+ GeeHashMap* map = NULL;
+ GeeHashMap* _tmp13_ = NULL;
+ gchar** objects = NULL;
+ GKeyFile* _tmp14_ = NULL;
+ gsize _tmp15_;
+ gchar** _tmp16_ = NULL;
+ gint objects_length1 = 0;
+ gint _objects_size_ = 0;
+ gchar** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+#line 784 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = g_key_file_new ();
+#line 784 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keyfile = _tmp5_;
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = keyfile;
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = trans;
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = trans;
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = strlen (_tmp9_);
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = _tmp10_;
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = g_key_file_load_from_data (_tmp7_, _tmp8_, (gsize) _tmp11_, G_KEY_FILE_NONE, &_inner_error_);
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp12_;
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 5681 "PhotoTable.c"
+ goto __catch15_g_error;
+ }
+#line 785 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp6_) {
+#line 786 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = NULL;
+#line 786 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 786 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5692 "PhotoTable.c"
+ }
+#line 788 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_KEY_VALUE_MAP, (GBoxedCopyFunc) key_value_map_ref, key_value_map_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 788 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ map = _tmp13_;
+#line 790 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = keyfile;
+#line 790 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = g_key_file_get_groups (_tmp14_, &_tmp15_);
+#line 790 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ objects = _tmp16_;
+#line 790 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ objects_length1 = _tmp15_;
+#line 790 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _objects_size_ = objects_length1;
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = objects;
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17__length1 = objects_length1;
+#line 5712 "PhotoTable.c"
+ {
+ gchar** object_collection = NULL;
+ gint object_collection_length1 = 0;
+ gint _object_collection_size_ = 0;
+ gint object_it = 0;
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ object_collection = _tmp17_;
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ object_collection_length1 = _tmp17__length1;
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ for (object_it = 0; object_it < _tmp17__length1; object_it = object_it + 1) {
+#line 5724 "PhotoTable.c"
+ gchar* _tmp18_ = NULL;
+ gchar* object = NULL;
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = g_strdup (object_collection[object_it]);
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ object = _tmp18_;
+#line 5731 "PhotoTable.c"
+ {
+ gchar** keys = NULL;
+ GKeyFile* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gsize _tmp21_;
+ gchar** _tmp22_ = NULL;
+ gint keys_length1 = 0;
+ gint _keys_size_ = 0;
+ gboolean _tmp23_ = FALSE;
+ gchar** _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ KeyValueMap* key_map = NULL;
+ const gchar* _tmp26_ = NULL;
+ KeyValueMap* _tmp27_ = NULL;
+ GeeHashMap* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ KeyValueMap* _tmp45_ = NULL;
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = keyfile;
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = object;
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = g_key_file_get_keys (_tmp19_, _tmp20_, &_tmp21_, &_inner_error_);
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keys = _tmp22_;
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keys_length1 = _tmp21_;
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _keys_size_ = keys_length1;
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (object);
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ objects = (_vala_array_free (objects, objects_length1, (GDestroyNotify) g_free), NULL);
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (map);
+#line 792 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 5771 "PhotoTable.c"
+ goto __catch15_g_error;
+ }
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = keys;
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24__length1 = keys_length1;
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp24_ == NULL) {
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = TRUE;
+#line 5782 "PhotoTable.c"
+ } else {
+ gchar** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = keys;
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25__length1 = keys_length1;
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = _tmp25__length1 == 0;
+#line 5792 "PhotoTable.c"
+ }
+#line 793 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp23_) {
+#line 794 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 794 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (object);
+#line 794 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ continue;
+#line 5802 "PhotoTable.c"
+ }
+#line 796 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = object;
+#line 796 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = key_value_map_new (_tmp26_);
+#line 796 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ key_map = _tmp27_;
+#line 5810 "PhotoTable.c"
+ {
+ gint ctr = 0;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ctr = 0;
+#line 5815 "PhotoTable.c"
+ {
+ gboolean _tmp28_ = FALSE;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = TRUE;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 5822 "PhotoTable.c"
+ gint _tmp30_ = 0;
+ gchar** _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ gchar* _tmp32_ = NULL;
+ GKeyFile* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gchar** _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ gint _tmp36_ = 0;
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ KeyValueMap* _tmp39_ = NULL;
+ gchar** _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ gint _tmp41_ = 0;
+ const gchar* _tmp42_ = NULL;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp28_) {
+#line 5841 "PhotoTable.c"
+ gint _tmp29_ = 0;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = ctr;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ctr = _tmp29_ + 1;
+#line 5847 "PhotoTable.c"
+ }
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = FALSE;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = ctr;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = keys;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31__length1 = keys_length1;
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!(_tmp30_ < _tmp31__length1)) {
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 5861 "PhotoTable.c"
+ }
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = keyfile;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = object;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = keys;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35__length1 = keys_length1;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = ctr;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = _tmp35_[_tmp36_];
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = g_key_file_get_string (_tmp33_, _tmp34_, _tmp37_, &_inner_error_);
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = _tmp38_;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _key_value_map_unref0 (key_map);
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (object);
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ objects = (_vala_array_free (objects, objects_length1, (GDestroyNotify) g_free), NULL);
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (map);
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 5893 "PhotoTable.c"
+ goto __catch15_g_error;
+ }
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = key_map;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = keys;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40__length1 = keys_length1;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = ctr;
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = _tmp40_[_tmp41_];
+#line 798 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ key_value_map_set_string (_tmp39_, _tmp42_, _tmp32_);
+#line 797 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp32_);
+#line 5910 "PhotoTable.c"
+ }
+ }
+ }
+#line 800 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = map;
+#line 800 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = object;
+#line 800 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = key_map;
+#line 800 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp44_, _tmp45_);
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _key_value_map_unref0 (key_map);
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keys = (_vala_array_free (keys, keys_length1, (GDestroyNotify) g_free), NULL);
+#line 791 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (object);
+#line 5928 "PhotoTable.c"
+ }
+ }
+ }
+#line 803 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = map;
+#line 803 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ objects = (_vala_array_free (objects, objects_length1, (GDestroyNotify) g_free), NULL);
+#line 803 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 803 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 5940 "PhotoTable.c"
+ }
+ goto __finally15;
+ __catch15_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp46_ = NULL;
+#line 783 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ err = _inner_error_;
+#line 783 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _inner_error_ = NULL;
+#line 805 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = err->message;
+#line 805 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_error ("PhotoTable.vala:805: %s", _tmp46_);
+#line 783 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_error_free0 (err);
+#line 5957 "PhotoTable.c"
+ }
+ __finally15:
+#line 783 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 783 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 783 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return NULL;
+#line 5966 "PhotoTable.c"
+}
+
+
+gchar* photo_table_unmarshall_all_transformations (GeeHashMap* transformations) {
+ gchar* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GeeHashMap* _tmp1_ = NULL;
+ GKeyFile* keyfile = NULL;
+ GKeyFile* _tmp8_ = NULL;
+ gsize length = 0UL;
+ gchar* unmarshalled = NULL;
+ GKeyFile* _tmp39_ = NULL;
+ gsize _tmp40_ = 0UL;
+ gchar* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+#line 809 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail ((transformations == NULL) || GEE_IS_HASH_MAP (transformations), NULL);
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = transformations;
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_ == NULL) {
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = TRUE;
+#line 5993 "PhotoTable.c"
+ } else {
+ GeeHashMap* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = transformations;
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp3_;
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = _tmp4_;
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = _tmp6_;
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp7_ == 0;
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_tmp5_);
+#line 6017 "PhotoTable.c"
+ }
+#line 810 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp0_) {
+#line 811 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = NULL;
+#line 811 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6025 "PhotoTable.c"
+ }
+#line 813 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = g_key_file_new ();
+#line 813 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keyfile = _tmp8_;
+#line 6031 "PhotoTable.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ GeeSet* _tmp10_ = NULL;
+ GeeSet* _tmp11_ = NULL;
+ GeeSet* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = transformations;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_MAP, GeeMap));
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = _tmp10_;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = _tmp11_;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = _tmp13_;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_tmp12_);
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _object_it = _tmp14_;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 6058 "PhotoTable.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gchar* object = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ KeyValueMap* map = NULL;
+ GeeHashMap* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gpointer _tmp21_ = NULL;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = _object_it;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp16_) {
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 6076 "PhotoTable.c"
+ }
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = _object_it;
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ object = (gchar*) _tmp18_;
+#line 816 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = transformations;
+#line 816 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = object;
+#line 816 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp20_);
+#line 816 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ map = (KeyValueMap*) _tmp21_;
+#line 6092 "PhotoTable.c"
+ {
+ GeeIterator* _key_it = NULL;
+ KeyValueMap* _tmp22_ = NULL;
+ GeeSet* _tmp23_ = NULL;
+ GeeSet* _tmp24_ = NULL;
+ GeeIterator* _tmp25_ = NULL;
+ GeeIterator* _tmp26_ = NULL;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = map;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = key_value_map_get_keys (_tmp22_);
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = _tmp23_;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = _tmp25_;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_tmp24_);
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _key_it = _tmp26_;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 6116 "PhotoTable.c"
+ GeeIterator* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gchar* key = NULL;
+ GeeIterator* _tmp29_ = NULL;
+ gpointer _tmp30_ = NULL;
+ gchar* value = NULL;
+ KeyValueMap* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ GKeyFile* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = _key_it;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = gee_iterator_next (_tmp27_);
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp28_) {
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 6139 "PhotoTable.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = _key_it;
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = gee_iterator_get (_tmp29_);
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ key = (gchar*) _tmp30_;
+#line 819 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = map;
+#line 819 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = key;
+#line 819 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = key_value_map_get_string (_tmp31_, _tmp32_, NULL);
+#line 819 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value = _tmp33_;
+#line 820 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = value;
+#line 820 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp34_ != NULL, "value != null");
+#line 822 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = keyfile;
+#line 822 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = object;
+#line 822 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = key;
+#line 822 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = value;
+#line 822 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_key_file_set_string (_tmp35_, _tmp36_, _tmp37_, _tmp38_);
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (value);
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (key);
+#line 6173 "PhotoTable.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_key_it);
+#line 6177 "PhotoTable.c"
+ }
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _key_value_map_unref0 (map);
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (object);
+#line 6183 "PhotoTable.c"
+ }
+#line 815 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_object_it);
+#line 6187 "PhotoTable.c"
+ }
+#line 827 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = keyfile;
+#line 827 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = g_key_file_to_data (_tmp39_, &_tmp40_, NULL);
+#line 827 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ length = _tmp40_;
+#line 827 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ unmarshalled = _tmp41_;
+#line 828 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = unmarshalled;
+#line 828 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp42_ != NULL, "unmarshalled != null");
+#line 829 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = unmarshalled;
+#line 829 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = strlen (_tmp43_);
+#line 829 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = _tmp44_;
+#line 829 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp45_ > 0, "unmarshalled.length > 0");
+#line 831 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = unmarshalled;
+#line 831 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 831 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6215 "PhotoTable.c"
+}
+
+
+gboolean photo_table_set_transformation (PhotoTable* self, PhotoID* photo_id, KeyValueMap* map) {
+ gboolean result = FALSE;
+ gchar* trans = NULL;
+ PhotoID _tmp0_ = {0};
+ gchar* _tmp1_ = NULL;
+ PhotoID _tmp37_ = {0};
+ const gchar* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 834 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 834 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (map), FALSE);
+#line 835 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 835 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = photo_table_get_raw_transformations (self, &_tmp0_);
+#line 835 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ trans = _tmp1_;
+#line 6240 "PhotoTable.c"
+ {
+ GKeyFile* keyfile = NULL;
+ GKeyFile* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GeeSet* keys = NULL;
+ KeyValueMap* _tmp11_ = NULL;
+ GeeSet* _tmp12_ = NULL;
+ gsize length = 0UL;
+ GKeyFile* _tmp29_ = NULL;
+ gsize _tmp30_ = 0UL;
+ gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 838 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = g_key_file_new ();
+#line 838 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keyfile = _tmp2_;
+#line 839 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = trans;
+#line 839 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp3_ != NULL) {
+#line 6264 "PhotoTable.c"
+ gboolean _tmp4_ = FALSE;
+ GKeyFile* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = keyfile;
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = trans;
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = trans;
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = strlen (_tmp7_);
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = _tmp8_;
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = g_key_file_load_from_data (_tmp5_, _tmp6_, (gsize) _tmp9_, G_KEY_FILE_NONE, &_inner_error_);
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp10_;
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 6290 "PhotoTable.c"
+ goto __catch16_g_error;
+ }
+#line 840 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp4_) {
+#line 841 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 841 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 841 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 841 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6303 "PhotoTable.c"
+ }
+ }
+#line 844 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = map;
+#line 844 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = key_value_map_get_keys (_tmp11_);
+#line 844 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keys = _tmp12_;
+#line 6312 "PhotoTable.c"
+ {
+ GeeIterator* _key_it = NULL;
+ GeeSet* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = keys;
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _key_it = _tmp14_;
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 6325 "PhotoTable.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gchar* key = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ gchar* value = NULL;
+ KeyValueMap* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GKeyFile* _tmp23_ = NULL;
+ KeyValueMap* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = _key_it;
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp16_) {
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 6350 "PhotoTable.c"
+ }
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = _key_it;
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ key = (gchar*) _tmp18_;
+#line 846 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = map;
+#line 846 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = key;
+#line 846 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = key_value_map_get_string (_tmp19_, _tmp20_, NULL);
+#line 846 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value = _tmp21_;
+#line 847 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = value;
+#line 847 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp22_ != NULL, "value != null");
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = keyfile;
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = map;
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = key_value_map_get_group (_tmp24_);
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = _tmp25_;
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = key;
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = value;
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_key_file_set_string (_tmp23_, _tmp26_, _tmp27_, _tmp28_);
+#line 849 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp26_);
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (value);
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (key);
+#line 6390 "PhotoTable.c"
+ }
+#line 845 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (_key_it);
+#line 6394 "PhotoTable.c"
+ }
+#line 853 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = keyfile;
+#line 853 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = g_key_file_to_data (_tmp29_, &_tmp30_, NULL);
+#line 853 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ length = _tmp30_;
+#line 853 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 853 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ trans = _tmp31_;
+#line 854 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = trans;
+#line 854 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp32_ != NULL, "trans != null");
+#line 855 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = trans;
+#line 855 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = strlen (_tmp33_);
+#line 855 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = _tmp34_;
+#line 855 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp35_ > 0, "trans.length > 0");
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_object_unref0 (keys);
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 6422 "PhotoTable.c"
+ }
+ goto __finally16;
+ __catch16_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp36_ = NULL;
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ err = _inner_error_;
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _inner_error_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = err->message;
+#line 857 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_error ("PhotoTable.vala:857: %s", _tmp36_);
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_error_free0 (err);
+#line 6439 "PhotoTable.c"
+ }
+ __finally16:
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 837 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return FALSE;
+#line 6452 "PhotoTable.c"
+ }
+#line 860 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = *photo_id;
+#line 860 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = trans;
+#line 860 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = photo_table_set_raw_transformations (self, &_tmp37_, _tmp38_);
+#line 860 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp39_;
+#line 860 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 860 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6466 "PhotoTable.c"
+}
+
+
+gboolean photo_table_remove_transformation (PhotoTable* self, PhotoID* photo_id, const gchar* object) {
+ gboolean result = FALSE;
+ gchar* trans = NULL;
+ PhotoID _tmp0_ = {0};
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoID _tmp21_ = {0};
+ const gchar* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 863 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 863 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 863 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (object != NULL, FALSE);
+#line 864 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 864 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = photo_table_get_raw_transformations (self, &_tmp0_);
+#line 864 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ trans = _tmp1_;
+#line 865 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = trans;
+#line 865 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp2_ == NULL) {
+#line 866 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 866 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 866 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6502 "PhotoTable.c"
+ }
+ {
+ GKeyFile* keyfile = NULL;
+ GKeyFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GKeyFile* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+ GKeyFile* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GKeyFile* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gsize length = 0UL;
+ GKeyFile* _tmp16_ = NULL;
+ gsize _tmp17_ = 0UL;
+ gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+#line 869 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = g_key_file_new ();
+#line 869 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ keyfile = _tmp3_;
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = keyfile;
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = trans;
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = trans;
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = strlen (_tmp7_);
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = _tmp8_;
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = g_key_file_load_from_data (_tmp5_, _tmp6_, (gsize) _tmp9_, G_KEY_FILE_NONE, &_inner_error_);
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp10_;
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 6546 "PhotoTable.c"
+ goto __catch17_g_error;
+ }
+#line 870 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp4_) {
+#line 871 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 871 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 871 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 871 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6559 "PhotoTable.c"
+ }
+#line 873 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = keyfile;
+#line 873 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = object;
+#line 873 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = g_key_file_has_group (_tmp11_, _tmp12_);
+#line 873 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!_tmp13_) {
+#line 874 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 874 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 874 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 874 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6577 "PhotoTable.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = keyfile;
+#line 876 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = object;
+#line 876 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_key_file_remove_group (_tmp14_, _tmp15_, &_inner_error_);
+#line 876 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 876 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 6589 "PhotoTable.c"
+ goto __catch17_g_error;
+ }
+#line 879 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = keyfile;
+#line 879 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = g_key_file_to_data (_tmp16_, &_tmp17_, NULL);
+#line 879 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ length = _tmp17_;
+#line 879 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 879 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ trans = _tmp18_;
+#line 880 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = trans;
+#line 880 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp19_ != NULL, "trans != null");
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_key_file_unref0 (keyfile);
+#line 6608 "PhotoTable.c"
+ }
+ goto __finally17;
+ __catch17_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp20_ = NULL;
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ err = _inner_error_;
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _inner_error_ = NULL;
+#line 882 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = err->message;
+#line 882 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_error ("PhotoTable.vala:882: %s", _tmp20_);
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_error_free0 (err);
+#line 6625 "PhotoTable.c"
+ }
+ __finally17:
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 868 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return FALSE;
+#line 6638 "PhotoTable.c"
+ }
+#line 885 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = *photo_id;
+#line 885 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = trans;
+#line 885 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = photo_table_set_raw_transformations (self, &_tmp21_, _tmp22_);
+#line 885 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp23_;
+#line 885 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (trans);
+#line 885 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6652 "PhotoTable.c"
+}
+
+
+gboolean photo_table_remove_all_transformations (PhotoTable* self, PhotoID* photo_id) {
+ gboolean result = FALSE;
+ PhotoID _tmp0_ = {0};
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PhotoID _tmp4_ = {0};
+ gint64 _tmp5_ = 0LL;
+ gboolean _tmp6_ = FALSE;
+#line 888 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 888 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (photo_id != NULL, FALSE);
+#line 889 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *photo_id;
+#line 889 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = photo_table_get_raw_transformations (self, &_tmp0_);
+#line 889 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = _tmp1_;
+#line 889 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _tmp2_ == NULL;
+#line 889 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp2_);
+#line 889 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp3_) {
+#line 890 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 890 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6685 "PhotoTable.c"
+ }
+#line 892 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = *photo_id;
+#line 892 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = _tmp4_.id;
+#line 892 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = database_table_update_text_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp5_, "transformations", "");
+#line 892 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp6_;
+#line 892 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 6697 "PhotoTable.c"
+}
+
+
+static sqlite3_stmt* photo_table_get_duplicate_stmt (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format) {
+ sqlite3_stmt* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+ gchar* sql = NULL;
+ gchar* _tmp5_ = NULL;
+ gboolean first = FALSE;
+ GFile* _tmp6_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ const gchar* _tmp10_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ sqlite3_stmt* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint col = 0;
+ GFile* _tmp38_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ const gchar* _tmp54_ = NULL;
+ gboolean _tmp62_ = FALSE;
+ gboolean _tmp63_ = FALSE;
+ const gchar* _tmp64_ = NULL;
+#line 897 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), NULL);
+#line 897 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = file;
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp2_ != NULL) {
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = TRUE;
+#line 6736 "PhotoTable.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = thumbnail_md5;
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 6743 "PhotoTable.c"
+ }
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_) {
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = TRUE;
+#line 6749 "PhotoTable.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = md5;
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp4_ != NULL;
+#line 6756 "PhotoTable.c"
+ }
+#line 899 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp0_, "file != null || thumbnail_md5 != null || md5 != null");
+#line 901 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = g_strdup ("SELECT id FROM PhotoTable WHERE");
+#line 901 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp5_;
+#line 902 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ first = TRUE;
+#line 904 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = file;
+#line 904 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp6_ != NULL) {
+#line 6770 "PhotoTable.c"
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 905 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sql;
+#line 905 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = g_strconcat (_tmp7_, " filename=?", NULL);
+#line 905 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 905 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp8_;
+#line 906 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ first = FALSE;
+#line 6783 "PhotoTable.c"
+ }
+#line 909 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = thumbnail_md5;
+#line 909 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp10_ != NULL) {
+#line 909 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = TRUE;
+#line 6791 "PhotoTable.c"
+ } else {
+ const gchar* _tmp11_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = md5;
+#line 909 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = _tmp11_ != NULL;
+#line 6798 "PhotoTable.c"
+ }
+#line 909 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp9_) {
+#line 6802 "PhotoTable.c"
+ gboolean _tmp12_ = FALSE;
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ PhotoFileFormat _tmp28_ = 0;
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+#line 910 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = first;
+#line 910 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp12_) {
+#line 6815 "PhotoTable.c"
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 911 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = sql;
+#line 911 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = g_strconcat (_tmp13_, " ((", NULL);
+#line 911 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 911 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp14_;
+#line 6826 "PhotoTable.c"
+ } else {
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 913 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = sql;
+#line 913 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = g_strconcat (_tmp15_, " OR ((", NULL);
+#line 913 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 913 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp16_;
+#line 6838 "PhotoTable.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ first = FALSE;
+#line 916 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = thumbnail_md5;
+#line 916 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp17_ != NULL) {
+#line 6846 "PhotoTable.c"
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 917 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = sql;
+#line 917 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = g_strconcat (_tmp18_, " thumbnail_md5=?", NULL);
+#line 917 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 917 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp19_;
+#line 6857 "PhotoTable.c"
+ }
+#line 919 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = md5;
+#line 919 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp20_ != NULL) {
+#line 6863 "PhotoTable.c"
+ const gchar* _tmp21_ = NULL;
+#line 920 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = thumbnail_md5;
+#line 920 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp21_ == NULL) {
+#line 6869 "PhotoTable.c"
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = sql;
+#line 921 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = g_strconcat (_tmp22_, " md5=?", NULL);
+#line 921 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 921 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp23_;
+#line 6880 "PhotoTable.c"
+ } else {
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 923 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = sql;
+#line 923 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = g_strconcat (_tmp24_, " OR md5=?", NULL);
+#line 923 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 923 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp25_;
+#line 6892 "PhotoTable.c"
+ }
+ }
+#line 926 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = sql;
+#line 926 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = g_strconcat (_tmp26_, ")", NULL);
+#line 926 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 926 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp27_;
+#line 928 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = file_format;
+#line 928 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp28_ != PHOTO_FILE_FORMAT_UNKNOWN) {
+#line 6907 "PhotoTable.c"
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 929 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = sql;
+#line 929 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = g_strconcat (_tmp29_, " AND file_format=?", NULL);
+#line 929 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 929 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp30_;
+#line 6918 "PhotoTable.c"
+ }
+#line 931 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = sql;
+#line 931 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = g_strconcat (_tmp31_, ")", NULL);
+#line 931 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 931 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ sql = _tmp32_;
+#line 6928 "PhotoTable.c"
+ }
+#line 935 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = database_table_db;
+#line 935 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = sql;
+#line 935 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = sqlite3_prepare_v2 (_tmp33_, _tmp34_, -1, &_tmp35_, NULL);
+#line 935 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 935 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp35_;
+#line 935 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp36_;
+#line 936 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = res;
+#line 936 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp37_ == SQLITE_OK, "res == Sqlite.OK");
+#line 938 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = 1;
+#line 940 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = file;
+#line 940 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp38_ != NULL) {
+#line 6952 "PhotoTable.c"
+ sqlite3_stmt* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ GFile* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ GDestroyNotify _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = stmt;
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = col;
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = _tmp40_ + 1;
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = file;
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = g_file_get_path (_tmp41_);
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = g_free;
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = sqlite3_bind_text (_tmp39_, _tmp40_, _tmp42_, -1, _tmp43_);
+#line 941 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp44_;
+#line 942 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = res;
+#line 942 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp45_ == SQLITE_OK, "res == Sqlite.OK");
+#line 6980 "PhotoTable.c"
+ }
+#line 945 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = thumbnail_md5;
+#line 945 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp46_ != NULL) {
+#line 6986 "PhotoTable.c"
+ sqlite3_stmt* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ const gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ GDestroyNotify _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = stmt;
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = col;
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = _tmp48_ + 1;
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = thumbnail_md5;
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = g_strdup (_tmp49_);
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = g_free;
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = sqlite3_bind_text (_tmp47_, _tmp48_, _tmp50_, -1, _tmp51_);
+#line 946 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp52_;
+#line 947 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = res;
+#line 947 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp53_ == SQLITE_OK, "res == Sqlite.OK");
+#line 7014 "PhotoTable.c"
+ }
+#line 950 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = md5;
+#line 950 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp54_ != NULL) {
+#line 7020 "PhotoTable.c"
+ sqlite3_stmt* _tmp55_ = NULL;
+ gint _tmp56_ = 0;
+ const gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ GDestroyNotify _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_ = stmt;
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_ = col;
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = _tmp56_ + 1;
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_ = md5;
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp58_ = g_strdup (_tmp57_);
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp59_ = g_free;
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp60_ = sqlite3_bind_text (_tmp55_, _tmp56_, _tmp58_, -1, _tmp59_);
+#line 951 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp60_;
+#line 952 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp61_ = res;
+#line 952 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp61_ == SQLITE_OK, "res == Sqlite.OK");
+#line 7048 "PhotoTable.c"
+ }
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp64_ = thumbnail_md5;
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp64_ != NULL) {
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_ = TRUE;
+#line 7056 "PhotoTable.c"
+ } else {
+ const gchar* _tmp65_ = NULL;
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp65_ = md5;
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp63_ = _tmp65_ != NULL;
+#line 7063 "PhotoTable.c"
+ }
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp63_) {
+#line 7067 "PhotoTable.c"
+ PhotoFileFormat _tmp66_ = 0;
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp66_ = file_format;
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp62_ = _tmp66_ != PHOTO_FILE_FORMAT_UNKNOWN;
+#line 7073 "PhotoTable.c"
+ } else {
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp62_ = FALSE;
+#line 7077 "PhotoTable.c"
+ }
+#line 955 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp62_) {
+#line 7081 "PhotoTable.c"
+ sqlite3_stmt* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ PhotoFileFormat _tmp69_ = 0;
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+#line 956 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp67_ = stmt;
+#line 956 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp68_ = col;
+#line 956 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = _tmp68_ + 1;
+#line 956 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp69_ = file_format;
+#line 956 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp70_ = photo_file_format_serialize (_tmp69_);
+#line 956 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp71_ = sqlite3_bind_int (_tmp67_, _tmp68_, _tmp70_);
+#line 956 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp71_;
+#line 957 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp72_ = res;
+#line 957 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp72_ == SQLITE_OK, "res == Sqlite.OK");
+#line 7106 "PhotoTable.c"
+ }
+#line 960 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = stmt;
+#line 960 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (sql);
+#line 960 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7114 "PhotoTable.c"
+}
+
+
+gboolean photo_table_has_duplicate (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint res = 0;
+ sqlite3_stmt* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 963 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), FALSE);
+#line 963 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), FALSE);
+#line 964 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = file;
+#line 964 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = thumbnail_md5;
+#line 964 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = md5;
+#line 964 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = file_format;
+#line 964 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = photo_table_get_duplicate_stmt (self, _tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 964 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp4_;
+#line 965 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = stmt;
+#line 965 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = sqlite3_step (_tmp5_);
+#line 965 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp6_;
+#line 967 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = res;
+#line 967 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp7_ == SQLITE_DONE) {
+#line 969 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 969 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 969 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7162 "PhotoTable.c"
+ } else {
+ gint _tmp8_ = 0;
+#line 970 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 970 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp8_ == SQLITE_ROW) {
+#line 972 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = TRUE;
+#line 972 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 972 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7175 "PhotoTable.c"
+ } else {
+ gint _tmp9_ = 0;
+#line 974 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = res;
+#line 974 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("has_duplicate", _tmp9_);
+#line 976 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 976 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 976 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7188 "PhotoTable.c"
+ }
+ }
+#line 963 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 7193 "PhotoTable.c"
+}
+
+
+static void _vala_array_add2 (PhotoID** array, int* length, int* size, const PhotoID* value) {
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if ((*length) == (*size)) {
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *array = g_renew (PhotoID, *array, *size);
+#line 7204 "PhotoTable.c"
+ }
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ (*array)[(*length)++] = *value;
+#line 7208 "PhotoTable.c"
+}
+
+
+PhotoID* photo_table_get_duplicate_ids (PhotoTable* self, GFile* file, const gchar* thumbnail_md5, const gchar* md5, PhotoFileFormat file_format, int* result_length1) {
+ PhotoID* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ PhotoID* ids = NULL;
+ PhotoID* _tmp5_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ gint res = 0;
+ sqlite3_stmt* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ PhotoID* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 980 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_PHOTO_TABLE (self), NULL);
+#line 980 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 982 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = file;
+#line 982 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = thumbnail_md5;
+#line 982 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = md5;
+#line 982 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = file_format;
+#line 982 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = photo_table_get_duplicate_stmt (self, _tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 982 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp4_;
+#line 984 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = g_new0 (PhotoID, 0);
+#line 984 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ids = _tmp5_;
+#line 984 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ids_length1 = 0;
+#line 984 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _ids_size_ = ids_length1;
+#line 986 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = stmt;
+#line 986 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_step (_tmp6_);
+#line 986 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 987 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ while (TRUE) {
+#line 7261 "PhotoTable.c"
+ gint _tmp8_ = 0;
+ PhotoID* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint64 _tmp11_ = 0LL;
+ PhotoID _tmp12_ = {0};
+ sqlite3_stmt* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+#line 987 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 987 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!(_tmp8_ == SQLITE_ROW)) {
+#line 987 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 7276 "PhotoTable.c"
+ }
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = ids;
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9__length1 = ids_length1;
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = stmt;
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = sqlite3_column_int64 (_tmp10_, 0);
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_id_init (&_tmp12_, _tmp11_);
+#line 988 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_array_add2 (&ids, &ids_length1, &_ids_size_, &_tmp12_);
+#line 989 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = stmt;
+#line 989 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = sqlite3_step (_tmp13_);
+#line 989 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp14_;
+#line 7296 "PhotoTable.c"
+ }
+#line 992 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = ids;
+#line 992 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15__length1 = ids_length1;
+#line 992 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (result_length1) {
+#line 992 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *result_length1 = _tmp15__length1;
+#line 7306 "PhotoTable.c"
+ }
+#line 992 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp15_;
+#line 992 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 992 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7314 "PhotoTable.c"
+}
+
+
+void photo_table_update_backlinks (PhotoTable* self, PhotoID* photo_id, const gchar* backlinks, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ PhotoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 995 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 995 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (photo_id != NULL);
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = backlinks;
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 7332 "PhotoTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = backlinks;
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = _tmp2_;
+#line 7338 "PhotoTable.c"
+ } else {
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = "";
+#line 7342 "PhotoTable.c"
+ }
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = *photo_id;
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "backlinks", _tmp0_, &_inner_error_);
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7358 "PhotoTable.c"
+ } else {
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 996 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7366 "PhotoTable.c"
+ }
+ }
+}
+
+
+void photo_table_attach_editable (PhotoTable* self, PhotoRow* row, BackingPhotoID* editable_id, GError** error) {
+ PhotoRow* _tmp0_ = NULL;
+ PhotoID _tmp1_ = {0};
+ gint64 _tmp2_ = 0LL;
+ BackingPhotoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ PhotoRow* _tmp5_ = NULL;
+ BackingPhotoID _tmp6_ = {0};
+ GError * _inner_error_ = NULL;
+#line 999 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 999 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_ROW (row));
+#line 999 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (editable_id != NULL);
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = row;
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_->photo_id;
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = _tmp1_.id;
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = *editable_id;
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp2_, "editable_id", _tmp4_, &_inner_error_);
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7407 "PhotoTable.c"
+ } else {
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1000 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7415 "PhotoTable.c"
+ }
+ }
+#line 1002 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = row;
+#line 1002 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = *editable_id;
+#line 1002 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_->editable_id = _tmp6_;
+#line 7424 "PhotoTable.c"
+}
+
+
+void photo_table_detach_editable (PhotoTable* self, PhotoRow* row, GError** error) {
+ PhotoRow* _tmp0_ = NULL;
+ PhotoID _tmp1_ = {0};
+ gint64 _tmp2_ = 0LL;
+ PhotoRow* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1005 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 1005 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_ROW (row));
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = row;
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_->photo_id;
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = _tmp1_.id;
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp2_, "editable_id", BACKING_PHOTO_ID_INVALID, &_inner_error_);
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7454 "PhotoTable.c"
+ } else {
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1006 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7462 "PhotoTable.c"
+ }
+ }
+#line 1008 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = row;
+#line 1008 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp3_->editable_id, BACKING_PHOTO_ID_INVALID);
+#line 7469 "PhotoTable.c"
+}
+
+
+void photo_table_set_metadata_dirty (PhotoTable* self, PhotoID* photo_id, gboolean dirty, GError** error) {
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ PhotoID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 1011 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 1011 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (photo_id != NULL);
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = dirty;
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp1_) {
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = 1;
+#line 7489 "PhotoTable.c"
+ } else {
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = 0;
+#line 7493 "PhotoTable.c"
+ }
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = *photo_id;
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _tmp2_.id;
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_int_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp3_, "metadata_dirty", _tmp0_, &_inner_error_);
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7509 "PhotoTable.c"
+ } else {
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1012 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7517 "PhotoTable.c"
+ }
+ }
+}
+
+
+void photo_table_update_raw_development (PhotoTable* self, PhotoRow* row, RawDeveloper rd, BackingPhotoID* backing_photo_id, GError** error) {
+ gchar* col = NULL;
+ RawDeveloper _tmp0_ = 0;
+ PhotoRow* _tmp4_ = NULL;
+ BackingPhotoID* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ RawDeveloper _tmp6_ = 0;
+ BackingPhotoID _tmp7_ = {0};
+ BackingPhotoID _tmp8_ = {0};
+ PhotoRow* _tmp9_ = NULL;
+ PhotoID _tmp10_ = {0};
+ gint64 _tmp11_ = 0LL;
+ const gchar* _tmp12_ = NULL;
+ BackingPhotoID _tmp13_ = {0};
+ gint64 _tmp14_ = 0LL;
+ BackingPhotoID _tmp15_ = {0};
+ gint64 _tmp16_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 1015 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 1015 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_ROW (row));
+#line 1015 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (backing_photo_id != NULL);
+#line 1019 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = rd;
+#line 1019 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ switch (_tmp0_) {
+#line 1019 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ case RAW_DEVELOPER_SHOTWELL:
+#line 7553 "PhotoTable.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 1021 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = g_strdup ("develop_shotwell_id");
+#line 1021 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 1021 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = _tmp1_;
+#line 1022 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 7564 "PhotoTable.c"
+ }
+#line 1019 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ case RAW_DEVELOPER_CAMERA:
+#line 7568 "PhotoTable.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 1025 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = g_strdup ("develop_camera_id");
+#line 1025 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 1025 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = _tmp2_;
+#line 1026 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 7579 "PhotoTable.c"
+ }
+#line 1019 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ case RAW_DEVELOPER_EMBEDDED:
+#line 7583 "PhotoTable.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 1029 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = g_strdup ("develop_embedded_id");
+#line 1029 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 1029 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ col = _tmp3_;
+#line 1030 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ break;
+#line 7594 "PhotoTable.c"
+ }
+ default:
+ {
+#line 1033 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_assert_not_reached ();
+#line 7600 "PhotoTable.c"
+ }
+ }
+#line 1036 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = row;
+#line 1036 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = _tmp4_->development_ids;
+#line 1036 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5__length1 = _tmp4_->development_ids_length1;
+#line 1036 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = rd;
+#line 1036 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = *backing_photo_id;
+#line 1036 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_[_tmp6_] = _tmp7_;
+#line 1036 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = _tmp5_[_tmp6_];
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = row;
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = _tmp9_->photo_id;
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = _tmp10_.id;
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = col;
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = *backing_photo_id;
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = _tmp13_.id;
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp11_, _tmp12_, _tmp14_, &_inner_error_);
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7641 "PhotoTable.c"
+ } else {
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1037 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7651 "PhotoTable.c"
+ }
+ }
+#line 1039 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = *backing_photo_id;
+#line 1039 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _tmp15_.id;
+#line 1039 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp16_ != BACKING_PHOTO_ID_INVALID) {
+#line 7660 "PhotoTable.c"
+ PhotoRow* _tmp17_ = NULL;
+ PhotoID _tmp18_ = {0};
+ gint64 _tmp19_ = 0LL;
+ RawDeveloper _tmp20_ = 0;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = row;
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = _tmp17_->photo_id;
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = _tmp18_.id;
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = rd;
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = raw_developer_to_string (_tmp20_);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = _tmp21_;
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp19_, "developer", _tmp22_, &_inner_error_);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp22_);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7693 "PhotoTable.c"
+ } else {
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1040 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7703 "PhotoTable.c"
+ }
+ }
+ }
+#line 1015 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (col);
+#line 7709 "PhotoTable.c"
+}
+
+
+void photo_table_remove_development (PhotoTable* self, PhotoRow* row, RawDeveloper rd, GError** error) {
+ PhotoRow* _tmp0_ = NULL;
+ RawDeveloper _tmp1_ = 0;
+ BackingPhotoID _tmp2_ = {0};
+ GError * _inner_error_ = NULL;
+#line 1043 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_TABLE (self));
+#line 1043 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_PHOTO_ROW (row));
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = row;
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = rd;
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp2_, BACKING_PHOTO_ID_INVALID);
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_table_update_raw_development (self, _tmp0_, _tmp1_, &_tmp2_, &_inner_error_);
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7738 "PhotoTable.c"
+ } else {
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1044 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 7746 "PhotoTable.c"
+ }
+ }
+}
+
+
+static void photo_table_class_init (PhotoTableClass * klass) {
+#line 109 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ photo_table_parent_class = g_type_class_peek_parent (klass);
+#line 109 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = photo_table_finalize;
+#line 7757 "PhotoTable.c"
+}
+
+
+static void photo_table_instance_init (PhotoTable * self) {
+}
+
+
+static void photo_table_finalize (DatabaseTable* obj) {
+ PhotoTable * self;
+#line 109 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_TABLE, PhotoTable);
+#line 109 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ DATABASE_TABLE_CLASS (photo_table_parent_class)->finalize (obj);
+#line 7771 "PhotoTable.c"
+}
+
+
+GType photo_table_get_type (void) {
+ static volatile gsize photo_table_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoTable), 0, (GInstanceInitFunc) photo_table_instance_init, NULL };
+ GType photo_table_type_id;
+ photo_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "PhotoTable", &g_define_type_info, 0);
+ g_once_init_leave (&photo_table_type_id__volatile, photo_table_type_id);
+ }
+ return photo_table_type_id__volatile;
+}
+
+
+void backing_photo_id_init (BackingPhotoID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 1064 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ memset (self, 0, sizeof (BackingPhotoID));
+#line 1065 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = id;
+#line 1065 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ (*self).id = _tmp0_;
+#line 7795 "PhotoTable.c"
+}
+
+
+gboolean backing_photo_id_is_invalid (BackingPhotoID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 1069 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = (*self).id;
+#line 1069 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp0_ == BACKING_PHOTO_ID_INVALID;
+#line 1069 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7808 "PhotoTable.c"
+}
+
+
+gboolean backing_photo_id_is_valid (BackingPhotoID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 1073 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = (*self).id;
+#line 1073 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp0_ != BACKING_PHOTO_ID_INVALID;
+#line 1073 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7821 "PhotoTable.c"
+}
+
+
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self) {
+ BackingPhotoID* dup;
+#line 1059 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dup = g_new0 (BackingPhotoID, 1);
+#line 1059 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ memcpy (dup, self, sizeof (BackingPhotoID));
+#line 1059 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return dup;
+#line 7833 "PhotoTable.c"
+}
+
+
+void backing_photo_id_free (BackingPhotoID* self) {
+#line 1059 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_free (self);
+#line 7840 "PhotoTable.c"
+}
+
+
+GType backing_photo_id_get_type (void) {
+ static volatile gsize backing_photo_id_type_id__volatile = 0;
+ if (g_once_init_enter (&backing_photo_id_type_id__volatile)) {
+ GType backing_photo_id_type_id;
+ backing_photo_id_type_id = g_boxed_type_register_static ("BackingPhotoID", (GBoxedCopyFunc) backing_photo_id_dup, (GBoxedFreeFunc) backing_photo_id_free);
+ g_once_init_leave (&backing_photo_id_type_id__volatile, backing_photo_id_type_id);
+ }
+ return backing_photo_id_type_id__volatile;
+}
+
+
+gboolean backing_photo_row_matches_file_info (BackingPhotoRow* self, GFileInfo* info) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+ GFileInfo* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ time_t _tmp3_ = 0;
+ GFileInfo* _tmp4_ = NULL;
+ GTimeVal _tmp5_ = {0};
+ glong _tmp6_ = 0L;
+#line 1087 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_BACKING_PHOTO_ROW (self), FALSE);
+#line 1087 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 1088 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = self->filesize;
+#line 1088 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = info;
+#line 1088 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = g_file_info_get_size (_tmp1_);
+#line 1088 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp0_ != _tmp2_) {
+#line 1089 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 1089 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7880 "PhotoTable.c"
+ }
+#line 1091 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = self->timestamp;
+#line 1091 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = info;
+#line 1091 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_file_info_get_modification_time (_tmp4_, &_tmp5_);
+#line 1091 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_.tv_sec;
+#line 1091 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_ == ((time_t) _tmp6_);
+#line 1091 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7894 "PhotoTable.c"
+}
+
+
+gboolean backing_photo_row_is_touched (BackingPhotoRow* self, GFileInfo* info) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+ GFileInfo* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+ time_t _tmp3_ = 0;
+ GFileInfo* _tmp4_ = NULL;
+ GTimeVal _tmp5_ = {0};
+ glong _tmp6_ = 0L;
+#line 1094 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_BACKING_PHOTO_ROW (self), FALSE);
+#line 1094 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), FALSE);
+#line 1095 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = self->filesize;
+#line 1095 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = info;
+#line 1095 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = g_file_info_get_size (_tmp1_);
+#line 1095 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp0_ != _tmp2_) {
+#line 1096 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = FALSE;
+#line 1096 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7923 "PhotoTable.c"
+ }
+#line 1098 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = self->timestamp;
+#line 1098 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = info;
+#line 1098 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_file_info_get_modification_time (_tmp4_, &_tmp5_);
+#line 1098 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_.tv_sec;
+#line 1098 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_ != ((time_t) _tmp6_);
+#line 1098 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 7937 "PhotoTable.c"
+}
+
+
+void backing_photo_row_copy_from (BackingPhotoRow* self, BackingPhotoRow* from) {
+ BackingPhotoRow* _tmp0_ = NULL;
+ BackingPhotoID _tmp1_ = {0};
+ BackingPhotoRow* _tmp2_ = NULL;
+ time_t _tmp3_ = 0;
+ BackingPhotoRow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ BackingPhotoRow* _tmp7_ = NULL;
+ gint64 _tmp8_ = 0LL;
+ BackingPhotoRow* _tmp9_ = NULL;
+ time_t _tmp10_ = 0;
+ BackingPhotoRow* _tmp11_ = NULL;
+ PhotoFileFormat _tmp12_ = 0;
+ BackingPhotoRow* _tmp13_ = NULL;
+ Dimensions _tmp14_ = {0};
+ BackingPhotoRow* _tmp15_ = NULL;
+ Orientation _tmp16_ = 0;
+#line 1102 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_ROW (self));
+#line 1102 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_ROW (from));
+#line 1103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = from;
+#line 1103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_->id;
+#line 1103 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->id = _tmp1_;
+#line 1104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = from;
+#line 1104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _tmp2_->time_created;
+#line 1104 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->time_created = _tmp3_;
+#line 1105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = from;
+#line 1105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = _tmp4_->filepath;
+#line 1105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 1105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->filepath);
+#line 1105 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->filepath = _tmp6_;
+#line 1106 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = from;
+#line 1106 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = _tmp7_->filesize;
+#line 1106 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->filesize = _tmp8_;
+#line 1107 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = from;
+#line 1107 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = _tmp9_->timestamp;
+#line 1107 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->timestamp = _tmp10_;
+#line 1108 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = from;
+#line 1108 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = _tmp11_->file_format;
+#line 1108 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->file_format = _tmp12_;
+#line 1109 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = from;
+#line 1109 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = _tmp13_->dim;
+#line 1109 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->dim = _tmp14_;
+#line 1110 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = from;
+#line 1110 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _tmp15_->original_orientation;
+#line 1110 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->original_orientation = _tmp16_;
+#line 8015 "PhotoTable.c"
+}
+
+
+BackingPhotoRow* backing_photo_row_construct (GType object_type) {
+ BackingPhotoRow* self = NULL;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = (BackingPhotoRow*) g_type_create_instance (object_type);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return self;
+#line 8025 "PhotoTable.c"
+}
+
+
+BackingPhotoRow* backing_photo_row_new (void) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return backing_photo_row_construct (TYPE_BACKING_PHOTO_ROW);
+#line 8032 "PhotoTable.c"
+}
+
+
+static void value_backing_photo_row_init (GValue* value) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 8039 "PhotoTable.c"
+}
+
+
+static void value_backing_photo_row_free_value (GValue* value) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (value->data[0].v_pointer) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_row_unref (value->data[0].v_pointer);
+#line 8048 "PhotoTable.c"
+ }
+}
+
+
+static void value_backing_photo_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dest_value->data[0].v_pointer = backing_photo_row_ref (src_value->data[0].v_pointer);
+#line 8058 "PhotoTable.c"
+ } else {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 8062 "PhotoTable.c"
+ }
+}
+
+
+static gpointer value_backing_photo_row_peek_pointer (const GValue* value) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return value->data[0].v_pointer;
+#line 8070 "PhotoTable.c"
+}
+
+
+static gchar* value_backing_photo_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 8077 "PhotoTable.c"
+ BackingPhotoRow* object;
+ object = collect_values[0].v_pointer;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8084 "PhotoTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 8088 "PhotoTable.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = backing_photo_row_ref (object);
+#line 8092 "PhotoTable.c"
+ } else {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 8096 "PhotoTable.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return NULL;
+#line 8100 "PhotoTable.c"
+}
+
+
+static gchar* value_backing_photo_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ BackingPhotoRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!object_p) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 8111 "PhotoTable.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *object_p = NULL;
+#line 8117 "PhotoTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 8121 "PhotoTable.c"
+ } else {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ *object_p = backing_photo_row_ref (value->data[0].v_pointer);
+#line 8125 "PhotoTable.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return NULL;
+#line 8129 "PhotoTable.c"
+}
+
+
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecBackingPhotoRow* spec;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_BACKING_PHOTO_ROW), NULL);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 8143 "PhotoTable.c"
+}
+
+
+gpointer value_get_backing_photo_row (const GValue* value) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKING_PHOTO_ROW), NULL);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return value->data[0].v_pointer;
+#line 8152 "PhotoTable.c"
+}
+
+
+void value_set_backing_photo_row (GValue* value, gpointer v_object) {
+ BackingPhotoRow* old;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKING_PHOTO_ROW));
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ old = value->data[0].v_pointer;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (v_object) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BACKING_PHOTO_ROW));
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_row_ref (value->data[0].v_pointer);
+#line 8172 "PhotoTable.c"
+ } else {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 8176 "PhotoTable.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (old) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_row_unref (old);
+#line 8182 "PhotoTable.c"
+ }
+}
+
+
+void value_take_backing_photo_row (GValue* value, gpointer v_object) {
+ BackingPhotoRow* old;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKING_PHOTO_ROW));
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ old = value->data[0].v_pointer;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (v_object) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BACKING_PHOTO_ROW));
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 8201 "PhotoTable.c"
+ } else {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 8205 "PhotoTable.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (old) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_row_unref (old);
+#line 8211 "PhotoTable.c"
+ }
+}
+
+
+static void backing_photo_row_class_init (BackingPhotoRowClass * klass) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_row_parent_class = g_type_class_peek_parent (klass);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ((BackingPhotoRowClass *) klass)->finalize = backing_photo_row_finalize;
+#line 8221 "PhotoTable.c"
+}
+
+
+static void backing_photo_row_instance_init (BackingPhotoRow * self) {
+#line 1080 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->filepath = NULL;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self->ref_count = 1;
+#line 8230 "PhotoTable.c"
+}
+
+
+static void backing_photo_row_finalize (BackingPhotoRow* obj) {
+ BackingPhotoRow * self;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BACKING_PHOTO_ROW, BackingPhotoRow);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_signal_handlers_destroy (self);
+#line 1080 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (self->filepath);
+#line 8242 "PhotoTable.c"
+}
+
+
+GType backing_photo_row_get_type (void) {
+ static volatile gsize backing_photo_row_type_id__volatile = 0;
+ if (g_once_init_enter (&backing_photo_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_backing_photo_row_init, value_backing_photo_row_free_value, value_backing_photo_row_copy_value, value_backing_photo_row_peek_pointer, "p", value_backing_photo_row_collect_value, "p", value_backing_photo_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BackingPhotoRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) backing_photo_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BackingPhotoRow), 0, (GInstanceInitFunc) backing_photo_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType backing_photo_row_type_id;
+ backing_photo_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "BackingPhotoRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&backing_photo_row_type_id__volatile, backing_photo_row_type_id);
+ }
+ return backing_photo_row_type_id__volatile;
+}
+
+
+gpointer backing_photo_row_ref (gpointer instance) {
+ BackingPhotoRow* self;
+ self = instance;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return instance;
+#line 8267 "PhotoTable.c"
+}
+
+
+void backing_photo_row_unref (gpointer instance) {
+ BackingPhotoRow* self;
+ self = instance;
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ BACKING_PHOTO_ROW_GET_CLASS (self)->finalize (self);
+#line 1077 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 8280 "PhotoTable.c"
+ }
+}
+
+
+static BackingPhotoTable* backing_photo_table_construct (GType object_type) {
+ BackingPhotoTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 1117 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = (BackingPhotoTable*) database_table_construct (object_type);
+#line 1118 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "BackingPhotoTable");
+#line 1121 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 1121 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS " "BackingPhotoTable " "(" "id INTEGER PRIMARY KEY, " "filepath TEXT UNIQUE NOT NULL, " "timestamp INTEGER, " "filesize INTEGER, " "width INTEGER, " "height INTEGER, " "original_orientation INTEGER, " "file_format INTEGER, " "time_created INTEGER " ")", -1, &_tmp1_, NULL);
+#line 1121 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1121 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 1121 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 1134 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 1134 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1136 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 1136 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 1136 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp5_;
+#line 1137 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = res;
+#line 1137 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 8324 "PhotoTable.c"
+ gint _tmp7_ = 0;
+#line 1138 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = res;
+#line 1138 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_fatal ("create PhotoBackingTable", _tmp7_);
+#line 8330 "PhotoTable.c"
+ }
+#line 1117 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1117 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return self;
+#line 8336 "PhotoTable.c"
+}
+
+
+static BackingPhotoTable* backing_photo_table_new (void) {
+#line 1117 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return backing_photo_table_construct (TYPE_BACKING_PHOTO_TABLE);
+#line 8343 "PhotoTable.c"
+}
+
+
+BackingPhotoTable* backing_photo_table_get_instance (void) {
+ BackingPhotoTable* result = NULL;
+ BackingPhotoTable* _tmp0_ = NULL;
+ BackingPhotoTable* _tmp2_ = NULL;
+ BackingPhotoTable* _tmp3_ = NULL;
+#line 1142 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = backing_photo_table_instance;
+#line 1142 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp0_ == NULL) {
+#line 8356 "PhotoTable.c"
+ BackingPhotoTable* _tmp1_ = NULL;
+#line 1143 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = backing_photo_table_new ();
+#line 1143 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _database_table_unref0 (backing_photo_table_instance);
+#line 1143 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_table_instance = _tmp1_;
+#line 8364 "PhotoTable.c"
+ }
+#line 1145 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = backing_photo_table_instance;
+#line 1145 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 1145 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = _tmp3_;
+#line 1145 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 8374 "PhotoTable.c"
+}
+
+
+void backing_photo_table_add (BackingPhotoTable* self, BackingPhotoRow* state, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ time_t time_created = 0;
+ gulong _tmp4_ = 0UL;
+ sqlite3_stmt* _tmp5_ = NULL;
+ BackingPhotoRow* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GDestroyNotify _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ BackingPhotoRow* _tmp13_ = NULL;
+ time_t _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ sqlite3_stmt* _tmp17_ = NULL;
+ BackingPhotoRow* _tmp18_ = NULL;
+ gint64 _tmp19_ = 0LL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ sqlite3_stmt* _tmp22_ = NULL;
+ BackingPhotoRow* _tmp23_ = NULL;
+ Dimensions _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ sqlite3_stmt* _tmp28_ = NULL;
+ BackingPhotoRow* _tmp29_ = NULL;
+ Dimensions _tmp30_ = {0};
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ sqlite3_stmt* _tmp34_ = NULL;
+ BackingPhotoRow* _tmp35_ = NULL;
+ Orientation _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ sqlite3_stmt* _tmp39_ = NULL;
+ BackingPhotoRow* _tmp40_ = NULL;
+ PhotoFileFormat _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ sqlite3_stmt* _tmp45_ = NULL;
+ time_t _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ sqlite3_stmt* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ BackingPhotoRow* _tmp53_ = NULL;
+ sqlite3* _tmp54_ = NULL;
+ gint64 _tmp55_ = 0LL;
+ BackingPhotoRow* _tmp56_ = NULL;
+ time_t _tmp57_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1148 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_TABLE (self));
+#line 1148 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_ROW (state));
+#line 1150 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 1150 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO BackingPhotoTable " "(filepath, timestamp, filesize, width, height, original_orientation, " "file_format, time_created) " "VALUES (?, ?, ?, ?, ?, ?, ?, ?)", -1, &_tmp1_, NULL);
+#line 1150 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1150 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 1150 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 1155 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 1155 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1157 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = now_sec ();
+#line 1157 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ time_created = (time_t) _tmp4_;
+#line 1159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = stmt;
+#line 1159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = state;
+#line 1159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = _tmp6_->filepath;
+#line 1159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 1159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = g_free;
+#line 1159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_bind_text (_tmp5_, 1, _tmp8_, -1, _tmp9_);
+#line 1159 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 1160 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 1160 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1161 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt;
+#line 1161 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = state;
+#line 1161 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = _tmp13_->timestamp;
+#line 1161 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = sqlite3_bind_int64 (_tmp12_, 2, (gint64) _tmp14_);
+#line 1161 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp15_;
+#line 1162 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = res;
+#line 1162 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp16_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1163 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = stmt;
+#line 1163 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = state;
+#line 1163 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = _tmp18_->filesize;
+#line 1163 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = sqlite3_bind_int64 (_tmp17_, 3, _tmp19_);
+#line 1163 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp20_;
+#line 1164 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = res;
+#line 1164 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp21_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = stmt;
+#line 1165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = state;
+#line 1165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = _tmp23_->dim;
+#line 1165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = _tmp24_.width;
+#line 1165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = sqlite3_bind_int (_tmp22_, 4, _tmp25_);
+#line 1165 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp26_;
+#line 1166 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = res;
+#line 1166 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp27_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = stmt;
+#line 1167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = state;
+#line 1167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = _tmp29_->dim;
+#line 1167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = _tmp30_.height;
+#line 1167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = sqlite3_bind_int (_tmp28_, 5, _tmp31_);
+#line 1167 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp32_;
+#line 1168 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = res;
+#line 1168 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp33_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1169 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = stmt;
+#line 1169 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = state;
+#line 1169 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = _tmp35_->original_orientation;
+#line 1169 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = sqlite3_bind_int (_tmp34_, 6, (gint) _tmp36_);
+#line 1169 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp37_;
+#line 1170 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = res;
+#line 1170 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp38_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1171 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = stmt;
+#line 1171 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = state;
+#line 1171 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = _tmp40_->file_format;
+#line 1171 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = photo_file_format_serialize (_tmp41_);
+#line 1171 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = sqlite3_bind_int (_tmp39_, 7, _tmp42_);
+#line 1171 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp43_;
+#line 1172 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = res;
+#line 1172 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp44_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = stmt;
+#line 1173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = time_created;
+#line 1173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp47_ = sqlite3_bind_int64 (_tmp45_, 8, (gint64) _tmp46_);
+#line 1173 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp47_;
+#line 1174 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp48_ = res;
+#line 1174 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp48_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1176 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp49_ = stmt;
+#line 1176 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp50_ = sqlite3_step (_tmp49_);
+#line 1176 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp50_;
+#line 1177 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp51_ = res;
+#line 1177 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp51_ != SQLITE_DONE) {
+#line 8592 "PhotoTable.c"
+ gint _tmp52_ = 0;
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp52_ = res;
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_throw_error ("PhotoBackingTable.add", _tmp52_, &_inner_error_);
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 8608 "PhotoTable.c"
+ } else {
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1178 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 8618 "PhotoTable.c"
+ }
+ }
+ }
+#line 1180 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp53_ = state;
+#line 1180 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp54_ = database_table_db;
+#line 1180 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp55_ = sqlite3_last_insert_rowid (_tmp54_);
+#line 1180 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_id_init (&_tmp53_->id, _tmp55_);
+#line 1181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_ = state;
+#line 1181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp57_ = time_created;
+#line 1181 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp56_->time_created = _tmp57_;
+#line 1148 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 8638 "PhotoTable.c"
+}
+
+
+BackingPhotoRow* backing_photo_table_fetch (BackingPhotoTable* self, BackingPhotoID* id, GError** error) {
+ BackingPhotoRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ BackingPhotoID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ BackingPhotoRow* row = NULL;
+ BackingPhotoRow* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ BackingPhotoID _tmp16_ = {0};
+ BackingPhotoRow* _tmp17_ = NULL;
+ sqlite3_stmt* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+ sqlite3_stmt* _tmp22_ = NULL;
+ gint64 _tmp23_ = 0LL;
+ BackingPhotoRow* _tmp24_ = NULL;
+ sqlite3_stmt* _tmp25_ = NULL;
+ gint64 _tmp26_ = 0LL;
+ BackingPhotoRow* _tmp27_ = NULL;
+ sqlite3_stmt* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ sqlite3_stmt* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ BackingPhotoRow* _tmp32_ = NULL;
+ sqlite3_stmt* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ BackingPhotoRow* _tmp35_ = NULL;
+ sqlite3_stmt* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ PhotoFileFormat _tmp38_ = 0;
+ BackingPhotoRow* _tmp39_ = NULL;
+ sqlite3_stmt* _tmp40_ = NULL;
+ gint64 _tmp41_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 1184 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (IS_BACKING_PHOTO_TABLE (self), NULL);
+#line 1184 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 1186 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 1186 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT filepath, timestamp, filesize, width, height, " "original_orientation, file_format, time_created FROM BackingPhotoTable" \
+" WHERE id=?", -1, &_tmp1_, NULL);
+#line 1186 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1186 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 1186 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 1189 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 1189 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1191 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 1191 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = *id;
+#line 1191 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 1191 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 1191 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 1192 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 1192 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1194 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = stmt;
+#line 1194 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 1194 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 1195 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 1195 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp11_ == SQLITE_DONE) {
+#line 1196 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = NULL;
+#line 1196 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1196 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 8736 "PhotoTable.c"
+ } else {
+ gint _tmp12_ = 0;
+#line 1197 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = res;
+#line 1197 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp12_ != SQLITE_ROW) {
+#line 8743 "PhotoTable.c"
+ gint _tmp13_ = 0;
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = res;
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_throw_error ("BackingPhotoTable.fetch_for_photo", _tmp13_, &_inner_error_);
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return NULL;
+#line 8759 "PhotoTable.c"
+ } else {
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1198 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return NULL;
+#line 8769 "PhotoTable.c"
+ }
+ }
+ }
+ }
+#line 1200 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = backing_photo_row_new ();
+#line 1200 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ row = _tmp14_;
+#line 1201 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = row;
+#line 1201 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = *id;
+#line 1201 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_->id = _tmp16_;
+#line 1202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = row;
+#line 1202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = stmt;
+#line 1202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = sqlite3_column_text (_tmp18_, 0);
+#line 1202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 1202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _g_free0 (_tmp17_->filepath);
+#line 1202 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_->filepath = _tmp20_;
+#line 1203 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = row;
+#line 1203 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = stmt;
+#line 1203 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = sqlite3_column_int64 (_tmp22_, 1);
+#line 1203 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_->timestamp = (time_t) _tmp23_;
+#line 1204 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = row;
+#line 1204 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = stmt;
+#line 1204 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = sqlite3_column_int64 (_tmp25_, 2);
+#line 1204 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_->filesize = _tmp26_;
+#line 1205 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = row;
+#line 1205 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = stmt;
+#line 1205 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = sqlite3_column_int (_tmp28_, 3);
+#line 1205 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = stmt;
+#line 1205 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = sqlite3_column_int (_tmp30_, 4);
+#line 1205 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ dimensions_init (&_tmp27_->dim, _tmp29_, _tmp31_);
+#line 1206 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = row;
+#line 1206 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = stmt;
+#line 1206 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = sqlite3_column_int (_tmp33_, 5);
+#line 1206 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_->original_orientation = (Orientation) _tmp34_;
+#line 1207 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = row;
+#line 1207 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = stmt;
+#line 1207 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = sqlite3_column_int (_tmp36_, 6);
+#line 1207 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = photo_file_format_unserialize (_tmp37_);
+#line 1207 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_->file_format = _tmp38_;
+#line 1208 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = row;
+#line 1208 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = stmt;
+#line 1208 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = sqlite3_column_int64 (_tmp40_, 7);
+#line 1208 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_->time_created = (time_t) _tmp41_;
+#line 1210 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ result = row;
+#line 1210 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1210 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return result;
+#line 8856 "PhotoTable.c"
+}
+
+
+void backing_photo_table_update (BackingPhotoTable* self, BackingPhotoRow* row, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ BackingPhotoRow* _tmp5_ = NULL;
+ time_t _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ BackingPhotoRow* _tmp10_ = NULL;
+ gint64 _tmp11_ = 0LL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ sqlite3_stmt* _tmp14_ = NULL;
+ BackingPhotoRow* _tmp15_ = NULL;
+ Dimensions _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ sqlite3_stmt* _tmp20_ = NULL;
+ BackingPhotoRow* _tmp21_ = NULL;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ sqlite3_stmt* _tmp26_ = NULL;
+ BackingPhotoRow* _tmp27_ = NULL;
+ Orientation _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ sqlite3_stmt* _tmp31_ = NULL;
+ BackingPhotoRow* _tmp32_ = NULL;
+ PhotoFileFormat _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ sqlite3_stmt* _tmp37_ = NULL;
+ BackingPhotoRow* _tmp38_ = NULL;
+ BackingPhotoID _tmp39_ = {0};
+ gint64 _tmp40_ = 0LL;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ sqlite3_stmt* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_TABLE (self));
+#line 1214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_ROW (row));
+#line 1216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 1216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE BackingPhotoTable SET timestamp=?, filesize=?, " "width=?, height=?, original_orientation=?, file_format=? " "WHERE id=?", -1, &_tmp1_, NULL);
+#line 1216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 1216 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 1220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 1220 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 1222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = row;
+#line 1222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = _tmp5_->timestamp;
+#line 1222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, (gint64) _tmp6_);
+#line 1222 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp7_;
+#line 1223 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = res;
+#line 1223 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = stmt;
+#line 1224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = row;
+#line 1224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = _tmp10_->filesize;
+#line 1224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = sqlite3_bind_int64 (_tmp9_, 2, _tmp11_);
+#line 1224 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp12_;
+#line 1225 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = res;
+#line 1225 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp13_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = stmt;
+#line 1226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = row;
+#line 1226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = _tmp15_->dim;
+#line 1226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = _tmp16_.width;
+#line 1226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = sqlite3_bind_int (_tmp14_, 3, _tmp17_);
+#line 1226 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp18_;
+#line 1227 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = res;
+#line 1227 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp19_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = stmt;
+#line 1228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp21_ = row;
+#line 1228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp22_ = _tmp21_->dim;
+#line 1228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp23_ = _tmp22_.height;
+#line 1228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp24_ = sqlite3_bind_int (_tmp20_, 4, _tmp23_);
+#line 1228 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp24_;
+#line 1229 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp25_ = res;
+#line 1229 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp25_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp26_ = stmt;
+#line 1230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp27_ = row;
+#line 1230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp28_ = _tmp27_->original_orientation;
+#line 1230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp29_ = sqlite3_bind_int (_tmp26_, 5, (gint) _tmp28_);
+#line 1230 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp29_;
+#line 1231 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp30_ = res;
+#line 1231 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp30_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp31_ = stmt;
+#line 1232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp32_ = row;
+#line 1232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp33_ = _tmp32_->file_format;
+#line 1232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp34_ = photo_file_format_serialize (_tmp33_);
+#line 1232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp35_ = sqlite3_bind_int (_tmp31_, 6, _tmp34_);
+#line 1232 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp35_;
+#line 1233 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp36_ = res;
+#line 1233 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp36_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp37_ = stmt;
+#line 1234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp38_ = row;
+#line 1234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp39_ = _tmp38_->id;
+#line 1234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp40_ = _tmp39_.id;
+#line 1234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp41_ = sqlite3_bind_int64 (_tmp37_, 7, _tmp40_);
+#line 1234 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp41_;
+#line 1235 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp42_ = res;
+#line 1235 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp42_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1237 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp43_ = stmt;
+#line 1237 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp44_ = sqlite3_step (_tmp43_);
+#line 1237 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp44_;
+#line 1238 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp45_ = res;
+#line 1238 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp45_ != SQLITE_DONE) {
+#line 9044 "PhotoTable.c"
+ gint _tmp46_ = 0;
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp46_ = res;
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_throw_error ("BackingPhotoTable.update", _tmp46_, &_inner_error_);
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9060 "PhotoTable.c"
+ } else {
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1239 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9070 "PhotoTable.c"
+ }
+ }
+ }
+#line 1214 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 9076 "PhotoTable.c"
+}
+
+
+void backing_photo_table_update_attributes (BackingPhotoTable* self, BackingPhotoID* id, time_t timestamp, gint64 filesize, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ time_t _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ gint64 _tmp9_ = 0LL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ BackingPhotoID _tmp13_ = {0};
+ gint64 _tmp14_ = 0LL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ sqlite3_stmt* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_TABLE (self));
+#line 1242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (id != NULL);
+#line 1244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = database_table_db;
+#line 1244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE BackingPhotoTable SET timestamp=?, filesize=? WHERE id=?", -1, &_tmp1_, NULL);
+#line 1244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ stmt = _tmp1_;
+#line 1244 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp2_;
+#line 1246 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp3_ = res;
+#line 1246 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp4_ = stmt;
+#line 1248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp5_ = timestamp;
+#line 1248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp6_ = sqlite3_bind_int64 (_tmp4_, 1, (gint64) _tmp5_);
+#line 1248 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp6_;
+#line 1249 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp7_ = res;
+#line 1249 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp8_ = stmt;
+#line 1250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp9_ = filesize;
+#line 1250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp8_, 2, _tmp9_);
+#line 1250 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp10_;
+#line 1251 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp11_ = res;
+#line 1251 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1252 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp12_ = stmt;
+#line 1252 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp13_ = *id;
+#line 1252 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp14_ = _tmp13_.id;
+#line 1252 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp15_ = sqlite3_bind_int64 (_tmp12_, 3, _tmp14_);
+#line 1252 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp15_;
+#line 1253 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp16_ = res;
+#line 1253 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _vala_assert (_tmp16_ == SQLITE_OK, "res == Sqlite.OK");
+#line 1255 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp17_ = stmt;
+#line 1255 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp18_ = sqlite3_step (_tmp17_);
+#line 1255 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ res = _tmp18_;
+#line 1256 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp19_ = res;
+#line 1256 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_tmp19_ != SQLITE_DONE) {
+#line 9170 "PhotoTable.c"
+ gint _tmp20_ = 0;
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp20_ = res;
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_throw_error ("BackingPhotoTable.update_attributes", _tmp20_, &_inner_error_);
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9186 "PhotoTable.c"
+ } else {
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1257 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9196 "PhotoTable.c"
+ }
+ }
+ }
+#line 1242 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 9202 "PhotoTable.c"
+}
+
+
+void backing_photo_table_remove (BackingPhotoTable* self, BackingPhotoID* backing_id, GError** error) {
+ BackingPhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 1260 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_TABLE (self));
+#line 1260 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (backing_id != NULL);
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *backing_id;
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_delete_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, &_inner_error_);
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9228 "PhotoTable.c"
+ } else {
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1261 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9236 "PhotoTable.c"
+ }
+ }
+}
+
+
+void backing_photo_table_set_filepath (BackingPhotoTable* self, BackingPhotoID* id, const gchar* filepath, GError** error) {
+ BackingPhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1264 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_TABLE (self));
+#line 1264 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (id != NULL);
+#line 1264 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (filepath != NULL);
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *id;
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = filepath;
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "filepath", _tmp2_, &_inner_error_);
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9269 "PhotoTable.c"
+ } else {
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1265 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9277 "PhotoTable.c"
+ }
+ }
+}
+
+
+void backing_photo_table_update_timestamp (BackingPhotoTable* self, BackingPhotoID* id, time_t timestamp, GError** error) {
+ BackingPhotoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ time_t _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 1268 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (IS_BACKING_PHOTO_TABLE (self));
+#line 1268 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_return_if_fail (id != NULL);
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp0_ = *id;
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ _tmp2_ = timestamp;
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "timestamp", (gint64) _tmp2_, &_inner_error_);
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9308 "PhotoTable.c"
+ } else {
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 1269 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ return;
+#line 9316 "PhotoTable.c"
+ }
+ }
+}
+
+
+static void backing_photo_table_class_init (BackingPhotoTableClass * klass) {
+#line 1114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ backing_photo_table_parent_class = g_type_class_peek_parent (klass);
+#line 1114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = backing_photo_table_finalize;
+#line 9327 "PhotoTable.c"
+}
+
+
+static void backing_photo_table_instance_init (BackingPhotoTable * self) {
+}
+
+
+static void backing_photo_table_finalize (DatabaseTable* obj) {
+ BackingPhotoTable * self;
+#line 1114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BACKING_PHOTO_TABLE, BackingPhotoTable);
+#line 1114 "/home/jens/Source/shotwell/src/db/PhotoTable.vala"
+ DATABASE_TABLE_CLASS (backing_photo_table_parent_class)->finalize (obj);
+#line 9341 "PhotoTable.c"
+}
+
+
+GType backing_photo_table_get_type (void) {
+ static volatile gsize backing_photo_table_type_id__volatile = 0;
+ if (g_once_init_enter (&backing_photo_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (BackingPhotoTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) backing_photo_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BackingPhotoTable), 0, (GInstanceInitFunc) backing_photo_table_instance_init, NULL };
+ GType backing_photo_table_type_id;
+ backing_photo_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "BackingPhotoTable", &g_define_type_info, 0);
+ g_once_init_leave (&backing_photo_table_type_id__volatile, backing_photo_table_type_id);
+ }
+ return backing_photo_table_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/db/PhotoTable.vala b/src/db/PhotoTable.vala
index 5be08e7..f774df5 100644
--- a/src/db/PhotoTable.vala
+++ b/src/db/PhotoTable.vala
@@ -158,6 +158,33 @@ public class PhotoTable : DatabaseTable {
if (res2 != Sqlite.DONE)
fatal("create photo table", res2);
+ // These are for duplicate searches
+ // https://bugzilla.gnome.org/show_bug.cgi?id=742670
+ //
+ // 1) index on md5,file_format
+ res = db.prepare_v2 ("CREATE UNIQUE INDEX IF NOT EXISTS PhotoTableMD5Format on PhotoTable(md5, file_format)", -1, out stmt);
+ assert (res == Sqlite.OK);
+ res = stmt.step ();
+ if (res != Sqlite.DONE) {
+ DatabaseTable.warning ("Failed to create index on md5 and file_format", res);
+ }
+
+ // 2) index on thumbnail_md5,file_format
+ res = db.prepare_v2 ("CREATE INDEX IF NOT EXISTS PhotoTableThumbnailMD5Format on PhotoTable(thumbnail_md5, file_format)", -1, out stmt);
+ assert (res == Sqlite.OK);
+ res = stmt.step ();
+ if (res != Sqlite.DONE) {
+ DatabaseTable.warning ("Failed to create index on md5 and file_format", res);
+ }
+
+ // 3) index on thumbnail_md5,md5
+ res = db.prepare_v2 ("CREATE INDEX IF NOT EXISTS PhotoTableThumbnailMD5MD5 on PhotoTable(thumbnail_md5, md5)", -1, out stmt);
+ assert (res == Sqlite.OK);
+ res = stmt.step ();
+ if (res != Sqlite.DONE) {
+ DatabaseTable.warning ("Failed to create index on thumbnail_md5 and md5", res);
+ }
+
set_table_name("PhotoTable");
}
diff --git a/src/db/SavedSearchDBTable.c b/src/db/SavedSearchDBTable.c
new file mode 100644
index 0000000..1747d47
--- /dev/null
+++ b/src/db/SavedSearchDBTable.c
@@ -0,0 +1,4793 @@
+/* SavedSearchDBTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from SavedSearchDBTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <stdlib.h>
+#include <gee.h>
+#include <sqlite3.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SAVED_SEARCH_ID (saved_search_id_get_type ())
+typedef struct _SavedSearchID SavedSearchID;
+
+#define TYPE_SAVED_SEARCH_ROW (saved_search_row_get_type ())
+#define SAVED_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_ROW, SavedSearchRow))
+#define SAVED_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_ROW, SavedSearchRowClass))
+#define IS_SAVED_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_ROW))
+#define IS_SAVED_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_ROW))
+#define SAVED_SEARCH_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_ROW, SavedSearchRowClass))
+
+typedef struct _SavedSearchRow SavedSearchRow;
+typedef struct _SavedSearchRowClass SavedSearchRowClass;
+typedef struct _SavedSearchRowPrivate SavedSearchRowPrivate;
+
+#define TYPE_SEARCH_OPERATOR (search_operator_get_type ())
+
+#define TYPE_SEARCH_CONDITION (search_condition_get_type ())
+#define SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION, SearchCondition))
+#define SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION, SearchConditionClass))
+#define IS_SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION))
+#define IS_SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION))
+#define SEARCH_CONDITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION, SearchConditionClass))
+
+typedef struct _SearchCondition SearchCondition;
+typedef struct _SearchConditionClass SearchConditionClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecSavedSearchRow ParamSpecSavedSearchRow;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+
+#define TYPE_SAVED_SEARCH_DB_TABLE (saved_search_db_table_get_type ())
+#define SAVED_SEARCH_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTable))
+#define SAVED_SEARCH_DB_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTableClass))
+#define IS_SAVED_SEARCH_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DB_TABLE))
+#define IS_SAVED_SEARCH_DB_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DB_TABLE))
+#define SAVED_SEARCH_DB_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTableClass))
+
+typedef struct _SavedSearchDBTable SavedSearchDBTable;
+typedef struct _SavedSearchDBTableClass SavedSearchDBTableClass;
+typedef struct _SavedSearchDBTablePrivate SavedSearchDBTablePrivate;
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _search_condition_unref0(var) ((var == NULL) ? NULL : (var = (search_condition_unref (var), NULL)))
+#define _saved_search_row_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_row_unref (var), NULL)))
+
+#define TYPE_SEARCH_CONDITION_TEXT (search_condition_text_get_type ())
+#define SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionText))
+#define SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))
+#define IS_SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_TEXT))
+#define IS_SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_TEXT))
+#define SEARCH_CONDITION_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))
+
+typedef struct _SearchConditionText SearchConditionText;
+typedef struct _SearchConditionTextClass SearchConditionTextClass;
+
+#define SEARCH_CONDITION_TYPE_SEARCH_TYPE (search_condition_search_type_get_type ())
+
+#define SEARCH_CONDITION_TEXT_TYPE_CONTEXT (search_condition_text_context_get_type ())
+
+#define TYPE_SEARCH_CONDITION_MEDIA_TYPE (search_condition_media_type_get_type ())
+#define SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType))
+#define SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))
+#define IS_SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
+#define IS_SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
+#define SEARCH_CONDITION_MEDIA_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))
+
+typedef struct _SearchConditionMediaType SearchConditionMediaType;
+typedef struct _SearchConditionMediaTypeClass SearchConditionMediaTypeClass;
+
+#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_CONTEXT (search_condition_media_type_context_get_type ())
+
+#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_MEDIA_TYPE (search_condition_media_type_media_type_get_type ())
+
+#define TYPE_SEARCH_CONDITION_FLAGGED (search_condition_flagged_get_type ())
+#define SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged))
+#define SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))
+#define IS_SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_FLAGGED))
+#define IS_SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_FLAGGED))
+#define SEARCH_CONDITION_FLAGGED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))
+
+typedef struct _SearchConditionFlagged SearchConditionFlagged;
+typedef struct _SearchConditionFlaggedClass SearchConditionFlaggedClass;
+
+#define SEARCH_CONDITION_FLAGGED_TYPE_STATE (search_condition_flagged_state_get_type ())
+
+#define TYPE_SEARCH_CONDITION_MODIFIED (search_condition_modified_get_type ())
+#define SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified))
+#define SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))
+#define IS_SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MODIFIED))
+#define IS_SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MODIFIED))
+#define SEARCH_CONDITION_MODIFIED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))
+
+typedef struct _SearchConditionModified SearchConditionModified;
+typedef struct _SearchConditionModifiedClass SearchConditionModifiedClass;
+
+#define SEARCH_CONDITION_MODIFIED_TYPE_CONTEXT (search_condition_modified_context_get_type ())
+
+#define SEARCH_CONDITION_MODIFIED_TYPE_STATE (search_condition_modified_state_get_type ())
+
+#define TYPE_SEARCH_CONDITION_RATING (search_condition_rating_get_type ())
+#define SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRating))
+#define SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))
+#define IS_SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_RATING))
+#define IS_SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_RATING))
+#define SEARCH_CONDITION_RATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))
+
+typedef struct _SearchConditionRating SearchConditionRating;
+typedef struct _SearchConditionRatingClass SearchConditionRatingClass;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define SEARCH_CONDITION_RATING_TYPE_CONTEXT (search_condition_rating_context_get_type ())
+
+#define TYPE_SEARCH_CONDITION_DATE (search_condition_date_get_type ())
+#define SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDate))
+#define SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))
+#define IS_SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_DATE))
+#define IS_SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_DATE))
+#define SEARCH_CONDITION_DATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))
+
+typedef struct _SearchConditionDate SearchConditionDate;
+typedef struct _SearchConditionDateClass SearchConditionDateClass;
+
+#define SEARCH_CONDITION_DATE_TYPE_CONTEXT (search_condition_date_context_get_type ())
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SavedSearchID {
+ gint64 id;
+};
+
+typedef enum {
+ SEARCH_OPERATOR_ANY = 0,
+ SEARCH_OPERATOR_ALL,
+ SEARCH_OPERATOR_NONE
+} SearchOperator;
+
+struct _SavedSearchRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SavedSearchRowPrivate * priv;
+ SavedSearchID search_id;
+ gchar* name;
+ SearchOperator operator;
+ GeeList* conditions;
+};
+
+struct _SavedSearchRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (SavedSearchRow *self);
+};
+
+struct _ParamSpecSavedSearchRow {
+ GParamSpec parent_instance;
+};
+
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _SavedSearchDBTable {
+ DatabaseTable parent_instance;
+ SavedSearchDBTablePrivate * priv;
+};
+
+struct _SavedSearchDBTableClass {
+ DatabaseTableClass parent_class;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef enum {
+ SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT = 0,
+ SEARCH_CONDITION_SEARCH_TYPE_TITLE,
+ SEARCH_CONDITION_SEARCH_TYPE_TAG,
+ SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME,
+ SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME,
+ SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE,
+ SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE,
+ SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE,
+ SEARCH_CONDITION_SEARCH_TYPE_RATING,
+ SEARCH_CONDITION_SEARCH_TYPE_COMMENT,
+ SEARCH_CONDITION_SEARCH_TYPE_DATE
+} SearchConditionSearchType;
+
+typedef enum {
+ SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS = 0,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY,
+ SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH,
+ SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH,
+ SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_SET
+} SearchConditionTextContext;
+
+typedef enum {
+ SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS = 0,
+ SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT
+} SearchConditionMediaTypeContext;
+
+typedef enum {
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL = 0,
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW,
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO
+} SearchConditionMediaTypeMediaType;
+
+typedef enum {
+ SEARCH_CONDITION_FLAGGED_STATE_FLAGGED = 0,
+ SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED
+} SearchConditionFlaggedState;
+
+typedef enum {
+ SEARCH_CONDITION_MODIFIED_CONTEXT_HAS = 0,
+ SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO
+} SearchConditionModifiedContext;
+
+typedef enum {
+ SEARCH_CONDITION_MODIFIED_STATE_MODIFIED = 0,
+ SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES,
+ SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES
+} SearchConditionModifiedState;
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER = 0,
+ SEARCH_CONDITION_RATING_CONTEXT_ONLY,
+ SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER
+} SearchConditionRatingContext;
+
+typedef enum {
+ SEARCH_CONDITION_DATE_CONTEXT_EXACT = 0,
+ SEARCH_CONDITION_DATE_CONTEXT_AFTER,
+ SEARCH_CONDITION_DATE_CONTEXT_BEFORE,
+ SEARCH_CONDITION_DATE_CONTEXT_BETWEEN,
+ SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET
+} SearchConditionDateContext;
+
+
+static gpointer saved_search_row_parent_class = NULL;
+static gpointer saved_search_db_table_parent_class = NULL;
+static SavedSearchDBTable* saved_search_db_table_instance;
+static SavedSearchDBTable* saved_search_db_table_instance = NULL;
+extern sqlite3* database_table_db;
+
+GType saved_search_id_get_type (void) G_GNUC_CONST;
+SavedSearchID* saved_search_id_dup (const SavedSearchID* self);
+void saved_search_id_free (SavedSearchID* self);
+#define SAVED_SEARCH_ID_INVALID ((gint64) -1)
+void saved_search_id_init (SavedSearchID *self, gint64 id);
+gboolean saved_search_id_is_invalid (SavedSearchID *self);
+gboolean saved_search_id_is_valid (SavedSearchID *self);
+gpointer saved_search_row_ref (gpointer instance);
+void saved_search_row_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_row (GValue* value, gpointer v_object);
+void value_take_saved_search_row (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_row (const GValue* value);
+GType saved_search_row_get_type (void) G_GNUC_CONST;
+GType search_operator_get_type (void) G_GNUC_CONST;
+gpointer search_condition_ref (gpointer instance);
+void search_condition_unref (gpointer instance);
+GParamSpec* param_spec_search_condition (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_search_condition (GValue* value, gpointer v_object);
+void value_take_search_condition (GValue* value, gpointer v_object);
+gpointer value_get_search_condition (const GValue* value);
+GType search_condition_get_type (void) G_GNUC_CONST;
+enum {
+ SAVED_SEARCH_ROW_DUMMY_PROPERTY
+};
+SavedSearchRow* saved_search_row_new (void);
+SavedSearchRow* saved_search_row_construct (GType object_type);
+static void saved_search_row_finalize (SavedSearchRow* obj);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType saved_search_db_table_get_type (void) G_GNUC_CONST;
+enum {
+ SAVED_SEARCH_DB_TABLE_DUMMY_PROPERTY
+};
+static SavedSearchDBTable* saved_search_db_table_new (void);
+static SavedSearchDBTable* saved_search_db_table_construct (GType object_type);
+DatabaseTable* database_table_construct (GType object_type);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+void database_table_fatal (const gchar* op, gint res);
+SavedSearchDBTable* saved_search_db_table_get_instance (void);
+GQuark database_error_quark (void);
+SavedSearchRow* saved_search_db_table_add (SavedSearchDBTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions, GError** error);
+gchar* search_operator_to_string (SearchOperator self);
+void database_table_throw_error (const gchar* method, gint res, GError** error);
+static void saved_search_db_table_add_condition (SavedSearchDBTable* self, SavedSearchID* id, SearchCondition* condition, GError** error);
+GType search_condition_text_get_type (void) G_GNUC_CONST;
+GType search_condition_search_type_get_type (void) G_GNUC_CONST;
+SearchConditionSearchType search_condition_get_search_type (SearchCondition* self);
+gchar* search_condition_search_type_to_string (SearchConditionSearchType self);
+GType search_condition_text_context_get_type (void) G_GNUC_CONST;
+SearchConditionTextContext search_condition_text_get_context (SearchConditionText* self);
+gchar* search_condition_text_context_to_string (SearchConditionTextContext self);
+const gchar* search_condition_text_get_text (SearchConditionText* self);
+GType search_condition_media_type_get_type (void) G_GNUC_CONST;
+GType search_condition_media_type_context_get_type (void) G_GNUC_CONST;
+SearchConditionMediaTypeContext search_condition_media_type_get_context (SearchConditionMediaType* self);
+gchar* search_condition_media_type_context_to_string (SearchConditionMediaTypeContext self);
+GType search_condition_media_type_media_type_get_type (void) G_GNUC_CONST;
+SearchConditionMediaTypeMediaType search_condition_media_type_get_media_type (SearchConditionMediaType* self);
+gchar* search_condition_media_type_media_type_to_string (SearchConditionMediaTypeMediaType self);
+GType search_condition_flagged_get_type (void) G_GNUC_CONST;
+GType search_condition_flagged_state_get_type (void) G_GNUC_CONST;
+SearchConditionFlaggedState search_condition_flagged_get_state (SearchConditionFlagged* self);
+gchar* search_condition_flagged_state_to_string (SearchConditionFlaggedState self);
+GType search_condition_modified_get_type (void) G_GNUC_CONST;
+GType search_condition_modified_context_get_type (void) G_GNUC_CONST;
+SearchConditionModifiedContext search_condition_modified_get_context (SearchConditionModified* self);
+gchar* search_condition_modified_context_to_string (SearchConditionModifiedContext self);
+GType search_condition_modified_state_get_type (void) G_GNUC_CONST;
+SearchConditionModifiedState search_condition_modified_get_state (SearchConditionModified* self);
+gchar* search_condition_modified_state_to_string (SearchConditionModifiedState self);
+GType search_condition_rating_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+Rating search_condition_rating_get_rating (SearchConditionRating* self);
+gint rating_serialize (Rating self);
+GType search_condition_rating_context_get_type (void) G_GNUC_CONST;
+SearchConditionRatingContext search_condition_rating_get_context (SearchConditionRating* self);
+gchar* search_condition_rating_context_to_string (SearchConditionRatingContext self);
+GType search_condition_date_get_type (void) G_GNUC_CONST;
+GType search_condition_date_context_get_type (void) G_GNUC_CONST;
+SearchConditionDateContext search_condition_date_get_context (SearchConditionDate* self);
+gchar* search_condition_date_context_to_string (SearchConditionDateContext self);
+GDateTime* search_condition_date_get_date_one (SearchConditionDate* self);
+GDateTime* search_condition_date_get_date_two (SearchConditionDate* self);
+static void saved_search_db_table_remove_conditions_for_search_id (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error);
+static void saved_search_db_table_remove_conditions_for_table (SavedSearchDBTable* self, const gchar* table_name, SavedSearchID* search_id, GError** error);
+static GeeList* saved_search_db_table_get_conditions_for_id (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error);
+SearchConditionSearchType search_condition_search_type_from_string (const gchar* str);
+SearchConditionTextContext search_condition_text_context_from_string (const gchar* str);
+SearchConditionText* search_condition_text_new (SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
+SearchConditionText* search_condition_text_construct (GType object_type, SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
+SearchConditionMediaTypeContext search_condition_media_type_context_from_string (const gchar* str);
+SearchConditionMediaTypeMediaType search_condition_media_type_media_type_from_string (const gchar* str);
+SearchConditionMediaType* search_condition_media_type_new (SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
+SearchConditionMediaType* search_condition_media_type_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
+SearchConditionFlaggedState search_condition_flagged_state_from_string (const gchar* str);
+SearchConditionFlagged* search_condition_flagged_new (SearchConditionSearchType search_type, SearchConditionFlaggedState state);
+SearchConditionFlagged* search_condition_flagged_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionFlaggedState state);
+SearchConditionModifiedContext search_condition_modified_context_from_string (const gchar* str);
+SearchConditionModifiedState search_condition_modified_state_from_string (const gchar* str);
+SearchConditionModified* search_condition_modified_new (SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
+SearchConditionModified* search_condition_modified_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
+Rating rating_unserialize (gint value);
+SearchConditionRatingContext search_condition_rating_context_from_string (const gchar* str);
+SearchConditionRating* search_condition_rating_new (SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
+SearchConditionRating* search_condition_rating_construct (GType object_type, SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
+SearchConditionDateContext search_condition_date_context_from_string (const gchar* str);
+SearchConditionDate* search_condition_date_new (SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
+SearchConditionDate* search_condition_date_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
+void saved_search_db_table_create_from_row (SavedSearchDBTable* self, SavedSearchRow* row, SavedSearchID* result, GError** error);
+void saved_search_db_table_remove (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error);
+void database_table_delete_by_id (DatabaseTable* self, gint64 id, GError** error);
+SavedSearchRow* saved_search_db_table_get_row (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error);
+SearchOperator search_operator_from_string (const gchar* str);
+GeeList* saved_search_db_table_get_all_rows (SavedSearchDBTable* self, GError** error);
+void saved_search_db_table_rename (SavedSearchDBTable* self, SavedSearchID* search_id, const gchar* new_name, GError** error);
+void database_table_update_text_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text, GError** error);
+static void saved_search_db_table_finalize (DatabaseTable* obj);
+
+
+void saved_search_id_init (SavedSearchID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 12 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ memset (self, 0, sizeof (SavedSearchID));
+#line 13 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = id;
+#line 13 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ (*self).id = _tmp0_;
+#line 434 "SavedSearchDBTable.c"
+}
+
+
+gboolean saved_search_id_is_invalid (SavedSearchID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 17 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = (*self).id;
+#line 17 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = _tmp0_ == SAVED_SEARCH_ID_INVALID;
+#line 17 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 447 "SavedSearchDBTable.c"
+}
+
+
+gboolean saved_search_id_is_valid (SavedSearchID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 21 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = (*self).id;
+#line 21 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = _tmp0_ != SAVED_SEARCH_ID_INVALID;
+#line 21 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 460 "SavedSearchDBTable.c"
+}
+
+
+SavedSearchID* saved_search_id_dup (const SavedSearchID* self) {
+ SavedSearchID* dup;
+#line 7 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ dup = g_new0 (SavedSearchID, 1);
+#line 7 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ memcpy (dup, self, sizeof (SavedSearchID));
+#line 7 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return dup;
+#line 472 "SavedSearchDBTable.c"
+}
+
+
+void saved_search_id_free (SavedSearchID* self) {
+#line 7 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_free (self);
+#line 479 "SavedSearchDBTable.c"
+}
+
+
+GType saved_search_id_get_type (void) {
+ static volatile gsize saved_search_id_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_id_type_id__volatile)) {
+ GType saved_search_id_type_id;
+ saved_search_id_type_id = g_boxed_type_register_static ("SavedSearchID", (GBoxedCopyFunc) saved_search_id_dup, (GBoxedFreeFunc) saved_search_id_free);
+ g_once_init_leave (&saved_search_id_type_id__volatile, saved_search_id_type_id);
+ }
+ return saved_search_id_type_id__volatile;
+}
+
+
+SavedSearchRow* saved_search_row_construct (GType object_type) {
+ SavedSearchRow* self = NULL;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ self = (SavedSearchRow*) g_type_create_instance (object_type);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return self;
+#line 500 "SavedSearchDBTable.c"
+}
+
+
+SavedSearchRow* saved_search_row_new (void) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return saved_search_row_construct (TYPE_SAVED_SEARCH_ROW);
+#line 507 "SavedSearchDBTable.c"
+}
+
+
+static void value_saved_search_row_init (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 514 "SavedSearchDBTable.c"
+}
+
+
+static void value_saved_search_row_free_value (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_row_unref (value->data[0].v_pointer);
+#line 523 "SavedSearchDBTable.c"
+ }
+}
+
+
+static void value_saved_search_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ dest_value->data[0].v_pointer = saved_search_row_ref (src_value->data[0].v_pointer);
+#line 533 "SavedSearchDBTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 537 "SavedSearchDBTable.c"
+ }
+}
+
+
+static gpointer value_saved_search_row_peek_pointer (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return value->data[0].v_pointer;
+#line 545 "SavedSearchDBTable.c"
+}
+
+
+static gchar* value_saved_search_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 552 "SavedSearchDBTable.c"
+ SavedSearchRow* object;
+ object = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 559 "SavedSearchDBTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 563 "SavedSearchDBTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ value->data[0].v_pointer = saved_search_row_ref (object);
+#line 567 "SavedSearchDBTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 571 "SavedSearchDBTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 575 "SavedSearchDBTable.c"
+}
+
+
+static gchar* value_saved_search_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SavedSearchRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!object_p) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 586 "SavedSearchDBTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ *object_p = NULL;
+#line 592 "SavedSearchDBTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 596 "SavedSearchDBTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ *object_p = saved_search_row_ref (value->data[0].v_pointer);
+#line 600 "SavedSearchDBTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 604 "SavedSearchDBTable.c"
+}
+
+
+GParamSpec* param_spec_saved_search_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSavedSearchRow* spec;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SAVED_SEARCH_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 618 "SavedSearchDBTable.c"
+}
+
+
+gpointer value_get_saved_search_row (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return value->data[0].v_pointer;
+#line 627 "SavedSearchDBTable.c"
+}
+
+
+void value_set_saved_search_row (GValue* value, gpointer v_object) {
+ SavedSearchRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_row_ref (value->data[0].v_pointer);
+#line 647 "SavedSearchDBTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 651 "SavedSearchDBTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_row_unref (old);
+#line 657 "SavedSearchDBTable.c"
+ }
+}
+
+
+void value_take_saved_search_row (GValue* value, gpointer v_object) {
+ SavedSearchRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 676 "SavedSearchDBTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 680 "SavedSearchDBTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_row_unref (old);
+#line 686 "SavedSearchDBTable.c"
+ }
+}
+
+
+static void saved_search_row_class_init (SavedSearchRowClass * klass) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_row_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ ((SavedSearchRowClass *) klass)->finalize = saved_search_row_finalize;
+#line 696 "SavedSearchDBTable.c"
+}
+
+
+static void saved_search_row_instance_init (SavedSearchRow * self) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ self->ref_count = 1;
+#line 703 "SavedSearchDBTable.c"
+}
+
+
+static void saved_search_row_finalize (SavedSearchRow* obj) {
+ SavedSearchRow * self;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH_ROW, SavedSearchRow);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_signal_handlers_destroy (self);
+#line 28 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_free0 (self->name);
+#line 30 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (self->conditions);
+#line 717 "SavedSearchDBTable.c"
+}
+
+
+GType saved_search_row_get_type (void) {
+ static volatile gsize saved_search_row_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_saved_search_row_init, value_saved_search_row_free_value, value_saved_search_row_copy_value, value_saved_search_row_peek_pointer, "p", value_saved_search_row_collect_value, "p", value_saved_search_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchRow), 0, (GInstanceInitFunc) saved_search_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType saved_search_row_type_id;
+ saved_search_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SavedSearchRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&saved_search_row_type_id__volatile, saved_search_row_type_id);
+ }
+ return saved_search_row_type_id__volatile;
+}
+
+
+gpointer saved_search_row_ref (gpointer instance) {
+ SavedSearchRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return instance;
+#line 742 "SavedSearchDBTable.c"
+}
+
+
+void saved_search_row_unref (gpointer instance) {
+ SavedSearchRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ SAVED_SEARCH_ROW_GET_CLASS (self)->finalize (self);
+#line 25 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 755 "SavedSearchDBTable.c"
+ }
+}
+
+
+static SavedSearchDBTable* saved_search_db_table_construct (GType object_type) {
+ SavedSearchDBTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3* _tmp8_ = NULL;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ sqlite3* _tmp16_ = NULL;
+ sqlite3_stmt* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ sqlite3_stmt* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ sqlite3* _tmp24_ = NULL;
+ sqlite3_stmt* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ sqlite3_stmt* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ sqlite3* _tmp32_ = NULL;
+ sqlite3_stmt* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ sqlite3_stmt* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ sqlite3* _tmp40_ = NULL;
+ sqlite3_stmt* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ sqlite3_stmt* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ sqlite3* _tmp48_ = NULL;
+ sqlite3_stmt* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ sqlite3_stmt* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ gint _tmp54_ = 0;
+ sqlite3* _tmp56_ = NULL;
+ sqlite3_stmt* _tmp57_ = NULL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ sqlite3_stmt* _tmp60_ = NULL;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ sqlite3* _tmp64_ = NULL;
+ sqlite3_stmt* _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ sqlite3_stmt* _tmp68_ = NULL;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+ sqlite3* _tmp72_ = NULL;
+ sqlite3_stmt* _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ sqlite3_stmt* _tmp76_ = NULL;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+ sqlite3* _tmp80_ = NULL;
+ sqlite3_stmt* _tmp81_ = NULL;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ sqlite3_stmt* _tmp84_ = NULL;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ sqlite3* _tmp88_ = NULL;
+ sqlite3_stmt* _tmp89_ = NULL;
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ sqlite3_stmt* _tmp92_ = NULL;
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+ sqlite3* _tmp96_ = NULL;
+ sqlite3_stmt* _tmp97_ = NULL;
+ gint _tmp98_ = 0;
+ gint _tmp99_ = 0;
+ sqlite3_stmt* _tmp100_ = NULL;
+ gint _tmp101_ = 0;
+ gint _tmp102_ = 0;
+#line 36 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ self = (SavedSearchDBTable*) database_table_construct (object_type);
+#line 37 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "SavedSearchDBTable");
+#line 41 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = database_table_db;
+#line 41 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS " "SavedSearchDBTable " "(" "id INTEGER PRIMARY KEY, " "name TEXT UNIQUE NOT NULL, " "operator TEXT NOT NULL" ")", -1, &_tmp1_, NULL);
+#line 41 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 41 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp1_;
+#line 41 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp2_;
+#line 48 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = res;
+#line 48 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 50 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp4_ = stmt;
+#line 50 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 50 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp5_;
+#line 51 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = res;
+#line 51 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 883 "SavedSearchDBTable.c"
+ gint _tmp7_ = 0;
+#line 52 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = res;
+#line 52 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable", _tmp7_);
+#line 889 "SavedSearchDBTable.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = database_table_db;
+#line 55 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = sqlite3_prepare_v2 (_tmp8_, "CREATE TABLE IF NOT EXISTS " "SavedSearchDBTable_Text " "(" "id INTEGER PRIMARY KEY, " "search_id INTEGER NOT NULL, " "search_type TEXT NOT NULL, " "context TEXT NOT NULL, " "text TEXT" ")", -1, &_tmp9_, NULL);
+#line 55 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 55 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp9_;
+#line 55 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp10_;
+#line 64 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = res;
+#line 64 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 66 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = stmt;
+#line 66 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 66 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp13_;
+#line 67 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = res;
+#line 67 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp14_ != SQLITE_DONE) {
+#line 915 "SavedSearchDBTable.c"
+ gint _tmp15_ = 0;
+#line 68 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = res;
+#line 68 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Text", _tmp15_);
+#line 921 "SavedSearchDBTable.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = database_table_db;
+#line 71 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = sqlite3_prepare_v2 (_tmp16_, "CREATE TABLE IF NOT EXISTS " "SavedSearchDBTable_MediaType " "(" "id INTEGER PRIMARY KEY, " "search_id INTEGER NOT NULL, " "search_type TEXT NOT NULL, " "context TEXT NOT NULL, " "type TEXT NOT_NULL" ")", -1, &_tmp17_, NULL);
+#line 71 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 71 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp17_;
+#line 71 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp18_;
+#line 80 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = res;
+#line 80 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp19_ == SQLITE_OK, "res == Sqlite.OK");
+#line 82 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp20_ = stmt;
+#line 82 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_ = sqlite3_step (_tmp20_);
+#line 82 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp21_;
+#line 83 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp22_ = res;
+#line 83 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp22_ != SQLITE_DONE) {
+#line 947 "SavedSearchDBTable.c"
+ gint _tmp23_ = 0;
+#line 84 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = res;
+#line 84 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_MediaType", _tmp23_);
+#line 953 "SavedSearchDBTable.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_ = database_table_db;
+#line 87 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp26_ = sqlite3_prepare_v2 (_tmp24_, "CREATE TABLE IF NOT EXISTS " "SavedSearchDBTable_Flagged " "(" "id INTEGER PRIMARY KEY, " "search_id INTEGER NOT NULL, " "search_type TEXT NOT NULL, " "flag_state TEXT NOT NULL" ")", -1, &_tmp25_, NULL);
+#line 87 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 87 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp25_;
+#line 87 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp26_;
+#line 95 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_ = res;
+#line 95 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp27_ == SQLITE_OK, "res == Sqlite.OK");
+#line 97 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp28_ = stmt;
+#line 97 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp29_ = sqlite3_step (_tmp28_);
+#line 97 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp29_;
+#line 98 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp30_ = res;
+#line 98 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp30_ != SQLITE_DONE) {
+#line 979 "SavedSearchDBTable.c"
+ gint _tmp31_ = 0;
+#line 99 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp31_ = res;
+#line 99 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Flagged", _tmp31_);
+#line 985 "SavedSearchDBTable.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp32_ = database_table_db;
+#line 102 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp34_ = sqlite3_prepare_v2 (_tmp32_, "CREATE TABLE IF NOT EXISTS " "SavedSearchDBTable_Modified " "(" "id INTEGER PRIMARY KEY, " "search_id INTEGER NOT NULL, " "search_type TEXT NOT NULL, " "context TEXT NOT NULL, " "modified_state TEXT NOT NULL" ")", -1, &_tmp33_, NULL);
+#line 102 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 102 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp33_;
+#line 102 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp34_;
+#line 111 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp35_ = res;
+#line 111 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp35_ == SQLITE_OK, "res == Sqlite.OK");
+#line 113 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp36_ = stmt;
+#line 113 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp37_ = sqlite3_step (_tmp36_);
+#line 113 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp37_;
+#line 114 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp38_ = res;
+#line 114 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp38_ != SQLITE_DONE) {
+#line 1011 "SavedSearchDBTable.c"
+ gint _tmp39_ = 0;
+#line 115 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp39_ = res;
+#line 115 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Modified", _tmp39_);
+#line 1017 "SavedSearchDBTable.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp40_ = database_table_db;
+#line 118 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp42_ = sqlite3_prepare_v2 (_tmp40_, "CREATE TABLE IF NOT EXISTS " "SavedSearchDBTable_Rating " "(" "id INTEGER PRIMARY KEY, " "search_id INTEGER NOT NULL, " "search_type TEXT NOT NULL, " "rating INTEGER NOT_NULL, " "context TEXT NOT NULL" ")", -1, &_tmp41_, NULL);
+#line 118 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 118 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp41_;
+#line 118 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp42_;
+#line 127 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp43_ = res;
+#line 127 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp43_ == SQLITE_OK, "res == Sqlite.OK");
+#line 129 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp44_ = stmt;
+#line 129 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp45_ = sqlite3_step (_tmp44_);
+#line 129 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp45_;
+#line 130 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp46_ = res;
+#line 130 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp46_ != SQLITE_DONE) {
+#line 1043 "SavedSearchDBTable.c"
+ gint _tmp47_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp47_ = res;
+#line 131 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Rating", _tmp47_);
+#line 1049 "SavedSearchDBTable.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp48_ = database_table_db;
+#line 134 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp50_ = sqlite3_prepare_v2 (_tmp48_, "CREATE TABLE IF NOT EXISTS " "SavedSearchDBTable_Date " "(" "id INTEGER PRIMARY KEY, " "search_id INTEGER NOT NULL, " "search_type TEXT NOT NULL, " "context TEXT NOT NULL, " "date_one INTEGER NOT_NULL, " "date_two INTEGER NOT_NULL" ")", -1, &_tmp49_, NULL);
+#line 134 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 134 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp49_;
+#line 134 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp50_;
+#line 144 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp51_ = res;
+#line 144 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp51_ == SQLITE_OK, "res == Sqlite.OK");
+#line 146 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp52_ = stmt;
+#line 146 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp53_ = sqlite3_step (_tmp52_);
+#line 146 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp53_;
+#line 147 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp54_ = res;
+#line 147 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp54_ != SQLITE_DONE) {
+#line 1075 "SavedSearchDBTable.c"
+ gint _tmp55_ = 0;
+#line 148 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp55_ = res;
+#line 148 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Rating", _tmp55_);
+#line 1081 "SavedSearchDBTable.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp56_ = database_table_db;
+#line 151 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp58_ = sqlite3_prepare_v2 (_tmp56_, "CREATE INDEX IF NOT EXISTS " "SavedSearchDBTable_Text_Index " "ON SavedSearchDBTable_Text(search_id)", -1, &_tmp57_, NULL);
+#line 151 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 151 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp57_;
+#line 151 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp58_;
+#line 154 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp59_ = res;
+#line 154 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp59_ == SQLITE_OK, "res == Sqlite.OK");
+#line 155 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp60_ = stmt;
+#line 155 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp61_ = sqlite3_step (_tmp60_);
+#line 155 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp61_;
+#line 156 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp62_ = res;
+#line 156 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp62_ != SQLITE_DONE) {
+#line 1107 "SavedSearchDBTable.c"
+ gint _tmp63_ = 0;
+#line 157 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp63_ = res;
+#line 157 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Text_Index", _tmp63_);
+#line 1113 "SavedSearchDBTable.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp64_ = database_table_db;
+#line 159 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp66_ = sqlite3_prepare_v2 (_tmp64_, "CREATE INDEX IF NOT EXISTS " "SavedSearchDBTable_MediaType_Index " "ON SavedSearchDBTable_MediaType(search_id)", -1, &_tmp65_, NULL);
+#line 159 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 159 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp65_;
+#line 159 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp66_;
+#line 162 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp67_ = res;
+#line 162 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp67_ == SQLITE_OK, "res == Sqlite.OK");
+#line 163 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp68_ = stmt;
+#line 163 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp69_ = sqlite3_step (_tmp68_);
+#line 163 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp69_;
+#line 164 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp70_ = res;
+#line 164 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp70_ != SQLITE_DONE) {
+#line 1139 "SavedSearchDBTable.c"
+ gint _tmp71_ = 0;
+#line 165 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp71_ = res;
+#line 165 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_MediaType_Index", _tmp71_);
+#line 1145 "SavedSearchDBTable.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp72_ = database_table_db;
+#line 167 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp74_ = sqlite3_prepare_v2 (_tmp72_, "CREATE INDEX IF NOT EXISTS " "SavedSearchDBTable_Flagged_Index " "ON SavedSearchDBTable_Flagged(search_id)", -1, &_tmp73_, NULL);
+#line 167 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 167 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp73_;
+#line 167 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp74_;
+#line 170 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp75_ = res;
+#line 170 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp75_ == SQLITE_OK, "res == Sqlite.OK");
+#line 171 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp76_ = stmt;
+#line 171 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp77_ = sqlite3_step (_tmp76_);
+#line 171 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp77_;
+#line 172 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp78_ = res;
+#line 172 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp78_ != SQLITE_DONE) {
+#line 1171 "SavedSearchDBTable.c"
+ gint _tmp79_ = 0;
+#line 173 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp79_ = res;
+#line 173 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Flagged_Index", _tmp79_);
+#line 1177 "SavedSearchDBTable.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp80_ = database_table_db;
+#line 175 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp82_ = sqlite3_prepare_v2 (_tmp80_, "CREATE INDEX IF NOT EXISTS " "SavedSearchDBTable_Modified_Index " "ON SavedSearchDBTable_Modified(search_id)", -1, &_tmp81_, NULL);
+#line 175 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 175 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp81_;
+#line 175 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp82_;
+#line 178 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp83_ = res;
+#line 178 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp83_ == SQLITE_OK, "res == Sqlite.OK");
+#line 179 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp84_ = stmt;
+#line 179 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp85_ = sqlite3_step (_tmp84_);
+#line 179 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp85_;
+#line 180 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp86_ = res;
+#line 180 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp86_ != SQLITE_DONE) {
+#line 1203 "SavedSearchDBTable.c"
+ gint _tmp87_ = 0;
+#line 181 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp87_ = res;
+#line 181 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Modified_Index", _tmp87_);
+#line 1209 "SavedSearchDBTable.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp88_ = database_table_db;
+#line 183 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp90_ = sqlite3_prepare_v2 (_tmp88_, "CREATE INDEX IF NOT EXISTS " "SavedSearchDBTable_Rating_Index " "ON SavedSearchDBTable_Rating(search_id)", -1, &_tmp89_, NULL);
+#line 183 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 183 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp89_;
+#line 183 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp90_;
+#line 186 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp91_ = res;
+#line 186 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp91_ == SQLITE_OK, "res == Sqlite.OK");
+#line 187 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp92_ = stmt;
+#line 187 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp93_ = sqlite3_step (_tmp92_);
+#line 187 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp93_;
+#line 188 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp94_ = res;
+#line 188 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp94_ != SQLITE_DONE) {
+#line 1235 "SavedSearchDBTable.c"
+ gint _tmp95_ = 0;
+#line 189 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp95_ = res;
+#line 189 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Rating_Index", _tmp95_);
+#line 1241 "SavedSearchDBTable.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp96_ = database_table_db;
+#line 191 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp98_ = sqlite3_prepare_v2 (_tmp96_, "CREATE INDEX IF NOT EXISTS " "SavedSearchDBTable_Date_Index " "ON SavedSearchDBTable_Date(search_id)", -1, &_tmp97_, NULL);
+#line 191 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 191 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp97_;
+#line 191 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp98_;
+#line 194 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp99_ = res;
+#line 194 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp99_ == SQLITE_OK, "res == Sqlite.OK");
+#line 195 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp100_ = stmt;
+#line 195 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp101_ = sqlite3_step (_tmp100_);
+#line 195 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp101_;
+#line 196 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp102_ = res;
+#line 196 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp102_ != SQLITE_DONE) {
+#line 1267 "SavedSearchDBTable.c"
+ gint _tmp103_ = 0;
+#line 197 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp103_ = res;
+#line 197 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_fatal ("create SavedSearchDBTable_Date_Index", _tmp103_);
+#line 1273 "SavedSearchDBTable.c"
+ }
+#line 36 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 36 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return self;
+#line 1279 "SavedSearchDBTable.c"
+}
+
+
+static SavedSearchDBTable* saved_search_db_table_new (void) {
+#line 36 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return saved_search_db_table_construct (TYPE_SAVED_SEARCH_DB_TABLE);
+#line 1286 "SavedSearchDBTable.c"
+}
+
+
+static gpointer _database_table_ref0 (gpointer self) {
+#line 204 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return self ? database_table_ref (self) : NULL;
+#line 1293 "SavedSearchDBTable.c"
+}
+
+
+SavedSearchDBTable* saved_search_db_table_get_instance (void) {
+ SavedSearchDBTable* result = NULL;
+ SavedSearchDBTable* _tmp0_ = NULL;
+ SavedSearchDBTable* _tmp2_ = NULL;
+ SavedSearchDBTable* _tmp3_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = saved_search_db_table_instance;
+#line 201 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp0_ == NULL) {
+#line 1306 "SavedSearchDBTable.c"
+ SavedSearchDBTable* _tmp1_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp1_ = saved_search_db_table_new ();
+#line 202 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _database_table_unref0 (saved_search_db_table_instance);
+#line 202 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_instance = _tmp1_;
+#line 1314 "SavedSearchDBTable.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = saved_search_db_table_instance;
+#line 204 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 204 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = _tmp3_;
+#line 204 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 1324 "SavedSearchDBTable.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 227 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1331 "SavedSearchDBTable.c"
+}
+
+
+SavedSearchRow* saved_search_db_table_add (SavedSearchDBTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions, GError** error) {
+ SavedSearchRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GDestroyNotify _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ SearchOperator _tmp11_ = 0;
+ gchar* _tmp12_ = NULL;
+ GDestroyNotify _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ sqlite3_stmt* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ SavedSearchRow* row = NULL;
+ SavedSearchRow* _tmp20_ = NULL;
+ SavedSearchRow* _tmp21_ = NULL;
+ sqlite3* _tmp22_ = NULL;
+ gint64 _tmp23_ = 0LL;
+ SavedSearchRow* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ SavedSearchRow* _tmp27_ = NULL;
+ SearchOperator _tmp28_ = 0;
+ SavedSearchRow* _tmp29_ = NULL;
+ GeeArrayList* _tmp30_ = NULL;
+ GeeList* _tmp31_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_DB_TABLE (self), NULL);
+#line 207 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 207 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (GEE_IS_ARRAY_LIST (conditions), NULL);
+#line 210 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = database_table_db;
+#line 210 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO SavedSearchDBTable (name, operator) VALUES (?, ?)", -1, &_tmp1_, NULL);
+#line 210 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 210 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp1_;
+#line 210 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp2_;
+#line 212 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = res;
+#line 212 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 214 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp4_ = stmt;
+#line 214 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = name;
+#line 214 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 214 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = g_free;
+#line 214 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = sqlite3_bind_text (_tmp4_, 1, _tmp6_, -1, _tmp7_);
+#line 214 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp8_;
+#line 215 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp9_ = res;
+#line 215 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 216 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = stmt;
+#line 216 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = operator;
+#line 216 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = search_operator_to_string (_tmp11_);
+#line 216 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = g_free;
+#line 216 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = sqlite3_bind_text (_tmp10_, 2, _tmp12_, -1, _tmp13_);
+#line 216 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp14_;
+#line 217 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = res;
+#line 217 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp15_ == SQLITE_OK, "res == Sqlite.OK");
+#line 219 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = stmt;
+#line 219 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_ = sqlite3_step (_tmp16_);
+#line 219 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp17_;
+#line 220 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = res;
+#line 220 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp18_ != SQLITE_DONE) {
+#line 1434 "SavedSearchDBTable.c"
+ gint _tmp19_ = 0;
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = res;
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable.add", _tmp19_, &_inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 1450 "SavedSearchDBTable.c"
+ } else {
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 221 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 1460 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 223 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp20_ = saved_search_row_new ();
+#line 223 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ row = _tmp20_;
+#line 224 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_ = row;
+#line 224 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp22_ = database_table_db;
+#line 224 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = sqlite3_last_insert_rowid (_tmp22_);
+#line 224 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_id_init (&_tmp21_->search_id, _tmp23_);
+#line 225 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_ = row;
+#line 225 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp25_ = name;
+#line 225 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp26_ = g_strdup (_tmp25_);
+#line 225 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_free0 (_tmp24_->name);
+#line 225 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_->name = _tmp26_;
+#line 226 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_ = row;
+#line 226 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp28_ = operator;
+#line 226 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_->operator = _tmp28_;
+#line 227 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp29_ = row;
+#line 227 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp30_ = conditions;
+#line 227 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp31_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_LIST, GeeList));
+#line 227 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_tmp29_->conditions);
+#line 227 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp29_->conditions = _tmp31_;
+#line 1502 "SavedSearchDBTable.c"
+ {
+ GeeArrayList* _sc_list = NULL;
+ GeeArrayList* _tmp32_ = NULL;
+ GeeArrayList* _tmp33_ = NULL;
+ gint _sc_size = 0;
+ GeeArrayList* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint _sc_index = 0;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp32_ = conditions;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp33_ = _g_object_ref0 (_tmp32_);
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_list = _tmp33_;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp34_ = _sc_list;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp35_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp36_ = _tmp35_;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_size = _tmp36_;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_index = -1;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 1530 "SavedSearchDBTable.c"
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ SearchCondition* sc = NULL;
+ GeeArrayList* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ gpointer _tmp42_ = NULL;
+ SavedSearchRow* _tmp43_ = NULL;
+ SavedSearchID _tmp44_ = {0};
+ SearchCondition* _tmp45_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp37_ = _sc_index;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_index = _tmp37_ + 1;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp38_ = _sc_index;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp39_ = _sc_size;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!(_tmp38_ < _tmp39_)) {
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 1553 "SavedSearchDBTable.c"
+ }
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp40_ = _sc_list;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp41_ = _sc_index;
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp42_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp41_);
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ sc = (SearchCondition*) _tmp42_;
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp43_ = row;
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp44_ = _tmp43_->search_id;
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp45_ = sc;
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_add_condition (self, &_tmp44_, _tmp45_, &_inner_error_);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (sc);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_sc_list);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _saved_search_row_unref0 (row);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 1587 "SavedSearchDBTable.c"
+ } else {
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (sc);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_sc_list);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _saved_search_row_unref0 (row);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 230 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 1603 "SavedSearchDBTable.c"
+ }
+ }
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (sc);
+#line 1608 "SavedSearchDBTable.c"
+ }
+#line 229 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_sc_list);
+#line 1612 "SavedSearchDBTable.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = row;
+#line 233 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 233 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 1620 "SavedSearchDBTable.c"
+}
+
+
+static gpointer _search_condition_ref0 (gpointer self) {
+#line 238 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return self ? search_condition_ref (self) : NULL;
+#line 1627 "SavedSearchDBTable.c"
+}
+
+
+static void saved_search_db_table_add_condition (SavedSearchDBTable* self, SavedSearchID* id, SearchCondition* condition, GError** error) {
+ SearchCondition* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DB_TABLE (self));
+#line 236 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (id != NULL);
+#line 236 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (condition));
+#line 237 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = condition;
+#line 237 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_SEARCH_CONDITION_TEXT)) {
+#line 1644 "SavedSearchDBTable.c"
+ SearchConditionText* text = NULL;
+ SearchCondition* _tmp1_ = NULL;
+ SearchConditionText* _tmp2_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* _tmp7_ = NULL;
+ SavedSearchID _tmp8_ = {0};
+ gint64 _tmp9_ = 0LL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ SearchConditionText* _tmp13_ = NULL;
+ SearchConditionSearchType _tmp14_ = 0;
+ SearchConditionSearchType _tmp15_ = 0;
+ gchar* _tmp16_ = NULL;
+ GDestroyNotify _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ sqlite3_stmt* _tmp20_ = NULL;
+ SearchConditionText* _tmp21_ = NULL;
+ SearchConditionTextContext _tmp22_ = 0;
+ SearchConditionTextContext _tmp23_ = 0;
+ gchar* _tmp24_ = NULL;
+ GDestroyNotify _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ sqlite3_stmt* _tmp28_ = NULL;
+ SearchConditionText* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ GDestroyNotify _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ sqlite3_stmt* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+#line 238 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp1_ = condition;
+#line 238 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_SEARCH_CONDITION_TEXT) ? ((SearchConditionText*) _tmp1_) : NULL);
+#line 238 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ text = _tmp2_;
+#line 240 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = database_table_db;
+#line 240 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp3_, "INSERT INTO SavedSearchDBTable_Text (search_id, search_type, context, " "text) VALUES (?, ?, ?, ?)", -1, &_tmp4_, NULL);
+#line 240 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 240 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp4_;
+#line 240 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp5_;
+#line 243 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = res;
+#line 243 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 245 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = stmt;
+#line 245 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = *id;
+#line 245 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp9_ = _tmp8_.id;
+#line 245 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp7_, 1, _tmp9_);
+#line 245 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp10_;
+#line 246 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = res;
+#line 246 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = stmt;
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = text;
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = _tmp14_;
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = search_condition_search_type_to_string (_tmp15_);
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_ = g_free;
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = sqlite3_bind_text (_tmp12_, 2, _tmp16_, -1, _tmp17_);
+#line 248 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp18_;
+#line 249 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = res;
+#line 249 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp19_ == SQLITE_OK, "res == Sqlite.OK");
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp20_ = stmt;
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_ = text;
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp22_ = search_condition_text_get_context (_tmp21_);
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = _tmp22_;
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_ = search_condition_text_context_to_string (_tmp23_);
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp25_ = g_free;
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp26_ = sqlite3_bind_text (_tmp20_, 3, _tmp24_, -1, _tmp25_);
+#line 251 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp26_;
+#line 252 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_ = res;
+#line 252 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp27_ == SQLITE_OK, "res == Sqlite.OK");
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp28_ = stmt;
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp29_ = text;
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp30_ = search_condition_text_get_text (_tmp29_);
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp31_ = _tmp30_;
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp32_ = g_strdup (_tmp31_);
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp33_ = g_free;
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp34_ = sqlite3_bind_text (_tmp28_, 4, _tmp32_, -1, _tmp33_);
+#line 254 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp34_;
+#line 255 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp35_ = res;
+#line 255 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp35_ == SQLITE_OK, "res == Sqlite.OK");
+#line 257 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp36_ = stmt;
+#line 257 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp37_ = sqlite3_step (_tmp36_);
+#line 257 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp37_;
+#line 258 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp38_ = res;
+#line 258 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp38_ != SQLITE_DONE) {
+#line 1790 "SavedSearchDBTable.c"
+ gint _tmp39_ = 0;
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp39_ = res;
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Text.add", _tmp39_, &_inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (text);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 1808 "SavedSearchDBTable.c"
+ } else {
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (text);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 259 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 1820 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 237 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 237 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (text);
+#line 1828 "SavedSearchDBTable.c"
+ } else {
+ SearchCondition* _tmp40_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp40_ = condition;
+#line 260 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp40_, TYPE_SEARCH_CONDITION_MEDIA_TYPE)) {
+#line 1835 "SavedSearchDBTable.c"
+ SearchConditionMediaType* media_type = NULL;
+ SearchCondition* _tmp41_ = NULL;
+ SearchConditionMediaType* _tmp42_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp43_ = NULL;
+ sqlite3_stmt* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ sqlite3_stmt* _tmp47_ = NULL;
+ SavedSearchID _tmp48_ = {0};
+ gint64 _tmp49_ = 0LL;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ sqlite3_stmt* _tmp52_ = NULL;
+ SearchConditionMediaType* _tmp53_ = NULL;
+ SearchConditionSearchType _tmp54_ = 0;
+ SearchConditionSearchType _tmp55_ = 0;
+ gchar* _tmp56_ = NULL;
+ GDestroyNotify _tmp57_ = NULL;
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ sqlite3_stmt* _tmp60_ = NULL;
+ SearchConditionMediaType* _tmp61_ = NULL;
+ SearchConditionMediaTypeContext _tmp62_ = 0;
+ SearchConditionMediaTypeContext _tmp63_ = 0;
+ gchar* _tmp64_ = NULL;
+ GDestroyNotify _tmp65_ = NULL;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ sqlite3_stmt* _tmp68_ = NULL;
+ SearchConditionMediaType* _tmp69_ = NULL;
+ SearchConditionMediaTypeMediaType _tmp70_ = 0;
+ SearchConditionMediaTypeMediaType _tmp71_ = 0;
+ gchar* _tmp72_ = NULL;
+ GDestroyNotify _tmp73_ = NULL;
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ sqlite3_stmt* _tmp76_ = NULL;
+ gint _tmp77_ = 0;
+ gint _tmp78_ = 0;
+#line 261 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp41_ = condition;
+#line 261 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp42_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp41_, TYPE_SEARCH_CONDITION_MEDIA_TYPE) ? ((SearchConditionMediaType*) _tmp41_) : NULL);
+#line 261 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ media_type = _tmp42_;
+#line 263 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp43_ = database_table_db;
+#line 263 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp45_ = sqlite3_prepare_v2 (_tmp43_, "INSERT INTO SavedSearchDBTable_MediaType (search_id, search_type, cont" \
+"ext, " "type) VALUES (?, ?, ?, ?)", -1, &_tmp44_, NULL);
+#line 263 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 263 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp44_;
+#line 263 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp45_;
+#line 266 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp46_ = res;
+#line 266 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp46_ == SQLITE_OK, "res == Sqlite.OK");
+#line 268 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp47_ = stmt;
+#line 268 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp48_ = *id;
+#line 268 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp49_ = _tmp48_.id;
+#line 268 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp50_ = sqlite3_bind_int64 (_tmp47_, 1, _tmp49_);
+#line 268 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp50_;
+#line 269 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp51_ = res;
+#line 269 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp51_ == SQLITE_OK, "res == Sqlite.OK");
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp52_ = stmt;
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp53_ = media_type;
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp54_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp55_ = _tmp54_;
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp56_ = search_condition_search_type_to_string (_tmp55_);
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp57_ = g_free;
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp58_ = sqlite3_bind_text (_tmp52_, 2, _tmp56_, -1, _tmp57_);
+#line 271 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp58_;
+#line 272 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp59_ = res;
+#line 272 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp59_ == SQLITE_OK, "res == Sqlite.OK");
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp60_ = stmt;
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp61_ = media_type;
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp62_ = search_condition_media_type_get_context (_tmp61_);
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp63_ = _tmp62_;
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp64_ = search_condition_media_type_context_to_string (_tmp63_);
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp65_ = g_free;
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp66_ = sqlite3_bind_text (_tmp60_, 3, _tmp64_, -1, _tmp65_);
+#line 274 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp66_;
+#line 275 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp67_ = res;
+#line 275 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp67_ == SQLITE_OK, "res == Sqlite.OK");
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp68_ = stmt;
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp69_ = media_type;
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp70_ = search_condition_media_type_get_media_type (_tmp69_);
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp71_ = _tmp70_;
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp72_ = search_condition_media_type_media_type_to_string (_tmp71_);
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp73_ = g_free;
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp74_ = sqlite3_bind_text (_tmp68_, 4, _tmp72_, -1, _tmp73_);
+#line 277 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp74_;
+#line 278 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp75_ = res;
+#line 278 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp75_ == SQLITE_OK, "res == Sqlite.OK");
+#line 280 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp76_ = stmt;
+#line 280 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp77_ = sqlite3_step (_tmp76_);
+#line 280 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp77_;
+#line 281 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp78_ = res;
+#line 281 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp78_ != SQLITE_DONE) {
+#line 1981 "SavedSearchDBTable.c"
+ gint _tmp79_ = 0;
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp79_ = res;
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_MediaType.add", _tmp79_, &_inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (media_type);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 1999 "SavedSearchDBTable.c"
+ } else {
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (media_type);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2011 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 260 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 260 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (media_type);
+#line 2019 "SavedSearchDBTable.c"
+ } else {
+ SearchCondition* _tmp80_ = NULL;
+#line 283 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp80_ = condition;
+#line 283 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp80_, TYPE_SEARCH_CONDITION_FLAGGED)) {
+#line 2026 "SavedSearchDBTable.c"
+ SearchConditionFlagged* flag_state = NULL;
+ SearchCondition* _tmp81_ = NULL;
+ SearchConditionFlagged* _tmp82_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp83_ = NULL;
+ sqlite3_stmt* _tmp84_ = NULL;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ sqlite3_stmt* _tmp87_ = NULL;
+ SavedSearchID _tmp88_ = {0};
+ gint64 _tmp89_ = 0LL;
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ sqlite3_stmt* _tmp92_ = NULL;
+ SearchConditionFlagged* _tmp93_ = NULL;
+ SearchConditionSearchType _tmp94_ = 0;
+ SearchConditionSearchType _tmp95_ = 0;
+ gchar* _tmp96_ = NULL;
+ GDestroyNotify _tmp97_ = NULL;
+ gint _tmp98_ = 0;
+ gint _tmp99_ = 0;
+ sqlite3_stmt* _tmp100_ = NULL;
+ SearchConditionFlagged* _tmp101_ = NULL;
+ SearchConditionFlaggedState _tmp102_ = 0;
+ SearchConditionFlaggedState _tmp103_ = 0;
+ gchar* _tmp104_ = NULL;
+ GDestroyNotify _tmp105_ = NULL;
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+ sqlite3_stmt* _tmp108_ = NULL;
+ gint _tmp109_ = 0;
+ gint _tmp110_ = 0;
+#line 284 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp81_ = condition;
+#line 284 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp82_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp81_, TYPE_SEARCH_CONDITION_FLAGGED) ? ((SearchConditionFlagged*) _tmp81_) : NULL);
+#line 284 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ flag_state = _tmp82_;
+#line 286 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp83_ = database_table_db;
+#line 286 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp85_ = sqlite3_prepare_v2 (_tmp83_, "INSERT INTO SavedSearchDBTable_Flagged (search_id, search_type, " "flag_state) VALUES (?, ?, ?)", -1, &_tmp84_, NULL);
+#line 286 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 286 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp84_;
+#line 286 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp85_;
+#line 289 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp86_ = res;
+#line 289 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp86_ == SQLITE_OK, "res == Sqlite.OK");
+#line 291 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp87_ = stmt;
+#line 291 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp88_ = *id;
+#line 291 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp89_ = _tmp88_.id;
+#line 291 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp90_ = sqlite3_bind_int64 (_tmp87_, 1, _tmp89_);
+#line 291 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp90_;
+#line 292 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp91_ = res;
+#line 292 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp91_ == SQLITE_OK, "res == Sqlite.OK");
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp92_ = stmt;
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp93_ = flag_state;
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp94_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp95_ = _tmp94_;
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp96_ = search_condition_search_type_to_string (_tmp95_);
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp97_ = g_free;
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp98_ = sqlite3_bind_text (_tmp92_, 2, _tmp96_, -1, _tmp97_);
+#line 294 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp98_;
+#line 295 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp99_ = res;
+#line 295 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp99_ == SQLITE_OK, "res == Sqlite.OK");
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp100_ = stmt;
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp101_ = flag_state;
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp102_ = search_condition_flagged_get_state (_tmp101_);
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp103_ = _tmp102_;
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp104_ = search_condition_flagged_state_to_string (_tmp103_);
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp105_ = g_free;
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp106_ = sqlite3_bind_text (_tmp100_, 3, _tmp104_, -1, _tmp105_);
+#line 297 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp106_;
+#line 298 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp107_ = res;
+#line 298 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp107_ == SQLITE_OK, "res == Sqlite.OK");
+#line 300 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp108_ = stmt;
+#line 300 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp109_ = sqlite3_step (_tmp108_);
+#line 300 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp109_;
+#line 301 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp110_ = res;
+#line 301 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp110_ != SQLITE_DONE) {
+#line 2144 "SavedSearchDBTable.c"
+ gint _tmp111_ = 0;
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp111_ = res;
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Flagged.add", _tmp111_, &_inner_error_);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (flag_state);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2162 "SavedSearchDBTable.c"
+ } else {
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (flag_state);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 302 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2174 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 283 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 283 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (flag_state);
+#line 2182 "SavedSearchDBTable.c"
+ } else {
+ SearchCondition* _tmp112_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp112_ = condition;
+#line 303 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp112_, TYPE_SEARCH_CONDITION_MODIFIED)) {
+#line 2189 "SavedSearchDBTable.c"
+ SearchConditionModified* modified_state = NULL;
+ SearchCondition* _tmp113_ = NULL;
+ SearchConditionModified* _tmp114_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp115_ = NULL;
+ sqlite3_stmt* _tmp116_ = NULL;
+ gint _tmp117_ = 0;
+ gint _tmp118_ = 0;
+ sqlite3_stmt* _tmp119_ = NULL;
+ SavedSearchID _tmp120_ = {0};
+ gint64 _tmp121_ = 0LL;
+ gint _tmp122_ = 0;
+ gint _tmp123_ = 0;
+ sqlite3_stmt* _tmp124_ = NULL;
+ SearchConditionModified* _tmp125_ = NULL;
+ SearchConditionSearchType _tmp126_ = 0;
+ SearchConditionSearchType _tmp127_ = 0;
+ gchar* _tmp128_ = NULL;
+ GDestroyNotify _tmp129_ = NULL;
+ gint _tmp130_ = 0;
+ gint _tmp131_ = 0;
+ sqlite3_stmt* _tmp132_ = NULL;
+ SearchConditionModified* _tmp133_ = NULL;
+ SearchConditionModifiedContext _tmp134_ = 0;
+ SearchConditionModifiedContext _tmp135_ = 0;
+ gchar* _tmp136_ = NULL;
+ GDestroyNotify _tmp137_ = NULL;
+ gint _tmp138_ = 0;
+ gint _tmp139_ = 0;
+ sqlite3_stmt* _tmp140_ = NULL;
+ SearchConditionModified* _tmp141_ = NULL;
+ SearchConditionModifiedState _tmp142_ = 0;
+ SearchConditionModifiedState _tmp143_ = 0;
+ gchar* _tmp144_ = NULL;
+ GDestroyNotify _tmp145_ = NULL;
+ gint _tmp146_ = 0;
+ gint _tmp147_ = 0;
+ sqlite3_stmt* _tmp148_ = NULL;
+ gint _tmp149_ = 0;
+ gint _tmp150_ = 0;
+#line 304 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp113_ = condition;
+#line 304 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp114_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp113_, TYPE_SEARCH_CONDITION_MODIFIED) ? ((SearchConditionModified*) _tmp113_) : NULL);
+#line 304 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ modified_state = _tmp114_;
+#line 306 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp115_ = database_table_db;
+#line 306 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp117_ = sqlite3_prepare_v2 (_tmp115_, "INSERT INTO SavedSearchDBTable_Modified (search_id, search_type, conte" \
+"xt, " "modified_state) VALUES (?, ?, ?, ?)", -1, &_tmp116_, NULL);
+#line 306 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 306 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp116_;
+#line 306 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp117_;
+#line 309 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp118_ = res;
+#line 309 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp118_ == SQLITE_OK, "res == Sqlite.OK");
+#line 311 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp119_ = stmt;
+#line 311 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp120_ = *id;
+#line 311 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp121_ = _tmp120_.id;
+#line 311 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp122_ = sqlite3_bind_int64 (_tmp119_, 1, _tmp121_);
+#line 311 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp122_;
+#line 312 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp123_ = res;
+#line 312 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp123_ == SQLITE_OK, "res == Sqlite.OK");
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp124_ = stmt;
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp125_ = modified_state;
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp126_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp125_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp127_ = _tmp126_;
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp128_ = search_condition_search_type_to_string (_tmp127_);
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp129_ = g_free;
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp130_ = sqlite3_bind_text (_tmp124_, 2, _tmp128_, -1, _tmp129_);
+#line 314 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp130_;
+#line 315 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp131_ = res;
+#line 315 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp131_ == SQLITE_OK, "res == Sqlite.OK");
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp132_ = stmt;
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp133_ = modified_state;
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp134_ = search_condition_modified_get_context (_tmp133_);
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp135_ = _tmp134_;
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp136_ = search_condition_modified_context_to_string (_tmp135_);
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp137_ = g_free;
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp138_ = sqlite3_bind_text (_tmp132_, 3, _tmp136_, -1, _tmp137_);
+#line 317 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp138_;
+#line 318 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp139_ = res;
+#line 318 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp139_ == SQLITE_OK, "res == Sqlite.OK");
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp140_ = stmt;
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp141_ = modified_state;
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp142_ = search_condition_modified_get_state (_tmp141_);
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp143_ = _tmp142_;
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp144_ = search_condition_modified_state_to_string (_tmp143_);
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp145_ = g_free;
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp146_ = sqlite3_bind_text (_tmp140_, 4, _tmp144_, -1, _tmp145_);
+#line 320 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp146_;
+#line 321 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp147_ = res;
+#line 321 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp147_ == SQLITE_OK, "res == Sqlite.OK");
+#line 323 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp148_ = stmt;
+#line 323 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp149_ = sqlite3_step (_tmp148_);
+#line 323 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp149_;
+#line 324 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp150_ = res;
+#line 324 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp150_ != SQLITE_DONE) {
+#line 2335 "SavedSearchDBTable.c"
+ gint _tmp151_ = 0;
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp151_ = res;
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Modified.add", _tmp151_, &_inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (modified_state);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2353 "SavedSearchDBTable.c"
+ } else {
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (modified_state);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2365 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 303 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 303 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (modified_state);
+#line 2373 "SavedSearchDBTable.c"
+ } else {
+ SearchCondition* _tmp152_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp152_ = condition;
+#line 326 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp152_, TYPE_SEARCH_CONDITION_RATING)) {
+#line 2380 "SavedSearchDBTable.c"
+ SearchConditionRating* rating = NULL;
+ SearchCondition* _tmp153_ = NULL;
+ SearchConditionRating* _tmp154_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp155_ = NULL;
+ sqlite3_stmt* _tmp156_ = NULL;
+ gint _tmp157_ = 0;
+ gint _tmp158_ = 0;
+ sqlite3_stmt* _tmp159_ = NULL;
+ SavedSearchID _tmp160_ = {0};
+ gint64 _tmp161_ = 0LL;
+ gint _tmp162_ = 0;
+ gint _tmp163_ = 0;
+ sqlite3_stmt* _tmp164_ = NULL;
+ SearchConditionRating* _tmp165_ = NULL;
+ SearchConditionSearchType _tmp166_ = 0;
+ SearchConditionSearchType _tmp167_ = 0;
+ gchar* _tmp168_ = NULL;
+ GDestroyNotify _tmp169_ = NULL;
+ gint _tmp170_ = 0;
+ gint _tmp171_ = 0;
+ sqlite3_stmt* _tmp172_ = NULL;
+ SearchConditionRating* _tmp173_ = NULL;
+ Rating _tmp174_ = 0;
+ Rating _tmp175_ = 0;
+ gint _tmp176_ = 0;
+ gint _tmp177_ = 0;
+ gint _tmp178_ = 0;
+ sqlite3_stmt* _tmp179_ = NULL;
+ SearchConditionRating* _tmp180_ = NULL;
+ SearchConditionRatingContext _tmp181_ = 0;
+ SearchConditionRatingContext _tmp182_ = 0;
+ gchar* _tmp183_ = NULL;
+ GDestroyNotify _tmp184_ = NULL;
+ gint _tmp185_ = 0;
+ gint _tmp186_ = 0;
+ sqlite3_stmt* _tmp187_ = NULL;
+ gint _tmp188_ = 0;
+ gint _tmp189_ = 0;
+#line 327 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp153_ = condition;
+#line 327 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp154_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp153_, TYPE_SEARCH_CONDITION_RATING) ? ((SearchConditionRating*) _tmp153_) : NULL);
+#line 327 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ rating = _tmp154_;
+#line 329 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp155_ = database_table_db;
+#line 329 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp157_ = sqlite3_prepare_v2 (_tmp155_, "INSERT INTO SavedSearchDBTable_Rating (search_id, search_type, rating," \
+" " "context) VALUES (?, ?, ?, ?)", -1, &_tmp156_, NULL);
+#line 329 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 329 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp156_;
+#line 329 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp157_;
+#line 332 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp158_ = res;
+#line 332 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp158_ == SQLITE_OK, "res == Sqlite.OK");
+#line 334 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp159_ = stmt;
+#line 334 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp160_ = *id;
+#line 334 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp161_ = _tmp160_.id;
+#line 334 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp162_ = sqlite3_bind_int64 (_tmp159_, 1, _tmp161_);
+#line 334 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp162_;
+#line 335 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp163_ = res;
+#line 335 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp163_ == SQLITE_OK, "res == Sqlite.OK");
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp164_ = stmt;
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp165_ = rating;
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp166_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp165_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp167_ = _tmp166_;
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp168_ = search_condition_search_type_to_string (_tmp167_);
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp169_ = g_free;
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp170_ = sqlite3_bind_text (_tmp164_, 2, _tmp168_, -1, _tmp169_);
+#line 337 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp170_;
+#line 338 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp171_ = res;
+#line 338 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp171_ == SQLITE_OK, "res == Sqlite.OK");
+#line 340 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp172_ = stmt;
+#line 340 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp173_ = rating;
+#line 340 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp174_ = search_condition_rating_get_rating (_tmp173_);
+#line 340 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp175_ = _tmp174_;
+#line 340 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp176_ = rating_serialize (_tmp175_);
+#line 340 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp177_ = sqlite3_bind_int (_tmp172_, 3, _tmp176_);
+#line 340 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp177_;
+#line 341 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp178_ = res;
+#line 341 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp178_ == SQLITE_OK, "res == Sqlite.OK");
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp179_ = stmt;
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp180_ = rating;
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp181_ = search_condition_rating_get_context (_tmp180_);
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp182_ = _tmp181_;
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp183_ = search_condition_rating_context_to_string (_tmp182_);
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp184_ = g_free;
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp185_ = sqlite3_bind_text (_tmp179_, 4, _tmp183_, -1, _tmp184_);
+#line 343 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp185_;
+#line 344 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp186_ = res;
+#line 344 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp186_ == SQLITE_OK, "res == Sqlite.OK");
+#line 346 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp187_ = stmt;
+#line 346 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp188_ = sqlite3_step (_tmp187_);
+#line 346 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp188_;
+#line 347 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp189_ = res;
+#line 347 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp189_ != SQLITE_DONE) {
+#line 2523 "SavedSearchDBTable.c"
+ gint _tmp190_ = 0;
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp190_ = res;
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Rating.add", _tmp190_, &_inner_error_);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (rating);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2541 "SavedSearchDBTable.c"
+ } else {
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (rating);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 348 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2553 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 326 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 326 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (rating);
+#line 2561 "SavedSearchDBTable.c"
+ } else {
+ SearchCondition* _tmp191_ = NULL;
+#line 349 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp191_ = condition;
+#line 349 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp191_, TYPE_SEARCH_CONDITION_DATE)) {
+#line 2568 "SavedSearchDBTable.c"
+ SearchConditionDate* date = NULL;
+ SearchCondition* _tmp192_ = NULL;
+ SearchConditionDate* _tmp193_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp194_ = NULL;
+ sqlite3_stmt* _tmp195_ = NULL;
+ gint _tmp196_ = 0;
+ gint _tmp197_ = 0;
+ sqlite3_stmt* _tmp198_ = NULL;
+ SavedSearchID _tmp199_ = {0};
+ gint64 _tmp200_ = 0LL;
+ gint _tmp201_ = 0;
+ gint _tmp202_ = 0;
+ sqlite3_stmt* _tmp203_ = NULL;
+ SearchConditionDate* _tmp204_ = NULL;
+ SearchConditionSearchType _tmp205_ = 0;
+ SearchConditionSearchType _tmp206_ = 0;
+ gchar* _tmp207_ = NULL;
+ GDestroyNotify _tmp208_ = NULL;
+ gint _tmp209_ = 0;
+ gint _tmp210_ = 0;
+ sqlite3_stmt* _tmp211_ = NULL;
+ SearchConditionDate* _tmp212_ = NULL;
+ SearchConditionDateContext _tmp213_ = 0;
+ SearchConditionDateContext _tmp214_ = 0;
+ gchar* _tmp215_ = NULL;
+ GDestroyNotify _tmp216_ = NULL;
+ gint _tmp217_ = 0;
+ gint _tmp218_ = 0;
+ sqlite3_stmt* _tmp219_ = NULL;
+ SearchConditionDate* _tmp220_ = NULL;
+ GDateTime* _tmp221_ = NULL;
+ GDateTime* _tmp222_ = NULL;
+ gint64 _tmp223_ = 0LL;
+ gint _tmp224_ = 0;
+ gint _tmp225_ = 0;
+ sqlite3_stmt* _tmp226_ = NULL;
+ SearchConditionDate* _tmp227_ = NULL;
+ GDateTime* _tmp228_ = NULL;
+ GDateTime* _tmp229_ = NULL;
+ gint64 _tmp230_ = 0LL;
+ gint _tmp231_ = 0;
+ gint _tmp232_ = 0;
+ sqlite3_stmt* _tmp233_ = NULL;
+ gint _tmp234_ = 0;
+ gint _tmp235_ = 0;
+#line 350 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp192_ = condition;
+#line 350 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp193_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp192_, TYPE_SEARCH_CONDITION_DATE) ? ((SearchConditionDate*) _tmp192_) : NULL);
+#line 350 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ date = _tmp193_;
+#line 352 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp194_ = database_table_db;
+#line 352 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp196_ = sqlite3_prepare_v2 (_tmp194_, "INSERT INTO SavedSearchDBTable_Date (search_id, search_type, " "context, date_one, date_two) VALUES (?, ?, ?, ?, ?)", -1, &_tmp195_, NULL);
+#line 352 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 352 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp195_;
+#line 352 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp196_;
+#line 355 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp197_ = res;
+#line 355 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp197_ == SQLITE_OK, "res == Sqlite.OK");
+#line 357 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp198_ = stmt;
+#line 357 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp199_ = *id;
+#line 357 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp200_ = _tmp199_.id;
+#line 357 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp201_ = sqlite3_bind_int64 (_tmp198_, 1, _tmp200_);
+#line 357 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp201_;
+#line 358 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp202_ = res;
+#line 358 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp202_ == SQLITE_OK, "res == Sqlite.OK");
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp203_ = stmt;
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp204_ = date;
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp205_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp204_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp206_ = _tmp205_;
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp207_ = search_condition_search_type_to_string (_tmp206_);
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp208_ = g_free;
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp209_ = sqlite3_bind_text (_tmp203_, 2, _tmp207_, -1, _tmp208_);
+#line 360 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp209_;
+#line 361 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp210_ = res;
+#line 361 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp210_ == SQLITE_OK, "res == Sqlite.OK");
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp211_ = stmt;
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp212_ = date;
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp213_ = search_condition_date_get_context (_tmp212_);
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp214_ = _tmp213_;
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp215_ = search_condition_date_context_to_string (_tmp214_);
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp216_ = g_free;
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp217_ = sqlite3_bind_text (_tmp211_, 3, _tmp215_, -1, _tmp216_);
+#line 363 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp217_;
+#line 364 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp218_ = res;
+#line 364 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp218_ == SQLITE_OK, "res == Sqlite.OK");
+#line 366 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp219_ = stmt;
+#line 366 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp220_ = date;
+#line 366 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp221_ = search_condition_date_get_date_one (_tmp220_);
+#line 366 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp222_ = _tmp221_;
+#line 366 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp223_ = g_date_time_to_unix (_tmp222_);
+#line 366 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp224_ = sqlite3_bind_int64 (_tmp219_, 4, _tmp223_);
+#line 366 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp224_;
+#line 367 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp225_ = res;
+#line 367 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp225_ == SQLITE_OK, "res == Sqlite.OK");
+#line 369 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp226_ = stmt;
+#line 369 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp227_ = date;
+#line 369 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp228_ = search_condition_date_get_date_two (_tmp227_);
+#line 369 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp229_ = _tmp228_;
+#line 369 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp230_ = g_date_time_to_unix (_tmp229_);
+#line 369 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp231_ = sqlite3_bind_int64 (_tmp226_, 5, _tmp230_);
+#line 369 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp231_;
+#line 370 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp232_ = res;
+#line 370 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp232_ == SQLITE_OK, "res == Sqlite.OK");
+#line 372 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp233_ = stmt;
+#line 372 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp234_ = sqlite3_step (_tmp233_);
+#line 372 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp234_;
+#line 373 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp235_ = res;
+#line 373 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp235_ != SQLITE_DONE) {
+#line 2736 "SavedSearchDBTable.c"
+ gint _tmp236_ = 0;
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp236_ = res;
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Date.add", _tmp236_, &_inner_error_);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (date);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2754 "SavedSearchDBTable.c"
+ } else {
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (date);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 374 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2766 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 349 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 349 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (date);
+#line 2774 "SavedSearchDBTable.c"
+ } else {
+#line 376 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_assert_not_reached ();
+#line 2778 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+static void saved_search_db_table_remove_conditions_for_search_id (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error) {
+ SavedSearchID _tmp0_ = {0};
+ SavedSearchID _tmp1_ = {0};
+ SavedSearchID _tmp2_ = {0};
+ SavedSearchID _tmp3_ = {0};
+ SavedSearchID _tmp4_ = {0};
+ SavedSearchID _tmp5_ = {0};
+ GError * _inner_error_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DB_TABLE (self));
+#line 381 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (search_id != NULL);
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = *search_id;
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_remove_conditions_for_table (self, "SavedSearchDBTable_Text", &_tmp0_, &_inner_error_);
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2812 "SavedSearchDBTable.c"
+ } else {
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 382 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2820 "SavedSearchDBTable.c"
+ }
+ }
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp1_ = *search_id;
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_remove_conditions_for_table (self, "SavedSearchDBTable_MediaType", &_tmp1_, &_inner_error_);
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2835 "SavedSearchDBTable.c"
+ } else {
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 383 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2843 "SavedSearchDBTable.c"
+ }
+ }
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = *search_id;
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_remove_conditions_for_table (self, "SavedSearchDBTable_Flagged", &_tmp2_, &_inner_error_);
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2858 "SavedSearchDBTable.c"
+ } else {
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 384 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2866 "SavedSearchDBTable.c"
+ }
+ }
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = *search_id;
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_remove_conditions_for_table (self, "SavedSearchDBTable_Modified", &_tmp3_, &_inner_error_);
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2881 "SavedSearchDBTable.c"
+ } else {
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 385 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2889 "SavedSearchDBTable.c"
+ }
+ }
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp4_ = *search_id;
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_remove_conditions_for_table (self, "SavedSearchDBTable_Rating", &_tmp4_, &_inner_error_);
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2904 "SavedSearchDBTable.c"
+ } else {
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 386 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2912 "SavedSearchDBTable.c"
+ }
+ }
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = *search_id;
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_remove_conditions_for_table (self, "SavedSearchDBTable_Date", &_tmp5_, &_inner_error_);
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2927 "SavedSearchDBTable.c"
+ } else {
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 387 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 2935 "SavedSearchDBTable.c"
+ }
+ }
+}
+
+
+static void saved_search_db_table_remove_conditions_for_table (SavedSearchDBTable* self, const gchar* table_name, SavedSearchID* search_id, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ SavedSearchID _tmp9_ = {0};
+ gint64 _tmp10_ = 0LL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ sqlite3_stmt* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ GError * _inner_error_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DB_TABLE (self));
+#line 390 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (table_name != NULL);
+#line 390 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (search_id != NULL);
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = database_table_db;
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp1_ = table_name;
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = g_strdup_printf ("DELETE FROM %s WHERE search_id=?", _tmp1_);
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = _tmp2_;
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp0_, _tmp3_, -1, &_tmp4_, NULL);
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp4_;
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = _tmp5_;
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_free0 (_tmp3_);
+#line 393 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp6_;
+#line 394 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = res;
+#line 394 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 396 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = stmt;
+#line 396 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp9_ = *search_id;
+#line 396 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = _tmp9_.id;
+#line 396 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = sqlite3_bind_int64 (_tmp8_, 1, _tmp10_);
+#line 396 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp11_;
+#line 397 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = res;
+#line 397 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp12_ == SQLITE_OK, "res == Sqlite.OK");
+#line 399 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = stmt;
+#line 399 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = sqlite3_step (_tmp13_);
+#line 399 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp14_;
+#line 400 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = res;
+#line 400 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp15_ != SQLITE_DONE) {
+#line 3015 "SavedSearchDBTable.c"
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = table_name;
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_ = g_strdup_printf ("%s.remove", _tmp16_);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = _tmp17_;
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = res;
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error (_tmp18_, _tmp19_, &_inner_error_);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_free0 (_tmp18_);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 3042 "SavedSearchDBTable.c"
+ } else {
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 401 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 3052 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 390 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 3058 "SavedSearchDBTable.c"
+}
+
+
+static GeeList* saved_search_db_table_get_conditions_for_id (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error) {
+ GeeList* result = NULL;
+ GeeList* list = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ sqlite3_stmt* _tmp5_ = NULL;
+ SavedSearchID _tmp6_ = {0};
+ gint64 _tmp7_ = 0LL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ sqlite3* _tmp27_ = NULL;
+ sqlite3_stmt* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ sqlite3_stmt* _tmp31_ = NULL;
+ SavedSearchID _tmp32_ = {0};
+ gint64 _tmp33_ = 0LL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ sqlite3* _tmp54_ = NULL;
+ sqlite3_stmt* _tmp55_ = NULL;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ sqlite3_stmt* _tmp58_ = NULL;
+ SavedSearchID _tmp59_ = {0};
+ gint64 _tmp60_ = 0LL;
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ sqlite3* _tmp78_ = NULL;
+ sqlite3_stmt* _tmp79_ = NULL;
+ gint _tmp80_ = 0;
+ gint _tmp81_ = 0;
+ sqlite3_stmt* _tmp82_ = NULL;
+ SavedSearchID _tmp83_ = {0};
+ gint64 _tmp84_ = 0LL;
+ gint _tmp85_ = 0;
+ gint _tmp86_ = 0;
+ sqlite3* _tmp105_ = NULL;
+ sqlite3_stmt* _tmp106_ = NULL;
+ gint _tmp107_ = 0;
+ gint _tmp108_ = 0;
+ sqlite3_stmt* _tmp109_ = NULL;
+ SavedSearchID _tmp110_ = {0};
+ gint64 _tmp111_ = 0LL;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ sqlite3* _tmp132_ = NULL;
+ sqlite3_stmt* _tmp133_ = NULL;
+ gint _tmp134_ = 0;
+ gint _tmp135_ = 0;
+ sqlite3_stmt* _tmp136_ = NULL;
+ SavedSearchID _tmp137_ = {0};
+ gint64 _tmp138_ = 0LL;
+ gint _tmp139_ = 0;
+ gint _tmp140_ = 0;
+ GError * _inner_error_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_DB_TABLE (self), NULL);
+#line 405 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (search_id != NULL, NULL);
+#line 407 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = gee_array_list_new (TYPE_SEARCH_CONDITION, (GBoxedCopyFunc) search_condition_ref, search_condition_unref, NULL, NULL, NULL);
+#line 407 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ list = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_LIST, GeeList);
+#line 412 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp1_ = database_table_db;
+#line 412 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = sqlite3_prepare_v2 (_tmp1_, "SELECT search_type, context, text FROM SavedSearchDBTable_Text " "WHERE search_id=?", -1, &_tmp2_, NULL);
+#line 412 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 412 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp2_;
+#line 412 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp3_;
+#line 415 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp4_ = res;
+#line 415 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp4_ == SQLITE_OK, "res == Sqlite.OK");
+#line 417 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = stmt;
+#line 417 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = *search_id;
+#line 417 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = _tmp6_.id;
+#line 417 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = sqlite3_bind_int64 (_tmp5_, 1, _tmp7_);
+#line 417 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp8_;
+#line 418 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp9_ = res;
+#line 418 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 3159 "SavedSearchDBTable.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 420 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = TRUE;
+#line 420 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 3166 "SavedSearchDBTable.c"
+ sqlite3_stmt* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ SearchConditionText* condition = NULL;
+ sqlite3_stmt* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ SearchConditionSearchType _tmp18_ = 0;
+ sqlite3_stmt* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ sqlite3_stmt* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ SearchConditionTextContext _tmp23_ = 0;
+ SearchConditionText* _tmp24_ = NULL;
+ GeeList* _tmp25_ = NULL;
+ SearchConditionText* _tmp26_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!_tmp10_) {
+#line 3184 "SavedSearchDBTable.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = FALSE;
+#line 421 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = stmt;
+#line 421 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = sqlite3_step (_tmp11_);
+#line 421 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp12_;
+#line 422 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = res;
+#line 422 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp13_ == SQLITE_DONE) {
+#line 423 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 3200 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp14_ = 0;
+#line 424 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = res;
+#line 424 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp14_ != SQLITE_ROW) {
+#line 3207 "SavedSearchDBTable.c"
+ gint _tmp15_ = 0;
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = res;
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Text.get_all_rows", _tmp15_, &_inner_error_);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3225 "SavedSearchDBTable.c"
+ } else {
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 425 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3237 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = stmt;
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_ = sqlite3_column_text (_tmp16_, 0);
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = search_condition_search_type_from_string (_tmp17_);
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = stmt;
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp20_ = sqlite3_column_text (_tmp19_, 2);
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_ = stmt;
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp22_ = sqlite3_column_text (_tmp21_, 1);
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = search_condition_text_context_from_string (_tmp22_);
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_ = search_condition_text_new (_tmp18_, _tmp20_, _tmp23_);
+#line 427 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ condition = _tmp24_;
+#line 432 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp25_ = list;
+#line 432 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp26_ = condition;
+#line 432 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 420 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (condition);
+#line 3270 "SavedSearchDBTable.c"
+ }
+ }
+#line 436 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_ = database_table_db;
+#line 436 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp29_ = sqlite3_prepare_v2 (_tmp27_, "SELECT search_type, context, type FROM SavedSearchDBTable_MediaType " "WHERE search_id=?", -1, &_tmp28_, NULL);
+#line 436 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 436 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp28_;
+#line 436 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp29_;
+#line 439 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp30_ = res;
+#line 439 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp30_ == SQLITE_OK, "res == Sqlite.OK");
+#line 441 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp31_ = stmt;
+#line 441 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp32_ = *search_id;
+#line 441 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp33_ = _tmp32_.id;
+#line 441 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp34_ = sqlite3_bind_int64 (_tmp31_, 1, _tmp33_);
+#line 441 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp34_;
+#line 442 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp35_ = res;
+#line 442 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp35_ == SQLITE_OK, "res == Sqlite.OK");
+#line 3301 "SavedSearchDBTable.c"
+ {
+ gboolean _tmp36_ = FALSE;
+#line 444 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp36_ = TRUE;
+#line 444 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 3308 "SavedSearchDBTable.c"
+ sqlite3_stmt* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ SearchConditionMediaType* condition = NULL;
+ sqlite3_stmt* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ SearchConditionSearchType _tmp44_ = 0;
+ sqlite3_stmt* _tmp45_ = NULL;
+ const gchar* _tmp46_ = NULL;
+ SearchConditionMediaTypeContext _tmp47_ = 0;
+ sqlite3_stmt* _tmp48_ = NULL;
+ const gchar* _tmp49_ = NULL;
+ SearchConditionMediaTypeMediaType _tmp50_ = 0;
+ SearchConditionMediaType* _tmp51_ = NULL;
+ GeeList* _tmp52_ = NULL;
+ SearchConditionMediaType* _tmp53_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!_tmp36_) {
+#line 3327 "SavedSearchDBTable.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp36_ = FALSE;
+#line 445 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp37_ = stmt;
+#line 445 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp38_ = sqlite3_step (_tmp37_);
+#line 445 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp38_;
+#line 446 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp39_ = res;
+#line 446 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp39_ == SQLITE_DONE) {
+#line 447 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 3343 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp40_ = 0;
+#line 448 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp40_ = res;
+#line 448 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp40_ != SQLITE_ROW) {
+#line 3350 "SavedSearchDBTable.c"
+ gint _tmp41_ = 0;
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp41_ = res;
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_MediaType.get_all_rows", _tmp41_, &_inner_error_);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3368 "SavedSearchDBTable.c"
+ } else {
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 449 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3380 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp42_ = stmt;
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp43_ = sqlite3_column_text (_tmp42_, 0);
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp44_ = search_condition_search_type_from_string (_tmp43_);
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp45_ = stmt;
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp46_ = sqlite3_column_text (_tmp45_, 1);
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp47_ = search_condition_media_type_context_from_string (_tmp46_);
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp48_ = stmt;
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp49_ = sqlite3_column_text (_tmp48_, 2);
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp50_ = search_condition_media_type_media_type_from_string (_tmp49_);
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp51_ = search_condition_media_type_new (_tmp44_, _tmp47_, _tmp50_);
+#line 451 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ condition = _tmp51_;
+#line 456 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp52_ = list;
+#line 456 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp53_ = condition;
+#line 456 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 444 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (condition);
+#line 3415 "SavedSearchDBTable.c"
+ }
+ }
+#line 460 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp54_ = database_table_db;
+#line 460 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp56_ = sqlite3_prepare_v2 (_tmp54_, "SELECT search_type, flag_state FROM SavedSearchDBTable_Flagged " "WHERE search_id=?", -1, &_tmp55_, NULL);
+#line 460 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 460 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp55_;
+#line 460 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp56_;
+#line 463 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp57_ = res;
+#line 463 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp57_ == SQLITE_OK, "res == Sqlite.OK");
+#line 465 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp58_ = stmt;
+#line 465 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp59_ = *search_id;
+#line 465 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp60_ = _tmp59_.id;
+#line 465 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp61_ = sqlite3_bind_int64 (_tmp58_, 1, _tmp60_);
+#line 465 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp61_;
+#line 466 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp62_ = res;
+#line 466 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp62_ == SQLITE_OK, "res == Sqlite.OK");
+#line 3446 "SavedSearchDBTable.c"
+ {
+ gboolean _tmp63_ = FALSE;
+#line 468 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp63_ = TRUE;
+#line 468 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 3453 "SavedSearchDBTable.c"
+ sqlite3_stmt* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ SearchConditionFlagged* condition = NULL;
+ sqlite3_stmt* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ SearchConditionSearchType _tmp71_ = 0;
+ sqlite3_stmt* _tmp72_ = NULL;
+ const gchar* _tmp73_ = NULL;
+ SearchConditionFlaggedState _tmp74_ = 0;
+ SearchConditionFlagged* _tmp75_ = NULL;
+ GeeList* _tmp76_ = NULL;
+ SearchConditionFlagged* _tmp77_ = NULL;
+#line 468 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!_tmp63_) {
+#line 3469 "SavedSearchDBTable.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp63_ = FALSE;
+#line 469 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp64_ = stmt;
+#line 469 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp65_ = sqlite3_step (_tmp64_);
+#line 469 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp65_;
+#line 470 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp66_ = res;
+#line 470 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp66_ == SQLITE_DONE) {
+#line 471 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 3485 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp67_ = 0;
+#line 472 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp67_ = res;
+#line 472 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp67_ != SQLITE_ROW) {
+#line 3492 "SavedSearchDBTable.c"
+ gint _tmp68_ = 0;
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp68_ = res;
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Flagged.get_all_rows", _tmp68_, &_inner_error_);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3510 "SavedSearchDBTable.c"
+ } else {
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 473 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3522 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp69_ = stmt;
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp70_ = sqlite3_column_text (_tmp69_, 0);
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp71_ = search_condition_search_type_from_string (_tmp70_);
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp72_ = stmt;
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp73_ = sqlite3_column_text (_tmp72_, 1);
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp74_ = search_condition_flagged_state_from_string (_tmp73_);
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp75_ = search_condition_flagged_new (_tmp71_, _tmp74_);
+#line 475 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ condition = _tmp75_;
+#line 479 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp76_ = list;
+#line 479 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp77_ = condition;
+#line 479 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp76_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp77_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 468 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (condition);
+#line 3551 "SavedSearchDBTable.c"
+ }
+ }
+#line 483 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp78_ = database_table_db;
+#line 483 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp80_ = sqlite3_prepare_v2 (_tmp78_, "SELECT search_type, context, modified_state FROM SavedSearchDBTable_Mo" \
+"dified " "WHERE search_id=?", -1, &_tmp79_, NULL);
+#line 483 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 483 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp79_;
+#line 483 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp80_;
+#line 486 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp81_ = res;
+#line 486 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp81_ == SQLITE_OK, "res == Sqlite.OK");
+#line 488 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp82_ = stmt;
+#line 488 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp83_ = *search_id;
+#line 488 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp84_ = _tmp83_.id;
+#line 488 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp85_ = sqlite3_bind_int64 (_tmp82_, 1, _tmp84_);
+#line 488 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp85_;
+#line 489 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp86_ = res;
+#line 489 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp86_ == SQLITE_OK, "res == Sqlite.OK");
+#line 3582 "SavedSearchDBTable.c"
+ {
+ gboolean _tmp87_ = FALSE;
+#line 491 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp87_ = TRUE;
+#line 491 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 3589 "SavedSearchDBTable.c"
+ sqlite3_stmt* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ SearchConditionModified* condition = NULL;
+ sqlite3_stmt* _tmp93_ = NULL;
+ const gchar* _tmp94_ = NULL;
+ SearchConditionSearchType _tmp95_ = 0;
+ sqlite3_stmt* _tmp96_ = NULL;
+ const gchar* _tmp97_ = NULL;
+ SearchConditionModifiedContext _tmp98_ = 0;
+ sqlite3_stmt* _tmp99_ = NULL;
+ const gchar* _tmp100_ = NULL;
+ SearchConditionModifiedState _tmp101_ = 0;
+ SearchConditionModified* _tmp102_ = NULL;
+ GeeList* _tmp103_ = NULL;
+ SearchConditionModified* _tmp104_ = NULL;
+#line 491 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!_tmp87_) {
+#line 3608 "SavedSearchDBTable.c"
+ }
+#line 491 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp87_ = FALSE;
+#line 492 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp88_ = stmt;
+#line 492 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp89_ = sqlite3_step (_tmp88_);
+#line 492 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp89_;
+#line 493 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp90_ = res;
+#line 493 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp90_ == SQLITE_DONE) {
+#line 494 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 3624 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp91_ = 0;
+#line 495 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp91_ = res;
+#line 495 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp91_ != SQLITE_ROW) {
+#line 3631 "SavedSearchDBTable.c"
+ gint _tmp92_ = 0;
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp92_ = res;
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Modified.get_all_rows", _tmp92_, &_inner_error_);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3649 "SavedSearchDBTable.c"
+ } else {
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 496 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3661 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp93_ = stmt;
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp94_ = sqlite3_column_text (_tmp93_, 0);
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp95_ = search_condition_search_type_from_string (_tmp94_);
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp96_ = stmt;
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp97_ = sqlite3_column_text (_tmp96_, 1);
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp98_ = search_condition_modified_context_from_string (_tmp97_);
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp99_ = stmt;
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp100_ = sqlite3_column_text (_tmp99_, 2);
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp101_ = search_condition_modified_state_from_string (_tmp100_);
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp102_ = search_condition_modified_new (_tmp95_, _tmp98_, _tmp101_);
+#line 498 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ condition = _tmp102_;
+#line 503 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp103_ = list;
+#line 503 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp104_ = condition;
+#line 503 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp103_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp104_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 491 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (condition);
+#line 3696 "SavedSearchDBTable.c"
+ }
+ }
+#line 507 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp105_ = database_table_db;
+#line 507 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp107_ = sqlite3_prepare_v2 (_tmp105_, "SELECT search_type, rating, context FROM SavedSearchDBTable_Rating " "WHERE search_id=?", -1, &_tmp106_, NULL);
+#line 507 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 507 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp106_;
+#line 507 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp107_;
+#line 510 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp108_ = res;
+#line 510 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp108_ == SQLITE_OK, "res == Sqlite.OK");
+#line 512 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp109_ = stmt;
+#line 512 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp110_ = *search_id;
+#line 512 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp111_ = _tmp110_.id;
+#line 512 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp112_ = sqlite3_bind_int64 (_tmp109_, 1, _tmp111_);
+#line 512 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp112_;
+#line 513 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp113_ = res;
+#line 513 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp113_ == SQLITE_OK, "res == Sqlite.OK");
+#line 3727 "SavedSearchDBTable.c"
+ {
+ gboolean _tmp114_ = FALSE;
+#line 515 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp114_ = TRUE;
+#line 515 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 3734 "SavedSearchDBTable.c"
+ sqlite3_stmt* _tmp115_ = NULL;
+ gint _tmp116_ = 0;
+ gint _tmp117_ = 0;
+ SearchConditionRating* condition = NULL;
+ sqlite3_stmt* _tmp120_ = NULL;
+ const gchar* _tmp121_ = NULL;
+ SearchConditionSearchType _tmp122_ = 0;
+ sqlite3_stmt* _tmp123_ = NULL;
+ gint _tmp124_ = 0;
+ Rating _tmp125_ = 0;
+ sqlite3_stmt* _tmp126_ = NULL;
+ const gchar* _tmp127_ = NULL;
+ SearchConditionRatingContext _tmp128_ = 0;
+ SearchConditionRating* _tmp129_ = NULL;
+ GeeList* _tmp130_ = NULL;
+ SearchConditionRating* _tmp131_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!_tmp114_) {
+#line 3753 "SavedSearchDBTable.c"
+ }
+#line 515 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp114_ = FALSE;
+#line 516 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp115_ = stmt;
+#line 516 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp116_ = sqlite3_step (_tmp115_);
+#line 516 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp116_;
+#line 517 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp117_ = res;
+#line 517 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp117_ == SQLITE_DONE) {
+#line 518 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 3769 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp118_ = 0;
+#line 519 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp118_ = res;
+#line 519 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp118_ != SQLITE_ROW) {
+#line 3776 "SavedSearchDBTable.c"
+ gint _tmp119_ = 0;
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp119_ = res;
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Rating.get_all_rows", _tmp119_, &_inner_error_);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3794 "SavedSearchDBTable.c"
+ } else {
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 520 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3806 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp120_ = stmt;
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp121_ = sqlite3_column_text (_tmp120_, 0);
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp122_ = search_condition_search_type_from_string (_tmp121_);
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp123_ = stmt;
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp124_ = sqlite3_column_int (_tmp123_, 1);
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp125_ = rating_unserialize (_tmp124_);
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp126_ = stmt;
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp127_ = sqlite3_column_text (_tmp126_, 2);
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp128_ = search_condition_rating_context_from_string (_tmp127_);
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp129_ = search_condition_rating_new (_tmp122_, _tmp125_, _tmp128_);
+#line 522 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ condition = _tmp129_;
+#line 527 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp130_ = list;
+#line 527 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp131_ = condition;
+#line 527 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp130_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp131_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 515 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (condition);
+#line 3841 "SavedSearchDBTable.c"
+ }
+ }
+#line 531 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp132_ = database_table_db;
+#line 531 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp134_ = sqlite3_prepare_v2 (_tmp132_, "SELECT search_type, context, date_one, date_two FROM SavedSearchDBTabl" \
+"e_Date " "WHERE search_id=?", -1, &_tmp133_, NULL);
+#line 531 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 531 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp133_;
+#line 531 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp134_;
+#line 534 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp135_ = res;
+#line 534 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp135_ == SQLITE_OK, "res == Sqlite.OK");
+#line 536 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp136_ = stmt;
+#line 536 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp137_ = *search_id;
+#line 536 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp138_ = _tmp137_.id;
+#line 536 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp139_ = sqlite3_bind_int64 (_tmp136_, 1, _tmp138_);
+#line 536 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp139_;
+#line 537 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp140_ = res;
+#line 537 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp140_ == SQLITE_OK, "res == Sqlite.OK");
+#line 3872 "SavedSearchDBTable.c"
+ {
+ gboolean _tmp141_ = FALSE;
+#line 539 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp141_ = TRUE;
+#line 539 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 3879 "SavedSearchDBTable.c"
+ sqlite3_stmt* _tmp142_ = NULL;
+ gint _tmp143_ = 0;
+ gint _tmp144_ = 0;
+ SearchConditionDate* condition = NULL;
+ sqlite3_stmt* _tmp147_ = NULL;
+ const gchar* _tmp148_ = NULL;
+ SearchConditionSearchType _tmp149_ = 0;
+ sqlite3_stmt* _tmp150_ = NULL;
+ const gchar* _tmp151_ = NULL;
+ SearchConditionDateContext _tmp152_ = 0;
+ sqlite3_stmt* _tmp153_ = NULL;
+ gint64 _tmp154_ = 0LL;
+ GDateTime* _tmp155_ = NULL;
+ GDateTime* _tmp156_ = NULL;
+ sqlite3_stmt* _tmp157_ = NULL;
+ gint64 _tmp158_ = 0LL;
+ GDateTime* _tmp159_ = NULL;
+ GDateTime* _tmp160_ = NULL;
+ SearchConditionDate* _tmp161_ = NULL;
+ SearchConditionDate* _tmp162_ = NULL;
+ GeeList* _tmp163_ = NULL;
+ SearchConditionDate* _tmp164_ = NULL;
+#line 539 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!_tmp141_) {
+#line 3904 "SavedSearchDBTable.c"
+ }
+#line 539 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp141_ = FALSE;
+#line 540 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp142_ = stmt;
+#line 540 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp143_ = sqlite3_step (_tmp142_);
+#line 540 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp143_;
+#line 541 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp144_ = res;
+#line 541 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp144_ == SQLITE_DONE) {
+#line 542 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 3920 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp145_ = 0;
+#line 543 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp145_ = res;
+#line 543 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp145_ != SQLITE_ROW) {
+#line 3927 "SavedSearchDBTable.c"
+ gint _tmp146_ = 0;
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp146_ = res;
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable_Date.get_all_rows", _tmp146_, &_inner_error_);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3945 "SavedSearchDBTable.c"
+ } else {
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (list);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 544 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 3957 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp147_ = stmt;
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp148_ = sqlite3_column_text (_tmp147_, 0);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp149_ = search_condition_search_type_from_string (_tmp148_);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp150_ = stmt;
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp151_ = sqlite3_column_text (_tmp150_, 1);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp152_ = search_condition_date_context_from_string (_tmp151_);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp153_ = stmt;
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp154_ = sqlite3_column_int64 (_tmp153_, 2);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp155_ = g_date_time_new_from_unix_local (_tmp154_);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp156_ = _tmp155_;
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp157_ = stmt;
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp158_ = sqlite3_column_int64 (_tmp157_, 3);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp159_ = g_date_time_new_from_unix_local (_tmp158_);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp160_ = _tmp159_;
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp161_ = search_condition_date_new (_tmp149_, _tmp152_, _tmp156_, _tmp160_);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp162_ = _tmp161_;
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_date_time_unref0 (_tmp160_);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_date_time_unref0 (_tmp156_);
+#line 546 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ condition = _tmp162_;
+#line 551 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp163_ = list;
+#line 551 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp164_ = condition;
+#line 551 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp163_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp164_, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 539 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (condition);
+#line 4008 "SavedSearchDBTable.c"
+ }
+ }
+#line 554 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = list;
+#line 554 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 554 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 4017 "SavedSearchDBTable.c"
+}
+
+
+void saved_search_db_table_create_from_row (SavedSearchDBTable* self, SavedSearchRow* row, SavedSearchID* result, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ SavedSearchRow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GDestroyNotify _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ sqlite3_stmt* _tmp11_ = NULL;
+ SavedSearchRow* _tmp12_ = NULL;
+ SearchOperator _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ GDestroyNotify _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ sqlite3_stmt* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ SavedSearchID search_id = {0};
+ sqlite3* _tmp22_ = NULL;
+ gint64 _tmp23_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 558 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DB_TABLE (self));
+#line 558 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_ROW (row));
+#line 560 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = database_table_db;
+#line 560 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO SavedSearchDBTable (name, operator) VALUES (?, ?)", -1, &_tmp1_, NULL);
+#line 560 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 560 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp1_;
+#line 560 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp2_;
+#line 562 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = res;
+#line 562 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 564 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp4_ = stmt;
+#line 564 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = row;
+#line 564 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = _tmp5_->name;
+#line 564 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 564 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = g_free;
+#line 564 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp9_ = sqlite3_bind_text (_tmp4_, 1, _tmp7_, -1, _tmp8_);
+#line 564 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp9_;
+#line 565 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = res;
+#line 565 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp10_ == SQLITE_OK, "res == Sqlite.OK");
+#line 566 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = stmt;
+#line 566 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = row;
+#line 566 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = _tmp12_->operator;
+#line 566 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = search_operator_to_string (_tmp13_);
+#line 566 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = g_free;
+#line 566 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = sqlite3_bind_text (_tmp11_, 2, _tmp14_, -1, _tmp15_);
+#line 566 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp16_;
+#line 567 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_ = res;
+#line 567 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp17_ == SQLITE_OK, "res == Sqlite.OK");
+#line 569 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = stmt;
+#line 569 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = sqlite3_step (_tmp18_);
+#line 569 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp19_;
+#line 570 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp20_ = res;
+#line 570 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp20_ != SQLITE_DONE) {
+#line 4113 "SavedSearchDBTable.c"
+ gint _tmp21_ = 0;
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_ = res;
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable.create_from_row", _tmp21_, &_inner_error_);
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4129 "SavedSearchDBTable.c"
+ } else {
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 571 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4139 "SavedSearchDBTable.c"
+ }
+ }
+ }
+#line 573 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp22_ = database_table_db;
+#line 573 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = sqlite3_last_insert_rowid (_tmp22_);
+#line 573 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_id_init (&search_id, _tmp23_);
+#line 4149 "SavedSearchDBTable.c"
+ {
+ GeeList* _sc_list = NULL;
+ SavedSearchRow* _tmp24_ = NULL;
+ GeeList* _tmp25_ = NULL;
+ GeeList* _tmp26_ = NULL;
+ gint _sc_size = 0;
+ GeeList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint _sc_index = 0;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_ = row;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp25_ = _tmp24_->conditions;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp26_ = _g_object_ref0 (_tmp25_);
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_list = _tmp26_;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_ = _sc_list;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp28_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp29_ = _tmp28_;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_size = _tmp29_;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_index = -1;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 4180 "SavedSearchDBTable.c"
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ SearchCondition* sc = NULL;
+ GeeList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gpointer _tmp35_ = NULL;
+ SavedSearchID _tmp36_ = {0};
+ SearchCondition* _tmp37_ = NULL;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp30_ = _sc_index;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sc_index = _tmp30_ + 1;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp31_ = _sc_index;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp32_ = _sc_size;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!(_tmp31_ < _tmp32_)) {
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 4202 "SavedSearchDBTable.c"
+ }
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp33_ = _sc_list;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp34_ = _sc_index;
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp35_ = gee_list_get (_tmp33_, _tmp34_);
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ sc = (SearchCondition*) _tmp35_;
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp36_ = search_id;
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp37_ = sc;
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_add_condition (self, &_tmp36_, _tmp37_, &_inner_error_);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (sc);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_sc_list);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4232 "SavedSearchDBTable.c"
+ } else {
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (sc);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_sc_list);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 576 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4246 "SavedSearchDBTable.c"
+ }
+ }
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _search_condition_unref0 (sc);
+#line 4251 "SavedSearchDBTable.c"
+ }
+#line 575 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_sc_list);
+#line 4255 "SavedSearchDBTable.c"
+ }
+#line 579 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ *result = search_id;
+#line 579 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 579 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4263 "SavedSearchDBTable.c"
+}
+
+
+void saved_search_db_table_remove (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error) {
+ SavedSearchID _tmp0_ = {0};
+ SavedSearchID _tmp1_ = {0};
+ gint64 _tmp2_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 582 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DB_TABLE (self));
+#line 582 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (search_id != NULL);
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = *search_id;
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_remove_conditions_for_search_id (self, &_tmp0_, &_inner_error_);
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4288 "SavedSearchDBTable.c"
+ } else {
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 583 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4296 "SavedSearchDBTable.c"
+ }
+ }
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp1_ = *search_id;
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = _tmp1_.id;
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_delete_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp2_, &_inner_error_);
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4313 "SavedSearchDBTable.c"
+ } else {
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 584 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4321 "SavedSearchDBTable.c"
+ }
+ }
+}
+
+
+SavedSearchRow* saved_search_db_table_get_row (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error) {
+ SavedSearchRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ SavedSearchID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ SavedSearchRow* row = NULL;
+ SavedSearchRow* _tmp14_ = NULL;
+ SavedSearchRow* _tmp15_ = NULL;
+ SavedSearchID _tmp16_ = {0};
+ SavedSearchRow* _tmp17_ = NULL;
+ sqlite3_stmt* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ SavedSearchRow* _tmp21_ = NULL;
+ sqlite3_stmt* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ SearchOperator _tmp24_ = 0;
+ GError * _inner_error_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_DB_TABLE (self), NULL);
+#line 587 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (search_id != NULL, NULL);
+#line 589 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = database_table_db;
+#line 589 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT name, operator FROM SavedSearchDBTable WHERE id=?", -1, &_tmp1_, NULL);
+#line 589 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 589 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp1_;
+#line 589 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp2_;
+#line 591 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = res;
+#line 591 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 593 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp4_ = stmt;
+#line 593 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = *search_id;
+#line 593 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 593 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 593 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp7_;
+#line 594 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = res;
+#line 594 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 596 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp9_ = stmt;
+#line 596 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 596 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp10_;
+#line 597 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = res;
+#line 597 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp11_ == SQLITE_DONE) {
+#line 598 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = NULL;
+#line 598 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 598 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 4404 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp12_ = 0;
+#line 599 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = res;
+#line 599 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp12_ != SQLITE_ROW) {
+#line 4411 "SavedSearchDBTable.c"
+ gint _tmp13_ = 0;
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = res;
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable.get_row", _tmp13_, &_inner_error_);
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 4427 "SavedSearchDBTable.c"
+ } else {
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 600 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 4437 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 602 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = saved_search_row_new ();
+#line 602 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ row = _tmp14_;
+#line 603 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = row;
+#line 603 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = *search_id;
+#line 603 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_->search_id = _tmp16_;
+#line 604 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_ = row;
+#line 604 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = stmt;
+#line 604 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = sqlite3_column_text (_tmp18_, 0);
+#line 604 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 604 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_free0 (_tmp17_->name);
+#line 604 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_->name = _tmp20_;
+#line 605 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_ = row;
+#line 605 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp22_ = stmt;
+#line 605 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = sqlite3_column_text (_tmp22_, 1);
+#line 605 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_ = search_operator_from_string (_tmp23_);
+#line 605 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_->operator = _tmp24_;
+#line 607 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = row;
+#line 607 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 607 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 4480 "SavedSearchDBTable.c"
+}
+
+
+GeeList* saved_search_db_table_get_all_rows (SavedSearchDBTable* self, GError** error) {
+ GeeList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeList* rows = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 610 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_DB_TABLE (self), NULL);
+#line 612 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = database_table_db;
+#line 612 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id, name, operator FROM SavedSearchDBTable", -1, &_tmp1_, NULL);
+#line 612 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 612 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ stmt = _tmp1_;
+#line 612 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp2_;
+#line 614 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp3_ = res;
+#line 614 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 616 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp4_ = gee_array_list_new (TYPE_SAVED_SEARCH_ROW, (GBoxedCopyFunc) saved_search_row_ref, saved_search_row_unref, NULL, NULL, NULL);
+#line 616 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ rows = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_LIST, GeeList);
+#line 4515 "SavedSearchDBTable.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 618 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = TRUE;
+#line 618 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ while (TRUE) {
+#line 4522 "SavedSearchDBTable.c"
+ sqlite3_stmt* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ SavedSearchRow* row = NULL;
+ SavedSearchRow* _tmp11_ = NULL;
+ SavedSearchRow* _tmp12_ = NULL;
+ sqlite3_stmt* _tmp13_ = NULL;
+ gint64 _tmp14_ = 0LL;
+ SavedSearchRow* _tmp15_ = NULL;
+ sqlite3_stmt* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ SavedSearchRow* _tmp19_ = NULL;
+ sqlite3_stmt* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ SearchOperator _tmp22_ = 0;
+ GeeList* _tmp23_ = NULL;
+ SavedSearchRow* _tmp24_ = NULL;
+ SavedSearchID _tmp25_ = {0};
+ GeeList* _tmp26_ = NULL;
+ SavedSearchRow* _tmp27_ = NULL;
+ GeeList* _tmp28_ = NULL;
+ GeeList* _tmp29_ = NULL;
+ SavedSearchRow* _tmp30_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (!_tmp5_) {
+#line 4549 "SavedSearchDBTable.c"
+ }
+#line 618 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp5_ = FALSE;
+#line 619 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp6_ = stmt;
+#line 619 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp7_ = sqlite3_step (_tmp6_);
+#line 619 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ res = _tmp7_;
+#line 620 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp8_ = res;
+#line 620 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp8_ == SQLITE_DONE) {
+#line 621 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ break;
+#line 4565 "SavedSearchDBTable.c"
+ } else {
+ gint _tmp9_ = 0;
+#line 622 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp9_ = res;
+#line 622 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_tmp9_ != SQLITE_ROW) {
+#line 4572 "SavedSearchDBTable.c"
+ gint _tmp10_ = 0;
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp10_ = res;
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_throw_error ("SavedSearchDBTable.get_all_rows", _tmp10_, &_inner_error_);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (rows);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 4590 "SavedSearchDBTable.c"
+ } else {
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (rows);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 623 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 4602 "SavedSearchDBTable.c"
+ }
+ }
+ }
+ }
+#line 625 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp11_ = saved_search_row_new ();
+#line 625 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ row = _tmp11_;
+#line 626 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp12_ = row;
+#line 626 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp13_ = stmt;
+#line 626 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp14_ = sqlite3_column_int64 (_tmp13_, 0);
+#line 626 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_id_init (&_tmp12_->search_id, _tmp14_);
+#line 627 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_ = row;
+#line 627 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp16_ = stmt;
+#line 627 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp17_ = sqlite3_column_text (_tmp16_, 1);
+#line 627 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 627 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_free0 (_tmp15_->name);
+#line 627 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp15_->name = _tmp18_;
+#line 628 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_ = row;
+#line 628 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp20_ = stmt;
+#line 628 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp21_ = sqlite3_column_text (_tmp20_, 2);
+#line 628 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp22_ = search_operator_from_string (_tmp21_);
+#line 628 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp19_->operator = _tmp22_;
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp24_ = row;
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp25_ = _tmp24_->search_id;
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp26_ = saved_search_db_table_get_conditions_for_id (self, &_tmp25_, &_inner_error_);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = _tmp26_;
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _saved_search_row_unref0 (row);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (rows);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 4663 "SavedSearchDBTable.c"
+ } else {
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _saved_search_row_unref0 (row);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (rows);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return NULL;
+#line 4677 "SavedSearchDBTable.c"
+ }
+ }
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_ = row;
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp28_ = _tmp23_;
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp23_ = NULL;
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_tmp27_->conditions);
+#line 629 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp27_->conditions = _tmp28_;
+#line 631 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp29_ = rows;
+#line 631 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp30_ = row;
+#line 631 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_COLLECTION, GeeCollection), _tmp30_);
+#line 618 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _g_object_unref0 (_tmp23_);
+#line 618 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _saved_search_row_unref0 (row);
+#line 4700 "SavedSearchDBTable.c"
+ }
+ }
+#line 634 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ result = rows;
+#line 634 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 634 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return result;
+#line 4709 "SavedSearchDBTable.c"
+}
+
+
+void saved_search_db_table_rename (SavedSearchDBTable* self, SavedSearchID* search_id, const gchar* new_name, GError** error) {
+ SavedSearchID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 637 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DB_TABLE (self));
+#line 637 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (search_id != NULL);
+#line 637 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_return_if_fail (new_name != NULL);
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp0_ = *search_id;
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ _tmp2_ = new_name;
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "name", _tmp2_, &_inner_error_);
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4740 "SavedSearchDBTable.c"
+ } else {
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ g_clear_error (&_inner_error_);
+#line 638 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ return;
+#line 4748 "SavedSearchDBTable.c"
+ }
+ }
+}
+
+
+static void saved_search_db_table_class_init (SavedSearchDBTableClass * klass) {
+#line 33 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ saved_search_db_table_parent_class = g_type_class_peek_parent (klass);
+#line 33 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = saved_search_db_table_finalize;
+#line 4759 "SavedSearchDBTable.c"
+}
+
+
+static void saved_search_db_table_instance_init (SavedSearchDBTable * self) {
+}
+
+
+static void saved_search_db_table_finalize (DatabaseTable* obj) {
+ SavedSearchDBTable * self;
+#line 33 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTable);
+#line 33 "/home/jens/Source/shotwell/src/db/SavedSearchDBTable.vala"
+ DATABASE_TABLE_CLASS (saved_search_db_table_parent_class)->finalize (obj);
+#line 4773 "SavedSearchDBTable.c"
+}
+
+
+GType saved_search_db_table_get_type (void) {
+ static volatile gsize saved_search_db_table_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_db_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDBTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_db_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDBTable), 0, (GInstanceInitFunc) saved_search_db_table_instance_init, NULL };
+ GType saved_search_db_table_type_id;
+ saved_search_db_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "SavedSearchDBTable", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_db_table_type_id__volatile, saved_search_db_table_type_id);
+ }
+ return saved_search_db_table_type_id__volatile;
+}
+
+
+
diff --git a/src/db/TagTable.c b/src/db/TagTable.c
new file mode 100644
index 0000000..1c58788
--- /dev/null
+++ b/src/db/TagTable.c
@@ -0,0 +1,2248 @@
+/* TagTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from TagTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <stdlib.h>
+#include <gee.h>
+#include <time.h>
+#include <sqlite3.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_TAG_ID (tag_id_get_type ())
+typedef struct _TagID TagID;
+
+#define TYPE_TAG_ROW (tag_row_get_type ())
+#define TAG_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_ROW, TagRow))
+#define TAG_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_ROW, TagRowClass))
+#define IS_TAG_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_ROW))
+#define IS_TAG_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_ROW))
+#define TAG_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_ROW, TagRowClass))
+
+typedef struct _TagRow TagRow;
+typedef struct _TagRowClass TagRowClass;
+typedef struct _TagRowPrivate TagRowPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecTagRow ParamSpecTagRow;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+
+#define TYPE_TAG_TABLE (tag_table_get_type ())
+#define TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_TABLE, TagTable))
+#define TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_TABLE, TagTableClass))
+#define IS_TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_TABLE))
+#define IS_TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_TABLE))
+#define TAG_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_TABLE, TagTableClass))
+
+typedef struct _TagTable TagTable;
+typedef struct _TagTableClass TagTableClass;
+typedef struct _TagTablePrivate TagTablePrivate;
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _tag_row_unref0(var) ((var == NULL) ? NULL : (var = (tag_row_unref (var), NULL)))
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _TagID {
+ gint64 id;
+};
+
+struct _TagRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TagRowPrivate * priv;
+ TagID tag_id;
+ gchar* name;
+ GeeSet* source_id_list;
+ time_t time_created;
+};
+
+struct _TagRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (TagRow *self);
+};
+
+struct _ParamSpecTagRow {
+ GParamSpec parent_instance;
+};
+
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _TagTable {
+ DatabaseTable parent_instance;
+ TagTablePrivate * priv;
+};
+
+struct _TagTableClass {
+ DatabaseTableClass parent_class;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _PhotoID {
+ gint64 id;
+};
+
+
+static gpointer tag_row_parent_class = NULL;
+static gpointer tag_table_parent_class = NULL;
+static TagTable* tag_table_instance;
+static TagTable* tag_table_instance = NULL;
+extern sqlite3* database_table_db;
+
+GType tag_id_get_type (void) G_GNUC_CONST;
+TagID* tag_id_dup (const TagID* self);
+void tag_id_free (TagID* self);
+#define TAG_ID_INVALID ((gint64) -1)
+void tag_id_init (TagID *self, gint64 id);
+gboolean tag_id_is_invalid (TagID *self);
+gboolean tag_id_is_valid (TagID *self);
+gpointer tag_row_ref (gpointer instance);
+void tag_row_unref (gpointer instance);
+GParamSpec* param_spec_tag_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_tag_row (GValue* value, gpointer v_object);
+void value_take_tag_row (GValue* value, gpointer v_object);
+gpointer value_get_tag_row (const GValue* value);
+GType tag_row_get_type (void) G_GNUC_CONST;
+enum {
+ TAG_ROW_DUMMY_PROPERTY
+};
+TagRow* tag_row_new (void);
+TagRow* tag_row_construct (GType object_type);
+static void tag_row_finalize (TagRow* obj);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType tag_table_get_type (void) G_GNUC_CONST;
+enum {
+ TAG_TABLE_DUMMY_PROPERTY
+};
+static TagTable* tag_table_new (void);
+static TagTable* tag_table_construct (GType object_type);
+DatabaseTable* database_table_construct (GType object_type);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+void database_table_fatal (const gchar* op, gint res);
+TagTable* tag_table_get_instance (void);
+void tag_table_upgrade_for_htags (void);
+GQuark database_error_quark (void);
+GeeList* tag_table_get_all_rows (TagTable* self, GError** error);
+#define TAG_PATH_SEPARATOR_STRING "/"
+void tag_table_rename (TagTable* self, TagID* tag_id, const gchar* new_name, GError** error);
+TagRow* tag_table_add (TagTable* self, const gchar* name, GError** error);
+gulong now_sec (void);
+void database_table_throw_error (const gchar* method, gint res, GError** error);
+void tag_table_create_from_row (TagTable* self, TagRow* row, TagID* result, GError** error);
+static gchar* tag_table_serialize_source_ids (TagTable* self, GeeCollection* source_ids);
+void tag_table_remove (TagTable* self, TagID* tag_id, GError** error);
+void database_table_delete_by_id (DatabaseTable* self, gint64 id, GError** error);
+gchar* tag_table_get_name (TagTable* self, TagID* tag_id, GError** error);
+gboolean database_table_select_by_id (DatabaseTable* self, gint64 id, const gchar* columns, sqlite3_stmt** stmt);
+TagRow* tag_table_get_row (TagTable* self, TagID* tag_id, GError** error);
+static GeeSet* tag_table_unserialize_source_ids (TagTable* self, const gchar* text_list);
+void database_table_update_text_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text, GError** error);
+void tag_table_set_tagged_sources (TagTable* self, TagID* tag_id, GeeCollection* source_ids, GError** error);
+gboolean is_string_empty (const gchar* s);
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+gchar* photo_id_upgrade_photo_id_to_source_id (PhotoID* photo_id);
+gint64 parse_int64 (const gchar* str, gint num_base);
+void photo_id_init (PhotoID *self, gint64 id);
+static void tag_table_finalize (DatabaseTable* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+void tag_id_init (TagID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 12 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ memset (self, 0, sizeof (TagID));
+#line 13 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = id;
+#line 13 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ (*self).id = _tmp0_;
+#line 213 "TagTable.c"
+}
+
+
+gboolean tag_id_is_invalid (TagID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 17 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = (*self).id;
+#line 17 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = _tmp0_ == TAG_ID_INVALID;
+#line 17 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 226 "TagTable.c"
+}
+
+
+gboolean tag_id_is_valid (TagID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 21 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = (*self).id;
+#line 21 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = _tmp0_ != TAG_ID_INVALID;
+#line 21 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 239 "TagTable.c"
+}
+
+
+TagID* tag_id_dup (const TagID* self) {
+ TagID* dup;
+#line 7 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ dup = g_new0 (TagID, 1);
+#line 7 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ memcpy (dup, self, sizeof (TagID));
+#line 7 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return dup;
+#line 251 "TagTable.c"
+}
+
+
+void tag_id_free (TagID* self) {
+#line 7 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_free (self);
+#line 258 "TagTable.c"
+}
+
+
+GType tag_id_get_type (void) {
+ static volatile gsize tag_id_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_id_type_id__volatile)) {
+ GType tag_id_type_id;
+ tag_id_type_id = g_boxed_type_register_static ("TagID", (GBoxedCopyFunc) tag_id_dup, (GBoxedFreeFunc) tag_id_free);
+ g_once_init_leave (&tag_id_type_id__volatile, tag_id_type_id);
+ }
+ return tag_id_type_id__volatile;
+}
+
+
+TagRow* tag_row_construct (GType object_type) {
+ TagRow* self = NULL;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ self = (TagRow*) g_type_create_instance (object_type);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return self;
+#line 279 "TagTable.c"
+}
+
+
+TagRow* tag_row_new (void) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return tag_row_construct (TYPE_TAG_ROW);
+#line 286 "TagTable.c"
+}
+
+
+static void value_tag_row_init (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 293 "TagTable.c"
+}
+
+
+static void value_tag_row_free_value (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_row_unref (value->data[0].v_pointer);
+#line 302 "TagTable.c"
+ }
+}
+
+
+static void value_tag_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ dest_value->data[0].v_pointer = tag_row_ref (src_value->data[0].v_pointer);
+#line 312 "TagTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 316 "TagTable.c"
+ }
+}
+
+
+static gpointer value_tag_row_peek_pointer (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return value->data[0].v_pointer;
+#line 324 "TagTable.c"
+}
+
+
+static gchar* value_tag_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 331 "TagTable.c"
+ TagRow* object;
+ object = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 338 "TagTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 342 "TagTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ value->data[0].v_pointer = tag_row_ref (object);
+#line 346 "TagTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 350 "TagTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 354 "TagTable.c"
+}
+
+
+static gchar* value_tag_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TagRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (!object_p) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 365 "TagTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ *object_p = NULL;
+#line 371 "TagTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 375 "TagTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ *object_p = tag_row_ref (value->data[0].v_pointer);
+#line 379 "TagTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 383 "TagTable.c"
+}
+
+
+GParamSpec* param_spec_tag_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTagRow* spec;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TAG_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 397 "TagTable.c"
+}
+
+
+gpointer value_get_tag_row (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TAG_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return value->data[0].v_pointer;
+#line 406 "TagTable.c"
+}
+
+
+void value_set_tag_row (GValue* value, gpointer v_object) {
+ TagRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TAG_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TAG_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_row_ref (value->data[0].v_pointer);
+#line 426 "TagTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 430 "TagTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_row_unref (old);
+#line 436 "TagTable.c"
+ }
+}
+
+
+void value_take_tag_row (GValue* value, gpointer v_object) {
+ TagRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TAG_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TAG_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 455 "TagTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 459 "TagTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_row_unref (old);
+#line 465 "TagTable.c"
+ }
+}
+
+
+static void tag_row_class_init (TagRowClass * klass) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_row_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ ((TagRowClass *) klass)->finalize = tag_row_finalize;
+#line 475 "TagTable.c"
+}
+
+
+static void tag_row_instance_init (TagRow * self) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ self->ref_count = 1;
+#line 482 "TagTable.c"
+}
+
+
+static void tag_row_finalize (TagRow* obj) {
+ TagRow * self;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TAG_ROW, TagRow);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_signal_handlers_destroy (self);
+#line 27 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (self->name);
+#line 28 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (self->source_id_list);
+#line 496 "TagTable.c"
+}
+
+
+GType tag_row_get_type (void) {
+ static volatile gsize tag_row_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_tag_row_init, value_tag_row_free_value, value_tag_row_copy_value, value_tag_row_peek_pointer, "p", value_tag_row_collect_value, "p", value_tag_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TagRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagRow), 0, (GInstanceInitFunc) tag_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType tag_row_type_id;
+ tag_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TagRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&tag_row_type_id__volatile, tag_row_type_id);
+ }
+ return tag_row_type_id__volatile;
+}
+
+
+gpointer tag_row_ref (gpointer instance) {
+ TagRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return instance;
+#line 521 "TagTable.c"
+}
+
+
+void tag_row_unref (gpointer instance) {
+ TagRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ TAG_ROW_GET_CLASS (self)->finalize (self);
+#line 25 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 534 "TagTable.c"
+ }
+}
+
+
+static TagTable* tag_table_construct (GType object_type) {
+ TagTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 35 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ self = (TagTable*) database_table_construct (object_type);
+#line 36 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "TagTable");
+#line 39 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = database_table_db;
+#line 39 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS " "TagTable " "(" "id INTEGER PRIMARY KEY, " "name TEXT UNIQUE NOT NULL, " "photo_id_list TEXT, " "time_created INTEGER" ")", -1, &_tmp1_, NULL);
+#line 39 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 39 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ stmt = _tmp1_;
+#line 39 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp2_;
+#line 47 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = res;
+#line 47 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 49 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = stmt;
+#line 49 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 49 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp5_;
+#line 50 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = res;
+#line 50 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 578 "TagTable.c"
+ gint _tmp7_ = 0;
+#line 51 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = res;
+#line 51 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_fatal ("create TagTable", _tmp7_);
+#line 584 "TagTable.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 35 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return self;
+#line 590 "TagTable.c"
+}
+
+
+static TagTable* tag_table_new (void) {
+#line 35 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return tag_table_construct (TYPE_TAG_TABLE);
+#line 597 "TagTable.c"
+}
+
+
+static gpointer _database_table_ref0 (gpointer self) {
+#line 58 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return self ? database_table_ref (self) : NULL;
+#line 604 "TagTable.c"
+}
+
+
+TagTable* tag_table_get_instance (void) {
+ TagTable* result = NULL;
+ TagTable* _tmp0_ = NULL;
+ TagTable* _tmp2_ = NULL;
+ TagTable* _tmp3_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = tag_table_instance;
+#line 55 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp0_ == NULL) {
+#line 617 "TagTable.c"
+ TagTable* _tmp1_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp1_ = tag_table_new ();
+#line 56 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _database_table_unref0 (tag_table_instance);
+#line 56 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_table_instance = _tmp1_;
+#line 625 "TagTable.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = tag_table_instance;
+#line 58 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 58 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = _tmp3_;
+#line 58 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 635 "TagTable.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 642 "TagTable.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 655 "TagTable.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 686 "TagTable.c"
+ goto __catch19_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 695 "TagTable.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 711 "TagTable.c"
+ goto __catch19_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 722 "TagTable.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 736 "TagTable.c"
+ }
+ goto __finally19;
+ __catch19_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 750 "TagTable.c"
+ }
+ __finally19:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 761 "TagTable.c"
+ }
+}
+
+
+void tag_table_upgrade_for_htags (void) {
+ TagTable* table = NULL;
+ TagTable* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = tag_table_get_instance ();
+#line 62 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ table = _tmp0_;
+#line 774 "TagTable.c"
+ {
+ GeeList* rows = NULL;
+ TagTable* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp1_ = table;
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = tag_table_get_all_rows (_tmp1_, &_inner_error_);
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ rows = _tmp2_;
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 789 "TagTable.c"
+ goto __catch18_database_error;
+ }
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _database_table_unref0 (table);
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 65 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 800 "TagTable.c"
+ }
+ {
+ GeeList* _row_list = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _row_size = 0;
+ GeeList* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _row_index = 0;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = rows;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _row_list = _tmp4_;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = _row_list;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = _tmp6_;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _row_size = _tmp7_;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _row_index = -1;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ while (TRUE) {
+#line 829 "TagTable.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ TagRow* row = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gpointer _tmp13_ = NULL;
+ TagRow* _tmp14_ = NULL;
+ TagRow* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ TagTable* _tmp18_ = NULL;
+ TagRow* _tmp19_ = NULL;
+ TagID _tmp20_ = {0};
+ TagRow* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = _row_index;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _row_index = _tmp8_ + 1;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = _row_index;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = _row_size;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (!(_tmp9_ < _tmp10_)) {
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ break;
+#line 858 "TagTable.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = _row_list;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = _row_index;
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = gee_list_get (_tmp11_, _tmp12_);
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ row = (TagRow*) _tmp13_;
+#line 68 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = row;
+#line 68 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_ = row;
+#line 68 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = _tmp15_->name;
+#line 68 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_ = string_replace (_tmp16_, TAG_PATH_SEPARATOR_STRING, "-");
+#line 68 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (_tmp14_->name);
+#line 68 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_->name = _tmp17_;
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp18_ = table;
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp19_ = row;
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp20_ = _tmp19_->tag_id;
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp21_ = row;
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp22_ = _tmp21_->name;
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_table_rename (_tmp18_, &_tmp20_, _tmp22_, &_inner_error_);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tag_row_unref0 (row);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (_row_list);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (rows);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 902 "TagTable.c"
+ goto __catch18_database_error;
+ }
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tag_row_unref0 (row);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (_row_list);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (rows);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _database_table_unref0 (table);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 69 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 919 "TagTable.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tag_row_unref0 (row);
+#line 923 "TagTable.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (_row_list);
+#line 927 "TagTable.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (rows);
+#line 931 "TagTable.c"
+ }
+ goto __finally18;
+ __catch18_database_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ e = _inner_error_;
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _inner_error_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp23_ = e->message;
+#line 72 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_error ("TagTable.vala:72: TagTable: can't upgrade tag names for hierarchical t" \
+"ag support: %s", _tmp23_);
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_error_free0 (e);
+#line 948 "TagTable.c"
+ }
+ __finally18:
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _database_table_unref0 (table);
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 961 "TagTable.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _database_table_unref0 (table);
+#line 965 "TagTable.c"
+}
+
+
+TagRow* tag_table_add (TagTable* self, const gchar* name, GError** error) {
+ TagRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ time_t time_created = 0;
+ gulong _tmp4_ = 0UL;
+ sqlite3_stmt* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GDestroyNotify _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ sqlite3_stmt* _tmp11_ = NULL;
+ time_t _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ sqlite3_stmt* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ TagRow* row = NULL;
+ TagRow* _tmp19_ = NULL;
+ TagRow* _tmp20_ = NULL;
+ sqlite3* _tmp21_ = NULL;
+ gint64 _tmp22_ = 0LL;
+ TagRow* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ TagRow* _tmp26_ = NULL;
+ TagRow* _tmp27_ = NULL;
+ time_t _tmp28_ = 0;
+ GError * _inner_error_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (IS_TAG_TABLE (self), NULL);
+#line 76 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 78 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = database_table_db;
+#line 78 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO TagTable (name, time_created) VALUES (?, ?)", -1, &_tmp1_, NULL);
+#line 78 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 78 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ stmt = _tmp1_;
+#line 78 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp2_;
+#line 80 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = res;
+#line 80 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 82 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = now_sec ();
+#line 82 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ time_created = (time_t) _tmp4_;
+#line 84 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = stmt;
+#line 84 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = name;
+#line 84 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 84 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = g_free;
+#line 84 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = sqlite3_bind_text (_tmp5_, 1, _tmp7_, -1, _tmp8_);
+#line 84 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp9_;
+#line 85 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = res;
+#line 85 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp10_ == SQLITE_OK, "res == Sqlite.OK");
+#line 86 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = stmt;
+#line 86 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = time_created;
+#line 86 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = sqlite3_bind_int64 (_tmp11_, 2, (gint64) _tmp12_);
+#line 86 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp13_;
+#line 87 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = res;
+#line 87 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp14_ == SQLITE_OK, "res == Sqlite.OK");
+#line 89 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_ = stmt;
+#line 89 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = sqlite3_step (_tmp15_);
+#line 89 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp16_;
+#line 90 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_ = res;
+#line 90 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp17_ != SQLITE_DONE) {
+#line 1064 "TagTable.c"
+ gint _tmp18_ = 0;
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp18_ = res;
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_throw_error ("TagTable.add", _tmp18_, &_inner_error_);
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 1080 "TagTable.c"
+ } else {
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 91 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 1090 "TagTable.c"
+ }
+ }
+ }
+#line 93 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp19_ = tag_row_new ();
+#line 93 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ row = _tmp19_;
+#line 94 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp20_ = row;
+#line 94 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp21_ = database_table_db;
+#line 94 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp22_ = sqlite3_last_insert_rowid (_tmp21_);
+#line 94 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_id_init (&_tmp20_->tag_id, _tmp22_);
+#line 95 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp23_ = row;
+#line 95 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp24_ = name;
+#line 95 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp25_ = g_strdup (_tmp24_);
+#line 95 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (_tmp23_->name);
+#line 95 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp23_->name = _tmp25_;
+#line 96 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp26_ = row;
+#line 96 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (_tmp26_->source_id_list);
+#line 96 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp26_->source_id_list = NULL;
+#line 97 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp27_ = row;
+#line 97 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp28_ = time_created;
+#line 97 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp27_->time_created = _tmp28_;
+#line 99 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = row;
+#line 99 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 99 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 1134 "TagTable.c"
+}
+
+
+void tag_table_create_from_row (TagTable* self, TagRow* row, TagID* result, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ TagRow* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GDestroyNotify _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ sqlite3_stmt* _tmp11_ = NULL;
+ TagRow* _tmp12_ = NULL;
+ GeeSet* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GDestroyNotify _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ sqlite3_stmt* _tmp18_ = NULL;
+ TagRow* _tmp19_ = NULL;
+ time_t _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ sqlite3_stmt* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ sqlite3* _tmp27_ = NULL;
+ gint64 _tmp28_ = 0LL;
+ TagID _tmp29_ = {0};
+ GError * _inner_error_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (IS_TAG_TABLE (self));
+#line 103 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (IS_TAG_ROW (row));
+#line 105 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = database_table_db;
+#line 105 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO TagTable (name, photo_id_list, time_created) VALUES (?, ?," \
+" ?)", -1, &_tmp1_, NULL);
+#line 105 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 105 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ stmt = _tmp1_;
+#line 105 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp2_;
+#line 107 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = res;
+#line 107 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 109 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = stmt;
+#line 109 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = row;
+#line 109 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = _tmp5_->name;
+#line 109 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 109 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = g_free;
+#line 109 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = sqlite3_bind_text (_tmp4_, 1, _tmp7_, -1, _tmp8_);
+#line 109 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp9_;
+#line 110 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = res;
+#line 110 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp10_ == SQLITE_OK, "res == Sqlite.OK");
+#line 111 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = stmt;
+#line 111 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = row;
+#line 111 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = _tmp12_->source_id_list;
+#line 111 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = tag_table_serialize_source_ids (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 111 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_ = g_free;
+#line 111 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = sqlite3_bind_text (_tmp11_, 2, _tmp14_, -1, _tmp15_);
+#line 111 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp16_;
+#line 112 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_ = res;
+#line 112 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp17_ == SQLITE_OK, "res == Sqlite.OK");
+#line 113 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp18_ = stmt;
+#line 113 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp19_ = row;
+#line 113 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp20_ = _tmp19_->time_created;
+#line 113 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp21_ = sqlite3_bind_int64 (_tmp18_, 3, (gint64) _tmp20_);
+#line 113 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp21_;
+#line 114 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp22_ = res;
+#line 114 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp22_ == SQLITE_OK, "res == Sqlite.OK");
+#line 116 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp23_ = stmt;
+#line 116 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp24_ = sqlite3_step (_tmp23_);
+#line 116 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp24_;
+#line 117 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp25_ = res;
+#line 117 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp25_ != SQLITE_DONE) {
+#line 1249 "TagTable.c"
+ gint _tmp26_ = 0;
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp26_ = res;
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_throw_error ("TagTable.create_from_row", _tmp26_, &_inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1265 "TagTable.c"
+ } else {
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 118 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1275 "TagTable.c"
+ }
+ }
+ }
+#line 120 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp27_ = database_table_db;
+#line 120 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp28_ = sqlite3_last_insert_rowid (_tmp27_);
+#line 120 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_id_init (&_tmp29_, _tmp28_);
+#line 120 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ *result = _tmp29_;
+#line 120 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 120 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1291 "TagTable.c"
+}
+
+
+void tag_table_remove (TagTable* self, TagID* tag_id, GError** error) {
+ TagID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (IS_TAG_TABLE (self));
+#line 123 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (tag_id != NULL);
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = *tag_id;
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_delete_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, &_inner_error_);
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1317 "TagTable.c"
+ } else {
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 124 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1325 "TagTable.c"
+ }
+ }
+}
+
+
+gchar* tag_table_get_name (TagTable* self, TagID* tag_id, GError** error) {
+ gchar* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ TagID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ sqlite3_stmt* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (IS_TAG_TABLE (self), NULL);
+#line 127 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (tag_id != NULL, NULL);
+#line 129 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = *tag_id;
+#line 129 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 129 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = database_table_select_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "name", &_tmp2_);
+#line 129 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 129 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ stmt = _tmp2_;
+#line 129 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (!_tmp3_) {
+#line 130 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = NULL;
+#line 130 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 130 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 1363 "TagTable.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = stmt;
+#line 132 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = sqlite3_column_text (_tmp4_, 0);
+#line 132 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 132 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = _tmp6_;
+#line 132 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 132 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 1377 "TagTable.c"
+}
+
+
+TagRow* tag_table_get_row (TagTable* self, TagID* tag_id, GError** error) {
+ TagRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ TagID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ TagRow* row = NULL;
+ TagRow* _tmp14_ = NULL;
+ TagRow* _tmp15_ = NULL;
+ TagID _tmp16_ = {0};
+ TagRow* _tmp17_ = NULL;
+ sqlite3_stmt* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ TagRow* _tmp21_ = NULL;
+ sqlite3_stmt* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ GeeSet* _tmp24_ = NULL;
+ TagRow* _tmp25_ = NULL;
+ sqlite3_stmt* _tmp26_ = NULL;
+ gint64 _tmp27_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (IS_TAG_TABLE (self), NULL);
+#line 135 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (tag_id != NULL, NULL);
+#line 137 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = database_table_db;
+#line 137 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT name, photo_id_list, time_created FROM TagTable WHERE id=?", -1, &_tmp1_, NULL);
+#line 137 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 137 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ stmt = _tmp1_;
+#line 137 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp2_;
+#line 139 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = res;
+#line 139 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 141 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = stmt;
+#line 141 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = *tag_id;
+#line 141 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 141 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 141 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp7_;
+#line 142 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = res;
+#line 142 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 144 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = stmt;
+#line 144 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 144 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp10_;
+#line 145 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = res;
+#line 145 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp11_ == SQLITE_DONE) {
+#line 146 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = NULL;
+#line 146 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 146 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 1461 "TagTable.c"
+ } else {
+ gint _tmp12_ = 0;
+#line 147 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = res;
+#line 147 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp12_ != SQLITE_ROW) {
+#line 1468 "TagTable.c"
+ gint _tmp13_ = 0;
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = res;
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_throw_error ("TagTable.get_row", _tmp13_, &_inner_error_);
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 1484 "TagTable.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 148 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 1494 "TagTable.c"
+ }
+ }
+ }
+ }
+#line 150 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = tag_row_new ();
+#line 150 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ row = _tmp14_;
+#line 151 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_ = row;
+#line 151 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = *tag_id;
+#line 151 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_->tag_id = _tmp16_;
+#line 152 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_ = row;
+#line 152 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp18_ = stmt;
+#line 152 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp19_ = sqlite3_column_text (_tmp18_, 0);
+#line 152 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 152 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (_tmp17_->name);
+#line 152 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_->name = _tmp20_;
+#line 153 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp21_ = row;
+#line 153 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp22_ = stmt;
+#line 153 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp23_ = sqlite3_column_text (_tmp22_, 1);
+#line 153 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp24_ = tag_table_unserialize_source_ids (self, _tmp23_);
+#line 153 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (_tmp21_->source_id_list);
+#line 153 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp21_->source_id_list = _tmp24_;
+#line 154 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp25_ = row;
+#line 154 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp26_ = stmt;
+#line 154 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp27_ = sqlite3_column_int64 (_tmp26_, 2);
+#line 154 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp25_->time_created = (time_t) _tmp27_;
+#line 156 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = row;
+#line 156 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 156 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 1547 "TagTable.c"
+}
+
+
+GeeList* tag_table_get_all_rows (TagTable* self, GError** error) {
+ GeeList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeList* rows = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (IS_TAG_TABLE (self), NULL);
+#line 161 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = database_table_db;
+#line 161 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id, name, photo_id_list, time_created FROM TagTable", -1, &_tmp1_, NULL);
+#line 161 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 161 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ stmt = _tmp1_;
+#line 161 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp2_;
+#line 163 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = res;
+#line 163 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 165 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = gee_array_list_new (TYPE_TAG_ROW, (GBoxedCopyFunc) tag_row_ref, tag_row_unref, NULL, NULL, NULL);
+#line 165 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ rows = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_LIST, GeeList);
+#line 1582 "TagTable.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = TRUE;
+#line 167 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ while (TRUE) {
+#line 1589 "TagTable.c"
+ sqlite3_stmt* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ TagRow* row = NULL;
+ TagRow* _tmp11_ = NULL;
+ TagRow* _tmp12_ = NULL;
+ sqlite3_stmt* _tmp13_ = NULL;
+ gint64 _tmp14_ = 0LL;
+ TagRow* _tmp15_ = NULL;
+ sqlite3_stmt* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ TagRow* _tmp19_ = NULL;
+ sqlite3_stmt* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GeeSet* _tmp22_ = NULL;
+ TagRow* _tmp23_ = NULL;
+ sqlite3_stmt* _tmp24_ = NULL;
+ gint64 _tmp25_ = 0LL;
+ GeeList* _tmp26_ = NULL;
+ TagRow* _tmp27_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (!_tmp5_) {
+#line 1613 "TagTable.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = FALSE;
+#line 168 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = stmt;
+#line 168 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = sqlite3_step (_tmp6_);
+#line 168 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp7_;
+#line 169 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = res;
+#line 169 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp8_ == SQLITE_DONE) {
+#line 170 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ break;
+#line 1629 "TagTable.c"
+ } else {
+ gint _tmp9_ = 0;
+#line 171 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = res;
+#line 171 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp9_ != SQLITE_ROW) {
+#line 1636 "TagTable.c"
+ gint _tmp10_ = 0;
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = res;
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_throw_error ("TagTable.get_all_rows", _tmp10_, &_inner_error_);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (rows);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 1654 "TagTable.c"
+ } else {
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (rows);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 172 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return NULL;
+#line 1666 "TagTable.c"
+ }
+ }
+ }
+ }
+#line 175 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = tag_row_new ();
+#line 175 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ row = _tmp11_;
+#line 176 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = row;
+#line 176 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = stmt;
+#line 176 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = sqlite3_column_int64 (_tmp13_, 0);
+#line 176 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_id_init (&_tmp12_->tag_id, _tmp14_);
+#line 177 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_ = row;
+#line 177 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = stmt;
+#line 177 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_ = sqlite3_column_text (_tmp16_, 1);
+#line 177 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 177 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (_tmp15_->name);
+#line 177 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_->name = _tmp18_;
+#line 178 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp19_ = row;
+#line 178 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp20_ = stmt;
+#line 178 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp21_ = sqlite3_column_text (_tmp20_, 2);
+#line 178 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp22_ = tag_table_unserialize_source_ids (self, _tmp21_);
+#line 178 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (_tmp19_->source_id_list);
+#line 178 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp19_->source_id_list = _tmp22_;
+#line 179 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp23_ = row;
+#line 179 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp24_ = stmt;
+#line 179 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp25_ = sqlite3_column_int64 (_tmp24_, 3);
+#line 179 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp23_->time_created = (time_t) _tmp25_;
+#line 181 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp26_ = rows;
+#line 181 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp27_ = row;
+#line 181 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_COLLECTION, GeeCollection), _tmp27_);
+#line 167 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tag_row_unref0 (row);
+#line 1723 "TagTable.c"
+ }
+ }
+#line 184 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = rows;
+#line 184 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 184 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 1732 "TagTable.c"
+}
+
+
+void tag_table_rename (TagTable* self, TagID* tag_id, const gchar* new_name, GError** error) {
+ TagID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (IS_TAG_TABLE (self));
+#line 187 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (tag_id != NULL);
+#line 187 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (new_name != NULL);
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = *tag_id;
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = new_name;
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "name", _tmp2_, &_inner_error_);
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1763 "TagTable.c"
+ } else {
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 188 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1771 "TagTable.c"
+ }
+ }
+}
+
+
+void tag_table_set_tagged_sources (TagTable* self, TagID* tag_id, GeeCollection* source_ids, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GDestroyNotify _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ TagID _tmp11_ = {0};
+ gint64 _tmp12_ = 0LL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ sqlite3_stmt* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ GError * _inner_error_ = NULL;
+#line 191 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (IS_TAG_TABLE (self));
+#line 191 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (tag_id != NULL);
+#line 191 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (source_ids));
+#line 193 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = database_table_db;
+#line 193 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE TagTable SET photo_id_list=? WHERE id=?", -1, &_tmp1_, NULL);
+#line 193 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 193 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ stmt = _tmp1_;
+#line 193 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp2_;
+#line 194 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = res;
+#line 194 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 196 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = stmt;
+#line 196 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = source_ids;
+#line 196 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = tag_table_serialize_source_ids (self, _tmp5_);
+#line 196 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = g_free;
+#line 196 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = sqlite3_bind_text (_tmp4_, 1, _tmp6_, -1, _tmp7_);
+#line 196 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp8_;
+#line 197 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = res;
+#line 197 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 198 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = stmt;
+#line 198 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = *tag_id;
+#line 198 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = _tmp11_.id;
+#line 198 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = sqlite3_bind_int64 (_tmp10_, 2, _tmp12_);
+#line 198 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp13_;
+#line 199 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = res;
+#line 199 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _vala_assert (_tmp14_ == SQLITE_OK, "res == Sqlite.OK");
+#line 201 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_ = stmt;
+#line 201 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = sqlite3_step (_tmp15_);
+#line 201 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ res = _tmp16_;
+#line 202 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_ = res;
+#line 202 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp17_ != SQLITE_DONE) {
+#line 1859 "TagTable.c"
+ gint _tmp18_ = 0;
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp18_ = res;
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ database_table_throw_error ("TagTable.set_tagged_photos", _tmp18_, &_inner_error_);
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1875 "TagTable.c"
+ } else {
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_clear_error (&_inner_error_);
+#line 203 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return;
+#line 1885 "TagTable.c"
+ }
+ }
+ }
+#line 191 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 1891 "TagTable.c"
+}
+
+
+static gchar* tag_table_serialize_source_ids (TagTable* self, GeeCollection* source_ids) {
+ gchar* result = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GString* _result_ = NULL;
+ GString* _tmp1_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GString* _tmp12_ = NULL;
+ gssize _tmp13_ = 0L;
+ gchar* _tmp16_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (IS_TAG_TABLE (self), NULL);
+#line 206 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail ((source_ids == NULL) || GEE_IS_COLLECTION (source_ids), NULL);
+#line 207 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = source_ids;
+#line 207 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp0_ == NULL) {
+#line 208 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = NULL;
+#line 208 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 1916 "TagTable.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp1_ = g_string_new ("");
+#line 210 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _result_ = _tmp1_;
+#line 1922 "TagTable.c"
+ {
+ GeeIterator* _source_id_it = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = source_ids;
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _source_id_it = _tmp3_;
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ while (TRUE) {
+#line 1935 "TagTable.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gchar* source_id = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ GString* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GString* _tmp10_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = _source_id_it;
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (!_tmp5_) {
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ break;
+#line 1952 "TagTable.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = _source_id_it;
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ source_id = (gchar*) _tmp7_;
+#line 213 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = _result_;
+#line 213 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = source_id;
+#line 213 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_string_append (_tmp8_, _tmp9_);
+#line 214 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = _result_;
+#line 214 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_string_append (_tmp10_, ",");
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (source_id);
+#line 1972 "TagTable.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_object_unref0 (_source_id_it);
+#line 1976 "TagTable.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = _result_;
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = _tmp12_->len;
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp13_ != ((gssize) 0)) {
+#line 1984 "TagTable.c"
+ GString* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = _result_;
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp15_ = _tmp14_->str;
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = _tmp15_;
+#line 1993 "TagTable.c"
+ } else {
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = NULL;
+#line 1997 "TagTable.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = g_strdup (_tmp11_);
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = _tmp16_;
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_string_free0 (_result_);
+#line 217 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 2007 "TagTable.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2025 "TagTable.c"
+}
+
+
+static GeeSet* tag_table_unserialize_source_ids (TagTable* self, const gchar* text_list) {
+ GeeSet* result = NULL;
+ GeeSet* _result_ = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar** split = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gint split_length1 = 0;
+ gint _split_size_ = 0;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 220 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ g_return_val_if_fail (IS_TAG_TABLE (self), NULL);
+#line 221 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 221 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _result_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_SET, GeeSet);
+#line 223 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp1_ = text_list;
+#line 223 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp1_ == NULL) {
+#line 224 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = _result_;
+#line 224 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 2056 "TagTable.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp2_ = text_list;
+#line 226 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp4_ = _tmp3_ = g_strsplit (_tmp2_, ",", 0);
+#line 226 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ split = _tmp4_;
+#line 226 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ split_length1 = _vala_array_length (_tmp3_);
+#line 226 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _split_size_ = split_length1;
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5_ = split;
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp5__length1 = split_length1;
+#line 2072 "TagTable.c"
+ {
+ gchar** token_collection = NULL;
+ gint token_collection_length1 = 0;
+ gint _token_collection_size_ = 0;
+ gint token_it = 0;
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ token_collection = _tmp5_;
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ token_collection_length1 = _tmp5__length1;
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ for (token_it = 0; token_it < _tmp5__length1; token_it = token_it + 1) {
+#line 2084 "TagTable.c"
+ gchar* _tmp6_ = NULL;
+ gchar* token = NULL;
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp6_ = g_strdup (token_collection[token_it]);
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ token = _tmp6_;
+#line 2091 "TagTable.c"
+ {
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ const gchar* _tmp9_ = NULL;
+ gchar _tmp10_ = '\0';
+ gboolean _tmp11_ = FALSE;
+#line 228 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp7_ = token;
+#line 228 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp8_ = is_string_empty (_tmp7_);
+#line 228 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp8_) {
+#line 229 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (token);
+#line 229 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ continue;
+#line 2108 "TagTable.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp9_ = token;
+#line 236 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp10_ = string_get (_tmp9_, (glong) 0);
+#line 236 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp11_ = g_ascii_isdigit (_tmp10_);
+#line 236 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp11_) {
+#line 2118 "TagTable.c"
+ GeeSet* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gint64 _tmp14_ = 0LL;
+ PhotoID _tmp15_ = {0};
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp12_ = _result_;
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp13_ = token;
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp14_ = parse_int64 (_tmp13_, 10);
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ photo_id_init (&_tmp15_, _tmp14_);
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp16_ = photo_id_upgrade_photo_id_to_source_id (&_tmp15_);
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp17_ = _tmp16_;
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp17_);
+#line 238 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (_tmp17_);
+#line 2141 "TagTable.c"
+ } else {
+ const gchar* _tmp18_ = NULL;
+ gchar _tmp19_ = '\0';
+ gboolean _tmp20_ = FALSE;
+#line 239 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp18_ = token;
+#line 239 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp19_ = string_get (_tmp18_, (glong) 0);
+#line 239 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp20_ = g_ascii_isalpha (_tmp19_);
+#line 239 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ if (_tmp20_) {
+#line 2154 "TagTable.c"
+ GeeSet* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 241 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp21_ = _result_;
+#line 241 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _tmp22_ = token;
+#line 241 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_COLLECTION, GeeCollection), _tmp22_);
+#line 2163 "TagTable.c"
+ }
+ }
+#line 227 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ _g_free0 (token);
+#line 2168 "TagTable.c"
+ }
+ }
+ }
+#line 245 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ result = _result_;
+#line 245 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ split = (_vala_array_free (split, split_length1, (GDestroyNotify) g_free), NULL);
+#line 245 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ return result;
+#line 2178 "TagTable.c"
+}
+
+
+static void tag_table_class_init (TagTableClass * klass) {
+#line 32 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ tag_table_parent_class = g_type_class_peek_parent (klass);
+#line 32 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = tag_table_finalize;
+#line 2187 "TagTable.c"
+}
+
+
+static void tag_table_instance_init (TagTable * self) {
+}
+
+
+static void tag_table_finalize (DatabaseTable* obj) {
+ TagTable * self;
+#line 32 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TAG_TABLE, TagTable);
+#line 32 "/home/jens/Source/shotwell/src/db/TagTable.vala"
+ DATABASE_TABLE_CLASS (tag_table_parent_class)->finalize (obj);
+#line 2201 "TagTable.c"
+}
+
+
+GType tag_table_get_type (void) {
+ static volatile gsize tag_table_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagTable), 0, (GInstanceInitFunc) tag_table_instance_init, NULL };
+ GType tag_table_type_id;
+ tag_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "TagTable", &g_define_type_info, 0);
+ g_once_init_leave (&tag_table_type_id__volatile, tag_table_type_id);
+ }
+ return tag_table_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/db/TombstoneTable.c b/src/db/TombstoneTable.c
new file mode 100644
index 0000000..542e568
--- /dev/null
+++ b/src/db/TombstoneTable.c
@@ -0,0 +1,1295 @@
+/* TombstoneTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from TombstoneTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sqlite3.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_TOMBSTONE_ID (tombstone_id_get_type ())
+typedef struct _TombstoneID TombstoneID;
+
+#define TYPE_TOMBSTONE_ROW (tombstone_row_get_type ())
+#define TOMBSTONE_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE_ROW, TombstoneRow))
+#define TOMBSTONE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE_ROW, TombstoneRowClass))
+#define IS_TOMBSTONE_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE_ROW))
+#define IS_TOMBSTONE_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE_ROW))
+#define TOMBSTONE_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE_ROW, TombstoneRowClass))
+
+typedef struct _TombstoneRow TombstoneRow;
+typedef struct _TombstoneRowClass TombstoneRowClass;
+typedef struct _TombstoneRowPrivate TombstoneRowPrivate;
+
+#define TOMBSTONE_TYPE_REASON (tombstone_reason_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecTombstoneRow ParamSpecTombstoneRow;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+
+#define TYPE_TOMBSTONE_TABLE (tombstone_table_get_type ())
+#define TOMBSTONE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOMBSTONE_TABLE, TombstoneTable))
+#define TOMBSTONE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOMBSTONE_TABLE, TombstoneTableClass))
+#define IS_TOMBSTONE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOMBSTONE_TABLE))
+#define IS_TOMBSTONE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOMBSTONE_TABLE))
+#define TOMBSTONE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOMBSTONE_TABLE, TombstoneTableClass))
+
+typedef struct _TombstoneTable TombstoneTable;
+typedef struct _TombstoneTableClass TombstoneTableClass;
+typedef struct _TombstoneTablePrivate TombstoneTablePrivate;
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _tombstone_row_unref0(var) ((var == NULL) ? NULL : (var = (tombstone_row_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _TombstoneID {
+ gint64 id;
+};
+
+typedef enum {
+ TOMBSTONE_REASON_REMOVED_BY_USER = 0,
+ TOMBSTONE_REASON_AUTO_DETECTED_DUPLICATE = 1
+} TombstoneReason;
+
+struct _TombstoneRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TombstoneRowPrivate * priv;
+ TombstoneID id;
+ gchar* filepath;
+ gint64 filesize;
+ gchar* md5;
+ time_t time_created;
+ TombstoneReason reason;
+};
+
+struct _TombstoneRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (TombstoneRow *self);
+};
+
+struct _ParamSpecTombstoneRow {
+ GParamSpec parent_instance;
+};
+
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _TombstoneTable {
+ DatabaseTable parent_instance;
+ TombstoneTablePrivate * priv;
+};
+
+struct _TombstoneTableClass {
+ DatabaseTableClass parent_class;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+
+static gpointer tombstone_row_parent_class = NULL;
+static gpointer tombstone_table_parent_class = NULL;
+static TombstoneTable* tombstone_table_instance;
+static TombstoneTable* tombstone_table_instance = NULL;
+extern sqlite3* database_table_db;
+
+GType tombstone_id_get_type (void) G_GNUC_CONST;
+TombstoneID* tombstone_id_dup (const TombstoneID* self);
+void tombstone_id_free (TombstoneID* self);
+#define TOMBSTONE_ID_INVALID ((gint64) -1)
+void tombstone_id_init (TombstoneID *self, gint64 id);
+gboolean tombstone_id_is_invalid (TombstoneID *self);
+gboolean tombstone_id_is_valid (TombstoneID *self);
+gpointer tombstone_row_ref (gpointer instance);
+void tombstone_row_unref (gpointer instance);
+GParamSpec* param_spec_tombstone_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_tombstone_row (GValue* value, gpointer v_object);
+void value_take_tombstone_row (GValue* value, gpointer v_object);
+gpointer value_get_tombstone_row (const GValue* value);
+GType tombstone_row_get_type (void) G_GNUC_CONST;
+GType tombstone_reason_get_type (void) G_GNUC_CONST;
+enum {
+ TOMBSTONE_ROW_DUMMY_PROPERTY
+};
+TombstoneRow* tombstone_row_new (void);
+TombstoneRow* tombstone_row_construct (GType object_type);
+static void tombstone_row_finalize (TombstoneRow* obj);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType tombstone_table_get_type (void) G_GNUC_CONST;
+enum {
+ TOMBSTONE_TABLE_DUMMY_PROPERTY
+};
+static TombstoneTable* tombstone_table_new (void);
+static TombstoneTable* tombstone_table_construct (GType object_type);
+DatabaseTable* database_table_construct (GType object_type);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+void database_table_fatal (const gchar* op, gint res);
+TombstoneTable* tombstone_table_get_instance (void);
+GQuark database_error_quark (void);
+TombstoneRow* tombstone_table_add (TombstoneTable* self, const gchar* filepath, gint64 filesize, const gchar* md5, TombstoneReason reason, GError** error);
+gulong now_sec (void);
+gint tombstone_reason_serialize (TombstoneReason self);
+void database_table_throw_error (const gchar* method, gint res, GError** error);
+TombstoneRow** tombstone_table_fetch_all (TombstoneTable* self, int* result_length1, GError** error);
+gint database_table_get_row_count (DatabaseTable* self);
+TombstoneReason tombstone_reason_unserialize (gint value);
+void tombstone_table_update_file (TombstoneTable* self, TombstoneID* tombstone_id, const gchar* filepath, GError** error);
+void database_table_update_text_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text, GError** error);
+void tombstone_table_remove (TombstoneTable* self, TombstoneID* tombstone_id, GError** error);
+void database_table_delete_by_id (DatabaseTable* self, gint64 id, GError** error);
+static void tombstone_table_finalize (DatabaseTable* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+void tombstone_id_init (TombstoneID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 12 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ memset (self, 0, sizeof (TombstoneID));
+#line 13 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = id;
+#line 13 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ (*self).id = _tmp0_;
+#line 197 "TombstoneTable.c"
+}
+
+
+gboolean tombstone_id_is_invalid (TombstoneID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 17 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = (*self).id;
+#line 17 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ result = _tmp0_ == TOMBSTONE_ID_INVALID;
+#line 17 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return result;
+#line 210 "TombstoneTable.c"
+}
+
+
+gboolean tombstone_id_is_valid (TombstoneID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 21 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = (*self).id;
+#line 21 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ result = _tmp0_ != TOMBSTONE_ID_INVALID;
+#line 21 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return result;
+#line 223 "TombstoneTable.c"
+}
+
+
+TombstoneID* tombstone_id_dup (const TombstoneID* self) {
+ TombstoneID* dup;
+#line 7 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ dup = g_new0 (TombstoneID, 1);
+#line 7 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ memcpy (dup, self, sizeof (TombstoneID));
+#line 7 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return dup;
+#line 235 "TombstoneTable.c"
+}
+
+
+void tombstone_id_free (TombstoneID* self) {
+#line 7 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_free (self);
+#line 242 "TombstoneTable.c"
+}
+
+
+GType tombstone_id_get_type (void) {
+ static volatile gsize tombstone_id_type_id__volatile = 0;
+ if (g_once_init_enter (&tombstone_id_type_id__volatile)) {
+ GType tombstone_id_type_id;
+ tombstone_id_type_id = g_boxed_type_register_static ("TombstoneID", (GBoxedCopyFunc) tombstone_id_dup, (GBoxedFreeFunc) tombstone_id_free);
+ g_once_init_leave (&tombstone_id_type_id__volatile, tombstone_id_type_id);
+ }
+ return tombstone_id_type_id__volatile;
+}
+
+
+TombstoneRow* tombstone_row_construct (GType object_type) {
+ TombstoneRow* self = NULL;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ self = (TombstoneRow*) g_type_create_instance (object_type);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return self;
+#line 263 "TombstoneTable.c"
+}
+
+
+TombstoneRow* tombstone_row_new (void) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return tombstone_row_construct (TYPE_TOMBSTONE_ROW);
+#line 270 "TombstoneTable.c"
+}
+
+
+static void value_tombstone_row_init (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 277 "TombstoneTable.c"
+}
+
+
+static void value_tombstone_row_free_value (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_row_unref (value->data[0].v_pointer);
+#line 286 "TombstoneTable.c"
+ }
+}
+
+
+static void value_tombstone_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ dest_value->data[0].v_pointer = tombstone_row_ref (src_value->data[0].v_pointer);
+#line 296 "TombstoneTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 300 "TombstoneTable.c"
+ }
+}
+
+
+static gpointer value_tombstone_row_peek_pointer (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return value->data[0].v_pointer;
+#line 308 "TombstoneTable.c"
+}
+
+
+static gchar* value_tombstone_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 315 "TombstoneTable.c"
+ TombstoneRow* object;
+ object = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 322 "TombstoneTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 326 "TombstoneTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ value->data[0].v_pointer = tombstone_row_ref (object);
+#line 330 "TombstoneTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 334 "TombstoneTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return NULL;
+#line 338 "TombstoneTable.c"
+}
+
+
+static gchar* value_tombstone_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TombstoneRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (!object_p) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 349 "TombstoneTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ *object_p = NULL;
+#line 355 "TombstoneTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 359 "TombstoneTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ *object_p = tombstone_row_ref (value->data[0].v_pointer);
+#line 363 "TombstoneTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return NULL;
+#line 367 "TombstoneTable.c"
+}
+
+
+GParamSpec* param_spec_tombstone_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTombstoneRow* spec;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TOMBSTONE_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 381 "TombstoneTable.c"
+}
+
+
+gpointer value_get_tombstone_row (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TOMBSTONE_ROW), NULL);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return value->data[0].v_pointer;
+#line 390 "TombstoneTable.c"
+}
+
+
+void value_set_tombstone_row (GValue* value, gpointer v_object) {
+ TombstoneRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TOMBSTONE_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TOMBSTONE_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_row_ref (value->data[0].v_pointer);
+#line 410 "TombstoneTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 414 "TombstoneTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_row_unref (old);
+#line 420 "TombstoneTable.c"
+ }
+}
+
+
+void value_take_tombstone_row (GValue* value, gpointer v_object) {
+ TombstoneRow* old;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TOMBSTONE_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TOMBSTONE_ROW));
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 439 "TombstoneTable.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 443 "TombstoneTable.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_row_unref (old);
+#line 449 "TombstoneTable.c"
+ }
+}
+
+
+static void tombstone_row_class_init (TombstoneRowClass * klass) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_row_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ ((TombstoneRowClass *) klass)->finalize = tombstone_row_finalize;
+#line 459 "TombstoneTable.c"
+}
+
+
+static void tombstone_row_instance_init (TombstoneRow * self) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ self->ref_count = 1;
+#line 466 "TombstoneTable.c"
+}
+
+
+static void tombstone_row_finalize (TombstoneRow* obj) {
+ TombstoneRow * self;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TOMBSTONE_ROW, TombstoneRow);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_signal_handlers_destroy (self);
+#line 27 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _g_free0 (self->filepath);
+#line 29 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _g_free0 (self->md5);
+#line 480 "TombstoneTable.c"
+}
+
+
+GType tombstone_row_get_type (void) {
+ static volatile gsize tombstone_row_type_id__volatile = 0;
+ if (g_once_init_enter (&tombstone_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_tombstone_row_init, value_tombstone_row_free_value, value_tombstone_row_copy_value, value_tombstone_row_peek_pointer, "p", value_tombstone_row_collect_value, "p", value_tombstone_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TombstoneRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tombstone_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TombstoneRow), 0, (GInstanceInitFunc) tombstone_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType tombstone_row_type_id;
+ tombstone_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TombstoneRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&tombstone_row_type_id__volatile, tombstone_row_type_id);
+ }
+ return tombstone_row_type_id__volatile;
+}
+
+
+gpointer tombstone_row_ref (gpointer instance) {
+ TombstoneRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return instance;
+#line 505 "TombstoneTable.c"
+}
+
+
+void tombstone_row_unref (gpointer instance) {
+ TombstoneRow* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ TOMBSTONE_ROW_GET_CLASS (self)->finalize (self);
+#line 25 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 518 "TombstoneTable.c"
+ }
+}
+
+
+static TombstoneTable* tombstone_table_construct (GType object_type) {
+ TombstoneTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 37 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ self = (TombstoneTable*) database_table_construct (object_type);
+#line 38 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "TombstoneTable");
+#line 41 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = database_table_db;
+#line 41 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS " "TombstoneTable " "(" "id INTEGER PRIMARY KEY, " "filepath TEXT NOT NULL, " "filesize INTEGER, " "md5 TEXT, " "time_created INTEGER, " "reason INTEGER DEFAULT 0 " ")", -1, &_tmp1_, NULL);
+#line 41 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 41 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ stmt = _tmp1_;
+#line 41 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp2_;
+#line 51 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp3_ = res;
+#line 51 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 53 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp4_ = stmt;
+#line 53 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 53 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp5_;
+#line 54 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp6_ = res;
+#line 54 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 562 "TombstoneTable.c"
+ gint _tmp7_ = 0;
+#line 55 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp7_ = res;
+#line 55 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ database_table_fatal ("create TombstoneTable", _tmp7_);
+#line 568 "TombstoneTable.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 37 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return self;
+#line 574 "TombstoneTable.c"
+}
+
+
+static TombstoneTable* tombstone_table_new (void) {
+#line 37 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return tombstone_table_construct (TYPE_TOMBSTONE_TABLE);
+#line 581 "TombstoneTable.c"
+}
+
+
+static gpointer _database_table_ref0 (gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return self ? database_table_ref (self) : NULL;
+#line 588 "TombstoneTable.c"
+}
+
+
+TombstoneTable* tombstone_table_get_instance (void) {
+ TombstoneTable* result = NULL;
+ TombstoneTable* _tmp0_ = NULL;
+ TombstoneTable* _tmp2_ = NULL;
+ TombstoneTable* _tmp3_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = tombstone_table_instance;
+#line 59 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_tmp0_ == NULL) {
+#line 601 "TombstoneTable.c"
+ TombstoneTable* _tmp1_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp1_ = tombstone_table_new ();
+#line 60 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _database_table_unref0 (tombstone_table_instance);
+#line 60 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_table_instance = _tmp1_;
+#line 609 "TombstoneTable.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp2_ = tombstone_table_instance;
+#line 62 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 62 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ result = _tmp3_;
+#line 62 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return result;
+#line 619 "TombstoneTable.c"
+}
+
+
+TombstoneRow* tombstone_table_add (TombstoneTable* self, const gchar* filepath, gint64 filesize, const gchar* md5, TombstoneReason reason, GError** error) {
+ TombstoneRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ time_t time_created = 0;
+ gulong _tmp4_ = 0UL;
+ sqlite3_stmt* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GDestroyNotify _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ sqlite3_stmt* _tmp11_ = NULL;
+ gint64 _tmp12_ = 0LL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ sqlite3_stmt* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ GDestroyNotify _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ sqlite3_stmt* _tmp21_ = NULL;
+ time_t _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ sqlite3_stmt* _tmp25_ = NULL;
+ TombstoneReason _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ sqlite3_stmt* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ TombstoneRow* row = NULL;
+ TombstoneRow* _tmp34_ = NULL;
+ TombstoneRow* _tmp35_ = NULL;
+ sqlite3* _tmp36_ = NULL;
+ gint64 _tmp37_ = 0LL;
+ TombstoneRow* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ TombstoneRow* _tmp41_ = NULL;
+ gint64 _tmp42_ = 0LL;
+ TombstoneRow* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ TombstoneRow* _tmp46_ = NULL;
+ time_t _tmp47_ = 0;
+ TombstoneRow* _tmp48_ = NULL;
+ TombstoneReason _tmp49_ = 0;
+ GError * _inner_error_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_val_if_fail (IS_TOMBSTONE_TABLE (self), NULL);
+#line 65 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 68 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = database_table_db;
+#line 68 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO TombstoneTable " "(filepath, filesize, md5, time_created, reason) " "VALUES (?, ?, ?, ?, ?)", -1, &_tmp1_, NULL);
+#line 68 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 68 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ stmt = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp2_;
+#line 72 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp3_ = res;
+#line 72 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 74 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp4_ = now_sec ();
+#line 74 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ time_created = (time_t) _tmp4_;
+#line 76 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp5_ = stmt;
+#line 76 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp6_ = filepath;
+#line 76 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 76 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp8_ = g_free;
+#line 76 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp9_ = sqlite3_bind_text (_tmp5_, 1, _tmp7_, -1, _tmp8_);
+#line 76 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp9_;
+#line 77 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp10_ = res;
+#line 77 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp10_ == SQLITE_OK, "res == Sqlite.OK");
+#line 78 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp11_ = stmt;
+#line 78 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp12_ = filesize;
+#line 78 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp13_ = sqlite3_bind_int64 (_tmp11_, 2, _tmp12_);
+#line 78 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp13_;
+#line 79 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp14_ = res;
+#line 79 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp14_ == SQLITE_OK, "res == Sqlite.OK");
+#line 80 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp15_ = stmt;
+#line 80 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp16_ = md5;
+#line 80 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 80 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp18_ = g_free;
+#line 80 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp19_ = sqlite3_bind_text (_tmp15_, 3, _tmp17_, -1, _tmp18_);
+#line 80 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp19_;
+#line 81 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp20_ = res;
+#line 81 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp20_ == SQLITE_OK, "res == Sqlite.OK");
+#line 82 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp21_ = stmt;
+#line 82 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp22_ = time_created;
+#line 82 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp23_ = sqlite3_bind_int64 (_tmp21_, 4, (gint64) _tmp22_);
+#line 82 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp23_;
+#line 83 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp24_ = res;
+#line 83 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp24_ == SQLITE_OK, "res == Sqlite.OK");
+#line 84 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp25_ = stmt;
+#line 84 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp26_ = reason;
+#line 84 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp27_ = tombstone_reason_serialize (_tmp26_);
+#line 84 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp28_ = sqlite3_bind_int (_tmp25_, 5, _tmp27_);
+#line 84 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp28_;
+#line 85 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp29_ = res;
+#line 85 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp29_ == SQLITE_OK, "res == Sqlite.OK");
+#line 87 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp30_ = stmt;
+#line 87 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp31_ = sqlite3_step (_tmp30_);
+#line 87 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp31_;
+#line 88 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp32_ = res;
+#line 88 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_tmp32_ != SQLITE_DONE) {
+#line 781 "TombstoneTable.c"
+ gint _tmp33_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp33_ = res;
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ database_table_throw_error ("TombstoneTable.add", _tmp33_, &_inner_error_);
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return NULL;
+#line 797 "TombstoneTable.c"
+ } else {
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_clear_error (&_inner_error_);
+#line 89 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return NULL;
+#line 807 "TombstoneTable.c"
+ }
+ }
+ }
+#line 91 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp34_ = tombstone_row_new ();
+#line 91 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ row = _tmp34_;
+#line 92 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp35_ = row;
+#line 92 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp36_ = database_table_db;
+#line 92 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp37_ = sqlite3_last_insert_rowid (_tmp36_);
+#line 92 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_id_init (&_tmp35_->id, _tmp37_);
+#line 93 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp38_ = row;
+#line 93 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp39_ = filepath;
+#line 93 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp40_ = g_strdup (_tmp39_);
+#line 93 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _g_free0 (_tmp38_->filepath);
+#line 93 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp38_->filepath = _tmp40_;
+#line 94 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp41_ = row;
+#line 94 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp42_ = filesize;
+#line 94 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp41_->filesize = _tmp42_;
+#line 95 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp43_ = row;
+#line 95 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp44_ = md5;
+#line 95 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp45_ = g_strdup (_tmp44_);
+#line 95 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _g_free0 (_tmp43_->md5);
+#line 95 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp43_->md5 = _tmp45_;
+#line 96 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp46_ = row;
+#line 96 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp47_ = time_created;
+#line 96 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp46_->time_created = _tmp47_;
+#line 97 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp48_ = row;
+#line 97 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp49_ = reason;
+#line 97 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp48_->reason = _tmp49_;
+#line 99 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ result = row;
+#line 99 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 99 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return result;
+#line 867 "TombstoneTable.c"
+}
+
+
+static gpointer _tombstone_row_ref0 (gpointer self) {
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return self ? tombstone_row_ref (self) : NULL;
+#line 874 "TombstoneTable.c"
+}
+
+
+TombstoneRow** tombstone_table_fetch_all (TombstoneTable* self, int* result_length1, GError** error) {
+ TombstoneRow** result = NULL;
+ gint row_count = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp3_ = NULL;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ TombstoneRow** rows = NULL;
+ gint _tmp7_ = 0;
+ TombstoneRow** _tmp8_ = NULL;
+ gint rows_length1 = 0;
+ gint _rows_size_ = 0;
+ gint index = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ TombstoneRow** _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_val_if_fail (IS_TOMBSTONE_TABLE (self), NULL);
+#line 103 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable));
+#line 103 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ row_count = _tmp0_;
+#line 104 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp1_ = row_count;
+#line 104 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_tmp1_ == 0) {
+#line 910 "TombstoneTable.c"
+ TombstoneRow** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 105 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp2_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp2__length1 = 0;
+#line 105 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (result_length1) {
+#line 105 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ *result_length1 = _tmp2__length1;
+#line 921 "TombstoneTable.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ result = _tmp2_;
+#line 105 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return result;
+#line 927 "TombstoneTable.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp3_ = database_table_db;
+#line 108 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp5_ = sqlite3_prepare_v2 (_tmp3_, "SELECT id, filepath, filesize, md5, time_created, reason " "FROM TombstoneTable", -1, &_tmp4_, NULL);
+#line 108 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 108 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ stmt = _tmp4_;
+#line 108 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp5_;
+#line 110 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp6_ = res;
+#line 110 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 112 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp7_ = row_count;
+#line 112 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp8_ = g_new0 (TombstoneRow*, _tmp7_ + 1);
+#line 112 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ rows = _tmp8_;
+#line 112 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ rows_length1 = _tmp7_;
+#line 112 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _rows_size_ = rows_length1;
+#line 114 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ index = 0;
+#line 955 "TombstoneTable.c"
+ {
+ gboolean _tmp9_ = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp9_ = TRUE;
+#line 115 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ while (TRUE) {
+#line 962 "TombstoneTable.c"
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ TombstoneRow* row = NULL;
+ TombstoneRow* _tmp15_ = NULL;
+ TombstoneRow* _tmp16_ = NULL;
+ sqlite3_stmt* _tmp17_ = NULL;
+ gint64 _tmp18_ = 0LL;
+ TombstoneRow* _tmp19_ = NULL;
+ sqlite3_stmt* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ TombstoneRow* _tmp23_ = NULL;
+ sqlite3_stmt* _tmp24_ = NULL;
+ gint64 _tmp25_ = 0LL;
+ TombstoneRow* _tmp26_ = NULL;
+ sqlite3_stmt* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ TombstoneRow* _tmp30_ = NULL;
+ sqlite3_stmt* _tmp31_ = NULL;
+ gint64 _tmp32_ = 0LL;
+ TombstoneRow* _tmp33_ = NULL;
+ sqlite3_stmt* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ TombstoneReason _tmp36_ = 0;
+ TombstoneRow** _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ gint _tmp38_ = 0;
+ TombstoneRow* _tmp39_ = NULL;
+ TombstoneRow* _tmp40_ = NULL;
+ TombstoneRow* _tmp41_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (!_tmp9_) {
+#line 997 "TombstoneTable.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp9_ = FALSE;
+#line 116 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp10_ = stmt;
+#line 116 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp11_ = sqlite3_step (_tmp10_);
+#line 116 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ res = _tmp11_;
+#line 117 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp12_ = res;
+#line 117 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_tmp12_ == SQLITE_DONE) {
+#line 118 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ break;
+#line 1013 "TombstoneTable.c"
+ } else {
+ gint _tmp13_ = 0;
+#line 119 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp13_ = res;
+#line 119 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_tmp13_ != SQLITE_ROW) {
+#line 1020 "TombstoneTable.c"
+ gint _tmp14_ = 0;
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp14_ = res;
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ database_table_throw_error ("TombstoneTable.fetch_all", _tmp14_, &_inner_error_);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ rows = (_vala_array_free (rows, rows_length1, (GDestroyNotify) tombstone_row_unref), NULL);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return NULL;
+#line 1038 "TombstoneTable.c"
+ } else {
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ rows = (_vala_array_free (rows, rows_length1, (GDestroyNotify) tombstone_row_unref), NULL);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_clear_error (&_inner_error_);
+#line 120 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return NULL;
+#line 1050 "TombstoneTable.c"
+ }
+ }
+ }
+ }
+#line 122 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp15_ = tombstone_row_new ();
+#line 122 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ row = _tmp15_;
+#line 123 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp16_ = row;
+#line 123 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp17_ = stmt;
+#line 123 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp18_ = sqlite3_column_int64 (_tmp17_, 0);
+#line 123 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_id_init (&_tmp16_->id, _tmp18_);
+#line 124 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp19_ = row;
+#line 124 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp20_ = stmt;
+#line 124 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp21_ = sqlite3_column_text (_tmp20_, 1);
+#line 124 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp22_ = g_strdup (_tmp21_);
+#line 124 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _g_free0 (_tmp19_->filepath);
+#line 124 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp19_->filepath = _tmp22_;
+#line 125 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp23_ = row;
+#line 125 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp24_ = stmt;
+#line 125 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp25_ = sqlite3_column_int64 (_tmp24_, 2);
+#line 125 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp23_->filesize = _tmp25_;
+#line 126 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp26_ = row;
+#line 126 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp27_ = stmt;
+#line 126 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp28_ = sqlite3_column_text (_tmp27_, 3);
+#line 126 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp29_ = g_strdup (_tmp28_);
+#line 126 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _g_free0 (_tmp26_->md5);
+#line 126 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp26_->md5 = _tmp29_;
+#line 127 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp30_ = row;
+#line 127 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp31_ = stmt;
+#line 127 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp32_ = sqlite3_column_int64 (_tmp31_, 4);
+#line 127 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp30_->time_created = (time_t) _tmp32_;
+#line 128 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp33_ = row;
+#line 128 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp34_ = stmt;
+#line 128 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp35_ = sqlite3_column_int (_tmp34_, 5);
+#line 128 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp36_ = tombstone_reason_unserialize (_tmp35_);
+#line 128 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp33_->reason = _tmp36_;
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp37_ = rows;
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp37__length1 = rows_length1;
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp38_ = index;
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ index = _tmp38_ + 1;
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp39_ = row;
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp40_ = _tombstone_row_ref0 (_tmp39_);
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tombstone_row_unref0 (_tmp37_[_tmp38_]);
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp37_[_tmp38_] = _tmp40_;
+#line 130 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp41_ = _tmp37_[_tmp38_];
+#line 115 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tombstone_row_unref0 (row);
+#line 1137 "TombstoneTable.c"
+ }
+ }
+#line 133 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp42_ = index;
+#line 133 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp43_ = row_count;
+#line 133 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _vala_assert (_tmp42_ == _tmp43_, "index == row_count");
+#line 135 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp44_ = rows;
+#line 135 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp44__length1 = rows_length1;
+#line 135 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (result_length1) {
+#line 135 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ *result_length1 = _tmp44__length1;
+#line 1154 "TombstoneTable.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ result = _tmp44_;
+#line 135 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 135 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return result;
+#line 1162 "TombstoneTable.c"
+}
+
+
+void tombstone_table_update_file (TombstoneTable* self, TombstoneID* tombstone_id, const gchar* filepath, GError** error) {
+ TombstoneID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (IS_TOMBSTONE_TABLE (self));
+#line 138 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (tombstone_id != NULL);
+#line 138 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (filepath != NULL);
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = *tombstone_id;
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp2_ = filepath;
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "filepath", _tmp2_, &_inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return;
+#line 1193 "TombstoneTable.c"
+ } else {
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_clear_error (&_inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return;
+#line 1201 "TombstoneTable.c"
+ }
+ }
+}
+
+
+void tombstone_table_remove (TombstoneTable* self, TombstoneID* tombstone_id, GError** error) {
+ TombstoneID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (IS_TOMBSTONE_TABLE (self));
+#line 142 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_return_if_fail (tombstone_id != NULL);
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp0_ = *tombstone_id;
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ database_table_delete_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, &_inner_error_);
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return;
+#line 1229 "TombstoneTable.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ g_clear_error (&_inner_error_);
+#line 143 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ return;
+#line 1237 "TombstoneTable.c"
+ }
+ }
+}
+
+
+static void tombstone_table_class_init (TombstoneTableClass * klass) {
+#line 34 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ tombstone_table_parent_class = g_type_class_peek_parent (klass);
+#line 34 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = tombstone_table_finalize;
+#line 1248 "TombstoneTable.c"
+}
+
+
+static void tombstone_table_instance_init (TombstoneTable * self) {
+}
+
+
+static void tombstone_table_finalize (DatabaseTable* obj) {
+ TombstoneTable * self;
+#line 34 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TOMBSTONE_TABLE, TombstoneTable);
+#line 34 "/home/jens/Source/shotwell/src/db/TombstoneTable.vala"
+ DATABASE_TABLE_CLASS (tombstone_table_parent_class)->finalize (obj);
+#line 1262 "TombstoneTable.c"
+}
+
+
+GType tombstone_table_get_type (void) {
+ static volatile gsize tombstone_table_type_id__volatile = 0;
+ if (g_once_init_enter (&tombstone_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TombstoneTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tombstone_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TombstoneTable), 0, (GInstanceInitFunc) tombstone_table_instance_init, NULL };
+ GType tombstone_table_type_id;
+ tombstone_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "TombstoneTable", &g_define_type_info, 0);
+ g_once_init_leave (&tombstone_table_type_id__volatile, tombstone_table_type_id);
+ }
+ return tombstone_table_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/db/VersionTable.c b/src/db/VersionTable.c
new file mode 100644
index 0000000..fa79d52
--- /dev/null
+++ b/src/db/VersionTable.c
@@ -0,0 +1,614 @@
+/* VersionTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from VersionTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sqlite3.h>
+
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+
+#define TYPE_VERSION_TABLE (version_table_get_type ())
+#define VERSION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VERSION_TABLE, VersionTable))
+#define VERSION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VERSION_TABLE, VersionTableClass))
+#define IS_VERSION_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VERSION_TABLE))
+#define IS_VERSION_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VERSION_TABLE))
+#define VERSION_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VERSION_TABLE, VersionTableClass))
+
+typedef struct _VersionTable VersionTable;
+typedef struct _VersionTableClass VersionTableClass;
+typedef struct _VersionTablePrivate VersionTablePrivate;
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _VersionTable {
+ DatabaseTable parent_instance;
+ VersionTablePrivate * priv;
+};
+
+struct _VersionTableClass {
+ DatabaseTableClass parent_class;
+};
+
+
+static gpointer version_table_parent_class = NULL;
+static VersionTable* version_table_instance;
+static VersionTable* version_table_instance = NULL;
+extern sqlite3* database_table_db;
+
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType version_table_get_type (void) G_GNUC_CONST;
+enum {
+ VERSION_TABLE_DUMMY_PROPERTY
+};
+static VersionTable* version_table_new (void);
+static VersionTable* version_table_construct (GType object_type);
+DatabaseTable* database_table_construct (GType object_type);
+void database_table_fatal (const gchar* op, gint res);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+VersionTable* version_table_get_instance (void);
+gint version_table_get_version (VersionTable* self, gchar** app_version);
+void version_table_set_version (VersionTable* self, gint version, const gchar* app_version, const gchar* user_data);
+void version_table_update_version (VersionTable* self, gint version, const gchar* app_version);
+static void version_table_finalize (DatabaseTable* obj);
+
+
+static VersionTable* version_table_construct (GType object_type) {
+ VersionTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 10 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ self = (VersionTable*) database_table_construct (object_type);
+#line 12 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp0_ = database_table_db;
+#line 12 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS VersionTable (" "id INTEGER PRIMARY KEY, " "schema_version INTEGER, " "app_version TEXT, " "user_data TEXT NULL" ")", -1, &_tmp1_, NULL);
+#line 12 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 12 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ stmt = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp2_;
+#line 18 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp3_ = res;
+#line 18 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 20 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp4_ = stmt;
+#line 20 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 20 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp5_;
+#line 21 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp6_ = res;
+#line 21 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 134 "VersionTable.c"
+ gint _tmp7_ = 0;
+#line 22 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp7_ = res;
+#line 22 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ database_table_fatal ("create version table", _tmp7_);
+#line 140 "VersionTable.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "VersionTable");
+#line 10 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 10 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ return self;
+#line 148 "VersionTable.c"
+}
+
+
+static VersionTable* version_table_new (void) {
+#line 10 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ return version_table_construct (TYPE_VERSION_TABLE);
+#line 155 "VersionTable.c"
+}
+
+
+static gpointer _database_table_ref0 (gpointer self) {
+#line 31 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ return self ? database_table_ref (self) : NULL;
+#line 162 "VersionTable.c"
+}
+
+
+VersionTable* version_table_get_instance (void) {
+ VersionTable* result = NULL;
+ VersionTable* _tmp0_ = NULL;
+ VersionTable* _tmp2_ = NULL;
+ VersionTable* _tmp3_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp0_ = version_table_instance;
+#line 28 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (_tmp0_ == NULL) {
+#line 175 "VersionTable.c"
+ VersionTable* _tmp1_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp1_ = version_table_new ();
+#line 29 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _database_table_unref0 (version_table_instance);
+#line 29 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ version_table_instance = _tmp1_;
+#line 183 "VersionTable.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp2_ = version_table_instance;
+#line 31 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 31 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ result = _tmp3_;
+#line 31 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ return result;
+#line 193 "VersionTable.c"
+}
+
+
+gint version_table_get_version (VersionTable* self, gchar** app_version) {
+ gchar* _vala_app_version = NULL;
+ gint result = 0;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+#line 34 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ g_return_val_if_fail (IS_VERSION_TABLE (self), 0);
+#line 36 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp0_ = database_table_db;
+#line 36 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT schema_version, app_version FROM VersionTable ORDER BY schema_v" \
+"ersion DESC LIMIT 1", -1, &_tmp1_, NULL);
+#line 36 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 36 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ stmt = _tmp1_;
+#line 36 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp2_;
+#line 38 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp3_ = res;
+#line 38 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 40 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp4_ = stmt;
+#line 40 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 40 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp5_;
+#line 41 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp6_ = res;
+#line 41 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (_tmp6_ != SQLITE_ROW) {
+#line 240 "VersionTable.c"
+ gint _tmp7_ = 0;
+#line 42 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp7_ = res;
+#line 42 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (_tmp7_ != SQLITE_DONE) {
+#line 246 "VersionTable.c"
+ gint _tmp8_ = 0;
+#line 43 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp8_ = res;
+#line 43 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ database_table_fatal ("get_version", _tmp8_);
+#line 252 "VersionTable.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (_vala_app_version);
+#line 45 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_app_version = NULL;
+#line 47 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ result = -1;
+#line 47 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 47 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (app_version) {
+#line 47 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ *app_version = _vala_app_version;
+#line 266 "VersionTable.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (_vala_app_version);
+#line 270 "VersionTable.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ return result;
+#line 274 "VersionTable.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp9_ = stmt;
+#line 50 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp10_ = sqlite3_column_text (_tmp9_, 1);
+#line 50 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 50 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (_vala_app_version);
+#line 50 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_app_version = _tmp11_;
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp12_ = stmt;
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp13_ = sqlite3_column_int (_tmp12_, 0);
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ result = _tmp13_;
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (app_version) {
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ *app_version = _vala_app_version;
+#line 298 "VersionTable.c"
+ } else {
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (_vala_app_version);
+#line 302 "VersionTable.c"
+ }
+#line 52 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ return result;
+#line 306 "VersionTable.c"
+}
+
+
+void version_table_set_version (VersionTable* self, gint version, const gchar* app_version, const gchar* user_data) {
+ sqlite3_stmt* stmt = NULL;
+ gchar* bitbucket = NULL;
+ gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint res = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ sqlite3_stmt* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GDestroyNotify _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ sqlite3_stmt* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ GDestroyNotify _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ sqlite3_stmt* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+#line 55 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ g_return_if_fail (IS_VERSION_TABLE (self));
+#line 55 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ g_return_if_fail (app_version != NULL);
+#line 59 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp1_ = version_table_get_version (self, &_tmp0_);
+#line 59 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (bitbucket);
+#line 59 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ bitbucket = _tmp0_;
+#line 59 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (_tmp1_ != -1) {
+#line 347 "VersionTable.c"
+ gint res = 0;
+ sqlite3* _tmp2_ = NULL;
+ sqlite3_stmt* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 61 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp2_ = database_table_db;
+#line 61 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp4_ = sqlite3_prepare_v2 (_tmp2_, "UPDATE VersionTable SET schema_version=?, app_version=?, user_data=?", -1, &_tmp3_, NULL);
+#line 61 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 61 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ stmt = _tmp3_;
+#line 61 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp4_;
+#line 63 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp5_ = res;
+#line 63 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp5_ == SQLITE_OK, "res == Sqlite.OK");
+#line 367 "VersionTable.c"
+ } else {
+ gint res = 0;
+ sqlite3* _tmp6_ = NULL;
+ sqlite3_stmt* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 66 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp6_ = database_table_db;
+#line 66 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp8_ = sqlite3_prepare_v2 (_tmp6_, "INSERT INTO VersionTable (schema_version, app_version, user_data) VALU" \
+"ES (?,?, ?)", -1, &_tmp7_, NULL);
+#line 66 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 66 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ stmt = _tmp7_;
+#line 66 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp8_;
+#line 68 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp9_ = res;
+#line 68 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 388 "VersionTable.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp10_ = stmt;
+#line 71 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp11_ = version;
+#line 71 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp12_ = sqlite3_bind_int (_tmp10_, 1, _tmp11_);
+#line 71 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp12_;
+#line 72 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp13_ = res;
+#line 72 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp13_ == SQLITE_OK, "res == Sqlite.OK");
+#line 73 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp14_ = stmt;
+#line 73 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp15_ = app_version;
+#line 73 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 73 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp17_ = g_free;
+#line 73 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp18_ = sqlite3_bind_text (_tmp14_, 2, _tmp16_, -1, _tmp17_);
+#line 73 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp18_;
+#line 74 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp19_ = res;
+#line 74 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp19_ == SQLITE_OK, "res == Sqlite.OK");
+#line 75 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp20_ = stmt;
+#line 75 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp21_ = user_data;
+#line 75 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp22_ = g_strdup (_tmp21_);
+#line 75 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp23_ = g_free;
+#line 75 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp24_ = sqlite3_bind_text (_tmp20_, 3, _tmp22_, -1, _tmp23_);
+#line 75 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp24_;
+#line 76 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp25_ = res;
+#line 76 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp25_ == SQLITE_OK, "res == Sqlite.OK");
+#line 78 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp26_ = stmt;
+#line 78 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp27_ = sqlite3_step (_tmp26_);
+#line 78 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp27_;
+#line 79 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp28_ = res;
+#line 79 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (_tmp28_ != SQLITE_DONE) {
+#line 444 "VersionTable.c"
+ gint _tmp29_ = 0;
+ const gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp29_ = version;
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp30_ = app_version;
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp31_ = user_data;
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp32_ = g_strdup_printf ("set_version %d %s %s", _tmp29_, _tmp30_, _tmp31_);
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp33_ = _tmp32_;
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp34_ = res;
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ database_table_fatal (_tmp33_, _tmp34_);
+#line 80 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (_tmp33_);
+#line 467 "VersionTable.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (bitbucket);
+#line 55 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 473 "VersionTable.c"
+}
+
+
+void version_table_update_version (VersionTable* self, gint version, const gchar* app_version) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GDestroyNotify _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ sqlite3_stmt* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+#line 83 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ g_return_if_fail (IS_VERSION_TABLE (self));
+#line 83 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ g_return_if_fail (app_version != NULL);
+#line 85 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp0_ = database_table_db;
+#line 85 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE VersionTable SET schema_version=?, app_version=?", -1, &_tmp1_, NULL);
+#line 85 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 85 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ stmt = _tmp1_;
+#line 85 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp2_;
+#line 86 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp3_ = res;
+#line 86 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 88 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp4_ = stmt;
+#line 88 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp5_ = version;
+#line 88 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp6_ = sqlite3_bind_int (_tmp4_, 1, _tmp5_);
+#line 88 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp6_;
+#line 89 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp7_ = res;
+#line 89 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp7_ == SQLITE_OK, "res == Sqlite.OK");
+#line 90 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp8_ = stmt;
+#line 90 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp9_ = app_version;
+#line 90 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 90 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp11_ = g_free;
+#line 90 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp12_ = sqlite3_bind_text (_tmp8_, 2, _tmp10_, -1, _tmp11_);
+#line 90 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp12_;
+#line 91 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp13_ = res;
+#line 91 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _vala_assert (_tmp13_ == SQLITE_OK, "res == Sqlite.OK");
+#line 93 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp14_ = stmt;
+#line 93 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp15_ = sqlite3_step (_tmp14_);
+#line 93 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ res = _tmp15_;
+#line 94 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp16_ = res;
+#line 94 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ if (_tmp16_ != SQLITE_DONE) {
+#line 553 "VersionTable.c"
+ gint _tmp17_ = 0;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+#line 95 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp17_ = version;
+#line 95 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp18_ = g_strdup_printf ("update_version %d", _tmp17_);
+#line 95 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp19_ = _tmp18_;
+#line 95 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _tmp20_ = res;
+#line 95 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ database_table_fatal (_tmp19_, _tmp20_);
+#line 95 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _g_free0 (_tmp19_);
+#line 570 "VersionTable.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 574 "VersionTable.c"
+}
+
+
+static void version_table_class_init (VersionTableClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ version_table_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = version_table_finalize;
+#line 583 "VersionTable.c"
+}
+
+
+static void version_table_instance_init (VersionTable * self) {
+}
+
+
+static void version_table_finalize (DatabaseTable* obj) {
+ VersionTable * self;
+#line 7 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VERSION_TABLE, VersionTable);
+#line 7 "/home/jens/Source/shotwell/src/db/VersionTable.vala"
+ DATABASE_TABLE_CLASS (version_table_parent_class)->finalize (obj);
+#line 597 "VersionTable.c"
+}
+
+
+GType version_table_get_type (void) {
+ static volatile gsize version_table_type_id__volatile = 0;
+ if (g_once_init_enter (&version_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VersionTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) version_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VersionTable), 0, (GInstanceInitFunc) version_table_instance_init, NULL };
+ GType version_table_type_id;
+ version_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "VersionTable", &g_define_type_info, 0);
+ g_once_init_leave (&version_table_type_id__volatile, version_table_type_id);
+ }
+ return version_table_type_id__volatile;
+}
+
+
+
diff --git a/src/db/VideoTable.c b/src/db/VideoTable.c
new file mode 100644
index 0000000..8b8d78a
--- /dev/null
+++ b/src/db/VideoTable.c
@@ -0,0 +1,3373 @@
+/* VideoTable.c generated by valac 0.32.1, the Vala compiler
+ * generated from VideoTable.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+#include <float.h>
+#include <math.h>
+#include <sqlite3.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_VIDEO_ID (video_id_get_type ())
+typedef struct _VideoID VideoID;
+
+#define TYPE_VIDEO_ROW (video_row_get_type ())
+#define VIDEO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_ROW, VideoRow))
+#define VIDEO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_ROW, VideoRowClass))
+#define IS_VIDEO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_ROW))
+#define IS_VIDEO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_ROW))
+#define VIDEO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_ROW, VideoRowClass))
+
+typedef struct _VideoRow VideoRow;
+typedef struct _VideoRowClass VideoRowClass;
+typedef struct _VideoRowPrivate VideoRowPrivate;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_RATING (rating_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecVideoRow ParamSpecVideoRow;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+typedef struct _DatabaseTablePrivate DatabaseTablePrivate;
+
+#define TYPE_VIDEO_TABLE (video_table_get_type ())
+#define VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_TABLE, VideoTable))
+#define VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_TABLE, VideoTableClass))
+#define IS_VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_TABLE))
+#define IS_VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_TABLE))
+#define VIDEO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_TABLE, VideoTableClass))
+
+typedef struct _VideoTable VideoTable;
+typedef struct _VideoTableClass VideoTableClass;
+typedef struct _VideoTablePrivate VideoTablePrivate;
+#define _sqlite3_finalize0(var) ((var == NULL) ? NULL : (var = (sqlite3_finalize (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _video_row_unref0(var) ((var == NULL) ? NULL : (var = (video_row_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _VideoID {
+ gint64 id;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _VideoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ VideoRowPrivate * priv;
+ VideoID video_id;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ gint width;
+ gint height;
+ gdouble clip_duration;
+ gboolean is_interpretable;
+ time_t exposure_time;
+ ImportID import_id;
+ EventID event_id;
+ gchar* md5;
+ time_t time_created;
+ Rating rating;
+ gchar* title;
+ gchar* backlinks;
+ time_t time_reimported;
+ guint64 flags;
+ gchar* comment;
+};
+
+struct _VideoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (VideoRow *self);
+};
+
+struct _ParamSpecVideoRow {
+ GParamSpec parent_instance;
+};
+
+struct _DatabaseTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DatabaseTablePrivate * priv;
+ gchar* table_name;
+};
+
+struct _DatabaseTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (DatabaseTable *self);
+};
+
+struct _VideoTable {
+ DatabaseTable parent_instance;
+ VideoTablePrivate * priv;
+};
+
+struct _VideoTableClass {
+ DatabaseTableClass parent_class;
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+
+static gpointer video_row_parent_class = NULL;
+static gpointer video_table_parent_class = NULL;
+static VideoTable* video_table_instance;
+static VideoTable* video_table_instance = NULL;
+extern sqlite3* database_table_db;
+
+GType video_id_get_type (void) G_GNUC_CONST;
+VideoID* video_id_dup (const VideoID* self);
+void video_id_free (VideoID* self);
+#define VIDEO_ID_INVALID ((gint64) -1)
+void video_id_init (VideoID *self, gint64 id);
+gboolean video_id_is_invalid (VideoID *self);
+gboolean video_id_is_valid (VideoID *self);
+guint video_id_hash (VideoID* a);
+guint int64_hash (gint64* n);
+gboolean video_id_equal (void* a, void* b);
+gchar* video_id_upgrade_video_id_to_source_id (VideoID* video_id);
+#define VIDEO_TYPENAME "video"
+gpointer video_row_ref (gpointer instance);
+void video_row_unref (gpointer instance);
+GParamSpec* param_spec_video_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_video_row (GValue* value, gpointer v_object);
+void value_take_video_row (GValue* value, gpointer v_object);
+gpointer value_get_video_row (const GValue* value);
+GType video_row_get_type (void) G_GNUC_CONST;
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+GType rating_get_type (void) G_GNUC_CONST;
+enum {
+ VIDEO_ROW_DUMMY_PROPERTY
+};
+VideoRow* video_row_new (void);
+VideoRow* video_row_construct (GType object_type);
+static void video_row_finalize (VideoRow* obj);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType video_table_get_type (void) G_GNUC_CONST;
+enum {
+ VIDEO_TABLE_DUMMY_PROPERTY
+};
+static VideoTable* video_table_new (void);
+static VideoTable* video_table_construct (GType object_type);
+DatabaseTable* database_table_construct (GType object_type);
+void database_table_fatal (const gchar* op, gint res);
+void database_table_set_table_name (DatabaseTable* self, const gchar* table_name);
+VideoTable* video_table_get_instance (void);
+GQuark database_error_quark (void);
+void video_table_add (VideoTable* self, VideoRow* video_row, VideoID* result, GError** error);
+gulong now_sec (void);
+#define EVENT_ID_INVALID ((gint64) -1)
+void database_table_throw_error (const gchar* method, gint res, GError** error);
+void event_id_init (EventID *self, gint64 id);
+gboolean video_table_drop_event (VideoTable* self, EventID* event_id);
+VideoRow* video_table_get_row (VideoTable* self, VideoID* video_id);
+Rating rating_unserialize (gint value);
+GeeArrayList* video_table_get_all (VideoTable* self);
+void video_table_set_filepath (VideoTable* self, VideoID* video_id, const gchar* filepath, GError** error);
+void database_table_update_text_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, const gchar* text, GError** error);
+void video_table_set_title (VideoTable* self, VideoID* video_id, const gchar* new_title, GError** error);
+void video_table_set_comment (VideoTable* self, VideoID* video_id, const gchar* new_comment, GError** error);
+void video_table_set_exposure_time (VideoTable* self, VideoID* video_id, time_t time, GError** error);
+void database_table_update_int64_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint64 value, GError** error);
+void video_table_set_rating (VideoTable* self, VideoID* video_id, Rating rating, GError** error);
+gint rating_serialize (Rating self);
+void video_table_set_flags (VideoTable* self, VideoID* video_id, guint64 flags, GError** error);
+void video_table_update_backlinks (VideoTable* self, VideoID* video_id, const gchar* backlinks, GError** error);
+void video_table_update_is_interpretable (VideoTable* self, VideoID* video_id, gboolean is_interpretable, GError** error);
+void database_table_update_int_by_id_2 (DatabaseTable* self, gint64 id, const gchar* column, gint value, GError** error);
+gboolean video_table_set_event (VideoTable* self, VideoID* video_id, EventID* event_id);
+gboolean database_table_update_int64_by_id (DatabaseTable* self, gint64 id, const gchar* column, gint64 value);
+void video_table_remove_by_file (VideoTable* self, GFile* file, GError** error);
+void video_table_remove (VideoTable* self, VideoID* videoID, GError** error);
+gboolean video_table_is_video_stored (VideoTable* self, GFile* file);
+void video_table_get_id (VideoTable* self, GFile* file, VideoID* result);
+GeeArrayList* video_table_get_videos (VideoTable* self, GError** error);
+static sqlite3_stmt* video_table_get_duplicate_stmt (VideoTable* self, GFile* file, const gchar* md5);
+gboolean video_table_has_duplicate (VideoTable* self, GFile* file, const gchar* md5);
+VideoID* video_table_get_duplicate_ids (VideoTable* self, GFile* file, const gchar* md5, int* result_length1);
+static void _vala_array_add3 (VideoID** array, int* length, int* size, const VideoID* value);
+GeeArrayList* video_table_get_event_source_ids (VideoTable* self, EventID* event_id);
+void video_table_set_timestamp (VideoTable* self, VideoID* video_id, time_t timestamp, GError** error);
+static void video_table_finalize (DatabaseTable* obj);
+
+
+void video_id_init (VideoID *self, gint64 id) {
+ gint64 _tmp0_ = 0LL;
+#line 12 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ memset (self, 0, sizeof (VideoID));
+#line 13 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = id;
+#line 13 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ (*self).id = _tmp0_;
+#line 266 "VideoTable.c"
+}
+
+
+gboolean video_id_is_invalid (VideoID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 17 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = (*self).id;
+#line 17 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp0_ == VIDEO_ID_INVALID;
+#line 17 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 279 "VideoTable.c"
+}
+
+
+gboolean video_id_is_valid (VideoID *self) {
+ gboolean result = FALSE;
+ gint64 _tmp0_ = 0LL;
+#line 21 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = (*self).id;
+#line 21 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp0_ != VIDEO_ID_INVALID;
+#line 21 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 292 "VideoTable.c"
+}
+
+
+guint video_id_hash (VideoID* a) {
+ guint result = 0U;
+ VideoID* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ guint _tmp2_ = 0U;
+#line 25 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = a;
+#line 25 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = (*_tmp0_).id;
+#line 25 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = int64_hash (&_tmp1_);
+#line 25 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp2_;
+#line 25 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 311 "VideoTable.c"
+}
+
+
+gboolean video_id_equal (void* a, void* b) {
+ gboolean result = FALSE;
+ void* _tmp0_ = NULL;
+ gint64 _tmp1_ = 0LL;
+ void* _tmp2_ = NULL;
+ gint64 _tmp3_ = 0LL;
+#line 29 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = a;
+#line 29 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = (*((VideoID*) _tmp0_)).id;
+#line 29 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = b;
+#line 29 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = (*((VideoID*) _tmp2_)).id;
+#line 29 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp1_ == _tmp3_;
+#line 29 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 333 "VideoTable.c"
+}
+
+
+gchar* video_id_upgrade_video_id_to_source_id (VideoID* video_id) {
+ gchar* result = NULL;
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ gchar* _tmp2_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (video_id != NULL, NULL);
+#line 33 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = *video_id;
+#line 33 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 33 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = g_strdup_printf ("%s-%016" G_GINT64_MODIFIER "x", VIDEO_TYPENAME, _tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 354 "VideoTable.c"
+}
+
+
+VideoID* video_id_dup (const VideoID* self) {
+ VideoID* dup;
+#line 7 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ dup = g_new0 (VideoID, 1);
+#line 7 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ memcpy (dup, self, sizeof (VideoID));
+#line 7 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return dup;
+#line 366 "VideoTable.c"
+}
+
+
+void video_id_free (VideoID* self) {
+#line 7 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_free (self);
+#line 373 "VideoTable.c"
+}
+
+
+GType video_id_get_type (void) {
+ static volatile gsize video_id_type_id__volatile = 0;
+ if (g_once_init_enter (&video_id_type_id__volatile)) {
+ GType video_id_type_id;
+ video_id_type_id = g_boxed_type_register_static ("VideoID", (GBoxedCopyFunc) video_id_dup, (GBoxedFreeFunc) video_id_free);
+ g_once_init_leave (&video_id_type_id__volatile, video_id_type_id);
+ }
+ return video_id_type_id__volatile;
+}
+
+
+VideoRow* video_row_construct (GType object_type) {
+ VideoRow* self = NULL;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ self = (VideoRow*) g_type_create_instance (object_type);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return self;
+#line 394 "VideoTable.c"
+}
+
+
+VideoRow* video_row_new (void) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return video_row_construct (TYPE_VIDEO_ROW);
+#line 401 "VideoTable.c"
+}
+
+
+static void value_video_row_init (GValue* value) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 408 "VideoTable.c"
+}
+
+
+static void value_video_row_free_value (GValue* value) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (value->data[0].v_pointer) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_row_unref (value->data[0].v_pointer);
+#line 417 "VideoTable.c"
+ }
+}
+
+
+static void value_video_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (src_value->data[0].v_pointer) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ dest_value->data[0].v_pointer = video_row_ref (src_value->data[0].v_pointer);
+#line 427 "VideoTable.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 431 "VideoTable.c"
+ }
+}
+
+
+static gpointer value_video_row_peek_pointer (const GValue* value) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return value->data[0].v_pointer;
+#line 439 "VideoTable.c"
+}
+
+
+static gchar* value_video_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (collect_values[0].v_pointer) {
+#line 446 "VideoTable.c"
+ VideoRow* object;
+ object = collect_values[0].v_pointer;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 453 "VideoTable.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 457 "VideoTable.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ value->data[0].v_pointer = video_row_ref (object);
+#line 461 "VideoTable.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 465 "VideoTable.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return NULL;
+#line 469 "VideoTable.c"
+}
+
+
+static gchar* value_video_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ VideoRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (!object_p) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 480 "VideoTable.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (!value->data[0].v_pointer) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *object_p = NULL;
+#line 486 "VideoTable.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *object_p = value->data[0].v_pointer;
+#line 490 "VideoTable.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *object_p = video_row_ref (value->data[0].v_pointer);
+#line 494 "VideoTable.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return NULL;
+#line 498 "VideoTable.c"
+}
+
+
+GParamSpec* param_spec_video_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecVideoRow* spec;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_VIDEO_ROW), NULL);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return G_PARAM_SPEC (spec);
+#line 512 "VideoTable.c"
+}
+
+
+gpointer value_get_video_row (const GValue* value) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_ROW), NULL);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return value->data[0].v_pointer;
+#line 521 "VideoTable.c"
+}
+
+
+void value_set_video_row (GValue* value, gpointer v_object) {
+ VideoRow* old;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_ROW));
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ old = value->data[0].v_pointer;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (v_object) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIDEO_ROW));
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_row_ref (value->data[0].v_pointer);
+#line 541 "VideoTable.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 545 "VideoTable.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (old) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_row_unref (old);
+#line 551 "VideoTable.c"
+ }
+}
+
+
+void value_take_video_row (GValue* value, gpointer v_object) {
+ VideoRow* old;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_VIDEO_ROW));
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ old = value->data[0].v_pointer;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (v_object) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_VIDEO_ROW));
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ value->data[0].v_pointer = v_object;
+#line 570 "VideoTable.c"
+ } else {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ value->data[0].v_pointer = NULL;
+#line 574 "VideoTable.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (old) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_row_unref (old);
+#line 580 "VideoTable.c"
+ }
+}
+
+
+static void video_row_class_init (VideoRowClass * klass) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_row_parent_class = g_type_class_peek_parent (klass);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ ((VideoRowClass *) klass)->finalize = video_row_finalize;
+#line 590 "VideoTable.c"
+}
+
+
+static void video_row_instance_init (VideoRow * self) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ self->ref_count = 1;
+#line 597 "VideoTable.c"
+}
+
+
+static void video_row_finalize (VideoRow* obj) {
+ VideoRow * self;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_ROW, VideoRow);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_signal_handlers_destroy (self);
+#line 39 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (self->filepath);
+#line 49 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (self->md5);
+#line 52 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (self->title);
+#line 53 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (self->backlinks);
+#line 56 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (self->comment);
+#line 617 "VideoTable.c"
+}
+
+
+GType video_row_get_type (void) {
+ static volatile gsize video_row_type_id__volatile = 0;
+ if (g_once_init_enter (&video_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_video_row_init, value_video_row_free_value, value_video_row_copy_value, value_video_row_peek_pointer, "p", value_video_row_collect_value, "p", value_video_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (VideoRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoRow), 0, (GInstanceInitFunc) video_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType video_row_type_id;
+ video_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "VideoRow", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&video_row_type_id__volatile, video_row_type_id);
+ }
+ return video_row_type_id__volatile;
+}
+
+
+gpointer video_row_ref (gpointer instance) {
+ VideoRow* self;
+ self = instance;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return instance;
+#line 642 "VideoTable.c"
+}
+
+
+void video_row_unref (gpointer instance) {
+ VideoRow* self;
+ self = instance;
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ VIDEO_ROW_GET_CLASS (self)->finalize (self);
+#line 37 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 655 "VideoTable.c"
+ }
+}
+
+
+static VideoTable* video_table_construct (GType object_type) {
+ VideoTable* self = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* stmt2 = NULL;
+ gint res2 = 0;
+ sqlite3* _tmp8_ = NULL;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 62 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ self = (VideoTable*) database_table_construct (object_type);
+#line 64 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 64 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "CREATE TABLE IF NOT EXISTS VideoTable (" "id INTEGER PRIMARY KEY, " "filename TEXT UNIQUE NOT NULL, " "width INTEGER, " "height INTEGER, " "clip_duration REAL, " "is_interpretable INTEGER, " "filesize INTEGER, " "timestamp INTEGER, " "exposure_time INTEGER, " "import_id INTEGER, " "event_id INTEGER, " "md5 TEXT, " "time_created INTEGER, " "rating INTEGER DEFAULT 0, " "title TEXT, " "backlinks TEXT, " "time_reimported INTEGER, " "flags INTEGER DEFAULT 0, " "comment TEXT " ")", -1, &_tmp1_, NULL);
+#line 64 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 64 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 64 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 85 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 85 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 87 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 87 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 87 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp5_;
+#line 88 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = res;
+#line 88 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp6_ != SQLITE_DONE) {
+#line 706 "VideoTable.c"
+ gint _tmp7_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = res;
+#line 89 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_fatal ("VideoTable constructor", _tmp7_);
+#line 712 "VideoTable.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = database_table_db;
+#line 93 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = sqlite3_prepare_v2 (_tmp8_, "CREATE INDEX IF NOT EXISTS VideoEventIDIndex ON VideoTable (event_id)", -1, &_tmp9_, NULL);
+#line 93 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt2);
+#line 93 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt2 = _tmp9_;
+#line 93 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res2 = _tmp10_;
+#line 95 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = res2;
+#line 95 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res2 == Sqlite.OK");
+#line 97 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = stmt2;
+#line 97 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 97 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res2 = _tmp13_;
+#line 98 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = res2;
+#line 98 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp14_ != SQLITE_DONE) {
+#line 738 "VideoTable.c"
+ gint _tmp15_ = 0;
+#line 99 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp15_ = res2;
+#line 99 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_fatal ("VideoTable constructor", _tmp15_);
+#line 744 "VideoTable.c"
+ }
+#line 101 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_set_table_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), "VideoTable");
+#line 62 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt2);
+#line 62 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 62 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return self;
+#line 754 "VideoTable.c"
+}
+
+
+static VideoTable* video_table_new (void) {
+#line 62 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return video_table_construct (TYPE_VIDEO_TABLE);
+#line 761 "VideoTable.c"
+}
+
+
+static gpointer _database_table_ref0 (gpointer self) {
+#line 108 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return self ? database_table_ref (self) : NULL;
+#line 768 "VideoTable.c"
+}
+
+
+VideoTable* video_table_get_instance (void) {
+ VideoTable* result = NULL;
+ VideoTable* _tmp0_ = NULL;
+ VideoTable* _tmp2_ = NULL;
+ VideoTable* _tmp3_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = video_table_instance;
+#line 105 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp0_ == NULL) {
+#line 781 "VideoTable.c"
+ VideoTable* _tmp1_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = video_table_new ();
+#line 106 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _database_table_unref0 (video_table_instance);
+#line 106 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_table_instance = _tmp1_;
+#line 789 "VideoTable.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = video_table_instance;
+#line 108 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = _database_table_ref0 (_tmp2_);
+#line 108 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp3_;
+#line 108 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 799 "VideoTable.c"
+}
+
+
+void video_table_add (VideoTable* self, VideoRow* video_row, VideoID* result, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gulong time_created = 0UL;
+ gulong _tmp4_ = 0UL;
+ sqlite3_stmt* _tmp5_ = NULL;
+ VideoRow* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GDestroyNotify _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ VideoRow* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ sqlite3_stmt* _tmp17_ = NULL;
+ VideoRow* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ sqlite3_stmt* _tmp22_ = NULL;
+ VideoRow* _tmp23_ = NULL;
+ gdouble _tmp24_ = 0.0;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ VideoRow* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ sqlite3_stmt* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ sqlite3_stmt* _tmp33_ = NULL;
+ VideoRow* _tmp34_ = NULL;
+ gint64 _tmp35_ = 0LL;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ sqlite3_stmt* _tmp38_ = NULL;
+ VideoRow* _tmp39_ = NULL;
+ time_t _tmp40_ = 0;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ sqlite3_stmt* _tmp43_ = NULL;
+ VideoRow* _tmp44_ = NULL;
+ time_t _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+ sqlite3_stmt* _tmp48_ = NULL;
+ VideoRow* _tmp49_ = NULL;
+ ImportID _tmp50_ = {0};
+ gint64 _tmp51_ = 0LL;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ sqlite3_stmt* _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+ sqlite3_stmt* _tmp57_ = NULL;
+ VideoRow* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ GDestroyNotify _tmp61_ = NULL;
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+ sqlite3_stmt* _tmp64_ = NULL;
+ gulong _tmp65_ = 0UL;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ sqlite3_stmt* _tmp68_ = NULL;
+ VideoRow* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ GDestroyNotify _tmp72_ = NULL;
+ gint _tmp73_ = 0;
+ gint _tmp74_ = 0;
+ sqlite3_stmt* _tmp75_ = NULL;
+ VideoRow* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ GDestroyNotify _tmp79_ = NULL;
+ gint _tmp80_ = 0;
+ gint _tmp81_ = 0;
+ sqlite3_stmt* _tmp82_ = NULL;
+ gint _tmp83_ = 0;
+ gint _tmp84_ = 0;
+ VideoRow* _tmp87_ = NULL;
+ sqlite3* _tmp88_ = NULL;
+ gint64 _tmp89_ = 0LL;
+ VideoRow* _tmp90_ = NULL;
+ VideoRow* _tmp91_ = NULL;
+ gulong _tmp92_ = 0UL;
+ VideoRow* _tmp93_ = NULL;
+ VideoRow* _tmp94_ = NULL;
+ VideoID _tmp95_ = {0};
+ GError * _inner_error_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 113 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_ROW (video_row));
+#line 115 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 115 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "INSERT INTO VideoTable (filename, width, height, clip_duration, is_int" \
+"erpretable, " "filesize, timestamp, exposure_time, import_id, event_id, md5, time_cre" \
+"ated, title, comment) " "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", -1, &_tmp1_, NULL);
+#line 115 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 115 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 115 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 120 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 120 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 122 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = now_sec ();
+#line 122 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ time_created = _tmp4_;
+#line 124 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = stmt;
+#line 124 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = video_row;
+#line 124 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = _tmp6_->filepath;
+#line 124 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 124 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = g_free;
+#line 124 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = sqlite3_bind_text (_tmp5_, 1, _tmp8_, -1, _tmp9_);
+#line 124 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp10_;
+#line 125 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = res;
+#line 125 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 126 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = stmt;
+#line 126 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = video_row;
+#line 126 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = _tmp13_->width;
+#line 126 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp15_ = sqlite3_bind_int (_tmp12_, 2, _tmp14_);
+#line 126 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp15_;
+#line 127 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp16_ = res;
+#line 127 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp16_ == SQLITE_OK, "res == Sqlite.OK");
+#line 128 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp17_ = stmt;
+#line 128 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp18_ = video_row;
+#line 128 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp19_ = _tmp18_->height;
+#line 128 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp20_ = sqlite3_bind_int (_tmp17_, 3, _tmp19_);
+#line 128 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp20_;
+#line 129 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp21_ = res;
+#line 129 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp21_ == SQLITE_OK, "res == Sqlite.OK");
+#line 130 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp22_ = stmt;
+#line 130 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp23_ = video_row;
+#line 130 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp24_ = _tmp23_->clip_duration;
+#line 130 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp25_ = sqlite3_bind_double (_tmp22_, 4, _tmp24_);
+#line 130 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp25_;
+#line 131 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp26_ = res;
+#line 131 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp26_ == SQLITE_OK, "res == Sqlite.OK");
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp28_ = video_row;
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp29_ = _tmp28_->is_interpretable;
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp29_) {
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp27_ = 1;
+#line 992 "VideoTable.c"
+ } else {
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp27_ = 0;
+#line 996 "VideoTable.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp30_ = stmt;
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp31_ = sqlite3_bind_int (_tmp30_, 5, _tmp27_);
+#line 132 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp31_;
+#line 133 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp32_ = res;
+#line 133 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp32_ == SQLITE_OK, "res == Sqlite.OK");
+#line 134 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp33_ = stmt;
+#line 134 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp34_ = video_row;
+#line 134 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp35_ = _tmp34_->filesize;
+#line 134 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp36_ = sqlite3_bind_int64 (_tmp33_, 6, _tmp35_);
+#line 134 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp36_;
+#line 135 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp37_ = res;
+#line 135 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp37_ == SQLITE_OK, "res == Sqlite.OK");
+#line 136 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp38_ = stmt;
+#line 136 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp39_ = video_row;
+#line 136 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp40_ = _tmp39_->timestamp;
+#line 136 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp41_ = sqlite3_bind_int64 (_tmp38_, 7, (gint64) _tmp40_);
+#line 136 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp41_;
+#line 137 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp42_ = res;
+#line 137 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp42_ == SQLITE_OK, "res == Sqlite.OK");
+#line 138 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp43_ = stmt;
+#line 138 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp44_ = video_row;
+#line 138 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp45_ = _tmp44_->exposure_time;
+#line 138 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp46_ = sqlite3_bind_int64 (_tmp43_, 8, (gint64) _tmp45_);
+#line 138 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp46_;
+#line 139 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp47_ = res;
+#line 139 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp47_ == SQLITE_OK, "res == Sqlite.OK");
+#line 140 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp48_ = stmt;
+#line 140 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp49_ = video_row;
+#line 140 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp50_ = _tmp49_->import_id;
+#line 140 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp51_ = _tmp50_.id;
+#line 140 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp52_ = sqlite3_bind_int64 (_tmp48_, 9, _tmp51_);
+#line 140 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp52_;
+#line 141 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp53_ = res;
+#line 141 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp53_ == SQLITE_OK, "res == Sqlite.OK");
+#line 142 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp54_ = stmt;
+#line 142 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp55_ = sqlite3_bind_int64 (_tmp54_, 10, EVENT_ID_INVALID);
+#line 142 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp55_;
+#line 143 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp56_ = res;
+#line 143 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp56_ == SQLITE_OK, "res == Sqlite.OK");
+#line 144 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp57_ = stmt;
+#line 144 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp58_ = video_row;
+#line 144 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp59_ = _tmp58_->md5;
+#line 144 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp60_ = g_strdup (_tmp59_);
+#line 144 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp61_ = g_free;
+#line 144 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp62_ = sqlite3_bind_text (_tmp57_, 11, _tmp60_, -1, _tmp61_);
+#line 144 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp62_;
+#line 145 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp63_ = res;
+#line 145 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp63_ == SQLITE_OK, "res == Sqlite.OK");
+#line 146 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp64_ = stmt;
+#line 146 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp65_ = time_created;
+#line 146 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp66_ = sqlite3_bind_int64 (_tmp64_, 12, (gint64) _tmp65_);
+#line 146 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp66_;
+#line 147 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp67_ = res;
+#line 147 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp67_ == SQLITE_OK, "res == Sqlite.OK");
+#line 148 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp68_ = stmt;
+#line 148 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp69_ = video_row;
+#line 148 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp70_ = _tmp69_->title;
+#line 148 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp71_ = g_strdup (_tmp70_);
+#line 148 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp72_ = g_free;
+#line 148 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp73_ = sqlite3_bind_text (_tmp68_, 13, _tmp71_, -1, _tmp72_);
+#line 148 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp73_;
+#line 149 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp74_ = res;
+#line 149 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp74_ == SQLITE_OK, "res == Sqlite.OK");
+#line 150 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp75_ = stmt;
+#line 150 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp76_ = video_row;
+#line 150 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp77_ = _tmp76_->comment;
+#line 150 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp78_ = g_strdup (_tmp77_);
+#line 150 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp79_ = g_free;
+#line 150 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp80_ = sqlite3_bind_text (_tmp75_, 14, _tmp78_, -1, _tmp79_);
+#line 150 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp80_;
+#line 151 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp81_ = res;
+#line 151 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp81_ == SQLITE_OK, "res == Sqlite.OK");
+#line 153 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp82_ = stmt;
+#line 153 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp83_ = sqlite3_step (_tmp82_);
+#line 153 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp83_;
+#line 154 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp84_ = res;
+#line 154 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp84_ != SQLITE_DONE) {
+#line 1152 "VideoTable.c"
+ gint _tmp85_ = 0;
+#line 155 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp85_ = res;
+#line 155 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp85_ != SQLITE_CONSTRAINT) {
+#line 1158 "VideoTable.c"
+ gint _tmp86_ = 0;
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp86_ = res;
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_throw_error ("VideoTable.add", _tmp86_, &_inner_error_);
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 1174 "VideoTable.c"
+ } else {
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 156 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 1184 "VideoTable.c"
+ }
+ }
+ }
+ }
+#line 160 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp87_ = video_row;
+#line 160 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp88_ = database_table_db;
+#line 160 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp89_ = sqlite3_last_insert_rowid (_tmp88_);
+#line 160 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_id_init (&_tmp87_->video_id, _tmp89_);
+#line 161 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp90_ = video_row;
+#line 161 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ event_id_init (&_tmp90_->event_id, EVENT_ID_INVALID);
+#line 162 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp91_ = video_row;
+#line 162 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp92_ = time_created;
+#line 162 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp91_->time_created = (time_t) _tmp92_;
+#line 163 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp93_ = video_row;
+#line 163 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp93_->flags = (guint64) 0;
+#line 165 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp94_ = video_row;
+#line 165 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp95_ = _tmp94_->video_id;
+#line 165 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *result = _tmp95_;
+#line 165 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 165 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 1221 "VideoTable.c"
+}
+
+
+gboolean video_table_drop_event (VideoTable* self, EventID* event_id) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ sqlite3_stmt* _tmp7_ = NULL;
+ EventID _tmp8_ = {0};
+ gint64 _tmp9_ = 0LL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 168 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), FALSE);
+#line 168 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 170 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 170 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "UPDATE VideoTable SET event_id = ? WHERE event_id = ?", -1, &_tmp1_, NULL);
+#line 170 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 170 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 170 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 171 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 171 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 173 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 173 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = sqlite3_bind_int64 (_tmp4_, 1, EVENT_ID_INVALID);
+#line 173 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp5_;
+#line 174 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = res;
+#line 174 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp6_ == SQLITE_OK, "res == Sqlite.OK");
+#line 175 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = stmt;
+#line 175 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = *event_id;
+#line 175 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = _tmp8_.id;
+#line 175 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = sqlite3_bind_int64 (_tmp7_, 2, _tmp9_);
+#line 175 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp10_;
+#line 176 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = res;
+#line 176 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp11_ == SQLITE_OK, "res == Sqlite.OK");
+#line 178 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = stmt;
+#line 178 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = sqlite3_step (_tmp12_);
+#line 178 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp13_;
+#line 179 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = res;
+#line 179 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp14_ != SQLITE_DONE) {
+#line 1296 "VideoTable.c"
+ gint _tmp15_ = 0;
+#line 180 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp15_ = res;
+#line 180 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_fatal ("VideoTable.drop_event", _tmp15_);
+#line 182 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = FALSE;
+#line 182 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 182 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 1308 "VideoTable.c"
+ }
+#line 185 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = TRUE;
+#line 185 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 185 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 1316 "VideoTable.c"
+}
+
+
+VideoRow* video_table_get_row (VideoTable* self, VideoID* video_id) {
+ VideoRow* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ VideoID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ VideoRow* row = NULL;
+ VideoRow* _tmp11_ = NULL;
+ VideoRow* _tmp12_ = NULL;
+ VideoID _tmp13_ = {0};
+ VideoRow* _tmp14_ = NULL;
+ sqlite3_stmt* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ VideoRow* _tmp18_ = NULL;
+ sqlite3_stmt* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ VideoRow* _tmp21_ = NULL;
+ sqlite3_stmt* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ VideoRow* _tmp24_ = NULL;
+ sqlite3_stmt* _tmp25_ = NULL;
+ gdouble _tmp26_ = 0.0;
+ VideoRow* _tmp27_ = NULL;
+ sqlite3_stmt* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ VideoRow* _tmp30_ = NULL;
+ sqlite3_stmt* _tmp31_ = NULL;
+ gint64 _tmp32_ = 0LL;
+ VideoRow* _tmp33_ = NULL;
+ sqlite3_stmt* _tmp34_ = NULL;
+ gint64 _tmp35_ = 0LL;
+ VideoRow* _tmp36_ = NULL;
+ sqlite3_stmt* _tmp37_ = NULL;
+ gint64 _tmp38_ = 0LL;
+ VideoRow* _tmp39_ = NULL;
+ sqlite3_stmt* _tmp40_ = NULL;
+ gint64 _tmp41_ = 0LL;
+ VideoRow* _tmp42_ = NULL;
+ sqlite3_stmt* _tmp43_ = NULL;
+ gint64 _tmp44_ = 0LL;
+ VideoRow* _tmp45_ = NULL;
+ sqlite3_stmt* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ VideoRow* _tmp49_ = NULL;
+ sqlite3_stmt* _tmp50_ = NULL;
+ gint64 _tmp51_ = 0LL;
+ VideoRow* _tmp52_ = NULL;
+ sqlite3_stmt* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ Rating _tmp55_ = 0;
+ VideoRow* _tmp56_ = NULL;
+ sqlite3_stmt* _tmp57_ = NULL;
+ const gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ VideoRow* _tmp60_ = NULL;
+ sqlite3_stmt* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ VideoRow* _tmp64_ = NULL;
+ sqlite3_stmt* _tmp65_ = NULL;
+ gint64 _tmp66_ = 0LL;
+ VideoRow* _tmp67_ = NULL;
+ sqlite3_stmt* _tmp68_ = NULL;
+ gint64 _tmp69_ = 0LL;
+ VideoRow* _tmp70_ = NULL;
+ sqlite3_stmt* _tmp71_ = NULL;
+ const gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), NULL);
+#line 188 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (video_id != NULL, NULL);
+#line 190 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 190 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT filename, width, height, clip_duration, is_interpretable, files" \
+"ize, timestamp, " "exposure_time, import_id, event_id, md5, time_created, rating, title, " \
+"backlinks, " "time_reimported, flags, comment FROM VideoTable WHERE id=?", -1, &_tmp1_, NULL);
+#line 190 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 190 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 190 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 195 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 195 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 197 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 197 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = *video_id;
+#line 197 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 197 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 197 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp7_;
+#line 198 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = res;
+#line 198 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 200 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = stmt;
+#line 200 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 200 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp10_ != SQLITE_ROW) {
+#line 201 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = NULL;
+#line 201 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 201 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 1443 "VideoTable.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = video_row_new ();
+#line 203 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ row = _tmp11_;
+#line 204 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = row;
+#line 204 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = *video_id;
+#line 204 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_->video_id = _tmp13_;
+#line 205 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = row;
+#line 205 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp15_ = stmt;
+#line 205 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp16_ = sqlite3_column_text (_tmp15_, 0);
+#line 205 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 205 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp14_->filepath);
+#line 205 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_->filepath = _tmp17_;
+#line 206 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp18_ = row;
+#line 206 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp19_ = stmt;
+#line 206 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp20_ = sqlite3_column_int (_tmp19_, 1);
+#line 206 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp18_->width = _tmp20_;
+#line 207 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp21_ = row;
+#line 207 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp22_ = stmt;
+#line 207 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp23_ = sqlite3_column_int (_tmp22_, 2);
+#line 207 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp21_->height = _tmp23_;
+#line 208 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp24_ = row;
+#line 208 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp25_ = stmt;
+#line 208 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp26_ = sqlite3_column_double (_tmp25_, 3);
+#line 208 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp24_->clip_duration = _tmp26_;
+#line 209 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp27_ = row;
+#line 209 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp28_ = stmt;
+#line 209 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp29_ = sqlite3_column_int (_tmp28_, 4);
+#line 209 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp27_->is_interpretable = _tmp29_ == 1;
+#line 210 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp30_ = row;
+#line 210 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp31_ = stmt;
+#line 210 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp32_ = sqlite3_column_int64 (_tmp31_, 5);
+#line 210 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp30_->filesize = _tmp32_;
+#line 211 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp33_ = row;
+#line 211 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp34_ = stmt;
+#line 211 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp35_ = sqlite3_column_int64 (_tmp34_, 6);
+#line 211 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp33_->timestamp = (time_t) _tmp35_;
+#line 212 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp36_ = row;
+#line 212 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp37_ = stmt;
+#line 212 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp38_ = sqlite3_column_int64 (_tmp37_, 7);
+#line 212 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp36_->exposure_time = (time_t) _tmp38_;
+#line 213 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp39_ = row;
+#line 213 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp40_ = stmt;
+#line 213 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp41_ = sqlite3_column_int64 (_tmp40_, 8);
+#line 213 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp39_->import_id.id = _tmp41_;
+#line 214 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp42_ = row;
+#line 214 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp43_ = stmt;
+#line 214 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp44_ = sqlite3_column_int64 (_tmp43_, 9);
+#line 214 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp42_->event_id.id = _tmp44_;
+#line 215 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp45_ = row;
+#line 215 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp46_ = stmt;
+#line 215 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp47_ = sqlite3_column_text (_tmp46_, 10);
+#line 215 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp48_ = g_strdup (_tmp47_);
+#line 215 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp45_->md5);
+#line 215 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp45_->md5 = _tmp48_;
+#line 216 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp49_ = row;
+#line 216 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp50_ = stmt;
+#line 216 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp51_ = sqlite3_column_int64 (_tmp50_, 11);
+#line 216 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp49_->time_created = (time_t) _tmp51_;
+#line 217 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp52_ = row;
+#line 217 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp53_ = stmt;
+#line 217 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp54_ = sqlite3_column_int (_tmp53_, 12);
+#line 217 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp55_ = rating_unserialize (_tmp54_);
+#line 217 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp52_->rating = _tmp55_;
+#line 218 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp56_ = row;
+#line 218 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp57_ = stmt;
+#line 218 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp58_ = sqlite3_column_text (_tmp57_, 13);
+#line 218 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp59_ = g_strdup (_tmp58_);
+#line 218 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp56_->title);
+#line 218 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp56_->title = _tmp59_;
+#line 219 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp60_ = row;
+#line 219 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp61_ = stmt;
+#line 219 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp62_ = sqlite3_column_text (_tmp61_, 14);
+#line 219 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp63_ = g_strdup (_tmp62_);
+#line 219 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp60_->backlinks);
+#line 219 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp60_->backlinks = _tmp63_;
+#line 220 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp64_ = row;
+#line 220 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp65_ = stmt;
+#line 220 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp66_ = sqlite3_column_int64 (_tmp65_, 15);
+#line 220 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp64_->time_reimported = (time_t) _tmp66_;
+#line 221 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp67_ = row;
+#line 221 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp68_ = stmt;
+#line 221 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp69_ = sqlite3_column_int64 (_tmp68_, 16);
+#line 221 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp67_->flags = (guint64) _tmp69_;
+#line 222 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp70_ = row;
+#line 222 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp71_ = stmt;
+#line 222 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp72_ = sqlite3_column_text (_tmp71_, 17);
+#line 222 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp73_ = g_strdup (_tmp72_);
+#line 222 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp70_->comment);
+#line 222 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp70_->comment = _tmp73_;
+#line 224 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = row;
+#line 224 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 224 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 1627 "VideoTable.c"
+}
+
+
+GeeArrayList* video_table_get_all (VideoTable* self) {
+ GeeArrayList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeArrayList* all = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), NULL);
+#line 229 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 229 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id, filename, width, height, clip_duration, is_interpretable, f" \
+"ilesize, " "timestamp, exposure_time, import_id, event_id, md5, time_created, rati" \
+"ng, title, " "backlinks, time_reimported, flags, comment FROM VideoTable", -1, &_tmp1_, NULL);
+#line 229 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 229 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 229 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 234 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 234 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 236 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = gee_array_list_new (TYPE_VIDEO_ROW, (GBoxedCopyFunc) video_row_ref, video_row_unref, NULL, NULL, NULL);
+#line 236 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ all = _tmp4_;
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ while (TRUE) {
+#line 1663 "VideoTable.c"
+ sqlite3_stmt* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ VideoRow* row = NULL;
+ VideoRow* _tmp8_ = NULL;
+ VideoRow* _tmp9_ = NULL;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint64 _tmp11_ = 0LL;
+ VideoRow* _tmp12_ = NULL;
+ sqlite3_stmt* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ VideoRow* _tmp16_ = NULL;
+ sqlite3_stmt* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ VideoRow* _tmp19_ = NULL;
+ sqlite3_stmt* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ VideoRow* _tmp22_ = NULL;
+ sqlite3_stmt* _tmp23_ = NULL;
+ gdouble _tmp24_ = 0.0;
+ VideoRow* _tmp25_ = NULL;
+ sqlite3_stmt* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ VideoRow* _tmp28_ = NULL;
+ sqlite3_stmt* _tmp29_ = NULL;
+ gint64 _tmp30_ = 0LL;
+ VideoRow* _tmp31_ = NULL;
+ sqlite3_stmt* _tmp32_ = NULL;
+ gint64 _tmp33_ = 0LL;
+ VideoRow* _tmp34_ = NULL;
+ sqlite3_stmt* _tmp35_ = NULL;
+ gint64 _tmp36_ = 0LL;
+ VideoRow* _tmp37_ = NULL;
+ sqlite3_stmt* _tmp38_ = NULL;
+ gint64 _tmp39_ = 0LL;
+ VideoRow* _tmp40_ = NULL;
+ sqlite3_stmt* _tmp41_ = NULL;
+ gint64 _tmp42_ = 0LL;
+ VideoRow* _tmp43_ = NULL;
+ sqlite3_stmt* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ VideoRow* _tmp47_ = NULL;
+ sqlite3_stmt* _tmp48_ = NULL;
+ gint64 _tmp49_ = 0LL;
+ VideoRow* _tmp50_ = NULL;
+ sqlite3_stmt* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+ Rating _tmp53_ = 0;
+ VideoRow* _tmp54_ = NULL;
+ sqlite3_stmt* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ VideoRow* _tmp58_ = NULL;
+ sqlite3_stmt* _tmp59_ = NULL;
+ const gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ VideoRow* _tmp62_ = NULL;
+ sqlite3_stmt* _tmp63_ = NULL;
+ gint64 _tmp64_ = 0LL;
+ VideoRow* _tmp65_ = NULL;
+ sqlite3_stmt* _tmp66_ = NULL;
+ gint64 _tmp67_ = 0LL;
+ VideoRow* _tmp68_ = NULL;
+ sqlite3_stmt* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ GeeArrayList* _tmp72_ = NULL;
+ VideoRow* _tmp73_ = NULL;
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = stmt;
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = sqlite3_step (_tmp5_);
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp6_;
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = res;
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (!(_tmp7_ == SQLITE_ROW)) {
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ break;
+#line 1746 "VideoTable.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = video_row_new ();
+#line 239 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ row = _tmp8_;
+#line 240 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = row;
+#line 240 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = stmt;
+#line 240 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = sqlite3_column_int64 (_tmp10_, 0);
+#line 240 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_->video_id.id = _tmp11_;
+#line 241 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = row;
+#line 241 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = stmt;
+#line 241 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = sqlite3_column_text (_tmp13_, 1);
+#line 241 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 241 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp12_->filepath);
+#line 241 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_->filepath = _tmp15_;
+#line 242 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp16_ = row;
+#line 242 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp17_ = stmt;
+#line 242 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp18_ = sqlite3_column_int (_tmp17_, 2);
+#line 242 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp16_->width = _tmp18_;
+#line 243 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp19_ = row;
+#line 243 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp20_ = stmt;
+#line 243 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp21_ = sqlite3_column_int (_tmp20_, 3);
+#line 243 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp19_->height = _tmp21_;
+#line 244 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp22_ = row;
+#line 244 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp23_ = stmt;
+#line 244 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp24_ = sqlite3_column_double (_tmp23_, 4);
+#line 244 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp22_->clip_duration = _tmp24_;
+#line 245 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp25_ = row;
+#line 245 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp26_ = stmt;
+#line 245 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp27_ = sqlite3_column_int (_tmp26_, 5);
+#line 245 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp25_->is_interpretable = _tmp27_ == 1;
+#line 246 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp28_ = row;
+#line 246 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp29_ = stmt;
+#line 246 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp30_ = sqlite3_column_int64 (_tmp29_, 6);
+#line 246 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp28_->filesize = _tmp30_;
+#line 247 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp31_ = row;
+#line 247 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp32_ = stmt;
+#line 247 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp33_ = sqlite3_column_int64 (_tmp32_, 7);
+#line 247 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp31_->timestamp = (time_t) _tmp33_;
+#line 248 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp34_ = row;
+#line 248 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp35_ = stmt;
+#line 248 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp36_ = sqlite3_column_int64 (_tmp35_, 8);
+#line 248 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp34_->exposure_time = (time_t) _tmp36_;
+#line 249 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp37_ = row;
+#line 249 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp38_ = stmt;
+#line 249 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp39_ = sqlite3_column_int64 (_tmp38_, 9);
+#line 249 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp37_->import_id.id = _tmp39_;
+#line 250 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp40_ = row;
+#line 250 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp41_ = stmt;
+#line 250 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp42_ = sqlite3_column_int64 (_tmp41_, 10);
+#line 250 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp40_->event_id.id = _tmp42_;
+#line 251 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp43_ = row;
+#line 251 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp44_ = stmt;
+#line 251 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp45_ = sqlite3_column_text (_tmp44_, 11);
+#line 251 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp46_ = g_strdup (_tmp45_);
+#line 251 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp43_->md5);
+#line 251 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp43_->md5 = _tmp46_;
+#line 252 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp47_ = row;
+#line 252 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp48_ = stmt;
+#line 252 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp49_ = sqlite3_column_int64 (_tmp48_, 12);
+#line 252 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp47_->time_created = (time_t) _tmp49_;
+#line 253 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp50_ = row;
+#line 253 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp51_ = stmt;
+#line 253 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp52_ = sqlite3_column_int (_tmp51_, 13);
+#line 253 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp53_ = rating_unserialize (_tmp52_);
+#line 253 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp50_->rating = _tmp53_;
+#line 254 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp54_ = row;
+#line 254 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp55_ = stmt;
+#line 254 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp56_ = sqlite3_column_text (_tmp55_, 14);
+#line 254 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp57_ = g_strdup (_tmp56_);
+#line 254 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp54_->title);
+#line 254 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp54_->title = _tmp57_;
+#line 255 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp58_ = row;
+#line 255 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp59_ = stmt;
+#line 255 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp60_ = sqlite3_column_text (_tmp59_, 15);
+#line 255 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp61_ = g_strdup (_tmp60_);
+#line 255 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp58_->backlinks);
+#line 255 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp58_->backlinks = _tmp61_;
+#line 256 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp62_ = row;
+#line 256 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp63_ = stmt;
+#line 256 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp64_ = sqlite3_column_int64 (_tmp63_, 16);
+#line 256 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp62_->time_reimported = (time_t) _tmp64_;
+#line 257 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp65_ = row;
+#line 257 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp66_ = stmt;
+#line 257 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp67_ = sqlite3_column_int64 (_tmp66_, 17);
+#line 257 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp65_->flags = (guint64) _tmp67_;
+#line 258 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp68_ = row;
+#line 258 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp69_ = stmt;
+#line 258 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp70_ = sqlite3_column_text (_tmp69_, 18);
+#line 258 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp71_ = g_strdup (_tmp70_);
+#line 258 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp68_->comment);
+#line 258 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp68_->comment = _tmp71_;
+#line 260 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp72_ = all;
+#line 260 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp73_ = row;
+#line 260 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp73_);
+#line 238 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _video_row_unref0 (row);
+#line 1934 "VideoTable.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = all;
+#line 263 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 263 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 1942 "VideoTable.c"
+}
+
+
+void video_table_set_filepath (VideoTable* self, VideoID* video_id, const gchar* filepath, GError** error) {
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 266 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 266 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 266 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (filepath != NULL);
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = *video_id;
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = filepath;
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "filename", _tmp2_, &_inner_error_);
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 1973 "VideoTable.c"
+ } else {
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 267 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 1981 "VideoTable.c"
+ }
+ }
+}
+
+
+void video_table_set_title (VideoTable* self, VideoID* video_id, const gchar* new_title, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ VideoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 270 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = new_title;
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 2001 "VideoTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = new_title;
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = _tmp2_;
+#line 2007 "VideoTable.c"
+ } else {
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = "";
+#line 2011 "VideoTable.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = *video_id;
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "title", _tmp0_, &_inner_error_);
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2027 "VideoTable.c"
+ } else {
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 271 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2035 "VideoTable.c"
+ }
+ }
+}
+
+
+void video_table_set_comment (VideoTable* self, VideoID* video_id, const gchar* new_comment, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ VideoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 274 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = new_comment;
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 2055 "VideoTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = new_comment;
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = _tmp2_;
+#line 2061 "VideoTable.c"
+ } else {
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = "";
+#line 2065 "VideoTable.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = *video_id;
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "comment", _tmp0_, &_inner_error_);
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2081 "VideoTable.c"
+ } else {
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 275 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2089 "VideoTable.c"
+ }
+ }
+}
+
+
+void video_table_set_exposure_time (VideoTable* self, VideoID* video_id, time_t time, GError** error) {
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ time_t _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 278 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = *video_id;
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = time;
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "exposure_time", (gint64) _tmp2_, &_inner_error_);
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2120 "VideoTable.c"
+ } else {
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 279 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2128 "VideoTable.c"
+ }
+ }
+}
+
+
+void video_table_set_rating (VideoTable* self, VideoID* video_id, Rating rating, GError** error) {
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ Rating _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GError * _inner_error_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 282 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = *video_id;
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = rating;
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = rating_serialize (_tmp2_);
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "rating", (gint64) _tmp3_, &_inner_error_);
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2162 "VideoTable.c"
+ } else {
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 283 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2170 "VideoTable.c"
+ }
+ }
+}
+
+
+void video_table_set_flags (VideoTable* self, VideoID* video_id, guint64 flags, GError** error) {
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ guint64 _tmp2_ = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 286 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = *video_id;
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = flags;
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "flags", (gint64) _tmp2_, &_inner_error_);
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2201 "VideoTable.c"
+ } else {
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 287 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2209 "VideoTable.c"
+ }
+ }
+}
+
+
+void video_table_update_backlinks (VideoTable* self, VideoID* video_id, const gchar* backlinks, GError** error) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ VideoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 290 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 290 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = backlinks;
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 2229 "VideoTable.c"
+ const gchar* _tmp2_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = backlinks;
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = _tmp2_;
+#line 2235 "VideoTable.c"
+ } else {
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = "";
+#line 2239 "VideoTable.c"
+ }
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = *video_id;
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = _tmp3_.id;
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_text_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp4_, "backlinks", _tmp0_, &_inner_error_);
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2255 "VideoTable.c"
+ } else {
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 291 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2263 "VideoTable.c"
+ }
+ }
+}
+
+
+void video_table_update_is_interpretable (VideoTable* self, VideoID* video_id, gboolean is_interpretable, GError** error) {
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ VideoID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+ GError * _inner_error_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 294 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = is_interpretable;
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp1_) {
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = 1;
+#line 2285 "VideoTable.c"
+ } else {
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = 0;
+#line 2289 "VideoTable.c"
+ }
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = *video_id;
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = _tmp2_.id;
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_int_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp3_, "is_interpretable", _tmp0_, &_inner_error_);
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2305 "VideoTable.c"
+ } else {
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 295 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2313 "VideoTable.c"
+ }
+ }
+}
+
+
+gboolean video_table_set_event (VideoTable* self, VideoID* video_id, EventID* event_id) {
+ gboolean result = FALSE;
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ EventID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+ gboolean _tmp4_ = FALSE;
+#line 298 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), FALSE);
+#line 298 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (video_id != NULL, FALSE);
+#line 298 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (event_id != NULL, FALSE);
+#line 299 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = *video_id;
+#line 299 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 299 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = *event_id;
+#line 299 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = _tmp2_.id;
+#line 299 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = database_table_update_int64_by_id (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "event_id", _tmp3_);
+#line 299 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp4_;
+#line 299 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 2346 "VideoTable.c"
+}
+
+
+void video_table_remove_by_file (VideoTable* self, GFile* file, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GDestroyNotify _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ GError * _inner_error_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 302 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 304 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 304 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "DELETE FROM VideoTable WHERE filename=?", -1, &_tmp1_, NULL);
+#line 304 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 304 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 304 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 305 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 305 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 307 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 307 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = file;
+#line 307 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 307 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = g_free;
+#line 307 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = sqlite3_bind_text (_tmp4_, 1, _tmp6_, -1, _tmp7_);
+#line 307 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp8_;
+#line 308 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = res;
+#line 308 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 310 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = stmt;
+#line 310 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = sqlite3_step (_tmp10_);
+#line 310 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp11_;
+#line 311 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = res;
+#line 311 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp12_ != SQLITE_DONE) {
+#line 2411 "VideoTable.c"
+ gint _tmp13_ = 0;
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = res;
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_throw_error ("VideoTable.remove_by_file", _tmp13_, &_inner_error_);
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2427 "VideoTable.c"
+ } else {
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 312 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2437 "VideoTable.c"
+ }
+ }
+ }
+#line 302 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 2443 "VideoTable.c"
+}
+
+
+void video_table_remove (VideoTable* self, VideoID* videoID, GError** error) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ VideoID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ sqlite3_stmt* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GError * _inner_error_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 315 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (videoID != NULL);
+#line 317 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 317 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "DELETE FROM VideoTable WHERE id=?", -1, &_tmp1_, NULL);
+#line 317 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 317 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 317 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 318 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 318 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 320 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 320 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = *videoID;
+#line 320 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 320 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 320 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp7_;
+#line 321 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = res;
+#line 321 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 323 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = stmt;
+#line 323 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = sqlite3_step (_tmp9_);
+#line 323 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp10_;
+#line 324 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = res;
+#line 324 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp11_ != SQLITE_DONE) {
+#line 2505 "VideoTable.c"
+ gint _tmp12_ = 0;
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = res;
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_throw_error ("VideoTable.remove", _tmp12_, &_inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2521 "VideoTable.c"
+ } else {
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 325 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2531 "VideoTable.c"
+ }
+ }
+ }
+#line 315 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 2537 "VideoTable.c"
+}
+
+
+gboolean video_table_is_video_stored (VideoTable* self, GFile* file) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ VideoID _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 328 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), FALSE);
+#line 328 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 329 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = file;
+#line 329 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_table_get_id (self, _tmp0_, &_tmp1_);
+#line 329 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = video_id_is_valid (&_tmp1_);
+#line 329 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp2_;
+#line 329 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 2560 "VideoTable.c"
+}
+
+
+void video_table_get_id (VideoTable* self, GFile* file, VideoID* result) {
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GDestroyNotify _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ sqlite3_stmt* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ VideoID _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 332 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 332 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 334 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 334 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT ID FROM VideoTable WHERE filename=?", -1, &_tmp1_, NULL);
+#line 334 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 334 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 334 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 335 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 335 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 337 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 337 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = file;
+#line 337 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 337 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = g_free;
+#line 337 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = sqlite3_bind_text (_tmp4_, 1, _tmp6_, -1, _tmp7_);
+#line 337 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp8_;
+#line 338 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = res;
+#line 338 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp9_ == SQLITE_OK, "res == Sqlite.OK");
+#line 340 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = stmt;
+#line 340 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = sqlite3_step (_tmp10_);
+#line 340 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp11_;
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = res;
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp13_ == SQLITE_ROW) {
+#line 2625 "VideoTable.c"
+ sqlite3_stmt* _tmp14_ = NULL;
+ gint64 _tmp15_ = 0LL;
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = stmt;
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp15_ = sqlite3_column_int64 (_tmp14_, 0);
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_id_init (&_tmp12_, _tmp15_);
+#line 2634 "VideoTable.c"
+ } else {
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_id_init (&_tmp12_, VIDEO_ID_INVALID);
+#line 2638 "VideoTable.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *result = _tmp12_;
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 342 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 2646 "VideoTable.c"
+}
+
+
+GeeArrayList* video_table_get_videos (VideoTable* self, GError** error) {
+ GeeArrayList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GeeArrayList* video_ids = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 345 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), NULL);
+#line 347 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 347 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id FROM VideoTable", -1, &_tmp1_, NULL);
+#line 347 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 347 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 347 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 348 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 348 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 350 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = gee_array_list_new (TYPE_VIDEO_ID, (GBoxedCopyFunc) video_id_dup, video_id_free, NULL, NULL, NULL);
+#line 350 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_ids = _tmp4_;
+#line 2681 "VideoTable.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 351 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = TRUE;
+#line 351 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ while (TRUE) {
+#line 2688 "VideoTable.c"
+ sqlite3_stmt* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GeeArrayList* _tmp11_ = NULL;
+ sqlite3_stmt* _tmp12_ = NULL;
+ gint64 _tmp13_ = 0LL;
+ VideoID _tmp14_ = {0};
+#line 351 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (!_tmp5_) {
+#line 2698 "VideoTable.c"
+ }
+#line 351 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = FALSE;
+#line 352 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = stmt;
+#line 352 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = sqlite3_step (_tmp6_);
+#line 352 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp7_;
+#line 353 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = res;
+#line 353 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp8_ == SQLITE_DONE) {
+#line 354 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ break;
+#line 2714 "VideoTable.c"
+ } else {
+ gint _tmp9_ = 0;
+#line 355 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = res;
+#line 355 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp9_ != SQLITE_ROW) {
+#line 2721 "VideoTable.c"
+ gint _tmp10_ = 0;
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = res;
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_throw_error ("VideoTable.get_videos", _tmp10_, &_inner_error_);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_object_unref0 (video_ids);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return NULL;
+#line 2739 "VideoTable.c"
+ } else {
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_object_unref0 (video_ids);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 356 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return NULL;
+#line 2751 "VideoTable.c"
+ }
+ }
+ }
+ }
+#line 359 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = video_ids;
+#line 359 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = stmt;
+#line 359 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = sqlite3_column_int64 (_tmp12_, 0);
+#line 359 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_id_init (&_tmp14_, _tmp13_);
+#line 359 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), &_tmp14_);
+#line 2766 "VideoTable.c"
+ }
+ }
+#line 362 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = video_ids;
+#line 362 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 362 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 2775 "VideoTable.c"
+}
+
+
+static sqlite3_stmt* video_table_get_duplicate_stmt (VideoTable* self, GFile* file, const gchar* md5) {
+ sqlite3_stmt* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ gchar* sql = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean first = FALSE;
+ GFile* _tmp4_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ sqlite3_stmt* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint col = 0;
+ GFile* _tmp18_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), NULL);
+#line 365 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 366 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = file;
+#line 366 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp1_ != NULL) {
+#line 366 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = TRUE;
+#line 2808 "VideoTable.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 366 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = md5;
+#line 366 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = _tmp2_ != NULL;
+#line 2815 "VideoTable.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp0_, "file != null || md5 != null");
+#line 368 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = g_strdup ("SELECT id FROM VideoTable WHERE");
+#line 368 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ sql = _tmp3_;
+#line 369 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ first = TRUE;
+#line 371 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = file;
+#line 371 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp4_ != NULL) {
+#line 2829 "VideoTable.c"
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = sql;
+#line 372 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = g_strconcat (_tmp5_, " filename=?", NULL);
+#line 372 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (sql);
+#line 372 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ sql = _tmp6_;
+#line 373 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ first = FALSE;
+#line 2842 "VideoTable.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = md5;
+#line 376 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp7_ != NULL) {
+#line 2848 "VideoTable.c"
+ gboolean _tmp8_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = first;
+#line 377 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (!_tmp8_) {
+#line 2856 "VideoTable.c"
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 378 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = sql;
+#line 378 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = g_strconcat (_tmp9_, " OR ", NULL);
+#line 378 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (sql);
+#line 378 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ sql = _tmp10_;
+#line 2867 "VideoTable.c"
+ }
+#line 380 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = sql;
+#line 380 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = g_strconcat (_tmp11_, " md5=?", NULL);
+#line 380 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (sql);
+#line 380 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ sql = _tmp12_;
+#line 2877 "VideoTable.c"
+ }
+#line 384 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = database_table_db;
+#line 384 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = sql;
+#line 384 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp16_ = sqlite3_prepare_v2 (_tmp13_, _tmp14_, -1, &_tmp15_, NULL);
+#line 384 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 384 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp15_;
+#line 384 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp16_;
+#line 385 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp17_ = res;
+#line 385 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp17_ == SQLITE_OK, "res == Sqlite.OK");
+#line 387 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ col = 1;
+#line 389 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp18_ = file;
+#line 389 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp18_ != NULL) {
+#line 2901 "VideoTable.c"
+ sqlite3_stmt* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ GFile* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ GDestroyNotify _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp19_ = stmt;
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp20_ = col;
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ col = _tmp20_ + 1;
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp21_ = file;
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp22_ = g_file_get_path (_tmp21_);
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp23_ = g_free;
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp24_ = sqlite3_bind_text (_tmp19_, _tmp20_, _tmp22_, -1, _tmp23_);
+#line 390 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp24_;
+#line 391 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp25_ = res;
+#line 391 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp25_ == SQLITE_OK, "res == Sqlite.OK");
+#line 2929 "VideoTable.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp26_ = md5;
+#line 394 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp26_ != NULL) {
+#line 2935 "VideoTable.c"
+ sqlite3_stmt* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ GDestroyNotify _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp27_ = stmt;
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp28_ = col;
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ col = _tmp28_ + 1;
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp29_ = md5;
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp31_ = g_free;
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp32_ = sqlite3_bind_text (_tmp27_, _tmp28_, _tmp30_, -1, _tmp31_);
+#line 395 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp32_;
+#line 396 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp33_ = res;
+#line 396 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp33_ == SQLITE_OK, "res == Sqlite.OK");
+#line 2963 "VideoTable.c"
+ }
+#line 399 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = stmt;
+#line 399 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (sql);
+#line 399 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 2971 "VideoTable.c"
+}
+
+
+gboolean video_table_has_duplicate (VideoTable* self, GFile* file, const gchar* md5) {
+ gboolean result = FALSE;
+ sqlite3_stmt* stmt = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ gint res = 0;
+ sqlite3_stmt* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 402 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), FALSE);
+#line 402 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), FALSE);
+#line 403 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = file;
+#line 403 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = md5;
+#line 403 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = video_table_get_duplicate_stmt (self, _tmp0_, _tmp1_);
+#line 403 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp2_;
+#line 404 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = stmt;
+#line 404 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = sqlite3_step (_tmp3_);
+#line 404 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp4_;
+#line 406 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = res;
+#line 406 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp5_ == SQLITE_DONE) {
+#line 408 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = FALSE;
+#line 408 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 408 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 3013 "VideoTable.c"
+ } else {
+ gint _tmp6_ = 0;
+#line 409 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = res;
+#line 409 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp6_ == SQLITE_ROW) {
+#line 411 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = TRUE;
+#line 411 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 411 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 3026 "VideoTable.c"
+ } else {
+ gint _tmp7_ = 0;
+#line 413 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = res;
+#line 413 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_fatal ("VideoTable.has_duplicate", _tmp7_);
+#line 3033 "VideoTable.c"
+ }
+ }
+#line 416 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = FALSE;
+#line 416 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 416 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 3042 "VideoTable.c"
+}
+
+
+static void _vala_array_add3 (VideoID** array, int* length, int* size, const VideoID* value) {
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if ((*length) == (*size)) {
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *array = g_renew (VideoID, *array, *size);
+#line 3053 "VideoTable.c"
+ }
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ (*array)[(*length)++] = *value;
+#line 3057 "VideoTable.c"
+}
+
+
+VideoID* video_table_get_duplicate_ids (VideoTable* self, GFile* file, const gchar* md5, int* result_length1) {
+ VideoID* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ sqlite3_stmt* _tmp2_ = NULL;
+ VideoID* ids = NULL;
+ VideoID* _tmp3_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ gint res = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ VideoID* _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+#line 419 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), NULL);
+#line 419 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), NULL);
+#line 420 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = file;
+#line 420 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = md5;
+#line 420 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = video_table_get_duplicate_stmt (self, _tmp0_, _tmp1_);
+#line 420 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp2_;
+#line 422 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = g_new0 (VideoID, 0);
+#line 422 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ ids = _tmp3_;
+#line 422 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ ids_length1 = 0;
+#line 422 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _ids_size_ = ids_length1;
+#line 424 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 424 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = sqlite3_step (_tmp4_);
+#line 424 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp5_;
+#line 425 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ while (TRUE) {
+#line 3104 "VideoTable.c"
+ gint _tmp6_ = 0;
+ VideoID* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ sqlite3_stmt* _tmp8_ = NULL;
+ gint64 _tmp9_ = 0LL;
+ VideoID _tmp10_ = {0};
+ sqlite3_stmt* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+#line 425 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = res;
+#line 425 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (!(_tmp6_ == SQLITE_ROW)) {
+#line 425 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ break;
+#line 3119 "VideoTable.c"
+ }
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = ids;
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7__length1 = ids_length1;
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = stmt;
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = sqlite3_column_int64 (_tmp8_, 0);
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_id_init (&_tmp10_, _tmp9_);
+#line 426 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_array_add3 (&ids, &ids_length1, &_ids_size_, &_tmp10_);
+#line 427 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = stmt;
+#line 427 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = sqlite3_step (_tmp11_);
+#line 427 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp12_;
+#line 3139 "VideoTable.c"
+ }
+#line 430 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = ids;
+#line 430 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13__length1 = ids_length1;
+#line 430 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (result_length1) {
+#line 430 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ *result_length1 = _tmp13__length1;
+#line 3149 "VideoTable.c"
+ }
+#line 430 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _tmp13_;
+#line 430 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 430 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 3157 "VideoTable.c"
+}
+
+
+GeeArrayList* video_table_get_event_source_ids (VideoTable* self, EventID* event_id) {
+ GeeArrayList* result = NULL;
+ sqlite3_stmt* stmt = NULL;
+ gint res = 0;
+ sqlite3* _tmp0_ = NULL;
+ sqlite3_stmt* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ sqlite3_stmt* _tmp4_ = NULL;
+ EventID _tmp5_ = {0};
+ gint64 _tmp6_ = 0LL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GeeArrayList* _result_ = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+#line 433 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (IS_VIDEO_TABLE (self), NULL);
+#line 433 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_val_if_fail (event_id != NULL, NULL);
+#line 435 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = database_table_db;
+#line 435 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = sqlite3_prepare_v2 (_tmp0_, "SELECT id FROM VideoTable WHERE event_id = ?", -1, &_tmp1_, NULL);
+#line 435 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 435 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ stmt = _tmp1_;
+#line 435 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp2_;
+#line 436 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp3_ = res;
+#line 436 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp3_ == SQLITE_OK, "res == Sqlite.OK");
+#line 438 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp4_ = stmt;
+#line 438 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp5_ = *event_id;
+#line 438 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp6_ = _tmp5_.id;
+#line 438 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp7_ = sqlite3_bind_int64 (_tmp4_, 1, _tmp6_);
+#line 438 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp7_;
+#line 439 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp8_ = res;
+#line 439 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _vala_assert (_tmp8_ == SQLITE_OK, "res == Sqlite.OK");
+#line 441 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp9_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 441 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _result_ = _tmp9_;
+#line 3212 "VideoTable.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 442 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = TRUE;
+#line 442 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ while (TRUE) {
+#line 3219 "VideoTable.c"
+ sqlite3_stmt* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GeeArrayList* _tmp16_ = NULL;
+ sqlite3_stmt* _tmp17_ = NULL;
+ gint64 _tmp18_ = 0LL;
+ VideoID _tmp19_ = {0};
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 442 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (!_tmp10_) {
+#line 3231 "VideoTable.c"
+ }
+#line 442 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp10_ = FALSE;
+#line 443 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp11_ = stmt;
+#line 443 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp12_ = sqlite3_step (_tmp11_);
+#line 443 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ res = _tmp12_;
+#line 444 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp13_ = res;
+#line 444 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp13_ == SQLITE_DONE) {
+#line 445 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ break;
+#line 3247 "VideoTable.c"
+ } else {
+ gint _tmp14_ = 0;
+#line 446 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp14_ = res;
+#line 446 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_tmp14_ != SQLITE_ROW) {
+#line 3254 "VideoTable.c"
+ gint _tmp15_ = 0;
+#line 447 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp15_ = res;
+#line 447 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_fatal ("get_event_source_ids", _tmp15_);
+#line 449 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ break;
+#line 3262 "VideoTable.c"
+ }
+ }
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp16_ = _result_;
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp17_ = stmt;
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp18_ = sqlite3_column_int64 (_tmp17_, 0);
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_id_init (&_tmp19_, _tmp18_);
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp20_ = video_id_upgrade_video_id_to_source_id (&_tmp19_);
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp21_ = _tmp20_;
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp21_);
+#line 452 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _g_free0 (_tmp21_);
+#line 3281 "VideoTable.c"
+ }
+ }
+#line 455 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ result = _result_;
+#line 455 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _sqlite3_finalize0 (stmt);
+#line 455 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return result;
+#line 3290 "VideoTable.c"
+}
+
+
+void video_table_set_timestamp (VideoTable* self, VideoID* video_id, time_t timestamp, GError** error) {
+ VideoID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+ time_t _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (IS_VIDEO_TABLE (self));
+#line 458 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_return_if_fail (video_id != NULL);
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp0_ = *video_id;
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp1_ = _tmp0_.id;
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ _tmp2_ = timestamp;
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ database_table_update_int64_by_id_2 (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_TABLE, DatabaseTable), _tmp1_, "timestamp", (gint64) _tmp2_, &_inner_error_);
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_propagate_error (error, _inner_error_);
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 3319 "VideoTable.c"
+ } else {
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ g_clear_error (&_inner_error_);
+#line 459 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ return;
+#line 3327 "VideoTable.c"
+ }
+ }
+}
+
+
+static void video_table_class_init (VideoTableClass * klass) {
+#line 59 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ video_table_parent_class = g_type_class_peek_parent (klass);
+#line 59 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ ((DatabaseTableClass *) klass)->finalize = video_table_finalize;
+#line 3338 "VideoTable.c"
+}
+
+
+static void video_table_instance_init (VideoTable * self) {
+}
+
+
+static void video_table_finalize (DatabaseTable* obj) {
+ VideoTable * self;
+#line 59 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_VIDEO_TABLE, VideoTable);
+#line 59 "/home/jens/Source/shotwell/src/db/VideoTable.vala"
+ DATABASE_TABLE_CLASS (video_table_parent_class)->finalize (obj);
+#line 3352 "VideoTable.c"
+}
+
+
+GType video_table_get_type (void) {
+ static volatile gsize video_table_type_id__volatile = 0;
+ if (g_once_init_enter (&video_table_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (VideoTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) video_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VideoTable), 0, (GInstanceInitFunc) video_table_instance_init, NULL };
+ GType video_table_type_id;
+ video_table_type_id = g_type_register_static (TYPE_DATABASE_TABLE, "VideoTable", &g_define_type_info, 0);
+ g_once_init_leave (&video_table_type_id__volatile, video_table_type_id);
+ }
+ return video_table_type_id__volatile;
+}
+
+
+
diff --git a/src/db/mk/db.mk b/src/db/mk/db.mk
deleted file mode 100644
index 421961a..0000000
--- a/src/db/mk/db.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Db
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := db
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- DatabaseTable.vala \
- PhotoTable.vala \
- EventTable.vala \
- TagTable.vala \
- TombstoneTable.vala \
- VideoTable.vala \
- VersionTable.vala \
- SavedSearchDBTable.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/direct/Direct.c b/src/direct/Direct.c
new file mode 100644
index 0000000..2e1bfa4
--- /dev/null
+++ b/src/direct/Direct.c
@@ -0,0 +1,85 @@
+/* Direct.c generated by valac 0.32.1, the Vala compiler
+ * generated from Direct.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* This file is the master unit file for the Direct unit. It should be edited to include
+ * whatever code is deemed necessary.
+ *
+ * The init() and terminate() methods are mandatory.
+ *
+ * If the unit needs to be configured prior to initialization, add the proper parameters to
+ * the preconfigure() method, implement it, and ensure in init() that it's been called.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+
+extern GFile* direct_initial_file;
+GFile* direct_initial_file = NULL;
+
+void direct_preconfigure (GFile* initial_file);
+void direct_init (GError** error);
+void direct_photo_init (GFile* initial_file);
+void direct_terminate (void);
+void direct_photo_terminate (void);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 43 "Direct.c"
+}
+
+
+void direct_preconfigure (GFile* initial_file) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ g_return_if_fail (G_IS_FILE (initial_file));
+#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ _tmp0_ = initial_file;
+#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ _g_object_unref0 (direct_initial_file);
+#line 21 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ direct_initial_file = _tmp1_;
+#line 60 "Direct.c"
+}
+
+
+void direct_init (GError** error) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ _tmp0_ = direct_initial_file;
+#line 25 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ _vala_assert (_tmp0_ != NULL, "initial_file != null");
+#line 27 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ _tmp1_ = direct_initial_file;
+#line 27 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ direct_photo_init (_tmp1_);
+#line 75 "Direct.c"
+}
+
+
+void direct_terminate (void) {
+#line 31 "/home/jens/Source/shotwell/src/direct/Direct.vala"
+ direct_photo_terminate ();
+#line 82 "Direct.c"
+}
+
+
+
diff --git a/src/direct/DirectPhoto.c b/src/direct/DirectPhoto.c
new file mode 100644
index 0000000..97ebcd5
--- /dev/null
+++ b/src/direct/DirectPhoto.c
@@ -0,0 +1,2829 @@
+/* DirectPhoto.c generated by valac 0.32.1, the Vala compiler
+ * generated from DirectPhoto.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <time.h>
+#include <gee.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+typedef struct _ThumbnailSourcePrivate ThumbnailSourcePrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _MediaSourcePrivate MediaSourcePrivate;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+#define TYPE_BACKING_FILE_STATE (backing_file_state_get_type ())
+#define BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_FILE_STATE, BackingFileState))
+#define BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+#define IS_BACKING_FILE_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_FILE_STATE))
+#define IS_BACKING_FILE_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_FILE_STATE))
+#define BACKING_FILE_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_FILE_STATE, BackingFileStateClass))
+
+typedef struct _BackingFileState BackingFileState;
+typedef struct _BackingFileStateClass BackingFileStateClass;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+typedef struct _PhotoSourcePrivate PhotoSourcePrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_DATEABLE (dateable_get_type ())
+#define DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATEABLE, Dateable))
+#define IS_DATEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATEABLE))
+#define DATEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_DATEABLE, DateableIface))
+
+typedef struct _Dateable Dateable;
+typedef struct _DateableIface DateableIface;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+typedef struct _PhotoPrivate PhotoPrivate;
+
+#define TYPE_ROTATION (rotation_get_type ())
+
+#define TYPE_PHOTO_ROW (photo_row_get_type ())
+#define PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_ROW, PhotoRow))
+#define PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_ROW, PhotoRowClass))
+#define IS_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_ROW))
+#define IS_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_ROW))
+#define PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_ROW, PhotoRowClass))
+
+typedef struct _PhotoRow PhotoRow;
+typedef struct _PhotoRowClass PhotoRowClass;
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+
+#define TYPE_DIRECT_PHOTO (direct_photo_get_type ())
+#define DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO, DirectPhoto))
+#define DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO, DirectPhotoClass))
+#define IS_DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO))
+#define IS_DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO))
+#define DIRECT_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO, DirectPhotoClass))
+
+typedef struct _DirectPhoto DirectPhoto;
+typedef struct _DirectPhotoClass DirectPhotoClass;
+typedef struct _DirectPhotoPrivate DirectPhotoPrivate;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_DIRECT_PHOTO_SOURCE_COLLECTION (direct_photo_source_collection_get_type ())
+#define DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection))
+#define DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))
+#define IS_DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
+#define IS_DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
+#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))
+
+typedef struct _DirectPhotoSourceCollection DirectPhotoSourceCollection;
+typedef struct _DirectPhotoSourceCollectionClass DirectPhotoSourceCollectionClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+typedef struct _PhotoRowPrivate PhotoRowPrivate;
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+
+#define TYPE_KEY_VALUE_MAP (key_value_map_get_type ())
+#define KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_VALUE_MAP, KeyValueMap))
+#define KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+#define IS_KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_VALUE_MAP))
+#define IS_KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_VALUE_MAP))
+#define KEY_VALUE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+
+typedef struct _KeyValueMap KeyValueMap;
+typedef struct _KeyValueMapClass KeyValueMapClass;
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+
+#define PHOTO_TYPE_REIMPORT_MASTER_STATE (photo_reimport_master_state_get_type ())
+#define PHOTO_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterState))
+#define PHOTO_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+#define PHOTO_IS_REIMPORT_MASTER_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_IS_REIMPORT_MASTER_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_TYPE_REIMPORT_MASTER_STATE))
+#define PHOTO_REIMPORT_MASTER_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_TYPE_REIMPORT_MASTER_STATE, PhotoReimportMasterStateClass))
+
+typedef struct _PhotoReimportMasterState PhotoReimportMasterState;
+typedef struct _PhotoReimportMasterStateClass PhotoReimportMasterStateClass;
+#define _photo_reimport_master_state_unref0(var) ((var == NULL) ? NULL : (var = (photo_reimport_master_state_unref (var), NULL)))
+
+#define TYPE_PHOTO_IMPORT_PARAMS (photo_import_params_get_type ())
+#define PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParams))
+#define PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass))
+#define IS_PHOTO_IMPORT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_IMPORT_PARAMS))
+#define IS_PHOTO_IMPORT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_IMPORT_PARAMS))
+#define PHOTO_IMPORT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_IMPORT_PARAMS, PhotoImportParamsClass))
+
+typedef struct _PhotoImportParams PhotoImportParams;
+typedef struct _PhotoImportParamsClass PhotoImportParamsClass;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_PHOTO_TABLE (photo_table_get_type ())
+#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
+#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
+#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
+#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
+#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))
+
+typedef struct _PhotoTable PhotoTable;
+typedef struct _PhotoTableClass PhotoTableClass;
+typedef struct _PhotoImportParamsPrivate PhotoImportParamsPrivate;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_THUMBNAILS (thumbnails_get_type ())
+#define THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAILS, Thumbnails))
+#define THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAILS, ThumbnailsClass))
+#define IS_THUMBNAILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAILS))
+#define IS_THUMBNAILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAILS))
+#define THUMBNAILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAILS, ThumbnailsClass))
+
+typedef struct _Thumbnails Thumbnails;
+typedef struct _ThumbnailsClass ThumbnailsClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _photo_import_params_unref0(var) ((var == NULL) ? NULL : (var = (photo_import_params_unref (var), NULL)))
+
+#define TYPE_PHOTO_PREVIEW (photo_preview_get_type ())
+#define PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_PREVIEW, PhotoPreview))
+#define PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+#define IS_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_PREVIEW))
+#define IS_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_PREVIEW))
+#define PHOTO_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+
+typedef struct _PhotoPreview PhotoPreview;
+typedef struct _PhotoPreviewClass PhotoPreviewClass;
+#define _photo_preview_unref0(var) ((var == NULL) ? NULL : (var = (photo_preview_unref (var), NULL)))
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+typedef struct _SourceCollectionPrivate SourceCollectionPrivate;
+
+#define TYPE_SOURCE_BACKLINK (source_backlink_get_type ())
+#define SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_BACKLINK, SourceBacklink))
+#define SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+#define IS_SOURCE_BACKLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_BACKLINK))
+#define IS_SOURCE_BACKLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_BACKLINK))
+#define SOURCE_BACKLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_BACKLINK, SourceBacklinkClass))
+
+typedef struct _SourceBacklink SourceBacklink;
+typedef struct _SourceBacklinkClass SourceBacklinkClass;
+typedef struct _DatabaseSourceCollectionPrivate DatabaseSourceCollectionPrivate;
+typedef struct _DirectPhotoSourceCollectionPrivate DirectPhotoSourceCollectionPrivate;
+
+#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
+#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
+#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
+#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
+#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+
+typedef struct _DirectoryMonitor DirectoryMonitor;
+typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _ThumbnailSource {
+ DataSource parent_instance;
+ ThumbnailSourcePrivate * priv;
+};
+
+struct _ThumbnailSourceClass {
+ DataSourceClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailSource* self);
+ GdkPixbuf* (*get_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ GdkPixbuf* (*create_thumbnail) (ThumbnailSource* self, gint scale, GError** error);
+ gchar* (*get_representative_id) (ThumbnailSource* self);
+ PhotoFileFormat (*get_preferred_thumbnail_format) (ThumbnailSource* self);
+ void (*thumbnail_altered) (ThumbnailSource* self);
+};
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _MediaSource {
+ ThumbnailSource parent_instance;
+ MediaSourcePrivate * priv;
+};
+
+struct _MediaSourceClass {
+ ThumbnailSourceClass parent_class;
+ void (*notify_master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+ gboolean (*set_event_id) (MediaSource* self, EventID* id);
+ gchar* (*get_basename) (MediaSource* self);
+ GFile* (*get_file) (MediaSource* self);
+ GFile* (*get_master_file) (MediaSource* self);
+ guint64 (*get_master_filesize) (MediaSource* self);
+ guint64 (*get_filesize) (MediaSource* self);
+ time_t (*get_timestamp) (MediaSource* self);
+ BackingFileState** (*get_backing_files_state) (MediaSource* self, int* result_length1);
+ gchar* (*get_title) (MediaSource* self);
+ gchar* (*get_comment) (MediaSource* self);
+ void (*set_title) (MediaSource* self, const gchar* title);
+ gboolean (*set_comment) (MediaSource* self, const gchar* comment);
+ Rating (*get_rating) (MediaSource* self);
+ void (*set_rating) (MediaSource* self, Rating rating);
+ void (*increase_rating) (MediaSource* self);
+ void (*decrease_rating) (MediaSource* self);
+ void (*get_dimensions) (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+ GdkPixbuf* (*get_preview_pixbuf) (MediaSource* self, Scaling* scaling, GError** error);
+ gboolean (*is_trashed) (MediaSource* self);
+ void (*trash) (MediaSource* self);
+ void (*untrash) (MediaSource* self);
+ gboolean (*is_offline) (MediaSource* self);
+ void (*mark_offline) (MediaSource* self);
+ void (*mark_online) (MediaSource* self);
+ gchar* (*get_master_md5) (MediaSource* self);
+ void (*get_event_id) (MediaSource* self, EventID* result);
+ time_t (*get_exposure_time) (MediaSource* self);
+ void (*get_import_id) (MediaSource* self, ImportID* result);
+ void (*master_replaced) (MediaSource* self, GFile* old_file, GFile* new_file);
+};
+
+struct _PhotoSource {
+ MediaSource parent_instance;
+ PhotoSourcePrivate * priv;
+};
+
+struct _PhotoSourceClass {
+ MediaSourceClass parent_class;
+ PhotoMetadata* (*get_metadata) (PhotoSource* self);
+ GdkPixbuf* (*get_pixbuf) (PhotoSource* self, Scaling* scaling, GError** error);
+};
+
+struct _DateableIface {
+ GTypeInterface parent_iface;
+ void (*set_exposure_time) (Dateable* self, time_t target_time);
+ time_t (*get_exposure_time) (Dateable* self);
+};
+
+typedef enum {
+ ROTATION_CLOCKWISE,
+ ROTATION_COUNTERCLOCKWISE,
+ ROTATION_MIRROR,
+ ROTATION_UPSIDE_DOWN
+} Rotation;
+
+struct _Photo {
+ PhotoSource parent_instance;
+ PhotoPrivate * priv;
+ PhotoRow* row;
+ gboolean can_rotate_now;
+ BackingPhotoRow* backing_photo_row;
+};
+
+struct _PhotoClass {
+ PhotoSourceClass parent_class;
+ void (*notify_editable_replaced) (Photo* self, GFile* old_file, GFile* new_file);
+ void (*notify_raw_development_modified) (Photo* self);
+ void (*notify_baseline_replaced) (Photo* self);
+ void (*notify_master_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*notify_editable_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*notify_source_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*notify_baseline_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*apply_user_metadata_for_reimport) (Photo* self, PhotoMetadata* metadata);
+ void (*rotate) (Photo* self, Rotation rotation);
+ gboolean (*has_user_generated_metadata) (Photo* self);
+ void (*set_user_metadata_for_export) (Photo* self, PhotoMetadata* metadata);
+ void (*editable_replaced) (Photo* self, GFile* old_file, GFile* new_file);
+ void (*raw_development_modified) (Photo* self);
+ void (*baseline_replaced) (Photo* self);
+ void (*master_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*editable_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*baseline_reimported) (Photo* self, PhotoMetadata* metadata);
+ void (*source_reimported) (Photo* self, PhotoMetadata* metadata);
+};
+
+struct _DirectPhoto {
+ Photo parent_instance;
+ DirectPhotoPrivate * priv;
+};
+
+struct _DirectPhotoClass {
+ PhotoClass parent_class;
+};
+
+struct _DirectPhotoPrivate {
+ GdkPixbuf* preview;
+ gboolean loaded;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _PhotoID {
+ gint64 id;
+};
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _PhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoRowPrivate * priv;
+ PhotoID photo_id;
+ BackingPhotoRow* master;
+ time_t exposure_time;
+ ImportID import_id;
+ EventID event_id;
+ Orientation orientation;
+ GeeHashMap* transformations;
+ gchar* md5;
+ gchar* thumbnail_md5;
+ gchar* exif_md5;
+ time_t time_created;
+ guint64 flags;
+ Rating rating;
+ gchar* title;
+ gchar* comment;
+ gchar* backlinks;
+ time_t time_reimported;
+ BackingPhotoID editable_id;
+ gboolean metadata_dirty;
+ RawDeveloper developer;
+ BackingPhotoID* development_ids;
+ gint development_ids_length1;
+};
+
+struct _PhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoRow *self);
+};
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+typedef enum {
+ BACKING_FETCH_MODE_SOURCE,
+ BACKING_FETCH_MODE_BASELINE,
+ BACKING_FETCH_MODE_MASTER,
+ BACKING_FETCH_MODE_UNMODIFIED
+} BackingFetchMode;
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoImportParams {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoImportParamsPrivate * priv;
+ GFile* file;
+ GFile* final_associated_file;
+ ImportID import_id;
+ PhotoFileSnifferOptions sniffer_options;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* full_md5;
+ Thumbnails* thumbnails;
+ PhotoRow* row;
+ GeeCollection* keywords;
+};
+
+struct _PhotoImportParamsClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoImportParams *self);
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _SourceCollection {
+ DataCollection parent_instance;
+ SourceCollectionPrivate * priv;
+};
+
+struct _SourceCollectionClass {
+ DataCollectionClass parent_class;
+ gboolean (*holds_type_of_source) (SourceCollection* self, DataSource* source);
+ void (*notify_items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*notify_items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*notify_item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*notify_items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*notify_unlinked_destroyed) (SourceCollection* self, DataSource* unlinked);
+ void (*notify_backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+ gboolean (*has_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*remove_backlink) (SourceCollection* self, SourceBacklink* backlink);
+ void (*items_unlinking) (SourceCollection* self, GeeCollection* unlinking);
+ void (*items_relinked) (SourceCollection* self, GeeCollection* relinked);
+ void (*item_destroyed) (SourceCollection* self, DataSource* source);
+ void (*items_destroyed) (SourceCollection* self, GeeCollection* destroyed);
+ void (*unlinked_destroyed) (SourceCollection* self, DataSource* source);
+ void (*backlink_removed) (SourceCollection* self, SourceBacklink* backlink, GeeCollection* sources);
+};
+
+struct _DatabaseSourceCollection {
+ SourceCollection parent_instance;
+ DatabaseSourceCollectionPrivate * priv;
+};
+
+struct _DatabaseSourceCollectionClass {
+ SourceCollectionClass parent_class;
+};
+
+struct _DirectPhotoSourceCollection {
+ DatabaseSourceCollection parent_instance;
+ DirectPhotoSourceCollectionPrivate * priv;
+};
+
+struct _DirectPhotoSourceCollectionClass {
+ DatabaseSourceCollectionClass parent_class;
+};
+
+struct _DirectPhotoSourceCollectionPrivate {
+ GeeCollection* prepared_photos;
+ GeeHashMap* file_map;
+ DirectoryMonitor* monitor;
+};
+
+typedef gint64 (*GetSourceDatabaseKey) (DataSource* source, void* user_data);
+
+static gpointer direct_photo_parent_class = NULL;
+extern DirectPhotoSourceCollection* direct_photo_global;
+DirectPhotoSourceCollection* direct_photo_global = NULL;
+static gpointer direct_photo_source_collection_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType indexable_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+gpointer backing_file_state_ref (gpointer instance);
+void backing_file_state_unref (gpointer instance);
+GParamSpec* param_spec_backing_file_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_file_state (GValue* value, gpointer v_object);
+void value_take_backing_file_state (GValue* value, gpointer v_object);
+gpointer value_get_backing_file_state (const GValue* value);
+GType backing_file_state_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType dateable_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType rotation_get_type (void) G_GNUC_CONST;
+gpointer photo_row_ref (gpointer instance);
+void photo_row_unref (gpointer instance);
+GParamSpec* param_spec_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_row (GValue* value, gpointer v_object);
+void value_take_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_photo_row (const GValue* value);
+GType photo_row_get_type (void) G_GNUC_CONST;
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+GType direct_photo_get_type (void) G_GNUC_CONST;
+#define DIRECT_PHOTO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_PHOTO, DirectPhotoPrivate))
+enum {
+ DIRECT_PHOTO_DUMMY_PROPERTY
+};
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType direct_photo_source_collection_get_type (void) G_GNUC_CONST;
+#define DIRECT_PHOTO_PREVIEW_BEST_FIT 360
+static DirectPhoto* direct_photo_new (PhotoRow* row);
+static DirectPhoto* direct_photo_construct (GType object_type, PhotoRow* row);
+Photo* photo_construct (GType object_type, PhotoRow* row);
+GType orientation_get_type (void) G_GNUC_CONST;
+void direct_photo_fixup_orientation_after_reimport (DirectPhoto* self, Orientation dest);
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+gpointer key_value_map_ref (gpointer instance);
+void key_value_map_unref (gpointer instance);
+GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_key_value_map (GValue* value, gpointer v_object);
+void value_take_key_value_map (GValue* value, gpointer v_object);
+gpointer value_get_key_value_map (const GValue* value);
+GType key_value_map_get_type (void) G_GNUC_CONST;
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+void direct_photo_init (GFile* initial_file);
+void photo_init_photo (void);
+DirectPhotoSourceCollection* direct_photo_source_collection_new (GFile* initial_file);
+DirectPhotoSourceCollection* direct_photo_source_collection_construct (GType object_type, GFile* initial_file);
+gchar* direct_photo_source_collection_fetch (DirectPhotoSourceCollection* self, GFile* file, DirectPhoto** photo, gboolean reimport);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+void direct_photo_terminate (void);
+void photo_terminate_photo (void);
+static void direct_photo_save_dims (DirectPhoto* self);
+GType backing_fetch_mode_get_type (void) G_GNUC_CONST;
+GdkPixbuf* photo_get_pixbuf_with_options (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error);
+void scaling_for_original (Scaling* result);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+gchar* data_object_to_string (DataObject* self);
+GType import_result_get_type (void) G_GNUC_CONST;
+ImportResult direct_photo_demand_load (DirectPhoto* self);
+gpointer photo_reimport_master_state_ref (gpointer instance);
+void photo_reimport_master_state_unref (gpointer instance);
+GParamSpec* photo_param_spec_reimport_master_state (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void photo_value_set_reimport_master_state (GValue* value, gpointer v_object);
+void photo_value_take_reimport_master_state (GValue* value, gpointer v_object);
+gpointer photo_value_get_reimport_master_state (const GValue* value);
+GType photo_reimport_master_state_get_type (void) G_GNUC_CONST;
+gboolean photo_prepare_for_reimport_master (Photo* self, PhotoReimportMasterState** reimport_state, GError** error);
+GQuark database_error_quark (void);
+void photo_finish_reimport_master (Photo* self, PhotoReimportMasterState* state, GError** error);
+ImportResult direct_photo_internal_import (GFile* file, DirectPhoto** photo);
+gpointer photo_import_params_ref (gpointer instance);
+void photo_import_params_unref (gpointer instance);
+GParamSpec* param_spec_photo_import_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_import_params (GValue* value, gpointer v_object);
+void value_take_photo_import_params (GValue* value, gpointer v_object);
+gpointer value_get_photo_import_params (const GValue* value);
+GType photo_import_params_get_type (void) G_GNUC_CONST;
+void import_id_generate (ImportID* result);
+PhotoImportParams* photo_import_params_new_create_placeholder (GFile* file, ImportID* import_id);
+PhotoImportParams* photo_import_params_construct_create_placeholder (GType object_type, GFile* file, ImportID* import_id);
+void photo_create_pre_import (PhotoImportParams* params);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType photo_table_get_type (void) G_GNUC_CONST;
+PhotoTable* photo_table_get_instance (void);
+void photo_table_add (PhotoTable* self, PhotoRow* photo_row, PhotoID* result);
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+gpointer thumbnails_ref (gpointer instance);
+void thumbnails_unref (gpointer instance);
+GParamSpec* param_spec_thumbnails (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_thumbnails (GValue* value, gpointer v_object);
+void value_take_thumbnails (GValue* value, gpointer v_object);
+gpointer value_get_thumbnails (const GValue* value);
+GType thumbnails_get_type (void) G_GNUC_CONST;
+static GdkPixbuf* direct_photo_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error);
+GdkPixbuf* thumbnail_source_get_thumbnail (ThumbnailSource* self, gint scale, GError** error);
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+GdkPixbuf* scaling_perform_on_pixbuf (Scaling *self, GdkPixbuf* pixbuf, GdkInterpType interp, gboolean scale_up);
+static void direct_photo_real_rotate (Photo* base, Rotation rotation);
+void photo_rotate (Photo* self, Rotation rotation);
+static GdkPixbuf* direct_photo_real_get_pixbuf (PhotoSource* base, Scaling* scaling, GError** error);
+static GdkPixbuf* direct_photo_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error);
+PhotoMetadata* photo_source_get_metadata (PhotoSource* self);
+guint photo_metadata_get_preview_count (PhotoMetadata* self);
+gpointer photo_preview_ref (gpointer instance);
+void photo_preview_unref (gpointer instance);
+GParamSpec* param_spec_photo_preview (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_preview (GValue* value, gpointer v_object);
+void value_take_photo_preview (GValue* value, gpointer v_object);
+gpointer value_get_photo_preview (const GValue* value);
+GType photo_preview_get_type (void) G_GNUC_CONST;
+PhotoPreview* photo_metadata_get_preview (PhotoMetadata* self, guint number);
+GdkPixbuf* photo_preview_get_pixbuf (PhotoPreview* self, GError** error);
+Orientation photo_get_orientation (Photo* self);
+GdkPixbuf* orientation_rotate_pixbuf (Orientation self, GdkPixbuf* pixbuf);
+static void direct_photo_real_notify_altered (DataObject* base, Alteration* alteration);
+void data_object_notify_altered (DataObject* self, Alteration* alteration);
+static gboolean direct_photo_real_has_user_generated_metadata (Photo* base);
+static void direct_photo_real_set_user_metadata_for_export (Photo* base, PhotoMetadata* metadata);
+static void direct_photo_real_apply_user_metadata_for_reimport (Photo* base, PhotoMetadata* metadata);
+static gboolean direct_photo_real_is_trashed (MediaSource* base);
+static gboolean direct_photo_real_is_offline (MediaSource* base);
+static void direct_photo_real_trash (MediaSource* base);
+static void direct_photo_real_untrash (MediaSource* base);
+static void direct_photo_real_mark_offline (MediaSource* base);
+static void direct_photo_real_mark_online (MediaSource* base);
+static void direct_photo_finalize (GObject* obj);
+GType marker_get_type (void) G_GNUC_CONST;
+gpointer source_backlink_ref (gpointer instance);
+void source_backlink_unref (gpointer instance);
+GParamSpec* param_spec_source_backlink (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_backlink (GValue* value, gpointer v_object);
+void value_take_source_backlink (GValue* value, gpointer v_object);
+gpointer value_get_source_backlink (const GValue* value);
+GType source_backlink_get_type (void) G_GNUC_CONST;
+GType directory_monitor_get_type (void) G_GNUC_CONST;
+#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionPrivate))
+enum {
+ DIRECT_PHOTO_SOURCE_COLLECTION_DUMMY_PROPERTY
+};
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+#define DIRECT_PHOTO_SOURCE_COLLECTION_DISCOVERED_FILES_BATCH_ADD 500
+static gint64 direct_photo_source_collection_get_direct_key (DataSource* source);
+static gint64 _direct_photo_source_collection_get_direct_key_get_source_database_key (DataSource* source, gpointer self);
+DatabaseSourceCollection* database_source_collection_construct (GType object_type, const gchar* name, GetSourceDatabaseKey source_key_func, void* source_key_func_target);
+DirectoryMonitor* directory_monitor_new (GFile* root, gboolean recurse, gboolean monitoring);
+DirectoryMonitor* directory_monitor_construct (GType object_type, GFile* root, gboolean recurse, gboolean monitoring);
+static void direct_photo_source_collection_on_file_discovered (DirectPhotoSourceCollection* self, GFile* file, GFileInfo* info);
+static void _direct_photo_source_collection_on_file_discovered_directory_monitor_file_discovered (DirectoryMonitor* _sender, GFile* file, GFileInfo* info, gpointer self);
+static void direct_photo_source_collection_on_discovery_completed (DirectPhotoSourceCollection* self);
+static void _direct_photo_source_collection_on_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self);
+void directory_monitor_start_discovery (DirectoryMonitor* self);
+static gboolean direct_photo_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source);
+void photo_get_photo_id (Photo* self, PhotoID* result);
+static void direct_photo_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added);
+GFile* media_source_get_file (MediaSource* self);
+void data_collection_notify_items_added (DataCollection* self, GeeIterable* added);
+static void direct_photo_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed);
+void data_collection_notify_items_removed (DataCollection* self, GeeIterable* removed);
+gboolean direct_photo_source_collection_has_source_for_file (DirectPhotoSourceCollection* self, GFile* file);
+gboolean photo_file_format_is_file_supported (GFile* file);
+static void direct_photo_source_collection_flush_prepared_photos (DirectPhotoSourceCollection* self);
+GeeCollection* data_collection_add_many (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+gboolean direct_photo_source_collection_has_file (DirectPhotoSourceCollection* self, GFile* file);
+void direct_photo_source_collection_reimport_photo (DirectPhotoSourceCollection* self, DirectPhoto* photo);
+void photo_discard_prefetched (Photo* self);
+gboolean photo_only_metadata_changed (Photo* self);
+PhotoFileFormat photo_get_file_format (Photo* self);
+gchar* import_result_to_string (ImportResult self);
+gboolean direct_photo_source_collection_has_file_source (DirectPhotoSourceCollection* self, GFile* file);
+DirectPhoto* direct_photo_source_collection_get_file_source (DirectPhotoSourceCollection* self, GFile* file);
+static void direct_photo_source_collection_finalize (DataCollection* obj);
+
+
+static DirectPhoto* direct_photo_construct (GType object_type, PhotoRow* row) {
+ DirectPhoto * self = NULL;
+ PhotoRow* _tmp0_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_PHOTO_ROW (row), NULL);
+#line 18 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = row;
+#line 18 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = (DirectPhoto*) photo_construct (object_type, _tmp0_);
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return self;
+#line 1125 "DirectPhoto.c"
+}
+
+
+static DirectPhoto* direct_photo_new (PhotoRow* row) {
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return direct_photo_construct (TYPE_DIRECT_PHOTO, row);
+#line 1132 "DirectPhoto.c"
+}
+
+
+/**
+ * @brief Because all transformations are discarded on reimport by design, including
+ * Orientation, a JFIF file that is only rotated or flipped, then saved, has the orientation
+ * change the user made before saving removed (recall that fetch() remembers which images it
+ * has seen before and will only add a file to the file map once; every time it sees it
+ * again after this is considered a reimport). This will set the orientation to the
+ * specified value, fixing up both the row and the backing row.
+ *
+ * @warning Only reimported JFIF files should need this; non-lossy image types have their
+ * actual pixels physically rotated in the file when they're exported.
+ *
+ * @param dest The orientation to set the photo to; usually, this should be a value
+ * obtained by calling get_orientation() prior to export()ing a DirectPhoto.
+ */
+void direct_photo_fixup_orientation_after_reimport (DirectPhoto* self, Orientation dest) {
+ PhotoRow* _tmp0_ = NULL;
+ Orientation _tmp1_ = 0;
+ BackingPhotoRow* _tmp2_ = NULL;
+ Orientation _tmp3_ = 0;
+#line 35 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO (self));
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->row;
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = dest;
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_->orientation = _tmp1_;
+#line 37 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->backing_photo_row;
+#line 37 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = dest;
+#line 37 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_->original_orientation = _tmp3_;
+#line 1169 "DirectPhoto.c"
+}
+
+
+void direct_photo_init (GFile* initial_file) {
+ GFile* _tmp0_ = NULL;
+ DirectPhotoSourceCollection* _tmp1_ = NULL;
+ DirectPhoto* photo = NULL;
+ gchar* reason = NULL;
+ DirectPhotoSourceCollection* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ DirectPhoto* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ DirectPhotoSourceCollection* _tmp8_ = NULL;
+ DirectPhoto* _tmp9_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (G_IS_FILE (initial_file));
+#line 41 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_init_photo ();
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = initial_file;
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = direct_photo_source_collection_new (_tmp0_);
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _data_collection_unref0 (direct_photo_global);
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_global = _tmp1_;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = direct_photo_global;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = initial_file;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = direct_photo_source_collection_fetch (_tmp2_, _tmp3_, &_tmp4_, FALSE);
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (photo);
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo = _tmp4_;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reason = _tmp5_;
+#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = reason;
+#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp6_ != NULL) {
+#line 1213 "DirectPhoto.c"
+ const gchar* _tmp7_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = reason;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_warning ("DirectPhoto.vala:47: fetch error: %s", _tmp7_);
+#line 1219 "DirectPhoto.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = direct_photo_global;
+#line 48 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp9_ = photo;
+#line 48 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (reason);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (photo);
+#line 1231 "DirectPhoto.c"
+}
+
+
+void direct_photo_terminate (void) {
+#line 52 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_terminate_photo ();
+#line 1238 "DirectPhoto.c"
+}
+
+
+static void direct_photo_save_dims (DirectPhoto* self) {
+ GError * _inner_error_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO (self));
+#line 1246 "DirectPhoto.c"
+ {
+ GdkPixbuf* _tmp0_ = NULL;
+ Scaling _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ BackingPhotoRow* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ scaling_for_original (&_tmp1_);
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = photo_get_pixbuf_with_options (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), &_tmp1_, (PHOTO_EXCEPTION_CROP | PHOTO_EXCEPTION_STRAIGHTEN) | PHOTO_EXCEPTION_ORIENTATION, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = _tmp2_;
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1261 "DirectPhoto.c"
+ goto __catch42_g_error;
+ }
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->backing_photo_row;
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ dimensions_for_pixbuf (_tmp0_, &_tmp4_);
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_->dim = _tmp4_;
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp0_);
+#line 1272 "DirectPhoto.c"
+ }
+ goto __finally42;
+ __catch42_g_error:
+ {
+ GError* e = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ e = _inner_error_;
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _inner_error_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = _tmp5_;
+#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_warning ("DirectPhoto.vala:62: Dimensions for image %s could not be gotten.", _tmp6_);
+#line 62 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (_tmp6_);
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_error_free0 (e);
+#line 1294 "DirectPhoto.c"
+ }
+ __finally42:
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_clear_error (&_inner_error_);
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return;
+#line 1305 "DirectPhoto.c"
+ }
+}
+
+
+ImportResult direct_photo_demand_load (DirectPhoto* self) {
+ ImportResult result = 0;
+ gboolean _tmp0_ = FALSE;
+ PhotoReimportMasterState* reimport_state = NULL;
+ GError * _inner_error_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO (self), 0);
+#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->loaded;
+#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp0_) {
+#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_save_dims (self);
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1327 "DirectPhoto.c"
+ }
+ {
+ PhotoReimportMasterState* _tmp1_ = NULL;
+ PhotoReimportMasterState* _tmp2_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_prepare_for_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), &_tmp1_, &_inner_error_);
+#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reimport_state = _tmp1_;
+#line 75 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1340 "DirectPhoto.c"
+ goto __catch43_g_error;
+ }
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = reimport_state;
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_finish_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp2_, &_inner_error_);
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1349 "DirectPhoto.c"
+ goto __catch43_g_error;
+ }
+ }
+ goto __finally43;
+ __catch43_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ err = _inner_error_;
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _inner_error_ = NULL;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = err;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = _tmp3_->message;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_warning ("DirectPhoto.vala:78: Database error on re-importing image: %s", _tmp4_);
+#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = IMPORT_RESULT_DATABASE_ERROR;
+#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_error_free0 (err);
+#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 79 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1377 "DirectPhoto.c"
+ }
+ __finally43:
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_clear_error (&_inner_error_);
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return 0;
+#line 1390 "DirectPhoto.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->loaded = TRUE;
+#line 83 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_save_dims (self);
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1402 "DirectPhoto.c"
+}
+
+
+ImportResult direct_photo_internal_import (GFile* file, DirectPhoto** photo) {
+ DirectPhoto* _vala_photo = NULL;
+ ImportResult result = 0;
+ PhotoImportParams* params = NULL;
+ GFile* _tmp0_ = NULL;
+ ImportID _tmp1_ = {0};
+ PhotoImportParams* _tmp2_ = NULL;
+ PhotoTable* _tmp3_ = NULL;
+ PhotoTable* _tmp4_ = NULL;
+ PhotoRow* _tmp5_ = NULL;
+ PhotoID _tmp6_ = {0};
+ PhotoRow* _tmp7_ = NULL;
+ DirectPhoto* _tmp8_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (G_IS_FILE (file), 0);
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = file;
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ import_id_generate (&_tmp1_);
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = photo_import_params_new_create_placeholder (_tmp0_, &_tmp1_);
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ params = _tmp2_;
+#line 91 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_create_pre_import (params);
+#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = photo_table_get_instance ();
+#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = _tmp3_;
+#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = params->row;
+#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_table_add (_tmp4_, _tmp5_, &_tmp6_);
+#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _database_table_unref0 (_tmp4_);
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = params->row;
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = direct_photo_new (_tmp7_);
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_vala_photo);
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _vala_photo = _tmp8_;
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = IMPORT_RESULT_SUCCESS;
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_import_params_unref0 (params);
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (photo) {
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ *photo = _vala_photo;
+#line 1457 "DirectPhoto.c"
+ } else {
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_vala_photo);
+#line 1461 "DirectPhoto.c"
+ }
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1465 "DirectPhoto.c"
+}
+
+
+static GdkPixbuf* direct_photo_real_get_preview_pixbuf (MediaSource* base, Scaling* scaling, GError** error) {
+ DirectPhoto * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->preview;
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp0_ == NULL) {
+#line 1484 "DirectPhoto.c"
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = thumbnail_source_get_thumbnail (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), DIRECT_PHOTO_PREVIEW_BEST_FIT, &_inner_error_);
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = _tmp2_;
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return NULL;
+#line 1499 "DirectPhoto.c"
+ }
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = _tmp1_;
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->preview);
+#line 101 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->preview = _tmp3_;
+#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = self->priv->preview;
+#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp4_ == NULL) {
+#line 1513 "DirectPhoto.c"
+ GdkPixbuf* _tmp5_ = NULL;
+ Scaling _tmp6_ = {0};
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = *scaling;
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp6_, &_inner_error_);
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = _tmp7_;
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp1_);
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return NULL;
+#line 1532 "DirectPhoto.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = _tmp5_;
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->preview);
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->preview = _tmp8_;
+#line 103 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1544 "DirectPhoto.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1548 "DirectPhoto.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp9_ = self->priv->preview;
+#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp10_ = scaling_perform_on_pixbuf (scaling, _tmp9_, GDK_INTERP_BILINEAR, TRUE);
+#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = _tmp10_;
+#line 107 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1558 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_rotate (Photo* base, Rotation rotation) {
+ DirectPhoto * self;
+ Rotation _tmp0_ = 0;
+#line 110 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->can_rotate_now = FALSE;
+#line 112 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_signal_emit_by_name (self, "can-rotate-changed", FALSE);
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = rotation;
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ PHOTO_CLASS (direct_photo_parent_class)->rotate (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), _tmp0_);
+#line 1575 "DirectPhoto.c"
+}
+
+
+static GdkPixbuf* direct_photo_real_get_pixbuf (PhotoSource* base, Scaling* scaling, GError** error) {
+ DirectPhoto * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* ret = NULL;
+ Scaling _tmp0_ = {0};
+ GdkPixbuf* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = *scaling;
+#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = PHOTO_SOURCE_CLASS (direct_photo_parent_class)->get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), TYPE_PHOTO_SOURCE, PhotoSource), &_tmp0_, &_inner_error_);
+#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ret = _tmp1_;
+#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 117 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return NULL;
+#line 1602 "DirectPhoto.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_signal_emit_by_name (self, "can-rotate-changed", TRUE);
+#line 119 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo)->can_rotate_now = TRUE;
+#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = ret;
+#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1612 "DirectPhoto.c"
+}
+
+
+static GdkPixbuf* direct_photo_real_get_thumbnail (ThumbnailSource* base, gint scale, GError** error) {
+ DirectPhoto * self;
+ GdkPixbuf* result = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ PhotoMetadata* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = photo_source_get_metadata (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ metadata = _tmp0_;
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = metadata;
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp3_ == NULL) {
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = TRUE;
+#line 1637 "DirectPhoto.c"
+ } else {
+ PhotoMetadata* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = metadata;
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = photo_metadata_get_preview_count (_tmp4_);
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = _tmp5_ == ((guint) 0);
+#line 1647 "DirectPhoto.c"
+ }
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp2_) {
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp1_);
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = NULL;
+#line 1655 "DirectPhoto.c"
+ } else {
+ GdkPixbuf* _tmp6_ = NULL;
+ PhotoMetadata* _tmp7_ = NULL;
+ PhotoPreview* _tmp8_ = NULL;
+ PhotoPreview* _tmp9_ = NULL;
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ Orientation _tmp12_ = 0;
+ GdkPixbuf* _tmp13_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = metadata;
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = photo_metadata_get_preview (_tmp7_, (guint) 0);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp9_ = _tmp8_;
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp10_ = photo_preview_get_pixbuf (_tmp9_, &_inner_error_);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp11_ = _tmp10_;
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_preview_unref0 (_tmp9_);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = _tmp11_;
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_propagate_error (error, _inner_error_);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp1_);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return NULL;
+#line 1689 "DirectPhoto.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp12_ = photo_get_orientation (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo));
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp13_ = orientation_rotate_pixbuf (_tmp12_, _tmp6_);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp1_);
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = _tmp13_;
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1701 "DirectPhoto.c"
+ }
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = _tmp1_;
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _media_metadata_unref0 (metadata);
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1709 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_notify_altered (DataObject* base, Alteration* alteration) {
+ DirectPhoto * self;
+ Alteration* _tmp0_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_ALTERATION (alteration));
+#line 131 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->preview);
+#line 131 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->preview = NULL;
+#line 133 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = alteration;
+#line 133 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ DATA_OBJECT_CLASS (direct_photo_parent_class)->notify_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO, Photo), TYPE_DATA_OBJECT, DataObject), _tmp0_);
+#line 1728 "DirectPhoto.c"
+}
+
+
+static gboolean direct_photo_real_has_user_generated_metadata (Photo* base) {
+ DirectPhoto * self;
+ gboolean result = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 138 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = FALSE;
+#line 138 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1741 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_set_user_metadata_for_export (Photo* base, PhotoMetadata* metadata) {
+ DirectPhoto * self;
+#line 141 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 141 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 1751 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_apply_user_metadata_for_reimport (Photo* base, PhotoMetadata* metadata) {
+ DirectPhoto * self;
+#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 1761 "DirectPhoto.c"
+}
+
+
+static gboolean direct_photo_real_is_trashed (MediaSource* base) {
+ DirectPhoto * self;
+ gboolean result = FALSE;
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 150 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = FALSE;
+#line 150 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1774 "DirectPhoto.c"
+}
+
+
+static gboolean direct_photo_real_is_offline (MediaSource* base) {
+ DirectPhoto * self;
+ gboolean result = FALSE;
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 155 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = FALSE;
+#line 155 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1787 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_trash (MediaSource* base) {
+ DirectPhoto * self;
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 1795 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_untrash (MediaSource* base) {
+ DirectPhoto * self;
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 1803 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_mark_offline (MediaSource* base) {
+ DirectPhoto * self;
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 1811 "DirectPhoto.c"
+}
+
+
+static void direct_photo_real_mark_online (MediaSource* base) {
+ DirectPhoto * self;
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 1819 "DirectPhoto.c"
+}
+
+
+static void direct_photo_class_init (DirectPhotoClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_type_class_add_private (klass, sizeof (DirectPhotoPrivate));
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((MediaSourceClass *) klass)->get_preview_pixbuf = direct_photo_real_get_preview_pixbuf;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((PhotoClass *) klass)->rotate = direct_photo_real_rotate;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((PhotoSourceClass *) klass)->get_pixbuf = direct_photo_real_get_pixbuf;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((ThumbnailSourceClass *) klass)->get_thumbnail = direct_photo_real_get_thumbnail;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((DataObjectClass *) klass)->notify_altered = direct_photo_real_notify_altered;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((PhotoClass *) klass)->has_user_generated_metadata = direct_photo_real_has_user_generated_metadata;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((PhotoClass *) klass)->set_user_metadata_for_export = direct_photo_real_set_user_metadata_for_export;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((PhotoClass *) klass)->apply_user_metadata_for_reimport = direct_photo_real_apply_user_metadata_for_reimport;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((MediaSourceClass *) klass)->is_trashed = direct_photo_real_is_trashed;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((MediaSourceClass *) klass)->is_offline = direct_photo_real_is_offline;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((MediaSourceClass *) klass)->trash = direct_photo_real_trash;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((MediaSourceClass *) klass)->untrash = direct_photo_real_untrash;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((MediaSourceClass *) klass)->mark_offline = direct_photo_real_mark_offline;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((MediaSourceClass *) klass)->mark_online = direct_photo_real_mark_online;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ G_OBJECT_CLASS (klass)->finalize = direct_photo_finalize;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_signal_new ("can_rotate_changed", TYPE_DIRECT_PHOTO, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 1860 "DirectPhoto.c"
+}
+
+
+static void direct_photo_instance_init (DirectPhoto * self) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv = DIRECT_PHOTO_GET_PRIVATE (self);
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->preview = NULL;
+#line 15 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->loaded = FALSE;
+#line 1871 "DirectPhoto.c"
+}
+
+
+static void direct_photo_finalize (GObject* obj) {
+ DirectPhoto * self;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_PHOTO, DirectPhoto);
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->preview);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ G_OBJECT_CLASS (direct_photo_parent_class)->finalize (obj);
+#line 1883 "DirectPhoto.c"
+}
+
+
+GType direct_photo_get_type (void) {
+ static volatile gsize direct_photo_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_photo_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectPhotoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_photo_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectPhoto), 0, (GInstanceInitFunc) direct_photo_instance_init, NULL };
+ GType direct_photo_type_id;
+ direct_photo_type_id = g_type_register_static (TYPE_PHOTO, "DirectPhoto", &g_define_type_info, 0);
+ g_once_init_leave (&direct_photo_type_id__volatile, direct_photo_type_id);
+ }
+ return direct_photo_type_id__volatile;
+}
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1904 "DirectPhoto.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1913 "DirectPhoto.c"
+}
+
+
+static gint64 _direct_photo_source_collection_get_direct_key_get_source_database_key (DataSource* source, gpointer self) {
+ gint64 result;
+ result = direct_photo_source_collection_get_direct_key (source);
+#line 183 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 1922 "DirectPhoto.c"
+}
+
+
+static void _direct_photo_source_collection_on_file_discovered_directory_monitor_file_discovered (DirectoryMonitor* _sender, GFile* file, GFileInfo* info, gpointer self) {
+#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_source_collection_on_file_discovered ((DirectPhotoSourceCollection*) self, file, info);
+#line 1929 "DirectPhoto.c"
+}
+
+
+static void _direct_photo_source_collection_on_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self) {
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_source_collection_on_discovery_completed ((DirectPhotoSourceCollection*) self);
+#line 1936 "DirectPhoto.c"
+}
+
+
+DirectPhotoSourceCollection* direct_photo_source_collection_construct (GType object_type, GFile* initial_file) {
+ DirectPhotoSourceCollection* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ DirectoryMonitor* _tmp3_ = NULL;
+ DirectoryMonitor* _tmp4_ = NULL;
+ DirectoryMonitor* _tmp5_ = NULL;
+ DirectoryMonitor* _tmp6_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (G_IS_FILE (initial_file), NULL);
+#line 183 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = (DirectPhotoSourceCollection*) database_source_collection_construct (object_type, "DirectPhotoSourceCollection", _direct_photo_source_collection_get_direct_key_get_source_database_key, NULL);
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = initial_file;
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = g_file_get_parent (_tmp0_);
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = _tmp1_;
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = directory_monitor_new (_tmp2_, FALSE, FALSE);
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->monitor);
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->monitor = _tmp3_;
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp2_);
+#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = self->priv->monitor;
+#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_signal_connect (_tmp4_, "file-discovered", (GCallback) _direct_photo_source_collection_on_file_discovered_directory_monitor_file_discovered, self);
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = self->priv->monitor;
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_signal_connect (_tmp5_, "discovery-completed", (GCallback) _direct_photo_source_collection_on_discovery_completed_directory_monitor_discovery_completed, self);
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = self->priv->monitor;
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ directory_monitor_start_discovery (_tmp6_);
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return self;
+#line 1981 "DirectPhoto.c"
+}
+
+
+DirectPhotoSourceCollection* direct_photo_source_collection_new (GFile* initial_file) {
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return direct_photo_source_collection_construct (TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, initial_file);
+#line 1988 "DirectPhoto.c"
+}
+
+
+static gboolean direct_photo_source_collection_real_holds_type_of_source (SourceCollection* base, DataSource* source) {
+ DirectPhotoSourceCollection * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection);
+#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 194 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = source;
+#line 194 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_DIRECT_PHOTO);
+#line 194 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2006 "DirectPhoto.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2013 "DirectPhoto.c"
+}
+
+
+static gint64 direct_photo_source_collection_get_direct_key (DataSource* source) {
+ gint64 result = 0LL;
+ DirectPhoto* photo = NULL;
+ DataSource* _tmp0_ = NULL;
+ DirectPhoto* _tmp1_ = NULL;
+ PhotoID photo_id = {0};
+ PhotoID _tmp2_ = {0};
+ PhotoID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+#line 197 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), 0LL);
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = source;
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto));
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo = _tmp1_;
+#line 199 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_get_photo_id (G_TYPE_CHECK_INSTANCE_CAST (photo, TYPE_PHOTO, Photo), &_tmp2_);
+#line 199 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_id = _tmp2_;
+#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = photo_id;
+#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = _tmp3_.id;
+#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = _tmp4_;
+#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (photo);
+#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2048 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_real_notify_items_added (DataCollection* base, GeeIterable* added) {
+ DirectPhotoSourceCollection * self;
+ GeeIterable* _tmp16_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection);
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (added));
+#line 2059 "DirectPhoto.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = added;
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _object_it = _tmp1_;
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ while (TRUE) {
+#line 2072 "DirectPhoto.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DirectPhoto* photo = NULL;
+ DataObject* _tmp6_ = NULL;
+ DirectPhoto* _tmp7_ = NULL;
+ GFile* file = NULL;
+ DirectPhoto* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ GeeHashMap* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GeeHashMap* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ DirectPhoto* _tmp15_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = _object_it;
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (!_tmp3_) {
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ break;
+#line 2098 "DirectPhoto.c"
+ }
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = _object_it;
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ object = (DataObject*) _tmp5_;
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = object;
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DIRECT_PHOTO, DirectPhoto));
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo = _tmp7_;
+#line 207 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = photo;
+#line 207 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp9_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 207 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ file = _tmp9_;
+#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp10_ = self->priv->file_map;
+#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp11_ = file;
+#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp12_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_);
+#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _vala_assert (!_tmp12_, "!file_map.has_key(file)");
+#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp13_ = self->priv->file_map;
+#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp14_ = file;
+#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp15_ = photo;
+#line 211 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp14_, _tmp15_);
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (file);
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (photo);
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (object);
+#line 2140 "DirectPhoto.c"
+ }
+#line 205 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_object_it);
+#line 2144 "DirectPhoto.c"
+ }
+#line 214 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp16_ = added;
+#line 214 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ DATA_COLLECTION_CLASS (direct_photo_source_collection_parent_class)->notify_items_added (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp16_);
+#line 2150 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_real_notify_items_removed (DataCollection* base, GeeIterable* removed) {
+ DirectPhotoSourceCollection * self;
+ GeeIterable* _tmp14_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection);
+#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (GEE_IS_ITERABLE (removed));
+#line 2161 "DirectPhoto.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = removed;
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = gee_iterable_iterator (_tmp0_);
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _object_it = _tmp1_;
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ while (TRUE) {
+#line 2174 "DirectPhoto.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ DirectPhoto* photo = NULL;
+ DataObject* _tmp6_ = NULL;
+ DirectPhoto* _tmp7_ = NULL;
+ GFile* file = NULL;
+ DirectPhoto* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = _object_it;
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (!_tmp3_) {
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ break;
+#line 2199 "DirectPhoto.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = _object_it;
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ object = (DataObject*) _tmp5_;
+#line 219 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = object;
+#line 219 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DIRECT_PHOTO, DirectPhoto));
+#line 219 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo = _tmp7_;
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = photo;
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp9_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ file = _tmp9_;
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp10_ = self->priv->file_map;
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp11_ = file;
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp12_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL);
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ is_removed = _tmp12_;
+#line 223 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp13_ = is_removed;
+#line 223 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _vala_assert (_tmp13_, "is_removed");
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (file);
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (photo);
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (object);
+#line 2237 "DirectPhoto.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_object_it);
+#line 2241 "DirectPhoto.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp14_ = removed;
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ DATA_COLLECTION_CLASS (direct_photo_source_collection_parent_class)->notify_items_removed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection), TYPE_DATA_COLLECTION, DataCollection), _tmp14_);
+#line 2247 "DirectPhoto.c"
+}
+
+
+gboolean direct_photo_source_collection_has_source_for_file (DirectPhotoSourceCollection* self, GFile* file) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), FALSE);
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->file_map;
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = file;
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = _tmp2_;
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2270 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_on_file_discovered (DirectPhotoSourceCollection* self, GFile* file, GFileInfo* info) {
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ DirectPhoto* photo = NULL;
+ gchar* reason = NULL;
+ GFile* _tmp4_ = NULL;
+ DirectPhoto* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ DirectPhoto* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self));
+#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (G_IS_FILE_INFO (info));
+#line 235 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = file;
+#line 235 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = direct_photo_source_collection_has_source_for_file (self, _tmp0_);
+#line 235 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp1_) {
+#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return;
+#line 2304 "DirectPhoto.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = file;
+#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = photo_file_format_is_file_supported (_tmp2_);
+#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (!_tmp3_) {
+#line 240 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return;
+#line 2314 "DirectPhoto.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = file;
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = direct_photo_source_collection_fetch (self, _tmp4_, &_tmp5_, FALSE);
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (photo);
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo = _tmp5_;
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reason = _tmp6_;
+#line 244 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = reason;
+#line 244 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp7_ != NULL) {
+#line 2330 "DirectPhoto.c"
+ const gchar* _tmp8_ = NULL;
+#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = reason;
+#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_warning ("DirectPhoto.vala:245: Error fetching file: %s", _tmp8_);
+#line 2336 "DirectPhoto.c"
+ }
+#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp9_ = self->priv->prepared_photos;
+#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp10_ = photo;
+#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ gee_collection_add (_tmp9_, _tmp10_);
+#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp11_ = self->priv->prepared_photos;
+#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp12_ = gee_collection_get_size (_tmp11_);
+#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp13_ = _tmp12_;
+#line 247 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp13_ >= DIRECT_PHOTO_SOURCE_COLLECTION_DISCOVERED_FILES_BATCH_ADD) {
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_source_collection_flush_prepared_photos (self);
+#line 2354 "DirectPhoto.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (reason);
+#line 233 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (photo);
+#line 2360 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_on_discovery_completed (DirectPhotoSourceCollection* self) {
+#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self));
+#line 252 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_source_collection_flush_prepared_photos (self);
+#line 2369 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_flush_prepared_photos (DirectPhotoSourceCollection* self) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self));
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->prepared_photos;
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = data_collection_add_many (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _tmp0_, NULL, NULL);
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = _tmp1_;
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp2_);
+#line 257 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = self->priv->prepared_photos;
+#line 257 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ gee_collection_clear (_tmp3_);
+#line 2392 "DirectPhoto.c"
+}
+
+
+gboolean direct_photo_source_collection_has_file (DirectPhotoSourceCollection* self, GFile* file) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 260 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), FALSE);
+#line 260 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->file_map;
+#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = file;
+#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = _tmp2_;
+#line 261 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2415 "DirectPhoto.c"
+}
+
+
+void direct_photo_source_collection_reimport_photo (DirectPhotoSourceCollection* self, DirectPhoto* photo) {
+ DirectPhoto* _tmp0_ = NULL;
+ DirectPhoto* reimported_photo = NULL;
+ DirectPhoto* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ DirectPhoto* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self));
+#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO (photo));
+#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = photo;
+#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_discard_prefetched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO, Photo));
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = photo;
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = _tmp2_;
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = direct_photo_source_collection_fetch (self, _tmp3_, &_tmp4_, TRUE);
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (reimported_photo);
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reimported_photo = _tmp4_;
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = _tmp5_;
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (_tmp6_);
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_tmp3_);
+#line 264 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (reimported_photo);
+#line 2456 "DirectPhoto.c"
+}
+
+
+gchar* direct_photo_source_collection_fetch (DirectPhotoSourceCollection* self, GFile* file, DirectPhoto** photo, gboolean reimport) {
+ DirectPhoto* _vala_photo = NULL;
+ gchar* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ DirectPhoto* _tmp3_ = NULL;
+ ImportResult _result_ = 0;
+ GFile* _tmp25_ = NULL;
+ DirectPhoto* _tmp26_ = NULL;
+ ImportResult _tmp27_ = 0;
+ gchar* _tmp28_ = NULL;
+ ImportResult _tmp29_ = 0;
+ GError * _inner_error_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 271 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->file_map;
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = file;
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_vala_photo);
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _vala_photo = (DirectPhoto*) _tmp2_;
+#line 274 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp3_ = _vala_photo;
+#line 274 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp3_ != NULL) {
+#line 2492 "DirectPhoto.c"
+ gchar* reason = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 275 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reason = NULL;
+#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp4_ = reimport;
+#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp4_) {
+#line 2501 "DirectPhoto.c"
+ {
+ Orientation ori_tmp = 0;
+ gboolean should_restore_ori = FALSE;
+ gboolean _tmp5_ = FALSE;
+ DirectPhoto* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PhotoReimportMasterState* reimport_state = NULL;
+ gboolean _tmp12_ = FALSE;
+ DirectPhoto* _tmp13_ = NULL;
+ PhotoReimportMasterState* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 279 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ori_tmp = ORIENTATION_TOP_LEFT;
+#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ should_restore_ori = FALSE;
+#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp6_ = _vala_photo;
+#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp7_ = photo_only_metadata_changed (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PHOTO, Photo));
+#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp7_) {
+#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = TRUE;
+#line 2525 "DirectPhoto.c"
+ } else {
+ DirectPhoto* _tmp8_ = NULL;
+ PhotoFileFormat _tmp9_ = 0;
+#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp8_ = _vala_photo;
+#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp9_ = photo_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PHOTO, Photo));
+#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp5_ = _tmp9_ == PHOTO_FILE_FORMAT_JFIF;
+#line 2535 "DirectPhoto.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp5_) {
+#line 2539 "DirectPhoto.c"
+ DirectPhoto* _tmp10_ = NULL;
+ Orientation _tmp11_ = 0;
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp10_ = _vala_photo;
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp11_ = photo_get_orientation (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PHOTO, Photo));
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ori_tmp = _tmp11_;
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ should_restore_ori = TRUE;
+#line 2550 "DirectPhoto.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp13_ = _vala_photo;
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp15_ = photo_prepare_for_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_PHOTO, Photo), &_tmp14_, &_inner_error_);
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reimport_state = _tmp14_;
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp12_ = _tmp15_;
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 2566 "DirectPhoto.c"
+ goto __catch44_g_error;
+ }
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp12_) {
+#line 2571 "DirectPhoto.c"
+ DirectPhoto* _tmp16_ = NULL;
+ PhotoReimportMasterState* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp16_ = _vala_photo;
+#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp17_ = reimport_state;
+#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ photo_finish_reimport_master (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PHOTO, Photo), _tmp17_, &_inner_error_);
+#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 290 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 2585 "DirectPhoto.c"
+ goto __catch44_g_error;
+ }
+#line 291 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp18_ = should_restore_ori;
+#line 291 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp18_) {
+#line 2592 "DirectPhoto.c"
+ DirectPhoto* _tmp19_ = NULL;
+ Orientation _tmp20_ = 0;
+#line 292 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp19_ = _vala_photo;
+#line 292 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp20_ = ori_tmp;
+#line 292 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_fixup_orientation_after_reimport (_tmp19_, _tmp20_);
+#line 2601 "DirectPhoto.c"
+ }
+ } else {
+ gchar* _tmp21_ = NULL;
+#line 296 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp21_ = import_result_to_string (IMPORT_RESULT_FILE_ERROR);
+#line 296 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (reason);
+#line 296 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reason = _tmp21_;
+#line 2611 "DirectPhoto.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _photo_reimport_master_state_unref0 (reimport_state);
+#line 2615 "DirectPhoto.c"
+ }
+ goto __finally44;
+ __catch44_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ err = _inner_error_;
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _inner_error_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp22_ = err;
+#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp23_ = _tmp22_->message;
+#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp24_ = g_strdup (_tmp23_);
+#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (reason);
+#line 299 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ reason = _tmp24_;
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_error_free0 (err);
+#line 2640 "DirectPhoto.c"
+ }
+ __finally44:
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (reason);
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_clear_error (&_inner_error_);
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return NULL;
+#line 2653 "DirectPhoto.c"
+ }
+ }
+#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = reason;
+#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (photo) {
+#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ *photo = _vala_photo;
+#line 2662 "DirectPhoto.c"
+ } else {
+#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_vala_photo);
+#line 2666 "DirectPhoto.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2670 "DirectPhoto.c"
+ }
+#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp25_ = file;
+#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp27_ = direct_photo_internal_import (_tmp25_, &_tmp26_);
+#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_vala_photo);
+#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _vala_photo = _tmp26_;
+#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _result_ = _tmp27_;
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp29_ = _result_;
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (_tmp29_ == IMPORT_RESULT_SUCCESS) {
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (_tmp28_);
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp28_ = NULL;
+#line 2690 "DirectPhoto.c"
+ } else {
+ ImportResult _tmp30_ = 0;
+ gchar* _tmp31_ = NULL;
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp30_ = _result_;
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp31_ = import_result_to_string (_tmp30_);
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_free0 (_tmp28_);
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp28_ = _tmp31_;
+#line 2702 "DirectPhoto.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = _tmp28_;
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ if (photo) {
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ *photo = _vala_photo;
+#line 2710 "DirectPhoto.c"
+ } else {
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (_vala_photo);
+#line 2714 "DirectPhoto.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2718 "DirectPhoto.c"
+}
+
+
+gboolean direct_photo_source_collection_has_file_source (DirectPhotoSourceCollection* self, GFile* file) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), FALSE);
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->file_map;
+#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = file;
+#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = _tmp2_;
+#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2741 "DirectPhoto.c"
+}
+
+
+DirectPhoto* direct_photo_source_collection_get_file_source (DirectPhotoSourceCollection* self, GFile* file) {
+ DirectPhoto* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_SOURCE_COLLECTION (self), NULL);
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = self->priv->file_map;
+#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = file;
+#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ result = (DirectPhoto*) _tmp2_;
+#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ return result;
+#line 2764 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_class_init (DirectPhotoSourceCollectionClass * klass) {
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ direct_photo_source_collection_parent_class = g_type_class_peek_parent (klass);
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((DataCollectionClass *) klass)->finalize = direct_photo_source_collection_finalize;
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ g_type_class_add_private (klass, sizeof (DirectPhotoSourceCollectionPrivate));
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((SourceCollectionClass *) klass)->holds_type_of_source = direct_photo_source_collection_real_holds_type_of_source;
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((DataCollectionClass *) klass)->notify_items_added = direct_photo_source_collection_real_notify_items_added;
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ ((DataCollectionClass *) klass)->notify_items_removed = direct_photo_source_collection_real_notify_items_removed;
+#line 2781 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_instance_init (DirectPhotoSourceCollection * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv = DIRECT_PHOTO_SOURCE_COLLECTION_GET_PRIVATE (self);
+#line 177 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DIRECT_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 177 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->prepared_photos = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _tmp1_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, TYPE_DIRECT_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self->priv->file_map = _tmp1_;
+#line 2798 "DirectPhoto.c"
+}
+
+
+static void direct_photo_source_collection_finalize (DataCollection* obj) {
+ DirectPhotoSourceCollection * self;
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection);
+#line 177 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->prepared_photos);
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->file_map);
+#line 180 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ _g_object_unref0 (self->priv->monitor);
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhoto.vala"
+ DATA_COLLECTION_CLASS (direct_photo_source_collection_parent_class)->finalize (obj);
+#line 2814 "DirectPhoto.c"
+}
+
+
+GType direct_photo_source_collection_get_type (void) {
+ static volatile gsize direct_photo_source_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_photo_source_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectPhotoSourceCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_photo_source_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectPhotoSourceCollection), 0, (GInstanceInitFunc) direct_photo_source_collection_instance_init, NULL };
+ GType direct_photo_source_collection_type_id;
+ direct_photo_source_collection_type_id = g_type_register_static (TYPE_DATABASE_SOURCE_COLLECTION, "DirectPhotoSourceCollection", &g_define_type_info, 0);
+ g_once_init_leave (&direct_photo_source_collection_type_id__volatile, direct_photo_source_collection_type_id);
+ }
+ return direct_photo_source_collection_type_id__volatile;
+}
+
+
+
diff --git a/src/direct/DirectPhotoPage.c b/src/direct/DirectPhotoPage.c
new file mode 100644
index 0000000..c9094a2
--- /dev/null
+++ b/src/direct/DirectPhotoPage.c
@@ -0,0 +1,5294 @@
+/* DirectPhotoPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from DirectPhotoPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <glib/gi18n-lib.h>
+#include <glib/gstdio.h>
+#include <float.h>
+#include <math.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate;
+
+#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ())
+#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer))
+#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER))
+#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER))
+#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+
+typedef struct _ZoomBuffer ZoomBuffer;
+typedef struct _ZoomBufferClass ZoomBufferClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())
+
+#define TYPE_EDITING_HOST_PAGE (editing_host_page_get_type ())
+#define EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPage))
+#define EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+#define IS_EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDITING_HOST_PAGE))
+#define IS_EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDITING_HOST_PAGE))
+#define EDITING_HOST_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+
+typedef struct _EditingHostPage EditingHostPage;
+typedef struct _EditingHostPageClass EditingHostPageClass;
+typedef struct _EditingHostPagePrivate EditingHostPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_DIRECT_PHOTO_PAGE (direct_photo_page_get_type ())
+#define DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage))
+#define DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass))
+#define IS_DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_PAGE))
+#define IS_DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_PAGE))
+#define DIRECT_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass))
+
+typedef struct _DirectPhotoPage DirectPhotoPage;
+typedef struct _DirectPhotoPageClass DirectPhotoPageClass;
+typedef struct _DirectPhotoPagePrivate DirectPhotoPagePrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_DIRECT_VIEW_COLLECTION (direct_view_collection_get_type ())
+#define DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollection))
+#define DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass))
+#define IS_DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW_COLLECTION))
+#define IS_DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW_COLLECTION))
+#define DIRECT_VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass))
+
+typedef struct _DirectViewCollection DirectViewCollection;
+typedef struct _DirectViewCollectionClass DirectViewCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_DIRECT_PHOTO_SOURCE_COLLECTION (direct_photo_source_collection_get_type ())
+#define DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection))
+#define DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))
+#define IS_DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
+#define IS_DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
+#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))
+
+typedef struct _DirectPhotoSourceCollection DirectPhotoSourceCollection;
+typedef struct _DirectPhotoSourceCollectionClass DirectPhotoSourceCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+#define _injection_group_unref0(var) ((var == NULL) ? NULL : (var = (injection_group_unref (var), NULL)))
+
+#define TYPE_DIRECT_PHOTO (direct_photo_get_type ())
+#define DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO, DirectPhoto))
+#define DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO, DirectPhotoClass))
+#define IS_DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO))
+#define IS_DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO))
+#define DIRECT_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO, DirectPhotoClass))
+
+typedef struct _DirectPhoto DirectPhoto;
+typedef struct _DirectPhotoClass DirectPhotoClass;
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+
+#define TYPE_ZOOM_STATE (zoom_state_get_type ())
+typedef struct _ZoomState ZoomState;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_DIRECT_VIEW (direct_view_get_type ())
+#define DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW, DirectView))
+#define DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW, DirectViewClass))
+#define IS_DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW))
+#define IS_DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW))
+#define DIRECT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW, DirectViewClass))
+
+typedef struct _DirectView DirectView;
+typedef struct _DirectViewClass DirectViewClass;
+
+#define TYPE_EXPORT_DIALOG (export_dialog_get_type ())
+#define EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPORT_DIALOG, ExportDialog))
+#define EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPORT_DIALOG, ExportDialogClass))
+#define IS_EXPORT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPORT_DIALOG))
+#define IS_EXPORT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPORT_DIALOG))
+#define EXPORT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPORT_DIALOG, ExportDialogClass))
+
+typedef struct _ExportDialog ExportDialog;
+typedef struct _ExportDialogClass ExportDialogClass;
+
+#define TYPE_EXPORT_FORMAT_PARAMETERS (export_format_parameters_get_type ())
+
+#define TYPE_EXPORT_FORMAT_MODE (export_format_mode_get_type ())
+typedef struct _ExportFormatParameters ExportFormatParameters;
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_PRINT_MANAGER (print_manager_get_type ())
+#define PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PRINT_MANAGER, PrintManager))
+#define PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PRINT_MANAGER, PrintManagerClass))
+#define IS_PRINT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PRINT_MANAGER))
+#define IS_PRINT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PRINT_MANAGER))
+#define PRINT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PRINT_MANAGER, PrintManagerClass))
+
+typedef struct _PrintManager PrintManager;
+typedef struct _PrintManagerClass PrintManagerClass;
+#define _print_manager_unref0(var) ((var == NULL) ? NULL : (var = (print_manager_unref (var), NULL)))
+typedef struct _Block6Data Block6Data;
+
+#define TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE (direct_fullscreen_photo_page_get_type ())
+#define DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPage))
+#define DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass))
+#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE))
+#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE))
+#define DIRECT_FULLSCREEN_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass))
+
+typedef struct _DirectFullscreenPhotoPage DirectFullscreenPhotoPage;
+typedef struct _DirectFullscreenPhotoPageClass DirectFullscreenPhotoPageClass;
+typedef struct _DirectFullscreenPhotoPagePrivate DirectFullscreenPhotoPagePrivate;
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
+} SinglePhotoPageUpdateReason;
+
+struct _SinglePhotoPage {
+ Page parent_instance;
+ SinglePhotoPagePrivate * priv;
+ GtkDrawingArea* canvas;
+ GtkViewport* viewport;
+};
+
+struct _SinglePhotoPageClass {
+ PageClass parent_class;
+ gboolean (*is_zoom_supported) (SinglePhotoPage* self);
+ void (*cancel_zoom) (SinglePhotoPage* self);
+ void (*save_zoom_state) (SinglePhotoPage* self);
+ void (*restore_zoom_state) (SinglePhotoPage* self);
+ ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self);
+ void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+ void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*on_previous_photo) (SinglePhotoPage* self);
+ void (*on_next_photo) (SinglePhotoPage* self);
+};
+
+struct _EditingHostPage {
+ SinglePhotoPage parent_instance;
+ EditingHostPagePrivate * priv;
+};
+
+struct _EditingHostPageClass {
+ SinglePhotoPageClass parent_class;
+ gboolean (*on_zoom_slider_key_press) (EditingHostPage* self, GdkEventKey* event);
+ void (*on_increase_size) (EditingHostPage* self);
+ void (*on_decrease_size) (EditingHostPage* self);
+ void (*photo_changing) (EditingHostPage* self, Photo* new_photo);
+ DataView* (*create_photo_view) (EditingHostPage* self, DataSource* source);
+ void (*update_ui) (EditingHostPage* self, gboolean missing);
+ void (*notify_photo_backing_missing) (EditingHostPage* self, Photo* photo, gboolean missing);
+ gboolean (*confirm_replace_photo) (EditingHostPage* self, Photo* old_photo, Photo* new_photo);
+ gboolean (*on_double_click) (EditingHostPage* self, GdkEventButton* event);
+ GdkPixbuf* (*get_bottom_left_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_top_left_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (EditingHostPage* self, gint scale);
+};
+
+struct _DirectPhotoPage {
+ EditingHostPage parent_instance;
+ DirectPhotoPagePrivate * priv;
+};
+
+struct _DirectPhotoPageClass {
+ EditingHostPageClass parent_class;
+};
+
+struct _DirectPhotoPagePrivate {
+ GFile* initial_file;
+ DirectViewCollection* view_controller;
+ GFile* current_save_dir;
+ gboolean drop_if_dirty;
+};
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+struct _ZoomState {
+ Dimensions content_dimensions;
+ Dimensions viewport_dimensions;
+ gdouble zoom_factor;
+ gdouble interpolation_factor;
+ gdouble min_factor;
+ gdouble max_factor;
+ GdkPoint viewport_center;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+typedef enum {
+ EXPORT_FORMAT_MODE_UNMODIFIED,
+ EXPORT_FORMAT_MODE_CURRENT,
+ EXPORT_FORMAT_MODE_SPECIFIED,
+ EXPORT_FORMAT_MODE_LAST
+} ExportFormatMode;
+
+struct _ExportFormatParameters {
+ ExportFormatMode mode;
+ PhotoFileFormat specified_format;
+ JpegQuality quality;
+ gboolean export_metadata;
+};
+
+struct _Block6Data {
+ int _ref_count_;
+ DirectPhotoPage* self;
+ gboolean should_allow_rotation;
+};
+
+struct _DirectFullscreenPhotoPage {
+ DirectPhotoPage parent_instance;
+ DirectFullscreenPhotoPagePrivate * priv;
+};
+
+struct _DirectFullscreenPhotoPageClass {
+ DirectPhotoPageClass parent_class;
+};
+
+
+static gpointer direct_photo_page_parent_class = NULL;
+extern DirectPhotoSourceCollection* direct_photo_global;
+static gpointer direct_fullscreen_photo_page_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType zoom_buffer_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
+GType editing_host_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType direct_photo_page_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+GType direct_view_collection_get_type (void) G_GNUC_CONST;
+#define DIRECT_PHOTO_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPagePrivate))
+enum {
+ DIRECT_PHOTO_PAGE_DUMMY_PROPERTY
+};
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType direct_photo_source_collection_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void direct_photo_page_on_photos_altered (DirectPhotoPage* self, GeeMap* map);
+static void _direct_photo_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+DirectPhotoPage* direct_photo_page_new (GFile* file);
+DirectPhotoPage* direct_photo_page_construct (GType object_type, GFile* file);
+EditingHostPage* editing_host_page_construct (GType object_type, SourceCollection* sources, const gchar* name);
+static gboolean direct_photo_page_check_editable_file (GFile* file);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void application_panic (Application* self);
+DirectViewCollection* direct_view_collection_new (void);
+DirectViewCollection* direct_view_collection_construct (GType object_type);
+ViewCollection* page_get_view (Page* self);
+static void direct_photo_page_on_selection_group_altered (DirectPhotoPage* self);
+static void _direct_photo_page_on_selection_group_altered_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self);
+static void direct_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* direct_photo_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define TRANSLATABLE "translatable"
+static void _vala_array_add91 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_SAVE_LABEL _ ("_Save")
+static void direct_photo_page_on_save (DirectPhotoPage* self);
+static void _direct_photo_page_on_save_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add92 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_SAVE_AS_LABEL _ ("Save _As")
+static void direct_photo_page_on_save_as (DirectPhotoPage* self);
+static void _direct_photo_page_on_save_as_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add93 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void direct_photo_page_on_send_to (DirectPhotoPage* self);
+static void _direct_photo_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_SEND_TO_MENU _ ("Send _To...")
+static void _vala_array_add94 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_PRINT_LABEL _ ("_Print")
+static void direct_photo_page_on_print (DirectPhotoPage* self);
+static void _direct_photo_page_on_print_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PRINT_MENU _ ("_Print...")
+static void _vala_array_add95 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add96 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add97 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add98 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_PREVIOUS_LABEL _ ("_Previous")
+void single_photo_page_on_previous_photo (SinglePhotoPage* self);
+static void _single_photo_page_on_previous_photo_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add99 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_NEXT_LABEL _ ("_Next")
+void single_photo_page_on_next_photo (SinglePhotoPage* self);
+static void _single_photo_page_on_next_photo_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add100 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_CLOCKWISE "object-rotate-right"
+void editing_host_page_on_rotate_clockwise (EditingHostPage* self);
+static void _editing_host_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ROTATE_CW_MENU _ ("Rotate _Right")
+#define RESOURCES_ROTATE_CCW_TOOLTIP _ ("Rotate the photos left")
+static void _vala_array_add101 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_COUNTERCLOCKWISE "object-rotate-left"
+void editing_host_page_on_rotate_counterclockwise (EditingHostPage* self);
+static void _editing_host_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ROTATE_CCW_MENU _ ("Rotate _Left")
+static void _vala_array_add102 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_HFLIP "object-flip-horizontal"
+void editing_host_page_on_flip_horizontally (EditingHostPage* self);
+static void _editing_host_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_HFLIP_MENU _ ("Flip Hori_zontally")
+static void _vala_array_add103 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_VFLIP "object-flip-vertical"
+void editing_host_page_on_flip_vertically (EditingHostPage* self);
+static void _editing_host_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_VFLIP_MENU _ ("Flip Verti_cally")
+static void _vala_array_add104 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ENHANCE "shotwell-auto-enhance"
+void editing_host_page_on_enhance (EditingHostPage* self);
+static void _editing_host_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ENHANCE_MENU _ ("_Enhance")
+#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo's appearance")
+static void _vala_array_add105 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_CROP "shotwell-crop"
+void editing_host_page_toggle_crop (EditingHostPage* self);
+static void _editing_host_page_toggle_crop_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_CROP_MENU _ ("_Crop")
+#define RESOURCES_CROP_TOOLTIP _ ("Crop the photo's size")
+static void _vala_array_add106 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REFRESH_LABEL _ ("_Refresh")
+void editing_host_page_toggle_straighten (EditingHostPage* self);
+static void _editing_host_page_toggle_straighten_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_STRAIGHTEN_MENU _ ("_Straighten")
+#define RESOURCES_STRAIGHTEN_TOOLTIP _ ("Straighten the photo")
+static void _vala_array_add107 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REDEYE "shotwell-redeye"
+void editing_host_page_toggle_redeye (EditingHostPage* self);
+static void _editing_host_page_toggle_redeye_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_RED_EYE_MENU _ ("_Red-eye")
+#define RESOURCES_RED_EYE_TOOLTIP _ ("Reduce or eliminate any red-eye effects in the photo")
+static void _vala_array_add108 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ADJUST "image-adjust"
+void editing_host_page_toggle_adjust (EditingHostPage* self);
+static void _editing_host_page_toggle_adjust_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ADJUST_MENU _ ("_Adjust")
+#define RESOURCES_ADJUST_TOOLTIP _ ("Adjust the photo's color and tone")
+static void _vala_array_add109 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_REVERT_LABEL _ ("Revert to Original")
+void editing_host_page_on_revert (EditingHostPage* self);
+static void _editing_host_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_REVERT_MENU _ ("Re_vert to Original")
+static void _vala_array_add110 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void editing_host_page_on_adjust_date_time (EditingHostPage* self);
+static void _editing_host_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_ADJUST_DATE_TIME_MENU _ ("_Adjust Date and Time...")
+static void _vala_array_add111 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void editing_host_page_on_set_background (EditingHostPage* self);
+static void _editing_host_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_SET_BACKGROUND_MENU _ ("Set as _Desktop Background")
+#define RESOURCES_SET_BACKGROUND_TOOLTIP _ ("Set selected image to be the new desktop background")
+static void _vala_array_add112 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add113 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add114 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_IN_LABEL _ ("Zoom _In")
+void editing_host_page_on_increase_size (EditingHostPage* self);
+static void _editing_host_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add115 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_OUT_LABEL _ ("Zoom _Out")
+void editing_host_page_on_decrease_size (EditingHostPage* self);
+static void _editing_host_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add116 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_FIT_LABEL _ ("Best _Fit")
+void editing_host_page_snap_zoom_to_min (EditingHostPage* self);
+static void _editing_host_page_snap_zoom_to_min_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add117 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_ZOOM_100_LABEL _ ("_Normal Size")
+void editing_host_page_snap_zoom_to_isomorphic (EditingHostPage* self);
+static void _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add118 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void editing_host_page_snap_zoom_to_max (EditingHostPage* self);
+static void _editing_host_page_snap_zoom_to_max_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add119 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static InjectionGroup** direct_photo_page_real_init_collect_injection_groups (Page* base, int* result_length1);
+InjectionGroup** page_init_collect_injection_groups (Page* self, int* result_length1);
+InjectionGroup* injection_group_new (const gchar* path);
+InjectionGroup* injection_group_construct (GType object_type, const gchar* path);
+void injection_group_add_menu_item (InjectionGroup* self, const gchar* name, const gchar* action);
+static void _vala_array_add120 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+static void _vala_array_add121 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gboolean photo_file_format_is_file_supported (GFile* file);
+#define RESOURCES_APP_TITLE "Shotwell"
+static void direct_photo_page_real_realize (GtkWidget* base);
+GType direct_photo_get_type (void) G_GNUC_CONST;
+DirectPhoto* direct_photo_source_collection_get_file_source (DirectPhotoSourceCollection* self, GFile* file);
+void editing_host_page_display_mirror_of (EditingHostPage* self, ViewCollection* controller, Photo* starting_photo);
+void app_window_panic (const gchar* msg);
+static void direct_photo_page_real_photo_changing (EditingHostPage* base, Photo* new_photo);
+Photo* editing_host_page_get_photo (EditingHostPage* self);
+static void direct_photo_page_on_dphoto_can_rotate_changed (DirectPhotoPage* self, gboolean should_allow_rotation);
+static void _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed (DirectPhoto* _sender, gboolean b, gpointer self);
+GType import_result_get_type (void) G_GNUC_CONST;
+ImportResult direct_photo_demand_load (DirectPhoto* self);
+GFile* direct_photo_page_get_current_file (DirectPhotoPage* self);
+GFile* media_source_get_file (MediaSource* self);
+static gboolean direct_photo_page_real_on_context_buttonpress (Page* base, GdkEventButton* event);
+gboolean page_popup_context_menu (Page* self, GtkMenu* context_menu, GdkEventButton* event);
+static void direct_photo_page_update_zoom_menu_item_sensitivity (DirectPhotoPage* self);
+GType zoom_state_get_type (void) G_GNUC_CONST;
+ZoomState* zoom_state_dup (const ZoomState* self);
+void zoom_state_free (ZoomState* self);
+void single_photo_page_get_zoom_state (SinglePhotoPage* self, ZoomState* result);
+gboolean zoom_state_is_max (ZoomState *self);
+gboolean editing_host_page_get_photo_missing (EditingHostPage* self);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+gboolean zoom_state_is_default (ZoomState *self);
+static void direct_photo_page_real_on_increase_size (EditingHostPage* base);
+static void direct_photo_page_real_on_decrease_size (EditingHostPage* base);
+gboolean editing_host_page_has_photo (EditingHostPage* self);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_file_format (Photo* self);
+gboolean photo_file_format_can_write (PhotoFileFormat self);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+void command_manager_reset (CommandManager* self);
+static gboolean direct_photo_page_real_on_double_click (EditingHostPage* base, GdkEventButton* event);
+GtkWindow* page_get_container (Page* self);
+void fullscreen_window_close (FullscreenWindow* self);
+gboolean editing_host_page_on_double_click (EditingHostPage* self, GdkEventButton* event);
+static void direct_photo_page_real_update_ui (EditingHostPage* base, gboolean missing);
+void editing_host_page_update_ui (EditingHostPage* self, gboolean missing);
+static void direct_photo_page_real_update_actions (Page* base, gint selected_count, gint count);
+gint data_collection_get_count (DataCollection* self);
+gboolean photo_has_transformations (Photo* self);
+gboolean editing_host_page_is_rotate_available (EditingHostPage* self, Photo* photo);
+gboolean editing_host_page_is_enhance_available (EditingHostPage* self, Photo* photo);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+gboolean editing_tools_crop_tool_is_available (Photo* photo, Scaling* scaling);
+void scaling_for_original (Scaling* result);
+gboolean editing_tools_redeye_tool_is_available (Photo* photo, Scaling* scaling);
+void page_update_actions (Page* self, gint selected_count, gint count);
+static gboolean direct_photo_page_check_ok_to_close_photo (DirectPhotoPage* self, Photo* photo);
+gboolean photo_has_alterations (Photo* self);
+void photo_remove_all_transformations (Photo* self);
+GtkResponseType app_window_negate_affirm_cancel_question (const gchar* message, const gchar* negative, const gchar* affirmative, const gchar* title, GtkWindow* parent);
+gchar* media_source_get_basename (MediaSource* self);
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+static void direct_photo_page_save (DirectPhotoPage* self, GFile* dest, gint scale, ScaleConstraint constraint, JpegQuality quality, PhotoFileFormat format, gboolean copy_unmodified, gboolean save_metadata);
+gboolean direct_photo_page_check_quit (DirectPhotoPage* self);
+static gboolean direct_photo_page_real_confirm_replace_photo (EditingHostPage* base, Photo* old_photo, Photo* new_photo);
+void scaling_for_constraint (ScaleConstraint constraint, gint scale, gboolean scale_up, Scaling* result);
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error);
+gchar* direct_photo_source_collection_fetch (DirectPhotoSourceCollection* self, GFile* file, DirectPhoto** photo, gboolean reimport);
+GType direct_view_get_type (void) G_GNUC_CONST;
+DirectView* direct_view_new (DirectPhoto* source);
+DirectView* direct_view_construct (GType object_type, DirectPhoto* source);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+void direct_photo_source_collection_reimport_photo (DirectPhotoSourceCollection* self, DirectPhoto* photo);
+GType export_dialog_get_type (void) G_GNUC_CONST;
+ExportDialog* export_dialog_new (const gchar* title);
+ExportDialog* export_dialog_construct (GType object_type, const gchar* title);
+GType export_format_parameters_get_type (void) G_GNUC_CONST;
+GType export_format_mode_get_type (void) G_GNUC_CONST;
+ExportFormatParameters* export_format_parameters_dup (const ExportFormatParameters* self);
+void export_format_parameters_free (ExportFormatParameters* self);
+void export_format_parameters_last (ExportFormatParameters* result);
+gboolean export_dialog_execute (ExportDialog* self, gint* scale, ScaleConstraint* constraint, ExportFormatParameters* parameters);
+gchar* photo_get_export_basename_for_parameters (Photo* self, ExportFormatParameters* params);
+PhotoFileFormat photo_get_export_format_for_parameters (Photo* self, ExportFormatParameters* params);
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+PhotoFileFormatProperties* photo_file_format_get_properties (PhotoFileFormat self);
+gchar** photo_file_format_properties_get_known_extensions (PhotoFileFormatProperties* self, int* result_length1);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+#define RESOURCES_OK_LABEL _ ("_OK")
+void desktop_integration_send_to (GeeCollection* media);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+static gboolean direct_photo_page_real_on_app_key_pressed (Page* base, GdkEventKey* event);
+void page_activate_action (Page* self, const gchar* name);
+gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event);
+gint view_collection_get_selected_count (ViewCollection* self);
+gpointer print_manager_ref (gpointer instance);
+void print_manager_unref (gpointer instance);
+GParamSpec* param_spec_print_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_print_manager (GValue* value, gpointer v_object);
+void value_take_print_manager (GValue* value, gpointer v_object);
+gpointer value_get_print_manager (const GValue* value);
+GType print_manager_get_type (void) G_GNUC_CONST;
+PrintManager* print_manager_get_instance (void);
+void print_manager_spool_photo (PrintManager* self, GeeCollection* to_print);
+GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t);
+static Block6Data* block6_data_ref (Block6Data* _data6_);
+static void block6_data_unref (void * _userdata_);
+static gboolean __lambda14_ (Block6Data* _data6_);
+void editing_host_page_enable_rotate (EditingHostPage* self, gboolean should_enable);
+static gboolean ___lambda14__gsource_func (gpointer self);
+static DataView* direct_photo_page_real_create_photo_view (EditingHostPage* base, DataSource* source);
+static void direct_photo_page_finalize (GObject* obj);
+GType direct_fullscreen_photo_page_get_type (void) G_GNUC_CONST;
+enum {
+ DIRECT_FULLSCREEN_PHOTO_PAGE_DUMMY_PROPERTY
+};
+DirectFullscreenPhotoPage* direct_fullscreen_photo_page_new (GFile* file);
+DirectFullscreenPhotoPage* direct_fullscreen_photo_page_construct (GType object_type, GFile* file);
+static void direct_fullscreen_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static void _direct_photo_page_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_photos_altered ((DirectPhotoPage*) self, items);
+#line 937 "DirectPhotoPage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 944 "DirectPhotoPage.c"
+}
+
+
+static void _direct_photo_page_on_selection_group_altered_view_collection_selection_group_altered (ViewCollection* _sender, gpointer self) {
+#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_selection_group_altered ((DirectPhotoPage*) self);
+#line 951 "DirectPhotoPage.c"
+}
+
+
+DirectPhotoPage* direct_photo_page_construct (GType object_type, GFile* file) {
+ DirectPhotoPage * self = NULL;
+ DirectPhotoSourceCollection* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ DirectViewCollection* _tmp10_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ DirectPhotoSourceCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = direct_photo_global;
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = file;
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = g_file_get_basename (_tmp1_);
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = (DirectPhotoPage*) editing_host_page_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp3_);
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp3_);
+#line 16 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = file;
+#line 16 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = direct_photo_page_check_editable_file (_tmp4_);
+#line 16 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (!_tmp5_) {
+#line 991 "DirectPhotoPage.c"
+ Application* _tmp6_ = NULL;
+ Application* _tmp7_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = application_get_instance ();
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ application_panic (_tmp7_);
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _application_unref0 (_tmp7_);
+#line 19 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return self;
+#line 1004 "DirectPhotoPage.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = file;
+#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = _g_object_ref0 (_tmp8_);
+#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (self->priv->initial_file);
+#line 22 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->initial_file = _tmp9_;
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = direct_view_collection_new ();
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data_collection_unref0 (self->priv->view_controller);
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->view_controller = _tmp10_;
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = file;
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = g_file_get_parent (_tmp11_);
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (self->priv->current_save_dir);
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->current_save_dir = _tmp12_;
+#line 26 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = direct_photo_global;
+#line 26 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _direct_photo_page_on_photos_altered_data_collection_items_altered, self, 0);
+#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = _tmp14_;
+#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_signal_connect_object (_tmp15_, "selection-group-altered", (GCallback) _direct_photo_page_on_selection_group_altered_view_collection_selection_group_altered, self, 0);
+#line 28 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return self;
+#line 1042 "DirectPhotoPage.c"
+}
+
+
+DirectPhotoPage* direct_photo_page_new (GFile* file) {
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return direct_photo_page_construct (TYPE_DIRECT_PHOTO_PAGE, file);
+#line 1049 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ DirectPhotoPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 35 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = ui_filenames;
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ PAGE_CLASS (direct_photo_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp0_);
+#line 38 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = ui_filenames;
+#line 38 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "direct_context.ui");
+#line 39 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = ui_filenames;
+#line 39 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), "direct.ui");
+#line 1074 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add91 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1085 "DirectPhotoPage.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1089 "DirectPhotoPage.c"
+}
+
+
+static void _direct_photo_page_on_save_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_save ((DirectPhotoPage*) self);
+#line 1096 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add92 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1107 "DirectPhotoPage.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1111 "DirectPhotoPage.c"
+}
+
+
+static void _direct_photo_page_on_save_as_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_save_as ((DirectPhotoPage*) self);
+#line 1118 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add93 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1129 "DirectPhotoPage.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1133 "DirectPhotoPage.c"
+}
+
+
+static void _direct_photo_page_on_send_to_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_send_to ((DirectPhotoPage*) self);
+#line 1140 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add94 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1151 "DirectPhotoPage.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1155 "DirectPhotoPage.c"
+}
+
+
+static void _direct_photo_page_on_print_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_print ((DirectPhotoPage*) self);
+#line 1162 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add95 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1173 "DirectPhotoPage.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1177 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add96 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1188 "DirectPhotoPage.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1192 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add97 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1203 "DirectPhotoPage.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1207 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add98 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1218 "DirectPhotoPage.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1222 "DirectPhotoPage.c"
+}
+
+
+static void _single_photo_page_on_previous_photo_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ single_photo_page_on_previous_photo ((SinglePhotoPage*) self);
+#line 1229 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add99 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1240 "DirectPhotoPage.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1244 "DirectPhotoPage.c"
+}
+
+
+static void _single_photo_page_on_next_photo_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ single_photo_page_on_next_photo ((SinglePhotoPage*) self);
+#line 1251 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add100 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1262 "DirectPhotoPage.c"
+ }
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1266 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_rotate_clockwise_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_rotate_clockwise ((EditingHostPage*) self);
+#line 1273 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add101 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1284 "DirectPhotoPage.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1288 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_rotate_counterclockwise_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_rotate_counterclockwise ((EditingHostPage*) self);
+#line 1295 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add102 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1306 "DirectPhotoPage.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1310 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_flip_horizontally_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_flip_horizontally ((EditingHostPage*) self);
+#line 1317 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add103 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1328 "DirectPhotoPage.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1332 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_flip_vertically_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_flip_vertically ((EditingHostPage*) self);
+#line 1339 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add104 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1350 "DirectPhotoPage.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1354 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_enhance_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_enhance ((EditingHostPage*) self);
+#line 1361 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add105 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1372 "DirectPhotoPage.c"
+ }
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1376 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_crop_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_toggle_crop ((EditingHostPage*) self);
+#line 1383 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add106 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1394 "DirectPhotoPage.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1398 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_straighten_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_toggle_straighten ((EditingHostPage*) self);
+#line 1405 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add107 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1416 "DirectPhotoPage.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1420 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_redeye_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_toggle_redeye ((EditingHostPage*) self);
+#line 1427 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add108 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1438 "DirectPhotoPage.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1442 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_toggle_adjust_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_toggle_adjust ((EditingHostPage*) self);
+#line 1449 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add109 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1460 "DirectPhotoPage.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1464 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_revert_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_revert ((EditingHostPage*) self);
+#line 1471 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add110 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1482 "DirectPhotoPage.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1486 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_adjust_date_time_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_adjust_date_time ((EditingHostPage*) self);
+#line 1493 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add111 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1504 "DirectPhotoPage.c"
+ }
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1508 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_set_background_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_set_background ((EditingHostPage*) self);
+#line 1515 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add112 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1526 "DirectPhotoPage.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1530 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add113 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1541 "DirectPhotoPage.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1545 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add114 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1556 "DirectPhotoPage.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1560 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_increase_size_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_increase_size ((EditingHostPage*) self);
+#line 1567 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add115 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1578 "DirectPhotoPage.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1582 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_on_decrease_size_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_on_decrease_size ((EditingHostPage*) self);
+#line 1589 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add116 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1600 "DirectPhotoPage.c"
+ }
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1604 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_snap_zoom_to_min_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_snap_zoom_to_min ((EditingHostPage*) self);
+#line 1611 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add117 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1622 "DirectPhotoPage.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1626 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_snap_zoom_to_isomorphic ((EditingHostPage*) self);
+#line 1633 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add118 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1644 "DirectPhotoPage.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1648 "DirectPhotoPage.c"
+}
+
+
+static void _editing_host_page_snap_zoom_to_max_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_snap_zoom_to_max ((EditingHostPage*) self);
+#line 1655 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add119 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1666 "DirectPhotoPage.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1670 "DirectPhotoPage.c"
+}
+
+
+static GtkActionEntry* direct_photo_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ DirectPhotoPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry file = {0};
+ GtkActionEntry _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+ GtkActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry save = {0};
+ GtkActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry save_as = {0};
+ GtkActionEntry _tmp11_ = {0};
+ const gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GtkActionEntry* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ GtkActionEntry _tmp15_ = {0};
+ GtkActionEntry send_to = {0};
+ GtkActionEntry _tmp16_ = {0};
+ GtkActionEntry* _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ GtkActionEntry _tmp18_ = {0};
+ GtkActionEntry print = {0};
+ GtkActionEntry _tmp19_ = {0};
+ const gchar* _tmp20_ = NULL;
+ GtkActionEntry* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GtkActionEntry _tmp22_ = {0};
+ GtkActionEntry edit = {0};
+ GtkActionEntry _tmp23_ = {0};
+ const gchar* _tmp24_ = NULL;
+ GtkActionEntry* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ GtkActionEntry _tmp26_ = {0};
+ GtkActionEntry photo = {0};
+ GtkActionEntry _tmp27_ = {0};
+ const gchar* _tmp28_ = NULL;
+ GtkActionEntry* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ GtkActionEntry _tmp30_ = {0};
+ GtkActionEntry tools = {0};
+ GtkActionEntry _tmp31_ = {0};
+ const gchar* _tmp32_ = NULL;
+ GtkActionEntry* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ GtkActionEntry _tmp34_ = {0};
+ GtkActionEntry prev = {0};
+ GtkActionEntry _tmp35_ = {0};
+ const gchar* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ GtkActionEntry* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ GtkActionEntry _tmp39_ = {0};
+ GtkActionEntry next = {0};
+ GtkActionEntry _tmp40_ = {0};
+ const gchar* _tmp41_ = NULL;
+ const gchar* _tmp42_ = NULL;
+ GtkActionEntry* _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ GtkActionEntry _tmp44_ = {0};
+ GtkActionEntry rotate_right = {0};
+ GtkActionEntry _tmp45_ = {0};
+ GtkActionEntry* _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ GtkActionEntry _tmp47_ = {0};
+ GtkActionEntry rotate_left = {0};
+ GtkActionEntry _tmp48_ = {0};
+ GtkActionEntry* _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ GtkActionEntry _tmp50_ = {0};
+ GtkActionEntry hflip = {0};
+ GtkActionEntry _tmp51_ = {0};
+ GtkActionEntry* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ GtkActionEntry _tmp53_ = {0};
+ GtkActionEntry vflip = {0};
+ GtkActionEntry _tmp54_ = {0};
+ GtkActionEntry* _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ GtkActionEntry _tmp56_ = {0};
+ GtkActionEntry enhance = {0};
+ GtkActionEntry _tmp57_ = {0};
+ GtkActionEntry* _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ GtkActionEntry _tmp59_ = {0};
+ GtkActionEntry crop = {0};
+ GtkActionEntry _tmp60_ = {0};
+ GtkActionEntry* _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+ GtkActionEntry _tmp62_ = {0};
+ GtkActionEntry straighten = {0};
+ GtkActionEntry _tmp63_ = {0};
+ GtkActionEntry* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ GtkActionEntry _tmp65_ = {0};
+ GtkActionEntry red_eye = {0};
+ GtkActionEntry _tmp66_ = {0};
+ GtkActionEntry* _tmp67_ = NULL;
+ gint _tmp67__length1 = 0;
+ GtkActionEntry _tmp68_ = {0};
+ GtkActionEntry adjust = {0};
+ GtkActionEntry _tmp69_ = {0};
+ GtkActionEntry* _tmp70_ = NULL;
+ gint _tmp70__length1 = 0;
+ GtkActionEntry _tmp71_ = {0};
+ GtkActionEntry revert = {0};
+ GtkActionEntry _tmp72_ = {0};
+ GtkActionEntry* _tmp73_ = NULL;
+ gint _tmp73__length1 = 0;
+ GtkActionEntry _tmp74_ = {0};
+ GtkActionEntry adjust_date_time = {0};
+ GtkActionEntry _tmp75_ = {0};
+ GtkActionEntry* _tmp76_ = NULL;
+ gint _tmp76__length1 = 0;
+ GtkActionEntry _tmp77_ = {0};
+ GtkActionEntry set_background = {0};
+ GtkActionEntry _tmp78_ = {0};
+ GtkActionEntry* _tmp79_ = NULL;
+ gint _tmp79__length1 = 0;
+ GtkActionEntry _tmp80_ = {0};
+ GtkActionEntry view = {0};
+ GtkActionEntry _tmp81_ = {0};
+ const gchar* _tmp82_ = NULL;
+ GtkActionEntry* _tmp83_ = NULL;
+ gint _tmp83__length1 = 0;
+ GtkActionEntry _tmp84_ = {0};
+ GtkActionEntry help = {0};
+ GtkActionEntry _tmp85_ = {0};
+ const gchar* _tmp86_ = NULL;
+ GtkActionEntry* _tmp87_ = NULL;
+ gint _tmp87__length1 = 0;
+ GtkActionEntry _tmp88_ = {0};
+ GtkActionEntry increase_size = {0};
+ GtkActionEntry _tmp89_ = {0};
+ const gchar* _tmp90_ = NULL;
+ const gchar* _tmp91_ = NULL;
+ GtkActionEntry* _tmp92_ = NULL;
+ gint _tmp92__length1 = 0;
+ GtkActionEntry _tmp93_ = {0};
+ GtkActionEntry decrease_size = {0};
+ GtkActionEntry _tmp94_ = {0};
+ const gchar* _tmp95_ = NULL;
+ const gchar* _tmp96_ = NULL;
+ GtkActionEntry* _tmp97_ = NULL;
+ gint _tmp97__length1 = 0;
+ GtkActionEntry _tmp98_ = {0};
+ GtkActionEntry best_fit = {0};
+ GtkActionEntry _tmp99_ = {0};
+ const gchar* _tmp100_ = NULL;
+ const gchar* _tmp101_ = NULL;
+ GtkActionEntry* _tmp102_ = NULL;
+ gint _tmp102__length1 = 0;
+ GtkActionEntry _tmp103_ = {0};
+ GtkActionEntry actual_size = {0};
+ GtkActionEntry _tmp104_ = {0};
+ const gchar* _tmp105_ = NULL;
+ const gchar* _tmp106_ = NULL;
+ GtkActionEntry* _tmp107_ = NULL;
+ gint _tmp107__length1 = 0;
+ GtkActionEntry _tmp108_ = {0};
+ GtkActionEntry max_size = {0};
+ GtkActionEntry _tmp109_ = {0};
+ const gchar* _tmp110_ = NULL;
+ const gchar* _tmp111_ = NULL;
+ GtkActionEntry* _tmp112_ = NULL;
+ gint _tmp112__length1 = 0;
+ GtkActionEntry _tmp113_ = {0};
+ GtkActionEntry* _tmp114_ = NULL;
+ gint _tmp114__length1 = 0;
+#line 42 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = PAGE_CLASS (direct_photo_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), &_tmp0_);
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ actions = _tmp1_;
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ actions_length1 = _tmp0_;
+#line 43 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _actions_size_ = actions_length1;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_.name = "FileMenu";
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_.stock_id = NULL;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_.accelerator = NULL;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_.tooltip = NULL;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_.callback = (GCallback) NULL;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ file = _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _ ("_File");
+#line 46 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ file.label = _tmp3_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = actions;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4__length1 = actions_length1;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = file;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add91 (&actions, &actions_length1, &_actions_size_, &_tmp5_);
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_.name = "Save";
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_.stock_id = RESOURCES_SAVE_LABEL;
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_.label = TRANSLATABLE;
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_.accelerator = "<Ctrl>S";
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_.tooltip = TRANSLATABLE;
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_.callback = (GCallback) _direct_photo_page_on_save_gtk_action_callback;
+#line 49 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save = _tmp6_;
+#line 51 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = _ ("_Save");
+#line 51 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save.label = _tmp7_;
+#line 52 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = _ ("Save photo");
+#line 52 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save.tooltip = _tmp8_;
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = actions;
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9__length1 = actions_length1;
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = save;
+#line 53 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add92 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_.name = "SaveAs";
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_.stock_id = RESOURCES_SAVE_AS_LABEL;
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_.label = TRANSLATABLE;
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_.accelerator = "<Ctrl><Shift>S";
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_.tooltip = TRANSLATABLE;
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_.callback = (GCallback) _direct_photo_page_on_save_as_gtk_action_callback;
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save_as = _tmp11_;
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = _ ("Save _As...");
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save_as.label = _tmp12_;
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = _ ("Save photo with a different name");
+#line 58 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save_as.tooltip = _tmp13_;
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = actions;
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14__length1 = actions_length1;
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = save_as;
+#line 59 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add93 (&actions, &actions_length1, &_actions_size_, &_tmp15_);
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_.name = "SendTo";
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_.stock_id = "document-send";
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_.label = TRANSLATABLE;
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_.accelerator = NULL;
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_.tooltip = TRANSLATABLE;
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_.callback = (GCallback) _direct_photo_page_on_send_to_gtk_action_callback;
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ send_to = _tmp16_;
+#line 63 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ send_to.label = RESOURCES_SEND_TO_MENU;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = actions;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17__length1 = actions_length1;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = send_to;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add94 (&actions, &actions_length1, &_actions_size_, &_tmp18_);
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_.name = "Print";
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_.stock_id = RESOURCES_PRINT_LABEL;
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_.label = TRANSLATABLE;
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_.accelerator = "<Ctrl>P";
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_.tooltip = TRANSLATABLE;
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_.callback = (GCallback) _direct_photo_page_on_print_gtk_action_callback;
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ print = _tmp19_;
+#line 68 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ print.label = RESOURCES_PRINT_MENU;
+#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp20_ = _ ("Print the photo to a printer connected to your computer");
+#line 69 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ print.tooltip = _tmp20_;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21_ = actions;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21__length1 = actions_length1;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = print;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add95 (&actions, &actions_length1, &_actions_size_, &_tmp22_);
+#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_.name = "EditMenu";
+#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_.stock_id = NULL;
+#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_.label = TRANSLATABLE;
+#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_.accelerator = NULL;
+#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_.tooltip = NULL;
+#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_.callback = (GCallback) NULL;
+#line 72 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ edit = _tmp23_;
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = _ ("_Edit");
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ edit.label = _tmp24_;
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = actions;
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25__length1 = actions_length1;
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = edit;
+#line 74 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add96 (&actions, &actions_length1, &_actions_size_, &_tmp26_);
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_.name = "PhotoMenu";
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_.stock_id = NULL;
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_.label = "";
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_.accelerator = NULL;
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_.tooltip = NULL;
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_.callback = (GCallback) NULL;
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo = _tmp27_;
+#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp28_ = _ ("_Photo");
+#line 77 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo.label = _tmp28_;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29_ = actions;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29__length1 = actions_length1;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp30_ = photo;
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add97 (&actions, &actions_length1, &_actions_size_, &_tmp30_);
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_.name = "Tools";
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_.stock_id = NULL;
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_.label = TRANSLATABLE;
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_.accelerator = NULL;
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_.tooltip = NULL;
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_.callback = (GCallback) NULL;
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ tools = _tmp31_;
+#line 81 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp32_ = _ ("T_ools");
+#line 81 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ tools.label = _tmp32_;
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp33_ = actions;
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp33__length1 = actions_length1;
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp34_ = tools;
+#line 82 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add98 (&actions, &actions_length1, &_actions_size_, &_tmp34_);
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_.name = "PrevPhoto";
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_.stock_id = RESOURCES_PREVIOUS_LABEL;
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_.label = TRANSLATABLE;
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_.accelerator = NULL;
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_.tooltip = TRANSLATABLE;
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_.callback = (GCallback) _single_photo_page_on_previous_photo_gtk_action_callback;
+#line 84 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ prev = _tmp35_;
+#line 86 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp36_ = _ ("_Previous Photo");
+#line 86 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ prev.label = _tmp36_;
+#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp37_ = _ ("Previous Photo");
+#line 87 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ prev.tooltip = _tmp37_;
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp38_ = actions;
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp38__length1 = actions_length1;
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp39_ = prev;
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add99 (&actions, &actions_length1, &_actions_size_, &_tmp39_);
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_.name = "NextPhoto";
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_.stock_id = RESOURCES_NEXT_LABEL;
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_.label = TRANSLATABLE;
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_.accelerator = NULL;
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_.tooltip = TRANSLATABLE;
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_.callback = (GCallback) _single_photo_page_on_next_photo_gtk_action_callback;
+#line 90 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ next = _tmp40_;
+#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp41_ = _ ("_Next Photo");
+#line 92 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ next.label = _tmp41_;
+#line 93 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp42_ = _ ("Next Photo");
+#line 93 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ next.tooltip = _tmp42_;
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp43_ = actions;
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp43__length1 = actions_length1;
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp44_ = next;
+#line 94 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add100 (&actions, &actions_length1, &_actions_size_, &_tmp44_);
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_.name = "RotateClockwise";
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_.stock_id = RESOURCES_CLOCKWISE;
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_.label = TRANSLATABLE;
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_.accelerator = "<Ctrl>R";
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_.tooltip = TRANSLATABLE;
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_.callback = (GCallback) _editing_host_page_on_rotate_clockwise_gtk_action_callback;
+#line 96 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ rotate_right = _tmp45_;
+#line 98 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ rotate_right.label = RESOURCES_ROTATE_CW_MENU;
+#line 99 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ rotate_right.tooltip = RESOURCES_ROTATE_CCW_TOOLTIP;
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp46_ = actions;
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp46__length1 = actions_length1;
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp47_ = rotate_right;
+#line 100 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add101 (&actions, &actions_length1, &_actions_size_, &_tmp47_);
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp48_.name = "RotateCounterclockwise";
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp48_.stock_id = RESOURCES_COUNTERCLOCKWISE;
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp48_.label = TRANSLATABLE;
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp48_.accelerator = "<Ctrl><Shift>R";
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp48_.tooltip = TRANSLATABLE;
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp48_.callback = (GCallback) _editing_host_page_on_rotate_counterclockwise_gtk_action_callback;
+#line 102 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ rotate_left = _tmp48_;
+#line 104 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ rotate_left.label = RESOURCES_ROTATE_CCW_MENU;
+#line 105 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ rotate_left.tooltip = RESOURCES_ROTATE_CCW_TOOLTIP;
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp49_ = actions;
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp49__length1 = actions_length1;
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp50_ = rotate_left;
+#line 106 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add102 (&actions, &actions_length1, &_actions_size_, &_tmp50_);
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp51_.name = "FlipHorizontally";
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp51_.stock_id = RESOURCES_HFLIP;
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp51_.label = TRANSLATABLE;
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp51_.accelerator = NULL;
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp51_.tooltip = TRANSLATABLE;
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp51_.callback = (GCallback) _editing_host_page_on_flip_horizontally_gtk_action_callback;
+#line 108 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ hflip = _tmp51_;
+#line 110 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ hflip.label = RESOURCES_HFLIP_MENU;
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp52_ = actions;
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp52__length1 = actions_length1;
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp53_ = hflip;
+#line 111 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add103 (&actions, &actions_length1, &_actions_size_, &_tmp53_);
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp54_.name = "FlipVertically";
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp54_.stock_id = RESOURCES_VFLIP;
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp54_.label = TRANSLATABLE;
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp54_.accelerator = NULL;
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp54_.tooltip = TRANSLATABLE;
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp54_.callback = (GCallback) _editing_host_page_on_flip_vertically_gtk_action_callback;
+#line 113 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ vflip = _tmp54_;
+#line 115 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ vflip.label = RESOURCES_VFLIP_MENU;
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp55_ = actions;
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp55__length1 = actions_length1;
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp56_ = vflip;
+#line 116 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add104 (&actions, &actions_length1, &_actions_size_, &_tmp56_);
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp57_.name = "Enhance";
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp57_.stock_id = RESOURCES_ENHANCE;
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp57_.label = TRANSLATABLE;
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp57_.accelerator = "<Ctrl>E";
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp57_.tooltip = TRANSLATABLE;
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp57_.callback = (GCallback) _editing_host_page_on_enhance_gtk_action_callback;
+#line 118 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ enhance = _tmp57_;
+#line 120 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ enhance.label = RESOURCES_ENHANCE_MENU;
+#line 121 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ enhance.tooltip = RESOURCES_ENHANCE_TOOLTIP;
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp58_ = actions;
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp58__length1 = actions_length1;
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp59_ = enhance;
+#line 122 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add105 (&actions, &actions_length1, &_actions_size_, &_tmp59_);
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp60_.name = "Crop";
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp60_.stock_id = RESOURCES_CROP;
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp60_.label = TRANSLATABLE;
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp60_.accelerator = "<Ctrl>O";
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp60_.tooltip = TRANSLATABLE;
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp60_.callback = (GCallback) _editing_host_page_toggle_crop_gtk_action_callback;
+#line 124 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ crop = _tmp60_;
+#line 126 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ crop.label = RESOURCES_CROP_MENU;
+#line 127 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ crop.tooltip = RESOURCES_CROP_TOOLTIP;
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp61_ = actions;
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp61__length1 = actions_length1;
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp62_ = crop;
+#line 128 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add106 (&actions, &actions_length1, &_actions_size_, &_tmp62_);
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp63_.name = "Straighten";
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp63_.stock_id = RESOURCES_REFRESH_LABEL;
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp63_.label = TRANSLATABLE;
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp63_.accelerator = "<Ctrl>A";
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp63_.tooltip = TRANSLATABLE;
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp63_.callback = (GCallback) _editing_host_page_toggle_straighten_gtk_action_callback;
+#line 130 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ straighten = _tmp63_;
+#line 132 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ straighten.label = RESOURCES_STRAIGHTEN_MENU;
+#line 133 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ straighten.tooltip = RESOURCES_STRAIGHTEN_TOOLTIP;
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp64_ = actions;
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp64__length1 = actions_length1;
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp65_ = straighten;
+#line 134 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add107 (&actions, &actions_length1, &_actions_size_, &_tmp65_);
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp66_.name = "RedEye";
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp66_.stock_id = RESOURCES_REDEYE;
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp66_.label = TRANSLATABLE;
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp66_.accelerator = "<Ctrl>Y";
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp66_.tooltip = TRANSLATABLE;
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp66_.callback = (GCallback) _editing_host_page_toggle_redeye_gtk_action_callback;
+#line 136 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ red_eye = _tmp66_;
+#line 138 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ red_eye.label = RESOURCES_RED_EYE_MENU;
+#line 139 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ red_eye.tooltip = RESOURCES_RED_EYE_TOOLTIP;
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp67_ = actions;
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp67__length1 = actions_length1;
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp68_ = red_eye;
+#line 140 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add108 (&actions, &actions_length1, &_actions_size_, &_tmp68_);
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp69_.name = "Adjust";
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp69_.stock_id = RESOURCES_ADJUST;
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp69_.label = TRANSLATABLE;
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp69_.accelerator = "<Ctrl>D";
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp69_.tooltip = TRANSLATABLE;
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp69_.callback = (GCallback) _editing_host_page_toggle_adjust_gtk_action_callback;
+#line 142 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ adjust = _tmp69_;
+#line 144 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ adjust.label = RESOURCES_ADJUST_MENU;
+#line 145 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ adjust.tooltip = RESOURCES_ADJUST_TOOLTIP;
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp70_ = actions;
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp70__length1 = actions_length1;
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp71_ = adjust;
+#line 146 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add109 (&actions, &actions_length1, &_actions_size_, &_tmp71_);
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp72_.name = "Revert";
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp72_.stock_id = RESOURCES_REVERT_LABEL;
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp72_.label = TRANSLATABLE;
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp72_.accelerator = NULL;
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp72_.tooltip = TRANSLATABLE;
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp72_.callback = (GCallback) _editing_host_page_on_revert_gtk_action_callback;
+#line 148 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ revert = _tmp72_;
+#line 150 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ revert.label = RESOURCES_REVERT_MENU;
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp73_ = actions;
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp73__length1 = actions_length1;
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp74_ = revert;
+#line 151 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add110 (&actions, &actions_length1, &_actions_size_, &_tmp74_);
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp75_.name = "AdjustDateTime";
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp75_.stock_id = NULL;
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp75_.label = TRANSLATABLE;
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp75_.accelerator = NULL;
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp75_.tooltip = TRANSLATABLE;
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp75_.callback = (GCallback) _editing_host_page_on_adjust_date_time_gtk_action_callback;
+#line 153 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ adjust_date_time = _tmp75_;
+#line 155 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ adjust_date_time.label = RESOURCES_ADJUST_DATE_TIME_MENU;
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp76_ = actions;
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp76__length1 = actions_length1;
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp77_ = adjust_date_time;
+#line 156 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add111 (&actions, &actions_length1, &_actions_size_, &_tmp77_);
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp78_.name = "SetBackground";
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp78_.stock_id = NULL;
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp78_.label = TRANSLATABLE;
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp78_.accelerator = "<Ctrl>B";
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp78_.tooltip = TRANSLATABLE;
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp78_.callback = (GCallback) _editing_host_page_on_set_background_gtk_action_callback;
+#line 158 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ set_background = _tmp78_;
+#line 160 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ set_background.label = RESOURCES_SET_BACKGROUND_MENU;
+#line 161 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ set_background.tooltip = RESOURCES_SET_BACKGROUND_TOOLTIP;
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp79_ = actions;
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp79__length1 = actions_length1;
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp80_ = set_background;
+#line 162 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add112 (&actions, &actions_length1, &_actions_size_, &_tmp80_);
+#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp81_.name = "ViewMenu";
+#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp81_.stock_id = NULL;
+#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp81_.label = TRANSLATABLE;
+#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp81_.accelerator = NULL;
+#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp81_.tooltip = NULL;
+#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp81_.callback = (GCallback) NULL;
+#line 164 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ view = _tmp81_;
+#line 165 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp82_ = _ ("_View");
+#line 165 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ view.label = _tmp82_;
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp83_ = actions;
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp83__length1 = actions_length1;
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp84_ = view;
+#line 166 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add113 (&actions, &actions_length1, &_actions_size_, &_tmp84_);
+#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp85_.name = "HelpMenu";
+#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp85_.stock_id = NULL;
+#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp85_.label = TRANSLATABLE;
+#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp85_.accelerator = NULL;
+#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp85_.tooltip = NULL;
+#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp85_.callback = (GCallback) NULL;
+#line 168 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ help = _tmp85_;
+#line 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp86_ = _ ("_Help");
+#line 169 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ help.label = _tmp86_;
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp87_ = actions;
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp87__length1 = actions_length1;
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp88_ = help;
+#line 170 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add114 (&actions, &actions_length1, &_actions_size_, &_tmp88_);
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp89_.name = "IncreaseSize";
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp89_.stock_id = RESOURCES_ZOOM_IN_LABEL;
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp89_.label = TRANSLATABLE;
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp89_.accelerator = "<Ctrl>plus";
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp89_.tooltip = TRANSLATABLE;
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp89_.callback = (GCallback) _editing_host_page_on_increase_size_gtk_action_callback;
+#line 172 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ increase_size = _tmp89_;
+#line 174 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp90_ = _ ("Zoom _In");
+#line 174 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ increase_size.label = _tmp90_;
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp91_ = _ ("Increase the magnification of the photo");
+#line 175 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ increase_size.tooltip = _tmp91_;
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp92_ = actions;
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp92__length1 = actions_length1;
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp93_ = increase_size;
+#line 176 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add115 (&actions, &actions_length1, &_actions_size_, &_tmp93_);
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp94_.name = "DecreaseSize";
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp94_.stock_id = RESOURCES_ZOOM_OUT_LABEL;
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp94_.label = TRANSLATABLE;
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp94_.accelerator = "<Ctrl>minus";
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp94_.tooltip = TRANSLATABLE;
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp94_.callback = (GCallback) _editing_host_page_on_decrease_size_gtk_action_callback;
+#line 178 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ decrease_size = _tmp94_;
+#line 180 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp95_ = _ ("Zoom _Out");
+#line 180 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ decrease_size.label = _tmp95_;
+#line 181 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp96_ = _ ("Decrease the magnification of the photo");
+#line 181 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ decrease_size.tooltip = _tmp96_;
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp97_ = actions;
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp97__length1 = actions_length1;
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp98_ = decrease_size;
+#line 182 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add116 (&actions, &actions_length1, &_actions_size_, &_tmp98_);
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp99_.name = "ZoomFit";
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp99_.stock_id = RESOURCES_ZOOM_FIT_LABEL;
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp99_.label = TRANSLATABLE;
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp99_.accelerator = "<Ctrl>0";
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp99_.tooltip = TRANSLATABLE;
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp99_.callback = (GCallback) _editing_host_page_snap_zoom_to_min_gtk_action_callback;
+#line 184 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ best_fit = _tmp99_;
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp100_ = _ ("Fit to _Page");
+#line 186 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ best_fit.label = _tmp100_;
+#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp101_ = _ ("Zoom the photo to fit on the screen");
+#line 187 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ best_fit.tooltip = _tmp101_;
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp102_ = actions;
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp102__length1 = actions_length1;
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp103_ = best_fit;
+#line 188 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add117 (&actions, &actions_length1, &_actions_size_, &_tmp103_);
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp104_.name = "Zoom100";
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp104_.stock_id = RESOURCES_ZOOM_100_LABEL;
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp104_.label = TRANSLATABLE;
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp104_.accelerator = "<Ctrl>1";
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp104_.tooltip = TRANSLATABLE;
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp104_.callback = (GCallback) _editing_host_page_snap_zoom_to_isomorphic_gtk_action_callback;
+#line 190 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ actual_size = _tmp104_;
+#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp105_ = _ ("Zoom _100%");
+#line 193 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ actual_size.label = _tmp105_;
+#line 195 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp106_ = _ ("Zoom the photo to 100% magnification");
+#line 195 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ actual_size.tooltip = _tmp106_;
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp107_ = actions;
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp107__length1 = actions_length1;
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp108_ = actual_size;
+#line 196 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add118 (&actions, &actions_length1, &_actions_size_, &_tmp108_);
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp109_.name = "Zoom200";
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp109_.stock_id = NULL;
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp109_.label = TRANSLATABLE;
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp109_.accelerator = "<Ctrl>2";
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp109_.tooltip = TRANSLATABLE;
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp109_.callback = (GCallback) _editing_host_page_snap_zoom_to_max_gtk_action_callback;
+#line 198 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ max_size = _tmp109_;
+#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp110_ = _ ("Zoom _200%");
+#line 201 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ max_size.label = _tmp110_;
+#line 203 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp111_ = _ ("Zoom the photo to 200% magnification");
+#line 203 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ max_size.tooltip = _tmp111_;
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp112_ = actions;
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp112__length1 = actions_length1;
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp113_ = max_size;
+#line 204 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add119 (&actions, &actions_length1, &_actions_size_, &_tmp113_);
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp114_ = actions;
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp114__length1 = actions_length1;
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (result_length1) {
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *result_length1 = _tmp114__length1;
+#line 2654 "DirectPhotoPage.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = _tmp114_;
+#line 206 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 2660 "DirectPhotoPage.c"
+}
+
+
+static gpointer _injection_group_ref0 (gpointer self) {
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return self ? injection_group_ref (self) : NULL;
+#line 2667 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add120 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2678 "DirectPhotoPage.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = value;
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[*length] = NULL;
+#line 2684 "DirectPhotoPage.c"
+}
+
+
+static void _vala_array_add121 (InjectionGroup*** array, int* length, int* size, InjectionGroup* value) {
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if ((*length) == (*size)) {
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *array = g_renew (InjectionGroup*, *array, (*size) + 1);
+#line 2695 "DirectPhotoPage.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[(*length)++] = value;
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ (*array)[*length] = NULL;
+#line 2701 "DirectPhotoPage.c"
+}
+
+
+static InjectionGroup** direct_photo_page_real_init_collect_injection_groups (Page* base, int* result_length1) {
+ DirectPhotoPage * self;
+ InjectionGroup** result = NULL;
+ InjectionGroup** groups = NULL;
+ gint _tmp0_ = 0;
+ InjectionGroup** _tmp1_ = NULL;
+ gint groups_length1 = 0;
+ gint _groups_size_ = 0;
+ InjectionGroup* print_group = NULL;
+ InjectionGroup* _tmp2_ = NULL;
+ InjectionGroup** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ InjectionGroup* _tmp4_ = NULL;
+ InjectionGroup* bg_group = NULL;
+ InjectionGroup* _tmp5_ = NULL;
+ InjectionGroup** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ InjectionGroup* _tmp7_ = NULL;
+ InjectionGroup** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 209 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = PAGE_CLASS (direct_photo_page_parent_class)->init_collect_injection_groups (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), &_tmp0_);
+#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ groups = _tmp1_;
+#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ groups_length1 = _tmp0_;
+#line 210 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _groups_size_ = groups_length1;
+#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = injection_group_new ("/MenuBar/FileMenu/PrintPlaceholder");
+#line 212 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ print_group = _tmp2_;
+#line 213 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ injection_group_add_menu_item (print_group, "Print", NULL);
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = groups;
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3__length1 = groups_length1;
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = _injection_group_ref0 (print_group);
+#line 215 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add120 (&groups, &groups_length1, &_groups_size_, _tmp4_);
+#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = injection_group_new ("/MenuBar/FileMenu/SetBackgroundPlaceholder");
+#line 217 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ bg_group = _tmp5_;
+#line 218 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ injection_group_add_menu_item (bg_group, "SetBackground", NULL);
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = groups;
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6__length1 = groups_length1;
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = _injection_group_ref0 (bg_group);
+#line 220 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _vala_array_add121 (&groups, &groups_length1, &_groups_size_, _tmp7_);
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = groups;
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8__length1 = groups_length1;
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (result_length1) {
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ *result_length1 = _tmp8__length1;
+#line 2771 "DirectPhotoPage.c"
+ }
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = _tmp8_;
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _injection_group_unref0 (bg_group);
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _injection_group_unref0 (print_group);
+#line 222 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 2781 "DirectPhotoPage.c"
+}
+
+
+static gboolean direct_photo_page_check_editable_file (GFile* file) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 225 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = file;
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = g_file_test (_tmp2_, G_FILE_TEST_EXISTS);
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = !_tmp3_;
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp2_);
+#line 226 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp4_) {
+#line 2808 "DirectPhotoPage.c"
+ const gchar* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = _ ("%s does not exist.");
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = file;
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = g_strdup_printf (_tmp5_, _tmp8_);
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ app_window_error_message (_tmp10_, NULL);
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp10_);
+#line 227 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp8_);
+#line 2833 "DirectPhotoPage.c"
+ } else {
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = file;
+#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = _tmp12_;
+#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = g_file_test (_tmp13_, G_FILE_TEST_IS_REGULAR);
+#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = !_tmp14_;
+#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp13_);
+#line 228 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp15_) {
+#line 2854 "DirectPhotoPage.c"
+ const gchar* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = _ ("%s is not a file.");
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = file;
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = g_file_get_path (_tmp17_);
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp20_ = g_strdup_printf (_tmp16_, _tmp19_);
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21_ = _tmp20_;
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ app_window_error_message (_tmp21_, NULL);
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp21_);
+#line 229 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp19_);
+#line 2879 "DirectPhotoPage.c"
+ } else {
+ GFile* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = file;
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_ = photo_file_format_is_file_supported (_tmp22_);
+#line 230 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (!_tmp23_) {
+#line 2889 "DirectPhotoPage.c"
+ const gchar* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = _ ("%s does not support the file format of\n%s.");
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = file;
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = g_file_get_path (_tmp25_);
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_ = _tmp26_;
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp28_ = g_strdup_printf (_tmp24_, RESOURCES_APP_TITLE, _tmp27_);
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29_ = _tmp28_;
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ app_window_error_message (_tmp29_, NULL);
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp29_);
+#line 231 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp27_);
+#line 2914 "DirectPhotoPage.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = TRUE;
+#line 234 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 2920 "DirectPhotoPage.c"
+ }
+ }
+ }
+#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = FALSE;
+#line 236 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 2928 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_real_realize (GtkWidget* base) {
+ DirectPhotoPage * self;
+ DirectPhoto* photo = NULL;
+ DirectPhotoSourceCollection* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ DirectPhoto* _tmp2_ = NULL;
+ DirectPhoto* _tmp3_ = NULL;
+#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 240 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (GTK_WIDGET_CLASS (direct_photo_page_parent_class)->realize != NULL) {
+#line 241 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ GTK_WIDGET_CLASS (direct_photo_page_parent_class)->realize (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), gtk_widget_get_type (), GtkWidget));
+#line 2945 "DirectPhotoPage.c"
+ }
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = direct_photo_global;
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = self->priv->initial_file;
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = direct_photo_source_collection_get_file_source (_tmp0_, _tmp1_);
+#line 243 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo = _tmp2_;
+#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = photo;
+#line 245 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp3_ != NULL) {
+#line 2959 "DirectPhotoPage.c"
+ DirectViewCollection* _tmp4_ = NULL;
+ DirectPhoto* _tmp5_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = self->priv->view_controller;
+#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = photo;
+#line 246 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_display_mirror_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PHOTO, Photo));
+#line 2968 "DirectPhotoPage.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = _ ("Unable open photo %s. Sorry.");
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = self->priv->initial_file;
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = g_file_get_path (_tmp7_);
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = g_strdup_printf (_tmp6_, _tmp9_);
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = _tmp10_;
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ app_window_panic (_tmp11_);
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp11_);
+#line 248 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp9_);
+#line 2994 "DirectPhotoPage.c"
+ }
+#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (self->priv->initial_file);
+#line 251 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->initial_file = NULL;
+#line 239 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 3002 "DirectPhotoPage.c"
+}
+
+
+static void _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed (DirectPhoto* _sender, gboolean b, gpointer self) {
+#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_dphoto_can_rotate_changed ((DirectPhotoPage*) self, b);
+#line 3009 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_real_photo_changing (EditingHostPage* base, Photo* new_photo) {
+ DirectPhotoPage * self;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Photo* _tmp8_ = NULL;
+ DirectPhoto* tmp = NULL;
+ Photo* _tmp9_ = NULL;
+ DirectPhoto* _tmp10_ = NULL;
+ DirectPhoto* _tmp11_ = NULL;
+#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_PHOTO (new_photo));
+#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = _tmp1_ != NULL;
+#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp2_) {
+#line 3037 "DirectPhotoPage.c"
+ DirectPhoto* tmp = NULL;
+ Photo* _tmp3_ = NULL;
+ DirectPhoto* _tmp4_ = NULL;
+ DirectPhoto* _tmp5_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, TYPE_DIRECT_PHOTO) ? ((DirectPhoto*) _tmp3_) : NULL;
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp4_ == NULL) {
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 3050 "DirectPhotoPage.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ tmp = _tmp4_;
+#line 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = tmp;
+#line 258 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp5_ != NULL) {
+#line 3058 "DirectPhotoPage.c"
+ DirectPhoto* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = tmp;
+#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_signal_parse_name ("can-rotate-changed", TYPE_DIRECT_PHOTO, &_tmp7_, NULL, FALSE);
+#line 259 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed, self);
+#line 3067 "DirectPhotoPage.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (tmp);
+#line 3071 "DirectPhotoPage.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = new_photo;
+#line 263 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_demand_load (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DIRECT_PHOTO, DirectPhoto));
+#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = new_photo;
+#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_DIRECT_PHOTO) ? ((DirectPhoto*) _tmp9_) : NULL);
+#line 265 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ tmp = _tmp10_;
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = tmp;
+#line 267 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp11_ != NULL) {
+#line 3087 "DirectPhotoPage.c"
+ DirectPhoto* _tmp12_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = tmp;
+#line 268 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_signal_connect_object (_tmp12_, "can-rotate-changed", (GCallback) _direct_photo_page_on_dphoto_can_rotate_changed_direct_photo_can_rotate_changed, self, 0);
+#line 3093 "DirectPhotoPage.c"
+ }
+#line 254 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (tmp);
+#line 3097 "DirectPhotoPage.c"
+}
+
+
+GFile* direct_photo_page_get_current_file (DirectPhotoPage* self) {
+ GFile* result = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), NULL);
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = _tmp3_;
+#line 273 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 3123 "DirectPhotoPage.c"
+}
+
+
+static gboolean direct_photo_page_real_on_context_buttonpress (Page* base, GdkEventButton* event) {
+ DirectPhotoPage * self;
+ gboolean result = FALSE;
+ GtkMenu* context_menu = NULL;
+ GtkUIManager* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+ GtkMenu* _tmp2_ = NULL;
+ GdkEventButton* _tmp3_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 276 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page)->ui;
+#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = gtk_ui_manager_get_widget (_tmp0_, "/DirectContextMenu");
+#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_menu_get_type (), GtkMenu));
+#line 277 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ context_menu = _tmp2_;
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = event;
+#line 278 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_popup_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), context_menu, _tmp3_);
+#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = TRUE;
+#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (context_menu);
+#line 280 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 3157 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_update_zoom_menu_item_sensitivity (DirectPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ ZoomState _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ ZoomState _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+#line 283 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp1_);
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = zoom_state_is_max (&_tmp1_);
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (!_tmp2_) {
+#line 3176 "DirectPhotoPage.c"
+ gboolean _tmp3_ = FALSE;
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = !_tmp3_;
+#line 3182 "DirectPhotoPage.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = FALSE;
+#line 3186 "DirectPhotoPage.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp0_);
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ single_photo_page_get_zoom_state (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), &_tmp5_);
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = zoom_state_is_default (&_tmp5_);
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (!_tmp6_) {
+#line 3196 "DirectPhotoPage.c"
+ gboolean _tmp7_ = FALSE;
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = !_tmp7_;
+#line 3202 "DirectPhotoPage.c"
+ } else {
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = FALSE;
+#line 3206 "DirectPhotoPage.c"
+ }
+#line 285 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp4_);
+#line 3210 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_real_on_increase_size (EditingHostPage* base) {
+ DirectPhotoPage * self;
+#line 288 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 289 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->on_increase_size (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 291 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_update_zoom_menu_item_sensitivity (self);
+#line 3222 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_real_on_decrease_size (EditingHostPage* base) {
+ DirectPhotoPage * self;
+#line 294 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 295 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->on_decrease_size (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 297 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_update_zoom_menu_item_sensitivity (self);
+#line 3234 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_on_photos_altered (DirectPhotoPage* self, GeeMap* map) {
+ gboolean contains = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gboolean sensitive = FALSE;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+#line 300 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 300 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 301 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ contains = FALSE;
+#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp0_) {
+#line 3258 "DirectPhotoPage.c"
+ Photo* photo = NULL;
+ Photo* _tmp1_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 303 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo = _tmp1_;
+#line 3265 "DirectPhotoPage.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = map;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = gee_map_get_keys (_tmp2_);
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _object_it = _tmp7_;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ while (TRUE) {
+#line 3292 "DirectPhotoPage.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ DataObject* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = _object_it;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (!_tmp9_) {
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ break;
+#line 3308 "DirectPhotoPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = _object_it;
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ object = (DataObject*) _tmp11_;
+#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = object;
+#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = photo;
+#line 305 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO, Photo) == _tmp13_) {
+#line 306 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ contains = TRUE;
+#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (object);
+#line 308 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ break;
+#line 3328 "DirectPhotoPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (object);
+#line 3332 "DirectPhotoPage.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_object_it);
+#line 3336 "DirectPhotoPage.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 3340 "DirectPhotoPage.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp15_) {
+#line 3346 "DirectPhotoPage.c"
+ gboolean _tmp16_ = FALSE;
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = !_tmp16_;
+#line 3352 "DirectPhotoPage.c"
+ } else {
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = FALSE;
+#line 3356 "DirectPhotoPage.c"
+ }
+#line 313 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ sensitive = _tmp14_;
+#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = sensitive;
+#line 314 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp17_) {
+#line 3364 "DirectPhotoPage.c"
+ gboolean _tmp18_ = FALSE;
+#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = contains;
+#line 315 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ sensitive = _tmp18_;
+#line 3370 "DirectPhotoPage.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp20_ = sensitive;
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp20_) {
+#line 3376 "DirectPhotoPage.c"
+ Photo* _tmp21_ = NULL;
+ Photo* _tmp22_ = NULL;
+ PhotoFileFormat _tmp23_ = 0;
+ gboolean _tmp24_ = FALSE;
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_ = photo_get_file_format (_tmp22_);
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = photo_file_format_can_write (_tmp23_);
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = _tmp24_;
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp22_);
+#line 3393 "DirectPhotoPage.c"
+ } else {
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = FALSE;
+#line 3397 "DirectPhotoPage.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Save", _tmp19_);
+#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = sensitive;
+#line 318 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp25_);
+#line 3405 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_on_selection_group_altered (DirectPhotoPage* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 321 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ command_manager_reset (_tmp1_);
+#line 328 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 3422 "DirectPhotoPage.c"
+}
+
+
+static gboolean direct_photo_page_real_on_double_click (EditingHostPage* base, GdkEventButton* event) {
+ DirectPhotoPage * self;
+ gboolean result = FALSE;
+ FullscreenWindow* fs = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ FullscreenWindow* _tmp1_ = NULL;
+ FullscreenWindow* _tmp2_ = NULL;
+ GdkEventButton* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 331 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 331 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = page_get_container (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FULLSCREEN_WINDOW) ? ((FullscreenWindow*) _tmp0_) : NULL;
+#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp1_ == NULL) {
+#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 3447 "DirectPhotoPage.c"
+ }
+#line 332 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ fs = _tmp1_;
+#line 333 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = fs;
+#line 333 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp2_ != NULL) {
+#line 3455 "DirectPhotoPage.c"
+ FullscreenWindow* _tmp3_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = fs;
+#line 334 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ fullscreen_window_close (_tmp3_);
+#line 336 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = TRUE;
+#line 336 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (fs);
+#line 336 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 3467 "DirectPhotoPage.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = event;
+#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->on_double_click (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp4_);
+#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = _tmp5_;
+#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (fs);
+#line 339 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 3479 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_real_update_ui (EditingHostPage* base, gboolean missing) {
+ DirectPhotoPage * self;
+ gboolean sensitivity = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ gboolean _tmp21_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+#line 342 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = missing;
+#line 343 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ sensitivity = !_tmp0_;
+#line 345 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = sensitivity;
+#line 345 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Save", _tmp1_);
+#line 346 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = sensitivity;
+#line 346 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SaveAs", _tmp2_);
+#line 347 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = sensitivity;
+#line 347 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SendTo", _tmp3_);
+#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = sensitivity;
+#line 348 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Publish", _tmp4_);
+#line 349 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = sensitivity;
+#line 349 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Print", _tmp5_);
+#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = sensitivity;
+#line 350 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonJumpToFile", _tmp6_);
+#line 352 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = sensitivity;
+#line 352 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonUndo", _tmp7_);
+#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = sensitivity;
+#line 353 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonRedo", _tmp8_);
+#line 355 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = sensitivity;
+#line 355 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "IncreaseSize", _tmp9_);
+#line 356 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = sensitivity;
+#line 356 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DecreaseSize", _tmp10_);
+#line 357 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = sensitivity;
+#line 357 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "ZoomFit", _tmp11_);
+#line 358 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = sensitivity;
+#line 358 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom100", _tmp12_);
+#line 359 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = sensitivity;
+#line 359 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Zoom200", _tmp13_);
+#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = sensitivity;
+#line 361 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp14_);
+#line 362 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = sensitivity;
+#line 362 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp15_);
+#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = sensitivity;
+#line 363 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp16_);
+#line 364 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = sensitivity;
+#line 364 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp17_);
+#line 365 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = sensitivity;
+#line 365 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", _tmp18_);
+#line 366 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = sensitivity;
+#line 366 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", _tmp19_);
+#line 367 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp20_ = sensitivity;
+#line 367 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Straighten", _tmp20_);
+#line 368 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21_ = sensitivity;
+#line 368 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", _tmp21_);
+#line 369 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = sensitivity;
+#line 369 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Adjust", _tmp22_);
+#line 370 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_ = sensitivity;
+#line 370 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp23_);
+#line 371 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = sensitivity;
+#line 371 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", _tmp24_);
+#line 372 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = sensitivity;
+#line 372 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Fullscreen", _tmp25_);
+#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp27_) {
+#line 3625 "DirectPhotoPage.c"
+ gboolean _tmp28_ = FALSE;
+#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp28_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = !_tmp28_;
+#line 3631 "DirectPhotoPage.c"
+ } else {
+#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = FALSE;
+#line 3635 "DirectPhotoPage.c"
+ }
+#line 374 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp26_);
+#line 376 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29_ = missing;
+#line 376 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ EDITING_HOST_PAGE_CLASS (direct_photo_page_parent_class)->update_ui (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp29_);
+#line 3643 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ DirectPhotoPage * self;
+ gboolean multiple = FALSE;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gboolean revert_possible = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gboolean rotate_possible = FALSE;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ gboolean enhance_possible = FALSE;
+ gboolean _tmp22_ = FALSE;
+ gboolean _tmp23_ = FALSE;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ Photo* _tmp40_ = NULL;
+ Photo* _tmp41_ = NULL;
+ gboolean _tmp42_ = FALSE;
+ gint _tmp46_ = 0;
+ gint _tmp47_ = 0;
+#line 379 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_COLLECTION, DataCollection));
+#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _tmp2_ > 1;
+#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 380 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ multiple = _tmp3_;
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp5_) {
+#line 3696 "DirectPhotoPage.c"
+ gboolean _tmp6_ = FALSE;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = photo_has_transformations (_tmp8_);
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = _tmp9_;
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp10_) {
+#line 3714 "DirectPhotoPage.c"
+ gboolean _tmp11_ = FALSE;
+#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = !_tmp11_;
+#line 3720 "DirectPhotoPage.c"
+ } else {
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = FALSE;
+#line 3724 "DirectPhotoPage.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = _tmp6_;
+#line 3728 "DirectPhotoPage.c"
+ } else {
+#line 382 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = FALSE;
+#line 3732 "DirectPhotoPage.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ revert_possible = _tmp4_;
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp13_) {
+#line 3740 "DirectPhotoPage.c"
+ Photo* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = _tmp14_;
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = editing_host_page_is_rotate_available (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp15_);
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = _tmp16_;
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 3754 "DirectPhotoPage.c"
+ } else {
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = FALSE;
+#line 3758 "DirectPhotoPage.c"
+ }
+#line 383 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ rotate_possible = _tmp12_;
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp18_) {
+#line 3766 "DirectPhotoPage.c"
+ Photo* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21_ = editing_host_page_is_enhance_available (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp20_);
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = _tmp21_;
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 3780 "DirectPhotoPage.c"
+ } else {
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = FALSE;
+#line 3784 "DirectPhotoPage.c"
+ }
+#line 384 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ enhance_possible = _tmp17_;
+#line 386 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = multiple;
+#line 386 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "PrevPhoto", _tmp22_);
+#line 387 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_ = multiple;
+#line 387 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "NextPhoto", _tmp23_);
+#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = rotate_possible;
+#line 388 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise", _tmp24_);
+#line 389 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = rotate_possible;
+#line 389 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateCounterclockwise", _tmp25_);
+#line 390 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = rotate_possible;
+#line 390 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipHorizontally", _tmp26_);
+#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_ = rotate_possible;
+#line 391 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "FlipVertically", _tmp27_);
+#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp28_ = revert_possible;
+#line 392 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Revert", _tmp28_);
+#line 393 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29_ = enhance_possible;
+#line 393 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Enhance", _tmp29_);
+#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp30_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 395 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "SetBackground", _tmp30_);
+#line 397 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 397 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp31_) {
+#line 3828 "DirectPhotoPage.c"
+ Photo* _tmp32_ = NULL;
+ Photo* _tmp33_ = NULL;
+ Scaling _tmp34_ = {0};
+ gboolean _tmp35_ = FALSE;
+ Photo* _tmp36_ = NULL;
+ Photo* _tmp37_ = NULL;
+ Scaling _tmp38_ = {0};
+ gboolean _tmp39_ = FALSE;
+#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp32_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp33_ = _tmp32_;
+#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ scaling_for_original (&_tmp34_);
+#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_ = editing_tools_crop_tool_is_available (_tmp33_, &_tmp34_);
+#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Crop", _tmp35_);
+#line 398 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp36_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp37_ = _tmp36_;
+#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ scaling_for_original (&_tmp38_);
+#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp39_ = editing_tools_redeye_tool_is_available (_tmp37_, &_tmp38_);
+#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RedEye", _tmp39_);
+#line 399 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp37_);
+#line 3861 "DirectPhotoPage.c"
+ }
+#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp41_ = _tmp40_;
+#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp42_ = _tmp41_ != NULL;
+#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp41_);
+#line 405 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp42_) {
+#line 3873 "DirectPhotoPage.c"
+ Photo* _tmp43_ = NULL;
+ Photo* _tmp44_ = NULL;
+ PhotoFileFormat _tmp45_ = 0;
+#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp43_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp44_ = _tmp43_;
+#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_ = photo_get_file_format (_tmp44_);
+#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", _tmp45_ != PHOTO_FILE_FORMAT_RAW);
+#line 406 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp44_);
+#line 3887 "DirectPhotoPage.c"
+ } else {
+#line 408 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "AdjustDateTime", FALSE);
+#line 3891 "DirectPhotoPage.c"
+ }
+#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp46_ = selected_count;
+#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp47_ = count;
+#line 411 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ PAGE_CLASS (direct_photo_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp46_, _tmp47_);
+#line 3899 "DirectPhotoPage.c"
+}
+
+
+static gboolean direct_photo_page_check_ok_to_close_photo (DirectPhotoPage* self, Photo* photo) {
+ gboolean result = FALSE;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean is_writeable = FALSE;
+ Photo* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ PhotoFileFormat _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ const gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gchar* save_option = NULL;
+ gchar* _tmp14_ = NULL;
+ GtkResponseType response = 0;
+ const gchar* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ GtkResponseType _tmp23_ = 0;
+ GtkResponseType _tmp24_ = 0;
+ GtkResponseType _tmp25_ = 0;
+#line 414 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), FALSE);
+#line 414 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail ((photo == NULL) || IS_PHOTO (photo), FALSE);
+#line 417 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = photo;
+#line 417 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp0_ == NULL) {
+#line 418 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = TRUE;
+#line 418 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 3943 "DirectPhotoPage.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = photo;
+#line 420 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = photo_has_alterations (_tmp1_);
+#line 420 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (!_tmp2_) {
+#line 421 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = TRUE;
+#line 421 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 3955 "DirectPhotoPage.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = self->priv->drop_if_dirty;
+#line 423 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp3_) {
+#line 3961 "DirectPhotoPage.c"
+ Photo* _tmp4_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = photo;
+#line 426 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo_remove_all_transformations (_tmp4_);
+#line 428 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = TRUE;
+#line 428 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 3971 "DirectPhotoPage.c"
+ }
+#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = _tmp5_;
+#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = photo_get_file_format (_tmp6_);
+#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = photo_file_format_can_write (_tmp7_);
+#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = _tmp8_;
+#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 431 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ is_writeable = _tmp9_;
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = is_writeable;
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp11_) {
+#line 3991 "DirectPhotoPage.c"
+ const gchar* _tmp12_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = _ ("_Save");
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = _tmp12_;
+#line 3997 "DirectPhotoPage.c"
+ } else {
+ const gchar* _tmp13_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = _ ("_Save a Copy");
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = _tmp13_;
+#line 4004 "DirectPhotoPage.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = g_strdup (_tmp10_);
+#line 432 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save_option = _tmp14_;
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = _ ("Lose changes to %s?");
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = photo;
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = media_source_get_basename (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = _tmp17_;
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = g_strdup_printf (_tmp15_, _tmp18_);
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp20_ = _tmp19_;
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21_ = save_option;
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = _ ("Close _without Saving");
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_ = app_window_negate_affirm_cancel_question (_tmp20_, _tmp21_, _tmp22_, NULL, NULL);
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = _tmp23_;
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp20_);
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp18_);
+#line 434 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ response = _tmp24_;
+#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = response;
+#line 438 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp25_ == GTK_RESPONSE_YES) {
+#line 4040 "DirectPhotoPage.c"
+ Photo* _tmp26_ = NULL;
+#line 439 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = photo;
+#line 439 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo_remove_all_transformations (_tmp26_);
+#line 4046 "DirectPhotoPage.c"
+ } else {
+ GtkResponseType _tmp27_ = 0;
+#line 440 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_ = response;
+#line 440 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp27_ == GTK_RESPONSE_NO) {
+#line 4053 "DirectPhotoPage.c"
+ gboolean _tmp28_ = FALSE;
+#line 441 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp28_ = is_writeable;
+#line 441 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp28_) {
+#line 4059 "DirectPhotoPage.c"
+ Photo* _tmp29_ = NULL;
+ GFile* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+ Photo* _tmp32_ = NULL;
+ Photo* _tmp33_ = NULL;
+ PhotoFileFormat _tmp34_ = 0;
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29_ = photo;
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp30_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_ = _tmp30_;
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp32_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp33_ = _tmp32_;
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp34_ = photo_get_file_format (_tmp33_);
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_save (self, _tmp31_, 0, SCALE_CONSTRAINT_ORIGINAL, JPEG_QUALITY_HIGH, _tmp34_, FALSE, TRUE);
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp33_);
+#line 442 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp31_);
+#line 4084 "DirectPhotoPage.c"
+ } else {
+#line 445 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_on_save_as (self);
+#line 4088 "DirectPhotoPage.c"
+ }
+ } else {
+ gboolean _tmp35_ = FALSE;
+ gboolean _tmp36_ = FALSE;
+ GtkResponseType _tmp37_ = 0;
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp37_ = response;
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp37_ == GTK_RESPONSE_CANCEL) {
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp36_ = TRUE;
+#line 4100 "DirectPhotoPage.c"
+ } else {
+ GtkResponseType _tmp38_ = 0;
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp38_ = response;
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp36_ = _tmp38_ == GTK_RESPONSE_DELETE_EVENT;
+#line 4107 "DirectPhotoPage.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp36_) {
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_ = TRUE;
+#line 4113 "DirectPhotoPage.c"
+ } else {
+ GtkResponseType _tmp39_ = 0;
+#line 447 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp39_ = response;
+#line 447 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_ = _tmp39_ == GTK_RESPONSE_CLOSE;
+#line 4120 "DirectPhotoPage.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp35_) {
+#line 448 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = FALSE;
+#line 448 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (save_option);
+#line 448 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 4130 "DirectPhotoPage.c"
+ }
+ }
+ }
+#line 451 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = TRUE;
+#line 451 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (save_option);
+#line 451 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 4140 "DirectPhotoPage.c"
+}
+
+
+gboolean direct_photo_page_check_quit (DirectPhotoPage* self) {
+ gboolean result = FALSE;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 454 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO_PAGE (self), FALSE);
+#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = direct_photo_page_check_ok_to_close_photo (self, _tmp1_);
+#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = _tmp3_;
+#line 455 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 4166 "DirectPhotoPage.c"
+}
+
+
+static gboolean direct_photo_page_real_confirm_replace_photo (EditingHostPage* base, Photo* old_photo, Photo* new_photo) {
+ DirectPhotoPage * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ Photo* _tmp1_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 458 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail ((old_photo == NULL) || IS_PHOTO (old_photo), FALSE);
+#line 458 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (IS_PHOTO (new_photo), FALSE);
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = old_photo;
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp1_ != NULL) {
+#line 4185 "DirectPhotoPage.c"
+ Photo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = old_photo;
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = direct_photo_page_check_ok_to_close_photo (self, _tmp2_);
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = _tmp3_;
+#line 4194 "DirectPhotoPage.c"
+ } else {
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 4198 "DirectPhotoPage.c"
+ }
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = _tmp0_;
+#line 459 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 4204 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_save (DirectPhotoPage* self, GFile* dest, gint scale, ScaleConstraint constraint, JpegQuality quality, PhotoFileFormat format, gboolean copy_unmodified, gboolean save_metadata) {
+ Scaling scaling = {0};
+ ScaleConstraint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ Scaling _tmp2_ = {0};
+ DirectPhoto* photo = NULL;
+ DirectPhotoSourceCollection* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ DirectPhoto* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ DirectView* tmp_view = NULL;
+ DirectPhoto* _tmp24_ = NULL;
+ DirectView* _tmp25_ = NULL;
+ DirectViewCollection* _tmp26_ = NULL;
+ DirectView* _tmp27_ = NULL;
+ DirectPhotoSourceCollection* _tmp28_ = NULL;
+ DirectPhoto* _tmp29_ = NULL;
+ DirectViewCollection* _tmp30_ = NULL;
+ DirectPhoto* _tmp31_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (G_IS_FILE (dest));
+#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = constraint;
+#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = scale;
+#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ scaling_for_constraint (_tmp0_, _tmp1_, FALSE, &_tmp2_);
+#line 464 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ scaling = _tmp2_;
+#line 4241 "DirectPhotoPage.c"
+ {
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ Scaling _tmp6_ = {0};
+ JpegQuality _tmp7_ = 0;
+ PhotoFileFormat _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = _tmp3_;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = dest;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = scaling;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = quality;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = format;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = copy_unmodified;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = save_metadata;
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo_export (_tmp4_, _tmp5_, &_tmp6_, _tmp7_, _tmp8_, _tmp9_, _tmp10_, &_inner_error_);
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 467 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4273 "DirectPhotoPage.c"
+ goto __catch45_g_error;
+ }
+ }
+ goto __finally45;
+ __catch45_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ err = _inner_error_;
+#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _inner_error_ = NULL;
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = _ ("Error while saving to %s: %s");
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = dest;
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = g_file_get_path (_tmp12_);
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = err;
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = _tmp15_->message;
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = g_strdup_printf (_tmp11_, _tmp14_, _tmp16_);
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = _tmp17_;
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ app_window_error_message (_tmp18_, NULL);
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp18_);
+#line 469 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp14_);
+#line 472 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_error_free0 (err);
+#line 472 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return;
+#line 4319 "DirectPhotoPage.c"
+ }
+ __finally45:
+#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_clear_error (&_inner_error_);
+#line 466 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return;
+#line 4330 "DirectPhotoPage.c"
+ }
+#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = direct_photo_global;
+#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp20_ = dest;
+#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = direct_photo_source_collection_fetch (_tmp19_, _tmp20_, &_tmp21_, TRUE);
+#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ photo = _tmp21_;
+#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_ = _tmp22_;
+#line 477 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp23_);
+#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = photo;
+#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = direct_view_new (_tmp24_);
+#line 479 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ tmp_view = _tmp25_;
+#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = self->priv->view_controller;
+#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_ = tmp_view;
+#line 480 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_DATA_OBJECT, DataObject));
+#line 482 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp28_ = direct_photo_global;
+#line 482 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29_ = photo;
+#line 482 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_source_collection_reimport_photo (_tmp28_, _tmp29_);
+#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp30_ = self->priv->view_controller;
+#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_ = photo;
+#line 483 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_display_mirror_of (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_PHOTO, Photo));
+#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (tmp_view);
+#line 462 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (photo);
+#line 4374 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_on_save (DirectPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ Photo* _tmp11_ = NULL;
+ Photo* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ PhotoFileFormat _tmp17_ = 0;
+#line 486 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = photo_has_alterations (_tmp3_);
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = !_tmp4_;
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp5_) {
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = TRUE;
+#line 4408 "DirectPhotoPage.c"
+ } else {
+ Photo* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+ gboolean _tmp9_ = FALSE;
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = photo_get_file_format (_tmp7_);
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = photo_file_format_can_write (_tmp8_);
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = !_tmp9_;
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 4426 "DirectPhotoPage.c"
+ }
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp1_) {
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = TRUE;
+#line 4432 "DirectPhotoPage.c"
+ } else {
+ gboolean _tmp10_ = FALSE;
+#line 488 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = editing_host_page_get_photo_missing (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 488 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = _tmp10_;
+#line 4439 "DirectPhotoPage.c"
+ }
+#line 487 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp0_) {
+#line 489 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return;
+#line 4445 "DirectPhotoPage.c"
+ }
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = _tmp11_;
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = _tmp13_;
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = photo_get_file_format (_tmp16_);
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_save (self, _tmp14_, 0, SCALE_CONSTRAINT_ORIGINAL, JPEG_QUALITY_HIGH, _tmp17_, FALSE, TRUE);
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp16_);
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 492 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp12_);
+#line 4469 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_on_save_as (DirectPhotoPage* self) {
+ ExportDialog* export_dialog = NULL;
+ const gchar* _tmp0_ = NULL;
+ ExportDialog* _tmp1_ = NULL;
+ gint scale = 0;
+ ScaleConstraint constraint = 0;
+ ExportFormatParameters export_params = {0};
+ ExportFormatParameters _tmp2_ = {0};
+ ExportDialog* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ ScaleConstraint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gchar* filename = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ ExportFormatParameters _tmp9_ = {0};
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ PhotoFileFormat effective_export_format = 0;
+ Photo* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+ ExportFormatParameters _tmp14_ = {0};
+ PhotoFileFormat _tmp15_ = 0;
+ PhotoFileFormat _tmp16_ = 0;
+ gchar** output_format_extensions = NULL;
+ PhotoFileFormat _tmp17_ = 0;
+ PhotoFileFormatProperties* _tmp18_ = NULL;
+ PhotoFileFormatProperties* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gchar** _tmp21_ = NULL;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint output_format_extensions_length1 = 0;
+ gint _output_format_extensions_size_ = 0;
+ GtkFileFilter* output_format_filter = NULL;
+ GtkFileFilter* _tmp23_ = NULL;
+ gchar** _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ GtkFileChooserDialog* save_as_dialog = NULL;
+ const gchar* _tmp36_ = NULL;
+ AppWindow* _tmp37_ = NULL;
+ AppWindow* _tmp38_ = NULL;
+ GtkFileChooserDialog* _tmp39_ = NULL;
+ GtkFileChooserDialog* _tmp40_ = NULL;
+ GtkFileChooserDialog* _tmp41_ = NULL;
+ GtkFileChooserDialog* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ GtkFileChooserDialog* _tmp44_ = NULL;
+ GFile* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ GtkFileChooserDialog* _tmp48_ = NULL;
+ GtkFileFilter* _tmp49_ = NULL;
+ GtkFileFilter* _tmp50_ = NULL;
+ GtkFileChooserDialog* _tmp51_ = NULL;
+ GtkFileChooserDialog* _tmp52_ = NULL;
+ gint response = 0;
+ GtkFileChooserDialog* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ GtkFileChooserDialog* _tmp74_ = NULL;
+#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = _ ("Save As");
+#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = export_dialog_new (_tmp0_);
+#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_object_ref_sink (_tmp1_);
+#line 497 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ export_dialog = _tmp1_;
+#line 501 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ export_format_parameters_last (&_tmp2_);
+#line 501 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ export_params = _tmp2_;
+#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = export_dialog;
+#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = export_dialog_execute (_tmp3_, &_tmp4_, &_tmp5_, &export_params);
+#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ scale = _tmp4_;
+#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ constraint = _tmp5_;
+#line 502 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (!_tmp6_) {
+#line 503 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 503 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return;
+#line 4562 "DirectPhotoPage.c"
+ }
+#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = _tmp7_;
+#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = export_params;
+#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp10_ = photo_get_export_basename_for_parameters (_tmp8_, &_tmp9_);
+#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp11_ = _tmp10_;
+#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 505 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ filename = _tmp11_;
+#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp12_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp13_ = _tmp12_;
+#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp14_ = export_params;
+#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp15_ = photo_get_export_format_for_parameters (_tmp13_, &_tmp14_);
+#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp16_ = _tmp15_;
+#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp13_);
+#line 506 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ effective_export_format = _tmp16_;
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp17_ = effective_export_format;
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp18_ = photo_file_format_get_properties (_tmp17_);
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp19_ = _tmp18_;
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp21_ = photo_file_format_properties_get_known_extensions (_tmp19_, &_tmp20_);
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22_ = _tmp21_;
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp22__length1 = _tmp20_;
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _photo_file_format_properties_unref0 (_tmp19_);
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ output_format_extensions = _tmp22_;
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ output_format_extensions_length1 = _tmp22__length1;
+#line 509 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _output_format_extensions_size_ = output_format_extensions_length1;
+#line 511 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp23_ = gtk_file_filter_new ();
+#line 511 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_object_ref_sink (_tmp23_);
+#line 511 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ output_format_filter = _tmp23_;
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24_ = output_format_extensions;
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp24__length1 = output_format_extensions_length1;
+#line 4622 "DirectPhotoPage.c"
+ {
+ gchar** extension_collection = NULL;
+ gint extension_collection_length1 = 0;
+ gint _extension_collection_size_ = 0;
+ gint extension_it = 0;
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ extension_collection = _tmp24_;
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ extension_collection_length1 = _tmp24__length1;
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ for (extension_it = 0; extension_it < _tmp24__length1; extension_it = extension_it + 1) {
+#line 4634 "DirectPhotoPage.c"
+ gchar* _tmp25_ = NULL;
+ gchar* extension = NULL;
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp25_ = g_strdup (extension_collection[extension_it]);
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ extension = _tmp25_;
+#line 4641 "DirectPhotoPage.c"
+ {
+ gchar* uppercase_extension = NULL;
+ const gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ GtkFileFilter* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ GtkFileFilter* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp26_ = extension;
+#line 513 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp27_ = g_utf8_strup (_tmp26_, (gssize) -1);
+#line 513 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ uppercase_extension = _tmp27_;
+#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp28_ = output_format_filter;
+#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp29_ = extension;
+#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp30_ = g_strconcat ("*.", _tmp29_, NULL);
+#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp31_ = _tmp30_;
+#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_filter_add_pattern (_tmp28_, _tmp31_);
+#line 514 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp31_);
+#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp32_ = output_format_filter;
+#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp33_ = uppercase_extension;
+#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp34_ = g_strconcat ("*.", _tmp33_, NULL);
+#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp35_ = _tmp34_;
+#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_filter_add_pattern (_tmp32_, _tmp35_);
+#line 515 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp35_);
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (uppercase_extension);
+#line 512 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (extension);
+#line 4688 "DirectPhotoPage.c"
+ }
+ }
+ }
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp36_ = _ ("Save As");
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp37_ = app_window_get_instance ();
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp38_ = _tmp37_;
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp39_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_window_get_type (), GtkWindow), GTK_FILE_CHOOSER_ACTION_SAVE, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_OK, NULL);
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_object_ref_sink (_tmp39_);
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp40_ = _tmp39_;
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp38_);
+#line 518 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ save_as_dialog = _tmp40_;
+#line 521 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp41_ = save_as_dialog;
+#line 521 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_chooser_set_select_multiple (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
+#line 522 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp42_ = save_as_dialog;
+#line 522 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp43_ = filename;
+#line 522 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_chooser_set_current_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp43_);
+#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp44_ = save_as_dialog;
+#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp45_ = self->priv->current_save_dir;
+#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp46_ = g_file_get_path (_tmp45_);
+#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp47_ = _tmp46_;
+#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp47_);
+#line 523 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp47_);
+#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp48_ = save_as_dialog;
+#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp49_ = output_format_filter;
+#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp50_ = _g_object_ref0 (_tmp49_);
+#line 524 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_chooser_add_filter (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp50_);
+#line 525 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp51_ = save_as_dialog;
+#line 525 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_chooser_set_do_overwrite_confirmation (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), TRUE);
+#line 526 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp52_ = save_as_dialog;
+#line 526 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_file_chooser_set_local_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
+#line 528 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp53_ = save_as_dialog;
+#line 528 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp54_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_dialog_get_type (), GtkDialog));
+#line 528 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ response = _tmp54_;
+#line 529 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp55_ = response;
+#line 529 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp55_ == ((gint) GTK_RESPONSE_OK)) {
+#line 4756 "DirectPhotoPage.c"
+ GtkFileChooserDialog* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ GFile* _tmp59_ = NULL;
+ GFile* _tmp60_ = NULL;
+ gint _tmp61_ = 0;
+ ScaleConstraint _tmp62_ = 0;
+ ExportFormatParameters _tmp63_ = {0};
+ JpegQuality _tmp64_ = 0;
+ PhotoFileFormat _tmp65_ = 0;
+ ExportFormatParameters _tmp66_ = {0};
+ ExportFormatMode _tmp67_ = 0;
+ ExportFormatParameters _tmp68_ = {0};
+ gboolean _tmp69_ = FALSE;
+ GtkFileChooserDialog* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ GFile* _tmp73_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->drop_if_dirty = TRUE;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp56_ = save_as_dialog;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp57_ = gtk_file_chooser_get_uri (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp58_ = _tmp57_;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp59_ = g_file_new_for_uri (_tmp58_);
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp60_ = _tmp59_;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp61_ = scale;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp62_ = constraint;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp63_ = export_params;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp64_ = _tmp63_.quality;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp65_ = effective_export_format;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp66_ = export_params;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp67_ = _tmp66_.mode;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp68_ = export_params;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp69_ = _tmp68_.export_metadata;
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_save (self, _tmp60_, _tmp61_, _tmp62_, _tmp64_, _tmp65_, _tmp67_ == EXPORT_FORMAT_MODE_UNMODIFIED, _tmp69_);
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp60_);
+#line 533 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp58_);
+#line 536 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->drop_if_dirty = FALSE;
+#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp70_ = save_as_dialog;
+#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp71_ = gtk_file_chooser_get_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp72_ = _tmp71_;
+#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp73_ = g_file_new_for_path (_tmp72_);
+#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (self->priv->current_save_dir);
+#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->current_save_dir = _tmp73_;
+#line 538 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (_tmp72_);
+#line 4827 "DirectPhotoPage.c"
+ }
+#line 541 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp74_ = save_as_dialog;
+#line 541 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, gtk_widget_get_type (), GtkWidget));
+#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (save_as_dialog);
+#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (output_format_filter);
+#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ output_format_extensions = (_vala_array_free (output_format_extensions, output_format_extensions_length1, (GDestroyNotify) g_free), NULL);
+#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_free0 (filename);
+#line 496 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (export_dialog);
+#line 4843 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_on_send_to (DirectPhotoPage* self) {
+ gboolean _tmp0_ = FALSE;
+#line 544 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 545 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 545 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp0_) {
+#line 4855 "DirectPhotoPage.c"
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = _tmp1_;
+#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = view_collection_get_selected_sources (_tmp2_);
+#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ desktop_integration_send_to (_tmp4_);
+#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 546 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 4874 "DirectPhotoPage.c"
+ }
+}
+
+
+static gboolean direct_photo_page_real_on_app_key_pressed (Page* base, GdkEventKey* event) {
+ DirectPhotoPage * self;
+ gboolean result = FALSE;
+ gboolean handled = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GQuark _tmp5_ = 0U;
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ static GQuark _tmp4_label0 = 0;
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ static GQuark _tmp4_label1 = 0;
+#line 4892 "DirectPhotoPage.c"
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 549 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 549 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 550 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ handled = TRUE;
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = event;
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _tmp2_;
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("bracketright")))) {
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ switch (0) {
+#line 4915 "DirectPhotoPage.c"
+ default:
+ {
+#line 554 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise");
+#line 555 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ break;
+#line 4922 "DirectPhotoPage.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("bracketleft")))) {
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ switch (0) {
+#line 4928 "DirectPhotoPage.c"
+ default:
+ {
+#line 558 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ page_activate_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RotateClockwise");
+#line 559 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ break;
+#line 4935 "DirectPhotoPage.c"
+ }
+ }
+ } else {
+#line 552 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ switch (0) {
+#line 4941 "DirectPhotoPage.c"
+ default:
+ {
+#line 562 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ handled = FALSE;
+#line 563 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ break;
+#line 4948 "DirectPhotoPage.c"
+ }
+ }
+ }
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = handled;
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp7_) {
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = TRUE;
+#line 4958 "DirectPhotoPage.c"
+ } else {
+ GdkEventKey* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = event;
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = PAGE_CLASS (direct_photo_page_parent_class)->on_app_key_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), TYPE_PAGE, Page), _tmp8_);
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = _tmp9_;
+#line 4968 "DirectPhotoPage.c"
+ }
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = _tmp6_;
+#line 566 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 4974 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_on_print (DirectPhotoPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 569 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = _tmp0_;
+#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp3_ = _tmp2_ > 0;
+#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 570 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (_tmp3_) {
+#line 4997 "DirectPhotoPage.c"
+ PrintManager* _tmp4_ = NULL;
+ PrintManager* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp4_ = print_manager_get_instance ();
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp5_ = _tmp4_;
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp7_ = _tmp6_;
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp8_ = view_collection_get_selected_sources_of_type (_tmp7_, TYPE_PHOTO);
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ print_manager_spool_photo (_tmp5_, _tmp9_);
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 571 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _print_manager_unref0 (_tmp5_);
+#line 5024 "DirectPhotoPage.c"
+ }
+}
+
+
+static Block6Data* block6_data_ref (Block6Data* _data6_) {
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_atomic_int_inc (&_data6_->_ref_count_);
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return _data6_;
+#line 5034 "DirectPhotoPage.c"
+}
+
+
+static void block6_data_unref (void * _userdata_) {
+ Block6Data* _data6_;
+ _data6_ = (Block6Data*) _userdata_;
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) {
+#line 5043 "DirectPhotoPage.c"
+ DirectPhotoPage* self;
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = _data6_->self;
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (self);
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_slice_free (Block6Data, _data6_);
+#line 5051 "DirectPhotoPage.c"
+ }
+}
+
+
+static gboolean __lambda14_ (Block6Data* _data6_) {
+ DirectPhotoPage* self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 580 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = _data6_->self;
+#line 581 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = _data6_->should_allow_rotation;
+#line 581 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ editing_host_page_enable_rotate (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EDITING_HOST_PAGE, EditingHostPage), _tmp0_);
+#line 583 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = FALSE;
+#line 583 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 5070 "DirectPhotoPage.c"
+}
+
+
+static gboolean ___lambda14__gsource_func (gpointer self) {
+ gboolean result;
+ result = __lambda14_ (self);
+#line 580 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 5079 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_on_dphoto_can_rotate_changed (DirectPhotoPage* self, gboolean should_allow_rotation) {
+ Block6Data* _data6_;
+ gboolean _tmp0_ = FALSE;
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (IS_DIRECT_PHOTO_PAGE (self));
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data6_ = g_slice_new0 (Block6Data);
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data6_->_ref_count_ = 1;
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data6_->self = g_object_ref (self);
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = should_allow_rotation;
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data6_->should_allow_rotation = _tmp0_;
+#line 580 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda14__gsource_func, block6_data_ref (_data6_), block6_data_unref);
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ block6_data_unref (_data6_);
+#line 576 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data6_ = NULL;
+#line 5104 "DirectPhotoPage.c"
+}
+
+
+static DataView* direct_photo_page_real_create_photo_view (EditingHostPage* base, DataSource* source) {
+ DirectPhotoPage * self;
+ DataView* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ DirectView* _tmp1_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 587 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = source;
+#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp1_ = direct_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto));
+#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
+#line 588 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return result;
+#line 5125 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_class_init (DirectPhotoPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_photo_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_type_class_add_private (klass, sizeof (DirectPhotoPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = direct_photo_page_real_init_collect_ui_filenames;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = direct_photo_page_real_init_collect_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((PageClass *) klass)->init_collect_injection_groups = direct_photo_page_real_init_collect_injection_groups;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((GtkWidgetClass *) klass)->realize = direct_photo_page_real_realize;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((EditingHostPageClass *) klass)->photo_changing = direct_photo_page_real_photo_changing;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((PageClass *) klass)->on_context_buttonpress = direct_photo_page_real_on_context_buttonpress;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_increase_size = direct_photo_page_real_on_increase_size;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_decrease_size = direct_photo_page_real_on_decrease_size;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((EditingHostPageClass *) klass)->on_double_click = direct_photo_page_real_on_double_click;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((EditingHostPageClass *) klass)->update_ui = direct_photo_page_real_update_ui;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((PageClass *) klass)->update_actions = direct_photo_page_real_update_actions;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((EditingHostPageClass *) klass)->confirm_replace_photo = direct_photo_page_real_confirm_replace_photo;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((PageClass *) klass)->on_app_key_pressed = direct_photo_page_real_on_app_key_pressed;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((EditingHostPageClass *) klass)->create_photo_view = direct_photo_page_real_create_photo_view;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = direct_photo_page_finalize;
+#line 5164 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_instance_init (DirectPhotoPage * self) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv = DIRECT_PHOTO_PAGE_GET_PRIVATE (self);
+#line 9 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->view_controller = NULL;
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self->priv->drop_if_dirty = FALSE;
+#line 5175 "DirectPhotoPage.c"
+}
+
+
+static void direct_photo_page_finalize (GObject* obj) {
+ DirectPhotoPage * self;
+ DirectPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = direct_photo_global;
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _direct_photo_page_on_photos_altered_data_collection_items_altered, self);
+#line 8 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (self->priv->initial_file);
+#line 9 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _data_collection_unref0 (self->priv->view_controller);
+#line 10 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _g_object_unref0 (self->priv->current_save_dir);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ G_OBJECT_CLASS (direct_photo_page_parent_class)->finalize (obj);
+#line 5199 "DirectPhotoPage.c"
+}
+
+
+GType direct_photo_page_get_type (void) {
+ static volatile gsize direct_photo_page_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_photo_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectPhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectPhotoPage), 0, (GInstanceInitFunc) direct_photo_page_instance_init, NULL };
+ GType direct_photo_page_type_id;
+ direct_photo_page_type_id = g_type_register_static (TYPE_EDITING_HOST_PAGE, "DirectPhotoPage", &g_define_type_info, 0);
+ g_once_init_leave (&direct_photo_page_type_id__volatile, direct_photo_page_type_id);
+ }
+ return direct_photo_page_type_id__volatile;
+}
+
+
+DirectFullscreenPhotoPage* direct_fullscreen_photo_page_construct (GType object_type, GFile* file) {
+ DirectFullscreenPhotoPage * self = NULL;
+ GFile* _tmp0_ = NULL;
+#line 593 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 594 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = file;
+#line 594 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = (DirectFullscreenPhotoPage*) direct_photo_page_construct (object_type, _tmp0_);
+#line 593 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return self;
+#line 5226 "DirectPhotoPage.c"
+}
+
+
+DirectFullscreenPhotoPage* direct_fullscreen_photo_page_new (GFile* file) {
+#line 593 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ return direct_fullscreen_photo_page_construct (TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, file);
+#line 5233 "DirectPhotoPage.c"
+}
+
+
+static void direct_fullscreen_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ DirectFullscreenPhotoPage * self;
+ GeeList* _tmp0_ = NULL;
+#line 597 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPage);
+#line 597 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 600 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ _tmp0_ = ui_filenames;
+#line 600 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), "direct_context.ui");
+#line 5248 "DirectPhotoPage.c"
+}
+
+
+static void direct_fullscreen_photo_page_class_init (DirectFullscreenPhotoPageClass * klass) {
+#line 592 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ direct_fullscreen_photo_page_parent_class = g_type_class_peek_parent (klass);
+#line 592 "/home/jens/Source/shotwell/src/direct/DirectPhotoPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = direct_fullscreen_photo_page_real_init_collect_ui_filenames;
+#line 5257 "DirectPhotoPage.c"
+}
+
+
+static void direct_fullscreen_photo_page_instance_init (DirectFullscreenPhotoPage * self) {
+}
+
+
+GType direct_fullscreen_photo_page_get_type (void) {
+ static volatile gsize direct_fullscreen_photo_page_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_fullscreen_photo_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectFullscreenPhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_fullscreen_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectFullscreenPhotoPage), 0, (GInstanceInitFunc) direct_fullscreen_photo_page_instance_init, NULL };
+ GType direct_fullscreen_photo_page_type_id;
+ direct_fullscreen_photo_page_type_id = g_type_register_static (TYPE_DIRECT_PHOTO_PAGE, "DirectFullscreenPhotoPage", &g_define_type_info, 0);
+ g_once_init_leave (&direct_fullscreen_photo_page_type_id__volatile, direct_fullscreen_photo_page_type_id);
+ }
+ return direct_fullscreen_photo_page_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/direct/DirectView.c b/src/direct/DirectView.c
new file mode 100644
index 0000000..e3cebb7
--- /dev/null
+++ b/src/direct/DirectView.c
@@ -0,0 +1,827 @@
+/* DirectView.c generated by valac 0.32.1, the Vala compiler
+ * generated from DirectView.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gee.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_DIRECT_VIEW (direct_view_get_type ())
+#define DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW, DirectView))
+#define DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW, DirectViewClass))
+#define IS_DIRECT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW))
+#define IS_DIRECT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW))
+#define DIRECT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW, DirectViewClass))
+
+typedef struct _DirectView DirectView;
+typedef struct _DirectViewClass DirectViewClass;
+typedef struct _DirectViewPrivate DirectViewPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_DIRECT_PHOTO (direct_photo_get_type ())
+#define DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO, DirectPhoto))
+#define DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO, DirectPhotoClass))
+#define IS_DIRECT_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO))
+#define IS_DIRECT_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO))
+#define DIRECT_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO, DirectPhotoClass))
+
+typedef struct _DirectPhoto DirectPhoto;
+typedef struct _DirectPhotoClass DirectPhotoClass;
+typedef struct _DataCollectionPrivate DataCollectionPrivate;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+typedef struct _ViewCollectionPrivate ViewCollectionPrivate;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_DIRECT_VIEW_COLLECTION (direct_view_collection_get_type ())
+#define DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollection))
+#define DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass))
+#define IS_DIRECT_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_VIEW_COLLECTION))
+#define IS_DIRECT_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_VIEW_COLLECTION))
+#define DIRECT_VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_VIEW_COLLECTION, DirectViewCollectionClass))
+
+typedef struct _DirectViewCollection DirectViewCollection;
+typedef struct _DirectViewCollectionClass DirectViewCollectionClass;
+typedef struct _DirectViewCollectionPrivate DirectViewCollectionPrivate;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_DIRECT_PHOTO_SOURCE_COLLECTION (direct_photo_source_collection_get_type ())
+#define DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollection))
+#define DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))
+#define IS_DIRECT_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
+#define IS_DIRECT_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION))
+#define DIRECT_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_SOURCE_COLLECTION, DirectPhotoSourceCollectionClass))
+
+typedef struct _DirectPhotoSourceCollection DirectPhotoSourceCollection;
+typedef struct _DirectPhotoSourceCollectionClass DirectPhotoSourceCollectionClass;
+
+#define DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER (direct_view_collection_direct_view_manager_get_type ())
+#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManager))
+#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManagerClass))
+#define DIRECT_VIEW_COLLECTION_IS_DIRECT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER))
+#define DIRECT_VIEW_COLLECTION_IS_DIRECT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER))
+#define DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManagerClass))
+
+typedef struct _DirectViewCollectionDirectViewManager DirectViewCollectionDirectViewManager;
+typedef struct _DirectViewCollectionDirectViewManagerClass DirectViewCollectionDirectViewManagerClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+typedef struct _DirectViewCollectionDirectViewManagerPrivate DirectViewCollectionDirectViewManagerPrivate;
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _DirectView {
+ DataView parent_instance;
+ DirectViewPrivate * priv;
+};
+
+struct _DirectViewClass {
+ DataViewClass parent_class;
+};
+
+struct _DirectViewPrivate {
+ GFile* file;
+ gchar* collate_key;
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataCollection {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DataCollectionPrivate * priv;
+};
+
+struct _DataCollectionClass {
+ GTypeClass parent_class;
+ void (*finalize) (DataCollection *self);
+ gchar* (*to_string) (DataCollection* self);
+ void (*notify_items_added) (DataCollection* self, GeeIterable* added);
+ void (*notify_items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*notify_contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*notify_items_altered) (DataCollection* self, GeeMap* items);
+ void (*notify_ordering_changed) (DataCollection* self);
+ void (*notify_property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_property_cleared) (DataCollection* self, const gchar* name);
+ gboolean (*valid_type) (DataCollection* self, DataObject* object);
+ void (*set_comparator) (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+ void (*reset_comparator) (DataCollection* self);
+ GeeCollection* (*get_all) (DataCollection* self);
+ gint (*get_count) (DataCollection* self);
+ DataObject* (*get_at) (DataCollection* self, gint index);
+ gint (*index_of) (DataCollection* self, DataObject* object);
+ gboolean (*contains) (DataCollection* self, DataObject* object);
+ gboolean (*add) (DataCollection* self, DataObject* object);
+ GeeCollection* (*add_many) (DataCollection* self, GeeCollection* objects, ProgressMonitor monitor, void* monitor_target);
+ void (*remove_marked) (DataCollection* self, Marker* m);
+ void (*clear) (DataCollection* self);
+ void (*close) (DataCollection* self);
+ void (*notify_frozen) (DataCollection* self);
+ void (*notify_thawed) (DataCollection* self);
+ void (*items_added) (DataCollection* self, GeeIterable* added);
+ void (*items_removed) (DataCollection* self, GeeIterable* removed);
+ void (*contents_altered) (DataCollection* self, GeeIterable* added, GeeIterable* removed);
+ void (*items_altered) (DataCollection* self, GeeMap* items);
+ void (*ordering_changed) (DataCollection* self);
+ void (*property_set) (DataCollection* self, const gchar* name, GValue* old, GValue* val);
+ void (*property_cleared) (DataCollection* self, const gchar* name);
+ void (*frozen) (DataCollection* self);
+ void (*thawed) (DataCollection* self);
+};
+
+struct _ViewCollection {
+ DataCollection parent_instance;
+ ViewCollectionPrivate * priv;
+};
+
+struct _ViewCollectionClass {
+ DataCollectionClass parent_class;
+ void (*notify_items_selected_unselected) (ViewCollection* self, GeeCollection* selected, GeeCollection* unselected);
+ void (*notify_selection_group_altered) (ViewCollection* self);
+ void (*notify_item_view_altered) (ViewCollection* self, DataView* view);
+ void (*notify_views_altered) (ViewCollection* self, GeeCollection* views);
+ void (*notify_item_geometry_altered) (ViewCollection* self, DataView* view);
+ void (*notify_geometries_altered) (ViewCollection* self, GeeCollection* views);
+ void (*notify_items_shown) (ViewCollection* self, GeeCollection* shown);
+ void (*notify_items_hidden) (ViewCollection* self, GeeCollection* hidden);
+ void (*notify_items_visibility_changed) (ViewCollection* self, GeeCollection* changed);
+ void (*notify_view_filter_installed) (ViewCollection* self, ViewFilter* filter);
+ void (*notify_view_filter_removed) (ViewCollection* self, ViewFilter* filter);
+ DataView* (*get_first) (ViewCollection* self);
+ DataView* (*get_first_unrejected) (ViewCollection* self);
+ DataView* (*get_last) (ViewCollection* self);
+ DataView* (*get_next) (ViewCollection* self, DataView* view);
+ DataView* (*get_previous) (ViewCollection* self, DataView* view);
+ void (*items_selected) (ViewCollection* self, GeeIterable* selected);
+ void (*items_unselected) (ViewCollection* self, GeeIterable* unselected);
+ void (*items_state_changed) (ViewCollection* self, GeeIterable* changed);
+ void (*selection_group_altered) (ViewCollection* self);
+ void (*items_shown) (ViewCollection* self, GeeCollection* visible);
+ void (*items_hidden) (ViewCollection* self, GeeCollection* hidden);
+ void (*items_visibility_changed) (ViewCollection* self, GeeCollection* changed);
+ void (*item_view_altered) (ViewCollection* self, DataView* view);
+ void (*item_geometry_altered) (ViewCollection* self, DataView* view);
+ void (*views_altered) (ViewCollection* self, GeeCollection* views);
+ void (*geometries_altered) (ViewCollection* self, GeeCollection* views);
+ void (*view_filter_installed) (ViewCollection* self, ViewFilter* filer);
+ void (*view_filter_removed) (ViewCollection* self, ViewFilter* filer);
+};
+
+struct _DirectViewCollection {
+ ViewCollection parent_instance;
+ DirectViewCollectionPrivate * priv;
+};
+
+struct _DirectViewCollectionClass {
+ ViewCollectionClass parent_class;
+};
+
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _DirectViewCollectionDirectViewManager {
+ ViewManager parent_instance;
+ DirectViewCollectionDirectViewManagerPrivate * priv;
+};
+
+struct _DirectViewCollectionDirectViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+
+static gpointer direct_view_parent_class = NULL;
+static gpointer direct_view_collection_parent_class = NULL;
+extern DirectPhotoSourceCollection* direct_photo_global;
+static gpointer direct_view_collection_direct_view_manager_parent_class = NULL;
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType direct_view_get_type (void) G_GNUC_CONST;
+#define DIRECT_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_VIEW, DirectViewPrivate))
+enum {
+ DIRECT_VIEW_DUMMY_PROPERTY
+};
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType direct_photo_get_type (void) G_GNUC_CONST;
+DirectView* direct_view_new (DirectPhoto* source);
+DirectView* direct_view_construct (GType object_type, DirectPhoto* source);
+DataView* data_view_new (DataSource* source);
+DataView* data_view_construct (GType object_type, DataSource* source);
+GFile* media_source_get_file (MediaSource* self);
+GFile* direct_view_get_file (DirectView* self);
+gchar* direct_view_get_collate_key (DirectView* self);
+static void direct_view_finalize (GObject* obj);
+GType marker_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType direct_view_collection_get_type (void) G_GNUC_CONST;
+enum {
+ DIRECT_VIEW_COLLECTION_DUMMY_PROPERTY
+};
+DirectViewCollection* direct_view_collection_new (void);
+DirectViewCollection* direct_view_collection_construct (GType object_type);
+ViewCollection* view_collection_new (const gchar* name);
+ViewCollection* view_collection_construct (GType object_type, const gchar* name);
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+static gint64 direct_view_collection_filename_comparator (void* a, void* b);
+static gint64 _direct_view_collection_filename_comparator_comparator (void* a, void* b, gpointer self);
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType direct_photo_source_collection_get_type (void) G_GNUC_CONST;
+static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_new (void);
+static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_construct (GType object_type);
+static GType direct_view_collection_direct_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+enum {
+ DIRECT_VIEW_COLLECTION_DIRECT_VIEW_MANAGER_DUMMY_PROPERTY
+};
+static DataView* direct_view_collection_direct_view_manager_real_create_view (ViewManager* base, DataSource* source);
+ViewManager* view_manager_construct (GType object_type);
+
+
+DirectView* direct_view_construct (GType object_type, DirectPhoto* source) {
+ DirectView * self = NULL;
+ DirectPhoto* _tmp0_ = NULL;
+ DirectPhoto* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ g_return_val_if_fail (IS_DIRECT_PHOTO (source), NULL);
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp0_ = source;
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self = (DirectView*) data_view_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_SOURCE, DataSource));
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp1_ = source;
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp2_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO, Photo), TYPE_MEDIA_SOURCE, MediaSource));
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _g_object_unref0 (self->priv->file);
+#line 14 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self->priv->file = _tmp2_;
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return self;
+#line 522 "DirectView.c"
+}
+
+
+DirectView* direct_view_new (DirectPhoto* source) {
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return direct_view_construct (TYPE_DIRECT_VIEW, source);
+#line 529 "DirectView.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 536 "DirectView.c"
+}
+
+
+GFile* direct_view_get_file (DirectView* self) {
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ g_return_val_if_fail (IS_DIRECT_VIEW (self), NULL);
+#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp0_ = self->priv->file;
+#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ result = _tmp1_;
+#line 18 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return result;
+#line 554 "DirectView.c"
+}
+
+
+gchar* direct_view_get_collate_key (DirectView* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ g_return_val_if_fail (IS_DIRECT_VIEW (self), NULL);
+#line 22 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp0_ = self->priv->collate_key;
+#line 22 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ if (_tmp0_ == NULL) {
+#line 569 "DirectView.c"
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp1_ = self->priv->file;
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp2_ = g_file_get_basename (_tmp1_);
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp3_ = _tmp2_;
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp4_ = g_utf8_collate_key_for_filename (_tmp3_, (gssize) -1);
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _g_free0 (self->priv->collate_key);
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self->priv->collate_key = _tmp4_;
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _g_free0 (_tmp3_);
+#line 588 "DirectView.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp5_ = self->priv->collate_key;
+#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ result = _tmp6_;
+#line 25 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return result;
+#line 598 "DirectView.c"
+}
+
+
+static void direct_view_class_init (DirectViewClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ direct_view_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ g_type_class_add_private (klass, sizeof (DirectViewPrivate));
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ G_OBJECT_CLASS (klass)->finalize = direct_view_finalize;
+#line 609 "DirectView.c"
+}
+
+
+static void direct_view_instance_init (DirectView * self) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self->priv = DIRECT_VIEW_GET_PRIVATE (self);
+#line 9 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self->priv->collate_key = NULL;
+#line 618 "DirectView.c"
+}
+
+
+static void direct_view_finalize (GObject* obj) {
+ DirectView * self;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_VIEW, DirectView);
+#line 8 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _g_object_unref0 (self->priv->file);
+#line 9 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _g_free0 (self->priv->collate_key);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ G_OBJECT_CLASS (direct_view_parent_class)->finalize (obj);
+#line 632 "DirectView.c"
+}
+
+
+GType direct_view_get_type (void) {
+ static volatile gsize direct_view_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectView), 0, (GInstanceInitFunc) direct_view_instance_init, NULL };
+ GType direct_view_type_id;
+ direct_view_type_id = g_type_register_static (TYPE_DATA_VIEW, "DirectView", &g_define_type_info, 0);
+ g_once_init_leave (&direct_view_type_id__volatile, direct_view_type_id);
+ }
+ return direct_view_type_id__volatile;
+}
+
+
+static gint64 _direct_view_collection_filename_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = direct_view_collection_filename_comparator (a, b);
+#line 39 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return result;
+#line 653 "DirectView.c"
+}
+
+
+DirectViewCollection* direct_view_collection_construct (GType object_type) {
+ DirectViewCollection* self = NULL;
+ DirectPhotoSourceCollection* _tmp0_ = NULL;
+ DirectViewCollectionDirectViewManager* _tmp1_ = NULL;
+ DirectViewCollectionDirectViewManager* _tmp2_ = NULL;
+ ViewCollectionMonitor* _tmp3_ = NULL;
+ ViewCollectionMonitor* _tmp4_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self = (DirectViewCollection*) view_collection_construct (object_type, "DirectViewCollection");
+#line 39 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_COLLECTION, DataCollection), _direct_view_collection_filename_comparator_comparator, NULL, NULL, NULL);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp0_ = direct_photo_global;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp1_ = direct_view_collection_direct_view_manager_new ();
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp2_ = _tmp1_;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp3_ = view_collection_monitor_source_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_VIEW_COLLECTION, ViewCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_VIEW_MANAGER, ViewManager), NULL, NULL, NULL, NULL);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp4_ = _tmp3_;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _view_collection_monitor_unref0 (_tmp4_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _view_manager_unref0 (_tmp2_);
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return self;
+#line 684 "DirectView.c"
+}
+
+
+DirectViewCollection* direct_view_collection_new (void) {
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return direct_view_collection_construct (TYPE_DIRECT_VIEW_COLLECTION);
+#line 691 "DirectView.c"
+}
+
+
+static gint64 direct_view_collection_filename_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ DirectView* aview = NULL;
+ void* _tmp0_ = NULL;
+ DirectView* bview = NULL;
+ void* _tmp1_ = NULL;
+ GCompareFunc _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint64 _tmp8_ = 0LL;
+#line 44 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp0_ = a;
+#line 44 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ aview = (DirectView*) _tmp0_;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp1_ = b;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ bview = (DirectView*) _tmp1_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp2_ = g_strcmp0;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp3_ = direct_view_get_collate_key (G_TYPE_CHECK_INSTANCE_CAST (aview, TYPE_DIRECT_VIEW, DirectView));
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp4_ = _tmp3_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp5_ = direct_view_get_collate_key (G_TYPE_CHECK_INSTANCE_CAST (bview, TYPE_DIRECT_VIEW, DirectView));
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp6_ = _tmp5_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp7_ = _tmp2_ (_tmp4_, _tmp6_);
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp8_ = (gint64) _tmp7_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _g_free0 (_tmp6_);
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _g_free0 (_tmp4_);
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ result = _tmp8_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return result;
+#line 738 "DirectView.c"
+}
+
+
+static DataView* direct_view_collection_direct_view_manager_real_create_view (ViewManager* base, DataSource* source) {
+ DirectViewCollectionDirectViewManager * self;
+ DataView* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ DirectView* _tmp1_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER, DirectViewCollectionDirectViewManager);
+#line 31 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp0_ = source;
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ _tmp1_ = direct_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO, DirectPhoto));
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return result;
+#line 759 "DirectView.c"
+}
+
+
+static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_construct (GType object_type) {
+ DirectViewCollectionDirectViewManager* self = NULL;
+#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ self = (DirectViewCollectionDirectViewManager*) view_manager_construct (object_type);
+#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return self;
+#line 769 "DirectView.c"
+}
+
+
+static DirectViewCollectionDirectViewManager* direct_view_collection_direct_view_manager_new (void) {
+#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ return direct_view_collection_direct_view_manager_construct (DIRECT_VIEW_COLLECTION_TYPE_DIRECT_VIEW_MANAGER);
+#line 776 "DirectView.c"
+}
+
+
+static void direct_view_collection_direct_view_manager_class_init (DirectViewCollectionDirectViewManagerClass * klass) {
+#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ direct_view_collection_direct_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 30 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ ((ViewManagerClass *) klass)->create_view = direct_view_collection_direct_view_manager_real_create_view;
+#line 785 "DirectView.c"
+}
+
+
+static void direct_view_collection_direct_view_manager_instance_init (DirectViewCollectionDirectViewManager * self) {
+}
+
+
+static GType direct_view_collection_direct_view_manager_get_type (void) {
+ static volatile gsize direct_view_collection_direct_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_view_collection_direct_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectViewCollectionDirectViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_collection_direct_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectViewCollectionDirectViewManager), 0, (GInstanceInitFunc) direct_view_collection_direct_view_manager_instance_init, NULL };
+ GType direct_view_collection_direct_view_manager_type_id;
+ direct_view_collection_direct_view_manager_type_id = g_type_register_static (TYPE_VIEW_MANAGER, "DirectViewCollectionDirectViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&direct_view_collection_direct_view_manager_type_id__volatile, direct_view_collection_direct_view_manager_type_id);
+ }
+ return direct_view_collection_direct_view_manager_type_id__volatile;
+}
+
+
+static void direct_view_collection_class_init (DirectViewCollectionClass * klass) {
+#line 29 "/home/jens/Source/shotwell/src/direct/DirectView.vala"
+ direct_view_collection_parent_class = g_type_class_peek_parent (klass);
+#line 808 "DirectView.c"
+}
+
+
+static void direct_view_collection_instance_init (DirectViewCollection * self) {
+}
+
+
+GType direct_view_collection_get_type (void) {
+ static volatile gsize direct_view_collection_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_view_collection_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectViewCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_view_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectViewCollection), 0, (GInstanceInitFunc) direct_view_collection_instance_init, NULL };
+ GType direct_view_collection_type_id;
+ direct_view_collection_type_id = g_type_register_static (TYPE_VIEW_COLLECTION, "DirectViewCollection", &g_define_type_info, 0);
+ g_once_init_leave (&direct_view_collection_type_id__volatile, direct_view_collection_type_id);
+ }
+ return direct_view_collection_type_id__volatile;
+}
+
+
+
diff --git a/src/direct/DirectWindow.c b/src/direct/DirectWindow.c
new file mode 100644
index 0000000..dcba026
--- /dev/null
+++ b/src/direct/DirectWindow.c
@@ -0,0 +1,935 @@
+/* DirectWindow.c generated by valac 0.32.1, the Vala compiler
+ * generated from DirectWindow.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+#include <gdk/gdk.h>
+
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+typedef struct _PageWindowPrivate PageWindowPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+typedef struct _AppWindowPrivate AppWindowPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_DIRECT_WINDOW (direct_window_get_type ())
+#define DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_WINDOW, DirectWindow))
+#define DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_WINDOW, DirectWindowClass))
+#define IS_DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_WINDOW))
+#define IS_DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_WINDOW))
+#define DIRECT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_WINDOW, DirectWindowClass))
+
+typedef struct _DirectWindow DirectWindow;
+typedef struct _DirectWindowClass DirectWindowClass;
+typedef struct _DirectWindowPrivate DirectWindowPrivate;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+
+#define TYPE_EDITING_HOST_PAGE (editing_host_page_get_type ())
+#define EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPage))
+#define EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+#define IS_EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDITING_HOST_PAGE))
+#define IS_EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDITING_HOST_PAGE))
+#define EDITING_HOST_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+
+typedef struct _EditingHostPage EditingHostPage;
+typedef struct _EditingHostPageClass EditingHostPageClass;
+
+#define TYPE_DIRECT_PHOTO_PAGE (direct_photo_page_get_type ())
+#define DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage))
+#define DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass))
+#define IS_DIRECT_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_PHOTO_PAGE))
+#define IS_DIRECT_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_PHOTO_PAGE))
+#define DIRECT_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPageClass))
+
+typedef struct _DirectPhotoPage DirectPhotoPage;
+typedef struct _DirectPhotoPageClass DirectPhotoPageClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE (direct_fullscreen_photo_page_get_type ())
+#define DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPage))
+#define DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass))
+#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE))
+#define IS_DIRECT_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE))
+#define DIRECT_FULLSCREEN_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_FULLSCREEN_PHOTO_PAGE, DirectFullscreenPhotoPageClass))
+
+typedef struct _DirectFullscreenPhotoPage DirectFullscreenPhotoPage;
+typedef struct _DirectFullscreenPhotoPageClass DirectFullscreenPhotoPageClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+struct _PageWindow {
+ GtkWindow parent_instance;
+ PageWindowPrivate * priv;
+ GtkUIManager* ui;
+};
+
+struct _PageWindowClass {
+ GtkWindowClass parent_class;
+ void (*switched_pages) (PageWindow* self, Page* old_page, Page* new_page);
+ void (*set_current_page) (PageWindow* self, Page* page);
+ void (*clear_current_page) (PageWindow* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _AppWindow {
+ PageWindow parent_instance;
+ AppWindowPrivate * priv;
+ GtkActionGroup** common_action_groups;
+ gint common_action_groups_length1;
+ gboolean maximized;
+ Dimensions dimensions;
+ gint pos_x;
+ gint pos_y;
+};
+
+struct _AppWindowClass {
+ PageWindowClass parent_class;
+ void (*on_fullscreen) (AppWindow* self);
+ gchar* (*get_app_role) (AppWindow* self);
+ void (*on_quit) (AppWindow* self);
+ GtkActionGroup** (*create_common_action_groups) (AppWindow* self, int* result_length1);
+ void (*replace_common_placeholders) (AppWindow* self, GtkUIManager* ui);
+ void (*update_common_action_availability) (AppWindow* self, Page* old_page, Page* new_page);
+ void (*update_common_actions) (AppWindow* self, Page* page, gint selected_count, gint count);
+};
+
+struct _DirectWindow {
+ AppWindow parent_instance;
+ DirectWindowPrivate * priv;
+};
+
+struct _DirectWindowClass {
+ AppWindowClass parent_class;
+};
+
+struct _DirectWindowPrivate {
+ DirectPhotoPage* direct_photo_page;
+};
+
+
+static gpointer direct_window_parent_class = NULL;
+extern AppWindow* app_window_instance;
+
+GType page_window_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType direct_window_get_type (void) G_GNUC_CONST;
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType editing_host_page_get_type (void) G_GNUC_CONST;
+GType direct_photo_page_get_type (void) G_GNUC_CONST;
+#define DIRECT_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_DIRECT_WINDOW, DirectWindowPrivate))
+enum {
+ DIRECT_WINDOW_DUMMY_PROPERTY
+};
+DirectWindow* direct_window_new (GFile* file);
+DirectWindow* direct_window_construct (GType object_type, GFile* file);
+AppWindow* app_window_construct (GType object_type);
+DirectPhotoPage* direct_photo_page_new (GFile* file);
+DirectPhotoPage* direct_photo_page_construct (GType object_type, GFile* file);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+static void direct_window_on_photo_changed (DirectWindow* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void _direct_window_on_photo_changed_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+GType data_view_get_type (void) G_GNUC_CONST;
+static void _direct_window_on_photo_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
+void page_window_set_current_page (PageWindow* self, Page* page);
+void direct_window_update_title (DirectWindow* self, GFile* file, gboolean modified);
+void page_switched_to (Page* self);
+GtkMenuBar* page_get_menubar (Page* self);
+GtkToolbar* page_get_toolbar (Page* self);
+DirectWindow* direct_window_get_app (void);
+DirectPhotoPage* direct_window_get_direct_page (DirectWindow* self);
+Page* page_window_get_current_page (PageWindow* self);
+gchar* get_display_pathname (GFile* file);
+#define RESOURCES_APP_TITLE "Shotwell"
+static void direct_window_real_on_fullscreen (AppWindow* base);
+GFile* direct_photo_page_get_current_file (DirectPhotoPage* self);
+void app_window_go_fullscreen (AppWindow* self, Page* page);
+DirectFullscreenPhotoPage* direct_fullscreen_photo_page_new (GFile* file);
+DirectFullscreenPhotoPage* direct_fullscreen_photo_page_construct (GType object_type, GFile* file);
+GType direct_fullscreen_photo_page_get_type (void) G_GNUC_CONST;
+static gchar* direct_window_real_get_app_role (AppWindow* base);
+#define RESOURCES_APP_DIRECT_ROLE _ ("Photo Viewer")
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+Photo* editing_host_page_get_photo (EditingHostPage* self);
+GFile* media_source_get_file (MediaSource* self);
+gboolean photo_has_alterations (Photo* self);
+static void direct_window_real_on_quit (AppWindow* base);
+gboolean direct_photo_page_check_quit (DirectPhotoPage* self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_set_direct_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+void app_window_on_quit (AppWindow* self);
+static gboolean direct_window_real_delete_event (GtkWidget* base, GdkEventAny* event);
+static gboolean direct_window_real_button_press_event (GtkWidget* base, GdkEventButton* event);
+void app_window_on_fullscreen (AppWindow* self);
+static gboolean direct_window_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+static void direct_window_finalize (GObject* obj);
+
+
+static void _direct_window_on_photo_changed_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ direct_window_on_photo_changed ((DirectWindow*) self);
+#line 371 "DirectWindow.c"
+}
+
+
+static void _direct_window_on_photo_changed_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ direct_window_on_photo_changed ((DirectWindow*) self);
+#line 378 "DirectWindow.c"
+}
+
+
+DirectWindow* direct_window_construct (GType object_type, GFile* file) {
+ DirectWindow * self = NULL;
+ GFile* _tmp0_ = NULL;
+ DirectPhotoPage* _tmp1_ = NULL;
+ DirectPhotoPage* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ DirectPhotoPage* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ DirectPhotoPage* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ DirectPhotoPage* _tmp10_ = NULL;
+ GtkBox* layout = NULL;
+ GtkBox* _tmp11_ = NULL;
+ DirectPhotoPage* _tmp12_ = NULL;
+ GtkMenuBar* _tmp13_ = NULL;
+ GtkMenuBar* _tmp14_ = NULL;
+ DirectPhotoPage* _tmp15_ = NULL;
+ DirectPhotoPage* _tmp16_ = NULL;
+ GtkToolbar* _tmp17_ = NULL;
+ GtkToolbar* _tmp18_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = (DirectWindow*) app_window_construct (object_type);
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = file;
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = direct_photo_page_new (_tmp0_);
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_object_ref_sink (_tmp1_);
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (self->priv->direct_photo_page);
+#line 11 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self->priv->direct_photo_page = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp2_ = self->priv->direct_photo_page;
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PAGE, Page));
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _direct_window_on_photo_changed_data_collection_items_altered, self, 0);
+#line 12 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _data_collection_unref0 (_tmp4_);
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp5_ = self->priv->direct_photo_page;
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PAGE, Page));
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_signal_connect_object (_tmp7_, "items-state-changed", (GCallback) _direct_window_on_photo_changed_view_collection_items_state_changed, self, 0);
+#line 13 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 15 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp8_ = self->priv->direct_photo_page;
+#line 15 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ page_window_set_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE, Page));
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp9_ = file;
+#line 17 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ direct_window_update_title (self, _tmp9_, FALSE);
+#line 19 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp10_ = self->priv->direct_photo_page;
+#line 19 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ page_switched_to (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_PAGE, Page));
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp11_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_object_ref_sink (_tmp11_);
+#line 23 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ layout = _tmp11_;
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp12_ = self->priv->direct_photo_page;
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp13_ = page_get_menubar (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PAGE, Page));
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ gtk_box_pack_start (layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 24 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp14_);
+#line 25 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp15_ = self->priv->direct_photo_page;
+#line 25 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ gtk_box_pack_start (layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp16_ = self->priv->direct_photo_page;
+#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp17_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_PAGE, Page));
+#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp18_ = _tmp17_;
+#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ gtk_box_pack_end (layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 26 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp18_);
+#line 28 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_widget_get_type (), GtkWidget));
+#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (layout);
+#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return self;
+#line 486 "DirectWindow.c"
+}
+
+
+DirectWindow* direct_window_new (GFile* file) {
+#line 10 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return direct_window_construct (TYPE_DIRECT_WINDOW, file);
+#line 493 "DirectWindow.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 500 "DirectWindow.c"
+}
+
+
+DirectWindow* direct_window_get_app (void) {
+ DirectWindow* result = NULL;
+ AppWindow* _tmp0_ = NULL;
+ DirectWindow* _tmp1_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = app_window_instance;
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_WINDOW, DirectWindow));
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 516 "DirectWindow.c"
+}
+
+
+DirectPhotoPage* direct_window_get_direct_page (DirectWindow* self) {
+ DirectPhotoPage* result = NULL;
+ Page* _tmp0_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_val_if_fail (IS_DIRECT_WINDOW (self), NULL);
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECT_PHOTO_PAGE, DirectPhotoPage);
+#line 36 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 531 "DirectWindow.c"
+}
+
+
+void direct_window_update_title (DirectWindow* self, GFile* file, gboolean modified) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_if_fail (IS_DIRECT_WINDOW (self));
+#line 39 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = modified;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (_tmp1_) {
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = "*";
+#line 558 "DirectWindow.c"
+ } else {
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = "";
+#line 562 "DirectWindow.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp2_ = file;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = g_file_get_basename (_tmp2_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp5_ = file;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp6_ = g_file_get_parent (_tmp5_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp8_ = get_display_pathname (_tmp7_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp10_ = g_strdup_printf ("%s%s (%s) - %s", _tmp0_, _tmp4_, _tmp9_, RESOURCES_APP_TITLE);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp11_ = _tmp10_;
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp11_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_free0 (_tmp11_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_free0 (_tmp9_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 40 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_free0 (_tmp4_);
+#line 594 "DirectWindow.c"
+}
+
+
+static void direct_window_real_on_fullscreen (AppWindow* base) {
+ DirectWindow * self;
+ GFile* file = NULL;
+ DirectPhotoPage* _tmp0_ = NULL;
+ DirectPhotoPage* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ DirectFullscreenPhotoPage* _tmp4_ = NULL;
+ DirectFullscreenPhotoPage* _tmp5_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow);
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = direct_window_get_direct_page (self);
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp2_ = direct_photo_page_get_current_file (_tmp1_);
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 45 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ file = _tmp3_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = direct_fullscreen_photo_page_new (file);
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_object_ref_sink (_tmp4_);
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ app_window_go_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_PAGE, Page));
+#line 47 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 44 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (file);
+#line 633 "DirectWindow.c"
+}
+
+
+static gchar* direct_window_real_get_app_role (AppWindow* base) {
+ DirectWindow * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow);
+#line 51 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = g_strdup (RESOURCES_APP_DIRECT_ROLE);
+#line 51 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 649 "DirectWindow.c"
+}
+
+
+static void direct_window_on_photo_changed (DirectWindow* self) {
+ Photo* photo = NULL;
+ DirectPhotoPage* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_if_fail (IS_DIRECT_WINDOW (self));
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = self->priv->direct_photo_page;
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 55 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ photo = _tmp1_;
+#line 56 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp2_ = photo;
+#line 56 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 670 "DirectWindow.c"
+ Photo* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = photo;
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp6_ = photo;
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp7_ = photo_has_alterations (_tmp6_);
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ direct_window_update_title (self, _tmp5_, _tmp7_);
+#line 57 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 690 "DirectWindow.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (photo);
+#line 694 "DirectWindow.c"
+}
+
+
+static void direct_window_real_on_quit (AppWindow* base) {
+ DirectWindow * self;
+ DirectPhotoPage* _tmp0_ = NULL;
+ DirectPhotoPage* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ Dimensions _tmp7_ = {0};
+#line 60 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow);
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = direct_window_get_direct_page (self);
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp2_ = direct_photo_page_check_quit (_tmp1_);
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = !_tmp2_;
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 61 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (_tmp3_) {
+#line 62 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return;
+#line 724 "DirectWindow.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)->maximized;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)->dimensions;
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ configuration_facade_set_direct_window_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp6_, &_tmp7_);
+#line 64 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 66 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ APP_WINDOW_CLASS (direct_window_parent_class)->on_quit (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow));
+#line 740 "DirectWindow.c"
+}
+
+
+static gboolean direct_window_real_delete_event (GtkWidget* base, GdkEventAny* event) {
+ DirectWindow * self;
+ gboolean result = FALSE;
+ DirectPhotoPage* _tmp0_ = NULL;
+ DirectPhotoPage* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 69 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow);
+#line 69 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = direct_window_get_direct_page (self);
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp2_ = direct_photo_page_check_quit (_tmp1_);
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = !_tmp2_;
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 70 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (_tmp3_) {
+#line 71 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = TRUE;
+#line 71 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 772 "DirectWindow.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (GTK_WIDGET_CLASS (direct_window_parent_class)->delete_event != NULL) {
+#line 776 "DirectWindow.c"
+ GdkEventAny* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp5_ = event;
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp6_ = GTK_WIDGET_CLASS (direct_window_parent_class)->delete_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), gtk_widget_get_type (), GtkWidget), _tmp5_);
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = _tmp6_;
+#line 785 "DirectWindow.c"
+ } else {
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = FALSE;
+#line 789 "DirectWindow.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = _tmp4_;
+#line 73 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 795 "DirectWindow.c"
+}
+
+
+static gboolean direct_window_real_button_press_event (GtkWidget* base, GdkEventButton* event) {
+ DirectWindow * self;
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ GdkEventType _tmp1_ = 0;
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow);
+#line 76 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 77 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = event;
+#line 77 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = _tmp0_->type;
+#line 77 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (_tmp1_ == GDK_2BUTTON_PRESS) {
+#line 78 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ app_window_on_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow));
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = TRUE;
+#line 80 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 820 "DirectWindow.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = FALSE;
+#line 83 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 826 "DirectWindow.c"
+}
+
+
+static gboolean direct_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ DirectWindow * self;
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 86 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_DIRECT_WINDOW, DirectWindow);
+#line 86 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp0_ = event;
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 88 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (g_strcmp0 (_tmp2_, "Escape") == 0) {
+#line 89 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ app_window_on_quit (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow));
+#line 91 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = TRUE;
+#line 91 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 855 "DirectWindow.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ if (GTK_WIDGET_CLASS (direct_window_parent_class)->key_press_event != NULL) {
+#line 859 "DirectWindow.c"
+ GdkEventKey* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp4_ = event;
+#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp5_ = GTK_WIDGET_CLASS (direct_window_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), gtk_widget_get_type (), GtkWidget), _tmp4_);
+#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = _tmp5_;
+#line 868 "DirectWindow.c"
+ } else {
+#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _tmp3_ = FALSE;
+#line 872 "DirectWindow.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ result = _tmp3_;
+#line 95 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ return result;
+#line 878 "DirectWindow.c"
+}
+
+
+static void direct_window_class_init (DirectWindowClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ direct_window_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ g_type_class_add_private (klass, sizeof (DirectWindowPrivate));
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ ((AppWindowClass *) klass)->on_fullscreen = direct_window_real_on_fullscreen;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ ((AppWindowClass *) klass)->get_app_role = direct_window_real_get_app_role;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ ((AppWindowClass *) klass)->on_quit = direct_window_real_on_quit;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ ((GtkWidgetClass *) klass)->delete_event = direct_window_real_delete_event;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ ((GtkWidgetClass *) klass)->button_press_event = direct_window_real_button_press_event;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = direct_window_real_key_press_event;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ G_OBJECT_CLASS (klass)->finalize = direct_window_finalize;
+#line 901 "DirectWindow.c"
+}
+
+
+static void direct_window_instance_init (DirectWindow * self) {
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self->priv = DIRECT_WINDOW_GET_PRIVATE (self);
+#line 908 "DirectWindow.c"
+}
+
+
+static void direct_window_finalize (GObject* obj) {
+ DirectWindow * self;
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DIRECT_WINDOW, DirectWindow);
+#line 8 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ _g_object_unref0 (self->priv->direct_photo_page);
+#line 7 "/home/jens/Source/shotwell/src/direct/DirectWindow.vala"
+ G_OBJECT_CLASS (direct_window_parent_class)->finalize (obj);
+#line 920 "DirectWindow.c"
+}
+
+
+GType direct_window_get_type (void) {
+ static volatile gsize direct_window_type_id__volatile = 0;
+ if (g_once_init_enter (&direct_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (DirectWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) direct_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DirectWindow), 0, (GInstanceInitFunc) direct_window_instance_init, NULL };
+ GType direct_window_type_id;
+ direct_window_type_id = g_type_register_static (TYPE_APP_WINDOW, "DirectWindow", &g_define_type_info, 0);
+ g_once_init_leave (&direct_window_type_id__volatile, direct_window_type_id);
+ }
+ return direct_window_type_id__volatile;
+}
+
+
+
diff --git a/src/direct/mk/direct.mk b/src/direct/mk/direct.mk
deleted file mode 100644
index 4c0f226..0000000
--- a/src/direct/mk/direct.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Direct
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := direct
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- DirectWindow.vala \
- DirectPhoto.vala \
- DirectPhotoPage.vala \
- DirectView.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Db \
- Util \
- Photos \
- Slideshow \
- Core
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/editing_tools/EditingTools.c b/src/editing_tools/EditingTools.c
new file mode 100644
index 0000000..ffb8d35
--- /dev/null
+++ b/src/editing_tools/EditingTools.c
@@ -0,0 +1,19377 @@
+/* EditingTools.c generated by valac 0.32.1, the Vala compiler
+ * generated from EditingTools.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* This file is the master unit file for the EditingTools unit. It should be edited to include
+ * whatever code is deemed necessary.
+ *
+ * The init() and terminate() methods are mandatory.
+ *
+ * If the unit needs to be configured prior to initialization, add the proper parameters to
+ * the preconfigure() method, implement it, and ensure in init() that it's been called.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib/gi18n-lib.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW (editing_tools_editing_tool_window_get_type ())
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow))
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))
+#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
+#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))
+
+typedef struct _EditingToolsEditingToolWindow EditingToolsEditingToolWindow;
+typedef struct _EditingToolsEditingToolWindowClass EditingToolsEditingToolWindowClass;
+typedef struct _EditingToolsEditingToolWindowPrivate EditingToolsEditingToolWindowPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define EDITING_TOOLS_TYPE_PHOTO_CANVAS (editing_tools_photo_canvas_get_type ())
+#define EDITING_TOOLS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvas))
+#define EDITING_TOOLS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))
+#define EDITING_TOOLS_IS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
+#define EDITING_TOOLS_IS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
+#define EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))
+
+typedef struct _EditingToolsPhotoCanvas EditingToolsPhotoCanvas;
+typedef struct _EditingToolsPhotoCanvasClass EditingToolsPhotoCanvasClass;
+typedef struct _EditingToolsPhotoCanvasPrivate EditingToolsPhotoCanvasPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+typedef struct _EditingToolsParamSpecPhotoCanvas EditingToolsParamSpecPhotoCanvas;
+
+#define EDITING_TOOLS_TYPE_EDITING_TOOL (editing_tools_editing_tool_get_type ())
+#define EDITING_TOOLS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool))
+#define EDITING_TOOLS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))
+#define EDITING_TOOLS_IS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL))
+#define EDITING_TOOLS_IS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL))
+#define EDITING_TOOLS_EDITING_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))
+
+typedef struct _EditingToolsEditingTool EditingToolsEditingTool;
+typedef struct _EditingToolsEditingToolClass EditingToolsEditingToolClass;
+typedef struct _EditingToolsEditingToolPrivate EditingToolsEditingToolPrivate;
+#define _editing_tools_photo_canvas_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_photo_canvas_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+typedef struct _EditingToolsParamSpecEditingTool EditingToolsParamSpecEditingTool;
+
+#define EDITING_TOOLS_TYPE_CROP_TOOL (editing_tools_crop_tool_get_type ())
+#define EDITING_TOOLS_CROP_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool))
+#define EDITING_TOOLS_CROP_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolClass))
+#define EDITING_TOOLS_IS_CROP_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_CROP_TOOL))
+#define EDITING_TOOLS_IS_CROP_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_CROP_TOOL))
+#define EDITING_TOOLS_CROP_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolClass))
+
+typedef struct _EditingToolsCropTool EditingToolsCropTool;
+typedef struct _EditingToolsCropToolClass EditingToolsCropToolClass;
+typedef struct _EditingToolsCropToolPrivate EditingToolsCropToolPrivate;
+
+#define EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW (editing_tools_crop_tool_crop_tool_window_get_type ())
+#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindow))
+#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindowClass))
+#define EDITING_TOOLS_CROP_TOOL_IS_CROP_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW))
+#define EDITING_TOOLS_CROP_TOOL_IS_CROP_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW))
+#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindowClass))
+
+typedef struct _EditingToolsCropToolCropToolWindow EditingToolsCropToolCropToolWindow;
+typedef struct _EditingToolsCropToolCropToolWindowClass EditingToolsCropToolCropToolWindowClass;
+
+#define TYPE_BOX_LOCATION (box_location_get_type ())
+
+#define EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION (editing_tools_crop_tool_constraint_description_get_type ())
+#define EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescription))
+#define EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescriptionClass))
+#define EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION))
+#define EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION))
+#define EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescriptionClass))
+
+typedef struct _EditingToolsCropToolConstraintDescription EditingToolsCropToolConstraintDescription;
+typedef struct _EditingToolsCropToolConstraintDescriptionClass EditingToolsCropToolConstraintDescriptionClass;
+
+#define EDITING_TOOLS_CROP_TOOL_TYPE_RETICLE_ORIENTATION (editing_tools_crop_tool_reticle_orientation_get_type ())
+
+#define EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_MODE (editing_tools_crop_tool_constraint_mode_get_type ())
+typedef struct _EditingToolsCropToolConstraintDescriptionPrivate EditingToolsCropToolConstraintDescriptionPrivate;
+#define _editing_tools_crop_tool_constraint_description_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_crop_tool_constraint_description_unref (var), NULL)))
+typedef struct _EditingToolsCropToolCropToolWindowPrivate EditingToolsCropToolCropToolWindowPrivate;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ())
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+
+#define TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND (generic_photo_transformation_command_get_type ())
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+
+typedef struct _GenericPhotoTransformationCommand GenericPhotoTransformationCommand;
+typedef struct _GenericPhotoTransformationCommandClass GenericPhotoTransformationCommandClass;
+
+#define TYPE_CROP_COMMAND (crop_command_get_type ())
+#define CROP_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CROP_COMMAND, CropCommand))
+#define CROP_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CROP_COMMAND, CropCommandClass))
+#define IS_CROP_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CROP_COMMAND))
+#define IS_CROP_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CROP_COMMAND))
+#define CROP_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CROP_COMMAND, CropCommandClass))
+
+typedef struct _CropCommand CropCommand;
+typedef struct _CropCommandClass CropCommandClass;
+
+#define TYPE_BOX_COMPLEMENTS (box_complements_get_type ())
+typedef struct _EditingToolsCropToolParamSpecConstraintDescription EditingToolsCropToolParamSpecConstraintDescription;
+
+#define EDITING_TOOLS_TYPE_REDEYE_INSTANCE (editing_tools_redeye_instance_get_type ())
+typedef struct _EditingToolsRedeyeInstance EditingToolsRedeyeInstance;
+
+#define EDITING_TOOLS_TYPE_REDEYE_TOOL (editing_tools_redeye_tool_get_type ())
+#define EDITING_TOOLS_REDEYE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool))
+#define EDITING_TOOLS_REDEYE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolClass))
+#define EDITING_TOOLS_IS_REDEYE_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL))
+#define EDITING_TOOLS_IS_REDEYE_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_REDEYE_TOOL))
+#define EDITING_TOOLS_REDEYE_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolClass))
+
+typedef struct _EditingToolsRedeyeTool EditingToolsRedeyeTool;
+typedef struct _EditingToolsRedeyeToolClass EditingToolsRedeyeToolClass;
+typedef struct _EditingToolsRedeyeToolPrivate EditingToolsRedeyeToolPrivate;
+
+#define EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW (editing_tools_redeye_tool_redeye_tool_window_get_type ())
+#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindow))
+#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindowClass))
+#define EDITING_TOOLS_REDEYE_TOOL_IS_REDEYE_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW))
+#define EDITING_TOOLS_REDEYE_TOOL_IS_REDEYE_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW))
+#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindowClass))
+
+typedef struct _EditingToolsRedeyeToolRedeyeToolWindow EditingToolsRedeyeToolRedeyeToolWindow;
+typedef struct _EditingToolsRedeyeToolRedeyeToolWindowClass EditingToolsRedeyeToolRedeyeToolWindowClass;
+typedef struct _EditingToolsRedeyeToolRedeyeToolWindowPrivate EditingToolsRedeyeToolRedeyeToolWindowPrivate;
+
+#define TYPE_REDEYE_COMMAND (redeye_command_get_type ())
+#define REDEYE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REDEYE_COMMAND, RedeyeCommand))
+#define REDEYE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REDEYE_COMMAND, RedeyeCommandClass))
+#define IS_REDEYE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REDEYE_COMMAND))
+#define IS_REDEYE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REDEYE_COMMAND))
+#define REDEYE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REDEYE_COMMAND, RedeyeCommandClass))
+
+typedef struct _RedeyeCommand RedeyeCommand;
+typedef struct _RedeyeCommandClass RedeyeCommandClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define EDITING_TOOLS_TYPE_ADJUST_TOOL (editing_tools_adjust_tool_get_type ())
+#define EDITING_TOOLS_ADJUST_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool))
+#define EDITING_TOOLS_ADJUST_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolClass))
+#define EDITING_TOOLS_IS_ADJUST_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL))
+#define EDITING_TOOLS_IS_ADJUST_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_ADJUST_TOOL))
+#define EDITING_TOOLS_ADJUST_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolClass))
+
+typedef struct _EditingToolsAdjustTool EditingToolsAdjustTool;
+typedef struct _EditingToolsAdjustToolClass EditingToolsAdjustToolClass;
+typedef struct _EditingToolsAdjustToolPrivate EditingToolsAdjustToolPrivate;
+
+#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW (editing_tools_adjust_tool_adjust_tool_window_get_type ())
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindow))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindowClass))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindowClass))
+
+typedef struct _EditingToolsAdjustToolAdjustToolWindow EditingToolsAdjustToolAdjustToolWindow;
+typedef struct _EditingToolsAdjustToolAdjustToolWindowClass EditingToolsAdjustToolAdjustToolWindowClass;
+
+#define TYPE_PIXEL_TRANSFORMER (pixel_transformer_get_type ())
+#define PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformer))
+#define PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+#define IS_PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMER))
+#define IS_PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMER))
+#define PIXEL_TRANSFORMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+
+typedef struct _PixelTransformer PixelTransformer;
+typedef struct _PixelTransformerClass PixelTransformerClass;
+
+#define TYPE_PIXEL_TRANSFORMATION_BUNDLE (pixel_transformation_bundle_get_type ())
+#define PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundle))
+#define PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define IS_PIXEL_TRANSFORMATION_BUNDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION_BUNDLE))
+#define PIXEL_TRANSFORMATION_BUNDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION_BUNDLE, PixelTransformationBundleClass))
+
+typedef struct _PixelTransformationBundle PixelTransformationBundle;
+typedef struct _PixelTransformationBundleClass PixelTransformationBundleClass;
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+#define _pixel_transformer_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformer_unref (var), NULL)))
+#define _pixel_transformation_bundle_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_bundle_unref (var), NULL)))
+#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
+
+#define TYPE_PIXEL_TRANSFORMATION (pixel_transformation_get_type ())
+#define PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformation))
+#define PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+#define IS_PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION))
+#define IS_PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION))
+#define PIXEL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+
+typedef struct _PixelTransformation PixelTransformation;
+typedef struct _PixelTransformationClass PixelTransformationClass;
+
+#define TYPE_HSV_TRANSFORMATION (hsv_transformation_get_type ())
+#define HSV_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HSV_TRANSFORMATION, HSVTransformation))
+#define HSV_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HSV_TRANSFORMATION, HSVTransformationClass))
+#define IS_HSV_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HSV_TRANSFORMATION))
+#define IS_HSV_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HSV_TRANSFORMATION))
+#define HSV_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HSV_TRANSFORMATION, HSVTransformationClass))
+
+typedef struct _HSVTransformation HSVTransformation;
+typedef struct _HSVTransformationClass HSVTransformationClass;
+
+#define TYPE_EXPANSION_TRANSFORMATION (expansion_transformation_get_type ())
+#define EXPANSION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation))
+#define EXPANSION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformationClass))
+#define IS_EXPANSION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPANSION_TRANSFORMATION))
+#define IS_EXPANSION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPANSION_TRANSFORMATION))
+#define EXPANSION_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformationClass))
+
+typedef struct _ExpansionTransformation ExpansionTransformation;
+typedef struct _ExpansionTransformationClass ExpansionTransformationClass;
+
+#define TYPE_PIXEL_TRANSFORMATION_TYPE (pixel_transformation_type_get_type ())
+typedef struct _EditingToolsAdjustToolAdjustToolWindowPrivate EditingToolsAdjustToolAdjustToolWindowPrivate;
+
+#define TYPE_RGB_HISTOGRAM_MANIPULATOR (rgb_histogram_manipulator_get_type ())
+#define RGB_HISTOGRAM_MANIPULATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulator))
+#define RGB_HISTOGRAM_MANIPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulatorClass))
+#define IS_RGB_HISTOGRAM_MANIPULATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR))
+#define IS_RGB_HISTOGRAM_MANIPULATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_HISTOGRAM_MANIPULATOR))
+#define RGB_HISTOGRAM_MANIPULATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_HISTOGRAM_MANIPULATOR, RGBHistogramManipulatorClass))
+
+typedef struct _RGBHistogramManipulator RGBHistogramManipulator;
+typedef struct _RGBHistogramManipulatorClass RGBHistogramManipulatorClass;
+
+#define TYPE_SHADOW_DETAIL_TRANSFORMATION (shadow_detail_transformation_get_type ())
+#define SHADOW_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation))
+#define SHADOW_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformationClass))
+#define IS_SHADOW_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SHADOW_DETAIL_TRANSFORMATION))
+#define IS_SHADOW_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SHADOW_DETAIL_TRANSFORMATION))
+#define SHADOW_DETAIL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformationClass))
+
+typedef struct _ShadowDetailTransformation ShadowDetailTransformation;
+typedef struct _ShadowDetailTransformationClass ShadowDetailTransformationClass;
+
+#define TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION (highlight_detail_transformation_get_type ())
+#define HIGHLIGHT_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation))
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformationClass))
+#define IS_HIGHLIGHT_DETAIL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION))
+#define IS_HIGHLIGHT_DETAIL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION))
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformationClass))
+
+typedef struct _HighlightDetailTransformation HighlightDetailTransformation;
+typedef struct _HighlightDetailTransformationClass HighlightDetailTransformationClass;
+
+#define TYPE_RGB_TRANSFORMATION (rgb_transformation_get_type ())
+#define RGB_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_TRANSFORMATION, RGBTransformation))
+#define RGB_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_TRANSFORMATION, RGBTransformationClass))
+#define IS_RGB_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_TRANSFORMATION))
+#define IS_RGB_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_TRANSFORMATION))
+#define RGB_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_TRANSFORMATION, RGBTransformationClass))
+
+typedef struct _RGBTransformation RGBTransformation;
+typedef struct _RGBTransformationClass RGBTransformationClass;
+
+#define TYPE_TEMPERATURE_TRANSFORMATION (temperature_transformation_get_type ())
+#define TEMPERATURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation))
+#define TEMPERATURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformationClass))
+#define IS_TEMPERATURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEMPERATURE_TRANSFORMATION))
+#define IS_TEMPERATURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEMPERATURE_TRANSFORMATION))
+#define TEMPERATURE_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformationClass))
+
+typedef struct _TemperatureTransformation TemperatureTransformation;
+typedef struct _TemperatureTransformationClass TemperatureTransformationClass;
+
+#define TYPE_TINT_TRANSFORMATION (tint_transformation_get_type ())
+#define TINT_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TINT_TRANSFORMATION, TintTransformation))
+#define TINT_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TINT_TRANSFORMATION, TintTransformationClass))
+#define IS_TINT_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TINT_TRANSFORMATION))
+#define IS_TINT_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TINT_TRANSFORMATION))
+#define TINT_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TINT_TRANSFORMATION, TintTransformationClass))
+
+typedef struct _TintTransformation TintTransformation;
+typedef struct _TintTransformationClass TintTransformationClass;
+
+#define TYPE_SATURATION_TRANSFORMATION (saturation_transformation_get_type ())
+#define SATURATION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SATURATION_TRANSFORMATION, SaturationTransformation))
+#define SATURATION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SATURATION_TRANSFORMATION, SaturationTransformationClass))
+#define IS_SATURATION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SATURATION_TRANSFORMATION))
+#define IS_SATURATION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SATURATION_TRANSFORMATION))
+#define SATURATION_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SATURATION_TRANSFORMATION, SaturationTransformationClass))
+
+typedef struct _SaturationTransformation SaturationTransformation;
+typedef struct _SaturationTransformationClass SaturationTransformationClass;
+
+#define TYPE_EXPOSURE_TRANSFORMATION (exposure_transformation_get_type ())
+#define EXPOSURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation))
+#define EXPOSURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformationClass))
+#define IS_EXPOSURE_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXPOSURE_TRANSFORMATION))
+#define IS_EXPOSURE_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXPOSURE_TRANSFORMATION))
+#define EXPOSURE_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformationClass))
+
+typedef struct _ExposureTransformation ExposureTransformation;
+typedef struct _ExposureTransformationClass ExposureTransformationClass;
+#define _pixel_transformation_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_unref (var), NULL)))
+
+#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND (editing_tools_adjust_tool_adjust_tool_command_get_type ())
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommandClass))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommandClass))
+
+typedef struct _EditingToolsAdjustToolAdjustToolCommand EditingToolsAdjustToolAdjustToolCommand;
+typedef struct _EditingToolsAdjustToolAdjustToolCommandClass EditingToolsAdjustToolAdjustToolCommandClass;
+
+#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND (editing_tools_adjust_tool_adjust_reset_command_get_type ())
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommandClass))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_RESET_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_RESET_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommandClass))
+
+typedef struct _EditingToolsAdjustToolAdjustResetCommand EditingToolsAdjustToolAdjustResetCommand;
+typedef struct _EditingToolsAdjustToolAdjustResetCommandClass EditingToolsAdjustToolAdjustResetCommandClass;
+
+#define TYPE_ADJUST_COLORS_SINGLE_COMMAND (adjust_colors_single_command_get_type ())
+#define ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommand))
+#define ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))
+#define IS_ADJUST_COLORS_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
+#define IS_ADJUST_COLORS_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADJUST_COLORS_SINGLE_COMMAND))
+#define ADJUST_COLORS_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADJUST_COLORS_SINGLE_COMMAND, AdjustColorsSingleCommandClass))
+
+typedef struct _AdjustColorsSingleCommand AdjustColorsSingleCommand;
+typedef struct _AdjustColorsSingleCommandClass AdjustColorsSingleCommandClass;
+
+#define EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND (editing_tools_adjust_tool_slider_adjustment_command_get_type ())
+#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand))
+#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommandClass))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_SLIDER_ADJUSTMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_SLIDER_ADJUSTMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommandClass))
+
+typedef struct _EditingToolsAdjustToolSliderAdjustmentCommand EditingToolsAdjustToolSliderAdjustmentCommand;
+typedef struct _EditingToolsAdjustToolSliderAdjustmentCommandClass EditingToolsAdjustToolSliderAdjustmentCommandClass;
+
+#define EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND (editing_tools_adjust_tool_adjust_enhance_command_get_type ())
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommandClass))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_ENHANCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_ENHANCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND))
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommandClass))
+
+typedef struct _EditingToolsAdjustToolAdjustEnhanceCommand EditingToolsAdjustToolAdjustEnhanceCommand;
+typedef struct _EditingToolsAdjustToolAdjustEnhanceCommandClass EditingToolsAdjustToolAdjustEnhanceCommandClass;
+
+#define TYPE_COMMAND_DESCRIPTION (command_description_get_type ())
+#define COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescription))
+#define IS_COMMAND_DESCRIPTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_DESCRIPTION))
+#define COMMAND_DESCRIPTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_COMMAND_DESCRIPTION, CommandDescriptionIface))
+
+typedef struct _CommandDescription CommandDescription;
+typedef struct _CommandDescriptionIface CommandDescriptionIface;
+typedef struct _CommandPrivate CommandPrivate;
+typedef struct _EditingToolsAdjustToolAdjustToolCommandPrivate EditingToolsAdjustToolAdjustToolCommandPrivate;
+typedef struct _EditingToolsAdjustToolAdjustResetCommandPrivate EditingToolsAdjustToolAdjustResetCommandPrivate;
+typedef struct _EditingToolsAdjustToolSliderAdjustmentCommandPrivate EditingToolsAdjustToolSliderAdjustmentCommandPrivate;
+typedef struct _EditingToolsAdjustToolAdjustEnhanceCommandPrivate EditingToolsAdjustToolAdjustEnhanceCommandPrivate;
+
+#define TYPE_ENHANCE_SINGLE_COMMAND (enhance_single_command_get_type ())
+#define ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommand))
+#define ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))
+#define IS_ENHANCE_SINGLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENHANCE_SINGLE_COMMAND))
+#define IS_ENHANCE_SINGLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENHANCE_SINGLE_COMMAND))
+#define ENHANCE_SINGLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENHANCE_SINGLE_COMMAND, EnhanceSingleCommandClass))
+
+typedef struct _EnhanceSingleCommand EnhanceSingleCommand;
+typedef struct _EnhanceSingleCommandClass EnhanceSingleCommandClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _EditingToolsEditingToolWindow {
+ GtkWindow parent_instance;
+ EditingToolsEditingToolWindowPrivate * priv;
+};
+
+struct _EditingToolsEditingToolWindowClass {
+ GtkWindowClass parent_class;
+};
+
+struct _EditingToolsEditingToolWindowPrivate {
+ GtkFrame* layout_frame;
+ gboolean user_moved;
+};
+
+struct _EditingToolsPhotoCanvas {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EditingToolsPhotoCanvasPrivate * priv;
+};
+
+struct _EditingToolsPhotoCanvasClass {
+ GTypeClass parent_class;
+ void (*finalize) (EditingToolsPhotoCanvas *self);
+ void (*repaint) (EditingToolsPhotoCanvas* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _EditingToolsPhotoCanvasPrivate {
+ GtkWindow* container;
+ GdkWindow* drawing_window;
+ Photo* photo;
+ cairo_t* default_ctx;
+ Dimensions surface_dim;
+ cairo_surface_t* scaled;
+ GdkPixbuf* scaled_pixbuf;
+ GdkRectangle scaled_position;
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+struct _EditingToolsParamSpecPhotoCanvas {
+ GParamSpec parent_instance;
+};
+
+struct _EditingToolsEditingTool {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EditingToolsEditingToolPrivate * priv;
+ EditingToolsPhotoCanvas* canvas;
+ cairo_surface_t* surface;
+ gchar* name;
+};
+
+struct _EditingToolsEditingToolClass {
+ GTypeClass parent_class;
+ void (*finalize) (EditingToolsEditingTool *self);
+ void (*activate) (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
+ void (*deactivate) (EditingToolsEditingTool* self);
+ EditingToolsEditingToolWindow* (*get_tool_window) (EditingToolsEditingTool* self);
+ GdkPixbuf* (*get_display_pixbuf) (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+ void (*on_left_click) (EditingToolsEditingTool* self, gint x, gint y);
+ void (*on_left_released) (EditingToolsEditingTool* self, gint x, gint y);
+ void (*on_motion) (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (EditingToolsEditingTool* self);
+ gboolean (*on_keypress) (EditingToolsEditingTool* self, GdkEventKey* event);
+ void (*paint) (EditingToolsEditingTool* self, cairo_t* ctx);
+};
+
+struct _EditingToolsEditingToolPrivate {
+ EditingToolsEditingToolWindow* tool_window;
+};
+
+typedef EditingToolsEditingTool* (*EditingToolsEditingToolFactory) ();
+struct _EditingToolsParamSpecEditingTool {
+ GParamSpec parent_instance;
+};
+
+struct _EditingToolsCropTool {
+ EditingToolsEditingTool parent_instance;
+ EditingToolsCropToolPrivate * priv;
+};
+
+struct _EditingToolsCropToolClass {
+ EditingToolsEditingToolClass parent_class;
+};
+
+typedef enum {
+ BOX_LOCATION_OUTSIDE,
+ BOX_LOCATION_INSIDE,
+ BOX_LOCATION_TOP_SIDE,
+ BOX_LOCATION_LEFT_SIDE,
+ BOX_LOCATION_RIGHT_SIDE,
+ BOX_LOCATION_BOTTOM_SIDE,
+ BOX_LOCATION_TOP_LEFT,
+ BOX_LOCATION_BOTTOM_LEFT,
+ BOX_LOCATION_TOP_RIGHT,
+ BOX_LOCATION_BOTTOM_RIGHT
+} BoxLocation;
+
+typedef enum {
+ EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE,
+ EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT
+} EditingToolsCropToolReticleOrientation;
+
+typedef enum {
+ EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL,
+ EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM
+} EditingToolsCropToolConstraintMode;
+
+struct _EditingToolsCropToolPrivate {
+ EditingToolsCropToolCropToolWindow* crop_tool_window;
+ GdkCursorType current_cursor_type;
+ BoxLocation in_manipulation;
+ cairo_t* wide_black_ctx;
+ cairo_t* wide_white_ctx;
+ cairo_t* thin_white_ctx;
+ cairo_t* text_ctx;
+ cairo_surface_t* crop_surface;
+ Box scaled_crop;
+ gint last_grab_x;
+ gint last_grab_y;
+ EditingToolsCropToolConstraintDescription** constraints;
+ gint constraints_length1;
+ gint _constraints_size_;
+ GtkListStore* constraint_list;
+ EditingToolsCropToolReticleOrientation reticle_orientation;
+ EditingToolsCropToolConstraintMode constraint_mode;
+ gboolean entry_insert_in_progress;
+ gfloat custom_aspect_ratio;
+ gint custom_width;
+ gint custom_height;
+ gint custom_init_width;
+ gint custom_init_height;
+ gfloat pre_aspect_ratio;
+};
+
+struct _EditingToolsCropToolConstraintDescription {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EditingToolsCropToolConstraintDescriptionPrivate * priv;
+ gchar* name;
+ gint basis_width;
+ gint basis_height;
+ gboolean is_pivotable;
+ gfloat aspect_ratio;
+};
+
+struct _EditingToolsCropToolConstraintDescriptionClass {
+ GTypeClass parent_class;
+ void (*finalize) (EditingToolsCropToolConstraintDescription *self);
+};
+
+struct _EditingToolsCropToolCropToolWindow {
+ EditingToolsEditingToolWindow parent_instance;
+ EditingToolsCropToolCropToolWindowPrivate * priv;
+ GtkButton* ok_button;
+ GtkButton* cancel_button;
+ GtkComboBox* constraint_combo;
+ GtkButton* pivot_reticle_button;
+ GtkEntry* custom_width_entry;
+ GtkEntry* custom_height_entry;
+ GtkLabel* custom_mulsign_label;
+ GtkEntry* most_recently_edited;
+ GtkBox* response_layout;
+ GtkBox* layout;
+ gint normal_width;
+ gint normal_height;
+};
+
+struct _EditingToolsCropToolCropToolWindowClass {
+ EditingToolsEditingToolWindowClass parent_class;
+};
+
+typedef enum {
+ BACKING_FETCH_MODE_SOURCE,
+ BACKING_FETCH_MODE_BASELINE,
+ BACKING_FETCH_MODE_MASTER,
+ BACKING_FETCH_MODE_UNMODIFIED
+} BackingFetchMode;
+
+typedef enum {
+ BOX_COMPLEMENTS_NONE,
+ BOX_COMPLEMENTS_VERTICAL,
+ BOX_COMPLEMENTS_HORIZONTAL,
+ BOX_COMPLEMENTS_BOTH
+} BoxComplements;
+
+struct _EditingToolsCropToolParamSpecConstraintDescription {
+ GParamSpec parent_instance;
+};
+
+struct _EditingToolsRedeyeInstance {
+ GdkPoint center;
+ gint radius;
+};
+
+struct _EditingToolsRedeyeTool {
+ EditingToolsEditingTool parent_instance;
+ EditingToolsRedeyeToolPrivate * priv;
+};
+
+struct _EditingToolsRedeyeToolClass {
+ EditingToolsEditingToolClass parent_class;
+};
+
+struct _EditingToolsRedeyeToolPrivate {
+ cairo_t* thin_white_ctx;
+ cairo_t* wider_gray_ctx;
+ EditingToolsRedeyeToolRedeyeToolWindow* redeye_tool_window;
+ EditingToolsRedeyeInstance user_interaction_instance;
+ gboolean is_reticle_move_in_progress;
+ GdkPoint reticle_move_mouse_start_point;
+ GdkPoint reticle_move_anchor;
+ GdkCursor* cached_arrow_cursor;
+ GdkCursor* cached_grab_cursor;
+ GdkRectangle old_scaled_pixbuf_position;
+ GdkPixbuf* current_pixbuf;
+};
+
+struct _EditingToolsRedeyeToolRedeyeToolWindow {
+ EditingToolsEditingToolWindow parent_instance;
+ EditingToolsRedeyeToolRedeyeToolWindowPrivate * priv;
+ GtkButton* apply_button;
+ GtkButton* close_button;
+ GtkScale* slider;
+};
+
+struct _EditingToolsRedeyeToolRedeyeToolWindowClass {
+ EditingToolsEditingToolWindowClass parent_class;
+};
+
+struct _EditingToolsRedeyeToolRedeyeToolWindowPrivate {
+ GtkLabel* slider_label;
+};
+
+struct _EditingToolsAdjustTool {
+ EditingToolsEditingTool parent_instance;
+ EditingToolsAdjustToolPrivate * priv;
+};
+
+struct _EditingToolsAdjustToolClass {
+ EditingToolsEditingToolClass parent_class;
+};
+
+struct _EditingToolsAdjustToolPrivate {
+ EditingToolsAdjustToolAdjustToolWindow* adjust_tool_window;
+ gboolean suppress_effect_redraw;
+ GdkPixbuf* draw_to_pixbuf;
+ GdkPixbuf* histogram_pixbuf;
+ GdkPixbuf* virgin_histogram_pixbuf;
+ PixelTransformer* transformer;
+ PixelTransformer* histogram_transformer;
+ PixelTransformationBundle* transformations;
+ gfloat* fp_pixel_cache;
+ gint fp_pixel_cache_length1;
+ gint _fp_pixel_cache_size_;
+ gboolean disable_histogram_refresh;
+ OneShotScheduler* temperature_scheduler;
+ OneShotScheduler* tint_scheduler;
+ OneShotScheduler* saturation_scheduler;
+ OneShotScheduler* exposure_scheduler;
+ OneShotScheduler* shadows_scheduler;
+ OneShotScheduler* highlights_scheduler;
+};
+
+typedef enum {
+ PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION,
+ PIXEL_TRANSFORMATION_TYPE_SHADOWS,
+ PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS,
+ PIXEL_TRANSFORMATION_TYPE_TEMPERATURE,
+ PIXEL_TRANSFORMATION_TYPE_TINT,
+ PIXEL_TRANSFORMATION_TYPE_SATURATION,
+ PIXEL_TRANSFORMATION_TYPE_EXPOSURE
+} PixelTransformationType;
+
+struct _EditingToolsAdjustToolAdjustToolWindow {
+ EditingToolsEditingToolWindow parent_instance;
+ EditingToolsAdjustToolAdjustToolWindowPrivate * priv;
+ GtkScale* exposure_slider;
+ GtkScale* saturation_slider;
+ GtkScale* tint_slider;
+ GtkScale* temperature_slider;
+ GtkScale* shadows_slider;
+ GtkScale* highlights_slider;
+ GtkButton* ok_button;
+ GtkButton* reset_button;
+ GtkButton* cancel_button;
+ RGBHistogramManipulator* histogram_manipulator;
+};
+
+struct _EditingToolsAdjustToolAdjustToolWindowClass {
+ EditingToolsEditingToolWindowClass parent_class;
+};
+
+typedef void (*OneShotCallback) (void* user_data);
+struct _CommandDescriptionIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (CommandDescription* self);
+ gchar* (*get_explanation) (CommandDescription* self);
+};
+
+struct _Command {
+ GObject parent_instance;
+ CommandPrivate * priv;
+};
+
+struct _CommandClass {
+ GObjectClass parent_class;
+ void (*prepare) (Command* self);
+ void (*execute) (Command* self);
+ void (*undo) (Command* self);
+ void (*redo) (Command* self);
+ gboolean (*compress) (Command* self, Command* command);
+ gchar* (*get_name) (Command* self);
+ gchar* (*get_explanation) (Command* self);
+};
+
+struct _EditingToolsAdjustToolAdjustToolCommand {
+ Command parent_instance;
+ EditingToolsAdjustToolAdjustToolCommandPrivate * priv;
+ EditingToolsAdjustTool* owner;
+};
+
+struct _EditingToolsAdjustToolAdjustToolCommandClass {
+ CommandClass parent_class;
+};
+
+struct _EditingToolsAdjustToolAdjustResetCommand {
+ EditingToolsAdjustToolAdjustToolCommand parent_instance;
+ EditingToolsAdjustToolAdjustResetCommandPrivate * priv;
+};
+
+struct _EditingToolsAdjustToolAdjustResetCommandClass {
+ EditingToolsAdjustToolAdjustToolCommandClass parent_class;
+};
+
+struct _EditingToolsAdjustToolAdjustResetCommandPrivate {
+ PixelTransformationBundle* original;
+ PixelTransformationBundle* reset;
+};
+
+struct _EditingToolsAdjustToolSliderAdjustmentCommand {
+ EditingToolsAdjustToolAdjustToolCommand parent_instance;
+ EditingToolsAdjustToolSliderAdjustmentCommandPrivate * priv;
+};
+
+struct _EditingToolsAdjustToolSliderAdjustmentCommandClass {
+ EditingToolsAdjustToolAdjustToolCommandClass parent_class;
+};
+
+struct _EditingToolsAdjustToolSliderAdjustmentCommandPrivate {
+ PixelTransformationType transformation_type;
+ PixelTransformation* new_transformation;
+ PixelTransformation* old_transformation;
+};
+
+struct _EditingToolsAdjustToolAdjustEnhanceCommand {
+ EditingToolsAdjustToolAdjustToolCommand parent_instance;
+ EditingToolsAdjustToolAdjustEnhanceCommandPrivate * priv;
+};
+
+struct _EditingToolsAdjustToolAdjustEnhanceCommandClass {
+ EditingToolsAdjustToolAdjustToolCommandClass parent_class;
+};
+
+struct _EditingToolsAdjustToolAdjustEnhanceCommandPrivate {
+ Photo* photo;
+ PixelTransformationBundle* original;
+ PixelTransformationBundle* enhanced;
+};
+
+
+static gpointer editing_tools_editing_tool_window_parent_class = NULL;
+static gpointer editing_tools_photo_canvas_parent_class = NULL;
+static gpointer editing_tools_editing_tool_parent_class = NULL;
+static gpointer editing_tools_crop_tool_parent_class = NULL;
+static gpointer editing_tools_crop_tool_constraint_description_parent_class = NULL;
+static gpointer editing_tools_crop_tool_crop_tool_window_parent_class = NULL;
+static gpointer editing_tools_redeye_tool_parent_class = NULL;
+static gpointer editing_tools_redeye_tool_redeye_tool_window_parent_class = NULL;
+static gpointer editing_tools_adjust_tool_parent_class = NULL;
+static gpointer editing_tools_adjust_tool_adjust_tool_window_parent_class = NULL;
+static gpointer editing_tools_adjust_tool_adjust_tool_command_parent_class = NULL;
+static gpointer editing_tools_adjust_tool_adjust_reset_command_parent_class = NULL;
+static gpointer editing_tools_adjust_tool_slider_adjustment_command_parent_class = NULL;
+static gpointer editing_tools_adjust_tool_adjust_enhance_command_parent_class = NULL;
+
+void editing_tools_preconfigure (void);
+void editing_tools_init (GError** error);
+void editing_tools_terminate (void);
+GType editing_tools_editing_tool_window_get_type (void) G_GNUC_CONST;
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowPrivate))
+enum {
+ EDITING_TOOLS_EDITING_TOOL_WINDOW_DUMMY_PROPERTY
+};
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_FRAME_BORDER 6
+EditingToolsEditingToolWindow* editing_tools_editing_tool_window_construct (GType object_type, GtkWindow* container);
+void suppress_warnings (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message);
+static void _suppress_warnings_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self);
+static void editing_tools_editing_tool_window_real_add (GtkContainer* base, GtkWidget* widget);
+gboolean editing_tools_editing_tool_window_has_user_moved (EditingToolsEditingToolWindow* self);
+static gboolean editing_tools_editing_tool_window_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+static gboolean editing_tools_editing_tool_window_real_button_press_event (GtkWidget* base, GdkEventButton* event);
+static void editing_tools_editing_tool_window_real_realize (GtkWidget* base);
+#define RESOURCES_TRANSIENT_WINDOW_OPACITY 0.90
+static void editing_tools_editing_tool_window_finalize (GObject* obj);
+gpointer editing_tools_photo_canvas_ref (gpointer instance);
+void editing_tools_photo_canvas_unref (gpointer instance);
+GParamSpec* editing_tools_param_spec_photo_canvas (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void editing_tools_value_set_photo_canvas (GValue* value, gpointer v_object);
+void editing_tools_value_take_photo_canvas (GValue* value, gpointer v_object);
+gpointer editing_tools_value_get_photo_canvas (const GValue* value);
+GType editing_tools_photo_canvas_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+#define EDITING_TOOLS_PHOTO_CANVAS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasPrivate))
+enum {
+ EDITING_TOOLS_PHOTO_CANVAS_DUMMY_PROPERTY
+};
+EditingToolsPhotoCanvas* editing_tools_photo_canvas_construct (GType object_type, GtkWindow* container, GdkWindow* drawing_window, Photo* photo, cairo_t* default_ctx, Dimensions* surface_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position);
+static cairo_surface_t* editing_tools_photo_canvas_pixbuf_to_surface (EditingToolsPhotoCanvas* self, cairo_t* default_ctx, GdkPixbuf* pixbuf, GdkRectangle* pos);
+void editing_tools_photo_canvas_unscaled_to_raw_rect (EditingToolsPhotoCanvas* self, GdkRectangle* rectangle, GdkRectangle* result);
+void photo_unscaled_to_raw_rect (Photo* self, GdkRectangle* unscaled_rect, GdkRectangle* result);
+void editing_tools_photo_canvas_active_to_unscaled_point (EditingToolsPhotoCanvas* self, GdkPoint* active_point, GdkPoint* result);
+void editing_tools_photo_canvas_get_scaled_pixbuf_position (EditingToolsPhotoCanvas* self, GdkRectangle* result);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+void editing_tools_photo_canvas_active_to_unscaled_rect (EditingToolsPhotoCanvas* self, GdkRectangle* active_rect, GdkRectangle* result);
+void editing_tools_photo_canvas_user_to_active_point (EditingToolsPhotoCanvas* self, GdkPoint* user_point, GdkPoint* result);
+void editing_tools_photo_canvas_user_to_active_rect (EditingToolsPhotoCanvas* self, GdkRectangle* user_rect, GdkRectangle* result);
+Photo* editing_tools_photo_canvas_get_photo (EditingToolsPhotoCanvas* self);
+GtkWindow* editing_tools_photo_canvas_get_container (EditingToolsPhotoCanvas* self);
+GdkWindow* editing_tools_photo_canvas_get_drawing_window (EditingToolsPhotoCanvas* self);
+cairo_t* editing_tools_photo_canvas_get_default_ctx (EditingToolsPhotoCanvas* self);
+void editing_tools_photo_canvas_get_surface_dim (EditingToolsPhotoCanvas* self, Dimensions* result);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void editing_tools_photo_canvas_get_scaling (EditingToolsPhotoCanvas* self, Scaling* result);
+void scaling_for_viewport (Dimensions* viewport, gboolean scale_up, Scaling* result);
+void editing_tools_photo_canvas_set_surface (EditingToolsPhotoCanvas* self, cairo_t* default_ctx, Dimensions* surface_dim);
+cairo_surface_t* editing_tools_photo_canvas_get_scaled_surface (EditingToolsPhotoCanvas* self);
+GdkPixbuf* editing_tools_photo_canvas_get_scaled_pixbuf (EditingToolsPhotoCanvas* self);
+void editing_tools_photo_canvas_resized_pixbuf (EditingToolsPhotoCanvas* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position);
+void editing_tools_photo_canvas_repaint (EditingToolsPhotoCanvas* self);
+static void editing_tools_photo_canvas_real_repaint (EditingToolsPhotoCanvas* self);
+void editing_tools_photo_canvas_paint_pixbuf (EditingToolsPhotoCanvas* self, GdkPixbuf* pixbuf);
+void set_source_color_from_string (cairo_t* ctx, const gchar* spec);
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+void editing_tools_photo_canvas_paint_pixbuf_area (EditingToolsPhotoCanvas* self, GdkPixbuf* pixbuf, Box* source_area);
+gint box_get_width (Box *self);
+gint box_get_height (Box *self);
+void editing_tools_photo_canvas_paint_surface (EditingToolsPhotoCanvas* self, cairo_surface_t* surface, gboolean over);
+void editing_tools_photo_canvas_paint_surface_area (EditingToolsPhotoCanvas* self, cairo_surface_t* surface, Box* source_area, gboolean over);
+void editing_tools_photo_canvas_draw_box (EditingToolsPhotoCanvas* self, cairo_t* ctx, Box* box);
+void box_get_rectangle (Box *self, GdkRectangle* result);
+void editing_tools_photo_canvas_draw_text (EditingToolsPhotoCanvas* self, cairo_t* ctx, const gchar* text, gint x, gint y, gboolean use_scaled_pos);
+#define RESOURCES_ONIMAGE_FONT_BACKGROUND "rgba(255,255,255,0.5)"
+#define RESOURCES_ONIMAGE_FONT_COLOR "#000000"
+void editing_tools_photo_canvas_draw_horizontal_line (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint x, gint y, gint width, gboolean use_scaled_pos);
+void editing_tools_photo_canvas_draw_vertical_line (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint x, gint y, gint height, gboolean use_scaled_pos);
+void editing_tools_photo_canvas_erase_horizontal_line (EditingToolsPhotoCanvas* self, gint x, gint y, gint width);
+void editing_tools_photo_canvas_draw_circle (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint active_center_x, gint active_center_y, gint radius);
+void editing_tools_photo_canvas_erase_vertical_line (EditingToolsPhotoCanvas* self, gint x, gint y, gint height);
+void editing_tools_photo_canvas_erase_box (EditingToolsPhotoCanvas* self, Box* box);
+void editing_tools_photo_canvas_invalidate_area (EditingToolsPhotoCanvas* self, Box* area);
+static void g_cclosure_user_marshal_VOID__POINTER_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__BOXED_OBJECT_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void editing_tools_photo_canvas_finalize (EditingToolsPhotoCanvas* obj);
+gpointer editing_tools_editing_tool_ref (gpointer instance);
+void editing_tools_editing_tool_unref (gpointer instance);
+GParamSpec* editing_tools_param_spec_editing_tool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void editing_tools_value_set_editing_tool (GValue* value, gpointer v_object);
+void editing_tools_value_take_editing_tool (GValue* value, gpointer v_object);
+gpointer editing_tools_value_get_editing_tool (const GValue* value);
+GType editing_tools_editing_tool_get_type (void) G_GNUC_CONST;
+#define EDITING_TOOLS_EDITING_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolPrivate))
+enum {
+ EDITING_TOOLS_EDITING_TOOL_DUMMY_PROPERTY
+};
+EditingToolsEditingTool* editing_tools_editing_tool_construct (GType object_type, const gchar* name);
+void editing_tools_editing_tool_activate (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_editing_tool_real_activate (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
+EditingToolsEditingToolWindow* editing_tools_editing_tool_get_tool_window (EditingToolsEditingTool* self);
+gboolean editing_tools_editing_tool_on_keypress (EditingToolsEditingTool* self, GdkEventKey* event);
+static gboolean _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
+void editing_tools_editing_tool_deactivate (EditingToolsEditingTool* self);
+static void editing_tools_editing_tool_real_deactivate (EditingToolsEditingTool* self);
+gboolean editing_tools_editing_tool_is_activated (EditingToolsEditingTool* self);
+static EditingToolsEditingToolWindow* editing_tools_editing_tool_real_get_tool_window (EditingToolsEditingTool* self);
+GdkPixbuf* editing_tools_editing_tool_get_display_pixbuf (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+static GdkPixbuf* editing_tools_editing_tool_real_get_display_pixbuf (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void editing_tools_editing_tool_on_left_click (EditingToolsEditingTool* self, gint x, gint y);
+static void editing_tools_editing_tool_real_on_left_click (EditingToolsEditingTool* self, gint x, gint y);
+void editing_tools_editing_tool_on_left_released (EditingToolsEditingTool* self, gint x, gint y);
+static void editing_tools_editing_tool_real_on_left_released (EditingToolsEditingTool* self, gint x, gint y);
+void editing_tools_editing_tool_on_motion (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask);
+static void editing_tools_editing_tool_real_on_motion (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask);
+gboolean editing_tools_editing_tool_on_leave_notify_event (EditingToolsEditingTool* self);
+static gboolean editing_tools_editing_tool_real_on_leave_notify_event (EditingToolsEditingTool* self);
+static gboolean editing_tools_editing_tool_real_on_keypress (EditingToolsEditingTool* self, GdkEventKey* event);
+void editing_tools_editing_tool_notify_cancel (EditingToolsEditingTool* self);
+void editing_tools_editing_tool_paint (EditingToolsEditingTool* self, cairo_t* ctx);
+static void editing_tools_editing_tool_real_paint (EditingToolsEditingTool* self, cairo_t* ctx);
+GType command_get_type (void) G_GNUC_CONST;
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOXED_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void editing_tools_editing_tool_finalize (EditingToolsEditingTool* obj);
+GType editing_tools_crop_tool_get_type (void) G_GNUC_CONST;
+static GType editing_tools_crop_tool_crop_tool_window_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType box_location_get_type (void) G_GNUC_CONST;
+static gpointer editing_tools_crop_tool_constraint_description_ref (gpointer instance);
+static void editing_tools_crop_tool_constraint_description_unref (gpointer instance);
+static GParamSpec* editing_tools_crop_tool_param_spec_constraint_description (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void editing_tools_crop_tool_value_set_constraint_description (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void editing_tools_crop_tool_value_take_constraint_description (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer editing_tools_crop_tool_value_get_constraint_description (const GValue* value) G_GNUC_UNUSED;
+static GType editing_tools_crop_tool_constraint_description_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GType editing_tools_crop_tool_reticle_orientation_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GType editing_tools_crop_tool_constraint_mode_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define EDITING_TOOLS_CROP_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropToolPrivate))
+enum {
+ EDITING_TOOLS_CROP_TOOL_DUMMY_PROPERTY
+};
+static EditingToolsCropToolReticleOrientation editing_tools_crop_tool_reticle_orientation_toggle (EditingToolsCropToolReticleOrientation self);
+static EditingToolsCropToolConstraintDescription** editing_tools_crop_tool_create_constraints (int* result_length1);
+static GtkListStore* editing_tools_crop_tool_create_constraint_list (EditingToolsCropToolConstraintDescription** constraint_data, int constraint_data_length1);
+#define EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO (-1.0f)
+#define EDITING_TOOLS_CROP_TOOL_CROP_INIT_X_PCT 0.15
+#define EDITING_TOOLS_CROP_TOOL_CROP_INIT_Y_PCT 0.15
+#define EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE 8
+#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_SATURATION 0.00f
+#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_RED_SHIFT -32
+#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_GREEN_SHIFT -32
+#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_BLUE_SHIFT -32
+#define EDITING_TOOLS_CROP_TOOL_CROP_EXTERIOR_ALPHA_SHIFT 0
+#define EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO (-2.0f)
+#define EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO (-3.0f)
+#define EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO (-4.0f)
+#define EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS (-5.0f)
+#define EDITING_TOOLS_CROP_TOOL_SEPARATOR (-6.0f)
+#define EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO (1.0f / 64.0f)
+#define EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO 64.0f
+static EditingToolsCropTool* editing_tools_crop_tool_new (void);
+static EditingToolsCropTool* editing_tools_crop_tool_construct (GType object_type);
+EditingToolsCropTool* editing_tools_crop_tool_factory (void);
+gboolean editing_tools_crop_tool_is_available (Photo* photo, Scaling* scaling);
+void scaling_get_scaled_dimensions (Scaling *self, Dimensions* original, Dimensions* result);
+void photo_get_original_dimensions (Photo* self, Dimensions* result);
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_constraint_description_new (const gchar* new_name, gint new_basis_width, gint new_basis_height, gboolean new_pivotable, gfloat new_aspect_ratio);
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_constraint_description_construct (GType object_type, const gchar* new_name, gint new_basis_width, gint new_basis_height, gboolean new_pivotable, gfloat new_aspect_ratio);
+static void _vala_array_add4 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add5 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add6 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add7 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add8 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add9 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add10 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add11 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add12 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add13 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add14 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add15 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add16 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add17 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add18 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add19 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add20 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add21 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add22 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add23 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add24 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add25 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add26 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add27 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add28 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add29 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add30 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add31 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void _vala_array_add32 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value);
+static void editing_tools_crop_tool_update_pivot_button_state (EditingToolsCropTool* self);
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_get_selected_constraint (EditingToolsCropTool* self);
+static gboolean editing_tools_crop_tool_on_width_entry_focus_out (EditingToolsCropTool* self, GdkEventFocus* event);
+static gboolean editing_tools_crop_tool_on_custom_entry_focus_out (EditingToolsCropTool* self, GdkEventFocus* event);
+static gboolean editing_tools_crop_tool_on_height_entry_focus_out (EditingToolsCropTool* self, GdkEventFocus* event);
+static void editing_tools_crop_tool_constrain_crop (EditingToolsCropTool* self, Box* crop, Box* result);
+static void editing_tools_crop_tool_crop_resized (EditingToolsCropTool* self, Box* new_crop);
+static void editing_tools_crop_tool_on_width_insert_text (EditingToolsCropTool* self, const gchar* text, gint length, gint* position);
+static void editing_tools_crop_tool_on_entry_insert_text (EditingToolsCropTool* self, GtkEntry* sender, const gchar* text, gint length, gint* position);
+static void editing_tools_crop_tool_on_height_insert_text (EditingToolsCropTool* self, const gchar* text, gint length, gint* position);
+static gfloat editing_tools_crop_tool_get_constraint_aspect_ratio (EditingToolsCropTool* self);
+static gfloat editing_tools_crop_tool_get_constraint_aspect_ratio_for_constraint (EditingToolsCropTool* self, EditingToolsCropToolConstraintDescription* constraint, Photo* photo);
+static void editing_tools_crop_tool_constraint_changed (EditingToolsCropTool* self);
+static void editing_tools_crop_tool_set_custom_constraint_mode (EditingToolsCropTool* self);
+static void editing_tools_crop_tool_set_normal_constraint_mode (EditingToolsCropTool* self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gint configuration_facade_get_last_crop_width (ConfigurationFacade* self);
+gint configuration_facade_get_last_crop_height (ConfigurationFacade* self);
+void box_adjust_height (Box *self, gint height);
+void box_adjust_width (Box *self, gint width);
+static void editing_tools_crop_tool_get_photo_dimensions (EditingToolsCropTool* self, Dimensions* result);
+gboolean photo_get_straighten (Photo* self, gdouble* theta);
+void clamp_inside_rotated_image (Box* src, gint img_w, gint img_h, gdouble angle_deg, gboolean preserve_geom, Box* result);
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_get_last_constraint (EditingToolsCropTool* self, gint* index);
+gint configuration_facade_get_last_crop_menu_choice (ConfigurationFacade* self);
+static void editing_tools_crop_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_crop_tool_bind_canvas_handlers (EditingToolsCropTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_crop_tool_prepare_ctx (EditingToolsCropTool* self, cairo_t* ctx, Dimensions* dim);
+static EditingToolsCropToolCropToolWindow* editing_tools_crop_tool_crop_tool_window_new (GtkWindow* container);
+static EditingToolsCropToolCropToolWindow* editing_tools_crop_tool_crop_tool_window_construct (GType object_type, GtkWindow* container);
+gboolean photo_has_crop (Photo* self);
+static gboolean editing_tools_crop_tool_constraint_description_is_separator (EditingToolsCropToolConstraintDescription* self);
+static void editing_tools_crop_tool_bind_window_handlers (EditingToolsCropTool* self);
+gboolean photo_get_crop (Photo* self, Box* crop, PhotoException exceptions);
+void box_init (Box *self, gint left, gint top, gint right, gint bottom);
+void box_get_scaled_similar (Box *self, Dimensions* original, Dimensions* scaled, Box* result);
+void dimensions_for_rectangle (GdkRectangle* rect, Dimensions* result);
+static void _editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender, cairo_t* ctx, Dimensions* dim, gpointer self);
+static void editing_tools_crop_tool_on_resized_pixbuf (EditingToolsCropTool* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position);
+static void _editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self);
+static void editing_tools_crop_tool_unbind_canvas_handlers (EditingToolsCropTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_crop_tool_on_crop_ok (EditingToolsCropTool* self);
+static void _editing_tools_crop_tool_on_crop_ok_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _editing_tools_editing_tool_notify_cancel_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void editing_tools_crop_tool_on_pivot_button_clicked (EditingToolsCropTool* self);
+static void _editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static gboolean _editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static gboolean _editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+static void _editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self);
+static void _editing_tools_crop_tool_on_height_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self);
+static void editing_tools_crop_tool_unbind_window_handlers (EditingToolsCropTool* self);
+static gboolean editing_tools_crop_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event);
+static void editing_tools_crop_tool_real_deactivate (EditingToolsEditingTool* base);
+static EditingToolsEditingToolWindow* editing_tools_crop_tool_real_get_tool_window (EditingToolsEditingTool* base);
+static GdkPixbuf* editing_tools_crop_tool_real_get_display_pixbuf (EditingToolsEditingTool* base, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+GType backing_fetch_mode_get_type (void) G_GNUC_CONST;
+GdkPixbuf* photo_get_pixbuf_with_options (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+static void editing_tools_crop_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y);
+void box_get_offset (Box *self, gint xofs, gint yofs, Box* result);
+BoxLocation box_approx_location (Box *self, gint x, gint y);
+static void editing_tools_crop_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y);
+static void editing_tools_crop_tool_update_cursor (EditingToolsCropTool* self, gint x, gint y);
+static void editing_tools_crop_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask);
+static gboolean editing_tools_crop_tool_on_canvas_manipulation (EditingToolsCropTool* self, gint x, gint y);
+static void editing_tools_crop_tool_real_paint (EditingToolsEditingTool* base, cairo_t* default_ctx);
+static void editing_tools_crop_tool_paint_crop_tool (EditingToolsCropTool* self, Box* crop);
+void configuration_facade_set_last_crop_menu_choice (ConfigurationFacade* self, gint choice);
+void configuration_facade_set_last_crop_width (ConfigurationFacade* self, gint choice);
+void configuration_facade_set_last_crop_height (ConfigurationFacade* self, gint choice);
+#define RESOURCES_CROP_LABEL _ ("Crop")
+#define RESOURCES_CROP_TOOLTIP _ ("Crop the photo's size")
+CropCommand* crop_command_new (Photo* photo, Box* crop, const gchar* name, const gchar* explanation);
+CropCommand* crop_command_construct (GType object_type, Photo* photo, Box* crop, const gchar* name, const gchar* explanation);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+GType generic_photo_transformation_command_get_type (void) G_GNUC_CONST;
+GType crop_command_get_type (void) G_GNUC_CONST;
+void box_get_dimensions (Box *self, Dimensions* result);
+static gint editing_tools_crop_tool_eval_radial_line (EditingToolsCropTool* self, gdouble center_x, gdouble center_y, gdouble bounds_x, gdouble bounds_y, gdouble user_x);
+static gboolean _box_equal (const Box* s1, const Box* s2);
+static void editing_tools_crop_tool_crop_moved (EditingToolsCropTool* self, Box* new_crop);
+gboolean box_equals (Box *self, Box* box);
+GType box_complements_get_type (void) G_GNUC_CONST;
+BoxComplements box_resized_complements (Box *self, Box* resized, Box* horizontal, gboolean* horizontal_enlarged, Box* vertical, gboolean* vertical_enlarged);
+static void editing_tools_crop_tool_set_area_alpha (EditingToolsCropTool* self, Box* area, gdouble alpha);
+void box_get_reduced (Box *self, gint amount, Box* result);
+enum {
+ EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION_DUMMY_PROPERTY
+};
+static void editing_tools_crop_tool_constraint_description_finalize (EditingToolsCropToolConstraintDescription* obj);
+enum {
+ EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_DUMMY_PROPERTY
+};
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+#define EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CONTROL_SPACING 8
+static gboolean editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func (GtkTreeModel* model, GtkTreeIter* iter);
+static gboolean _editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func_gtk_tree_view_row_separator_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
+#define RESOURCES_CROP_PIVOT_RETICLE "shotwell-crop-pivot-reticle"
+static void editing_tools_crop_tool_crop_tool_window_finalize (GObject* obj);
+static void editing_tools_crop_tool_finalize (EditingToolsEditingTool* obj);
+GType editing_tools_redeye_instance_get_type (void) G_GNUC_CONST;
+EditingToolsRedeyeInstance* editing_tools_redeye_instance_dup (const EditingToolsRedeyeInstance* self);
+void editing_tools_redeye_instance_free (EditingToolsRedeyeInstance* self);
+#define EDITING_TOOLS_REDEYE_INSTANCE_MIN_RADIUS 4
+#define EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS 32
+#define EDITING_TOOLS_REDEYE_INSTANCE_DEFAULT_RADIUS 10
+static void editing_tools_redeye_instance_init (EditingToolsRedeyeInstance *self);
+void editing_tools_redeye_instance_to_bounds_rect (EditingToolsRedeyeInstance* inst, GdkRectangle* result);
+void editing_tools_redeye_instance_from_bounds_rect (GdkRectangle* rect, EditingToolsRedeyeInstance* result);
+GType editing_tools_redeye_tool_get_type (void) G_GNUC_CONST;
+static GType editing_tools_redeye_tool_redeye_tool_window_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define EDITING_TOOLS_REDEYE_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeToolPrivate))
+enum {
+ EDITING_TOOLS_REDEYE_TOOL_DUMMY_PROPERTY
+};
+static EditingToolsRedeyeTool* editing_tools_redeye_tool_new (void);
+static EditingToolsRedeyeTool* editing_tools_redeye_tool_construct (GType object_type);
+EditingToolsRedeyeTool* editing_tools_redeye_tool_factory (void);
+gboolean editing_tools_redeye_tool_is_available (Photo* photo, Scaling* scaling);
+static void editing_tools_redeye_tool_new_interaction_instance (EditingToolsRedeyeTool* self, EditingToolsPhotoCanvas* canvas, EditingToolsRedeyeInstance* result);
+static void editing_tools_redeye_tool_prepare_ctx (EditingToolsRedeyeTool* self, cairo_t* ctx, Dimensions* dim);
+static void editing_tools_redeye_tool_draw_redeye_instance (EditingToolsRedeyeTool* self, EditingToolsRedeyeInstance* inst);
+static gboolean editing_tools_redeye_tool_on_size_slider_adjust (EditingToolsRedeyeTool* self, GtkScrollType type);
+static void editing_tools_redeye_tool_on_apply (EditingToolsRedeyeTool* self);
+void derotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, GdkPoint* result);
+GType redeye_command_get_type (void) G_GNUC_CONST;
+#define RESOURCES_RED_EYE_LABEL _ ("Red-eye")
+#define RESOURCES_RED_EYE_TOOLTIP _ ("Reduce or eliminate any red-eye effects in the photo")
+RedeyeCommand* redeye_command_new (Photo* photo, EditingToolsRedeyeInstance* redeye_instance, const gchar* name, const gchar* explanation);
+RedeyeCommand* redeye_command_construct (GType object_type, Photo* photo, EditingToolsRedeyeInstance* redeye_instance, const gchar* name, const gchar* explanation);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+void command_manager_execute (CommandManager* self, Command* command);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void editing_tools_redeye_tool_on_photos_altered (EditingToolsRedeyeTool* self, GeeMap* map);
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+static void editing_tools_redeye_tool_on_close (EditingToolsRedeyeTool* self);
+static void editing_tools_redeye_tool_on_canvas_resize (EditingToolsRedeyeTool* self);
+static void editing_tools_redeye_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_redeye_tool_bind_canvas_handlers (EditingToolsRedeyeTool* self, EditingToolsPhotoCanvas* canvas);
+static EditingToolsRedeyeToolRedeyeToolWindow* editing_tools_redeye_tool_redeye_tool_window_new (GtkWindow* container);
+static EditingToolsRedeyeToolRedeyeToolWindow* editing_tools_redeye_tool_redeye_tool_window_construct (GType object_type, GtkWindow* container);
+static void editing_tools_redeye_tool_bind_window_handlers (EditingToolsRedeyeTool* self);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+DataCollection* data_object_get_membership (DataObject* self);
+static void _editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void editing_tools_redeye_tool_real_deactivate (EditingToolsEditingTool* base);
+static void editing_tools_redeye_tool_unbind_canvas_handlers (EditingToolsRedeyeTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_redeye_tool_unbind_window_handlers (EditingToolsRedeyeTool* self);
+static void _editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender, cairo_t* ctx, Dimensions* dim, gpointer self);
+static void _editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self);
+static void _editing_tools_redeye_tool_on_apply_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _editing_tools_redeye_tool_on_close_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static gboolean _editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value (GtkRange* _sender, GtkScrollType scroll, gdouble new_value, gpointer self);
+static EditingToolsEditingToolWindow* editing_tools_redeye_tool_real_get_tool_window (EditingToolsEditingTool* base);
+static void editing_tools_redeye_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx);
+static void editing_tools_redeye_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y);
+gboolean coord_in_rectangle (gint x, gint y, GdkRectangle* rect);
+static void editing_tools_redeye_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y);
+static void editing_tools_redeye_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask);
+static gboolean editing_tools_redeye_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event);
+#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindowPrivate))
+enum {
+ EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_DUMMY_PROPERTY
+};
+#define RESOURCES_APPLY_LABEL _ ("_Apply")
+#define EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_CONTROL_SPACING 8
+static void editing_tools_redeye_tool_redeye_tool_window_finalize (GObject* obj);
+static void editing_tools_redeye_tool_finalize (EditingToolsEditingTool* obj);
+GType editing_tools_adjust_tool_get_type (void) G_GNUC_CONST;
+static GType editing_tools_adjust_tool_adjust_tool_window_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gpointer pixel_transformer_ref (gpointer instance);
+void pixel_transformer_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformer (GValue* value, gpointer v_object);
+void value_take_pixel_transformer (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformer (const GValue* value);
+GType pixel_transformer_get_type (void) G_GNUC_CONST;
+gpointer pixel_transformation_bundle_ref (gpointer instance);
+void pixel_transformation_bundle_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation_bundle (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation_bundle (GValue* value, gpointer v_object);
+void value_take_pixel_transformation_bundle (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation_bundle (const GValue* value);
+GType pixel_transformation_bundle_get_type (void) G_GNUC_CONST;
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+#define EDITING_TOOLS_ADJUST_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustToolPrivate))
+enum {
+ EDITING_TOOLS_ADJUST_TOOL_DUMMY_PROPERTY
+};
+#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH 160
+#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC ((guint) 100)
+static EditingToolsAdjustTool* editing_tools_adjust_tool_new (void);
+static EditingToolsAdjustTool* editing_tools_adjust_tool_construct (GType object_type);
+EditingToolsAdjustTool* editing_tools_adjust_tool_factory (void);
+gboolean editing_tools_adjust_tool_is_available (Photo* photo, Scaling* scaling);
+static void editing_tools_adjust_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas);
+static EditingToolsAdjustToolAdjustToolWindow* editing_tools_adjust_tool_adjust_tool_window_new (GtkWindow* container);
+static EditingToolsAdjustToolAdjustToolWindow* editing_tools_adjust_tool_adjust_tool_window_construct (GType object_type, GtkWindow* container);
+PixelTransformationBundle* photo_get_color_adjustments (Photo* self);
+PixelTransformer* pixel_transformation_bundle_generate_transformer (PixelTransformationBundle* self);
+PixelTransformer* pixel_transformer_new (void);
+PixelTransformer* pixel_transformer_construct (GType object_type);
+gpointer pixel_transformation_ref (gpointer instance);
+void pixel_transformation_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation (GValue* value, gpointer v_object);
+void value_take_pixel_transformation (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation (const GValue* value);
+GType pixel_transformation_get_type (void) G_GNUC_CONST;
+GType hsv_transformation_get_type (void) G_GNUC_CONST;
+GType expansion_transformation_get_type (void) G_GNUC_CONST;
+GType pixel_transformation_type_get_type (void) G_GNUC_CONST;
+PixelTransformation* pixel_transformation_bundle_get_transformation (PixelTransformationBundle* self, PixelTransformationType type);
+GType rgb_histogram_manipulator_get_type (void) G_GNUC_CONST;
+void rgb_histogram_manipulator_set_left_nub_position (RGBHistogramManipulator* self, gint user_nub_pos);
+gint expansion_transformation_get_black_point (ExpansionTransformation* self);
+void rgb_histogram_manipulator_set_right_nub_position (RGBHistogramManipulator* self, gint user_nub_pos);
+gint expansion_transformation_get_white_point (ExpansionTransformation* self);
+GType shadow_detail_transformation_get_type (void) G_GNUC_CONST;
+void pixel_transformer_attach_transformation (PixelTransformer* self, PixelTransformation* trans);
+gfloat shadow_detail_transformation_get_parameter (ShadowDetailTransformation* self);
+GType highlight_detail_transformation_get_type (void) G_GNUC_CONST;
+gfloat highlight_detail_transformation_get_parameter (HighlightDetailTransformation* self);
+GType rgb_transformation_get_type (void) G_GNUC_CONST;
+GType temperature_transformation_get_type (void) G_GNUC_CONST;
+gfloat temperature_transformation_get_parameter (TemperatureTransformation* self);
+GType tint_transformation_get_type (void) G_GNUC_CONST;
+gfloat tint_transformation_get_parameter (TintTransformation* self);
+GType saturation_transformation_get_type (void) G_GNUC_CONST;
+gfloat saturation_transformation_get_parameter (SaturationTransformation* self);
+GType exposure_transformation_get_type (void) G_GNUC_CONST;
+gfloat exposure_transformation_get_parameter (ExposureTransformation* self);
+static void editing_tools_adjust_tool_bind_canvas_handlers (EditingToolsAdjustTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_adjust_tool_bind_window_handlers (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_init_fp_pixel_cache (EditingToolsAdjustTool* self, GdkPixbuf* source);
+static void editing_tools_adjust_tool_on_photos_altered (EditingToolsAdjustTool* self, GeeMap* map);
+static void _editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static EditingToolsEditingToolWindow* editing_tools_adjust_tool_real_get_tool_window (EditingToolsEditingTool* base);
+static void editing_tools_adjust_tool_real_deactivate (EditingToolsEditingTool* base);
+static void editing_tools_adjust_tool_unbind_canvas_handlers (EditingToolsAdjustTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_adjust_tool_unbind_window_handlers (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx);
+void pixel_transformer_transform_from_fp (PixelTransformer* self, gfloat** fp_pixel_cache, int* fp_pixel_cache_length1, GdkPixbuf* dest);
+void pixel_transformer_transform_to_other_pixbuf (PixelTransformer* self, GdkPixbuf* source, GdkPixbuf* dest, GCancellable* cancellable);
+void rgb_histogram_manipulator_update_histogram (RGBHistogramManipulator* self, GdkPixbuf* source_pixbuf);
+static GdkPixbuf* editing_tools_adjust_tool_real_get_display_pixbuf (EditingToolsEditingTool* base, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+gboolean photo_has_color_adjustments (Photo* self);
+static void editing_tools_adjust_tool_on_reset (EditingToolsAdjustTool* self);
+static GType editing_tools_adjust_tool_adjust_tool_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GType editing_tools_adjust_tool_adjust_reset_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static EditingToolsAdjustToolAdjustResetCommand* editing_tools_adjust_tool_adjust_reset_command_new (EditingToolsAdjustTool* owner, PixelTransformationBundle* current);
+static EditingToolsAdjustToolAdjustResetCommand* editing_tools_adjust_tool_adjust_reset_command_construct (GType object_type, EditingToolsAdjustTool* owner, PixelTransformationBundle* current);
+static void editing_tools_adjust_tool_on_ok (EditingToolsAdjustTool* self);
+#define RESOURCES_ADJUST_LABEL _ ("Adjust")
+#define RESOURCES_ADJUST_TOOLTIP _ ("Adjust the photo's color and tone")
+AdjustColorsSingleCommand* adjust_colors_single_command_new (Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+AdjustColorsSingleCommand* adjust_colors_single_command_construct (GType object_type, Photo* photo, PixelTransformationBundle* transformations, const gchar* name, const gchar* explanation);
+GType adjust_colors_single_command_get_type (void) G_GNUC_CONST;
+static void editing_tools_adjust_tool_update_transformations (EditingToolsAdjustTool* self, PixelTransformationBundle* new_transformations);
+GeeIterable* pixel_transformation_bundle_get_transformations (PixelTransformationBundle* self);
+static void editing_tools_adjust_tool_update_transformation (EditingToolsAdjustTool* self, PixelTransformation* new_transformation);
+PixelTransformationType pixel_transformation_get_transformation_type (PixelTransformation* self);
+void pixel_transformer_replace_transformation (PixelTransformer* self, PixelTransformation* old_trans, PixelTransformation* new_trans);
+void pixel_transformation_bundle_set (PixelTransformationBundle* self, PixelTransformation* transformation);
+static void editing_tools_adjust_tool_slider_updated (EditingToolsAdjustTool* self, PixelTransformation* new_transformation, const gchar* name);
+static GType editing_tools_adjust_tool_slider_adjustment_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static EditingToolsAdjustToolSliderAdjustmentCommand* editing_tools_adjust_tool_slider_adjustment_command_new (EditingToolsAdjustTool* owner, PixelTransformation* old_transformation, PixelTransformation* new_transformation, const gchar* name);
+static EditingToolsAdjustToolSliderAdjustmentCommand* editing_tools_adjust_tool_slider_adjustment_command_construct (GType object_type, EditingToolsAdjustTool* owner, PixelTransformation* old_transformation, PixelTransformation* new_transformation, const gchar* name);
+static void editing_tools_adjust_tool_on_temperature_adjustment (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_on_delayed_temperature_adjustment (EditingToolsAdjustTool* self);
+static void _editing_tools_adjust_tool_on_delayed_temperature_adjustment_one_shot_callback (gpointer self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+void one_shot_scheduler_after_timeout (OneShotScheduler* self, guint msec, gboolean reschedule);
+TemperatureTransformation* temperature_transformation_new (gfloat client_parameter);
+TemperatureTransformation* temperature_transformation_construct (GType object_type, gfloat client_parameter);
+static void editing_tools_adjust_tool_on_tint_adjustment (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_on_delayed_tint_adjustment (EditingToolsAdjustTool* self);
+static void _editing_tools_adjust_tool_on_delayed_tint_adjustment_one_shot_callback (gpointer self);
+TintTransformation* tint_transformation_new (gfloat client_param);
+TintTransformation* tint_transformation_construct (GType object_type, gfloat client_param);
+static void editing_tools_adjust_tool_on_saturation_adjustment (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_on_delayed_saturation_adjustment (EditingToolsAdjustTool* self);
+static void _editing_tools_adjust_tool_on_delayed_saturation_adjustment_one_shot_callback (gpointer self);
+SaturationTransformation* saturation_transformation_new (gfloat client_parameter);
+SaturationTransformation* saturation_transformation_construct (GType object_type, gfloat client_parameter);
+static void editing_tools_adjust_tool_on_exposure_adjustment (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_on_delayed_exposure_adjustment (EditingToolsAdjustTool* self);
+static void _editing_tools_adjust_tool_on_delayed_exposure_adjustment_one_shot_callback (gpointer self);
+ExposureTransformation* exposure_transformation_new (gfloat client_parameter);
+ExposureTransformation* exposure_transformation_construct (GType object_type, gfloat client_parameter);
+static void editing_tools_adjust_tool_on_shadows_adjustment (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_on_delayed_shadows_adjustment (EditingToolsAdjustTool* self);
+static void _editing_tools_adjust_tool_on_delayed_shadows_adjustment_one_shot_callback (gpointer self);
+ShadowDetailTransformation* shadow_detail_transformation_new (gfloat user_intensity);
+ShadowDetailTransformation* shadow_detail_transformation_construct (GType object_type, gfloat user_intensity);
+static void editing_tools_adjust_tool_on_highlights_adjustment (EditingToolsAdjustTool* self);
+static void editing_tools_adjust_tool_on_delayed_highlights_adjustment (EditingToolsAdjustTool* self);
+static void _editing_tools_adjust_tool_on_delayed_highlights_adjustment_one_shot_callback (gpointer self);
+HighlightDetailTransformation* highlight_detail_transformation_new (gfloat user_intensity);
+HighlightDetailTransformation* highlight_detail_transformation_construct (GType object_type, gfloat user_intensity);
+static void editing_tools_adjust_tool_on_histogram_constraint (EditingToolsAdjustTool* self);
+gint rgb_histogram_manipulator_get_left_nub_position (RGBHistogramManipulator* self);
+gint rgb_histogram_manipulator_get_right_nub_position (RGBHistogramManipulator* self);
+ExpansionTransformation* expansion_transformation_new_from_extrema (gint black_point, gint white_point);
+ExpansionTransformation* expansion_transformation_construct_from_extrema (GType object_type, gint black_point, gint white_point);
+static void editing_tools_adjust_tool_on_canvas_resize (EditingToolsAdjustTool* self);
+static gboolean editing_tools_adjust_tool_on_hscale_reset (EditingToolsAdjustTool* self, GtkWidget* widget, GdkEventButton* event);
+gboolean has_only_key_modifier (GdkModifierType field, GdkModifierType mask);
+static void _editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self);
+static void _editing_tools_adjust_tool_on_ok_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_reset_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static void _editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed (RGBHistogramManipulator* _sender, gpointer self);
+static gboolean _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+gboolean editing_tools_adjust_tool_enhance (EditingToolsAdjustTool* self);
+static GType editing_tools_adjust_tool_adjust_enhance_command_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static EditingToolsAdjustToolAdjustEnhanceCommand* editing_tools_adjust_tool_adjust_enhance_command_new (EditingToolsAdjustTool* owner, Photo* photo);
+static EditingToolsAdjustToolAdjustEnhanceCommand* editing_tools_adjust_tool_adjust_enhance_command_construct (GType object_type, EditingToolsAdjustTool* owner, Photo* photo);
+static void editing_tools_adjust_tool_set_adjustments (EditingToolsAdjustTool* self, PixelTransformationBundle* new_adjustments);
+static void editing_tools_adjust_tool_update_slider (EditingToolsAdjustTool* self, PixelTransformation* transformation);
+static gboolean editing_tools_adjust_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event);
+enum {
+ EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_WINDOW_DUMMY_PROPERTY
+};
+#define EXPOSURE_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define EXPOSURE_TRANSFORMATION_MAX_PARAMETER 16.0f
+#define SATURATION_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define SATURATION_TRANSFORMATION_MAX_PARAMETER 16.0f
+#define TINT_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define TINT_TRANSFORMATION_MAX_PARAMETER 16.0f
+#define TEMPERATURE_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+#define TEMPERATURE_TRANSFORMATION_MAX_PARAMETER 16.0f
+#define SHADOW_DETAIL_TRANSFORMATION_MIN_PARAMETER 0.0f
+#define SHADOW_DETAIL_TRANSFORMATION_MAX_PARAMETER 32.0f
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_MIN_PARAMETER (-32.0f)
+#define HIGHLIGHT_DETAIL_TRANSFORMATION_MAX_PARAMETER 0.0f
+#define RESOURCES_OK_LABEL _ ("_OK")
+RGBHistogramManipulator* rgb_histogram_manipulator_new (void);
+RGBHistogramManipulator* rgb_histogram_manipulator_construct (GType object_type);
+static void editing_tools_adjust_tool_adjust_tool_window_finalize (GObject* obj);
+GType command_description_get_type (void) G_GNUC_CONST;
+enum {
+ EDITING_TOOLS_ADJUST_TOOL_ADJUST_TOOL_COMMAND_DUMMY_PROPERTY
+};
+static void editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated (EditingToolsAdjustToolAdjustToolCommand* self);
+static void _editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated (EditingToolsEditingTool* _sender, gpointer self);
+static EditingToolsAdjustToolAdjustToolCommand* editing_tools_adjust_tool_adjust_tool_command_construct (GType object_type, EditingToolsAdjustTool* owner, const gchar* name, const gchar* explanation);
+Command* command_construct (GType object_type, const gchar* name, const gchar* explanation);
+void command_manager_reset (CommandManager* self);
+static void editing_tools_adjust_tool_adjust_tool_command_finalize (GObject* obj);
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommandPrivate))
+enum {
+ EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_DUMMY_PROPERTY
+};
+PixelTransformationBundle* pixel_transformation_bundle_copy (PixelTransformationBundle* self);
+PixelTransformationBundle* pixel_transformation_bundle_new (void);
+PixelTransformationBundle* pixel_transformation_bundle_construct (GType object_type);
+void pixel_transformation_bundle_set_to_identity (PixelTransformationBundle* self);
+static void editing_tools_adjust_tool_adjust_reset_command_real_execute (Command* base);
+static void editing_tools_adjust_tool_adjust_reset_command_real_undo (Command* base);
+static gboolean editing_tools_adjust_tool_adjust_reset_command_real_compress (Command* base, Command* command);
+static void editing_tools_adjust_tool_adjust_reset_command_finalize (GObject* obj);
+#define EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommandPrivate))
+enum {
+ EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_DUMMY_PROPERTY
+};
+static void editing_tools_adjust_tool_slider_adjustment_command_real_execute (Command* base);
+static void editing_tools_adjust_tool_slider_adjustment_command_real_undo (Command* base);
+static void editing_tools_adjust_tool_slider_adjustment_command_real_redo (Command* base);
+static gboolean editing_tools_adjust_tool_slider_adjustment_command_real_compress (Command* base, Command* command);
+void command_execute (Command* self);
+static void editing_tools_adjust_tool_slider_adjustment_command_finalize (GObject* obj);
+#define EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommandPrivate))
+enum {
+ EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_DUMMY_PROPERTY
+};
+#define RESOURCES_ENHANCE_LABEL _ ("Enhance")
+#define RESOURCES_ENHANCE_TOOLTIP _ ("Automatically improve the photo's appearance")
+static void editing_tools_adjust_tool_adjust_enhance_command_real_execute (Command* base);
+PixelTransformationBundle* photo_get_enhance_transformations (Photo* self);
+static void editing_tools_adjust_tool_adjust_enhance_command_real_undo (Command* base);
+static gboolean editing_tools_adjust_tool_adjust_enhance_command_real_compress (Command* base, Command* command);
+GType enhance_single_command_get_type (void) G_GNUC_CONST;
+DataSource* single_data_source_command_get_source (SingleDataSourceCommand* self);
+gboolean data_source_equals (DataSource* self, DataSource* source);
+static void editing_tools_adjust_tool_adjust_enhance_command_finalize (GObject* obj);
+static void editing_tools_adjust_tool_finalize (EditingToolsEditingTool* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+void editing_tools_preconfigure (void) {
+}
+
+
+void editing_tools_init (GError** error) {
+}
+
+
+void editing_tools_terminate (void) {
+}
+
+
+static void _suppress_warnings_glog_func (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message, gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ suppress_warnings (log_domain, log_levels, message);
+#line 1664 "EditingTools.c"
+}
+
+
+EditingToolsEditingToolWindow* editing_tools_editing_tool_window_construct (GType object_type, GtkWindow* container) {
+ EditingToolsEditingToolWindow * self = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkFrame* outer_frame = NULL;
+ GtkFrame* _tmp1_ = NULL;
+ GtkFrame* _tmp2_ = NULL;
+ GtkFrame* _tmp3_ = NULL;
+ GtkFrame* _tmp4_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
+#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsEditingToolWindow*) g_object_new (object_type, NULL);
+#line 36 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_set_type_hint (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), GDK_WINDOW_TYPE_HINT_UTILITY);
+#line 38 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_set_decorated (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 39 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = container;
+#line 39 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = (GtkFrame*) gtk_frame_new (NULL);
+#line 41 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp1_);
+#line 41 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ outer_frame = _tmp1_;
+#line 42 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (outer_frame, gtk_container_get_type (), GtkContainer), (guint) 0);
+#line 43 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_frame_set_shadow_type (outer_frame, GTK_SHADOW_OUT);
+#line 45 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->layout_frame;
+#line 45 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_container_get_type (), GtkContainer), (guint) EDITING_TOOLS_EDITING_TOOL_WINDOW_FRAME_BORDER);
+#line 46 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->layout_frame;
+#line 46 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_frame_set_shadow_type (_tmp3_, GTK_SHADOW_NONE);
+#line 48 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->layout_frame;
+#line 48 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (outer_frame, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 49 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ GTK_CONTAINER_CLASS (editing_tools_editing_tool_window_parent_class)->add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (outer_frame, gtk_widget_get_type (), GtkWidget));
+#line 51 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_add_events (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), (gint) (GDK_BUTTON_PRESS_MASK | GDK_KEY_PRESS_MASK));
+#line 52 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_set_focus_on_map (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 53 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_set_accept_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 54 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_can_focus (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 55 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_set_has_resize_grip (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 59 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_log_set_handler ("Gdk", G_LOG_LEVEL_WARNING, _suppress_warnings_glog_func, NULL);
+#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (outer_frame);
+#line 34 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 1728 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_window_real_add (GtkContainer* base, GtkWidget* widget) {
+ EditingToolsEditingToolWindow * self;
+ GtkFrame* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
+#line 66 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 67 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->layout_frame;
+#line 67 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = widget;
+#line 67 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_container_get_type (), GtkContainer), _tmp1_);
+#line 1746 "EditingTools.c"
+}
+
+
+gboolean editing_tools_editing_tool_window_has_user_moved (EditingToolsEditingToolWindow* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 70 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL_WINDOW (self), FALSE);
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->user_moved;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp0_;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 1761 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_editing_tool_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ EditingToolsEditingToolWindow * self;
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ GdkEventKey* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
+#line 74 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = event;
+#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), _tmp0_);
+#line 75 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_) {
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 1789 "EditingTools.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = event;
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), "key-press-event", _tmp4_, &_tmp5_);
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_;
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp3_);
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp6_;
+#line 78 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 1807 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_editing_tool_window_real_button_press_event (GtkWidget* base, GdkEventButton* event) {
+ EditingToolsEditingToolWindow * self;
+ gboolean result = FALSE;
+ GdkEventButton* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GdkEventButton* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ GdkEventButton* _tmp7_ = NULL;
+ gdouble _tmp8_ = 0.0;
+ GdkEventButton* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ GdkEventButton* _tmp11_ = NULL;
+ guint32 _tmp12_ = 0U;
+#line 81 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
+#line 81 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = event;
+#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->button;
+#line 83 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_ != ((guint) 1)) {
+#line 1834 "EditingTools.c"
+ gboolean _tmp2_ = FALSE;
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->button_press_event != NULL) {
+#line 1838 "EditingTools.c"
+ GdkEventButton* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = event;
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget), _tmp3_);
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp4_;
+#line 1847 "EditingTools.c"
+ } else {
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = TRUE;
+#line 1851 "EditingTools.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp2_;
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 1857 "EditingTools.c"
+ }
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = event;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->button;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = event;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_->x_root;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = event;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_->y_root;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = event;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_->time;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_begin_move_drag (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), (gint) _tmp6_, (gint) _tmp8_, (gint) _tmp10_, _tmp12_);
+#line 87 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_moved = TRUE;
+#line 89 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 89 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 1883 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_window_real_realize (GtkWidget* base) {
+ EditingToolsEditingToolWindow * self;
+#line 92 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
+#line 93 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_set_opacity (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), RESOURCES_TRANSIENT_WINDOW_OPACITY);
+#line 95 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ GTK_WIDGET_CLASS (editing_tools_editing_tool_window_parent_class)->realize (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), gtk_widget_get_type (), GtkWidget));
+#line 1895 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_window_class_init (EditingToolsEditingToolWindowClass * klass) {
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_window_parent_class = g_type_class_peek_parent (klass);
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsEditingToolWindowPrivate));
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((GtkContainerClass *) klass)->add = editing_tools_editing_tool_window_real_add;
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = editing_tools_editing_tool_window_real_key_press_event;
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((GtkWidgetClass *) klass)->button_press_event = editing_tools_editing_tool_window_real_button_press_event;
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((GtkWidgetClass *) klass)->realize = editing_tools_editing_tool_window_real_realize;
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_editing_tool_window_finalize;
+#line 1914 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_window_instance_init (EditingToolsEditingToolWindow * self) {
+ GtkFrame* _tmp0_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_PRIVATE (self);
+#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = (GtkFrame*) gtk_frame_new (NULL);
+#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp0_);
+#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->layout_frame = _tmp0_;
+#line 32 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_moved = FALSE;
+#line 1930 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_window_finalize (GObject* obj) {
+ EditingToolsEditingToolWindow * self;
+ GLogFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow);
+#line 63 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = g_log_default_handler;
+#line 63 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0__target = NULL;
+#line 63 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_log_set_handler ("Gdk", G_LOG_LEVEL_WARNING, _tmp0_, _tmp0__target);
+#line 31 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->layout_frame);
+#line 28 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_editing_tool_window_parent_class)->finalize (obj);
+#line 1950 "EditingTools.c"
+}
+
+
+GType editing_tools_editing_tool_window_get_type (void) {
+ static volatile gsize editing_tools_editing_tool_window_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_editing_tool_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsEditingToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_editing_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsEditingToolWindow), 0, (GInstanceInitFunc) editing_tools_editing_tool_window_instance_init, NULL };
+ GType editing_tools_editing_tool_window_type_id;
+ editing_tools_editing_tool_window_type_id = g_type_register_static (gtk_window_get_type (), "EditingToolsEditingToolWindow", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&editing_tools_editing_tool_window_type_id__volatile, editing_tools_editing_tool_window_type_id);
+ }
+ return editing_tools_editing_tool_window_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1969 "EditingTools.c"
+}
+
+
+static gpointer _cairo_reference0 (gpointer self) {
+#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self ? cairo_reference (self) : NULL;
+#line 1976 "EditingTools.c"
+}
+
+
+EditingToolsPhotoCanvas* editing_tools_photo_canvas_construct (GType object_type, GtkWindow* container, GdkWindow* drawing_window, Photo* photo, cairo_t* default_ctx, Dimensions* surface_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position) {
+ EditingToolsPhotoCanvas* self = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ GdkWindow* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ cairo_t* _tmp6_ = NULL;
+ cairo_t* _tmp7_ = NULL;
+ Dimensions _tmp8_ = {0};
+ GdkRectangle _tmp9_ = {0};
+ GdkPixbuf* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ cairo_t* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkRectangle _tmp14_ = {0};
+ cairo_surface_t* _tmp15_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GDK_IS_WINDOW (drawing_window), NULL);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (default_ctx != NULL, NULL);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (surface_dim != NULL, NULL);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (scaled), NULL);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (scaled_position != NULL, NULL);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsPhotoCanvas*) g_type_create_instance (object_type);
+#line 114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = container;
+#line 114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->container);
+#line 114 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->container = _tmp1_;
+#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = drawing_window;
+#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->drawing_window);
+#line 115 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->drawing_window = _tmp3_;
+#line 116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = photo;
+#line 116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->photo);
+#line 116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->photo = _tmp5_;
+#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = default_ctx;
+#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _cairo_reference0 (_tmp6_);
+#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->default_ctx);
+#line 117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->default_ctx = _tmp7_;
+#line 118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = *surface_dim;
+#line 118 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->surface_dim = _tmp8_;
+#line 119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = *scaled_position;
+#line 119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_position = _tmp9_;
+#line 120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = scaled;
+#line 120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->scaled_pixbuf);
+#line 120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_pixbuf = _tmp11_;
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = default_ctx;
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = scaled;
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = *scaled_position;
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = editing_tools_photo_canvas_pixbuf_to_surface (self, _tmp12_, _tmp13_, &_tmp14_);
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->scaled);
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled = _tmp15_;
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 2076 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_unscaled_to_raw_rect (EditingToolsPhotoCanvas* self, GdkRectangle* rectangle, GdkRectangle* result) {
+ Photo* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ GdkRectangle _tmp2_ = {0};
+#line 129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 129 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (rectangle != NULL);
+#line 130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->photo;
+#line 130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = *rectangle;
+#line 130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_unscaled_to_raw_rect (_tmp0_, &_tmp1_, &_tmp2_);
+#line 130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _tmp2_;
+#line 130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2098 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_active_to_unscaled_point (EditingToolsPhotoCanvas* self, GdkPoint* active_point, GdkPoint* result) {
+ GdkRectangle scaled_position = {0};
+ GdkRectangle _tmp0_ = {0};
+ Dimensions unscaled_dims = {0};
+ Photo* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ gdouble scale_factor_x = 0.0;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gdouble scale_factor_y = 0.0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ GdkPoint _result_ = {0};
+ GdkPoint _tmp11_ = {0};
+ GdkPoint _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkPoint _tmp14_ = {0};
+ gint _tmp15_ = 0;
+#line 133 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 133 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (active_point != NULL);
+#line 134 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (self, &_tmp0_);
+#line 134 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaled_position = _tmp0_;
+#line 135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->photo;
+#line 135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp2_);
+#line 135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ unscaled_dims = _tmp2_;
+#line 137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = unscaled_dims;
+#line 137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.width;
+#line 137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = scaled_position;
+#line 137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.width;
+#line 137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scale_factor_x = ((gdouble) _tmp4_) / ((gdouble) _tmp6_);
+#line 139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = unscaled_dims;
+#line 139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.height;
+#line 139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = scaled_position;
+#line 139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.height;
+#line 139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scale_factor_y = ((gdouble) _tmp8_) / ((gdouble) _tmp10_);
+#line 142 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_.x = 0;
+#line 142 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp11_;
+#line 143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = *active_point;
+#line 143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.x;
+#line 143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.x = (gint) ((((gdouble) _tmp13_) * scale_factor_x) + 0.5);
+#line 144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = *active_point;
+#line 144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_.y;
+#line 144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.y = (gint) ((((gdouble) _tmp15_) * scale_factor_y) + 0.5);
+#line 146 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _result_;
+#line 146 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2178 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_active_to_unscaled_rect (EditingToolsPhotoCanvas* self, GdkRectangle* active_rect, GdkRectangle* result) {
+ GdkPoint upper_left = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkPoint lower_right = {0};
+ GdkPoint _tmp1_ = {0};
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkPoint _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkPoint _tmp14_ = {0};
+ GdkPoint _tmp15_ = {0};
+ GdkPoint _tmp16_ = {0};
+ GdkPoint _tmp17_ = {0};
+ GdkRectangle unscaled_rect = {0};
+ GdkPoint _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkPoint _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ GdkPoint _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ GdkPoint _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ GdkPoint _tmp28_ = {0};
+ gint _tmp29_ = 0;
+#line 149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (active_rect != NULL);
+#line 150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_.x = 0;
+#line 150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left = _tmp0_;
+#line 151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_.x = 0;
+#line 151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right = _tmp1_;
+#line 152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *active_rect;
+#line 152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 152 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left.x = _tmp3_;
+#line 153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = *active_rect;
+#line 153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.y;
+#line 153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left.y = _tmp5_;
+#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = upper_left;
+#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.x;
+#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = *active_rect;
+#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.width;
+#line 154 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right.x = _tmp7_ + _tmp9_;
+#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = upper_left;
+#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.y;
+#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = *active_rect;
+#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.height;
+#line 155 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right.y = _tmp11_ + _tmp13_;
+#line 157 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = upper_left;
+#line 157 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_active_to_unscaled_point (self, &_tmp14_, &_tmp15_);
+#line 157 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left = _tmp15_;
+#line 158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = lower_right;
+#line 158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_active_to_unscaled_point (self, &_tmp16_, &_tmp17_);
+#line 158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right = _tmp17_;
+#line 160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ memset (&unscaled_rect, 0, sizeof (GdkRectangle));
+#line 161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = upper_left;
+#line 161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_.x;
+#line 161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ unscaled_rect.x = _tmp19_;
+#line 162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = upper_left;
+#line 162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _tmp20_.y;
+#line 162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ unscaled_rect.y = _tmp21_;
+#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = lower_right;
+#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_.x;
+#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = upper_left;
+#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_.x;
+#line 163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ unscaled_rect.width = _tmp23_ - _tmp25_;
+#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = lower_right;
+#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = _tmp26_.y;
+#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = upper_left;
+#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = _tmp28_.y;
+#line 164 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ unscaled_rect.height = _tmp27_ - _tmp29_;
+#line 166 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = unscaled_rect;
+#line 166 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2310 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_user_to_active_point (EditingToolsPhotoCanvas* self, GdkPoint* user_point, GdkPoint* result) {
+ GdkRectangle active_offsets = {0};
+ GdkRectangle _tmp0_ = {0};
+ GdkPoint _result_ = {0};
+ GdkPoint _tmp1_ = {0};
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+#line 169 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 169 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (user_point != NULL);
+#line 170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (self, &_tmp0_);
+#line 170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_offsets = _tmp0_;
+#line 172 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_.x = 0;
+#line 172 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp1_;
+#line 173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *user_point;
+#line 173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = active_offsets;
+#line 173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.x;
+#line 173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.x = _tmp3_ - _tmp5_;
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = *user_point;
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.y;
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = active_offsets;
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.y;
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.y = _tmp7_ - _tmp9_;
+#line 176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _result_;
+#line 176 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2363 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_user_to_active_rect (EditingToolsPhotoCanvas* self, GdkRectangle* user_rect, GdkRectangle* result) {
+ GdkPoint upper_left = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkPoint lower_right = {0};
+ GdkPoint _tmp1_ = {0};
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkPoint _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkPoint _tmp14_ = {0};
+ GdkPoint _tmp15_ = {0};
+ GdkPoint _tmp16_ = {0};
+ GdkPoint _tmp17_ = {0};
+ GdkRectangle active_rect = {0};
+ GdkPoint _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkPoint _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ GdkPoint _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ GdkPoint _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ GdkPoint _tmp28_ = {0};
+ gint _tmp29_ = 0;
+#line 179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (user_rect != NULL);
+#line 180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_.x = 0;
+#line 180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left = _tmp0_;
+#line 181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_.x = 0;
+#line 181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right = _tmp1_;
+#line 182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *user_rect;
+#line 182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left.x = _tmp3_;
+#line 183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = *user_rect;
+#line 183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.y;
+#line 183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left.y = _tmp5_;
+#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = upper_left;
+#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.x;
+#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = *user_rect;
+#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.width;
+#line 184 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right.x = _tmp7_ + _tmp9_;
+#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = upper_left;
+#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.y;
+#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = *user_rect;
+#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.height;
+#line 185 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right.y = _tmp11_ + _tmp13_;
+#line 187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = upper_left;
+#line 187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_user_to_active_point (self, &_tmp14_, &_tmp15_);
+#line 187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ upper_left = _tmp15_;
+#line 188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = lower_right;
+#line 188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_user_to_active_point (self, &_tmp16_, &_tmp17_);
+#line 188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ lower_right = _tmp17_;
+#line 190 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ memset (&active_rect, 0, sizeof (GdkRectangle));
+#line 191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = upper_left;
+#line 191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_.x;
+#line 191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_rect.x = _tmp19_;
+#line 192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = upper_left;
+#line 192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _tmp20_.y;
+#line 192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_rect.y = _tmp21_;
+#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = lower_right;
+#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_.x;
+#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = upper_left;
+#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_.x;
+#line 193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_rect.width = _tmp23_ - _tmp25_;
+#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = lower_right;
+#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = _tmp26_.y;
+#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = upper_left;
+#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = _tmp28_.y;
+#line 194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_rect.height = _tmp27_ - _tmp29_;
+#line 196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = active_rect;
+#line 196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2495 "EditingTools.c"
+}
+
+
+Photo* editing_tools_photo_canvas_get_photo (EditingToolsPhotoCanvas* self) {
+ Photo* result = NULL;
+ Photo* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
+#line 200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->photo;
+#line 200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 2513 "EditingTools.c"
+}
+
+
+GtkWindow* editing_tools_photo_canvas_get_container (EditingToolsPhotoCanvas* self) {
+ GtkWindow* result = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
+#line 204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->container;
+#line 204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 2531 "EditingTools.c"
+}
+
+
+GdkWindow* editing_tools_photo_canvas_get_drawing_window (EditingToolsPhotoCanvas* self) {
+ GdkWindow* result = NULL;
+ GdkWindow* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+#line 207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
+#line 208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->drawing_window;
+#line 208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 2549 "EditingTools.c"
+}
+
+
+cairo_t* editing_tools_photo_canvas_get_default_ctx (EditingToolsPhotoCanvas* self) {
+ cairo_t* result = NULL;
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _cairo_reference0 (_tmp0_);
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 2567 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_get_surface_dim (EditingToolsPhotoCanvas* self, Dimensions* result) {
+ Dimensions _tmp0_ = {0};
+#line 215 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->surface_dim;
+#line 216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _tmp0_;
+#line 216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2581 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_get_scaling (EditingToolsPhotoCanvas* self, Scaling* result) {
+ Dimensions _tmp0_ = {0};
+ Scaling _tmp1_ = {0};
+#line 219 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->surface_dim;
+#line 220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaling_for_viewport (&_tmp0_, FALSE, &_tmp1_);
+#line 220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _tmp1_;
+#line 220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2598 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_set_surface (EditingToolsPhotoCanvas* self, cairo_t* default_ctx, Dimensions* surface_dim) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ cairo_t* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+#line 223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (default_ctx != NULL);
+#line 223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (surface_dim != NULL);
+#line 224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = default_ctx;
+#line 224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _cairo_reference0 (_tmp0_);
+#line 224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->default_ctx);
+#line 224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->default_ctx = _tmp1_;
+#line 225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *surface_dim;
+#line 225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->surface_dim = _tmp2_;
+#line 227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = default_ctx;
+#line 227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = *surface_dim;
+#line 227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (self, "new-surface", _tmp3_, &_tmp4_);
+#line 2632 "EditingTools.c"
+}
+
+
+static gpointer _cairo_surface_reference0 (gpointer self) {
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self ? cairo_surface_reference (self) : NULL;
+#line 2639 "EditingTools.c"
+}
+
+
+cairo_surface_t* editing_tools_photo_canvas_get_scaled_surface (EditingToolsPhotoCanvas* self) {
+ cairo_surface_t* result = NULL;
+ cairo_surface_t* _tmp0_ = NULL;
+ cairo_surface_t* _tmp1_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->scaled;
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _cairo_surface_reference0 (_tmp0_);
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 2657 "EditingTools.c"
+}
+
+
+GdkPixbuf* editing_tools_photo_canvas_get_scaled_pixbuf (EditingToolsPhotoCanvas* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->scaled_pixbuf;
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 2675 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_get_scaled_pixbuf_position (EditingToolsPhotoCanvas* self, GdkRectangle* result) {
+ GdkRectangle _tmp0_ = {0};
+#line 238 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->scaled_position;
+#line 239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _tmp0_;
+#line 239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2689 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_resized_pixbuf (EditingToolsPhotoCanvas* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position) {
+ cairo_t* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkRectangle _tmp2_ = {0};
+ cairo_surface_t* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkRectangle _tmp6_ = {0};
+ Dimensions _tmp7_ = {0};
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkRectangle _tmp9_ = {0};
+#line 242 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 242 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (old_dim != NULL);
+#line 242 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (scaled));
+#line 242 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (scaled_position != NULL);
+#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = scaled;
+#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *scaled_position;
+#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_photo_canvas_pixbuf_to_surface (self, _tmp0_, _tmp1_, &_tmp2_);
+#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->scaled);
+#line 243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled = _tmp3_;
+#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = scaled;
+#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->scaled_pixbuf);
+#line 244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_pixbuf = _tmp5_;
+#line 245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = *scaled_position;
+#line 245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_position = _tmp6_;
+#line 247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = *old_dim;
+#line 247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = scaled;
+#line 247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = *scaled_position;
+#line 247 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (self, "resized-scaled-pixbuf", &_tmp7_, _tmp8_, &_tmp9_);
+#line 2744 "EditingTools.c"
+}
+
+
+static void editing_tools_photo_canvas_real_repaint (EditingToolsPhotoCanvas* self) {
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_critical ("Type `%s' does not implement abstract method `editing_tools_photo_canvas_repaint'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 2753 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_repaint (EditingToolsPhotoCanvas* self) {
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS (self)->repaint (self);
+#line 2762 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_paint_pixbuf (EditingToolsPhotoCanvas* self, GdkPixbuf* pixbuf) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ cairo_t* _tmp7_ = NULL;
+ cairo_t* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ cairo_t* _tmp14_ = NULL;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkPixbuf* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ GdkPixbuf* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ cairo_t* _tmp23_ = NULL;
+ cairo_t* _tmp24_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 258 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_save (_tmp0_);
+#line 262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->default_ctx;
+#line 262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp1_, "#000");
+#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->default_ctx;
+#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->surface_dim;
+#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.width;
+#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->surface_dim;
+#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.height;
+#line 263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp2_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp4_, (gdouble) _tmp6_);
+#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->default_ctx;
+#line 264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp7_);
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->default_ctx;
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = pixbuf;
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->scaled_position;
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.x;
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->scaled_position;
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.y;
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_cairo_set_source_pixbuf (_tmp8_, _tmp9_, (gdouble) _tmp11_, (gdouble) _tmp13_);
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = self->priv->default_ctx;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->scaled_position;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.x;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->scaled_position;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_.y;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = pixbuf;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = gdk_pixbuf_get_width (_tmp19_);
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = pixbuf;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = gdk_pixbuf_get_height (_tmp21_);
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp14_, (gdouble) _tmp16_, (gdouble) _tmp18_, (gdouble) _tmp20_, (gdouble) _tmp22_);
+#line 270 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->priv->default_ctx;
+#line 270 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp23_);
+#line 271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->default_ctx;
+#line 271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_restore (_tmp24_);
+#line 2862 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_paint_pixbuf_area (EditingToolsPhotoCanvas* self, GdkPixbuf* pixbuf, Box* source_area) {
+ cairo_t* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ cairo_t* _tmp16_ = NULL;
+ GdkPixbuf* _tmp17_ = NULL;
+ GdkRectangle _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkRectangle _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ cairo_t* _tmp22_ = NULL;
+ GdkRectangle _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ Box _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ GdkRectangle _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ Box _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ cairo_t* _tmp33_ = NULL;
+ cairo_t* _tmp34_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (source_area != NULL);
+#line 275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_save (_tmp0_);
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = pixbuf;
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gdk_pixbuf_get_has_alpha (_tmp1_);
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_) {
+#line 2905 "EditingTools.c"
+ cairo_t* _tmp3_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Box _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ Box _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ cairo_t* _tmp15_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->default_ctx;
+#line 277 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp3_, "#000");
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->default_ctx;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled_position;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.x;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = *source_area;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.left;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->scaled_position;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.y;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = *source_area;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.top;
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = box_get_width (source_area);
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = box_get_height (source_area);
+#line 278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp4_, (gdouble) (_tmp6_ + _tmp8_), (gdouble) (_tmp10_ + _tmp12_), (gdouble) _tmp13_, (gdouble) _tmp14_);
+#line 281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->default_ctx;
+#line 281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp15_);
+#line 2951 "EditingTools.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->priv->default_ctx;
+#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = pixbuf;
+#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->scaled_position;
+#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_.x;
+#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = self->priv->scaled_position;
+#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _tmp20_.y;
+#line 284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_cairo_set_source_pixbuf (_tmp16_, _tmp17_, (gdouble) _tmp19_, (gdouble) _tmp21_);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = self->priv->default_ctx;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->priv->scaled_position;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = _tmp23_.x;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = *source_area;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_.left;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = self->priv->scaled_position;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = _tmp27_.y;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = *source_area;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_.top;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = box_get_width (source_area);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = box_get_height (source_area);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp22_, (gdouble) (_tmp24_ + _tmp26_), (gdouble) (_tmp28_ + _tmp30_), (gdouble) _tmp31_, (gdouble) _tmp32_);
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->priv->default_ctx;
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp33_);
+#line 290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = self->priv->default_ctx;
+#line 290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_restore (_tmp34_);
+#line 2999 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_paint_surface (EditingToolsPhotoCanvas* self, cairo_surface_t* surface, gboolean over) {
+ cairo_t* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ cairo_t* _tmp4_ = NULL;
+ cairo_surface_t* _tmp5_ = NULL;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ cairo_t* _tmp10_ = NULL;
+ cairo_t* _tmp11_ = NULL;
+ cairo_surface_t* _tmp12_ = NULL;
+ GdkRectangle _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ cairo_t* _tmp17_ = NULL;
+ cairo_t* _tmp18_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (surface != NULL);
+#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_save (_tmp0_);
+#line 296 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = over;
+#line 296 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_ == FALSE) {
+#line 3033 "EditingTools.c"
+ cairo_t* _tmp2_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->default_ctx;
+#line 297 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (_tmp2_, CAIRO_OPERATOR_SOURCE);
+#line 3039 "EditingTools.c"
+ } else {
+ cairo_t* _tmp3_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->default_ctx;
+#line 299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (_tmp3_, CAIRO_OPERATOR_OVER);
+#line 3046 "EditingTools.c"
+ }
+#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->default_ctx;
+#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled;
+#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->scaled_position;
+#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.x;
+#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->scaled_position;
+#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.y;
+#line 301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_surface (_tmp4_, _tmp5_, (gdouble) _tmp7_, (gdouble) _tmp9_);
+#line 302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->default_ctx;
+#line 302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_paint (_tmp10_);
+#line 303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->default_ctx;
+#line 303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = surface;
+#line 303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->scaled_position;
+#line 303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.x;
+#line 303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->scaled_position;
+#line 303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.y;
+#line 303 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_surface (_tmp11_, _tmp12_, (gdouble) _tmp14_, (gdouble) _tmp16_);
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->default_ctx;
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_paint (_tmp17_);
+#line 305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->default_ctx;
+#line 305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_restore (_tmp18_);
+#line 3088 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_paint_surface_area (EditingToolsPhotoCanvas* self, cairo_surface_t* surface, Box* source_area, gboolean over) {
+ cairo_t* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ cairo_t* _tmp4_ = NULL;
+ cairo_surface_t* _tmp5_ = NULL;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ cairo_t* _tmp10_ = NULL;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ Box _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Box _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ cairo_t* _tmp21_ = NULL;
+ cairo_t* _tmp22_ = NULL;
+ cairo_surface_t* _tmp23_ = NULL;
+ GdkRectangle _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ GdkRectangle _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ cairo_t* _tmp28_ = NULL;
+ GdkRectangle _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ Box _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ GdkRectangle _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ Box _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ cairo_t* _tmp39_ = NULL;
+ cairo_t* _tmp40_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (surface != NULL);
+#line 308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (source_area != NULL);
+#line 309 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 309 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_save (_tmp0_);
+#line 310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = over;
+#line 310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_ == FALSE) {
+#line 3146 "EditingTools.c"
+ cairo_t* _tmp2_ = NULL;
+#line 311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->default_ctx;
+#line 311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (_tmp2_, CAIRO_OPERATOR_SOURCE);
+#line 3152 "EditingTools.c"
+ } else {
+ cairo_t* _tmp3_ = NULL;
+#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->default_ctx;
+#line 313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (_tmp3_, CAIRO_OPERATOR_OVER);
+#line 3159 "EditingTools.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->default_ctx;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->scaled_position;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.x;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->scaled_position;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.y;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_surface (_tmp4_, _tmp5_, (gdouble) _tmp7_, (gdouble) _tmp9_);
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->default_ctx;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->scaled_position;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.x;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = *source_area;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.left;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->scaled_position;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.y;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = *source_area;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_.top;
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = box_get_width (source_area);
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = box_get_height (source_area);
+#line 316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp10_, (gdouble) (_tmp12_ + _tmp14_), (gdouble) (_tmp16_ + _tmp18_), (gdouble) _tmp19_, (gdouble) _tmp20_);
+#line 319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->default_ctx;
+#line 319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp21_);
+#line 321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = self->priv->default_ctx;
+#line 321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = surface;
+#line 321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->scaled_position;
+#line 321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_.x;
+#line 321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = self->priv->scaled_position;
+#line 321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = _tmp26_.y;
+#line 321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_surface (_tmp22_, _tmp23_, (gdouble) _tmp25_, (gdouble) _tmp27_);
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = self->priv->default_ctx;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->priv->scaled_position;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_.x;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = *source_area;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = _tmp31_.left;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->priv->scaled_position;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _tmp33_.y;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = *source_area;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = _tmp35_.top;
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = box_get_width (source_area);
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = box_get_height (source_area);
+#line 322 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp28_, (gdouble) (_tmp30_ + _tmp32_), (gdouble) (_tmp34_ + _tmp36_), (gdouble) _tmp37_, (gdouble) _tmp38_);
+#line 325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = self->priv->default_ctx;
+#line 325 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp39_);
+#line 326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = self->priv->default_ctx;
+#line 326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_restore (_tmp40_);
+#line 3249 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_draw_box (EditingToolsPhotoCanvas* self, cairo_t* ctx, Box* box) {
+ GdkRectangle rect = {0};
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ cairo_t* _tmp7_ = NULL;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkRectangle _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ cairo_t* _tmp16_ = NULL;
+#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (box != NULL);
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_rectangle (box, &_tmp0_);
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rect = _tmp0_;
+#line 331 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = rect.x;
+#line 331 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->scaled_position;
+#line 331 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 331 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rect.x = _tmp1_ + _tmp3_;
+#line 332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = rect.y;
+#line 332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled_position;
+#line 332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.y;
+#line 332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rect.y = _tmp4_ + _tmp6_;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = ctx;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = rect;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.x;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = rect;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.y;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = rect;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.width;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = rect;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_.height;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp7_, _tmp9_ + 0.5, _tmp11_ + 0.5, (gdouble) (_tmp13_ - 1), (gdouble) (_tmp15_ - 1));
+#line 335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = ctx;
+#line 335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_stroke (_tmp16_);
+#line 3322 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_draw_text (EditingToolsPhotoCanvas* self, cairo_t* ctx, const gchar* text, gint x, gint y, gboolean use_scaled_pos) {
+ gboolean _tmp0_ = FALSE;
+ cairo_text_extents_t extents = {0};
+ cairo_t* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ cairo_text_extents_t _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ cairo_text_extents_t _tmp11_ = {0};
+ gdouble _tmp12_ = 0.0;
+ cairo_t* _tmp13_ = NULL;
+ gint pane_border = 0;
+ cairo_t* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ cairo_text_extents_t _tmp17_ = {0};
+ gdouble _tmp18_ = 0.0;
+ cairo_text_extents_t _tmp19_ = {0};
+ gdouble _tmp20_ = 0.0;
+ cairo_text_extents_t _tmp21_ = {0};
+ gdouble _tmp22_ = 0.0;
+ cairo_t* _tmp23_ = NULL;
+ cairo_t* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ cairo_t* _tmp27_ = NULL;
+ cairo_t* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 338 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 338 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (text != NULL);
+#line 339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = use_scaled_pos;
+#line 339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 3363 "EditingTools.c"
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = x;
+#line 340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->scaled_position;
+#line 340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 340 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp1_ + _tmp3_;
+#line 341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = y;
+#line 341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled_position;
+#line 341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.y;
+#line 341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = _tmp4_ + _tmp6_;
+#line 3386 "EditingTools.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = ctx;
+#line 344 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = text;
+#line 344 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_text_extents (_tmp7_, _tmp8_, &_tmp9_);
+#line 344 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ extents = _tmp9_;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = x;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = extents;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.width;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp10_ - (((gint) _tmp12_) / 2);
+#line 347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = ctx;
+#line 347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp13_, RESOURCES_ONIMAGE_FONT_BACKGROUND);
+#line 349 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pane_border = 5;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = ctx;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = x;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = y;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = extents;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_.height;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = extents;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_.width;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = extents;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_.height;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp14_, (gdouble) (_tmp15_ - pane_border), (_tmp16_ - pane_border) - _tmp18_, _tmp20_ + (2 * pane_border), _tmp22_ + (2 * pane_border));
+#line 353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = ctx;
+#line 353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp23_);
+#line 355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = ctx;
+#line 355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = x;
+#line 355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = y;
+#line 355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_move_to (_tmp24_, (gdouble) _tmp25_, (gdouble) _tmp26_);
+#line 356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = ctx;
+#line 356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp27_, RESOURCES_ONIMAGE_FONT_COLOR);
+#line 357 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = ctx;
+#line 357 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = text;
+#line 357 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_show_text (_tmp28_, _tmp29_);
+#line 3452 "EditingTools.c"
+}
+
+
+/**
+ * Draw a horizontal line into the specified Cairo context at the specified position, taking
+ * into account the scaled position of the image unless directed otherwise.
+ *
+ * @param ctx The drawing context of the surface we're drawing to.
+ * @param x The horizontal position to place the line at.
+ * @param y The vertical position to place the line at.
+ * @param width The length of the line.
+ * @param use_scaled_pos Whether to use absolute window positioning or take into account the
+ * position of the scaled image.
+ */
+void editing_tools_photo_canvas_draw_horizontal_line (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint x, gint y, gint width, gboolean use_scaled_pos) {
+ gboolean _tmp0_ = FALSE;
+ cairo_t* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ cairo_t* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ cairo_t* _tmp14_ = NULL;
+#line 371 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 371 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = use_scaled_pos;
+#line 372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 3485 "EditingTools.c"
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = x;
+#line 373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->scaled_position;
+#line 373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp1_ + _tmp3_;
+#line 374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = y;
+#line 374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled_position;
+#line 374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.y;
+#line 374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = _tmp4_ + _tmp6_;
+#line 3508 "EditingTools.c"
+ }
+#line 377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = ctx;
+#line 377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = x;
+#line 377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = y;
+#line 377 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_move_to (_tmp7_, _tmp8_ + 0.5, _tmp9_ + 0.5);
+#line 378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = ctx;
+#line 378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = x;
+#line 378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = width;
+#line 378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = y;
+#line 378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_line_to (_tmp10_, (gdouble) ((_tmp11_ + _tmp12_) - 1), _tmp13_ + 0.5);
+#line 379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = ctx;
+#line 379 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_stroke (_tmp14_);
+#line 3532 "EditingTools.c"
+}
+
+
+/**
+ * Draw a vertical line into the specified Cairo context at the specified position, taking
+ * into account the scaled position of the image unless directed otherwise.
+ *
+ * @param ctx The drawing context of the surface we're drawing to.
+ * @param x The horizontal position to place the line at.
+ * @param y The vertical position to place the line at.
+ * @param width The length of the line.
+ * @param use_scaled_pos Whether to use absolute window positioning or take into account the
+ * position of the scaled image.
+ */
+void editing_tools_photo_canvas_draw_vertical_line (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint x, gint y, gint height, gboolean use_scaled_pos) {
+ gboolean _tmp0_ = FALSE;
+ cairo_t* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ cairo_t* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ cairo_t* _tmp14_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 393 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = use_scaled_pos;
+#line 394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 3565 "EditingTools.c"
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = x;
+#line 395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->scaled_position;
+#line 395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp1_ + _tmp3_;
+#line 396 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = y;
+#line 396 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled_position;
+#line 396 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.y;
+#line 396 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = _tmp4_ + _tmp6_;
+#line 3588 "EditingTools.c"
+ }
+#line 399 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = ctx;
+#line 399 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = x;
+#line 399 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = y;
+#line 399 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_move_to (_tmp7_, _tmp8_ + 0.5, _tmp9_ + 0.5);
+#line 400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = ctx;
+#line 400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = x;
+#line 400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = y;
+#line 400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = height;
+#line 400 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_line_to (_tmp10_, _tmp11_ + 0.5, (gdouble) ((_tmp12_ + _tmp13_) - 1));
+#line 401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = ctx;
+#line 401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_stroke (_tmp14_);
+#line 3612 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_erase_horizontal_line (EditingToolsPhotoCanvas* self, gint x, gint y, gint width) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ cairo_surface_t* _tmp3_ = NULL;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ cairo_t* _tmp8_ = NULL;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ cairo_t* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+#line 404 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_save (_tmp0_);
+#line 407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->default_ctx;
+#line 407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (_tmp1_, CAIRO_OPERATOR_SOURCE);
+#line 408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->default_ctx;
+#line 408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->scaled;
+#line 408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->scaled_position;
+#line 408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.x;
+#line 408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->scaled_position;
+#line 408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.y;
+#line 408 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_surface (_tmp2_, _tmp3_, (gdouble) _tmp5_, (gdouble) _tmp7_);
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->default_ctx;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->scaled_position;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.x;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = x;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->scaled_position;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.y;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = y;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = width;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp8_, (gdouble) (_tmp10_ + _tmp11_), (gdouble) (_tmp13_ + _tmp14_), (gdouble) (_tmp15_ - 1), (gdouble) 1);
+#line 411 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->priv->default_ctx;
+#line 411 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp16_);
+#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->default_ctx;
+#line 413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_restore (_tmp17_);
+#line 3685 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_draw_circle (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint active_center_x, gint active_center_y, gint radius) {
+ gint center_x = 0;
+ gint _tmp0_ = 0;
+ GdkRectangle _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ gint center_y = 0;
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ cairo_t* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ cairo_t* _tmp8_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 416 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = active_center_x;
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->scaled_position;
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_.x;
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ center_x = _tmp0_ + _tmp2_;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = active_center_y;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->scaled_position;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.y;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ center_y = _tmp3_ + _tmp5_;
+#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = ctx;
+#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = radius;
+#line 421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_arc (_tmp6_, (gdouble) center_x, (gdouble) center_y, (gdouble) _tmp7_, (gdouble) 0, 2 * G_PI);
+#line 422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = ctx;
+#line 422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_stroke (_tmp8_);
+#line 3731 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_erase_vertical_line (EditingToolsPhotoCanvas* self, gint x, gint y, gint height) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ cairo_surface_t* _tmp3_ = NULL;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ cairo_t* _tmp8_ = NULL;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ cairo_t* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+#line 425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 426 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->default_ctx;
+#line 426 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_save (_tmp0_);
+#line 432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->default_ctx;
+#line 432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (_tmp1_, CAIRO_OPERATOR_SOURCE);
+#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->default_ctx;
+#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->scaled;
+#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->scaled_position;
+#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.x;
+#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->scaled_position;
+#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.y;
+#line 433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_surface (_tmp2_, _tmp3_, (gdouble) _tmp5_, (gdouble) _tmp7_);
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->default_ctx;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->scaled_position;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.x;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = x;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->scaled_position;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.y;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = y;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = height;
+#line 434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp8_, (gdouble) (_tmp10_ + _tmp11_), (gdouble) (_tmp13_ + _tmp14_), (gdouble) 1, (gdouble) _tmp15_);
+#line 436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->priv->default_ctx;
+#line 436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp16_);
+#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->default_ctx;
+#line 438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_restore (_tmp17_);
+#line 3804 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_erase_box (EditingToolsPhotoCanvas* self, Box* box) {
+ Box _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ Box _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Box _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ Box _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Box _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ Box _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Box _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (box != NULL);
+#line 442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = *box;
+#line 442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_.left;
+#line 442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *box;
+#line 442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.top;
+#line 442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = box_get_width (box);
+#line 442 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_erase_horizontal_line (self, _tmp1_, _tmp3_, _tmp4_);
+#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = *box;
+#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.left;
+#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = *box;
+#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.bottom;
+#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = box_get_width (box);
+#line 443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_erase_horizontal_line (self, _tmp6_, _tmp8_, _tmp9_);
+#line 445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = *box;
+#line 445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.left;
+#line 445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = *box;
+#line 445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.top;
+#line 445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = box_get_height (box);
+#line 445 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_erase_vertical_line (self, _tmp11_, _tmp13_, _tmp14_);
+#line 446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = *box;
+#line 446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.right;
+#line 446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = *box;
+#line 446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_.top;
+#line 446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = box_get_height (box);
+#line 446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_erase_vertical_line (self, _tmp16_, _tmp18_, _tmp19_);
+#line 3881 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_invalidate_area (EditingToolsPhotoCanvas* self, Box* area) {
+ GdkRectangle rect = {0};
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkWindow* _tmp7_ = NULL;
+ GdkRectangle _tmp8_ = {0};
+#line 449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self));
+#line 449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (area != NULL);
+#line 450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_rectangle (area, &_tmp0_);
+#line 450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rect = _tmp0_;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = rect.x;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->scaled_position;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rect.x = _tmp1_ + _tmp3_;
+#line 452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = rect.y;
+#line 452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->scaled_position;
+#line 452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.y;
+#line 452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rect.y = _tmp4_ + _tmp6_;
+#line 454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->drawing_window;
+#line 454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = rect;
+#line 454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_window_invalidate_rect (_tmp7_, &_tmp8_, FALSE);
+#line 3926 "EditingTools.c"
+}
+
+
+static cairo_surface_t* editing_tools_photo_canvas_pixbuf_to_surface (EditingToolsPhotoCanvas* self, cairo_t* default_ctx, GdkPixbuf* pixbuf, GdkRectangle* pos) {
+ cairo_surface_t* result = NULL;
+ cairo_surface_t* surface = NULL;
+ cairo_t* _tmp0_ = NULL;
+ cairo_surface_t* _tmp1_ = NULL;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ cairo_surface_t* _tmp6_ = NULL;
+ cairo_t* ctx = NULL;
+ cairo_t* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 457 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (self), NULL);
+#line 457 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (default_ctx != NULL, NULL);
+#line 457 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 457 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (pos != NULL, NULL);
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = default_ctx;
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = cairo_get_target (_tmp0_);
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *pos;
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.width;
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = *pos;
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.height;
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = cairo_surface_create_similar (_tmp1_, CAIRO_CONTENT_COLOR_ALPHA, _tmp3_, _tmp5_);
+#line 459 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ surface = _tmp6_;
+#line 461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = cairo_create (surface);
+#line 461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ctx = _tmp7_;
+#line 462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = pixbuf;
+#line 462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_cairo_set_source_pixbuf (ctx, _tmp8_, (gdouble) 0, (gdouble) 0);
+#line 463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_paint (ctx);
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = surface;
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (ctx);
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 3983 "EditingTools.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__POINTER_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__POINTER_BOXED) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__POINTER_BOXED callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data1 = closure->data;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 4002 "EditingTools.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data2 = closure->data;
+#line 4008 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ callback = (GMarshalFunc_VOID__POINTER_BOXED) (marshal_data ? marshal_data : cc->callback);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ callback (data1, g_value_get_pointer (param_values + 1), g_value_get_boxed (param_values + 2), data2);
+#line 4014 "EditingTools.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__BOXED_OBJECT_BOXED (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__BOXED_OBJECT_BOXED) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gpointer data2);
+ register GMarshalFunc_VOID__BOXED_OBJECT_BOXED callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (n_param_values == 4);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data1 = closure->data;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 4033 "EditingTools.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data2 = closure->data;
+#line 4039 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ callback = (GMarshalFunc_VOID__BOXED_OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ callback (data1, g_value_get_boxed (param_values + 1), g_value_get_object (param_values + 2), g_value_get_boxed (param_values + 3), data2);
+#line 4045 "EditingTools.c"
+}
+
+
+static void editing_tools_value_photo_canvas_init (GValue* value) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4052 "EditingTools.c"
+}
+
+
+static void editing_tools_value_photo_canvas_free_value (GValue* value) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (value->data[0].v_pointer) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_unref (value->data[0].v_pointer);
+#line 4061 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_value_photo_canvas_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (src_value->data[0].v_pointer) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dest_value->data[0].v_pointer = editing_tools_photo_canvas_ref (src_value->data[0].v_pointer);
+#line 4071 "EditingTools.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4075 "EditingTools.c"
+ }
+}
+
+
+static gpointer editing_tools_value_photo_canvas_peek_pointer (const GValue* value) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return value->data[0].v_pointer;
+#line 4083 "EditingTools.c"
+}
+
+
+static gchar* editing_tools_value_photo_canvas_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (collect_values[0].v_pointer) {
+#line 4090 "EditingTools.c"
+ EditingToolsPhotoCanvas* object;
+ object = collect_values[0].v_pointer;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4097 "EditingTools.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4101 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = editing_tools_photo_canvas_ref (object);
+#line 4105 "EditingTools.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4109 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 4113 "EditingTools.c"
+}
+
+
+static gchar* editing_tools_value_photo_canvas_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ EditingToolsPhotoCanvas** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!object_p) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4124 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!value->data[0].v_pointer) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = NULL;
+#line 4130 "EditingTools.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4134 "EditingTools.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = editing_tools_photo_canvas_ref (value->data[0].v_pointer);
+#line 4138 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 4142 "EditingTools.c"
+}
+
+
+GParamSpec* editing_tools_param_spec_photo_canvas (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ EditingToolsParamSpecPhotoCanvas* spec;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_TYPE_PHOTO_CANVAS), NULL);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return G_PARAM_SPEC (spec);
+#line 4156 "EditingTools.c"
+}
+
+
+gpointer editing_tools_value_get_photo_canvas (const GValue* value) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_PHOTO_CANVAS), NULL);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return value->data[0].v_pointer;
+#line 4165 "EditingTools.c"
+}
+
+
+void editing_tools_value_set_photo_canvas (GValue* value, gpointer v_object) {
+ EditingToolsPhotoCanvas* old;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old = value->data[0].v_pointer;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (v_object) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = v_object;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_ref (value->data[0].v_pointer);
+#line 4185 "EditingTools.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4189 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (old) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_unref (old);
+#line 4195 "EditingTools.c"
+ }
+}
+
+
+void editing_tools_value_take_photo_canvas (GValue* value, gpointer v_object) {
+ EditingToolsPhotoCanvas* old;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old = value->data[0].v_pointer;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (v_object) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_PHOTO_CANVAS));
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = v_object;
+#line 4214 "EditingTools.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4218 "EditingTools.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (old) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_unref (old);
+#line 4224 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_photo_canvas_class_init (EditingToolsPhotoCanvasClass * klass) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_parent_class = g_type_class_peek_parent (klass);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsPhotoCanvasClass *) klass)->finalize = editing_tools_photo_canvas_finalize;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsPhotoCanvasPrivate));
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsPhotoCanvasClass *) klass)->repaint = editing_tools_photo_canvas_real_repaint;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_new ("new_surface", EDITING_TOOLS_TYPE_PHOTO_CANVAS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__POINTER_BOXED, G_TYPE_NONE, 2, G_TYPE_POINTER, TYPE_DIMENSIONS);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_new ("resized_scaled_pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOXED_OBJECT_BOXED, G_TYPE_NONE, 3, TYPE_DIMENSIONS, GDK_TYPE_PIXBUF, GDK_TYPE_RECTANGLE);
+#line 4242 "EditingTools.c"
+}
+
+
+static void editing_tools_photo_canvas_instance_init (EditingToolsPhotoCanvas * self) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_PHOTO_CANVAS_GET_PRIVATE (self);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->ref_count = 1;
+#line 4251 "EditingTools.c"
+}
+
+
+static void editing_tools_photo_canvas_finalize (EditingToolsPhotoCanvas* obj) {
+ EditingToolsPhotoCanvas * self;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvas);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_destroy (self);
+#line 103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->container);
+#line 104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->drawing_window);
+#line 105 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->photo);
+#line 106 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->default_ctx);
+#line 108 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->scaled);
+#line 109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->scaled_pixbuf);
+#line 4273 "EditingTools.c"
+}
+
+
+GType editing_tools_photo_canvas_get_type (void) {
+ static volatile gsize editing_tools_photo_canvas_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_photo_canvas_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { editing_tools_value_photo_canvas_init, editing_tools_value_photo_canvas_free_value, editing_tools_value_photo_canvas_copy_value, editing_tools_value_photo_canvas_peek_pointer, "p", editing_tools_value_photo_canvas_collect_value, "p", editing_tools_value_photo_canvas_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsPhotoCanvasClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_photo_canvas_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsPhotoCanvas), 0, (GInstanceInitFunc) editing_tools_photo_canvas_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType editing_tools_photo_canvas_type_id;
+ editing_tools_photo_canvas_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsPhotoCanvas", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&editing_tools_photo_canvas_type_id__volatile, editing_tools_photo_canvas_type_id);
+ }
+ return editing_tools_photo_canvas_type_id__volatile;
+}
+
+
+gpointer editing_tools_photo_canvas_ref (gpointer instance) {
+ EditingToolsPhotoCanvas* self;
+ self = instance;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return instance;
+#line 4298 "EditingTools.c"
+}
+
+
+void editing_tools_photo_canvas_unref (gpointer instance) {
+ EditingToolsPhotoCanvas* self;
+ self = instance;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS (self)->finalize (self);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4311 "EditingTools.c"
+ }
+}
+
+
+EditingToolsEditingTool* editing_tools_editing_tool_construct (GType object_type, const gchar* name) {
+ EditingToolsEditingTool* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsEditingTool*) g_type_create_instance (object_type);
+#line 490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = name;
+#line 490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (self->name);
+#line 490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->name = _tmp1_;
+#line 489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 4334 "EditingTools.c"
+}
+
+
+static gpointer _editing_tools_photo_canvas_ref0 (gpointer self) {
+#line 502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self ? editing_tools_photo_canvas_ref (self) : NULL;
+#line 4341 "EditingTools.c"
+}
+
+
+static gboolean _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
+ gboolean result;
+ result = editing_tools_editing_tool_on_keypress ((EditingToolsEditingTool*) self, event);
+#line 506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 4350 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_real_activate (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsEditingToolWindow* _tmp1_ = NULL;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ EditingToolsPhotoCanvas* _tmp3_ = NULL;
+ EditingToolsEditingToolWindow* _tmp4_ = NULL;
+ EditingToolsEditingToolWindow* _tmp5_ = NULL;
+#line 497 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->canvas;
+#line 499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_assert (_tmp0_ == NULL, "this.canvas == null");
+#line 500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->tool_window;
+#line 500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_assert (_tmp1_ == NULL, "tool_window == null");
+#line 502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = canvas;
+#line 502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _editing_tools_photo_canvas_ref0 (_tmp2_);
+#line 502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_photo_canvas_unref0 (self->canvas);
+#line 502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->canvas = _tmp3_;
+#line 504 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = editing_tools_editing_tool_get_tool_window (self);
+#line 504 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->tool_window);
+#line 504 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->tool_window = _tmp4_;
+#line 505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->tool_window;
+#line 505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_ != NULL) {
+#line 4389 "EditingTools.c"
+ EditingToolsEditingToolWindow* _tmp6_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->tool_window;
+#line 506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), "key-press-event", (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, self);
+#line 4395 "EditingTools.c"
+ }
+#line 508 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (self, "activated");
+#line 4399 "EditingTools.c"
+}
+
+
+void editing_tools_editing_tool_activate (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas) {
+#line 497 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
+#line 497 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->activate (self, canvas);
+#line 4408 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_real_deactivate (EditingToolsEditingTool* self) {
+ gboolean _tmp0_ = FALSE;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ EditingToolsEditingToolWindow* _tmp3_ = NULL;
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->canvas;
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_ == NULL) {
+#line 4420 "EditingTools.c"
+ EditingToolsEditingToolWindow* _tmp2_ = NULL;
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->tool_window;
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 4426 "EditingTools.c"
+ } else {
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = FALSE;
+#line 4430 "EditingTools.c"
+ }
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 4436 "EditingTools.c"
+ }
+#line 517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_photo_canvas_unref0 (self->canvas);
+#line 517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->canvas = NULL;
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->tool_window;
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp3_ != NULL) {
+#line 4446 "EditingTools.c"
+ EditingToolsEditingToolWindow* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 520 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->tool_window;
+#line 520 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("key-press-event", gtk_widget_get_type (), &_tmp5_, NULL, FALSE);
+#line 520 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, self);
+#line 521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->tool_window);
+#line 521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->tool_window = NULL;
+#line 4459 "EditingTools.c"
+ }
+#line 524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (self, "deactivated");
+#line 4463 "EditingTools.c"
+}
+
+
+void editing_tools_editing_tool_deactivate (EditingToolsEditingTool* self) {
+#line 512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
+#line 512 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->deactivate (self);
+#line 4472 "EditingTools.c"
+}
+
+
+gboolean editing_tools_editing_tool_is_activated (EditingToolsEditingTool* self) {
+ gboolean result = FALSE;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+#line 527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), FALSE);
+#line 528 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->canvas;
+#line 528 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp0_ != NULL;
+#line 528 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 4487 "EditingTools.c"
+}
+
+
+static EditingToolsEditingToolWindow* editing_tools_editing_tool_real_get_tool_window (EditingToolsEditingTool* self) {
+ EditingToolsEditingToolWindow* result = NULL;
+#line 532 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = NULL;
+#line 532 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 4497 "EditingTools.c"
+}
+
+
+EditingToolsEditingToolWindow* editing_tools_editing_tool_get_tool_window (EditingToolsEditingTool* self) {
+#line 531 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), NULL);
+#line 531 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->get_tool_window (self);
+#line 4506 "EditingTools.c"
+}
+
+
+static GdkPixbuf* editing_tools_editing_tool_real_get_display_pixbuf (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error) {
+ Dimensions _vala_max_dim = {0};
+ GdkPixbuf* result = NULL;
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 548 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dimensions_init (&_vala_max_dim, 0, 0);
+#line 550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = NULL;
+#line 550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (max_dim) {
+#line 550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *max_dim = _vala_max_dim;
+#line 4525 "EditingTools.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 4529 "EditingTools.c"
+}
+
+
+GdkPixbuf* editing_tools_editing_tool_get_display_pixbuf (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error) {
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), NULL);
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->get_display_pixbuf (self, scaling, photo, max_dim, error);
+#line 4538 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_real_on_left_click (EditingToolsEditingTool* self, gint x, gint y) {
+}
+
+
+void editing_tools_editing_tool_on_left_click (EditingToolsEditingTool* self, gint x, gint y) {
+#line 553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
+#line 553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_left_click (self, x, y);
+#line 4551 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_real_on_left_released (EditingToolsEditingTool* self, gint x, gint y) {
+}
+
+
+void editing_tools_editing_tool_on_left_released (EditingToolsEditingTool* self, gint x, gint y) {
+#line 556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
+#line 556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_left_released (self, x, y);
+#line 4564 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_real_on_motion (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask) {
+}
+
+
+void editing_tools_editing_tool_on_motion (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask) {
+#line 559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
+#line 559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_motion (self, x, y, mask);
+#line 4577 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_editing_tool_real_on_leave_notify_event (EditingToolsEditingTool* self) {
+ gboolean result = FALSE;
+#line 563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 4587 "EditingTools.c"
+}
+
+
+gboolean editing_tools_editing_tool_on_leave_notify_event (EditingToolsEditingTool* self) {
+#line 562 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), FALSE);
+#line 562 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_leave_notify_event (self);
+#line 4596 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_editing_tool_real_on_keypress (EditingToolsEditingTool* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+#line 566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = event;
+#line 568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (g_strcmp0 (_tmp2_, "Escape") == 0) {
+#line 569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_notify_cancel (self);
+#line 571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 4621 "EditingTools.c"
+ }
+#line 574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 4627 "EditingTools.c"
+}
+
+
+gboolean editing_tools_editing_tool_on_keypress (EditingToolsEditingTool* self, GdkEventKey* event) {
+#line 566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self), FALSE);
+#line 566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->on_keypress (self, event);
+#line 4636 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_real_paint (EditingToolsEditingTool* self, cairo_t* ctx) {
+#line 577 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 4643 "EditingTools.c"
+}
+
+
+void editing_tools_editing_tool_paint (EditingToolsEditingTool* self, cairo_t* ctx) {
+#line 577 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
+#line 577 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->paint (self, ctx);
+#line 4652 "EditingTools.c"
+}
+
+
+void editing_tools_editing_tool_notify_cancel (EditingToolsEditingTool* self) {
+#line 581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_EDITING_TOOL (self));
+#line 582 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (self, "cancelled");
+#line 4661 "EditingTools.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOXED_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_BOXED_BOOLEAN) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer arg_3, gboolean arg_4, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT_BOXED_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (n_param_values == 5);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data1 = closure->data;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 4680 "EditingTools.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ data2 = closure->data;
+#line 4686 "EditingTools.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT_BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), g_value_get_boxed (param_values + 3), g_value_get_boolean (param_values + 4), data2);
+#line 4692 "EditingTools.c"
+}
+
+
+static void editing_tools_value_editing_tool_init (GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4699 "EditingTools.c"
+}
+
+
+static void editing_tools_value_editing_tool_free_value (GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (value->data[0].v_pointer) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_unref (value->data[0].v_pointer);
+#line 4708 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_value_editing_tool_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (src_value->data[0].v_pointer) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dest_value->data[0].v_pointer = editing_tools_editing_tool_ref (src_value->data[0].v_pointer);
+#line 4718 "EditingTools.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 4722 "EditingTools.c"
+ }
+}
+
+
+static gpointer editing_tools_value_editing_tool_peek_pointer (const GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return value->data[0].v_pointer;
+#line 4730 "EditingTools.c"
+}
+
+
+static gchar* editing_tools_value_editing_tool_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (collect_values[0].v_pointer) {
+#line 4737 "EditingTools.c"
+ EditingToolsEditingTool* object;
+ object = collect_values[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4744 "EditingTools.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 4748 "EditingTools.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = editing_tools_editing_tool_ref (object);
+#line 4752 "EditingTools.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4756 "EditingTools.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 4760 "EditingTools.c"
+}
+
+
+static gchar* editing_tools_value_editing_tool_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ EditingToolsEditingTool** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!object_p) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 4771 "EditingTools.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!value->data[0].v_pointer) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = NULL;
+#line 4777 "EditingTools.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = value->data[0].v_pointer;
+#line 4781 "EditingTools.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = editing_tools_editing_tool_ref (value->data[0].v_pointer);
+#line 4785 "EditingTools.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 4789 "EditingTools.c"
+}
+
+
+GParamSpec* editing_tools_param_spec_editing_tool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ EditingToolsParamSpecEditingTool* spec;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_TYPE_EDITING_TOOL), NULL);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return G_PARAM_SPEC (spec);
+#line 4803 "EditingTools.c"
+}
+
+
+gpointer editing_tools_value_get_editing_tool (const GValue* value) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_EDITING_TOOL), NULL);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return value->data[0].v_pointer;
+#line 4812 "EditingTools.c"
+}
+
+
+void editing_tools_value_set_editing_tool (GValue* value, gpointer v_object) {
+ EditingToolsEditingTool* old;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_EDITING_TOOL));
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old = value->data[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (v_object) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_EDITING_TOOL));
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = v_object;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_ref (value->data[0].v_pointer);
+#line 4832 "EditingTools.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4836 "EditingTools.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (old) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_unref (old);
+#line 4842 "EditingTools.c"
+ }
+}
+
+
+void editing_tools_value_take_editing_tool (GValue* value, gpointer v_object) {
+ EditingToolsEditingTool* old;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_TYPE_EDITING_TOOL));
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old = value->data[0].v_pointer;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (v_object) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_TYPE_EDITING_TOOL));
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = v_object;
+#line 4861 "EditingTools.c"
+ } else {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 4865 "EditingTools.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (old) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_unref (old);
+#line 4871 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_editing_tool_class_init (EditingToolsEditingToolClass * klass) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_parent_class = g_type_class_peek_parent (klass);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_editing_tool_finalize;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsEditingToolPrivate));
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->activate = editing_tools_editing_tool_real_activate;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->deactivate = editing_tools_editing_tool_real_deactivate;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_tool_window = editing_tools_editing_tool_real_get_tool_window;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_display_pixbuf = editing_tools_editing_tool_real_get_display_pixbuf;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_click = editing_tools_editing_tool_real_on_left_click;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_released = editing_tools_editing_tool_real_on_left_released;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_motion = editing_tools_editing_tool_real_on_motion;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_leave_notify_event = editing_tools_editing_tool_real_on_leave_notify_event;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_keypress = editing_tools_editing_tool_real_on_keypress;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->paint = editing_tools_editing_tool_real_paint;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_new ("activated", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_new ("deactivated", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_new ("applied", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT_BOXED_BOOLEAN, G_TYPE_NONE, 4, TYPE_COMMAND, GDK_TYPE_PIXBUF, TYPE_DIMENSIONS, G_TYPE_BOOLEAN);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_new ("cancelled", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_new ("aborted", EDITING_TOOLS_TYPE_EDITING_TOOL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 4913 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_instance_init (EditingToolsEditingTool * self) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_EDITING_TOOL_GET_PRIVATE (self);
+#line 469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->canvas = NULL;
+#line 471 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->tool_window = NULL;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->ref_count = 1;
+#line 4926 "EditingTools.c"
+}
+
+
+static void editing_tools_editing_tool_finalize (EditingToolsEditingTool* obj) {
+ EditingToolsEditingTool * self;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_destroy (self);
+#line 469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_photo_canvas_unref0 (self->canvas);
+#line 471 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->tool_window);
+#line 472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->surface);
+#line 473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (self->name);
+#line 4944 "EditingTools.c"
+}
+
+
+GType editing_tools_editing_tool_get_type (void) {
+ static volatile gsize editing_tools_editing_tool_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_editing_tool_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { editing_tools_value_editing_tool_init, editing_tools_value_editing_tool_free_value, editing_tools_value_editing_tool_copy_value, editing_tools_value_editing_tool_peek_pointer, "p", editing_tools_value_editing_tool_collect_value, "p", editing_tools_value_editing_tool_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsEditingToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_editing_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsEditingTool), 0, (GInstanceInitFunc) editing_tools_editing_tool_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType editing_tools_editing_tool_type_id;
+ editing_tools_editing_tool_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsEditingTool", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&editing_tools_editing_tool_type_id__volatile, editing_tools_editing_tool_type_id);
+ }
+ return editing_tools_editing_tool_type_id__volatile;
+}
+
+
+gpointer editing_tools_editing_tool_ref (gpointer instance) {
+ EditingToolsEditingTool* self;
+ self = instance;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return instance;
+#line 4969 "EditingTools.c"
+}
+
+
+void editing_tools_editing_tool_unref (gpointer instance) {
+ EditingToolsEditingTool* self;
+ self = instance;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_GET_CLASS (self)->finalize (self);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 4982 "EditingTools.c"
+ }
+}
+
+
+static EditingToolsCropToolReticleOrientation editing_tools_crop_tool_reticle_orientation_toggle (EditingToolsCropToolReticleOrientation self) {
+ EditingToolsCropToolReticleOrientation result = 0;
+ EditingToolsCropToolReticleOrientation _tmp0_ = 0;
+#line 636 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (self == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE) {
+#line 636 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT;
+#line 4994 "EditingTools.c"
+ } else {
+#line 637 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
+#line 4998 "EditingTools.c"
+ }
+#line 636 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp0_;
+#line 636 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 5004 "EditingTools.c"
+}
+
+
+static GType editing_tools_crop_tool_reticle_orientation_get_type (void) {
+ static volatile gsize editing_tools_crop_tool_reticle_orientation_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_crop_tool_reticle_orientation_type_id__volatile)) {
+ static const GEnumValue values[] = {{EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE, "EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE", "landscape"}, {EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT, "EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT", "portrait"}, {0, NULL, NULL}};
+ GType editing_tools_crop_tool_reticle_orientation_type_id;
+ editing_tools_crop_tool_reticle_orientation_type_id = g_enum_register_static ("EditingToolsCropToolReticleOrientation", values);
+ g_once_init_leave (&editing_tools_crop_tool_reticle_orientation_type_id__volatile, editing_tools_crop_tool_reticle_orientation_type_id);
+ }
+ return editing_tools_crop_tool_reticle_orientation_type_id__volatile;
+}
+
+
+static GType editing_tools_crop_tool_constraint_mode_get_type (void) {
+ static volatile gsize editing_tools_crop_tool_constraint_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_crop_tool_constraint_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL, "EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL", "normal"}, {EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM, "EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM", "custom"}, {0, NULL, NULL}};
+ GType editing_tools_crop_tool_constraint_mode_type_id;
+ editing_tools_crop_tool_constraint_mode_type_id = g_enum_register_static ("EditingToolsCropToolConstraintMode", values);
+ g_once_init_leave (&editing_tools_crop_tool_constraint_mode_type_id__volatile, editing_tools_crop_tool_constraint_mode_type_id);
+ }
+ return editing_tools_crop_tool_constraint_mode_type_id__volatile;
+}
+
+
+static EditingToolsCropTool* editing_tools_crop_tool_construct (GType object_type) {
+ EditingToolsCropTool* self = NULL;
+#line 737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsCropTool*) editing_tools_editing_tool_construct (object_type, "CropTool");
+#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 5038 "EditingTools.c"
+}
+
+
+static EditingToolsCropTool* editing_tools_crop_tool_new (void) {
+#line 736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_crop_tool_construct (EDITING_TOOLS_TYPE_CROP_TOOL);
+#line 5045 "EditingTools.c"
+}
+
+
+EditingToolsCropTool* editing_tools_crop_tool_factory (void) {
+ EditingToolsCropTool* result = NULL;
+ EditingToolsCropTool* _tmp0_ = NULL;
+#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_crop_tool_new ();
+#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp0_;
+#line 741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 5058 "EditingTools.c"
+}
+
+
+gboolean editing_tools_crop_tool_is_available (Photo* photo, Scaling* scaling) {
+ gboolean result = FALSE;
+ Dimensions dim = {0};
+ Photo* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = photo;
+#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_get_original_dimensions (_tmp0_, &_tmp1_);
+#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaling_get_scaled_dimensions (scaling, &_tmp1_, &_tmp2_);
+#line 745 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dim = _tmp2_;
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = dim;
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.width;
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_ > EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
+#line 5089 "EditingTools.c"
+ Dimensions _tmp6_ = {0};
+ gint _tmp7_ = 0;
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = dim;
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.height;
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp7_ > EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
+#line 5098 "EditingTools.c"
+ } else {
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = FALSE;
+#line 5102 "EditingTools.c"
+ }
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp3_;
+#line 747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 5108 "EditingTools.c"
+}
+
+
+static void _vala_array_add4 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5119 "EditingTools.c"
+ }
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5125 "EditingTools.c"
+}
+
+
+static void _vala_array_add5 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5136 "EditingTools.c"
+ }
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5142 "EditingTools.c"
+}
+
+
+static void _vala_array_add6 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5153 "EditingTools.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5159 "EditingTools.c"
+}
+
+
+static void _vala_array_add7 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5170 "EditingTools.c"
+ }
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5176 "EditingTools.c"
+}
+
+
+static void _vala_array_add8 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5187 "EditingTools.c"
+ }
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5193 "EditingTools.c"
+}
+
+
+static void _vala_array_add9 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5204 "EditingTools.c"
+ }
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5210 "EditingTools.c"
+}
+
+
+static void _vala_array_add10 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5221 "EditingTools.c"
+ }
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5227 "EditingTools.c"
+}
+
+
+static void _vala_array_add11 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5238 "EditingTools.c"
+ }
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5244 "EditingTools.c"
+}
+
+
+static void _vala_array_add12 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5255 "EditingTools.c"
+ }
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5261 "EditingTools.c"
+}
+
+
+static void _vala_array_add13 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5272 "EditingTools.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5278 "EditingTools.c"
+}
+
+
+static void _vala_array_add14 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5289 "EditingTools.c"
+ }
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5295 "EditingTools.c"
+}
+
+
+static void _vala_array_add15 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5306 "EditingTools.c"
+ }
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5312 "EditingTools.c"
+}
+
+
+static void _vala_array_add16 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5323 "EditingTools.c"
+ }
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5329 "EditingTools.c"
+}
+
+
+static void _vala_array_add17 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5340 "EditingTools.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5346 "EditingTools.c"
+}
+
+
+static void _vala_array_add18 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5357 "EditingTools.c"
+ }
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5363 "EditingTools.c"
+}
+
+
+static void _vala_array_add19 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5374 "EditingTools.c"
+ }
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5380 "EditingTools.c"
+}
+
+
+static void _vala_array_add20 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5391 "EditingTools.c"
+ }
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5397 "EditingTools.c"
+}
+
+
+static void _vala_array_add21 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5408 "EditingTools.c"
+ }
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5414 "EditingTools.c"
+}
+
+
+static void _vala_array_add22 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5425 "EditingTools.c"
+ }
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5431 "EditingTools.c"
+}
+
+
+static void _vala_array_add23 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5442 "EditingTools.c"
+ }
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5448 "EditingTools.c"
+}
+
+
+static void _vala_array_add24 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5459 "EditingTools.c"
+ }
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5465 "EditingTools.c"
+}
+
+
+static void _vala_array_add25 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5476 "EditingTools.c"
+ }
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5482 "EditingTools.c"
+}
+
+
+static void _vala_array_add26 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5493 "EditingTools.c"
+ }
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5499 "EditingTools.c"
+}
+
+
+static void _vala_array_add27 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5510 "EditingTools.c"
+ }
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5516 "EditingTools.c"
+}
+
+
+static void _vala_array_add28 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5527 "EditingTools.c"
+ }
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5533 "EditingTools.c"
+}
+
+
+static void _vala_array_add29 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5544 "EditingTools.c"
+ }
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5550 "EditingTools.c"
+}
+
+
+static void _vala_array_add30 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5561 "EditingTools.c"
+ }
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5567 "EditingTools.c"
+}
+
+
+static void _vala_array_add31 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5578 "EditingTools.c"
+ }
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5584 "EditingTools.c"
+}
+
+
+static void _vala_array_add32 (EditingToolsCropToolConstraintDescription*** array, int* length, int* size, EditingToolsCropToolConstraintDescription* value) {
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((*length) == (*size)) {
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *array = g_renew (EditingToolsCropToolConstraintDescription*, *array, (*size) + 1);
+#line 5595 "EditingTools.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[(*length)++] = value;
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*array)[*length] = NULL;
+#line 5601 "EditingTools.c"
+}
+
+
+static EditingToolsCropToolConstraintDescription** editing_tools_crop_tool_create_constraints (int* result_length1) {
+ EditingToolsCropToolConstraintDescription** result = NULL;
+ EditingToolsCropToolConstraintDescription** _result_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp0_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ EditingToolsCropToolConstraintDescription** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp3_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ const gchar* _tmp5_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp6_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ const gchar* _tmp8_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp9_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ const gchar* _tmp11_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp12_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ const gchar* _tmp14_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp15_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ const gchar* _tmp17_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp18_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ const gchar* _tmp20_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp21_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ const gchar* _tmp23_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp24_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ const gchar* _tmp26_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp27_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ const gchar* _tmp29_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp30_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp31_ = NULL;
+ gint _tmp31__length1 = 0;
+ const gchar* _tmp32_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp33_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ const gchar* _tmp35_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp36_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ const gchar* _tmp38_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp39_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ const gchar* _tmp41_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp42_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ const gchar* _tmp44_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp45_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp46_ = NULL;
+ gint _tmp46__length1 = 0;
+ const gchar* _tmp47_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp48_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ const gchar* _tmp50_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp51_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ const gchar* _tmp53_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp54_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ const gchar* _tmp56_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp57_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp58_ = NULL;
+ gint _tmp58__length1 = 0;
+ const gchar* _tmp59_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp60_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp61_ = NULL;
+ gint _tmp61__length1 = 0;
+ const gchar* _tmp62_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp63_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ const gchar* _tmp65_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp66_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp67_ = NULL;
+ gint _tmp67__length1 = 0;
+ const gchar* _tmp68_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp69_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp70_ = NULL;
+ gint _tmp70__length1 = 0;
+ const gchar* _tmp71_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp72_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp73_ = NULL;
+ gint _tmp73__length1 = 0;
+ const gchar* _tmp74_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp75_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp76_ = NULL;
+ gint _tmp76__length1 = 0;
+ const gchar* _tmp77_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp78_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp79_ = NULL;
+ gint _tmp79__length1 = 0;
+ const gchar* _tmp80_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp81_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp82_ = NULL;
+ gint _tmp82__length1 = 0;
+ const gchar* _tmp83_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp84_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp85_ = NULL;
+ gint _tmp85__length1 = 0;
+ const gchar* _tmp86_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp87_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp88_ = NULL;
+ gint _tmp88__length1 = 0;
+#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = g_new0 (EditingToolsCropToolConstraintDescription*, 0 + 1);
+#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp0_;
+#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result__length1 = 0;
+#line 751 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ __result__size_ = _result__length1;
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _result_;
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1__length1 = _result__length1;
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _ ("Unconstrained");
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_crop_tool_constraint_description_new (_tmp2_, 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO);
+#line 753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add4 (&_result_, &_result__length1, &__result__size_, _tmp3_);
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _result_;
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4__length1 = _result__length1;
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _ ("Square");
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = editing_tools_crop_tool_constraint_description_new (_tmp5_, 1, 1, FALSE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 754 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add5 (&_result_, &_result__length1, &__result__size_, _tmp6_);
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _result_;
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7__length1 = _result__length1;
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _ ("Screen");
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = editing_tools_crop_tool_constraint_description_new (_tmp8_, 0, 0, TRUE, EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO);
+#line 755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add6 (&_result_, &_result__length1, &__result__size_, _tmp9_);
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _result_;
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10__length1 = _result__length1;
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _ ("Original Size");
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = editing_tools_crop_tool_constraint_description_new (_tmp11_, 0, 0, TRUE, EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO);
+#line 756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add7 (&_result_, &_result__length1, &__result__size_, _tmp12_);
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _result_;
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13__length1 = _result__length1;
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _ ("-");
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = editing_tools_crop_tool_constraint_description_new (_tmp14_, 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
+#line 757 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add8 (&_result_, &_result__length1, &__result__size_, _tmp15_);
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _result_;
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16__length1 = _result__length1;
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _ ("SD Video (4 : 3)");
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = editing_tools_crop_tool_constraint_description_new (_tmp17_, 4, 3, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add9 (&_result_, &_result__length1, &__result__size_, _tmp18_);
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _result_;
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19__length1 = _result__length1;
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _ ("HD Video (16 : 9)");
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = editing_tools_crop_tool_constraint_description_new (_tmp20_, 16, 9, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add10 (&_result_, &_result__length1, &__result__size_, _tmp21_);
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _result_;
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22__length1 = _result__length1;
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _ ("-");
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = editing_tools_crop_tool_constraint_description_new (_tmp23_, 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
+#line 760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add11 (&_result_, &_result__length1, &__result__size_, _tmp24_);
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _result_;
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25__length1 = _result__length1;
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _ ("Wallet (2 x 3 in.)");
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = editing_tools_crop_tool_constraint_description_new (_tmp26_, 3, 2, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 761 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add12 (&_result_, &_result__length1, &__result__size_, _tmp27_);
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = _result_;
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28__length1 = _result__length1;
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = _ ("Notecard (3 x 5 in.)");
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = editing_tools_crop_tool_constraint_description_new (_tmp29_, 5, 3, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add13 (&_result_, &_result__length1, &__result__size_, _tmp30_);
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = _result_;
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31__length1 = _result__length1;
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = _ ("4 x 6 in.");
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = editing_tools_crop_tool_constraint_description_new (_tmp32_, 6, 4, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add14 (&_result_, &_result__length1, &__result__size_, _tmp33_);
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _result_;
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34__length1 = _result__length1;
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = _ ("5 x 7 in.");
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = editing_tools_crop_tool_constraint_description_new (_tmp35_, 7, 5, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 764 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add15 (&_result_, &_result__length1, &__result__size_, _tmp36_);
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = _result_;
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37__length1 = _result__length1;
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = _ ("8 x 10 in.");
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = editing_tools_crop_tool_constraint_description_new (_tmp38_, 10, 8, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add16 (&_result_, &_result__length1, &__result__size_, _tmp39_);
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = _result_;
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40__length1 = _result__length1;
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = _ ("Letter (8.5 x 11 in.)");
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = editing_tools_crop_tool_constraint_description_new (_tmp41_, 85, 110, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add17 (&_result_, &_result__length1, &__result__size_, _tmp42_);
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = _result_;
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43__length1 = _result__length1;
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = _ ("11 x 14 in.");
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = editing_tools_crop_tool_constraint_description_new (_tmp44_, 14, 11, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add18 (&_result_, &_result__length1, &__result__size_, _tmp45_);
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = _result_;
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46__length1 = _result__length1;
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = _ ("Tabloid (11 x 17 in.)");
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = editing_tools_crop_tool_constraint_description_new (_tmp47_, 17, 11, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add19 (&_result_, &_result__length1, &__result__size_, _tmp48_);
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49_ = _result_;
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49__length1 = _result__length1;
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = _ ("16 x 20 in.");
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = editing_tools_crop_tool_constraint_description_new (_tmp50_, 20, 16, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add20 (&_result_, &_result__length1, &__result__size_, _tmp51_);
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = _result_;
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52__length1 = _result__length1;
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = _ ("-");
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = editing_tools_crop_tool_constraint_description_new (_tmp53_, 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
+#line 770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add21 (&_result_, &_result__length1, &__result__size_, _tmp54_);
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = _result_;
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55__length1 = _result__length1;
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = _ ("Metric Wallet (9 x 13 cm)");
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = editing_tools_crop_tool_constraint_description_new (_tmp56_, 13, 9, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add22 (&_result_, &_result__length1, &__result__size_, _tmp57_);
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = _result_;
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58__length1 = _result__length1;
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = _ ("Postcard (10 x 15 cm)");
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = editing_tools_crop_tool_constraint_description_new (_tmp59_, 15, 10, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add23 (&_result_, &_result__length1, &__result__size_, _tmp60_);
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = _result_;
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61__length1 = _result__length1;
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp62_ = _ ("13 x 18 cm");
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp63_ = editing_tools_crop_tool_constraint_description_new (_tmp62_, 18, 13, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add24 (&_result_, &_result__length1, &__result__size_, _tmp63_);
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp64_ = _result_;
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp64__length1 = _result__length1;
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp65_ = _ ("18 x 24 cm");
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp66_ = editing_tools_crop_tool_constraint_description_new (_tmp65_, 24, 18, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add25 (&_result_, &_result__length1, &__result__size_, _tmp66_);
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67_ = _result_;
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67__length1 = _result__length1;
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp68_ = _ ("A4 (210 x 297 mm)");
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp69_ = editing_tools_crop_tool_constraint_description_new (_tmp68_, 210, 297, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add26 (&_result_, &_result__length1, &__result__size_, _tmp69_);
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp70_ = _result_;
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp70__length1 = _result__length1;
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp71_ = _ ("20 x 30 cm");
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp72_ = editing_tools_crop_tool_constraint_description_new (_tmp71_, 30, 20, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add27 (&_result_, &_result__length1, &__result__size_, _tmp72_);
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp73_ = _result_;
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp73__length1 = _result__length1;
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp74_ = _ ("24 x 40 cm");
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp75_ = editing_tools_crop_tool_constraint_description_new (_tmp74_, 40, 24, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 777 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add28 (&_result_, &_result__length1, &__result__size_, _tmp75_);
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp76_ = _result_;
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp76__length1 = _result__length1;
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp77_ = _ ("30 x 40 cm");
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp78_ = editing_tools_crop_tool_constraint_description_new (_tmp77_, 40, 30, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add29 (&_result_, &_result__length1, &__result__size_, _tmp78_);
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp79_ = _result_;
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp79__length1 = _result__length1;
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp80_ = _ ("A3 (297 x 420 mm)");
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp81_ = editing_tools_crop_tool_constraint_description_new (_tmp80_, 420, 297, TRUE, EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS);
+#line 779 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add30 (&_result_, &_result__length1, &__result__size_, _tmp81_);
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp82_ = _result_;
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp82__length1 = _result__length1;
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp83_ = _ ("-");
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp84_ = editing_tools_crop_tool_constraint_description_new (_tmp83_, 0, 0, FALSE, EDITING_TOOLS_CROP_TOOL_SEPARATOR);
+#line 780 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add31 (&_result_, &_result__length1, &__result__size_, _tmp84_);
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp85_ = _result_;
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp85__length1 = _result__length1;
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp86_ = _ ("Custom");
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp87_ = editing_tools_crop_tool_constraint_description_new (_tmp86_, 0, 0, TRUE, EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO);
+#line 781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_array_add32 (&_result_, &_result__length1, &__result__size_, _tmp87_);
+#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp88_ = _result_;
+#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp88__length1 = _result__length1;
+#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (result_length1) {
+#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result_length1 = _tmp88__length1;
+#line 6035 "EditingTools.c"
+ }
+#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp88_;
+#line 783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 6041 "EditingTools.c"
+}
+
+
+static gpointer _editing_tools_crop_tool_constraint_description_ref0 (gpointer self) {
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self ? editing_tools_crop_tool_constraint_description_ref (self) : NULL;
+#line 6048 "EditingTools.c"
+}
+
+
+static GtkListStore* editing_tools_crop_tool_create_constraint_list (EditingToolsCropToolConstraintDescription** constraint_data, int constraint_data_length1) {
+ GtkListStore* result = NULL;
+ GtkListStore* _result_ = NULL;
+ GtkListStore* _tmp0_ = NULL;
+ GtkTreeIter iter = {0};
+ EditingToolsCropToolConstraintDescription** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = gtk_list_store_new (1, G_TYPE_STRING, G_TYPE_STRING, -1);
+#line 787 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp0_;
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = constraint_data;
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1__length1 = constraint_data_length1;
+#line 6067 "EditingTools.c"
+ {
+ EditingToolsCropToolConstraintDescription** constraint_collection = NULL;
+ gint constraint_collection_length1 = 0;
+ gint _constraint_collection_size_ = 0;
+ gint constraint_it = 0;
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ constraint_collection = _tmp1_;
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ constraint_collection_length1 = _tmp1__length1;
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ for (constraint_it = 0; constraint_it < _tmp1__length1; constraint_it = constraint_it + 1) {
+#line 6079 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription* _tmp2_ = NULL;
+ EditingToolsCropToolConstraintDescription* constraint = NULL;
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _editing_tools_crop_tool_constraint_description_ref0 (constraint_collection[constraint_it]);
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ constraint = _tmp2_;
+#line 6086 "EditingTools.c"
+ {
+ GtkListStore* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+ GtkListStore* _tmp5_ = NULL;
+ GtkTreeIter _tmp6_ = {0};
+ EditingToolsCropToolConstraintDescription* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GValue _tmp9_ = {0};
+#line 791 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _result_;
+#line 791 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_list_store_append (_tmp3_, &_tmp4_);
+#line 791 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ iter = _tmp4_;
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _result_;
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = iter;
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = constraint;
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_->name;
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_value_init (&_tmp9_, G_TYPE_STRING);
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_value_set_string (&_tmp9_, _tmp8_);
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_list_store_set_value (_tmp5_, &_tmp6_, 0, &_tmp9_);
+#line 792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_IS_VALUE (&_tmp9_) ? (g_value_unset (&_tmp9_), NULL) : NULL;
+#line 790 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (constraint);
+#line 6119 "EditingTools.c"
+ }
+ }
+ }
+#line 795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _result_;
+#line 795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 6127 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_update_pivot_button_state (EditingToolsCropTool* self) {
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp2_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->pivot_reticle_button;
+#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = editing_tools_crop_tool_get_selected_constraint (self);
+#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_->is_pivotable;
+#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), _tmp4_);
+#line 799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (_tmp3_);
+#line 6153 "EditingTools.c"
+}
+
+
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_get_selected_constraint (EditingToolsCropTool* self) {
+ EditingToolsCropToolConstraintDescription* result = NULL;
+ EditingToolsCropToolConstraintDescription* _result_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ EditingToolsCropToolCropToolWindow* _tmp1_ = NULL;
+ GtkComboBox* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ EditingToolsCropToolConstraintDescription* _tmp4_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp5_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp6_ = NULL;
+ gfloat _tmp7_ = 0.0F;
+#line 803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), NULL);
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->constraints;
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0__length1 = self->priv->constraints_length1;
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->crop_tool_window;
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->constraint_combo;
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = gtk_combo_box_get_active (_tmp2_);
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp0_[_tmp3_];
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _editing_tools_crop_tool_constraint_description_ref0 (_tmp4_);
+#line 804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp5_;
+#line 806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _result_;
+#line 806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_->aspect_ratio;
+#line 806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp7_ == EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO) {
+#line 6193 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription* _tmp8_ = NULL;
+ EditingToolsPhotoCanvas* _tmp9_ = NULL;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ EditingToolsCropToolConstraintDescription* _tmp12_ = NULL;
+ EditingToolsPhotoCanvas* _tmp13_ = NULL;
+ GdkRectangle _tmp14_ = {0};
+ gint _tmp15_ = 0;
+#line 807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _result_;
+#line 807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp9_, &_tmp10_);
+#line 807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.width;
+#line 807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_->basis_width = _tmp11_;
+#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _result_;
+#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp13_, &_tmp14_);
+#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_.height;
+#line 808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_->basis_height = _tmp15_;
+#line 6222 "EditingTools.c"
+ } else {
+ EditingToolsCropToolConstraintDescription* _tmp16_ = NULL;
+ gfloat _tmp17_ = 0.0F;
+#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _result_;
+#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_->aspect_ratio;
+#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp17_ == EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO) {
+#line 6232 "EditingTools.c"
+ GdkScreen* screen = NULL;
+ GdkScreen* _tmp18_ = NULL;
+ GdkScreen* _tmp19_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp20_ = NULL;
+ GdkScreen* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ EditingToolsCropToolConstraintDescription* _tmp23_ = NULL;
+ GdkScreen* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+#line 810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = gdk_screen_get_default ();
+#line 810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _g_object_ref0 (_tmp18_);
+#line 810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ screen = _tmp19_;
+#line 811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _result_;
+#line 811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = screen;
+#line 811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = gdk_screen_get_width (_tmp21_);
+#line 811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_->basis_width = _tmp22_;
+#line 812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _result_;
+#line 812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = screen;
+#line 812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = gdk_screen_get_height (_tmp24_);
+#line 812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_->basis_height = _tmp25_;
+#line 809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (screen);
+#line 6266 "EditingTools.c"
+ }
+ }
+#line 815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _result_;
+#line 815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 6273 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_crop_tool_on_width_entry_focus_out (EditingToolsCropTool* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp1_ = NULL;
+ GtkEntry* _tmp2_ = NULL;
+ GtkEntry* _tmp3_ = NULL;
+ GdkEventFocus* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
+#line 818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->crop_tool_window;
+#line 819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->custom_width_entry;
+#line 819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp0_->most_recently_edited);
+#line 819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_->most_recently_edited = _tmp3_;
+#line 820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = event;
+#line 820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = editing_tools_crop_tool_on_custom_entry_focus_out (self, _tmp4_);
+#line 820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp5_;
+#line 820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 6309 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_crop_tool_on_height_entry_focus_out (EditingToolsCropTool* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp1_ = NULL;
+ GtkEntry* _tmp2_ = NULL;
+ GtkEntry* _tmp3_ = NULL;
+ GdkEventFocus* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
+#line 823 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->crop_tool_window;
+#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->custom_height_entry;
+#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp0_->most_recently_edited);
+#line 824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_->most_recently_edited = _tmp3_;
+#line 825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = event;
+#line 825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = editing_tools_crop_tool_on_custom_entry_focus_out (self, _tmp4_);
+#line 825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp5_;
+#line 825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 6345 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_crop_tool_on_custom_entry_focus_out (EditingToolsCropTool* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+ gint width = 0;
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint height = 0;
+ EditingToolsCropToolCropToolWindow* _tmp5_ = NULL;
+ GtkEntry* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp16_ = 0;
+ gboolean _tmp22_ = FALSE;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gfloat _tmp29_ = 0.0F;
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+ Box new_crop = {0};
+ Box _tmp65_ = {0};
+ Box _tmp66_ = {0};
+ Box _tmp67_ = {0};
+ Box _tmp68_ = {0};
+ EditingToolsPhotoCanvas* _tmp69_ = NULL;
+ Box _tmp70_ = {0};
+ EditingToolsPhotoCanvas* _tmp71_ = NULL;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+#line 828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
+#line 828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->custom_width_entry;
+#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_entry_get_text (_tmp1_);
+#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = atoi (_tmp3_);
+#line 829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width = _tmp4_;
+#line 830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->crop_tool_window;
+#line 830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->custom_height_entry;
+#line 830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = gtk_entry_get_text (_tmp6_);
+#line 830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_;
+#line 830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = atoi (_tmp8_);
+#line 830 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height = _tmp9_;
+#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = width;
+#line 832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp10_ < 1) {
+#line 6415 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp11_ = NULL;
+ GtkEntry* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width = 1;
+#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->crop_tool_window;
+#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_->custom_width_entry;
+#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = width;
+#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = g_strdup_printf ("%d", _tmp13_);
+#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_;
+#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp12_, _tmp15_);
+#line 834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp15_);
+#line 6437 "EditingTools.c"
+ }
+#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = height;
+#line 837 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp16_ < 1) {
+#line 6443 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp17_ = NULL;
+ GtkEntry* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 838 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height = 1;
+#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->crop_tool_window;
+#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_->custom_height_entry;
+#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = height;
+#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = g_strdup_printf ("%d", _tmp19_);
+#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _tmp20_;
+#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp18_, _tmp21_);
+#line 839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp21_);
+#line 6465 "EditingTools.c"
+ }
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = width;
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->custom_width;
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp23_ == _tmp24_) {
+#line 6473 "EditingTools.c"
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = height;
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = self->priv->custom_height;
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp25_ == _tmp26_;
+#line 6482 "EditingTools.c"
+ } else {
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = FALSE;
+#line 6486 "EditingTools.c"
+ }
+#line 842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp22_) {
+#line 843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 6494 "EditingTools.c"
+ }
+#line 845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = width;
+#line 845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = height;
+#line 845 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_aspect_ratio = ((gfloat) _tmp27_) / ((gfloat) _tmp28_);
+#line 847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->priv->custom_aspect_ratio;
+#line 847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp29_ < EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO) {
+#line 6506 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp30_ = NULL;
+ GtkEntry* _tmp31_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp32_ = NULL;
+ GtkEntry* _tmp33_ = NULL;
+#line 848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = self->priv->crop_tool_window;
+#line 848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = _tmp30_->most_recently_edited;
+#line 848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = self->priv->crop_tool_window;
+#line 848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = _tmp32_->custom_height_entry;
+#line 848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp31_ == _tmp33_) {
+#line 6521 "EditingTools.c"
+ gint _tmp34_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp35_ = NULL;
+ GtkEntry* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+#line 849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = width;
+#line 849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height = (gint) (_tmp34_ / EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO);
+#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = self->priv->crop_tool_window;
+#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = _tmp35_->custom_height_entry;
+#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = height;
+#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = g_strdup_printf ("%d", _tmp37_);
+#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = _tmp38_;
+#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp36_, _tmp39_);
+#line 850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp39_);
+#line 6546 "EditingTools.c"
+ } else {
+ gint _tmp40_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp41_ = NULL;
+ GtkEntry* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+#line 852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = height;
+#line 852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width = (gint) (_tmp40_ * EDITING_TOOLS_CROP_TOOL_MIN_ASPECT_RATIO);
+#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = self->priv->crop_tool_window;
+#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = _tmp41_->custom_width_entry;
+#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = width;
+#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = g_strdup_printf ("%d", _tmp43_);
+#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = _tmp44_;
+#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp42_, _tmp45_);
+#line 853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp45_);
+#line 6572 "EditingTools.c"
+ }
+ } else {
+ gfloat _tmp46_ = 0.0F;
+#line 855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = self->priv->custom_aspect_ratio;
+#line 855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp46_ > EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO) {
+#line 6580 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp47_ = NULL;
+ GtkEntry* _tmp48_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp49_ = NULL;
+ GtkEntry* _tmp50_ = NULL;
+#line 856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = self->priv->crop_tool_window;
+#line 856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = _tmp47_->most_recently_edited;
+#line 856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49_ = self->priv->crop_tool_window;
+#line 856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = _tmp49_->custom_height_entry;
+#line 856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp48_ == _tmp50_) {
+#line 6595 "EditingTools.c"
+ gint _tmp51_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp52_ = NULL;
+ GtkEntry* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = width;
+#line 857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height = (gint) (_tmp51_ / EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO);
+#line 858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = self->priv->crop_tool_window;
+#line 858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = _tmp52_->custom_height_entry;
+#line 858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = height;
+#line 858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = g_strdup_printf ("%d", _tmp54_);
+#line 858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = _tmp55_;
+#line 858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp53_, _tmp56_);
+#line 858 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp56_);
+#line 6620 "EditingTools.c"
+ } else {
+ gint _tmp57_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp58_ = NULL;
+ GtkEntry* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+#line 860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = height;
+#line 860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width = (gint) (_tmp57_ * EDITING_TOOLS_CROP_TOOL_MAX_ASPECT_RATIO);
+#line 861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = self->priv->crop_tool_window;
+#line 861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = _tmp58_->custom_width_entry;
+#line 861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = width;
+#line 861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = g_strdup_printf ("%d", _tmp60_);
+#line 861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp62_ = _tmp61_;
+#line 861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp59_, _tmp62_);
+#line 861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp62_);
+#line 6646 "EditingTools.c"
+ }
+ }
+ }
+#line 865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp63_ = width;
+#line 865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp64_ = height;
+#line 865 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_aspect_ratio = ((gfloat) _tmp63_) / ((gfloat) _tmp64_);
+#line 867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp65_ = self->priv->scaled_crop;
+#line 867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constrain_crop (self, &_tmp65_, &_tmp66_);
+#line 867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_crop = _tmp66_;
+#line 869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67_ = new_crop;
+#line 869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_crop_resized (self, &_tmp67_);
+#line 870 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp68_ = new_crop;
+#line 870 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_crop = _tmp68_;
+#line 871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp69_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp70_ = new_crop;
+#line 871 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_invalidate_area (_tmp69_, &_tmp70_);
+#line 872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp71_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp71_);
+#line 874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp72_ = width;
+#line 874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_width = _tmp72_;
+#line 875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp73_ = height;
+#line 875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_height = _tmp73_;
+#line 877 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 877 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 6692 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_on_width_insert_text (EditingToolsCropTool* self, const gchar* text, gint length, gint* position) {
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (text != NULL);
+#line 881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->custom_width_entry;
+#line 881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = text;
+#line 881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = length;
+#line 881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_entry_insert_text (self, _tmp1_, _tmp2_, _tmp3_, position);
+#line 6715 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_on_height_insert_text (EditingToolsCropTool* self, const gchar* text, gint length, gint* position) {
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (text != NULL);
+#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->custom_height_entry;
+#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = text;
+#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = length;
+#line 885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_entry_insert_text (self, _tmp1_, _tmp2_, _tmp3_, position);
+#line 6738 "EditingTools.c"
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 6756 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_on_entry_insert_text (EditingToolsCropTool* self, GtkEntry* sender, const gchar* text, gint length, gint* position) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gchar* new_text = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ GtkEntry* _tmp29_ = NULL;
+#line 888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GTK_IS_ENTRY (sender));
+#line 888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (text != NULL);
+#line 889 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->entry_insert_in_progress;
+#line 889 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 6781 "EditingTools.c"
+ }
+#line 892 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->entry_insert_in_progress = TRUE;
+#line 894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = length;
+#line 894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_ == -1) {
+#line 6789 "EditingTools.c"
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = text;
+#line 895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = strlen (_tmp2_);
+#line 895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ length = (gint) _tmp4_;
+#line 6801 "EditingTools.c"
+ }
+#line 898 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = g_strdup ("");
+#line 898 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_text = _tmp5_;
+#line 6807 "EditingTools.c"
+ {
+ gint ctr = 0;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ctr = 0;
+#line 6812 "EditingTools.c"
+ {
+ gboolean _tmp6_ = FALSE;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = TRUE;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ while (TRUE) {
+#line 6819 "EditingTools.c"
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar _tmp12_ = '\0';
+ gboolean _tmp13_ = FALSE;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp6_) {
+#line 6828 "EditingTools.c"
+ gint _tmp7_ = 0;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = ctr;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ctr = _tmp7_ + 1;
+#line 6834 "EditingTools.c"
+ }
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = FALSE;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = ctr;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = length;
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!(_tmp8_ < _tmp9_)) {
+#line 899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 6846 "EditingTools.c"
+ }
+#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = text;
+#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = ctr;
+#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = string_get (_tmp10_, (glong) _tmp11_);
+#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = g_ascii_isdigit (_tmp12_);
+#line 900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp13_) {
+#line 6858 "EditingTools.c"
+ const gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gchar _tmp17_ = '\0';
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = new_text;
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = text;
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = ctr;
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = string_get (_tmp15_, (glong) _tmp16_);
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = g_strdup_printf ("%c", (gchar) _tmp17_);
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_;
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = g_strconcat (_tmp14_, _tmp19_, NULL);
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (new_text);
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_text = _tmp20_;
+#line 901 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp19_);
+#line 6886 "EditingTools.c"
+ }
+ }
+ }
+ }
+#line 905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = new_text;
+#line 905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = strlen (_tmp21_);
+#line 905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_;
+#line 905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp23_ > 0) {
+#line 6899 "EditingTools.c"
+ GtkEntry* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+#line 906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = sender;
+#line 906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = new_text;
+#line 906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = new_text;
+#line 906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = strlen (_tmp26_);
+#line 906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = _tmp27_;
+#line 906 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_editable_insert_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GTK_TYPE_EDITABLE, GtkEditable), _tmp25_, (gint) _tmp28_, position);
+#line 6917 "EditingTools.c"
+ }
+#line 908 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = sender;
+#line 908 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_stop_emission_by_name (_tmp29_, "insert-text");
+#line 910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->entry_insert_in_progress = FALSE;
+#line 888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (new_text);
+#line 6927 "EditingTools.c"
+}
+
+
+static gfloat editing_tools_crop_tool_get_constraint_aspect_ratio (EditingToolsCropTool* self) {
+ gfloat result = 0.0F;
+ gfloat _result_ = 0.0F;
+ EditingToolsCropToolConstraintDescription* _tmp0_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp1_ = NULL;
+ gfloat _tmp2_ = 0.0F;
+ gfloat _tmp3_ = 0.0F;
+ gfloat _tmp4_ = 0.0F;
+ EditingToolsCropToolReticleOrientation _tmp20_ = 0;
+#line 913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), 0.0F);
+#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_crop_tool_get_selected_constraint (self);
+#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_;
+#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->aspect_ratio;
+#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (_tmp1_);
+#line 914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp3_;
+#line 916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _result_;
+#line 916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp4_ == EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO) {
+#line 6958 "EditingTools.c"
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ EditingToolsPhotoCanvas* _tmp8_ = NULL;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp5_, &_tmp6_);
+#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.width;
+#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp8_, &_tmp9_);
+#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.height;
+#line 917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = ((gfloat) _tmp7_) / ((gfloat) _tmp10_);
+#line 6979 "EditingTools.c"
+ } else {
+ gfloat _tmp11_ = 0.0F;
+#line 919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _result_;
+#line 919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp11_ == EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO) {
+#line 6986 "EditingTools.c"
+ GdkScreen* screen = NULL;
+ GdkScreen* _tmp12_ = NULL;
+ GdkScreen* _tmp13_ = NULL;
+ GdkScreen* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ GdkScreen* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+#line 920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = gdk_screen_get_default ();
+#line 920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ screen = _tmp13_;
+#line 921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = screen;
+#line 921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = gdk_screen_get_width (_tmp14_);
+#line 921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = screen;
+#line 921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = gdk_screen_get_height (_tmp16_);
+#line 921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = ((gfloat) _tmp15_) / ((gfloat) _tmp17_);
+#line 919 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (screen);
+#line 7012 "EditingTools.c"
+ } else {
+ gfloat _tmp18_ = 0.0F;
+#line 922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _result_;
+#line 922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp18_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO) {
+#line 7019 "EditingTools.c"
+ gfloat _tmp19_ = 0.0F;
+#line 923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = self->priv->custom_aspect_ratio;
+#line 923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp19_;
+#line 7025 "EditingTools.c"
+ }
+ }
+ }
+#line 925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = self->priv->reticle_orientation;
+#line 925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp20_ == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT) {
+#line 7033 "EditingTools.c"
+ gfloat _tmp21_ = 0.0F;
+#line 926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _result_;
+#line 926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = 1.0f / _tmp21_;
+#line 7039 "EditingTools.c"
+ }
+#line 928 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _result_;
+#line 928 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 7045 "EditingTools.c"
+}
+
+
+static gfloat editing_tools_crop_tool_get_constraint_aspect_ratio_for_constraint (EditingToolsCropTool* self, EditingToolsCropToolConstraintDescription* constraint, Photo* photo) {
+ gfloat result = 0.0F;
+ gfloat _result_ = 0.0F;
+ EditingToolsCropToolConstraintDescription* _tmp0_ = NULL;
+ gfloat _tmp1_ = 0.0F;
+ gfloat _tmp2_ = 0.0F;
+ EditingToolsCropToolReticleOrientation _tmp18_ = 0;
+#line 931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), 0.0F);
+#line 931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION (constraint), 0.0F);
+#line 931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), 0.0F);
+#line 932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = constraint;
+#line 932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->aspect_ratio;
+#line 932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp1_;
+#line 934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _result_;
+#line 934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_ == EDITING_TOOLS_CROP_TOOL_ORIGINAL_ASPECT_RATIO) {
+#line 7072 "EditingTools.c"
+ Dimensions orig_dim = {0};
+ Photo* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = photo;
+#line 935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_get_original_dimensions (_tmp3_, &_tmp4_);
+#line 935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ orig_dim = _tmp4_;
+#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = orig_dim;
+#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.width;
+#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = orig_dim;
+#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.height;
+#line 936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = ((gfloat) _tmp6_) / ((gfloat) _tmp8_);
+#line 7096 "EditingTools.c"
+ } else {
+ gfloat _tmp9_ = 0.0F;
+#line 937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _result_;
+#line 937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp9_ == EDITING_TOOLS_CROP_TOOL_SCREEN_ASPECT_RATIO) {
+#line 7103 "EditingTools.c"
+ GdkScreen* screen = NULL;
+ GdkScreen* _tmp10_ = NULL;
+ GdkScreen* _tmp11_ = NULL;
+ GdkScreen* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ GdkScreen* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+#line 938 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = gdk_screen_get_default ();
+#line 938 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _g_object_ref0 (_tmp10_);
+#line 938 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ screen = _tmp11_;
+#line 939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = screen;
+#line 939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = gdk_screen_get_width (_tmp12_);
+#line 939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = screen;
+#line 939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = gdk_screen_get_height (_tmp14_);
+#line 939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = ((gfloat) _tmp13_) / ((gfloat) _tmp15_);
+#line 937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (screen);
+#line 7129 "EditingTools.c"
+ } else {
+ gfloat _tmp16_ = 0.0F;
+#line 940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _result_;
+#line 940 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp16_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO) {
+#line 7136 "EditingTools.c"
+ gfloat _tmp17_ = 0.0F;
+#line 941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->custom_aspect_ratio;
+#line 941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = _tmp17_;
+#line 7142 "EditingTools.c"
+ }
+ }
+ }
+#line 943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->reticle_orientation;
+#line 943 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp18_ == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_PORTRAIT) {
+#line 7150 "EditingTools.c"
+ gfloat _tmp19_ = 0.0F;
+#line 944 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _result_;
+#line 944 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_ = 1.0f / _tmp19_;
+#line 7156 "EditingTools.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _result_;
+#line 946 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 7162 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_constraint_changed (EditingToolsCropTool* self) {
+ EditingToolsCropToolConstraintDescription* selected_constraint = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp0_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp1_ = NULL;
+ gfloat _tmp2_ = 0.0F;
+ EditingToolsCropToolConstraintDescription* _tmp13_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ gfloat _tmp17_ = 0.0F;
+ gfloat _tmp18_ = 0.0F;
+#line 950 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_crop_tool_get_selected_constraint (self);
+#line 951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ selected_constraint = _tmp0_;
+#line 952 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = selected_constraint;
+#line 952 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->aspect_ratio;
+#line 952 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO) {
+#line 953 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_set_custom_constraint_mode (self);
+#line 7191 "EditingTools.c"
+ } else {
+ EditingToolsCropToolConstraintDescription* _tmp3_ = NULL;
+ gfloat _tmp4_ = 0.0F;
+#line 955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_set_normal_constraint_mode (self);
+#line 957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = selected_constraint;
+#line 957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_->aspect_ratio;
+#line 957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp4_ != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 7203 "EditingTools.c"
+ ConfigFacade* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ ConfigFacade* _tmp8_ = NULL;
+ ConfigFacade* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = config_facade_get_instance ();
+#line 961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_;
+#line 961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = configuration_facade_get_last_crop_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_width = _tmp7_;
+#line 961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp6_);
+#line 962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = config_facade_get_instance ();
+#line 962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_;
+#line 962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = configuration_facade_get_last_crop_height (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_height = _tmp10_;
+#line 962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp9_);
+#line 963 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->custom_init_width;
+#line 963 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->custom_init_height;
+#line 963 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_aspect_ratio = ((gfloat) _tmp11_) / ((gfloat) _tmp12_);
+#line 7238 "EditingTools.c"
+ }
+ }
+#line 967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_update_pivot_button_state (self);
+#line 969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = editing_tools_crop_tool_get_selected_constraint (self);
+#line 969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_;
+#line 969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_->is_pivotable;
+#line 969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = !_tmp15_;
+#line 969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (_tmp14_);
+#line 969 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp16_) {
+#line 970 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reticle_orientation = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
+#line 7257 "EditingTools.c"
+ }
+#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->pre_aspect_ratio;
+#line 972 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp17_ != _tmp18_) {
+#line 7265 "EditingTools.c"
+ Box new_crop = {0};
+ Box _tmp19_ = {0};
+ Box _tmp20_ = {0};
+ Box _tmp21_ = {0};
+ Box _tmp22_ = {0};
+ EditingToolsPhotoCanvas* _tmp23_ = NULL;
+ Box _tmp24_ = {0};
+ EditingToolsPhotoCanvas* _tmp25_ = NULL;
+ gfloat _tmp26_ = 0.0F;
+#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = self->priv->scaled_crop;
+#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constrain_crop (self, &_tmp19_, &_tmp20_);
+#line 973 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_crop = _tmp20_;
+#line 975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = new_crop;
+#line 975 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_crop_resized (self, &_tmp21_);
+#line 976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = new_crop;
+#line 976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_crop = _tmp22_;
+#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = new_crop;
+#line 977 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_invalidate_area (_tmp23_, &_tmp24_);
+#line 978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp25_);
+#line 980 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 980 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->pre_aspect_ratio = _tmp26_;
+#line 7303 "EditingTools.c"
+ }
+#line 950 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (selected_constraint);
+#line 7307 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_set_custom_constraint_mode (EditingToolsCropTool* self) {
+ EditingToolsCropToolConstraintMode _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ EditingToolsCropToolCropToolWindow* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp11_ = NULL;
+ GtkBox* _tmp12_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp13_ = NULL;
+ GtkComboBox* _tmp14_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp15_ = NULL;
+ GtkBox* _tmp16_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp17_ = NULL;
+ GtkButton* _tmp18_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp19_ = NULL;
+ GtkBox* _tmp20_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp21_ = NULL;
+ GtkBox* _tmp22_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp25_ = NULL;
+ GtkComboBox* _tmp26_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp29_ = NULL;
+ GtkEntry* _tmp30_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp31_ = NULL;
+ GtkBox* _tmp32_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp33_ = NULL;
+ GtkLabel* _tmp34_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp35_ = NULL;
+ GtkBox* _tmp36_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp37_ = NULL;
+ GtkEntry* _tmp38_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp39_ = NULL;
+ GtkBox* _tmp40_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp41_ = NULL;
+ GtkButton* _tmp42_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp43_ = NULL;
+ GtkBox* _tmp44_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp45_ = NULL;
+ GtkBox* _tmp46_ = NULL;
+ EditingToolsCropToolReticleOrientation _tmp47_ = 0;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp70_ = NULL;
+#line 984 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 985 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->constraint_mode;
+#line 985 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM) {
+#line 986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 7364 "EditingTools.c"
+ }
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->crop_tool_window;
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->normal_width;
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp3_ == -1) {
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = TRUE;
+#line 7374 "EditingTools.c"
+ } else {
+ EditingToolsCropToolCropToolWindow* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->crop_tool_window;
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_->normal_height;
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp5_ == -1;
+#line 7384 "EditingTools.c"
+ }
+#line 988 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_) {
+#line 7388 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp6_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp7_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->crop_tool_window;
+#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->crop_tool_window;
+#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->crop_tool_window;
+#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_window_get_type (), GtkWindow), &_tmp9_, &_tmp10_);
+#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_->normal_width = _tmp9_;
+#line 989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_->normal_height = _tmp10_;
+#line 7406 "EditingTools.c"
+ }
+#line 992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->crop_tool_window;
+#line 992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_->layout;
+#line 992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->crop_tool_window;
+#line 992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_->constraint_combo;
+#line 992 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget));
+#line 993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->crop_tool_window;
+#line 993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_->layout;
+#line 993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->crop_tool_window;
+#line 993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_->pivot_reticle_button;
+#line 993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget));
+#line 994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = self->priv->crop_tool_window;
+#line 994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_->layout;
+#line 994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->crop_tool_window;
+#line 994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_->response_layout;
+#line 994 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget));
+#line 996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->priv->crop_tool_window;
+#line 996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = _tmp23_->layout;
+#line 996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = self->priv->crop_tool_window;
+#line 996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_->constraint_combo;
+#line 996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget));
+#line 997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = self->priv->crop_tool_window;
+#line 997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = _tmp27_->layout;
+#line 997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->priv->crop_tool_window;
+#line 997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_->custom_width_entry;
+#line 997 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_widget_get_type (), GtkWidget));
+#line 998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = self->priv->crop_tool_window;
+#line 998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = _tmp31_->layout;
+#line 998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->priv->crop_tool_window;
+#line 998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _tmp33_->custom_mulsign_label;
+#line 998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
+#line 999 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = self->priv->crop_tool_window;
+#line 999 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = _tmp35_->layout;
+#line 999 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = self->priv->crop_tool_window;
+#line 999 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = _tmp37_->custom_height_entry;
+#line 999 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget));
+#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = self->priv->crop_tool_window;
+#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = _tmp39_->layout;
+#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = self->priv->crop_tool_window;
+#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = _tmp41_->pivot_reticle_button;
+#line 1000 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget));
+#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = self->priv->crop_tool_window;
+#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = _tmp43_->layout;
+#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = self->priv->crop_tool_window;
+#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = _tmp45_->response_layout;
+#line 1001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget));
+#line 1003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = self->priv->reticle_orientation;
+#line 1003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp47_ == EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE) {
+#line 7502 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp48_ = NULL;
+ GtkEntry* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp53_ = NULL;
+ GtkEntry* _tmp54_ = NULL;
+ gint _tmp55_ = 0;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = self->priv->crop_tool_window;
+#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49_ = _tmp48_->custom_width_entry;
+#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = self->priv->custom_init_width;
+#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = g_strdup_printf ("%d", _tmp50_);
+#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = _tmp51_;
+#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp49_, _tmp52_);
+#line 1004 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp52_);
+#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = self->priv->crop_tool_window;
+#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = _tmp53_->custom_height_entry;
+#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = self->priv->custom_init_height;
+#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = g_strdup_printf ("%d", _tmp55_);
+#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = _tmp56_;
+#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp54_, _tmp57_);
+#line 1005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp57_);
+#line 7541 "EditingTools.c"
+ } else {
+ EditingToolsCropToolCropToolWindow* _tmp58_ = NULL;
+ GtkEntry* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp63_ = NULL;
+ GtkEntry* _tmp64_ = NULL;
+ gint _tmp65_ = 0;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = self->priv->crop_tool_window;
+#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = _tmp58_->custom_width_entry;
+#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = self->priv->custom_init_height;
+#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = g_strdup_printf ("%d", _tmp60_);
+#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp62_ = _tmp61_;
+#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp59_, _tmp62_);
+#line 1007 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp62_);
+#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp63_ = self->priv->crop_tool_window;
+#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp64_ = _tmp63_->custom_height_entry;
+#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp65_ = self->priv->custom_init_width;
+#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp66_ = g_strdup_printf ("%d", _tmp65_);
+#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67_ = _tmp66_;
+#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp64_, _tmp67_);
+#line 1008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp67_);
+#line 7581 "EditingTools.c"
+ }
+#line 1010 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp68_ = self->priv->custom_init_width;
+#line 1010 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp69_ = self->priv->custom_init_height;
+#line 1010 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_aspect_ratio = ((gfloat) _tmp68_) / ((gfloat) _tmp69_);
+#line 1012 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp70_ = self->priv->crop_tool_window;
+#line 1012 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp70_, gtk_widget_get_type (), GtkWidget));
+#line 1014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_CUSTOM;
+#line 7595 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_set_normal_constraint_mode (EditingToolsCropTool* self) {
+ EditingToolsCropToolConstraintMode _tmp0_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp1_ = NULL;
+ GtkBox* _tmp2_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp3_ = NULL;
+ GtkComboBox* _tmp4_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp5_ = NULL;
+ GtkBox* _tmp6_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp7_ = NULL;
+ GtkEntry* _tmp8_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp9_ = NULL;
+ GtkBox* _tmp10_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp11_ = NULL;
+ GtkLabel* _tmp12_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp13_ = NULL;
+ GtkBox* _tmp14_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp15_ = NULL;
+ GtkEntry* _tmp16_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp17_ = NULL;
+ GtkBox* _tmp18_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp19_ = NULL;
+ GtkButton* _tmp20_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp21_ = NULL;
+ GtkBox* _tmp22_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp25_ = NULL;
+ GtkBox* _tmp26_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp27_ = NULL;
+ GtkComboBox* _tmp28_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp29_ = NULL;
+ GtkBox* _tmp30_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp31_ = NULL;
+ GtkButton* _tmp32_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp33_ = NULL;
+ GtkBox* _tmp34_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp35_ = NULL;
+ GtkBox* _tmp36_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp37_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ EditingToolsCropToolCropToolWindow* _tmp42_ = NULL;
+#line 1017 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->constraint_mode;
+#line 1018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL) {
+#line 1019 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 7651 "EditingTools.c"
+ }
+#line 1021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->crop_tool_window;
+#line 1021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->layout;
+#line 1021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->crop_tool_window;
+#line 1021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_->constraint_combo;
+#line 1021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->crop_tool_window;
+#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->layout;
+#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->crop_tool_window;
+#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_->custom_width_entry;
+#line 1022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
+#line 1023 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->crop_tool_window;
+#line 1023 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_->layout;
+#line 1023 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->crop_tool_window;
+#line 1023 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_->custom_mulsign_label;
+#line 1023 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 1024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->crop_tool_window;
+#line 1024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_->layout;
+#line 1024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->crop_tool_window;
+#line 1024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_->custom_height_entry;
+#line 1024 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget));
+#line 1025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->crop_tool_window;
+#line 1025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_->layout;
+#line 1025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = self->priv->crop_tool_window;
+#line 1025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_->pivot_reticle_button;
+#line 1025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget));
+#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->crop_tool_window;
+#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_->layout;
+#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->priv->crop_tool_window;
+#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = _tmp23_->response_layout;
+#line 1026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget));
+#line 1028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = self->priv->crop_tool_window;
+#line 1028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_->layout;
+#line 1028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = self->priv->crop_tool_window;
+#line 1028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = _tmp27_->constraint_combo;
+#line 1028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget));
+#line 1029 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->priv->crop_tool_window;
+#line 1029 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_->layout;
+#line 1029 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = self->priv->crop_tool_window;
+#line 1029 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = _tmp31_->pivot_reticle_button;
+#line 1029 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget));
+#line 1030 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->priv->crop_tool_window;
+#line 1030 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _tmp33_->layout;
+#line 1030 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = self->priv->crop_tool_window;
+#line 1030 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = _tmp35_->response_layout;
+#line 1030 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_widget_get_type (), GtkWidget));
+#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = self->priv->crop_tool_window;
+#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = self->priv->crop_tool_window;
+#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = _tmp38_->normal_width;
+#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = self->priv->crop_tool_window;
+#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = _tmp40_->normal_height;
+#line 1032 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_window_resize (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_window_get_type (), GtkWindow), _tmp39_, _tmp41_);
+#line 1035 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = self->priv->crop_tool_window;
+#line 1035 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget));
+#line 1037 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL;
+#line 7761 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_constrain_crop (EditingToolsCropTool* self, Box* crop, Box* result) {
+ gfloat user_aspect_ratio = 0.0F;
+ gfloat _tmp0_ = 0.0F;
+ gfloat _tmp1_ = 0.0F;
+ gfloat old_area = 0.0F;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gfloat _tmp5_ = 0.0F;
+ gfloat _tmp6_ = 0.0F;
+ gdouble _tmp7_ = 0.0;
+ gfloat _tmp8_ = 0.0F;
+ gfloat _tmp9_ = 0.0F;
+ gdouble _tmp10_ = 0.0;
+ Dimensions image_size = {0};
+ Dimensions _tmp11_ = {0};
+ gdouble angle = 0.0;
+ EditingToolsPhotoCanvas* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ gdouble _tmp15_ = 0.0;
+ Box _tmp16_ = {0};
+ Dimensions _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ Dimensions _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ gdouble _tmp21_ = 0.0;
+ Box _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gfloat _tmp25_ = 0.0F;
+ Box _tmp30_ = {0};
+#line 1040 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1040 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (crop != NULL);
+#line 1041 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1041 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ user_aspect_ratio = _tmp0_;
+#line 1042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = user_aspect_ratio;
+#line 1042 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 7808 "EditingTools.c"
+ Box _tmp2_ = {0};
+#line 1043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *crop;
+#line 1043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _tmp2_;
+#line 1043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 7816 "EditingTools.c"
+ }
+#line 1046 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = box_get_width (crop);
+#line 1046 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = box_get_height (crop);
+#line 1046 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old_area = (gfloat) (_tmp3_ * _tmp4_);
+#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = old_area;
+#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = user_aspect_ratio;
+#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = sqrt ((gdouble) (_tmp5_ / _tmp6_));
+#line 1047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_adjust_height (crop, (gint) _tmp7_);
+#line 1048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = old_area;
+#line 1048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = user_aspect_ratio;
+#line 1048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = sqrt ((gdouble) (_tmp8_ * _tmp9_));
+#line 1048 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_adjust_width (crop, (gint) _tmp10_);
+#line 1051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_get_photo_dimensions (self, &_tmp11_);
+#line 1051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ image_size = _tmp11_;
+#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = editing_tools_photo_canvas_get_photo (_tmp12_);
+#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_;
+#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_get_straighten (_tmp14_, &_tmp15_);
+#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ angle = _tmp15_;
+#line 1053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp14_);
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = *crop;
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = image_size;
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_.width;
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = image_size;
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_.height;
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = angle;
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ clamp_inside_rotated_image (&_tmp16_, _tmp18_, _tmp20_, _tmp21_, FALSE, &_tmp22_);
+#line 1054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *crop = _tmp22_;
+#line 1057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = box_get_width (crop);
+#line 1057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = box_get_height (crop);
+#line 1057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = user_aspect_ratio;
+#line 1057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (((gfloat) _tmp23_) >= (_tmp24_ * _tmp25_)) {
+#line 7880 "EditingTools.c"
+ gint _tmp26_ = 0;
+ gfloat _tmp27_ = 0.0F;
+#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = box_get_height (crop);
+#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = user_aspect_ratio;
+#line 1058 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_adjust_width (crop, (gint) (_tmp26_ * _tmp27_));
+#line 7889 "EditingTools.c"
+ } else {
+ gint _tmp28_ = 0;
+ gfloat _tmp29_ = 0.0F;
+#line 1060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = box_get_width (crop);
+#line 1060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = user_aspect_ratio;
+#line 1060 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_adjust_height (crop, (gint) (_tmp28_ / _tmp29_));
+#line 7899 "EditingTools.c"
+ }
+#line 1062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = *crop;
+#line 1062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _tmp30_;
+#line 1062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 7907 "EditingTools.c"
+}
+
+
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_get_last_constraint (EditingToolsCropTool* self, gint* index) {
+ gint _vala_index = 0;
+ EditingToolsCropToolConstraintDescription* result = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ EditingToolsCropToolConstraintDescription* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ EditingToolsCropToolConstraintDescription** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ EditingToolsCropToolConstraintDescription* _tmp9_ = NULL;
+#line 1065 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), NULL);
+#line 1066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 1066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_;
+#line 1066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = configuration_facade_get_last_crop_menu_choice (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_index = _tmp2_;
+#line 1066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _vala_index;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->constraints;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5__length1 = self->priv->constraints_length1;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp4_ < _tmp5__length1) {
+#line 7942 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ EditingToolsCropToolConstraintDescription* _tmp8_ = NULL;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->constraints;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6__length1 = self->priv->constraints_length1;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _vala_index;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp6_[_tmp7_];
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp8_;
+#line 7957 "EditingTools.c"
+ } else {
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = NULL;
+#line 7961 "EditingTools.c"
+ }
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _editing_tools_crop_tool_constraint_description_ref0 (_tmp3_);
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp9_;
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (index) {
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *index = _vala_index;
+#line 7971 "EditingTools.c"
+ }
+#line 1068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 7975 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsCropTool * self;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ cairo_t* _tmp3_ = NULL;
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ cairo_surface_t* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ EditingToolsPhotoCanvas* _tmp10_ = NULL;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ cairo_surface_t* _tmp13_ = NULL;
+ cairo_t* ctx = NULL;
+ cairo_surface_t* _tmp14_ = NULL;
+ cairo_t* _tmp15_ = NULL;
+ cairo_t* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+ EditingToolsPhotoCanvas* _tmp18_ = NULL;
+ GtkWindow* _tmp19_ = NULL;
+ GtkWindow* _tmp20_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp21_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp22_ = NULL;
+ GtkComboBox* _tmp23_ = NULL;
+ GtkListStore* _tmp24_ = NULL;
+ EditingToolsPhotoCanvas* _tmp25_ = NULL;
+ Photo* _tmp26_ = NULL;
+ Photo* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+ Dimensions uncropped_dim = {0};
+ EditingToolsPhotoCanvas* _tmp61_ = NULL;
+ Photo* _tmp62_ = NULL;
+ Photo* _tmp63_ = NULL;
+ Dimensions _tmp64_ = {0};
+ Dimensions _tmp65_ = {0};
+ Box crop = {0};
+ EditingToolsPhotoCanvas* _tmp66_ = NULL;
+ Photo* _tmp67_ = NULL;
+ Photo* _tmp68_ = NULL;
+ Box _tmp69_ = {0};
+ gboolean _tmp70_ = FALSE;
+ gboolean _tmp71_ = FALSE;
+ Dimensions _tmp84_ = {0};
+ EditingToolsPhotoCanvas* _tmp85_ = NULL;
+ GdkRectangle _tmp86_ = {0};
+ Dimensions _tmp87_ = {0};
+ Box _tmp88_ = {0};
+ ConfigFacade* _tmp89_ = NULL;
+ ConfigFacade* _tmp90_ = NULL;
+ gint _tmp91_ = 0;
+ ConfigFacade* _tmp92_ = NULL;
+ ConfigFacade* _tmp93_ = NULL;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+ gint _tmp97_ = 0;
+ gint _tmp98_ = 0;
+ EditingToolsPhotoCanvas* _tmp99_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp100_ = NULL;
+ EditingToolsPhotoCanvas* _tmp101_ = NULL;
+ Photo* _tmp102_ = NULL;
+ Photo* _tmp103_ = NULL;
+ gboolean _tmp104_ = FALSE;
+ gboolean _tmp105_ = FALSE;
+ Box new_crop = {0};
+ Box _tmp114_ = {0};
+ Box _tmp115_ = {0};
+ Box _tmp116_ = {0};
+ Box _tmp117_ = {0};
+ EditingToolsPhotoCanvas* _tmp118_ = NULL;
+ Box _tmp119_ = {0};
+ EditingToolsPhotoCanvas* _tmp120_ = NULL;
+ gfloat _tmp121_ = 0.0F;
+#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 1072 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 1072 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_bind_canvas_handlers (self, _tmp0_);
+#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = canvas;
+#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = editing_tools_photo_canvas_get_default_ctx (_tmp1_);
+#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = canvas;
+#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_surface_dim (_tmp4_, &_tmp5_);
+#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_prepare_ctx (self, _tmp3_, &_tmp5_);
+#line 1074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (_tmp3_);
+#line 1076 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->crop_surface;
+#line 1076 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp6_ != NULL) {
+#line 1077 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->crop_surface);
+#line 1077 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_surface = NULL;
+#line 8086 "EditingTools.c"
+ }
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = canvas;
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp7_, &_tmp8_);
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.width;
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = canvas;
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp10_, &_tmp11_);
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.height;
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp9_, _tmp12_);
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->crop_surface);
+#line 1079 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_surface = _tmp13_;
+#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = self->priv->crop_surface;
+#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = cairo_create (_tmp14_);
+#line 1083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ctx = _tmp15_;
+#line 1084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = ctx;
+#line 1084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_rgba (_tmp16_, 0.0, 0.0, 0.0, 1.0);
+#line 1085 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = ctx;
+#line 1085 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_paint (_tmp17_);
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = canvas;
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = editing_tools_photo_canvas_get_container (_tmp18_);
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_;
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = editing_tools_crop_tool_crop_tool_window_new (_tmp20_);
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp21_);
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->crop_tool_window);
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_tool_window = _tmp21_;
+#line 1088 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1091 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = self->priv->crop_tool_window;
+#line 1091 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_->constraint_combo;
+#line 1091 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->constraint_list;
+#line 1091 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_combo_box_set_model (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = canvas;
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = editing_tools_photo_canvas_get_photo (_tmp25_);
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = _tmp26_;
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = photo_has_crop (_tmp27_);
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = !_tmp28_;
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp27_);
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp29_) {
+#line 8158 "EditingTools.c"
+ gint index = 0;
+ EditingToolsCropToolConstraintDescription* desc = NULL;
+ gint _tmp30_ = 0;
+ EditingToolsCropToolConstraintDescription* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+ EditingToolsCropToolConstraintDescription* _tmp33_ = NULL;
+#line 1094 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = editing_tools_crop_tool_get_last_constraint (self, &_tmp30_);
+#line 1094 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ index = _tmp30_;
+#line 1094 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ desc = _tmp31_;
+#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = desc;
+#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp33_ != NULL) {
+#line 8175 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = desc;
+#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = editing_tools_crop_tool_constraint_description_is_separator (_tmp34_);
+#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = !_tmp35_;
+#line 8184 "EditingTools.c"
+ } else {
+#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = FALSE;
+#line 8188 "EditingTools.c"
+ }
+#line 1095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp32_) {
+#line 8192 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp36_ = NULL;
+ GtkComboBox* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+#line 1096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = self->priv->crop_tool_window;
+#line 1096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = _tmp36_->constraint_combo;
+#line 1096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = index;
+#line 1096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_combo_box_set_active (_tmp37_, _tmp38_);
+#line 8204 "EditingTools.c"
+ }
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (desc);
+#line 8208 "EditingTools.c"
+ } else {
+ Photo* photo = NULL;
+ EditingToolsPhotoCanvas* _tmp39_ = NULL;
+ Photo* _tmp40_ = NULL;
+ Dimensions cropped_dim = {0};
+ Photo* _tmp41_ = NULL;
+ Dimensions _tmp42_ = {0};
+ gfloat ratio = 0.0F;
+ Dimensions _tmp43_ = {0};
+ gint _tmp44_ = 0;
+ Dimensions _tmp45_ = {0};
+ gint _tmp46_ = 0;
+#line 1100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = canvas;
+#line 1100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = editing_tools_photo_canvas_get_photo (_tmp39_);
+#line 1100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo = _tmp40_;
+#line 1101 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = photo;
+#line 1101 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp42_);
+#line 1101 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cropped_dim = _tmp42_;
+#line 1102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = cropped_dim;
+#line 1102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = _tmp43_.width;
+#line 1102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = cropped_dim;
+#line 1102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = _tmp45_.height;
+#line 1102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ratio = ((gfloat) _tmp44_) / ((gfloat) _tmp46_);
+#line 8243 "EditingTools.c"
+ {
+ gint index = 0;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ index = 1;
+#line 8248 "EditingTools.c"
+ {
+ gboolean _tmp47_ = FALSE;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = TRUE;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ while (TRUE) {
+#line 8255 "EditingTools.c"
+ gint _tmp49_ = 0;
+ EditingToolsCropToolConstraintDescription** _tmp50_ = NULL;
+ gint _tmp50__length1 = 0;
+ gfloat _tmp51_ = 0.0F;
+ EditingToolsCropToolConstraintDescription** _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ gint _tmp53_ = 0;
+ EditingToolsCropToolConstraintDescription* _tmp54_ = NULL;
+ Photo* _tmp55_ = NULL;
+ gfloat _tmp56_ = 0.0F;
+ gdouble _tmp57_ = 0.0;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp47_) {
+#line 8269 "EditingTools.c"
+ gint _tmp48_ = 0;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = index;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ index = _tmp48_ + 1;
+#line 8275 "EditingTools.c"
+ }
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = FALSE;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49_ = index;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = self->priv->constraints;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50__length1 = self->priv->constraints_length1;
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!(_tmp49_ < _tmp50__length1)) {
+#line 1103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 8289 "EditingTools.c"
+ }
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = ratio;
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = self->priv->constraints;
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52__length1 = self->priv->constraints_length1;
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = index;
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = _tmp52_[_tmp53_];
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = photo;
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = editing_tools_crop_tool_get_constraint_aspect_ratio_for_constraint (self, _tmp54_, _tmp55_);
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = fabs ((gdouble) (_tmp51_ - _tmp56_));
+#line 1104 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp57_ < 0.005) {
+#line 8309 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp58_ = NULL;
+ GtkComboBox* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+#line 1105 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = self->priv->crop_tool_window;
+#line 1105 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = _tmp58_->constraint_combo;
+#line 1105 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = index;
+#line 1105 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_combo_box_set_active (_tmp59_, _tmp60_);
+#line 8321 "EditingTools.c"
+ }
+ }
+ }
+ }
+#line 1092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (photo);
+#line 8328 "EditingTools.c"
+ }
+#line 1110 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_update_pivot_button_state (self);
+#line 1111 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reticle_orientation = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
+#line 1113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_bind_window_handlers (self);
+#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = canvas;
+#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp62_ = editing_tools_photo_canvas_get_photo (_tmp61_);
+#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp63_ = _tmp62_;
+#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp63_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp64_);
+#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp65_ = _tmp64_;
+#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp63_);
+#line 1116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ uncropped_dim = _tmp65_;
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp66_ = canvas;
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67_ = editing_tools_photo_canvas_get_photo (_tmp66_);
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp68_ = _tmp67_;
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp70_ = photo_get_crop (_tmp68_, &_tmp69_, PHOTO_EXCEPTION_NONE);
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ crop = _tmp69_;
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp71_ = !_tmp70_;
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp68_);
+#line 1119 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp71_) {
+#line 8366 "EditingTools.c"
+ gint xofs = 0;
+ Dimensions _tmp72_ = {0};
+ gint _tmp73_ = 0;
+ gint yofs = 0;
+ Dimensions _tmp74_ = {0};
+ gint _tmp75_ = 0;
+ gint _tmp76_ = 0;
+ gint _tmp77_ = 0;
+ Dimensions _tmp78_ = {0};
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+ Dimensions _tmp81_ = {0};
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+#line 1120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp72_ = uncropped_dim;
+#line 1120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp73_ = _tmp72_.width;
+#line 1120 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ xofs = (gint) (_tmp73_ * EDITING_TOOLS_CROP_TOOL_CROP_INIT_X_PCT);
+#line 1121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp74_ = uncropped_dim;
+#line 1121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp75_ = _tmp74_.height;
+#line 1121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ yofs = (gint) (_tmp75_ * EDITING_TOOLS_CROP_TOOL_CROP_INIT_Y_PCT);
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp76_ = xofs;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp77_ = yofs;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp78_ = uncropped_dim;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp79_ = _tmp78_.width;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp80_ = xofs;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp81_ = uncropped_dim;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp82_ = _tmp81_.height;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp83_ = yofs;
+#line 1125 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_init (&crop, _tmp76_, _tmp77_, _tmp79_ - _tmp80_, _tmp82_ - _tmp83_);
+#line 8411 "EditingTools.c"
+ }
+#line 1130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp84_ = uncropped_dim;
+#line 1130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp85_ = canvas;
+#line 1130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp85_, &_tmp86_);
+#line 1130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dimensions_for_rectangle (&_tmp86_, &_tmp87_);
+#line 1130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_scaled_similar (&crop, &_tmp84_, &_tmp87_, &_tmp88_);
+#line 1130 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_crop = _tmp88_;
+#line 1135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp89_ = config_facade_get_instance ();
+#line 1135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp90_ = _tmp89_;
+#line 1135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp91_ = configuration_facade_get_last_crop_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp90_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_width = _tmp91_;
+#line 1135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp90_);
+#line 1136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp92_ = config_facade_get_instance ();
+#line 1136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp93_ = _tmp92_;
+#line 1136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp94_ = configuration_facade_get_last_crop_height (G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_height = _tmp94_;
+#line 1136 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp93_);
+#line 1137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp95_ = self->priv->custom_width;
+#line 1137 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_width = _tmp95_;
+#line 1138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp96_ = self->priv->custom_height;
+#line 1138 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_height = _tmp96_;
+#line 1139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp97_ = self->priv->custom_init_width;
+#line 1139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp98_ = self->priv->custom_init_height;
+#line 1139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->pre_aspect_ratio = ((gfloat) _tmp97_) / ((gfloat) _tmp98_);
+#line 1141 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL;
+#line 1143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp99_ = canvas;
+#line 1143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp99_);
+#line 1145 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp100_ = self->priv->crop_tool_window;
+#line 1145 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp100_, gtk_widget_get_type (), GtkWidget));
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp101_ = canvas;
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp102_ = editing_tools_photo_canvas_get_photo (_tmp101_);
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp103_ = _tmp102_;
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp104_ = photo_has_crop (_tmp103_);
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp105_ = !_tmp104_;
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp103_);
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp105_) {
+#line 8483 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription* desc = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp106_ = NULL;
+ gboolean _tmp107_ = FALSE;
+ gboolean _tmp108_ = FALSE;
+ EditingToolsCropToolConstraintDescription* _tmp109_ = NULL;
+#line 1149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp106_ = editing_tools_crop_tool_get_last_constraint (self, NULL);
+#line 1149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ desc = _tmp106_;
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp109_ = desc;
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp109_ != NULL) {
+#line 8497 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription* _tmp110_ = NULL;
+ gboolean _tmp111_ = FALSE;
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp110_ = desc;
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp111_ = editing_tools_crop_tool_constraint_description_is_separator (_tmp110_);
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp108_ = !_tmp111_;
+#line 8506 "EditingTools.c"
+ } else {
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp108_ = FALSE;
+#line 8510 "EditingTools.c"
+ }
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp108_) {
+#line 8514 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription* _tmp112_ = NULL;
+ gfloat _tmp113_ = 0.0F;
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp112_ = desc;
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp113_ = _tmp112_->aspect_ratio;
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp107_ = _tmp113_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO;
+#line 8523 "EditingTools.c"
+ } else {
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp107_ = FALSE;
+#line 8527 "EditingTools.c"
+ }
+#line 1150 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp107_) {
+#line 1151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_set_custom_constraint_mode (self);
+#line 8533 "EditingTools.c"
+ }
+#line 1148 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (desc);
+#line 8537 "EditingTools.c"
+ }
+#line 1158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp114_ = self->priv->scaled_crop;
+#line 1158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constrain_crop (self, &_tmp114_, &_tmp115_);
+#line 1158 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_crop = _tmp115_;
+#line 1160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp116_ = new_crop;
+#line 1160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_crop_resized (self, &_tmp116_);
+#line 1161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp117_ = new_crop;
+#line 1161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_crop = _tmp117_;
+#line 1162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp118_ = canvas;
+#line 1162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp119_ = new_crop;
+#line 1162 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_invalidate_area (_tmp118_, &_tmp119_);
+#line 1163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp120_ = canvas;
+#line 1163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp120_);
+#line 1165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp121_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->pre_aspect_ratio = _tmp121_;
+#line 1071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (ctx);
+#line 8569 "EditingTools.c"
+}
+
+
+static void _editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender, cairo_t* ctx, Dimensions* dim, gpointer self) {
+#line 1169 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_prepare_ctx ((EditingToolsCropTool*) self, ctx, dim);
+#line 8576 "EditingTools.c"
+}
+
+
+static void _editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self) {
+#line 1170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_resized_pixbuf ((EditingToolsCropTool*) self, old_dim, scaled, scaled_position);
+#line 8583 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_bind_canvas_handlers (EditingToolsCropTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+#line 1168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 1169 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 1169 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp0_, "new-surface", (GCallback) _editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
+#line 1170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = canvas;
+#line 1170 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp1_, "resized-scaled-pixbuf", (GCallback) _editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 8602 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_unbind_canvas_handlers (EditingToolsCropTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 1173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1173 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 1174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 1174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("new-surface", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp1_, NULL, FALSE);
+#line 1174 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_crop_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
+#line 1175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = canvas;
+#line 1175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp3_, NULL, FALSE);
+#line 1175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 8627 "EditingTools.c"
+}
+
+
+static void _editing_tools_crop_tool_on_crop_ok_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_crop_ok ((EditingToolsCropTool*) self);
+#line 8634 "EditingTools.c"
+}
+
+
+static void _editing_tools_editing_tool_notify_cancel_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_editing_tool_notify_cancel ((EditingToolsEditingTool*) self);
+#line 8641 "EditingTools.c"
+}
+
+
+static void _editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 1182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constraint_changed ((EditingToolsCropTool*) self);
+#line 8648 "EditingTools.c"
+}
+
+
+static void _editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 1183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_pivot_button_clicked ((EditingToolsCropTool*) self);
+#line 8655 "EditingTools.c"
+}
+
+
+static gboolean _editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = editing_tools_crop_tool_on_width_entry_focus_out ((EditingToolsCropTool*) self, event);
+#line 1186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 8664 "EditingTools.c"
+}
+
+
+static gboolean _editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = editing_tools_crop_tool_on_height_entry_focus_out ((EditingToolsCropTool*) self, event);
+#line 1187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 8673 "EditingTools.c"
+}
+
+
+static void _editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self) {
+#line 1188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_width_insert_text ((EditingToolsCropTool*) self, new_text, new_text_length, position);
+#line 8680 "EditingTools.c"
+}
+
+
+static void _editing_tools_crop_tool_on_height_insert_text_gtk_editable_insert_text (GtkEditable* _sender, const gchar* new_text, gint new_text_length, gint* position, gpointer self) {
+#line 1189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_height_insert_text ((EditingToolsCropTool*) self, new_text, new_text_length, position);
+#line 8687 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_bind_window_handlers (EditingToolsCropTool* self) {
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp1_ = NULL;
+ GtkButton* _tmp2_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp5_ = NULL;
+ GtkComboBox* _tmp6_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp7_ = NULL;
+ GtkButton* _tmp8_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp9_ = NULL;
+ GtkEntry* _tmp10_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp11_ = NULL;
+ GtkEntry* _tmp12_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp13_ = NULL;
+ GtkEntry* _tmp14_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp15_ = NULL;
+ GtkEntry* _tmp16_ = NULL;
+#line 1178 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 1179 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), "key-press-event", (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->crop_tool_window;
+#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->ok_button;
+#line 1180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp2_, "clicked", (GCallback) _editing_tools_crop_tool_on_crop_ok_gtk_button_clicked, self);
+#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->crop_tool_window;
+#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_->cancel_button;
+#line 1181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp4_, "clicked", (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 1182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->crop_tool_window;
+#line 1182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->constraint_combo;
+#line 1182 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp6_, "changed", (GCallback) _editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed, self);
+#line 1183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->crop_tool_window;
+#line 1183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_->pivot_reticle_button;
+#line 1183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp8_, "clicked", (GCallback) _editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked, self);
+#line 1186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->crop_tool_window;
+#line 1186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_->custom_width_entry;
+#line 1186 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event, self);
+#line 1187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->crop_tool_window;
+#line 1187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_->custom_height_entry;
+#line 1187 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event, self);
+#line 1188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->crop_tool_window;
+#line 1188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_->custom_width_entry;
+#line 1188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GTK_TYPE_EDITABLE, GtkEditable), "insert-text", (GCallback) _editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text, self);
+#line 1189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->crop_tool_window;
+#line 1189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_->custom_height_entry;
+#line 1189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GTK_TYPE_EDITABLE, GtkEditable), "insert-text", (GCallback) _editing_tools_crop_tool_on_height_insert_text_gtk_editable_insert_text, self);
+#line 8763 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_unbind_window_handlers (EditingToolsCropTool* self) {
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ EditingToolsCropToolCropToolWindow* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ EditingToolsCropToolCropToolWindow* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ EditingToolsCropToolCropToolWindow* _tmp8_ = NULL;
+ GtkComboBox* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ EditingToolsCropToolCropToolWindow* _tmp11_ = NULL;
+ GtkButton* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ EditingToolsCropToolCropToolWindow* _tmp14_ = NULL;
+ GtkEntry* _tmp15_ = NULL;
+ guint _tmp16_ = 0U;
+ EditingToolsCropToolCropToolWindow* _tmp17_ = NULL;
+ GtkEntry* _tmp18_ = NULL;
+ guint _tmp19_ = 0U;
+ EditingToolsCropToolCropToolWindow* _tmp20_ = NULL;
+ GtkEntry* _tmp21_ = NULL;
+ guint _tmp22_ = 0U;
+#line 1192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 1193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("key-press-event", gtk_widget_get_type (), &_tmp1_, NULL, FALSE);
+#line 1193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 1194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->crop_tool_window;
+#line 1194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->ok_button;
+#line 1194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp4_, NULL, FALSE);
+#line 1194 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_crop_ok_gtk_button_clicked, self);
+#line 1195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->crop_tool_window;
+#line 1195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->cancel_button;
+#line 1195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp7_, NULL, FALSE);
+#line 1195 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->crop_tool_window;
+#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_->constraint_combo;
+#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp10_, NULL, FALSE);
+#line 1196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _editing_tools_crop_tool_constraint_changed_gtk_combo_box_changed, self);
+#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->crop_tool_window;
+#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_->pivot_reticle_button;
+#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp13_, NULL, FALSE);
+#line 1197 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_pivot_button_clicked_gtk_button_clicked, self);
+#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = self->priv->crop_tool_window;
+#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_->custom_width_entry;
+#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("focus-out-event", gtk_widget_get_type (), &_tmp16_, NULL, FALSE);
+#line 1200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_width_entry_focus_out_gtk_widget_focus_out_event, self);
+#line 1201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->crop_tool_window;
+#line 1201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_->custom_height_entry;
+#line 1201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("focus-out-event", gtk_widget_get_type (), &_tmp19_, NULL, FALSE);
+#line 1201 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp19_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_height_entry_focus_out_gtk_widget_focus_out_event, self);
+#line 1202 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = self->priv->crop_tool_window;
+#line 1202 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _tmp20_->custom_width_entry;
+#line 1202 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("insert-text", GTK_TYPE_EDITABLE, &_tmp22_, NULL, FALSE);
+#line 1202 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GTK_TYPE_EDITABLE, GtkEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp22_, 0, NULL, (GCallback) _editing_tools_crop_tool_on_width_insert_text_gtk_editable_insert_text, self);
+#line 8855 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_crop_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event) {
+ EditingToolsCropTool * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkEventKey* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+ GdkEventKey* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 1205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = event;
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->keyval;
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = gdk_keyval_name (_tmp3_);
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (g_strcmp0 (_tmp4_, "KP_Enter") == 0) {
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = TRUE;
+#line 8883 "EditingTools.c"
+ } else {
+ GdkEventKey* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ const gchar* _tmp7_ = NULL;
+#line 1207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = event;
+#line 1207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->keyval;
+#line 1207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = gdk_keyval_name (_tmp6_);
+#line 1207 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = g_strcmp0 (_tmp7_, "Enter") == 0;
+#line 8896 "EditingTools.c"
+ }
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_) {
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = TRUE;
+#line 8902 "EditingTools.c"
+ } else {
+ GdkEventKey* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ const gchar* _tmp10_ = NULL;
+#line 1208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = event;
+#line 1208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_->keyval;
+#line 1208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = gdk_keyval_name (_tmp9_);
+#line 1208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = g_strcmp0 (_tmp10_, "Return") == 0;
+#line 8915 "EditingTools.c"
+ }
+#line 1206 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 1209 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_crop_ok (self);
+#line 1210 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 1210 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 8925 "EditingTools.c"
+ }
+#line 1213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = event;
+#line 1213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp11_);
+#line 1213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp12_;
+#line 1213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 8935 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_on_pivot_button_clicked (EditingToolsCropTool* self) {
+ EditingToolsCropToolConstraintDescription* _tmp0_ = NULL;
+ EditingToolsCropToolConstraintDescription* _tmp1_ = NULL;
+ gfloat _tmp2_ = 0.0F;
+ gboolean _tmp3_ = FALSE;
+ EditingToolsCropToolReticleOrientation _tmp21_ = 0;
+ EditingToolsCropToolReticleOrientation _tmp22_ = 0;
+#line 1216 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_crop_tool_get_selected_constraint (self);
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_;
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_->aspect_ratio;
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_ == EDITING_TOOLS_CROP_TOOL_CUSTOM_ASPECT_RATIO;
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _editing_tools_crop_tool_constraint_description_unref0 (_tmp1_);
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp3_) {
+#line 8960 "EditingTools.c"
+ gchar* width_text = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp4_ = NULL;
+ GtkEntry* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* height_text = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp8_ = NULL;
+ GtkEntry* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp12_ = NULL;
+ GtkEntry* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp15_ = NULL;
+ GtkEntry* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gint temp = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 1218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->crop_tool_window;
+#line 1218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_->custom_width_entry;
+#line 1218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = gtk_entry_get_text (_tmp5_);
+#line 1218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 1218 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width_text = _tmp7_;
+#line 1219 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->crop_tool_window;
+#line 1219 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_->custom_height_entry;
+#line 1219 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = gtk_entry_get_text (_tmp9_);
+#line 1219 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 1219 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height_text = _tmp11_;
+#line 1220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->crop_tool_window;
+#line 1220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_->custom_width_entry;
+#line 1220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = height_text;
+#line 1220 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp13_, _tmp14_);
+#line 1221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->crop_tool_window;
+#line 1221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_->custom_height_entry;
+#line 1221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = width_text;
+#line 1221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_text (_tmp16_, _tmp17_);
+#line 1223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->custom_width;
+#line 1223 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ temp = _tmp18_;
+#line 1224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = self->priv->custom_height;
+#line 1224 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_width = _tmp19_;
+#line 1225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = temp;
+#line 1225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_height = _tmp20_;
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (height_text);
+#line 1217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (width_text);
+#line 9033 "EditingTools.c"
+ }
+#line 1227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->reticle_orientation;
+#line 1227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = editing_tools_crop_tool_reticle_orientation_toggle (_tmp21_);
+#line 1227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reticle_orientation = _tmp22_;
+#line 1228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constraint_changed (self);
+#line 9043 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_real_deactivate (EditingToolsEditingTool* base) {
+ EditingToolsCropTool * self;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp2_ = NULL;
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+#line 1231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1232 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ != NULL) {
+#line 9058 "EditingTools.c"
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+#line 1233 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1233 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_unbind_canvas_handlers (self, _tmp1_);
+#line 9064 "EditingTools.c"
+ }
+#line 1235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->crop_tool_window;
+#line 1235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_ != NULL) {
+#line 9070 "EditingTools.c"
+ EditingToolsCropToolCropToolWindow* _tmp3_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp4_ = NULL;
+#line 1236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_unbind_window_handlers (self);
+#line 1237 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->crop_tool_window;
+#line 1237 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 1238 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->crop_tool_window;
+#line 1238 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 1239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->crop_tool_window);
+#line 1239 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_tool_window = NULL;
+#line 9087 "EditingTools.c"
+ }
+#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_ != NULL) {
+#line 9093 "EditingTools.c"
+ EditingToolsPhotoCanvas* _tmp6_ = NULL;
+ GdkWindow* _tmp7_ = NULL;
+ GdkWindow* _tmp8_ = NULL;
+ GdkCursor* _tmp9_ = NULL;
+ GdkCursor* _tmp10_ = NULL;
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = editing_tools_photo_canvas_get_drawing_window (_tmp6_);
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_;
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = gdk_cursor_new (GDK_LEFT_PTR);
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_;
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_window_set_cursor (_tmp8_, _tmp10_);
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp10_);
+#line 1244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp8_);
+#line 9115 "EditingTools.c"
+ }
+#line 1246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->crop_surface);
+#line 1246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_surface = NULL;
+#line 1248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 9123 "EditingTools.c"
+}
+
+
+static EditingToolsEditingToolWindow* editing_tools_crop_tool_real_get_tool_window (EditingToolsEditingTool* base) {
+ EditingToolsCropTool * self;
+ EditingToolsEditingToolWindow* result = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp0_ = NULL;
+ EditingToolsEditingToolWindow* _tmp1_ = NULL;
+#line 1251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_tool_window;
+#line 1252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow));
+#line 1252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 1252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 9142 "EditingTools.c"
+}
+
+
+static GdkPixbuf* editing_tools_crop_tool_real_get_display_pixbuf (EditingToolsEditingTool* base, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error) {
+ EditingToolsCropTool * self;
+ Dimensions _vala_max_dim = {0};
+ GdkPixbuf* result = NULL;
+ Photo* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Scaling _tmp4_ = {0};
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 1255 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 1257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = photo;
+#line 1257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp1_);
+#line 1257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_max_dim = _tmp1_;
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = photo;
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = *scaling;
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = photo_get_pixbuf_with_options (_tmp3_, &_tmp4_, PHOTO_EXCEPTION_CROP, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp5_;
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_propagate_error (error, _inner_error_);
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 9184 "EditingTools.c"
+ }
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp2_;
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = NULL;
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp6_;
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (max_dim) {
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *max_dim = _vala_max_dim;
+#line 9198 "EditingTools.c"
+ }
+#line 1259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 9202 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_prepare_ctx (EditingToolsCropTool* self, cairo_t* ctx, Dimensions* dim) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_surface_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ cairo_t* _tmp3_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ cairo_t* _tmp5_ = NULL;
+ cairo_surface_t* _tmp6_ = NULL;
+ cairo_t* _tmp7_ = NULL;
+ cairo_t* _tmp8_ = NULL;
+ cairo_t* _tmp9_ = NULL;
+ cairo_t* _tmp10_ = NULL;
+ cairo_surface_t* _tmp11_ = NULL;
+ cairo_t* _tmp12_ = NULL;
+ cairo_t* _tmp13_ = NULL;
+ cairo_t* _tmp14_ = NULL;
+ cairo_t* _tmp15_ = NULL;
+ cairo_surface_t* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+ cairo_t* _tmp18_ = NULL;
+#line 1262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 1262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (dim != NULL);
+#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = ctx;
+#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = cairo_get_target (_tmp0_);
+#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = cairo_create (_tmp1_);
+#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->wide_black_ctx);
+#line 1263 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->wide_black_ctx = _tmp2_;
+#line 1264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->wide_black_ctx;
+#line 1264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp3_, "#000");
+#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->wide_black_ctx;
+#line 1265 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_line_width (_tmp4_, (gdouble) 1);
+#line 1267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = ctx;
+#line 1267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = cairo_get_target (_tmp5_);
+#line 1267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = cairo_create (_tmp6_);
+#line 1267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->wide_white_ctx);
+#line 1267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->wide_white_ctx = _tmp7_;
+#line 1268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->wide_white_ctx;
+#line 1268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp8_, "#FFF");
+#line 1269 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->wide_white_ctx;
+#line 1269 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_line_width (_tmp9_, (gdouble) 1);
+#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = ctx;
+#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = cairo_get_target (_tmp10_);
+#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = cairo_create (_tmp11_);
+#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->thin_white_ctx);
+#line 1271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->thin_white_ctx = _tmp12_;
+#line 1272 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->thin_white_ctx;
+#line 1272 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp13_, "#FFF");
+#line 1273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = self->priv->thin_white_ctx;
+#line 1273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_line_width (_tmp14_, 0.5);
+#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = ctx;
+#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = cairo_get_target (_tmp15_);
+#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = cairo_create (_tmp16_);
+#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->text_ctx);
+#line 1275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->text_ctx = _tmp17_;
+#line 1276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->text_ctx;
+#line 1276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_select_font_face (_tmp18_, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
+#line 9300 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_on_resized_pixbuf (EditingToolsCropTool* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position) {
+ Dimensions new_dim = {0};
+ GdkPixbuf* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Dimensions uncropped_dim = {0};
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ Dimensions _tmp6_ = {0};
+ Box crop = {0};
+ Dimensions _tmp7_ = {0};
+ Dimensions _tmp8_ = {0};
+ Box _tmp9_ = {0};
+ Dimensions _tmp10_ = {0};
+ Dimensions _tmp11_ = {0};
+ Box _tmp12_ = {0};
+ cairo_surface_t* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ GdkPixbuf* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ cairo_surface_t* _tmp20_ = NULL;
+ cairo_t* ctx = NULL;
+ cairo_surface_t* _tmp21_ = NULL;
+ cairo_t* _tmp22_ = NULL;
+#line 1279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (old_dim != NULL);
+#line 1279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (scaled));
+#line 1279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (scaled_position != NULL);
+#line 1280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = scaled;
+#line 1280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dimensions_for_pixbuf (_tmp0_, &_tmp1_);
+#line 1280 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_dim = _tmp1_;
+#line 1281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_photo_canvas_get_photo (_tmp2_);
+#line 1281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 1281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp5_);
+#line 1281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_;
+#line 1281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ uncropped_dim = _tmp6_;
+#line 1284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = *old_dim;
+#line 1284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = uncropped_dim;
+#line 1284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_scaled_similar (&self->priv->scaled_crop, &_tmp7_, &_tmp8_, &_tmp9_);
+#line 1284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ crop = _tmp9_;
+#line 1287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = uncropped_dim;
+#line 1287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = new_dim;
+#line 1287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_scaled_similar (&crop, &_tmp10_, &_tmp11_, &_tmp12_);
+#line 1287 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_crop = _tmp12_;
+#line 1288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->crop_surface;
+#line 1288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp13_ != NULL) {
+#line 1289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->crop_surface);
+#line 1289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_surface = NULL;
+#line 9384 "EditingTools.c"
+ }
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = scaled;
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = gdk_pixbuf_get_width (_tmp14_);
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_;
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = scaled;
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = gdk_pixbuf_get_height (_tmp17_);
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_;
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp16_, _tmp19_);
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->crop_surface);
+#line 1291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_surface = _tmp20_;
+#line 1292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->crop_surface;
+#line 1292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = cairo_create (_tmp21_);
+#line 1292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ctx = _tmp22_;
+#line 1293 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, 1.0);
+#line 1294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_paint (ctx);
+#line 1279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (ctx);
+#line 9416 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y) {
+ EditingToolsCropTool * self;
+ GdkRectangle scaled_pixbuf_pos = {0};
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ Box offset_scaled_crop = {0};
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ Box _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ BoxLocation _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ EditingToolsPhotoCanvas* _tmp18_ = NULL;
+#line 1298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
+#line 1299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaled_pixbuf_pos = _tmp1_;
+#line 1302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = scaled_pixbuf_pos;
+#line 1302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 1302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = scaled_pixbuf_pos;
+#line 1302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.y;
+#line 1302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_offset (&self->priv->scaled_crop, _tmp3_, _tmp5_, &_tmp6_);
+#line 1302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ offset_scaled_crop = _tmp6_;
+#line 1305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = x;
+#line 1305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = y;
+#line 1305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = box_approx_location (&offset_scaled_crop, _tmp7_, _tmp8_);
+#line 1305 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->in_manipulation = _tmp9_;
+#line 1306 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = x;
+#line 1306 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = scaled_pixbuf_pos;
+#line 1306 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.x;
+#line 1306 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp10_ - _tmp12_;
+#line 1306 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = x;
+#line 1306 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_x = _tmp13_;
+#line 1307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = y;
+#line 1307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = scaled_pixbuf_pos;
+#line 1307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.y;
+#line 1307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = _tmp14_ - _tmp16_;
+#line 1307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = y;
+#line 1307 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_y = _tmp17_;
+#line 1310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1310 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp18_);
+#line 9499 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y) {
+ EditingToolsCropTool * self;
+ BoxLocation _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ EditingToolsPhotoCanvas* _tmp3_ = NULL;
+#line 1313 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->in_manipulation;
+#line 1315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == BOX_LOCATION_OUTSIDE) {
+#line 1316 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 9517 "EditingTools.c"
+ }
+#line 1319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->in_manipulation = BOX_LOCATION_OUTSIDE;
+#line 1320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_x = -1;
+#line 1321 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_y = -1;
+#line 1323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = x;
+#line 1323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = y;
+#line 1323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_update_cursor (self, _tmp1_, _tmp2_);
+#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp3_);
+#line 9535 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask) {
+ EditingToolsCropTool * self;
+ BoxLocation _tmp0_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+#line 1329 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->in_manipulation;
+#line 1332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ != BOX_LOCATION_OUTSIDE) {
+#line 9551 "EditingTools.c"
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 1333 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = x;
+#line 1333 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = y;
+#line 1333 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_on_canvas_manipulation (self, _tmp1_, _tmp2_);
+#line 9560 "EditingTools.c"
+ }
+#line 1335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = x;
+#line 1335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = y;
+#line 1335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_update_cursor (self, _tmp3_, _tmp4_);
+#line 1336 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1336 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp5_);
+#line 9572 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_real_paint (EditingToolsEditingTool* base, cairo_t* default_ctx) {
+ EditingToolsCropTool * self;
+ gint w = 0;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint h = 0;
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+ GdkWindow* _tmp6_ = NULL;
+ GdkWindow* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ cairo_t* _tmp10_ = NULL;
+ cairo_t* _tmp11_ = NULL;
+ cairo_t* _tmp12_ = NULL;
+ cairo_t* _tmp13_ = NULL;
+ cairo_t* ctx = NULL;
+ cairo_surface_t* _tmp14_ = NULL;
+ cairo_t* _tmp15_ = NULL;
+ Box _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ Box _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ EditingToolsPhotoCanvas* _tmp22_ = NULL;
+ cairo_surface_t* _tmp23_ = NULL;
+ Box _tmp24_ = {0};
+#line 1339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 1339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (default_ctx != NULL);
+#line 1341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = editing_tools_photo_canvas_get_drawing_window (_tmp0_);
+#line 1341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_;
+#line 1341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = gdk_window_get_width (_tmp2_);
+#line 1341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 1341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1341 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ w = _tmp4_;
+#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = editing_tools_photo_canvas_get_drawing_window (_tmp5_);
+#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_;
+#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = gdk_window_get_height (_tmp7_);
+#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_;
+#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp7_);
+#line 1342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ h = _tmp9_;
+#line 1344 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = default_ctx;
+#line 1344 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_rgba (_tmp10_, 0.0, 0.0, 0.0, 1.0);
+#line 1345 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = default_ctx;
+#line 1345 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (_tmp11_, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h);
+#line 1346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = default_ctx;
+#line 1346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (_tmp12_);
+#line 1347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = default_ctx;
+#line 1347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_paint (_tmp13_);
+#line 1349 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = self->priv->crop_surface;
+#line 1349 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = cairo_create (_tmp14_);
+#line 1349 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ctx = _tmp15_;
+#line 1350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (ctx, CAIRO_OPERATOR_SOURCE);
+#line 1351 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, 0.5);
+#line 1352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_paint (ctx);
+#line 1355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, 0.0);
+#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->priv->scaled_crop;
+#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_.left;
+#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->scaled_crop;
+#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_.top;
+#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = box_get_width (&self->priv->scaled_crop);
+#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = box_get_height (&self->priv->scaled_crop);
+#line 1356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (ctx, (gdouble) _tmp17_, (gdouble) _tmp19_, (gdouble) _tmp20_, (gdouble) _tmp21_);
+#line 1358 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (ctx);
+#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->priv->crop_surface;
+#line 1359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_paint_surface (_tmp22_, _tmp23_, TRUE);
+#line 1362 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->scaled_crop;
+#line 1362 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_paint_crop_tool (self, &_tmp24_);
+#line 1339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (ctx);
+#line 9696 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_on_crop_ok (EditingToolsCropTool* self) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ EditingToolsCropToolCropToolWindow* _tmp2_ = NULL;
+ GtkComboBox* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ ConfigFacade* _tmp5_ = NULL;
+ ConfigFacade* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ ConfigFacade* _tmp8_ = NULL;
+ ConfigFacade* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ Box crop = {0};
+ EditingToolsPhotoCanvas* _tmp11_ = NULL;
+ GdkRectangle _tmp12_ = {0};
+ Dimensions _tmp13_ = {0};
+ EditingToolsPhotoCanvas* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ Dimensions _tmp17_ = {0};
+ Box _tmp18_ = {0};
+ Box _tmp19_ = {0};
+ GdkPixbuf* cropped = NULL;
+ EditingToolsPhotoCanvas* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+ Box _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ Box _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ GdkPixbuf* _tmp29_ = NULL;
+ GdkPixbuf* _tmp30_ = NULL;
+ EditingToolsPhotoCanvas* _tmp31_ = NULL;
+ Photo* _tmp32_ = NULL;
+ Photo* _tmp33_ = NULL;
+ Box _tmp34_ = {0};
+ CropCommand* _tmp35_ = NULL;
+ CropCommand* _tmp36_ = NULL;
+ Dimensions _tmp37_ = {0};
+#line 1365 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_;
+#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->crop_tool_window;
+#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->constraint_combo;
+#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = gtk_combo_box_get_active (_tmp3_);
+#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ configuration_facade_set_last_crop_menu_choice (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp4_);
+#line 1369 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1371 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = config_facade_get_instance ();
+#line 1371 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_;
+#line 1371 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->custom_width;
+#line 1371 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ configuration_facade_set_last_crop_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp7_);
+#line 1371 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = config_facade_get_instance ();
+#line 1372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_;
+#line 1372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->custom_height;
+#line 1372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ configuration_facade_set_last_crop_height (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp10_);
+#line 1372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp9_);
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp11_, &_tmp12_);
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dimensions_for_rectangle (&_tmp12_, &_tmp13_);
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = editing_tools_photo_canvas_get_photo (_tmp14_);
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_;
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp17_);
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_scaled_similar (&self->priv->scaled_crop, &_tmp13_, &_tmp17_, &_tmp18_);
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_;
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp16_);
+#line 1375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ crop = _tmp19_;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp20_);
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->priv->scaled_crop;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = _tmp23_.left;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = self->priv->scaled_crop;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_.top;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = box_get_width (&self->priv->scaled_crop);
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = box_get_height (&self->priv->scaled_crop);
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = gdk_pixbuf_new_subpixbuf (_tmp22_, _tmp24_, _tmp26_, _tmp27_, _tmp28_);
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_;
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cropped = _tmp30_;
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = editing_tools_photo_canvas_get_photo (_tmp31_);
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = _tmp32_;
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = crop;
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = crop_command_new (_tmp33_, &_tmp34_, RESOURCES_CROP_LABEL, RESOURCES_CROP_TOOLTIP);
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = _tmp35_;
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_dimensions (&crop, &_tmp37_);
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "applied", G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_COMMAND, Command), cropped, &_tmp37_, TRUE);
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp36_);
+#line 1385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp33_);
+#line 1365 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (cropped);
+#line 9847 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_update_cursor (EditingToolsCropTool* self, gint x, gint y) {
+ GdkRectangle scaled_pos = {0};
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ Box offset_scaled_crop = {0};
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ Box _tmp6_ = {0};
+ GdkCursorType cursor_type = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ BoxLocation _tmp9_ = 0;
+ GdkCursorType _tmp10_ = 0;
+ GdkCursorType _tmp11_ = 0;
+#line 1389 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1391 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1391 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
+#line 1391 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaled_pos = _tmp1_;
+#line 1392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = scaled_pos;
+#line 1392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.x;
+#line 1392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = scaled_pos;
+#line 1392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.y;
+#line 1392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_offset (&self->priv->scaled_crop, _tmp3_, _tmp5_, &_tmp6_);
+#line 1392 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ offset_scaled_crop = _tmp6_;
+#line 1394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_LEFT_PTR;
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = x;
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = y;
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = box_approx_location (&offset_scaled_crop, _tmp7_, _tmp8_);
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ switch (_tmp9_) {
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_LEFT_SIDE:
+#line 9899 "EditingTools.c"
+ {
+#line 1397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_LEFT_SIDE;
+#line 1398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9905 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_SIDE:
+#line 9909 "EditingTools.c"
+ {
+#line 1401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_TOP_SIDE;
+#line 1402 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9915 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_RIGHT_SIDE:
+#line 9919 "EditingTools.c"
+ {
+#line 1405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_RIGHT_SIDE;
+#line 1406 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9925 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_SIDE:
+#line 9929 "EditingTools.c"
+ {
+#line 1409 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_BOTTOM_SIDE;
+#line 1410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9935 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_LEFT:
+#line 9939 "EditingTools.c"
+ {
+#line 1413 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_TOP_LEFT_CORNER;
+#line 1414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9945 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_LEFT:
+#line 9949 "EditingTools.c"
+ {
+#line 1417 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_BOTTOM_LEFT_CORNER;
+#line 1418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9955 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_RIGHT:
+#line 9959 "EditingTools.c"
+ {
+#line 1421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_TOP_RIGHT_CORNER;
+#line 1422 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9965 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_RIGHT:
+#line 9969 "EditingTools.c"
+ {
+#line 1425 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_BOTTOM_RIGHT_CORNER;
+#line 1426 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9975 "EditingTools.c"
+ }
+#line 1395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_INSIDE:
+#line 9979 "EditingTools.c"
+ {
+#line 1429 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor_type = GDK_FLEUR;
+#line 1430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9985 "EditingTools.c"
+ }
+ default:
+ {
+#line 1434 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 9991 "EditingTools.c"
+ }
+ }
+#line 1437 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = cursor_type;
+#line 1437 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->current_cursor_type;
+#line 1437 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp10_ != _tmp11_) {
+#line 10000 "EditingTools.c"
+ GdkCursor* cursor = NULL;
+ GdkCursorType _tmp12_ = 0;
+ GdkCursor* _tmp13_ = NULL;
+ EditingToolsPhotoCanvas* _tmp14_ = NULL;
+ GdkWindow* _tmp15_ = NULL;
+ GdkWindow* _tmp16_ = NULL;
+ GdkCursor* _tmp17_ = NULL;
+ GdkCursorType _tmp18_ = 0;
+#line 1438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = cursor_type;
+#line 1438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = gdk_cursor_new (_tmp12_);
+#line 1438 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cursor = _tmp13_;
+#line 1439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = editing_tools_photo_canvas_get_drawing_window (_tmp14_);
+#line 1439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_;
+#line 1439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = cursor;
+#line 1439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_window_set_cursor (_tmp16_, _tmp17_);
+#line 1439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp16_);
+#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = cursor_type;
+#line 1440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->current_cursor_type = _tmp18_;
+#line 1437 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (cursor);
+#line 10033 "EditingTools.c"
+ }
+}
+
+
+static gint editing_tools_crop_tool_eval_radial_line (EditingToolsCropTool* self, gdouble center_x, gdouble center_y, gdouble bounds_x, gdouble bounds_y, gdouble user_x) {
+ gint result = 0;
+ gdouble decision_slope = 0.0;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble decision_intercept = 0.0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+#line 1444 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), 0);
+#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = bounds_y;
+#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = center_y;
+#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = bounds_x;
+#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = center_x;
+#line 1446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ decision_slope = (_tmp0_ - _tmp1_) / (_tmp2_ - _tmp3_);
+#line 1447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = bounds_y;
+#line 1447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = bounds_x;
+#line 1447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ decision_intercept = _tmp4_ - (decision_slope * _tmp5_);
+#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = user_x;
+#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = (gint) ((decision_slope * _tmp6_) + decision_intercept);
+#line 1449 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 10073 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_get_photo_dimensions (EditingToolsCropTool* self, Dimensions* result) {
+ Dimensions photo_dims = {0};
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Dimensions _tmp3_ = {0};
+ Dimensions _tmp4_ = {0};
+ Dimensions surface_dims = {0};
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+ Dimensions _tmp6_ = {0};
+ gdouble scale_factor = 0.0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ Dimensions _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ Dimensions _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ gdouble _tmp15_ = 0.0;
+ gdouble _tmp16_ = 0.0;
+ gdouble _tmp17_ = 0.0;
+ EditingToolsPhotoCanvas* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ Dimensions _tmp21_ = {0};
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gdouble _tmp24_ = 0.0;
+ Dimensions _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ gdouble _tmp27_ = 0.0;
+ Dimensions _tmp28_ = {0};
+#line 1453 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_);
+#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_;
+#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp3_);
+#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_dims = _tmp4_;
+#line 1455 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1455 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_surface_dim (_tmp5_, &_tmp6_);
+#line 1455 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ surface_dims = _tmp6_;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = surface_dims;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.width;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = photo_dims;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.width;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = surface_dims;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.height;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = photo_dims;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.height;
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = MIN (((gdouble) _tmp8_) / _tmp10_, ((gdouble) _tmp12_) / _tmp14_);
+#line 1456 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scale_factor = _tmp15_;
+#line 1458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = scale_factor;
+#line 1458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = MIN (_tmp16_, 1.0);
+#line 1458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scale_factor = _tmp17_;
+#line 1460 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1460 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = editing_tools_photo_canvas_get_photo (_tmp18_);
+#line 1460 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_;
+#line 1460 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP | PHOTO_EXCEPTION_STRAIGHTEN, &_tmp21_);
+#line 1460 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_dims = _tmp21_;
+#line 1460 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = photo_dims;
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_.width;
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = scale_factor;
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = photo_dims;
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_.height;
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = scale_factor;
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_.width = (gint) (_tmp23_ * _tmp24_);
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_.height = (gint) (_tmp26_ * _tmp27_);
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _tmp28_;
+#line 1463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 10190 "EditingTools.c"
+}
+
+
+static gboolean _box_equal (const Box* s1, const Box* s2) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (s1 == s2) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return TRUE;
+#line 10199 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (s1 == NULL) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return FALSE;
+#line 10205 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (s2 == NULL) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return FALSE;
+#line 10211 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (s1->left != s2->left) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return FALSE;
+#line 10217 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (s1->top != s2->top) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return FALSE;
+#line 10223 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (s1->right != s2->right) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return FALSE;
+#line 10229 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (s1->bottom != s2->bottom) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return FALSE;
+#line 10235 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return TRUE;
+#line 10239 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_crop_tool_on_canvas_manipulation (EditingToolsCropTool* self, gint x, gint y) {
+ gboolean result = FALSE;
+ GdkRectangle scaled_pos = {0};
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint left = 0;
+ Box _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ gint top = 0;
+ Box _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint right = 0;
+ Box _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ gint bottom = 0;
+ Box _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ gint center_x = 0;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ gint center_y = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ BoxLocation _tmp32_ = 0;
+ gint width = 0;
+ gint _tmp199_ = 0;
+ gint _tmp200_ = 0;
+ gint height = 0;
+ gint _tmp201_ = 0;
+ gint _tmp202_ = 0;
+ Dimensions photo_dims = {0};
+ Dimensions _tmp203_ = {0};
+ gdouble angle = 0.0;
+ EditingToolsPhotoCanvas* _tmp204_ = NULL;
+ Photo* _tmp205_ = NULL;
+ Photo* _tmp206_ = NULL;
+ gdouble _tmp207_ = 0.0;
+ Box new_crop = {0};
+ gfloat _tmp208_ = 0.0F;
+ BoxLocation _tmp254_ = 0;
+ Box _tmp257_ = {0};
+ gfloat _tmp258_ = 0.0F;
+#line 1467 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self), FALSE);
+#line 1468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
+#line 1468 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaled_pos = _tmp1_;
+#line 1472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = x;
+#line 1472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = scaled_pos;
+#line 1472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.x;
+#line 1472 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp2_ - _tmp4_;
+#line 1473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = x;
+#line 1473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_ < 0) {
+#line 1474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = 0;
+#line 10315 "EditingTools.c"
+ } else {
+ gint _tmp6_ = 0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 1475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = x;
+#line 1475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = scaled_pos;
+#line 1475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.width;
+#line 1475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp6_ >= _tmp8_) {
+#line 10328 "EditingTools.c"
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 1476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = scaled_pos;
+#line 1476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.width;
+#line 1476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp10_ - 1;
+#line 10337 "EditingTools.c"
+ }
+ }
+#line 1478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = y;
+#line 1478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = scaled_pos;
+#line 1478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.y;
+#line 1478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = _tmp11_ - _tmp13_;
+#line 1479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = y;
+#line 1479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp14_ < 0) {
+#line 1480 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = 0;
+#line 10354 "EditingTools.c"
+ } else {
+ gint _tmp15_ = 0;
+ GdkRectangle _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = y;
+#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = scaled_pos;
+#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_.height;
+#line 1481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp15_ >= _tmp17_) {
+#line 10367 "EditingTools.c"
+ GdkRectangle _tmp18_ = {0};
+ gint _tmp19_ = 0;
+#line 1482 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = scaled_pos;
+#line 1482 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_.height;
+#line 1482 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = _tmp19_ - 1;
+#line 10376 "EditingTools.c"
+ }
+ }
+#line 1486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = self->priv->scaled_crop;
+#line 1486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _tmp20_.left;
+#line 1486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp21_;
+#line 1487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = self->priv->scaled_crop;
+#line 1487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_.top;
+#line 1487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp23_;
+#line 1488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->scaled_crop;
+#line 1488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_.right;
+#line 1488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp25_;
+#line 1489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = self->priv->scaled_crop;
+#line 1489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = _tmp26_.bottom;
+#line 1489 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp27_;
+#line 1492 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = left;
+#line 1492 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = right;
+#line 1492 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ center_x = (_tmp28_ + _tmp29_) / 2;
+#line 1493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = top;
+#line 1493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = bottom;
+#line 1493 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ center_y = (_tmp30_ + _tmp31_) / 2;
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = self->priv->in_manipulation;
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ switch (_tmp32_) {
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_LEFT_SIDE:
+#line 10421 "EditingTools.c"
+ {
+ gint _tmp33_ = 0;
+ gfloat _tmp34_ = 0.0F;
+#line 1497 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = x;
+#line 1497 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp33_;
+#line 1498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp34_ != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10433 "EditingTools.c"
+ gfloat new_height = 0.0F;
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gfloat _tmp37_ = 0.0F;
+ gint _tmp38_ = 0;
+ gfloat _tmp39_ = 0.0F;
+#line 1499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = right;
+#line 1499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = left;
+#line 1499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_height = ((gfloat) (_tmp35_ - _tmp36_)) / _tmp37_;
+#line 1500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = top;
+#line 1500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = new_height;
+#line 1500 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp38_ + ((gint) _tmp39_);
+#line 10454 "EditingTools.c"
+ }
+#line 1502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 10458 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_SIDE:
+#line 10462 "EditingTools.c"
+ {
+ gint _tmp40_ = 0;
+ gfloat _tmp41_ = 0.0F;
+#line 1505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = y;
+#line 1505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp40_;
+#line 1506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp41_ != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10474 "EditingTools.c"
+ gfloat new_width = 0.0F;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gfloat _tmp44_ = 0.0F;
+ gint _tmp45_ = 0;
+ gfloat _tmp46_ = 0.0F;
+#line 1507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = bottom;
+#line 1507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = top;
+#line 1507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_width = ((gfloat) (_tmp42_ - _tmp43_)) * _tmp44_;
+#line 1508 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = left;
+#line 1508 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = new_width;
+#line 1508 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp45_ + ((gint) _tmp46_);
+#line 10495 "EditingTools.c"
+ }
+#line 1510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 10499 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_RIGHT_SIDE:
+#line 10503 "EditingTools.c"
+ {
+ gint _tmp47_ = 0;
+ gfloat _tmp48_ = 0.0F;
+#line 1513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = x;
+#line 1513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp47_;
+#line 1514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1514 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp48_ != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10515 "EditingTools.c"
+ gfloat new_height = 0.0F;
+ gint _tmp49_ = 0;
+ gint _tmp50_ = 0;
+ gfloat _tmp51_ = 0.0F;
+ gint _tmp52_ = 0;
+ gfloat _tmp53_ = 0.0F;
+#line 1515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49_ = right;
+#line 1515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = left;
+#line 1515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_height = ((gfloat) (_tmp49_ - _tmp50_)) / _tmp51_;
+#line 1516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = top;
+#line 1516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = new_height;
+#line 1516 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp52_ + ((gint) _tmp53_);
+#line 10536 "EditingTools.c"
+ }
+#line 1518 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 10540 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_SIDE:
+#line 10544 "EditingTools.c"
+ {
+ gint _tmp54_ = 0;
+ gfloat _tmp55_ = 0.0F;
+#line 1521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = y;
+#line 1521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp54_;
+#line 1522 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1522 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp55_ != EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10556 "EditingTools.c"
+ gfloat new_width = 0.0F;
+ gint _tmp56_ = 0;
+ gint _tmp57_ = 0;
+ gfloat _tmp58_ = 0.0F;
+ gint _tmp59_ = 0;
+ gfloat _tmp60_ = 0.0F;
+#line 1523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = bottom;
+#line 1523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = top;
+#line 1523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_width = ((gfloat) (_tmp56_ - _tmp57_)) * _tmp58_;
+#line 1524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = left;
+#line 1524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = new_width;
+#line 1524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp59_ + ((gint) _tmp60_);
+#line 10577 "EditingTools.c"
+ }
+#line 1526 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 10581 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_LEFT:
+#line 10585 "EditingTools.c"
+ {
+ gfloat _tmp61_ = 0.0F;
+#line 1529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp61_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10592 "EditingTools.c"
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+#line 1530 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp62_ = y;
+#line 1530 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp62_;
+#line 1531 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp63_ = x;
+#line 1531 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp63_;
+#line 10603 "EditingTools.c"
+ } else {
+ gint _tmp64_ = 0;
+ gint _tmp65_ = 0;
+ gint _tmp66_ = 0;
+ gint _tmp67_ = 0;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+ gint _tmp70_ = 0;
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp64_ = y;
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp65_ = center_x;
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp66_ = center_y;
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67_ = left;
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp68_ = top;
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp69_ = x;
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp70_ = editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp65_, (gdouble) _tmp66_, (gdouble) _tmp67_, (gdouble) _tmp68_, (gdouble) _tmp69_);
+#line 1533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp64_ < _tmp70_) {
+#line 10628 "EditingTools.c"
+ gint _tmp71_ = 0;
+ gfloat new_width = 0.0F;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ gfloat _tmp74_ = 0.0F;
+ gint _tmp75_ = 0;
+ gfloat _tmp76_ = 0.0F;
+#line 1534 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp71_ = y;
+#line 1534 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp71_;
+#line 1535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp72_ = bottom;
+#line 1535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp73_ = top;
+#line 1535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp74_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_width = ((gfloat) (_tmp72_ - _tmp73_)) * _tmp74_;
+#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp75_ = right;
+#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp76_ = new_width;
+#line 1536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp75_ - ((gint) _tmp76_);
+#line 10654 "EditingTools.c"
+ } else {
+ gint _tmp77_ = 0;
+ gfloat new_height = 0.0F;
+ gint _tmp78_ = 0;
+ gint _tmp79_ = 0;
+ gfloat _tmp80_ = 0.0F;
+ gint _tmp81_ = 0;
+ gfloat _tmp82_ = 0.0F;
+#line 1538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp77_ = x;
+#line 1538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp77_;
+#line 1539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp78_ = right;
+#line 1539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp79_ = left;
+#line 1539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp80_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1539 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_height = ((gfloat) (_tmp78_ - _tmp79_)) / _tmp80_;
+#line 1540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp81_ = bottom;
+#line 1540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp82_ = new_height;
+#line 1540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp81_ - ((gint) _tmp82_);
+#line 10681 "EditingTools.c"
+ }
+ }
+#line 1543 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 10686 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_LEFT:
+#line 10690 "EditingTools.c"
+ {
+ gfloat _tmp83_ = 0.0F;
+#line 1546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp83_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp83_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10697 "EditingTools.c"
+ gint _tmp84_ = 0;
+ gint _tmp85_ = 0;
+#line 1547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp84_ = y;
+#line 1547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp84_;
+#line 1548 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp85_ = x;
+#line 1548 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp85_;
+#line 10708 "EditingTools.c"
+ } else {
+ gint _tmp86_ = 0;
+ gint _tmp87_ = 0;
+ gint _tmp88_ = 0;
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ gint _tmp92_ = 0;
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp86_ = y;
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp87_ = center_x;
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp88_ = center_y;
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp89_ = left;
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp90_ = bottom;
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp91_ = x;
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp92_ = editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp87_, (gdouble) _tmp88_, (gdouble) _tmp89_, (gdouble) _tmp90_, (gdouble) _tmp91_);
+#line 1550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp86_ < _tmp92_) {
+#line 10733 "EditingTools.c"
+ gint _tmp93_ = 0;
+ gfloat new_height = 0.0F;
+ gint _tmp94_ = 0;
+ gint _tmp95_ = 0;
+ gfloat _tmp96_ = 0.0F;
+ gint _tmp97_ = 0;
+ gfloat _tmp98_ = 0.0F;
+#line 1551 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp93_ = x;
+#line 1551 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp93_;
+#line 1552 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp94_ = right;
+#line 1552 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp95_ = left;
+#line 1552 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp96_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1552 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_height = ((gfloat) (_tmp94_ - _tmp95_)) / _tmp96_;
+#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp97_ = top;
+#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp98_ = new_height;
+#line 1553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp97_ + ((gint) _tmp98_);
+#line 10759 "EditingTools.c"
+ } else {
+ gint _tmp99_ = 0;
+ gfloat new_width = 0.0F;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ gfloat _tmp102_ = 0.0F;
+ gint _tmp103_ = 0;
+ gfloat _tmp104_ = 0.0F;
+#line 1555 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp99_ = y;
+#line 1555 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp99_;
+#line 1556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp100_ = bottom;
+#line 1556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp101_ = top;
+#line 1556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp102_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_width = ((gfloat) (_tmp100_ - _tmp101_)) * _tmp102_;
+#line 1557 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp103_ = right;
+#line 1557 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp104_ = new_width;
+#line 1557 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp103_ - ((gint) _tmp104_);
+#line 10786 "EditingTools.c"
+ }
+ }
+#line 1560 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 10791 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_RIGHT:
+#line 10795 "EditingTools.c"
+ {
+ gfloat _tmp105_ = 0.0F;
+#line 1563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp105_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1563 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp105_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10802 "EditingTools.c"
+ gint _tmp106_ = 0;
+ gint _tmp107_ = 0;
+#line 1564 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp106_ = y;
+#line 1564 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp106_;
+#line 1565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp107_ = x;
+#line 1565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp107_;
+#line 10813 "EditingTools.c"
+ } else {
+ gint _tmp108_ = 0;
+ gint _tmp109_ = 0;
+ gint _tmp110_ = 0;
+ gint _tmp111_ = 0;
+ gint _tmp112_ = 0;
+ gint _tmp113_ = 0;
+ gint _tmp114_ = 0;
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp108_ = y;
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp109_ = center_x;
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp110_ = center_y;
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp111_ = right;
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp112_ = top;
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp113_ = x;
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp114_ = editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp109_, (gdouble) _tmp110_, (gdouble) _tmp111_, (gdouble) _tmp112_, (gdouble) _tmp113_);
+#line 1567 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp108_ < _tmp114_) {
+#line 10838 "EditingTools.c"
+ gint _tmp115_ = 0;
+ gfloat new_width = 0.0F;
+ gint _tmp116_ = 0;
+ gint _tmp117_ = 0;
+ gfloat _tmp118_ = 0.0F;
+ gint _tmp119_ = 0;
+ gfloat _tmp120_ = 0.0F;
+#line 1568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp115_ = y;
+#line 1568 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp115_;
+#line 1569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp116_ = bottom;
+#line 1569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp117_ = top;
+#line 1569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp118_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1569 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_width = ((gfloat) (_tmp116_ - _tmp117_)) * _tmp118_;
+#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp119_ = left;
+#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp120_ = new_width;
+#line 1570 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp119_ + ((gint) _tmp120_);
+#line 10864 "EditingTools.c"
+ } else {
+ gint _tmp121_ = 0;
+ gfloat new_height = 0.0F;
+ gint _tmp122_ = 0;
+ gint _tmp123_ = 0;
+ gfloat _tmp124_ = 0.0F;
+ gint _tmp125_ = 0;
+ gfloat _tmp126_ = 0.0F;
+#line 1572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp121_ = x;
+#line 1572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp121_;
+#line 1573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp122_ = right;
+#line 1573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp123_ = left;
+#line 1573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp124_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_height = ((gfloat) (_tmp122_ - _tmp123_)) / _tmp124_;
+#line 1574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp125_ = bottom;
+#line 1574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp126_ = new_height;
+#line 1574 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp125_ - ((gint) _tmp126_);
+#line 10891 "EditingTools.c"
+ }
+ }
+#line 1577 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 10896 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_RIGHT:
+#line 10900 "EditingTools.c"
+ {
+ gfloat _tmp127_ = 0.0F;
+#line 1580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp127_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp127_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 10907 "EditingTools.c"
+ gint _tmp128_ = 0;
+ gint _tmp129_ = 0;
+#line 1581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp128_ = y;
+#line 1581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp128_;
+#line 1582 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp129_ = x;
+#line 1582 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp129_;
+#line 10918 "EditingTools.c"
+ } else {
+ gint _tmp130_ = 0;
+ gint _tmp131_ = 0;
+ gint _tmp132_ = 0;
+ gint _tmp133_ = 0;
+ gint _tmp134_ = 0;
+ gint _tmp135_ = 0;
+ gint _tmp136_ = 0;
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp130_ = y;
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp131_ = center_x;
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp132_ = center_y;
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp133_ = right;
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp134_ = bottom;
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp135_ = x;
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp136_ = editing_tools_crop_tool_eval_radial_line (self, (gdouble) _tmp131_, (gdouble) _tmp132_, (gdouble) _tmp133_, (gdouble) _tmp134_, (gdouble) _tmp135_);
+#line 1584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp130_ < _tmp136_) {
+#line 10943 "EditingTools.c"
+ gint _tmp137_ = 0;
+ gfloat new_height = 0.0F;
+ gint _tmp138_ = 0;
+ gint _tmp139_ = 0;
+ gfloat _tmp140_ = 0.0F;
+ gint _tmp141_ = 0;
+ gfloat _tmp142_ = 0.0F;
+#line 1585 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp137_ = x;
+#line 1585 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp137_;
+#line 1586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp138_ = right;
+#line 1586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp139_ = left;
+#line 1586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp140_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_height = ((gfloat) (_tmp138_ - _tmp139_)) / _tmp140_;
+#line 1587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp141_ = top;
+#line 1587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp142_ = new_height;
+#line 1587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp141_ + ((gint) _tmp142_);
+#line 10969 "EditingTools.c"
+ } else {
+ gint _tmp143_ = 0;
+ gfloat new_width = 0.0F;
+ gint _tmp144_ = 0;
+ gint _tmp145_ = 0;
+ gfloat _tmp146_ = 0.0F;
+ gint _tmp147_ = 0;
+ gfloat _tmp148_ = 0.0F;
+#line 1589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp143_ = y;
+#line 1589 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp143_;
+#line 1590 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp144_ = bottom;
+#line 1590 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp145_ = top;
+#line 1590 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp146_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1590 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_width = ((gfloat) (_tmp144_ - _tmp145_)) * _tmp146_;
+#line 1591 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp147_ = left;
+#line 1591 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp148_ = new_width;
+#line 1591 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp147_ + ((gint) _tmp148_);
+#line 10996 "EditingTools.c"
+ }
+ }
+#line 1594 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11001 "EditingTools.c"
+ }
+#line 1495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_INSIDE:
+#line 11005 "EditingTools.c"
+ {
+ gint _tmp149_ = 0;
+ gint _tmp150_ = 0;
+ gint delta_x = 0;
+ gint _tmp151_ = 0;
+ gint _tmp152_ = 0;
+ gint delta_y = 0;
+ gint _tmp153_ = 0;
+ gint _tmp154_ = 0;
+ gint _tmp155_ = 0;
+ gint _tmp156_ = 0;
+ gint width = 0;
+ gint _tmp157_ = 0;
+ gint _tmp158_ = 0;
+ gint height = 0;
+ gint _tmp159_ = 0;
+ gint _tmp160_ = 0;
+ gint _tmp161_ = 0;
+ gint _tmp162_ = 0;
+ gint _tmp163_ = 0;
+ gint _tmp164_ = 0;
+ gint _tmp165_ = 0;
+ gint _tmp166_ = 0;
+ gint _tmp167_ = 0;
+ gint _tmp168_ = 0;
+ gint _tmp169_ = 0;
+ gint _tmp170_ = 0;
+ gint _tmp171_ = 0;
+ GdkRectangle _tmp172_ = {0};
+ gint _tmp173_ = 0;
+ gint _tmp176_ = 0;
+ GdkRectangle _tmp177_ = {0};
+ gint _tmp178_ = 0;
+ gint adj_width = 0;
+ gint _tmp181_ = 0;
+ gint _tmp182_ = 0;
+ gint adj_height = 0;
+ gint _tmp183_ = 0;
+ gint _tmp184_ = 0;
+ gint _tmp185_ = 0;
+ gint _tmp186_ = 0;
+ gint _tmp192_ = 0;
+ gint _tmp193_ = 0;
+#line 1597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp149_ = self->priv->last_grab_x;
+#line 1597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_assert (_tmp149_ >= 0, "last_grab_x >= 0");
+#line 1598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp150_ = self->priv->last_grab_y;
+#line 1598 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_assert (_tmp150_ >= 0, "last_grab_y >= 0");
+#line 1600 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp151_ = x;
+#line 1600 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp152_ = self->priv->last_grab_x;
+#line 1600 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ delta_x = _tmp151_ - _tmp152_;
+#line 1601 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp153_ = y;
+#line 1601 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp154_ = self->priv->last_grab_y;
+#line 1601 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ delta_y = _tmp153_ - _tmp154_;
+#line 1603 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp155_ = x;
+#line 1603 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_x = _tmp155_;
+#line 1604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp156_ = y;
+#line 1604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_y = _tmp156_;
+#line 1606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp157_ = right;
+#line 1606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp158_ = left;
+#line 1606 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width = (_tmp157_ - _tmp158_) + 1;
+#line 1607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp159_ = bottom;
+#line 1607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp160_ = top;
+#line 1607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height = (_tmp159_ - _tmp160_) + 1;
+#line 1609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp161_ = left;
+#line 1609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp162_ = delta_x;
+#line 1609 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp161_ + _tmp162_;
+#line 1610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp163_ = top;
+#line 1610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp164_ = delta_y;
+#line 1610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp163_ + _tmp164_;
+#line 1611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp165_ = right;
+#line 1611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp166_ = delta_x;
+#line 1611 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp165_ + _tmp166_;
+#line 1612 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp167_ = bottom;
+#line 1612 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp168_ = delta_y;
+#line 1612 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp167_ + _tmp168_;
+#line 1615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp169_ = left;
+#line 1615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp169_ < 0) {
+#line 1616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = 0;
+#line 11119 "EditingTools.c"
+ }
+#line 1618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp170_ = top;
+#line 1618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp170_ < 0) {
+#line 1619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = 0;
+#line 11127 "EditingTools.c"
+ }
+#line 1621 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp171_ = right;
+#line 1621 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp172_ = scaled_pos;
+#line 1621 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp173_ = _tmp172_.width;
+#line 1621 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp171_ >= _tmp173_) {
+#line 11137 "EditingTools.c"
+ GdkRectangle _tmp174_ = {0};
+ gint _tmp175_ = 0;
+#line 1622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp174_ = scaled_pos;
+#line 1622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp175_ = _tmp174_.width;
+#line 1622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp175_ - 1;
+#line 11146 "EditingTools.c"
+ }
+#line 1624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp176_ = bottom;
+#line 1624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp177_ = scaled_pos;
+#line 1624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp178_ = _tmp177_.height;
+#line 1624 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp176_ >= _tmp178_) {
+#line 11156 "EditingTools.c"
+ GdkRectangle _tmp179_ = {0};
+ gint _tmp180_ = 0;
+#line 1625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp179_ = scaled_pos;
+#line 1625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp180_ = _tmp179_.height;
+#line 1625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp180_ - 1;
+#line 11165 "EditingTools.c"
+ }
+#line 1627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp181_ = right;
+#line 1627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp182_ = left;
+#line 1627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ adj_width = (_tmp181_ - _tmp182_) + 1;
+#line 1628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp183_ = bottom;
+#line 1628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp184_ = top;
+#line 1628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ adj_height = (_tmp183_ - _tmp184_) + 1;
+#line 1631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp185_ = adj_width;
+#line 1631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp186_ = width;
+#line 1631 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp185_ != _tmp186_) {
+#line 11185 "EditingTools.c"
+ gint _tmp187_ = 0;
+#line 1632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp187_ = delta_x;
+#line 1632 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp187_ < 0) {
+#line 11191 "EditingTools.c"
+ gint _tmp188_ = 0;
+ gint _tmp189_ = 0;
+#line 1633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp188_ = left;
+#line 1633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp189_ = width;
+#line 1633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = (_tmp188_ + _tmp189_) - 1;
+#line 11200 "EditingTools.c"
+ } else {
+ gint _tmp190_ = 0;
+ gint _tmp191_ = 0;
+#line 1635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp190_ = right;
+#line 1635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp191_ = width;
+#line 1635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = (_tmp190_ - _tmp191_) + 1;
+#line 11210 "EditingTools.c"
+ }
+ }
+#line 1638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp192_ = adj_height;
+#line 1638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp193_ = height;
+#line 1638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp192_ != _tmp193_) {
+#line 11219 "EditingTools.c"
+ gint _tmp194_ = 0;
+#line 1639 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp194_ = delta_y;
+#line 1639 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp194_ < 0) {
+#line 11225 "EditingTools.c"
+ gint _tmp195_ = 0;
+ gint _tmp196_ = 0;
+#line 1640 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp195_ = top;
+#line 1640 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp196_ = height;
+#line 1640 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = (_tmp195_ + _tmp196_) - 1;
+#line 11234 "EditingTools.c"
+ } else {
+ gint _tmp197_ = 0;
+ gint _tmp198_ = 0;
+#line 1642 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp197_ = bottom;
+#line 1642 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp198_ = height;
+#line 1642 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = (_tmp197_ - _tmp198_) + 1;
+#line 11244 "EditingTools.c"
+ }
+ }
+#line 1644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11249 "EditingTools.c"
+ }
+ default:
+ {
+#line 1648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 1648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 11257 "EditingTools.c"
+ }
+ }
+#line 1658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp199_ = right;
+#line 1658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp200_ = left;
+#line 1658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width = (_tmp199_ - _tmp200_) + 1;
+#line 1659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp201_ = bottom;
+#line 1659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp202_ = top;
+#line 1659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height = (_tmp201_ - _tmp202_) + 1;
+#line 1661 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_get_photo_dimensions (self, &_tmp203_);
+#line 1661 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_dims = _tmp203_;
+#line 1663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp204_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp205_ = editing_tools_photo_canvas_get_photo (_tmp204_);
+#line 1663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp206_ = _tmp205_;
+#line 1663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_get_straighten (_tmp206_, &_tmp207_);
+#line 1663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ angle = _tmp207_;
+#line 1663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp206_);
+#line 1666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp208_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp208_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 11292 "EditingTools.c"
+ gint _tmp209_ = 0;
+ gint _tmp210_ = 0;
+ gint _tmp211_ = 0;
+ gint _tmp212_ = 0;
+ BoxLocation _tmp213_ = 0;
+ BoxLocation _tmp218_ = 0;
+ gint _tmp223_ = 0;
+ gint _tmp224_ = 0;
+ gint _tmp225_ = 0;
+ gint _tmp226_ = 0;
+ Box _tmp227_ = {0};
+ Dimensions _tmp228_ = {0};
+ gint _tmp229_ = 0;
+ Dimensions _tmp230_ = {0};
+ gint _tmp231_ = 0;
+ gdouble _tmp232_ = 0.0;
+ BoxLocation _tmp233_ = 0;
+ Box _tmp234_ = {0};
+#line 1667 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp209_ = right;
+#line 1667 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp210_ = left;
+#line 1667 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ width = (_tmp209_ - _tmp210_) + 1;
+#line 1668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp211_ = bottom;
+#line 1668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp212_ = top;
+#line 1668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ height = (_tmp211_ - _tmp212_) + 1;
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp213_ = self->priv->in_manipulation;
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ switch (_tmp213_) {
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_LEFT_SIDE:
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_LEFT:
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_LEFT:
+#line 11333 "EditingTools.c"
+ {
+ gint _tmp214_ = 0;
+#line 1674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp214_ = width;
+#line 1674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp214_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
+#line 11340 "EditingTools.c"
+ gint _tmp215_ = 0;
+#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp215_ = right;
+#line 1675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ left = _tmp215_ - EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
+#line 11346 "EditingTools.c"
+ }
+#line 1676 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11350 "EditingTools.c"
+ }
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_RIGHT_SIDE:
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_RIGHT:
+#line 1670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_RIGHT:
+#line 11358 "EditingTools.c"
+ {
+ gint _tmp216_ = 0;
+#line 1681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp216_ = width;
+#line 1681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp216_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
+#line 11365 "EditingTools.c"
+ gint _tmp217_ = 0;
+#line 1682 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp217_ = left;
+#line 1682 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ right = _tmp217_ + EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
+#line 11371 "EditingTools.c"
+ }
+#line 1683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11375 "EditingTools.c"
+ }
+ default:
+ {
+#line 1686 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11381 "EditingTools.c"
+ }
+ }
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp218_ = self->priv->in_manipulation;
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ switch (_tmp218_) {
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_SIDE:
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_LEFT:
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_TOP_RIGHT:
+#line 11394 "EditingTools.c"
+ {
+ gint _tmp219_ = 0;
+#line 1693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp219_ = height;
+#line 1693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp219_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
+#line 11401 "EditingTools.c"
+ gint _tmp220_ = 0;
+#line 1694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp220_ = bottom;
+#line 1694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ top = _tmp220_ - EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
+#line 11407 "EditingTools.c"
+ }
+#line 1695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11411 "EditingTools.c"
+ }
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_SIDE:
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_LEFT:
+#line 1689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case BOX_LOCATION_BOTTOM_RIGHT:
+#line 11419 "EditingTools.c"
+ {
+ gint _tmp221_ = 0;
+#line 1700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp221_ = height;
+#line 1700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp221_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE) {
+#line 11426 "EditingTools.c"
+ gint _tmp222_ = 0;
+#line 1701 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp222_ = top;
+#line 1701 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bottom = _tmp222_ + EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
+#line 11432 "EditingTools.c"
+ }
+#line 1702 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11436 "EditingTools.c"
+ }
+ default:
+ {
+#line 1705 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 11442 "EditingTools.c"
+ }
+ }
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp223_ = left;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp224_ = top;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp225_ = right;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp226_ = bottom;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_init (&_tmp227_, _tmp223_, _tmp224_, _tmp225_, _tmp226_);
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp228_ = photo_dims;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp229_ = _tmp228_.width;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp230_ = photo_dims;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp231_ = _tmp230_.height;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp232_ = angle;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp233_ = self->priv->in_manipulation;
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ clamp_inside_rotated_image (&_tmp227_, _tmp229_, _tmp231_, _tmp232_, _tmp233_ == BOX_LOCATION_INSIDE, &_tmp234_);
+#line 1711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_crop = _tmp234_;
+#line 11471 "EditingTools.c"
+ } else {
+ gint _tmp235_ = 0;
+ gint _tmp236_ = 0;
+ gint _tmp237_ = 0;
+ gint _tmp238_ = 0;
+ Box adjusted = {0};
+ Box _tmp239_ = {0};
+ Dimensions _tmp240_ = {0};
+ gint _tmp241_ = 0;
+ Dimensions _tmp242_ = {0};
+ gint _tmp243_ = 0;
+ gdouble _tmp244_ = 0.0;
+ BoxLocation _tmp245_ = 0;
+ Box _tmp246_ = {0};
+ gboolean _tmp247_ = FALSE;
+ gboolean _tmp248_ = FALSE;
+ Box _tmp249_ = {0};
+ Box _tmp250_ = {0};
+#line 1720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp235_ = left;
+#line 1720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp236_ = top;
+#line 1720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp237_ = right;
+#line 1720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp238_ = bottom;
+#line 1720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_init (&new_crop, _tmp235_, _tmp236_, _tmp237_, _tmp238_);
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp239_ = new_crop;
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp240_ = photo_dims;
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp241_ = _tmp240_.width;
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp242_ = photo_dims;
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp243_ = _tmp242_.height;
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp244_ = angle;
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp245_ = self->priv->in_manipulation;
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ clamp_inside_rotated_image (&_tmp239_, _tmp241_, _tmp243_, _tmp244_, _tmp245_ == BOX_LOCATION_INSIDE, &_tmp246_);
+#line 1721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ adjusted = _tmp246_;
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp249_ = adjusted;
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp250_ = new_crop;
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_box_equal (&_tmp249_, &_tmp250_) != TRUE) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp248_ = TRUE;
+#line 11526 "EditingTools.c"
+ } else {
+ gint _tmp251_ = 0;
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp251_ = width;
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp248_ = _tmp251_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
+#line 11533 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp248_) {
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp247_ = TRUE;
+#line 11539 "EditingTools.c"
+ } else {
+ gint _tmp252_ = 0;
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp252_ = height;
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp247_ = _tmp252_ < EDITING_TOOLS_CROP_TOOL_CROP_MIN_SIZE;
+#line 11546 "EditingTools.c"
+ }
+#line 1725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp247_) {
+#line 11550 "EditingTools.c"
+ Box _tmp253_ = {0};
+#line 1726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp253_ = self->priv->scaled_crop;
+#line 1726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_crop = _tmp253_;
+#line 11556 "EditingTools.c"
+ }
+ }
+#line 1730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp254_ = self->priv->in_manipulation;
+#line 1730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp254_ != BOX_LOCATION_INSIDE) {
+#line 11563 "EditingTools.c"
+ Box _tmp255_ = {0};
+#line 1731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp255_ = new_crop;
+#line 1731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_crop_resized (self, &_tmp255_);
+#line 11569 "EditingTools.c"
+ } else {
+ Box _tmp256_ = {0};
+#line 1733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp256_ = new_crop;
+#line 1733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_crop_moved (self, &_tmp256_);
+#line 11576 "EditingTools.c"
+ }
+#line 1736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp257_ = new_crop;
+#line 1736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->scaled_crop = _tmp257_;
+#line 1738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp258_ = editing_tools_crop_tool_get_constraint_aspect_ratio (self);
+#line 1738 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp258_ == EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO) {
+#line 11586 "EditingTools.c"
+ gint _tmp259_ = 0;
+ gint _tmp260_ = 0;
+ gint _tmp261_ = 0;
+ gint _tmp262_ = 0;
+#line 1739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp259_ = box_get_width (&self->priv->scaled_crop);
+#line 1739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_width = _tmp259_;
+#line 1740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp260_ = box_get_height (&self->priv->scaled_crop);
+#line 1740 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_height = _tmp260_;
+#line 1741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp261_ = self->priv->custom_init_width;
+#line 1741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp262_ = self->priv->custom_init_height;
+#line 1741 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_aspect_ratio = ((gfloat) _tmp261_) / ((gfloat) _tmp262_);
+#line 11605 "EditingTools.c"
+ }
+#line 1744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 1744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 11611 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_crop_resized (EditingToolsCropTool* self, Box* new_crop) {
+ Box _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ Box _tmp3_ = {0};
+ Box horizontal = {0};
+ gboolean horizontal_enlarged = FALSE;
+ Box vertical = {0};
+ gboolean vertical_enlarged = FALSE;
+ BoxComplements complements = 0;
+ Box _tmp4_ = {0};
+ Box _tmp5_ = {0};
+ gboolean _tmp6_ = FALSE;
+ Box _tmp7_ = {0};
+ gboolean _tmp8_ = FALSE;
+ BoxComplements _tmp9_ = 0;
+ BoxComplements _tmp10_ = 0;
+ gboolean _tmp11_ = FALSE;
+ BoxComplements _tmp12_ = 0;
+ gboolean _tmp17_ = FALSE;
+ BoxComplements _tmp18_ = 0;
+ Box _tmp23_ = {0};
+ EditingToolsPhotoCanvas* _tmp24_ = NULL;
+ Box _tmp25_ = {0};
+#line 1747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1747 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (new_crop != NULL);
+#line 1748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = *new_crop;
+#line 1748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = box_equals (&self->priv->scaled_crop, &_tmp0_);
+#line 1748 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_) {
+#line 1750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 11651 "EditingTools.c"
+ }
+#line 1753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->scaled_crop;
+#line 1753 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_invalidate_area (_tmp2_, &_tmp3_);
+#line 1759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = *new_crop;
+#line 1759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = box_resized_complements (&self->priv->scaled_crop, &_tmp4_, &_tmp5_, &_tmp6_, &_tmp7_, &_tmp8_);
+#line 1759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ horizontal = _tmp5_;
+#line 1759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ horizontal_enlarged = _tmp6_;
+#line 1759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ vertical = _tmp7_;
+#line 1759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ vertical_enlarged = _tmp8_;
+#line 1759 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ complements = _tmp9_;
+#line 1763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = complements;
+#line 1763 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_assert (_tmp10_ != BOX_COMPLEMENTS_NONE, "complements != BoxComplements.NONE");
+#line 1765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = complements;
+#line 1765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp12_ == BOX_COMPLEMENTS_HORIZONTAL) {
+#line 1765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = TRUE;
+#line 11683 "EditingTools.c"
+ } else {
+ BoxComplements _tmp13_ = 0;
+#line 1765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = complements;
+#line 1765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp13_ == BOX_COMPLEMENTS_BOTH;
+#line 11690 "EditingTools.c"
+ }
+#line 1765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp11_) {
+#line 11694 "EditingTools.c"
+ gdouble _tmp14_ = 0.0;
+ gboolean _tmp15_ = FALSE;
+ Box _tmp16_ = {0};
+#line 1766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = horizontal_enlarged;
+#line 1766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp15_) {
+#line 1766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = 0.0;
+#line 11704 "EditingTools.c"
+ } else {
+#line 1766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = 0.5;
+#line 11708 "EditingTools.c"
+ }
+#line 1766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = horizontal;
+#line 1766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_set_area_alpha (self, &_tmp16_, _tmp14_);
+#line 11714 "EditingTools.c"
+ }
+#line 1768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = complements;
+#line 1768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp18_ == BOX_COMPLEMENTS_VERTICAL) {
+#line 1768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = TRUE;
+#line 11722 "EditingTools.c"
+ } else {
+ BoxComplements _tmp19_ = 0;
+#line 1768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = complements;
+#line 1768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp19_ == BOX_COMPLEMENTS_BOTH;
+#line 11729 "EditingTools.c"
+ }
+#line 1768 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp17_) {
+#line 11733 "EditingTools.c"
+ gdouble _tmp20_ = 0.0;
+ gboolean _tmp21_ = FALSE;
+ Box _tmp22_ = {0};
+#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = vertical_enlarged;
+#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp21_) {
+#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = 0.0;
+#line 11743 "EditingTools.c"
+ } else {
+#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = 0.5;
+#line 11747 "EditingTools.c"
+ }
+#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = vertical;
+#line 1769 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_set_area_alpha (self, &_tmp22_, _tmp20_);
+#line 11753 "EditingTools.c"
+ }
+#line 1771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = *new_crop;
+#line 1771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_paint_crop_tool (self, &_tmp23_);
+#line 1772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = *new_crop;
+#line 1772 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_invalidate_area (_tmp24_, &_tmp25_);
+#line 11765 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_crop_moved (EditingToolsCropTool* self, Box* new_crop) {
+ Box _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ Box _tmp3_ = {0};
+ Box _tmp4_ = {0};
+ Box _tmp5_ = {0};
+ Box _tmp6_ = {0};
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+ Box _tmp8_ = {0};
+#line 1775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1775 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (new_crop != NULL);
+#line 1776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = *new_crop;
+#line 1776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = box_equals (&self->priv->scaled_crop, &_tmp0_);
+#line 1776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_) {
+#line 1778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 11791 "EditingTools.c"
+ }
+#line 1781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->scaled_crop;
+#line 1781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_invalidate_area (_tmp2_, &_tmp3_);
+#line 1783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->scaled_crop;
+#line 1783 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_set_area_alpha (self, &_tmp4_, 0.5);
+#line 1784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = *new_crop;
+#line 1784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_set_area_alpha (self, &_tmp5_, 0.0);
+#line 1788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = *new_crop;
+#line 1788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_paint_crop_tool (self, &_tmp6_);
+#line 1789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = *new_crop;
+#line 1789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_invalidate_area (_tmp7_, &_tmp8_);
+#line 11817 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_set_area_alpha (EditingToolsCropTool* self, Box* area, gdouble alpha) {
+ cairo_t* ctx = NULL;
+ cairo_surface_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ Box _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ EditingToolsPhotoCanvas* _tmp9_ = NULL;
+ cairo_surface_t* _tmp10_ = NULL;
+ Box _tmp11_ = {0};
+#line 1792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (area != NULL);
+#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->crop_surface;
+#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = cairo_create (_tmp0_);
+#line 1793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ctx = _tmp1_;
+#line 1794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_operator (ctx, CAIRO_OPERATOR_SOURCE);
+#line 1795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = alpha;
+#line 1795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_source_rgba (ctx, 0.0, 0.0, 0.0, _tmp2_);
+#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = *area;
+#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.left;
+#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = *area;
+#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.top;
+#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = box_get_width (area);
+#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = box_get_height (area);
+#line 1796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_rectangle (ctx, (gdouble) _tmp4_, (gdouble) _tmp6_, (gdouble) _tmp7_, (gdouble) _tmp8_);
+#line 1797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_fill (ctx);
+#line 1798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->crop_surface;
+#line 1798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = *area;
+#line 1798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_paint_surface_area (_tmp9_, _tmp10_, &_tmp11_, TRUE);
+#line 1792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (ctx);
+#line 11877 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_paint_crop_tool (EditingToolsCropTool* self, Box* crop) {
+ BoxLocation _tmp0_ = 0;
+ EditingToolsPhotoCanvas* _tmp65_ = NULL;
+ cairo_t* _tmp66_ = NULL;
+ Box _tmp67_ = {0};
+ EditingToolsPhotoCanvas* _tmp68_ = NULL;
+ cairo_t* _tmp69_ = NULL;
+ Box _tmp70_ = {0};
+ EditingToolsPhotoCanvas* _tmp71_ = NULL;
+ cairo_t* _tmp72_ = NULL;
+ Box _tmp73_ = {0};
+#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_CROP_TOOL (self));
+#line 1801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (crop != NULL);
+#line 1803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->in_manipulation;
+#line 1803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ != BOX_LOCATION_OUTSIDE) {
+#line 11900 "EditingTools.c"
+ gint one_third_x = 0;
+ gint _tmp1_ = 0;
+ gint one_third_y = 0;
+ gint _tmp2_ = 0;
+ EditingToolsPhotoCanvas* _tmp3_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ Box _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Box _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ EditingToolsPhotoCanvas* _tmp11_ = NULL;
+ cairo_t* _tmp12_ = NULL;
+ Box _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ Box _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ EditingToolsPhotoCanvas* _tmp19_ = NULL;
+ cairo_t* _tmp20_ = NULL;
+ Box _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ Box _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ EditingToolsPhotoCanvas* _tmp27_ = NULL;
+ cairo_t* _tmp28_ = NULL;
+ Box _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ Box _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ Box adj_crop = {0};
+ EditingToolsPhotoCanvas* _tmp35_ = NULL;
+ GdkRectangle _tmp36_ = {0};
+ Dimensions _tmp37_ = {0};
+ EditingToolsPhotoCanvas* _tmp38_ = NULL;
+ Photo* _tmp39_ = NULL;
+ Photo* _tmp40_ = NULL;
+ Dimensions _tmp41_ = {0};
+ Box _tmp42_ = {0};
+ Box _tmp43_ = {0};
+ gchar* text = NULL;
+ gint _tmp44_ = 0;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gint x = 0;
+ Box _tmp54_ = {0};
+ gint _tmp55_ = 0;
+ gint _tmp56_ = 0;
+ gint y = 0;
+ Box _tmp57_ = {0};
+ gint _tmp58_ = 0;
+ gint _tmp59_ = 0;
+ EditingToolsPhotoCanvas* _tmp60_ = NULL;
+ cairo_t* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ gint _tmp63_ = 0;
+ gint _tmp64_ = 0;
+#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = box_get_width (crop);
+#line 1804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_third_x = _tmp1_ / 3;
+#line 1805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = box_get_height (crop);
+#line 1805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_third_y = _tmp2_ / 3;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->thin_white_ctx;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = *crop;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.left;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = *crop;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.top;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = one_third_y;
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = box_get_width (crop);
+#line 1807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_horizontal_line (_tmp3_, _tmp4_, _tmp6_, _tmp8_ + _tmp9_, _tmp10_, TRUE);
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->thin_white_ctx;
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = *crop;
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.left;
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = *crop;
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.top;
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = one_third_y;
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = box_get_width (crop);
+#line 1808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_horizontal_line (_tmp11_, _tmp12_, _tmp14_, _tmp16_ + (_tmp17_ * 2), _tmp18_, TRUE);
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = self->priv->thin_white_ctx;
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = *crop;
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_.left;
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = one_third_x;
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = *crop;
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_.top;
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = box_get_height (crop);
+#line 1810 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_vertical_line (_tmp19_, _tmp20_, _tmp22_ + _tmp23_, _tmp25_, _tmp26_, TRUE);
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = self->priv->thin_white_ctx;
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = *crop;
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_.left;
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = one_third_x;
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = *crop;
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = _tmp32_.top;
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = box_get_height (crop);
+#line 1811 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_vertical_line (_tmp27_, _tmp28_, _tmp30_ + (_tmp31_ * 2), _tmp33_, _tmp34_, TRUE);
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp35_, &_tmp36_);
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dimensions_for_rectangle (&_tmp36_, &_tmp37_);
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = editing_tools_photo_canvas_get_photo (_tmp38_);
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = _tmp39_;
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_CROP, &_tmp41_);
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_scaled_similar (&self->priv->scaled_crop, &_tmp37_, &_tmp41_, &_tmp42_);
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = _tmp42_;
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp40_);
+#line 1815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ adj_crop = _tmp43_;
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = box_get_width (&adj_crop);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = g_strdup_printf ("%i", _tmp44_);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = _tmp45_;
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = g_strconcat (_tmp46_, "x", NULL);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = _tmp47_;
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49_ = box_get_height (&adj_crop);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = g_strdup_printf ("%i", _tmp49_);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = _tmp50_;
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = g_strconcat (_tmp48_, _tmp51_, NULL);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = _tmp52_;
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp51_);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp48_);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp46_);
+#line 1818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ text = _tmp53_;
+#line 1819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = *crop;
+#line 1819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = _tmp54_.left;
+#line 1819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = box_get_width (crop);
+#line 1819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x = _tmp55_ + (_tmp56_ / 2);
+#line 1820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = *crop;
+#line 1820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = _tmp57_.top;
+#line 1820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = box_get_height (crop);
+#line 1820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y = _tmp58_ + (_tmp59_ / 2);
+#line 1821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = self->priv->text_ctx;
+#line 1821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp62_ = text;
+#line 1821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp63_ = x;
+#line 1821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp64_ = y;
+#line 1821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_text (_tmp60_, _tmp61_, _tmp62_, _tmp63_, _tmp64_, TRUE);
+#line 1803 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (text);
+#line 12131 "EditingTools.c"
+ }
+#line 1825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp65_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp66_ = self->priv->wide_black_ctx;
+#line 1825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67_ = *crop;
+#line 1825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_box (_tmp65_, _tmp66_, &_tmp67_);
+#line 1826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp68_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp69_ = self->priv->wide_white_ctx;
+#line 1826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_reduced (crop, 1, &_tmp70_);
+#line 1826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_box (_tmp68_, _tmp69_, &_tmp70_);
+#line 1827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp71_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp72_ = self->priv->wide_white_ctx;
+#line 1827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ box_get_reduced (crop, 2, &_tmp73_);
+#line 1827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_box (_tmp71_, _tmp72_, &_tmp73_);
+#line 12157 "EditingTools.c"
+}
+
+
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_constraint_description_construct (GType object_type, const gchar* new_name, gint new_basis_width, gint new_basis_height, gboolean new_pivotable, gfloat new_aspect_ratio) {
+ EditingToolsCropToolConstraintDescription* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gfloat _tmp4_ = 0.0F;
+ gboolean _tmp8_ = FALSE;
+#line 614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (new_name != NULL, NULL);
+#line 614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsCropToolConstraintDescription*) g_type_create_instance (object_type);
+#line 616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = new_name;
+#line 616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (self->name);
+#line 616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->name = _tmp1_;
+#line 617 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = new_basis_width;
+#line 617 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->basis_width = _tmp2_;
+#line 618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = new_basis_height;
+#line 618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->basis_height = _tmp3_;
+#line 619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = new_aspect_ratio;
+#line 619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp4_ == EDITING_TOOLS_CROP_TOOL_COMPUTE_FROM_BASIS) {
+#line 12193 "EditingTools.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 620 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->basis_width;
+#line 620 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->basis_height;
+#line 620 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->aspect_ratio = ((gfloat) _tmp5_) / ((gfloat) _tmp6_);
+#line 12202 "EditingTools.c"
+ } else {
+ gfloat _tmp7_ = 0.0F;
+#line 622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = new_aspect_ratio;
+#line 622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->aspect_ratio = _tmp7_;
+#line 12209 "EditingTools.c"
+ }
+#line 623 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = new_pivotable;
+#line 623 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->is_pivotable = _tmp8_;
+#line 614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 12217 "EditingTools.c"
+}
+
+
+static EditingToolsCropToolConstraintDescription* editing_tools_crop_tool_constraint_description_new (const gchar* new_name, gint new_basis_width, gint new_basis_height, gboolean new_pivotable, gfloat new_aspect_ratio) {
+#line 614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_crop_tool_constraint_description_construct (EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, new_name, new_basis_width, new_basis_height, new_pivotable, new_aspect_ratio);
+#line 12224 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_crop_tool_constraint_description_is_separator (EditingToolsCropToolConstraintDescription* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 626 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_CROP_TOOL_IS_CONSTRAINT_DESCRIPTION (self), FALSE);
+#line 627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->is_pivotable;
+#line 627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp1_) {
+#line 12238 "EditingTools.c"
+ gfloat _tmp2_ = 0.0F;
+#line 627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->aspect_ratio;
+#line 627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = _tmp2_ == EDITING_TOOLS_CROP_TOOL_SEPARATOR;
+#line 12244 "EditingTools.c"
+ } else {
+#line 627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = FALSE;
+#line 12248 "EditingTools.c"
+ }
+#line 627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp0_;
+#line 627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 12254 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_value_constraint_description_init (GValue* value) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 12261 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_value_constraint_description_free_value (GValue* value) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (value->data[0].v_pointer) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constraint_description_unref (value->data[0].v_pointer);
+#line 12270 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_crop_tool_value_constraint_description_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (src_value->data[0].v_pointer) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dest_value->data[0].v_pointer = editing_tools_crop_tool_constraint_description_ref (src_value->data[0].v_pointer);
+#line 12280 "EditingTools.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 12284 "EditingTools.c"
+ }
+}
+
+
+static gpointer editing_tools_crop_tool_value_constraint_description_peek_pointer (const GValue* value) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return value->data[0].v_pointer;
+#line 12292 "EditingTools.c"
+}
+
+
+static gchar* editing_tools_crop_tool_value_constraint_description_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (collect_values[0].v_pointer) {
+#line 12299 "EditingTools.c"
+ EditingToolsCropToolConstraintDescription* object;
+ object = collect_values[0].v_pointer;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 12306 "EditingTools.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 12310 "EditingTools.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = editing_tools_crop_tool_constraint_description_ref (object);
+#line 12314 "EditingTools.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 12318 "EditingTools.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 12322 "EditingTools.c"
+}
+
+
+static gchar* editing_tools_crop_tool_value_constraint_description_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ EditingToolsCropToolConstraintDescription** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!object_p) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 12333 "EditingTools.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!value->data[0].v_pointer) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = NULL;
+#line 12339 "EditingTools.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = value->data[0].v_pointer;
+#line 12343 "EditingTools.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *object_p = editing_tools_crop_tool_constraint_description_ref (value->data[0].v_pointer);
+#line 12347 "EditingTools.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 12351 "EditingTools.c"
+}
+
+
+static GParamSpec* editing_tools_crop_tool_param_spec_constraint_description (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ EditingToolsCropToolParamSpecConstraintDescription* spec;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION), NULL);
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return G_PARAM_SPEC (spec);
+#line 12365 "EditingTools.c"
+}
+
+
+static gpointer editing_tools_crop_tool_value_get_constraint_description (const GValue* value) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION), NULL);
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return value->data[0].v_pointer;
+#line 12374 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_value_set_constraint_description (GValue* value, gpointer v_object) {
+ EditingToolsCropToolConstraintDescription* old;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old = value->data[0].v_pointer;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (v_object) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = v_object;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constraint_description_ref (value->data[0].v_pointer);
+#line 12394 "EditingTools.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 12398 "EditingTools.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (old) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constraint_description_unref (old);
+#line 12404 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_crop_tool_value_take_constraint_description (GValue* value, gpointer v_object) {
+ EditingToolsCropToolConstraintDescription* old;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old = value->data[0].v_pointer;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (v_object) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION));
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = v_object;
+#line 12423 "EditingTools.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ value->data[0].v_pointer = NULL;
+#line 12427 "EditingTools.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (old) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constraint_description_unref (old);
+#line 12433 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_crop_tool_constraint_description_class_init (EditingToolsCropToolConstraintDescriptionClass * klass) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_constraint_description_parent_class = g_type_class_peek_parent (klass);
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsCropToolConstraintDescriptionClass *) klass)->finalize = editing_tools_crop_tool_constraint_description_finalize;
+#line 12443 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_constraint_description_instance_init (EditingToolsCropToolConstraintDescription * self) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->ref_count = 1;
+#line 12450 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_constraint_description_finalize (EditingToolsCropToolConstraintDescription* obj) {
+ EditingToolsCropToolConstraintDescription * self;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_CROP_TOOL_TYPE_CONSTRAINT_DESCRIPTION, EditingToolsCropToolConstraintDescription);
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_destroy (self);
+#line 608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (self->name);
+#line 12462 "EditingTools.c"
+}
+
+
+static GType editing_tools_crop_tool_constraint_description_get_type (void) {
+ static volatile gsize editing_tools_crop_tool_constraint_description_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_crop_tool_constraint_description_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { editing_tools_crop_tool_value_constraint_description_init, editing_tools_crop_tool_value_constraint_description_free_value, editing_tools_crop_tool_value_constraint_description_copy_value, editing_tools_crop_tool_value_constraint_description_peek_pointer, "p", editing_tools_crop_tool_value_constraint_description_collect_value, "p", editing_tools_crop_tool_value_constraint_description_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsCropToolConstraintDescriptionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_crop_tool_constraint_description_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsCropToolConstraintDescription), 0, (GInstanceInitFunc) editing_tools_crop_tool_constraint_description_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType editing_tools_crop_tool_constraint_description_type_id;
+ editing_tools_crop_tool_constraint_description_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsCropToolConstraintDescription", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&editing_tools_crop_tool_constraint_description_type_id__volatile, editing_tools_crop_tool_constraint_description_type_id);
+ }
+ return editing_tools_crop_tool_constraint_description_type_id__volatile;
+}
+
+
+static gpointer editing_tools_crop_tool_constraint_description_ref (gpointer instance) {
+ EditingToolsCropToolConstraintDescription* self;
+ self = instance;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return instance;
+#line 12487 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_constraint_description_unref (gpointer instance) {
+ EditingToolsCropToolConstraintDescription* self;
+ self = instance;
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_CROP_TOOL_CONSTRAINT_DESCRIPTION_GET_CLASS (self)->finalize (self);
+#line 607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 12500 "EditingTools.c"
+ }
+}
+
+
+static gboolean _editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func_gtk_tree_view_row_separator_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self) {
+ gboolean result;
+ result = editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func (model, iter);
+#line 675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 12510 "EditingTools.c"
+}
+
+
+static EditingToolsCropToolCropToolWindow* editing_tools_crop_tool_crop_tool_window_construct (GType object_type, GtkWindow* container) {
+ EditingToolsCropToolCropToolWindow * self = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ GtkComboBox* _tmp7_ = NULL;
+ GtkCellRendererText* combo_text_renderer = NULL;
+ GtkCellRendererText* _tmp8_ = NULL;
+ GtkComboBox* _tmp9_ = NULL;
+ GtkComboBox* _tmp10_ = NULL;
+ GtkComboBox* _tmp11_ = NULL;
+ GtkComboBox* _tmp12_ = NULL;
+ GtkButton* _tmp13_ = NULL;
+ GtkImage* _tmp14_ = NULL;
+ GtkImage* _tmp15_ = NULL;
+ GtkButton* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ GtkEntry* _tmp18_ = NULL;
+ GtkEntry* _tmp19_ = NULL;
+ GtkEntry* _tmp20_ = NULL;
+ GtkEntry* _tmp21_ = NULL;
+ GtkBox* _tmp22_ = NULL;
+ GtkBox* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ GtkButton* _tmp25_ = NULL;
+ GtkBox* _tmp26_ = NULL;
+ GtkButton* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+ GtkBox* _tmp29_ = NULL;
+ GtkComboBox* _tmp30_ = NULL;
+ GtkBox* _tmp31_ = NULL;
+ GtkButton* _tmp32_ = NULL;
+ GtkBox* _tmp33_ = NULL;
+ GtkBox* _tmp34_ = NULL;
+ GtkBox* _tmp35_ = NULL;
+#line 662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
+#line 663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = container;
+#line 663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsCropToolCropToolWindow*) editing_tools_editing_tool_window_construct (object_type, _tmp0_);
+#line 665 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->cancel_button;
+#line 665 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _ ("Return to current photo dimensions");
+#line 665 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), _tmp2_);
+#line 666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->cancel_button;
+#line 666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_button_set_image_position (_tmp3_, GTK_POS_LEFT);
+#line 668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->ok_button;
+#line 668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _ ("Set the crop for this photo");
+#line 668 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), _tmp5_);
+#line 669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->ok_button;
+#line 669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_button_set_image_position (_tmp6_, GTK_POS_LEFT);
+#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = (GtkComboBox*) gtk_combo_box_new ();
+#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp7_);
+#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->constraint_combo);
+#line 671 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->constraint_combo = _tmp7_;
+#line 672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp8_);
+#line 672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ combo_text_renderer = _tmp8_;
+#line 673 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->constraint_combo;
+#line 673 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (combo_text_renderer, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->constraint_combo;
+#line 674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (combo_text_renderer, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", 0);
+#line 675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->constraint_combo;
+#line 675 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_combo_box_set_row_separator_func (_tmp11_, _editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func_gtk_tree_view_row_separator_func, NULL, NULL);
+#line 676 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->constraint_combo;
+#line 676 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_combo_box_set_active (_tmp12_, 0);
+#line 678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->pivot_reticle_button;
+#line 678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = (GtkImage*) gtk_image_new_from_stock (RESOURCES_CROP_PIVOT_RETICLE, GTK_ICON_SIZE_SMALL_TOOLBAR);
+#line 678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp14_);
+#line 678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_;
+#line 678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_button_set_image (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget));
+#line 678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp15_);
+#line 680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->pivot_reticle_button;
+#line 680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _ ("Pivot the crop rectangle between portrait and landscape orientations");
+#line 680 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), _tmp17_);
+#line 682 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->custom_width_entry;
+#line 682 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_width_chars (_tmp18_, 4);
+#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = self->custom_width_entry;
+#line 683 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_set (_tmp19_, "editable", TRUE, NULL);
+#line 684 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = self->custom_height_entry;
+#line 684 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_entry_set_width_chars (_tmp20_, 4);
+#line 685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->custom_height_entry;
+#line 685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_set (_tmp21_, "editable", TRUE, NULL);
+#line 687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CONTROL_SPACING);
+#line 687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp22_);
+#line 687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->response_layout);
+#line 687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->response_layout = _tmp22_;
+#line 688 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->response_layout;
+#line 688 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_box_set_homogeneous (_tmp23_, TRUE);
+#line 689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->response_layout;
+#line 689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = self->cancel_button;
+#line 689 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget));
+#line 690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = self->response_layout;
+#line 690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = self->ok_button;
+#line 690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget));
+#line 692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_CROP_TOOL_CROP_TOOL_WINDOW_CONTROL_SPACING);
+#line 692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp28_);
+#line 692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->layout);
+#line 692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->layout = _tmp28_;
+#line 693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->layout;
+#line 693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = self->constraint_combo;
+#line 693 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_widget_get_type (), GtkWidget));
+#line 694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = self->layout;
+#line 694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = self->pivot_reticle_button;
+#line 694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget));
+#line 695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->layout;
+#line 695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = self->response_layout;
+#line 695 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
+#line 697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = self->layout;
+#line 697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_widget_get_type (), GtkWidget));
+#line 662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (combo_text_renderer);
+#line 662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 12701 "EditingTools.c"
+}
+
+
+static EditingToolsCropToolCropToolWindow* editing_tools_crop_tool_crop_tool_window_new (GtkWindow* container) {
+#line 662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_crop_tool_crop_tool_window_construct (EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, container);
+#line 12708 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_crop_tool_crop_tool_window_constraint_combo_separator_func (GtkTreeModel* model, GtkTreeIter* iter) {
+ gboolean result = FALSE;
+ GValue val = {0};
+ GtkTreeModel* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ GValue _tmp2_ = {0};
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
+#line 700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (iter != NULL, FALSE);
+#line 702 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = model;
+#line 702 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = *iter;
+#line 702 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_tree_model_get_value (_tmp0_, &_tmp1_, 0, &_tmp2_);
+#line 702 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
+#line 702 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ val = _tmp2_;
+#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = g_value_dup_string (&val);
+#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = g_strcmp0 (_tmp4_, "-") == 0;
+#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_free0 (_tmp4_);
+#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp5_;
+#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
+#line 704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 12749 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_crop_tool_window_class_init (EditingToolsCropToolCropToolWindowClass * klass) {
+#line 646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_crop_tool_window_parent_class = g_type_class_peek_parent (klass);
+#line 646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_crop_tool_crop_tool_window_finalize;
+#line 12758 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_crop_tool_window_instance_init (EditingToolsCropToolCropToolWindow * self) {
+ GtkButton* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ GtkButton* _tmp2_ = NULL;
+ GtkEntry* _tmp3_ = NULL;
+ GtkEntry* _tmp4_ = NULL;
+ GtkLabel* _tmp5_ = NULL;
+#line 649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = (GtkButton*) gtk_button_new_with_label (RESOURCES_CROP_LABEL);
+#line 649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp0_);
+#line 649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->ok_button = _tmp0_;
+#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
+#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp1_);
+#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->cancel_button = _tmp1_;
+#line 652 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = (GtkButton*) gtk_button_new ();
+#line 652 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp2_);
+#line 652 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->pivot_reticle_button = _tmp2_;
+#line 653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = (GtkEntry*) gtk_entry_new ();
+#line 653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp3_);
+#line 653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->custom_width_entry = _tmp3_;
+#line 654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = (GtkEntry*) gtk_entry_new ();
+#line 654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp4_);
+#line 654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->custom_height_entry = _tmp4_;
+#line 655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = (GtkLabel*) gtk_label_new_with_mnemonic ("x");
+#line 655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp5_);
+#line 655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->custom_mulsign_label = _tmp5_;
+#line 656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->most_recently_edited = NULL;
+#line 657 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->response_layout = NULL;
+#line 658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->layout = NULL;
+#line 659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->normal_width = -1;
+#line 660 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->normal_height = -1;
+#line 12815 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_crop_tool_window_finalize (GObject* obj) {
+ EditingToolsCropToolCropToolWindow * self;
+#line 646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_CROP_TOOL_TYPE_CROP_TOOL_WINDOW, EditingToolsCropToolCropToolWindow);
+#line 649 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->ok_button);
+#line 650 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->cancel_button);
+#line 651 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->constraint_combo);
+#line 652 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->pivot_reticle_button);
+#line 653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->custom_width_entry);
+#line 654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->custom_height_entry);
+#line 655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->custom_mulsign_label);
+#line 656 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->most_recently_edited);
+#line 657 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->response_layout);
+#line 658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->layout);
+#line 646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_crop_tool_crop_tool_window_parent_class)->finalize (obj);
+#line 12845 "EditingTools.c"
+}
+
+
+static GType editing_tools_crop_tool_crop_tool_window_get_type (void) {
+ static volatile gsize editing_tools_crop_tool_crop_tool_window_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_crop_tool_crop_tool_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsCropToolCropToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_crop_tool_crop_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsCropToolCropToolWindow), 0, (GInstanceInitFunc) editing_tools_crop_tool_crop_tool_window_instance_init, NULL };
+ GType editing_tools_crop_tool_crop_tool_window_type_id;
+ editing_tools_crop_tool_crop_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsCropToolCropToolWindow", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_crop_tool_crop_tool_window_type_id__volatile, editing_tools_crop_tool_crop_tool_window_type_id);
+ }
+ return editing_tools_crop_tool_crop_tool_window_type_id__volatile;
+}
+
+
+static void editing_tools_crop_tool_class_init (EditingToolsCropToolClass * klass) {
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_crop_tool_parent_class = g_type_class_peek_parent (klass);
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_crop_tool_finalize;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsCropToolPrivate));
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->activate = editing_tools_crop_tool_real_activate;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_keypress = editing_tools_crop_tool_real_on_keypress;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->deactivate = editing_tools_crop_tool_real_deactivate;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_tool_window = editing_tools_crop_tool_real_get_tool_window;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_display_pixbuf = editing_tools_crop_tool_real_get_display_pixbuf;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_click = editing_tools_crop_tool_real_on_left_click;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_released = editing_tools_crop_tool_real_on_left_released;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_motion = editing_tools_crop_tool_real_on_motion;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->paint = editing_tools_crop_tool_real_paint;
+#line 12886 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_instance_init (EditingToolsCropTool * self) {
+ gint _tmp0_ = 0;
+ EditingToolsCropToolConstraintDescription** _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ EditingToolsCropToolConstraintDescription** _tmp3_ = NULL;
+ EditingToolsCropToolConstraintDescription** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkListStore* _tmp5_ = NULL;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_CROP_TOOL_GET_PRIVATE (self);
+#line 708 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_tool_window = NULL;
+#line 709 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->current_cursor_type = GDK_LEFT_PTR;
+#line 710 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->in_manipulation = BOX_LOCATION_OUTSIDE;
+#line 711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->wide_black_ctx = NULL;
+#line 712 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->wide_white_ctx = NULL;
+#line 713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->thin_white_ctx = NULL;
+#line 714 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->text_ctx = NULL;
+#line 717 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->crop_surface = NULL;
+#line 721 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_x = -1;
+#line 722 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->last_grab_y = -1;
+#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = editing_tools_crop_tool_create_constraints (&_tmp0_);
+#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraints = _tmp1_;
+#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraints_length1 = _tmp0_;
+#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->_constraints_size_ = self->priv->constraints_length1;
+#line 725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_crop_tool_create_constraints (&_tmp2_);
+#line 725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4__length1 = _tmp2_;
+#line 725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = editing_tools_crop_tool_create_constraint_list (_tmp4_, _tmp2_);
+#line 725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraint_list = _tmp5_;
+#line 725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) editing_tools_crop_tool_constraint_description_unref), NULL);
+#line 726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reticle_orientation = EDITING_TOOLS_CROP_TOOL_RETICLE_ORIENTATION_LANDSCAPE;
+#line 727 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraint_mode = EDITING_TOOLS_CROP_TOOL_CONSTRAINT_MODE_NORMAL;
+#line 728 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->entry_insert_in_progress = FALSE;
+#line 729 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_aspect_ratio = 1.0f;
+#line 730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_width = -1;
+#line 731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_height = -1;
+#line 732 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_width = -1;
+#line 733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->custom_init_height = -1;
+#line 734 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->pre_aspect_ratio = EDITING_TOOLS_CROP_TOOL_ANY_ASPECT_RATIO;
+#line 12958 "EditingTools.c"
+}
+
+
+static void editing_tools_crop_tool_finalize (EditingToolsEditingTool* obj) {
+ EditingToolsCropTool * self;
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_CROP_TOOL, EditingToolsCropTool);
+#line 708 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->crop_tool_window);
+#line 711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->wide_black_ctx);
+#line 712 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->wide_white_ctx);
+#line 713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->thin_white_ctx);
+#line 714 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->text_ctx);
+#line 717 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_surface_destroy0 (self->priv->crop_surface);
+#line 724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->constraints = (_vala_array_free (self->priv->constraints, self->priv->constraints_length1, (GDestroyNotify) editing_tools_crop_tool_constraint_description_unref), NULL);
+#line 725 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->constraint_list);
+#line 586 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_crop_tool_parent_class)->finalize (obj);
+#line 12984 "EditingTools.c"
+}
+
+
+GType editing_tools_crop_tool_get_type (void) {
+ static volatile gsize editing_tools_crop_tool_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_crop_tool_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsCropToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_crop_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsCropTool), 0, (GInstanceInitFunc) editing_tools_crop_tool_instance_init, NULL };
+ GType editing_tools_crop_tool_type_id;
+ editing_tools_crop_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsCropTool", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_crop_tool_type_id__volatile, editing_tools_crop_tool_type_id);
+ }
+ return editing_tools_crop_tool_type_id__volatile;
+}
+
+
+static void editing_tools_redeye_instance_init (EditingToolsRedeyeInstance *self) {
+ GdkPoint default_center = {0};
+ GdkPoint _tmp0_ = {0};
+#line 1840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ memset (self, 0, sizeof (EditingToolsRedeyeInstance));
+#line 1841 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ memset (&default_center, 0, sizeof (GdkPoint));
+#line 1842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = default_center;
+#line 1842 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*self).center = _tmp0_;
+#line 1843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ (*self).radius = EDITING_TOOLS_REDEYE_INSTANCE_DEFAULT_RADIUS;
+#line 13013 "EditingTools.c"
+}
+
+
+void editing_tools_redeye_instance_to_bounds_rect (EditingToolsRedeyeInstance* inst, GdkRectangle* result) {
+ GdkRectangle _result_ = {0};
+ EditingToolsRedeyeInstance _tmp0_ = {0};
+ GdkPoint _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ EditingToolsRedeyeInstance _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ EditingToolsRedeyeInstance _tmp5_ = {0};
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ EditingToolsRedeyeInstance _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ EditingToolsRedeyeInstance _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 1846 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (inst != NULL);
+#line 1847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ memset (&_result_, 0, sizeof (GdkRectangle));
+#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = *inst;
+#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_.center;
+#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_.x;
+#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = *inst;
+#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.radius;
+#line 1848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.x = _tmp2_ - _tmp4_;
+#line 1849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = *inst;
+#line 1849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.center;
+#line 1849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.y;
+#line 1849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = *inst;
+#line 1849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.radius;
+#line 1849 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.y = _tmp7_ - _tmp9_;
+#line 1850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = *inst;
+#line 1850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.radius;
+#line 1850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.width = 2 * _tmp11_;
+#line 1851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _result_;
+#line 1851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.width;
+#line 1851 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.height = _tmp13_;
+#line 1853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _result_;
+#line 1853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 13077 "EditingTools.c"
+}
+
+
+void editing_tools_redeye_instance_from_bounds_rect (GdkRectangle* rect, EditingToolsRedeyeInstance* result) {
+ GdkRectangle in_rect = {0};
+ GdkRectangle _tmp0_ = {0};
+ EditingToolsRedeyeInstance _result_ = {0};
+ GdkRectangle _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ EditingToolsRedeyeInstance _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ EditingToolsRedeyeInstance _tmp11_ = {0};
+ gint _tmp12_ = 0;
+#line 1856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (rect != NULL);
+#line 1857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = *rect;
+#line 1857 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ in_rect = _tmp0_;
+#line 1859 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_instance_init (&_result_);
+#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = in_rect;
+#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_.width;
+#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = in_rect;
+#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.height;
+#line 1860 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.radius = (_tmp2_ + _tmp4_) / 4;
+#line 1861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = in_rect;
+#line 1861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.x;
+#line 1861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _result_;
+#line 1861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.radius;
+#line 1861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.center.x = _tmp6_ + _tmp8_;
+#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = in_rect;
+#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.y;
+#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _result_;
+#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.radius;
+#line 1862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.center.y = _tmp10_ + _tmp12_;
+#line 1864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _result_;
+#line 1864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 13139 "EditingTools.c"
+}
+
+
+EditingToolsRedeyeInstance* editing_tools_redeye_instance_dup (const EditingToolsRedeyeInstance* self) {
+ EditingToolsRedeyeInstance* dup;
+#line 1832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dup = g_new0 (EditingToolsRedeyeInstance, 1);
+#line 1832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ memcpy (dup, self, sizeof (EditingToolsRedeyeInstance));
+#line 1832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return dup;
+#line 13151 "EditingTools.c"
+}
+
+
+void editing_tools_redeye_instance_free (EditingToolsRedeyeInstance* self) {
+#line 1832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_free (self);
+#line 13158 "EditingTools.c"
+}
+
+
+GType editing_tools_redeye_instance_get_type (void) {
+ static volatile gsize editing_tools_redeye_instance_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_redeye_instance_type_id__volatile)) {
+ GType editing_tools_redeye_instance_type_id;
+ editing_tools_redeye_instance_type_id = g_boxed_type_register_static ("EditingToolsRedeyeInstance", (GBoxedCopyFunc) editing_tools_redeye_instance_dup, (GBoxedFreeFunc) editing_tools_redeye_instance_free);
+ g_once_init_leave (&editing_tools_redeye_instance_type_id__volatile, editing_tools_redeye_instance_type_id);
+ }
+ return editing_tools_redeye_instance_type_id__volatile;
+}
+
+
+static EditingToolsRedeyeTool* editing_tools_redeye_tool_construct (GType object_type) {
+ EditingToolsRedeyeTool* self = NULL;
+#line 1916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsRedeyeTool*) editing_tools_editing_tool_construct (object_type, "RedeyeTool");
+#line 1915 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 13179 "EditingTools.c"
+}
+
+
+static EditingToolsRedeyeTool* editing_tools_redeye_tool_new (void) {
+#line 1915 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_redeye_tool_construct (EDITING_TOOLS_TYPE_REDEYE_TOOL);
+#line 13186 "EditingTools.c"
+}
+
+
+EditingToolsRedeyeTool* editing_tools_redeye_tool_factory (void) {
+ EditingToolsRedeyeTool* result = NULL;
+ EditingToolsRedeyeTool* _tmp0_ = NULL;
+#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_redeye_tool_new ();
+#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp0_;
+#line 1920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 13199 "EditingTools.c"
+}
+
+
+gboolean editing_tools_redeye_tool_is_available (Photo* photo, Scaling* scaling) {
+ gboolean result = FALSE;
+ Dimensions dim = {0};
+ Photo* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+#line 1923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 1923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 1924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = photo;
+#line 1924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp1_);
+#line 1924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaling_get_scaled_dimensions (scaling, &_tmp1_, &_tmp2_);
+#line 1924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dim = _tmp2_;
+#line 1926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = dim;
+#line 1926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_.width;
+#line 1926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_ >= (EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS * 2)) {
+#line 13230 "EditingTools.c"
+ Dimensions _tmp6_ = {0};
+ gint _tmp7_ = 0;
+#line 1927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = dim;
+#line 1927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.height;
+#line 1927 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp7_ >= (EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS * 2);
+#line 13239 "EditingTools.c"
+ } else {
+#line 1926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = FALSE;
+#line 13243 "EditingTools.c"
+ }
+#line 1926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp3_;
+#line 1926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 13249 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_new_interaction_instance (EditingToolsRedeyeTool* self, EditingToolsPhotoCanvas* canvas, EditingToolsRedeyeInstance* result) {
+ GdkRectangle photo_bounds = {0};
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ GdkPoint photo_center = {0};
+ GdkPoint _tmp2_ = {0};
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ EditingToolsRedeyeInstance _result_ = {0};
+ GdkPoint _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkPoint _tmp13_ = {0};
+ gint _tmp14_ = 0;
+#line 1930 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 1930 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 1931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 1931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
+#line 1931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_bounds = _tmp1_;
+#line 1932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_.x = 0;
+#line 1932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_center = _tmp2_;
+#line 1933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = photo_bounds;
+#line 1933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.x;
+#line 1933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = photo_bounds;
+#line 1933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.width;
+#line 1933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_center.x = _tmp4_ + (_tmp6_ / 2);
+#line 1934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = photo_bounds;
+#line 1934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.y;
+#line 1934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = photo_bounds;
+#line 1934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.height;
+#line 1934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_center.y = _tmp8_ + (_tmp10_ / 2);
+#line 1936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_instance_init (&_result_);
+#line 1937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = photo_center;
+#line 1937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.x;
+#line 1937 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.center.x = _tmp12_;
+#line 1938 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = photo_center;
+#line 1938 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.y;
+#line 1938 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.center.y = _tmp14_;
+#line 1939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _result_.radius = EDITING_TOOLS_REDEYE_INSTANCE_DEFAULT_RADIUS;
+#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *result = _result_;
+#line 1941 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 13326 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_prepare_ctx (EditingToolsRedeyeTool* self, cairo_t* ctx, Dimensions* dim) {
+ cairo_t* _tmp0_ = NULL;
+ cairo_surface_t* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ cairo_t* _tmp3_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ cairo_t* _tmp5_ = NULL;
+ cairo_surface_t* _tmp6_ = NULL;
+ cairo_t* _tmp7_ = NULL;
+ cairo_t* _tmp8_ = NULL;
+ cairo_t* _tmp9_ = NULL;
+#line 1944 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 1944 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 1944 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (dim != NULL);
+#line 1945 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = ctx;
+#line 1945 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = cairo_get_target (_tmp0_);
+#line 1945 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = cairo_create (_tmp1_);
+#line 1945 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->wider_gray_ctx);
+#line 1945 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->wider_gray_ctx = _tmp2_;
+#line 1946 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->wider_gray_ctx;
+#line 1946 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp3_, "#111");
+#line 1947 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->wider_gray_ctx;
+#line 1947 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_line_width (_tmp4_, (gdouble) 3);
+#line 1949 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = ctx;
+#line 1949 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = cairo_get_target (_tmp5_);
+#line 1949 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = cairo_create (_tmp6_);
+#line 1949 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->thin_white_ctx);
+#line 1949 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->thin_white_ctx = _tmp7_;
+#line 1950 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->thin_white_ctx;
+#line 1950 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ set_source_color_from_string (_tmp8_, "#FFF");
+#line 1951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->thin_white_ctx;
+#line 1951 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cairo_set_line_width (_tmp9_, (gdouble) 1);
+#line 13383 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_draw_redeye_instance (EditingToolsRedeyeTool* self, EditingToolsRedeyeInstance* inst) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ EditingToolsRedeyeInstance _tmp2_ = {0};
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ EditingToolsRedeyeInstance _tmp5_ = {0};
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ EditingToolsRedeyeInstance _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ EditingToolsPhotoCanvas* _tmp10_ = NULL;
+ cairo_t* _tmp11_ = NULL;
+ EditingToolsRedeyeInstance _tmp12_ = {0};
+ GdkPoint _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ EditingToolsRedeyeInstance _tmp15_ = {0};
+ GdkPoint _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ EditingToolsRedeyeInstance _tmp18_ = {0};
+ gint _tmp19_ = 0;
+#line 1954 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 1954 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (inst != NULL);
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->wider_gray_ctx;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = *inst;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_.center;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.x;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = *inst;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.center;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.y;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = *inst;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.radius;
+#line 1955 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_circle (_tmp0_, _tmp1_, _tmp4_, _tmp7_, _tmp9_);
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->thin_white_ctx;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = *inst;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.center;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.x;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = *inst;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.center;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_.y;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = *inst;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_.radius;
+#line 1957 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_draw_circle (_tmp10_, _tmp11_, _tmp14_, _tmp17_, _tmp19_);
+#line 13456 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_redeye_tool_on_size_slider_adjust (EditingToolsRedeyeTool* self, GtkScrollType type) {
+ gboolean result = FALSE;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ EditingToolsPhotoCanvas* _tmp3_ = NULL;
+#line 1961 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self), FALSE);
+#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->redeye_tool_window;
+#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->slider;
+#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 1962 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.radius = (gint) _tmp2_;
+#line 1965 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1965 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp3_);
+#line 1967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 1967 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 13484 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_on_apply (EditingToolsRedeyeTool* self) {
+ GdkRectangle bounds_rect_user = {0};
+ EditingToolsRedeyeInstance _tmp0_ = {0};
+ GdkRectangle _tmp1_ = {0};
+ GdkRectangle bounds_rect_active = {0};
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ GdkRectangle _tmp3_ = {0};
+ GdkRectangle _tmp4_ = {0};
+ GdkRectangle bounds_rect_unscaled = {0};
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+ GdkRectangle _tmp6_ = {0};
+ GdkRectangle _tmp7_ = {0};
+ GdkRectangle bounds_rect_raw = {0};
+ EditingToolsPhotoCanvas* _tmp8_ = NULL;
+ GdkRectangle _tmp9_ = {0};
+ GdkRectangle _tmp10_ = {0};
+ EditingToolsRedeyeInstance instance_raw = {0};
+ GdkRectangle _tmp11_ = {0};
+ EditingToolsRedeyeInstance _tmp12_ = {0};
+ Dimensions dimensions = {0};
+ EditingToolsPhotoCanvas* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ Photo* _tmp15_ = NULL;
+ Dimensions _tmp16_ = {0};
+ Dimensions _tmp17_ = {0};
+ gdouble theta = 0.0;
+ EditingToolsPhotoCanvas* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ gdouble _tmp21_ = 0.0;
+ EditingToolsRedeyeInstance _tmp22_ = {0};
+ GdkPoint _tmp23_ = {0};
+ Dimensions _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ Dimensions _tmp26_ = {0};
+ gint _tmp27_ = 0;
+ gdouble _tmp28_ = 0.0;
+ GdkPoint _tmp29_ = {0};
+ RedeyeCommand* command = NULL;
+ EditingToolsPhotoCanvas* _tmp30_ = NULL;
+ Photo* _tmp31_ = NULL;
+ Photo* _tmp32_ = NULL;
+ EditingToolsRedeyeInstance _tmp33_ = {0};
+ RedeyeCommand* _tmp34_ = NULL;
+ RedeyeCommand* _tmp35_ = NULL;
+ CommandManager* _tmp36_ = NULL;
+ CommandManager* _tmp37_ = NULL;
+#line 1970 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 1971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->user_interaction_instance;
+#line 1971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_instance_to_bounds_rect (&_tmp0_, &_tmp1_);
+#line 1971 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bounds_rect_user = _tmp1_;
+#line 1974 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1974 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = bounds_rect_user;
+#line 1974 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_user_to_active_rect (_tmp2_, &_tmp3_, &_tmp4_);
+#line 1974 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bounds_rect_active = _tmp4_;
+#line 1976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = bounds_rect_active;
+#line 1976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_active_to_unscaled_rect (_tmp5_, &_tmp6_, &_tmp7_);
+#line 1976 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bounds_rect_unscaled = _tmp7_;
+#line 1978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = bounds_rect_unscaled;
+#line 1978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_unscaled_to_raw_rect (_tmp8_, &_tmp9_, &_tmp10_);
+#line 1978 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bounds_rect_raw = _tmp10_;
+#line 1981 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = bounds_rect_raw;
+#line 1981 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_instance_from_bounds_rect (&_tmp11_, &_tmp12_);
+#line 1981 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ instance_raw = _tmp12_;
+#line 1986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = editing_tools_photo_canvas_get_photo (_tmp13_);
+#line 1986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_;
+#line 1986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_STRAIGHTEN | PHOTO_EXCEPTION_CROP, &_tmp16_);
+#line 1986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_;
+#line 1986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp15_);
+#line 1986 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dimensions = _tmp17_;
+#line 1989 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ theta = 0.0;
+#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = editing_tools_photo_canvas_get_photo (_tmp18_);
+#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_;
+#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo_get_straighten (_tmp20_, &_tmp21_);
+#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ theta = _tmp21_;
+#line 1991 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = instance_raw;
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_.center;
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = dimensions;
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_.width;
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = dimensions;
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = _tmp26_.height;
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = theta;
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ derotate_point_arb (&_tmp23_, _tmp25_, _tmp27_, _tmp28_, &_tmp29_);
+#line 1993 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ instance_raw.center = _tmp29_;
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = editing_tools_photo_canvas_get_photo (_tmp30_);
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = _tmp31_;
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = instance_raw;
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = redeye_command_new (_tmp32_, &_tmp33_, RESOURCES_RED_EYE_LABEL, RESOURCES_RED_EYE_TOOLTIP);
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = _tmp34_;
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp32_);
+#line 1996 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command = _tmp35_;
+#line 1998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = app_window_get_command_manager ();
+#line 1998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = _tmp36_;
+#line 1998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command_manager_execute (_tmp37_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
+#line 1998 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _command_manager_unref0 (_tmp37_);
+#line 1970 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (command);
+#line 13645 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_on_photos_altered (EditingToolsRedeyeTool* self, GeeMap* map) {
+ GeeMap* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ EditingToolsPhotoCanvas* _tmp17_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 2001 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = map;
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = gee_map_has_key (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = !_tmp4_;
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2002 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_) {
+#line 2003 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 13680 "EditingTools.c"
+ }
+ {
+ GdkPixbuf* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ EditingToolsPhotoCanvas* _tmp10_ = NULL;
+ Scaling _tmp11_ = {0};
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = editing_tools_photo_canvas_get_photo (_tmp7_);
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaling (_tmp10_, &_tmp11_);
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp11_, &_inner_error_);
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp9_);
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp13_;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 13712 "EditingTools.c"
+ goto __catch20_g_error;
+ }
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp6_;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = NULL;
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->current_pixbuf);
+#line 2006 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->current_pixbuf = _tmp14_;
+#line 2005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp6_);
+#line 13725 "EditingTools.c"
+ }
+ goto __finally20;
+ __catch20_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 2005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ err = _inner_error_;
+#line 2005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _inner_error_ = NULL;
+#line 2008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = err;
+#line 2008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_->message;
+#line 2008 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_warning ("EditingTools.vala:2008: %s", _tmp16_);
+#line 2009 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "aborted");
+#line 2011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_error_free0 (err);
+#line 2011 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 13749 "EditingTools.c"
+ }
+ __finally20:
+#line 2005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 2005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_clear_error (&_inner_error_);
+#line 2005 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 13760 "EditingTools.c"
+ }
+#line 2014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2014 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp17_);
+#line 13766 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_on_close (EditingToolsRedeyeTool* self) {
+ GdkPixbuf* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+#line 2017 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 2018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->current_pixbuf;
+#line 2018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
+#line 2018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 2018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp4_);
+#line 2018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "applied", NULL, _tmp0_, &_tmp4_, FALSE);
+#line 2018 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp3_);
+#line 13792 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_on_canvas_resize (EditingToolsRedeyeTool* self) {
+ GdkRectangle scaled_pixbuf_position = {0};
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gdouble scale_factor = 0.0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ EditingToolsRedeyeInstance _tmp12_ = {0};
+ GdkPoint _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ EditingToolsRedeyeInstance _tmp15_ = {0};
+ GdkPoint _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ GdkRectangle _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ GdkRectangle _tmp24_ = {0};
+#line 2021 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 2022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp0_, &_tmp1_);
+#line 2022 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scaled_pixbuf_position = _tmp1_;
+#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->user_interaction_instance.center.x;
+#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->old_scaled_pixbuf_position;
+#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.x;
+#line 2025 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.x = _tmp2_ - _tmp4_;
+#line 2026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->user_interaction_instance.center.y;
+#line 2026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->old_scaled_pixbuf_position;
+#line 2026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_.y;
+#line 2026 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.y = _tmp5_ - _tmp7_;
+#line 2028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = scaled_pixbuf_position;
+#line 2028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.width;
+#line 2028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->old_scaled_pixbuf_position;
+#line 2028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_.width;
+#line 2028 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ scale_factor = ((gdouble) _tmp9_) / ((gdouble) _tmp11_);
+#line 2031 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->user_interaction_instance;
+#line 2031 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_.center;
+#line 2031 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.x;
+#line 2031 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.x = (gint) ((((gdouble) _tmp14_) * scale_factor) + 0.5);
+#line 2034 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->user_interaction_instance;
+#line 2034 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.center;
+#line 2034 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_.y;
+#line 2034 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.y = (gint) ((((gdouble) _tmp17_) * scale_factor) + 0.5);
+#line 2038 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->user_interaction_instance.center.x;
+#line 2038 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = scaled_pixbuf_position;
+#line 2038 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_.x;
+#line 2038 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.x = _tmp18_ + _tmp20_;
+#line 2039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->user_interaction_instance.center.y;
+#line 2039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = scaled_pixbuf_position;
+#line 2039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_.y;
+#line 2039 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.y = _tmp21_ + _tmp23_;
+#line 2041 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = scaled_pixbuf_position;
+#line 2041 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->old_scaled_pixbuf_position = _tmp24_;
+#line 2043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->current_pixbuf);
+#line 2043 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->current_pixbuf = NULL;
+#line 13898 "EditingTools.c"
+}
+
+
+static void _editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 2066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_on_photos_altered ((EditingToolsRedeyeTool*) self, items);
+#line 13905 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsRedeyeTool * self;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsRedeyeInstance _tmp1_ = {0};
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ cairo_t* _tmp3_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+ Dimensions _tmp6_ = {0};
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+ EditingToolsPhotoCanvas* _tmp8_ = NULL;
+ GdkRectangle _tmp9_ = {0};
+ EditingToolsPhotoCanvas* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ EditingToolsPhotoCanvas* _tmp12_ = NULL;
+ GtkWindow* _tmp13_ = NULL;
+ GtkWindow* _tmp14_ = NULL;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp15_ = NULL;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp16_ = NULL;
+ GtkScale* _tmp17_ = NULL;
+ EditingToolsRedeyeInstance _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ GdkCursor* _tmp20_ = NULL;
+ GdkCursor* _tmp21_ = NULL;
+ DataCollection* owner = NULL;
+ EditingToolsPhotoCanvas* _tmp22_ = NULL;
+ Photo* _tmp23_ = NULL;
+ Photo* _tmp24_ = NULL;
+ DataCollection* _tmp25_ = NULL;
+ DataCollection* _tmp26_ = NULL;
+ DataCollection* _tmp27_ = NULL;
+ EditingToolsPhotoCanvas* _tmp29_ = NULL;
+#line 2046 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2046 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_new_interaction_instance (self, _tmp0_, &_tmp1_);
+#line 2047 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance = _tmp1_;
+#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = canvas;
+#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_photo_canvas_get_default_ctx (_tmp2_);
+#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = canvas;
+#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_surface_dim (_tmp5_, &_tmp6_);
+#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_prepare_ctx (self, _tmp4_, &_tmp6_);
+#line 2049 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (_tmp4_);
+#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = canvas;
+#line 2051 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_bind_canvas_handlers (self, _tmp7_);
+#line 2053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = canvas;
+#line 2053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp8_, &_tmp9_);
+#line 2053 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->old_scaled_pixbuf_position = _tmp9_;
+#line 2054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = canvas;
+#line 2054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp10_);
+#line 2054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->current_pixbuf);
+#line 2054 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->current_pixbuf = _tmp11_;
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = canvas;
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = editing_tools_photo_canvas_get_container (_tmp12_);
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_;
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = editing_tools_redeye_tool_redeye_tool_window_new (_tmp14_);
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp15_);
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->redeye_tool_window);
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->redeye_tool_window = _tmp15_;
+#line 2056 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->priv->redeye_tool_window;
+#line 2057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_->slider;
+#line 2057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->user_interaction_instance;
+#line 2057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_.radius;
+#line 2057 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_range_get_type (), GtkRange), (gdouble) _tmp19_);
+#line 2059 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_bind_window_handlers (self);
+#line 2061 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = gdk_cursor_new (GDK_LEFT_PTR);
+#line 2061 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->cached_arrow_cursor);
+#line 2061 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->cached_arrow_cursor = _tmp20_;
+#line 2062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = gdk_cursor_new (GDK_FLEUR);
+#line 2062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->cached_grab_cursor);
+#line 2062 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->cached_grab_cursor = _tmp21_;
+#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = canvas;
+#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = editing_tools_photo_canvas_get_photo (_tmp22_);
+#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = _tmp23_;
+#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_DATA_OBJECT, DataObject));
+#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_;
+#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp24_);
+#line 2064 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ owner = _tmp26_;
+#line 2065 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = owner;
+#line 2065 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp27_ != NULL) {
+#line 14041 "EditingTools.c"
+ DataCollection* _tmp28_ = NULL;
+#line 2066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = owner;
+#line 2066 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp28_, "items-altered", (GCallback) _editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered, self);
+#line 14047 "EditingTools.c"
+ }
+#line 2068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = canvas;
+#line 2068 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp29_);
+#line 2046 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _data_collection_unref0 (owner);
+#line 14055 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_real_deactivate (EditingToolsEditingTool* base) {
+ EditingToolsRedeyeTool * self;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp10_ = NULL;
+#line 2071 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2072 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2072 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ != NULL) {
+#line 14069 "EditingTools.c"
+ DataCollection* owner = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ DataCollection* _tmp4_ = NULL;
+ DataCollection* _tmp5_ = NULL;
+ DataCollection* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp9_ = NULL;
+#line 2073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
+#line 2073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 2073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 2073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_;
+#line 2073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2073 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ owner = _tmp5_;
+#line 2074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = owner;
+#line 2074 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp6_ != NULL) {
+#line 14096 "EditingTools.c"
+ DataCollection* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 2075 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = owner;
+#line 2075 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp8_, NULL, FALSE);
+#line 2075 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_photos_altered_data_collection_items_altered, self);
+#line 14105 "EditingTools.c"
+ }
+#line 2077 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2077 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_unbind_canvas_handlers (self, _tmp9_);
+#line 2072 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _data_collection_unref0 (owner);
+#line 14113 "EditingTools.c"
+ }
+#line 2080 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->redeye_tool_window;
+#line 2080 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp10_ != NULL) {
+#line 14119 "EditingTools.c"
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp11_ = NULL;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp12_ = NULL;
+#line 2081 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_unbind_window_handlers (self);
+#line 2082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->redeye_tool_window;
+#line 2082 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
+#line 2083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->redeye_tool_window;
+#line 2083 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 2084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->redeye_tool_window);
+#line 2084 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->redeye_tool_window = NULL;
+#line 14136 "EditingTools.c"
+ }
+#line 2087 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 14140 "EditingTools.c"
+}
+
+
+static void _editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface (EditingToolsPhotoCanvas* _sender, cairo_t* ctx, Dimensions* dim, gpointer self) {
+#line 2091 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_prepare_ctx ((EditingToolsRedeyeTool*) self, ctx, dim);
+#line 14147 "EditingTools.c"
+}
+
+
+static void _editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self) {
+#line 2092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_on_canvas_resize ((EditingToolsRedeyeTool*) self);
+#line 14154 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_bind_canvas_handlers (EditingToolsRedeyeTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+#line 2090 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 2090 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 2091 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 2091 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp0_, "new-surface", (GCallback) _editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
+#line 2092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = canvas;
+#line 2092 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp1_, "resized-scaled-pixbuf", (GCallback) _editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 14173 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_unbind_canvas_handlers (EditingToolsRedeyeTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 2095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 2095 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 2096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 2096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("new-surface", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp1_, NULL, FALSE);
+#line 2096 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_redeye_tool_prepare_ctx_editing_tools_photo_canvas_new_surface, self);
+#line 2097 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = canvas;
+#line 2097 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp3_, NULL, FALSE);
+#line 2097 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 14198 "EditingTools.c"
+}
+
+
+static void _editing_tools_redeye_tool_on_apply_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 2101 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_on_apply ((EditingToolsRedeyeTool*) self);
+#line 14205 "EditingTools.c"
+}
+
+
+static void _editing_tools_redeye_tool_on_close_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 2102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_on_close ((EditingToolsRedeyeTool*) self);
+#line 14212 "EditingTools.c"
+}
+
+
+static gboolean _editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value (GtkRange* _sender, GtkScrollType scroll, gdouble new_value, gpointer self) {
+ gboolean result;
+ result = editing_tools_redeye_tool_on_size_slider_adjust ((EditingToolsRedeyeTool*) self, scroll);
+#line 2103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 14221 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_bind_window_handlers (EditingToolsRedeyeTool* self) {
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp4_ = NULL;
+ GtkScale* _tmp5_ = NULL;
+#line 2100 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 2101 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->redeye_tool_window;
+#line 2101 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->apply_button;
+#line 2101 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp1_, "clicked", (GCallback) _editing_tools_redeye_tool_on_apply_gtk_button_clicked, self);
+#line 2102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->redeye_tool_window;
+#line 2102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->close_button;
+#line 2102 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp3_, "clicked", (GCallback) _editing_tools_redeye_tool_on_close_gtk_button_clicked, self);
+#line 2103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->redeye_tool_window;
+#line 2103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_->slider;
+#line 2103 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_range_get_type (), GtkRange), "change-value", (GCallback) _editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value, self);
+#line 14252 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_unbind_window_handlers (EditingToolsRedeyeTool* self) {
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp6_ = NULL;
+ GtkScale* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 2106 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_REDEYE_TOOL (self));
+#line 2107 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->redeye_tool_window;
+#line 2107 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->apply_button;
+#line 2107 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp2_, NULL, FALSE);
+#line 2107 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_apply_gtk_button_clicked, self);
+#line 2108 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->redeye_tool_window;
+#line 2108 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_->close_button;
+#line 2108 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp5_, NULL, FALSE);
+#line 2108 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_close_gtk_button_clicked, self);
+#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->redeye_tool_window;
+#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_->slider;
+#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("change-value", gtk_range_get_type (), &_tmp8_, NULL, FALSE);
+#line 2109 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_redeye_tool_on_size_slider_adjust_gtk_range_change_value, self);
+#line 14292 "EditingTools.c"
+}
+
+
+static EditingToolsEditingToolWindow* editing_tools_redeye_tool_real_get_tool_window (EditingToolsEditingTool* base) {
+ EditingToolsRedeyeTool * self;
+ EditingToolsEditingToolWindow* result = NULL;
+ EditingToolsRedeyeToolRedeyeToolWindow* _tmp0_ = NULL;
+ EditingToolsEditingToolWindow* _tmp1_ = NULL;
+#line 2112 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->redeye_tool_window;
+#line 2113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow));
+#line 2113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 2113 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 14311 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx) {
+ EditingToolsRedeyeTool * self;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ EditingToolsPhotoCanvas* _tmp6_ = NULL;
+ EditingToolsRedeyeInstance active_inst = {0};
+ EditingToolsRedeyeInstance _tmp7_ = {0};
+ EditingToolsPhotoCanvas* _tmp8_ = NULL;
+ EditingToolsRedeyeInstance _tmp9_ = {0};
+ GdkPoint _tmp10_ = {0};
+ GdkPoint _tmp11_ = {0};
+ EditingToolsRedeyeInstance _tmp12_ = {0};
+#line 2116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->current_pixbuf;
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_ != NULL) {
+#line 14335 "EditingTools.c"
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->current_pixbuf;
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp0_);
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = _tmp3_;
+#line 14346 "EditingTools.c"
+ } else {
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp4_);
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp0_);
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = _tmp5_;
+#line 14358 "EditingTools.c"
+ }
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2117 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_paint_pixbuf (_tmp6_, _tmp0_);
+#line 2121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->user_interaction_instance;
+#line 2121 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_inst = _tmp7_;
+#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->user_interaction_instance;
+#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.center;
+#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_user_to_active_point (_tmp8_, &_tmp10_, &_tmp11_);
+#line 2122 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_inst.center = _tmp11_;
+#line 2124 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = active_inst;
+#line 2124 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_draw_redeye_instance (self, &_tmp12_);
+#line 2116 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp0_);
+#line 14384 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y) {
+ EditingToolsRedeyeTool * self;
+ GdkRectangle bounds_rect = {0};
+ EditingToolsRedeyeInstance _tmp0_ = {0};
+ GdkRectangle _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+#line 2127 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2128 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->user_interaction_instance;
+#line 2128 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_instance_to_bounds_rect (&_tmp0_, &_tmp1_);
+#line 2128 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bounds_rect = _tmp1_;
+#line 2131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = x;
+#line 2131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = y;
+#line 2131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = bounds_rect;
+#line 2131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = coord_in_rectangle (_tmp2_, _tmp3_, &_tmp4_);
+#line 2131 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_) {
+#line 14415 "EditingTools.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ EditingToolsRedeyeInstance _tmp8_ = {0};
+ GdkPoint _tmp9_ = {0};
+#line 2132 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->is_reticle_move_in_progress = TRUE;
+#line 2133 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = x;
+#line 2133 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reticle_move_mouse_start_point.x = _tmp6_;
+#line 2134 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = y;
+#line 2134 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reticle_move_mouse_start_point.y = _tmp7_;
+#line 2135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->user_interaction_instance;
+#line 2135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_.center;
+#line 2135 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reticle_move_anchor = _tmp9_;
+#line 14436 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_redeye_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y) {
+ EditingToolsRedeyeTool * self;
+#line 2139 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2140 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->is_reticle_move_in_progress = FALSE;
+#line 14447 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask) {
+ EditingToolsRedeyeTool * self;
+ gboolean _tmp0_ = FALSE;
+#line 2143 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->is_reticle_move_in_progress;
+#line 2144 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 14460 "EditingTools.c"
+ GdkRectangle active_region_rect = {0};
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ GdkRectangle _tmp2_ = {0};
+ gint x_clamp_low = 0;
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ EditingToolsRedeyeInstance _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ gint y_clamp_low = 0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ EditingToolsRedeyeInstance _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ gint x_clamp_high = 0;
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkRectangle _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ EditingToolsRedeyeInstance _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gint y_clamp_high = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkRectangle _tmp19_ = {0};
+ gint _tmp20_ = 0;
+ EditingToolsRedeyeInstance _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gint delta_x = 0;
+ gint _tmp23_ = 0;
+ GdkPoint _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ gint delta_y = 0;
+ gint _tmp26_ = 0;
+ GdkPoint _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GdkPoint _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ GdkPoint _tmp32_ = {0};
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ GdkPoint _tmp35_ = {0};
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ GdkPoint _tmp41_ = {0};
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+ gint _tmp46_ = 0;
+ EditingToolsPhotoCanvas* _tmp47_ = NULL;
+#line 2146 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2146 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_get_scaled_pixbuf_position (_tmp1_, &_tmp2_);
+#line 2146 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ active_region_rect = _tmp2_;
+#line 2149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = active_region_rect;
+#line 2149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_.x;
+#line 2149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->user_interaction_instance;
+#line 2149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_.radius;
+#line 2149 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x_clamp_low = (_tmp4_ + _tmp6_) + 1;
+#line 2151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = active_region_rect;
+#line 2151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_.y;
+#line 2151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->user_interaction_instance;
+#line 2151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_.radius;
+#line 2151 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y_clamp_low = (_tmp8_ + _tmp10_) + 1;
+#line 2153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = active_region_rect;
+#line 2153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _tmp11_.x;
+#line 2153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = active_region_rect;
+#line 2153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_.width;
+#line 2153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->user_interaction_instance;
+#line 2153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_.radius;
+#line 2153 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ x_clamp_high = ((_tmp12_ + _tmp14_) - _tmp16_) - 1;
+#line 2156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = active_region_rect;
+#line 2156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_.y;
+#line 2156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = active_region_rect;
+#line 2156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _tmp19_.height;
+#line 2156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->user_interaction_instance;
+#line 2156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_.radius;
+#line 2156 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ y_clamp_high = ((_tmp18_ + _tmp20_) - _tmp22_) - 1;
+#line 2160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = x;
+#line 2160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->reticle_move_mouse_start_point;
+#line 2160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_.x;
+#line 2160 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ delta_x = _tmp23_ - _tmp25_;
+#line 2161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = y;
+#line 2161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = self->priv->reticle_move_mouse_start_point;
+#line 2161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = _tmp27_.y;
+#line 2161 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ delta_y = _tmp26_ - _tmp28_;
+#line 2163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->priv->reticle_move_anchor;
+#line 2163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_.x;
+#line 2163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = delta_x;
+#line 2163 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.x = _tmp30_ + _tmp31_;
+#line 2165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = self->priv->reticle_move_anchor;
+#line 2165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = _tmp32_.y;
+#line 2165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = delta_y;
+#line 2165 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.y = _tmp33_ + _tmp34_;
+#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = self->priv->reticle_move_anchor;
+#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = _tmp35_.x;
+#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = delta_x;
+#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = x_clamp_low;
+#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = x_clamp_high;
+#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = CLAMP (_tmp36_ + _tmp37_, _tmp38_, _tmp39_);
+#line 2168 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.x = _tmp40_;
+#line 2171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = self->priv->reticle_move_anchor;
+#line 2171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = _tmp41_.y;
+#line 2171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = delta_y;
+#line 2171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = y_clamp_low;
+#line 2171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = y_clamp_high;
+#line 2171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = CLAMP (_tmp42_ + _tmp43_, _tmp44_, _tmp45_);
+#line 2171 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->user_interaction_instance.center.y = _tmp46_;
+#line 2175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2175 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp47_);
+#line 14633 "EditingTools.c"
+ } else {
+ GdkRectangle bounds = {0};
+ EditingToolsRedeyeInstance _tmp48_ = {0};
+ GdkRectangle _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ GdkRectangle _tmp52_ = {0};
+ gboolean _tmp53_ = FALSE;
+#line 2177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = self->priv->user_interaction_instance;
+#line 2177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_instance_to_bounds_rect (&_tmp48_, &_tmp49_);
+#line 2177 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ bounds = _tmp49_;
+#line 2180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = x;
+#line 2180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = y;
+#line 2180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = bounds;
+#line 2180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = coord_in_rectangle (_tmp50_, _tmp51_, &_tmp52_);
+#line 2180 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp53_) {
+#line 14658 "EditingTools.c"
+ EditingToolsPhotoCanvas* _tmp54_ = NULL;
+ GdkWindow* _tmp55_ = NULL;
+ GdkWindow* _tmp56_ = NULL;
+ GdkCursor* _tmp57_ = NULL;
+#line 2181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = editing_tools_photo_canvas_get_drawing_window (_tmp54_);
+#line 2181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = _tmp55_;
+#line 2181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = self->priv->cached_grab_cursor;
+#line 2181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_window_set_cursor (_tmp56_, _tmp57_);
+#line 2181 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp56_);
+#line 14675 "EditingTools.c"
+ } else {
+ EditingToolsPhotoCanvas* _tmp58_ = NULL;
+ GdkWindow* _tmp59_ = NULL;
+ GdkWindow* _tmp60_ = NULL;
+ GdkCursor* _tmp61_ = NULL;
+#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = editing_tools_photo_canvas_get_drawing_window (_tmp58_);
+#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = _tmp59_;
+#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = self->priv->cached_arrow_cursor;
+#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gdk_window_set_cursor (_tmp60_, _tmp61_);
+#line 2183 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp60_);
+#line 14693 "EditingTools.c"
+ }
+ }
+}
+
+
+static gboolean editing_tools_redeye_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event) {
+ EditingToolsRedeyeTool * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkEventKey* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+ GdkEventKey* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 2188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 2188 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = event;
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->keyval;
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = gdk_keyval_name (_tmp3_);
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (g_strcmp0 (_tmp4_, "KP_Enter") == 0) {
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = TRUE;
+#line 14723 "EditingTools.c"
+ } else {
+ GdkEventKey* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ const gchar* _tmp7_ = NULL;
+#line 2190 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = event;
+#line 2190 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->keyval;
+#line 2190 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = gdk_keyval_name (_tmp6_);
+#line 2190 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = g_strcmp0 (_tmp7_, "Enter") == 0;
+#line 14736 "EditingTools.c"
+ }
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_) {
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = TRUE;
+#line 14742 "EditingTools.c"
+ } else {
+ GdkEventKey* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ const gchar* _tmp10_ = NULL;
+#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = event;
+#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_->keyval;
+#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = gdk_keyval_name (_tmp9_);
+#line 2191 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = g_strcmp0 (_tmp10_, "Return") == 0;
+#line 14755 "EditingTools.c"
+ }
+#line 2189 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 2192 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_on_close (self);
+#line 2193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2193 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 14765 "EditingTools.c"
+ }
+#line 2196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = event;
+#line 2196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp11_);
+#line 2196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp12_;
+#line 2196 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 14775 "EditingTools.c"
+}
+
+
+static EditingToolsRedeyeToolRedeyeToolWindow* editing_tools_redeye_tool_redeye_tool_window_construct (GType object_type, GtkWindow* container) {
+ EditingToolsRedeyeToolRedeyeToolWindow * self = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ GtkScale* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkButton* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GtkButton* _tmp8_ = NULL;
+ GtkBox* layout = NULL;
+ GtkBox* _tmp9_ = NULL;
+ GtkLabel* _tmp10_ = NULL;
+ GtkScale* _tmp11_ = NULL;
+ GtkButton* _tmp12_ = NULL;
+ GtkButton* _tmp13_ = NULL;
+#line 1881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
+#line 1882 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = container;
+#line 1882 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsRedeyeToolRedeyeToolWindow*) editing_tools_editing_tool_window_construct (object_type, _tmp0_);
+#line 1884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->slider;
+#line 1884 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget), 80, -1);
+#line 1885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->slider;
+#line 1885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_scale_set_draw_value (_tmp2_, FALSE);
+#line 1887 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->close_button;
+#line 1887 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _ ("Close the red-eye tool");
+#line 1887 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), _tmp4_);
+#line 1888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->close_button;
+#line 1888 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_button_set_image_position (_tmp5_, GTK_POS_LEFT);
+#line 1890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->apply_button;
+#line 1890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _ ("Remove any red-eye effects in the selected region");
+#line 1890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_tooltip_text (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget), _tmp7_);
+#line 1891 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->apply_button;
+#line 1891 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_button_set_image_position (_tmp8_, GTK_POS_LEFT);
+#line 1893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_CONTROL_SPACING);
+#line 1893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp9_);
+#line 1893 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ layout = _tmp9_;
+#line 1894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->slider_label;
+#line 1894 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
+#line 1895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->slider;
+#line 1895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
+#line 1896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->close_button;
+#line 1896 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 1897 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->apply_button;
+#line 1897 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget));
+#line 1899 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (layout, gtk_widget_get_type (), GtkWidget));
+#line 1881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (layout);
+#line 1881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 14858 "EditingTools.c"
+}
+
+
+static EditingToolsRedeyeToolRedeyeToolWindow* editing_tools_redeye_tool_redeye_tool_window_new (GtkWindow* container) {
+#line 1881 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_redeye_tool_redeye_tool_window_construct (EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, container);
+#line 14865 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_redeye_tool_window_class_init (EditingToolsRedeyeToolRedeyeToolWindowClass * klass) {
+#line 1869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_redeye_tool_window_parent_class = g_type_class_peek_parent (klass);
+#line 1869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsRedeyeToolRedeyeToolWindowPrivate));
+#line 1869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_redeye_tool_redeye_tool_window_finalize;
+#line 14876 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_redeye_tool_window_instance_init (EditingToolsRedeyeToolRedeyeToolWindow * self) {
+ const gchar* _tmp0_ = NULL;
+ GtkLabel* _tmp1_ = NULL;
+ GtkButton* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ GtkScale* _tmp4_ = NULL;
+#line 1869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_REDEYE_TOOL_REDEYE_TOOL_WINDOW_GET_PRIVATE (self);
+#line 1872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = _ ("Size:");
+#line 1872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp0_);
+#line 1872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp1_);
+#line 1872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->slider_label = _tmp1_;
+#line 1874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_APPLY_LABEL);
+#line 1874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp2_);
+#line 1874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->apply_button = _tmp2_;
+#line 1876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
+#line 1876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp3_);
+#line 1876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->close_button = _tmp3_;
+#line 1878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) EDITING_TOOLS_REDEYE_INSTANCE_MIN_RADIUS, (gdouble) EDITING_TOOLS_REDEYE_INSTANCE_MAX_RADIUS, 1.0);
+#line 1878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp4_);
+#line 1878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->slider = _tmp4_;
+#line 14914 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_redeye_tool_window_finalize (GObject* obj) {
+ EditingToolsRedeyeToolRedeyeToolWindow * self;
+#line 1869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_REDEYE_TOOL_TYPE_REDEYE_TOOL_WINDOW, EditingToolsRedeyeToolRedeyeToolWindow);
+#line 1872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->slider_label);
+#line 1874 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->apply_button);
+#line 1876 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->close_button);
+#line 1878 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->slider);
+#line 1869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_redeye_tool_redeye_tool_window_parent_class)->finalize (obj);
+#line 14932 "EditingTools.c"
+}
+
+
+static GType editing_tools_redeye_tool_redeye_tool_window_get_type (void) {
+ static volatile gsize editing_tools_redeye_tool_redeye_tool_window_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_redeye_tool_redeye_tool_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsRedeyeToolRedeyeToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_redeye_tool_redeye_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsRedeyeToolRedeyeToolWindow), 0, (GInstanceInitFunc) editing_tools_redeye_tool_redeye_tool_window_instance_init, NULL };
+ GType editing_tools_redeye_tool_redeye_tool_window_type_id;
+ editing_tools_redeye_tool_redeye_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsRedeyeToolRedeyeToolWindow", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_redeye_tool_redeye_tool_window_type_id__volatile, editing_tools_redeye_tool_redeye_tool_window_type_id);
+ }
+ return editing_tools_redeye_tool_redeye_tool_window_type_id__volatile;
+}
+
+
+static void editing_tools_redeye_tool_class_init (EditingToolsRedeyeToolClass * klass) {
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_redeye_tool_parent_class = g_type_class_peek_parent (klass);
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_redeye_tool_finalize;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsRedeyeToolPrivate));
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->activate = editing_tools_redeye_tool_real_activate;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->deactivate = editing_tools_redeye_tool_real_deactivate;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_tool_window = editing_tools_redeye_tool_real_get_tool_window;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->paint = editing_tools_redeye_tool_real_paint;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_click = editing_tools_redeye_tool_real_on_left_click;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_released = editing_tools_redeye_tool_real_on_left_released;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_motion = editing_tools_redeye_tool_real_on_motion;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_keypress = editing_tools_redeye_tool_real_on_keypress;
+#line 14971 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_instance_init (EditingToolsRedeyeTool * self) {
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_REDEYE_TOOL_GET_PRIVATE (self);
+#line 1903 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->thin_white_ctx = NULL;
+#line 1904 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->wider_gray_ctx = NULL;
+#line 1905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->redeye_tool_window = NULL;
+#line 1907 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->is_reticle_move_in_progress = FALSE;
+#line 1913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->current_pixbuf = NULL;
+#line 14988 "EditingTools.c"
+}
+
+
+static void editing_tools_redeye_tool_finalize (EditingToolsEditingTool* obj) {
+ EditingToolsRedeyeTool * self;
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_REDEYE_TOOL, EditingToolsRedeyeTool);
+#line 1903 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->thin_white_ctx);
+#line 1904 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _cairo_destroy0 (self->priv->wider_gray_ctx);
+#line 1905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->redeye_tool_window);
+#line 1910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->cached_arrow_cursor);
+#line 1911 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->cached_grab_cursor);
+#line 1913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->current_pixbuf);
+#line 1868 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_redeye_tool_parent_class)->finalize (obj);
+#line 15010 "EditingTools.c"
+}
+
+
+GType editing_tools_redeye_tool_get_type (void) {
+ static volatile gsize editing_tools_redeye_tool_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_redeye_tool_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsRedeyeToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_redeye_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsRedeyeTool), 0, (GInstanceInitFunc) editing_tools_redeye_tool_instance_init, NULL };
+ GType editing_tools_redeye_tool_type_id;
+ editing_tools_redeye_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsRedeyeTool", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_redeye_tool_type_id__volatile, editing_tools_redeye_tool_type_id);
+ }
+ return editing_tools_redeye_tool_type_id__volatile;
+}
+
+
+static EditingToolsAdjustTool* editing_tools_adjust_tool_construct (GType object_type) {
+ EditingToolsAdjustTool* self = NULL;
+#line 2491 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsAdjustTool*) editing_tools_editing_tool_construct (object_type, "AdjustTool");
+#line 2490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 15032 "EditingTools.c"
+}
+
+
+static EditingToolsAdjustTool* editing_tools_adjust_tool_new (void) {
+#line 2490 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_adjust_tool_construct (EDITING_TOOLS_TYPE_ADJUST_TOOL);
+#line 15039 "EditingTools.c"
+}
+
+
+EditingToolsAdjustTool* editing_tools_adjust_tool_factory (void) {
+ EditingToolsAdjustTool* result = NULL;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+#line 2495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_adjust_tool_new ();
+#line 2495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp0_;
+#line 2495 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 15052 "EditingTools.c"
+}
+
+
+gboolean editing_tools_adjust_tool_is_available (Photo* photo, Scaling* scaling) {
+ gboolean result = FALSE;
+#line 2498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 2498 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 2499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2499 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 15066 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 2582 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_photos_altered ((EditingToolsAdjustTool*) self, items);
+#line 15073 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsAdjustTool * self;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GtkWindow* _tmp1_ = NULL;
+ GtkWindow* _tmp2_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp3_ = NULL;
+ Photo* photo = NULL;
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ PixelTransformationBundle* _tmp7_ = NULL;
+ PixelTransformationBundle* _tmp8_ = NULL;
+ PixelTransformer* _tmp9_ = NULL;
+ PixelTransformer* _tmp10_ = NULL;
+ ExpansionTransformation* expansion_trans = NULL;
+ PixelTransformationBundle* _tmp11_ = NULL;
+ PixelTransformation* _tmp12_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp13_ = NULL;
+ RGBHistogramManipulator* _tmp14_ = NULL;
+ ExpansionTransformation* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp17_ = NULL;
+ RGBHistogramManipulator* _tmp18_ = NULL;
+ ExpansionTransformation* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ ShadowDetailTransformation* shadows_trans = NULL;
+ PixelTransformationBundle* _tmp21_ = NULL;
+ PixelTransformation* _tmp22_ = NULL;
+ PixelTransformer* _tmp23_ = NULL;
+ ShadowDetailTransformation* _tmp24_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp25_ = NULL;
+ GtkScale* _tmp26_ = NULL;
+ ShadowDetailTransformation* _tmp27_ = NULL;
+ gfloat _tmp28_ = 0.0F;
+ HighlightDetailTransformation* highlights_trans = NULL;
+ PixelTransformationBundle* _tmp29_ = NULL;
+ PixelTransformation* _tmp30_ = NULL;
+ PixelTransformer* _tmp31_ = NULL;
+ HighlightDetailTransformation* _tmp32_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp33_ = NULL;
+ GtkScale* _tmp34_ = NULL;
+ HighlightDetailTransformation* _tmp35_ = NULL;
+ gfloat _tmp36_ = 0.0F;
+ TemperatureTransformation* temp_trans = NULL;
+ PixelTransformationBundle* _tmp37_ = NULL;
+ PixelTransformation* _tmp38_ = NULL;
+ PixelTransformer* _tmp39_ = NULL;
+ TemperatureTransformation* _tmp40_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp41_ = NULL;
+ GtkScale* _tmp42_ = NULL;
+ TemperatureTransformation* _tmp43_ = NULL;
+ gfloat _tmp44_ = 0.0F;
+ TintTransformation* tint_trans = NULL;
+ PixelTransformationBundle* _tmp45_ = NULL;
+ PixelTransformation* _tmp46_ = NULL;
+ PixelTransformer* _tmp47_ = NULL;
+ TintTransformation* _tmp48_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp49_ = NULL;
+ GtkScale* _tmp50_ = NULL;
+ TintTransformation* _tmp51_ = NULL;
+ gfloat _tmp52_ = 0.0F;
+ SaturationTransformation* sat_trans = NULL;
+ PixelTransformationBundle* _tmp53_ = NULL;
+ PixelTransformation* _tmp54_ = NULL;
+ PixelTransformer* _tmp55_ = NULL;
+ SaturationTransformation* _tmp56_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp57_ = NULL;
+ GtkScale* _tmp58_ = NULL;
+ SaturationTransformation* _tmp59_ = NULL;
+ gfloat _tmp60_ = 0.0F;
+ ExposureTransformation* exposure_trans = NULL;
+ PixelTransformationBundle* _tmp61_ = NULL;
+ PixelTransformation* _tmp62_ = NULL;
+ PixelTransformer* _tmp63_ = NULL;
+ ExposureTransformation* _tmp64_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp65_ = NULL;
+ GtkScale* _tmp66_ = NULL;
+ ExposureTransformation* _tmp67_ = NULL;
+ gfloat _tmp68_ = 0.0F;
+ EditingToolsPhotoCanvas* _tmp69_ = NULL;
+ EditingToolsPhotoCanvas* _tmp70_ = NULL;
+ GdkPixbuf* _tmp71_ = NULL;
+ GdkPixbuf* _tmp72_ = NULL;
+ GdkPixbuf* _tmp73_ = NULL;
+ EditingToolsPhotoCanvas* _tmp74_ = NULL;
+ GdkPixbuf* _tmp75_ = NULL;
+ GdkPixbuf* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+ GdkPixbuf* _tmp78_ = NULL;
+ gint _tmp79_ = 0;
+ gint _tmp80_ = 0;
+ gboolean _tmp84_ = FALSE;
+ gboolean _tmp85_ = FALSE;
+ GdkPixbuf* _tmp86_ = NULL;
+ gint _tmp87_ = 0;
+ gint _tmp88_ = 0;
+ GdkPixbuf* _tmp89_ = NULL;
+ gint _tmp90_ = 0;
+ gint _tmp91_ = 0;
+ GdkPixbuf* _tmp108_ = NULL;
+ GdkPixbuf* _tmp109_ = NULL;
+ DataCollection* owner = NULL;
+ EditingToolsPhotoCanvas* _tmp110_ = NULL;
+ Photo* _tmp111_ = NULL;
+ Photo* _tmp112_ = NULL;
+ DataCollection* _tmp113_ = NULL;
+ DataCollection* _tmp114_ = NULL;
+ DataCollection* _tmp115_ = NULL;
+ EditingToolsPhotoCanvas* _tmp117_ = NULL;
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = editing_tools_photo_canvas_get_container (_tmp0_);
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_;
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_adjust_tool_adjust_tool_window_new (_tmp2_);
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp3_);
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->adjust_tool_window);
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->adjust_tool_window = _tmp3_;
+#line 2503 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = canvas;
+#line 2505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = editing_tools_photo_canvas_get_photo (_tmp4_);
+#line 2505 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo = _tmp5_;
+#line 2506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = photo;
+#line 2506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = photo_get_color_adjustments (_tmp6_);
+#line 2506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->transformations);
+#line 2506 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->transformations = _tmp7_;
+#line 2507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->transformations;
+#line 2507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = pixel_transformation_bundle_generate_transformer (_tmp8_);
+#line 2507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 2507 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->transformer = _tmp9_;
+#line 2510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = pixel_transformer_new ();
+#line 2510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformer_unref0 (self->priv->histogram_transformer);
+#line 2510 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->histogram_transformer = _tmp10_;
+#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->transformations;
+#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = pixel_transformation_bundle_get_transformation (_tmp11_, PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION);
+#line 2513 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ expansion_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation);
+#line 2515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->adjust_tool_window;
+#line 2515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_->histogram_manipulator;
+#line 2515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = expansion_trans;
+#line 2515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = expansion_transformation_get_black_point (_tmp15_);
+#line 2515 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rgb_histogram_manipulator_set_left_nub_position (_tmp14_, _tmp16_);
+#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->adjust_tool_window;
+#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_->histogram_manipulator;
+#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = expansion_trans;
+#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = expansion_transformation_get_white_point (_tmp19_);
+#line 2517 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rgb_histogram_manipulator_set_right_nub_position (_tmp18_, _tmp20_);
+#line 2521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->transformations;
+#line 2521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = pixel_transformation_bundle_get_transformation (_tmp21_, PIXEL_TRANSFORMATION_TYPE_SHADOWS);
+#line 2521 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ shadows_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation);
+#line 2523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->priv->histogram_transformer;
+#line 2523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = shadows_trans;
+#line 2523 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_attach_transformation (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 2524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = self->priv->adjust_tool_window;
+#line 2524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_->shadows_slider;
+#line 2524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = shadows_trans;
+#line 2524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = shadow_detail_transformation_get_parameter (_tmp27_);
+#line 2524 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_range_get_type (), GtkRange), (gdouble) _tmp28_);
+#line 2527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->priv->transformations;
+#line 2527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = pixel_transformation_bundle_get_transformation (_tmp29_, PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS);
+#line 2527 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ highlights_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation);
+#line 2529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = self->priv->histogram_transformer;
+#line 2529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = highlights_trans;
+#line 2529 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_attach_transformation (_tmp31_, G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 2530 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->priv->adjust_tool_window;
+#line 2530 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _tmp33_->highlights_slider;
+#line 2530 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = highlights_trans;
+#line 2530 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = highlight_detail_transformation_get_parameter (_tmp35_);
+#line 2530 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_range_get_type (), GtkRange), (gdouble) _tmp36_);
+#line 2533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = self->priv->transformations;
+#line 2533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = pixel_transformation_bundle_get_transformation (_tmp37_, PIXEL_TRANSFORMATION_TYPE_TEMPERATURE);
+#line 2533 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ temp_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation);
+#line 2535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = self->priv->histogram_transformer;
+#line 2535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = temp_trans;
+#line 2535 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_attach_transformation (_tmp39_, G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 2536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = self->priv->adjust_tool_window;
+#line 2536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = _tmp41_->temperature_slider;
+#line 2536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = temp_trans;
+#line 2536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = temperature_transformation_get_parameter (_tmp43_);
+#line 2536 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_range_get_type (), GtkRange), (gdouble) _tmp44_);
+#line 2538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = self->priv->transformations;
+#line 2538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = pixel_transformation_bundle_get_transformation (_tmp45_, PIXEL_TRANSFORMATION_TYPE_TINT);
+#line 2538 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ tint_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, TYPE_TINT_TRANSFORMATION, TintTransformation);
+#line 2540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = self->priv->histogram_transformer;
+#line 2540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = tint_trans;
+#line 2540 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_attach_transformation (_tmp47_, G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 2541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp49_ = self->priv->adjust_tool_window;
+#line 2541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp50_ = _tmp49_->tint_slider;
+#line 2541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp51_ = tint_trans;
+#line 2541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp52_ = tint_transformation_get_parameter (_tmp51_);
+#line 2541 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_range_get_type (), GtkRange), (gdouble) _tmp52_);
+#line 2544 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp53_ = self->priv->transformations;
+#line 2544 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp54_ = pixel_transformation_bundle_get_transformation (_tmp53_, PIXEL_TRANSFORMATION_TYPE_SATURATION);
+#line 2544 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ sat_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, TYPE_SATURATION_TRANSFORMATION, SaturationTransformation);
+#line 2546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp55_ = self->priv->histogram_transformer;
+#line 2546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp56_ = sat_trans;
+#line 2546 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_attach_transformation (_tmp55_, G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 2547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp57_ = self->priv->adjust_tool_window;
+#line 2547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp58_ = _tmp57_->saturation_slider;
+#line 2547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp59_ = sat_trans;
+#line 2547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp60_ = saturation_transformation_get_parameter (_tmp59_);
+#line 2547 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, gtk_range_get_type (), GtkRange), (gdouble) _tmp60_);
+#line 2550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp61_ = self->priv->transformations;
+#line 2550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp62_ = pixel_transformation_bundle_get_transformation (_tmp61_, PIXEL_TRANSFORMATION_TYPE_EXPOSURE);
+#line 2550 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ exposure_trans = G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation);
+#line 2552 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp63_ = self->priv->histogram_transformer;
+#line 2552 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp64_ = exposure_trans;
+#line 2552 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_attach_transformation (_tmp63_, G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 2553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp65_ = self->priv->adjust_tool_window;
+#line 2553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp66_ = _tmp65_->exposure_slider;
+#line 2553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp67_ = exposure_trans;
+#line 2553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp68_ = exposure_transformation_get_parameter (_tmp67_);
+#line 2553 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, gtk_range_get_type (), GtkRange), (gdouble) _tmp68_);
+#line 2555 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp69_ = canvas;
+#line 2555 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_bind_canvas_handlers (self, _tmp69_);
+#line 2556 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_bind_window_handlers (self);
+#line 2558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp70_ = canvas;
+#line 2558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp71_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp70_);
+#line 2558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp72_ = _tmp71_;
+#line 2558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp73_ = gdk_pixbuf_copy (_tmp72_);
+#line 2558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->draw_to_pixbuf);
+#line 2558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->draw_to_pixbuf = _tmp73_;
+#line 2558 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp72_);
+#line 2559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp74_ = canvas;
+#line 2559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp75_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp74_);
+#line 2559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp76_ = _tmp75_;
+#line 2559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_init_fp_pixel_cache (self, _tmp76_);
+#line 2559 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp76_);
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp78_ = self->priv->draw_to_pixbuf;
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp79_ = gdk_pixbuf_get_width (_tmp78_);
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp80_ = _tmp79_;
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp80_ == 1) {
+#line 15430 "EditingTools.c"
+ GdkPixbuf* _tmp81_ = NULL;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp81_ = self->priv->draw_to_pixbuf;
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp82_ = gdk_pixbuf_get_height (_tmp81_);
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp83_ = _tmp82_;
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp77_ = _tmp83_ == 1;
+#line 15442 "EditingTools.c"
+ } else {
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp77_ = FALSE;
+#line 15446 "EditingTools.c"
+ }
+#line 2565 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp77_) {
+#line 2566 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->disable_histogram_refresh = TRUE;
+#line 15452 "EditingTools.c"
+ }
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp86_ = self->priv->draw_to_pixbuf;
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp87_ = gdk_pixbuf_get_width (_tmp86_);
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp88_ = _tmp87_;
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp89_ = self->priv->draw_to_pixbuf;
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp90_ = gdk_pixbuf_get_height (_tmp89_);
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp91_ = _tmp90_;
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if ((_tmp88_ * _tmp91_) > 8192) {
+#line 15468 "EditingTools.c"
+ GdkPixbuf* _tmp92_ = NULL;
+ gint _tmp93_ = 0;
+ gint _tmp94_ = 0;
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp92_ = self->priv->draw_to_pixbuf;
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp93_ = gdk_pixbuf_get_width (_tmp92_);
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp94_ = _tmp93_;
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp85_ = _tmp94_ > 1;
+#line 15480 "EditingTools.c"
+ } else {
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp85_ = FALSE;
+#line 15484 "EditingTools.c"
+ }
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp85_) {
+#line 15488 "EditingTools.c"
+ GdkPixbuf* _tmp95_ = NULL;
+ gint _tmp96_ = 0;
+ gint _tmp97_ = 0;
+#line 2572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp95_ = self->priv->draw_to_pixbuf;
+#line 2572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp96_ = gdk_pixbuf_get_height (_tmp95_);
+#line 2572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp97_ = _tmp96_;
+#line 2572 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp84_ = _tmp97_ > 1;
+#line 15500 "EditingTools.c"
+ } else {
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp84_ = FALSE;
+#line 15504 "EditingTools.c"
+ }
+#line 2571 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp84_) {
+#line 15508 "EditingTools.c"
+ GdkPixbuf* _tmp98_ = NULL;
+ GdkPixbuf* _tmp99_ = NULL;
+ gint _tmp100_ = 0;
+ gint _tmp101_ = 0;
+ GdkPixbuf* _tmp102_ = NULL;
+ gint _tmp103_ = 0;
+ gint _tmp104_ = 0;
+ GdkPixbuf* _tmp105_ = NULL;
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp98_ = self->priv->draw_to_pixbuf;
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp99_ = self->priv->draw_to_pixbuf;
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp100_ = gdk_pixbuf_get_width (_tmp99_);
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp101_ = _tmp100_;
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp102_ = self->priv->draw_to_pixbuf;
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp103_ = gdk_pixbuf_get_height (_tmp102_);
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp104_ = _tmp103_;
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp105_ = gdk_pixbuf_scale_simple (_tmp98_, _tmp101_ / 2, _tmp104_ / 2, GDK_INTERP_HYPER);
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->histogram_pixbuf);
+#line 2573 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->histogram_pixbuf = _tmp105_;
+#line 15537 "EditingTools.c"
+ } else {
+ GdkPixbuf* _tmp106_ = NULL;
+ GdkPixbuf* _tmp107_ = NULL;
+#line 2576 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp106_ = self->priv->draw_to_pixbuf;
+#line 2576 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp107_ = gdk_pixbuf_copy (_tmp106_);
+#line 2576 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->histogram_pixbuf);
+#line 2576 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->histogram_pixbuf = _tmp107_;
+#line 15549 "EditingTools.c"
+ }
+#line 2578 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp108_ = self->priv->histogram_pixbuf;
+#line 2578 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp109_ = gdk_pixbuf_copy (_tmp108_);
+#line 2578 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->virgin_histogram_pixbuf);
+#line 2578 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->virgin_histogram_pixbuf = _tmp109_;
+#line 2580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp110_ = canvas;
+#line 2580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp111_ = editing_tools_photo_canvas_get_photo (_tmp110_);
+#line 2580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp112_ = _tmp111_;
+#line 2580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp113_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp112_, TYPE_DATA_OBJECT, DataObject));
+#line 2580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp114_ = _tmp113_;
+#line 2580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp112_);
+#line 2580 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ owner = _tmp114_;
+#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp115_ = owner;
+#line 2581 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp115_ != NULL) {
+#line 15577 "EditingTools.c"
+ DataCollection* _tmp116_ = NULL;
+#line 2582 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp116_ = owner;
+#line 2582 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp116_, "items-altered", (GCallback) _editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered, self);
+#line 15583 "EditingTools.c"
+ }
+#line 2584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp117_ = canvas;
+#line 2584 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp117_);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _data_collection_unref0 (owner);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (exposure_trans);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (sat_trans);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (tint_trans);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (temp_trans);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (highlights_trans);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (shadows_trans);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (expansion_trans);
+#line 2502 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (photo);
+#line 15607 "EditingTools.c"
+}
+
+
+static EditingToolsEditingToolWindow* editing_tools_adjust_tool_real_get_tool_window (EditingToolsEditingTool* base) {
+ EditingToolsAdjustTool * self;
+ EditingToolsEditingToolWindow* result = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ EditingToolsEditingToolWindow* _tmp1_ = NULL;
+#line 2587 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
+#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow));
+#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp1_;
+#line 2588 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 15626 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_real_deactivate (EditingToolsEditingTool* base) {
+ EditingToolsAdjustTool * self;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp10_ = NULL;
+#line 2591 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
+#line 2592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ != NULL) {
+#line 15640 "EditingTools.c"
+ DataCollection* owner = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ DataCollection* _tmp4_ = NULL;
+ DataCollection* _tmp5_ = NULL;
+ DataCollection* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp9_ = NULL;
+#line 2593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
+#line 2593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 2593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = data_object_get_membership (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 2593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_;
+#line 2593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2593 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ owner = _tmp5_;
+#line 2594 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = owner;
+#line 2594 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp6_ != NULL) {
+#line 15667 "EditingTools.c"
+ DataCollection* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 2595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = owner;
+#line 2595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp8_, NULL, FALSE);
+#line 2595 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_photos_altered_data_collection_items_altered, self);
+#line 15676 "EditingTools.c"
+ }
+#line 2597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2597 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_unbind_canvas_handlers (self, _tmp9_);
+#line 2592 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _data_collection_unref0 (owner);
+#line 15684 "EditingTools.c"
+ }
+#line 2600 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->adjust_tool_window;
+#line 2600 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp10_ != NULL) {
+#line 15690 "EditingTools.c"
+ EditingToolsAdjustToolAdjustToolWindow* _tmp11_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp12_ = NULL;
+#line 2601 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_unbind_window_handlers (self);
+#line 2602 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->adjust_tool_window;
+#line 2602 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
+#line 2603 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->adjust_tool_window;
+#line 2603 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 2604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->adjust_tool_window);
+#line 2604 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->adjust_tool_window = NULL;
+#line 15707 "EditingTools.c"
+ }
+#line 2607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->draw_to_pixbuf);
+#line 2607 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->draw_to_pixbuf = NULL;
+#line 2608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache = (g_free (self->priv->fp_pixel_cache), NULL);
+#line 2608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache = NULL;
+#line 2608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache_length1 = 0;
+#line 2608 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->_fp_pixel_cache_size_ = self->priv->fp_pixel_cache_length1;
+#line 2610 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 15723 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx) {
+ EditingToolsAdjustTool * self;
+ gboolean _tmp0_ = FALSE;
+ EditingToolsPhotoCanvas* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+#line 2613 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
+#line 2613 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (ctx != NULL);
+#line 2614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->suppress_effect_redraw;
+#line 2614 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp0_) {
+#line 15740 "EditingTools.c"
+ PixelTransformer* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ PixelTransformer* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 2615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->transformer;
+#line 2615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->draw_to_pixbuf;
+#line 2615 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_transform_from_fp (_tmp1_, &self->priv->fp_pixel_cache, &self->priv->fp_pixel_cache_length1, _tmp2_);
+#line 2616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->histogram_transformer;
+#line 2616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->virgin_histogram_pixbuf;
+#line 2616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->histogram_pixbuf;
+#line 2616 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_transform_to_other_pixbuf (_tmp3_, _tmp4_, _tmp5_, NULL);
+#line 2618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->disable_histogram_refresh;
+#line 2618 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp6_) {
+#line 15765 "EditingTools.c"
+ EditingToolsAdjustToolAdjustToolWindow* _tmp7_ = NULL;
+ RGBHistogramManipulator* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+#line 2619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->priv->adjust_tool_window;
+#line 2619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_->histogram_manipulator;
+#line 2619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->histogram_pixbuf;
+#line 2619 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rgb_histogram_manipulator_update_histogram (_tmp8_, _tmp9_);
+#line 15777 "EditingTools.c"
+ }
+ }
+#line 2622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->draw_to_pixbuf;
+#line 2622 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_paint_pixbuf (_tmp10_, _tmp11_);
+#line 15786 "EditingTools.c"
+}
+
+
+static GdkPixbuf* editing_tools_adjust_tool_real_get_display_pixbuf (EditingToolsEditingTool* base, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error) {
+ EditingToolsAdjustTool * self;
+ Dimensions _vala_max_dim = {0};
+ GdkPixbuf* result = NULL;
+ Photo* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ Photo* _tmp2_ = NULL;
+ Dimensions _tmp3_ = {0};
+ GdkPixbuf* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Scaling _tmp6_ = {0};
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 2625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
+#line 2625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (scaling != NULL, NULL);
+#line 2625 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 2627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = photo;
+#line 2627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = photo_has_color_adjustments (_tmp0_);
+#line 2627 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp1_) {
+#line 2628 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ dimensions_init (&_vala_max_dim, 0, 0);
+#line 2630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = NULL;
+#line 2630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (max_dim) {
+#line 2630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *max_dim = _vala_max_dim;
+#line 15824 "EditingTools.c"
+ }
+#line 2630 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 15828 "EditingTools.c"
+ }
+#line 2633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = photo;
+#line 2633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp3_);
+#line 2633 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_max_dim = _tmp3_;
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = photo;
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = *scaling;
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = photo_get_pixbuf_with_options (_tmp5_, &_tmp6_, PHOTO_EXCEPTION_ADJUST, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp7_;
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_propagate_error (error, _inner_error_);
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return NULL;
+#line 15850 "EditingTools.c"
+ }
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp4_;
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = NULL;
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp8_;
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp4_);
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (max_dim) {
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ *max_dim = _vala_max_dim;
+#line 15864 "EditingTools.c"
+ }
+#line 2635 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 15868 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_reset (EditingToolsAdjustTool* self) {
+ EditingToolsAdjustToolAdjustResetCommand* command = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ EditingToolsAdjustToolAdjustResetCommand* _tmp1_ = NULL;
+ CommandManager* _tmp2_ = NULL;
+ CommandManager* _tmp3_ = NULL;
+#line 2638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2639 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->transformations;
+#line 2639 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = editing_tools_adjust_tool_adjust_reset_command_new (self, _tmp0_);
+#line 2639 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command = _tmp1_;
+#line 2640 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = app_window_get_command_manager ();
+#line 2640 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 2640 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command_manager_execute (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
+#line 2640 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _command_manager_unref0 (_tmp3_);
+#line 2638 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (command);
+#line 15896 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_ok (EditingToolsAdjustTool* self) {
+ EditingToolsEditingToolWindow* _tmp0_ = NULL;
+ EditingToolsEditingToolWindow* _tmp1_ = NULL;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ PixelTransformationBundle* _tmp5_ = NULL;
+ AdjustColorsSingleCommand* _tmp6_ = NULL;
+ AdjustColorsSingleCommand* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ EditingToolsPhotoCanvas* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+ Dimensions _tmp12_ = {0};
+#line 2643 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2644 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->suppress_effect_redraw = TRUE;
+#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = editing_tools_editing_tool_get_tool_window (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_;
+#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 2646 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_photo_canvas_get_photo (_tmp2_);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->transformations;
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = adjust_colors_single_command_new (_tmp4_, _tmp5_, RESOURCES_ADJUST_LABEL, RESOURCES_ADJUST_TOOLTIP);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_;
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->draw_to_pixbuf;
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = editing_tools_photo_canvas_get_photo (_tmp9_);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_;
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_NONE, &_tmp12_);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "applied", G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_COMMAND, Command), _tmp8_, &_tmp12_, FALSE);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp11_);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp7_);
+#line 2648 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp4_);
+#line 15956 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_update_transformations (EditingToolsAdjustTool* self, PixelTransformationBundle* new_transformations) {
+#line 2653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2653 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (new_transformations));
+#line 15965 "EditingTools.c"
+ {
+ GeeIterator* _transformation_it = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = new_transformations;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = pixel_transformation_bundle_get_transformations (_tmp0_);
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = gee_iterable_iterator (_tmp2_);
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _transformation_it = _tmp4_;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ while (TRUE) {
+#line 15989 "EditingTools.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ PixelTransformation* transformation = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ PixelTransformation* _tmp9_ = NULL;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _transformation_it;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp6_) {
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 16004 "EditingTools.c"
+ }
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _transformation_it;
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ transformation = (PixelTransformation*) _tmp8_;
+#line 2655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = transformation;
+#line 2655 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_transformation (self, _tmp9_);
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (transformation);
+#line 16018 "EditingTools.c"
+ }
+#line 2654 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_transformation_it);
+#line 16022 "EditingTools.c"
+ }
+}
+
+
+static void editing_tools_adjust_tool_update_transformation (EditingToolsAdjustTool* self, PixelTransformation* new_transformation) {
+ PixelTransformation* old_transformation = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+ PixelTransformationType _tmp2_ = 0;
+ PixelTransformation* _tmp3_ = NULL;
+ PixelTransformer* _tmp4_ = NULL;
+ PixelTransformation* _tmp5_ = NULL;
+ PixelTransformation* _tmp6_ = NULL;
+ PixelTransformation* _tmp7_ = NULL;
+ PixelTransformationType _tmp8_ = 0;
+ PixelTransformationBundle* _tmp12_ = NULL;
+ PixelTransformation* _tmp13_ = NULL;
+#line 2658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (new_transformation));
+#line 2659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->transformations;
+#line 2659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = new_transformation;
+#line 2659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = pixel_transformation_get_transformation_type (_tmp1_);
+#line 2659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = pixel_transformation_bundle_get_transformation (_tmp0_, _tmp2_);
+#line 2659 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old_transformation = _tmp3_;
+#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->transformer;
+#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = old_transformation;
+#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = new_transformation;
+#line 2662 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_replace_transformation (_tmp4_, _tmp5_, _tmp6_);
+#line 2663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = new_transformation;
+#line 2663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = pixel_transformation_get_transformation_type (_tmp7_);
+#line 2663 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp8_ != PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION) {
+#line 16068 "EditingTools.c"
+ PixelTransformer* _tmp9_ = NULL;
+ PixelTransformation* _tmp10_ = NULL;
+ PixelTransformation* _tmp11_ = NULL;
+#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->histogram_transformer;
+#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = old_transformation;
+#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = new_transformation;
+#line 2664 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformer_replace_transformation (_tmp9_, _tmp10_, _tmp11_);
+#line 16080 "EditingTools.c"
+ }
+#line 2666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->transformations;
+#line 2666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = new_transformation;
+#line 2666 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformation_bundle_set (_tmp12_, _tmp13_);
+#line 2658 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (old_transformation);
+#line 16090 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_slider_updated (EditingToolsAdjustTool* self, PixelTransformation* new_transformation, const gchar* name) {
+ PixelTransformation* old_transformation = NULL;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+ PixelTransformationType _tmp2_ = 0;
+ PixelTransformation* _tmp3_ = NULL;
+ EditingToolsAdjustToolSliderAdjustmentCommand* command = NULL;
+ PixelTransformation* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ EditingToolsAdjustToolSliderAdjustmentCommand* _tmp6_ = NULL;
+ CommandManager* _tmp7_ = NULL;
+ CommandManager* _tmp8_ = NULL;
+#line 2669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (new_transformation));
+#line 2669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (name != NULL);
+#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->transformations;
+#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = new_transformation;
+#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = pixel_transformation_get_transformation_type (_tmp1_);
+#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = pixel_transformation_bundle_get_transformation (_tmp0_, _tmp2_);
+#line 2670 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ old_transformation = _tmp3_;
+#line 2672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = new_transformation;
+#line 2672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = name;
+#line 2672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = editing_tools_adjust_tool_slider_adjustment_command_new (self, old_transformation, _tmp4_, _tmp5_);
+#line 2672 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command = _tmp6_;
+#line 2674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = app_window_get_command_manager ();
+#line 2674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_;
+#line 2674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command_manager_execute (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
+#line 2674 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _command_manager_unref0 (_tmp8_);
+#line 2669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (command);
+#line 2669 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (old_transformation);
+#line 16142 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_delayed_temperature_adjustment_one_shot_callback (gpointer self) {
+#line 2679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_delayed_temperature_adjustment ((EditingToolsAdjustTool*) self);
+#line 16149 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_temperature_adjustment (EditingToolsAdjustTool* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+ OneShotScheduler* _tmp2_ = NULL;
+#line 2677 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->temperature_scheduler;
+#line 2678 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == NULL) {
+#line 16162 "EditingTools.c"
+ OneShotScheduler* _tmp1_ = NULL;
+#line 2679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = one_shot_scheduler_new ("temperature", _editing_tools_adjust_tool_on_delayed_temperature_adjustment_one_shot_callback, self);
+#line 2679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->temperature_scheduler);
+#line 2679 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->temperature_scheduler = _tmp1_;
+#line 16170 "EditingTools.c"
+ }
+#line 2681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->temperature_scheduler;
+#line 2681 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
+#line 16176 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_delayed_temperature_adjustment (EditingToolsAdjustTool* self) {
+ TemperatureTransformation* new_temp_trans = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ TemperatureTransformation* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2684 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->temperature_slider;
+#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = temperature_transformation_new ((gfloat) _tmp2_);
+#line 2685 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_temp_trans = _tmp3_;
+#line 2687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _ ("Temperature");
+#line 2687 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_temp_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _tmp4_);
+#line 2684 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (new_temp_trans);
+#line 16205 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_delayed_tint_adjustment_one_shot_callback (gpointer self) {
+#line 2692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_delayed_tint_adjustment ((EditingToolsAdjustTool*) self);
+#line 16212 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_tint_adjustment (EditingToolsAdjustTool* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+ OneShotScheduler* _tmp2_ = NULL;
+#line 2690 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2691 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->tint_scheduler;
+#line 2691 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == NULL) {
+#line 16225 "EditingTools.c"
+ OneShotScheduler* _tmp1_ = NULL;
+#line 2692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = one_shot_scheduler_new ("tint", _editing_tools_adjust_tool_on_delayed_tint_adjustment_one_shot_callback, self);
+#line 2692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->tint_scheduler);
+#line 2692 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->tint_scheduler = _tmp1_;
+#line 16233 "EditingTools.c"
+ }
+#line 2694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->tint_scheduler;
+#line 2694 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
+#line 16239 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_delayed_tint_adjustment (EditingToolsAdjustTool* self) {
+ TintTransformation* new_tint_trans = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ TintTransformation* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2698 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2698 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->tint_slider;
+#line 2698 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 2698 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = tint_transformation_new ((gfloat) _tmp2_);
+#line 2698 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_tint_trans = _tmp3_;
+#line 2700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _ ("Tint");
+#line 2700 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_tint_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _tmp4_);
+#line 2697 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (new_tint_trans);
+#line 16268 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_delayed_saturation_adjustment_one_shot_callback (gpointer self) {
+#line 2705 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_delayed_saturation_adjustment ((EditingToolsAdjustTool*) self);
+#line 16275 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_saturation_adjustment (EditingToolsAdjustTool* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+ OneShotScheduler* _tmp2_ = NULL;
+#line 2703 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->saturation_scheduler;
+#line 2704 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == NULL) {
+#line 16288 "EditingTools.c"
+ OneShotScheduler* _tmp1_ = NULL;
+#line 2705 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = one_shot_scheduler_new ("saturation", _editing_tools_adjust_tool_on_delayed_saturation_adjustment_one_shot_callback, self);
+#line 2705 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->saturation_scheduler);
+#line 2705 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->saturation_scheduler = _tmp1_;
+#line 16296 "EditingTools.c"
+ }
+#line 2707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->saturation_scheduler;
+#line 2707 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
+#line 16302 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_delayed_saturation_adjustment (EditingToolsAdjustTool* self) {
+ SaturationTransformation* new_sat_trans = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ SaturationTransformation* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2710 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->saturation_slider;
+#line 2711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 2711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = saturation_transformation_new ((gfloat) _tmp2_);
+#line 2711 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_sat_trans = _tmp3_;
+#line 2713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _ ("Saturation");
+#line 2713 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_sat_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _tmp4_);
+#line 2710 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (new_sat_trans);
+#line 16331 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_delayed_exposure_adjustment_one_shot_callback (gpointer self) {
+#line 2718 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_delayed_exposure_adjustment ((EditingToolsAdjustTool*) self);
+#line 16338 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_exposure_adjustment (EditingToolsAdjustTool* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+ OneShotScheduler* _tmp2_ = NULL;
+#line 2716 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2717 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->exposure_scheduler;
+#line 2717 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == NULL) {
+#line 16351 "EditingTools.c"
+ OneShotScheduler* _tmp1_ = NULL;
+#line 2718 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = one_shot_scheduler_new ("exposure", _editing_tools_adjust_tool_on_delayed_exposure_adjustment_one_shot_callback, self);
+#line 2718 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->exposure_scheduler);
+#line 2718 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->exposure_scheduler = _tmp1_;
+#line 16359 "EditingTools.c"
+ }
+#line 2720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->exposure_scheduler;
+#line 2720 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
+#line 16365 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_delayed_exposure_adjustment (EditingToolsAdjustTool* self) {
+ ExposureTransformation* new_exp_trans = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ ExposureTransformation* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2723 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->exposure_slider;
+#line 2724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 2724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = exposure_transformation_new ((gfloat) _tmp2_);
+#line 2724 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_exp_trans = _tmp3_;
+#line 2726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _ ("Exposure");
+#line 2726 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_exp_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _tmp4_);
+#line 2723 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (new_exp_trans);
+#line 16394 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_delayed_shadows_adjustment_one_shot_callback (gpointer self) {
+#line 2731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_delayed_shadows_adjustment ((EditingToolsAdjustTool*) self);
+#line 16401 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_shadows_adjustment (EditingToolsAdjustTool* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+ OneShotScheduler* _tmp2_ = NULL;
+#line 2729 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->shadows_scheduler;
+#line 2730 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == NULL) {
+#line 16414 "EditingTools.c"
+ OneShotScheduler* _tmp1_ = NULL;
+#line 2731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = one_shot_scheduler_new ("shadows", _editing_tools_adjust_tool_on_delayed_shadows_adjustment_one_shot_callback, self);
+#line 2731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->shadows_scheduler);
+#line 2731 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->shadows_scheduler = _tmp1_;
+#line 16422 "EditingTools.c"
+ }
+#line 2733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->shadows_scheduler;
+#line 2733 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
+#line 16428 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_delayed_shadows_adjustment (EditingToolsAdjustTool* self) {
+ ShadowDetailTransformation* new_shadows_trans = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ ShadowDetailTransformation* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->shadows_slider;
+#line 2737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 2737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = shadow_detail_transformation_new ((gfloat) _tmp2_);
+#line 2737 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_shadows_trans = _tmp3_;
+#line 2739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _ ("Shadows");
+#line 2739 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_shadows_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _tmp4_);
+#line 2736 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (new_shadows_trans);
+#line 16457 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_delayed_highlights_adjustment_one_shot_callback (gpointer self) {
+#line 2744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_delayed_highlights_adjustment ((EditingToolsAdjustTool*) self);
+#line 16464 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_highlights_adjustment (EditingToolsAdjustTool* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+ OneShotScheduler* _tmp2_ = NULL;
+#line 2742 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->highlights_scheduler;
+#line 2743 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == NULL) {
+#line 16477 "EditingTools.c"
+ OneShotScheduler* _tmp1_ = NULL;
+#line 2744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = one_shot_scheduler_new ("highlights", _editing_tools_adjust_tool_on_delayed_highlights_adjustment_one_shot_callback, self);
+#line 2744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->highlights_scheduler);
+#line 2744 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->highlights_scheduler = _tmp1_;
+#line 16485 "EditingTools.c"
+ }
+#line 2746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->highlights_scheduler;
+#line 2746 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ one_shot_scheduler_after_timeout (_tmp2_, EDITING_TOOLS_ADJUST_TOOL_SLIDER_DELAY_MSEC, TRUE);
+#line 16491 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_delayed_highlights_adjustment (EditingToolsAdjustTool* self) {
+ HighlightDetailTransformation* new_highlights_trans = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ HighlightDetailTransformation* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 2749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->highlights_slider;
+#line 2750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 2750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = highlight_detail_transformation_new ((gfloat) _tmp2_);
+#line 2750 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_highlights_trans = _tmp3_;
+#line 2752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _ ("Highlights");
+#line 2752 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_highlights_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _tmp4_);
+#line 2749 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (new_highlights_trans);
+#line 16520 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_histogram_constraint (EditingToolsAdjustTool* self) {
+ gint expansion_black_point = 0;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ RGBHistogramManipulator* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint expansion_white_point = 0;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp3_ = NULL;
+ RGBHistogramManipulator* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ ExpansionTransformation* new_exp_trans = NULL;
+ ExpansionTransformation* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 2755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->histogram_manipulator;
+#line 2756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = rgb_histogram_manipulator_get_left_nub_position (_tmp1_);
+#line 2756 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ expansion_black_point = _tmp2_;
+#line 2758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->adjust_tool_window;
+#line 2758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_->histogram_manipulator;
+#line 2758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = rgb_histogram_manipulator_get_right_nub_position (_tmp4_);
+#line 2758 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ expansion_white_point = _tmp5_;
+#line 2760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = expansion_transformation_new_from_extrema (expansion_black_point, expansion_white_point);
+#line 2760 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ new_exp_trans = _tmp6_;
+#line 2762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _ ("Contrast Expansion");
+#line 2762 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_updated (self, G_TYPE_CHECK_INSTANCE_CAST (new_exp_trans, TYPE_PIXEL_TRANSFORMATION, PixelTransformation), _tmp7_);
+#line 2755 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (new_exp_trans);
+#line 16564 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_canvas_resize (EditingToolsAdjustTool* self) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+#line 2765 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp0_);
+#line 2766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_;
+#line 2766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = gdk_pixbuf_copy (_tmp2_);
+#line 2766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->draw_to_pixbuf);
+#line 2766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->draw_to_pixbuf = _tmp3_;
+#line 2766 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = editing_tools_photo_canvas_get_scaled_pixbuf (_tmp4_);
+#line 2767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_;
+#line 2767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_init_fp_pixel_cache (self, _tmp6_);
+#line 2767 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp6_);
+#line 16602 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_adjust_tool_on_hscale_reset (EditingToolsAdjustTool* self, GtkWidget* widget, GdkEventButton* event) {
+ gboolean result = FALSE;
+ GtkScale* source = NULL;
+ GtkWidget* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GdkEventButton* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 2770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self), FALSE);
+#line 2770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+#line 2770 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = widget;
+#line 2771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_scale_get_type (), GtkScale));
+#line 2771 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ source = _tmp1_;
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = event;
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_->button;
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_ == ((guint) 1)) {
+#line 16633 "EditingTools.c"
+ GdkEventButton* _tmp6_ = NULL;
+ GdkEventType _tmp7_ = 0;
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = event;
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_->type;
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp7_ == GDK_BUTTON_PRESS;
+#line 16642 "EditingTools.c"
+ } else {
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = FALSE;
+#line 16646 "EditingTools.c"
+ }
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp3_) {
+#line 16650 "EditingTools.c"
+ GdkEventButton* _tmp8_ = NULL;
+ GdkModifierType _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+#line 2774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = event;
+#line 2774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_->state;
+#line 2774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = has_only_key_modifier (_tmp9_, GDK_CONTROL_MASK);
+#line 2774 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp10_;
+#line 16662 "EditingTools.c"
+ } else {
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = FALSE;
+#line 16666 "EditingTools.c"
+ }
+#line 2773 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_) {
+#line 16670 "EditingTools.c"
+ GtkScale* _tmp11_ = NULL;
+#line 2776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = source;
+#line 2776 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_range_get_type (), GtkRange), (gdouble) 0);
+#line 2778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (source);
+#line 2778 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 16682 "EditingTools.c"
+ }
+#line 2781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (source);
+#line 2781 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 16690 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self) {
+#line 2785 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_canvas_resize ((EditingToolsAdjustTool*) self);
+#line 16697 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_bind_canvas_handlers (EditingToolsAdjustTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+#line 2784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2784 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 2785 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 2785 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp0_, "resized-scaled-pixbuf", (GCallback) _editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 16711 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_unbind_canvas_handlers (EditingToolsAdjustTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 2788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2788 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 2789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = canvas;
+#line 2789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp1_, NULL, FALSE);
+#line 2789 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_canvas_resize_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 16728 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_ok_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 2793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_ok ((EditingToolsAdjustTool*) self);
+#line 16735 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_reset_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_reset ((EditingToolsAdjustTool*) self);
+#line 16742 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 2796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_exposure_adjustment ((EditingToolsAdjustTool*) self);
+#line 16749 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 2797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_saturation_adjustment ((EditingToolsAdjustTool*) self);
+#line 16756 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 2798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_tint_adjustment ((EditingToolsAdjustTool*) self);
+#line 16763 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 2799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_temperature_adjustment ((EditingToolsAdjustTool*) self);
+#line 16770 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 2800 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_shadows_adjustment ((EditingToolsAdjustTool*) self);
+#line 16777 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_highlights_adjustment ((EditingToolsAdjustTool*) self);
+#line 16784 "EditingTools.c"
+}
+
+
+static void _editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed (RGBHistogramManipulator* _sender, gpointer self) {
+#line 2802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_histogram_constraint ((EditingToolsAdjustTool*) self);
+#line 16791 "EditingTools.c"
+}
+
+
+static gboolean _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = editing_tools_adjust_tool_on_hscale_reset ((EditingToolsAdjustTool*) self, _sender, event);
+#line 2804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 16800 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_bind_window_handlers (EditingToolsAdjustTool* self) {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp4_ = NULL;
+ GtkButton* _tmp5_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp6_ = NULL;
+ GtkScale* _tmp7_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp8_ = NULL;
+ GtkScale* _tmp9_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp10_ = NULL;
+ GtkScale* _tmp11_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp12_ = NULL;
+ GtkScale* _tmp13_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp14_ = NULL;
+ GtkScale* _tmp15_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp16_ = NULL;
+ GtkScale* _tmp17_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp18_ = NULL;
+ RGBHistogramManipulator* _tmp19_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp20_ = NULL;
+ GtkScale* _tmp21_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp22_ = NULL;
+ GtkScale* _tmp23_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp24_ = NULL;
+ GtkScale* _tmp25_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp26_ = NULL;
+ GtkScale* _tmp27_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp28_ = NULL;
+ GtkScale* _tmp29_ = NULL;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp30_ = NULL;
+ GtkScale* _tmp31_ = NULL;
+#line 2792 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->ok_button;
+#line 2793 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp1_, "clicked", (GCallback) _editing_tools_adjust_tool_on_ok_gtk_button_clicked, self);
+#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = self->priv->adjust_tool_window;
+#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->reset_button;
+#line 2794 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp3_, "clicked", (GCallback) _editing_tools_adjust_tool_on_reset_gtk_button_clicked, self);
+#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->adjust_tool_window;
+#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_->cancel_button;
+#line 2795 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp5_, "clicked", (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 2796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->adjust_tool_window;
+#line 2796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_->exposure_slider;
+#line 2796 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed, self);
+#line 2797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->adjust_tool_window;
+#line 2797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_->saturation_slider;
+#line 2797 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed, self);
+#line 2798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->priv->adjust_tool_window;
+#line 2798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_->tint_slider;
+#line 2798 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed, self);
+#line 2799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->adjust_tool_window;
+#line 2799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_->temperature_slider;
+#line 2799 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed, self);
+#line 2800 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = self->priv->adjust_tool_window;
+#line 2800 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = _tmp14_->shadows_slider;
+#line 2800 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed, self);
+#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->priv->adjust_tool_window;
+#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = _tmp16_->highlights_slider;
+#line 2801 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed, self);
+#line 2802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->adjust_tool_window;
+#line 2802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_->histogram_manipulator;
+#line 2802 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (_tmp19_, "nub-position-changed", (GCallback) _editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed, self);
+#line 2804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = self->priv->adjust_tool_window;
+#line 2804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = _tmp20_->saturation_slider;
+#line 2804 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = self->priv->adjust_tool_window;
+#line 2805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = _tmp22_->exposure_slider;
+#line 2805 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->adjust_tool_window;
+#line 2806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_->tint_slider;
+#line 2806 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = self->priv->adjust_tool_window;
+#line 2807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = _tmp26_->temperature_slider;
+#line 2807 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = self->priv->adjust_tool_window;
+#line 2808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = _tmp28_->shadows_slider;
+#line 2808 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = self->priv->adjust_tool_window;
+#line 2809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = _tmp30_->highlights_slider;
+#line 2809 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 16935 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_unbind_window_handlers (EditingToolsAdjustTool* self) {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp6_ = NULL;
+ GtkButton* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp9_ = NULL;
+ GtkScale* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp12_ = NULL;
+ GtkScale* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp15_ = NULL;
+ GtkScale* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp18_ = NULL;
+ GtkScale* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp21_ = NULL;
+ GtkScale* _tmp22_ = NULL;
+ guint _tmp23_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp24_ = NULL;
+ GtkScale* _tmp25_ = NULL;
+ guint _tmp26_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp27_ = NULL;
+ RGBHistogramManipulator* _tmp28_ = NULL;
+ guint _tmp29_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp30_ = NULL;
+ GtkScale* _tmp31_ = NULL;
+ guint _tmp32_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp33_ = NULL;
+ GtkScale* _tmp34_ = NULL;
+ guint _tmp35_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp36_ = NULL;
+ GtkScale* _tmp37_ = NULL;
+ guint _tmp38_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp39_ = NULL;
+ GtkScale* _tmp40_ = NULL;
+ guint _tmp41_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp42_ = NULL;
+ GtkScale* _tmp43_ = NULL;
+ guint _tmp44_ = 0U;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp45_ = NULL;
+ GtkScale* _tmp46_ = NULL;
+ guint _tmp47_ = 0U;
+#line 2812 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->adjust_tool_window;
+#line 2813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_->ok_button;
+#line 2813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp2_, NULL, FALSE);
+#line 2813 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_ok_gtk_button_clicked, self);
+#line 2814 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = self->priv->adjust_tool_window;
+#line 2814 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_->reset_button;
+#line 2814 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp5_, NULL, FALSE);
+#line 2814 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_reset_gtk_button_clicked, self);
+#line 2815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->adjust_tool_window;
+#line 2815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_->cancel_button;
+#line 2815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp8_, NULL, FALSE);
+#line 2815 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp7_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 2816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->adjust_tool_window;
+#line 2816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_->exposure_slider;
+#line 2816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp11_, NULL, FALSE);
+#line 2816 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_exposure_adjustment_gtk_range_value_changed, self);
+#line 2817 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->priv->adjust_tool_window;
+#line 2817 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _tmp12_->saturation_slider;
+#line 2817 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp14_, NULL, FALSE);
+#line 2817 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_saturation_adjustment_gtk_range_value_changed, self);
+#line 2818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = self->priv->adjust_tool_window;
+#line 2818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = _tmp15_->tint_slider;
+#line 2818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp17_, NULL, FALSE);
+#line 2818 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp17_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_tint_adjustment_gtk_range_value_changed, self);
+#line 2819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->priv->adjust_tool_window;
+#line 2819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = _tmp18_->temperature_slider;
+#line 2819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp20_, NULL, FALSE);
+#line 2819 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp20_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_temperature_adjustment_gtk_range_value_changed, self);
+#line 2820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->adjust_tool_window;
+#line 2820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_->shadows_slider;
+#line 2820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp23_, NULL, FALSE);
+#line 2820 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp23_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_shadows_adjustment_gtk_range_value_changed, self);
+#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->priv->adjust_tool_window;
+#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = _tmp24_->highlights_slider;
+#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp26_, NULL, FALSE);
+#line 2821 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp26_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_highlights_adjustment_gtk_range_value_changed, self);
+#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = self->priv->adjust_tool_window;
+#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = _tmp27_->histogram_manipulator;
+#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("nub-position-changed", TYPE_RGB_HISTOGRAM_MANIPULATOR, &_tmp29_, NULL, FALSE);
+#line 2822 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (_tmp28_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp29_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_histogram_constraint_rgb_histogram_manipulator_nub_position_changed, self);
+#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = self->priv->adjust_tool_window;
+#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = _tmp30_->saturation_slider;
+#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp32_, NULL, FALSE);
+#line 2824 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp32_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->priv->adjust_tool_window;
+#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _tmp33_->exposure_slider;
+#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp35_, NULL, FALSE);
+#line 2825 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp35_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = self->priv->adjust_tool_window;
+#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = _tmp36_->tint_slider;
+#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp38_, NULL, FALSE);
+#line 2826 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp38_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = self->priv->adjust_tool_window;
+#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = _tmp39_->temperature_slider;
+#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp41_, NULL, FALSE);
+#line 2827 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp41_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = self->priv->adjust_tool_window;
+#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = _tmp42_->shadows_slider;
+#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp44_, NULL, FALSE);
+#line 2828 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp44_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = self->priv->adjust_tool_window;
+#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = _tmp45_->highlights_slider;
+#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("button-press-event", gtk_widget_get_type (), &_tmp47_, NULL, FALSE);
+#line 2829 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp47_, 0, NULL, (GCallback) _editing_tools_adjust_tool_on_hscale_reset_gtk_widget_button_press_event, self);
+#line 17118 "EditingTools.c"
+}
+
+
+gboolean editing_tools_adjust_tool_enhance (EditingToolsAdjustTool* self) {
+ gboolean result = FALSE;
+ EditingToolsAdjustToolAdjustEnhanceCommand* command = NULL;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ EditingToolsAdjustToolAdjustEnhanceCommand* _tmp3_ = NULL;
+ EditingToolsAdjustToolAdjustEnhanceCommand* _tmp4_ = NULL;
+ CommandManager* _tmp5_ = NULL;
+ CommandManager* _tmp6_ = NULL;
+#line 2832 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self), FALSE);
+#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_);
+#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _tmp1_;
+#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = editing_tools_adjust_tool_adjust_enhance_command_new (self, _tmp2_);
+#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _tmp3_;
+#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2833 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command = _tmp4_;
+#line 2834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = app_window_get_command_manager ();
+#line 2834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_;
+#line 2834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command_manager_execute (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command));
+#line 2834 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _command_manager_unref0 (_tmp6_);
+#line 2836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (command);
+#line 2836 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 17162 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_on_photos_altered (EditingToolsAdjustTool* self, GeeMap* map) {
+ GeeMap* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ PixelTransformationBundle* adjustments = NULL;
+ EditingToolsPhotoCanvas* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ PixelTransformationBundle* _tmp9_ = NULL;
+ PixelTransformationBundle* _tmp10_ = NULL;
+ PixelTransformationBundle* _tmp11_ = NULL;
+#line 2839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = map;
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = editing_tools_photo_canvas_get_photo (_tmp1_);
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = gee_map_has_key (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = !_tmp4_;
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2840 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp5_) {
+#line 2841 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return;
+#line 17202 "EditingTools.c"
+ }
+#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = editing_tools_photo_canvas_get_photo (_tmp6_);
+#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _tmp7_;
+#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = photo_get_color_adjustments (_tmp8_);
+#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_;
+#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp8_);
+#line 2843 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ adjustments = _tmp10_;
+#line 2844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = adjustments;
+#line 2844 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_set_adjustments (self, _tmp11_);
+#line 2839 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (adjustments);
+#line 17224 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_set_adjustments (EditingToolsAdjustTool* self, PixelTransformationBundle* new_adjustments) {
+ PixelTransformationBundle* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp11_ = NULL;
+#line 2847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2847 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (new_adjustments));
+#line 2848 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_unbind_window_handlers (self);
+#line 2850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = new_adjustments;
+#line 2850 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_transformations (self, _tmp0_);
+#line 17241 "EditingTools.c"
+ {
+ GeeIterator* _adjustment_it = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterable* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = new_adjustments;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = pixel_transformation_bundle_get_transformations (_tmp1_);
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = gee_iterable_iterator (_tmp3_);
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = _tmp4_;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _adjustment_it = _tmp5_;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ while (TRUE) {
+#line 17265 "EditingTools.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PixelTransformation* adjustment = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ PixelTransformation* _tmp10_ = NULL;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _adjustment_it;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp7_) {
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17280 "EditingTools.c"
+ }
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _adjustment_it;
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ adjustment = (PixelTransformation*) _tmp9_;
+#line 2853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = adjustment;
+#line 2853 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_slider (self, _tmp10_);
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (adjustment);
+#line 17294 "EditingTools.c"
+ }
+#line 2852 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_adjustment_it);
+#line 17298 "EditingTools.c"
+ }
+#line 2855 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_bind_window_handlers (self);
+#line 2856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2856 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp11_);
+#line 17306 "EditingTools.c"
+}
+
+
+static gpointer _pixel_transformation_ref0 (gpointer self) {
+#line 2864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self ? pixel_transformation_ref (self) : NULL;
+#line 17313 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_update_slider (EditingToolsAdjustTool* self, PixelTransformation* transformation) {
+ PixelTransformation* _tmp0_ = NULL;
+ PixelTransformationType _tmp1_ = 0;
+#line 2861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2861 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (IS_PIXEL_TRANSFORMATION (transformation));
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = transformation;
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = pixel_transformation_get_transformation_type (_tmp0_);
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ switch (_tmp1_) {
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case PIXEL_TRANSFORMATION_TYPE_TONE_EXPANSION:
+#line 17332 "EditingTools.c"
+ {
+ ExpansionTransformation* expansion = NULL;
+ PixelTransformation* _tmp2_ = NULL;
+ ExpansionTransformation* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 2864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = transformation;
+#line 2864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _pixel_transformation_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_EXPANSION_TRANSFORMATION, ExpansionTransformation));
+#line 2864 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ expansion = _tmp3_;
+#line 2866 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->disable_histogram_refresh;
+#line 2866 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp4_) {
+#line 17348 "EditingTools.c"
+ EditingToolsAdjustToolAdjustToolWindow* _tmp5_ = NULL;
+ RGBHistogramManipulator* _tmp6_ = NULL;
+ ExpansionTransformation* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ EditingToolsAdjustToolAdjustToolWindow* _tmp9_ = NULL;
+ RGBHistogramManipulator* _tmp10_ = NULL;
+ ExpansionTransformation* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+#line 2867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->priv->adjust_tool_window;
+#line 2867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->histogram_manipulator;
+#line 2867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = expansion;
+#line 2867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = expansion_transformation_get_black_point (_tmp7_);
+#line 2867 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rgb_histogram_manipulator_set_left_nub_position (_tmp6_, _tmp8_);
+#line 2869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = self->priv->adjust_tool_window;
+#line 2869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = _tmp9_->histogram_manipulator;
+#line 2869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = expansion;
+#line 2869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = expansion_transformation_get_white_point (_tmp11_);
+#line 2869 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ rgb_histogram_manipulator_set_right_nub_position (_tmp10_, _tmp12_);
+#line 17377 "EditingTools.c"
+ }
+#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (expansion);
+#line 2872 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17383 "EditingTools.c"
+ }
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case PIXEL_TRANSFORMATION_TYPE_SHADOWS:
+#line 17387 "EditingTools.c"
+ {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp13_ = NULL;
+ GtkScale* _tmp14_ = NULL;
+ PixelTransformation* _tmp15_ = NULL;
+ gfloat _tmp16_ = 0.0F;
+#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->priv->adjust_tool_window;
+#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _tmp13_->shadows_slider;
+#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = transformation;
+#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = shadow_detail_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_SHADOW_DETAIL_TRANSFORMATION, ShadowDetailTransformation));
+#line 2875 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_range_get_type (), GtkRange), (gdouble) _tmp16_);
+#line 2877 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17405 "EditingTools.c"
+ }
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case PIXEL_TRANSFORMATION_TYPE_HIGHLIGHTS:
+#line 17409 "EditingTools.c"
+ {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp17_ = NULL;
+ GtkScale* _tmp18_ = NULL;
+ PixelTransformation* _tmp19_ = NULL;
+ gfloat _tmp20_ = 0.0F;
+#line 2880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->priv->adjust_tool_window;
+#line 2880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = _tmp17_->highlights_slider;
+#line 2880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = transformation;
+#line 2880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = highlight_detail_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_HIGHLIGHT_DETAIL_TRANSFORMATION, HighlightDetailTransformation));
+#line 2880 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_range_get_type (), GtkRange), (gdouble) _tmp20_);
+#line 2882 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17427 "EditingTools.c"
+ }
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case PIXEL_TRANSFORMATION_TYPE_EXPOSURE:
+#line 17431 "EditingTools.c"
+ {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp21_ = NULL;
+ GtkScale* _tmp22_ = NULL;
+ PixelTransformation* _tmp23_ = NULL;
+ gfloat _tmp24_ = 0.0F;
+#line 2885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = self->priv->adjust_tool_window;
+#line 2885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = _tmp21_->exposure_slider;
+#line 2885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = transformation;
+#line 2885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = exposure_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_EXPOSURE_TRANSFORMATION, ExposureTransformation));
+#line 2885 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_range_get_type (), GtkRange), (gdouble) _tmp24_);
+#line 2887 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17449 "EditingTools.c"
+ }
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case PIXEL_TRANSFORMATION_TYPE_SATURATION:
+#line 17453 "EditingTools.c"
+ {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp25_ = NULL;
+ GtkScale* _tmp26_ = NULL;
+ PixelTransformation* _tmp27_ = NULL;
+ gfloat _tmp28_ = 0.0F;
+#line 2890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = self->priv->adjust_tool_window;
+#line 2890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _tmp25_->saturation_slider;
+#line 2890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = transformation;
+#line 2890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = saturation_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, TYPE_SATURATION_TRANSFORMATION, SaturationTransformation));
+#line 2890 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_range_get_type (), GtkRange), (gdouble) _tmp28_);
+#line 2892 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17471 "EditingTools.c"
+ }
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case PIXEL_TRANSFORMATION_TYPE_TINT:
+#line 17475 "EditingTools.c"
+ {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp29_ = NULL;
+ GtkScale* _tmp30_ = NULL;
+ PixelTransformation* _tmp31_ = NULL;
+ gfloat _tmp32_ = 0.0F;
+#line 2895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->priv->adjust_tool_window;
+#line 2895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = _tmp29_->tint_slider;
+#line 2895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = transformation;
+#line 2895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = tint_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_TINT_TRANSFORMATION, TintTransformation));
+#line 2895 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, gtk_range_get_type (), GtkRange), (gdouble) _tmp32_);
+#line 2897 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17493 "EditingTools.c"
+ }
+#line 2862 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ case PIXEL_TRANSFORMATION_TYPE_TEMPERATURE:
+#line 17497 "EditingTools.c"
+ {
+ EditingToolsAdjustToolAdjustToolWindow* _tmp33_ = NULL;
+ GtkScale* _tmp34_ = NULL;
+ PixelTransformation* _tmp35_ = NULL;
+ gfloat _tmp36_ = 0.0F;
+#line 2900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = self->priv->adjust_tool_window;
+#line 2900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _tmp33_->temperature_slider;
+#line 2900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = transformation;
+#line 2900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = temperature_transformation_get_parameter (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_TEMPERATURE_TRANSFORMATION, TemperatureTransformation));
+#line 2900 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_range_get_type (), GtkRange), (gdouble) _tmp36_);
+#line 2902 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17515 "EditingTools.c"
+ }
+ default:
+ {
+ PixelTransformation* _tmp37_ = NULL;
+ PixelTransformationType _tmp38_ = 0;
+#line 2905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = transformation;
+#line 2905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = pixel_transformation_get_transformation_type (_tmp37_);
+#line 2905 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_error ("EditingTools.vala:2905: Unknown adjustment: %d", (gint) _tmp38_);
+#line 17527 "EditingTools.c"
+ }
+ }
+}
+
+
+static void editing_tools_adjust_tool_init_fp_pixel_cache (EditingToolsAdjustTool* self, GdkPixbuf* source) {
+ gint source_width = 0;
+ GdkPixbuf* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint source_height = 0;
+ GdkPixbuf* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint source_num_channels = 0;
+ GdkPixbuf* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint source_rowstride = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ guchar* source_pixels = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ guint8* _tmp9_ = NULL;
+ gint source_pixels_length1 = 0;
+ gint _source_pixels_size_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gfloat* _tmp12_ = NULL;
+ gint cache_pixel_index = 0;
+ gfloat INV_255 = 0.0F;
+#line 2909 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (self));
+#line 2909 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (source));
+#line 2910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = source;
+#line 2910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = gdk_pixbuf_get_width (_tmp0_);
+#line 2910 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ source_width = _tmp1_;
+#line 2911 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = source;
+#line 2911 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = gdk_pixbuf_get_height (_tmp2_);
+#line 2911 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ source_height = _tmp3_;
+#line 2912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = source;
+#line 2912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = gdk_pixbuf_get_n_channels (_tmp4_);
+#line 2912 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ source_num_channels = _tmp5_;
+#line 2913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = source;
+#line 2913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = gdk_pixbuf_get_rowstride (_tmp6_);
+#line 2913 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ source_rowstride = _tmp7_;
+#line 2914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = source;
+#line 2914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = gdk_pixbuf_get_pixels (_tmp8_);
+#line 2914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ source_pixels = _tmp9_;
+#line 2914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ source_pixels_length1 = -1;
+#line 2914 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _source_pixels_size_ = source_pixels_length1;
+#line 2916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = source_width;
+#line 2916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = source_height;
+#line 2916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = g_new0 (gfloat, (3 * _tmp10_) * _tmp11_);
+#line 2916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache = (g_free (self->priv->fp_pixel_cache), NULL);
+#line 2916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache = _tmp12_;
+#line 2916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache_length1 = (3 * _tmp10_) * _tmp11_;
+#line 2916 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->_fp_pixel_cache_size_ = self->priv->fp_pixel_cache_length1;
+#line 2917 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cache_pixel_index = 0;
+#line 2918 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ INV_255 = 1.0f / 255.0f;
+#line 17612 "EditingTools.c"
+ {
+ gint j = 0;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ j = 0;
+#line 17617 "EditingTools.c"
+ {
+ gboolean _tmp13_ = FALSE;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = TRUE;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ while (TRUE) {
+#line 17624 "EditingTools.c"
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint row_start_index = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint row_end_index = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp13_) {
+#line 17636 "EditingTools.c"
+ gint _tmp14_ = 0;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = j;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ j = _tmp14_ + 1;
+#line 17642 "EditingTools.c"
+ }
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = FALSE;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = j;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = source_height;
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!(_tmp15_ < _tmp16_)) {
+#line 2920 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17654 "EditingTools.c"
+ }
+#line 2921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = j;
+#line 2921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = source_rowstride;
+#line 2921 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ row_start_index = _tmp17_ * _tmp18_;
+#line 2922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = row_start_index;
+#line 2922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = source_width;
+#line 2922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = source_num_channels;
+#line 2922 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ row_end_index = _tmp19_ + (_tmp20_ * _tmp21_);
+#line 17670 "EditingTools.c"
+ {
+ gint i = 0;
+ gint _tmp22_ = 0;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = row_start_index;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ i = _tmp22_;
+#line 17678 "EditingTools.c"
+ {
+ gboolean _tmp23_ = FALSE;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = TRUE;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ while (TRUE) {
+#line 17685 "EditingTools.c"
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+ gfloat* _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gint _tmp29_ = 0;
+ guchar* _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ gint _tmp31_ = 0;
+ guchar _tmp32_ = '\0';
+ gfloat _tmp33_ = 0.0F;
+ gfloat _tmp34_ = 0.0F;
+ gfloat* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ gint _tmp36_ = 0;
+ guchar* _tmp37_ = NULL;
+ gint _tmp37__length1 = 0;
+ gint _tmp38_ = 0;
+ guchar _tmp39_ = '\0';
+ gfloat _tmp40_ = 0.0F;
+ gfloat _tmp41_ = 0.0F;
+ gfloat* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ gint _tmp43_ = 0;
+ guchar* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ gint _tmp45_ = 0;
+ guchar _tmp46_ = '\0';
+ gfloat _tmp47_ = 0.0F;
+ gfloat _tmp48_ = 0.0F;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!_tmp23_) {
+#line 17717 "EditingTools.c"
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = i;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = source_num_channels;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ i = _tmp24_ + _tmp25_;
+#line 17726 "EditingTools.c"
+ }
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = FALSE;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = i;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = row_end_index;
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (!(_tmp26_ < _tmp27_)) {
+#line 2923 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ break;
+#line 17738 "EditingTools.c"
+ }
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = self->priv->fp_pixel_cache;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28__length1 = self->priv->fp_pixel_cache_length1;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = cache_pixel_index;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cache_pixel_index = _tmp29_ + 1;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = source_pixels;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30__length1 = source_pixels_length1;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = i;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = _tmp30_[_tmp31_];
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = INV_255;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_[_tmp29_] = ((gfloat) _tmp32_) * _tmp33_;
+#line 2924 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = _tmp28_[_tmp29_];
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = self->priv->fp_pixel_cache;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35__length1 = self->priv->fp_pixel_cache_length1;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = cache_pixel_index;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cache_pixel_index = _tmp36_ + 1;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = source_pixels;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37__length1 = source_pixels_length1;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = i;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = _tmp37_[_tmp38_ + 1];
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = INV_255;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_[_tmp36_] = ((gfloat) _tmp39_) * _tmp40_;
+#line 2925 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = _tmp35_[_tmp36_];
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = self->priv->fp_pixel_cache;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42__length1 = self->priv->fp_pixel_cache_length1;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = cache_pixel_index;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ cache_pixel_index = _tmp43_ + 1;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44_ = source_pixels;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp44__length1 = source_pixels_length1;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp45_ = i;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp46_ = _tmp44_[_tmp45_ + 2];
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp47_ = INV_255;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_[_tmp43_] = ((gfloat) _tmp46_) * _tmp47_;
+#line 2926 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp48_ = _tmp42_[_tmp43_];
+#line 17806 "EditingTools.c"
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+static gboolean editing_tools_adjust_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event) {
+ EditingToolsAdjustTool * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkEventKey* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+ GdkEventKey* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 2931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
+#line 2931 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = event;
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = _tmp2_->keyval;
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = gdk_keyval_name (_tmp3_);
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (g_strcmp0 (_tmp4_, "KP_Enter") == 0) {
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = TRUE;
+#line 17840 "EditingTools.c"
+ } else {
+ GdkEventKey* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ const gchar* _tmp7_ = NULL;
+#line 2933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = event;
+#line 2933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _tmp5_->keyval;
+#line 2933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = gdk_keyval_name (_tmp6_);
+#line 2933 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = g_strcmp0 (_tmp7_, "Enter") == 0;
+#line 17853 "EditingTools.c"
+ }
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp1_) {
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = TRUE;
+#line 17859 "EditingTools.c"
+ } else {
+ GdkEventKey* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ const gchar* _tmp10_ = NULL;
+#line 2934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = event;
+#line 2934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_->keyval;
+#line 2934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = gdk_keyval_name (_tmp9_);
+#line 2934 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = g_strcmp0 (_tmp10_, "Return") == 0;
+#line 17872 "EditingTools.c"
+ }
+#line 2932 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_) {
+#line 2935 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_on_ok (self);
+#line 2936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2936 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 17882 "EditingTools.c"
+ }
+#line 2939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = event;
+#line 2939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp11_);
+#line 2939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp12_;
+#line 2939 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 17892 "EditingTools.c"
+}
+
+
+static EditingToolsAdjustToolAdjustToolWindow* editing_tools_adjust_tool_adjust_tool_window_construct (GType object_type, GtkWindow* container) {
+ EditingToolsAdjustToolAdjustToolWindow * self = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkGrid* slider_organizer = NULL;
+ GtkGrid* _tmp1_ = NULL;
+ GtkLabel* exposure_label = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkLabel* _tmp3_ = NULL;
+ GtkScale* _tmp4_ = NULL;
+ GtkScale* _tmp5_ = NULL;
+ GtkScale* _tmp6_ = NULL;
+ GtkScale* _tmp7_ = NULL;
+ GtkLabel* saturation_label = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkLabel* _tmp9_ = NULL;
+ GtkScale* _tmp10_ = NULL;
+ GtkScale* _tmp11_ = NULL;
+ GtkScale* _tmp12_ = NULL;
+ GtkScale* _tmp13_ = NULL;
+ GtkLabel* tint_label = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkLabel* _tmp15_ = NULL;
+ GtkScale* _tmp16_ = NULL;
+ GtkScale* _tmp17_ = NULL;
+ GtkScale* _tmp18_ = NULL;
+ GtkScale* _tmp19_ = NULL;
+ GtkLabel* temperature_label = NULL;
+ const gchar* _tmp20_ = NULL;
+ GtkLabel* _tmp21_ = NULL;
+ GtkScale* _tmp22_ = NULL;
+ GtkScale* _tmp23_ = NULL;
+ GtkScale* _tmp24_ = NULL;
+ GtkScale* _tmp25_ = NULL;
+ GtkLabel* shadows_label = NULL;
+ const gchar* _tmp26_ = NULL;
+ GtkLabel* _tmp27_ = NULL;
+ GtkScale* _tmp28_ = NULL;
+ GtkScale* _tmp29_ = NULL;
+ GtkScale* _tmp30_ = NULL;
+ GtkScale* _tmp31_ = NULL;
+ GtkLabel* highlights_label = NULL;
+ const gchar* _tmp32_ = NULL;
+ GtkLabel* _tmp33_ = NULL;
+ GtkScale* _tmp34_ = NULL;
+ GtkScale* _tmp35_ = NULL;
+ GtkScale* _tmp36_ = NULL;
+ GtkBox* button_layouter = NULL;
+ GtkBox* _tmp37_ = NULL;
+ GtkButton* _tmp38_ = NULL;
+ GtkButton* _tmp39_ = NULL;
+ GtkButton* _tmp40_ = NULL;
+ GtkAlignment* histogram_aligner = NULL;
+ GtkAlignment* _tmp41_ = NULL;
+ RGBHistogramManipulator* _tmp42_ = NULL;
+ GtkBox* pane_layouter = NULL;
+ GtkBox* _tmp43_ = NULL;
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
+#line 2231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = container;
+#line 2231 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsAdjustToolAdjustToolWindow*) editing_tools_editing_tool_window_construct (object_type, _tmp0_);
+#line 2233 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = (GtkGrid*) gtk_grid_new ();
+#line 2233 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp1_);
+#line 2233 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ slider_organizer = _tmp1_;
+#line 2234 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_set_column_homogeneous (slider_organizer, FALSE);
+#line 2235 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_set_row_spacing (slider_organizer, (guint) 12);
+#line 2236 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_set_column_spacing (slider_organizer, (guint) 12);
+#line 2237 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_margin_left (G_TYPE_CHECK_INSTANCE_CAST (slider_organizer, gtk_widget_get_type (), GtkWidget), 12);
+#line 2238 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_margin_bottom (G_TYPE_CHECK_INSTANCE_CAST (slider_organizer, gtk_widget_get_type (), GtkWidget), 12);
+#line 2240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _ ("Exposure:");
+#line 2240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp2_);
+#line 2240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp3_);
+#line 2240 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ exposure_label = _tmp3_;
+#line 2241 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (exposure_label, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 2242 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (exposure_label, gtk_widget_get_type (), GtkWidget), 0, 0, 1, 1);
+#line 2243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->exposure_slider;
+#line 2243 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), 1, 0, 1, 1);
+#line 2244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = self->exposure_slider;
+#line 2244 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
+#line 2245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->exposure_slider;
+#line 2245 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_scale_set_draw_value (_tmp6_, FALSE);
+#line 2246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = self->exposure_slider;
+#line 2246 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), 0);
+#line 2248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = _ ("Saturation:");
+#line 2248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp8_);
+#line 2248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp9_);
+#line 2248 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ saturation_label = _tmp9_;
+#line 2249 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (saturation_label, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 2250 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (saturation_label, gtk_widget_get_type (), GtkWidget), 0, 1, 1, 1);
+#line 2251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = self->saturation_slider;
+#line 2251 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), 1, 1, 1, 1);
+#line 2252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->saturation_slider;
+#line 2252 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
+#line 2253 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = self->saturation_slider;
+#line 2253 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_scale_set_draw_value (_tmp12_, FALSE);
+#line 2254 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = self->saturation_slider;
+#line 2254 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), 0);
+#line 2256 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = _ ("Tint:");
+#line 2256 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp14_);
+#line 2256 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp15_);
+#line 2256 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ tint_label = _tmp15_;
+#line 2257 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (tint_label, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 2258 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (tint_label, gtk_widget_get_type (), GtkWidget), 0, 2, 1, 1);
+#line 2259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = self->tint_slider;
+#line 2259 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), 1, 2, 1, 1);
+#line 2260 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = self->tint_slider;
+#line 2260 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
+#line 2261 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp18_ = self->tint_slider;
+#line 2261 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_scale_set_draw_value (_tmp18_, FALSE);
+#line 2262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp19_ = self->tint_slider;
+#line 2262 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), 0);
+#line 2264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp20_ = _ ("Temperature:");
+#line 2264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp21_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp20_);
+#line 2264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp21_);
+#line 2264 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ temperature_label = _tmp21_;
+#line 2266 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (temperature_label, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 2267 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (temperature_label, gtk_widget_get_type (), GtkWidget), 0, 3, 1, 1);
+#line 2268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp22_ = self->temperature_slider;
+#line 2268 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), 1, 3, 1, 1);
+#line 2269 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp23_ = self->temperature_slider;
+#line 2269 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
+#line 2270 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp24_ = self->temperature_slider;
+#line 2270 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_scale_set_draw_value (_tmp24_, FALSE);
+#line 2271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp25_ = self->temperature_slider;
+#line 2271 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), 0);
+#line 2273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp26_ = _ ("Shadows:");
+#line 2273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp27_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp26_);
+#line 2273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp27_);
+#line 2273 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ shadows_label = _tmp27_;
+#line 2274 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (shadows_label, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 2275 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (shadows_label, gtk_widget_get_type (), GtkWidget), 0, 4, 1, 1);
+#line 2276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp28_ = self->shadows_slider;
+#line 2276 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget), 1, 4, 1, 1);
+#line 2277 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp29_ = self->shadows_slider;
+#line 2277 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
+#line 2278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp30_ = self->shadows_slider;
+#line 2278 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_scale_set_draw_value (_tmp30_, FALSE);
+#line 2279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp31_ = self->shadows_slider;
+#line 2279 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_margin_right (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget), 0);
+#line 2281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp32_ = _ ("Highlights:");
+#line 2281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp33_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp32_);
+#line 2281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp33_);
+#line 2281 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ highlights_label = _tmp33_;
+#line 2282 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (highlights_label, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 2283 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (highlights_label, gtk_widget_get_type (), GtkWidget), 0, 5, 1, 1);
+#line 2284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp34_ = self->highlights_slider;
+#line 2284 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_grid_attach (slider_organizer, G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget), 1, 5, 1, 1);
+#line 2285 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp35_ = self->highlights_slider;
+#line 2285 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_ADJUST_TOOL_SLIDER_WIDTH, -1);
+#line 2286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp36_ = self->highlights_slider;
+#line 2286 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_scale_set_draw_value (_tmp36_, FALSE);
+#line 2288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp37_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
+#line 2288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp37_);
+#line 2288 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ button_layouter = _tmp37_;
+#line 2289 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_box_set_homogeneous (button_layouter, TRUE);
+#line 2290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp38_ = self->cancel_button;
+#line 2290 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_box_pack_start (button_layouter, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 1);
+#line 2291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp39_ = self->reset_button;
+#line 2291 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_box_pack_start (button_layouter, G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 1);
+#line 2292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp40_ = self->ok_button;
+#line 2292 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_box_pack_start (button_layouter, G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 1);
+#line 2294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp41_ = (GtkAlignment*) gtk_alignment_new (0.0f, 0.0f, 0.0f, 0.0f);
+#line 2294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp41_);
+#line 2294 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ histogram_aligner = _tmp41_;
+#line 2295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp42_ = self->histogram_manipulator;
+#line 2295 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (histogram_aligner, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, gtk_widget_get_type (), GtkWidget));
+#line 2296 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_alignment_set_padding (histogram_aligner, (guint) 12, (guint) 8, (guint) 12, (guint) 12);
+#line 2298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp43_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
+#line 2298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp43_);
+#line 2298 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pane_layouter = _tmp43_;
+#line 2299 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (histogram_aligner, gtk_widget_get_type (), GtkWidget));
+#line 2300 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (slider_organizer, gtk_widget_get_type (), GtkWidget));
+#line 2301 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (button_layouter, gtk_widget_get_type (), GtkWidget));
+#line 2302 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_box_set_child_packing (pane_layouter, G_TYPE_CHECK_INSTANCE_CAST (histogram_aligner, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0, GTK_PACK_START);
+#line 2304 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (pane_layouter, gtk_widget_get_type (), GtkWidget));
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (pane_layouter);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (histogram_aligner);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (button_layouter);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (highlights_label);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (shadows_label);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (temperature_label);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (tint_label);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (saturation_label);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (exposure_label);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (slider_organizer);
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 18208 "EditingTools.c"
+}
+
+
+static EditingToolsAdjustToolAdjustToolWindow* editing_tools_adjust_tool_adjust_tool_window_new (GtkWindow* container) {
+#line 2230 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_adjust_tool_adjust_tool_window_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, container);
+#line 18215 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_tool_window_class_init (EditingToolsAdjustToolAdjustToolWindowClass * klass) {
+#line 2204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_adjust_tool_window_parent_class = g_type_class_peek_parent (klass);
+#line 2204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_tool_window_finalize;
+#line 18224 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_tool_window_instance_init (EditingToolsAdjustToolAdjustToolWindow * self) {
+ GtkScale* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ GtkScale* _tmp2_ = NULL;
+ GtkScale* _tmp3_ = NULL;
+ GtkScale* _tmp4_ = NULL;
+ GtkScale* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GtkButton* _tmp8_ = NULL;
+ GtkButton* _tmp9_ = NULL;
+ RGBHistogramManipulator* _tmp10_ = NULL;
+#line 2205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) EXPOSURE_TRANSFORMATION_MIN_PARAMETER, (gdouble) EXPOSURE_TRANSFORMATION_MAX_PARAMETER, 1.0);
+#line 2205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp0_);
+#line 2205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->exposure_slider = _tmp0_;
+#line 2208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) SATURATION_TRANSFORMATION_MIN_PARAMETER, (gdouble) SATURATION_TRANSFORMATION_MAX_PARAMETER, 1.0);
+#line 2208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp1_);
+#line 2208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->saturation_slider = _tmp1_;
+#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) TINT_TRANSFORMATION_MIN_PARAMETER, (gdouble) TINT_TRANSFORMATION_MAX_PARAMETER, 1.0);
+#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp2_);
+#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->tint_slider = _tmp2_;
+#line 2213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) TEMPERATURE_TRANSFORMATION_MIN_PARAMETER, (gdouble) TEMPERATURE_TRANSFORMATION_MAX_PARAMETER, 1.0);
+#line 2213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp3_);
+#line 2213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->temperature_slider = _tmp3_;
+#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) SHADOW_DETAIL_TRANSFORMATION_MIN_PARAMETER, (gdouble) SHADOW_DETAIL_TRANSFORMATION_MAX_PARAMETER, 1.0);
+#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp4_);
+#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->shadows_slider = _tmp4_;
+#line 2221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, (gdouble) HIGHLIGHT_DETAIL_TRANSFORMATION_MIN_PARAMETER, (gdouble) HIGHLIGHT_DETAIL_TRANSFORMATION_MAX_PARAMETER, 1.0);
+#line 2221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp5_);
+#line 2221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->highlights_slider = _tmp5_;
+#line 2225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_OK_LABEL);
+#line 2225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp6_);
+#line 2225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->ok_button = _tmp6_;
+#line 2226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _ ("_Reset");
+#line 2226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp7_);
+#line 2226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp8_);
+#line 2226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->reset_button = _tmp8_;
+#line 2227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
+#line 2227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp9_);
+#line 2227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->cancel_button = _tmp9_;
+#line 2228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = rgb_histogram_manipulator_new ();
+#line 2228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_object_ref_sink (_tmp10_);
+#line 2228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->histogram_manipulator = _tmp10_;
+#line 18302 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_tool_window_finalize (GObject* obj) {
+ EditingToolsAdjustToolAdjustToolWindow * self;
+#line 2204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_WINDOW, EditingToolsAdjustToolAdjustToolWindow);
+#line 2205 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->exposure_slider);
+#line 2208 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->saturation_slider);
+#line 2211 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->tint_slider);
+#line 2213 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->temperature_slider);
+#line 2217 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->shadows_slider);
+#line 2221 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->highlights_slider);
+#line 2225 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->ok_button);
+#line 2226 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->reset_button);
+#line 2227 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->cancel_button);
+#line 2228 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->histogram_manipulator);
+#line 2204 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_tool_window_parent_class)->finalize (obj);
+#line 18332 "EditingTools.c"
+}
+
+
+static GType editing_tools_adjust_tool_adjust_tool_window_get_type (void) {
+ static volatile gsize editing_tools_adjust_tool_adjust_tool_window_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_adjust_tool_adjust_tool_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustToolWindow), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_tool_window_instance_init, NULL };
+ GType editing_tools_adjust_tool_adjust_tool_window_type_id;
+ editing_tools_adjust_tool_adjust_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsAdjustToolAdjustToolWindow", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_adjust_tool_adjust_tool_window_type_id__volatile, editing_tools_adjust_tool_adjust_tool_window_type_id);
+ }
+ return editing_tools_adjust_tool_adjust_tool_window_type_id__volatile;
+}
+
+
+static void _editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated (EditingToolsEditingTool* _sender, gpointer self) {
+#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated ((EditingToolsAdjustToolAdjustToolCommand*) self);
+#line 18351 "EditingTools.c"
+}
+
+
+static EditingToolsAdjustToolAdjustToolCommand* editing_tools_adjust_tool_adjust_tool_command_construct (GType object_type, EditingToolsAdjustTool* owner, const gchar* name, const gchar* explanation) {
+ EditingToolsAdjustToolAdjustToolCommand * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ EditingToolsAdjustTool* _tmp2_ = NULL;
+ EditingToolsAdjustTool* _tmp3_ = NULL;
+#line 2311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
+#line 2311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 2311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (explanation != NULL, NULL);
+#line 2312 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = name;
+#line 2312 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = explanation;
+#line 2312 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsAdjustToolAdjustToolCommand*) command_construct (object_type, _tmp0_, _tmp1_);
+#line 2314 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = owner;
+#line 2314 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->owner = _tmp2_;
+#line 2315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = owner;
+#line 2315 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "deactivated", (GCallback) _editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated, self, 0);
+#line 2311 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 18383 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated (EditingToolsAdjustToolAdjustToolCommand* self) {
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+#line 2323 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_if_fail (EDITING_TOOLS_ADJUST_TOOL_IS_ADJUST_TOOL_COMMAND (self));
+#line 2326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = app_window_get_command_manager ();
+#line 2326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _tmp0_;
+#line 2326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command_manager_reset (_tmp1_);
+#line 2326 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 18400 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_tool_command_class_init (EditingToolsAdjustToolAdjustToolCommandClass * klass) {
+#line 2308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_adjust_tool_command_parent_class = g_type_class_peek_parent (klass);
+#line 2308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_tool_command_finalize;
+#line 18409 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_tool_command_instance_init (EditingToolsAdjustToolAdjustToolCommand * self) {
+}
+
+
+static void editing_tools_adjust_tool_adjust_tool_command_finalize (GObject* obj) {
+ EditingToolsAdjustToolAdjustToolCommand * self;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+#line 2308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand);
+#line 2319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->owner;
+#line 2319 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ != NULL) {
+#line 18426 "EditingTools.c"
+ EditingToolsAdjustTool* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->owner;
+#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_parse_name ("deactivated", EDITING_TOOLS_TYPE_EDITING_TOOL, &_tmp2_, NULL, FALSE);
+#line 2320 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _editing_tools_adjust_tool_adjust_tool_command_on_owner_deactivated_editing_tools_editing_tool_deactivated, self);
+#line 18435 "EditingTools.c"
+ }
+#line 2308 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_tool_command_parent_class)->finalize (obj);
+#line 18439 "EditingTools.c"
+}
+
+
+static GType editing_tools_adjust_tool_adjust_tool_command_get_type (void) {
+ static volatile gsize editing_tools_adjust_tool_adjust_tool_command_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_adjust_tool_adjust_tool_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustToolCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_tool_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustToolCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_tool_command_instance_init, NULL };
+ GType editing_tools_adjust_tool_adjust_tool_command_type_id;
+ editing_tools_adjust_tool_adjust_tool_command_type_id = g_type_register_static (TYPE_COMMAND, "EditingToolsAdjustToolAdjustToolCommand", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&editing_tools_adjust_tool_adjust_tool_command_type_id__volatile, editing_tools_adjust_tool_adjust_tool_command_type_id);
+ }
+ return editing_tools_adjust_tool_adjust_tool_command_type_id__volatile;
+}
+
+
+static EditingToolsAdjustToolAdjustResetCommand* editing_tools_adjust_tool_adjust_reset_command_construct (GType object_type, EditingToolsAdjustTool* owner, PixelTransformationBundle* current) {
+ EditingToolsAdjustToolAdjustResetCommand * self = NULL;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PixelTransformationBundle* _tmp3_ = NULL;
+ PixelTransformationBundle* _tmp4_ = NULL;
+ PixelTransformationBundle* _tmp5_ = NULL;
+ PixelTransformationBundle* _tmp6_ = NULL;
+#line 2334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
+#line 2334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION_BUNDLE (current), NULL);
+#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = owner;
+#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _ ("Reset Colors");
+#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _ ("Reset all color adjustments to original");
+#line 2335 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsAdjustToolAdjustResetCommand*) editing_tools_adjust_tool_adjust_tool_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 2337 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = current;
+#line 2337 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = pixel_transformation_bundle_copy (_tmp3_);
+#line 2337 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->original);
+#line 2337 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->original = _tmp4_;
+#line 2338 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = pixel_transformation_bundle_new ();
+#line 2338 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->reset);
+#line 2338 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->reset = _tmp5_;
+#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = self->priv->reset;
+#line 2339 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ pixel_transformation_bundle_set_to_identity (_tmp6_);
+#line 2334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 18496 "EditingTools.c"
+}
+
+
+static EditingToolsAdjustToolAdjustResetCommand* editing_tools_adjust_tool_adjust_reset_command_new (EditingToolsAdjustTool* owner, PixelTransformationBundle* current) {
+#line 2334 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_adjust_tool_adjust_reset_command_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, owner, current);
+#line 18503 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_reset_command_real_execute (Command* base) {
+ EditingToolsAdjustToolAdjustResetCommand * self;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+#line 2342 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
+#line 2343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->reset;
+#line 2343 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_set_adjustments (_tmp0_, _tmp1_);
+#line 18519 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_reset_command_real_undo (Command* base) {
+ EditingToolsAdjustToolAdjustResetCommand * self;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+#line 2346 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
+#line 2347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->original;
+#line 2347 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_set_adjustments (_tmp0_, _tmp1_);
+#line 18535 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_adjust_tool_adjust_reset_command_real_compress (Command* base, Command* command) {
+ EditingToolsAdjustToolAdjustResetCommand * self;
+ gboolean result = FALSE;
+ EditingToolsAdjustToolAdjustResetCommand* reset_command = NULL;
+ Command* _tmp0_ = NULL;
+ EditingToolsAdjustToolAdjustResetCommand* _tmp1_ = NULL;
+ EditingToolsAdjustToolAdjustResetCommand* _tmp2_ = NULL;
+ EditingToolsAdjustToolAdjustResetCommand* _tmp3_ = NULL;
+ EditingToolsAdjustTool* _tmp4_ = NULL;
+ EditingToolsAdjustTool* _tmp5_ = NULL;
+#line 2350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
+#line 2350 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 2351 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = command;
+#line 2351 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND) ? ((EditingToolsAdjustToolAdjustResetCommand*) _tmp0_) : NULL);
+#line 2351 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ reset_command = _tmp1_;
+#line 2352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = reset_command;
+#line 2352 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_ == NULL) {
+#line 2353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (reset_command);
+#line 2353 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 18569 "EditingTools.c"
+ }
+#line 2355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = reset_command;
+#line 2355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2355 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp4_ != _tmp5_) {
+#line 2356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (reset_command);
+#line 2356 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 18585 "EditingTools.c"
+ }
+#line 2359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (reset_command);
+#line 2359 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 18593 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_reset_command_class_init (EditingToolsAdjustToolAdjustResetCommandClass * klass) {
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_adjust_reset_command_parent_class = g_type_class_peek_parent (klass);
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolAdjustResetCommandPrivate));
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->execute = editing_tools_adjust_tool_adjust_reset_command_real_execute;
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->undo = editing_tools_adjust_tool_adjust_reset_command_real_undo;
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->compress = editing_tools_adjust_tool_adjust_reset_command_real_compress;
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_reset_command_finalize;
+#line 18610 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_reset_command_instance_init (EditingToolsAdjustToolAdjustResetCommand * self) {
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_ADJUST_TOOL_ADJUST_RESET_COMMAND_GET_PRIVATE (self);
+#line 18617 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_reset_command_finalize (GObject* obj) {
+ EditingToolsAdjustToolAdjustResetCommand * self;
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_RESET_COMMAND, EditingToolsAdjustToolAdjustResetCommand);
+#line 2331 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->original);
+#line 2332 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->reset);
+#line 2330 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_reset_command_parent_class)->finalize (obj);
+#line 18631 "EditingTools.c"
+}
+
+
+static GType editing_tools_adjust_tool_adjust_reset_command_get_type (void) {
+ static volatile gsize editing_tools_adjust_tool_adjust_reset_command_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_adjust_tool_adjust_reset_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustResetCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_reset_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustResetCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_reset_command_instance_init, NULL };
+ GType editing_tools_adjust_tool_adjust_reset_command_type_id;
+ editing_tools_adjust_tool_adjust_reset_command_type_id = g_type_register_static (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, "EditingToolsAdjustToolAdjustResetCommand", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_adjust_tool_adjust_reset_command_type_id__volatile, editing_tools_adjust_tool_adjust_reset_command_type_id);
+ }
+ return editing_tools_adjust_tool_adjust_reset_command_type_id__volatile;
+}
+
+
+static EditingToolsAdjustToolSliderAdjustmentCommand* editing_tools_adjust_tool_slider_adjustment_command_construct (GType object_type, EditingToolsAdjustTool* owner, PixelTransformation* old_transformation, PixelTransformation* new_transformation, const gchar* name) {
+ EditingToolsAdjustToolSliderAdjustmentCommand * self = NULL;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PixelTransformation* _tmp3_ = NULL;
+ PixelTransformation* _tmp4_ = NULL;
+ PixelTransformation* _tmp5_ = NULL;
+ PixelTransformation* _tmp6_ = NULL;
+ PixelTransformation* _tmp7_ = NULL;
+ PixelTransformationType _tmp8_ = 0;
+ PixelTransformation* _tmp9_ = NULL;
+ PixelTransformationType _tmp10_ = 0;
+ PixelTransformationType _tmp11_ = 0;
+#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
+#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (old_transformation), NULL);
+#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PIXEL_TRANSFORMATION (new_transformation), NULL);
+#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 2370 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = owner;
+#line 2370 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = name;
+#line 2370 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = name;
+#line 2370 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsAdjustToolSliderAdjustmentCommand*) editing_tools_adjust_tool_adjust_tool_command_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = old_transformation;
+#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = _pixel_transformation_ref0 (_tmp3_);
+#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (self->priv->old_transformation);
+#line 2372 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->old_transformation = _tmp4_;
+#line 2373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = new_transformation;
+#line 2373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = _pixel_transformation_ref0 (_tmp5_);
+#line 2373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (self->priv->new_transformation);
+#line 2373 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->new_transformation = _tmp6_;
+#line 2374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = old_transformation;
+#line 2374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = pixel_transformation_get_transformation_type (_tmp7_);
+#line 2374 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->transformation_type = _tmp8_;
+#line 2375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = new_transformation;
+#line 2375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = pixel_transformation_get_transformation_type (_tmp9_);
+#line 2375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = self->priv->transformation_type;
+#line 2375 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _vala_assert (_tmp10_ == _tmp11_, "new_transformation.get_transformation_type() == transformation_type");
+#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 18709 "EditingTools.c"
+}
+
+
+static EditingToolsAdjustToolSliderAdjustmentCommand* editing_tools_adjust_tool_slider_adjustment_command_new (EditingToolsAdjustTool* owner, PixelTransformation* old_transformation, PixelTransformation* new_transformation, const gchar* name) {
+#line 2368 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_adjust_tool_slider_adjustment_command_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, owner, old_transformation, new_transformation, name);
+#line 18716 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_slider_adjustment_command_real_execute (Command* base) {
+ EditingToolsAdjustToolSliderAdjustmentCommand * self;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+ EditingToolsAdjustTool* _tmp2_ = NULL;
+ EditingToolsPhotoCanvas* _tmp3_ = NULL;
+#line 2378 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
+#line 2380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->new_transformation;
+#line 2380 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_transformation (_tmp0_, _tmp1_);
+#line 2381 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2381 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2381 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp3_);
+#line 18740 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_slider_adjustment_command_real_undo (Command* base) {
+ EditingToolsAdjustToolSliderAdjustmentCommand * self;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+ EditingToolsAdjustTool* _tmp2_ = NULL;
+ EditingToolsAdjustTool* _tmp3_ = NULL;
+ PixelTransformation* _tmp4_ = NULL;
+ EditingToolsAdjustTool* _tmp5_ = NULL;
+ EditingToolsAdjustTool* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+#line 2384 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
+#line 2385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->old_transformation;
+#line 2385 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_transformation (_tmp0_, _tmp1_);
+#line 2387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2387 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_unbind_window_handlers (_tmp2_);
+#line 2388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->old_transformation;
+#line 2388 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_slider (_tmp3_, _tmp4_);
+#line 2389 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2389 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_bind_window_handlers (_tmp5_);
+#line 2391 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2391 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2391 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp7_);
+#line 18782 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_slider_adjustment_command_real_redo (Command* base) {
+ EditingToolsAdjustToolSliderAdjustmentCommand * self;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ PixelTransformation* _tmp1_ = NULL;
+ EditingToolsAdjustTool* _tmp2_ = NULL;
+ EditingToolsAdjustTool* _tmp3_ = NULL;
+ PixelTransformation* _tmp4_ = NULL;
+ EditingToolsAdjustTool* _tmp5_ = NULL;
+ EditingToolsAdjustTool* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+#line 2394 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
+#line 2395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->new_transformation;
+#line 2395 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_transformation (_tmp0_, _tmp1_);
+#line 2397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2397 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_unbind_window_handlers (_tmp2_);
+#line 2398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->new_transformation;
+#line 2398 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_update_slider (_tmp3_, _tmp4_);
+#line 2399 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2399 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_bind_window_handlers (_tmp5_);
+#line 2401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2401 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_photo_canvas_repaint (_tmp7_);
+#line 18824 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_adjust_tool_slider_adjustment_command_real_compress (Command* base, Command* command) {
+ EditingToolsAdjustToolSliderAdjustmentCommand * self;
+ gboolean result = FALSE;
+ EditingToolsAdjustToolSliderAdjustmentCommand* slider_adjustment = NULL;
+ Command* _tmp0_ = NULL;
+ EditingToolsAdjustToolSliderAdjustmentCommand* _tmp1_ = NULL;
+ EditingToolsAdjustToolSliderAdjustmentCommand* _tmp2_ = NULL;
+ EditingToolsAdjustToolSliderAdjustmentCommand* _tmp3_ = NULL;
+ EditingToolsAdjustTool* _tmp4_ = NULL;
+ EditingToolsAdjustTool* _tmp5_ = NULL;
+ EditingToolsAdjustToolSliderAdjustmentCommand* _tmp6_ = NULL;
+ PixelTransformationType _tmp7_ = 0;
+ PixelTransformationType _tmp8_ = 0;
+ EditingToolsAdjustToolSliderAdjustmentCommand* _tmp9_ = NULL;
+ EditingToolsAdjustToolSliderAdjustmentCommand* _tmp10_ = NULL;
+ PixelTransformation* _tmp11_ = NULL;
+ PixelTransformation* _tmp12_ = NULL;
+#line 2404 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
+#line 2404 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 2405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = command;
+#line 2405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND) ? ((EditingToolsAdjustToolSliderAdjustmentCommand*) _tmp0_) : NULL);
+#line 2405 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ slider_adjustment = _tmp1_;
+#line 2406 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = slider_adjustment;
+#line 2406 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_ == NULL) {
+#line 2407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (slider_adjustment);
+#line 2407 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 18865 "EditingTools.c"
+ }
+#line 2410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = slider_adjustment;
+#line 2410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2410 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp4_ != _tmp5_) {
+#line 2411 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2411 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (slider_adjustment);
+#line 2411 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 18881 "EditingTools.c"
+ }
+#line 2414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = slider_adjustment;
+#line 2414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = _tmp6_->priv->transformation_type;
+#line 2414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = self->priv->transformation_type;
+#line 2414 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp7_ != _tmp8_) {
+#line 2415 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2415 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (slider_adjustment);
+#line 2415 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 18897 "EditingTools.c"
+ }
+#line 2418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = slider_adjustment;
+#line 2418 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ command_execute (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_COMMAND, Command));
+#line 2421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = slider_adjustment;
+#line 2421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_->priv->new_transformation;
+#line 2421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = _pixel_transformation_ref0 (_tmp11_);
+#line 2421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (self->priv->new_transformation);
+#line 2421 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->new_transformation = _tmp12_;
+#line 2423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (slider_adjustment);
+#line 2423 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 18919 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_slider_adjustment_command_class_init (EditingToolsAdjustToolSliderAdjustmentCommandClass * klass) {
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_slider_adjustment_command_parent_class = g_type_class_peek_parent (klass);
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolSliderAdjustmentCommandPrivate));
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->execute = editing_tools_adjust_tool_slider_adjustment_command_real_execute;
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->undo = editing_tools_adjust_tool_slider_adjustment_command_real_undo;
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->redo = editing_tools_adjust_tool_slider_adjustment_command_real_redo;
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->compress = editing_tools_adjust_tool_slider_adjustment_command_real_compress;
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_slider_adjustment_command_finalize;
+#line 18938 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_slider_adjustment_command_instance_init (EditingToolsAdjustToolSliderAdjustmentCommand * self) {
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_ADJUST_TOOL_SLIDER_ADJUSTMENT_COMMAND_GET_PRIVATE (self);
+#line 18945 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_slider_adjustment_command_finalize (GObject* obj) {
+ EditingToolsAdjustToolSliderAdjustmentCommand * self;
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_SLIDER_ADJUSTMENT_COMMAND, EditingToolsAdjustToolSliderAdjustmentCommand);
+#line 2365 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (self->priv->new_transformation);
+#line 2366 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_unref0 (self->priv->old_transformation);
+#line 2363 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_adjust_tool_slider_adjustment_command_parent_class)->finalize (obj);
+#line 18959 "EditingTools.c"
+}
+
+
+static GType editing_tools_adjust_tool_slider_adjustment_command_get_type (void) {
+ static volatile gsize editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolSliderAdjustmentCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_slider_adjustment_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolSliderAdjustmentCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_slider_adjustment_command_instance_init, NULL };
+ GType editing_tools_adjust_tool_slider_adjustment_command_type_id;
+ editing_tools_adjust_tool_slider_adjustment_command_type_id = g_type_register_static (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, "EditingToolsAdjustToolSliderAdjustmentCommand", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile, editing_tools_adjust_tool_slider_adjustment_command_type_id);
+ }
+ return editing_tools_adjust_tool_slider_adjustment_command_type_id__volatile;
+}
+
+
+static EditingToolsAdjustToolAdjustEnhanceCommand* editing_tools_adjust_tool_adjust_enhance_command_construct (GType object_type, EditingToolsAdjustTool* owner, Photo* photo) {
+ EditingToolsAdjustToolAdjustEnhanceCommand * self = NULL;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ PixelTransformationBundle* _tmp4_ = NULL;
+#line 2432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (EDITING_TOOLS_IS_ADJUST_TOOL (owner), NULL);
+#line 2432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), NULL);
+#line 2433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = owner;
+#line 2433 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = (EditingToolsAdjustToolAdjustEnhanceCommand*) editing_tools_adjust_tool_adjust_tool_command_construct (object_type, _tmp0_, RESOURCES_ENHANCE_LABEL, RESOURCES_ENHANCE_TOOLTIP);
+#line 2435 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = photo;
+#line 2435 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 2435 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->photo);
+#line 2435 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->photo = _tmp2_;
+#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = photo;
+#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = photo_get_color_adjustments (_tmp3_);
+#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->original);
+#line 2436 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->original = _tmp4_;
+#line 2432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return self;
+#line 19008 "EditingTools.c"
+}
+
+
+static EditingToolsAdjustToolAdjustEnhanceCommand* editing_tools_adjust_tool_adjust_enhance_command_new (EditingToolsAdjustTool* owner, Photo* photo) {
+#line 2432 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return editing_tools_adjust_tool_adjust_enhance_command_construct (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, owner, photo);
+#line 19015 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_enhance_command_real_execute (Command* base) {
+ EditingToolsAdjustToolAdjustEnhanceCommand * self;
+ PixelTransformationBundle* _tmp0_ = NULL;
+ EditingToolsAdjustTool* _tmp3_ = NULL;
+ PixelTransformationBundle* _tmp4_ = NULL;
+#line 2439 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
+#line 2440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = self->priv->enhanced;
+#line 2440 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp0_ == NULL) {
+#line 19030 "EditingTools.c"
+ Photo* _tmp1_ = NULL;
+ PixelTransformationBundle* _tmp2_ = NULL;
+#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->photo;
+#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = photo_get_enhance_transformations (_tmp1_);
+#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->enhanced);
+#line 2441 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->enhanced = _tmp2_;
+#line 19041 "EditingTools.c"
+ }
+#line 2443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = self->priv->enhanced;
+#line 2443 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_set_adjustments (_tmp3_, _tmp4_);
+#line 19049 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_enhance_command_real_undo (Command* base) {
+ EditingToolsAdjustToolAdjustEnhanceCommand * self;
+ EditingToolsAdjustTool* _tmp0_ = NULL;
+ PixelTransformationBundle* _tmp1_ = NULL;
+#line 2446 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
+#line 2447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = self->priv->original;
+#line 2447 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_set_adjustments (_tmp0_, _tmp1_);
+#line 19065 "EditingTools.c"
+}
+
+
+static gboolean editing_tools_adjust_tool_adjust_enhance_command_real_compress (Command* base, Command* command) {
+ EditingToolsAdjustToolAdjustEnhanceCommand * self;
+ gboolean result = FALSE;
+ EnhanceSingleCommand* enhance_single = NULL;
+ Command* _tmp0_ = NULL;
+ EnhanceSingleCommand* _tmp1_ = NULL;
+ EnhanceSingleCommand* _tmp2_ = NULL;
+ EditingToolsAdjustToolAdjustEnhanceCommand* enhance_command = NULL;
+ Command* _tmp12_ = NULL;
+ EditingToolsAdjustToolAdjustEnhanceCommand* _tmp13_ = NULL;
+ EditingToolsAdjustToolAdjustEnhanceCommand* _tmp14_ = NULL;
+ EditingToolsAdjustToolAdjustEnhanceCommand* _tmp15_ = NULL;
+ EditingToolsAdjustTool* _tmp16_ = NULL;
+ EditingToolsAdjustTool* _tmp17_ = NULL;
+#line 2450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
+#line 2450 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_return_val_if_fail (IS_COMMAND (command), FALSE);
+#line 2452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp0_ = command;
+#line 2452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_ENHANCE_SINGLE_COMMAND) ? ((EnhanceSingleCommand*) _tmp0_) : NULL);
+#line 2452 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ enhance_single = _tmp1_;
+#line 2453 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp2_ = enhance_single;
+#line 2453 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp2_ != NULL) {
+#line 19097 "EditingTools.c"
+ Photo* photo = NULL;
+ EnhanceSingleCommand* _tmp3_ = NULL;
+ DataSource* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ EditingToolsAdjustTool* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+#line 2454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp3_ = enhance_single;
+#line 2454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp4_ = single_data_source_command_get_source (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand));
+#line 2454 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ photo = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO, Photo);
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp5_ = photo;
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp8_ = editing_tools_photo_canvas_get_photo (_tmp7_);
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp9_ = _tmp8_;
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp10_ = data_source_equals (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_SOURCE, DataSource), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_SOURCE, DataSource));
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp11_ = _tmp10_;
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (_tmp9_);
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = _tmp11_;
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (photo);
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (enhance_single);
+#line 2458 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 19138 "EditingTools.c"
+ }
+#line 2461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp12_ = command;
+#line 2461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp13_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND) ? ((EditingToolsAdjustToolAdjustEnhanceCommand*) _tmp12_) : NULL);
+#line 2461 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ enhance_command = _tmp13_;
+#line 2462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp14_ = enhance_command;
+#line 2462 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp14_ == NULL) {
+#line 2463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (enhance_command);
+#line 2463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (enhance_single);
+#line 2463 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 19158 "EditingTools.c"
+ }
+#line 2465 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp15_ = enhance_command;
+#line 2465 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2465 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, EditingToolsAdjustToolAdjustToolCommand)->owner;
+#line 2465 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ if (_tmp16_ != _tmp17_) {
+#line 2466 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = FALSE;
+#line 2466 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (enhance_command);
+#line 2466 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (enhance_single);
+#line 2466 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 19176 "EditingTools.c"
+ }
+#line 2469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ result = TRUE;
+#line 2469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (enhance_command);
+#line 2469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (enhance_single);
+#line 2469 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ return result;
+#line 19186 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_enhance_command_class_init (EditingToolsAdjustToolAdjustEnhanceCommandClass * klass) {
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_adjust_enhance_command_parent_class = g_type_class_peek_parent (klass);
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolAdjustEnhanceCommandPrivate));
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->execute = editing_tools_adjust_tool_adjust_enhance_command_real_execute;
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->undo = editing_tools_adjust_tool_adjust_enhance_command_real_undo;
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((CommandClass *) klass)->compress = editing_tools_adjust_tool_adjust_enhance_command_real_compress;
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_adjust_tool_adjust_enhance_command_finalize;
+#line 19203 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_enhance_command_instance_init (EditingToolsAdjustToolAdjustEnhanceCommand * self) {
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_ADJUST_TOOL_ADJUST_ENHANCE_COMMAND_GET_PRIVATE (self);
+#line 2430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->enhanced = NULL;
+#line 19212 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_adjust_enhance_command_finalize (GObject* obj) {
+ EditingToolsAdjustToolAdjustEnhanceCommand * self;
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_ENHANCE_COMMAND, EditingToolsAdjustToolAdjustEnhanceCommand);
+#line 2428 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->photo);
+#line 2429 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->original);
+#line 2430 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->enhanced);
+#line 2427 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ G_OBJECT_CLASS (editing_tools_adjust_tool_adjust_enhance_command_parent_class)->finalize (obj);
+#line 19228 "EditingTools.c"
+}
+
+
+static GType editing_tools_adjust_tool_adjust_enhance_command_get_type (void) {
+ static volatile gsize editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolAdjustEnhanceCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_adjust_enhance_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustToolAdjustEnhanceCommand), 0, (GInstanceInitFunc) editing_tools_adjust_tool_adjust_enhance_command_instance_init, NULL };
+ GType editing_tools_adjust_tool_adjust_enhance_command_type_id;
+ editing_tools_adjust_tool_adjust_enhance_command_type_id = g_type_register_static (EDITING_TOOLS_ADJUST_TOOL_TYPE_ADJUST_TOOL_COMMAND, "EditingToolsAdjustToolAdjustEnhanceCommand", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile, editing_tools_adjust_tool_adjust_enhance_command_type_id);
+ }
+ return editing_tools_adjust_tool_adjust_enhance_command_type_id__volatile;
+}
+
+
+static void editing_tools_adjust_tool_class_init (EditingToolsAdjustToolClass * klass) {
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ editing_tools_adjust_tool_parent_class = g_type_class_peek_parent (klass);
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_adjust_tool_finalize;
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsAdjustToolPrivate));
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->activate = editing_tools_adjust_tool_real_activate;
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_tool_window = editing_tools_adjust_tool_real_get_tool_window;
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->deactivate = editing_tools_adjust_tool_real_deactivate;
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->paint = editing_tools_adjust_tool_real_paint;
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_display_pixbuf = editing_tools_adjust_tool_real_get_display_pixbuf;
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_keypress = editing_tools_adjust_tool_real_on_keypress;
+#line 19263 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_instance_init (EditingToolsAdjustTool * self) {
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv = EDITING_TOOLS_ADJUST_TOOL_GET_PRIVATE (self);
+#line 2473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->adjust_tool_window = NULL;
+#line 2474 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->suppress_effect_redraw = FALSE;
+#line 2475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->draw_to_pixbuf = NULL;
+#line 2476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->histogram_pixbuf = NULL;
+#line 2477 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->virgin_histogram_pixbuf = NULL;
+#line 2478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->transformer = NULL;
+#line 2479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->histogram_transformer = NULL;
+#line 2480 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->transformations = NULL;
+#line 2481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache = NULL;
+#line 2481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache_length1 = 0;
+#line 2481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->_fp_pixel_cache_size_ = self->priv->fp_pixel_cache_length1;
+#line 2482 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->disable_histogram_refresh = FALSE;
+#line 2483 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->temperature_scheduler = NULL;
+#line 2484 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->tint_scheduler = NULL;
+#line 2485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->saturation_scheduler = NULL;
+#line 2486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->exposure_scheduler = NULL;
+#line 2487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->shadows_scheduler = NULL;
+#line 2488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->highlights_scheduler = NULL;
+#line 19306 "EditingTools.c"
+}
+
+
+static void editing_tools_adjust_tool_finalize (EditingToolsEditingTool* obj) {
+ EditingToolsAdjustTool * self;
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_ADJUST_TOOL, EditingToolsAdjustTool);
+#line 2473 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->adjust_tool_window);
+#line 2475 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->draw_to_pixbuf);
+#line 2476 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->histogram_pixbuf);
+#line 2477 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _g_object_unref0 (self->priv->virgin_histogram_pixbuf);
+#line 2478 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformer_unref0 (self->priv->transformer);
+#line 2479 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformer_unref0 (self->priv->histogram_transformer);
+#line 2480 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _pixel_transformation_bundle_unref0 (self->priv->transformations);
+#line 2481 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ self->priv->fp_pixel_cache = (g_free (self->priv->fp_pixel_cache), NULL);
+#line 2483 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->temperature_scheduler);
+#line 2484 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->tint_scheduler);
+#line 2485 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->saturation_scheduler);
+#line 2486 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->exposure_scheduler);
+#line 2487 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->shadows_scheduler);
+#line 2488 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ _one_shot_scheduler_unref0 (self->priv->highlights_scheduler);
+#line 2200 "/home/jens/Source/shotwell/src/editing_tools/EditingTools.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_adjust_tool_parent_class)->finalize (obj);
+#line 19344 "EditingTools.c"
+}
+
+
+GType editing_tools_adjust_tool_get_type (void) {
+ static volatile gsize editing_tools_adjust_tool_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_adjust_tool_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsAdjustToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_adjust_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsAdjustTool), 0, (GInstanceInitFunc) editing_tools_adjust_tool_instance_init, NULL };
+ GType editing_tools_adjust_tool_type_id;
+ editing_tools_adjust_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsAdjustTool", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_adjust_tool_type_id__volatile, editing_tools_adjust_tool_type_id);
+ }
+ return editing_tools_adjust_tool_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/editing_tools/StraightenTool.c b/src/editing_tools/StraightenTool.c
new file mode 100644
index 0000000..14b6c61
--- /dev/null
+++ b/src/editing_tools/StraightenTool.c
@@ -0,0 +1,3547 @@
+/* StraightenTool.c generated by valac 0.32.1, the Vala compiler
+ * generated from StraightenTool.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <glib/gi18n-lib.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define EDITING_TOOLS_TYPE_EDITING_TOOL (editing_tools_editing_tool_get_type ())
+#define EDITING_TOOLS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool))
+#define EDITING_TOOLS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))
+#define EDITING_TOOLS_IS_EDITING_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL))
+#define EDITING_TOOLS_IS_EDITING_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL))
+#define EDITING_TOOLS_EDITING_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingToolClass))
+
+typedef struct _EditingToolsEditingTool EditingToolsEditingTool;
+typedef struct _EditingToolsEditingToolClass EditingToolsEditingToolClass;
+typedef struct _EditingToolsEditingToolPrivate EditingToolsEditingToolPrivate;
+
+#define EDITING_TOOLS_TYPE_PHOTO_CANVAS (editing_tools_photo_canvas_get_type ())
+#define EDITING_TOOLS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvas))
+#define EDITING_TOOLS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))
+#define EDITING_TOOLS_IS_PHOTO_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
+#define EDITING_TOOLS_IS_PHOTO_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_PHOTO_CANVAS))
+#define EDITING_TOOLS_PHOTO_CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_PHOTO_CANVAS, EditingToolsPhotoCanvasClass))
+
+typedef struct _EditingToolsPhotoCanvas EditingToolsPhotoCanvas;
+typedef struct _EditingToolsPhotoCanvasClass EditingToolsPhotoCanvasClass;
+
+#define EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW (editing_tools_editing_tool_window_get_type ())
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow))
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))
+#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
+#define EDITING_TOOLS_IS_EDITING_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW))
+#define EDITING_TOOLS_EDITING_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindowClass))
+
+typedef struct _EditingToolsEditingToolWindow EditingToolsEditingToolWindow;
+typedef struct _EditingToolsEditingToolWindowClass EditingToolsEditingToolWindowClass;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL (editing_tools_straighten_tool_get_type ())
+#define EDITING_TOOLS_STRAIGHTEN_TOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolClass))
+#define EDITING_TOOLS_IS_STRAIGHTEN_TOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL))
+#define EDITING_TOOLS_IS_STRAIGHTEN_TOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolClass))
+
+typedef struct _EditingToolsStraightenTool EditingToolsStraightenTool;
+typedef struct _EditingToolsStraightenToolClass EditingToolsStraightenToolClass;
+typedef struct _EditingToolsStraightenToolPrivate EditingToolsStraightenToolPrivate;
+
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW (editing_tools_straighten_tool_straighten_tool_window_get_type ())
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindow))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindowClass))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_TOOL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_TOOL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindowClass))
+
+typedef struct _EditingToolsStraightenToolStraightenToolWindow EditingToolsStraightenToolStraightenToolWindow;
+typedef struct _EditingToolsStraightenToolStraightenToolWindowClass EditingToolsStraightenToolStraightenToolWindowClass;
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE (editing_tools_straighten_tool_straighten_guide_get_type ())
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuide))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuideClass))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE))
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuideClass))
+
+typedef struct _EditingToolsStraightenToolStraightenGuide EditingToolsStraightenToolStraightenGuide;
+typedef struct _EditingToolsStraightenToolStraightenGuideClass EditingToolsStraightenToolStraightenGuideClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
+#define _editing_tools_straighten_tool_straighten_guide_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_straighten_tool_straighten_guide_unref (var), NULL)))
+typedef struct _EditingToolsEditingToolWindowPrivate EditingToolsEditingToolWindowPrivate;
+typedef struct _EditingToolsStraightenToolStraightenToolWindowPrivate EditingToolsStraightenToolStraightenToolWindowPrivate;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+
+#define TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND (generic_photo_transformation_command_get_type ())
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommand))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define IS_GENERIC_PHOTO_TRANSFORMATION_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND))
+#define GENERIC_PHOTO_TRANSFORMATION_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GENERIC_PHOTO_TRANSFORMATION_COMMAND, GenericPhotoTransformationCommandClass))
+
+typedef struct _GenericPhotoTransformationCommand GenericPhotoTransformationCommand;
+typedef struct _GenericPhotoTransformationCommandClass GenericPhotoTransformationCommandClass;
+
+#define TYPE_STRAIGHTEN_COMMAND (straighten_command_get_type ())
+#define STRAIGHTEN_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STRAIGHTEN_COMMAND, StraightenCommand))
+#define STRAIGHTEN_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STRAIGHTEN_COMMAND, StraightenCommandClass))
+#define IS_STRAIGHTEN_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STRAIGHTEN_COMMAND))
+#define IS_STRAIGHTEN_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STRAIGHTEN_COMMAND))
+#define STRAIGHTEN_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STRAIGHTEN_COMMAND, StraightenCommandClass))
+
+typedef struct _StraightenCommand StraightenCommand;
+typedef struct _StraightenCommandClass StraightenCommandClass;
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL)))
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_BACKING_FETCH_MODE (backing_fetch_mode_get_type ())
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _editing_tools_photo_canvas_unref0(var) ((var == NULL) ? NULL : (var = (editing_tools_photo_canvas_unref (var), NULL)))
+typedef struct _EditingToolsStraightenToolStraightenGuidePrivate EditingToolsStraightenToolStraightenGuidePrivate;
+typedef struct _EditingToolsStraightenToolParamSpecStraightenGuide EditingToolsStraightenToolParamSpecStraightenGuide;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+struct _EditingToolsEditingTool {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EditingToolsEditingToolPrivate * priv;
+ EditingToolsPhotoCanvas* canvas;
+ cairo_surface_t* surface;
+ gchar* name;
+};
+
+struct _EditingToolsEditingToolClass {
+ GTypeClass parent_class;
+ void (*finalize) (EditingToolsEditingTool *self);
+ void (*activate) (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
+ void (*deactivate) (EditingToolsEditingTool* self);
+ EditingToolsEditingToolWindow* (*get_tool_window) (EditingToolsEditingTool* self);
+ GdkPixbuf* (*get_display_pixbuf) (EditingToolsEditingTool* self, Scaling* scaling, Photo* photo, Dimensions* max_dim, GError** error);
+ void (*on_left_click) (EditingToolsEditingTool* self, gint x, gint y);
+ void (*on_left_released) (EditingToolsEditingTool* self, gint x, gint y);
+ void (*on_motion) (EditingToolsEditingTool* self, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (EditingToolsEditingTool* self);
+ gboolean (*on_keypress) (EditingToolsEditingTool* self, GdkEventKey* event);
+ void (*paint) (EditingToolsEditingTool* self, cairo_t* ctx);
+};
+
+struct _EditingToolsStraightenTool {
+ EditingToolsEditingTool parent_instance;
+ EditingToolsStraightenToolPrivate * priv;
+};
+
+struct _EditingToolsStraightenToolClass {
+ EditingToolsEditingToolClass parent_class;
+};
+
+struct _EditingToolsStraightenToolPrivate {
+ EditingToolsStraightenToolStraightenToolWindow* window;
+ cairo_surface_t* photo_surf;
+ Dimensions image_dims;
+ cairo_surface_t* rotate_surf;
+ cairo_t* rotate_ctx;
+ Dimensions last_viewport;
+ gint view_width;
+ gint view_height;
+ gdouble photo_angle;
+ gboolean use_high_qual;
+ OneShotScheduler* slider_sched;
+ GdkPoint crop_center;
+ gint crop_width;
+ gint crop_height;
+ EditingToolsStraightenToolStraightenGuide* guide;
+ GdkPoint rotated_center;
+ gdouble rotate_scale;
+ gdouble preview_scale;
+};
+
+struct _EditingToolsEditingToolWindow {
+ GtkWindow parent_instance;
+ EditingToolsEditingToolWindowPrivate * priv;
+};
+
+struct _EditingToolsEditingToolWindowClass {
+ GtkWindowClass parent_class;
+};
+
+struct _EditingToolsStraightenToolStraightenToolWindow {
+ EditingToolsEditingToolWindow parent_instance;
+ EditingToolsStraightenToolStraightenToolWindowPrivate * priv;
+ GtkScale* angle_slider;
+ GtkLabel* angle_label;
+ GtkLabel* description_label;
+ GtkButton* ok_button;
+ GtkButton* cancel_button;
+ GtkButton* reset_button;
+};
+
+struct _EditingToolsStraightenToolStraightenToolWindowClass {
+ EditingToolsEditingToolWindowClass parent_class;
+};
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ BACKING_FETCH_MODE_SOURCE,
+ BACKING_FETCH_MODE_BASELINE,
+ BACKING_FETCH_MODE_MASTER,
+ BACKING_FETCH_MODE_UNMODIFIED
+} BackingFetchMode;
+
+typedef void (*OneShotCallback) (void* user_data);
+struct _EditingToolsStraightenToolStraightenGuide {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ EditingToolsStraightenToolStraightenGuidePrivate * priv;
+};
+
+struct _EditingToolsStraightenToolStraightenGuideClass {
+ GTypeClass parent_class;
+ void (*finalize) (EditingToolsStraightenToolStraightenGuide *self);
+};
+
+struct _EditingToolsStraightenToolStraightenGuidePrivate {
+ gboolean is_active;
+ gint x[2];
+ gint y[2];
+ gdouble angle0;
+};
+
+struct _EditingToolsStraightenToolParamSpecStraightenGuide {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer editing_tools_straighten_tool_parent_class = NULL;
+static gpointer editing_tools_straighten_tool_straighten_guide_parent_class = NULL;
+static gpointer editing_tools_straighten_tool_straighten_tool_window_parent_class = NULL;
+
+gpointer editing_tools_editing_tool_ref (gpointer instance);
+void editing_tools_editing_tool_unref (gpointer instance);
+GParamSpec* editing_tools_param_spec_editing_tool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void editing_tools_value_set_editing_tool (GValue* value, gpointer v_object);
+void editing_tools_value_take_editing_tool (GValue* value, gpointer v_object);
+gpointer editing_tools_value_get_editing_tool (const GValue* value);
+GType editing_tools_editing_tool_get_type (void) G_GNUC_CONST;
+gpointer editing_tools_photo_canvas_ref (gpointer instance);
+void editing_tools_photo_canvas_unref (gpointer instance);
+GParamSpec* editing_tools_param_spec_photo_canvas (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void editing_tools_value_set_photo_canvas (GValue* value, gpointer v_object);
+void editing_tools_value_take_photo_canvas (GValue* value, gpointer v_object);
+gpointer editing_tools_value_get_photo_canvas (const GValue* value);
+GType editing_tools_photo_canvas_get_type (void) G_GNUC_CONST;
+GType editing_tools_editing_tool_window_get_type (void) G_GNUC_CONST;
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType editing_tools_straighten_tool_get_type (void) G_GNUC_CONST;
+static GType editing_tools_straighten_tool_straighten_tool_window_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+static gpointer editing_tools_straighten_tool_straighten_guide_ref (gpointer instance);
+static void editing_tools_straighten_tool_straighten_guide_unref (gpointer instance);
+static GParamSpec* editing_tools_straighten_tool_param_spec_straighten_guide (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void editing_tools_straighten_tool_value_set_straighten_guide (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void editing_tools_straighten_tool_value_take_straighten_guide (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer editing_tools_straighten_tool_value_get_straighten_guide (const GValue* value) G_GNUC_UNUSED;
+static GType editing_tools_straighten_tool_straighten_guide_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenToolPrivate))
+enum {
+ EDITING_TOOLS_STRAIGHTEN_TOOL_DUMMY_PROPERTY
+};
+static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_new (void);
+static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_construct (GType object_type);
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_ANGLE (-15.0)
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_MAX_ANGLE 15.0
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_INCREMENT 0.1
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_SLIDER_SIZE 160
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_LABEL_SIZE 100
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE 84
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_TEMP_PIXBUF_SIZE 768
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_REPAINT_ON_STOP_DELAY_MSEC 100
+static EditingToolsStraightenTool* editing_tools_straighten_tool_new (void);
+static EditingToolsStraightenTool* editing_tools_straighten_tool_construct (GType object_type);
+EditingToolsEditingTool* editing_tools_editing_tool_construct (GType object_type, const gchar* name);
+EditingToolsStraightenTool* editing_tools_straighten_tool_factory (void);
+gboolean editing_tools_straighten_tool_is_available (Photo* photo, Scaling* scaling);
+static void editing_tools_straighten_tool_on_ok_clicked (EditingToolsStraightenTool* self);
+Photo* editing_tools_photo_canvas_get_photo (EditingToolsPhotoCanvas* self);
+void rotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, gboolean invert, GdkPoint* result);
+GType command_get_type (void) G_GNUC_CONST;
+GType page_command_get_type (void) G_GNUC_CONST;
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+GType generic_photo_transformation_command_get_type (void) G_GNUC_CONST;
+GType straighten_command_get_type (void) G_GNUC_CONST;
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+void box_from_center (GdkPoint* center, gint width, gint height, Box* result);
+#define RESOURCES_STRAIGHTEN_LABEL _ ("Straighten")
+#define RESOURCES_STRAIGHTEN_TOOLTIP _ ("Straighten the photo")
+StraightenCommand* straighten_command_new (Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation);
+StraightenCommand* straighten_command_construct (GType object_type, Photo* photo, gdouble theta, Box* crop, const gchar* name, const gchar* explanation);
+static void editing_tools_straighten_tool_high_qual_repaint (EditingToolsStraightenTool* self);
+static void editing_tools_straighten_tool_update_rotated_surface (EditingToolsStraightenTool* self);
+void editing_tools_photo_canvas_repaint (EditingToolsPhotoCanvas* self);
+static void editing_tools_straighten_tool_on_slider_stopped_delayed (EditingToolsStraightenTool* self);
+static void editing_tools_straighten_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y);
+static void editing_tools_straighten_tool_straighten_guide_reset (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y, gdouble angle);
+static void editing_tools_straighten_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y);
+static gboolean editing_tools_straighten_tool_straighten_guide_update (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y);
+static gdouble* editing_tools_straighten_tool_straighten_guide_get_angle (EditingToolsStraightenToolStraightenGuide* self);
+static void editing_tools_straighten_tool_straighten_guide_clear (EditingToolsStraightenToolStraightenGuide* self);
+static void editing_tools_straighten_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask);
+static gboolean editing_tools_straighten_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event);
+void editing_tools_editing_tool_notify_cancel (EditingToolsEditingTool* self);
+gboolean editing_tools_editing_tool_on_keypress (EditingToolsEditingTool* self, GdkEventKey* event);
+static void editing_tools_straighten_tool_prepare_image (EditingToolsStraightenTool* self);
+void editing_tools_photo_canvas_get_surface_dim (EditingToolsPhotoCanvas* self, Dimensions* result);
+void dimensions_with_max (Dimensions *self, gint max_width, gint max_height, Dimensions* result);
+static gboolean _dimensions_equal (const Dimensions* s1, const Dimensions* s2);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+GType backing_fetch_mode_get_type (void) G_GNUC_CONST;
+GdkPixbuf* photo_get_pixbuf_with_options (Photo* self, Scaling* scaling, PhotoException exceptions, BackingFetchMode fetch_mode, GError** error);
+void scaling_for_viewport (Dimensions* viewport, gboolean scale_up, Scaling* result);
+gchar* data_object_to_string (DataObject* self);
+static void editing_tools_straighten_tool_adjust_for_rotation (EditingToolsStraightenTool* self);
+void compute_arb_rotated_size (gdouble src_width, gdouble src_height, gdouble angle, gdouble* dest_width, gdouble* dest_height);
+static void editing_tools_straighten_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas);
+void editing_tools_editing_tool_activate (EditingToolsEditingTool* self, EditingToolsPhotoCanvas* canvas);
+static void editing_tools_straighten_tool_bind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas);
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+gboolean photo_get_crop (Photo* self, Box* crop, PhotoException exceptions);
+gboolean photo_get_straighten (Photo* self, gdouble* theta);
+void derotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, GdkPoint* result);
+void box_get_center (Box *self, GdkPoint* result);
+gint box_get_width (Box *self);
+gint box_get_height (Box *self);
+GdkWindow* editing_tools_photo_canvas_get_drawing_window (EditingToolsPhotoCanvas* self);
+GtkWindow* editing_tools_photo_canvas_get_container (EditingToolsPhotoCanvas* self);
+static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_new (GtkWindow* container);
+static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_construct (GType object_type, GtkWindow* container);
+static void editing_tools_straighten_tool_bind_window_handlers (EditingToolsStraightenTool* self);
+static void editing_tools_straighten_tool_real_deactivate (EditingToolsEditingTool* base);
+static void editing_tools_straighten_tool_unbind_window_handlers (EditingToolsStraightenTool* self);
+static void editing_tools_straighten_tool_unbind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas);
+void editing_tools_editing_tool_deactivate (EditingToolsEditingTool* self);
+static void editing_tools_straighten_tool_on_resized_pixbuf (EditingToolsStraightenTool* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position);
+static void _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self);
+static gboolean _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
+static void _editing_tools_straighten_tool_on_ok_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void _editing_tools_editing_tool_notify_cancel_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void editing_tools_straighten_tool_on_angle_changed (EditingToolsStraightenTool* self);
+static void _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self);
+static void _editing_tools_straighten_tool_on_slider_stopped_delayed_one_shot_callback (gpointer self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+void one_shot_scheduler_after_timeout (OneShotScheduler* self, guint msec, gboolean reschedule);
+static EditingToolsEditingToolWindow* editing_tools_straighten_tool_real_get_tool_window (EditingToolsEditingTool* base);
+static void editing_tools_straighten_tool_draw_rotated_source (EditingToolsStraightenTool* self, cairo_surface_t* src_surf, cairo_t* dest_ctx, gint src_width, gint src_height, gdouble angle);
+static void editing_tools_straighten_tool_draw_superimposed_grid (EditingToolsStraightenTool* self, cairo_t* dest_ctx, gint width, gint height);
+static void editing_tools_straighten_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx);
+cairo_t* editing_tools_photo_canvas_get_default_ctx (EditingToolsPhotoCanvas* self);
+static void editing_tools_straighten_tool_straighten_guide_draw (EditingToolsStraightenToolStraightenGuide* self, cairo_t* ctx);
+gdouble degrees_to_radians (gdouble theta);
+void editing_tools_photo_canvas_draw_horizontal_line (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint x, gint y, gint width, gboolean use_scaled_pos);
+void editing_tools_photo_canvas_draw_vertical_line (EditingToolsPhotoCanvas* self, cairo_t* ctx, gint x, gint y, gint height, gboolean use_scaled_pos);
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuidePrivate))
+enum {
+ EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_DUMMY_PROPERTY
+};
+static gdouble* _double_dup (gdouble* self);
+static void editing_tools_straighten_tool_straighten_guide_finalize (EditingToolsStraightenToolStraightenGuide* obj);
+enum {
+ EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_DUMMY_PROPERTY
+};
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+#define EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING 8
+EditingToolsEditingToolWindow* editing_tools_editing_tool_window_construct (GType object_type, GtkWindow* container);
+static void editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked (EditingToolsStraightenToolStraightenToolWindow* self);
+static void _editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void editing_tools_straighten_tool_straighten_tool_window_finalize (GObject* obj);
+static void editing_tools_straighten_tool_finalize (EditingToolsEditingTool* obj);
+
+static const gdouble EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH[2] = {(gdouble) 10, (gdouble) 10};
+
+static EditingToolsStraightenTool* editing_tools_straighten_tool_construct (GType object_type) {
+ EditingToolsStraightenTool* self = NULL;
+#line 183 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = (EditingToolsStraightenTool*) editing_tools_editing_tool_construct (object_type, "StraightenTool");
+#line 182 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return self;
+#line 556 "StraightenTool.c"
+}
+
+
+static EditingToolsStraightenTool* editing_tools_straighten_tool_new (void) {
+#line 182 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return editing_tools_straighten_tool_construct (EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL);
+#line 563 "StraightenTool.c"
+}
+
+
+EditingToolsStraightenTool* editing_tools_straighten_tool_factory (void) {
+ EditingToolsStraightenTool* result = NULL;
+ EditingToolsStraightenTool* _tmp0_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = editing_tools_straighten_tool_new ();
+#line 187 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = _tmp0_;
+#line 187 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 576 "StraightenTool.c"
+}
+
+
+gboolean editing_tools_straighten_tool_is_available (Photo* photo, Scaling* scaling) {
+ gboolean result = FALSE;
+#line 190 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (IS_PHOTO (photo), FALSE);
+#line 190 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (scaling != NULL, FALSE);
+#line 191 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = TRUE;
+#line 191 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 590 "StraightenTool.c"
+}
+
+
+/**
+ * @brief Signal handler for when the 'OK' button has been clicked. Computes where a previously-
+ * set crop region should have rotated to (to match the Photo's straightening angle).
+ *
+ * @note After this has been called against a Photo, it will always have a crop region; in the
+ * case of a previously-uncropped Photo, the crop region will be set to the original dimensions
+ * of the photo and centered at the Photo's center.
+ */
+static void editing_tools_straighten_tool_on_ok_clicked (EditingToolsStraightenTool* self) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ gdouble slider_val = 0.0;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp3_ = NULL;
+ GtkScale* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ GdkPoint new_crop_center = {0};
+ GdkPoint _tmp6_ = {0};
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ GdkPoint _tmp11_ = {0};
+ StraightenCommand* command = NULL;
+ EditingToolsPhotoCanvas* _tmp12_ = NULL;
+ Photo* _tmp13_ = NULL;
+ Photo* _tmp14_ = NULL;
+ GdkPoint _tmp15_ = {0};
+ gdouble _tmp16_ = 0.0;
+ gint _tmp17_ = 0;
+ gdouble _tmp18_ = 0.0;
+ gint _tmp19_ = 0;
+ Box _tmp20_ = {0};
+ StraightenCommand* _tmp21_ = NULL;
+ StraightenCommand* _tmp22_ = NULL;
+ Dimensions _tmp23_ = {0};
+#line 202 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = editing_tools_photo_canvas_get_photo (_tmp0_);
+#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = _tmp1_;
+#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _vala_assert (_tmp2_ != NULL, "canvas.get_photo() != null");
+#line 203 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp2_);
+#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->priv->window;
+#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = _tmp3_->angle_slider;
+#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_range_get_type (), GtkRange));
+#line 207 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ slider_val = _tmp5_;
+#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = self->priv->rotated_center;
+#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = self->priv->image_dims;
+#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = _tmp7_.width;
+#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = self->priv->image_dims;
+#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = _tmp9_.height;
+#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ rotate_point_arb (&_tmp6_, _tmp8_, _tmp10_, slider_val, FALSE, &_tmp11_);
+#line 209 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ new_crop_center = _tmp11_;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = editing_tools_photo_canvas_get_photo (_tmp12_);
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = _tmp13_;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = new_crop_center;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = self->priv->rotate_scale;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = self->priv->crop_width;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = self->priv->rotate_scale;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = self->priv->crop_height;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ box_from_center (&_tmp15_, (gint) (_tmp16_ * _tmp17_), (gint) (_tmp18_ * _tmp19_), &_tmp20_);
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = straighten_command_new (_tmp14_, slider_val, &_tmp20_, RESOURCES_STRAIGHTEN_LABEL, RESOURCES_STRAIGHTEN_TOOLTIP);
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = _tmp21_;
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp14_);
+#line 212 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ command = _tmp22_;
+#line 217 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = self->priv->image_dims;
+#line 217 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), "applied", G_TYPE_CHECK_INSTANCE_CAST (command, TYPE_COMMAND, Command), NULL, &_tmp23_, TRUE);
+#line 202 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (command);
+#line 696 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_high_qual_repaint (EditingToolsStraightenTool* self) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 221 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->use_high_qual = TRUE;
+#line 222 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_update_rotated_surface (self);
+#line 223 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 223 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_repaint (_tmp0_);
+#line 712 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_on_slider_stopped_delayed (EditingToolsStraightenTool* self) {
+#line 226 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 227 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_high_qual_repaint (self);
+#line 721 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_real_on_left_click (EditingToolsEditingTool* base, gint x, gint y) {
+ EditingToolsStraightenTool * self;
+ EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gdouble _tmp3_ = 0.0;
+#line 230 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->guide;
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = x;
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = y;
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->priv->photo_angle;
+#line 231 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_reset (_tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 743 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_real_on_left_released (EditingToolsEditingTool* base, gint x, gint y) {
+ EditingToolsStraightenTool * self;
+ EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gdouble* a = NULL;
+ EditingToolsStraightenToolStraightenGuide* _tmp3_ = NULL;
+ gdouble* _tmp4_ = NULL;
+ EditingToolsStraightenToolStraightenGuide* _tmp5_ = NULL;
+ gdouble* _tmp6_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->guide;
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = x;
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = y;
+#line 235 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_update (_tmp0_, _tmp1_, _tmp2_);
+#line 236 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->priv->guide;
+#line 236 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = editing_tools_straighten_tool_straighten_guide_get_angle (_tmp3_);
+#line 236 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ a = _tmp4_;
+#line 237 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = self->priv->guide;
+#line 237 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_clear (_tmp5_);
+#line 238 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = a;
+#line 238 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp6_ != NULL) {
+#line 781 "StraightenTool.c"
+ EditingToolsStraightenToolStraightenToolWindow* _tmp7_ = NULL;
+ GtkScale* _tmp8_ = NULL;
+ gdouble* _tmp9_ = NULL;
+#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = self->priv->window;
+#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = _tmp7_->angle_slider;
+#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = a;
+#line 239 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_range_get_type (), GtkRange), *_tmp9_);
+#line 240 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_high_qual_repaint (self);
+#line 795 "StraightenTool.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (a);
+#line 799 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_real_on_motion (EditingToolsEditingTool* base, gint x, gint y, GdkModifierType mask) {
+ EditingToolsStraightenTool * self;
+ EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 244 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->guide;
+#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = x;
+#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = y;
+#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = editing_tools_straighten_tool_straighten_guide_update (_tmp0_, _tmp1_, _tmp2_);
+#line 245 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp3_) {
+#line 821 "StraightenTool.c"
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+#line 246 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 246 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_repaint (_tmp4_);
+#line 827 "StraightenTool.c"
+ }
+}
+
+
+static gboolean editing_tools_straighten_tool_real_on_keypress (EditingToolsEditingTool* base, GdkEventKey* event) {
+ EditingToolsStraightenTool * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GdkEventKey* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+ GdkEventKey* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ const gchar* _tmp13_ = NULL;
+ GdkEventKey* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 249 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 249 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = event;
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = _tmp2_->keyval;
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = gdk_keyval_name (_tmp3_);
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (g_strcmp0 (_tmp4_, "KP_Enter") == 0) {
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = TRUE;
+#line 859 "StraightenTool.c"
+ } else {
+ GdkEventKey* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ const gchar* _tmp7_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = event;
+#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp5_->keyval;
+#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = gdk_keyval_name (_tmp6_);
+#line 251 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = g_strcmp0 (_tmp7_, "Enter") == 0;
+#line 872 "StraightenTool.c"
+ }
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp1_) {
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = TRUE;
+#line 878 "StraightenTool.c"
+ } else {
+ GdkEventKey* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ const gchar* _tmp10_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = event;
+#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = _tmp8_->keyval;
+#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = gdk_keyval_name (_tmp9_);
+#line 252 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = g_strcmp0 (_tmp10_, "Return") == 0;
+#line 891 "StraightenTool.c"
+ }
+#line 250 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp0_) {
+#line 253 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_on_ok_clicked (self);
+#line 254 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = TRUE;
+#line 254 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 901 "StraightenTool.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = event;
+#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = _tmp11_->keyval;
+#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = gdk_keyval_name (_tmp12_);
+#line 257 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (g_strcmp0 (_tmp13_, "Escape") == 0) {
+#line 258 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_editing_tool_notify_cancel (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 259 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = TRUE;
+#line 259 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 917 "StraightenTool.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = event;
+#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->on_keypress (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp14_);
+#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = _tmp15_;
+#line 262 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 927 "StraightenTool.c"
+}
+
+
+static gboolean _dimensions_equal (const Dimensions* s1, const Dimensions* s2) {
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (s1 == s2) {
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return TRUE;
+#line 936 "StraightenTool.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (s1 == NULL) {
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return FALSE;
+#line 942 "StraightenTool.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (s2 == NULL) {
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return FALSE;
+#line 948 "StraightenTool.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (s1->width != s2->width) {
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return FALSE;
+#line 954 "StraightenTool.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (s1->height != s2->height) {
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return FALSE;
+#line 960 "StraightenTool.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return TRUE;
+#line 964 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_prepare_image (EditingToolsStraightenTool* self) {
+ Dimensions canvas_dims = {0};
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Dimensions viewport = {0};
+ Dimensions _tmp2_ = {0};
+ Dimensions _tmp3_ = {0};
+ Dimensions _tmp4_ = {0};
+ Dimensions _tmp5_ = {0};
+ GdkPixbuf* low_res_tmp = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ Dimensions _tmp24_ = {0};
+ gint _tmp25_ = 0;
+ GdkPixbuf* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ GdkPixbuf* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ cairo_surface_t* _tmp32_ = NULL;
+ cairo_t* ctx = NULL;
+ cairo_surface_t* _tmp33_ = NULL;
+ cairo_t* _tmp34_ = NULL;
+ cairo_t* _tmp35_ = NULL;
+ GdkPixbuf* _tmp36_ = NULL;
+ cairo_t* _tmp37_ = NULL;
+ GdkPixbuf* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ GdkPixbuf* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ cairo_t* _tmp44_ = NULL;
+ cairo_t* _tmp45_ = NULL;
+ gint _tmp46_ = 0;
+ gdouble _tmp47_ = 0.0;
+ gint _tmp48_ = 0;
+ gdouble _tmp49_ = 0.0;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ cairo_surface_t* _tmp52_ = NULL;
+ cairo_surface_t* _tmp53_ = NULL;
+ cairo_t* _tmp54_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 265 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 266 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 266 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_get_surface_dim (_tmp0_, &_tmp1_);
+#line 266 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ canvas_dims = _tmp1_;
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ dimensions_with_max (&canvas_dims, EDITING_TOOLS_STRAIGHTEN_TOOL_TEMP_PIXBUF_SIZE, EDITING_TOOLS_STRAIGHTEN_TOOL_TEMP_PIXBUF_SIZE, &_tmp2_);
+#line 267 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ viewport = _tmp2_;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = viewport;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = self->priv->last_viewport;
+#line 268 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_dimensions_equal (&_tmp3_, &_tmp4_) == TRUE) {
+#line 269 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return;
+#line 1034 "StraightenTool.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = viewport;
+#line 271 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->last_viewport = _tmp5_;
+#line 273 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ low_res_tmp = NULL;
+#line 1042 "StraightenTool.c"
+ {
+ GdkPixbuf* _tmp6_ = NULL;
+ EditingToolsPhotoCanvas* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ Dimensions _tmp10_ = {0};
+ Scaling _tmp11_ = {0};
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+ GdkPixbuf* _tmp14_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = editing_tools_photo_canvas_get_photo (_tmp7_);
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = _tmp8_;
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = viewport;
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ scaling_for_viewport (&_tmp10_, FALSE, &_tmp11_);
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = photo_get_pixbuf_with_options (_tmp9_, &_tmp11_, PHOTO_EXCEPTION_STRAIGHTEN | PHOTO_EXCEPTION_CROP, BACKING_FETCH_MODE_BASELINE, &_inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = _tmp12_;
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp9_);
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp13_;
+#line 276 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1073 "StraightenTool.c"
+ goto __catch21_g_error;
+ }
+#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = _tmp6_;
+#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (low_res_tmp);
+#line 275 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ low_res_tmp = _tmp14_;
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1086 "StraightenTool.c"
+ }
+ goto __finally21;
+ __catch21_g_error:
+ {
+ GError* e = NULL;
+ EditingToolsPhotoCanvas* _tmp15_ = NULL;
+ Photo* _tmp16_ = NULL;
+ Photo* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ e = _inner_error_;
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _inner_error_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = editing_tools_photo_canvas_get_photo (_tmp15_);
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = _tmp16_;
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_OBJECT, DataObject));
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = _tmp18_;
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_warning ("StraightenTool.vala:279: A pixbuf for %s couldn't be fetched.", _tmp19_);
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (_tmp19_);
+#line 279 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp17_);
+#line 280 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 1, 1);
+#line 280 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (low_res_tmp);
+#line 280 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ low_res_tmp = _tmp20_;
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_error_free0 (e);
+#line 1126 "StraightenTool.c"
+ }
+ __finally21:
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (low_res_tmp);
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_clear_error (&_inner_error_);
+#line 274 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return;
+#line 1139 "StraightenTool.c"
+ }
+#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = low_res_tmp;
+#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = gdk_pixbuf_get_width (_tmp21_);
+#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = _tmp22_;
+#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp24_ = self->priv->image_dims;
+#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp25_ = _tmp24_.width;
+#line 283 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->preview_scale = _tmp23_ / ((gdouble) _tmp25_);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp26_ = low_res_tmp;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp27_ = gdk_pixbuf_get_width (_tmp26_);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp28_ = _tmp27_;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp29_ = low_res_tmp;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp30_ = gdk_pixbuf_get_height (_tmp29_);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp31_ = _tmp30_;
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp32_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp28_, _tmp31_);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_surface_destroy0 (self->priv->photo_surf);
+#line 286 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->photo_surf = _tmp32_;
+#line 287 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp33_ = self->priv->photo_surf;
+#line 287 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp34_ = cairo_create (_tmp33_);
+#line 287 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ctx = _tmp34_;
+#line 288 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp35_ = ctx;
+#line 288 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp36_ = low_res_tmp;
+#line 288 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gdk_cairo_set_source_pixbuf (_tmp35_, _tmp36_, (gdouble) 0, (gdouble) 0);
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp37_ = ctx;
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp38_ = low_res_tmp;
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp39_ = gdk_pixbuf_get_width (_tmp38_);
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp40_ = _tmp39_;
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp41_ = low_res_tmp;
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp42_ = gdk_pixbuf_get_height (_tmp41_);
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp43_ = _tmp42_;
+#line 289 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_rectangle (_tmp37_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp40_, (gdouble) _tmp43_);
+#line 290 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp44_ = ctx;
+#line 290 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_fill (_tmp44_);
+#line 291 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp45_ = ctx;
+#line 291 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_paint (_tmp45_);
+#line 295 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp46_ = self->priv->crop_width;
+#line 295 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp47_ = self->priv->preview_scale;
+#line 295 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->view_width = (gint) (_tmp46_ * _tmp47_);
+#line 296 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp48_ = self->priv->crop_height;
+#line 296 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp49_ = self->priv->preview_scale;
+#line 296 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->view_height = (gint) (_tmp48_ * _tmp49_);
+#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp50_ = self->priv->view_width;
+#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp51_ = self->priv->view_height;
+#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp52_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, _tmp50_, _tmp51_);
+#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_surface_destroy0 (self->priv->rotate_surf);
+#line 297 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->rotate_surf = _tmp52_;
+#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp53_ = self->priv->rotate_surf;
+#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp54_ = cairo_create (_tmp53_);
+#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (self->priv->rotate_ctx);
+#line 298 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->rotate_ctx = _tmp54_;
+#line 265 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (ctx);
+#line 265 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (low_res_tmp);
+#line 1241 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_adjust_for_rotation (EditingToolsStraightenTool* self) {
+ gdouble width = 0.0;
+ gdouble height = 0.0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ GdkPoint _tmp12_ = {0};
+ gint radius_x = 0;
+ gdouble _tmp13_ = 0.0;
+ gint radius_y = 0;
+ gdouble _tmp14_ = 0.0;
+ GdkPoint _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ GdkPoint _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ Dimensions _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+#line 302 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->crop_width;
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = self->priv->crop_height;
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = self->priv->photo_angle;
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ compute_arb_rotated_size ((gdouble) _tmp0_, (gdouble) _tmp1_, _tmp2_, &_tmp3_, &_tmp4_);
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ width = _tmp3_;
+#line 304 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ height = _tmp4_;
+#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = self->priv->image_dims;
+#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp5_.width;
+#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = self->priv->image_dims;
+#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = _tmp7_.height;
+#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = MIN (_tmp6_ / width, _tmp8_ / height);
+#line 307 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->rotate_scale = _tmp9_;
+#line 308 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = self->priv->rotate_scale;
+#line 308 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = MIN (_tmp10_, 1.0);
+#line 308 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->rotate_scale = _tmp11_;
+#line 311 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = self->priv->crop_center;
+#line 311 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->rotated_center = _tmp12_;
+#line 312 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = self->priv->rotate_scale;
+#line 312 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ radius_x = (gint) ((_tmp13_ * width) / 2);
+#line 313 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = self->priv->rotate_scale;
+#line 313 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ radius_y = (gint) ((_tmp14_ * height) / 2);
+#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = self->priv->rotated_center;
+#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = _tmp15_.x;
+#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = self->priv->image_dims;
+#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = _tmp17_.width;
+#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = CLAMP (_tmp16_, radius_x, _tmp18_ - radius_x);
+#line 314 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->rotated_center.x = _tmp19_;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = self->priv->rotated_center;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = _tmp20_.y;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = self->priv->image_dims;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = _tmp22_.height;
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp24_ = CLAMP (_tmp21_, radius_y, _tmp23_ - radius_y);
+#line 315 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->rotated_center.y = _tmp24_;
+#line 1343 "StraightenTool.c"
+}
+
+
+/**
+ * @brief Spawn the tool window, set up the scratch surfaces and prepare the straightening
+ * tool for use. If a valid pixbuf of the incoming Photo can't be loaded for any
+ * reason, the tool will use a 1x1 temporary image instead to avoid crashing.
+ *
+ * @param canvas The PhotoCanvas the tool's output should be painted to.
+ */
+static gpointer _editing_tools_photo_canvas_ref0 (gpointer self) {
+#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return self ? editing_tools_photo_canvas_ref (self) : NULL;
+#line 1357 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_real_activate (EditingToolsEditingTool* base, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsStraightenTool * self;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp1_ = NULL;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+ EditingToolsPhotoCanvas* _tmp3_ = NULL;
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ Dimensions _tmp7_ = {0};
+ Box crop_region = {0};
+ EditingToolsPhotoCanvas* _tmp8_ = NULL;
+ Photo* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ Box _tmp11_ = {0};
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ gdouble incoming_angle = 0.0;
+ EditingToolsPhotoCanvas* _tmp18_ = NULL;
+ Photo* _tmp19_ = NULL;
+ Photo* _tmp20_ = NULL;
+ gdouble _tmp21_ = 0.0;
+ GdkPoint _tmp22_ = {0};
+ Dimensions _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ Dimensions _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ gdouble _tmp27_ = 0.0;
+ GdkPoint _tmp28_ = {0};
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ EditingToolsPhotoCanvas* _tmp31_ = NULL;
+ GdkWindow* _tmp32_ = NULL;
+ GdkWindow* _tmp33_ = NULL;
+ GdkCursor* _tmp34_ = NULL;
+ GdkCursor* _tmp35_ = NULL;
+ EditingToolsPhotoCanvas* _tmp36_ = NULL;
+ GtkWindow* _tmp37_ = NULL;
+ GtkWindow* _tmp38_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp39_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp40_ = NULL;
+ GtkScale* _tmp41_ = NULL;
+ gdouble _tmp42_ = 0.0;
+ gdouble _tmp43_ = 0.0;
+ gchar* tmp = NULL;
+ gdouble _tmp44_ = 0.0;
+ gchar* _tmp45_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp46_ = NULL;
+ GtkLabel* _tmp47_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp48_ = NULL;
+#line 325 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 325 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 326 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = canvas;
+#line 326 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->activate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool), _tmp0_);
+#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = canvas;
+#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = _editing_tools_photo_canvas_ref0 (_tmp1_);
+#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _editing_tools_photo_canvas_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas);
+#line 327 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas = _tmp2_;
+#line 328 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 328 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_bind_canvas_handlers (self, _tmp3_);
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = canvas;
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = editing_tools_photo_canvas_get_photo (_tmp4_);
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp5_;
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ media_source_get_dimensions (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_MEDIA_SOURCE, MediaSource), PHOTO_EXCEPTION_STRAIGHTEN | PHOTO_EXCEPTION_CROP, &_tmp7_);
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->image_dims = _tmp7_;
+#line 330 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp6_);
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = canvas;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = editing_tools_photo_canvas_get_photo (_tmp8_);
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = _tmp9_;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = photo_get_crop (_tmp10_, &_tmp11_, PHOTO_EXCEPTION_NONE);
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ crop_region = _tmp11_;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = !_tmp12_;
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp10_);
+#line 334 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp13_) {
+#line 1459 "StraightenTool.c"
+ Dimensions _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ Dimensions _tmp16_ = {0};
+ gint _tmp17_ = 0;
+#line 335 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ crop_region.left = 0;
+#line 336 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = self->priv->image_dims;
+#line 336 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = _tmp14_.width;
+#line 336 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ crop_region.right = _tmp15_;
+#line 338 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ crop_region.top = 0;
+#line 339 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = self->priv->image_dims;
+#line 339 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = _tmp16_.height;
+#line 339 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ crop_region.bottom = _tmp17_;
+#line 1480 "StraightenTool.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ incoming_angle = 0.0;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = canvas;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = editing_tools_photo_canvas_get_photo (_tmp18_);
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = _tmp19_;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ photo_get_straighten (_tmp20_, &_tmp21_);
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ incoming_angle = _tmp21_;
+#line 345 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp20_);
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ box_get_center (&crop_region, &_tmp22_);
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = self->priv->image_dims;
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp24_ = _tmp23_.width;
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp25_ = self->priv->image_dims;
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp26_ = _tmp25_.height;
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp27_ = incoming_angle;
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ derotate_point_arb (&_tmp22_, _tmp24_, _tmp26_, _tmp27_, &_tmp28_);
+#line 348 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->crop_center = _tmp28_;
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp29_ = box_get_width (&crop_region);
+#line 350 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->crop_width = _tmp29_;
+#line 351 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp30_ = box_get_height (&crop_region);
+#line 351 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->crop_height = _tmp30_;
+#line 353 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_adjust_for_rotation (self);
+#line 355 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_prepare_image (self);
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp31_ = canvas;
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp32_ = editing_tools_photo_canvas_get_drawing_window (_tmp31_);
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp33_ = _tmp32_;
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp34_ = gdk_cursor_new (GDK_CROSSHAIR);
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp35_ = _tmp34_;
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gdk_window_set_cursor (_tmp33_, _tmp35_);
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp35_);
+#line 358 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp33_);
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp36_ = canvas;
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp37_ = editing_tools_photo_canvas_get_container (_tmp36_);
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp38_ = _tmp37_;
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp39_ = editing_tools_straighten_tool_straighten_tool_window_new (_tmp38_);
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp39_);
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->priv->window);
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->window = _tmp39_;
+#line 360 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp38_);
+#line 361 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_bind_window_handlers (self);
+#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp40_ = self->priv->window;
+#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp41_ = _tmp40_->angle_slider;
+#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp42_ = incoming_angle;
+#line 364 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, gtk_range_get_type (), GtkRange), _tmp42_);
+#line 365 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp43_ = incoming_angle;
+#line 365 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->photo_angle = _tmp43_;
+#line 367 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp44_ = incoming_angle;
+#line 367 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp45_ = g_strdup_printf ("%2.1f°", _tmp44_);
+#line 367 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ tmp = _tmp45_;
+#line 368 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp46_ = self->priv->window;
+#line 368 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp47_ = _tmp46_->angle_label;
+#line 368 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_label_set_text (_tmp47_, tmp);
+#line 370 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_high_qual_repaint (self);
+#line 371 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp48_ = self->priv->window;
+#line 371 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_widget_get_type (), GtkWidget));
+#line 325 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (tmp);
+#line 1590 "StraightenTool.c"
+}
+
+
+/**
+ * Tears down the tool window and frees resources.
+ */
+static void editing_tools_straighten_tool_real_deactivate (EditingToolsEditingTool* base) {
+ EditingToolsStraightenTool * self;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL;
+ EditingToolsPhotoCanvas* _tmp2_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 378 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->window;
+#line 378 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp0_ != NULL) {
+#line 1607 "StraightenTool.c"
+ EditingToolsStraightenToolStraightenToolWindow* _tmp1_ = NULL;
+#line 380 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_unbind_window_handlers (self);
+#line 382 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = self->priv->window;
+#line 382 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 383 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->priv->window);
+#line 383 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->window = NULL;
+#line 1619 "StraightenTool.c"
+ }
+#line 386 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 386 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp2_ != NULL) {
+#line 1625 "StraightenTool.c"
+ EditingToolsPhotoCanvas* _tmp3_ = NULL;
+ EditingToolsPhotoCanvas* _tmp4_ = NULL;
+ GdkWindow* _tmp5_ = NULL;
+ GdkWindow* _tmp6_ = NULL;
+#line 387 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 387 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_unbind_canvas_handlers (self, _tmp3_);
+#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = editing_tools_photo_canvas_get_drawing_window (_tmp4_);
+#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp5_;
+#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gdk_window_set_cursor (_tmp6_, NULL);
+#line 388 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1644 "StraightenTool.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->deactivate (G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 1648 "StraightenTool.c"
+}
+
+
+static void _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf (EditingToolsPhotoCanvas* _sender, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position, gpointer self) {
+#line 395 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_on_resized_pixbuf ((EditingToolsStraightenTool*) self, old_dim, scaled, scaled_position);
+#line 1655 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_bind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 394 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 395 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = canvas;
+#line 395 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_connect (_tmp0_, "resized-scaled-pixbuf", (GCallback) _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 1669 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_unbind_canvas_handlers (EditingToolsStraightenTool* self, EditingToolsPhotoCanvas* canvas) {
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 398 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 398 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_PHOTO_CANVAS (canvas));
+#line 399 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = canvas;
+#line 399 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_parse_name ("resized-scaled-pixbuf", EDITING_TOOLS_TYPE_PHOTO_CANVAS, &_tmp1_, NULL, FALSE);
+#line 399 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_straighten_tool_on_resized_pixbuf_editing_tools_photo_canvas_resized_scaled_pixbuf, self);
+#line 1686 "StraightenTool.c"
+}
+
+
+static gboolean _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
+ gboolean result;
+ result = editing_tools_editing_tool_on_keypress ((EditingToolsEditingTool*) self, event);
+#line 403 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 1695 "StraightenTool.c"
+}
+
+
+static void _editing_tools_straighten_tool_on_ok_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_on_ok_clicked ((EditingToolsStraightenTool*) self);
+#line 1702 "StraightenTool.c"
+}
+
+
+static void _editing_tools_editing_tool_notify_cancel_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_editing_tool_notify_cancel ((EditingToolsEditingTool*) self);
+#line 1709 "StraightenTool.c"
+}
+
+
+static void _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed (GtkRange* _sender, gpointer self) {
+#line 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_on_angle_changed ((EditingToolsStraightenTool*) self);
+#line 1716 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_bind_window_handlers (EditingToolsStraightenTool* self) {
+ EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp1_ = NULL;
+ GtkButton* _tmp2_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp5_ = NULL;
+ GtkScale* _tmp6_ = NULL;
+#line 402 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 403 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->window;
+#line 403 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), "key-press-event", (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = self->priv->window;
+#line 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = _tmp1_->ok_button;
+#line 404 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_connect (_tmp2_, "clicked", (GCallback) _editing_tools_straighten_tool_on_ok_clicked_gtk_button_clicked, self);
+#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->priv->window;
+#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = _tmp3_->cancel_button;
+#line 405 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_connect (_tmp4_, "clicked", (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = self->priv->window;
+#line 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp5_->angle_slider;
+#line 406 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_range_get_type (), GtkRange), "value-changed", (GCallback) _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed, self);
+#line 1752 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_unbind_window_handlers (EditingToolsStraightenTool* self) {
+ EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp8_ = NULL;
+ GtkScale* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+#line 409 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 410 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->window;
+#line 410 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_parse_name ("key-press-event", gtk_widget_get_type (), &_tmp1_, NULL, FALSE);
+#line 410 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _editing_tools_editing_tool_on_keypress_gtk_widget_key_press_event, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = self->priv->window;
+#line 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = _tmp2_->ok_button;
+#line 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp4_, NULL, FALSE);
+#line 411 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _editing_tools_straighten_tool_on_ok_clicked_gtk_button_clicked, self);
+#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = self->priv->window;
+#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp5_->cancel_button;
+#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp7_, NULL, FALSE);
+#line 412 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _editing_tools_editing_tool_notify_cancel_gtk_button_clicked, G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool));
+#line 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = self->priv->window;
+#line 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = _tmp8_->angle_slider;
+#line 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_parse_name ("value-changed", gtk_range_get_type (), &_tmp10_, NULL, FALSE);
+#line 413 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_range_get_type (), GtkRange), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _editing_tools_straighten_tool_on_angle_changed_gtk_range_value_changed, self);
+#line 1800 "StraightenTool.c"
+}
+
+
+static void _editing_tools_straighten_tool_on_slider_stopped_delayed_one_shot_callback (gpointer self) {
+#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_on_slider_stopped_delayed ((EditingToolsStraightenTool*) self);
+#line 1807 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_on_angle_changed (EditingToolsStraightenTool* self) {
+ EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+ gchar* tmp = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp3_ = NULL;
+ GtkScale* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gchar* _tmp6_ = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp7_ = NULL;
+ GtkLabel* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ OneShotScheduler* _tmp10_ = NULL;
+ OneShotScheduler* _tmp12_ = NULL;
+ EditingToolsPhotoCanvas* _tmp13_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->window;
+#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = _tmp0_->angle_slider;
+#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange));
+#line 417 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->photo_angle = _tmp2_;
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->priv->window;
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = _tmp3_->angle_slider;
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = gtk_range_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_range_get_type (), GtkRange));
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = g_strdup_printf ("%2.1f°", _tmp5_);
+#line 418 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ tmp = _tmp6_;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = self->priv->window;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = _tmp7_->angle_label;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = tmp;
+#line 419 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_label_set_text (_tmp8_, _tmp9_);
+#line 421 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = self->priv->slider_sched;
+#line 421 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp10_ == NULL) {
+#line 1858 "StraightenTool.c"
+ OneShotScheduler* _tmp11_ = NULL;
+#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = one_shot_scheduler_new ("straighten", _editing_tools_straighten_tool_on_slider_stopped_delayed_one_shot_callback, self);
+#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _one_shot_scheduler_unref0 (self->priv->slider_sched);
+#line 422 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->slider_sched = _tmp11_;
+#line 1866 "StraightenTool.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = self->priv->slider_sched;
+#line 423 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ one_shot_scheduler_after_timeout (_tmp12_, (guint) EDITING_TOOLS_STRAIGHTEN_TOOL_REPAINT_ON_STOP_DELAY_MSEC, TRUE);
+#line 425 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->use_high_qual = FALSE;
+#line 427 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_adjust_for_rotation (self);
+#line 428 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_update_rotated_surface (self);
+#line 429 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 429 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_repaint (_tmp13_);
+#line 416 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (tmp);
+#line 1884 "StraightenTool.c"
+}
+
+
+/**
+ * @brief Called by the EditingHostPage when a resize event occurs.
+ */
+static void editing_tools_straighten_tool_on_resized_pixbuf (EditingToolsStraightenTool* self, Dimensions* old_dim, GdkPixbuf* scaled, GdkRectangle* scaled_position) {
+#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (old_dim != NULL);
+#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (scaled));
+#line 435 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (scaled_position != NULL);
+#line 436 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_prepare_image (self);
+#line 1902 "StraightenTool.c"
+}
+
+
+/**
+ * Returns a reference to the current StraightenTool instance's tool window;
+ * the PhotoPage uses this to control the tool window's positioning, etc.
+ */
+static gpointer _g_object_ref0 (gpointer self) {
+#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1913 "StraightenTool.c"
+}
+
+
+static EditingToolsEditingToolWindow* editing_tools_straighten_tool_real_get_tool_window (EditingToolsEditingTool* base) {
+ EditingToolsStraightenTool * self;
+ EditingToolsEditingToolWindow* result = NULL;
+ EditingToolsStraightenToolStraightenToolWindow* _tmp0_ = NULL;
+ EditingToolsEditingToolWindow* _tmp1_ = NULL;
+#line 443 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->window;
+#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, EditingToolsEditingToolWindow));
+#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = _tmp1_;
+#line 444 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 1932 "StraightenTool.c"
+}
+
+
+/**
+ * Draw the rotated photo and grid.
+ */
+static void editing_tools_straighten_tool_update_rotated_surface (EditingToolsStraightenTool* self) {
+ cairo_surface_t* _tmp0_ = NULL;
+ cairo_t* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gdouble _tmp4_ = 0.0;
+ cairo_t* _tmp5_ = NULL;
+ cairo_t* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 450 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->photo_surf;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = self->priv->rotate_ctx;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = self->priv->view_width;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->priv->view_height;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = self->priv->photo_angle;
+#line 451 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_draw_rotated_source (self, _tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_);
+#line 452 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = self->priv->rotate_ctx;
+#line 452 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_line_width (_tmp5_, 1.0);
+#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = self->priv->rotate_ctx;
+#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = self->priv->view_width;
+#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = self->priv->view_height;
+#line 453 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_draw_superimposed_grid (self, _tmp6_, _tmp7_, _tmp8_);
+#line 1975 "StraightenTool.c"
+}
+
+
+/**
+ * Render a smaller, rotated version of the image, with a grid superimposed over it.
+ *
+ * @param ctx The rendering context of a 'scratch' Cairo surface. The tool makes its own
+ * surfaces and contexts so it can have things set up exactly like it wants them, so
+ * it's not used.
+ */
+static void editing_tools_straighten_tool_real_paint (EditingToolsEditingTool* base, cairo_t* ctx) {
+ EditingToolsStraightenTool * self;
+ gint w = 0;
+ EditingToolsPhotoCanvas* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+ GdkWindow* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint h = 0;
+ EditingToolsPhotoCanvas* _tmp5_ = NULL;
+ GdkWindow* _tmp6_ = NULL;
+ GdkWindow* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ EditingToolsPhotoCanvas* _tmp10_ = NULL;
+ cairo_t* _tmp11_ = NULL;
+ cairo_t* _tmp12_ = NULL;
+ EditingToolsPhotoCanvas* _tmp13_ = NULL;
+ cairo_t* _tmp14_ = NULL;
+ cairo_t* _tmp15_ = NULL;
+ EditingToolsPhotoCanvas* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+ cairo_t* _tmp18_ = NULL;
+ EditingToolsPhotoCanvas* _tmp19_ = NULL;
+ cairo_t* _tmp20_ = NULL;
+ cairo_t* _tmp21_ = NULL;
+ EditingToolsPhotoCanvas* _tmp22_ = NULL;
+ cairo_t* _tmp23_ = NULL;
+ cairo_t* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ EditingToolsPhotoCanvas* _tmp27_ = NULL;
+ cairo_t* _tmp28_ = NULL;
+ cairo_t* _tmp29_ = NULL;
+ cairo_surface_t* _tmp30_ = NULL;
+ EditingToolsPhotoCanvas* _tmp31_ = NULL;
+ cairo_t* _tmp32_ = NULL;
+ cairo_t* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ EditingToolsPhotoCanvas* _tmp36_ = NULL;
+ cairo_t* _tmp37_ = NULL;
+ cairo_t* _tmp38_ = NULL;
+ EditingToolsPhotoCanvas* _tmp39_ = NULL;
+ cairo_t* _tmp40_ = NULL;
+ cairo_t* _tmp41_ = NULL;
+ EditingToolsPhotoCanvas* _tmp42_ = NULL;
+ cairo_t* _tmp43_ = NULL;
+ cairo_t* _tmp44_ = NULL;
+ EditingToolsStraightenToolStraightenGuide* _tmp45_ = NULL;
+ EditingToolsPhotoCanvas* _tmp46_ = NULL;
+ cairo_t* _tmp47_ = NULL;
+ cairo_t* _tmp48_ = NULL;
+#line 463 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 463 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (ctx != NULL);
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = editing_tools_photo_canvas_get_drawing_window (_tmp0_);
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = _tmp1_;
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = gdk_window_get_width (_tmp2_);
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = _tmp3_;
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp2_);
+#line 464 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ w = _tmp4_;
+#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = editing_tools_photo_canvas_get_drawing_window (_tmp5_);
+#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = _tmp6_;
+#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = gdk_window_get_height (_tmp7_);
+#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = _tmp8_;
+#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (_tmp7_);
+#line 465 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ h = _tmp9_;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = editing_tools_photo_canvas_get_default_ctx (_tmp10_);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = _tmp11_;
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_identity_matrix (_tmp12_);
+#line 468 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp12_);
+#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = editing_tools_photo_canvas_get_default_ctx (_tmp13_);
+#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = _tmp14_;
+#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_rgba (_tmp15_, 0.0, 0.0, 0.0, 1.0);
+#line 469 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp15_);
+#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = editing_tools_photo_canvas_get_default_ctx (_tmp16_);
+#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = _tmp17_;
+#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_rectangle (_tmp18_, (gdouble) 0, (gdouble) 0, (gdouble) w, (gdouble) h);
+#line 470 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp18_);
+#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = editing_tools_photo_canvas_get_default_ctx (_tmp19_);
+#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = _tmp20_;
+#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_fill (_tmp21_);
+#line 471 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp21_);
+#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = editing_tools_photo_canvas_get_default_ctx (_tmp22_);
+#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp24_ = _tmp23_;
+#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp25_ = self->priv->view_width;
+#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp26_ = self->priv->view_height;
+#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_translate (_tmp24_, (w - _tmp25_) / 2.0, (h - _tmp26_) / 2.0);
+#line 474 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp24_);
+#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp28_ = editing_tools_photo_canvas_get_default_ctx (_tmp27_);
+#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp29_ = _tmp28_;
+#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp30_ = self->priv->rotate_surf;
+#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_surface (_tmp29_, _tmp30_, (gdouble) 0, (gdouble) 0);
+#line 475 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp29_);
+#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp31_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp32_ = editing_tools_photo_canvas_get_default_ctx (_tmp31_);
+#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp33_ = _tmp32_;
+#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp34_ = self->priv->view_width;
+#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp35_ = self->priv->view_height;
+#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_rectangle (_tmp33_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp34_, (gdouble) _tmp35_);
+#line 476 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp33_);
+#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp36_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp37_ = editing_tools_photo_canvas_get_default_ctx (_tmp36_);
+#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp38_ = _tmp37_;
+#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_fill (_tmp38_);
+#line 477 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp38_);
+#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp39_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp40_ = editing_tools_photo_canvas_get_default_ctx (_tmp39_);
+#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp41_ = _tmp40_;
+#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_paint (_tmp41_);
+#line 478 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp41_);
+#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp42_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp43_ = editing_tools_photo_canvas_get_default_ctx (_tmp42_);
+#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp44_ = _tmp43_;
+#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_identity_matrix (_tmp44_);
+#line 482 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp44_);
+#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp45_ = self->priv->guide;
+#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp46_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp47_ = editing_tools_photo_canvas_get_default_ctx (_tmp46_);
+#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp48_ = _tmp47_;
+#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_draw (_tmp45_, _tmp48_);
+#line 484 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (_tmp48_);
+#line 2193 "StraightenTool.c"
+}
+
+
+/**
+ * Copy a rotated version of the source image onto the destination
+ * context.
+ *
+ * @param src_surf A Cairo surface containing the source image.
+ * @param dest_ctx The rendering context of the destination image.
+ * @param src_width The width of the image data in src_surf in pixels.
+ * @param src_height The height of the image data in src_surf in pixels.
+ * @param angle The angle the source image should be rotated by, in degrees.
+ */
+static void editing_tools_straighten_tool_draw_rotated_source (EditingToolsStraightenTool* self, cairo_surface_t* src_surf, cairo_t* dest_ctx, gint src_width, gint src_height, gdouble angle) {
+ gdouble angle_internal = 0.0;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ cairo_t* _tmp2_ = NULL;
+ cairo_t* _tmp3_ = NULL;
+ cairo_t* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ cairo_t* _tmp7_ = NULL;
+ cairo_t* _tmp8_ = NULL;
+ cairo_t* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ cairo_t* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ cairo_t* _tmp15_ = NULL;
+ gdouble _tmp16_ = 0.0;
+ cairo_t* _tmp17_ = NULL;
+ GdkPoint _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ gdouble _tmp20_ = 0.0;
+ GdkPoint _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gdouble _tmp23_ = 0.0;
+ cairo_t* _tmp24_ = NULL;
+ cairo_surface_t* _tmp25_ = NULL;
+ cairo_filter_t _tmp26_ = 0;
+ gboolean _tmp27_ = FALSE;
+ cairo_t* _tmp28_ = NULL;
+ cairo_pattern_t* _tmp29_ = NULL;
+ cairo_t* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ cairo_t* _tmp33_ = NULL;
+ cairo_t* _tmp34_ = NULL;
+#line 497 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 497 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (src_surf != NULL);
+#line 497 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (dest_ctx != NULL);
+#line 499 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = angle;
+#line 499 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = degrees_to_radians (_tmp0_);
+#line 499 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ angle_internal = _tmp1_;
+#line 503 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = dest_ctx;
+#line 503 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_identity_matrix (_tmp2_);
+#line 504 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = dest_ctx;
+#line 504 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_rgba (_tmp3_, 0.0, 0.0, 0.0, 1.0);
+#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = dest_ctx;
+#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = self->priv->view_width;
+#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = self->priv->view_height;
+#line 505 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_rectangle (_tmp4_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp5_, (gdouble) _tmp6_);
+#line 506 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = dest_ctx;
+#line 506 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_fill (_tmp7_);
+#line 511 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = dest_ctx;
+#line 511 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_identity_matrix (_tmp8_);
+#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = dest_ctx;
+#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = self->priv->view_width;
+#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = self->priv->view_height;
+#line 513 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_translate (_tmp9_, (gdouble) (_tmp10_ / 2), (gdouble) (_tmp11_ / 2));
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = dest_ctx;
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = self->priv->rotate_scale;
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = self->priv->rotate_scale;
+#line 514 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_scale (_tmp12_, 1.0 / _tmp13_, 1.0 / _tmp14_);
+#line 515 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = dest_ctx;
+#line 515 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = angle_internal;
+#line 515 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_rotate (_tmp15_, _tmp16_);
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = dest_ctx;
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = self->priv->rotated_center;
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = _tmp18_.x;
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = self->priv->preview_scale;
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = self->priv->rotated_center;
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = _tmp21_.y;
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = self->priv->preview_scale;
+#line 516 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_translate (_tmp17_, (-_tmp19_) * _tmp20_, (-_tmp22_) * _tmp23_);
+#line 518 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp24_ = dest_ctx;
+#line 518 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp25_ = src_surf;
+#line 518 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_surface (_tmp24_, _tmp25_, (gdouble) 0, (gdouble) 0);
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp27_ = self->priv->use_high_qual;
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp27_) {
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp26_ = CAIRO_FILTER_BEST;
+#line 2330 "StraightenTool.c"
+ } else {
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp26_ = CAIRO_FILTER_NEAREST;
+#line 2334 "StraightenTool.c"
+ }
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp28_ = dest_ctx;
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp29_ = cairo_get_source (_tmp28_);
+#line 519 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_pattern_set_filter (_tmp29_, _tmp26_);
+#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp30_ = dest_ctx;
+#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp31_ = src_width;
+#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp32_ = src_height;
+#line 520 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_rectangle (_tmp30_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp31_, (gdouble) _tmp32_);
+#line 521 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp33_ = dest_ctx;
+#line 521 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_fill (_tmp33_);
+#line 522 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp34_ = dest_ctx;
+#line 522 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_paint (_tmp34_);
+#line 2358 "StraightenTool.c"
+}
+
+
+/**
+ * Superimpose a faint grid over the supplied image.
+ *
+ * @param width The total width the grid should be drawn to.
+ * @param height The total height the grid should be drawn to.
+ * @param dest_ctx The rendering context of the destination image.
+ */
+static void editing_tools_straighten_tool_draw_superimposed_grid (EditingToolsStraightenTool* self, cairo_t* dest_ctx, gint width, gint height) {
+ gint half_width = 0;
+ gint _tmp0_ = 0;
+ gint quarter_width = 0;
+ gint _tmp1_ = 0;
+ gint half_height = 0;
+ gint _tmp2_ = 0;
+ gint quarter_height = 0;
+ gint _tmp3_ = 0;
+ cairo_t* _tmp4_ = NULL;
+ cairo_t* _tmp5_ = NULL;
+ EditingToolsPhotoCanvas* _tmp6_ = NULL;
+ cairo_t* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ EditingToolsPhotoCanvas* _tmp9_ = NULL;
+ cairo_t* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ EditingToolsPhotoCanvas* _tmp12_ = NULL;
+ cairo_t* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ EditingToolsPhotoCanvas* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ EditingToolsPhotoCanvas* _tmp19_ = NULL;
+ cairo_t* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ EditingToolsPhotoCanvas* _tmp22_ = NULL;
+ cairo_t* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ cairo_t* _tmp26_ = NULL;
+ EditingToolsPhotoCanvas* _tmp27_ = NULL;
+ cairo_t* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ EditingToolsPhotoCanvas* _tmp30_ = NULL;
+ cairo_t* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ EditingToolsPhotoCanvas* _tmp33_ = NULL;
+ cairo_t* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+ EditingToolsPhotoCanvas* _tmp36_ = NULL;
+ cairo_t* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+#line 532 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_IS_STRAIGHTEN_TOOL (self));
+#line 532 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (dest_ctx != NULL);
+#line 533 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = width;
+#line 533 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ half_width = _tmp0_ / 2;
+#line 534 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = width;
+#line 534 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ quarter_width = _tmp1_ / 4;
+#line 536 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = height;
+#line 536 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ half_height = _tmp2_ / 2;
+#line 537 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = height;
+#line 537 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ quarter_height = _tmp3_ / 4;
+#line 539 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = dest_ctx;
+#line 539 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_identity_matrix (_tmp4_);
+#line 540 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = dest_ctx;
+#line 540 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_rgba (_tmp5_, 1.0, 1.0, 1.0, 1.0);
+#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = dest_ctx;
+#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = width;
+#line 542 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_horizontal_line (_tmp6_, _tmp7_, 0, 0, _tmp8_, FALSE);
+#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = dest_ctx;
+#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = width;
+#line 543 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_horizontal_line (_tmp9_, _tmp10_, 0, half_height, _tmp11_, FALSE);
+#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = dest_ctx;
+#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = self->priv->view_height;
+#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = width;
+#line 544 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_horizontal_line (_tmp12_, _tmp13_, 0, _tmp14_ - 1, _tmp15_, FALSE);
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = dest_ctx;
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = height;
+#line 546 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_vertical_line (_tmp16_, _tmp17_, 0, 0, _tmp18_ + 1, FALSE);
+#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = dest_ctx;
+#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = height;
+#line 547 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_vertical_line (_tmp19_, _tmp20_, half_width, 0, _tmp21_ + 1, FALSE);
+#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = dest_ctx;
+#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp24_ = width;
+#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp25_ = height;
+#line 548 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_vertical_line (_tmp22_, _tmp23_, _tmp24_ - 1, 0, _tmp25_ + 1, FALSE);
+#line 550 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp26_ = dest_ctx;
+#line 550 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_rgba (_tmp26_, 1.0, 1.0, 1.0, 0.33);
+#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp27_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp28_ = dest_ctx;
+#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp29_ = width;
+#line 552 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_horizontal_line (_tmp27_, _tmp28_, 0, quarter_height, _tmp29_, FALSE);
+#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp30_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp31_ = dest_ctx;
+#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp32_ = width;
+#line 553 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_horizontal_line (_tmp30_, _tmp31_, 0, half_height + quarter_height, _tmp32_, FALSE);
+#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp33_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp34_ = dest_ctx;
+#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp35_ = height;
+#line 554 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_vertical_line (_tmp33_, _tmp34_, quarter_width, 0, _tmp35_, FALSE);
+#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp36_ = G_TYPE_CHECK_INSTANCE_CAST (self, EDITING_TOOLS_TYPE_EDITING_TOOL, EditingToolsEditingTool)->canvas;
+#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp37_ = dest_ctx;
+#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp38_ = height;
+#line 555 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_photo_canvas_draw_vertical_line (_tmp36_, _tmp37_, half_width + quarter_width, 0, _tmp38_, FALSE);
+#line 2529 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_guide_reset (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y, gdouble angle) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_[2] = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_[2] = {0};
+ gdouble _tmp6_ = 0.0;
+#line 31 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self));
+#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = x;
+#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = x;
+#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_[0] = _tmp0_;
+#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_[1] = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ memcpy (self->priv->x, _tmp2_, 2 * sizeof (gint));
+#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = y;
+#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = y;
+#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_[0] = _tmp3_;
+#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_[1] = _tmp4_;
+#line 33 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ memcpy (self->priv->y, _tmp5_, 2 * sizeof (gint));
+#line 34 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->is_active = TRUE;
+#line 35 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = angle;
+#line 35 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->angle0 = _tmp6_;
+#line 2569 "StraightenTool.c"
+}
+
+
+static gboolean editing_tools_straighten_tool_straighten_guide_update (EditingToolsStraightenToolStraightenGuide* self, gint x, gint y) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 38 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self), FALSE);
+#line 39 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->is_active;
+#line 39 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp0_) {
+#line 2582 "StraightenTool.c"
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 40 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = x;
+#line 40 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->x[1] = _tmp1_;
+#line 40 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = self->priv->x[1];
+#line 41 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = y;
+#line 41 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->y[1] = _tmp3_;
+#line 41 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = self->priv->y[1];
+#line 42 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = TRUE;
+#line 42 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 2603 "StraightenTool.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = FALSE;
+#line 45 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 2609 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_guide_clear (EditingToolsStraightenToolStraightenGuide* self) {
+#line 48 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self));
+#line 49 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->is_active = FALSE;
+#line 2618 "StraightenTool.c"
+}
+
+
+static gdouble* _double_dup (gdouble* self) {
+ gdouble* dup;
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ dup = g_new0 (gdouble, 1);
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ memcpy (dup, self, sizeof (gdouble));
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return dup;
+#line 2630 "StraightenTool.c"
+}
+
+
+static gpointer __double_dup0 (gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return self ? _double_dup (self) : NULL;
+#line 2637 "StraightenTool.c"
+}
+
+
+static gdouble* editing_tools_straighten_tool_straighten_guide_get_angle (EditingToolsStraightenToolStraightenGuide* self) {
+ gdouble* result = NULL;
+ gdouble dx = 0.0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gdouble dy = 0.0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+#line 52 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self), NULL);
+#line 53 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->x[1];
+#line 53 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = self->priv->x[0];
+#line 53 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ dx = (gdouble) (_tmp0_ - _tmp1_);
+#line 54 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = self->priv->y[1];
+#line 54 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->priv->y[0];
+#line 54 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ dy = (gdouble) (_tmp2_ - _tmp3_);
+#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = dy;
+#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = dy;
+#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = dx;
+#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = dx;
+#line 57 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (((_tmp4_ * _tmp5_) + (_tmp6_ * _tmp7_)) < ((gdouble) 40)) {
+#line 58 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = NULL;
+#line 58 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 2685 "StraightenTool.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = dy;
+#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = fabs (_tmp8_);
+#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = dx;
+#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = fabs (_tmp10_);
+#line 61 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp9_ > _tmp11_) {
+#line 2697 "StraightenTool.c"
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ gdouble _tmp15_ = 0.0;
+ gdouble _tmp16_ = 0.0;
+ gdouble* _tmp17_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = self->priv->angle0;
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = dx;
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = dy;
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = atan (_tmp13_ / _tmp14_);
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = _tmp12_ + ((_tmp15_ / G_PI) * 180);
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = __double_dup0 (&_tmp16_);
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = _tmp17_;
+#line 62 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 2720 "StraightenTool.c"
+ } else {
+ gdouble _tmp18_ = 0.0;
+ gdouble _tmp19_ = 0.0;
+ gdouble _tmp20_ = 0.0;
+ gdouble _tmp21_ = 0.0;
+ gdouble _tmp22_ = 0.0;
+ gdouble* _tmp23_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = self->priv->angle0;
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = dy;
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = dx;
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = atan (_tmp19_ / _tmp20_);
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = _tmp18_ - ((_tmp21_ / G_PI) * 180);
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = __double_dup0 (&_tmp22_);
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ result = _tmp23_;
+#line 64 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return result;
+#line 2744 "StraightenTool.c"
+ }
+}
+
+
+static void editing_tools_straighten_tool_straighten_guide_draw (EditingToolsStraightenToolStraightenGuide* self, cairo_t* ctx) {
+ gboolean _tmp0_ = FALSE;
+ gdouble* _tmp1_ = NULL;
+ gdouble* _tmp2_ = NULL;
+ gdouble angle = 0.0;
+ gdouble* _tmp5_ = NULL;
+ gdouble* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gdouble alpha = 0.0;
+ gboolean _tmp9_ = FALSE;
+ gdouble _tmp10_ = 0.0;
+ cairo_t* _tmp12_ = NULL;
+ gdouble _tmp13_ = 0.0;
+ cairo_t* _tmp14_ = NULL;
+ gdouble _tmp15_ = 0.0;
+ cairo_t* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ cairo_t* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ cairo_t* _tmp22_ = NULL;
+ cairo_t* _tmp23_ = NULL;
+ gdouble _tmp24_ = 0.0;
+ cairo_t* _tmp25_ = NULL;
+ gdouble _tmp26_ = 0.0;
+ cairo_t* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ cairo_t* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ cairo_t* _tmp33_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_GUIDE (self));
+#line 67 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (ctx != NULL);
+#line 68 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->priv->is_active;
+#line 68 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (!_tmp0_) {
+#line 69 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return;
+#line 2793 "StraightenTool.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = editing_tools_straighten_tool_straighten_guide_get_angle (self);
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = _tmp2_;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp1_ == NULL) {
+#line 2801 "StraightenTool.c"
+ gdouble _tmp3_ = 0.0;
+ gdouble* _tmp4_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = 0.0;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = __double_dup0 (&_tmp3_);
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (_tmp1_);
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = _tmp4_;
+#line 2812 "StraightenTool.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = _tmp1_;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = _tmp5_;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = *_tmp6_;
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (_tmp6_);
+#line 71 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ angle = _tmp7_;
+#line 72 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = angle;
+#line 72 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp8_ == 0.0) {
+#line 73 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (_tmp1_);
+#line 73 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return;
+#line 2834 "StraightenTool.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ alpha = 1.0;
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = angle;
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp10_ < EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_ANGLE) {
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = TRUE;
+#line 2844 "StraightenTool.c"
+ } else {
+ gdouble _tmp11_ = 0.0;
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = angle;
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = _tmp11_ > EDITING_TOOLS_STRAIGHTEN_TOOL_MAX_ANGLE;
+#line 2851 "StraightenTool.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (_tmp9_) {
+#line 77 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ alpha = 0.35;
+#line 2857 "StraightenTool.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = ctx;
+#line 81 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = alpha;
+#line 81 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_rgba (_tmp12_, 0.0, 0.0, 0.0, _tmp13_);
+#line 82 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = ctx;
+#line 82 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH[0];
+#line 82 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_dash (_tmp14_, EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH, G_N_ELEMENTS (EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH), _tmp15_ / 2);
+#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = ctx;
+#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = self->priv->x[0];
+#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = self->priv->y[0];
+#line 83 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_move_to (_tmp16_, _tmp17_ + 0.5, _tmp18_ + 0.5);
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = ctx;
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = self->priv->x[1];
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp21_ = self->priv->y[1];
+#line 84 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_line_to (_tmp19_, _tmp20_ + 0.5, _tmp21_ + 0.5);
+#line 85 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp22_ = ctx;
+#line 85 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_stroke (_tmp22_);
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp23_ = ctx;
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp24_ = EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH[0];
+#line 86 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_dash (_tmp23_, EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH, G_N_ELEMENTS (EDITING_TOOLS_STRAIGHTEN_TOOL_GUIDE_DASH), (-_tmp24_) / 2);
+#line 87 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp25_ = ctx;
+#line 87 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp26_ = alpha;
+#line 87 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_set_source_rgba (_tmp25_, 1.0, 1.0, 1.0, _tmp26_);
+#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp27_ = ctx;
+#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp28_ = self->priv->x[0];
+#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp29_ = self->priv->y[0];
+#line 88 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_move_to (_tmp27_, _tmp28_ + 0.5, _tmp29_ + 0.5);
+#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp30_ = ctx;
+#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp31_ = self->priv->x[1];
+#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp32_ = self->priv->y[1];
+#line 89 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_line_to (_tmp30_, _tmp31_ + 0.5, _tmp32_ + 0.5);
+#line 90 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp33_ = ctx;
+#line 90 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ cairo_stroke (_tmp33_);
+#line 67 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_free0 (_tmp1_);
+#line 2925 "StraightenTool.c"
+}
+
+
+static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_construct (GType object_type) {
+ EditingToolsStraightenToolStraightenGuide* self = NULL;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = (EditingToolsStraightenToolStraightenGuide*) g_type_create_instance (object_type);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return self;
+#line 2935 "StraightenTool.c"
+}
+
+
+static EditingToolsStraightenToolStraightenGuide* editing_tools_straighten_tool_straighten_guide_new (void) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return editing_tools_straighten_tool_straighten_guide_construct (EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE);
+#line 2942 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_value_straighten_guide_init (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ value->data[0].v_pointer = NULL;
+#line 2949 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_value_straighten_guide_free_value (GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_unref (value->data[0].v_pointer);
+#line 2958 "StraightenTool.c"
+ }
+}
+
+
+static void editing_tools_straighten_tool_value_straighten_guide_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (src_value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ dest_value->data[0].v_pointer = editing_tools_straighten_tool_straighten_guide_ref (src_value->data[0].v_pointer);
+#line 2968 "StraightenTool.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2972 "StraightenTool.c"
+ }
+}
+
+
+static gpointer editing_tools_straighten_tool_value_straighten_guide_peek_pointer (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return value->data[0].v_pointer;
+#line 2980 "StraightenTool.c"
+}
+
+
+static gchar* editing_tools_straighten_tool_value_straighten_guide_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (collect_values[0].v_pointer) {
+#line 2987 "StraightenTool.c"
+ EditingToolsStraightenToolStraightenGuide* object;
+ object = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2994 "StraightenTool.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2998 "StraightenTool.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ value->data[0].v_pointer = editing_tools_straighten_tool_straighten_guide_ref (object);
+#line 3002 "StraightenTool.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ value->data[0].v_pointer = NULL;
+#line 3006 "StraightenTool.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return NULL;
+#line 3010 "StraightenTool.c"
+}
+
+
+static gchar* editing_tools_straighten_tool_value_straighten_guide_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ EditingToolsStraightenToolStraightenGuide** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (!object_p) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3021 "StraightenTool.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (!value->data[0].v_pointer) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ *object_p = NULL;
+#line 3027 "StraightenTool.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3031 "StraightenTool.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ *object_p = editing_tools_straighten_tool_straighten_guide_ref (value->data[0].v_pointer);
+#line 3035 "StraightenTool.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return NULL;
+#line 3039 "StraightenTool.c"
+}
+
+
+static GParamSpec* editing_tools_straighten_tool_param_spec_straighten_guide (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ EditingToolsStraightenToolParamSpecStraightenGuide* spec;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE), NULL);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return G_PARAM_SPEC (spec);
+#line 3053 "StraightenTool.c"
+}
+
+
+static gpointer editing_tools_straighten_tool_value_get_straighten_guide (const GValue* value) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE), NULL);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return value->data[0].v_pointer;
+#line 3062 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_value_set_straighten_guide (GValue* value, gpointer v_object) {
+ EditingToolsStraightenToolStraightenGuide* old;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE));
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE));
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ value->data[0].v_pointer = v_object;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_ref (value->data[0].v_pointer);
+#line 3082 "StraightenTool.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ value->data[0].v_pointer = NULL;
+#line 3086 "StraightenTool.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_unref (old);
+#line 3092 "StraightenTool.c"
+ }
+}
+
+
+static void editing_tools_straighten_tool_value_take_straighten_guide (GValue* value, gpointer v_object) {
+ EditingToolsStraightenToolStraightenGuide* old;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE));
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ old = value->data[0].v_pointer;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (v_object) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE));
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ value->data[0].v_pointer = v_object;
+#line 3111 "StraightenTool.c"
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ value->data[0].v_pointer = NULL;
+#line 3115 "StraightenTool.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (old) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_unref (old);
+#line 3121 "StraightenTool.c"
+ }
+}
+
+
+static void editing_tools_straighten_tool_straighten_guide_class_init (EditingToolsStraightenToolStraightenGuideClass * klass) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_guide_parent_class = g_type_class_peek_parent (klass);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsStraightenToolStraightenGuideClass *) klass)->finalize = editing_tools_straighten_tool_straighten_guide_finalize;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsStraightenToolStraightenGuidePrivate));
+#line 3133 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_guide_instance_init (EditingToolsStraightenToolStraightenGuide * self) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv = EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_PRIVATE (self);
+#line 26 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->is_active = FALSE;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->ref_count = 1;
+#line 3144 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_guide_finalize (EditingToolsStraightenToolStraightenGuide* obj) {
+ EditingToolsStraightenToolStraightenGuide * self;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_GUIDE, EditingToolsStraightenToolStraightenGuide);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_handlers_destroy (self);
+#line 3154 "StraightenTool.c"
+}
+
+
+static GType editing_tools_straighten_tool_straighten_guide_get_type (void) {
+ static volatile gsize editing_tools_straighten_tool_straighten_guide_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_straighten_tool_straighten_guide_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { editing_tools_straighten_tool_value_straighten_guide_init, editing_tools_straighten_tool_value_straighten_guide_free_value, editing_tools_straighten_tool_value_straighten_guide_copy_value, editing_tools_straighten_tool_value_straighten_guide_peek_pointer, "p", editing_tools_straighten_tool_value_straighten_guide_collect_value, "p", editing_tools_straighten_tool_value_straighten_guide_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsStraightenToolStraightenGuideClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_straighten_tool_straighten_guide_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsStraightenToolStraightenGuide), 0, (GInstanceInitFunc) editing_tools_straighten_tool_straighten_guide_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType editing_tools_straighten_tool_straighten_guide_type_id;
+ editing_tools_straighten_tool_straighten_guide_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EditingToolsStraightenToolStraightenGuide", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&editing_tools_straighten_tool_straighten_guide_type_id__volatile, editing_tools_straighten_tool_straighten_guide_type_id);
+ }
+ return editing_tools_straighten_tool_straighten_guide_type_id__volatile;
+}
+
+
+static gpointer editing_tools_straighten_tool_straighten_guide_ref (gpointer instance) {
+ EditingToolsStraightenToolStraightenGuide* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return instance;
+#line 3179 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_guide_unref (gpointer instance) {
+ EditingToolsStraightenToolStraightenGuide* self;
+ self = instance;
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_GUIDE_GET_CLASS (self)->finalize (self);
+#line 25 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3192 "StraightenTool.c"
+ }
+}
+
+
+/**
+ * Prepare straighten tool's window for use and initialize all its controls.
+ *
+ * @param container The application's main window.
+ */
+static void _editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 140 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked ((EditingToolsStraightenToolStraightenToolWindow*) self);
+#line 3205 "StraightenTool.c"
+}
+
+
+static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_construct (GType object_type, GtkWindow* container) {
+ EditingToolsStraightenToolStraightenToolWindow * self = NULL;
+ GtkWindow* _tmp0_ = NULL;
+ GtkScale* _tmp1_ = NULL;
+ GtkScale* _tmp2_ = NULL;
+ GtkScale* _tmp3_ = NULL;
+ GtkScale* _tmp4_ = NULL;
+ GtkLabel* _tmp5_ = NULL;
+ GtkLabel* _tmp6_ = NULL;
+ GtkLabel* _tmp7_ = NULL;
+ GtkBox* slider_layout = NULL;
+ GtkBox* _tmp8_ = NULL;
+ GtkScale* _tmp9_ = NULL;
+ GtkBox* button_layout = NULL;
+ GtkBox* _tmp10_ = NULL;
+ GtkButton* _tmp11_ = NULL;
+ GtkButton* _tmp12_ = NULL;
+ GtkButton* _tmp13_ = NULL;
+ GtkButton* _tmp14_ = NULL;
+ GtkButton* _tmp15_ = NULL;
+ GtkButton* _tmp16_ = NULL;
+ GtkBox* main_layout = NULL;
+ GtkBox* _tmp17_ = NULL;
+ GtkLabel* _tmp18_ = NULL;
+ GtkLabel* _tmp19_ = NULL;
+ GtkButton* _tmp20_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_val_if_fail (GTK_IS_WINDOW (container), NULL);
+#line 110 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = container;
+#line 110 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = (EditingToolsStraightenToolStraightenToolWindow*) editing_tools_editing_tool_window_construct (object_type, _tmp0_);
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = self->angle_slider;
+#line 112 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_range_set_min_slider_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_range_get_type (), GtkRange), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_SLIDER_SIZE);
+#line 113 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = self->angle_slider;
+#line 113 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_SLIDER_SIZE, -1);
+#line 114 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = self->angle_slider;
+#line 114 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_range_get_type (), GtkRange), 0.0);
+#line 115 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = self->angle_slider;
+#line 115 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_scale_set_draw_value (_tmp4_, FALSE);
+#line 117 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = self->description_label;
+#line 117 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_misc_set_padding (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_misc_get_type (), GtkMisc), EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING, 0);
+#line 118 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = self->angle_label;
+#line 118 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_misc_set_padding (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_misc_get_type (), GtkMisc), 0, 0);
+#line 119 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = self->angle_label;
+#line 119 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_LABEL_SIZE, -1);
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING);
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp8_);
+#line 121 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ slider_layout = _tmp8_;
+#line 122 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp9_ = self->angle_slider;
+#line 122 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (slider_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 124 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp10_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_STRAIGHTEN_TOOL_STRAIGHTEN_TOOL_WINDOW_CONTROL_SPACING);
+#line 124 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp10_);
+#line 124 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ button_layout = _tmp10_;
+#line 125 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp11_ = self->cancel_button;
+#line 125 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE, -1);
+#line 126 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp12_ = self->reset_button;
+#line 126 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE, -1);
+#line 127 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp13_ = self->ok_button;
+#line 127 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_BUTTON_SIZE, -1);
+#line 128 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp14_ = self->cancel_button;
+#line 128 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (button_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 129 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp15_ = self->reset_button;
+#line 129 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (button_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 130 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp16_ = self->ok_button;
+#line 130 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (button_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 132 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp17_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+#line 132 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp17_);
+#line 132 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ main_layout = _tmp17_;
+#line 133 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp18_ = self->description_label;
+#line 133 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 134 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (slider_layout, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 135 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp19_ = self->angle_label;
+#line 135 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 136 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_box_pack_start (main_layout, G_TYPE_CHECK_INSTANCE_CAST (button_layout, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 138 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (main_layout, gtk_widget_get_type (), GtkWidget));
+#line 140 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp20_ = self->reset_button;
+#line 140 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_signal_connect_object (_tmp20_, "clicked", (GCallback) _editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked_gtk_button_clicked, self, 0);
+#line 142 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_window_set_position (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), GTK_WIN_POS_CENTER_ON_PARENT);
+#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (main_layout);
+#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (button_layout);
+#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (slider_layout);
+#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return self;
+#line 3343 "StraightenTool.c"
+}
+
+
+static EditingToolsStraightenToolStraightenToolWindow* editing_tools_straighten_tool_straighten_tool_window_new (GtkWindow* container) {
+#line 109 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ return editing_tools_straighten_tool_straighten_tool_window_construct (EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, container);
+#line 3350 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_tool_window_on_reset_clicked (EditingToolsStraightenToolStraightenToolWindow* self) {
+ GtkScale* _tmp0_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_return_if_fail (EDITING_TOOLS_STRAIGHTEN_TOOL_IS_STRAIGHTEN_TOOL_WINDOW (self));
+#line 146 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = self->angle_slider;
+#line 146 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ gtk_range_set_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_range_get_type (), GtkRange), 0.0);
+#line 3362 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_tool_window_class_init (EditingToolsStraightenToolStraightenToolWindowClass * klass) {
+#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_straighten_tool_window_parent_class = g_type_class_peek_parent (klass);
+#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ G_OBJECT_CLASS (klass)->finalize = editing_tools_straighten_tool_straighten_tool_window_finalize;
+#line 3371 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_tool_window_instance_init (EditingToolsStraightenToolStraightenToolWindow * self) {
+ GtkScale* _tmp0_ = NULL;
+ GtkLabel* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GtkLabel* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkButton* _tmp5_ = NULL;
+ GtkButton* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GtkButton* _tmp8_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = (GtkScale*) gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, EDITING_TOOLS_STRAIGHTEN_TOOL_MIN_ANGLE, EDITING_TOOLS_STRAIGHTEN_TOOL_MAX_ANGLE, EDITING_TOOLS_STRAIGHTEN_TOOL_INCREMENT);
+#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp0_);
+#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->angle_slider = _tmp0_;
+#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp1_ = (GtkLabel*) gtk_label_new ("");
+#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->angle_label = _tmp1_;
+#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp2_ = _ ("Angle:");
+#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp3_ = (GtkLabel*) gtk_label_new (_tmp2_);
+#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp3_);
+#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->description_label = _tmp3_;
+#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp4_ = _ ("_Straighten");
+#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp5_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp4_);
+#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp5_);
+#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->ok_button = _tmp5_;
+#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp6_ = (GtkButton*) gtk_button_new_with_mnemonic (RESOURCES_CANCEL_LABEL);
+#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp6_);
+#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->cancel_button = _tmp6_;
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp7_ = _ ("_Reset");
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp8_ = (GtkButton*) gtk_button_new_with_mnemonic (_tmp7_);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_object_ref_sink (_tmp8_);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->reset_button = _tmp8_;
+#line 3427 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_straighten_tool_window_finalize (GObject* obj) {
+ EditingToolsStraightenToolStraightenToolWindow * self;
+#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_STRAIGHTEN_TOOL_TYPE_STRAIGHTEN_TOOL_WINDOW, EditingToolsStraightenToolStraightenToolWindow);
+#line 97 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->angle_slider);
+#line 98 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->angle_label);
+#line 99 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->description_label);
+#line 100 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->ok_button);
+#line 101 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->cancel_button);
+#line 102 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->reset_button);
+#line 94 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ G_OBJECT_CLASS (editing_tools_straighten_tool_straighten_tool_window_parent_class)->finalize (obj);
+#line 3449 "StraightenTool.c"
+}
+
+
+static GType editing_tools_straighten_tool_straighten_tool_window_get_type (void) {
+ static volatile gsize editing_tools_straighten_tool_straighten_tool_window_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_straighten_tool_straighten_tool_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsStraightenToolStraightenToolWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_straighten_tool_straighten_tool_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsStraightenToolStraightenToolWindow), 0, (GInstanceInitFunc) editing_tools_straighten_tool_straighten_tool_window_instance_init, NULL };
+ GType editing_tools_straighten_tool_straighten_tool_window_type_id;
+ editing_tools_straighten_tool_straighten_tool_window_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL_WINDOW, "EditingToolsStraightenToolStraightenToolWindow", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_straighten_tool_straighten_tool_window_type_id__volatile, editing_tools_straighten_tool_straighten_tool_window_type_id);
+ }
+ return editing_tools_straighten_tool_straighten_tool_window_type_id__volatile;
+}
+
+
+static void editing_tools_straighten_tool_class_init (EditingToolsStraightenToolClass * klass) {
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ editing_tools_straighten_tool_parent_class = g_type_class_peek_parent (klass);
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->finalize = editing_tools_straighten_tool_finalize;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ g_type_class_add_private (klass, sizeof (EditingToolsStraightenToolPrivate));
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_click = editing_tools_straighten_tool_real_on_left_click;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_left_released = editing_tools_straighten_tool_real_on_left_released;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_motion = editing_tools_straighten_tool_real_on_motion;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->on_keypress = editing_tools_straighten_tool_real_on_keypress;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->activate = editing_tools_straighten_tool_real_activate;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->deactivate = editing_tools_straighten_tool_real_deactivate;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->get_tool_window = editing_tools_straighten_tool_real_get_tool_window;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ ((EditingToolsEditingToolClass *) klass)->paint = editing_tools_straighten_tool_real_paint;
+#line 3488 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_instance_init (EditingToolsStraightenTool * self) {
+ EditingToolsStraightenToolStraightenGuide* _tmp0_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv = EDITING_TOOLS_STRAIGHTEN_TOOL_GET_PRIVATE (self);
+#line 163 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->photo_angle = 0.0;
+#line 167 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->use_high_qual = TRUE;
+#line 168 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->slider_sched = NULL;
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _tmp0_ = editing_tools_straighten_tool_straighten_guide_new ();
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self->priv->guide = _tmp0_;
+#line 3506 "StraightenTool.c"
+}
+
+
+static void editing_tools_straighten_tool_finalize (EditingToolsEditingTool* obj) {
+ EditingToolsStraightenTool * self;
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EDITING_TOOLS_TYPE_STRAIGHTEN_TOOL, EditingToolsStraightenTool);
+#line 150 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _g_object_unref0 (self->priv->window);
+#line 153 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_surface_destroy0 (self->priv->photo_surf);
+#line 157 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_surface_destroy0 (self->priv->rotate_surf);
+#line 158 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _cairo_destroy0 (self->priv->rotate_ctx);
+#line 168 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _one_shot_scheduler_unref0 (self->priv->slider_sched);
+#line 174 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ _editing_tools_straighten_tool_straighten_guide_unref0 (self->priv->guide);
+#line 14 "/home/jens/Source/shotwell/src/editing_tools/StraightenTool.vala"
+ EDITING_TOOLS_EDITING_TOOL_CLASS (editing_tools_straighten_tool_parent_class)->finalize (obj);
+#line 3528 "StraightenTool.c"
+}
+
+
+/**
+ * An editing tool that allows one to introduce or remove a Dutch angle from
+ * a photograph.
+ */
+GType editing_tools_straighten_tool_get_type (void) {
+ static volatile gsize editing_tools_straighten_tool_type_id__volatile = 0;
+ if (g_once_init_enter (&editing_tools_straighten_tool_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EditingToolsStraightenToolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) editing_tools_straighten_tool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EditingToolsStraightenTool), 0, (GInstanceInitFunc) editing_tools_straighten_tool_instance_init, NULL };
+ GType editing_tools_straighten_tool_type_id;
+ editing_tools_straighten_tool_type_id = g_type_register_static (EDITING_TOOLS_TYPE_EDITING_TOOL, "EditingToolsStraightenTool", &g_define_type_info, 0);
+ g_once_init_leave (&editing_tools_straighten_tool_type_id__volatile, editing_tools_straighten_tool_type_id);
+ }
+ return editing_tools_straighten_tool_type_id__volatile;
+}
+
+
+
diff --git a/src/editing_tools/mk/editing_tools.mk b/src/editing_tools/mk/editing_tools.mk
deleted file mode 100644
index 424c525..0000000
--- a/src/editing_tools/mk/editing_tools.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := EditingTools
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := editing_tools
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- StraightenTool.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/events/Branch.c b/src/events/Branch.c
new file mode 100644
index 0000000..193a8ee
--- /dev/null
+++ b/src/events/Branch.c
@@ -0,0 +1,4446 @@
+/* Branch.c generated by valac 0.32.1, the Vala compiler
+ * generated from Branch.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gtk/gtk.h>
+#include <time.h>
+#include <gdk/gdk.h>
+
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define EVENTS_TYPE_BRANCH (events_branch_get_type ())
+#define EVENTS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_BRANCH, EventsBranch))
+#define EVENTS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_BRANCH, EventsBranchClass))
+#define EVENTS_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_BRANCH))
+#define EVENTS_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_BRANCH))
+#define EVENTS_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_BRANCH, EventsBranchClass))
+
+typedef struct _EventsBranch EventsBranch;
+typedef struct _EventsBranchClass EventsBranchClass;
+typedef struct _EventsBranchPrivate EventsBranchPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+
+#define EVENTS_TYPE_EVENT_ENTRY (events_event_entry_get_type ())
+#define EVENTS_EVENT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry))
+#define EVENTS_EVENT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_EVENT_ENTRY, EventsEventEntryClass))
+#define EVENTS_IS_EVENT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_EVENT_ENTRY))
+#define EVENTS_IS_EVENT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_EVENT_ENTRY))
+#define EVENTS_EVENT_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_EVENT_ENTRY, EventsEventEntryClass))
+
+typedef struct _EventsEventEntry EventsEventEntry;
+typedef struct _EventsEventEntryClass EventsEventEntryClass;
+
+#define EVENTS_TYPE_DIRECTORY_ENTRY (events_directory_entry_get_type ())
+#define EVENTS_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntry))
+#define EVENTS_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntryClass))
+#define EVENTS_IS_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_DIRECTORY_ENTRY))
+#define EVENTS_IS_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_DIRECTORY_ENTRY))
+#define EVENTS_DIRECTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntryClass))
+
+typedef struct _EventsDirectoryEntry EventsDirectoryEntry;
+typedef struct _EventsDirectoryEntryClass EventsDirectoryEntryClass;
+
+#define EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY (events_undated_directory_entry_get_type ())
+#define EVENTS_UNDATED_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY, EventsUndatedDirectoryEntry))
+#define EVENTS_UNDATED_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY, EventsUndatedDirectoryEntryClass))
+#define EVENTS_IS_UNDATED_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY))
+#define EVENTS_IS_UNDATED_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY))
+#define EVENTS_UNDATED_DIRECTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY, EventsUndatedDirectoryEntryClass))
+
+typedef struct _EventsUndatedDirectoryEntry EventsUndatedDirectoryEntry;
+typedef struct _EventsUndatedDirectoryEntryClass EventsUndatedDirectoryEntryClass;
+
+#define EVENTS_TYPE_NO_EVENT_ENTRY (events_no_event_entry_get_type ())
+#define EVENTS_NO_EVENT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_NO_EVENT_ENTRY, EventsNoEventEntry))
+#define EVENTS_NO_EVENT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_NO_EVENT_ENTRY, EventsNoEventEntryClass))
+#define EVENTS_IS_NO_EVENT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_NO_EVENT_ENTRY))
+#define EVENTS_IS_NO_EVENT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_NO_EVENT_ENTRY))
+#define EVENTS_NO_EVENT_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_NO_EVENT_ENTRY, EventsNoEventEntryClass))
+
+typedef struct _EventsNoEventEntry EventsNoEventEntry;
+typedef struct _EventsNoEventEntryClass EventsNoEventEntryClass;
+
+#define EVENTS_TYPE_MASTER_DIRECTORY_ENTRY (events_master_directory_entry_get_type ())
+#define EVENTS_MASTER_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntry))
+#define EVENTS_MASTER_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntryClass))
+#define EVENTS_IS_MASTER_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY))
+#define EVENTS_IS_MASTER_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY))
+#define EVENTS_MASTER_DIRECTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntryClass))
+
+typedef struct _EventsMasterDirectoryEntry EventsMasterDirectoryEntry;
+typedef struct _EventsMasterDirectoryEntryClass EventsMasterDirectoryEntryClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+
+#define EVENTS_TYPE_YEAR_DIRECTORY_ENTRY (events_year_directory_entry_get_type ())
+#define EVENTS_YEAR_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntry))
+#define EVENTS_YEAR_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntryClass))
+#define EVENTS_IS_YEAR_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_YEAR_DIRECTORY_ENTRY))
+#define EVENTS_IS_YEAR_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_YEAR_DIRECTORY_ENTRY))
+#define EVENTS_YEAR_DIRECTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntryClass))
+
+typedef struct _EventsYearDirectoryEntry EventsYearDirectoryEntry;
+typedef struct _EventsYearDirectoryEntryClass EventsYearDirectoryEntryClass;
+
+#define EVENTS_TYPE_MONTH_DIRECTORY_ENTRY (events_month_directory_entry_get_type ())
+#define EVENTS_MONTH_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntry))
+#define EVENTS_MONTH_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntryClass))
+#define EVENTS_IS_MONTH_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_MONTH_DIRECTORY_ENTRY))
+#define EVENTS_IS_MONTH_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_MONTH_DIRECTORY_ENTRY))
+#define EVENTS_MONTH_DIRECTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntryClass))
+
+typedef struct _EventsMonthDirectoryEntry EventsMonthDirectoryEntry;
+typedef struct _EventsMonthDirectoryEntryClass EventsMonthDirectoryEntryClass;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+typedef struct _Block7Data Block7Data;
+typedef struct _Block8Data Block8Data;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+typedef struct _EventsDirectoryEntryPrivate EventsDirectoryEntryPrivate;
+typedef struct _EventsMasterDirectoryEntryPrivate EventsMasterDirectoryEntryPrivate;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_EVENTS_DIRECTORY_PAGE (events_directory_page_get_type ())
+#define EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage))
+#define EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+#define IS_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENTS_DIRECTORY_PAGE))
+#define IS_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENTS_DIRECTORY_PAGE))
+#define EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+
+typedef struct _EventsDirectoryPage EventsDirectoryPage;
+typedef struct _EventsDirectoryPageClass EventsDirectoryPageClass;
+
+#define TYPE_MASTER_EVENTS_DIRECTORY_PAGE (master_events_directory_page_get_type ())
+#define MASTER_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MASTER_EVENTS_DIRECTORY_PAGE, MasterEventsDirectoryPage))
+#define MASTER_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MASTER_EVENTS_DIRECTORY_PAGE, MasterEventsDirectoryPageClass))
+#define IS_MASTER_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MASTER_EVENTS_DIRECTORY_PAGE))
+#define IS_MASTER_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MASTER_EVENTS_DIRECTORY_PAGE))
+#define MASTER_EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MASTER_EVENTS_DIRECTORY_PAGE, MasterEventsDirectoryPageClass))
+
+typedef struct _MasterEventsDirectoryPage MasterEventsDirectoryPage;
+typedef struct _MasterEventsDirectoryPageClass MasterEventsDirectoryPageClass;
+typedef struct _EventsYearDirectoryEntryPrivate EventsYearDirectoryEntryPrivate;
+
+#define SUB_EVENTS_DIRECTORY_PAGE_TYPE_DIRECTORY_TYPE (sub_events_directory_page_directory_type_get_type ())
+
+#define TYPE_SUB_EVENTS_DIRECTORY_PAGE (sub_events_directory_page_get_type ())
+#define SUB_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SUB_EVENTS_DIRECTORY_PAGE, SubEventsDirectoryPage))
+#define SUB_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SUB_EVENTS_DIRECTORY_PAGE, SubEventsDirectoryPageClass))
+#define IS_SUB_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SUB_EVENTS_DIRECTORY_PAGE))
+#define IS_SUB_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SUB_EVENTS_DIRECTORY_PAGE))
+#define SUB_EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SUB_EVENTS_DIRECTORY_PAGE, SubEventsDirectoryPageClass))
+
+typedef struct _SubEventsDirectoryPage SubEventsDirectoryPage;
+typedef struct _SubEventsDirectoryPageClass SubEventsDirectoryPageClass;
+typedef struct _EventsMonthDirectoryEntryPrivate EventsMonthDirectoryEntryPrivate;
+typedef struct _EventsUndatedDirectoryEntryPrivate EventsUndatedDirectoryEntryPrivate;
+
+#define SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY (sidebar_internal_drop_target_entry_get_type ())
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntry))
+#define SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY))
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntryIface))
+
+typedef struct _SidebarInternalDropTargetEntry SidebarInternalDropTargetEntry;
+typedef struct _SidebarInternalDropTargetEntryIface SidebarInternalDropTargetEntryIface;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _EventsEventEntryPrivate EventsEventEntryPrivate;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_EVENT_PAGE (event_page_get_type ())
+#define EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_PAGE, EventPage))
+#define EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_PAGE, EventPageClass))
+#define IS_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_PAGE))
+#define IS_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_PAGE))
+#define EVENT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_PAGE, EventPageClass))
+
+typedef struct _EventPage EventPage;
+typedef struct _EventPageClass EventPageClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SIMPLE_PROXYABLE_COMMAND (simple_proxyable_command_get_type ())
+#define SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand))
+#define SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+#define IS_SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define IS_SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define SIMPLE_PROXYABLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+
+typedef struct _SimpleProxyableCommand SimpleProxyableCommand;
+typedef struct _SimpleProxyableCommandClass SimpleProxyableCommandClass;
+
+#define TYPE_RENAME_EVENT_COMMAND (rename_event_command_get_type ())
+#define RENAME_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RENAME_EVENT_COMMAND, RenameEventCommand))
+#define RENAME_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RENAME_EVENT_COMMAND, RenameEventCommandClass))
+#define IS_RENAME_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RENAME_EVENT_COMMAND))
+#define IS_RENAME_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RENAME_EVENT_COMMAND))
+#define RENAME_EVENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RENAME_EVENT_COMMAND, RenameEventCommandClass))
+
+typedef struct _RenameEventCommand RenameEventCommand;
+typedef struct _RenameEventCommandClass RenameEventCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_MOVE_PHOTOS_COMMAND (move_photos_command_get_type ())
+#define MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand))
+#define MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+#define IS_MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOVE_PHOTOS_COMMAND))
+#define IS_MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOVE_PHOTOS_COMMAND))
+#define MOVE_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+
+typedef struct _MovePhotosCommand MovePhotosCommand;
+typedef struct _MovePhotosCommandClass MovePhotosCommandClass;
+
+#define TYPE_SET_EVENT_COMMAND (set_event_command_get_type ())
+#define SET_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_EVENT_COMMAND, SetEventCommand))
+#define SET_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_EVENT_COMMAND, SetEventCommandClass))
+#define IS_SET_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_EVENT_COMMAND))
+#define IS_SET_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_EVENT_COMMAND))
+#define SET_EVENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_EVENT_COMMAND, SetEventCommandClass))
+
+typedef struct _SetEventCommand SetEventCommand;
+typedef struct _SetEventCommandClass SetEventCommandClass;
+typedef struct _EventsNoEventEntryPrivate EventsNoEventEntryPrivate;
+
+#define TYPE_NO_EVENT_PAGE (no_event_page_get_type ())
+#define NO_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NO_EVENT_PAGE, NoEventPage))
+#define NO_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NO_EVENT_PAGE, NoEventPageClass))
+#define IS_NO_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NO_EVENT_PAGE))
+#define IS_NO_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NO_EVENT_PAGE))
+#define NO_EVENT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NO_EVENT_PAGE, NoEventPageClass))
+
+typedef struct _NoEventPage NoEventPage;
+typedef struct _NoEventPageClass NoEventPageClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+struct _EventsBranch {
+ SidebarBranch parent_instance;
+ EventsBranchPrivate * priv;
+};
+
+struct _EventsBranchClass {
+ SidebarBranchClass parent_class;
+};
+
+struct _EventsBranchPrivate {
+ GeeHashMap* entry_map;
+ EventsUndatedDirectoryEntry* undated_entry;
+ EventsNoEventEntry* no_event_entry;
+ EventsMasterDirectoryEntry* all_events_entry;
+};
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _EventID {
+ gint64 id;
+};
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _Block7Data {
+ int _ref_count_;
+ EventsBranch* self;
+ gint event_month;
+};
+
+typedef gboolean (*Locator) (gconstpointer item, void* user_data);
+struct _Block8Data {
+ int _ref_count_;
+ EventsBranch* self;
+ gint event_year;
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _EventsDirectoryEntry {
+ SidebarSimplePageEntry parent_instance;
+ EventsDirectoryEntryPrivate * priv;
+};
+
+struct _EventsDirectoryEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _EventsMasterDirectoryEntry {
+ EventsDirectoryEntry parent_instance;
+ EventsMasterDirectoryEntryPrivate * priv;
+};
+
+struct _EventsMasterDirectoryEntryClass {
+ EventsDirectoryEntryClass parent_class;
+};
+
+struct _EventsYearDirectoryEntry {
+ EventsDirectoryEntry parent_instance;
+ EventsYearDirectoryEntryPrivate * priv;
+};
+
+struct _EventsYearDirectoryEntryClass {
+ EventsDirectoryEntryClass parent_class;
+};
+
+struct _EventsYearDirectoryEntryPrivate {
+ gchar* name;
+ struct tm tm;
+};
+
+typedef enum {
+ SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_YEAR,
+ SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_MONTH,
+ SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_UNDATED
+} SubEventsDirectoryPageDirectoryType;
+
+struct _EventsMonthDirectoryEntry {
+ EventsDirectoryEntry parent_instance;
+ EventsMonthDirectoryEntryPrivate * priv;
+};
+
+struct _EventsMonthDirectoryEntryClass {
+ EventsDirectoryEntryClass parent_class;
+};
+
+struct _EventsMonthDirectoryEntryPrivate {
+ gchar* name;
+ struct tm tm;
+};
+
+struct _EventsUndatedDirectoryEntry {
+ EventsDirectoryEntry parent_instance;
+ EventsUndatedDirectoryEntryPrivate * priv;
+};
+
+struct _EventsUndatedDirectoryEntryClass {
+ EventsDirectoryEntryClass parent_class;
+};
+
+struct _SidebarInternalDropTargetEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*internal_drop_received) (SidebarInternalDropTargetEntry* self, GeeList* sources);
+ gboolean (*internal_drop_received_arbitrary) (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+};
+
+struct _EventsEventEntry {
+ SidebarSimplePageEntry parent_instance;
+ EventsEventEntryPrivate * priv;
+};
+
+struct _EventsEventEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _EventsEventEntryPrivate {
+ Event* event;
+};
+
+struct _EventsNoEventEntry {
+ SidebarSimplePageEntry parent_instance;
+ EventsNoEventEntryPrivate * priv;
+};
+
+struct _EventsNoEventEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+
+static gpointer events_branch_parent_class = NULL;
+extern EventSourceCollection* event_global;
+extern gchar* events_branch_icon;
+gchar* events_branch_icon = NULL;
+extern gchar* events_branch_events_icon;
+gchar* events_branch_events_icon = NULL;
+extern gchar* events_branch_single_event_icon;
+gchar* events_branch_single_event_icon = NULL;
+extern gchar* events_branch_no_event_icon;
+gchar* events_branch_no_event_icon = NULL;
+static gboolean events_branch_sort_ascending;
+static gboolean events_branch_sort_ascending = FALSE;
+static gpointer events_directory_entry_parent_class = NULL;
+static SidebarExpandableEntryIface* events_directory_entry_sidebar_expandable_entry_parent_iface = NULL;
+static gpointer events_master_directory_entry_parent_class = NULL;
+static gpointer events_year_directory_entry_parent_class = NULL;
+static gpointer events_month_directory_entry_parent_class = NULL;
+static gpointer events_undated_directory_entry_parent_class = NULL;
+static gpointer events_event_entry_parent_class = NULL;
+static SidebarRenameableEntryIface* events_event_entry_sidebar_renameable_entry_parent_iface = NULL;
+static SidebarInternalDropTargetEntryIface* events_event_entry_sidebar_internal_drop_target_entry_parent_iface = NULL;
+static gpointer events_no_event_entry_parent_class = NULL;
+
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType events_branch_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType events_event_entry_get_type (void) G_GNUC_CONST;
+GType events_directory_entry_get_type (void) G_GNUC_CONST;
+GType events_undated_directory_entry_get_type (void) G_GNUC_CONST;
+GType events_no_event_entry_get_type (void) G_GNUC_CONST;
+GType events_master_directory_entry_get_type (void) G_GNUC_CONST;
+#define EVENTS_BRANCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EVENTS_TYPE_BRANCH, EventsBranchPrivate))
+enum {
+ EVENTS_BRANCH_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+static void events_branch_on_events_added_removed (EventsBranch* self, GeeIterable* added, GeeIterable* removed);
+static void _events_branch_on_events_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void events_branch_on_events_altered (EventsBranch* self, GeeMap* altered);
+static void _events_branch_on_events_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void events_branch_on_no_event_collection_altered (EventsBranch* self);
+static void _events_branch_on_no_event_collection_altered_event_source_collection_no_event_collection_altered (EventSourceCollection* _sender, gpointer self);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+static void events_branch_on_config_changed (EventsBranch* self);
+static void _events_branch_on_config_changed_configuration_facade_events_sort_ascending_changed (ConfigurationFacade* _sender, gpointer self);
+#define RESOURCES_ICON_FOLDER "folder"
+#define RESOURCES_ICON_EVENTS "multiple-events"
+#define RESOURCES_ICON_ONE_EVENT "one-event"
+#define RESOURCES_ICON_NO_EVENT "no-event"
+EventsUndatedDirectoryEntry* events_undated_directory_entry_new (void);
+EventsUndatedDirectoryEntry* events_undated_directory_entry_construct (GType object_type);
+EventsNoEventEntry* events_no_event_entry_new (void);
+EventsNoEventEntry* events_no_event_entry_construct (GType object_type);
+EventsMasterDirectoryEntry* events_master_directory_entry_new (void);
+EventsMasterDirectoryEntry* events_master_directory_entry_construct (GType object_type);
+EventsBranch* events_branch_new (void);
+EventsBranch* events_branch_construct (GType object_type);
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized);
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized);
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+static gint events_branch_event_year_comparator (SidebarEntry* a, SidebarEntry* b);
+static gint _events_branch_event_year_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+GeeCollection* data_collection_get_all (DataCollection* self);
+static void events_branch_add_event (EventsBranch* self, Event* event);
+static void events_branch_show_no_events (EventsBranch* self, gboolean show);
+GeeCollection* event_source_collection_get_no_event_objects (EventSourceCollection* self);
+void events_branch_init (void);
+gboolean configuration_facade_get_events_sort_ascending (ConfigurationFacade* self);
+void events_branch_terminate (void);
+gboolean events_branch_is_user_renameable (EventsBranch* self);
+EventsMasterDirectoryEntry* events_branch_get_master_entry (EventsBranch* self);
+GType events_year_directory_entry_get_type (void) G_GNUC_CONST;
+gint events_year_directory_entry_get_year (EventsYearDirectoryEntry* self);
+static gint events_branch_event_month_comparator (SidebarEntry* a, SidebarEntry* b);
+GType events_month_directory_entry_get_type (void) G_GNUC_CONST;
+gint events_month_directory_entry_get_month (EventsMonthDirectoryEntry* self);
+static gint events_branch_event_comparator (SidebarEntry* a, SidebarEntry* b);
+Event* events_event_entry_get_event (EventsEventEntry* self);
+time_t event_source_get_start_time (EventSource* self);
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+void event_get_event_id (Event* self, EventID* result);
+static gint events_branch_undated_event_comparator (SidebarEntry* a, SidebarEntry* b);
+gchar* data_object_get_name (DataObject* self);
+gint64 data_source_get_instance_id (DataSource* self);
+EventsEventEntry* events_branch_get_entry_for_event (EventsBranch* self, Event* event);
+void sidebar_branch_reorder_all (SidebarBranch* self);
+static void events_branch_remove_event (EventsBranch* self, Event* event);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+static void events_branch_move_event (EventsBranch* self, Event* event);
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+static void events_branch_add_undated_event (EventsBranch* self, Event* event);
+static SidebarEntry* events_branch_find_event_month (EventsBranch* self, Event* event, struct tm* event_tm, SidebarEntry** found_year);
+static void events_branch_graft_event (EventsBranch* self, SidebarEntry* parent, Event* event, GCompareFunc comparator);
+static gint _events_branch_event_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+#define SUB_EVENTS_DIRECTORY_PAGE_YEAR_FORMAT _ ("%Y")
+EventsYearDirectoryEntry* events_year_directory_entry_new (const gchar* name, struct tm* tm);
+EventsYearDirectoryEntry* events_year_directory_entry_construct (GType object_type, const gchar* name, struct tm* tm);
+static gint _events_branch_event_month_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+#define SUB_EVENTS_DIRECTORY_PAGE_MONTH_FORMAT _ ("%B")
+EventsMonthDirectoryEntry* events_month_directory_entry_new (const gchar* name, struct tm* tm);
+EventsMonthDirectoryEntry* events_month_directory_entry_construct (GType object_type, const gchar* name, struct tm* tm);
+static void events_branch_move_to_undated_event (EventsBranch* self, Event* event);
+static void events_branch_reparent_event (EventsBranch* self, Event* event, SidebarEntry* new_parent);
+SidebarEntry* sidebar_branch_get_parent (SidebarBranch* self, SidebarEntry* entry);
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry);
+gint sidebar_branch_get_child_count (SidebarBranch* self, SidebarEntry* parent);
+static Block7Data* block7_data_ref (Block7Data* _data7_);
+static void block7_data_unref (void * _userdata_);
+static SidebarEntry* events_branch_find_event_year (EventsBranch* self, Event* event, struct tm* event_tm);
+SidebarEntry* sidebar_branch_find_first_child (SidebarBranch* self, SidebarEntry* parent, Locator locator, void* locator_target);
+static gboolean __lambda17_ (Block7Data* _data7_, SidebarEntry* entry);
+static gboolean ___lambda17__locator (gconstpointer item, gpointer self);
+static Block8Data* block8_data_ref (Block8Data* _data8_);
+static void block8_data_unref (void * _userdata_);
+static gboolean __lambda16_ (Block8Data* _data8_, SidebarEntry* entry);
+static gboolean ___lambda16__locator (gconstpointer item, gpointer self);
+gboolean sidebar_branch_has_entry (SidebarBranch* self, SidebarEntry* entry);
+static gint _events_branch_undated_event_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+EventsEventEntry* events_event_entry_new (Event* event);
+EventsEventEntry* events_event_entry_construct (GType object_type, Event* event);
+void sidebar_branch_reparent (SidebarBranch* self, SidebarEntry* new_parent, SidebarEntry* entry);
+static void events_branch_finalize (GObject* obj);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+enum {
+ EVENTS_DIRECTORY_ENTRY_DUMMY_PROPERTY
+};
+EventsDirectoryEntry* events_directory_entry_construct (GType object_type);
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+static gchar* events_directory_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static gboolean events_directory_entry_real_expand_on_select (SidebarExpandableEntry* base);
+enum {
+ EVENTS_MASTER_DIRECTORY_ENTRY_DUMMY_PROPERTY
+};
+static gchar* events_master_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define MASTER_EVENTS_DIRECTORY_PAGE_NAME _ ("All Events")
+static gchar* events_master_directory_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static Page* events_master_directory_entry_real_create_page (SidebarSimplePageEntry* base);
+MasterEventsDirectoryPage* master_events_directory_page_new (void);
+MasterEventsDirectoryPage* master_events_directory_page_construct (GType object_type);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType events_directory_page_get_type (void) G_GNUC_CONST;
+GType master_events_directory_page_get_type (void) G_GNUC_CONST;
+#define EVENTS_YEAR_DIRECTORY_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntryPrivate))
+enum {
+ EVENTS_YEAR_DIRECTORY_ENTRY_DUMMY_PROPERTY
+};
+static gchar* events_year_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+static Page* events_year_directory_entry_real_create_page (SidebarSimplePageEntry* base);
+GType sub_events_directory_page_directory_type_get_type (void) G_GNUC_CONST;
+SubEventsDirectoryPage* sub_events_directory_page_new (SubEventsDirectoryPageDirectoryType type, struct tm* time);
+SubEventsDirectoryPage* sub_events_directory_page_construct (GType object_type, SubEventsDirectoryPageDirectoryType type, struct tm* time);
+GType sub_events_directory_page_get_type (void) G_GNUC_CONST;
+static void events_year_directory_entry_finalize (GObject* obj);
+#define EVENTS_MONTH_DIRECTORY_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntryPrivate))
+enum {
+ EVENTS_MONTH_DIRECTORY_ENTRY_DUMMY_PROPERTY
+};
+static gchar* events_month_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+gint events_month_directory_entry_get_year (EventsMonthDirectoryEntry* self);
+static Page* events_month_directory_entry_real_create_page (SidebarSimplePageEntry* base);
+static void events_month_directory_entry_finalize (GObject* obj);
+enum {
+ EVENTS_UNDATED_DIRECTORY_ENTRY_DUMMY_PROPERTY
+};
+static gchar* events_undated_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define SUB_EVENTS_DIRECTORY_PAGE_UNDATED_PAGE_NAME _ ("Undated")
+static Page* events_undated_directory_entry_real_create_page (SidebarSimplePageEntry* base);
+GType media_source_get_type (void) G_GNUC_CONST;
+GType sidebar_internal_drop_target_entry_get_type (void) G_GNUC_CONST;
+#define EVENTS_EVENT_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EVENTS_TYPE_EVENT_ENTRY, EventsEventEntryPrivate))
+enum {
+ EVENTS_EVENT_ENTRY_DUMMY_PROPERTY
+};
+static gchar* events_event_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+static gchar* events_event_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static Page* events_event_entry_real_create_page (SidebarSimplePageEntry* base);
+EventPage* event_page_new (Event* page_event);
+EventPage* event_page_construct (GType object_type, Event* page_event);
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType event_page_get_type (void) G_GNUC_CONST;
+static gboolean events_event_entry_real_is_user_renameable (SidebarRenameableEntry* base);
+static void events_event_entry_real_rename (SidebarRenameableEntry* base, const gchar* new_name);
+gchar* event_prep_event_name (const gchar* name);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+RenameEventCommand* rename_event_command_new (Event* event, const gchar* new_name);
+RenameEventCommand* rename_event_command_construct (GType object_type, Event* event, const gchar* new_name);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType simple_proxyable_command_get_type (void) G_GNUC_CONST;
+GType rename_event_command_get_type (void) G_GNUC_CONST;
+static gboolean events_event_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media);
+GType data_view_get_type (void) G_GNUC_CONST;
+DataView* data_view_new (DataSource* source);
+DataView* data_view_construct (GType object_type, DataSource* source);
+SetEventCommand* set_event_command_new (GeeIterable* iter, Event* new_event);
+SetEventCommand* set_event_command_construct (GType object_type, GeeIterable* iter, Event* new_event);
+GType move_photos_command_get_type (void) G_GNUC_CONST;
+GType set_event_command_get_type (void) G_GNUC_CONST;
+static gboolean events_event_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data);
+static void events_event_entry_finalize (GObject* obj);
+enum {
+ EVENTS_NO_EVENT_ENTRY_DUMMY_PROPERTY
+};
+static gchar* events_no_event_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define NO_EVENT_PAGE_NAME _ ("No Event")
+static gchar* events_no_event_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static Page* events_no_event_entry_real_create_page (SidebarSimplePageEntry* base);
+NoEventPage* no_event_page_new (void);
+NoEventPage* no_event_page_construct (GType object_type);
+GType no_event_page_get_type (void) G_GNUC_CONST;
+
+
+static void _events_branch_on_events_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 46 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_on_events_added_removed ((EventsBranch*) self, added, removed);
+#line 997 "Branch.c"
+}
+
+
+static void _events_branch_on_events_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 47 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_on_events_altered ((EventsBranch*) self, items);
+#line 1004 "Branch.c"
+}
+
+
+static void _events_branch_on_no_event_collection_altered_event_source_collection_no_event_collection_altered (EventSourceCollection* _sender, gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_on_no_event_collection_altered ((EventsBranch*) self);
+#line 1011 "Branch.c"
+}
+
+
+static void _events_branch_on_config_changed_configuration_facade_events_sort_ascending_changed (ConfigurationFacade* _sender, gpointer self) {
+#line 50 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_on_config_changed ((EventsBranch*) self);
+#line 1018 "Branch.c"
+}
+
+
+static gint _events_branch_event_year_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = events_branch_event_year_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 25 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1027 "Branch.c"
+}
+
+
+EventsBranch* events_branch_construct (GType object_type) {
+ EventsBranch * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ SidebarHeader* _tmp1_ = NULL;
+ SidebarHeader* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ EventsMasterDirectoryEntry* _tmp5_ = NULL;
+ EventSourceCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ EventSourceCollection* _tmp21_ = NULL;
+ EventSourceCollection* _tmp22_ = NULL;
+ EventSourceCollection* _tmp23_ = NULL;
+ ConfigFacade* _tmp24_ = NULL;
+ ConfigFacade* _tmp25_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = _ ("Events");
+#line 25 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = sidebar_header_new (_tmp0_, TRUE);
+#line 25 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 25 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsBranch*) sidebar_branch_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SIDEBAR_TYPE_ENTRY, SidebarEntry), SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD, _events_branch_event_year_comparator_gcompare_func, NULL);
+#line 25 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp2_);
+#line 28 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 28 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 28 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = self->priv->all_events_entry;
+#line 28 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 28 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1069 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ EventSourceCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = event_global;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection));
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = _tmp9_;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp8_);
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _object_it = _tmp10_;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ while (TRUE) {
+#line 1093 "Branch.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ DataObject* _tmp15_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = _object_it;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp12_) {
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ break;
+#line 1108 "Branch.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = _object_it;
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ object = (DataObject*) _tmp14_;
+#line 32 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = object;
+#line 32 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_add_event (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_EVENT, Event));
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (object);
+#line 1122 "Branch.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 1126 "Branch.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = event_global;
+#line 34 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = event_source_collection_get_no_event_objects (_tmp16_);
+#line 34 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = _tmp17_;
+#line 34 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = gee_collection_get_size (_tmp18_);
+#line 34 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = _tmp19_;
+#line 34 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_show_no_events (self, _tmp20_ > 0);
+#line 34 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp18_);
+#line 37 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp21_ = event_global;
+#line 37 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _events_branch_on_events_added_removed_data_collection_contents_altered, self, 0);
+#line 38 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp22_ = event_global;
+#line 38 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _events_branch_on_events_altered_data_collection_items_altered, self, 0);
+#line 39 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp23_ = event_global;
+#line 39 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_connect_object (_tmp23_, "no-event-collection-altered", (GCallback) _events_branch_on_no_event_collection_altered_event_source_collection_no_event_collection_altered, self, 0);
+#line 42 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp24_ = config_facade_get_instance ();
+#line 42 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp25_ = _tmp24_;
+#line 42 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), "events-sort-ascending-changed", (GCallback) _events_branch_on_config_changed_configuration_facade_events_sort_ascending_changed, self, 0);
+#line 42 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp25_);
+#line 24 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 1164 "Branch.c"
+}
+
+
+EventsBranch* events_branch_new (void) {
+#line 24 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return events_branch_construct (EVENTS_TYPE_BRANCH);
+#line 1171 "Branch.c"
+}
+
+
+void events_branch_init (void) {
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 54 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 54 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 54 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = configuration_facade_get_events_sort_ascending (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 54 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_sort_ascending = _tmp2_;
+#line 54 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1189 "Branch.c"
+}
+
+
+void events_branch_terminate (void) {
+}
+
+
+gboolean events_branch_is_user_renameable (EventsBranch* self) {
+ gboolean result = FALSE;
+#line 60 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_BRANCH (self), FALSE);
+#line 61 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = TRUE;
+#line 61 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1205 "Branch.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 65 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1212 "Branch.c"
+}
+
+
+EventsMasterDirectoryEntry* events_branch_get_master_entry (EventsBranch* self) {
+ EventsMasterDirectoryEntry* result = NULL;
+ EventsMasterDirectoryEntry* _tmp0_ = NULL;
+ EventsMasterDirectoryEntry* _tmp1_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_BRANCH (self), NULL);
+#line 65 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->all_events_entry;
+#line 65 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 65 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 65 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1230 "Branch.c"
+}
+
+
+static gint events_branch_event_year_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+ SidebarEntry* _tmp8_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gint _result_ = 0;
+ SidebarEntry* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ SidebarEntry* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 68 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 68 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 69 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = a;
+#line 69 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = b;
+#line 69 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 70 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 0;
+#line 70 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1262 "Branch.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = a;
+#line 74 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY)) {
+#line 1268 "Branch.c"
+ SidebarEntry* _tmp3_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = b;
+#line 75 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, EVENTS_TYPE_NO_EVENT_ENTRY)) {
+#line 76 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = -1;
+#line 76 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1278 "Branch.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 1;
+#line 77 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1284 "Branch.c"
+ } else {
+ SidebarEntry* _tmp4_ = NULL;
+#line 78 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = b;
+#line 78 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY)) {
+#line 1291 "Branch.c"
+ SidebarEntry* _tmp5_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = a;
+#line 79 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, EVENTS_TYPE_NO_EVENT_ENTRY)) {
+#line 80 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 1;
+#line 80 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1301 "Branch.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = -1;
+#line 81 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1307 "Branch.c"
+ }
+ }
+#line 84 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = a;
+#line 84 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, EVENTS_TYPE_NO_EVENT_ENTRY)) {
+#line 85 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 1;
+#line 85 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1318 "Branch.c"
+ } else {
+ SidebarEntry* _tmp7_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = b;
+#line 86 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, EVENTS_TYPE_NO_EVENT_ENTRY)) {
+#line 87 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = -1;
+#line 87 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1329 "Branch.c"
+ }
+ }
+#line 90 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = a;
+#line 90 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, EVENTS_TYPE_MASTER_DIRECTORY_ENTRY)) {
+#line 91 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = -1;
+#line 91 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1340 "Branch.c"
+ } else {
+ SidebarEntry* _tmp9_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = b;
+#line 92 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, EVENTS_TYPE_MASTER_DIRECTORY_ENTRY)) {
+#line 93 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 1;
+#line 93 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1351 "Branch.c"
+ }
+ }
+#line 95 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = events_branch_sort_ascending;
+#line 95 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp10_) {
+#line 1358 "Branch.c"
+ SidebarEntry* swap = NULL;
+ SidebarEntry* _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ SidebarEntry* _tmp14_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = a;
+#line 96 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 96 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ swap = _tmp12_;
+#line 97 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = b;
+#line 97 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ a = _tmp13_;
+#line 98 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = swap;
+#line 98 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ b = _tmp14_;
+#line 95 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (swap);
+#line 1380 "Branch.c"
+ }
+#line 101 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = a;
+#line 101 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = events_year_directory_entry_get_year (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntry));
+#line 101 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = b;
+#line 101 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = events_year_directory_entry_get_year (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntry));
+#line 101 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _result_ = _tmp16_ - _tmp18_;
+#line 103 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = _result_;
+#line 103 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp19_ != 0, "result != 0");
+#line 105 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _result_;
+#line 105 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1400 "Branch.c"
+}
+
+
+static gint events_branch_event_month_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _result_ = 0;
+ SidebarEntry* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ SidebarEntry* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 108 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 109 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = a;
+#line 109 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = b;
+#line 109 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 110 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 0;
+#line 110 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1429 "Branch.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = events_branch_sort_ascending;
+#line 112 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp2_) {
+#line 1435 "Branch.c"
+ SidebarEntry* swap = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = a;
+#line 113 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 113 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ swap = _tmp4_;
+#line 114 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = b;
+#line 114 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ a = _tmp5_;
+#line 115 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = swap;
+#line 115 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ b = _tmp6_;
+#line 112 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (swap);
+#line 1457 "Branch.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = a;
+#line 118 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = events_month_directory_entry_get_month (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntry));
+#line 118 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = b;
+#line 118 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = events_month_directory_entry_get_month (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntry));
+#line 118 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _result_ = _tmp8_ - _tmp10_;
+#line 120 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = _result_;
+#line 120 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp11_ != 0, "result != 0");
+#line 122 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _result_;
+#line 122 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1477 "Branch.c"
+}
+
+
+static gint events_branch_event_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint64 _result_ = 0LL;
+ SidebarEntry* _tmp7_ = NULL;
+ Event* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ time_t _tmp10_ = 0;
+ SidebarEntry* _tmp11_ = NULL;
+ Event* _tmp12_ = NULL;
+ Event* _tmp13_ = NULL;
+ time_t _tmp14_ = 0;
+ gint64 _tmp15_ = 0LL;
+ gint64 _tmp16_ = 0LL;
+ gint64 _tmp27_ = 0LL;
+ gint _tmp28_ = 0;
+ gint64 _tmp29_ = 0LL;
+#line 125 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 125 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 126 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = a;
+#line 126 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = b;
+#line 126 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 127 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 0;
+#line 127 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1514 "Branch.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = events_branch_sort_ascending;
+#line 129 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp2_) {
+#line 1520 "Branch.c"
+ SidebarEntry* swap = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = a;
+#line 130 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 130 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ swap = _tmp4_;
+#line 131 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = b;
+#line 131 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ a = _tmp5_;
+#line 132 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = swap;
+#line 132 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ b = _tmp6_;
+#line 129 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (swap);
+#line 1542 "Branch.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = a;
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = _tmp8_;
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = event_source_get_start_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_EVENT_SOURCE, EventSource));
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = b;
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = _tmp12_;
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = event_source_get_start_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_EVENT_SOURCE, EventSource));
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = (gint64) (_tmp10_ - _tmp14_);
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp13_);
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp9_);
+#line 135 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _result_ = _tmp15_;
+#line 139 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = _result_;
+#line 139 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp16_ == ((gint64) 0)) {
+#line 1572 "Branch.c"
+ SidebarEntry* _tmp17_ = NULL;
+ Event* _tmp18_ = NULL;
+ Event* _tmp19_ = NULL;
+ EventID _tmp20_ = {0};
+ gint64 _tmp21_ = 0LL;
+ SidebarEntry* _tmp22_ = NULL;
+ Event* _tmp23_ = NULL;
+ Event* _tmp24_ = NULL;
+ EventID _tmp25_ = {0};
+ gint64 _tmp26_ = 0LL;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = a;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = _tmp18_;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ event_get_event_id (_tmp19_, &_tmp20_);
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp21_ = _tmp20_.id;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp22_ = b;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp23_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp24_ = _tmp23_;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ event_get_event_id (_tmp24_, &_tmp25_);
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp26_ = _tmp25_.id;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _result_ = _tmp21_ - _tmp26_;
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp24_);
+#line 140 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp19_);
+#line 1609 "Branch.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp27_ = _result_;
+#line 144 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp27_ != ((gint64) 0), "result != 0");
+#line 146 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp29_ = _result_;
+#line 146 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp29_ < ((gint64) 0)) {
+#line 146 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp28_ = -1;
+#line 1621 "Branch.c"
+ } else {
+#line 146 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp28_ = 1;
+#line 1625 "Branch.c"
+ }
+#line 146 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp28_;
+#line 146 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1631 "Branch.c"
+}
+
+
+static gint events_branch_undated_event_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint ret = 0;
+ SidebarEntry* _tmp7_ = NULL;
+ Event* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+ Event* _tmp13_ = NULL;
+ Event* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 149 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 149 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 150 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = a;
+#line 150 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = b;
+#line 150 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 151 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = 0;
+#line 151 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1668 "Branch.c"
+ }
+#line 153 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = events_branch_sort_ascending;
+#line 153 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp2_) {
+#line 1674 "Branch.c"
+ SidebarEntry* swap = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = a;
+#line 154 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 154 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ swap = _tmp4_;
+#line 155 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = b;
+#line 155 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ a = _tmp5_;
+#line 156 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = swap;
+#line 156 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ b = _tmp6_;
+#line 153 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (swap);
+#line 1696 "Branch.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = a;
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = _tmp8_;
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = _tmp10_;
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = b;
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = _tmp15_;
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = g_utf8_collate (_tmp11_, _tmp16_);
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = _tmp17_;
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp16_);
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp14_);
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp11_);
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp9_);
+#line 159 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ret = _tmp18_;
+#line 162 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = ret;
+#line 162 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp19_ == 0) {
+#line 1736 "Branch.c"
+ SidebarEntry* _tmp20_ = NULL;
+ Event* _tmp21_ = NULL;
+ Event* _tmp22_ = NULL;
+ gint64 _tmp23_ = 0LL;
+ SidebarEntry* _tmp24_ = NULL;
+ Event* _tmp25_ = NULL;
+ Event* _tmp26_ = NULL;
+ gint64 _tmp27_ = 0LL;
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = b;
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp21_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp22_ = _tmp21_;
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp23_ = data_source_get_instance_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_DATA_SOURCE, DataSource));
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp24_ = a;
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp25_ = events_event_entry_get_event (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry));
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp26_ = _tmp25_;
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp27_ = data_source_get_instance_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_SOURCE, DataSource));
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ret = (gint) (_tmp23_ - _tmp27_);
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp26_);
+#line 163 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp22_);
+#line 1767 "Branch.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = ret;
+#line 166 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1773 "Branch.c"
+}
+
+
+EventsEventEntry* events_branch_get_entry_for_event (EventsBranch* self, Event* event) {
+ EventsEventEntry* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_BRANCH (self), NULL);
+#line 169 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 170 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 170 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event;
+#line 170 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 170 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = (EventsEventEntry*) _tmp2_;
+#line 170 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 1796 "Branch.c"
+}
+
+
+static void events_branch_on_config_changed (EventsBranch* self) {
+ gboolean value = FALSE;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 173 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 174 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 174 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 174 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = configuration_facade_get_events_sort_ascending (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 174 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 174 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 174 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ value = _tmp3_;
+#line 176 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_sort_ascending = value;
+#line 177 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_reorder_all (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 1824 "Branch.c"
+}
+
+
+static void events_branch_on_events_added_removed (EventsBranch* self, GeeIterable* added, GeeIterable* removed) {
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp8_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 180 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 180 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 182 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = added;
+#line 182 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp0_ != NULL) {
+#line 1841 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = added;
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _object_it = _tmp2_;
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ while (TRUE) {
+#line 1854 "Branch.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _object_it;
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp4_) {
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ break;
+#line 1869 "Branch.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = _object_it;
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ object = (DataObject*) _tmp6_;
+#line 184 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = object;
+#line 184 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_add_event (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_EVENT, Event));
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (object);
+#line 1883 "Branch.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 1887 "Branch.c"
+ }
+ }
+#line 187 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = removed;
+#line 187 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp8_ != NULL) {
+#line 1894 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = removed;
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = gee_iterable_iterator (_tmp9_);
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _object_it = _tmp10_;
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ while (TRUE) {
+#line 1907 "Branch.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ DataObject* _tmp15_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = _object_it;
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp12_) {
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ break;
+#line 1922 "Branch.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = _object_it;
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ object = (DataObject*) _tmp14_;
+#line 189 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = object;
+#line 189 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_remove_event (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_EVENT, Event));
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (object);
+#line 1936 "Branch.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 1940 "Branch.c"
+ }
+ }
+}
+
+
+static void events_branch_on_events_altered (EventsBranch* self, GeeMap* altered) {
+#line 193 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 193 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (GEE_IS_MAP (altered));
+#line 1951 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = altered;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _object_it = _tmp5_;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ while (TRUE) {
+#line 1978 "Branch.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ Event* event = NULL;
+ DataObject* _tmp10_ = NULL;
+ Event* _tmp11_ = NULL;
+ Alteration* alteration = NULL;
+ GeeMap* _tmp12_ = NULL;
+ DataObject* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ Alteration* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = _object_it;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp7_) {
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ break;
+#line 2001 "Branch.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = _object_it;
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ object = (DataObject*) _tmp9_;
+#line 195 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = object;
+#line 195 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_EVENT, Event));
+#line 195 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ event = _tmp11_;
+#line 196 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = altered;
+#line 196 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = object;
+#line 196 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = gee_map_get (_tmp12_, _tmp13_);
+#line 196 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ alteration = (Alteration*) _tmp14_;
+#line 198 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = alteration;
+#line 198 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = alteration_has_detail (_tmp15_, "metadata", "time");
+#line 198 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp16_) {
+#line 2029 "Branch.c"
+ Event* _tmp17_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = event;
+#line 201 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_move_event (self, _tmp17_);
+#line 2035 "Branch.c"
+ } else {
+ Alteration* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+#line 202 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = alteration;
+#line 202 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = alteration_has_detail (_tmp18_, "metadata", "name");
+#line 202 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp19_) {
+#line 2045 "Branch.c"
+ EventsEventEntry* entry = NULL;
+ GeeHashMap* _tmp20_ = NULL;
+ Event* _tmp21_ = NULL;
+ gpointer _tmp22_ = NULL;
+ EventsEventEntry* _tmp23_ = NULL;
+ EventsEventEntry* _tmp24_ = NULL;
+ Event* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ EventsEventEntry* _tmp28_ = NULL;
+ Event* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = self->priv->entry_map;
+#line 203 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp21_ = event;
+#line 203 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp22_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp21_);
+#line 203 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ entry = (EventsEventEntry*) _tmp22_;
+#line 204 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp23_ = entry;
+#line 204 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp23_ != NULL, "entry != null");
+#line 206 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp24_ = entry;
+#line 206 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp25_ = event;
+#line 206 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp26_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject));
+#line 206 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp27_ = _tmp26_;
+#line 206 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry), "sidebar-name-changed", _tmp27_);
+#line 206 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp27_);
+#line 207 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp28_ = entry;
+#line 207 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp29_ = event;
+#line 207 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp30_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_DATA_OBJECT, DataObject));
+#line 207 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp31_ = _tmp30_;
+#line 207 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, SIDEBAR_TYPE_ENTRY, SidebarEntry), "sidebar-tooltip-changed", _tmp31_);
+#line 207 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp31_);
+#line 202 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (entry);
+#line 2097 "Branch.c"
+ }
+ }
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _alteration_unref0 (alteration);
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (event);
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (object);
+#line 2106 "Branch.c"
+ }
+#line 194 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 2110 "Branch.c"
+ }
+}
+
+
+static void events_branch_on_no_event_collection_altered (EventsBranch* self) {
+ EventSourceCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 212 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 213 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = event_global;
+#line 213 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event_source_collection_get_no_event_objects (_tmp0_);
+#line 213 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 213 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = gee_collection_get_size (_tmp2_);
+#line 213 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 213 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_show_no_events (self, _tmp4_ > 0);
+#line 213 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp2_);
+#line 2137 "Branch.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 2152 "Branch.c"
+}
+
+
+static gint _events_branch_event_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = events_branch_event_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 229 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2161 "Branch.c"
+}
+
+
+static gchar* g_time_format (struct tm *self, const gchar* format) {
+ gchar* result = NULL;
+ gchar* buffer = NULL;
+ gchar* _tmp0_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+#line 2709 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (format != NULL, NULL);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 64);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = _tmp0_;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer_length1 = 64;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _buffer_size_ = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = buffer;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = format;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ strftime (_tmp1_, _tmp1__length1, _tmp2_, &(*self));
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = buffer;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = buffer_length1;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_strdup ((const gchar*) _tmp3_);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = (g_free (buffer), NULL);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2207 "Branch.c"
+}
+
+
+static gint _events_branch_event_month_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = events_branch_event_month_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 237 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2216 "Branch.c"
+}
+
+
+static void events_branch_add_event (EventsBranch* self, Event* event) {
+ time_t event_time = 0;
+ Event* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ time_t _tmp2_ = 0;
+ struct tm event_tm = {0};
+ time_t _tmp4_ = 0;
+ struct tm _tmp5_ = {0};
+ SidebarEntry* year = NULL;
+ SidebarEntry* month = NULL;
+ Event* _tmp6_ = NULL;
+ struct tm _tmp7_ = {0};
+ SidebarEntry* _tmp8_ = NULL;
+ SidebarEntry* _tmp9_ = NULL;
+ SidebarEntry* _tmp10_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ struct tm _tmp23_ = {0};
+ EventsMonthDirectoryEntry* _tmp24_ = NULL;
+ SidebarEntry* _tmp25_ = NULL;
+ SidebarEntry* _tmp26_ = NULL;
+ SidebarEntry* _tmp27_ = NULL;
+ Event* _tmp28_ = NULL;
+#line 216 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 216 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 217 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = event;
+#line 217 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event_source_get_start_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT_SOURCE, EventSource));
+#line 217 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ event_time = _tmp1_;
+#line 218 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = event_time;
+#line 218 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp2_ == ((time_t) 0)) {
+#line 2258 "Branch.c"
+ Event* _tmp3_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = event;
+#line 219 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_add_undated_event (self, _tmp3_);
+#line 221 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return;
+#line 2266 "Branch.c"
+ }
+#line 224 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = event_time;
+#line 224 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_time_local (_tmp4_, &_tmp5_);
+#line 224 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ event_tm = _tmp5_;
+#line 227 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = event;
+#line 227 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = event_tm;
+#line 227 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = events_branch_find_event_month (self, _tmp6_, &_tmp7_, &_tmp8_);
+#line 227 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (year);
+#line 227 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ year = _tmp8_;
+#line 227 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ month = _tmp9_;
+#line 228 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = month;
+#line 228 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp10_ != NULL) {
+#line 2290 "Branch.c"
+ SidebarEntry* _tmp11_ = NULL;
+ Event* _tmp12_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = month;
+#line 229 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = event;
+#line 229 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_graft_event (self, _tmp11_, _tmp12_, _events_branch_event_comparator_gcompare_func);
+#line 231 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (month);
+#line 231 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (year);
+#line 231 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return;
+#line 2305 "Branch.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = year;
+#line 234 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp13_ == NULL) {
+#line 2311 "Branch.c"
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ struct tm _tmp16_ = {0};
+ EventsYearDirectoryEntry* _tmp17_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarEntry* _tmp19_ = NULL;
+ SidebarEntry* _tmp20_ = NULL;
+#line 235 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = g_time_format (&event_tm, SUB_EVENTS_DIRECTORY_PAGE_YEAR_FORMAT);
+#line 235 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = _tmp14_;
+#line 235 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = event_tm;
+#line 235 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = events_year_directory_entry_new (_tmp15_, &_tmp16_);
+#line 235 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (year);
+#line 235 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ year = G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, SIDEBAR_TYPE_ENTRY, SidebarEntry);
+#line 235 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp15_);
+#line 237 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 237 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = _tmp18_;
+#line 237 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = year;
+#line 237 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp19_, _tmp20_, _events_branch_event_month_comparator_gcompare_func);
+#line 237 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp19_);
+#line 2343 "Branch.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp21_ = g_time_format (&event_tm, SUB_EVENTS_DIRECTORY_PAGE_MONTH_FORMAT);
+#line 240 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp22_ = _tmp21_;
+#line 240 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp23_ = event_tm;
+#line 240 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp24_ = events_month_directory_entry_new (_tmp22_, &_tmp23_);
+#line 240 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (month);
+#line 240 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ month = G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, SIDEBAR_TYPE_ENTRY, SidebarEntry);
+#line 240 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp22_);
+#line 242 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp25_ = year;
+#line 242 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp26_ = month;
+#line 242 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp25_, _tmp26_, _events_branch_event_comparator_gcompare_func);
+#line 244 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp27_ = month;
+#line 244 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp28_ = event;
+#line 244 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_graft_event (self, _tmp27_, _tmp28_, _events_branch_event_comparator_gcompare_func);
+#line 216 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (month);
+#line 216 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (year);
+#line 2375 "Branch.c"
+}
+
+
+static void events_branch_move_event (EventsBranch* self, Event* event) {
+ time_t event_time = 0;
+ Event* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ time_t _tmp2_ = 0;
+ struct tm event_tm = {0};
+ time_t _tmp4_ = 0;
+ struct tm _tmp5_ = {0};
+ SidebarEntry* year = NULL;
+ SidebarEntry* month = NULL;
+ Event* _tmp6_ = NULL;
+ struct tm _tmp7_ = {0};
+ SidebarEntry* _tmp8_ = NULL;
+ SidebarEntry* _tmp9_ = NULL;
+ SidebarEntry* _tmp10_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ Event* _tmp25_ = NULL;
+ SidebarEntry* _tmp26_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 247 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 248 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = event;
+#line 248 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event_source_get_start_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT_SOURCE, EventSource));
+#line 248 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ event_time = _tmp1_;
+#line 249 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = event_time;
+#line 249 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp2_ == ((time_t) 0)) {
+#line 2411 "Branch.c"
+ Event* _tmp3_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = event;
+#line 250 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_move_to_undated_event (self, _tmp3_);
+#line 252 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return;
+#line 2419 "Branch.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = event_time;
+#line 255 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_time_local (_tmp4_, &_tmp5_);
+#line 255 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ event_tm = _tmp5_;
+#line 258 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = event;
+#line 258 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = event_tm;
+#line 258 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = events_branch_find_event_month (self, _tmp6_, &_tmp7_, &_tmp8_);
+#line 258 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (year);
+#line 258 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ year = _tmp8_;
+#line 258 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ month = _tmp9_;
+#line 260 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = year;
+#line 260 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp10_ == NULL) {
+#line 2443 "Branch.c"
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ struct tm _tmp13_ = {0};
+ EventsYearDirectoryEntry* _tmp14_ = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ SidebarEntry* _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = g_time_format (&event_tm, SUB_EVENTS_DIRECTORY_PAGE_YEAR_FORMAT);
+#line 261 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = _tmp11_;
+#line 261 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = event_tm;
+#line 261 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = events_year_directory_entry_new (_tmp12_, &_tmp13_);
+#line 261 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (year);
+#line 261 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ year = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, SIDEBAR_TYPE_ENTRY, SidebarEntry);
+#line 261 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp12_);
+#line 263 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 263 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = _tmp15_;
+#line 263 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = year;
+#line 263 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp16_, _tmp17_, _events_branch_event_month_comparator_gcompare_func);
+#line 263 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp16_);
+#line 2475 "Branch.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = month;
+#line 266 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp18_ == NULL) {
+#line 2481 "Branch.c"
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ struct tm _tmp21_ = {0};
+ EventsMonthDirectoryEntry* _tmp22_ = NULL;
+ SidebarEntry* _tmp23_ = NULL;
+ SidebarEntry* _tmp24_ = NULL;
+#line 267 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = g_time_format (&event_tm, SUB_EVENTS_DIRECTORY_PAGE_MONTH_FORMAT);
+#line 267 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = _tmp19_;
+#line 267 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp21_ = event_tm;
+#line 267 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp22_ = events_month_directory_entry_new (_tmp20_, &_tmp21_);
+#line 267 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (month);
+#line 267 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ month = G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, SIDEBAR_TYPE_ENTRY, SidebarEntry);
+#line 267 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (_tmp20_);
+#line 269 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp23_ = year;
+#line 269 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp24_ = month;
+#line 269 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp23_, _tmp24_, _events_branch_event_comparator_gcompare_func);
+#line 2508 "Branch.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp25_ = event;
+#line 272 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp26_ = month;
+#line 272 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_reparent_event (self, _tmp25_, _tmp26_);
+#line 247 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (month);
+#line 247 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (year);
+#line 2520 "Branch.c"
+}
+
+
+static void events_branch_remove_event (EventsBranch* self, Event* event) {
+ SidebarEntry* entry = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ SidebarEntry* parent = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ SidebarEntry* _tmp8_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 275 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 279 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 279 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event;
+#line 279 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_, &_tmp2_);
+#line 279 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (entry);
+#line 279 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ entry = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SIDEBAR_TYPE_ENTRY, SidebarEntry);
+#line 279 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ removed = _tmp3_;
+#line 280 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = removed;
+#line 280 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp4_, "removed");
+#line 282 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = entry;
+#line 282 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = sidebar_branch_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp5_);
+#line 282 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ parent = _tmp6_;
+#line 283 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = parent;
+#line 283 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp7_ != NULL, "parent != null");
+#line 285 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = entry;
+#line 285 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp8_);
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ while (TRUE) {
+#line 2573 "Branch.c"
+ gboolean _tmp9_ = FALSE;
+ SidebarEntry* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ SidebarEntry* grandparent = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ SidebarEntry* _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarEntry* _tmp19_ = NULL;
+ SidebarEntry* _tmp20_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = parent;
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = sidebar_branch_get_child_count (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp10_);
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp11_ == 0) {
+#line 2590 "Branch.c"
+ SidebarEntry* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ SidebarEntry* _tmp14_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = parent;
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = _tmp12_ != _tmp14_;
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2604 "Branch.c"
+ } else {
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = FALSE;
+#line 2608 "Branch.c"
+ }
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp9_) {
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ break;
+#line 2614 "Branch.c"
+ }
+#line 289 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = parent;
+#line 289 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = sidebar_branch_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp15_);
+#line 289 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ grandparent = _tmp16_;
+#line 290 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = grandparent;
+#line 290 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp17_ != NULL, "grandparent != null");
+#line 292 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = parent;
+#line 292 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp18_);
+#line 294 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = grandparent;
+#line 294 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 294 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (parent);
+#line 294 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ parent = _tmp20_;
+#line 288 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (grandparent);
+#line 2640 "Branch.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (parent);
+#line 275 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (entry);
+#line 2646 "Branch.c"
+}
+
+
+static Block7Data* block7_data_ref (Block7Data* _data7_) {
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_atomic_int_inc (&_data7_->_ref_count_);
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return _data7_;
+#line 2655 "Branch.c"
+}
+
+
+static void block7_data_unref (void * _userdata_) {
+ Block7Data* _data7_;
+ _data7_ = (Block7Data*) _userdata_;
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (g_atomic_int_dec_and_test (&_data7_->_ref_count_)) {
+#line 2664 "Branch.c"
+ EventsBranch* self;
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = _data7_->self;
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self);
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_slice_free (Block7Data, _data7_);
+#line 2672 "Branch.c"
+ }
+}
+
+
+static gboolean __lambda17_ (Block7Data* _data7_, SidebarEntry* entry) {
+ EventsBranch* self;
+ gboolean result = FALSE;
+ SidebarEntry* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = _data7_->self;
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 308 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = entry;
+#line 308 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = events_month_directory_entry_get_month (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntry));
+#line 308 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = _data7_->event_month;
+#line 308 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_ == _tmp2_;
+#line 308 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2697 "Branch.c"
+}
+
+
+static gboolean ___lambda17__locator (gconstpointer item, gpointer self) {
+ gboolean result;
+ result = __lambda17_ (self, (SidebarEntry*) item);
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2706 "Branch.c"
+}
+
+
+static SidebarEntry* events_branch_find_event_month (EventsBranch* self, Event* event, struct tm* event_tm, SidebarEntry** found_year) {
+ SidebarEntry* _vala_found_year = NULL;
+ SidebarEntry* result = NULL;
+ Block7Data* _data7_;
+ Event* _tmp0_ = NULL;
+ struct tm _tmp1_ = {0};
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ struct tm _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ SidebarEntry* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_BRANCH (self), NULL);
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (event_tm != NULL, NULL);
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data7_ = g_slice_new0 (Block7Data);
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data7_->_ref_count_ = 1;
+#line 298 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data7_->self = g_object_ref (self);
+#line 300 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = event;
+#line 300 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = *event_tm;
+#line 300 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = events_branch_find_event_year (self, _tmp0_, &_tmp1_);
+#line 300 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_vala_found_year);
+#line 300 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_found_year = _tmp2_;
+#line 301 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _vala_found_year;
+#line 301 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp3_ == NULL) {
+#line 302 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = NULL;
+#line 302 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ block7_data_unref (_data7_);
+#line 302 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data7_ = NULL;
+#line 302 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (found_year) {
+#line 302 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ *found_year = _vala_found_year;
+#line 2758 "Branch.c"
+ } else {
+#line 302 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_vala_found_year);
+#line 2762 "Branch.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2766 "Branch.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = *event_tm;
+#line 304 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = _tmp4_.tm_mon;
+#line 304 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data7_->event_month = _tmp5_ + 1;
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = _vala_found_year;
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = sidebar_branch_find_first_child (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp6_, ___lambda17__locator, _data7_);
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp7_;
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ block7_data_unref (_data7_);
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data7_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (found_year) {
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ *found_year = _vala_found_year;
+#line 2788 "Branch.c"
+ } else {
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_vala_found_year);
+#line 2792 "Branch.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2796 "Branch.c"
+}
+
+
+static Block8Data* block8_data_ref (Block8Data* _data8_) {
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_atomic_int_inc (&_data8_->_ref_count_);
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return _data8_;
+#line 2805 "Branch.c"
+}
+
+
+static void block8_data_unref (void * _userdata_) {
+ Block8Data* _data8_;
+ _data8_ = (Block8Data*) _userdata_;
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (g_atomic_int_dec_and_test (&_data8_->_ref_count_)) {
+#line 2814 "Branch.c"
+ EventsBranch* self;
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = _data8_->self;
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self);
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_slice_free (Block8Data, _data8_);
+#line 2822 "Branch.c"
+ }
+}
+
+
+static gboolean __lambda16_ (Block8Data* _data8_, SidebarEntry* entry) {
+ EventsBranch* self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ SidebarEntry* _tmp2_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = _data8_->self;
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = entry;
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY)) {
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = TRUE;
+#line 2843 "Branch.c"
+ } else {
+ SidebarEntry* _tmp3_ = NULL;
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = entry;
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, EVENTS_TYPE_NO_EVENT_ENTRY);
+#line 2850 "Branch.c"
+ }
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp1_) {
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = TRUE;
+#line 2856 "Branch.c"
+ } else {
+ SidebarEntry* _tmp4_ = NULL;
+#line 317 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = entry;
+#line 317 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, EVENTS_TYPE_MASTER_DIRECTORY_ENTRY);
+#line 2863 "Branch.c"
+ }
+#line 316 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp0_) {
+#line 318 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = FALSE;
+#line 318 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2871 "Branch.c"
+ } else {
+ SidebarEntry* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 320 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = entry;
+#line 320 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = events_year_directory_entry_get_year (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntry));
+#line 320 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp6_ == _data8_->event_year;
+#line 320 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2883 "Branch.c"
+ }
+}
+
+
+static gboolean ___lambda16__locator (gconstpointer item, gpointer self) {
+ gboolean result;
+ result = __lambda16_ (self, (SidebarEntry*) item);
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2893 "Branch.c"
+}
+
+
+static SidebarEntry* events_branch_find_event_year (EventsBranch* self, Event* event, struct tm* event_tm) {
+ SidebarEntry* result = NULL;
+ Block8Data* _data8_;
+ struct tm _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_BRANCH (self), NULL);
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (event_tm != NULL, NULL);
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data8_ = g_slice_new0 (Block8Data);
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data8_->_ref_count_ = 1;
+#line 312 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data8_->self = g_object_ref (self);
+#line 313 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = *event_tm;
+#line 313 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _tmp0_.tm_year;
+#line 313 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data8_->event_year = _tmp1_ + 1900;
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = sidebar_branch_find_first_child (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp3_, ___lambda16__locator, _data8_);
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp5_;
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ block8_data_unref (_data8_);
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _data8_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2942 "Branch.c"
+}
+
+
+static gint _events_branch_undated_event_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = events_branch_undated_event_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 326 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 2951 "Branch.c"
+}
+
+
+static void events_branch_add_undated_event (EventsBranch* self, Event* event) {
+ EventsUndatedDirectoryEntry* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ EventsUndatedDirectoryEntry* _tmp5_ = NULL;
+ Event* _tmp6_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 324 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 325 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->undated_entry;
+#line 325 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = sidebar_branch_has_entry (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 325 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp1_) {
+#line 2970 "Branch.c"
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ EventsUndatedDirectoryEntry* _tmp4_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 326 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 326 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = self->priv->undated_entry;
+#line 326 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SIDEBAR_TYPE_ENTRY, SidebarEntry), _events_branch_undated_event_comparator_gcompare_func);
+#line 326 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2984 "Branch.c"
+ }
+#line 328 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = self->priv->undated_entry;
+#line 328 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = event;
+#line 328 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_graft_event (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SIDEBAR_TYPE_ENTRY, SidebarEntry), _tmp6_, NULL);
+#line 2992 "Branch.c"
+}
+
+
+static void events_branch_move_to_undated_event (EventsBranch* self, Event* event) {
+ EventsUndatedDirectoryEntry* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ Event* _tmp5_ = NULL;
+ EventsUndatedDirectoryEntry* _tmp6_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 331 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 332 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->undated_entry;
+#line 332 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = sidebar_branch_has_entry (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 332 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp1_) {
+#line 3011 "Branch.c"
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ EventsUndatedDirectoryEntry* _tmp4_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 333 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 333 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = self->priv->undated_entry;
+#line 333 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 333 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 3025 "Branch.c"
+ }
+#line 335 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = event;
+#line 335 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = self->priv->undated_entry;
+#line 335 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_reparent_event (self, _tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 3033 "Branch.c"
+}
+
+
+static void events_branch_graft_event (EventsBranch* self, SidebarEntry* parent, Event* event, GCompareFunc comparator) {
+ EventsEventEntry* entry = NULL;
+ Event* _tmp0_ = NULL;
+ EventsEventEntry* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ Event* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ GCompareFunc _tmp5_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 338 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (parent));
+#line 338 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 340 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = event;
+#line 340 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = events_event_entry_new (_tmp0_);
+#line 340 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ entry = _tmp1_;
+#line 341 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = self->priv->entry_map;
+#line 341 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = event;
+#line 341 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_, entry);
+#line 343 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = parent;
+#line 343 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = comparator;
+#line 343 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp4_, G_TYPE_CHECK_INSTANCE_CAST (entry, SIDEBAR_TYPE_ENTRY, SidebarEntry), _tmp5_);
+#line 338 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (entry);
+#line 3071 "Branch.c"
+}
+
+
+static void events_branch_reparent_event (EventsBranch* self, Event* event, SidebarEntry* new_parent) {
+ EventsEventEntry* entry = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ EventsEventEntry* _tmp3_ = NULL;
+ SidebarEntry* old_parent = NULL;
+ EventsEventEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ EventsEventEntry* _tmp8_ = NULL;
+#line 346 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 346 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 346 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (new_parent));
+#line 347 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 347 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event;
+#line 347 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 347 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ entry = (EventsEventEntry*) _tmp2_;
+#line 348 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = entry;
+#line 348 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp3_ != NULL, "entry != null");
+#line 350 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = entry;
+#line 350 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = sidebar_branch_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 350 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ old_parent = _tmp5_;
+#line 351 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = old_parent;
+#line 351 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp6_ != NULL, "old_parent != null");
+#line 353 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = new_parent;
+#line 353 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = entry;
+#line 353 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_reparent (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ while (TRUE) {
+#line 3123 "Branch.c"
+ gboolean _tmp9_ = FALSE;
+ SidebarEntry* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ SidebarEntry* grandparent = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ SidebarEntry* _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarEntry* _tmp19_ = NULL;
+ SidebarEntry* _tmp20_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = old_parent;
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = sidebar_branch_get_child_count (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp10_);
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp11_ == 0) {
+#line 3140 "Branch.c"
+ SidebarEntry* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ SidebarEntry* _tmp14_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = old_parent;
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = _tmp12_ != _tmp14_;
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp14_);
+#line 3154 "Branch.c"
+ } else {
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = FALSE;
+#line 3158 "Branch.c"
+ }
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp9_) {
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ break;
+#line 3164 "Branch.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = old_parent;
+#line 356 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = sidebar_branch_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp15_);
+#line 356 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ grandparent = _tmp16_;
+#line 357 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = grandparent;
+#line 357 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _vala_assert (_tmp17_ != NULL, "grandparent != null");
+#line 359 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = old_parent;
+#line 359 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp18_);
+#line 361 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = grandparent;
+#line 361 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 361 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (old_parent);
+#line 361 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ old_parent = _tmp20_;
+#line 355 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (grandparent);
+#line 3190 "Branch.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (old_parent);
+#line 346 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (entry);
+#line 3196 "Branch.c"
+}
+
+
+static void events_branch_show_no_events (EventsBranch* self, gboolean show) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 365 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (EVENTS_IS_BRANCH (self));
+#line 366 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = show;
+#line 366 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp1_) {
+#line 3209 "Branch.c"
+ EventsNoEventEntry* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 366 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = self->priv->no_event_entry;
+#line 366 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = sidebar_branch_has_entry (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 366 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = !_tmp3_;
+#line 3218 "Branch.c"
+ } else {
+#line 366 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = FALSE;
+#line 3222 "Branch.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp0_) {
+#line 3226 "Branch.c"
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ EventsNoEventEntry* _tmp6_ = NULL;
+#line 367 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 367 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 367 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = self->priv->no_event_entry;
+#line 367 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 367 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp5_);
+#line 3240 "Branch.c"
+ } else {
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 368 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = show;
+#line 368 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!_tmp8_) {
+#line 3248 "Branch.c"
+ EventsNoEventEntry* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 368 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = self->priv->no_event_entry;
+#line 368 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = sidebar_branch_has_entry (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 368 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = _tmp10_;
+#line 3257 "Branch.c"
+ } else {
+#line 368 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = FALSE;
+#line 3261 "Branch.c"
+ }
+#line 368 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp7_) {
+#line 3265 "Branch.c"
+ EventsNoEventEntry* _tmp11_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = self->priv->no_event_entry;
+#line 369 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 3271 "Branch.c"
+ }
+ }
+}
+
+
+static void events_branch_class_init (EventsBranchClass * klass) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_type_class_add_private (klass, sizeof (EventsBranchPrivate));
+#line 7 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = events_branch_finalize;
+#line 8 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_FOLDER);
+#line 8 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_icon = _tmp0_;
+#line 9 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (RESOURCES_ICON_EVENTS);
+#line 9 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_events_icon = _tmp1_;
+#line 10 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = g_strdup (RESOURCES_ICON_ONE_EVENT);
+#line 10 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_single_event_icon = _tmp2_;
+#line 11 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = g_strdup (RESOURCES_ICON_NO_EVENT);
+#line 11 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_branch_no_event_icon = _tmp3_;
+#line 3304 "Branch.c"
+}
+
+
+static void events_branch_instance_init (EventsBranch * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ EventsUndatedDirectoryEntry* _tmp1_ = NULL;
+ EventsNoEventEntry* _tmp2_ = NULL;
+ EventsMasterDirectoryEntry* _tmp3_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv = EVENTS_BRANCH_GET_PRIVATE (self);
+#line 18 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_EVENT, (GBoxedCopyFunc) g_object_ref, g_object_unref, EVENTS_TYPE_EVENT_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 18 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->entry_map = _tmp0_;
+#line 20 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = events_undated_directory_entry_new ();
+#line 20 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->undated_entry = _tmp1_;
+#line 21 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = events_no_event_entry_new ();
+#line 21 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->no_event_entry = _tmp2_;
+#line 22 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = events_master_directory_entry_new ();
+#line 22 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->all_events_entry = _tmp3_;
+#line 3331 "Branch.c"
+}
+
+
+static void events_branch_finalize (GObject* obj) {
+ EventsBranch * self;
+ EventSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ EventSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ EventSourceCollection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ ConfigFacade* _tmp6_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EVENTS_TYPE_BRANCH, EventsBranch);
+#line 46 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = event_global;
+#line 46 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 46 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _events_branch_on_events_added_removed_data_collection_contents_altered, self);
+#line 47 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = event_global;
+#line 47 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 47 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _events_branch_on_events_altered_data_collection_items_altered, self);
+#line 48 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = event_global;
+#line 48 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_parse_name ("no-event-collection-altered", TYPE_EVENT_SOURCE_COLLECTION, &_tmp5_, NULL, FALSE);
+#line 48 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _events_branch_on_no_event_collection_altered_event_source_collection_no_event_collection_altered, self);
+#line 50 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = config_facade_get_instance ();
+#line 50 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = _tmp6_;
+#line 50 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_parse_name ("events-sort-ascending-changed", TYPE_CONFIGURATION_FACADE, &_tmp8_, NULL, FALSE);
+#line 50 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _events_branch_on_config_changed_configuration_facade_events_sort_ascending_changed, self);
+#line 50 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp7_);
+#line 18 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self->priv->entry_map);
+#line 20 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self->priv->undated_entry);
+#line 21 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self->priv->no_event_entry);
+#line 22 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self->priv->all_events_entry);
+#line 7 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (events_branch_parent_class)->finalize (obj);
+#line 3386 "Branch.c"
+}
+
+
+GType events_branch_get_type (void) {
+ static volatile gsize events_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&events_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsBranch), 0, (GInstanceInitFunc) events_branch_instance_init, NULL };
+ GType events_branch_type_id;
+ events_branch_type_id = g_type_register_static (SIDEBAR_TYPE_BRANCH, "EventsBranch", &g_define_type_info, 0);
+ g_once_init_leave (&events_branch_type_id__volatile, events_branch_type_id);
+ }
+ return events_branch_type_id__volatile;
+}
+
+
+EventsDirectoryEntry* events_directory_entry_construct (GType object_type) {
+ EventsDirectoryEntry * self = NULL;
+#line 374 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsDirectoryEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 374 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 3408 "Branch.c"
+}
+
+
+static gchar* events_directory_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ EventsDirectoryEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntry);
+#line 378 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = events_branch_icon;
+#line 378 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 378 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 378 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3427 "Branch.c"
+}
+
+
+static gboolean events_directory_entry_real_expand_on_select (SidebarExpandableEntry* base) {
+ EventsDirectoryEntry * self;
+ gboolean result = FALSE;
+#line 381 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntry);
+#line 382 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = TRUE;
+#line 382 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3440 "Branch.c"
+}
+
+
+static void events_directory_entry_class_init (EventsDirectoryEntryClass * klass) {
+#line 373 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_directory_entry_parent_class = g_type_class_peek_parent (klass);
+#line 373 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = events_directory_entry_real_get_sidebar_icon;
+#line 3449 "Branch.c"
+}
+
+
+static void events_directory_entry_sidebar_expandable_entry_interface_init (SidebarExpandableEntryIface * iface) {
+#line 373 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_directory_entry_sidebar_expandable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 373 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ iface->expand_on_select = (gboolean (*)(SidebarExpandableEntry*)) events_directory_entry_real_expand_on_select;
+#line 3458 "Branch.c"
+}
+
+
+static void events_directory_entry_instance_init (EventsDirectoryEntry * self) {
+}
+
+
+GType events_directory_entry_get_type (void) {
+ static volatile gsize events_directory_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&events_directory_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsDirectoryEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_directory_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsDirectoryEntry), 0, (GInstanceInitFunc) events_directory_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_expandable_entry_info = { (GInterfaceInitFunc) events_directory_entry_sidebar_expandable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType events_directory_entry_type_id;
+ events_directory_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "EventsDirectoryEntry", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_type_add_interface_static (events_directory_entry_type_id, SIDEBAR_TYPE_EXPANDABLE_ENTRY, &sidebar_expandable_entry_info);
+ g_once_init_leave (&events_directory_entry_type_id__volatile, events_directory_entry_type_id);
+ }
+ return events_directory_entry_type_id__volatile;
+}
+
+
+EventsMasterDirectoryEntry* events_master_directory_entry_construct (GType object_type) {
+ EventsMasterDirectoryEntry * self = NULL;
+#line 387 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsMasterDirectoryEntry*) events_directory_entry_construct (object_type);
+#line 387 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 3486 "Branch.c"
+}
+
+
+EventsMasterDirectoryEntry* events_master_directory_entry_new (void) {
+#line 387 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return events_master_directory_entry_construct (EVENTS_TYPE_MASTER_DIRECTORY_ENTRY);
+#line 3493 "Branch.c"
+}
+
+
+static gchar* events_master_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ EventsMasterDirectoryEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 390 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntry);
+#line 391 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = g_strdup (MASTER_EVENTS_DIRECTORY_PAGE_NAME);
+#line 391 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp0_;
+#line 391 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3509 "Branch.c"
+}
+
+
+static gchar* events_master_directory_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ EventsMasterDirectoryEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntry);
+#line 395 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = events_branch_events_icon;
+#line 395 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 395 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 395 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3528 "Branch.c"
+}
+
+
+static Page* events_master_directory_entry_real_create_page (SidebarSimplePageEntry* base) {
+ EventsMasterDirectoryEntry * self;
+ Page* result = NULL;
+ MasterEventsDirectoryPage* _tmp0_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntry);
+#line 399 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = master_events_directory_page_new ();
+#line 399 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_object_ref_sink (_tmp0_);
+#line 399 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 399 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3546 "Branch.c"
+}
+
+
+static void events_master_directory_entry_class_init (EventsMasterDirectoryEntryClass * klass) {
+#line 386 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_master_directory_entry_parent_class = g_type_class_peek_parent (klass);
+#line 386 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = events_master_directory_entry_real_get_sidebar_name;
+#line 386 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = events_master_directory_entry_real_get_sidebar_icon;
+#line 386 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = events_master_directory_entry_real_create_page;
+#line 3559 "Branch.c"
+}
+
+
+static void events_master_directory_entry_instance_init (EventsMasterDirectoryEntry * self) {
+}
+
+
+GType events_master_directory_entry_get_type (void) {
+ static volatile gsize events_master_directory_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&events_master_directory_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsMasterDirectoryEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_master_directory_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsMasterDirectoryEntry), 0, (GInstanceInitFunc) events_master_directory_entry_instance_init, NULL };
+ GType events_master_directory_entry_type_id;
+ events_master_directory_entry_type_id = g_type_register_static (EVENTS_TYPE_DIRECTORY_ENTRY, "EventsMasterDirectoryEntry", &g_define_type_info, 0);
+ g_once_init_leave (&events_master_directory_entry_type_id__volatile, events_master_directory_entry_type_id);
+ }
+ return events_master_directory_entry_type_id__volatile;
+}
+
+
+EventsYearDirectoryEntry* events_year_directory_entry_construct (GType object_type, const gchar* name, struct tm* tm) {
+ EventsYearDirectoryEntry * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ struct tm _tmp2_ = {0};
+#line 407 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 407 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (tm != NULL, NULL);
+#line 407 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsYearDirectoryEntry*) events_directory_entry_construct (object_type);
+#line 408 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = name;
+#line 408 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 408 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (self->priv->name);
+#line 408 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->name = _tmp1_;
+#line 409 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = *tm;
+#line 409 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->tm = _tmp2_;
+#line 407 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 3604 "Branch.c"
+}
+
+
+EventsYearDirectoryEntry* events_year_directory_entry_new (const gchar* name, struct tm* tm) {
+#line 407 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return events_year_directory_entry_construct (EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, name, tm);
+#line 3611 "Branch.c"
+}
+
+
+static gchar* events_year_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ EventsYearDirectoryEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 412 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntry);
+#line 413 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->name;
+#line 413 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 413 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 413 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3630 "Branch.c"
+}
+
+
+gint events_year_directory_entry_get_year (EventsYearDirectoryEntry* self) {
+ gint result = 0;
+ struct tm _tmp0_ = {0};
+ gint _tmp1_ = 0;
+#line 416 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_YEAR_DIRECTORY_ENTRY (self), 0);
+#line 417 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->tm;
+#line 417 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _tmp0_.tm_year;
+#line 417 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_ + 1900;
+#line 417 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3648 "Branch.c"
+}
+
+
+static Page* events_year_directory_entry_real_create_page (SidebarSimplePageEntry* base) {
+ EventsYearDirectoryEntry * self;
+ Page* result = NULL;
+ struct tm _tmp0_ = {0};
+ SubEventsDirectoryPage* _tmp1_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntry);
+#line 421 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->tm;
+#line 421 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = sub_events_directory_page_new (SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_YEAR, &_tmp0_);
+#line 421 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_object_ref_sink (_tmp1_);
+#line 421 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 421 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3669 "Branch.c"
+}
+
+
+static void events_year_directory_entry_class_init (EventsYearDirectoryEntryClass * klass) {
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_year_directory_entry_parent_class = g_type_class_peek_parent (klass);
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_type_class_add_private (klass, sizeof (EventsYearDirectoryEntryPrivate));
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = events_year_directory_entry_real_get_sidebar_name;
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = events_year_directory_entry_real_create_page;
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = events_year_directory_entry_finalize;
+#line 3684 "Branch.c"
+}
+
+
+static void events_year_directory_entry_instance_init (EventsYearDirectoryEntry * self) {
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv = EVENTS_YEAR_DIRECTORY_ENTRY_GET_PRIVATE (self);
+#line 3691 "Branch.c"
+}
+
+
+static void events_year_directory_entry_finalize (GObject* obj) {
+ EventsYearDirectoryEntry * self;
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EVENTS_TYPE_YEAR_DIRECTORY_ENTRY, EventsYearDirectoryEntry);
+#line 404 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (self->priv->name);
+#line 403 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (events_year_directory_entry_parent_class)->finalize (obj);
+#line 3703 "Branch.c"
+}
+
+
+GType events_year_directory_entry_get_type (void) {
+ static volatile gsize events_year_directory_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&events_year_directory_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsYearDirectoryEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_year_directory_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsYearDirectoryEntry), 0, (GInstanceInitFunc) events_year_directory_entry_instance_init, NULL };
+ GType events_year_directory_entry_type_id;
+ events_year_directory_entry_type_id = g_type_register_static (EVENTS_TYPE_DIRECTORY_ENTRY, "EventsYearDirectoryEntry", &g_define_type_info, 0);
+ g_once_init_leave (&events_year_directory_entry_type_id__volatile, events_year_directory_entry_type_id);
+ }
+ return events_year_directory_entry_type_id__volatile;
+}
+
+
+EventsMonthDirectoryEntry* events_month_directory_entry_construct (GType object_type, const gchar* name, struct tm* tm) {
+ EventsMonthDirectoryEntry * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ struct tm _tmp2_ = {0};
+#line 429 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 429 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (tm != NULL, NULL);
+#line 429 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsMonthDirectoryEntry*) events_directory_entry_construct (object_type);
+#line 430 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = name;
+#line 430 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 430 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (self->priv->name);
+#line 430 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->name = _tmp1_;
+#line 431 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = *tm;
+#line 431 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->tm = _tmp2_;
+#line 429 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 3744 "Branch.c"
+}
+
+
+EventsMonthDirectoryEntry* events_month_directory_entry_new (const gchar* name, struct tm* tm) {
+#line 429 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return events_month_directory_entry_construct (EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, name, tm);
+#line 3751 "Branch.c"
+}
+
+
+static gchar* events_month_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ EventsMonthDirectoryEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntry);
+#line 435 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->name;
+#line 435 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 435 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 435 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3770 "Branch.c"
+}
+
+
+gint events_month_directory_entry_get_year (EventsMonthDirectoryEntry* self) {
+ gint result = 0;
+ struct tm _tmp0_ = {0};
+ gint _tmp1_ = 0;
+#line 438 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_MONTH_DIRECTORY_ENTRY (self), 0);
+#line 439 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->tm;
+#line 439 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _tmp0_.tm_year;
+#line 439 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_ + 1900;
+#line 439 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3788 "Branch.c"
+}
+
+
+gint events_month_directory_entry_get_month (EventsMonthDirectoryEntry* self) {
+ gint result = 0;
+ struct tm _tmp0_ = {0};
+ gint _tmp1_ = 0;
+#line 442 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_MONTH_DIRECTORY_ENTRY (self), 0);
+#line 443 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->tm;
+#line 443 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _tmp0_.tm_mon;
+#line 443 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_ + 1;
+#line 443 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3806 "Branch.c"
+}
+
+
+static Page* events_month_directory_entry_real_create_page (SidebarSimplePageEntry* base) {
+ EventsMonthDirectoryEntry * self;
+ Page* result = NULL;
+ struct tm _tmp0_ = {0};
+ SubEventsDirectoryPage* _tmp1_ = NULL;
+#line 446 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntry);
+#line 447 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->tm;
+#line 447 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = sub_events_directory_page_new (SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_MONTH, &_tmp0_);
+#line 447 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_object_ref_sink (_tmp1_);
+#line 447 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 447 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3827 "Branch.c"
+}
+
+
+static void events_month_directory_entry_class_init (EventsMonthDirectoryEntryClass * klass) {
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_month_directory_entry_parent_class = g_type_class_peek_parent (klass);
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_type_class_add_private (klass, sizeof (EventsMonthDirectoryEntryPrivate));
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = events_month_directory_entry_real_get_sidebar_name;
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = events_month_directory_entry_real_create_page;
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = events_month_directory_entry_finalize;
+#line 3842 "Branch.c"
+}
+
+
+static void events_month_directory_entry_instance_init (EventsMonthDirectoryEntry * self) {
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv = EVENTS_MONTH_DIRECTORY_ENTRY_GET_PRIVATE (self);
+#line 3849 "Branch.c"
+}
+
+
+static void events_month_directory_entry_finalize (GObject* obj) {
+ EventsMonthDirectoryEntry * self;
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EVENTS_TYPE_MONTH_DIRECTORY_ENTRY, EventsMonthDirectoryEntry);
+#line 426 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (self->priv->name);
+#line 425 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (events_month_directory_entry_parent_class)->finalize (obj);
+#line 3861 "Branch.c"
+}
+
+
+GType events_month_directory_entry_get_type (void) {
+ static volatile gsize events_month_directory_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&events_month_directory_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsMonthDirectoryEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_month_directory_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsMonthDirectoryEntry), 0, (GInstanceInitFunc) events_month_directory_entry_instance_init, NULL };
+ GType events_month_directory_entry_type_id;
+ events_month_directory_entry_type_id = g_type_register_static (EVENTS_TYPE_DIRECTORY_ENTRY, "EventsMonthDirectoryEntry", &g_define_type_info, 0);
+ g_once_init_leave (&events_month_directory_entry_type_id__volatile, events_month_directory_entry_type_id);
+ }
+ return events_month_directory_entry_type_id__volatile;
+}
+
+
+EventsUndatedDirectoryEntry* events_undated_directory_entry_construct (GType object_type) {
+ EventsUndatedDirectoryEntry * self = NULL;
+#line 452 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsUndatedDirectoryEntry*) events_directory_entry_construct (object_type);
+#line 452 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 3883 "Branch.c"
+}
+
+
+EventsUndatedDirectoryEntry* events_undated_directory_entry_new (void) {
+#line 452 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return events_undated_directory_entry_construct (EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY);
+#line 3890 "Branch.c"
+}
+
+
+static gchar* events_undated_directory_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ EventsUndatedDirectoryEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 455 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY, EventsUndatedDirectoryEntry);
+#line 456 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = g_strdup (SUB_EVENTS_DIRECTORY_PAGE_UNDATED_PAGE_NAME);
+#line 456 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp0_;
+#line 456 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3906 "Branch.c"
+}
+
+
+static Page* events_undated_directory_entry_real_create_page (SidebarSimplePageEntry* base) {
+ EventsUndatedDirectoryEntry * self;
+ Page* result = NULL;
+ struct tm _tmp0_ = {0};
+ SubEventsDirectoryPage* _tmp1_ = NULL;
+#line 459 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_UNDATED_DIRECTORY_ENTRY, EventsUndatedDirectoryEntry);
+#line 460 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_time_local ((time_t) 0, &_tmp0_);
+#line 460 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = sub_events_directory_page_new (SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_UNDATED, &_tmp0_);
+#line 460 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_object_ref_sink (_tmp1_);
+#line 460 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 460 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 3927 "Branch.c"
+}
+
+
+static void events_undated_directory_entry_class_init (EventsUndatedDirectoryEntryClass * klass) {
+#line 451 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_undated_directory_entry_parent_class = g_type_class_peek_parent (klass);
+#line 451 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = events_undated_directory_entry_real_get_sidebar_name;
+#line 451 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = events_undated_directory_entry_real_create_page;
+#line 3938 "Branch.c"
+}
+
+
+static void events_undated_directory_entry_instance_init (EventsUndatedDirectoryEntry * self) {
+}
+
+
+GType events_undated_directory_entry_get_type (void) {
+ static volatile gsize events_undated_directory_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&events_undated_directory_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsUndatedDirectoryEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_undated_directory_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsUndatedDirectoryEntry), 0, (GInstanceInitFunc) events_undated_directory_entry_instance_init, NULL };
+ GType events_undated_directory_entry_type_id;
+ events_undated_directory_entry_type_id = g_type_register_static (EVENTS_TYPE_DIRECTORY_ENTRY, "EventsUndatedDirectoryEntry", &g_define_type_info, 0);
+ g_once_init_leave (&events_undated_directory_entry_type_id__volatile, events_undated_directory_entry_type_id);
+ }
+ return events_undated_directory_entry_type_id__volatile;
+}
+
+
+EventsEventEntry* events_event_entry_construct (GType object_type, Event* event) {
+ EventsEventEntry * self = NULL;
+ Event* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+#line 469 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 469 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsEventEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 470 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = event;
+#line 470 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 470 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self->priv->event);
+#line 470 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv->event = _tmp1_;
+#line 469 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 3976 "Branch.c"
+}
+
+
+EventsEventEntry* events_event_entry_new (Event* event) {
+#line 469 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return events_event_entry_construct (EVENTS_TYPE_EVENT_ENTRY, event);
+#line 3983 "Branch.c"
+}
+
+
+Event* events_event_entry_get_event (EventsEventEntry* self) {
+ Event* result = NULL;
+ Event* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (EVENTS_IS_EVENT_ENTRY (self), NULL);
+#line 474 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->event;
+#line 474 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 474 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 474 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4001 "Branch.c"
+}
+
+
+static gchar* events_event_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ EventsEventEntry * self;
+ gchar* result = NULL;
+ Event* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 477 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 478 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->event;
+#line 478 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 478 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 478 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4020 "Branch.c"
+}
+
+
+static gchar* events_event_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ EventsEventEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 481 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 482 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = events_branch_single_event_icon;
+#line 482 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 482 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 482 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4039 "Branch.c"
+}
+
+
+static Page* events_event_entry_real_create_page (SidebarSimplePageEntry* base) {
+ EventsEventEntry * self;
+ Page* result = NULL;
+ Event* _tmp0_ = NULL;
+ EventPage* _tmp1_ = NULL;
+#line 485 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 486 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = self->priv->event;
+#line 486 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event_page_new (_tmp0_);
+#line 486 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_object_ref_sink (_tmp1_);
+#line 486 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 486 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4060 "Branch.c"
+}
+
+
+static gboolean events_event_entry_real_is_user_renameable (SidebarRenameableEntry* base) {
+ EventsEventEntry * self;
+ gboolean result = FALSE;
+#line 489 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 490 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = TRUE;
+#line 490 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4073 "Branch.c"
+}
+
+
+static void events_event_entry_real_rename (SidebarRenameableEntry* base, const gchar* new_name) {
+ EventsEventEntry * self;
+ gchar* prepped = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 493 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 493 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_if_fail (new_name != NULL);
+#line 494 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = new_name;
+#line 494 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = event_prep_event_name (_tmp0_);
+#line 494 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ prepped = _tmp1_;
+#line 495 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = prepped;
+#line 495 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (_tmp2_ != NULL) {
+#line 4097 "Branch.c"
+ CommandManager* _tmp3_ = NULL;
+ CommandManager* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ RenameEventCommand* _tmp7_ = NULL;
+ RenameEventCommand* _tmp8_ = NULL;
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = app_window_get_command_manager ();
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = self->priv->event;
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = prepped;
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = rename_event_command_new (_tmp5_, _tmp6_);
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ command_manager_execute (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_COMMAND, Command));
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp8_);
+#line 496 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _command_manager_unref0 (_tmp4_);
+#line 4122 "Branch.c"
+ }
+#line 493 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_free0 (prepped);
+#line 4126 "Branch.c"
+}
+
+
+static gboolean events_event_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media) {
+ EventsEventEntry * self;
+ gboolean result = FALSE;
+ GeeArrayList* views = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ CommandManager* _tmp16_ = NULL;
+ CommandManager* _tmp17_ = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ Event* _tmp19_ = NULL;
+ SetEventCommand* _tmp20_ = NULL;
+ SetEventCommand* _tmp21_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 499 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (GEE_IS_LIST (media), FALSE);
+#line 502 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = gee_array_list_new (TYPE_DATA_VIEW, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 502 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ views = _tmp0_;
+#line 4149 "Branch.c"
+ {
+ GeeList* _media_source_list = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _media_source_size = 0;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _media_source_index = 0;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = media;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _media_source_list = _tmp2_;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp3_ = _media_source_list;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _media_source_size = _tmp5_;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _media_source_index = -1;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ while (TRUE) {
+#line 4177 "Branch.c"
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ MediaSource* media_source = NULL;
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gpointer _tmp11_ = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ MediaSource* _tmp13_ = NULL;
+ DataView* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp6_ = _media_source_index;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _media_source_index = _tmp6_ + 1;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp7_ = _media_source_index;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp8_ = _media_source_size;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ if (!(_tmp7_ < _tmp8_)) {
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ break;
+#line 4201 "Branch.c"
+ }
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp9_ = _media_source_list;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp10_ = _media_source_index;
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp11_ = gee_list_get (_tmp9_, _tmp10_);
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ media_source = (MediaSource*) _tmp11_;
+#line 504 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp12_ = views;
+#line 504 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp13_ = media_source;
+#line 504 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp14_ = data_view_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_SOURCE, DataSource));
+#line 504 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp15_ = _tmp14_;
+#line 504 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 504 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp15_);
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (media_source);
+#line 4225 "Branch.c"
+ }
+#line 503 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_media_source_list);
+#line 4229 "Branch.c"
+ }
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp16_ = app_window_get_command_manager ();
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp17_ = _tmp16_;
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp18_ = views;
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp19_ = self->priv->event;
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp20_ = set_event_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ITERABLE, GeeIterable), _tmp19_);
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp21_ = _tmp20_;
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ command_manager_execute (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_COMMAND, Command));
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (_tmp21_);
+#line 506 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _command_manager_unref0 (_tmp17_);
+#line 508 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = TRUE;
+#line 508 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (views);
+#line 508 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4255 "Branch.c"
+}
+
+
+static gboolean events_event_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data) {
+ EventsEventEntry * self;
+ gboolean result = FALSE;
+#line 511 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 511 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_return_val_if_fail (data != NULL, FALSE);
+#line 512 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = FALSE;
+#line 512 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4270 "Branch.c"
+}
+
+
+static void events_event_entry_class_init (EventsEventEntryClass * klass) {
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_event_entry_parent_class = g_type_class_peek_parent (klass);
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_type_class_add_private (klass, sizeof (EventsEventEntryPrivate));
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = events_event_entry_real_get_sidebar_name;
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = events_event_entry_real_get_sidebar_icon;
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = events_event_entry_real_create_page;
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = events_event_entry_finalize;
+#line 4287 "Branch.c"
+}
+
+
+static void events_event_entry_sidebar_renameable_entry_interface_init (SidebarRenameableEntryIface * iface) {
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_event_entry_sidebar_renameable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ iface->is_user_renameable = (gboolean (*)(SidebarRenameableEntry*)) events_event_entry_real_is_user_renameable;
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ iface->rename = (void (*)(SidebarRenameableEntry*, const gchar*)) events_event_entry_real_rename;
+#line 4298 "Branch.c"
+}
+
+
+static void events_event_entry_sidebar_internal_drop_target_entry_interface_init (SidebarInternalDropTargetEntryIface * iface) {
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_event_entry_sidebar_internal_drop_target_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ iface->internal_drop_received = (gboolean (*)(SidebarInternalDropTargetEntry*, GeeList*)) events_event_entry_real_internal_drop_received;
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ iface->internal_drop_received_arbitrary = (gboolean (*)(SidebarInternalDropTargetEntry*, GtkSelectionData*)) events_event_entry_real_internal_drop_received_arbitrary;
+#line 4309 "Branch.c"
+}
+
+
+static void events_event_entry_instance_init (EventsEventEntry * self) {
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self->priv = EVENTS_EVENT_ENTRY_GET_PRIVATE (self);
+#line 4316 "Branch.c"
+}
+
+
+static void events_event_entry_finalize (GObject* obj) {
+ EventsEventEntry * self;
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry);
+#line 467 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _g_object_unref0 (self->priv->event);
+#line 465 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ G_OBJECT_CLASS (events_event_entry_parent_class)->finalize (obj);
+#line 4328 "Branch.c"
+}
+
+
+GType events_event_entry_get_type (void) {
+ static volatile gsize events_event_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&events_event_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsEventEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_event_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsEventEntry), 0, (GInstanceInitFunc) events_event_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_renameable_entry_info = { (GInterfaceInitFunc) events_event_entry_sidebar_renameable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_internal_drop_target_entry_info = { (GInterfaceInitFunc) events_event_entry_sidebar_internal_drop_target_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType events_event_entry_type_id;
+ events_event_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "EventsEventEntry", &g_define_type_info, 0);
+ g_type_add_interface_static (events_event_entry_type_id, SIDEBAR_TYPE_RENAMEABLE_ENTRY, &sidebar_renameable_entry_info);
+ g_type_add_interface_static (events_event_entry_type_id, SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, &sidebar_internal_drop_target_entry_info);
+ g_once_init_leave (&events_event_entry_type_id__volatile, events_event_entry_type_id);
+ }
+ return events_event_entry_type_id__volatile;
+}
+
+
+EventsNoEventEntry* events_no_event_entry_construct (GType object_type) {
+ EventsNoEventEntry * self = NULL;
+#line 518 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = (EventsNoEventEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 518 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return self;
+#line 4354 "Branch.c"
+}
+
+
+EventsNoEventEntry* events_no_event_entry_new (void) {
+#line 518 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return events_no_event_entry_construct (EVENTS_TYPE_NO_EVENT_ENTRY);
+#line 4361 "Branch.c"
+}
+
+
+static gchar* events_no_event_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ EventsNoEventEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 521 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_NO_EVENT_ENTRY, EventsNoEventEntry);
+#line 522 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = g_strdup (NO_EVENT_PAGE_NAME);
+#line 522 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp0_;
+#line 522 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4377 "Branch.c"
+}
+
+
+static gchar* events_no_event_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ EventsNoEventEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_NO_EVENT_ENTRY, EventsNoEventEntry);
+#line 526 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = events_branch_no_event_icon;
+#line 526 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 526 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = _tmp1_;
+#line 526 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4396 "Branch.c"
+}
+
+
+static Page* events_no_event_entry_real_create_page (SidebarSimplePageEntry* base) {
+ EventsNoEventEntry * self;
+ Page* result = NULL;
+ NoEventPage* _tmp0_ = NULL;
+#line 529 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_TYPE_NO_EVENT_ENTRY, EventsNoEventEntry);
+#line 530 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ _tmp0_ = no_event_page_new ();
+#line 530 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ g_object_ref_sink (_tmp0_);
+#line 530 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 530 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ return result;
+#line 4414 "Branch.c"
+}
+
+
+static void events_no_event_entry_class_init (EventsNoEventEntryClass * klass) {
+#line 517 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ events_no_event_entry_parent_class = g_type_class_peek_parent (klass);
+#line 517 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = events_no_event_entry_real_get_sidebar_name;
+#line 517 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = events_no_event_entry_real_get_sidebar_icon;
+#line 517 "/home/jens/Source/shotwell/src/events/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = events_no_event_entry_real_create_page;
+#line 4427 "Branch.c"
+}
+
+
+static void events_no_event_entry_instance_init (EventsNoEventEntry * self) {
+}
+
+
+GType events_no_event_entry_get_type (void) {
+ static volatile gsize events_no_event_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&events_no_event_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsNoEventEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_no_event_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsNoEventEntry), 0, (GInstanceInitFunc) events_no_event_entry_instance_init, NULL };
+ GType events_no_event_entry_type_id;
+ events_no_event_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "EventsNoEventEntry", &g_define_type_info, 0);
+ g_once_init_leave (&events_no_event_entry_type_id__volatile, events_no_event_entry_type_id);
+ }
+ return events_no_event_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/events/EventDirectoryItem.c b/src/events/EventDirectoryItem.c
new file mode 100644
index 0000000..f63d633
--- /dev/null
+++ b/src/events/EventDirectoryItem.c
@@ -0,0 +1,1737 @@
+/* EventDirectoryItem.c generated by valac 0.32.1, the Vala compiler
+ * generated from EventDirectoryItem.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <cairo.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+#include <pango/pango.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_EVENT_DIRECTORY_ITEM (event_directory_item_get_type ())
+#define EVENT_DIRECTORY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem))
+#define EVENT_DIRECTORY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItemClass))
+#define IS_EVENT_DIRECTORY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_DIRECTORY_ITEM))
+#define IS_EVENT_DIRECTORY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_DIRECTORY_ITEM))
+#define EVENT_DIRECTORY_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItemClass))
+
+typedef struct _EventDirectoryItem EventDirectoryItem;
+typedef struct _EventDirectoryItemClass EventDirectoryItemClass;
+typedef struct _EventDirectoryItemPrivate EventDirectoryItemPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+typedef struct _Scaling Scaling;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define PHOTO_TYPE_EXCEPTION (photo_exception_get_type ())
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define THUMBNAIL_CACHE_TYPE_SIZE (thumbnail_cache_size_get_type ())
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _EventDirectoryItem {
+ CheckerboardItem parent_instance;
+ EventDirectoryItemPrivate * priv;
+ Event* event;
+};
+
+struct _EventDirectoryItemClass {
+ CheckerboardItemClass parent_class;
+};
+
+struct _EventDirectoryItemPrivate {
+ GdkRectangle paul_lynde;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef enum {
+ PHOTO_EXCEPTION_NONE = 0,
+ PHOTO_EXCEPTION_ORIENTATION = 1 << 0,
+ PHOTO_EXCEPTION_CROP = 1 << 1,
+ PHOTO_EXCEPTION_REDEYE = 1 << 2,
+ PHOTO_EXCEPTION_ADJUST = 1 << 3,
+ PHOTO_EXCEPTION_STRAIGHTEN = 1 << 4,
+ PHOTO_EXCEPTION_ALL = 0xFFFFFFFFLL
+} PhotoException;
+
+typedef enum {
+ THUMBNAIL_CACHE_SIZE_LARGEST = 360,
+ THUMBNAIL_CACHE_SIZE_BIG = 360,
+ THUMBNAIL_CACHE_SIZE_MEDIUM = 128,
+ THUMBNAIL_CACHE_SIZE_SMALLEST = 128
+} ThumbnailCacheSize;
+
+
+static gpointer event_directory_item_parent_class = NULL;
+extern EventSourceCollection* event_global;
+extern Scaling event_directory_item_squared_scaling;
+Scaling event_directory_item_squared_scaling = {0};
+
+GType data_object_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType event_directory_item_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+#define EVENT_DIRECTORY_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItemPrivate))
+enum {
+ EVENT_DIRECTORY_ITEM_DUMMY_PROPERTY
+};
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+static void event_directory_item_on_events_altered (EventDirectoryItem* self, GeeMap* map);
+static void _event_directory_item_on_events_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void scaling_to_fill_viewport (Dimensions* viewport, Scaling* result);
+static gint event_directory_item_get_CROPPED_SCALE (void);
+void dimensions_init (Dimensions *self, gint width, gint height);
+EventDirectoryItem* event_directory_item_new (Event* event);
+EventDirectoryItem* event_directory_item_construct (GType object_type, Event* event);
+static gchar* event_directory_item_get_formatted_title (Event* event);
+gchar* event_source_get_comment (EventSource* self);
+CheckerboardItem* checkerboard_item_construct (GType object_type, ThumbnailSource* source, Dimensions* initial_pixbuf_dim, const gchar* title, const gchar* comment, gboolean marked_up, PangoAlignment alignment);
+GType media_source_get_type (void) G_GNUC_CONST;
+static void event_directory_item_get_paul_lynde_rect (MediaSource* source, GdkRectangle* result);
+MediaSource* event_get_primary_source (Event* self);
+void checkerboard_item_clear_image (CheckerboardItem* self, Dimensions* dim);
+void dimensions_for_rectangle (GdkRectangle* rect, Dimensions* result);
+void scaling_get_scaled_dimensions (Scaling *self, Dimensions* original, Dimensions* result);
+GType photo_exception_get_type (void) G_GNUC_CONST;
+void media_source_get_dimensions (MediaSource* self, PhotoException disallowed_steps, Dimensions* result);
+static GdkPixbuf* event_directory_item_get_paul_lynde (MediaSource* media, GdkRectangle* paul_lynde, GError** error);
+GdkPixbuf* media_source_get_preview_pixbuf (MediaSource* self, Scaling* scaling, GError** error);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GdkPixbuf* photo_source_get_pixbuf (PhotoSource* self, Scaling* scaling, GError** error);
+void clamp_rectangle (GdkRectangle* original, Dimensions* max, GdkRectangle* result);
+gboolean media_source_collection_has_photo (GeeCollection* media);
+GeeCollection* event_source_get_media (EventSource* self);
+gboolean media_source_collection_has_video (GeeCollection* media);
+gint event_source_get_media_count (EventSource* self);
+gchar* event_get_formatted_daterange (Event* self);
+gchar* data_object_get_name (DataObject* self);
+gchar* guarded_markup_escape_text (const gchar* plain);
+static void event_directory_item_real_exposed (CheckerboardItem* base);
+gboolean checkerboard_item_is_exposed (CheckerboardItem* self);
+void checkerboard_item_set_image (CheckerboardItem* self, GdkPixbuf* pixbuf);
+gchar* data_object_to_string (DataObject* self);
+static void event_directory_item_update_comment (EventDirectoryItem* self, gboolean init);
+void checkerboard_item_exposed (CheckerboardItem* self);
+static void event_directory_item_real_unexposed (CheckerboardItem* base);
+void checkerboard_item_unexposed (CheckerboardItem* self);
+void checkerboard_item_set_title (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+static void event_directory_item_real_thumbnail_altered (ThumbnailView* base);
+static void event_directory_item_real_paint_shadow (CheckerboardItem* base, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+void checkerboard_item_paint_shadow (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+static void event_directory_item_real_paint_border (CheckerboardItem* base, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+void checkerboard_item_get_border_dimensions (Dimensions* object_dim, gint border_width, Dimensions* result);
+void checkerboard_item_get_border_origin (GdkPoint* object_origin, gint border_width, GdkPoint* result);
+void draw_rounded_corners_filled (cairo_t* ctx, Dimensions* dim, GdkPoint* origin, gdouble radius_proportion);
+static void event_directory_item_real_paint_image (CheckerboardItem* base, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+void context_rounded_corners (cairo_t* cx, Dimensions* dim, GdkPoint* origin, gdouble radius_proportion);
+gboolean is_string_empty (const gchar* s);
+void checkerboard_item_clear_comment (CheckerboardItem* self);
+void checkerboard_item_set_comment (CheckerboardItem* self, const gchar* text, gboolean marked_up, PangoAlignment alignment);
+GType thumbnail_cache_size_get_type (void) G_GNUC_CONST;
+gint thumbnail_cache_size_get_scale (ThumbnailCacheSize self);
+static void event_directory_item_finalize (GObject* obj);
+static void _vala_event_directory_item_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+
+
+static void _event_directory_item_on_events_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 39 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ event_directory_item_on_events_altered ((EventDirectoryItem*) self, items);
+#line 457 "EventDirectoryItem.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 26 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 464 "EventDirectoryItem.c"
+}
+
+
+EventDirectoryItem* event_directory_item_construct (GType object_type, Event* event) {
+ EventDirectoryItem * self = NULL;
+ Event* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ Event* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ Event* _tmp12_ = NULL;
+ Event* _tmp13_ = NULL;
+ Event* _tmp14_ = NULL;
+ MediaSource* _tmp15_ = NULL;
+ MediaSource* _tmp16_ = NULL;
+ GdkRectangle _tmp17_ = {0};
+ GdkRectangle _tmp18_ = {0};
+ Dimensions _tmp19_ = {0};
+ EventSourceCollection* _tmp20_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = event;
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = event_directory_item_get_CROPPED_SCALE ();
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = event_directory_item_get_CROPPED_SCALE ();
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = _tmp3_;
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_init (&_tmp5_, _tmp2_, _tmp4_);
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = event;
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = event_directory_item_get_formatted_title (_tmp6_);
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = _tmp7_;
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp9_ = event;
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp10_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_EVENT_SOURCE, EventSource));
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp11_ = _tmp10_;
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = (EventDirectoryItem*) checkerboard_item_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_THUMBNAIL_SOURCE, ThumbnailSource), &_tmp5_, _tmp8_, _tmp11_, TRUE, PANGO_ALIGN_CENTER);
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp11_);
+#line 23 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp8_);
+#line 26 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp12_ = event;
+#line 26 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 26 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (self->event);
+#line 26 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self->event = _tmp13_;
+#line 29 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp14_ = event;
+#line 29 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp15_ = event_get_primary_source (_tmp14_);
+#line 29 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp16_ = _tmp15_;
+#line 29 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ event_directory_item_get_paul_lynde_rect (_tmp16_, &_tmp17_);
+#line 29 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self->priv->paul_lynde = _tmp17_;
+#line 29 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (_tmp16_);
+#line 32 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp18_ = self->priv->paul_lynde;
+#line 32 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_for_rectangle (&_tmp18_, &_tmp19_);
+#line 32 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_clear_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), &_tmp19_);
+#line 35 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp20_ = event_global;
+#line 35 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _event_directory_item_on_events_altered_data_collection_items_altered, self, 0);
+#line 22 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return self;
+#line 555 "EventDirectoryItem.c"
+}
+
+
+EventDirectoryItem* event_directory_item_new (Event* event) {
+#line 22 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return event_directory_item_construct (TYPE_EVENT_DIRECTORY_ITEM, event);
+#line 562 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_get_paul_lynde_rect (MediaSource* source, GdkRectangle* result) {
+ Dimensions scaled = {0};
+ MediaSource* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+ GdkRectangle paul_lynde = {0};
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ Dimensions _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+#line 43 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (source));
+#line 44 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = source;
+#line 44 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ media_source_get_dimensions (_tmp0_, PHOTO_EXCEPTION_NONE, &_tmp1_);
+#line 44 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ scaling_get_scaled_dimensions (&event_directory_item_squared_scaling, &_tmp1_, &_tmp2_);
+#line 44 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ scaled = _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ memset (&paul_lynde, 0, sizeof (GdkRectangle));
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = scaled;
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = _tmp3_.width;
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = event_directory_item_get_CROPPED_SCALE ();
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = _tmp5_;
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = scaled;
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = _tmp7_.width;
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp9_ = CLAMP (_tmp4_ - _tmp6_, 0, _tmp8_);
+#line 47 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ paul_lynde.x = _tmp9_ / 2;
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp10_ = scaled;
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp11_ = _tmp10_.height;
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp12_ = event_directory_item_get_CROPPED_SCALE ();
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp13_ = _tmp12_;
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp14_ = scaled;
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp15_ = _tmp14_.height;
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp16_ = CLAMP (_tmp11_ - _tmp13_, 0, _tmp15_);
+#line 48 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ paul_lynde.y = _tmp16_ / 2;
+#line 49 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp17_ = event_directory_item_get_CROPPED_SCALE ();
+#line 49 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp18_ = _tmp17_;
+#line 49 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ paul_lynde.width = _tmp18_;
+#line 50 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp19_ = event_directory_item_get_CROPPED_SCALE ();
+#line 50 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp20_ = _tmp19_;
+#line 50 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ paul_lynde.height = _tmp20_;
+#line 52 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ *result = paul_lynde;
+#line 52 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return;
+#line 650 "EventDirectoryItem.c"
+}
+
+
+static GdkPixbuf* event_directory_item_get_paul_lynde (MediaSource* media, GdkRectangle* paul_lynde, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ MediaSource* _tmp0_ = NULL;
+ Scaling _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ Dimensions thumbnail_dimensions = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ Dimensions _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+ Dimensions _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ GdkRectangle _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ GdkRectangle _tmp23_ = {0};
+ Dimensions _tmp24_ = {0};
+ GdkRectangle _tmp25_ = {0};
+ GdkPixbuf* _tmp26_ = NULL;
+ GdkRectangle _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ GdkRectangle _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ GdkRectangle _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ GdkRectangle _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ GdkPixbuf* _tmp35_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (media), NULL);
+#line 56 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_val_if_fail (paul_lynde != NULL, NULL);
+#line 57 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = media;
+#line 57 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = event_directory_item_squared_scaling;
+#line 57 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = media_source_get_preview_pixbuf (_tmp0_, &_tmp1_, &_inner_error_);
+#line 57 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ pixbuf = _tmp2_;
+#line 57 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 57 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_propagate_error (error, _inner_error_);
+#line 57 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return NULL;
+#line 700 "EventDirectoryItem.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = pixbuf;
+#line 59 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_for_pixbuf (_tmp3_, &_tmp4_);
+#line 59 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ thumbnail_dimensions = _tmp4_;
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = thumbnail_dimensions;
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = _tmp6_.width;
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = *paul_lynde;
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp9_ = _tmp8_.width;
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp7_ > (2 * _tmp9_)) {
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = TRUE;
+#line 720 "EventDirectoryItem.c"
+ } else {
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 62 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp10_ = thumbnail_dimensions;
+#line 62 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp11_ = _tmp10_.height;
+#line 62 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp12_ = *paul_lynde;
+#line 62 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp13_ = _tmp12_.height;
+#line 62 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = _tmp11_ > (_tmp13_ * 2);
+#line 736 "EventDirectoryItem.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp5_) {
+#line 740 "EventDirectoryItem.c"
+ LibraryPhoto* photo = NULL;
+ MediaSource* _tmp14_ = NULL;
+ LibraryPhoto* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+ LibraryPhoto* _tmp17_ = NULL;
+ Scaling _tmp18_ = {0};
+ GdkPixbuf* _tmp19_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ Dimensions _tmp22_ = {0};
+#line 63 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp14_ = media;
+#line 63 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp15_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 63 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ photo = _tmp15_;
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp17_ = photo;
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp18_ = event_directory_item_squared_scaling;
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp19_ = photo_source_get_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_PHOTO_SOURCE, PhotoSource), &_tmp18_, &_inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp16_ = _tmp19_;
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_propagate_error (error, _inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (photo);
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (pixbuf);
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return NULL;
+#line 775 "EventDirectoryItem.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp20_ = _tmp16_;
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp16_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (pixbuf);
+#line 64 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ pixbuf = _tmp20_;
+#line 65 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp21_ = pixbuf;
+#line 65 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_for_pixbuf (_tmp21_, &_tmp22_);
+#line 65 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ thumbnail_dimensions = _tmp22_;
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (_tmp16_);
+#line 61 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (photo);
+#line 795 "EventDirectoryItem.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp23_ = *paul_lynde;
+#line 69 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp24_ = thumbnail_dimensions;
+#line 69 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ clamp_rectangle (&_tmp23_, &_tmp24_, &_tmp25_);
+#line 69 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ *paul_lynde = _tmp25_;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp26_ = pixbuf;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp27_ = *paul_lynde;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp28_ = _tmp27_.x;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp29_ = *paul_lynde;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp30_ = _tmp29_.y;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp31_ = *paul_lynde;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp32_ = _tmp31_.width;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp33_ = *paul_lynde;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp34_ = _tmp33_.height;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp35_ = gdk_pixbuf_new_subpixbuf (_tmp26_, _tmp28_, _tmp30_, _tmp32_, _tmp34_);
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ result = _tmp35_;
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (pixbuf);
+#line 72 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return result;
+#line 831 "EventDirectoryItem.c"
+}
+
+
+static gchar* event_directory_item_get_formatted_title (Event* event) {
+ gchar* result = NULL;
+ gboolean has_photos = FALSE;
+ Event* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean has_videos = FALSE;
+ Event* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gint count = 0;
+ Event* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar* count_text = NULL;
+ gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gchar* daterange = NULL;
+ Event* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* name = NULL;
+ Event* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ const gchar* _tmp34_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_val_if_fail (IS_EVENT (event), NULL);
+#line 77 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = event;
+#line 77 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = event_source_get_media (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT_SOURCE, EventSource));
+#line 77 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = _tmp1_;
+#line 77 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = media_source_collection_has_photo (_tmp2_);
+#line 77 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = _tmp3_;
+#line 77 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (_tmp2_);
+#line 77 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ has_photos = _tmp4_;
+#line 78 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = event;
+#line 78 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = event_source_get_media (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_EVENT_SOURCE, EventSource));
+#line 78 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = _tmp6_;
+#line 78 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = media_source_collection_has_video (_tmp7_);
+#line 78 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp9_ = _tmp8_;
+#line 78 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (_tmp7_);
+#line 78 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ has_videos = _tmp9_;
+#line 80 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp10_ = event;
+#line 80 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp11_ = event_source_get_media_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_EVENT_SOURCE, EventSource));
+#line 80 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ count = _tmp11_;
+#line 81 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp12_ = g_strdup ("");
+#line 81 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ count_text = _tmp12_;
+#line 82 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp14_ = has_photos;
+#line 82 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp14_) {
+#line 908 "EventDirectoryItem.c"
+ gboolean _tmp15_ = FALSE;
+#line 82 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp15_ = has_videos;
+#line 82 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp13_ = _tmp15_;
+#line 914 "EventDirectoryItem.c"
+ } else {
+#line 82 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp13_ = FALSE;
+#line 918 "EventDirectoryItem.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp13_) {
+#line 922 "EventDirectoryItem.c"
+ gint _tmp16_ = 0;
+ const gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gchar* _tmp19_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp16_ = count;
+#line 83 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp17_ = ngettext ("%d Photo/Video", "%d Photos/Videos", (gulong) _tmp16_);
+#line 83 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp18_ = count;
+#line 83 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp19_ = g_strdup_printf (_tmp17_, _tmp18_);
+#line 83 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (count_text);
+#line 83 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ count_text = _tmp19_;
+#line 939 "EventDirectoryItem.c"
+ } else {
+ gboolean _tmp20_ = FALSE;
+#line 84 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp20_ = has_videos;
+#line 84 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp20_) {
+#line 946 "EventDirectoryItem.c"
+ gint _tmp21_ = 0;
+ const gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gchar* _tmp24_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp21_ = count;
+#line 85 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp22_ = ngettext ("%d Video", "%d Videos", (gulong) _tmp21_);
+#line 85 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp23_ = count;
+#line 85 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp24_ = g_strdup_printf (_tmp22_, _tmp23_);
+#line 85 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (count_text);
+#line 85 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ count_text = _tmp24_;
+#line 963 "EventDirectoryItem.c"
+ } else {
+ gint _tmp25_ = 0;
+ const gchar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gchar* _tmp28_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp25_ = count;
+#line 87 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp26_ = ngettext ("%d Photo", "%d Photos", (gulong) _tmp25_);
+#line 87 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp27_ = count;
+#line 87 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp28_ = g_strdup_printf (_tmp26_, _tmp27_);
+#line 87 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (count_text);
+#line 87 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ count_text = _tmp28_;
+#line 981 "EventDirectoryItem.c"
+ }
+ }
+#line 89 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp29_ = event;
+#line 89 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp30_ = event_get_formatted_daterange (_tmp29_);
+#line 89 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ daterange = _tmp30_;
+#line 90 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp31_ = event;
+#line 90 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp32_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_DATA_OBJECT, DataObject));
+#line 90 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ name = _tmp32_;
+#line 94 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp34_ = daterange;
+#line 94 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp34_ == NULL) {
+#line 94 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp33_ = TRUE;
+#line 1002 "EventDirectoryItem.c"
+ } else {
+ const gchar* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+#line 94 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp35_ = daterange;
+#line 94 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp36_ = name;
+#line 94 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp33_ = g_strcmp0 (_tmp35_, _tmp36_) == 0;
+#line 1012 "EventDirectoryItem.c"
+ }
+#line 94 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp33_) {
+#line 1016 "EventDirectoryItem.c"
+ const gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp37_ = name;
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp38_ = guarded_markup_escape_text (_tmp37_);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp39_ = _tmp38_;
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp40_ = count_text;
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp41_ = guarded_markup_escape_text (_tmp40_);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp42_ = _tmp41_;
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp43_ = g_strdup_printf ("<b>%s</b>\n%s", _tmp39_, _tmp42_);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp44_ = _tmp43_;
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp42_);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp39_);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ result = _tmp44_;
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (name);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (daterange);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (count_text);
+#line 95 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return result;
+#line 1055 "EventDirectoryItem.c"
+ } else {
+ const gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp45_ = name;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp46_ = guarded_markup_escape_text (_tmp45_);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp47_ = _tmp46_;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp48_ = count_text;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp49_ = guarded_markup_escape_text (_tmp48_);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp50_ = _tmp49_;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp51_ = daterange;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp52_ = guarded_markup_escape_text (_tmp51_);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp53_ = _tmp52_;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp54_ = g_strdup_printf ("<b>%s</b>\n%s\n%s", _tmp47_, _tmp50_, _tmp53_);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp55_ = _tmp54_;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp53_);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp50_);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp47_);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ result = _tmp55_;
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (name);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (daterange);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (count_text);
+#line 98 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return result;
+#line 1106 "EventDirectoryItem.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (name);
+#line 76 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (daterange);
+#line 76 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (count_text);
+#line 1114 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_real_exposed (CheckerboardItem* base) {
+ EventDirectoryItem * self;
+ gboolean _tmp0_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 103 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = checkerboard_item_is_exposed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 103 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp0_) {
+#line 104 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return;
+#line 1130 "EventDirectoryItem.c"
+ }
+ {
+ GdkPixbuf* _tmp1_ = NULL;
+ Event* _tmp2_ = NULL;
+ MediaSource* _tmp3_ = NULL;
+ MediaSource* _tmp4_ = NULL;
+ GdkRectangle _tmp5_ = {0};
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = self->event;
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = event_get_primary_source (_tmp2_);
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = _tmp3_;
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = self->priv->paul_lynde;
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = event_directory_item_get_paul_lynde (_tmp4_, &_tmp5_, &_inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = _tmp6_;
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (_tmp4_);
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = _tmp7_;
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1158 "EventDirectoryItem.c"
+ goto __catch49_g_error;
+ }
+#line 107 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_set_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp1_);
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1165 "EventDirectoryItem.c"
+ }
+ goto __finally49;
+ __catch49_g_error:
+ {
+ GError* err = NULL;
+ Event* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ err = _inner_error_;
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _inner_error_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = self->event;
+#line 109 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp9_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_OBJECT, DataObject));
+#line 109 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp10_ = _tmp9_;
+#line 109 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp11_ = err;
+#line 109 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp12_ = _tmp11_->message;
+#line 109 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_critical ("EventDirectoryItem.vala:109: Unable to fetch preview for %s: %s", _tmp10_, _tmp12_);
+#line 109 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp10_);
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_error_free0 (err);
+#line 1196 "EventDirectoryItem.c"
+ }
+ __finally49:
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_clear_error (&_inner_error_);
+#line 106 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return;
+#line 1207 "EventDirectoryItem.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ event_directory_item_update_comment (self, FALSE);
+#line 114 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ CHECKERBOARD_ITEM_CLASS (event_directory_item_parent_class)->exposed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1213 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_real_unexposed (CheckerboardItem* base) {
+ EventDirectoryItem * self;
+ gboolean _tmp0_ = FALSE;
+ GdkRectangle _tmp1_ = {0};
+ Dimensions _tmp2_ = {0};
+#line 117 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 118 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = checkerboard_item_is_exposed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 118 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (!_tmp0_) {
+#line 119 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return;
+#line 1230 "EventDirectoryItem.c"
+ }
+#line 121 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = self->priv->paul_lynde;
+#line 121 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_for_rectangle (&_tmp1_, &_tmp2_);
+#line 121 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_clear_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), &_tmp2_);
+#line 123 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ CHECKERBOARD_ITEM_CLASS (event_directory_item_parent_class)->unexposed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1240 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_on_events_altered (EventDirectoryItem* self, GeeMap* map) {
+ GeeMap* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 126 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (IS_EVENT_DIRECTORY_ITEM (self));
+#line 126 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 127 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ event_directory_item_update_comment (self, FALSE);
+#line 128 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = map;
+#line 128 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = self->event;
+#line 128 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = gee_map_has_key (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 128 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp2_) {
+#line 1262 "EventDirectoryItem.c"
+ Event* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = self->event;
+#line 129 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = event_directory_item_get_formatted_title (_tmp3_);
+#line 129 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = _tmp4_;
+#line 129 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp5_, TRUE, PANGO_ALIGN_CENTER);
+#line 129 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp5_);
+#line 1276 "EventDirectoryItem.c"
+ }
+}
+
+
+static void event_directory_item_real_thumbnail_altered (ThumbnailView* base) {
+ EventDirectoryItem * self;
+ MediaSource* media = NULL;
+ Event* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ GdkRectangle _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 133 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = self->event;
+#line 133 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = event_get_primary_source (_tmp0_);
+#line 133 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ media = _tmp1_;
+#line 136 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = media;
+#line 136 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ event_directory_item_get_paul_lynde_rect (_tmp2_, &_tmp3_);
+#line 136 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self->priv->paul_lynde = _tmp3_;
+#line 138 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = checkerboard_item_is_exposed (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 138 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp4_) {
+#line 1308 "EventDirectoryItem.c"
+ {
+ GdkPixbuf* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ GdkRectangle _tmp7_ = {0};
+ GdkPixbuf* _tmp8_ = NULL;
+#line 140 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = media;
+#line 140 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = self->priv->paul_lynde;
+#line 140 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = event_directory_item_get_paul_lynde (_tmp6_, &_tmp7_, &_inner_error_);
+#line 140 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = _tmp8_;
+#line 140 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1324 "EventDirectoryItem.c"
+ goto __catch50_g_error;
+ }
+#line 140 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_set_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp5_);
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1331 "EventDirectoryItem.c"
+ }
+ goto __finally50;
+ __catch50_g_error:
+ {
+ GError* err = NULL;
+ Event* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GError* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ err = _inner_error_;
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _inner_error_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp9_ = self->event;
+#line 142 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp10_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DATA_OBJECT, DataObject));
+#line 142 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp11_ = _tmp10_;
+#line 142 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp12_ = err;
+#line 142 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp13_ = _tmp12_->message;
+#line 142 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_critical ("EventDirectoryItem.vala:142: Unable to fetch preview for %s: %s", _tmp11_, _tmp13_);
+#line 142 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (_tmp11_);
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_error_free0 (err);
+#line 1362 "EventDirectoryItem.c"
+ }
+ __finally50:
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (media);
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_clear_error (&_inner_error_);
+#line 139 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return;
+#line 1375 "EventDirectoryItem.c"
+ }
+ } else {
+ GdkRectangle _tmp14_ = {0};
+ Dimensions _tmp15_ = {0};
+#line 145 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp14_ = self->priv->paul_lynde;
+#line 145 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_for_rectangle (&_tmp14_, &_tmp15_);
+#line 145 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_clear_image (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), &_tmp15_);
+#line 1386 "EventDirectoryItem.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ THUMBNAIL_VIEW_CLASS (event_directory_item_parent_class)->thumbnail_altered (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), TYPE_THUMBNAIL_VIEW, ThumbnailView));
+#line 132 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (media);
+#line 1392 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_real_paint_shadow (CheckerboardItem* base, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha) {
+ EventDirectoryItem * self;
+ Dimensions altered = {0};
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ cairo_t* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ GdkPoint _tmp6_ = {0};
+ gfloat _tmp7_ = 0.0F;
+#line 151 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 151 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (ctx != NULL);
+#line 151 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (dimensions != NULL);
+#line 151 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (origin != NULL);
+#line 153 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = *dimensions;
+#line 153 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = _tmp0_.width;
+#line 153 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = *dimensions;
+#line 153 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = _tmp2_.height;
+#line 153 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_init (&altered, _tmp1_ - 25, _tmp3_ - 25);
+#line 154 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = ctx;
+#line 154 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = altered;
+#line 154 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = *origin;
+#line 154 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = initial_alpha;
+#line 154 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ CHECKERBOARD_ITEM_CLASS (event_directory_item_parent_class)->paint_shadow (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp4_, &_tmp5_, &_tmp6_, 36, _tmp7_);
+#line 1435 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_real_paint_border (CheckerboardItem* base, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width) {
+ EventDirectoryItem * self;
+ Dimensions dimensions = {0};
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ GdkPoint origin = {0};
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ cairo_t* _tmp6_ = NULL;
+ Dimensions _tmp7_ = {0};
+ GdkPoint _tmp8_ = {0};
+#line 157 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 157 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (ctx != NULL);
+#line 157 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (object_dimensions != NULL);
+#line 157 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (object_origin != NULL);
+#line 159 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = *object_dimensions;
+#line 159 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = border_width;
+#line 159 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_get_border_dimensions (&_tmp0_, _tmp1_, &_tmp2_);
+#line 159 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions = _tmp2_;
+#line 160 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = *object_origin;
+#line 160 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = border_width;
+#line 160 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_get_border_origin (&_tmp3_, _tmp4_, &_tmp5_);
+#line 160 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ origin = _tmp5_;
+#line 162 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = ctx;
+#line 162 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = dimensions;
+#line 162 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = origin;
+#line 162 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ draw_rounded_corners_filled (_tmp6_, &_tmp7_, &_tmp8_, 6.0);
+#line 1484 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_real_paint_image (CheckerboardItem* base, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin) {
+ EventDirectoryItem * self;
+ Dimensions dimensions = {0};
+ GdkPixbuf* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ cairo_t* _tmp7_ = NULL;
+ Dimensions _tmp8_ = {0};
+ GdkPoint _tmp9_ = {0};
+ cairo_t* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPoint _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ GdkPoint _tmp14_ = {0};
+ gint _tmp15_ = 0;
+ cairo_t* _tmp16_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 165 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (ctx != NULL);
+#line 165 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 165 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (origin != NULL);
+#line 167 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = pixbuf;
+#line 167 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_for_pixbuf (_tmp0_, &_tmp1_);
+#line 167 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions = _tmp1_;
+#line 169 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = pixbuf;
+#line 169 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = gdk_pixbuf_get_has_alpha (_tmp2_);
+#line 169 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp3_) {
+#line 1525 "EventDirectoryItem.c"
+ cairo_t* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ GdkPoint _tmp6_ = {0};
+#line 170 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = ctx;
+#line 170 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = dimensions;
+#line 170 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp6_ = *origin;
+#line 170 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ draw_rounded_corners_filled (_tmp4_, &_tmp5_, &_tmp6_, 6.0);
+#line 1537 "EventDirectoryItem.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp7_ = ctx;
+#line 173 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp8_ = dimensions;
+#line 173 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp9_ = *origin;
+#line 173 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ context_rounded_corners (_tmp7_, &_tmp8_, &_tmp9_, 6.0);
+#line 174 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp10_ = ctx;
+#line 174 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp11_ = pixbuf;
+#line 174 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp12_ = *origin;
+#line 174 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp13_ = _tmp12_.x;
+#line 174 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp14_ = *origin;
+#line 174 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp15_ = _tmp14_.y;
+#line 174 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ gdk_cairo_set_source_pixbuf (_tmp10_, _tmp11_, (gdouble) _tmp13_, (gdouble) _tmp15_);
+#line 175 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp16_ = ctx;
+#line 175 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ cairo_paint (_tmp16_);
+#line 1565 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_update_comment (EventDirectoryItem* self, gboolean init) {
+ gchar* comment = NULL;
+ Event* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 178 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_return_if_fail (IS_EVENT_DIRECTORY_ITEM (self));
+#line 179 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = self->event;
+#line 179 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT_SOURCE, EventSource));
+#line 179 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ comment = _tmp1_;
+#line 180 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = comment;
+#line 180 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 180 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (_tmp3_) {
+#line 181 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_clear_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem));
+#line 1591 "EventDirectoryItem.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 182 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp4_ = init;
+#line 182 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ if (!_tmp4_) {
+#line 1598 "EventDirectoryItem.c"
+ const gchar* _tmp5_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp5_ = comment;
+#line 183 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_set_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), _tmp5_, FALSE, PANGO_ALIGN_LEFT);
+#line 1604 "EventDirectoryItem.c"
+ } else {
+#line 185 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ checkerboard_item_set_comment (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_ITEM, CheckerboardItem), "", FALSE, PANGO_ALIGN_LEFT);
+#line 1608 "EventDirectoryItem.c"
+ }
+ }
+#line 178 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_free0 (comment);
+#line 1613 "EventDirectoryItem.c"
+}
+
+
+static gint event_directory_item_get_CROPPED_SCALE (void) {
+ gint result;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 10 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = thumbnail_cache_size_get_scale (THUMBNAIL_CACHE_SIZE_MEDIUM);
+#line 10 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = thumbnail_cache_size_get_scale (THUMBNAIL_CACHE_SIZE_BIG);
+#line 10 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = thumbnail_cache_size_get_scale (THUMBNAIL_CACHE_SIZE_MEDIUM);
+#line 10 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ result = _tmp0_ + ((_tmp1_ - _tmp2_) / 2);
+#line 10 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ return result;
+#line 1632 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_class_init (EventDirectoryItemClass * klass) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ Dimensions _tmp4_ = {0};
+ Scaling _tmp5_ = {0};
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ event_directory_item_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_type_class_add_private (klass, sizeof (EventDirectoryItemPrivate));
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ ((CheckerboardItemClass *) klass)->exposed = event_directory_item_real_exposed;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ ((CheckerboardItemClass *) klass)->unexposed = event_directory_item_real_unexposed;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ ((ThumbnailViewClass *) klass)->thumbnail_altered = event_directory_item_real_thumbnail_altered;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ ((CheckerboardItemClass *) klass)->paint_shadow = event_directory_item_real_paint_shadow;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ ((CheckerboardItemClass *) klass)->paint_border = event_directory_item_real_paint_border;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ ((CheckerboardItemClass *) klass)->paint_image = event_directory_item_real_paint_image;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_event_directory_item_get_property;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ G_OBJECT_CLASS (klass)->finalize = event_directory_item_finalize;
+#line 15 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = event_directory_item_get_CROPPED_SCALE ();
+#line 15 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp1_ = _tmp0_;
+#line 15 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp2_ = event_directory_item_get_CROPPED_SCALE ();
+#line 15 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp3_ = _tmp2_;
+#line 15 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ dimensions_init (&_tmp4_, _tmp1_, _tmp3_);
+#line 15 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ scaling_to_fill_viewport (&_tmp4_, &_tmp5_);
+#line 15 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ event_directory_item_squared_scaling = _tmp5_;
+#line 1677 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_instance_init (EventDirectoryItem * self) {
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self->priv = EVENT_DIRECTORY_ITEM_GET_PRIVATE (self);
+#line 20 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ memset (&self->priv->paul_lynde, 0, sizeof (GdkRectangle));
+#line 1686 "EventDirectoryItem.c"
+}
+
+
+static void event_directory_item_finalize (GObject* obj) {
+ EventDirectoryItem * self;
+ EventSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 39 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _tmp0_ = event_global;
+#line 39 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 39 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _event_directory_item_on_events_altered_data_collection_items_altered, self);
+#line 18 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ _g_object_unref0 (self->event);
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ G_OBJECT_CLASS (event_directory_item_parent_class)->finalize (obj);
+#line 1706 "EventDirectoryItem.c"
+}
+
+
+GType event_directory_item_get_type (void) {
+ static volatile gsize event_directory_item_type_id__volatile = 0;
+ if (g_once_init_enter (&event_directory_item_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventDirectoryItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_directory_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventDirectoryItem), 0, (GInstanceInitFunc) event_directory_item_instance_init, NULL };
+ GType event_directory_item_type_id;
+ event_directory_item_type_id = g_type_register_static (TYPE_CHECKERBOARD_ITEM, "EventDirectoryItem", &g_define_type_info, 0);
+ g_once_init_leave (&event_directory_item_type_id__volatile, event_directory_item_type_id);
+ }
+ return event_directory_item_type_id__volatile;
+}
+
+
+static void _vala_event_directory_item_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ EventDirectoryItem * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ switch (property_id) {
+#line 1727 "EventDirectoryItem.c"
+ default:
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 7 "/home/jens/Source/shotwell/src/events/EventDirectoryItem.vala"
+ break;
+#line 1733 "EventDirectoryItem.c"
+ }
+}
+
+
+
diff --git a/src/events/EventPage.c b/src/events/EventPage.c
new file mode 100644
index 0000000..afe2a26
--- /dev/null
+++ b/src/events/EventPage.c
@@ -0,0 +1,1967 @@
+/* EventPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from EventPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+
+#define TYPE_EVENT_PAGE (event_page_get_type ())
+#define EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_PAGE, EventPage))
+#define EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_PAGE, EventPageClass))
+#define IS_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_PAGE))
+#define IS_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_PAGE))
+#define EVENT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_PAGE, EventPageClass))
+
+typedef struct _EventPage EventPage;
+typedef struct _EventPageClass EventPageClass;
+typedef struct _EventPagePrivate EventPagePrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR (multi_text_entry_dialog_mediator_get_type ())
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediator))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+
+typedef struct _MultiTextEntryDialogMediator MultiTextEntryDialogMediator;
+typedef struct _MultiTextEntryDialogMediatorClass MultiTextEntryDialogMediatorClass;
+
+#define TYPE_EDIT_COMMENT_DIALOG (edit_comment_dialog_get_type ())
+#define EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialog))
+#define EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+#define IS_EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_COMMENT_DIALOG))
+#define IS_EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_COMMENT_DIALOG))
+#define EDIT_COMMENT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+
+typedef struct _EditCommentDialog EditCommentDialog;
+typedef struct _EditCommentDialogClass EditCommentDialogClass;
+#define _multi_text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (multi_text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SIMPLE_PROXYABLE_COMMAND (simple_proxyable_command_get_type ())
+#define SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand))
+#define SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+#define IS_SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define IS_SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define SIMPLE_PROXYABLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+
+typedef struct _SimpleProxyableCommand SimpleProxyableCommand;
+typedef struct _SimpleProxyableCommandClass SimpleProxyableCommandClass;
+
+#define TYPE_EDIT_EVENT_COMMENT_COMMAND (edit_event_comment_command_get_type ())
+#define EDIT_EVENT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommand))
+#define EDIT_EVENT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommandClass))
+#define IS_EDIT_EVENT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND))
+#define IS_EDIT_EVENT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_EVENT_COMMENT_COMMAND))
+#define EDIT_EVENT_COMMENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommandClass))
+
+typedef struct _EditEventCommentCommand EditEventCommentCommand;
+typedef struct _EditEventCommentCommandClass EditEventCommentCommandClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_NO_EVENT_PAGE (no_event_page_get_type ())
+#define NO_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NO_EVENT_PAGE, NoEventPage))
+#define NO_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NO_EVENT_PAGE, NoEventPageClass))
+#define IS_NO_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NO_EVENT_PAGE))
+#define IS_NO_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NO_EVENT_PAGE))
+#define NO_EVENT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NO_EVENT_PAGE, NoEventPageClass))
+
+typedef struct _NoEventPage NoEventPage;
+typedef struct _NoEventPageClass NoEventPageClass;
+typedef struct _NoEventPagePrivate NoEventPagePrivate;
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define TYPE_COLLECTION_VIEW_MANAGER (collection_view_manager_get_type ())
+#define COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager))
+#define COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+#define IS_COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_VIEW_MANAGER))
+#define IS_COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_VIEW_MANAGER))
+#define COLLECTION_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+
+typedef struct _CollectionViewManager CollectionViewManager;
+typedef struct _CollectionViewManagerClass CollectionViewManagerClass;
+
+#define NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER (no_event_page_no_event_view_manager_get_type ())
+#define NO_EVENT_PAGE_NO_EVENT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER, NoEventPageNoEventViewManager))
+#define NO_EVENT_PAGE_NO_EVENT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER, NoEventPageNoEventViewManagerClass))
+#define NO_EVENT_PAGE_IS_NO_EVENT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER))
+#define NO_EVENT_PAGE_IS_NO_EVENT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER))
+#define NO_EVENT_PAGE_NO_EVENT_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER, NoEventPageNoEventViewManagerClass))
+
+typedef struct _NoEventPageNoEventViewManager NoEventPageNoEventViewManager;
+typedef struct _NoEventPageNoEventViewManagerClass NoEventPageNoEventViewManagerClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+typedef struct _CollectionViewManagerPrivate CollectionViewManagerPrivate;
+typedef struct _NoEventPageNoEventViewManagerPrivate NoEventPageNoEventViewManagerPrivate;
+
+#define TYPE_EVENT_ID (event_id_get_type ())
+typedef struct _EventID EventID;
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _EventPage {
+ CollectionPage parent_instance;
+ EventPagePrivate * priv;
+};
+
+struct _EventPageClass {
+ CollectionPageClass parent_class;
+};
+
+struct _EventPagePrivate {
+ Event* page_event;
+};
+
+typedef DataView* (*CreateView) (DataSource* source, void* user_data);
+struct _NoEventPage {
+ CollectionPage parent_instance;
+ NoEventPagePrivate * priv;
+};
+
+struct _NoEventPageClass {
+ CollectionPageClass parent_class;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _CollectionViewManager {
+ ViewManager parent_instance;
+ CollectionViewManagerPrivate * priv;
+};
+
+struct _CollectionViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _NoEventPageNoEventViewManager {
+ CollectionViewManager parent_instance;
+ NoEventPageNoEventViewManagerPrivate * priv;
+};
+
+struct _NoEventPageNoEventViewManagerClass {
+ CollectionViewManagerClass parent_class;
+};
+
+struct _EventID {
+ gint64 id;
+};
+
+
+static gpointer event_page_parent_class = NULL;
+extern EventSourceCollection* event_global;
+static gpointer no_event_page_parent_class = NULL;
+static Alteration* no_event_page_no_event_page_alteration;
+static Alteration* no_event_page_no_event_page_alteration = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+static gpointer no_event_page_no_event_view_manager_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType event_page_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+#define EVENT_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EVENT_PAGE, EventPagePrivate))
+enum {
+ EVENT_PAGE_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void event_page_on_events_altered (EventPage* self, GeeMap* map);
+static void _event_page_on_events_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+void view_collection_halt_mirroring (ViewCollection* self);
+EventPage* event_page_new (Event* page_event);
+EventPage* event_page_construct (GType object_type, Event* page_event);
+gchar* data_object_get_name (DataObject* self);
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+void event_mirror_photos (Event* self, ViewCollection* view, CreateView mirroring_ctor, void* mirroring_ctor_target);
+DataView* media_page_create_thumbnail (MediaPage* self, DataSource* source);
+static DataView* _media_page_create_thumbnail_create_view (DataSource* source, gpointer self);
+void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path);
+Event* event_page_get_event (EventPage* self);
+static gboolean event_page_real_on_app_key_pressed (Page* base, GdkEventKey* event);
+gint view_collection_get_selected_count (ViewCollection* self);
+gboolean page_on_app_key_pressed (Page* self, GdkEventKey* event);
+static void event_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* event_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define RESOURCES_MAKE_PRIMARY "shotwell-make-primary"
+#define TRANSLATABLE "translatable"
+static void event_page_on_make_primary (EventPage* self);
+static void _event_page_on_make_primary_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_MAKE_KEY_PHOTO_MENU _ ("Make _Key Photo for Event")
+static void _vala_array_add130 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void event_page_on_rename (EventPage* self);
+static void _event_page_on_rename_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_RENAME_EVENT_MENU _ ("Re_name Event...")
+static void _vala_array_add131 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_EDIT_EVENT_COMMENT_MENU _ ("Edit Event _Comment...")
+void media_page_on_edit_comment (MediaPage* self);
+static void _media_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add132 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void event_page_real_init_actions (Page* base, gint selected_count, gint count);
+void page_init_actions (Page* self, gint selected_count, gint count);
+static void event_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void page_set_action_visible (Page* self, const gchar* name, gboolean visible);
+void page_update_actions (Page* self, gint selected_count, gint count);
+static void event_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_get_event_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void event_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+void configuration_facade_set_event_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+void page_set_page_name (Page* self, const gchar* page_name);
+static void event_page_real_on_edit_comment (MediaPage* base);
+gpointer multi_text_entry_dialog_mediator_ref (gpointer instance);
+void multi_text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_multi_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_multi_text_entry_dialog_mediator (const GValue* value);
+GType multi_text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType edit_comment_dialog_get_type (void) G_GNUC_CONST;
+gchar* event_source_get_comment (EventSource* self);
+EditCommentDialog* edit_comment_dialog_new (const gchar* comment, gboolean is_event);
+EditCommentDialog* edit_comment_dialog_construct (GType object_type, const gchar* comment, gboolean is_event);
+gchar* edit_comment_dialog_execute (EditCommentDialog* self);
+GType command_get_type (void) G_GNUC_CONST;
+GType page_command_get_type (void) G_GNUC_CONST;
+GType simple_proxyable_command_get_type (void) G_GNUC_CONST;
+GType edit_event_comment_command_get_type (void) G_GNUC_CONST;
+EditEventCommentCommand* edit_event_comment_command_new (Event* event, const gchar* new_comment);
+EditEventCommentCommand* edit_event_comment_command_construct (GType object_type, Event* event, const gchar* new_comment);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+void command_manager_execute (CommandManager* self, Command* command);
+GType media_source_get_type (void) G_GNUC_CONST;
+gboolean event_set_primary_source (Event* self, MediaSource* source);
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+DataSource* data_view_get_source (DataView* self);
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_rename_event_in_sidebar (LibraryWindow* self, Event* event);
+static void event_page_finalize (GObject* obj);
+GType no_event_page_get_type (void) G_GNUC_CONST;
+enum {
+ NO_EVENT_PAGE_DUMMY_PROPERTY
+};
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+#define NO_EVENT_PAGE_NAME _ ("No Event")
+NoEventPage* no_event_page_new (void);
+NoEventPage* no_event_page_construct (GType object_type);
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+static NoEventPageNoEventViewManager* no_event_page_no_event_view_manager_new (NoEventPage* page);
+static NoEventPageNoEventViewManager* no_event_page_no_event_view_manager_construct (GType object_type, NoEventPage* page);
+GType collection_view_manager_get_type (void) G_GNUC_CONST;
+static GType no_event_page_no_event_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+static void no_event_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+static void no_event_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+enum {
+ NO_EVENT_PAGE_NO_EVENT_VIEW_MANAGER_DUMMY_PROPERTY
+};
+CollectionViewManager* collection_view_manager_new (CollectionPage* page);
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page);
+static gboolean no_event_page_no_event_view_manager_real_include_in_view (ViewManager* base, DataSource* source);
+GType event_id_get_type (void) G_GNUC_CONST;
+EventID* event_id_dup (const EventID* self);
+void event_id_free (EventID* self);
+void media_source_get_event_id (MediaSource* self, EventID* result);
+#define EVENT_ID_INVALID ((gint64) -1)
+gboolean view_manager_include_in_view (ViewManager* self, DataSource* source);
+static void no_event_page_finalize (GObject* obj);
+
+
+static void _event_page_on_events_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 40 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ event_page_on_events_altered ((EventPage*) self, items);
+#line 948 "EventPage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 13 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 955 "EventPage.c"
+}
+
+
+static DataView* _media_page_create_thumbnail_create_view (DataSource* source, gpointer self) {
+ DataView* result;
+ result = media_page_create_thumbnail ((MediaPage*) self, source);
+#line 14 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return result;
+#line 964 "EventPage.c"
+}
+
+
+EventPage* event_page_construct (GType object_type, Event* page_event) {
+ EventPage * self = NULL;
+ Event* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ Event* _tmp3_ = NULL;
+ Event* _tmp4_ = NULL;
+ Event* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ EventSourceCollection* _tmp8_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_val_if_fail (IS_EVENT (page_event), NULL);
+#line 11 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = page_event;
+#line 11 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 11 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = _tmp1_;
+#line 11 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = (EventPage*) collection_page_construct (object_type, _tmp2_);
+#line 11 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_free0 (_tmp2_);
+#line 13 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = page_event;
+#line 13 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 13 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (self->priv->page_event);
+#line 13 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self->priv->page_event = _tmp4_;
+#line 14 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_ = page_event;
+#line 14 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 14 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp7_ = _tmp6_;
+#line 14 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ event_mirror_photos (_tmp5_, _tmp7_, _media_page_create_thumbnail_create_view, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage));
+#line 14 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 16 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ checkerboard_page_init_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/EventContextMenu");
+#line 18 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_ = event_global;
+#line 18 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _event_page_on_events_altered_data_collection_items_altered, self, 0);
+#line 10 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return self;
+#line 1017 "EventPage.c"
+}
+
+
+EventPage* event_page_new (Event* page_event) {
+#line 10 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return event_page_construct (TYPE_EVENT_PAGE, page_event);
+#line 1024 "EventPage.c"
+}
+
+
+Event* event_page_get_event (EventPage* self) {
+ Event* result = NULL;
+ Event* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_val_if_fail (IS_EVENT_PAGE (self), NULL);
+#line 22 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = self->priv->page_event;
+#line 22 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 22 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ result = _tmp1_;
+#line 22 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return result;
+#line 1042 "EventPage.c"
+}
+
+
+static gboolean event_page_real_on_app_key_pressed (Page* base, GdkEventKey* event) {
+ EventPage * self;
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ GdkEventKey* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 25 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 25 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 30 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = event;
+#line 30 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 30 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 30 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (g_strcmp0 (_tmp2_, "F2") == 0) {
+#line 1066 "EventPage.c"
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 31 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = _tmp3_;
+#line 31 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_ = view_collection_get_selected_count (_tmp4_);
+#line 31 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp6_ = _tmp5_ != 1;
+#line 31 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp4_);
+#line 31 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (_tmp6_) {
+#line 32 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ result = TRUE;
+#line 32 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return result;
+#line 1087 "EventPage.c"
+ }
+ }
+#line 36 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp7_ = event;
+#line 36 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_ = PAGE_CLASS (event_page_parent_class)->on_app_key_pressed (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp7_);
+#line 36 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ result = _tmp8_;
+#line 36 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return result;
+#line 1098 "EventPage.c"
+}
+
+
+static void event_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ EventPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 44 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 45 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = ui_filenames;
+#line 45 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ PAGE_CLASS (event_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp0_);
+#line 47 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = ui_filenames;
+#line 47 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "event.ui");
+#line 1118 "EventPage.c"
+}
+
+
+static void _event_page_on_make_primary_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ event_page_on_make_primary ((EventPage*) self);
+#line 1125 "EventPage.c"
+}
+
+
+static void _vala_array_add130 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if ((*length) == (*size)) {
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1136 "EventPage.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1140 "EventPage.c"
+}
+
+
+static void _event_page_on_rename_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ event_page_on_rename ((EventPage*) self);
+#line 1147 "EventPage.c"
+}
+
+
+static void _vala_array_add131 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if ((*length) == (*size)) {
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1158 "EventPage.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1162 "EventPage.c"
+}
+
+
+static void _media_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ media_page_on_edit_comment ((MediaPage*) self);
+#line 1169 "EventPage.c"
+}
+
+
+static void _vala_array_add132 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if ((*length) == (*size)) {
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1180 "EventPage.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1184 "EventPage.c"
+}
+
+
+static GtkActionEntry* event_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ EventPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* new_actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint new_actions_length1 = 0;
+ gint _new_actions_size_ = 0;
+ GtkActionEntry make_primary = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry rename = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry comment = {0};
+ GtkActionEntry _tmp8_ = {0};
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 50 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 51 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = PAGE_CLASS (event_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), &_tmp0_);
+#line 51 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ new_actions = _tmp1_;
+#line 51 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ new_actions_length1 = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _new_actions_size_ = new_actions_length1;
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_.name = "MakePrimary";
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_.stock_id = RESOURCES_MAKE_PRIMARY;
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_.accelerator = NULL;
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_.callback = (GCallback) _event_page_on_make_primary_gtk_action_callback;
+#line 53 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ make_primary = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ make_primary.label = RESOURCES_MAKE_KEY_PHOTO_MENU;
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = new_actions;
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3__length1 = new_actions_length1;
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = make_primary;
+#line 56 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _vala_array_add130 (&new_actions, &new_actions_length1, &_new_actions_size_, &_tmp4_);
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_.name = "Rename";
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_.accelerator = NULL;
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_.callback = (GCallback) _event_page_on_rename_gtk_action_callback;
+#line 58 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ rename = _tmp5_;
+#line 59 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ rename.label = RESOURCES_RENAME_EVENT_MENU;
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp6_ = new_actions;
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp6__length1 = new_actions_length1;
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp7_ = rename;
+#line 60 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _vala_array_add131 (&new_actions, &new_actions_length1, &_new_actions_size_, &_tmp7_);
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_.name = "EditEventComment";
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_.stock_id = NULL;
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_.accelerator = NULL;
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_.tooltip = RESOURCES_EDIT_EVENT_COMMENT_MENU;
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_.callback = (GCallback) _media_page_on_edit_comment_gtk_action_callback;
+#line 62 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ comment = _tmp8_;
+#line 64 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ comment.label = RESOURCES_EDIT_EVENT_COMMENT_MENU;
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp9_ = new_actions;
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp9__length1 = new_actions_length1;
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp10_ = comment;
+#line 65 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _vala_array_add132 (&new_actions, &new_actions_length1, &_new_actions_size_, &_tmp10_);
+#line 67 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp11_ = new_actions;
+#line 67 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp11__length1 = new_actions_length1;
+#line 67 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (result_length1) {
+#line 67 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *result_length1 = _tmp11__length1;
+#line 1303 "EventPage.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ result = _tmp11_;
+#line 67 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return result;
+#line 1309 "EventPage.c"
+}
+
+
+static void event_page_real_init_actions (Page* base, gint selected_count, gint count) {
+ EventPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 70 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 71 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = selected_count;
+#line 71 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = count;
+#line 71 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ PAGE_CLASS (event_page_parent_class)->init_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp0_, _tmp1_);
+#line 1325 "EventPage.c"
+}
+
+
+static void event_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ EventPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 74 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 75 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = selected_count;
+#line 75 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "MakePrimary", _tmp0_ == 1);
+#line 78 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ page_set_action_visible (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonJumpToEvent", FALSE);
+#line 80 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = selected_count;
+#line 80 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = count;
+#line 80 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ PAGE_CLASS (event_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp1_, _tmp2_);
+#line 84 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "EditEventComment", TRUE);
+#line 1350 "EventPage.c"
+}
+
+
+static void event_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ EventPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 87 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 88 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 88 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_;
+#line 88 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ configuration_facade_get_event_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 88 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _vala_sort_order = _tmp2_;
+#line 88 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _vala_sort_by = _tmp3_;
+#line 88 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 87 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (sort_order) {
+#line 87 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *sort_order = _vala_sort_order;
+#line 1380 "EventPage.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (sort_by) {
+#line 87 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *sort_by = _vala_sort_by;
+#line 1386 "EventPage.c"
+ }
+}
+
+
+static void event_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ EventPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 91 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 92 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 92 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_;
+#line 92 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = sort_order;
+#line 92 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = sort_by;
+#line 92 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ configuration_facade_set_event_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 92 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1411 "EventPage.c"
+}
+
+
+static void event_page_on_events_altered (EventPage* self, GeeMap* map) {
+ GeeMap* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 95 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_if_fail (IS_EVENT_PAGE (self));
+#line 95 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 96 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = map;
+#line 96 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = self->priv->page_event;
+#line 96 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = gee_map_has_key (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 96 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (_tmp2_) {
+#line 1431 "EventPage.c"
+ Event* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = self->priv->page_event;
+#line 97 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 97 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_ = _tmp4_;
+#line 97 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ page_set_page_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp5_);
+#line 97 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_free0 (_tmp5_);
+#line 1445 "EventPage.c"
+ }
+}
+
+
+static void event_page_real_on_edit_comment (MediaPage* base) {
+ EventPage * self;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 100 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_PAGE, EventPage);
+#line 101 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 101 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_;
+#line 101 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 101 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 101 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 101 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (_tmp3_) {
+#line 1470 "EventPage.c"
+ EditCommentDialog* edit_comment_dialog = NULL;
+ Event* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ EditCommentDialog* _tmp7_ = NULL;
+ EditCommentDialog* _tmp8_ = NULL;
+ gchar* new_comment = NULL;
+ EditCommentDialog* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ EditEventCommentCommand* command = NULL;
+ Event* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ EditEventCommentCommand* _tmp14_ = NULL;
+ CommandManager* _tmp15_ = NULL;
+ CommandManager* _tmp16_ = NULL;
+ EditEventCommentCommand* _tmp17_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = self->priv->page_event;
+#line 102 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_EVENT_SOURCE, EventSource));
+#line 102 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp6_ = _tmp5_;
+#line 102 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp7_ = edit_comment_dialog_new (_tmp6_, TRUE);
+#line 102 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_ = _tmp7_;
+#line 102 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_free0 (_tmp6_);
+#line 102 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ edit_comment_dialog = _tmp8_;
+#line 104 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp9_ = edit_comment_dialog;
+#line 104 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp10_ = edit_comment_dialog_execute (_tmp9_);
+#line 104 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ new_comment = _tmp10_;
+#line 105 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp11_ = new_comment;
+#line 105 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (_tmp11_ == NULL) {
+#line 106 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_free0 (new_comment);
+#line 106 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _multi_text_entry_dialog_mediator_unref0 (edit_comment_dialog);
+#line 106 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return;
+#line 1518 "EventPage.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp12_ = self->priv->page_event;
+#line 108 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp13_ = new_comment;
+#line 108 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp14_ = edit_event_comment_command_new (_tmp12_, _tmp13_);
+#line 108 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ command = _tmp14_;
+#line 109 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp15_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 109 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp16_ = _tmp15_;
+#line 109 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp17_ = command;
+#line 109 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ command_manager_execute (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_COMMAND, Command));
+#line 109 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _command_manager_unref0 (_tmp16_);
+#line 110 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (command);
+#line 110 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_free0 (new_comment);
+#line 110 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _multi_text_entry_dialog_mediator_unref0 (edit_comment_dialog);
+#line 110 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return;
+#line 1546 "EventPage.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ MEDIA_PAGE_CLASS (event_page_parent_class)->on_edit_comment (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_MEDIA_PAGE, MediaPage));
+#line 1550 "EventPage.c"
+}
+
+
+static void event_page_on_make_primary (EventPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ Event* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ DataView* _tmp7_ = NULL;
+ DataView* _tmp8_ = NULL;
+ DataSource* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_if_fail (IS_EVENT_PAGE (self));
+#line 117 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 117 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_;
+#line 117 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 117 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 117 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 117 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (_tmp3_) {
+#line 118 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return;
+#line 1582 "EventPage.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = self->priv->page_event;
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp6_ = _tmp5_;
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp7_ = view_collection_get_selected_at (_tmp6_, 0);
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_ = _tmp7_;
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp9_ = data_view_get_source (_tmp8_);
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ event_set_primary_source (_tmp4_, _tmp10_);
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 120 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 1606 "EventPage.c"
+}
+
+
+static void event_page_on_rename (EventPage* self) {
+ LibraryWindow* _tmp0_ = NULL;
+ LibraryWindow* _tmp1_ = NULL;
+ Event* _tmp2_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_if_fail (IS_EVENT_PAGE (self));
+#line 124 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = library_window_get_app ();
+#line 124 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_;
+#line 124 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = self->priv->page_event;
+#line 124 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ library_window_rename_event_in_sidebar (_tmp1_, _tmp2_);
+#line 124 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1626 "EventPage.c"
+}
+
+
+static void event_page_class_init (EventPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ event_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_type_class_add_private (klass, sizeof (EventPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((PageClass *) klass)->on_app_key_pressed = event_page_real_on_app_key_pressed;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = event_page_real_init_collect_ui_filenames;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = event_page_real_init_collect_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((PageClass *) klass)->init_actions = event_page_real_init_actions;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((PageClass *) klass)->update_actions = event_page_real_update_actions;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = event_page_real_get_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = event_page_real_set_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((MediaPageClass *) klass)->on_edit_comment = event_page_real_on_edit_comment;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = event_page_finalize;
+#line 1653 "EventPage.c"
+}
+
+
+static void event_page_instance_init (EventPage * self) {
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self->priv = EVENT_PAGE_GET_PRIVATE (self);
+#line 1660 "EventPage.c"
+}
+
+
+static void event_page_finalize (GObject* obj) {
+ EventPage * self;
+ EventSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENT_PAGE, EventPage);
+#line 40 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = event_global;
+#line 40 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 40 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _event_page_on_events_altered_data_collection_items_altered, self);
+#line 41 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 41 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = _tmp2_;
+#line 41 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ view_collection_halt_mirroring (_tmp3_);
+#line 41 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 8 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (self->priv->page_event);
+#line 7 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ G_OBJECT_CLASS (event_page_parent_class)->finalize (obj);
+#line 1690 "EventPage.c"
+}
+
+
+GType event_page_get_type (void) {
+ static volatile gsize event_page_type_id__volatile = 0;
+ if (g_once_init_enter (&event_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventPage), 0, (GInstanceInitFunc) event_page_instance_init, NULL };
+ GType event_page_type_id;
+ event_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "EventPage", &g_define_type_info, 0);
+ g_once_init_leave (&event_page_type_id__volatile, event_page_type_id);
+ }
+ return event_page_type_id__volatile;
+}
+
+
+NoEventPage* no_event_page_construct (GType object_type) {
+ NoEventPage * self = NULL;
+ ViewManager* filter = NULL;
+ NoEventPageNoEventViewManager* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ Alteration* _tmp4_ = NULL;
+ ViewCollectionMonitor* _tmp5_ = NULL;
+ ViewCollectionMonitor* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ VideoSourceCollection* _tmp9_ = NULL;
+ Alteration* _tmp10_ = NULL;
+ ViewCollectionMonitor* _tmp11_ = NULL;
+ ViewCollectionMonitor* _tmp12_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = (NoEventPage*) collection_page_construct (object_type, NO_EVENT_PAGE_NAME);
+#line 149 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = no_event_page_no_event_view_manager_new (self);
+#line 149 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ filter = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIEW_MANAGER, ViewManager);
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = _tmp1_;
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = library_photo_global;
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = no_event_page_no_event_page_alteration;
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_ = view_collection_monitor_source_collection (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_SOURCE_COLLECTION, SourceCollection), filter, _tmp4_, NULL, NULL, NULL);
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp6_ = _tmp5_;
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _view_collection_monitor_unref0 (_tmp6_);
+#line 150 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp8_ = _tmp7_;
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp9_ = video_global;
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp10_ = no_event_page_no_event_page_alteration;
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp11_ = view_collection_monitor_source_collection (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_SOURCE_COLLECTION, SourceCollection), filter, _tmp10_, NULL, NULL, NULL);
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp12_ = _tmp11_;
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _view_collection_monitor_unref0 (_tmp12_);
+#line 151 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 146 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _view_manager_unref0 (filter);
+#line 146 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return self;
+#line 1764 "EventPage.c"
+}
+
+
+NoEventPage* no_event_page_new (void) {
+#line 146 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return no_event_page_construct (TYPE_NO_EVENT_PAGE);
+#line 1771 "EventPage.c"
+}
+
+
+static void no_event_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ NoEventPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 154 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NO_EVENT_PAGE, NoEventPage);
+#line 155 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 155 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_;
+#line 155 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ configuration_facade_get_event_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 155 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _vala_sort_order = _tmp2_;
+#line 155 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _vala_sort_by = _tmp3_;
+#line 155 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 154 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (sort_order) {
+#line 154 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *sort_order = _vala_sort_order;
+#line 1801 "EventPage.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (sort_by) {
+#line 154 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ *sort_by = _vala_sort_by;
+#line 1807 "EventPage.c"
+ }
+}
+
+
+static void no_event_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ NoEventPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 158 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NO_EVENT_PAGE, NoEventPage);
+#line 159 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 159 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = _tmp0_;
+#line 159 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp2_ = sort_order;
+#line 159 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = sort_by;
+#line 159 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ configuration_facade_set_event_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 159 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1832 "EventPage.c"
+}
+
+
+static NoEventPageNoEventViewManager* no_event_page_no_event_view_manager_construct (GType object_type, NoEventPage* page) {
+ NoEventPageNoEventViewManager* self = NULL;
+ NoEventPage* _tmp0_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_val_if_fail (IS_NO_EVENT_PAGE (page), NULL);
+#line 134 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = page;
+#line 134 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = (NoEventPageNoEventViewManager*) collection_view_manager_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_COLLECTION_PAGE, CollectionPage));
+#line 133 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return self;
+#line 1847 "EventPage.c"
+}
+
+
+static NoEventPageNoEventViewManager* no_event_page_no_event_view_manager_new (NoEventPage* page) {
+#line 133 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return no_event_page_no_event_view_manager_construct (NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER, page);
+#line 1854 "EventPage.c"
+}
+
+
+static gboolean no_event_page_no_event_view_manager_real_include_in_view (ViewManager* base, DataSource* source) {
+ NoEventPageNoEventViewManager * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ DataSource* _tmp1_ = NULL;
+ EventID _tmp2_ = {0};
+ gint64 _tmp3_ = 0LL;
+#line 138 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, NO_EVENT_PAGE_TYPE_NO_EVENT_VIEW_MANAGER, NoEventPageNoEventViewManager);
+#line 138 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 139 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp1_ = source;
+#line 139 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ media_source_get_event_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource), &_tmp2_);
+#line 139 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp3_ = _tmp2_.id;
+#line 139 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ if (_tmp3_ != EVENT_ID_INVALID) {
+#line 139 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = FALSE;
+#line 1879 "EventPage.c"
+ } else {
+ DataSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 140 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp4_ = source;
+#line 140 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp5_ = VIEW_MANAGER_CLASS (no_event_page_no_event_view_manager_parent_class)->include_in_view (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager), TYPE_VIEW_MANAGER, ViewManager), _tmp4_);
+#line 140 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = _tmp5_;
+#line 1889 "EventPage.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ result = _tmp0_;
+#line 139 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ return result;
+#line 1895 "EventPage.c"
+}
+
+
+static void no_event_page_no_event_view_manager_class_init (NoEventPageNoEventViewManagerClass * klass) {
+#line 132 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ no_event_page_no_event_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 132 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((ViewManagerClass *) klass)->include_in_view = no_event_page_no_event_view_manager_real_include_in_view;
+#line 1904 "EventPage.c"
+}
+
+
+static void no_event_page_no_event_view_manager_instance_init (NoEventPageNoEventViewManager * self) {
+}
+
+
+static GType no_event_page_no_event_view_manager_get_type (void) {
+ static volatile gsize no_event_page_no_event_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&no_event_page_no_event_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NoEventPageNoEventViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) no_event_page_no_event_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NoEventPageNoEventViewManager), 0, (GInstanceInitFunc) no_event_page_no_event_view_manager_instance_init, NULL };
+ GType no_event_page_no_event_view_manager_type_id;
+ no_event_page_no_event_view_manager_type_id = g_type_register_static (TYPE_COLLECTION_VIEW_MANAGER, "NoEventPageNoEventViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&no_event_page_no_event_view_manager_type_id__volatile, no_event_page_no_event_view_manager_type_id);
+ }
+ return no_event_page_no_event_view_manager_type_id__volatile;
+}
+
+
+static void no_event_page_class_init (NoEventPageClass * klass) {
+ Alteration* _tmp0_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ no_event_page_parent_class = g_type_class_peek_parent (klass);
+#line 128 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = no_event_page_real_get_config_photos_sort;
+#line 128 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = no_event_page_real_set_config_photos_sort;
+#line 128 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = no_event_page_finalize;
+#line 144 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ _tmp0_ = alteration_new ("metadata", "event");
+#line 144 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ no_event_page_no_event_page_alteration = _tmp0_;
+#line 1938 "EventPage.c"
+}
+
+
+static void no_event_page_instance_init (NoEventPage * self) {
+}
+
+
+static void no_event_page_finalize (GObject* obj) {
+ NoEventPage * self;
+#line 128 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NO_EVENT_PAGE, NoEventPage);
+#line 128 "/home/jens/Source/shotwell/src/events/EventPage.vala"
+ G_OBJECT_CLASS (no_event_page_parent_class)->finalize (obj);
+#line 1952 "EventPage.c"
+}
+
+
+GType no_event_page_get_type (void) {
+ static volatile gsize no_event_page_type_id__volatile = 0;
+ if (g_once_init_enter (&no_event_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NoEventPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) no_event_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NoEventPage), 0, (GInstanceInitFunc) no_event_page_instance_init, NULL };
+ GType no_event_page_type_id;
+ no_event_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "NoEventPage", &g_define_type_info, 0);
+ g_once_init_leave (&no_event_page_type_id__volatile, no_event_page_type_id);
+ }
+ return no_event_page_type_id__volatile;
+}
+
+
+
diff --git a/src/events/Events.c b/src/events/Events.c
new file mode 100644
index 0000000..d99ab32
--- /dev/null
+++ b/src/events/Events.c
@@ -0,0 +1,36 @@
+/* Events.c generated by valac 0.32.1, the Vala compiler
+ * generated from Events.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void events_init (GError** error);
+void events_branch_init (void);
+void events_terminate (void);
+void events_branch_terminate (void);
+
+
+void events_init (GError** error) {
+#line 10 "/home/jens/Source/shotwell/src/events/Events.vala"
+ events_branch_init ();
+#line 26 "Events.c"
+}
+
+
+void events_terminate (void) {
+#line 14 "/home/jens/Source/shotwell/src/events/Events.vala"
+ events_branch_terminate ();
+#line 33 "Events.c"
+}
+
+
+
diff --git a/src/events/EventsDirectoryPage.c b/src/events/EventsDirectoryPage.c
new file mode 100644
index 0000000..6e24584
--- /dev/null
+++ b/src/events/EventsDirectoryPage.c
@@ -0,0 +1,3248 @@
+/* EventsDirectoryPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from EventsDirectoryPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <time.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_EVENTS_DIRECTORY_PAGE (events_directory_page_get_type ())
+#define EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage))
+#define EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+#define IS_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENTS_DIRECTORY_PAGE))
+#define IS_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENTS_DIRECTORY_PAGE))
+#define EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+
+typedef struct _EventsDirectoryPage EventsDirectoryPage;
+typedef struct _EventsDirectoryPageClass EventsDirectoryPageClass;
+typedef struct _EventsDirectoryPagePrivate EventsDirectoryPagePrivate;
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER (events_directory_page_events_directory_search_view_filter_get_type ())
+#define EVENTS_DIRECTORY_PAGE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER, EventsDirectoryPageEventsDirectorySearchViewFilter))
+#define EVENTS_DIRECTORY_PAGE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER, EventsDirectoryPageEventsDirectorySearchViewFilterClass))
+#define EVENTS_DIRECTORY_PAGE_IS_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER))
+#define EVENTS_DIRECTORY_PAGE_IS_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER))
+#define EVENTS_DIRECTORY_PAGE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER, EventsDirectoryPageEventsDirectorySearchViewFilterClass))
+
+typedef struct _EventsDirectoryPageEventsDirectorySearchViewFilter EventsDirectoryPageEventsDirectorySearchViewFilter;
+typedef struct _EventsDirectoryPageEventsDirectorySearchViewFilterClass EventsDirectoryPageEventsDirectorySearchViewFilterClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_EVENT_SOURCE_COLLECTION (event_source_collection_get_type ())
+#define EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollection))
+#define EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+#define IS_EVENT_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE_COLLECTION))
+#define IS_EVENT_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE_COLLECTION))
+#define EVENT_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE_COLLECTION, EventSourceCollectionClass))
+
+typedef struct _EventSourceCollection EventSourceCollection;
+typedef struct _EventSourceCollectionClass EventSourceCollectionClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+
+#define TYPE_EVENT_DIRECTORY_ITEM (event_directory_item_get_type ())
+#define EVENT_DIRECTORY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem))
+#define EVENT_DIRECTORY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItemClass))
+#define IS_EVENT_DIRECTORY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_DIRECTORY_ITEM))
+#define IS_EVENT_DIRECTORY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_DIRECTORY_ITEM))
+#define EVENT_DIRECTORY_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItemClass))
+
+typedef struct _EventDirectoryItem EventDirectoryItem;
+typedef struct _EventDirectoryItemClass EventDirectoryItemClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+typedef struct _DataViewPrivate DataViewPrivate;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _EventDirectoryItemPrivate EventDirectoryItemPrivate;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_TEXT_ENTRY_DIALOG_MEDIATOR (text_entry_dialog_mediator_get_type ())
+#define TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+
+typedef struct _TextEntryDialogMediator TextEntryDialogMediator;
+typedef struct _TextEntryDialogMediatorClass TextEntryDialogMediatorClass;
+
+#define TYPE_EVENT_RENAME_DIALOG (event_rename_dialog_get_type ())
+#define EVENT_RENAME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_RENAME_DIALOG, EventRenameDialog))
+#define EVENT_RENAME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_RENAME_DIALOG, EventRenameDialogClass))
+#define IS_EVENT_RENAME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_RENAME_DIALOG))
+#define IS_EVENT_RENAME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_RENAME_DIALOG))
+#define EVENT_RENAME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_RENAME_DIALOG, EventRenameDialogClass))
+
+typedef struct _EventRenameDialog EventRenameDialog;
+typedef struct _EventRenameDialogClass EventRenameDialogClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SIMPLE_PROXYABLE_COMMAND (simple_proxyable_command_get_type ())
+#define SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand))
+#define SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+#define IS_SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define IS_SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define SIMPLE_PROXYABLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+
+typedef struct _SimpleProxyableCommand SimpleProxyableCommand;
+typedef struct _SimpleProxyableCommandClass SimpleProxyableCommandClass;
+
+#define TYPE_RENAME_EVENT_COMMAND (rename_event_command_get_type ())
+#define RENAME_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RENAME_EVENT_COMMAND, RenameEventCommand))
+#define RENAME_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RENAME_EVENT_COMMAND, RenameEventCommandClass))
+#define IS_RENAME_EVENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RENAME_EVENT_COMMAND))
+#define IS_RENAME_EVENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RENAME_EVENT_COMMAND))
+#define RENAME_EVENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RENAME_EVENT_COMMAND, RenameEventCommandClass))
+
+typedef struct _RenameEventCommand RenameEventCommand;
+typedef struct _RenameEventCommandClass RenameEventCommandClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR (multi_text_entry_dialog_mediator_get_type ())
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediator))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define MULTI_TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_TEXT_ENTRY_DIALOG_MEDIATOR, MultiTextEntryDialogMediatorClass))
+
+typedef struct _MultiTextEntryDialogMediator MultiTextEntryDialogMediator;
+typedef struct _MultiTextEntryDialogMediatorClass MultiTextEntryDialogMediatorClass;
+
+#define TYPE_EDIT_COMMENT_DIALOG (edit_comment_dialog_get_type ())
+#define EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialog))
+#define EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+#define IS_EDIT_COMMENT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_COMMENT_DIALOG))
+#define IS_EDIT_COMMENT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_COMMENT_DIALOG))
+#define EDIT_COMMENT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_COMMENT_DIALOG, EditCommentDialogClass))
+
+typedef struct _EditCommentDialog EditCommentDialog;
+typedef struct _EditCommentDialogClass EditCommentDialogClass;
+#define _multi_text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (multi_text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_EDIT_EVENT_COMMENT_COMMAND (edit_event_comment_command_get_type ())
+#define EDIT_EVENT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommand))
+#define EDIT_EVENT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommandClass))
+#define IS_EDIT_EVENT_COMMENT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND))
+#define IS_EDIT_EVENT_COMMENT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDIT_EVENT_COMMENT_COMMAND))
+#define EDIT_EVENT_COMMENT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDIT_EVENT_COMMENT_COMMAND, EditEventCommentCommandClass))
+
+typedef struct _EditEventCommentCommand EditEventCommentCommand;
+typedef struct _EditEventCommentCommandClass EditEventCommentCommandClass;
+
+#define TYPE_MOVE_PHOTOS_COMMAND (move_photos_command_get_type ())
+#define MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommand))
+#define MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+#define IS_MOVE_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOVE_PHOTOS_COMMAND))
+#define IS_MOVE_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOVE_PHOTOS_COMMAND))
+#define MOVE_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOVE_PHOTOS_COMMAND, MovePhotosCommandClass))
+
+typedef struct _MovePhotosCommand MovePhotosCommand;
+typedef struct _MovePhotosCommandClass MovePhotosCommandClass;
+
+#define TYPE_MERGE_EVENTS_COMMAND (merge_events_command_get_type ())
+#define MERGE_EVENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MERGE_EVENTS_COMMAND, MergeEventsCommand))
+#define MERGE_EVENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MERGE_EVENTS_COMMAND, MergeEventsCommandClass))
+#define IS_MERGE_EVENTS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MERGE_EVENTS_COMMAND))
+#define IS_MERGE_EVENTS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MERGE_EVENTS_COMMAND))
+#define MERGE_EVENTS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MERGE_EVENTS_COMMAND, MergeEventsCommandClass))
+
+typedef struct _MergeEventsCommand MergeEventsCommand;
+typedef struct _MergeEventsCommandClass MergeEventsCommandClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+
+#define EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER (events_directory_page_event_directory_manager_get_type ())
+#define EVENTS_DIRECTORY_PAGE_EVENT_DIRECTORY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER, EventsDirectoryPageEventDirectoryManager))
+#define EVENTS_DIRECTORY_PAGE_EVENT_DIRECTORY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER, EventsDirectoryPageEventDirectoryManagerClass))
+#define EVENTS_DIRECTORY_PAGE_IS_EVENT_DIRECTORY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER))
+#define EVENTS_DIRECTORY_PAGE_IS_EVENT_DIRECTORY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER))
+#define EVENTS_DIRECTORY_PAGE_EVENT_DIRECTORY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER, EventsDirectoryPageEventDirectoryManagerClass))
+
+typedef struct _EventsDirectoryPageEventDirectoryManager EventsDirectoryPageEventDirectoryManager;
+typedef struct _EventsDirectoryPageEventDirectoryManagerClass EventsDirectoryPageEventDirectoryManagerClass;
+typedef struct _EventsDirectoryPageEventDirectoryManagerPrivate EventsDirectoryPageEventDirectoryManagerPrivate;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _SearchViewFilterPrivate SearchViewFilterPrivate;
+typedef struct _EventsDirectoryPageEventsDirectorySearchViewFilterPrivate EventsDirectoryPageEventsDirectorySearchViewFilterPrivate;
+
+#define TYPE_SEARCH_FILTER_CRITERIA (search_filter_criteria_get_type ())
+
+#define TYPE_INDEXABLE (indexable_get_type ())
+#define INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDEXABLE, Indexable))
+#define IS_INDEXABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDEXABLE))
+#define INDEXABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_INDEXABLE, IndexableIface))
+
+typedef struct _Indexable Indexable;
+typedef struct _IndexableIface IndexableIface;
+
+#define TYPE_MASTER_EVENTS_DIRECTORY_PAGE (master_events_directory_page_get_type ())
+#define MASTER_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MASTER_EVENTS_DIRECTORY_PAGE, MasterEventsDirectoryPage))
+#define MASTER_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MASTER_EVENTS_DIRECTORY_PAGE, MasterEventsDirectoryPageClass))
+#define IS_MASTER_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MASTER_EVENTS_DIRECTORY_PAGE))
+#define IS_MASTER_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MASTER_EVENTS_DIRECTORY_PAGE))
+#define MASTER_EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MASTER_EVENTS_DIRECTORY_PAGE, MasterEventsDirectoryPageClass))
+
+typedef struct _MasterEventsDirectoryPage MasterEventsDirectoryPage;
+typedef struct _MasterEventsDirectoryPageClass MasterEventsDirectoryPageClass;
+typedef struct _MasterEventsDirectoryPagePrivate MasterEventsDirectoryPagePrivate;
+
+#define TYPE_SUB_EVENTS_DIRECTORY_PAGE (sub_events_directory_page_get_type ())
+#define SUB_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SUB_EVENTS_DIRECTORY_PAGE, SubEventsDirectoryPage))
+#define SUB_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SUB_EVENTS_DIRECTORY_PAGE, SubEventsDirectoryPageClass))
+#define IS_SUB_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SUB_EVENTS_DIRECTORY_PAGE))
+#define IS_SUB_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SUB_EVENTS_DIRECTORY_PAGE))
+#define SUB_EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SUB_EVENTS_DIRECTORY_PAGE, SubEventsDirectoryPageClass))
+
+typedef struct _SubEventsDirectoryPage SubEventsDirectoryPage;
+typedef struct _SubEventsDirectoryPageClass SubEventsDirectoryPageClass;
+typedef struct _SubEventsDirectoryPagePrivate SubEventsDirectoryPagePrivate;
+
+#define SUB_EVENTS_DIRECTORY_PAGE_TYPE_DIRECTORY_TYPE (sub_events_directory_page_directory_type_get_type ())
+
+#define SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER (sub_events_directory_page_sub_event_directory_manager_get_type ())
+#define SUB_EVENTS_DIRECTORY_PAGE_SUB_EVENT_DIRECTORY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManager))
+#define SUB_EVENTS_DIRECTORY_PAGE_SUB_EVENT_DIRECTORY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManagerClass))
+#define SUB_EVENTS_DIRECTORY_PAGE_IS_SUB_EVENT_DIRECTORY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER))
+#define SUB_EVENTS_DIRECTORY_PAGE_IS_SUB_EVENT_DIRECTORY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER))
+#define SUB_EVENTS_DIRECTORY_PAGE_SUB_EVENT_DIRECTORY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManagerClass))
+
+typedef struct _SubEventsDirectoryPageSubEventDirectoryManager SubEventsDirectoryPageSubEventDirectoryManager;
+typedef struct _SubEventsDirectoryPageSubEventDirectoryManagerClass SubEventsDirectoryPageSubEventDirectoryManagerClass;
+typedef struct _SubEventsDirectoryPageSubEventDirectoryManagerPrivate SubEventsDirectoryPageSubEventDirectoryManagerPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+struct _EventsDirectoryPage {
+ CheckerboardPage parent_instance;
+ EventsDirectoryPagePrivate * priv;
+ ViewManager* view_manager;
+};
+
+struct _EventsDirectoryPageClass {
+ CheckerboardPageClass parent_class;
+};
+
+struct _EventsDirectoryPagePrivate {
+ EventsDirectoryPageEventsDirectorySearchViewFilter* search_filter;
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+typedef gboolean (*ComparatorPredicate) (DataObject* object, Alteration* alteration, void* user_data);
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _EventDirectoryItem {
+ CheckerboardItem parent_instance;
+ EventDirectoryItemPrivate * priv;
+ Event* event;
+};
+
+struct _EventDirectoryItemClass {
+ CheckerboardItemClass parent_class;
+};
+
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _EventsDirectoryPageEventDirectoryManager {
+ ViewManager parent_instance;
+ EventsDirectoryPageEventDirectoryManagerPrivate * priv;
+};
+
+struct _EventsDirectoryPageEventDirectoryManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _SearchViewFilter {
+ ViewFilter parent_instance;
+ SearchViewFilterPrivate * priv;
+};
+
+struct _SearchViewFilterClass {
+ ViewFilterClass parent_class;
+ guint (*get_criteria) (SearchViewFilter* self);
+};
+
+struct _EventsDirectoryPageEventsDirectorySearchViewFilter {
+ SearchViewFilter parent_instance;
+ EventsDirectoryPageEventsDirectorySearchViewFilterPrivate * priv;
+};
+
+struct _EventsDirectoryPageEventsDirectorySearchViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+typedef enum {
+ SEARCH_FILTER_CRITERIA_NONE = 0,
+ SEARCH_FILTER_CRITERIA_RECURSIVE = 1 << 0,
+ SEARCH_FILTER_CRITERIA_TEXT = 1 << 1,
+ SEARCH_FILTER_CRITERIA_FLAG = 1 << 2,
+ SEARCH_FILTER_CRITERIA_MEDIA = 1 << 3,
+ SEARCH_FILTER_CRITERIA_RATING = 1 << 4,
+ SEARCH_FILTER_CRITERIA_SAVEDSEARCH = 1 << 5,
+ SEARCH_FILTER_CRITERIA_ALL = 0xFFFFFFFFLL
+} SearchFilterCriteria;
+
+struct _IndexableIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_indexable_keywords) (Indexable* self);
+};
+
+struct _MasterEventsDirectoryPage {
+ EventsDirectoryPage parent_instance;
+ MasterEventsDirectoryPagePrivate * priv;
+};
+
+struct _MasterEventsDirectoryPageClass {
+ EventsDirectoryPageClass parent_class;
+};
+
+struct _SubEventsDirectoryPage {
+ EventsDirectoryPage parent_instance;
+ SubEventsDirectoryPagePrivate * priv;
+};
+
+struct _SubEventsDirectoryPageClass {
+ EventsDirectoryPageClass parent_class;
+};
+
+typedef enum {
+ SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_YEAR,
+ SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_MONTH,
+ SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_UNDATED
+} SubEventsDirectoryPageDirectoryType;
+
+struct _SubEventsDirectoryPageSubEventDirectoryManager {
+ EventsDirectoryPageEventDirectoryManager parent_instance;
+ SubEventsDirectoryPageSubEventDirectoryManagerPrivate * priv;
+};
+
+struct _SubEventsDirectoryPageSubEventDirectoryManagerClass {
+ EventsDirectoryPageEventDirectoryManagerClass parent_class;
+};
+
+struct _SubEventsDirectoryPageSubEventDirectoryManagerPrivate {
+ gint month;
+ gint year;
+ SubEventsDirectoryPageDirectoryType type;
+};
+
+
+static gpointer events_directory_page_parent_class = NULL;
+extern EventSourceCollection* event_global;
+static gpointer events_directory_page_event_directory_manager_parent_class = NULL;
+static gpointer events_directory_page_events_directory_search_view_filter_parent_class = NULL;
+static gpointer master_events_directory_page_parent_class = NULL;
+static gpointer sub_events_directory_page_parent_class = NULL;
+static gpointer sub_events_directory_page_sub_event_directory_manager_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType events_directory_page_get_type (void) G_GNUC_CONST;
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+static GType events_directory_page_events_directory_search_view_filter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define EVENTS_DIRECTORY_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPagePrivate))
+enum {
+ EVENTS_DIRECTORY_PAGE_DUMMY_PROPERTY
+};
+GtkAction* page_get_action (Page* self, const gchar* name);
+static void events_directory_page_on_sort_changed (EventsDirectoryPage* self, GtkAction* action, GtkAction* c);
+static void _events_directory_page_on_sort_changed_gtk_radio_action_changed (GtkRadioAction* _sender, GtkRadioAction* current, gpointer self);
+static EventsDirectoryPageEventsDirectorySearchViewFilter* events_directory_page_events_directory_search_view_filter_new (void);
+static EventsDirectoryPageEventsDirectorySearchViewFilter* events_directory_page_events_directory_search_view_filter_construct (GType object_type);
+#define EVENTS_DIRECTORY_PAGE_MIN_PHOTOS_FOR_PROGRESS_WINDOW 50
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+EventsDirectoryPage* events_directory_page_construct (GType object_type, const gchar* page_name, ViewManager* view_manager, GeeCollection* initial_events);
+CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+void data_collection_set_comparator (DataCollection* self, Comparator comparator, void* comparator_target, ComparatorPredicate predicate, void* predicate_target);
+static Comparator events_directory_page_get_event_comparator (gboolean ascending, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_events_sort_ascending (ConfigurationFacade* self);
+gboolean events_directory_page_event_comparator_predicate (DataObject* object, Alteration* alteration);
+static gboolean _events_directory_page_event_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self);
+GType source_collection_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType event_source_collection_get_type (void) G_GNUC_CONST;
+void data_collection_set_property (DataCollection* self, const gchar* name, GValue* val, ValueEqualFunc value_equals, void* value_equals_target);
+#define EVENT_PROP_SHOW_COMMENTS "show-comments"
+gboolean configuration_facade_get_display_event_comments (ConfigurationFacade* self);
+void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path);
+GtkToolbar* page_get_toolbar (Page* self);
+#define RESOURCES_MERGE "shotwell-merge-events"
+static void events_directory_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+static gint64 events_directory_page_event_ascending_comparator (void* a, void* b);
+GType event_directory_item_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+time_t event_source_get_start_time (EventSource* self);
+static gint64 events_directory_page_event_descending_comparator (void* a, void* b);
+static gint64 _events_directory_page_event_ascending_comparator_comparator (void* a, void* b, gpointer self);
+static gint64 _events_directory_page_event_descending_comparator_comparator (void* a, void* b, gpointer self);
+static GtkActionEntry* events_directory_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define TRANSLATABLE "translatable"
+static void events_directory_page_on_rename (EventsDirectoryPage* self);
+static void _events_directory_page_on_rename_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_RENAME_EVENT_MENU _ ("Re_name Event...")
+static void _vala_array_add126 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_MERGE_TOOLTIP _ ("Combine events into a single event")
+static void events_directory_page_on_merge (EventsDirectoryPage* self);
+static void _events_directory_page_on_merge_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_MERGE_MENU _ ("_Merge Events")
+static void _vala_array_add127 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_EDIT_COMMENT_MENU _ ("Edit _Comment...")
+void events_directory_page_on_edit_comment (EventsDirectoryPage* self);
+static void _events_directory_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add128 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static GtkToggleActionEntry* events_directory_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1);
+GtkToggleActionEntry* page_init_collect_toggle_action_entries (Page* self, int* result_length1);
+static void events_directory_page_on_display_comments (EventsDirectoryPage* self, GtkAction* action);
+static void _events_directory_page_on_display_comments_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add129 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void events_directory_page_real_init_actions (Page* base, gint selected_count, gint count);
+void page_init_actions (Page* self, gint selected_count, gint count);
+static void events_directory_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void page_set_action_important (Page* self, const gchar* name, gboolean important);
+void page_update_actions (Page* self, gint selected_count, gint count);
+static gchar* events_directory_page_real_get_view_empty_message (CheckerboardPage* base);
+static gchar* events_directory_page_real_get_filter_no_match_message (CheckerboardPage* base);
+static void events_directory_page_real_on_item_activated (CheckerboardPage* base, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_switch_to_event (LibraryWindow* self, Event* event);
+#define LIBRARY_WINDOW_SORT_EVENTS_ORDER_ASCENDING 0
+gint view_collection_get_selected_count (ViewCollection* self);
+DataView* view_collection_get_selected_at (ViewCollection* self, gint index);
+gpointer text_entry_dialog_mediator_ref (gpointer instance);
+void text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_text_entry_dialog_mediator (const GValue* value);
+GType text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType event_rename_dialog_get_type (void) G_GNUC_CONST;
+gchar* event_get_raw_name (Event* self);
+EventRenameDialog* event_rename_dialog_new (const gchar* event_name);
+EventRenameDialog* event_rename_dialog_construct (GType object_type, const gchar* event_name);
+gchar* event_rename_dialog_execute (EventRenameDialog* self);
+GType command_get_type (void) G_GNUC_CONST;
+GType page_command_get_type (void) G_GNUC_CONST;
+GType simple_proxyable_command_get_type (void) G_GNUC_CONST;
+GType rename_event_command_get_type (void) G_GNUC_CONST;
+RenameEventCommand* rename_event_command_new (Event* event, const gchar* new_name);
+RenameEventCommand* rename_event_command_construct (GType object_type, Event* event, const gchar* new_name);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+void command_manager_execute (CommandManager* self, Command* command);
+gpointer multi_text_entry_dialog_mediator_ref (gpointer instance);
+void multi_text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_multi_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_multi_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_multi_text_entry_dialog_mediator (const GValue* value);
+GType multi_text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType edit_comment_dialog_get_type (void) G_GNUC_CONST;
+gchar* event_source_get_comment (EventSource* self);
+EditCommentDialog* edit_comment_dialog_new (const gchar* comment, gboolean is_event);
+EditCommentDialog* edit_comment_dialog_construct (GType object_type, const gchar* comment, gboolean is_event);
+gchar* edit_comment_dialog_execute (EditCommentDialog* self);
+GType edit_event_comment_command_get_type (void) G_GNUC_CONST;
+EditEventCommentCommand* edit_event_comment_command_new (Event* event, const gchar* new_comment);
+EditEventCommentCommand* edit_event_comment_command_construct (GType object_type, Event* event, const gchar* new_comment);
+GType move_photos_command_get_type (void) G_GNUC_CONST;
+GType merge_events_command_get_type (void) G_GNUC_CONST;
+GeeList* view_collection_get_selected (ViewCollection* self);
+MergeEventsCommand* merge_events_command_new (GeeIterable* iter);
+MergeEventsCommand* merge_events_command_construct (GType object_type, GeeIterable* iter);
+void checkerboard_page_set_display_comments (CheckerboardPage* self, gboolean display);
+void configuration_facade_set_display_event_comments (ConfigurationFacade* self, gboolean display);
+static SearchViewFilter* events_directory_page_real_get_search_view_filter (CheckerboardPage* base);
+GType events_directory_page_event_directory_manager_get_type (void) G_GNUC_CONST;
+enum {
+ EVENTS_DIRECTORY_PAGE_EVENT_DIRECTORY_MANAGER_DUMMY_PROPERTY
+};
+static DataView* events_directory_page_event_directory_manager_real_create_view (ViewManager* base, DataSource* source);
+EventDirectoryItem* event_directory_item_new (Event* event);
+EventDirectoryItem* event_directory_item_construct (GType object_type, Event* event);
+EventsDirectoryPageEventDirectoryManager* events_directory_page_event_directory_manager_new (void);
+EventsDirectoryPageEventDirectoryManager* events_directory_page_event_directory_manager_construct (GType object_type);
+ViewManager* view_manager_construct (GType object_type);
+enum {
+ EVENTS_DIRECTORY_PAGE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+static guint events_directory_page_events_directory_search_view_filter_real_get_criteria (SearchViewFilter* base);
+GType search_filter_criteria_get_type (void) G_GNUC_CONST;
+static gboolean events_directory_page_events_directory_search_view_filter_real_predicate (ViewFilter* base, DataView* view);
+DataSource* data_view_get_source (DataView* self);
+gboolean is_string_empty (const gchar* s);
+const gchar* search_view_filter_get_search_filter (SearchViewFilter* self);
+GType indexable_get_type (void) G_GNUC_CONST;
+const gchar* indexable_get_indexable_keywords (Indexable* self);
+gchar** search_view_filter_get_search_filter_words (SearchViewFilter* self, int* result_length1);
+SearchViewFilter* search_view_filter_construct (GType object_type);
+static void events_directory_page_finalize (GObject* obj);
+GType master_events_directory_page_get_type (void) G_GNUC_CONST;
+enum {
+ MASTER_EVENTS_DIRECTORY_PAGE_DUMMY_PROPERTY
+};
+#define MASTER_EVENTS_DIRECTORY_PAGE_NAME _ ("All Events")
+MasterEventsDirectoryPage* master_events_directory_page_new (void);
+MasterEventsDirectoryPage* master_events_directory_page_construct (GType object_type);
+GeeCollection* data_collection_get_all (DataCollection* self);
+GType sub_events_directory_page_get_type (void) G_GNUC_CONST;
+enum {
+ SUB_EVENTS_DIRECTORY_PAGE_DUMMY_PROPERTY
+};
+GType sub_events_directory_page_directory_type_get_type (void) G_GNUC_CONST;
+#define SUB_EVENTS_DIRECTORY_PAGE_UNDATED_PAGE_NAME _ ("Undated")
+#define SUB_EVENTS_DIRECTORY_PAGE_YEAR_FORMAT _ ("%Y")
+#define SUB_EVENTS_DIRECTORY_PAGE_MONTH_FORMAT _ ("%B")
+SubEventsDirectoryPage* sub_events_directory_page_new (SubEventsDirectoryPageDirectoryType type, struct tm* time);
+SubEventsDirectoryPage* sub_events_directory_page_construct (GType object_type, SubEventsDirectoryPageDirectoryType type, struct tm* time);
+static SubEventsDirectoryPageSubEventDirectoryManager* sub_events_directory_page_sub_event_directory_manager_new (SubEventsDirectoryPageDirectoryType type, struct tm* time);
+static SubEventsDirectoryPageSubEventDirectoryManager* sub_events_directory_page_sub_event_directory_manager_construct (GType object_type, SubEventsDirectoryPageDirectoryType type, struct tm* time);
+static GType sub_events_directory_page_sub_event_directory_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gint sub_events_directory_page_get_month (SubEventsDirectoryPage* self);
+static gint sub_events_directory_page_sub_event_directory_manager_get_month (SubEventsDirectoryPageSubEventDirectoryManager* self);
+gint sub_events_directory_page_get_year (SubEventsDirectoryPage* self);
+static gint sub_events_directory_page_sub_event_directory_manager_get_year (SubEventsDirectoryPageSubEventDirectoryManager* self);
+SubEventsDirectoryPageDirectoryType sub_events_directory_page_get_event_directory_type (SubEventsDirectoryPage* self);
+static SubEventsDirectoryPageDirectoryType sub_events_directory_page_sub_event_directory_manager_get_event_directory_type (SubEventsDirectoryPageSubEventDirectoryManager* self);
+#define SUB_EVENTS_DIRECTORY_PAGE_SUB_EVENT_DIRECTORY_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManagerPrivate))
+enum {
+ SUB_EVENTS_DIRECTORY_PAGE_SUB_EVENT_DIRECTORY_MANAGER_DUMMY_PROPERTY
+};
+static gboolean sub_events_directory_page_sub_event_directory_manager_real_include_in_view (ViewManager* base, DataSource* source);
+gboolean view_manager_include_in_view (ViewManager* self, DataSource* source);
+static void sub_events_directory_page_sub_event_directory_manager_finalize (ViewManager* obj);
+
+
+static void _events_directory_page_on_sort_changed_gtk_radio_action_changed (GtkRadioAction* _sender, GtkRadioAction* current, gpointer self) {
+#line 74 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_on_sort_changed ((EventsDirectoryPage*) self, _sender, current);
+#line 1141 "EventsDirectoryPage.c"
+}
+
+
+static gboolean _events_directory_page_event_comparator_predicate_comparator_predicate (DataObject* object, Alteration* alteration, gpointer self) {
+ gboolean result;
+ result = events_directory_page_event_comparator_predicate (object, alteration);
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1150 "EventsDirectoryPage.c"
+}
+
+
+static gpointer _view_manager_ref0 (gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self ? view_manager_ref (self) : NULL;
+#line 1157 "EventsDirectoryPage.c"
+}
+
+
+EventsDirectoryPage* events_directory_page_construct (GType object_type, const gchar* page_name, ViewManager* view_manager, GeeCollection* initial_events) {
+ EventsDirectoryPage * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ void* _tmp6_ = NULL;
+ GDestroyNotify _tmp7_ = NULL;
+ Comparator _tmp8_ = NULL;
+ Comparator _tmp9_ = NULL;
+ void* _tmp9__target = NULL;
+ GDestroyNotify _tmp9__target_destroy_notify = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ EventSourceCollection* _tmp12_ = NULL;
+ ViewManager* _tmp13_ = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ ViewCollectionMonitor* _tmp15_ = NULL;
+ ViewCollectionMonitor* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ ViewCollection* _tmp18_ = NULL;
+ ConfigFacade* _tmp19_ = NULL;
+ ConfigFacade* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ GValue _tmp22_ = {0};
+ ViewManager* _tmp23_ = NULL;
+ ViewManager* _tmp24_ = NULL;
+ GtkToolbar* toolbar = NULL;
+ GtkToolbar* _tmp25_ = NULL;
+ GtkToolButton* merge_button = NULL;
+ GtkToolButton* _tmp26_ = NULL;
+ GtkAction* _tmp27_ = NULL;
+ GtkAction* _tmp28_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (page_name != NULL, NULL);
+#line 45 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_VIEW_MANAGER (view_manager), NULL);
+#line 45 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail ((initial_events == NULL) || GEE_IS_COLLECTION (initial_events), NULL);
+#line 47 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = page_name;
+#line 47 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = (EventsDirectoryPage*) checkerboard_page_construct (object_type, _tmp0_);
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = _tmp1_;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = _tmp3_;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = configuration_facade_get_events_sort_ascending (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = events_directory_page_get_event_comparator (_tmp5_, &_tmp6_, &_tmp7_);
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = _tmp8_;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target = _tmp6_;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target_destroy_notify = _tmp7_;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), _tmp9_, _tmp6_, _events_directory_page_event_comparator_predicate_comparator_predicate, NULL);
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ (_tmp9__target_destroy_notify == NULL) ? NULL : (_tmp9__target_destroy_notify (_tmp9__target), NULL);
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target = NULL;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target_destroy_notify = NULL;
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 50 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11_ = _tmp10_;
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp12_ = event_global;
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp13_ = view_manager;
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp14_ = initial_events;
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp15_ = view_collection_monitor_source_collection (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp13_, NULL, _tmp14_, NULL, NULL);
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp16_ = _tmp15_;
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _view_collection_monitor_unref0 (_tmp16_);
+#line 52 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp17_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp18_ = _tmp17_;
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp19_ = config_facade_get_instance ();
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp20_ = _tmp19_;
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp21_ = configuration_facade_get_display_event_comments (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_value_init (&_tmp22_, G_TYPE_BOOLEAN);
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_value_set_boolean (&_tmp22_, _tmp21_);
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ data_collection_set_property (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_DATA_COLLECTION, DataCollection), EVENT_PROP_SHOW_COMMENTS, &_tmp22_, NULL, NULL);
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ G_IS_VALUE (&_tmp22_) ? (g_value_unset (&_tmp22_), NULL) : NULL;
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 54 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp18_);
+#line 57 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ checkerboard_page_init_item_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/EventsDirectoryContextMenu");
+#line 59 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp23_ = view_manager;
+#line 59 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp24_ = _view_manager_ref0 (_tmp23_);
+#line 59 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _view_manager_unref0 (self->view_manager);
+#line 59 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->view_manager = _tmp24_;
+#line 62 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp25_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 62 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ toolbar = _tmp25_;
+#line 65 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp26_ = (GtkToolButton*) gtk_tool_button_new_from_stock (RESOURCES_MERGE);
+#line 65 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_object_ref_sink (_tmp26_);
+#line 65 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ merge_button = _tmp26_;
+#line 66 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp27_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Merge");
+#line 66 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp28_ = _tmp27_;
+#line 66 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ gtk_activatable_set_related_action (G_TYPE_CHECK_INSTANCE_CAST (merge_button, GTK_TYPE_ACTIVATABLE, GtkActivatable), _tmp28_);
+#line 66 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 68 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (merge_button, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 45 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (merge_button);
+#line 45 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (toolbar);
+#line 45 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self;
+#line 1314 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ EventsDirectoryPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 77 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 78 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = ui_filenames;
+#line 78 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), "events_directory.ui");
+#line 80 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = ui_filenames;
+#line 80 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ PAGE_CLASS (events_directory_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp1_);
+#line 1334 "EventsDirectoryPage.c"
+}
+
+
+gboolean events_directory_page_event_comparator_predicate (DataObject* object, Alteration* alteration) {
+ gboolean result = FALSE;
+ Alteration* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 83 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_DATA_OBJECT (object), FALSE);
+#line 83 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_ALTERATION (alteration), FALSE);
+#line 84 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = alteration;
+#line 84 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = alteration_has_detail (_tmp0_, "metadata", "time");
+#line 84 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 84 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1354 "EventsDirectoryPage.c"
+}
+
+
+static gint64 events_directory_page_event_ascending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ time_t start_a = 0;
+ void* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ time_t _tmp2_ = 0;
+ time_t start_b = 0;
+ void* _tmp3_ = NULL;
+ Event* _tmp4_ = NULL;
+ time_t _tmp5_ = 0;
+#line 88 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = a;
+#line 88 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST ((EventDirectoryItem*) _tmp0_, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem)->event;
+#line 88 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = event_source_get_start_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_EVENT_SOURCE, EventSource));
+#line 88 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ start_a = _tmp2_;
+#line 89 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = b;
+#line 89 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST ((EventDirectoryItem*) _tmp3_, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem)->event;
+#line 89 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = event_source_get_start_time (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_EVENT_SOURCE, EventSource));
+#line 89 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ start_b = _tmp5_;
+#line 91 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = (gint64) (start_a - start_b);
+#line 91 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1388 "EventsDirectoryPage.c"
+}
+
+
+static gint64 events_directory_page_event_descending_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+#line 95 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = b;
+#line 95 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = a;
+#line 95 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = events_directory_page_event_ascending_comparator (_tmp0_, _tmp1_);
+#line 95 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp2_;
+#line 95 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1407 "EventsDirectoryPage.c"
+}
+
+
+static gint64 _events_directory_page_event_ascending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = events_directory_page_event_ascending_comparator (a, b);
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1416 "EventsDirectoryPage.c"
+}
+
+
+static gint64 _events_directory_page_event_descending_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = events_directory_page_event_descending_comparator (a, b);
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1425 "EventsDirectoryPage.c"
+}
+
+
+static Comparator events_directory_page_get_event_comparator (gboolean ascending, void** result_target, GDestroyNotify* result_target_destroy_notify) {
+ Comparator result = NULL;
+ gboolean _tmp0_ = FALSE;
+#line 99 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = ascending;
+#line 99 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp0_) {
+#line 1436 "EventsDirectoryPage.c"
+ Comparator _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ GDestroyNotify _tmp1__target_destroy_notify = NULL;
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _events_directory_page_event_ascending_comparator_comparator;
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1__target = NULL;
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1__target_destroy_notify = NULL;
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *result_target = _tmp1__target;
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *result_target_destroy_notify = _tmp1__target_destroy_notify;
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 100 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1454 "EventsDirectoryPage.c"
+ } else {
+ Comparator _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ GDestroyNotify _tmp2__target_destroy_notify = NULL;
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = _events_directory_page_event_descending_comparator_comparator;
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2__target = NULL;
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2__target_destroy_notify = NULL;
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *result_target = _tmp2__target;
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *result_target_destroy_notify = _tmp2__target_destroy_notify;
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp2_;
+#line 102 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1473 "EventsDirectoryPage.c"
+ }
+}
+
+
+static void _events_directory_page_on_rename_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_on_rename ((EventsDirectoryPage*) self);
+#line 1481 "EventsDirectoryPage.c"
+}
+
+
+static void _vala_array_add126 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if ((*length) == (*size)) {
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1492 "EventsDirectoryPage.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1496 "EventsDirectoryPage.c"
+}
+
+
+static void _events_directory_page_on_merge_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_on_merge ((EventsDirectoryPage*) self);
+#line 1503 "EventsDirectoryPage.c"
+}
+
+
+static void _vala_array_add127 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if ((*length) == (*size)) {
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1514 "EventsDirectoryPage.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1518 "EventsDirectoryPage.c"
+}
+
+
+static void _events_directory_page_on_edit_comment_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_on_edit_comment ((EventsDirectoryPage*) self);
+#line 1525 "EventsDirectoryPage.c"
+}
+
+
+static void _vala_array_add128 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if ((*length) == (*size)) {
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1536 "EventsDirectoryPage.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1540 "EventsDirectoryPage.c"
+}
+
+
+static GtkActionEntry* events_directory_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ EventsDirectoryPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry rename = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry merge = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry comment = {0};
+ GtkActionEntry _tmp8_ = {0};
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 105 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 106 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = PAGE_CLASS (events_directory_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 106 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ actions = _tmp1_;
+#line 106 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ actions_length1 = _tmp0_;
+#line 106 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _actions_size_ = actions_length1;
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_.name = "Rename";
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_.stock_id = NULL;
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_.accelerator = "F2";
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_.callback = (GCallback) _events_directory_page_on_rename_gtk_action_callback;
+#line 108 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ rename = _tmp2_;
+#line 109 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ rename.label = RESOURCES_RENAME_EVENT_MENU;
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = actions;
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3__length1 = actions_length1;
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = rename;
+#line 110 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _vala_array_add126 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.name = "Merge";
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.stock_id = RESOURCES_MERGE;
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.accelerator = NULL;
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.tooltip = RESOURCES_MERGE_TOOLTIP;
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.callback = (GCallback) _events_directory_page_on_merge_gtk_action_callback;
+#line 112 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ merge = _tmp5_;
+#line 114 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ merge.label = RESOURCES_MERGE_MENU;
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6_ = actions;
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6__length1 = actions_length1;
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = merge;
+#line 115 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _vala_array_add127 (&actions, &actions_length1, &_actions_size_, &_tmp7_);
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_.name = "EditComment";
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_.stock_id = NULL;
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_.accelerator = NULL;
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_.tooltip = RESOURCES_EDIT_COMMENT_MENU;
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_.callback = (GCallback) _events_directory_page_on_edit_comment_gtk_action_callback;
+#line 117 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ comment = _tmp8_;
+#line 119 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ comment.label = RESOURCES_EDIT_COMMENT_MENU;
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = actions;
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__length1 = actions_length1;
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = comment;
+#line 120 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _vala_array_add128 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 122 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11_ = actions;
+#line 122 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11__length1 = actions_length1;
+#line 122 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (result_length1) {
+#line 122 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *result_length1 = _tmp11__length1;
+#line 1659 "EventsDirectoryPage.c"
+ }
+#line 122 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp11_;
+#line 122 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1665 "EventsDirectoryPage.c"
+}
+
+
+static void _events_directory_page_on_display_comments_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_on_display_comments ((EventsDirectoryPage*) self, action);
+#line 1672 "EventsDirectoryPage.c"
+}
+
+
+static void _vala_array_add129 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if ((*length) == (*size)) {
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 1683 "EventsDirectoryPage.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1687 "EventsDirectoryPage.c"
+}
+
+
+static GtkToggleActionEntry* events_directory_page_real_init_collect_toggle_action_entries (Page* base, int* result_length1) {
+ EventsDirectoryPage * self;
+ GtkToggleActionEntry* result = NULL;
+ GtkToggleActionEntry* toggle_actions = NULL;
+ gint _tmp0_ = 0;
+ GtkToggleActionEntry* _tmp1_ = NULL;
+ gint toggle_actions_length1 = 0;
+ gint _toggle_actions_size_ = 0;
+ GtkToggleActionEntry comments = {0};
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GtkToggleActionEntry _tmp5_ = {0};
+ GtkToggleActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkToggleActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkToggleActionEntry _tmp10_ = {0};
+ GtkToggleActionEntry* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 125 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 126 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = PAGE_CLASS (events_directory_page_parent_class)->init_collect_toggle_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 126 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ toggle_actions = _tmp1_;
+#line 126 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ toggle_actions_length1 = _tmp0_;
+#line 126 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _toggle_actions_size_ = toggle_actions_length1;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _tmp2_;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = configuration_facade_get_display_event_comments (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.name = "ViewComment";
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.accelerator = "<Ctrl><Shift>C";
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.callback = (GCallback) _events_directory_page_on_display_comments_gtk_action_callback;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_.is_active = _tmp4_;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6_ = _tmp5_;
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 128 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ comments = _tmp6_;
+#line 130 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = _ ("_Comments");
+#line 130 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ comments.label = _tmp7_;
+#line 131 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = _ ("Display the comment of each event");
+#line 131 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ comments.tooltip = _tmp8_;
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = toggle_actions;
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__length1 = toggle_actions_length1;
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = comments;
+#line 132 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _vala_array_add129 (&toggle_actions, &toggle_actions_length1, &_toggle_actions_size_, &_tmp10_);
+#line 134 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11_ = toggle_actions;
+#line 134 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11__length1 = toggle_actions_length1;
+#line 134 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (result_length1) {
+#line 134 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ *result_length1 = _tmp11__length1;
+#line 1772 "EventsDirectoryPage.c"
+ }
+#line 134 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp11_;
+#line 134 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1778 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_real_init_actions (Page* base, gint selected_count, gint count) {
+ EventsDirectoryPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GtkRadioAction* action = NULL;
+ GtkAction* _tmp2_ = NULL;
+ GtkRadioAction* _tmp3_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 138 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = selected_count;
+#line 138 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = count;
+#line 138 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ PAGE_CLASS (events_directory_page_parent_class)->init_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp0_, _tmp1_);
+#line 140 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonSortEventsAscending");
+#line 140 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_radio_action_get_type ()) ? ((GtkRadioAction*) _tmp2_) : NULL;
+#line 140 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp3_ == NULL) {
+#line 140 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1805 "EventsDirectoryPage.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ action = _tmp3_;
+#line 141 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _vala_assert (action != NULL, "action != null");
+#line 142 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_signal_connect_object (action, "changed", (GCallback) _events_directory_page_on_sort_changed_gtk_radio_action_changed, self, 0);
+#line 137 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (action);
+#line 1815 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ EventsDirectoryPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 145 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 146 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = selected_count;
+#line 146 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Merge", _tmp0_ > 1);
+#line 147 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Merge", TRUE);
+#line 148 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = selected_count;
+#line 148 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Rename", _tmp1_ == 1);
+#line 149 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = selected_count;
+#line 149 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "EditComment", _tmp2_ == 1);
+#line 151 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = selected_count;
+#line 151 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = count;
+#line 151 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ PAGE_CLASS (events_directory_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp3_, _tmp4_);
+#line 1848 "EventsDirectoryPage.c"
+}
+
+
+static gchar* events_directory_page_real_get_view_empty_message (CheckerboardPage* base) {
+ EventsDirectoryPage * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 155 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = _ ("No events");
+#line 155 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 155 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 155 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1867 "EventsDirectoryPage.c"
+}
+
+
+static gchar* events_directory_page_real_get_filter_no_match_message (CheckerboardPage* base) {
+ EventsDirectoryPage * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 159 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = _ ("No events found");
+#line 159 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 159 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 159 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 1886 "EventsDirectoryPage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 164 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1893 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_real_on_item_activated (CheckerboardPage* base, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers) {
+ EventsDirectoryPage * self;
+ EventDirectoryItem* event = NULL;
+ CheckerboardItem* _tmp0_ = NULL;
+ EventDirectoryItem* _tmp1_ = NULL;
+ LibraryWindow* _tmp2_ = NULL;
+ LibraryWindow* _tmp3_ = NULL;
+ Event* _tmp4_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 162 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (IS_CHECKERBOARD_ITEM (item));
+#line 162 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (modifiers != NULL);
+#line 164 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = item;
+#line 164 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem));
+#line 164 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ event = _tmp1_;
+#line 165 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = library_window_get_app ();
+#line 165 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _tmp2_;
+#line 165 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = event->event;
+#line 165 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ library_window_switch_to_event (_tmp3_, _tmp4_);
+#line 165 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 162 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (event);
+#line 1929 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_on_sort_changed (EventsDirectoryPage* self, GtkAction* action, GtkAction* c) {
+ GtkRadioAction* current = NULL;
+ GtkAction* _tmp0_ = NULL;
+ GtkRadioAction* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ void* _tmp6_ = NULL;
+ GDestroyNotify _tmp7_ = NULL;
+ Comparator _tmp8_ = NULL;
+ Comparator _tmp9_ = NULL;
+ void* _tmp9__target = NULL;
+ GDestroyNotify _tmp9__target_destroy_notify = NULL;
+#line 168 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (IS_EVENTS_DIRECTORY_PAGE (self));
+#line 168 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 168 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (c));
+#line 169 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = c;
+#line 169 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_radio_action_get_type (), GtkRadioAction));
+#line 169 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ current = _tmp1_;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _tmp2_;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = gtk_radio_action_get_current_value (current);
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = _tmp4_;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = events_directory_page_get_event_comparator (_tmp5_ == LIBRARY_WINDOW_SORT_EVENTS_ORDER_ASCENDING, &_tmp6_, &_tmp7_);
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = _tmp8_;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target = _tmp6_;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target_destroy_notify = _tmp7_;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ data_collection_set_comparator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_COLLECTION, DataCollection), _tmp9_, _tmp6_, _events_directory_page_event_comparator_predicate_comparator_predicate, NULL);
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ (_tmp9__target_destroy_notify == NULL) ? NULL : (_tmp9__target_destroy_notify (_tmp9__target), NULL);
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target = NULL;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9__target_destroy_notify = NULL;
+#line 171 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 168 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (current);
+#line 1989 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_on_rename (EventsDirectoryPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ EventDirectoryItem* item = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ EventDirectoryItem* _tmp7_ = NULL;
+ EventRenameDialog* rename_dialog = NULL;
+ EventDirectoryItem* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ EventRenameDialog* _tmp12_ = NULL;
+ EventRenameDialog* _tmp13_ = NULL;
+ gchar* new_name = NULL;
+ EventRenameDialog* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ RenameEventCommand* command = NULL;
+ EventDirectoryItem* _tmp17_ = NULL;
+ Event* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ RenameEventCommand* _tmp20_ = NULL;
+ CommandManager* _tmp21_ = NULL;
+ CommandManager* _tmp22_ = NULL;
+ RenameEventCommand* _tmp23_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (IS_EVENTS_DIRECTORY_PAGE (self));
+#line 178 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 178 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _tmp0_;
+#line 178 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 178 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 178 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 178 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp3_) {
+#line 179 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return;
+#line 2038 "EventsDirectoryPage.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 181 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = _tmp4_;
+#line 181 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6_ = view_collection_get_selected_at (_tmp5_, 0);
+#line 181 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 181 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 181 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ item = _tmp7_;
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = item;
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = _tmp8_->event;
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = event_get_raw_name (_tmp9_);
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11_ = _tmp10_;
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp12_ = event_rename_dialog_new (_tmp11_);
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp13_ = _tmp12_;
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (_tmp11_);
+#line 183 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ rename_dialog = _tmp13_;
+#line 184 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp14_ = rename_dialog;
+#line 184 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp15_ = event_rename_dialog_execute (_tmp14_);
+#line 184 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ new_name = _tmp15_;
+#line 185 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp16_ = new_name;
+#line 185 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp16_ == NULL) {
+#line 186 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (new_name);
+#line 186 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _text_entry_dialog_mediator_unref0 (rename_dialog);
+#line 186 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (item);
+#line 186 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return;
+#line 2086 "EventsDirectoryPage.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp17_ = item;
+#line 188 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp18_ = _tmp17_->event;
+#line 188 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp19_ = new_name;
+#line 188 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp20_ = rename_event_command_new (_tmp18_, _tmp19_);
+#line 188 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ command = _tmp20_;
+#line 189 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp21_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 189 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp22_ = _tmp21_;
+#line 189 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp23_ = command;
+#line 189 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ command_manager_execute (_tmp22_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_COMMAND, Command));
+#line 189 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _command_manager_unref0 (_tmp22_);
+#line 176 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (command);
+#line 176 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (new_name);
+#line 176 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _text_entry_dialog_mediator_unref0 (rename_dialog);
+#line 176 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (item);
+#line 2116 "EventsDirectoryPage.c"
+}
+
+
+void events_directory_page_on_edit_comment (EventsDirectoryPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ EventDirectoryItem* item = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ DataView* _tmp6_ = NULL;
+ EventDirectoryItem* _tmp7_ = NULL;
+ EditCommentDialog* edit_comment_dialog = NULL;
+ EventDirectoryItem* _tmp8_ = NULL;
+ Event* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ EditCommentDialog* _tmp12_ = NULL;
+ EditCommentDialog* _tmp13_ = NULL;
+ gchar* new_comment = NULL;
+ EditCommentDialog* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ EditEventCommentCommand* command = NULL;
+ EventDirectoryItem* _tmp17_ = NULL;
+ Event* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ EditEventCommentCommand* _tmp20_ = NULL;
+ CommandManager* _tmp21_ = NULL;
+ CommandManager* _tmp22_ = NULL;
+ EditEventCommentCommand* _tmp23_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (IS_EVENTS_DIRECTORY_PAGE (self));
+#line 194 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 194 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _tmp0_;
+#line 194 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 194 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _tmp2_ != 1;
+#line 194 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 194 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp3_) {
+#line 195 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return;
+#line 2165 "EventsDirectoryPage.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 197 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = _tmp4_;
+#line 197 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6_ = view_collection_get_selected_at (_tmp5_, 0);
+#line 197 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_EVENT_DIRECTORY_ITEM, EventDirectoryItem);
+#line 197 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 197 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ item = _tmp7_;
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = item;
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = _tmp8_->event;
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_EVENT_SOURCE, EventSource));
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11_ = _tmp10_;
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp12_ = edit_comment_dialog_new (_tmp11_, FALSE);
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp13_ = _tmp12_;
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (_tmp11_);
+#line 199 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ edit_comment_dialog = _tmp13_;
+#line 200 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp14_ = edit_comment_dialog;
+#line 200 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp15_ = edit_comment_dialog_execute (_tmp14_);
+#line 200 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ new_comment = _tmp15_;
+#line 201 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp16_ = new_comment;
+#line 201 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp16_ == NULL) {
+#line 202 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (new_comment);
+#line 202 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _multi_text_entry_dialog_mediator_unref0 (edit_comment_dialog);
+#line 202 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (item);
+#line 202 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return;
+#line 2213 "EventsDirectoryPage.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp17_ = item;
+#line 204 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp18_ = _tmp17_->event;
+#line 204 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp19_ = new_comment;
+#line 204 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp20_ = edit_event_comment_command_new (_tmp18_, _tmp19_);
+#line 204 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ command = _tmp20_;
+#line 205 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp21_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 205 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp22_ = _tmp21_;
+#line 205 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp23_ = command;
+#line 205 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ command_manager_execute (_tmp22_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_COMMAND, Command));
+#line 205 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _command_manager_unref0 (_tmp22_);
+#line 192 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (command);
+#line 192 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (new_comment);
+#line 192 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _multi_text_entry_dialog_mediator_unref0 (edit_comment_dialog);
+#line 192 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (item);
+#line 2243 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_on_merge (EventsDirectoryPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ MergeEventsCommand* command = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ MergeEventsCommand* _tmp8_ = NULL;
+ MergeEventsCommand* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ MergeEventsCommand* _tmp12_ = NULL;
+#line 208 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (IS_EVENTS_DIRECTORY_PAGE (self));
+#line 209 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 209 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _tmp0_;
+#line 209 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 209 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _tmp2_ <= 1;
+#line 209 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 209 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp3_) {
+#line 210 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return;
+#line 2278 "EventsDirectoryPage.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = _tmp4_;
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6_ = view_collection_get_selected (_tmp5_);
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = _tmp6_;
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = merge_events_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = _tmp8_;
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 212 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ command = _tmp9_;
+#line 213 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 213 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11_ = _tmp10_;
+#line 213 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp12_ = command;
+#line 213 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ command_manager_execute (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_COMMAND, Command));
+#line 213 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _command_manager_unref0 (_tmp11_);
+#line 208 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (command);
+#line 2310 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_on_display_comments (EventsDirectoryPage* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 216 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (IS_EVENTS_DIRECTORY_PAGE (self));
+#line 216 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 217 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = action;
+#line 217 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 217 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ display = _tmp1_;
+#line 219 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ checkerboard_page_set_display_comments (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), display);
+#line 221 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 221 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _tmp2_;
+#line 221 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ configuration_facade_set_display_event_comments (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), display);
+#line 221 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 2340 "EventsDirectoryPage.c"
+}
+
+
+static gpointer _view_filter_ref0 (gpointer self) {
+#line 225 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self ? view_filter_ref (self) : NULL;
+#line 2347 "EventsDirectoryPage.c"
+}
+
+
+static SearchViewFilter* events_directory_page_real_get_search_view_filter (CheckerboardPage* base) {
+ EventsDirectoryPage * self;
+ SearchViewFilter* result = NULL;
+ EventsDirectoryPageEventsDirectorySearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 225 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 225 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _view_filter_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 225 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 225 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2366 "EventsDirectoryPage.c"
+}
+
+
+static DataView* events_directory_page_event_directory_manager_real_create_view (ViewManager* base, DataSource* source) {
+ EventsDirectoryPageEventDirectoryManager * self;
+ DataView* result = NULL;
+ DataSource* _tmp0_ = NULL;
+ EventDirectoryItem* _tmp1_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER, EventsDirectoryPageEventDirectoryManager);
+#line 9 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), NULL);
+#line 10 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = source;
+#line 10 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = event_directory_item_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_EVENT, Event));
+#line 10 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_VIEW, DataView);
+#line 10 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2387 "EventsDirectoryPage.c"
+}
+
+
+EventsDirectoryPageEventDirectoryManager* events_directory_page_event_directory_manager_construct (GType object_type) {
+ EventsDirectoryPageEventDirectoryManager* self = NULL;
+#line 8 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = (EventsDirectoryPageEventDirectoryManager*) view_manager_construct (object_type);
+#line 8 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self;
+#line 2397 "EventsDirectoryPage.c"
+}
+
+
+EventsDirectoryPageEventDirectoryManager* events_directory_page_event_directory_manager_new (void) {
+#line 8 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return events_directory_page_event_directory_manager_construct (EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER);
+#line 2404 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_event_directory_manager_class_init (EventsDirectoryPageEventDirectoryManagerClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_event_directory_manager_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((ViewManagerClass *) klass)->create_view = events_directory_page_event_directory_manager_real_create_view;
+#line 2413 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_event_directory_manager_instance_init (EventsDirectoryPageEventDirectoryManager * self) {
+}
+
+
+GType events_directory_page_event_directory_manager_get_type (void) {
+ static volatile gsize events_directory_page_event_directory_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&events_directory_page_event_directory_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsDirectoryPageEventDirectoryManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_directory_page_event_directory_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsDirectoryPageEventDirectoryManager), 0, (GInstanceInitFunc) events_directory_page_event_directory_manager_instance_init, NULL };
+ GType events_directory_page_event_directory_manager_type_id;
+ events_directory_page_event_directory_manager_type_id = g_type_register_static (TYPE_VIEW_MANAGER, "EventsDirectoryPageEventDirectoryManager", &g_define_type_info, 0);
+ g_once_init_leave (&events_directory_page_event_directory_manager_type_id__volatile, events_directory_page_event_directory_manager_type_id);
+ }
+ return events_directory_page_event_directory_manager_type_id__volatile;
+}
+
+
+static guint events_directory_page_events_directory_search_view_filter_real_get_criteria (SearchViewFilter* base) {
+ EventsDirectoryPageEventsDirectorySearchViewFilter * self;
+ guint result = 0U;
+#line 15 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER, EventsDirectoryPageEventsDirectorySearchViewFilter);
+#line 16 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = (guint) SEARCH_FILTER_CRITERIA_TEXT;
+#line 16 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2442 "EventsDirectoryPage.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2462 "EventsDirectoryPage.c"
+}
+
+
+static gboolean events_directory_page_events_directory_search_view_filter_real_predicate (ViewFilter* base, DataView* view) {
+ EventsDirectoryPageEventsDirectorySearchViewFilter * self;
+ gboolean result = FALSE;
+ DataView* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ DataSource* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ Event* source = NULL;
+ DataView* _tmp5_ = NULL;
+ DataSource* _tmp6_ = NULL;
+ const gchar* event_keywords = NULL;
+ Event* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gint _tmp11_ = 0;
+ gchar** _tmp12_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER, EventsDirectoryPageEventsDirectorySearchViewFilter);
+#line 19 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_DATA_VIEW (view), FALSE);
+#line 20 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = view;
+#line 20 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = data_view_get_source (_tmp0_);
+#line 20 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = _tmp1_;
+#line 20 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_EVENT), "view.get_source() is Event");
+#line 20 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp2_);
+#line 21 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = search_view_filter_get_search_filter (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 21 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = is_string_empty (_tmp3_);
+#line 21 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp4_) {
+#line 22 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = TRUE;
+#line 22 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2508 "EventsDirectoryPage.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = view;
+#line 24 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6_ = data_view_get_source (_tmp5_);
+#line 24 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ source = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_EVENT, Event);
+#line 25 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = source;
+#line 25 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = indexable_get_indexable_keywords (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_INDEXABLE, Indexable));
+#line 25 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ event_keywords = _tmp8_;
+#line 26 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = event_keywords;
+#line 26 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = is_string_empty (_tmp9_);
+#line 26 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp10_) {
+#line 27 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = FALSE;
+#line 27 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (source);
+#line 27 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2534 "EventsDirectoryPage.c"
+ }
+#line 30 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp12_ = search_view_filter_get_search_filter_words (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter), &_tmp11_);
+#line 2538 "EventsDirectoryPage.c"
+ {
+ gchar** word_collection = NULL;
+ gint word_collection_length1 = 0;
+ gint _word_collection_size_ = 0;
+ gint word_it = 0;
+#line 30 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ word_collection = _tmp12_;
+#line 30 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ word_collection_length1 = _tmp11_;
+#line 30 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ for (word_it = 0; word_it < _tmp11_; word_it = word_it + 1) {
+#line 2550 "EventsDirectoryPage.c"
+ const gchar* word = NULL;
+#line 30 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ word = word_collection[word_it];
+#line 2554 "EventsDirectoryPage.c"
+ {
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp13_ = event_keywords;
+#line 31 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp14_ = word;
+#line 31 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp15_ = string_contains (_tmp13_, _tmp14_);
+#line 31 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (!_tmp15_) {
+#line 32 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = FALSE;
+#line 32 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (source);
+#line 32 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2573 "EventsDirectoryPage.c"
+ }
+ }
+ }
+ }
+#line 35 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = TRUE;
+#line 35 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (source);
+#line 35 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2584 "EventsDirectoryPage.c"
+}
+
+
+static EventsDirectoryPageEventsDirectorySearchViewFilter* events_directory_page_events_directory_search_view_filter_construct (GType object_type) {
+ EventsDirectoryPageEventsDirectorySearchViewFilter* self = NULL;
+#line 14 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = (EventsDirectoryPageEventsDirectorySearchViewFilter*) search_view_filter_construct (object_type);
+#line 14 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self;
+#line 2594 "EventsDirectoryPage.c"
+}
+
+
+static EventsDirectoryPageEventsDirectorySearchViewFilter* events_directory_page_events_directory_search_view_filter_new (void) {
+#line 14 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return events_directory_page_events_directory_search_view_filter_construct (EVENTS_DIRECTORY_PAGE_TYPE_EVENTS_DIRECTORY_SEARCH_VIEW_FILTER);
+#line 2601 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_events_directory_search_view_filter_class_init (EventsDirectoryPageEventsDirectorySearchViewFilterClass * klass) {
+#line 14 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_events_directory_search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 14 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = events_directory_page_events_directory_search_view_filter_real_get_criteria;
+#line 14 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((ViewFilterClass *) klass)->predicate = events_directory_page_events_directory_search_view_filter_real_predicate;
+#line 2612 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_events_directory_search_view_filter_instance_init (EventsDirectoryPageEventsDirectorySearchViewFilter * self) {
+}
+
+
+static GType events_directory_page_events_directory_search_view_filter_get_type (void) {
+ static volatile gsize events_directory_page_events_directory_search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&events_directory_page_events_directory_search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsDirectoryPageEventsDirectorySearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_directory_page_events_directory_search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsDirectoryPageEventsDirectorySearchViewFilter), 0, (GInstanceInitFunc) events_directory_page_events_directory_search_view_filter_instance_init, NULL };
+ GType events_directory_page_events_directory_search_view_filter_type_id;
+ events_directory_page_events_directory_search_view_filter_type_id = g_type_register_static (TYPE_SEARCH_VIEW_FILTER, "EventsDirectoryPageEventsDirectorySearchViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&events_directory_page_events_directory_search_view_filter_type_id__volatile, events_directory_page_events_directory_search_view_filter_type_id);
+ }
+ return events_directory_page_events_directory_search_view_filter_type_id__volatile;
+}
+
+
+static void events_directory_page_class_init (EventsDirectoryPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ events_directory_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_type_class_add_private (klass, sizeof (EventsDirectoryPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = events_directory_page_real_init_collect_ui_filenames;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = events_directory_page_real_init_collect_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((PageClass *) klass)->init_collect_toggle_action_entries = events_directory_page_real_init_collect_toggle_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((PageClass *) klass)->init_actions = events_directory_page_real_init_actions;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((PageClass *) klass)->update_actions = events_directory_page_real_update_actions;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((CheckerboardPageClass *) klass)->get_view_empty_message = events_directory_page_real_get_view_empty_message;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((CheckerboardPageClass *) klass)->get_filter_no_match_message = events_directory_page_real_get_filter_no_match_message;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((CheckerboardPageClass *) klass)->on_item_activated = events_directory_page_real_on_item_activated;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((CheckerboardPageClass *) klass)->get_search_view_filter = events_directory_page_real_get_search_view_filter;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = events_directory_page_finalize;
+#line 2657 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_instance_init (EventsDirectoryPage * self) {
+ EventsDirectoryPageEventsDirectorySearchViewFilter* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv = EVENTS_DIRECTORY_PAGE_GET_PRIVATE (self);
+#line 43 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = events_directory_page_events_directory_search_view_filter_new ();
+#line 43 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv->search_filter = _tmp0_;
+#line 2669 "EventsDirectoryPage.c"
+}
+
+
+static void events_directory_page_finalize (GObject* obj) {
+ EventsDirectoryPage * self;
+ GtkRadioAction* action = NULL;
+ GtkAction* _tmp0_ = NULL;
+ GtkRadioAction* _tmp1_ = NULL;
+ GtkRadioAction* _tmp2_ = NULL;
+ GtkRadioAction* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage);
+#line 72 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonSortEventsAscending");
+#line 72 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_radio_action_get_type ()) ? ((GtkRadioAction*) _tmp0_) : NULL;
+#line 72 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp1_ == NULL) {
+#line 72 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp0_);
+#line 2691 "EventsDirectoryPage.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ action = _tmp1_;
+#line 73 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = action;
+#line 73 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _vala_assert (_tmp2_ != NULL, "action != null");
+#line 74 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = action;
+#line 74 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_signal_parse_name ("changed", gtk_radio_action_get_type (), &_tmp4_, NULL, FALSE);
+#line 74 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _events_directory_page_on_sort_changed_gtk_radio_action_changed, self);
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (action);
+#line 41 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _view_manager_unref0 (self->view_manager);
+#line 43 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 7 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ G_OBJECT_CLASS (events_directory_page_parent_class)->finalize (obj);
+#line 2713 "EventsDirectoryPage.c"
+}
+
+
+GType events_directory_page_get_type (void) {
+ static volatile gsize events_directory_page_type_id__volatile = 0;
+ if (g_once_init_enter (&events_directory_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventsDirectoryPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) events_directory_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventsDirectoryPage), 0, (GInstanceInitFunc) events_directory_page_instance_init, NULL };
+ GType events_directory_page_type_id;
+ events_directory_page_type_id = g_type_register_static (TYPE_CHECKERBOARD_PAGE, "EventsDirectoryPage", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&events_directory_page_type_id__volatile, events_directory_page_type_id);
+ }
+ return events_directory_page_type_id__volatile;
+}
+
+
+MasterEventsDirectoryPage* master_events_directory_page_construct (GType object_type) {
+ MasterEventsDirectoryPage * self = NULL;
+ EventsDirectoryPageEventDirectoryManager* _tmp0_ = NULL;
+ EventsDirectoryPageEventDirectoryManager* _tmp1_ = NULL;
+ EventSourceCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = events_directory_page_event_directory_manager_new ();
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = _tmp0_;
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = event_global;
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection));
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = (MasterEventsDirectoryPage*) events_directory_page_construct (object_type, MASTER_EVENTS_DIRECTORY_PAGE_NAME, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_VIEW_MANAGER, ViewManager), _tmp4_);
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 233 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _view_manager_unref0 (_tmp1_);
+#line 232 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self;
+#line 2754 "EventsDirectoryPage.c"
+}
+
+
+MasterEventsDirectoryPage* master_events_directory_page_new (void) {
+#line 232 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return master_events_directory_page_construct (TYPE_MASTER_EVENTS_DIRECTORY_PAGE);
+#line 2761 "EventsDirectoryPage.c"
+}
+
+
+static void master_events_directory_page_class_init (MasterEventsDirectoryPageClass * klass) {
+#line 229 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ master_events_directory_page_parent_class = g_type_class_peek_parent (klass);
+#line 2768 "EventsDirectoryPage.c"
+}
+
+
+static void master_events_directory_page_instance_init (MasterEventsDirectoryPage * self) {
+}
+
+
+GType master_events_directory_page_get_type (void) {
+ static volatile gsize master_events_directory_page_type_id__volatile = 0;
+ if (g_once_init_enter (&master_events_directory_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MasterEventsDirectoryPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) master_events_directory_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MasterEventsDirectoryPage), 0, (GInstanceInitFunc) master_events_directory_page_instance_init, NULL };
+ GType master_events_directory_page_type_id;
+ master_events_directory_page_type_id = g_type_register_static (TYPE_EVENTS_DIRECTORY_PAGE, "MasterEventsDirectoryPage", &g_define_type_info, 0);
+ g_once_init_leave (&master_events_directory_page_type_id__volatile, master_events_directory_page_type_id);
+ }
+ return master_events_directory_page_type_id__volatile;
+}
+
+
+GType sub_events_directory_page_directory_type_get_type (void) {
+ static volatile gsize sub_events_directory_page_directory_type_type_id__volatile = 0;
+ if (g_once_init_enter (&sub_events_directory_page_directory_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_YEAR, "SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_YEAR", "year"}, {SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_MONTH, "SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_MONTH", "month"}, {SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_UNDATED, "SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_UNDATED", "undated"}, {0, NULL, NULL}};
+ GType sub_events_directory_page_directory_type_type_id;
+ sub_events_directory_page_directory_type_type_id = g_enum_register_static ("SubEventsDirectoryPageDirectoryType", values);
+ g_once_init_leave (&sub_events_directory_page_directory_type_type_id__volatile, sub_events_directory_page_directory_type_type_id);
+ }
+ return sub_events_directory_page_directory_type_type_id__volatile;
+}
+
+
+static gchar* g_time_format (struct tm *self, const gchar* format) {
+ gchar* result = NULL;
+ gchar* buffer = NULL;
+ gchar* _tmp0_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+#line 2709 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (format != NULL, NULL);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 64);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = _tmp0_;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer_length1 = 64;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _buffer_size_ = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = buffer;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = format;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ strftime (_tmp1_, _tmp1__length1, _tmp2_, &(*self));
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = buffer;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = buffer_length1;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_strdup ((const gchar*) _tmp3_);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = (g_free (buffer), NULL);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2842 "EventsDirectoryPage.c"
+}
+
+
+SubEventsDirectoryPage* sub_events_directory_page_construct (GType object_type, SubEventsDirectoryPageDirectoryType type, struct tm* time) {
+ SubEventsDirectoryPage * self = NULL;
+ gchar* page_name = NULL;
+ SubEventsDirectoryPageDirectoryType _tmp0_ = 0;
+ const gchar* _tmp5_ = NULL;
+ SubEventsDirectoryPageDirectoryType _tmp6_ = 0;
+ struct tm _tmp7_ = {0};
+ SubEventsDirectoryPageSubEventDirectoryManager* _tmp8_ = NULL;
+ SubEventsDirectoryPageSubEventDirectoryManager* _tmp9_ = NULL;
+#line 290 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (time != NULL, NULL);
+#line 292 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = type;
+#line 292 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp0_ == SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_UNDATED) {
+#line 2861 "EventsDirectoryPage.c"
+ gchar* _tmp1_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = g_strdup (SUB_EVENTS_DIRECTORY_PAGE_UNDATED_PAGE_NAME);
+#line 293 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (page_name);
+#line 293 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ page_name = _tmp1_;
+#line 2869 "EventsDirectoryPage.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+ SubEventsDirectoryPageDirectoryType _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+#line 295 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = type;
+#line 295 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp3_ == SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_YEAR) {
+#line 295 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = SUB_EVENTS_DIRECTORY_PAGE_YEAR_FORMAT;
+#line 2880 "EventsDirectoryPage.c"
+ } else {
+#line 295 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = SUB_EVENTS_DIRECTORY_PAGE_MONTH_FORMAT;
+#line 2884 "EventsDirectoryPage.c"
+ }
+#line 295 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = g_time_format (time, _tmp2_);
+#line 295 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (page_name);
+#line 295 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ page_name = _tmp4_;
+#line 2892 "EventsDirectoryPage.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = page_name;
+#line 298 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp6_ = type;
+#line 298 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = *time;
+#line 298 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = sub_events_directory_page_sub_event_directory_manager_new (_tmp6_, &_tmp7_);
+#line 298 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = _tmp8_;
+#line 298 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = (SubEventsDirectoryPage*) events_directory_page_construct (object_type, _tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_VIEW_MANAGER, ViewManager), NULL);
+#line 298 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _view_manager_unref0 (_tmp9_);
+#line 290 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_free0 (page_name);
+#line 290 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self;
+#line 2912 "EventsDirectoryPage.c"
+}
+
+
+SubEventsDirectoryPage* sub_events_directory_page_new (SubEventsDirectoryPageDirectoryType type, struct tm* time) {
+#line 290 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return sub_events_directory_page_construct (TYPE_SUB_EVENTS_DIRECTORY_PAGE, type, time);
+#line 2919 "EventsDirectoryPage.c"
+}
+
+
+gint sub_events_directory_page_get_month (SubEventsDirectoryPage* self) {
+ gint result = 0;
+ ViewManager* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 301 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_SUB_EVENTS_DIRECTORY_PAGE (self), 0);
+#line 302 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage)->view_manager;
+#line 302 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = sub_events_directory_page_sub_event_directory_manager_get_month (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManager));
+#line 302 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 302 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2937 "EventsDirectoryPage.c"
+}
+
+
+gint sub_events_directory_page_get_year (SubEventsDirectoryPage* self) {
+ gint result = 0;
+ ViewManager* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 305 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_SUB_EVENTS_DIRECTORY_PAGE (self), 0);
+#line 306 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage)->view_manager;
+#line 306 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = sub_events_directory_page_sub_event_directory_manager_get_year (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManager));
+#line 306 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 306 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2955 "EventsDirectoryPage.c"
+}
+
+
+SubEventsDirectoryPageDirectoryType sub_events_directory_page_get_event_directory_type (SubEventsDirectoryPage* self) {
+ SubEventsDirectoryPageDirectoryType result = 0;
+ ViewManager* _tmp0_ = NULL;
+ SubEventsDirectoryPageDirectoryType _tmp1_ = 0;
+#line 309 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_SUB_EVENTS_DIRECTORY_PAGE (self), 0);
+#line 310 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage)->view_manager;
+#line 310 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = sub_events_directory_page_sub_event_directory_manager_get_event_directory_type (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManager));
+#line 310 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp1_;
+#line 310 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 2973 "EventsDirectoryPage.c"
+}
+
+
+static SubEventsDirectoryPageSubEventDirectoryManager* sub_events_directory_page_sub_event_directory_manager_construct (GType object_type, SubEventsDirectoryPageDirectoryType type, struct tm* time) {
+ SubEventsDirectoryPageSubEventDirectoryManager* self = NULL;
+ SubEventsDirectoryPageDirectoryType _tmp0_ = 0;
+ SubEventsDirectoryPageDirectoryType _tmp3_ = 0;
+ struct tm _tmp4_ = {0};
+ gint _tmp5_ = 0;
+#line 253 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (time != NULL, NULL);
+#line 254 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = (SubEventsDirectoryPageSubEventDirectoryManager*) events_directory_page_event_directory_manager_construct (object_type);
+#line 256 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = type;
+#line 256 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp0_ == SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_MONTH) {
+#line 2991 "EventsDirectoryPage.c"
+ struct tm _tmp1_ = {0};
+ gint _tmp2_ = 0;
+#line 257 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = *time;
+#line 257 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = _tmp1_.tm_mon;
+#line 257 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv->month = _tmp2_;
+#line 3000 "EventsDirectoryPage.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = type;
+#line 258 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv->type = _tmp3_;
+#line 259 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = *time;
+#line 259 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = _tmp4_.tm_year;
+#line 259 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv->year = _tmp5_;
+#line 253 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return self;
+#line 3014 "EventsDirectoryPage.c"
+}
+
+
+static SubEventsDirectoryPageSubEventDirectoryManager* sub_events_directory_page_sub_event_directory_manager_new (SubEventsDirectoryPageDirectoryType type, struct tm* time) {
+#line 253 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return sub_events_directory_page_sub_event_directory_manager_construct (SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, type, time);
+#line 3021 "EventsDirectoryPage.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 3036 "EventsDirectoryPage.c"
+}
+
+
+static gboolean sub_events_directory_page_sub_event_directory_manager_real_include_in_view (ViewManager* base, DataSource* source) {
+ SubEventsDirectoryPageSubEventDirectoryManager * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ EventSource* event = NULL;
+ DataSource* _tmp2_ = NULL;
+ EventSource* _tmp3_ = NULL;
+ struct tm event_time = {0};
+ EventSource* _tmp4_ = NULL;
+ time_t _tmp5_ = 0;
+ struct tm _tmp6_ = {0};
+ struct tm _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManager);
+#line 262 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 263 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = source;
+#line 263 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp1_ = VIEW_MANAGER_CLASS (sub_events_directory_page_sub_event_directory_manager_parent_class)->include_in_view (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER, EventsDirectoryPageEventDirectoryManager), TYPE_VIEW_MANAGER, ViewManager), _tmp0_);
+#line 263 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (!_tmp1_) {
+#line 264 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = FALSE;
+#line 264 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 3069 "EventsDirectoryPage.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp2_ = source;
+#line 266 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_EVENT_SOURCE, EventSource));
+#line 266 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ event = _tmp3_;
+#line 267 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp4_ = event;
+#line 267 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp5_ = event_source_get_start_time (_tmp4_);
+#line 267 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_time_local (_tmp5_, &_tmp6_);
+#line 267 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ event_time = _tmp6_;
+#line 268 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp7_ = event_time;
+#line 268 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp8_ = _tmp7_.tm_year;
+#line 268 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp9_ = self->priv->year;
+#line 268 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp8_ == _tmp9_) {
+#line 3093 "EventsDirectoryPage.c"
+ SubEventsDirectoryPageDirectoryType _tmp10_ = 0;
+#line 269 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp10_ = self->priv->type;
+#line 269 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ if (_tmp10_ == SUB_EVENTS_DIRECTORY_PAGE_DIRECTORY_TYPE_MONTH) {
+#line 3099 "EventsDirectoryPage.c"
+ struct tm _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 270 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp11_ = event_time;
+#line 270 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp12_ = _tmp11_.tm_mon;
+#line 270 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp13_ = self->priv->month;
+#line 270 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp12_ == _tmp13_;
+#line 270 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (event);
+#line 270 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 3115 "EventsDirectoryPage.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = TRUE;
+#line 272 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (event);
+#line 272 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 3123 "EventsDirectoryPage.c"
+ }
+#line 274 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = FALSE;
+#line 274 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _g_object_unref0 (event);
+#line 274 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 3131 "EventsDirectoryPage.c"
+}
+
+
+static gint sub_events_directory_page_sub_event_directory_manager_get_month (SubEventsDirectoryPageSubEventDirectoryManager* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 277 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (SUB_EVENTS_DIRECTORY_PAGE_IS_SUB_EVENT_DIRECTORY_MANAGER (self), 0);
+#line 278 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = self->priv->month;
+#line 278 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp0_;
+#line 278 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 3146 "EventsDirectoryPage.c"
+}
+
+
+static gint sub_events_directory_page_sub_event_directory_manager_get_year (SubEventsDirectoryPageSubEventDirectoryManager* self) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+#line 281 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (SUB_EVENTS_DIRECTORY_PAGE_IS_SUB_EVENT_DIRECTORY_MANAGER (self), 0);
+#line 282 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = self->priv->year;
+#line 282 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp0_;
+#line 282 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 3161 "EventsDirectoryPage.c"
+}
+
+
+static SubEventsDirectoryPageDirectoryType sub_events_directory_page_sub_event_directory_manager_get_event_directory_type (SubEventsDirectoryPageSubEventDirectoryManager* self) {
+ SubEventsDirectoryPageDirectoryType result = 0;
+ SubEventsDirectoryPageDirectoryType _tmp0_ = 0;
+#line 285 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_return_val_if_fail (SUB_EVENTS_DIRECTORY_PAGE_IS_SUB_EVENT_DIRECTORY_MANAGER (self), 0);
+#line 286 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ _tmp0_ = self->priv->type;
+#line 286 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ result = _tmp0_;
+#line 286 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ return result;
+#line 3176 "EventsDirectoryPage.c"
+}
+
+
+static void sub_events_directory_page_sub_event_directory_manager_class_init (SubEventsDirectoryPageSubEventDirectoryManagerClass * klass) {
+#line 248 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ sub_events_directory_page_sub_event_directory_manager_parent_class = g_type_class_peek_parent (klass);
+#line 248 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((ViewManagerClass *) klass)->finalize = sub_events_directory_page_sub_event_directory_manager_finalize;
+#line 248 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ g_type_class_add_private (klass, sizeof (SubEventsDirectoryPageSubEventDirectoryManagerPrivate));
+#line 248 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ ((ViewManagerClass *) klass)->include_in_view = sub_events_directory_page_sub_event_directory_manager_real_include_in_view;
+#line 3189 "EventsDirectoryPage.c"
+}
+
+
+static void sub_events_directory_page_sub_event_directory_manager_instance_init (SubEventsDirectoryPageSubEventDirectoryManager * self) {
+#line 248 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv = SUB_EVENTS_DIRECTORY_PAGE_SUB_EVENT_DIRECTORY_MANAGER_GET_PRIVATE (self);
+#line 249 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv->month = 0;
+#line 250 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self->priv->year = 0;
+#line 3200 "EventsDirectoryPage.c"
+}
+
+
+static void sub_events_directory_page_sub_event_directory_manager_finalize (ViewManager* obj) {
+ SubEventsDirectoryPageSubEventDirectoryManager * self;
+#line 248 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SUB_EVENTS_DIRECTORY_PAGE_TYPE_SUB_EVENT_DIRECTORY_MANAGER, SubEventsDirectoryPageSubEventDirectoryManager);
+#line 248 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ VIEW_MANAGER_CLASS (sub_events_directory_page_sub_event_directory_manager_parent_class)->finalize (obj);
+#line 3210 "EventsDirectoryPage.c"
+}
+
+
+static GType sub_events_directory_page_sub_event_directory_manager_get_type (void) {
+ static volatile gsize sub_events_directory_page_sub_event_directory_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&sub_events_directory_page_sub_event_directory_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SubEventsDirectoryPageSubEventDirectoryManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sub_events_directory_page_sub_event_directory_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SubEventsDirectoryPageSubEventDirectoryManager), 0, (GInstanceInitFunc) sub_events_directory_page_sub_event_directory_manager_instance_init, NULL };
+ GType sub_events_directory_page_sub_event_directory_manager_type_id;
+ sub_events_directory_page_sub_event_directory_manager_type_id = g_type_register_static (EVENTS_DIRECTORY_PAGE_TYPE_EVENT_DIRECTORY_MANAGER, "SubEventsDirectoryPageSubEventDirectoryManager", &g_define_type_info, 0);
+ g_once_init_leave (&sub_events_directory_page_sub_event_directory_manager_type_id__volatile, sub_events_directory_page_sub_event_directory_manager_type_id);
+ }
+ return sub_events_directory_page_sub_event_directory_manager_type_id__volatile;
+}
+
+
+static void sub_events_directory_page_class_init (SubEventsDirectoryPageClass * klass) {
+#line 237 "/home/jens/Source/shotwell/src/events/EventsDirectoryPage.vala"
+ sub_events_directory_page_parent_class = g_type_class_peek_parent (klass);
+#line 3229 "EventsDirectoryPage.c"
+}
+
+
+static void sub_events_directory_page_instance_init (SubEventsDirectoryPage * self) {
+}
+
+
+GType sub_events_directory_page_get_type (void) {
+ static volatile gsize sub_events_directory_page_type_id__volatile = 0;
+ if (g_once_init_enter (&sub_events_directory_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SubEventsDirectoryPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sub_events_directory_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SubEventsDirectoryPage), 0, (GInstanceInitFunc) sub_events_directory_page_instance_init, NULL };
+ GType sub_events_directory_page_type_id;
+ sub_events_directory_page_type_id = g_type_register_static (TYPE_EVENTS_DIRECTORY_PAGE, "SubEventsDirectoryPage", &g_define_type_info, 0);
+ g_once_init_leave (&sub_events_directory_page_type_id__volatile, sub_events_directory_page_type_id);
+ }
+ return sub_events_directory_page_type_id__volatile;
+}
+
+
+
diff --git a/src/events/mk/events.mk b/src/events/mk/events.mk
deleted file mode 100644
index d09fc0f..0000000
--- a/src/events/mk/events.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Events
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := events
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- Branch.vala \
- EventsDirectoryPage.vala \
- EventPage.vala \
- EventDirectoryItem.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Sidebar
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/folders/Branch.c b/src/folders/Branch.c
new file mode 100644
index 0000000..7736860
--- /dev/null
+++ b/src/folders/Branch.c
@@ -0,0 +1,2108 @@
+/* Branch.c generated by valac 0.32.1, the Vala compiler
+ * generated from Branch.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <glib/gi18n-lib.h>
+#include <gdk/gdk.h>
+
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define FOLDERS_TYPE_BRANCH (folders_branch_get_type ())
+#define FOLDERS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLDERS_TYPE_BRANCH, FoldersBranch))
+#define FOLDERS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLDERS_TYPE_BRANCH, FoldersBranchClass))
+#define FOLDERS_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLDERS_TYPE_BRANCH))
+#define FOLDERS_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLDERS_TYPE_BRANCH))
+#define FOLDERS_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLDERS_TYPE_BRANCH, FoldersBranchClass))
+
+typedef struct _FoldersBranch FoldersBranch;
+typedef struct _FoldersBranchClass FoldersBranchClass;
+typedef struct _FoldersBranchPrivate FoldersBranchPrivate;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+
+#define FOLDERS_TYPE_SIDEBAR_ENTRY (folders_sidebar_entry_get_type ())
+#define FOLDERS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry))
+#define FOLDERS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntryClass))
+#define FOLDERS_IS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLDERS_TYPE_SIDEBAR_ENTRY))
+#define FOLDERS_IS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLDERS_TYPE_SIDEBAR_ENTRY))
+#define FOLDERS_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntryClass))
+
+typedef struct _FoldersSidebarEntry FoldersSidebarEntry;
+typedef struct _FoldersSidebarEntryClass FoldersSidebarEntryClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+
+#define FOLDERS_TYPE_ROOT (folders_root_get_type ())
+#define FOLDERS_ROOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLDERS_TYPE_ROOT, FoldersRoot))
+#define FOLDERS_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLDERS_TYPE_ROOT, FoldersRootClass))
+#define FOLDERS_IS_ROOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLDERS_TYPE_ROOT))
+#define FOLDERS_IS_ROOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLDERS_TYPE_ROOT))
+#define FOLDERS_ROOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLDERS_TYPE_ROOT, FoldersRootClass))
+
+typedef struct _FoldersRoot FoldersRoot;
+typedef struct _FoldersRootClass FoldersRootClass;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+typedef struct _SidebarGroupingPrivate SidebarGroupingPrivate;
+
+#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
+#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
+#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
+#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))
+
+typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
+typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
+typedef struct _SidebarHeaderPrivate SidebarHeaderPrivate;
+typedef struct _FoldersRootPrivate FoldersRootPrivate;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+typedef struct _FoldersSidebarEntryPrivate FoldersSidebarEntryPrivate;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define FOLDERS_TYPE_PAGE (folders_page_get_type ())
+#define FOLDERS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLDERS_TYPE_PAGE, FoldersPage))
+#define FOLDERS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLDERS_TYPE_PAGE, FoldersPageClass))
+#define FOLDERS_IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLDERS_TYPE_PAGE))
+#define FOLDERS_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLDERS_TYPE_PAGE))
+#define FOLDERS_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLDERS_TYPE_PAGE, FoldersPageClass))
+
+typedef struct _FoldersPage FoldersPage;
+typedef struct _FoldersPageClass FoldersPageClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+struct _FoldersBranch {
+ SidebarBranch parent_instance;
+ FoldersBranchPrivate * priv;
+};
+
+struct _FoldersBranchClass {
+ SidebarBranchClass parent_class;
+};
+
+struct _FoldersBranchPrivate {
+ GeeHashMap* entries;
+ GFile* home_dir;
+};
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _SidebarGrouping {
+ GObject parent_instance;
+ SidebarGroupingPrivate * priv;
+};
+
+struct _SidebarGroupingClass {
+ GObjectClass parent_class;
+};
+
+struct _SidebarEmphasizableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
+};
+
+struct _SidebarHeader {
+ SidebarGrouping parent_instance;
+ SidebarHeaderPrivate * priv;
+};
+
+struct _SidebarHeaderClass {
+ SidebarGroupingClass parent_class;
+};
+
+struct _FoldersRoot {
+ SidebarHeader parent_instance;
+ FoldersRootPrivate * priv;
+};
+
+struct _FoldersRootClass {
+ SidebarHeaderClass parent_class;
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _FoldersSidebarEntry {
+ SidebarSimplePageEntry parent_instance;
+ FoldersSidebarEntryPrivate * priv;
+};
+
+struct _FoldersSidebarEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _FoldersSidebarEntryPrivate {
+ GFile* _dir;
+ gchar* _collation;
+ gint _count;
+};
+
+
+static gpointer folders_branch_parent_class = NULL;
+static gpointer folders_root_parent_class = NULL;
+static gpointer folders_sidebar_entry_parent_class = NULL;
+extern gchar* folders_icon;
+extern gchar* folders_have_photos_icon;
+static SidebarExpandableEntryIface* folders_sidebar_entry_sidebar_expandable_entry_parent_iface = NULL;
+
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType folders_branch_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType folders_sidebar_entry_get_type (void) G_GNUC_CONST;
+#define FOLDERS_BRANCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), FOLDERS_TYPE_BRANCH, FoldersBranchPrivate))
+enum {
+ FOLDERS_BRANCH_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+static void folders_branch_on_media_contents_altered (FoldersBranch* self, GeeIterable* added, GeeIterable* removed);
+static void _folders_branch_on_media_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+guint file_hash (GFile* file);
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self);
+gboolean file_equal (GFile* a, GFile* b);
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self);
+FoldersBranch* folders_branch_new (void);
+FoldersBranch* folders_branch_construct (GType object_type);
+FoldersRoot* folders_root_new (void);
+FoldersRoot* folders_root_construct (GType object_type);
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+GType folders_root_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+static gint folders_branch_comparator (SidebarEntry* a, SidebarEntry* b);
+static gint _folders_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+GeeCollection* data_collection_get_all (DataCollection* self);
+const gchar* folders_sidebar_entry_get_collation (FoldersSidebarEntry* self);
+gchar* sidebar_simple_page_entry_get_sidebar_name (SidebarSimplePageEntry* self);
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+static void folders_branch_on_master_source_replaced (FoldersBranch* self, MediaSource* media_source, GFile* old_file, GFile* new_file);
+static void folders_branch_remove_entry (FoldersBranch* self, GFile* file);
+static void folders_branch_add_entry (FoldersBranch* self, MediaSource* media);
+static void _folders_branch_on_master_source_replaced_media_source_master_replaced (MediaSource* _sender, GFile* old_file, GFile* new_file, gpointer self);
+GFile* media_source_get_file (MediaSource* self);
+FoldersSidebarEntry* folders_sidebar_entry_new (GFile* dir);
+FoldersSidebarEntry* folders_sidebar_entry_construct (GType object_type, GFile* dir);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator);
+gint folders_sidebar_entry_get_count (FoldersSidebarEntry* self);
+void folders_sidebar_entry_set_count (FoldersSidebarEntry* self, gint value);
+gint sidebar_branch_get_child_count (SidebarBranch* self, SidebarEntry* parent);
+GFile* folders_sidebar_entry_get_dir (FoldersSidebarEntry* self);
+SidebarEntry* sidebar_branch_get_parent (SidebarBranch* self, SidebarEntry* entry);
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry);
+static void folders_branch_finalize (GObject* obj);
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST;
+enum {
+ FOLDERS_ROOT_DUMMY_PROPERTY
+};
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized);
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+#define FOLDERS_SIDEBAR_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntryPrivate))
+enum {
+ FOLDERS_SIDEBAR_ENTRY_DUMMY_PROPERTY,
+ FOLDERS_SIDEBAR_ENTRY_DIR,
+ FOLDERS_SIDEBAR_ENTRY_COLLATION,
+ FOLDERS_SIDEBAR_ENTRY_COUNT
+};
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+static void folders_sidebar_entry_set_dir (FoldersSidebarEntry* self, GFile* value);
+gchar* g_utf8_collate_key_for_filename (const gchar* str, gssize len);
+static void folders_sidebar_entry_set_collation (FoldersSidebarEntry* self, const gchar* value);
+static gchar* folders_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+static gchar* folders_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static gchar* folders_sidebar_entry_real_to_string (SidebarSimplePageEntry* base);
+static gboolean folders_sidebar_entry_real_expand_on_select (SidebarExpandableEntry* base);
+static Page* folders_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+FoldersPage* folders_page_new (GFile* dir);
+FoldersPage* folders_page_construct (GType object_type, GFile* dir);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType folders_page_get_type (void) G_GNUC_CONST;
+gchar* sidebar_simple_page_entry_get_sidebar_icon (SidebarSimplePageEntry* self);
+static void folders_sidebar_entry_finalize (GObject* obj);
+static void _vala_folders_sidebar_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_folders_sidebar_entry_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+
+
+static void _folders_branch_on_media_contents_altered_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 28 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_on_media_contents_altered ((FoldersBranch*) self, added, removed);
+#line 564 "Branch.c"
+}
+
+
+static guint _file_hash_gee_hash_data_func (gconstpointer v, gpointer self) {
+ guint result;
+ result = file_hash ((GFile*) v);
+#line 8 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 573 "Branch.c"
+}
+
+
+static gboolean _file_equal_gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gboolean result;
+ result = file_equal ((GFile*) a, (GFile*) b);
+#line 8 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 582 "Branch.c"
+}
+
+
+static gint _folders_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = folders_branch_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 13 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 591 "Branch.c"
+}
+
+
+FoldersBranch* folders_branch_construct (GType object_type) {
+ FoldersBranch * self = NULL;
+ FoldersRoot* _tmp0_ = NULL;
+ FoldersRoot* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = folders_root_new ();
+#line 13 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 13 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = (FoldersBranch*) sidebar_branch_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, SIDEBAR_TYPE_ENTRY, SidebarEntry), SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING, _folders_branch_comparator_gcompare_func, NULL);
+#line 13 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 15 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = g_get_home_dir ();
+#line 15 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = g_file_new_for_path (_tmp2_);
+#line 15 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (self->priv->home_dir);
+#line 15 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv->home_dir = _tmp3_;
+#line 617 "Branch.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ MediaCollectionRegistry* _tmp4_ = NULL;
+ MediaCollectionRegistry* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = media_collection_registry_get_instance ();
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = media_collection_registry_get_all (_tmp5_);
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp7_ = _tmp6_;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp9_ = _tmp8_;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp7_);
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _media_collection_registry_unref0 (_tmp5_);
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _sources_it = _tmp9_;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ while (TRUE) {
+#line 646 "Branch.c"
+ GeeIterator* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+ MediaSourceCollection* _tmp14_ = NULL;
+ GeeCollection* _tmp15_ = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ MediaSourceCollection* _tmp17_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = _sources_it;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp11_ = gee_iterator_next (_tmp10_);
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!_tmp11_) {
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 664 "Branch.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp12_ = _sources_it;
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp13_ = gee_iterator_get (_tmp12_);
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ sources = (MediaSourceCollection*) _tmp13_;
+#line 19 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp14_ = sources;
+#line 19 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp15_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection));
+#line 19 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp16_ = _tmp15_;
+#line 19 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_on_media_contents_altered (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_ITERABLE, GeeIterable), NULL);
+#line 19 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp16_);
+#line 22 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp17_ = sources;
+#line 22 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _folders_branch_on_media_contents_altered_data_collection_contents_altered, self, 0);
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _data_collection_unref0 (sources);
+#line 688 "Branch.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_sources_it);
+#line 692 "Branch.c"
+ }
+#line 12 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return self;
+#line 696 "Branch.c"
+}
+
+
+FoldersBranch* folders_branch_new (void) {
+#line 12 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return folders_branch_construct (FOLDERS_TYPE_BRANCH);
+#line 703 "Branch.c"
+}
+
+
+static gint folders_branch_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gint coll_key_equality = 0;
+ GCompareFunc _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 31 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 31 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 32 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = a;
+#line 32 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = b;
+#line 32 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 33 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = 0;
+#line 33 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 735 "Branch.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = g_strcmp0;
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = a;
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = folders_sidebar_entry_get_collation (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry));
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = b;
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp7_ = folders_sidebar_entry_get_collation (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry));
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp9_ = _tmp2_ (_tmp5_, _tmp8_);
+#line 35 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ coll_key_equality = _tmp9_;
+#line 38 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = coll_key_equality;
+#line 38 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp10_ == 0) {
+#line 759 "Branch.c"
+ GCompareFunc _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp11_ = g_strcmp0;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp12_ = a;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp13_ = sidebar_simple_page_entry_get_sidebar_name (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry));
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp15_ = b;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp16_ = sidebar_simple_page_entry_get_sidebar_name (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry));
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp17_ = _tmp16_;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp18_ = _tmp11_ (_tmp14_, _tmp17_);
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp19_ = _tmp18_;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_free0 (_tmp17_);
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_free0 (_tmp14_);
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = _tmp19_;
+#line 41 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 795 "Branch.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = coll_key_equality;
+#line 45 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 801 "Branch.c"
+}
+
+
+static void folders_branch_on_master_source_replaced (FoldersBranch* self, MediaSource* media_source, GFile* old_file, GFile* new_file) {
+ GFile* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (FOLDERS_IS_BRANCH (self));
+#line 48 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (media_source));
+#line 48 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (G_IS_FILE (old_file));
+#line 48 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (G_IS_FILE (new_file));
+#line 49 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = old_file;
+#line 49 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_remove_entry (self, _tmp0_);
+#line 50 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = media_source;
+#line 50 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_add_entry (self, _tmp1_);
+#line 824 "Branch.c"
+}
+
+
+static void _folders_branch_on_master_source_replaced_media_source_master_replaced (MediaSource* _sender, GFile* old_file, GFile* new_file, gpointer self) {
+#line 57 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_on_master_source_replaced ((FoldersBranch*) self, _sender, old_file, new_file);
+#line 831 "Branch.c"
+}
+
+
+static void folders_branch_on_media_contents_altered (FoldersBranch* self, GeeIterable* added, GeeIterable* removed) {
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp9_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (FOLDERS_IS_BRANCH (self));
+#line 53 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_ITERABLE (added));
+#line 53 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 54 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = added;
+#line 54 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp0_ != NULL) {
+#line 848 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = added;
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = gee_iterable_iterator (_tmp1_);
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _object_it = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ while (TRUE) {
+#line 861 "Branch.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ DataObject* _tmp7_ = NULL;
+ DataObject* _tmp8_ = NULL;
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = _object_it;
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!_tmp4_) {
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 877 "Branch.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = _object_it;
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ object = (DataObject*) _tmp6_;
+#line 56 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp7_ = object;
+#line 56 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_add_entry (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 57 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp8_ = object;
+#line 57 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE, MediaSource), "master-replaced", (GCallback) _folders_branch_on_master_source_replaced_media_source_master_replaced, self, 0);
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (object);
+#line 895 "Branch.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 899 "Branch.c"
+ }
+ }
+#line 61 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp9_ = removed;
+#line 61 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp9_ != NULL) {
+#line 906 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = removed;
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp11_ = gee_iterable_iterator (_tmp10_);
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _object_it = _tmp11_;
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ while (TRUE) {
+#line 919 "Branch.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ DataObject* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ GFile* _tmp18_ = NULL;
+ DataObject* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp12_ = _object_it;
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!_tmp13_) {
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 938 "Branch.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp14_ = _object_it;
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ object = (DataObject*) _tmp15_;
+#line 63 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp16_ = object;
+#line 63 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp17_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 63 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp18_ = _tmp17_;
+#line 63 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_remove_entry (self, _tmp18_);
+#line 63 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp18_);
+#line 64 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp19_ = object;
+#line 64 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_signal_parse_name ("master-replaced", TYPE_MEDIA_SOURCE, &_tmp20_, NULL, FALSE);
+#line 64 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_MEDIA_SOURCE, MediaSource), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp20_, 0, NULL, (GCallback) _folders_branch_on_master_source_replaced_media_source_master_replaced, self);
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (object);
+#line 964 "Branch.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 968 "Branch.c"
+ }
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 93 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 977 "Branch.c"
+}
+
+
+static void folders_branch_add_entry (FoldersBranch* self, MediaSource* media) {
+ GFile* file = NULL;
+ MediaSource* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GeeArrayList* elements = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GFile* parent = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ FoldersSidebarEntry* parent_entry = NULL;
+#line 69 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (FOLDERS_IS_BRANCH (self));
+#line 69 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (IS_MEDIA_SOURCE (media));
+#line 70 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = media;
+#line 70 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = media_source_get_file (_tmp0_);
+#line 70 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ file = _tmp1_;
+#line 72 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = gee_array_list_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 72 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ elements = _tmp2_;
+#line 75 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = file;
+#line 75 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = g_file_get_parent (_tmp3_);
+#line 75 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ parent = _tmp4_;
+#line 76 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ while (TRUE) {
+#line 1013 "Branch.c"
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp11_ = FALSE;
+ GeeArrayList* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = parent;
+#line 76 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!(_tmp5_ != NULL)) {
+#line 76 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 1031 "Branch.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = parent;
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp7_ = self->priv->home_dir;
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp8_ = g_file_get_parent (_tmp7_);
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp9_ = _tmp8_;
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = g_file_equal (_tmp6_, _tmp9_);
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp11_ = _tmp10_;
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp9_);
+#line 78 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp11_) {
+#line 79 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 1051 "Branch.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp12_ = elements;
+#line 81 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp13_ = parent;
+#line 81 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp13_);
+#line 83 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp14_ = parent;
+#line 83 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp15_ = g_file_get_parent (_tmp14_);
+#line 83 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent);
+#line 83 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ parent = _tmp15_;
+#line 1067 "Branch.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ parent_entry = NULL;
+#line 1071 "Branch.c"
+ {
+ gint ctr = 0;
+ GeeArrayList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp16_ = elements;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp17_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp18_ = _tmp17_;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ ctr = _tmp18_ - 1;
+#line 1085 "Branch.c"
+ {
+ gboolean _tmp19_ = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp19_ = TRUE;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ while (TRUE) {
+#line 1092 "Branch.c"
+ gint _tmp21_ = 0;
+ GFile* parent_dir = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gpointer _tmp24_ = NULL;
+ FoldersSidebarEntry* old_parent_entry = NULL;
+ FoldersSidebarEntry* _tmp25_ = NULL;
+ FoldersSidebarEntry* _tmp26_ = NULL;
+ GeeHashMap* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gpointer _tmp29_ = NULL;
+ FoldersSidebarEntry* _tmp30_ = NULL;
+ gint _tmp42_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!_tmp19_) {
+#line 1108 "Branch.c"
+ gint _tmp20_ = 0;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp20_ = ctr;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ ctr = _tmp20_ - 1;
+#line 1114 "Branch.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp19_ = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp21_ = ctr;
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!(_tmp21_ >= 0)) {
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 1124 "Branch.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp22_ = elements;
+#line 90 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp23_ = ctr;
+#line 90 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp24_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp23_);
+#line 90 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ parent_dir = (GFile*) _tmp24_;
+#line 93 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp25_ = parent_entry;
+#line 93 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp26_ = _g_object_ref0 (_tmp25_);
+#line 93 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ old_parent_entry = _tmp26_;
+#line 95 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp27_ = self->priv->entries;
+#line 95 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp28_ = parent_dir;
+#line 95 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp29_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp28_);
+#line 95 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent_entry);
+#line 95 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ parent_entry = (FoldersSidebarEntry*) _tmp29_;
+#line 96 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp30_ = parent_entry;
+#line 96 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp30_ == NULL) {
+#line 1154 "Branch.c"
+ GFile* _tmp31_ = NULL;
+ FoldersSidebarEntry* _tmp32_ = NULL;
+ GeeHashMap* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ FoldersSidebarEntry* _tmp35_ = NULL;
+ SidebarEntry* _tmp36_ = NULL;
+ FoldersSidebarEntry* _tmp37_ = NULL;
+ FoldersSidebarEntry* _tmp41_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp31_ = parent_dir;
+#line 97 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp32_ = folders_sidebar_entry_new (_tmp31_);
+#line 97 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent_entry);
+#line 97 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ parent_entry = _tmp32_;
+#line 98 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp33_ = self->priv->entries;
+#line 98 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp34_ = parent_dir;
+#line 98 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp35_ = parent_entry;
+#line 98 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp34_, _tmp35_);
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp37_ = old_parent_entry;
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp37_ == NULL) {
+#line 1183 "Branch.c"
+ SidebarEntry* _tmp38_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp38_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp36_);
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp36_ = _tmp38_;
+#line 1191 "Branch.c"
+ } else {
+ FoldersSidebarEntry* _tmp39_ = NULL;
+ SidebarEntry* _tmp40_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp39_ = old_parent_entry;
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp40_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp36_);
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp36_ = _tmp40_;
+#line 1203 "Branch.c"
+ }
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp41_ = parent_entry;
+#line 100 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 96 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp36_);
+#line 1211 "Branch.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp42_ = ctr;
+#line 104 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp42_ == 0) {
+#line 1217 "Branch.c"
+ FoldersSidebarEntry* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ gint _tmp45_ = 0;
+#line 105 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp43_ = parent_entry;
+#line 105 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp44_ = folders_sidebar_entry_get_count (_tmp43_);
+#line 105 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp45_ = _tmp44_;
+#line 105 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_set_count (_tmp43_, _tmp45_ + 1);
+#line 1229 "Branch.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (old_parent_entry);
+#line 89 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent_dir);
+#line 1235 "Branch.c"
+ }
+ }
+ }
+#line 69 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent_entry);
+#line 69 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent);
+#line 69 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (elements);
+#line 69 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (file);
+#line 1247 "Branch.c"
+}
+
+
+static void folders_branch_remove_entry (FoldersBranch* self, GFile* file) {
+ FoldersSidebarEntry* folder_entry = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gpointer _tmp4_ = NULL;
+ FoldersSidebarEntry* _tmp5_ = NULL;
+ FoldersSidebarEntry* _tmp6_ = NULL;
+ FoldersSidebarEntry* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+ FoldersSidebarEntry* _tmp11_ = NULL;
+ FoldersSidebarEntry* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ FoldersSidebarEntry* prune_point = NULL;
+ FoldersSidebarEntry* _tmp17_ = NULL;
+ FoldersSidebarEntry* _tmp18_ = NULL;
+ FoldersSidebarEntry* _tmp19_ = NULL;
+ FoldersSidebarEntry* _tmp40_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (FOLDERS_IS_BRANCH (self));
+#line 109 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->entries;
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = file;
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = g_file_get_parent (_tmp1_);
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_);
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = (FoldersSidebarEntry*) _tmp4_;
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 110 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folder_entry = _tmp5_;
+#line 111 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = folder_entry;
+#line 111 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp6_ == NULL) {
+#line 112 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (folder_entry);
+#line 112 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return;
+#line 1301 "Branch.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp7_ = folder_entry;
+#line 114 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp8_ = folders_sidebar_entry_get_count (_tmp7_);
+#line 114 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp9_ = _tmp8_;
+#line 114 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _vala_assert (_tmp9_ > 0, "folder_entry.count > 0");
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp11_ = folder_entry;
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp12_ = folder_entry;
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp13_ = folders_sidebar_entry_get_count (_tmp12_);
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_set_count (_tmp12_, _tmp14_ - 1);
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if ((_tmp14_ - 1) > 0) {
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = TRUE;
+#line 1325 "Branch.c"
+ } else {
+ FoldersSidebarEntry* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp15_ = folder_entry;
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp16_ = sidebar_branch_get_child_count (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = _tmp16_ > 0;
+#line 1335 "Branch.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp10_) {
+#line 118 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (folder_entry);
+#line 118 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return;
+#line 1343 "Branch.c"
+ }
+#line 121 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp17_ = folder_entry;
+#line 121 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 121 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ prune_point = _tmp18_;
+#line 122 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp19_ = prune_point;
+#line 122 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _vala_assert (_tmp19_ != NULL, "prune_point != null");
+#line 1355 "Branch.c"
+ {
+ gboolean _tmp20_ = FALSE;
+#line 124 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp20_ = TRUE;
+#line 124 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ while (TRUE) {
+#line 1362 "Branch.c"
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp21_ = NULL;
+ FoldersSidebarEntry* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ FoldersSidebarEntry* parent = NULL;
+ FoldersSidebarEntry* _tmp27_ = NULL;
+ SidebarEntry* _tmp28_ = NULL;
+ FoldersSidebarEntry* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ gboolean _tmp31_ = FALSE;
+ FoldersSidebarEntry* _tmp32_ = NULL;
+ FoldersSidebarEntry* _tmp38_ = NULL;
+ FoldersSidebarEntry* _tmp39_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!_tmp20_) {
+#line 1381 "Branch.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp20_ = FALSE;
+#line 125 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp21_ = self->priv->entries;
+#line 125 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp22_ = prune_point;
+#line 125 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp23_ = folders_sidebar_entry_get_dir (_tmp22_);
+#line 125 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp24_ = _tmp23_;
+#line 125 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp25_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_, NULL);
+#line 125 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ removed = _tmp25_;
+#line 126 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp26_ = removed;
+#line 126 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _vala_assert (_tmp26_, "removed");
+#line 128 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp27_ = prune_point;
+#line 128 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp28_ = sidebar_branch_get_parent (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 128 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp29_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp28_, FOLDERS_TYPE_SIDEBAR_ENTRY) ? ((FoldersSidebarEntry*) _tmp28_) : NULL;
+#line 128 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp29_ == NULL) {
+#line 128 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp28_);
+#line 1411 "Branch.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ parent = _tmp29_;
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp32_ = parent;
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp32_ == NULL) {
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp31_ = TRUE;
+#line 1421 "Branch.c"
+ } else {
+ FoldersSidebarEntry* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp33_ = parent;
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp34_ = folders_sidebar_entry_get_count (_tmp33_);
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp35_ = _tmp34_;
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp31_ = _tmp35_ != 0;
+#line 1434 "Branch.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp31_) {
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp30_ = TRUE;
+#line 1440 "Branch.c"
+ } else {
+ FoldersSidebarEntry* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp36_ = parent;
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp37_ = sidebar_branch_get_child_count (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp30_ = _tmp37_ > 1;
+#line 1450 "Branch.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp30_) {
+#line 130 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent);
+#line 130 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 1458 "Branch.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp38_ = parent;
+#line 132 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp39_ = _g_object_ref0 (_tmp38_);
+#line 132 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (prune_point);
+#line 132 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ prune_point = _tmp39_;
+#line 124 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (parent);
+#line 1470 "Branch.c"
+ }
+ }
+#line 135 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp40_ = prune_point;
+#line 135 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 109 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (prune_point);
+#line 109 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (folder_entry);
+#line 1481 "Branch.c"
+}
+
+
+static void folders_branch_class_init (FoldersBranchClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_branch_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_type_class_add_private (klass, sizeof (FoldersBranchPrivate));
+#line 7 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = folders_branch_finalize;
+#line 1492 "Branch.c"
+}
+
+
+static void folders_branch_instance_init (FoldersBranch * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv = FOLDERS_BRANCH_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_FILE, (GBoxedCopyFunc) g_object_ref, g_object_unref, FOLDERS_TYPE_SIDEBAR_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, _file_hash_gee_hash_data_func, NULL, NULL, _file_equal_gee_equal_data_func, NULL, NULL, NULL, NULL, NULL);
+#line 8 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv->entries = _tmp0_;
+#line 1504 "Branch.c"
+}
+
+
+static void folders_branch_finalize (GObject* obj) {
+ FoldersBranch * self;
+#line 7 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, FOLDERS_TYPE_BRANCH, FoldersBranch);
+#line 1512 "Branch.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _sources_it = _tmp5_;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ while (TRUE) {
+#line 1541 "Branch.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = _sources_it;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (!_tmp7_) {
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 1557 "Branch.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp8_ = _sources_it;
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ sources = (MediaSourceCollection*) _tmp9_;
+#line 28 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = sources;
+#line 28 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 28 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _folders_branch_on_media_contents_altered_data_collection_contents_altered, self);
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _data_collection_unref0 (sources);
+#line 1573 "Branch.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (_sources_it);
+#line 1577 "Branch.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (self->priv->entries);
+#line 10 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (self->priv->home_dir);
+#line 7 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_CLASS (folders_branch_parent_class)->finalize (obj);
+#line 1585 "Branch.c"
+}
+
+
+GType folders_branch_get_type (void) {
+ static volatile gsize folders_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&folders_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FoldersBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folders_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FoldersBranch), 0, (GInstanceInitFunc) folders_branch_instance_init, NULL };
+ GType folders_branch_type_id;
+ folders_branch_type_id = g_type_register_static (SIDEBAR_TYPE_BRANCH, "FoldersBranch", &g_define_type_info, 0);
+ g_once_init_leave (&folders_branch_type_id__volatile, folders_branch_type_id);
+ }
+ return folders_branch_type_id__volatile;
+}
+
+
+FoldersRoot* folders_root_construct (GType object_type) {
+ FoldersRoot * self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = _ ("Folders");
+#line 141 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = (FoldersRoot*) sidebar_header_construct (object_type, _tmp0_, TRUE);
+#line 140 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return self;
+#line 1610 "Branch.c"
+}
+
+
+FoldersRoot* folders_root_new (void) {
+#line 140 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return folders_root_construct (FOLDERS_TYPE_ROOT);
+#line 1617 "Branch.c"
+}
+
+
+static void folders_root_class_init (FoldersRootClass * klass) {
+#line 139 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_root_parent_class = g_type_class_peek_parent (klass);
+#line 1624 "Branch.c"
+}
+
+
+static void folders_root_instance_init (FoldersRoot * self) {
+}
+
+
+GType folders_root_get_type (void) {
+ static volatile gsize folders_root_type_id__volatile = 0;
+ if (g_once_init_enter (&folders_root_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FoldersRootClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folders_root_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FoldersRoot), 0, (GInstanceInitFunc) folders_root_instance_init, NULL };
+ GType folders_root_type_id;
+ folders_root_type_id = g_type_register_static (SIDEBAR_TYPE_HEADER, "FoldersRoot", &g_define_type_info, 0);
+ g_once_init_leave (&folders_root_type_id__volatile, folders_root_type_id);
+ }
+ return folders_root_type_id__volatile;
+}
+
+
+FoldersSidebarEntry* folders_sidebar_entry_construct (GType object_type, GFile* dir) {
+ FoldersSidebarEntry * self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 166 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), NULL);
+#line 166 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = (FoldersSidebarEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 167 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = dir;
+#line 167 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_set_dir (self, _tmp0_);
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = dir;
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = g_utf8_collate_key_for_filename (_tmp3_, (gssize) -1);
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_set_collation (self, _tmp5_);
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_free0 (_tmp5_);
+#line 168 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_free0 (_tmp3_);
+#line 166 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return self;
+#line 1678 "Branch.c"
+}
+
+
+FoldersSidebarEntry* folders_sidebar_entry_new (GFile* dir) {
+#line 166 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return folders_sidebar_entry_construct (FOLDERS_TYPE_SIDEBAR_ENTRY, dir);
+#line 1685 "Branch.c"
+}
+
+
+static gchar* folders_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ FoldersSidebarEntry * self;
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 172 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->_dir;
+#line 172 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 172 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = _tmp1_;
+#line 172 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1704 "Branch.c"
+}
+
+
+static gchar* folders_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ FoldersSidebarEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar* _tmp5_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = folders_sidebar_entry_get_count (self);
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp2_ == 0) {
+#line 1723 "Branch.c"
+ const gchar* _tmp3_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = folders_icon;
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = _tmp3_;
+#line 1729 "Branch.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = folders_have_photos_icon;
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = _tmp4_;
+#line 1736 "Branch.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = g_strdup (_tmp0_);
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = _tmp5_;
+#line 176 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1744 "Branch.c"
+}
+
+
+static gchar* folders_sidebar_entry_real_to_string (SidebarSimplePageEntry* base) {
+ FoldersSidebarEntry * self;
+ gchar* result = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 180 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->_dir;
+#line 180 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 180 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = _tmp1_;
+#line 180 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1763 "Branch.c"
+}
+
+
+static gboolean folders_sidebar_entry_real_expand_on_select (SidebarExpandableEntry* base) {
+ FoldersSidebarEntry * self;
+ gboolean result = FALSE;
+#line 183 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 184 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = TRUE;
+#line 184 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1776 "Branch.c"
+}
+
+
+static Page* folders_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ FoldersSidebarEntry * self;
+ Page* result = NULL;
+ GFile* _tmp0_ = NULL;
+ FoldersPage* _tmp1_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 188 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->_dir;
+#line 188 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = folders_page_new (_tmp0_);
+#line 188 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_object_ref_sink (_tmp1_);
+#line 188 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 188 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1797 "Branch.c"
+}
+
+
+GFile* folders_sidebar_entry_get_dir (FoldersSidebarEntry* self) {
+ GFile* result;
+ GFile* _tmp0_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_val_if_fail (FOLDERS_IS_SIDEBAR_ENTRY (self), NULL);
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->_dir;
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = _tmp0_;
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1812 "Branch.c"
+}
+
+
+static void folders_sidebar_entry_set_dir (FoldersSidebarEntry* self, GFile* value) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (FOLDERS_IS_SIDEBAR_ENTRY (self));
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = value;
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (self->priv->_dir);
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv->_dir = _tmp1_;
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_object_notify ((GObject *) self, "dir");
+#line 1831 "Branch.c"
+}
+
+
+const gchar* folders_sidebar_entry_get_collation (FoldersSidebarEntry* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_val_if_fail (FOLDERS_IS_SIDEBAR_ENTRY (self), NULL);
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->_collation;
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = _tmp0_;
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1846 "Branch.c"
+}
+
+
+static void folders_sidebar_entry_set_collation (FoldersSidebarEntry* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (FOLDERS_IS_SIDEBAR_ENTRY (self));
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = value;
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_free0 (self->priv->_collation);
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv->_collation = _tmp1_;
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_object_notify ((GObject *) self, "collation");
+#line 1865 "Branch.c"
+}
+
+
+gint folders_sidebar_entry_get_count (FoldersSidebarEntry* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 151 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_val_if_fail (FOLDERS_IS_SIDEBAR_ENTRY (self), 0);
+#line 152 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->_count;
+#line 152 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ result = _tmp0_;
+#line 152 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ return result;
+#line 1880 "Branch.c"
+}
+
+
+void folders_sidebar_entry_set_count (FoldersSidebarEntry* self, gint value) {
+ gint prev_count = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gint _tmp4_ = 0;
+#line 155 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_return_if_fail (FOLDERS_IS_SIDEBAR_ENTRY (self));
+#line 156 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp0_ = self->priv->_count;
+#line 156 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ prev_count = _tmp0_;
+#line 157 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp1_ = value;
+#line 157 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv->_count = _tmp1_;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp4_ = prev_count;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp4_ == 0) {
+#line 1905 "Branch.c"
+ gint _tmp5_ = 0;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp5_ = self->priv->_count;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = _tmp5_ == 1;
+#line 1911 "Branch.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp3_ = FALSE;
+#line 1915 "Branch.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp3_) {
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = TRUE;
+#line 1921 "Branch.c"
+ } else {
+ gboolean _tmp6_ = FALSE;
+ gint _tmp7_ = 0;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp7_ = prev_count;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp7_ == 1) {
+#line 1929 "Branch.c"
+ gint _tmp8_ = 0;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp8_ = self->priv->_count;
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = _tmp8_ == 0;
+#line 1935 "Branch.c"
+ } else {
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp6_ = FALSE;
+#line 1939 "Branch.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp2_ = _tmp6_;
+#line 1943 "Branch.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ if (_tmp2_) {
+#line 1947 "Branch.c"
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp9_ = sidebar_simple_page_entry_get_sidebar_icon (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry));
+#line 161 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _tmp10_ = _tmp9_;
+#line 161 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_ENTRY, SidebarEntry), "sidebar-icon-changed", _tmp10_);
+#line 161 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_free0 (_tmp10_);
+#line 1958 "Branch.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_object_notify ((GObject *) self, "count");
+#line 1962 "Branch.c"
+}
+
+
+static void folders_sidebar_entry_class_init (FoldersSidebarEntryClass * klass) {
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_type_class_add_private (klass, sizeof (FoldersSidebarEntryPrivate));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = folders_sidebar_entry_real_get_sidebar_name;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = folders_sidebar_entry_real_get_sidebar_icon;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->to_string = folders_sidebar_entry_real_to_string;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = folders_sidebar_entry_real_create_page;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_folders_sidebar_entry_get_property;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_folders_sidebar_entry_set_property;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = folders_sidebar_entry_finalize;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), FOLDERS_SIDEBAR_ENTRY_DIR, g_param_spec_object ("dir", "dir", "dir", G_TYPE_FILE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), FOLDERS_SIDEBAR_ENTRY_COLLATION, g_param_spec_string ("collation", "collation", "collation", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), FOLDERS_SIDEBAR_ENTRY_COUNT, g_param_spec_int ("count", "count", "count", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 1991 "Branch.c"
+}
+
+
+static void folders_sidebar_entry_sidebar_expandable_entry_interface_init (SidebarExpandableEntryIface * iface) {
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_sidebar_expandable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ iface->expand_on_select = (gboolean (*)(SidebarExpandableEntry*)) folders_sidebar_entry_real_expand_on_select;
+#line 2000 "Branch.c"
+}
+
+
+static void folders_sidebar_entry_instance_init (FoldersSidebarEntry * self) {
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv = FOLDERS_SIDEBAR_ENTRY_GET_PRIVATE (self);
+#line 149 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self->priv->_count = 0;
+#line 2009 "Branch.c"
+}
+
+
+static void folders_sidebar_entry_finalize (GObject* obj) {
+ FoldersSidebarEntry * self;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 146 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_object_unref0 (self->priv->_dir);
+#line 147 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ _g_free0 (self->priv->_collation);
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_CLASS (folders_sidebar_entry_parent_class)->finalize (obj);
+#line 2023 "Branch.c"
+}
+
+
+GType folders_sidebar_entry_get_type (void) {
+ static volatile gsize folders_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&folders_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FoldersSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folders_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FoldersSidebarEntry), 0, (GInstanceInitFunc) folders_sidebar_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_expandable_entry_info = { (GInterfaceInitFunc) folders_sidebar_entry_sidebar_expandable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType folders_sidebar_entry_type_id;
+ folders_sidebar_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "FoldersSidebarEntry", &g_define_type_info, 0);
+ g_type_add_interface_static (folders_sidebar_entry_type_id, SIDEBAR_TYPE_EXPANDABLE_ENTRY, &sidebar_expandable_entry_info);
+ g_once_init_leave (&folders_sidebar_entry_type_id__volatile, folders_sidebar_entry_type_id);
+ }
+ return folders_sidebar_entry_type_id__volatile;
+}
+
+
+static void _vala_folders_sidebar_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ FoldersSidebarEntry * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ switch (property_id) {
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ case FOLDERS_SIDEBAR_ENTRY_DIR:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_value_set_object (value, folders_sidebar_entry_get_dir (self));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ case FOLDERS_SIDEBAR_ENTRY_COLLATION:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_value_set_string (value, folders_sidebar_entry_get_collation (self));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ case FOLDERS_SIDEBAR_ENTRY_COUNT:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ g_value_set_int (value, folders_sidebar_entry_get_count (self));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 2064 "Branch.c"
+ default:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 2070 "Branch.c"
+ }
+}
+
+
+static void _vala_folders_sidebar_entry_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ FoldersSidebarEntry * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, FOLDERS_TYPE_SIDEBAR_ENTRY, FoldersSidebarEntry);
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ switch (property_id) {
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ case FOLDERS_SIDEBAR_ENTRY_DIR:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_set_dir (self, g_value_get_object (value));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ case FOLDERS_SIDEBAR_ENTRY_COLLATION:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_set_collation (self, g_value_get_string (value));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ case FOLDERS_SIDEBAR_ENTRY_COUNT:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ folders_sidebar_entry_set_count (self, g_value_get_int (value));
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 2098 "Branch.c"
+ default:
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 145 "/home/jens/Source/shotwell/src/folders/Branch.vala"
+ break;
+#line 2104 "Branch.c"
+ }
+}
+
+
+
diff --git a/src/folders/Folders.c b/src/folders/Folders.c
new file mode 100644
index 0000000..d9af95a
--- /dev/null
+++ b/src/folders/Folders.c
@@ -0,0 +1,69 @@
+/* Folders.c generated by valac 0.32.1, the Vala compiler
+ * generated from Folders.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* This file is the master unit file for the Folders unit. It should be edited to include
+ * whatever code is deemed necessary.
+ *
+ * The init() and terminate() methods are mandatory.
+ *
+ * If the unit needs to be configured prior to initialization, add the proper parameters to
+ * the preconfigure() method, implement it, and ensure in init() that it's been called.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+
+extern gchar* folders_icon;
+gchar* folders_icon = NULL;
+extern gchar* folders_have_photos_icon;
+gchar* folders_have_photos_icon = NULL;
+
+void folders_init (GError** error);
+#define RESOURCES_ICON_FOLDER "folder"
+#define RESOURCES_ICON_FOLDER_DOCUMENTS "folder-documents"
+void folders_terminate (void);
+
+
+void folders_init (GError** error) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_FOLDER);
+#line 22 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ _g_free0 (folders_icon);
+#line 22 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ folders_icon = _tmp0_;
+#line 23 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ _tmp1_ = g_strdup (RESOURCES_ICON_FOLDER_DOCUMENTS);
+#line 23 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ _g_free0 (folders_have_photos_icon);
+#line 23 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ folders_have_photos_icon = _tmp1_;
+#line 53 "Folders.c"
+}
+
+
+void folders_terminate (void) {
+#line 27 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ _g_free0 (folders_icon);
+#line 27 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ folders_icon = NULL;
+#line 28 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ _g_free0 (folders_have_photos_icon);
+#line 28 "/home/jens/Source/shotwell/src/folders/Folders.vala"
+ folders_have_photos_icon = NULL;
+#line 66 "Folders.c"
+}
+
+
+
diff --git a/src/folders/Page.c b/src/folders/Page.c
new file mode 100644
index 0000000..ea722a3
--- /dev/null
+++ b/src/folders/Page.c
@@ -0,0 +1,1028 @@
+/* Page.c generated by valac 0.32.1, the Vala compiler
+ * generated from Page.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <gio/gio.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+
+#define FOLDERS_TYPE_PAGE (folders_page_get_type ())
+#define FOLDERS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLDERS_TYPE_PAGE, FoldersPage))
+#define FOLDERS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLDERS_TYPE_PAGE, FoldersPageClass))
+#define FOLDERS_IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLDERS_TYPE_PAGE))
+#define FOLDERS_IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLDERS_TYPE_PAGE))
+#define FOLDERS_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLDERS_TYPE_PAGE, FoldersPageClass))
+
+typedef struct _FoldersPage FoldersPage;
+typedef struct _FoldersPageClass FoldersPageClass;
+typedef struct _FoldersPagePrivate FoldersPagePrivate;
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define TYPE_COLLECTION_VIEW_MANAGER (collection_view_manager_get_type ())
+#define COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager))
+#define COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+#define IS_COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_VIEW_MANAGER))
+#define IS_COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_VIEW_MANAGER))
+#define COLLECTION_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+
+typedef struct _CollectionViewManager CollectionViewManager;
+typedef struct _CollectionViewManagerClass CollectionViewManagerClass;
+
+#define FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER (folders_page_folder_view_manager_get_type ())
+#define FOLDERS_PAGE_FOLDER_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER, FoldersPageFolderViewManager))
+#define FOLDERS_PAGE_FOLDER_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER, FoldersPageFolderViewManagerClass))
+#define FOLDERS_PAGE_IS_FOLDER_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER))
+#define FOLDERS_PAGE_IS_FOLDER_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER))
+#define FOLDERS_PAGE_FOLDER_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER, FoldersPageFolderViewManagerClass))
+
+typedef struct _FoldersPageFolderViewManager FoldersPageFolderViewManager;
+typedef struct _FoldersPageFolderViewManagerClass FoldersPageFolderViewManagerClass;
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+typedef struct _CollectionViewManagerPrivate CollectionViewManagerPrivate;
+typedef struct _FoldersPageFolderViewManagerPrivate FoldersPageFolderViewManagerPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _FoldersPage {
+ CollectionPage parent_instance;
+ FoldersPagePrivate * priv;
+};
+
+struct _FoldersPageClass {
+ CollectionPageClass parent_class;
+};
+
+struct _FoldersPagePrivate {
+ FoldersPageFolderViewManager* view_manager;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _CollectionViewManager {
+ ViewManager parent_instance;
+ CollectionViewManagerPrivate * priv;
+};
+
+struct _CollectionViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _FoldersPageFolderViewManager {
+ CollectionViewManager parent_instance;
+ FoldersPageFolderViewManagerPrivate * priv;
+ GFile* dir;
+};
+
+struct _FoldersPageFolderViewManagerClass {
+ CollectionViewManagerClass parent_class;
+};
+
+
+static gpointer folders_page_parent_class = NULL;
+static gpointer folders_page_folder_view_manager_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType folders_page_get_type (void) G_GNUC_CONST;
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+GType collection_view_manager_get_type (void) G_GNUC_CONST;
+static GType folders_page_folder_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define FOLDERS_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), FOLDERS_TYPE_PAGE, FoldersPagePrivate))
+enum {
+ FOLDERS_PAGE_DUMMY_PROPERTY
+};
+FoldersPage* folders_page_new (GFile* dir);
+FoldersPage* folders_page_construct (GType object_type, GFile* dir);
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+static FoldersPageFolderViewManager* folders_page_folder_view_manager_new (FoldersPage* owner, GFile* dir);
+static FoldersPageFolderViewManager* folders_page_folder_view_manager_construct (GType object_type, FoldersPage* owner, GFile* dir);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+static void folders_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void folders_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+void configuration_facade_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+enum {
+ FOLDERS_PAGE_FOLDER_VIEW_MANAGER_DUMMY_PROPERTY
+};
+CollectionViewManager* collection_view_manager_new (CollectionPage* page);
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page);
+static gboolean folders_page_folder_view_manager_real_include_in_view (ViewManager* base, DataSource* source);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GFile* media_source_get_file (MediaSource* self);
+static void folders_page_folder_view_manager_finalize (ViewManager* obj);
+static void folders_page_finalize (GObject* obj);
+
+
+FoldersPage* folders_page_construct (GType object_type, GFile* dir) {
+ FoldersPage * self = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ FoldersPageFolderViewManager* _tmp4_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), NULL);
+#line 25 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp0_ = dir;
+#line 25 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 25 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 25 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self = (FoldersPage*) collection_page_construct (object_type, _tmp2_);
+#line 25 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_free0 (_tmp2_);
+#line 27 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp3_ = dir;
+#line 27 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp4_ = folders_page_folder_view_manager_new (self, _tmp3_);
+#line 27 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _view_manager_unref0 (self->priv->view_manager);
+#line 27 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self->priv->view_manager = _tmp4_;
+#line 713 "Page.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ MediaCollectionRegistry* _tmp5_ = NULL;
+ MediaCollectionRegistry* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp5_ = media_collection_registry_get_instance ();
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp6_ = _tmp5_;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp7_ = media_collection_registry_get_all (_tmp6_);
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp8_ = _tmp7_;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp10_ = _tmp9_;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_object_unref0 (_tmp8_);
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _media_collection_registry_unref0 (_tmp6_);
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _sources_it = _tmp10_;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ while (TRUE) {
+#line 742 "Page.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ MediaSourceCollection* _tmp17_ = NULL;
+ FoldersPageFolderViewManager* _tmp18_ = NULL;
+ ViewCollectionMonitor* _tmp19_ = NULL;
+ ViewCollectionMonitor* _tmp20_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp11_ = _sources_it;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ if (!_tmp12_) {
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ break;
+#line 762 "Page.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp13_ = _sources_it;
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ sources = (MediaSourceCollection*) _tmp14_;
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp15_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp16_ = _tmp15_;
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp17_ = sources;
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp18_ = self->priv->view_manager;
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp19_ = view_collection_monitor_source_collection (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, TYPE_VIEW_MANAGER, ViewManager), NULL, NULL, NULL, NULL);
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp20_ = _tmp19_;
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _view_collection_monitor_unref0 (_tmp20_);
+#line 30 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _data_collection_unref0 (_tmp16_);
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _data_collection_unref0 (sources);
+#line 788 "Page.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_object_unref0 (_sources_it);
+#line 792 "Page.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ return self;
+#line 796 "Page.c"
+}
+
+
+FoldersPage* folders_page_new (GFile* dir) {
+#line 24 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ return folders_page_construct (FOLDERS_TYPE_PAGE, dir);
+#line 803 "Page.c"
+}
+
+
+static void folders_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ FoldersPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 33 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_TYPE_PAGE, FoldersPage);
+#line 34 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 34 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 34 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ configuration_facade_get_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 34 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _vala_sort_order = _tmp2_;
+#line 34 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _vala_sort_by = _tmp3_;
+#line 34 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ if (sort_order) {
+#line 33 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ *sort_order = _vala_sort_order;
+#line 833 "Page.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ if (sort_by) {
+#line 33 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ *sort_by = _vala_sort_by;
+#line 839 "Page.c"
+ }
+}
+
+
+static void folders_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ FoldersPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 37 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_TYPE_PAGE, FoldersPage);
+#line 38 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 38 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp1_ = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp2_ = sort_order;
+#line 38 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp3_ = sort_by;
+#line 38 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ configuration_facade_set_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 38 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_object_unref0 (_tmp1_);
+#line 864 "Page.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 14 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 871 "Page.c"
+}
+
+
+static FoldersPageFolderViewManager* folders_page_folder_view_manager_construct (GType object_type, FoldersPage* owner, GFile* dir) {
+ FoldersPageFolderViewManager* self = NULL;
+ FoldersPage* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ g_return_val_if_fail (FOLDERS_IS_PAGE (owner), NULL);
+#line 11 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), NULL);
+#line 12 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp0_ = owner;
+#line 12 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self = (FoldersPageFolderViewManager*) collection_view_manager_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_COLLECTION_PAGE, CollectionPage));
+#line 14 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp1_ = dir;
+#line 14 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 14 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_object_unref0 (self->dir);
+#line 14 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self->dir = _tmp2_;
+#line 11 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ return self;
+#line 898 "Page.c"
+}
+
+
+static FoldersPageFolderViewManager* folders_page_folder_view_manager_new (FoldersPage* owner, GFile* dir) {
+#line 11 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ return folders_page_folder_view_manager_construct (FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER, owner, dir);
+#line 905 "Page.c"
+}
+
+
+static gboolean folders_page_folder_view_manager_real_include_in_view (ViewManager* base, DataSource* source) {
+ FoldersPageFolderViewManager * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 17 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER, FoldersPageFolderViewManager);
+#line 17 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp0_ = source;
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp1_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp2_ = _tmp1_;
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp3_ = self->dir;
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp4_ = g_file_has_prefix (_tmp2_, _tmp3_);
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _tmp5_ = _tmp4_;
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_object_unref0 (_tmp2_);
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ result = _tmp5_;
+#line 18 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ return result;
+#line 940 "Page.c"
+}
+
+
+static void folders_page_folder_view_manager_class_init (FoldersPageFolderViewManagerClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ folders_page_folder_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ ((ViewManagerClass *) klass)->finalize = folders_page_folder_view_manager_finalize;
+#line 8 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ ((ViewManagerClass *) klass)->include_in_view = folders_page_folder_view_manager_real_include_in_view;
+#line 951 "Page.c"
+}
+
+
+static void folders_page_folder_view_manager_instance_init (FoldersPageFolderViewManager * self) {
+}
+
+
+static void folders_page_folder_view_manager_finalize (ViewManager* obj) {
+ FoldersPageFolderViewManager * self;
+#line 8 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, FOLDERS_PAGE_TYPE_FOLDER_VIEW_MANAGER, FoldersPageFolderViewManager);
+#line 9 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _g_object_unref0 (self->dir);
+#line 8 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ VIEW_MANAGER_CLASS (folders_page_folder_view_manager_parent_class)->finalize (obj);
+#line 967 "Page.c"
+}
+
+
+static GType folders_page_folder_view_manager_get_type (void) {
+ static volatile gsize folders_page_folder_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&folders_page_folder_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FoldersPageFolderViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folders_page_folder_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FoldersPageFolderViewManager), 0, (GInstanceInitFunc) folders_page_folder_view_manager_instance_init, NULL };
+ GType folders_page_folder_view_manager_type_id;
+ folders_page_folder_view_manager_type_id = g_type_register_static (TYPE_COLLECTION_VIEW_MANAGER, "FoldersPageFolderViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&folders_page_folder_view_manager_type_id__volatile, folders_page_folder_view_manager_type_id);
+ }
+ return folders_page_folder_view_manager_type_id__volatile;
+}
+
+
+static void folders_page_class_init (FoldersPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ folders_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ g_type_class_add_private (klass, sizeof (FoldersPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = folders_page_real_get_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = folders_page_real_set_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ G_OBJECT_CLASS (klass)->finalize = folders_page_finalize;
+#line 994 "Page.c"
+}
+
+
+static void folders_page_instance_init (FoldersPage * self) {
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self->priv = FOLDERS_PAGE_GET_PRIVATE (self);
+#line 1001 "Page.c"
+}
+
+
+static void folders_page_finalize (GObject* obj) {
+ FoldersPage * self;
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, FOLDERS_TYPE_PAGE, FoldersPage);
+#line 22 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ _view_manager_unref0 (self->priv->view_manager);
+#line 7 "/home/jens/Source/shotwell/src/folders/Page.vala"
+ G_OBJECT_CLASS (folders_page_parent_class)->finalize (obj);
+#line 1013 "Page.c"
+}
+
+
+GType folders_page_get_type (void) {
+ static volatile gsize folders_page_type_id__volatile = 0;
+ if (g_once_init_enter (&folders_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FoldersPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folders_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FoldersPage), 0, (GInstanceInitFunc) folders_page_instance_init, NULL };
+ GType folders_page_type_id;
+ folders_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "FoldersPage", &g_define_type_info, 0);
+ g_once_init_leave (&folders_page_type_id__volatile, folders_page_type_id);
+ }
+ return folders_page_type_id__volatile;
+}
+
+
+
diff --git a/src/folders/mk/folders.mk b/src/folders/mk/folders.mk
deleted file mode 100644
index d0023d7..0000000
--- a/src/folders/mk/folders.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Folders
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := folders
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- Branch.vala \
- Page.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Sidebar \
- Photos
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/library/Branch.c b/src/library/Branch.c
new file mode 100644
index 0000000..136c058
--- /dev/null
+++ b/src/library/Branch.c
@@ -0,0 +1,2144 @@
+/* Branch.c generated by valac 0.32.1, the Vala compiler
+ * generated from Branch.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gee.h>
+
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define LIBRARY_TYPE_BRANCH (library_branch_get_type ())
+#define LIBRARY_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_BRANCH, LibraryBranch))
+#define LIBRARY_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_BRANCH, LibraryBranchClass))
+#define LIBRARY_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_BRANCH))
+#define LIBRARY_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_BRANCH))
+#define LIBRARY_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_BRANCH, LibraryBranchClass))
+
+typedef struct _LibraryBranch LibraryBranch;
+typedef struct _LibraryBranchClass LibraryBranchClass;
+typedef struct _LibraryBranchPrivate LibraryBranchPrivate;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+
+#define LIBRARY_TYPE_PHOTOS_ENTRY (library_photos_entry_get_type ())
+#define LIBRARY_PHOTOS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntry))
+#define LIBRARY_PHOTOS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntryClass))
+#define LIBRARY_IS_PHOTOS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_PHOTOS_ENTRY))
+#define LIBRARY_IS_PHOTOS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_PHOTOS_ENTRY))
+#define LIBRARY_PHOTOS_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntryClass))
+
+typedef struct _LibraryPhotosEntry LibraryPhotosEntry;
+typedef struct _LibraryPhotosEntryClass LibraryPhotosEntryClass;
+
+#define LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY (library_hideable_page_entry_get_type ())
+#define LIBRARY_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+
+typedef struct _LibraryHideablePageEntry LibraryHideablePageEntry;
+typedef struct _LibraryHideablePageEntryClass LibraryHideablePageEntryClass;
+
+#define LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY (library_flagged_sidebar_entry_get_type ())
+#define LIBRARY_FLAGGED_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry))
+#define LIBRARY_FLAGGED_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntryClass))
+#define LIBRARY_IS_FLAGGED_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY))
+#define LIBRARY_IS_FLAGGED_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY))
+#define LIBRARY_FLAGGED_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntryClass))
+
+typedef struct _LibraryFlaggedSidebarEntry LibraryFlaggedSidebarEntry;
+typedef struct _LibraryFlaggedSidebarEntryClass LibraryFlaggedSidebarEntryClass;
+
+#define LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY (library_last_import_sidebar_entry_get_type ())
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntry))
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntryClass))
+#define LIBRARY_IS_LAST_IMPORT_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY))
+#define LIBRARY_IS_LAST_IMPORT_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY))
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntryClass))
+
+typedef struct _LibraryLastImportSidebarEntry LibraryLastImportSidebarEntry;
+typedef struct _LibraryLastImportSidebarEntryClass LibraryLastImportSidebarEntryClass;
+
+#define LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY (library_import_queue_sidebar_entry_get_type ())
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntry))
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntryClass))
+#define LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY))
+#define LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY))
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntryClass))
+
+typedef struct _LibraryImportQueueSidebarEntry LibraryImportQueueSidebarEntry;
+typedef struct _LibraryImportQueueSidebarEntryClass LibraryImportQueueSidebarEntryClass;
+
+#define LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY (library_offline_sidebar_entry_get_type ())
+#define LIBRARY_OFFLINE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntry))
+#define LIBRARY_OFFLINE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntryClass))
+#define LIBRARY_IS_OFFLINE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY))
+#define LIBRARY_IS_OFFLINE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY))
+#define LIBRARY_OFFLINE_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntryClass))
+
+typedef struct _LibraryOfflineSidebarEntry LibraryOfflineSidebarEntry;
+typedef struct _LibraryOfflineSidebarEntryClass LibraryOfflineSidebarEntryClass;
+
+#define LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY (library_trash_sidebar_entry_get_type ())
+#define LIBRARY_TRASH_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry))
+#define LIBRARY_TRASH_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntryClass))
+#define LIBRARY_IS_TRASH_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY))
+#define LIBRARY_IS_TRASH_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY))
+#define LIBRARY_TRASH_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntryClass))
+
+typedef struct _LibraryTrashSidebarEntry LibraryTrashSidebarEntry;
+typedef struct _LibraryTrashSidebarEntryClass LibraryTrashSidebarEntryClass;
+
+#define LIBRARY_BRANCH_TYPE_ENTRY_POSITION (library_branch_entry_position_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+typedef struct _LibraryPhotosEntryPrivate LibraryPhotosEntryPrivate;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define LIBRARY_TYPE_MAIN_PAGE (library_main_page_get_type ())
+#define LIBRARY_MAIN_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_MAIN_PAGE, LibraryMainPage))
+#define LIBRARY_MAIN_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_MAIN_PAGE, LibraryMainPageClass))
+#define LIBRARY_IS_MAIN_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_MAIN_PAGE))
+#define LIBRARY_IS_MAIN_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_MAIN_PAGE))
+#define LIBRARY_MAIN_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_MAIN_PAGE, LibraryMainPageClass))
+
+typedef struct _LibraryMainPage LibraryMainPage;
+typedef struct _LibraryMainPageClass LibraryMainPageClass;
+typedef struct _LibraryHideablePageEntryPrivate LibraryHideablePageEntryPrivate;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+typedef struct _LibraryMainPagePrivate LibraryMainPagePrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+
+#define TYPE_COLLECTION_VIEW_MANAGER (collection_view_manager_get_type ())
+#define COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager))
+#define COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+#define IS_COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_VIEW_MANAGER))
+#define IS_COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_VIEW_MANAGER))
+#define COLLECTION_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+
+typedef struct _CollectionViewManager CollectionViewManager;
+typedef struct _CollectionViewManagerClass CollectionViewManagerClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+struct _LibraryBranch {
+ SidebarBranch parent_instance;
+ LibraryBranchPrivate * priv;
+};
+
+struct _LibraryBranchClass {
+ SidebarBranchClass parent_class;
+};
+
+struct _LibraryBranchPrivate {
+ LibraryPhotosEntry* _photos_entry;
+ LibraryFlaggedSidebarEntry* _flagged_entry;
+ LibraryLastImportSidebarEntry* _last_imported_entry;
+ LibraryImportQueueSidebarEntry* _import_queue_entry;
+ LibraryOfflineSidebarEntry* _offline_entry;
+ LibraryTrashSidebarEntry* _trash_entry;
+};
+
+typedef enum {
+ LIBRARY_BRANCH_ENTRY_POSITION_PHOTOS,
+ LIBRARY_BRANCH_ENTRY_POSITION_FLAGGED,
+ LIBRARY_BRANCH_ENTRY_POSITION_LAST_IMPORTED,
+ LIBRARY_BRANCH_ENTRY_POSITION_IMPORT_QUEUE,
+ LIBRARY_BRANCH_ENTRY_POSITION_OFFLINE,
+ LIBRARY_BRANCH_ENTRY_POSITION_TRASH
+} LibraryBranchEntryPosition;
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _LibraryPhotosEntry {
+ SidebarSimplePageEntry parent_instance;
+ LibraryPhotosEntryPrivate * priv;
+};
+
+struct _LibraryPhotosEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _LibraryHideablePageEntry {
+ SidebarSimplePageEntry parent_instance;
+ LibraryHideablePageEntryPrivate * priv;
+};
+
+struct _LibraryHideablePageEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _LibraryHideablePageEntryPrivate {
+ gboolean show_entry;
+};
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _LibraryMainPage {
+ CollectionPage parent_instance;
+ LibraryMainPagePrivate * priv;
+};
+
+struct _LibraryMainPageClass {
+ CollectionPageClass parent_class;
+};
+
+
+static gpointer library_branch_parent_class = NULL;
+static gpointer library_photos_entry_parent_class = NULL;
+static gpointer library_hideable_page_entry_parent_class = NULL;
+static gpointer library_main_page_parent_class = NULL;
+
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType library_branch_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType library_photos_entry_get_type (void) G_GNUC_CONST;
+GType library_hideable_page_entry_get_type (void) G_GNUC_CONST;
+GType library_flagged_sidebar_entry_get_type (void) G_GNUC_CONST;
+GType library_last_import_sidebar_entry_get_type (void) G_GNUC_CONST;
+GType library_import_queue_sidebar_entry_get_type (void) G_GNUC_CONST;
+GType library_offline_sidebar_entry_get_type (void) G_GNUC_CONST;
+GType library_trash_sidebar_entry_get_type (void) G_GNUC_CONST;
+#define LIBRARY_BRANCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LIBRARY_TYPE_BRANCH, LibraryBranchPrivate))
+enum {
+ LIBRARY_BRANCH_DUMMY_PROPERTY,
+ LIBRARY_BRANCH_PHOTOS_ENTRY,
+ LIBRARY_BRANCH_FLAGGED_ENTRY,
+ LIBRARY_BRANCH_LAST_IMPORTED_ENTRY,
+ LIBRARY_BRANCH_IMPORT_QUEUE_ENTRY,
+ LIBRARY_BRANCH_OFFLINE_ENTRY,
+ LIBRARY_BRANCH_TRASH_ENTRY
+};
+static GType library_branch_entry_position_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define LIBRARY_BRANCH_POSITION_DATA "x-photos-entry-position"
+LibraryBranch* library_branch_new (void);
+LibraryBranch* library_branch_construct (GType object_type);
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized);
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized);
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+static gint library_branch_comparator (SidebarEntry* a, SidebarEntry* b);
+static gint _library_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+LibraryPhotosEntry* library_photos_entry_new (void);
+LibraryPhotosEntry* library_photos_entry_construct (GType object_type);
+static void library_branch_set_photos_entry (LibraryBranch* self, LibraryPhotosEntry* value);
+LibraryTrashSidebarEntry* library_trash_sidebar_entry_new (void);
+LibraryTrashSidebarEntry* library_trash_sidebar_entry_construct (GType object_type);
+static void library_branch_set_trash_entry (LibraryBranch* self, LibraryTrashSidebarEntry* value);
+LibraryLastImportSidebarEntry* library_last_import_sidebar_entry_new (void);
+LibraryLastImportSidebarEntry* library_last_import_sidebar_entry_construct (GType object_type);
+static void library_branch_set_last_imported_entry (LibraryBranch* self, LibraryLastImportSidebarEntry* value);
+LibraryFlaggedSidebarEntry* library_flagged_sidebar_entry_new (void);
+LibraryFlaggedSidebarEntry* library_flagged_sidebar_entry_construct (GType object_type);
+static void library_branch_set_flagged_entry (LibraryBranch* self, LibraryFlaggedSidebarEntry* value);
+LibraryOfflineSidebarEntry* library_offline_sidebar_entry_new (void);
+LibraryOfflineSidebarEntry* library_offline_sidebar_entry_construct (GType object_type);
+static void library_branch_set_offline_entry (LibraryBranch* self, LibraryOfflineSidebarEntry* value);
+LibraryImportQueueSidebarEntry* library_import_queue_sidebar_entry_new (void);
+LibraryImportQueueSidebarEntry* library_import_queue_sidebar_entry_construct (GType object_type);
+static void library_branch_set_import_queue_entry (LibraryBranch* self, LibraryImportQueueSidebarEntry* value);
+static void library_branch_insert (LibraryBranch* self, SidebarEntry* entry, gint position);
+LibraryPhotosEntry* library_branch_get_photos_entry (LibraryBranch* self);
+LibraryTrashSidebarEntry* library_branch_get_trash_entry (LibraryBranch* self);
+LibraryFlaggedSidebarEntry* library_branch_get_flagged_entry (LibraryBranch* self);
+static void library_branch_on_flagged_visibility_changed (LibraryBranch* self);
+static void _library_branch_on_flagged_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self);
+LibraryLastImportSidebarEntry* library_branch_get_last_imported_entry (LibraryBranch* self);
+static void library_branch_on_last_imported_visibility_changed (LibraryBranch* self);
+static void _library_branch_on_last_imported_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self);
+LibraryImportQueueSidebarEntry* library_branch_get_import_queue_entry (LibraryBranch* self);
+static void library_branch_on_import_queue_visibility_changed (LibraryBranch* self);
+static void _library_branch_on_import_queue_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self);
+LibraryOfflineSidebarEntry* library_branch_get_offline_entry (LibraryBranch* self);
+static void library_branch_on_offline_visibility_changed (LibraryBranch* self);
+static void _library_branch_on_offline_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self);
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+static void library_branch_update_entry_visibility (LibraryBranch* self, LibraryHideablePageEntry* entry, gint position);
+gboolean library_hideable_page_entry_get_visible (LibraryHideablePageEntry* self);
+gboolean sidebar_branch_has_entry (SidebarBranch* self, SidebarEntry* entry);
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry);
+static void library_branch_finalize (GObject* obj);
+static void _vala_library_branch_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_library_branch_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_PHOTOS_ENTRY_DUMMY_PROPERTY
+};
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+static gchar* library_photos_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+static gchar* library_photos_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+#define RESOURCES_ICON_PHOTOS "shotwell"
+static Page* library_photos_entry_real_create_page (SidebarSimplePageEntry* base);
+LibraryMainPage* library_main_page_new (ProgressMonitor monitor, void* monitor_target);
+LibraryMainPage* library_main_page_construct (GType object_type, ProgressMonitor monitor, void* monitor_target);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType library_main_page_get_type (void) G_GNUC_CONST;
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryPrivate))
+enum {
+ LIBRARY_HIDEABLE_PAGE_ENTRY_DUMMY_PROPERTY,
+ LIBRARY_HIDEABLE_PAGE_ENTRY_VISIBLE
+};
+LibraryHideablePageEntry* library_hideable_page_entry_construct (GType object_type);
+void library_hideable_page_entry_set_visible (LibraryHideablePageEntry* self, gboolean value);
+static void library_hideable_page_entry_finalize (GObject* obj);
+static void _vala_library_hideable_page_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_library_hideable_page_entry_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_MAIN_PAGE_DUMMY_PROPERTY
+};
+#define LIBRARY_MAIN_PAGE_NAME _ ("Library")
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+CollectionViewManager* collection_view_manager_new (CollectionPage* page);
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page);
+GType collection_view_manager_get_type (void) G_GNUC_CONST;
+static void library_main_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void library_main_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+void configuration_facade_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+
+
+static GType library_branch_entry_position_get_type (void) {
+ static volatile gsize library_branch_entry_position_type_id__volatile = 0;
+ if (g_once_init_enter (&library_branch_entry_position_type_id__volatile)) {
+ static const GEnumValue values[] = {{LIBRARY_BRANCH_ENTRY_POSITION_PHOTOS, "LIBRARY_BRANCH_ENTRY_POSITION_PHOTOS", "photos"}, {LIBRARY_BRANCH_ENTRY_POSITION_FLAGGED, "LIBRARY_BRANCH_ENTRY_POSITION_FLAGGED", "flagged"}, {LIBRARY_BRANCH_ENTRY_POSITION_LAST_IMPORTED, "LIBRARY_BRANCH_ENTRY_POSITION_LAST_IMPORTED", "last-imported"}, {LIBRARY_BRANCH_ENTRY_POSITION_IMPORT_QUEUE, "LIBRARY_BRANCH_ENTRY_POSITION_IMPORT_QUEUE", "import-queue"}, {LIBRARY_BRANCH_ENTRY_POSITION_OFFLINE, "LIBRARY_BRANCH_ENTRY_POSITION_OFFLINE", "offline"}, {LIBRARY_BRANCH_ENTRY_POSITION_TRASH, "LIBRARY_BRANCH_ENTRY_POSITION_TRASH", "trash"}, {0, NULL, NULL}};
+ GType library_branch_entry_position_type_id;
+ library_branch_entry_position_type_id = g_enum_register_static ("LibraryBranchEntryPosition", values);
+ g_once_init_leave (&library_branch_entry_position_type_id__volatile, library_branch_entry_position_type_id);
+ }
+ return library_branch_entry_position_type_id__volatile;
+}
+
+
+static gint _library_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = library_branch_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 30 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 997 "Branch.c"
+}
+
+
+static void _library_branch_on_flagged_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self) {
+#line 43 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_flagged_visibility_changed ((LibraryBranch*) self);
+#line 1004 "Branch.c"
+}
+
+
+static void _library_branch_on_last_imported_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self) {
+#line 46 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_last_imported_visibility_changed ((LibraryBranch*) self);
+#line 1011 "Branch.c"
+}
+
+
+static void _library_branch_on_import_queue_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self) {
+#line 49 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_import_queue_visibility_changed ((LibraryBranch*) self);
+#line 1018 "Branch.c"
+}
+
+
+static void _library_branch_on_offline_visibility_changed_library_hideable_page_entry_visibility_changed (LibraryHideablePageEntry* _sender, gboolean visible, gpointer self) {
+#line 52 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_offline_visibility_changed ((LibraryBranch*) self);
+#line 1025 "Branch.c"
+}
+
+
+LibraryBranch* library_branch_construct (GType object_type) {
+ LibraryBranch * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ SidebarHeader* _tmp1_ = NULL;
+ SidebarHeader* _tmp2_ = NULL;
+ LibraryPhotosEntry* _tmp3_ = NULL;
+ LibraryPhotosEntry* _tmp4_ = NULL;
+ LibraryTrashSidebarEntry* _tmp5_ = NULL;
+ LibraryTrashSidebarEntry* _tmp6_ = NULL;
+ LibraryLastImportSidebarEntry* _tmp7_ = NULL;
+ LibraryLastImportSidebarEntry* _tmp8_ = NULL;
+ LibraryFlaggedSidebarEntry* _tmp9_ = NULL;
+ LibraryFlaggedSidebarEntry* _tmp10_ = NULL;
+ LibraryOfflineSidebarEntry* _tmp11_ = NULL;
+ LibraryOfflineSidebarEntry* _tmp12_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp13_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp14_ = NULL;
+ LibraryPhotosEntry* _tmp15_ = NULL;
+ LibraryTrashSidebarEntry* _tmp16_ = NULL;
+ LibraryFlaggedSidebarEntry* _tmp17_ = NULL;
+ LibraryLastImportSidebarEntry* _tmp18_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp19_ = NULL;
+ LibraryOfflineSidebarEntry* _tmp20_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = _ ("Library");
+#line 30 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = sidebar_header_new (_tmp0_, TRUE);
+#line 30 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 30 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = (LibraryBranch*) sidebar_branch_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SIDEBAR_TYPE_ENTRY, SidebarEntry), SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING, _library_branch_comparator_gcompare_func, NULL);
+#line 30 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp2_);
+#line 33 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp3_ = library_photos_entry_new ();
+#line 33 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 33 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_photos_entry (self, _tmp4_);
+#line 33 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp4_);
+#line 34 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp5_ = library_trash_sidebar_entry_new ();
+#line 34 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 34 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_trash_entry (self, _tmp6_);
+#line 34 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp6_);
+#line 35 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp7_ = library_last_import_sidebar_entry_new ();
+#line 35 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 35 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_last_imported_entry (self, _tmp8_);
+#line 35 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp8_);
+#line 36 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp9_ = library_flagged_sidebar_entry_new ();
+#line 36 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp10_ = _tmp9_;
+#line 36 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_flagged_entry (self, _tmp10_);
+#line 36 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp10_);
+#line 37 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp11_ = library_offline_sidebar_entry_new ();
+#line 37 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp12_ = _tmp11_;
+#line 37 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_offline_entry (self, _tmp12_);
+#line 37 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp12_);
+#line 38 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp13_ = library_import_queue_sidebar_entry_new ();
+#line 38 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 38 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_import_queue_entry (self, _tmp14_);
+#line 38 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp14_);
+#line 40 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp15_ = self->priv->_photos_entry;
+#line 40 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_insert (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, SIDEBAR_TYPE_ENTRY, SidebarEntry), (gint) LIBRARY_BRANCH_ENTRY_POSITION_PHOTOS);
+#line 41 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp16_ = self->priv->_trash_entry;
+#line 41 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_insert (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, SIDEBAR_TYPE_ENTRY, SidebarEntry), (gint) LIBRARY_BRANCH_ENTRY_POSITION_TRASH);
+#line 43 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp17_ = self->priv->_flagged_entry;
+#line 43 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), "visibility-changed", (GCallback) _library_branch_on_flagged_visibility_changed_library_hideable_page_entry_visibility_changed, self, 0);
+#line 44 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_flagged_visibility_changed (self);
+#line 46 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp18_ = self->priv->_last_imported_entry;
+#line 46 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), "visibility-changed", (GCallback) _library_branch_on_last_imported_visibility_changed_library_hideable_page_entry_visibility_changed, self, 0);
+#line 47 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_last_imported_visibility_changed (self);
+#line 49 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp19_ = self->priv->_import_queue_entry;
+#line 49 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), "visibility-changed", (GCallback) _library_branch_on_import_queue_visibility_changed_library_hideable_page_entry_visibility_changed, self, 0);
+#line 50 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_import_queue_visibility_changed (self);
+#line 52 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp20_ = self->priv->_offline_entry;
+#line 52 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), "visibility-changed", (GCallback) _library_branch_on_offline_visibility_changed_library_hideable_page_entry_visibility_changed, self, 0);
+#line 53 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_on_offline_visibility_changed (self);
+#line 29 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return self;
+#line 1144 "Branch.c"
+}
+
+
+LibraryBranch* library_branch_new (void) {
+#line 29 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return library_branch_construct (LIBRARY_TYPE_BRANCH);
+#line 1151 "Branch.c"
+}
+
+
+static void library_branch_insert (LibraryBranch* self, SidebarEntry* entry, gint position) {
+ SidebarEntry* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 56 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 57 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = entry;
+#line 57 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = position;
+#line 57 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_set_data_full (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), LIBRARY_BRANCH_POSITION_DATA, (gpointer) ((gintptr) _tmp1_), NULL);
+#line 58 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp2_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 58 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 58 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp4_ = entry;
+#line 58 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp3_, _tmp4_, NULL);
+#line 58 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1181 "Branch.c"
+}
+
+
+static void library_branch_on_flagged_visibility_changed (LibraryBranch* self) {
+ LibraryFlaggedSidebarEntry* _tmp0_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 62 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_flagged_entry;
+#line 62 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_update_entry_visibility (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), (gint) LIBRARY_BRANCH_ENTRY_POSITION_FLAGGED);
+#line 1193 "Branch.c"
+}
+
+
+static void library_branch_on_last_imported_visibility_changed (LibraryBranch* self) {
+ LibraryLastImportSidebarEntry* _tmp0_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 66 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_last_imported_entry;
+#line 66 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_update_entry_visibility (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), (gint) LIBRARY_BRANCH_ENTRY_POSITION_LAST_IMPORTED);
+#line 1205 "Branch.c"
+}
+
+
+static void library_branch_on_import_queue_visibility_changed (LibraryBranch* self) {
+ LibraryImportQueueSidebarEntry* _tmp0_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 70 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_import_queue_entry;
+#line 70 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_update_entry_visibility (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), (gint) LIBRARY_BRANCH_ENTRY_POSITION_IMPORT_QUEUE);
+#line 1217 "Branch.c"
+}
+
+
+static void library_branch_on_offline_visibility_changed (LibraryBranch* self) {
+ LibraryOfflineSidebarEntry* _tmp0_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 74 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_offline_entry;
+#line 74 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_update_entry_visibility (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), (gint) LIBRARY_BRANCH_ENTRY_POSITION_OFFLINE);
+#line 1229 "Branch.c"
+}
+
+
+static void library_branch_update_entry_visibility (LibraryBranch* self, LibraryHideablePageEntry* entry, gint position) {
+ LibraryHideablePageEntry* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 77 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 77 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_HIDEABLE_PAGE_ENTRY (entry));
+#line 78 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = entry;
+#line 78 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = library_hideable_page_entry_get_visible (_tmp0_);
+#line 78 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 78 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ if (_tmp2_) {
+#line 1249 "Branch.c"
+ LibraryHideablePageEntry* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 79 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp3_ = entry;
+#line 79 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp4_ = sidebar_branch_has_entry (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 79 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ if (!_tmp4_) {
+#line 1258 "Branch.c"
+ LibraryHideablePageEntry* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp5_ = entry;
+#line 80 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp6_ = position;
+#line 80 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_insert (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SIDEBAR_TYPE_ENTRY, SidebarEntry), _tmp6_);
+#line 1267 "Branch.c"
+ }
+ } else {
+ LibraryHideablePageEntry* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 81 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp7_ = entry;
+#line 81 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp8_ = sidebar_branch_has_entry (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 81 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ if (_tmp8_) {
+#line 1278 "Branch.c"
+ LibraryHideablePageEntry* _tmp9_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp9_ = entry;
+#line 82 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 1284 "Branch.c"
+ }
+ }
+}
+
+
+static gint library_branch_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ gconstpointer _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ gconstpointer _tmp3_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 86 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 87 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = a;
+#line 87 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = g_object_get_data (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_OBJECT, GObject), LIBRARY_BRANCH_POSITION_DATA);
+#line 87 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp2_ = b;
+#line 87 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp3_ = g_object_get_data (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, G_TYPE_OBJECT, GObject), LIBRARY_BRANCH_POSITION_DATA);
+#line 87 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = ((gint) ((gintptr) _tmp1_)) - ((gint) ((gintptr) _tmp3_));
+#line 87 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1312 "Branch.c"
+}
+
+
+LibraryPhotosEntry* library_branch_get_photos_entry (LibraryBranch* self) {
+ LibraryPhotosEntry* result;
+ LibraryPhotosEntry* _tmp0_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (LIBRARY_IS_BRANCH (self), NULL);
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_photos_entry;
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1327 "Branch.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1334 "Branch.c"
+}
+
+
+static void library_branch_set_photos_entry (LibraryBranch* self, LibraryPhotosEntry* value) {
+ LibraryPhotosEntry* _tmp0_ = NULL;
+ LibraryPhotosEntry* _tmp1_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = value;
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_photos_entry);
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->_photos_entry = _tmp1_;
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_notify ((GObject *) self, "photos-entry");
+#line 1353 "Branch.c"
+}
+
+
+LibraryFlaggedSidebarEntry* library_branch_get_flagged_entry (LibraryBranch* self) {
+ LibraryFlaggedSidebarEntry* result;
+ LibraryFlaggedSidebarEntry* _tmp0_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (LIBRARY_IS_BRANCH (self), NULL);
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_flagged_entry;
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1368 "Branch.c"
+}
+
+
+static void library_branch_set_flagged_entry (LibraryBranch* self, LibraryFlaggedSidebarEntry* value) {
+ LibraryFlaggedSidebarEntry* _tmp0_ = NULL;
+ LibraryFlaggedSidebarEntry* _tmp1_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = value;
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_flagged_entry);
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->_flagged_entry = _tmp1_;
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_notify ((GObject *) self, "flagged-entry");
+#line 1387 "Branch.c"
+}
+
+
+LibraryLastImportSidebarEntry* library_branch_get_last_imported_entry (LibraryBranch* self) {
+ LibraryLastImportSidebarEntry* result;
+ LibraryLastImportSidebarEntry* _tmp0_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (LIBRARY_IS_BRANCH (self), NULL);
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_last_imported_entry;
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1402 "Branch.c"
+}
+
+
+static void library_branch_set_last_imported_entry (LibraryBranch* self, LibraryLastImportSidebarEntry* value) {
+ LibraryLastImportSidebarEntry* _tmp0_ = NULL;
+ LibraryLastImportSidebarEntry* _tmp1_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = value;
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_last_imported_entry);
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->_last_imported_entry = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_notify ((GObject *) self, "last-imported-entry");
+#line 1421 "Branch.c"
+}
+
+
+LibraryImportQueueSidebarEntry* library_branch_get_import_queue_entry (LibraryBranch* self) {
+ LibraryImportQueueSidebarEntry* result;
+ LibraryImportQueueSidebarEntry* _tmp0_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (LIBRARY_IS_BRANCH (self), NULL);
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_import_queue_entry;
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1436 "Branch.c"
+}
+
+
+static void library_branch_set_import_queue_entry (LibraryBranch* self, LibraryImportQueueSidebarEntry* value) {
+ LibraryImportQueueSidebarEntry* _tmp0_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp1_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = value;
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_import_queue_entry);
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->_import_queue_entry = _tmp1_;
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_notify ((GObject *) self, "import-queue-entry");
+#line 1455 "Branch.c"
+}
+
+
+LibraryOfflineSidebarEntry* library_branch_get_offline_entry (LibraryBranch* self) {
+ LibraryOfflineSidebarEntry* result;
+ LibraryOfflineSidebarEntry* _tmp0_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (LIBRARY_IS_BRANCH (self), NULL);
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_offline_entry;
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1470 "Branch.c"
+}
+
+
+static void library_branch_set_offline_entry (LibraryBranch* self, LibraryOfflineSidebarEntry* value) {
+ LibraryOfflineSidebarEntry* _tmp0_ = NULL;
+ LibraryOfflineSidebarEntry* _tmp1_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = value;
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_offline_entry);
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->_offline_entry = _tmp1_;
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_notify ((GObject *) self, "offline-entry");
+#line 1489 "Branch.c"
+}
+
+
+LibraryTrashSidebarEntry* library_branch_get_trash_entry (LibraryBranch* self) {
+ LibraryTrashSidebarEntry* result;
+ LibraryTrashSidebarEntry* _tmp0_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (LIBRARY_IS_BRANCH (self), NULL);
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->_trash_entry;
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1504 "Branch.c"
+}
+
+
+static void library_branch_set_trash_entry (LibraryBranch* self, LibraryTrashSidebarEntry* value) {
+ LibraryTrashSidebarEntry* _tmp0_ = NULL;
+ LibraryTrashSidebarEntry* _tmp1_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_BRANCH (self));
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = value;
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_trash_entry);
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->_trash_entry = _tmp1_;
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_notify ((GObject *) self, "trash-entry");
+#line 1523 "Branch.c"
+}
+
+
+static void library_branch_class_init (LibraryBranchClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_type_class_add_private (klass, sizeof (LibraryBranchPrivate));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_library_branch_get_property;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_library_branch_set_property;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_branch_finalize;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), LIBRARY_BRANCH_PHOTOS_ENTRY, g_param_spec_object ("photos-entry", "photos-entry", "photos-entry", LIBRARY_TYPE_PHOTOS_ENTRY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), LIBRARY_BRANCH_FLAGGED_ENTRY, g_param_spec_object ("flagged-entry", "flagged-entry", "flagged-entry", LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), LIBRARY_BRANCH_LAST_IMPORTED_ENTRY, g_param_spec_object ("last-imported-entry", "last-imported-entry", "last-imported-entry", LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), LIBRARY_BRANCH_IMPORT_QUEUE_ENTRY, g_param_spec_object ("import-queue-entry", "import-queue-entry", "import-queue-entry", LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), LIBRARY_BRANCH_OFFLINE_ENTRY, g_param_spec_object ("offline-entry", "offline-entry", "offline-entry", LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), LIBRARY_BRANCH_TRASH_ENTRY, g_param_spec_object ("trash-entry", "trash-entry", "trash-entry", LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1550 "Branch.c"
+}
+
+
+static void library_branch_instance_init (LibraryBranch * self) {
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv = LIBRARY_BRANCH_GET_PRIVATE (self);
+#line 1557 "Branch.c"
+}
+
+
+static void library_branch_finalize (GObject* obj) {
+ LibraryBranch * self;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_TYPE_BRANCH, LibraryBranch);
+#line 10 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_photos_entry);
+#line 11 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_flagged_entry);
+#line 12 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_last_imported_entry);
+#line 13 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_import_queue_entry);
+#line 14 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_offline_entry);
+#line 15 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (self->priv->_trash_entry);
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (library_branch_parent_class)->finalize (obj);
+#line 1579 "Branch.c"
+}
+
+
+GType library_branch_get_type (void) {
+ static volatile gsize library_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&library_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryBranch), 0, (GInstanceInitFunc) library_branch_instance_init, NULL };
+ GType library_branch_type_id;
+ library_branch_type_id = g_type_register_static (SIDEBAR_TYPE_BRANCH, "LibraryBranch", &g_define_type_info, 0);
+ g_once_init_leave (&library_branch_type_id__volatile, library_branch_type_id);
+ }
+ return library_branch_type_id__volatile;
+}
+
+
+static void _vala_library_branch_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ LibraryBranch * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, LIBRARY_TYPE_BRANCH, LibraryBranch);
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ switch (property_id) {
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_PHOTOS_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_value_set_object (value, library_branch_get_photos_entry (self));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_FLAGGED_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_value_set_object (value, library_branch_get_flagged_entry (self));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_LAST_IMPORTED_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_value_set_object (value, library_branch_get_last_imported_entry (self));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_IMPORT_QUEUE_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_value_set_object (value, library_branch_get_import_queue_entry (self));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_OFFLINE_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_value_set_object (value, library_branch_get_offline_entry (self));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_TRASH_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_value_set_object (value, library_branch_get_trash_entry (self));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1636 "Branch.c"
+ default:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1642 "Branch.c"
+ }
+}
+
+
+static void _vala_library_branch_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ LibraryBranch * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, LIBRARY_TYPE_BRANCH, LibraryBranch);
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ switch (property_id) {
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_PHOTOS_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_photos_entry (self, g_value_get_object (value));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_FLAGGED_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_flagged_entry (self, g_value_get_object (value));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_LAST_IMPORTED_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_last_imported_entry (self, g_value_get_object (value));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_IMPORT_QUEUE_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_import_queue_entry (self, g_value_get_object (value));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_OFFLINE_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_offline_entry (self, g_value_get_object (value));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_BRANCH_TRASH_ENTRY:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_branch_set_trash_entry (self, g_value_get_object (value));
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1688 "Branch.c"
+ default:
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 7 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1694 "Branch.c"
+ }
+}
+
+
+LibraryPhotosEntry* library_photos_entry_construct (GType object_type) {
+ LibraryPhotosEntry * self = NULL;
+#line 93 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = (LibraryPhotosEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 93 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return self;
+#line 1705 "Branch.c"
+}
+
+
+LibraryPhotosEntry* library_photos_entry_new (void) {
+#line 93 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return library_photos_entry_construct (LIBRARY_TYPE_PHOTOS_ENTRY);
+#line 1712 "Branch.c"
+}
+
+
+static gchar* library_photos_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ LibraryPhotosEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntry);
+#line 97 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = _ ("Photos");
+#line 97 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 97 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp1_;
+#line 97 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1731 "Branch.c"
+}
+
+
+static gchar* library_photos_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ LibraryPhotosEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntry);
+#line 101 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_PHOTOS);
+#line 101 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 101 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1747 "Branch.c"
+}
+
+
+static Page* library_photos_entry_real_create_page (SidebarSimplePageEntry* base) {
+ LibraryPhotosEntry * self;
+ Page* result = NULL;
+ LibraryMainPage* _tmp0_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntry);
+#line 105 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = library_main_page_new (NULL, NULL);
+#line 105 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_ref_sink (_tmp0_);
+#line 105 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 105 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1765 "Branch.c"
+}
+
+
+static void library_photos_entry_class_init (LibraryPhotosEntryClass * klass) {
+#line 91 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_photos_entry_parent_class = g_type_class_peek_parent (klass);
+#line 91 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = library_photos_entry_real_get_sidebar_name;
+#line 91 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = library_photos_entry_real_get_sidebar_icon;
+#line 91 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = library_photos_entry_real_create_page;
+#line 1778 "Branch.c"
+}
+
+
+static void library_photos_entry_instance_init (LibraryPhotosEntry * self) {
+}
+
+
+GType library_photos_entry_get_type (void) {
+ static volatile gsize library_photos_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&library_photos_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryPhotosEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_photos_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryPhotosEntry), 0, (GInstanceInitFunc) library_photos_entry_instance_init, NULL };
+ GType library_photos_entry_type_id;
+ library_photos_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "LibraryPhotosEntry", &g_define_type_info, 0);
+ g_once_init_leave (&library_photos_entry_type_id__volatile, library_photos_entry_type_id);
+ }
+ return library_photos_entry_type_id__volatile;
+}
+
+
+LibraryHideablePageEntry* library_hideable_page_entry_construct (GType object_type) {
+ LibraryHideablePageEntry * self = NULL;
+#line 125 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = (LibraryHideablePageEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 125 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return self;
+#line 1804 "Branch.c"
+}
+
+
+gboolean library_hideable_page_entry_get_visible (LibraryHideablePageEntry* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_val_if_fail (LIBRARY_IS_HIDEABLE_PAGE_ENTRY (self), FALSE);
+#line 115 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = self->priv->show_entry;
+#line 115 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ result = _tmp0_;
+#line 115 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return result;
+#line 1819 "Branch.c"
+}
+
+
+void library_hideable_page_entry_set_visible (LibraryHideablePageEntry* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 116 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_return_if_fail (LIBRARY_IS_HIDEABLE_PAGE_ENTRY (self));
+#line 117 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = value;
+#line 117 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = self->priv->show_entry;
+#line 117 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 118 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return;
+#line 1838 "Branch.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp2_ = value;
+#line 120 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->show_entry = _tmp2_;
+#line 121 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp3_ = value;
+#line 121 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_signal_emit_by_name (self, "visibility-changed", _tmp3_);
+#line 116 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_notify ((GObject *) self, "visible");
+#line 1850 "Branch.c"
+}
+
+
+static void library_hideable_page_entry_class_init (LibraryHideablePageEntryClass * klass) {
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_hideable_page_entry_parent_class = g_type_class_peek_parent (klass);
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_type_class_add_private (klass, sizeof (LibraryHideablePageEntryPrivate));
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_library_hideable_page_entry_get_property;
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_library_hideable_page_entry_set_property;
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_hideable_page_entry_finalize;
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), LIBRARY_HIDEABLE_PAGE_ENTRY_VISIBLE, g_param_spec_boolean ("visible", "visible", "visible", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_signal_new ("visibility_changed", LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 1869 "Branch.c"
+}
+
+
+static void library_hideable_page_entry_instance_init (LibraryHideablePageEntry * self) {
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv = LIBRARY_HIDEABLE_PAGE_ENTRY_GET_PRIVATE (self);
+#line 113 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self->priv->show_entry = FALSE;
+#line 1878 "Branch.c"
+}
+
+
+static void library_hideable_page_entry_finalize (GObject* obj) {
+ LibraryHideablePageEntry * self;
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry);
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_CLASS (library_hideable_page_entry_parent_class)->finalize (obj);
+#line 1888 "Branch.c"
+}
+
+
+GType library_hideable_page_entry_get_type (void) {
+ static volatile gsize library_hideable_page_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&library_hideable_page_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryHideablePageEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_hideable_page_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryHideablePageEntry), 0, (GInstanceInitFunc) library_hideable_page_entry_instance_init, NULL };
+ GType library_hideable_page_entry_type_id;
+ library_hideable_page_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "LibraryHideablePageEntry", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&library_hideable_page_entry_type_id__volatile, library_hideable_page_entry_type_id);
+ }
+ return library_hideable_page_entry_type_id__volatile;
+}
+
+
+static void _vala_library_hideable_page_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ LibraryHideablePageEntry * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry);
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ switch (property_id) {
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_HIDEABLE_PAGE_ENTRY_VISIBLE:
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ g_value_set_boolean (value, library_hideable_page_entry_get_visible (self));
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1915 "Branch.c"
+ default:
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1921 "Branch.c"
+ }
+}
+
+
+static void _vala_library_hideable_page_entry_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ LibraryHideablePageEntry * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry);
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ switch (property_id) {
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ case LIBRARY_HIDEABLE_PAGE_ENTRY_VISIBLE:
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_hideable_page_entry_set_visible (self, g_value_get_boolean (value));
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1937 "Branch.c"
+ default:
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 109 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 1943 "Branch.c"
+ }
+}
+
+
+LibraryMainPage* library_main_page_construct (GType object_type, ProgressMonitor monitor, void* monitor_target) {
+ LibraryMainPage * self = NULL;
+#line 133 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = (LibraryMainPage*) collection_page_construct (object_type, LIBRARY_MAIN_PAGE_NAME);
+#line 1952 "Branch.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _sources_it = _tmp5_;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ while (TRUE) {
+#line 1981 "Branch.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ MediaSourceCollection* _tmp12_ = NULL;
+ CollectionViewManager* _tmp13_ = NULL;
+ CollectionViewManager* _tmp14_ = NULL;
+ ProgressMonitor _tmp15_ = NULL;
+ void* _tmp15__target = NULL;
+ ViewCollectionMonitor* _tmp16_ = NULL;
+ ViewCollectionMonitor* _tmp17_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp6_ = _sources_it;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ if (!_tmp7_) {
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ break;
+#line 2004 "Branch.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp8_ = _sources_it;
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ sources = (MediaSourceCollection*) _tmp9_;
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp11_ = _tmp10_;
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp12_ = sources;
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp13_ = collection_view_manager_new (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage));
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp15_ = monitor;
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp15__target = monitor_target;
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp16_ = view_collection_monitor_source_collection (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_VIEW_MANAGER, ViewManager), NULL, NULL, _tmp15_, _tmp15__target);
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp17_ = _tmp16_;
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _view_collection_monitor_unref0 (_tmp17_);
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _view_manager_unref0 (_tmp14_);
+#line 136 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _data_collection_unref0 (sources);
+#line 2038 "Branch.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_sources_it);
+#line 2042 "Branch.c"
+ }
+#line 132 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return self;
+#line 2046 "Branch.c"
+}
+
+
+LibraryMainPage* library_main_page_new (ProgressMonitor monitor, void* monitor_target) {
+#line 132 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ return library_main_page_construct (LIBRARY_TYPE_MAIN_PAGE, monitor, monitor_target);
+#line 2053 "Branch.c"
+}
+
+
+static void library_main_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ LibraryMainPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 139 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_MAIN_PAGE, LibraryMainPage);
+#line 140 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 140 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 140 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ configuration_facade_get_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 140 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _vala_sort_order = _tmp2_;
+#line 140 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _vala_sort_by = _tmp3_;
+#line 140 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 139 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ if (sort_order) {
+#line 139 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ *sort_order = _vala_sort_order;
+#line 2083 "Branch.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ if (sort_by) {
+#line 139 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ *sort_by = _vala_sort_by;
+#line 2089 "Branch.c"
+ }
+}
+
+
+static void library_main_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ LibraryMainPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 143 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_MAIN_PAGE, LibraryMainPage);
+#line 144 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 144 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 144 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp2_ = sort_order;
+#line 144 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _tmp3_ = sort_by;
+#line 144 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ configuration_facade_set_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 144 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 2114 "Branch.c"
+}
+
+
+static void library_main_page_class_init (LibraryMainPageClass * klass) {
+#line 129 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ library_main_page_parent_class = g_type_class_peek_parent (klass);
+#line 129 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = library_main_page_real_get_config_photos_sort;
+#line 129 "/home/jens/Source/shotwell/src/library/Branch.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = library_main_page_real_set_config_photos_sort;
+#line 2125 "Branch.c"
+}
+
+
+static void library_main_page_instance_init (LibraryMainPage * self) {
+}
+
+
+GType library_main_page_get_type (void) {
+ static volatile gsize library_main_page_type_id__volatile = 0;
+ if (g_once_init_enter (&library_main_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryMainPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_main_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryMainPage), 0, (GInstanceInitFunc) library_main_page_instance_init, NULL };
+ GType library_main_page_type_id;
+ library_main_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "LibraryMainPage", &g_define_type_info, 0);
+ g_once_init_leave (&library_main_page_type_id__volatile, library_main_page_type_id);
+ }
+ return library_main_page_type_id__volatile;
+}
+
+
+
diff --git a/src/library/FlaggedPage.c b/src/library/FlaggedPage.c
new file mode 100644
index 0000000..c1b3a48
--- /dev/null
+++ b/src/library/FlaggedPage.c
@@ -0,0 +1,1230 @@
+/* FlaggedPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from FlaggedPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+
+#define TYPE_FLAGGED_PAGE (flagged_page_get_type ())
+#define FLAGGED_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGED_PAGE, FlaggedPage))
+#define FLAGGED_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FLAGGED_PAGE, FlaggedPageClass))
+#define IS_FLAGGED_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGED_PAGE))
+#define IS_FLAGGED_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FLAGGED_PAGE))
+#define FLAGGED_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FLAGGED_PAGE, FlaggedPageClass))
+
+typedef struct _FlaggedPage FlaggedPage;
+typedef struct _FlaggedPageClass FlaggedPageClass;
+typedef struct _FlaggedPagePrivate FlaggedPagePrivate;
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DEFAULT_SEARCH_VIEW_FILTER (default_search_view_filter_get_type ())
+#define DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilter))
+#define DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define DEFAULT_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+
+typedef struct _DefaultSearchViewFilter DefaultSearchViewFilter;
+typedef struct _DefaultSearchViewFilterClass DefaultSearchViewFilterClass;
+
+#define COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER (collection_page_collection_search_view_filter_get_type ())
+#define COLLECTION_PAGE_COLLECTION_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, CollectionPageCollectionSearchViewFilter))
+#define COLLECTION_PAGE_COLLECTION_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, CollectionPageCollectionSearchViewFilterClass))
+#define COLLECTION_PAGE_IS_COLLECTION_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER))
+#define COLLECTION_PAGE_IS_COLLECTION_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER))
+#define COLLECTION_PAGE_COLLECTION_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, CollectionPageCollectionSearchViewFilterClass))
+
+typedef struct _CollectionPageCollectionSearchViewFilter CollectionPageCollectionSearchViewFilter;
+typedef struct _CollectionPageCollectionSearchViewFilterClass CollectionPageCollectionSearchViewFilterClass;
+
+#define FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER (flagged_page_flagged_search_view_filter_get_type ())
+#define FLAGGED_PAGE_FLAGGED_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER, FlaggedPageFlaggedSearchViewFilter))
+#define FLAGGED_PAGE_FLAGGED_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER, FlaggedPageFlaggedSearchViewFilterClass))
+#define FLAGGED_PAGE_IS_FLAGGED_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER))
+#define FLAGGED_PAGE_IS_FLAGGED_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER))
+#define FLAGGED_PAGE_FLAGGED_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER, FlaggedPageFlaggedSearchViewFilterClass))
+
+typedef struct _FlaggedPageFlaggedSearchViewFilter FlaggedPageFlaggedSearchViewFilter;
+typedef struct _FlaggedPageFlaggedSearchViewFilterClass FlaggedPageFlaggedSearchViewFilterClass;
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_COLLECTION_VIEW_MANAGER (collection_view_manager_get_type ())
+#define COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager))
+#define COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+#define IS_COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_VIEW_MANAGER))
+#define IS_COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_VIEW_MANAGER))
+#define COLLECTION_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+
+typedef struct _CollectionViewManager CollectionViewManager;
+typedef struct _CollectionViewManagerClass CollectionViewManagerClass;
+
+#define FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER (flagged_page_flagged_view_manager_get_type ())
+#define FLAGGED_PAGE_FLAGGED_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER, FlaggedPageFlaggedViewManager))
+#define FLAGGED_PAGE_FLAGGED_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER, FlaggedPageFlaggedViewManagerClass))
+#define FLAGGED_PAGE_IS_FLAGGED_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER))
+#define FLAGGED_PAGE_IS_FLAGGED_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER))
+#define FLAGGED_PAGE_FLAGGED_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER, FlaggedPageFlaggedViewManagerClass))
+
+typedef struct _FlaggedPageFlaggedViewManager FlaggedPageFlaggedViewManager;
+typedef struct _FlaggedPageFlaggedViewManagerClass FlaggedPageFlaggedViewManagerClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+typedef struct _CollectionViewManagerPrivate CollectionViewManagerPrivate;
+typedef struct _FlaggedPageFlaggedViewManagerPrivate FlaggedPageFlaggedViewManagerPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _SearchViewFilterPrivate SearchViewFilterPrivate;
+typedef struct _DefaultSearchViewFilterPrivate DefaultSearchViewFilterPrivate;
+typedef struct _CollectionPageCollectionSearchViewFilterPrivate CollectionPageCollectionSearchViewFilterPrivate;
+typedef struct _FlaggedPageFlaggedSearchViewFilterPrivate FlaggedPageFlaggedSearchViewFilterPrivate;
+
+#define TYPE_SEARCH_FILTER_CRITERIA (search_filter_criteria_get_type ())
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _FlaggedPage {
+ CollectionPage parent_instance;
+ FlaggedPagePrivate * priv;
+};
+
+struct _FlaggedPageClass {
+ CollectionPageClass parent_class;
+};
+
+struct _FlaggedPagePrivate {
+ ViewManager* view_manager;
+ Alteration* prereq;
+ FlaggedPageFlaggedSearchViewFilter* search_filter;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _CollectionViewManager {
+ ViewManager parent_instance;
+ CollectionViewManagerPrivate * priv;
+};
+
+struct _CollectionViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _FlaggedPageFlaggedViewManager {
+ CollectionViewManager parent_instance;
+ FlaggedPageFlaggedViewManagerPrivate * priv;
+};
+
+struct _FlaggedPageFlaggedViewManagerClass {
+ CollectionViewManagerClass parent_class;
+};
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _SearchViewFilter {
+ ViewFilter parent_instance;
+ SearchViewFilterPrivate * priv;
+};
+
+struct _SearchViewFilterClass {
+ ViewFilterClass parent_class;
+ guint (*get_criteria) (SearchViewFilter* self);
+};
+
+struct _DefaultSearchViewFilter {
+ SearchViewFilter parent_instance;
+ DefaultSearchViewFilterPrivate * priv;
+};
+
+struct _DefaultSearchViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+struct _CollectionPageCollectionSearchViewFilter {
+ DefaultSearchViewFilter parent_instance;
+ CollectionPageCollectionSearchViewFilterPrivate * priv;
+};
+
+struct _CollectionPageCollectionSearchViewFilterClass {
+ DefaultSearchViewFilterClass parent_class;
+};
+
+struct _FlaggedPageFlaggedSearchViewFilter {
+ CollectionPageCollectionSearchViewFilter parent_instance;
+ FlaggedPageFlaggedSearchViewFilterPrivate * priv;
+};
+
+struct _FlaggedPageFlaggedSearchViewFilterClass {
+ CollectionPageCollectionSearchViewFilterClass parent_class;
+};
+
+typedef enum {
+ SEARCH_FILTER_CRITERIA_NONE = 0,
+ SEARCH_FILTER_CRITERIA_RECURSIVE = 1 << 0,
+ SEARCH_FILTER_CRITERIA_TEXT = 1 << 1,
+ SEARCH_FILTER_CRITERIA_FLAG = 1 << 2,
+ SEARCH_FILTER_CRITERIA_MEDIA = 1 << 3,
+ SEARCH_FILTER_CRITERIA_RATING = 1 << 4,
+ SEARCH_FILTER_CRITERIA_SAVEDSEARCH = 1 << 5,
+ SEARCH_FILTER_CRITERIA_ALL = 0xFFFFFFFFLL
+} SearchFilterCriteria;
+
+
+static gpointer flagged_page_parent_class = NULL;
+static gpointer flagged_page_flagged_view_manager_parent_class = NULL;
+static gpointer flagged_page_flagged_search_view_filter_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType flagged_page_get_type (void) G_GNUC_CONST;
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType default_search_view_filter_get_type (void) G_GNUC_CONST;
+GType collection_page_collection_search_view_filter_get_type (void) G_GNUC_CONST;
+static GType flagged_page_flagged_search_view_filter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define FLAGGED_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_FLAGGED_PAGE, FlaggedPagePrivate))
+enum {
+ FLAGGED_PAGE_DUMMY_PROPERTY
+};
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+static FlaggedPageFlaggedSearchViewFilter* flagged_page_flagged_search_view_filter_new (void);
+static FlaggedPageFlaggedSearchViewFilter* flagged_page_flagged_search_view_filter_construct (GType object_type);
+#define FLAGGED_PAGE_NAME _ ("Flagged")
+FlaggedPage* flagged_page_new (void);
+FlaggedPage* flagged_page_construct (GType object_type);
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+static FlaggedPageFlaggedViewManager* flagged_page_flagged_view_manager_new (FlaggedPage* owner);
+static FlaggedPageFlaggedViewManager* flagged_page_flagged_view_manager_construct (GType object_type, FlaggedPage* owner);
+GType collection_view_manager_get_type (void) G_GNUC_CONST;
+static GType flagged_page_flagged_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+static void flagged_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void flagged_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+void configuration_facade_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+static SearchViewFilter* flagged_page_real_get_search_view_filter (CheckerboardPage* base);
+enum {
+ FLAGGED_PAGE_FLAGGED_VIEW_MANAGER_DUMMY_PROPERTY
+};
+CollectionViewManager* collection_view_manager_new (CollectionPage* page);
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page);
+static gboolean flagged_page_flagged_view_manager_real_include_in_view (ViewManager* base, DataSource* source);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+enum {
+ FLAGGED_PAGE_FLAGGED_SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+static guint flagged_page_flagged_search_view_filter_real_get_criteria (SearchViewFilter* base);
+GType search_filter_criteria_get_type (void) G_GNUC_CONST;
+CollectionPageCollectionSearchViewFilter* collection_page_collection_search_view_filter_new (void);
+CollectionPageCollectionSearchViewFilter* collection_page_collection_search_view_filter_construct (GType object_type);
+static void flagged_page_finalize (GObject* obj);
+
+
+FlaggedPage* flagged_page_construct (GType object_type) {
+ FlaggedPage * self = NULL;
+ FlaggedPageFlaggedViewManager* _tmp0_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = (FlaggedPage*) collection_page_construct (object_type, FLAGGED_PAGE_NAME);
+#line 36 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp0_ = flagged_page_flagged_view_manager_new (self);
+#line 36 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _view_manager_unref0 (self->priv->view_manager);
+#line 36 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self->priv->view_manager = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_VIEW_MANAGER, ViewManager);
+#line 829 "FlaggedPage.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ MediaCollectionRegistry* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp1_ = media_collection_registry_get_instance ();
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp2_ = _tmp1_;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp3_ = media_collection_registry_get_all (_tmp2_);
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp4_ = _tmp3_;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp6_ = _tmp5_;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _media_collection_registry_unref0 (_tmp2_);
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _sources_it = _tmp6_;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ while (TRUE) {
+#line 858 "FlaggedPage.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ MediaSourceCollection* _tmp13_ = NULL;
+ ViewManager* _tmp14_ = NULL;
+ Alteration* _tmp15_ = NULL;
+ ViewCollectionMonitor* _tmp16_ = NULL;
+ ViewCollectionMonitor* _tmp17_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp7_ = _sources_it;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ if (!_tmp8_) {
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ break;
+#line 879 "FlaggedPage.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp9_ = _sources_it;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ sources = (MediaSourceCollection*) _tmp10_;
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp11_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp12_ = _tmp11_;
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp13_ = sources;
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp14_ = self->priv->view_manager;
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp15_ = self->priv->prereq;
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp16_ = view_collection_monitor_source_collection (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_SOURCE_COLLECTION, SourceCollection), _tmp14_, _tmp15_, NULL, NULL, NULL);
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp17_ = _tmp16_;
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _view_collection_monitor_unref0 (_tmp17_);
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _data_collection_unref0 (_tmp12_);
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _data_collection_unref0 (sources);
+#line 907 "FlaggedPage.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _g_object_unref0 (_sources_it);
+#line 911 "FlaggedPage.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return self;
+#line 915 "FlaggedPage.c"
+}
+
+
+FlaggedPage* flagged_page_new (void) {
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return flagged_page_construct (TYPE_FLAGGED_PAGE);
+#line 922 "FlaggedPage.c"
+}
+
+
+static void flagged_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ FlaggedPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 42 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FLAGGED_PAGE, FlaggedPage);
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp1_ = _tmp0_;
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ configuration_facade_get_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _vala_sort_order = _tmp2_;
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _vala_sort_by = _tmp3_;
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 42 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ if (sort_order) {
+#line 42 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ *sort_order = _vala_sort_order;
+#line 952 "FlaggedPage.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ if (sort_by) {
+#line 42 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ *sort_by = _vala_sort_by;
+#line 958 "FlaggedPage.c"
+ }
+}
+
+
+static void flagged_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ FlaggedPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 46 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FLAGGED_PAGE, FlaggedPage);
+#line 47 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 47 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp1_ = _tmp0_;
+#line 47 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp2_ = sort_order;
+#line 47 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp3_ = sort_by;
+#line 47 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ configuration_facade_set_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 47 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 983 "FlaggedPage.c"
+}
+
+
+static gpointer _view_filter_ref0 (gpointer self) {
+#line 51 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return self ? view_filter_ref (self) : NULL;
+#line 990 "FlaggedPage.c"
+}
+
+
+static SearchViewFilter* flagged_page_real_get_search_view_filter (CheckerboardPage* base) {
+ FlaggedPage * self;
+ SearchViewFilter* result = NULL;
+ FlaggedPageFlaggedSearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_FLAGGED_PAGE, FlaggedPage);
+#line 51 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 51 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp1_ = _view_filter_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 51 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ result = _tmp1_;
+#line 51 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return result;
+#line 1009 "FlaggedPage.c"
+}
+
+
+static FlaggedPageFlaggedViewManager* flagged_page_flagged_view_manager_construct (GType object_type, FlaggedPage* owner) {
+ FlaggedPageFlaggedViewManager* self = NULL;
+ FlaggedPage* _tmp0_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ g_return_val_if_fail (IS_FLAGGED_PAGE (owner), NULL);
+#line 12 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp0_ = owner;
+#line 12 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = (FlaggedPageFlaggedViewManager*) collection_view_manager_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_COLLECTION_PAGE, CollectionPage));
+#line 11 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return self;
+#line 1024 "FlaggedPage.c"
+}
+
+
+static FlaggedPageFlaggedViewManager* flagged_page_flagged_view_manager_new (FlaggedPage* owner) {
+#line 11 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return flagged_page_flagged_view_manager_construct (FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER, owner);
+#line 1031 "FlaggedPage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1038 "FlaggedPage.c"
+}
+
+
+static gboolean flagged_page_flagged_view_manager_real_include_in_view (ViewManager* base, DataSource* source) {
+ FlaggedPageFlaggedViewManager * self;
+ gboolean result = FALSE;
+ Flaggable* flaggable = NULL;
+ DataSource* _tmp0_ = NULL;
+ Flaggable* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Flaggable* _tmp3_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FLAGGED_PAGE_TYPE_FLAGGED_VIEW_MANAGER, FlaggedPageFlaggedViewManager);
+#line 15 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp0_ = source;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_FLAGGABLE) ? ((Flaggable*) _tmp0_) : NULL);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ flaggable = _tmp1_;
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp3_ = flaggable;
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ if (_tmp3_ != NULL) {
+#line 1064 "FlaggedPage.c"
+ Flaggable* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp4_ = flaggable;
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp5_ = flaggable_is_flagged (_tmp4_);
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp2_ = _tmp5_;
+#line 1073 "FlaggedPage.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp2_ = FALSE;
+#line 1077 "FlaggedPage.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ result = _tmp2_;
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _g_object_unref0 (flaggable);
+#line 18 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return result;
+#line 1085 "FlaggedPage.c"
+}
+
+
+static void flagged_page_flagged_view_manager_class_init (FlaggedPageFlaggedViewManagerClass * klass) {
+#line 10 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ flagged_page_flagged_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 10 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ ((ViewManagerClass *) klass)->include_in_view = flagged_page_flagged_view_manager_real_include_in_view;
+#line 1094 "FlaggedPage.c"
+}
+
+
+static void flagged_page_flagged_view_manager_instance_init (FlaggedPageFlaggedViewManager * self) {
+}
+
+
+static GType flagged_page_flagged_view_manager_get_type (void) {
+ static volatile gsize flagged_page_flagged_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&flagged_page_flagged_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FlaggedPageFlaggedViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) flagged_page_flagged_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FlaggedPageFlaggedViewManager), 0, (GInstanceInitFunc) flagged_page_flagged_view_manager_instance_init, NULL };
+ GType flagged_page_flagged_view_manager_type_id;
+ flagged_page_flagged_view_manager_type_id = g_type_register_static (TYPE_COLLECTION_VIEW_MANAGER, "FlaggedPageFlaggedViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&flagged_page_flagged_view_manager_type_id__volatile, flagged_page_flagged_view_manager_type_id);
+ }
+ return flagged_page_flagged_view_manager_type_id__volatile;
+}
+
+
+static guint flagged_page_flagged_search_view_filter_real_get_criteria (SearchViewFilter* base) {
+ FlaggedPageFlaggedSearchViewFilter * self;
+ guint result = 0U;
+#line 23 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER, FlaggedPageFlaggedSearchViewFilter);
+#line 24 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ result = (guint) (((SEARCH_FILTER_CRITERIA_TEXT | SEARCH_FILTER_CRITERIA_MEDIA) | SEARCH_FILTER_CRITERIA_RATING) | SEARCH_FILTER_CRITERIA_SAVEDSEARCH);
+#line 24 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return result;
+#line 1123 "FlaggedPage.c"
+}
+
+
+static FlaggedPageFlaggedSearchViewFilter* flagged_page_flagged_search_view_filter_construct (GType object_type) {
+ FlaggedPageFlaggedSearchViewFilter* self = NULL;
+#line 22 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = (FlaggedPageFlaggedSearchViewFilter*) collection_page_collection_search_view_filter_construct (object_type);
+#line 22 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return self;
+#line 1133 "FlaggedPage.c"
+}
+
+
+static FlaggedPageFlaggedSearchViewFilter* flagged_page_flagged_search_view_filter_new (void) {
+#line 22 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ return flagged_page_flagged_search_view_filter_construct (FLAGGED_PAGE_TYPE_FLAGGED_SEARCH_VIEW_FILTER);
+#line 1140 "FlaggedPage.c"
+}
+
+
+static void flagged_page_flagged_search_view_filter_class_init (FlaggedPageFlaggedSearchViewFilterClass * klass) {
+#line 22 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ flagged_page_flagged_search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 22 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = flagged_page_flagged_search_view_filter_real_get_criteria;
+#line 1149 "FlaggedPage.c"
+}
+
+
+static void flagged_page_flagged_search_view_filter_instance_init (FlaggedPageFlaggedSearchViewFilter * self) {
+}
+
+
+static GType flagged_page_flagged_search_view_filter_get_type (void) {
+ static volatile gsize flagged_page_flagged_search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&flagged_page_flagged_search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FlaggedPageFlaggedSearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) flagged_page_flagged_search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FlaggedPageFlaggedSearchViewFilter), 0, (GInstanceInitFunc) flagged_page_flagged_search_view_filter_instance_init, NULL };
+ GType flagged_page_flagged_search_view_filter_type_id;
+ flagged_page_flagged_search_view_filter_type_id = g_type_register_static (COLLECTION_PAGE_TYPE_COLLECTION_SEARCH_VIEW_FILTER, "FlaggedPageFlaggedSearchViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&flagged_page_flagged_search_view_filter_type_id__volatile, flagged_page_flagged_search_view_filter_type_id);
+ }
+ return flagged_page_flagged_search_view_filter_type_id__volatile;
+}
+
+
+static void flagged_page_class_init (FlaggedPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ flagged_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ g_type_class_add_private (klass, sizeof (FlaggedPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = flagged_page_real_get_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = flagged_page_real_set_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ ((CheckerboardPageClass *) klass)->get_search_view_filter = flagged_page_real_get_search_view_filter;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = flagged_page_finalize;
+#line 1182 "FlaggedPage.c"
+}
+
+
+static void flagged_page_instance_init (FlaggedPage * self) {
+ Alteration* _tmp0_ = NULL;
+ FlaggedPageFlaggedSearchViewFilter* _tmp1_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self->priv = FLAGGED_PAGE_GET_PRIVATE (self);
+#line 30 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp0_ = alteration_new ("metadata", "flagged");
+#line 30 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self->priv->prereq = _tmp0_;
+#line 31 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _tmp1_ = flagged_page_flagged_search_view_filter_new ();
+#line 31 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self->priv->search_filter = _tmp1_;
+#line 1199 "FlaggedPage.c"
+}
+
+
+static void flagged_page_finalize (GObject* obj) {
+ FlaggedPage * self;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_FLAGGED_PAGE, FlaggedPage);
+#line 29 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _view_manager_unref0 (self->priv->view_manager);
+#line 30 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _alteration_unref0 (self->priv->prereq);
+#line 31 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedPage.vala"
+ G_OBJECT_CLASS (flagged_page_parent_class)->finalize (obj);
+#line 1215 "FlaggedPage.c"
+}
+
+
+GType flagged_page_get_type (void) {
+ static volatile gsize flagged_page_type_id__volatile = 0;
+ if (g_once_init_enter (&flagged_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (FlaggedPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) flagged_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FlaggedPage), 0, (GInstanceInitFunc) flagged_page_instance_init, NULL };
+ GType flagged_page_type_id;
+ flagged_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "FlaggedPage", &g_define_type_info, 0);
+ g_once_init_leave (&flagged_page_type_id__volatile, flagged_page_type_id);
+ }
+ return flagged_page_type_id__volatile;
+}
+
+
+
diff --git a/src/library/FlaggedPage.vala b/src/library/FlaggedPage.vala
index f713773..6bf5416 100644
--- a/src/library/FlaggedPage.vala
+++ b/src/library/FlaggedPage.vala
@@ -22,7 +22,7 @@ public class FlaggedPage : CollectionPage {
private class FlaggedSearchViewFilter : CollectionPage.CollectionSearchViewFilter {
public override uint get_criteria() {
return SearchFilterCriteria.TEXT | SearchFilterCriteria.MEDIA |
- SearchFilterCriteria.RATING;
+ SearchFilterCriteria.RATING | SearchFilterCriteria.SAVEDSEARCH;
}
}
diff --git a/src/library/FlaggedSidebarEntry.c b/src/library/FlaggedSidebarEntry.c
new file mode 100644
index 0000000..7eb90aa
--- /dev/null
+++ b/src/library/FlaggedSidebarEntry.c
@@ -0,0 +1,862 @@
+/* FlaggedSidebarEntry.c generated by valac 0.32.1, the Vala compiler
+ * generated from FlaggedSidebarEntry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY (library_hideable_page_entry_get_type ())
+#define LIBRARY_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+
+typedef struct _LibraryHideablePageEntry LibraryHideablePageEntry;
+typedef struct _LibraryHideablePageEntryClass LibraryHideablePageEntryClass;
+typedef struct _LibraryHideablePageEntryPrivate LibraryHideablePageEntryPrivate;
+
+#define SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY (sidebar_internal_drop_target_entry_get_type ())
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntry))
+#define SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY))
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntryIface))
+
+typedef struct _SidebarInternalDropTargetEntry SidebarInternalDropTargetEntry;
+typedef struct _SidebarInternalDropTargetEntryIface SidebarInternalDropTargetEntryIface;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY (library_flagged_sidebar_entry_get_type ())
+#define LIBRARY_FLAGGED_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry))
+#define LIBRARY_FLAGGED_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntryClass))
+#define LIBRARY_IS_FLAGGED_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY))
+#define LIBRARY_IS_FLAGGED_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY))
+#define LIBRARY_FLAGGED_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntryClass))
+
+typedef struct _LibraryFlaggedSidebarEntry LibraryFlaggedSidebarEntry;
+typedef struct _LibraryFlaggedSidebarEntryClass LibraryFlaggedSidebarEntryClass;
+typedef struct _LibraryFlaggedSidebarEntryPrivate LibraryFlaggedSidebarEntryPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_FLAGGED_PAGE (flagged_page_get_type ())
+#define FLAGGED_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGED_PAGE, FlaggedPage))
+#define FLAGGED_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FLAGGED_PAGE, FlaggedPageClass))
+#define IS_FLAGGED_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGED_PAGE))
+#define IS_FLAGGED_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FLAGGED_PAGE))
+#define FLAGGED_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FLAGGED_PAGE, FlaggedPageClass))
+
+typedef struct _FlaggedPage FlaggedPage;
+typedef struct _FlaggedPageClass FlaggedPageClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND (multiple_data_source_at_once_command_get_type ())
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommand))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define IS_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND))
+#define MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTIPLE_DATA_SOURCE_AT_ONCE_COMMAND, MultipleDataSourceAtOnceCommandClass))
+
+typedef struct _MultipleDataSourceAtOnceCommand MultipleDataSourceAtOnceCommand;
+typedef struct _MultipleDataSourceAtOnceCommandClass MultipleDataSourceAtOnceCommandClass;
+
+#define TYPE_FLAG_UNFLAG_COMMAND (flag_unflag_command_get_type ())
+#define FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommand))
+#define FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+#define IS_FLAG_UNFLAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAG_UNFLAG_COMMAND))
+#define IS_FLAG_UNFLAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FLAG_UNFLAG_COMMAND))
+#define FLAG_UNFLAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FLAG_UNFLAG_COMMAND, FlagUnflagCommandClass))
+
+typedef struct _FlagUnflagCommand FlagUnflagCommand;
+typedef struct _FlagUnflagCommandClass FlagUnflagCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _LibraryHideablePageEntry {
+ SidebarSimplePageEntry parent_instance;
+ LibraryHideablePageEntryPrivate * priv;
+};
+
+struct _LibraryHideablePageEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _SidebarInternalDropTargetEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*internal_drop_received) (SidebarInternalDropTargetEntry* self, GeeList* sources);
+ gboolean (*internal_drop_received_arbitrary) (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+};
+
+struct _LibraryFlaggedSidebarEntry {
+ LibraryHideablePageEntry parent_instance;
+ LibraryFlaggedSidebarEntryPrivate * priv;
+};
+
+struct _LibraryFlaggedSidebarEntryClass {
+ LibraryHideablePageEntryClass parent_class;
+};
+
+
+static gpointer library_flagged_sidebar_entry_parent_class = NULL;
+static SidebarInternalDropTargetEntryIface* library_flagged_sidebar_entry_sidebar_internal_drop_target_entry_parent_iface = NULL;
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType library_hideable_page_entry_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType sidebar_internal_drop_target_entry_get_type (void) G_GNUC_CONST;
+GType library_flagged_sidebar_entry_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_FLAGGED_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+static void library_flagged_sidebar_entry_on_flagged_contents_altered (LibraryFlaggedSidebarEntry* self);
+static void _library_flagged_sidebar_entry_on_flagged_contents_altered_media_source_collection_flagged_contents_altered (MediaSourceCollection* _sender, gpointer self);
+LibraryFlaggedSidebarEntry* library_flagged_sidebar_entry_new (void);
+LibraryFlaggedSidebarEntry* library_flagged_sidebar_entry_construct (GType object_type);
+LibraryHideablePageEntry* library_hideable_page_entry_construct (GType object_type);
+static gint library_flagged_sidebar_entry_get_total_flagged (LibraryFlaggedSidebarEntry* self);
+void library_hideable_page_entry_set_visible (LibraryHideablePageEntry* self, gboolean value);
+static gchar* library_flagged_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define FLAGGED_PAGE_NAME _ ("Flagged")
+static gchar* library_flagged_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+#define RESOURCES_ICON_FLAGGED_PAGE "flag-page"
+static Page* library_flagged_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+FlaggedPage* flagged_page_new (void);
+FlaggedPage* flagged_page_construct (GType object_type);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType flagged_page_get_type (void) G_GNUC_CONST;
+static gboolean library_flagged_sidebar_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+FlagUnflagCommand* flag_unflag_command_new (GeeCollection* sources, gboolean flag);
+FlagUnflagCommand* flag_unflag_command_construct (GType object_type, GeeCollection* sources, gboolean flag);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType multiple_data_source_at_once_command_get_type (void) G_GNUC_CONST;
+GType flag_unflag_command_get_type (void) G_GNUC_CONST;
+static gboolean library_flagged_sidebar_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data);
+GeeCollection* media_source_collection_get_flagged (MediaSourceCollection* self);
+static void library_flagged_sidebar_entry_finalize (GObject* obj);
+
+
+static void _library_flagged_sidebar_entry_on_flagged_contents_altered_media_source_collection_flagged_contents_altered (MediaSourceCollection* _sender, gpointer self) {
+#line 17 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ library_flagged_sidebar_entry_on_flagged_contents_altered ((LibraryFlaggedSidebarEntry*) self);
+#line 443 "FlaggedSidebarEntry.c"
+}
+
+
+LibraryFlaggedSidebarEntry* library_flagged_sidebar_entry_construct (GType object_type) {
+ LibraryFlaggedSidebarEntry * self = NULL;
+ gint _tmp11_ = 0;
+#line 8 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ self = (LibraryFlaggedSidebarEntry*) library_hideable_page_entry_construct (object_type);
+#line 452 "FlaggedSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ while (TRUE) {
+#line 481 "FlaggedSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ break;
+#line 496 "FlaggedSidebarEntry.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 10 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 10 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_signal_connect_object (_tmp10_, "flagged-contents-altered", (GCallback) _library_flagged_sidebar_entry_on_flagged_contents_altered_media_source_collection_flagged_contents_altered, self, 0);
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 510 "FlaggedSidebarEntry.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 514 "FlaggedSidebarEntry.c"
+ }
+#line 12 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp11_ = library_flagged_sidebar_entry_get_total_flagged (self);
+#line 12 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), _tmp11_ != 0);
+#line 8 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return self;
+#line 522 "FlaggedSidebarEntry.c"
+}
+
+
+LibraryFlaggedSidebarEntry* library_flagged_sidebar_entry_new (void) {
+#line 8 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return library_flagged_sidebar_entry_construct (LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY);
+#line 529 "FlaggedSidebarEntry.c"
+}
+
+
+static gchar* library_flagged_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ LibraryFlaggedSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry);
+#line 21 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = g_strdup (FLAGGED_PAGE_NAME);
+#line 21 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ result = _tmp0_;
+#line 21 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return result;
+#line 545 "FlaggedSidebarEntry.c"
+}
+
+
+static gchar* library_flagged_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ LibraryFlaggedSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry);
+#line 25 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_FLAGGED_PAGE);
+#line 25 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ result = _tmp0_;
+#line 25 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return result;
+#line 561 "FlaggedSidebarEntry.c"
+}
+
+
+static Page* library_flagged_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ LibraryFlaggedSidebarEntry * self;
+ Page* result = NULL;
+ FlaggedPage* _tmp0_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry);
+#line 29 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = flagged_page_new ();
+#line 29 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_object_ref_sink (_tmp0_);
+#line 29 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 29 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return result;
+#line 579 "FlaggedSidebarEntry.c"
+}
+
+
+static gboolean library_flagged_sidebar_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media) {
+ LibraryFlaggedSidebarEntry * self;
+ gboolean result = FALSE;
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ FlagUnflagCommand* _tmp3_ = NULL;
+ FlagUnflagCommand* _tmp4_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry);
+#line 32 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_return_val_if_fail (GEE_IS_LIST (media), FALSE);
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = app_window_get_command_manager ();
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp2_ = media;
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp3_ = flag_unflag_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), TRUE);
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp4_ = _tmp3_;
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ command_manager_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_COMMAND, Command));
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_tmp4_);
+#line 33 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 35 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ result = TRUE;
+#line 35 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return result;
+#line 615 "FlaggedSidebarEntry.c"
+}
+
+
+static gboolean library_flagged_sidebar_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data) {
+ LibraryFlaggedSidebarEntry * self;
+ gboolean result = FALSE;
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry);
+#line 38 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_return_val_if_fail (data != NULL, FALSE);
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ result = FALSE;
+#line 39 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return result;
+#line 630 "FlaggedSidebarEntry.c"
+}
+
+
+static void library_flagged_sidebar_entry_on_flagged_contents_altered (LibraryFlaggedSidebarEntry* self) {
+ gint _tmp0_ = 0;
+#line 42 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_FLAGGED_SIDEBAR_ENTRY (self));
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = library_flagged_sidebar_entry_get_total_flagged (self);
+#line 43 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), _tmp0_ != 0);
+#line 642 "FlaggedSidebarEntry.c"
+}
+
+
+static gint library_flagged_sidebar_entry_get_total_flagged (LibraryFlaggedSidebarEntry* self) {
+ gint result = 0;
+ gint total = 0;
+#line 46 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_return_val_if_fail (LIBRARY_IS_FLAGGED_SIDEBAR_ENTRY (self), 0);
+#line 47 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ total = 0;
+#line 653 "FlaggedSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ while (TRUE) {
+#line 682 "FlaggedSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ MediaSourceCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ break;
+#line 702 "FlaggedSidebarEntry.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp10_ = total;
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp11_ = media_sources;
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp12_ = media_source_collection_get_flagged (_tmp11_);
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp13_ = _tmp12_;
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp14_ = gee_collection_get_size (_tmp13_);
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp15_ = _tmp14_;
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ total = _tmp10_ + _tmp15_;
+#line 49 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_tmp13_);
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 728 "FlaggedSidebarEntry.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 732 "FlaggedSidebarEntry.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ result = total;
+#line 51 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ return result;
+#line 738 "FlaggedSidebarEntry.c"
+}
+
+
+static void library_flagged_sidebar_entry_class_init (LibraryFlaggedSidebarEntryClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ library_flagged_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = library_flagged_sidebar_entry_real_get_sidebar_name;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = library_flagged_sidebar_entry_real_get_sidebar_icon;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = library_flagged_sidebar_entry_real_create_page;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_flagged_sidebar_entry_finalize;
+#line 753 "FlaggedSidebarEntry.c"
+}
+
+
+static void library_flagged_sidebar_entry_sidebar_internal_drop_target_entry_interface_init (SidebarInternalDropTargetEntryIface * iface) {
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ library_flagged_sidebar_entry_sidebar_internal_drop_target_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ iface->internal_drop_received = (gboolean (*)(SidebarInternalDropTargetEntry*, GeeList*)) library_flagged_sidebar_entry_real_internal_drop_received;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ iface->internal_drop_received_arbitrary = (gboolean (*)(SidebarInternalDropTargetEntry*, GtkSelectionData*)) library_flagged_sidebar_entry_real_internal_drop_received_arbitrary;
+#line 764 "FlaggedSidebarEntry.c"
+}
+
+
+static void library_flagged_sidebar_entry_instance_init (LibraryFlaggedSidebarEntry * self) {
+}
+
+
+static void library_flagged_sidebar_entry_finalize (GObject* obj) {
+ LibraryFlaggedSidebarEntry * self;
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_TYPE_FLAGGED_SIDEBAR_ENTRY, LibraryFlaggedSidebarEntry);
+#line 776 "FlaggedSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ while (TRUE) {
+#line 805 "FlaggedSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ break;
+#line 821 "FlaggedSidebarEntry.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 17 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 17 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_signal_parse_name ("flagged-contents-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 17 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _library_flagged_sidebar_entry_on_flagged_contents_altered_media_source_collection_flagged_contents_altered, self);
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 837 "FlaggedSidebarEntry.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 841 "FlaggedSidebarEntry.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/library/FlaggedSidebarEntry.vala"
+ G_OBJECT_CLASS (library_flagged_sidebar_entry_parent_class)->finalize (obj);
+#line 845 "FlaggedSidebarEntry.c"
+}
+
+
+GType library_flagged_sidebar_entry_get_type (void) {
+ static volatile gsize library_flagged_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&library_flagged_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryFlaggedSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_flagged_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryFlaggedSidebarEntry), 0, (GInstanceInitFunc) library_flagged_sidebar_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_internal_drop_target_entry_info = { (GInterfaceInitFunc) library_flagged_sidebar_entry_sidebar_internal_drop_target_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType library_flagged_sidebar_entry_type_id;
+ library_flagged_sidebar_entry_type_id = g_type_register_static (LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, "LibraryFlaggedSidebarEntry", &g_define_type_info, 0);
+ g_type_add_interface_static (library_flagged_sidebar_entry_type_id, SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, &sidebar_internal_drop_target_entry_info);
+ g_once_init_leave (&library_flagged_sidebar_entry_type_id__volatile, library_flagged_sidebar_entry_type_id);
+ }
+ return library_flagged_sidebar_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/library/ImportQueuePage.c b/src/library/ImportQueuePage.c
new file mode 100644
index 0000000..2ba5e74
--- /dev/null
+++ b/src/library/ImportQueuePage.c
@@ -0,0 +1,1589 @@
+/* ImportQueuePage.c generated by valac 0.32.1, the Vala compiler
+ * generated from ImportQueuePage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <pango/pango.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate;
+
+#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ())
+#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer))
+#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER))
+#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER))
+#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+
+typedef struct _ZoomBuffer ZoomBuffer;
+typedef struct _ZoomBufferClass ZoomBufferClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())
+
+#define TYPE_IMPORT_QUEUE_PAGE (import_queue_page_get_type ())
+#define IMPORT_QUEUE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_QUEUE_PAGE, ImportQueuePage))
+#define IMPORT_QUEUE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_QUEUE_PAGE, ImportQueuePageClass))
+#define IS_IMPORT_QUEUE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_QUEUE_PAGE))
+#define IS_IMPORT_QUEUE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_QUEUE_PAGE))
+#define IMPORT_QUEUE_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_QUEUE_PAGE, ImportQueuePageClass))
+
+typedef struct _ImportQueuePage ImportQueuePage;
+typedef struct _ImportQueuePageClass ImportQueuePageClass;
+typedef struct _ImportQueuePagePrivate ImportQueuePagePrivate;
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+
+#define TYPE_IMPORT_RESULT (import_result_get_type ())
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_DIRECTION (direction_get_type ())
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_PHOTO_VIEW (photo_view_get_type ())
+#define PHOTO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_VIEW, PhotoView))
+#define PHOTO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_VIEW, PhotoViewClass))
+#define IS_PHOTO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_VIEW))
+#define IS_PHOTO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_VIEW))
+#define PHOTO_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_VIEW, PhotoViewClass))
+
+typedef struct _PhotoView PhotoView;
+typedef struct _PhotoViewClass PhotoViewClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_VIDEO_VIEW (video_view_get_type ())
+#define VIDEO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_VIEW, VideoView))
+#define VIDEO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_VIEW, VideoViewClass))
+#define IS_VIDEO_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_VIEW))
+#define IS_VIDEO_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_VIEW))
+#define VIDEO_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_VIEW, VideoViewClass))
+
+typedef struct _VideoView VideoView;
+typedef struct _VideoViewClass VideoViewClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+typedef enum {
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
+} SinglePhotoPageUpdateReason;
+
+struct _SinglePhotoPage {
+ Page parent_instance;
+ SinglePhotoPagePrivate * priv;
+ GtkDrawingArea* canvas;
+ GtkViewport* viewport;
+};
+
+struct _SinglePhotoPageClass {
+ PageClass parent_class;
+ gboolean (*is_zoom_supported) (SinglePhotoPage* self);
+ void (*cancel_zoom) (SinglePhotoPage* self);
+ void (*save_zoom_state) (SinglePhotoPage* self);
+ void (*restore_zoom_state) (SinglePhotoPage* self);
+ ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self);
+ void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+ void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*on_previous_photo) (SinglePhotoPage* self);
+ void (*on_next_photo) (SinglePhotoPage* self);
+};
+
+struct _ImportQueuePage {
+ SinglePhotoPage parent_instance;
+ ImportQueuePagePrivate * priv;
+};
+
+struct _ImportQueuePageClass {
+ SinglePhotoPageClass parent_class;
+};
+
+struct _ImportQueuePagePrivate {
+ GeeArrayList* queue;
+ GeeHashSet* cancel_unallowed;
+ BatchImport* current_batch;
+ GtkProgressBar* progress_bar;
+ gboolean stopped;
+};
+
+typedef enum {
+ IMPORT_RESULT_SUCCESS,
+ IMPORT_RESULT_FILE_ERROR,
+ IMPORT_RESULT_DECODE_ERROR,
+ IMPORT_RESULT_DATABASE_ERROR,
+ IMPORT_RESULT_USER_ABORT,
+ IMPORT_RESULT_NOT_A_FILE,
+ IMPORT_RESULT_PHOTO_EXISTS,
+ IMPORT_RESULT_UNSUPPORTED_FORMAT,
+ IMPORT_RESULT_NOT_AN_IMAGE,
+ IMPORT_RESULT_DISK_FAILURE,
+ IMPORT_RESULT_DISK_FULL,
+ IMPORT_RESULT_CAMERA_ERROR,
+ IMPORT_RESULT_FILE_WRITE_ERROR,
+ IMPORT_RESULT_PIXBUF_CORRUPT_IMAGE
+} ImportResult;
+
+typedef enum {
+ DIRECTION_FORWARD,
+ DIRECTION_BACKWARD
+} Direction;
+
+
+static gpointer import_queue_page_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType zoom_buffer_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
+GType import_queue_page_get_type (void) G_GNUC_CONST;
+GType batch_import_get_type (void) G_GNUC_CONST;
+#define IMPORT_QUEUE_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IMPORT_QUEUE_PAGE, ImportQueuePagePrivate))
+enum {
+ IMPORT_QUEUE_PAGE_DUMMY_PROPERTY
+};
+#define IMPORT_QUEUE_PAGE_NAME _ ("Importing...")
+ImportQueuePage* import_queue_page_new (void);
+ImportQueuePage* import_queue_page_construct (GType object_type);
+SinglePhotoPage* single_photo_page_construct (GType object_type, const gchar* page_name, gboolean scale_up_to_viewport);
+GtkToolbar* page_get_toolbar (Page* self);
+GtkAction* page_get_action (Page* self, const gchar* name);
+static void import_queue_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* import_queue_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define RESOURCES_STOP_LABEL _ ("_Stop")
+#define TRANSLATABLE "translatable"
+static void import_queue_page_on_stop (ImportQueuePage* self);
+static void _import_queue_page_on_stop_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add87 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void import_queue_page_enqueue_and_schedule (ImportQueuePage* self, BatchImport* batch_import, gboolean allow_user_cancel);
+static void import_queue_page_on_starting (ImportQueuePage* self, BatchImport* batch_import);
+static void _import_queue_page_on_starting_batch_import_starting (BatchImport* _sender, gpointer self);
+static void import_queue_page_on_preparing (ImportQueuePage* self);
+static void _import_queue_page_on_preparing_batch_import_preparing (BatchImport* _sender, gpointer self);
+static void import_queue_page_on_progress (ImportQueuePage* self, guint64 completed_bytes, guint64 total_bytes);
+static void _import_queue_page_on_progress_batch_import_progress (BatchImport* _sender, guint64 completed_bytes, guint64 total_bytes, gpointer self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+static void import_queue_page_on_imported (ImportQueuePage* self, ThumbnailSource* source, GdkPixbuf* pixbuf, gint to_follow);
+GType media_source_get_type (void) G_GNUC_CONST;
+static void _import_queue_page_on_imported_batch_import_imported (BatchImport* _sender, MediaSource* source, GdkPixbuf* pixbuf, gint to_follow, gpointer self);
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+static void import_queue_page_on_import_complete (ImportQueuePage* self, BatchImport* batch_import, ImportManifest* manifest, BatchImportRoll* import_roll);
+static void _import_queue_page_on_import_complete_batch_import_import_complete (BatchImport* _sender, ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
+GType import_result_get_type (void) G_GNUC_CONST;
+static void import_queue_page_on_fatal_error (ImportQueuePage* self, ImportResult _result_, const gchar* message);
+static void _import_queue_page_on_fatal_error_batch_import_fatal_error (BatchImport* _sender, ImportResult _result_, const gchar* message, gpointer self);
+void batch_import_schedule (BatchImport* self);
+static void import_queue_page_update_stop_action (ImportQueuePage* self);
+gint import_queue_page_get_batch_count (ImportQueuePage* self);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void page_window_set_busy_cursor (PageWindow* self);
+void batch_import_user_halt (BatchImport* self);
+gboolean page_is_in_view (Page* self);
+GType direction_get_type (void) G_GNUC_CONST;
+void single_photo_page_set_pixbuf (SinglePhotoPage* self, GdkPixbuf* unscaled, Dimensions* max_dim, Direction* direction);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+void data_collection_clear (DataCollection* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+PhotoView* photo_view_new (PhotoSource* source);
+PhotoView* photo_view_construct (GType object_type, PhotoSource* source);
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType photo_view_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+VideoView* video_view_new (VideoSource* source);
+VideoView* video_view_construct (GType object_type, VideoSource* source);
+GType video_view_get_type (void) G_GNUC_CONST;
+gchar* data_object_get_name (DataObject* self);
+void single_photo_page_blank_display (SinglePhotoPage* self);
+void page_window_set_normal_cursor (PageWindow* self);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+static void import_queue_page_finalize (GObject* obj);
+
+
+ImportQueuePage* import_queue_page_construct (GType object_type) {
+ ImportQueuePage * self = NULL;
+ GtkToolbar* toolbar = NULL;
+ GtkToolbar* _tmp0_ = NULL;
+ GtkToolButton* stop_button = NULL;
+ GtkToolButton* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ GtkAction* _tmp3_ = NULL;
+ GtkSeparatorToolItem* separator = NULL;
+ GtkSeparatorToolItem* _tmp4_ = NULL;
+ GtkToolItem* progress_item = NULL;
+ GtkToolItem* _tmp5_ = NULL;
+ GtkProgressBar* _tmp6_ = NULL;
+ GtkProgressBar* _tmp7_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self = (ImportQueuePage*) single_photo_page_construct (object_type, IMPORT_QUEUE_PAGE_NAME, FALSE);
+#line 28 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = page_get_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 28 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ toolbar = _tmp0_;
+#line 31 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = (GtkToolButton*) gtk_tool_button_new (NULL, NULL);
+#line 31 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_object_ref_sink (_tmp1_);
+#line 31 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ stop_button = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_tool_button_set_icon_name (stop_button, "stop");
+#line 33 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = page_get_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Stop");
+#line 33 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_activatable_set_related_action (G_TYPE_CHECK_INSTANCE_CAST (stop_button, GTK_TYPE_ACTIVATABLE, GtkActivatable), _tmp3_);
+#line 33 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 35 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (stop_button, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 38 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = (GtkSeparatorToolItem*) gtk_separator_tool_item_new ();
+#line 38 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_object_ref_sink (_tmp4_);
+#line 38 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ separator = _tmp4_;
+#line 39 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_separator_tool_item_set_draw (separator, FALSE);
+#line 41 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_toolbar_insert (toolbar, G_TYPE_CHECK_INSTANCE_CAST (separator, gtk_tool_item_get_type (), GtkToolItem), -1);
+#line 44 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5_ = gtk_tool_item_new ();
+#line 44 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_object_ref_sink (_tmp5_);
+#line 44 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ progress_item = _tmp5_;
+#line 45 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_tool_item_set_expand (progress_item, TRUE);
+#line 46 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp6_ = self->priv->progress_bar;
+#line 46 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (progress_item, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
+#line 47 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp7_ = self->priv->progress_bar;
+#line 47 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_show_text (_tmp7_, TRUE);
+#line 49 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_toolbar_insert (toolbar, progress_item, -1);
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (progress_item);
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (separator);
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (stop_button);
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (toolbar);
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ return self;
+#line 632 "ImportQueuePage.c"
+}
+
+
+ImportQueuePage* import_queue_page_new (void) {
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ return import_queue_page_construct (TYPE_IMPORT_QUEUE_PAGE);
+#line 639 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ ImportQueuePage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_QUEUE_PAGE, ImportQueuePage);
+#line 56 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 57 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = ui_filenames;
+#line 57 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), "import_queue.ui");
+#line 59 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = ui_filenames;
+#line 59 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ PAGE_CLASS (import_queue_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), _tmp1_);
+#line 659 "ImportQueuePage.c"
+}
+
+
+static void _import_queue_page_on_stop_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_on_stop ((ImportQueuePage*) self);
+#line 666 "ImportQueuePage.c"
+}
+
+
+static void _vala_array_add87 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if ((*length) == (*size)) {
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 677 "ImportQueuePage.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ (*array)[(*length)++] = *value;
+#line 681 "ImportQueuePage.c"
+}
+
+
+static GtkActionEntry* import_queue_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ ImportQueuePage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry stop = {0};
+ GtkActionEntry _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkActionEntry* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GtkActionEntry _tmp6_ = {0};
+ GtkActionEntry* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 62 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_IMPORT_QUEUE_PAGE, ImportQueuePage);
+#line 63 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = PAGE_CLASS (import_queue_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), TYPE_PAGE, Page), &_tmp0_);
+#line 63 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ actions = _tmp1_;
+#line 63 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ actions_length1 = _tmp0_;
+#line 63 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _actions_size_ = actions_length1;
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_.name = "Stop";
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_.stock_id = RESOURCES_STOP_LABEL;
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_.accelerator = NULL;
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_.callback = (GCallback) _import_queue_page_on_stop_gtk_action_callback;
+#line 65 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ stop = _tmp2_;
+#line 67 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = _ ("_Stop Import");
+#line 67 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ stop.label = _tmp3_;
+#line 68 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = _ ("Stop importing photos");
+#line 68 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ stop.tooltip = _tmp4_;
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5_ = actions;
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5__length1 = actions_length1;
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp6_ = stop;
+#line 69 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _vala_array_add87 (&actions, &actions_length1, &_actions_size_, &_tmp6_);
+#line 71 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp7_ = actions;
+#line 71 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp7__length1 = actions_length1;
+#line 71 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (result_length1) {
+#line 71 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ *result_length1 = _tmp7__length1;
+#line 750 "ImportQueuePage.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ result = _tmp7_;
+#line 71 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ return result;
+#line 756 "ImportQueuePage.c"
+}
+
+
+static void _import_queue_page_on_starting_batch_import_starting (BatchImport* _sender, gpointer self) {
+#line 77 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_on_starting ((ImportQueuePage*) self, _sender);
+#line 763 "ImportQueuePage.c"
+}
+
+
+static void _import_queue_page_on_preparing_batch_import_preparing (BatchImport* _sender, gpointer self) {
+#line 78 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_on_preparing ((ImportQueuePage*) self);
+#line 770 "ImportQueuePage.c"
+}
+
+
+static void _import_queue_page_on_progress_batch_import_progress (BatchImport* _sender, guint64 completed_bytes, guint64 total_bytes, gpointer self) {
+#line 79 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_on_progress ((ImportQueuePage*) self, completed_bytes, total_bytes);
+#line 777 "ImportQueuePage.c"
+}
+
+
+static void _import_queue_page_on_imported_batch_import_imported (BatchImport* _sender, MediaSource* source, GdkPixbuf* pixbuf, gint to_follow, gpointer self) {
+#line 80 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_on_imported ((ImportQueuePage*) self, source, pixbuf, to_follow);
+#line 784 "ImportQueuePage.c"
+}
+
+
+static void _import_queue_page_on_import_complete_batch_import_import_complete (BatchImport* _sender, ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
+#line 81 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_on_import_complete ((ImportQueuePage*) self, _sender, manifest, import_roll);
+#line 791 "ImportQueuePage.c"
+}
+
+
+static void _import_queue_page_on_fatal_error_batch_import_fatal_error (BatchImport* _sender, ImportResult _result_, const gchar* message, gpointer self) {
+#line 82 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_on_fatal_error ((ImportQueuePage*) self, _result_, message);
+#line 798 "ImportQueuePage.c"
+}
+
+
+void import_queue_page_enqueue_and_schedule (ImportQueuePage* self, BatchImport* batch_import, gboolean allow_user_cancel) {
+ GeeArrayList* _tmp0_ = NULL;
+ BatchImport* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ BatchImport* _tmp3_ = NULL;
+ BatchImport* _tmp4_ = NULL;
+ BatchImport* _tmp5_ = NULL;
+ BatchImport* _tmp6_ = NULL;
+ BatchImport* _tmp7_ = NULL;
+ BatchImport* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GeeArrayList* _tmp12_ = NULL;
+ BatchImport* _tmp13_ = NULL;
+ BatchImport* _tmp14_ = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+#line 74 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 74 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (batch_import));
+#line 75 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = self->priv->queue;
+#line 75 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = batch_import;
+#line 75 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp1_);
+#line 75 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _vala_assert (!_tmp2_, "!queue.contains(batch_import)");
+#line 77 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = batch_import;
+#line 77 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_connect_object (_tmp3_, "starting", (GCallback) _import_queue_page_on_starting_batch_import_starting, self, 0);
+#line 78 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = batch_import;
+#line 78 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_connect_object (_tmp4_, "preparing", (GCallback) _import_queue_page_on_preparing_batch_import_preparing, self, 0);
+#line 79 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5_ = batch_import;
+#line 79 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_connect_object (_tmp5_, "progress", (GCallback) _import_queue_page_on_progress_batch_import_progress, self, 0);
+#line 80 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp6_ = batch_import;
+#line 80 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_connect_object (_tmp6_, "imported", (GCallback) _import_queue_page_on_imported_batch_import_imported, self, 0);
+#line 81 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp7_ = batch_import;
+#line 81 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_connect_object (_tmp7_, "import-complete", (GCallback) _import_queue_page_on_import_complete_batch_import_import_complete, self, 0);
+#line 82 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp8_ = batch_import;
+#line 82 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_connect_object (_tmp8_, "fatal-error", (GCallback) _import_queue_page_on_fatal_error_batch_import_fatal_error, self, 0);
+#line 84 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp9_ = allow_user_cancel;
+#line 84 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (!_tmp9_) {
+#line 859 "ImportQueuePage.c"
+ GeeHashSet* _tmp10_ = NULL;
+ BatchImport* _tmp11_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp10_ = self->priv->cancel_unallowed;
+#line 85 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp11_ = batch_import;
+#line 85 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp11_);
+#line 868 "ImportQueuePage.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp12_ = self->priv->queue;
+#line 87 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp13_ = batch_import;
+#line 87 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp13_);
+#line 88 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp14_ = batch_import;
+#line 88 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_emit_by_name (self, "batch-added", _tmp14_);
+#line 90 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp15_ = self->priv->queue;
+#line 90 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp16_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 90 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp17_ = _tmp16_;
+#line 90 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (_tmp17_ == 1) {
+#line 888 "ImportQueuePage.c"
+ BatchImport* _tmp18_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp18_ = batch_import;
+#line 91 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ batch_import_schedule (_tmp18_);
+#line 894 "ImportQueuePage.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_update_stop_action (self);
+#line 898 "ImportQueuePage.c"
+}
+
+
+gint import_queue_page_get_batch_count (ImportQueuePage* self) {
+ gint result = 0;
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 96 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_val_if_fail (IS_IMPORT_QUEUE_PAGE (self), 0);
+#line 97 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = self->priv->queue;
+#line 97 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 97 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = _tmp1_;
+#line 97 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ result = _tmp2_;
+#line 97 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ return result;
+#line 919 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_update_stop_action (ImportQueuePage* self) {
+ gboolean _tmp0_ = FALSE;
+ GeeHashSet* _tmp1_ = NULL;
+ BatchImport* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 100 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = self->priv->cancel_unallowed;
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = self->priv->current_batch;
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp2_);
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (!_tmp3_) {
+#line 938 "ImportQueuePage.c"
+ GeeArrayList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = self->priv->queue;
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp6_ = _tmp5_;
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = _tmp6_ > 0;
+#line 950 "ImportQueuePage.c"
+ } else {
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = FALSE;
+#line 954 "ImportQueuePage.c"
+ }
+#line 101 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Stop", _tmp0_);
+#line 958 "ImportQueuePage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 965 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_on_stop (ImportQueuePage* self) {
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ AppWindow* _tmp3_ = NULL;
+ AppWindow* _tmp4_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 105 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_update_stop_action (self);
+#line 107 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = self->priv->queue;
+#line 107 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 107 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = _tmp1_;
+#line 107 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (_tmp2_ == 0) {
+#line 108 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ return;
+#line 989 "ImportQueuePage.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = app_window_get_instance ();
+#line 110 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = _tmp3_;
+#line 110 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PAGE_WINDOW, PageWindow));
+#line 110 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_tmp4_);
+#line 111 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->stopped = TRUE;
+#line 1001 "ImportQueuePage.c"
+ {
+ GeeArrayList* _batch_import_list = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _batch_import_size = 0;
+ GeeArrayList* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _batch_import_index = 0;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5_ = self->priv->queue;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp6_ = _g_object_ref0 (_tmp5_);
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _batch_import_list = _tmp6_;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp7_ = _batch_import_list;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp8_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp9_ = _tmp8_;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _batch_import_size = _tmp9_;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _batch_import_index = -1;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ while (TRUE) {
+#line 1029 "ImportQueuePage.c"
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ BatchImport* batch_import = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gpointer _tmp15_ = NULL;
+ BatchImport* _tmp16_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp10_ = _batch_import_index;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _batch_import_index = _tmp10_ + 1;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp11_ = _batch_import_index;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp12_ = _batch_import_size;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (!(_tmp11_ < _tmp12_)) {
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ break;
+#line 1050 "ImportQueuePage.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp13_ = _batch_import_list;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp14_ = _batch_import_index;
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp15_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp14_);
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ batch_import = (BatchImport*) _tmp15_;
+#line 115 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp16_ = batch_import;
+#line 115 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ batch_import_user_halt (_tmp16_);
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (batch_import);
+#line 1066 "ImportQueuePage.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_batch_import_list);
+#line 1070 "ImportQueuePage.c"
+ }
+}
+
+
+static void import_queue_page_on_starting (ImportQueuePage* self, BatchImport* batch_import) {
+ BatchImport* _tmp0_ = NULL;
+ BatchImport* _tmp1_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 118 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (batch_import));
+#line 119 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_update_stop_action (self);
+#line 120 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = batch_import;
+#line 120 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 120 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (self->priv->current_batch);
+#line 120 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->current_batch = _tmp1_;
+#line 1092 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_on_preparing (ImportQueuePage* self) {
+ GtkProgressBar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkProgressBar* _tmp2_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 124 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = self->priv->progress_bar;
+#line 124 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = _ ("Preparing to import...");
+#line 124 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_text (_tmp0_, _tmp1_);
+#line 125 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = self->priv->progress_bar;
+#line 125 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_pulse (_tmp2_);
+#line 1112 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_on_progress (ImportQueuePage* self, guint64 completed_bytes, guint64 total_bytes) {
+ gdouble _tmp0_ = 0.0;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+ gdouble pct = 0.0;
+ GtkProgressBar* _tmp5_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 129 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = completed_bytes;
+#line 129 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = total_bytes;
+#line 129 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (_tmp1_ <= _tmp2_) {
+#line 1130 "ImportQueuePage.c"
+ guint64 _tmp3_ = 0ULL;
+ guint64 _tmp4_ = 0ULL;
+#line 129 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = completed_bytes;
+#line 129 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = total_bytes;
+#line 129 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = ((gdouble) _tmp3_) / ((gdouble) _tmp4_);
+#line 1139 "ImportQueuePage.c"
+ } else {
+#line 130 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = 0.0;
+#line 1143 "ImportQueuePage.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ pct = _tmp0_;
+#line 131 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5_ = self->priv->progress_bar;
+#line 131 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_fraction (_tmp5_, pct);
+#line 1151 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_on_imported (ImportQueuePage* self, ThumbnailSource* source, GdkPixbuf* pixbuf, gint to_follow) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ Dimensions _tmp5_ = {0};
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ ThumbnailSource* _tmp9_ = NULL;
+ GtkProgressBar* _tmp22_ = NULL;
+ GtkProgressBar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ ThumbnailSource* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 138 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_THUMBNAIL_SOURCE (source));
+#line 138 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 140 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = to_follow;
+#line 140 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (_tmp1_ > 0) {
+#line 140 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = TRUE;
+#line 1185 "ImportQueuePage.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 140 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = page_is_in_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 140 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = !_tmp2_;
+#line 1192 "ImportQueuePage.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (_tmp0_) {
+#line 141 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ return;
+#line 1198 "ImportQueuePage.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = pixbuf;
+#line 143 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = pixbuf;
+#line 143 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ dimensions_for_pixbuf (_tmp4_, &_tmp5_);
+#line 143 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ single_photo_page_set_pixbuf (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage), _tmp3_, &_tmp5_, NULL);
+#line 146 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 146 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp7_ = _tmp6_;
+#line 146 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_COLLECTION, DataCollection));
+#line 146 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp9_ = source;
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_LIBRARY_PHOTO)) {
+#line 1220 "ImportQueuePage.c"
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ ThumbnailSource* _tmp12_ = NULL;
+ PhotoView* _tmp13_ = NULL;
+ PhotoView* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp10_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp11_ = _tmp10_;
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp12_ = source;
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp13_ = photo_view_new (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, TYPE_LIBRARY_PHOTO) ? ((LibraryPhoto*) _tmp12_) : NULL, TYPE_PHOTO_SOURCE, PhotoSource));
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp14_ = _tmp13_;
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp15_ = data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_OBJECT, DataObject));
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp8_ = _tmp15_;
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_tmp14_);
+#line 147 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _data_collection_unref0 (_tmp11_);
+#line 1245 "ImportQueuePage.c"
+ } else {
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ ThumbnailSource* _tmp18_ = NULL;
+ VideoView* _tmp19_ = NULL;
+ VideoView* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp17_ = _tmp16_;
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp18_ = source;
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp19_ = video_view_new (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_TYPE (_tmp18_, TYPE_VIDEO) ? ((Video*) _tmp18_) : NULL, TYPE_VIDEO_SOURCE, VideoSource));
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp20_ = _tmp19_;
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp21_ = data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_DATA_OBJECT, DataObject));
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp8_ = _tmp21_;
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 148 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 1271 "ImportQueuePage.c"
+ }
+#line 150 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp22_ = self->priv->progress_bar;
+#line 150 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp22_, PANGO_ELLIPSIZE_MIDDLE);
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp23_ = self->priv->progress_bar;
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp24_ = _ ("Imported %s");
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp25_ = source;
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp26_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject));
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp27_ = _tmp26_;
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp28_ = g_strdup_printf (_tmp24_, _tmp27_);
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp29_ = _tmp28_;
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_text (_tmp23_, _tmp29_);
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_free0 (_tmp29_);
+#line 151 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_free0 (_tmp27_);
+#line 1297 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_on_import_complete (ImportQueuePage* self, BatchImport* batch_import, ImportManifest* manifest, BatchImportRoll* import_roll) {
+ BatchImport* _tmp0_ = NULL;
+ BatchImport* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GeeArrayList* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ BatchImport* _tmp7_ = NULL;
+ BatchImport* _tmp8_ = NULL;
+ gboolean removed = FALSE;
+ GeeArrayList* _tmp9_ = NULL;
+ BatchImport* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ GeeHashSet* _tmp13_ = NULL;
+ BatchImport* _tmp14_ = NULL;
+ BatchImport* _tmp15_ = NULL;
+ guint _tmp16_ = 0U;
+ BatchImport* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+ BatchImport* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+ BatchImport* _tmp21_ = NULL;
+ guint _tmp22_ = 0U;
+ BatchImport* _tmp23_ = NULL;
+ guint _tmp24_ = 0U;
+ BatchImport* _tmp25_ = NULL;
+ guint _tmp26_ = 0U;
+ GeeArrayList* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ BatchImport* _tmp39_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 154 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (batch_import));
+#line 154 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_MANIFEST (manifest));
+#line 154 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_ROLL (import_roll));
+#line 156 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = batch_import;
+#line 156 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = self->priv->current_batch;
+#line 156 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _vala_assert (_tmp0_ == _tmp1_, "batch_import == current_batch");
+#line 157 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (self->priv->current_batch);
+#line 157 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->current_batch = NULL;
+#line 159 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = self->priv->queue;
+#line 159 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp3_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 159 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp4_ = _tmp3_;
+#line 159 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _vala_assert (_tmp4_ > 0, "queue.size > 0");
+#line 160 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp5_ = self->priv->queue;
+#line 160 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp6_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 160 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp7_ = (BatchImport*) _tmp6_;
+#line 160 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp8_ = batch_import;
+#line 160 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _vala_assert (_tmp7_ == _tmp8_, "queue.get(0) == batch_import");
+#line 160 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 162 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp9_ = self->priv->queue;
+#line 162 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp10_ = batch_import;
+#line 162 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp11_ = gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 162 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ removed = _tmp11_;
+#line 163 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp12_ = removed;
+#line 163 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _vala_assert (_tmp12_, "removed");
+#line 166 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp13_ = self->priv->cancel_unallowed;
+#line 166 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp14_ = batch_import;
+#line 166 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp14_);
+#line 169 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp15_ = batch_import;
+#line 169 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_parse_name ("starting", TYPE_BATCH_IMPORT, &_tmp16_, NULL, FALSE);
+#line 169 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_handlers_disconnect_matched (_tmp15_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _import_queue_page_on_starting_batch_import_starting, self);
+#line 170 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp17_ = batch_import;
+#line 170 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_parse_name ("preparing", TYPE_BATCH_IMPORT, &_tmp18_, NULL, FALSE);
+#line 170 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_handlers_disconnect_matched (_tmp17_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp18_, 0, NULL, (GCallback) _import_queue_page_on_preparing_batch_import_preparing, self);
+#line 171 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp19_ = batch_import;
+#line 171 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_parse_name ("progress", TYPE_BATCH_IMPORT, &_tmp20_, NULL, FALSE);
+#line 171 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_handlers_disconnect_matched (_tmp19_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp20_, 0, NULL, (GCallback) _import_queue_page_on_progress_batch_import_progress, self);
+#line 172 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp21_ = batch_import;
+#line 172 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_parse_name ("imported", TYPE_BATCH_IMPORT, &_tmp22_, NULL, FALSE);
+#line 172 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_handlers_disconnect_matched (_tmp21_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp22_, 0, NULL, (GCallback) _import_queue_page_on_imported_batch_import_imported, self);
+#line 173 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp23_ = batch_import;
+#line 173 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_parse_name ("import-complete", TYPE_BATCH_IMPORT, &_tmp24_, NULL, FALSE);
+#line 173 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_handlers_disconnect_matched (_tmp23_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp24_, 0, NULL, (GCallback) _import_queue_page_on_import_complete_batch_import_import_complete, self);
+#line 174 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp25_ = batch_import;
+#line 174 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_parse_name ("fatal-error", TYPE_BATCH_IMPORT, &_tmp26_, NULL, FALSE);
+#line 174 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_handlers_disconnect_matched (_tmp25_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp26_, 0, NULL, (GCallback) _import_queue_page_on_fatal_error_batch_import_fatal_error, self);
+#line 177 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp27_ = self->priv->queue;
+#line 177 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp28_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 177 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp29_ = _tmp28_;
+#line 177 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (_tmp29_ > 0) {
+#line 1434 "ImportQueuePage.c"
+ GeeArrayList* _tmp30_ = NULL;
+ gpointer _tmp31_ = NULL;
+ BatchImport* _tmp32_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp30_ = self->priv->queue;
+#line 178 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp31_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 178 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp32_ = (BatchImport*) _tmp31_;
+#line 178 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ batch_import_schedule (_tmp32_);
+#line 178 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_tmp32_);
+#line 1448 "ImportQueuePage.c"
+ } else {
+ GtkProgressBar* _tmp33_ = NULL;
+ GtkProgressBar* _tmp34_ = NULL;
+ GtkProgressBar* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+#line 181 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp33_ = self->priv->progress_bar;
+#line 181 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_ellipsize (_tmp33_, PANGO_ELLIPSIZE_NONE);
+#line 182 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp34_ = self->priv->progress_bar;
+#line 182 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_text (_tmp34_, "");
+#line 183 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp35_ = self->priv->progress_bar;
+#line 183 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ gtk_progress_bar_set_fraction (_tmp35_, 0.0);
+#line 190 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ single_photo_page_blank_display (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage));
+#line 193 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp36_ = self->priv->stopped;
+#line 193 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ if (_tmp36_) {
+#line 1472 "ImportQueuePage.c"
+ AppWindow* _tmp37_ = NULL;
+ AppWindow* _tmp38_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp37_ = app_window_get_instance ();
+#line 194 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp38_ = _tmp37_;
+#line 194 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_PAGE_WINDOW, PageWindow));
+#line 194 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (_tmp38_);
+#line 1483 "ImportQueuePage.c"
+ }
+#line 196 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->stopped = FALSE;
+#line 1487 "ImportQueuePage.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_update_stop_action (self);
+#line 202 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp39_ = batch_import;
+#line 202 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_emit_by_name (self, "batch-removed", _tmp39_);
+#line 1495 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_on_fatal_error (ImportQueuePage* self, ImportResult _result_, const gchar* message) {
+ const gchar* _tmp0_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (IS_IMPORT_QUEUE_PAGE (self));
+#line 205 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_return_if_fail (message != NULL);
+#line 206 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = message;
+#line 206 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ app_window_error_message (_tmp0_, NULL);
+#line 1509 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_class_init (ImportQueuePageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ import_queue_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_type_class_add_private (klass, sizeof (ImportQueuePagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = import_queue_page_real_init_collect_ui_filenames;
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = import_queue_page_real_init_collect_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ G_OBJECT_CLASS (klass)->finalize = import_queue_page_finalize;
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_new ("batch_added", TYPE_IMPORT_QUEUE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_BATCH_IMPORT);
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_signal_new ("batch_removed", TYPE_IMPORT_QUEUE_PAGE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_BATCH_IMPORT);
+#line 1528 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_instance_init (ImportQueuePage * self) {
+ GeeArrayList* _tmp0_ = NULL;
+ GeeHashSet* _tmp1_ = NULL;
+ GtkProgressBar* _tmp2_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv = IMPORT_QUEUE_PAGE_GET_PRIVATE (self);
+#line 10 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp0_ = gee_array_list_new (TYPE_BATCH_IMPORT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 10 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->queue = _tmp0_;
+#line 11 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp1_ = gee_hash_set_new (TYPE_BATCH_IMPORT, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 11 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->cancel_unallowed = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->current_batch = NULL;
+#line 13 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _tmp2_ = (GtkProgressBar*) gtk_progress_bar_new ();
+#line 13 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ g_object_ref_sink (_tmp2_);
+#line 13 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->progress_bar = _tmp2_;
+#line 14 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self->priv->stopped = FALSE;
+#line 1556 "ImportQueuePage.c"
+}
+
+
+static void import_queue_page_finalize (GObject* obj) {
+ ImportQueuePage * self;
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_IMPORT_QUEUE_PAGE, ImportQueuePage);
+#line 10 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (self->priv->queue);
+#line 11 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (self->priv->cancel_unallowed);
+#line 12 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (self->priv->current_batch);
+#line 13 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ _g_object_unref0 (self->priv->progress_bar);
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueuePage.vala"
+ G_OBJECT_CLASS (import_queue_page_parent_class)->finalize (obj);
+#line 1574 "ImportQueuePage.c"
+}
+
+
+GType import_queue_page_get_type (void) {
+ static volatile gsize import_queue_page_type_id__volatile = 0;
+ if (g_once_init_enter (&import_queue_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (ImportQueuePageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) import_queue_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ImportQueuePage), 0, (GInstanceInitFunc) import_queue_page_instance_init, NULL };
+ GType import_queue_page_type_id;
+ import_queue_page_type_id = g_type_register_static (TYPE_SINGLE_PHOTO_PAGE, "ImportQueuePage", &g_define_type_info, 0);
+ g_once_init_leave (&import_queue_page_type_id__volatile, import_queue_page_type_id);
+ }
+ return import_queue_page_type_id__volatile;
+}
+
+
+
diff --git a/src/library/ImportQueueSidebarEntry.c b/src/library/ImportQueueSidebarEntry.c
new file mode 100644
index 0000000..d7077e5
--- /dev/null
+++ b/src/library/ImportQueueSidebarEntry.c
@@ -0,0 +1,496 @@
+/* ImportQueueSidebarEntry.c generated by valac 0.32.1, the Vala compiler
+ * generated from ImportQueueSidebarEntry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY (library_hideable_page_entry_get_type ())
+#define LIBRARY_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+
+typedef struct _LibraryHideablePageEntry LibraryHideablePageEntry;
+typedef struct _LibraryHideablePageEntryClass LibraryHideablePageEntryClass;
+typedef struct _LibraryHideablePageEntryPrivate LibraryHideablePageEntryPrivate;
+
+#define LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY (library_import_queue_sidebar_entry_get_type ())
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntry))
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntryClass))
+#define LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY))
+#define LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY))
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntryClass))
+
+typedef struct _LibraryImportQueueSidebarEntry LibraryImportQueueSidebarEntry;
+typedef struct _LibraryImportQueueSidebarEntryClass LibraryImportQueueSidebarEntryClass;
+typedef struct _LibraryImportQueueSidebarEntryPrivate LibraryImportQueueSidebarEntryPrivate;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+
+#define TYPE_IMPORT_QUEUE_PAGE (import_queue_page_get_type ())
+#define IMPORT_QUEUE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_QUEUE_PAGE, ImportQueuePage))
+#define IMPORT_QUEUE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_QUEUE_PAGE, ImportQueuePageClass))
+#define IS_IMPORT_QUEUE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_QUEUE_PAGE))
+#define IS_IMPORT_QUEUE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_QUEUE_PAGE))
+#define IMPORT_QUEUE_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_QUEUE_PAGE, ImportQueuePageClass))
+
+typedef struct _ImportQueuePage ImportQueuePage;
+typedef struct _ImportQueuePageClass ImportQueuePageClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _LibraryHideablePageEntry {
+ SidebarSimplePageEntry parent_instance;
+ LibraryHideablePageEntryPrivate * priv;
+};
+
+struct _LibraryHideablePageEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _LibraryImportQueueSidebarEntry {
+ LibraryHideablePageEntry parent_instance;
+ LibraryImportQueueSidebarEntryPrivate * priv;
+};
+
+struct _LibraryImportQueueSidebarEntryClass {
+ LibraryHideablePageEntryClass parent_class;
+};
+
+
+static gpointer library_import_queue_sidebar_entry_parent_class = NULL;
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType library_hideable_page_entry_get_type (void) G_GNUC_CONST;
+GType library_import_queue_sidebar_entry_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+LibraryImportQueueSidebarEntry* library_import_queue_sidebar_entry_new (void);
+LibraryImportQueueSidebarEntry* library_import_queue_sidebar_entry_construct (GType object_type);
+LibraryHideablePageEntry* library_hideable_page_entry_construct (GType object_type);
+static void library_import_queue_sidebar_entry_on_page_created (LibraryImportQueueSidebarEntry* self);
+static void _library_import_queue_sidebar_entry_on_page_created_sidebar_page_representative_page_created (SidebarPageRepresentative* _sender, Page* page, gpointer self);
+static void library_import_queue_sidebar_entry_on_destroying_page (LibraryImportQueueSidebarEntry* self);
+static void _library_import_queue_sidebar_entry_on_destroying_page_sidebar_page_representative_destroying_page (SidebarPageRepresentative* _sender, Page* page, gpointer self);
+void library_hideable_page_entry_set_visible (LibraryHideablePageEntry* self, gboolean value);
+static gchar* library_import_queue_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define IMPORT_QUEUE_PAGE_NAME _ ("Importing...")
+static gchar* library_import_queue_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+#define RESOURCES_ICON_IMPORTING "go-down"
+static Page* library_import_queue_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+ImportQueuePage* import_queue_page_new (void);
+ImportQueuePage* import_queue_page_construct (GType object_type);
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType import_queue_page_get_type (void) G_GNUC_CONST;
+static ImportQueuePage* library_import_queue_sidebar_entry_get_queue_page (LibraryImportQueueSidebarEntry* self);
+Page* sidebar_page_representative_get_page (SidebarPageRepresentative* self);
+static void library_import_queue_sidebar_entry_on_batch_added_or_removed (LibraryImportQueueSidebarEntry* self);
+GType batch_import_get_type (void) G_GNUC_CONST;
+static void _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_added (ImportQueuePage* _sender, BatchImport* batch_import, gpointer self);
+static void _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_removed (ImportQueuePage* _sender, BatchImport* batch_import, gpointer self);
+gint import_queue_page_get_batch_count (ImportQueuePage* self);
+void library_import_queue_sidebar_entry_enqueue_and_schedule (LibraryImportQueueSidebarEntry* self, BatchImport* batch_import, gboolean allow_user_cancel);
+void import_queue_page_enqueue_and_schedule (ImportQueuePage* self, BatchImport* batch_import, gboolean allow_user_cancel);
+
+
+static void _library_import_queue_sidebar_entry_on_page_created_sidebar_page_representative_page_created (SidebarPageRepresentative* _sender, Page* page, gpointer self) {
+#line 10 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_import_queue_sidebar_entry_on_page_created ((LibraryImportQueueSidebarEntry*) self);
+#line 239 "ImportQueueSidebarEntry.c"
+}
+
+
+static void _library_import_queue_sidebar_entry_on_destroying_page_sidebar_page_representative_destroying_page (SidebarPageRepresentative* _sender, Page* page, gpointer self) {
+#line 11 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_import_queue_sidebar_entry_on_destroying_page ((LibraryImportQueueSidebarEntry*) self);
+#line 246 "ImportQueueSidebarEntry.c"
+}
+
+
+LibraryImportQueueSidebarEntry* library_import_queue_sidebar_entry_construct (GType object_type) {
+ LibraryImportQueueSidebarEntry * self = NULL;
+#line 8 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ self = (LibraryImportQueueSidebarEntry*) library_hideable_page_entry_construct (object_type);
+#line 10 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative), "page-created", (GCallback) _library_import_queue_sidebar_entry_on_page_created_sidebar_page_representative_page_created, self, 0);
+#line 11 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative), "destroying-page", (GCallback) _library_import_queue_sidebar_entry_on_destroying_page_sidebar_page_representative_destroying_page, self, 0);
+#line 16 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), FALSE);
+#line 8 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ return self;
+#line 262 "ImportQueueSidebarEntry.c"
+}
+
+
+LibraryImportQueueSidebarEntry* library_import_queue_sidebar_entry_new (void) {
+#line 8 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ return library_import_queue_sidebar_entry_construct (LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY);
+#line 269 "ImportQueueSidebarEntry.c"
+}
+
+
+static gchar* library_import_queue_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ LibraryImportQueueSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntry);
+#line 20 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = g_strdup (IMPORT_QUEUE_PAGE_NAME);
+#line 20 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ result = _tmp0_;
+#line 20 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ return result;
+#line 285 "ImportQueueSidebarEntry.c"
+}
+
+
+static gchar* library_import_queue_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ LibraryImportQueueSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntry);
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_IMPORTING);
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ result = _tmp0_;
+#line 24 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ return result;
+#line 301 "ImportQueueSidebarEntry.c"
+}
+
+
+static Page* library_import_queue_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ LibraryImportQueueSidebarEntry * self;
+ Page* result = NULL;
+ ImportQueuePage* _tmp0_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntry);
+#line 28 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = import_queue_page_new ();
+#line 28 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_object_ref_sink (_tmp0_);
+#line 28 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 28 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ return result;
+#line 319 "ImportQueueSidebarEntry.c"
+}
+
+
+static ImportQueuePage* library_import_queue_sidebar_entry_get_queue_page (LibraryImportQueueSidebarEntry* self) {
+ ImportQueuePage* result = NULL;
+ Page* _tmp0_ = NULL;
+ ImportQueuePage* _tmp1_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_return_val_if_fail (LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY (self), NULL);
+#line 32 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 32 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_IMPORT_QUEUE_PAGE) ? ((ImportQueuePage*) _tmp0_) : NULL;
+#line 32 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ if (_tmp1_ == NULL) {
+#line 32 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _g_object_unref0 (_tmp0_);
+#line 337 "ImportQueueSidebarEntry.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ result = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ return result;
+#line 343 "ImportQueueSidebarEntry.c"
+}
+
+
+static void _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_added (ImportQueuePage* _sender, BatchImport* batch_import, gpointer self) {
+#line 36 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_import_queue_sidebar_entry_on_batch_added_or_removed ((LibraryImportQueueSidebarEntry*) self);
+#line 350 "ImportQueueSidebarEntry.c"
+}
+
+
+static void _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_removed (ImportQueuePage* _sender, BatchImport* batch_import, gpointer self) {
+#line 37 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_import_queue_sidebar_entry_on_batch_added_or_removed ((LibraryImportQueueSidebarEntry*) self);
+#line 357 "ImportQueueSidebarEntry.c"
+}
+
+
+static void library_import_queue_sidebar_entry_on_page_created (LibraryImportQueueSidebarEntry* self) {
+ ImportQueuePage* _tmp0_ = NULL;
+ ImportQueuePage* _tmp1_ = NULL;
+ ImportQueuePage* _tmp2_ = NULL;
+ ImportQueuePage* _tmp3_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY (self));
+#line 36 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = library_import_queue_sidebar_entry_get_queue_page (self);
+#line 36 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 36 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_connect_object (_tmp1_, "batch-added", (GCallback) _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_added, self, 0);
+#line 36 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _g_object_unref0 (_tmp1_);
+#line 37 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp2_ = library_import_queue_sidebar_entry_get_queue_page (self);
+#line 37 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 37 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_connect_object (_tmp3_, "batch-removed", (GCallback) _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_removed, self, 0);
+#line 37 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 384 "ImportQueueSidebarEntry.c"
+}
+
+
+static void library_import_queue_sidebar_entry_on_destroying_page (LibraryImportQueueSidebarEntry* self) {
+ ImportQueuePage* _tmp0_ = NULL;
+ ImportQueuePage* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ ImportQueuePage* _tmp3_ = NULL;
+ ImportQueuePage* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 40 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY (self));
+#line 41 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = library_import_queue_sidebar_entry_get_queue_page (self);
+#line 41 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 41 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_parse_name ("batch-added", TYPE_IMPORT_QUEUE_PAGE, &_tmp2_, NULL, FALSE);
+#line 41 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_added, self);
+#line 41 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _g_object_unref0 (_tmp1_);
+#line 42 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp3_ = library_import_queue_sidebar_entry_get_queue_page (self);
+#line 42 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp4_ = _tmp3_;
+#line 42 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_parse_name ("batch-removed", TYPE_IMPORT_QUEUE_PAGE, &_tmp5_, NULL, FALSE);
+#line 42 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _library_import_queue_sidebar_entry_on_batch_added_or_removed_import_queue_page_batch_removed, self);
+#line 42 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _g_object_unref0 (_tmp4_);
+#line 417 "ImportQueueSidebarEntry.c"
+}
+
+
+static void library_import_queue_sidebar_entry_on_batch_added_or_removed (LibraryImportQueueSidebarEntry* self) {
+ ImportQueuePage* _tmp0_ = NULL;
+ ImportQueuePage* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 45 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY (self));
+#line 46 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = library_import_queue_sidebar_entry_get_queue_page (self);
+#line 46 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 46 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp2_ = import_queue_page_get_batch_count (_tmp1_);
+#line 46 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), _tmp2_ > 0);
+#line 46 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _g_object_unref0 (_tmp1_);
+#line 437 "ImportQueueSidebarEntry.c"
+}
+
+
+void library_import_queue_sidebar_entry_enqueue_and_schedule (LibraryImportQueueSidebarEntry* self, BatchImport* batch_import, gboolean allow_user_cancel) {
+ ImportQueuePage* _tmp0_ = NULL;
+ ImportQueuePage* _tmp1_ = NULL;
+ BatchImport* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 49 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY (self));
+#line 49 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (batch_import));
+#line 52 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), TRUE);
+#line 53 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp0_ = library_import_queue_sidebar_entry_get_queue_page (self);
+#line 53 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 53 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp2_ = batch_import;
+#line 53 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _tmp3_ = allow_user_cancel;
+#line 53 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ import_queue_page_enqueue_and_schedule (_tmp1_, _tmp2_, _tmp3_);
+#line 53 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ _g_object_unref0 (_tmp1_);
+#line 464 "ImportQueueSidebarEntry.c"
+}
+
+
+static void library_import_queue_sidebar_entry_class_init (LibraryImportQueueSidebarEntryClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ library_import_queue_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = library_import_queue_sidebar_entry_real_get_sidebar_name;
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = library_import_queue_sidebar_entry_real_get_sidebar_icon;
+#line 7 "/home/jens/Source/shotwell/src/library/ImportQueueSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = library_import_queue_sidebar_entry_real_create_page;
+#line 477 "ImportQueueSidebarEntry.c"
+}
+
+
+static void library_import_queue_sidebar_entry_instance_init (LibraryImportQueueSidebarEntry * self) {
+}
+
+
+GType library_import_queue_sidebar_entry_get_type (void) {
+ static volatile gsize library_import_queue_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&library_import_queue_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryImportQueueSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_import_queue_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryImportQueueSidebarEntry), 0, (GInstanceInitFunc) library_import_queue_sidebar_entry_instance_init, NULL };
+ GType library_import_queue_sidebar_entry_type_id;
+ library_import_queue_sidebar_entry_type_id = g_type_register_static (LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, "LibraryImportQueueSidebarEntry", &g_define_type_info, 0);
+ g_once_init_leave (&library_import_queue_sidebar_entry_type_id__volatile, library_import_queue_sidebar_entry_type_id);
+ }
+ return library_import_queue_sidebar_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/library/LastImportPage.c b/src/library/LastImportPage.c
new file mode 100644
index 0000000..d0f8f24
--- /dev/null
+++ b/src/library/LastImportPage.c
@@ -0,0 +1,1278 @@
+/* LastImportPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from LastImportPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+
+#define TYPE_LAST_IMPORT_PAGE (last_import_page_get_type ())
+#define LAST_IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LAST_IMPORT_PAGE, LastImportPage))
+#define LAST_IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LAST_IMPORT_PAGE, LastImportPageClass))
+#define IS_LAST_IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LAST_IMPORT_PAGE))
+#define IS_LAST_IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LAST_IMPORT_PAGE))
+#define LAST_IMPORT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LAST_IMPORT_PAGE, LastImportPageClass))
+
+typedef struct _LastImportPage LastImportPage;
+typedef struct _LastImportPageClass LastImportPageClass;
+typedef struct _LastImportPagePrivate LastImportPagePrivate;
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _import_id_free0(var) ((var == NULL) ? NULL : (var = (import_id_free (var), NULL)))
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+
+#define TYPE_COLLECTION_VIEW_MANAGER (collection_view_manager_get_type ())
+#define COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager))
+#define COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+#define IS_COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_VIEW_MANAGER))
+#define IS_COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_VIEW_MANAGER))
+#define COLLECTION_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+
+typedef struct _CollectionViewManager CollectionViewManager;
+typedef struct _CollectionViewManagerClass CollectionViewManagerClass;
+
+#define LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER (last_import_page_last_import_view_manager_get_type ())
+#define LAST_IMPORT_PAGE_LAST_IMPORT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER, LastImportPageLastImportViewManager))
+#define LAST_IMPORT_PAGE_LAST_IMPORT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER, LastImportPageLastImportViewManagerClass))
+#define LAST_IMPORT_PAGE_IS_LAST_IMPORT_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER))
+#define LAST_IMPORT_PAGE_IS_LAST_IMPORT_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER))
+#define LAST_IMPORT_PAGE_LAST_IMPORT_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER, LastImportPageLastImportViewManagerClass))
+
+typedef struct _LastImportPageLastImportViewManager LastImportPageLastImportViewManager;
+typedef struct _LastImportPageLastImportViewManagerClass LastImportPageLastImportViewManagerClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+typedef struct _CollectionViewManagerPrivate CollectionViewManagerPrivate;
+typedef struct _LastImportPageLastImportViewManagerPrivate LastImportPageLastImportViewManagerPrivate;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _LastImportPage {
+ CollectionPage parent_instance;
+ LastImportPagePrivate * priv;
+};
+
+struct _LastImportPageClass {
+ CollectionPageClass parent_class;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+struct _LastImportPagePrivate {
+ ImportID last_import_id;
+ Alteration* last_import_alteration;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _CollectionViewManager {
+ ViewManager parent_instance;
+ CollectionViewManagerPrivate * priv;
+};
+
+struct _CollectionViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _LastImportPageLastImportViewManager {
+ CollectionViewManager parent_instance;
+ LastImportPageLastImportViewManagerPrivate * priv;
+};
+
+struct _LastImportPageLastImportViewManagerClass {
+ CollectionViewManagerClass parent_class;
+};
+
+struct _LastImportPageLastImportViewManagerPrivate {
+ ImportID import_id;
+};
+
+
+static gpointer last_import_page_parent_class = NULL;
+static gpointer last_import_page_last_import_view_manager_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType last_import_page_get_type (void) G_GNUC_CONST;
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+#define LAST_IMPORT_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LAST_IMPORT_PAGE, LastImportPagePrivate))
+enum {
+ LAST_IMPORT_PAGE_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+static void last_import_page_on_import_rolls_altered (LastImportPage* self);
+static void _last_import_page_on_import_rolls_altered_media_source_collection_import_roll_altered (MediaSourceCollection* _sender, gpointer self);
+#define IMPORT_ID_INVALID ((gint64) 0)
+void import_id_init (ImportID *self, gint64 id);
+Alteration* alteration_new (const gchar* subject, const gchar* detail);
+Alteration* alteration_construct (GType object_type, const gchar* subject, const gchar* detail);
+#define LAST_IMPORT_PAGE_NAME _ ("Last Import")
+LastImportPage* last_import_page_new (void);
+LastImportPage* last_import_page_construct (GType object_type);
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+ImportID* media_collection_registry_get_last_import_id (MediaCollectionRegistry* self);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+void view_collection_halt_all_monitoring (ViewCollection* self);
+void data_collection_clear (DataCollection* self);
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+static LastImportPageLastImportViewManager* last_import_page_last_import_view_manager_new (LastImportPage* owner, ImportID* import_id);
+static LastImportPageLastImportViewManager* last_import_page_last_import_view_manager_construct (GType object_type, LastImportPage* owner, ImportID* import_id);
+GType collection_view_manager_get_type (void) G_GNUC_CONST;
+static GType last_import_page_last_import_view_manager_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static void last_import_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void last_import_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+void configuration_facade_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+#define LAST_IMPORT_PAGE_LAST_IMPORT_VIEW_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER, LastImportPageLastImportViewManagerPrivate))
+enum {
+ LAST_IMPORT_PAGE_LAST_IMPORT_VIEW_MANAGER_DUMMY_PROPERTY
+};
+CollectionViewManager* collection_view_manager_new (CollectionPage* page);
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page);
+static gboolean last_import_page_last_import_view_manager_real_include_in_view (ViewManager* base, DataSource* source);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+void media_source_get_import_id (MediaSource* self, ImportID* result);
+static void last_import_page_last_import_view_manager_finalize (ViewManager* obj);
+static void last_import_page_finalize (GObject* obj);
+
+
+static void _last_import_page_on_import_rolls_altered_media_source_collection_import_roll_altered (MediaSourceCollection* _sender, gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ last_import_page_on_import_rolls_altered ((LastImportPage*) self);
+#line 715 "LastImportPage.c"
+}
+
+
+LastImportPage* last_import_page_construct (GType object_type) {
+ LastImportPage * self = NULL;
+#line 28 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self = (LastImportPage*) collection_page_construct (object_type, LAST_IMPORT_PAGE_NAME);
+#line 723 "LastImportPage.c"
+ {
+ GeeIterator* _col_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp5_ = _tmp4_;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _col_it = _tmp5_;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ while (TRUE) {
+#line 752 "LastImportPage.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* col = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp6_ = _col_it;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ if (!_tmp7_) {
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ break;
+#line 767 "LastImportPage.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp8_ = _col_it;
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ col = (MediaSourceCollection*) _tmp9_;
+#line 32 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp10_ = col;
+#line 32 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_signal_connect_object (_tmp10_, "import-roll-altered", (GCallback) _last_import_page_on_import_rolls_altered_media_source_collection_import_roll_altered, self, 0);
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (col);
+#line 781 "LastImportPage.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_col_it);
+#line 785 "LastImportPage.c"
+ }
+#line 36 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ last_import_page_on_import_rolls_altered (self);
+#line 27 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ return self;
+#line 791 "LastImportPage.c"
+}
+
+
+LastImportPage* last_import_page_new (void) {
+#line 27 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ return last_import_page_construct (TYPE_LAST_IMPORT_PAGE);
+#line 798 "LastImportPage.c"
+}
+
+
+static void last_import_page_on_import_rolls_altered (LastImportPage* self) {
+ ImportID* current_last_import_id = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ ImportID* _tmp2_ = NULL;
+ ImportID* _tmp3_ = NULL;
+ ImportID* _tmp4_ = NULL;
+ ImportID* _tmp9_ = NULL;
+ gint64 _tmp10_ = 0LL;
+ ImportID _tmp11_ = {0};
+ gint64 _tmp12_ = 0LL;
+ ImportID* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_return_if_fail (IS_LAST_IMPORT_PAGE (self));
+#line 47 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 47 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 47 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp2_ = media_collection_registry_get_last_import_id (_tmp1_);
+#line 47 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 47 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 47 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ current_last_import_id = _tmp3_;
+#line 50 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp4_ = current_last_import_id;
+#line 50 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ if (_tmp4_ == NULL) {
+#line 836 "LastImportPage.c"
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 51 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp6_ = _tmp5_;
+#line 51 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ view_collection_halt_all_monitoring (_tmp6_);
+#line 51 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 52 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 52 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp8_ = _tmp7_;
+#line 52 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection));
+#line 52 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 54 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _import_id_free0 (current_last_import_id);
+#line 54 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ return;
+#line 861 "LastImportPage.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp9_ = current_last_import_id;
+#line 57 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp10_ = (*_tmp9_).id;
+#line 57 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp11_ = self->priv->last_import_id;
+#line 57 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp12_ = _tmp11_.id;
+#line 57 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ if (_tmp10_ == _tmp12_) {
+#line 58 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _import_id_free0 (current_last_import_id);
+#line 58 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ return;
+#line 877 "LastImportPage.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp13_ = current_last_import_id;
+#line 60 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self->priv->last_import_id = *_tmp13_;
+#line 62 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp14_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 62 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp15_ = _tmp14_;
+#line 62 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ view_collection_halt_all_monitoring (_tmp15_);
+#line 62 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (_tmp15_);
+#line 63 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 63 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp17_ = _tmp16_;
+#line 63 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ data_collection_clear (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_DATA_COLLECTION, DataCollection));
+#line 63 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 899 "LastImportPage.c"
+ {
+ GeeIterator* _col_it = NULL;
+ MediaCollectionRegistry* _tmp18_ = NULL;
+ MediaCollectionRegistry* _tmp19_ = NULL;
+ GeeCollection* _tmp20_ = NULL;
+ GeeCollection* _tmp21_ = NULL;
+ GeeIterator* _tmp22_ = NULL;
+ GeeIterator* _tmp23_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp18_ = media_collection_registry_get_instance ();
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp19_ = _tmp18_;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp20_ = media_collection_registry_get_all (_tmp19_);
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp21_ = _tmp20_;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp22_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp23_ = _tmp22_;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_tmp21_);
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _media_collection_registry_unref0 (_tmp19_);
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _col_it = _tmp23_;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ while (TRUE) {
+#line 928 "LastImportPage.c"
+ GeeIterator* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ MediaSourceCollection* col = NULL;
+ GeeIterator* _tmp26_ = NULL;
+ gpointer _tmp27_ = NULL;
+ ViewCollection* _tmp28_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ MediaSourceCollection* _tmp30_ = NULL;
+ ImportID _tmp31_ = {0};
+ LastImportPageLastImportViewManager* _tmp32_ = NULL;
+ LastImportPageLastImportViewManager* _tmp33_ = NULL;
+ Alteration* _tmp34_ = NULL;
+ ViewCollectionMonitor* _tmp35_ = NULL;
+ ViewCollectionMonitor* _tmp36_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp24_ = _col_it;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp25_ = gee_iterator_next (_tmp24_);
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ if (!_tmp25_) {
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ break;
+#line 951 "LastImportPage.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp26_ = _col_it;
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp27_ = gee_iterator_get (_tmp26_);
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ col = (MediaSourceCollection*) _tmp27_;
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp28_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp29_ = _tmp28_;
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp30_ = col;
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp31_ = self->priv->last_import_id;
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp32_ = last_import_page_last_import_view_manager_new (self, &_tmp31_);
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp33_ = _tmp32_;
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp34_ = self->priv->last_import_alteration;
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp35_ = view_collection_monitor_source_collection (_tmp29_, G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_VIEW_MANAGER, ViewManager), _tmp34_, NULL, NULL, NULL);
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp36_ = _tmp35_;
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _view_collection_monitor_unref0 (_tmp36_);
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _view_manager_unref0 (_tmp33_);
+#line 66 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (_tmp29_);
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (col);
+#line 985 "LastImportPage.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_col_it);
+#line 989 "LastImportPage.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _import_id_free0 (current_last_import_id);
+#line 993 "LastImportPage.c"
+}
+
+
+static void last_import_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ LastImportPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 71 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LAST_IMPORT_PAGE, LastImportPage);
+#line 72 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 72 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 72 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ configuration_facade_get_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 72 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _vala_sort_order = _tmp2_;
+#line 72 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _vala_sort_by = _tmp3_;
+#line 72 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 71 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ if (sort_order) {
+#line 71 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ *sort_order = _vala_sort_order;
+#line 1023 "LastImportPage.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ if (sort_by) {
+#line 71 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ *sort_by = _vala_sort_by;
+#line 1029 "LastImportPage.c"
+ }
+}
+
+
+static void last_import_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ LastImportPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 75 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LAST_IMPORT_PAGE, LastImportPage);
+#line 76 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 76 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 76 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp2_ = sort_order;
+#line 76 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp3_ = sort_by;
+#line 76 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ configuration_facade_set_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 76 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1054 "LastImportPage.c"
+}
+
+
+static LastImportPageLastImportViewManager* last_import_page_last_import_view_manager_construct (GType object_type, LastImportPage* owner, ImportID* import_id) {
+ LastImportPageLastImportViewManager* self = NULL;
+ LastImportPage* _tmp0_ = NULL;
+ ImportID _tmp1_ = {0};
+#line 13 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_return_val_if_fail (IS_LAST_IMPORT_PAGE (owner), NULL);
+#line 13 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_return_val_if_fail (import_id != NULL, NULL);
+#line 14 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = owner;
+#line 14 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self = (LastImportPageLastImportViewManager*) collection_view_manager_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_COLLECTION_PAGE, CollectionPage));
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp1_ = *import_id;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self->priv->import_id = _tmp1_;
+#line 13 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ return self;
+#line 1076 "LastImportPage.c"
+}
+
+
+static LastImportPageLastImportViewManager* last_import_page_last_import_view_manager_new (LastImportPage* owner, ImportID* import_id) {
+#line 13 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ return last_import_page_last_import_view_manager_construct (LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER, owner, import_id);
+#line 1083 "LastImportPage.c"
+}
+
+
+static gboolean last_import_page_last_import_view_manager_real_include_in_view (ViewManager* base, DataSource* source) {
+ LastImportPageLastImportViewManager * self;
+ gboolean result = FALSE;
+ DataSource* _tmp0_ = NULL;
+ ImportID _tmp1_ = {0};
+ gint64 _tmp2_ = 0LL;
+ ImportID _tmp3_ = {0};
+ gint64 _tmp4_ = 0LL;
+#line 19 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER, LastImportPageLastImportViewManager);
+#line 19 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = source;
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ media_source_get_import_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE, MediaSource), &_tmp1_);
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp2_ = _tmp1_.id;
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp3_ = self->priv->import_id;
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp4_ = _tmp3_.id;
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ result = _tmp2_ == _tmp4_;
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ return result;
+#line 1113 "LastImportPage.c"
+}
+
+
+static void last_import_page_last_import_view_manager_class_init (LastImportPageLastImportViewManagerClass * klass) {
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ last_import_page_last_import_view_manager_parent_class = g_type_class_peek_parent (klass);
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ ((ViewManagerClass *) klass)->finalize = last_import_page_last_import_view_manager_finalize;
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_type_class_add_private (klass, sizeof (LastImportPageLastImportViewManagerPrivate));
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ ((ViewManagerClass *) klass)->include_in_view = last_import_page_last_import_view_manager_real_include_in_view;
+#line 1126 "LastImportPage.c"
+}
+
+
+static void last_import_page_last_import_view_manager_instance_init (LastImportPageLastImportViewManager * self) {
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self->priv = LAST_IMPORT_PAGE_LAST_IMPORT_VIEW_MANAGER_GET_PRIVATE (self);
+#line 1133 "LastImportPage.c"
+}
+
+
+static void last_import_page_last_import_view_manager_finalize (ViewManager* obj) {
+ LastImportPageLastImportViewManager * self;
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LAST_IMPORT_PAGE_TYPE_LAST_IMPORT_VIEW_MANAGER, LastImportPageLastImportViewManager);
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ VIEW_MANAGER_CLASS (last_import_page_last_import_view_manager_parent_class)->finalize (obj);
+#line 1143 "LastImportPage.c"
+}
+
+
+static GType last_import_page_last_import_view_manager_get_type (void) {
+ static volatile gsize last_import_page_last_import_view_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&last_import_page_last_import_view_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LastImportPageLastImportViewManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) last_import_page_last_import_view_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LastImportPageLastImportViewManager), 0, (GInstanceInitFunc) last_import_page_last_import_view_manager_instance_init, NULL };
+ GType last_import_page_last_import_view_manager_type_id;
+ last_import_page_last_import_view_manager_type_id = g_type_register_static (TYPE_COLLECTION_VIEW_MANAGER, "LastImportPageLastImportViewManager", &g_define_type_info, 0);
+ g_once_init_leave (&last_import_page_last_import_view_manager_type_id__volatile, last_import_page_last_import_view_manager_type_id);
+ }
+ return last_import_page_last_import_view_manager_type_id__volatile;
+}
+
+
+static void last_import_page_class_init (LastImportPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ last_import_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_type_class_add_private (klass, sizeof (LastImportPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = last_import_page_real_get_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = last_import_page_real_set_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = last_import_page_finalize;
+#line 1170 "LastImportPage.c"
+}
+
+
+static void last_import_page_instance_init (LastImportPage * self) {
+ Alteration* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self->priv = LAST_IMPORT_PAGE_GET_PRIVATE (self);
+#line 24 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ import_id_init (&self->priv->last_import_id, IMPORT_ID_INVALID);
+#line 25 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = alteration_new ("metadata", "import-id");
+#line 25 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self->priv->last_import_alteration = _tmp0_;
+#line 1184 "LastImportPage.c"
+}
+
+
+static void last_import_page_finalize (GObject* obj) {
+ LastImportPage * self;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LAST_IMPORT_PAGE, LastImportPage);
+#line 1192 "LastImportPage.c"
+ {
+ GeeIterator* _col_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp1_ = _tmp0_;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp3_ = _tmp2_;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp5_ = _tmp4_;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_tmp3_);
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _col_it = _tmp5_;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ while (TRUE) {
+#line 1221 "LastImportPage.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* col = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp6_ = _col_it;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ if (!_tmp7_) {
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ break;
+#line 1237 "LastImportPage.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp8_ = _col_it;
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ col = (MediaSourceCollection*) _tmp9_;
+#line 41 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _tmp10_ = col;
+#line 41 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_signal_parse_name ("import-roll-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 41 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _last_import_page_on_import_rolls_altered_media_source_collection_import_roll_altered, self);
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _data_collection_unref0 (col);
+#line 1253 "LastImportPage.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _g_object_unref0 (_col_it);
+#line 1257 "LastImportPage.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ _alteration_unref0 (self->priv->last_import_alteration);
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportPage.vala"
+ G_OBJECT_CLASS (last_import_page_parent_class)->finalize (obj);
+#line 1263 "LastImportPage.c"
+}
+
+
+GType last_import_page_get_type (void) {
+ static volatile gsize last_import_page_type_id__volatile = 0;
+ if (g_once_init_enter (&last_import_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LastImportPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) last_import_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LastImportPage), 0, (GInstanceInitFunc) last_import_page_instance_init, NULL };
+ GType last_import_page_type_id;
+ last_import_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "LastImportPage", &g_define_type_info, 0);
+ g_once_init_leave (&last_import_page_type_id__volatile, last_import_page_type_id);
+ }
+ return last_import_page_type_id__volatile;
+}
+
+
+
diff --git a/src/library/LastImportSidebarEntry.c b/src/library/LastImportSidebarEntry.c
new file mode 100644
index 0000000..bdf6b91
--- /dev/null
+++ b/src/library/LastImportSidebarEntry.c
@@ -0,0 +1,610 @@
+/* LastImportSidebarEntry.c generated by valac 0.32.1, the Vala compiler
+ * generated from LastImportSidebarEntry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY (library_hideable_page_entry_get_type ())
+#define LIBRARY_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+
+typedef struct _LibraryHideablePageEntry LibraryHideablePageEntry;
+typedef struct _LibraryHideablePageEntryClass LibraryHideablePageEntryClass;
+typedef struct _LibraryHideablePageEntryPrivate LibraryHideablePageEntryPrivate;
+
+#define LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY (library_last_import_sidebar_entry_get_type ())
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntry))
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntryClass))
+#define LIBRARY_IS_LAST_IMPORT_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY))
+#define LIBRARY_IS_LAST_IMPORT_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY))
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntryClass))
+
+typedef struct _LibraryLastImportSidebarEntry LibraryLastImportSidebarEntry;
+typedef struct _LibraryLastImportSidebarEntryClass LibraryLastImportSidebarEntryClass;
+typedef struct _LibraryLastImportSidebarEntryPrivate LibraryLastImportSidebarEntryPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_IMPORT_ID (import_id_get_type ())
+typedef struct _ImportID ImportID;
+#define _import_id_free0(var) ((var == NULL) ? NULL : (var = (import_id_free (var), NULL)))
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_LAST_IMPORT_PAGE (last_import_page_get_type ())
+#define LAST_IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LAST_IMPORT_PAGE, LastImportPage))
+#define LAST_IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LAST_IMPORT_PAGE, LastImportPageClass))
+#define IS_LAST_IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LAST_IMPORT_PAGE))
+#define IS_LAST_IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LAST_IMPORT_PAGE))
+#define LAST_IMPORT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LAST_IMPORT_PAGE, LastImportPageClass))
+
+typedef struct _LastImportPage LastImportPage;
+typedef struct _LastImportPageClass LastImportPageClass;
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _LibraryHideablePageEntry {
+ SidebarSimplePageEntry parent_instance;
+ LibraryHideablePageEntryPrivate * priv;
+};
+
+struct _LibraryHideablePageEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _LibraryLastImportSidebarEntry {
+ LibraryHideablePageEntry parent_instance;
+ LibraryLastImportSidebarEntryPrivate * priv;
+};
+
+struct _LibraryLastImportSidebarEntryClass {
+ LibraryHideablePageEntryClass parent_class;
+};
+
+struct _ImportID {
+ gint64 id;
+};
+
+
+static gpointer library_last_import_sidebar_entry_parent_class = NULL;
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType library_hideable_page_entry_get_type (void) G_GNUC_CONST;
+GType library_last_import_sidebar_entry_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+static void library_last_import_sidebar_entry_on_import_rolls_altered (LibraryLastImportSidebarEntry* self);
+static void _library_last_import_sidebar_entry_on_import_rolls_altered_media_source_collection_import_roll_altered (MediaSourceCollection* _sender, gpointer self);
+LibraryLastImportSidebarEntry* library_last_import_sidebar_entry_new (void);
+LibraryLastImportSidebarEntry* library_last_import_sidebar_entry_construct (GType object_type);
+LibraryHideablePageEntry* library_hideable_page_entry_construct (GType object_type);
+GType import_id_get_type (void) G_GNUC_CONST;
+ImportID* import_id_dup (const ImportID* self);
+void import_id_free (ImportID* self);
+ImportID* media_collection_registry_get_last_import_id (MediaCollectionRegistry* self);
+void library_hideable_page_entry_set_visible (LibraryHideablePageEntry* self, gboolean value);
+static gchar* library_last_import_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define LAST_IMPORT_PAGE_NAME _ ("Last Import")
+static gchar* library_last_import_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+#define RESOURCES_ICON_LAST_IMPORT "document-open-recent"
+static Page* library_last_import_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+LastImportPage* last_import_page_new (void);
+LastImportPage* last_import_page_construct (GType object_type);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType last_import_page_get_type (void) G_GNUC_CONST;
+static void library_last_import_sidebar_entry_finalize (GObject* obj);
+
+
+static void _library_last_import_sidebar_entry_on_import_rolls_altered_media_source_collection_import_roll_altered (MediaSourceCollection* _sender, gpointer self) {
+#line 17 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ library_last_import_sidebar_entry_on_import_rolls_altered ((LibraryLastImportSidebarEntry*) self);
+#line 325 "LastImportSidebarEntry.c"
+}
+
+
+LibraryLastImportSidebarEntry* library_last_import_sidebar_entry_construct (GType object_type) {
+ LibraryLastImportSidebarEntry * self = NULL;
+ MediaCollectionRegistry* _tmp11_ = NULL;
+ MediaCollectionRegistry* _tmp12_ = NULL;
+ ImportID* _tmp13_ = NULL;
+ ImportID* _tmp14_ = NULL;
+#line 8 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ self = (LibraryLastImportSidebarEntry*) library_hideable_page_entry_construct (object_type);
+#line 337 "LastImportSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ while (TRUE) {
+#line 366 "LastImportSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ break;
+#line 381 "LastImportSidebarEntry.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 10 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ g_signal_connect_object (_tmp10_, "import-roll-altered", (GCallback) _library_last_import_sidebar_entry_on_import_rolls_altered_media_source_collection_import_roll_altered, self, 0);
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 395 "LastImportSidebarEntry.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 399 "LastImportSidebarEntry.c"
+ }
+#line 12 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp11_ = media_collection_registry_get_instance ();
+#line 12 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp12_ = _tmp11_;
+#line 12 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp13_ = media_collection_registry_get_last_import_id (_tmp12_);
+#line 12 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp14_ = _tmp13_;
+#line 12 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), _tmp14_ != NULL);
+#line 12 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _import_id_free0 (_tmp14_);
+#line 12 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp12_);
+#line 8 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ return self;
+#line 417 "LastImportSidebarEntry.c"
+}
+
+
+LibraryLastImportSidebarEntry* library_last_import_sidebar_entry_new (void) {
+#line 8 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ return library_last_import_sidebar_entry_construct (LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY);
+#line 424 "LastImportSidebarEntry.c"
+}
+
+
+static gchar* library_last_import_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ LibraryLastImportSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntry);
+#line 21 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp0_ = g_strdup (LAST_IMPORT_PAGE_NAME);
+#line 21 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ result = _tmp0_;
+#line 21 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ return result;
+#line 440 "LastImportSidebarEntry.c"
+}
+
+
+static gchar* library_last_import_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ LibraryLastImportSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntry);
+#line 25 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_LAST_IMPORT);
+#line 25 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ result = _tmp0_;
+#line 25 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ return result;
+#line 456 "LastImportSidebarEntry.c"
+}
+
+
+static Page* library_last_import_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ LibraryLastImportSidebarEntry * self;
+ Page* result = NULL;
+ LastImportPage* _tmp0_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntry);
+#line 29 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp0_ = last_import_page_new ();
+#line 29 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ g_object_ref_sink (_tmp0_);
+#line 29 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 29 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ return result;
+#line 474 "LastImportSidebarEntry.c"
+}
+
+
+static void library_last_import_sidebar_entry_on_import_rolls_altered (LibraryLastImportSidebarEntry* self) {
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ ImportID* _tmp2_ = NULL;
+ ImportID* _tmp3_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_LAST_IMPORT_SIDEBAR_ENTRY (self));
+#line 33 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 33 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 33 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_last_import_id (_tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), _tmp3_ != NULL);
+#line 33 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _import_id_free0 (_tmp3_);
+#line 33 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 499 "LastImportSidebarEntry.c"
+}
+
+
+static void library_last_import_sidebar_entry_class_init (LibraryLastImportSidebarEntryClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ library_last_import_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = library_last_import_sidebar_entry_real_get_sidebar_name;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = library_last_import_sidebar_entry_real_get_sidebar_icon;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = library_last_import_sidebar_entry_real_create_page;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_last_import_sidebar_entry_finalize;
+#line 514 "LastImportSidebarEntry.c"
+}
+
+
+static void library_last_import_sidebar_entry_instance_init (LibraryLastImportSidebarEntry * self) {
+}
+
+
+static void library_last_import_sidebar_entry_finalize (GObject* obj) {
+ LibraryLastImportSidebarEntry * self;
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntry);
+#line 526 "LastImportSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ while (TRUE) {
+#line 555 "LastImportSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ break;
+#line 571 "LastImportSidebarEntry.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 17 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 17 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ g_signal_parse_name ("import-roll-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 17 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _library_last_import_sidebar_entry_on_import_rolls_altered_media_source_collection_import_roll_altered, self);
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 587 "LastImportSidebarEntry.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 591 "LastImportSidebarEntry.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/library/LastImportSidebarEntry.vala"
+ G_OBJECT_CLASS (library_last_import_sidebar_entry_parent_class)->finalize (obj);
+#line 595 "LastImportSidebarEntry.c"
+}
+
+
+GType library_last_import_sidebar_entry_get_type (void) {
+ static volatile gsize library_last_import_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&library_last_import_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryLastImportSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_last_import_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryLastImportSidebarEntry), 0, (GInstanceInitFunc) library_last_import_sidebar_entry_instance_init, NULL };
+ GType library_last_import_sidebar_entry_type_id;
+ library_last_import_sidebar_entry_type_id = g_type_register_static (LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, "LibraryLastImportSidebarEntry", &g_define_type_info, 0);
+ g_once_init_leave (&library_last_import_sidebar_entry_type_id__volatile, library_last_import_sidebar_entry_type_id);
+ }
+ return library_last_import_sidebar_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/library/Library.c b/src/library/Library.c
new file mode 100644
index 0000000..4ce5d56
--- /dev/null
+++ b/src/library/Library.c
@@ -0,0 +1,46 @@
+/* Library.c generated by valac 0.32.1, the Vala compiler
+ * generated from Library.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void library_init (GError** error);
+void library_trash_sidebar_entry_init (void);
+gboolean photo_get_develop_raw_photos_to_files (void);
+void photo_set_develop_raw_photos_to_files (gboolean value);
+void library_terminate (void);
+void library_trash_sidebar_entry_terminate (void);
+
+
+void library_init (GError** error) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 10 "/home/jens/Source/shotwell/src/library/Library.vala"
+ library_trash_sidebar_entry_init ();
+#line 11 "/home/jens/Source/shotwell/src/library/Library.vala"
+ _tmp0_ = photo_get_develop_raw_photos_to_files ();
+#line 11 "/home/jens/Source/shotwell/src/library/Library.vala"
+ _tmp1_ = _tmp0_;
+#line 11 "/home/jens/Source/shotwell/src/library/Library.vala"
+ photo_set_develop_raw_photos_to_files (TRUE);
+#line 36 "Library.c"
+}
+
+
+void library_terminate (void) {
+#line 15 "/home/jens/Source/shotwell/src/library/Library.vala"
+ library_trash_sidebar_entry_terminate ();
+#line 43 "Library.c"
+}
+
+
+
diff --git a/src/library/LibraryWindow.c b/src/library/LibraryWindow.c
new file mode 100644
index 0000000..9c5d335
--- /dev/null
+++ b/src/library/LibraryWindow.c
@@ -0,0 +1,11056 @@
+/* LibraryWindow.c generated by valac 0.32.1, the Vala compiler
+ * generated from LibraryWindow.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <gio/gio.h>
+#include <glib/gi18n-lib.h>
+#include <gphoto2/gphoto2-camera.h>
+#include <gphoto.h>
+#include <float.h>
+#include <math.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+typedef struct _PageWindowPrivate PageWindowPrivate;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+typedef struct _AppWindowPrivate AppWindowPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+typedef struct _LibraryWindowPrivate LibraryWindowPrivate;
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+
+#define LIBRARY_TYPE_BRANCH (library_branch_get_type ())
+#define LIBRARY_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_BRANCH, LibraryBranch))
+#define LIBRARY_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_BRANCH, LibraryBranchClass))
+#define LIBRARY_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_BRANCH))
+#define LIBRARY_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_BRANCH))
+#define LIBRARY_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_BRANCH, LibraryBranchClass))
+
+typedef struct _LibraryBranch LibraryBranch;
+typedef struct _LibraryBranchClass LibraryBranchClass;
+
+#define TAGS_TYPE_BRANCH (tags_branch_get_type ())
+#define TAGS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAGS_TYPE_BRANCH, TagsBranch))
+#define TAGS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAGS_TYPE_BRANCH, TagsBranchClass))
+#define TAGS_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAGS_TYPE_BRANCH))
+#define TAGS_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAGS_TYPE_BRANCH))
+#define TAGS_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAGS_TYPE_BRANCH, TagsBranchClass))
+
+typedef struct _TagsBranch TagsBranch;
+typedef struct _TagsBranchClass TagsBranchClass;
+
+#define FOLDERS_TYPE_BRANCH (folders_branch_get_type ())
+#define FOLDERS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLDERS_TYPE_BRANCH, FoldersBranch))
+#define FOLDERS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLDERS_TYPE_BRANCH, FoldersBranchClass))
+#define FOLDERS_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLDERS_TYPE_BRANCH))
+#define FOLDERS_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLDERS_TYPE_BRANCH))
+#define FOLDERS_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLDERS_TYPE_BRANCH, FoldersBranchClass))
+
+typedef struct _FoldersBranch FoldersBranch;
+typedef struct _FoldersBranchClass FoldersBranchClass;
+
+#define EVENTS_TYPE_BRANCH (events_branch_get_type ())
+#define EVENTS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_BRANCH, EventsBranch))
+#define EVENTS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_BRANCH, EventsBranchClass))
+#define EVENTS_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_BRANCH))
+#define EVENTS_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_BRANCH))
+#define EVENTS_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_BRANCH, EventsBranchClass))
+
+typedef struct _EventsBranch EventsBranch;
+typedef struct _EventsBranchClass EventsBranchClass;
+
+#define CAMERA_TYPE_BRANCH (camera_branch_get_type ())
+#define CAMERA_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAMERA_TYPE_BRANCH, CameraBranch))
+#define CAMERA_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CAMERA_TYPE_BRANCH, CameraBranchClass))
+#define CAMERA_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAMERA_TYPE_BRANCH))
+#define CAMERA_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CAMERA_TYPE_BRANCH))
+#define CAMERA_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CAMERA_TYPE_BRANCH, CameraBranchClass))
+
+typedef struct _CameraBranch CameraBranch;
+typedef struct _CameraBranchClass CameraBranchClass;
+
+#define SEARCHES_TYPE_BRANCH (searches_branch_get_type ())
+#define SEARCHES_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCHES_TYPE_BRANCH, SearchesBranch))
+#define SEARCHES_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCHES_TYPE_BRANCH, SearchesBranchClass))
+#define SEARCHES_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCHES_TYPE_BRANCH))
+#define SEARCHES_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCHES_TYPE_BRANCH))
+#define SEARCHES_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCHES_TYPE_BRANCH, SearchesBranchClass))
+
+typedef struct _SearchesBranch SearchesBranch;
+typedef struct _SearchesBranchClass SearchesBranchClass;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define TYPE_SINGLE_PHOTO_PAGE (single_photo_page_get_type ())
+#define SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPage))
+#define SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+#define IS_SINGLE_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_PHOTO_PAGE))
+#define IS_SINGLE_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_PHOTO_PAGE))
+#define SINGLE_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_PHOTO_PAGE, SinglePhotoPageClass))
+
+typedef struct _SinglePhotoPage SinglePhotoPage;
+typedef struct _SinglePhotoPageClass SinglePhotoPageClass;
+
+#define TYPE_EDITING_HOST_PAGE (editing_host_page_get_type ())
+#define EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPage))
+#define EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+#define IS_EDITING_HOST_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EDITING_HOST_PAGE))
+#define IS_EDITING_HOST_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EDITING_HOST_PAGE))
+#define EDITING_HOST_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EDITING_HOST_PAGE, EditingHostPageClass))
+
+typedef struct _EditingHostPage EditingHostPage;
+typedef struct _EditingHostPageClass EditingHostPageClass;
+
+#define TYPE_LIBRARY_PHOTO_PAGE (library_photo_page_get_type ())
+#define LIBRARY_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage))
+#define LIBRARY_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPageClass))
+#define IS_LIBRARY_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_PAGE))
+#define IS_LIBRARY_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_PAGE))
+#define LIBRARY_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPageClass))
+
+typedef struct _LibraryPhotoPage LibraryPhotoPage;
+typedef struct _LibraryPhotoPageClass LibraryPhotoPageClass;
+
+#define TYPE_SEARCH_FILTER_ACTIONS (search_filter_actions_get_type ())
+#define SEARCH_FILTER_ACTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActions))
+#define SEARCH_FILTER_ACTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActionsClass))
+#define IS_SEARCH_FILTER_ACTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_FILTER_ACTIONS))
+#define IS_SEARCH_FILTER_ACTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_FILTER_ACTIONS))
+#define SEARCH_FILTER_ACTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_FILTER_ACTIONS, SearchFilterActionsClass))
+
+typedef struct _SearchFilterActions SearchFilterActions;
+typedef struct _SearchFilterActionsClass SearchFilterActionsClass;
+
+#define TYPE_SEARCH_FILTER_TOOLBAR (search_filter_toolbar_get_type ())
+#define SEARCH_FILTER_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbar))
+#define SEARCH_FILTER_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbarClass))
+#define IS_SEARCH_FILTER_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_FILTER_TOOLBAR))
+#define IS_SEARCH_FILTER_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_FILTER_TOOLBAR))
+#define SEARCH_FILTER_TOOLBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_FILTER_TOOLBAR, SearchFilterToolbarClass))
+
+typedef struct _SearchFilterToolbar SearchFilterToolbar;
+typedef struct _SearchFilterToolbarClass SearchFilterToolbarClass;
+
+#define TYPE_PROPERTIES (properties_get_type ())
+#define PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROPERTIES, Properties))
+#define PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROPERTIES, PropertiesClass))
+#define IS_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROPERTIES))
+#define IS_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROPERTIES))
+#define PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROPERTIES, PropertiesClass))
+
+typedef struct _Properties Properties;
+typedef struct _PropertiesClass PropertiesClass;
+
+#define TYPE_BASIC_PROPERTIES (basic_properties_get_type ())
+#define BASIC_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BASIC_PROPERTIES, BasicProperties))
+#define BASIC_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BASIC_PROPERTIES, BasicPropertiesClass))
+#define IS_BASIC_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BASIC_PROPERTIES))
+#define IS_BASIC_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BASIC_PROPERTIES))
+#define BASIC_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BASIC_PROPERTIES, BasicPropertiesClass))
+
+typedef struct _BasicProperties BasicProperties;
+typedef struct _BasicPropertiesClass BasicPropertiesClass;
+
+#define TYPE_EXTENDED_PROPERTIES_WINDOW (extended_properties_window_get_type ())
+#define EXTENDED_PROPERTIES_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindow))
+#define EXTENDED_PROPERTIES_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindowClass))
+#define IS_EXTENDED_PROPERTIES_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EXTENDED_PROPERTIES_WINDOW))
+#define IS_EXTENDED_PROPERTIES_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EXTENDED_PROPERTIES_WINDOW))
+#define EXTENDED_PROPERTIES_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EXTENDED_PROPERTIES_WINDOW, ExtendedPropertiesWindowClass))
+
+typedef struct _ExtendedPropertiesWindow ExtendedPropertiesWindow;
+typedef struct _ExtendedPropertiesWindowClass ExtendedPropertiesWindowClass;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_METADATA_WRITER (metadata_writer_get_type ())
+#define METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_WRITER, MetadataWriter))
+#define METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_WRITER, MetadataWriterClass))
+#define IS_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_WRITER))
+#define IS_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_WRITER))
+#define METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_WRITER, MetadataWriterClass))
+
+typedef struct _MetadataWriter MetadataWriter;
+typedef struct _MetadataWriterClass MetadataWriterClass;
+
+#define TYPE_DIRECTORY_MONITOR (directory_monitor_get_type ())
+#define DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitor))
+#define DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+#define IS_DIRECTORY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECTORY_MONITOR))
+#define IS_DIRECTORY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECTORY_MONITOR))
+#define DIRECTORY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECTORY_MONITOR, DirectoryMonitorClass))
+
+typedef struct _DirectoryMonitor DirectoryMonitor;
+typedef struct _DirectoryMonitorClass DirectoryMonitorClass;
+
+#define TYPE_LIBRARY_MONITOR (library_monitor_get_type ())
+#define LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitor))
+#define LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+#define IS_LIBRARY_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR))
+#define IS_LIBRARY_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR))
+#define LIBRARY_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR, LibraryMonitorClass))
+
+typedef struct _LibraryMonitor LibraryMonitor;
+typedef struct _LibraryMonitorClass LibraryMonitorClass;
+
+#define TYPE_LIBRARY_MONITOR_POOL (library_monitor_pool_get_type ())
+#define LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPool))
+#define LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+#define IS_LIBRARY_MONITOR_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_MONITOR_POOL))
+#define IS_LIBRARY_MONITOR_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_MONITOR_POOL))
+#define LIBRARY_MONITOR_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_MONITOR_POOL, LibraryMonitorPoolClass))
+
+typedef struct _LibraryMonitorPool LibraryMonitorPool;
+typedef struct _LibraryMonitorPoolClass LibraryMonitorPoolClass;
+#define _library_monitor_pool_unref0(var) ((var == NULL) ? NULL : (var = (library_monitor_pool_unref (var), NULL)))
+
+#define TYPE_CAMERA_TABLE (camera_table_get_type ())
+#define CAMERA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CAMERA_TABLE, CameraTable))
+#define CAMERA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CAMERA_TABLE, CameraTableClass))
+#define IS_CAMERA_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CAMERA_TABLE))
+#define IS_CAMERA_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CAMERA_TABLE))
+#define CAMERA_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CAMERA_TABLE, CameraTableClass))
+
+typedef struct _CameraTable CameraTable;
+typedef struct _CameraTableClass CameraTableClass;
+
+#define TYPE_DISCOVERED_CAMERA (discovered_camera_get_type ())
+#define DISCOVERED_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DISCOVERED_CAMERA, DiscoveredCamera))
+#define DISCOVERED_CAMERA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DISCOVERED_CAMERA, DiscoveredCameraClass))
+#define IS_DISCOVERED_CAMERA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DISCOVERED_CAMERA))
+#define IS_DISCOVERED_CAMERA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DISCOVERED_CAMERA))
+#define DISCOVERED_CAMERA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DISCOVERED_CAMERA, DiscoveredCameraClass))
+
+typedef struct _DiscoveredCamera DiscoveredCamera;
+typedef struct _DiscoveredCameraClass DiscoveredCameraClass;
+#define _camera_table_unref0(var) ((var == NULL) ? NULL : (var = (camera_table_unref (var), NULL)))
+
+#define LIBRARY_WINDOW_TYPE_SIDEBAR_ROOT_POSITION (library_window_sidebar_root_position_get_type ())
+
+#define LIBRARY_WINDOW_TYPE_TARGET_TYPE (library_window_target_type_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _one_shot_scheduler_unref0(var) ((var == NULL) ? NULL : (var = (one_shot_scheduler_unref (var), NULL)))
+#define _search_filter_actions_unref0(var) ((var == NULL) ? NULL : (var = (search_filter_actions_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+
+#define LIBRARY_TYPE_PHOTOS_ENTRY (library_photos_entry_get_type ())
+#define LIBRARY_PHOTOS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntry))
+#define LIBRARY_PHOTOS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntryClass))
+#define LIBRARY_IS_PHOTOS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_PHOTOS_ENTRY))
+#define LIBRARY_IS_PHOTOS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_PHOTOS_ENTRY))
+#define LIBRARY_PHOTOS_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_PHOTOS_ENTRY, LibraryPhotosEntryClass))
+
+typedef struct _LibraryPhotosEntry LibraryPhotosEntry;
+typedef struct _LibraryPhotosEntryClass LibraryPhotosEntryClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TAGS_TYPE_SIDEBAR_ENTRY (tags_sidebar_entry_get_type ())
+#define TAGS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry))
+#define TAGS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntryClass))
+#define TAGS_IS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAGS_TYPE_SIDEBAR_ENTRY))
+#define TAGS_IS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAGS_TYPE_SIDEBAR_ENTRY))
+#define TAGS_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntryClass))
+
+typedef struct _TagsSidebarEntry TagsSidebarEntry;
+typedef struct _TagsSidebarEntryClass TagsSidebarEntryClass;
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define EVENTS_TYPE_EVENT_ENTRY (events_event_entry_get_type ())
+#define EVENTS_EVENT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_EVENT_ENTRY, EventsEventEntry))
+#define EVENTS_EVENT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_EVENT_ENTRY, EventsEventEntryClass))
+#define EVENTS_IS_EVENT_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_EVENT_ENTRY))
+#define EVENTS_IS_EVENT_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_EVENT_ENTRY))
+#define EVENTS_EVENT_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_EVENT_ENTRY, EventsEventEntryClass))
+
+typedef struct _EventsEventEntry EventsEventEntry;
+typedef struct _EventsEventEntryClass EventsEventEntryClass;
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+
+#define SEARCHES_TYPE_SIDEBAR_ENTRY (searches_sidebar_entry_get_type ())
+#define SEARCHES_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry))
+#define SEARCHES_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntryClass))
+#define SEARCHES_IS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCHES_TYPE_SIDEBAR_ENTRY))
+#define SEARCHES_IS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCHES_TYPE_SIDEBAR_ENTRY))
+#define SEARCHES_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntryClass))
+
+typedef struct _SearchesSidebarEntry SearchesSidebarEntry;
+typedef struct _SearchesSidebarEntryClass SearchesSidebarEntryClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_EVENTS_DIRECTORY_PAGE (events_directory_page_get_type ())
+#define EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPage))
+#define EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+#define IS_EVENTS_DIRECTORY_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENTS_DIRECTORY_PAGE))
+#define IS_EVENTS_DIRECTORY_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENTS_DIRECTORY_PAGE))
+#define EVENTS_DIRECTORY_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENTS_DIRECTORY_PAGE, EventsDirectoryPageClass))
+
+typedef struct _EventsDirectoryPage EventsDirectoryPage;
+typedef struct _EventsDirectoryPageClass EventsDirectoryPageClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_EVENT_PAGE (event_page_get_type ())
+#define EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_PAGE, EventPage))
+#define EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_PAGE, EventPageClass))
+#define IS_EVENT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_PAGE))
+#define IS_EVENT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_PAGE))
+#define EVENT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_PAGE, EventPageClass))
+
+typedef struct _EventPage EventPage;
+typedef struct _EventPageClass EventPageClass;
+
+#define LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE (library_window_fullscreen_photo_page_get_type ())
+#define LIBRARY_WINDOW_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, LibraryWindowFullscreenPhotoPage))
+#define LIBRARY_WINDOW_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, LibraryWindowFullscreenPhotoPageClass))
+#define LIBRARY_WINDOW_IS_FULLSCREEN_PHOTO_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE))
+#define LIBRARY_WINDOW_IS_FULLSCREEN_PHOTO_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE))
+#define LIBRARY_WINDOW_FULLSCREEN_PHOTO_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, LibraryWindowFullscreenPhotoPageClass))
+
+typedef struct _LibraryWindowFullscreenPhotoPage LibraryWindowFullscreenPhotoPage;
+typedef struct _LibraryWindowFullscreenPhotoPageClass LibraryWindowFullscreenPhotoPageClass;
+#define __g_slist_free__g_free0_0(var) ((var == NULL) ? NULL : (var = (_g_slist_free__g_free0_ (var), NULL)))
+
+#define DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG (data_imports_ui_data_imports_dialog_get_type ())
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialog))
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialogClass))
+#define DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG))
+#define DATA_IMPORTS_UI_IS_DATA_IMPORTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG))
+#define DATA_IMPORTS_UI_DATA_IMPORTS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DATA_IMPORTS_UI_TYPE_DATA_IMPORTS_DIALOG, DataImportsUIDataImportsDialogClass))
+
+typedef struct _DataImportsUIDataImportsDialog DataImportsUIDataImportsDialog;
+typedef struct _DataImportsUIDataImportsDialogClass DataImportsUIDataImportsDialogClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_SAVED_SEARCH_DIALOG (saved_search_dialog_get_type ())
+#define SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialog))
+#define SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+#define IS_SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DIALOG))
+#define IS_SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DIALOG))
+#define SAVED_SEARCH_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+
+typedef struct _SavedSearchDialog SavedSearchDialog;
+typedef struct _SavedSearchDialogClass SavedSearchDialogClass;
+#define _saved_search_dialog_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_dialog_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+
+#define LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY (library_hideable_page_entry_get_type ())
+#define LIBRARY_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+
+typedef struct _LibraryHideablePageEntry LibraryHideablePageEntry;
+typedef struct _LibraryHideablePageEntryClass LibraryHideablePageEntryClass;
+
+#define LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY (library_import_queue_sidebar_entry_get_type ())
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntry))
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntryClass))
+#define LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY))
+#define LIBRARY_IS_IMPORT_QUEUE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY))
+#define LIBRARY_IMPORT_QUEUE_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY, LibraryImportQueueSidebarEntryClass))
+
+typedef struct _LibraryImportQueueSidebarEntry LibraryImportQueueSidebarEntry;
+typedef struct _LibraryImportQueueSidebarEntryClass LibraryImportQueueSidebarEntryClass;
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+
+#define IMPORT_UI_TYPE_QUESTION_PARAMS (import_ui_question_params_get_type ())
+#define IMPORT_UI_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParams))
+#define IMPORT_UI_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+#define IMPORT_UI_IS_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_IS_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_QUESTION_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+
+typedef struct _ImportUIQuestionParams ImportUIQuestionParams;
+typedef struct _ImportUIQuestionParamsClass ImportUIQuestionParamsClass;
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+
+#define TYPE_FILE_IMPORT_JOB (file_import_job_get_type ())
+#define FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILE_IMPORT_JOB, FileImportJob))
+#define FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+#define IS_FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILE_IMPORT_JOB))
+#define IS_FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILE_IMPORT_JOB))
+#define FILE_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+
+typedef struct _FileImportJob FileImportJob;
+typedef struct _FileImportJobClass FileImportJobClass;
+#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+
+#define CAMERA_TYPE_SIDEBAR_ENTRY (camera_sidebar_entry_get_type ())
+#define CAMERA_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntry))
+#define CAMERA_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntryClass))
+#define CAMERA_IS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAMERA_TYPE_SIDEBAR_ENTRY))
+#define CAMERA_IS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CAMERA_TYPE_SIDEBAR_ENTRY))
+#define CAMERA_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CAMERA_TYPE_SIDEBAR_ENTRY, CameraSidebarEntryClass))
+
+typedef struct _CameraSidebarEntry CameraSidebarEntry;
+typedef struct _CameraSidebarEntryClass CameraSidebarEntryClass;
+
+#define TYPE_IMPORT_PAGE (import_page_get_type ())
+#define IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_PAGE, ImportPage))
+#define IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_PAGE, ImportPageClass))
+#define IS_IMPORT_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_PAGE))
+#define IS_IMPORT_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_PAGE))
+#define IMPORT_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_PAGE, ImportPageClass))
+
+typedef struct _ImportPage ImportPage;
+typedef struct _ImportPageClass ImportPageClass;
+typedef struct _DiscoveredCameraPrivate DiscoveredCameraPrivate;
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+
+#define TYPE_DISABLED_VIEW_FILTER (disabled_view_filter_get_type ())
+#define DISABLED_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DISABLED_VIEW_FILTER, DisabledViewFilter))
+#define DISABLED_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DISABLED_VIEW_FILTER, DisabledViewFilterClass))
+#define IS_DISABLED_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DISABLED_VIEW_FILTER))
+#define IS_DISABLED_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DISABLED_VIEW_FILTER))
+#define DISABLED_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DISABLED_VIEW_FILTER, DisabledViewFilterClass))
+
+typedef struct _DisabledViewFilter DisabledViewFilter;
+typedef struct _DisabledViewFilterClass DisabledViewFilterClass;
+
+#define LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY (library_last_import_sidebar_entry_get_type ())
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntry))
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntryClass))
+#define LIBRARY_IS_LAST_IMPORT_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY))
+#define LIBRARY_IS_LAST_IMPORT_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY))
+#define LIBRARY_LAST_IMPORT_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_LAST_IMPORT_SIDEBAR_ENTRY, LibraryLastImportSidebarEntryClass))
+
+typedef struct _LibraryLastImportSidebarEntry LibraryLastImportSidebarEntry;
+typedef struct _LibraryLastImportSidebarEntryClass LibraryLastImportSidebarEntryClass;
+
+#define EVENTS_TYPE_DIRECTORY_ENTRY (events_directory_entry_get_type ())
+#define EVENTS_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntry))
+#define EVENTS_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntryClass))
+#define EVENTS_IS_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_DIRECTORY_ENTRY))
+#define EVENTS_IS_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_DIRECTORY_ENTRY))
+#define EVENTS_DIRECTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_DIRECTORY_ENTRY, EventsDirectoryEntryClass))
+
+typedef struct _EventsDirectoryEntry EventsDirectoryEntry;
+typedef struct _EventsDirectoryEntryClass EventsDirectoryEntryClass;
+
+#define EVENTS_TYPE_MASTER_DIRECTORY_ENTRY (events_master_directory_entry_get_type ())
+#define EVENTS_MASTER_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntry))
+#define EVENTS_MASTER_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntryClass))
+#define EVENTS_IS_MASTER_DIRECTORY_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY))
+#define EVENTS_IS_MASTER_DIRECTORY_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY))
+#define EVENTS_MASTER_DIRECTORY_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EVENTS_TYPE_MASTER_DIRECTORY_ENTRY, EventsMasterDirectoryEntryClass))
+
+typedef struct _EventsMasterDirectoryEntry EventsMasterDirectoryEntry;
+typedef struct _EventsMasterDirectoryEntryClass EventsMasterDirectoryEntryClass;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+typedef struct _SinglePhotoPagePrivate SinglePhotoPagePrivate;
+
+#define TYPE_ZOOM_BUFFER (zoom_buffer_get_type ())
+#define ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ZOOM_BUFFER, ZoomBuffer))
+#define ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+#define IS_ZOOM_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ZOOM_BUFFER))
+#define IS_ZOOM_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ZOOM_BUFFER))
+#define ZOOM_BUFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ZOOM_BUFFER, ZoomBufferClass))
+
+typedef struct _ZoomBuffer ZoomBuffer;
+typedef struct _ZoomBufferClass ZoomBufferClass;
+
+#define SINGLE_PHOTO_PAGE_TYPE_UPDATE_REASON (single_photo_page_update_reason_get_type ())
+typedef struct _EditingHostPagePrivate EditingHostPagePrivate;
+typedef struct _LibraryPhotoPagePrivate LibraryPhotoPagePrivate;
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _LibraryWindowFullscreenPhotoPagePrivate LibraryWindowFullscreenPhotoPagePrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _PageWindow {
+ GtkWindow parent_instance;
+ PageWindowPrivate * priv;
+ GtkUIManager* ui;
+};
+
+struct _PageWindowClass {
+ GtkWindowClass parent_class;
+ void (*switched_pages) (PageWindow* self, Page* old_page, Page* new_page);
+ void (*set_current_page) (PageWindow* self, Page* page);
+ void (*clear_current_page) (PageWindow* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _AppWindow {
+ PageWindow parent_instance;
+ AppWindowPrivate * priv;
+ GtkActionGroup** common_action_groups;
+ gint common_action_groups_length1;
+ gboolean maximized;
+ Dimensions dimensions;
+ gint pos_x;
+ gint pos_y;
+};
+
+struct _AppWindowClass {
+ PageWindowClass parent_class;
+ void (*on_fullscreen) (AppWindow* self);
+ gchar* (*get_app_role) (AppWindow* self);
+ void (*on_quit) (AppWindow* self);
+ GtkActionGroup** (*create_common_action_groups) (AppWindow* self, int* result_length1);
+ void (*replace_common_placeholders) (AppWindow* self, GtkUIManager* ui);
+ void (*update_common_action_availability) (AppWindow* self, Page* old_page, Page* new_page);
+ void (*update_common_actions) (AppWindow* self, Page* page, gint selected_count, gint count);
+};
+
+struct _LibraryWindow {
+ AppWindow parent_instance;
+ LibraryWindowPrivate * priv;
+};
+
+struct _LibraryWindowClass {
+ AppWindowClass parent_class;
+};
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _LibraryWindowPrivate {
+ gchar* import_dir;
+ GtkPaned* sidebar_paned;
+ GtkPaned* client_paned;
+ GtkFrame* bottom_frame;
+ GtkActionGroup* common_action_group;
+ OneShotScheduler* properties_scheduler;
+ gboolean notify_library_is_home_dir;
+ SidebarTree* sidebar_tree;
+ LibraryBranch* library_branch;
+ TagsBranch* tags_branch;
+ FoldersBranch* folders_branch;
+ EventsBranch* events_branch;
+ CameraBranch* camera_branch;
+ SearchesBranch* saved_search_branch;
+ gboolean page_switching_enabled;
+ GeeHashMap* page_map;
+ LibraryPhotoPage* photo_page;
+ gboolean is_search_toolbar_visible;
+ SearchFilterActions* search_actions;
+ SearchFilterToolbar* search_toolbar;
+ GtkBox* top_section;
+ GtkFrame* background_progress_frame;
+ GtkProgressBar* background_progress_bar;
+ gboolean background_progress_displayed;
+ BasicProperties* basic_properties;
+ ExtendedPropertiesWindow* extended_properties;
+ GtkStack* stack;
+ GtkBox* layout;
+ GtkBox* right_vbox;
+ gint current_progress_priority;
+ guint background_progress_pulse_id;
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+typedef enum {
+ LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_LIBRARY,
+ LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_CAMERAS,
+ LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_SAVED_SEARCH,
+ LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_EVENTS,
+ LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_FOLDERS,
+ LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_TAGS
+} LibraryWindowSidebarRootPosition;
+
+typedef enum {
+ LIBRARY_WINDOW_TARGET_TYPE_URI_LIST,
+ LIBRARY_WINDOW_TARGET_TYPE_MEDIA_LIST,
+ LIBRARY_WINDOW_TARGET_TYPE_TAG_PATH
+} LibraryWindowTargetType;
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+typedef void (*SidebarTreeExternalDropHandler) (GdkDragContext* context, SidebarEntry* entry, GtkSelectionData* data, guint info, guint time, void* user_data);
+typedef void (*OneShotCallback) (void* user_data);
+typedef void (*BatchImportImportReporter) (ImportManifest* manifest, BatchImportRoll* import_roll, void* user_data);
+struct _DiscoveredCamera {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DiscoveredCameraPrivate * priv;
+ Camera* gcamera;
+ gchar* uri;
+ gchar* display_name;
+ gchar* icon;
+};
+
+struct _DiscoveredCameraClass {
+ GTypeClass parent_class;
+ void (*finalize) (DiscoveredCamera *self);
+};
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_NEW_PIXBUF,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_QUALITY_IMPROVEMENT,
+ SINGLE_PHOTO_PAGE_UPDATE_REASON_RESIZED_CANVAS
+} SinglePhotoPageUpdateReason;
+
+struct _SinglePhotoPage {
+ Page parent_instance;
+ SinglePhotoPagePrivate * priv;
+ GtkDrawingArea* canvas;
+ GtkViewport* viewport;
+};
+
+struct _SinglePhotoPageClass {
+ PageClass parent_class;
+ gboolean (*is_zoom_supported) (SinglePhotoPage* self);
+ void (*cancel_zoom) (SinglePhotoPage* self);
+ void (*save_zoom_state) (SinglePhotoPage* self);
+ void (*restore_zoom_state) (SinglePhotoPage* self);
+ ZoomBuffer* (*get_zoom_buffer) (SinglePhotoPage* self);
+ void (*new_surface) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*updated_pixbuf) (SinglePhotoPage* self, GdkPixbuf* pixbuf, SinglePhotoPageUpdateReason reason, Dimensions* old_dim);
+ void (*paint) (SinglePhotoPage* self, cairo_t* ctx, Dimensions* ctx_dim);
+ void (*on_previous_photo) (SinglePhotoPage* self);
+ void (*on_next_photo) (SinglePhotoPage* self);
+};
+
+struct _EditingHostPage {
+ SinglePhotoPage parent_instance;
+ EditingHostPagePrivate * priv;
+};
+
+struct _EditingHostPageClass {
+ SinglePhotoPageClass parent_class;
+ gboolean (*on_zoom_slider_key_press) (EditingHostPage* self, GdkEventKey* event);
+ void (*on_increase_size) (EditingHostPage* self);
+ void (*on_decrease_size) (EditingHostPage* self);
+ void (*photo_changing) (EditingHostPage* self, Photo* new_photo);
+ DataView* (*create_photo_view) (EditingHostPage* self, DataSource* source);
+ void (*update_ui) (EditingHostPage* self, gboolean missing);
+ void (*notify_photo_backing_missing) (EditingHostPage* self, Photo* photo, gboolean missing);
+ gboolean (*confirm_replace_photo) (EditingHostPage* self, Photo* old_photo, Photo* new_photo);
+ gboolean (*on_double_click) (EditingHostPage* self, GdkEventButton* event);
+ GdkPixbuf* (*get_bottom_left_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_top_left_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (EditingHostPage* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (EditingHostPage* self, gint scale);
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _LibraryPhotoPage {
+ EditingHostPage parent_instance;
+ LibraryPhotoPagePrivate * priv;
+};
+
+struct _LibraryPhotoPageClass {
+ EditingHostPageClass parent_class;
+ void (*developer_changed) (LibraryPhotoPage* self, RawDeveloper rd);
+};
+
+struct _LibraryWindowFullscreenPhotoPage {
+ LibraryPhotoPage parent_instance;
+ LibraryWindowFullscreenPhotoPagePrivate * priv;
+};
+
+struct _LibraryWindowFullscreenPhotoPageClass {
+ LibraryPhotoPageClass parent_class;
+};
+
+struct _LibraryWindowFullscreenPhotoPagePrivate {
+ CollectionPage* collection;
+ Photo* start;
+ ViewCollection* view;
+};
+
+
+static gpointer library_window_parent_class = NULL;
+static GeeHashSet* library_window_initial_camera_uris;
+static GeeHashSet* library_window_initial_camera_uris = NULL;
+extern AppWindow* app_window_instance;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+static gpointer library_window_fullscreen_photo_page_parent_class = NULL;
+
+GType page_window_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType library_window_get_type (void) G_GNUC_CONST;
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType library_branch_get_type (void) G_GNUC_CONST;
+GType tags_branch_get_type (void) G_GNUC_CONST;
+GType folders_branch_get_type (void) G_GNUC_CONST;
+GType events_branch_get_type (void) G_GNUC_CONST;
+GType camera_branch_get_type (void) G_GNUC_CONST;
+GType searches_branch_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType single_photo_page_get_type (void) G_GNUC_CONST;
+GType editing_host_page_get_type (void) G_GNUC_CONST;
+GType library_photo_page_get_type (void) G_GNUC_CONST;
+gpointer search_filter_actions_ref (gpointer instance);
+void search_filter_actions_unref (gpointer instance);
+GParamSpec* param_spec_search_filter_actions (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_search_filter_actions (GValue* value, gpointer v_object);
+void value_take_search_filter_actions (GValue* value, gpointer v_object);
+gpointer value_get_search_filter_actions (const GValue* value);
+GType search_filter_actions_get_type (void) G_GNUC_CONST;
+GType search_filter_toolbar_get_type (void) G_GNUC_CONST;
+GType properties_get_type (void) G_GNUC_CONST;
+GType basic_properties_get_type (void) G_GNUC_CONST;
+GType extended_properties_window_get_type (void) G_GNUC_CONST;
+#define LIBRARY_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_LIBRARY_WINDOW, LibraryWindowPrivate))
+enum {
+ LIBRARY_WINDOW_DUMMY_PROPERTY
+};
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+static void library_window_on_page_created (LibraryWindow* self, SidebarPageRepresentative* entry, Page* page);
+static void _library_window_on_page_created_sidebar_tree_page_created (SidebarTree* _sender, SidebarPageRepresentative* entry, Page* page, gpointer self);
+static void library_window_on_destroying_page (LibraryWindow* self, SidebarPageRepresentative* entry, Page* page);
+static void _library_window_on_destroying_page_sidebar_tree_destroying_page (SidebarTree* _sender, SidebarPageRepresentative* entry, Page* page, gpointer self);
+static void library_window_on_sidebar_entry_selected (LibraryWindow* self, SidebarSelectableEntry* selectable);
+static void _library_window_on_sidebar_entry_selected_sidebar_tree_entry_selected (SidebarTree* _sender, SidebarSelectableEntry* selectable, gpointer self);
+static void library_window_on_sidebar_selected_entry_removed (LibraryWindow* self, SidebarSelectableEntry* selectable);
+static void _library_window_on_sidebar_selected_entry_removed_sidebar_tree_selected_entry_removed (SidebarTree* _sender, SidebarSelectableEntry* removed, gpointer self);
+static void library_window_unsubscribe_from_basic_information (LibraryWindow* self, Page* page);
+Page* page_window_get_current_page (PageWindow* self);
+static void library_window_hide_extended_properties (LibraryWindow* self);
+static void _library_window_hide_extended_properties_gtk_widget_hide (GtkWidget* _sender, gpointer self);
+static void library_window_show_extended_properties (LibraryWindow* self);
+static void _library_window_show_extended_properties_gtk_widget_show (GtkWidget* _sender, gpointer self);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+static void library_window_on_trashcan_contents_altered (LibraryWindow* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+static void _library_window_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+static void library_window_on_media_altered (LibraryWindow* self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void _library_window_on_media_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+GType metadata_writer_get_type (void) G_GNUC_CONST;
+MetadataWriter* metadata_writer_get_instance (void);
+static void library_window_on_metadata_writer_progress (LibraryWindow* self, guint completed, guint total);
+static void _library_window_on_metadata_writer_progress_metadata_writer_progress (MetadataWriter* _sender, guint completed, guint total, gpointer self);
+GType directory_monitor_get_type (void) G_GNUC_CONST;
+GType library_monitor_get_type (void) G_GNUC_CONST;
+gpointer library_monitor_pool_ref (gpointer instance);
+void library_monitor_pool_unref (gpointer instance);
+GParamSpec* param_spec_library_monitor_pool (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_library_monitor_pool (GValue* value, gpointer v_object);
+void value_take_library_monitor_pool (GValue* value, gpointer v_object);
+gpointer value_get_library_monitor_pool (const GValue* value);
+GType library_monitor_pool_get_type (void) G_GNUC_CONST;
+LibraryMonitorPool* library_monitor_pool_get_instance (void);
+LibraryMonitor* library_monitor_pool_get_monitor (LibraryMonitorPool* self);
+static void library_window_on_library_monitor_destroyed (LibraryWindow* self, LibraryMonitor* monitor);
+static void library_window_on_library_monitor_installed (LibraryWindow* self, LibraryMonitor* monitor);
+static void _library_window_on_library_monitor_installed_library_monitor_pool_monitor_installed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self);
+static void _library_window_on_library_monitor_destroyed_library_monitor_pool_monitor_destroyed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self);
+gpointer camera_table_ref (gpointer instance);
+void camera_table_unref (gpointer instance);
+GParamSpec* param_spec_camera_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_camera_table (GValue* value, gpointer v_object);
+void value_take_camera_table (GValue* value, gpointer v_object);
+gpointer value_get_camera_table (const GValue* value);
+GType camera_table_get_type (void) G_GNUC_CONST;
+CameraTable* camera_table_get_instance (void);
+gpointer discovered_camera_ref (gpointer instance);
+void discovered_camera_unref (gpointer instance);
+GParamSpec* param_spec_discovered_camera (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_discovered_camera (GValue* value, gpointer v_object);
+void value_take_discovered_camera (GValue* value, gpointer v_object);
+gpointer value_get_discovered_camera (const GValue* value);
+GType discovered_camera_get_type (void) G_GNUC_CONST;
+static void library_window_on_camera_added (LibraryWindow* self, DiscoveredCamera* camera);
+static void _library_window_on_camera_added_camera_table_camera_added (CameraTable* _sender, DiscoveredCamera* camera, gpointer self);
+static GType library_window_sidebar_root_position_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType library_window_target_type_get_type (void) G_GNUC_CONST;
+LibraryBranch* library_branch_new (void);
+LibraryBranch* library_branch_construct (GType object_type);
+TagsBranch* tags_branch_new (void);
+TagsBranch* tags_branch_construct (GType object_type);
+FoldersBranch* folders_branch_new (void);
+FoldersBranch* folders_branch_construct (GType object_type);
+EventsBranch* events_branch_new (void);
+EventsBranch* events_branch_construct (GType object_type);
+CameraBranch* camera_branch_new (void);
+CameraBranch* camera_branch_construct (GType object_type);
+SearchesBranch* searches_branch_new (void);
+SearchesBranch* searches_branch_construct (GType object_type);
+SearchFilterActions* search_filter_actions_new (void);
+SearchFilterActions* search_filter_actions_construct (GType object_type);
+BasicProperties* basic_properties_new (void);
+BasicProperties* basic_properties_construct (GType object_type);
+#define LIBRARY_WINDOW_SIDEBAR_MIN_WIDTH 120
+#define LIBRARY_WINDOW_SORT_EVENTS_ORDER_ASCENDING 0
+#define LIBRARY_WINDOW_SORT_EVENTS_ORDER_DESCENDING 1
+#define LIBRARY_WINDOW_BACKGROUND_PROGRESS_PULSE_MSEC 250
+#define LIBRARY_WINDOW_MIN_PROGRESS_BAR_FILES 20
+#define LIBRARY_WINDOW_STARTUP_SCAN_PROGRESS_PRIORITY 35
+#define LIBRARY_WINDOW_REALTIME_UPDATE_PROGRESS_PRIORITY 40
+#define LIBRARY_WINDOW_REALTIME_IMPORT_PROGRESS_PRIORITY 50
+#define LIBRARY_WINDOW_METADATA_WRITER_PROGRESS_PRIORITY 30
+#define LIBRARY_WINDOW_TAG_PATH_MIME_TYPE "shotwell/tag-path"
+#define LIBRARY_WINDOW_MEDIA_LIST_MIME_TYPE "shotwell/media-id-atom"
+LibraryWindow* library_window_new (ProgressMonitor progress_monitor, void* progress_monitor_target);
+LibraryWindow* library_window_construct (GType object_type, ProgressMonitor progress_monitor, void* progress_monitor_target);
+AppWindow* app_window_construct (GType object_type);
+static void library_window_external_drop_handler (LibraryWindow* self, GdkDragContext* context, SidebarEntry* entry, GtkSelectionData* data, guint info, guint time);
+static void _library_window_external_drop_handler_sidebar_tree_external_drop_handler (GdkDragContext* context, SidebarEntry* entry, GtkSelectionData* data, guint info, guint time, gpointer self);
+SidebarTree* sidebar_tree_new (GtkTargetEntry* target_entries, int target_entries_length1, GdkDragAction actions, SidebarTreeExternalDropHandler drop_handler, void* drop_handler_target);
+SidebarTree* sidebar_tree_construct (GType object_type, GtkTargetEntry* target_entries, int target_entries_length1, GdkDragAction actions, SidebarTreeExternalDropHandler drop_handler, void* drop_handler_target);
+void sidebar_tree_graft (SidebarTree* self, SidebarBranch* branch, gint position);
+ExtendedPropertiesWindow* extended_properties_window_new (GtkWindow* owner);
+ExtendedPropertiesWindow* extended_properties_window_construct (GType object_type, GtkWindow* owner);
+static void library_window_on_update_properties_now (LibraryWindow* self);
+static void _library_window_on_update_properties_now_one_shot_callback (gpointer self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+SearchFilterToolbar* search_filter_toolbar_new (SearchFilterActions* actions);
+SearchFilterToolbar* search_filter_toolbar_construct (GType object_type, SearchFilterActions* actions);
+GFile* resources_get_ui (const gchar* filename);
+static void library_window_create_layout (LibraryWindow* self, Page* start_page);
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType library_photos_entry_get_type (void) G_GNUC_CONST;
+LibraryPhotosEntry* library_branch_get_photos_entry (LibraryBranch* self);
+Page* sidebar_page_representative_get_page (SidebarPageRepresentative* self);
+static void library_window_load_configuration (LibraryWindow* self);
+GFile* directory_monitor_get_root (DirectoryMonitor* self);
+static void library_window_on_library_monitor_discovery_started (LibraryWindow* self);
+static void _library_window_on_library_monitor_discovery_started_directory_monitor_discovery_started (DirectoryMonitor* _sender, gpointer self);
+static void library_window_on_library_monitor_discovery_completed (LibraryWindow* self);
+static void _library_window_on_library_monitor_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self);
+static void _library_window_on_library_monitor_discovery_completed_directory_monitor_closed (DirectoryMonitor* _sender, gpointer self);
+static void library_window_on_library_monitor_auto_update_progress (LibraryWindow* self, gint completed_files, gint total_files);
+static void _library_window_on_library_monitor_auto_update_progress_library_monitor_auto_update_progress (LibraryMonitor* _sender, gint completed_files, gint total_files, gpointer self);
+static void library_window_on_library_monitor_auto_import_preparing (LibraryWindow* self);
+static void _library_window_on_library_monitor_auto_import_preparing_library_monitor_auto_import_preparing (LibraryMonitor* _sender, gpointer self);
+static void library_window_on_library_monitor_auto_import_progress (LibraryWindow* self, guint64 completed_bytes, guint64 total_bytes);
+static void _library_window_on_library_monitor_auto_import_progress_library_monitor_auto_import_progress (LibraryMonitor* _sender, guint64 completed_bytes, guint64 total_bytes, gpointer self);
+static GtkActionEntry* library_window_create_common_actions (LibraryWindow* self, int* result_length1);
+#define RESOURCES_IMPORT "shotwell-import"
+#define TRANSLATABLE "translatable"
+static void library_window_on_file_import (LibraryWindow* self);
+static void _library_window_on_file_import_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add61 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_window_on_external_library_import (LibraryWindow* self);
+static void _library_window_on_external_library_import_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add62 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add63 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_PREFERENCES_LABEL _ ("_Preferences")
+static void library_window_on_preferences (LibraryWindow* self);
+static void _library_window_on_preferences_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_PREFERENCES_MENU _ ("_Preferences")
+static void _vala_array_add64 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_window_on_empty_trash (LibraryWindow* self);
+static void _library_window_on_empty_trash_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add65 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_window_on_jump_to_event (LibraryWindow* self);
+static void _library_window_on_jump_to_event_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add66 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_window_on_find (LibraryWindow* self);
+static void _library_window_on_find_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add67 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_FILTER_PHOTOS_MENU _ ("_Filter Photos")
+static void _vala_array_add68 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void library_window_on_new_search (LibraryWindow* self);
+static void _library_window_on_new_search_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add69 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add70 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add71 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add72 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add73 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add74 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add75 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add76 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void _vala_array_add77 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static GtkToggleActionEntry* library_window_create_common_toggle_actions (LibraryWindow* self, int* result_length1);
+static void library_window_on_display_basic_properties (LibraryWindow* self, GtkAction* action);
+static void _library_window_on_display_basic_properties_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add78 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void library_window_on_display_extended_properties (LibraryWindow* self, GtkAction* action);
+static void _library_window_on_display_extended_properties_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add79 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void library_window_on_display_searchbar (LibraryWindow* self, GtkAction* action);
+static void _library_window_on_display_searchbar_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add80 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void library_window_on_display_sidebar (LibraryWindow* self, GtkAction* action);
+static void _library_window_on_display_sidebar_gtk_action_callback (GtkAction* action, gpointer self);
+static gboolean library_window_is_sidebar_visible (LibraryWindow* self);
+static void _vala_array_add81 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void library_window_on_display_toolbar (LibraryWindow* self, GtkAction* action);
+static void _library_window_on_display_toolbar_gtk_action_callback (GtkAction* action, gpointer self);
+static gboolean library_window_is_toolbar_visible (LibraryWindow* self);
+static void _vala_array_add82 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value);
+static void library_window_add_common_radio_actions (LibraryWindow* self, GtkActionGroup* group);
+#define RESOURCES_SORT_ASCENDING_LABEL _ ("Sort _Ascending")
+static void _vala_array_add83 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+#define RESOURCES_SORT_DESCENDING_LABEL _ ("Sort _Descending")
+static void _vala_array_add84 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value);
+static void library_window_on_events_sort_changed (LibraryWindow* self, GtkAction* action, GtkAction* c);
+static void _library_window_on_events_sort_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self);
+static GtkActionGroup** library_window_real_create_common_action_groups (AppWindow* base, int* result_length1);
+GtkActionGroup** app_window_create_common_action_groups (AppWindow* self, int* result_length1);
+#define RESOURCES_FIND_LABEL _ ("Find")
+static void _vala_array_add85 (GtkActionGroup*** array, int* length, int* size, GtkActionGroup* value);
+GtkActionGroup* search_filter_actions_get_action_group (SearchFilterActions* self);
+static void _vala_array_add86 (GtkActionGroup*** array, int* length, int* size, GtkActionGroup* value);
+static void library_window_real_replace_common_placeholders (AppWindow* base, GtkUIManager* ui);
+void app_window_replace_common_placeholders (AppWindow* self, GtkUIManager* ui);
+static void library_window_real_switched_pages (PageWindow* base, Page* old_page, Page* new_page);
+void page_window_switched_pages (PageWindow* self, Page* old_page, Page* new_page);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+static void library_window_on_view_filter_installed (LibraryWindow* self, ViewFilter* filter);
+static void _library_window_on_view_filter_installed_view_collection_view_filter_installed (ViewCollection* _sender, ViewFilter* filer, gpointer self);
+static void library_window_on_view_filter_removed (LibraryWindow* self, ViewFilter* filter);
+static void _library_window_on_view_filter_removed_view_collection_view_filter_removed (ViewCollection* _sender, ViewFilter* filer, gpointer self);
+void search_filter_actions_monitor_page_contents (SearchFilterActions* self, Page* old_page, Page* new_page);
+static void library_window_on_view_filter_refreshed (LibraryWindow* self);
+static void _library_window_on_view_filter_refreshed_view_filter_refresh (ViewFilter* _sender, gpointer self);
+gboolean view_collection_are_items_filtered_out (ViewCollection* self);
+GtkAction* app_window_get_common_action (AppWindow* self, const gchar* name);
+static void library_window_real_show_all (GtkWidget* base);
+GtkAction* page_get_common_action (Page* self, const gchar* name, gboolean log_warning);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+static void library_window_init_view_filter (LibraryWindow* self, CheckerboardPage* page);
+static void library_window_toggle_search_bar (LibraryWindow* self, gboolean show, CheckerboardPage* page);
+static gboolean library_window_should_show_search_bar (LibraryWindow* self);
+static void library_window_set_sidebar_visible (LibraryWindow* self, gboolean visible);
+LibraryWindow* library_window_get_app (void);
+gboolean library_window_is_mount_uri_supported (const gchar* uri);
+static gchar* library_window_real_get_app_role (AppWindow* base);
+#define RESOURCES_APP_LIBRARY_ROLE _ ("Photo Manager")
+GType tag_get_type (void) G_GNUC_CONST;
+void library_window_rename_tag_in_sidebar (LibraryWindow* self, Tag* tag);
+GType tags_sidebar_entry_get_type (void) G_GNUC_CONST;
+TagsSidebarEntry* tags_branch_get_entry_for_tag (TagsBranch* self, Tag* tag);
+gboolean sidebar_tree_rename_entry_in_place (SidebarTree* self, SidebarEntry* entry);
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+void library_window_rename_event_in_sidebar (LibraryWindow* self, Event* event);
+GType events_event_entry_get_type (void) G_GNUC_CONST;
+EventsEventEntry* events_branch_get_entry_for_event (EventsBranch* self, Event* event);
+GType saved_search_get_type (void) G_GNUC_CONST;
+void library_window_rename_search_in_sidebar (LibraryWindow* self, SavedSearch* search);
+GType searches_sidebar_entry_get_type (void) G_GNUC_CONST;
+SearchesSidebarEntry* searches_branch_get_entry_for_saved_search (SearchesBranch* self, SavedSearch* search);
+static void library_window_real_on_quit (AppWindow* base);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_set_library_window_state (ConfigurationFacade* self, gboolean maximize, Dimensions* dimensions);
+void configuration_facade_set_sidebar_position (ConfigurationFacade* self, gint position);
+void app_window_on_quit (AppWindow* self);
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+static Photo* library_window_get_start_fullscreen_photo (LibraryWindow* self, CollectionPage* page);
+gint view_collection_get_selected_count (ViewCollection* self);
+GeeList* view_collection_get_selected_sources_of_type (ViewCollection* self, GType t);
+GType library_photo_get_type (void) G_GNUC_CONST;
+GeeList* view_collection_get_sources_of_type (ViewCollection* self, GType t);
+static gboolean library_window_get_fullscreen_photo (LibraryWindow* self, Page* page, CollectionPage** collection, Photo** start, ViewCollection** view_collection);
+GType events_directory_page_get_type (void) G_GNUC_CONST;
+gint data_collection_get_count (DataCollection* self);
+DataObject* data_collection_get_at (DataCollection* self, gint index);
+GType data_view_get_type (void) G_GNUC_CONST;
+DataSource* data_view_get_source (DataView* self);
+GType event_page_get_type (void) G_GNUC_CONST;
+CollectionPage* library_photo_page_get_controller_page (LibraryPhotoPage* self);
+gboolean editing_host_page_has_photo (EditingHostPage* self);
+Photo* editing_host_page_get_photo (EditingHostPage* self);
+static void library_window_real_on_fullscreen (AppWindow* base);
+static GType library_window_fullscreen_photo_page_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static LibraryWindowFullscreenPhotoPage* library_window_fullscreen_photo_page_new (CollectionPage* collection, Photo* start, ViewCollection* view);
+static LibraryWindowFullscreenPhotoPage* library_window_fullscreen_photo_page_construct (GType object_type, CollectionPage* collection, Photo* start, ViewCollection* view);
+void app_window_go_fullscreen (AppWindow* self, Page* page);
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+#define RESOURCES_OK_LABEL _ ("_OK")
+gboolean app_dirs_is_in_import_dir (GFile* file);
+GtkResponseType copy_files_dialog (void);
+static void library_window_dispatch_import_jobs (LibraryWindow* self, GSList* uris, const gchar* job_name, gboolean copy_to_library);
+static void _g_free0_ (gpointer var);
+static void _g_slist_free__g_free0_ (GSList* self);
+GType data_imports_ui_data_imports_dialog_get_type (void) G_GNUC_CONST;
+DataImportsUIDataImportsDialog* data_imports_ui_data_imports_dialog_get_or_create_instance (void);
+static void library_window_real_update_common_action_availability (AppWindow* base, Page* old_page, Page* new_page);
+void app_window_update_common_action_availability (AppWindow* self, Page* old_page, Page* new_page);
+void app_window_set_common_action_sensitive (AppWindow* self, const gchar* name, gboolean sensitive);
+static void library_window_real_update_common_actions (AppWindow* base, Page* page, gint selected_count, gint count);
+static gboolean library_window_can_empty_trash (LibraryWindow* self);
+void app_window_set_common_action_visible (AppWindow* self, const gchar* name, gboolean visible);
+static gboolean library_window_can_jump_to_event (LibraryWindow* self);
+void app_window_update_common_actions (AppWindow* self, Page* page, gint selected_count, gint count);
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+gint media_source_collection_get_trashcan_count (MediaSourceCollection* self);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+GeeCollection* media_source_collection_get_trashcan_contents (MediaSourceCollection* self);
+void remove_from_app (GeeCollection* sources, const gchar* dialog_title, const gchar* progress_dialog_text);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+void command_manager_reset (CommandManager* self);
+SavedSearchDialog* saved_search_dialog_new (void);
+SavedSearchDialog* saved_search_dialog_construct (GType object_type);
+gpointer saved_search_dialog_ref (gpointer instance);
+void saved_search_dialog_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_dialog (GValue* value, gpointer v_object);
+void value_take_saved_search_dialog (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_dialog (const GValue* value);
+GType saved_search_dialog_get_type (void) G_GNUC_CONST;
+void saved_search_dialog_show (SavedSearchDialog* self);
+DataSource* view_collection_get_selected_source_at (ViewCollection* self, gint index);
+Event* media_source_get_event (MediaSource* self);
+void library_window_switch_to_event (LibraryWindow* self, Event* event);
+void search_filter_toolbar_take_focus (SearchFilterToolbar* self);
+static void library_window_on_clear_search (LibraryWindow* self);
+void search_filter_actions_reset (SearchFilterActions* self);
+gint library_window_get_events_sort (LibraryWindow* self);
+void configuration_facade_set_events_sort_ascending (ConfigurationFacade* self, gboolean sort);
+void preferences_dialog_show (void);
+void properties_update_properties (Properties* self, Page* page);
+void configuration_facade_set_display_basic_properties (ConfigurationFacade* self, gboolean display);
+void extended_properties_window_update_properties (ExtendedPropertiesWindow* self, Page* page);
+void configuration_facade_set_display_search_bar (ConfigurationFacade* self, gboolean display);
+void library_window_show_search_bar (LibraryWindow* self, gboolean display);
+void configuration_facade_set_display_sidebar (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_sidebar (ConfigurationFacade* self);
+static void library_window_set_toolbar_visible (LibraryWindow* self, gboolean visible);
+GtkToolbar* page_get_toolbar (Page* self);
+void configuration_facade_set_display_toolbar (ConfigurationFacade* self, gboolean display);
+gboolean configuration_facade_get_display_toolbar (ConfigurationFacade* self);
+static void library_window_sync_extended_properties (LibraryWindow* self, gboolean show);
+void configuration_facade_set_display_extended_properties (ConfigurationFacade* self, gboolean display);
+GType batch_import_get_type (void) G_GNUC_CONST;
+void library_window_enqueue_batch_import (LibraryWindow* self, BatchImport* batch_import, gboolean allow_user_cancel);
+GType library_hideable_page_entry_get_type (void) G_GNUC_CONST;
+GType library_import_queue_sidebar_entry_get_type (void) G_GNUC_CONST;
+LibraryImportQueueSidebarEntry* library_branch_get_import_queue_entry (LibraryBranch* self);
+void library_import_queue_sidebar_entry_enqueue_and_schedule (LibraryImportQueueSidebarEntry* self, BatchImport* batch_import, gboolean allow_user_cancel);
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+static void library_window_import_reporter (LibraryWindow* self, ImportManifest* manifest);
+gpointer import_ui_question_params_ref (gpointer instance);
+void import_ui_question_params_unref (gpointer instance);
+GParamSpec* import_ui_param_spec_question_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void import_ui_value_set_question_params (GValue* value, gpointer v_object);
+void import_ui_value_take_question_params (GValue* value, gpointer v_object);
+gpointer import_ui_value_get_question_params (const GValue* value);
+GType import_ui_question_params_get_type (void) G_GNUC_CONST;
+gboolean import_ui_report_manifest (ImportManifest* manifest, gboolean show_dest_id, ImportUIQuestionParams* question);
+GFile* app_dirs_get_import_dir (void);
+GtkResponseType app_window_affirm_cancel_question (const gchar* message, const gchar* affirmative, const gchar* title, GtkWindow* parent);
+AppWindow* app_window_get_instance (void);
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+GType file_import_job_get_type (void) G_GNUC_CONST;
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+FileImportJob* file_import_job_new (GFile* file_or_dir, gboolean copy_to_library);
+FileImportJob* file_import_job_construct (GType object_type, GFile* file_or_dir, gboolean copy_to_library);
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+static void _library_window_import_reporter_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
+BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+void library_window_switch_to_import_queue_page (LibraryWindow* self);
+static GdkDragAction library_window_get_drag_action (LibraryWindow* self);
+static gboolean library_window_real_drag_motion (GtkWidget* base, GdkDragContext* context, gint x, gint y, guint time);
+static void library_window_real_drag_data_received (GtkWidget* base, GdkDragContext* context, gint x, gint y, GtkSelectionData* selection_data, guint info, guint time);
+void library_window_switch_to_library_page (LibraryWindow* self);
+void library_window_switch_to_page (LibraryWindow* self, Page* page);
+void library_window_switch_to_tag (LibraryWindow* self, Tag* tag);
+void library_window_switch_to_saved_search (LibraryWindow* self, SavedSearch* search);
+void library_window_switch_to_photo_page (LibraryWindow* self, CollectionPage* controller, Photo* current);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+LibraryPhotoPage* library_photo_page_new (void);
+LibraryPhotoPage* library_photo_page_construct (GType object_type);
+void library_window_add_to_stack (LibraryWindow* self, Page* page);
+void spin_event_loop (void);
+void library_photo_page_display_for_collection (LibraryPhotoPage* self, CollectionPage* return_page, Photo* photo, ViewCollection* view);
+GType camera_sidebar_entry_get_type (void) G_GNUC_CONST;
+CameraSidebarEntry* camera_branch_get_entry_for_camera (CameraBranch* self, DiscoveredCamera* camera);
+GType import_page_get_type (void) G_GNUC_CONST;
+gboolean import_page_unmount_camera (ImportPage* self, GMount* mount);
+static void library_window_remove_from_stack (LibraryWindow* self, Page* page);
+gboolean configuration_facade_get_display_basic_properties (ConfigurationFacade* self);
+gboolean configuration_facade_get_display_extended_properties (ConfigurationFacade* self);
+gboolean configuration_facade_get_display_search_bar (ConfigurationFacade* self);
+gboolean configuration_facade_get_events_sort_ascending (ConfigurationFacade* self);
+static void library_window_start_pulse_background_progress_bar (LibraryWindow* self, const gchar* label, gint priority);
+static void library_window_stop_pulse_background_progress_bar (LibraryWindow* self, gint priority, gboolean clear);
+static void library_window_show_background_progress_bar (LibraryWindow* self);
+static gboolean library_window_on_pulse_background_progress_bar (LibraryWindow* self);
+static gboolean _library_window_on_pulse_background_progress_bar_gsource_func (gpointer self);
+static void library_window_clear_background_progress_bar (LibraryWindow* self, gint priority);
+static void library_window_update_background_progress_bar (LibraryWindow* self, const gchar* label, gint priority, gdouble count, gdouble total);
+static void library_window_hide_background_progress_bar (LibraryWindow* self);
+gint configuration_facade_get_sidebar_position (ConfigurationFacade* self);
+gint library_window_get_PAGE_MIN_WIDTH (void);
+static void library_window_real_set_current_page (PageWindow* base, Page* page);
+void library_window_set_page_switching_enabled (LibraryWindow* self, gboolean should_enable);
+void page_switching_from (Page* self);
+void sidebar_tree_enable_editing (SidebarTree* self);
+void page_window_set_current_page (PageWindow* self, Page* page);
+void sidebar_tree_disable_editing (SidebarTree* self);
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+gboolean sidebar_expandable_entry_expand_on_select (SidebarExpandableEntry* self);
+gboolean sidebar_tree_expand_to_entry (SidebarTree* self, SidebarEntry* entry);
+gboolean sidebar_tree_place_cursor (SidebarTree* self, SidebarEntry* entry, gboolean mask_signal);
+static void library_window_on_update_properties (LibraryWindow* self);
+static void library_window_subscribe_for_basic_information (LibraryWindow* self, Page* page);
+void page_switched_to (Page* self);
+void page_ready (Page* self);
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+void search_filter_toolbar_set_view_filter (SearchFilterToolbar* self, SearchViewFilter* search_filter);
+SearchViewFilter* checkerboard_page_get_search_view_filter (CheckerboardPage* self);
+void view_collection_install_view_filter (ViewCollection* self, ViewFilter* f);
+DisabledViewFilter* disabled_view_filter_new (void);
+DisabledViewFilter* disabled_view_filter_construct (GType object_type);
+GType disabled_view_filter_get_type (void) G_GNUC_CONST;
+GType library_last_import_sidebar_entry_get_type (void) G_GNUC_CONST;
+LibraryLastImportSidebarEntry* library_branch_get_last_imported_entry (LibraryBranch* self);
+gboolean library_hideable_page_entry_get_visible (LibraryHideablePageEntry* self);
+gboolean sidebar_branch_get_show_branch (SidebarBranch* self);
+GType events_directory_entry_get_type (void) G_GNUC_CONST;
+GType events_master_directory_entry_get_type (void) G_GNUC_CONST;
+EventsMasterDirectoryEntry* events_branch_get_master_entry (EventsBranch* self);
+static void _library_window_on_update_properties_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self);
+static void _library_window_on_update_properties_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+static void _library_window_on_update_properties_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+static void _library_window_on_update_properties_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self);
+void one_shot_scheduler_at_idle (OneShotScheduler* self);
+void library_window_mounted_camera_shell_notification (LibraryWindow* self, const gchar* uri, gboolean at_startup);
+gchar* camera_table_get_port_uri (const gchar* port);
+gboolean is_string_empty (const gchar* s);
+static gboolean library_window_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+gboolean sidebar_tree_is_keypress_interpreted (SidebarTree* self, GdkEventKey* event);
+gint thumbnail_get_MAX_SCALE (void);
+#define CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING 24
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType zoom_buffer_get_type (void) G_GNUC_CONST;
+GType single_photo_page_update_reason_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+#define LIBRARY_WINDOW_FULLSCREEN_PHOTO_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, LibraryWindowFullscreenPhotoPagePrivate))
+enum {
+ LIBRARY_WINDOW_FULLSCREEN_PHOTO_PAGE_DUMMY_PROPERTY
+};
+static void library_window_fullscreen_photo_page_real_switched_to (Page* base);
+static void library_window_fullscreen_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+static void library_window_fullscreen_photo_page_finalize (GObject* obj);
+static void library_window_finalize (GObject* obj);
+static void _vala_library_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+static const gchar* LIBRARY_WINDOW_SUPPORTED_MOUNT_SCHEMES[3] = {"gphoto2:", "disk:", "file:"};
+const GtkTargetEntry LIBRARY_WINDOW_DND_TARGET_ENTRIES[3] = {{"text/uri-list", (guint) GTK_TARGET_OTHER_APP, (guint) LIBRARY_WINDOW_TARGET_TYPE_URI_LIST}, {LIBRARY_WINDOW_MEDIA_LIST_MIME_TYPE, (guint) GTK_TARGET_SAME_APP, (guint) LIBRARY_WINDOW_TARGET_TYPE_MEDIA_LIST}, {LIBRARY_WINDOW_TAG_PATH_MIME_TYPE, (guint) GTK_TARGET_SAME_WIDGET, (guint) LIBRARY_WINDOW_TARGET_TYPE_TAG_PATH}};
+
+static void _library_window_on_page_created_sidebar_tree_page_created (SidebarTree* _sender, SidebarPageRepresentative* entry, Page* page, gpointer self) {
+#line 231 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_page_created ((LibraryWindow*) self, entry, page);
+#line 1775 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_destroying_page_sidebar_tree_destroying_page (SidebarTree* _sender, SidebarPageRepresentative* entry, Page* page, gpointer self) {
+#line 232 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_destroying_page ((LibraryWindow*) self, entry, page);
+#line 1782 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_sidebar_entry_selected_sidebar_tree_entry_selected (SidebarTree* _sender, SidebarSelectableEntry* selectable, gpointer self) {
+#line 233 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_sidebar_entry_selected ((LibraryWindow*) self, selectable);
+#line 1789 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_sidebar_selected_entry_removed_sidebar_tree_selected_entry_removed (SidebarTree* _sender, SidebarSelectableEntry* removed, gpointer self) {
+#line 234 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_sidebar_selected_entry_removed ((LibraryWindow*) self, removed);
+#line 1796 "LibraryWindow.c"
+}
+
+
+static void _library_window_hide_extended_properties_gtk_widget_hide (GtkWidget* _sender, gpointer self) {
+#line 238 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_hide_extended_properties ((LibraryWindow*) self);
+#line 1803 "LibraryWindow.c"
+}
+
+
+static void _library_window_show_extended_properties_gtk_widget_show (GtkWidget* _sender, gpointer self) {
+#line 239 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_show_extended_properties ((LibraryWindow*) self);
+#line 1810 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 242 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_trashcan_contents_altered ((LibraryWindow*) self);
+#line 1817 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_media_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 243 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_media_altered ((LibraryWindow*) self);
+#line 1824 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_metadata_writer_progress_metadata_writer_progress (MetadataWriter* _sender, guint completed, guint total, gpointer self) {
+#line 246 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_metadata_writer_progress ((LibraryWindow*) self, completed, total);
+#line 1831 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_installed_library_monitor_pool_monitor_installed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self) {
+#line 252 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_installed ((LibraryWindow*) self, monitor);
+#line 1838 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_destroyed_library_monitor_pool_monitor_destroyed (LibraryMonitorPool* _sender, LibraryMonitor* monitor, gpointer self) {
+#line 253 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_destroyed ((LibraryWindow*) self, monitor);
+#line 1845 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_camera_added_camera_table_camera_added (CameraTable* _sender, DiscoveredCamera* camera, gpointer self) {
+#line 255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_camera_added ((LibraryWindow*) self, camera);
+#line 1852 "LibraryWindow.c"
+}
+
+
+static GType library_window_sidebar_root_position_get_type (void) {
+ static volatile gsize library_window_sidebar_root_position_type_id__volatile = 0;
+ if (g_once_init_enter (&library_window_sidebar_root_position_type_id__volatile)) {
+ static const GEnumValue values[] = {{LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_LIBRARY, "LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_LIBRARY", "library"}, {LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_CAMERAS, "LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_CAMERAS", "cameras"}, {LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_SAVED_SEARCH, "LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_SAVED_SEARCH", "saved-search"}, {LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_EVENTS, "LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_EVENTS", "events"}, {LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_FOLDERS, "LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_FOLDERS", "folders"}, {LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_TAGS, "LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_TAGS", "tags"}, {0, NULL, NULL}};
+ GType library_window_sidebar_root_position_type_id;
+ library_window_sidebar_root_position_type_id = g_enum_register_static ("LibraryWindowSidebarRootPosition", values);
+ g_once_init_leave (&library_window_sidebar_root_position_type_id__volatile, library_window_sidebar_root_position_type_id);
+ }
+ return library_window_sidebar_root_position_type_id__volatile;
+}
+
+
+GType library_window_target_type_get_type (void) {
+ static volatile gsize library_window_target_type_type_id__volatile = 0;
+ if (g_once_init_enter (&library_window_target_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{LIBRARY_WINDOW_TARGET_TYPE_URI_LIST, "LIBRARY_WINDOW_TARGET_TYPE_URI_LIST", "uri-list"}, {LIBRARY_WINDOW_TARGET_TYPE_MEDIA_LIST, "LIBRARY_WINDOW_TARGET_TYPE_MEDIA_LIST", "media-list"}, {LIBRARY_WINDOW_TARGET_TYPE_TAG_PATH, "LIBRARY_WINDOW_TARGET_TYPE_TAG_PATH", "tag-path"}, {0, NULL, NULL}};
+ GType library_window_target_type_type_id;
+ library_window_target_type_type_id = g_enum_register_static ("LibraryWindowTargetType", values);
+ g_once_init_leave (&library_window_target_type_type_id__volatile, library_window_target_type_type_id);
+ }
+ return library_window_target_type_type_id__volatile;
+}
+
+
+static void _library_window_external_drop_handler_sidebar_tree_external_drop_handler (GdkDragContext* context, SidebarEntry* entry, GtkSelectionData* data, guint info, guint time, gpointer self) {
+#line 153 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_external_drop_handler ((LibraryWindow*) self, context, entry, data, info, time);
+#line 1883 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_update_properties_now_one_shot_callback (gpointer self) {
+#line 173 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_update_properties_now ((LibraryWindow*) self);
+#line 1890 "LibraryWindow.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 186 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1897 "LibraryWindow.c"
+}
+
+
+LibraryWindow* library_window_construct (GType object_type, ProgressMonitor progress_monitor, void* progress_monitor_target) {
+ LibraryWindow * self = NULL;
+ SidebarTree* _tmp0_ = NULL;
+ SidebarTree* _tmp1_ = NULL;
+ SidebarTree* _tmp2_ = NULL;
+ SidebarTree* _tmp3_ = NULL;
+ SidebarTree* _tmp4_ = NULL;
+ SidebarTree* _tmp5_ = NULL;
+ LibraryBranch* _tmp6_ = NULL;
+ SidebarTree* _tmp7_ = NULL;
+ TagsBranch* _tmp8_ = NULL;
+ SidebarTree* _tmp9_ = NULL;
+ FoldersBranch* _tmp10_ = NULL;
+ SidebarTree* _tmp11_ = NULL;
+ EventsBranch* _tmp12_ = NULL;
+ SidebarTree* _tmp13_ = NULL;
+ CameraBranch* _tmp14_ = NULL;
+ SidebarTree* _tmp15_ = NULL;
+ SearchesBranch* _tmp16_ = NULL;
+ ExtendedPropertiesWindow* _tmp17_ = NULL;
+ ExtendedPropertiesWindow* _tmp18_ = NULL;
+ ExtendedPropertiesWindow* _tmp19_ = NULL;
+ OneShotScheduler* _tmp20_ = NULL;
+ SearchFilterActions* _tmp21_ = NULL;
+ SearchFilterToolbar* _tmp22_ = NULL;
+ GtkMenuBar* menubar = NULL;
+ GtkUIManager* _tmp28_ = NULL;
+ GtkWidget* _tmp29_ = NULL;
+ GtkMenuBar* _tmp30_ = NULL;
+ GtkBox* _tmp31_ = NULL;
+ GtkMenuBar* _tmp32_ = NULL;
+ GtkMenuBar* _tmp33_ = NULL;
+ LibraryBranch* _tmp34_ = NULL;
+ LibraryPhotosEntry* _tmp35_ = NULL;
+ LibraryPhotosEntry* _tmp36_ = NULL;
+ Page* _tmp37_ = NULL;
+ Page* _tmp38_ = NULL;
+ GtkTargetEntry* main_window_dnd_targets = NULL;
+ GtkTargetEntry _tmp51_ = {0};
+ GtkTargetEntry _tmp52_ = {0};
+ GtkTargetEntry* _tmp53_ = NULL;
+ gint main_window_dnd_targets_length1 = 0;
+ gint _main_window_dnd_targets_size_ = 0;
+ GtkTargetEntry* _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+ MetadataWriter* _tmp55_ = NULL;
+ MetadataWriter* _tmp56_ = NULL;
+ LibraryMonitor* monitor = NULL;
+ LibraryMonitorPool* _tmp57_ = NULL;
+ LibraryMonitorPool* _tmp58_ = NULL;
+ LibraryMonitor* _tmp59_ = NULL;
+ LibraryMonitor* _tmp60_ = NULL;
+ LibraryMonitor* _tmp61_ = NULL;
+ LibraryMonitorPool* _tmp63_ = NULL;
+ LibraryMonitorPool* _tmp64_ = NULL;
+ LibraryMonitorPool* _tmp65_ = NULL;
+ LibraryMonitorPool* _tmp66_ = NULL;
+ CameraTable* _tmp67_ = NULL;
+ CameraTable* _tmp68_ = NULL;
+ GtkProgressBar* _tmp69_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = (LibraryWindow*) app_window_construct (object_type);
+#line 153 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = sidebar_tree_new (LIBRARY_WINDOW_DND_TARGET_ENTRIES, G_N_ELEMENTS (LIBRARY_WINDOW_DND_TARGET_ENTRIES), GDK_ACTION_ASK, _library_window_external_drop_handler_sidebar_tree_external_drop_handler, self);
+#line 153 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp0_);
+#line 153 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->sidebar_tree);
+#line 153 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->sidebar_tree = _tmp0_;
+#line 156 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->sidebar_tree;
+#line 156 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp1_, "page-created", (GCallback) _library_window_on_page_created_sidebar_tree_page_created, self, 0);
+#line 157 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->sidebar_tree;
+#line 157 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp2_, "destroying-page", (GCallback) _library_window_on_destroying_page_sidebar_tree_destroying_page, self, 0);
+#line 158 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->sidebar_tree;
+#line 158 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp3_, "entry-selected", (GCallback) _library_window_on_sidebar_entry_selected_sidebar_tree_entry_selected, self, 0);
+#line 159 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->sidebar_tree;
+#line 159 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp4_, "selected-entry-removed", (GCallback) _library_window_on_sidebar_selected_entry_removed_sidebar_tree_selected_entry_removed, self, 0);
+#line 161 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = self->priv->sidebar_tree;
+#line 161 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->library_branch;
+#line 161 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_graft (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SIDEBAR_TYPE_BRANCH, SidebarBranch), (gint) LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_LIBRARY);
+#line 162 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = self->priv->sidebar_tree;
+#line 162 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = self->priv->tags_branch;
+#line 162 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_graft (_tmp7_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, SIDEBAR_TYPE_BRANCH, SidebarBranch), (gint) LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_TAGS);
+#line 163 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = self->priv->sidebar_tree;
+#line 163 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = self->priv->folders_branch;
+#line 163 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_graft (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, SIDEBAR_TYPE_BRANCH, SidebarBranch), (gint) LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_FOLDERS);
+#line 164 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = self->priv->sidebar_tree;
+#line 164 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = self->priv->events_branch;
+#line 164 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_graft (_tmp11_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, SIDEBAR_TYPE_BRANCH, SidebarBranch), (gint) LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_EVENTS);
+#line 165 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = self->priv->sidebar_tree;
+#line 165 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = self->priv->camera_branch;
+#line 165 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_graft (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, SIDEBAR_TYPE_BRANCH, SidebarBranch), (gint) LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_CAMERAS);
+#line 166 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = self->priv->sidebar_tree;
+#line 166 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = self->priv->saved_search_branch;
+#line 166 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_graft (_tmp15_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, SIDEBAR_TYPE_BRANCH, SidebarBranch), (gint) LIBRARY_WINDOW_SIDEBAR_ROOT_POSITION_SAVED_SEARCH);
+#line 169 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = extended_properties_window_new (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow));
+#line 169 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp17_);
+#line 169 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->extended_properties);
+#line 169 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->extended_properties = _tmp17_;
+#line 170 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = self->priv->extended_properties;
+#line 170 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget), "hide", (GCallback) _library_window_hide_extended_properties_gtk_widget_hide, self, 0);
+#line 171 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = self->priv->extended_properties;
+#line 171 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, gtk_widget_get_type (), GtkWidget), "show", (GCallback) _library_window_show_extended_properties_gtk_widget_show, self, 0);
+#line 173 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = one_shot_scheduler_new ("LibraryWindow properties", _library_window_on_update_properties_now_one_shot_callback, self);
+#line 173 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _one_shot_scheduler_unref0 (self->priv->properties_scheduler);
+#line 173 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->properties_scheduler = _tmp20_;
+#line 177 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = self->priv->search_actions;
+#line 177 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = search_filter_toolbar_new (_tmp21_);
+#line 177 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp22_);
+#line 177 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->search_toolbar);
+#line 177 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->search_toolbar = _tmp22_;
+#line 2056 "LibraryWindow.c"
+ {
+ GFile* ui_file = NULL;
+ GFile* _tmp23_ = NULL;
+ GtkUIManager* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = resources_get_ui ("top.ui");
+#line 180 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ui_file = _tmp23_;
+#line 181 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 181 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = g_file_get_path (ui_file);
+#line 181 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = _tmp25_;
+#line 181 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_ui_manager_add_ui_from_file (_tmp24_, _tmp26_, &_inner_error_);
+#line 181 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp26_);
+#line 181 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 181 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (ui_file);
+#line 2081 "LibraryWindow.c"
+ goto __catch38_g_error;
+ }
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (ui_file);
+#line 2086 "LibraryWindow.c"
+ }
+ goto __finally38;
+ __catch38_g_error:
+ {
+ GError* e = NULL;
+ const gchar* _tmp27_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ e = _inner_error_;
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _inner_error_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = e->message;
+#line 183 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_error ("LibraryWindow.vala:183: %s", _tmp27_);
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_error_free0 (e);
+#line 2103 "LibraryWindow.c"
+ }
+ __finally38:
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return NULL;
+#line 2114 "LibraryWindow.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow)->ui;
+#line 186 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = gtk_ui_manager_get_widget (_tmp28_, "/MenuBar");
+#line 186 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp30_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp29_, gtk_menu_bar_get_type ()) ? ((GtkMenuBar*) _tmp29_) : NULL);
+#line 186 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ menubar = _tmp30_;
+#line 187 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_ = self->priv->layout;
+#line 187 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = menubar;
+#line 187 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget));
+#line 191 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = menubar;
+#line 191 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_set_no_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_ = self->priv->library_branch;
+#line 194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp35_ = library_branch_get_photos_entry (_tmp34_);
+#line 194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36_ = _tmp35_;
+#line 194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp37_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_ = _tmp37_;
+#line 194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_create_layout (self, _tmp38_);
+#line 194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp38_);
+#line 197 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_load_configuration (self);
+#line 2150 "LibraryWindow.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp39_ = NULL;
+ MediaCollectionRegistry* _tmp40_ = NULL;
+ GeeCollection* _tmp41_ = NULL;
+ GeeCollection* _tmp42_ = NULL;
+ GeeIterator* _tmp43_ = NULL;
+ GeeIterator* _tmp44_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp39_ = media_collection_registry_get_instance ();
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp40_ = _tmp39_;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp41_ = media_collection_registry_get_all (_tmp40_);
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_ = _tmp41_;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp43_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp44_ = _tmp43_;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp42_);
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _media_collection_registry_unref0 (_tmp40_);
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _media_sources_it = _tmp44_;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ while (TRUE) {
+#line 2179 "LibraryWindow.c"
+ GeeIterator* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp47_ = NULL;
+ gpointer _tmp48_ = NULL;
+ MediaSourceCollection* _tmp49_ = NULL;
+ MediaSourceCollection* _tmp50_ = NULL;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp45_ = _media_sources_it;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_ = gee_iterator_next (_tmp45_);
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp46_) {
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ break;
+#line 2195 "LibraryWindow.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp47_ = _media_sources_it;
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp48_ = gee_iterator_get (_tmp47_);
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ media_sources = (MediaSourceCollection*) _tmp48_;
+#line 200 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp49_ = media_sources;
+#line 200 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp49_, "trashcan-contents-altered", (GCallback) _library_window_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered, self, 0);
+#line 201 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_ = media_sources;
+#line 201 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _library_window_on_media_altered_data_collection_items_altered, self, 0);
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (media_sources);
+#line 2213 "LibraryWindow.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 2217 "LibraryWindow.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp51_ = LIBRARY_WINDOW_DND_TARGET_ENTRIES[LIBRARY_WINDOW_TARGET_TYPE_URI_LIST];
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp52_ = LIBRARY_WINDOW_DND_TARGET_ENTRIES[LIBRARY_WINDOW_TARGET_TYPE_MEDIA_LIST];
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp53_ = g_new0 (GtkTargetEntry, 2);
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp53_[0] = _tmp51_;
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp53_[1] = _tmp52_;
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ main_window_dnd_targets = _tmp53_;
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ main_window_dnd_targets_length1 = 2;
+#line 206 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _main_window_dnd_targets_size_ = main_window_dnd_targets_length1;
+#line 212 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54_ = main_window_dnd_targets;
+#line 212 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54__length1 = main_window_dnd_targets_length1;
+#line 212 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_drag_dest_set (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), GTK_DEST_DEFAULT_ALL, _tmp54_, _tmp54__length1, (GDK_ACTION_COPY | GDK_ACTION_LINK) | GDK_ACTION_ASK);
+#line 215 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp55_ = metadata_writer_get_instance ();
+#line 215 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp56_ = _tmp55_;
+#line 215 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp56_, "progress", (GCallback) _library_window_on_metadata_writer_progress_metadata_writer_progress, self, 0);
+#line 215 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp56_);
+#line 217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp57_ = library_monitor_pool_get_instance ();
+#line 217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp58_ = _tmp57_;
+#line 217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp59_ = library_monitor_pool_get_monitor (_tmp58_);
+#line 217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp60_ = _tmp59_;
+#line 217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _library_monitor_pool_unref0 (_tmp58_);
+#line 217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ monitor = _tmp60_;
+#line 218 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp61_ = monitor;
+#line 218 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp61_ != NULL) {
+#line 2265 "LibraryWindow.c"
+ LibraryMonitor* _tmp62_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp62_ = monitor;
+#line 219 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_installed (self, _tmp62_);
+#line 2271 "LibraryWindow.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp63_ = library_monitor_pool_get_instance ();
+#line 221 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp64_ = _tmp63_;
+#line 221 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp64_, "monitor-installed", (GCallback) _library_window_on_library_monitor_installed_library_monitor_pool_monitor_installed, self, 0);
+#line 221 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _library_monitor_pool_unref0 (_tmp64_);
+#line 222 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp65_ = library_monitor_pool_get_instance ();
+#line 222 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp66_ = _tmp65_;
+#line 222 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp66_, "monitor-destroyed", (GCallback) _library_window_on_library_monitor_destroyed_library_monitor_pool_monitor_destroyed, self, 0);
+#line 222 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _library_monitor_pool_unref0 (_tmp66_);
+#line 224 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp67_ = camera_table_get_instance ();
+#line 224 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp68_ = _tmp67_;
+#line 224 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp68_, "camera-added", (GCallback) _library_window_on_camera_added_camera_table_camera_added, self, 0);
+#line 224 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _camera_table_unref0 (_tmp68_);
+#line 226 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp69_ = self->priv->background_progress_bar;
+#line 226 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_set_show_text (_tmp69_, TRUE);
+#line 151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (monitor);
+#line 151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ main_window_dnd_targets = (g_free (main_window_dnd_targets), NULL);
+#line 151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (menubar);
+#line 151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return self;
+#line 2309 "LibraryWindow.c"
+}
+
+
+LibraryWindow* library_window_new (ProgressMonitor progress_monitor, void* progress_monitor_target) {
+#line 151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return library_window_construct (TYPE_LIBRARY_WINDOW, progress_monitor, progress_monitor_target);
+#line 2316 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_discovery_started_directory_monitor_discovery_started (DirectoryMonitor* _sender, gpointer self) {
+#line 261 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_discovery_started ((LibraryWindow*) self);
+#line 2323 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_discovery_completed_directory_monitor_discovery_completed (DirectoryMonitor* _sender, gpointer self) {
+#line 262 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_discovery_completed ((LibraryWindow*) self);
+#line 2330 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_discovery_completed_directory_monitor_closed (DirectoryMonitor* _sender, gpointer self) {
+#line 263 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_discovery_completed ((LibraryWindow*) self);
+#line 2337 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_auto_update_progress_library_monitor_auto_update_progress (LibraryMonitor* _sender, gint completed_files, gint total_files, gpointer self) {
+#line 264 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_auto_update_progress ((LibraryWindow*) self, completed_files, total_files);
+#line 2344 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_auto_import_preparing_library_monitor_auto_import_preparing (LibraryMonitor* _sender, gpointer self) {
+#line 265 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_auto_import_preparing ((LibraryWindow*) self);
+#line 2351 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_library_monitor_auto_import_progress_library_monitor_auto_import_progress (LibraryMonitor* _sender, guint64 completed_bytes, guint64 total_bytes, gpointer self) {
+#line 266 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_auto_import_progress ((LibraryWindow*) self, completed_bytes, total_bytes);
+#line 2358 "LibraryWindow.c"
+}
+
+
+static void library_window_on_library_monitor_installed (LibraryWindow* self, LibraryMonitor* monitor) {
+ LibraryMonitor* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ LibraryMonitor* _tmp5_ = NULL;
+ LibraryMonitor* _tmp6_ = NULL;
+ LibraryMonitor* _tmp7_ = NULL;
+ LibraryMonitor* _tmp8_ = NULL;
+ LibraryMonitor* _tmp9_ = NULL;
+ LibraryMonitor* _tmp10_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 258 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (monitor));
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = monitor;
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = directory_monitor_get_root (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:259: on_library_monitor_installed: %s", _tmp4_);
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp4_);
+#line 259 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 261 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = monitor;
+#line 261 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), "discovery-started", (GCallback) _library_window_on_library_monitor_discovery_started_directory_monitor_discovery_started, self, 0);
+#line 262 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = monitor;
+#line 262 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), "discovery-completed", (GCallback) _library_window_on_library_monitor_discovery_completed_directory_monitor_discovery_completed, self, 0);
+#line 263 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = monitor;
+#line 263 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), "closed", (GCallback) _library_window_on_library_monitor_discovery_completed_directory_monitor_closed, self, 0);
+#line 264 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = monitor;
+#line 264 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp8_, "auto-update-progress", (GCallback) _library_window_on_library_monitor_auto_update_progress_library_monitor_auto_update_progress, self, 0);
+#line 265 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = monitor;
+#line 265 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp9_, "auto-import-preparing", (GCallback) _library_window_on_library_monitor_auto_import_preparing_library_monitor_auto_import_preparing, self, 0);
+#line 266 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = monitor;
+#line 266 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp10_, "auto-import-progress", (GCallback) _library_window_on_library_monitor_auto_import_progress_library_monitor_auto_import_progress, self, 0);
+#line 2418 "LibraryWindow.c"
+}
+
+
+static void library_window_on_library_monitor_destroyed (LibraryWindow* self, LibraryMonitor* monitor) {
+ LibraryMonitor* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ LibraryMonitor* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ LibraryMonitor* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ LibraryMonitor* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ LibraryMonitor* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ LibraryMonitor* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ LibraryMonitor* _tmp15_ = NULL;
+ guint _tmp16_ = 0U;
+#line 269 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 269 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_MONITOR (monitor));
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = monitor;
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = directory_monitor_get_root (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor));
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:270: on_library_monitor_destroyed: %s", _tmp4_);
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp4_);
+#line 270 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 272 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = monitor;
+#line 272 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("discovery-started", TYPE_DIRECTORY_MONITOR, &_tmp6_, NULL, FALSE);
+#line 272 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _library_window_on_library_monitor_discovery_started_directory_monitor_discovery_started, self);
+#line 273 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = monitor;
+#line 273 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("discovery-completed", TYPE_DIRECTORY_MONITOR, &_tmp8_, NULL, FALSE);
+#line 273 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, 0, NULL, (GCallback) _library_window_on_library_monitor_discovery_completed_directory_monitor_discovery_completed, self);
+#line 274 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = monitor;
+#line 274 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("closed", TYPE_DIRECTORY_MONITOR, &_tmp10_, NULL, FALSE);
+#line 274 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_DIRECTORY_MONITOR, DirectoryMonitor), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _library_window_on_library_monitor_discovery_completed_directory_monitor_closed, self);
+#line 275 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = monitor;
+#line 275 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("auto-update-progress", TYPE_LIBRARY_MONITOR, &_tmp12_, NULL, FALSE);
+#line 275 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp11_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _library_window_on_library_monitor_auto_update_progress_library_monitor_auto_update_progress, self);
+#line 276 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = monitor;
+#line 276 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("auto-import-preparing", TYPE_LIBRARY_MONITOR, &_tmp14_, NULL, FALSE);
+#line 276 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp13_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _library_window_on_library_monitor_auto_import_preparing_library_monitor_auto_import_preparing, self);
+#line 277 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = monitor;
+#line 277 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("auto-import-progress", TYPE_LIBRARY_MONITOR, &_tmp16_, NULL, FALSE);
+#line 277 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp15_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _library_window_on_library_monitor_auto_import_progress_library_monitor_auto_import_progress, self);
+#line 2496 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_file_import_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_file_import ((LibraryWindow*) self);
+#line 2503 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add61 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2514 "LibraryWindow.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2518 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_external_library_import_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_external_library_import ((LibraryWindow*) self);
+#line 2525 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add62 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2536 "LibraryWindow.c"
+ }
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2540 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add63 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2551 "LibraryWindow.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2555 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_preferences_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_preferences ((LibraryWindow*) self);
+#line 2562 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add64 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2573 "LibraryWindow.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2577 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_empty_trash_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_empty_trash ((LibraryWindow*) self);
+#line 2584 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add65 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2595 "LibraryWindow.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2599 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_jump_to_event_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_jump_to_event ((LibraryWindow*) self);
+#line 2606 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add66 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2617 "LibraryWindow.c"
+ }
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2621 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_find_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_find ((LibraryWindow*) self);
+#line 2628 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add67 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2639 "LibraryWindow.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2643 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add68 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2654 "LibraryWindow.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2658 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_new_search_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_new_search ((LibraryWindow*) self);
+#line 2665 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add69 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2676 "LibraryWindow.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2680 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add70 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2691 "LibraryWindow.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2695 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add71 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2706 "LibraryWindow.c"
+ }
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2710 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add72 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2721 "LibraryWindow.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2725 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add73 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2736 "LibraryWindow.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2740 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add74 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2751 "LibraryWindow.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2755 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add75 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2766 "LibraryWindow.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2770 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add76 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2781 "LibraryWindow.c"
+ }
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2785 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add77 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 2796 "LibraryWindow.c"
+ }
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 2800 "LibraryWindow.c"
+}
+
+
+static GtkActionEntry* library_window_create_common_actions (LibraryWindow* self, int* result_length1) {
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ GtkActionEntry* _tmp0_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry import = {0};
+ GtkActionEntry _tmp1_ = {0};
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry import_from_external = {0};
+ GtkActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ GtkActionEntry* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ GtkActionEntry _tmp9_ = {0};
+ GtkActionEntry sort = {0};
+ GtkActionEntry _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkActionEntry _tmp13_ = {0};
+ GtkActionEntry preferences = {0};
+ GtkActionEntry _tmp14_ = {0};
+ GtkActionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GtkActionEntry _tmp16_ = {0};
+ GtkActionEntry empty = {0};
+ GtkActionEntry _tmp17_ = {0};
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GtkActionEntry* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ GtkActionEntry _tmp21_ = {0};
+ GtkActionEntry jump_to_event = {0};
+ GtkActionEntry _tmp22_ = {0};
+ const gchar* _tmp23_ = NULL;
+ GtkActionEntry* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ GtkActionEntry _tmp25_ = {0};
+ GtkActionEntry find = {0};
+ GtkActionEntry _tmp26_ = {0};
+ const gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ GtkActionEntry* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ GtkActionEntry _tmp30_ = {0};
+ GtkActionEntry filter_photos = {0};
+ GtkActionEntry _tmp31_ = {0};
+ GtkActionEntry* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+ GtkActionEntry _tmp33_ = {0};
+ GtkActionEntry new_search = {0};
+ GtkActionEntry _tmp34_ = {0};
+ const gchar* _tmp35_ = NULL;
+ GtkActionEntry* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ GtkActionEntry _tmp37_ = {0};
+ GtkActionEntry file = {0};
+ GtkActionEntry _tmp38_ = {0};
+ const gchar* _tmp39_ = NULL;
+ GtkActionEntry* _tmp40_ = NULL;
+ gint _tmp40__length1 = 0;
+ GtkActionEntry _tmp41_ = {0};
+ GtkActionEntry edit = {0};
+ GtkActionEntry _tmp42_ = {0};
+ const gchar* _tmp43_ = NULL;
+ GtkActionEntry* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ GtkActionEntry _tmp45_ = {0};
+ GtkActionEntry view = {0};
+ GtkActionEntry _tmp46_ = {0};
+ const gchar* _tmp47_ = NULL;
+ GtkActionEntry* _tmp48_ = NULL;
+ gint _tmp48__length1 = 0;
+ GtkActionEntry _tmp49_ = {0};
+ GtkActionEntry photo = {0};
+ GtkActionEntry _tmp50_ = {0};
+ const gchar* _tmp51_ = NULL;
+ GtkActionEntry* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+ GtkActionEntry _tmp53_ = {0};
+ GtkActionEntry photos = {0};
+ GtkActionEntry _tmp54_ = {0};
+ const gchar* _tmp55_ = NULL;
+ GtkActionEntry* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ GtkActionEntry _tmp57_ = {0};
+ GtkActionEntry event = {0};
+ GtkActionEntry _tmp58_ = {0};
+ const gchar* _tmp59_ = NULL;
+ GtkActionEntry* _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ GtkActionEntry _tmp61_ = {0};
+ GtkActionEntry tags = {0};
+ GtkActionEntry _tmp62_ = {0};
+ const gchar* _tmp63_ = NULL;
+ GtkActionEntry* _tmp64_ = NULL;
+ gint _tmp64__length1 = 0;
+ GtkActionEntry _tmp65_ = {0};
+ GtkActionEntry help = {0};
+ GtkActionEntry _tmp66_ = {0};
+ const gchar* _tmp67_ = NULL;
+ GtkActionEntry* _tmp68_ = NULL;
+ gint _tmp68__length1 = 0;
+ GtkActionEntry _tmp69_ = {0};
+ GtkActionEntry* _tmp70_ = NULL;
+ gint _tmp70__length1 = 0;
+#line 280 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), NULL);
+#line 281 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = g_new0 (GtkActionEntry, 0);
+#line 281 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ actions = _tmp0_;
+#line 281 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ actions_length1 = 0;
+#line 281 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _actions_size_ = actions_length1;
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.name = "CommonFileImport";
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.stock_id = RESOURCES_IMPORT;
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.label = TRANSLATABLE;
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.accelerator = "<Ctrl>I";
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.tooltip = TRANSLATABLE;
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.callback = (GCallback) _library_window_on_file_import_gtk_action_callback;
+#line 283 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import = _tmp1_;
+#line 285 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _ ("_Import From Folder...");
+#line 285 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import.label = _tmp2_;
+#line 286 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _ ("Import photos from disk to library");
+#line 286 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import.tooltip = _tmp3_;
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = actions;
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4__length1 = actions_length1;
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = import;
+#line 287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add61 (&actions, &actions_length1, &_actions_size_, &_tmp5_);
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.name = "ExternalLibraryImport";
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.stock_id = RESOURCES_IMPORT;
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.label = TRANSLATABLE;
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.accelerator = NULL;
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.tooltip = TRANSLATABLE;
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.callback = (GCallback) _library_window_on_external_library_import_gtk_action_callback;
+#line 289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import_from_external = _tmp6_;
+#line 293 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _ ("Import From _Application...");
+#line 293 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import_from_external.label = _tmp7_;
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = actions;
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8__length1 = actions_length1;
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = import_from_external;
+#line 294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add62 (&actions, &actions_length1, &_actions_size_, &_tmp9_);
+#line 296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_.name = "CommonSortEvents";
+#line 296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_.stock_id = NULL;
+#line 296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_.label = TRANSLATABLE;
+#line 296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_.accelerator = NULL;
+#line 296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_.tooltip = NULL;
+#line 296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_.callback = (GCallback) NULL;
+#line 296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sort = _tmp10_;
+#line 297 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = _ ("Sort _Events");
+#line 297 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sort.label = _tmp11_;
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = actions;
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12__length1 = actions_length1;
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = sort;
+#line 298 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add63 (&actions, &actions_length1, &_actions_size_, &_tmp13_);
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_.name = "CommonPreferences";
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_.stock_id = RESOURCES_PREFERENCES_LABEL;
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_.label = TRANSLATABLE;
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_.accelerator = NULL;
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_.tooltip = TRANSLATABLE;
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_.callback = (GCallback) _library_window_on_preferences_gtk_action_callback;
+#line 300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ preferences = _tmp14_;
+#line 302 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ preferences.label = RESOURCES_PREFERENCES_MENU;
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = actions;
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15__length1 = actions_length1;
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = preferences;
+#line 303 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add64 (&actions, &actions_length1, &_actions_size_, &_tmp16_);
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_.name = "CommonEmptyTrash";
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_.stock_id = NULL;
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_.label = TRANSLATABLE;
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_.accelerator = NULL;
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_.tooltip = NULL;
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_.callback = (GCallback) _library_window_on_empty_trash_gtk_action_callback;
+#line 305 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ empty = _tmp17_;
+#line 307 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = _ ("Empty T_rash");
+#line 307 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ empty.label = _tmp18_;
+#line 308 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = _ ("Delete all photos in the trash");
+#line 308 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ empty.tooltip = _tmp19_;
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = actions;
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20__length1 = actions_length1;
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = empty;
+#line 309 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add65 (&actions, &actions_length1, &_actions_size_, &_tmp21_);
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_.name = "CommonJumpToEvent";
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_.stock_id = NULL;
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_.label = TRANSLATABLE;
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_.accelerator = NULL;
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_.tooltip = TRANSLATABLE;
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_.callback = (GCallback) _library_window_on_jump_to_event_gtk_action_callback;
+#line 311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ jump_to_event = _tmp22_;
+#line 313 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = _ ("View Eve_nt for Photo");
+#line 313 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ jump_to_event.label = _tmp23_;
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = actions;
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24__length1 = actions_length1;
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = jump_to_event;
+#line 314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add66 (&actions, &actions_length1, &_actions_size_, &_tmp25_);
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_.name = "CommonFind";
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_.stock_id = NULL;
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_.label = TRANSLATABLE;
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_.accelerator = NULL;
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_.tooltip = NULL;
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_.callback = (GCallback) _library_window_on_find_gtk_action_callback;
+#line 316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ find = _tmp26_;
+#line 317 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = _ ("_Find");
+#line 317 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ find.label = _tmp27_;
+#line 318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = _ ("Find photos and videos by search criteria");
+#line 318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ find.tooltip = _tmp28_;
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = actions;
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29__length1 = actions_length1;
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp30_ = find;
+#line 319 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add67 (&actions, &actions_length1, &_actions_size_, &_tmp30_);
+#line 323 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_.name = "CommonFilterPhotos";
+#line 323 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_.stock_id = NULL;
+#line 323 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_.label = TRANSLATABLE;
+#line 323 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_.accelerator = NULL;
+#line 323 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_.tooltip = NULL;
+#line 323 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_.callback = (GCallback) NULL;
+#line 323 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ filter_photos = _tmp31_;
+#line 324 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ filter_photos.label = RESOURCES_FILTER_PHOTOS_MENU;
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = actions;
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32__length1 = actions_length1;
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = filter_photos;
+#line 325 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add68 (&actions, &actions_length1, &_actions_size_, &_tmp33_);
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_.name = "CommonNewSearch";
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_.stock_id = NULL;
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_.label = TRANSLATABLE;
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_.accelerator = "<Ctrl>S";
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_.tooltip = NULL;
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_.callback = (GCallback) _library_window_on_new_search_gtk_action_callback;
+#line 327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ new_search = _tmp34_;
+#line 329 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp35_ = _ ("Ne_w Saved Search...");
+#line 329 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ new_search.label = _tmp35_;
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36_ = actions;
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36__length1 = actions_length1;
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp37_ = new_search;
+#line 330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add69 (&actions, &actions_length1, &_actions_size_, &_tmp37_);
+#line 334 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_.name = "FileMenu";
+#line 334 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_.stock_id = NULL;
+#line 334 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_.label = TRANSLATABLE;
+#line 334 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_.accelerator = NULL;
+#line 334 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_.tooltip = NULL;
+#line 334 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_.callback = (GCallback) NULL;
+#line 334 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ file = _tmp38_;
+#line 335 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp39_ = _ ("_File");
+#line 335 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ file.label = _tmp39_;
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp40_ = actions;
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp40__length1 = actions_length1;
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp41_ = file;
+#line 336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add70 (&actions, &actions_length1, &_actions_size_, &_tmp41_);
+#line 338 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_.name = "EditMenu";
+#line 338 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_.stock_id = NULL;
+#line 338 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_.label = TRANSLATABLE;
+#line 338 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_.accelerator = NULL;
+#line 338 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_.tooltip = NULL;
+#line 338 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_.callback = (GCallback) NULL;
+#line 338 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ edit = _tmp42_;
+#line 339 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp43_ = _ ("_Edit");
+#line 339 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ edit.label = _tmp43_;
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp44_ = actions;
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp44__length1 = actions_length1;
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp45_ = edit;
+#line 340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add71 (&actions, &actions_length1, &_actions_size_, &_tmp45_);
+#line 342 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_.name = "ViewMenu";
+#line 342 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_.stock_id = NULL;
+#line 342 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_.label = TRANSLATABLE;
+#line 342 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_.accelerator = NULL;
+#line 342 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_.tooltip = NULL;
+#line 342 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_.callback = (GCallback) NULL;
+#line 342 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp46_;
+#line 343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp47_ = _ ("_View");
+#line 343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view.label = _tmp47_;
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp48_ = actions;
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp48__length1 = actions_length1;
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp49_ = view;
+#line 344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add72 (&actions, &actions_length1, &_actions_size_, &_tmp49_);
+#line 346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_.name = "PhotoMenu";
+#line 346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_.stock_id = NULL;
+#line 346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_.label = TRANSLATABLE;
+#line 346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_.accelerator = NULL;
+#line 346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_.tooltip = NULL;
+#line 346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_.callback = (GCallback) NULL;
+#line 346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ photo = _tmp50_;
+#line 347 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp51_ = _ ("_Photo");
+#line 347 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ photo.label = _tmp51_;
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp52_ = actions;
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp52__length1 = actions_length1;
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp53_ = photo;
+#line 348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add73 (&actions, &actions_length1, &_actions_size_, &_tmp53_);
+#line 350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54_.name = "PhotosMenu";
+#line 350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54_.stock_id = NULL;
+#line 350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54_.label = TRANSLATABLE;
+#line 350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54_.accelerator = NULL;
+#line 350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54_.tooltip = NULL;
+#line 350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp54_.callback = (GCallback) NULL;
+#line 350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ photos = _tmp54_;
+#line 351 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp55_ = _ ("_Photos");
+#line 351 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ photos.label = _tmp55_;
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp56_ = actions;
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp56__length1 = actions_length1;
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp57_ = photos;
+#line 352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add74 (&actions, &actions_length1, &_actions_size_, &_tmp57_);
+#line 354 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp58_.name = "EventsMenu";
+#line 354 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp58_.stock_id = NULL;
+#line 354 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp58_.label = TRANSLATABLE;
+#line 354 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp58_.accelerator = NULL;
+#line 354 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp58_.tooltip = NULL;
+#line 354 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp58_.callback = (GCallback) NULL;
+#line 354 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ event = _tmp58_;
+#line 355 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp59_ = _ ("Even_ts");
+#line 355 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ event.label = _tmp59_;
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp60_ = actions;
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp60__length1 = actions_length1;
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp61_ = event;
+#line 356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add75 (&actions, &actions_length1, &_actions_size_, &_tmp61_);
+#line 358 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp62_.name = "TagsMenu";
+#line 358 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp62_.stock_id = NULL;
+#line 358 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp62_.label = TRANSLATABLE;
+#line 358 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp62_.accelerator = NULL;
+#line 358 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp62_.tooltip = NULL;
+#line 358 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp62_.callback = (GCallback) NULL;
+#line 358 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ tags = _tmp62_;
+#line 359 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp63_ = _ ("Ta_gs");
+#line 359 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ tags.label = _tmp63_;
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp64_ = actions;
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp64__length1 = actions_length1;
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp65_ = tags;
+#line 360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add76 (&actions, &actions_length1, &_actions_size_, &_tmp65_);
+#line 362 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp66_.name = "HelpMenu";
+#line 362 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp66_.stock_id = NULL;
+#line 362 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp66_.label = TRANSLATABLE;
+#line 362 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp66_.accelerator = NULL;
+#line 362 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp66_.tooltip = NULL;
+#line 362 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp66_.callback = (GCallback) NULL;
+#line 362 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ help = _tmp66_;
+#line 363 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp67_ = _ ("_Help");
+#line 363 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ help.label = _tmp67_;
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp68_ = actions;
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp68__length1 = actions_length1;
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp69_ = help;
+#line 364 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add77 (&actions, &actions_length1, &_actions_size_, &_tmp69_);
+#line 366 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp70_ = actions;
+#line 366 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp70__length1 = actions_length1;
+#line 366 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (result_length1) {
+#line 366 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *result_length1 = _tmp70__length1;
+#line 3383 "LibraryWindow.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp70_;
+#line 366 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 3389 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_display_basic_properties_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_display_basic_properties ((LibraryWindow*) self, action);
+#line 3396 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add78 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 3407 "LibraryWindow.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3411 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_display_extended_properties_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_display_extended_properties ((LibraryWindow*) self, action);
+#line 3418 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add79 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 3429 "LibraryWindow.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3433 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_display_searchbar_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_display_searchbar ((LibraryWindow*) self, action);
+#line 3440 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add80 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 3451 "LibraryWindow.c"
+ }
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3455 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_display_sidebar_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_display_sidebar ((LibraryWindow*) self, action);
+#line 3462 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add81 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 3473 "LibraryWindow.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3477 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_display_toolbar_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_display_toolbar ((LibraryWindow*) self, action);
+#line 3484 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add82 (GtkToggleActionEntry** array, int* length, int* size, const GtkToggleActionEntry* value) {
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkToggleActionEntry, *array, *size);
+#line 3495 "LibraryWindow.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3499 "LibraryWindow.c"
+}
+
+
+static GtkToggleActionEntry* library_window_create_common_toggle_actions (LibraryWindow* self, int* result_length1) {
+ GtkToggleActionEntry* result = NULL;
+ GtkToggleActionEntry* actions = NULL;
+ GtkToggleActionEntry* _tmp0_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkToggleActionEntry basic_props = {0};
+ GtkToggleActionEntry _tmp1_ = {0};
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkToggleActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkToggleActionEntry _tmp5_ = {0};
+ GtkToggleActionEntry extended_props = {0};
+ GtkToggleActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkToggleActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkToggleActionEntry _tmp10_ = {0};
+ GtkToggleActionEntry searchbar = {0};
+ gboolean _tmp11_ = FALSE;
+ GtkToggleActionEntry _tmp12_ = {0};
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkToggleActionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GtkToggleActionEntry _tmp16_ = {0};
+ GtkToggleActionEntry sidebar = {0};
+ gboolean _tmp17_ = FALSE;
+ GtkToggleActionEntry _tmp18_ = {0};
+ const gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ GtkToggleActionEntry* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ GtkToggleActionEntry _tmp22_ = {0};
+ GtkToggleActionEntry toolbar = {0};
+ gboolean _tmp23_ = FALSE;
+ GtkToggleActionEntry _tmp24_ = {0};
+ const gchar* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+ GtkToggleActionEntry* _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ GtkToggleActionEntry _tmp28_ = {0};
+ GtkToggleActionEntry* _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+#line 369 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), NULL);
+#line 370 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = g_new0 (GtkToggleActionEntry, 0);
+#line 370 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ actions = _tmp0_;
+#line 370 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ actions_length1 = 0;
+#line 370 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _actions_size_ = actions_length1;
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.name = "CommonDisplayBasicProperties";
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.stock_id = NULL;
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.label = TRANSLATABLE;
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.accelerator = "<Ctrl><Shift>I";
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.tooltip = TRANSLATABLE;
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.callback = (GCallback) _library_window_on_display_basic_properties_gtk_action_callback;
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.is_active = FALSE;
+#line 372 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ basic_props = _tmp1_;
+#line 374 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _ ("_Basic Information");
+#line 374 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ basic_props.label = _tmp2_;
+#line 375 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _ ("Display basic information for the selection");
+#line 375 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ basic_props.tooltip = _tmp3_;
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = actions;
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4__length1 = actions_length1;
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = basic_props;
+#line 376 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add78 (&actions, &actions_length1, &_actions_size_, &_tmp5_);
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.name = "CommonDisplayExtendedProperties";
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.stock_id = NULL;
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.label = TRANSLATABLE;
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.accelerator = "<Ctrl><Shift>X";
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.tooltip = TRANSLATABLE;
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.callback = (GCallback) _library_window_on_display_extended_properties_gtk_action_callback;
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.is_active = FALSE;
+#line 378 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ extended_props = _tmp6_;
+#line 380 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _ ("E_xtended Information");
+#line 380 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ extended_props.label = _tmp7_;
+#line 381 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _ ("Display extended information for the selection");
+#line 381 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ extended_props.tooltip = _tmp8_;
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = actions;
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9__length1 = actions_length1;
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = extended_props;
+#line 382 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add79 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = self->priv->is_search_toolbar_visible;
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_.name = "CommonDisplaySearchbar";
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_.stock_id = "edit-find";
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_.label = TRANSLATABLE;
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_.accelerator = "F8";
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_.tooltip = TRANSLATABLE;
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_.callback = (GCallback) _library_window_on_display_searchbar_gtk_action_callback;
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_.is_active = _tmp11_;
+#line 384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ searchbar = _tmp12_;
+#line 386 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = _ ("_Search Bar");
+#line 386 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ searchbar.label = _tmp13_;
+#line 387 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _ ("Display the search bar");
+#line 387 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ searchbar.tooltip = _tmp14_;
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = actions;
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15__length1 = actions_length1;
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = searchbar;
+#line 388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add80 (&actions, &actions_length1, &_actions_size_, &_tmp16_);
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = library_window_is_sidebar_visible (self);
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_.name = "CommonDisplaySidebar";
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_.stock_id = NULL;
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_.label = TRANSLATABLE;
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_.accelerator = "F9";
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_.tooltip = TRANSLATABLE;
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_.callback = (GCallback) _library_window_on_display_sidebar_gtk_action_callback;
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_.is_active = _tmp17_;
+#line 390 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar = _tmp18_;
+#line 392 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = _ ("S_idebar");
+#line 392 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar.label = _tmp19_;
+#line 393 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = _ ("Display the sidebar");
+#line 393 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar.tooltip = _tmp20_;
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = actions;
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21__length1 = actions_length1;
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = sidebar;
+#line 394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add81 (&actions, &actions_length1, &_actions_size_, &_tmp22_);
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = library_window_is_toolbar_visible (self);
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_.name = "CommonDisplayToolbar";
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_.stock_id = NULL;
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_.label = TRANSLATABLE;
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_.accelerator = "<Ctrl>F9";
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_.tooltip = TRANSLATABLE;
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_.callback = (GCallback) _library_window_on_display_toolbar_gtk_action_callback;
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_.is_active = _tmp23_;
+#line 396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ toolbar = _tmp24_;
+#line 398 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = _ ("T_oolbar");
+#line 398 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ toolbar.label = _tmp25_;
+#line 399 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = _ ("Display the tool bar");
+#line 399 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ toolbar.tooltip = _tmp26_;
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = actions;
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27__length1 = actions_length1;
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = toolbar;
+#line 400 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add82 (&actions, &actions_length1, &_actions_size_, &_tmp28_);
+#line 402 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = actions;
+#line 402 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29__length1 = actions_length1;
+#line 402 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (result_length1) {
+#line 402 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *result_length1 = _tmp29__length1;
+#line 3733 "LibraryWindow.c"
+ }
+#line 402 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp29_;
+#line 402 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 3739 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add83 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 3750 "LibraryWindow.c"
+ }
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3754 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add84 (GtkRadioActionEntry** array, int* length, int* size, const GtkRadioActionEntry* value) {
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkRadioActionEntry, *array, *size);
+#line 3765 "LibraryWindow.c"
+ }
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = *value;
+#line 3769 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_events_sort_changed_gtk_radio_action_callback (GtkAction* action, GtkAction* current, gpointer self) {
+#line 422 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_events_sort_changed ((LibraryWindow*) self, action, current);
+#line 3776 "LibraryWindow.c"
+}
+
+
+static void library_window_add_common_radio_actions (LibraryWindow* self, GtkActionGroup* group) {
+ GtkRadioActionEntry* actions = NULL;
+ GtkRadioActionEntry* _tmp0_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkRadioActionEntry ascending = {0};
+ GtkRadioActionEntry _tmp1_ = {0};
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GtkRadioActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkRadioActionEntry _tmp5_ = {0};
+ GtkRadioActionEntry descending = {0};
+ GtkRadioActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkRadioActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkRadioActionEntry _tmp10_ = {0};
+ GtkActionGroup* _tmp11_ = NULL;
+ GtkRadioActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+#line 405 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 405 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION_GROUP (group));
+#line 406 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = g_new0 (GtkRadioActionEntry, 0);
+#line 406 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ actions = _tmp0_;
+#line 406 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ actions_length1 = 0;
+#line 406 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _actions_size_ = actions_length1;
+#line 408 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.name = "CommonSortEventsAscending";
+#line 408 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.stock_id = RESOURCES_SORT_ASCENDING_LABEL;
+#line 408 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.label = TRANSLATABLE;
+#line 408 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.accelerator = NULL;
+#line 408 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.tooltip = TRANSLATABLE;
+#line 408 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_.value = LIBRARY_WINDOW_SORT_EVENTS_ORDER_ASCENDING;
+#line 408 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ascending = _tmp1_;
+#line 411 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _ ("_Ascending");
+#line 411 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ascending.label = _tmp2_;
+#line 412 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _ ("Sort photos in an ascending order");
+#line 412 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ascending.tooltip = _tmp3_;
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = actions;
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4__length1 = actions_length1;
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = ascending;
+#line 413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add83 (&actions, &actions_length1, &_actions_size_, &_tmp5_);
+#line 415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.name = "CommonSortEventsDescending";
+#line 415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.stock_id = RESOURCES_SORT_DESCENDING_LABEL;
+#line 415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.label = TRANSLATABLE;
+#line 415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.accelerator = NULL;
+#line 415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.tooltip = TRANSLATABLE;
+#line 415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_.value = LIBRARY_WINDOW_SORT_EVENTS_ORDER_DESCENDING;
+#line 415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ descending = _tmp6_;
+#line 418 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _ ("D_escending");
+#line 418 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ descending.label = _tmp7_;
+#line 419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _ ("Sort photos in a descending order");
+#line 419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ descending.tooltip = _tmp8_;
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = actions;
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9__length1 = actions_length1;
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = descending;
+#line 420 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add84 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 422 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = group;
+#line 422 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = actions;
+#line 422 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12__length1 = actions_length1;
+#line 422 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_action_group_add_radio_actions (_tmp11_, _tmp12_, _tmp12__length1, LIBRARY_WINDOW_SORT_EVENTS_ORDER_ASCENDING, (GCallback) _library_window_on_events_sort_changed_gtk_radio_action_callback, self);
+#line 405 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ actions = (g_free (actions), NULL);
+#line 3884 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add85 (GtkActionGroup*** array, int* length, int* size, GtkActionGroup* value) {
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionGroup*, *array, (*size) + 1);
+#line 3895 "LibraryWindow.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = value;
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[*length] = NULL;
+#line 3901 "LibraryWindow.c"
+}
+
+
+static void _vala_array_add86 (GtkActionGroup*** array, int* length, int* size, GtkActionGroup* value) {
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if ((*length) == (*size)) {
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *array = g_renew (GtkActionGroup*, *array, (*size) + 1);
+#line 3912 "LibraryWindow.c"
+ }
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[(*length)++] = value;
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ (*array)[*length] = NULL;
+#line 3918 "LibraryWindow.c"
+}
+
+
+static GtkActionGroup** library_window_real_create_common_action_groups (AppWindow* base, int* result_length1) {
+ LibraryWindow * self;
+ GtkActionGroup** result = NULL;
+ GtkActionGroup** groups = NULL;
+ gint _tmp0_ = 0;
+ GtkActionGroup** _tmp1_ = NULL;
+ gint groups_length1 = 0;
+ gint _groups_size_ = 0;
+ GtkActionGroup* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ GtkActionEntry* _tmp4_ = NULL;
+ GtkActionEntry* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GtkActionGroup* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ GtkToggleActionEntry* _tmp8_ = NULL;
+ GtkToggleActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionGroup* _tmp10_ = NULL;
+ GtkAction* action = NULL;
+ GtkActionGroup* _tmp11_ = NULL;
+ GtkAction* _tmp12_ = NULL;
+ GtkAction* _tmp13_ = NULL;
+ GtkAction* _tmp14_ = NULL;
+ GtkActionGroup** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ GtkActionGroup* _tmp18_ = NULL;
+ GtkActionGroup* _tmp19_ = NULL;
+ GtkActionGroup** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ SearchFilterActions* _tmp21_ = NULL;
+ GtkActionGroup* _tmp22_ = NULL;
+ GtkActionGroup** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+#line 425 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 426 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = APP_WINDOW_CLASS (library_window_parent_class)->create_common_action_groups (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), &_tmp0_);
+#line 426 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ groups = _tmp1_;
+#line 426 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ groups_length1 = _tmp0_;
+#line 426 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _groups_size_ = groups_length1;
+#line 428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->common_action_group;
+#line 428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = library_window_create_common_actions (self, &_tmp3_);
+#line 428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5__length1 = _tmp3_;
+#line 428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_action_group_add_actions (_tmp2_, _tmp5_, _tmp3_, self);
+#line 428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = (g_free (_tmp5_), NULL);
+#line 429 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->common_action_group;
+#line 429 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = library_window_create_common_toggle_actions (self, &_tmp7_);
+#line 429 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 429 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9__length1 = _tmp7_;
+#line 429 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_action_group_add_toggle_actions (_tmp6_, _tmp9_, _tmp7_, self);
+#line 429 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = (g_free (_tmp9_), NULL);
+#line 430 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = self->priv->common_action_group;
+#line 430 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_add_common_radio_actions (self, _tmp10_);
+#line 432 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = self->priv->common_action_group;
+#line 432 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = gtk_action_group_get_action (_tmp11_, "CommonDisplaySearchbar");
+#line 432 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 432 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ action = _tmp13_;
+#line 433 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = action;
+#line 433 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp14_ != NULL) {
+#line 4006 "LibraryWindow.c"
+ GtkAction* _tmp15_ = NULL;
+ GtkAction* _tmp16_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = action;
+#line 434 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_action_set_short_label (_tmp15_, RESOURCES_FIND_LABEL);
+#line 435 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = action;
+#line 435 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_action_set_is_important (_tmp16_, TRUE);
+#line 4017 "LibraryWindow.c"
+ }
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = groups;
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17__length1 = groups_length1;
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = self->priv->common_action_group;
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = _g_object_ref0 (_tmp18_);
+#line 438 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add85 (&groups, &groups_length1, &_groups_size_, _tmp19_);
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = groups;
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20__length1 = groups_length1;
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = self->priv->search_actions;
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = search_filter_actions_get_action_group (_tmp21_);
+#line 439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_array_add86 (&groups, &groups_length1, &_groups_size_, _tmp22_);
+#line 441 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = groups;
+#line 441 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23__length1 = groups_length1;
+#line 441 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (result_length1) {
+#line 441 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *result_length1 = _tmp23__length1;
+#line 4047 "LibraryWindow.c"
+ }
+#line 441 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp23_;
+#line 441 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (action);
+#line 441 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4055 "LibraryWindow.c"
+}
+
+
+static void library_window_real_replace_common_placeholders (AppWindow* base, GtkUIManager* ui) {
+ LibraryWindow * self;
+ GtkUIManager* _tmp0_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_UI_MANAGER (ui));
+#line 445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = ui;
+#line 445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ APP_WINDOW_CLASS (library_window_parent_class)->replace_common_placeholders (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), _tmp0_);
+#line 4070 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_view_filter_installed_view_collection_view_filter_installed (ViewCollection* _sender, ViewFilter* filer, gpointer self) {
+#line 453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_view_filter_installed ((LibraryWindow*) self, filer);
+#line 4077 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_view_filter_removed_view_collection_view_filter_removed (ViewCollection* _sender, ViewFilter* filer, gpointer self) {
+#line 454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_view_filter_removed ((LibraryWindow*) self, filer);
+#line 4084 "LibraryWindow.c"
+}
+
+
+static void library_window_real_switched_pages (PageWindow* base, Page* old_page, Page* new_page) {
+ LibraryWindow * self;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp11_ = NULL;
+ SearchFilterActions* _tmp18_ = NULL;
+ Page* _tmp19_ = NULL;
+ Page* _tmp20_ = NULL;
+#line 448 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 448 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail ((old_page == NULL) || IS_PAGE (old_page));
+#line 448 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail ((new_page == NULL) || IS_PAGE (new_page));
+#line 449 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = old_page;
+#line 449 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = new_page;
+#line 449 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ PAGE_WINDOW_CLASS (library_window_parent_class)->switched_pages (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), TYPE_PAGE_WINDOW, PageWindow), _tmp0_, _tmp1_);
+#line 452 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = old_page;
+#line 452 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 4113 "LibraryWindow.c"
+ Page* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ Page* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+#line 453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = old_page;
+#line 453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = page_get_view (_tmp3_);
+#line 453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("view-filter-installed", TYPE_VIEW_COLLECTION, &_tmp6_, NULL, FALSE);
+#line 453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp5_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp6_, 0, NULL, (GCallback) _library_window_on_view_filter_installed_view_collection_view_filter_installed, self);
+#line 453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp5_);
+#line 454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = old_page;
+#line 454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = page_get_view (_tmp7_);
+#line 454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("view-filter-removed", TYPE_VIEW_COLLECTION, &_tmp10_, NULL, FALSE);
+#line 454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _library_window_on_view_filter_removed_view_collection_view_filter_removed, self);
+#line 454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp9_);
+#line 4146 "LibraryWindow.c"
+ }
+#line 457 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = new_page;
+#line 457 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp11_ != NULL) {
+#line 4152 "LibraryWindow.c"
+ Page* _tmp12_ = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ Page* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+#line 458 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = new_page;
+#line 458 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = page_get_view (_tmp12_);
+#line 458 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 458 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp14_, "view-filter-installed", (GCallback) _library_window_on_view_filter_installed_view_collection_view_filter_installed, self, 0);
+#line 458 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = new_page;
+#line 459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = page_get_view (_tmp15_);
+#line 459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = _tmp16_;
+#line 459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp17_, "view-filter-removed", (GCallback) _library_window_on_view_filter_removed_view_collection_view_filter_removed, self, 0);
+#line 459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 4179 "LibraryWindow.c"
+ }
+#line 462 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = self->priv->search_actions;
+#line 462 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = old_page;
+#line 462 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = new_page;
+#line 462 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ search_filter_actions_monitor_page_contents (_tmp18_, _tmp19_, _tmp20_);
+#line 4189 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_view_filter_refreshed_view_filter_refresh (ViewFilter* _sender, gpointer self) {
+#line 466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_view_filter_refreshed ((LibraryWindow*) self);
+#line 4196 "LibraryWindow.c"
+}
+
+
+static void library_window_on_view_filter_installed (LibraryWindow* self, ViewFilter* filter) {
+ ViewFilter* _tmp0_ = NULL;
+#line 465 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 465 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_VIEW_FILTER (filter));
+#line 466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = filter;
+#line 466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (_tmp0_, "refresh", (GCallback) _library_window_on_view_filter_refreshed_view_filter_refresh, self, 0);
+#line 4210 "LibraryWindow.c"
+}
+
+
+static void library_window_on_view_filter_removed (LibraryWindow* self, ViewFilter* filter) {
+ ViewFilter* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 469 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 469 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_VIEW_FILTER (filter));
+#line 470 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = filter;
+#line 470 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("refresh", TYPE_VIEW_FILTER, &_tmp1_, NULL, FALSE);
+#line 470 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _library_window_on_view_filter_refreshed_view_filter_refresh, self);
+#line 4227 "LibraryWindow.c"
+}
+
+
+static void library_window_on_view_filter_refreshed (LibraryWindow* self) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GtkToggleAction* display_searchbar = NULL;
+ GtkAction* _tmp6_ = NULL;
+ GtkToggleAction* _tmp7_ = NULL;
+ GtkToggleAction* _tmp8_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_get_view (_tmp1_);
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = view_collection_are_items_filtered_out (_tmp3_);
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = !_tmp4_;
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp3_);
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp5_) {
+#line 477 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 4264 "LibraryWindow.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = app_window_get_common_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonDisplaySearchbar");
+#line 480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp6_) : NULL;
+#line 480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp7_ == NULL) {
+#line 480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp6_);
+#line 4274 "LibraryWindow.c"
+ }
+#line 480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ display_searchbar = _tmp7_;
+#line 482 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = display_searchbar;
+#line 482 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp8_ != NULL) {
+#line 4282 "LibraryWindow.c"
+ GtkToggleAction* _tmp9_ = NULL;
+#line 483 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = display_searchbar;
+#line 483 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_toggle_action_set_active (_tmp9_, TRUE);
+#line 4288 "LibraryWindow.c"
+ }
+#line 473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (display_searchbar);
+#line 4292 "LibraryWindow.c"
+}
+
+
+static void library_window_real_show_all (GtkWidget* base) {
+ LibraryWindow * self;
+ GtkToggleAction* basic_properties_action = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+ GtkToggleAction* _tmp4_ = NULL;
+ GtkToggleAction* _tmp5_ = NULL;
+ GtkToggleAction* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GtkToggleAction* searchbar_action = NULL;
+ Page* _tmp9_ = NULL;
+ Page* _tmp10_ = NULL;
+ GtkAction* _tmp11_ = NULL;
+ GtkToggleAction* _tmp12_ = NULL;
+ GtkToggleAction* _tmp13_ = NULL;
+ GtkToggleAction* _tmp14_ = NULL;
+ CheckerboardPage* current_page = NULL;
+ Page* _tmp15_ = NULL;
+ CheckerboardPage* _tmp16_ = NULL;
+ CheckerboardPage* _tmp17_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ CheckerboardPage* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 488 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ GTK_WIDGET_CLASS (library_window_parent_class)->show_all (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), gtk_widget_get_type (), GtkWidget));
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_get_common_action (_tmp1_, "CommonDisplayBasicProperties", TRUE);
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp2_) : NULL;
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ == NULL) {
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 4337 "LibraryWindow.c"
+ }
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ basic_properties_action = _tmp4_;
+#line 492 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = basic_properties_action;
+#line 492 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (_tmp5_ != NULL, "basic_properties_action != null");
+#line 494 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = basic_properties_action;
+#line 494 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = gtk_toggle_action_get_active (_tmp6_);
+#line 494 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp7_) {
+#line 4355 "LibraryWindow.c"
+ GtkFrame* _tmp8_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = self->priv->bottom_frame;
+#line 495 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
+#line 4361 "LibraryWindow.c"
+ }
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = page_get_common_action (_tmp10_, "CommonDisplaySearchbar", TRUE);
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp11_) : NULL;
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp12_ == NULL) {
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp11_);
+#line 4375 "LibraryWindow.c"
+ }
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = _tmp12_;
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp10_);
+#line 497 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ searchbar_action = _tmp13_;
+#line 499 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = searchbar_action;
+#line 499 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (_tmp14_ != NULL, "searchbar_action != null");
+#line 502 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 502 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, TYPE_CHECKERBOARD_PAGE) ? ((CheckerboardPage*) _tmp15_) : NULL;
+#line 502 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp16_ == NULL) {
+#line 502 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp15_);
+#line 4395 "LibraryWindow.c"
+ }
+#line 502 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ current_page = _tmp16_;
+#line 503 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = current_page;
+#line 503 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp17_ != NULL) {
+#line 4403 "LibraryWindow.c"
+ CheckerboardPage* _tmp18_ = NULL;
+#line 504 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = current_page;
+#line 504 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_init_view_filter (self, _tmp18_);
+#line 4409 "LibraryWindow.c"
+ }
+#line 506 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = library_window_should_show_search_bar (self);
+#line 506 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = current_page;
+#line 506 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_toggle_search_bar (self, _tmp19_, _tmp20_);
+#line 509 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = library_window_is_sidebar_visible (self);
+#line 509 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_set_sidebar_visible (self, _tmp21_);
+#line 487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (current_page);
+#line 487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (searchbar_action);
+#line 487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (basic_properties_action);
+#line 4427 "LibraryWindow.c"
+}
+
+
+LibraryWindow* library_window_get_app (void) {
+ LibraryWindow* result = NULL;
+ AppWindow* _tmp0_ = NULL;
+ AppWindow* _tmp1_ = NULL;
+ LibraryWindow* _tmp2_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = app_window_instance;
+#line 513 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_WINDOW), "instance is LibraryWindow");
+#line 515 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = app_window_instance;
+#line 515 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_LIBRARY_WINDOW, LibraryWindow));
+#line 515 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp2_;
+#line 515 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4448 "LibraryWindow.c"
+}
+
+
+gboolean library_window_is_mount_uri_supported (const gchar* uri) {
+ gboolean result = FALSE;
+#line 519 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (uri != NULL, FALSE);
+#line 4456 "LibraryWindow.c"
+ {
+ const gchar** scheme_collection = NULL;
+ gint scheme_collection_length1 = 0;
+ gint _scheme_collection_size_ = 0;
+ gint scheme_it = 0;
+#line 520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ scheme_collection = LIBRARY_WINDOW_SUPPORTED_MOUNT_SCHEMES;
+#line 520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ scheme_collection_length1 = G_N_ELEMENTS (LIBRARY_WINDOW_SUPPORTED_MOUNT_SCHEMES);
+#line 520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ for (scheme_it = 0; scheme_it < G_N_ELEMENTS (LIBRARY_WINDOW_SUPPORTED_MOUNT_SCHEMES); scheme_it = scheme_it + 1) {
+#line 4468 "LibraryWindow.c"
+ gchar* _tmp0_ = NULL;
+ gchar* scheme = NULL;
+#line 520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = g_strdup (scheme_collection[scheme_it]);
+#line 520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ scheme = _tmp0_;
+#line 4475 "LibraryWindow.c"
+ {
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 521 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = uri;
+#line 521 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = scheme;
+#line 521 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = g_str_has_prefix (_tmp1_, _tmp2_);
+#line 521 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_) {
+#line 522 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 522 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (scheme);
+#line 522 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4494 "LibraryWindow.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (scheme);
+#line 4498 "LibraryWindow.c"
+ }
+ }
+ }
+#line 525 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 525 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4506 "LibraryWindow.c"
+}
+
+
+static gchar* library_window_real_get_app_role (AppWindow* base) {
+ LibraryWindow * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 528 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 529 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = g_strdup (RESOURCES_APP_LIBRARY_ROLE);
+#line 529 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp0_;
+#line 529 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4522 "LibraryWindow.c"
+}
+
+
+void library_window_rename_tag_in_sidebar (LibraryWindow* self, Tag* tag) {
+ TagsSidebarEntry* entry = NULL;
+ TagsBranch* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ TagsSidebarEntry* _tmp2_ = NULL;
+ TagsSidebarEntry* _tmp3_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 532 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_TAG (tag));
+#line 533 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->tags_branch;
+#line 533 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = tag;
+#line 533 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = tags_branch_get_entry_for_tag (_tmp0_, _tmp1_);
+#line 533 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp2_;
+#line 534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = entry;
+#line 534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 4548 "LibraryWindow.c"
+ SidebarTree* _tmp4_ = NULL;
+ TagsSidebarEntry* _tmp5_ = NULL;
+#line 535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->sidebar_tree;
+#line 535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = entry;
+#line 535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_rename_entry_in_place (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 4557 "LibraryWindow.c"
+ } else {
+#line 537 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:537: No tag entry found for rename");
+#line 4561 "LibraryWindow.c"
+ }
+#line 532 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 4565 "LibraryWindow.c"
+}
+
+
+void library_window_rename_event_in_sidebar (LibraryWindow* self, Event* event) {
+ EventsEventEntry* entry = NULL;
+ EventsBranch* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ EventsEventEntry* _tmp2_ = NULL;
+ EventsEventEntry* _tmp3_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 540 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 541 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->events_branch;
+#line 541 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = event;
+#line 541 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = events_branch_get_entry_for_event (_tmp0_, _tmp1_);
+#line 541 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp2_;
+#line 542 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = entry;
+#line 542 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 4591 "LibraryWindow.c"
+ SidebarTree* _tmp4_ = NULL;
+ EventsEventEntry* _tmp5_ = NULL;
+#line 543 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->sidebar_tree;
+#line 543 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = entry;
+#line 543 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_rename_entry_in_place (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 4600 "LibraryWindow.c"
+ } else {
+#line 545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:545: No event entry found for rename");
+#line 4604 "LibraryWindow.c"
+ }
+#line 540 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 4608 "LibraryWindow.c"
+}
+
+
+void library_window_rename_search_in_sidebar (LibraryWindow* self, SavedSearch* search) {
+ SearchesSidebarEntry* entry = NULL;
+ SearchesBranch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ SearchesSidebarEntry* _tmp2_ = NULL;
+ SearchesSidebarEntry* _tmp3_ = NULL;
+#line 548 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 548 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 549 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->saved_search_branch;
+#line 549 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = search;
+#line 549 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = searches_branch_get_entry_for_saved_search (_tmp0_, _tmp1_);
+#line 549 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp2_;
+#line 550 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = entry;
+#line 550 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 4634 "LibraryWindow.c"
+ SidebarTree* _tmp4_ = NULL;
+ SearchesSidebarEntry* _tmp5_ = NULL;
+#line 551 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->sidebar_tree;
+#line 551 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = entry;
+#line 551 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_rename_entry_in_place (_tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 4643 "LibraryWindow.c"
+ } else {
+#line 553 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:553: No search entry found for rename");
+#line 4647 "LibraryWindow.c"
+ }
+#line 548 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 4651 "LibraryWindow.c"
+}
+
+
+static void library_window_real_on_quit (AppWindow* base) {
+ LibraryWindow * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ Dimensions _tmp3_ = {0};
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ GtkPaned* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 556 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)->maximized;
+#line 557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow)->dimensions;
+#line 557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_library_window_state (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, &_tmp3_);
+#line 557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->client_paned;
+#line 559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = gtk_paned_get_position (_tmp6_);
+#line 559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_sidebar_position (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp8_);
+#line 559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 561 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ APP_WINDOW_CLASS (library_window_parent_class)->on_quit (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow));
+#line 4696 "LibraryWindow.c"
+}
+
+
+static Photo* library_window_get_start_fullscreen_photo (LibraryWindow* self, CollectionPage* page) {
+ Photo* result = NULL;
+ ViewCollection* view = NULL;
+ CollectionPage* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ GeeList* sources = NULL;
+ GeeList* _tmp9_ = NULL;
+ Photo* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GeeList* _tmp12_ = NULL;
+#line 564 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), NULL);
+#line 564 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (page), NULL);
+#line 565 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 565 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page));
+#line 565 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp1_;
+#line 569 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = view;
+#line 569 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = view_collection_get_selected_count (_tmp3_);
+#line 569 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp4_ > 0) {
+#line 4729 "LibraryWindow.c"
+ ViewCollection* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+#line 570 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = view;
+#line 570 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = view_collection_get_selected_sources_of_type (_tmp5_, TYPE_LIBRARY_PHOTO);
+#line 570 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 570 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp6_;
+#line 4740 "LibraryWindow.c"
+ } else {
+ ViewCollection* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+#line 571 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = view;
+#line 571 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = view_collection_get_sources_of_type (_tmp7_, TYPE_LIBRARY_PHOTO);
+#line 571 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 571 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp8_;
+#line 4752 "LibraryWindow.c"
+ }
+#line 569 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _g_object_ref0 (_tmp2_);
+#line 569 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sources = _tmp9_;
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = sources;
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp12_ != NULL) {
+#line 4762 "LibraryWindow.c"
+ GeeList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = sources;
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = _tmp14_;
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = _tmp15_ != 0;
+#line 4774 "LibraryWindow.c"
+ } else {
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = FALSE;
+#line 4778 "LibraryWindow.c"
+ }
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp11_) {
+#line 4782 "LibraryWindow.c"
+ GeeList* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+#line 574 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = sources;
+#line 574 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = gee_list_get (_tmp16_, 0);
+#line 574 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp10_);
+#line 574 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST ((DataSource*) _tmp17_, TYPE_PHOTO, Photo);
+#line 4793 "LibraryWindow.c"
+ } else {
+#line 574 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp10_);
+#line 574 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = NULL;
+#line 4799 "LibraryWindow.c"
+ }
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp10_;
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (sources);
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 573 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4811 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_get_fullscreen_photo (LibraryWindow* self, Page* page, CollectionPage** collection, Photo** start, ViewCollection** view_collection) {
+ CollectionPage* _vala_collection = NULL;
+ Photo* _vala_start = NULL;
+ ViewCollection* _vala_view_collection = NULL;
+ gboolean result = FALSE;
+ Page* _tmp0_ = NULL;
+ Page* _tmp8_ = NULL;
+ Page* _tmp30_ = NULL;
+#line 577 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), FALSE);
+#line 577 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_PAGE (page), FALSE);
+#line 579 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 579 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_collection = NULL;
+#line 580 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 580 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_start = NULL;
+#line 581 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 581 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_view_collection = NULL;
+#line 584 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 584 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_COLLECTION_PAGE)) {
+#line 4843 "LibraryWindow.c"
+ Page* _tmp1_ = NULL;
+ CollectionPage* _tmp2_ = NULL;
+ Photo* photo = NULL;
+ CollectionPage* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ Photo* _tmp5_ = NULL;
+ Photo* _tmp6_ = NULL;
+ Photo* _tmp7_ = NULL;
+#line 585 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page;
+#line 585 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_COLLECTION_PAGE, CollectionPage));
+#line 585 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 585 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_collection = _tmp2_;
+#line 586 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _vala_collection;
+#line 586 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = library_window_get_start_fullscreen_photo (self, _tmp3_);
+#line 586 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ photo = _tmp4_;
+#line 587 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = photo;
+#line 587 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp5_ == NULL) {
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (photo);
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 4878 "LibraryWindow.c"
+ } else {
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 4882 "LibraryWindow.c"
+ }
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 4888 "LibraryWindow.c"
+ } else {
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 4892 "LibraryWindow.c"
+ }
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 4898 "LibraryWindow.c"
+ } else {
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 4902 "LibraryWindow.c"
+ }
+#line 588 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4906 "LibraryWindow.c"
+ }
+#line 590 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = photo;
+#line 590 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 590 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 590 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_start = _tmp7_;
+#line 591 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 591 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_view_collection = NULL;
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (photo);
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 4928 "LibraryWindow.c"
+ } else {
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 4932 "LibraryWindow.c"
+ }
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 4938 "LibraryWindow.c"
+ } else {
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 4942 "LibraryWindow.c"
+ }
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 4948 "LibraryWindow.c"
+ } else {
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 4952 "LibraryWindow.c"
+ }
+#line 593 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 4956 "LibraryWindow.c"
+ }
+#line 596 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = page;
+#line 596 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, TYPE_EVENTS_DIRECTORY_PAGE)) {
+#line 4962 "LibraryWindow.c"
+ ViewCollection* view = NULL;
+ Page* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ Event* event = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ DataObject* _tmp14_ = NULL;
+ DataView* _tmp15_ = NULL;
+ DataSource* _tmp16_ = NULL;
+ Event* _tmp17_ = NULL;
+ Event* _tmp18_ = NULL;
+ EventsEventEntry* entry = NULL;
+ EventsBranch* _tmp19_ = NULL;
+ Event* _tmp20_ = NULL;
+ EventsEventEntry* _tmp21_ = NULL;
+ EventsEventEntry* _tmp22_ = NULL;
+ EventsEventEntry* _tmp23_ = NULL;
+ Page* _tmp24_ = NULL;
+ Photo* photo = NULL;
+ CollectionPage* _tmp25_ = NULL;
+ Photo* _tmp26_ = NULL;
+ Photo* _tmp27_ = NULL;
+ Photo* _tmp28_ = NULL;
+ Photo* _tmp29_ = NULL;
+#line 597 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = page;
+#line 597 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = page_get_view (_tmp9_);
+#line 597 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp10_;
+#line 598 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = view;
+#line 598 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_COLLECTION, DataCollection));
+#line 598 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp12_ == 0) {
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5008 "LibraryWindow.c"
+ } else {
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5012 "LibraryWindow.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5018 "LibraryWindow.c"
+ } else {
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5022 "LibraryWindow.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5028 "LibraryWindow.c"
+ } else {
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5032 "LibraryWindow.c"
+ }
+#line 599 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5036 "LibraryWindow.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = view;
+#line 601 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = data_collection_get_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_DATA_COLLECTION, DataCollection), 0);
+#line 601 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_VIEW, DataView);
+#line 601 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = data_view_get_source (_tmp15_);
+#line 601 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_EVENT, Event);
+#line 601 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp15_);
+#line 601 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ event = _tmp17_;
+#line 602 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = event;
+#line 602 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp18_ == NULL) {
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (event);
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5066 "LibraryWindow.c"
+ } else {
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5070 "LibraryWindow.c"
+ }
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5076 "LibraryWindow.c"
+ } else {
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5080 "LibraryWindow.c"
+ }
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5086 "LibraryWindow.c"
+ } else {
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5090 "LibraryWindow.c"
+ }
+#line 603 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5094 "LibraryWindow.c"
+ }
+#line 605 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = self->priv->events_branch;
+#line 605 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = event;
+#line 605 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = events_branch_get_entry_for_event (_tmp19_, _tmp20_);
+#line 605 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp21_;
+#line 606 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = entry;
+#line 606 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp22_ == NULL) {
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (event);
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5120 "LibraryWindow.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5124 "LibraryWindow.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5130 "LibraryWindow.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5134 "LibraryWindow.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5140 "LibraryWindow.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5144 "LibraryWindow.c"
+ }
+#line 607 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5148 "LibraryWindow.c"
+ }
+#line 609 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = entry;
+#line 609 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 609 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 609 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_collection = G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, TYPE_EVENT_PAGE, EventPage), TYPE_COLLECTION_PAGE, CollectionPage);
+#line 610 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = _vala_collection;
+#line 610 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = library_window_get_start_fullscreen_photo (self, _tmp25_);
+#line 610 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ photo = _tmp26_;
+#line 611 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = photo;
+#line 611 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp27_ == NULL) {
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (photo);
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (event);
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5182 "LibraryWindow.c"
+ } else {
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5186 "LibraryWindow.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5192 "LibraryWindow.c"
+ } else {
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5196 "LibraryWindow.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5202 "LibraryWindow.c"
+ } else {
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5206 "LibraryWindow.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5210 "LibraryWindow.c"
+ }
+#line 614 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = photo;
+#line 614 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = _g_object_ref0 (_tmp28_);
+#line 614 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 614 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_start = _tmp29_;
+#line 615 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 615 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_view_collection = NULL;
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (photo);
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (event);
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5238 "LibraryWindow.c"
+ } else {
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5242 "LibraryWindow.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5248 "LibraryWindow.c"
+ } else {
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5252 "LibraryWindow.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5258 "LibraryWindow.c"
+ } else {
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5262 "LibraryWindow.c"
+ }
+#line 617 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5266 "LibraryWindow.c"
+ }
+#line 620 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp30_ = page;
+#line 620 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, TYPE_LIBRARY_PHOTO_PAGE)) {
+#line 5272 "LibraryWindow.c"
+ LibraryPhotoPage* photo_page = NULL;
+ Page* _tmp31_ = NULL;
+ LibraryPhotoPage* _tmp32_ = NULL;
+ CollectionPage* controller = NULL;
+ LibraryPhotoPage* _tmp33_ = NULL;
+ CollectionPage* _tmp34_ = NULL;
+ CollectionPage* _tmp35_ = NULL;
+ LibraryPhotoPage* _tmp36_ = NULL;
+ gboolean _tmp37_ = FALSE;
+ CollectionPage* _tmp38_ = NULL;
+ CollectionPage* _tmp39_ = NULL;
+ LibraryPhotoPage* _tmp40_ = NULL;
+ Photo* _tmp41_ = NULL;
+ LibraryPhotoPage* _tmp42_ = NULL;
+ ViewCollection* _tmp43_ = NULL;
+#line 621 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_ = page;
+#line 621 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage));
+#line 621 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ photo_page = _tmp32_;
+#line 623 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = photo_page;
+#line 623 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_ = library_photo_page_get_controller_page (_tmp33_);
+#line 623 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ controller = _tmp34_;
+#line 624 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp35_ = controller;
+#line 624 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp35_ == NULL) {
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (controller);
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (photo_page);
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5314 "LibraryWindow.c"
+ } else {
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5318 "LibraryWindow.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5324 "LibraryWindow.c"
+ } else {
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5328 "LibraryWindow.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5334 "LibraryWindow.c"
+ } else {
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5338 "LibraryWindow.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5342 "LibraryWindow.c"
+ }
+#line 627 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36_ = photo_page;
+#line 627 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp37_ = editing_host_page_has_photo (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 627 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp37_) {
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (controller);
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (photo_page);
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5360 "LibraryWindow.c"
+ } else {
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5364 "LibraryWindow.c"
+ }
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5370 "LibraryWindow.c"
+ } else {
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5374 "LibraryWindow.c"
+ }
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5380 "LibraryWindow.c"
+ } else {
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5384 "LibraryWindow.c"
+ }
+#line 628 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5388 "LibraryWindow.c"
+ }
+#line 630 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_ = controller;
+#line 630 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp39_ = _g_object_ref0 (_tmp38_);
+#line 630 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 630 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_collection = _tmp39_;
+#line 631 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp40_ = photo_page;
+#line 631 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp41_ = editing_host_page_get_photo (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, TYPE_EDITING_HOST_PAGE, EditingHostPage));
+#line 631 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 631 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_start = _tmp41_;
+#line 632 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_ = photo_page;
+#line 632 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp43_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_PAGE, Page));
+#line 632 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 632 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_view_collection = _tmp43_;
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (controller);
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (photo_page);
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5424 "LibraryWindow.c"
+ } else {
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5428 "LibraryWindow.c"
+ }
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5434 "LibraryWindow.c"
+ } else {
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5438 "LibraryWindow.c"
+ }
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5444 "LibraryWindow.c"
+ } else {
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5448 "LibraryWindow.c"
+ }
+#line 634 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5452 "LibraryWindow.c"
+ }
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (collection) {
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *collection = _vala_collection;
+#line 5460 "LibraryWindow.c"
+ } else {
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_collection);
+#line 5464 "LibraryWindow.c"
+ }
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (start) {
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *start = _vala_start;
+#line 5470 "LibraryWindow.c"
+ } else {
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_vala_start);
+#line 5474 "LibraryWindow.c"
+ }
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (view_collection) {
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ *view_collection = _vala_view_collection;
+#line 5480 "LibraryWindow.c"
+ } else {
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_vala_view_collection);
+#line 5484 "LibraryWindow.c"
+ }
+#line 637 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5488 "LibraryWindow.c"
+}
+
+
+static void library_window_real_on_fullscreen (AppWindow* base) {
+ LibraryWindow * self;
+ Page* current_page = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ CollectionPage* collection = NULL;
+ Photo* start = NULL;
+ ViewCollection* view = NULL;
+ Page* _tmp2_ = NULL;
+ CollectionPage* _tmp3_ = NULL;
+ Photo* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ LibraryWindowFullscreenPhotoPage* fs_photo = NULL;
+ CollectionPage* _tmp7_ = NULL;
+ Photo* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ LibraryWindowFullscreenPhotoPage* _tmp10_ = NULL;
+ LibraryWindowFullscreenPhotoPage* _tmp11_ = NULL;
+#line 640 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 641 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 641 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ current_page = _tmp0_;
+#line 642 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = current_page;
+#line 642 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp1_ == NULL) {
+#line 643 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (current_page);
+#line 643 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 5525 "LibraryWindow.c"
+ }
+#line 647 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = NULL;
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = current_page;
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = library_window_get_fullscreen_photo (self, _tmp2_, &_tmp3_, &_tmp4_, &_tmp5_);
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (collection);
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ collection = _tmp3_;
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (start);
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ start = _tmp4_;
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp5_;
+#line 648 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp6_) {
+#line 649 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 649 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (start);
+#line 649 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (collection);
+#line 649 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (current_page);
+#line 649 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 5557 "LibraryWindow.c"
+ }
+#line 651 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = collection;
+#line 651 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = start;
+#line 651 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = view;
+#line 651 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = library_window_fullscreen_photo_page_new (_tmp7_, _tmp8_, _tmp9_);
+#line 651 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp10_);
+#line 651 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ fs_photo = _tmp10_;
+#line 653 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = fs_photo;
+#line 653 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_go_fullscreen (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_PAGE, Page));
+#line 640 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (fs_photo);
+#line 640 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 640 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (start);
+#line 640 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (collection);
+#line 640 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (current_page);
+#line 5585 "LibraryWindow.c"
+}
+
+
+static void _g_free0_ (gpointer var) {
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ var = (g_free (var), NULL);
+#line 5592 "LibraryWindow.c"
+}
+
+
+static void _g_slist_free__g_free0_ (GSList* self) {
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_slist_foreach (self, (GFunc) _g_free0_, NULL);
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_slist_free (self);
+#line 5601 "LibraryWindow.c"
+}
+
+
+static void library_window_on_file_import (LibraryWindow* self) {
+ GtkFileChooserDialog* import_dialog = NULL;
+ const gchar* _tmp0_ = NULL;
+ GtkFileChooserDialog* _tmp1_ = NULL;
+ GtkFileChooserDialog* _tmp2_ = NULL;
+ GtkFileChooserDialog* _tmp3_ = NULL;
+ GtkFileChooserDialog* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint response = 0;
+ GtkFileChooserDialog* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GtkFileChooserDialog* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ GtkFileChooserDialog* _tmp25_ = NULL;
+#line 656 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 657 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _ ("Import From Folder");
+#line 657 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = (GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_tmp0_, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_CANCEL, RESOURCES_OK_LABEL, GTK_RESPONSE_OK, NULL);
+#line 657 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp1_);
+#line 657 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import_dialog = _tmp1_;
+#line 660 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = import_dialog;
+#line 660 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_file_chooser_set_local_only (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), FALSE);
+#line 661 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = import_dialog;
+#line 661 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_file_chooser_set_select_multiple (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), TRUE);
+#line 662 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = import_dialog;
+#line 662 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = self->priv->import_dir;
+#line 662 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_file_chooser_set_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser), _tmp5_);
+#line 664 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = import_dialog;
+#line 664 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_dialog_get_type (), GtkDialog));
+#line 664 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ response = _tmp7_;
+#line 666 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = response;
+#line 666 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp8_ == ((gint) GTK_RESPONSE_OK)) {
+#line 5654 "LibraryWindow.c"
+ GtkResponseType _tmp9_ = 0;
+ GtkFileChooserDialog* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ GtkResponseType copy_files_response = 0;
+ GtkResponseType _tmp18_ = 0;
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = import_dialog;
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = gtk_file_chooser_get_uri (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = _tmp11_;
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = g_file_new_for_uri (_tmp12_);
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = app_dirs_is_in_import_dir (_tmp14_);
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = _tmp15_;
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp14_);
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp12_);
+#line 669 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp16_) {
+#line 670 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = GTK_RESPONSE_REJECT;
+#line 5687 "LibraryWindow.c"
+ } else {
+ GtkResponseType _tmp17_ = 0;
+#line 670 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = copy_files_dialog ();
+#line 670 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _tmp17_;
+#line 5694 "LibraryWindow.c"
+ }
+#line 668 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ copy_files_response = _tmp9_;
+#line 672 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = copy_files_response;
+#line 672 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp18_ != GTK_RESPONSE_CANCEL) {
+#line 5702 "LibraryWindow.c"
+ GtkFileChooserDialog* _tmp19_ = NULL;
+ GSList* _tmp20_ = NULL;
+ GSList* _tmp21_ = NULL;
+ GtkResponseType _tmp22_ = 0;
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = import_dialog;
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = gtk_file_chooser_get_uris (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = _tmp20_;
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = copy_files_response;
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_dispatch_import_jobs (self, _tmp21_, "folders", _tmp22_ == GTK_RESPONSE_ACCEPT);
+#line 673 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ __g_slist_free__g_free0_0 (_tmp21_);
+#line 5719 "LibraryWindow.c"
+ }
+ }
+#line 678 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = import_dialog;
+#line 678 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = gtk_file_chooser_get_current_folder (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GTK_TYPE_FILE_CHOOSER, GtkFileChooser));
+#line 678 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (self->priv->import_dir);
+#line 678 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->import_dir = _tmp24_;
+#line 679 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = import_dialog;
+#line 679 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget));
+#line 656 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (import_dialog);
+#line 5736 "LibraryWindow.c"
+}
+
+
+static void library_window_on_external_library_import (LibraryWindow* self) {
+ GtkDialog* import_dialog = NULL;
+ DataImportsUIDataImportsDialog* _tmp0_ = NULL;
+#line 682 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 683 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = data_imports_ui_data_imports_dialog_get_or_create_instance ();
+#line 683 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import_dialog = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_dialog_get_type (), GtkDialog);
+#line 685 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_dialog_run (import_dialog);
+#line 682 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (import_dialog);
+#line 5753 "LibraryWindow.c"
+}
+
+
+static void library_window_real_update_common_action_availability (AppWindow* base, Page* old_page, Page* new_page) {
+ LibraryWindow * self;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ gboolean is_checkerboard = FALSE;
+ Page* _tmp2_ = NULL;
+#line 688 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 688 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail ((old_page == NULL) || IS_PAGE (old_page));
+#line 688 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail ((new_page == NULL) || IS_PAGE (new_page));
+#line 689 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = old_page;
+#line 689 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = new_page;
+#line 689 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ APP_WINDOW_CLASS (library_window_parent_class)->update_common_action_availability (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), _tmp0_, _tmp1_);
+#line 691 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = new_page;
+#line 691 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ is_checkerboard = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_CHECKERBOARD_PAGE);
+#line 693 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonDisplaySearchbar", is_checkerboard);
+#line 694 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonFind", is_checkerboard);
+#line 5783 "LibraryWindow.c"
+}
+
+
+static void library_window_real_update_common_actions (AppWindow* base, Page* page, gint selected_count, gint count) {
+ LibraryWindow * self;
+ CollectionPage* collection = NULL;
+ Photo* start = NULL;
+ gboolean can_fullscreen = FALSE;
+ Page* _tmp0_ = NULL;
+ CollectionPage* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ Page* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 697 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 697 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 703 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 703 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = library_window_get_fullscreen_photo (self, _tmp0_, &_tmp1_, &_tmp2_, NULL);
+#line 703 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (collection);
+#line 703 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ collection = _tmp1_;
+#line 703 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (start);
+#line 703 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ start = _tmp2_;
+#line 703 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ can_fullscreen = _tmp3_;
+#line 705 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = library_window_can_empty_trash (self);
+#line 705 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonEmptyTrash", _tmp4_);
+#line 706 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_visible (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonJumpToEvent", TRUE);
+#line 707 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = library_window_can_jump_to_event (self);
+#line 707 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonJumpToEvent", _tmp5_);
+#line 708 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonFullscreen", can_fullscreen);
+#line 710 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = page;
+#line 710 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = selected_count;
+#line 710 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = count;
+#line 710 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ APP_WINDOW_CLASS (library_window_parent_class)->update_common_actions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), _tmp6_, _tmp7_, _tmp8_);
+#line 697 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (start);
+#line 697 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (collection);
+#line 5843 "LibraryWindow.c"
+}
+
+
+static void library_window_on_trashcan_contents_altered (LibraryWindow* self) {
+ gboolean _tmp0_ = FALSE;
+#line 713 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 714 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = library_window_can_empty_trash (self);
+#line 714 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonEmptyTrash", _tmp0_);
+#line 5855 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_can_empty_trash (LibraryWindow* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ LibraryPhotoSourceCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 717 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), FALSE);
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = library_photo_global;
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = media_source_collection_get_trashcan_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_ > 0) {
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = TRUE;
+#line 5874 "LibraryWindow.c"
+ } else {
+ VideoSourceCollection* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = video_global;
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = media_source_collection_get_trashcan_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _tmp4_ > 0;
+#line 5884 "LibraryWindow.c"
+ }
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp0_;
+#line 718 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 5890 "LibraryWindow.c"
+}
+
+
+static void library_window_on_empty_trash (LibraryWindow* self) {
+ GeeArrayList* to_remove = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ LibraryPhotoSourceCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ VideoSourceCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ CommandManager* _tmp9_ = NULL;
+ CommandManager* _tmp10_ = NULL;
+#line 721 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 722 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 722 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ to_remove = _tmp0_;
+#line 723 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = library_photo_global;
+#line 723 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = media_source_collection_get_trashcan_contents (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 723 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 723 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gee_array_list_add_all (to_remove, _tmp3_);
+#line 723 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 724 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = video_global;
+#line 724 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = media_source_collection_get_trashcan_contents (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 724 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 724 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gee_array_list_add_all (to_remove, _tmp6_);
+#line 724 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp6_);
+#line 726 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _ ("Empty Trash");
+#line 726 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _ ("Emptying Trash...");
+#line 726 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ remove_from_app (G_TYPE_CHECK_INSTANCE_CAST (to_remove, GEE_TYPE_COLLECTION, GeeCollection), _tmp7_, _tmp8_);
+#line 728 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = app_window_get_command_manager ();
+#line 728 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 728 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ command_manager_reset (_tmp10_);
+#line 728 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _command_manager_unref0 (_tmp10_);
+#line 721 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (to_remove);
+#line 5949 "LibraryWindow.c"
+}
+
+
+static void library_window_on_new_search (LibraryWindow* self) {
+ SavedSearchDialog* _tmp0_ = NULL;
+ SavedSearchDialog* _tmp1_ = NULL;
+#line 731 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 732 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = saved_search_dialog_new ();
+#line 732 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 732 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ saved_search_dialog_show (_tmp1_);
+#line 732 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _saved_search_dialog_unref0 (_tmp1_);
+#line 5966 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_can_jump_to_event (LibraryWindow* self) {
+ gboolean result = FALSE;
+ ViewCollection* view = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 735 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), FALSE);
+#line 736 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 736 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 736 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_get_view (_tmp1_);
+#line 736 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 736 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 736 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp3_;
+#line 737 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = view;
+#line 737 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = view_collection_get_selected_count (_tmp4_);
+#line 737 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp5_ == 1) {
+#line 5999 "LibraryWindow.c"
+ DataSource* selected_source = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ DataSource* _tmp8_ = NULL;
+#line 738 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = view;
+#line 738 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = view_collection_get_selected_source_at (_tmp6_, 0);
+#line 738 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ selected_source = _tmp7_;
+#line 739 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = selected_source;
+#line 739 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, TYPE_EVENT)) {
+#line 740 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 740 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (selected_source);
+#line 740 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 740 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 6022 "LibraryWindow.c"
+ } else {
+ DataSource* _tmp9_ = NULL;
+#line 741 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = selected_source;
+#line 741 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, TYPE_MEDIA_SOURCE)) {
+#line 6029 "LibraryWindow.c"
+ ViewCollection* _tmp10_ = NULL;
+ DataSource* _tmp11_ = NULL;
+ MediaSource* _tmp12_ = NULL;
+ Event* _tmp13_ = NULL;
+ Event* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = view;
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = view_collection_get_selected_source_at (_tmp10_, 0);
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_MEDIA_SOURCE, MediaSource);
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = media_source_get_event (_tmp12_);
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = _tmp14_ != NULL;
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp14_);
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp12_);
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp15_;
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (selected_source);
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 742 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 6060 "LibraryWindow.c"
+ } else {
+#line 744 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 744 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (selected_source);
+#line 744 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 744 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 6070 "LibraryWindow.c"
+ }
+ }
+#line 737 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (selected_source);
+#line 6075 "LibraryWindow.c"
+ } else {
+#line 746 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 746 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 746 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 6083 "LibraryWindow.c"
+ }
+#line 735 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 6087 "LibraryWindow.c"
+}
+
+
+static void library_window_on_jump_to_event (LibraryWindow* self) {
+ ViewCollection* view = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ ViewCollection* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ MediaSource* media = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ DataSource* _tmp7_ = NULL;
+ MediaSource* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+ MediaSource* _tmp10_ = NULL;
+ Event* _tmp11_ = NULL;
+ Event* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 750 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 751 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 751 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 751 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_get_view (_tmp1_);
+#line 751 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 751 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 751 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp3_;
+#line 753 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = view;
+#line 753 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = view_collection_get_selected_count (_tmp4_);
+#line 753 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp5_ != 1) {
+#line 754 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 754 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 6132 "LibraryWindow.c"
+ }
+#line 756 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = view;
+#line 756 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = view_collection_get_selected_source_at (_tmp6_, 0);
+#line 756 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, TYPE_MEDIA_SOURCE) ? ((MediaSource*) _tmp7_) : NULL;
+#line 756 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp8_ == NULL) {
+#line 756 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 6144 "LibraryWindow.c"
+ }
+#line 756 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ media = _tmp8_;
+#line 757 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = media;
+#line 757 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp9_ == NULL) {
+#line 758 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (media);
+#line 758 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 758 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 6158 "LibraryWindow.c"
+ }
+#line 760 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = media;
+#line 760 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = media_source_get_event (_tmp10_);
+#line 760 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = _tmp11_;
+#line 760 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = _tmp12_ != NULL;
+#line 760 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp12_);
+#line 760 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp13_) {
+#line 6172 "LibraryWindow.c"
+ MediaSource* _tmp14_ = NULL;
+ Event* _tmp15_ = NULL;
+ Event* _tmp16_ = NULL;
+#line 761 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = media;
+#line 761 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = media_source_get_event (_tmp14_);
+#line 761 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = _tmp15_;
+#line 761 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_event (self, _tmp16_);
+#line 761 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp16_);
+#line 6186 "LibraryWindow.c"
+ }
+#line 750 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (media);
+#line 750 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 6192 "LibraryWindow.c"
+}
+
+
+static void library_window_on_find (LibraryWindow* self) {
+ GtkToggleAction* action = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ GtkAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+ SearchFilterToolbar* _tmp4_ = NULL;
+#line 764 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 765 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 765 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 765 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_get_common_action (_tmp1_, "CommonDisplaySearchbar", TRUE);
+#line 765 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_toggle_action_get_type (), GtkToggleAction);
+#line 765 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 765 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ action = _tmp3_;
+#line 767 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_toggle_action_set_active (action, TRUE);
+#line 770 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->search_toolbar;
+#line 770 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ search_filter_toolbar_take_focus (_tmp4_);
+#line 764 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (action);
+#line 6225 "LibraryWindow.c"
+}
+
+
+static void library_window_on_media_altered (LibraryWindow* self) {
+ gboolean _tmp0_ = FALSE;
+#line 773 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 774 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = library_window_can_jump_to_event (self);
+#line 774 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_set_common_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonJumpToEvent", _tmp0_);
+#line 6237 "LibraryWindow.c"
+}
+
+
+static void library_window_on_clear_search (LibraryWindow* self) {
+ gboolean _tmp0_ = FALSE;
+#line 777 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 778 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->is_search_toolbar_visible;
+#line 778 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_) {
+#line 6249 "LibraryWindow.c"
+ SearchFilterActions* _tmp1_ = NULL;
+#line 779 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->search_actions;
+#line 779 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ search_filter_actions_reset (_tmp1_);
+#line 6255 "LibraryWindow.c"
+ }
+}
+
+
+gint library_window_get_events_sort (LibraryWindow* self) {
+ gint result = 0;
+ GtkRadioAction* action = NULL;
+ GtkAction* _tmp0_ = NULL;
+ GtkRadioAction* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GtkRadioAction* _tmp3_ = NULL;
+#line 782 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), 0);
+#line 783 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = app_window_get_common_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonSortEventsAscending");
+#line 783 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_radio_action_get_type ()) ? ((GtkRadioAction*) _tmp0_) : NULL;
+#line 783 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp1_ == NULL) {
+#line 783 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 6277 "LibraryWindow.c"
+ }
+#line 783 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ action = _tmp1_;
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = action;
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 6285 "LibraryWindow.c"
+ GtkRadioAction* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = action;
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = gtk_radio_action_get_current_value (_tmp4_);
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp6_;
+#line 6297 "LibraryWindow.c"
+ } else {
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = LIBRARY_WINDOW_SORT_EVENTS_ORDER_DESCENDING;
+#line 6301 "LibraryWindow.c"
+ }
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp2_;
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (action);
+#line 785 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 6309 "LibraryWindow.c"
+}
+
+
+static void library_window_on_events_sort_changed (LibraryWindow* self, GtkAction* action, GtkAction* c) {
+ GtkRadioAction* current = NULL;
+ GtkAction* _tmp0_ = NULL;
+ GtkRadioAction* _tmp1_ = NULL;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 788 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 788 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 788 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION (c));
+#line 789 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = c;
+#line 789 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_radio_action_get_type (), GtkRadioAction));
+#line 789 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ current = _tmp1_;
+#line 791 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 791 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 791 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = gtk_radio_action_get_current_value (current);
+#line 791 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 791 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_events_sort_ascending (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp5_ == LIBRARY_WINDOW_SORT_EVENTS_ORDER_ASCENDING);
+#line 791 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 788 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (current);
+#line 6347 "LibraryWindow.c"
+}
+
+
+static void library_window_on_preferences (LibraryWindow* self) {
+#line 795 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 796 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ preferences_dialog_show ();
+#line 6356 "LibraryWindow.c"
+}
+
+
+static void library_window_on_display_basic_properties (LibraryWindow* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ ConfigFacade* _tmp10_ = NULL;
+ ConfigFacade* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 799 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 799 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 800 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = action;
+#line 800 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 800 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ display = _tmp1_;
+#line 802 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = display;
+#line 802 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_) {
+#line 6382 "LibraryWindow.c"
+ BasicProperties* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ GtkFrame* _tmp6_ = NULL;
+#line 803 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->basic_properties;
+#line 803 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 803 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 803 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ properties_update_properties (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PROPERTIES, Properties), _tmp5_);
+#line 803 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 804 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->bottom_frame;
+#line 804 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
+#line 6401 "LibraryWindow.c"
+ } else {
+ GtkPaned* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+#line 806 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = self->priv->sidebar_paned;
+#line 806 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = gtk_paned_get_child2 (_tmp7_);
+#line 806 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp8_ != NULL) {
+#line 6411 "LibraryWindow.c"
+ GtkFrame* _tmp9_ = NULL;
+#line 807 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = self->priv->bottom_frame;
+#line 807 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 6417 "LibraryWindow.c"
+ }
+ }
+#line 812 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = config_facade_get_instance ();
+#line 812 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = _tmp10_;
+#line 812 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = display;
+#line 812 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_display_basic_properties (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp12_);
+#line 812 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp11_);
+#line 6430 "LibraryWindow.c"
+}
+
+
+static void library_window_on_display_extended_properties (LibraryWindow* self, GtkAction* action) {
+ gboolean display = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 815 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 815 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 816 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = action;
+#line 816 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 816 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ display = _tmp1_;
+#line 818 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = display;
+#line 818 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_) {
+#line 6453 "LibraryWindow.c"
+ ExtendedPropertiesWindow* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ ExtendedPropertiesWindow* _tmp6_ = NULL;
+#line 819 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->extended_properties;
+#line 819 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 819 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 819 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ extended_properties_window_update_properties (_tmp3_, _tmp5_);
+#line 819 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 820 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->extended_properties;
+#line 820 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
+#line 6472 "LibraryWindow.c"
+ } else {
+ ExtendedPropertiesWindow* _tmp7_ = NULL;
+#line 822 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = self->priv->extended_properties;
+#line 822 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 6479 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_on_display_searchbar (LibraryWindow* self, GtkAction* action) {
+ gboolean is_shown = FALSE;
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+#line 826 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 826 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 827 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = action;
+#line 827 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 827 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ is_shown = _tmp1_;
+#line 828 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 828 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 828 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_display_search_bar (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), is_shown);
+#line 828 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 829 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_show_search_bar (self, is_shown);
+#line 6510 "LibraryWindow.c"
+}
+
+
+void library_window_show_search_bar (LibraryWindow* self, gboolean display) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ Page* _tmp5_ = NULL;
+ CheckerboardPage* _tmp6_ = NULL;
+ CheckerboardPage* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 832 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 833 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 833 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 833 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_CHECKERBOARD_PAGE);
+#line 833 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 833 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_) {
+#line 834 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 6538 "LibraryWindow.c"
+ }
+#line 836 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = display;
+#line 836 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->is_search_toolbar_visible = _tmp3_;
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = library_window_should_show_search_bar (self);
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_CHECKERBOARD_PAGE) ? ((CheckerboardPage*) _tmp5_) : NULL;
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp6_ == NULL) {
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 6554 "LibraryWindow.c"
+ }
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_toggle_search_bar (self, _tmp4_, _tmp7_);
+#line 837 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 838 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = display;
+#line 838 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp8_) {
+#line 6566 "LibraryWindow.c"
+ SearchFilterActions* _tmp9_ = NULL;
+#line 839 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = self->priv->search_actions;
+#line 839 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ search_filter_actions_reset (_tmp9_);
+#line 6572 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_on_display_sidebar (LibraryWindow* self, GtkAction* action) {
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 842 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 842 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 843 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = action;
+#line 843 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_toggle_action_get_type (), GtkToggleAction));
+#line 843 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_set_sidebar_visible (self, _tmp1_);
+#line 6590 "LibraryWindow.c"
+}
+
+
+static void library_window_set_sidebar_visible (LibraryWindow* self, gboolean visible) {
+ GtkPaned* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 847 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 848 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->sidebar_paned;
+#line 848 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = visible;
+#line 848 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), _tmp1_);
+#line 849 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 849 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 849 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = visible;
+#line 849 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_display_sidebar (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp4_);
+#line 849 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 6618 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_is_sidebar_visible (LibraryWindow* self) {
+ gboolean result = FALSE;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 852 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), FALSE);
+#line 853 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 853 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 853 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = configuration_facade_get_display_sidebar (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 853 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 853 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 853 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp3_;
+#line 853 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 6644 "LibraryWindow.c"
+}
+
+
+static void library_window_on_display_toolbar (LibraryWindow* self, GtkAction* action) {
+ GtkAction* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 856 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 856 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GTK_IS_ACTION (action));
+#line 857 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = action;
+#line 857 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_toggle_action_get_active (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL);
+#line 857 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_set_toolbar_visible (self, _tmp1_);
+#line 6661 "LibraryWindow.c"
+}
+
+
+static void library_window_set_toolbar_visible (LibraryWindow* self, gboolean visible) {
+ GtkToolbar* toolbar = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ GtkToolbar* _tmp2_ = NULL;
+ GtkToolbar* _tmp3_ = NULL;
+ GtkToolbar* _tmp4_ = NULL;
+ ConfigFacade* _tmp7_ = NULL;
+ ConfigFacade* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 860 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 861 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 861 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 861 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_get_toolbar (_tmp1_);
+#line 861 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 861 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 861 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ toolbar = _tmp3_;
+#line 862 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = toolbar;
+#line 862 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp4_ != NULL) {
+#line 6693 "LibraryWindow.c"
+ GtkToolbar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 863 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = toolbar;
+#line 863 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = visible;
+#line 863 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget), _tmp6_);
+#line 6702 "LibraryWindow.c"
+ }
+#line 865 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = config_facade_get_instance ();
+#line 865 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 865 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = visible;
+#line 865 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_display_toolbar (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp9_);
+#line 865 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp8_);
+#line 860 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (toolbar);
+#line 6716 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_is_toolbar_visible (LibraryWindow* self) {
+ gboolean result = FALSE;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 868 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), FALSE);
+#line 869 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 869 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 869 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = configuration_facade_get_display_toolbar (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 869 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 869 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp1_);
+#line 869 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp3_;
+#line 869 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 6742 "LibraryWindow.c"
+}
+
+
+static void library_window_show_extended_properties (LibraryWindow* self) {
+#line 872 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 873 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_sync_extended_properties (self, TRUE);
+#line 6751 "LibraryWindow.c"
+}
+
+
+static void library_window_hide_extended_properties (LibraryWindow* self) {
+#line 876 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 877 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_sync_extended_properties (self, FALSE);
+#line 6760 "LibraryWindow.c"
+}
+
+
+static void library_window_sync_extended_properties (LibraryWindow* self, gboolean show) {
+ GtkToggleAction* extended_display_action = NULL;
+ GtkAction* _tmp0_ = NULL;
+ GtkToggleAction* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 880 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 881 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = app_window_get_common_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonDisplayExtendedProperties");
+#line 881 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL;
+#line 881 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp1_ == NULL) {
+#line 881 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 6782 "LibraryWindow.c"
+ }
+#line 881 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ extended_display_action = _tmp1_;
+#line 883 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (extended_display_action != NULL, "extended_display_action != null");
+#line 884 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = show;
+#line 884 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_toggle_action_set_active (extended_display_action, _tmp2_);
+#line 887 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 887 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 887 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = show;
+#line 887 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ configuration_facade_set_display_extended_properties (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp5_);
+#line 887 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 880 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (extended_display_action);
+#line 6804 "LibraryWindow.c"
+}
+
+
+void library_window_enqueue_batch_import (LibraryWindow* self, BatchImport* batch_import, gboolean allow_user_cancel) {
+ LibraryBranch* _tmp0_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp1_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp2_ = NULL;
+ BatchImport* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 890 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 890 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_BATCH_IMPORT (batch_import));
+#line 891 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->library_branch;
+#line 891 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = library_branch_get_import_queue_entry (_tmp0_);
+#line 891 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 891 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = batch_import;
+#line 891 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = allow_user_cancel;
+#line 891 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_import_queue_sidebar_entry_enqueue_and_schedule (_tmp2_, _tmp3_, _tmp4_);
+#line 6830 "LibraryWindow.c"
+}
+
+
+static void library_window_import_reporter (LibraryWindow* self, ImportManifest* manifest) {
+ ImportManifest* _tmp0_ = NULL;
+#line 894 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 894 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_IMPORT_MANIFEST (manifest));
+#line 895 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = manifest;
+#line 895 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ import_ui_report_manifest (_tmp0_, TRUE, NULL);
+#line 6844 "LibraryWindow.c"
+}
+
+
+static void _library_window_import_reporter_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
+#line 926 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_import_reporter ((LibraryWindow*) self, manifest);
+#line 6851 "LibraryWindow.c"
+}
+
+
+static void library_window_dispatch_import_jobs (LibraryWindow* self, GSList* uris, const gchar* job_name, gboolean copy_to_library) {
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GeeArrayList* jobs = NULL;
+ GeeArrayList* _tmp18_ = NULL;
+ GSList* _tmp19_ = NULL;
+ GeeArrayList* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+#line 898 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 898 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (job_name != NULL);
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = app_dirs_get_import_dir ();
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = g_get_home_dir ();
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = g_strcmp0 (_tmp4_, _tmp5_) == 0;
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp4_);
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp6_) {
+#line 6891 "LibraryWindow.c"
+ gboolean _tmp7_ = FALSE;
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = self->priv->notify_library_is_home_dir;
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _tmp7_;
+#line 6897 "LibraryWindow.c"
+ } else {
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = FALSE;
+#line 6901 "LibraryWindow.c"
+ }
+#line 899 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_) {
+#line 6905 "LibraryWindow.c"
+ GtkResponseType response = 0;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ AppWindow* _tmp13_ = NULL;
+ AppWindow* _tmp14_ = NULL;
+ GtkResponseType _tmp15_ = 0;
+ GtkResponseType _tmp16_ = 0;
+ GtkResponseType _tmp17_ = 0;
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _ ("Shotwell is configured to import photos to your home directory.\n" "We recommend changing this in <span weight=\"bold\">Edit %s Preference" \
+"s</span>.\n" "Do you want to continue importing photos?");
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = g_strdup_printf (_tmp8_, "▸");
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = _ ("_Import");
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = _ ("Library Location");
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = app_window_get_instance ();
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = app_window_affirm_cancel_question (_tmp10_, _tmp11_, _tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_window_get_type (), GtkWindow));
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = _tmp15_;
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp14_);
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp10_);
+#line 900 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ response = _tmp16_;
+#line 906 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = response;
+#line 906 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp17_ == GTK_RESPONSE_CANCEL) {
+#line 907 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 6947 "LibraryWindow.c"
+ }
+#line 909 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->notify_library_is_home_dir = FALSE;
+#line 6951 "LibraryWindow.c"
+ }
+#line 912 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = gee_array_list_new (TYPE_FILE_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL);
+#line 912 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ jobs = _tmp18_;
+#line 913 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = uris;
+#line 6959 "LibraryWindow.c"
+ {
+ GSList* uri_collection = NULL;
+ GSList* uri_it = NULL;
+#line 913 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri_collection = _tmp19_;
+#line 913 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ for (uri_it = uri_collection; uri_it != NULL; uri_it = uri_it->next) {
+#line 6967 "LibraryWindow.c"
+ gchar* _tmp20_ = NULL;
+ gchar* uri = NULL;
+#line 913 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = g_strdup ((const gchar*) uri_it->data);
+#line 913 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri = _tmp20_;
+#line 6974 "LibraryWindow.c"
+ {
+ GFile* file_or_dir = NULL;
+ const gchar* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ GFile* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+ GeeArrayList* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ FileImportJob* _tmp31_ = NULL;
+ FileImportJob* _tmp32_ = NULL;
+#line 914 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = uri;
+#line 914 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = g_file_new_for_uri (_tmp21_);
+#line 914 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ file_or_dir = _tmp22_;
+#line 915 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = file_or_dir;
+#line 915 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = g_file_get_path (_tmp23_);
+#line 915 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = _tmp24_;
+#line 915 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = _tmp25_ == NULL;
+#line 915 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp25_);
+#line 915 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp26_) {
+#line 7006 "LibraryWindow.c"
+ const gchar* _tmp27_ = NULL;
+#line 917 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = _ ("Photos cannot be imported from this directory.");
+#line 917 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_error_message (_tmp27_, NULL);
+#line 919 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (file_or_dir);
+#line 919 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (uri);
+#line 919 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ continue;
+#line 7018 "LibraryWindow.c"
+ }
+#line 922 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = jobs;
+#line 922 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = file_or_dir;
+#line 922 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp30_ = copy_to_library;
+#line 922 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_ = file_import_job_new (_tmp29_, _tmp30_);
+#line 922 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = _tmp31_;
+#line 922 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp32_);
+#line 922 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _batch_import_job_unref0 (_tmp32_);
+#line 913 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (file_or_dir);
+#line 913 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (uri);
+#line 7038 "LibraryWindow.c"
+ }
+ }
+ }
+#line 925 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = jobs;
+#line 925 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 925 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp35_ = _tmp34_;
+#line 925 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp35_ > 0) {
+#line 7050 "LibraryWindow.c"
+ BatchImport* batch_import = NULL;
+ GeeArrayList* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ BatchImport* _tmp38_ = NULL;
+ BatchImport* _tmp39_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36_ = jobs;
+#line 926 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp37_ = job_name;
+#line 926 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_ = batch_import_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_ITERABLE, GeeIterable), _tmp37_, _library_window_import_reporter_batch_import_import_reporter, self, NULL, NULL, NULL, NULL, NULL);
+#line 926 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ batch_import = _tmp38_;
+#line 927 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp39_ = batch_import;
+#line 927 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_enqueue_batch_import (self, _tmp39_, TRUE);
+#line 928 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_import_queue_page (self);
+#line 925 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (batch_import);
+#line 7072 "LibraryWindow.c"
+ }
+#line 898 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (jobs);
+#line 7076 "LibraryWindow.c"
+}
+
+
+static GdkDragAction library_window_get_drag_action (LibraryWindow* self) {
+ GdkDragAction result = 0;
+ GdkModifierType mask = 0;
+ GdkWindow* _tmp0_ = NULL;
+ GdkDisplay* _tmp1_ = NULL;
+ GdkDeviceManager* _tmp2_ = NULL;
+ GdkDevice* _tmp3_ = NULL;
+ GdkModifierType _tmp4_ = 0;
+ gboolean ctrl = FALSE;
+ GdkModifierType _tmp5_ = 0;
+ gboolean alt = FALSE;
+ GdkModifierType _tmp6_ = 0;
+ gboolean shift = FALSE;
+ GdkModifierType _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 932 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), 0);
+#line 935 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = gtk_widget_get_window (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 935 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gdk_display_get_default ();
+#line 935 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = gdk_display_get_device_manager (_tmp1_);
+#line 935 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = gdk_device_manager_get_client_pointer (_tmp2_);
+#line 935 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gdk_window_get_device_position (_tmp0_, _tmp3_, NULL, NULL, &_tmp4_);
+#line 935 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ mask = _tmp4_;
+#line 938 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = mask;
+#line 938 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ctrl = (_tmp5_ & GDK_CONTROL_MASK) != 0;
+#line 939 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = mask;
+#line 939 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ alt = (_tmp6_ & GDK_MOD1_MASK) != 0;
+#line 940 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = mask;
+#line 940 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ shift = (_tmp7_ & GDK_SHIFT_MASK) != 0;
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = ctrl;
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp10_) {
+#line 7127 "LibraryWindow.c"
+ gboolean _tmp11_ = FALSE;
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = alt;
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = !_tmp11_;
+#line 7133 "LibraryWindow.c"
+ } else {
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = FALSE;
+#line 7137 "LibraryWindow.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp9_) {
+#line 7141 "LibraryWindow.c"
+ gboolean _tmp12_ = FALSE;
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = shift;
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = !_tmp12_;
+#line 7147 "LibraryWindow.c"
+ } else {
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = FALSE;
+#line 7151 "LibraryWindow.c"
+ }
+#line 942 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp8_) {
+#line 943 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = GDK_ACTION_COPY;
+#line 943 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 7159 "LibraryWindow.c"
+ } else {
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = ctrl;
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp15_) {
+#line 7168 "LibraryWindow.c"
+ gboolean _tmp16_ = FALSE;
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = alt;
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _tmp16_;
+#line 7174 "LibraryWindow.c"
+ } else {
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = FALSE;
+#line 7178 "LibraryWindow.c"
+ }
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp14_) {
+#line 7182 "LibraryWindow.c"
+ gboolean _tmp17_ = FALSE;
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = shift;
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = !_tmp17_;
+#line 7188 "LibraryWindow.c"
+ } else {
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = FALSE;
+#line 7192 "LibraryWindow.c"
+ }
+#line 944 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp13_) {
+#line 945 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = GDK_ACTION_ASK;
+#line 945 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 7200 "LibraryWindow.c"
+ } else {
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = ctrl;
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp20_) {
+#line 7209 "LibraryWindow.c"
+ gboolean _tmp21_ = FALSE;
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = alt;
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = !_tmp21_;
+#line 7215 "LibraryWindow.c"
+ } else {
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = FALSE;
+#line 7219 "LibraryWindow.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp19_) {
+#line 7223 "LibraryWindow.c"
+ gboolean _tmp22_ = FALSE;
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = shift;
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = _tmp22_;
+#line 7229 "LibraryWindow.c"
+ } else {
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = FALSE;
+#line 7233 "LibraryWindow.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp18_) {
+#line 947 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = GDK_ACTION_LINK;
+#line 947 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 7241 "LibraryWindow.c"
+ } else {
+#line 949 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = GDK_ACTION_DEFAULT;
+#line 949 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 7247 "LibraryWindow.c"
+ }
+ }
+ }
+}
+
+
+static gboolean library_window_real_drag_motion (GtkWidget* base, GdkDragContext* context, gint x, gint y, guint time) {
+ LibraryWindow * self;
+ gboolean result = FALSE;
+ GdkAtom target = 0U;
+ GdkDragContext* _tmp0_ = NULL;
+ GtkTargetList* _tmp1_ = NULL;
+ GdkAtom _tmp2_ = 0U;
+ GdkAtom _tmp3_ = 0U;
+ GdkDragContext* _tmp6_ = NULL;
+ GtkWidget* _tmp7_ = NULL;
+ GdkDragAction drag_action = 0;
+ GdkDragAction _tmp10_ = 0;
+ GdkDragAction _tmp11_ = 0;
+ GdkDragContext* _tmp12_ = NULL;
+ GdkDragAction _tmp13_ = 0;
+ guint _tmp14_ = 0U;
+#line 952 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 952 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
+#line 953 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = context;
+#line 953 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_drag_dest_get_target_list (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 953 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = gtk_drag_dest_find_target (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), _tmp0_, _tmp1_);
+#line 953 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ target = _tmp2_;
+#line 956 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = target;
+#line 956 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (((gint) _tmp3_) == 0) {
+#line 7286 "LibraryWindow.c"
+ GdkDragContext* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 957 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:957: drag target is GDK_NONE");
+#line 958 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = context;
+#line 958 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = time;
+#line 958 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gdk_drag_status (_tmp4_, 0, (guint32) _tmp5_);
+#line 960 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 960 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 7301 "LibraryWindow.c"
+ }
+#line 964 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = context;
+#line 964 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = gtk_drag_get_source_widget (_tmp6_);
+#line 964 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp7_ != NULL) {
+#line 7309 "LibraryWindow.c"
+ GdkDragContext* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+#line 965 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = context;
+#line 965 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = time;
+#line 965 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gdk_drag_status (_tmp8_, GDK_ACTION_PRIVATE, (guint32) _tmp9_);
+#line 967 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 967 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 7322 "LibraryWindow.c"
+ }
+#line 971 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = library_window_get_drag_action (self);
+#line 971 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ drag_action = _tmp10_;
+#line 973 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = drag_action;
+#line 973 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp11_ == GDK_ACTION_DEFAULT) {
+#line 974 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ drag_action = GDK_ACTION_ASK;
+#line 7334 "LibraryWindow.c"
+ }
+#line 976 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = context;
+#line 976 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = drag_action;
+#line 976 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = time;
+#line 976 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gdk_drag_status (_tmp12_, _tmp13_, (guint32) _tmp14_);
+#line 978 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 978 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 7348 "LibraryWindow.c"
+}
+
+
+static void library_window_real_drag_data_received (GtkWidget* base, GdkDragContext* context, gint x, gint y, GtkSelectionData* selection_data, guint info, guint time) {
+ LibraryWindow * self;
+ GtkSelectionData* _tmp0_ = NULL;
+ guchar* _tmp1_ = NULL;
+ GdkDragContext* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+#line 981 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 981 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 981 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (selection_data != NULL);
+#line 983 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = selection_data;
+#line 983 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_selection_data_get_data (_tmp0_);
+#line 983 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (-1 < 0) {
+#line 984 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:984: failed to retrieve SelectionData");
+#line 7372 "LibraryWindow.c"
+ }
+#line 988 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = context;
+#line 988 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = gtk_drag_get_source_widget (_tmp2_);
+#line 988 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ == NULL) {
+#line 7380 "LibraryWindow.c"
+ GdkDragContext* _tmp4_ = NULL;
+ GtkSelectionData* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ guint _tmp7_ = 0U;
+#line 989 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = context;
+#line 989 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = selection_data;
+#line 989 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = info;
+#line 989 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = time;
+#line 989 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_external_drop_handler (self, _tmp4_, NULL, _tmp5_, _tmp6_, _tmp7_);
+#line 7395 "LibraryWindow.c"
+ } else {
+ GdkDragContext* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+#line 991 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = context;
+#line 991 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = time;
+#line 991 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_drag_finish (_tmp8_, FALSE, FALSE, (guint32) _tmp9_);
+#line 7405 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_external_drop_handler (LibraryWindow* self, GdkDragContext* context, SidebarEntry* entry, GtkSelectionData* data, guint info, guint time) {
+ gchar** uris_array = NULL;
+ GtkSelectionData* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint uris_array_length1 = 0;
+ gint _uris_array_size_ = 0;
+ GSList* uris = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GdkDragAction selected_action = 0;
+ GdkDragContext* _tmp7_ = NULL;
+ GdkDragAction _tmp8_ = 0;
+ GdkDragAction _tmp9_ = 0;
+ GSList* _tmp21_ = NULL;
+ GdkDragAction _tmp22_ = 0;
+ GdkDragContext* _tmp23_ = NULL;
+ guint _tmp24_ = 0U;
+#line 994 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 994 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 994 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail ((entry == NULL) || SIDEBAR_IS_ENTRY (entry));
+#line 994 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (data != NULL);
+#line 996 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = data;
+#line 996 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_ = gtk_selection_data_get_uris (_tmp0_);
+#line 996 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uris_array = _tmp2_;
+#line 996 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uris_array_length1 = _vala_array_length (_tmp1_);
+#line 996 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _uris_array_size_ = uris_array_length1;
+#line 998 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uris = NULL;
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = uris_array;
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3__length1 = uris_array_length1;
+#line 7452 "LibraryWindow.c"
+ {
+ gchar** uri_collection = NULL;
+ gint uri_collection_length1 = 0;
+ gint _uri_collection_size_ = 0;
+ gint uri_it = 0;
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri_collection = _tmp3_;
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri_collection_length1 = _tmp3__length1;
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ for (uri_it = 0; uri_it < _tmp3__length1; uri_it = uri_it + 1) {
+#line 7464 "LibraryWindow.c"
+ gchar* _tmp4_ = NULL;
+ gchar* uri = NULL;
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = g_strdup (uri_collection[uri_it]);
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri = _tmp4_;
+#line 7471 "LibraryWindow.c"
+ {
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1000 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = uri;
+#line 1000 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 1000 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uris = g_slist_append (uris, _tmp6_);
+#line 999 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (uri);
+#line 7483 "LibraryWindow.c"
+ }
+ }
+ }
+#line 1002 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = context;
+#line 1002 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = gdk_drag_context_get_selected_action (_tmp7_);
+#line 1002 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ selected_action = _tmp8_;
+#line 1003 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = selected_action;
+#line 1003 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp9_ == GDK_ACTION_ASK) {
+#line 7497 "LibraryWindow.c"
+ GtkResponseType _result_ = 0;
+ GSList* _tmp10_ = NULL;
+ GtkResponseType _tmp18_ = 0;
+#line 1005 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _result_ = GTK_RESPONSE_REJECT;
+#line 1006 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = uris;
+#line 7505 "LibraryWindow.c"
+ {
+ GSList* uri_collection = NULL;
+ GSList* uri_it = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri_collection = _tmp10_;
+#line 1006 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ for (uri_it = uri_collection; uri_it != NULL; uri_it = uri_it->next) {
+#line 7513 "LibraryWindow.c"
+ gchar* _tmp11_ = NULL;
+ gchar* uri = NULL;
+#line 1006 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = g_strdup ((const gchar*) uri_it->data);
+#line 1006 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri = _tmp11_;
+#line 7520 "LibraryWindow.c"
+ {
+ const gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 1007 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = uri;
+#line 1007 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = g_file_new_for_uri (_tmp12_);
+#line 1007 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _tmp13_;
+#line 1007 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = app_dirs_is_in_import_dir (_tmp14_);
+#line 1007 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = !_tmp15_;
+#line 1007 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp14_);
+#line 1007 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp16_) {
+#line 7541 "LibraryWindow.c"
+ GtkResponseType _tmp17_ = 0;
+#line 1008 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = copy_files_dialog ();
+#line 1008 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _result_ = _tmp17_;
+#line 1010 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (uri);
+#line 1010 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ break;
+#line 7551 "LibraryWindow.c"
+ }
+#line 1006 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (uri);
+#line 7555 "LibraryWindow.c"
+ }
+ }
+ }
+#line 1014 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = _result_;
+#line 1014 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ switch (_tmp18_) {
+#line 1014 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ case GTK_RESPONSE_ACCEPT:
+#line 7565 "LibraryWindow.c"
+ {
+#line 1016 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ selected_action = GDK_ACTION_COPY;
+#line 1017 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ break;
+#line 7571 "LibraryWindow.c"
+ }
+#line 1014 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ case GTK_RESPONSE_REJECT:
+#line 7575 "LibraryWindow.c"
+ {
+#line 1020 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ selected_action = GDK_ACTION_LINK;
+#line 1021 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ break;
+#line 7581 "LibraryWindow.c"
+ }
+ default:
+ {
+ GdkDragContext* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+#line 1025 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = context;
+#line 1025 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = time;
+#line 1025 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_drag_finish (_tmp19_, FALSE, FALSE, (guint32) _tmp20_);
+#line 1027 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ __g_slist_free__g_free0_0 (uris);
+#line 1027 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uris_array = (_vala_array_free (uris_array, uris_array_length1, (GDestroyNotify) g_free), NULL);
+#line 1027 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 7599 "LibraryWindow.c"
+ }
+ }
+ }
+#line 1031 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = uris;
+#line 1031 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = selected_action;
+#line 1031 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_dispatch_import_jobs (self, _tmp21_, "drag-and-drop", _tmp22_ == GDK_ACTION_COPY);
+#line 1033 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = context;
+#line 1033 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = time;
+#line 1033 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_drag_finish (_tmp23_, TRUE, FALSE, (guint32) _tmp24_);
+#line 994 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ __g_slist_free__g_free0_0 (uris);
+#line 994 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uris_array = (_vala_array_free (uris_array, uris_array_length1, (GDestroyNotify) g_free), NULL);
+#line 7619 "LibraryWindow.c"
+}
+
+
+void library_window_switch_to_library_page (LibraryWindow* self) {
+ LibraryBranch* _tmp0_ = NULL;
+ LibraryPhotosEntry* _tmp1_ = NULL;
+ LibraryPhotosEntry* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 1036 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1037 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->library_branch;
+#line 1037 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = library_branch_get_photos_entry (_tmp0_);
+#line 1037 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 1037 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1037 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 1037 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp4_);
+#line 1037 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 7645 "LibraryWindow.c"
+}
+
+
+void library_window_switch_to_event (LibraryWindow* self, Event* event) {
+ EventsEventEntry* entry = NULL;
+ EventsBranch* _tmp0_ = NULL;
+ Event* _tmp1_ = NULL;
+ EventsEventEntry* _tmp2_ = NULL;
+ EventsEventEntry* _tmp3_ = NULL;
+#line 1040 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1040 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_EVENT (event));
+#line 1041 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->events_branch;
+#line 1041 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = event;
+#line 1041 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = events_branch_get_entry_for_event (_tmp0_, _tmp1_);
+#line 1041 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp2_;
+#line 1042 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = entry;
+#line 1042 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 7671 "LibraryWindow.c"
+ EventsEventEntry* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+#line 1043 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = entry;
+#line 1043 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1043 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 1043 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp6_);
+#line 1043 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp6_);
+#line 7685 "LibraryWindow.c"
+ }
+#line 1040 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 7689 "LibraryWindow.c"
+}
+
+
+void library_window_switch_to_tag (LibraryWindow* self, Tag* tag) {
+ TagsSidebarEntry* entry = NULL;
+ TagsBranch* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ TagsSidebarEntry* _tmp2_ = NULL;
+ TagsSidebarEntry* _tmp3_ = NULL;
+#line 1046 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1046 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_TAG (tag));
+#line 1047 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->tags_branch;
+#line 1047 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = tag;
+#line 1047 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = tags_branch_get_entry_for_tag (_tmp0_, _tmp1_);
+#line 1047 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp2_;
+#line 1048 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = entry;
+#line 1048 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 7715 "LibraryWindow.c"
+ TagsSidebarEntry* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+#line 1049 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = entry;
+#line 1049 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1049 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 1049 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp6_);
+#line 1049 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp6_);
+#line 7729 "LibraryWindow.c"
+ }
+#line 1046 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 7733 "LibraryWindow.c"
+}
+
+
+void library_window_switch_to_saved_search (LibraryWindow* self, SavedSearch* search) {
+ SearchesSidebarEntry* entry = NULL;
+ SearchesBranch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ SearchesSidebarEntry* _tmp2_ = NULL;
+ SearchesSidebarEntry* _tmp3_ = NULL;
+#line 1052 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1052 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 1053 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->saved_search_branch;
+#line 1053 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = search;
+#line 1053 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = searches_branch_get_entry_for_saved_search (_tmp0_, _tmp1_);
+#line 1053 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp2_;
+#line 1054 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = entry;
+#line 1054 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ != NULL) {
+#line 7759 "LibraryWindow.c"
+ SearchesSidebarEntry* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+#line 1055 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = entry;
+#line 1055 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1055 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 1055 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp6_);
+#line 1055 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp6_);
+#line 7773 "LibraryWindow.c"
+ }
+#line 1052 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 7777 "LibraryWindow.c"
+}
+
+
+void library_window_switch_to_photo_page (LibraryWindow* self, CollectionPage* controller, Photo* current) {
+ CollectionPage* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ DataView* _tmp4_ = NULL;
+ DataView* _tmp5_ = NULL;
+ LibraryPhotoPage* _tmp6_ = NULL;
+ LibraryPhotoPage* _tmp9_ = NULL;
+ CollectionPage* _tmp10_ = NULL;
+ Photo* _tmp11_ = NULL;
+ LibraryPhotoPage* _tmp12_ = NULL;
+#line 1058 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1058 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_COLLECTION_PAGE (controller));
+#line 1058 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PHOTO (current));
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = controller;
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page));
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = current;
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = view_collection_get_view_for_source (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_SOURCE, DataSource));
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (_tmp5_ != NULL, "controller.get_view().get_view_for_source(current) != null");
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1059 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 1060 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->photo_page;
+#line 1060 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp6_ == NULL) {
+#line 7821 "LibraryWindow.c"
+ LibraryPhotoPage* _tmp7_ = NULL;
+ LibraryPhotoPage* _tmp8_ = NULL;
+#line 1061 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = library_photo_page_new ();
+#line 1061 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp7_);
+#line 1061 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->photo_page);
+#line 1061 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->photo_page = _tmp7_;
+#line 1062 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = self->priv->photo_page;
+#line 1062 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_add_to_stack (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE, Page));
+#line 1066 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ spin_event_loop ();
+#line 7838 "LibraryWindow.c"
+ }
+#line 1069 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = self->priv->photo_page;
+#line 1069 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = controller;
+#line 1069 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = current;
+#line 1069 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_photo_page_display_for_collection (_tmp9_, _tmp10_, _tmp11_, NULL);
+#line 1070 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = self->priv->photo_page;
+#line 1070 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PAGE, Page));
+#line 7852 "LibraryWindow.c"
+}
+
+
+void library_window_switch_to_import_queue_page (LibraryWindow* self) {
+ LibraryBranch* _tmp0_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp1_ = NULL;
+ LibraryImportQueueSidebarEntry* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 1073 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1074 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->library_branch;
+#line 1074 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = library_branch_get_import_queue_entry (_tmp0_);
+#line 1074 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 1074 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1074 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 1074 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp4_);
+#line 1074 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp4_);
+#line 7878 "LibraryWindow.c"
+}
+
+
+static void library_window_on_camera_added (LibraryWindow* self, DiscoveredCamera* camera) {
+ CameraSidebarEntry* entry = NULL;
+ CameraBranch* _tmp0_ = NULL;
+ DiscoveredCamera* _tmp1_ = NULL;
+ CameraSidebarEntry* _tmp2_ = NULL;
+ CameraSidebarEntry* _tmp3_ = NULL;
+ ImportPage* page = NULL;
+ CameraSidebarEntry* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+ GFile* uri_file = NULL;
+ DiscoveredCamera* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GMount* mount = NULL;
+ gboolean _tmp13_ = FALSE;
+ GMount* _tmp14_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 1077 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1077 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_DISCOVERED_CAMERA (camera));
+#line 1078 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->camera_branch;
+#line 1078 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = camera;
+#line 1078 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = camera_branch_get_entry_for_camera (_tmp0_, _tmp1_);
+#line 1078 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = _tmp2_;
+#line 1079 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = entry;
+#line 1079 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_ == NULL) {
+#line 1080 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 1080 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 7919 "LibraryWindow.c"
+ }
+#line 1082 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = entry;
+#line 1082 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1082 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ page = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_IMPORT_PAGE, ImportPage);
+#line 1083 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = camera;
+#line 1083 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _tmp6_->uri;
+#line 1083 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = g_file_new_for_uri (_tmp7_);
+#line 1083 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri_file = _tmp8_;
+#line 1086 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ mount = NULL;
+#line 7937 "LibraryWindow.c"
+ {
+ GMount* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+ GMount* _tmp11_ = NULL;
+ GMount* _tmp12_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = uri_file;
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = g_file_find_enclosing_mount (_tmp10_, NULL, &_inner_error_);
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _tmp11_;
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 7951 "LibraryWindow.c"
+ goto __catch39_g_error;
+ }
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = _tmp9_;
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = NULL;
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (mount);
+#line 1088 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ mount = _tmp12_;
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp9_);
+#line 7964 "LibraryWindow.c"
+ }
+ goto __finally39;
+ __catch39_g_error:
+ {
+ GError* err = NULL;
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ err = _inner_error_;
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _inner_error_ = NULL;
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_error_free0 (err);
+#line 7976 "LibraryWindow.c"
+ }
+ __finally39:
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (mount);
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (uri_file);
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (page);
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 1087 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 7995 "LibraryWindow.c"
+ }
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = mount;
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp14_ != NULL) {
+#line 8001 "LibraryWindow.c"
+ DiscoveredCamera* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = camera;
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = _tmp15_->uri;
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = g_str_has_prefix (_tmp16_, "file://");
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = !_tmp17_;
+#line 8013 "LibraryWindow.c"
+ } else {
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = FALSE;
+#line 8017 "LibraryWindow.c"
+ }
+#line 1094 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp13_) {
+#line 8021 "LibraryWindow.c"
+ ImportPage* _tmp18_ = NULL;
+ GMount* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 1095 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = page;
+#line 1095 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = mount;
+#line 1095 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = import_page_unmount_camera (_tmp18_, _tmp19_);
+#line 1095 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp20_) {
+#line 8033 "LibraryWindow.c"
+ ImportPage* _tmp21_ = NULL;
+#line 1096 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = page;
+#line 1096 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_PAGE, Page));
+#line 8039 "LibraryWindow.c"
+ } else {
+#line 1098 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ app_window_error_message ("Unable to unmount the camera at this time.", NULL);
+#line 8043 "LibraryWindow.c"
+ }
+ } else {
+ ImportPage* _tmp22_ = NULL;
+#line 1100 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = page;
+#line 1100 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, TYPE_PAGE, Page));
+#line 8051 "LibraryWindow.c"
+ }
+#line 1077 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (mount);
+#line 1077 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (uri_file);
+#line 1077 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (page);
+#line 1077 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 8061 "LibraryWindow.c"
+}
+
+
+void library_window_add_to_stack (LibraryWindow* self, Page* page) {
+ Page* _tmp0_ = NULL;
+ GtkStack* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ GtkStack* _tmp3_ = NULL;
+#line 1105 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1105 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1107 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 1107 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 1109 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->stack;
+#line 1109 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page;
+#line 1109 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 1111 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->stack;
+#line 1111 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 8088 "LibraryWindow.c"
+}
+
+
+static void library_window_remove_from_stack (LibraryWindow* self, Page* page) {
+ GtkStack* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ GtkStack* _tmp2_ = NULL;
+#line 1114 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1114 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1115 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->stack;
+#line 1115 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page;
+#line 1115 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 1118 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->stack;
+#line 1118 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 8110 "LibraryWindow.c"
+}
+
+
+static void library_window_load_configuration (LibraryWindow* self) {
+ GtkToggleAction* basic_display_action = NULL;
+ GtkAction* _tmp0_ = NULL;
+ GtkToggleAction* _tmp1_ = NULL;
+ GtkToggleAction* _tmp2_ = NULL;
+ GtkToggleAction* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ ConfigFacade* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GtkToggleAction* extended_display_action = NULL;
+ GtkAction* _tmp7_ = NULL;
+ GtkToggleAction* _tmp8_ = NULL;
+ GtkToggleAction* _tmp9_ = NULL;
+ GtkToggleAction* _tmp10_ = NULL;
+ ConfigFacade* _tmp11_ = NULL;
+ ConfigFacade* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GtkToggleAction* search_bar_display_action = NULL;
+ GtkAction* _tmp14_ = NULL;
+ GtkToggleAction* _tmp15_ = NULL;
+ GtkToggleAction* _tmp16_ = NULL;
+ GtkToggleAction* _tmp17_ = NULL;
+ ConfigFacade* _tmp18_ = NULL;
+ ConfigFacade* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ GtkRadioAction* sort_events_action = NULL;
+ GtkAction* _tmp21_ = NULL;
+ GtkRadioAction* _tmp22_ = NULL;
+ GtkRadioAction* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ ConfigFacade* _tmp25_ = NULL;
+ ConfigFacade* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ gint event_sort_val = 0;
+ GtkRadioAction* _tmp29_ = NULL;
+#line 1122 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1123 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = app_window_get_common_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonDisplayBasicProperties");
+#line 1123 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp0_) : NULL;
+#line 1123 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp1_ == NULL) {
+#line 1123 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp0_);
+#line 8160 "LibraryWindow.c"
+ }
+#line 1123 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ basic_display_action = _tmp1_;
+#line 1125 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = basic_display_action;
+#line 1125 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (_tmp2_ != NULL, "basic_display_action != null");
+#line 1126 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = basic_display_action;
+#line 1126 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = config_facade_get_instance ();
+#line 1126 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 1126 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = configuration_facade_get_display_basic_properties (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1126 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_toggle_action_set_active (_tmp3_, _tmp6_);
+#line 1126 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 1128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = app_window_get_common_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonDisplayExtendedProperties");
+#line 1128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp7_) : NULL;
+#line 1128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp8_ == NULL) {
+#line 1128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp7_);
+#line 8188 "LibraryWindow.c"
+ }
+#line 1128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ extended_display_action = _tmp8_;
+#line 1130 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = extended_display_action;
+#line 1130 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (_tmp9_ != NULL, "extended_display_action != null");
+#line 1131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = extended_display_action;
+#line 1131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = config_facade_get_instance ();
+#line 1131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = _tmp11_;
+#line 1131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = configuration_facade_get_display_extended_properties (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_toggle_action_set_active (_tmp10_, _tmp13_);
+#line 1131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = app_window_get_common_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonDisplaySearchbar");
+#line 1133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, gtk_toggle_action_get_type ()) ? ((GtkToggleAction*) _tmp14_) : NULL;
+#line 1133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp15_ == NULL) {
+#line 1133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp14_);
+#line 8216 "LibraryWindow.c"
+ }
+#line 1133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ search_bar_display_action = _tmp15_;
+#line 1135 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = search_bar_display_action;
+#line 1135 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (_tmp16_ != NULL, "search_bar_display_action != null");
+#line 1136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = search_bar_display_action;
+#line 1136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = config_facade_get_instance ();
+#line 1136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = _tmp18_;
+#line 1136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = configuration_facade_get_display_search_bar (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_toggle_action_set_active (_tmp17_, _tmp20_);
+#line 1136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp19_);
+#line 1138 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = app_window_get_common_action (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), "CommonSortEventsAscending");
+#line 1138 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp21_, gtk_radio_action_get_type ()) ? ((GtkRadioAction*) _tmp21_) : NULL;
+#line 1138 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp22_ == NULL) {
+#line 1138 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp21_);
+#line 8244 "LibraryWindow.c"
+ }
+#line 1138 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sort_events_action = _tmp22_;
+#line 1140 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = sort_events_action;
+#line 1140 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (_tmp23_ != NULL, "sort_events_action != null");
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = config_facade_get_instance ();
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = _tmp25_;
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = configuration_facade_get_events_sort_ascending (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = _tmp27_;
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp26_);
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp28_) {
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = LIBRARY_WINDOW_SORT_EVENTS_ORDER_ASCENDING;
+#line 8266 "LibraryWindow.c"
+ } else {
+#line 1146 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = LIBRARY_WINDOW_SORT_EVENTS_ORDER_DESCENDING;
+#line 8270 "LibraryWindow.c"
+ }
+#line 1145 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ event_sort_val = _tmp24_;
+#line 1148 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = sort_events_action;
+#line 1148 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_radio_action_set_current_value (_tmp29_, event_sort_val);
+#line 1122 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (sort_events_action);
+#line 1122 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (search_bar_display_action);
+#line 1122 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (extended_display_action);
+#line 1122 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (basic_display_action);
+#line 8286 "LibraryWindow.c"
+}
+
+
+static gboolean _library_window_on_pulse_background_progress_bar_gsource_func (gpointer self) {
+ gboolean result;
+ result = library_window_on_pulse_background_progress_bar ((LibraryWindow*) self);
+#line 1163 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 8295 "LibraryWindow.c"
+}
+
+
+static void library_window_start_pulse_background_progress_bar (LibraryWindow* self, const gchar* label, gint priority) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ GtkProgressBar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GtkProgressBar* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+#line 1151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1151 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (label != NULL);
+#line 1152 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = priority;
+#line 1152 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->current_progress_priority;
+#line 1152 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_ < _tmp1_) {
+#line 1153 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 8320 "LibraryWindow.c"
+ }
+#line 1155 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = priority;
+#line 1155 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_stop_pulse_background_progress_bar (self, _tmp2_, FALSE);
+#line 1157 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = priority;
+#line 1157 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->current_progress_priority = _tmp3_;
+#line 1159 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->background_progress_bar;
+#line 1159 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = label;
+#line 1159 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_set_text (_tmp4_, _tmp5_);
+#line 1160 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->background_progress_bar;
+#line 1160 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_pulse (_tmp6_);
+#line 1161 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_show_background_progress_bar (self);
+#line 1163 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) LIBRARY_WINDOW_BACKGROUND_PROGRESS_PULSE_MSEC, _library_window_on_pulse_background_progress_bar_gsource_func, g_object_ref (self), g_object_unref);
+#line 1163 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_pulse_id = _tmp7_;
+#line 8346 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_on_pulse_background_progress_bar (LibraryWindow* self) {
+ gboolean result = FALSE;
+ GtkProgressBar* _tmp0_ = NULL;
+#line 1167 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), FALSE);
+#line 1168 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->background_progress_bar;
+#line 1168 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_pulse (_tmp0_);
+#line 1170 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 1170 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 8363 "LibraryWindow.c"
+}
+
+
+static void library_window_stop_pulse_background_progress_bar (LibraryWindow* self, gint priority, gboolean clear) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ guint _tmp2_ = 0U;
+ gboolean _tmp4_ = FALSE;
+#line 1173 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1174 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = priority;
+#line 1174 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->current_progress_priority;
+#line 1174 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_ < _tmp1_) {
+#line 1175 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 8382 "LibraryWindow.c"
+ }
+#line 1177 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->background_progress_pulse_id;
+#line 1177 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_ != ((guint) 0)) {
+#line 8388 "LibraryWindow.c"
+ guint _tmp3_ = 0U;
+#line 1178 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->background_progress_pulse_id;
+#line 1178 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_source_remove (_tmp3_);
+#line 1179 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_pulse_id = (guint) 0;
+#line 8396 "LibraryWindow.c"
+ }
+#line 1182 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = clear;
+#line 1182 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp4_) {
+#line 8402 "LibraryWindow.c"
+ gint _tmp5_ = 0;
+#line 1183 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = priority;
+#line 1183 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_clear_background_progress_bar (self, _tmp5_);
+#line 8408 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_update_background_progress_bar (LibraryWindow* self, const gchar* label, gint priority, gdouble count, gdouble total) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gdouble _tmp5_ = 0.0;
+ gint _tmp10_ = 0;
+ gdouble fraction = 0.0;
+ gdouble _tmp11_ = 0.0;
+ gdouble _tmp12_ = 0.0;
+ GtkProgressBar* _tmp13_ = NULL;
+ gdouble _tmp14_ = 0.0;
+ GtkProgressBar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gdouble _tmp18_ = 0.0;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 1186 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1186 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (label != NULL);
+#line 1188 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = priority;
+#line 1188 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->current_progress_priority;
+#line 1188 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_ < _tmp1_) {
+#line 1189 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 8444 "LibraryWindow.c"
+ }
+#line 1191 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = priority;
+#line 1191 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_stop_pulse_background_progress_bar (self, _tmp2_, FALSE);
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = count;
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp5_ <= 0.0) {
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = TRUE;
+#line 8456 "LibraryWindow.c"
+ } else {
+ gdouble _tmp6_ = 0.0;
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = total;
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp6_ <= 0.0;
+#line 8463 "LibraryWindow.c"
+ }
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp4_) {
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = TRUE;
+#line 8469 "LibraryWindow.c"
+ } else {
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = count;
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = total;
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp7_ >= _tmp8_;
+#line 8479 "LibraryWindow.c"
+ }
+#line 1193 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_) {
+#line 8483 "LibraryWindow.c"
+ gint _tmp9_ = 0;
+#line 1194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = priority;
+#line 1194 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_clear_background_progress_bar (self, _tmp9_);
+#line 1196 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 8491 "LibraryWindow.c"
+ }
+#line 1199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = priority;
+#line 1199 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->current_progress_priority = _tmp10_;
+#line 1201 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = count;
+#line 1201 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = total;
+#line 1201 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ fraction = _tmp11_ / _tmp12_;
+#line 1202 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = self->priv->background_progress_bar;
+#line 1202 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = fraction;
+#line 1202 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_set_fraction (_tmp13_, _tmp14_);
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = self->priv->background_progress_bar;
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = _ ("%s (%d%%)");
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = label;
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = fraction;
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = g_strdup_printf (_tmp16_, _tmp17_, (gint) (_tmp18_ * 100.0));
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = _tmp19_;
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_set_text (_tmp15_, _tmp20_);
+#line 1203 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp20_);
+#line 1204 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_show_background_progress_bar (self);
+#line 8527 "LibraryWindow.c"
+}
+
+
+static void library_window_clear_background_progress_bar (LibraryWindow* self, gint priority) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GtkProgressBar* _tmp3_ = NULL;
+ GtkProgressBar* _tmp4_ = NULL;
+#line 1213 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1214 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = priority;
+#line 1214 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->current_progress_priority;
+#line 1214 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_ < _tmp1_) {
+#line 1215 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 8547 "LibraryWindow.c"
+ }
+#line 1217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = priority;
+#line 1217 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_stop_pulse_background_progress_bar (self, _tmp2_, FALSE);
+#line 1219 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->current_progress_priority = 0;
+#line 1221 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->background_progress_bar;
+#line 1221 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_set_fraction (_tmp3_, 0.0);
+#line 1222 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->background_progress_bar;
+#line 1222 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_progress_bar_set_text (_tmp4_, "");
+#line 1223 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_hide_background_progress_bar (self);
+#line 8565 "LibraryWindow.c"
+}
+
+
+static void library_window_show_background_progress_bar (LibraryWindow* self) {
+ gboolean _tmp0_ = FALSE;
+#line 1231 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1232 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->background_progress_displayed;
+#line 1232 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp0_) {
+#line 8577 "LibraryWindow.c"
+ GtkBox* _tmp1_ = NULL;
+ GtkFrame* _tmp2_ = NULL;
+ GtkFrame* _tmp3_ = NULL;
+#line 1233 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->top_section;
+#line 1233 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->background_progress_frame;
+#line 1233 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_box_pack_end (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1234 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->background_progress_frame;
+#line 1234 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 1235 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_displayed = TRUE;
+#line 8593 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_hide_background_progress_bar (LibraryWindow* self) {
+ gboolean _tmp0_ = FALSE;
+#line 1239 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1240 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->background_progress_displayed;
+#line 1240 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_) {
+#line 8606 "LibraryWindow.c"
+ GtkBox* _tmp1_ = NULL;
+ GtkFrame* _tmp2_ = NULL;
+#line 1241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->top_section;
+#line 1241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->background_progress_frame;
+#line 1241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 1242 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_displayed = FALSE;
+#line 8617 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_on_library_monitor_discovery_started (LibraryWindow* self) {
+ const gchar* _tmp0_ = NULL;
+#line 1246 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1247 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _ ("Updating library...");
+#line 1247 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_start_pulse_background_progress_bar (self, _tmp0_, LIBRARY_WINDOW_STARTUP_SCAN_PROGRESS_PRIORITY);
+#line 8630 "LibraryWindow.c"
+}
+
+
+static void library_window_on_library_monitor_discovery_completed (LibraryWindow* self) {
+#line 1250 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1251 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_stop_pulse_background_progress_bar (self, LIBRARY_WINDOW_STARTUP_SCAN_PROGRESS_PRIORITY, TRUE);
+#line 8639 "LibraryWindow.c"
+}
+
+
+static void library_window_on_library_monitor_auto_update_progress (LibraryWindow* self, gint completed_files, gint total_files) {
+ gint _tmp0_ = 0;
+#line 1254 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = total_files;
+#line 1255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_ < LIBRARY_WINDOW_MIN_PROGRESS_BAR_FILES) {
+#line 1256 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_clear_background_progress_bar (self, LIBRARY_WINDOW_REALTIME_UPDATE_PROGRESS_PRIORITY);
+#line 8653 "LibraryWindow.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 1258 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _ ("Updating library...");
+#line 1258 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = completed_files;
+#line 1258 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = total_files;
+#line 1258 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_update_background_progress_bar (self, _tmp1_, LIBRARY_WINDOW_REALTIME_UPDATE_PROGRESS_PRIORITY, (gdouble) _tmp2_, (gdouble) _tmp3_);
+#line 8666 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_on_library_monitor_auto_import_preparing (LibraryWindow* self) {
+ const gchar* _tmp0_ = NULL;
+#line 1263 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1264 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _ ("Preparing to auto-import photos...");
+#line 1264 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_start_pulse_background_progress_bar (self, _tmp0_, LIBRARY_WINDOW_REALTIME_IMPORT_PROGRESS_PRIORITY);
+#line 8679 "LibraryWindow.c"
+}
+
+
+static void library_window_on_library_monitor_auto_import_progress (LibraryWindow* self, guint64 completed_bytes, guint64 total_bytes) {
+ const gchar* _tmp0_ = NULL;
+ guint64 _tmp1_ = 0ULL;
+ guint64 _tmp2_ = 0ULL;
+#line 1268 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1269 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _ ("Auto-importing photos...");
+#line 1269 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = completed_bytes;
+#line 1269 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = total_bytes;
+#line 1269 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_update_background_progress_bar (self, _tmp0_, LIBRARY_WINDOW_REALTIME_IMPORT_PROGRESS_PRIORITY, (gdouble) _tmp1_, (gdouble) _tmp2_);
+#line 8697 "LibraryWindow.c"
+}
+
+
+static void library_window_on_metadata_writer_progress (LibraryWindow* self, guint completed, guint total) {
+ guint _tmp0_ = 0U;
+#line 1273 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1274 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = total;
+#line 1274 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_ < ((guint) LIBRARY_WINDOW_MIN_PROGRESS_BAR_FILES)) {
+#line 1275 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_clear_background_progress_bar (self, LIBRARY_WINDOW_METADATA_WRITER_PROGRESS_PRIORITY);
+#line 8711 "LibraryWindow.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+#line 1277 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _ ("Writing metadata to files...");
+#line 1277 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = completed;
+#line 1277 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = total;
+#line 1277 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_update_background_progress_bar (self, _tmp1_, LIBRARY_WINDOW_METADATA_WRITER_PROGRESS_PRIORITY, (gdouble) _tmp2_, (gdouble) _tmp3_);
+#line 8724 "LibraryWindow.c"
+ }
+}
+
+
+static void library_window_create_layout (LibraryWindow* self, Page* start_page) {
+ GtkScrolledWindow* scrolled_sidebar = NULL;
+ GtkScrolledWindow* _tmp0_ = NULL;
+ SidebarTree* _tmp1_ = NULL;
+ GtkFrame* _tmp2_ = NULL;
+ GtkFrame* _tmp3_ = NULL;
+ GtkProgressBar* _tmp4_ = NULL;
+ GtkFrame* _tmp5_ = NULL;
+ GtkStyleContext* _tmp6_ = NULL;
+ GtkAlignment* bottom_alignment = NULL;
+ GtkAlignment* _tmp7_ = NULL;
+ BasicProperties* _tmp8_ = NULL;
+ GtkFrame* _tmp9_ = NULL;
+ GtkFrame* _tmp10_ = NULL;
+ GtkStyleContext* _tmp11_ = NULL;
+ GtkBox* _tmp12_ = NULL;
+ GtkPaned* _tmp13_ = NULL;
+ GtkBox* _tmp14_ = NULL;
+ GtkPaned* _tmp15_ = NULL;
+ GtkFrame* _tmp16_ = NULL;
+ GtkPaned* _tmp17_ = NULL;
+ GtkBox* _tmp18_ = NULL;
+ GtkBox* _tmp19_ = NULL;
+ SearchFilterToolbar* _tmp20_ = NULL;
+ GtkBox* _tmp21_ = NULL;
+ GtkStack* _tmp22_ = NULL;
+ GtkPaned* _tmp23_ = NULL;
+ GtkPaned* _tmp24_ = NULL;
+ GtkPaned* _tmp25_ = NULL;
+ SidebarTree* _tmp26_ = NULL;
+ GtkPaned* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+ GtkPaned* _tmp29_ = NULL;
+ ConfigFacade* _tmp30_ = NULL;
+ ConfigFacade* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ GtkStack* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ gint _tmp35_ = 0;
+ GtkBox* _tmp36_ = NULL;
+ GtkPaned* _tmp37_ = NULL;
+ GtkBox* _tmp38_ = NULL;
+ Page* _tmp39_ = NULL;
+ Page* _tmp40_ = NULL;
+#line 1282 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1282 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (start_page));
+#line 1285 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = (GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL);
+#line 1285 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp0_);
+#line 1285 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ scrolled_sidebar = _tmp0_;
+#line 1286 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_scrolled_window_set_policy (scrolled_sidebar, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+#line 1287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->sidebar_tree;
+#line 1287 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (scrolled_sidebar, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 1289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->background_progress_frame;
+#line 1289 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_container_get_type (), GtkContainer), (guint) 2);
+#line 1290 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->background_progress_frame;
+#line 1290 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->background_progress_bar;
+#line 1290 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 1291 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = self->priv->background_progress_frame;
+#line 1291 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 1291 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_style_context_remove_class (_tmp6_, "frame");
+#line 1294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, 0.5f, (gfloat) 1, (gfloat) 0);
+#line 1294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp7_);
+#line 1294 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ bottom_alignment = _tmp7_;
+#line 1296 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_alignment_set_padding (bottom_alignment, (guint) 10, (guint) 10, (guint) 6, (guint) 0);
+#line 1297 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = self->priv->basic_properties;
+#line 1297 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (bottom_alignment, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
+#line 1299 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = self->priv->bottom_frame;
+#line 1299 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (bottom_alignment, gtk_widget_get_type (), GtkWidget));
+#line 1300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = self->priv->bottom_frame;
+#line 1300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
+#line 1300 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_style_context_remove_class (_tmp11_, "frame");
+#line 1304 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = self->priv->top_section;
+#line 1304 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_box_pack_start (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (scrolled_sidebar, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 1306 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = self->priv->sidebar_paned;
+#line 1306 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = self->priv->top_section;
+#line 1306 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_paned_pack1 (_tmp13_, G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE);
+#line 1307 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = self->priv->sidebar_paned;
+#line 1307 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = self->priv->bottom_frame;
+#line 1307 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_paned_pack2 (_tmp15_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE);
+#line 1308 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = self->priv->sidebar_paned;
+#line 1308 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_paned_set_position (_tmp17_, 1000);
+#line 1310 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 1310 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp18_);
+#line 1310 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->right_vbox);
+#line 1310 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->right_vbox = _tmp18_;
+#line 1311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = self->priv->right_vbox;
+#line 1311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = self->priv->search_toolbar;
+#line 1311 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_box_pack_start (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 1312 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = self->priv->right_vbox;
+#line 1312 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = self->priv->stack;
+#line 1312 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_box_pack_start (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 1314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = (GtkPaned*) gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
+#line 1314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp23_);
+#line 1314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->client_paned);
+#line 1314 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->client_paned = _tmp23_;
+#line 1315 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = self->priv->client_paned;
+#line 1315 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = self->priv->sidebar_paned;
+#line 1315 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_paned_pack1 (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE);
+#line 1316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = self->priv->sidebar_tree;
+#line 1316 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget), LIBRARY_WINDOW_SIDEBAR_MIN_WIDTH, -1);
+#line 1317 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = self->priv->client_paned;
+#line 1317 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = self->priv->right_vbox;
+#line 1317 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_paned_pack2 (_tmp27_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget), TRUE, FALSE);
+#line 1318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = self->priv->client_paned;
+#line 1318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp30_ = config_facade_get_instance ();
+#line 1318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_ = _tmp30_;
+#line 1318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = configuration_facade_get_sidebar_position (G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 1318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_paned_set_position (_tmp29_, _tmp32_);
+#line 1318 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp31_);
+#line 1320 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = self->priv->stack;
+#line 1320 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_ = library_window_get_PAGE_MIN_WIDTH ();
+#line 1320 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp35_ = _tmp34_;
+#line 1320 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, gtk_widget_get_type (), GtkWidget), _tmp35_, -1);
+#line 1322 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36_ = self->priv->layout;
+#line 1322 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp37_ = self->priv->client_paned;
+#line 1322 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_box_pack_end (_tmp36_, G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 1324 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_ = self->priv->layout;
+#line 1324 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget));
+#line 1326 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp39_ = start_page;
+#line 1326 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp39_);
+#line 1327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp40_ = start_page;
+#line 1327 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_grab_focus (G_TYPE_CHECK_INSTANCE_CAST (_tmp40_, gtk_widget_get_type (), GtkWidget));
+#line 1282 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (bottom_alignment);
+#line 1282 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (scrolled_sidebar);
+#line 8933 "LibraryWindow.c"
+}
+
+
+static void library_window_real_set_current_page (PageWindow* base, Page* page) {
+ LibraryWindow * self;
+ Page* _tmp0_ = NULL;
+#line 1330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 1330 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1332 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 1332 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp0_);
+#line 8948 "LibraryWindow.c"
+}
+
+
+void library_window_set_page_switching_enabled (LibraryWindow* self, gboolean should_enable) {
+ gboolean _tmp0_ = FALSE;
+#line 1335 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = should_enable;
+#line 1336 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->page_switching_enabled = _tmp0_;
+#line 8960 "LibraryWindow.c"
+}
+
+
+void library_window_switch_to_page (LibraryWindow* self, Page* page) {
+ gboolean _tmp0_ = FALSE;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ Page* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ Page* current_page = NULL;
+ Page* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+ GtkStack* _tmp16_ = NULL;
+ Page* _tmp17_ = NULL;
+ Page* _tmp18_ = NULL;
+ Page* _tmp19_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ Page* _tmp22_ = NULL;
+ SidebarEntry* entry = NULL;
+ GeeHashMap* _tmp23_ = NULL;
+ Page* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ SidebarEntry* _tmp26_ = NULL;
+ Page* _tmp37_ = NULL;
+ Page* _tmp39_ = NULL;
+ Page* _tmp40_ = NULL;
+ Page* _tmp41_ = NULL;
+ Page* _tmp42_ = NULL;
+ GtkToolbar* toolbar = NULL;
+ Page* _tmp43_ = NULL;
+ GtkToolbar* _tmp44_ = NULL;
+ GtkToolbar* _tmp45_ = NULL;
+ Page* _tmp51_ = NULL;
+#line 1339 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1339 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->page_switching_enabled;
+#line 1340 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp0_) {
+#line 1341 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 9004 "LibraryWindow.c"
+ }
+#line 1343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page;
+#line 1343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 1343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 1343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp1_ == _tmp3_;
+#line 1343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp3_);
+#line 1343 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp4_) {
+#line 1344 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 9020 "LibraryWindow.c"
+ }
+#line 1346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 1346 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ current_page = _tmp5_;
+#line 1347 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = current_page;
+#line 1347 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp6_ != NULL) {
+#line 9030 "LibraryWindow.c"
+ GtkToolbar* toolbar = NULL;
+ Page* _tmp7_ = NULL;
+ GtkToolbar* _tmp8_ = NULL;
+ GtkToolbar* _tmp9_ = NULL;
+ Page* _tmp12_ = NULL;
+ Page* _tmp13_ = NULL;
+ Page* _tmp15_ = NULL;
+#line 1348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = current_page;
+#line 1348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = page_get_toolbar (_tmp7_);
+#line 1348 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ toolbar = _tmp8_;
+#line 1349 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = toolbar;
+#line 1349 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp9_ != NULL) {
+#line 9048 "LibraryWindow.c"
+ GtkBox* _tmp10_ = NULL;
+ GtkToolbar* _tmp11_ = NULL;
+#line 1350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = self->priv->right_vbox;
+#line 1350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = toolbar;
+#line 1350 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
+#line 9057 "LibraryWindow.c"
+ }
+#line 1352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = current_page;
+#line 1352 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ page_switching_from (_tmp12_);
+#line 1356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = current_page;
+#line 1356 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, TYPE_LIBRARY_PHOTO_PAGE)) {
+#line 9067 "LibraryWindow.c"
+ SidebarTree* _tmp14_ = NULL;
+#line 1357 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = self->priv->sidebar_tree;
+#line 1357 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_enable_editing (_tmp14_);
+#line 9073 "LibraryWindow.c"
+ }
+#line 1360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = current_page;
+#line 1360 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_unsubscribe_from_basic_information (self, _tmp15_);
+#line 1347 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (toolbar);
+#line 9081 "LibraryWindow.c"
+ }
+#line 1363 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = self->priv->stack;
+#line 1363 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = page;
+#line 1363 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_stack_set_visible_child (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_widget_get_type (), GtkWidget));
+#line 1367 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = page;
+#line 1367 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ PAGE_WINDOW_CLASS (library_window_parent_class)->set_current_page (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), TYPE_PAGE_WINDOW, PageWindow), _tmp18_);
+#line 1373 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = page;
+#line 1373 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, TYPE_LIBRARY_PHOTO_PAGE)) {
+#line 9097 "LibraryWindow.c"
+ SidebarTree* _tmp20_ = NULL;
+#line 1374 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = self->priv->sidebar_tree;
+#line 1374 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_disable_editing (_tmp20_);
+#line 9103 "LibraryWindow.c"
+ }
+#line 1377 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = library_window_should_show_search_bar (self);
+#line 1377 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = page;
+#line 1377 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_toggle_search_bar (self, _tmp21_, G_TYPE_CHECK_INSTANCE_TYPE (_tmp22_, TYPE_CHECKERBOARD_PAGE) ? ((CheckerboardPage*) _tmp22_) : NULL);
+#line 1380 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = self->priv->page_map;
+#line 1380 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = page;
+#line 1380 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp24_);
+#line 1380 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ entry = (SidebarEntry*) _tmp25_;
+#line 1381 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = entry;
+#line 1381 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp26_ != NULL) {
+#line 9123 "LibraryWindow.c"
+ SidebarExpandableEntry* expandable_entry = NULL;
+ SidebarEntry* _tmp27_ = NULL;
+ SidebarExpandableEntry* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+ SidebarExpandableEntry* _tmp30_ = NULL;
+ SidebarTree* _tmp35_ = NULL;
+ SidebarEntry* _tmp36_ = NULL;
+#line 1384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = entry;
+#line 1384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp27_, SIDEBAR_TYPE_EXPANDABLE_ENTRY) ? ((SidebarExpandableEntry*) _tmp27_) : NULL);
+#line 1384 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ expandable_entry = _tmp28_;
+#line 1385 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp30_ = expandable_entry;
+#line 1385 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp30_ != NULL) {
+#line 9141 "LibraryWindow.c"
+ SidebarExpandableEntry* _tmp31_ = NULL;
+ gboolean _tmp32_ = FALSE;
+#line 1385 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_ = expandable_entry;
+#line 1385 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = sidebar_expandable_entry_expand_on_select (_tmp31_);
+#line 1385 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = _tmp32_;
+#line 9150 "LibraryWindow.c"
+ } else {
+#line 1385 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = FALSE;
+#line 9154 "LibraryWindow.c"
+ }
+#line 1385 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp29_) {
+#line 9158 "LibraryWindow.c"
+ SidebarTree* _tmp33_ = NULL;
+ SidebarEntry* _tmp34_ = NULL;
+#line 1386 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = self->priv->sidebar_tree;
+#line 1386 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_ = entry;
+#line 1386 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_expand_to_entry (_tmp33_, _tmp34_);
+#line 9167 "LibraryWindow.c"
+ }
+#line 1388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp35_ = self->priv->sidebar_tree;
+#line 1388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36_ = entry;
+#line 1388 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ sidebar_tree_place_cursor (_tmp35_, _tmp36_, TRUE);
+#line 1381 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (expandable_entry);
+#line 9177 "LibraryWindow.c"
+ }
+#line 1391 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_update_properties (self);
+#line 1393 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp37_ = page;
+#line 1393 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp37_, TYPE_CHECKERBOARD_PAGE)) {
+#line 9185 "LibraryWindow.c"
+ Page* _tmp38_ = NULL;
+#line 1394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_ = page;
+#line 1394 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_init_view_filter (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, TYPE_CHECKERBOARD_PAGE, CheckerboardPage));
+#line 9191 "LibraryWindow.c"
+ }
+#line 1396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp39_ = page;
+#line 1396 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_widget_get_type (), GtkWidget));
+#line 1399 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp40_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 1399 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp41_ = _tmp40_;
+#line 1399 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_subscribe_for_basic_information (self, _tmp41_);
+#line 1399 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp41_);
+#line 1401 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp42_ = page;
+#line 1401 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ page_switched_to (_tmp42_);
+#line 1403 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp43_ = page;
+#line 1403 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp44_ = page_get_toolbar (_tmp43_);
+#line 1403 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ toolbar = _tmp44_;
+#line 1404 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp45_ = toolbar;
+#line 1404 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp45_ != NULL) {
+#line 9219 "LibraryWindow.c"
+ GtkBox* _tmp46_ = NULL;
+ GtkToolbar* _tmp47_ = NULL;
+ GtkToolbar* _tmp48_ = NULL;
+ GtkToolbar* _tmp49_ = NULL;
+ gboolean _tmp50_ = FALSE;
+#line 1405 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp46_ = self->priv->right_vbox;
+#line 1405 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp47_ = toolbar;
+#line 1405 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, gtk_widget_get_type (), GtkWidget));
+#line 1406 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp48_ = toolbar;
+#line 1406 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_widget_get_type (), GtkWidget));
+#line 1407 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp49_ = toolbar;
+#line 1407 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp50_ = library_window_is_toolbar_visible (self);
+#line 1407 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_widget_set_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, gtk_widget_get_type (), GtkWidget), _tmp50_);
+#line 9241 "LibraryWindow.c"
+ }
+#line 1410 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp51_ = page;
+#line 1410 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ page_ready (_tmp51_);
+#line 1339 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (toolbar);
+#line 1339 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (entry);
+#line 1339 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (current_page);
+#line 9253 "LibraryWindow.c"
+}
+
+
+static void library_window_init_view_filter (LibraryWindow* self, CheckerboardPage* page) {
+ SearchFilterToolbar* _tmp0_ = NULL;
+ CheckerboardPage* _tmp1_ = NULL;
+ SearchViewFilter* _tmp2_ = NULL;
+ SearchViewFilter* _tmp3_ = NULL;
+ CheckerboardPage* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ CheckerboardPage* _tmp7_ = NULL;
+ SearchViewFilter* _tmp8_ = NULL;
+ SearchViewFilter* _tmp9_ = NULL;
+#line 1413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1413 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_CHECKERBOARD_PAGE (page));
+#line 1414 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->search_toolbar;
+#line 1414 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page;
+#line 1414 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = checkerboard_page_get_search_view_filter (_tmp1_);
+#line 1414 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp2_;
+#line 1414 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ search_filter_toolbar_set_view_filter (_tmp0_, _tmp3_);
+#line 1414 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _view_filter_unref0 (_tmp3_);
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = page;
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PAGE, Page));
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = page;
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = checkerboard_page_get_search_view_filter (_tmp7_);
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view_collection_install_view_filter (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_VIEW_FILTER, ViewFilter));
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _view_filter_unref0 (_tmp9_);
+#line 1415 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp6_);
+#line 9302 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_should_show_search_bar (LibraryWindow* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 1418 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_LIBRARY_WINDOW (self), FALSE);
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, TYPE_CHECKERBOARD_PAGE);
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_) {
+#line 9324 "LibraryWindow.c"
+ gboolean _tmp4_ = FALSE;
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->is_search_toolbar_visible;
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _tmp4_;
+#line 9330 "LibraryWindow.c"
+ } else {
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = FALSE;
+#line 9334 "LibraryWindow.c"
+ }
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp0_;
+#line 1419 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 9340 "LibraryWindow.c"
+}
+
+
+static void library_window_toggle_search_bar (LibraryWindow* self, gboolean show, CheckerboardPage* page) {
+ SearchFilterToolbar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 1423 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1423 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail ((page == NULL) || IS_CHECKERBOARD_PAGE (page));
+#line 1424 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->search_toolbar;
+#line 1424 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = show;
+#line 1424 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gtk_revealer_set_reveal_child (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_revealer_get_type (), GtkRevealer), _tmp1_);
+#line 1425 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = show;
+#line 1425 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_) {
+#line 9362 "LibraryWindow.c"
+ CheckerboardPage* _tmp3_ = NULL;
+ SearchFilterToolbar* _tmp4_ = NULL;
+ CheckerboardPage* _tmp5_ = NULL;
+ SearchViewFilter* _tmp6_ = NULL;
+ SearchViewFilter* _tmp7_ = NULL;
+ CheckerboardPage* _tmp8_ = NULL;
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ CheckerboardPage* _tmp11_ = NULL;
+ SearchViewFilter* _tmp12_ = NULL;
+ SearchViewFilter* _tmp13_ = NULL;
+#line 1426 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = page;
+#line 1426 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (NULL != _tmp3_, "null != page");
+#line 1427 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->search_toolbar;
+#line 1427 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = page;
+#line 1427 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = checkerboard_page_get_search_view_filter (_tmp5_);
+#line 1427 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = _tmp6_;
+#line 1427 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ search_filter_toolbar_set_view_filter (_tmp4_, _tmp7_);
+#line 1427 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _view_filter_unref0 (_tmp7_);
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = page;
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_PAGE, Page));
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = _tmp9_;
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = page;
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = checkerboard_page_get_search_view_filter (_tmp11_);
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = _tmp12_;
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view_collection_install_view_filter (_tmp10_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, TYPE_VIEW_FILTER, ViewFilter));
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _view_filter_unref0 (_tmp13_);
+#line 1428 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp10_);
+#line 9408 "LibraryWindow.c"
+ } else {
+ CheckerboardPage* _tmp14_ = NULL;
+#line 1430 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = page;
+#line 1430 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp14_ != NULL) {
+#line 9415 "LibraryWindow.c"
+ CheckerboardPage* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ ViewCollection* _tmp17_ = NULL;
+ DisabledViewFilter* _tmp18_ = NULL;
+ DisabledViewFilter* _tmp19_ = NULL;
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = page;
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PAGE, Page));
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = _tmp16_;
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = disabled_view_filter_new ();
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = _tmp18_;
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view_collection_install_view_filter (_tmp17_, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_VIEW_FILTER, ViewFilter));
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _view_filter_unref0 (_tmp19_);
+#line 1431 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (_tmp17_);
+#line 9437 "LibraryWindow.c"
+ }
+ }
+}
+
+
+static void library_window_on_page_created (LibraryWindow* self, SidebarPageRepresentative* entry, Page* page) {
+ GeeHashMap* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ SidebarPageRepresentative* _tmp5_ = NULL;
+ Page* _tmp6_ = NULL;
+#line 1435 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1435 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (entry));
+#line 1435 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1436 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->page_map;
+#line 1436 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page;
+#line 1436 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 1436 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (!_tmp2_, "!page_map.has_key(page)");
+#line 1437 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->page_map;
+#line 1437 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = page;
+#line 1437 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = entry;
+#line 1437 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 1439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = page;
+#line 1439 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_add_to_stack (self, _tmp6_);
+#line 9477 "LibraryWindow.c"
+}
+
+
+static void library_window_on_destroying_page (LibraryWindow* self, SidebarPageRepresentative* entry, Page* page) {
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ Page* _tmp9_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp10_ = NULL;
+ Page* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 1442 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1442 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (entry));
+#line 1442 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 1444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 1444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 1444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _tmp0_ == _tmp2_;
+#line 1444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp2_);
+#line 1444 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp3_) {
+#line 9509 "LibraryWindow.c"
+ LibraryBranch* _tmp4_ = NULL;
+ LibraryPhotosEntry* _tmp5_ = NULL;
+ LibraryPhotosEntry* _tmp6_ = NULL;
+ Page* _tmp7_ = NULL;
+ Page* _tmp8_ = NULL;
+#line 1445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->library_branch;
+#line 1445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = library_branch_get_photos_entry (_tmp4_);
+#line 1445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp5_;
+#line 1445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 1445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp8_);
+#line 1445 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp8_);
+#line 9529 "LibraryWindow.c"
+ }
+#line 1447 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = page;
+#line 1447 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_remove_from_stack (self, _tmp9_);
+#line 1449 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = self->priv->page_map;
+#line 1449 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = page;
+#line 1449 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp11_, NULL);
+#line 1449 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ removed = _tmp12_;
+#line 1450 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _vala_assert (removed, "removed");
+#line 9545 "LibraryWindow.c"
+}
+
+
+static void library_window_on_sidebar_entry_selected (LibraryWindow* self, SidebarSelectableEntry* selectable) {
+ SidebarPageRepresentative* page_rep = NULL;
+ SidebarSelectableEntry* _tmp0_ = NULL;
+ SidebarPageRepresentative* _tmp1_ = NULL;
+ SidebarPageRepresentative* _tmp2_ = NULL;
+#line 1453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (SIDEBAR_IS_SELECTABLE_ENTRY (selectable));
+#line 1454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = selectable;
+#line 1454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE) ? ((SidebarPageRepresentative*) _tmp0_) : NULL);
+#line 1454 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ page_rep = _tmp1_;
+#line 1455 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = page_rep;
+#line 1455 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_ != NULL) {
+#line 9568 "LibraryWindow.c"
+ SidebarPageRepresentative* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 1456 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = page_rep;
+#line 1456 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = sidebar_page_representative_get_page (_tmp3_);
+#line 1456 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 1456 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp5_);
+#line 1456 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 9582 "LibraryWindow.c"
+ }
+#line 1453 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (page_rep);
+#line 9586 "LibraryWindow.c"
+}
+
+
+static void library_window_on_sidebar_selected_entry_removed (LibraryWindow* self, SidebarSelectableEntry* selectable) {
+ LibraryLastImportSidebarEntry* last_import_entry = NULL;
+ LibraryBranch* _tmp0_ = NULL;
+ LibraryLastImportSidebarEntry* _tmp1_ = NULL;
+ LibraryLastImportSidebarEntry* _tmp2_ = NULL;
+ LibraryLastImportSidebarEntry* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ SidebarSelectableEntry* _tmp5_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ SidebarSelectableEntry* _tmp13_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ SidebarSelectableEntry* _tmp22_ = NULL;
+ LibraryBranch* _tmp30_ = NULL;
+ LibraryPhotosEntry* _tmp31_ = NULL;
+ LibraryPhotosEntry* _tmp32_ = NULL;
+ Page* _tmp33_ = NULL;
+ Page* _tmp34_ = NULL;
+#line 1459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (SIDEBAR_IS_SELECTABLE_ENTRY (selectable));
+#line 1463 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->library_branch;
+#line 1463 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = library_branch_get_last_imported_entry (_tmp0_);
+#line 1463 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 1463 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 1463 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ last_import_entry = _tmp3_;
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = selectable;
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, LIBRARY_TYPE_IMPORT_QUEUE_SIDEBAR_ENTRY)) {
+#line 9625 "LibraryWindow.c"
+ LibraryLastImportSidebarEntry* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = last_import_entry;
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = library_hideable_page_entry_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry));
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp8_;
+#line 9637 "LibraryWindow.c"
+ } else {
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = FALSE;
+#line 9641 "LibraryWindow.c"
+ }
+#line 1466 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp4_) {
+#line 9645 "LibraryWindow.c"
+ LibraryLastImportSidebarEntry* _tmp9_ = NULL;
+ Page* _tmp10_ = NULL;
+ Page* _tmp11_ = NULL;
+#line 1467 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = last_import_entry;
+#line 1467 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1467 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = _tmp10_;
+#line 1467 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp11_);
+#line 1467 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp11_);
+#line 1469 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (last_import_entry);
+#line 1469 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 9663 "LibraryWindow.c"
+ }
+#line 1473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = selectable;
+#line 1473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, EVENTS_TYPE_EVENT_ENTRY)) {
+#line 9669 "LibraryWindow.c"
+ EventsBranch* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 1473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = self->priv->events_branch;
+#line 1473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = sidebar_branch_get_show_branch (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 1473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = _tmp15_;
+#line 9678 "LibraryWindow.c"
+ } else {
+#line 1473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = FALSE;
+#line 9682 "LibraryWindow.c"
+ }
+#line 1473 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp12_) {
+#line 9686 "LibraryWindow.c"
+ EventsBranch* _tmp16_ = NULL;
+ EventsMasterDirectoryEntry* _tmp17_ = NULL;
+ EventsMasterDirectoryEntry* _tmp18_ = NULL;
+ Page* _tmp19_ = NULL;
+ Page* _tmp20_ = NULL;
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = self->priv->events_branch;
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = events_branch_get_master_entry (_tmp16_);
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = _tmp17_;
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = _tmp19_;
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp20_);
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1474 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp18_);
+#line 1476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (last_import_entry);
+#line 1476 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 9712 "LibraryWindow.c"
+ }
+#line 1480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = selectable;
+#line 1480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp22_, EVENTS_TYPE_DIRECTORY_ENTRY)) {
+#line 9718 "LibraryWindow.c"
+ EventsBranch* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 1480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = self->priv->events_branch;
+#line 1480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = sidebar_branch_get_show_branch (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 1480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = _tmp24_;
+#line 9727 "LibraryWindow.c"
+ } else {
+#line 1480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = FALSE;
+#line 9731 "LibraryWindow.c"
+ }
+#line 1480 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp21_) {
+#line 9735 "LibraryWindow.c"
+ EventsBranch* _tmp25_ = NULL;
+ EventsMasterDirectoryEntry* _tmp26_ = NULL;
+ EventsMasterDirectoryEntry* _tmp27_ = NULL;
+ Page* _tmp28_ = NULL;
+ Page* _tmp29_ = NULL;
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = self->priv->events_branch;
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = events_branch_get_master_entry (_tmp25_);
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp27_ = _tmp26_;
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = _tmp28_;
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp29_);
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp29_);
+#line 1481 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp27_);
+#line 1483 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (last_import_entry);
+#line 1483 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 9761 "LibraryWindow.c"
+ }
+#line 1487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp30_ = self->priv->library_branch;
+#line 1487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_ = library_branch_get_photos_entry (_tmp30_);
+#line 1487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = _tmp31_;
+#line 1487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 1487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_ = _tmp33_;
+#line 1487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_switch_to_page (self, _tmp34_);
+#line 1487 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp34_);
+#line 1459 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (last_import_entry);
+#line 9779 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_update_properties_view_collection_items_state_changed (ViewCollection* _sender, GeeIterable* changed, gpointer self) {
+#line 1493 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_update_properties ((LibraryWindow*) self);
+#line 9786 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_update_properties_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 1494 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_update_properties ((LibraryWindow*) self);
+#line 9793 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_update_properties_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 1495 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_update_properties ((LibraryWindow*) self);
+#line 9800 "LibraryWindow.c"
+}
+
+
+static void _library_window_on_update_properties_view_collection_items_visibility_changed (ViewCollection* _sender, GeeCollection* changed, gpointer self) {
+#line 1496 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_update_properties ((LibraryWindow*) self);
+#line 9807 "LibraryWindow.c"
+}
+
+
+static void library_window_subscribe_for_basic_information (LibraryWindow* self, Page* page) {
+ ViewCollection* view = NULL;
+ Page* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+#line 1490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1491 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 1491 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page_get_view (_tmp0_);
+#line 1491 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp1_;
+#line 1493 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (view, "items-state-changed", (GCallback) _library_window_on_update_properties_view_collection_items_state_changed, self, 0);
+#line 1494 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (view, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _library_window_on_update_properties_data_collection_items_altered, self, 0);
+#line 1495 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (view, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _library_window_on_update_properties_data_collection_contents_altered, self, 0);
+#line 1496 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_connect_object (view, "items-visibility-changed", (GCallback) _library_window_on_update_properties_view_collection_items_visibility_changed, self, 0);
+#line 1490 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 9835 "LibraryWindow.c"
+}
+
+
+static void library_window_unsubscribe_from_basic_information (LibraryWindow* self, Page* page) {
+ ViewCollection* view = NULL;
+ Page* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+ guint _tmp4_ = 0U;
+ guint _tmp5_ = 0U;
+#line 1499 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1499 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 1500 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = page;
+#line 1500 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = page_get_view (_tmp0_);
+#line 1500 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ view = _tmp1_;
+#line 1502 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("items-state-changed", TYPE_VIEW_COLLECTION, &_tmp2_, NULL, FALSE);
+#line 1502 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (view, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _library_window_on_update_properties_view_collection_items_state_changed, self);
+#line 1503 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 1503 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (view, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _library_window_on_update_properties_data_collection_items_altered, self);
+#line 1504 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp4_, NULL, FALSE);
+#line 1504 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (view, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _library_window_on_update_properties_data_collection_contents_altered, self);
+#line 1505 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("items-visibility-changed", TYPE_VIEW_COLLECTION, &_tmp5_, NULL, FALSE);
+#line 1505 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (view, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _library_window_on_update_properties_view_collection_items_visibility_changed, self);
+#line 1499 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (view);
+#line 9875 "LibraryWindow.c"
+}
+
+
+static void library_window_on_update_properties (LibraryWindow* self) {
+ OneShotScheduler* _tmp0_ = NULL;
+#line 1508 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1509 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->properties_scheduler;
+#line 1509 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ one_shot_scheduler_at_idle (_tmp0_);
+#line 9887 "LibraryWindow.c"
+}
+
+
+static void library_window_on_update_properties_now (LibraryWindow* self) {
+ GtkFrame* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ ExtendedPropertiesWindow* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 1512 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1513 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->bottom_frame;
+#line 1513 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 1513 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = _tmp1_;
+#line 1513 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp2_) {
+#line 9908 "LibraryWindow.c"
+ BasicProperties* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+ Page* _tmp5_ = NULL;
+#line 1514 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = self->priv->basic_properties;
+#line 1514 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 1514 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _tmp4_;
+#line 1514 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ properties_update_properties (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PROPERTIES, Properties), _tmp5_);
+#line 1514 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp5_);
+#line 9922 "LibraryWindow.c"
+ }
+#line 1516 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->extended_properties;
+#line 1516 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = gtk_widget_get_visible (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_widget_get_type (), GtkWidget));
+#line 1516 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = _tmp7_;
+#line 1516 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp8_) {
+#line 9932 "LibraryWindow.c"
+ ExtendedPropertiesWindow* _tmp9_ = NULL;
+ Page* _tmp10_ = NULL;
+ Page* _tmp11_ = NULL;
+#line 1517 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = self->priv->extended_properties;
+#line 1517 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 1517 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = _tmp10_;
+#line 1517 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ extended_properties_window_update_properties (_tmp9_, _tmp11_);
+#line 1517 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp11_);
+#line 9946 "LibraryWindow.c"
+ }
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 9960 "LibraryWindow.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 9991 "LibraryWindow.c"
+ goto __catch41_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 10000 "LibraryWindow.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 10016 "LibraryWindow.c"
+ goto __catch41_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 10027 "LibraryWindow.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 10041 "LibraryWindow.c"
+ }
+ goto __finally41;
+ __catch41_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 10055 "LibraryWindow.c"
+ }
+ __finally41:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 10066 "LibraryWindow.c"
+ }
+}
+
+
+void library_window_mounted_camera_shell_notification (LibraryWindow* self, const gchar* uri, gboolean at_startup) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GFile* uri_file = NULL;
+ const gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GMount* mount = NULL;
+ gchar* alt_uri = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 1520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (IS_LIBRARY_WINDOW (self));
+#line 1520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (uri != NULL);
+#line 1521 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = uri;
+#line 1521 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:1521: mount point reported: %s", _tmp0_);
+#line 1524 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = uri;
+#line 1524 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = library_window_is_mount_uri_supported (_tmp1_);
+#line 1524 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp2_) {
+#line 10098 "LibraryWindow.c"
+ const gchar* _tmp3_ = NULL;
+#line 1525 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = uri;
+#line 1525 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:1525: Unsupported mount scheme: %s", _tmp3_);
+#line 1527 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 10106 "LibraryWindow.c"
+ }
+#line 1530 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = uri;
+#line 1530 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = g_file_new_for_uri (_tmp4_);
+#line 1530 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ uri_file = _tmp5_;
+#line 1533 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ mount = NULL;
+#line 10116 "LibraryWindow.c"
+ {
+ GMount* _tmp6_ = NULL;
+ GFile* _tmp7_ = NULL;
+ GMount* _tmp8_ = NULL;
+ GMount* _tmp9_ = NULL;
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = uri_file;
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = g_file_find_enclosing_mount (_tmp7_, NULL, &_inner_error_);
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = _tmp8_;
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 10130 "LibraryWindow.c"
+ goto __catch40_g_error;
+ }
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _tmp6_;
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = NULL;
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (mount);
+#line 1535 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ mount = _tmp9_;
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp6_);
+#line 10143 "LibraryWindow.c"
+ }
+ goto __finally40;
+ __catch40_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ err = _inner_error_;
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _inner_error_ = NULL;
+#line 1537 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = err;
+#line 1537 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = _tmp10_->message;
+#line 1537 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_debug ("LibraryWindow.vala:1537: %s", _tmp11_);
+#line 1539 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_error_free0 (err);
+#line 1539 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (mount);
+#line 1539 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (uri_file);
+#line 1539 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 10169 "LibraryWindow.c"
+ }
+ __finally40:
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (mount);
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (uri_file);
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_clear_error (&_inner_error_);
+#line 1534 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return;
+#line 10184 "LibraryWindow.c"
+ }
+#line 1543 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ alt_uri = NULL;
+#line 1544 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = uri;
+#line 1544 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = g_str_has_prefix (_tmp12_, "file://");
+#line 1544 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp13_) {
+#line 10194 "LibraryWindow.c"
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 1545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = uri;
+#line 1545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = string_replace (_tmp14_, "file://", "disk:");
+#line 1545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = _tmp15_;
+#line 1545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = camera_table_get_port_uri (_tmp16_);
+#line 1545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (alt_uri);
+#line 1545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ alt_uri = _tmp17_;
+#line 1545 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (_tmp16_);
+#line 10213 "LibraryWindow.c"
+ }
+#line 1548 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = at_startup;
+#line 1548 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp18_) {
+#line 10219 "LibraryWindow.c"
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 1549 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = uri;
+#line 1549 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = is_string_empty (_tmp19_);
+#line 1549 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp20_) {
+#line 10230 "LibraryWindow.c"
+ GeeHashSet* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 1550 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = library_window_initial_camera_uris;
+#line 1550 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = uri;
+#line 1550 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp22_);
+#line 10239 "LibraryWindow.c"
+ }
+#line 1552 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = alt_uri;
+#line 1552 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = is_string_empty (_tmp23_);
+#line 1552 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp24_) {
+#line 10247 "LibraryWindow.c"
+ GeeHashSet* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 1553 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp25_ = library_window_initial_camera_uris;
+#line 1553 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = alt_uri;
+#line 1553 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp26_);
+#line 10256 "LibraryWindow.c"
+ }
+ }
+#line 1520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (alt_uri);
+#line 1520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (mount);
+#line 1520 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (uri_file);
+#line 10265 "LibraryWindow.c"
+}
+
+
+static gboolean library_window_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ LibraryWindow * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ SidebarTree* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ GdkEventKey* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ GdkEventKey* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ const gchar* _tmp15_ = NULL;
+#line 1557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 1557 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->sidebar_tree;
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget), "has-focus", &_tmp3_, NULL);
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = _tmp3_;
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp4_) {
+#line 10294 "LibraryWindow.c"
+ SidebarTree* _tmp5_ = NULL;
+ GdkEventKey* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = self->priv->sidebar_tree;
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = event;
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = sidebar_tree_is_keypress_interpreted (_tmp5_, _tmp6_);
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp7_;
+#line 10306 "LibraryWindow.c"
+ } else {
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = FALSE;
+#line 10310 "LibraryWindow.c"
+ }
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp1_) {
+#line 10314 "LibraryWindow.c"
+ SidebarTree* _tmp8_ = NULL;
+ GdkEventKey* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 1559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = self->priv->sidebar_tree;
+#line 1559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = event;
+#line 1559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget), "key-press-event", _tmp9_, &_tmp10_);
+#line 1559 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = _tmp10_;
+#line 10326 "LibraryWindow.c"
+ } else {
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = FALSE;
+#line 10330 "LibraryWindow.c"
+ }
+#line 1558 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp0_) {
+#line 1560 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 1560 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 10338 "LibraryWindow.c"
+ }
+#line 1563 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = event;
+#line 1563 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = GTK_WIDGET_CLASS (library_window_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_APP_WINDOW, AppWindow), gtk_widget_get_type (), GtkWidget), _tmp11_);
+#line 1563 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp12_) {
+#line 1564 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 1564 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 10350 "LibraryWindow.c"
+ }
+#line 1566 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = event;
+#line 1566 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = _tmp13_->keyval;
+#line 1566 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = gdk_keyval_name (_tmp14_);
+#line 1566 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (g_strcmp0 (_tmp15_, "Escape") == 0) {
+#line 1567 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_clear_search (self);
+#line 1568 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = TRUE;
+#line 1568 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 10366 "LibraryWindow.c"
+ }
+#line 1571 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = FALSE;
+#line 1571 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 10372 "LibraryWindow.c"
+}
+
+
+gint library_window_get_PAGE_MIN_WIDTH (void) {
+ gint result;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 12 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = thumbnail_get_MAX_SCALE ();
+#line 12 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _tmp0_;
+#line 12 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ result = _tmp1_ + (CHECKERBOARD_LAYOUT_COLUMN_GUTTER_PADDING * 2);
+#line 12 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return result;
+#line 10388 "LibraryWindow.c"
+}
+
+
+static gpointer _data_collection_ref0 (gpointer self) {
+#line 78 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return self ? data_collection_ref (self) : NULL;
+#line 10395 "LibraryWindow.c"
+}
+
+
+static LibraryWindowFullscreenPhotoPage* library_window_fullscreen_photo_page_construct (GType object_type, CollectionPage* collection, Photo* start, ViewCollection* view) {
+ LibraryWindowFullscreenPhotoPage * self = NULL;
+ CollectionPage* _tmp0_ = NULL;
+ CollectionPage* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ Photo* _tmp3_ = NULL;
+ ViewCollection* _tmp4_ = NULL;
+ ViewCollection* _tmp5_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_COLLECTION_PAGE (collection), NULL);
+#line 75 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail (IS_PHOTO (start), NULL);
+#line 75 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_val_if_fail ((view == NULL) || IS_VIEW_COLLECTION (view), NULL);
+#line 75 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = (LibraryWindowFullscreenPhotoPage*) library_photo_page_construct (object_type);
+#line 76 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = collection;
+#line 76 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 76 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->collection);
+#line 76 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->collection = _tmp1_;
+#line 77 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = start;
+#line 77 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 77 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->start);
+#line 77 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->start = _tmp3_;
+#line 78 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = view;
+#line 78 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = _data_collection_ref0 (_tmp4_);
+#line 78 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 78 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->view = _tmp5_;
+#line 75 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return self;
+#line 10441 "LibraryWindow.c"
+}
+
+
+static LibraryWindowFullscreenPhotoPage* library_window_fullscreen_photo_page_new (CollectionPage* collection, Photo* start, ViewCollection* view) {
+#line 75 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ return library_window_fullscreen_photo_page_construct (LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, collection, start, view);
+#line 10448 "LibraryWindow.c"
+}
+
+
+static void library_window_fullscreen_photo_page_real_switched_to (Page* base) {
+ LibraryWindowFullscreenPhotoPage * self;
+ CollectionPage* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, LibraryWindowFullscreenPhotoPage);
+#line 82 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->collection;
+#line 82 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = self->priv->start;
+#line 82 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->view;
+#line 82 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_photo_page_display_for_collection (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage), _tmp0_, _tmp1_, _tmp2_);
+#line 84 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ PAGE_CLASS (library_window_fullscreen_photo_page_parent_class)->switched_to (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_LIBRARY_PHOTO_PAGE, LibraryPhotoPage), TYPE_PAGE, Page));
+#line 10469 "LibraryWindow.c"
+}
+
+
+static void library_window_fullscreen_photo_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ LibraryWindowFullscreenPhotoPage * self;
+ GeeList* _tmp0_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, LibraryWindowFullscreenPhotoPage);
+#line 87 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 90 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = ui_filenames;
+#line 90 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), "photo_context.ui");
+#line 10484 "LibraryWindow.c"
+}
+
+
+static void library_window_fullscreen_photo_page_class_init (LibraryWindowFullscreenPhotoPageClass * klass) {
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_fullscreen_photo_page_parent_class = g_type_class_peek_parent (klass);
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_type_class_add_private (klass, sizeof (LibraryWindowFullscreenPhotoPagePrivate));
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((PageClass *) klass)->switched_to = library_window_fullscreen_photo_page_real_switched_to;
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = library_window_fullscreen_photo_page_real_init_collect_ui_filenames;
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_window_fullscreen_photo_page_finalize;
+#line 10499 "LibraryWindow.c"
+}
+
+
+static void library_window_fullscreen_photo_page_instance_init (LibraryWindowFullscreenPhotoPage * self) {
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv = LIBRARY_WINDOW_FULLSCREEN_PHOTO_PAGE_GET_PRIVATE (self);
+#line 10506 "LibraryWindow.c"
+}
+
+
+static void library_window_fullscreen_photo_page_finalize (GObject* obj) {
+ LibraryWindowFullscreenPhotoPage * self;
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_WINDOW_TYPE_FULLSCREEN_PHOTO_PAGE, LibraryWindowFullscreenPhotoPage);
+#line 71 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->collection);
+#line 72 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->start);
+#line 73 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (self->priv->view);
+#line 70 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ G_OBJECT_CLASS (library_window_fullscreen_photo_page_parent_class)->finalize (obj);
+#line 10522 "LibraryWindow.c"
+}
+
+
+static GType library_window_fullscreen_photo_page_get_type (void) {
+ static volatile gsize library_window_fullscreen_photo_page_type_id__volatile = 0;
+ if (g_once_init_enter (&library_window_fullscreen_photo_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryWindowFullscreenPhotoPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_window_fullscreen_photo_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryWindowFullscreenPhotoPage), 0, (GInstanceInitFunc) library_window_fullscreen_photo_page_instance_init, NULL };
+ GType library_window_fullscreen_photo_page_type_id;
+ library_window_fullscreen_photo_page_type_id = g_type_register_static (TYPE_LIBRARY_PHOTO_PAGE, "LibraryWindowFullscreenPhotoPage", &g_define_type_info, 0);
+ g_once_init_leave (&library_window_fullscreen_photo_page_type_id__volatile, library_window_fullscreen_photo_page_type_id);
+ }
+ return library_window_fullscreen_photo_page_type_id__volatile;
+}
+
+
+static void library_window_class_init (LibraryWindowClass * klass) {
+ GeeHashSet* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_type_class_add_private (klass, sizeof (LibraryWindowPrivate));
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((AppWindowClass *) klass)->create_common_action_groups = library_window_real_create_common_action_groups;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((AppWindowClass *) klass)->replace_common_placeholders = library_window_real_replace_common_placeholders;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((PageWindowClass *) klass)->switched_pages = library_window_real_switched_pages;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((GtkWidgetClass *) klass)->show_all = library_window_real_show_all;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((AppWindowClass *) klass)->get_app_role = library_window_real_get_app_role;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((AppWindowClass *) klass)->on_quit = library_window_real_on_quit;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((AppWindowClass *) klass)->on_fullscreen = library_window_real_on_fullscreen;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((AppWindowClass *) klass)->update_common_action_availability = library_window_real_update_common_action_availability;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((AppWindowClass *) klass)->update_common_actions = library_window_real_update_common_actions;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((GtkWidgetClass *) klass)->drag_motion = library_window_real_drag_motion;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((GtkWidgetClass *) klass)->drag_data_received = library_window_real_drag_data_received;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((PageWindowClass *) klass)->set_current_page = library_window_real_set_current_page;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = library_window_real_key_press_event;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_library_window_get_property;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_window_finalize;
+#line 121 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 121 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_initial_camera_uris = _tmp0_;
+#line 10578 "LibraryWindow.c"
+}
+
+
+static void library_window_instance_init (LibraryWindow * self) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GtkPaned* _tmp2_ = NULL;
+ GtkPaned* _tmp3_ = NULL;
+ GtkFrame* _tmp4_ = NULL;
+ GtkActionGroup* _tmp5_ = NULL;
+ LibraryBranch* _tmp6_ = NULL;
+ TagsBranch* _tmp7_ = NULL;
+ FoldersBranch* _tmp8_ = NULL;
+ EventsBranch* _tmp9_ = NULL;
+ CameraBranch* _tmp10_ = NULL;
+ SearchesBranch* _tmp11_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ SearchFilterActions* _tmp13_ = NULL;
+ GtkBox* _tmp14_ = NULL;
+ GtkFrame* _tmp15_ = NULL;
+ GtkProgressBar* _tmp16_ = NULL;
+ BasicProperties* _tmp17_ = NULL;
+ GtkStack* _tmp18_ = NULL;
+ GtkBox* _tmp19_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv = LIBRARY_WINDOW_GET_PRIVATE (self);
+#line 95 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = g_get_home_dir ();
+#line 95 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 95 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->import_dir = _tmp1_;
+#line 97 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = (GtkPaned*) gtk_paned_new (GTK_ORIENTATION_VERTICAL);
+#line 97 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp2_);
+#line 97 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->sidebar_paned = _tmp2_;
+#line 98 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp3_ = (GtkPaned*) gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
+#line 98 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp3_);
+#line 98 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->client_paned = _tmp3_;
+#line 99 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = (GtkFrame*) gtk_frame_new (NULL);
+#line 99 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp4_);
+#line 99 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->bottom_frame = _tmp4_;
+#line 101 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp5_ = gtk_action_group_new ("LibraryWindowGlobalActionGroup");
+#line 101 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->common_action_group = _tmp5_;
+#line 103 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->properties_scheduler = NULL;
+#line 104 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->notify_library_is_home_dir = TRUE;
+#line 108 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = library_branch_new ();
+#line 108 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->library_branch = _tmp6_;
+#line 109 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp7_ = tags_branch_new ();
+#line 109 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->tags_branch = _tmp7_;
+#line 110 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = folders_branch_new ();
+#line 110 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->folders_branch = _tmp8_;
+#line 111 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = events_branch_new ();
+#line 111 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->events_branch = _tmp9_;
+#line 112 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = camera_branch_new ();
+#line 112 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->camera_branch = _tmp10_;
+#line 113 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp11_ = searches_branch_new ();
+#line 113 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->saved_search_branch = _tmp11_;
+#line 114 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->page_switching_enabled = TRUE;
+#line 116 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = gee_hash_map_new (TYPE_PAGE, (GBoxedCopyFunc) g_object_ref, g_object_unref, SIDEBAR_TYPE_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 116 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->page_map = _tmp12_;
+#line 118 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->photo_page = NULL;
+#line 123 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->is_search_toolbar_visible = FALSE;
+#line 128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp13_ = search_filter_actions_new ();
+#line 128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->search_actions = _tmp13_;
+#line 131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp14_);
+#line 131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->top_section = _tmp14_;
+#line 132 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = (GtkFrame*) gtk_frame_new (NULL);
+#line 132 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp15_);
+#line 132 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_frame = _tmp15_;
+#line 133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = (GtkProgressBar*) gtk_progress_bar_new ();
+#line 133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp16_);
+#line 133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_bar = _tmp16_;
+#line 134 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_displayed = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = basic_properties_new ();
+#line 136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp17_);
+#line 136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->basic_properties = _tmp17_;
+#line 139 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = (GtkStack*) gtk_stack_new ();
+#line 139 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp18_);
+#line 139 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->stack = _tmp18_;
+#line 140 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 140 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_object_ref_sink (_tmp19_);
+#line 140 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->layout = _tmp19_;
+#line 143 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->current_progress_priority = 0;
+#line 144 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self->priv->background_progress_pulse_id = (guint) 0;
+#line 10717 "LibraryWindow.c"
+}
+
+
+static void library_window_finalize (GObject* obj) {
+ LibraryWindow * self;
+ SidebarTree* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ SidebarTree* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ SidebarTree* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ SidebarTree* _tmp6_ = NULL;
+ guint _tmp7_ = 0U;
+ Page* _tmp8_ = NULL;
+ Page* _tmp9_ = NULL;
+ ExtendedPropertiesWindow* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ ExtendedPropertiesWindow* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+ MetadataWriter* _tmp28_ = NULL;
+ MetadataWriter* _tmp29_ = NULL;
+ guint _tmp30_ = 0U;
+ LibraryMonitor* monitor = NULL;
+ LibraryMonitorPool* _tmp31_ = NULL;
+ LibraryMonitorPool* _tmp32_ = NULL;
+ LibraryMonitor* _tmp33_ = NULL;
+ LibraryMonitor* _tmp34_ = NULL;
+ LibraryMonitor* _tmp35_ = NULL;
+ LibraryMonitorPool* _tmp37_ = NULL;
+ LibraryMonitorPool* _tmp38_ = NULL;
+ guint _tmp39_ = 0U;
+ LibraryMonitorPool* _tmp40_ = NULL;
+ LibraryMonitorPool* _tmp41_ = NULL;
+ guint _tmp42_ = 0U;
+ CameraTable* _tmp43_ = NULL;
+ CameraTable* _tmp44_ = NULL;
+ guint _tmp45_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 231 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp0_ = self->priv->sidebar_tree;
+#line 231 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("page-created", SIDEBAR_TYPE_TREE, &_tmp1_, NULL, FALSE);
+#line 231 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _library_window_on_page_created_sidebar_tree_page_created, self);
+#line 232 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp2_ = self->priv->sidebar_tree;
+#line 232 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("destroying-page", SIDEBAR_TYPE_TREE, &_tmp3_, NULL, FALSE);
+#line 232 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _library_window_on_destroying_page_sidebar_tree_destroying_page, self);
+#line 233 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp4_ = self->priv->sidebar_tree;
+#line 233 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("entry-selected", SIDEBAR_TYPE_TREE, &_tmp5_, NULL, FALSE);
+#line 233 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _library_window_on_sidebar_entry_selected_sidebar_tree_entry_selected, self);
+#line 234 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp6_ = self->priv->sidebar_tree;
+#line 234 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("selected-entry-removed", SIDEBAR_TYPE_TREE, &_tmp7_, NULL, FALSE);
+#line 234 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _library_window_on_sidebar_selected_entry_removed_sidebar_tree_selected_entry_removed, self);
+#line 236 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp8_ = page_window_get_current_page (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE_WINDOW, PageWindow));
+#line 236 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp9_ = _tmp8_;
+#line 236 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_unsubscribe_from_basic_information (self, _tmp9_);
+#line 236 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp9_);
+#line 238 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp10_ = self->priv->extended_properties;
+#line 238 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("hide", gtk_widget_get_type (), &_tmp11_, NULL, FALSE);
+#line 238 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _library_window_hide_extended_properties_gtk_widget_hide, self);
+#line 239 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp12_ = self->priv->extended_properties;
+#line 239 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("show", gtk_widget_get_type (), &_tmp13_, NULL, FALSE);
+#line 239 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _library_window_show_extended_properties_gtk_widget_show, self);
+#line 10801 "LibraryWindow.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp14_ = NULL;
+ MediaCollectionRegistry* _tmp15_ = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ GeeIterator* _tmp19_ = NULL;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp14_ = media_collection_registry_get_instance ();
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp15_ = _tmp14_;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp16_ = media_collection_registry_get_all (_tmp15_);
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp17_ = _tmp16_;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp18_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp19_ = _tmp18_;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp17_);
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _media_collection_registry_unref0 (_tmp15_);
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _media_sources_it = _tmp19_;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ while (TRUE) {
+#line 10830 "LibraryWindow.c"
+ GeeIterator* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp22_ = NULL;
+ gpointer _tmp23_ = NULL;
+ MediaSourceCollection* _tmp24_ = NULL;
+ guint _tmp25_ = 0U;
+ MediaSourceCollection* _tmp26_ = NULL;
+ guint _tmp27_ = 0U;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp20_ = _media_sources_it;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp21_ = gee_iterator_next (_tmp20_);
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (!_tmp21_) {
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ break;
+#line 10848 "LibraryWindow.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp22_ = _media_sources_it;
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp23_ = gee_iterator_get (_tmp22_);
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ media_sources = (MediaSourceCollection*) _tmp23_;
+#line 242 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp24_ = media_sources;
+#line 242 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("trashcan-contents-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp25_, NULL, FALSE);
+#line 242 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp24_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp25_, 0, NULL, (GCallback) _library_window_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered, self);
+#line 243 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp26_ = media_sources;
+#line 243 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp27_, NULL, FALSE);
+#line 243 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp27_, 0, NULL, (GCallback) _library_window_on_media_altered_data_collection_items_altered, self);
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _data_collection_unref0 (media_sources);
+#line 10870 "LibraryWindow.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 10874 "LibraryWindow.c"
+ }
+#line 246 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp28_ = metadata_writer_get_instance ();
+#line 246 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp29_ = _tmp28_;
+#line 246 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("progress", TYPE_METADATA_WRITER, &_tmp30_, NULL, FALSE);
+#line 246 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp29_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp30_, 0, NULL, (GCallback) _library_window_on_metadata_writer_progress_metadata_writer_progress, self);
+#line 246 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (_tmp29_);
+#line 248 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp31_ = library_monitor_pool_get_instance ();
+#line 248 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp32_ = _tmp31_;
+#line 248 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp33_ = library_monitor_pool_get_monitor (_tmp32_);
+#line 248 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp34_ = _tmp33_;
+#line 248 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _library_monitor_pool_unref0 (_tmp32_);
+#line 248 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ monitor = _tmp34_;
+#line 249 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp35_ = monitor;
+#line 249 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ if (_tmp35_ != NULL) {
+#line 10902 "LibraryWindow.c"
+ LibraryMonitor* _tmp36_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp36_ = monitor;
+#line 250 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ library_window_on_library_monitor_destroyed (self, _tmp36_);
+#line 10908 "LibraryWindow.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp37_ = library_monitor_pool_get_instance ();
+#line 252 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp38_ = _tmp37_;
+#line 252 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("monitor-installed", TYPE_LIBRARY_MONITOR_POOL, &_tmp39_, NULL, FALSE);
+#line 252 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp38_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp39_, 0, NULL, (GCallback) _library_window_on_library_monitor_installed_library_monitor_pool_monitor_installed, self);
+#line 252 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _library_monitor_pool_unref0 (_tmp38_);
+#line 253 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp40_ = library_monitor_pool_get_instance ();
+#line 253 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp41_ = _tmp40_;
+#line 253 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("monitor-destroyed", TYPE_LIBRARY_MONITOR_POOL, &_tmp42_, NULL, FALSE);
+#line 253 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp41_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp42_, 0, NULL, (GCallback) _library_window_on_library_monitor_destroyed_library_monitor_pool_monitor_destroyed, self);
+#line 253 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _library_monitor_pool_unref0 (_tmp41_);
+#line 255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp43_ = camera_table_get_instance ();
+#line 255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _tmp44_ = _tmp43_;
+#line 255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_parse_name ("camera-added", TYPE_CAMERA_TABLE, &_tmp45_, NULL, FALSE);
+#line 255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ g_signal_handlers_disconnect_matched (_tmp44_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp45_, 0, NULL, (GCallback) _library_window_on_camera_added_camera_table_camera_added, self);
+#line 255 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _camera_table_unref0 (_tmp44_);
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (monitor);
+#line 95 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_free0 (self->priv->import_dir);
+#line 97 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->sidebar_paned);
+#line 98 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->client_paned);
+#line 99 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->bottom_frame);
+#line 101 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->common_action_group);
+#line 103 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _one_shot_scheduler_unref0 (self->priv->properties_scheduler);
+#line 107 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->sidebar_tree);
+#line 108 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->library_branch);
+#line 109 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->tags_branch);
+#line 110 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->folders_branch);
+#line 111 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->events_branch);
+#line 112 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->camera_branch);
+#line 113 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->saved_search_branch);
+#line 116 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->page_map);
+#line 118 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->photo_page);
+#line 128 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _search_filter_actions_unref0 (self->priv->search_actions);
+#line 129 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->search_toolbar);
+#line 131 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->top_section);
+#line 132 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->background_progress_frame);
+#line 133 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->background_progress_bar);
+#line 136 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->basic_properties);
+#line 137 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->extended_properties);
+#line 139 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->stack);
+#line 140 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->layout);
+#line 141 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ _g_object_unref0 (self->priv->right_vbox);
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ G_OBJECT_CLASS (library_window_parent_class)->finalize (obj);
+#line 10994 "LibraryWindow.c"
+}
+
+
+GType library_window_get_type (void) {
+ static volatile gsize library_window_type_id__volatile = 0;
+ if (g_once_init_enter (&library_window_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryWindow), 0, (GInstanceInitFunc) library_window_instance_init, NULL };
+ GType library_window_type_id;
+ library_window_type_id = g_type_register_static (TYPE_APP_WINDOW, "LibraryWindow", &g_define_type_info, 0);
+ g_once_init_leave (&library_window_type_id__volatile, library_window_type_id);
+ }
+ return library_window_type_id__volatile;
+}
+
+
+static void _vala_library_window_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ LibraryWindow * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ switch (property_id) {
+#line 11015 "LibraryWindow.c"
+ default:
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 7 "/home/jens/Source/shotwell/src/library/LibraryWindow.vala"
+ break;
+#line 11021 "LibraryWindow.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/library/LibraryWindow.vala b/src/library/LibraryWindow.vala
index 21fc85e..19f819b 100644
--- a/src/library/LibraryWindow.vala
+++ b/src/library/LibraryWindow.vala
@@ -392,7 +392,13 @@ public class LibraryWindow : AppWindow {
sidebar.label = _("S_idebar");
sidebar.tooltip = _("Display the sidebar");
actions += sidebar;
-
+
+ Gtk.ToggleActionEntry toolbar = { "CommonDisplayToolbar", null, TRANSLATABLE,
+ "<Ctrl>F9", TRANSLATABLE, on_display_toolbar, is_toolbar_visible() };
+ toolbar.label = _("T_oolbar");
+ toolbar.tooltip = _("Display the tool bar");
+ actions += toolbar;
+
return actions;
}
@@ -837,7 +843,7 @@ public class LibraryWindow : AppWindow {
set_sidebar_visible(((Gtk.ToggleAction) action).get_active());
}
-
+
private void set_sidebar_visible(bool visible) {
sidebar_paned.set_visible(visible);
Config.Facade.get_instance().set_display_sidebar(visible);
@@ -847,6 +853,22 @@ public class LibraryWindow : AppWindow {
return Config.Facade.get_instance().get_display_sidebar();
}
+ private void on_display_toolbar (Gtk.Action action) {
+ set_toolbar_visible ((action as Gtk.ToggleAction).get_active ());
+ }
+
+ private void set_toolbar_visible (bool visible) {
+ var toolbar = get_current_page ().get_toolbar ();
+ if (toolbar != null) {
+ toolbar.set_visible (visible);
+ }
+ Config.Facade.get_instance().set_display_toolbar (visible);
+ }
+
+ private bool is_toolbar_visible () {
+ return Config.Facade.get_instance ().get_display_toolbar ();
+ }
+
private void show_extended_properties() {
sync_extended_properties(true);
}
@@ -1382,6 +1404,7 @@ public class LibraryWindow : AppWindow {
if (toolbar != null) {
right_vbox.add(toolbar);
toolbar.show_all();
+ toolbar.set_visible (this.is_toolbar_visible ());
}
page.ready();
diff --git a/src/library/OfflinePage.c b/src/library/OfflinePage.c
new file mode 100644
index 0000000..df2b7c6
--- /dev/null
+++ b/src/library/OfflinePage.c
@@ -0,0 +1,1741 @@
+/* OfflinePage.c generated by valac 0.32.1, the Vala compiler
+ * generated from OfflinePage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_OFFLINE_PAGE (offline_page_get_type ())
+#define OFFLINE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OFFLINE_PAGE, OfflinePage))
+#define OFFLINE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OFFLINE_PAGE, OfflinePageClass))
+#define IS_OFFLINE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OFFLINE_PAGE))
+#define IS_OFFLINE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OFFLINE_PAGE))
+#define OFFLINE_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OFFLINE_PAGE, OfflinePageClass))
+
+typedef struct _OfflinePage OfflinePage;
+typedef struct _OfflinePageClass OfflinePageClass;
+typedef struct _OfflinePagePrivate OfflinePagePrivate;
+
+#define TYPE_DEFAULT_SEARCH_VIEW_FILTER (default_search_view_filter_get_type ())
+#define DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilter))
+#define DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define DEFAULT_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+
+typedef struct _DefaultSearchViewFilter DefaultSearchViewFilter;
+typedef struct _DefaultSearchViewFilterClass DefaultSearchViewFilterClass;
+
+#define OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER (offline_page_offline_search_view_filter_get_type ())
+#define OFFLINE_PAGE_OFFLINE_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER, OfflinePageOfflineSearchViewFilter))
+#define OFFLINE_PAGE_OFFLINE_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER, OfflinePageOfflineSearchViewFilterClass))
+#define OFFLINE_PAGE_IS_OFFLINE_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER))
+#define OFFLINE_PAGE_IS_OFFLINE_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER))
+#define OFFLINE_PAGE_OFFLINE_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER, OfflinePageOfflineSearchViewFilterClass))
+
+typedef struct _OfflinePageOfflineSearchViewFilter OfflinePageOfflineSearchViewFilter;
+typedef struct _OfflinePageOfflineSearchViewFilterClass OfflinePageOfflineSearchViewFilterClass;
+
+#define TYPE_MEDIA_VIEW_TRACKER (media_view_tracker_get_type ())
+#define MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTracker))
+#define MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+#define IS_MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_VIEW_TRACKER))
+#define IS_MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_VIEW_TRACKER))
+#define MEDIA_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+
+typedef struct _MediaViewTracker MediaViewTracker;
+typedef struct _MediaViewTrackerClass MediaViewTrackerClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+#define _core_tracker_unref0(var) ((var == NULL) ? NULL : (var = (core_tracker_unref (var), NULL)))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+
+#define TYPE_THUMBNAIL (thumbnail_get_type ())
+#define THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL, Thumbnail))
+#define THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL, ThumbnailClass))
+#define IS_THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL))
+#define IS_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL))
+#define THUMBNAIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL, ThumbnailClass))
+
+typedef struct _Thumbnail Thumbnail;
+typedef struct _ThumbnailClass ThumbnailClass;
+
+#define OFFLINE_PAGE_TYPE_OFFLINE_VIEW (offline_page_offline_view_get_type ())
+#define OFFLINE_PAGE_OFFLINE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OFFLINE_PAGE_TYPE_OFFLINE_VIEW, OfflinePageOfflineView))
+#define OFFLINE_PAGE_OFFLINE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OFFLINE_PAGE_TYPE_OFFLINE_VIEW, OfflinePageOfflineViewClass))
+#define OFFLINE_PAGE_IS_OFFLINE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OFFLINE_PAGE_TYPE_OFFLINE_VIEW))
+#define OFFLINE_PAGE_IS_OFFLINE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OFFLINE_PAGE_TYPE_OFFLINE_VIEW))
+#define OFFLINE_PAGE_OFFLINE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OFFLINE_PAGE_TYPE_OFFLINE_VIEW, OfflinePageOfflineViewClass))
+
+typedef struct _OfflinePageOfflineView OfflinePageOfflineView;
+typedef struct _OfflinePageOfflineViewClass OfflinePageOfflineViewClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
+#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
+#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
+#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
+#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+
+typedef struct _ProgressDialog ProgressDialog;
+typedef struct _ProgressDialogClass ProgressDialogClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _MediaSourceItemPrivate MediaSourceItemPrivate;
+typedef struct _ThumbnailPrivate ThumbnailPrivate;
+typedef struct _OfflinePageOfflineViewPrivate OfflinePageOfflineViewPrivate;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _SearchViewFilterPrivate SearchViewFilterPrivate;
+typedef struct _DefaultSearchViewFilterPrivate DefaultSearchViewFilterPrivate;
+typedef struct _OfflinePageOfflineSearchViewFilterPrivate OfflinePageOfflineSearchViewFilterPrivate;
+
+#define TYPE_SEARCH_FILTER_CRITERIA (search_filter_criteria_get_type ())
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+struct _OfflinePage {
+ CheckerboardPage parent_instance;
+ OfflinePagePrivate * priv;
+};
+
+struct _OfflinePageClass {
+ CheckerboardPageClass parent_class;
+};
+
+struct _OfflinePagePrivate {
+ OfflinePageOfflineSearchViewFilter* search_filter;
+ MediaViewTracker* tracker;
+};
+
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _MediaSourceItem {
+ CheckerboardItem parent_instance;
+ MediaSourceItemPrivate * priv;
+};
+
+struct _MediaSourceItemClass {
+ CheckerboardItemClass parent_class;
+};
+
+struct _Thumbnail {
+ MediaSourceItem parent_instance;
+ ThumbnailPrivate * priv;
+};
+
+struct _ThumbnailClass {
+ MediaSourceItemClass parent_class;
+};
+
+struct _OfflinePageOfflineView {
+ Thumbnail parent_instance;
+ OfflinePageOfflineViewPrivate * priv;
+};
+
+struct _OfflinePageOfflineViewClass {
+ ThumbnailClass parent_class;
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _SearchViewFilter {
+ ViewFilter parent_instance;
+ SearchViewFilterPrivate * priv;
+};
+
+struct _SearchViewFilterClass {
+ ViewFilterClass parent_class;
+ guint (*get_criteria) (SearchViewFilter* self);
+};
+
+struct _DefaultSearchViewFilter {
+ SearchViewFilter parent_instance;
+ DefaultSearchViewFilterPrivate * priv;
+};
+
+struct _DefaultSearchViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+struct _OfflinePageOfflineSearchViewFilter {
+ DefaultSearchViewFilter parent_instance;
+ OfflinePageOfflineSearchViewFilterPrivate * priv;
+};
+
+struct _OfflinePageOfflineSearchViewFilterClass {
+ DefaultSearchViewFilterClass parent_class;
+};
+
+typedef enum {
+ SEARCH_FILTER_CRITERIA_NONE = 0,
+ SEARCH_FILTER_CRITERIA_RECURSIVE = 1 << 0,
+ SEARCH_FILTER_CRITERIA_TEXT = 1 << 1,
+ SEARCH_FILTER_CRITERIA_FLAG = 1 << 2,
+ SEARCH_FILTER_CRITERIA_MEDIA = 1 << 3,
+ SEARCH_FILTER_CRITERIA_RATING = 1 << 4,
+ SEARCH_FILTER_CRITERIA_SAVEDSEARCH = 1 << 5,
+ SEARCH_FILTER_CRITERIA_ALL = 0xFFFFFFFFLL
+} SearchFilterCriteria;
+
+
+static gpointer offline_page_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+static gpointer offline_page_offline_view_parent_class = NULL;
+static gpointer offline_page_offline_search_view_filter_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType offline_page_get_type (void) G_GNUC_CONST;
+GType default_search_view_filter_get_type (void) G_GNUC_CONST;
+static GType offline_page_offline_search_view_filter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType media_view_tracker_get_type (void) G_GNUC_CONST;
+#define OFFLINE_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_OFFLINE_PAGE, OfflinePagePrivate))
+enum {
+ OFFLINE_PAGE_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+static void offline_page_on_offline_contents_altered (OfflinePage* self, GeeCollection* added, GeeCollection* removed);
+static void _offline_page_on_offline_contents_altered_media_source_collection_offline_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+static OfflinePageOfflineSearchViewFilter* offline_page_offline_search_view_filter_new (void);
+static OfflinePageOfflineSearchViewFilter* offline_page_offline_search_view_filter_construct (GType object_type);
+#define OFFLINE_PAGE_NAME _ ("Missing Files")
+OfflinePage* offline_page_new (void);
+OfflinePage* offline_page_construct (GType object_type);
+CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name);
+void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path);
+void page_init_toolbar (Page* self, const gchar* path);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+MediaViewTracker* media_view_tracker_new (ViewCollection* collection);
+MediaViewTracker* media_view_tracker_construct (GType object_type, ViewCollection* collection);
+GeeCollection* media_source_collection_get_offline_bin_contents (MediaSourceCollection* self);
+static void offline_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* offline_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define RESOURCES_REMOVE_LABEL _ ("_Remove")
+#define TRANSLATABLE "translatable"
+static void offline_page_on_remove_from_library (OfflinePage* self);
+static void _offline_page_on_remove_from_library_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_REMOVE_FROM_LIBRARY_MENU _ ("R_emove From Library")
+#define RESOURCES_DELETE_FROM_LIBRARY_TOOLTIP _ ("Remove the selected photos from the library")
+static void _vala_array_add88 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static CoreViewTracker* offline_page_real_get_view_tracker (CheckerboardPage* base);
+static void offline_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void page_set_action_important (Page* self, const gchar* name, gboolean important);
+void page_update_actions (Page* self, gint selected_count, gint count);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+static OfflinePageOfflineView* offline_page_offline_view_new (MediaSource* source);
+static OfflinePageOfflineView* offline_page_offline_view_construct (GType object_type, MediaSource* source);
+GType media_source_item_get_type (void) G_GNUC_CONST;
+GType thumbnail_get_type (void) G_GNUC_CONST;
+static GType offline_page_offline_view_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType marker_get_type (void) G_GNUC_CONST;
+Marker* data_collection_start_marking (DataCollection* self);
+void marker_mark (Marker* self, DataObject* object);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+gboolean remove_offline_dialog (GtkWindow* owner, gint count);
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+void page_window_set_busy_cursor (PageWindow* self);
+GType progress_dialog_get_type (void) G_GNUC_CONST;
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void media_source_collection_filter_media (GeeCollection* media, GeeCollection* photos, GeeCollection* videos);
+void media_source_collection_remove_from_app (MediaSourceCollection* self, GeeCollection* sources, gboolean delete_backing, ProgressMonitor monitor, void* monitor_target, GeeList* not_removed);
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+void progress_dialog_close (ProgressDialog* self);
+void page_window_set_normal_cursor (PageWindow* self);
+static SearchViewFilter* offline_page_real_get_search_view_filter (CheckerboardPage* base);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+enum {
+ OFFLINE_PAGE_OFFLINE_VIEW_DUMMY_PROPERTY
+};
+gint thumbnail_get_DEFAULT_SCALE (void);
+Thumbnail* thumbnail_new (MediaSource* media, gint scale);
+Thumbnail* thumbnail_construct (GType object_type, MediaSource* media, gint scale);
+gboolean media_source_is_offline (MediaSource* self);
+enum {
+ OFFLINE_PAGE_OFFLINE_SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+static guint offline_page_offline_search_view_filter_real_get_criteria (SearchViewFilter* base);
+GType search_filter_criteria_get_type (void) G_GNUC_CONST;
+DefaultSearchViewFilter* default_search_view_filter_construct (GType object_type);
+static void offline_page_finalize (GObject* obj);
+
+
+static void _offline_page_on_offline_contents_altered_media_source_collection_offline_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 45 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ offline_page_on_offline_contents_altered ((OfflinePage*) self, added, removed);
+#line 874 "OfflinePage.c"
+}
+
+
+OfflinePage* offline_page_construct (GType object_type) {
+ OfflinePage * self = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ MediaViewTracker* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ VideoSourceCollection* _tmp4_ = NULL;
+ LibraryPhotoSourceCollection* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ VideoSourceCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = (OfflinePage*) checkerboard_page_construct (object_type, OFFLINE_PAGE_NAME);
+#line 31 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ checkerboard_page_init_item_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/OfflineContextMenu");
+#line 32 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ page_init_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "/OfflineToolbar");
+#line 34 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 34 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = _tmp0_;
+#line 34 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_ = media_view_tracker_new (_tmp1_);
+#line 34 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 34 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self->priv->tracker = _tmp2_;
+#line 34 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 37 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp3_ = library_photo_global;
+#line 37 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "offline-contents-altered", (GCallback) _offline_page_on_offline_contents_altered_media_source_collection_offline_contents_altered, self, 0);
+#line 38 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp4_ = video_global;
+#line 38 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "offline-contents-altered", (GCallback) _offline_page_on_offline_contents_altered_media_source_collection_offline_contents_altered, self, 0);
+#line 40 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp5_ = library_photo_global;
+#line 40 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp6_ = media_source_collection_get_offline_bin_contents (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 40 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp7_ = _tmp6_;
+#line 40 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ offline_page_on_offline_contents_altered (self, _tmp7_, NULL);
+#line 40 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 41 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp8_ = video_global;
+#line 41 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp9_ = media_source_collection_get_offline_bin_contents (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 41 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp10_ = _tmp9_;
+#line 41 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ offline_page_on_offline_contents_altered (self, _tmp10_, NULL);
+#line 41 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 28 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return self;
+#line 939 "OfflinePage.c"
+}
+
+
+OfflinePage* offline_page_new (void) {
+#line 28 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return offline_page_construct (TYPE_OFFLINE_PAGE);
+#line 946 "OfflinePage.c"
+}
+
+
+static void offline_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ OfflinePage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_OFFLINE_PAGE, OfflinePage);
+#line 49 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 50 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = ui_filenames;
+#line 50 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ PAGE_CLASS (offline_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp0_);
+#line 52 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = ui_filenames;
+#line 52 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "offline.ui");
+#line 966 "OfflinePage.c"
+}
+
+
+static void _offline_page_on_remove_from_library_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ offline_page_on_remove_from_library ((OfflinePage*) self);
+#line 973 "OfflinePage.c"
+}
+
+
+static void _vala_array_add88 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if ((*length) == (*size)) {
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 984 "OfflinePage.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ (*array)[(*length)++] = *value;
+#line 988 "OfflinePage.c"
+}
+
+
+static GtkActionEntry* offline_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ OfflinePage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry remove = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 55 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_OFFLINE_PAGE, OfflinePage);
+#line 56 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = PAGE_CLASS (offline_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 56 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ actions = _tmp1_;
+#line 56 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ actions_length1 = _tmp0_;
+#line 56 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _actions_size_ = actions_length1;
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_.name = "RemoveFromLibrary";
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_.stock_id = RESOURCES_REMOVE_LABEL;
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_.accelerator = "Delete";
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_.callback = (GCallback) _offline_page_on_remove_from_library_gtk_action_callback;
+#line 58 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ remove = _tmp2_;
+#line 60 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ remove.label = RESOURCES_REMOVE_FROM_LIBRARY_MENU;
+#line 61 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ remove.tooltip = RESOURCES_DELETE_FROM_LIBRARY_TOOLTIP;
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp3_ = actions;
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp3__length1 = actions_length1;
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp4_ = remove;
+#line 62 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _vala_array_add88 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 64 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp5_ = actions;
+#line 64 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp5__length1 = actions_length1;
+#line 64 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (result_length1) {
+#line 64 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ *result_length1 = _tmp5__length1;
+#line 1051 "OfflinePage.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ result = _tmp5_;
+#line 64 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return result;
+#line 1057 "OfflinePage.c"
+}
+
+
+static gpointer _core_tracker_ref0 (gpointer self) {
+#line 68 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return self ? core_tracker_ref (self) : NULL;
+#line 1064 "OfflinePage.c"
+}
+
+
+static CoreViewTracker* offline_page_real_get_view_tracker (CheckerboardPage* base) {
+ OfflinePage * self;
+ CoreViewTracker* result = NULL;
+ MediaViewTracker* _tmp0_ = NULL;
+ CoreViewTracker* _tmp1_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_OFFLINE_PAGE, OfflinePage);
+#line 68 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = self->priv->tracker;
+#line 68 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = _core_tracker_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, CORE_TYPE_VIEW_TRACKER, CoreViewTracker));
+#line 68 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ result = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return result;
+#line 1083 "OfflinePage.c"
+}
+
+
+static void offline_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ OfflinePage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 71 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_OFFLINE_PAGE, OfflinePage);
+#line 72 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = selected_count;
+#line 72 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RemoveFromLibrary", _tmp0_ > 0);
+#line 73 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RemoveFromLibrary", TRUE);
+#line 75 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = selected_count;
+#line 75 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_ = count;
+#line 75 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ PAGE_CLASS (offline_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp1_, _tmp2_);
+#line 1106 "OfflinePage.c"
+}
+
+
+static void offline_page_on_offline_contents_altered (OfflinePage* self, GeeCollection* added, GeeCollection* removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+#line 78 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_return_if_fail (IS_OFFLINE_PAGE (self));
+#line 78 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 78 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 80 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = added;
+#line 80 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (_tmp0_ != NULL) {
+#line 1123 "OfflinePage.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = added;
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _source_it = _tmp2_;
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ while (TRUE) {
+#line 1136 "OfflinePage.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+ OfflinePageOfflineView* _tmp10_ = NULL;
+ OfflinePageOfflineView* _tmp11_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp3_ = _source_it;
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (!_tmp4_) {
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ break;
+#line 1155 "OfflinePage.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp5_ = _source_it;
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ source = (MediaSource*) _tmp6_;
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp8_ = _tmp7_;
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp9_ = source;
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp10_ = offline_page_offline_view_new (_tmp9_);
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp11_ = _tmp10_;
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_OBJECT, DataObject));
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 82 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (source);
+#line 1181 "OfflinePage.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_source_it);
+#line 1185 "OfflinePage.c"
+ }
+ }
+#line 85 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp12_ = removed;
+#line 85 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (_tmp12_ != NULL) {
+#line 1192 "OfflinePage.c"
+ Marker* marker = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ Marker* _tmp15_ = NULL;
+ Marker* _tmp16_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ ViewCollection* _tmp30_ = NULL;
+ Marker* _tmp31_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 86 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp14_ = _tmp13_;
+#line 86 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp15_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection));
+#line 86 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp16_ = _tmp15_;
+#line 86 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 86 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ marker = _tmp16_;
+#line 1213 "OfflinePage.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeIterator* _tmp18_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp17_ = removed;
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp18_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _source_it = _tmp18_;
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ while (TRUE) {
+#line 1226 "OfflinePage.c"
+ GeeIterator* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp21_ = NULL;
+ gpointer _tmp22_ = NULL;
+ Marker* _tmp23_ = NULL;
+ ViewCollection* _tmp24_ = NULL;
+ ViewCollection* _tmp25_ = NULL;
+ MediaSource* _tmp26_ = NULL;
+ DataView* _tmp27_ = NULL;
+ DataView* _tmp28_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp19_ = _source_it;
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp20_ = gee_iterator_next (_tmp19_);
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (!_tmp20_) {
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ break;
+#line 1246 "OfflinePage.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp21_ = _source_it;
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp22_ = gee_iterator_get (_tmp21_);
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ source = (MediaSource*) _tmp22_;
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp23_ = marker;
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp24_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp25_ = _tmp24_;
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp26_ = source;
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp27_ = view_collection_get_view_for_source (_tmp25_, G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_SOURCE, DataSource));
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp28_ = _tmp27_;
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ marker_mark (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_DATA_OBJECT, DataObject));
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 88 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _data_collection_unref0 (_tmp25_);
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (source);
+#line 1274 "OfflinePage.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_source_it);
+#line 1278 "OfflinePage.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp29_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 89 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp30_ = _tmp29_;
+#line 89 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp31_ = marker;
+#line 89 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_DATA_COLLECTION, DataCollection), _tmp31_);
+#line 89 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _data_collection_unref0 (_tmp30_);
+#line 85 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (marker);
+#line 1292 "OfflinePage.c"
+ }
+}
+
+
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop);
+#line 113 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return result;
+#line 1302 "OfflinePage.c"
+}
+
+
+static void offline_page_on_remove_from_library (OfflinePage* self) {
+ GeeCollection* sources = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ AppWindow* _tmp7_ = NULL;
+ AppWindow* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ AppWindow* _tmp14_ = NULL;
+ AppWindow* _tmp15_ = NULL;
+ ProgressDialog* progress = NULL;
+ GeeCollection* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+ GeeArrayList* videos = NULL;
+ GeeArrayList* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+ GeeArrayList* _tmp26_ = NULL;
+ GeeArrayList* _tmp27_ = NULL;
+ ProgressDialog* _tmp28_ = NULL;
+ ProgressDialog* _tmp39_ = NULL;
+ AppWindow* _tmp41_ = NULL;
+ AppWindow* _tmp42_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_return_if_fail (IS_OFFLINE_PAGE (self));
+#line 94 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 94 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = _tmp0_;
+#line 94 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_ = view_collection_get_selected_sources (_tmp1_);
+#line 94 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 94 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 94 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ sources = _tmp3_;
+#line 96 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp4_ = sources;
+#line 96 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp5_ = gee_collection_get_size (_tmp4_);
+#line 96 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp6_ = _tmp5_;
+#line 96 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (_tmp6_ == 0) {
+#line 97 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (sources);
+#line 97 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return;
+#line 1365 "OfflinePage.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp8_ = _tmp7_;
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp9_ = sources;
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp10_ = gee_collection_get_size (_tmp9_);
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp11_ = _tmp10_;
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp12_ = remove_offline_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_window_get_type (), GtkWindow), _tmp11_);
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp13_ = !_tmp12_;
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 99 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (_tmp13_) {
+#line 100 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (sources);
+#line 100 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return;
+#line 1389 "OfflinePage.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp14_ = app_window_get_instance ();
+#line 102 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp15_ = _tmp14_;
+#line 102 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ page_window_set_busy_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_PAGE_WINDOW, PageWindow));
+#line 102 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 104 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ progress = NULL;
+#line 105 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp16_ = sources;
+#line 105 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp17_ = gee_collection_get_size (_tmp16_);
+#line 105 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp18_ = _tmp17_;
+#line 105 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (_tmp18_ >= 20) {
+#line 1409 "OfflinePage.c"
+ AppWindow* _tmp19_ = NULL;
+ AppWindow* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ ProgressDialog* _tmp22_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp19_ = app_window_get_instance ();
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp20_ = _tmp19_;
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp21_ = _ ("Deleting...");
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp22_ = progress_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_window_get_type (), GtkWindow), _tmp21_, NULL);
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_object_ref_sink (_tmp22_);
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (progress);
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ progress = _tmp22_;
+#line 106 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp20_);
+#line 1430 "OfflinePage.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp23_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 108 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ photos = _tmp23_;
+#line 109 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp24_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 109 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ videos = _tmp24_;
+#line 110 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp25_ = sources;
+#line 110 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp26_ = photos;
+#line 110 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp27_ = videos;
+#line 110 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ media_source_collection_filter_media (_tmp25_, G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 112 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp28_ = progress;
+#line 112 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (_tmp28_ != NULL) {
+#line 1452 "OfflinePage.c"
+ LibraryPhotoSourceCollection* _tmp29_ = NULL;
+ GeeArrayList* _tmp30_ = NULL;
+ ProgressDialog* _tmp31_ = NULL;
+ VideoSourceCollection* _tmp32_ = NULL;
+ GeeArrayList* _tmp33_ = NULL;
+ ProgressDialog* _tmp34_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp29_ = library_photo_global;
+#line 113 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp30_ = photos;
+#line 113 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp31_ = progress;
+#line 113 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ media_source_collection_remove_from_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection), FALSE, _progress_dialog_monitor_progress_monitor, _tmp31_, NULL);
+#line 114 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp32_ = video_global;
+#line 114 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp33_ = videos;
+#line 114 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp34_ = progress;
+#line 114 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ media_source_collection_remove_from_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection), FALSE, _progress_dialog_monitor_progress_monitor, _tmp34_, NULL);
+#line 1475 "OfflinePage.c"
+ } else {
+ LibraryPhotoSourceCollection* _tmp35_ = NULL;
+ GeeArrayList* _tmp36_ = NULL;
+ VideoSourceCollection* _tmp37_ = NULL;
+ GeeArrayList* _tmp38_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp35_ = library_photo_global;
+#line 116 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp36_ = photos;
+#line 116 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ media_source_collection_remove_from_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection), FALSE, NULL, NULL, NULL);
+#line 117 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp37_ = video_global;
+#line 117 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp38_ = videos;
+#line 117 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ media_source_collection_remove_from_app (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, GEE_TYPE_COLLECTION, GeeCollection), FALSE, NULL, NULL, NULL);
+#line 1493 "OfflinePage.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp39_ = progress;
+#line 120 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ if (_tmp39_ != NULL) {
+#line 1499 "OfflinePage.c"
+ ProgressDialog* _tmp40_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp40_ = progress;
+#line 121 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ progress_dialog_close (_tmp40_);
+#line 1505 "OfflinePage.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp41_ = app_window_get_instance ();
+#line 123 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp42_ = _tmp41_;
+#line 123 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ page_window_set_normal_cursor (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, TYPE_PAGE_WINDOW, PageWindow));
+#line 123 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (_tmp42_);
+#line 93 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (videos);
+#line 93 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (photos);
+#line 93 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (progress);
+#line 93 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _g_object_unref0 (sources);
+#line 1523 "OfflinePage.c"
+}
+
+
+static gpointer _view_filter_ref0 (gpointer self) {
+#line 127 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return self ? view_filter_ref (self) : NULL;
+#line 1530 "OfflinePage.c"
+}
+
+
+static SearchViewFilter* offline_page_real_get_search_view_filter (CheckerboardPage* base) {
+ OfflinePage * self;
+ SearchViewFilter* result = NULL;
+ OfflinePageOfflineSearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_OFFLINE_PAGE, OfflinePage);
+#line 127 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 127 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = _view_filter_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 127 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ result = _tmp1_;
+#line 127 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return result;
+#line 1549 "OfflinePage.c"
+}
+
+
+static OfflinePageOfflineView* offline_page_offline_view_construct (GType object_type, MediaSource* source) {
+ OfflinePageOfflineView * self = NULL;
+ MediaSource* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ MediaSource* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 11 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 12 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = source;
+#line 12 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp1_ = thumbnail_get_DEFAULT_SCALE ();
+#line 12 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_ = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = (OfflinePageOfflineView*) thumbnail_construct (object_type, _tmp0_, _tmp2_);
+#line 14 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp3_ = source;
+#line 14 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp4_ = media_source_is_offline (_tmp3_);
+#line 14 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _vala_assert (_tmp4_, "source.is_offline()");
+#line 11 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return self;
+#line 1578 "OfflinePage.c"
+}
+
+
+static OfflinePageOfflineView* offline_page_offline_view_new (MediaSource* source) {
+#line 11 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return offline_page_offline_view_construct (OFFLINE_PAGE_TYPE_OFFLINE_VIEW, source);
+#line 1585 "OfflinePage.c"
+}
+
+
+static void offline_page_offline_view_class_init (OfflinePageOfflineViewClass * klass) {
+#line 10 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ offline_page_offline_view_parent_class = g_type_class_peek_parent (klass);
+#line 1592 "OfflinePage.c"
+}
+
+
+static void offline_page_offline_view_instance_init (OfflinePageOfflineView * self) {
+}
+
+
+static GType offline_page_offline_view_get_type (void) {
+ static volatile gsize offline_page_offline_view_type_id__volatile = 0;
+ if (g_once_init_enter (&offline_page_offline_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (OfflinePageOfflineViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) offline_page_offline_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (OfflinePageOfflineView), 0, (GInstanceInitFunc) offline_page_offline_view_instance_init, NULL };
+ GType offline_page_offline_view_type_id;
+ offline_page_offline_view_type_id = g_type_register_static (TYPE_THUMBNAIL, "OfflinePageOfflineView", &g_define_type_info, 0);
+ g_once_init_leave (&offline_page_offline_view_type_id__volatile, offline_page_offline_view_type_id);
+ }
+ return offline_page_offline_view_type_id__volatile;
+}
+
+
+static guint offline_page_offline_search_view_filter_real_get_criteria (SearchViewFilter* base) {
+ OfflinePageOfflineSearchViewFilter * self;
+ guint result = 0U;
+#line 19 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER, OfflinePageOfflineSearchViewFilter);
+#line 20 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ result = (guint) ((((SEARCH_FILTER_CRITERIA_TEXT | SEARCH_FILTER_CRITERIA_FLAG) | SEARCH_FILTER_CRITERIA_MEDIA) | SEARCH_FILTER_CRITERIA_RATING) | SEARCH_FILTER_CRITERIA_SAVEDSEARCH);
+#line 20 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return result;
+#line 1621 "OfflinePage.c"
+}
+
+
+static OfflinePageOfflineSearchViewFilter* offline_page_offline_search_view_filter_construct (GType object_type) {
+ OfflinePageOfflineSearchViewFilter* self = NULL;
+#line 18 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = (OfflinePageOfflineSearchViewFilter*) default_search_view_filter_construct (object_type);
+#line 18 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return self;
+#line 1631 "OfflinePage.c"
+}
+
+
+static OfflinePageOfflineSearchViewFilter* offline_page_offline_search_view_filter_new (void) {
+#line 18 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ return offline_page_offline_search_view_filter_construct (OFFLINE_PAGE_TYPE_OFFLINE_SEARCH_VIEW_FILTER);
+#line 1638 "OfflinePage.c"
+}
+
+
+static void offline_page_offline_search_view_filter_class_init (OfflinePageOfflineSearchViewFilterClass * klass) {
+#line 18 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ offline_page_offline_search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 18 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = offline_page_offline_search_view_filter_real_get_criteria;
+#line 1647 "OfflinePage.c"
+}
+
+
+static void offline_page_offline_search_view_filter_instance_init (OfflinePageOfflineSearchViewFilter * self) {
+}
+
+
+static GType offline_page_offline_search_view_filter_get_type (void) {
+ static volatile gsize offline_page_offline_search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&offline_page_offline_search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (OfflinePageOfflineSearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) offline_page_offline_search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (OfflinePageOfflineSearchViewFilter), 0, (GInstanceInitFunc) offline_page_offline_search_view_filter_instance_init, NULL };
+ GType offline_page_offline_search_view_filter_type_id;
+ offline_page_offline_search_view_filter_type_id = g_type_register_static (TYPE_DEFAULT_SEARCH_VIEW_FILTER, "OfflinePageOfflineSearchViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&offline_page_offline_search_view_filter_type_id__volatile, offline_page_offline_search_view_filter_type_id);
+ }
+ return offline_page_offline_search_view_filter_type_id__volatile;
+}
+
+
+static void offline_page_class_init (OfflinePageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ offline_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_type_class_add_private (klass, sizeof (OfflinePagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = offline_page_real_init_collect_ui_filenames;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = offline_page_real_init_collect_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ ((CheckerboardPageClass *) klass)->get_view_tracker = offline_page_real_get_view_tracker;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ ((PageClass *) klass)->update_actions = offline_page_real_update_actions;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ ((CheckerboardPageClass *) klass)->get_search_view_filter = offline_page_real_get_search_view_filter;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ G_OBJECT_CLASS (klass)->finalize = offline_page_finalize;
+#line 1684 "OfflinePage.c"
+}
+
+
+static void offline_page_instance_init (OfflinePage * self) {
+ OfflinePageOfflineSearchViewFilter* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self->priv = OFFLINE_PAGE_GET_PRIVATE (self);
+#line 25 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = offline_page_offline_search_view_filter_new ();
+#line 25 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self->priv->search_filter = _tmp0_;
+#line 1696 "OfflinePage.c"
+}
+
+
+static void offline_page_finalize (GObject* obj) {
+ OfflinePage * self;
+ LibraryPhotoSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ VideoSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_OFFLINE_PAGE, OfflinePage);
+#line 45 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp0_ = library_photo_global;
+#line 45 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_signal_parse_name ("offline-contents-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 45 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _offline_page_on_offline_contents_altered_media_source_collection_offline_contents_altered, self);
+#line 46 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _tmp2_ = video_global;
+#line 46 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_signal_parse_name ("offline-contents-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 46 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _offline_page_on_offline_contents_altered_media_source_collection_offline_contents_altered, self);
+#line 25 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 26 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 7 "/home/jens/Source/shotwell/src/library/OfflinePage.vala"
+ G_OBJECT_CLASS (offline_page_parent_class)->finalize (obj);
+#line 1726 "OfflinePage.c"
+}
+
+
+GType offline_page_get_type (void) {
+ static volatile gsize offline_page_type_id__volatile = 0;
+ if (g_once_init_enter (&offline_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (OfflinePageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) offline_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (OfflinePage), 0, (GInstanceInitFunc) offline_page_instance_init, NULL };
+ GType offline_page_type_id;
+ offline_page_type_id = g_type_register_static (TYPE_CHECKERBOARD_PAGE, "OfflinePage", &g_define_type_info, 0);
+ g_once_init_leave (&offline_page_type_id__volatile, offline_page_type_id);
+ }
+ return offline_page_type_id__volatile;
+}
+
+
+
diff --git a/src/library/OfflinePage.vala b/src/library/OfflinePage.vala
index f8ba7c1..771a1fd 100644
--- a/src/library/OfflinePage.vala
+++ b/src/library/OfflinePage.vala
@@ -18,7 +18,7 @@ public class OfflinePage : CheckerboardPage {
private class OfflineSearchViewFilter : DefaultSearchViewFilter {
public override uint get_criteria() {
return SearchFilterCriteria.TEXT | SearchFilterCriteria.FLAG |
- SearchFilterCriteria.MEDIA | SearchFilterCriteria.RATING;
+ SearchFilterCriteria.MEDIA | SearchFilterCriteria.RATING | SearchFilterCriteria.SAVEDSEARCH;
}
}
diff --git a/src/library/OfflineSidebarEntry.c b/src/library/OfflineSidebarEntry.c
new file mode 100644
index 0000000..a2025d1
--- /dev/null
+++ b/src/library/OfflineSidebarEntry.c
@@ -0,0 +1,700 @@
+/* OfflineSidebarEntry.c generated by valac 0.32.1, the Vala compiler
+ * generated from OfflineSidebarEntry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY (library_hideable_page_entry_get_type ())
+#define LIBRARY_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_IS_HIDEABLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY))
+#define LIBRARY_HIDEABLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntryClass))
+
+typedef struct _LibraryHideablePageEntry LibraryHideablePageEntry;
+typedef struct _LibraryHideablePageEntryClass LibraryHideablePageEntryClass;
+typedef struct _LibraryHideablePageEntryPrivate LibraryHideablePageEntryPrivate;
+
+#define LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY (library_offline_sidebar_entry_get_type ())
+#define LIBRARY_OFFLINE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntry))
+#define LIBRARY_OFFLINE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntryClass))
+#define LIBRARY_IS_OFFLINE_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY))
+#define LIBRARY_IS_OFFLINE_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY))
+#define LIBRARY_OFFLINE_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntryClass))
+
+typedef struct _LibraryOfflineSidebarEntry LibraryOfflineSidebarEntry;
+typedef struct _LibraryOfflineSidebarEntryClass LibraryOfflineSidebarEntryClass;
+typedef struct _LibraryOfflineSidebarEntryPrivate LibraryOfflineSidebarEntryPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_OFFLINE_PAGE (offline_page_get_type ())
+#define OFFLINE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OFFLINE_PAGE, OfflinePage))
+#define OFFLINE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OFFLINE_PAGE, OfflinePageClass))
+#define IS_OFFLINE_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OFFLINE_PAGE))
+#define IS_OFFLINE_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OFFLINE_PAGE))
+#define OFFLINE_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OFFLINE_PAGE, OfflinePageClass))
+
+typedef struct _OfflinePage OfflinePage;
+typedef struct _OfflinePageClass OfflinePageClass;
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _LibraryHideablePageEntry {
+ SidebarSimplePageEntry parent_instance;
+ LibraryHideablePageEntryPrivate * priv;
+};
+
+struct _LibraryHideablePageEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _LibraryOfflineSidebarEntry {
+ LibraryHideablePageEntry parent_instance;
+ LibraryOfflineSidebarEntryPrivate * priv;
+};
+
+struct _LibraryOfflineSidebarEntryClass {
+ LibraryHideablePageEntryClass parent_class;
+};
+
+
+static gpointer library_offline_sidebar_entry_parent_class = NULL;
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType library_hideable_page_entry_get_type (void) G_GNUC_CONST;
+GType library_offline_sidebar_entry_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_OFFLINE_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+static void library_offline_sidebar_entry_on_offline_contents_altered (LibraryOfflineSidebarEntry* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+static void _library_offline_sidebar_entry_on_offline_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+LibraryOfflineSidebarEntry* library_offline_sidebar_entry_new (void);
+LibraryOfflineSidebarEntry* library_offline_sidebar_entry_construct (GType object_type);
+LibraryHideablePageEntry* library_hideable_page_entry_construct (GType object_type);
+static void _library_offline_sidebar_entry_on_offline_contents_altered_media_source_collection_offline_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+static gint library_offline_sidebar_entry_get_total_offline (LibraryOfflineSidebarEntry* self);
+void library_hideable_page_entry_set_visible (LibraryHideablePageEntry* self, gboolean value);
+GeeCollection* media_source_collection_get_offline_bin_contents (MediaSourceCollection* self);
+static gchar* library_offline_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define OFFLINE_PAGE_NAME _ ("Missing Files")
+static gchar* library_offline_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+#define RESOURCES_ICON_MISSING_FILES "process-stop"
+static Page* library_offline_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+OfflinePage* offline_page_new (void);
+OfflinePage* offline_page_construct (GType object_type);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType offline_page_get_type (void) G_GNUC_CONST;
+static void library_offline_sidebar_entry_finalize (GObject* obj);
+
+
+static void _library_offline_sidebar_entry_on_offline_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 18 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ library_offline_sidebar_entry_on_offline_contents_altered ((LibraryOfflineSidebarEntry*) self);
+#line 338 "OfflineSidebarEntry.c"
+}
+
+
+static void _library_offline_sidebar_entry_on_offline_contents_altered_media_source_collection_offline_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 11 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ library_offline_sidebar_entry_on_offline_contents_altered ((LibraryOfflineSidebarEntry*) self);
+#line 345 "OfflineSidebarEntry.c"
+}
+
+
+LibraryOfflineSidebarEntry* library_offline_sidebar_entry_construct (GType object_type) {
+ LibraryOfflineSidebarEntry * self = NULL;
+ gint _tmp11_ = 0;
+#line 8 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ self = (LibraryOfflineSidebarEntry*) library_hideable_page_entry_construct (object_type);
+#line 354 "OfflineSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ while (TRUE) {
+#line 383 "OfflineSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ break;
+#line 398 "OfflineSidebarEntry.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 11 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 11 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ g_signal_connect_object (_tmp10_, "offline-contents-altered", (GCallback) _library_offline_sidebar_entry_on_offline_contents_altered_media_source_collection_offline_contents_altered, self, 0);
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 412 "OfflineSidebarEntry.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 416 "OfflineSidebarEntry.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp11_ = library_offline_sidebar_entry_get_total_offline (self);
+#line 13 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), _tmp11_ != 0);
+#line 8 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ return self;
+#line 424 "OfflineSidebarEntry.c"
+}
+
+
+LibraryOfflineSidebarEntry* library_offline_sidebar_entry_new (void) {
+#line 8 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ return library_offline_sidebar_entry_construct (LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY);
+#line 431 "OfflineSidebarEntry.c"
+}
+
+
+static void library_offline_sidebar_entry_on_offline_contents_altered (LibraryOfflineSidebarEntry* self) {
+ gint _tmp0_ = 0;
+#line 21 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_OFFLINE_SIDEBAR_ENTRY (self));
+#line 22 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp0_ = library_offline_sidebar_entry_get_total_offline (self);
+#line 22 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ library_hideable_page_entry_set_visible (G_TYPE_CHECK_INSTANCE_CAST (self, LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, LibraryHideablePageEntry), _tmp0_ != 0);
+#line 443 "OfflineSidebarEntry.c"
+}
+
+
+static gint library_offline_sidebar_entry_get_total_offline (LibraryOfflineSidebarEntry* self) {
+ gint result = 0;
+ gint total = 0;
+#line 25 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ g_return_val_if_fail (LIBRARY_IS_OFFLINE_SIDEBAR_ENTRY (self), 0);
+#line 26 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ total = 0;
+#line 454 "OfflineSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ while (TRUE) {
+#line 483 "OfflineSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ MediaSourceCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ break;
+#line 503 "OfflineSidebarEntry.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp10_ = total;
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp11_ = media_sources;
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp12_ = media_source_collection_get_offline_bin_contents (_tmp11_);
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp13_ = _tmp12_;
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp14_ = gee_collection_get_size (_tmp13_);
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp15_ = _tmp14_;
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ total = _tmp10_ + _tmp15_;
+#line 28 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _g_object_unref0 (_tmp13_);
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 529 "OfflineSidebarEntry.c"
+ }
+#line 27 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 533 "OfflineSidebarEntry.c"
+ }
+#line 30 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ result = total;
+#line 30 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ return result;
+#line 539 "OfflineSidebarEntry.c"
+}
+
+
+static gchar* library_offline_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ LibraryOfflineSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntry);
+#line 34 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp0_ = g_strdup (OFFLINE_PAGE_NAME);
+#line 34 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ result = _tmp0_;
+#line 34 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ return result;
+#line 555 "OfflineSidebarEntry.c"
+}
+
+
+static gchar* library_offline_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ LibraryOfflineSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntry);
+#line 38 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_MISSING_FILES);
+#line 38 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ result = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ return result;
+#line 571 "OfflineSidebarEntry.c"
+}
+
+
+static Page* library_offline_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ LibraryOfflineSidebarEntry * self;
+ Page* result = NULL;
+ OfflinePage* _tmp0_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntry);
+#line 42 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp0_ = offline_page_new ();
+#line 42 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ g_object_ref_sink (_tmp0_);
+#line 42 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 42 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ return result;
+#line 589 "OfflineSidebarEntry.c"
+}
+
+
+static void library_offline_sidebar_entry_class_init (LibraryOfflineSidebarEntryClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ library_offline_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = library_offline_sidebar_entry_real_get_sidebar_name;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = library_offline_sidebar_entry_real_get_sidebar_icon;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = library_offline_sidebar_entry_real_create_page;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_offline_sidebar_entry_finalize;
+#line 604 "OfflineSidebarEntry.c"
+}
+
+
+static void library_offline_sidebar_entry_instance_init (LibraryOfflineSidebarEntry * self) {
+}
+
+
+static void library_offline_sidebar_entry_finalize (GObject* obj) {
+ LibraryOfflineSidebarEntry * self;
+#line 7 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_TYPE_OFFLINE_SIDEBAR_ENTRY, LibraryOfflineSidebarEntry);
+#line 616 "OfflineSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ while (TRUE) {
+#line 645 "OfflineSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ break;
+#line 661 "OfflineSidebarEntry.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 18 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 18 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ g_signal_parse_name ("trashcan-contents-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 18 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _library_offline_sidebar_entry_on_offline_contents_altered_media_source_collection_trashcan_contents_altered, self);
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 677 "OfflineSidebarEntry.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 681 "OfflineSidebarEntry.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/library/OfflineSidebarEntry.vala"
+ G_OBJECT_CLASS (library_offline_sidebar_entry_parent_class)->finalize (obj);
+#line 685 "OfflineSidebarEntry.c"
+}
+
+
+GType library_offline_sidebar_entry_get_type (void) {
+ static volatile gsize library_offline_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&library_offline_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryOfflineSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_offline_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryOfflineSidebarEntry), 0, (GInstanceInitFunc) library_offline_sidebar_entry_instance_init, NULL };
+ GType library_offline_sidebar_entry_type_id;
+ library_offline_sidebar_entry_type_id = g_type_register_static (LIBRARY_TYPE_HIDEABLE_PAGE_ENTRY, "LibraryOfflineSidebarEntry", &g_define_type_info, 0);
+ g_once_init_leave (&library_offline_sidebar_entry_type_id__volatile, library_offline_sidebar_entry_type_id);
+ }
+ return library_offline_sidebar_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/library/TrashPage.c b/src/library/TrashPage.c
new file mode 100644
index 0000000..000b8b5
--- /dev/null
+++ b/src/library/TrashPage.c
@@ -0,0 +1,1706 @@
+/* TrashPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from TrashPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_TRASH_PAGE (trash_page_get_type ())
+#define TRASH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRASH_PAGE, TrashPage))
+#define TRASH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRASH_PAGE, TrashPageClass))
+#define IS_TRASH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRASH_PAGE))
+#define IS_TRASH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRASH_PAGE))
+#define TRASH_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRASH_PAGE, TrashPageClass))
+
+typedef struct _TrashPage TrashPage;
+typedef struct _TrashPageClass TrashPageClass;
+typedef struct _TrashPagePrivate TrashPagePrivate;
+
+#define TYPE_DEFAULT_SEARCH_VIEW_FILTER (default_search_view_filter_get_type ())
+#define DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilter))
+#define DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define IS_DEFAULT_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEFAULT_SEARCH_VIEW_FILTER))
+#define DEFAULT_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEFAULT_SEARCH_VIEW_FILTER, DefaultSearchViewFilterClass))
+
+typedef struct _DefaultSearchViewFilter DefaultSearchViewFilter;
+typedef struct _DefaultSearchViewFilterClass DefaultSearchViewFilterClass;
+
+#define TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER (trash_page_trash_search_view_filter_get_type ())
+#define TRASH_PAGE_TRASH_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER, TrashPageTrashSearchViewFilter))
+#define TRASH_PAGE_TRASH_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER, TrashPageTrashSearchViewFilterClass))
+#define TRASH_PAGE_IS_TRASH_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER))
+#define TRASH_PAGE_IS_TRASH_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER))
+#define TRASH_PAGE_TRASH_SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER, TrashPageTrashSearchViewFilterClass))
+
+typedef struct _TrashPageTrashSearchViewFilter TrashPageTrashSearchViewFilter;
+typedef struct _TrashPageTrashSearchViewFilterClass TrashPageTrashSearchViewFilterClass;
+
+#define TYPE_MEDIA_VIEW_TRACKER (media_view_tracker_get_type ())
+#define MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTracker))
+#define MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+#define IS_MEDIA_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_VIEW_TRACKER))
+#define IS_MEDIA_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_VIEW_TRACKER))
+#define MEDIA_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_VIEW_TRACKER, MediaViewTrackerClass))
+
+typedef struct _MediaViewTracker MediaViewTracker;
+typedef struct _MediaViewTrackerClass MediaViewTrackerClass;
+#define _view_filter_unref0(var) ((var == NULL) ? NULL : (var = (view_filter_unref (var), NULL)))
+#define _core_tracker_unref0(var) ((var == NULL) ? NULL : (var = (core_tracker_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_MEDIA_SOURCE_ITEM (media_source_item_get_type ())
+#define MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItem))
+#define MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+#define IS_MEDIA_SOURCE_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_ITEM))
+#define IS_MEDIA_SOURCE_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_ITEM))
+#define MEDIA_SOURCE_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_ITEM, MediaSourceItemClass))
+
+typedef struct _MediaSourceItem MediaSourceItem;
+typedef struct _MediaSourceItemClass MediaSourceItemClass;
+
+#define TYPE_THUMBNAIL (thumbnail_get_type ())
+#define THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL, Thumbnail))
+#define THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL, ThumbnailClass))
+#define IS_THUMBNAIL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL))
+#define IS_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL))
+#define THUMBNAIL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL, ThumbnailClass))
+
+typedef struct _Thumbnail Thumbnail;
+typedef struct _ThumbnailClass ThumbnailClass;
+
+#define TRASH_PAGE_TYPE_TRASH_VIEW (trash_page_trash_view_get_type ())
+#define TRASH_PAGE_TRASH_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRASH_PAGE_TYPE_TRASH_VIEW, TrashPageTrashView))
+#define TRASH_PAGE_TRASH_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRASH_PAGE_TYPE_TRASH_VIEW, TrashPageTrashViewClass))
+#define TRASH_PAGE_IS_TRASH_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRASH_PAGE_TYPE_TRASH_VIEW))
+#define TRASH_PAGE_IS_TRASH_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRASH_PAGE_TYPE_TRASH_VIEW))
+#define TRASH_PAGE_TRASH_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRASH_PAGE_TYPE_TRASH_VIEW, TrashPageTrashViewClass))
+
+typedef struct _TrashPageTrashView TrashPageTrashView;
+typedef struct _TrashPageTrashViewClass TrashPageTrashViewClass;
+
+#define TYPE_MARKER (marker_get_type ())
+#define MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MARKER, Marker))
+#define IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MARKER))
+#define MARKER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MARKER, MarkerIface))
+
+typedef struct _Marker Marker;
+typedef struct _MarkerIface MarkerIface;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_TRASH_UNTRASH_PHOTOS_COMMAND (trash_untrash_photos_command_get_type ())
+#define TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+
+typedef struct _TrashUntrashPhotosCommand TrashUntrashPhotosCommand;
+typedef struct _TrashUntrashPhotosCommandClass TrashUntrashPhotosCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+typedef struct _DataViewPrivate DataViewPrivate;
+typedef struct _ThumbnailViewPrivate ThumbnailViewPrivate;
+typedef struct _CheckerboardItemPrivate CheckerboardItemPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _MediaSourceItemPrivate MediaSourceItemPrivate;
+typedef struct _ThumbnailPrivate ThumbnailPrivate;
+typedef struct _TrashPageTrashViewPrivate TrashPageTrashViewPrivate;
+typedef struct _ViewFilterPrivate ViewFilterPrivate;
+typedef struct _SearchViewFilterPrivate SearchViewFilterPrivate;
+typedef struct _DefaultSearchViewFilterPrivate DefaultSearchViewFilterPrivate;
+typedef struct _TrashPageTrashSearchViewFilterPrivate TrashPageTrashSearchViewFilterPrivate;
+
+#define TYPE_SEARCH_FILTER_CRITERIA (search_filter_criteria_get_type ())
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+struct _TrashPage {
+ CheckerboardPage parent_instance;
+ TrashPagePrivate * priv;
+};
+
+struct _TrashPageClass {
+ CheckerboardPageClass parent_class;
+};
+
+struct _TrashPagePrivate {
+ TrashPageTrashSearchViewFilter* search_filter;
+ MediaViewTracker* tracker;
+};
+
+struct _MarkerIface {
+ GTypeInterface parent_iface;
+ void (*mark) (Marker* self, DataObject* object);
+ void (*unmark) (Marker* self, DataObject* object);
+ gboolean (*toggle) (Marker* self, DataObject* object);
+ void (*mark_many) (Marker* self, GeeCollection* list);
+ void (*unmark_many) (Marker* self, GeeCollection* list);
+ void (*mark_all) (Marker* self);
+ gint (*get_count) (Marker* self);
+ GeeCollection* (*get_all) (Marker* self);
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataView {
+ DataObject parent_instance;
+ DataViewPrivate * priv;
+};
+
+struct _DataViewClass {
+ DataObjectClass parent_class;
+ void (*notify_view_altered) (DataView* self);
+ void (*notify_geometry_altered) (DataView* self);
+ void (*notify_unsubscribed) (DataView* self, DataSource* source);
+ void (*state_changed) (DataView* self, gboolean selected);
+ void (*visibility_changed) (DataView* self, gboolean visible);
+ void (*view_altered) (DataView* self);
+ void (*geometry_altered) (DataView* self);
+ void (*unsubscribed) (DataView* self, DataSource* source);
+};
+
+struct _ThumbnailView {
+ DataView parent_instance;
+ ThumbnailViewPrivate * priv;
+};
+
+struct _ThumbnailViewClass {
+ DataViewClass parent_class;
+ void (*notify_thumbnail_altered) (ThumbnailView* self);
+ void (*thumbnail_altered) (ThumbnailView* self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _CheckerboardItem {
+ ThumbnailView parent_instance;
+ CheckerboardItemPrivate * priv;
+ Dimensions requisition;
+ GdkRectangle allocation;
+};
+
+struct _CheckerboardItemClass {
+ ThumbnailViewClass parent_class;
+ void (*exposed) (CheckerboardItem* self);
+ void (*unexposed) (CheckerboardItem* self);
+ gboolean (*is_exposed) (CheckerboardItem* self);
+ void (*paint_shadow) (CheckerboardItem* self, cairo_t* ctx, Dimensions* dimensions, GdkPoint* origin, gint radius, gfloat initial_alpha);
+ void (*paint_border) (CheckerboardItem* self, cairo_t* ctx, Dimensions* object_dimensions, GdkPoint* object_origin, gint border_width);
+ void (*paint_image) (CheckerboardItem* self, cairo_t* ctx, GdkPixbuf* pixbuf, GdkPoint* origin);
+ GdkPixbuf* (*get_top_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_top_right_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_left_trinket) (CheckerboardItem* self, gint scale);
+ GdkPixbuf* (*get_bottom_right_trinket) (CheckerboardItem* self, gint scale);
+};
+
+struct _MediaSourceItem {
+ CheckerboardItem parent_instance;
+ MediaSourceItemPrivate * priv;
+};
+
+struct _MediaSourceItemClass {
+ CheckerboardItemClass parent_class;
+};
+
+struct _Thumbnail {
+ MediaSourceItem parent_instance;
+ ThumbnailPrivate * priv;
+};
+
+struct _ThumbnailClass {
+ MediaSourceItemClass parent_class;
+};
+
+struct _TrashPageTrashView {
+ Thumbnail parent_instance;
+ TrashPageTrashViewPrivate * priv;
+};
+
+struct _TrashPageTrashViewClass {
+ ThumbnailClass parent_class;
+};
+
+struct _ViewFilter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewFilterPrivate * priv;
+};
+
+struct _ViewFilterClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewFilter *self);
+ gboolean (*predicate) (ViewFilter* self, DataView* view);
+ void (*refresh) (ViewFilter* self);
+};
+
+struct _SearchViewFilter {
+ ViewFilter parent_instance;
+ SearchViewFilterPrivate * priv;
+};
+
+struct _SearchViewFilterClass {
+ ViewFilterClass parent_class;
+ guint (*get_criteria) (SearchViewFilter* self);
+};
+
+struct _DefaultSearchViewFilter {
+ SearchViewFilter parent_instance;
+ DefaultSearchViewFilterPrivate * priv;
+};
+
+struct _DefaultSearchViewFilterClass {
+ SearchViewFilterClass parent_class;
+};
+
+struct _TrashPageTrashSearchViewFilter {
+ DefaultSearchViewFilter parent_instance;
+ TrashPageTrashSearchViewFilterPrivate * priv;
+};
+
+struct _TrashPageTrashSearchViewFilterClass {
+ DefaultSearchViewFilterClass parent_class;
+};
+
+typedef enum {
+ SEARCH_FILTER_CRITERIA_NONE = 0,
+ SEARCH_FILTER_CRITERIA_RECURSIVE = 1 << 0,
+ SEARCH_FILTER_CRITERIA_TEXT = 1 << 1,
+ SEARCH_FILTER_CRITERIA_FLAG = 1 << 2,
+ SEARCH_FILTER_CRITERIA_MEDIA = 1 << 3,
+ SEARCH_FILTER_CRITERIA_RATING = 1 << 4,
+ SEARCH_FILTER_CRITERIA_SAVEDSEARCH = 1 << 5,
+ SEARCH_FILTER_CRITERIA_ALL = 0xFFFFFFFFLL
+} SearchFilterCriteria;
+
+
+static gpointer trash_page_parent_class = NULL;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+static gpointer trash_page_trash_view_parent_class = NULL;
+static gpointer trash_page_trash_search_view_filter_parent_class = NULL;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType trash_page_get_type (void) G_GNUC_CONST;
+GType default_search_view_filter_get_type (void) G_GNUC_CONST;
+static GType trash_page_trash_search_view_filter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType media_view_tracker_get_type (void) G_GNUC_CONST;
+#define TRASH_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TRASH_PAGE, TrashPagePrivate))
+enum {
+ TRASH_PAGE_DUMMY_PROPERTY
+};
+static TrashPageTrashSearchViewFilter* trash_page_trash_search_view_filter_new (void);
+static TrashPageTrashSearchViewFilter* trash_page_trash_search_view_filter_construct (GType object_type);
+#define TRASH_PAGE_NAME _ ("Trash")
+TrashPage* trash_page_new (void);
+TrashPage* trash_page_construct (GType object_type);
+CheckerboardPage* checkerboard_page_construct (GType object_type, const gchar* page_name);
+void checkerboard_page_init_item_context_menu (CheckerboardPage* self, const gchar* path);
+void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path);
+void page_init_toolbar (Page* self, const gchar* path);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+MediaViewTracker* media_view_tracker_new (ViewCollection* collection);
+MediaViewTracker* media_view_tracker_construct (GType object_type, ViewCollection* collection);
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+static void trash_page_on_trashcan_contents_altered (TrashPage* self, GeeCollection* added, GeeCollection* removed);
+static void _trash_page_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+GeeCollection* media_source_collection_get_trashcan_contents (MediaSourceCollection* self);
+static void trash_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* trash_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define RESOURCES_DELETE_LABEL _ ("_Delete")
+#define TRANSLATABLE "translatable"
+static void trash_page_on_delete (TrashPage* self);
+static void _trash_page_on_delete_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_DELETE_PHOTOS_MENU _ ("_Delete")
+#define RESOURCES_DELETE_FROM_TRASH_TOOLTIP _ ("Remove the selected photos from the trash")
+static void _vala_array_add89 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_UNDELETE_LABEL _ ("_Undelete")
+static void trash_page_on_restore (TrashPage* self);
+static void _trash_page_on_restore_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_RESTORE_PHOTOS_MENU _ ("_Restore")
+#define RESOURCES_RESTORE_PHOTOS_TOOLTIP _ ("Move the selected photos back into the library")
+static void _vala_array_add90 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static CoreViewTracker* trash_page_real_get_view_tracker (CheckerboardPage* base);
+static void trash_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_set_action_sensitive (Page* self, const gchar* name, gboolean sensitive);
+void page_set_action_important (Page* self, const gchar* name, gboolean important);
+void page_set_common_action_important (Page* self, const gchar* name, gboolean important);
+void page_update_actions (Page* self, gint selected_count, gint count);
+gboolean data_collection_add (DataCollection* self, DataObject* object);
+static TrashPageTrashView* trash_page_trash_view_new (MediaSource* source);
+static TrashPageTrashView* trash_page_trash_view_construct (GType object_type, MediaSource* source);
+GType media_source_item_get_type (void) G_GNUC_CONST;
+GType thumbnail_get_type (void) G_GNUC_CONST;
+static GType trash_page_trash_view_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType marker_get_type (void) G_GNUC_CONST;
+Marker* data_collection_start_marking (DataCollection* self);
+void marker_mark (Marker* self, DataObject* object);
+DataView* view_collection_get_view_for_source (ViewCollection* self, DataSource* source);
+void data_collection_remove_marked (DataCollection* self, Marker* m);
+gint view_collection_get_selected_count (ViewCollection* self);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+TrashUntrashPhotosCommand* trash_untrash_photos_command_new (GeeCollection* sources, gboolean to_trash);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_construct (GType object_type, GeeCollection* sources, gboolean to_trash);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType trash_untrash_photos_command_get_type (void) G_GNUC_CONST;
+static gchar* trash_page_real_get_view_empty_message (CheckerboardPage* base);
+void remove_from_app (GeeCollection* sources, const gchar* dialog_title, const gchar* progress_dialog_text);
+static SearchViewFilter* trash_page_real_get_search_view_filter (CheckerboardPage* base);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+enum {
+ TRASH_PAGE_TRASH_VIEW_DUMMY_PROPERTY
+};
+gint thumbnail_get_DEFAULT_SCALE (void);
+Thumbnail* thumbnail_new (MediaSource* media, gint scale);
+Thumbnail* thumbnail_construct (GType object_type, MediaSource* media, gint scale);
+gboolean media_source_is_trashed (MediaSource* self);
+enum {
+ TRASH_PAGE_TRASH_SEARCH_VIEW_FILTER_DUMMY_PROPERTY
+};
+static guint trash_page_trash_search_view_filter_real_get_criteria (SearchViewFilter* base);
+GType search_filter_criteria_get_type (void) G_GNUC_CONST;
+DefaultSearchViewFilter* default_search_view_filter_construct (GType object_type);
+static void trash_page_finalize (GObject* obj);
+
+
+static void _trash_page_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 38 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_on_trashcan_contents_altered ((TrashPage*) self, added, removed);
+#line 883 "TrashPage.c"
+}
+
+
+TrashPage* trash_page_construct (GType object_type) {
+ TrashPage * self = NULL;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ MediaViewTracker* _tmp2_ = NULL;
+ LibraryPhotoSourceCollection* _tmp3_ = NULL;
+ VideoSourceCollection* _tmp4_ = NULL;
+ LibraryPhotoSourceCollection* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ VideoSourceCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = (TrashPage*) checkerboard_page_construct (object_type, TRASH_PAGE_NAME);
+#line 31 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ checkerboard_page_init_item_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/TrashContextMenu");
+#line 32 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ checkerboard_page_init_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/TrashPageMenu");
+#line 33 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ page_init_toolbar (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "/TrashToolbar");
+#line 35 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 35 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = _tmp0_;
+#line 35 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_ = media_view_tracker_new (_tmp1_);
+#line 35 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 35 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self->priv->tracker = _tmp2_;
+#line 35 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 38 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp3_ = library_photo_global;
+#line 38 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "trashcan-contents-altered", (GCallback) _trash_page_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered, self, 0);
+#line 39 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp4_ = video_global;
+#line 39 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection), "trashcan-contents-altered", (GCallback) _trash_page_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered, self, 0);
+#line 40 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_ = library_photo_global;
+#line 40 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp6_ = media_source_collection_get_trashcan_contents (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 40 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp7_ = _tmp6_;
+#line 40 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_on_trashcan_contents_altered (self, _tmp7_, NULL);
+#line 40 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 41 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp8_ = video_global;
+#line 41 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp9_ = media_source_collection_get_trashcan_contents (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 41 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp10_ = _tmp9_;
+#line 41 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_on_trashcan_contents_altered (self, _tmp10_, NULL);
+#line 41 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 28 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return self;
+#line 950 "TrashPage.c"
+}
+
+
+TrashPage* trash_page_new (void) {
+#line 28 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return trash_page_construct (TYPE_TRASH_PAGE);
+#line 957 "TrashPage.c"
+}
+
+
+static void trash_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ TrashPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_PAGE, TrashPage);
+#line 44 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 45 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = ui_filenames;
+#line 45 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ PAGE_CLASS (trash_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp0_);
+#line 47 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = ui_filenames;
+#line 47 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "trash.ui");
+#line 977 "TrashPage.c"
+}
+
+
+static void _trash_page_on_delete_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_on_delete ((TrashPage*) self);
+#line 984 "TrashPage.c"
+}
+
+
+static void _vala_array_add89 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if ((*length) == (*size)) {
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 995 "TrashPage.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ (*array)[(*length)++] = *value;
+#line 999 "TrashPage.c"
+}
+
+
+static void _trash_page_on_restore_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_on_restore ((TrashPage*) self);
+#line 1006 "TrashPage.c"
+}
+
+
+static void _vala_array_add90 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if ((*length) == (*size)) {
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1017 "TrashPage.c"
+ }
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1021 "TrashPage.c"
+}
+
+
+static GtkActionEntry* trash_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ TrashPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry delete_action = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry restore = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 50 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_PAGE, TrashPage);
+#line 51 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = PAGE_CLASS (trash_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), &_tmp0_);
+#line 51 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ actions = _tmp1_;
+#line 51 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ actions_length1 = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _actions_size_ = actions_length1;
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_.name = "Delete";
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_.stock_id = RESOURCES_DELETE_LABEL;
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_.accelerator = "Delete";
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_.tooltip = TRANSLATABLE;
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_.callback = (GCallback) _trash_page_on_delete_gtk_action_callback;
+#line 53 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ delete_action = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ delete_action.label = RESOURCES_DELETE_PHOTOS_MENU;
+#line 56 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ delete_action.tooltip = RESOURCES_DELETE_FROM_TRASH_TOOLTIP;
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp3_ = actions;
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp3__length1 = actions_length1;
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp4_ = delete_action;
+#line 57 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _vala_array_add89 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_.name = "Restore";
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_.stock_id = RESOURCES_UNDELETE_LABEL;
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_.accelerator = NULL;
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_.tooltip = TRANSLATABLE;
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_.callback = (GCallback) _trash_page_on_restore_gtk_action_callback;
+#line 59 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ restore = _tmp5_;
+#line 61 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ restore.label = RESOURCES_RESTORE_PHOTOS_MENU;
+#line 62 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ restore.tooltip = RESOURCES_RESTORE_PHOTOS_TOOLTIP;
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp6_ = actions;
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp6__length1 = actions_length1;
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp7_ = restore;
+#line 63 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _vala_array_add90 (&actions, &actions_length1, &_actions_size_, &_tmp7_);
+#line 65 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp8_ = actions;
+#line 65 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp8__length1 = actions_length1;
+#line 65 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if (result_length1) {
+#line 65 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ *result_length1 = _tmp8__length1;
+#line 1115 "TrashPage.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ result = _tmp8_;
+#line 65 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return result;
+#line 1121 "TrashPage.c"
+}
+
+
+static gpointer _core_tracker_ref0 (gpointer self) {
+#line 69 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return self ? core_tracker_ref (self) : NULL;
+#line 1128 "TrashPage.c"
+}
+
+
+static CoreViewTracker* trash_page_real_get_view_tracker (CheckerboardPage* base) {
+ TrashPage * self;
+ CoreViewTracker* result = NULL;
+ MediaViewTracker* _tmp0_ = NULL;
+ CoreViewTracker* _tmp1_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_PAGE, TrashPage);
+#line 69 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = self->priv->tracker;
+#line 69 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = _core_tracker_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, CORE_TYPE_VIEW_TRACKER, CoreViewTracker));
+#line 69 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ result = _tmp1_;
+#line 69 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return result;
+#line 1147 "TrashPage.c"
+}
+
+
+static void trash_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ TrashPage * self;
+ gboolean has_selected = FALSE;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 72 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_PAGE, TrashPage);
+#line 73 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = selected_count;
+#line 73 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ has_selected = _tmp0_ > 0;
+#line 75 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Delete", has_selected);
+#line 76 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Delete", TRUE);
+#line 77 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ page_set_action_sensitive (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Restore", has_selected);
+#line 78 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ page_set_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "Restore", TRUE);
+#line 79 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ page_set_common_action_important (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "CommonEmptyTrash", TRUE);
+#line 81 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = selected_count;
+#line 81 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_ = count;
+#line 81 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ PAGE_CLASS (trash_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), TYPE_PAGE, Page), _tmp1_, _tmp2_);
+#line 1179 "TrashPage.c"
+}
+
+
+static void trash_page_on_trashcan_contents_altered (TrashPage* self, GeeCollection* added, GeeCollection* removed) {
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_return_if_fail (IS_TRASH_PAGE (self));
+#line 84 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_return_if_fail ((added == NULL) || GEE_IS_COLLECTION (added));
+#line 84 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_COLLECTION (removed));
+#line 86 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = added;
+#line 86 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if (_tmp0_ != NULL) {
+#line 1196 "TrashPage.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = added;
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _source_it = _tmp2_;
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ while (TRUE) {
+#line 1209 "TrashPage.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+ TrashPageTrashView* _tmp10_ = NULL;
+ TrashPageTrashView* _tmp11_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp3_ = _source_it;
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if (!_tmp4_) {
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ break;
+#line 1228 "TrashPage.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_ = _source_it;
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ source = (MediaSource*) _tmp6_;
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp8_ = _tmp7_;
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp9_ = source;
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp10_ = trash_page_trash_view_new (_tmp9_);
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp11_ = _tmp10_;
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ data_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_DATA_COLLECTION, DataCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_DATA_OBJECT, DataObject));
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 88 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (source);
+#line 1254 "TrashPage.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_source_it);
+#line 1258 "TrashPage.c"
+ }
+ }
+#line 91 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp12_ = removed;
+#line 91 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if (_tmp12_ != NULL) {
+#line 1265 "TrashPage.c"
+ Marker* marker = NULL;
+ ViewCollection* _tmp13_ = NULL;
+ ViewCollection* _tmp14_ = NULL;
+ Marker* _tmp15_ = NULL;
+ Marker* _tmp16_ = NULL;
+ ViewCollection* _tmp29_ = NULL;
+ ViewCollection* _tmp30_ = NULL;
+ Marker* _tmp31_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp13_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 92 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp14_ = _tmp13_;
+#line 92 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp15_ = data_collection_start_marking (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, TYPE_DATA_COLLECTION, DataCollection));
+#line 92 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp16_ = _tmp15_;
+#line 92 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp14_);
+#line 92 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ marker = _tmp16_;
+#line 1286 "TrashPage.c"
+ {
+ GeeIterator* _source_it = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeIterator* _tmp18_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp17_ = removed;
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp18_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _source_it = _tmp18_;
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ while (TRUE) {
+#line 1299 "TrashPage.c"
+ GeeIterator* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ MediaSource* source = NULL;
+ GeeIterator* _tmp21_ = NULL;
+ gpointer _tmp22_ = NULL;
+ Marker* _tmp23_ = NULL;
+ ViewCollection* _tmp24_ = NULL;
+ ViewCollection* _tmp25_ = NULL;
+ MediaSource* _tmp26_ = NULL;
+ DataView* _tmp27_ = NULL;
+ DataView* _tmp28_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp19_ = _source_it;
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp20_ = gee_iterator_next (_tmp19_);
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if (!_tmp20_) {
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ break;
+#line 1319 "TrashPage.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp21_ = _source_it;
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp22_ = gee_iterator_get (_tmp21_);
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ source = (MediaSource*) _tmp22_;
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp23_ = marker;
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp24_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp25_ = _tmp24_;
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp26_ = source;
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp27_ = view_collection_get_view_for_source (_tmp25_, G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, TYPE_DATA_SOURCE, DataSource));
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp28_ = _tmp27_;
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ marker_mark (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, TYPE_DATA_OBJECT, DataObject));
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_tmp28_);
+#line 94 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp25_);
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (source);
+#line 1347 "TrashPage.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_source_it);
+#line 1351 "TrashPage.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp29_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 95 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp30_ = _tmp29_;
+#line 95 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp31_ = marker;
+#line 95 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ data_collection_remove_marked (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_DATA_COLLECTION, DataCollection), _tmp31_);
+#line 95 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp30_);
+#line 91 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (marker);
+#line 1365 "TrashPage.c"
+ }
+}
+
+
+static void trash_page_on_restore (TrashPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ CommandManager* _tmp4_ = NULL;
+ CommandManager* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ TrashUntrashPhotosCommand* _tmp10_ = NULL;
+ TrashUntrashPhotosCommand* _tmp11_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_return_if_fail (IS_TRASH_PAGE (self));
+#line 100 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 100 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = _tmp0_;
+#line 100 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 100 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp3_ = _tmp2_ == 0;
+#line 100 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 100 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if (_tmp3_) {
+#line 101 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return;
+#line 1399 "TrashPage.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp4_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_ = _tmp4_;
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp7_ = _tmp6_;
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp8_ = view_collection_get_selected_sources (_tmp7_);
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp10_ = trash_untrash_photos_command_new (_tmp9_, FALSE);
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp11_ = _tmp10_;
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ command_manager_execute (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, TYPE_COMMAND, Command));
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_tmp11_);
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 103 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _command_manager_unref0 (_tmp5_);
+#line 1427 "TrashPage.c"
+}
+
+
+static gchar* trash_page_real_get_view_empty_message (CheckerboardPage* base) {
+ TrashPage * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_PAGE, TrashPage);
+#line 108 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = _ ("Trash is empty");
+#line 108 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 108 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ result = _tmp1_;
+#line 108 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return result;
+#line 1446 "TrashPage.c"
+}
+
+
+static void trash_page_on_delete (TrashPage* self) {
+ const gchar* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ ViewCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_return_if_fail (IS_TRASH_PAGE (self));
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_ = _tmp1_;
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp3_ = view_collection_get_selected_count (_tmp2_);
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp4_ = _tmp3_ == 1;
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp2_);
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ if (_tmp4_) {
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = "Deleting a Photo";
+#line 1477 "TrashPage.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp5_ = _ ("Deleting Photos");
+#line 113 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = _tmp5_;
+#line 1484 "TrashPage.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp7_ = _tmp6_;
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp8_ = view_collection_get_selected_sources (_tmp7_);
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp10_ = _ ("Delete");
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ remove_from_app (_tmp9_, _tmp10_, _tmp0_);
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _g_object_unref0 (_tmp9_);
+#line 112 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 1502 "TrashPage.c"
+}
+
+
+static gpointer _view_filter_ref0 (gpointer self) {
+#line 117 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return self ? view_filter_ref (self) : NULL;
+#line 1509 "TrashPage.c"
+}
+
+
+static SearchViewFilter* trash_page_real_get_search_view_filter (CheckerboardPage* base) {
+ TrashPage * self;
+ SearchViewFilter* result = NULL;
+ TrashPageTrashSearchViewFilter* _tmp0_ = NULL;
+ SearchViewFilter* _tmp1_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TRASH_PAGE, TrashPage);
+#line 117 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = self->priv->search_filter;
+#line 117 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = _view_filter_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_SEARCH_VIEW_FILTER, SearchViewFilter));
+#line 117 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ result = _tmp1_;
+#line 117 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return result;
+#line 1528 "TrashPage.c"
+}
+
+
+static TrashPageTrashView* trash_page_trash_view_construct (GType object_type, MediaSource* source) {
+ TrashPageTrashView * self = NULL;
+ MediaSource* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ MediaSource* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 11 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), NULL);
+#line 12 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = source;
+#line 12 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp1_ = thumbnail_get_DEFAULT_SCALE ();
+#line 12 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp2_ = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = (TrashPageTrashView*) thumbnail_construct (object_type, _tmp0_, _tmp2_);
+#line 14 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp3_ = source;
+#line 14 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp4_ = media_source_is_trashed (_tmp3_);
+#line 14 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _vala_assert (_tmp4_, "source.is_trashed()");
+#line 11 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return self;
+#line 1557 "TrashPage.c"
+}
+
+
+static TrashPageTrashView* trash_page_trash_view_new (MediaSource* source) {
+#line 11 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return trash_page_trash_view_construct (TRASH_PAGE_TYPE_TRASH_VIEW, source);
+#line 1564 "TrashPage.c"
+}
+
+
+static void trash_page_trash_view_class_init (TrashPageTrashViewClass * klass) {
+#line 10 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_trash_view_parent_class = g_type_class_peek_parent (klass);
+#line 1571 "TrashPage.c"
+}
+
+
+static void trash_page_trash_view_instance_init (TrashPageTrashView * self) {
+}
+
+
+static GType trash_page_trash_view_get_type (void) {
+ static volatile gsize trash_page_trash_view_type_id__volatile = 0;
+ if (g_once_init_enter (&trash_page_trash_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TrashPageTrashViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trash_page_trash_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrashPageTrashView), 0, (GInstanceInitFunc) trash_page_trash_view_instance_init, NULL };
+ GType trash_page_trash_view_type_id;
+ trash_page_trash_view_type_id = g_type_register_static (TYPE_THUMBNAIL, "TrashPageTrashView", &g_define_type_info, 0);
+ g_once_init_leave (&trash_page_trash_view_type_id__volatile, trash_page_trash_view_type_id);
+ }
+ return trash_page_trash_view_type_id__volatile;
+}
+
+
+static guint trash_page_trash_search_view_filter_real_get_criteria (SearchViewFilter* base) {
+ TrashPageTrashSearchViewFilter * self;
+ guint result = 0U;
+#line 19 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER, TrashPageTrashSearchViewFilter);
+#line 20 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ result = (guint) ((((SEARCH_FILTER_CRITERIA_TEXT | SEARCH_FILTER_CRITERIA_FLAG) | SEARCH_FILTER_CRITERIA_MEDIA) | SEARCH_FILTER_CRITERIA_RATING) | SEARCH_FILTER_CRITERIA_SAVEDSEARCH);
+#line 20 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return result;
+#line 1600 "TrashPage.c"
+}
+
+
+static TrashPageTrashSearchViewFilter* trash_page_trash_search_view_filter_construct (GType object_type) {
+ TrashPageTrashSearchViewFilter* self = NULL;
+#line 18 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = (TrashPageTrashSearchViewFilter*) default_search_view_filter_construct (object_type);
+#line 18 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return self;
+#line 1610 "TrashPage.c"
+}
+
+
+static TrashPageTrashSearchViewFilter* trash_page_trash_search_view_filter_new (void) {
+#line 18 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ return trash_page_trash_search_view_filter_construct (TRASH_PAGE_TYPE_TRASH_SEARCH_VIEW_FILTER);
+#line 1617 "TrashPage.c"
+}
+
+
+static void trash_page_trash_search_view_filter_class_init (TrashPageTrashSearchViewFilterClass * klass) {
+#line 18 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_trash_search_view_filter_parent_class = g_type_class_peek_parent (klass);
+#line 18 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ ((SearchViewFilterClass *) klass)->get_criteria = trash_page_trash_search_view_filter_real_get_criteria;
+#line 1626 "TrashPage.c"
+}
+
+
+static void trash_page_trash_search_view_filter_instance_init (TrashPageTrashSearchViewFilter * self) {
+}
+
+
+static GType trash_page_trash_search_view_filter_get_type (void) {
+ static volatile gsize trash_page_trash_search_view_filter_type_id__volatile = 0;
+ if (g_once_init_enter (&trash_page_trash_search_view_filter_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TrashPageTrashSearchViewFilterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trash_page_trash_search_view_filter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrashPageTrashSearchViewFilter), 0, (GInstanceInitFunc) trash_page_trash_search_view_filter_instance_init, NULL };
+ GType trash_page_trash_search_view_filter_type_id;
+ trash_page_trash_search_view_filter_type_id = g_type_register_static (TYPE_DEFAULT_SEARCH_VIEW_FILTER, "TrashPageTrashSearchViewFilter", &g_define_type_info, 0);
+ g_once_init_leave (&trash_page_trash_search_view_filter_type_id__volatile, trash_page_trash_search_view_filter_type_id);
+ }
+ return trash_page_trash_search_view_filter_type_id__volatile;
+}
+
+
+static void trash_page_class_init (TrashPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ trash_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ g_type_class_add_private (klass, sizeof (TrashPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = trash_page_real_init_collect_ui_filenames;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = trash_page_real_init_collect_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ ((CheckerboardPageClass *) klass)->get_view_tracker = trash_page_real_get_view_tracker;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ ((PageClass *) klass)->update_actions = trash_page_real_update_actions;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ ((CheckerboardPageClass *) klass)->get_view_empty_message = trash_page_real_get_view_empty_message;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ ((CheckerboardPageClass *) klass)->get_search_view_filter = trash_page_real_get_search_view_filter;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = trash_page_finalize;
+#line 1665 "TrashPage.c"
+}
+
+
+static void trash_page_instance_init (TrashPage * self) {
+ TrashPageTrashSearchViewFilter* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self->priv = TRASH_PAGE_GET_PRIVATE (self);
+#line 25 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _tmp0_ = trash_page_trash_search_view_filter_new ();
+#line 25 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self->priv->search_filter = _tmp0_;
+#line 1677 "TrashPage.c"
+}
+
+
+static void trash_page_finalize (GObject* obj) {
+ TrashPage * self;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRASH_PAGE, TrashPage);
+#line 25 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _view_filter_unref0 (self->priv->search_filter);
+#line 26 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ _core_tracker_unref0 (self->priv->tracker);
+#line 7 "/home/jens/Source/shotwell/src/library/TrashPage.vala"
+ G_OBJECT_CLASS (trash_page_parent_class)->finalize (obj);
+#line 1691 "TrashPage.c"
+}
+
+
+GType trash_page_get_type (void) {
+ static volatile gsize trash_page_type_id__volatile = 0;
+ if (g_once_init_enter (&trash_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TrashPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) trash_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrashPage), 0, (GInstanceInitFunc) trash_page_instance_init, NULL };
+ GType trash_page_type_id;
+ trash_page_type_id = g_type_register_static (TYPE_CHECKERBOARD_PAGE, "TrashPage", &g_define_type_info, 0);
+ g_once_init_leave (&trash_page_type_id__volatile, trash_page_type_id);
+ }
+ return trash_page_type_id__volatile;
+}
+
+
+
diff --git a/src/library/TrashPage.vala b/src/library/TrashPage.vala
index 9bafee5..0a38ac0 100644
--- a/src/library/TrashPage.vala
+++ b/src/library/TrashPage.vala
@@ -18,7 +18,7 @@ public class TrashPage : CheckerboardPage {
private class TrashSearchViewFilter : DefaultSearchViewFilter {
public override uint get_criteria() {
return SearchFilterCriteria.TEXT | SearchFilterCriteria.FLAG |
- SearchFilterCriteria.MEDIA | SearchFilterCriteria.RATING;
+ SearchFilterCriteria.MEDIA | SearchFilterCriteria.RATING | SearchFilterCriteria.SAVEDSEARCH;
}
}
diff --git a/src/library/TrashSidebarEntry.c b/src/library/TrashSidebarEntry.c
new file mode 100644
index 0000000..0346c07
--- /dev/null
+++ b/src/library/TrashSidebarEntry.c
@@ -0,0 +1,816 @@
+/* TrashSidebarEntry.c generated by valac 0.32.1, the Vala compiler
+ * generated from TrashSidebarEntry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gee.h>
+#include <glib/gi18n-lib.h>
+
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY (sidebar_internal_drop_target_entry_get_type ())
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntry))
+#define SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY))
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntryIface))
+
+typedef struct _SidebarInternalDropTargetEntry SidebarInternalDropTargetEntry;
+typedef struct _SidebarInternalDropTargetEntryIface SidebarInternalDropTargetEntryIface;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY (library_trash_sidebar_entry_get_type ())
+#define LIBRARY_TRASH_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry))
+#define LIBRARY_TRASH_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntryClass))
+#define LIBRARY_IS_TRASH_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY))
+#define LIBRARY_IS_TRASH_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY))
+#define LIBRARY_TRASH_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntryClass))
+
+typedef struct _LibraryTrashSidebarEntry LibraryTrashSidebarEntry;
+typedef struct _LibraryTrashSidebarEntryClass LibraryTrashSidebarEntryClass;
+typedef struct _LibraryTrashSidebarEntryPrivate LibraryTrashSidebarEntryPrivate;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_TRASH_UNTRASH_PHOTOS_COMMAND (trash_untrash_photos_command_get_type ())
+#define TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommand))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define IS_TRASH_UNTRASH_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND))
+#define TRASH_UNTRASH_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRASH_UNTRASH_PHOTOS_COMMAND, TrashUntrashPhotosCommandClass))
+
+typedef struct _TrashUntrashPhotosCommand TrashUntrashPhotosCommand;
+typedef struct _TrashUntrashPhotosCommandClass TrashUntrashPhotosCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_TRASH_PAGE (trash_page_get_type ())
+#define TRASH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRASH_PAGE, TrashPage))
+#define TRASH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRASH_PAGE, TrashPageClass))
+#define IS_TRASH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRASH_PAGE))
+#define IS_TRASH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRASH_PAGE))
+#define TRASH_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRASH_PAGE, TrashPageClass))
+
+typedef struct _TrashPage TrashPage;
+typedef struct _TrashPageClass TrashPageClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _SidebarInternalDropTargetEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*internal_drop_received) (SidebarInternalDropTargetEntry* self, GeeList* sources);
+ gboolean (*internal_drop_received_arbitrary) (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+};
+
+struct _LibraryTrashSidebarEntry {
+ SidebarSimplePageEntry parent_instance;
+ LibraryTrashSidebarEntryPrivate * priv;
+};
+
+struct _LibraryTrashSidebarEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+
+static gpointer library_trash_sidebar_entry_parent_class = NULL;
+static SidebarInternalDropTargetEntryIface* library_trash_sidebar_entry_sidebar_internal_drop_target_entry_parent_iface = NULL;
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType sidebar_internal_drop_target_entry_get_type (void) G_GNUC_CONST;
+GType library_trash_sidebar_entry_get_type (void) G_GNUC_CONST;
+enum {
+ LIBRARY_TRASH_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+static void library_trash_sidebar_entry_on_trashcan_contents_altered (LibraryTrashSidebarEntry* self);
+static void _library_trash_sidebar_entry_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self);
+LibraryTrashSidebarEntry* library_trash_sidebar_entry_new (void);
+LibraryTrashSidebarEntry* library_trash_sidebar_entry_construct (GType object_type);
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+void library_trash_sidebar_entry_init (void);
+void library_trash_sidebar_entry_terminate (void);
+static gchar* library_trash_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+#define TRASH_PAGE_NAME _ ("Trash")
+static gchar* library_trash_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static gchar* library_trash_sidebar_entry_get_current_icon (void);
+gint media_source_collection_get_trashcan_count (MediaSourceCollection* self);
+#define RESOURCES_ICON_TRASH_FULL "user-trash-full"
+#define RESOURCES_ICON_TRASH_EMPTY "user-trash"
+static gboolean library_trash_sidebar_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_new (GeeCollection* sources, gboolean to_trash);
+TrashUntrashPhotosCommand* trash_untrash_photos_command_construct (GType object_type, GeeCollection* sources, gboolean to_trash);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType trash_untrash_photos_command_get_type (void) G_GNUC_CONST;
+static gboolean library_trash_sidebar_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data);
+static Page* library_trash_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+TrashPage* trash_page_new (void);
+TrashPage* trash_page_construct (GType object_type);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType trash_page_get_type (void) G_GNUC_CONST;
+static void library_trash_sidebar_entry_finalize (GObject* obj);
+
+
+static void _library_trash_sidebar_entry_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered (MediaSourceCollection* _sender, GeeCollection* added, GeeCollection* removed, gpointer self) {
+#line 16 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ library_trash_sidebar_entry_on_trashcan_contents_altered ((LibraryTrashSidebarEntry*) self);
+#line 392 "TrashSidebarEntry.c"
+}
+
+
+LibraryTrashSidebarEntry* library_trash_sidebar_entry_construct (GType object_type) {
+ LibraryTrashSidebarEntry * self = NULL;
+#line 9 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ self = (LibraryTrashSidebarEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 400 "TrashSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ while (TRUE) {
+#line 429 "TrashSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ break;
+#line 444 "TrashSidebarEntry.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 11 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 11 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_signal_connect_object (_tmp10_, "trashcan-contents-altered", (GCallback) _library_trash_sidebar_entry_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered, self, 0);
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 458 "TrashSidebarEntry.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 462 "TrashSidebarEntry.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return self;
+#line 466 "TrashSidebarEntry.c"
+}
+
+
+LibraryTrashSidebarEntry* library_trash_sidebar_entry_new (void) {
+#line 9 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return library_trash_sidebar_entry_construct (LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY);
+#line 473 "TrashSidebarEntry.c"
+}
+
+
+void library_trash_sidebar_entry_init (void) {
+}
+
+
+void library_trash_sidebar_entry_terminate (void) {
+}
+
+
+static gchar* library_trash_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ LibraryTrashSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry);
+#line 26 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = g_strdup (TRASH_PAGE_NAME);
+#line 26 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ result = _tmp0_;
+#line 26 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return result;
+#line 497 "TrashSidebarEntry.c"
+}
+
+
+static gchar* library_trash_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ LibraryTrashSidebarEntry * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry);
+#line 30 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = library_trash_sidebar_entry_get_current_icon ();
+#line 30 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ result = _tmp0_;
+#line 30 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return result;
+#line 513 "TrashSidebarEntry.c"
+}
+
+
+static gchar* library_trash_sidebar_entry_get_current_icon (void) {
+ gchar* result = NULL;
+ gchar* _tmp13_ = NULL;
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ while (TRUE) {
+#line 548 "TrashSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ break;
+#line 564 "TrashSidebarEntry.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 35 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 35 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp11_ = media_source_collection_get_trashcan_count (_tmp10_);
+#line 35 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ if (_tmp11_ > 0) {
+#line 578 "TrashSidebarEntry.c"
+ gchar* _tmp12_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp12_ = g_strdup (RESOURCES_ICON_TRASH_FULL);
+#line 36 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ result = _tmp12_;
+#line 36 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 36 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 36 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return result;
+#line 590 "TrashSidebarEntry.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 594 "TrashSidebarEntry.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 598 "TrashSidebarEntry.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp13_ = g_strdup (RESOURCES_ICON_TRASH_EMPTY);
+#line 39 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ result = _tmp13_;
+#line 39 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return result;
+#line 606 "TrashSidebarEntry.c"
+}
+
+
+static gboolean library_trash_sidebar_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media) {
+ LibraryTrashSidebarEntry * self;
+ gboolean result = FALSE;
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ TrashUntrashPhotosCommand* _tmp3_ = NULL;
+ TrashUntrashPhotosCommand* _tmp4_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry);
+#line 42 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_return_val_if_fail (GEE_IS_LIST (media), FALSE);
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = app_window_get_command_manager ();
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp2_ = media;
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp3_ = trash_untrash_photos_command_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), TRUE);
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp4_ = _tmp3_;
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ command_manager_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_COMMAND, Command));
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_tmp4_);
+#line 43 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 45 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ result = TRUE;
+#line 45 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return result;
+#line 642 "TrashSidebarEntry.c"
+}
+
+
+static gboolean library_trash_sidebar_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data) {
+ LibraryTrashSidebarEntry * self;
+ gboolean result = FALSE;
+#line 48 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry);
+#line 48 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_return_val_if_fail (data != NULL, FALSE);
+#line 49 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ result = FALSE;
+#line 49 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return result;
+#line 657 "TrashSidebarEntry.c"
+}
+
+
+static Page* library_trash_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ LibraryTrashSidebarEntry * self;
+ Page* result = NULL;
+ TrashPage* _tmp0_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry);
+#line 53 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = trash_page_new ();
+#line 53 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_object_ref_sink (_tmp0_);
+#line 53 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PAGE, Page);
+#line 53 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ return result;
+#line 675 "TrashSidebarEntry.c"
+}
+
+
+static void library_trash_sidebar_entry_on_trashcan_contents_altered (LibraryTrashSidebarEntry* self) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_return_if_fail (LIBRARY_IS_TRASH_SIDEBAR_ENTRY (self));
+#line 57 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = library_trash_sidebar_entry_get_current_icon ();
+#line 57 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 57 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_ENTRY, SidebarEntry), "sidebar-icon-changed", _tmp1_);
+#line 57 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_free0 (_tmp1_);
+#line 692 "TrashSidebarEntry.c"
+}
+
+
+static void library_trash_sidebar_entry_class_init (LibraryTrashSidebarEntryClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ library_trash_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = library_trash_sidebar_entry_real_get_sidebar_name;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = library_trash_sidebar_entry_real_get_sidebar_icon;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = library_trash_sidebar_entry_real_create_page;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ G_OBJECT_CLASS (klass)->finalize = library_trash_sidebar_entry_finalize;
+#line 707 "TrashSidebarEntry.c"
+}
+
+
+static void library_trash_sidebar_entry_sidebar_internal_drop_target_entry_interface_init (SidebarInternalDropTargetEntryIface * iface) {
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ library_trash_sidebar_entry_sidebar_internal_drop_target_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ iface->internal_drop_received = (gboolean (*)(SidebarInternalDropTargetEntry*, GeeList*)) library_trash_sidebar_entry_real_internal_drop_received;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ iface->internal_drop_received_arbitrary = (gboolean (*)(SidebarInternalDropTargetEntry*, GtkSelectionData*)) library_trash_sidebar_entry_real_internal_drop_received_arbitrary;
+#line 718 "TrashSidebarEntry.c"
+}
+
+
+static void library_trash_sidebar_entry_instance_init (LibraryTrashSidebarEntry * self) {
+}
+
+
+static void library_trash_sidebar_entry_finalize (GObject* obj) {
+ LibraryTrashSidebarEntry * self;
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, LIBRARY_TYPE_TRASH_SIDEBAR_ENTRY, LibraryTrashSidebarEntry);
+#line 730 "TrashSidebarEntry.c"
+ {
+ GeeIterator* _media_sources_it = NULL;
+ MediaCollectionRegistry* _tmp0_ = NULL;
+ MediaCollectionRegistry* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp0_ = media_collection_registry_get_instance ();
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp1_ = _tmp0_;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp2_ = media_collection_registry_get_all (_tmp1_);
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp3_ = _tmp2_;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp5_ = _tmp4_;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_tmp3_);
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _media_collection_registry_unref0 (_tmp1_);
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _media_sources_it = _tmp5_;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ while (TRUE) {
+#line 759 "TrashSidebarEntry.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSourceCollection* media_sources = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ MediaSourceCollection* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp6_ = _media_sources_it;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ if (!_tmp7_) {
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ break;
+#line 775 "TrashSidebarEntry.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp8_ = _media_sources_it;
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ media_sources = (MediaSourceCollection*) _tmp9_;
+#line 16 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _tmp10_ = media_sources;
+#line 16 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_signal_parse_name ("trashcan-contents-altered", TYPE_MEDIA_SOURCE_COLLECTION, &_tmp11_, NULL, FALSE);
+#line 16 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _library_trash_sidebar_entry_on_trashcan_contents_altered_media_source_collection_trashcan_contents_altered, self);
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _data_collection_unref0 (media_sources);
+#line 791 "TrashSidebarEntry.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ _g_object_unref0 (_media_sources_it);
+#line 795 "TrashSidebarEntry.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/library/TrashSidebarEntry.vala"
+ G_OBJECT_CLASS (library_trash_sidebar_entry_parent_class)->finalize (obj);
+#line 799 "TrashSidebarEntry.c"
+}
+
+
+GType library_trash_sidebar_entry_get_type (void) {
+ static volatile gsize library_trash_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&library_trash_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (LibraryTrashSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) library_trash_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LibraryTrashSidebarEntry), 0, (GInstanceInitFunc) library_trash_sidebar_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_internal_drop_target_entry_info = { (GInterfaceInitFunc) library_trash_sidebar_entry_sidebar_internal_drop_target_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType library_trash_sidebar_entry_type_id;
+ library_trash_sidebar_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "LibraryTrashSidebarEntry", &g_define_type_info, 0);
+ g_type_add_interface_static (library_trash_sidebar_entry_type_id, SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, &sidebar_internal_drop_target_entry_info);
+ g_once_init_leave (&library_trash_sidebar_entry_type_id__volatile, library_trash_sidebar_entry_type_id);
+ }
+ return library_trash_sidebar_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/library/mk/library.mk b/src/library/mk/library.mk
deleted file mode 100644
index dc6201f..0000000
--- a/src/library/mk/library.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Library
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := library
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- LibraryWindow.vala \
- Branch.vala \
- TrashSidebarEntry.vala \
- OfflineSidebarEntry.vala \
- FlaggedSidebarEntry.vala \
- LastImportSidebarEntry.vala \
- ImportQueueSidebarEntry.vala \
- FlaggedPage.vala \
- ImportQueuePage.vala \
- LastImportPage.vala \
- OfflinePage.vala \
- TrashPage.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Util \
- Threads \
- Db \
- Plugins \
- Slideshow \
- Photos \
- Publishing \
- Core \
- Sidebar \
- Events \
- Tags \
- Camera \
- Searches \
- DataImports \
- Folders
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..bef5186
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,3011 @@
+/* main.c generated by valac 0.32.1, the Vala compiler
+ * generated from main.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <glib/gi18n-lib.h>
+#include <gtk/gtk.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+#include <gexiv2/gexiv2.h>
+#include <unistd.h>
+
+
+#define TYPE_SHOTWELL_COMMAND (shotwell_command_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define DB_TYPE_VERIFY_RESULT (db_verify_result_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PROGRESS_DIALOG (progress_dialog_get_type ())
+#define PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROGRESS_DIALOG, ProgressDialog))
+#define PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+#define IS_PROGRESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROGRESS_DIALOG))
+#define IS_PROGRESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROGRESS_DIALOG))
+#define PROGRESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROGRESS_DIALOG, ProgressDialogClass))
+
+typedef struct _ProgressDialog ProgressDialog;
+typedef struct _ProgressDialogClass ProgressDialogClass;
+
+#define TYPE_AGGREGATE_PROGRESS_MONITOR (aggregate_progress_monitor_get_type ())
+#define AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitor))
+#define AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))
+#define IS_AGGREGATE_PROGRESS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR))
+#define IS_AGGREGATE_PROGRESS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_AGGREGATE_PROGRESS_MONITOR))
+#define AGGREGATE_PROGRESS_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_AGGREGATE_PROGRESS_MONITOR, AggregateProgressMonitorClass))
+
+typedef struct _AggregateProgressMonitor AggregateProgressMonitor;
+typedef struct _AggregateProgressMonitorClass AggregateProgressMonitorClass;
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_PHOTO_TABLE (photo_table_get_type ())
+#define PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_TABLE, PhotoTable))
+#define PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_TABLE, PhotoTableClass))
+#define IS_PHOTO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_TABLE))
+#define IS_PHOTO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_TABLE))
+#define PHOTO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_TABLE, PhotoTableClass))
+
+typedef struct _PhotoTable PhotoTable;
+typedef struct _PhotoTableClass PhotoTableClass;
+
+#define TYPE_EVENT_TABLE (event_table_get_type ())
+#define EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_TABLE, EventTable))
+#define EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_TABLE, EventTableClass))
+#define IS_EVENT_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_TABLE))
+#define IS_EVENT_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_TABLE))
+#define EVENT_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_TABLE, EventTableClass))
+
+typedef struct _EventTable EventTable;
+typedef struct _EventTableClass EventTableClass;
+
+#define TYPE_TAG_TABLE (tag_table_get_type ())
+#define TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_TABLE, TagTable))
+#define TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_TABLE, TagTableClass))
+#define IS_TAG_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_TABLE))
+#define IS_TAG_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_TABLE))
+#define TAG_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_TABLE, TagTableClass))
+
+typedef struct _TagTable TagTable;
+typedef struct _TagTableClass TagTableClass;
+
+#define TYPE_VIDEO_TABLE (video_table_get_type ())
+#define VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_TABLE, VideoTable))
+#define VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_TABLE, VideoTableClass))
+#define IS_VIDEO_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_TABLE))
+#define IS_VIDEO_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_TABLE))
+#define VIDEO_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_TABLE, VideoTableClass))
+
+typedef struct _VideoTable VideoTable;
+typedef struct _VideoTableClass VideoTableClass;
+
+#define TYPE_UPGRADES (upgrades_get_type ())
+#define UPGRADES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_UPGRADES, Upgrades))
+#define UPGRADES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_UPGRADES, UpgradesClass))
+#define IS_UPGRADES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_UPGRADES))
+#define IS_UPGRADES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_UPGRADES))
+#define UPGRADES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_UPGRADES, UpgradesClass))
+
+typedef struct _Upgrades Upgrades;
+typedef struct _UpgradesClass UpgradesClass;
+#define _upgrades_unref0(var) ((var == NULL) ? NULL : (var = (upgrades_unref (var), NULL)))
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _aggregate_progress_monitor_unref0(var) ((var == NULL) ? NULL : (var = (aggregate_progress_monitor_unref (var), NULL)))
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION (library_photo_source_collection_get_type ())
+#define LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollection))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define IS_LIBRARY_PHOTO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION))
+#define LIBRARY_PHOTO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO_SOURCE_COLLECTION, LibraryPhotoSourceCollectionClass))
+
+typedef struct _LibraryPhotoSourceCollection LibraryPhotoSourceCollection;
+typedef struct _LibraryPhotoSourceCollectionClass LibraryPhotoSourceCollectionClass;
+
+#define TYPE_VIDEO_SOURCE_COLLECTION (video_source_collection_get_type ())
+#define VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollection))
+#define VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+#define IS_VIDEO_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE_COLLECTION))
+#define IS_VIDEO_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE_COLLECTION))
+#define VIDEO_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE_COLLECTION, VideoSourceCollectionClass))
+
+typedef struct _VideoSourceCollection VideoSourceCollection;
+typedef struct _VideoSourceCollectionClass VideoSourceCollectionClass;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_WELCOME_SERVICE_ENTRY (welcome_service_entry_get_type ())
+#define WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntry))
+#define IS_WELCOME_SERVICE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_SERVICE_ENTRY))
+#define WELCOME_SERVICE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_WELCOME_SERVICE_ENTRY, WelcomeServiceEntryIface))
+
+typedef struct _WelcomeServiceEntry WelcomeServiceEntry;
+typedef struct _WelcomeServiceEntryIface WelcomeServiceEntryIface;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_WELCOME_DIALOG (welcome_dialog_get_type ())
+#define WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WELCOME_DIALOG, WelcomeDialog))
+#define WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WELCOME_DIALOG, WelcomeDialogClass))
+#define IS_WELCOME_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WELCOME_DIALOG))
+#define IS_WELCOME_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WELCOME_DIALOG))
+#define WELCOME_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WELCOME_DIALOG, WelcomeDialogClass))
+
+typedef struct _WelcomeDialog WelcomeDialog;
+typedef struct _WelcomeDialogClass WelcomeDialogClass;
+
+#define TYPE_IMPORT_MANIFEST (import_manifest_get_type ())
+#define IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IMPORT_MANIFEST, ImportManifest))
+#define IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+#define IS_IMPORT_MANIFEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IMPORT_MANIFEST))
+#define IS_IMPORT_MANIFEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IMPORT_MANIFEST))
+#define IMPORT_MANIFEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IMPORT_MANIFEST, ImportManifestClass))
+
+typedef struct _ImportManifest ImportManifest;
+typedef struct _ImportManifestClass ImportManifestClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT_JOB (batch_import_job_get_type ())
+#define BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJob))
+#define BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+#define IS_BATCH_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_JOB))
+#define IS_BATCH_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_JOB))
+#define BATCH_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_JOB, BatchImportJobClass))
+
+typedef struct _BatchImportJob BatchImportJob;
+typedef struct _BatchImportJobClass BatchImportJobClass;
+
+#define TYPE_FILE_IMPORT_JOB (file_import_job_get_type ())
+#define FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FILE_IMPORT_JOB, FileImportJob))
+#define FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+#define IS_FILE_IMPORT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FILE_IMPORT_JOB))
+#define IS_FILE_IMPORT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FILE_IMPORT_JOB))
+#define FILE_IMPORT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FILE_IMPORT_JOB, FileImportJobClass))
+
+typedef struct _FileImportJob FileImportJob;
+typedef struct _FileImportJobClass FileImportJobClass;
+#define _batch_import_job_unref0(var) ((var == NULL) ? NULL : (var = (batch_import_job_unref (var), NULL)))
+
+#define TYPE_BATCH_IMPORT (batch_import_get_type ())
+#define BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT, BatchImport))
+#define BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT, BatchImportClass))
+#define IS_BATCH_IMPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT))
+#define IS_BATCH_IMPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT))
+#define BATCH_IMPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT, BatchImportClass))
+
+typedef struct _BatchImport BatchImport;
+typedef struct _BatchImportClass BatchImportClass;
+
+#define TYPE_BATCH_IMPORT_ROLL (batch_import_roll_get_type ())
+#define BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRoll))
+#define BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+#define IS_BATCH_IMPORT_ROLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_ROLL))
+#define IS_BATCH_IMPORT_ROLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_ROLL))
+#define BATCH_IMPORT_ROLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_ROLL, BatchImportRollClass))
+
+typedef struct _BatchImportRoll BatchImportRoll;
+typedef struct _BatchImportRollClass BatchImportRollClass;
+typedef struct _ImportManifestPrivate ImportManifestPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_BATCH_IMPORT_RESULT (batch_import_result_get_type ())
+#define BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResult))
+#define BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+#define IS_BATCH_IMPORT_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BATCH_IMPORT_RESULT))
+#define IS_BATCH_IMPORT_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BATCH_IMPORT_RESULT))
+#define BATCH_IMPORT_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BATCH_IMPORT_RESULT, BatchImportResultClass))
+
+typedef struct _BatchImportResult BatchImportResult;
+typedef struct _BatchImportResultClass BatchImportResultClass;
+
+#define IMPORT_UI_TYPE_QUESTION_PARAMS (import_ui_question_params_get_type ())
+#define IMPORT_UI_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParams))
+#define IMPORT_UI_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+#define IMPORT_UI_IS_QUESTION_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_IS_QUESTION_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IMPORT_UI_TYPE_QUESTION_PARAMS))
+#define IMPORT_UI_QUESTION_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IMPORT_UI_TYPE_QUESTION_PARAMS, ImportUIQuestionParamsClass))
+
+typedef struct _ImportUIQuestionParams ImportUIQuestionParams;
+typedef struct _ImportUIQuestionParamsClass ImportUIQuestionParamsClass;
+
+#define TYPE_DIRECT_WINDOW (direct_window_get_type ())
+#define DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DIRECT_WINDOW, DirectWindow))
+#define DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DIRECT_WINDOW, DirectWindowClass))
+#define IS_DIRECT_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DIRECT_WINDOW))
+#define IS_DIRECT_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DIRECT_WINDOW))
+#define DIRECT_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DIRECT_WINDOW, DirectWindowClass))
+
+typedef struct _DirectWindow DirectWindow;
+typedef struct _DirectWindowClass DirectWindowClass;
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+
+typedef enum {
+ SHOTWELL_COMMAND_MOUNTED_CAMERA = 1
+} ShotwellCommand;
+
+typedef enum {
+ DB_VERIFY_RESULT_OK,
+ DB_VERIFY_RESULT_FUTURE_VERSION,
+ DB_VERIFY_RESULT_UPGRADE_ERROR,
+ DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE
+} DbVerifyResult;
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+struct _WelcomeServiceEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_service_name) (WelcomeServiceEntry* self);
+ void (*execute) (WelcomeServiceEntry* self);
+};
+
+typedef void (*BatchImportImportReporter) (ImportManifest* manifest, BatchImportRoll* import_roll, void* user_data);
+struct _ImportManifest {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ImportManifestPrivate * priv;
+ GeeList* imported;
+ GeeList* success;
+ GeeList* camera_failed;
+ GeeList* failed;
+ GeeList* write_failed;
+ GeeList* skipped_photos;
+ GeeList* skipped_files;
+ GeeList* aborted;
+ GeeList* already_imported;
+ GeeList* corrupt_files;
+ GeeList* all;
+};
+
+struct _ImportManifestClass {
+ GTypeClass parent_class;
+ void (*finalize) (ImportManifest *self);
+};
+
+
+extern GTimer* startup_timer;
+GTimer* startup_timer = NULL;
+extern gboolean was_already_running;
+gboolean was_already_running = FALSE;
+extern gboolean commandline_options_no_startup_progress;
+extern LibraryPhotoSourceCollection* library_photo_global;
+extern VideoSourceCollection* video_global;
+extern gboolean do_system_pictures_import;
+extern gboolean do_external_import;
+gboolean do_system_pictures_import = FALSE;
+gboolean do_external_import = FALSE;
+gboolean commandline_options_no_startup_progress = FALSE;
+extern gchar* commandline_options_data_dir;
+gchar* commandline_options_data_dir = NULL;
+extern gboolean commandline_options_show_version;
+gboolean commandline_options_show_version = FALSE;
+extern gboolean commandline_options_no_runtime_monitoring;
+gboolean commandline_options_no_runtime_monitoring = FALSE;
+extern GOptionEntry* commandline_options_entries;
+extern gint commandline_options_entries_length1;
+GOptionEntry* commandline_options_entries = NULL;
+gint commandline_options_entries_length1 = 0;
+static gint _commandline_options_entries_size_ = 0;
+
+GType shotwell_command_get_type (void) G_GNUC_CONST;
+void library_exec (gchar** mounts, int mounts_length1);
+gboolean application_get_is_remote (void);
+void application_present_primary_instance (void);
+void application_send_to_primary_instance (gchar** argv, int argv_length1);
+void db_preconfigure (GFile* db_file);
+GFile* app_dirs_get_data_subdir (const gchar* name, const gchar* subname);
+void library_app_init (GError** error);
+void app_window_panic (const gchar* msg);
+GType db_verify_result_get_type (void) G_GNUC_CONST;
+DbVerifyResult db_verify_database (gchar** app_version, gint* schema_version);
+#define RESOURCES_APP_VERSION _VERSION
+#define DATABASE_TABLE_SCHEMA_VERSION 20
+#define RESOURCES_HOME_URL "https://wiki.gnome.org/Apps/Shotwell"
+GFile* app_dirs_get_data_dir (void);
+const gchar* db_verify_result_to_string (DbVerifyResult self);
+#define RESOURCES_APP_TITLE "Shotwell"
+void database_table_terminate (void);
+void upgrades_init (void);
+GType progress_dialog_get_type (void) G_GNUC_CONST;
+gpointer aggregate_progress_monitor_ref (gpointer instance);
+void aggregate_progress_monitor_unref (gpointer instance);
+GParamSpec* param_spec_aggregate_progress_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_aggregate_progress_monitor (GValue* value, gpointer v_object);
+void value_take_aggregate_progress_monitor (GValue* value, gpointer v_object);
+gpointer value_get_aggregate_progress_monitor (const GValue* value);
+GType aggregate_progress_monitor_get_type (void) G_GNUC_CONST;
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType photo_table_get_type (void) G_GNUC_CONST;
+PhotoTable* photo_table_get_instance (void);
+gint database_table_get_row_count (DatabaseTable* self);
+GType event_table_get_type (void) G_GNUC_CONST;
+EventTable* event_table_get_instance (void);
+GType tag_table_get_type (void) G_GNUC_CONST;
+TagTable* tag_table_get_instance (void);
+GType video_table_get_type (void) G_GNUC_CONST;
+VideoTable* video_table_get_instance (void);
+gpointer upgrades_ref (gpointer instance);
+void upgrades_unref (gpointer instance);
+GParamSpec* param_spec_upgrades (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_upgrades (GValue* value, gpointer v_object);
+void value_take_upgrades (GValue* value, gpointer v_object);
+gpointer value_get_upgrades (const GValue* value);
+GType upgrades_get_type (void) G_GNUC_CONST;
+Upgrades* upgrades_get_instance (void);
+guint64 upgrades_get_step_count (Upgrades* self);
+ProgressDialog* progress_dialog_new (GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+ProgressDialog* progress_dialog_construct (GType object_type, GtkWindow* owner, const gchar* text, GCancellable* cancellable);
+void progress_dialog_update_display_every (ProgressDialog* self, gint update_every);
+void progress_dialog_set_minimum_on_screen_time_msec (ProgressDialog* self, gint minimum_on_screen_time_msec);
+GFile* app_dirs_get_resources_dir (void);
+gboolean progress_dialog_monitor (ProgressDialog* self, guint64 count, guint64 total, gboolean do_event_loop);
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+AggregateProgressMonitor* aggregate_progress_monitor_new (guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+AggregateProgressMonitor* aggregate_progress_monitor_construct (GType object_type, guint64 grand_total, ProgressMonitor wrapped_monitor, void* wrapped_monitor_target);
+gboolean aggregate_progress_monitor_monitor (AggregateProgressMonitor* self, guint64 count, guint64 total);
+static gboolean _aggregate_progress_monitor_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self);
+void thumbnail_cache_init (void);
+void tombstone_init (void);
+void aggregate_progress_monitor_next_step (AggregateProgressMonitor* self, const gchar* name);
+void library_photo_init (ProgressMonitor monitor, void* monitor_target);
+void video_init (ProgressMonitor monitor, void* monitor_target);
+void upgrades_execute (Upgrades* self, ProgressMonitor monitor, void* monitor_target);
+void library_monitor_pool_init (void);
+void media_collection_registry_init (void);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+void media_collection_registry_register_collection (MediaCollectionRegistry* self, MediaSourceCollection* collection);
+GType library_photo_source_collection_get_type (void) G_GNUC_CONST;
+GType video_source_collection_get_type (void) G_GNUC_CONST;
+void event_init (ProgressMonitor monitor, void* monitor_target);
+void tag_init (ProgressMonitor monitor, void* monitor_target);
+void metadata_writer_init (void);
+void desktop_integration_init (void);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_new (ProgressMonitor progress_monitor, void* progress_monitor_target);
+LibraryWindow* library_window_construct (GType object_type, ProgressMonitor progress_monitor, void* progress_monitor_target);
+void library_window_mounted_camera_shell_notification (LibraryWindow* self, const gchar* uri, gboolean at_startup);
+GType welcome_service_entry_get_type (void) G_GNUC_CONST;
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_show_welcome_dialog (ConfigurationFacade* self);
+gint data_collection_get_count (DataCollection* self);
+GType welcome_dialog_get_type (void) G_GNUC_CONST;
+WelcomeDialog* welcome_dialog_new (GtkWindow* owner);
+WelcomeDialog* welcome_dialog_construct (GType object_type, GtkWindow* owner);
+void configuration_facade_set_show_welcome_dialog (ConfigurationFacade* self, gboolean show);
+gboolean welcome_dialog_execute (WelcomeDialog* self, WelcomeServiceEntry*** selected_import_entries, int* selected_import_entries_length1, gboolean* do_system_pictures_import);
+void welcome_service_entry_execute (WelcomeServiceEntry* self);
+gpointer import_manifest_ref (gpointer instance);
+void import_manifest_unref (gpointer instance);
+GParamSpec* param_spec_import_manifest (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_import_manifest (GValue* value, gpointer v_object);
+void value_take_import_manifest (GValue* value, gpointer v_object);
+gpointer value_get_import_manifest (const GValue* value);
+GType import_manifest_get_type (void) G_GNUC_CONST;
+void run_system_pictures_import (ImportManifest* external_exclusion_manifest);
+void application_start (Application* self, gchar** argv, int argv_length1);
+void desktop_integration_terminate (void);
+void metadata_writer_terminate (void);
+void tag_terminate (void);
+void event_terminate (void);
+void library_photo_terminate (void);
+void media_collection_registry_terminate (void);
+void library_monitor_pool_terminate (void);
+void tombstone_terminate (void);
+void thumbnail_cache_terminate (void);
+void video_terminate (void);
+void library_app_terminate (void);
+gpointer batch_import_job_ref (gpointer instance);
+void batch_import_job_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_job (GValue* value, gpointer v_object);
+void value_take_batch_import_job (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_job (const GValue* value);
+GType batch_import_job_get_type (void) G_GNUC_CONST;
+GType file_import_job_get_type (void) G_GNUC_CONST;
+GFile* app_dirs_get_import_dir (void);
+FileImportJob* file_import_job_new (GFile* file_or_dir, gboolean copy_to_library);
+FileImportJob* file_import_job_construct (GType object_type, GFile* file_or_dir, gboolean copy_to_library);
+AppWindow* app_window_get_instance (void);
+GType batch_import_get_type (void) G_GNUC_CONST;
+gpointer batch_import_roll_ref (gpointer instance);
+void batch_import_roll_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_roll (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_roll (GValue* value, gpointer v_object);
+void value_take_batch_import_roll (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_roll (const GValue* value);
+GType batch_import_roll_get_type (void) G_GNUC_CONST;
+void report_system_pictures_import (ImportManifest* manifest, BatchImportRoll* import_roll);
+static void _report_system_pictures_import_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self);
+BatchImport* batch_import_new (GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+BatchImport* batch_import_construct (GType object_type, GeeIterable* jobs, const gchar* name, BatchImportImportReporter reporter, void* reporter_target, GeeArrayList* prefailed, GeeArrayList* pre_already_imported, GCancellable* cancellable, BatchImportRoll* import_roll, ImportManifest* skip_manifest);
+void library_window_enqueue_batch_import (LibraryWindow* self, BatchImport* batch_import, gboolean allow_user_cancel);
+void library_window_switch_to_import_queue_page (LibraryWindow* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gpointer batch_import_result_ref (gpointer instance);
+void batch_import_result_unref (gpointer instance);
+GParamSpec* param_spec_batch_import_result (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_batch_import_result (GValue* value, gpointer v_object);
+void value_take_batch_import_result (GValue* value, gpointer v_object);
+gpointer value_get_batch_import_result (const GValue* value);
+GType batch_import_result_get_type (void) G_GNUC_CONST;
+gpointer import_ui_question_params_ref (gpointer instance);
+void import_ui_question_params_unref (gpointer instance);
+GParamSpec* import_ui_param_spec_question_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void import_ui_value_set_question_params (GValue* value, gpointer v_object);
+void import_ui_value_take_question_params (GValue* value, gpointer v_object);
+gpointer import_ui_value_get_question_params (const GValue* value);
+GType import_ui_question_params_get_type (void) G_GNUC_CONST;
+gboolean import_ui_report_manifest (ImportManifest* manifest, gboolean show_dest_id, ImportUIQuestionParams* question);
+void editing_exec (const gchar* filename);
+void direct_preconfigure (GFile* initial_file);
+void direct_app_init (GError** error);
+GType direct_window_get_type (void) G_GNUC_CONST;
+DirectWindow* direct_window_new (GFile* file);
+DirectWindow* direct_window_construct (GType object_type, GFile* file);
+void direct_app_terminate (void);
+GOptionEntry* commandline_options_get_options (int* result_length1);
+static GOptionEntry* _vala_array_dup26 (GOptionEntry* self, int length);
+static void _vala_array_add152 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value);
+static void _vala_array_add153 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value);
+static void _vala_array_add154 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value);
+static void _vala_array_add155 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value);
+static void _vala_array_add156 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value);
+static GOptionEntry* _vala_array_dup27 (GOptionEntry* self, int length);
+void _vala_main (gchar** args, int args_length1);
+void app_dirs_init (const gchar* arg0);
+GFile* app_dirs_get_install_dir (void);
+GFile* app_dirs_get_exec_dir (void);
+#define RESOURCES_APP_GETTEXT_PACKAGE GETTEXT_PACKAGE
+void app_dirs_terminate (void);
+#define RESOURCES_GIT_VERSION _GIT_VERSION
+gboolean library_window_is_mount_uri_supported (const gchar* uri);
+static void _vala_array_add157 (gchar*** array, int* length, int* size, gchar* value);
+gboolean is_string_empty (const gchar* s);
+#define DEBUG_LIBRARY_PREFIX "L"
+#define DEBUG_VIEWER_PREFIX "V"
+void debug_init (const gchar* app_version_prefix);
+#define RESOURCES_APP_LIBRARY_ROLE _ ("Photo Manager")
+#define RESOURCES_APP_DIRECT_ROLE _ ("Photo Viewer")
+void application_init (gboolean is_direct);
+void app_dirs_set_data_dir (const gchar* user_data_dir);
+void app_dirs_try_migrate_data (void);
+void app_dirs_verify_data_dir (void);
+void app_dirs_verify_cache_dir (void);
+void international_support_init (const gchar* package_name, gchar** args, int args_length1, const gchar* locale);
+#define INTERNATIONAL_SUPPORT_SYSTEM_LOCALE ""
+void resources_init (void);
+void resources_terminate (void);
+void application_terminate (void);
+void debug_terminate (void);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+GType shotwell_command_get_type (void) {
+ static volatile gsize shotwell_command_type_id__volatile = 0;
+ if (g_once_init_enter (&shotwell_command_type_id__volatile)) {
+ static const GEnumValue values[] = {{SHOTWELL_COMMAND_MOUNTED_CAMERA, "SHOTWELL_COMMAND_MOUNTED_CAMERA", "mounted-camera"}, {0, NULL, NULL}};
+ GType shotwell_command_type_id;
+ shotwell_command_type_id = g_enum_register_static ("ShotwellCommand", values);
+ g_once_init_leave (&shotwell_command_type_id__volatile, shotwell_command_type_id);
+ }
+ return shotwell_command_type_id__volatile;
+}
+
+
+static gboolean _progress_dialog_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = progress_dialog_monitor ((ProgressDialog*) self, current, total, do_event_loop);
+#line 114 "/home/jens/Source/shotwell/src/main.vala"
+ return result;
+#line 702 "main.c"
+}
+
+
+static gboolean _aggregate_progress_monitor_monitor_progress_monitor (guint64 current, guint64 total, gboolean do_event_loop, gpointer self) {
+ gboolean result;
+ result = aggregate_progress_monitor_monitor ((AggregateProgressMonitor*) self, current, total);
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ return result;
+#line 711 "main.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 718 "main.c"
+}
+
+
+void library_exec (gchar** mounts, int mounts_length1) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* errormsg = NULL;
+ gchar* app_version = NULL;
+ gint schema_version = 0;
+ DbVerifyResult _result_ = 0;
+ gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ DbVerifyResult _tmp11_ = 0;
+ DbVerifyResult _tmp12_ = 0;
+ const gchar* _tmp33_ = NULL;
+ ProgressDialog* progress_dialog = NULL;
+ AggregateProgressMonitor* aggregate_monitor = NULL;
+ ProgressMonitor monitor = NULL;
+ void* monitor_target = NULL;
+ GDestroyNotify monitor_target_destroy_notify = NULL;
+ gboolean _tmp39_ = FALSE;
+ AggregateProgressMonitor* _tmp79_ = NULL;
+ ProgressMonitor _tmp81_ = NULL;
+ void* _tmp81__target = NULL;
+ AggregateProgressMonitor* _tmp82_ = NULL;
+ ProgressMonitor _tmp84_ = NULL;
+ void* _tmp84__target = NULL;
+ AggregateProgressMonitor* _tmp85_ = NULL;
+ Upgrades* _tmp87_ = NULL;
+ Upgrades* _tmp88_ = NULL;
+ MediaCollectionRegistry* registry = NULL;
+ MediaCollectionRegistry* _tmp89_ = NULL;
+ MediaCollectionRegistry* _tmp90_ = NULL;
+ LibraryPhotoSourceCollection* _tmp91_ = NULL;
+ MediaCollectionRegistry* _tmp92_ = NULL;
+ VideoSourceCollection* _tmp93_ = NULL;
+ AggregateProgressMonitor* _tmp94_ = NULL;
+ ProgressMonitor _tmp96_ = NULL;
+ void* _tmp96__target = NULL;
+ AggregateProgressMonitor* _tmp97_ = NULL;
+ ProgressMonitor _tmp99_ = NULL;
+ void* _tmp99__target = NULL;
+ Application* _tmp100_ = NULL;
+ Application* _tmp101_ = NULL;
+ AggregateProgressMonitor* _tmp102_ = NULL;
+ LibraryWindow* library_window = NULL;
+ ProgressMonitor _tmp104_ = NULL;
+ void* _tmp104__target = NULL;
+ LibraryWindow* _tmp105_ = NULL;
+ AggregateProgressMonitor* _tmp106_ = NULL;
+ ProgressDialog* _tmp108_ = NULL;
+ gchar** _tmp110_ = NULL;
+ gint _tmp110__length1 = 0;
+ LibraryWindow* _tmp114_ = NULL;
+ WelcomeServiceEntry** selected_import_entries = NULL;
+ WelcomeServiceEntry** _tmp115_ = NULL;
+ gint selected_import_entries_length1 = 0;
+ gint _selected_import_entries_size_ = 0;
+ gboolean _tmp116_ = FALSE;
+ ConfigFacade* _tmp117_ = NULL;
+ ConfigFacade* _tmp118_ = NULL;
+ gboolean _tmp119_ = FALSE;
+ gboolean _tmp120_ = FALSE;
+ WelcomeServiceEntry** _tmp134_ = NULL;
+ gint _tmp134__length1 = 0;
+ gboolean _tmp138_ = FALSE;
+ GTimer* _tmp139_ = NULL;
+ gdouble _tmp140_ = 0.0;
+ Application* _tmp141_ = NULL;
+ Application* _tmp142_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0_ = application_get_is_remote ();
+#line 16 "/home/jens/Source/shotwell/src/main.vala"
+ was_already_running = _tmp0_;
+#line 18 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp1_ = was_already_running;
+#line 18 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp1_) {
+#line 802 "main.c"
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 25 "/home/jens/Source/shotwell/src/main.vala"
+ application_present_primary_instance ();
+#line 26 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2_ = mounts;
+#line 26 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2__length1 = mounts_length1;
+#line 26 "/home/jens/Source/shotwell/src/main.vala"
+ application_send_to_primary_instance (_tmp2_, _tmp2__length1);
+#line 27 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 815 "main.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp3_ = app_dirs_get_data_subdir ("data", NULL);
+#line 31 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp4_ = _tmp3_;
+#line 31 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp5_ = g_file_get_child (_tmp4_, "photo.db");
+#line 31 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_ = _tmp5_;
+#line 31 "/home/jens/Source/shotwell/src/main.vala"
+ db_preconfigure (_tmp6_);
+#line 31 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp6_);
+#line 31 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp4_);
+#line 831 "main.c"
+ {
+#line 35 "/home/jens/Source/shotwell/src/main.vala"
+ library_app_init (&_inner_error_);
+#line 35 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 837 "main.c"
+ goto __catch206_g_error;
+ }
+ }
+ goto __finally206;
+ __catch206_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/main.vala"
+ err = _inner_error_;
+#line 34 "/home/jens/Source/shotwell/src/main.vala"
+ _inner_error_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp7_ = err;
+#line 37 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp8_ = _tmp7_->message;
+#line 37 "/home/jens/Source/shotwell/src/main.vala"
+ app_window_panic (_tmp8_);
+#line 39 "/home/jens/Source/shotwell/src/main.vala"
+ _g_error_free0 (err);
+#line 39 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 861 "main.c"
+ }
+ __finally206:
+#line 34 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 34 "/home/jens/Source/shotwell/src/main.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 34 "/home/jens/Source/shotwell/src/main.vala"
+ g_clear_error (&_inner_error_);
+#line 34 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 872 "main.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/main.vala"
+ g_message ("main.vala:43: Verifying database ...");
+#line 44 "/home/jens/Source/shotwell/src/main.vala"
+ errormsg = NULL;
+#line 47 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp11_ = db_verify_database (&_tmp9_, &_tmp10_);
+#line 47 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (app_version);
+#line 47 "/home/jens/Source/shotwell/src/main.vala"
+ app_version = _tmp9_;
+#line 47 "/home/jens/Source/shotwell/src/main.vala"
+ schema_version = _tmp10_;
+#line 47 "/home/jens/Source/shotwell/src/main.vala"
+ _result_ = _tmp11_;
+#line 48 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp12_ = _result_;
+#line 48 "/home/jens/Source/shotwell/src/main.vala"
+ switch (_tmp12_) {
+#line 48 "/home/jens/Source/shotwell/src/main.vala"
+ case DB_VERIFY_RESULT_OK:
+#line 894 "main.c"
+ {
+#line 51 "/home/jens/Source/shotwell/src/main.vala"
+ break;
+#line 898 "main.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/main.vala"
+ case DB_VERIFY_RESULT_FUTURE_VERSION:
+#line 902 "main.c"
+ {
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gchar* _tmp16_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp13_ = _ ("Your photo library is not compatible with this version of Shotwell. I" \
+"t appears it was created by Shotwell %s (schema %d). This version is " \
+"%s (schema %d). Please use the latest version of Shotwell.");
+#line 54 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_ = app_version;
+#line 54 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp15_ = schema_version;
+#line 54 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp16_ = g_strdup_printf (_tmp13_, _tmp14_, _tmp15_, RESOURCES_APP_VERSION, DATABASE_TABLE_SCHEMA_VERSION);
+#line 54 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (errormsg);
+#line 54 "/home/jens/Source/shotwell/src/main.vala"
+ errormsg = _tmp16_;
+#line 56 "/home/jens/Source/shotwell/src/main.vala"
+ break;
+#line 922 "main.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/main.vala"
+ case DB_VERIFY_RESULT_UPGRADE_ERROR:
+#line 926 "main.c"
+ {
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp17_ = _ ("Shotwell was unable to upgrade your photo library from version %s (sch" \
+"ema %d) to %s (schema %d). For more information please check the Shot" \
+"well Wiki at %s");
+#line 59 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_ = app_version;
+#line 59 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp19_ = schema_version;
+#line 59 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp20_ = g_strdup_printf (_tmp17_, _tmp18_, _tmp19_, RESOURCES_APP_VERSION, DATABASE_TABLE_SCHEMA_VERSION, RESOURCES_HOME_URL);
+#line 59 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (errormsg);
+#line 59 "/home/jens/Source/shotwell/src/main.vala"
+ errormsg = _tmp20_;
+#line 62 "/home/jens/Source/shotwell/src/main.vala"
+ break;
+#line 946 "main.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/main.vala"
+ case DB_VERIFY_RESULT_NO_UPGRADE_AVAILABLE:
+#line 950 "main.c"
+ {
+ const gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ GFile* _tmp24_ = NULL;
+ GFile* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_ = _ ("Your photo library is not compatible with this version of Shotwell. I" \
+"t appears it was created by Shotwell %s (schema %d). This version is " \
+"%s (schema %d). Please clear your library by deleting %s and re-impor" \
+"t your photos.");
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp22_ = app_version;
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp23_ = schema_version;
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp24_ = app_dirs_get_data_dir ();
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp25_ = _tmp24_;
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp26_ = g_file_get_path (_tmp25_);
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp27_ = _tmp26_;
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp28_ = g_strdup_printf (_tmp21_, _tmp22_, _tmp23_, RESOURCES_APP_VERSION, DATABASE_TABLE_SCHEMA_VERSION, _tmp27_);
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (errormsg);
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ errormsg = _tmp28_;
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (_tmp27_);
+#line 65 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp25_);
+#line 68 "/home/jens/Source/shotwell/src/main.vala"
+ break;
+#line 986 "main.c"
+ }
+ default:
+ {
+ const gchar* _tmp29_ = NULL;
+ DbVerifyResult _tmp30_ = 0;
+ GEnumValue* _tmp31_;
+ gchar* _tmp32_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp29_ = _ ("Unknown error attempting to verify Shotwell's database: %s");
+#line 71 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp30_ = _result_;
+#line 72 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp31_ = g_enum_get_value (g_type_class_ref (DB_TYPE_VERIFY_RESULT), _tmp30_);
+#line 71 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp32_ = g_strdup_printf (_tmp29_, (_tmp31_ != NULL) ? _tmp31_->value_name : NULL);
+#line 71 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (errormsg);
+#line 71 "/home/jens/Source/shotwell/src/main.vala"
+ errormsg = _tmp32_;
+#line 73 "/home/jens/Source/shotwell/src/main.vala"
+ break;
+#line 1008 "main.c"
+ }
+ }
+#line 76 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp33_ = errormsg;
+#line 76 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp33_ != NULL) {
+#line 1015 "main.c"
+ GtkMessageDialog* dialog = NULL;
+ const gchar* _tmp34_ = NULL;
+ GtkMessageDialog* _tmp35_ = NULL;
+ GtkMessageDialog* _tmp36_ = NULL;
+ GtkMessageDialog* _tmp37_ = NULL;
+ GtkMessageDialog* _tmp38_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp34_ = errormsg;
+#line 77 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp35_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", _tmp34_);
+#line 77 "/home/jens/Source/shotwell/src/main.vala"
+ g_object_ref_sink (_tmp35_);
+#line 77 "/home/jens/Source/shotwell/src/main.vala"
+ dialog = _tmp35_;
+#line 79 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp36_ = dialog;
+#line 79 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_window_get_type (), GtkWindow), RESOURCES_APP_TITLE);
+#line 80 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp37_ = dialog;
+#line 80 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_dialog_get_type (), GtkDialog));
+#line 81 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp38_ = dialog;
+#line 81 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp38_, gtk_widget_get_type (), GtkWidget));
+#line 83 "/home/jens/Source/shotwell/src/main.vala"
+ database_table_terminate ();
+#line 85 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (dialog);
+#line 85 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (app_version);
+#line 85 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (errormsg);
+#line 85 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 1052 "main.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/main.vala"
+ upgrades_init ();
+#line 90 "/home/jens/Source/shotwell/src/main.vala"
+ progress_dialog = NULL;
+#line 91 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_monitor = NULL;
+#line 92 "/home/jens/Source/shotwell/src/main.vala"
+ monitor = NULL;
+#line 92 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target = NULL;
+#line 92 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target_destroy_notify = NULL;
+#line 94 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp39_ = commandline_options_no_startup_progress;
+#line 94 "/home/jens/Source/shotwell/src/main.vala"
+ if (!_tmp39_) {
+#line 1070 "main.c"
+ guint64 grand_total = 0ULL;
+ PhotoTable* _tmp40_ = NULL;
+ PhotoTable* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ EventTable* _tmp43_ = NULL;
+ EventTable* _tmp44_ = NULL;
+ gint _tmp45_ = 0;
+ TagTable* _tmp46_ = NULL;
+ TagTable* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+ VideoTable* _tmp49_ = NULL;
+ VideoTable* _tmp50_ = NULL;
+ gint _tmp51_ = 0;
+ Upgrades* _tmp52_ = NULL;
+ Upgrades* _tmp53_ = NULL;
+ guint64 _tmp54_ = 0ULL;
+ guint64 _tmp55_ = 0ULL;
+ guint64 _tmp56_ = 0ULL;
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp40_ = photo_table_get_instance ();
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp41_ = _tmp40_;
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp42_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, TYPE_DATABASE_TABLE, DatabaseTable));
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp43_ = event_table_get_instance ();
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp44_ = _tmp43_;
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp45_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, TYPE_DATABASE_TABLE, DatabaseTable));
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp46_ = tag_table_get_instance ();
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp47_ = _tmp46_;
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp48_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, TYPE_DATABASE_TABLE, DatabaseTable));
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp49_ = video_table_get_instance ();
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp50_ = _tmp49_;
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp51_ = database_table_get_row_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, TYPE_DATABASE_TABLE, DatabaseTable));
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp52_ = upgrades_get_instance ();
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp53_ = _tmp52_;
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp54_ = upgrades_get_step_count (_tmp53_);
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp55_ = (((_tmp42_ + _tmp45_) + _tmp48_) + _tmp51_) + _tmp54_;
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _upgrades_unref0 (_tmp53_);
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _database_table_unref0 (_tmp50_);
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _database_table_unref0 (_tmp47_);
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _database_table_unref0 (_tmp44_);
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ _database_table_unref0 (_tmp41_);
+#line 98 "/home/jens/Source/shotwell/src/main.vala"
+ grand_total = _tmp55_;
+#line 103 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp56_ = grand_total;
+#line 103 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp56_ > ((guint64) 5000)) {
+#line 1137 "main.c"
+ const gchar* _tmp57_ = NULL;
+ ProgressDialog* _tmp58_ = NULL;
+ ProgressDialog* _tmp59_ = NULL;
+ ProgressDialog* _tmp60_ = NULL;
+ guint64 _tmp75_ = 0ULL;
+ ProgressDialog* _tmp76_ = NULL;
+ AggregateProgressMonitor* _tmp77_ = NULL;
+ AggregateProgressMonitor* _tmp78_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp57_ = _ ("Loading Shotwell");
+#line 104 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp58_ = progress_dialog_new (NULL, _tmp57_, NULL);
+#line 104 "/home/jens/Source/shotwell/src/main.vala"
+ g_object_ref_sink (_tmp58_);
+#line 104 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (progress_dialog);
+#line 104 "/home/jens/Source/shotwell/src/main.vala"
+ progress_dialog = _tmp58_;
+#line 105 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp59_ = progress_dialog;
+#line 105 "/home/jens/Source/shotwell/src/main.vala"
+ progress_dialog_update_display_every (_tmp59_, 100);
+#line 106 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp60_ = progress_dialog;
+#line 106 "/home/jens/Source/shotwell/src/main.vala"
+ progress_dialog_set_minimum_on_screen_time_msec (_tmp60_, 250);
+#line 1164 "main.c"
+ {
+ gchar* icon_path = NULL;
+ GFile* _tmp61_ = NULL;
+ GFile* _tmp62_ = NULL;
+ GFile* _tmp63_ = NULL;
+ GFile* _tmp64_ = NULL;
+ GFile* _tmp65_ = NULL;
+ GFile* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ GdkPixbuf* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ GdkPixbuf* _tmp71_ = NULL;
+ ProgressDialog* _tmp72_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp61_ = app_dirs_get_resources_dir ();
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp62_ = _tmp61_;
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp63_ = g_file_get_child (_tmp62_, "icons");
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp64_ = _tmp63_;
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp65_ = g_file_get_child (_tmp64_, "shotwell.svg");
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp66_ = _tmp65_;
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp67_ = g_file_get_path (_tmp66_);
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp68_ = _tmp67_;
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp66_);
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp64_);
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp62_);
+#line 108 "/home/jens/Source/shotwell/src/main.vala"
+ icon_path = _tmp68_;
+#line 109 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp70_ = icon_path;
+#line 109 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp71_ = gdk_pixbuf_new_from_file (_tmp70_, &_inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp69_ = _tmp71_;
+#line 109 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 109 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (icon_path);
+#line 1213 "main.c"
+ goto __catch207_g_error;
+ }
+#line 109 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp72_ = progress_dialog;
+#line 109 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_window_set_icon (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, gtk_window_get_type (), GtkWindow), _tmp69_);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp69_);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (icon_path);
+#line 1224 "main.c"
+ }
+ goto __finally207;
+ __catch207_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ err = _inner_error_;
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _inner_error_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp73_ = err;
+#line 111 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp74_ = _tmp73_->message;
+#line 111 "/home/jens/Source/shotwell/src/main.vala"
+ g_debug ("main.vala:111: Warning - could not load application icon for loading w" \
+"indow: %s", _tmp74_);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _g_error_free0 (err);
+#line 1244 "main.c"
+ }
+ __finally207:
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ monitor = NULL;
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target = NULL;
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target_destroy_notify = NULL;
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _aggregate_progress_monitor_unref0 (aggregate_monitor);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (progress_dialog);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (app_version);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (errormsg);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ g_clear_error (&_inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 1271 "main.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp75_ = grand_total;
+#line 114 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp76_ = progress_dialog;
+#line 114 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp77_ = aggregate_progress_monitor_new (_tmp75_, _progress_dialog_monitor_progress_monitor, _tmp76_);
+#line 114 "/home/jens/Source/shotwell/src/main.vala"
+ _aggregate_progress_monitor_unref0 (aggregate_monitor);
+#line 114 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_monitor = _tmp77_;
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp78_ = aggregate_monitor;
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ monitor = NULL;
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target = NULL;
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target_destroy_notify = NULL;
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ monitor = _aggregate_progress_monitor_monitor_progress_monitor;
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target = aggregate_progress_monitor_ref (_tmp78_);
+#line 115 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target_destroy_notify = aggregate_progress_monitor_unref;
+#line 1299 "main.c"
+ }
+ }
+#line 119 "/home/jens/Source/shotwell/src/main.vala"
+ thumbnail_cache_init ();
+#line 120 "/home/jens/Source/shotwell/src/main.vala"
+ tombstone_init ();
+#line 122 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp79_ = aggregate_monitor;
+#line 122 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp79_ != NULL) {
+#line 1310 "main.c"
+ AggregateProgressMonitor* _tmp80_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp80_ = aggregate_monitor;
+#line 123 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_progress_monitor_next_step (_tmp80_, "LibraryPhoto.init");
+#line 1316 "main.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp81_ = monitor;
+#line 124 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp81__target = monitor_target;
+#line 124 "/home/jens/Source/shotwell/src/main.vala"
+ library_photo_init (_tmp81_, _tmp81__target);
+#line 125 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp82_ = aggregate_monitor;
+#line 125 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp82_ != NULL) {
+#line 1328 "main.c"
+ AggregateProgressMonitor* _tmp83_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp83_ = aggregate_monitor;
+#line 126 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_progress_monitor_next_step (_tmp83_, "Video.init");
+#line 1334 "main.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp84_ = monitor;
+#line 127 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp84__target = monitor_target;
+#line 127 "/home/jens/Source/shotwell/src/main.vala"
+ video_init (_tmp84_, _tmp84__target);
+#line 128 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp85_ = aggregate_monitor;
+#line 128 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp85_ != NULL) {
+#line 1346 "main.c"
+ AggregateProgressMonitor* _tmp86_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp86_ = aggregate_monitor;
+#line 129 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_progress_monitor_next_step (_tmp86_, "Upgrades.execute");
+#line 1352 "main.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp87_ = upgrades_get_instance ();
+#line 130 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp88_ = _tmp87_;
+#line 130 "/home/jens/Source/shotwell/src/main.vala"
+ upgrades_execute (_tmp88_, NULL, NULL);
+#line 130 "/home/jens/Source/shotwell/src/main.vala"
+ _upgrades_unref0 (_tmp88_);
+#line 132 "/home/jens/Source/shotwell/src/main.vala"
+ library_monitor_pool_init ();
+#line 133 "/home/jens/Source/shotwell/src/main.vala"
+ media_collection_registry_init ();
+#line 134 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp89_ = media_collection_registry_get_instance ();
+#line 134 "/home/jens/Source/shotwell/src/main.vala"
+ registry = _tmp89_;
+#line 135 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp90_ = registry;
+#line 135 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp91_ = library_photo_global;
+#line 135 "/home/jens/Source/shotwell/src/main.vala"
+ media_collection_registry_register_collection (_tmp90_, G_TYPE_CHECK_INSTANCE_CAST (_tmp91_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 136 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp92_ = registry;
+#line 136 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp93_ = video_global;
+#line 136 "/home/jens/Source/shotwell/src/main.vala"
+ media_collection_registry_register_collection (_tmp92_, G_TYPE_CHECK_INSTANCE_CAST (_tmp93_, TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection));
+#line 138 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp94_ = aggregate_monitor;
+#line 138 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp94_ != NULL) {
+#line 1386 "main.c"
+ AggregateProgressMonitor* _tmp95_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp95_ = aggregate_monitor;
+#line 139 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_progress_monitor_next_step (_tmp95_, "Event.init");
+#line 1392 "main.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp96_ = monitor;
+#line 140 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp96__target = monitor_target;
+#line 140 "/home/jens/Source/shotwell/src/main.vala"
+ event_init (_tmp96_, _tmp96__target);
+#line 141 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp97_ = aggregate_monitor;
+#line 141 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp97_ != NULL) {
+#line 1404 "main.c"
+ AggregateProgressMonitor* _tmp98_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp98_ = aggregate_monitor;
+#line 142 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_progress_monitor_next_step (_tmp98_, "Tag.init");
+#line 1410 "main.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp99_ = monitor;
+#line 143 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp99__target = monitor_target;
+#line 143 "/home/jens/Source/shotwell/src/main.vala"
+ tag_init (_tmp99_, _tmp99__target);
+#line 145 "/home/jens/Source/shotwell/src/main.vala"
+ metadata_writer_init ();
+#line 146 "/home/jens/Source/shotwell/src/main.vala"
+ desktop_integration_init ();
+#line 148 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp100_ = application_get_instance ();
+#line 148 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp101_ = _tmp100_;
+#line 148 "/home/jens/Source/shotwell/src/main.vala"
+ g_signal_emit_by_name (_tmp101_, "init-done");
+#line 148 "/home/jens/Source/shotwell/src/main.vala"
+ _application_unref0 (_tmp101_);
+#line 151 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp102_ = aggregate_monitor;
+#line 151 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp102_ != NULL) {
+#line 1434 "main.c"
+ AggregateProgressMonitor* _tmp103_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp103_ = aggregate_monitor;
+#line 152 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_progress_monitor_next_step (_tmp103_, "LibraryWindow");
+#line 1440 "main.c"
+ }
+#line 153 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp104_ = monitor;
+#line 153 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp104__target = monitor_target;
+#line 153 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp105_ = library_window_new (_tmp104_, _tmp104__target);
+#line 153 "/home/jens/Source/shotwell/src/main.vala"
+ g_object_ref_sink (_tmp105_);
+#line 153 "/home/jens/Source/shotwell/src/main.vala"
+ library_window = _tmp105_;
+#line 155 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp106_ = aggregate_monitor;
+#line 155 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp106_ != NULL) {
+#line 1456 "main.c"
+ AggregateProgressMonitor* _tmp107_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp107_ = aggregate_monitor;
+#line 156 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_progress_monitor_next_step (_tmp107_, "done");
+#line 1462 "main.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/main.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 161 "/home/jens/Source/shotwell/src/main.vala"
+ monitor = NULL;
+#line 161 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target = NULL;
+#line 161 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target_destroy_notify = NULL;
+#line 161 "/home/jens/Source/shotwell/src/main.vala"
+ monitor = NULL;
+#line 161 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target = NULL;
+#line 161 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target_destroy_notify = NULL;
+#line 162 "/home/jens/Source/shotwell/src/main.vala"
+ _aggregate_progress_monitor_unref0 (aggregate_monitor);
+#line 162 "/home/jens/Source/shotwell/src/main.vala"
+ aggregate_monitor = NULL;
+#line 163 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp108_ = progress_dialog;
+#line 163 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp108_ != NULL) {
+#line 1486 "main.c"
+ ProgressDialog* _tmp109_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp109_ = progress_dialog;
+#line 164 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, gtk_widget_get_type (), GtkWidget));
+#line 1492 "main.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (progress_dialog);
+#line 165 "/home/jens/Source/shotwell/src/main.vala"
+ progress_dialog = NULL;
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp110_ = mounts;
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp110__length1 = mounts_length1;
+#line 1502 "main.c"
+ {
+ gchar** mount_collection = NULL;
+ gint mount_collection_length1 = 0;
+ gint _mount_collection_size_ = 0;
+ gint mount_it = 0;
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ mount_collection = _tmp110_;
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ mount_collection_length1 = _tmp110__length1;
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ for (mount_it = 0; mount_it < _tmp110__length1; mount_it = mount_it + 1) {
+#line 1514 "main.c"
+ gchar* _tmp111_ = NULL;
+ gchar* mount = NULL;
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp111_ = g_strdup (mount_collection[mount_it]);
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ mount = _tmp111_;
+#line 1521 "main.c"
+ {
+ LibraryWindow* _tmp112_ = NULL;
+ const gchar* _tmp113_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp112_ = library_window;
+#line 169 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp113_ = mount;
+#line 169 "/home/jens/Source/shotwell/src/main.vala"
+ library_window_mounted_camera_shell_notification (_tmp112_, _tmp113_, TRUE);
+#line 168 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (mount);
+#line 1533 "main.c"
+ }
+ }
+ }
+#line 171 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp114_ = library_window;
+#line 171 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp114_, gtk_widget_get_type (), GtkWidget));
+#line 173 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp115_ = g_new0 (WelcomeServiceEntry*, 0 + 1);
+#line 173 "/home/jens/Source/shotwell/src/main.vala"
+ selected_import_entries = _tmp115_;
+#line 173 "/home/jens/Source/shotwell/src/main.vala"
+ selected_import_entries_length1 = 0;
+#line 173 "/home/jens/Source/shotwell/src/main.vala"
+ _selected_import_entries_size_ = selected_import_entries_length1;
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp117_ = config_facade_get_instance ();
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp118_ = _tmp117_;
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp119_ = configuration_facade_get_show_welcome_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp118_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp120_ = _tmp119_;
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp118_);
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp120_) {
+#line 1561 "main.c"
+ LibraryPhotoSourceCollection* _tmp121_ = NULL;
+ gint _tmp122_ = 0;
+#line 175 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp121_ = library_photo_global;
+#line 175 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp122_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp121_, TYPE_DATA_COLLECTION, DataCollection));
+#line 175 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp116_ = _tmp122_ == 0;
+#line 1570 "main.c"
+ } else {
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp116_ = FALSE;
+#line 1574 "main.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp116_) {
+#line 1578 "main.c"
+ WelcomeDialog* welcome = NULL;
+ LibraryWindow* _tmp123_ = NULL;
+ WelcomeDialog* _tmp124_ = NULL;
+ ConfigFacade* _tmp125_ = NULL;
+ ConfigFacade* _tmp126_ = NULL;
+ WelcomeDialog* _tmp127_ = NULL;
+ WelcomeServiceEntry** _tmp128_ = NULL;
+ gint _tmp129_ = 0;
+ gboolean _tmp130_ = FALSE;
+ gboolean _tmp131_ = FALSE;
+#line 176 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp123_ = library_window;
+#line 176 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp124_ = welcome_dialog_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp123_, gtk_window_get_type (), GtkWindow));
+#line 176 "/home/jens/Source/shotwell/src/main.vala"
+ g_object_ref_sink (_tmp124_);
+#line 176 "/home/jens/Source/shotwell/src/main.vala"
+ welcome = _tmp124_;
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp125_ = config_facade_get_instance ();
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp126_ = _tmp125_;
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp127_ = welcome;
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp131_ = welcome_dialog_execute (_tmp127_, &_tmp128_, &_tmp129_, &_tmp130_);
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ selected_import_entries = (_vala_array_free (selected_import_entries, selected_import_entries_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ selected_import_entries = _tmp128_;
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ selected_import_entries_length1 = _tmp129_;
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ _selected_import_entries_size_ = selected_import_entries_length1;
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ do_system_pictures_import = _tmp130_;
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ configuration_facade_set_show_welcome_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp126_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp131_);
+#line 177 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp126_);
+#line 174 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (welcome);
+#line 1621 "main.c"
+ } else {
+ ConfigFacade* _tmp132_ = NULL;
+ ConfigFacade* _tmp133_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp132_ = config_facade_get_instance ();
+#line 180 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp133_ = _tmp132_;
+#line 180 "/home/jens/Source/shotwell/src/main.vala"
+ configuration_facade_set_show_welcome_dialog (G_TYPE_CHECK_INSTANCE_CAST (_tmp133_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), FALSE);
+#line 180 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp133_);
+#line 1633 "main.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp134_ = selected_import_entries;
+#line 183 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp134__length1 = selected_import_entries_length1;
+#line 183 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp134__length1 > 0) {
+#line 1641 "main.c"
+ WelcomeServiceEntry** _tmp135_ = NULL;
+ gint _tmp135__length1 = 0;
+#line 184 "/home/jens/Source/shotwell/src/main.vala"
+ do_external_import = TRUE;
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp135_ = selected_import_entries;
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp135__length1 = selected_import_entries_length1;
+#line 1650 "main.c"
+ {
+ WelcomeServiceEntry** entry_collection = NULL;
+ gint entry_collection_length1 = 0;
+ gint _entry_collection_size_ = 0;
+ gint entry_it = 0;
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ entry_collection = _tmp135_;
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ entry_collection_length1 = _tmp135__length1;
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ for (entry_it = 0; entry_it < _tmp135__length1; entry_it = entry_it + 1) {
+#line 1662 "main.c"
+ WelcomeServiceEntry* _tmp136_ = NULL;
+ WelcomeServiceEntry* entry = NULL;
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp136_ = _g_object_ref0 (entry_collection[entry_it]);
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ entry = _tmp136_;
+#line 1669 "main.c"
+ {
+ WelcomeServiceEntry* _tmp137_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp137_ = entry;
+#line 186 "/home/jens/Source/shotwell/src/main.vala"
+ welcome_service_entry_execute (_tmp137_);
+#line 185 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (entry);
+#line 1678 "main.c"
+ }
+ }
+ }
+ }
+#line 188 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp138_ = do_system_pictures_import;
+#line 188 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp138_) {
+#line 192 "/home/jens/Source/shotwell/src/main.vala"
+ run_system_pictures_import (NULL);
+#line 1689 "main.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp139_ = startup_timer;
+#line 195 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp140_ = g_timer_elapsed (_tmp139_, NULL);
+#line 195 "/home/jens/Source/shotwell/src/main.vala"
+ g_debug ("main.vala:195: %lf seconds to Gtk.main()", _tmp140_);
+#line 197 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp141_ = application_get_instance ();
+#line 197 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp142_ = _tmp141_;
+#line 197 "/home/jens/Source/shotwell/src/main.vala"
+ application_start (_tmp142_, NULL, 0);
+#line 197 "/home/jens/Source/shotwell/src/main.vala"
+ _application_unref0 (_tmp142_);
+#line 199 "/home/jens/Source/shotwell/src/main.vala"
+ desktop_integration_terminate ();
+#line 200 "/home/jens/Source/shotwell/src/main.vala"
+ metadata_writer_terminate ();
+#line 201 "/home/jens/Source/shotwell/src/main.vala"
+ tag_terminate ();
+#line 202 "/home/jens/Source/shotwell/src/main.vala"
+ event_terminate ();
+#line 203 "/home/jens/Source/shotwell/src/main.vala"
+ library_photo_terminate ();
+#line 204 "/home/jens/Source/shotwell/src/main.vala"
+ media_collection_registry_terminate ();
+#line 205 "/home/jens/Source/shotwell/src/main.vala"
+ library_monitor_pool_terminate ();
+#line 206 "/home/jens/Source/shotwell/src/main.vala"
+ tombstone_terminate ();
+#line 207 "/home/jens/Source/shotwell/src/main.vala"
+ thumbnail_cache_terminate ();
+#line 208 "/home/jens/Source/shotwell/src/main.vala"
+ video_terminate ();
+#line 209 "/home/jens/Source/shotwell/src/main.vala"
+ library_app_terminate ();
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ selected_import_entries = (_vala_array_free (selected_import_entries, selected_import_entries_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (library_window);
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ _media_collection_registry_unref0 (registry);
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ (monitor_target_destroy_notify == NULL) ? NULL : (monitor_target_destroy_notify (monitor_target), NULL);
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ monitor = NULL;
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target = NULL;
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ monitor_target_destroy_notify = NULL;
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ _aggregate_progress_monitor_unref0 (aggregate_monitor);
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (progress_dialog);
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (app_version);
+#line 15 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (errormsg);
+#line 1749 "main.c"
+}
+
+
+static void _report_system_pictures_import_batch_import_import_reporter (ImportManifest* manifest, BatchImportRoll* import_roll, gpointer self) {
+#line 224 "/home/jens/Source/shotwell/src/main.vala"
+ report_system_pictures_import (manifest, import_roll);
+#line 1756 "main.c"
+}
+
+
+void run_system_pictures_import (ImportManifest* external_exclusion_manifest) {
+ gboolean _tmp0_ = FALSE;
+ GeeArrayList* jobs = NULL;
+ GeeArrayList* _tmp1_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ FileImportJob* _tmp5_ = NULL;
+ FileImportJob* _tmp6_ = NULL;
+ LibraryWindow* library_window = NULL;
+ AppWindow* _tmp7_ = NULL;
+ BatchImport* batch_import = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ ImportManifest* _tmp9_ = NULL;
+ BatchImport* _tmp10_ = NULL;
+ LibraryWindow* _tmp11_ = NULL;
+ BatchImport* _tmp12_ = NULL;
+ LibraryWindow* _tmp13_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/main.vala"
+ g_return_if_fail ((external_exclusion_manifest == NULL) || IS_IMPORT_MANIFEST (external_exclusion_manifest));
+#line 216 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0_ = do_system_pictures_import;
+#line 216 "/home/jens/Source/shotwell/src/main.vala"
+ if (!_tmp0_) {
+#line 217 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 1786 "main.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp1_ = gee_array_list_new (TYPE_FILE_IMPORT_JOB, (GBoxedCopyFunc) batch_import_job_ref, batch_import_job_unref, NULL, NULL, NULL);
+#line 219 "/home/jens/Source/shotwell/src/main.vala"
+ jobs = _tmp1_;
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2_ = jobs;
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp3_ = app_dirs_get_import_dir ();
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp4_ = _tmp3_;
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp5_ = file_import_job_new (_tmp4_, FALSE);
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_ = _tmp5_;
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp6_);
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ _batch_import_job_unref0 (_tmp6_);
+#line 220 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp4_);
+#line 222 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp7_ = app_window_get_instance ();
+#line 222 "/home/jens/Source/shotwell/src/main.vala"
+ library_window = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_LIBRARY_WINDOW, LibraryWindow);
+#line 224 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp8_ = jobs;
+#line 224 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp9_ = external_exclusion_manifest;
+#line 224 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_ = batch_import_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable), "startup_import", _report_system_pictures_import_batch_import_import_reporter, NULL, NULL, NULL, NULL, NULL, _tmp9_);
+#line 224 "/home/jens/Source/shotwell/src/main.vala"
+ batch_import = _tmp10_;
+#line 226 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp11_ = library_window;
+#line 226 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp12_ = batch_import;
+#line 226 "/home/jens/Source/shotwell/src/main.vala"
+ library_window_enqueue_batch_import (_tmp11_, _tmp12_, TRUE);
+#line 228 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp13_ = library_window;
+#line 228 "/home/jens/Source/shotwell/src/main.vala"
+ library_window_switch_to_import_queue_page (_tmp13_);
+#line 215 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (batch_import);
+#line 215 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (library_window);
+#line 215 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (jobs);
+#line 1836 "main.c"
+}
+
+
+void report_system_pictures_import (ImportManifest* manifest, BatchImportRoll* import_roll) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ ImportManifest* _tmp6_ = NULL;
+#line 231 "/home/jens/Source/shotwell/src/main.vala"
+ g_return_if_fail (IS_IMPORT_MANIFEST (manifest));
+#line 231 "/home/jens/Source/shotwell/src/main.vala"
+ g_return_if_fail (IS_BATCH_IMPORT_ROLL (import_roll));
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp1_ = do_external_import;
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp1_) {
+#line 1852 "main.c"
+ ImportManifest* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2_ = manifest;
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp3_ = _tmp2_->all;
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp5_ = _tmp4_;
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0_ = _tmp5_ == 0;
+#line 1867 "main.c"
+ } else {
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0_ = FALSE;
+#line 1871 "main.c"
+ }
+#line 238 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp0_) {
+#line 239 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 1877 "main.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_ = manifest;
+#line 241 "/home/jens/Source/shotwell/src/main.vala"
+ import_ui_report_manifest (_tmp6_, TRUE, NULL);
+#line 1883 "main.c"
+}
+
+
+void editing_exec (const gchar* filename) {
+ GFile* initial_file = NULL;
+ const gchar* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ DirectWindow* direct_window = NULL;
+ GFile* _tmp5_ = NULL;
+ DirectWindow* _tmp6_ = NULL;
+ DirectWindow* _tmp7_ = NULL;
+ GTimer* _tmp8_ = NULL;
+ gdouble _tmp9_ = 0.0;
+ Application* _tmp10_ = NULL;
+ Application* _tmp11_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/main.vala"
+ g_return_if_fail (filename != NULL);
+#line 245 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0_ = filename;
+#line 245 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp1_ = g_file_new_for_commandline_arg (_tmp0_);
+#line 245 "/home/jens/Source/shotwell/src/main.vala"
+ initial_file = _tmp1_;
+#line 248 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2_ = initial_file;
+#line 248 "/home/jens/Source/shotwell/src/main.vala"
+ direct_preconfigure (_tmp2_);
+#line 249 "/home/jens/Source/shotwell/src/main.vala"
+ db_preconfigure (NULL);
+#line 1915 "main.c"
+ {
+#line 253 "/home/jens/Source/shotwell/src/main.vala"
+ direct_app_init (&_inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1921 "main.c"
+ goto __catch208_g_error;
+ }
+ }
+ goto __finally208;
+ __catch208_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 252 "/home/jens/Source/shotwell/src/main.vala"
+ err = _inner_error_;
+#line 252 "/home/jens/Source/shotwell/src/main.vala"
+ _inner_error_ = NULL;
+#line 255 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp3_ = err;
+#line 255 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp4_ = _tmp3_->message;
+#line 255 "/home/jens/Source/shotwell/src/main.vala"
+ app_window_panic (_tmp4_);
+#line 257 "/home/jens/Source/shotwell/src/main.vala"
+ _g_error_free0 (err);
+#line 257 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (initial_file);
+#line 257 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 1947 "main.c"
+ }
+ __finally208:
+#line 252 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 252 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (initial_file);
+#line 252 "/home/jens/Source/shotwell/src/main.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 252 "/home/jens/Source/shotwell/src/main.vala"
+ g_clear_error (&_inner_error_);
+#line 252 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 1960 "main.c"
+ }
+#line 261 "/home/jens/Source/shotwell/src/main.vala"
+ desktop_integration_init ();
+#line 267 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp5_ = initial_file;
+#line 267 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_ = direct_window_new (_tmp5_);
+#line 267 "/home/jens/Source/shotwell/src/main.vala"
+ g_object_ref_sink (_tmp6_);
+#line 267 "/home/jens/Source/shotwell/src/main.vala"
+ direct_window = _tmp6_;
+#line 268 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp7_ = direct_window;
+#line 268 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 270 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp8_ = startup_timer;
+#line 270 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp9_ = g_timer_elapsed (_tmp8_, NULL);
+#line 270 "/home/jens/Source/shotwell/src/main.vala"
+ g_debug ("main.vala:270: %lf seconds to Gtk.main()", _tmp9_);
+#line 272 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_ = application_get_instance ();
+#line 272 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp11_ = _tmp10_;
+#line 272 "/home/jens/Source/shotwell/src/main.vala"
+ application_start (_tmp11_, NULL, 0);
+#line 272 "/home/jens/Source/shotwell/src/main.vala"
+ _application_unref0 (_tmp11_);
+#line 274 "/home/jens/Source/shotwell/src/main.vala"
+ desktop_integration_terminate ();
+#line 277 "/home/jens/Source/shotwell/src/main.vala"
+ direct_app_terminate ();
+#line 244 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (direct_window);
+#line 244 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (initial_file);
+#line 1998 "main.c"
+}
+
+
+static GOptionEntry* _vala_array_dup26 (GOptionEntry* self, int length) {
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ return g_memdup (self, length * sizeof (GOptionEntry));
+#line 2005 "main.c"
+}
+
+
+static void _vala_array_add152 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value) {
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ if ((*length) == (*size)) {
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ *array = g_renew (GOptionEntry, *array, *size);
+#line 2016 "main.c"
+ }
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ (*array)[(*length)++] = *value;
+#line 2020 "main.c"
+}
+
+
+static void _vala_array_add153 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value) {
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ if ((*length) == (*size)) {
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ *array = g_renew (GOptionEntry, *array, *size);
+#line 2031 "main.c"
+ }
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ (*array)[(*length)++] = *value;
+#line 2035 "main.c"
+}
+
+
+static void _vala_array_add154 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value) {
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ if ((*length) == (*size)) {
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ *array = g_renew (GOptionEntry, *array, *size);
+#line 2046 "main.c"
+ }
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ (*array)[(*length)++] = *value;
+#line 2050 "main.c"
+}
+
+
+static void _vala_array_add155 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value) {
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ if ((*length) == (*size)) {
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ *array = g_renew (GOptionEntry, *array, *size);
+#line 2061 "main.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ (*array)[(*length)++] = *value;
+#line 2065 "main.c"
+}
+
+
+static void _vala_array_add156 (GOptionEntry** array, int* length, int* size, const GOptionEntry* value) {
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ if ((*length) == (*size)) {
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ *array = g_renew (GOptionEntry, *array, *size);
+#line 2076 "main.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ (*array)[(*length)++] = *value;
+#line 2080 "main.c"
+}
+
+
+static GOptionEntry* _vala_array_dup27 (GOptionEntry* self, int length) {
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ return g_memdup (self, length * sizeof (GOptionEntry));
+#line 2087 "main.c"
+}
+
+
+GOptionEntry* commandline_options_get_options (int* result_length1) {
+ GOptionEntry* result = NULL;
+ GOptionEntry* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ GOptionEntry datadir = {0};
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GOptionEntry _tmp6_ = {0};
+ GOptionEntry* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ GOptionEntry _tmp8_ = {0};
+ GOptionEntry no_monitoring = {0};
+ const gchar* _tmp9_ = NULL;
+ GOptionEntry _tmp10_ = {0};
+ GOptionEntry* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ GOptionEntry _tmp12_ = {0};
+ GOptionEntry no_startup = {0};
+ const gchar* _tmp13_ = NULL;
+ GOptionEntry _tmp14_ = {0};
+ GOptionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GOptionEntry _tmp16_ = {0};
+ GOptionEntry version = {0};
+ const gchar* _tmp17_ = NULL;
+ GOptionEntry _tmp18_ = {0};
+ GOptionEntry* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ GOptionEntry _tmp20_ = {0};
+ GOptionEntry terminator = {0};
+ GOptionEntry _tmp21_ = {0};
+ GOptionEntry* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ GOptionEntry _tmp23_ = {0};
+ GOptionEntry* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ GOptionEntry* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ GOptionEntry* _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+#line 290 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0_ = commandline_options_entries;
+#line 290 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0__length1 = commandline_options_entries_length1;
+#line 290 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp0_ != NULL) {
+#line 2137 "main.c"
+ GOptionEntry* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ GOptionEntry* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ GOptionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp1_ = commandline_options_entries;
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp1__length1 = commandline_options_entries_length1;
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2_ = (_tmp1_ != NULL) ? _vala_array_dup26 (_tmp1_, _tmp1__length1) : ((gpointer) _tmp1_);
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp3_ = _tmp2_;
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp3__length1 = _tmp2__length1;
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ if (result_length1) {
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ *result_length1 = _tmp3__length1;
+#line 2160 "main.c"
+ }
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ result = _tmp3_;
+#line 291 "/home/jens/Source/shotwell/src/main.vala"
+ return result;
+#line 2166 "main.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp4_ = _ ("Path to Shotwell's private data");
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp5_ = _ ("DIRECTORY");
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_.long_name = "datadir";
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_.short_name = 'd';
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_.flags = 0;
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_.arg = G_OPTION_ARG_FILENAME;
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_.arg_data = &commandline_options_data_dir;
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_.description = _tmp4_;
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_.arg_description = _tmp5_;
+#line 293 "/home/jens/Source/shotwell/src/main.vala"
+ datadir = _tmp6_;
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp7_ = commandline_options_entries;
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp7__length1 = commandline_options_entries_length1;
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp8_ = datadir;
+#line 295 "/home/jens/Source/shotwell/src/main.vala"
+ _vala_array_add152 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp8_);
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp9_ = _ ("Do not monitor library directory at runtime for changes");
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_.long_name = "no-runtime-monitoring";
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_.short_name = (gchar) 0;
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_.flags = 0;
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_.arg = G_OPTION_ARG_NONE;
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_.arg_data = &commandline_options_no_runtime_monitoring;
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_.description = _tmp9_;
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_.arg_description = NULL;
+#line 297 "/home/jens/Source/shotwell/src/main.vala"
+ no_monitoring = _tmp10_;
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp11_ = commandline_options_entries;
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp11__length1 = commandline_options_entries_length1;
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp12_ = no_monitoring;
+#line 299 "/home/jens/Source/shotwell/src/main.vala"
+ _vala_array_add153 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp12_);
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp13_ = _ ("Don't display startup progress meter");
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_.long_name = "no-startup-progress";
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_.short_name = (gchar) 0;
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_.flags = 0;
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_.arg = G_OPTION_ARG_NONE;
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_.arg_data = &commandline_options_no_startup_progress;
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_.description = _tmp13_;
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_.arg_description = NULL;
+#line 301 "/home/jens/Source/shotwell/src/main.vala"
+ no_startup = _tmp14_;
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp15_ = commandline_options_entries;
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp15__length1 = commandline_options_entries_length1;
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp16_ = no_startup;
+#line 303 "/home/jens/Source/shotwell/src/main.vala"
+ _vala_array_add154 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp16_);
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp17_ = _ ("Show the application's version");
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_.long_name = "version";
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_.short_name = 'V';
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_.flags = 0;
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_.arg = G_OPTION_ARG_NONE;
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_.arg_data = &commandline_options_show_version;
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_.description = _tmp17_;
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_.arg_description = NULL;
+#line 305 "/home/jens/Source/shotwell/src/main.vala"
+ version = _tmp18_;
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp19_ = commandline_options_entries;
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp19__length1 = commandline_options_entries_length1;
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp20_ = version;
+#line 307 "/home/jens/Source/shotwell/src/main.vala"
+ _vala_array_add155 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp20_);
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_.long_name = NULL;
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_.short_name = (gchar) 0;
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_.flags = 0;
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_.arg = 0;
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_.arg_data = NULL;
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_.description = NULL;
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_.arg_description = NULL;
+#line 309 "/home/jens/Source/shotwell/src/main.vala"
+ terminator = _tmp21_;
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp22_ = commandline_options_entries;
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp22__length1 = commandline_options_entries_length1;
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp23_ = terminator;
+#line 310 "/home/jens/Source/shotwell/src/main.vala"
+ _vala_array_add156 (&commandline_options_entries, &commandline_options_entries_length1, &_commandline_options_entries_size_, &_tmp23_);
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp24_ = commandline_options_entries;
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp24__length1 = commandline_options_entries_length1;
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp25_ = (_tmp24_ != NULL) ? _vala_array_dup27 (_tmp24_, _tmp24__length1) : ((gpointer) _tmp24_);
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp25__length1 = _tmp24__length1;
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp26_ = _tmp25_;
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp26__length1 = _tmp25__length1;
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ if (result_length1) {
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ *result_length1 = _tmp26__length1;
+#line 2314 "main.c"
+ }
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ result = _tmp26_;
+#line 312 "/home/jens/Source/shotwell/src/main.vala"
+ return result;
+#line 2320 "main.c"
+}
+
+
+static void _vala_array_add157 (gchar*** array, int* length, int* size, gchar* value) {
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ if ((*length) == (*size)) {
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 2331 "main.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ (*array)[(*length)++] = value;
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ (*array)[*length] = NULL;
+#line 2337 "main.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2357 "main.c"
+}
+
+
+void _vala_main (gchar** args, int args_length1) {
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp22_ = FALSE;
+ gchar** mounts = NULL;
+ gchar** _tmp23_ = NULL;
+ gint mounts_length1 = 0;
+ gint _mounts_size_ = 0;
+ gchar* filename = NULL;
+ const gchar* _tmp44_ = NULL;
+ const gchar* _tmp45_ = NULL;
+ gboolean _tmp46_ = FALSE;
+ const gchar* _tmp53_ = NULL;
+ gboolean _tmp54_ = FALSE;
+ const gchar* _tmp55_ = NULL;
+ gchar** _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ GTimer* _tmp58_ = NULL;
+ GTimer* _tmp59_ = NULL;
+ const gchar* _tmp60_ = NULL;
+ gboolean _tmp61_ = FALSE;
+ gboolean _tmp64_ = FALSE;
+ const gchar* _tmp65_ = NULL;
+ gboolean _tmp66_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 320 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0_ = args;
+#line 320 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp0__length1 = args_length1;
+#line 320 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp1_ = _tmp0_[0];
+#line 320 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_init (_tmp1_);
+#line 325 "/home/jens/Source/shotwell/src/main.vala"
+ gexiv2_initialize ();
+#line 331 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp2_ = app_dirs_get_install_dir ();
+#line 331 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp3_ = _tmp2_;
+#line 331 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp4_ = _tmp3_ == NULL;
+#line 331 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp3_);
+#line 331 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp4_) {
+#line 2410 "main.c"
+ GFile* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp5_ = app_dirs_get_exec_dir ();
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp6_ = _tmp5_;
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp8_ = _tmp7_;
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp9_ = g_strconcat (_tmp8_, "/misc", NULL);
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp10_ = _tmp9_;
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ g_setenv ("GSETTINGS_SCHEMA_DIR", _tmp10_, TRUE);
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (_tmp10_);
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (_tmp8_);
+#line 332 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp6_);
+#line 2437 "main.c"
+ }
+ {
+ const gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ GOptionEntry* _tmp13_ = NULL;
+ GOptionEntry* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+#line 338 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp11_ = _ ("[FILE]");
+#line 338 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp13_ = commandline_options_get_options (&_tmp12_);
+#line 338 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_ = _tmp13_;
+#line 338 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14__length1 = _tmp12_;
+#line 338 "/home/jens/Source/shotwell/src/main.vala"
+ gtk_init_with_args (&args_length1, &args, _tmp11_, _tmp14_, RESOURCES_APP_GETTEXT_PACKAGE, &_inner_error_);
+#line 338 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp14_ = (g_free (_tmp14_), NULL);
+#line 338 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 2459 "main.c"
+ goto __catch209_g_error;
+ }
+ }
+ goto __finally209;
+ __catch209_g_error:
+ {
+ GError* e = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ const gchar* _tmp21_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/main.vala"
+ e = _inner_error_;
+#line 337 "/home/jens/Source/shotwell/src/main.vala"
+ _inner_error_ = NULL;
+#line 341 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp15_ = e;
+#line 341 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp16_ = _tmp15_->message;
+#line 341 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp17_ = g_strconcat (_tmp16_, "\n", NULL);
+#line 341 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp18_ = _tmp17_;
+#line 341 "/home/jens/Source/shotwell/src/main.vala"
+ g_print ("%s", _tmp18_);
+#line 341 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (_tmp18_);
+#line 342 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp19_ = _ ("Run '%s --help' to see a full list of available command line options.\n");
+#line 342 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp20_ = args;
+#line 342 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp20__length1 = args_length1;
+#line 342 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp21_ = _tmp20_[0];
+#line 342 "/home/jens/Source/shotwell/src/main.vala"
+ g_print (_tmp19_, _tmp21_);
+#line 343 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_terminate ();
+#line 344 "/home/jens/Source/shotwell/src/main.vala"
+ _g_error_free0 (e);
+#line 344 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 2507 "main.c"
+ }
+ __finally209:
+#line 337 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 337 "/home/jens/Source/shotwell/src/main.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 337 "/home/jens/Source/shotwell/src/main.vala"
+ g_clear_error (&_inner_error_);
+#line 337 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 2518 "main.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp22_ = commandline_options_show_version;
+#line 347 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp22_) {
+#line 348 "/home/jens/Source/shotwell/src/main.vala"
+ if (RESOURCES_GIT_VERSION != NULL) {
+#line 349 "/home/jens/Source/shotwell/src/main.vala"
+ g_print ("%s %s (%s)\n", RESOURCES_APP_TITLE, RESOURCES_APP_VERSION, RESOURCES_GIT_VERSION);
+#line 2528 "main.c"
+ } else {
+#line 351 "/home/jens/Source/shotwell/src/main.vala"
+ g_print ("%s %s\n", RESOURCES_APP_TITLE, RESOURCES_APP_VERSION);
+#line 2532 "main.c"
+ }
+#line 353 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_terminate ();
+#line 355 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 2538 "main.c"
+ }
+#line 365 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp23_ = g_new0 (gchar*, 0 + 1);
+#line 365 "/home/jens/Source/shotwell/src/main.vala"
+ mounts = _tmp23_;
+#line 365 "/home/jens/Source/shotwell/src/main.vala"
+ mounts_length1 = 0;
+#line 365 "/home/jens/Source/shotwell/src/main.vala"
+ _mounts_size_ = mounts_length1;
+#line 366 "/home/jens/Source/shotwell/src/main.vala"
+ filename = NULL;
+#line 2550 "main.c"
+ {
+ gint ctr = 0;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ ctr = 1;
+#line 2555 "main.c"
+ {
+ gboolean _tmp24_ = FALSE;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp24_ = TRUE;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ while (TRUE) {
+#line 2562 "main.c"
+ gint _tmp26_ = 0;
+ gchar** _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ gchar* arg = NULL;
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ gint _tmp29_ = 0;
+ const gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ const gchar* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ if (!_tmp24_) {
+#line 2576 "main.c"
+ gint _tmp25_ = 0;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp25_ = ctr;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ ctr = _tmp25_ + 1;
+#line 2582 "main.c"
+ }
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp24_ = FALSE;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp26_ = ctr;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp27_ = args;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp27__length1 = args_length1;
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ if (!(_tmp26_ < _tmp27__length1)) {
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ break;
+#line 2596 "main.c"
+ }
+#line 369 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp28_ = args;
+#line 369 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp28__length1 = args_length1;
+#line 369 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp29_ = ctr;
+#line 369 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp30_ = _tmp28_[_tmp29_];
+#line 369 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp31_ = g_strdup (_tmp30_);
+#line 369 "/home/jens/Source/shotwell/src/main.vala"
+ arg = _tmp31_;
+#line 371 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp32_ = arg;
+#line 371 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp33_ = library_window_is_mount_uri_supported (_tmp32_);
+#line 371 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp33_) {
+#line 2616 "main.c"
+ gchar** _tmp34_ = NULL;
+ gint _tmp34__length1 = 0;
+ const gchar* _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp34_ = mounts;
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp34__length1 = mounts_length1;
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp35_ = arg;
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp36_ = g_strdup (_tmp35_);
+#line 372 "/home/jens/Source/shotwell/src/main.vala"
+ _vala_array_add157 (&mounts, &mounts_length1, &_mounts_size_, _tmp36_);
+#line 2631 "main.c"
+ } else {
+ gboolean _tmp37_ = FALSE;
+ const gchar* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp38_ = filename;
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp39_ = is_string_empty (_tmp38_);
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp39_) {
+#line 2642 "main.c"
+ const gchar* _tmp40_ = NULL;
+ gboolean _tmp41_ = FALSE;
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp40_ = arg;
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp41_ = string_contains (_tmp40_, "://");
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp37_ = !_tmp41_;
+#line 2651 "main.c"
+ } else {
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp37_ = FALSE;
+#line 2655 "main.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp37_) {
+#line 2659 "main.c"
+ const gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+#line 374 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp42_ = arg;
+#line 374 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp43_ = g_strdup (_tmp42_);
+#line 374 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (filename);
+#line 374 "/home/jens/Source/shotwell/src/main.vala"
+ filename = _tmp43_;
+#line 2670 "main.c"
+ }
+ }
+#line 368 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (arg);
+#line 2675 "main.c"
+ }
+ }
+ }
+#line 378 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp45_ = filename;
+#line 378 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp46_ = is_string_empty (_tmp45_);
+#line 378 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp46_) {
+#line 378 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp44_ = DEBUG_LIBRARY_PREFIX;
+#line 2687 "main.c"
+ } else {
+#line 378 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp44_ = DEBUG_VIEWER_PREFIX;
+#line 2691 "main.c"
+ }
+#line 378 "/home/jens/Source/shotwell/src/main.vala"
+ debug_init (_tmp44_);
+#line 380 "/home/jens/Source/shotwell/src/main.vala"
+ if (RESOURCES_GIT_VERSION != NULL) {
+#line 2697 "main.c"
+ const gchar* _tmp47_ = NULL;
+ const gchar* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+#line 382 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp48_ = filename;
+#line 382 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp49_ = is_string_empty (_tmp48_);
+#line 382 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp49_) {
+#line 382 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp47_ = RESOURCES_APP_LIBRARY_ROLE;
+#line 2709 "main.c"
+ } else {
+#line 382 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp47_ = RESOURCES_APP_DIRECT_ROLE;
+#line 2713 "main.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/main.vala"
+ g_message ("main.vala:381: Shotwell %s %s (%s)", _tmp47_, RESOURCES_APP_VERSION, RESOURCES_GIT_VERSION);
+#line 2717 "main.c"
+ } else {
+ const gchar* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ gboolean _tmp52_ = FALSE;
+#line 386 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp51_ = filename;
+#line 386 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp52_ = is_string_empty (_tmp51_);
+#line 386 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp52_) {
+#line 386 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp50_ = RESOURCES_APP_LIBRARY_ROLE;
+#line 2730 "main.c"
+ } else {
+#line 386 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp50_ = RESOURCES_APP_DIRECT_ROLE;
+#line 2734 "main.c"
+ }
+#line 385 "/home/jens/Source/shotwell/src/main.vala"
+ g_message ("main.vala:385: Shotwell %s %s", _tmp50_, RESOURCES_APP_VERSION);
+#line 2738 "main.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp53_ = filename;
+#line 391 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp54_ = is_string_empty (_tmp53_);
+#line 391 "/home/jens/Source/shotwell/src/main.vala"
+ application_init (!_tmp54_);
+#line 394 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp55_ = commandline_options_data_dir;
+#line 394 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp55_ != NULL) {
+#line 2750 "main.c"
+ const gchar* _tmp56_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp56_ = commandline_options_data_dir;
+#line 395 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_set_data_dir (_tmp56_);
+#line 2756 "main.c"
+ } else {
+#line 397 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_try_migrate_data ();
+#line 2760 "main.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_verify_data_dir ();
+#line 401 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_verify_cache_dir ();
+#line 404 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp57_ = args;
+#line 404 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp57__length1 = args_length1;
+#line 404 "/home/jens/Source/shotwell/src/main.vala"
+ international_support_init (RESOURCES_APP_GETTEXT_PACKAGE, _tmp57_, _tmp57__length1, INTERNATIONAL_SUPPORT_SYSTEM_LOCALE);
+#line 406 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp58_ = g_timer_new ();
+#line 406 "/home/jens/Source/shotwell/src/main.vala"
+ _g_timer_destroy0 (startup_timer);
+#line 406 "/home/jens/Source/shotwell/src/main.vala"
+ startup_timer = _tmp58_;
+#line 407 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp59_ = startup_timer;
+#line 407 "/home/jens/Source/shotwell/src/main.vala"
+ g_timer_start (_tmp59_);
+#line 410 "/home/jens/Source/shotwell/src/main.vala"
+ g_set_application_name (RESOURCES_APP_TITLE);
+#line 414 "/home/jens/Source/shotwell/src/main.vala"
+ resources_init ();
+#line 419 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp60_ = filename;
+#line 419 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp61_ = is_string_empty (_tmp60_);
+#line 419 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp61_) {
+#line 2792 "main.c"
+ gchar** _tmp62_ = NULL;
+ gint _tmp62__length1 = 0;
+#line 420 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp62_ = mounts;
+#line 420 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp62__length1 = mounts_length1;
+#line 420 "/home/jens/Source/shotwell/src/main.vala"
+ library_exec (_tmp62_, _tmp62__length1);
+#line 2801 "main.c"
+ } else {
+ const gchar* _tmp63_ = NULL;
+#line 422 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp63_ = filename;
+#line 422 "/home/jens/Source/shotwell/src/main.vala"
+ editing_exec (_tmp63_);
+#line 2808 "main.c"
+ }
+#line 425 "/home/jens/Source/shotwell/src/main.vala"
+ resources_terminate ();
+#line 426 "/home/jens/Source/shotwell/src/main.vala"
+ application_terminate ();
+#line 427 "/home/jens/Source/shotwell/src/main.vala"
+ debug_terminate ();
+#line 428 "/home/jens/Source/shotwell/src/main.vala"
+ app_dirs_terminate ();
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp65_ = filename;
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp66_ = is_string_empty (_tmp65_);
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp66_) {
+#line 2824 "main.c"
+ gboolean _tmp67_ = FALSE;
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp67_ = was_already_running;
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp64_ = !_tmp67_;
+#line 2830 "main.c"
+ } else {
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp64_ = FALSE;
+#line 2834 "main.c"
+ }
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ if (_tmp64_) {
+#line 2838 "main.c"
+ gchar* orig_path = NULL;
+ GFile* _tmp68_ = NULL;
+ GFile* _tmp69_ = NULL;
+ GFile* _tmp70_ = NULL;
+ GFile* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ gchar* backup_path = NULL;
+ const gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp68_ = app_dirs_get_data_subdir ("data", NULL);
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp69_ = _tmp68_;
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp70_ = g_file_get_child (_tmp69_, "photo.db");
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp71_ = _tmp70_;
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp72_ = g_file_get_path (_tmp71_);
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp73_ = _tmp72_;
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp71_);
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (_tmp69_);
+#line 434 "/home/jens/Source/shotwell/src/main.vala"
+ orig_path = _tmp73_;
+#line 435 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp74_ = orig_path;
+#line 435 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp75_ = g_strconcat (_tmp74_, ".bak", NULL);
+#line 435 "/home/jens/Source/shotwell/src/main.vala"
+ backup_path = _tmp75_;
+#line 2873 "main.c"
+ {
+ GFile* src = NULL;
+ const gchar* _tmp76_ = NULL;
+ GFile* _tmp77_ = NULL;
+ GFile* dest = NULL;
+ const gchar* _tmp78_ = NULL;
+ GFile* _tmp79_ = NULL;
+ GFile* _tmp80_ = NULL;
+ GFile* _tmp81_ = NULL;
+#line 437 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp76_ = orig_path;
+#line 437 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp77_ = g_file_new_for_commandline_arg (_tmp76_);
+#line 437 "/home/jens/Source/shotwell/src/main.vala"
+ src = _tmp77_;
+#line 438 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp78_ = backup_path;
+#line 438 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp79_ = g_file_new_for_commandline_arg (_tmp78_);
+#line 438 "/home/jens/Source/shotwell/src/main.vala"
+ dest = _tmp79_;
+#line 439 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp80_ = src;
+#line 439 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp81_ = dest;
+#line 439 "/home/jens/Source/shotwell/src/main.vala"
+ g_file_copy (_tmp80_, _tmp81_, G_FILE_COPY_OVERWRITE | G_FILE_COPY_ALL_METADATA, NULL, NULL, NULL, &_inner_error_);
+#line 439 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 439 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (dest);
+#line 439 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (src);
+#line 2907 "main.c"
+ goto __catch210_g_error;
+ }
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (dest);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _g_object_unref0 (src);
+#line 2914 "main.c"
+ }
+ goto __finally210;
+ __catch210_g_error:
+ {
+ GError* _error_ = NULL;
+ GError* _tmp82_ = NULL;
+ const gchar* _tmp83_ = NULL;
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _error_ = _inner_error_;
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _inner_error_ = NULL;
+#line 443 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp82_ = _error_;
+#line 443 "/home/jens/Source/shotwell/src/main.vala"
+ _tmp83_ = _tmp82_->message;
+#line 443 "/home/jens/Source/shotwell/src/main.vala"
+ g_warning ("main.vala:443: Failed to create backup file of database: %s", _tmp83_);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _g_error_free0 (_error_);
+#line 2934 "main.c"
+ }
+ __finally210:
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (backup_path);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (orig_path);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (filename);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ mounts = (_vala_array_free (mounts, mounts_length1, (GDestroyNotify) g_free), NULL);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ g_clear_error (&_inner_error_);
+#line 436 "/home/jens/Source/shotwell/src/main.vala"
+ return;
+#line 2953 "main.c"
+ }
+#line 446 "/home/jens/Source/shotwell/src/main.vala"
+ sync ();
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (backup_path);
+#line 433 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (orig_path);
+#line 2961 "main.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/main.vala"
+ _g_free0 (filename);
+#line 317 "/home/jens/Source/shotwell/src/main.vala"
+ mounts = (_vala_array_free (mounts, mounts_length1, (GDestroyNotify) g_free), NULL);
+#line 2967 "main.c"
+}
+
+
+int main (int argc, char ** argv) {
+#if !GLIB_CHECK_VERSION (2,32,0)
+ g_thread_init (NULL);
+#endif
+#if !GLIB_CHECK_VERSION (2,35,0)
+ g_type_init ();
+#endif
+#line 317 "/home/jens/Source/shotwell/src/main.vala"
+ _vala_main (argv, argc);
+#line 317 "/home/jens/Source/shotwell/src/main.vala"
+ return 0;
+#line 2982 "main.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/photos/BmpSupport.c b/src/photos/BmpSupport.c
new file mode 100644
index 0000000..11ad8c6
--- /dev/null
+++ b/src/photos/BmpSupport.c
@@ -0,0 +1,1912 @@
+/* BmpSupport.c generated by valac 0.32.1, the Vala compiler
+ * generated from BmpSupport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gphoto2/gphoto2-file.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+typedef struct _PhotoFileFormatPropertiesPrivate PhotoFileFormatPropertiesPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT_FLAGS (photo_file_format_flags_get_type ())
+
+#define PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES (photos_bmp_file_format_properties_get_type ())
+#define PHOTOS_BMP_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties))
+#define PHOTOS_BMP_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatPropertiesClass))
+#define PHOTOS_IS_BMP_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES))
+#define PHOTOS_IS_BMP_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES))
+#define PHOTOS_BMP_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatPropertiesClass))
+
+typedef struct _PhotosBmpFileFormatProperties PhotosBmpFileFormatProperties;
+typedef struct _PhotosBmpFileFormatPropertiesClass PhotosBmpFileFormatPropertiesClass;
+typedef struct _PhotosBmpFileFormatPropertiesPrivate PhotosBmpFileFormatPropertiesPrivate;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate;
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_GDK_SNIFFER (gdk_sniffer_get_type ())
+#define GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_SNIFFER, GdkSniffer))
+#define GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_SNIFFER, GdkSnifferClass))
+#define IS_GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_SNIFFER))
+#define IS_GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_SNIFFER))
+#define GDK_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_SNIFFER, GdkSnifferClass))
+
+typedef struct _GdkSniffer GdkSniffer;
+typedef struct _GdkSnifferClass GdkSnifferClass;
+typedef struct _GdkSnifferPrivate GdkSnifferPrivate;
+
+#define PHOTOS_TYPE_BMP_SNIFFER (photos_bmp_sniffer_get_type ())
+#define PHOTOS_BMP_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_BMP_SNIFFER, PhotosBmpSniffer))
+#define PHOTOS_BMP_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_BMP_SNIFFER, PhotosBmpSnifferClass))
+#define PHOTOS_IS_BMP_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_BMP_SNIFFER))
+#define PHOTOS_IS_BMP_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_BMP_SNIFFER))
+#define PHOTOS_BMP_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_BMP_SNIFFER, PhotosBmpSnifferClass))
+
+typedef struct _PhotosBmpSniffer PhotosBmpSniffer;
+typedef struct _PhotosBmpSnifferClass PhotosBmpSnifferClass;
+typedef struct _PhotosBmpSnifferPrivate PhotosBmpSnifferPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate;
+
+#define TYPE_GDK_READER (gdk_reader_get_type ())
+#define GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_READER, GdkReader))
+#define GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_READER, GdkReaderClass))
+#define IS_GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_READER))
+#define IS_GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_READER))
+#define GDK_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_READER, GdkReaderClass))
+
+typedef struct _GdkReader GdkReader;
+typedef struct _GdkReaderClass GdkReaderClass;
+typedef struct _GdkReaderPrivate GdkReaderPrivate;
+
+#define PHOTOS_TYPE_BMP_READER (photos_bmp_reader_get_type ())
+#define PHOTOS_BMP_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_BMP_READER, PhotosBmpReader))
+#define PHOTOS_BMP_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_BMP_READER, PhotosBmpReaderClass))
+#define PHOTOS_IS_BMP_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_BMP_READER))
+#define PHOTOS_IS_BMP_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_BMP_READER))
+#define PHOTOS_BMP_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_BMP_READER, PhotosBmpReaderClass))
+
+typedef struct _PhotosBmpReader PhotosBmpReader;
+typedef struct _PhotosBmpReaderClass PhotosBmpReaderClass;
+typedef struct _PhotosBmpReaderPrivate PhotosBmpReaderPrivate;
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+typedef struct _PhotoFileWriterPrivate PhotoFileWriterPrivate;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+
+#define PHOTOS_TYPE_BMP_WRITER (photos_bmp_writer_get_type ())
+#define PHOTOS_BMP_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_BMP_WRITER, PhotosBmpWriter))
+#define PHOTOS_BMP_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_BMP_WRITER, PhotosBmpWriterClass))
+#define PHOTOS_IS_BMP_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_BMP_WRITER))
+#define PHOTOS_IS_BMP_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_BMP_WRITER))
+#define PHOTOS_BMP_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_BMP_WRITER, PhotosBmpWriterClass))
+
+typedef struct _PhotosBmpWriter PhotosBmpWriter;
+typedef struct _PhotosBmpWriterClass PhotosBmpWriterClass;
+typedef struct _PhotosBmpWriterPrivate PhotosBmpWriterPrivate;
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+typedef struct _PhotoFileMetadataWriterPrivate PhotoFileMetadataWriterPrivate;
+
+#define PHOTOS_TYPE_BMP_METADATA_WRITER (photos_bmp_metadata_writer_get_type ())
+#define PHOTOS_BMP_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_BMP_METADATA_WRITER, PhotosBmpMetadataWriter))
+#define PHOTOS_BMP_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_BMP_METADATA_WRITER, PhotosBmpMetadataWriterClass))
+#define PHOTOS_IS_BMP_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_BMP_METADATA_WRITER))
+#define PHOTOS_IS_BMP_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_BMP_METADATA_WRITER))
+#define PHOTOS_BMP_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_BMP_METADATA_WRITER, PhotosBmpMetadataWriterClass))
+
+typedef struct _PhotosBmpMetadataWriter PhotosBmpMetadataWriter;
+typedef struct _PhotosBmpMetadataWriterClass PhotosBmpMetadataWriterClass;
+typedef struct _PhotosBmpMetadataWriterPrivate PhotosBmpMetadataWriterPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT_DRIVER (photo_file_format_driver_get_type ())
+#define PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver))
+#define PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+#define IS_PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define IS_PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define PHOTO_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+
+typedef struct _PhotoFileFormatDriver PhotoFileFormatDriver;
+typedef struct _PhotoFileFormatDriverClass PhotoFileFormatDriverClass;
+typedef struct _PhotoFileFormatDriverPrivate PhotoFileFormatDriverPrivate;
+
+#define PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER (photos_bmp_file_format_driver_get_type ())
+#define PHOTOS_BMP_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver))
+#define PHOTOS_BMP_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriverClass))
+#define PHOTOS_IS_BMP_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER))
+#define PHOTOS_IS_BMP_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER))
+#define PHOTOS_BMP_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriverClass))
+
+typedef struct _PhotosBmpFileFormatDriver PhotosBmpFileFormatDriver;
+typedef struct _PhotosBmpFileFormatDriverClass PhotosBmpFileFormatDriverClass;
+typedef struct _PhotosBmpFileFormatDriverPrivate PhotosBmpFileFormatDriverPrivate;
+#define _photo_file_format_driver_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_driver_unref (var), NULL)))
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_FLAGS_NONE = 0x00000000
+} PhotoFileFormatFlags;
+
+struct _PhotoFileFormatProperties {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotoFileFormatPropertiesClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatProperties *self);
+ PhotoFileFormat (*get_file_format) (PhotoFileFormatProperties* self);
+ PhotoFileFormatFlags (*get_flags) (PhotoFileFormatProperties* self);
+ gboolean (*is_recognized_extension) (PhotoFileFormatProperties* self, const gchar* ext);
+ gchar* (*get_default_extension) (PhotoFileFormatProperties* self);
+ gchar** (*get_known_extensions) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_default_mime_type) (PhotoFileFormatProperties* self);
+ gchar** (*get_mime_types) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_user_visible_name) (PhotoFileFormatProperties* self);
+};
+
+struct _PhotosBmpFileFormatProperties {
+ PhotoFileFormatProperties parent_instance;
+ PhotosBmpFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotosBmpFileFormatPropertiesClass {
+ PhotoFileFormatPropertiesClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileSniffer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileSnifferPrivate * priv;
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ gboolean calc_md5;
+};
+
+struct _PhotoFileSnifferClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileSniffer *self);
+ DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+};
+
+struct _GdkSniffer {
+ PhotoFileSniffer parent_instance;
+ GdkSnifferPrivate * priv;
+};
+
+struct _GdkSnifferClass {
+ PhotoFileSnifferClass parent_class;
+};
+
+struct _PhotosBmpSniffer {
+ GdkSniffer parent_instance;
+ PhotosBmpSnifferPrivate * priv;
+};
+
+struct _PhotosBmpSnifferClass {
+ GdkSnifferClass parent_class;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+struct _PhotoFileAdapter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileAdapterPrivate * priv;
+};
+
+struct _PhotoFileAdapterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileAdapter *self);
+};
+
+struct _PhotoFileReader {
+ PhotoFileAdapter parent_instance;
+ PhotoFileReaderPrivate * priv;
+};
+
+struct _PhotoFileReaderClass {
+ PhotoFileAdapterClass parent_class;
+ PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+};
+
+struct _GdkReader {
+ PhotoFileReader parent_instance;
+ GdkReaderPrivate * priv;
+};
+
+struct _GdkReaderClass {
+ PhotoFileReaderClass parent_class;
+};
+
+struct _PhotosBmpReader {
+ GdkReader parent_instance;
+ PhotosBmpReaderPrivate * priv;
+};
+
+struct _PhotosBmpReaderClass {
+ GdkReaderClass parent_class;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _PhotoFileWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileWriterPrivate * priv;
+};
+
+struct _PhotoFileWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write) (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+};
+
+struct _PhotosBmpWriter {
+ PhotoFileWriter parent_instance;
+ PhotosBmpWriterPrivate * priv;
+};
+
+struct _PhotosBmpWriterClass {
+ PhotoFileWriterClass parent_class;
+};
+
+struct _PhotoFileMetadataWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileMetadataWriterPrivate * priv;
+};
+
+struct _PhotoFileMetadataWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write_metadata) (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+};
+
+struct _PhotosBmpMetadataWriter {
+ PhotoFileMetadataWriter parent_instance;
+ PhotosBmpMetadataWriterPrivate * priv;
+};
+
+struct _PhotosBmpMetadataWriterClass {
+ PhotoFileMetadataWriterClass parent_class;
+};
+
+struct _PhotoFileFormatDriver {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatDriverPrivate * priv;
+};
+
+struct _PhotoFileFormatDriverClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatDriver *self);
+ PhotoFileFormatProperties* (*get_properties) (PhotoFileFormatDriver* self);
+ PhotoFileReader* (*create_reader) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoMetadata* (*create_metadata) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_image) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_metadata) (PhotoFileFormatDriver* self);
+ PhotoFileWriter* (*create_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileMetadataWriter* (*create_metadata_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileSniffer* (*create_sniffer) (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+};
+
+struct _PhotosBmpFileFormatDriver {
+ PhotoFileFormatDriver parent_instance;
+ PhotosBmpFileFormatDriverPrivate * priv;
+};
+
+struct _PhotosBmpFileFormatDriverClass {
+ PhotoFileFormatDriverClass parent_class;
+};
+
+
+static gpointer photos_bmp_file_format_properties_parent_class = NULL;
+static gchar** photos_bmp_file_format_properties_KNOWN_EXTENSIONS;
+static gint photos_bmp_file_format_properties_KNOWN_EXTENSIONS_length1;
+static gchar** photos_bmp_file_format_properties_KNOWN_EXTENSIONS = NULL;
+static gint photos_bmp_file_format_properties_KNOWN_EXTENSIONS_length1 = 0;
+static gint _photos_bmp_file_format_properties_KNOWN_EXTENSIONS_size_ = 0;
+static gchar** photos_bmp_file_format_properties_KNOWN_MIME_TYPES;
+static gint photos_bmp_file_format_properties_KNOWN_MIME_TYPES_length1;
+static gchar** photos_bmp_file_format_properties_KNOWN_MIME_TYPES = NULL;
+static gint photos_bmp_file_format_properties_KNOWN_MIME_TYPES_length1 = 0;
+static gint _photos_bmp_file_format_properties_KNOWN_MIME_TYPES_size_ = 0;
+static PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_instance;
+static PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_instance = NULL;
+static gpointer photos_bmp_sniffer_parent_class = NULL;
+static gpointer photos_bmp_reader_parent_class = NULL;
+static gpointer photos_bmp_writer_parent_class = NULL;
+static gpointer photos_bmp_metadata_writer_parent_class = NULL;
+static gpointer photos_bmp_file_format_driver_parent_class = NULL;
+static PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_instance;
+static PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_instance = NULL;
+
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType photo_file_format_flags_get_type (void) G_GNUC_CONST;
+GType photos_bmp_file_format_properties_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_BMP_FILE_FORMAT_PROPERTIES_DUMMY_PROPERTY
+};
+void photos_bmp_file_format_properties_init (void);
+PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_new (void);
+PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_construct (GType object_type);
+PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_get_instance (void);
+static PhotoFileFormat photos_bmp_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base);
+static PhotoFileFormatFlags photos_bmp_file_format_properties_real_get_flags (PhotoFileFormatProperties* base);
+static gchar* photos_bmp_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base);
+static gchar* photos_bmp_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base);
+static gchar** photos_bmp_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup10 (gchar** self, int length);
+static gchar* photos_bmp_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base);
+static gchar** photos_bmp_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup11 (gchar** self, int length);
+PhotoFileFormatProperties* photo_file_format_properties_construct (GType object_type);
+static void photos_bmp_file_format_properties_finalize (PhotoFileFormatProperties* obj);
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+GType gdk_sniffer_get_type (void) G_GNUC_CONST;
+GType photos_bmp_sniffer_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_BMP_SNIFFER_DUMMY_PROPERTY
+};
+PhotosBmpSniffer* photos_bmp_sniffer_new (GFile* file, PhotoFileSnifferOptions options);
+PhotosBmpSniffer* photos_bmp_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+static gboolean photos_bmp_sniffer_is_bmp_file (GFile* file, GError** error);
+static DetectedPhotoInformation* photos_bmp_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error);
+DetectedPhotoInformation* photo_file_sniffer_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+GType gdk_reader_get_type (void) G_GNUC_CONST;
+GType photos_bmp_reader_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_BMP_READER_DUMMY_PROPERTY
+};
+PhotosBmpReader* photos_bmp_reader_new (const gchar* filepath);
+PhotosBmpReader* photos_bmp_reader_construct (GType object_type, const gchar* filepath);
+GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static GdkPixbuf* photos_bmp_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error);
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+void dimensions_get_scaled_by_constraint (Dimensions *self, gint scale, ScaleConstraint constraint, Dimensions* result);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+GType photos_bmp_writer_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_BMP_WRITER_DUMMY_PROPERTY
+};
+PhotosBmpWriter* photos_bmp_writer_new (const gchar* filepath);
+PhotosBmpWriter* photos_bmp_writer_construct (GType object_type, const gchar* filepath);
+PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void photos_bmp_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+GType photos_bmp_metadata_writer_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_BMP_METADATA_WRITER_DUMMY_PROPERTY
+};
+PhotosBmpMetadataWriter* photos_bmp_metadata_writer_new (const gchar* filepath);
+PhotosBmpMetadataWriter* photos_bmp_metadata_writer_construct (GType object_type, const gchar* filepath);
+PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void photos_bmp_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error);
+gpointer photo_file_format_driver_ref (gpointer instance);
+void photo_file_format_driver_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_driver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_driver (GValue* value, gpointer v_object);
+void value_take_photo_file_format_driver (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_driver (const GValue* value);
+GType photo_file_format_driver_get_type (void) G_GNUC_CONST;
+GType photos_bmp_file_format_driver_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_BMP_FILE_FORMAT_DRIVER_DUMMY_PROPERTY
+};
+void photos_bmp_file_format_driver_init (void);
+PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_new (void);
+PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_construct (GType object_type);
+PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_get_instance (void);
+static PhotoFileFormatProperties* photos_bmp_file_format_driver_real_get_properties (PhotoFileFormatDriver* base);
+static PhotoFileReader* photos_bmp_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath);
+static gboolean photos_bmp_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base);
+static gboolean photos_bmp_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base);
+static PhotoFileWriter* photos_bmp_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+static PhotoFileMetadataWriter* photos_bmp_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+static PhotoFileSniffer* photos_bmp_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options);
+static PhotoMetadata* photos_bmp_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base);
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+PhotoFileFormatDriver* photo_file_format_driver_construct (GType object_type);
+static void photos_bmp_file_format_driver_finalize (PhotoFileFormatDriver* obj);
+
+static const guint8 PHOTOS_BMP_SNIFFER_MAGIC_SEQUENCE[2] = {(guint8) 0x42, (guint8) 0x4D};
+
+void photos_bmp_file_format_properties_init (void) {
+ PhotosBmpFileFormatProperties* _tmp0_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_properties_new ();
+#line 16 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _photo_file_format_properties_unref0 (photos_bmp_file_format_properties_instance);
+#line 16 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_properties_instance = _tmp0_;
+#line 626 "BmpSupport.c"
+}
+
+
+static gpointer _photo_file_format_properties_ref0 (gpointer self) {
+#line 20 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self ? photo_file_format_properties_ref (self) : NULL;
+#line 633 "BmpSupport.c"
+}
+
+
+PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_get_instance (void) {
+ PhotosBmpFileFormatProperties* result = NULL;
+ PhotosBmpFileFormatProperties* _tmp0_ = NULL;
+ PhotosBmpFileFormatProperties* _tmp1_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_properties_instance;
+#line 20 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = _photo_file_format_properties_ref0 (_tmp0_);
+#line 20 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp1_;
+#line 20 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 649 "BmpSupport.c"
+}
+
+
+static PhotoFileFormat photos_bmp_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base) {
+ PhotosBmpFileFormatProperties * self;
+ PhotoFileFormat result = 0;
+#line 23 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 24 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = PHOTO_FILE_FORMAT_BMP;
+#line 24 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 662 "BmpSupport.c"
+}
+
+
+static PhotoFileFormatFlags photos_bmp_file_format_properties_real_get_flags (PhotoFileFormatProperties* base) {
+ PhotosBmpFileFormatProperties * self;
+ PhotoFileFormatFlags result = 0;
+#line 27 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 28 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = PHOTO_FILE_FORMAT_FLAGS_NONE;
+#line 28 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 675 "BmpSupport.c"
+}
+
+
+static gchar* photos_bmp_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base) {
+ PhotosBmpFileFormatProperties * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 32 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = _ ("BMP");
+#line 32 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 32 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 694 "BmpSupport.c"
+}
+
+
+static gchar* photos_bmp_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base) {
+ PhotosBmpFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 36 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_properties_KNOWN_EXTENSIONS;
+#line 36 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0__length1 = photos_bmp_file_format_properties_KNOWN_EXTENSIONS_length1;
+#line 36 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = _tmp0_[0];
+#line 36 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 36 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp2_;
+#line 36 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 719 "BmpSupport.c"
+}
+
+
+static gchar** _vala_array_dup10 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 730 "BmpSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result[i] = _tmp0_;
+#line 736 "BmpSupport.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 740 "BmpSupport.c"
+}
+
+
+static gchar** photos_bmp_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1) {
+ PhotosBmpFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 39 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_properties_KNOWN_EXTENSIONS;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0__length1 = photos_bmp_file_format_properties_KNOWN_EXTENSIONS_length1;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup10 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (result_length1) {
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 771 "BmpSupport.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp2_;
+#line 40 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 777 "BmpSupport.c"
+}
+
+
+static gchar* photos_bmp_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base) {
+ PhotosBmpFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 44 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_properties_KNOWN_MIME_TYPES;
+#line 44 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0__length1 = photos_bmp_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 44 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = _tmp0_[0];
+#line 44 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 44 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp2_;
+#line 44 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 802 "BmpSupport.c"
+}
+
+
+static gchar** _vala_array_dup11 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 813 "BmpSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result[i] = _tmp0_;
+#line 819 "BmpSupport.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 823 "BmpSupport.c"
+}
+
+
+static gchar** photos_bmp_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1) {
+ PhotosBmpFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 47 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_properties_KNOWN_MIME_TYPES;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0__length1 = photos_bmp_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup11 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (result_length1) {
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 854 "BmpSupport.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp2_;
+#line 48 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 860 "BmpSupport.c"
+}
+
+
+PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_construct (GType object_type) {
+ PhotosBmpFileFormatProperties* self = NULL;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = (PhotosBmpFileFormatProperties*) photo_file_format_properties_construct (object_type);
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self;
+#line 870 "BmpSupport.c"
+}
+
+
+PhotosBmpFileFormatProperties* photos_bmp_file_format_properties_new (void) {
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return photos_bmp_file_format_properties_construct (PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES);
+#line 877 "BmpSupport.c"
+}
+
+
+static void photos_bmp_file_format_properties_class_init (PhotosBmpFileFormatPropertiesClass * klass) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_properties_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->finalize = photos_bmp_file_format_properties_finalize;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_file_format = photos_bmp_file_format_properties_real_get_file_format;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_flags = photos_bmp_file_format_properties_real_get_flags;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_user_visible_name = photos_bmp_file_format_properties_real_get_user_visible_name;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_extension = photos_bmp_file_format_properties_real_get_default_extension;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_known_extensions = photos_bmp_file_format_properties_real_get_known_extensions;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_mime_type = photos_bmp_file_format_properties_real_get_default_mime_type;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_mime_types = photos_bmp_file_format_properties_real_get_mime_types;
+#line 10 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = g_strdup ("bmp");
+#line 10 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = g_strdup ("dib");
+#line 10 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = g_new0 (gchar*, 2 + 1);
+#line 10 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_[0] = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_[1] = _tmp1_;
+#line 10 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_properties_KNOWN_EXTENSIONS = _tmp2_;
+#line 10 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_properties_KNOWN_EXTENSIONS_length1 = 2;
+#line 11 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp3_ = g_strdup (GP_MIME_BMP);
+#line 11 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp4_ = g_new0 (gchar*, 1 + 1);
+#line 11 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp4_[0] = _tmp3_;
+#line 11 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_properties_KNOWN_MIME_TYPES = _tmp4_;
+#line 11 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_properties_KNOWN_MIME_TYPES_length1 = 1;
+#line 929 "BmpSupport.c"
+}
+
+
+static void photos_bmp_file_format_properties_instance_init (PhotosBmpFileFormatProperties * self) {
+}
+
+
+static void photos_bmp_file_format_properties_finalize (PhotoFileFormatProperties* obj) {
+ PhotosBmpFileFormatProperties * self;
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTOS_TYPE_BMP_FILE_FORMAT_PROPERTIES, PhotosBmpFileFormatProperties);
+#line 9 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ PHOTO_FILE_FORMAT_PROPERTIES_CLASS (photos_bmp_file_format_properties_parent_class)->finalize (obj);
+#line 943 "BmpSupport.c"
+}
+
+
+GType photos_bmp_file_format_properties_get_type (void) {
+ static volatile gsize photos_bmp_file_format_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_bmp_file_format_properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosBmpFileFormatPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_bmp_file_format_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosBmpFileFormatProperties), 0, (GInstanceInitFunc) photos_bmp_file_format_properties_instance_init, NULL };
+ GType photos_bmp_file_format_properties_type_id;
+ photos_bmp_file_format_properties_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_PROPERTIES, "PhotosBmpFileFormatProperties", &g_define_type_info, 0);
+ g_once_init_leave (&photos_bmp_file_format_properties_type_id__volatile, photos_bmp_file_format_properties_type_id);
+ }
+ return photos_bmp_file_format_properties_type_id__volatile;
+}
+
+
+PhotosBmpSniffer* photos_bmp_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ PhotosBmpSniffer* self = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+#line 55 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 56 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = file;
+#line 56 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = options;
+#line 56 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = (PhotosBmpSniffer*) gdk_sniffer_construct (object_type, _tmp0_, _tmp1_);
+#line 55 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self;
+#line 973 "BmpSupport.c"
+}
+
+
+PhotosBmpSniffer* photos_bmp_sniffer_new (GFile* file, PhotoFileSnifferOptions options) {
+#line 55 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return photos_bmp_sniffer_construct (PHOTOS_TYPE_BMP_SNIFFER, file, options);
+#line 980 "BmpSupport.c"
+}
+
+
+static gboolean photos_bmp_sniffer_is_bmp_file (GFile* file, GError** error) {
+ gboolean result = FALSE;
+ GFileInputStream* instream = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInputStream* _tmp1_ = NULL;
+ guint8* file_lead_sequence = NULL;
+ guint8* _tmp2_ = NULL;
+ gint file_lead_sequence_length1 = 0;
+ gint _file_lead_sequence_size_ = 0;
+ GFileInputStream* _tmp3_ = NULL;
+ guint8* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 60 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = file;
+#line 60 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = g_file_read (_tmp0_, NULL, &_inner_error_);
+#line 60 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ instream = _tmp1_;
+#line 60 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 60 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 60 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return FALSE;
+#line 1011 "BmpSupport.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = g_new0 (guint8, G_N_ELEMENTS (PHOTOS_BMP_SNIFFER_MAGIC_SEQUENCE));
+#line 62 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ file_lead_sequence = _tmp2_;
+#line 62 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ file_lead_sequence_length1 = G_N_ELEMENTS (PHOTOS_BMP_SNIFFER_MAGIC_SEQUENCE);
+#line 62 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _file_lead_sequence_size_ = file_lead_sequence_length1;
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp3_ = instream;
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp4_ = file_lead_sequence;
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp4__length1 = file_lead_sequence_length1;
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_input_stream_read (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, G_TYPE_INPUT_STREAM, GInputStream), _tmp4_, (gsize) _tmp4__length1, NULL, &_inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ file_lead_sequence = (g_free (file_lead_sequence), NULL);
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (instream);
+#line 64 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return FALSE;
+#line 1039 "BmpSupport.c"
+ }
+ {
+ gint i = 0;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ i = 0;
+#line 1045 "BmpSupport.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp5_ = TRUE;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ while (TRUE) {
+#line 1052 "BmpSupport.c"
+ gint _tmp7_ = 0;
+ guint8* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ guint8 _tmp10_ = 0U;
+ gint _tmp11_ = 0;
+ guint8 _tmp12_ = 0U;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (!_tmp5_) {
+#line 1062 "BmpSupport.c"
+ gint _tmp6_ = 0;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp6_ = i;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ i = _tmp6_ + 1;
+#line 1068 "BmpSupport.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp5_ = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp7_ = i;
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (!(_tmp7_ < G_N_ELEMENTS (PHOTOS_BMP_SNIFFER_MAGIC_SEQUENCE))) {
+#line 66 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ break;
+#line 1078 "BmpSupport.c"
+ }
+#line 67 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp8_ = file_lead_sequence;
+#line 67 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp8__length1 = file_lead_sequence_length1;
+#line 67 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp9_ = i;
+#line 67 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 67 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp11_ = i;
+#line 67 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp12_ = PHOTOS_BMP_SNIFFER_MAGIC_SEQUENCE[_tmp11_];
+#line 67 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (_tmp10_ != _tmp12_) {
+#line 68 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = FALSE;
+#line 68 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ file_lead_sequence = (g_free (file_lead_sequence), NULL);
+#line 68 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (instream);
+#line 68 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1102 "BmpSupport.c"
+ }
+ }
+ }
+ }
+#line 71 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = TRUE;
+#line 71 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ file_lead_sequence = (g_free (file_lead_sequence), NULL);
+#line 71 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (instream);
+#line 71 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1115 "BmpSupport.c"
+}
+
+
+static gpointer _detected_photo_information_ref0 (gpointer self) {
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self ? detected_photo_information_ref (self) : NULL;
+#line 1122 "BmpSupport.c"
+}
+
+
+static DetectedPhotoInformation* photos_bmp_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error) {
+ PhotosBmpSniffer * self;
+ gboolean _vala_is_corrupted = FALSE;
+ DetectedPhotoInformation* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ DetectedPhotoInformation* detected = NULL;
+ gboolean _tmp3_ = FALSE;
+ DetectedPhotoInformation* _tmp4_ = NULL;
+ DetectedPhotoInformation* _tmp5_ = NULL;
+ DetectedPhotoInformation* _tmp6_ = NULL;
+ DetectedPhotoInformation* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+ DetectedPhotoInformation* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_SNIFFER, PhotosBmpSniffer);
+#line 76 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _vala_is_corrupted = FALSE;
+#line 78 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 78 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = photos_bmp_sniffer_is_bmp_file (_tmp1_, &_inner_error_);
+#line 78 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = _tmp2_;
+#line 78 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 78 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 78 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return NULL;
+#line 1158 "BmpSupport.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (!_tmp0_) {
+#line 79 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = NULL;
+#line 79 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (is_corrupted) {
+#line 79 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1168 "BmpSupport.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1172 "BmpSupport.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp4_ = PHOTO_FILE_SNIFFER_CLASS (photos_bmp_sniffer_parent_class)->sniff (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GDK_SNIFFER, GdkSniffer), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer), &_tmp3_, &_inner_error_);
+#line 81 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _vala_is_corrupted = _tmp3_;
+#line 81 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ detected = _tmp4_;
+#line 81 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 81 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 81 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return NULL;
+#line 1186 "BmpSupport.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp5_ = detected;
+#line 82 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (_tmp5_ == NULL) {
+#line 83 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = NULL;
+#line 83 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 83 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (is_corrupted) {
+#line 83 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1200 "BmpSupport.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1204 "BmpSupport.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp7_ = detected;
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp8_ = _tmp7_->file_format;
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (_tmp8_ == PHOTO_FILE_FORMAT_BMP) {
+#line 1212 "BmpSupport.c"
+ DetectedPhotoInformation* _tmp9_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp9_ = detected;
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp6_ = _tmp9_;
+#line 1218 "BmpSupport.c"
+ } else {
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp6_ = NULL;
+#line 1222 "BmpSupport.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp10_ = _detected_photo_information_ref0 (_tmp6_);
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp10_;
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (is_corrupted) {
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1234 "BmpSupport.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1238 "BmpSupport.c"
+}
+
+
+static void photos_bmp_sniffer_class_init (PhotosBmpSnifferClass * klass) {
+#line 52 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 52 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileSnifferClass *) klass)->sniff = photos_bmp_sniffer_real_sniff;
+#line 1247 "BmpSupport.c"
+}
+
+
+static void photos_bmp_sniffer_instance_init (PhotosBmpSniffer * self) {
+}
+
+
+GType photos_bmp_sniffer_get_type (void) {
+ static volatile gsize photos_bmp_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_bmp_sniffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosBmpSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_bmp_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosBmpSniffer), 0, (GInstanceInitFunc) photos_bmp_sniffer_instance_init, NULL };
+ GType photos_bmp_sniffer_type_id;
+ photos_bmp_sniffer_type_id = g_type_register_static (TYPE_GDK_SNIFFER, "PhotosBmpSniffer", &g_define_type_info, 0);
+ g_once_init_leave (&photos_bmp_sniffer_type_id__volatile, photos_bmp_sniffer_type_id);
+ }
+ return photos_bmp_sniffer_type_id__volatile;
+}
+
+
+PhotosBmpReader* photos_bmp_reader_construct (GType object_type, const gchar* filepath) {
+ PhotosBmpReader* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 90 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 91 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = filepath;
+#line 91 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = (PhotosBmpReader*) gdk_reader_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_BMP);
+#line 90 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self;
+#line 1278 "BmpSupport.c"
+}
+
+
+PhotosBmpReader* photos_bmp_reader_new (const gchar* filepath) {
+#line 90 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return photos_bmp_reader_construct (PHOTOS_TYPE_BMP_READER, filepath);
+#line 1285 "BmpSupport.c"
+}
+
+
+static GdkPixbuf* photos_bmp_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error) {
+ PhotosBmpReader * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _result_ = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GError * _inner_error_ = NULL;
+#line 94 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_READER, PhotosBmpReader);
+#line 94 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (full != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (scaled != NULL, NULL);
+#line 95 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _result_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = *full;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp3_ = _tmp2_.width;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (_tmp3_ > 9999) {
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = TRUE;
+#line 1314 "BmpSupport.c"
+ } else {
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp4_ = *full;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp5_ = _tmp4_.height;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = _tmp5_ > 9999;
+#line 1324 "BmpSupport.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (_tmp1_) {
+#line 1328 "BmpSupport.c"
+ gboolean _tmp6_ = FALSE;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp7_ = *scaled;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp8_ = _tmp7_.width;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (_tmp8_ < 100) {
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp6_ = TRUE;
+#line 1340 "BmpSupport.c"
+ } else {
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 105 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp9_ = *scaled;
+#line 105 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp10_ = _tmp9_.height;
+#line 105 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp6_ = _tmp10_ < 100;
+#line 1350 "BmpSupport.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = _tmp6_;
+#line 1354 "BmpSupport.c"
+ } else {
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = FALSE;
+#line 1358 "BmpSupport.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (_tmp0_) {
+#line 1362 "BmpSupport.c"
+ Dimensions prefetch_dimensions = {0};
+ Dimensions _tmp11_ = {0};
+ GdkPixbuf* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkPixbuf* _tmp19_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+ Dimensions _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ Dimensions _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ GdkPixbuf* _tmp27_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ dimensions_get_scaled_by_constraint (full, 1000, SCALE_CONSTRAINT_DIMENSIONS, &_tmp11_);
+#line 106 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ prefetch_dimensions = _tmp11_;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp13_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp14_ = _tmp13_;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp15_ = prefetch_dimensions;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp16_ = _tmp15_.width;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp17_ = prefetch_dimensions;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp18_ = _tmp17_.height;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp19_ = gdk_pixbuf_new_from_file_at_scale (_tmp14_, _tmp16_, _tmp18_, FALSE, &_inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp20_ = _tmp19_;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_free0 (_tmp14_);
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp12_ = _tmp20_;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (_result_);
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return NULL;
+#line 1413 "BmpSupport.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp21_ = _tmp12_;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp12_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (_result_);
+#line 109 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _result_ = _tmp21_;
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp22_ = _result_;
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp23_ = *scaled;
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp24_ = _tmp23_.width;
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp25_ = *scaled;
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp26_ = _tmp25_.height;
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp27_ = gdk_pixbuf_scale_simple (_tmp22_, _tmp24_, _tmp26_, GDK_INTERP_HYPER);
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (_result_);
+#line 112 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _result_ = _tmp27_;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1441 "BmpSupport.c"
+ } else {
+ GdkPixbuf* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ Dimensions _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ Dimensions _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ GdkPixbuf* _tmp35_ = NULL;
+ GdkPixbuf* _tmp36_ = NULL;
+ GdkPixbuf* _tmp37_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp29_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp30_ = _tmp29_;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp31_ = *scaled;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp32_ = _tmp31_.width;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp33_ = *scaled;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp34_ = _tmp33_.height;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp35_ = gdk_pixbuf_new_from_file_at_scale (_tmp30_, _tmp32_, _tmp34_, FALSE, &_inner_error_);
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp36_ = _tmp35_;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_free0 (_tmp30_);
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp28_ = _tmp36_;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (_result_);
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return NULL;
+#line 1481 "BmpSupport.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp37_ = _tmp28_;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp28_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (_result_);
+#line 114 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _result_ = _tmp37_;
+#line 104 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_object_unref0 (_tmp28_);
+#line 1493 "BmpSupport.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _result_;
+#line 118 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1499 "BmpSupport.c"
+}
+
+
+static void photos_bmp_reader_class_init (PhotosBmpReaderClass * klass) {
+#line 89 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_reader_parent_class = g_type_class_peek_parent (klass);
+#line 89 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileReaderClass *) klass)->scaled_read = photos_bmp_reader_real_scaled_read;
+#line 1508 "BmpSupport.c"
+}
+
+
+static void photos_bmp_reader_instance_init (PhotosBmpReader * self) {
+}
+
+
+GType photos_bmp_reader_get_type (void) {
+ static volatile gsize photos_bmp_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_bmp_reader_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosBmpReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_bmp_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosBmpReader), 0, (GInstanceInitFunc) photos_bmp_reader_instance_init, NULL };
+ GType photos_bmp_reader_type_id;
+ photos_bmp_reader_type_id = g_type_register_static (TYPE_GDK_READER, "PhotosBmpReader", &g_define_type_info, 0);
+ g_once_init_leave (&photos_bmp_reader_type_id__volatile, photos_bmp_reader_type_id);
+ }
+ return photos_bmp_reader_type_id__volatile;
+}
+
+
+PhotosBmpWriter* photos_bmp_writer_construct (GType object_type, const gchar* filepath) {
+ PhotosBmpWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 124 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = filepath;
+#line 124 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = (PhotosBmpWriter*) photo_file_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_BMP);
+#line 123 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self;
+#line 1539 "BmpSupport.c"
+}
+
+
+PhotosBmpWriter* photos_bmp_writer_new (const gchar* filepath) {
+#line 123 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return photos_bmp_writer_construct (PHOTOS_TYPE_BMP_WRITER, filepath);
+#line 1546 "BmpSupport.c"
+}
+
+
+static void photos_bmp_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) {
+ PhotosBmpWriter * self;
+ GdkPixbuf* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_WRITER, PhotosBmpWriter);
+#line 127 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = pixbuf;
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ gdk_pixbuf_save (_tmp0_, _tmp2_, "bmp", &_inner_error_, NULL, NULL);
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _g_free0 (_tmp2_);
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 128 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return;
+#line 1576 "BmpSupport.c"
+ }
+}
+
+
+static void photos_bmp_writer_class_init (PhotosBmpWriterClass * klass) {
+#line 122 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_writer_parent_class = g_type_class_peek_parent (klass);
+#line 122 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileWriterClass *) klass)->write = photos_bmp_writer_real_write;
+#line 1586 "BmpSupport.c"
+}
+
+
+static void photos_bmp_writer_instance_init (PhotosBmpWriter * self) {
+}
+
+
+GType photos_bmp_writer_get_type (void) {
+ static volatile gsize photos_bmp_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_bmp_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosBmpWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_bmp_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosBmpWriter), 0, (GInstanceInitFunc) photos_bmp_writer_instance_init, NULL };
+ GType photos_bmp_writer_type_id;
+ photos_bmp_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_WRITER, "PhotosBmpWriter", &g_define_type_info, 0);
+ g_once_init_leave (&photos_bmp_writer_type_id__volatile, photos_bmp_writer_type_id);
+ }
+ return photos_bmp_writer_type_id__volatile;
+}
+
+
+PhotosBmpMetadataWriter* photos_bmp_metadata_writer_construct (GType object_type, const gchar* filepath) {
+ PhotosBmpMetadataWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 134 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = filepath;
+#line 134 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = (PhotosBmpMetadataWriter*) photo_file_metadata_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_BMP);
+#line 133 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self;
+#line 1617 "BmpSupport.c"
+}
+
+
+PhotosBmpMetadataWriter* photos_bmp_metadata_writer_new (const gchar* filepath) {
+#line 133 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return photos_bmp_metadata_writer_construct (PHOTOS_TYPE_BMP_METADATA_WRITER, filepath);
+#line 1624 "BmpSupport.c"
+}
+
+
+static void photos_bmp_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error) {
+ PhotosBmpMetadataWriter * self;
+#line 137 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_METADATA_WRITER, PhotosBmpMetadataWriter);
+#line 137 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 1634 "BmpSupport.c"
+}
+
+
+static void photos_bmp_metadata_writer_class_init (PhotosBmpMetadataWriterClass * klass) {
+#line 132 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_metadata_writer_parent_class = g_type_class_peek_parent (klass);
+#line 132 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileMetadataWriterClass *) klass)->write_metadata = photos_bmp_metadata_writer_real_write_metadata;
+#line 1643 "BmpSupport.c"
+}
+
+
+static void photos_bmp_metadata_writer_instance_init (PhotosBmpMetadataWriter * self) {
+}
+
+
+GType photos_bmp_metadata_writer_get_type (void) {
+ static volatile gsize photos_bmp_metadata_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_bmp_metadata_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosBmpMetadataWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_bmp_metadata_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosBmpMetadataWriter), 0, (GInstanceInitFunc) photos_bmp_metadata_writer_instance_init, NULL };
+ GType photos_bmp_metadata_writer_type_id;
+ photos_bmp_metadata_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_METADATA_WRITER, "PhotosBmpMetadataWriter", &g_define_type_info, 0);
+ g_once_init_leave (&photos_bmp_metadata_writer_type_id__volatile, photos_bmp_metadata_writer_type_id);
+ }
+ return photos_bmp_metadata_writer_type_id__volatile;
+}
+
+
+void photos_bmp_file_format_driver_init (void) {
+ PhotosBmpFileFormatDriver* _tmp0_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_driver_new ();
+#line 146 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _photo_file_format_driver_unref0 (photos_bmp_file_format_driver_instance);
+#line 146 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_driver_instance = _tmp0_;
+#line 147 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_properties_init ();
+#line 1673 "BmpSupport.c"
+}
+
+
+static gpointer _photo_file_format_driver_ref0 (gpointer self) {
+#line 151 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self ? photo_file_format_driver_ref (self) : NULL;
+#line 1680 "BmpSupport.c"
+}
+
+
+PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_get_instance (void) {
+ PhotosBmpFileFormatDriver* result = NULL;
+ PhotosBmpFileFormatDriver* _tmp0_ = NULL;
+ PhotosBmpFileFormatDriver* _tmp1_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_driver_instance;
+#line 151 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = _photo_file_format_driver_ref0 (_tmp0_);
+#line 151 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp1_;
+#line 151 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1696 "BmpSupport.c"
+}
+
+
+static PhotoFileFormatProperties* photos_bmp_file_format_driver_real_get_properties (PhotoFileFormatDriver* base) {
+ PhotosBmpFileFormatDriver * self;
+ PhotoFileFormatProperties* result = NULL;
+ PhotosBmpFileFormatProperties* _tmp0_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 155 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photos_bmp_file_format_properties_get_instance ();
+#line 155 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties);
+#line 155 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1712 "BmpSupport.c"
+}
+
+
+static PhotoFileReader* photos_bmp_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PhotosBmpFileFormatDriver * self;
+ PhotoFileReader* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotosBmpReader* _tmp1_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 158 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 159 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = filepath;
+#line 159 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = photos_bmp_reader_new (_tmp0_);
+#line 159 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_READER, PhotoFileReader);
+#line 159 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1733 "BmpSupport.c"
+}
+
+
+static gboolean photos_bmp_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base) {
+ PhotosBmpFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 162 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 163 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = TRUE;
+#line 163 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1746 "BmpSupport.c"
+}
+
+
+static gboolean photos_bmp_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base) {
+ PhotosBmpFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 166 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 167 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1759 "BmpSupport.c"
+}
+
+
+static PhotoFileWriter* photos_bmp_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PhotosBmpFileFormatDriver * self;
+ PhotoFileWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotosBmpWriter* _tmp1_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 170 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 171 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = filepath;
+#line 171 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = photos_bmp_writer_new (_tmp0_);
+#line 171 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_WRITER, PhotoFileWriter);
+#line 171 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1780 "BmpSupport.c"
+}
+
+
+static PhotoFileMetadataWriter* photos_bmp_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PhotosBmpFileFormatDriver * self;
+ PhotoFileMetadataWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotosBmpMetadataWriter* _tmp1_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 174 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 175 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = filepath;
+#line 175 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = photos_bmp_metadata_writer_new (_tmp0_);
+#line 175 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter);
+#line 175 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1801 "BmpSupport.c"
+}
+
+
+static PhotoFileSniffer* photos_bmp_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options) {
+ PhotosBmpFileFormatDriver * self;
+ PhotoFileSniffer* result = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+ PhotosBmpSniffer* _tmp2_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 178 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 179 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = file;
+#line 179 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp1_ = options;
+#line 179 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp2_ = photos_bmp_sniffer_new (_tmp0_, _tmp1_);
+#line 179 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer);
+#line 179 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1825 "BmpSupport.c"
+}
+
+
+static PhotoMetadata* photos_bmp_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base) {
+ PhotosBmpFileFormatDriver * self;
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 183 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ _tmp0_ = photo_metadata_new ();
+#line 183 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ result = _tmp0_;
+#line 183 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return result;
+#line 1841 "BmpSupport.c"
+}
+
+
+PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_construct (GType object_type) {
+ PhotosBmpFileFormatDriver* self = NULL;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = (PhotosBmpFileFormatDriver*) photo_file_format_driver_construct (object_type);
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return self;
+#line 1851 "BmpSupport.c"
+}
+
+
+PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_new (void) {
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ return photos_bmp_file_format_driver_construct (PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER);
+#line 1858 "BmpSupport.c"
+}
+
+
+static void photos_bmp_file_format_driver_class_init (PhotosBmpFileFormatDriverClass * klass) {
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ photos_bmp_file_format_driver_parent_class = g_type_class_peek_parent (klass);
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->finalize = photos_bmp_file_format_driver_finalize;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->get_properties = photos_bmp_file_format_driver_real_get_properties;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_reader = photos_bmp_file_format_driver_real_create_reader;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_image = photos_bmp_file_format_driver_real_can_write_image;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_metadata = photos_bmp_file_format_driver_real_can_write_metadata;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_writer = photos_bmp_file_format_driver_real_create_writer;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata_writer = photos_bmp_file_format_driver_real_create_metadata_writer;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_sniffer = photos_bmp_file_format_driver_real_create_sniffer;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata = photos_bmp_file_format_driver_real_create_metadata;
+#line 1883 "BmpSupport.c"
+}
+
+
+static void photos_bmp_file_format_driver_instance_init (PhotosBmpFileFormatDriver * self) {
+}
+
+
+static void photos_bmp_file_format_driver_finalize (PhotoFileFormatDriver* obj) {
+ PhotosBmpFileFormatDriver * self;
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver);
+#line 142 "/home/jens/Source/shotwell/src/photos/BmpSupport.vala"
+ PHOTO_FILE_FORMAT_DRIVER_CLASS (photos_bmp_file_format_driver_parent_class)->finalize (obj);
+#line 1897 "BmpSupport.c"
+}
+
+
+GType photos_bmp_file_format_driver_get_type (void) {
+ static volatile gsize photos_bmp_file_format_driver_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_bmp_file_format_driver_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosBmpFileFormatDriverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_bmp_file_format_driver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosBmpFileFormatDriver), 0, (GInstanceInitFunc) photos_bmp_file_format_driver_instance_init, NULL };
+ GType photos_bmp_file_format_driver_type_id;
+ photos_bmp_file_format_driver_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_DRIVER, "PhotosBmpFileFormatDriver", &g_define_type_info, 0);
+ g_once_init_leave (&photos_bmp_file_format_driver_type_id__volatile, photos_bmp_file_format_driver_type_id);
+ }
+ return photos_bmp_file_format_driver_type_id__volatile;
+}
+
+
+
diff --git a/src/photos/GRaw.c b/src/photos/GRaw.c
new file mode 100644
index 0000000..56cfe34
--- /dev/null
+++ b/src/photos/GRaw.c
@@ -0,0 +1,2462 @@
+/* GRaw.c generated by valac 0.32.1, the Vala compiler
+ * generated from GRaw.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <float.h>
+#include <math.h>
+#include <libraw/libraw.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define GRAW_TYPE_COLORSPACE (graw_colorspace_get_type ())
+
+#define GRAW_TYPE_FLIP (graw_flip_get_type ())
+
+#define GRAW_TYPE_FUJI_ROTATE (graw_fuji_rotate_get_type ())
+
+#define GRAW_TYPE_HIGHLIGHT_MODE (graw_highlight_mode_get_type ())
+
+#define GRAW_TYPE_INTERPOLATION_QUALITY (graw_interpolation_quality_get_type ())
+
+#define GRAW_TYPE_PROCESSED_IMAGE (graw_processed_image_get_type ())
+#define GRAW_PROCESSED_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImage))
+#define GRAW_PROCESSED_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImageClass))
+#define GRAW_IS_PROCESSED_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GRAW_TYPE_PROCESSED_IMAGE))
+#define GRAW_IS_PROCESSED_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GRAW_TYPE_PROCESSED_IMAGE))
+#define GRAW_PROCESSED_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImageClass))
+
+typedef struct _GRawProcessedImage GRawProcessedImage;
+typedef struct _GRawProcessedImageClass GRawProcessedImageClass;
+typedef struct _GRawProcessedImagePrivate GRawProcessedImagePrivate;
+#define _free0(var) ((var == NULL) ? NULL : (var = (free (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _graw_processed_image_unref0(var) ((var == NULL) ? NULL : (var = (graw_processed_image_unref (var), NULL)))
+#define _g_bytes_unref0(var) ((var == NULL) ? NULL : (var = (g_bytes_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _GRawParamSpecProcessedImage GRawParamSpecProcessedImage;
+
+#define GRAW_TYPE_PROCESSOR (graw_processor_get_type ())
+#define GRAW_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GRAW_TYPE_PROCESSOR, GRawProcessor))
+#define GRAW_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GRAW_TYPE_PROCESSOR, GRawProcessorClass))
+#define GRAW_IS_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GRAW_TYPE_PROCESSOR))
+#define GRAW_IS_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GRAW_TYPE_PROCESSOR))
+#define GRAW_PROCESSOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GRAW_TYPE_PROCESSOR, GRawProcessorClass))
+
+typedef struct _GRawProcessor GRawProcessor;
+typedef struct _GRawProcessorClass GRawProcessorClass;
+typedef struct _GRawProcessorPrivate GRawProcessorPrivate;
+#define _libraw_close0(var) ((var == NULL) ? NULL : (var = (libraw_close (var), NULL)))
+typedef struct _GRawParamSpecProcessor GRawParamSpecProcessor;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ GRAW_COLORSPACE_RAW = 0,
+ GRAW_COLORSPACE_SRGB = 1,
+ GRAW_COLORSPACE_ADOBE = 2,
+ GRAW_COLORSPACE_WIDE = 3,
+ GRAW_COLORSPACE_PROPHOTO = 4,
+ GRAW_COLORSPACE_XYZ = 5
+} GRawColorspace;
+
+typedef enum {
+ GRAW_EXCEPTION_UNSPECIFIED,
+ GRAW_EXCEPTION_UNSUPPORTED_FILE,
+ GRAW_EXCEPTION_NONEXISTANT_IMAGE,
+ GRAW_EXCEPTION_OUT_OF_ORDER_CALL,
+ GRAW_EXCEPTION_NO_THUMBNAIL,
+ GRAW_EXCEPTION_UNSUPPORTED_THUMBNAIL,
+ GRAW_EXCEPTION_OUT_OF_MEMORY,
+ GRAW_EXCEPTION_DATA_ERROR,
+ GRAW_EXCEPTION_IO_ERROR,
+ GRAW_EXCEPTION_CANCELLED_BY_CALLBACK,
+ GRAW_EXCEPTION_BAD_CROP,
+ GRAW_EXCEPTION_SYSTEM_ERROR
+} GRawException;
+#define GRAW_EXCEPTION graw_exception_quark ()
+typedef enum {
+ GRAW_FLIP_FROM_SOURCE = -1,
+ GRAW_FLIP_NONE = 0,
+ GRAW_FLIP_UPSIDE_DOWN = 3,
+ GRAW_FLIP_COUNTERCLOCKWISE = 5,
+ GRAW_FLIP_CLOCKWISE = 6
+} GRawFlip;
+
+typedef enum {
+ GRAW_FUJI_ROTATE_USE = -1,
+ GRAW_FUJI_ROTATE_DONT_USE = 0
+} GRawFujiRotate;
+
+typedef enum {
+ GRAW_HIGHLIGHT_MODE_CLIP = 0,
+ GRAW_HIGHLIGHT_MODE_UNCLIP = 1,
+ GRAW_HIGHLIGHT_MODE_BLEND = 2,
+ GRAW_HIGHLIGHT_MODE_REBUILD = 3
+} GRawHighlightMode;
+
+typedef enum {
+ GRAW_INTERPOLATION_QUALITY_LINEAR = 0,
+ GRAW_INTERPOLATION_QUALITY_VNG = 1,
+ GRAW_INTERPOLATION_QUALITY_PPG = 2,
+ GRAW_INTERPOLATION_QUALITY_AHD = 3
+} GRawInterpolationQuality;
+
+struct _GRawProcessedImage {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ GRawProcessedImagePrivate * priv;
+};
+
+struct _GRawProcessedImageClass {
+ GTypeClass parent_class;
+ void (*finalize) (GRawProcessedImage *self);
+};
+
+struct _GRawProcessedImagePrivate {
+ libraw_processed_image_t* image;
+ GdkPixbuf* pixbuf;
+};
+
+struct _GRawParamSpecProcessedImage {
+ GParamSpec parent_instance;
+};
+
+struct _GRawProcessor {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ GRawProcessorPrivate * priv;
+};
+
+struct _GRawProcessorClass {
+ GTypeClass parent_class;
+ void (*finalize) (GRawProcessor *self);
+};
+
+struct _GRawProcessorPrivate {
+ libraw_data_t* proc;
+};
+
+struct _GRawParamSpecProcessor {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer graw_processed_image_parent_class = NULL;
+static gpointer graw_processor_parent_class = NULL;
+
+#define GRAW_HD_POWER 2.222
+#define GRAW_HD_SLOPE 4.5
+#define GRAW_SRGB_POWER 2.4
+#define GRAW_SRGB_SLOPE 12.92
+GType graw_colorspace_get_type (void) G_GNUC_CONST;
+GQuark graw_exception_quark (void);
+GType graw_flip_get_type (void) G_GNUC_CONST;
+GType graw_fuji_rotate_get_type (void) G_GNUC_CONST;
+GType graw_highlight_mode_get_type (void) G_GNUC_CONST;
+GType graw_interpolation_quality_get_type (void) G_GNUC_CONST;
+gpointer graw_processed_image_ref (gpointer instance);
+void graw_processed_image_unref (gpointer instance);
+GParamSpec* graw_param_spec_processed_image (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void graw_value_set_processed_image (GValue* value, gpointer v_object);
+void graw_value_take_processed_image (GValue* value, gpointer v_object);
+gpointer graw_value_get_processed_image (const GValue* value);
+GType graw_processed_image_get_type (void) G_GNUC_CONST;
+#define GRAW_PROCESSED_IMAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImagePrivate))
+enum {
+ GRAW_PROCESSED_IMAGE_DUMMY_PROPERTY
+};
+GRawProcessedImage* graw_processed_image_new (libraw_data_t* proc, GError** error);
+GRawProcessedImage* graw_processed_image_construct (GType object_type, libraw_data_t* proc, GError** error);
+void graw_throw_exception (const gchar* caller, enum LibRaw_errors _result_, GError** error);
+GRawProcessedImage* graw_processed_image_new_from_thumb (libraw_data_t* proc, GError** error);
+GRawProcessedImage* graw_processed_image_construct_from_thumb (GType object_type, libraw_data_t* proc, GError** error);
+GdkPixbuf* graw_processed_image_get_pixbuf_copy (GRawProcessedImage* self);
+gushort graw_processed_image_get_width (GRawProcessedImage* self);
+gushort graw_processed_image_get_height (GRawProcessedImage* self);
+gushort graw_processed_image_get_colors (GRawProcessedImage* self);
+gushort graw_processed_image_get_bits (GRawProcessedImage* self);
+guint8* graw_processed_image_get_data (GRawProcessedImage* self);
+guint graw_processed_image_get_data_size (GRawProcessedImage* self);
+static void graw_processed_image_finalize (GRawProcessedImage* obj);
+gpointer graw_processor_ref (gpointer instance);
+void graw_processor_unref (gpointer instance);
+GParamSpec* graw_param_spec_processor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void graw_value_set_processor (GValue* value, gpointer v_object);
+void graw_value_take_processor (GValue* value, gpointer v_object);
+gpointer graw_value_get_processor (const GValue* value);
+GType graw_processor_get_type (void) G_GNUC_CONST;
+#define GRAW_PROCESSOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GRAW_TYPE_PROCESSOR, GRawProcessorPrivate))
+enum {
+ GRAW_PROCESSOR_DUMMY_PROPERTY
+};
+GRawProcessor* graw_processor_new (enum LibRaw_constructor_flags options);
+GRawProcessor* graw_processor_construct (GType object_type, enum LibRaw_constructor_flags options);
+void graw_processor_adjust_sizes_info_only (GRawProcessor* self, GError** error);
+libraw_imgother_t graw_processor_get_image_other (GRawProcessor* self);
+libraw_iparams_t graw_processor_get_image_params (GRawProcessor* self);
+libraw_image_sizes_t graw_processor_get_sizes (GRawProcessor* self);
+libraw_thumbnail_t graw_processor_get_thumbnail (GRawProcessor* self);
+GRawProcessedImage* graw_processor_make_mem_image (GRawProcessor* self, GError** error);
+GRawProcessedImage* graw_processor_make_thumb_image (GRawProcessor* self, GError** error);
+void graw_processor_open_buffer (GRawProcessor* self, guint8* buffer, int buffer_length1, GError** error);
+void graw_processor_open_file (GRawProcessor* self, const gchar* filename, GError** error);
+void graw_processor_process (GRawProcessor* self, GError** error);
+void graw_processor_ppm_tiff_writer (GRawProcessor* self, const gchar* filename, GError** error);
+void graw_processor_thumb_writer (GRawProcessor* self, const gchar* filename, GError** error);
+void graw_processor_recycle (GRawProcessor* self);
+void graw_processor_unpack (GRawProcessor* self, GError** error);
+void graw_processor_unpack_thumb (GRawProcessor* self, GError** error);
+void graw_processor_configure_for_rgb_display (GRawProcessor* self, gboolean half_size);
+libraw_output_params_t* graw_processor_get_output_params (GRawProcessor* self);
+static void graw_processor_finalize (GRawProcessor* obj);
+
+
+GType graw_colorspace_get_type (void) {
+ static volatile gsize graw_colorspace_type_id__volatile = 0;
+ if (g_once_init_enter (&graw_colorspace_type_id__volatile)) {
+ static const GEnumValue values[] = {{GRAW_COLORSPACE_RAW, "GRAW_COLORSPACE_RAW", "raw"}, {GRAW_COLORSPACE_SRGB, "GRAW_COLORSPACE_SRGB", "srgb"}, {GRAW_COLORSPACE_ADOBE, "GRAW_COLORSPACE_ADOBE", "adobe"}, {GRAW_COLORSPACE_WIDE, "GRAW_COLORSPACE_WIDE", "wide"}, {GRAW_COLORSPACE_PROPHOTO, "GRAW_COLORSPACE_PROPHOTO", "prophoto"}, {GRAW_COLORSPACE_XYZ, "GRAW_COLORSPACE_XYZ", "xyz"}, {0, NULL, NULL}};
+ GType graw_colorspace_type_id;
+ graw_colorspace_type_id = g_enum_register_static ("GRawColorspace", values);
+ g_once_init_leave (&graw_colorspace_type_id__volatile, graw_colorspace_type_id);
+ }
+ return graw_colorspace_type_id__volatile;
+}
+
+
+GQuark graw_exception_quark (void) {
+ return g_quark_from_static_string ("graw_exception-quark");
+}
+
+
+GType graw_flip_get_type (void) {
+ static volatile gsize graw_flip_type_id__volatile = 0;
+ if (g_once_init_enter (&graw_flip_type_id__volatile)) {
+ static const GEnumValue values[] = {{GRAW_FLIP_FROM_SOURCE, "GRAW_FLIP_FROM_SOURCE", "from-source"}, {GRAW_FLIP_NONE, "GRAW_FLIP_NONE", "none"}, {GRAW_FLIP_UPSIDE_DOWN, "GRAW_FLIP_UPSIDE_DOWN", "upside-down"}, {GRAW_FLIP_COUNTERCLOCKWISE, "GRAW_FLIP_COUNTERCLOCKWISE", "counterclockwise"}, {GRAW_FLIP_CLOCKWISE, "GRAW_FLIP_CLOCKWISE", "clockwise"}, {0, NULL, NULL}};
+ GType graw_flip_type_id;
+ graw_flip_type_id = g_enum_register_static ("GRawFlip", values);
+ g_once_init_leave (&graw_flip_type_id__volatile, graw_flip_type_id);
+ }
+ return graw_flip_type_id__volatile;
+}
+
+
+GType graw_fuji_rotate_get_type (void) {
+ static volatile gsize graw_fuji_rotate_type_id__volatile = 0;
+ if (g_once_init_enter (&graw_fuji_rotate_type_id__volatile)) {
+ static const GEnumValue values[] = {{GRAW_FUJI_ROTATE_USE, "GRAW_FUJI_ROTATE_USE", "use"}, {GRAW_FUJI_ROTATE_DONT_USE, "GRAW_FUJI_ROTATE_DONT_USE", "dont-use"}, {0, NULL, NULL}};
+ GType graw_fuji_rotate_type_id;
+ graw_fuji_rotate_type_id = g_enum_register_static ("GRawFujiRotate", values);
+ g_once_init_leave (&graw_fuji_rotate_type_id__volatile, graw_fuji_rotate_type_id);
+ }
+ return graw_fuji_rotate_type_id__volatile;
+}
+
+
+GType graw_highlight_mode_get_type (void) {
+ static volatile gsize graw_highlight_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&graw_highlight_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{GRAW_HIGHLIGHT_MODE_CLIP, "GRAW_HIGHLIGHT_MODE_CLIP", "clip"}, {GRAW_HIGHLIGHT_MODE_UNCLIP, "GRAW_HIGHLIGHT_MODE_UNCLIP", "unclip"}, {GRAW_HIGHLIGHT_MODE_BLEND, "GRAW_HIGHLIGHT_MODE_BLEND", "blend"}, {GRAW_HIGHLIGHT_MODE_REBUILD, "GRAW_HIGHLIGHT_MODE_REBUILD", "rebuild"}, {0, NULL, NULL}};
+ GType graw_highlight_mode_type_id;
+ graw_highlight_mode_type_id = g_enum_register_static ("GRawHighlightMode", values);
+ g_once_init_leave (&graw_highlight_mode_type_id__volatile, graw_highlight_mode_type_id);
+ }
+ return graw_highlight_mode_type_id__volatile;
+}
+
+
+GType graw_interpolation_quality_get_type (void) {
+ static volatile gsize graw_interpolation_quality_type_id__volatile = 0;
+ if (g_once_init_enter (&graw_interpolation_quality_type_id__volatile)) {
+ static const GEnumValue values[] = {{GRAW_INTERPOLATION_QUALITY_LINEAR, "GRAW_INTERPOLATION_QUALITY_LINEAR", "linear"}, {GRAW_INTERPOLATION_QUALITY_VNG, "GRAW_INTERPOLATION_QUALITY_VNG", "vng"}, {GRAW_INTERPOLATION_QUALITY_PPG, "GRAW_INTERPOLATION_QUALITY_PPG", "ppg"}, {GRAW_INTERPOLATION_QUALITY_AHD, "GRAW_INTERPOLATION_QUALITY_AHD", "ahd"}, {0, NULL, NULL}};
+ GType graw_interpolation_quality_type_id;
+ graw_interpolation_quality_type_id = g_enum_register_static ("GRawInterpolationQuality", values);
+ g_once_init_leave (&graw_interpolation_quality_type_id__volatile, graw_interpolation_quality_type_id);
+ }
+ return graw_interpolation_quality_type_id__volatile;
+}
+
+
+GRawProcessedImage* graw_processed_image_construct (GType object_type, libraw_data_t* proc, GError** error) {
+ GRawProcessedImage* self = NULL;
+ enum LibRaw_errors _result_ = 0;
+ libraw_data_t* _tmp0_ = NULL;
+ libraw_processed_image_t* _tmp1_ = NULL;
+ enum LibRaw_errors _tmp2_ = 0;
+ libraw_processed_image_t* _tmp3_ = NULL;
+ libraw_processed_image_t* _tmp4_ = NULL;
+ guint8* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ libraw_processed_image_t* _tmp6_ = NULL;
+ gushort _tmp7_ = 0U;
+ libraw_processed_image_t* _tmp8_ = NULL;
+ gushort _tmp9_ = 0U;
+ libraw_processed_image_t* _tmp10_ = NULL;
+ gushort _tmp11_ = 0U;
+ libraw_processed_image_t* _tmp12_ = NULL;
+ gushort _tmp13_ = 0U;
+ libraw_processed_image_t* _tmp14_ = NULL;
+ gushort _tmp15_ = 0U;
+ GdkPixbuf* _tmp16_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (proc != NULL, NULL);
+#line 106 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self = (GRawProcessedImage*) g_type_create_instance (object_type);
+#line 107 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _result_ = LIBRAW_SUCCESS;
+#line 108 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = proc;
+#line 108 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_dcraw_make_mem_image (_tmp0_, &_result_);
+#line 108 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _free0 (self->priv->image);
+#line 108 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv->image = _tmp1_;
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = _result_;
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("ProcessedImage", _tmp2_, &_inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _graw_processed_image_unref0 (self);
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 344 "GRaw.c"
+ } else {
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 352 "GRaw.c"
+ }
+ }
+#line 110 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp3_ = self->priv->image;
+#line 110 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _vala_assert (_tmp3_ != NULL, "image != null");
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp4_ = self->priv->image;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp5_ = _tmp4_->data;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp5__length1 = _tmp4_->data_size;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp6_ = self->priv->image;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp7_ = _tmp6_->bits;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp8_ = self->priv->image;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp9_ = _tmp8_->width;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp10_ = self->priv->image;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp11_ = _tmp10_->height;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp12_ = self->priv->image;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp13_ = _tmp12_->width;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp14_ = self->priv->image;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp15_ = _tmp14_->colors;
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp16_ = gdk_pixbuf_new_from_data (_tmp5_, GDK_COLORSPACE_RGB, FALSE, (gint) _tmp7_, (gint) _tmp9_, (gint) _tmp11_, (gint) (_tmp13_ * _tmp15_), (GdkPixbufDestroyNotify) NULL, NULL);
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_object_unref0 (self->priv->pixbuf);
+#line 114 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv->pixbuf = _tmp16_;
+#line 106 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return self;
+#line 393 "GRaw.c"
+}
+
+
+GRawProcessedImage* graw_processed_image_new (libraw_data_t* proc, GError** error) {
+#line 106 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return graw_processed_image_construct (GRAW_TYPE_PROCESSED_IMAGE, proc, error);
+#line 400 "GRaw.c"
+}
+
+
+GRawProcessedImage* graw_processed_image_construct_from_thumb (GType object_type, libraw_data_t* proc, GError** error) {
+ GRawProcessedImage* self = NULL;
+ enum LibRaw_errors _result_ = 0;
+ libraw_data_t* _tmp0_ = NULL;
+ libraw_processed_image_t* _tmp1_ = NULL;
+ enum LibRaw_errors _tmp2_ = 0;
+ libraw_processed_image_t* _tmp3_ = NULL;
+ libraw_processed_image_t* _tmp17_ = NULL;
+ GdkPixbuf* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ libraw_processed_image_t* _tmp21_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ libraw_processed_image_t* _tmp25_ = NULL;
+ GdkPixbuf* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ libraw_processed_image_t* _tmp29_ = NULL;
+ GdkPixbuf* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ GError * _inner_error_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (proc != NULL, NULL);
+#line 118 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self = (GRawProcessedImage*) g_type_create_instance (object_type);
+#line 119 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _result_ = LIBRAW_SUCCESS;
+#line 120 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = proc;
+#line 120 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_dcraw_make_mem_thumb (_tmp0_, &_result_);
+#line 120 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _free0 (self->priv->image);
+#line 120 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv->image = _tmp1_;
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = _result_;
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("ProcessedImage.from_thumb", _tmp2_, &_inner_error_);
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _graw_processed_image_unref0 (self);
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 456 "GRaw.c"
+ } else {
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 121 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 464 "GRaw.c"
+ }
+ }
+#line 122 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp3_ = self->priv->image;
+#line 122 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _vala_assert (_tmp3_ != NULL, "image != null");
+#line 471 "GRaw.c"
+ {
+ GBytes* bytes = NULL;
+ libraw_processed_image_t* _tmp4_ = NULL;
+ guint8* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GBytes* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ GBytes* _tmp8_ = NULL;
+ GMemoryInputStream* _tmp9_ = NULL;
+ GMemoryInputStream* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+ GdkPixbuf* _tmp13_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp4_ = self->priv->image;
+#line 128 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp5_ = _tmp4_->data;
+#line 128 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp5__length1 = _tmp4_->data_size;
+#line 128 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp6_ = g_bytes_new_static (_tmp5_, _tmp5__length1);
+#line 128 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ bytes = _tmp6_;
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp8_ = bytes;
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp9_ = (GMemoryInputStream*) g_memory_input_stream_new_from_bytes (_tmp8_);
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp10_ = _tmp9_;
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp11_ = gdk_pixbuf_new_from_stream (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_);
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp12_ = _tmp11_;
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_object_unref0 (_tmp10_);
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp7_ = _tmp12_;
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_bytes_unref0 (bytes);
+#line 513 "GRaw.c"
+ goto __catch26_g_error;
+ }
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp13_ = _tmp7_;
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp7_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_object_unref0 (self->priv->pixbuf);
+#line 129 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv->pixbuf = _tmp13_;
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_object_unref0 (_tmp7_);
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_bytes_unref0 (bytes);
+#line 528 "GRaw.c"
+ }
+ goto __finally26;
+ __catch26_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GError* _tmp16_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ err = _inner_error_;
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp14_ = err;
+#line 132 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp15_ = _tmp14_->message;
+#line 132 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp16_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_UNSUPPORTED_THUMBNAIL, _tmp15_);
+#line 132 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp16_;
+#line 132 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_error_free0 (err);
+#line 551 "GRaw.c"
+ goto __finally26;
+ }
+ __finally26:
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _graw_processed_image_unref0 (self);
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 565 "GRaw.c"
+ } else {
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 127 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 573 "GRaw.c"
+ }
+ }
+#line 136 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp17_ = self->priv->image;
+#line 136 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp18_ = self->priv->pixbuf;
+#line 136 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp19_ = gdk_pixbuf_get_width (_tmp18_);
+#line 136 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp20_ = _tmp19_;
+#line 136 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp17_->width = (gushort) _tmp20_;
+#line 137 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp21_ = self->priv->image;
+#line 137 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp22_ = self->priv->pixbuf;
+#line 137 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp23_ = gdk_pixbuf_get_height (_tmp22_);
+#line 137 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp24_ = _tmp23_;
+#line 137 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp21_->height = (gushort) _tmp24_;
+#line 138 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp25_ = self->priv->image;
+#line 138 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp26_ = self->priv->pixbuf;
+#line 138 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp27_ = gdk_pixbuf_get_n_channels (_tmp26_);
+#line 138 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp28_ = _tmp27_;
+#line 138 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp25_->colors = (gushort) _tmp28_;
+#line 139 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp29_ = self->priv->image;
+#line 139 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp30_ = self->priv->pixbuf;
+#line 139 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp31_ = gdk_pixbuf_get_bits_per_sample (_tmp30_);
+#line 139 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp32_ = _tmp31_;
+#line 139 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp29_->bits = (gushort) _tmp32_;
+#line 118 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return self;
+#line 618 "GRaw.c"
+}
+
+
+GRawProcessedImage* graw_processed_image_new_from_thumb (libraw_data_t* proc, GError** error) {
+#line 118 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return graw_processed_image_construct_from_thumb (GRAW_TYPE_PROCESSED_IMAGE, proc, error);
+#line 625 "GRaw.c"
+}
+
+
+GdkPixbuf* graw_processed_image_get_pixbuf_copy (GRawProcessedImage* self) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSED_IMAGE (self), NULL);
+#line 144 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->pixbuf;
+#line 144 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = gdk_pixbuf_copy (_tmp0_);
+#line 144 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 144 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 643 "GRaw.c"
+}
+
+
+gushort graw_processed_image_get_width (GRawProcessedImage* self) {
+ gushort result;
+ libraw_processed_image_t* _tmp0_ = NULL;
+ gushort _tmp1_ = 0U;
+#line 71 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSED_IMAGE (self), 0U);
+#line 72 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->image;
+#line 72 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _tmp0_->width;
+#line 72 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 72 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 661 "GRaw.c"
+}
+
+
+gushort graw_processed_image_get_height (GRawProcessedImage* self) {
+ gushort result;
+ libraw_processed_image_t* _tmp0_ = NULL;
+ gushort _tmp1_ = 0U;
+#line 77 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSED_IMAGE (self), 0U);
+#line 78 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->image;
+#line 78 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _tmp0_->height;
+#line 78 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 78 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 679 "GRaw.c"
+}
+
+
+gushort graw_processed_image_get_colors (GRawProcessedImage* self) {
+ gushort result;
+ libraw_processed_image_t* _tmp0_ = NULL;
+ gushort _tmp1_ = 0U;
+#line 83 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSED_IMAGE (self), 0U);
+#line 84 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->image;
+#line 84 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _tmp0_->colors;
+#line 84 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 84 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 697 "GRaw.c"
+}
+
+
+gushort graw_processed_image_get_bits (GRawProcessedImage* self) {
+ gushort result;
+ libraw_processed_image_t* _tmp0_ = NULL;
+ gushort _tmp1_ = 0U;
+#line 89 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSED_IMAGE (self), 0U);
+#line 90 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->image;
+#line 90 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _tmp0_->bits;
+#line 90 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 90 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 715 "GRaw.c"
+}
+
+
+guint8* graw_processed_image_get_data (GRawProcessedImage* self) {
+ guint8* result;
+ libraw_processed_image_t* _tmp0_ = NULL;
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 95 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSED_IMAGE (self), NULL);
+#line 96 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->image;
+#line 96 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _tmp0_->data;
+#line 96 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1__length1 = _tmp0_->data_size;
+#line 96 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 96 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 736 "GRaw.c"
+}
+
+
+guint graw_processed_image_get_data_size (GRawProcessedImage* self) {
+ guint result;
+ libraw_processed_image_t* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 101 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSED_IMAGE (self), 0U);
+#line 102 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->image;
+#line 102 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _tmp0_->data_size;
+#line 102 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 102 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 754 "GRaw.c"
+}
+
+
+static void graw_value_processed_image_init (GValue* value) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 761 "GRaw.c"
+}
+
+
+static void graw_value_processed_image_free_value (GValue* value) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (value->data[0].v_pointer) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processed_image_unref (value->data[0].v_pointer);
+#line 770 "GRaw.c"
+ }
+}
+
+
+static void graw_value_processed_image_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (src_value->data[0].v_pointer) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ dest_value->data[0].v_pointer = graw_processed_image_ref (src_value->data[0].v_pointer);
+#line 780 "GRaw.c"
+ } else {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 784 "GRaw.c"
+ }
+}
+
+
+static gpointer graw_value_processed_image_peek_pointer (const GValue* value) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return value->data[0].v_pointer;
+#line 792 "GRaw.c"
+}
+
+
+static gchar* graw_value_processed_image_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (collect_values[0].v_pointer) {
+#line 799 "GRaw.c"
+ GRawProcessedImage* object;
+ object = collect_values[0].v_pointer;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 806 "GRaw.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 810 "GRaw.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = graw_processed_image_ref (object);
+#line 814 "GRaw.c"
+ } else {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 818 "GRaw.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 822 "GRaw.c"
+}
+
+
+static gchar* graw_value_processed_image_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ GRawProcessedImage** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (!object_p) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 833 "GRaw.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (!value->data[0].v_pointer) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ *object_p = NULL;
+#line 839 "GRaw.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ *object_p = value->data[0].v_pointer;
+#line 843 "GRaw.c"
+ } else {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ *object_p = graw_processed_image_ref (value->data[0].v_pointer);
+#line 847 "GRaw.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 851 "GRaw.c"
+}
+
+
+GParamSpec* graw_param_spec_processed_image (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ GRawParamSpecProcessedImage* spec;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, GRAW_TYPE_PROCESSED_IMAGE), NULL);
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return G_PARAM_SPEC (spec);
+#line 865 "GRaw.c"
+}
+
+
+gpointer graw_value_get_processed_image (const GValue* value) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GRAW_TYPE_PROCESSED_IMAGE), NULL);
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return value->data[0].v_pointer;
+#line 874 "GRaw.c"
+}
+
+
+void graw_value_set_processed_image (GValue* value, gpointer v_object) {
+ GRawProcessedImage* old;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GRAW_TYPE_PROCESSED_IMAGE));
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ old = value->data[0].v_pointer;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (v_object) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GRAW_TYPE_PROCESSED_IMAGE));
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = v_object;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processed_image_ref (value->data[0].v_pointer);
+#line 894 "GRaw.c"
+ } else {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 898 "GRaw.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (old) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processed_image_unref (old);
+#line 904 "GRaw.c"
+ }
+}
+
+
+void graw_value_take_processed_image (GValue* value, gpointer v_object) {
+ GRawProcessedImage* old;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GRAW_TYPE_PROCESSED_IMAGE));
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ old = value->data[0].v_pointer;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (v_object) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GRAW_TYPE_PROCESSED_IMAGE));
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = v_object;
+#line 923 "GRaw.c"
+ } else {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 927 "GRaw.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (old) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processed_image_unref (old);
+#line 933 "GRaw.c"
+ }
+}
+
+
+static void graw_processed_image_class_init (GRawProcessedImageClass * klass) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processed_image_parent_class = g_type_class_peek_parent (klass);
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ ((GRawProcessedImageClass *) klass)->finalize = graw_processed_image_finalize;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_type_class_add_private (klass, sizeof (GRawProcessedImagePrivate));
+#line 945 "GRaw.c"
+}
+
+
+static void graw_processed_image_instance_init (GRawProcessedImage * self) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv = GRAW_PROCESSED_IMAGE_GET_PRIVATE (self);
+#line 68 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv->pixbuf = NULL;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->ref_count = 1;
+#line 956 "GRaw.c"
+}
+
+
+static void graw_processed_image_finalize (GRawProcessedImage* obj) {
+ GRawProcessedImage * self;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImage);
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_signal_handlers_destroy (self);
+#line 67 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _free0 (self->priv->image);
+#line 68 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_object_unref0 (self->priv->pixbuf);
+#line 970 "GRaw.c"
+}
+
+
+GType graw_processed_image_get_type (void) {
+ static volatile gsize graw_processed_image_type_id__volatile = 0;
+ if (g_once_init_enter (&graw_processed_image_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { graw_value_processed_image_init, graw_value_processed_image_free_value, graw_value_processed_image_copy_value, graw_value_processed_image_peek_pointer, "p", graw_value_processed_image_collect_value, "p", graw_value_processed_image_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (GRawProcessedImageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) graw_processed_image_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GRawProcessedImage), 0, (GInstanceInitFunc) graw_processed_image_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType graw_processed_image_type_id;
+ graw_processed_image_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GRawProcessedImage", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&graw_processed_image_type_id__volatile, graw_processed_image_type_id);
+ }
+ return graw_processed_image_type_id__volatile;
+}
+
+
+gpointer graw_processed_image_ref (gpointer instance) {
+ GRawProcessedImage* self;
+ self = instance;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return instance;
+#line 995 "GRaw.c"
+}
+
+
+void graw_processed_image_unref (gpointer instance) {
+ GRawProcessedImage* self;
+ self = instance;
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ GRAW_PROCESSED_IMAGE_GET_CLASS (self)->finalize (self);
+#line 66 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1008 "GRaw.c"
+ }
+}
+
+
+GRawProcessor* graw_processor_construct (GType object_type, enum LibRaw_constructor_flags options) {
+ GRawProcessor* self = NULL;
+ enum LibRaw_constructor_flags _tmp0_ = 0;
+ libraw_data_t* _tmp1_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self = (GRawProcessor*) g_type_create_instance (object_type);
+#line 158 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = options;
+#line 158 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_init (_tmp0_);
+#line 158 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _libraw_close0 (self->priv->proc);
+#line 158 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv->proc = _tmp1_;
+#line 157 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return self;
+#line 1029 "GRaw.c"
+}
+
+
+GRawProcessor* graw_processor_new (enum LibRaw_constructor_flags options) {
+#line 157 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return graw_processor_construct (GRAW_TYPE_PROCESSOR, options);
+#line 1036 "GRaw.c"
+}
+
+
+void graw_processor_adjust_sizes_info_only (GRawProcessor* self, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ enum LibRaw_errors _tmp1_ = 0;
+ GError * _inner_error_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_adjust_sizes_info_only (_tmp0_);
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("adjust_sizes_info_only", _tmp1_, &_inner_error_);
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1060 "GRaw.c"
+ } else {
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 162 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1068 "GRaw.c"
+ }
+ }
+}
+
+
+static libraw_imgother_t libraw_get_image_other (libraw_data_t* self) {
+ libraw_imgother_t result = {0};
+ libraw_imgother_t _tmp0_ = {0};
+#line 188 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ g_return_val_if_fail (self != NULL, result);
+#line 188 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp0_ = self->other;
+#line 188 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ result = _tmp0_;
+#line 188 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ return result;
+#line 1085 "GRaw.c"
+}
+
+
+libraw_imgother_t graw_processor_get_image_other (GRawProcessor* self) {
+ libraw_imgother_t result = {0};
+ libraw_data_t* _tmp0_ = NULL;
+ libraw_imgother_t _tmp1_ = {0};
+#line 165 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSOR (self), result);
+#line 166 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 166 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_get_image_other (_tmp0_);
+#line 166 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 166 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 1103 "GRaw.c"
+}
+
+
+static libraw_iparams_t libraw_get_image_params (libraw_data_t* self) {
+ libraw_iparams_t result = {0};
+ libraw_iparams_t _tmp0_ = {0};
+#line 189 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ g_return_val_if_fail (self != NULL, result);
+#line 189 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp0_ = self->idata;
+#line 189 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ result = _tmp0_;
+#line 189 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ return result;
+#line 1118 "GRaw.c"
+}
+
+
+libraw_iparams_t graw_processor_get_image_params (GRawProcessor* self) {
+ libraw_iparams_t result = {0};
+ libraw_data_t* _tmp0_ = NULL;
+ libraw_iparams_t _tmp1_ = {0};
+#line 169 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSOR (self), result);
+#line 170 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 170 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_get_image_params (_tmp0_);
+#line 170 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 170 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 1136 "GRaw.c"
+}
+
+
+static libraw_image_sizes_t libraw_get_sizes (libraw_data_t* self) {
+ libraw_image_sizes_t result = {0};
+ libraw_image_sizes_t _tmp0_ = {0};
+#line 192 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ g_return_val_if_fail (self != NULL, result);
+#line 192 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp0_ = self->sizes;
+#line 192 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ result = _tmp0_;
+#line 192 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ return result;
+#line 1151 "GRaw.c"
+}
+
+
+libraw_image_sizes_t graw_processor_get_sizes (GRawProcessor* self) {
+ libraw_image_sizes_t result = {0};
+ libraw_data_t* _tmp0_ = NULL;
+ libraw_image_sizes_t _tmp1_ = {0};
+#line 173 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSOR (self), result);
+#line 174 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 174 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_get_sizes (_tmp0_);
+#line 174 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 174 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 1169 "GRaw.c"
+}
+
+
+static libraw_thumbnail_t libraw_get_thumbnail (libraw_data_t* self) {
+ libraw_thumbnail_t result = {0};
+ libraw_thumbnail_t _tmp0_ = {0};
+#line 193 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ g_return_val_if_fail (self != NULL, result);
+#line 193 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp0_ = self->thumbnail;
+#line 193 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ result = _tmp0_;
+#line 193 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ return result;
+#line 1184 "GRaw.c"
+}
+
+
+libraw_thumbnail_t graw_processor_get_thumbnail (GRawProcessor* self) {
+ libraw_thumbnail_t result = {0};
+ libraw_data_t* _tmp0_ = NULL;
+ libraw_thumbnail_t _tmp1_ = {0};
+#line 177 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSOR (self), result);
+#line 178 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 178 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_get_thumbnail (_tmp0_);
+#line 178 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp1_;
+#line 178 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 1202 "GRaw.c"
+}
+
+
+GRawProcessedImage* graw_processor_make_mem_image (GRawProcessor* self, GError** error) {
+ GRawProcessedImage* result = NULL;
+ GRawProcessedImage* _tmp0_ = NULL;
+ libraw_data_t* _tmp1_ = NULL;
+ GRawProcessedImage* _tmp2_ = NULL;
+ GRawProcessedImage* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 181 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSOR (self), NULL);
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = self->priv->proc;
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = graw_processed_image_new (_tmp1_, &_inner_error_);
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = _tmp2_;
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 1229 "GRaw.c"
+ } else {
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 1237 "GRaw.c"
+ }
+ }
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp3_ = _tmp0_;
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp3_;
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _graw_processed_image_unref0 (_tmp0_);
+#line 182 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 1250 "GRaw.c"
+}
+
+
+GRawProcessedImage* graw_processor_make_thumb_image (GRawProcessor* self, GError** error) {
+ GRawProcessedImage* result = NULL;
+ GRawProcessedImage* _tmp0_ = NULL;
+ libraw_data_t* _tmp1_ = NULL;
+ GRawProcessedImage* _tmp2_ = NULL;
+ GRawProcessedImage* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 185 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSOR (self), NULL);
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = self->priv->proc;
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = graw_processed_image_new_from_thumb (_tmp1_, &_inner_error_);
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = _tmp2_;
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 1277 "GRaw.c"
+ } else {
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 1285 "GRaw.c"
+ }
+ }
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp3_ = _tmp0_;
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = _tmp3_;
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _graw_processed_image_unref0 (_tmp0_);
+#line 186 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 1298 "GRaw.c"
+}
+
+
+void graw_processor_open_buffer (GRawProcessor* self, guint8* buffer, int buffer_length1, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ enum LibRaw_errors _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 189 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = buffer;
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1__length1 = buffer_length1;
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = libraw_open_buffer (_tmp0_, _tmp1_, _tmp1__length1);
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("open_buffer", _tmp2_, &_inner_error_);
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1328 "GRaw.c"
+ } else {
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 190 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1336 "GRaw.c"
+ }
+ }
+}
+
+
+void graw_processor_open_file (GRawProcessor* self, const gchar* filename, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ enum LibRaw_errors _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 193 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (filename != NULL);
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = filename;
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = libraw_open_file (_tmp0_, _tmp1_);
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("open_file", _tmp2_, &_inner_error_);
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1367 "GRaw.c"
+ } else {
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 194 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1375 "GRaw.c"
+ }
+ }
+}
+
+
+void graw_processor_process (GRawProcessor* self, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ enum LibRaw_errors _tmp1_ = 0;
+ GError * _inner_error_ = NULL;
+#line 197 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_dcraw_process (_tmp0_);
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("process", _tmp1_, &_inner_error_);
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1401 "GRaw.c"
+ } else {
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 198 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1409 "GRaw.c"
+ }
+ }
+}
+
+
+void graw_processor_ppm_tiff_writer (GRawProcessor* self, const gchar* filename, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ enum LibRaw_errors _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 201 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (filename != NULL);
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = filename;
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = libraw_dcraw_ppm_tiff_writer (_tmp0_, _tmp1_);
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("ppm_tiff_writer", _tmp2_, &_inner_error_);
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1440 "GRaw.c"
+ } else {
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 202 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1448 "GRaw.c"
+ }
+ }
+}
+
+
+void graw_processor_thumb_writer (GRawProcessor* self, const gchar* filename, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ enum LibRaw_errors _tmp2_ = 0;
+ GError * _inner_error_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 205 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (filename != NULL);
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = filename;
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = libraw_dcraw_thumb_writer (_tmp0_, _tmp1_);
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("thumb_writer", _tmp2_, &_inner_error_);
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1479 "GRaw.c"
+ } else {
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 206 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1487 "GRaw.c"
+ }
+ }
+}
+
+
+void graw_processor_recycle (GRawProcessor* self) {
+ libraw_data_t* _tmp0_ = NULL;
+#line 209 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 210 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 210 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ libraw_recycle (_tmp0_);
+#line 1501 "GRaw.c"
+}
+
+
+void graw_processor_unpack (GRawProcessor* self, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ enum LibRaw_errors _tmp1_ = 0;
+ GError * _inner_error_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_unpack (_tmp0_);
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("unpack", _tmp1_, &_inner_error_);
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1525 "GRaw.c"
+ } else {
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 214 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1533 "GRaw.c"
+ }
+ }
+}
+
+
+void graw_processor_unpack_thumb (GRawProcessor* self, GError** error) {
+ libraw_data_t* _tmp0_ = NULL;
+ enum LibRaw_errors _tmp1_ = 0;
+ GError * _inner_error_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = libraw_unpack_thumb (_tmp0_);
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_throw_exception ("unpack_thumb", _tmp1_, &_inner_error_);
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1559 "GRaw.c"
+ } else {
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 218 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 1567 "GRaw.c"
+ }
+ }
+}
+
+
+static void lib_raw_output_params_set_chromatic_aberrations (libraw_output_params_t self, gdouble red_multiplier, gdouble green_multiplier) {
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+#line 148 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp0_ = red_multiplier;
+#line 148 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ self.aber[0] = _tmp0_;
+#line 148 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp1_ = self.aber[0];
+#line 149 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp2_ = green_multiplier;
+#line 149 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ self.aber[2] = _tmp2_;
+#line 149 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp3_ = self.aber[2];
+#line 1590 "GRaw.c"
+}
+
+
+static void lib_raw_output_params_set_gamma_curve (libraw_output_params_t self, gdouble power, gdouble slope) {
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+#line 153 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp0_ = power;
+#line 153 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ self.gamm[0] = _tmp0_;
+#line 153 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp1_ = self.gamm[0];
+#line 154 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp2_ = slope;
+#line 154 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ self.gamm[1] = _tmp2_;
+#line 154 "/home/jens/Source/shotwell/vapi/libraw.vapi"
+ _tmp3_ = self.gamm[1];
+#line 1611 "GRaw.c"
+}
+
+
+void graw_processor_configure_for_rgb_display (GRawProcessor* self, gboolean half_size) {
+ libraw_output_params_t* _tmp0_ = NULL;
+ libraw_output_params_t* _tmp1_ = NULL;
+ libraw_output_params_t* _tmp2_ = NULL;
+ libraw_output_params_t* _tmp3_ = NULL;
+ libraw_output_params_t* _tmp4_ = NULL;
+ libraw_output_params_t* _tmp5_ = NULL;
+ libraw_output_params_t* _tmp6_ = NULL;
+ libraw_output_params_t* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ libraw_output_params_t* _tmp9_ = NULL;
+ libraw_output_params_t* _tmp10_ = NULL;
+ libraw_output_params_t* _tmp11_ = NULL;
+ libraw_output_params_t* _tmp12_ = NULL;
+ libraw_output_params_t* _tmp13_ = NULL;
+ libraw_output_params_t* _tmp14_ = NULL;
+ libraw_output_params_t* _tmp15_ = NULL;
+ libraw_output_params_t* _tmp16_ = NULL;
+ libraw_output_params_t* _tmp17_ = NULL;
+ libraw_output_params_t* _tmp18_ = NULL;
+ libraw_output_params_t* _tmp19_ = NULL;
+ libraw_output_params_t* _tmp20_ = NULL;
+ libraw_output_params_t* _tmp21_ = NULL;
+ libraw_output_params_t* _tmp22_ = NULL;
+ libraw_output_params_t* _tmp23_ = NULL;
+ libraw_output_params_t* _tmp24_ = NULL;
+ libraw_output_params_t* _tmp25_ = NULL;
+ libraw_output_params_t* _tmp26_ = NULL;
+ libraw_output_params_t* _tmp27_ = NULL;
+ libraw_output_params_t* _tmp28_ = NULL;
+ libraw_output_params_t* _tmp29_ = NULL;
+ libraw_output_params_t* _tmp30_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (GRAW_IS_PROCESSOR (self));
+#line 229 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = graw_processor_get_output_params (self);
+#line 229 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _tmp0_;
+#line 229 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ lib_raw_output_params_set_chromatic_aberrations (*_tmp1_, 1.0, 1.0);
+#line 230 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = graw_processor_get_output_params (self);
+#line 230 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp3_ = _tmp2_;
+#line 230 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ lib_raw_output_params_set_gamma_curve (*_tmp3_, GRAW_SRGB_POWER, GRAW_SRGB_SLOPE);
+#line 234 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp4_ = graw_processor_get_output_params (self);
+#line 234 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp5_ = _tmp4_;
+#line 234 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp5_).bright = 1.0f;
+#line 236 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp6_ = graw_processor_get_output_params (self);
+#line 236 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp7_ = _tmp6_;
+#line 236 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp8_ = half_size;
+#line 236 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp7_).half_size = _tmp8_;
+#line 238 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp9_ = graw_processor_get_output_params (self);
+#line 238 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp10_ = _tmp9_;
+#line 238 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp10_).highlight = (gint) GRAW_HIGHLIGHT_MODE_CLIP;
+#line 239 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp11_ = graw_processor_get_output_params (self);
+#line 239 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp12_ = _tmp11_;
+#line 239 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp12_).use_auto_wb = TRUE;
+#line 240 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp13_ = graw_processor_get_output_params (self);
+#line 240 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp14_ = _tmp13_;
+#line 240 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp14_).use_camera_wb = TRUE;
+#line 241 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp15_ = graw_processor_get_output_params (self);
+#line 241 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp16_ = _tmp15_;
+#line 241 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp16_).use_camera_matrix = TRUE;
+#line 242 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp17_ = graw_processor_get_output_params (self);
+#line 242 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp18_ = _tmp17_;
+#line 242 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp18_).output_color = (gint) GRAW_COLORSPACE_SRGB;
+#line 247 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp19_ = graw_processor_get_output_params (self);
+#line 247 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp20_ = _tmp19_;
+#line 247 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp20_).output_bps = 8;
+#line 249 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp21_ = graw_processor_get_output_params (self);
+#line 249 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp22_ = _tmp21_;
+#line 249 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp22_).user_flip = (gint) GRAW_FLIP_FROM_SOURCE;
+#line 250 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp23_ = graw_processor_get_output_params (self);
+#line 250 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp24_ = _tmp23_;
+#line 250 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp24_).user_qual = (gint) GRAW_INTERPOLATION_QUALITY_PPG;
+#line 254 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp25_ = graw_processor_get_output_params (self);
+#line 254 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp26_ = _tmp25_;
+#line 254 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp26_).no_auto_bright = TRUE;
+#line 255 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp27_ = graw_processor_get_output_params (self);
+#line 255 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp28_ = _tmp27_;
+#line 255 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp28_).auto_bright_thr = 0.01f;
+#line 256 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp29_ = graw_processor_get_output_params (self);
+#line 256 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp30_ = _tmp29_;
+#line 256 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ (*_tmp30_).use_fuji_rotate = (gint) GRAW_FUJI_ROTATE_USE;
+#line 1741 "GRaw.c"
+}
+
+
+libraw_output_params_t* graw_processor_get_output_params (GRawProcessor* self) {
+ libraw_output_params_t* result;
+ libraw_data_t* _tmp0_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (GRAW_IS_PROCESSOR (self), NULL);
+#line 151 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = self->priv->proc;
+#line 151 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ result = &_tmp0_->params;
+#line 151 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return result;
+#line 1756 "GRaw.c"
+}
+
+
+static void graw_value_processor_init (GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 1763 "GRaw.c"
+}
+
+
+static void graw_value_processor_free_value (GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processor_unref (value->data[0].v_pointer);
+#line 1772 "GRaw.c"
+ }
+}
+
+
+static void graw_value_processor_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (src_value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ dest_value->data[0].v_pointer = graw_processor_ref (src_value->data[0].v_pointer);
+#line 1782 "GRaw.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1786 "GRaw.c"
+ }
+}
+
+
+static gpointer graw_value_processor_peek_pointer (const GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return value->data[0].v_pointer;
+#line 1794 "GRaw.c"
+}
+
+
+static gchar* graw_value_processor_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (collect_values[0].v_pointer) {
+#line 1801 "GRaw.c"
+ GRawProcessor* object;
+ object = collect_values[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1808 "GRaw.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1812 "GRaw.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = graw_processor_ref (object);
+#line 1816 "GRaw.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 1820 "GRaw.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 1824 "GRaw.c"
+}
+
+
+static gchar* graw_value_processor_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ GRawProcessor** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (!object_p) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1835 "GRaw.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (!value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ *object_p = NULL;
+#line 1841 "GRaw.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1845 "GRaw.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ *object_p = graw_processor_ref (value->data[0].v_pointer);
+#line 1849 "GRaw.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return NULL;
+#line 1853 "GRaw.c"
+}
+
+
+GParamSpec* graw_param_spec_processor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ GRawParamSpecProcessor* spec;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, GRAW_TYPE_PROCESSOR), NULL);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return G_PARAM_SPEC (spec);
+#line 1867 "GRaw.c"
+}
+
+
+gpointer graw_value_get_processor (const GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GRAW_TYPE_PROCESSOR), NULL);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return value->data[0].v_pointer;
+#line 1876 "GRaw.c"
+}
+
+
+void graw_value_set_processor (GValue* value, gpointer v_object) {
+ GRawProcessor* old;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GRAW_TYPE_PROCESSOR));
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ old = value->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (v_object) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GRAW_TYPE_PROCESSOR));
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = v_object;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processor_ref (value->data[0].v_pointer);
+#line 1896 "GRaw.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 1900 "GRaw.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (old) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processor_unref (old);
+#line 1906 "GRaw.c"
+ }
+}
+
+
+void graw_value_take_processor (GValue* value, gpointer v_object) {
+ GRawProcessor* old;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GRAW_TYPE_PROCESSOR));
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ old = value->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (v_object) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GRAW_TYPE_PROCESSOR));
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = v_object;
+#line 1925 "GRaw.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ value->data[0].v_pointer = NULL;
+#line 1929 "GRaw.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (old) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processor_unref (old);
+#line 1935 "GRaw.c"
+ }
+}
+
+
+static void graw_processor_class_init (GRawProcessorClass * klass) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ graw_processor_parent_class = g_type_class_peek_parent (klass);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ ((GRawProcessorClass *) klass)->finalize = graw_processor_finalize;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_type_class_add_private (klass, sizeof (GRawProcessorPrivate));
+#line 1947 "GRaw.c"
+}
+
+
+static void graw_processor_instance_init (GRawProcessor * self) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->priv = GRAW_PROCESSOR_GET_PRIVATE (self);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self->ref_count = 1;
+#line 1956 "GRaw.c"
+}
+
+
+static void graw_processor_finalize (GRawProcessor* obj) {
+ GRawProcessor * self;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, GRAW_TYPE_PROCESSOR, GRawProcessor);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_signal_handlers_destroy (self);
+#line 155 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _libraw_close0 (self->priv->proc);
+#line 1968 "GRaw.c"
+}
+
+
+GType graw_processor_get_type (void) {
+ static volatile gsize graw_processor_type_id__volatile = 0;
+ if (g_once_init_enter (&graw_processor_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { graw_value_processor_init, graw_value_processor_free_value, graw_value_processor_copy_value, graw_value_processor_peek_pointer, "p", graw_value_processor_collect_value, "p", graw_value_processor_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (GRawProcessorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) graw_processor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GRawProcessor), 0, (GInstanceInitFunc) graw_processor_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType graw_processor_type_id;
+ graw_processor_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GRawProcessor", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&graw_processor_type_id__volatile, graw_processor_type_id);
+ }
+ return graw_processor_type_id__volatile;
+}
+
+
+gpointer graw_processor_ref (gpointer instance) {
+ GRawProcessor* self;
+ self = instance;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return instance;
+#line 1993 "GRaw.c"
+}
+
+
+void graw_processor_unref (gpointer instance) {
+ GRawProcessor* self;
+ self = instance;
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ GRAW_PROCESSOR_GET_CLASS (self)->finalize (self);
+#line 148 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2006 "GRaw.c"
+ }
+}
+
+
+void graw_throw_exception (const gchar* caller, enum LibRaw_errors _result_, GError** error) {
+ enum LibRaw_errors _tmp0_ = 0;
+ gchar* msg = NULL;
+ const gchar* _tmp7_ = NULL;
+ enum LibRaw_errors _tmp8_ = 0;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ enum LibRaw_errors _tmp11_ = 0;
+ GError * _inner_error_ = NULL;
+#line 260 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_return_if_fail (caller != NULL);
+#line 261 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp0_ = _result_;
+#line 261 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_tmp0_ == LIBRAW_SUCCESS) {
+#line 262 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2028 "GRaw.c"
+ } else {
+ enum LibRaw_errors _tmp1_ = 0;
+#line 263 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp1_ = _result_;
+#line 263 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_tmp1_ > 0) {
+#line 2035 "GRaw.c"
+ const gchar* _tmp2_ = NULL;
+ enum LibRaw_errors _tmp3_ = 0;
+ enum LibRaw_errors _tmp4_ = 0;
+ const gchar* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp2_ = caller;
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp3_ = _result_;
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp4_ = _result_;
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp5_ = g_strerror ((gint) _tmp4_);
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp6_ = g_error_new (GRAW_EXCEPTION, GRAW_EXCEPTION_SYSTEM_ERROR, "%s: System error %d: %s", _tmp2_, (gint) _tmp3_, _tmp5_);
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp6_;
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2059 "GRaw.c"
+ } else {
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 264 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2067 "GRaw.c"
+ }
+ }
+ }
+#line 266 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp7_ = caller;
+#line 266 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp8_ = _result_;
+#line 266 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp9_ = libraw_strerror (_tmp8_);
+#line 266 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp10_ = g_strdup_printf ("%s: %s", _tmp7_, _tmp9_);
+#line 266 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ msg = _tmp10_;
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp11_ = _result_;
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ switch (_tmp11_) {
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_UNSPECIFIED_ERROR:
+#line 2087 "GRaw.c"
+ {
+ const gchar* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp12_ = msg;
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp13_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_UNSPECIFIED, _tmp12_);
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp13_;
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2105 "GRaw.c"
+ } else {
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 270 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2115 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_FILE_UNSUPPORTED:
+#line 2120 "GRaw.c"
+ {
+ const gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp14_ = msg;
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp15_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_UNSUPPORTED_FILE, _tmp14_);
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp15_;
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2138 "GRaw.c"
+ } else {
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 273 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2148 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_REQUEST_FOR_NONEXISTENT_IMAGE:
+#line 2153 "GRaw.c"
+ {
+ const gchar* _tmp16_ = NULL;
+ GError* _tmp17_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp16_ = msg;
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp17_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_NONEXISTANT_IMAGE, _tmp16_);
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp17_;
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2171 "GRaw.c"
+ } else {
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 276 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2181 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_OUT_OF_ORDER_CALL:
+#line 2186 "GRaw.c"
+ {
+ const gchar* _tmp18_ = NULL;
+ GError* _tmp19_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp18_ = msg;
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp19_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_OUT_OF_ORDER_CALL, _tmp18_);
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp19_;
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2204 "GRaw.c"
+ } else {
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 279 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2214 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_NO_THUMBNAIL:
+#line 2219 "GRaw.c"
+ {
+ const gchar* _tmp20_ = NULL;
+ GError* _tmp21_ = NULL;
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp20_ = msg;
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp21_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_NO_THUMBNAIL, _tmp20_);
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp21_;
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2237 "GRaw.c"
+ } else {
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 282 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2247 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_UNSUPPORTED_THUMBNAIL:
+#line 2252 "GRaw.c"
+ {
+ const gchar* _tmp22_ = NULL;
+ GError* _tmp23_ = NULL;
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp22_ = msg;
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp23_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_UNSUPPORTED_THUMBNAIL, _tmp22_);
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp23_;
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2270 "GRaw.c"
+ } else {
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 285 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2280 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_UNSUFFICIENT_MEMORY:
+#line 2285 "GRaw.c"
+ {
+ const gchar* _tmp24_ = NULL;
+ GError* _tmp25_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp24_ = msg;
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp25_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_OUT_OF_MEMORY, _tmp24_);
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp25_;
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2303 "GRaw.c"
+ } else {
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 288 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2313 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_DATA_ERROR:
+#line 2318 "GRaw.c"
+ {
+ const gchar* _tmp26_ = NULL;
+ GError* _tmp27_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp26_ = msg;
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp27_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_DATA_ERROR, _tmp26_);
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp27_;
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2336 "GRaw.c"
+ } else {
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 291 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2346 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_IO_ERROR:
+#line 2351 "GRaw.c"
+ {
+ const gchar* _tmp28_ = NULL;
+ GError* _tmp29_ = NULL;
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp28_ = msg;
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp29_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_IO_ERROR, _tmp28_);
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp29_;
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2369 "GRaw.c"
+ } else {
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 294 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2379 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_CANCELLED_BY_CALLBACK:
+#line 2384 "GRaw.c"
+ {
+ const gchar* _tmp30_ = NULL;
+ GError* _tmp31_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp30_ = msg;
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp31_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_CANCELLED_BY_CALLBACK, _tmp30_);
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp31_;
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2402 "GRaw.c"
+ } else {
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 297 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2412 "GRaw.c"
+ }
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ case LIBRAW_BAD_CROP:
+#line 2417 "GRaw.c"
+ {
+ const gchar* _tmp32_ = NULL;
+ GError* _tmp33_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp32_ = msg;
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _tmp33_ = g_error_new_literal (GRAW_EXCEPTION, GRAW_EXCEPTION_BAD_CROP, _tmp32_);
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _inner_error_ = _tmp33_;
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_propagate_error (error, _inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2435 "GRaw.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ g_clear_error (&_inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2445 "GRaw.c"
+ }
+ }
+ default:
+ {
+#line 303 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 303 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ return;
+#line 2454 "GRaw.c"
+ }
+ }
+#line 260 "/home/jens/Source/shotwell/src/photos/GRaw.vala"
+ _g_free0 (msg);
+#line 2459 "GRaw.c"
+}
+
+
+
diff --git a/src/photos/GRaw.vala b/src/photos/GRaw.vala
index 53c328c..ec1df8d 100644
--- a/src/photos/GRaw.vala
+++ b/src/photos/GRaw.vala
@@ -125,7 +125,8 @@ public class ProcessedImage {
// to be decoded before being useful. This will throw an error if the format is not
// supported
try {
- pixbuf = new Gdk.Pixbuf.from_stream(new MemoryInputStream.from_data(image.data, null),
+ var bytes = new Bytes.static (image.data);
+ pixbuf = new Gdk.Pixbuf.from_stream(new MemoryInputStream.from_bytes(bytes),
null);
} catch (Error err) {
throw new Exception.UNSUPPORTED_THUMBNAIL(err.message);
diff --git a/src/photos/GdkSupport.c b/src/photos/GdkSupport.c
new file mode 100644
index 0000000..f016592
--- /dev/null
+++ b/src/photos/GdkSupport.c
@@ -0,0 +1,1402 @@
+/* GdkSupport.c generated by valac 0.32.1, the Vala compiler
+ * generated from GdkSupport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_GDK_READER (gdk_reader_get_type ())
+#define GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_READER, GdkReader))
+#define GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_READER, GdkReaderClass))
+#define IS_GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_READER))
+#define IS_GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_READER))
+#define GDK_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_READER, GdkReaderClass))
+
+typedef struct _GdkReader GdkReader;
+typedef struct _GdkReaderClass GdkReaderClass;
+typedef struct _GdkReaderPrivate GdkReaderPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate;
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_GDK_SNIFFER (gdk_sniffer_get_type ())
+#define GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_SNIFFER, GdkSniffer))
+#define GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_SNIFFER, GdkSnifferClass))
+#define IS_GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_SNIFFER))
+#define IS_GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_SNIFFER))
+#define GDK_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_SNIFFER, GdkSnifferClass))
+
+typedef struct _GdkSniffer GdkSniffer;
+typedef struct _GdkSnifferClass GdkSnifferClass;
+typedef struct _GdkSnifferPrivate GdkSnifferPrivate;
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+#define _g_checksum_free0(var) ((var == NULL) ? NULL : (var = (g_checksum_free (var), NULL)))
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _PhotoFileAdapter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileAdapterPrivate * priv;
+};
+
+struct _PhotoFileAdapterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileAdapter *self);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _PhotoFileReader {
+ PhotoFileAdapter parent_instance;
+ PhotoFileReaderPrivate * priv;
+};
+
+struct _PhotoFileReaderClass {
+ PhotoFileAdapterClass parent_class;
+ PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+};
+
+struct _GdkReader {
+ PhotoFileReader parent_instance;
+ GdkReaderPrivate * priv;
+};
+
+struct _GdkReaderClass {
+ PhotoFileReaderClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileSniffer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileSnifferPrivate * priv;
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ gboolean calc_md5;
+};
+
+struct _PhotoFileSnifferClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileSniffer *self);
+ DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+};
+
+struct _GdkSniffer {
+ PhotoFileSniffer parent_instance;
+ GdkSnifferPrivate * priv;
+};
+
+struct _GdkSnifferClass {
+ PhotoFileSnifferClass parent_class;
+};
+
+struct _GdkSnifferPrivate {
+ DetectedPhotoInformation* detected;
+ gboolean size_ready;
+ gboolean area_prepared;
+};
+
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+
+static gpointer gdk_reader_parent_class = NULL;
+static gpointer gdk_sniffer_parent_class = NULL;
+
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+GType gdk_reader_get_type (void) G_GNUC_CONST;
+enum {
+ GDK_READER_DUMMY_PROPERTY
+};
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+PhotoFileReader* photo_file_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static PhotoMetadata* gdk_reader_real_read_metadata (PhotoFileReader* base, GError** error);
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error);
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self);
+static GdkPixbuf* gdk_reader_real_unscaled_read (PhotoFileReader* base, GError** error);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+static GdkPixbuf* gdk_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error);
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+GType gdk_sniffer_get_type (void) G_GNUC_CONST;
+#define GDK_SNIFFER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_GDK_SNIFFER, GdkSnifferPrivate))
+enum {
+ GDK_SNIFFER_DUMMY_PROPERTY
+};
+GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+PhotoFileSniffer* photo_file_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+static DetectedPhotoInformation* gdk_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error);
+DetectedPhotoInformation* detected_photo_information_new (void);
+DetectedPhotoInformation* detected_photo_information_construct (GType object_type);
+static void gdk_sniffer_on_size_prepared (GdkSniffer* self, GdkPixbufLoader* loader, gint width, gint height);
+static void _gdk_sniffer_on_size_prepared_gdk_pixbuf_loader_size_prepared (GdkPixbufLoader* _sender, gint width, gint height, gpointer self);
+static void gdk_sniffer_on_area_prepared (GdkSniffer* self, GdkPixbufLoader* pixbuf_loader);
+static void _gdk_sniffer_on_area_prepared_gdk_pixbuf_loader_area_prepared (GdkPixbufLoader* _sender, gpointer self);
+guint8* photo_metadata_flatten_exif (PhotoMetadata* self, gboolean include_preview, int* result_length1);
+gchar* md5_binary (guint8* buffer, gsize length);
+guint8* photo_metadata_flatten_exif_preview (PhotoMetadata* self, int* result_length1);
+static guint8* _vala_array_dup7 (guint8* self, int length);
+void dimensions_init (Dimensions *self, gint width, gint height);
+PhotoFileFormat photo_file_format_from_pixbuf_name (const gchar* name);
+static void gdk_sniffer_finalize (PhotoFileSniffer* obj);
+
+
+GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) {
+ GdkReader* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+#line 8 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 9 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = filepath;
+#line 9 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = file_format;
+#line 9 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self = (GdkReader*) photo_file_reader_construct (object_type, _tmp0_, _tmp1_);
+#line 8 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return self;
+#line 310 "GdkSupport.c"
+}
+
+
+static PhotoMetadata* gdk_reader_real_read_metadata (PhotoFileReader* base, GError** error) {
+ GdkReader * self;
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_READER, GdkReader);
+#line 13 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = photo_metadata_new ();
+#line 13 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ metadata = _tmp0_;
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (metadata, TYPE_MEDIA_METADATA, MediaMetadata), _tmp2_, &_inner_error_);
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _media_metadata_unref0 (metadata);
+#line 14 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 344 "GdkSupport.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ result = metadata;
+#line 16 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return result;
+#line 350 "GdkSupport.c"
+}
+
+
+static GdkPixbuf* gdk_reader_real_unscaled_read (PhotoFileReader* base, GError** error) {
+ GdkReader * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_READER, GdkReader);
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp3_ = gdk_pixbuf_new_from_file (_tmp2_, &_inner_error_);
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_free0 (_tmp2_);
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = _tmp4_;
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 384 "GdkSupport.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp5_ = _tmp0_;
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ result = _tmp5_;
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 20 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return result;
+#line 396 "GdkSupport.c"
+}
+
+
+static GdkPixbuf* gdk_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error) {
+ GdkReader * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ GdkPixbuf* _tmp9_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_READER, GdkReader);
+#line 23 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_val_if_fail (full != NULL, NULL);
+#line 23 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_val_if_fail (scaled != NULL, NULL);
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp3_ = *scaled;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp4_ = _tmp3_.width;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp5_ = *scaled;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp6_ = _tmp5_.height;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp7_ = gdk_pixbuf_new_from_file_at_scale (_tmp2_, _tmp4_, _tmp6_, FALSE, &_inner_error_);
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp8_ = _tmp7_;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_free0 (_tmp2_);
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = _tmp8_;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 446 "GdkSupport.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp9_ = _tmp0_;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ result = _tmp9_;
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 24 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return result;
+#line 458 "GdkSupport.c"
+}
+
+
+static void gdk_reader_class_init (GdkReaderClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ gdk_reader_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ ((PhotoFileReaderClass *) klass)->read_metadata = gdk_reader_real_read_metadata;
+#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ ((PhotoFileReaderClass *) klass)->unscaled_read = gdk_reader_real_unscaled_read;
+#line 7 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ ((PhotoFileReaderClass *) klass)->scaled_read = gdk_reader_real_scaled_read;
+#line 471 "GdkSupport.c"
+}
+
+
+static void gdk_reader_instance_init (GdkReader * self) {
+}
+
+
+GType gdk_reader_get_type (void) {
+ static volatile gsize gdk_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&gdk_reader_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (GdkReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gdk_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GdkReader), 0, (GInstanceInitFunc) gdk_reader_instance_init, NULL };
+ GType gdk_reader_type_id;
+ gdk_reader_type_id = g_type_register_static (TYPE_PHOTO_FILE_READER, "GdkReader", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&gdk_reader_type_id__volatile, gdk_reader_type_id);
+ }
+ return gdk_reader_type_id__volatile;
+}
+
+
+GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ GdkSniffer* self = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+#line 33 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 34 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = file;
+#line 34 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = options;
+#line 34 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self = (GdkSniffer*) photo_file_sniffer_construct (object_type, _tmp0_, _tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return self;
+#line 505 "GdkSupport.c"
+}
+
+
+static void _gdk_sniffer_on_size_prepared_gdk_pixbuf_loader_size_prepared (GdkPixbufLoader* _sender, gint width, gint height, gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ gdk_sniffer_on_size_prepared ((GdkSniffer*) self, _sender, width, height);
+#line 512 "GdkSupport.c"
+}
+
+
+static void _gdk_sniffer_on_area_prepared_gdk_pixbuf_loader_area_prepared (GdkPixbufLoader* _sender, gpointer self) {
+#line 42 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ gdk_sniffer_on_area_prepared ((GdkSniffer*) self, _sender);
+#line 519 "GdkSupport.c"
+}
+
+
+static guint8* _vala_array_dup7 (guint8* self, int length) {
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 526 "GdkSupport.c"
+}
+
+
+static gpointer _detected_photo_information_ref0 (gpointer self) {
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return self ? detected_photo_information_ref (self) : NULL;
+#line 533 "GdkSupport.c"
+}
+
+
+static DetectedPhotoInformation* gdk_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error) {
+ GdkSniffer * self;
+ gboolean _vala_is_corrupted = FALSE;
+ DetectedPhotoInformation* result = NULL;
+ DetectedPhotoInformation* _tmp0_ = NULL;
+ GdkPixbufLoader* pixbuf_loader = NULL;
+ GdkPixbufLoader* _tmp1_ = NULL;
+ GdkPixbufLoader* _tmp2_ = NULL;
+ GdkPixbufLoader* _tmp3_ = NULL;
+ GChecksum* md5_checksum = NULL;
+ gboolean _tmp4_ = FALSE;
+ DetectedPhotoInformation* _tmp6_ = NULL;
+ PhotoMetadata* _tmp7_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ guint8* _tmp38_ = NULL;
+ gint _tmp38__length1 = 0;
+ gint __tmp38__size_ = 0;
+ gboolean _tmp39_ = FALSE;
+ guint8* buffer = NULL;
+ guint8* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gsize count = 0UL;
+ GFileInputStream* fins = NULL;
+ GFile* _tmp43_ = NULL;
+ GFileInputStream* _tmp44_ = NULL;
+ GFileInputStream* _tmp68_ = NULL;
+ gboolean _tmp70_ = FALSE;
+ gboolean _tmp75_ = FALSE;
+ gboolean _tmp76_ = FALSE;
+ DetectedPhotoInformation* _tmp78_ = NULL;
+ DetectedPhotoInformation* _tmp79_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_GDK_SNIFFER, GdkSniffer);
+#line 38 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = detected_photo_information_new ();
+#line 38 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _detected_photo_information_unref0 (self->priv->detected);
+#line 38 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self->priv->detected = _tmp0_;
+#line 40 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = gdk_pixbuf_loader_new ();
+#line 40 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ pixbuf_loader = _tmp1_;
+#line 41 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp2_ = pixbuf_loader;
+#line 41 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_signal_connect (_tmp2_, "size-prepared", (GCallback) _gdk_sniffer_on_size_prepared_gdk_pixbuf_loader_size_prepared, self);
+#line 42 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp3_ = pixbuf_loader;
+#line 42 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_signal_connect (_tmp3_, "area-prepared", (GCallback) _gdk_sniffer_on_area_prepared_gdk_pixbuf_loader_area_prepared, self);
+#line 45 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ md5_checksum = NULL;
+#line 46 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5;
+#line 46 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp4_) {
+#line 598 "GdkSupport.c"
+ GChecksum* _tmp5_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp5_ = g_checksum_new (G_CHECKSUM_MD5);
+#line 47 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 47 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ md5_checksum = _tmp5_;
+#line 606 "GdkSupport.c"
+ }
+#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp6_ = self->priv->detected;
+#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp7_ = photo_metadata_new ();
+#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _media_metadata_unref0 (_tmp6_->metadata);
+#line 49 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp6_->metadata = _tmp7_;
+#line 616 "GdkSupport.c"
+ {
+ DetectedPhotoInformation* _tmp8_ = NULL;
+ PhotoMetadata* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp8_ = self->priv->detected;
+#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp9_ = _tmp8_->metadata;
+#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TYPE_MEDIA_METADATA, MediaMetadata), _tmp10_, &_inner_error_);
+#line 51 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 631 "GdkSupport.c"
+ goto __catch27_g_error;
+ }
+ }
+ goto __finally27;
+ __catch27_g_error:
+ {
+ GError* err = NULL;
+ DetectedPhotoInformation* _tmp11_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ err = _inner_error_;
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _inner_error_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp11_ = self->priv->detected;
+#line 54 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _media_metadata_unref0 (_tmp11_->metadata);
+#line 54 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp11_->metadata = NULL;
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_error_free0 (err);
+#line 652 "GdkSupport.c"
+ }
+ __finally27:
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf_loader);
+#line 50 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 665 "GdkSupport.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp13_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5;
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp13_) {
+#line 671 "GdkSupport.c"
+ DetectedPhotoInformation* _tmp14_ = NULL;
+ PhotoMetadata* _tmp15_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp14_ = self->priv->detected;
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp15_ = _tmp14_->metadata;
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp12_ = _tmp15_ != NULL;
+#line 680 "GdkSupport.c"
+ } else {
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp12_ = FALSE;
+#line 684 "GdkSupport.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp12_) {
+#line 688 "GdkSupport.c"
+ guint8* flattened_sans_thumbnail = NULL;
+ DetectedPhotoInformation* _tmp16_ = NULL;
+ PhotoMetadata* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ guint8* _tmp19_ = NULL;
+ gint flattened_sans_thumbnail_length1 = 0;
+ gint _flattened_sans_thumbnail_size_ = 0;
+ gboolean _tmp20_ = FALSE;
+ guint8* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ guint8* flattened_thumbnail = NULL;
+ DetectedPhotoInformation* _tmp27_ = NULL;
+ PhotoMetadata* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ guint8* _tmp30_ = NULL;
+ gint flattened_thumbnail_length1 = 0;
+ gint _flattened_thumbnail_size_ = 0;
+ gboolean _tmp31_ = FALSE;
+ guint8* _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp16_ = self->priv->detected;
+#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp17_ = _tmp16_->metadata;
+#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp19_ = photo_metadata_flatten_exif (_tmp17_, FALSE, &_tmp18_);
+#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ flattened_sans_thumbnail = _tmp19_;
+#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ flattened_sans_thumbnail_length1 = _tmp18_;
+#line 58 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _flattened_sans_thumbnail_size_ = flattened_sans_thumbnail_length1;
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp21_ = flattened_sans_thumbnail;
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp21__length1 = flattened_sans_thumbnail_length1;
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp21_ != NULL) {
+#line 727 "GdkSupport.c"
+ guint8* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp22_ = flattened_sans_thumbnail;
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp22__length1 = flattened_sans_thumbnail_length1;
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp20_ = _tmp22__length1 > 0;
+#line 736 "GdkSupport.c"
+ } else {
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp20_ = FALSE;
+#line 740 "GdkSupport.c"
+ }
+#line 59 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp20_) {
+#line 744 "GdkSupport.c"
+ DetectedPhotoInformation* _tmp23_ = NULL;
+ guint8* _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ guint8* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gchar* _tmp26_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp23_ = self->priv->detected;
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp24_ = flattened_sans_thumbnail;
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp24__length1 = flattened_sans_thumbnail_length1;
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp25_ = flattened_sans_thumbnail;
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp25__length1 = flattened_sans_thumbnail_length1;
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp26_ = md5_binary (_tmp24_, (gsize) _tmp25__length1);
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_free0 (_tmp23_->exif_md5);
+#line 60 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp23_->exif_md5 = _tmp26_;
+#line 767 "GdkSupport.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp27_ = self->priv->detected;
+#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp28_ = _tmp27_->metadata;
+#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp30_ = photo_metadata_flatten_exif_preview (_tmp28_, &_tmp29_);
+#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ flattened_thumbnail = _tmp30_;
+#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ flattened_thumbnail_length1 = _tmp29_;
+#line 62 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _flattened_thumbnail_size_ = flattened_thumbnail_length1;
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp32_ = flattened_thumbnail;
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp32__length1 = flattened_thumbnail_length1;
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp32_ != NULL) {
+#line 787 "GdkSupport.c"
+ guint8* _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp33_ = flattened_thumbnail;
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp33__length1 = flattened_thumbnail_length1;
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp31_ = _tmp33__length1 > 0;
+#line 796 "GdkSupport.c"
+ } else {
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp31_ = FALSE;
+#line 800 "GdkSupport.c"
+ }
+#line 63 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp31_) {
+#line 804 "GdkSupport.c"
+ DetectedPhotoInformation* _tmp34_ = NULL;
+ guint8* _tmp35_ = NULL;
+ gint _tmp35__length1 = 0;
+ guint8* _tmp36_ = NULL;
+ gint _tmp36__length1 = 0;
+ gchar* _tmp37_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp34_ = self->priv->detected;
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp35_ = flattened_thumbnail;
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp35__length1 = flattened_thumbnail_length1;
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp36_ = flattened_thumbnail;
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp36__length1 = flattened_thumbnail_length1;
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp37_ = md5_binary (_tmp35_, (gsize) _tmp36__length1);
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_free0 (_tmp34_->thumbnail_md5);
+#line 64 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp34_->thumbnail_md5 = _tmp37_;
+#line 827 "GdkSupport.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ flattened_thumbnail = (g_free (flattened_thumbnail), NULL);
+#line 57 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ flattened_sans_thumbnail = (g_free (flattened_sans_thumbnail), NULL);
+#line 833 "GdkSupport.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp39_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp39_) {
+#line 839 "GdkSupport.c"
+ guint8* _tmp40_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp40_ = g_new0 (guint8, 64 * 1024);
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = _tmp40_;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38__length1 = 64 * 1024;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ __tmp38__size_ = _tmp38__length1;
+#line 851 "GdkSupport.c"
+ } else {
+ guint8* _tmp41_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp41_ = g_new0 (guint8, 8 * 1024);
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = _tmp41_;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38__length1 = 8 * 1024;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ __tmp38__size_ = _tmp38__length1;
+#line 864 "GdkSupport.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp42_ = (_tmp38_ != NULL) ? _vala_array_dup7 (_tmp38_, _tmp38__length1) : ((gpointer) _tmp38_);
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp42__length1 = _tmp38__length1;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer = _tmp42_;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer_length1 = _tmp42__length1;
+#line 69 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _buffer_size_ = buffer_length1;
+#line 70 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ count = (gsize) 0;
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp43_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp44_ = g_file_read (_tmp43_, NULL, &_inner_error_);
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ fins = _tmp44_;
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer = (g_free (buffer), NULL);
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf_loader);
+#line 73 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 898 "GdkSupport.c"
+ }
+ {
+ gboolean _tmp45_ = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp45_ = TRUE;
+#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ while (TRUE) {
+#line 906 "GdkSupport.c"
+ gsize bytes_read = 0UL;
+ GFileInputStream* _tmp46_ = NULL;
+ guint8* _tmp47_ = NULL;
+ gint _tmp47__length1 = 0;
+ gssize _tmp48_ = 0L;
+ gsize _tmp49_ = 0UL;
+ gsize _tmp50_ = 0UL;
+ gsize _tmp51_ = 0UL;
+ gboolean _tmp52_ = FALSE;
+ gboolean _tmp56_ = FALSE;
+ gboolean _tmp57_ = FALSE;
+ gboolean _tmp62_ = FALSE;
+ gboolean _tmp63_ = FALSE;
+ gboolean _tmp64_ = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (!_tmp45_) {
+#line 923 "GdkSupport.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp45_ = FALSE;
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp46_ = fins;
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp47_ = buffer;
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp47__length1 = buffer_length1;
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp48_ = g_input_stream_read (G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, G_TYPE_INPUT_STREAM, GInputStream), _tmp47_, (gsize) _tmp47__length1, NULL, &_inner_error_);
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ bytes_read = (gsize) _tmp48_;
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (fins);
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer = (g_free (buffer), NULL);
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf_loader);
+#line 75 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 953 "GdkSupport.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp49_ = bytes_read;
+#line 76 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp49_ <= ((gsize) 0)) {
+#line 77 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ break;
+#line 961 "GdkSupport.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp50_ = count;
+#line 79 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp51_ = bytes_read;
+#line 79 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ count = _tmp50_ + _tmp51_;
+#line 81 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp52_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5;
+#line 81 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp52_) {
+#line 973 "GdkSupport.c"
+ GChecksum* _tmp53_ = NULL;
+ guint8* _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+ gsize _tmp55_ = 0UL;
+#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp53_ = md5_checksum;
+#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp54_ = buffer;
+#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp54__length1 = buffer_length1;
+#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp55_ = bytes_read;
+#line 82 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_checksum_update (_tmp53_, _tmp54_, _tmp55_);
+#line 988 "GdkSupport.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp57_ = self->priv->size_ready;
+#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (!_tmp57_) {
+#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp56_ = TRUE;
+#line 996 "GdkSupport.c"
+ } else {
+ gboolean _tmp58_ = FALSE;
+#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp58_ = self->priv->area_prepared;
+#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp56_ = !_tmp58_;
+#line 1003 "GdkSupport.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp56_) {
+#line 1007 "GdkSupport.c"
+ GdkPixbufLoader* _tmp59_ = NULL;
+ guint8* _tmp60_ = NULL;
+ gint _tmp60__length1 = 0;
+ gsize _tmp61_ = 0UL;
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp59_ = pixbuf_loader;
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp60_ = buffer;
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp60__length1 = buffer_length1;
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp61_ = bytes_read;
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ gdk_pixbuf_loader_write (_tmp59_, _tmp60_ + 0, (gsize) (((gint) _tmp61_) - 0), &_inner_error_);
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (fins);
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer = (g_free (buffer), NULL);
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf_loader);
+#line 86 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 1038 "GdkSupport.c"
+ }
+ }
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp64_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5;
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (!_tmp64_) {
+#line 1045 "GdkSupport.c"
+ gboolean _tmp65_ = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp65_ = self->priv->size_ready;
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp63_ = _tmp65_;
+#line 1051 "GdkSupport.c"
+ } else {
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp63_ = FALSE;
+#line 1055 "GdkSupport.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp63_) {
+#line 1059 "GdkSupport.c"
+ gboolean _tmp66_ = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp66_ = self->priv->area_prepared;
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp62_ = _tmp66_;
+#line 1065 "GdkSupport.c"
+ } else {
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp62_ = FALSE;
+#line 1069 "GdkSupport.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp62_) {
+#line 90 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ break;
+#line 1075 "GdkSupport.c"
+ }
+ }
+ }
+ {
+ GdkPixbufLoader* _tmp67_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp67_ = pixbuf_loader;
+#line 95 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ gdk_pixbuf_loader_close (_tmp67_, &_inner_error_);
+#line 95 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1087 "GdkSupport.c"
+ goto __catch28_g_error;
+ }
+ }
+ goto __finally28;
+ __catch28_g_error:
+ {
+ GError* err = NULL;
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ err = _inner_error_;
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _inner_error_ = NULL;
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_error_free0 (err);
+#line 1101 "GdkSupport.c"
+ }
+ __finally28:
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (fins);
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer = (g_free (buffer), NULL);
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf_loader);
+#line 94 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 1120 "GdkSupport.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp68_ = fins;
+#line 99 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp68_ != NULL) {
+#line 1126 "GdkSupport.c"
+ GFileInputStream* _tmp69_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp69_ = fins;
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_input_stream_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_);
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (fins);
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer = (g_free (buffer), NULL);
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf_loader);
+#line 100 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return NULL;
+#line 1148 "GdkSupport.c"
+ }
+ }
+#line 102 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp70_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5;
+#line 102 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp70_) {
+#line 1155 "GdkSupport.c"
+ DetectedPhotoInformation* _tmp71_ = NULL;
+ GChecksum* _tmp72_ = NULL;
+ const gchar* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp71_ = self->priv->detected;
+#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp72_ = md5_checksum;
+#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp73_ = g_checksum_get_string (_tmp72_);
+#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp74_ = g_strdup (_tmp73_);
+#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_free0 (_tmp71_->md5);
+#line 103 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp71_->md5 = _tmp74_;
+#line 1172 "GdkSupport.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp76_ = self->priv->size_ready;
+#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (!_tmp76_) {
+#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp75_ = TRUE;
+#line 1180 "GdkSupport.c"
+ } else {
+ gboolean _tmp77_ = FALSE;
+#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp77_ = self->priv->area_prepared;
+#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp75_ = !_tmp77_;
+#line 1187 "GdkSupport.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _vala_is_corrupted = _tmp75_;
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp78_ = self->priv->detected;
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp79_ = _detected_photo_information_ref0 (_tmp78_);
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ result = _tmp79_;
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (fins);
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ buffer = (g_free (buffer), NULL);
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp38_ = (g_free (_tmp38_), NULL);
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_checksum_free0 (md5_checksum);
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf_loader);
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (is_corrupted) {
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1211 "GdkSupport.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return result;
+#line 1215 "GdkSupport.c"
+}
+
+
+static void gdk_sniffer_on_size_prepared (GdkSniffer* self, GdkPixbufLoader* loader, gint width, gint height) {
+ DetectedPhotoInformation* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 111 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_if_fail (IS_GDK_SNIFFER (self));
+#line 111 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_if_fail (GDK_IS_PIXBUF_LOADER (loader));
+#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = self->priv->detected;
+#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = width;
+#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp2_ = height;
+#line 112 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ dimensions_init (&_tmp0_->image_dim, _tmp1_, _tmp2_);
+#line 113 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self->priv->size_ready = TRUE;
+#line 1237 "GdkSupport.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1244 "GdkSupport.c"
+}
+
+
+static void gdk_sniffer_on_area_prepared (GdkSniffer* self, GdkPixbufLoader* pixbuf_loader) {
+ GdkPixbuf* pixbuf = NULL;
+ GdkPixbufLoader* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ DetectedPhotoInformation* _tmp4_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GdkColorspace _tmp6_ = 0;
+ DetectedPhotoInformation* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ DetectedPhotoInformation* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ GdkPixbufFormat* format = NULL;
+ GdkPixbufLoader* _tmp13_ = NULL;
+ GdkPixbufFormat* _tmp14_ = NULL;
+ DetectedPhotoInformation* _tmp15_ = NULL;
+ GdkPixbufFormat* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ DetectedPhotoInformation* _tmp18_ = NULL;
+ DetectedPhotoInformation* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ PhotoFileFormat _tmp21_ = 0;
+#line 116 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_if_fail (IS_GDK_SNIFFER (self));
+#line 116 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_return_if_fail (GDK_IS_PIXBUF_LOADER (pixbuf_loader));
+#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp0_ = pixbuf_loader;
+#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp1_ = gdk_pixbuf_loader_get_pixbuf (_tmp0_);
+#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 117 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ pixbuf = _tmp2_;
+#line 118 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp3_ = pixbuf;
+#line 118 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ if (_tmp3_ == NULL) {
+#line 119 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf);
+#line 119 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ return;
+#line 1293 "GdkSupport.c"
+ }
+#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp4_ = self->priv->detected;
+#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp5_ = pixbuf;
+#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp6_ = gdk_pixbuf_get_colorspace (_tmp5_);
+#line 121 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp4_->colorspace = _tmp6_;
+#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp7_ = self->priv->detected;
+#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp8_ = pixbuf;
+#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp9_ = gdk_pixbuf_get_n_channels (_tmp8_);
+#line 122 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp7_->channels = _tmp9_;
+#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp10_ = self->priv->detected;
+#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp11_ = pixbuf;
+#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp12_ = gdk_pixbuf_get_bits_per_sample (_tmp11_);
+#line 123 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp10_->bits_per_channel = _tmp12_;
+#line 125 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp13_ = pixbuf_loader;
+#line 125 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp14_ = gdk_pixbuf_loader_get_format (_tmp13_);
+#line 125 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ format = _tmp14_;
+#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp15_ = self->priv->detected;
+#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp16_ = format;
+#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp17_ = gdk_pixbuf_format_get_name (_tmp16_);
+#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_free0 (_tmp15_->format_name);
+#line 126 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp15_->format_name = _tmp17_;
+#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp18_ = self->priv->detected;
+#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp19_ = self->priv->detected;
+#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp20_ = _tmp19_->format_name;
+#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp21_ = photo_file_format_from_pixbuf_name (_tmp20_);
+#line 127 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _tmp18_->file_format = _tmp21_;
+#line 129 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self->priv->area_prepared = TRUE;
+#line 116 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _g_object_unref0 (pixbuf);
+#line 1349 "GdkSupport.c"
+}
+
+
+static void gdk_sniffer_class_init (GdkSnifferClass * klass) {
+#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ gdk_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ ((PhotoFileSnifferClass *) klass)->finalize = gdk_sniffer_finalize;
+#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ g_type_class_add_private (klass, sizeof (GdkSnifferPrivate));
+#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ ((PhotoFileSnifferClass *) klass)->sniff = gdk_sniffer_real_sniff;
+#line 1362 "GdkSupport.c"
+}
+
+
+static void gdk_sniffer_instance_init (GdkSniffer * self) {
+#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self->priv = GDK_SNIFFER_GET_PRIVATE (self);
+#line 29 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self->priv->detected = NULL;
+#line 30 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self->priv->size_ready = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self->priv->area_prepared = FALSE;
+#line 1375 "GdkSupport.c"
+}
+
+
+static void gdk_sniffer_finalize (PhotoFileSniffer* obj) {
+ GdkSniffer * self;
+#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_GDK_SNIFFER, GdkSniffer);
+#line 29 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ _detected_photo_information_unref0 (self->priv->detected);
+#line 28 "/home/jens/Source/shotwell/src/photos/GdkSupport.vala"
+ PHOTO_FILE_SNIFFER_CLASS (gdk_sniffer_parent_class)->finalize (obj);
+#line 1387 "GdkSupport.c"
+}
+
+
+GType gdk_sniffer_get_type (void) {
+ static volatile gsize gdk_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&gdk_sniffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (GdkSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gdk_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GdkSniffer), 0, (GInstanceInitFunc) gdk_sniffer_instance_init, NULL };
+ GType gdk_sniffer_type_id;
+ gdk_sniffer_type_id = g_type_register_static (TYPE_PHOTO_FILE_SNIFFER, "GdkSniffer", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&gdk_sniffer_type_id__volatile, gdk_sniffer_type_id);
+ }
+ return gdk_sniffer_type_id__volatile;
+}
+
+
+
diff --git a/src/photos/JfifSupport.c b/src/photos/JfifSupport.c
new file mode 100644
index 0000000..5855bf1
--- /dev/null
+++ b/src/photos/JfifSupport.c
@@ -0,0 +1,2020 @@
+/* JfifSupport.c generated by valac 0.32.1, the Vala compiler
+ * generated from JfifSupport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <glib/gi18n-lib.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define TYPE_PHOTO_FILE_FORMAT_DRIVER (photo_file_format_driver_get_type ())
+#define PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver))
+#define PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+#define IS_PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define IS_PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define PHOTO_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+
+typedef struct _PhotoFileFormatDriver PhotoFileFormatDriver;
+typedef struct _PhotoFileFormatDriverClass PhotoFileFormatDriverClass;
+typedef struct _PhotoFileFormatDriverPrivate PhotoFileFormatDriverPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+
+#define TYPE_JFIF_FILE_FORMAT_DRIVER (jfif_file_format_driver_get_type ())
+#define JFIF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver))
+#define JFIF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriverClass))
+#define IS_JFIF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_FILE_FORMAT_DRIVER))
+#define IS_JFIF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_FILE_FORMAT_DRIVER))
+#define JFIF_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriverClass))
+
+typedef struct _JfifFileFormatDriver JfifFileFormatDriver;
+typedef struct _JfifFileFormatDriverClass JfifFileFormatDriverClass;
+typedef struct _JfifFileFormatDriverPrivate JfifFileFormatDriverPrivate;
+#define _photo_file_format_driver_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_driver_unref (var), NULL)))
+
+#define TYPE_JFIF_FILE_FORMAT_PROPERTIES (jfif_file_format_properties_get_type ())
+#define JFIF_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties))
+#define JFIF_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatPropertiesClass))
+#define IS_JFIF_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_FILE_FORMAT_PROPERTIES))
+#define IS_JFIF_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_FILE_FORMAT_PROPERTIES))
+#define JFIF_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatPropertiesClass))
+
+typedef struct _JfifFileFormatProperties JfifFileFormatProperties;
+typedef struct _JfifFileFormatPropertiesClass JfifFileFormatPropertiesClass;
+
+#define TYPE_GDK_READER (gdk_reader_get_type ())
+#define GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_READER, GdkReader))
+#define GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_READER, GdkReaderClass))
+#define IS_GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_READER))
+#define IS_GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_READER))
+#define GDK_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_READER, GdkReaderClass))
+
+typedef struct _GdkReader GdkReader;
+typedef struct _GdkReaderClass GdkReaderClass;
+
+#define TYPE_JFIF_READER (jfif_reader_get_type ())
+#define JFIF_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_READER, JfifReader))
+#define JFIF_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_READER, JfifReaderClass))
+#define IS_JFIF_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_READER))
+#define IS_JFIF_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_READER))
+#define JFIF_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_READER, JfifReaderClass))
+
+typedef struct _JfifReader JfifReader;
+typedef struct _JfifReaderClass JfifReaderClass;
+
+#define TYPE_JFIF_WRITER (jfif_writer_get_type ())
+#define JFIF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_WRITER, JfifWriter))
+#define JFIF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_WRITER, JfifWriterClass))
+#define IS_JFIF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_WRITER))
+#define IS_JFIF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_WRITER))
+#define JFIF_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_WRITER, JfifWriterClass))
+
+typedef struct _JfifWriter JfifWriter;
+typedef struct _JfifWriterClass JfifWriterClass;
+
+#define TYPE_JFIF_METADATA_WRITER (jfif_metadata_writer_get_type ())
+#define JFIF_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_METADATA_WRITER, JfifMetadataWriter))
+#define JFIF_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_METADATA_WRITER, JfifMetadataWriterClass))
+#define IS_JFIF_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_METADATA_WRITER))
+#define IS_JFIF_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_METADATA_WRITER))
+#define JFIF_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_METADATA_WRITER, JfifMetadataWriterClass))
+
+typedef struct _JfifMetadataWriter JfifMetadataWriter;
+typedef struct _JfifMetadataWriterClass JfifMetadataWriterClass;
+
+#define TYPE_GDK_SNIFFER (gdk_sniffer_get_type ())
+#define GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_SNIFFER, GdkSniffer))
+#define GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_SNIFFER, GdkSnifferClass))
+#define IS_GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_SNIFFER))
+#define IS_GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_SNIFFER))
+#define GDK_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_SNIFFER, GdkSnifferClass))
+
+typedef struct _GdkSniffer GdkSniffer;
+typedef struct _GdkSnifferClass GdkSnifferClass;
+
+#define TYPE_JFIF_SNIFFER (jfif_sniffer_get_type ())
+#define JFIF_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_SNIFFER, JfifSniffer))
+#define JFIF_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_SNIFFER, JfifSnifferClass))
+#define IS_JFIF_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_SNIFFER))
+#define IS_JFIF_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_SNIFFER))
+#define JFIF_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_SNIFFER, JfifSnifferClass))
+
+typedef struct _JfifSniffer JfifSniffer;
+typedef struct _JfifSnifferClass JfifSnifferClass;
+typedef struct _PhotoFileFormatPropertiesPrivate PhotoFileFormatPropertiesPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT_FLAGS (photo_file_format_flags_get_type ())
+typedef struct _JfifFileFormatPropertiesPrivate JfifFileFormatPropertiesPrivate;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate;
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+typedef struct _GdkSnifferPrivate GdkSnifferPrivate;
+typedef struct _JfifSnifferPrivate JfifSnifferPrivate;
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate;
+typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate;
+typedef struct _GdkReaderPrivate GdkReaderPrivate;
+typedef struct _JfifReaderPrivate JfifReaderPrivate;
+typedef struct _PhotoFileWriterPrivate PhotoFileWriterPrivate;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _JfifWriterPrivate JfifWriterPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _PhotoFileMetadataWriterPrivate PhotoFileMetadataWriterPrivate;
+typedef struct _JfifMetadataWriterPrivate JfifMetadataWriterPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define JPEG_TYPE_MARKER (jpeg_marker_get_type ())
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileFormatDriver {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatDriverPrivate * priv;
+};
+
+struct _PhotoFileFormatDriverClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatDriver *self);
+ PhotoFileFormatProperties* (*get_properties) (PhotoFileFormatDriver* self);
+ PhotoFileReader* (*create_reader) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoMetadata* (*create_metadata) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_image) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_metadata) (PhotoFileFormatDriver* self);
+ PhotoFileWriter* (*create_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileMetadataWriter* (*create_metadata_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileSniffer* (*create_sniffer) (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+};
+
+struct _JfifFileFormatDriver {
+ PhotoFileFormatDriver parent_instance;
+ JfifFileFormatDriverPrivate * priv;
+};
+
+struct _JfifFileFormatDriverClass {
+ PhotoFileFormatDriverClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_FLAGS_NONE = 0x00000000
+} PhotoFileFormatFlags;
+
+struct _PhotoFileFormatProperties {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotoFileFormatPropertiesClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatProperties *self);
+ PhotoFileFormat (*get_file_format) (PhotoFileFormatProperties* self);
+ PhotoFileFormatFlags (*get_flags) (PhotoFileFormatProperties* self);
+ gboolean (*is_recognized_extension) (PhotoFileFormatProperties* self, const gchar* ext);
+ gchar* (*get_default_extension) (PhotoFileFormatProperties* self);
+ gchar** (*get_known_extensions) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_default_mime_type) (PhotoFileFormatProperties* self);
+ gchar** (*get_mime_types) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_user_visible_name) (PhotoFileFormatProperties* self);
+};
+
+struct _JfifFileFormatProperties {
+ PhotoFileFormatProperties parent_instance;
+ JfifFileFormatPropertiesPrivate * priv;
+};
+
+struct _JfifFileFormatPropertiesClass {
+ PhotoFileFormatPropertiesClass parent_class;
+};
+
+struct _PhotoFileSniffer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileSnifferPrivate * priv;
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ gboolean calc_md5;
+};
+
+struct _PhotoFileSnifferClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileSniffer *self);
+ DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+};
+
+struct _GdkSniffer {
+ PhotoFileSniffer parent_instance;
+ GdkSnifferPrivate * priv;
+};
+
+struct _GdkSnifferClass {
+ PhotoFileSnifferClass parent_class;
+};
+
+struct _JfifSniffer {
+ GdkSniffer parent_instance;
+ JfifSnifferPrivate * priv;
+};
+
+struct _JfifSnifferClass {
+ GdkSnifferClass parent_class;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+struct _PhotoFileAdapter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileAdapterPrivate * priv;
+};
+
+struct _PhotoFileAdapterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileAdapter *self);
+};
+
+struct _PhotoFileReader {
+ PhotoFileAdapter parent_instance;
+ PhotoFileReaderPrivate * priv;
+};
+
+struct _PhotoFileReaderClass {
+ PhotoFileAdapterClass parent_class;
+ PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+};
+
+struct _GdkReader {
+ PhotoFileReader parent_instance;
+ GdkReaderPrivate * priv;
+};
+
+struct _GdkReaderClass {
+ PhotoFileReaderClass parent_class;
+};
+
+struct _JfifReader {
+ GdkReader parent_instance;
+ JfifReaderPrivate * priv;
+};
+
+struct _JfifReaderClass {
+ GdkReaderClass parent_class;
+};
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _PhotoFileWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileWriterPrivate * priv;
+};
+
+struct _PhotoFileWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write) (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+};
+
+struct _JfifWriter {
+ PhotoFileWriter parent_instance;
+ JfifWriterPrivate * priv;
+};
+
+struct _JfifWriterClass {
+ PhotoFileWriterClass parent_class;
+};
+
+struct _PhotoFileMetadataWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileMetadataWriterPrivate * priv;
+};
+
+struct _PhotoFileMetadataWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write_metadata) (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+};
+
+struct _JfifMetadataWriter {
+ PhotoFileMetadataWriter parent_instance;
+ JfifMetadataWriterPrivate * priv;
+};
+
+struct _JfifMetadataWriterClass {
+ PhotoFileMetadataWriterClass parent_class;
+};
+
+typedef enum {
+ JPEG_MARKER_INVALID = 0x00,
+ JPEG_MARKER_SOI = 0xD8,
+ JPEG_MARKER_EOI = 0xD9,
+ JPEG_MARKER_APP0 = 0xE0,
+ JPEG_MARKER_APP1 = 0xE1
+} JpegMarker;
+
+
+static gpointer jfif_file_format_driver_parent_class = NULL;
+static JfifFileFormatDriver* jfif_file_format_driver_instance;
+static JfifFileFormatDriver* jfif_file_format_driver_instance = NULL;
+static gpointer jfif_file_format_properties_parent_class = NULL;
+static gchar** jfif_file_format_properties_KNOWN_EXTENSIONS;
+static gint jfif_file_format_properties_KNOWN_EXTENSIONS_length1;
+static gchar** jfif_file_format_properties_KNOWN_EXTENSIONS = NULL;
+static gint jfif_file_format_properties_KNOWN_EXTENSIONS_length1 = 0;
+static gint _jfif_file_format_properties_KNOWN_EXTENSIONS_size_ = 0;
+static gchar** jfif_file_format_properties_KNOWN_MIME_TYPES;
+static gint jfif_file_format_properties_KNOWN_MIME_TYPES_length1;
+static gchar** jfif_file_format_properties_KNOWN_MIME_TYPES = NULL;
+static gint jfif_file_format_properties_KNOWN_MIME_TYPES_length1 = 0;
+static gint _jfif_file_format_properties_KNOWN_MIME_TYPES_size_ = 0;
+static JfifFileFormatProperties* jfif_file_format_properties_instance;
+static JfifFileFormatProperties* jfif_file_format_properties_instance = NULL;
+static gpointer jfif_sniffer_parent_class = NULL;
+static gpointer jfif_reader_parent_class = NULL;
+static gpointer jfif_writer_parent_class = NULL;
+static gpointer jfif_metadata_writer_parent_class = NULL;
+
+gpointer photo_file_format_driver_ref (gpointer instance);
+void photo_file_format_driver_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_driver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_driver (GValue* value, gpointer v_object);
+void value_take_photo_file_format_driver (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_driver (const GValue* value);
+GType photo_file_format_driver_get_type (void) G_GNUC_CONST;
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+GType jfif_file_format_driver_get_type (void) G_GNUC_CONST;
+enum {
+ JFIF_FILE_FORMAT_DRIVER_DUMMY_PROPERTY
+};
+void jfif_file_format_driver_init (void);
+JfifFileFormatDriver* jfif_file_format_driver_new (void);
+JfifFileFormatDriver* jfif_file_format_driver_construct (GType object_type);
+void jfif_file_format_properties_init (void);
+JfifFileFormatDriver* jfif_file_format_driver_get_instance (void);
+static PhotoFileFormatProperties* jfif_file_format_driver_real_get_properties (PhotoFileFormatDriver* base);
+GType jfif_file_format_properties_get_type (void) G_GNUC_CONST;
+JfifFileFormatProperties* jfif_file_format_properties_get_instance (void);
+static PhotoFileReader* jfif_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath);
+JfifReader* jfif_reader_new (const gchar* filepath);
+JfifReader* jfif_reader_construct (GType object_type, const gchar* filepath);
+GType gdk_reader_get_type (void) G_GNUC_CONST;
+GType jfif_reader_get_type (void) G_GNUC_CONST;
+static PhotoMetadata* jfif_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base);
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+static gboolean jfif_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base);
+static gboolean jfif_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base);
+static PhotoFileWriter* jfif_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+JfifWriter* jfif_writer_new (const gchar* filepath);
+JfifWriter* jfif_writer_construct (GType object_type, const gchar* filepath);
+GType jfif_writer_get_type (void) G_GNUC_CONST;
+static PhotoFileMetadataWriter* jfif_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+JfifMetadataWriter* jfif_metadata_writer_new (const gchar* filepath);
+JfifMetadataWriter* jfif_metadata_writer_construct (GType object_type, const gchar* filepath);
+GType jfif_metadata_writer_get_type (void) G_GNUC_CONST;
+static PhotoFileSniffer* jfif_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options);
+JfifSniffer* jfif_sniffer_new (GFile* file, PhotoFileSnifferOptions options);
+JfifSniffer* jfif_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+GType gdk_sniffer_get_type (void) G_GNUC_CONST;
+GType jfif_sniffer_get_type (void) G_GNUC_CONST;
+PhotoFileFormatDriver* photo_file_format_driver_construct (GType object_type);
+static void jfif_file_format_driver_finalize (PhotoFileFormatDriver* obj);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType photo_file_format_flags_get_type (void) G_GNUC_CONST;
+enum {
+ JFIF_FILE_FORMAT_PROPERTIES_DUMMY_PROPERTY
+};
+JfifFileFormatProperties* jfif_file_format_properties_new (void);
+JfifFileFormatProperties* jfif_file_format_properties_construct (GType object_type);
+static PhotoFileFormat jfif_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base);
+static PhotoFileFormatFlags jfif_file_format_properties_real_get_flags (PhotoFileFormatProperties* base);
+static gchar* jfif_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base);
+static gchar* jfif_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base);
+static gchar** jfif_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup8 (gchar** self, int length);
+static gchar* jfif_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base);
+static gchar** jfif_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup9 (gchar** self, int length);
+PhotoFileFormatProperties* photo_file_format_properties_construct (GType object_type);
+static void jfif_file_format_properties_finalize (PhotoFileFormatProperties* obj);
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+enum {
+ JFIF_SNIFFER_DUMMY_PROPERTY
+};
+GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+static DetectedPhotoInformation* jfif_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error);
+gboolean jpeg_is_jpeg (GFile* file, GError** error);
+DetectedPhotoInformation* photo_file_sniffer_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+enum {
+ JFIF_READER_DUMMY_PROPERTY
+};
+GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+enum {
+ JFIF_WRITER_DUMMY_PROPERTY
+};
+PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void jfif_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+gchar* jpeg_quality_get_pct_text (JpegQuality self);
+enum {
+ JFIF_METADATA_WRITER_DUMMY_PROPERTY
+};
+PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void jfif_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error);
+void photo_metadata_write_to_file (PhotoMetadata* self, GFile* file, GError** error);
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self);
+#define JPEG_MARKER_PREFIX ((guint8) 0xFF)
+GType jpeg_marker_get_type (void) G_GNUC_CONST;
+guint8 jpeg_marker_get_byte (JpegMarker self);
+gint jpeg_quality_get_pct (JpegQuality self);
+JpegQuality* jpeg_quality_get_all (int* result_length1);
+gchar* jpeg_quality_to_string (JpegQuality self);
+gint jpeg_read_marker (GFileInputStream* fins, JpegMarker* marker, GError** error);
+
+
+void jfif_file_format_driver_init (void) {
+ JfifFileFormatDriver* _tmp0_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_driver_new ();
+#line 11 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _photo_file_format_driver_unref0 (jfif_file_format_driver_instance);
+#line 11 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_driver_instance = _tmp0_;
+#line 12 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_properties_init ();
+#line 633 "JfifSupport.c"
+}
+
+
+static gpointer _photo_file_format_driver_ref0 (gpointer self) {
+#line 16 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self ? photo_file_format_driver_ref (self) : NULL;
+#line 640 "JfifSupport.c"
+}
+
+
+JfifFileFormatDriver* jfif_file_format_driver_get_instance (void) {
+ JfifFileFormatDriver* result = NULL;
+ JfifFileFormatDriver* _tmp0_ = NULL;
+ JfifFileFormatDriver* _tmp1_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_driver_instance;
+#line 16 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = _photo_file_format_driver_ref0 (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp1_;
+#line 16 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 656 "JfifSupport.c"
+}
+
+
+static PhotoFileFormatProperties* jfif_file_format_driver_real_get_properties (PhotoFileFormatDriver* base) {
+ JfifFileFormatDriver * self;
+ PhotoFileFormatProperties* result = NULL;
+ JfifFileFormatProperties* _tmp0_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 20 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_properties_get_instance ();
+#line 20 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties);
+#line 20 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 672 "JfifSupport.c"
+}
+
+
+static PhotoFileReader* jfif_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath) {
+ JfifFileFormatDriver * self;
+ PhotoFileReader* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ JfifReader* _tmp1_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 23 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 24 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = filepath;
+#line 24 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = jfif_reader_new (_tmp0_);
+#line 24 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_READER, PhotoFileReader);
+#line 24 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 693 "JfifSupport.c"
+}
+
+
+static PhotoMetadata* jfif_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base) {
+ JfifFileFormatDriver * self;
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 28 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = photo_metadata_new ();
+#line 28 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp0_;
+#line 28 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 709 "JfifSupport.c"
+}
+
+
+static gboolean jfif_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base) {
+ JfifFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 32 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = TRUE;
+#line 32 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 722 "JfifSupport.c"
+}
+
+
+static gboolean jfif_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base) {
+ JfifFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 35 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 36 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = TRUE;
+#line 36 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 735 "JfifSupport.c"
+}
+
+
+static PhotoFileWriter* jfif_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ JfifFileFormatDriver * self;
+ PhotoFileWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ JfifWriter* _tmp1_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 39 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 40 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = filepath;
+#line 40 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = jfif_writer_new (_tmp0_);
+#line 40 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_WRITER, PhotoFileWriter);
+#line 40 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 756 "JfifSupport.c"
+}
+
+
+static PhotoFileMetadataWriter* jfif_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ JfifFileFormatDriver * self;
+ PhotoFileMetadataWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ JfifMetadataWriter* _tmp1_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 43 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 44 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = filepath;
+#line 44 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = jfif_metadata_writer_new (_tmp0_);
+#line 44 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter);
+#line 44 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 777 "JfifSupport.c"
+}
+
+
+static PhotoFileSniffer* jfif_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options) {
+ JfifFileFormatDriver * self;
+ PhotoFileSniffer* result = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+ JfifSniffer* _tmp2_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 47 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 48 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = file;
+#line 48 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = options;
+#line 48 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = jfif_sniffer_new (_tmp0_, _tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer);
+#line 48 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 801 "JfifSupport.c"
+}
+
+
+JfifFileFormatDriver* jfif_file_format_driver_construct (GType object_type) {
+ JfifFileFormatDriver* self = NULL;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = (JfifFileFormatDriver*) photo_file_format_driver_construct (object_type);
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self;
+#line 811 "JfifSupport.c"
+}
+
+
+JfifFileFormatDriver* jfif_file_format_driver_new (void) {
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return jfif_file_format_driver_construct (TYPE_JFIF_FILE_FORMAT_DRIVER);
+#line 818 "JfifSupport.c"
+}
+
+
+static void jfif_file_format_driver_class_init (JfifFileFormatDriverClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_driver_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->finalize = jfif_file_format_driver_finalize;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->get_properties = jfif_file_format_driver_real_get_properties;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_reader = jfif_file_format_driver_real_create_reader;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata = jfif_file_format_driver_real_create_metadata;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_image = jfif_file_format_driver_real_can_write_image;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_metadata = jfif_file_format_driver_real_can_write_metadata;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_writer = jfif_file_format_driver_real_create_writer;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata_writer = jfif_file_format_driver_real_create_metadata_writer;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_sniffer = jfif_file_format_driver_real_create_sniffer;
+#line 843 "JfifSupport.c"
+}
+
+
+static void jfif_file_format_driver_instance_init (JfifFileFormatDriver * self) {
+}
+
+
+static void jfif_file_format_driver_finalize (PhotoFileFormatDriver* obj) {
+ JfifFileFormatDriver * self;
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver);
+#line 7 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ PHOTO_FILE_FORMAT_DRIVER_CLASS (jfif_file_format_driver_parent_class)->finalize (obj);
+#line 857 "JfifSupport.c"
+}
+
+
+GType jfif_file_format_driver_get_type (void) {
+ static volatile gsize jfif_file_format_driver_type_id__volatile = 0;
+ if (g_once_init_enter (&jfif_file_format_driver_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JfifFileFormatDriverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jfif_file_format_driver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JfifFileFormatDriver), 0, (GInstanceInitFunc) jfif_file_format_driver_instance_init, NULL };
+ GType jfif_file_format_driver_type_id;
+ jfif_file_format_driver_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_DRIVER, "JfifFileFormatDriver", &g_define_type_info, 0);
+ g_once_init_leave (&jfif_file_format_driver_type_id__volatile, jfif_file_format_driver_type_id);
+ }
+ return jfif_file_format_driver_type_id__volatile;
+}
+
+
+void jfif_file_format_properties_init (void) {
+ JfifFileFormatProperties* _tmp0_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_properties_new ();
+#line 64 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _photo_file_format_properties_unref0 (jfif_file_format_properties_instance);
+#line 64 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_properties_instance = _tmp0_;
+#line 881 "JfifSupport.c"
+}
+
+
+static gpointer _photo_file_format_properties_ref0 (gpointer self) {
+#line 68 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self ? photo_file_format_properties_ref (self) : NULL;
+#line 888 "JfifSupport.c"
+}
+
+
+JfifFileFormatProperties* jfif_file_format_properties_get_instance (void) {
+ JfifFileFormatProperties* result = NULL;
+ JfifFileFormatProperties* _tmp0_ = NULL;
+ JfifFileFormatProperties* _tmp1_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_properties_instance;
+#line 68 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = _photo_file_format_properties_ref0 (_tmp0_);
+#line 68 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 904 "JfifSupport.c"
+}
+
+
+static PhotoFileFormat jfif_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base) {
+ JfifFileFormatProperties * self;
+ PhotoFileFormat result = 0;
+#line 71 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 72 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = PHOTO_FILE_FORMAT_JFIF;
+#line 72 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 917 "JfifSupport.c"
+}
+
+
+static PhotoFileFormatFlags jfif_file_format_properties_real_get_flags (PhotoFileFormatProperties* base) {
+ JfifFileFormatProperties * self;
+ PhotoFileFormatFlags result = 0;
+#line 75 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 76 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = PHOTO_FILE_FORMAT_FLAGS_NONE;
+#line 76 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 930 "JfifSupport.c"
+}
+
+
+static gchar* jfif_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base) {
+ JfifFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 80 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = g_strdup ("jpg");
+#line 80 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp0_;
+#line 80 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 946 "JfifSupport.c"
+}
+
+
+static gchar* jfif_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base) {
+ JfifFileFormatProperties * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 84 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = _ ("JPEG");
+#line 84 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 84 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp1_;
+#line 84 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 965 "JfifSupport.c"
+}
+
+
+static gchar** _vala_array_dup8 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 976 "JfifSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result[i] = _tmp0_;
+#line 982 "JfifSupport.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 986 "JfifSupport.c"
+}
+
+
+static gchar** jfif_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1) {
+ JfifFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 87 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_properties_KNOWN_EXTENSIONS;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0__length1 = jfif_file_format_properties_KNOWN_EXTENSIONS_length1;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup8 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (result_length1) {
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 1017 "JfifSupport.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp2_;
+#line 88 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1023 "JfifSupport.c"
+}
+
+
+static gchar* jfif_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base) {
+ JfifFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 92 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_properties_KNOWN_MIME_TYPES;
+#line 92 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0__length1 = jfif_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 92 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = _tmp0_[0];
+#line 92 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 92 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp2_;
+#line 92 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1048 "JfifSupport.c"
+}
+
+
+static gchar** _vala_array_dup9 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 1059 "JfifSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result[i] = _tmp0_;
+#line 1065 "JfifSupport.c"
+ }
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1069 "JfifSupport.c"
+}
+
+
+static gchar** jfif_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1) {
+ JfifFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 95 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = jfif_file_format_properties_KNOWN_MIME_TYPES;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0__length1 = jfif_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup9 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (result_length1) {
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 1100 "JfifSupport.c"
+ }
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp2_;
+#line 96 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1106 "JfifSupport.c"
+}
+
+
+JfifFileFormatProperties* jfif_file_format_properties_construct (GType object_type) {
+ JfifFileFormatProperties* self = NULL;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = (JfifFileFormatProperties*) photo_file_format_properties_construct (object_type);
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self;
+#line 1116 "JfifSupport.c"
+}
+
+
+JfifFileFormatProperties* jfif_file_format_properties_new (void) {
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return jfif_file_format_properties_construct (TYPE_JFIF_FILE_FORMAT_PROPERTIES);
+#line 1123 "JfifSupport.c"
+}
+
+
+static void jfif_file_format_properties_class_init (JfifFileFormatPropertiesClass * klass) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_properties_parent_class = g_type_class_peek_parent (klass);
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->finalize = jfif_file_format_properties_finalize;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_file_format = jfif_file_format_properties_real_get_file_format;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_flags = jfif_file_format_properties_real_get_flags;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_extension = jfif_file_format_properties_real_get_default_extension;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_user_visible_name = jfif_file_format_properties_real_get_user_visible_name;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_known_extensions = jfif_file_format_properties_real_get_known_extensions;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_mime_type = jfif_file_format_properties_real_get_default_mime_type;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_mime_types = jfif_file_format_properties_real_get_mime_types;
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = g_strdup ("jpg");
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = g_strdup ("jpeg");
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = g_strdup ("jpe");
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp3_ = g_new0 (gchar*, 3 + 1);
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp3_[0] = _tmp0_;
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp3_[1] = _tmp1_;
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp3_[2] = _tmp2_;
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_properties_KNOWN_EXTENSIONS = _tmp3_;
+#line 53 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_properties_KNOWN_EXTENSIONS_length1 = 3;
+#line 57 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp4_ = g_strdup ("image/jpeg");
+#line 57 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_ = g_new0 (gchar*, 1 + 1);
+#line 57 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_[0] = _tmp4_;
+#line 57 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_properties_KNOWN_MIME_TYPES = _tmp5_;
+#line 57 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_file_format_properties_KNOWN_MIME_TYPES_length1 = 1;
+#line 1180 "JfifSupport.c"
+}
+
+
+static void jfif_file_format_properties_instance_init (JfifFileFormatProperties * self) {
+}
+
+
+static void jfif_file_format_properties_finalize (PhotoFileFormatProperties* obj) {
+ JfifFileFormatProperties * self;
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_JFIF_FILE_FORMAT_PROPERTIES, JfifFileFormatProperties);
+#line 52 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ PHOTO_FILE_FORMAT_PROPERTIES_CLASS (jfif_file_format_properties_parent_class)->finalize (obj);
+#line 1194 "JfifSupport.c"
+}
+
+
+GType jfif_file_format_properties_get_type (void) {
+ static volatile gsize jfif_file_format_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&jfif_file_format_properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JfifFileFormatPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jfif_file_format_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JfifFileFormatProperties), 0, (GInstanceInitFunc) jfif_file_format_properties_instance_init, NULL };
+ GType jfif_file_format_properties_type_id;
+ jfif_file_format_properties_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_PROPERTIES, "JfifFileFormatProperties", &g_define_type_info, 0);
+ g_once_init_leave (&jfif_file_format_properties_type_id__volatile, jfif_file_format_properties_type_id);
+ }
+ return jfif_file_format_properties_type_id__volatile;
+}
+
+
+JfifSniffer* jfif_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ JfifSniffer* self = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+#line 101 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 102 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = file;
+#line 102 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = options;
+#line 102 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = (JfifSniffer*) gdk_sniffer_construct (object_type, _tmp0_, _tmp1_);
+#line 101 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self;
+#line 1224 "JfifSupport.c"
+}
+
+
+JfifSniffer* jfif_sniffer_new (GFile* file, PhotoFileSnifferOptions options) {
+#line 101 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return jfif_sniffer_construct (TYPE_JFIF_SNIFFER, file, options);
+#line 1231 "JfifSupport.c"
+}
+
+
+static gpointer _detected_photo_information_ref0 (gpointer self) {
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self ? detected_photo_information_ref (self) : NULL;
+#line 1238 "JfifSupport.c"
+}
+
+
+static DetectedPhotoInformation* jfif_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error) {
+ JfifSniffer * self;
+ gboolean _vala_is_corrupted = FALSE;
+ DetectedPhotoInformation* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ DetectedPhotoInformation* detected = NULL;
+ gboolean _tmp3_ = FALSE;
+ DetectedPhotoInformation* _tmp4_ = NULL;
+ DetectedPhotoInformation* _tmp5_ = NULL;
+ DetectedPhotoInformation* _tmp6_ = NULL;
+ DetectedPhotoInformation* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+ DetectedPhotoInformation* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_SNIFFER, JfifSniffer);
+#line 107 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _vala_is_corrupted = FALSE;
+#line 109 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 109 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = jpeg_is_jpeg (_tmp1_, &_inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = _tmp2_;
+#line 109 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 109 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 109 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return NULL;
+#line 1274 "JfifSupport.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (!_tmp0_) {
+#line 110 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = NULL;
+#line 110 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (is_corrupted) {
+#line 110 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1284 "JfifSupport.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1288 "JfifSupport.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp4_ = PHOTO_FILE_SNIFFER_CLASS (jfif_sniffer_parent_class)->sniff (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GDK_SNIFFER, GdkSniffer), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer), &_tmp3_, &_inner_error_);
+#line 112 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _vala_is_corrupted = _tmp3_;
+#line 112 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ detected = _tmp4_;
+#line 112 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 112 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 112 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return NULL;
+#line 1302 "JfifSupport.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_ = detected;
+#line 113 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (_tmp5_ == NULL) {
+#line 114 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = NULL;
+#line 114 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 114 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (is_corrupted) {
+#line 114 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1316 "JfifSupport.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1320 "JfifSupport.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp7_ = detected;
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp8_ = _tmp7_->file_format;
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (_tmp8_ == PHOTO_FILE_FORMAT_JFIF) {
+#line 1328 "JfifSupport.c"
+ DetectedPhotoInformation* _tmp9_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp9_ = detected;
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp6_ = _tmp9_;
+#line 1334 "JfifSupport.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp6_ = NULL;
+#line 1338 "JfifSupport.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp10_ = _detected_photo_information_ref0 (_tmp6_);
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp10_;
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (is_corrupted) {
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1350 "JfifSupport.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1354 "JfifSupport.c"
+}
+
+
+static void jfif_sniffer_class_init (JfifSnifferClass * klass) {
+#line 100 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 100 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileSnifferClass *) klass)->sniff = jfif_sniffer_real_sniff;
+#line 1363 "JfifSupport.c"
+}
+
+
+static void jfif_sniffer_instance_init (JfifSniffer * self) {
+}
+
+
+GType jfif_sniffer_get_type (void) {
+ static volatile gsize jfif_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&jfif_sniffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JfifSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jfif_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JfifSniffer), 0, (GInstanceInitFunc) jfif_sniffer_instance_init, NULL };
+ GType jfif_sniffer_type_id;
+ jfif_sniffer_type_id = g_type_register_static (TYPE_GDK_SNIFFER, "JfifSniffer", &g_define_type_info, 0);
+ g_once_init_leave (&jfif_sniffer_type_id__volatile, jfif_sniffer_type_id);
+ }
+ return jfif_sniffer_type_id__volatile;
+}
+
+
+JfifReader* jfif_reader_construct (GType object_type, const gchar* filepath) {
+ JfifReader* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 122 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = filepath;
+#line 122 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = (JfifReader*) gdk_reader_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_JFIF);
+#line 121 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self;
+#line 1394 "JfifSupport.c"
+}
+
+
+JfifReader* jfif_reader_new (const gchar* filepath) {
+#line 121 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return jfif_reader_construct (TYPE_JFIF_READER, filepath);
+#line 1401 "JfifSupport.c"
+}
+
+
+static void jfif_reader_class_init (JfifReaderClass * klass) {
+#line 120 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_reader_parent_class = g_type_class_peek_parent (klass);
+#line 1408 "JfifSupport.c"
+}
+
+
+static void jfif_reader_instance_init (JfifReader * self) {
+}
+
+
+GType jfif_reader_get_type (void) {
+ static volatile gsize jfif_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&jfif_reader_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JfifReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jfif_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JfifReader), 0, (GInstanceInitFunc) jfif_reader_instance_init, NULL };
+ GType jfif_reader_type_id;
+ jfif_reader_type_id = g_type_register_static (TYPE_GDK_READER, "JfifReader", &g_define_type_info, 0);
+ g_once_init_leave (&jfif_reader_type_id__volatile, jfif_reader_type_id);
+ }
+ return jfif_reader_type_id__volatile;
+}
+
+
+JfifWriter* jfif_writer_construct (GType object_type, const gchar* filepath) {
+ JfifWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 127 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 128 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = filepath;
+#line 128 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = (JfifWriter*) photo_file_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_JFIF);
+#line 127 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self;
+#line 1439 "JfifSupport.c"
+}
+
+
+JfifWriter* jfif_writer_new (const gchar* filepath) {
+#line 127 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return jfif_writer_construct (TYPE_JFIF_WRITER, filepath);
+#line 1446 "JfifSupport.c"
+}
+
+
+static void jfif_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) {
+ JfifWriter * self;
+ GdkPixbuf* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ JpegQuality _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_WRITER, JfifWriter);
+#line 131 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = pixbuf;
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp3_ = quality;
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp4_ = jpeg_quality_get_pct_text (_tmp3_);
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ gdk_pixbuf_save (_tmp0_, _tmp2_, "jpeg", &_inner_error_, "quality", _tmp5_, NULL);
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_free0 (_tmp5_);
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_free0 (_tmp2_);
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 132 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return;
+#line 1487 "JfifSupport.c"
+ }
+}
+
+
+static void jfif_writer_class_init (JfifWriterClass * klass) {
+#line 126 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_writer_parent_class = g_type_class_peek_parent (klass);
+#line 126 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileWriterClass *) klass)->write = jfif_writer_real_write;
+#line 1497 "JfifSupport.c"
+}
+
+
+static void jfif_writer_instance_init (JfifWriter * self) {
+}
+
+
+GType jfif_writer_get_type (void) {
+ static volatile gsize jfif_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&jfif_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JfifWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jfif_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JfifWriter), 0, (GInstanceInitFunc) jfif_writer_instance_init, NULL };
+ GType jfif_writer_type_id;
+ jfif_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_WRITER, "JfifWriter", &g_define_type_info, 0);
+ g_once_init_leave (&jfif_writer_type_id__volatile, jfif_writer_type_id);
+ }
+ return jfif_writer_type_id__volatile;
+}
+
+
+JfifMetadataWriter* jfif_metadata_writer_construct (GType object_type, const gchar* filepath) {
+ JfifMetadataWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 138 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = filepath;
+#line 138 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = (JfifMetadataWriter*) photo_file_metadata_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_JFIF);
+#line 137 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return self;
+#line 1528 "JfifSupport.c"
+}
+
+
+JfifMetadataWriter* jfif_metadata_writer_new (const gchar* filepath) {
+#line 137 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return jfif_metadata_writer_construct (TYPE_JFIF_METADATA_WRITER, filepath);
+#line 1535 "JfifSupport.c"
+}
+
+
+static void jfif_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error) {
+ JfifMetadataWriter * self;
+ PhotoMetadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_JFIF_METADATA_WRITER, JfifMetadataWriter);
+#line 141 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = metadata;
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ photo_metadata_write_to_file (_tmp0_, _tmp2_, &_inner_error_);
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 142 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return;
+#line 1565 "JfifSupport.c"
+ }
+}
+
+
+static void jfif_metadata_writer_class_init (JfifMetadataWriterClass * klass) {
+#line 136 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ jfif_metadata_writer_parent_class = g_type_class_peek_parent (klass);
+#line 136 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ ((PhotoFileMetadataWriterClass *) klass)->write_metadata = jfif_metadata_writer_real_write_metadata;
+#line 1575 "JfifSupport.c"
+}
+
+
+static void jfif_metadata_writer_instance_init (JfifMetadataWriter * self) {
+}
+
+
+GType jfif_metadata_writer_get_type (void) {
+ static volatile gsize jfif_metadata_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&jfif_metadata_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (JfifMetadataWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) jfif_metadata_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (JfifMetadataWriter), 0, (GInstanceInitFunc) jfif_metadata_writer_instance_init, NULL };
+ GType jfif_metadata_writer_type_id;
+ jfif_metadata_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_METADATA_WRITER, "JfifMetadataWriter", &g_define_type_info, 0);
+ g_once_init_leave (&jfif_metadata_writer_type_id__volatile, jfif_metadata_writer_type_id);
+ }
+ return jfif_metadata_writer_type_id__volatile;
+}
+
+
+guint8 jpeg_marker_get_byte (JpegMarker self) {
+ guint8 result = 0U;
+#line 160 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = (guint8) self;
+#line 160 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1601 "JfifSupport.c"
+}
+
+
+GType jpeg_marker_get_type (void) {
+ static volatile gsize jpeg_marker_type_id__volatile = 0;
+ if (g_once_init_enter (&jpeg_marker_type_id__volatile)) {
+ static const GEnumValue values[] = {{JPEG_MARKER_INVALID, "JPEG_MARKER_INVALID", "invalid"}, {JPEG_MARKER_SOI, "JPEG_MARKER_SOI", "soi"}, {JPEG_MARKER_EOI, "JPEG_MARKER_EOI", "eoi"}, {JPEG_MARKER_APP0, "JPEG_MARKER_APP0", "app0"}, {JPEG_MARKER_APP1, "JPEG_MARKER_APP1", "app1"}, {0, NULL, NULL}};
+ GType jpeg_marker_type_id;
+ jpeg_marker_type_id = g_enum_register_static ("JpegMarker", values);
+ g_once_init_leave (&jpeg_marker_type_id__volatile, jpeg_marker_type_id);
+ }
+ return jpeg_marker_type_id__volatile;
+}
+
+
+gint jpeg_quality_get_pct (JpegQuality self) {
+ gint result = 0;
+#line 171 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = (gint) self;
+#line 171 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1623 "JfifSupport.c"
+}
+
+
+gchar* jpeg_quality_get_pct_text (JpegQuality self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = g_strdup_printf ("%d", (gint) self);
+#line 175 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp0_;
+#line 175 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1636 "JfifSupport.c"
+}
+
+
+JpegQuality* jpeg_quality_get_all (int* result_length1) {
+ JpegQuality* result = NULL;
+ JpegQuality* _tmp0_ = NULL;
+ JpegQuality* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = g_new0 (JpegQuality, 4);
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_[0] = JPEG_QUALITY_LOW;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_[1] = JPEG_QUALITY_MEDIUM;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_[2] = JPEG_QUALITY_HIGH;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_[3] = JPEG_QUALITY_MAXIMUM;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1__length1 = 4;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (result_length1) {
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *result_length1 = _tmp1__length1;
+#line 1663 "JfifSupport.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp1_;
+#line 179 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1669 "JfifSupport.c"
+}
+
+
+gchar* jpeg_quality_to_string (JpegQuality self) {
+ gchar* result = NULL;
+#line 183 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ switch (self) {
+#line 183 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ case JPEG_QUALITY_LOW:
+#line 1679 "JfifSupport.c"
+ {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 185 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = _ ("Low (%d%%)");
+#line 185 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = g_strdup_printf (_tmp0_, (gint) self);
+#line 185 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp1_;
+#line 185 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1691 "JfifSupport.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ case JPEG_QUALITY_MEDIUM:
+#line 1695 "JfifSupport.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = _ ("Medium (%d%%)");
+#line 188 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp3_ = g_strdup_printf (_tmp2_, (gint) self);
+#line 188 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp3_;
+#line 188 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1707 "JfifSupport.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ case JPEG_QUALITY_HIGH:
+#line 1711 "JfifSupport.c"
+ {
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 191 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp4_ = _ ("High (%d%%)");
+#line 191 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_ = g_strdup_printf (_tmp4_, (gint) self);
+#line 191 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp5_;
+#line 191 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1723 "JfifSupport.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ case JPEG_QUALITY_MAXIMUM:
+#line 1727 "JfifSupport.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp6_ = _ ("Maximum (%d%%)");
+#line 194 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp7_ = g_strdup_printf (_tmp6_, (gint) self);
+#line 194 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp7_;
+#line 194 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1739 "JfifSupport.c"
+ }
+ default:
+#line 183 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ break;
+#line 1744 "JfifSupport.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_warn_if_reached ();
+#line 199 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = NULL;
+#line 199 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1752 "JfifSupport.c"
+}
+
+
+GType jpeg_quality_get_type (void) {
+ static volatile gsize jpeg_quality_type_id__volatile = 0;
+ if (g_once_init_enter (&jpeg_quality_type_id__volatile)) {
+ static const GEnumValue values[] = {{JPEG_QUALITY_LOW, "JPEG_QUALITY_LOW", "low"}, {JPEG_QUALITY_MEDIUM, "JPEG_QUALITY_MEDIUM", "medium"}, {JPEG_QUALITY_HIGH, "JPEG_QUALITY_HIGH", "high"}, {JPEG_QUALITY_MAXIMUM, "JPEG_QUALITY_MAXIMUM", "maximum"}, {0, NULL, NULL}};
+ GType jpeg_quality_type_id;
+ jpeg_quality_type_id = g_enum_register_static ("JpegQuality", values);
+ g_once_init_leave (&jpeg_quality_type_id__volatile, jpeg_quality_type_id);
+ }
+ return jpeg_quality_type_id__volatile;
+}
+
+
+gboolean jpeg_is_jpeg (GFile* file, GError** error) {
+ gboolean result = FALSE;
+ GFileInputStream* fins = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInputStream* _tmp1_ = NULL;
+ JpegMarker marker = 0;
+ gint segment_length = 0;
+ GFileInputStream* _tmp2_ = NULL;
+ JpegMarker _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+ JpegMarker _tmp6_ = 0;
+ GError * _inner_error_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 204 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = file;
+#line 204 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = g_file_read (_tmp0_, NULL, &_inner_error_);
+#line 204 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ fins = _tmp1_;
+#line 204 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 204 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 204 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return FALSE;
+#line 1795 "JfifSupport.c"
+ }
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = fins;
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp4_ = jpeg_read_marker (_tmp2_, &_tmp3_, &_inner_error_);
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ marker = _tmp3_;
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ segment_length = _tmp4_;
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (fins);
+#line 207 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return FALSE;
+#line 1813 "JfifSupport.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp6_ = marker;
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (_tmp6_ == JPEG_MARKER_SOI) {
+#line 1819 "JfifSupport.c"
+ gint _tmp7_ = 0;
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp7_ = segment_length;
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_ = _tmp7_ == 0;
+#line 1825 "JfifSupport.c"
+ } else {
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_ = FALSE;
+#line 1829 "JfifSupport.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp5_;
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (fins);
+#line 210 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1837 "JfifSupport.c"
+}
+
+
+gint jpeg_read_marker (GFileInputStream* fins, JpegMarker* marker, GError** error) {
+ JpegMarker _vala_marker = 0;
+ gint result = 0;
+ GDataInputStream* dins = NULL;
+ GFileInputStream* _tmp0_ = NULL;
+ GDataInputStream* _tmp1_ = NULL;
+ GDataInputStream* _tmp2_ = NULL;
+ guint8 _tmp3_ = 0U;
+ GDataInputStream* _tmp4_ = NULL;
+ guint8 _tmp5_ = 0U;
+ guint8 _tmp6_ = 0U;
+ GDataInputStream* _tmp7_ = NULL;
+ guint8 _tmp8_ = 0U;
+ gboolean _tmp9_ = FALSE;
+ JpegMarker _tmp10_ = 0;
+ guint16 length = 0U;
+ GDataInputStream* _tmp12_ = NULL;
+ guint16 _tmp13_ = 0U;
+ guint16 _tmp14_ = 0U;
+ guint16 _tmp18_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_return_val_if_fail (G_IS_FILE_INPUT_STREAM (fins), 0);
+#line 214 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _vala_marker = JPEG_MARKER_INVALID;
+#line 216 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp0_ = fins;
+#line 216 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp1_ = g_data_input_stream_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_INPUT_STREAM, GInputStream));
+#line 216 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ dins = _tmp1_;
+#line 217 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp2_ = dins;
+#line 217 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_data_input_stream_set_byte_order (_tmp2_, G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN);
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp4_ = dins;
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp5_ = g_data_input_stream_read_byte (_tmp4_, NULL, &_inner_error_);
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp3_ = _tmp5_;
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (dins);
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return 0;
+#line 1890 "JfifSupport.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (_tmp3_ != JPEG_MARKER_PREFIX) {
+#line 220 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = -1;
+#line 220 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (dins);
+#line 220 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (marker) {
+#line 220 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *marker = _vala_marker;
+#line 1902 "JfifSupport.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1906 "JfifSupport.c"
+ }
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp7_ = dins;
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp8_ = g_data_input_stream_read_byte (_tmp7_, NULL, &_inner_error_);
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp6_ = _tmp8_;
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (dins);
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return 0;
+#line 1922 "JfifSupport.c"
+ }
+#line 222 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _vala_marker = (JpegMarker) _tmp6_;
+#line 223 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp10_ = _vala_marker;
+#line 223 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (_tmp10_ == JPEG_MARKER_SOI) {
+#line 223 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp9_ = TRUE;
+#line 1932 "JfifSupport.c"
+ } else {
+ JpegMarker _tmp11_ = 0;
+#line 223 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp11_ = _vala_marker;
+#line 223 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp9_ = _tmp11_ == JPEG_MARKER_EOI;
+#line 1939 "JfifSupport.c"
+ }
+#line 223 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (_tmp9_) {
+#line 225 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = 0;
+#line 225 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (dins);
+#line 225 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (marker) {
+#line 225 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *marker = _vala_marker;
+#line 1951 "JfifSupport.c"
+ }
+#line 225 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 1955 "JfifSupport.c"
+ }
+#line 228 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp12_ = dins;
+#line 228 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp13_ = g_data_input_stream_read_uint16 (_tmp12_, NULL, &_inner_error_);
+#line 228 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ length = _tmp13_;
+#line 228 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 228 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 228 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (dins);
+#line 228 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return 0;
+#line 1971 "JfifSupport.c"
+ }
+#line 229 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp14_ = length;
+#line 229 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (((gint) _tmp14_) < 2) {
+#line 1977 "JfifSupport.c"
+ guint16 _tmp15_ = 0U;
+ GFileInputStream* _tmp16_ = NULL;
+ gint64 _tmp17_ = 0LL;
+#line 230 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp15_ = length;
+#line 230 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp16_ = fins;
+#line 230 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp17_ = G_FILE_INPUT_STREAM_GET_CLASS (_tmp16_)->tell (_tmp16_);
+#line 230 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ g_debug ("Invalid length %Xh at ofs %" G_GINT64_FORMAT "Xh", _tmp15_, _tmp17_ - 2);
+#line 232 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = -1;
+#line 232 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (dins);
+#line 232 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (marker) {
+#line 232 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *marker = _vala_marker;
+#line 1997 "JfifSupport.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 2001 "JfifSupport.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _tmp18_ = length;
+#line 236 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ result = _tmp18_ - 2;
+#line 236 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ _g_object_unref0 (dins);
+#line 236 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ if (marker) {
+#line 236 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ *marker = _vala_marker;
+#line 2013 "JfifSupport.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/photos/JfifSupport.vala"
+ return result;
+#line 2017 "JfifSupport.c"
+}
+
+
+
diff --git a/src/photos/PhotoFileAdapter.c b/src/photos/PhotoFileAdapter.c
new file mode 100644
index 0000000..2f05603
--- /dev/null
+++ b/src/photos/PhotoFileAdapter.c
@@ -0,0 +1,1104 @@
+/* PhotoFileAdapter.c generated by valac 0.32.1, the Vala compiler
+ * generated from PhotoFileAdapter.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/**/
+/* PhotoFileAdapter*/
+/**/
+/* PhotoFileAdapter (and its immediate children, PhotoFileReader and PhotoFileWriter) are drivers*/
+/* hiding details of reading and writing image files and their metadata. They should keep*/
+/* minimal state beyond the filename, if any stat at all. In particular, they should avoid caching*/
+/* values, especially the readers, as writers may be created at any time and invalidate that*/
+/* information, unless the readers monitor the file for these changes.*/
+/**/
+/* PhotoFileAdapters should be entirely thread-safe. They are not, however, responsible for*/
+/* atomicity on the filesystem.*/
+/**/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecPhotoFileAdapter ParamSpecPhotoFileAdapter;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+typedef struct _PhotoFileWriterPrivate PhotoFileWriterPrivate;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _PhotoFileMetadataWriterPrivate PhotoFileMetadataWriterPrivate;
+
+struct _PhotoFileAdapter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileAdapterPrivate * priv;
+};
+
+struct _PhotoFileAdapterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileAdapter *self);
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _PhotoFileAdapterPrivate {
+ gchar* filepath;
+ PhotoFileFormat file_format;
+ GFile* file;
+ GRecMutex __lock_file;
+};
+
+struct _ParamSpecPhotoFileAdapter {
+ GParamSpec parent_instance;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _PhotoFileReader {
+ PhotoFileAdapter parent_instance;
+ PhotoFileReaderPrivate * priv;
+};
+
+struct _PhotoFileReaderClass {
+ PhotoFileAdapterClass parent_class;
+ PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+};
+
+typedef enum {
+ PHOTO_FORMAT_ERROR_READ_ONLY
+} PhotoFormatError;
+#define PHOTO_FORMAT_ERROR photo_format_error_quark ()
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _PhotoFileWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileWriterPrivate * priv;
+};
+
+struct _PhotoFileWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write) (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+};
+
+struct _PhotoFileMetadataWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileMetadataWriterPrivate * priv;
+};
+
+struct _PhotoFileMetadataWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write_metadata) (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+};
+
+
+static gpointer photo_file_adapter_parent_class = NULL;
+static gpointer photo_file_reader_parent_class = NULL;
+static gpointer photo_file_writer_parent_class = NULL;
+static gpointer photo_file_metadata_writer_parent_class = NULL;
+
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+#define PHOTO_FILE_ADAPTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterPrivate))
+enum {
+ PHOTO_FILE_ADAPTER_DUMMY_PROPERTY
+};
+PhotoFileAdapter* photo_file_adapter_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+gboolean photo_file_adapter_file_exists (PhotoFileAdapter* self);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self);
+PhotoFileFormat photo_file_adapter_get_file_format (PhotoFileAdapter* self);
+static void photo_file_adapter_finalize (PhotoFileAdapter* obj);
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+enum {
+ PHOTO_FILE_READER_DUMMY_PROPERTY
+};
+PhotoFileReader* photo_file_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GQuark photo_format_error_quark (void);
+PhotoFileWriter* photo_file_reader_create_writer (PhotoFileReader* self, GError** error);
+PhotoFileWriter* photo_file_format_create_writer (PhotoFileFormat self, const gchar* filepath, GError** error);
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+PhotoFileMetadataWriter* photo_file_reader_create_metadata_writer (PhotoFileReader* self, GError** error);
+PhotoFileMetadataWriter* photo_file_format_create_metadata_writer (PhotoFileFormat self, const gchar* filepath, GError** error);
+PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error);
+static PhotoMetadata* photo_file_reader_real_read_metadata (PhotoFileReader* self, GError** error);
+GdkPixbuf* photo_file_reader_unscaled_read (PhotoFileReader* self, GError** error);
+static GdkPixbuf* photo_file_reader_real_unscaled_read (PhotoFileReader* self, GError** error);
+GdkPixbuf* photo_file_reader_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+static GdkPixbuf* photo_file_reader_real_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_FILE_WRITER_DUMMY_PROPERTY
+};
+PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+PhotoFileReader* photo_file_writer_create_reader (PhotoFileWriter* self);
+PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath);
+void photo_file_writer_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+static void photo_file_writer_real_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+enum {
+ PHOTO_FILE_METADATA_WRITER_DUMMY_PROPERTY
+};
+PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+PhotoFileReader* photo_file_metadata_writer_create_reader (PhotoFileMetadataWriter* self);
+void photo_file_metadata_writer_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+static void photo_file_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+
+
+PhotoFileAdapter* photo_file_adapter_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) {
+ PhotoFileAdapter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self = (PhotoFileAdapter*) g_type_create_instance (object_type);
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = filepath;
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_free0 (self->priv->filepath);
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self->priv->filepath = _tmp1_;
+#line 27 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp2_ = file_format;
+#line 27 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self->priv->file_format = _tmp2_;
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return self;
+#line 282 "PhotoFileAdapter.c"
+}
+
+
+gboolean photo_file_adapter_file_exists (PhotoFileAdapter* self) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 30 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), FALSE);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = self->priv->filepath;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = g_file_test (_tmp0_, G_FILE_TEST_IS_REGULAR);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 300 "PhotoFileAdapter.c"
+}
+
+
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), NULL);
+#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = self->priv->filepath;
+#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp1_;
+#line 35 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 318 "PhotoFileAdapter.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 325 "PhotoFileAdapter.c"
+}
+
+
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self) {
+ GFile* result = NULL;
+ GFile* _result_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), NULL);
+#line 335 "PhotoFileAdapter.c"
+ {
+ GFile* _tmp0_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = self->priv->file;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_rec_mutex_lock (&self->priv->__lock_file);
+#line 342 "PhotoFileAdapter.c"
+ {
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = self->priv->file;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (_tmp1_ == NULL) {
+#line 351 "PhotoFileAdapter.c"
+ const gchar* _tmp2_ = NULL;
+ GFile* _tmp3_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp2_ = self->priv->filepath;
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp3_ = g_file_new_for_path (_tmp2_);
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_object_unref0 (self->priv->file);
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self->priv->file = _tmp3_;
+#line 362 "PhotoFileAdapter.c"
+ }
+#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp4_ = self->priv->file;
+#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_object_unref0 (_result_);
+#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _result_ = _tmp5_;
+#line 372 "PhotoFileAdapter.c"
+ }
+ __finally22:
+ {
+ GFile* _tmp6_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp6_ = self->priv->file;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_file);
+#line 381 "PhotoFileAdapter.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_object_unref0 (_result_);
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_clear_error (&_inner_error_);
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 393 "PhotoFileAdapter.c"
+ }
+ }
+#line 47 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _result_;
+#line 47 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 400 "PhotoFileAdapter.c"
+}
+
+
+PhotoFileFormat photo_file_adapter_get_file_format (PhotoFileAdapter* self) {
+ PhotoFileFormat result = 0;
+ PhotoFileFormat _tmp0_ = 0;
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_ADAPTER (self), 0);
+#line 51 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = self->priv->file_format;
+#line 51 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 415 "PhotoFileAdapter.c"
+}
+
+
+static void value_photo_file_adapter_init (GValue* value) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ value->data[0].v_pointer = NULL;
+#line 422 "PhotoFileAdapter.c"
+}
+
+
+static void value_photo_file_adapter_free_value (GValue* value) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (value->data[0].v_pointer) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_adapter_unref (value->data[0].v_pointer);
+#line 431 "PhotoFileAdapter.c"
+ }
+}
+
+
+static void value_photo_file_adapter_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (src_value->data[0].v_pointer) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ dest_value->data[0].v_pointer = photo_file_adapter_ref (src_value->data[0].v_pointer);
+#line 441 "PhotoFileAdapter.c"
+ } else {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 445 "PhotoFileAdapter.c"
+ }
+}
+
+
+static gpointer value_photo_file_adapter_peek_pointer (const GValue* value) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return value->data[0].v_pointer;
+#line 453 "PhotoFileAdapter.c"
+}
+
+
+static gchar* value_photo_file_adapter_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (collect_values[0].v_pointer) {
+#line 460 "PhotoFileAdapter.c"
+ PhotoFileAdapter* object;
+ object = collect_values[0].v_pointer;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 467 "PhotoFileAdapter.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 471 "PhotoFileAdapter.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ value->data[0].v_pointer = photo_file_adapter_ref (object);
+#line 475 "PhotoFileAdapter.c"
+ } else {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ value->data[0].v_pointer = NULL;
+#line 479 "PhotoFileAdapter.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 483 "PhotoFileAdapter.c"
+}
+
+
+static gchar* value_photo_file_adapter_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoFileAdapter** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (!object_p) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 494 "PhotoFileAdapter.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (!value->data[0].v_pointer) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ *object_p = NULL;
+#line 500 "PhotoFileAdapter.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ *object_p = value->data[0].v_pointer;
+#line 504 "PhotoFileAdapter.c"
+ } else {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ *object_p = photo_file_adapter_ref (value->data[0].v_pointer);
+#line 508 "PhotoFileAdapter.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 512 "PhotoFileAdapter.c"
+}
+
+
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoFileAdapter* spec;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_FILE_ADAPTER), NULL);
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return G_PARAM_SPEC (spec);
+#line 526 "PhotoFileAdapter.c"
+}
+
+
+gpointer value_get_photo_file_adapter (const GValue* value) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_ADAPTER), NULL);
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return value->data[0].v_pointer;
+#line 535 "PhotoFileAdapter.c"
+}
+
+
+void value_set_photo_file_adapter (GValue* value, gpointer v_object) {
+ PhotoFileAdapter* old;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_ADAPTER));
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ old = value->data[0].v_pointer;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (v_object) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_ADAPTER));
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ value->data[0].v_pointer = v_object;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_adapter_ref (value->data[0].v_pointer);
+#line 555 "PhotoFileAdapter.c"
+ } else {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ value->data[0].v_pointer = NULL;
+#line 559 "PhotoFileAdapter.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (old) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_adapter_unref (old);
+#line 565 "PhotoFileAdapter.c"
+ }
+}
+
+
+void value_take_photo_file_adapter (GValue* value, gpointer v_object) {
+ PhotoFileAdapter* old;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_ADAPTER));
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ old = value->data[0].v_pointer;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (v_object) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_ADAPTER));
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ value->data[0].v_pointer = v_object;
+#line 584 "PhotoFileAdapter.c"
+ } else {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ value->data[0].v_pointer = NULL;
+#line 588 "PhotoFileAdapter.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (old) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_adapter_unref (old);
+#line 594 "PhotoFileAdapter.c"
+ }
+}
+
+
+static void photo_file_adapter_class_init (PhotoFileAdapterClass * klass) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_adapter_parent_class = g_type_class_peek_parent (klass);
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ ((PhotoFileAdapterClass *) klass)->finalize = photo_file_adapter_finalize;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_type_class_add_private (klass, sizeof (PhotoFileAdapterPrivate));
+#line 606 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_adapter_instance_init (PhotoFileAdapter * self) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self->priv = PHOTO_FILE_ADAPTER_GET_PRIVATE (self);
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_rec_mutex_init (&self->priv->__lock_file);
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self->priv->file = NULL;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self->ref_count = 1;
+#line 619 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_adapter_finalize (PhotoFileAdapter* obj) {
+ PhotoFileAdapter * self;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter);
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_signal_handlers_destroy (self);
+#line 21 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_free0 (self->priv->filepath);
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_rec_mutex_clear (&self->priv->__lock_file);
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_object_unref0 (self->priv->file);
+#line 635 "PhotoFileAdapter.c"
+}
+
+
+GType photo_file_adapter_get_type (void) {
+ static volatile gsize photo_file_adapter_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_adapter_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_file_adapter_init, value_photo_file_adapter_free_value, value_photo_file_adapter_copy_value, value_photo_file_adapter_peek_pointer, "p", value_photo_file_adapter_collect_value, "p", value_photo_file_adapter_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileAdapterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_adapter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileAdapter), 0, (GInstanceInitFunc) photo_file_adapter_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_file_adapter_type_id;
+ photo_file_adapter_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoFileAdapter", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_file_adapter_type_id__volatile, photo_file_adapter_type_id);
+ }
+ return photo_file_adapter_type_id__volatile;
+}
+
+
+gpointer photo_file_adapter_ref (gpointer instance) {
+ PhotoFileAdapter* self;
+ self = instance;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return instance;
+#line 660 "PhotoFileAdapter.c"
+}
+
+
+void photo_file_adapter_unref (gpointer instance) {
+ PhotoFileAdapter* self;
+ self = instance;
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ PHOTO_FILE_ADAPTER_GET_CLASS (self)->finalize (self);
+#line 20 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 673 "PhotoFileAdapter.c"
+ }
+}
+
+
+PhotoFileReader* photo_file_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) {
+ PhotoFileReader* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+#line 60 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = filepath;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = file_format;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self = (PhotoFileReader*) photo_file_adapter_construct (object_type, _tmp0_, _tmp1_);
+#line 60 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return self;
+#line 692 "PhotoFileAdapter.c"
+}
+
+
+PhotoFileWriter* photo_file_reader_create_writer (PhotoFileReader* self, GError** error) {
+ PhotoFileWriter* result = NULL;
+ PhotoFileWriter* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ PhotoFileWriter* _tmp4_ = NULL;
+ PhotoFileWriter* _tmp5_ = NULL;
+ PhotoFileWriter* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp2_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp3_ = _tmp2_;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp4_ = photo_file_format_create_writer (_tmp1_, _tmp3_, &_inner_error_);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp5_ = _tmp4_;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_free0 (_tmp3_);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = _tmp5_;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (_inner_error_->domain == PHOTO_FORMAT_ERROR) {
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_propagate_error (error, _inner_error_);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 730 "PhotoFileAdapter.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_clear_error (&_inner_error_);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 738 "PhotoFileAdapter.c"
+ }
+ }
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp6_ = _tmp0_;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp6_;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _photo_file_adapter_unref0 (_tmp0_);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 751 "PhotoFileAdapter.c"
+}
+
+
+PhotoFileMetadataWriter* photo_file_reader_create_metadata_writer (PhotoFileReader* self, GError** error) {
+ PhotoFileMetadataWriter* result = NULL;
+ PhotoFileMetadataWriter* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ PhotoFileMetadataWriter* _tmp4_ = NULL;
+ PhotoFileMetadataWriter* _tmp5_ = NULL;
+ PhotoFileMetadataWriter* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp2_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp3_ = _tmp2_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp4_ = photo_file_format_create_metadata_writer (_tmp1_, _tmp3_, &_inner_error_);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp5_ = _tmp4_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_free0 (_tmp3_);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = _tmp5_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (_inner_error_->domain == PHOTO_FORMAT_ERROR) {
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_propagate_error (error, _inner_error_);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 789 "PhotoFileAdapter.c"
+ } else {
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_clear_error (&_inner_error_);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 797 "PhotoFileAdapter.c"
+ }
+ }
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp6_ = _tmp0_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp6_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _photo_file_adapter_unref0 (_tmp0_);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 810 "PhotoFileAdapter.c"
+}
+
+
+static PhotoMetadata* photo_file_reader_real_read_metadata (PhotoFileReader* self, GError** error) {
+#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_reader_read_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 819 "PhotoFileAdapter.c"
+}
+
+
+PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error) {
+#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL);
+#line 72 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return PHOTO_FILE_READER_GET_CLASS (self)->read_metadata (self, error);
+#line 828 "PhotoFileAdapter.c"
+}
+
+
+static GdkPixbuf* photo_file_reader_real_unscaled_read (PhotoFileReader* self, GError** error) {
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_reader_unscaled_read'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 837 "PhotoFileAdapter.c"
+}
+
+
+GdkPixbuf* photo_file_reader_unscaled_read (PhotoFileReader* self, GError** error) {
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL);
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return PHOTO_FILE_READER_GET_CLASS (self)->unscaled_read (self, error);
+#line 846 "PhotoFileAdapter.c"
+}
+
+
+static GdkPixbuf* photo_file_reader_real_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ GdkPixbuf* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (full != NULL, NULL);
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (scaled != NULL, NULL);
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = photo_file_reader_unscaled_read (self, &_inner_error_);
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = _tmp1_;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_propagate_error (error, _inner_error_);
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return NULL;
+#line 871 "PhotoFileAdapter.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp2_ = *scaled;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp3_ = resize_pixbuf (_tmp0_, &_tmp2_, GDK_INTERP_BILINEAR);
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp3_;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_object_unref0 (_tmp0_);
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 883 "PhotoFileAdapter.c"
+}
+
+
+GdkPixbuf* photo_file_reader_scaled_read (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error) {
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_READER (self), NULL);
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return PHOTO_FILE_READER_GET_CLASS (self)->scaled_read (self, full, scaled, error);
+#line 892 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_reader_class_init (PhotoFileReaderClass * klass) {
+#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_reader_parent_class = g_type_class_peek_parent (klass);
+#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ ((PhotoFileReaderClass *) klass)->read_metadata = photo_file_reader_real_read_metadata;
+#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ ((PhotoFileReaderClass *) klass)->unscaled_read = photo_file_reader_real_unscaled_read;
+#line 59 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ ((PhotoFileReaderClass *) klass)->scaled_read = photo_file_reader_real_scaled_read;
+#line 905 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_reader_instance_init (PhotoFileReader * self) {
+}
+
+
+GType photo_file_reader_get_type (void) {
+ static volatile gsize photo_file_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_reader_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileReader), 0, (GInstanceInitFunc) photo_file_reader_instance_init, NULL };
+ GType photo_file_reader_type_id;
+ photo_file_reader_type_id = g_type_register_static (TYPE_PHOTO_FILE_ADAPTER, "PhotoFileReader", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_file_reader_type_id__volatile, photo_file_reader_type_id);
+ }
+ return photo_file_reader_type_id__volatile;
+}
+
+
+PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) {
+ PhotoFileWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = filepath;
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = file_format;
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self = (PhotoFileWriter*) photo_file_adapter_construct (object_type, _tmp0_, _tmp1_);
+#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return self;
+#line 939 "PhotoFileAdapter.c"
+}
+
+
+PhotoFileReader* photo_file_writer_create_reader (PhotoFileWriter* self) {
+ PhotoFileReader* result = NULL;
+ PhotoFileFormat _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_WRITER (self), NULL);
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp2_ = _tmp1_;
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp3_ = photo_file_format_create_reader (_tmp0_, _tmp2_);
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp4_ = _tmp3_;
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_free0 (_tmp2_);
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp4_;
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 968 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_writer_real_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) {
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_writer_write'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return;
+#line 977 "PhotoFileAdapter.c"
+}
+
+
+void photo_file_writer_write (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) {
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (IS_PHOTO_FILE_WRITER (self));
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ PHOTO_FILE_WRITER_GET_CLASS (self)->write (self, pixbuf, quality, error);
+#line 986 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_writer_class_init (PhotoFileWriterClass * klass) {
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_writer_parent_class = g_type_class_peek_parent (klass);
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ ((PhotoFileWriterClass *) klass)->write = photo_file_writer_real_write;
+#line 995 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_writer_instance_init (PhotoFileWriter * self) {
+}
+
+
+GType photo_file_writer_get_type (void) {
+ static volatile gsize photo_file_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileWriter), 0, (GInstanceInitFunc) photo_file_writer_instance_init, NULL };
+ GType photo_file_writer_type_id;
+ photo_file_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_ADAPTER, "PhotoFileWriter", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_file_writer_type_id__volatile, photo_file_writer_type_id);
+ }
+ return photo_file_writer_type_id__volatile;
+}
+
+
+PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format) {
+ PhotoFileMetadataWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotoFileFormat _tmp1_ = 0;
+#line 102 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = filepath;
+#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = file_format;
+#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ self = (PhotoFileMetadataWriter*) photo_file_adapter_construct (object_type, _tmp0_, _tmp1_);
+#line 102 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return self;
+#line 1029 "PhotoFileAdapter.c"
+}
+
+
+PhotoFileReader* photo_file_metadata_writer_create_reader (PhotoFileMetadataWriter* self) {
+ PhotoFileReader* result = NULL;
+ PhotoFileFormat _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_METADATA_WRITER (self), NULL);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp0_ = photo_file_adapter_get_file_format (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp2_ = _tmp1_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp3_ = photo_file_format_create_reader (_tmp0_, _tmp2_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _tmp4_ = _tmp3_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ _g_free0 (_tmp2_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ result = _tmp4_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return result;
+#line 1058 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error) {
+#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_metadata_writer_write_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ return;
+#line 1067 "PhotoFileAdapter.c"
+}
+
+
+void photo_file_metadata_writer_write_metadata (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error) {
+#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ g_return_if_fail (IS_PHOTO_FILE_METADATA_WRITER (self));
+#line 110 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ PHOTO_FILE_METADATA_WRITER_GET_CLASS (self)->write_metadata (self, metadata, error);
+#line 1076 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_metadata_writer_class_init (PhotoFileMetadataWriterClass * klass) {
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ photo_file_metadata_writer_parent_class = g_type_class_peek_parent (klass);
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileAdapter.vala"
+ ((PhotoFileMetadataWriterClass *) klass)->write_metadata = photo_file_metadata_writer_real_write_metadata;
+#line 1085 "PhotoFileAdapter.c"
+}
+
+
+static void photo_file_metadata_writer_instance_init (PhotoFileMetadataWriter * self) {
+}
+
+
+GType photo_file_metadata_writer_get_type (void) {
+ static volatile gsize photo_file_metadata_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_metadata_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileMetadataWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_metadata_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileMetadataWriter), 0, (GInstanceInitFunc) photo_file_metadata_writer_instance_init, NULL };
+ GType photo_file_metadata_writer_type_id;
+ photo_file_metadata_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_ADAPTER, "PhotoFileMetadataWriter", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_file_metadata_writer_type_id__volatile, photo_file_metadata_writer_type_id);
+ }
+ return photo_file_metadata_writer_type_id__volatile;
+}
+
+
+
diff --git a/src/photos/PhotoFileFormat.c b/src/photos/PhotoFileFormat.c
new file mode 100644
index 0000000..6e05342
--- /dev/null
+++ b/src/photos/PhotoFileFormat.c
@@ -0,0 +1,3277 @@
+/* PhotoFileFormat.c generated by valac 0.32.1, the Vala compiler
+ * generated from PhotoFileFormat.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gphoto2/gphoto2-file.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PHOTO_FILE_FORMAT_DRIVER (photo_file_format_driver_get_type ())
+#define PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver))
+#define PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+#define IS_PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define IS_PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define PHOTO_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+
+typedef struct _PhotoFileFormatDriver PhotoFileFormatDriver;
+typedef struct _PhotoFileFormatDriverClass PhotoFileFormatDriverClass;
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+#define _photo_file_format_driver_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_driver_unref (var), NULL)))
+
+#define TYPE_JFIF_FILE_FORMAT_DRIVER (jfif_file_format_driver_get_type ())
+#define JFIF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriver))
+#define JFIF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriverClass))
+#define IS_JFIF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_JFIF_FILE_FORMAT_DRIVER))
+#define IS_JFIF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_JFIF_FILE_FORMAT_DRIVER))
+#define JFIF_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_JFIF_FILE_FORMAT_DRIVER, JfifFileFormatDriverClass))
+
+typedef struct _JfifFileFormatDriver JfifFileFormatDriver;
+typedef struct _JfifFileFormatDriverClass JfifFileFormatDriverClass;
+
+#define TYPE_RAW_FILE_FORMAT_DRIVER (raw_file_format_driver_get_type ())
+#define RAW_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver))
+#define RAW_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriverClass))
+#define IS_RAW_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RAW_FILE_FORMAT_DRIVER))
+#define IS_RAW_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RAW_FILE_FORMAT_DRIVER))
+#define RAW_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriverClass))
+
+typedef struct _RawFileFormatDriver RawFileFormatDriver;
+typedef struct _RawFileFormatDriverClass RawFileFormatDriverClass;
+
+#define TYPE_PNG_FILE_FORMAT_DRIVER (png_file_format_driver_get_type ())
+#define PNG_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver))
+#define PNG_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriverClass))
+#define IS_PNG_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PNG_FILE_FORMAT_DRIVER))
+#define IS_PNG_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PNG_FILE_FORMAT_DRIVER))
+#define PNG_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriverClass))
+
+typedef struct _PngFileFormatDriver PngFileFormatDriver;
+typedef struct _PngFileFormatDriverClass PngFileFormatDriverClass;
+
+#define PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER (photos_tiff_file_format_driver_get_type ())
+#define PHOTOS_TIFF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver))
+#define PHOTOS_TIFF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriverClass))
+#define PHOTOS_IS_TIFF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER))
+#define PHOTOS_IS_TIFF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER))
+#define PHOTOS_TIFF_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriverClass))
+
+typedef struct _PhotosTiffFileFormatDriver PhotosTiffFileFormatDriver;
+typedef struct _PhotosTiffFileFormatDriverClass PhotosTiffFileFormatDriverClass;
+
+#define PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER (photos_bmp_file_format_driver_get_type ())
+#define PHOTOS_BMP_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriver))
+#define PHOTOS_BMP_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriverClass))
+#define PHOTOS_IS_BMP_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER))
+#define PHOTOS_IS_BMP_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER))
+#define PHOTOS_BMP_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_BMP_FILE_FORMAT_DRIVER, PhotosBmpFileFormatDriverClass))
+
+typedef struct _PhotosBmpFileFormatDriver PhotosBmpFileFormatDriver;
+typedef struct _PhotosBmpFileFormatDriverClass PhotosBmpFileFormatDriverClass;
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+typedef struct _PhotoFileFormatDriverPrivate PhotoFileFormatDriverPrivate;
+typedef struct _ParamSpecPhotoFileFormatDriver ParamSpecPhotoFileFormatDriver;
+
+#define TYPE_PHOTO_FILE_FORMAT_FLAGS (photo_file_format_flags_get_type ())
+typedef struct _PhotoFileFormatPropertiesPrivate PhotoFileFormatPropertiesPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecPhotoFileFormatProperties ParamSpecPhotoFileFormatProperties;
+
+typedef enum {
+ PHOTO_FORMAT_ERROR_READ_ONLY
+} PhotoFormatError;
+#define PHOTO_FORMAT_ERROR photo_format_error_quark ()
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef gboolean (*PhotoFileFormatDataApplicableTest) (PhotoFileFormat format, void* user_data);
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileFormatDriver {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatDriverPrivate * priv;
+};
+
+struct _PhotoFileFormatDriverClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatDriver *self);
+ PhotoFileFormatProperties* (*get_properties) (PhotoFileFormatDriver* self);
+ PhotoFileReader* (*create_reader) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoMetadata* (*create_metadata) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_image) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_metadata) (PhotoFileFormatDriver* self);
+ PhotoFileWriter* (*create_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileMetadataWriter* (*create_metadata_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileSniffer* (*create_sniffer) (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+};
+
+struct _ParamSpecPhotoFileFormatDriver {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_FLAGS_NONE = 0x00000000
+} PhotoFileFormatFlags;
+
+struct _PhotoFileFormatProperties {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotoFileFormatPropertiesClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatProperties *self);
+ PhotoFileFormat (*get_file_format) (PhotoFileFormatProperties* self);
+ PhotoFileFormatFlags (*get_flags) (PhotoFileFormatProperties* self);
+ gboolean (*is_recognized_extension) (PhotoFileFormatProperties* self, const gchar* ext);
+ gchar* (*get_default_extension) (PhotoFileFormatProperties* self);
+ gchar** (*get_known_extensions) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_default_mime_type) (PhotoFileFormatProperties* self);
+ gchar** (*get_mime_types) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_user_visible_name) (PhotoFileFormatProperties* self);
+};
+
+struct _ParamSpecPhotoFileFormatProperties {
+ GParamSpec parent_instance;
+};
+
+
+extern PhotoFileFormat* photo_file_format_data_writeable;
+extern gint photo_file_format_data_writeable_length1;
+PhotoFileFormat* photo_file_format_data_writeable = NULL;
+gint photo_file_format_data_writeable_length1 = 0;
+static gint _photo_file_format_data_writeable_size_ = 0;
+extern PhotoFileFormat* photo_file_format_data_image_writeable;
+extern gint photo_file_format_data_image_writeable_length1;
+PhotoFileFormat* photo_file_format_data_image_writeable = NULL;
+gint photo_file_format_data_image_writeable_length1 = 0;
+static gint _photo_file_format_data_image_writeable_size_ = 0;
+extern PhotoFileFormat* photo_file_format_data_metadata_writeable;
+extern gint photo_file_format_data_metadata_writeable_length1;
+PhotoFileFormat* photo_file_format_data_metadata_writeable = NULL;
+gint photo_file_format_data_metadata_writeable_length1 = 0;
+static gint _photo_file_format_data_metadata_writeable_size_ = 0;
+static gpointer photo_file_format_driver_parent_class = NULL;
+static gpointer photo_file_format_properties_parent_class = NULL;
+
+GQuark photo_format_error_quark (void);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat* photo_file_format_data_find_applicable (PhotoFileFormatDataApplicableTest test, void* test_target, int* result_length1);
+PhotoFileFormat* photo_file_format_get_supported (int* result_length1);
+static void _vala_array_add43 (PhotoFileFormat** array, int* length, int* size, PhotoFileFormat value);
+PhotoFileFormat* photo_file_format_data_get_writeable (int* result_length1);
+static gboolean ___lambda4_ (PhotoFileFormat format);
+gboolean photo_file_format_can_write (PhotoFileFormat self);
+static gboolean ____lambda4__photo_file_format_data_applicable_test (PhotoFileFormat format, gpointer self);
+static PhotoFileFormat* _vala_array_dup1 (PhotoFileFormat* self, int length);
+PhotoFileFormat* photo_file_format_data_get_image_writeable (int* result_length1);
+static gboolean ___lambda22_ (PhotoFileFormat format);
+gboolean photo_file_format_can_write_image (PhotoFileFormat self);
+static gboolean ____lambda22__photo_file_format_data_applicable_test (PhotoFileFormat format, gpointer self);
+static PhotoFileFormat* _vala_array_dup2 (PhotoFileFormat* self, int length);
+PhotoFileFormat* photo_file_format_data_get_metadata_writeable (int* result_length1);
+static gboolean ___lambda23_ (PhotoFileFormat format);
+gboolean photo_file_format_can_write_metadata (PhotoFileFormat self);
+static gboolean ____lambda23__photo_file_format_data_applicable_test (PhotoFileFormat format, gpointer self);
+static PhotoFileFormat* _vala_array_dup3 (PhotoFileFormat* self, int length);
+PhotoFileFormat* photo_file_format_get_writeable (int* result_length1);
+PhotoFileFormat* photo_file_format_get_image_writeable (int* result_length1);
+PhotoFileFormat* photo_file_format_get_metadata_writeable (int* result_length1);
+PhotoFileFormat photo_file_format_get_by_basename_extension (const gchar* basename);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+gboolean is_string_empty (const gchar* s);
+gpointer photo_file_format_driver_ref (gpointer instance);
+void photo_file_format_driver_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_driver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_driver (GValue* value, gpointer v_object);
+void value_take_photo_file_format_driver (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_driver (const GValue* value);
+GType photo_file_format_driver_get_type (void) G_GNUC_CONST;
+static PhotoFileFormatDriver* photo_file_format_get_driver (PhotoFileFormat self);
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+PhotoFileFormatProperties* photo_file_format_driver_get_properties (PhotoFileFormatDriver* self);
+gboolean photo_file_format_properties_is_recognized_extension (PhotoFileFormatProperties* self, const gchar* ext);
+gboolean photo_file_format_is_file_supported (GFile* file);
+gboolean photo_file_format_is_basename_supported (const gchar* basename);
+PhotoFileFormat photo_file_format_get_system_default_format (void);
+PhotoFileFormat photo_file_format_get_by_file_extension (GFile* file);
+gint photo_file_format_serialize (PhotoFileFormat self);
+PhotoFileFormat photo_file_format_unserialize (gint value);
+PhotoFileFormat photo_file_format_from_gphoto_type (const gchar* type);
+PhotoFileFormat photo_file_format_from_pixbuf_name (const gchar* name);
+void photo_file_format_init (PhotoFileFormat self);
+void jfif_file_format_driver_init (void);
+void raw_file_format_driver_init (void);
+void png_file_format_driver_init (void);
+void photos_tiff_file_format_driver_init (void);
+void photos_bmp_file_format_driver_init (void);
+const gchar* photo_file_format_to_string (PhotoFileFormat self);
+GType jfif_file_format_driver_get_type (void) G_GNUC_CONST;
+JfifFileFormatDriver* jfif_file_format_driver_get_instance (void);
+GType raw_file_format_driver_get_type (void) G_GNUC_CONST;
+RawFileFormatDriver* raw_file_format_driver_get_instance (void);
+GType png_file_format_driver_get_type (void) G_GNUC_CONST;
+PngFileFormatDriver* png_file_format_driver_get_instance (void);
+GType photos_tiff_file_format_driver_get_type (void) G_GNUC_CONST;
+PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_get_instance (void);
+GType photos_bmp_file_format_driver_get_type (void) G_GNUC_CONST;
+PhotosBmpFileFormatDriver* photos_bmp_file_format_driver_get_instance (void);
+PhotoFileFormatProperties* photo_file_format_get_properties (PhotoFileFormat self);
+gchar* photo_file_format_get_default_basename (PhotoFileFormat self, const gchar* name);
+gchar* photo_file_format_properties_get_default_extension (PhotoFileFormatProperties* self);
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath);
+PhotoFileReader* photo_file_format_driver_create_reader (PhotoFileFormatDriver* self, const gchar* filepath);
+gboolean photo_file_format_driver_can_write_image (PhotoFileFormatDriver* self);
+gboolean photo_file_format_driver_can_write_metadata (PhotoFileFormatDriver* self);
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+PhotoFileWriter* photo_file_format_create_writer (PhotoFileFormat self, const gchar* filepath, GError** error);
+PhotoFileWriter* photo_file_format_driver_create_writer (PhotoFileFormatDriver* self, const gchar* filepath);
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+PhotoFileMetadataWriter* photo_file_format_create_metadata_writer (PhotoFileFormat self, const gchar* filepath, GError** error);
+PhotoFileMetadataWriter* photo_file_format_driver_create_metadata_writer (PhotoFileFormatDriver* self, const gchar* filepath);
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+PhotoFileSniffer* photo_file_format_create_sniffer (PhotoFileFormat self, GFile* file, PhotoFileSnifferOptions options);
+PhotoFileSniffer* photo_file_format_driver_create_sniffer (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+PhotoMetadata* photo_file_format_create_metadata (PhotoFileFormat self);
+PhotoMetadata* photo_file_format_driver_create_metadata (PhotoFileFormatDriver* self);
+gchar* photo_file_format_get_default_mime_type (PhotoFileFormat self);
+gchar* photo_file_format_properties_get_default_mime_type (PhotoFileFormatProperties* self);
+gchar** photo_file_format_get_mime_types (PhotoFileFormat self, int* result_length1);
+gchar** photo_file_format_properties_get_mime_types (PhotoFileFormatProperties* self, int* result_length1);
+gchar** photo_file_format_get_editable_mime_types (int* result_length1);
+static void _vala_array_add44 (gchar*** array, int* length, int* size, gchar* value);
+enum {
+ PHOTO_FILE_FORMAT_DRIVER_DUMMY_PROPERTY
+};
+static PhotoFileFormatProperties* photo_file_format_driver_real_get_properties (PhotoFileFormatDriver* self);
+static PhotoFileReader* photo_file_format_driver_real_create_reader (PhotoFileFormatDriver* self, const gchar* filepath);
+static PhotoMetadata* photo_file_format_driver_real_create_metadata (PhotoFileFormatDriver* self);
+static gboolean photo_file_format_driver_real_can_write_image (PhotoFileFormatDriver* self);
+static gboolean photo_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* self);
+static PhotoFileWriter* photo_file_format_driver_real_create_writer (PhotoFileFormatDriver* self, const gchar* filepath);
+static PhotoFileMetadataWriter* photo_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* self, const gchar* filepath);
+static PhotoFileSniffer* photo_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+PhotoFileFormatDriver* photo_file_format_driver_construct (GType object_type);
+static void photo_file_format_driver_finalize (PhotoFileFormatDriver* obj);
+GType photo_file_format_flags_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_FILE_FORMAT_PROPERTIES_DUMMY_PROPERTY
+};
+PhotoFileFormat photo_file_format_properties_get_file_format (PhotoFileFormatProperties* self);
+static PhotoFileFormat photo_file_format_properties_real_get_file_format (PhotoFileFormatProperties* self);
+PhotoFileFormatFlags photo_file_format_properties_get_flags (PhotoFileFormatProperties* self);
+static PhotoFileFormatFlags photo_file_format_properties_real_get_flags (PhotoFileFormatProperties* self);
+static gboolean photo_file_format_properties_real_is_recognized_extension (PhotoFileFormatProperties* self, const gchar* ext);
+gboolean is_in_ci_array (const gchar* str, gchar** strings, int strings_length1);
+gchar** photo_file_format_properties_get_known_extensions (PhotoFileFormatProperties* self, int* result_length1);
+static gchar* photo_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* self);
+static gchar** photo_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* self, int* result_length1);
+static gchar* photo_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* self);
+static gchar** photo_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* self, int* result_length1);
+gchar* photo_file_format_properties_get_user_visible_name (PhotoFileFormatProperties* self);
+static gchar* photo_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* self);
+GFile* photo_file_format_properties_convert_file_extension (PhotoFileFormatProperties* self, GFile* file);
+PhotoFileFormatProperties* photo_file_format_properties_construct (GType object_type);
+static void photo_file_format_properties_finalize (PhotoFileFormatProperties* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+GQuark photo_format_error_quark (void) {
+ return g_quark_from_static_string ("photo_format_error-quark");
+}
+
+
+static void _vala_array_add43 (PhotoFileFormat** array, int* length, int* size, PhotoFileFormat value) {
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if ((*length) == (*size)) {
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *array = g_renew (PhotoFileFormat, *array, *size);
+#line 427 "PhotoFileFormat.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ (*array)[(*length)++] = value;
+#line 431 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_data_find_applicable (PhotoFileFormatDataApplicableTest test, void* test_target, int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ PhotoFileFormat* applicable = NULL;
+ PhotoFileFormat* _tmp0_ = NULL;
+ gint applicable_length1 = 0;
+ gint _applicable_size_ = 0;
+ gint _tmp1_ = 0;
+ PhotoFileFormat* _tmp2_ = NULL;
+ PhotoFileFormat* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = g_new0 (PhotoFileFormat, 0);
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ applicable = _tmp0_;
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ applicable_length1 = 0;
+#line 23 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _applicable_size_ = applicable_length1;
+#line 24 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_get_supported (&_tmp1_);
+#line 455 "PhotoFileFormat.c"
+ {
+ PhotoFileFormat* format_collection = NULL;
+ gint format_collection_length1 = 0;
+ gint _format_collection_size_ = 0;
+ gint format_it = 0;
+#line 24 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format_collection = _tmp2_;
+#line 24 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format_collection_length1 = _tmp1_;
+#line 24 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ for (format_it = 0; format_it < _tmp1_; format_it = format_it + 1) {
+#line 467 "PhotoFileFormat.c"
+ PhotoFileFormat format = 0;
+#line 24 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format = format_collection[format_it];
+#line 471 "PhotoFileFormat.c"
+ {
+ PhotoFileFormatDataApplicableTest _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ PhotoFileFormat _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = test;
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3__target = test_target;
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = format;
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp3_ (_tmp4_, _tmp3__target);
+#line 25 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp5_) {
+#line 487 "PhotoFileFormat.c"
+ PhotoFileFormat* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ PhotoFileFormat _tmp7_ = 0;
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = applicable;
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6__length1 = applicable_length1;
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = format;
+#line 26 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _vala_array_add43 (&applicable, &applicable_length1, &_applicable_size_, _tmp7_);
+#line 499 "PhotoFileFormat.c"
+ }
+ }
+ }
+#line 24 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format_collection = (g_free (format_collection), NULL);
+#line 505 "PhotoFileFormat.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp8_ = applicable;
+#line 29 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp8__length1 = applicable_length1;
+#line 29 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 29 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp8__length1;
+#line 515 "PhotoFileFormat.c"
+ }
+#line 29 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp8_;
+#line 29 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 521 "PhotoFileFormat.c"
+}
+
+
+static gboolean ___lambda4_ (PhotoFileFormat format) {
+ gboolean result = FALSE;
+ PhotoFileFormat _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = format;
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_can_write (_tmp0_);
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 537 "PhotoFileFormat.c"
+}
+
+
+static gboolean ____lambda4__photo_file_format_data_applicable_test (PhotoFileFormat format, gpointer self) {
+ gboolean result;
+ result = ___lambda4_ (format);
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 546 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileFormat* _vala_array_dup1 (PhotoFileFormat* self, int length) {
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_memdup (self, length * sizeof (PhotoFileFormat));
+#line 553 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_data_get_writeable (int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ PhotoFileFormat* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ PhotoFileFormat* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ PhotoFileFormat* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ PhotoFileFormat* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 33 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_data_writeable;
+#line 33 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0__length1 = photo_file_format_data_writeable_length1;
+#line 33 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp0_ == NULL) {
+#line 573 "PhotoFileFormat.c"
+ gint _tmp1_ = 0;
+ PhotoFileFormat* _tmp2_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_data_find_applicable (____lambda4__photo_file_format_data_applicable_test, NULL, &_tmp1_);
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_writeable = (g_free (photo_file_format_data_writeable), NULL);
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_writeable = _tmp2_;
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_writeable_length1 = _tmp1_;
+#line 34 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_data_writeable_size_ = photo_file_format_data_writeable_length1;
+#line 586 "PhotoFileFormat.c"
+ }
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_data_writeable;
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3__length1 = photo_file_format_data_writeable_length1;
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = (_tmp3_ != NULL) ? _vala_array_dup1 (_tmp3_, _tmp3__length1) : ((gpointer) _tmp3_);
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4__length1 = _tmp3__length1;
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp4_;
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5__length1 = _tmp4__length1;
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp5__length1;
+#line 604 "PhotoFileFormat.c"
+ }
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp5_;
+#line 36 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 610 "PhotoFileFormat.c"
+}
+
+
+static gboolean ___lambda22_ (PhotoFileFormat format) {
+ gboolean result = FALSE;
+ PhotoFileFormat _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = format;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_can_write_image (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp1_;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 626 "PhotoFileFormat.c"
+}
+
+
+static gboolean ____lambda22__photo_file_format_data_applicable_test (PhotoFileFormat format, gpointer self) {
+ gboolean result;
+ result = ___lambda22_ (format);
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 635 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileFormat* _vala_array_dup2 (PhotoFileFormat* self, int length) {
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_memdup (self, length * sizeof (PhotoFileFormat));
+#line 642 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_data_get_image_writeable (int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ PhotoFileFormat* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ PhotoFileFormat* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ PhotoFileFormat* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ PhotoFileFormat* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_data_image_writeable;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0__length1 = photo_file_format_data_image_writeable_length1;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp0_ == NULL) {
+#line 662 "PhotoFileFormat.c"
+ gint _tmp1_ = 0;
+ PhotoFileFormat* _tmp2_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_data_find_applicable (____lambda22__photo_file_format_data_applicable_test, NULL, &_tmp1_);
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_image_writeable = (g_free (photo_file_format_data_image_writeable), NULL);
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_image_writeable = _tmp2_;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_image_writeable_length1 = _tmp1_;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_data_image_writeable_size_ = photo_file_format_data_image_writeable_length1;
+#line 675 "PhotoFileFormat.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_data_image_writeable;
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3__length1 = photo_file_format_data_image_writeable_length1;
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = (_tmp3_ != NULL) ? _vala_array_dup2 (_tmp3_, _tmp3__length1) : ((gpointer) _tmp3_);
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4__length1 = _tmp3__length1;
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp4_;
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5__length1 = _tmp4__length1;
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp5__length1;
+#line 693 "PhotoFileFormat.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp5_;
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 699 "PhotoFileFormat.c"
+}
+
+
+static gboolean ___lambda23_ (PhotoFileFormat format) {
+ gboolean result = FALSE;
+ PhotoFileFormat _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = format;
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_can_write_metadata (_tmp0_);
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 715 "PhotoFileFormat.c"
+}
+
+
+static gboolean ____lambda23__photo_file_format_data_applicable_test (PhotoFileFormat format, gpointer self) {
+ gboolean result;
+ result = ___lambda23_ (format);
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 724 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileFormat* _vala_array_dup3 (PhotoFileFormat* self, int length) {
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_memdup (self, length * sizeof (PhotoFileFormat));
+#line 731 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_data_get_metadata_writeable (int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ PhotoFileFormat* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ PhotoFileFormat* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ PhotoFileFormat* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ PhotoFileFormat* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 47 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_data_metadata_writeable;
+#line 47 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0__length1 = photo_file_format_data_metadata_writeable_length1;
+#line 47 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp0_ == NULL) {
+#line 751 "PhotoFileFormat.c"
+ gint _tmp1_ = 0;
+ PhotoFileFormat* _tmp2_ = NULL;
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_data_find_applicable (____lambda23__photo_file_format_data_applicable_test, NULL, &_tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_metadata_writeable = (g_free (photo_file_format_data_metadata_writeable), NULL);
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_metadata_writeable = _tmp2_;
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_data_metadata_writeable_length1 = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_data_metadata_writeable_size_ = photo_file_format_data_metadata_writeable_length1;
+#line 764 "PhotoFileFormat.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_data_metadata_writeable;
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3__length1 = photo_file_format_data_metadata_writeable_length1;
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = (_tmp3_ != NULL) ? _vala_array_dup3 (_tmp3_, _tmp3__length1) : ((gpointer) _tmp3_);
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4__length1 = _tmp3__length1;
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp4_;
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5__length1 = _tmp4__length1;
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp5__length1;
+#line 782 "PhotoFileFormat.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp5_;
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 788 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_get_supported (int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ PhotoFileFormat* _tmp0_ = NULL;
+ PhotoFileFormat* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = g_new0 (PhotoFileFormat, 5);
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_[0] = PHOTO_FILE_FORMAT_JFIF;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_[1] = PHOTO_FILE_FORMAT_RAW;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_[2] = PHOTO_FILE_FORMAT_PNG;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_[3] = PHOTO_FILE_FORMAT_TIFF;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_[4] = PHOTO_FILE_FORMAT_BMP;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1__length1 = 5;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp1__length1;
+#line 817 "PhotoFileFormat.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp1_;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 823 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_get_writeable (int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ gint _tmp0_ = 0;
+ PhotoFileFormat* _tmp1_ = NULL;
+ PhotoFileFormat* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_data_get_writeable (&_tmp0_);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = _tmp1_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2__length1 = _tmp0_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp2__length1;
+#line 843 "PhotoFileFormat.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp2_;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 849 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_get_image_writeable (int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ gint _tmp0_ = 0;
+ PhotoFileFormat* _tmp1_ = NULL;
+ PhotoFileFormat* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_data_get_image_writeable (&_tmp0_);
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = _tmp1_;
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2__length1 = _tmp0_;
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp2__length1;
+#line 869 "PhotoFileFormat.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp2_;
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 875 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat* photo_file_format_get_metadata_writeable (int* result_length1) {
+ PhotoFileFormat* result = NULL;
+ gint _tmp0_ = 0;
+ PhotoFileFormat* _tmp1_ = NULL;
+ PhotoFileFormat* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_data_get_metadata_writeable (&_tmp0_);
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = _tmp1_;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2__length1 = _tmp0_;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp2__length1;
+#line 895 "PhotoFileFormat.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp2_;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 901 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat photo_file_format_get_by_basename_extension (const gchar* basename) {
+ PhotoFileFormat result = 0;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gint _tmp5_ = 0;
+ PhotoFileFormat* _tmp6_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (basename != NULL, 0);
+#line 82 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = basename;
+#line 82 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ disassemble_filename (_tmp0_, &_tmp1_, &_tmp2_);
+#line 82 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 82 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ name = _tmp1_;
+#line 82 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 82 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ext = _tmp2_;
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = ext;
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = is_string_empty (_tmp3_);
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp4_) {
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_UNKNOWN;
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 944 "PhotoFileFormat.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = photo_file_format_get_supported (&_tmp5_);
+#line 948 "PhotoFileFormat.c"
+ {
+ PhotoFileFormat* file_format_collection = NULL;
+ gint file_format_collection_length1 = 0;
+ gint _file_format_collection_size_ = 0;
+ gint file_format_it = 0;
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format_collection = _tmp6_;
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format_collection_length1 = _tmp5_;
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ for (file_format_it = 0; file_format_it < _tmp5_; file_format_it = file_format_it + 1) {
+#line 960 "PhotoFileFormat.c"
+ PhotoFileFormat file_format = 0;
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format = file_format_collection[file_format_it];
+#line 964 "PhotoFileFormat.c"
+ {
+ PhotoFileFormat _tmp7_ = 0;
+ PhotoFileFormatDriver* _tmp8_ = NULL;
+ PhotoFileFormatDriver* _tmp9_ = NULL;
+ PhotoFileFormatProperties* _tmp10_ = NULL;
+ PhotoFileFormatProperties* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = file_format;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp8_ = photo_file_format_get_driver (_tmp7_);
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp9_ = _tmp8_;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp10_ = photo_file_format_driver_get_properties (_tmp9_);
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp11_ = _tmp10_;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp12_ = ext;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp13_ = photo_file_format_properties_is_recognized_extension (_tmp11_, _tmp12_);
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp14_ = _tmp13_;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_properties_unref0 (_tmp11_);
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp9_);
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp14_) {
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = file_format;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format_collection = (g_free (file_format_collection), NULL);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1006 "PhotoFileFormat.c"
+ }
+ }
+ }
+#line 87 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format_collection = (g_free (file_format_collection), NULL);
+#line 1012 "PhotoFileFormat.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_UNKNOWN;
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1022 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_is_file_supported (GFile* file) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 95 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = file;
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = _tmp1_;
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_is_basename_supported (_tmp2_);
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = _tmp3_;
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (_tmp2_);
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp4_;
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1051 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_is_basename_supported (const gchar* basename) {
+ gboolean result = FALSE;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gint _tmp5_ = 0;
+ PhotoFileFormat* _tmp6_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (basename != NULL, FALSE);
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = basename;
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ disassemble_filename (_tmp0_, &_tmp1_, &_tmp2_);
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ name = _tmp1_;
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 101 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ext = _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = ext;
+#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = is_string_empty (_tmp3_);
+#line 103 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp4_) {
+#line 104 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = FALSE;
+#line 104 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 104 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 104 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1094 "PhotoFileFormat.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = photo_file_format_get_supported (&_tmp5_);
+#line 1098 "PhotoFileFormat.c"
+ {
+ PhotoFileFormat* format_collection = NULL;
+ gint format_collection_length1 = 0;
+ gint _format_collection_size_ = 0;
+ gint format_it = 0;
+#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format_collection = _tmp6_;
+#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format_collection_length1 = _tmp5_;
+#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ for (format_it = 0; format_it < _tmp5_; format_it = format_it + 1) {
+#line 1110 "PhotoFileFormat.c"
+ PhotoFileFormat format = 0;
+#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format = format_collection[format_it];
+#line 1114 "PhotoFileFormat.c"
+ {
+ PhotoFileFormat _tmp7_ = 0;
+ PhotoFileFormatDriver* _tmp8_ = NULL;
+ PhotoFileFormatDriver* _tmp9_ = NULL;
+ PhotoFileFormatProperties* _tmp10_ = NULL;
+ PhotoFileFormatProperties* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = format;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp8_ = photo_file_format_get_driver (_tmp7_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp9_ = _tmp8_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp10_ = photo_file_format_driver_get_properties (_tmp9_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp11_ = _tmp10_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp12_ = ext;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp13_ = photo_file_format_properties_is_recognized_extension (_tmp11_, _tmp12_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp14_ = _tmp13_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_properties_unref0 (_tmp11_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp9_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp14_) {
+#line 108 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = TRUE;
+#line 108 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format_collection = (g_free (format_collection), NULL);
+#line 108 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 108 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 108 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1156 "PhotoFileFormat.c"
+ }
+ }
+ }
+#line 106 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ format_collection = (g_free (format_collection), NULL);
+#line 1162 "PhotoFileFormat.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = FALSE;
+#line 111 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 111 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 111 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1172 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat photo_file_format_get_system_default_format (void) {
+ PhotoFileFormat result = 0;
+#line 116 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_JFIF;
+#line 116 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1182 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat photo_file_format_get_by_file_extension (GFile* file) {
+ PhotoFileFormat result = 0;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ PhotoFileFormat _tmp3_ = 0;
+ PhotoFileFormat _tmp4_ = 0;
+#line 119 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (G_IS_FILE (file), 0);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = file;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = _tmp1_;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_get_by_basename_extension (_tmp2_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = _tmp3_;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (_tmp2_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp4_;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1211 "PhotoFileFormat.c"
+}
+
+
+gint photo_file_format_serialize (PhotoFileFormat self) {
+ gint result = 0;
+#line 125 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (self) {
+#line 125 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_JFIF:
+#line 1221 "PhotoFileFormat.c"
+ {
+#line 127 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = 0;
+#line 127 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1227 "PhotoFileFormat.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_RAW:
+#line 1231 "PhotoFileFormat.c"
+ {
+#line 130 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = 1;
+#line 130 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1237 "PhotoFileFormat.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_PNG:
+#line 1241 "PhotoFileFormat.c"
+ {
+#line 133 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = 2;
+#line 133 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1247 "PhotoFileFormat.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_TIFF:
+#line 1251 "PhotoFileFormat.c"
+ {
+#line 136 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = 3;
+#line 136 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1257 "PhotoFileFormat.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_BMP:
+#line 1261 "PhotoFileFormat.c"
+ {
+#line 139 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = 4;
+#line 139 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1267 "PhotoFileFormat.c"
+ }
+ default:
+#line 125 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_UNKNOWN:
+#line 1272 "PhotoFileFormat.c"
+ {
+#line 143 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = -1;
+#line 143 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1278 "PhotoFileFormat.c"
+ }
+ }
+}
+
+
+PhotoFileFormat photo_file_format_unserialize (gint value) {
+ PhotoFileFormat result = 0;
+ gint _tmp0_ = 0;
+#line 149 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = value;
+#line 149 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (_tmp0_) {
+#line 149 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case 0:
+#line 1293 "PhotoFileFormat.c"
+ {
+#line 151 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_JFIF;
+#line 151 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1299 "PhotoFileFormat.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case 1:
+#line 1303 "PhotoFileFormat.c"
+ {
+#line 154 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_RAW;
+#line 154 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1309 "PhotoFileFormat.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case 2:
+#line 1313 "PhotoFileFormat.c"
+ {
+#line 157 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_PNG;
+#line 157 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1319 "PhotoFileFormat.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case 3:
+#line 1323 "PhotoFileFormat.c"
+ {
+#line 160 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_TIFF;
+#line 160 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1329 "PhotoFileFormat.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case 4:
+#line 1333 "PhotoFileFormat.c"
+ {
+#line 163 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_BMP;
+#line 163 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1339 "PhotoFileFormat.c"
+ }
+ default:
+ {
+#line 166 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_UNKNOWN;
+#line 166 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1347 "PhotoFileFormat.c"
+ }
+ }
+}
+
+
+PhotoFileFormat photo_file_format_from_gphoto_type (const gchar* type) {
+ PhotoFileFormat result = 0;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+#line 170 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (type != NULL, 0);
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = type;
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp3_ == g_quark_from_string (GP_MIME_JPEG)) {
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1370 "PhotoFileFormat.c"
+ default:
+ {
+#line 173 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_JFIF;
+#line 173 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1377 "PhotoFileFormat.c"
+ }
+ }
+ } else if ((_tmp3_ == g_quark_from_string (GP_MIME_RAW)) || (_tmp3_ == g_quark_from_string (GP_MIME_CRW))) {
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1383 "PhotoFileFormat.c"
+ default:
+ {
+#line 177 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_RAW;
+#line 177 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1390 "PhotoFileFormat.c"
+ }
+ }
+ } else if (_tmp3_ == g_quark_from_string (GP_MIME_PNG)) {
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1396 "PhotoFileFormat.c"
+ default:
+ {
+#line 180 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_PNG;
+#line 180 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1403 "PhotoFileFormat.c"
+ }
+ }
+ } else if (_tmp3_ == g_quark_from_string (GP_MIME_TIFF)) {
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1409 "PhotoFileFormat.c"
+ default:
+ {
+#line 183 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_TIFF;
+#line 183 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1416 "PhotoFileFormat.c"
+ }
+ }
+ } else if (_tmp3_ == g_quark_from_string (GP_MIME_BMP)) {
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1422 "PhotoFileFormat.c"
+ default:
+ {
+#line 186 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_BMP;
+#line 186 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1429 "PhotoFileFormat.c"
+ }
+ }
+ } else {
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1435 "PhotoFileFormat.c"
+ default:
+ {
+#line 190 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_UNKNOWN;
+#line 190 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1442 "PhotoFileFormat.c"
+ }
+ }
+ }
+}
+
+
+PhotoFileFormat photo_file_format_from_pixbuf_name (const gchar* name) {
+ PhotoFileFormat result = 0;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ static GQuark _tmp2_label0 = 0;
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ static GQuark _tmp2_label1 = 0;
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ static GQuark _tmp2_label2 = 0;
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ static GQuark _tmp2_label3 = 0;
+#line 195 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (name != NULL, 0);
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = name;
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("jpeg")))) {
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1474 "PhotoFileFormat.c"
+ default:
+ {
+#line 198 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_JFIF;
+#line 198 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1481 "PhotoFileFormat.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("png")))) {
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1487 "PhotoFileFormat.c"
+ default:
+ {
+#line 201 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_PNG;
+#line 201 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1494 "PhotoFileFormat.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("tiff")))) {
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1500 "PhotoFileFormat.c"
+ default:
+ {
+#line 204 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_TIFF;
+#line 204 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1507 "PhotoFileFormat.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("bmp")))) {
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1513 "PhotoFileFormat.c"
+ default:
+ {
+#line 207 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_BMP;
+#line 207 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1520 "PhotoFileFormat.c"
+ }
+ }
+ } else {
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (0) {
+#line 1526 "PhotoFileFormat.c"
+ default:
+ {
+#line 210 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = PHOTO_FILE_FORMAT_UNKNOWN;
+#line 210 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1533 "PhotoFileFormat.c"
+ }
+ }
+ }
+}
+
+
+void photo_file_format_init (PhotoFileFormat self) {
+#line 215 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (self) {
+#line 215 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_JFIF:
+#line 1545 "PhotoFileFormat.c"
+ {
+#line 217 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ jfif_file_format_driver_init ();
+#line 218 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ break;
+#line 1551 "PhotoFileFormat.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_RAW:
+#line 1555 "PhotoFileFormat.c"
+ {
+#line 221 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ raw_file_format_driver_init ();
+#line 222 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ break;
+#line 1561 "PhotoFileFormat.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_PNG:
+#line 1565 "PhotoFileFormat.c"
+ {
+#line 225 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ png_file_format_driver_init ();
+#line 226 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ break;
+#line 1571 "PhotoFileFormat.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_TIFF:
+#line 1575 "PhotoFileFormat.c"
+ {
+#line 229 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photos_tiff_file_format_driver_init ();
+#line 230 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ break;
+#line 1581 "PhotoFileFormat.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_BMP:
+#line 1585 "PhotoFileFormat.c"
+ {
+#line 233 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photos_bmp_file_format_driver_init ();
+#line 234 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ break;
+#line 1591 "PhotoFileFormat.c"
+ }
+ default:
+ {
+ GEnumValue* _tmp0_;
+#line 237 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = g_enum_get_value (g_type_class_ref (TYPE_PHOTO_FILE_FORMAT), self);
+#line 237 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_error ("PhotoFileFormat.vala:237: Unsupported file format %s", (_tmp0_ != NULL) ? _tmp0_->value_name : NULL);
+#line 1600 "PhotoFileFormat.c"
+ }
+ }
+}
+
+
+static PhotoFileFormatDriver* photo_file_format_get_driver (PhotoFileFormat self) {
+ PhotoFileFormatDriver* result = NULL;
+#line 242 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ switch (self) {
+#line 242 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_JFIF:
+#line 1612 "PhotoFileFormat.c"
+ {
+ JfifFileFormatDriver* _tmp0_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = jfif_file_format_driver_get_instance ();
+#line 244 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver);
+#line 244 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1621 "PhotoFileFormat.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_RAW:
+#line 1625 "PhotoFileFormat.c"
+ {
+ RawFileFormatDriver* _tmp1_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = raw_file_format_driver_get_instance ();
+#line 247 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver);
+#line 247 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1634 "PhotoFileFormat.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_PNG:
+#line 1638 "PhotoFileFormat.c"
+ {
+ PngFileFormatDriver* _tmp2_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = png_file_format_driver_get_instance ();
+#line 250 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver);
+#line 250 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1647 "PhotoFileFormat.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_TIFF:
+#line 1651 "PhotoFileFormat.c"
+ {
+ PhotosTiffFileFormatDriver* _tmp3_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photos_tiff_file_format_driver_get_instance ();
+#line 253 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver);
+#line 253 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1660 "PhotoFileFormat.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ case PHOTO_FILE_FORMAT_BMP:
+#line 1664 "PhotoFileFormat.c"
+ {
+ PhotosBmpFileFormatDriver* _tmp4_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = photos_bmp_file_format_driver_get_instance ();
+#line 256 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver);
+#line 256 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1673 "PhotoFileFormat.c"
+ }
+ default:
+ {
+ GEnumValue* _tmp5_;
+#line 259 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = g_enum_get_value (g_type_class_ref (TYPE_PHOTO_FILE_FORMAT), self);
+#line 259 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_error ("PhotoFileFormat.vala:259: Unsupported file format %s", (_tmp5_ != NULL) ? _tmp5_->value_name : NULL);
+#line 1682 "PhotoFileFormat.c"
+ }
+ }
+}
+
+
+PhotoFileFormatProperties* photo_file_format_get_properties (PhotoFileFormat self) {
+ PhotoFileFormatProperties* result = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ PhotoFileFormatProperties* _tmp2_ = NULL;
+ PhotoFileFormatProperties* _tmp3_ = NULL;
+#line 264 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 264 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 264 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_driver_get_properties (_tmp1_);
+#line 264 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = _tmp2_;
+#line 264 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 264 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp3_;
+#line 264 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1708 "PhotoFileFormat.c"
+}
+
+
+gchar* photo_file_format_get_default_basename (PhotoFileFormat self, const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotoFileFormatProperties* _tmp1_ = NULL;
+ PhotoFileFormatProperties* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = name;
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_get_properties (self);
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = _tmp1_;
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_properties_get_default_extension (_tmp2_);
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = _tmp3_;
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = g_strdup_printf ("%s.%s", _tmp0_, _tmp4_);
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = _tmp5_;
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (_tmp4_);
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_properties_unref0 (_tmp2_);
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp6_;
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1745 "PhotoFileFormat.c"
+}
+
+
+PhotoFileReader* photo_file_format_create_reader (PhotoFileFormat self, const gchar* filepath) {
+ PhotoFileReader* result = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileReader* _tmp3_ = NULL;
+ PhotoFileReader* _tmp4_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = filepath;
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_driver_create_reader (_tmp1_, _tmp2_);
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = _tmp3_;
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp4_;
+#line 273 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1774 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_can_write (PhotoFileFormat self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 278 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = photo_file_format_can_write_image (self);
+#line 278 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp1_) {
+#line 1786 "PhotoFileFormat.c"
+ gboolean _tmp2_ = FALSE;
+#line 278 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_can_write_metadata (self);
+#line 278 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = _tmp2_;
+#line 1792 "PhotoFileFormat.c"
+ } else {
+#line 278 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = FALSE;
+#line 1796 "PhotoFileFormat.c"
+ }
+#line 278 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp0_;
+#line 278 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1802 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_can_write_image (PhotoFileFormat self) {
+ gboolean result = FALSE;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 282 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 282 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 282 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_driver_can_write_image (_tmp1_);
+#line 282 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = _tmp2_;
+#line 282 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 282 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp3_;
+#line 282 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1826 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_can_write_metadata (PhotoFileFormat self) {
+ gboolean result = FALSE;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_driver_can_write_metadata (_tmp1_);
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = _tmp2_;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp3_;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1850 "PhotoFileFormat.c"
+}
+
+
+PhotoFileWriter* photo_file_format_create_writer (PhotoFileFormat self, const gchar* filepath, GError** error) {
+ PhotoFileWriter* result = NULL;
+ PhotoFileWriter* writer = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileWriter* _tmp3_ = NULL;
+ PhotoFileWriter* _tmp4_ = NULL;
+ PhotoFileWriter* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 289 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = filepath;
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_driver_create_writer (_tmp1_, _tmp2_);
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = _tmp3_;
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ writer = _tmp4_;
+#line 291 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = writer;
+#line 291 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp5_ == NULL) {
+#line 1884 "PhotoFileFormat.c"
+ GEnumValue* _tmp6_;
+ GError* _tmp7_ = NULL;
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = g_enum_get_value (g_type_class_ref (TYPE_PHOTO_FILE_FORMAT), self);
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = g_error_new (PHOTO_FORMAT_ERROR, PHOTO_FORMAT_ERROR_READ_ONLY, "File format %s is read-only", (_tmp6_ != NULL) ? _tmp6_->value_name : NULL);
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _inner_error_ = _tmp7_;
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_inner_error_->domain == PHOTO_FORMAT_ERROR) {
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_propagate_error (error, _inner_error_);
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 1901 "PhotoFileFormat.c"
+ } else {
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_clear_error (&_inner_error_);
+#line 292 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 1911 "PhotoFileFormat.c"
+ }
+ }
+#line 294 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = writer;
+#line 294 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1918 "PhotoFileFormat.c"
+}
+
+
+PhotoFileMetadataWriter* photo_file_format_create_metadata_writer (PhotoFileFormat self, const gchar* filepath, GError** error) {
+ PhotoFileMetadataWriter* result = NULL;
+ PhotoFileMetadataWriter* writer = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PhotoFileMetadataWriter* _tmp3_ = NULL;
+ PhotoFileMetadataWriter* _tmp4_ = NULL;
+ PhotoFileMetadataWriter* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 297 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = filepath;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = photo_file_format_driver_create_metadata_writer (_tmp1_, _tmp2_);
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = _tmp3_;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ writer = _tmp4_;
+#line 299 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = writer;
+#line 299 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp5_ == NULL) {
+#line 1952 "PhotoFileFormat.c"
+ GEnumValue* _tmp6_;
+ GError* _tmp7_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = g_enum_get_value (g_type_class_ref (TYPE_PHOTO_FILE_FORMAT), self);
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = g_error_new (PHOTO_FORMAT_ERROR, PHOTO_FORMAT_ERROR_READ_ONLY, "File format %s metadata is read-only", (_tmp6_ != NULL) ? _tmp6_->value_name : NULL);
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _inner_error_ = _tmp7_;
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_inner_error_->domain == PHOTO_FORMAT_ERROR) {
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_propagate_error (error, _inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 1969 "PhotoFileFormat.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_adapter_unref0 (writer);
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_clear_error (&_inner_error_);
+#line 300 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 1979 "PhotoFileFormat.c"
+ }
+ }
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = writer;
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 1986 "PhotoFileFormat.c"
+}
+
+
+PhotoFileSniffer* photo_file_format_create_sniffer (PhotoFileFormat self, GFile* file, PhotoFileSnifferOptions options) {
+ PhotoFileSniffer* result = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ PhotoFileSnifferOptions _tmp3_ = 0;
+ PhotoFileSniffer* _tmp4_ = NULL;
+ PhotoFileSniffer* _tmp5_ = NULL;
+#line 305 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = file;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = options;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = photo_file_format_driver_create_sniffer (_tmp1_, _tmp2_, _tmp3_);
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp4_;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp5_;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2018 "PhotoFileFormat.c"
+}
+
+
+PhotoMetadata* photo_file_format_create_metadata (PhotoFileFormat self) {
+ PhotoMetadata* result = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ PhotoMetadata* _tmp2_ = NULL;
+ PhotoMetadata* _tmp3_ = NULL;
+#line 310 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 310 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 310 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_driver_create_metadata (_tmp1_);
+#line 310 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = _tmp2_;
+#line 310 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 310 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp3_;
+#line 310 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2042 "PhotoFileFormat.c"
+}
+
+
+gchar* photo_file_format_get_default_mime_type (PhotoFileFormat self) {
+ gchar* result = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ PhotoFileFormatProperties* _tmp2_ = NULL;
+ PhotoFileFormatProperties* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_driver_get_properties (_tmp1_);
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = _tmp2_;
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = photo_file_format_properties_get_default_mime_type (_tmp3_);
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp4_;
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_properties_unref0 (_tmp3_);
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp5_;
+#line 314 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2074 "PhotoFileFormat.c"
+}
+
+
+gchar** photo_file_format_get_mime_types (PhotoFileFormat self, int* result_length1) {
+ gchar** result = NULL;
+ PhotoFileFormatDriver* _tmp0_ = NULL;
+ PhotoFileFormatDriver* _tmp1_ = NULL;
+ PhotoFileFormatProperties* _tmp2_ = NULL;
+ PhotoFileFormatProperties* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gchar** _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = photo_file_format_get_driver (self);
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = _tmp0_;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_driver_get_properties (_tmp1_);
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = _tmp2_;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = photo_file_format_properties_get_mime_types (_tmp3_, &_tmp4_);
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = _tmp5_;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6__length1 = _tmp4_;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_properties_unref0 (_tmp3_);
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _photo_file_format_driver_unref0 (_tmp1_);
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = _tmp6_;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7__length1 = _tmp6__length1;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp7__length1;
+#line 2116 "PhotoFileFormat.c"
+ }
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp7_;
+#line 318 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2122 "PhotoFileFormat.c"
+}
+
+
+static void _vala_array_add44 (gchar*** array, int* length, int* size, gchar* value) {
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if ((*length) == (*size)) {
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 2133 "PhotoFileFormat.c"
+ }
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ (*array)[(*length)++] = value;
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ (*array)[*length] = NULL;
+#line 2139 "PhotoFileFormat.c"
+}
+
+
+gchar** photo_file_format_get_editable_mime_types (int* result_length1) {
+ gchar** result = NULL;
+ gchar** mime_types = NULL;
+ gchar** _tmp0_ = NULL;
+ gint mime_types_length1 = 0;
+ gint _mime_types_size_ = 0;
+ gint _tmp1_ = 0;
+ PhotoFileFormat* _tmp2_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 322 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 322 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ mime_types = _tmp0_;
+#line 322 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ mime_types_length1 = 0;
+#line 322 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _mime_types_size_ = mime_types_length1;
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_get_supported (&_tmp1_);
+#line 2163 "PhotoFileFormat.c"
+ {
+ PhotoFileFormat* file_format_collection = NULL;
+ gint file_format_collection_length1 = 0;
+ gint _file_format_collection_size_ = 0;
+ gint file_format_it = 0;
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format_collection = _tmp2_;
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format_collection_length1 = _tmp1_;
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ for (file_format_it = 0; file_format_it < _tmp1_; file_format_it = file_format_it + 1) {
+#line 2175 "PhotoFileFormat.c"
+ PhotoFileFormat file_format = 0;
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format = file_format_collection[file_format_it];
+#line 2179 "PhotoFileFormat.c"
+ {
+ PhotoFileFormat _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gchar** _tmp5_ = NULL;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = file_format;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = photo_file_format_get_mime_types (_tmp3_, &_tmp4_);
+#line 2188 "PhotoFileFormat.c"
+ {
+ gchar** mime_type_collection = NULL;
+ gint mime_type_collection_length1 = 0;
+ gint _mime_type_collection_size_ = 0;
+ gint mime_type_it = 0;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ mime_type_collection = _tmp5_;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ mime_type_collection_length1 = _tmp4_;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ for (mime_type_it = 0; mime_type_it < _tmp4_; mime_type_it = mime_type_it + 1) {
+#line 2200 "PhotoFileFormat.c"
+ gchar* _tmp6_ = NULL;
+ gchar* mime_type = NULL;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = g_strdup (mime_type_collection[mime_type_it]);
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ mime_type = _tmp6_;
+#line 2207 "PhotoFileFormat.c"
+ {
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = mime_types;
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7__length1 = mime_types_length1;
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp8_ = mime_type;
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 326 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _vala_array_add44 (&mime_types, &mime_types_length1, &_mime_types_size_, _tmp9_);
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (mime_type);
+#line 2225 "PhotoFileFormat.c"
+ }
+ }
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ mime_type_collection = (_vala_array_free (mime_type_collection, mime_type_collection_length1, (GDestroyNotify) g_free), NULL);
+#line 2230 "PhotoFileFormat.c"
+ }
+ }
+ }
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ file_format_collection = (g_free (file_format_collection), NULL);
+#line 2236 "PhotoFileFormat.c"
+ }
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp10_ = mime_types;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp10__length1 = mime_types_length1;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (result_length1) {
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *result_length1 = _tmp10__length1;
+#line 2246 "PhotoFileFormat.c"
+ }
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp10_;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2252 "PhotoFileFormat.c"
+}
+
+
+GType photo_file_format_get_type (void) {
+ static volatile gsize photo_file_format_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_format_type_id__volatile)) {
+ static const GEnumValue values[] = {{PHOTO_FILE_FORMAT_JFIF, "PHOTO_FILE_FORMAT_JFIF", "jfif"}, {PHOTO_FILE_FORMAT_RAW, "PHOTO_FILE_FORMAT_RAW", "raw"}, {PHOTO_FILE_FORMAT_PNG, "PHOTO_FILE_FORMAT_PNG", "png"}, {PHOTO_FILE_FORMAT_TIFF, "PHOTO_FILE_FORMAT_TIFF", "tiff"}, {PHOTO_FILE_FORMAT_BMP, "PHOTO_FILE_FORMAT_BMP", "bmp"}, {PHOTO_FILE_FORMAT_UNKNOWN, "PHOTO_FILE_FORMAT_UNKNOWN", "unknown"}, {0, NULL, NULL}};
+ GType photo_file_format_type_id;
+ photo_file_format_type_id = g_enum_register_static ("PhotoFileFormat", values);
+ g_once_init_leave (&photo_file_format_type_id__volatile, photo_file_format_type_id);
+ }
+ return photo_file_format_type_id__volatile;
+}
+
+
+static PhotoFileFormatProperties* photo_file_format_driver_real_get_properties (PhotoFileFormatDriver* self) {
+#line 345 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_get_properties'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 345 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2273 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormatProperties* photo_file_format_driver_get_properties (PhotoFileFormatDriver* self) {
+#line 345 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), NULL);
+#line 345 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->get_properties (self);
+#line 2282 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileReader* photo_file_format_driver_real_create_reader (PhotoFileFormatDriver* self, const gchar* filepath) {
+#line 347 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_create_reader'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 347 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2291 "PhotoFileFormat.c"
+}
+
+
+PhotoFileReader* photo_file_format_driver_create_reader (PhotoFileFormatDriver* self, const gchar* filepath) {
+#line 347 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), NULL);
+#line 347 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->create_reader (self, filepath);
+#line 2300 "PhotoFileFormat.c"
+}
+
+
+static PhotoMetadata* photo_file_format_driver_real_create_metadata (PhotoFileFormatDriver* self) {
+#line 349 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_create_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 349 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2309 "PhotoFileFormat.c"
+}
+
+
+PhotoMetadata* photo_file_format_driver_create_metadata (PhotoFileFormatDriver* self) {
+#line 349 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), NULL);
+#line 349 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->create_metadata (self);
+#line 2318 "PhotoFileFormat.c"
+}
+
+
+static gboolean photo_file_format_driver_real_can_write_image (PhotoFileFormatDriver* self) {
+#line 351 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_can_write_image'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 351 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return FALSE;
+#line 2327 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_driver_can_write_image (PhotoFileFormatDriver* self) {
+#line 351 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), FALSE);
+#line 351 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->can_write_image (self);
+#line 2336 "PhotoFileFormat.c"
+}
+
+
+static gboolean photo_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* self) {
+#line 353 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_can_write_metadata'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 353 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return FALSE;
+#line 2345 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_driver_can_write_metadata (PhotoFileFormatDriver* self) {
+#line 353 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), FALSE);
+#line 353 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->can_write_metadata (self);
+#line 2354 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileWriter* photo_file_format_driver_real_create_writer (PhotoFileFormatDriver* self, const gchar* filepath) {
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_create_writer'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2363 "PhotoFileFormat.c"
+}
+
+
+PhotoFileWriter* photo_file_format_driver_create_writer (PhotoFileFormatDriver* self, const gchar* filepath) {
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), NULL);
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->create_writer (self, filepath);
+#line 2372 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileMetadataWriter* photo_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* self, const gchar* filepath) {
+#line 357 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_create_metadata_writer'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 357 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2381 "PhotoFileFormat.c"
+}
+
+
+PhotoFileMetadataWriter* photo_file_format_driver_create_metadata_writer (PhotoFileFormatDriver* self, const gchar* filepath) {
+#line 357 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), NULL);
+#line 357 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->create_metadata_writer (self, filepath);
+#line 2390 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileSniffer* photo_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options) {
+#line 359 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_driver_create_sniffer'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 359 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2399 "PhotoFileFormat.c"
+}
+
+
+PhotoFileSniffer* photo_file_format_driver_create_sniffer (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options) {
+#line 359 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_DRIVER (self), NULL);
+#line 359 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->create_sniffer (self, file, options);
+#line 2408 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormatDriver* photo_file_format_driver_construct (GType object_type) {
+ PhotoFileFormatDriver* self = NULL;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ self = (PhotoFileFormatDriver*) g_type_create_instance (object_type);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return self;
+#line 2418 "PhotoFileFormat.c"
+}
+
+
+static void value_photo_file_format_driver_init (GValue* value) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 2425 "PhotoFileFormat.c"
+}
+
+
+static void value_photo_file_format_driver_free_value (GValue* value) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (value->data[0].v_pointer) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_driver_unref (value->data[0].v_pointer);
+#line 2434 "PhotoFileFormat.c"
+ }
+}
+
+
+static void value_photo_file_format_driver_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (src_value->data[0].v_pointer) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ dest_value->data[0].v_pointer = photo_file_format_driver_ref (src_value->data[0].v_pointer);
+#line 2444 "PhotoFileFormat.c"
+ } else {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2448 "PhotoFileFormat.c"
+ }
+}
+
+
+static gpointer value_photo_file_format_driver_peek_pointer (const GValue* value) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return value->data[0].v_pointer;
+#line 2456 "PhotoFileFormat.c"
+}
+
+
+static gchar* value_photo_file_format_driver_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (collect_values[0].v_pointer) {
+#line 2463 "PhotoFileFormat.c"
+ PhotoFileFormatDriver* object;
+ object = collect_values[0].v_pointer;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2470 "PhotoFileFormat.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2474 "PhotoFileFormat.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = photo_file_format_driver_ref (object);
+#line 2478 "PhotoFileFormat.c"
+ } else {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 2482 "PhotoFileFormat.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2486 "PhotoFileFormat.c"
+}
+
+
+static gchar* value_photo_file_format_driver_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoFileFormatDriver** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (!object_p) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2497 "PhotoFileFormat.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (!value->data[0].v_pointer) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *object_p = NULL;
+#line 2503 "PhotoFileFormat.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2507 "PhotoFileFormat.c"
+ } else {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *object_p = photo_file_format_driver_ref (value->data[0].v_pointer);
+#line 2511 "PhotoFileFormat.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2515 "PhotoFileFormat.c"
+}
+
+
+GParamSpec* param_spec_photo_file_format_driver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoFileFormatDriver* spec;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_FILE_FORMAT_DRIVER), NULL);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return G_PARAM_SPEC (spec);
+#line 2529 "PhotoFileFormat.c"
+}
+
+
+gpointer value_get_photo_file_format_driver (const GValue* value) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_FORMAT_DRIVER), NULL);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return value->data[0].v_pointer;
+#line 2538 "PhotoFileFormat.c"
+}
+
+
+void value_set_photo_file_format_driver (GValue* value, gpointer v_object) {
+ PhotoFileFormatDriver* old;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_FORMAT_DRIVER));
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ old = value->data[0].v_pointer;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (v_object) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_FORMAT_DRIVER));
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = v_object;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_driver_ref (value->data[0].v_pointer);
+#line 2558 "PhotoFileFormat.c"
+ } else {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 2562 "PhotoFileFormat.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (old) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_driver_unref (old);
+#line 2568 "PhotoFileFormat.c"
+ }
+}
+
+
+void value_take_photo_file_format_driver (GValue* value, gpointer v_object) {
+ PhotoFileFormatDriver* old;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_FORMAT_DRIVER));
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ old = value->data[0].v_pointer;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (v_object) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_FORMAT_DRIVER));
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = v_object;
+#line 2587 "PhotoFileFormat.c"
+ } else {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 2591 "PhotoFileFormat.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (old) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_driver_unref (old);
+#line 2597 "PhotoFileFormat.c"
+ }
+}
+
+
+static void photo_file_format_driver_class_init (PhotoFileFormatDriverClass * klass) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_driver_parent_class = g_type_class_peek_parent (klass);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->finalize = photo_file_format_driver_finalize;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->get_properties = photo_file_format_driver_real_get_properties;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_reader = photo_file_format_driver_real_create_reader;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata = photo_file_format_driver_real_create_metadata;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_image = photo_file_format_driver_real_can_write_image;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_metadata = photo_file_format_driver_real_can_write_metadata;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_writer = photo_file_format_driver_real_create_writer;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata_writer = photo_file_format_driver_real_create_metadata_writer;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_sniffer = photo_file_format_driver_real_create_sniffer;
+#line 2623 "PhotoFileFormat.c"
+}
+
+
+static void photo_file_format_driver_instance_init (PhotoFileFormatDriver * self) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ self->ref_count = 1;
+#line 2630 "PhotoFileFormat.c"
+}
+
+
+static void photo_file_format_driver_finalize (PhotoFileFormatDriver* obj) {
+ PhotoFileFormatDriver * self;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_signal_handlers_destroy (self);
+#line 2640 "PhotoFileFormat.c"
+}
+
+
+GType photo_file_format_driver_get_type (void) {
+ static volatile gsize photo_file_format_driver_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_format_driver_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_file_format_driver_init, value_photo_file_format_driver_free_value, value_photo_file_format_driver_copy_value, value_photo_file_format_driver_peek_pointer, "p", value_photo_file_format_driver_collect_value, "p", value_photo_file_format_driver_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileFormatDriverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_format_driver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileFormatDriver), 0, (GInstanceInitFunc) photo_file_format_driver_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_file_format_driver_type_id;
+ photo_file_format_driver_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoFileFormatDriver", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_file_format_driver_type_id__volatile, photo_file_format_driver_type_id);
+ }
+ return photo_file_format_driver_type_id__volatile;
+}
+
+
+gpointer photo_file_format_driver_ref (gpointer instance) {
+ PhotoFileFormatDriver* self;
+ self = instance;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return instance;
+#line 2665 "PhotoFileFormat.c"
+}
+
+
+void photo_file_format_driver_unref (gpointer instance) {
+ PhotoFileFormatDriver* self;
+ self = instance;
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ PHOTO_FILE_FORMAT_DRIVER_GET_CLASS (self)->finalize (self);
+#line 344 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2678 "PhotoFileFormat.c"
+ }
+}
+
+
+GType photo_file_format_flags_get_type (void) {
+ static volatile gsize photo_file_format_flags_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_format_flags_type_id__volatile)) {
+ static const GEnumValue values[] = {{PHOTO_FILE_FORMAT_FLAGS_NONE, "PHOTO_FILE_FORMAT_FLAGS_NONE", "none"}, {0, NULL, NULL}};
+ GType photo_file_format_flags_type_id;
+ photo_file_format_flags_type_id = g_enum_register_static ("PhotoFileFormatFlags", values);
+ g_once_init_leave (&photo_file_format_flags_type_id__volatile, photo_file_format_flags_type_id);
+ }
+ return photo_file_format_flags_type_id__volatile;
+}
+
+
+static PhotoFileFormat photo_file_format_properties_real_get_file_format (PhotoFileFormatProperties* self) {
+#line 374 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_properties_get_file_format'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 374 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return 0;
+#line 2700 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormat photo_file_format_properties_get_file_format (PhotoFileFormatProperties* self) {
+#line 374 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), 0);
+#line 374 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->get_file_format (self);
+#line 2709 "PhotoFileFormat.c"
+}
+
+
+static PhotoFileFormatFlags photo_file_format_properties_real_get_flags (PhotoFileFormatProperties* self) {
+#line 376 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_properties_get_flags'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 376 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return 0;
+#line 2718 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormatFlags photo_file_format_properties_get_flags (PhotoFileFormatProperties* self) {
+#line 376 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), 0);
+#line 376 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->get_flags (self);
+#line 2727 "PhotoFileFormat.c"
+}
+
+
+static gboolean photo_file_format_properties_real_is_recognized_extension (PhotoFileFormatProperties* self, const gchar* ext) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar** _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 380 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (ext != NULL, FALSE);
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = ext;
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = photo_file_format_properties_get_known_extensions (self, &_tmp1_);
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = _tmp2_;
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3__length1 = _tmp1_;
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp4_ = is_in_ci_array (_tmp0_, _tmp3_, _tmp1_);
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp4_;
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp5_;
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2760 "PhotoFileFormat.c"
+}
+
+
+gboolean photo_file_format_properties_is_recognized_extension (PhotoFileFormatProperties* self, const gchar* ext) {
+#line 380 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), FALSE);
+#line 380 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->is_recognized_extension (self, ext);
+#line 2769 "PhotoFileFormat.c"
+}
+
+
+static gchar* photo_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* self) {
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_properties_get_default_extension'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2778 "PhotoFileFormat.c"
+}
+
+
+gchar* photo_file_format_properties_get_default_extension (PhotoFileFormatProperties* self) {
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), NULL);
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->get_default_extension (self);
+#line 2787 "PhotoFileFormat.c"
+}
+
+
+static gchar** photo_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* self, int* result_length1) {
+#line 386 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_properties_get_known_extensions'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 386 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2796 "PhotoFileFormat.c"
+}
+
+
+gchar** photo_file_format_properties_get_known_extensions (PhotoFileFormatProperties* self, int* result_length1) {
+#line 386 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), NULL);
+#line 386 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->get_known_extensions (self, result_length1);
+#line 2805 "PhotoFileFormat.c"
+}
+
+
+static gchar* photo_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* self) {
+#line 388 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_properties_get_default_mime_type'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 388 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2814 "PhotoFileFormat.c"
+}
+
+
+gchar* photo_file_format_properties_get_default_mime_type (PhotoFileFormatProperties* self) {
+#line 388 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), NULL);
+#line 388 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->get_default_mime_type (self);
+#line 2823 "PhotoFileFormat.c"
+}
+
+
+static gchar** photo_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* self, int* result_length1) {
+#line 390 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_properties_get_mime_types'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 390 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2832 "PhotoFileFormat.c"
+}
+
+
+gchar** photo_file_format_properties_get_mime_types (PhotoFileFormatProperties* self, int* result_length1) {
+#line 390 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), NULL);
+#line 390 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->get_mime_types (self, result_length1);
+#line 2841 "PhotoFileFormat.c"
+}
+
+
+static gchar* photo_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* self) {
+#line 397 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_format_properties_get_user_visible_name'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 397 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 2850 "PhotoFileFormat.c"
+}
+
+
+gchar* photo_file_format_properties_get_user_visible_name (PhotoFileFormatProperties* self) {
+#line 397 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), NULL);
+#line 397 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->get_user_visible_name (self);
+#line 2859 "PhotoFileFormat.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2866 "PhotoFileFormat.c"
+}
+
+
+GFile* photo_file_format_properties_convert_file_extension (PhotoFileFormatProperties* self, GFile* file) {
+ GFile* result = NULL;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ const gchar* _tmp6_ = NULL;
+ GFile* _tmp11_ = NULL;
+ GFile* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ GFile* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+#line 401 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_FORMAT_PROPERTIES (self), NULL);
+#line 401 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp0_ = file;
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp2_ = _tmp1_;
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ disassemble_filename (_tmp2_, &_tmp3_, &_tmp4_);
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ name = _tmp3_;
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ext = _tmp4_;
+#line 403 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (_tmp2_);
+#line 404 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp6_ = ext;
+#line 404 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp6_ != NULL) {
+#line 2917 "PhotoFileFormat.c"
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 404 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp7_ = ext;
+#line 404 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp8_ = photo_file_format_properties_is_recognized_extension (self, _tmp7_);
+#line 404 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = _tmp8_;
+#line 2926 "PhotoFileFormat.c"
+ } else {
+#line 404 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp5_ = FALSE;
+#line 2930 "PhotoFileFormat.c"
+ }
+#line 404 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (_tmp5_) {
+#line 2934 "PhotoFileFormat.c"
+ GFile* _tmp9_ = NULL;
+ GFile* _tmp10_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp9_ = file;
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp10_;
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2949 "PhotoFileFormat.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp11_ = file;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp12_ = g_file_get_parent (_tmp11_);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp13_ = _tmp12_;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp14_ = name;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp15_ = photo_file_format_properties_get_default_extension (self);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp16_ = _tmp15_;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp17_ = g_strdup_printf ("%s.%s", _tmp14_, _tmp16_);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp18_ = _tmp17_;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp19_ = g_file_get_child (_tmp13_, _tmp18_);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _tmp20_ = _tmp19_;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (_tmp18_);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (_tmp16_);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_object_unref0 (_tmp13_);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ result = _tmp20_;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (ext);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ _g_free0 (name);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return result;
+#line 2985 "PhotoFileFormat.c"
+}
+
+
+PhotoFileFormatProperties* photo_file_format_properties_construct (GType object_type) {
+ PhotoFileFormatProperties* self = NULL;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ self = (PhotoFileFormatProperties*) g_type_create_instance (object_type);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return self;
+#line 2995 "PhotoFileFormat.c"
+}
+
+
+static void value_photo_file_format_properties_init (GValue* value) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 3002 "PhotoFileFormat.c"
+}
+
+
+static void value_photo_file_format_properties_free_value (GValue* value) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (value->data[0].v_pointer) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_properties_unref (value->data[0].v_pointer);
+#line 3011 "PhotoFileFormat.c"
+ }
+}
+
+
+static void value_photo_file_format_properties_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (src_value->data[0].v_pointer) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ dest_value->data[0].v_pointer = photo_file_format_properties_ref (src_value->data[0].v_pointer);
+#line 3021 "PhotoFileFormat.c"
+ } else {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3025 "PhotoFileFormat.c"
+ }
+}
+
+
+static gpointer value_photo_file_format_properties_peek_pointer (const GValue* value) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return value->data[0].v_pointer;
+#line 3033 "PhotoFileFormat.c"
+}
+
+
+static gchar* value_photo_file_format_properties_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (collect_values[0].v_pointer) {
+#line 3040 "PhotoFileFormat.c"
+ PhotoFileFormatProperties* object;
+ object = collect_values[0].v_pointer;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3047 "PhotoFileFormat.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3051 "PhotoFileFormat.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = photo_file_format_properties_ref (object);
+#line 3055 "PhotoFileFormat.c"
+ } else {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 3059 "PhotoFileFormat.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 3063 "PhotoFileFormat.c"
+}
+
+
+static gchar* value_photo_file_format_properties_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoFileFormatProperties** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (!object_p) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3074 "PhotoFileFormat.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (!value->data[0].v_pointer) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *object_p = NULL;
+#line 3080 "PhotoFileFormat.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3084 "PhotoFileFormat.c"
+ } else {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ *object_p = photo_file_format_properties_ref (value->data[0].v_pointer);
+#line 3088 "PhotoFileFormat.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return NULL;
+#line 3092 "PhotoFileFormat.c"
+}
+
+
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoFileFormatProperties* spec;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_FILE_FORMAT_PROPERTIES), NULL);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return G_PARAM_SPEC (spec);
+#line 3106 "PhotoFileFormat.c"
+}
+
+
+gpointer value_get_photo_file_format_properties (const GValue* value) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_FORMAT_PROPERTIES), NULL);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return value->data[0].v_pointer;
+#line 3115 "PhotoFileFormat.c"
+}
+
+
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object) {
+ PhotoFileFormatProperties* old;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_FORMAT_PROPERTIES));
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ old = value->data[0].v_pointer;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (v_object) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_FORMAT_PROPERTIES));
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = v_object;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_properties_ref (value->data[0].v_pointer);
+#line 3135 "PhotoFileFormat.c"
+ } else {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 3139 "PhotoFileFormat.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (old) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_properties_unref (old);
+#line 3145 "PhotoFileFormat.c"
+ }
+}
+
+
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object) {
+ PhotoFileFormatProperties* old;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_FORMAT_PROPERTIES));
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ old = value->data[0].v_pointer;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (v_object) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_FORMAT_PROPERTIES));
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = v_object;
+#line 3164 "PhotoFileFormat.c"
+ } else {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ value->data[0].v_pointer = NULL;
+#line 3168 "PhotoFileFormat.c"
+ }
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (old) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_properties_unref (old);
+#line 3174 "PhotoFileFormat.c"
+ }
+}
+
+
+static void photo_file_format_properties_class_init (PhotoFileFormatPropertiesClass * klass) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ photo_file_format_properties_parent_class = g_type_class_peek_parent (klass);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->finalize = photo_file_format_properties_finalize;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_file_format = photo_file_format_properties_real_get_file_format;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_flags = photo_file_format_properties_real_get_flags;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->is_recognized_extension = photo_file_format_properties_real_is_recognized_extension;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_extension = photo_file_format_properties_real_get_default_extension;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_known_extensions = photo_file_format_properties_real_get_known_extensions;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_mime_type = photo_file_format_properties_real_get_default_mime_type;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_mime_types = photo_file_format_properties_real_get_mime_types;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_user_visible_name = photo_file_format_properties_real_get_user_visible_name;
+#line 3200 "PhotoFileFormat.c"
+}
+
+
+static void photo_file_format_properties_instance_init (PhotoFileFormatProperties * self) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ self->ref_count = 1;
+#line 3207 "PhotoFileFormat.c"
+}
+
+
+static void photo_file_format_properties_finalize (PhotoFileFormatProperties* obj) {
+ PhotoFileFormatProperties * self;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_signal_handlers_destroy (self);
+#line 3217 "PhotoFileFormat.c"
+}
+
+
+GType photo_file_format_properties_get_type (void) {
+ static volatile gsize photo_file_format_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_format_properties_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_file_format_properties_init, value_photo_file_format_properties_free_value, value_photo_file_format_properties_copy_value, value_photo_file_format_properties_peek_pointer, "p", value_photo_file_format_properties_collect_value, "p", value_photo_file_format_properties_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileFormatPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_format_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileFormatProperties), 0, (GInstanceInitFunc) photo_file_format_properties_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_file_format_properties_type_id;
+ photo_file_format_properties_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoFileFormatProperties", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_file_format_properties_type_id__volatile, photo_file_format_properties_type_id);
+ }
+ return photo_file_format_properties_type_id__volatile;
+}
+
+
+gpointer photo_file_format_properties_ref (gpointer instance) {
+ PhotoFileFormatProperties* self;
+ self = instance;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ return instance;
+#line 3242 "PhotoFileFormat.c"
+}
+
+
+void photo_file_format_properties_unref (gpointer instance) {
+ PhotoFileFormatProperties* self;
+ self = instance;
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS (self)->finalize (self);
+#line 373 "/home/jens/Source/shotwell/src/photos/PhotoFileFormat.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3255 "PhotoFileFormat.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/photos/PhotoFileSniffer.c b/src/photos/PhotoFileSniffer.c
new file mode 100644
index 0000000..8d44d6b
--- /dev/null
+++ b/src/photos/PhotoFileSniffer.c
@@ -0,0 +1,1348 @@
+/* PhotoFileSniffer.c generated by valac 0.32.1, the Vala compiler
+ * generated from PhotoFileSniffer.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecDetectedPhotoInformation ParamSpecDetectedPhotoInformation;
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecPhotoFileSniffer ParamSpecPhotoFileSniffer;
+
+#define TYPE_PHOTO_FILE_INTERROGATOR (photo_file_interrogator_get_type ())
+#define PHOTO_FILE_INTERROGATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogator))
+#define PHOTO_FILE_INTERROGATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogatorClass))
+#define IS_PHOTO_FILE_INTERROGATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_INTERROGATOR))
+#define IS_PHOTO_FILE_INTERROGATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_INTERROGATOR))
+#define PHOTO_FILE_INTERROGATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogatorClass))
+
+typedef struct _PhotoFileInterrogator PhotoFileInterrogator;
+typedef struct _PhotoFileInterrogatorClass PhotoFileInterrogatorClass;
+typedef struct _PhotoFileInterrogatorPrivate PhotoFileInterrogatorPrivate;
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+#define _photo_file_sniffer_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_sniffer_unref (var), NULL)))
+typedef struct _ParamSpecPhotoFileInterrogator ParamSpecPhotoFileInterrogator;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+struct _ParamSpecDetectedPhotoInformation {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileSniffer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileSnifferPrivate * priv;
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ gboolean calc_md5;
+};
+
+struct _PhotoFileSnifferClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileSniffer *self);
+ DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+};
+
+struct _ParamSpecPhotoFileSniffer {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoFileInterrogator {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileInterrogatorPrivate * priv;
+};
+
+struct _PhotoFileInterrogatorClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileInterrogator *self);
+};
+
+struct _PhotoFileInterrogatorPrivate {
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ DetectedPhotoInformation* detected;
+ gboolean is_photo_corrupted;
+};
+
+struct _ParamSpecPhotoFileInterrogator {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer detected_photo_information_parent_class = NULL;
+static gpointer photo_file_sniffer_parent_class = NULL;
+static gpointer photo_file_interrogator_parent_class = NULL;
+
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+enum {
+ DETECTED_PHOTO_INFORMATION_DUMMY_PROPERTY
+};
+void dimensions_init (Dimensions *self, gint width, gint height);
+DetectedPhotoInformation* detected_photo_information_new (void);
+DetectedPhotoInformation* detected_photo_information_construct (GType object_type);
+static void detected_photo_information_finalize (DetectedPhotoInformation* obj);
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTO_FILE_SNIFFER_DUMMY_PROPERTY
+};
+PhotoFileSniffer* photo_file_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+DetectedPhotoInformation* photo_file_sniffer_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+static DetectedPhotoInformation* photo_file_sniffer_real_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+static void photo_file_sniffer_finalize (PhotoFileSniffer* obj);
+gpointer photo_file_interrogator_ref (gpointer instance);
+void photo_file_interrogator_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_interrogator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_interrogator (GValue* value, gpointer v_object);
+void value_take_photo_file_interrogator (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_interrogator (const GValue* value);
+GType photo_file_interrogator_get_type (void) G_GNUC_CONST;
+#define PHOTO_FILE_INTERROGATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogatorPrivate))
+enum {
+ PHOTO_FILE_INTERROGATOR_DUMMY_PROPERTY
+};
+PhotoFileInterrogator* photo_file_interrogator_new (GFile* file, PhotoFileSnifferOptions options);
+PhotoFileInterrogator* photo_file_interrogator_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+DetectedPhotoInformation* photo_file_interrogator_get_detected_photo_information (PhotoFileInterrogator* self);
+gboolean photo_file_interrogator_get_is_photo_corrupted (PhotoFileInterrogator* self);
+void photo_file_interrogator_interrogate (PhotoFileInterrogator* self, GError** error);
+PhotoFileFormat* photo_file_format_get_supported (int* result_length1);
+PhotoFileSniffer* photo_file_format_create_sniffer (PhotoFileFormat self, GFile* file, PhotoFileSnifferOptions options);
+static void photo_file_interrogator_finalize (PhotoFileInterrogator* obj);
+
+
+DetectedPhotoInformation* detected_photo_information_construct (GType object_type) {
+ DetectedPhotoInformation* self = NULL;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self = (DetectedPhotoInformation*) g_type_create_instance (object_type);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return self;
+#line 250 "PhotoFileSniffer.c"
+}
+
+
+DetectedPhotoInformation* detected_photo_information_new (void) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return detected_photo_information_construct (TYPE_DETECTED_PHOTO_INFORMATION);
+#line 257 "PhotoFileSniffer.c"
+}
+
+
+static void value_detected_photo_information_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 264 "PhotoFileSniffer.c"
+}
+
+
+static void value_detected_photo_information_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ detected_photo_information_unref (value->data[0].v_pointer);
+#line 273 "PhotoFileSniffer.c"
+ }
+}
+
+
+static void value_detected_photo_information_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ dest_value->data[0].v_pointer = detected_photo_information_ref (src_value->data[0].v_pointer);
+#line 283 "PhotoFileSniffer.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 287 "PhotoFileSniffer.c"
+ }
+}
+
+
+static gpointer value_detected_photo_information_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return value->data[0].v_pointer;
+#line 295 "PhotoFileSniffer.c"
+}
+
+
+static gchar* value_detected_photo_information_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (collect_values[0].v_pointer) {
+#line 302 "PhotoFileSniffer.c"
+ DetectedPhotoInformation* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 309 "PhotoFileSniffer.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 313 "PhotoFileSniffer.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = detected_photo_information_ref (object);
+#line 317 "PhotoFileSniffer.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 321 "PhotoFileSniffer.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return NULL;
+#line 325 "PhotoFileSniffer.c"
+}
+
+
+static gchar* value_detected_photo_information_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ DetectedPhotoInformation** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 336 "PhotoFileSniffer.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = NULL;
+#line 342 "PhotoFileSniffer.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = value->data[0].v_pointer;
+#line 346 "PhotoFileSniffer.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = detected_photo_information_ref (value->data[0].v_pointer);
+#line 350 "PhotoFileSniffer.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return NULL;
+#line 354 "PhotoFileSniffer.c"
+}
+
+
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecDetectedPhotoInformation* spec;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_DETECTED_PHOTO_INFORMATION), NULL);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return G_PARAM_SPEC (spec);
+#line 368 "PhotoFileSniffer.c"
+}
+
+
+gpointer value_get_detected_photo_information (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DETECTED_PHOTO_INFORMATION), NULL);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return value->data[0].v_pointer;
+#line 377 "PhotoFileSniffer.c"
+}
+
+
+void value_set_detected_photo_information (GValue* value, gpointer v_object) {
+ DetectedPhotoInformation* old;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DETECTED_PHOTO_INFORMATION));
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DETECTED_PHOTO_INFORMATION));
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ detected_photo_information_ref (value->data[0].v_pointer);
+#line 397 "PhotoFileSniffer.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 401 "PhotoFileSniffer.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ detected_photo_information_unref (old);
+#line 407 "PhotoFileSniffer.c"
+ }
+}
+
+
+void value_take_detected_photo_information (GValue* value, gpointer v_object) {
+ DetectedPhotoInformation* old;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_DETECTED_PHOTO_INFORMATION));
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_DETECTED_PHOTO_INFORMATION));
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = v_object;
+#line 426 "PhotoFileSniffer.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 430 "PhotoFileSniffer.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ detected_photo_information_unref (old);
+#line 436 "PhotoFileSniffer.c"
+ }
+}
+
+
+static void detected_photo_information_class_init (DetectedPhotoInformationClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ detected_photo_information_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ ((DetectedPhotoInformationClass *) klass)->finalize = detected_photo_information_finalize;
+#line 446 "PhotoFileSniffer.c"
+}
+
+
+static void detected_photo_information_instance_init (DetectedPhotoInformation * self) {
+#line 8 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->file_format = PHOTO_FILE_FORMAT_UNKNOWN;
+#line 9 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->metadata = NULL;
+#line 10 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->md5 = NULL;
+#line 11 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->exif_md5 = NULL;
+#line 12 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->thumbnail_md5 = NULL;
+#line 13 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->format_name = NULL;
+#line 14 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ dimensions_init (&self->image_dim, 0, 0);
+#line 15 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->colorspace = GDK_COLORSPACE_RGB;
+#line 16 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->channels = 0;
+#line 17 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->bits_per_channel = 0;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->ref_count = 1;
+#line 473 "PhotoFileSniffer.c"
+}
+
+
+static void detected_photo_information_finalize (DetectedPhotoInformation* obj) {
+ DetectedPhotoInformation * self;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_signal_handlers_destroy (self);
+#line 9 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _media_metadata_unref0 (self->metadata);
+#line 10 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_free0 (self->md5);
+#line 11 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_free0 (self->exif_md5);
+#line 12 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_free0 (self->thumbnail_md5);
+#line 13 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_free0 (self->format_name);
+#line 493 "PhotoFileSniffer.c"
+}
+
+
+GType detected_photo_information_get_type (void) {
+ static volatile gsize detected_photo_information_type_id__volatile = 0;
+ if (g_once_init_enter (&detected_photo_information_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_detected_photo_information_init, value_detected_photo_information_free_value, value_detected_photo_information_copy_value, value_detected_photo_information_peek_pointer, "p", value_detected_photo_information_collect_value, "p", value_detected_photo_information_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (DetectedPhotoInformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) detected_photo_information_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DetectedPhotoInformation), 0, (GInstanceInitFunc) detected_photo_information_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType detected_photo_information_type_id;
+ detected_photo_information_type_id = g_type_register_fundamental (g_type_fundamental_next (), "DetectedPhotoInformation", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&detected_photo_information_type_id__volatile, detected_photo_information_type_id);
+ }
+ return detected_photo_information_type_id__volatile;
+}
+
+
+gpointer detected_photo_information_ref (gpointer instance) {
+ DetectedPhotoInformation* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return instance;
+#line 518 "PhotoFileSniffer.c"
+}
+
+
+void detected_photo_information_unref (gpointer instance) {
+ DetectedPhotoInformation* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ DETECTED_PHOTO_INFORMATION_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 531 "PhotoFileSniffer.c"
+ }
+}
+
+
+GType photo_file_sniffer_options_get_type (void) {
+ static volatile gsize photo_file_sniffer_options_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_sniffer_options_type_id__volatile)) {
+ static const GEnumValue values[] = {{PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL, "PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL", "get-all"}, {PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5, "PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5", "no-md5"}, {0, NULL, NULL}};
+ GType photo_file_sniffer_options_type_id;
+ photo_file_sniffer_options_type_id = g_enum_register_static ("PhotoFileSnifferOptions", values);
+ g_once_init_leave (&photo_file_sniffer_options_type_id__volatile, photo_file_sniffer_options_type_id);
+ }
+ return photo_file_sniffer_options_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 551 "PhotoFileSniffer.c"
+}
+
+
+PhotoFileSniffer* photo_file_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ PhotoFileSniffer* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ PhotoFileSnifferOptions _tmp2_ = 0;
+ PhotoFileSnifferOptions _tmp3_ = 0;
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self = (PhotoFileSniffer*) g_type_create_instance (object_type);
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp0_ = file;
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_object_unref0 (self->file);
+#line 43 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->file = _tmp1_;
+#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp2_ = options;
+#line 44 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->options = _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp3_ = options;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->calc_md5 = (_tmp3_ & PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5) == 0;
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return self;
+#line 583 "PhotoFileSniffer.c"
+}
+
+
+static DetectedPhotoInformation* photo_file_sniffer_real_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error) {
+#line 49 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_file_sniffer_sniff'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 49 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return NULL;
+#line 592 "PhotoFileSniffer.c"
+}
+
+
+DetectedPhotoInformation* photo_file_sniffer_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error) {
+#line 49 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_SNIFFER (self), NULL);
+#line 49 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return PHOTO_FILE_SNIFFER_GET_CLASS (self)->sniff (self, is_corrupted, error);
+#line 601 "PhotoFileSniffer.c"
+}
+
+
+static void value_photo_file_sniffer_init (GValue* value) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 608 "PhotoFileSniffer.c"
+}
+
+
+static void value_photo_file_sniffer_free_value (GValue* value) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (value->data[0].v_pointer) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_sniffer_unref (value->data[0].v_pointer);
+#line 617 "PhotoFileSniffer.c"
+ }
+}
+
+
+static void value_photo_file_sniffer_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (src_value->data[0].v_pointer) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ dest_value->data[0].v_pointer = photo_file_sniffer_ref (src_value->data[0].v_pointer);
+#line 627 "PhotoFileSniffer.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 631 "PhotoFileSniffer.c"
+ }
+}
+
+
+static gpointer value_photo_file_sniffer_peek_pointer (const GValue* value) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return value->data[0].v_pointer;
+#line 639 "PhotoFileSniffer.c"
+}
+
+
+static gchar* value_photo_file_sniffer_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (collect_values[0].v_pointer) {
+#line 646 "PhotoFileSniffer.c"
+ PhotoFileSniffer* object;
+ object = collect_values[0].v_pointer;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 653 "PhotoFileSniffer.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 657 "PhotoFileSniffer.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = photo_file_sniffer_ref (object);
+#line 661 "PhotoFileSniffer.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 665 "PhotoFileSniffer.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return NULL;
+#line 669 "PhotoFileSniffer.c"
+}
+
+
+static gchar* value_photo_file_sniffer_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoFileSniffer** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (!object_p) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 680 "PhotoFileSniffer.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (!value->data[0].v_pointer) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = NULL;
+#line 686 "PhotoFileSniffer.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = value->data[0].v_pointer;
+#line 690 "PhotoFileSniffer.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = photo_file_sniffer_ref (value->data[0].v_pointer);
+#line 694 "PhotoFileSniffer.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return NULL;
+#line 698 "PhotoFileSniffer.c"
+}
+
+
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoFileSniffer* spec;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_FILE_SNIFFER), NULL);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return G_PARAM_SPEC (spec);
+#line 712 "PhotoFileSniffer.c"
+}
+
+
+gpointer value_get_photo_file_sniffer (const GValue* value) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_SNIFFER), NULL);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return value->data[0].v_pointer;
+#line 721 "PhotoFileSniffer.c"
+}
+
+
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object) {
+ PhotoFileSniffer* old;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_SNIFFER));
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ old = value->data[0].v_pointer;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (v_object) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_SNIFFER));
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = v_object;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_sniffer_ref (value->data[0].v_pointer);
+#line 741 "PhotoFileSniffer.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 745 "PhotoFileSniffer.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (old) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_sniffer_unref (old);
+#line 751 "PhotoFileSniffer.c"
+ }
+}
+
+
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object) {
+ PhotoFileSniffer* old;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_SNIFFER));
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ old = value->data[0].v_pointer;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (v_object) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_SNIFFER));
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = v_object;
+#line 770 "PhotoFileSniffer.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 774 "PhotoFileSniffer.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (old) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_sniffer_unref (old);
+#line 780 "PhotoFileSniffer.c"
+ }
+}
+
+
+static void photo_file_sniffer_class_init (PhotoFileSnifferClass * klass) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ ((PhotoFileSnifferClass *) klass)->finalize = photo_file_sniffer_finalize;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ ((PhotoFileSnifferClass *) klass)->sniff = photo_file_sniffer_real_sniff;
+#line 792 "PhotoFileSniffer.c"
+}
+
+
+static void photo_file_sniffer_instance_init (PhotoFileSniffer * self) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->ref_count = 1;
+#line 799 "PhotoFileSniffer.c"
+}
+
+
+static void photo_file_sniffer_finalize (PhotoFileSniffer* obj) {
+ PhotoFileSniffer * self;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_signal_handlers_destroy (self);
+#line 38 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_object_unref0 (self->file);
+#line 811 "PhotoFileSniffer.c"
+}
+
+
+GType photo_file_sniffer_get_type (void) {
+ static volatile gsize photo_file_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_sniffer_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_file_sniffer_init, value_photo_file_sniffer_free_value, value_photo_file_sniffer_copy_value, value_photo_file_sniffer_peek_pointer, "p", value_photo_file_sniffer_collect_value, "p", value_photo_file_sniffer_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileSniffer), 0, (GInstanceInitFunc) photo_file_sniffer_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_file_sniffer_type_id;
+ photo_file_sniffer_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoFileSniffer", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_file_sniffer_type_id__volatile, photo_file_sniffer_type_id);
+ }
+ return photo_file_sniffer_type_id__volatile;
+}
+
+
+gpointer photo_file_sniffer_ref (gpointer instance) {
+ PhotoFileSniffer* self;
+ self = instance;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return instance;
+#line 836 "PhotoFileSniffer.c"
+}
+
+
+void photo_file_sniffer_unref (gpointer instance) {
+ PhotoFileSniffer* self;
+ self = instance;
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ PHOTO_FILE_SNIFFER_GET_CLASS (self)->finalize (self);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 849 "PhotoFileSniffer.c"
+ }
+}
+
+
+PhotoFileInterrogator* photo_file_interrogator_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ PhotoFileInterrogator* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ PhotoFileSnifferOptions _tmp2_ = 0;
+#line 67 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 67 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self = (PhotoFileInterrogator*) g_type_create_instance (object_type);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp0_ = file;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_object_unref0 (self->priv->file);
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv->file = _tmp1_;
+#line 70 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp2_ = options;
+#line 70 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv->options = _tmp2_;
+#line 67 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return self;
+#line 877 "PhotoFileSniffer.c"
+}
+
+
+PhotoFileInterrogator* photo_file_interrogator_new (GFile* file, PhotoFileSnifferOptions options) {
+#line 67 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return photo_file_interrogator_construct (TYPE_PHOTO_FILE_INTERROGATOR, file, options);
+#line 884 "PhotoFileSniffer.c"
+}
+
+
+static gpointer _detected_photo_information_ref0 (gpointer self) {
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return self ? detected_photo_information_ref (self) : NULL;
+#line 891 "PhotoFileSniffer.c"
+}
+
+
+DetectedPhotoInformation* photo_file_interrogator_get_detected_photo_information (PhotoFileInterrogator* self) {
+ DetectedPhotoInformation* result = NULL;
+ DetectedPhotoInformation* _tmp0_ = NULL;
+ DetectedPhotoInformation* _tmp1_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_INTERROGATOR (self), NULL);
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp0_ = self->priv->detected;
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp1_ = _detected_photo_information_ref0 (_tmp0_);
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ result = _tmp1_;
+#line 76 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return result;
+#line 909 "PhotoFileSniffer.c"
+}
+
+
+gboolean photo_file_interrogator_get_is_photo_corrupted (PhotoFileInterrogator* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (IS_PHOTO_FILE_INTERROGATOR (self), FALSE);
+#line 81 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp0_ = self->priv->is_photo_corrupted;
+#line 81 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ result = _tmp0_;
+#line 81 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return result;
+#line 924 "PhotoFileSniffer.c"
+}
+
+
+void photo_file_interrogator_interrogate (PhotoFileInterrogator* self, GError** error) {
+ gint _tmp0_ = 0;
+ PhotoFileFormat* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (IS_PHOTO_FILE_INTERROGATOR (self));
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp1_ = photo_file_format_get_supported (&_tmp0_);
+#line 936 "PhotoFileSniffer.c"
+ {
+ PhotoFileFormat* file_format_collection = NULL;
+ gint file_format_collection_length1 = 0;
+ gint _file_format_collection_size_ = 0;
+ gint file_format_it = 0;
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ file_format_collection = _tmp1_;
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ file_format_collection_length1 = _tmp0_;
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ for (file_format_it = 0; file_format_it < _tmp0_; file_format_it = file_format_it + 1) {
+#line 948 "PhotoFileSniffer.c"
+ PhotoFileFormat file_format = 0;
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ file_format = file_format_collection[file_format_it];
+#line 952 "PhotoFileSniffer.c"
+ {
+ PhotoFileSniffer* sniffer = NULL;
+ PhotoFileFormat _tmp2_ = 0;
+ GFile* _tmp3_ = NULL;
+ PhotoFileSnifferOptions _tmp4_ = 0;
+ PhotoFileSniffer* _tmp5_ = NULL;
+ gboolean is_corrupted = FALSE;
+ DetectedPhotoInformation* _tmp6_ = NULL;
+ PhotoFileSniffer* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ DetectedPhotoInformation* _tmp9_ = NULL;
+ DetectedPhotoInformation* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ DetectedPhotoInformation* _tmp12_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp2_ = file_format;
+#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp3_ = self->priv->file;
+#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp4_ = self->priv->options;
+#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp5_ = photo_file_format_create_sniffer (_tmp2_, _tmp3_, _tmp4_);
+#line 86 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ sniffer = _tmp5_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp7_ = sniffer;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp9_ = photo_file_sniffer_sniff (_tmp7_, &_tmp8_, &_inner_error_);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ is_corrupted = _tmp8_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp6_ = _tmp9_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_propagate_error (error, _inner_error_);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _photo_file_sniffer_unref0 (sniffer);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ file_format_collection = (g_free (file_format_collection), NULL);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return;
+#line 995 "PhotoFileSniffer.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp10_ = _tmp6_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp6_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _detected_photo_information_unref0 (self->priv->detected);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv->detected = _tmp10_;
+#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp12_ = self->priv->detected;
+#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (_tmp12_ != NULL) {
+#line 1009 "PhotoFileSniffer.c"
+ gboolean _tmp13_ = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp13_ = is_corrupted;
+#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp11_ = !_tmp13_;
+#line 1015 "PhotoFileSniffer.c"
+ } else {
+#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp11_ = FALSE;
+#line 1019 "PhotoFileSniffer.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (_tmp11_) {
+#line 1023 "PhotoFileSniffer.c"
+ DetectedPhotoInformation* _tmp14_ = NULL;
+ PhotoFileFormat _tmp15_ = 0;
+ PhotoFileFormat _tmp16_ = 0;
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp14_ = self->priv->detected;
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp15_ = _tmp14_->file_format;
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp16_ = file_format;
+#line 91 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _vala_assert (_tmp15_ == _tmp16_, "detected.file_format == file_format");
+#line 93 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _detected_photo_information_unref0 (_tmp6_);
+#line 93 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _photo_file_sniffer_unref0 (sniffer);
+#line 93 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ break;
+#line 1041 "PhotoFileSniffer.c"
+ } else {
+ gboolean _tmp17_ = FALSE;
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp17_ = is_corrupted;
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (_tmp17_) {
+#line 1048 "PhotoFileSniffer.c"
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp18_ = self->priv->file;
+#line 95 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp19_ = g_file_get_path (_tmp18_);
+#line 95 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _tmp20_ = _tmp19_;
+#line 95 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_message ("PhotoFileSniffer.vala:95: Sniffing halted for %s: potentially corrupte" \
+"d image file", _tmp20_);
+#line 95 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_free0 (_tmp20_);
+#line 96 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv->is_photo_corrupted = TRUE;
+#line 97 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _detected_photo_information_unref0 (self->priv->detected);
+#line 97 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv->detected = NULL;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _detected_photo_information_unref0 (_tmp6_);
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _photo_file_sniffer_unref0 (sniffer);
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ break;
+#line 1074 "PhotoFileSniffer.c"
+ }
+ }
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _detected_photo_information_unref0 (_tmp6_);
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _photo_file_sniffer_unref0 (sniffer);
+#line 1081 "PhotoFileSniffer.c"
+ }
+ }
+#line 85 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ file_format_collection = (g_free (file_format_collection), NULL);
+#line 1086 "PhotoFileSniffer.c"
+ }
+}
+
+
+static void value_photo_file_interrogator_init (GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 1094 "PhotoFileSniffer.c"
+}
+
+
+static void value_photo_file_interrogator_free_value (GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_interrogator_unref (value->data[0].v_pointer);
+#line 1103 "PhotoFileSniffer.c"
+ }
+}
+
+
+static void value_photo_file_interrogator_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (src_value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ dest_value->data[0].v_pointer = photo_file_interrogator_ref (src_value->data[0].v_pointer);
+#line 1113 "PhotoFileSniffer.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1117 "PhotoFileSniffer.c"
+ }
+}
+
+
+static gpointer value_photo_file_interrogator_peek_pointer (const GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return value->data[0].v_pointer;
+#line 1125 "PhotoFileSniffer.c"
+}
+
+
+static gchar* value_photo_file_interrogator_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (collect_values[0].v_pointer) {
+#line 1132 "PhotoFileSniffer.c"
+ PhotoFileInterrogator* object;
+ object = collect_values[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1139 "PhotoFileSniffer.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1143 "PhotoFileSniffer.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = photo_file_interrogator_ref (object);
+#line 1147 "PhotoFileSniffer.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 1151 "PhotoFileSniffer.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return NULL;
+#line 1155 "PhotoFileSniffer.c"
+}
+
+
+static gchar* value_photo_file_interrogator_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoFileInterrogator** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (!object_p) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1166 "PhotoFileSniffer.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (!value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = NULL;
+#line 1172 "PhotoFileSniffer.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1176 "PhotoFileSniffer.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ *object_p = photo_file_interrogator_ref (value->data[0].v_pointer);
+#line 1180 "PhotoFileSniffer.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return NULL;
+#line 1184 "PhotoFileSniffer.c"
+}
+
+
+GParamSpec* param_spec_photo_file_interrogator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoFileInterrogator* spec;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_FILE_INTERROGATOR), NULL);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return G_PARAM_SPEC (spec);
+#line 1198 "PhotoFileSniffer.c"
+}
+
+
+gpointer value_get_photo_file_interrogator (const GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_INTERROGATOR), NULL);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return value->data[0].v_pointer;
+#line 1207 "PhotoFileSniffer.c"
+}
+
+
+void value_set_photo_file_interrogator (GValue* value, gpointer v_object) {
+ PhotoFileInterrogator* old;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_INTERROGATOR));
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ old = value->data[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (v_object) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_INTERROGATOR));
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = v_object;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_interrogator_ref (value->data[0].v_pointer);
+#line 1227 "PhotoFileSniffer.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 1231 "PhotoFileSniffer.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (old) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_interrogator_unref (old);
+#line 1237 "PhotoFileSniffer.c"
+ }
+}
+
+
+void value_take_photo_file_interrogator (GValue* value, gpointer v_object) {
+ PhotoFileInterrogator* old;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_FILE_INTERROGATOR));
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ old = value->data[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (v_object) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_FILE_INTERROGATOR));
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = v_object;
+#line 1256 "PhotoFileSniffer.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ value->data[0].v_pointer = NULL;
+#line 1260 "PhotoFileSniffer.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (old) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_interrogator_unref (old);
+#line 1266 "PhotoFileSniffer.c"
+ }
+}
+
+
+static void photo_file_interrogator_class_init (PhotoFileInterrogatorClass * klass) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ photo_file_interrogator_parent_class = g_type_class_peek_parent (klass);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ ((PhotoFileInterrogatorClass *) klass)->finalize = photo_file_interrogator_finalize;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_type_class_add_private (klass, sizeof (PhotoFileInterrogatorPrivate));
+#line 1278 "PhotoFileSniffer.c"
+}
+
+
+static void photo_file_interrogator_instance_init (PhotoFileInterrogator * self) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv = PHOTO_FILE_INTERROGATOR_GET_PRIVATE (self);
+#line 64 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv->detected = NULL;
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->priv->is_photo_corrupted = FALSE;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self->ref_count = 1;
+#line 1291 "PhotoFileSniffer.c"
+}
+
+
+static void photo_file_interrogator_finalize (PhotoFileInterrogator* obj) {
+ PhotoFileInterrogator * self;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_FILE_INTERROGATOR, PhotoFileInterrogator);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_signal_handlers_destroy (self);
+#line 62 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _g_object_unref0 (self->priv->file);
+#line 64 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ _detected_photo_information_unref0 (self->priv->detected);
+#line 1305 "PhotoFileSniffer.c"
+}
+
+
+GType photo_file_interrogator_get_type (void) {
+ static volatile gsize photo_file_interrogator_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_file_interrogator_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_file_interrogator_init, value_photo_file_interrogator_free_value, value_photo_file_interrogator_copy_value, value_photo_file_interrogator_peek_pointer, "p", value_photo_file_interrogator_collect_value, "p", value_photo_file_interrogator_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoFileInterrogatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_file_interrogator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoFileInterrogator), 0, (GInstanceInitFunc) photo_file_interrogator_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_file_interrogator_type_id;
+ photo_file_interrogator_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoFileInterrogator", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&photo_file_interrogator_type_id__volatile, photo_file_interrogator_type_id);
+ }
+ return photo_file_interrogator_type_id__volatile;
+}
+
+
+gpointer photo_file_interrogator_ref (gpointer instance) {
+ PhotoFileInterrogator* self;
+ self = instance;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ return instance;
+#line 1330 "PhotoFileSniffer.c"
+}
+
+
+void photo_file_interrogator_unref (gpointer instance) {
+ PhotoFileInterrogator* self;
+ self = instance;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ PHOTO_FILE_INTERROGATOR_GET_CLASS (self)->finalize (self);
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoFileSniffer.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1343 "PhotoFileSniffer.c"
+ }
+}
+
+
+
diff --git a/src/photos/PhotoMetadata.c b/src/photos/PhotoMetadata.c
new file mode 100644
index 0000000..1418eb3
--- /dev/null
+++ b/src/photos/PhotoMetadata.c
@@ -0,0 +1,8924 @@
+/* PhotoMetadata.c generated by valac 0.32.1, the Vala compiler
+ * generated from PhotoMetadata.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/**/
+/* PhotoMetadata*/
+/**/
+/* PhotoMetadata is a wrapper class around gexiv2. The reasoning for this is (a) to facilitiate*/
+/* interface changes to meet Shotwell's requirements without needing modifications of the library*/
+/* itself, and (b) some requirements for this class (i.e. obtaining raw metadata) is not available*/
+/* in gexiv2, and so must be done by hand.*/
+/**/
+/* Although it's perceived that Exiv2 will remain Shotwell's metadata library of choice, this*/
+/* may change in the future, and so this wrapper helps with that as well.*/
+/**/
+/* There is no expectation of thread-safety in this class (yet).*/
+/**/
+/* Tags come from Exiv2's naming scheme:*/
+/* http://www.exiv2.org/metadata.html*/
+/**/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <gexiv2/gexiv2.h>
+#include <libexif/exif-data.h>
+#include <gee.h>
+#include <libexif/exif-mem.h>
+#include <float.h>
+#include <math.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_METADATA_DOMAIN (metadata_domain_get_type ())
+
+#define TYPE_HIERARCHICAL_KEYWORD_FIELD (hierarchical_keyword_field_get_type ())
+#define HIERARCHICAL_KEYWORD_FIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_KEYWORD_FIELD, HierarchicalKeywordField))
+#define HIERARCHICAL_KEYWORD_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_KEYWORD_FIELD, HierarchicalKeywordFieldClass))
+#define IS_HIERARCHICAL_KEYWORD_FIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_KEYWORD_FIELD))
+#define IS_HIERARCHICAL_KEYWORD_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_KEYWORD_FIELD))
+#define HIERARCHICAL_KEYWORD_FIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_KEYWORD_FIELD, HierarchicalKeywordFieldClass))
+
+typedef struct _HierarchicalKeywordField HierarchicalKeywordField;
+typedef struct _HierarchicalKeywordFieldClass HierarchicalKeywordFieldClass;
+typedef struct _HierarchicalKeywordFieldPrivate HierarchicalKeywordFieldPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _ParamSpecHierarchicalKeywordField ParamSpecHierarchicalKeywordField;
+
+#define TYPE_PHOTO_PREVIEW (photo_preview_get_type ())
+#define PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_PREVIEW, PhotoPreview))
+#define PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+#define IS_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_PREVIEW))
+#define IS_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_PREVIEW))
+#define PHOTO_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_PREVIEW, PhotoPreviewClass))
+
+typedef struct _PhotoPreview PhotoPreview;
+typedef struct _PhotoPreviewClass PhotoPreviewClass;
+typedef struct _PhotoPreviewPrivate PhotoPreviewPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _ParamSpecPhotoPreview ParamSpecPhotoPreview;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+typedef struct _MediaMetadataPrivate MediaMetadataPrivate;
+
+#define TYPE_METADATA_DATE_TIME (metadata_date_time_get_type ())
+#define METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTime))
+#define METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+#define IS_METADATA_DATE_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_METADATA_DATE_TIME))
+#define IS_METADATA_DATE_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_METADATA_DATE_TIME))
+#define METADATA_DATE_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_METADATA_DATE_TIME, MetadataDateTimeClass))
+
+typedef struct _MetadataDateTime MetadataDateTime;
+typedef struct _MetadataDateTimeClass MetadataDateTimeClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+typedef struct _PhotoMetadataPrivate PhotoMetadataPrivate;
+
+#define PHOTO_METADATA_TYPE_SET_OPTION (photo_metadata_set_option_get_type ())
+#define _gexiv2_metadata_free0(var) ((var == NULL) ? NULL : (var = (gexiv2_metadata_free (var), NULL)))
+#define _exif_data_unref0(var) ((var == NULL) ? NULL : (var = (exif_data_unref (var), NULL)))
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+typedef struct _Block1Data Block1Data;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+typedef struct _Block2Data Block2Data;
+typedef struct _Block3Data Block3Data;
+
+#define TYPE_METADATA_RATIONAL (metadata_rational_get_type ())
+typedef struct _MetadataRational MetadataRational;
+typedef struct _Block4Data Block4Data;
+#define _metadata_date_time_unref0(var) ((var == NULL) ? NULL : (var = (metadata_date_time_unref (var), NULL)))
+typedef struct _Block5Data Block5Data;
+#define _exif_mem_unref0(var) ((var == NULL) ? NULL : (var = (exif_mem_unref (var), NULL)))
+
+#define PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW (photo_metadata_internal_photo_preview_get_type ())
+#define PHOTO_METADATA_INTERNAL_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW, PhotoMetadataInternalPhotoPreview))
+#define PHOTO_METADATA_INTERNAL_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW, PhotoMetadataInternalPhotoPreviewClass))
+#define PHOTO_METADATA_IS_INTERNAL_PHOTO_PREVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW))
+#define PHOTO_METADATA_IS_INTERNAL_PHOTO_PREVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW))
+#define PHOTO_METADATA_INTERNAL_PHOTO_PREVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW, PhotoMetadataInternalPhotoPreviewClass))
+
+typedef struct _PhotoMetadataInternalPhotoPreview PhotoMetadataInternalPhotoPreview;
+typedef struct _PhotoMetadataInternalPhotoPreviewClass PhotoMetadataInternalPhotoPreviewClass;
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+#define _hierarchical_keyword_field_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_keyword_field_unref (var), NULL)))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+#define TYPE_RATING (rating_get_type ())
+typedef struct _PhotoMetadataInternalPhotoPreviewPrivate PhotoMetadataInternalPhotoPreviewPrivate;
+#define _gexiv2_preview_image_free0(var) ((var == NULL) ? NULL : (var = (gexiv2_preview_image_free (var), NULL)))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ METADATA_DOMAIN_UNKNOWN,
+ METADATA_DOMAIN_EXIF,
+ METADATA_DOMAIN_XMP,
+ METADATA_DOMAIN_IPTC
+} MetadataDomain;
+
+struct _HierarchicalKeywordField {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ HierarchicalKeywordFieldPrivate * priv;
+ gchar* field_name;
+ gchar* path_separator;
+ gboolean wants_leading_separator;
+ gboolean is_writeable;
+};
+
+struct _HierarchicalKeywordFieldClass {
+ GTypeClass parent_class;
+ void (*finalize) (HierarchicalKeywordField *self);
+};
+
+struct _ParamSpecHierarchicalKeywordField {
+ GParamSpec parent_instance;
+};
+
+struct _PhotoPreview {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoPreviewPrivate * priv;
+};
+
+struct _PhotoPreviewClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoPreview *self);
+ guint8* (*flatten) (PhotoPreview* self, int* result_length1, GError** error);
+ GdkPixbuf* (*get_pixbuf) (PhotoPreview* self, GError** error);
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _PhotoPreviewPrivate {
+ gchar* name;
+ Dimensions dimensions;
+ guint32 size;
+ gchar* mime_type;
+ gchar* extension;
+};
+
+struct _ParamSpecPhotoPreview {
+ GParamSpec parent_instance;
+};
+
+struct _MediaMetadata {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ MediaMetadataPrivate * priv;
+};
+
+struct _MediaMetadataClass {
+ GTypeClass parent_class;
+ void (*finalize) (MediaMetadata *self);
+ void (*read_from_file) (MediaMetadata* self, GFile* file, GError** error);
+ MetadataDateTime* (*get_creation_date_time) (MediaMetadata* self);
+ gchar* (*get_title) (MediaMetadata* self);
+ gchar* (*get_comment) (MediaMetadata* self);
+};
+
+struct _PhotoMetadata {
+ MediaMetadata parent_instance;
+ PhotoMetadataPrivate * priv;
+};
+
+struct _PhotoMetadataClass {
+ MediaMetadataClass parent_class;
+};
+
+struct _PhotoMetadataPrivate {
+ GExiv2Metadata* exiv2;
+ ExifData* exif;
+ gchar* source_name;
+};
+
+typedef enum {
+ PHOTO_METADATA_SET_OPTION_ALL_DOMAINS,
+ PHOTO_METADATA_SET_OPTION_ONLY_IF_DOMAIN_PRESENT,
+ PHOTO_METADATA_SET_OPTION_AT_LEAST_DEFAULT_DOMAIN
+} PhotoMetadataSetOption;
+
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+typedef void (*PhotoMetadataSetGenericValue) (const gchar* tag, void* user_data);
+struct _Block1Data {
+ int _ref_count_;
+ PhotoMetadata* self;
+ gchar* value;
+};
+
+struct _Block2Data {
+ int _ref_count_;
+ PhotoMetadata* self;
+ GeeCollection* values;
+};
+
+struct _Block3Data {
+ int _ref_count_;
+ PhotoMetadata* self;
+ glong value;
+};
+
+struct _MetadataRational {
+ gint numerator;
+ gint denominator;
+};
+
+struct _Block4Data {
+ int _ref_count_;
+ PhotoMetadata* self;
+ MetadataRational rational;
+};
+
+typedef enum {
+ METADATA_DATE_TIME_ERROR_INVALID_FORMAT,
+ METADATA_DATE_TIME_ERROR_UNSUPPORTED_FORMAT
+} MetadataDateTimeError;
+#define METADATA_DATE_TIME_ERROR metadata_date_time_error_quark ()
+struct _Block5Data {
+ int _ref_count_;
+ PhotoMetadata* self;
+ MetadataDateTime* date_time;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+struct _PhotoMetadataInternalPhotoPreview {
+ PhotoPreview parent_instance;
+ PhotoMetadataInternalPhotoPreviewPrivate * priv;
+ PhotoMetadata* owner;
+ guint number;
+};
+
+struct _PhotoMetadataInternalPhotoPreviewClass {
+ PhotoPreviewClass parent_class;
+};
+
+
+static gpointer hierarchical_keyword_field_parent_class = NULL;
+static gpointer photo_preview_parent_class = NULL;
+static gpointer photo_metadata_parent_class = NULL;
+static gchar** photo_metadata_DATE_TIME_TAGS;
+static gint photo_metadata_DATE_TIME_TAGS_length1;
+static gchar** photo_metadata_DATE_TIME_TAGS = NULL;
+static gint photo_metadata_DATE_TIME_TAGS_length1 = 0;
+static gint _photo_metadata_DATE_TIME_TAGS_size_ = 0;
+static gchar** photo_metadata_EXPOSURE_DATE_TIME_TAGS;
+static gint photo_metadata_EXPOSURE_DATE_TIME_TAGS_length1;
+static gchar** photo_metadata_EXPOSURE_DATE_TIME_TAGS = NULL;
+static gint photo_metadata_EXPOSURE_DATE_TIME_TAGS_length1 = 0;
+static gint _photo_metadata_EXPOSURE_DATE_TIME_TAGS_size_ = 0;
+static gchar** photo_metadata_DIGITIZED_DATE_TIME_TAGS;
+static gint photo_metadata_DIGITIZED_DATE_TIME_TAGS_length1;
+static gchar** photo_metadata_DIGITIZED_DATE_TIME_TAGS = NULL;
+static gint photo_metadata_DIGITIZED_DATE_TIME_TAGS_length1 = 0;
+static gint _photo_metadata_DIGITIZED_DATE_TIME_TAGS_size_ = 0;
+static gchar** photo_metadata_WIDTH_TAGS;
+static gint photo_metadata_WIDTH_TAGS_length1;
+static gchar** photo_metadata_WIDTH_TAGS = NULL;
+static gint photo_metadata_WIDTH_TAGS_length1 = 0;
+static gint _photo_metadata_WIDTH_TAGS_size_ = 0;
+extern gchar** photo_metadata_HEIGHT_TAGS;
+extern gint photo_metadata_HEIGHT_TAGS_length1;
+gchar** photo_metadata_HEIGHT_TAGS = NULL;
+gint photo_metadata_HEIGHT_TAGS_length1 = 0;
+static gchar** photo_metadata_STANDARD_TITLE_TAGS;
+static gint photo_metadata_STANDARD_TITLE_TAGS_length1;
+static gchar** photo_metadata_STANDARD_TITLE_TAGS = NULL;
+static gint photo_metadata_STANDARD_TITLE_TAGS_length1 = 0;
+static gint _photo_metadata_STANDARD_TITLE_TAGS_size_ = 0;
+static gchar** photo_metadata_KEYWORD_TAGS;
+static gint photo_metadata_KEYWORD_TAGS_length1;
+static gchar** photo_metadata_KEYWORD_TAGS = NULL;
+static gint photo_metadata_KEYWORD_TAGS_length1 = 0;
+static gint _photo_metadata_KEYWORD_TAGS_size_ = 0;
+static HierarchicalKeywordField** photo_metadata_HIERARCHICAL_KEYWORD_TAGS;
+static gint photo_metadata_HIERARCHICAL_KEYWORD_TAGS_length1;
+static HierarchicalKeywordField** photo_metadata_HIERARCHICAL_KEYWORD_TAGS = NULL;
+static gint photo_metadata_HIERARCHICAL_KEYWORD_TAGS_length1 = 0;
+static gint _photo_metadata_HIERARCHICAL_KEYWORD_TAGS_size_ = 0;
+static gchar** photo_metadata_ARTIST_TAGS;
+static gint photo_metadata_ARTIST_TAGS_length1;
+static gchar** photo_metadata_ARTIST_TAGS = NULL;
+static gint photo_metadata_ARTIST_TAGS_length1 = 0;
+static gint _photo_metadata_ARTIST_TAGS_size_ = 0;
+static gchar** photo_metadata_RATING_TAGS;
+static gint photo_metadata_RATING_TAGS_length1;
+static gchar** photo_metadata_RATING_TAGS = NULL;
+static gint photo_metadata_RATING_TAGS_length1 = 0;
+static gint _photo_metadata_RATING_TAGS_size_ = 0;
+static gpointer photo_metadata_internal_photo_preview_parent_class = NULL;
+
+GType metadata_domain_get_type (void) G_GNUC_CONST;
+gpointer hierarchical_keyword_field_ref (gpointer instance);
+void hierarchical_keyword_field_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_keyword_field (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_keyword_field (GValue* value, gpointer v_object);
+void value_take_hierarchical_keyword_field (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_keyword_field (const GValue* value);
+GType hierarchical_keyword_field_get_type (void) G_GNUC_CONST;
+enum {
+ HIERARCHICAL_KEYWORD_FIELD_DUMMY_PROPERTY
+};
+HierarchicalKeywordField* hierarchical_keyword_field_new (const gchar* field_name, const gchar* path_separator, gboolean wants_leading_separator, gboolean is_writeable);
+HierarchicalKeywordField* hierarchical_keyword_field_construct (GType object_type, const gchar* field_name, const gchar* path_separator, gboolean wants_leading_separator, gboolean is_writeable);
+static void hierarchical_keyword_field_finalize (HierarchicalKeywordField* obj);
+gpointer photo_preview_ref (gpointer instance);
+void photo_preview_unref (gpointer instance);
+GParamSpec* param_spec_photo_preview (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_preview (GValue* value, gpointer v_object);
+void value_take_photo_preview (GValue* value, gpointer v_object);
+gpointer value_get_photo_preview (const GValue* value);
+GType photo_preview_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+#define PHOTO_PREVIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_PREVIEW, PhotoPreviewPrivate))
+enum {
+ PHOTO_PREVIEW_DUMMY_PROPERTY
+};
+PhotoPreview* photo_preview_construct (GType object_type, const gchar* name, Dimensions* dimensions, guint32 size, const gchar* mime_type, const gchar* extension);
+gchar* photo_preview_get_name (PhotoPreview* self);
+void photo_preview_get_pixel_dimensions (PhotoPreview* self, Dimensions* result);
+guint32 photo_preview_get_size (PhotoPreview* self);
+gchar* photo_preview_get_mime_type (PhotoPreview* self);
+gchar* photo_preview_get_extension (PhotoPreview* self);
+guint8* photo_preview_flatten (PhotoPreview* self, int* result_length1, GError** error);
+static guint8* photo_preview_real_flatten (PhotoPreview* self, int* result_length1, GError** error);
+GdkPixbuf* photo_preview_get_pixbuf (PhotoPreview* self, GError** error);
+static GdkPixbuf* photo_preview_real_get_pixbuf (PhotoPreview* self, GError** error);
+static guint8* _vala_array_dup4 (guint8* self, int length);
+static void photo_preview_finalize (PhotoPreview* obj);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+gpointer metadata_date_time_ref (gpointer instance);
+void metadata_date_time_unref (gpointer instance);
+GParamSpec* param_spec_metadata_date_time (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_metadata_date_time (GValue* value, gpointer v_object);
+void value_take_metadata_date_time (GValue* value, gpointer v_object);
+gpointer value_get_metadata_date_time (const GValue* value);
+GType metadata_date_time_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+#define PHOTO_METADATA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PHOTO_METADATA, PhotoMetadataPrivate))
+enum {
+ PHOTO_METADATA_DUMMY_PROPERTY
+};
+GType photo_metadata_set_option_get_type (void) G_GNUC_CONST;
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+#define PHOTO_METADATA_PREPARE_STRING_OPTIONS (((((PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE) | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE)
+#define PHOTO_METADATA_IPHOTO_TITLE_TAG "Iptc.Application2.ObjectName"
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+MediaMetadata* media_metadata_construct (GType object_type);
+static void photo_metadata_real_read_from_file (MediaMetadata* base, GFile* file, GError** error);
+void photo_metadata_write_to_file (PhotoMetadata* self, GFile* file, GError** error);
+void photo_metadata_read_from_buffer (PhotoMetadata* self, guint8* buffer, int buffer_length1, gint length, GError** error);
+void photo_metadata_read_from_app1_segment (PhotoMetadata* self, guint8* buffer, int buffer_length1, gint length, GError** error);
+MetadataDomain photo_metadata_get_tag_domain (const gchar* tag);
+gboolean photo_metadata_has_domain (PhotoMetadata* self, MetadataDomain domain);
+gboolean photo_metadata_has_exif (PhotoMetadata* self);
+gboolean photo_metadata_has_xmp (PhotoMetadata* self);
+gboolean photo_metadata_has_iptc (PhotoMetadata* self);
+gboolean photo_metadata_can_write_to_domain (PhotoMetadata* self, MetadataDomain domain);
+gboolean photo_metadata_can_write_exif (PhotoMetadata* self);
+gboolean photo_metadata_can_write_xmp (PhotoMetadata* self);
+gboolean photo_metadata_can_write_iptc (PhotoMetadata* self);
+gboolean photo_metadata_has_tag (PhotoMetadata* self, const gchar* tag);
+static GeeSet* photo_metadata_create_string_set (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeCollection* photo_metadata_get_tags (PhotoMetadata* self, MetadataDomain domain, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeCollection* photo_metadata_get_all_tags (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+gchar* photo_metadata_get_tag_label (PhotoMetadata* self, const gchar* tag);
+gchar* photo_metadata_get_tag_description (PhotoMetadata* self, const gchar* tag);
+gchar* photo_metadata_get_string (PhotoMetadata* self, const gchar* tag, PrepareInputTextOptions options);
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+#define DEFAULT_USER_TEXT_INPUT_LENGTH 1024
+gchar* photo_metadata_get_string_interpreted (PhotoMetadata* self, const gchar* tag, PrepareInputTextOptions options);
+gchar* photo_metadata_get_first_string (PhotoMetadata* self, gchar** tags, int tags_length1);
+gchar* photo_metadata_get_first_string_interpreted (PhotoMetadata* self, gchar** tags, int tags_length1);
+GeeList* photo_metadata_get_string_multiple (PhotoMetadata* self, const gchar* tag);
+GeeList* photo_metadata_get_first_string_multiple (PhotoMetadata* self, gchar** tags, int tags_length1);
+void photo_metadata_set_string (PhotoMetadata* self, const gchar* tag, const gchar* value, PrepareInputTextOptions options);
+static void photo_metadata_set_all_generic (PhotoMetadata* self, gchar** tags, int tags_length1, PhotoMetadataSetOption option, PhotoMetadataSetGenericValue setter, void* setter_target);
+void photo_metadata_set_all_string (PhotoMetadata* self, gchar** tags, int tags_length1, const gchar* value, PhotoMetadataSetOption option);
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (void * _userdata_);
+static void __lambda5_ (Block1Data* _data1_, const gchar* tag);
+static void ___lambda5__photo_metadata_set_generic_value (const gchar* tag, gpointer self);
+void photo_metadata_set_string_multiple (PhotoMetadata* self, const gchar* tag, GeeCollection* collection);
+static void _vala_array_add45 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add46 (gchar*** array, int* length, int* size, gchar* value);
+void photo_metadata_set_all_string_multiple (PhotoMetadata* self, gchar** tags, int tags_length1, GeeCollection* values, PhotoMetadataSetOption option);
+static Block2Data* block2_data_ref (Block2Data* _data2_);
+static void block2_data_unref (void * _userdata_);
+static void __lambda6_ (Block2Data* _data2_, const gchar* tag);
+static void ___lambda6__photo_metadata_set_generic_value (const gchar* tag, gpointer self);
+gboolean photo_metadata_get_long (PhotoMetadata* self, const gchar* tag, glong* value);
+gboolean photo_metadata_get_first_long (PhotoMetadata* self, gchar** tags, int tags_length1, glong* value);
+void photo_metadata_set_long (PhotoMetadata* self, const gchar* tag, glong value);
+void photo_metadata_set_all_long (PhotoMetadata* self, gchar** tags, int tags_length1, glong value, PhotoMetadataSetOption option);
+static Block3Data* block3_data_ref (Block3Data* _data3_);
+static void block3_data_unref (void * _userdata_);
+static void __lambda7_ (Block3Data* _data3_, const gchar* tag);
+static void ___lambda7__photo_metadata_set_generic_value (const gchar* tag, gpointer self);
+GType metadata_rational_get_type (void) G_GNUC_CONST;
+MetadataRational* metadata_rational_dup (const MetadataRational* self);
+void metadata_rational_free (MetadataRational* self);
+gboolean photo_metadata_get_rational (PhotoMetadata* self, const gchar* tag, MetadataRational* rational);
+void metadata_rational_init (MetadataRational *self, gint numerator, gint denominator);
+gboolean photo_metadata_get_first_rational (PhotoMetadata* self, gchar** tags, int tags_length1, MetadataRational* rational);
+void photo_metadata_set_rational (PhotoMetadata* self, const gchar* tag, MetadataRational* rational);
+gchar* metadata_rational_to_string (MetadataRational *self);
+void photo_metadata_set_all_rational (PhotoMetadata* self, gchar** tags, int tags_length1, MetadataRational* rational, PhotoMetadataSetOption option);
+static Block4Data* block4_data_ref (Block4Data* _data4_);
+static void block4_data_unref (void * _userdata_);
+static void __lambda8_ (Block4Data* _data4_, const gchar* tag);
+static void ___lambda8__photo_metadata_set_generic_value (const gchar* tag, gpointer self);
+MetadataDateTime* photo_metadata_get_date_time (PhotoMetadata* self, const gchar* tag);
+GQuark metadata_date_time_error_quark (void);
+MetadataDateTime* metadata_date_time_new_from_xmp (const gchar* label, GError** error);
+MetadataDateTime* metadata_date_time_construct_from_xmp (GType object_type, const gchar* label, GError** error);
+MetadataDateTime* metadata_date_time_new_from_exif (const gchar* label, GError** error);
+MetadataDateTime* metadata_date_time_construct_from_exif (GType object_type, const gchar* label, GError** error);
+MetadataDateTime* photo_metadata_get_first_date_time (PhotoMetadata* self, gchar** tags, int tags_length1);
+void photo_metadata_set_date_time (PhotoMetadata* self, const gchar* tag, MetadataDateTime* date_time);
+gchar* metadata_date_time_get_exif_label (MetadataDateTime* self);
+gchar* metadata_date_time_get_xmp_label (MetadataDateTime* self);
+const gchar* metadata_domain_to_string (MetadataDomain self);
+void photo_metadata_set_all_date_time (PhotoMetadata* self, gchar** tags, int tags_length1, MetadataDateTime* date_time, PhotoMetadataSetOption option);
+static Block5Data* block5_data_ref (Block5Data* _data5_);
+static void block5_data_unref (void * _userdata_);
+static void __lambda9_ (Block5Data* _data5_, const gchar* tag);
+static void ___lambda9__photo_metadata_set_generic_value (const gchar* tag, gpointer self);
+guint8* photo_metadata_flatten_exif (PhotoMetadata* self, gboolean include_preview, int* result_length1);
+guint8* photo_metadata_flatten_exif_preview (PhotoMetadata* self, int* result_length1);
+static guint8* _vala_array_dup5 (guint8* self, int length);
+guint photo_metadata_get_preview_count (PhotoMetadata* self);
+PhotoPreview* photo_metadata_get_preview (PhotoMetadata* self, guint number);
+static PhotoMetadataInternalPhotoPreview* photo_metadata_internal_photo_preview_new (PhotoMetadata* owner, const gchar* name, guint number, GExiv2PreviewProperties* props);
+static PhotoMetadataInternalPhotoPreview* photo_metadata_internal_photo_preview_construct (GType object_type, PhotoMetadata* owner, const gchar* name, guint number, GExiv2PreviewProperties* props);
+static GType photo_metadata_internal_photo_preview_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+void photo_metadata_remove_exif_thumbnail (PhotoMetadata* self);
+void photo_metadata_remove_tag (PhotoMetadata* self, const gchar* tag);
+void photo_metadata_remove_tags (PhotoMetadata* self, gchar** tags, int tags_length1);
+void photo_metadata_clear_domain (PhotoMetadata* self, MetadataDomain domain);
+void photo_metadata_clear (PhotoMetadata* self);
+MetadataDateTime* photo_metadata_get_modification_date_time (PhotoMetadata* self);
+void photo_metadata_set_modification_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option);
+MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self);
+void photo_metadata_set_exposure_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option);
+MetadataDateTime* photo_metadata_get_digitized_date_time (PhotoMetadata* self);
+void photo_metadata_set_digitized_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option);
+static MetadataDateTime* photo_metadata_real_get_creation_date_time (MediaMetadata* base);
+Dimensions* photo_metadata_get_pixel_dimensions (PhotoMetadata* self);
+void dimensions_init (Dimensions *self, gint width, gint height);
+void photo_metadata_set_pixel_dimensions (PhotoMetadata* self, Dimensions* dim, PhotoMetadataSetOption option);
+static gchar* photo_metadata_real_get_title (MediaMetadata* base);
+gboolean is_string_empty (const gchar* s);
+void photo_metadata_set_title (PhotoMetadata* self, const gchar* title, PhotoMetadataSetOption option);
+static gchar* photo_metadata_real_get_comment (MediaMetadata* base);
+void photo_metadata_set_comment (PhotoMetadata* self, const gchar* comment);
+GeeSet* photo_metadata_get_keywords (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+gchar* hierarchical_tag_utilities_make_flat_tag_safe (const gchar* in_tag);
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+static void photo_metadata_internal_set_hierarchical_keywords (PhotoMetadata* self, HierarchicalTagIndex* index);
+GeeCollection* hierarchical_tag_index_get_all_paths (HierarchicalTagIndex* self);
+#define TAG_PATH_SEPARATOR_STRING "/"
+void photo_metadata_set_keywords (PhotoMetadata* self, GeeCollection* keywords, PhotoMetadataSetOption option);
+HierarchicalTagIndex* hierarchical_tag_index_new (void);
+HierarchicalTagIndex* hierarchical_tag_index_construct (GType object_type);
+GeeList* hierarchical_tag_utilities_enumerate_path_components (const gchar* in_path);
+void hierarchical_tag_index_add_path (HierarchicalTagIndex* self, const gchar* tag, const gchar* path);
+GeeCollection* hierarchical_tag_index_get_all_tags (HierarchicalTagIndex* self);
+gboolean photo_metadata_has_hierarchical_keywords (PhotoMetadata* self);
+GeeSet* photo_metadata_get_hierarchical_keywords (PhotoMetadata* self);
+gchar* hierarchical_tag_utilities_canonicalize (const gchar* in_tag, const gchar* foreign_separator);
+gboolean photo_metadata_has_orientation (PhotoMetadata* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+Orientation photo_metadata_get_orientation (PhotoMetadata* self);
+void photo_metadata_set_orientation (PhotoMetadata* self, Orientation orientation);
+gboolean photo_metadata_get_gps (PhotoMetadata* self, gdouble* longitude, gchar** long_ref, gdouble* latitude, gchar** lat_ref, gdouble* altitude);
+gboolean photo_metadata_get_exposure (PhotoMetadata* self, MetadataRational* exposure);
+gchar* photo_metadata_get_exposure_string (PhotoMetadata* self);
+gboolean metadata_rational_is_valid (MetadataRational *self);
+gboolean photo_metadata_get_iso (PhotoMetadata* self, glong* iso);
+gchar* photo_metadata_get_iso_string (PhotoMetadata* self);
+gboolean photo_metadata_get_aperture (PhotoMetadata* self, MetadataRational* aperture);
+gchar* photo_metadata_get_aperture_string (PhotoMetadata* self, gboolean pango_formatted);
+gchar* photo_metadata_get_camera_make (PhotoMetadata* self);
+gchar* photo_metadata_get_camera_model (PhotoMetadata* self);
+gboolean photo_metadata_get_flash (PhotoMetadata* self, glong* flash);
+gchar* photo_metadata_get_flash_string (PhotoMetadata* self);
+gboolean photo_metadata_get_focal_length (PhotoMetadata* self, MetadataRational* focal_length);
+gchar* photo_metadata_get_focal_length_string (PhotoMetadata* self);
+gchar* photo_metadata_get_artist (PhotoMetadata* self);
+gchar* photo_metadata_get_copyright (PhotoMetadata* self);
+gchar* photo_metadata_get_software (PhotoMetadata* self);
+void photo_metadata_set_software (PhotoMetadata* self, const gchar* software, const gchar* version);
+void photo_metadata_remove_software (PhotoMetadata* self);
+gchar* photo_metadata_get_exposure_bias (PhotoMetadata* self);
+GType rating_get_type (void) G_GNUC_CONST;
+Rating photo_metadata_get_rating (PhotoMetadata* self);
+Rating rating_unserialize (gint value);
+void photo_metadata_set_rating (PhotoMetadata* self, Rating rating);
+gint rating_serialize (Rating self);
+enum {
+ PHOTO_METADATA_INTERNAL_PHOTO_PREVIEW_DUMMY_PROPERTY
+};
+static guint8* photo_metadata_internal_photo_preview_real_flatten (PhotoPreview* base, int* result_length1, GError** error);
+static guint8* _vala_array_dup6 (guint8* self, int length);
+static void photo_metadata_internal_photo_preview_finalize (PhotoPreview* obj);
+static void photo_metadata_finalize (MediaMetadata* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+extern const gint RESOURCES_rating_thresholds[6];
+
+GType metadata_domain_get_type (void) {
+ static volatile gsize metadata_domain_type_id__volatile = 0;
+ if (g_once_init_enter (&metadata_domain_type_id__volatile)) {
+ static const GEnumValue values[] = {{METADATA_DOMAIN_UNKNOWN, "METADATA_DOMAIN_UNKNOWN", "unknown"}, {METADATA_DOMAIN_EXIF, "METADATA_DOMAIN_EXIF", "exif"}, {METADATA_DOMAIN_XMP, "METADATA_DOMAIN_XMP", "xmp"}, {METADATA_DOMAIN_IPTC, "METADATA_DOMAIN_IPTC", "iptc"}, {0, NULL, NULL}};
+ GType metadata_domain_type_id;
+ metadata_domain_type_id = g_enum_register_static ("MetadataDomain", values);
+ g_once_init_leave (&metadata_domain_type_id__volatile, metadata_domain_type_id);
+ }
+ return metadata_domain_type_id__volatile;
+}
+
+
+HierarchicalKeywordField* hierarchical_keyword_field_construct (GType object_type, const gchar* field_name, const gchar* path_separator, gboolean wants_leading_separator, gboolean is_writeable) {
+ HierarchicalKeywordField* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 37 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (field_name != NULL, NULL);
+#line 37 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (path_separator != NULL, NULL);
+#line 37 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = (HierarchicalKeywordField*) g_type_create_instance (object_type);
+#line 39 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = field_name;
+#line 39 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 39 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->field_name);
+#line 39 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->field_name = _tmp1_;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = path_separator;
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->path_separator);
+#line 40 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->path_separator = _tmp3_;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = wants_leading_separator;
+#line 41 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->wants_leading_separator = _tmp4_;
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = is_writeable;
+#line 42 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->is_writeable = _tmp5_;
+#line 37 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self;
+#line 676 "PhotoMetadata.c"
+}
+
+
+HierarchicalKeywordField* hierarchical_keyword_field_new (const gchar* field_name, const gchar* path_separator, gboolean wants_leading_separator, gboolean is_writeable) {
+#line 37 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return hierarchical_keyword_field_construct (TYPE_HIERARCHICAL_KEYWORD_FIELD, field_name, path_separator, wants_leading_separator, is_writeable);
+#line 683 "PhotoMetadata.c"
+}
+
+
+static void value_hierarchical_keyword_field_init (GValue* value) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 690 "PhotoMetadata.c"
+}
+
+
+static void value_hierarchical_keyword_field_free_value (GValue* value) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ hierarchical_keyword_field_unref (value->data[0].v_pointer);
+#line 699 "PhotoMetadata.c"
+ }
+}
+
+
+static void value_hierarchical_keyword_field_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ dest_value->data[0].v_pointer = hierarchical_keyword_field_ref (src_value->data[0].v_pointer);
+#line 709 "PhotoMetadata.c"
+ } else {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 713 "PhotoMetadata.c"
+ }
+}
+
+
+static gpointer value_hierarchical_keyword_field_peek_pointer (const GValue* value) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 721 "PhotoMetadata.c"
+}
+
+
+static gchar* value_hierarchical_keyword_field_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 728 "PhotoMetadata.c"
+ HierarchicalKeywordField* object;
+ object = collect_values[0].v_pointer;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 735 "PhotoMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 739 "PhotoMetadata.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = hierarchical_keyword_field_ref (object);
+#line 743 "PhotoMetadata.c"
+ } else {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 747 "PhotoMetadata.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 751 "PhotoMetadata.c"
+}
+
+
+static gchar* value_hierarchical_keyword_field_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ HierarchicalKeywordField** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!object_p) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 762 "PhotoMetadata.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *object_p = NULL;
+#line 768 "PhotoMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 772 "PhotoMetadata.c"
+ } else {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *object_p = hierarchical_keyword_field_ref (value->data[0].v_pointer);
+#line 776 "PhotoMetadata.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 780 "PhotoMetadata.c"
+}
+
+
+GParamSpec* param_spec_hierarchical_keyword_field (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecHierarchicalKeywordField* spec;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_HIERARCHICAL_KEYWORD_FIELD), NULL);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 794 "PhotoMetadata.c"
+}
+
+
+gpointer value_get_hierarchical_keyword_field (const GValue* value) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_KEYWORD_FIELD), NULL);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 803 "PhotoMetadata.c"
+}
+
+
+void value_set_hierarchical_keyword_field (GValue* value, gpointer v_object) {
+ HierarchicalKeywordField* old;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_KEYWORD_FIELD));
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (v_object) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HIERARCHICAL_KEYWORD_FIELD));
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ hierarchical_keyword_field_ref (value->data[0].v_pointer);
+#line 823 "PhotoMetadata.c"
+ } else {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 827 "PhotoMetadata.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (old) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ hierarchical_keyword_field_unref (old);
+#line 833 "PhotoMetadata.c"
+ }
+}
+
+
+void value_take_hierarchical_keyword_field (GValue* value, gpointer v_object) {
+ HierarchicalKeywordField* old;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_KEYWORD_FIELD));
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (v_object) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HIERARCHICAL_KEYWORD_FIELD));
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 852 "PhotoMetadata.c"
+ } else {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 856 "PhotoMetadata.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (old) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ hierarchical_keyword_field_unref (old);
+#line 862 "PhotoMetadata.c"
+ }
+}
+
+
+static void hierarchical_keyword_field_class_init (HierarchicalKeywordFieldClass * klass) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ hierarchical_keyword_field_parent_class = g_type_class_peek_parent (klass);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((HierarchicalKeywordFieldClass *) klass)->finalize = hierarchical_keyword_field_finalize;
+#line 872 "PhotoMetadata.c"
+}
+
+
+static void hierarchical_keyword_field_instance_init (HierarchicalKeywordField * self) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->ref_count = 1;
+#line 879 "PhotoMetadata.c"
+}
+
+
+static void hierarchical_keyword_field_finalize (HierarchicalKeywordField* obj) {
+ HierarchicalKeywordField * self;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HIERARCHICAL_KEYWORD_FIELD, HierarchicalKeywordField);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 32 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->field_name);
+#line 33 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->path_separator);
+#line 893 "PhotoMetadata.c"
+}
+
+
+GType hierarchical_keyword_field_get_type (void) {
+ static volatile gsize hierarchical_keyword_field_type_id__volatile = 0;
+ if (g_once_init_enter (&hierarchical_keyword_field_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_hierarchical_keyword_field_init, value_hierarchical_keyword_field_free_value, value_hierarchical_keyword_field_copy_value, value_hierarchical_keyword_field_peek_pointer, "p", value_hierarchical_keyword_field_collect_value, "p", value_hierarchical_keyword_field_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (HierarchicalKeywordFieldClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hierarchical_keyword_field_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HierarchicalKeywordField), 0, (GInstanceInitFunc) hierarchical_keyword_field_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType hierarchical_keyword_field_type_id;
+ hierarchical_keyword_field_type_id = g_type_register_fundamental (g_type_fundamental_next (), "HierarchicalKeywordField", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&hierarchical_keyword_field_type_id__volatile, hierarchical_keyword_field_type_id);
+ }
+ return hierarchical_keyword_field_type_id__volatile;
+}
+
+
+gpointer hierarchical_keyword_field_ref (gpointer instance) {
+ HierarchicalKeywordField* self;
+ self = instance;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return instance;
+#line 918 "PhotoMetadata.c"
+}
+
+
+void hierarchical_keyword_field_unref (gpointer instance) {
+ HierarchicalKeywordField* self;
+ self = instance;
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ HIERARCHICAL_KEYWORD_FIELD_GET_CLASS (self)->finalize (self);
+#line 31 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 931 "PhotoMetadata.c"
+ }
+}
+
+
+PhotoPreview* photo_preview_construct (GType object_type, const gchar* name, Dimensions* dimensions, guint32 size, const gchar* mime_type, const gchar* extension) {
+ PhotoPreview* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ Dimensions _tmp2_ = {0};
+ guint32 _tmp3_ = 0U;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 53 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (dimensions != NULL, NULL);
+#line 53 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (mime_type != NULL, NULL);
+#line 53 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (extension != NULL, NULL);
+#line 53 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = (PhotoPreview*) g_type_create_instance (object_type);
+#line 54 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = name;
+#line 54 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 54 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->name);
+#line 54 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->name = _tmp1_;
+#line 55 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = *dimensions;
+#line 55 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->dimensions = _tmp2_;
+#line 56 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = size;
+#line 56 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->size = _tmp3_;
+#line 57 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = mime_type;
+#line 57 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 57 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->mime_type);
+#line 57 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->mime_type = _tmp5_;
+#line 58 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = extension;
+#line 58 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 58 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->extension);
+#line 58 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->extension = _tmp7_;
+#line 53 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self;
+#line 990 "PhotoMetadata.c"
+}
+
+
+gchar* photo_preview_get_name (PhotoPreview* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_PREVIEW (self), NULL);
+#line 62 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->name;
+#line 62 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 62 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 62 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1008 "PhotoMetadata.c"
+}
+
+
+void photo_preview_get_pixel_dimensions (PhotoPreview* self, Dimensions* result) {
+ Dimensions _tmp0_ = {0};
+#line 65 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_PREVIEW (self));
+#line 66 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->dimensions;
+#line 66 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *result = _tmp0_;
+#line 66 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 1022 "PhotoMetadata.c"
+}
+
+
+guint32 photo_preview_get_size (PhotoPreview* self) {
+ guint32 result = 0U;
+ guint32 _tmp0_ = 0U;
+#line 69 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_PREVIEW (self), 0U);
+#line 70 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->size;
+#line 70 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 70 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1037 "PhotoMetadata.c"
+}
+
+
+gchar* photo_preview_get_mime_type (PhotoPreview* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_PREVIEW (self), NULL);
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->mime_type;
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 74 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1055 "PhotoMetadata.c"
+}
+
+
+gchar* photo_preview_get_extension (PhotoPreview* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_PREVIEW (self), NULL);
+#line 78 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->extension;
+#line 78 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 78 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 78 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1073 "PhotoMetadata.c"
+}
+
+
+static guint8* photo_preview_real_flatten (PhotoPreview* self, int* result_length1, GError** error) {
+#line 81 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_critical ("Type `%s' does not implement abstract method `photo_preview_flatten'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 81 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 1082 "PhotoMetadata.c"
+}
+
+
+guint8* photo_preview_flatten (PhotoPreview* self, int* result_length1, GError** error) {
+#line 81 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_PREVIEW (self), NULL);
+#line 81 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return PHOTO_PREVIEW_GET_CLASS (self)->flatten (self, result_length1, error);
+#line 1091 "PhotoMetadata.c"
+}
+
+
+static guint8* _vala_array_dup4 (guint8* self, int length) {
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 1098 "PhotoMetadata.c"
+}
+
+
+static GdkPixbuf* photo_preview_real_get_pixbuf (PhotoPreview* self, GError** error) {
+ GdkPixbuf* result = NULL;
+ guint8* flattened = NULL;
+ gint _tmp0_ = 0;
+ guint8* _tmp1_ = NULL;
+ gint flattened_length1 = 0;
+ gint _flattened_size_ = 0;
+ GError * _inner_error_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_preview_flatten (self, &_tmp0_, &_inner_error_);
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened = _tmp1_;
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened_length1 = _tmp0_;
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _flattened_size_ = flattened_length1;
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 84 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 1124 "PhotoMetadata.c"
+ }
+ {
+ GdkPixbuf* _tmp2_ = NULL;
+ guint8* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GMemoryInputStream* _tmp4_ = NULL;
+ GMemoryInputStream* _tmp5_ = NULL;
+ GdkPixbuf* _tmp6_ = NULL;
+ GdkPixbuf* _tmp7_ = NULL;
+ GdkPixbuf* _tmp8_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = (flattened != NULL) ? _vala_array_dup4 (flattened, flattened_length1) : ((gpointer) flattened);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3__length1 = flattened_length1;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = (GMemoryInputStream*) g_memory_input_stream_new_from_data (_tmp3_, _tmp3__length1, NULL);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp4_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = gdk_pixbuf_new_from_stream (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _tmp6_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_tmp5_);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = _tmp7_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1153 "PhotoMetadata.c"
+ goto __catch23_g_error;
+ }
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = _tmp2_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp8_;
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_tmp2_);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened = (g_free (flattened), NULL);
+#line 89 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1168 "PhotoMetadata.c"
+ }
+ goto __finally23;
+ __catch23_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ err = _inner_error_;
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _inner_error_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = self->priv->name;
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = err;
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = _tmp10_->message;
+#line 92 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:92: Unable to decode thumbnail for %s: %s", _tmp9_, _tmp11_);
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_error_free0 (err);
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened = (g_free (flattened), NULL);
+#line 94 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1197 "PhotoMetadata.c"
+ }
+ __finally23:
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened = (g_free (flattened), NULL);
+#line 88 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 1206 "PhotoMetadata.c"
+}
+
+
+GdkPixbuf* photo_preview_get_pixbuf (PhotoPreview* self, GError** error) {
+#line 83 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_PREVIEW (self), NULL);
+#line 83 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return PHOTO_PREVIEW_GET_CLASS (self)->get_pixbuf (self, error);
+#line 1215 "PhotoMetadata.c"
+}
+
+
+static void value_photo_preview_init (GValue* value) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1222 "PhotoMetadata.c"
+}
+
+
+static void value_photo_preview_free_value (GValue* value) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (value->data[0].v_pointer) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_preview_unref (value->data[0].v_pointer);
+#line 1231 "PhotoMetadata.c"
+ }
+}
+
+
+static void value_photo_preview_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (src_value->data[0].v_pointer) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ dest_value->data[0].v_pointer = photo_preview_ref (src_value->data[0].v_pointer);
+#line 1241 "PhotoMetadata.c"
+ } else {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1245 "PhotoMetadata.c"
+ }
+}
+
+
+static gpointer value_photo_preview_peek_pointer (const GValue* value) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 1253 "PhotoMetadata.c"
+}
+
+
+static gchar* value_photo_preview_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (collect_values[0].v_pointer) {
+#line 1260 "PhotoMetadata.c"
+ PhotoPreview* object;
+ object = collect_values[0].v_pointer;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1267 "PhotoMetadata.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1271 "PhotoMetadata.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = photo_preview_ref (object);
+#line 1275 "PhotoMetadata.c"
+ } else {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1279 "PhotoMetadata.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 1283 "PhotoMetadata.c"
+}
+
+
+static gchar* value_photo_preview_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PhotoPreview** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!object_p) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1294 "PhotoMetadata.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!value->data[0].v_pointer) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *object_p = NULL;
+#line 1300 "PhotoMetadata.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1304 "PhotoMetadata.c"
+ } else {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *object_p = photo_preview_ref (value->data[0].v_pointer);
+#line 1308 "PhotoMetadata.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 1312 "PhotoMetadata.c"
+}
+
+
+GParamSpec* param_spec_photo_preview (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecPhotoPreview* spec;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_PHOTO_PREVIEW), NULL);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return G_PARAM_SPEC (spec);
+#line 1326 "PhotoMetadata.c"
+}
+
+
+gpointer value_get_photo_preview (const GValue* value) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_PREVIEW), NULL);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return value->data[0].v_pointer;
+#line 1335 "PhotoMetadata.c"
+}
+
+
+void value_set_photo_preview (GValue* value, gpointer v_object) {
+ PhotoPreview* old;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_PREVIEW));
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (v_object) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_PREVIEW));
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_preview_ref (value->data[0].v_pointer);
+#line 1355 "PhotoMetadata.c"
+ } else {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1359 "PhotoMetadata.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (old) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_preview_unref (old);
+#line 1365 "PhotoMetadata.c"
+ }
+}
+
+
+void value_take_photo_preview (GValue* value, gpointer v_object) {
+ PhotoPreview* old;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PHOTO_PREVIEW));
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ old = value->data[0].v_pointer;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (v_object) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PHOTO_PREVIEW));
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = v_object;
+#line 1384 "PhotoMetadata.c"
+ } else {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value->data[0].v_pointer = NULL;
+#line 1388 "PhotoMetadata.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (old) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_preview_unref (old);
+#line 1394 "PhotoMetadata.c"
+ }
+}
+
+
+static void photo_preview_class_init (PhotoPreviewClass * klass) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_preview_parent_class = g_type_class_peek_parent (klass);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((PhotoPreviewClass *) klass)->finalize = photo_preview_finalize;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_type_class_add_private (klass, sizeof (PhotoPreviewPrivate));
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((PhotoPreviewClass *) klass)->flatten = photo_preview_real_flatten;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((PhotoPreviewClass *) klass)->get_pixbuf = photo_preview_real_get_pixbuf;
+#line 1410 "PhotoMetadata.c"
+}
+
+
+static void photo_preview_instance_init (PhotoPreview * self) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv = PHOTO_PREVIEW_GET_PRIVATE (self);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->ref_count = 1;
+#line 1419 "PhotoMetadata.c"
+}
+
+
+static void photo_preview_finalize (PhotoPreview* obj) {
+ PhotoPreview * self;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_PREVIEW, PhotoPreview);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_signal_handlers_destroy (self);
+#line 47 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->name);
+#line 50 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->mime_type);
+#line 51 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->extension);
+#line 1435 "PhotoMetadata.c"
+}
+
+
+GType photo_preview_get_type (void) {
+ static volatile gsize photo_preview_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_preview_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_photo_preview_init, value_photo_preview_free_value, value_photo_preview_copy_value, value_photo_preview_peek_pointer, "p", value_photo_preview_collect_value, "p", value_photo_preview_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoPreviewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_preview_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoPreview), 0, (GInstanceInitFunc) photo_preview_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType photo_preview_type_id;
+ photo_preview_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PhotoPreview", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&photo_preview_type_id__volatile, photo_preview_type_id);
+ }
+ return photo_preview_type_id__volatile;
+}
+
+
+gpointer photo_preview_ref (gpointer instance) {
+ PhotoPreview* self;
+ self = instance;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return instance;
+#line 1460 "PhotoMetadata.c"
+}
+
+
+void photo_preview_unref (gpointer instance) {
+ PhotoPreview* self;
+ self = instance;
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ PHOTO_PREVIEW_GET_CLASS (self)->finalize (self);
+#line 46 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1473 "PhotoMetadata.c"
+ }
+}
+
+
+GType photo_metadata_set_option_get_type (void) {
+ static volatile gsize photo_metadata_set_option_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_metadata_set_option_type_id__volatile)) {
+ static const GEnumValue values[] = {{PHOTO_METADATA_SET_OPTION_ALL_DOMAINS, "PHOTO_METADATA_SET_OPTION_ALL_DOMAINS", "all-domains"}, {PHOTO_METADATA_SET_OPTION_ONLY_IF_DOMAIN_PRESENT, "PHOTO_METADATA_SET_OPTION_ONLY_IF_DOMAIN_PRESENT", "only-if-domain-present"}, {PHOTO_METADATA_SET_OPTION_AT_LEAST_DEFAULT_DOMAIN, "PHOTO_METADATA_SET_OPTION_AT_LEAST_DEFAULT_DOMAIN", "at-least-default-domain"}, {0, NULL, NULL}};
+ GType photo_metadata_set_option_type_id;
+ photo_metadata_set_option_type_id = g_enum_register_static ("PhotoMetadataSetOption", values);
+ g_once_init_leave (&photo_metadata_set_option_type_id__volatile, photo_metadata_set_option_type_id);
+ }
+ return photo_metadata_set_option_type_id__volatile;
+}
+
+
+PhotoMetadata* photo_metadata_construct (GType object_type) {
+ PhotoMetadata* self = NULL;
+#line 139 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = (PhotoMetadata*) media_metadata_construct (object_type);
+#line 139 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self;
+#line 1496 "PhotoMetadata.c"
+}
+
+
+PhotoMetadata* photo_metadata_new (void) {
+#line 139 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return photo_metadata_construct (TYPE_PHOTO_METADATA);
+#line 1503 "PhotoMetadata.c"
+}
+
+
+static void photo_metadata_real_read_from_file (MediaMetadata* base, GFile* file, GError** error) {
+ PhotoMetadata * self;
+ GExiv2Metadata* _tmp0_ = NULL;
+ GExiv2Metadata* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ ExifData* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 142 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_METADATA, PhotoMetadata);
+#line 142 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 143 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = gexiv2_metadata_new ();
+#line 143 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _gexiv2_metadata_free0 (self->priv->exiv2);
+#line 143 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exiv2 = _tmp0_;
+#line 144 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_data_unref0 (self->priv->exif);
+#line 144 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exif = NULL;
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = self->priv->exiv2;
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = file;
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = _tmp3_;
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_open_path (_tmp1_, _tmp4_, &_inner_error_);
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp4_);
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 1553 "PhotoMetadata.c"
+ }
+#line 147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = file;
+#line 147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _tmp6_;
+#line 147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = exif_data_new_from_file (_tmp7_);
+#line 147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_data_unref0 (self->priv->exif);
+#line 147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exif = _tmp8_;
+#line 147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp7_);
+#line 148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = file;
+#line 148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = g_file_get_basename (_tmp9_);
+#line 148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->source_name);
+#line 148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->source_name = _tmp10_;
+#line 1577 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_write_to_file (PhotoMetadata* self, GFile* file, GError** error) {
+ GExiv2Metadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 151 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = file;
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_;
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_save_file (_tmp0_, _tmp3_, &_inner_error_);
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp3_);
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 152 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 1609 "PhotoMetadata.c"
+ }
+}
+
+
+void photo_metadata_read_from_buffer (PhotoMetadata* self, guint8* buffer, int buffer_length1, gint length, GError** error) {
+ gint _tmp0_ = 0;
+ guint8* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gint _tmp3_ = 0;
+ GExiv2Metadata* _tmp4_ = NULL;
+ GExiv2Metadata* _tmp5_ = NULL;
+ guint8* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ guint8* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ ExifData* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar* _tmp12_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 155 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 156 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = length;
+#line 156 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ <= 0) {
+#line 1637 "PhotoMetadata.c"
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 157 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = buffer;
+#line 157 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = buffer_length1;
+#line 157 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ length = _tmp1__length1;
+#line 1646 "PhotoMetadata.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = buffer;
+#line 159 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__length1 = buffer_length1;
+#line 159 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = length;
+#line 159 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_assert (_tmp2__length1 >= _tmp3_, "buffer.length >= length");
+#line 161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_new ();
+#line 161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _gexiv2_metadata_free0 (self->priv->exiv2);
+#line 161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exiv2 = _tmp4_;
+#line 162 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_data_unref0 (self->priv->exif);
+#line 162 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exif = NULL;
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = self->priv->exiv2;
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = buffer;
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6__length1 = buffer_length1;
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = length;
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_open_buf (_tmp5_, _tmp6_, (glong) _tmp7_, &_inner_error_);
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 1682 "PhotoMetadata.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = buffer;
+#line 165 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8__length1 = buffer_length1;
+#line 165 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = length;
+#line 165 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = exif_data_new_from_data (_tmp8_, (gsize) _tmp9_);
+#line 165 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_data_unref0 (self->priv->exif);
+#line 165 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exif = _tmp10_;
+#line 166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = length;
+#line 166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = g_strdup_printf ("<memory buffer %d bytes>", _tmp11_);
+#line 166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->source_name);
+#line 166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->source_name = _tmp12_;
+#line 1704 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_read_from_app1_segment (PhotoMetadata* self, guint8* buffer, int buffer_length1, gint length, GError** error) {
+ gint _tmp0_ = 0;
+ guint8* _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ gint _tmp3_ = 0;
+ GExiv2Metadata* _tmp4_ = NULL;
+ GExiv2Metadata* _tmp5_ = NULL;
+ guint8* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ guint8* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ ExifData* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gchar* _tmp12_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 170 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = length;
+#line 170 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ <= 0) {
+#line 1731 "PhotoMetadata.c"
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = buffer;
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = buffer_length1;
+#line 171 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ length = _tmp1__length1;
+#line 1740 "PhotoMetadata.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = buffer;
+#line 173 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__length1 = buffer_length1;
+#line 173 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = length;
+#line 173 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_assert (_tmp2__length1 >= _tmp3_, "buffer.length >= length");
+#line 175 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_new ();
+#line 175 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _gexiv2_metadata_free0 (self->priv->exiv2);
+#line 175 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exiv2 = _tmp4_;
+#line 176 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_data_unref0 (self->priv->exif);
+#line 176 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exif = NULL;
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = self->priv->exiv2;
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = buffer;
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6__length1 = buffer_length1;
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = length;
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_from_app1_segment (_tmp5_, _tmp6_, (glong) _tmp7_, &_inner_error_);
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_propagate_error (error, _inner_error_);
+#line 178 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 1776 "PhotoMetadata.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = buffer;
+#line 179 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8__length1 = buffer_length1;
+#line 179 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = length;
+#line 179 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = exif_data_new_from_data (_tmp8_, (gsize) _tmp9_);
+#line 179 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_data_unref0 (self->priv->exif);
+#line 179 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exif = _tmp10_;
+#line 180 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = length;
+#line 180 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = g_strdup_printf ("<app1 segment %d bytes>", _tmp11_);
+#line 180 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->source_name);
+#line 180 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->source_name = _tmp12_;
+#line 1798 "PhotoMetadata.c"
+}
+
+
+MetadataDomain photo_metadata_get_tag_domain (const gchar* tag) {
+ MetadataDomain result = 0;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 183 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, 0);
+#line 184 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 184 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = gexiv2_metadata_is_exif_tag (_tmp0_);
+#line 184 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp1_) {
+#line 185 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = METADATA_DOMAIN_EXIF;
+#line 185 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1822 "PhotoMetadata.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 187 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = gexiv2_metadata_is_xmp_tag (_tmp2_);
+#line 187 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp3_) {
+#line 188 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = METADATA_DOMAIN_XMP;
+#line 188 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1834 "PhotoMetadata.c"
+ }
+#line 190 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = tag;
+#line 190 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = gexiv2_metadata_is_iptc_tag (_tmp4_);
+#line 190 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp5_) {
+#line 191 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = METADATA_DOMAIN_IPTC;
+#line 191 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1846 "PhotoMetadata.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = METADATA_DOMAIN_UNKNOWN;
+#line 193 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1852 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_has_domain (PhotoMetadata* self, MetadataDomain domain) {
+ gboolean result = FALSE;
+ MetadataDomain _tmp0_ = 0;
+#line 196 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 197 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = domain;
+#line 197 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ switch (_tmp0_) {
+#line 197 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_EXIF:
+#line 1867 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 199 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = self->priv->exiv2;
+#line 199 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = gexiv2_metadata_has_exif (_tmp1_);
+#line 199 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp2_;
+#line 199 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1879 "PhotoMetadata.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_XMP:
+#line 1883 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 202 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = self->priv->exiv2;
+#line 202 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_has_xmp (_tmp3_);
+#line 202 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp4_;
+#line 202 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1895 "PhotoMetadata.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_IPTC:
+#line 1899 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 205 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = self->priv->exiv2;
+#line 205 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = gexiv2_metadata_has_iptc (_tmp5_);
+#line 205 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp6_;
+#line 205 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1911 "PhotoMetadata.c"
+ }
+ default:
+#line 197 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_UNKNOWN:
+#line 1916 "PhotoMetadata.c"
+ {
+#line 209 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 209 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1922 "PhotoMetadata.c"
+ }
+ }
+}
+
+
+gboolean photo_metadata_has_exif (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 213 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 214 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_has_domain (self, METADATA_DOMAIN_EXIF);
+#line 214 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 214 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1939 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_has_xmp (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 217 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 218 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_has_domain (self, METADATA_DOMAIN_XMP);
+#line 218 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 218 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1954 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_has_iptc (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 221 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 222 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_has_domain (self, METADATA_DOMAIN_IPTC);
+#line 222 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 222 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1969 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_can_write_to_domain (PhotoMetadata* self, MetadataDomain domain) {
+ gboolean result = FALSE;
+ MetadataDomain _tmp0_ = 0;
+#line 225 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 226 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = domain;
+#line 226 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ switch (_tmp0_) {
+#line 226 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_EXIF:
+#line 1984 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 228 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = self->priv->exiv2;
+#line 228 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = gexiv2_metadata_get_supports_exif (_tmp1_);
+#line 228 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp2_;
+#line 228 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 1996 "PhotoMetadata.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_XMP:
+#line 2000 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 231 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = self->priv->exiv2;
+#line 231 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_get_supports_xmp (_tmp3_);
+#line 231 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp4_;
+#line 231 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2012 "PhotoMetadata.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_IPTC:
+#line 2016 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 234 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = self->priv->exiv2;
+#line 234 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = gexiv2_metadata_get_supports_iptc (_tmp5_);
+#line 234 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp6_;
+#line 234 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2028 "PhotoMetadata.c"
+ }
+ default:
+#line 226 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_UNKNOWN:
+#line 2033 "PhotoMetadata.c"
+ {
+#line 238 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 238 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2039 "PhotoMetadata.c"
+ }
+ }
+}
+
+
+gboolean photo_metadata_can_write_exif (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 242 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 243 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_can_write_to_domain (self, METADATA_DOMAIN_EXIF);
+#line 243 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 243 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2056 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_can_write_xmp (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 246 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 247 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_can_write_to_domain (self, METADATA_DOMAIN_XMP);
+#line 247 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 247 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2071 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_can_write_iptc (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 250 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 251 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_can_write_to_domain (self, METADATA_DOMAIN_IPTC);
+#line 251 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 251 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2086 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_has_tag (PhotoMetadata* self, const gchar* tag) {
+ gboolean result = FALSE;
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 254 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, FALSE);
+#line 255 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 255 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 255 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = gexiv2_metadata_has_tag (_tmp0_, _tmp1_);
+#line 255 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp2_;
+#line 255 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2109 "PhotoMetadata.c"
+}
+
+
+static GeeSet* photo_metadata_create_string_set (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify) {
+ GeeSet* result = NULL;
+ GCompareDataFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+#line 258 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 260 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = compare_func;
+#line 260 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__target = compare_func_target;
+#line 260 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ == NULL) {
+#line 2125 "PhotoMetadata.c"
+ GeeHashSet* _tmp1_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 261 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_SET, GeeSet);
+#line 261 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 261 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func = NULL;
+#line 261 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target = NULL;
+#line 261 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 261 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2141 "PhotoMetadata.c"
+ } else {
+ GCompareDataFunc _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ GDestroyNotify _tmp2__target_destroy_notify = NULL;
+ GeeTreeSet* _tmp3_ = NULL;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = compare_func;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__target = compare_func_target;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__target_destroy_notify = compare_func_target_destroy_notify;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, _tmp2_, _tmp2__target, _tmp2__target_destroy_notify);
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_SET, GeeSet);
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func = NULL;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target = NULL;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 263 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2169 "PhotoMetadata.c"
+ }
+#line 258 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 258 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func = NULL;
+#line 258 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target = NULL;
+#line 258 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 2179 "PhotoMetadata.c"
+}
+
+
+GeeCollection* photo_metadata_get_tags (PhotoMetadata* self, MetadataDomain domain, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify) {
+ GeeCollection* result = NULL;
+ gchar** tags = NULL;
+ gint tags_length1 = 0;
+ gint _tags_size_ = 0;
+ MetadataDomain _tmp0_ = 0;
+ gboolean _tmp10_ = FALSE;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ GeeCollection* collection = NULL;
+ GCompareDataFunc _tmp13_ = NULL;
+ void* _tmp13__target = NULL;
+ GDestroyNotify _tmp13__target_destroy_notify = NULL;
+ GeeSet* _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 266 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 268 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = NULL;
+#line 268 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags_length1 = 0;
+#line 268 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tags_size_ = tags_length1;
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = domain;
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ switch (_tmp0_) {
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_EXIF:
+#line 2213 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+#line 271 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = self->priv->exiv2;
+#line 271 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_ = gexiv2_metadata_get_exif_tags (_tmp1_);
+#line 271 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = (_vala_array_free (tags, tags_length1, (GDestroyNotify) g_free), NULL);
+#line 271 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = _tmp3_;
+#line 271 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags_length1 = _vala_array_length (_tmp2_);
+#line 271 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tags_size_ = tags_length1;
+#line 272 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 2232 "PhotoMetadata.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_XMP:
+#line 2236 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = self->priv->exiv2;
+#line 275 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = _tmp5_ = gexiv2_metadata_get_xmp_tags (_tmp4_);
+#line 275 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = (_vala_array_free (tags, tags_length1, (GDestroyNotify) g_free), NULL);
+#line 275 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = _tmp6_;
+#line 275 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags_length1 = _vala_array_length (_tmp5_);
+#line 275 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tags_size_ = tags_length1;
+#line 276 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 2255 "PhotoMetadata.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_IPTC:
+#line 2259 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp7_ = NULL;
+ gchar** _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+#line 279 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = self->priv->exiv2;
+#line 279 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = _tmp8_ = gexiv2_metadata_get_iptc_tags (_tmp7_);
+#line 279 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = (_vala_array_free (tags, tags_length1, (GDestroyNotify) g_free), NULL);
+#line 279 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = _tmp9_;
+#line 279 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags_length1 = _vala_array_length (_tmp8_);
+#line 279 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tags_size_ = tags_length1;
+#line 280 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 2278 "PhotoMetadata.c"
+ }
+ default:
+#line 269 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 2283 "PhotoMetadata.c"
+ }
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = tags;
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11__length1 = tags_length1;
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp11_ == NULL) {
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = TRUE;
+#line 2293 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = tags;
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12__length1 = tags_length1;
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = _tmp12__length1 == 0;
+#line 2303 "PhotoMetadata.c"
+ }
+#line 283 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp10_) {
+#line 284 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 284 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = (_vala_array_free (tags, tags_length1, (GDestroyNotify) g_free), NULL);
+#line 284 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 284 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func = NULL;
+#line 284 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target = NULL;
+#line 284 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 284 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2321 "PhotoMetadata.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = compare_func;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13__target = compare_func_target;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13__target_destroy_notify = compare_func_target_destroy_notify;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = photo_metadata_create_string_set (self, _tmp13_, _tmp13__target, _tmp13__target_destroy_notify);
+#line 286 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ collection = G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = tags;
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15__length1 = tags_length1;
+#line 2339 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp15_;
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp15__length1;
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp15__length1; tag_it = tag_it + 1) {
+#line 2351 "PhotoMetadata.c"
+ gchar* _tmp16_ = NULL;
+ gchar* tag = NULL;
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = g_strdup (tag_collection[tag_it]);
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp16_;
+#line 2358 "PhotoMetadata.c"
+ {
+ GeeCollection* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 288 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = collection;
+#line 288 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = tag;
+#line 288 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add (_tmp17_, _tmp18_);
+#line 287 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 2370 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = collection;
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tags = (_vala_array_free (tags, tags_length1, (GDestroyNotify) g_free), NULL);
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func = NULL;
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target = NULL;
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 290 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2388 "PhotoMetadata.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2395 "PhotoMetadata.c"
+}
+
+
+GeeCollection* photo_metadata_get_all_tags (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify) {
+ GeeCollection* result = NULL;
+ GeeCollection* all_tags = NULL;
+ GCompareDataFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ GDestroyNotify _tmp0__target_destroy_notify = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeCollection* exif_tags = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* xmp_tags = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GeeCollection* _tmp12_ = NULL;
+ GeeCollection* iptc_tags = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ GeeCollection* _tmp20_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ GeeCollection* _tmp31_ = NULL;
+#line 293 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 295 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = compare_func;
+#line 295 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__target = compare_func_target;
+#line 295 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__target_destroy_notify = compare_func_target_destroy_notify;
+#line 295 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 295 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_create_string_set (self, _tmp0_, _tmp0__target, _tmp0__target_destroy_notify);
+#line 295 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ all_tags = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 297 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = photo_metadata_get_tags (self, METADATA_DOMAIN_EXIF, NULL, NULL, NULL);
+#line 297 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ exif_tags = _tmp2_;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = exif_tags;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ != NULL) {
+#line 2445 "PhotoMetadata.c"
+ GeeCollection* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = exif_tags;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = gee_collection_get_size (_tmp5_);
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _tmp6_;
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp7_ > 0;
+#line 2457 "PhotoMetadata.c"
+ } else {
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = FALSE;
+#line 2461 "PhotoMetadata.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp3_) {
+#line 2465 "PhotoMetadata.c"
+ GeeCollection* _tmp8_ = NULL;
+ GeeCollection* _tmp9_ = NULL;
+#line 299 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = all_tags;
+#line 299 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = exif_tags;
+#line 299 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add_all (_tmp8_, _tmp9_);
+#line 2474 "PhotoMetadata.c"
+ }
+#line 301 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = photo_metadata_get_tags (self, METADATA_DOMAIN_XMP, NULL, NULL, NULL);
+#line 301 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ xmp_tags = _tmp10_;
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = xmp_tags;
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp12_ != NULL) {
+#line 2484 "PhotoMetadata.c"
+ GeeCollection* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = xmp_tags;
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = gee_collection_get_size (_tmp13_);
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = _tmp14_;
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = _tmp15_ > 0;
+#line 2496 "PhotoMetadata.c"
+ } else {
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = FALSE;
+#line 2500 "PhotoMetadata.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp11_) {
+#line 2504 "PhotoMetadata.c"
+ GeeCollection* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = all_tags;
+#line 303 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = xmp_tags;
+#line 303 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add_all (_tmp16_, _tmp17_);
+#line 2513 "PhotoMetadata.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = photo_metadata_get_tags (self, METADATA_DOMAIN_IPTC, NULL, NULL, NULL);
+#line 305 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ iptc_tags = _tmp18_;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = iptc_tags;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp20_ != NULL) {
+#line 2523 "PhotoMetadata.c"
+ GeeCollection* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = iptc_tags;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = gee_collection_get_size (_tmp21_);
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = _tmp22_;
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = _tmp23_ > 0;
+#line 2535 "PhotoMetadata.c"
+ } else {
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = FALSE;
+#line 2539 "PhotoMetadata.c"
+ }
+#line 306 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp19_) {
+#line 2543 "PhotoMetadata.c"
+ GeeCollection* _tmp24_ = NULL;
+ GeeCollection* _tmp25_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = all_tags;
+#line 307 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = iptc_tags;
+#line 307 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add_all (_tmp24_, _tmp25_);
+#line 2552 "PhotoMetadata.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = all_tags;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_ = gee_collection_get_size (_tmp27_);
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29_ = _tmp28_;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp29_ > 0) {
+#line 2562 "PhotoMetadata.c"
+ GeeCollection* _tmp30_ = NULL;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp30_ = all_tags;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = _tmp30_;
+#line 2568 "PhotoMetadata.c"
+ } else {
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = NULL;
+#line 2572 "PhotoMetadata.c"
+ }
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp31_ = _g_object_ref0 (_tmp26_);
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp31_;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (iptc_tags);
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (xmp_tags);
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (exif_tags);
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (all_tags);
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func = NULL;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target = NULL;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 309 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2596 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_tag_label (PhotoMetadata* self, const gchar* tag) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 312 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 312 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, NULL);
+#line 313 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 313 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = gexiv2_metadata_get_tag_label (_tmp0_);
+#line 313 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 313 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp2_;
+#line 313 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2619 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_tag_description (PhotoMetadata* self, const gchar* tag) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 316 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 316 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, NULL);
+#line 317 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 317 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = gexiv2_metadata_get_tag_description (_tmp0_);
+#line 317 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 317 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp2_;
+#line 317 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2642 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_string (PhotoMetadata* self, const gchar* tag, PrepareInputTextOptions options) {
+ gchar* result = NULL;
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ PrepareInputTextOptions _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 320 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 320 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, NULL);
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = gexiv2_metadata_get_tag_string (_tmp0_, _tmp1_);
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_;
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = options;
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = prepare_input_text (_tmp3_, _tmp4_, DEFAULT_USER_TEXT_INPUT_LENGTH);
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = _tmp5_;
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp3_);
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp6_;
+#line 321 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2679 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_string_interpreted (PhotoMetadata* self, const gchar* tag, PrepareInputTextOptions options) {
+ gchar* result = NULL;
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ PrepareInputTextOptions _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 324 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, NULL);
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = gexiv2_metadata_get_tag_interpreted_string (_tmp0_, _tmp1_);
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = options;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = prepare_input_text (_tmp3_, _tmp4_, DEFAULT_USER_TEXT_INPUT_LENGTH);
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = _tmp5_;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp3_);
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp6_;
+#line 325 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2716 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_first_string (PhotoMetadata* self, gchar** tags, int tags_length1) {
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 328 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 2730 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 2742 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 2749 "PhotoMetadata.c"
+ {
+ gchar* value = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 330 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 330 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = photo_metadata_get_string (self, _tmp2_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 330 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value = _tmp3_;
+#line 331 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = value;
+#line 331 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ != NULL) {
+#line 332 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = value;
+#line 332 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 332 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2771 "PhotoMetadata.c"
+ }
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 329 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 2777 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 335 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 335 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2785 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_first_string_interpreted (PhotoMetadata* self, gchar** tags, int tags_length1) {
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 338 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 2799 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 2811 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 2818 "PhotoMetadata.c"
+ {
+ gchar* value = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 340 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = photo_metadata_get_string_interpreted (self, _tmp2_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 340 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value = _tmp3_;
+#line 341 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = value;
+#line 341 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ != NULL) {
+#line 342 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = value;
+#line 342 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 342 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2840 "PhotoMetadata.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 339 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 2846 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 345 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 345 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2854 "PhotoMetadata.c"
+}
+
+
+GeeList* photo_metadata_get_string_multiple (PhotoMetadata* self, const gchar* tag) {
+ GeeList* result = NULL;
+ gchar** values = NULL;
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint values_length1 = 0;
+ gint _values_size_ = 0;
+ gboolean _tmp4_ = FALSE;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GeeList* list = NULL;
+ GeeArrayList* _tmp7_ = NULL;
+ GeeHashSet* collection = NULL;
+ GeeHashSet* _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GeeList* _tmp22_ = NULL;
+ GeeList* _tmp23_ = NULL;
+ gint _tmp24_ = 0;
+ gint _tmp25_ = 0;
+ GeeList* _tmp27_ = NULL;
+#line 354 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 354 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, NULL);
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_ = gexiv2_metadata_get_tag_multiple (_tmp0_, _tmp1_);
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = _tmp3_;
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values_length1 = _vala_array_length (_tmp2_);
+#line 355 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _values_size_ = values_length1;
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = values;
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = values_length1;
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp5_ == NULL) {
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = TRUE;
+#line 2905 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = values;
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6__length1 = values_length1;
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = _tmp6__length1 == 0;
+#line 2915 "PhotoMetadata.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_) {
+#line 357 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 357 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 357 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 2925 "PhotoMetadata.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 359 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ list = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_LIST, GeeList);
+#line 361 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 361 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ collection = _tmp8_;
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = values;
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9__length1 = values_length1;
+#line 2939 "PhotoMetadata.c"
+ {
+ gchar** value_collection = NULL;
+ gint value_collection_length1 = 0;
+ gint _value_collection_size_ = 0;
+ gint value_it = 0;
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value_collection = _tmp9_;
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value_collection_length1 = _tmp9__length1;
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (value_it = 0; value_it < _tmp9__length1; value_it = value_it + 1) {
+#line 2951 "PhotoMetadata.c"
+ gchar* _tmp10_ = NULL;
+ gchar* value = NULL;
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = g_strdup (value_collection[value_it]);
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value = _tmp10_;
+#line 2958 "PhotoMetadata.c"
+ {
+ gchar* prepped = NULL;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ const gchar* _tmp14_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = value;
+#line 363 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = prepare_input_text (_tmp11_, PHOTO_METADATA_PREPARE_STRING_OPTIONS, DEFAULT_USER_TEXT_INPUT_LENGTH);
+#line 363 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ prepped = _tmp12_;
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = prepped;
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp14_ != NULL) {
+#line 2975 "PhotoMetadata.c"
+ GeeHashSet* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = collection;
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = prepped;
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp16_);
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = !_tmp17_;
+#line 2987 "PhotoMetadata.c"
+ } else {
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = FALSE;
+#line 2991 "PhotoMetadata.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp13_) {
+#line 2995 "PhotoMetadata.c"
+ GeeList* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ GeeHashSet* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+#line 367 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = list;
+#line 367 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = prepped;
+#line 367 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), _tmp19_);
+#line 368 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = collection;
+#line 368 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = prepped;
+#line 368 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp21_);
+#line 3012 "PhotoMetadata.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (prepped);
+#line 362 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 3018 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = list;
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = _tmp24_;
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp25_ > 0) {
+#line 3030 "PhotoMetadata.c"
+ GeeList* _tmp26_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = list;
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = _tmp26_;
+#line 3036 "PhotoMetadata.c"
+ } else {
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = NULL;
+#line 3040 "PhotoMetadata.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = _g_object_ref0 (_tmp22_);
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp27_;
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (collection);
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (list);
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 372 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 3054 "PhotoMetadata.c"
+}
+
+
+GeeList* photo_metadata_get_first_string_multiple (PhotoMetadata* self, gchar** tags, int tags_length1) {
+ GeeList* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 381 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 3068 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 3080 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 3087 "PhotoMetadata.c"
+ {
+ GeeList* values = NULL;
+ const gchar* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeList* _tmp5_ = NULL;
+#line 383 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 383 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = photo_metadata_get_string_multiple (self, _tmp2_);
+#line 383 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = _tmp3_;
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = values;
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp5_ != NULL) {
+#line 3104 "PhotoMetadata.c"
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = values;
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = _tmp7_;
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = _tmp8_ > 0;
+#line 3116 "PhotoMetadata.c"
+ } else {
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = FALSE;
+#line 3120 "PhotoMetadata.c"
+ }
+#line 384 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_) {
+#line 385 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = values;
+#line 385 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 385 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 3130 "PhotoMetadata.c"
+ }
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (values);
+#line 382 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 3136 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 388 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 388 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 3144 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_string (PhotoMetadata* self, const gchar* tag, const gchar* value, PrepareInputTextOptions options) {
+ gchar* prepped = NULL;
+ const gchar* _tmp0_ = NULL;
+ PrepareInputTextOptions _tmp1_ = 0;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GExiv2Metadata* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 391 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 391 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 391 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (value != NULL);
+#line 392 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = value;
+#line 392 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = options;
+#line 392 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = prepare_input_text (_tmp0_, _tmp1_, DEFAULT_USER_TEXT_INPUT_LENGTH);
+#line 392 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ prepped = _tmp2_;
+#line 393 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = prepped;
+#line 393 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp3_ == NULL) {
+#line 3176 "PhotoMetadata.c"
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 394 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = tag;
+#line 394 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = value;
+#line 394 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:394: Not setting tag %s to string %s: invalid UTF-8", _tmp4_, _tmp5_);
+#line 396 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (prepped);
+#line 396 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 3189 "PhotoMetadata.c"
+ }
+#line 399 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = self->priv->exiv2;
+#line 399 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = tag;
+#line 399 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = prepped;
+#line 399 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = gexiv2_metadata_set_tag_string (_tmp6_, _tmp7_, _tmp8_);
+#line 399 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp9_) {
+#line 3201 "PhotoMetadata.c"
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 400 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = tag;
+#line 400 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = value;
+#line 400 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = self->priv->source_name;
+#line 400 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:400: Unable to set tag %s to string %s from source " \
+"%s", _tmp10_, _tmp11_, _tmp12_);
+#line 3213 "PhotoMetadata.c"
+ }
+#line 391 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (prepped);
+#line 3217 "PhotoMetadata.c"
+}
+
+
+static void photo_metadata_set_all_generic (PhotoMetadata* self, gchar** tags, int tags_length1, PhotoMetadataSetOption option, PhotoMetadataSetGenericValue setter, void* setter_target) {
+ gboolean written = FALSE;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ PhotoMetadataSetOption _tmp11_ = 0;
+#line 405 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 406 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ written = FALSE;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 3236 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 3248 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 3255 "PhotoMetadata.c"
+ {
+ gboolean _tmp2_ = FALSE;
+ PhotoMetadataSetOption _tmp3_ = 0;
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = option;
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp3_ == PHOTO_METADATA_SET_OPTION_ALL_DOMAINS) {
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = TRUE;
+#line 3265 "PhotoMetadata.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+ MetadataDomain _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = tag;
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = photo_metadata_get_tag_domain (_tmp4_);
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = photo_metadata_has_domain (self, _tmp5_);
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = _tmp6_;
+#line 3278 "PhotoMetadata.c"
+ }
+#line 408 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp2_) {
+#line 3282 "PhotoMetadata.c"
+ PhotoMetadataSetGenericValue _tmp7_ = NULL;
+ void* _tmp7__target = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 409 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = setter;
+#line 409 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7__target = setter_target;
+#line 409 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = tag;
+#line 409 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ (_tmp8_, _tmp7__target);
+#line 410 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ written = TRUE;
+#line 3296 "PhotoMetadata.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 3300 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = option;
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp11_ == PHOTO_METADATA_SET_OPTION_AT_LEAST_DEFAULT_DOMAIN) {
+#line 3308 "PhotoMetadata.c"
+ gboolean _tmp12_ = FALSE;
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = written;
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = !_tmp12_;
+#line 3314 "PhotoMetadata.c"
+ } else {
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = FALSE;
+#line 3318 "PhotoMetadata.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp10_) {
+#line 3322 "PhotoMetadata.c"
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = tags;
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13__length1 = tags_length1;
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = _tmp13__length1 > 0;
+#line 3331 "PhotoMetadata.c"
+ } else {
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = FALSE;
+#line 3335 "PhotoMetadata.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp9_) {
+#line 3339 "PhotoMetadata.c"
+ MetadataDomain default_domain = 0;
+ gchar** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ const gchar* _tmp15_ = NULL;
+ MetadataDomain _tmp16_ = 0;
+ PhotoMetadataSetGenericValue _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ gchar** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ const gchar* _tmp19_ = NULL;
+#line 415 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = tags;
+#line 415 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14__length1 = tags_length1;
+#line 415 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = _tmp14_[0];
+#line 415 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = photo_metadata_get_tag_domain (_tmp15_);
+#line 415 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ default_domain = _tmp16_;
+#line 418 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = setter;
+#line 418 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17__target = setter_target;
+#line 418 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = tags;
+#line 418 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18__length1 = tags_length1;
+#line 418 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = _tmp18_[0];
+#line 418 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ (_tmp19_, _tmp17__target);
+#line 3372 "PhotoMetadata.c"
+ {
+ gint ctr = 0;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ctr = 1;
+#line 3377 "PhotoMetadata.c"
+ {
+ gboolean _tmp20_ = FALSE;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = TRUE;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 3384 "PhotoMetadata.c"
+ gint _tmp22_ = 0;
+ gchar** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ gchar** _tmp24_ = NULL;
+ gint _tmp24__length1 = 0;
+ gint _tmp25_ = 0;
+ const gchar* _tmp26_ = NULL;
+ MetadataDomain _tmp27_ = 0;
+ MetadataDomain _tmp28_ = 0;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp20_) {
+#line 3396 "PhotoMetadata.c"
+ gint _tmp21_ = 0;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = ctr;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ctr = _tmp21_ + 1;
+#line 3402 "PhotoMetadata.c"
+ }
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = FALSE;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = ctr;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = tags;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23__length1 = tags_length1;
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!(_tmp22_ < _tmp23__length1)) {
+#line 421 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 3416 "PhotoMetadata.c"
+ }
+#line 422 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = tags;
+#line 422 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24__length1 = tags_length1;
+#line 422 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = ctr;
+#line 422 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = _tmp24_[_tmp25_];
+#line 422 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = photo_metadata_get_tag_domain (_tmp26_);
+#line 422 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_ = default_domain;
+#line 422 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp27_ == _tmp28_) {
+#line 3432 "PhotoMetadata.c"
+ PhotoMetadataSetGenericValue _tmp29_ = NULL;
+ void* _tmp29__target = NULL;
+ gchar** _tmp30_ = NULL;
+ gint _tmp30__length1 = 0;
+ gint _tmp31_ = 0;
+ const gchar* _tmp32_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29_ = setter;
+#line 423 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29__target = setter_target;
+#line 423 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp30_ = tags;
+#line 423 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp30__length1 = tags_length1;
+#line 423 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp31_ = ctr;
+#line 423 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp32_ = _tmp30_[_tmp31_];
+#line 423 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29_ (_tmp32_, _tmp29__target);
+#line 3453 "PhotoMetadata.c"
+ }
+ }
+ }
+ }
+ }
+}
+
+
+static Block1Data* block1_data_ref (Block1Data* _data1_) {
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_atomic_int_inc (&_data1_->_ref_count_);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return _data1_;
+#line 3467 "PhotoMetadata.c"
+}
+
+
+static void block1_data_unref (void * _userdata_) {
+ Block1Data* _data1_;
+ _data1_ = (Block1Data*) _userdata_;
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+#line 3476 "PhotoMetadata.c"
+ PhotoMetadata* self;
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data1_->self;
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_data1_->value);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _media_metadata_unref0 (self);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_slice_free (Block1Data, _data1_);
+#line 3486 "PhotoMetadata.c"
+ }
+}
+
+
+static void __lambda5_ (Block1Data* _data1_, const gchar* tag) {
+ PhotoMetadata* self;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data1_->self;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _data1_->value;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, _tmp0_, _tmp1_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 3505 "PhotoMetadata.c"
+}
+
+
+static void ___lambda5__photo_metadata_set_generic_value (const gchar* tag, gpointer self) {
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ __lambda5_ (self, tag);
+#line 3512 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_all_string (PhotoMetadata* self, gchar** tags, int tags_length1, const gchar* value, PhotoMetadataSetOption option) {
+ Block1Data* _data1_;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ PhotoMetadataSetOption _tmp3_ = 0;
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (value != NULL);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data1_ = g_slice_new0 (Block1Data);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data1_->_ref_count_ = 1;
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data1_->self = media_metadata_ref (self);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = value;
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_data1_->value);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data1_->value = _tmp1_;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tags;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__length1 = tags_length1;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = option;
+#line 429 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_generic (self, _tmp2_, _tmp2__length1, _tmp3_, ___lambda5__photo_metadata_set_generic_value, _data1_);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ block1_data_unref (_data1_);
+#line 428 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data1_ = NULL;
+#line 3553 "PhotoMetadata.c"
+}
+
+
+static void _vala_array_add45 (gchar*** array, int* length, int* size, gchar* value) {
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if ((*length) == (*size)) {
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 3564 "PhotoMetadata.c"
+ }
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (*array)[(*length)++] = value;
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (*array)[*length] = NULL;
+#line 3570 "PhotoMetadata.c"
+}
+
+
+static void _vala_array_add46 (gchar*** array, int* length, int* size, gchar* value) {
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if ((*length) == (*size)) {
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 3581 "PhotoMetadata.c"
+ }
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (*array)[(*length)++] = value;
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (*array)[*length] = NULL;
+#line 3587 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_string_multiple (PhotoMetadata* self, const gchar* tag, GeeCollection* collection) {
+ gchar** values = NULL;
+ gchar** _tmp0_ = NULL;
+ gint values_length1 = 0;
+ gint _values_size_ = 0;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+ GExiv2Metadata* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gboolean _tmp20_ = FALSE;
+#line 432 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 432 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 432 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (collection));
+#line 433 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 433 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = _tmp0_;
+#line 433 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values_length1 = 0;
+#line 433 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _values_size_ = values_length1;
+#line 3619 "PhotoMetadata.c"
+ {
+ GeeIterator* _value_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = collection;
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _value_it = _tmp2_;
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 3632 "PhotoMetadata.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gchar* value = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ gchar* prepped = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _value_it;
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp4_) {
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 3650 "PhotoMetadata.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _value_it;
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value = (gchar*) _tmp6_;
+#line 435 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = value;
+#line 435 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = prepare_input_text (_tmp7_, PHOTO_METADATA_PREPARE_STRING_OPTIONS, -1);
+#line 435 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ prepped = _tmp8_;
+#line 436 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = prepped;
+#line 436 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp9_ != NULL) {
+#line 3668 "PhotoMetadata.c"
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = values;
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10__length1 = values_length1;
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = prepped;
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 437 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_array_add45 (&values, &values_length1, &_values_size_, _tmp12_);
+#line 3683 "PhotoMetadata.c"
+ } else {
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 439 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = value;
+#line 439 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = tag;
+#line 439 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:439: Unable to set string %s to %s: invalid UTF-8", _tmp13_, _tmp14_);
+#line 3693 "PhotoMetadata.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (prepped);
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 3699 "PhotoMetadata.c"
+ }
+#line 434 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_value_it);
+#line 3703 "PhotoMetadata.c"
+ }
+#line 442 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = values;
+#line 442 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15__length1 = values_length1;
+#line 442 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp15__length1 == 0) {
+#line 443 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 443 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 3715 "PhotoMetadata.c"
+ }
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = values;
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16__length1 = values_length1;
+#line 449 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_array_add46 (&values, &values_length1, &_values_size_, NULL);
+#line 451 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = self->priv->exiv2;
+#line 451 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = tag;
+#line 451 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = values;
+#line 451 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19__length1 = values_length1;
+#line 451 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = gexiv2_metadata_set_tag_multiple (_tmp17_, _tmp18_, _tmp19_);
+#line 451 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp20_) {
+#line 3735 "PhotoMetadata.c"
+ gchar** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ const gchar* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 452 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = values;
+#line 452 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21__length1 = values_length1;
+#line 452 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = tag;
+#line 452 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = self->priv->source_name;
+#line 452 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:452: Unable to set %d strings to tag %s from source" \
+" %s", _tmp21__length1, _tmp22_, _tmp23_);
+#line 3750 "PhotoMetadata.c"
+ }
+#line 432 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = (_vala_array_free (values, values_length1, (GDestroyNotify) g_free), NULL);
+#line 3754 "PhotoMetadata.c"
+}
+
+
+static Block2Data* block2_data_ref (Block2Data* _data2_) {
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_atomic_int_inc (&_data2_->_ref_count_);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return _data2_;
+#line 3763 "PhotoMetadata.c"
+}
+
+
+static void block2_data_unref (void * _userdata_) {
+ Block2Data* _data2_;
+ _data2_ = (Block2Data*) _userdata_;
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
+#line 3772 "PhotoMetadata.c"
+ PhotoMetadata* self;
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data2_->self;
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_data2_->values);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _media_metadata_unref0 (self);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_slice_free (Block2Data, _data2_);
+#line 3782 "PhotoMetadata.c"
+ }
+}
+
+
+static void __lambda6_ (Block2Data* _data2_, const gchar* tag) {
+ PhotoMetadata* self;
+ const gchar* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data2_->self;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _data2_->values;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string_multiple (self, _tmp0_, _tmp1_);
+#line 3801 "PhotoMetadata.c"
+}
+
+
+static void ___lambda6__photo_metadata_set_generic_value (const gchar* tag, gpointer self) {
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ __lambda6_ (self, tag);
+#line 3808 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_all_string_multiple (PhotoMetadata* self, gchar** tags, int tags_length1, GeeCollection* values, PhotoMetadataSetOption option) {
+ Block2Data* _data2_;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ PhotoMetadataSetOption _tmp3_ = 0;
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (values));
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data2_ = g_slice_new0 (Block2Data);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data2_->_ref_count_ = 1;
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data2_->self = media_metadata_ref (self);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = values;
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_data2_->values);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data2_->values = _tmp1_;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tags;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__length1 = tags_length1;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = option;
+#line 456 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_generic (self, _tmp2_, _tmp2__length1, _tmp3_, ___lambda6__photo_metadata_set_generic_value, _data2_);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ block2_data_unref (_data2_);
+#line 455 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data2_ = NULL;
+#line 3849 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_long (PhotoMetadata* self, const gchar* tag, glong* value) {
+ glong _vala_value = 0L;
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GExiv2Metadata* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ glong _tmp4_ = 0L;
+#line 459 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 459 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, FALSE);
+#line 460 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 460 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_has_tag (self, _tmp0_);
+#line 460 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp1_) {
+#line 461 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_value = (glong) 0;
+#line 463 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 463 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (value) {
+#line 463 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *value = _vala_value;
+#line 3879 "PhotoMetadata.c"
+ }
+#line 463 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 3883 "PhotoMetadata.c"
+ }
+#line 466 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = self->priv->exiv2;
+#line 466 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = tag;
+#line 466 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_get_tag_long (_tmp2_, _tmp3_);
+#line 466 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_value = _tmp4_;
+#line 468 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = TRUE;
+#line 468 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (value) {
+#line 468 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *value = _vala_value;
+#line 3899 "PhotoMetadata.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 3903 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_first_long (PhotoMetadata* self, gchar** tags, int tags_length1, glong* value) {
+ glong _vala_value = 0L;
+ gboolean result = FALSE;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 471 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 3918 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 3930 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 3937 "PhotoMetadata.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ glong _tmp3_ = 0L;
+ gboolean _tmp4_ = FALSE;
+#line 473 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 473 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_get_long (self, _tmp2_, &_tmp3_);
+#line 473 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_value = _tmp3_;
+#line 473 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_) {
+#line 474 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = TRUE;
+#line 474 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 474 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (value) {
+#line 474 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *value = _vala_value;
+#line 3958 "PhotoMetadata.c"
+ }
+#line 474 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 3962 "PhotoMetadata.c"
+ }
+#line 472 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 3966 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 477 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_value = (glong) 0;
+#line 479 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 479 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (value) {
+#line 479 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *value = _vala_value;
+#line 3978 "PhotoMetadata.c"
+ }
+#line 479 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 3982 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_long (PhotoMetadata* self, const gchar* tag, glong value) {
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ glong _tmp2_ = 0L;
+ gboolean _tmp3_ = FALSE;
+#line 482 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 482 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 483 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 483 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 483 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = value;
+#line 483 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = gexiv2_metadata_set_tag_long (_tmp0_, _tmp1_, _tmp2_);
+#line 483 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp3_) {
+#line 4005 "PhotoMetadata.c"
+ const gchar* _tmp4_ = NULL;
+ glong _tmp5_ = 0L;
+ const gchar* _tmp6_ = NULL;
+#line 484 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = tag;
+#line 484 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = value;
+#line 484 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = self->priv->source_name;
+#line 484 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:484: Unable to set tag %s to long %ld from source %" \
+"s", _tmp4_, _tmp5_, _tmp6_);
+#line 4017 "PhotoMetadata.c"
+ }
+}
+
+
+static Block3Data* block3_data_ref (Block3Data* _data3_) {
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_atomic_int_inc (&_data3_->_ref_count_);
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return _data3_;
+#line 4027 "PhotoMetadata.c"
+}
+
+
+static void block3_data_unref (void * _userdata_) {
+ Block3Data* _data3_;
+ _data3_ = (Block3Data*) _userdata_;
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
+#line 4036 "PhotoMetadata.c"
+ PhotoMetadata* self;
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data3_->self;
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _media_metadata_unref0 (self);
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_slice_free (Block3Data, _data3_);
+#line 4044 "PhotoMetadata.c"
+ }
+}
+
+
+static void __lambda7_ (Block3Data* _data3_, const gchar* tag) {
+ PhotoMetadata* self;
+ const gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data3_->self;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _data3_->value;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_long (self, _tmp0_, _tmp1_);
+#line 4063 "PhotoMetadata.c"
+}
+
+
+static void ___lambda7__photo_metadata_set_generic_value (const gchar* tag, gpointer self) {
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ __lambda7_ (self, tag);
+#line 4070 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_all_long (PhotoMetadata* self, gchar** tags, int tags_length1, glong value, PhotoMetadataSetOption option) {
+ Block3Data* _data3_;
+ glong _tmp0_ = 0L;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ PhotoMetadataSetOption _tmp2_ = 0;
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data3_ = g_slice_new0 (Block3Data);
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data3_->_ref_count_ = 1;
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data3_->self = media_metadata_ref (self);
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = value;
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data3_->value = _tmp0_;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tags;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = tags_length1;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = option;
+#line 488 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_generic (self, _tmp1_, _tmp1__length1, _tmp2_, ___lambda7__photo_metadata_set_generic_value, _data3_);
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ block3_data_unref (_data3_);
+#line 487 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data3_ = NULL;
+#line 4104 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_rational (PhotoMetadata* self, const gchar* tag, MetadataRational* rational) {
+ MetadataRational _vala_rational = {0};
+ gboolean result = FALSE;
+ gint numerator = 0;
+ gint denominator = 0;
+ gboolean _result_ = FALSE;
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+#line 491 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 491 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, FALSE);
+#line 493 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 493 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 493 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_get_exif_tag_rational (_tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
+#line 493 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ numerator = _tmp2_;
+#line 493 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ denominator = _tmp3_;
+#line 493 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _result_ = _tmp4_;
+#line 495 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ metadata_rational_init (&_vala_rational, numerator, denominator);
+#line 497 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _result_;
+#line 497 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (rational) {
+#line 497 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *rational = _vala_rational;
+#line 4143 "PhotoMetadata.c"
+ }
+#line 497 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4147 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_first_rational (PhotoMetadata* self, gchar** tags, int tags_length1, MetadataRational* rational) {
+ MetadataRational _vala_rational = {0};
+ gboolean result = FALSE;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 500 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 4162 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 4174 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 4181 "PhotoMetadata.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ MetadataRational _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+#line 502 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 502 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_get_rational (self, _tmp2_, &_tmp3_);
+#line 502 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_rational = _tmp3_;
+#line 502 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_) {
+#line 503 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = TRUE;
+#line 503 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 503 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (rational) {
+#line 503 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *rational = _vala_rational;
+#line 4202 "PhotoMetadata.c"
+ }
+#line 503 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4206 "PhotoMetadata.c"
+ }
+#line 501 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 4210 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 506 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ metadata_rational_init (&_vala_rational, 0, 0);
+#line 508 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 508 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (rational) {
+#line 508 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *rational = _vala_rational;
+#line 4222 "PhotoMetadata.c"
+ }
+#line 508 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4226 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_rational (PhotoMetadata* self, const gchar* tag, MetadataRational* rational) {
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ MetadataRational _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ MetadataRational _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+#line 511 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 511 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 511 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (rational != NULL);
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = *rational;
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_.numerator;
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = *rational;
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp4_.denominator;
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = gexiv2_metadata_set_exif_tag_rational (_tmp0_, _tmp1_, _tmp3_, _tmp5_);
+#line 512 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp6_) {
+#line 4260 "PhotoMetadata.c"
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 513 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = tag;
+#line 513 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = metadata_rational_to_string (rational);
+#line 513 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = _tmp8_;
+#line 513 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = self->priv->source_name;
+#line 513 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:513: Unable to set tag %s to rational %s from sourc" \
+"e %s", _tmp7_, _tmp9_, _tmp10_);
+#line 513 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp9_);
+#line 4277 "PhotoMetadata.c"
+ }
+}
+
+
+static Block4Data* block4_data_ref (Block4Data* _data4_) {
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_atomic_int_inc (&_data4_->_ref_count_);
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return _data4_;
+#line 4287 "PhotoMetadata.c"
+}
+
+
+static void block4_data_unref (void * _userdata_) {
+ Block4Data* _data4_;
+ _data4_ = (Block4Data*) _userdata_;
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
+#line 4296 "PhotoMetadata.c"
+ PhotoMetadata* self;
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data4_->self;
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _media_metadata_unref0 (self);
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_slice_free (Block4Data, _data4_);
+#line 4304 "PhotoMetadata.c"
+ }
+}
+
+
+static void __lambda8_ (Block4Data* _data4_, const gchar* tag) {
+ PhotoMetadata* self;
+ const gchar* _tmp0_ = NULL;
+ MetadataRational _tmp1_ = {0};
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data4_->self;
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _data4_->rational;
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_rational (self, _tmp0_, &_tmp1_);
+#line 4323 "PhotoMetadata.c"
+}
+
+
+static void ___lambda8__photo_metadata_set_generic_value (const gchar* tag, gpointer self) {
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ __lambda8_ (self, tag);
+#line 4330 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_all_rational (PhotoMetadata* self, gchar** tags, int tags_length1, MetadataRational* rational, PhotoMetadataSetOption option) {
+ Block4Data* _data4_;
+ MetadataRational _tmp0_ = {0};
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ PhotoMetadataSetOption _tmp2_ = 0;
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (rational != NULL);
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data4_ = g_slice_new0 (Block4Data);
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data4_->_ref_count_ = 1;
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data4_->self = media_metadata_ref (self);
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = *rational;
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data4_->rational = _tmp0_;
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tags;
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = tags_length1;
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = option;
+#line 519 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_generic (self, _tmp1_, _tmp1__length1, _tmp2_, ___lambda8__photo_metadata_set_generic_value, _data4_);
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ block4_data_unref (_data4_);
+#line 518 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data4_ = NULL;
+#line 4366 "PhotoMetadata.c"
+}
+
+
+MetadataDateTime* photo_metadata_get_date_time (PhotoMetadata* self, const gchar* tag) {
+ MetadataDateTime* result = NULL;
+ gchar* value = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 522 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 522 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (tag != NULL, NULL);
+#line 523 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 523 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_string (self, _tmp0_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 523 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ value = _tmp1_;
+#line 524 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = value;
+#line 524 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp2_ == NULL) {
+#line 525 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 525 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 525 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4397 "PhotoMetadata.c"
+ }
+ {
+ const gchar* _tmp3_ = NULL;
+ MetadataDomain _tmp4_ = 0;
+#line 528 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = tag;
+#line 528 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_get_tag_domain (_tmp3_);
+#line 528 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ switch (_tmp4_) {
+#line 528 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_XMP:
+#line 4410 "PhotoMetadata.c"
+ {
+ MetadataDateTime* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ MetadataDateTime* _tmp7_ = NULL;
+ MetadataDateTime* _tmp8_ = NULL;
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = value;
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = metadata_date_time_new_from_xmp (_tmp6_, &_inner_error_);
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp7_;
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4424 "PhotoMetadata.c"
+ goto __catch24_g_error;
+ }
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = _tmp5_;
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = NULL;
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp8_;
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _metadata_date_time_unref0 (_tmp5_);
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 530 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4439 "PhotoMetadata.c"
+ }
+#line 528 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_IPTC:
+#line 4443 "PhotoMetadata.c"
+ {
+#line 535 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 535 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 535 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4451 "PhotoMetadata.c"
+ }
+ default:
+#line 528 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_EXIF:
+#line 4456 "PhotoMetadata.c"
+ {
+ MetadataDateTime* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ MetadataDateTime* _tmp11_ = NULL;
+ MetadataDateTime* _tmp12_ = NULL;
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = value;
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = metadata_date_time_new_from_exif (_tmp10_, &_inner_error_);
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = _tmp11_;
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 4470 "PhotoMetadata.c"
+ goto __catch24_g_error;
+ }
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = _tmp9_;
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = NULL;
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp12_;
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _metadata_date_time_unref0 (_tmp9_);
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 539 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4485 "PhotoMetadata.c"
+ }
+ }
+ }
+ goto __finally24;
+ __catch24_g_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GError* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+#line 527 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ err = _inner_error_;
+#line 527 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _inner_error_ = NULL;
+#line 542 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = tag;
+#line 542 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = self->priv->source_name;
+#line 542 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = err;
+#line 542 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = _tmp15_->message;
+#line 542 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:542: Unable to read date/time %s from source %s: %s", _tmp13_, _tmp14_, _tmp16_);
+#line 544 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 544 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_error_free0 (err);
+#line 544 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 544 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4519 "PhotoMetadata.c"
+ }
+ __finally24:
+#line 527 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (value);
+#line 527 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 527 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_clear_error (&_inner_error_);
+#line 527 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return NULL;
+#line 4530 "PhotoMetadata.c"
+}
+
+
+MetadataDateTime* photo_metadata_get_first_date_time (PhotoMetadata* self, gchar** tags, int tags_length1) {
+ MetadataDateTime* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 548 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 4544 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 4556 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 4563 "PhotoMetadata.c"
+ {
+ MetadataDateTime* date_time = NULL;
+ const gchar* _tmp2_ = NULL;
+ MetadataDateTime* _tmp3_ = NULL;
+ MetadataDateTime* _tmp4_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 550 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = photo_metadata_get_date_time (self, _tmp2_);
+#line 550 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ date_time = _tmp3_;
+#line 551 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = date_time;
+#line 551 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ != NULL) {
+#line 552 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = date_time;
+#line 552 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 552 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4585 "PhotoMetadata.c"
+ }
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _metadata_date_time_unref0 (date_time);
+#line 549 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 4591 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 555 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 555 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4599 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_date_time (PhotoMetadata* self, const gchar* tag, MetadataDateTime* date_time) {
+ const gchar* _tmp0_ = NULL;
+ MetadataDomain _tmp1_ = 0;
+#line 558 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 558 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 558 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_METADATA_DATE_TIME (date_time));
+#line 559 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 559 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_tag_domain (_tmp0_);
+#line 559 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ switch (_tmp1_) {
+#line 559 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_EXIF:
+#line 4620 "PhotoMetadata.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ MetadataDateTime* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 561 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 561 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = date_time;
+#line 561 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = metadata_date_time_get_exif_label (_tmp3_);
+#line 561 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp4_;
+#line 561 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, _tmp2_, _tmp5_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 561 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp5_);
+#line 562 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 4640 "PhotoMetadata.c"
+ }
+#line 559 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_XMP:
+#line 4644 "PhotoMetadata.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ MetadataDateTime* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = tag;
+#line 565 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = date_time;
+#line 565 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = metadata_date_time_get_xmp_label (_tmp7_);
+#line 565 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = _tmp8_;
+#line 565 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, _tmp6_, _tmp9_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 565 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp9_);
+#line 566 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 4664 "PhotoMetadata.c"
+ }
+ default:
+#line 559 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_IPTC:
+#line 4669 "PhotoMetadata.c"
+ {
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ MetadataDomain _tmp13_ = 0;
+ GEnumValue* _tmp14_;
+#line 571 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = tag;
+#line 571 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = self->priv->source_name;
+#line 571 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = tag;
+#line 571 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = photo_metadata_get_tag_domain (_tmp12_);
+#line 572 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = g_enum_get_value (g_type_class_ref (TYPE_METADATA_DOMAIN), _tmp13_);
+#line 571 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_warning ("PhotoMetadata.vala:571: Cannot set date/time for %s from source %s: un" \
+"supported metadata domain %s", _tmp10_, _tmp11_, (_tmp14_ != NULL) ? _tmp14_->value_name : NULL);
+#line 573 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 4690 "PhotoMetadata.c"
+ }
+ }
+}
+
+
+static gpointer _metadata_date_time_ref0 (gpointer self) {
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self ? metadata_date_time_ref (self) : NULL;
+#line 4699 "PhotoMetadata.c"
+}
+
+
+static Block5Data* block5_data_ref (Block5Data* _data5_) {
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_atomic_int_inc (&_data5_->_ref_count_);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return _data5_;
+#line 4708 "PhotoMetadata.c"
+}
+
+
+static void block5_data_unref (void * _userdata_) {
+ Block5Data* _data5_;
+ _data5_ = (Block5Data*) _userdata_;
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) {
+#line 4717 "PhotoMetadata.c"
+ PhotoMetadata* self;
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data5_->self;
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _metadata_date_time_unref0 (_data5_->date_time);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _media_metadata_unref0 (self);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_slice_free (Block5Data, _data5_);
+#line 4727 "PhotoMetadata.c"
+ }
+}
+
+
+static void __lambda9_ (Block5Data* _data5_, const gchar* tag) {
+ PhotoMetadata* self;
+ const gchar* _tmp0_ = NULL;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = _data5_->self;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tag;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _data5_->date_time;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_date_time (self, _tmp0_, _tmp1_);
+#line 4746 "PhotoMetadata.c"
+}
+
+
+static void ___lambda9__photo_metadata_set_generic_value (const gchar* tag, gpointer self) {
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ __lambda9_ (self, tag);
+#line 4753 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_all_date_time (PhotoMetadata* self, gchar** tags, int tags_length1, MetadataDateTime* date_time, PhotoMetadataSetOption option) {
+ Block5Data* _data5_;
+ MetadataDateTime* _tmp0_ = NULL;
+ MetadataDateTime* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ PhotoMetadataSetOption _tmp3_ = 0;
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_METADATA_DATE_TIME (date_time));
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data5_ = g_slice_new0 (Block5Data);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data5_->_ref_count_ = 1;
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data5_->self = media_metadata_ref (self);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = date_time;
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _metadata_date_time_ref0 (_tmp0_);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _metadata_date_time_unref0 (_data5_->date_time);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data5_->date_time = _tmp1_;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tags;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__length1 = tags_length1;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = option;
+#line 578 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_generic (self, _tmp2_, _tmp2__length1, _tmp3_, ___lambda9__photo_metadata_set_generic_value, _data5_);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ block5_data_unref (_data5_);
+#line 577 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _data5_ = NULL;
+#line 4794 "PhotoMetadata.c"
+}
+
+
+guint8* photo_metadata_flatten_exif (PhotoMetadata* self, gboolean include_preview, int* result_length1) {
+ guint8* result = NULL;
+ ExifData* _tmp0_ = NULL;
+ guchar* thumbnail = NULL;
+ ExifData* _tmp2_ = NULL;
+ guchar* _tmp3_ = NULL;
+ guint thumbnail_size = 0U;
+ ExifData* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ gboolean _tmp6_ = FALSE;
+ guint8* flattened = NULL;
+ gint flattened_length1 = 0;
+ gint _flattened_size_ = 0;
+ guchar* saved_data = NULL;
+ guint saved_size = 0U;
+ ExifData* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ guint _tmp11_ = 0U;
+ ExifData* _tmp21_ = NULL;
+ guchar* _tmp22_ = NULL;
+ ExifData* _tmp23_ = NULL;
+ guint _tmp24_ = 0U;
+ guint8* _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+#line 582 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 583 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exif;
+#line 583 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ == NULL) {
+#line 4828 "PhotoMetadata.c"
+ guint8* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 584 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = NULL;
+#line 584 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = 0;
+#line 584 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (result_length1) {
+#line 584 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *result_length1 = _tmp1__length1;
+#line 4839 "PhotoMetadata.c"
+ }
+#line 584 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 584 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4845 "PhotoMetadata.c"
+ }
+#line 588 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = self->priv->exif;
+#line 588 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_->data;
+#line 588 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ thumbnail = _tmp3_;
+#line 589 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = self->priv->exif;
+#line 589 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp4_->size;
+#line 589 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ thumbnail_size = _tmp5_;
+#line 590 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = include_preview;
+#line 590 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp6_) {
+#line 4863 "PhotoMetadata.c"
+ ExifData* _tmp7_ = NULL;
+ ExifData* _tmp8_ = NULL;
+#line 591 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = self->priv->exif;
+#line 591 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_->data = NULL;
+#line 592 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = self->priv->exif;
+#line 592 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_->size = (guint) 0;
+#line 4874 "PhotoMetadata.c"
+ }
+#line 595 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened = NULL;
+#line 595 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened_length1 = 0;
+#line 595 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _flattened_size_ = flattened_length1;
+#line 598 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ saved_data = NULL;
+#line 599 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ saved_size = (guint) 0;
+#line 600 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = self->priv->exif;
+#line 600 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ exif_data_save_data (_tmp9_, &saved_data, &saved_size);
+#line 601 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = saved_size;
+#line 601 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp11_ > ((guint) 0)) {
+#line 4894 "PhotoMetadata.c"
+ guchar* _tmp12_ = NULL;
+#line 601 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = saved_data;
+#line 601 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = _tmp12_ != NULL;
+#line 4900 "PhotoMetadata.c"
+ } else {
+#line 601 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = FALSE;
+#line 4904 "PhotoMetadata.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp10_) {
+#line 4908 "PhotoMetadata.c"
+ guint _tmp13_ = 0U;
+ guint8* _tmp14_ = NULL;
+ guint8* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ guchar* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+ ExifMem* _tmp18_ = NULL;
+ ExifMem* _tmp19_ = NULL;
+ guchar* _tmp20_ = NULL;
+#line 602 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = saved_size;
+#line 602 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = g_new0 (guint8, _tmp13_);
+#line 602 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened = (g_free (flattened), NULL);
+#line 602 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened = _tmp14_;
+#line 602 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flattened_length1 = _tmp13_;
+#line 602 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _flattened_size_ = flattened_length1;
+#line 603 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = flattened;
+#line 603 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15__length1 = flattened_length1;
+#line 603 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = saved_data;
+#line 603 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = saved_size;
+#line 603 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ memcpy (_tmp15_, _tmp16_, (gsize) _tmp17_);
+#line 605 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = exif_mem_new_default ();
+#line 605 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = _tmp18_;
+#line 605 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = saved_data;
+#line 605 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ exif_mem_free (_tmp19_, _tmp20_);
+#line 605 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_mem_unref0 (_tmp19_);
+#line 4950 "PhotoMetadata.c"
+ }
+#line 609 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = self->priv->exif;
+#line 609 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = thumbnail;
+#line 609 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_->data = _tmp22_;
+#line 610 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = self->priv->exif;
+#line 610 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = thumbnail_size;
+#line 610 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_->size = _tmp24_;
+#line 612 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = flattened;
+#line 612 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25__length1 = flattened_length1;
+#line 612 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (result_length1) {
+#line 612 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *result_length1 = _tmp25__length1;
+#line 4972 "PhotoMetadata.c"
+ }
+#line 612 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp25_;
+#line 612 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 4978 "PhotoMetadata.c"
+}
+
+
+static guint8* _vala_array_dup5 (guint8* self, int length) {
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 4985 "PhotoMetadata.c"
+}
+
+
+guint8* photo_metadata_flatten_exif_preview (PhotoMetadata* self, int* result_length1) {
+ guint8* result = NULL;
+ guchar* buffer = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ guchar* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gint __tmp0__size_ = 0;
+ GExiv2Metadata* _tmp1_ = NULL;
+ guchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ guint8* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ guint8* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 616 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = self->priv->exiv2;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_get_exif_thumbnail (_tmp1_, &_tmp2_, &_tmp3_);
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ buffer = (g_free (buffer), NULL);
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ buffer = _tmp2_;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ buffer_length1 = _tmp3_;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _buffer_size_ = buffer_length1;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_) {
+#line 5021 "PhotoMetadata.c"
+ guchar* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = buffer;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = buffer_length1;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = _tmp5_;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = _tmp5__length1;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ __tmp0__size_ = _tmp0__length1;
+#line 5034 "PhotoMetadata.c"
+ } else {
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = NULL;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = 0;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ __tmp0__size_ = _tmp0__length1;
+#line 5042 "PhotoMetadata.c"
+ }
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = (_tmp0_ != NULL) ? _vala_array_dup5 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6__length1 = _tmp0__length1;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _tmp6_;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7__length1 = _tmp6__length1;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (result_length1) {
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *result_length1 = _tmp7__length1;
+#line 5056 "PhotoMetadata.c"
+ }
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp7_;
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ buffer = (g_free (buffer), NULL);
+#line 618 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5064 "PhotoMetadata.c"
+}
+
+
+guint photo_metadata_get_preview_count (PhotoMetadata* self) {
+ guint result = 0U;
+ GExiv2PreviewProperties** props = NULL;
+ GExiv2Metadata* _tmp0_ = NULL;
+ GExiv2PreviewProperties** _tmp1_ = NULL;
+ GExiv2PreviewProperties** _tmp2_ = NULL;
+ gint props_length1 = 0;
+ gint _props_size_ = 0;
+ gint _tmp3_ = 0;
+ GExiv2PreviewProperties** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 621 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), 0U);
+#line 622 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 622 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = _tmp1_ = gexiv2_metadata_get_preview_properties (_tmp0_);
+#line 622 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ props = _tmp2_;
+#line 622 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ props_length1 = _vala_array_length (_tmp1_);
+#line 622 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _props_size_ = props_length1;
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = props;
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4__length1 = props_length1;
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ != NULL) {
+#line 5097 "PhotoMetadata.c"
+ GExiv2PreviewProperties** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = props;
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = props_length1;
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp5__length1;
+#line 5106 "PhotoMetadata.c"
+ } else {
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = 0;
+#line 5110 "PhotoMetadata.c"
+ }
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = (guint) _tmp3_;
+#line 624 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5116 "PhotoMetadata.c"
+}
+
+
+PhotoPreview* photo_metadata_get_preview (PhotoMetadata* self, guint number) {
+ PhotoPreview* result = NULL;
+ GExiv2PreviewProperties** props = NULL;
+ GExiv2Metadata* _tmp0_ = NULL;
+ GExiv2PreviewProperties** _tmp1_ = NULL;
+ GExiv2PreviewProperties** _tmp2_ = NULL;
+ gint props_length1 = 0;
+ gint _props_size_ = 0;
+ gboolean _tmp3_ = FALSE;
+ GExiv2PreviewProperties** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ const gchar* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ GExiv2PreviewProperties** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ guint _tmp10_ = 0U;
+ GExiv2PreviewProperties* _tmp11_ = NULL;
+ PhotoMetadataInternalPhotoPreview* _tmp12_ = NULL;
+#line 628 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 629 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 629 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = _tmp1_ = gexiv2_metadata_get_preview_properties (_tmp0_);
+#line 629 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ props = _tmp2_;
+#line 629 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ props_length1 = _vala_array_length (_tmp1_);
+#line 629 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _props_size_ = props_length1;
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = props;
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4__length1 = props_length1;
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ == NULL) {
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = TRUE;
+#line 5158 "PhotoMetadata.c"
+ } else {
+ GExiv2PreviewProperties** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ guint _tmp6_ = 0U;
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = props;
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = props_length1;
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = number;
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = ((guint) _tmp5__length1) <= _tmp6_;
+#line 5171 "PhotoMetadata.c"
+ }
+#line 630 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp3_) {
+#line 631 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 631 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5179 "PhotoMetadata.c"
+ }
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = self->priv->source_name;
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = number;
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = props;
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9__length1 = props_length1;
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = number;
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = _tmp9_[_tmp10_];
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = photo_metadata_internal_photo_preview_new (self, _tmp7_, _tmp8_, _tmp11_);
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_PHOTO_PREVIEW, PhotoPreview);
+#line 633 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5199 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_remove_exif_thumbnail (PhotoMetadata* self) {
+ GExiv2Metadata* _tmp0_ = NULL;
+ ExifData* _tmp1_ = NULL;
+#line 636 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 637 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 637 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_erase_exif_thumbnail (_tmp0_);
+#line 638 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = self->priv->exif;
+#line 638 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp1_ != NULL) {
+#line 5216 "PhotoMetadata.c"
+ ExifMem* _tmp2_ = NULL;
+ ExifMem* _tmp3_ = NULL;
+ ExifData* _tmp4_ = NULL;
+ guchar* _tmp5_ = NULL;
+ ExifData* _tmp6_ = NULL;
+ ExifData* _tmp7_ = NULL;
+#line 639 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = exif_mem_new_default ();
+#line 639 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_;
+#line 639 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = self->priv->exif;
+#line 639 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp4_->data;
+#line 639 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ exif_mem_free (_tmp3_, _tmp5_);
+#line 639 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_mem_unref0 (_tmp3_);
+#line 640 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = self->priv->exif;
+#line 640 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_->data = NULL;
+#line 641 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = self->priv->exif;
+#line 641 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_->size = (guint) 0;
+#line 5243 "PhotoMetadata.c"
+ }
+}
+
+
+void photo_metadata_remove_tag (PhotoMetadata* self, const gchar* tag) {
+ GExiv2Metadata* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 645 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 645 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (tag != NULL);
+#line 646 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 646 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = tag;
+#line 646 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_clear_tag (_tmp0_, _tmp1_);
+#line 5261 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_remove_tags (PhotoMetadata* self, gchar** tags, int tags_length1) {
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 649 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = tags;
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = tags_length1;
+#line 5274 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 5286 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 5293 "PhotoMetadata.c"
+ {
+ const gchar* _tmp2_ = NULL;
+#line 651 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 651 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tag (self, _tmp2_);
+#line 650 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 5302 "PhotoMetadata.c"
+ }
+ }
+ }
+}
+
+
+void photo_metadata_clear_domain (PhotoMetadata* self, MetadataDomain domain) {
+ MetadataDomain _tmp0_ = 0;
+#line 654 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 655 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = domain;
+#line 655 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ switch (_tmp0_) {
+#line 655 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_EXIF:
+#line 5319 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp1_ = NULL;
+#line 657 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = self->priv->exiv2;
+#line 657 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_clear_exif (_tmp1_);
+#line 658 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 5328 "PhotoMetadata.c"
+ }
+#line 655 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_XMP:
+#line 5332 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp2_ = NULL;
+#line 661 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = self->priv->exiv2;
+#line 661 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_clear_xmp (_tmp2_);
+#line 662 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 5341 "PhotoMetadata.c"
+ }
+#line 655 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ case METADATA_DOMAIN_IPTC:
+#line 5345 "PhotoMetadata.c"
+ {
+ GExiv2Metadata* _tmp3_ = NULL;
+#line 665 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = self->priv->exiv2;
+#line 665 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_clear_iptc (_tmp3_);
+#line 666 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 5354 "PhotoMetadata.c"
+ }
+ default:
+#line 655 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 5359 "PhotoMetadata.c"
+ }
+}
+
+
+void photo_metadata_clear (PhotoMetadata* self) {
+ GExiv2Metadata* _tmp0_ = NULL;
+#line 670 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 671 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 671 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_clear (_tmp0_);
+#line 5372 "PhotoMetadata.c"
+}
+
+
+MetadataDateTime* photo_metadata_get_modification_date_time (PhotoMetadata* self) {
+ MetadataDateTime* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 680 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 681 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_DATE_TIME_TAGS;
+#line 681 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_DATE_TIME_TAGS_length1;
+#line 681 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_first_date_time (self, _tmp0_, _tmp0__length1);
+#line 681 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 681 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5393 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_modification_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option) {
+ MetadataDateTime* _tmp0_ = NULL;
+#line 684 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 684 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail ((date_time == NULL) || IS_METADATA_DATE_TIME (date_time));
+#line 686 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = date_time;
+#line 686 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ != NULL) {
+#line 5407 "PhotoMetadata.c"
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ MetadataDateTime* _tmp2_ = NULL;
+ PhotoMetadataSetOption _tmp3_ = 0;
+#line 687 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_DATE_TIME_TAGS;
+#line 687 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = photo_metadata_DATE_TIME_TAGS_length1;
+#line 687 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = date_time;
+#line 687 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = option;
+#line 687 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_date_time (self, _tmp1_, _tmp1__length1, _tmp2_, _tmp3_);
+#line 5422 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 689 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_DATE_TIME_TAGS;
+#line 689 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4__length1 = photo_metadata_DATE_TIME_TAGS_length1;
+#line 689 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tags (self, _tmp4_, _tmp4__length1);
+#line 5432 "PhotoMetadata.c"
+ }
+}
+
+
+MetadataDateTime* photo_metadata_get_exposure_date_time (PhotoMetadata* self) {
+ MetadataDateTime* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 701 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 702 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_EXPOSURE_DATE_TIME_TAGS;
+#line 702 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_EXPOSURE_DATE_TIME_TAGS_length1;
+#line 702 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_first_date_time (self, _tmp0_, _tmp0__length1);
+#line 702 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 702 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5454 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_exposure_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option) {
+ MetadataDateTime* _tmp0_ = NULL;
+#line 705 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 705 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail ((date_time == NULL) || IS_METADATA_DATE_TIME (date_time));
+#line 707 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = date_time;
+#line 707 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ != NULL) {
+#line 5468 "PhotoMetadata.c"
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ MetadataDateTime* _tmp2_ = NULL;
+ PhotoMetadataSetOption _tmp3_ = 0;
+#line 708 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_EXPOSURE_DATE_TIME_TAGS;
+#line 708 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = photo_metadata_EXPOSURE_DATE_TIME_TAGS_length1;
+#line 708 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = date_time;
+#line 708 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = option;
+#line 708 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_date_time (self, _tmp1_, _tmp1__length1, _tmp2_, _tmp3_);
+#line 5483 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 710 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_EXPOSURE_DATE_TIME_TAGS;
+#line 710 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4__length1 = photo_metadata_EXPOSURE_DATE_TIME_TAGS_length1;
+#line 710 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tags (self, _tmp4_, _tmp4__length1);
+#line 5493 "PhotoMetadata.c"
+ }
+}
+
+
+MetadataDateTime* photo_metadata_get_digitized_date_time (PhotoMetadata* self) {
+ MetadataDateTime* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 718 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 719 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_DIGITIZED_DATE_TIME_TAGS;
+#line 719 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_DIGITIZED_DATE_TIME_TAGS_length1;
+#line 719 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_first_date_time (self, _tmp0_, _tmp0__length1);
+#line 719 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 719 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5515 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_digitized_date_time (PhotoMetadata* self, MetadataDateTime* date_time, PhotoMetadataSetOption option) {
+ MetadataDateTime* _tmp0_ = NULL;
+#line 722 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 722 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail ((date_time == NULL) || IS_METADATA_DATE_TIME (date_time));
+#line 724 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = date_time;
+#line 724 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ != NULL) {
+#line 5529 "PhotoMetadata.c"
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ MetadataDateTime* _tmp2_ = NULL;
+ PhotoMetadataSetOption _tmp3_ = 0;
+#line 725 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_DIGITIZED_DATE_TIME_TAGS;
+#line 725 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = photo_metadata_DIGITIZED_DATE_TIME_TAGS_length1;
+#line 725 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = date_time;
+#line 725 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = option;
+#line 725 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_date_time (self, _tmp1_, _tmp1__length1, _tmp2_, _tmp3_);
+#line 5544 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 727 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_DIGITIZED_DATE_TIME_TAGS;
+#line 727 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4__length1 = photo_metadata_DIGITIZED_DATE_TIME_TAGS_length1;
+#line 727 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tags (self, _tmp4_, _tmp4__length1);
+#line 5554 "PhotoMetadata.c"
+ }
+}
+
+
+static MetadataDateTime* photo_metadata_real_get_creation_date_time (MediaMetadata* base) {
+ PhotoMetadata * self;
+ MetadataDateTime* result = NULL;
+ MetadataDateTime* creation = NULL;
+ MetadataDateTime* _tmp0_ = NULL;
+ MetadataDateTime* _tmp1_ = NULL;
+#line 730 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_METADATA, PhotoMetadata);
+#line 731 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_exposure_date_time (self);
+#line 731 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ creation = _tmp0_;
+#line 732 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = creation;
+#line 732 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp1_ == NULL) {
+#line 5575 "PhotoMetadata.c"
+ MetadataDateTime* _tmp2_ = NULL;
+#line 733 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = photo_metadata_get_digitized_date_time (self);
+#line 733 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _metadata_date_time_unref0 (creation);
+#line 733 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ creation = _tmp2_;
+#line 5583 "PhotoMetadata.c"
+ }
+#line 735 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = creation;
+#line 735 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5589 "PhotoMetadata.c"
+}
+
+
+static gpointer _dimensions_dup0 (gpointer self) {
+#line 766 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self ? dimensions_dup (self) : NULL;
+#line 5596 "PhotoMetadata.c"
+}
+
+
+Dimensions* photo_metadata_get_pixel_dimensions (PhotoMetadata* self) {
+ Dimensions* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 752 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 754 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_WIDTH_TAGS;
+#line 754 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_WIDTH_TAGS_length1;
+#line 754 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_HEIGHT_TAGS;
+#line 754 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = photo_metadata_HEIGHT_TAGS_length1;
+#line 754 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_assert (_tmp0__length1 == _tmp1__length1, "WIDTH_TAGS.length == HEIGHT_TAGS.length");
+#line 5618 "PhotoMetadata.c"
+ {
+ gint ctr = 0;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ctr = 0;
+#line 5623 "PhotoMetadata.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = TRUE;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 5630 "PhotoMetadata.c"
+ gint _tmp4_ = 0;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ glong width = 0L;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gint _tmp7_ = 0;
+ const gchar* _tmp8_ = NULL;
+ glong _tmp9_ = 0L;
+ gboolean _tmp10_ = FALSE;
+ glong height = 0L;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gint _tmp12_ = 0;
+ const gchar* _tmp13_ = NULL;
+ glong _tmp14_ = 0L;
+ gboolean _tmp15_ = FALSE;
+ glong _tmp16_ = 0L;
+ glong _tmp17_ = 0L;
+ Dimensions _tmp18_ = {0};
+ Dimensions* _tmp19_ = NULL;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp2_) {
+#line 5654 "PhotoMetadata.c"
+ gint _tmp3_ = 0;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = ctr;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ctr = _tmp3_ + 1;
+#line 5660 "PhotoMetadata.c"
+ }
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = FALSE;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = ctr;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = photo_metadata_WIDTH_TAGS;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = photo_metadata_WIDTH_TAGS_length1;
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!(_tmp4_ < _tmp5__length1)) {
+#line 755 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 5674 "PhotoMetadata.c"
+ }
+#line 759 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = photo_metadata_WIDTH_TAGS;
+#line 759 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6__length1 = photo_metadata_WIDTH_TAGS_length1;
+#line 759 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = ctr;
+#line 759 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = _tmp6_[_tmp7_];
+#line 759 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = photo_metadata_get_long (self, _tmp8_, &_tmp9_);
+#line 759 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ width = _tmp9_;
+#line 759 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp10_) {
+#line 760 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ continue;
+#line 5692 "PhotoMetadata.c"
+ }
+#line 763 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = photo_metadata_HEIGHT_TAGS;
+#line 763 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11__length1 = photo_metadata_HEIGHT_TAGS_length1;
+#line 763 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = ctr;
+#line 763 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = _tmp11_[_tmp12_];
+#line 763 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = photo_metadata_get_long (self, _tmp13_, &_tmp14_);
+#line 763 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ height = _tmp14_;
+#line 763 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp15_) {
+#line 764 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ continue;
+#line 5710 "PhotoMetadata.c"
+ }
+#line 766 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = width;
+#line 766 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = height;
+#line 766 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ dimensions_init (&_tmp18_, (gint) _tmp16_, (gint) _tmp17_);
+#line 766 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = _dimensions_dup0 (&_tmp18_);
+#line 766 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp19_;
+#line 766 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5724 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 769 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 769 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 5732 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_pixel_dimensions (PhotoMetadata* self, Dimensions* dim, PhotoMetadataSetOption option) {
+ Dimensions* _tmp0_ = NULL;
+#line 772 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 773 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = dim;
+#line 773 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp0_ != NULL) {
+#line 5744 "PhotoMetadata.c"
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ Dimensions* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ PhotoMetadataSetOption _tmp4_ = 0;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ Dimensions* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ PhotoMetadataSetOption _tmp8_ = 0;
+#line 774 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_WIDTH_TAGS;
+#line 774 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1__length1 = photo_metadata_WIDTH_TAGS_length1;
+#line 774 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = dim;
+#line 774 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = (*_tmp2_).width;
+#line 774 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = option;
+#line 774 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_long (self, _tmp1_, _tmp1__length1, (glong) _tmp3_, _tmp4_);
+#line 775 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = photo_metadata_HEIGHT_TAGS;
+#line 775 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = photo_metadata_HEIGHT_TAGS_length1;
+#line 775 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = dim;
+#line 775 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = (*_tmp6_).height;
+#line 775 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = option;
+#line 775 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_long (self, _tmp5_, _tmp5__length1, (glong) _tmp7_, _tmp8_);
+#line 5779 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 777 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = photo_metadata_WIDTH_TAGS;
+#line 777 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9__length1 = photo_metadata_WIDTH_TAGS_length1;
+#line 777 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tags (self, _tmp9_, _tmp9__length1);
+#line 778 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = photo_metadata_HEIGHT_TAGS;
+#line 778 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10__length1 = photo_metadata_HEIGHT_TAGS_length1;
+#line 778 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tags (self, _tmp10_, _tmp10__length1);
+#line 5797 "PhotoMetadata.c"
+ }
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 5821 "PhotoMetadata.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 5841 "PhotoMetadata.c"
+}
+
+
+static gchar* photo_metadata_real_get_title (MediaMetadata* base) {
+ PhotoMetadata * self;
+ gchar* result = NULL;
+ GeeList* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeList* titles = NULL;
+ GeeList* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeList* _tmp8_ = NULL;
+ gchar* title = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ const gchar* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+ gchar* _tmp28_ = NULL;
+#line 811 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_METADATA, PhotoMetadata);
+#line 819 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_has_tag (self, PHOTO_METADATA_IPHOTO_TITLE_TAG);
+#line 819 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp1_) {
+#line 5870 "PhotoMetadata.c"
+ GeeList* _tmp2_ = NULL;
+#line 820 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = photo_metadata_get_string_multiple (self, PHOTO_METADATA_IPHOTO_TITLE_TAG);
+#line 820 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_tmp0_);
+#line 820 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = _tmp2_;
+#line 5878 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GeeList* _tmp4_ = NULL;
+#line 821 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = photo_metadata_STANDARD_TITLE_TAGS;
+#line 821 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3__length1 = photo_metadata_STANDARD_TITLE_TAGS_length1;
+#line 821 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_get_first_string_multiple (self, _tmp3_, _tmp3__length1);
+#line 821 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_tmp0_);
+#line 821 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = _tmp4_;
+#line 5893 "PhotoMetadata.c"
+ }
+#line 819 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _g_object_ref0 (_tmp0_);
+#line 819 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ titles = _tmp5_;
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = titles;
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp8_ != NULL) {
+#line 5903 "PhotoMetadata.c"
+ GeeList* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = titles;
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = _tmp10_;
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _tmp11_ > 0;
+#line 5915 "PhotoMetadata.c"
+ } else {
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = FALSE;
+#line 5919 "PhotoMetadata.c"
+ }
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp7_) {
+#line 5923 "PhotoMetadata.c"
+ GeeList* _tmp12_ = NULL;
+ gpointer _tmp13_ = NULL;
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = titles;
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = gee_list_get (_tmp12_, 0);
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp6_);
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = (gchar*) _tmp13_;
+#line 5934 "PhotoMetadata.c"
+ } else {
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp6_);
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = NULL;
+#line 5940 "PhotoMetadata.c"
+ }
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = g_strdup (_tmp6_);
+#line 826 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ title = _tmp14_;
+#line 829 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = title;
+#line 829 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp15_ != NULL) {
+#line 5950 "PhotoMetadata.c"
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 830 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = title;
+#line 830 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = string_strip (_tmp16_);
+#line 830 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (title);
+#line 830 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ title = _tmp17_;
+#line 5961 "PhotoMetadata.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = title;
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = is_string_empty (_tmp21_);
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp22_) {
+#line 5969 "PhotoMetadata.c"
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = title;
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = string_contains (_tmp23_, "\n");
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = !_tmp24_;
+#line 5978 "PhotoMetadata.c"
+ } else {
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = FALSE;
+#line 5982 "PhotoMetadata.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp20_) {
+#line 5986 "PhotoMetadata.c"
+ const gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = title;
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = string_contains (_tmp25_, "\r");
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = !_tmp26_;
+#line 5995 "PhotoMetadata.c"
+ } else {
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = FALSE;
+#line 5999 "PhotoMetadata.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp19_) {
+#line 6003 "PhotoMetadata.c"
+ const gchar* _tmp27_ = NULL;
+#line 834 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = title;
+#line 834 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = _tmp27_;
+#line 6009 "PhotoMetadata.c"
+ } else {
+#line 834 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = NULL;
+#line 6013 "PhotoMetadata.c"
+ }
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_ = g_strdup (_tmp18_);
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp28_;
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (title);
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp6_);
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (titles);
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_tmp0_);
+#line 833 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 6029 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_title (PhotoMetadata* self, const gchar* title, PhotoMetadataSetOption option) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 837 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 838 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = title;
+#line 838 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 838 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp1_) {
+#line 6044 "PhotoMetadata.c"
+ gboolean _tmp2_ = FALSE;
+#line 839 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = photo_metadata_has_tag (self, PHOTO_METADATA_IPHOTO_TITLE_TAG);
+#line 839 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp2_) {
+#line 6050 "PhotoMetadata.c"
+ const gchar* _tmp3_ = NULL;
+#line 840 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = title;
+#line 840 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, PHOTO_METADATA_IPHOTO_TITLE_TAG, _tmp3_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 6056 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ const gchar* _tmp5_ = NULL;
+ PhotoMetadataSetOption _tmp6_ = 0;
+#line 842 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_STANDARD_TITLE_TAGS;
+#line 842 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4__length1 = photo_metadata_STANDARD_TITLE_TAGS_length1;
+#line 842 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = title;
+#line 842 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = option;
+#line 842 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_string (self, _tmp4_, _tmp4__length1, _tmp5_, _tmp6_);
+#line 6072 "PhotoMetadata.c"
+ }
+ } else {
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+#line 844 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = photo_metadata_STANDARD_TITLE_TAGS;
+#line 844 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7__length1 = photo_metadata_STANDARD_TITLE_TAGS_length1;
+#line 844 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tags (self, _tmp7_, _tmp7__length1);
+#line 6083 "PhotoMetadata.c"
+ }
+}
+
+
+static gchar* photo_metadata_real_get_comment (MediaMetadata* base) {
+ PhotoMetadata * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 848 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PHOTO_METADATA, PhotoMetadata);
+#line 849 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Photo.UserComment", PREPARE_INPUT_TEXT_OPTIONS_DEFAULT & (~PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF));
+#line 849 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 849 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 6100 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_comment (PhotoMetadata* self, const gchar* comment) {
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 852 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 853 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = comment;
+#line 853 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 853 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp1_) {
+#line 6115 "PhotoMetadata.c"
+ const gchar* _tmp2_ = NULL;
+#line 854 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = comment;
+#line 854 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Exif.Photo.UserComment", _tmp2_, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT & (~PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF));
+#line 6121 "PhotoMetadata.c"
+ } else {
+#line 856 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tag (self, "Exif.Photo.UserComment");
+#line 6125 "PhotoMetadata.c"
+ }
+}
+
+
+GeeSet* photo_metadata_get_keywords (PhotoMetadata* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify) {
+ GeeSet* result = NULL;
+ GeeSet* keywords = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ GeeSet* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ GeeSet* _tmp24_ = NULL;
+ GeeSet* _tmp29_ = NULL;
+#line 872 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 873 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ keywords = NULL;
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_KEYWORD_TAGS;
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_KEYWORD_TAGS_length1;
+#line 6147 "PhotoMetadata.c"
+ {
+ gchar** tag_collection = NULL;
+ gint tag_collection_length1 = 0;
+ gint _tag_collection_size_ = 0;
+ gint tag_it = 0;
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection = _tmp0_;
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag_collection_length1 = _tmp0__length1;
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (tag_it = 0; tag_it < _tmp0__length1; tag_it = tag_it + 1) {
+#line 6159 "PhotoMetadata.c"
+ gchar* _tmp1_ = NULL;
+ gchar* tag = NULL;
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup (tag_collection[tag_it]);
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ tag = _tmp1_;
+#line 6166 "PhotoMetadata.c"
+ {
+ GeeCollection* values = NULL;
+ const gchar* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GeeCollection* _tmp5_ = NULL;
+#line 875 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = tag;
+#line 875 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = photo_metadata_get_string_multiple (self, _tmp2_);
+#line 875 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = values;
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp5_ != NULL) {
+#line 6183 "PhotoMetadata.c"
+ GeeCollection* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = values;
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = gee_collection_get_size (_tmp6_);
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = _tmp7_;
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = _tmp8_ > 0;
+#line 6195 "PhotoMetadata.c"
+ } else {
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = FALSE;
+#line 6199 "PhotoMetadata.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_) {
+#line 6203 "PhotoMetadata.c"
+ GeeSet* _tmp9_ = NULL;
+#line 877 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = keywords;
+#line 877 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp9_ == NULL) {
+#line 6209 "PhotoMetadata.c"
+ GCompareDataFunc _tmp10_ = NULL;
+ void* _tmp10__target = NULL;
+ GDestroyNotify _tmp10__target_destroy_notify = NULL;
+ GeeSet* _tmp11_ = NULL;
+#line 878 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = compare_func;
+#line 878 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10__target = compare_func_target;
+#line 878 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10__target_destroy_notify = compare_func_target_destroy_notify;
+#line 878 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 878 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = photo_metadata_create_string_set (self, _tmp10_, _tmp10__target, _tmp10__target_destroy_notify);
+#line 878 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (keywords);
+#line 878 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ keywords = _tmp11_;
+#line 6228 "PhotoMetadata.c"
+ }
+ {
+ GeeIterator* _current_value_it = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = values;
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _current_value_it = _tmp13_;
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 6242 "PhotoMetadata.c"
+ GeeIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gchar* current_value = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ GeeSet* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = _current_value_it;
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = gee_iterator_next (_tmp14_);
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp15_) {
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 6260 "PhotoMetadata.c"
+ }
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = _current_value_it;
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = gee_iterator_get (_tmp16_);
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_value = (gchar*) _tmp17_;
+#line 881 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = keywords;
+#line 881 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = current_value;
+#line 881 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = hierarchical_tag_utilities_make_flat_tag_safe (_tmp19_);
+#line 881 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = _tmp20_;
+#line 881 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection), _tmp21_);
+#line 881 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp21_);
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (current_value);
+#line 6282 "PhotoMetadata.c"
+ }
+#line 880 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_current_value_it);
+#line 6286 "PhotoMetadata.c"
+ }
+ }
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (values);
+#line 874 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (tag);
+#line 6293 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = keywords;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp24_ != NULL) {
+#line 6301 "PhotoMetadata.c"
+ GeeSet* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gint _tmp27_ = 0;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = keywords;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = _tmp26_;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = _tmp27_ > 0;
+#line 6313 "PhotoMetadata.c"
+ } else {
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = FALSE;
+#line 6317 "PhotoMetadata.c"
+ }
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp23_) {
+#line 6321 "PhotoMetadata.c"
+ GeeSet* _tmp28_ = NULL;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_ = keywords;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = _tmp28_;
+#line 6327 "PhotoMetadata.c"
+ } else {
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = NULL;
+#line 6331 "PhotoMetadata.c"
+ }
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29_ = _g_object_ref0 (_tmp22_);
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp29_;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (keywords);
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func = NULL;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target = NULL;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 885 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 6349 "PhotoMetadata.c"
+}
+
+
+static gpointer _hierarchical_keyword_field_ref0 (gpointer self) {
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self ? hierarchical_keyword_field_ref (self) : NULL;
+#line 6356 "PhotoMetadata.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 6369 "PhotoMetadata.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 6400 "PhotoMetadata.c"
+ goto __catch25_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 6409 "PhotoMetadata.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 6425 "PhotoMetadata.c"
+ goto __catch25_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 6436 "PhotoMetadata.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 6450 "PhotoMetadata.c"
+ }
+ goto __finally25;
+ __catch25_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 6464 "PhotoMetadata.c"
+ }
+ __finally25:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 6475 "PhotoMetadata.c"
+ }
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 6499 "PhotoMetadata.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 6507 "PhotoMetadata.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 6519 "PhotoMetadata.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 6543 "PhotoMetadata.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 6549 "PhotoMetadata.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 6553 "PhotoMetadata.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 6557 "PhotoMetadata.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 6569 "PhotoMetadata.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 6579 "PhotoMetadata.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 6585 "PhotoMetadata.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 6599 "PhotoMetadata.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 6609 "PhotoMetadata.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 6615 "PhotoMetadata.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 6624 "PhotoMetadata.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 6644 "PhotoMetadata.c"
+}
+
+
+static void photo_metadata_internal_set_hierarchical_keywords (PhotoMetadata* self, HierarchicalTagIndex* index) {
+ HierarchicalKeywordField** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ HierarchicalTagIndex* _tmp4_ = NULL;
+ HierarchicalKeywordField** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+#line 888 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 888 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail ((index == NULL) || IS_HIERARCHICAL_TAG_INDEX (index));
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_HIERARCHICAL_KEYWORD_TAGS;
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_HIERARCHICAL_KEYWORD_TAGS_length1;
+#line 6662 "PhotoMetadata.c"
+ {
+ HierarchicalKeywordField** current_field_collection = NULL;
+ gint current_field_collection_length1 = 0;
+ gint _current_field_collection_size_ = 0;
+ gint current_field_it = 0;
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_field_collection = _tmp0_;
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_field_collection_length1 = _tmp0__length1;
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (current_field_it = 0; current_field_it < _tmp0__length1; current_field_it = current_field_it + 1) {
+#line 6674 "PhotoMetadata.c"
+ HierarchicalKeywordField* _tmp1_ = NULL;
+ HierarchicalKeywordField* current_field = NULL;
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _hierarchical_keyword_field_ref0 (current_field_collection[current_field_it]);
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_field = _tmp1_;
+#line 6681 "PhotoMetadata.c"
+ {
+ HierarchicalKeywordField* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 890 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = current_field;
+#line 890 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_->field_name;
+#line 890 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tag (self, _tmp3_);
+#line 889 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_keyword_field_unref0 (current_field);
+#line 6693 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 892 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = index;
+#line 892 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ == NULL) {
+#line 893 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return;
+#line 6703 "PhotoMetadata.c"
+ }
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = photo_metadata_HIERARCHICAL_KEYWORD_TAGS;
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = photo_metadata_HIERARCHICAL_KEYWORD_TAGS_length1;
+#line 6709 "PhotoMetadata.c"
+ {
+ HierarchicalKeywordField** current_field_collection = NULL;
+ gint current_field_collection_length1 = 0;
+ gint _current_field_collection_size_ = 0;
+ gint current_field_it = 0;
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_field_collection = _tmp5_;
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_field_collection_length1 = _tmp5__length1;
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (current_field_it = 0; current_field_it < _tmp5__length1; current_field_it = current_field_it + 1) {
+#line 6721 "PhotoMetadata.c"
+ HierarchicalKeywordField* _tmp6_ = NULL;
+ HierarchicalKeywordField* current_field = NULL;
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = _hierarchical_keyword_field_ref0 (current_field_collection[current_field_it]);
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_field = _tmp6_;
+#line 6728 "PhotoMetadata.c"
+ {
+ HierarchicalKeywordField* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ GeeSet* writeable_set = NULL;
+ GeeTreeSet* _tmp9_ = NULL;
+ HierarchicalKeywordField* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ GeeSet* _tmp31_ = NULL;
+#line 896 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = current_field;
+#line 896 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = _tmp7_->is_writeable;
+#line 896 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp8_) {
+#line 897 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_keyword_field_unref0 (current_field);
+#line 897 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ continue;
+#line 6747 "PhotoMetadata.c"
+ }
+#line 899 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 899 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ writeable_set = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_SET, GeeSet);
+#line 6753 "PhotoMetadata.c"
+ {
+ GeeIterator* _current_path_it = NULL;
+ HierarchicalTagIndex* _tmp10_ = NULL;
+ GeeCollection* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = index;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = hierarchical_tag_index_get_all_paths (_tmp10_);
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = _tmp11_;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = _tmp13_;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_tmp12_);
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _current_path_it = _tmp14_;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 6777 "PhotoMetadata.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gchar* current_path = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ gchar* writeable_path = NULL;
+ const gchar* _tmp19_ = NULL;
+ HierarchicalKeywordField* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ HierarchicalKeywordField* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ GeeSet* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = _current_path_it;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp16_) {
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 6800 "PhotoMetadata.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = _current_path_it;
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_path = (gchar*) _tmp18_;
+#line 902 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = current_path;
+#line 902 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = current_field;
+#line 902 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = _tmp20_->path_separator;
+#line 902 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = string_replace (_tmp19_, TAG_PATH_SEPARATOR_STRING, _tmp21_);
+#line 902 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ writeable_path = _tmp22_;
+#line 904 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = current_field;
+#line 904 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = _tmp23_->wants_leading_separator;
+#line 904 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp24_) {
+#line 6824 "PhotoMetadata.c"
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+#line 905 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = writeable_path;
+#line 905 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = string_substring (_tmp25_, (glong) 1, (glong) -1);
+#line 905 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (writeable_path);
+#line 905 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ writeable_path = _tmp26_;
+#line 6835 "PhotoMetadata.c"
+ }
+#line 907 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = writeable_set;
+#line 907 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_ = writeable_path;
+#line 907 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection), _tmp28_);
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (writeable_path);
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (current_path);
+#line 6847 "PhotoMetadata.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_current_path_it);
+#line 6851 "PhotoMetadata.c"
+ }
+#line 910 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29_ = current_field;
+#line 910 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp30_ = _tmp29_->field_name;
+#line 910 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp31_ = writeable_set;
+#line 910 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string_multiple (self, _tmp30_, G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (writeable_set);
+#line 895 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_keyword_field_unref0 (current_field);
+#line 6865 "PhotoMetadata.c"
+ }
+ }
+ }
+}
+
+
+void photo_metadata_set_keywords (PhotoMetadata* self, GeeCollection* keywords, PhotoMetadataSetOption option) {
+ HierarchicalTagIndex* htag_index = NULL;
+ HierarchicalTagIndex* _tmp0_ = NULL;
+ GeeSet* flat_keywords = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp28_ = NULL;
+#line 914 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 914 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail ((keywords == NULL) || GEE_IS_COLLECTION (keywords));
+#line 915 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = hierarchical_tag_index_new ();
+#line 915 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ htag_index = _tmp0_;
+#line 916 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 916 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ flat_keywords = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_SET, GeeSet);
+#line 918 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = keywords;
+#line 918 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp2_ != NULL) {
+#line 6895 "PhotoMetadata.c"
+ GeeSet* _tmp24_ = NULL;
+ HierarchicalTagIndex* _tmp25_ = NULL;
+ GeeCollection* _tmp26_ = NULL;
+ GeeCollection* _tmp27_ = NULL;
+ {
+ GeeIterator* _keyword_it = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = keywords;
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _keyword_it = _tmp4_;
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 6912 "PhotoMetadata.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gchar* keyword = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _keyword_it;
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp6_) {
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 6928 "PhotoMetadata.c"
+ }
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _keyword_it;
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ keyword = (gchar*) _tmp8_;
+#line 920 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = keyword;
+#line 920 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = g_str_has_prefix (_tmp9_, TAG_PATH_SEPARATOR_STRING);
+#line 920 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp10_) {
+#line 6942 "PhotoMetadata.c"
+ GeeCollection* path_components = NULL;
+ const gchar* _tmp11_ = NULL;
+ GeeList* _tmp12_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = keyword;
+#line 921 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = hierarchical_tag_utilities_enumerate_path_components (_tmp11_);
+#line 921 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ path_components = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 6952 "PhotoMetadata.c"
+ {
+ GeeIterator* _component_it = NULL;
+ GeeCollection* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = path_components;
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _component_it = _tmp14_;
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 6965 "PhotoMetadata.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gchar* component = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ HierarchicalTagIndex* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = _component_it;
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp16_) {
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 6982 "PhotoMetadata.c"
+ }
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = _component_it;
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ component = (gchar*) _tmp18_;
+#line 924 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = htag_index;
+#line 924 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = component;
+#line 924 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = keyword;
+#line 924 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ hierarchical_tag_index_add_path (_tmp19_, _tmp20_, _tmp21_);
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (component);
+#line 7000 "PhotoMetadata.c"
+ }
+#line 923 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_component_it);
+#line 7004 "PhotoMetadata.c"
+ }
+#line 920 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (path_components);
+#line 7008 "PhotoMetadata.c"
+ } else {
+ GeeSet* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = flat_keywords;
+#line 926 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = keyword;
+#line 926 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), _tmp23_);
+#line 7018 "PhotoMetadata.c"
+ }
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (keyword);
+#line 7022 "PhotoMetadata.c"
+ }
+#line 919 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_keyword_it);
+#line 7026 "PhotoMetadata.c"
+ }
+#line 930 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = flat_keywords;
+#line 930 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = htag_index;
+#line 930 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = hierarchical_tag_index_get_all_tags (_tmp25_);
+#line 930 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = _tmp26_;
+#line 930 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection), _tmp27_);
+#line 930 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_tmp27_);
+#line 7040 "PhotoMetadata.c"
+ }
+#line 933 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_ = keywords;
+#line 933 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp28_ != NULL) {
+#line 7046 "PhotoMetadata.c"
+ gchar** _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ GeeSet* _tmp30_ = NULL;
+ PhotoMetadataSetOption _tmp31_ = 0;
+ HierarchicalTagIndex* _tmp32_ = NULL;
+#line 934 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29_ = photo_metadata_KEYWORD_TAGS;
+#line 934 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29__length1 = photo_metadata_KEYWORD_TAGS_length1;
+#line 934 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp30_ = flat_keywords;
+#line 934 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp31_ = option;
+#line 934 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_all_string_multiple (self, _tmp29_, _tmp29__length1, G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_COLLECTION, GeeCollection), _tmp31_);
+#line 935 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp32_ = htag_index;
+#line 935 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_internal_set_hierarchical_keywords (self, _tmp32_);
+#line 7066 "PhotoMetadata.c"
+ } else {
+ gchar** _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+#line 937 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp33_ = photo_metadata_KEYWORD_TAGS;
+#line 937 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp33__length1 = photo_metadata_KEYWORD_TAGS_length1;
+#line 937 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tags (self, _tmp33_, _tmp33__length1);
+#line 938 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_internal_set_hierarchical_keywords (self, NULL);
+#line 7078 "PhotoMetadata.c"
+ }
+#line 914 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (flat_keywords);
+#line 914 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_tag_index_unref0 (htag_index);
+#line 7084 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_has_hierarchical_keywords (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ HierarchicalKeywordField** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 942 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_HIERARCHICAL_KEYWORD_TAGS;
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_HIERARCHICAL_KEYWORD_TAGS_length1;
+#line 7098 "PhotoMetadata.c"
+ {
+ HierarchicalKeywordField** field_collection = NULL;
+ gint field_collection_length1 = 0;
+ gint _field_collection_size_ = 0;
+ gint field_it = 0;
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ field_collection = _tmp0_;
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ field_collection_length1 = _tmp0__length1;
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (field_it = 0; field_it < _tmp0__length1; field_it = field_it + 1) {
+#line 7110 "PhotoMetadata.c"
+ HierarchicalKeywordField* _tmp1_ = NULL;
+ HierarchicalKeywordField* field = NULL;
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _hierarchical_keyword_field_ref0 (field_collection[field_it]);
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ field = _tmp1_;
+#line 7117 "PhotoMetadata.c"
+ {
+ GeeCollection* values = NULL;
+ HierarchicalKeywordField* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeCollection* _tmp6_ = NULL;
+#line 944 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = field;
+#line 944 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_->field_name;
+#line 944 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_get_string_multiple (self, _tmp3_);
+#line 944 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = values;
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp6_ != NULL) {
+#line 7137 "PhotoMetadata.c"
+ GeeCollection* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = values;
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = gee_collection_get_size (_tmp7_);
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = _tmp8_;
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp9_ > 0;
+#line 7149 "PhotoMetadata.c"
+ } else {
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = FALSE;
+#line 7153 "PhotoMetadata.c"
+ }
+#line 946 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp5_) {
+#line 947 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = TRUE;
+#line 947 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (values);
+#line 947 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_keyword_field_unref0 (field);
+#line 947 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7165 "PhotoMetadata.c"
+ }
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (values);
+#line 943 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_keyword_field_unref0 (field);
+#line 7171 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 950 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 950 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7179 "PhotoMetadata.c"
+}
+
+
+GeeSet* photo_metadata_get_hierarchical_keywords (PhotoMetadata* self) {
+ GeeSet* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GeeSet* h_keywords = NULL;
+ GeeSet* _tmp1_ = NULL;
+ HierarchicalKeywordField** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 953 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 954 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_has_hierarchical_keywords (self);
+#line 954 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_assert (_tmp0_, "has_hierarchical_keywords()");
+#line 956 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_create_string_set (self, NULL, NULL, NULL);
+#line 956 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ h_keywords = _tmp1_;
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = photo_metadata_HIERARCHICAL_KEYWORD_TAGS;
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2__length1 = photo_metadata_HIERARCHICAL_KEYWORD_TAGS_length1;
+#line 7204 "PhotoMetadata.c"
+ {
+ HierarchicalKeywordField** field_collection = NULL;
+ gint field_collection_length1 = 0;
+ gint _field_collection_size_ = 0;
+ gint field_it = 0;
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ field_collection = _tmp2_;
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ field_collection_length1 = _tmp2__length1;
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ for (field_it = 0; field_it < _tmp2__length1; field_it = field_it + 1) {
+#line 7216 "PhotoMetadata.c"
+ HierarchicalKeywordField* _tmp3_ = NULL;
+ HierarchicalKeywordField* field = NULL;
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _hierarchical_keyword_field_ref0 (field_collection[field_it]);
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ field = _tmp3_;
+#line 7223 "PhotoMetadata.c"
+ {
+ GeeCollection* values = NULL;
+ HierarchicalKeywordField* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeCollection* _tmp8_ = NULL;
+#line 959 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = field;
+#line 959 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp4_->field_name;
+#line 959 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = photo_metadata_get_string_multiple (self, _tmp5_);
+#line 959 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ values = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = values;
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp8_ == NULL) {
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = TRUE;
+#line 7245 "PhotoMetadata.c"
+ } else {
+ GeeCollection* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = values;
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = gee_collection_get_size (_tmp9_);
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = _tmp10_;
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _tmp11_ < 1;
+#line 7258 "PhotoMetadata.c"
+ }
+#line 961 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp7_) {
+#line 962 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (values);
+#line 962 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_keyword_field_unref0 (field);
+#line 962 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ continue;
+#line 7268 "PhotoMetadata.c"
+ }
+ {
+ GeeIterator* _current_value_it = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = values;
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _current_value_it = _tmp13_;
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 7282 "PhotoMetadata.c"
+ GeeIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gchar* current_value = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ gchar* canonicalized = NULL;
+ const gchar* _tmp18_ = NULL;
+ HierarchicalKeywordField* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = _current_value_it;
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = gee_iterator_next (_tmp14_);
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp15_) {
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 7302 "PhotoMetadata.c"
+ }
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = _current_value_it;
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = gee_iterator_get (_tmp16_);
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ current_value = (gchar*) _tmp17_;
+#line 965 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = current_value;
+#line 965 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = field;
+#line 965 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = _tmp19_->path_separator;
+#line 965 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = hierarchical_tag_utilities_canonicalize (_tmp18_, _tmp20_);
+#line 965 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ canonicalized = _tmp21_;
+#line 968 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = canonicalized;
+#line 968 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp22_ != NULL) {
+#line 7324 "PhotoMetadata.c"
+ GeeSet* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+#line 969 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = h_keywords;
+#line 969 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = canonicalized;
+#line 969 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection), _tmp24_);
+#line 7333 "PhotoMetadata.c"
+ }
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (canonicalized);
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (current_value);
+#line 7339 "PhotoMetadata.c"
+ }
+#line 964 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (_current_value_it);
+#line 7343 "PhotoMetadata.c"
+ }
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_object_unref0 (values);
+#line 958 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _hierarchical_keyword_field_unref0 (field);
+#line 7349 "PhotoMetadata.c"
+ }
+ }
+ }
+#line 973 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = h_keywords;
+#line 973 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7357 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_has_orientation (PhotoMetadata* self) {
+ gboolean result = FALSE;
+ GExiv2Metadata* _tmp0_ = NULL;
+ GExiv2Orientation _tmp1_ = 0;
+#line 976 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 977 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 977 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = gexiv2_metadata_get_orientation (_tmp0_);
+#line 977 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_ == GEXIV2_ORIENTATION_UNSPECIFIED;
+#line 977 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7375 "PhotoMetadata.c"
+}
+
+
+Orientation photo_metadata_get_orientation (PhotoMetadata* self) {
+ Orientation result = 0;
+ GExiv2Orientation orientation = 0;
+ GExiv2Metadata* _tmp0_ = NULL;
+ GExiv2Orientation _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GExiv2Orientation _tmp4_ = 0;
+#line 981 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), 0);
+#line 984 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 984 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = gexiv2_metadata_get_orientation (_tmp0_);
+#line 984 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ orientation = _tmp1_;
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = orientation;
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ == GEXIV2_ORIENTATION_UNSPECIFIED) {
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = TRUE;
+#line 7401 "PhotoMetadata.c"
+ } else {
+ GExiv2Orientation _tmp5_ = 0;
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = orientation;
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp5_ < ORIENTATION_MIN;
+#line 7408 "PhotoMetadata.c"
+ }
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp3_) {
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = TRUE;
+#line 7414 "PhotoMetadata.c"
+ } else {
+ GExiv2Orientation _tmp6_ = 0;
+#line 986 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = orientation;
+#line 986 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = _tmp6_ > ORIENTATION_MAX;
+#line 7421 "PhotoMetadata.c"
+ }
+#line 985 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp2_) {
+#line 987 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = ORIENTATION_TOP_LEFT;
+#line 987 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7429 "PhotoMetadata.c"
+ } else {
+ GExiv2Orientation _tmp7_ = 0;
+#line 989 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = orientation;
+#line 989 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = (Orientation) _tmp7_;
+#line 989 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7438 "PhotoMetadata.c"
+ }
+}
+
+
+void photo_metadata_set_orientation (PhotoMetadata* self, Orientation orientation) {
+ GExiv2Metadata* _tmp0_ = NULL;
+ Orientation _tmp1_ = 0;
+#line 992 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 994 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 994 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = orientation;
+#line 994 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ gexiv2_metadata_set_orientation (_tmp0_, (GExiv2Orientation) _tmp1_);
+#line 7454 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_gps (PhotoMetadata* self, gdouble* longitude, gchar** long_ref, gdouble* latitude, gchar** lat_ref, gdouble* altitude) {
+ gdouble _vala_longitude = 0.0;
+ gchar* _vala_long_ref = NULL;
+ gdouble _vala_latitude = 0.0;
+ gchar* _vala_lat_ref = NULL;
+ gdouble _vala_altitude = 0.0;
+ gboolean result = FALSE;
+ GExiv2Metadata* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gboolean _tmp4_ = FALSE;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 997 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 999 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->priv->exiv2;
+#line 999 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_metadata_get_gps_info (_tmp0_, &_tmp1_, &_tmp2_, &_tmp3_);
+#line 999 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_longitude = _tmp1_;
+#line 999 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_latitude = _tmp2_;
+#line 999 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_altitude = _tmp3_;
+#line 999 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp4_) {
+#line 1000 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_long_ref);
+#line 1000 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_long_ref = NULL;
+#line 1001 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_lat_ref);
+#line 1001 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_lat_ref = NULL;
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (longitude) {
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *longitude = _vala_longitude;
+#line 7500 "PhotoMetadata.c"
+ }
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (long_ref) {
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *long_ref = _vala_long_ref;
+#line 7506 "PhotoMetadata.c"
+ } else {
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_long_ref);
+#line 7510 "PhotoMetadata.c"
+ }
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (latitude) {
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *latitude = _vala_latitude;
+#line 7516 "PhotoMetadata.c"
+ }
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (lat_ref) {
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *lat_ref = _vala_lat_ref;
+#line 7522 "PhotoMetadata.c"
+ } else {
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_lat_ref);
+#line 7526 "PhotoMetadata.c"
+ }
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (altitude) {
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *altitude = _vala_altitude;
+#line 7532 "PhotoMetadata.c"
+ }
+#line 1003 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7536 "PhotoMetadata.c"
+ }
+#line 1006 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = photo_metadata_get_string (self, "Exif.GPSInfo.GPSLongitudeRef", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1006 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_long_ref);
+#line 1006 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_long_ref = _tmp5_;
+#line 1007 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = photo_metadata_get_string (self, "Exif.GPSInfo.GPSLatitudeRef", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1007 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_lat_ref);
+#line 1007 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_lat_ref = _tmp6_;
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = TRUE;
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (longitude) {
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *longitude = _vala_longitude;
+#line 7556 "PhotoMetadata.c"
+ }
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (long_ref) {
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *long_ref = _vala_long_ref;
+#line 7562 "PhotoMetadata.c"
+ } else {
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_long_ref);
+#line 7566 "PhotoMetadata.c"
+ }
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (latitude) {
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *latitude = _vala_latitude;
+#line 7572 "PhotoMetadata.c"
+ }
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (lat_ref) {
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *lat_ref = _vala_lat_ref;
+#line 7578 "PhotoMetadata.c"
+ } else {
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_vala_lat_ref);
+#line 7582 "PhotoMetadata.c"
+ }
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (altitude) {
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *altitude = _vala_altitude;
+#line 7588 "PhotoMetadata.c"
+ }
+#line 1009 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7592 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_exposure (PhotoMetadata* self, MetadataRational* exposure) {
+ MetadataRational _vala_exposure = {0};
+ gboolean result = FALSE;
+ MetadataRational _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+#line 1012 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 1013 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_rational (self, "Exif.Photo.ExposureTime", &_tmp0_);
+#line 1013 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_exposure = _tmp0_;
+#line 1013 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 1013 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (exposure) {
+#line 1013 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *exposure = _vala_exposure;
+#line 7613 "PhotoMetadata.c"
+ }
+#line 1013 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7617 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_exposure_string (PhotoMetadata* self) {
+ gchar* result = NULL;
+ MetadataRational exposure_time = {0};
+ MetadataRational _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gchar* _tmp3_ = NULL;
+#line 1016 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1018 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_rational (self, "Exif.Photo.ExposureTime", &_tmp0_);
+#line 1018 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ exposure_time = _tmp0_;
+#line 1018 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp1_) {
+#line 1019 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 1019 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7640 "PhotoMetadata.c"
+ }
+#line 1021 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = metadata_rational_is_valid (&exposure_time);
+#line 1021 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp2_) {
+#line 1022 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 1022 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7650 "PhotoMetadata.c"
+ }
+#line 1024 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = photo_metadata_get_string_interpreted (self, "Exif.Photo.ExposureTime", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1024 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp3_;
+#line 1024 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7658 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_iso (PhotoMetadata* self, glong* iso) {
+ glong _vala_iso = 0L;
+ gboolean result = FALSE;
+ gboolean fetched_ok = FALSE;
+ glong _tmp0_ = 0L;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ glong _tmp4_ = 0L;
+#line 1027 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 1028 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_long (self, "Exif.Photo.ISOSpeedRatings", &_tmp0_);
+#line 1028 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_iso = _tmp0_;
+#line 1028 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ fetched_ok = _tmp1_;
+#line 1030 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = fetched_ok;
+#line 1030 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp2_ == FALSE) {
+#line 1031 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 1031 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (iso) {
+#line 1031 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *iso = _vala_iso;
+#line 7689 "PhotoMetadata.c"
+ }
+#line 1031 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7693 "PhotoMetadata.c"
+ }
+#line 1035 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = _vala_iso;
+#line 1035 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_ < ((glong) 6)) {
+#line 1035 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = TRUE;
+#line 7701 "PhotoMetadata.c"
+ } else {
+ glong _tmp5_ = 0L;
+#line 1035 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _vala_iso;
+#line 1035 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp5_ > ((glong) 409600);
+#line 7708 "PhotoMetadata.c"
+ }
+#line 1035 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp3_) {
+#line 1036 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = FALSE;
+#line 1036 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (iso) {
+#line 1036 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *iso = _vala_iso;
+#line 7718 "PhotoMetadata.c"
+ }
+#line 1036 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7722 "PhotoMetadata.c"
+ }
+#line 1038 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = TRUE;
+#line 1038 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (iso) {
+#line 1038 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *iso = _vala_iso;
+#line 7730 "PhotoMetadata.c"
+ }
+#line 1038 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7734 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_iso_string (PhotoMetadata* self) {
+ gchar* result = NULL;
+ glong iso = 0L;
+ glong _tmp0_ = 0L;
+ gboolean _tmp1_ = FALSE;
+ gchar* _tmp2_ = NULL;
+#line 1041 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1043 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_iso (self, &_tmp0_);
+#line 1043 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ iso = _tmp0_;
+#line 1043 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp1_) {
+#line 1044 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 1044 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7756 "PhotoMetadata.c"
+ }
+#line 1046 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = photo_metadata_get_string_interpreted (self, "Exif.Photo.ISOSpeedRatings", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1046 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp2_;
+#line 1046 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7764 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_aperture (PhotoMetadata* self, MetadataRational* aperture) {
+ MetadataRational _vala_aperture = {0};
+ gboolean result = FALSE;
+ MetadataRational _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+#line 1049 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 1050 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_rational (self, "Exif.Photo.FNumber", &_tmp0_);
+#line 1050 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_aperture = _tmp0_;
+#line 1050 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 1050 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (aperture) {
+#line 1050 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *aperture = _vala_aperture;
+#line 7785 "PhotoMetadata.c"
+ }
+#line 1050 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7789 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_aperture_string (PhotoMetadata* self, gboolean pango_formatted) {
+ gchar* result = NULL;
+ MetadataRational aperture = {0};
+ MetadataRational _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+ gdouble aperture_value = 0.0;
+ MetadataRational _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ MetadataRational _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gdouble _tmp6_ = 0.0;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ const gchar* _tmp9_ = NULL;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 1053 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1055 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_aperture (self, &_tmp0_);
+#line 1055 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ aperture = _tmp0_;
+#line 1055 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp1_) {
+#line 1056 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = NULL;
+#line 1056 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7825 "PhotoMetadata.c"
+ }
+#line 1058 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = aperture;
+#line 1058 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_.numerator;
+#line 1058 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = aperture;
+#line 1058 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = _tmp4_.denominator;
+#line 1058 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ aperture_value = ((gdouble) _tmp3_) / ((gdouble) _tmp5_);
+#line 1059 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = aperture_value;
+#line 1059 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ aperture_value = ((gint) (_tmp6_ * 10.0)) / 10.0;
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = pango_formatted;
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp8_) {
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = "<i>f</i>/";
+#line 7847 "PhotoMetadata.c"
+ } else {
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = "f/";
+#line 7851 "PhotoMetadata.c"
+ }
+#line 1062 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = aperture_value;
+#line 1062 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (fmod (_tmp10_, 1) == ((gdouble) 0)) {
+#line 1062 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = "%.0f";
+#line 7859 "PhotoMetadata.c"
+ } else {
+#line 1062 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = "%.1f";
+#line 7863 "PhotoMetadata.c"
+ }
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = aperture_value;
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = g_strdup_printf (_tmp9_, _tmp11_);
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = _tmp12_;
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = g_strconcat (_tmp7_, _tmp13_, NULL);
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = _tmp14_;
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp13_);
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp15_;
+#line 1061 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7881 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_camera_make (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1065 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1066 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Image.Make", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1066 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 1066 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7896 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_camera_model (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1069 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1070 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Image.Model", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1070 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 1070 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7911 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_flash (PhotoMetadata* self, glong* flash) {
+ glong _vala_flash = 0L;
+ gboolean result = FALSE;
+ glong _tmp0_ = 0L;
+ gboolean _tmp1_ = FALSE;
+#line 1073 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 1075 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_long (self, "Exif.Photo.Flash", &_tmp0_);
+#line 1075 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_flash = _tmp0_;
+#line 1075 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 1075 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (flash) {
+#line 1075 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *flash = _vala_flash;
+#line 7932 "PhotoMetadata.c"
+ }
+#line 1075 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7936 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_flash_string (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1078 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1080 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Photo.Flash", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1080 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 1080 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7951 "PhotoMetadata.c"
+}
+
+
+gboolean photo_metadata_get_focal_length (PhotoMetadata* self, MetadataRational* focal_length) {
+ MetadataRational _vala_focal_length = {0};
+ gboolean result = FALSE;
+ MetadataRational _tmp0_ = {0};
+ gboolean _tmp1_ = FALSE;
+#line 1083 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), FALSE);
+#line 1084 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_rational (self, "Exif.Photo.FocalLength", &_tmp0_);
+#line 1084 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_focal_length = _tmp0_;
+#line 1084 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 1084 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (focal_length) {
+#line 1084 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *focal_length = _vala_focal_length;
+#line 7972 "PhotoMetadata.c"
+ }
+#line 1084 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7976 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_focal_length_string (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1087 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1088 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Photo.FocalLength", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1088 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 1088 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 7991 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_artist (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar* _tmp1_ = NULL;
+#line 1096 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1097 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_ARTIST_TAGS;
+#line 1097 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_ARTIST_TAGS_length1;
+#line 1097 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_first_string_interpreted (self, _tmp0_, _tmp0__length1);
+#line 1097 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp1_;
+#line 1097 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8012 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_copyright (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1100 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1101 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Image.Copyright", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1101 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 1101 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8027 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_software (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1104 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1105 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Image.Software", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1105 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 1105 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8042 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_software (PhotoMetadata* self, const gchar* software, const gchar* version) {
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 1108 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 1108 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (software != NULL);
+#line 1108 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (version != NULL);
+#line 1110 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = software;
+#line 1110 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = version;
+#line 1110 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = g_strdup_printf ("%s %s", _tmp0_, _tmp1_);
+#line 1110 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_;
+#line 1110 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Exif.Image.Software", _tmp3_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1110 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp3_);
+#line 1112 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = photo_metadata_has_iptc (self);
+#line 1112 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp4_) {
+#line 8074 "PhotoMetadata.c"
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 1113 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = software;
+#line 1113 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Iptc.Application2.Program", _tmp5_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1114 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = version;
+#line 1114 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Iptc.Application2.ProgramVersion", _tmp6_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 8085 "PhotoMetadata.c"
+ }
+}
+
+
+void photo_metadata_remove_software (PhotoMetadata* self) {
+#line 1118 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 1119 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tag (self, "Exif.Image.Software");
+#line 1120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tag (self, "Iptc.Application2.Program");
+#line 1121 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_remove_tag (self, "Iptc.Application2.ProgramVersion");
+#line 8099 "PhotoMetadata.c"
+}
+
+
+gchar* photo_metadata_get_exposure_bias (PhotoMetadata* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 1124 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), NULL);
+#line 1125 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_get_string_interpreted (self, "Exif.Photo.ExposureBiasValue", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1125 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp0_;
+#line 1125 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8114 "PhotoMetadata.c"
+}
+
+
+Rating photo_metadata_get_rating (PhotoMetadata* self) {
+ Rating result = 0;
+ gchar* rating_string = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gint int_percent_rating = 0;
+ const gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ Rating _tmp18_ = 0;
+#line 1135 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (self), 0);
+#line 1136 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = photo_metadata_RATING_TAGS;
+#line 1136 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0__length1 = photo_metadata_RATING_TAGS_length1;
+#line 1136 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = photo_metadata_get_first_string (self, _tmp0_, _tmp0__length1);
+#line 1136 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ rating_string = _tmp1_;
+#line 1137 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = rating_string;
+#line 1137 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp2_ != NULL) {
+#line 8145 "PhotoMetadata.c"
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ Rating _tmp5_ = 0;
+#line 1138 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = rating_string;
+#line 1138 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = atoi (_tmp3_);
+#line 1138 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = rating_unserialize (_tmp4_);
+#line 1138 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp5_;
+#line 1138 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (rating_string);
+#line 1138 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8161 "PhotoMetadata.c"
+ }
+#line 1140 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = photo_metadata_get_string (self, "Exif.Image.RatingPercent", PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1140 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (rating_string);
+#line 1140 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ rating_string = _tmp6_;
+#line 1141 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = rating_string;
+#line 1141 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp7_ == NULL) {
+#line 1142 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = RATING_UNRATED;
+#line 1142 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (rating_string);
+#line 1142 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8179 "PhotoMetadata.c"
+ }
+#line 1145 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = rating_string;
+#line 1145 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = atoi (_tmp8_);
+#line 1145 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ int_percent_rating = _tmp9_;
+#line 8187 "PhotoMetadata.c"
+ {
+ gint i = 0;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ i = 5;
+#line 8192 "PhotoMetadata.c"
+ {
+ gboolean _tmp10_ = FALSE;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = TRUE;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ while (TRUE) {
+#line 8199 "PhotoMetadata.c"
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!_tmp10_) {
+#line 8206 "PhotoMetadata.c"
+ gint _tmp11_ = 0;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = i;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ i = _tmp11_ - 1;
+#line 8212 "PhotoMetadata.c"
+ }
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = FALSE;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = i;
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (!(_tmp12_ >= 0)) {
+#line 1146 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ break;
+#line 8222 "PhotoMetadata.c"
+ }
+#line 1147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = int_percent_rating;
+#line 1147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = i;
+#line 1147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = RESOURCES_rating_thresholds[_tmp14_];
+#line 1147 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp13_ >= _tmp15_) {
+#line 8232 "PhotoMetadata.c"
+ gint _tmp16_ = 0;
+ Rating _tmp17_ = 0;
+#line 1148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = i;
+#line 1148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = rating_unserialize (_tmp16_);
+#line 1148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp17_;
+#line 1148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (rating_string);
+#line 1148 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8245 "PhotoMetadata.c"
+ }
+ }
+ }
+ }
+#line 1150 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = rating_unserialize (-1);
+#line 1150 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp18_;
+#line 1150 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (rating_string);
+#line 1150 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8258 "PhotoMetadata.c"
+}
+
+
+void photo_metadata_set_rating (PhotoMetadata* self, Rating rating) {
+ gint int_rating = 0;
+ Rating _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 1158 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (self));
+#line 1159 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = rating;
+#line 1159 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = rating_serialize (_tmp0_);
+#line 1159 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ int_rating = _tmp1_;
+#line 1160 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = int_rating;
+#line 1160 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = g_strdup_printf ("%i", _tmp2_);
+#line 1160 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = _tmp3_;
+#line 1160 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Xmp.xmp.Rating", _tmp4_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1160 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp4_);
+#line 1161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = int_rating;
+#line 1161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = g_strdup_printf ("%i", _tmp5_);
+#line 1161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = _tmp6_;
+#line 1161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Exif.Image.Rating", _tmp7_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1161 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp7_);
+#line 1163 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = int_rating;
+#line 1163 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (0 <= _tmp8_) {
+#line 8305 "PhotoMetadata.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 1164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = int_rating;
+#line 1164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = RESOURCES_rating_thresholds[_tmp9_];
+#line 1164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = g_strdup_printf ("%i", _tmp10_);
+#line 1164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = _tmp11_;
+#line 1164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Exif.Image.RatingPercent", _tmp12_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1164 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp12_);
+#line 8322 "PhotoMetadata.c"
+ } else {
+ gint _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 1166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = int_rating;
+#line 1166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = g_strdup_printf ("%i", _tmp13_);
+#line 1166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = _tmp14_;
+#line 1166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_set_string (self, "Exif.Image.RatingPercent", _tmp15_, PHOTO_METADATA_PREPARE_STRING_OPTIONS);
+#line 1166 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (_tmp15_);
+#line 8337 "PhotoMetadata.c"
+ }
+}
+
+
+static gpointer _media_metadata_ref0 (gpointer self) {
+#line 123 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self ? media_metadata_ref (self) : NULL;
+#line 8345 "PhotoMetadata.c"
+}
+
+
+static PhotoMetadataInternalPhotoPreview* photo_metadata_internal_photo_preview_construct (GType object_type, PhotoMetadata* owner, const gchar* name, guint number, GExiv2PreviewProperties* props) {
+ PhotoMetadataInternalPhotoPreview* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ GExiv2PreviewProperties* _tmp1_ = NULL;
+ guint32 _tmp2_ = 0U;
+ GExiv2PreviewProperties* _tmp3_ = NULL;
+ guint32 _tmp4_ = 0U;
+ Dimensions _tmp5_ = {0};
+ GExiv2PreviewProperties* _tmp6_ = NULL;
+ guint32 _tmp7_ = 0U;
+ GExiv2PreviewProperties* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GExiv2PreviewProperties* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ PhotoMetadata* _tmp12_ = NULL;
+ PhotoMetadata* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+#line 118 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (IS_PHOTO_METADATA (owner), NULL);
+#line 118 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 118 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_return_val_if_fail (props != NULL, NULL);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = name;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = props;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = gexiv2_preview_properties_get_width (_tmp1_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = props;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = gexiv2_preview_properties_get_height (_tmp3_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ dimensions_init (&_tmp5_, (gint) _tmp2_, (gint) _tmp4_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = props;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = gexiv2_preview_properties_get_size (_tmp6_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = props;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = gexiv2_preview_properties_get_mime_type (_tmp8_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = props;
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = gexiv2_preview_properties_get_extension (_tmp10_);
+#line 120 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = (PhotoMetadataInternalPhotoPreview*) photo_preview_construct (object_type, _tmp0_, &_tmp5_, _tmp7_, _tmp9_, _tmp11_);
+#line 123 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = owner;
+#line 123 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = _media_metadata_ref0 (_tmp12_);
+#line 123 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _media_metadata_unref0 (self->owner);
+#line 123 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->owner = _tmp13_;
+#line 124 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = number;
+#line 124 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->number = _tmp14_;
+#line 118 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return self;
+#line 8412 "PhotoMetadata.c"
+}
+
+
+static PhotoMetadataInternalPhotoPreview* photo_metadata_internal_photo_preview_new (PhotoMetadata* owner, const gchar* name, guint number, GExiv2PreviewProperties* props) {
+#line 118 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return photo_metadata_internal_photo_preview_construct (PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW, owner, name, number, props);
+#line 8419 "PhotoMetadata.c"
+}
+
+
+static guint8* _vala_array_dup6 (guint8* self, int length) {
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return g_memdup (self, length * sizeof (guint8));
+#line 8426 "PhotoMetadata.c"
+}
+
+
+static guint8* photo_metadata_internal_photo_preview_real_flatten (PhotoPreview* base, int* result_length1, GError** error) {
+ PhotoMetadataInternalPhotoPreview * self;
+ guint8* result = NULL;
+ GExiv2PreviewProperties** props = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ GExiv2Metadata* _tmp1_ = NULL;
+ GExiv2PreviewProperties** _tmp2_ = NULL;
+ GExiv2PreviewProperties** _tmp3_ = NULL;
+ gint props_length1 = 0;
+ gint _props_size_ = 0;
+ gboolean _tmp4_ = FALSE;
+ GExiv2PreviewProperties** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ PhotoMetadata* _tmp8_ = NULL;
+ GExiv2Metadata* _tmp9_ = NULL;
+ GExiv2PreviewProperties** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ guint _tmp11_ = 0U;
+ GExiv2PreviewProperties* _tmp12_ = NULL;
+ GExiv2PreviewImage* _tmp13_ = NULL;
+ GExiv2PreviewImage* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ guint8* _tmp16_ = NULL;
+ guint8* _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ guint8* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ guint8* _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+#line 127 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW, PhotoMetadataInternalPhotoPreview);
+#line 128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = self->owner;
+#line 128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = _tmp0_->priv->exiv2;
+#line 128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = _tmp2_ = gexiv2_metadata_get_preview_properties (_tmp1_);
+#line 128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ props = _tmp3_;
+#line 128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ props_length1 = _vala_array_length (_tmp2_);
+#line 128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _props_size_ = props_length1;
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = props;
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5__length1 = props_length1;
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (_tmp5_ != NULL) {
+#line 8479 "PhotoMetadata.c"
+ GExiv2PreviewProperties** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ guint _tmp7_ = 0U;
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = props;
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6__length1 = props_length1;
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = self->number;
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = ((guint) _tmp6__length1) > _tmp7_;
+#line 8491 "PhotoMetadata.c"
+ } else {
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = FALSE;
+#line 8495 "PhotoMetadata.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _vala_assert (_tmp4_, "props != null && props.length > number");
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = self->owner;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = _tmp8_->priv->exiv2;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = props;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10__length1 = props_length1;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = self->number;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = _tmp10_[_tmp11_];
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = gexiv2_metadata_get_preview_image (_tmp9_, _tmp12_);
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = _tmp13_;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = gexiv2_preview_image_get_data (_tmp14_, &_tmp15_);
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = (_tmp16_ != NULL) ? _vala_array_dup6 (_tmp16_, _tmp15_) : ((gpointer) _tmp16_);
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17__length1 = _tmp15_;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = _tmp17_;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18__length1 = _tmp17__length1;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _gexiv2_preview_image_free0 (_tmp14_);
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = _tmp18_;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19__length1 = _tmp18__length1;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ if (result_length1) {
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ *result_length1 = _tmp19__length1;
+#line 8535 "PhotoMetadata.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ result = _tmp19_;
+#line 131 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ return result;
+#line 8541 "PhotoMetadata.c"
+}
+
+
+static void photo_metadata_internal_photo_preview_class_init (PhotoMetadataInternalPhotoPreviewClass * klass) {
+#line 114 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_internal_photo_preview_parent_class = g_type_class_peek_parent (klass);
+#line 114 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((PhotoPreviewClass *) klass)->finalize = photo_metadata_internal_photo_preview_finalize;
+#line 114 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((PhotoPreviewClass *) klass)->flatten = photo_metadata_internal_photo_preview_real_flatten;
+#line 8552 "PhotoMetadata.c"
+}
+
+
+static void photo_metadata_internal_photo_preview_instance_init (PhotoMetadataInternalPhotoPreview * self) {
+}
+
+
+static void photo_metadata_internal_photo_preview_finalize (PhotoPreview* obj) {
+ PhotoMetadataInternalPhotoPreview * self;
+#line 114 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTO_METADATA_TYPE_INTERNAL_PHOTO_PREVIEW, PhotoMetadataInternalPhotoPreview);
+#line 115 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _media_metadata_unref0 (self->owner);
+#line 114 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ PHOTO_PREVIEW_CLASS (photo_metadata_internal_photo_preview_parent_class)->finalize (obj);
+#line 8568 "PhotoMetadata.c"
+}
+
+
+static GType photo_metadata_internal_photo_preview_get_type (void) {
+ static volatile gsize photo_metadata_internal_photo_preview_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_metadata_internal_photo_preview_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoMetadataInternalPhotoPreviewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_metadata_internal_photo_preview_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoMetadataInternalPhotoPreview), 0, (GInstanceInitFunc) photo_metadata_internal_photo_preview_instance_init, NULL };
+ GType photo_metadata_internal_photo_preview_type_id;
+ photo_metadata_internal_photo_preview_type_id = g_type_register_static (TYPE_PHOTO_PREVIEW, "PhotoMetadataInternalPhotoPreview", &g_define_type_info, 0);
+ g_once_init_leave (&photo_metadata_internal_photo_preview_type_id__volatile, photo_metadata_internal_photo_preview_type_id);
+ }
+ return photo_metadata_internal_photo_preview_type_id__volatile;
+}
+
+
+static void photo_metadata_class_init (PhotoMetadataClass * klass) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar** _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar** _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar** _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar** _tmp31_ = NULL;
+ HierarchicalKeywordField* _tmp32_ = NULL;
+ HierarchicalKeywordField* _tmp33_ = NULL;
+ HierarchicalKeywordField* _tmp34_ = NULL;
+ HierarchicalKeywordField** _tmp35_ = NULL;
+ gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar** _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar** _tmp43_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_parent_class = g_type_class_peek_parent (klass);
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((MediaMetadataClass *) klass)->finalize = photo_metadata_finalize;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ g_type_class_add_private (klass, sizeof (PhotoMetadataPrivate));
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((MediaMetadataClass *) klass)->read_from_file = photo_metadata_real_read_from_file;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_creation_date_time = photo_metadata_real_get_creation_date_time;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_title = photo_metadata_real_get_title;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ ((MediaMetadataClass *) klass)->get_comment = photo_metadata_real_get_comment;
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = g_strdup ("Exif.Image.DateTime");
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup ("Xmp.tiff.DateTime");
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp2_ = g_strdup ("Xmp.xmp.ModifyDate");
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_ = g_new0 (gchar*, 3 + 1);
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_[0] = _tmp0_;
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_[1] = _tmp1_;
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp3_[2] = _tmp2_;
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_DATE_TIME_TAGS = _tmp3_;
+#line 674 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_DATE_TIME_TAGS_length1 = 3;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp4_ = g_strdup ("Exif.Photo.DateTimeOriginal");
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp5_ = g_strdup ("Xmp.exif.DateTimeOriginal");
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp6_ = g_strdup ("Xmp.xmp.CreateDate");
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp7_ = g_strdup ("Exif.Photo.DateTimeDigitized");
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp8_ = g_strdup ("Xmp.exif.DateTimeDigitized");
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp9_ = g_strdup ("Exif.Image.DateTime");
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_ = g_new0 (gchar*, 6 + 1);
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_[0] = _tmp4_;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_[1] = _tmp5_;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_[2] = _tmp6_;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_[3] = _tmp7_;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_[4] = _tmp8_;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp10_[5] = _tmp9_;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_EXPOSURE_DATE_TIME_TAGS = _tmp10_;
+#line 692 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_EXPOSURE_DATE_TIME_TAGS_length1 = 6;
+#line 713 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp11_ = g_strdup ("Exif.Photo.DateTimeDigitized");
+#line 713 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp12_ = g_strdup ("Xmp.exif.DateTimeDigitized");
+#line 713 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_ = g_new0 (gchar*, 2 + 1);
+#line 713 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_[0] = _tmp11_;
+#line 713 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp13_[1] = _tmp12_;
+#line 713 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_DIGITIZED_DATE_TIME_TAGS = _tmp13_;
+#line 713 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_DIGITIZED_DATE_TIME_TAGS_length1 = 2;
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp14_ = g_strdup ("Exif.Photo.PixelXDimension");
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp15_ = g_strdup ("Xmp.exif.PixelXDimension");
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp16_ = g_strdup ("Xmp.tiff.ImageWidth");
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp17_ = g_strdup ("Xmp.exif.PixelXDimension");
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_ = g_new0 (gchar*, 4 + 1);
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_[0] = _tmp14_;
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_[1] = _tmp15_;
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_[2] = _tmp16_;
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp18_[3] = _tmp17_;
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_WIDTH_TAGS = _tmp18_;
+#line 738 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_WIDTH_TAGS_length1 = 4;
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp19_ = g_strdup ("Exif.Photo.PixelYDimension");
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp20_ = g_strdup ("Xmp.exif.PixelYDimension");
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp21_ = g_strdup ("Xmp.tiff.ImageHeight");
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp22_ = g_strdup ("Xmp.exif.PixelYDimension");
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_ = g_new0 (gchar*, 4 + 1);
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_[0] = _tmp19_;
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_[1] = _tmp20_;
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_[2] = _tmp21_;
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp23_[3] = _tmp22_;
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_HEIGHT_TAGS = _tmp23_;
+#line 745 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_HEIGHT_TAGS_length1 = 4;
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp24_ = g_strdup ("Iptc.Application2.Caption");
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp25_ = g_strdup ("Xmp.dc.title");
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp26_ = g_strdup ("Iptc.Application2.Headline");
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp27_ = g_strdup ("Xmp.photoshop.Headline");
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_ = g_new0 (gchar*, 4 + 1);
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_[0] = _tmp24_;
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_[1] = _tmp25_;
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_[2] = _tmp26_;
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp28_[3] = _tmp27_;
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_STANDARD_TITLE_TAGS = _tmp28_;
+#line 804 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_STANDARD_TITLE_TAGS_length1 = 4;
+#line 859 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp29_ = g_strdup ("Xmp.dc.subject");
+#line 859 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp30_ = g_strdup ("Iptc.Application2.Keywords");
+#line 859 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp31_ = g_new0 (gchar*, 2 + 1);
+#line 859 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp31_[0] = _tmp29_;
+#line 859 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp31_[1] = _tmp30_;
+#line 859 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_KEYWORD_TAGS = _tmp31_;
+#line 859 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_KEYWORD_TAGS_length1 = 2;
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp32_ = hierarchical_keyword_field_new ("Xmp.lr.hierarchicalSubject", "|", FALSE, FALSE);
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp33_ = hierarchical_keyword_field_new ("Xmp.digiKam.TagsList", "/", FALSE, TRUE);
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp34_ = hierarchical_keyword_field_new ("Xmp.MicrosoftPhoto.LastKeywordXMP", "/", FALSE, TRUE);
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp35_ = g_new0 (HierarchicalKeywordField*, 3 + 1);
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp35_[0] = _tmp32_;
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp35_[1] = _tmp33_;
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp35_[2] = _tmp34_;
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_HIERARCHICAL_KEYWORD_TAGS = _tmp35_;
+#line 864 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_HIERARCHICAL_KEYWORD_TAGS_length1 = 3;
+#line 1091 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp36_ = g_strdup ("Exif.Image.Artist");
+#line 1091 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp37_ = g_strdup ("Exif.Canon.OwnerName");
+#line 1091 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp38_ = g_new0 (gchar*, 2 + 1);
+#line 1091 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp38_[0] = _tmp36_;
+#line 1091 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp38_[1] = _tmp37_;
+#line 1091 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_ARTIST_TAGS = _tmp38_;
+#line 1091 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_ARTIST_TAGS_length1 = 2;
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp39_ = g_strdup ("Xmp.xmp.Rating");
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp40_ = g_strdup ("Iptc.Application2.Urgency");
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp41_ = g_strdup ("Xmp.photoshop.Urgency");
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp42_ = g_strdup ("Exif.Image.Rating");
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp43_ = g_new0 (gchar*, 4 + 1);
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp43_[0] = _tmp39_;
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp43_[1] = _tmp40_;
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp43_[2] = _tmp41_;
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp43_[3] = _tmp42_;
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_RATING_TAGS = _tmp43_;
+#line 1128 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ photo_metadata_RATING_TAGS_length1 = 4;
+#line 8839 "PhotoMetadata.c"
+}
+
+
+static void photo_metadata_instance_init (PhotoMetadata * self) {
+ GExiv2Metadata* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv = PHOTO_METADATA_GET_PRIVATE (self);
+#line 135 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp0_ = gexiv2_metadata_new ();
+#line 135 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exiv2 = _tmp0_;
+#line 136 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->exif = NULL;
+#line 137 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _tmp1_ = g_strdup ("<uninitialized>");
+#line 137 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self->priv->source_name = _tmp1_;
+#line 8858 "PhotoMetadata.c"
+}
+
+
+static void photo_metadata_finalize (MediaMetadata* obj) {
+ PhotoMetadata * self;
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PHOTO_METADATA, PhotoMetadata);
+#line 135 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _gexiv2_metadata_free0 (self->priv->exiv2);
+#line 136 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _exif_data_unref0 (self->priv->exif);
+#line 137 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ _g_free0 (self->priv->source_name);
+#line 99 "/home/jens/Source/shotwell/src/photos/PhotoMetadata.vala"
+ MEDIA_METADATA_CLASS (photo_metadata_parent_class)->finalize (obj);
+#line 8874 "PhotoMetadata.c"
+}
+
+
+GType photo_metadata_get_type (void) {
+ static volatile gsize photo_metadata_type_id__volatile = 0;
+ if (g_once_init_enter (&photo_metadata_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotoMetadataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photo_metadata_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotoMetadata), 0, (GInstanceInitFunc) photo_metadata_instance_init, NULL };
+ GType photo_metadata_type_id;
+ photo_metadata_type_id = g_type_register_static (TYPE_MEDIA_METADATA, "PhotoMetadata", &g_define_type_info, 0);
+ g_once_init_leave (&photo_metadata_type_id__volatile, photo_metadata_type_id);
+ }
+ return photo_metadata_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/photos/Photos.c b/src/photos/Photos.c
new file mode 100644
index 0000000..434f905
--- /dev/null
+++ b/src/photos/Photos.c
@@ -0,0 +1,89 @@
+/* Photos.c generated by valac 0.32.1, the Vala compiler
+ * generated from Photos.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* This file is the master unit file for the Photo unit. It should be edited to include
+ * whatever code is deemed necessary.
+ *
+ * The init() and terminate() methods are mandatory.
+ *
+ * If the unit needs to be configured prior to initialization, add the proper parameters to
+ * the preconfigure() method, implement it, and ensure in init() that it's been called.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+
+
+void photos_preconfigure (void);
+void photos_init (GError** error);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat* photo_file_format_get_supported (int* result_length1);
+void photo_file_format_init (PhotoFileFormat self);
+void photos_terminate (void);
+
+
+void photos_preconfigure (void) {
+}
+
+
+void photos_init (GError** error) {
+ gint _tmp0_ = 0;
+ PhotoFileFormat* _tmp1_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ _tmp1_ = photo_file_format_get_supported (&_tmp0_);
+#line 53 "Photos.c"
+ {
+ PhotoFileFormat* format_collection = NULL;
+ gint format_collection_length1 = 0;
+ gint _format_collection_size_ = 0;
+ gint format_it = 0;
+#line 23 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ format_collection = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ format_collection_length1 = _tmp0_;
+#line 23 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ for (format_it = 0; format_it < _tmp0_; format_it = format_it + 1) {
+#line 65 "Photos.c"
+ PhotoFileFormat format = 0;
+#line 23 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ format = format_collection[format_it];
+#line 69 "Photos.c"
+ {
+ PhotoFileFormat _tmp2_ = 0;
+#line 24 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ _tmp2_ = format;
+#line 24 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ photo_file_format_init (_tmp2_);
+#line 76 "Photos.c"
+ }
+ }
+#line 23 "/home/jens/Source/shotwell/src/photos/Photos.vala"
+ format_collection = (g_free (format_collection), NULL);
+#line 81 "Photos.c"
+ }
+}
+
+
+void photos_terminate (void) {
+}
+
+
+
diff --git a/src/photos/PngSupport.c b/src/photos/PngSupport.c
new file mode 100644
index 0000000..98d4cd2
--- /dev/null
+++ b/src/photos/PngSupport.c
@@ -0,0 +1,1929 @@
+/* PngSupport.c generated by valac 0.32.1, the Vala compiler
+ * generated from PngSupport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+typedef struct _PhotoFileFormatPropertiesPrivate PhotoFileFormatPropertiesPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT_FLAGS (photo_file_format_flags_get_type ())
+
+#define TYPE_PNG_FILE_FORMAT_PROPERTIES (png_file_format_properties_get_type ())
+#define PNG_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties))
+#define PNG_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatPropertiesClass))
+#define IS_PNG_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PNG_FILE_FORMAT_PROPERTIES))
+#define IS_PNG_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PNG_FILE_FORMAT_PROPERTIES))
+#define PNG_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatPropertiesClass))
+
+typedef struct _PngFileFormatProperties PngFileFormatProperties;
+typedef struct _PngFileFormatPropertiesClass PngFileFormatPropertiesClass;
+typedef struct _PngFileFormatPropertiesPrivate PngFileFormatPropertiesPrivate;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate;
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_GDK_SNIFFER (gdk_sniffer_get_type ())
+#define GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_SNIFFER, GdkSniffer))
+#define GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_SNIFFER, GdkSnifferClass))
+#define IS_GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_SNIFFER))
+#define IS_GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_SNIFFER))
+#define GDK_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_SNIFFER, GdkSnifferClass))
+
+typedef struct _GdkSniffer GdkSniffer;
+typedef struct _GdkSnifferClass GdkSnifferClass;
+typedef struct _GdkSnifferPrivate GdkSnifferPrivate;
+
+#define TYPE_PNG_SNIFFER (png_sniffer_get_type ())
+#define PNG_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PNG_SNIFFER, PngSniffer))
+#define PNG_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PNG_SNIFFER, PngSnifferClass))
+#define IS_PNG_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PNG_SNIFFER))
+#define IS_PNG_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PNG_SNIFFER))
+#define PNG_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PNG_SNIFFER, PngSnifferClass))
+
+typedef struct _PngSniffer PngSniffer;
+typedef struct _PngSnifferClass PngSnifferClass;
+typedef struct _PngSnifferPrivate PngSnifferPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate;
+
+#define TYPE_GDK_READER (gdk_reader_get_type ())
+#define GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_READER, GdkReader))
+#define GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_READER, GdkReaderClass))
+#define IS_GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_READER))
+#define IS_GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_READER))
+#define GDK_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_READER, GdkReaderClass))
+
+typedef struct _GdkReader GdkReader;
+typedef struct _GdkReaderClass GdkReaderClass;
+typedef struct _GdkReaderPrivate GdkReaderPrivate;
+
+#define TYPE_PNG_READER (png_reader_get_type ())
+#define PNG_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PNG_READER, PngReader))
+#define PNG_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PNG_READER, PngReaderClass))
+#define IS_PNG_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PNG_READER))
+#define IS_PNG_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PNG_READER))
+#define PNG_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PNG_READER, PngReaderClass))
+
+typedef struct _PngReader PngReader;
+typedef struct _PngReaderClass PngReaderClass;
+typedef struct _PngReaderPrivate PngReaderPrivate;
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+typedef struct _PhotoFileWriterPrivate PhotoFileWriterPrivate;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+
+#define TYPE_PNG_WRITER (png_writer_get_type ())
+#define PNG_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PNG_WRITER, PngWriter))
+#define PNG_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PNG_WRITER, PngWriterClass))
+#define IS_PNG_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PNG_WRITER))
+#define IS_PNG_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PNG_WRITER))
+#define PNG_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PNG_WRITER, PngWriterClass))
+
+typedef struct _PngWriter PngWriter;
+typedef struct _PngWriterClass PngWriterClass;
+typedef struct _PngWriterPrivate PngWriterPrivate;
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+typedef struct _PhotoFileMetadataWriterPrivate PhotoFileMetadataWriterPrivate;
+
+#define TYPE_PNG_METADATA_WRITER (png_metadata_writer_get_type ())
+#define PNG_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PNG_METADATA_WRITER, PngMetadataWriter))
+#define PNG_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PNG_METADATA_WRITER, PngMetadataWriterClass))
+#define IS_PNG_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PNG_METADATA_WRITER))
+#define IS_PNG_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PNG_METADATA_WRITER))
+#define PNG_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PNG_METADATA_WRITER, PngMetadataWriterClass))
+
+typedef struct _PngMetadataWriter PngMetadataWriter;
+typedef struct _PngMetadataWriterClass PngMetadataWriterClass;
+typedef struct _PngMetadataWriterPrivate PngMetadataWriterPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT_DRIVER (photo_file_format_driver_get_type ())
+#define PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver))
+#define PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+#define IS_PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define IS_PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define PHOTO_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+
+typedef struct _PhotoFileFormatDriver PhotoFileFormatDriver;
+typedef struct _PhotoFileFormatDriverClass PhotoFileFormatDriverClass;
+typedef struct _PhotoFileFormatDriverPrivate PhotoFileFormatDriverPrivate;
+
+#define TYPE_PNG_FILE_FORMAT_DRIVER (png_file_format_driver_get_type ())
+#define PNG_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver))
+#define PNG_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriverClass))
+#define IS_PNG_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PNG_FILE_FORMAT_DRIVER))
+#define IS_PNG_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PNG_FILE_FORMAT_DRIVER))
+#define PNG_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriverClass))
+
+typedef struct _PngFileFormatDriver PngFileFormatDriver;
+typedef struct _PngFileFormatDriverClass PngFileFormatDriverClass;
+typedef struct _PngFileFormatDriverPrivate PngFileFormatDriverPrivate;
+#define _photo_file_format_driver_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_driver_unref (var), NULL)))
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_FLAGS_NONE = 0x00000000
+} PhotoFileFormatFlags;
+
+struct _PhotoFileFormatProperties {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotoFileFormatPropertiesClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatProperties *self);
+ PhotoFileFormat (*get_file_format) (PhotoFileFormatProperties* self);
+ PhotoFileFormatFlags (*get_flags) (PhotoFileFormatProperties* self);
+ gboolean (*is_recognized_extension) (PhotoFileFormatProperties* self, const gchar* ext);
+ gchar* (*get_default_extension) (PhotoFileFormatProperties* self);
+ gchar** (*get_known_extensions) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_default_mime_type) (PhotoFileFormatProperties* self);
+ gchar** (*get_mime_types) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_user_visible_name) (PhotoFileFormatProperties* self);
+};
+
+struct _PngFileFormatProperties {
+ PhotoFileFormatProperties parent_instance;
+ PngFileFormatPropertiesPrivate * priv;
+};
+
+struct _PngFileFormatPropertiesClass {
+ PhotoFileFormatPropertiesClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileSniffer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileSnifferPrivate * priv;
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ gboolean calc_md5;
+};
+
+struct _PhotoFileSnifferClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileSniffer *self);
+ DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+};
+
+struct _GdkSniffer {
+ PhotoFileSniffer parent_instance;
+ GdkSnifferPrivate * priv;
+};
+
+struct _GdkSnifferClass {
+ PhotoFileSnifferClass parent_class;
+};
+
+struct _PngSniffer {
+ GdkSniffer parent_instance;
+ PngSnifferPrivate * priv;
+};
+
+struct _PngSnifferClass {
+ GdkSnifferClass parent_class;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+struct _PhotoFileAdapter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileAdapterPrivate * priv;
+};
+
+struct _PhotoFileAdapterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileAdapter *self);
+};
+
+struct _PhotoFileReader {
+ PhotoFileAdapter parent_instance;
+ PhotoFileReaderPrivate * priv;
+};
+
+struct _PhotoFileReaderClass {
+ PhotoFileAdapterClass parent_class;
+ PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+};
+
+struct _GdkReader {
+ PhotoFileReader parent_instance;
+ GdkReaderPrivate * priv;
+};
+
+struct _GdkReaderClass {
+ PhotoFileReaderClass parent_class;
+};
+
+struct _PngReader {
+ GdkReader parent_instance;
+ PngReaderPrivate * priv;
+};
+
+struct _PngReaderClass {
+ GdkReaderClass parent_class;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _PhotoFileWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileWriterPrivate * priv;
+};
+
+struct _PhotoFileWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write) (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+};
+
+struct _PngWriter {
+ PhotoFileWriter parent_instance;
+ PngWriterPrivate * priv;
+};
+
+struct _PngWriterClass {
+ PhotoFileWriterClass parent_class;
+};
+
+struct _PhotoFileMetadataWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileMetadataWriterPrivate * priv;
+};
+
+struct _PhotoFileMetadataWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write_metadata) (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+};
+
+struct _PngMetadataWriter {
+ PhotoFileMetadataWriter parent_instance;
+ PngMetadataWriterPrivate * priv;
+};
+
+struct _PngMetadataWriterClass {
+ PhotoFileMetadataWriterClass parent_class;
+};
+
+struct _PhotoFileFormatDriver {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatDriverPrivate * priv;
+};
+
+struct _PhotoFileFormatDriverClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatDriver *self);
+ PhotoFileFormatProperties* (*get_properties) (PhotoFileFormatDriver* self);
+ PhotoFileReader* (*create_reader) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoMetadata* (*create_metadata) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_image) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_metadata) (PhotoFileFormatDriver* self);
+ PhotoFileWriter* (*create_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileMetadataWriter* (*create_metadata_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileSniffer* (*create_sniffer) (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+};
+
+struct _PngFileFormatDriver {
+ PhotoFileFormatDriver parent_instance;
+ PngFileFormatDriverPrivate * priv;
+};
+
+struct _PngFileFormatDriverClass {
+ PhotoFileFormatDriverClass parent_class;
+};
+
+
+static gpointer png_file_format_properties_parent_class = NULL;
+static gchar** png_file_format_properties_KNOWN_EXTENSIONS;
+static gint png_file_format_properties_KNOWN_EXTENSIONS_length1;
+static gchar** png_file_format_properties_KNOWN_EXTENSIONS = NULL;
+static gint png_file_format_properties_KNOWN_EXTENSIONS_length1 = 0;
+static gint _png_file_format_properties_KNOWN_EXTENSIONS_size_ = 0;
+static gchar** png_file_format_properties_KNOWN_MIME_TYPES;
+static gint png_file_format_properties_KNOWN_MIME_TYPES_length1;
+static gchar** png_file_format_properties_KNOWN_MIME_TYPES = NULL;
+static gint png_file_format_properties_KNOWN_MIME_TYPES_length1 = 0;
+static gint _png_file_format_properties_KNOWN_MIME_TYPES_size_ = 0;
+static PngFileFormatProperties* png_file_format_properties_instance;
+static PngFileFormatProperties* png_file_format_properties_instance = NULL;
+static gpointer png_sniffer_parent_class = NULL;
+static gpointer png_reader_parent_class = NULL;
+static gpointer png_writer_parent_class = NULL;
+static gpointer png_metadata_writer_parent_class = NULL;
+static gpointer png_file_format_driver_parent_class = NULL;
+static PngFileFormatDriver* png_file_format_driver_instance;
+static PngFileFormatDriver* png_file_format_driver_instance = NULL;
+
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType photo_file_format_flags_get_type (void) G_GNUC_CONST;
+GType png_file_format_properties_get_type (void) G_GNUC_CONST;
+enum {
+ PNG_FILE_FORMAT_PROPERTIES_DUMMY_PROPERTY
+};
+void png_file_format_properties_init (void);
+PngFileFormatProperties* png_file_format_properties_new (void);
+PngFileFormatProperties* png_file_format_properties_construct (GType object_type);
+PngFileFormatProperties* png_file_format_properties_get_instance (void);
+static PhotoFileFormat png_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base);
+static PhotoFileFormatFlags png_file_format_properties_real_get_flags (PhotoFileFormatProperties* base);
+static gchar* png_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base);
+static gchar* png_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base);
+static gchar** png_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup14 (gchar** self, int length);
+static gchar* png_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base);
+static gchar** png_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup15 (gchar** self, int length);
+PhotoFileFormatProperties* photo_file_format_properties_construct (GType object_type);
+static void png_file_format_properties_finalize (PhotoFileFormatProperties* obj);
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+GType gdk_sniffer_get_type (void) G_GNUC_CONST;
+GType png_sniffer_get_type (void) G_GNUC_CONST;
+enum {
+ PNG_SNIFFER_DUMMY_PROPERTY
+};
+PngSniffer* png_sniffer_new (GFile* file, PhotoFileSnifferOptions options);
+PngSniffer* png_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+static gboolean png_sniffer_is_png_file (GFile* file, GError** error);
+static DetectedPhotoInformation* png_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error);
+DetectedPhotoInformation* photo_file_sniffer_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+GType gdk_reader_get_type (void) G_GNUC_CONST;
+GType png_reader_get_type (void) G_GNUC_CONST;
+enum {
+ PNG_READER_DUMMY_PROPERTY
+};
+PngReader* png_reader_new (const gchar* filepath);
+PngReader* png_reader_construct (GType object_type, const gchar* filepath);
+GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static GdkPixbuf* png_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error);
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+void dimensions_get_scaled_by_constraint (Dimensions *self, gint scale, ScaleConstraint constraint, Dimensions* result);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+GType png_writer_get_type (void) G_GNUC_CONST;
+enum {
+ PNG_WRITER_DUMMY_PROPERTY
+};
+PngWriter* png_writer_new (const gchar* filepath);
+PngWriter* png_writer_construct (GType object_type, const gchar* filepath);
+PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void png_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+GType png_metadata_writer_get_type (void) G_GNUC_CONST;
+enum {
+ PNG_METADATA_WRITER_DUMMY_PROPERTY
+};
+PngMetadataWriter* png_metadata_writer_new (const gchar* filepath);
+PngMetadataWriter* png_metadata_writer_construct (GType object_type, const gchar* filepath);
+PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void png_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error);
+void photo_metadata_write_to_file (PhotoMetadata* self, GFile* file, GError** error);
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self);
+gpointer photo_file_format_driver_ref (gpointer instance);
+void photo_file_format_driver_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_driver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_driver (GValue* value, gpointer v_object);
+void value_take_photo_file_format_driver (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_driver (const GValue* value);
+GType photo_file_format_driver_get_type (void) G_GNUC_CONST;
+GType png_file_format_driver_get_type (void) G_GNUC_CONST;
+enum {
+ PNG_FILE_FORMAT_DRIVER_DUMMY_PROPERTY
+};
+void png_file_format_driver_init (void);
+PngFileFormatDriver* png_file_format_driver_new (void);
+PngFileFormatDriver* png_file_format_driver_construct (GType object_type);
+PngFileFormatDriver* png_file_format_driver_get_instance (void);
+static PhotoFileFormatProperties* png_file_format_driver_real_get_properties (PhotoFileFormatDriver* base);
+static PhotoFileReader* png_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath);
+static gboolean png_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base);
+static gboolean png_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base);
+static PhotoFileWriter* png_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+static PhotoFileMetadataWriter* png_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+static PhotoFileSniffer* png_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options);
+static PhotoMetadata* png_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base);
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+PhotoFileFormatDriver* photo_file_format_driver_construct (GType object_type);
+static void png_file_format_driver_finalize (PhotoFileFormatDriver* obj);
+
+static const guint8 PNG_SNIFFER_MAGIC_SEQUENCE[8] = {(guint8) 137, (guint8) 80, (guint8) 78, (guint8) 71, (guint8) 13, (guint8) 10, (guint8) 26, (guint8) 10};
+
+void png_file_format_properties_init (void) {
+ PngFileFormatProperties* _tmp0_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_properties_new ();
+#line 14 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _photo_file_format_properties_unref0 (png_file_format_properties_instance);
+#line 14 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_properties_instance = _tmp0_;
+#line 627 "PngSupport.c"
+}
+
+
+static gpointer _photo_file_format_properties_ref0 (gpointer self) {
+#line 18 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self ? photo_file_format_properties_ref (self) : NULL;
+#line 634 "PngSupport.c"
+}
+
+
+PngFileFormatProperties* png_file_format_properties_get_instance (void) {
+ PngFileFormatProperties* result = NULL;
+ PngFileFormatProperties* _tmp0_ = NULL;
+ PngFileFormatProperties* _tmp1_ = NULL;
+#line 18 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_properties_instance;
+#line 18 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = _photo_file_format_properties_ref0 (_tmp0_);
+#line 18 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp1_;
+#line 18 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 650 "PngSupport.c"
+}
+
+
+static PhotoFileFormat png_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base) {
+ PngFileFormatProperties * self;
+ PhotoFileFormat result = 0;
+#line 21 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 22 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = PHOTO_FILE_FORMAT_PNG;
+#line 22 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 663 "PngSupport.c"
+}
+
+
+static PhotoFileFormatFlags png_file_format_properties_real_get_flags (PhotoFileFormatProperties* base) {
+ PngFileFormatProperties * self;
+ PhotoFileFormatFlags result = 0;
+#line 25 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 26 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = PHOTO_FILE_FORMAT_FLAGS_NONE;
+#line 26 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 676 "PngSupport.c"
+}
+
+
+static gchar* png_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base) {
+ PngFileFormatProperties * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 30 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = _ ("PNG");
+#line 30 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 30 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp1_;
+#line 30 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 695 "PngSupport.c"
+}
+
+
+static gchar* png_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base) {
+ PngFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 34 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_properties_KNOWN_EXTENSIONS;
+#line 34 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0__length1 = png_file_format_properties_KNOWN_EXTENSIONS_length1;
+#line 34 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = _tmp0_[0];
+#line 34 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 34 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp2_;
+#line 34 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 720 "PngSupport.c"
+}
+
+
+static gchar** _vala_array_dup14 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 731 "PngSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result[i] = _tmp0_;
+#line 737 "PngSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 741 "PngSupport.c"
+}
+
+
+static gchar** png_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1) {
+ PngFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 37 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_properties_KNOWN_EXTENSIONS;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0__length1 = png_file_format_properties_KNOWN_EXTENSIONS_length1;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup14 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (result_length1) {
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 772 "PngSupport.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp2_;
+#line 38 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 778 "PngSupport.c"
+}
+
+
+static gchar* png_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base) {
+ PngFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 42 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_properties_KNOWN_MIME_TYPES;
+#line 42 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0__length1 = png_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 42 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = _tmp0_[0];
+#line 42 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 42 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp2_;
+#line 42 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 803 "PngSupport.c"
+}
+
+
+static gchar** _vala_array_dup15 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 814 "PngSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result[i] = _tmp0_;
+#line 820 "PngSupport.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 824 "PngSupport.c"
+}
+
+
+static gchar** png_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1) {
+ PngFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 45 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_properties_KNOWN_MIME_TYPES;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0__length1 = png_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup15 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (result_length1) {
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 855 "PngSupport.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 861 "PngSupport.c"
+}
+
+
+PngFileFormatProperties* png_file_format_properties_construct (GType object_type) {
+ PngFileFormatProperties* self = NULL;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = (PngFileFormatProperties*) photo_file_format_properties_construct (object_type);
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self;
+#line 871 "PngSupport.c"
+}
+
+
+PngFileFormatProperties* png_file_format_properties_new (void) {
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return png_file_format_properties_construct (TYPE_PNG_FILE_FORMAT_PROPERTIES);
+#line 878 "PngSupport.c"
+}
+
+
+static void png_file_format_properties_class_init (PngFileFormatPropertiesClass * klass) {
+ gchar* _tmp0_ = NULL;
+ gchar** _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_properties_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->finalize = png_file_format_properties_finalize;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_file_format = png_file_format_properties_real_get_file_format;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_flags = png_file_format_properties_real_get_flags;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_user_visible_name = png_file_format_properties_real_get_user_visible_name;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_extension = png_file_format_properties_real_get_default_extension;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_known_extensions = png_file_format_properties_real_get_known_extensions;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_mime_type = png_file_format_properties_real_get_default_mime_type;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_mime_types = png_file_format_properties_real_get_mime_types;
+#line 8 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = g_strdup ("png");
+#line 8 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = g_new0 (gchar*, 1 + 1);
+#line 8 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_[0] = _tmp0_;
+#line 8 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_properties_KNOWN_EXTENSIONS = _tmp1_;
+#line 8 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_properties_KNOWN_EXTENSIONS_length1 = 1;
+#line 9 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = g_strdup ("image/png");
+#line 9 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp3_ = g_new0 (gchar*, 1 + 1);
+#line 9 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp3_[0] = _tmp2_;
+#line 9 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_properties_KNOWN_MIME_TYPES = _tmp3_;
+#line 9 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_properties_KNOWN_MIME_TYPES_length1 = 1;
+#line 925 "PngSupport.c"
+}
+
+
+static void png_file_format_properties_instance_init (PngFileFormatProperties * self) {
+}
+
+
+static void png_file_format_properties_finalize (PhotoFileFormatProperties* obj) {
+ PngFileFormatProperties * self;
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PNG_FILE_FORMAT_PROPERTIES, PngFileFormatProperties);
+#line 7 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ PHOTO_FILE_FORMAT_PROPERTIES_CLASS (png_file_format_properties_parent_class)->finalize (obj);
+#line 939 "PngSupport.c"
+}
+
+
+GType png_file_format_properties_get_type (void) {
+ static volatile gsize png_file_format_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&png_file_format_properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PngFileFormatPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) png_file_format_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PngFileFormatProperties), 0, (GInstanceInitFunc) png_file_format_properties_instance_init, NULL };
+ GType png_file_format_properties_type_id;
+ png_file_format_properties_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_PROPERTIES, "PngFileFormatProperties", &g_define_type_info, 0);
+ g_once_init_leave (&png_file_format_properties_type_id__volatile, png_file_format_properties_type_id);
+ }
+ return png_file_format_properties_type_id__volatile;
+}
+
+
+PngSniffer* png_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ PngSniffer* self = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+#line 53 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 54 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = file;
+#line 54 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = options;
+#line 54 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = (PngSniffer*) gdk_sniffer_construct (object_type, _tmp0_, _tmp1_);
+#line 53 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self;
+#line 969 "PngSupport.c"
+}
+
+
+PngSniffer* png_sniffer_new (GFile* file, PhotoFileSnifferOptions options) {
+#line 53 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return png_sniffer_construct (TYPE_PNG_SNIFFER, file, options);
+#line 976 "PngSupport.c"
+}
+
+
+static gboolean png_sniffer_is_png_file (GFile* file, GError** error) {
+ gboolean result = FALSE;
+ GFileInputStream* instream = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInputStream* _tmp1_ = NULL;
+ guint8* file_lead_sequence = NULL;
+ guint8* _tmp2_ = NULL;
+ gint file_lead_sequence_length1 = 0;
+ gint _file_lead_sequence_size_ = 0;
+ GFileInputStream* _tmp3_ = NULL;
+ guint8* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 58 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = file;
+#line 58 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = g_file_read (_tmp0_, NULL, &_inner_error_);
+#line 58 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ instream = _tmp1_;
+#line 58 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 58 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 58 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return FALSE;
+#line 1007 "PngSupport.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = g_new0 (guint8, G_N_ELEMENTS (PNG_SNIFFER_MAGIC_SEQUENCE));
+#line 60 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ file_lead_sequence = _tmp2_;
+#line 60 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ file_lead_sequence_length1 = G_N_ELEMENTS (PNG_SNIFFER_MAGIC_SEQUENCE);
+#line 60 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _file_lead_sequence_size_ = file_lead_sequence_length1;
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp3_ = instream;
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp4_ = file_lead_sequence;
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp4__length1 = file_lead_sequence_length1;
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_input_stream_read (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, G_TYPE_INPUT_STREAM, GInputStream), _tmp4_, (gsize) _tmp4__length1, NULL, &_inner_error_);
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ file_lead_sequence = (g_free (file_lead_sequence), NULL);
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (instream);
+#line 62 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return FALSE;
+#line 1035 "PngSupport.c"
+ }
+ {
+ gint i = 0;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ i = 0;
+#line 1041 "PngSupport.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp5_ = TRUE;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ while (TRUE) {
+#line 1048 "PngSupport.c"
+ gint _tmp7_ = 0;
+ guint8* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ guint8 _tmp10_ = 0U;
+ gint _tmp11_ = 0;
+ guint8 _tmp12_ = 0U;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (!_tmp5_) {
+#line 1058 "PngSupport.c"
+ gint _tmp6_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp6_ = i;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ i = _tmp6_ + 1;
+#line 1064 "PngSupport.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp5_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp7_ = i;
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (!(_tmp7_ < G_N_ELEMENTS (PNG_SNIFFER_MAGIC_SEQUENCE))) {
+#line 64 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ break;
+#line 1074 "PngSupport.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp8_ = file_lead_sequence;
+#line 65 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp8__length1 = file_lead_sequence_length1;
+#line 65 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp9_ = i;
+#line 65 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 65 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp11_ = i;
+#line 65 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp12_ = PNG_SNIFFER_MAGIC_SEQUENCE[_tmp11_];
+#line 65 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (_tmp10_ != _tmp12_) {
+#line 66 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = FALSE;
+#line 66 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ file_lead_sequence = (g_free (file_lead_sequence), NULL);
+#line 66 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (instream);
+#line 66 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1098 "PngSupport.c"
+ }
+ }
+ }
+ }
+#line 69 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = TRUE;
+#line 69 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ file_lead_sequence = (g_free (file_lead_sequence), NULL);
+#line 69 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (instream);
+#line 69 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1111 "PngSupport.c"
+}
+
+
+static gpointer _detected_photo_information_ref0 (gpointer self) {
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self ? detected_photo_information_ref (self) : NULL;
+#line 1118 "PngSupport.c"
+}
+
+
+static DetectedPhotoInformation* png_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error) {
+ PngSniffer * self;
+ gboolean _vala_is_corrupted = FALSE;
+ DetectedPhotoInformation* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ DetectedPhotoInformation* detected = NULL;
+ gboolean _tmp3_ = FALSE;
+ DetectedPhotoInformation* _tmp4_ = NULL;
+ DetectedPhotoInformation* _tmp5_ = NULL;
+ DetectedPhotoInformation* _tmp6_ = NULL;
+ DetectedPhotoInformation* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+ DetectedPhotoInformation* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_SNIFFER, PngSniffer);
+#line 74 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _vala_is_corrupted = FALSE;
+#line 76 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 76 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = png_sniffer_is_png_file (_tmp1_, &_inner_error_);
+#line 76 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = _tmp2_;
+#line 76 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 76 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 76 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return NULL;
+#line 1154 "PngSupport.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (!_tmp0_) {
+#line 77 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = NULL;
+#line 77 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (is_corrupted) {
+#line 77 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1164 "PngSupport.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1168 "PngSupport.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp4_ = PHOTO_FILE_SNIFFER_CLASS (png_sniffer_parent_class)->sniff (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GDK_SNIFFER, GdkSniffer), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer), &_tmp3_, &_inner_error_);
+#line 79 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _vala_is_corrupted = _tmp3_;
+#line 79 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ detected = _tmp4_;
+#line 79 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 79 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 79 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return NULL;
+#line 1182 "PngSupport.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp5_ = detected;
+#line 80 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (_tmp5_ == NULL) {
+#line 81 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = NULL;
+#line 81 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 81 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (is_corrupted) {
+#line 81 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1196 "PngSupport.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1200 "PngSupport.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp7_ = detected;
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp8_ = _tmp7_->file_format;
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (_tmp8_ == PHOTO_FILE_FORMAT_PNG) {
+#line 1208 "PngSupport.c"
+ DetectedPhotoInformation* _tmp9_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp9_ = detected;
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp6_ = _tmp9_;
+#line 1214 "PngSupport.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp6_ = NULL;
+#line 1218 "PngSupport.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp10_ = _detected_photo_information_ref0 (_tmp6_);
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp10_;
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (is_corrupted) {
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1230 "PngSupport.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1234 "PngSupport.c"
+}
+
+
+static void png_sniffer_class_init (PngSnifferClass * klass) {
+#line 50 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 50 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileSnifferClass *) klass)->sniff = png_sniffer_real_sniff;
+#line 1243 "PngSupport.c"
+}
+
+
+static void png_sniffer_instance_init (PngSniffer * self) {
+}
+
+
+GType png_sniffer_get_type (void) {
+ static volatile gsize png_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&png_sniffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PngSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) png_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PngSniffer), 0, (GInstanceInitFunc) png_sniffer_instance_init, NULL };
+ GType png_sniffer_type_id;
+ png_sniffer_type_id = g_type_register_static (TYPE_GDK_SNIFFER, "PngSniffer", &g_define_type_info, 0);
+ g_once_init_leave (&png_sniffer_type_id__volatile, png_sniffer_type_id);
+ }
+ return png_sniffer_type_id__volatile;
+}
+
+
+PngReader* png_reader_construct (GType object_type, const gchar* filepath) {
+ PngReader* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 89 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = filepath;
+#line 89 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = (PngReader*) gdk_reader_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_PNG);
+#line 88 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self;
+#line 1274 "PngSupport.c"
+}
+
+
+PngReader* png_reader_new (const gchar* filepath) {
+#line 88 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return png_reader_construct (TYPE_PNG_READER, filepath);
+#line 1281 "PngSupport.c"
+}
+
+
+static GdkPixbuf* png_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error) {
+ PngReader * self;
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* _result_ = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GError * _inner_error_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_READER, PngReader);
+#line 92 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (full != NULL, NULL);
+#line 92 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (scaled != NULL, NULL);
+#line 93 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _result_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = *full;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp3_ = _tmp2_.width;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (_tmp3_ > 9999) {
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = TRUE;
+#line 1310 "PngSupport.c"
+ } else {
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp4_ = *full;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp5_ = _tmp4_.height;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = _tmp5_ > 9999;
+#line 1320 "PngSupport.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (_tmp1_) {
+#line 1324 "PngSupport.c"
+ gboolean _tmp6_ = FALSE;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp7_ = *scaled;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp8_ = _tmp7_.width;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (_tmp8_ < 100) {
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp6_ = TRUE;
+#line 1336 "PngSupport.c"
+ } else {
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 103 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp9_ = *scaled;
+#line 103 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp10_ = _tmp9_.height;
+#line 103 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp6_ = _tmp10_ < 100;
+#line 1346 "PngSupport.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = _tmp6_;
+#line 1350 "PngSupport.c"
+ } else {
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = FALSE;
+#line 1354 "PngSupport.c"
+ }
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (_tmp0_) {
+#line 1358 "PngSupport.c"
+ Dimensions prefetch_dimensions = {0};
+ Dimensions _tmp11_ = {0};
+ GdkPixbuf* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkPixbuf* _tmp19_ = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ GdkPixbuf* _tmp22_ = NULL;
+ Dimensions _tmp23_ = {0};
+ gint _tmp24_ = 0;
+ Dimensions _tmp25_ = {0};
+ gint _tmp26_ = 0;
+ GdkPixbuf* _tmp27_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ dimensions_get_scaled_by_constraint (full, 1000, SCALE_CONSTRAINT_DIMENSIONS, &_tmp11_);
+#line 104 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ prefetch_dimensions = _tmp11_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp13_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp14_ = _tmp13_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp15_ = prefetch_dimensions;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp16_ = _tmp15_.width;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp17_ = prefetch_dimensions;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp18_ = _tmp17_.height;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp19_ = gdk_pixbuf_new_from_file_at_scale (_tmp14_, _tmp16_, _tmp18_, FALSE, &_inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp20_ = _tmp19_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_free0 (_tmp14_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp12_ = _tmp20_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_result_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return NULL;
+#line 1409 "PngSupport.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp21_ = _tmp12_;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp12_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_result_);
+#line 107 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _result_ = _tmp21_;
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp22_ = _result_;
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp23_ = *scaled;
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp24_ = _tmp23_.width;
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp25_ = *scaled;
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp26_ = _tmp25_.height;
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp27_ = gdk_pixbuf_scale_simple (_tmp22_, _tmp24_, _tmp26_, GDK_INTERP_HYPER);
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_result_);
+#line 110 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _result_ = _tmp27_;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_tmp12_);
+#line 1437 "PngSupport.c"
+ } else {
+ GdkPixbuf* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ Dimensions _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ Dimensions _tmp33_ = {0};
+ gint _tmp34_ = 0;
+ GdkPixbuf* _tmp35_ = NULL;
+ GdkPixbuf* _tmp36_ = NULL;
+ GdkPixbuf* _tmp37_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp29_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp30_ = _tmp29_;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp31_ = *scaled;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp32_ = _tmp31_.width;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp33_ = *scaled;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp34_ = _tmp33_.height;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp35_ = gdk_pixbuf_new_from_file_at_scale (_tmp30_, _tmp32_, _tmp34_, FALSE, &_inner_error_);
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp36_ = _tmp35_;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_free0 (_tmp30_);
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp28_ = _tmp36_;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_result_);
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return NULL;
+#line 1477 "PngSupport.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp37_ = _tmp28_;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp28_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_result_);
+#line 112 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _result_ = _tmp37_;
+#line 102 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_tmp28_);
+#line 1489 "PngSupport.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _result_;
+#line 116 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1495 "PngSupport.c"
+}
+
+
+static void png_reader_class_init (PngReaderClass * klass) {
+#line 87 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_reader_parent_class = g_type_class_peek_parent (klass);
+#line 87 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileReaderClass *) klass)->scaled_read = png_reader_real_scaled_read;
+#line 1504 "PngSupport.c"
+}
+
+
+static void png_reader_instance_init (PngReader * self) {
+}
+
+
+GType png_reader_get_type (void) {
+ static volatile gsize png_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&png_reader_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PngReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) png_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PngReader), 0, (GInstanceInitFunc) png_reader_instance_init, NULL };
+ GType png_reader_type_id;
+ png_reader_type_id = g_type_register_static (TYPE_GDK_READER, "PngReader", &g_define_type_info, 0);
+ g_once_init_leave (&png_reader_type_id__volatile, png_reader_type_id);
+ }
+ return png_reader_type_id__volatile;
+}
+
+
+PngWriter* png_writer_construct (GType object_type, const gchar* filepath) {
+ PngWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 122 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = filepath;
+#line 122 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = (PngWriter*) photo_file_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_PNG);
+#line 121 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self;
+#line 1535 "PngSupport.c"
+}
+
+
+PngWriter* png_writer_new (const gchar* filepath) {
+#line 121 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return png_writer_construct (TYPE_PNG_WRITER, filepath);
+#line 1542 "PngSupport.c"
+}
+
+
+static void png_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) {
+ PngWriter * self;
+ GdkPixbuf* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_WRITER, PngWriter);
+#line 125 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = pixbuf;
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ gdk_pixbuf_save (_tmp0_, _tmp2_, "png", &_inner_error_, "compression", "9", NULL, NULL);
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_free0 (_tmp2_);
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 126 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return;
+#line 1572 "PngSupport.c"
+ }
+}
+
+
+static void png_writer_class_init (PngWriterClass * klass) {
+#line 120 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_writer_parent_class = g_type_class_peek_parent (klass);
+#line 120 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileWriterClass *) klass)->write = png_writer_real_write;
+#line 1582 "PngSupport.c"
+}
+
+
+static void png_writer_instance_init (PngWriter * self) {
+}
+
+
+GType png_writer_get_type (void) {
+ static volatile gsize png_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&png_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PngWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) png_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PngWriter), 0, (GInstanceInitFunc) png_writer_instance_init, NULL };
+ GType png_writer_type_id;
+ png_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_WRITER, "PngWriter", &g_define_type_info, 0);
+ g_once_init_leave (&png_writer_type_id__volatile, png_writer_type_id);
+ }
+ return png_writer_type_id__volatile;
+}
+
+
+PngMetadataWriter* png_metadata_writer_construct (GType object_type, const gchar* filepath) {
+ PngMetadataWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 132 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = filepath;
+#line 132 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = (PngMetadataWriter*) photo_file_metadata_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_PNG);
+#line 131 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self;
+#line 1613 "PngSupport.c"
+}
+
+
+PngMetadataWriter* png_metadata_writer_new (const gchar* filepath) {
+#line 131 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return png_metadata_writer_construct (TYPE_PNG_METADATA_WRITER, filepath);
+#line 1620 "PngSupport.c"
+}
+
+
+static void png_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error) {
+ PngMetadataWriter * self;
+ PhotoMetadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_METADATA_WRITER, PngMetadataWriter);
+#line 135 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = metadata;
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ photo_metadata_write_to_file (_tmp0_, _tmp2_, &_inner_error_);
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 136 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return;
+#line 1650 "PngSupport.c"
+ }
+}
+
+
+static void png_metadata_writer_class_init (PngMetadataWriterClass * klass) {
+#line 130 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_metadata_writer_parent_class = g_type_class_peek_parent (klass);
+#line 130 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileMetadataWriterClass *) klass)->write_metadata = png_metadata_writer_real_write_metadata;
+#line 1660 "PngSupport.c"
+}
+
+
+static void png_metadata_writer_instance_init (PngMetadataWriter * self) {
+}
+
+
+GType png_metadata_writer_get_type (void) {
+ static volatile gsize png_metadata_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&png_metadata_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PngMetadataWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) png_metadata_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PngMetadataWriter), 0, (GInstanceInitFunc) png_metadata_writer_instance_init, NULL };
+ GType png_metadata_writer_type_id;
+ png_metadata_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_METADATA_WRITER, "PngMetadataWriter", &g_define_type_info, 0);
+ g_once_init_leave (&png_metadata_writer_type_id__volatile, png_metadata_writer_type_id);
+ }
+ return png_metadata_writer_type_id__volatile;
+}
+
+
+void png_file_format_driver_init (void) {
+ PngFileFormatDriver* _tmp0_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_driver_new ();
+#line 144 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _photo_file_format_driver_unref0 (png_file_format_driver_instance);
+#line 144 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_driver_instance = _tmp0_;
+#line 145 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_properties_init ();
+#line 1690 "PngSupport.c"
+}
+
+
+static gpointer _photo_file_format_driver_ref0 (gpointer self) {
+#line 149 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self ? photo_file_format_driver_ref (self) : NULL;
+#line 1697 "PngSupport.c"
+}
+
+
+PngFileFormatDriver* png_file_format_driver_get_instance (void) {
+ PngFileFormatDriver* result = NULL;
+ PngFileFormatDriver* _tmp0_ = NULL;
+ PngFileFormatDriver* _tmp1_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_driver_instance;
+#line 149 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = _photo_file_format_driver_ref0 (_tmp0_);
+#line 149 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp1_;
+#line 149 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1713 "PngSupport.c"
+}
+
+
+static PhotoFileFormatProperties* png_file_format_driver_real_get_properties (PhotoFileFormatDriver* base) {
+ PngFileFormatDriver * self;
+ PhotoFileFormatProperties* result = NULL;
+ PngFileFormatProperties* _tmp0_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 153 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = png_file_format_properties_get_instance ();
+#line 153 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties);
+#line 153 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1729 "PngSupport.c"
+}
+
+
+static PhotoFileReader* png_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PngFileFormatDriver * self;
+ PhotoFileReader* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PngReader* _tmp1_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 156 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 157 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = filepath;
+#line 157 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = png_reader_new (_tmp0_);
+#line 157 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_READER, PhotoFileReader);
+#line 157 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1750 "PngSupport.c"
+}
+
+
+static gboolean png_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base) {
+ PngFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 160 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 161 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = TRUE;
+#line 161 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1763 "PngSupport.c"
+}
+
+
+static gboolean png_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base) {
+ PngFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 164 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 165 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = TRUE;
+#line 165 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1776 "PngSupport.c"
+}
+
+
+static PhotoFileWriter* png_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PngFileFormatDriver * self;
+ PhotoFileWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PngWriter* _tmp1_ = NULL;
+#line 168 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 168 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 169 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = filepath;
+#line 169 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = png_writer_new (_tmp0_);
+#line 169 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_WRITER, PhotoFileWriter);
+#line 169 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1797 "PngSupport.c"
+}
+
+
+static PhotoFileMetadataWriter* png_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PngFileFormatDriver * self;
+ PhotoFileMetadataWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PngMetadataWriter* _tmp1_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 172 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 173 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = filepath;
+#line 173 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = png_metadata_writer_new (_tmp0_);
+#line 173 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter);
+#line 173 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1818 "PngSupport.c"
+}
+
+
+static PhotoFileSniffer* png_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options) {
+ PngFileFormatDriver * self;
+ PhotoFileSniffer* result = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+ PngSniffer* _tmp2_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 176 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 177 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = file;
+#line 177 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp1_ = options;
+#line 177 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp2_ = png_sniffer_new (_tmp0_, _tmp1_);
+#line 177 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer);
+#line 177 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1842 "PngSupport.c"
+}
+
+
+static PhotoMetadata* png_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base) {
+ PngFileFormatDriver * self;
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 181 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ _tmp0_ = photo_metadata_new ();
+#line 181 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ result = _tmp0_;
+#line 181 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return result;
+#line 1858 "PngSupport.c"
+}
+
+
+PngFileFormatDriver* png_file_format_driver_construct (GType object_type) {
+ PngFileFormatDriver* self = NULL;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = (PngFileFormatDriver*) photo_file_format_driver_construct (object_type);
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return self;
+#line 1868 "PngSupport.c"
+}
+
+
+PngFileFormatDriver* png_file_format_driver_new (void) {
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ return png_file_format_driver_construct (TYPE_PNG_FILE_FORMAT_DRIVER);
+#line 1875 "PngSupport.c"
+}
+
+
+static void png_file_format_driver_class_init (PngFileFormatDriverClass * klass) {
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ png_file_format_driver_parent_class = g_type_class_peek_parent (klass);
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->finalize = png_file_format_driver_finalize;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->get_properties = png_file_format_driver_real_get_properties;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_reader = png_file_format_driver_real_create_reader;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_image = png_file_format_driver_real_can_write_image;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_metadata = png_file_format_driver_real_can_write_metadata;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_writer = png_file_format_driver_real_create_writer;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata_writer = png_file_format_driver_real_create_metadata_writer;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_sniffer = png_file_format_driver_real_create_sniffer;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata = png_file_format_driver_real_create_metadata;
+#line 1900 "PngSupport.c"
+}
+
+
+static void png_file_format_driver_instance_init (PngFileFormatDriver * self) {
+}
+
+
+static void png_file_format_driver_finalize (PhotoFileFormatDriver* obj) {
+ PngFileFormatDriver * self;
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PNG_FILE_FORMAT_DRIVER, PngFileFormatDriver);
+#line 140 "/home/jens/Source/shotwell/src/photos/PngSupport.vala"
+ PHOTO_FILE_FORMAT_DRIVER_CLASS (png_file_format_driver_parent_class)->finalize (obj);
+#line 1914 "PngSupport.c"
+}
+
+
+GType png_file_format_driver_get_type (void) {
+ static volatile gsize png_file_format_driver_type_id__volatile = 0;
+ if (g_once_init_enter (&png_file_format_driver_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PngFileFormatDriverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) png_file_format_driver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PngFileFormatDriver), 0, (GInstanceInitFunc) png_file_format_driver_instance_init, NULL };
+ GType png_file_format_driver_type_id;
+ png_file_format_driver_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_DRIVER, "PngFileFormatDriver", &g_define_type_info, 0);
+ g_once_init_leave (&png_file_format_driver_type_id__volatile, png_file_format_driver_type_id);
+ }
+ return png_file_format_driver_type_id__volatile;
+}
+
+
+
diff --git a/src/photos/RawSupport.c b/src/photos/RawSupport.c
new file mode 100644
index 0000000..e06b1d5
--- /dev/null
+++ b/src/photos/RawSupport.c
@@ -0,0 +1,3165 @@
+/* RawSupport.c generated by valac 0.32.1, the Vala compiler
+ * generated from RawSupport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <glib/gi18n-lib.h>
+#include <libraw/libraw.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <float.h>
+#include <math.h>
+#include <time.h>
+
+
+#define TYPE_PHOTO_FILE_FORMAT_DRIVER (photo_file_format_driver_get_type ())
+#define PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver))
+#define PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+#define IS_PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define IS_PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define PHOTO_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+
+typedef struct _PhotoFileFormatDriver PhotoFileFormatDriver;
+typedef struct _PhotoFileFormatDriverClass PhotoFileFormatDriverClass;
+typedef struct _PhotoFileFormatDriverPrivate PhotoFileFormatDriverPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+
+#define TYPE_RAW_FILE_FORMAT_DRIVER (raw_file_format_driver_get_type ())
+#define RAW_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver))
+#define RAW_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriverClass))
+#define IS_RAW_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RAW_FILE_FORMAT_DRIVER))
+#define IS_RAW_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RAW_FILE_FORMAT_DRIVER))
+#define RAW_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriverClass))
+
+typedef struct _RawFileFormatDriver RawFileFormatDriver;
+typedef struct _RawFileFormatDriverClass RawFileFormatDriverClass;
+typedef struct _RawFileFormatDriverPrivate RawFileFormatDriverPrivate;
+#define _photo_file_format_driver_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_driver_unref (var), NULL)))
+
+#define TYPE_RAW_FILE_FORMAT_PROPERTIES (raw_file_format_properties_get_type ())
+#define RAW_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties))
+#define RAW_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatPropertiesClass))
+#define IS_RAW_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RAW_FILE_FORMAT_PROPERTIES))
+#define IS_RAW_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RAW_FILE_FORMAT_PROPERTIES))
+#define RAW_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatPropertiesClass))
+
+typedef struct _RawFileFormatProperties RawFileFormatProperties;
+typedef struct _RawFileFormatPropertiesClass RawFileFormatPropertiesClass;
+
+#define TYPE_RAW_READER (raw_reader_get_type ())
+#define RAW_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RAW_READER, RawReader))
+#define RAW_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RAW_READER, RawReaderClass))
+#define IS_RAW_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RAW_READER))
+#define IS_RAW_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RAW_READER))
+#define RAW_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RAW_READER, RawReaderClass))
+
+typedef struct _RawReader RawReader;
+typedef struct _RawReaderClass RawReaderClass;
+
+#define TYPE_RAW_SNIFFER (raw_sniffer_get_type ())
+#define RAW_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RAW_SNIFFER, RawSniffer))
+#define RAW_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RAW_SNIFFER, RawSnifferClass))
+#define IS_RAW_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RAW_SNIFFER))
+#define IS_RAW_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RAW_SNIFFER))
+#define RAW_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RAW_SNIFFER, RawSnifferClass))
+
+typedef struct _RawSniffer RawSniffer;
+typedef struct _RawSnifferClass RawSnifferClass;
+typedef struct _PhotoFileFormatPropertiesPrivate PhotoFileFormatPropertiesPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT_FLAGS (photo_file_format_flags_get_type ())
+typedef struct _RawFileFormatPropertiesPrivate RawFileFormatPropertiesPrivate;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate;
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+typedef struct _RawSnifferPrivate RawSnifferPrivate;
+
+#define GRAW_TYPE_PROCESSOR (graw_processor_get_type ())
+#define GRAW_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GRAW_TYPE_PROCESSOR, GRawProcessor))
+#define GRAW_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GRAW_TYPE_PROCESSOR, GRawProcessorClass))
+#define GRAW_IS_PROCESSOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GRAW_TYPE_PROCESSOR))
+#define GRAW_IS_PROCESSOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GRAW_TYPE_PROCESSOR))
+#define GRAW_PROCESSOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GRAW_TYPE_PROCESSOR, GRawProcessorClass))
+
+typedef struct _GRawProcessor GRawProcessor;
+typedef struct _GRawProcessorClass GRawProcessorClass;
+
+#define GRAW_TYPE_FLIP (graw_flip_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _graw_processor_unref0(var) ((var == NULL) ? NULL : (var = (graw_processor_unref (var), NULL)))
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+#define _media_metadata_unref0(var) ((var == NULL) ? NULL : (var = (media_metadata_unref (var), NULL)))
+#define _photo_file_adapter_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_adapter_unref (var), NULL)))
+typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate;
+typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate;
+typedef struct _RawReaderPrivate RawReaderPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define GRAW_TYPE_PROCESSED_IMAGE (graw_processed_image_get_type ())
+#define GRAW_PROCESSED_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImage))
+#define GRAW_PROCESSED_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImageClass))
+#define GRAW_IS_PROCESSED_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GRAW_TYPE_PROCESSED_IMAGE))
+#define GRAW_IS_PROCESSED_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GRAW_TYPE_PROCESSED_IMAGE))
+#define GRAW_PROCESSED_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GRAW_TYPE_PROCESSED_IMAGE, GRawProcessedImageClass))
+
+typedef struct _GRawProcessedImage GRawProcessedImage;
+typedef struct _GRawProcessedImageClass GRawProcessedImageClass;
+#define _graw_processed_image_unref0(var) ((var == NULL) ? NULL : (var = (graw_processed_image_unref (var), NULL)))
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_BACKING_PHOTO_ROW (backing_photo_row_get_type ())
+#define BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRow))
+#define BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+#define IS_BACKING_PHOTO_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKING_PHOTO_ROW))
+#define IS_BACKING_PHOTO_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKING_PHOTO_ROW))
+#define BACKING_PHOTO_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKING_PHOTO_ROW, BackingPhotoRowClass))
+
+typedef struct _BackingPhotoRow BackingPhotoRow;
+typedef struct _BackingPhotoRowClass BackingPhotoRowClass;
+#define _backing_photo_row_unref0(var) ((var == NULL) ? NULL : (var = (backing_photo_row_unref (var), NULL)))
+typedef struct _BackingPhotoRowPrivate BackingPhotoRowPrivate;
+
+#define TYPE_BACKING_PHOTO_ID (backing_photo_id_get_type ())
+typedef struct _BackingPhotoID BackingPhotoID;
+
+#define TYPE_ORIENTATION (orientation_get_type ())
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileFormatDriver {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatDriverPrivate * priv;
+};
+
+struct _PhotoFileFormatDriverClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatDriver *self);
+ PhotoFileFormatProperties* (*get_properties) (PhotoFileFormatDriver* self);
+ PhotoFileReader* (*create_reader) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoMetadata* (*create_metadata) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_image) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_metadata) (PhotoFileFormatDriver* self);
+ PhotoFileWriter* (*create_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileMetadataWriter* (*create_metadata_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileSniffer* (*create_sniffer) (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+};
+
+struct _RawFileFormatDriver {
+ PhotoFileFormatDriver parent_instance;
+ RawFileFormatDriverPrivate * priv;
+};
+
+struct _RawFileFormatDriverClass {
+ PhotoFileFormatDriverClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_FLAGS_NONE = 0x00000000
+} PhotoFileFormatFlags;
+
+struct _PhotoFileFormatProperties {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotoFileFormatPropertiesClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatProperties *self);
+ PhotoFileFormat (*get_file_format) (PhotoFileFormatProperties* self);
+ PhotoFileFormatFlags (*get_flags) (PhotoFileFormatProperties* self);
+ gboolean (*is_recognized_extension) (PhotoFileFormatProperties* self, const gchar* ext);
+ gchar* (*get_default_extension) (PhotoFileFormatProperties* self);
+ gchar** (*get_known_extensions) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_default_mime_type) (PhotoFileFormatProperties* self);
+ gchar** (*get_mime_types) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_user_visible_name) (PhotoFileFormatProperties* self);
+};
+
+struct _RawFileFormatProperties {
+ PhotoFileFormatProperties parent_instance;
+ RawFileFormatPropertiesPrivate * priv;
+};
+
+struct _RawFileFormatPropertiesClass {
+ PhotoFileFormatPropertiesClass parent_class;
+};
+
+struct _PhotoFileSniffer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileSnifferPrivate * priv;
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ gboolean calc_md5;
+};
+
+struct _PhotoFileSnifferClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileSniffer *self);
+ DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+};
+
+struct _RawSniffer {
+ PhotoFileSniffer parent_instance;
+ RawSnifferPrivate * priv;
+};
+
+struct _RawSnifferClass {
+ PhotoFileSnifferClass parent_class;
+};
+
+typedef enum {
+ GRAW_FLIP_FROM_SOURCE = -1,
+ GRAW_FLIP_NONE = 0,
+ GRAW_FLIP_UPSIDE_DOWN = 3,
+ GRAW_FLIP_COUNTERCLOCKWISE = 5,
+ GRAW_FLIP_CLOCKWISE = 6
+} GRawFlip;
+
+typedef enum {
+ GRAW_EXCEPTION_UNSPECIFIED,
+ GRAW_EXCEPTION_UNSUPPORTED_FILE,
+ GRAW_EXCEPTION_NONEXISTANT_IMAGE,
+ GRAW_EXCEPTION_OUT_OF_ORDER_CALL,
+ GRAW_EXCEPTION_NO_THUMBNAIL,
+ GRAW_EXCEPTION_UNSUPPORTED_THUMBNAIL,
+ GRAW_EXCEPTION_OUT_OF_MEMORY,
+ GRAW_EXCEPTION_DATA_ERROR,
+ GRAW_EXCEPTION_IO_ERROR,
+ GRAW_EXCEPTION_CANCELLED_BY_CALLBACK,
+ GRAW_EXCEPTION_BAD_CROP,
+ GRAW_EXCEPTION_SYSTEM_ERROR
+} GRawException;
+#define GRAW_EXCEPTION graw_exception_quark ()
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+struct _PhotoFileAdapter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileAdapterPrivate * priv;
+};
+
+struct _PhotoFileAdapterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileAdapter *self);
+};
+
+struct _PhotoFileReader {
+ PhotoFileAdapter parent_instance;
+ PhotoFileReaderPrivate * priv;
+};
+
+struct _PhotoFileReaderClass {
+ PhotoFileAdapterClass parent_class;
+ PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+};
+
+struct _RawReader {
+ PhotoFileReader parent_instance;
+ RawReaderPrivate * priv;
+};
+
+struct _RawReaderClass {
+ PhotoFileReaderClass parent_class;
+};
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _BackingPhotoID {
+ gint64 id;
+};
+
+typedef enum {
+ ORIENTATION_MIN = 1,
+ ORIENTATION_TOP_LEFT = 1,
+ ORIENTATION_TOP_RIGHT = 2,
+ ORIENTATION_BOTTOM_RIGHT = 3,
+ ORIENTATION_BOTTOM_LEFT = 4,
+ ORIENTATION_LEFT_TOP = 5,
+ ORIENTATION_RIGHT_TOP = 6,
+ ORIENTATION_RIGHT_BOTTOM = 7,
+ ORIENTATION_LEFT_BOTTOM = 8,
+ ORIENTATION_MAX = 8
+} Orientation;
+
+struct _BackingPhotoRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackingPhotoRowPrivate * priv;
+ BackingPhotoID id;
+ time_t time_created;
+ gchar* filepath;
+ gint64 filesize;
+ time_t timestamp;
+ PhotoFileFormat file_format;
+ Dimensions dim;
+ Orientation original_orientation;
+};
+
+struct _BackingPhotoRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackingPhotoRow *self);
+};
+
+
+static gpointer raw_file_format_driver_parent_class = NULL;
+static RawFileFormatDriver* raw_file_format_driver_instance;
+static RawFileFormatDriver* raw_file_format_driver_instance = NULL;
+static gpointer raw_file_format_properties_parent_class = NULL;
+static gchar** raw_file_format_properties_KNOWN_EXTENSIONS;
+static gint raw_file_format_properties_KNOWN_EXTENSIONS_length1;
+static gchar** raw_file_format_properties_KNOWN_EXTENSIONS = NULL;
+static gint raw_file_format_properties_KNOWN_EXTENSIONS_length1 = 0;
+static gint _raw_file_format_properties_KNOWN_EXTENSIONS_size_ = 0;
+static gchar** raw_file_format_properties_KNOWN_MIME_TYPES;
+static gint raw_file_format_properties_KNOWN_MIME_TYPES_length1;
+static gchar** raw_file_format_properties_KNOWN_MIME_TYPES = NULL;
+static gint raw_file_format_properties_KNOWN_MIME_TYPES_length1 = 0;
+static gint _raw_file_format_properties_KNOWN_MIME_TYPES_size_ = 0;
+static RawFileFormatProperties* raw_file_format_properties_instance;
+static RawFileFormatProperties* raw_file_format_properties_instance = NULL;
+static gpointer raw_sniffer_parent_class = NULL;
+static gpointer raw_reader_parent_class = NULL;
+
+gpointer photo_file_format_driver_ref (gpointer instance);
+void photo_file_format_driver_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_driver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_driver (GValue* value, gpointer v_object);
+void value_take_photo_file_format_driver (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_driver (const GValue* value);
+GType photo_file_format_driver_get_type (void) G_GNUC_CONST;
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+GType raw_file_format_driver_get_type (void) G_GNUC_CONST;
+enum {
+ RAW_FILE_FORMAT_DRIVER_DUMMY_PROPERTY
+};
+void raw_file_format_driver_init (void);
+RawFileFormatDriver* raw_file_format_driver_new (void);
+RawFileFormatDriver* raw_file_format_driver_construct (GType object_type);
+void raw_file_format_properties_init (void);
+RawFileFormatDriver* raw_file_format_driver_get_instance (void);
+static PhotoFileFormatProperties* raw_file_format_driver_real_get_properties (PhotoFileFormatDriver* base);
+GType raw_file_format_properties_get_type (void) G_GNUC_CONST;
+RawFileFormatProperties* raw_file_format_properties_get_instance (void);
+static PhotoFileReader* raw_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath);
+RawReader* raw_reader_new (const gchar* filepath);
+RawReader* raw_reader_construct (GType object_type, const gchar* filepath);
+GType raw_reader_get_type (void) G_GNUC_CONST;
+static PhotoMetadata* raw_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base);
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+static gboolean raw_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base);
+static gboolean raw_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base);
+static PhotoFileWriter* raw_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+static PhotoFileMetadataWriter* raw_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+static PhotoFileSniffer* raw_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options);
+RawSniffer* raw_sniffer_new (GFile* file, PhotoFileSnifferOptions options);
+RawSniffer* raw_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+GType raw_sniffer_get_type (void) G_GNUC_CONST;
+PhotoFileFormatDriver* photo_file_format_driver_construct (GType object_type);
+static void raw_file_format_driver_finalize (PhotoFileFormatDriver* obj);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType photo_file_format_flags_get_type (void) G_GNUC_CONST;
+enum {
+ RAW_FILE_FORMAT_PROPERTIES_DUMMY_PROPERTY
+};
+RawFileFormatProperties* raw_file_format_properties_new (void);
+RawFileFormatProperties* raw_file_format_properties_construct (GType object_type);
+static PhotoFileFormat raw_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base);
+static gchar* raw_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base);
+static PhotoFileFormatFlags raw_file_format_properties_real_get_flags (PhotoFileFormatProperties* base);
+static gchar* raw_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base);
+static gchar** raw_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup12 (gchar** self, int length);
+static gchar* raw_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base);
+static gchar** raw_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup13 (gchar** self, int length);
+PhotoFileFormatProperties* photo_file_format_properties_construct (GType object_type);
+static void raw_file_format_properties_finalize (PhotoFileFormatProperties* obj);
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+enum {
+ RAW_SNIFFER_DUMMY_PROPERTY
+};
+PhotoFileSniffer* photo_file_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+static DetectedPhotoInformation* raw_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error);
+DetectedPhotoInformation* detected_photo_information_new (void);
+DetectedPhotoInformation* detected_photo_information_construct (GType object_type);
+gpointer graw_processor_ref (gpointer instance);
+void graw_processor_unref (gpointer instance);
+GParamSpec* graw_param_spec_processor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void graw_value_set_processor (GValue* value, gpointer v_object);
+void graw_value_take_processor (GValue* value, gpointer v_object);
+gpointer graw_value_get_processor (const GValue* value);
+GType graw_processor_get_type (void) G_GNUC_CONST;
+GRawProcessor* graw_processor_new (enum LibRaw_constructor_flags options);
+GRawProcessor* graw_processor_construct (GType object_type, enum LibRaw_constructor_flags options);
+libraw_output_params_t* graw_processor_get_output_params (GRawProcessor* self);
+GType graw_flip_get_type (void) G_GNUC_CONST;
+GQuark graw_exception_quark (void);
+void graw_processor_open_file (GRawProcessor* self, const gchar* filename, GError** error);
+void graw_processor_unpack (GRawProcessor* self, GError** error);
+void graw_processor_adjust_sizes_info_only (GRawProcessor* self, GError** error);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+libraw_image_sizes_t graw_processor_get_sizes (GRawProcessor* self);
+void dimensions_init (Dimensions *self, gint width, gint height);
+PhotoMetadata* photo_file_reader_read_metadata (PhotoFileReader* self, GError** error);
+guint8* photo_metadata_flatten_exif (PhotoMetadata* self, gboolean include_preview, int* result_length1);
+gchar* md5_binary (guint8* buffer, gsize length);
+guint8* photo_metadata_flatten_exif_preview (PhotoMetadata* self, int* result_length1);
+gchar* md5_file (GFile* file, GError** error);
+enum {
+ RAW_READER_DUMMY_PROPERTY
+};
+PhotoFileReader* photo_file_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static PhotoMetadata* raw_reader_real_read_metadata (PhotoFileReader* base, GError** error);
+void media_metadata_read_from_file (MediaMetadata* self, GFile* file, GError** error);
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self);
+static GdkPixbuf* raw_reader_real_unscaled_read (PhotoFileReader* base, GError** error);
+void graw_processor_configure_for_rgb_display (GRawProcessor* self, gboolean half_size);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+void graw_processor_process (GRawProcessor* self, GError** error);
+gpointer graw_processed_image_ref (gpointer instance);
+void graw_processed_image_unref (gpointer instance);
+GParamSpec* graw_param_spec_processed_image (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void graw_value_set_processed_image (GValue* value, gpointer v_object);
+void graw_value_take_processed_image (GValue* value, gpointer v_object);
+gpointer graw_value_get_processed_image (const GValue* value);
+GType graw_processed_image_get_type (void) G_GNUC_CONST;
+GRawProcessedImage* graw_processor_make_mem_image (GRawProcessor* self, GError** error);
+GdkPixbuf* graw_processed_image_get_pixbuf_copy (GRawProcessedImage* self);
+static GdkPixbuf* raw_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error);
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
+GType raw_developer_get_type (void) G_GNUC_CONST;
+RawDeveloper* raw_developer_as_array (int* result_length1);
+gchar* raw_developer_to_string (RawDeveloper self);
+RawDeveloper raw_developer_from_string (const gchar* value);
+gchar* raw_developer_get_label (RawDeveloper self);
+gboolean raw_developer_is_equivalent (RawDeveloper self, RawDeveloper d);
+gpointer backing_photo_row_ref (gpointer instance);
+void backing_photo_row_unref (gpointer instance);
+GParamSpec* param_spec_backing_photo_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_backing_photo_row (GValue* value, gpointer v_object);
+void value_take_backing_photo_row (GValue* value, gpointer v_object);
+gpointer value_get_backing_photo_row (const GValue* value);
+GType backing_photo_row_get_type (void) G_GNUC_CONST;
+BackingPhotoRow* raw_developer_create_backing_row_for_development (RawDeveloper self, const gchar* raw_filepath, const gchar* camera_development_filename, GError** error);
+BackingPhotoRow* backing_photo_row_new (void);
+BackingPhotoRow* backing_photo_row_construct (GType object_type);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+GFile* generate_unique_file (GFile* dir, const gchar* basename, gboolean* collision, GError** error);
+gboolean claim_file (GFile* file, GError** error);
+GType backing_photo_id_get_type (void) G_GNUC_CONST;
+BackingPhotoID* backing_photo_id_dup (const BackingPhotoID* self);
+void backing_photo_id_free (BackingPhotoID* self);
+GType orientation_get_type (void) G_GNUC_CONST;
+
+
+void raw_file_format_driver_init (void) {
+ RawFileFormatDriver* _tmp0_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_driver_new ();
+#line 11 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _photo_file_format_driver_unref0 (raw_file_format_driver_instance);
+#line 11 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_driver_instance = _tmp0_;
+#line 12 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_properties_init ();
+#line 658 "RawSupport.c"
+}
+
+
+static gpointer _photo_file_format_driver_ref0 (gpointer self) {
+#line 16 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return self ? photo_file_format_driver_ref (self) : NULL;
+#line 665 "RawSupport.c"
+}
+
+
+RawFileFormatDriver* raw_file_format_driver_get_instance (void) {
+ RawFileFormatDriver* result = NULL;
+ RawFileFormatDriver* _tmp0_ = NULL;
+ RawFileFormatDriver* _tmp1_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_driver_instance;
+#line 16 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = _photo_file_format_driver_ref0 (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp1_;
+#line 16 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 681 "RawSupport.c"
+}
+
+
+static PhotoFileFormatProperties* raw_file_format_driver_real_get_properties (PhotoFileFormatDriver* base) {
+ RawFileFormatDriver * self;
+ PhotoFileFormatProperties* result = NULL;
+ RawFileFormatProperties* _tmp0_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 20 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_properties_get_instance ();
+#line 20 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties);
+#line 20 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 697 "RawSupport.c"
+}
+
+
+static PhotoFileReader* raw_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath) {
+ RawFileFormatDriver * self;
+ PhotoFileReader* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ RawReader* _tmp1_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 23 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 24 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = filepath;
+#line 24 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = raw_reader_new (_tmp0_);
+#line 24 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_READER, PhotoFileReader);
+#line 24 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 718 "RawSupport.c"
+}
+
+
+static PhotoMetadata* raw_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base) {
+ RawFileFormatDriver * self;
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 28 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = photo_metadata_new ();
+#line 28 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp0_;
+#line 28 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 734 "RawSupport.c"
+}
+
+
+static gboolean raw_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base) {
+ RawFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 32 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = FALSE;
+#line 32 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 747 "RawSupport.c"
+}
+
+
+static gboolean raw_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base) {
+ RawFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 35 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 36 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = FALSE;
+#line 36 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 760 "RawSupport.c"
+}
+
+
+static PhotoFileWriter* raw_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ RawFileFormatDriver * self;
+ PhotoFileWriter* result = NULL;
+#line 39 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 39 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 40 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = NULL;
+#line 40 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 775 "RawSupport.c"
+}
+
+
+static PhotoFileMetadataWriter* raw_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ RawFileFormatDriver * self;
+ PhotoFileMetadataWriter* result = NULL;
+#line 43 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 43 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 44 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = NULL;
+#line 44 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 790 "RawSupport.c"
+}
+
+
+static PhotoFileSniffer* raw_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options) {
+ RawFileFormatDriver * self;
+ PhotoFileSniffer* result = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+ RawSniffer* _tmp2_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 47 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 48 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = file;
+#line 48 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = options;
+#line 48 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = raw_sniffer_new (_tmp0_, _tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer);
+#line 48 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 814 "RawSupport.c"
+}
+
+
+RawFileFormatDriver* raw_file_format_driver_construct (GType object_type) {
+ RawFileFormatDriver* self = NULL;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = (RawFileFormatDriver*) photo_file_format_driver_construct (object_type);
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return self;
+#line 824 "RawSupport.c"
+}
+
+
+RawFileFormatDriver* raw_file_format_driver_new (void) {
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return raw_file_format_driver_construct (TYPE_RAW_FILE_FORMAT_DRIVER);
+#line 831 "RawSupport.c"
+}
+
+
+static void raw_file_format_driver_class_init (RawFileFormatDriverClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_driver_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->finalize = raw_file_format_driver_finalize;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->get_properties = raw_file_format_driver_real_get_properties;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_reader = raw_file_format_driver_real_create_reader;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata = raw_file_format_driver_real_create_metadata;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_image = raw_file_format_driver_real_can_write_image;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_metadata = raw_file_format_driver_real_can_write_metadata;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_writer = raw_file_format_driver_real_create_writer;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata_writer = raw_file_format_driver_real_create_metadata_writer;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_sniffer = raw_file_format_driver_real_create_sniffer;
+#line 856 "RawSupport.c"
+}
+
+
+static void raw_file_format_driver_instance_init (RawFileFormatDriver * self) {
+}
+
+
+static void raw_file_format_driver_finalize (PhotoFileFormatDriver* obj) {
+ RawFileFormatDriver * self;
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RAW_FILE_FORMAT_DRIVER, RawFileFormatDriver);
+#line 7 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ PHOTO_FILE_FORMAT_DRIVER_CLASS (raw_file_format_driver_parent_class)->finalize (obj);
+#line 870 "RawSupport.c"
+}
+
+
+GType raw_file_format_driver_get_type (void) {
+ static volatile gsize raw_file_format_driver_type_id__volatile = 0;
+ if (g_once_init_enter (&raw_file_format_driver_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RawFileFormatDriverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) raw_file_format_driver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RawFileFormatDriver), 0, (GInstanceInitFunc) raw_file_format_driver_instance_init, NULL };
+ GType raw_file_format_driver_type_id;
+ raw_file_format_driver_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_DRIVER, "RawFileFormatDriver", &g_define_type_info, 0);
+ g_once_init_leave (&raw_file_format_driver_type_id__volatile, raw_file_format_driver_type_id);
+ }
+ return raw_file_format_driver_type_id__volatile;
+}
+
+
+void raw_file_format_properties_init (void) {
+ RawFileFormatProperties* _tmp0_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_properties_new ();
+#line 122 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _photo_file_format_properties_unref0 (raw_file_format_properties_instance);
+#line 122 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_properties_instance = _tmp0_;
+#line 894 "RawSupport.c"
+}
+
+
+static gpointer _photo_file_format_properties_ref0 (gpointer self) {
+#line 126 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return self ? photo_file_format_properties_ref (self) : NULL;
+#line 901 "RawSupport.c"
+}
+
+
+RawFileFormatProperties* raw_file_format_properties_get_instance (void) {
+ RawFileFormatProperties* result = NULL;
+ RawFileFormatProperties* _tmp0_ = NULL;
+ RawFileFormatProperties* _tmp1_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_properties_instance;
+#line 126 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = _photo_file_format_properties_ref0 (_tmp0_);
+#line 126 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp1_;
+#line 126 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 917 "RawSupport.c"
+}
+
+
+static PhotoFileFormat raw_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base) {
+ RawFileFormatProperties * self;
+ PhotoFileFormat result = 0;
+#line 129 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 130 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = PHOTO_FILE_FORMAT_RAW;
+#line 130 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 930 "RawSupport.c"
+}
+
+
+static gchar* raw_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base) {
+ RawFileFormatProperties * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 134 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = _ ("RAW");
+#line 134 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 134 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp1_;
+#line 134 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 949 "RawSupport.c"
+}
+
+
+static PhotoFileFormatFlags raw_file_format_properties_real_get_flags (PhotoFileFormatProperties* base) {
+ RawFileFormatProperties * self;
+ PhotoFileFormatFlags result = 0;
+#line 137 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 138 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = PHOTO_FILE_FORMAT_FLAGS_NONE;
+#line 138 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 962 "RawSupport.c"
+}
+
+
+static gchar* raw_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base) {
+ RawFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 145 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = g_strdup ("raw");
+#line 145 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp0_;
+#line 145 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 978 "RawSupport.c"
+}
+
+
+static gchar** _vala_array_dup12 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 989 "RawSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result[i] = _tmp0_;
+#line 995 "RawSupport.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 999 "RawSupport.c"
+}
+
+
+static gchar** raw_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1) {
+ RawFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 148 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_properties_KNOWN_EXTENSIONS;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0__length1 = raw_file_format_properties_KNOWN_EXTENSIONS_length1;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup12 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (result_length1) {
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 1030 "RawSupport.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp2_;
+#line 149 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 1036 "RawSupport.c"
+}
+
+
+static gchar* raw_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base) {
+ RawFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 153 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_properties_KNOWN_MIME_TYPES;
+#line 153 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0__length1 = raw_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 153 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = _tmp0_[0];
+#line 153 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 153 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp2_;
+#line 153 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 1061 "RawSupport.c"
+}
+
+
+static gchar** _vala_array_dup13 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 1072 "RawSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result[i] = _tmp0_;
+#line 1078 "RawSupport.c"
+ }
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 1082 "RawSupport.c"
+}
+
+
+static gchar** raw_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1) {
+ RawFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 156 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = raw_file_format_properties_KNOWN_MIME_TYPES;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0__length1 = raw_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup13 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (result_length1) {
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 1113 "RawSupport.c"
+ }
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp2_;
+#line 157 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 1119 "RawSupport.c"
+}
+
+
+RawFileFormatProperties* raw_file_format_properties_construct (GType object_type) {
+ RawFileFormatProperties* self = NULL;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = (RawFileFormatProperties*) photo_file_format_properties_construct (object_type);
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return self;
+#line 1129 "RawSupport.c"
+}
+
+
+RawFileFormatProperties* raw_file_format_properties_new (void) {
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return raw_file_format_properties_construct (TYPE_RAW_FILE_FORMAT_PROPERTIES);
+#line 1136 "RawSupport.c"
+}
+
+
+static void raw_file_format_properties_class_init (RawFileFormatPropertiesClass * klass) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ gchar* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ gchar** _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ gchar* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ gchar* _tmp54_ = NULL;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+ gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+ gchar* _tmp74_ = NULL;
+ gchar* _tmp75_ = NULL;
+ gchar* _tmp76_ = NULL;
+ gchar* _tmp77_ = NULL;
+ gchar* _tmp78_ = NULL;
+ gchar* _tmp79_ = NULL;
+ gchar* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ gchar* _tmp83_ = NULL;
+ gchar* _tmp84_ = NULL;
+ gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar** _tmp88_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_properties_parent_class = g_type_class_peek_parent (klass);
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->finalize = raw_file_format_properties_finalize;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_file_format = raw_file_format_properties_real_get_file_format;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_user_visible_name = raw_file_format_properties_real_get_user_visible_name;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_flags = raw_file_format_properties_real_get_flags;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_extension = raw_file_format_properties_real_get_default_extension;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_known_extensions = raw_file_format_properties_real_get_known_extensions;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_mime_type = raw_file_format_properties_real_get_default_mime_type;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_mime_types = raw_file_format_properties_real_get_mime_types;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = g_strdup ("3fr");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = g_strdup ("arw");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = g_strdup ("srf");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = g_strdup ("sr2");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp4_ = g_strdup ("bay");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp5_ = g_strdup ("crw");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp6_ = g_strdup ("cr2");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp7_ = g_strdup ("cap");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp8_ = g_strdup ("iiq");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp9_ = g_strdup ("eip");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp10_ = g_strdup ("dcs");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp11_ = g_strdup ("dcr");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp12_ = g_strdup ("drf");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp13_ = g_strdup ("k25");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp14_ = g_strdup ("kdc");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp15_ = g_strdup ("dng");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp16_ = g_strdup ("erf");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp17_ = g_strdup ("fff");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp18_ = g_strdup ("mef");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp19_ = g_strdup ("mos");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp20_ = g_strdup ("mrw");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp21_ = g_strdup ("nef");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp22_ = g_strdup ("nrw");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp23_ = g_strdup ("orf");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp24_ = g_strdup ("ptx");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp25_ = g_strdup ("pef");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp26_ = g_strdup ("pxn");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp27_ = g_strdup ("r3d");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp28_ = g_strdup ("raf");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp29_ = g_strdup ("raw");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp30_ = g_strdup ("rw2");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp31_ = g_strdup ("raw");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp32_ = g_strdup ("rwl");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp33_ = g_strdup ("rwz");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp34_ = g_strdup ("x3f");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp35_ = g_strdup ("srw");
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_ = g_new0 (gchar*, 36 + 1);
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[0] = _tmp0_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[1] = _tmp1_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[2] = _tmp2_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[3] = _tmp3_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[4] = _tmp4_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[5] = _tmp5_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[6] = _tmp6_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[7] = _tmp7_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[8] = _tmp8_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[9] = _tmp9_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[10] = _tmp10_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[11] = _tmp11_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[12] = _tmp12_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[13] = _tmp13_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[14] = _tmp14_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[15] = _tmp15_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[16] = _tmp16_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[17] = _tmp17_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[18] = _tmp18_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[19] = _tmp19_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[20] = _tmp20_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[21] = _tmp21_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[22] = _tmp22_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[23] = _tmp23_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[24] = _tmp24_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[25] = _tmp25_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[26] = _tmp26_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[27] = _tmp27_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[28] = _tmp28_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[29] = _tmp29_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[30] = _tmp30_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[31] = _tmp31_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[32] = _tmp32_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[33] = _tmp33_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[34] = _tmp34_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_[35] = _tmp35_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_properties_KNOWN_EXTENSIONS = _tmp36_;
+#line 53 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_properties_KNOWN_EXTENSIONS_length1 = 36;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp37_ = g_strdup ("image/x-dcraw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp38_ = g_strdup ("image/x-canon-cr2");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp39_ = g_strdup ("image/x-canon-crw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp40_ = g_strdup ("image/x-fuji-raf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp41_ = g_strdup ("image/x-adobe-dng");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp42_ = g_strdup ("image/x-panasonic-raw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp43_ = g_strdup ("image/x-raw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp44_ = g_strdup ("image/x-minolta-mrw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp45_ = g_strdup ("image/x-nikon-nef");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp46_ = g_strdup ("image/x-olympus-orf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp47_ = g_strdup ("image/x-pentax-pef");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp48_ = g_strdup ("image/x-sony-arw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp49_ = g_strdup ("image/x-sony-srf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp50_ = g_strdup ("image/x-sony-sr2");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp51_ = g_strdup ("image/x-samsung-raw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp52_ = g_strdup ("image/x-3fr");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp53_ = g_strdup ("image/x-arw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp54_ = g_strdup ("image/x-srf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp55_ = g_strdup ("image/x-sr2");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp56_ = g_strdup ("image/x-bay");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp57_ = g_strdup ("image/x-crw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp58_ = g_strdup ("image/x-cr2");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp59_ = g_strdup ("image/x-cap");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp60_ = g_strdup ("image/x-iiq");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp61_ = g_strdup ("image/x-eip");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp62_ = g_strdup ("image/x-dcs");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp63_ = g_strdup ("image/x-dcr");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp64_ = g_strdup ("image/x-drf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp65_ = g_strdup ("image/x-k25");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp66_ = g_strdup ("image/x-kdc");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp67_ = g_strdup ("image/x-dng");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp68_ = g_strdup ("image/x-erf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp69_ = g_strdup ("image/x-fff");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp70_ = g_strdup ("image/x-mef");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp71_ = g_strdup ("image/x-mos");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp72_ = g_strdup ("image/x-mrw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp73_ = g_strdup ("image/x-nef");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp74_ = g_strdup ("image/x-nrw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp75_ = g_strdup ("image/x-orf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp76_ = g_strdup ("image/x-ptx");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp77_ = g_strdup ("image/x-pef");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp78_ = g_strdup ("image/x-pxn");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp79_ = g_strdup ("image/x-r3d");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp80_ = g_strdup ("image/x-raf");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp81_ = g_strdup ("image/x-raw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp82_ = g_strdup ("image/x-rw2");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp83_ = g_strdup ("image/x-raw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp84_ = g_strdup ("image/x-rwl");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp85_ = g_strdup ("image/x-rwz");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp86_ = g_strdup ("image/x-x3f");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp87_ = g_strdup ("image/x-srw");
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_ = g_new0 (gchar*, 51 + 1);
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[0] = _tmp37_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[1] = _tmp38_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[2] = _tmp39_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[3] = _tmp40_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[4] = _tmp41_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[5] = _tmp42_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[6] = _tmp43_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[7] = _tmp44_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[8] = _tmp45_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[9] = _tmp46_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[10] = _tmp47_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[11] = _tmp48_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[12] = _tmp49_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[13] = _tmp50_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[14] = _tmp51_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[15] = _tmp52_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[16] = _tmp53_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[17] = _tmp54_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[18] = _tmp55_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[19] = _tmp56_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[20] = _tmp57_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[21] = _tmp58_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[22] = _tmp59_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[23] = _tmp60_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[24] = _tmp61_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[25] = _tmp62_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[26] = _tmp63_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[27] = _tmp64_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[28] = _tmp65_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[29] = _tmp66_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[30] = _tmp67_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[31] = _tmp68_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[32] = _tmp69_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[33] = _tmp70_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[34] = _tmp71_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[35] = _tmp72_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[36] = _tmp73_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[37] = _tmp74_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[38] = _tmp75_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[39] = _tmp76_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[40] = _tmp77_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[41] = _tmp78_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[42] = _tmp79_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[43] = _tmp80_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[44] = _tmp81_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[45] = _tmp82_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[46] = _tmp83_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[47] = _tmp84_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[48] = _tmp85_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[49] = _tmp86_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp88_[50] = _tmp87_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_properties_KNOWN_MIME_TYPES = _tmp88_;
+#line 59 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_file_format_properties_KNOWN_MIME_TYPES_length1 = 51;
+#line 1608 "RawSupport.c"
+}
+
+
+static void raw_file_format_properties_instance_init (RawFileFormatProperties * self) {
+}
+
+
+static void raw_file_format_properties_finalize (PhotoFileFormatProperties* obj) {
+ RawFileFormatProperties * self;
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_RAW_FILE_FORMAT_PROPERTIES, RawFileFormatProperties);
+#line 52 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ PHOTO_FILE_FORMAT_PROPERTIES_CLASS (raw_file_format_properties_parent_class)->finalize (obj);
+#line 1622 "RawSupport.c"
+}
+
+
+GType raw_file_format_properties_get_type (void) {
+ static volatile gsize raw_file_format_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&raw_file_format_properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RawFileFormatPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) raw_file_format_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RawFileFormatProperties), 0, (GInstanceInitFunc) raw_file_format_properties_instance_init, NULL };
+ GType raw_file_format_properties_type_id;
+ raw_file_format_properties_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_PROPERTIES, "RawFileFormatProperties", &g_define_type_info, 0);
+ g_once_init_leave (&raw_file_format_properties_type_id__volatile, raw_file_format_properties_type_id);
+ }
+ return raw_file_format_properties_type_id__volatile;
+}
+
+
+RawSniffer* raw_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ RawSniffer* self = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+#line 162 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 163 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = file;
+#line 163 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = options;
+#line 163 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = (RawSniffer*) photo_file_sniffer_construct (object_type, _tmp0_, _tmp1_);
+#line 162 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return self;
+#line 1652 "RawSupport.c"
+}
+
+
+RawSniffer* raw_sniffer_new (GFile* file, PhotoFileSnifferOptions options) {
+#line 162 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return raw_sniffer_construct (TYPE_RAW_SNIFFER, file, options);
+#line 1659 "RawSupport.c"
+}
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 183 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 1666 "RawSupport.c"
+}
+
+
+static DetectedPhotoInformation* raw_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error) {
+ RawSniffer * self;
+ gboolean _vala_is_corrupted = FALSE;
+ DetectedPhotoInformation* result = NULL;
+ DetectedPhotoInformation* detected = NULL;
+ DetectedPhotoInformation* _tmp0_ = NULL;
+ GRawProcessor* processor = NULL;
+ GRawProcessor* _tmp1_ = NULL;
+ GRawProcessor* _tmp2_ = NULL;
+ libraw_output_params_t* _tmp3_ = NULL;
+ libraw_output_params_t* _tmp4_ = NULL;
+ DetectedPhotoInformation* _tmp14_ = NULL;
+ GRawProcessor* _tmp15_ = NULL;
+ libraw_image_sizes_t _tmp16_ = {0};
+ gushort _tmp17_ = 0U;
+ GRawProcessor* _tmp18_ = NULL;
+ libraw_image_sizes_t _tmp19_ = {0};
+ gushort _tmp20_ = 0U;
+ DetectedPhotoInformation* _tmp21_ = NULL;
+ DetectedPhotoInformation* _tmp22_ = NULL;
+ DetectedPhotoInformation* _tmp23_ = NULL;
+ RawReader* reader = NULL;
+ GFile* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ RawReader* _tmp27_ = NULL;
+ RawReader* _tmp28_ = NULL;
+ DetectedPhotoInformation* _tmp34_ = NULL;
+ PhotoMetadata* _tmp35_ = NULL;
+ gboolean _tmp58_ = FALSE;
+ DetectedPhotoInformation* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ DetectedPhotoInformation* _tmp66_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 166 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_SNIFFER, RawSniffer);
+#line 168 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _vala_is_corrupted = FALSE;
+#line 170 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = detected_photo_information_new ();
+#line 170 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ detected = _tmp0_;
+#line 172 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = graw_processor_new (LIBRAW_OPTIONS_NONE);
+#line 172 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ processor = _tmp1_;
+#line 173 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = processor;
+#line 173 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = graw_processor_get_output_params (_tmp2_);
+#line 173 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 173 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ (*_tmp4_).user_flip = (gint) GRAW_FLIP_NONE;
+#line 1724 "RawSupport.c"
+ {
+ GRawProcessor* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GRawProcessor* _tmp9_ = NULL;
+ GRawProcessor* _tmp10_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp5_ = processor;
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp7_ = g_file_get_path (_tmp6_);
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp8_ = _tmp7_;
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_open_file (_tmp5_, _tmp8_, &_inner_error_);
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp8_);
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 1748 "RawSupport.c"
+ goto __catch29_graw_exception;
+ }
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 176 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 1761 "RawSupport.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp9_ = processor;
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_unpack (_tmp9_, &_inner_error_);
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 1771 "RawSupport.c"
+ goto __catch29_graw_exception;
+ }
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 177 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 1784 "RawSupport.c"
+ }
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp10_ = processor;
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_adjust_sizes_info_only (_tmp10_, &_inner_error_);
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_inner_error_->domain == GRAW_EXCEPTION) {
+#line 1794 "RawSupport.c"
+ goto __catch29_graw_exception;
+ }
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_clear_error (&_inner_error_);
+#line 178 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 1807 "RawSupport.c"
+ }
+ }
+ goto __finally29;
+ __catch29_graw_exception:
+ {
+ GError* exception = NULL;
+ GError* _tmp11_ = NULL;
+ GError* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ exception = _inner_error_;
+#line 175 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _inner_error_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp11_ = exception;
+#line 180 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (g_error_matches (_tmp11_, GRAW_EXCEPTION, GRAW_EXCEPTION_UNSUPPORTED_FILE)) {
+#line 181 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = NULL;
+#line 181 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_error_free0 (exception);
+#line 181 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 181 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 181 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (is_corrupted) {
+#line 181 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1837 "RawSupport.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 1841 "RawSupport.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp12_ = exception;
+#line 183 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp13_ = _g_error_copy0 (_tmp12_);
+#line 183 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _inner_error_ = _tmp13_;
+#line 183 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_error_free0 (exception);
+#line 1851 "RawSupport.c"
+ goto __finally29;
+ }
+ __finally29:
+#line 175 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 175 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 175 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 175 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 175 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 1865 "RawSupport.c"
+ }
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp14_ = detected;
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp15_ = processor;
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp16_ = graw_processor_get_sizes (_tmp15_);
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp17_ = _tmp16_.iwidth;
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp18_ = processor;
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp19_ = graw_processor_get_sizes (_tmp18_);
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp20_ = _tmp19_.iheight;
+#line 186 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ dimensions_init (&_tmp14_->image_dim, (gint) _tmp17_, (gint) _tmp20_);
+#line 187 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp21_ = detected;
+#line 187 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp21_->colorspace = GDK_COLORSPACE_RGB;
+#line 188 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp22_ = detected;
+#line 188 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp22_->channels = 3;
+#line 189 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp23_ = detected;
+#line 189 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp23_->bits_per_channel = 8;
+#line 191 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp24_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 191 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp25_ = g_file_get_path (_tmp24_);
+#line 191 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp26_ = _tmp25_;
+#line 191 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp27_ = raw_reader_new (_tmp26_);
+#line 191 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp28_ = _tmp27_;
+#line 191 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp26_);
+#line 191 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ reader = _tmp28_;
+#line 1909 "RawSupport.c"
+ {
+ PhotoMetadata* _tmp29_ = NULL;
+ RawReader* _tmp30_ = NULL;
+ PhotoMetadata* _tmp31_ = NULL;
+ DetectedPhotoInformation* _tmp32_ = NULL;
+ PhotoMetadata* _tmp33_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp30_ = reader;
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp31_ = photo_file_reader_read_metadata (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, TYPE_PHOTO_FILE_READER, PhotoFileReader), &_inner_error_);
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp29_ = _tmp31_;
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1924 "RawSupport.c"
+ goto __catch30_g_error;
+ }
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp32_ = detected;
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp33_ = _tmp29_;
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp29_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _media_metadata_unref0 (_tmp32_->metadata);
+#line 193 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp32_->metadata = _tmp33_;
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _media_metadata_unref0 (_tmp29_);
+#line 1939 "RawSupport.c"
+ }
+ goto __finally30;
+ __catch30_g_error:
+ {
+ GError* err = NULL;
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ err = _inner_error_;
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _inner_error_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_error_free0 (err);
+#line 1951 "RawSupport.c"
+ }
+ __finally30:
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 192 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 1966 "RawSupport.c"
+ }
+#line 198 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp34_ = detected;
+#line 198 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp35_ = _tmp34_->metadata;
+#line 198 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp35_ != NULL) {
+#line 1974 "RawSupport.c"
+ guint8* flattened_sans_thumbnail = NULL;
+ DetectedPhotoInformation* _tmp36_ = NULL;
+ PhotoMetadata* _tmp37_ = NULL;
+ gint _tmp38_ = 0;
+ guint8* _tmp39_ = NULL;
+ gint flattened_sans_thumbnail_length1 = 0;
+ gint _flattened_sans_thumbnail_size_ = 0;
+ gboolean _tmp40_ = FALSE;
+ guint8* _tmp41_ = NULL;
+ gint _tmp41__length1 = 0;
+ guint8* flattened_thumbnail = NULL;
+ DetectedPhotoInformation* _tmp47_ = NULL;
+ PhotoMetadata* _tmp48_ = NULL;
+ gint _tmp49_ = 0;
+ guint8* _tmp50_ = NULL;
+ gint flattened_thumbnail_length1 = 0;
+ gint _flattened_thumbnail_size_ = 0;
+ gboolean _tmp51_ = FALSE;
+ guint8* _tmp52_ = NULL;
+ gint _tmp52__length1 = 0;
+#line 199 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_ = detected;
+#line 199 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp37_ = _tmp36_->metadata;
+#line 199 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp39_ = photo_metadata_flatten_exif (_tmp37_, FALSE, &_tmp38_);
+#line 199 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ flattened_sans_thumbnail = _tmp39_;
+#line 199 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ flattened_sans_thumbnail_length1 = _tmp38_;
+#line 199 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _flattened_sans_thumbnail_size_ = flattened_sans_thumbnail_length1;
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp41_ = flattened_sans_thumbnail;
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp41__length1 = flattened_sans_thumbnail_length1;
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp41_ != NULL) {
+#line 2013 "RawSupport.c"
+ guint8* _tmp42_ = NULL;
+ gint _tmp42__length1 = 0;
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp42_ = flattened_sans_thumbnail;
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp42__length1 = flattened_sans_thumbnail_length1;
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp40_ = _tmp42__length1 > 0;
+#line 2022 "RawSupport.c"
+ } else {
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp40_ = FALSE;
+#line 2026 "RawSupport.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp40_) {
+#line 2030 "RawSupport.c"
+ DetectedPhotoInformation* _tmp43_ = NULL;
+ guint8* _tmp44_ = NULL;
+ gint _tmp44__length1 = 0;
+ guint8* _tmp45_ = NULL;
+ gint _tmp45__length1 = 0;
+ gchar* _tmp46_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp43_ = detected;
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp44_ = flattened_sans_thumbnail;
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp44__length1 = flattened_sans_thumbnail_length1;
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp45_ = flattened_sans_thumbnail;
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp45__length1 = flattened_sans_thumbnail_length1;
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp46_ = md5_binary (_tmp44_, (gsize) _tmp45__length1);
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp43_->exif_md5);
+#line 201 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp43_->exif_md5 = _tmp46_;
+#line 2053 "RawSupport.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp47_ = detected;
+#line 203 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp48_ = _tmp47_->metadata;
+#line 203 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp50_ = photo_metadata_flatten_exif_preview (_tmp48_, &_tmp49_);
+#line 203 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ flattened_thumbnail = _tmp50_;
+#line 203 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ flattened_thumbnail_length1 = _tmp49_;
+#line 203 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _flattened_thumbnail_size_ = flattened_thumbnail_length1;
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp52_ = flattened_thumbnail;
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp52__length1 = flattened_thumbnail_length1;
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp52_ != NULL) {
+#line 2073 "RawSupport.c"
+ guint8* _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp53_ = flattened_thumbnail;
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp53__length1 = flattened_thumbnail_length1;
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp51_ = _tmp53__length1 > 0;
+#line 2082 "RawSupport.c"
+ } else {
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp51_ = FALSE;
+#line 2086 "RawSupport.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp51_) {
+#line 2090 "RawSupport.c"
+ DetectedPhotoInformation* _tmp54_ = NULL;
+ guint8* _tmp55_ = NULL;
+ gint _tmp55__length1 = 0;
+ guint8* _tmp56_ = NULL;
+ gint _tmp56__length1 = 0;
+ gchar* _tmp57_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp54_ = detected;
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp55_ = flattened_thumbnail;
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp55__length1 = flattened_thumbnail_length1;
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp56_ = flattened_thumbnail;
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp56__length1 = flattened_thumbnail_length1;
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp57_ = md5_binary (_tmp55_, (gsize) _tmp56__length1);
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp54_->thumbnail_md5);
+#line 205 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp54_->thumbnail_md5 = _tmp57_;
+#line 2113 "RawSupport.c"
+ }
+#line 198 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ flattened_thumbnail = (g_free (flattened_thumbnail), NULL);
+#line 198 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ flattened_sans_thumbnail = (g_free (flattened_sans_thumbnail), NULL);
+#line 2119 "RawSupport.c"
+ }
+#line 208 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp58_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->calc_md5;
+#line 208 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp58_) {
+#line 2125 "RawSupport.c"
+ gchar* _tmp59_ = NULL;
+ GFile* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ DetectedPhotoInformation* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp60_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp61_ = md5_file (_tmp60_, &_inner_error_);
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp59_ = _tmp61_;
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2149 "RawSupport.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp62_ = detected;
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp63_ = _tmp59_;
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp59_ = NULL;
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp62_->md5);
+#line 209 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp62_->md5 = _tmp63_;
+#line 208 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp59_);
+#line 2163 "RawSupport.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp64_ = detected;
+#line 211 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp65_ = g_strdup ("raw");
+#line 211 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp64_->format_name);
+#line 211 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp64_->format_name = _tmp65_;
+#line 212 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp66_ = detected;
+#line 212 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp66_->file_format = PHOTO_FILE_FORMAT_RAW;
+#line 214 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = detected;
+#line 214 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _photo_file_adapter_unref0 (reader);
+#line 214 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 214 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (is_corrupted) {
+#line 214 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 2187 "RawSupport.c"
+ }
+#line 214 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2191 "RawSupport.c"
+}
+
+
+static void raw_sniffer_class_init (RawSnifferClass * klass) {
+#line 161 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 161 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileSnifferClass *) klass)->sniff = raw_sniffer_real_sniff;
+#line 2200 "RawSupport.c"
+}
+
+
+static void raw_sniffer_instance_init (RawSniffer * self) {
+}
+
+
+GType raw_sniffer_get_type (void) {
+ static volatile gsize raw_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&raw_sniffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RawSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) raw_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RawSniffer), 0, (GInstanceInitFunc) raw_sniffer_instance_init, NULL };
+ GType raw_sniffer_type_id;
+ raw_sniffer_type_id = g_type_register_static (TYPE_PHOTO_FILE_SNIFFER, "RawSniffer", &g_define_type_info, 0);
+ g_once_init_leave (&raw_sniffer_type_id__volatile, raw_sniffer_type_id);
+ }
+ return raw_sniffer_type_id__volatile;
+}
+
+
+RawReader* raw_reader_construct (GType object_type, const gchar* filepath) {
+ RawReader* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 220 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = filepath;
+#line 220 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = (RawReader*) photo_file_reader_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_RAW);
+#line 219 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return self;
+#line 2231 "RawSupport.c"
+}
+
+
+RawReader* raw_reader_new (const gchar* filepath) {
+#line 219 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return raw_reader_construct (TYPE_RAW_READER, filepath);
+#line 2238 "RawSupport.c"
+}
+
+
+static PhotoMetadata* raw_reader_real_read_metadata (PhotoFileReader* base, GError** error) {
+ RawReader * self;
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* metadata = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_READER, RawReader);
+#line 224 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = photo_metadata_new ();
+#line 224 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ metadata = _tmp0_;
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ media_metadata_read_from_file (G_TYPE_CHECK_INSTANCE_CAST (metadata, TYPE_MEDIA_METADATA, MediaMetadata), _tmp2_, &_inner_error_);
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _media_metadata_unref0 (metadata);
+#line 225 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2272 "RawSupport.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = metadata;
+#line 227 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2278 "RawSupport.c"
+}
+
+
+static GdkPixbuf* raw_reader_real_unscaled_read (PhotoFileReader* base, GError** error) {
+ RawReader * self;
+ GdkPixbuf* result = NULL;
+ GRawProcessor* processor = NULL;
+ GRawProcessor* _tmp0_ = NULL;
+ GRawProcessor* _tmp1_ = NULL;
+ GRawProcessor* _tmp2_ = NULL;
+ libraw_output_params_t* _tmp3_ = NULL;
+ libraw_output_params_t* _tmp4_ = NULL;
+ GRawProcessor* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GRawProcessor* _tmp8_ = NULL;
+ GRawProcessor* _tmp9_ = NULL;
+ GRawProcessedImage* _tmp10_ = NULL;
+ GRawProcessor* _tmp11_ = NULL;
+ GRawProcessedImage* _tmp12_ = NULL;
+ GRawProcessedImage* _tmp13_ = NULL;
+ GRawProcessedImage* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+ GdkPixbuf* _tmp16_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_READER, RawReader);
+#line 231 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = graw_processor_new (LIBRAW_OPTIONS_NONE);
+#line 231 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ processor = _tmp0_;
+#line 232 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = processor;
+#line 232 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_configure_for_rgb_display (_tmp1_, FALSE);
+#line 233 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = processor;
+#line 233 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = graw_processor_get_output_params (_tmp2_);
+#line 233 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp4_ = _tmp3_;
+#line 233 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ (*_tmp4_).user_flip = (gint) GRAW_FLIP_NONE;
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp5_ = processor;
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp6_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp7_ = _tmp6_;
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_open_file (_tmp5_, _tmp7_, &_inner_error_);
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp7_);
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 235 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2340 "RawSupport.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp8_ = processor;
+#line 236 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_unpack (_tmp8_, &_inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 236 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 236 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 236 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2354 "RawSupport.c"
+ }
+#line 237 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp9_ = processor;
+#line 237 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_process (_tmp9_, &_inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 237 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 237 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 237 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2368 "RawSupport.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp11_ = processor;
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp12_ = graw_processor_make_mem_image (_tmp11_, &_inner_error_);
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp10_ = _tmp12_;
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2384 "RawSupport.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp13_ = _tmp10_;
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp10_ = NULL;
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp14_ = _tmp13_;
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp15_ = graw_processed_image_get_pixbuf_copy (_tmp14_);
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp16_ = _tmp15_;
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processed_image_unref0 (_tmp14_);
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp16_;
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processed_image_unref0 (_tmp10_);
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 239 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2406 "RawSupport.c"
+}
+
+
+static GdkPixbuf* raw_reader_real_scaled_read (PhotoFileReader* base, Dimensions* full, Dimensions* scaled, GError** error) {
+ RawReader * self;
+ GdkPixbuf* result = NULL;
+ gdouble width_proportion = 0.0;
+ Dimensions _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gdouble height_proportion = 0.0;
+ Dimensions _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ Dimensions _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ gdouble _tmp9_ = 0.0;
+ gboolean half_size = FALSE;
+ GRawProcessor* processor = NULL;
+ GRawProcessor* _tmp11_ = NULL;
+ GRawProcessor* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ GRawProcessor* _tmp14_ = NULL;
+ libraw_output_params_t* _tmp15_ = NULL;
+ libraw_output_params_t* _tmp16_ = NULL;
+ GRawProcessor* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ GRawProcessor* _tmp20_ = NULL;
+ GRawProcessor* _tmp21_ = NULL;
+ GRawProcessedImage* image = NULL;
+ GRawProcessor* _tmp22_ = NULL;
+ GRawProcessedImage* _tmp23_ = NULL;
+ GRawProcessedImage* _tmp24_ = NULL;
+ GdkPixbuf* _tmp25_ = NULL;
+ GdkPixbuf* _tmp26_ = NULL;
+ Dimensions _tmp27_ = {0};
+ GdkPixbuf* _tmp28_ = NULL;
+ GdkPixbuf* _tmp29_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RAW_READER, RawReader);
+#line 242 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (full != NULL, NULL);
+#line 242 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (scaled != NULL, NULL);
+#line 243 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = *scaled;
+#line 243 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = _tmp0_.width;
+#line 243 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = *full;
+#line 243 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = _tmp2_.width;
+#line 243 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ width_proportion = ((gdouble) _tmp1_) / ((gdouble) _tmp3_);
+#line 244 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp4_ = *scaled;
+#line 244 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp5_ = _tmp4_.height;
+#line 244 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp6_ = *full;
+#line 244 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp7_ = _tmp6_.height;
+#line 244 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ height_proportion = ((gdouble) _tmp5_) / ((gdouble) _tmp7_);
+#line 245 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp9_ = width_proportion;
+#line 245 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp9_ < 0.5) {
+#line 2478 "RawSupport.c"
+ gdouble _tmp10_ = 0.0;
+#line 245 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp10_ = height_proportion;
+#line 245 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp8_ = _tmp10_ < 0.5;
+#line 2484 "RawSupport.c"
+ } else {
+#line 245 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp8_ = FALSE;
+#line 2488 "RawSupport.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ half_size = _tmp8_;
+#line 247 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp11_ = graw_processor_new (LIBRAW_OPTIONS_NONE);
+#line 247 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ processor = _tmp11_;
+#line 248 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp12_ = processor;
+#line 248 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp13_ = half_size;
+#line 248 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_configure_for_rgb_display (_tmp12_, _tmp13_);
+#line 249 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp14_ = processor;
+#line 249 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp15_ = graw_processor_get_output_params (_tmp14_);
+#line 249 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp16_ = _tmp15_;
+#line 249 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ (*_tmp16_).user_flip = (gint) GRAW_FLIP_NONE;
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp17_ = processor;
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp18_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp19_ = _tmp18_;
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_open_file (_tmp17_, _tmp19_, &_inner_error_);
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp19_);
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 251 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2528 "RawSupport.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp20_ = processor;
+#line 252 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_unpack (_tmp20_, &_inner_error_);
+#line 252 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 252 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 252 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 252 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2542 "RawSupport.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp21_ = processor;
+#line 253 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ graw_processor_process (_tmp21_, &_inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 253 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 253 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 253 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2556 "RawSupport.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp22_ = processor;
+#line 255 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp23_ = graw_processor_make_mem_image (_tmp22_, &_inner_error_);
+#line 255 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ image = _tmp23_;
+#line 255 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 255 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 255 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 255 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 2572 "RawSupport.c"
+ }
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp24_ = image;
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp25_ = graw_processed_image_get_pixbuf_copy (_tmp24_);
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp26_ = _tmp25_;
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp27_ = *scaled;
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp28_ = resize_pixbuf (_tmp26_, &_tmp27_, GDK_INTERP_BILINEAR);
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp29_ = _tmp28_;
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (_tmp26_);
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp29_;
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processed_image_unref0 (image);
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _graw_processor_unref0 (processor);
+#line 257 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2596 "RawSupport.c"
+}
+
+
+static void raw_reader_class_init (RawReaderClass * klass) {
+#line 218 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ raw_reader_parent_class = g_type_class_peek_parent (klass);
+#line 218 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileReaderClass *) klass)->read_metadata = raw_reader_real_read_metadata;
+#line 218 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileReaderClass *) klass)->unscaled_read = raw_reader_real_unscaled_read;
+#line 218 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ((PhotoFileReaderClass *) klass)->scaled_read = raw_reader_real_scaled_read;
+#line 2609 "RawSupport.c"
+}
+
+
+static void raw_reader_instance_init (RawReader * self) {
+}
+
+
+GType raw_reader_get_type (void) {
+ static volatile gsize raw_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&raw_reader_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RawReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) raw_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RawReader), 0, (GInstanceInitFunc) raw_reader_instance_init, NULL };
+ GType raw_reader_type_id;
+ raw_reader_type_id = g_type_register_static (TYPE_PHOTO_FILE_READER, "RawReader", &g_define_type_info, 0);
+ g_once_init_leave (&raw_reader_type_id__volatile, raw_reader_type_id);
+ }
+ return raw_reader_type_id__volatile;
+}
+
+
+RawDeveloper* raw_developer_as_array (int* result_length1) {
+ RawDeveloper* result = NULL;
+ RawDeveloper* _tmp0_ = NULL;
+ RawDeveloper* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = g_new0 (RawDeveloper, 3);
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_[0] = RAW_DEVELOPER_SHOTWELL;
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_[1] = RAW_DEVELOPER_CAMERA;
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_[2] = RAW_DEVELOPER_EMBEDDED;
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1__length1 = 3;
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (result_length1) {
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ *result_length1 = _tmp1__length1;
+#line 2650 "RawSupport.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp1_;
+#line 268 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2656 "RawSupport.c"
+}
+
+
+gchar* raw_developer_to_string (RawDeveloper self) {
+ gchar* result = NULL;
+#line 272 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ switch (self) {
+#line 272 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ case RAW_DEVELOPER_SHOTWELL:
+#line 2666 "RawSupport.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 274 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = g_strdup ("SHOTWELL");
+#line 274 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp0_;
+#line 274 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2675 "RawSupport.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ case RAW_DEVELOPER_CAMERA:
+#line 2679 "RawSupport.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = g_strdup ("CAMERA");
+#line 276 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp1_;
+#line 276 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2688 "RawSupport.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ case RAW_DEVELOPER_EMBEDDED:
+#line 2692 "RawSupport.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 278 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = g_strdup ("EMBEDDED");
+#line 278 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp2_;
+#line 278 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2701 "RawSupport.c"
+ }
+ default:
+ {
+#line 280 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_assert_not_reached ();
+#line 2707 "RawSupport.c"
+ }
+ }
+}
+
+
+RawDeveloper raw_developer_from_string (const gchar* value) {
+ RawDeveloper result = 0;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ static GQuark _tmp2_label0 = 0;
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ static GQuark _tmp2_label1 = 0;
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ static GQuark _tmp2_label2 = 0;
+#line 284 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (value != NULL, 0);
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = value;
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = _tmp0_;
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("SHOTWELL")))) {
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ switch (0) {
+#line 2736 "RawSupport.c"
+ default:
+ {
+#line 287 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = RAW_DEVELOPER_SHOTWELL;
+#line 287 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2743 "RawSupport.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("CAMERA")))) {
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ switch (0) {
+#line 2749 "RawSupport.c"
+ default:
+ {
+#line 289 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = RAW_DEVELOPER_CAMERA;
+#line 289 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2756 "RawSupport.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("EMBEDDED")))) {
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ switch (0) {
+#line 2762 "RawSupport.c"
+ default:
+ {
+#line 291 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = RAW_DEVELOPER_EMBEDDED;
+#line 291 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2769 "RawSupport.c"
+ }
+ }
+ } else {
+#line 285 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ switch (0) {
+#line 2775 "RawSupport.c"
+ default:
+ {
+#line 293 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_assert_not_reached ();
+#line 2780 "RawSupport.c"
+ }
+ }
+ }
+}
+
+
+gchar* raw_developer_get_label (RawDeveloper self) {
+ gchar* result = NULL;
+#line 298 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ switch (self) {
+#line 298 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ case RAW_DEVELOPER_SHOTWELL:
+#line 2793 "RawSupport.c"
+ {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = _ ("Shotwell");
+#line 300 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 300 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp1_;
+#line 300 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2805 "RawSupport.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ case RAW_DEVELOPER_CAMERA:
+#line 298 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ case RAW_DEVELOPER_EMBEDDED:
+#line 2811 "RawSupport.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = _ ("Camera");
+#line 303 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 303 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = _tmp3_;
+#line 303 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2823 "RawSupport.c"
+ }
+ default:
+ {
+#line 305 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_assert_not_reached ();
+#line 2829 "RawSupport.c"
+ }
+ }
+}
+
+
+gboolean raw_developer_is_equivalent (RawDeveloper self, RawDeveloper d) {
+ gboolean result = FALSE;
+ RawDeveloper _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 312 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = d;
+#line 312 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (self == _tmp0_) {
+#line 313 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = TRUE;
+#line 313 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2848 "RawSupport.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (self == RAW_DEVELOPER_CAMERA) {
+#line 2852 "RawSupport.c"
+ RawDeveloper _tmp3_ = 0;
+#line 315 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = d;
+#line 315 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = _tmp3_ == RAW_DEVELOPER_EMBEDDED;
+#line 2858 "RawSupport.c"
+ } else {
+#line 315 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = FALSE;
+#line 2862 "RawSupport.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp2_) {
+#line 315 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = TRUE;
+#line 2868 "RawSupport.c"
+ } else {
+ gboolean _tmp4_ = FALSE;
+#line 316 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (self == RAW_DEVELOPER_EMBEDDED) {
+#line 2873 "RawSupport.c"
+ RawDeveloper _tmp5_ = 0;
+#line 316 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp5_ = d;
+#line 316 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp4_ = _tmp5_ == RAW_DEVELOPER_CAMERA;
+#line 2879 "RawSupport.c"
+ } else {
+#line 316 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp4_ = FALSE;
+#line 2883 "RawSupport.c"
+ }
+#line 316 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = _tmp4_;
+#line 2887 "RawSupport.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp1_) {
+#line 317 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = TRUE;
+#line 317 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2895 "RawSupport.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = FALSE;
+#line 319 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 2901 "RawSupport.c"
+}
+
+
+BackingPhotoRow* raw_developer_create_backing_row_for_development (RawDeveloper self, const gchar* raw_filepath, const gchar* camera_development_filename, GError** error) {
+ BackingPhotoRow* result = NULL;
+ BackingPhotoRow* ns = NULL;
+ BackingPhotoRow* _tmp0_ = NULL;
+ GFile* master = NULL;
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* basename = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean c = FALSE;
+ GFile* new_back = NULL;
+ GFile* _tmp27_ = NULL;
+ GFile* _tmp28_ = NULL;
+ GFile* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ GFile* _tmp32_ = NULL;
+ GFile* _tmp33_ = NULL;
+ GFile* _tmp34_ = NULL;
+ BackingPhotoRow* _tmp35_ = NULL;
+ BackingPhotoRow* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 324 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_return_val_if_fail (raw_filepath != NULL, NULL);
+#line 326 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp0_ = backing_photo_row_new ();
+#line 326 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ns = _tmp0_;
+#line 327 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp1_ = raw_filepath;
+#line 327 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp2_ = g_file_new_for_path (_tmp1_);
+#line 327 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ master = _tmp2_;
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp3_ = master;
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp4_ = g_file_get_basename (_tmp3_);
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp5_ = _tmp4_;
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ disassemble_filename (_tmp5_, &_tmp6_, &_tmp7_);
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (name);
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ name = _tmp6_;
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (ext);
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ ext = _tmp7_;
+#line 329 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp5_);
+#line 335 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp8_ = camera_development_filename;
+#line 335 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (_tmp8_ == NULL) {
+#line 2970 "RawSupport.c"
+ gchar* _tmp9_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (self != RAW_DEVELOPER_CAMERA) {
+#line 2983 "RawSupport.c"
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp10_ = raw_developer_to_string (self);
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp11_ = _tmp10_;
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp12_ = g_utf8_strdown (_tmp11_, (gssize) -1);
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp13_ = _tmp12_;
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp14_ = g_strconcat ("_", _tmp13_, NULL);
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp9_);
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp9_ = _tmp14_;
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp13_);
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp11_);
+#line 3007 "RawSupport.c"
+ } else {
+ gchar* _tmp15_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp15_ = g_strdup ("");
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp9_);
+#line 337 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp9_ = _tmp15_;
+#line 3016 "RawSupport.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp16_ = name;
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp17_ = g_strconcat (_tmp16_, "_", NULL);
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp18_ = _tmp17_;
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp19_ = ext;
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp20_ = g_strconcat (_tmp18_, _tmp19_, NULL);
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp21_ = _tmp20_;
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp22_ = g_strconcat (_tmp21_, _tmp9_, NULL);
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp23_ = _tmp22_;
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp24_ = g_strconcat (_tmp23_, ".jpg", NULL);
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (basename);
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ basename = _tmp24_;
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp23_);
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp21_);
+#line 336 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp18_);
+#line 335 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp9_);
+#line 3048 "RawSupport.c"
+ } else {
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp25_ = camera_development_filename;
+#line 339 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp26_ = g_strdup (_tmp25_);
+#line 339 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (basename);
+#line 339 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ basename = _tmp26_;
+#line 3060 "RawSupport.c"
+ }
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp27_ = master;
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp28_ = g_file_get_parent (_tmp27_);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp29_ = _tmp28_;
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp30_ = basename;
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp32_ = generate_unique_file (_tmp29_, _tmp30_, &_tmp31_, &_inner_error_);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ c = _tmp31_;
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp33_ = _tmp32_;
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (_tmp29_);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ new_back = _tmp33_;
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (basename);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (ext);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (name);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (master);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _backing_photo_row_unref0 (ns);
+#line 343 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 3096 "RawSupport.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp34_ = new_back;
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ claim_file (_tmp34_, &_inner_error_);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (new_back);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (basename);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (ext);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (name);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (master);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _backing_photo_row_unref0 (ns);
+#line 344 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return NULL;
+#line 3120 "RawSupport.c"
+ }
+#line 345 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp35_ = ns;
+#line 345 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp35_->file_format = PHOTO_FILE_FORMAT_JFIF;
+#line 346 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_ = ns;
+#line 346 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp37_ = new_back;
+#line 346 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp38_ = g_file_get_path (_tmp37_);
+#line 346 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (_tmp36_->filepath);
+#line 346 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _tmp36_->filepath = _tmp38_;
+#line 348 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ result = ns;
+#line 348 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (new_back);
+#line 348 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (basename);
+#line 348 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (ext);
+#line 348 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_free0 (name);
+#line 348 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ _g_object_unref0 (master);
+#line 348 "/home/jens/Source/shotwell/src/photos/RawSupport.vala"
+ return result;
+#line 3150 "RawSupport.c"
+}
+
+
+GType raw_developer_get_type (void) {
+ static volatile gsize raw_developer_type_id__volatile = 0;
+ if (g_once_init_enter (&raw_developer_type_id__volatile)) {
+ static const GEnumValue values[] = {{RAW_DEVELOPER_SHOTWELL, "RAW_DEVELOPER_SHOTWELL", "shotwell"}, {RAW_DEVELOPER_CAMERA, "RAW_DEVELOPER_CAMERA", "camera"}, {RAW_DEVELOPER_EMBEDDED, "RAW_DEVELOPER_EMBEDDED", "embedded"}, {0, NULL, NULL}};
+ GType raw_developer_type_id;
+ raw_developer_type_id = g_enum_register_static ("RawDeveloper", values);
+ g_once_init_leave (&raw_developer_type_id__volatile, raw_developer_type_id);
+ }
+ return raw_developer_type_id__volatile;
+}
+
+
+
diff --git a/src/photos/TiffSupport.c b/src/photos/TiffSupport.c
new file mode 100644
index 0000000..2e1282e
--- /dev/null
+++ b/src/photos/TiffSupport.c
@@ -0,0 +1,1714 @@
+/* TiffSupport.c generated by valac 0.32.1, the Vala compiler
+ * generated from TiffSupport.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <glib/gi18n-lib.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define TYPE_PHOTO_FILE_FORMAT_DRIVER (photo_file_format_driver_get_type ())
+#define PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriver))
+#define PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+#define IS_PHOTO_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define IS_PHOTO_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_DRIVER))
+#define PHOTO_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_DRIVER, PhotoFileFormatDriverClass))
+
+typedef struct _PhotoFileFormatDriver PhotoFileFormatDriver;
+typedef struct _PhotoFileFormatDriverClass PhotoFileFormatDriverClass;
+typedef struct _PhotoFileFormatDriverPrivate PhotoFileFormatDriverPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT_PROPERTIES (photo_file_format_properties_get_type ())
+#define PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties))
+#define PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define IS_PHOTO_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_FORMAT_PROPERTIES))
+#define PHOTO_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatPropertiesClass))
+
+typedef struct _PhotoFileFormatProperties PhotoFileFormatProperties;
+typedef struct _PhotoFileFormatPropertiesClass PhotoFileFormatPropertiesClass;
+
+#define TYPE_PHOTO_FILE_ADAPTER (photo_file_adapter_get_type ())
+#define PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter))
+#define PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+#define IS_PHOTO_FILE_ADAPTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_ADAPTER))
+#define IS_PHOTO_FILE_ADAPTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_ADAPTER))
+#define PHOTO_FILE_ADAPTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapterClass))
+
+typedef struct _PhotoFileAdapter PhotoFileAdapter;
+typedef struct _PhotoFileAdapterClass PhotoFileAdapterClass;
+
+#define TYPE_PHOTO_FILE_READER (photo_file_reader_get_type ())
+#define PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReader))
+#define PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+#define IS_PHOTO_FILE_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_READER))
+#define IS_PHOTO_FILE_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_READER))
+#define PHOTO_FILE_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_READER, PhotoFileReaderClass))
+
+typedef struct _PhotoFileReader PhotoFileReader;
+typedef struct _PhotoFileReaderClass PhotoFileReaderClass;
+
+#define TYPE_MEDIA_METADATA (media_metadata_get_type ())
+#define MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_METADATA, MediaMetadata))
+#define MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_METADATA, MediaMetadataClass))
+#define IS_MEDIA_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_METADATA))
+#define IS_MEDIA_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_METADATA))
+#define MEDIA_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_METADATA, MediaMetadataClass))
+
+typedef struct _MediaMetadata MediaMetadata;
+typedef struct _MediaMetadataClass MediaMetadataClass;
+
+#define TYPE_PHOTO_METADATA (photo_metadata_get_type ())
+#define PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_METADATA, PhotoMetadata))
+#define PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+#define IS_PHOTO_METADATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_METADATA))
+#define IS_PHOTO_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_METADATA))
+#define PHOTO_METADATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_METADATA, PhotoMetadataClass))
+
+typedef struct _PhotoMetadata PhotoMetadata;
+typedef struct _PhotoMetadataClass PhotoMetadataClass;
+
+#define TYPE_PHOTO_FILE_WRITER (photo_file_writer_get_type ())
+#define PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriter))
+#define PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+#define IS_PHOTO_FILE_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_WRITER))
+#define IS_PHOTO_FILE_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_WRITER))
+#define PHOTO_FILE_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_WRITER, PhotoFileWriterClass))
+
+typedef struct _PhotoFileWriter PhotoFileWriter;
+typedef struct _PhotoFileWriterClass PhotoFileWriterClass;
+
+#define TYPE_PHOTO_FILE_METADATA_WRITER (photo_file_metadata_writer_get_type ())
+#define PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter))
+#define PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+#define IS_PHOTO_FILE_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define IS_PHOTO_FILE_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_METADATA_WRITER))
+#define PHOTO_FILE_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriterClass))
+
+typedef struct _PhotoFileMetadataWriter PhotoFileMetadataWriter;
+typedef struct _PhotoFileMetadataWriterClass PhotoFileMetadataWriterClass;
+
+#define PHOTO_FILE_SNIFFER_TYPE_OPTIONS (photo_file_sniffer_options_get_type ())
+
+#define TYPE_PHOTO_FILE_SNIFFER (photo_file_sniffer_get_type ())
+#define PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer))
+#define PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+#define IS_PHOTO_FILE_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_FILE_SNIFFER))
+#define IS_PHOTO_FILE_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_FILE_SNIFFER))
+#define PHOTO_FILE_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSnifferClass))
+
+typedef struct _PhotoFileSniffer PhotoFileSniffer;
+typedef struct _PhotoFileSnifferClass PhotoFileSnifferClass;
+
+#define PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER (photos_tiff_file_format_driver_get_type ())
+#define PHOTOS_TIFF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver))
+#define PHOTOS_TIFF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriverClass))
+#define PHOTOS_IS_TIFF_FILE_FORMAT_DRIVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER))
+#define PHOTOS_IS_TIFF_FILE_FORMAT_DRIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER))
+#define PHOTOS_TIFF_FILE_FORMAT_DRIVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriverClass))
+
+typedef struct _PhotosTiffFileFormatDriver PhotosTiffFileFormatDriver;
+typedef struct _PhotosTiffFileFormatDriverClass PhotosTiffFileFormatDriverClass;
+typedef struct _PhotosTiffFileFormatDriverPrivate PhotosTiffFileFormatDriverPrivate;
+#define _photo_file_format_driver_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_driver_unref (var), NULL)))
+
+#define PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES (photos_tiff_file_format_properties_get_type ())
+#define PHOTOS_TIFF_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties))
+#define PHOTOS_TIFF_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatPropertiesClass))
+#define PHOTOS_IS_TIFF_FILE_FORMAT_PROPERTIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES))
+#define PHOTOS_IS_TIFF_FILE_FORMAT_PROPERTIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES))
+#define PHOTOS_TIFF_FILE_FORMAT_PROPERTIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatPropertiesClass))
+
+typedef struct _PhotosTiffFileFormatProperties PhotosTiffFileFormatProperties;
+typedef struct _PhotosTiffFileFormatPropertiesClass PhotosTiffFileFormatPropertiesClass;
+
+#define TYPE_GDK_READER (gdk_reader_get_type ())
+#define GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_READER, GdkReader))
+#define GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_READER, GdkReaderClass))
+#define IS_GDK_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_READER))
+#define IS_GDK_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_READER))
+#define GDK_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_READER, GdkReaderClass))
+
+typedef struct _GdkReader GdkReader;
+typedef struct _GdkReaderClass GdkReaderClass;
+
+#define PHOTOS_TYPE_TIFF_READER (photos_tiff_reader_get_type ())
+#define PHOTOS_TIFF_READER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_TIFF_READER, PhotosTiffReader))
+#define PHOTOS_TIFF_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_TIFF_READER, PhotosTiffReaderClass))
+#define PHOTOS_IS_TIFF_READER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_TIFF_READER))
+#define PHOTOS_IS_TIFF_READER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_TIFF_READER))
+#define PHOTOS_TIFF_READER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_TIFF_READER, PhotosTiffReaderClass))
+
+typedef struct _PhotosTiffReader PhotosTiffReader;
+typedef struct _PhotosTiffReaderClass PhotosTiffReaderClass;
+
+#define PHOTOS_TYPE_TIFF_WRITER (photos_tiff_writer_get_type ())
+#define PHOTOS_TIFF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_TIFF_WRITER, PhotosTiffWriter))
+#define PHOTOS_TIFF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_TIFF_WRITER, PhotosTiffWriterClass))
+#define PHOTOS_IS_TIFF_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_TIFF_WRITER))
+#define PHOTOS_IS_TIFF_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_TIFF_WRITER))
+#define PHOTOS_TIFF_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_TIFF_WRITER, PhotosTiffWriterClass))
+
+typedef struct _PhotosTiffWriter PhotosTiffWriter;
+typedef struct _PhotosTiffWriterClass PhotosTiffWriterClass;
+
+#define PHOTOS_TYPE_TIFF_METADATA_WRITER (photos_tiff_metadata_writer_get_type ())
+#define PHOTOS_TIFF_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_TIFF_METADATA_WRITER, PhotosTiffMetadataWriter))
+#define PHOTOS_TIFF_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_TIFF_METADATA_WRITER, PhotosTiffMetadataWriterClass))
+#define PHOTOS_IS_TIFF_METADATA_WRITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_TIFF_METADATA_WRITER))
+#define PHOTOS_IS_TIFF_METADATA_WRITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_TIFF_METADATA_WRITER))
+#define PHOTOS_TIFF_METADATA_WRITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_TIFF_METADATA_WRITER, PhotosTiffMetadataWriterClass))
+
+typedef struct _PhotosTiffMetadataWriter PhotosTiffMetadataWriter;
+typedef struct _PhotosTiffMetadataWriterClass PhotosTiffMetadataWriterClass;
+
+#define TYPE_GDK_SNIFFER (gdk_sniffer_get_type ())
+#define GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GDK_SNIFFER, GdkSniffer))
+#define GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GDK_SNIFFER, GdkSnifferClass))
+#define IS_GDK_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GDK_SNIFFER))
+#define IS_GDK_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GDK_SNIFFER))
+#define GDK_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GDK_SNIFFER, GdkSnifferClass))
+
+typedef struct _GdkSniffer GdkSniffer;
+typedef struct _GdkSnifferClass GdkSnifferClass;
+
+#define PHOTOS_TYPE_TIFF_SNIFFER (photos_tiff_sniffer_get_type ())
+#define PHOTOS_TIFF_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PHOTOS_TYPE_TIFF_SNIFFER, PhotosTiffSniffer))
+#define PHOTOS_TIFF_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PHOTOS_TYPE_TIFF_SNIFFER, PhotosTiffSnifferClass))
+#define PHOTOS_IS_TIFF_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PHOTOS_TYPE_TIFF_SNIFFER))
+#define PHOTOS_IS_TIFF_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PHOTOS_TYPE_TIFF_SNIFFER))
+#define PHOTOS_TIFF_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PHOTOS_TYPE_TIFF_SNIFFER, PhotosTiffSnifferClass))
+
+typedef struct _PhotosTiffSniffer PhotosTiffSniffer;
+typedef struct _PhotosTiffSnifferClass PhotosTiffSnifferClass;
+typedef struct _PhotoFileFormatPropertiesPrivate PhotoFileFormatPropertiesPrivate;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT_FLAGS (photo_file_format_flags_get_type ())
+typedef struct _PhotosTiffFileFormatPropertiesPrivate PhotosTiffFileFormatPropertiesPrivate;
+#define _photo_file_format_properties_unref0(var) ((var == NULL) ? NULL : (var = (photo_file_format_properties_unref (var), NULL)))
+typedef struct _PhotoFileSnifferPrivate PhotoFileSnifferPrivate;
+
+#define TYPE_DETECTED_PHOTO_INFORMATION (detected_photo_information_get_type ())
+#define DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformation))
+#define DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+#define IS_DETECTED_PHOTO_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DETECTED_PHOTO_INFORMATION))
+#define IS_DETECTED_PHOTO_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DETECTED_PHOTO_INFORMATION))
+#define DETECTED_PHOTO_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DETECTED_PHOTO_INFORMATION, DetectedPhotoInformationClass))
+
+typedef struct _DetectedPhotoInformation DetectedPhotoInformation;
+typedef struct _DetectedPhotoInformationClass DetectedPhotoInformationClass;
+typedef struct _GdkSnifferPrivate GdkSnifferPrivate;
+typedef struct _PhotosTiffSnifferPrivate PhotosTiffSnifferPrivate;
+#define _detected_photo_information_unref0(var) ((var == NULL) ? NULL : (var = (detected_photo_information_unref (var), NULL)))
+typedef struct _DetectedPhotoInformationPrivate DetectedPhotoInformationPrivate;
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _PhotoFileAdapterPrivate PhotoFileAdapterPrivate;
+typedef struct _PhotoFileReaderPrivate PhotoFileReaderPrivate;
+typedef struct _GdkReaderPrivate GdkReaderPrivate;
+typedef struct _PhotosTiffReaderPrivate PhotosTiffReaderPrivate;
+typedef struct _PhotoFileWriterPrivate PhotoFileWriterPrivate;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+typedef struct _PhotosTiffWriterPrivate PhotosTiffWriterPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _PhotoFileMetadataWriterPrivate PhotoFileMetadataWriterPrivate;
+typedef struct _PhotosTiffMetadataWriterPrivate PhotosTiffMetadataWriterPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+typedef enum {
+ PHOTO_FILE_SNIFFER_OPTIONS_GET_ALL = 0x00000000,
+ PHOTO_FILE_SNIFFER_OPTIONS_NO_MD5 = 0x00000001
+} PhotoFileSnifferOptions;
+
+struct _PhotoFileFormatDriver {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatDriverPrivate * priv;
+};
+
+struct _PhotoFileFormatDriverClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatDriver *self);
+ PhotoFileFormatProperties* (*get_properties) (PhotoFileFormatDriver* self);
+ PhotoFileReader* (*create_reader) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoMetadata* (*create_metadata) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_image) (PhotoFileFormatDriver* self);
+ gboolean (*can_write_metadata) (PhotoFileFormatDriver* self);
+ PhotoFileWriter* (*create_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileMetadataWriter* (*create_metadata_writer) (PhotoFileFormatDriver* self, const gchar* filepath);
+ PhotoFileSniffer* (*create_sniffer) (PhotoFileFormatDriver* self, GFile* file, PhotoFileSnifferOptions options);
+};
+
+struct _PhotosTiffFileFormatDriver {
+ PhotoFileFormatDriver parent_instance;
+ PhotosTiffFileFormatDriverPrivate * priv;
+};
+
+struct _PhotosTiffFileFormatDriverClass {
+ PhotoFileFormatDriverClass parent_class;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_FLAGS_NONE = 0x00000000
+} PhotoFileFormatFlags;
+
+struct _PhotoFileFormatProperties {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotoFileFormatPropertiesClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileFormatProperties *self);
+ PhotoFileFormat (*get_file_format) (PhotoFileFormatProperties* self);
+ PhotoFileFormatFlags (*get_flags) (PhotoFileFormatProperties* self);
+ gboolean (*is_recognized_extension) (PhotoFileFormatProperties* self, const gchar* ext);
+ gchar* (*get_default_extension) (PhotoFileFormatProperties* self);
+ gchar** (*get_known_extensions) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_default_mime_type) (PhotoFileFormatProperties* self);
+ gchar** (*get_mime_types) (PhotoFileFormatProperties* self, int* result_length1);
+ gchar* (*get_user_visible_name) (PhotoFileFormatProperties* self);
+};
+
+struct _PhotosTiffFileFormatProperties {
+ PhotoFileFormatProperties parent_instance;
+ PhotosTiffFileFormatPropertiesPrivate * priv;
+};
+
+struct _PhotosTiffFileFormatPropertiesClass {
+ PhotoFileFormatPropertiesClass parent_class;
+};
+
+struct _PhotoFileSniffer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileSnifferPrivate * priv;
+ GFile* file;
+ PhotoFileSnifferOptions options;
+ gboolean calc_md5;
+};
+
+struct _PhotoFileSnifferClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileSniffer *self);
+ DetectedPhotoInformation* (*sniff) (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+};
+
+struct _GdkSniffer {
+ PhotoFileSniffer parent_instance;
+ GdkSnifferPrivate * priv;
+};
+
+struct _GdkSnifferClass {
+ PhotoFileSnifferClass parent_class;
+};
+
+struct _PhotosTiffSniffer {
+ GdkSniffer parent_instance;
+ PhotosTiffSnifferPrivate * priv;
+};
+
+struct _PhotosTiffSnifferClass {
+ GdkSnifferClass parent_class;
+};
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _DetectedPhotoInformation {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ DetectedPhotoInformationPrivate * priv;
+ PhotoFileFormat file_format;
+ PhotoMetadata* metadata;
+ gchar* md5;
+ gchar* exif_md5;
+ gchar* thumbnail_md5;
+ gchar* format_name;
+ Dimensions image_dim;
+ GdkColorspace colorspace;
+ gint channels;
+ gint bits_per_channel;
+};
+
+struct _DetectedPhotoInformationClass {
+ GTypeClass parent_class;
+ void (*finalize) (DetectedPhotoInformation *self);
+};
+
+struct _PhotoFileAdapter {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PhotoFileAdapterPrivate * priv;
+};
+
+struct _PhotoFileAdapterClass {
+ GTypeClass parent_class;
+ void (*finalize) (PhotoFileAdapter *self);
+};
+
+struct _PhotoFileReader {
+ PhotoFileAdapter parent_instance;
+ PhotoFileReaderPrivate * priv;
+};
+
+struct _PhotoFileReaderClass {
+ PhotoFileAdapterClass parent_class;
+ PhotoMetadata* (*read_metadata) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*unscaled_read) (PhotoFileReader* self, GError** error);
+ GdkPixbuf* (*scaled_read) (PhotoFileReader* self, Dimensions* full, Dimensions* scaled, GError** error);
+};
+
+struct _GdkReader {
+ PhotoFileReader parent_instance;
+ GdkReaderPrivate * priv;
+};
+
+struct _GdkReaderClass {
+ PhotoFileReaderClass parent_class;
+};
+
+struct _PhotosTiffReader {
+ GdkReader parent_instance;
+ PhotosTiffReaderPrivate * priv;
+};
+
+struct _PhotosTiffReaderClass {
+ GdkReaderClass parent_class;
+};
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+struct _PhotoFileWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileWriterPrivate * priv;
+};
+
+struct _PhotoFileWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write) (PhotoFileWriter* self, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+};
+
+struct _PhotosTiffWriter {
+ PhotoFileWriter parent_instance;
+ PhotosTiffWriterPrivate * priv;
+};
+
+struct _PhotosTiffWriterClass {
+ PhotoFileWriterClass parent_class;
+};
+
+struct _PhotoFileMetadataWriter {
+ PhotoFileAdapter parent_instance;
+ PhotoFileMetadataWriterPrivate * priv;
+};
+
+struct _PhotoFileMetadataWriterClass {
+ PhotoFileAdapterClass parent_class;
+ void (*write_metadata) (PhotoFileMetadataWriter* self, PhotoMetadata* metadata, GError** error);
+};
+
+struct _PhotosTiffMetadataWriter {
+ PhotoFileMetadataWriter parent_instance;
+ PhotosTiffMetadataWriterPrivate * priv;
+};
+
+struct _PhotosTiffMetadataWriterClass {
+ PhotoFileMetadataWriterClass parent_class;
+};
+
+
+static gpointer photos_tiff_file_format_driver_parent_class = NULL;
+static PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_instance;
+static PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_instance = NULL;
+static gpointer photos_tiff_file_format_properties_parent_class = NULL;
+static gchar** photos_tiff_file_format_properties_KNOWN_EXTENSIONS;
+static gint photos_tiff_file_format_properties_KNOWN_EXTENSIONS_length1;
+static gchar** photos_tiff_file_format_properties_KNOWN_EXTENSIONS = NULL;
+static gint photos_tiff_file_format_properties_KNOWN_EXTENSIONS_length1 = 0;
+static gint _photos_tiff_file_format_properties_KNOWN_EXTENSIONS_size_ = 0;
+static gchar** photos_tiff_file_format_properties_KNOWN_MIME_TYPES;
+static gint photos_tiff_file_format_properties_KNOWN_MIME_TYPES_length1;
+static gchar** photos_tiff_file_format_properties_KNOWN_MIME_TYPES = NULL;
+static gint photos_tiff_file_format_properties_KNOWN_MIME_TYPES_length1 = 0;
+static gint _photos_tiff_file_format_properties_KNOWN_MIME_TYPES_size_ = 0;
+static PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_instance;
+static PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_instance = NULL;
+static gpointer photos_tiff_sniffer_parent_class = NULL;
+static gpointer photos_tiff_reader_parent_class = NULL;
+static gpointer photos_tiff_writer_parent_class = NULL;
+static gpointer photos_tiff_metadata_writer_parent_class = NULL;
+
+gpointer photo_file_format_driver_ref (gpointer instance);
+void photo_file_format_driver_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_driver (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_driver (GValue* value, gpointer v_object);
+void value_take_photo_file_format_driver (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_driver (const GValue* value);
+GType photo_file_format_driver_get_type (void) G_GNUC_CONST;
+gpointer photo_file_format_properties_ref (gpointer instance);
+void photo_file_format_properties_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_format_properties (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_format_properties (GValue* value, gpointer v_object);
+void value_take_photo_file_format_properties (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_format_properties (const GValue* value);
+GType photo_file_format_properties_get_type (void) G_GNUC_CONST;
+gpointer photo_file_adapter_ref (gpointer instance);
+void photo_file_adapter_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_adapter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_adapter (GValue* value, gpointer v_object);
+void value_take_photo_file_adapter (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_adapter (const GValue* value);
+GType photo_file_adapter_get_type (void) G_GNUC_CONST;
+GType photo_file_reader_get_type (void) G_GNUC_CONST;
+gpointer media_metadata_ref (gpointer instance);
+void media_metadata_unref (gpointer instance);
+GParamSpec* param_spec_media_metadata (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_metadata (GValue* value, gpointer v_object);
+void value_take_media_metadata (GValue* value, gpointer v_object);
+gpointer value_get_media_metadata (const GValue* value);
+GType media_metadata_get_type (void) G_GNUC_CONST;
+GType photo_metadata_get_type (void) G_GNUC_CONST;
+GType photo_file_writer_get_type (void) G_GNUC_CONST;
+GType photo_file_metadata_writer_get_type (void) G_GNUC_CONST;
+GType photo_file_sniffer_options_get_type (void) G_GNUC_CONST;
+gpointer photo_file_sniffer_ref (gpointer instance);
+void photo_file_sniffer_unref (gpointer instance);
+GParamSpec* param_spec_photo_file_sniffer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_photo_file_sniffer (GValue* value, gpointer v_object);
+void value_take_photo_file_sniffer (GValue* value, gpointer v_object);
+gpointer value_get_photo_file_sniffer (const GValue* value);
+GType photo_file_sniffer_get_type (void) G_GNUC_CONST;
+GType photos_tiff_file_format_driver_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_TIFF_FILE_FORMAT_DRIVER_DUMMY_PROPERTY
+};
+void photos_tiff_file_format_driver_init (void);
+PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_new (void);
+PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_construct (GType object_type);
+void photos_tiff_file_format_properties_init (void);
+PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_get_instance (void);
+static PhotoFileFormatProperties* photos_tiff_file_format_driver_real_get_properties (PhotoFileFormatDriver* base);
+GType photos_tiff_file_format_properties_get_type (void) G_GNUC_CONST;
+PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_get_instance (void);
+static PhotoFileReader* photos_tiff_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath);
+PhotosTiffReader* photos_tiff_reader_new (const gchar* filepath);
+PhotosTiffReader* photos_tiff_reader_construct (GType object_type, const gchar* filepath);
+GType gdk_reader_get_type (void) G_GNUC_CONST;
+GType photos_tiff_reader_get_type (void) G_GNUC_CONST;
+static PhotoMetadata* photos_tiff_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base);
+PhotoMetadata* photo_metadata_new (void);
+PhotoMetadata* photo_metadata_construct (GType object_type);
+static gboolean photos_tiff_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base);
+static gboolean photos_tiff_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base);
+static PhotoFileWriter* photos_tiff_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+PhotosTiffWriter* photos_tiff_writer_new (const gchar* filepath);
+PhotosTiffWriter* photos_tiff_writer_construct (GType object_type, const gchar* filepath);
+GType photos_tiff_writer_get_type (void) G_GNUC_CONST;
+static PhotoFileMetadataWriter* photos_tiff_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath);
+PhotosTiffMetadataWriter* photos_tiff_metadata_writer_new (const gchar* filepath);
+PhotosTiffMetadataWriter* photos_tiff_metadata_writer_construct (GType object_type, const gchar* filepath);
+GType photos_tiff_metadata_writer_get_type (void) G_GNUC_CONST;
+static PhotoFileSniffer* photos_tiff_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options);
+PhotosTiffSniffer* photos_tiff_sniffer_new (GFile* file, PhotoFileSnifferOptions options);
+PhotosTiffSniffer* photos_tiff_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+GType gdk_sniffer_get_type (void) G_GNUC_CONST;
+GType photos_tiff_sniffer_get_type (void) G_GNUC_CONST;
+PhotoFileFormatDriver* photo_file_format_driver_construct (GType object_type);
+static void photos_tiff_file_format_driver_finalize (PhotoFileFormatDriver* obj);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+GType photo_file_format_flags_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_TIFF_FILE_FORMAT_PROPERTIES_DUMMY_PROPERTY
+};
+PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_new (void);
+PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_construct (GType object_type);
+static PhotoFileFormat photos_tiff_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base);
+static PhotoFileFormatFlags photos_tiff_file_format_properties_real_get_flags (PhotoFileFormatProperties* base);
+static gchar* photos_tiff_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base);
+static gchar* photos_tiff_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base);
+static gchar** photos_tiff_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup16 (gchar** self, int length);
+static gchar* photos_tiff_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base);
+static gchar** photos_tiff_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1);
+static gchar** _vala_array_dup17 (gchar** self, int length);
+PhotoFileFormatProperties* photo_file_format_properties_construct (GType object_type);
+static void photos_tiff_file_format_properties_finalize (PhotoFileFormatProperties* obj);
+gpointer detected_photo_information_ref (gpointer instance);
+void detected_photo_information_unref (gpointer instance);
+GParamSpec* param_spec_detected_photo_information (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_detected_photo_information (GValue* value, gpointer v_object);
+void value_take_detected_photo_information (GValue* value, gpointer v_object);
+gpointer value_get_detected_photo_information (const GValue* value);
+GType detected_photo_information_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_TIFF_SNIFFER_DUMMY_PROPERTY
+};
+GdkSniffer* gdk_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options);
+static DetectedPhotoInformation* photos_tiff_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error);
+gboolean photos_is_tiff (GFile* file, GCancellable* cancellable, GError** error);
+DetectedPhotoInformation* photo_file_sniffer_sniff (PhotoFileSniffer* self, gboolean* is_corrupted, GError** error);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+enum {
+ PHOTOS_TIFF_READER_DUMMY_PROPERTY
+};
+GdkReader* gdk_reader_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+enum {
+ PHOTOS_TIFF_WRITER_DUMMY_PROPERTY
+};
+#define PHOTOS_TIFF_WRITER_COMPRESSION_NONE "1"
+#define PHOTOS_TIFF_WRITER_COMPRESSION_HUFFMAN "2"
+#define PHOTOS_TIFF_WRITER_COMPRESSION_LZW "5"
+#define PHOTOS_TIFF_WRITER_COMPRESSION_JPEG "7"
+#define PHOTOS_TIFF_WRITER_COMPRESSION_DEFLATE "8"
+PhotoFileWriter* photo_file_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void photos_tiff_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error);
+gchar* photo_file_adapter_get_filepath (PhotoFileAdapter* self);
+enum {
+ PHOTOS_TIFF_METADATA_WRITER_DUMMY_PROPERTY
+};
+PhotoFileMetadataWriter* photo_file_metadata_writer_construct (GType object_type, const gchar* filepath, PhotoFileFormat file_format);
+static void photos_tiff_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error);
+void photo_metadata_write_to_file (PhotoMetadata* self, GFile* file, GError** error);
+GFile* photo_file_adapter_get_file (PhotoFileAdapter* self);
+
+
+void photos_tiff_file_format_driver_init (void) {
+ PhotosTiffFileFormatDriver* _tmp0_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_driver_new ();
+#line 13 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _photo_file_format_driver_unref0 (photos_tiff_file_format_driver_instance);
+#line 13 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_driver_instance = _tmp0_;
+#line 14 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_properties_init ();
+#line 620 "TiffSupport.c"
+}
+
+
+static gpointer _photo_file_format_driver_ref0 (gpointer self) {
+#line 18 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self ? photo_file_format_driver_ref (self) : NULL;
+#line 627 "TiffSupport.c"
+}
+
+
+PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_get_instance (void) {
+ PhotosTiffFileFormatDriver* result = NULL;
+ PhotosTiffFileFormatDriver* _tmp0_ = NULL;
+ PhotosTiffFileFormatDriver* _tmp1_ = NULL;
+#line 18 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_driver_instance;
+#line 18 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = _photo_file_format_driver_ref0 (_tmp0_);
+#line 18 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp1_;
+#line 18 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 643 "TiffSupport.c"
+}
+
+
+static PhotoFileFormatProperties* photos_tiff_file_format_driver_real_get_properties (PhotoFileFormatDriver* base) {
+ PhotosTiffFileFormatDriver * self;
+ PhotoFileFormatProperties* result = NULL;
+ PhotosTiffFileFormatProperties* _tmp0_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 22 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_properties_get_instance ();
+#line 22 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_PHOTO_FILE_FORMAT_PROPERTIES, PhotoFileFormatProperties);
+#line 22 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 659 "TiffSupport.c"
+}
+
+
+static PhotoFileReader* photos_tiff_file_format_driver_real_create_reader (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PhotosTiffFileFormatDriver * self;
+ PhotoFileReader* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotosTiffReader* _tmp1_ = NULL;
+#line 25 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 25 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 26 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = filepath;
+#line 26 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = photos_tiff_reader_new (_tmp0_);
+#line 26 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_READER, PhotoFileReader);
+#line 26 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 680 "TiffSupport.c"
+}
+
+
+static PhotoMetadata* photos_tiff_file_format_driver_real_create_metadata (PhotoFileFormatDriver* base) {
+ PhotosTiffFileFormatDriver * self;
+ PhotoMetadata* result = NULL;
+ PhotoMetadata* _tmp0_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 30 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photo_metadata_new ();
+#line 30 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp0_;
+#line 30 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 696 "TiffSupport.c"
+}
+
+
+static gboolean photos_tiff_file_format_driver_real_can_write_image (PhotoFileFormatDriver* base) {
+ PhotosTiffFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 34 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = TRUE;
+#line 34 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 709 "TiffSupport.c"
+}
+
+
+static gboolean photos_tiff_file_format_driver_real_can_write_metadata (PhotoFileFormatDriver* base) {
+ PhotosTiffFileFormatDriver * self;
+ gboolean result = FALSE;
+#line 37 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 38 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = TRUE;
+#line 38 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 722 "TiffSupport.c"
+}
+
+
+static PhotoFileWriter* photos_tiff_file_format_driver_real_create_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PhotosTiffFileFormatDriver * self;
+ PhotoFileWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotosTiffWriter* _tmp1_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 41 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 42 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = filepath;
+#line 42 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = photos_tiff_writer_new (_tmp0_);
+#line 42 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_WRITER, PhotoFileWriter);
+#line 42 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 743 "TiffSupport.c"
+}
+
+
+static PhotoFileMetadataWriter* photos_tiff_file_format_driver_real_create_metadata_writer (PhotoFileFormatDriver* base, const gchar* filepath) {
+ PhotosTiffFileFormatDriver * self;
+ PhotoFileMetadataWriter* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ PhotosTiffMetadataWriter* _tmp1_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 45 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 46 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = filepath;
+#line 46 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = photos_tiff_metadata_writer_new (_tmp0_);
+#line 46 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PHOTO_FILE_METADATA_WRITER, PhotoFileMetadataWriter);
+#line 46 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 764 "TiffSupport.c"
+}
+
+
+static PhotoFileSniffer* photos_tiff_file_format_driver_real_create_sniffer (PhotoFileFormatDriver* base, GFile* file, PhotoFileSnifferOptions options) {
+ PhotosTiffFileFormatDriver * self;
+ PhotoFileSniffer* result = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+ PhotosTiffSniffer* _tmp2_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 49 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 50 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = file;
+#line 50 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = options;
+#line 50 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = photos_tiff_sniffer_new (_tmp0_, _tmp1_);
+#line 50 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer);
+#line 50 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 788 "TiffSupport.c"
+}
+
+
+PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_construct (GType object_type) {
+ PhotosTiffFileFormatDriver* self = NULL;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = (PhotosTiffFileFormatDriver*) photo_file_format_driver_construct (object_type);
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self;
+#line 798 "TiffSupport.c"
+}
+
+
+PhotosTiffFileFormatDriver* photos_tiff_file_format_driver_new (void) {
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return photos_tiff_file_format_driver_construct (PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER);
+#line 805 "TiffSupport.c"
+}
+
+
+static void photos_tiff_file_format_driver_class_init (PhotosTiffFileFormatDriverClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_driver_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->finalize = photos_tiff_file_format_driver_finalize;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->get_properties = photos_tiff_file_format_driver_real_get_properties;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_reader = photos_tiff_file_format_driver_real_create_reader;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata = photos_tiff_file_format_driver_real_create_metadata;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_image = photos_tiff_file_format_driver_real_can_write_image;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->can_write_metadata = photos_tiff_file_format_driver_real_can_write_metadata;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_writer = photos_tiff_file_format_driver_real_create_writer;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_metadata_writer = photos_tiff_file_format_driver_real_create_metadata_writer;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatDriverClass *) klass)->create_sniffer = photos_tiff_file_format_driver_real_create_sniffer;
+#line 830 "TiffSupport.c"
+}
+
+
+static void photos_tiff_file_format_driver_instance_init (PhotosTiffFileFormatDriver * self) {
+}
+
+
+static void photos_tiff_file_format_driver_finalize (PhotoFileFormatDriver* obj) {
+ PhotosTiffFileFormatDriver * self;
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTOS_TYPE_TIFF_FILE_FORMAT_DRIVER, PhotosTiffFileFormatDriver);
+#line 9 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ PHOTO_FILE_FORMAT_DRIVER_CLASS (photos_tiff_file_format_driver_parent_class)->finalize (obj);
+#line 844 "TiffSupport.c"
+}
+
+
+GType photos_tiff_file_format_driver_get_type (void) {
+ static volatile gsize photos_tiff_file_format_driver_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_tiff_file_format_driver_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosTiffFileFormatDriverClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_tiff_file_format_driver_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosTiffFileFormatDriver), 0, (GInstanceInitFunc) photos_tiff_file_format_driver_instance_init, NULL };
+ GType photos_tiff_file_format_driver_type_id;
+ photos_tiff_file_format_driver_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_DRIVER, "PhotosTiffFileFormatDriver", &g_define_type_info, 0);
+ g_once_init_leave (&photos_tiff_file_format_driver_type_id__volatile, photos_tiff_file_format_driver_type_id);
+ }
+ return photos_tiff_file_format_driver_type_id__volatile;
+}
+
+
+void photos_tiff_file_format_properties_init (void) {
+ PhotosTiffFileFormatProperties* _tmp0_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_properties_new ();
+#line 66 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _photo_file_format_properties_unref0 (photos_tiff_file_format_properties_instance);
+#line 66 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_properties_instance = _tmp0_;
+#line 868 "TiffSupport.c"
+}
+
+
+static gpointer _photo_file_format_properties_ref0 (gpointer self) {
+#line 70 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self ? photo_file_format_properties_ref (self) : NULL;
+#line 875 "TiffSupport.c"
+}
+
+
+PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_get_instance (void) {
+ PhotosTiffFileFormatProperties* result = NULL;
+ PhotosTiffFileFormatProperties* _tmp0_ = NULL;
+ PhotosTiffFileFormatProperties* _tmp1_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_properties_instance;
+#line 70 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = _photo_file_format_properties_ref0 (_tmp0_);
+#line 70 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp1_;
+#line 70 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 891 "TiffSupport.c"
+}
+
+
+static PhotoFileFormat photos_tiff_file_format_properties_real_get_file_format (PhotoFileFormatProperties* base) {
+ PhotosTiffFileFormatProperties * self;
+ PhotoFileFormat result = 0;
+#line 73 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 74 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = PHOTO_FILE_FORMAT_TIFF;
+#line 74 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 904 "TiffSupport.c"
+}
+
+
+static PhotoFileFormatFlags photos_tiff_file_format_properties_real_get_flags (PhotoFileFormatProperties* base) {
+ PhotosTiffFileFormatProperties * self;
+ PhotoFileFormatFlags result = 0;
+#line 77 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 78 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = PHOTO_FILE_FORMAT_FLAGS_NONE;
+#line 78 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 917 "TiffSupport.c"
+}
+
+
+static gchar* photos_tiff_file_format_properties_real_get_default_extension (PhotoFileFormatProperties* base) {
+ PhotosTiffFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 82 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = g_strdup ("tif");
+#line 82 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp0_;
+#line 82 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 933 "TiffSupport.c"
+}
+
+
+static gchar* photos_tiff_file_format_properties_real_get_user_visible_name (PhotoFileFormatProperties* base) {
+ PhotosTiffFileFormatProperties * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 86 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = _ ("TIFF");
+#line 86 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 86 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp1_;
+#line 86 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 952 "TiffSupport.c"
+}
+
+
+static gchar** _vala_array_dup16 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 963 "TiffSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result[i] = _tmp0_;
+#line 969 "TiffSupport.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 973 "TiffSupport.c"
+}
+
+
+static gchar** photos_tiff_file_format_properties_real_get_known_extensions (PhotoFileFormatProperties* base, int* result_length1) {
+ PhotosTiffFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 89 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_properties_KNOWN_EXTENSIONS;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0__length1 = photos_tiff_file_format_properties_KNOWN_EXTENSIONS_length1;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup16 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (result_length1) {
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 1004 "TiffSupport.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp2_;
+#line 90 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1010 "TiffSupport.c"
+}
+
+
+static gchar* photos_tiff_file_format_properties_real_get_default_mime_type (PhotoFileFormatProperties* base) {
+ PhotosTiffFileFormatProperties * self;
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 94 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_properties_KNOWN_MIME_TYPES;
+#line 94 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0__length1 = photos_tiff_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 94 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = _tmp0_[0];
+#line 94 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 94 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp2_;
+#line 94 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1035 "TiffSupport.c"
+}
+
+
+static gchar** _vala_array_dup17 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ for (i = 0; i < length; i++) {
+#line 1046 "TiffSupport.c"
+ gchar* _tmp0_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result[i] = _tmp0_;
+#line 1052 "TiffSupport.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1056 "TiffSupport.c"
+}
+
+
+static gchar** photos_tiff_file_format_properties_real_get_mime_types (PhotoFileFormatProperties* base, int* result_length1) {
+ PhotosTiffFileFormatProperties * self;
+ gchar** result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 97 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = photos_tiff_file_format_properties_KNOWN_MIME_TYPES;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0__length1 = photos_tiff_file_format_properties_KNOWN_MIME_TYPES_length1;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup17 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (result_length1) {
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ *result_length1 = _tmp2__length1;
+#line 1087 "TiffSupport.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp2_;
+#line 98 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1093 "TiffSupport.c"
+}
+
+
+PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_construct (GType object_type) {
+ PhotosTiffFileFormatProperties* self = NULL;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = (PhotosTiffFileFormatProperties*) photo_file_format_properties_construct (object_type);
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self;
+#line 1103 "TiffSupport.c"
+}
+
+
+PhotosTiffFileFormatProperties* photos_tiff_file_format_properties_new (void) {
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return photos_tiff_file_format_properties_construct (PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES);
+#line 1110 "TiffSupport.c"
+}
+
+
+static void photos_tiff_file_format_properties_class_init (PhotosTiffFileFormatPropertiesClass * klass) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_properties_parent_class = g_type_class_peek_parent (klass);
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->finalize = photos_tiff_file_format_properties_finalize;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_file_format = photos_tiff_file_format_properties_real_get_file_format;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_flags = photos_tiff_file_format_properties_real_get_flags;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_extension = photos_tiff_file_format_properties_real_get_default_extension;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_user_visible_name = photos_tiff_file_format_properties_real_get_user_visible_name;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_known_extensions = photos_tiff_file_format_properties_real_get_known_extensions;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_default_mime_type = photos_tiff_file_format_properties_real_get_default_mime_type;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileFormatPropertiesClass *) klass)->get_mime_types = photos_tiff_file_format_properties_real_get_mime_types;
+#line 55 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = g_strdup ("tif");
+#line 55 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = g_strdup ("tiff");
+#line 55 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = g_new0 (gchar*, 2 + 1);
+#line 55 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_[0] = _tmp0_;
+#line 55 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_[1] = _tmp1_;
+#line 55 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_properties_KNOWN_EXTENSIONS = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_properties_KNOWN_EXTENSIONS_length1 = 2;
+#line 59 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp3_ = g_strdup ("image/tiff");
+#line 59 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp4_ = g_new0 (gchar*, 1 + 1);
+#line 59 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp4_[0] = _tmp3_;
+#line 59 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_properties_KNOWN_MIME_TYPES = _tmp4_;
+#line 59 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_file_format_properties_KNOWN_MIME_TYPES_length1 = 1;
+#line 1162 "TiffSupport.c"
+}
+
+
+static void photos_tiff_file_format_properties_instance_init (PhotosTiffFileFormatProperties * self) {
+}
+
+
+static void photos_tiff_file_format_properties_finalize (PhotoFileFormatProperties* obj) {
+ PhotosTiffFileFormatProperties * self;
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PHOTOS_TYPE_TIFF_FILE_FORMAT_PROPERTIES, PhotosTiffFileFormatProperties);
+#line 54 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ PHOTO_FILE_FORMAT_PROPERTIES_CLASS (photos_tiff_file_format_properties_parent_class)->finalize (obj);
+#line 1176 "TiffSupport.c"
+}
+
+
+GType photos_tiff_file_format_properties_get_type (void) {
+ static volatile gsize photos_tiff_file_format_properties_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_tiff_file_format_properties_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosTiffFileFormatPropertiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_tiff_file_format_properties_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosTiffFileFormatProperties), 0, (GInstanceInitFunc) photos_tiff_file_format_properties_instance_init, NULL };
+ GType photos_tiff_file_format_properties_type_id;
+ photos_tiff_file_format_properties_type_id = g_type_register_static (TYPE_PHOTO_FILE_FORMAT_PROPERTIES, "PhotosTiffFileFormatProperties", &g_define_type_info, 0);
+ g_once_init_leave (&photos_tiff_file_format_properties_type_id__volatile, photos_tiff_file_format_properties_type_id);
+ }
+ return photos_tiff_file_format_properties_type_id__volatile;
+}
+
+
+PhotosTiffSniffer* photos_tiff_sniffer_construct (GType object_type, GFile* file, PhotoFileSnifferOptions options) {
+ PhotosTiffSniffer* self = NULL;
+ GFile* _tmp0_ = NULL;
+ PhotoFileSnifferOptions _tmp1_ = 0;
+#line 103 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 104 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = file;
+#line 104 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = options;
+#line 104 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = (PhotosTiffSniffer*) gdk_sniffer_construct (object_type, _tmp0_, _tmp1_);
+#line 103 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self;
+#line 1206 "TiffSupport.c"
+}
+
+
+PhotosTiffSniffer* photos_tiff_sniffer_new (GFile* file, PhotoFileSnifferOptions options) {
+#line 103 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return photos_tiff_sniffer_construct (PHOTOS_TYPE_TIFF_SNIFFER, file, options);
+#line 1213 "TiffSupport.c"
+}
+
+
+static gpointer _detected_photo_information_ref0 (gpointer self) {
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self ? detected_photo_information_ref (self) : NULL;
+#line 1220 "TiffSupport.c"
+}
+
+
+static DetectedPhotoInformation* photos_tiff_sniffer_real_sniff (PhotoFileSniffer* base, gboolean* is_corrupted, GError** error) {
+ PhotosTiffSniffer * self;
+ gboolean _vala_is_corrupted = FALSE;
+ DetectedPhotoInformation* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GFile* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ DetectedPhotoInformation* detected = NULL;
+ gboolean _tmp3_ = FALSE;
+ DetectedPhotoInformation* _tmp4_ = NULL;
+ DetectedPhotoInformation* _tmp5_ = NULL;
+ DetectedPhotoInformation* _tmp6_ = NULL;
+ DetectedPhotoInformation* _tmp7_ = NULL;
+ PhotoFileFormat _tmp8_ = 0;
+ DetectedPhotoInformation* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_SNIFFER, PhotosTiffSniffer);
+#line 109 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _vala_is_corrupted = FALSE;
+#line 111 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer)->file;
+#line 111 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = photos_is_tiff (_tmp1_, NULL, &_inner_error_);
+#line 111 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = _tmp2_;
+#line 111 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 111 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 111 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return NULL;
+#line 1256 "TiffSupport.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (!_tmp0_) {
+#line 112 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = NULL;
+#line 112 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (is_corrupted) {
+#line 112 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1266 "TiffSupport.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1270 "TiffSupport.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp4_ = PHOTO_FILE_SNIFFER_CLASS (photos_tiff_sniffer_parent_class)->sniff (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_GDK_SNIFFER, GdkSniffer), TYPE_PHOTO_FILE_SNIFFER, PhotoFileSniffer), &_tmp3_, &_inner_error_);
+#line 114 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _vala_is_corrupted = _tmp3_;
+#line 114 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ detected = _tmp4_;
+#line 114 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 114 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 114 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return NULL;
+#line 1284 "TiffSupport.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp5_ = detected;
+#line 115 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (_tmp5_ == NULL) {
+#line 116 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = NULL;
+#line 116 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 116 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (is_corrupted) {
+#line 116 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1298 "TiffSupport.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1302 "TiffSupport.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp7_ = detected;
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp8_ = _tmp7_->file_format;
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (_tmp8_ == PHOTO_FILE_FORMAT_TIFF) {
+#line 1310 "TiffSupport.c"
+ DetectedPhotoInformation* _tmp9_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp9_ = detected;
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp6_ = _tmp9_;
+#line 1316 "TiffSupport.c"
+ } else {
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp6_ = NULL;
+#line 1320 "TiffSupport.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp10_ = _detected_photo_information_ref0 (_tmp6_);
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = _tmp10_;
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _detected_photo_information_unref0 (detected);
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (is_corrupted) {
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ *is_corrupted = _vala_is_corrupted;
+#line 1332 "TiffSupport.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1336 "TiffSupport.c"
+}
+
+
+static void photos_tiff_sniffer_class_init (PhotosTiffSnifferClass * klass) {
+#line 102 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_sniffer_parent_class = g_type_class_peek_parent (klass);
+#line 102 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileSnifferClass *) klass)->sniff = photos_tiff_sniffer_real_sniff;
+#line 1345 "TiffSupport.c"
+}
+
+
+static void photos_tiff_sniffer_instance_init (PhotosTiffSniffer * self) {
+}
+
+
+GType photos_tiff_sniffer_get_type (void) {
+ static volatile gsize photos_tiff_sniffer_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_tiff_sniffer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosTiffSnifferClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_tiff_sniffer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosTiffSniffer), 0, (GInstanceInitFunc) photos_tiff_sniffer_instance_init, NULL };
+ GType photos_tiff_sniffer_type_id;
+ photos_tiff_sniffer_type_id = g_type_register_static (TYPE_GDK_SNIFFER, "PhotosTiffSniffer", &g_define_type_info, 0);
+ g_once_init_leave (&photos_tiff_sniffer_type_id__volatile, photos_tiff_sniffer_type_id);
+ }
+ return photos_tiff_sniffer_type_id__volatile;
+}
+
+
+PhotosTiffReader* photos_tiff_reader_construct (GType object_type, const gchar* filepath) {
+ PhotosTiffReader* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 124 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = filepath;
+#line 124 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = (PhotosTiffReader*) gdk_reader_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_TIFF);
+#line 123 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self;
+#line 1376 "TiffSupport.c"
+}
+
+
+PhotosTiffReader* photos_tiff_reader_new (const gchar* filepath) {
+#line 123 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return photos_tiff_reader_construct (PHOTOS_TYPE_TIFF_READER, filepath);
+#line 1383 "TiffSupport.c"
+}
+
+
+static void photos_tiff_reader_class_init (PhotosTiffReaderClass * klass) {
+#line 122 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_reader_parent_class = g_type_class_peek_parent (klass);
+#line 1390 "TiffSupport.c"
+}
+
+
+static void photos_tiff_reader_instance_init (PhotosTiffReader * self) {
+}
+
+
+GType photos_tiff_reader_get_type (void) {
+ static volatile gsize photos_tiff_reader_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_tiff_reader_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosTiffReaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_tiff_reader_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosTiffReader), 0, (GInstanceInitFunc) photos_tiff_reader_instance_init, NULL };
+ GType photos_tiff_reader_type_id;
+ photos_tiff_reader_type_id = g_type_register_static (TYPE_GDK_READER, "PhotosTiffReader", &g_define_type_info, 0);
+ g_once_init_leave (&photos_tiff_reader_type_id__volatile, photos_tiff_reader_type_id);
+ }
+ return photos_tiff_reader_type_id__volatile;
+}
+
+
+PhotosTiffWriter* photos_tiff_writer_construct (GType object_type, const gchar* filepath) {
+ PhotosTiffWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 136 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = filepath;
+#line 136 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = (PhotosTiffWriter*) photo_file_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_TIFF);
+#line 135 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self;
+#line 1421 "TiffSupport.c"
+}
+
+
+PhotosTiffWriter* photos_tiff_writer_new (const gchar* filepath) {
+#line 135 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return photos_tiff_writer_construct (PHOTOS_TYPE_TIFF_WRITER, filepath);
+#line 1428 "TiffSupport.c"
+}
+
+
+static void photos_tiff_writer_real_write (PhotoFileWriter* base, GdkPixbuf* pixbuf, JpegQuality quality, GError** error) {
+ PhotosTiffWriter * self;
+ GdkPixbuf* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 139 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_WRITER, PhotosTiffWriter);
+#line 139 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = pixbuf;
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = photo_file_adapter_get_filepath (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ gdk_pixbuf_save (_tmp0_, _tmp2_, "tiff", &_inner_error_, "compression", PHOTOS_TIFF_WRITER_COMPRESSION_LZW, NULL);
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_free0 (_tmp2_);
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 140 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return;
+#line 1458 "TiffSupport.c"
+ }
+}
+
+
+static void photos_tiff_writer_class_init (PhotosTiffWriterClass * klass) {
+#line 128 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_writer_parent_class = g_type_class_peek_parent (klass);
+#line 128 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileWriterClass *) klass)->write = photos_tiff_writer_real_write;
+#line 1468 "TiffSupport.c"
+}
+
+
+static void photos_tiff_writer_instance_init (PhotosTiffWriter * self) {
+}
+
+
+GType photos_tiff_writer_get_type (void) {
+ static volatile gsize photos_tiff_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_tiff_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosTiffWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_tiff_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosTiffWriter), 0, (GInstanceInitFunc) photos_tiff_writer_instance_init, NULL };
+ GType photos_tiff_writer_type_id;
+ photos_tiff_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_WRITER, "PhotosTiffWriter", &g_define_type_info, 0);
+ g_once_init_leave (&photos_tiff_writer_type_id__volatile, photos_tiff_writer_type_id);
+ }
+ return photos_tiff_writer_type_id__volatile;
+}
+
+
+PhotosTiffMetadataWriter* photos_tiff_metadata_writer_construct (GType object_type, const gchar* filepath) {
+ PhotosTiffMetadataWriter* self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (filepath != NULL, NULL);
+#line 146 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = filepath;
+#line 146 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = (PhotosTiffMetadataWriter*) photo_file_metadata_writer_construct (object_type, _tmp0_, PHOTO_FILE_FORMAT_TIFF);
+#line 145 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return self;
+#line 1499 "TiffSupport.c"
+}
+
+
+PhotosTiffMetadataWriter* photos_tiff_metadata_writer_new (const gchar* filepath) {
+#line 145 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return photos_tiff_metadata_writer_construct (PHOTOS_TYPE_TIFF_METADATA_WRITER, filepath);
+#line 1506 "TiffSupport.c"
+}
+
+
+static void photos_tiff_metadata_writer_real_write_metadata (PhotoFileMetadataWriter* base, PhotoMetadata* metadata, GError** error) {
+ PhotosTiffMetadataWriter * self;
+ PhotoMetadata* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PHOTOS_TYPE_TIFF_METADATA_WRITER, PhotosTiffMetadataWriter);
+#line 149 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_if_fail (IS_PHOTO_METADATA (metadata));
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = metadata;
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = photo_file_adapter_get_file (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PHOTO_FILE_ADAPTER, PhotoFileAdapter));
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = _tmp1_;
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photo_metadata_write_to_file (_tmp0_, _tmp2_, &_inner_error_);
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (_tmp2_);
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 150 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return;
+#line 1536 "TiffSupport.c"
+ }
+}
+
+
+static void photos_tiff_metadata_writer_class_init (PhotosTiffMetadataWriterClass * klass) {
+#line 144 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ photos_tiff_metadata_writer_parent_class = g_type_class_peek_parent (klass);
+#line 144 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ ((PhotoFileMetadataWriterClass *) klass)->write_metadata = photos_tiff_metadata_writer_real_write_metadata;
+#line 1546 "TiffSupport.c"
+}
+
+
+static void photos_tiff_metadata_writer_instance_init (PhotosTiffMetadataWriter * self) {
+}
+
+
+GType photos_tiff_metadata_writer_get_type (void) {
+ static volatile gsize photos_tiff_metadata_writer_type_id__volatile = 0;
+ if (g_once_init_enter (&photos_tiff_metadata_writer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PhotosTiffMetadataWriterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) photos_tiff_metadata_writer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PhotosTiffMetadataWriter), 0, (GInstanceInitFunc) photos_tiff_metadata_writer_instance_init, NULL };
+ GType photos_tiff_metadata_writer_type_id;
+ photos_tiff_metadata_writer_type_id = g_type_register_static (TYPE_PHOTO_FILE_METADATA_WRITER, "PhotosTiffMetadataWriter", &g_define_type_info, 0);
+ g_once_init_leave (&photos_tiff_metadata_writer_type_id__volatile, photos_tiff_metadata_writer_type_id);
+ }
+ return photos_tiff_metadata_writer_type_id__volatile;
+}
+
+
+gboolean photos_is_tiff (GFile* file, GCancellable* cancellable, GError** error) {
+ gboolean result = FALSE;
+ GFileInputStream* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFileInputStream* _tmp2_ = NULL;
+ GDataInputStream* dins = NULL;
+ GDataInputStream* _tmp3_ = NULL;
+ GDataStreamByteOrder order = 0;
+ guint16 _tmp4_ = 0U;
+ GDataInputStream* _tmp5_ = NULL;
+ GCancellable* _tmp6_ = NULL;
+ guint16 _tmp7_ = 0U;
+ GDataInputStream* _tmp8_ = NULL;
+ GDataStreamByteOrder _tmp9_ = 0;
+ guint16 lue = 0U;
+ GDataInputStream* _tmp10_ = NULL;
+ GCancellable* _tmp11_ = NULL;
+ guint16 _tmp12_ = 0U;
+ guint16 _tmp13_ = 0U;
+ GError * _inner_error_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 154 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), FALSE);
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp1_ = file;
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp2_ = g_file_read (_tmp1_, NULL, &_inner_error_);
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp0_ = _tmp2_;
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return FALSE;
+#line 1602 "TiffSupport.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp3_ = g_data_input_stream_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, G_TYPE_INPUT_STREAM, GInputStream));
+#line 155 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ dins = _tmp3_;
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp5_ = dins;
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp6_ = cancellable;
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp7_ = g_data_input_stream_read_uint16 (_tmp5_, _tmp6_, &_inner_error_);
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp4_ = _tmp7_;
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (dins);
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return FALSE;
+#line 1626 "TiffSupport.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ switch (_tmp4_) {
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ case 0x4949:
+#line 1632 "TiffSupport.c"
+ {
+#line 161 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ order = G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN;
+#line 162 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ break;
+#line 1638 "TiffSupport.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ case 0x4D4D:
+#line 1642 "TiffSupport.c"
+ {
+#line 165 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ order = G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN;
+#line 166 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ break;
+#line 1648 "TiffSupport.c"
+ }
+ default:
+ {
+#line 169 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = FALSE;
+#line 169 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (dins);
+#line 169 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 169 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1660 "TiffSupport.c"
+ }
+ }
+#line 172 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp8_ = dins;
+#line 172 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp9_ = order;
+#line 172 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_data_input_stream_set_byte_order (_tmp8_, _tmp9_);
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp10_ = dins;
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp11_ = cancellable;
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp12_ = g_data_input_stream_read_uint16 (_tmp10_, _tmp11_, &_inner_error_);
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ lue = _tmp12_;
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ g_propagate_error (error, _inner_error_);
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (dins);
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 175 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return FALSE;
+#line 1687 "TiffSupport.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _tmp13_ = lue;
+#line 176 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ if (((gint) _tmp13_) != 42) {
+#line 177 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (dins);
+#line 177 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 177 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1701 "TiffSupport.c"
+ }
+#line 180 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ result = TRUE;
+#line 180 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (dins);
+#line 180 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ _g_object_unref0 (_tmp0_);
+#line 180 "/home/jens/Source/shotwell/src/photos/TiffSupport.vala"
+ return result;
+#line 1711 "TiffSupport.c"
+}
+
+
+
diff --git a/src/photos/mk/photos.mk b/src/photos/mk/photos.mk
deleted file mode 100644
index 6be33a4..0000000
--- a/src/photos/mk/photos.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Photos
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := photos
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- PhotoFileAdapter.vala \
- PhotoFileFormat.vala \
- PhotoFileSniffer.vala \
- PhotoMetadata.vala \
- GRaw.vala \
- GdkSupport.vala \
- JfifSupport.vala \
- BmpSupport.vala \
- RawSupport.vala \
- PngSupport.vala \
- TiffSupport.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/plugins/DataImportsInterfaces.c b/src/plugins/DataImportsInterfaces.c
new file mode 100644
index 0000000..96920a9
--- /dev/null
+++ b/src/plugins/DataImportsInterfaces.c
@@ -0,0 +1,1738 @@
+/* DataImportsInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from DataImportsInterfaces.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+#include <gtk/gtk.h>
+#include <time.h>
+
+
+#define SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER (spit_data_imports_data_importer_get_type ())
+#define SPIT_DATA_IMPORTS_DATA_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER, SpitDataImportsDataImporter))
+#define SPIT_DATA_IMPORTS_IS_DATA_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER))
+#define SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_DATA_IMPORTER, SpitDataImportsDataImporterIface))
+
+typedef struct _SpitDataImportsDataImporter SpitDataImportsDataImporter;
+typedef struct _SpitDataImportsDataImporterIface SpitDataImportsDataImporterIface;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+
+#define SPIT_DATA_IMPORTS_TYPE_SERVICE (spit_data_imports_service_get_type ())
+#define SPIT_DATA_IMPORTS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_SERVICE, SpitDataImportsService))
+#define SPIT_DATA_IMPORTS_IS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_SERVICE))
+#define SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_SERVICE, SpitDataImportsServiceIface))
+
+typedef struct _SpitDataImportsService SpitDataImportsService;
+typedef struct _SpitDataImportsServiceIface SpitDataImportsServiceIface;
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST (spit_data_imports_plugin_host_get_type ())
+#define SPIT_DATA_IMPORTS_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHost))
+#define SPIT_DATA_IMPORTS_IS_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST))
+#define SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_PLUGIN_HOST, SpitDataImportsPluginHostIface))
+
+typedef struct _SpitDataImportsPluginHost SpitDataImportsPluginHost;
+typedef struct _SpitDataImportsPluginHostIface SpitDataImportsPluginHostIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE (spit_data_imports_dialog_pane_get_type ())
+#define SPIT_DATA_IMPORTS_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPane))
+#define SPIT_DATA_IMPORTS_IS_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE))
+#define SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_DIALOG_PANE, SpitDataImportsDialogPaneIface))
+
+typedef struct _SpitDataImportsDialogPane SpitDataImportsDialogPane;
+typedef struct _SpitDataImportsDialogPaneIface SpitDataImportsDialogPaneIface;
+
+#define SPIT_DATA_IMPORTS_DIALOG_PANE_TYPE_GEOMETRY_OPTIONS (spit_data_imports_dialog_pane_geometry_options_get_type ())
+
+#define SPIT_DATA_IMPORTS_PLUGIN_HOST_TYPE_BUTTON_MODE (spit_data_imports_plugin_host_button_mode_get_type ())
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY (spit_data_imports_importable_library_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_LIBRARY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY, SpitDataImportsImportableLibrary))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_LIBRARY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_LIBRARY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_LIBRARY, SpitDataImportsImportableLibraryIface))
+
+typedef struct _SpitDataImportsImportableLibrary SpitDataImportsImportableLibrary;
+typedef struct _SpitDataImportsImportableLibraryIface SpitDataImportsImportableLibraryIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM (spit_data_imports_importable_media_item_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM, SpitDataImportsImportableMediaItem))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_MEDIA_ITEM, SpitDataImportsImportableMediaItemIface))
+
+typedef struct _SpitDataImportsImportableMediaItem SpitDataImportsImportableMediaItem;
+typedef struct _SpitDataImportsImportableMediaItemIface SpitDataImportsImportableMediaItemIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG (spit_data_imports_importable_tag_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG, SpitDataImportsImportableTag))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_TAG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_TAG, SpitDataImportsImportableTagIface))
+
+typedef struct _SpitDataImportsImportableTag SpitDataImportsImportableTag;
+typedef struct _SpitDataImportsImportableTagIface SpitDataImportsImportableTagIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT (spit_data_imports_importable_event_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT, SpitDataImportsImportableEvent))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_EVENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_EVENT, SpitDataImportsImportableEventIface))
+
+typedef struct _SpitDataImportsImportableEvent SpitDataImportsImportableEvent;
+typedef struct _SpitDataImportsImportableEventIface SpitDataImportsImportableEventIface;
+
+#define SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING (spit_data_imports_importable_rating_get_type ())
+#define SPIT_DATA_IMPORTS_IMPORTABLE_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING, SpitDataImportsImportableRating))
+#define SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING))
+#define SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_DATA_IMPORTS_TYPE_IMPORTABLE_RATING, SpitDataImportsImportableRatingIface))
+
+typedef struct _SpitDataImportsImportableRating SpitDataImportsImportableRating;
+typedef struct _SpitDataImportsImportableRatingIface SpitDataImportsImportableRatingIface;
+
+/**
+ * The error domain for alien databases
+ */
+typedef enum {
+ SPIT_DATA_IMPORTS_DATA_IMPORT_ERROR_UNSUPPORTED_VERSION
+} SpitDataImportsDataImportError;
+#define SPIT_DATA_IMPORTS_DATA_IMPORT_ERROR spit_data_imports_data_import_error_quark ()
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+typedef enum {
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_NONE = 0,
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE = 1 << 0,
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE = 1 << 1,
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE = 1 << 2
+} SpitDataImportsDialogPaneGeometryOptions;
+
+struct _SpitDataImportsDialogPaneIface {
+ GTypeInterface parent_iface;
+ GtkWidget* (*get_widget) (SpitDataImportsDialogPane* self);
+ SpitDataImportsDialogPaneGeometryOptions (*get_preferred_geometry) (SpitDataImportsDialogPane* self);
+ void (*on_pane_installed) (SpitDataImportsDialogPane* self);
+ void (*on_pane_uninstalled) (SpitDataImportsDialogPane* self);
+ void (*reserved0) (SpitDataImportsDialogPane* self);
+ void (*reserved1) (SpitDataImportsDialogPane* self);
+ void (*reserved2) (SpitDataImportsDialogPane* self);
+ void (*reserved3) (SpitDataImportsDialogPane* self);
+ void (*reserved4) (SpitDataImportsDialogPane* self);
+ void (*reserved5) (SpitDataImportsDialogPane* self);
+ void (*reserved6) (SpitDataImportsDialogPane* self);
+ void (*reserved7) (SpitDataImportsDialogPane* self);
+};
+
+typedef enum {
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE = 0,
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL = 1
+} SpitDataImportsPluginHostButtonMode;
+
+struct _SpitDataImportsImportableLibraryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_display_name) (SpitDataImportsImportableLibrary* self);
+};
+
+struct _SpitDataImportsImportableTagIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (SpitDataImportsImportableTag* self);
+ SpitDataImportsImportableTag* (*get_parent) (SpitDataImportsImportableTag* self);
+};
+
+struct _SpitDataImportsImportableEventIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_name) (SpitDataImportsImportableEvent* self);
+};
+
+struct _SpitDataImportsImportableRatingIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_unrated) (SpitDataImportsImportableRating* self);
+ gboolean (*is_rejected) (SpitDataImportsImportableRating* self);
+ gint (*get_value) (SpitDataImportsImportableRating* self);
+};
+
+struct _SpitDataImportsImportableMediaItemIface {
+ GTypeInterface parent_iface;
+ SpitDataImportsImportableTag** (*get_tags) (SpitDataImportsImportableMediaItem* self, int* result_length1);
+ SpitDataImportsImportableEvent* (*get_event) (SpitDataImportsImportableMediaItem* self);
+ SpitDataImportsImportableRating* (*get_rating) (SpitDataImportsImportableMediaItem* self);
+ gchar* (*get_title) (SpitDataImportsImportableMediaItem* self);
+ gchar* (*get_folder_path) (SpitDataImportsImportableMediaItem* self);
+ gchar* (*get_filename) (SpitDataImportsImportableMediaItem* self);
+ time_t* (*get_exposure_time) (SpitDataImportsImportableMediaItem* self);
+};
+
+typedef void (*SpitDataImportsImportedItemsCountCallback) (gint imported_items_count, void* user_data);
+struct _SpitDataImportsPluginHostIface {
+ GTypeInterface parent_iface;
+ void (*post_error) (SpitDataImportsPluginHost* self, GError* err);
+ void (*post_error_message) (SpitDataImportsPluginHost* self, const gchar* msg);
+ void (*start_importing) (SpitDataImportsPluginHost* self);
+ void (*stop_importing) (SpitDataImportsPluginHost* self);
+ SpitDataImportsDataImporter* (*get_data_importer) (SpitDataImportsPluginHost* self);
+ void (*install_dialog_pane) (SpitDataImportsPluginHost* self, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode mode);
+ void (*install_static_message_pane) (SpitDataImportsPluginHost* self, const gchar* message, SpitDataImportsPluginHostButtonMode mode);
+ void (*install_library_selection_pane) (SpitDataImportsPluginHost* self, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+ void (*install_import_progress_pane) (SpitDataImportsPluginHost* self, const gchar* message);
+ void (*update_import_progress_pane) (SpitDataImportsPluginHost* self, gdouble progress, const gchar* progress_message);
+ void (*prepare_media_items_for_import) (SpitDataImportsPluginHost* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message);
+ void (*finalize_import) (SpitDataImportsPluginHost* self, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message);
+ void (*reserved0) (SpitDataImportsPluginHost* self);
+ void (*reserved1) (SpitDataImportsPluginHost* self);
+ void (*reserved2) (SpitDataImportsPluginHost* self);
+ void (*reserved3) (SpitDataImportsPluginHost* self);
+ void (*reserved4) (SpitDataImportsPluginHost* self);
+ void (*reserved5) (SpitDataImportsPluginHost* self);
+ void (*reserved6) (SpitDataImportsPluginHost* self);
+ void (*reserved7) (SpitDataImportsPluginHost* self);
+};
+
+struct _SpitDataImportsServiceIface {
+ GTypeInterface parent_iface;
+ SpitDataImportsDataImporter* (*create_data_importer) (SpitDataImportsService* self, SpitDataImportsPluginHost* host);
+ void (*reserved0) (SpitDataImportsService* self);
+ void (*reserved1) (SpitDataImportsService* self);
+ void (*reserved2) (SpitDataImportsService* self);
+ void (*reserved3) (SpitDataImportsService* self);
+ void (*reserved4) (SpitDataImportsService* self);
+ void (*reserved5) (SpitDataImportsService* self);
+ void (*reserved6) (SpitDataImportsService* self);
+ void (*reserved7) (SpitDataImportsService* self);
+};
+
+struct _SpitDataImportsDataImporterIface {
+ GTypeInterface parent_iface;
+ SpitDataImportsService* (*get_service) (SpitDataImportsDataImporter* self);
+ void (*start) (SpitDataImportsDataImporter* self);
+ gboolean (*is_running) (SpitDataImportsDataImporter* self);
+ void (*stop) (SpitDataImportsDataImporter* self);
+ void (*on_library_selected) (SpitDataImportsDataImporter* self, SpitDataImportsImportableLibrary* library);
+ void (*on_file_selected) (SpitDataImportsDataImporter* self, GFile* file);
+ void (*reserved0) (SpitDataImportsDataImporter* self);
+ void (*reserved1) (SpitDataImportsDataImporter* self);
+ void (*reserved2) (SpitDataImportsDataImporter* self);
+ void (*reserved3) (SpitDataImportsDataImporter* self);
+ void (*reserved4) (SpitDataImportsDataImporter* self);
+ void (*reserved5) (SpitDataImportsDataImporter* self);
+ void (*reserved6) (SpitDataImportsDataImporter* self);
+ void (*reserved7) (SpitDataImportsDataImporter* self);
+};
+
+
+
+#define SPIT_DATA_IMPORTS_CURRENT_INTERFACE 0
+GQuark spit_data_imports_data_import_error_quark (void);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_dialog_pane_geometry_options_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_dialog_pane_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_plugin_host_button_mode_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_library_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_tag_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_event_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_rating_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_importable_media_item_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_plugin_host_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_service_get_type (void) G_GNUC_CONST;
+GType spit_data_imports_data_importer_get_type (void) G_GNUC_CONST;
+SpitDataImportsService* spit_data_imports_data_importer_get_service (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_start (SpitDataImportsDataImporter* self);
+gboolean spit_data_imports_data_importer_is_running (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_stop (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_on_library_selected (SpitDataImportsDataImporter* self, SpitDataImportsImportableLibrary* library);
+void spit_data_imports_data_importer_on_file_selected (SpitDataImportsDataImporter* self, GFile* file);
+void spit_data_imports_data_importer_reserved0 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved0 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved1 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved1 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved2 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved2 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved3 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved3 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved4 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved4 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved5 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved5 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved6 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved6 (SpitDataImportsDataImporter* self);
+void spit_data_imports_data_importer_reserved7 (SpitDataImportsDataImporter* self);
+static void spit_data_imports_data_importer_real_reserved7 (SpitDataImportsDataImporter* self);
+gchar* spit_data_imports_importable_library_get_display_name (SpitDataImportsImportableLibrary* self);
+SpitDataImportsImportableTag** spit_data_imports_importable_media_item_get_tags (SpitDataImportsImportableMediaItem* self, int* result_length1);
+SpitDataImportsImportableEvent* spit_data_imports_importable_media_item_get_event (SpitDataImportsImportableMediaItem* self);
+SpitDataImportsImportableRating* spit_data_imports_importable_media_item_get_rating (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_media_item_get_title (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_media_item_get_folder_path (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_media_item_get_filename (SpitDataImportsImportableMediaItem* self);
+time_t* spit_data_imports_importable_media_item_get_exposure_time (SpitDataImportsImportableMediaItem* self);
+gchar* spit_data_imports_importable_tag_get_name (SpitDataImportsImportableTag* self);
+SpitDataImportsImportableTag* spit_data_imports_importable_tag_get_parent (SpitDataImportsImportableTag* self);
+gchar* spit_data_imports_importable_event_get_name (SpitDataImportsImportableEvent* self);
+gboolean spit_data_imports_importable_rating_is_unrated (SpitDataImportsImportableRating* self);
+gboolean spit_data_imports_importable_rating_is_rejected (SpitDataImportsImportableRating* self);
+gint spit_data_imports_importable_rating_get_value (SpitDataImportsImportableRating* self);
+GtkWidget* spit_data_imports_dialog_pane_get_widget (SpitDataImportsDialogPane* self);
+SpitDataImportsDialogPaneGeometryOptions spit_data_imports_dialog_pane_get_preferred_geometry (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_on_pane_installed (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_on_pane_uninstalled (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved0 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved0 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved1 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved1 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved2 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved2 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved3 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved3 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved4 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved4 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved5 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved5 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved6 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved6 (SpitDataImportsDialogPane* self);
+void spit_data_imports_dialog_pane_reserved7 (SpitDataImportsDialogPane* self);
+static void spit_data_imports_dialog_pane_real_reserved7 (SpitDataImportsDialogPane* self);
+void spit_data_imports_plugin_host_post_error (SpitDataImportsPluginHost* self, GError* err);
+void spit_data_imports_plugin_host_post_error_message (SpitDataImportsPluginHost* self, const gchar* msg);
+void spit_data_imports_plugin_host_start_importing (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_stop_importing (SpitDataImportsPluginHost* self);
+SpitDataImportsDataImporter* spit_data_imports_plugin_host_get_data_importer (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_install_dialog_pane (SpitDataImportsPluginHost* self, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode mode);
+void spit_data_imports_plugin_host_install_static_message_pane (SpitDataImportsPluginHost* self, const gchar* message, SpitDataImportsPluginHostButtonMode mode);
+void spit_data_imports_plugin_host_install_library_selection_pane (SpitDataImportsPluginHost* self, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label);
+void spit_data_imports_plugin_host_install_import_progress_pane (SpitDataImportsPluginHost* self, const gchar* message);
+void spit_data_imports_plugin_host_update_import_progress_pane (SpitDataImportsPluginHost* self, gdouble progress, const gchar* progress_message);
+void spit_data_imports_plugin_host_prepare_media_items_for_import (SpitDataImportsPluginHost* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message);
+void spit_data_imports_plugin_host_finalize_import (SpitDataImportsPluginHost* self, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message);
+void spit_data_imports_plugin_host_reserved0 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved0 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved1 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved1 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved2 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved2 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved3 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved3 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved4 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved4 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved5 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved5 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved6 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved6 (SpitDataImportsPluginHost* self);
+void spit_data_imports_plugin_host_reserved7 (SpitDataImportsPluginHost* self);
+static void spit_data_imports_plugin_host_real_reserved7 (SpitDataImportsPluginHost* self);
+SpitDataImportsDataImporter* spit_data_imports_service_create_data_importer (SpitDataImportsService* self, SpitDataImportsPluginHost* host);
+void spit_data_imports_service_reserved0 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved0 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved1 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved1 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved2 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved2 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved3 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved3 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved4 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved4 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved5 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved5 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved6 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved6 (SpitDataImportsService* self);
+void spit_data_imports_service_reserved7 (SpitDataImportsService* self);
+static void spit_data_imports_service_real_reserved7 (SpitDataImportsService* self);
+
+
+GQuark spit_data_imports_data_import_error_quark (void) {
+ return g_quark_from_static_string ("spit_data_imports_data_import_error-quark");
+}
+
+
+/**
+ * Returns a {@link Service} object describing the service to which this connects.
+ */
+SpitDataImportsService* spit_data_imports_data_importer_get_service (SpitDataImportsDataImporter* self) {
+#line 53 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self), NULL);
+#line 53 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->get_service (self);
+#line 434 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Makes this data importer enter the running state and endows it with exclusive access
+ * to the shared services provided by the {@link PluginHost}. Through the host’s interface,
+ * this data importer can install user interface panes and query configuration information.
+ */
+void spit_data_imports_data_importer_start (SpitDataImportsDataImporter* self) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 60 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->start (self);
+#line 448 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Returns true if this data importer is in the running state; false otherwise.
+ */
+gboolean spit_data_imports_data_importer_is_running (SpitDataImportsDataImporter* self) {
+#line 65 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self), FALSE);
+#line 65 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->is_running (self);
+#line 460 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Causes this data importer to enter a non-running state. This data importer should stop all
+ * data access operations and cease use of the shared services provided by the {@link PluginHost}.
+ */
+void spit_data_imports_data_importer_stop (SpitDataImportsDataImporter* self) {
+#line 71 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 71 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->stop (self);
+#line 473 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Causes this data importer to enter start the import of a library.
+ */
+void spit_data_imports_data_importer_on_library_selected (SpitDataImportsDataImporter* self, SpitDataImportsImportableLibrary* library) {
+#line 76 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 76 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->on_library_selected (self, library);
+#line 485 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Causes this data importer to enter start the import of a library file.
+ */
+void spit_data_imports_data_importer_on_file_selected (SpitDataImportsDataImporter* self, GFile* file) {
+#line 81 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 81 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->on_file_selected (self, file);
+#line 497 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved0 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved0 (SpitDataImportsDataImporter* self) {
+#line 86 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 86 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved0 (self);
+#line 510 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved1 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved1 (SpitDataImportsDataImporter* self) {
+#line 87 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 87 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved1 (self);
+#line 523 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved2 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved2 (SpitDataImportsDataImporter* self) {
+#line 88 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 88 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved2 (self);
+#line 536 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved3 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved3 (SpitDataImportsDataImporter* self) {
+#line 89 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 89 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved3 (self);
+#line 549 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved4 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved4 (SpitDataImportsDataImporter* self) {
+#line 90 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 90 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved4 (self);
+#line 562 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved5 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved5 (SpitDataImportsDataImporter* self) {
+#line 91 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 91 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved5 (self);
+#line 575 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved6 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved6 (SpitDataImportsDataImporter* self) {
+#line 92 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 92 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved6 (self);
+#line 588 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_real_reserved7 (SpitDataImportsDataImporter* self) {
+}
+
+
+void spit_data_imports_data_importer_reserved7 (SpitDataImportsDataImporter* self) {
+#line 93 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DATA_IMPORTER (self));
+#line 93 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DATA_IMPORTER_GET_INTERFACE (self)->reserved7 (self);
+#line 601 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_data_importer_base_init (SpitDataImportsDataImporterIface * iface) {
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_data_importer_real_reserved0;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_data_importer_real_reserved1;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_data_importer_real_reserved2;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_data_importer_real_reserved3;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_data_importer_real_reserved4;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_data_importer_real_reserved5;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_data_importer_real_reserved6;
+#line 49 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_data_importer_real_reserved7;
+#line 628 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents a module that is able to import data from a specific database format.
+ *
+ * Developers of data import plugins provide a class that implements this interface. At
+ * any given time, only one DataImporter can be running. When a data importer is running, it
+ * has exclusive use of the shared user-interface and
+ * configuration services provided by the {@link PluginHost}. Data importers are created in
+ * a non-running state and do not begin running until start( ) is invoked. Data importers
+ * run until stop( ) is invoked.
+ */
+GType spit_data_imports_data_importer_get_type (void) {
+ static volatile gsize spit_data_imports_data_importer_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_data_importer_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsDataImporterIface), (GBaseInitFunc) spit_data_imports_data_importer_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_data_importer_type_id;
+ spit_data_imports_data_importer_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsDataImporter", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_data_importer_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_data_importer_type_id__volatile, spit_data_imports_data_importer_type_id);
+ }
+ return spit_data_imports_data_importer_type_id__volatile;
+}
+
+
+gchar* spit_data_imports_importable_library_get_display_name (SpitDataImportsImportableLibrary* self) {
+#line 102 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_LIBRARY (self), NULL);
+#line 102 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_LIBRARY_GET_INTERFACE (self)->get_display_name (self);
+#line 661 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_library_base_init (SpitDataImportsImportableLibraryIface * iface) {
+#line 101 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 101 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 101 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 672 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents a library of importable media items.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_library_get_type (void) {
+ static volatile gsize spit_data_imports_importable_library_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_library_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableLibraryIface), (GBaseInitFunc) spit_data_imports_importable_library_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_library_type_id;
+ spit_data_imports_importable_library_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableLibrary", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_library_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_library_type_id__volatile, spit_data_imports_importable_library_type_id);
+ }
+ return spit_data_imports_importable_library_type_id__volatile;
+}
+
+
+SpitDataImportsImportableTag** spit_data_imports_importable_media_item_get_tags (SpitDataImportsImportableMediaItem* self, int* result_length1) {
+#line 111 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 111 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_tags (self, result_length1);
+#line 700 "DataImportsInterfaces.c"
+}
+
+
+SpitDataImportsImportableEvent* spit_data_imports_importable_media_item_get_event (SpitDataImportsImportableMediaItem* self) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 113 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_event (self);
+#line 709 "DataImportsInterfaces.c"
+}
+
+
+SpitDataImportsImportableRating* spit_data_imports_importable_media_item_get_rating (SpitDataImportsImportableMediaItem* self) {
+#line 115 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 115 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_rating (self);
+#line 718 "DataImportsInterfaces.c"
+}
+
+
+gchar* spit_data_imports_importable_media_item_get_title (SpitDataImportsImportableMediaItem* self) {
+#line 117 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 117 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_title (self);
+#line 727 "DataImportsInterfaces.c"
+}
+
+
+gchar* spit_data_imports_importable_media_item_get_folder_path (SpitDataImportsImportableMediaItem* self) {
+#line 119 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 119 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_folder_path (self);
+#line 736 "DataImportsInterfaces.c"
+}
+
+
+gchar* spit_data_imports_importable_media_item_get_filename (SpitDataImportsImportableMediaItem* self) {
+#line 121 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 121 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_filename (self);
+#line 745 "DataImportsInterfaces.c"
+}
+
+
+time_t* spit_data_imports_importable_media_item_get_exposure_time (SpitDataImportsImportableMediaItem* self) {
+#line 123 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_MEDIA_ITEM (self), NULL);
+#line 123 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_MEDIA_ITEM_GET_INTERFACE (self)->get_exposure_time (self);
+#line 754 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_media_item_base_init (SpitDataImportsImportableMediaItemIface * iface) {
+#line 110 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 110 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 110 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 765 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable media item such as a photo or a video file.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_media_item_get_type (void) {
+ static volatile gsize spit_data_imports_importable_media_item_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_media_item_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableMediaItemIface), (GBaseInitFunc) spit_data_imports_importable_media_item_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_media_item_type_id;
+ spit_data_imports_importable_media_item_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableMediaItem", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_media_item_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_media_item_type_id__volatile, spit_data_imports_importable_media_item_type_id);
+ }
+ return spit_data_imports_importable_media_item_type_id__volatile;
+}
+
+
+gchar* spit_data_imports_importable_tag_get_name (SpitDataImportsImportableTag* self) {
+#line 132 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_TAG (self), NULL);
+#line 132 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_TAG_GET_INTERFACE (self)->get_name (self);
+#line 793 "DataImportsInterfaces.c"
+}
+
+
+SpitDataImportsImportableTag* spit_data_imports_importable_tag_get_parent (SpitDataImportsImportableTag* self) {
+#line 134 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_TAG (self), NULL);
+#line 134 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_TAG_GET_INTERFACE (self)->get_parent (self);
+#line 802 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_tag_base_init (SpitDataImportsImportableTagIface * iface) {
+#line 131 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 131 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 131 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 813 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable tag.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_tag_get_type (void) {
+ static volatile gsize spit_data_imports_importable_tag_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_tag_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableTagIface), (GBaseInitFunc) spit_data_imports_importable_tag_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_tag_type_id;
+ spit_data_imports_importable_tag_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableTag", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_tag_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_tag_type_id__volatile, spit_data_imports_importable_tag_type_id);
+ }
+ return spit_data_imports_importable_tag_type_id__volatile;
+}
+
+
+gchar* spit_data_imports_importable_event_get_name (SpitDataImportsImportableEvent* self) {
+#line 143 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_EVENT (self), NULL);
+#line 143 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_EVENT_GET_INTERFACE (self)->get_name (self);
+#line 841 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_event_base_init (SpitDataImportsImportableEventIface * iface) {
+#line 142 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 142 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 142 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 852 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable event.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_importable_event_get_type (void) {
+ static volatile gsize spit_data_imports_importable_event_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_event_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableEventIface), (GBaseInitFunc) spit_data_imports_importable_event_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_event_type_id;
+ spit_data_imports_importable_event_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableEvent", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_event_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_event_type_id__volatile, spit_data_imports_importable_event_type_id);
+ }
+ return spit_data_imports_importable_event_type_id__volatile;
+}
+
+
+gboolean spit_data_imports_importable_rating_is_unrated (SpitDataImportsImportableRating* self) {
+#line 155 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING (self), FALSE);
+#line 155 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE (self)->is_unrated (self);
+#line 880 "DataImportsInterfaces.c"
+}
+
+
+gboolean spit_data_imports_importable_rating_is_rejected (SpitDataImportsImportableRating* self) {
+#line 157 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING (self), FALSE);
+#line 157 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE (self)->is_rejected (self);
+#line 889 "DataImportsInterfaces.c"
+}
+
+
+gint spit_data_imports_importable_rating_get_value (SpitDataImportsImportableRating* self) {
+#line 159 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_IMPORTABLE_RATING (self), 0);
+#line 159 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_IMPORTABLE_RATING_GET_INTERFACE (self)->get_value (self);
+#line 898 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_importable_rating_base_init (SpitDataImportsImportableRatingIface * iface) {
+#line 154 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 154 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 909 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents an importable rating value.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ * Note that the value returned by the get_value method should be a value between
+ * 1 and 5, unless the rating object is unrated or rejected, in which case the
+ * value is unspecified.
+ */
+GType spit_data_imports_importable_rating_get_type (void) {
+ static volatile gsize spit_data_imports_importable_rating_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_importable_rating_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsImportableRatingIface), (GBaseInitFunc) spit_data_imports_importable_rating_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_importable_rating_type_id;
+ spit_data_imports_importable_rating_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsImportableRating", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_importable_rating_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_importable_rating_type_id__volatile, spit_data_imports_importable_rating_type_id);
+ }
+ return spit_data_imports_importable_rating_type_id__volatile;
+}
+
+
+/**
+ * Describes how the on-screen publishing dialog box should look and behave when an associated
+ * pane is installed in the on-screen publishing dialog box.
+ */
+GType spit_data_imports_dialog_pane_geometry_options_get_type (void) {
+ static volatile gsize spit_data_imports_dialog_pane_geometry_options_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_dialog_pane_geometry_options_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_NONE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_NONE", "none"}, {SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE", "extended-size"}, {SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE", "resizable"}, {SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE, "SPIT_DATA_IMPORTS_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE", "colossal-size"}, {0, NULL, NULL}};
+ GType spit_data_imports_dialog_pane_geometry_options_type_id;
+ spit_data_imports_dialog_pane_geometry_options_type_id = g_enum_register_static ("SpitDataImportsDialogPaneGeometryOptions", values);
+ g_once_init_leave (&spit_data_imports_dialog_pane_geometry_options_type_id__volatile, spit_data_imports_dialog_pane_geometry_options_type_id);
+ }
+ return spit_data_imports_dialog_pane_geometry_options_type_id__volatile;
+}
+
+
+/**
+ * Returns the Gtk.Widget that is this pane's on-screen representation.
+ */
+GtkWidget* spit_data_imports_dialog_pane_get_widget (SpitDataImportsDialogPane* self) {
+#line 204 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self), NULL);
+#line 204 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->get_widget (self);
+#line 959 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Returns a {@link GeometryOptions} bitfield describing how the on-screen publishing dialog
+ * box should look and behave when this pane is installed.
+ */
+SpitDataImportsDialogPaneGeometryOptions spit_data_imports_dialog_pane_get_preferred_geometry (SpitDataImportsDialogPane* self) {
+#line 210 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self), 0);
+#line 210 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->get_preferred_geometry (self);
+#line 972 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been installed into the on-screen
+ * publishing dialog box and become visible to the user.
+ */
+void spit_data_imports_dialog_pane_on_pane_installed (SpitDataImportsDialogPane* self) {
+#line 216 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 216 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->on_pane_installed (self);
+#line 985 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been removed from the on-screen
+ * publishing dialog box and is no longer visible to the user.
+ */
+void spit_data_imports_dialog_pane_on_pane_uninstalled (SpitDataImportsDialogPane* self) {
+#line 222 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 222 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->on_pane_uninstalled (self);
+#line 998 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved0 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved0 (SpitDataImportsDialogPane* self) {
+#line 227 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 227 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved0 (self);
+#line 1011 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved1 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved1 (SpitDataImportsDialogPane* self) {
+#line 228 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 228 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved1 (self);
+#line 1024 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved2 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved2 (SpitDataImportsDialogPane* self) {
+#line 229 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 229 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved2 (self);
+#line 1037 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved3 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved3 (SpitDataImportsDialogPane* self) {
+#line 230 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 230 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved3 (self);
+#line 1050 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved4 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved4 (SpitDataImportsDialogPane* self) {
+#line 231 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 231 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved4 (self);
+#line 1063 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved5 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved5 (SpitDataImportsDialogPane* self) {
+#line 232 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 232 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved5 (self);
+#line 1076 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved6 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved6 (SpitDataImportsDialogPane* self) {
+#line 233 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 233 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved6 (self);
+#line 1089 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_real_reserved7 (SpitDataImportsDialogPane* self) {
+}
+
+
+void spit_data_imports_dialog_pane_reserved7 (SpitDataImportsDialogPane* self) {
+#line 234 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_DIALOG_PANE (self));
+#line 234 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_DIALOG_PANE_GET_INTERFACE (self)->reserved7 (self);
+#line 1102 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_dialog_pane_base_init (SpitDataImportsDialogPaneIface * iface) {
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_dialog_pane_real_reserved0;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_dialog_pane_real_reserved1;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_dialog_pane_real_reserved2;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_dialog_pane_real_reserved3;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_dialog_pane_real_reserved4;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_dialog_pane_real_reserved5;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_dialog_pane_real_reserved6;
+#line 167 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_dialog_pane_real_reserved7;
+#line 1129 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Encapsulates a pane that can be installed in the on-screen import dialog box to
+ * communicate status to and to get information from the user.
+ *
+ */
+GType spit_data_imports_dialog_pane_get_type (void) {
+ static volatile gsize spit_data_imports_dialog_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_dialog_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsDialogPaneIface), (GBaseInitFunc) spit_data_imports_dialog_pane_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_dialog_pane_type_id;
+ spit_data_imports_dialog_pane_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsDialogPane", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_dialog_pane_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_data_imports_dialog_pane_type_id__volatile, spit_data_imports_dialog_pane_type_id);
+ }
+ return spit_data_imports_dialog_pane_type_id__volatile;
+}
+
+
+/**
+ * Specifies the label text on the push button control that appears in the
+ * lower-right-hand corner of the on-screen publishing dialog box.
+ */
+GType spit_data_imports_plugin_host_button_mode_get_type (void) {
+ static volatile gsize spit_data_imports_plugin_host_button_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_plugin_host_button_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE, "SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CLOSE", "close"}, {SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL, "SPIT_DATA_IMPORTS_PLUGIN_HOST_BUTTON_MODE_CANCEL", "cancel"}, {0, NULL, NULL}};
+ GType spit_data_imports_plugin_host_button_mode_type_id;
+ spit_data_imports_plugin_host_button_mode_type_id = g_enum_register_static ("SpitDataImportsPluginHostButtonMode", values);
+ g_once_init_leave (&spit_data_imports_plugin_host_button_mode_type_id__volatile, spit_data_imports_plugin_host_button_mode_type_id);
+ }
+ return spit_data_imports_plugin_host_button_mode_type_id__volatile;
+}
+
+
+/**
+ * Notifies the user that an unrecoverable import error has occurred and halts
+ * the import process.
+ *
+ * @param err An error object that describes the kind of error that occurred.
+ */
+void spit_data_imports_plugin_host_post_error (SpitDataImportsPluginHost* self, GError* err) {
+#line 271 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 271 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->post_error (self, err);
+#line 1179 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Notifies the user that an unrecoverable import error has occurred and halts
+ * the import process.
+ *
+ * @param msg A message that describes the kind of error that occurred.
+ */
+void spit_data_imports_plugin_host_post_error_message (SpitDataImportsPluginHost* self, const gchar* msg) {
+#line 279 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 279 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->post_error_message (self, msg);
+#line 1194 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Starts the import process.
+ *
+ * Calling this method starts the import activity for this host.
+ */
+void spit_data_imports_plugin_host_start_importing (SpitDataImportsPluginHost* self) {
+#line 286 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 286 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->start_importing (self);
+#line 1208 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Halts the import process.
+ *
+ * Calling this method stops all import activity and hides the on-screen import
+ * dialog box.
+ */
+void spit_data_imports_plugin_host_stop_importing (SpitDataImportsPluginHost* self) {
+#line 294 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 294 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->stop_importing (self);
+#line 1223 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Returns a reference to the {@link DataImporter} object that this is currently hosting.
+ */
+SpitDataImportsDataImporter* spit_data_imports_plugin_host_get_data_importer (SpitDataImportsPluginHost* self) {
+#line 299 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self), NULL);
+#line 299 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->get_data_importer (self);
+#line 1235 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen data import dialog box, making the pane visible
+ * and allowing it to interact with the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param pane the pane to install
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen data import dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your importer is in the
+ * middle of processing 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the processing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable actions have already
+ * occurred.
+ */
+void spit_data_imports_plugin_host_install_dialog_pane (SpitDataImportsPluginHost* self, SpitDataImportsDialogPane* pane, SpitDataImportsPluginHostButtonMode mode) {
+#line 319 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 319 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_dialog_pane (self, pane, mode);
+#line 1262 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen data import dialog box that contains
+ * static text.
+ *
+ * The text appears centered in the data import dialog box and is drawn in
+ * the system font. This is a convenience method only; similar results could be
+ * achieved by manually constructing a Gtk.Label widget, wrapping it inside a
+ * {@link DialogPane}, and installing it manually with a call to
+ * install_dialog_pane( ). To provide visual consistency across data import services,
+ * however, always use this convenience method instead of constructing label panes when
+ * you need to display static text to the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param message the text to show in the pane
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen data import dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your importer is in the
+ * middle of processing 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the processing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable actions have already
+ * occurred.
+ */
+void spit_data_imports_plugin_host_install_static_message_pane (SpitDataImportsPluginHost* self, const gchar* message, SpitDataImportsPluginHostButtonMode mode) {
+#line 348 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 348 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_static_message_pane (self, message, mode);
+#line 1297 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a library selection pane that presents a list of
+ * discovered libraries to the user.
+ *
+ * When the user clicks the “OK” button, you’ll be notified of the user’s action through
+ * the 'on_library_selected' callback if a discovered library was selected or through
+ * the 'on_file_selected' callback if a file was selected.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param welcome_message the text to be displayed above the list of discovered
+ * libraries.
+ *
+ * @param discovered_libraries the list of importable libraries that the plugin
+ * has discovered in well known locations.
+ *
+ * @param file_select_label the label to display for the file selection
+ * option. If this label is null, the
+ * user will not be presented with a file selection option.
+ */
+void spit_data_imports_plugin_host_install_library_selection_pane (SpitDataImportsPluginHost* self, const gchar* welcome_message, SpitDataImportsImportableLibrary** discovered_libraries, int discovered_libraries_length1, const gchar* file_select_label) {
+#line 371 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 371 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_library_selection_pane (self, welcome_message, discovered_libraries, discovered_libraries_length1, file_select_label);
+#line 1326 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a progress pane that provides the user with feedback
+ * on import preparation.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param message the text to be displayed above the progress bar.
+ */
+void spit_data_imports_plugin_host_install_import_progress_pane (SpitDataImportsPluginHost* self, const gchar* message) {
+#line 385 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 385 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->install_import_progress_pane (self, message);
+#line 1343 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Update the progress bar installed by install_import_progress_pane.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param progress a value between 0.0 and 1.0 identifying progress for the
+ * plugin.
+ *
+ * @param progress_label the text to be displayed below the progress bar. If that
+ * parameter is null, the message will be left unchanged.
+ */
+void spit_data_imports_plugin_host_update_import_progress_pane (SpitDataImportsPluginHost* self, gdouble progress, const gchar* progress_message) {
+#line 400 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 400 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->update_import_progress_pane (self, progress, progress_message);
+#line 1363 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Sends an importable media item to the host in order to prepare it for import
+ * and update the progress bar installed by install_import_progress_pane.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param item the importable media item to prepare for import.
+ *
+ * @param progress a value between 0.0 and 1.0 identifying progress for the
+ * plugin.
+ *
+ * @param host_progress_delta the amount of progress the host should update
+ * the progress bar during import preparation. Plugins should ensure that
+ * a proportion of progress for each media item is set aside for the host
+ * in oder to ensure a smoother update to the progress bar.
+ *
+ * @param progress_message the text to be displayed below the progress bar. If that
+ * parameter is null, the message will be left unchanged.
+ */
+void spit_data_imports_plugin_host_prepare_media_items_for_import (SpitDataImportsPluginHost* self, SpitDataImportsImportableMediaItem** items, int items_length1, gdouble progress, gdouble host_progress_delta, const gchar* progress_message) {
+#line 424 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 424 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->prepare_media_items_for_import (self, items, items_length1, progress, host_progress_delta, progress_message);
+#line 1391 "DataImportsInterfaces.c"
+}
+
+
+/**
+ * Finalize the import sequence for the plugin. This tells the host that
+ * all media items have been processed and that the plugin has finished all
+ * import work. Once this method has been called, all resources used by the
+ * plugin for import should be released and the plugin should be back to the
+ * state it had just after running the start method. The host will then display
+ * the final message and show progress as fully complete. In a standard import
+ * scenario, the user is expected to click the Close button to dismiss the
+ * dialog. On first run, the host may call the LibrarySelectedCallback again
+ * to import another library handled by the same plugin.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param finalize_message the text to be displayed below the progress bar. If that
+ * parameter is null, the message will be left unchanged.
+ */
+void spit_data_imports_plugin_host_finalize_import (SpitDataImportsPluginHost* self, SpitDataImportsImportedItemsCountCallback report_imported_items_count, void* report_imported_items_count_target, const gchar* finalize_message) {
+#line 447 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 447 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->finalize_import (self, report_imported_items_count, report_imported_items_count_target, finalize_message);
+#line 1416 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved0 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved0 (SpitDataImportsPluginHost* self) {
+#line 455 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 455 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved0 (self);
+#line 1429 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved1 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved1 (SpitDataImportsPluginHost* self) {
+#line 456 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 456 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved1 (self);
+#line 1442 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved2 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved2 (SpitDataImportsPluginHost* self) {
+#line 457 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 457 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved2 (self);
+#line 1455 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved3 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved3 (SpitDataImportsPluginHost* self) {
+#line 458 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 458 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved3 (self);
+#line 1468 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved4 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved4 (SpitDataImportsPluginHost* self) {
+#line 459 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 459 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved4 (self);
+#line 1481 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved5 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved5 (SpitDataImportsPluginHost* self) {
+#line 460 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 460 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved5 (self);
+#line 1494 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved6 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved6 (SpitDataImportsPluginHost* self) {
+#line 461 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 461 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved6 (self);
+#line 1507 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_real_reserved7 (SpitDataImportsPluginHost* self) {
+}
+
+
+void spit_data_imports_plugin_host_reserved7 (SpitDataImportsPluginHost* self) {
+#line 462 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_PLUGIN_HOST (self));
+#line 462 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_PLUGIN_HOST_GET_INTERFACE (self)->reserved7 (self);
+#line 1520 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_plugin_host_base_init (SpitDataImportsPluginHostIface * iface) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_plugin_host_real_reserved0;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_plugin_host_real_reserved1;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_plugin_host_real_reserved2;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_plugin_host_real_reserved3;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_plugin_host_real_reserved4;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_plugin_host_real_reserved5;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_plugin_host_real_reserved6;
+#line 254 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_plugin_host_real_reserved7;
+#line 1547 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Manages and provides services for data import plugins.
+ *
+ * Implemented inside Shotwell, the PluginHost provides an interface through which the
+ * developers of data import plugins can query and make changes to the import
+ * environment. Plugins can use the services of the PluginHost only when their
+ * {@link DataImporter} is in the running state. This ensures that non-running data importers
+ * don’t destructively interfere with the actively running importer.
+ */
+GType spit_data_imports_plugin_host_get_type (void) {
+ static volatile gsize spit_data_imports_plugin_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_plugin_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsPluginHostIface), (GBaseInitFunc) spit_data_imports_plugin_host_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_plugin_host_type_id;
+ spit_data_imports_plugin_host_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsPluginHost", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_plugin_host_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_data_imports_plugin_host_type_id, SPIT_TYPE_HOST_INTERFACE);
+ g_once_init_leave (&spit_data_imports_plugin_host_type_id__volatile, spit_data_imports_plugin_host_type_id);
+ }
+ return spit_data_imports_plugin_host_type_id__volatile;
+}
+
+
+/**
+ * A factory method that instantiates and returns a new {@link DataImporter} object
+ * that this Service describes.
+ */
+SpitDataImportsDataImporter* spit_data_imports_service_create_data_importer (SpitDataImportsService* self, SpitDataImportsPluginHost* host) {
+#line 475 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_val_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self), NULL);
+#line 475 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ return SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->create_data_importer (self, host);
+#line 1584 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved0 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved0 (SpitDataImportsService* self) {
+#line 480 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 480 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved0 (self);
+#line 1597 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved1 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved1 (SpitDataImportsService* self) {
+#line 481 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 481 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved1 (self);
+#line 1610 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved2 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved2 (SpitDataImportsService* self) {
+#line 482 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 482 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved2 (self);
+#line 1623 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved3 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved3 (SpitDataImportsService* self) {
+#line 483 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 483 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved3 (self);
+#line 1636 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved4 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved4 (SpitDataImportsService* self) {
+#line 484 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 484 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved4 (self);
+#line 1649 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved5 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved5 (SpitDataImportsService* self) {
+#line 485 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 485 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved5 (self);
+#line 1662 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved6 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved6 (SpitDataImportsService* self) {
+#line 486 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 486 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved6 (self);
+#line 1675 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_real_reserved7 (SpitDataImportsService* self) {
+}
+
+
+void spit_data_imports_service_reserved7 (SpitDataImportsService* self) {
+#line 487 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ g_return_if_fail (SPIT_DATA_IMPORTS_IS_SERVICE (self));
+#line 487 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ SPIT_DATA_IMPORTS_SERVICE_GET_INTERFACE (self)->reserved7 (self);
+#line 1688 "DataImportsInterfaces.c"
+}
+
+
+static void spit_data_imports_service_base_init (SpitDataImportsServiceIface * iface) {
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ if (!initialized) {
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ initialized = TRUE;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved0 = spit_data_imports_service_real_reserved0;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved1 = spit_data_imports_service_real_reserved1;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved2 = spit_data_imports_service_real_reserved2;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved3 = spit_data_imports_service_real_reserved3;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved4 = spit_data_imports_service_real_reserved4;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved5 = spit_data_imports_service_real_reserved5;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved6 = spit_data_imports_service_real_reserved6;
+#line 470 "/home/jens/Source/shotwell/src/plugins/DataImportsInterfaces.vala"
+ iface->reserved7 = spit_data_imports_service_real_reserved7;
+#line 1715 "DataImportsInterfaces.c"
+ }
+}
+
+
+/**
+ * Describes the features and capabilities of a data import service.
+ *
+ * Developers of data import plugins provide a class that implements this interface.
+ */
+GType spit_data_imports_service_get_type (void) {
+ static volatile gsize spit_data_imports_service_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_data_imports_service_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitDataImportsServiceIface), (GBaseInitFunc) spit_data_imports_service_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_data_imports_service_type_id;
+ spit_data_imports_service_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitDataImportsService", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_data_imports_service_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_data_imports_service_type_id, SPIT_TYPE_PLUGGABLE);
+ g_once_init_leave (&spit_data_imports_service_type_id__volatile, spit_data_imports_service_type_id);
+ }
+ return spit_data_imports_service_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/ManifestWidget.c b/src/plugins/ManifestWidget.c
new file mode 100644
index 0000000..e09267a
--- /dev/null
+++ b/src/plugins/ManifestWidget.c
@@ -0,0 +1,2253 @@
+/* ManifestWidget.c generated by valac 0.32.1, the Vala compiler
+ * generated from ManifestWidget.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gee.h>
+#include <gio/gio.h>
+#include <gdk/gdk.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR (plugins_manifest_widget_mediator_get_type ())
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediator))
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))
+#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
+#define PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR))
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorClass))
+
+typedef struct _PluginsManifestWidgetMediator PluginsManifestWidgetMediator;
+typedef struct _PluginsManifestWidgetMediatorClass PluginsManifestWidgetMediatorClass;
+typedef struct _PluginsManifestWidgetMediatorPrivate PluginsManifestWidgetMediatorPrivate;
+
+#define PLUGINS_TYPE_MANIFEST_LIST_VIEW (plugins_manifest_list_view_get_type ())
+#define PLUGINS_MANIFEST_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView))
+#define PLUGINS_MANIFEST_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewClass))
+#define PLUGINS_IS_MANIFEST_LIST_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW))
+#define PLUGINS_IS_MANIFEST_LIST_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MANIFEST_LIST_VIEW))
+#define PLUGINS_MANIFEST_LIST_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewClass))
+
+typedef struct _PluginsManifestListView PluginsManifestListView;
+typedef struct _PluginsManifestListViewClass PluginsManifestListViewClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _PluginsParamSpecManifestWidgetMediator PluginsParamSpecManifestWidgetMediator;
+typedef struct _PluginsManifestListViewPrivate PluginsManifestListViewPrivate;
+
+#define PLUGINS_MANIFEST_LIST_VIEW_TYPE_COLUMN (plugins_manifest_list_view_column_get_type ())
+
+#define PLUGINS_TYPE_EXTENSION_POINT (plugins_extension_point_get_type ())
+#define PLUGINS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint))
+#define PLUGINS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+#define PLUGINS_IS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_IS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_EXTENSION_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+
+typedef struct _PluginsExtensionPoint PluginsExtensionPoint;
+typedef struct _PluginsExtensionPointClass PluginsExtensionPointClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _gtk_icon_info_free0(var) ((var == NULL) ? NULL : (var = (gtk_icon_info_free (var), NULL)))
+#define _plugins_extension_point_unref0(var) ((var == NULL) ? NULL : (var = (plugins_extension_point_unref (var), NULL)))
+#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
+#define __g_list_free__gtk_tree_path_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__gtk_tree_path_free0_ (var), NULL)))
+
+struct _PluginsManifestWidgetMediator {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsManifestWidgetMediatorPrivate * priv;
+};
+
+struct _PluginsManifestWidgetMediatorClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsManifestWidgetMediator *self);
+};
+
+struct _PluginsManifestWidgetMediatorPrivate {
+ GtkBuilder* builder;
+ PluginsManifestListView* list;
+};
+
+struct _PluginsParamSpecManifestWidgetMediator {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsManifestListView {
+ GtkTreeView parent_instance;
+ PluginsManifestListViewPrivate * priv;
+};
+
+struct _PluginsManifestListViewClass {
+ GtkTreeViewClass parent_class;
+};
+
+struct _PluginsManifestListViewPrivate {
+ GtkTreeStore* store;
+};
+
+typedef enum {
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID,
+ PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS
+} PluginsManifestListViewColumn;
+
+
+static gpointer plugins_manifest_widget_mediator_parent_class = NULL;
+static gpointer plugins_manifest_list_view_parent_class = NULL;
+
+gpointer plugins_manifest_widget_mediator_ref (gpointer instance);
+void plugins_manifest_widget_mediator_unref (gpointer instance);
+GParamSpec* plugins_param_spec_manifest_widget_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_manifest_widget_mediator (GValue* value, gpointer v_object);
+void plugins_value_take_manifest_widget_mediator (GValue* value, gpointer v_object);
+gpointer plugins_value_get_manifest_widget_mediator (const GValue* value);
+GType plugins_manifest_widget_mediator_get_type (void) G_GNUC_CONST;
+GType plugins_manifest_list_view_get_type (void) G_GNUC_CONST;
+#define PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediatorPrivate))
+enum {
+ PLUGINS_MANIFEST_WIDGET_MEDIATOR_DUMMY_PROPERTY
+};
+static GtkButton* plugins_manifest_widget_mediator_get_about_button (PluginsManifestWidgetMediator* self);
+static void plugins_manifest_widget_mediator_on_about (PluginsManifestWidgetMediator* self);
+static void _plugins_manifest_widget_mediator_on_about_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void plugins_manifest_widget_mediator_on_selection_changed (PluginsManifestWidgetMediator* self);
+static void _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self);
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+PluginsManifestListView* plugins_manifest_list_view_new (void);
+PluginsManifestListView* plugins_manifest_list_view_construct (GType object_type);
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_new (void);
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_construct (GType object_type);
+static GtkScrolledWindow* plugins_manifest_widget_mediator_get_list_bin (PluginsManifestWidgetMediator* self);
+static void plugins_manifest_widget_mediator_set_about_button_sensitivity (PluginsManifestWidgetMediator* self);
+gchar** plugins_manifest_list_view_get_selected_ids (PluginsManifestListView* self, int* result_length1);
+gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info);
+gboolean is_string_empty (const gchar* s);
+static void _vala_array_add49 (gchar*** array, int* length, int* size, gchar* value);
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+#define RESOURCES_ICON_GENERIC_PLUGIN "generic-plugin.png"
+#define RESOURCES_DEFAULT_ICON_SCALE 24
+gchar* plugins_get_pluggable_name (const gchar* id);
+GtkWidget* plugins_manifest_widget_mediator_get_widget (PluginsManifestWidgetMediator* self);
+static void plugins_manifest_widget_mediator_finalize (PluginsManifestWidgetMediator* obj);
+#define PLUGINS_MANIFEST_LIST_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListViewPrivate))
+enum {
+ PLUGINS_MANIFEST_LIST_VIEW_DUMMY_PROPERTY
+};
+static GType plugins_manifest_list_view_column_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE 24
+#define PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING 6
+#define PLUGINS_MANIFEST_LIST_VIEW_ICON_Y_PADDING 2
+GtkIconTheme* resources_get_icon_theme_engine (void);
+gpointer plugins_extension_point_ref (gpointer instance);
+void plugins_extension_point_unref (gpointer instance);
+GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_extension_point (GValue* value, gpointer v_object);
+void plugins_value_take_extension_point (GValue* value, gpointer v_object);
+gpointer plugins_value_get_extension_point (const GValue* value);
+GType plugins_extension_point_get_type (void) G_GNUC_CONST;
+GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+gint plugins_compare_extension_point_names (void* a, void* b);
+static gint _plugins_compare_extension_point_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self);
+const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self);
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled);
+GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self);
+gint plugins_compare_pluggable_names (void* a, void* b);
+static gint _plugins_compare_pluggable_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled);
+static gchar* plugins_manifest_list_view_get_id_at_path (PluginsManifestListView* self, GtkTreePath* path, GtkTreeIter* iter);
+static void _vala_array_add50 (gchar*** array, int* length, int* size, gchar* value);
+static void _gtk_tree_path_free0_ (gpointer var);
+static void _g_list_free__gtk_tree_path_free0_ (GList* self);
+static gboolean plugins_manifest_list_view_real_button_press_event (GtkWidget* base, GdkEventButton* event);
+void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled);
+static void plugins_manifest_list_view_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+static void _plugins_manifest_widget_mediator_on_about_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_on_about ((PluginsManifestWidgetMediator*) self);
+#line 187 "ManifestWidget.c"
+}
+
+
+static void _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self) {
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_on_selection_changed ((PluginsManifestWidgetMediator*) self);
+#line 194 "ManifestWidget.c"
+}
+
+
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_construct (GType object_type) {
+ PluginsManifestWidgetMediator* self = NULL;
+ GtkScrolledWindow* _tmp0_ = NULL;
+ GtkScrolledWindow* _tmp1_ = NULL;
+ PluginsManifestListView* _tmp2_ = NULL;
+ GtkButton* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+ PluginsManifestListView* _tmp5_ = NULL;
+ GtkTreeSelection* _tmp6_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = (PluginsManifestWidgetMediator*) g_type_create_instance (object_type);
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = plugins_manifest_widget_mediator_get_list_bin (self);
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = _tmp0_;
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = self->priv->list;
+#line 32 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_scrolled_window_add_with_viewport (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 34 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = plugins_manifest_widget_mediator_get_about_button (self);
+#line 34 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = _tmp3_;
+#line 34 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_connect (_tmp4_, "clicked", (GCallback) _plugins_manifest_widget_mediator_on_about_gtk_button_clicked, self);
+#line 35 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = self->priv->list;
+#line 35 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_tree_view_get_type (), GtkTreeView));
+#line 35 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_connect (_tmp6_, "changed", (GCallback) _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed, self);
+#line 37 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_set_about_button_sensitivity (self);
+#line 31 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self;
+#line 233 "ManifestWidget.c"
+}
+
+
+PluginsManifestWidgetMediator* plugins_manifest_widget_mediator_new (void) {
+#line 31 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return plugins_manifest_widget_mediator_construct (PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR);
+#line 240 "ManifestWidget.c"
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 263 "ManifestWidget.c"
+}
+
+
+static void _vala_array_add49 (gchar*** array, int* length, int* size, gchar* value) {
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if ((*length) == (*size)) {
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 274 "ManifestWidget.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[(*length)++] = value;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[*length] = NULL;
+#line 280 "ManifestWidget.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 287 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_on_about (PluginsManifestWidgetMediator* self) {
+ gchar** ids = NULL;
+ PluginsManifestListView* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar** _tmp2_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* id = NULL;
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ SpitPluggableInfo info = {0};
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gchar** authors = NULL;
+ gint authors_length1 = 0;
+ gint _authors_size_ = 0;
+ SpitPluggableInfo _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+ GtkAboutDialog* about_dialog = NULL;
+ GtkAboutDialog* _tmp31_ = NULL;
+ GtkAboutDialog* _tmp32_ = NULL;
+ gchar** _tmp33_ = NULL;
+ gint _tmp33__length1 = 0;
+ GtkAboutDialog* _tmp34_ = NULL;
+ SpitPluggableInfo _tmp35_ = {0};
+ const gchar* _tmp36_ = NULL;
+ GtkAboutDialog* _tmp37_ = NULL;
+ SpitPluggableInfo _tmp38_ = {0};
+ const gchar* _tmp39_ = NULL;
+ GtkAboutDialog* _tmp40_ = NULL;
+ SpitPluggableInfo _tmp41_ = {0};
+ const gchar* _tmp42_ = NULL;
+ GtkAboutDialog* _tmp43_ = NULL;
+ SpitPluggableInfo _tmp44_ = {0};
+ gboolean _tmp45_ = FALSE;
+ GdkPixbuf* _tmp46_ = NULL;
+ gboolean _tmp47_ = FALSE;
+ SpitPluggableInfo _tmp48_ = {0};
+ GdkPixbuf** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ GtkAboutDialog* _tmp57_ = NULL;
+ GtkAboutDialog* _tmp58_ = NULL;
+ const gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ GtkAboutDialog* _tmp62_ = NULL;
+ SpitPluggableInfo _tmp63_ = {0};
+ const gchar* _tmp64_ = NULL;
+ GtkAboutDialog* _tmp65_ = NULL;
+ SpitPluggableInfo _tmp66_ = {0};
+ const gchar* _tmp67_ = NULL;
+ GtkAboutDialog* _tmp68_ = NULL;
+ SpitPluggableInfo _tmp69_ = {0};
+ const gchar* _tmp70_ = NULL;
+ GtkAboutDialog* _tmp71_ = NULL;
+ SpitPluggableInfo _tmp72_ = {0};
+ const gchar* _tmp73_ = NULL;
+ GtkAboutDialog* _tmp74_ = NULL;
+ GtkAboutDialog* _tmp75_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self));
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->list;
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = plugins_manifest_list_view_get_selected_ids (_tmp0_, &_tmp1_);
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = _tmp2_;
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids_length1 = _tmp1_;
+#line 46 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _ids_size_ = ids_length1;
+#line 47 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = ids;
+#line 47 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3__length1 = ids_length1;
+#line 47 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp3__length1 == 0) {
+#line 48 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 48 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return;
+#line 376 "ManifestWidget.c"
+ }
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = ids;
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4__length1 = ids_length1;
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = _tmp4_[0];
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 50 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ id = _tmp6_;
+#line 52 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ memset (&info, 0, sizeof (SpitPluggableInfo));
+#line 53 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = id;
+#line 53 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = plugins_get_pluggable_info (_tmp7_, &info);
+#line 53 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp8_) {
+#line 396 "ManifestWidget.c"
+ const gchar* _tmp9_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = id;
+#line 54 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_warning ("ManifestWidget.vala:54: Unable to retrieve information for plugin %s", _tmp9_);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_info_destroy (&info);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 56 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return;
+#line 410 "ManifestWidget.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = NULL;
+#line 61 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors_length1 = 0;
+#line 61 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _authors_size_ = authors_length1;
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = info;
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = _tmp10_.authors;
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp11_ != NULL) {
+#line 424 "ManifestWidget.c"
+ gchar** split = NULL;
+ SpitPluggableInfo _tmp12_ = {0};
+ const gchar* _tmp13_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gint split_length1 = 0;
+ gint _split_size_ = 0;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = info;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp13_ = _tmp12_.authors;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp15_ = _tmp14_ = g_strsplit (_tmp13_, ",", 0);
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ split = _tmp15_;
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ split_length1 = _vala_array_length (_tmp14_);
+#line 63 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _split_size_ = split_length1;
+#line 444 "ManifestWidget.c"
+ {
+ gint ctr = 0;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ctr = 0;
+#line 449 "ManifestWidget.c"
+ {
+ gboolean _tmp16_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = TRUE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ while (TRUE) {
+#line 456 "ManifestWidget.c"
+ gint _tmp18_ = 0;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gchar* stripped = NULL;
+ gchar** _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ gint _tmp21_ = 0;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp16_) {
+#line 470 "ManifestWidget.c"
+ gint _tmp17_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp17_ = ctr;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ctr = _tmp17_ + 1;
+#line 476 "ManifestWidget.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp18_ = ctr;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19_ = split;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19__length1 = split_length1;
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!(_tmp18_ < _tmp19__length1)) {
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ break;
+#line 490 "ManifestWidget.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20_ = split;
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20__length1 = split_length1;
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp21_ = ctr;
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp22_ = _tmp20_[_tmp21_];
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp23_ = string_strip (_tmp22_);
+#line 65 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ stripped = _tmp23_;
+#line 66 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp24_ = stripped;
+#line 66 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp25_ = is_string_empty (_tmp24_);
+#line 66 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp25_) {
+#line 510 "ManifestWidget.c"
+ gchar** _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ gchar** _tmp28_ = NULL;
+ gint _tmp28__length1 = 0;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26_ = authors;
+#line 67 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26__length1 = authors_length1;
+#line 67 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp26_ == NULL) {
+#line 523 "ManifestWidget.c"
+ gchar** _tmp27_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp27_ = g_new0 (gchar*, 0 + 1);
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = _tmp27_;
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors_length1 = 0;
+#line 68 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _authors_size_ = authors_length1;
+#line 535 "ManifestWidget.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28_ = authors;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28__length1 = authors_length1;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp29_ = stripped;
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 70 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _vala_array_add49 (&authors, &authors_length1, &_authors_size_, _tmp30_);
+#line 547 "ManifestWidget.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (stripped);
+#line 551 "ManifestWidget.c"
+ }
+ }
+ }
+#line 62 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ split = (_vala_array_free (split, split_length1, (GDestroyNotify) g_free), NULL);
+#line 557 "ManifestWidget.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp31_ = (GtkAboutDialog*) gtk_about_dialog_new ();
+#line 75 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp31_);
+#line 75 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ about_dialog = _tmp31_;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp32_ = about_dialog;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33_ = authors;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33__length1 = authors_length1;
+#line 76 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_authors (_tmp32_, _tmp33_);
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp34_ = about_dialog;
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp35_ = info;
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp36_ = _tmp35_.brief_description;
+#line 77 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_comments (_tmp34_, _tmp36_);
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp37_ = about_dialog;
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp38_ = info;
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp39_ = _tmp38_.copyright;
+#line 78 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_copyright (_tmp37_, _tmp39_);
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp40_ = about_dialog;
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp41_ = info;
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp42_ = _tmp41_.license;
+#line 79 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_license (_tmp40_, _tmp42_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp43_ = about_dialog;
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp44_ = info;
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp45_ = _tmp44_.is_license_wordwrapped;
+#line 80 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_wrap_license (_tmp43_, _tmp45_);
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp48_ = info;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp49_ = _tmp48_.icons;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp49__length1 = _tmp48_.icons_length1;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp49_ != NULL) {
+#line 613 "ManifestWidget.c"
+ SpitPluggableInfo _tmp50_ = {0};
+ GdkPixbuf** _tmp51_ = NULL;
+ gint _tmp51__length1 = 0;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp50_ = info;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp51_ = _tmp50_.icons;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp51__length1 = _tmp50_.icons_length1;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp47_ = _tmp51__length1 > 0;
+#line 625 "ManifestWidget.c"
+ } else {
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp47_ = FALSE;
+#line 629 "ManifestWidget.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp47_) {
+#line 633 "ManifestWidget.c"
+ SpitPluggableInfo _tmp52_ = {0};
+ GdkPixbuf** _tmp53_ = NULL;
+ gint _tmp53__length1 = 0;
+ GdkPixbuf* _tmp54_ = NULL;
+ GdkPixbuf* _tmp55_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp52_ = info;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp53_ = _tmp52_.icons;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp53__length1 = _tmp52_.icons_length1;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp54_ = _tmp53_[0];
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp55_ = _g_object_ref0 (_tmp54_);
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp46_ = _tmp55_;
+#line 653 "ManifestWidget.c"
+ } else {
+ GdkPixbuf* _tmp56_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp56_ = resources_get_icon (RESOURCES_ICON_GENERIC_PLUGIN, RESOURCES_DEFAULT_ICON_SCALE);
+#line 82 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 82 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp46_ = _tmp56_;
+#line 662 "ManifestWidget.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp57_ = about_dialog;
+#line 81 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_logo (_tmp57_, _tmp46_);
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp58_ = about_dialog;
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp59_ = id;
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp60_ = plugins_get_pluggable_name (_tmp59_);
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp61_ = _tmp60_;
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_program_name (_tmp58_, _tmp61_);
+#line 83 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (_tmp61_);
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp62_ = about_dialog;
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp63_ = info;
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp64_ = _tmp63_.translators;
+#line 84 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_translator_credits (_tmp62_, _tmp64_);
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp65_ = about_dialog;
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp66_ = info;
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp67_ = _tmp66_.version;
+#line 85 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_version (_tmp65_, _tmp67_);
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp68_ = about_dialog;
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp69_ = info;
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp70_ = _tmp69_.website_url;
+#line 86 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_website (_tmp68_, _tmp70_);
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp71_ = about_dialog;
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp72_ = info;
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp73_ = _tmp72_.website_name;
+#line 87 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_about_dialog_set_website_label (_tmp71_, _tmp73_);
+#line 89 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp74_ = about_dialog;
+#line 89 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (_tmp74_, gtk_dialog_get_type (), GtkDialog));
+#line 91 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp75_ = about_dialog;
+#line 91 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp75_, gtk_widget_get_type (), GtkWidget));
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (about_dialog);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_info_destroy (&info);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 45 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 732 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_on_selection_changed (PluginsManifestWidgetMediator* self) {
+#line 94 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self));
+#line 95 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_set_about_button_sensitivity (self);
+#line 741 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_set_about_button_sensitivity (PluginsManifestWidgetMediator* self) {
+ gchar** ids = NULL;
+ PluginsManifestListView* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gchar** _tmp2_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ GtkButton* _tmp3_ = NULL;
+ GtkButton* _tmp4_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self));
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->list;
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = plugins_manifest_list_view_get_selected_ids (_tmp0_, &_tmp1_);
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids_length1 = _tmp1_;
+#line 103 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _ids_size_ = ids_length1;
+#line 104 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = plugins_manifest_widget_mediator_get_about_button (self);
+#line 104 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = _tmp3_;
+#line 104 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), ids_length1 == 1);
+#line 98 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = (_vala_array_free (ids, ids_length1, (GDestroyNotify) g_free), NULL);
+#line 774 "ManifestWidget.c"
+}
+
+
+GtkWidget* plugins_manifest_widget_mediator_get_widget (PluginsManifestWidgetMediator* self) {
+ GtkWidget* result;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self), NULL);
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->builder;
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "plugin-manifest");
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_widget_get_type ()) ? ((GtkWidget*) _tmp1_) : NULL;
+#line 12 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 792 "ManifestWidget.c"
+}
+
+
+static GtkButton* plugins_manifest_widget_mediator_get_about_button (PluginsManifestWidgetMediator* self) {
+ GtkButton* result;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self), NULL);
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->builder;
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "about-plugin-button");
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_button_get_type ()) ? ((GtkButton*) _tmp1_) : NULL;
+#line 18 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 810 "ManifestWidget.c"
+}
+
+
+static GtkScrolledWindow* plugins_manifest_widget_mediator_get_list_bin (PluginsManifestWidgetMediator* self) {
+ GtkScrolledWindow* result;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_WIDGET_MEDIATOR (self), NULL);
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->builder;
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "plugin-list-scrolled-window");
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_scrolled_window_get_type ()) ? ((GtkScrolledWindow*) _tmp1_) : NULL;
+#line 24 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 828 "ManifestWidget.c"
+}
+
+
+static void plugins_value_manifest_widget_mediator_init (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 835 "ManifestWidget.c"
+}
+
+
+static void plugins_value_manifest_widget_mediator_free_value (GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_unref (value->data[0].v_pointer);
+#line 844 "ManifestWidget.c"
+ }
+}
+
+
+static void plugins_value_manifest_widget_mediator_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (src_value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ dest_value->data[0].v_pointer = plugins_manifest_widget_mediator_ref (src_value->data[0].v_pointer);
+#line 854 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 858 "ManifestWidget.c"
+ }
+}
+
+
+static gpointer plugins_value_manifest_widget_mediator_peek_pointer (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return value->data[0].v_pointer;
+#line 866 "ManifestWidget.c"
+}
+
+
+static gchar* plugins_value_manifest_widget_mediator_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (collect_values[0].v_pointer) {
+#line 873 "ManifestWidget.c"
+ PluginsManifestWidgetMediator* object;
+ object = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 880 "ManifestWidget.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 884 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = plugins_manifest_widget_mediator_ref (object);
+#line 888 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 892 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return NULL;
+#line 896 "ManifestWidget.c"
+}
+
+
+static gchar* plugins_value_manifest_widget_mediator_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsManifestWidgetMediator** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!object_p) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 907 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!value->data[0].v_pointer) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *object_p = NULL;
+#line 913 "ManifestWidget.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *object_p = value->data[0].v_pointer;
+#line 917 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *object_p = plugins_manifest_widget_mediator_ref (value->data[0].v_pointer);
+#line 921 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return NULL;
+#line 925 "ManifestWidget.c"
+}
+
+
+GParamSpec* plugins_param_spec_manifest_widget_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecManifestWidgetMediator* spec;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR), NULL);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return G_PARAM_SPEC (spec);
+#line 939 "ManifestWidget.c"
+}
+
+
+gpointer plugins_value_get_manifest_widget_mediator (const GValue* value) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR), NULL);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return value->data[0].v_pointer;
+#line 948 "ManifestWidget.c"
+}
+
+
+void plugins_value_set_manifest_widget_mediator (GValue* value, gpointer v_object) {
+ PluginsManifestWidgetMediator* old;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = v_object;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_ref (value->data[0].v_pointer);
+#line 968 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 972 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_unref (old);
+#line 978 "ManifestWidget.c"
+ }
+}
+
+
+void plugins_value_take_manifest_widget_mediator (GValue* value, gpointer v_object) {
+ PluginsManifestWidgetMediator* old;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ old = value->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (v_object) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = v_object;
+#line 997 "ManifestWidget.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ value->data[0].v_pointer = NULL;
+#line 1001 "ManifestWidget.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (old) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_unref (old);
+#line 1007 "ManifestWidget.c"
+ }
+}
+
+
+static void plugins_manifest_widget_mediator_class_init (PluginsManifestWidgetMediatorClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_widget_mediator_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ((PluginsManifestWidgetMediatorClass *) klass)->finalize = plugins_manifest_widget_mediator_finalize;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_type_class_add_private (klass, sizeof (PluginsManifestWidgetMediatorPrivate));
+#line 1019 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_instance_init (PluginsManifestWidgetMediator * self) {
+ GtkBuilder* _tmp0_ = NULL;
+ PluginsManifestListView* _tmp1_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv = PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_PRIVATE (self);
+#line 28 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 28 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv->builder = _tmp0_;
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = plugins_manifest_list_view_new ();
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp1_);
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv->list = _tmp1_;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->ref_count = 1;
+#line 1040 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_widget_mediator_finalize (PluginsManifestWidgetMediator* obj) {
+ PluginsManifestWidgetMediator * self;
+ GtkButton* _tmp0_ = NULL;
+ GtkButton* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ PluginsManifestListView* _tmp3_ = NULL;
+ GtkTreeSelection* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MANIFEST_WIDGET_MEDIATOR, PluginsManifestWidgetMediator);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_handlers_destroy (self);
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = plugins_manifest_widget_mediator_get_about_button (self);
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = _tmp0_;
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_parse_name ("clicked", gtk_button_get_type (), &_tmp2_, NULL, FALSE);
+#line 41 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _plugins_manifest_widget_mediator_on_about_gtk_button_clicked, self);
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = self->priv->list;
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_tree_view_get_type (), GtkTreeView));
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_parse_name ("changed", gtk_tree_selection_get_type (), &_tmp5_, NULL, FALSE);
+#line 42 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _plugins_manifest_widget_mediator_on_selection_changed_gtk_tree_selection_changed, self);
+#line 28 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 29 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (self->priv->list);
+#line 1076 "ManifestWidget.c"
+}
+
+
+GType plugins_manifest_widget_mediator_get_type (void) {
+ static volatile gsize plugins_manifest_widget_mediator_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_manifest_widget_mediator_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_manifest_widget_mediator_init, plugins_value_manifest_widget_mediator_free_value, plugins_value_manifest_widget_mediator_copy_value, plugins_value_manifest_widget_mediator_peek_pointer, "p", plugins_value_manifest_widget_mediator_collect_value, "p", plugins_value_manifest_widget_mediator_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsManifestWidgetMediatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_manifest_widget_mediator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsManifestWidgetMediator), 0, (GInstanceInitFunc) plugins_manifest_widget_mediator_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType plugins_manifest_widget_mediator_type_id;
+ plugins_manifest_widget_mediator_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsManifestWidgetMediator", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_manifest_widget_mediator_type_id__volatile, plugins_manifest_widget_mediator_type_id);
+ }
+ return plugins_manifest_widget_mediator_type_id__volatile;
+}
+
+
+gpointer plugins_manifest_widget_mediator_ref (gpointer instance) {
+ PluginsManifestWidgetMediator* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return instance;
+#line 1101 "ManifestWidget.c"
+}
+
+
+void plugins_manifest_widget_mediator_unref (gpointer instance) {
+ PluginsManifestWidgetMediator* self;
+ self = instance;
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ PLUGINS_MANIFEST_WIDGET_MEDIATOR_GET_CLASS (self)->finalize (self);
+#line 9 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1114 "ManifestWidget.c"
+ }
+}
+
+
+static GType plugins_manifest_list_view_column_get_type (void) {
+ static volatile gsize plugins_manifest_list_view_column_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_manifest_list_view_column_type_id__volatile)) {
+ static const GEnumValue values[] = {{PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED", "enabled"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE", "can-enable"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON", "icon"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME", "name"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID", "id"}, {PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS, "PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
+ GType plugins_manifest_list_view_column_type_id;
+ plugins_manifest_list_view_column_type_id = g_enum_register_static ("PluginsManifestListViewColumn", values);
+ g_once_init_leave (&plugins_manifest_list_view_column_type_id__volatile, plugins_manifest_list_view_column_type_id);
+ }
+ return plugins_manifest_list_view_column_type_id__volatile;
+}
+
+
+static gint _plugins_compare_extension_point_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = plugins_compare_extension_point_names (a, b);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1136 "ManifestWidget.c"
+}
+
+
+static gint _plugins_compare_pluggable_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = plugins_compare_pluggable_names (a, b);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1145 "ManifestWidget.c"
+}
+
+
+PluginsManifestListView* plugins_manifest_list_view_construct (GType object_type) {
+ PluginsManifestListView * self = NULL;
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkCellRendererToggle* checkbox_renderer = NULL;
+ GtkCellRendererToggle* _tmp1_ = NULL;
+ GtkCellRendererToggle* _tmp2_ = NULL;
+ GtkCellRendererToggle* _tmp3_ = NULL;
+ GtkCellRendererPixbuf* icon_renderer = NULL;
+ GtkCellRendererPixbuf* _tmp4_ = NULL;
+ GtkCellRendererPixbuf* _tmp5_ = NULL;
+ GtkCellRendererPixbuf* _tmp6_ = NULL;
+ GtkCellRendererPixbuf* _tmp7_ = NULL;
+ GtkCellRendererText* text_renderer = NULL;
+ GtkCellRendererText* _tmp8_ = NULL;
+ GtkTreeViewColumn* column = NULL;
+ GtkTreeViewColumn* _tmp9_ = NULL;
+ GtkTreeViewColumn* _tmp10_ = NULL;
+ GtkTreeViewColumn* _tmp11_ = NULL;
+ GtkCellRendererToggle* _tmp12_ = NULL;
+ GtkTreeViewColumn* _tmp13_ = NULL;
+ GtkCellRendererPixbuf* _tmp14_ = NULL;
+ GtkTreeViewColumn* _tmp15_ = NULL;
+ GtkCellRendererText* _tmp16_ = NULL;
+ GtkTreeViewColumn* _tmp17_ = NULL;
+ GtkCellRendererToggle* _tmp18_ = NULL;
+ GtkTreeViewColumn* _tmp19_ = NULL;
+ GtkCellRendererToggle* _tmp20_ = NULL;
+ GtkTreeViewColumn* _tmp21_ = NULL;
+ GtkCellRendererPixbuf* _tmp22_ = NULL;
+ GtkTreeViewColumn* _tmp23_ = NULL;
+ GtkCellRendererText* _tmp24_ = NULL;
+ GtkTreeViewColumn* _tmp25_ = NULL;
+ GtkTreeSelection* _tmp26_ = NULL;
+ GtkIconTheme* icon_theme = NULL;
+ GtkIconTheme* _tmp27_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = (PluginsManifestListView*) g_object_new (object_type, NULL);
+#line 131 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->store;
+#line 131 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_model (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 133 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = (GtkCellRendererToggle*) gtk_cell_renderer_toggle_new ();
+#line 133 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp1_);
+#line 133 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ checkbox_renderer = _tmp1_;
+#line 134 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = checkbox_renderer;
+#line 134 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_renderer_toggle_set_radio (_tmp2_, FALSE);
+#line 135 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = checkbox_renderer;
+#line 135 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_renderer_toggle_set_activatable (_tmp3_, TRUE);
+#line 137 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+#line 137 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp4_);
+#line 137 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon_renderer = _tmp4_;
+#line 138 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = icon_renderer;
+#line 138 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_set (_tmp5_, "stock-size", (guint) GTK_ICON_SIZE_MENU, NULL);
+#line 139 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = icon_renderer;
+#line 139 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_cell_renderer_get_type (), GtkCellRenderer), "xpad", (guint) PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING, NULL);
+#line 140 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = icon_renderer;
+#line 140 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_cell_renderer_get_type (), GtkCellRenderer), "ypad", (guint) PLUGINS_MANIFEST_LIST_VIEW_ICON_Y_PADDING, NULL);
+#line 142 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 142 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp8_);
+#line 142 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ text_renderer = _tmp8_;
+#line 144 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = gtk_tree_view_column_new ();
+#line 144 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_object_ref_sink (_tmp9_);
+#line 144 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ column = _tmp9_;
+#line 145 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = column;
+#line 145 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_column_set_sizing (_tmp10_, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+#line 146 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = column;
+#line 146 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = checkbox_renderer;
+#line 146 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_cell_renderer_get_type (), GtkCellRenderer), FALSE);
+#line 147 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp13_ = column;
+#line 147 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp14_ = icon_renderer;
+#line 147 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_cell_renderer_get_type (), GtkCellRenderer), FALSE);
+#line 148 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp15_ = column;
+#line 148 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = text_renderer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_pack_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 150 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp17_ = column;
+#line 150 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp18_ = checkbox_renderer;
+#line 150 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_cell_renderer_get_type (), GtkCellRenderer), "active", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED);
+#line 151 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19_ = column;
+#line 151 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20_ = checkbox_renderer;
+#line 151 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_cell_renderer_get_type (), GtkCellRenderer), "visible", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE);
+#line 152 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp21_ = column;
+#line 152 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp22_ = icon_renderer;
+#line 152 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_cell_renderer_get_type (), GtkCellRenderer), "pixbuf", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON);
+#line 153 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp23_ = column;
+#line 153 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp24_ = text_renderer;
+#line 153 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", (gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME);
+#line 155 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp25_ = column;
+#line 155 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_append_column (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp25_);
+#line 157 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_headers_visible (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 158 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_enable_search (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 159 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_rules_hint (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), TRUE);
+#line 160 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_show_expanders (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), TRUE);
+#line 161 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_reorderable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 162 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_enable_tree_lines (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 163 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_set_grid_lines (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), GTK_TREE_VIEW_GRID_LINES_NONE);
+#line 164 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 164 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_selection_set_mode (_tmp26_, GTK_SELECTION_BROWSE);
+#line 166 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp27_ = resources_get_icon_theme_engine ();
+#line 166 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon_theme = _tmp27_;
+#line 1307 "ManifestWidget.c"
+ {
+ GeeIterator* _extension_point_it = NULL;
+ GeeCollection* _tmp28_ = NULL;
+ GeeCollection* _tmp29_ = NULL;
+ GeeIterator* _tmp30_ = NULL;
+ GeeIterator* _tmp31_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28_ = plugins_get_extension_points (_plugins_compare_extension_point_names_gcompare_data_func, NULL, NULL);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp29_ = _tmp28_;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp30_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp31_ = _tmp30_;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp29_);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _extension_point_it = _tmp31_;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ while (TRUE) {
+#line 1328 "ManifestWidget.c"
+ GeeIterator* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ PluginsExtensionPoint* extension_point = NULL;
+ GeeIterator* _tmp34_ = NULL;
+ gpointer _tmp35_ = NULL;
+ GtkTreeIter category_iter = {0};
+ GtkTreeStore* _tmp36_ = NULL;
+ GtkTreeIter _tmp37_ = {0};
+ GdkPixbuf* icon = NULL;
+ PluginsExtensionPoint* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ GtkTreeStore* _tmp59_ = NULL;
+ GtkTreeIter _tmp60_ = {0};
+ PluginsExtensionPoint* _tmp61_ = NULL;
+ const gchar* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+ GdkPixbuf* _tmp64_ = NULL;
+ GeeCollection* pluggables = NULL;
+ PluginsExtensionPoint* _tmp65_ = NULL;
+ GType _tmp66_ = 0UL;
+ GType _tmp67_ = 0UL;
+ GeeCollection* _tmp68_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp32_ = _extension_point_it;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33_ = gee_iterator_next (_tmp32_);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp33_) {
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ break;
+#line 1360 "ManifestWidget.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp34_ = _extension_point_it;
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp35_ = gee_iterator_get (_tmp34_);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ extension_point = (PluginsExtensionPoint*) _tmp35_;
+#line 172 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp36_ = self->priv->store;
+#line 172 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_append (_tmp36_, &_tmp37_, NULL);
+#line 172 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ category_iter = _tmp37_;
+#line 174 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon = NULL;
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp38_ = extension_point;
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp39_ = plugins_extension_point_get_icon_name (_tmp38_);
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp40_ = _tmp39_;
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp40_ != NULL) {
+#line 1384 "ManifestWidget.c"
+ GtkIconInfo* icon_info = NULL;
+ GtkIconTheme* _tmp41_ = NULL;
+ PluginsExtensionPoint* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ GThemedIcon* _tmp45_ = NULL;
+ GThemedIcon* _tmp46_ = NULL;
+ GtkIconInfo* _tmp47_ = NULL;
+ GtkIconInfo* _tmp48_ = NULL;
+ GtkIconInfo* _tmp49_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp41_ = icon_theme;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp42_ = extension_point;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp43_ = plugins_extension_point_get_icon_name (_tmp42_);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp44_ = _tmp43_;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp45_ = (GThemedIcon*) g_themed_icon_new (_tmp44_);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp46_ = _tmp45_;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp47_ = gtk_icon_theme_lookup_by_gicon (_tmp41_, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, G_TYPE_ICON, GIcon), PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE, 0);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp48_ = _tmp47_;
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp46_);
+#line 176 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon_info = _tmp48_;
+#line 178 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp49_ = icon_info;
+#line 178 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp49_ != NULL) {
+#line 1419 "ManifestWidget.c"
+ {
+ GdkPixbuf* _tmp50_ = NULL;
+ GtkIconInfo* _tmp51_ = NULL;
+ GdkPixbuf* _tmp52_ = NULL;
+ GdkPixbuf* _tmp53_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp51_ = icon_info;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp52_ = gtk_icon_info_load_icon (_tmp51_, &_inner_error_);
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp50_ = _tmp52_;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1433 "ManifestWidget.c"
+ goto __catch33_g_error;
+ }
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp53_ = _tmp50_;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp50_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 180 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon = _tmp53_;
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp50_);
+#line 1446 "ManifestWidget.c"
+ }
+ goto __finally33;
+ __catch33_g_error:
+ {
+ GError* err = NULL;
+ PluginsExtensionPoint* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ const gchar* _tmp56_ = NULL;
+ GError* _tmp57_ = NULL;
+ const gchar* _tmp58_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ err = _inner_error_;
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _inner_error_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp54_ = extension_point;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp55_ = plugins_extension_point_get_icon_name (_tmp54_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp56_ = _tmp55_;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp57_ = err;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp58_ = _tmp57_->message;
+#line 182 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_warning ("ManifestWidget.vala:182: Unable to load icon %s: %s", _tmp56_, _tmp58_);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_error_free0 (err);
+#line 1475 "ManifestWidget.c"
+ }
+ __finally33:
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_icon_info_free0 (icon_info);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _plugins_extension_point_unref0 (extension_point);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_extension_point_it);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_theme);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (column);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (text_renderer);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_renderer);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (checkbox_renderer);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_clear_error (&_inner_error_);
+#line 179 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return NULL;
+#line 1504 "ManifestWidget.c"
+ }
+ }
+#line 175 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_icon_info_free0 (icon_info);
+#line 1509 "ManifestWidget.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp59_ = self->priv->store;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp60_ = category_iter;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp61_ = extension_point;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp62_ = plugins_extension_point_get_name (_tmp61_);
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp63_ = _tmp62_;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp64_ = icon;
+#line 187 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_set (_tmp59_, &_tmp60_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME, _tmp63_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE, FALSE, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON, _tmp64_, -1);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp65_ = extension_point;
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp66_ = plugins_extension_point_get_pluggable_type (_tmp65_);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp67_ = _tmp66_;
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp68_ = plugins_get_pluggables_for_type (_tmp67_, _plugins_compare_pluggable_names_gcompare_data_func, NULL, NULL, TRUE);
+#line 190 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ pluggables = _tmp68_;
+#line 1535 "ManifestWidget.c"
+ {
+ GeeIterator* _pluggable_it = NULL;
+ GeeCollection* _tmp69_ = NULL;
+ GeeIterator* _tmp70_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp69_ = pluggables;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp70_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _pluggable_it = _tmp70_;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ while (TRUE) {
+#line 1548 "ManifestWidget.c"
+ GeeIterator* _tmp71_ = NULL;
+ gboolean _tmp72_ = FALSE;
+ SpitPluggable* pluggable = NULL;
+ GeeIterator* _tmp73_ = NULL;
+ gpointer _tmp74_ = NULL;
+ gboolean enabled = FALSE;
+ SpitPluggable* _tmp75_ = NULL;
+ const gchar* _tmp76_ = NULL;
+ gboolean _tmp77_ = FALSE;
+ gboolean _tmp78_ = FALSE;
+ SpitPluggableInfo info = {0};
+ SpitPluggable* _tmp79_ = NULL;
+ GdkPixbuf* _tmp80_ = NULL;
+ gboolean _tmp81_ = FALSE;
+ SpitPluggableInfo _tmp82_ = {0};
+ GdkPixbuf** _tmp83_ = NULL;
+ gint _tmp83__length1 = 0;
+ GdkPixbuf* _tmp91_ = NULL;
+ GtkTreeIter plugin_iter = {0};
+ GtkTreeStore* _tmp92_ = NULL;
+ GtkTreeIter _tmp93_ = {0};
+ GtkTreeIter _tmp94_ = {0};
+ GtkTreeStore* _tmp95_ = NULL;
+ GtkTreeIter _tmp96_ = {0};
+ gboolean _tmp97_ = FALSE;
+ SpitPluggable* _tmp98_ = NULL;
+ const gchar* _tmp99_ = NULL;
+ SpitPluggable* _tmp100_ = NULL;
+ const gchar* _tmp101_ = NULL;
+ GdkPixbuf* _tmp102_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp71_ = _pluggable_it;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp72_ = gee_iterator_next (_tmp71_);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp72_) {
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ break;
+#line 1587 "ManifestWidget.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp73_ = _pluggable_it;
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp74_ = gee_iterator_get (_tmp73_);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ pluggable = (SpitPluggable*) _tmp74_;
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp75_ = pluggable;
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp76_ = spit_pluggable_get_id (_tmp75_);
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp78_ = plugins_get_pluggable_enabled (_tmp76_, &_tmp77_);
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ enabled = _tmp77_;
+#line 194 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp78_) {
+#line 195 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (pluggable);
+#line 195 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ continue;
+#line 1609 "ManifestWidget.c"
+ }
+#line 197 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ memset (&info, 0, sizeof (SpitPluggableInfo));
+#line 198 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp79_ = pluggable;
+#line 198 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_get_info (_tmp79_, &info);
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp82_ = info;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp83_ = _tmp82_.icons;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp83__length1 = _tmp82_.icons_length1;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp83_ != NULL) {
+#line 1625 "ManifestWidget.c"
+ SpitPluggableInfo _tmp84_ = {0};
+ GdkPixbuf** _tmp85_ = NULL;
+ gint _tmp85__length1 = 0;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp84_ = info;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp85_ = _tmp84_.icons;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp85__length1 = _tmp84_.icons_length1;
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp81_ = _tmp85__length1 > 0;
+#line 1637 "ManifestWidget.c"
+ } else {
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp81_ = FALSE;
+#line 1641 "ManifestWidget.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp81_) {
+#line 1645 "ManifestWidget.c"
+ SpitPluggableInfo _tmp86_ = {0};
+ GdkPixbuf** _tmp87_ = NULL;
+ gint _tmp87__length1 = 0;
+ GdkPixbuf* _tmp88_ = NULL;
+ GdkPixbuf* _tmp89_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp86_ = info;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp87_ = _tmp86_.icons;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp87__length1 = _tmp86_.icons_length1;
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp88_ = _tmp87_[0];
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp89_ = _g_object_ref0 (_tmp88_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp80_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp80_ = _tmp89_;
+#line 1665 "ManifestWidget.c"
+ } else {
+ GdkPixbuf* _tmp90_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp90_ = resources_get_icon (RESOURCES_ICON_GENERIC_PLUGIN, PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE);
+#line 202 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp80_);
+#line 202 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp80_ = _tmp90_;
+#line 1674 "ManifestWidget.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp91_ = _g_object_ref0 (_tmp80_);
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 200 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ icon = _tmp91_;
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp92_ = self->priv->store;
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp93_ = category_iter;
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_append (_tmp92_, &_tmp94_, &_tmp93_);
+#line 205 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugin_iter = _tmp94_;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp95_ = self->priv->store;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp96_ = plugin_iter;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp97_ = enabled;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp98_ = pluggable;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp99_ = spit_pluggable_get_pluggable_name (_tmp98_);
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp100_ = pluggable;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp101_ = spit_pluggable_get_id (_tmp100_);
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp102_ = icon;
+#line 207 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_set (_tmp95_, &_tmp96_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED, _tmp97_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_NAME, _tmp99_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID, _tmp101_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_CAN_ENABLE, TRUE, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ICON, _tmp102_, -1);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_tmp80_);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ spit_pluggable_info_destroy (&info);
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (pluggable);
+#line 1714 "ManifestWidget.c"
+ }
+#line 192 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_pluggable_it);
+#line 1718 "ManifestWidget.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (pluggables);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon);
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _plugins_extension_point_unref0 (extension_point);
+#line 1726 "ManifestWidget.c"
+ }
+#line 170 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (_extension_point_it);
+#line 1730 "ManifestWidget.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_view_expand_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_theme);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (column);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (text_renderer);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (icon_renderer);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (checkbox_renderer);
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self;
+#line 1746 "ManifestWidget.c"
+}
+
+
+PluginsManifestListView* plugins_manifest_list_view_new (void) {
+#line 130 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return plugins_manifest_list_view_construct (PLUGINS_TYPE_MANIFEST_LIST_VIEW);
+#line 1753 "ManifestWidget.c"
+}
+
+
+static gpointer _gtk_tree_path_copy0 (gpointer self) {
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return self ? gtk_tree_path_copy (self) : NULL;
+#line 1760 "ManifestWidget.c"
+}
+
+
+static void _vala_array_add50 (gchar*** array, int* length, int* size, gchar* value) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if ((*length) == (*size)) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 1771 "ManifestWidget.c"
+ }
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[(*length)++] = value;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (*array)[*length] = NULL;
+#line 1777 "ManifestWidget.c"
+}
+
+
+static void _gtk_tree_path_free0_ (gpointer var) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ (var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL));
+#line 1784 "ManifestWidget.c"
+}
+
+
+static void _g_list_free__gtk_tree_path_free0_ (GList* self) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_list_foreach (self, (GFunc) _gtk_tree_path_free0_, NULL);
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_list_free (self);
+#line 1793 "ManifestWidget.c"
+}
+
+
+gchar** plugins_manifest_list_view_get_selected_ids (PluginsManifestListView* self, int* result_length1) {
+ gchar** result = NULL;
+ gchar** ids = NULL;
+ gchar** _tmp0_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ GList* selected = NULL;
+ GtkTreeSelection* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ GList* _tmp3_ = NULL;
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+#line 215 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_LIST_VIEW (self), NULL);
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids = _tmp0_;
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ids_length1 = 0;
+#line 216 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _ids_size_ = ids_length1;
+#line 218 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 218 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = gtk_tree_selection_get_selected_rows (_tmp1_, NULL);
+#line 218 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ selected = _tmp2_;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = selected;
+#line 1827 "ManifestWidget.c"
+ {
+ GList* path_collection = NULL;
+ GList* path_it = NULL;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ path_collection = _tmp3_;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ for (path_it = path_collection; path_it != NULL; path_it = path_it->next) {
+#line 1835 "ManifestWidget.c"
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreePath* path = NULL;
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = _gtk_tree_path_copy0 ((GtkTreePath*) path_it->data);
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ path = _tmp4_;
+#line 1842 "ManifestWidget.c"
+ {
+ GtkTreeIter iter = {0};
+ gchar* id = NULL;
+ GtkTreePath* _tmp5_ = NULL;
+ GtkTreeIter _tmp6_ = {0};
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = path;
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = plugins_manifest_list_view_get_id_at_path (self, _tmp5_, &_tmp6_);
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ iter = _tmp6_;
+#line 221 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ id = _tmp7_;
+#line 222 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = id;
+#line 222 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp8_ != NULL) {
+#line 1862 "ManifestWidget.c"
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = ids;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9__length1 = ids_length1;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = id;
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 223 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _vala_array_add50 (&ids, &ids_length1, &_ids_size_, _tmp11_);
+#line 1877 "ManifestWidget.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 219 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 1883 "ManifestWidget.c"
+ }
+ }
+ }
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = ids;
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12__length1 = ids_length1;
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (result_length1) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *result_length1 = _tmp12__length1;
+#line 1895 "ManifestWidget.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp12_;
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ __g_list_free__gtk_tree_path_free0_0 (selected);
+#line 226 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1903 "ManifestWidget.c"
+}
+
+
+static gchar* plugins_manifest_list_view_get_id_at_path (PluginsManifestListView* self, GtkTreePath* path, GtkTreeIter* iter) {
+ GtkTreeIter _vala_iter = {0};
+ gchar* result = NULL;
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+ GtkTreeIter _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+ const gchar* id = NULL;
+ GtkTreeStore* _tmp4_ = NULL;
+ GtkTreeIter _tmp5_ = {0};
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (PLUGINS_IS_MANIFEST_LIST_VIEW (self), NULL);
+#line 229 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = self->priv->store;
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = path;
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = gtk_tree_model_get_iter (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp2_, _tmp1_);
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _vala_iter = _tmp2_;
+#line 230 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp3_) {
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = NULL;
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (iter) {
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *iter = _vala_iter;
+#line 1939 "ManifestWidget.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1943 "ManifestWidget.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp4_ = self->priv->store;
+#line 234 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp5_ = _vala_iter;
+#line 234 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_model_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp5_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ID, &id, -1);
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp6_ = id;
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp7_;
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (iter) {
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ *iter = _vala_iter;
+#line 1961 "ManifestWidget.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 1965 "ManifestWidget.c"
+}
+
+
+static gboolean plugins_manifest_list_view_real_button_press_event (GtkWidget* base, GdkEventButton* event) {
+ PluginsManifestListView * self;
+ gboolean result = FALSE;
+ GtkTreePath* path = NULL;
+ GtkTreeViewColumn* col = NULL;
+ gint cellx = 0;
+ gint celly = 0;
+ GdkEventButton* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ GdkEventButton* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreeViewColumn* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ GtkTreeViewColumn* _tmp9_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ gint _tmp13_ = 0;
+ GtkTreeIter iter = {0};
+ gchar* id = NULL;
+ GtkTreePath* _tmp17_ = NULL;
+ GtkTreeIter _tmp18_ = {0};
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gboolean enabled = FALSE;
+ const gchar* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ gboolean _tmp28_ = FALSE;
+ const gchar* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ GtkTreeStore* _tmp31_ = NULL;
+ GtkTreeIter _tmp32_ = {0};
+ gboolean _tmp33_ = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView);
+#line 247 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = event;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp1_ = _tmp0_->x;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp2_ = event;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp3_ = _tmp2_->y;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp8_ = gtk_tree_view_get_path_at_pos (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), (gint) _tmp1_, (gint) _tmp3_, &_tmp4_, &_tmp5_, &_tmp6_, &_tmp7_);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ path = _tmp4_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp9_ = _g_object_ref0 (_tmp5_);
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ col = _tmp9_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ cellx = _tmp6_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ celly = _tmp7_;
+#line 252 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp8_) {
+#line 2034 "ManifestWidget.c"
+ GdkEventButton* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp10_ = event;
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp11_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp10_);
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp11_;
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 254 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2049 "ManifestWidget.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp13_ = cellx;
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp13_ < (PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE + PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING)) {
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = TRUE;
+#line 2057 "ManifestWidget.c"
+ } else {
+ gint _tmp14_ = 0;
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp14_ = cellx;
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp12_ = _tmp14_ > (2 * (PLUGINS_MANIFEST_LIST_VIEW_ICON_X_PADDING + PLUGINS_MANIFEST_LIST_VIEW_ICON_SIZE));
+#line 2064 "ManifestWidget.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp12_) {
+#line 2068 "ManifestWidget.c"
+ GdkEventButton* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp15_ = event;
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp16_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp15_);
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp16_;
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 260 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2083 "ManifestWidget.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp17_ = path;
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp19_ = plugins_manifest_list_view_get_id_at_path (self, _tmp17_, &_tmp18_);
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ iter = _tmp18_;
+#line 263 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ id = _tmp19_;
+#line 264 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp20_ = id;
+#line 264 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (_tmp20_ == NULL) {
+#line 2097 "ManifestWidget.c"
+ GdkEventButton* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp21_ = event;
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp22_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp21_);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp22_;
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 265 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2114 "ManifestWidget.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp23_ = id;
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp25_ = plugins_get_pluggable_enabled (_tmp23_, &_tmp24_);
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ enabled = _tmp24_;
+#line 268 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ if (!_tmp25_) {
+#line 2124 "ManifestWidget.c"
+ GdkEventButton* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp26_ = event;
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp27_ = GTK_WIDGET_CLASS (plugins_manifest_list_view_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp26_);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = _tmp27_;
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 269 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2141 "ManifestWidget.c"
+ }
+#line 272 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp28_ = enabled;
+#line 272 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ enabled = !_tmp28_;
+#line 273 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp29_ = id;
+#line 273 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp30_ = enabled;
+#line 273 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_set_pluggable_enabled (_tmp29_, _tmp30_);
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp31_ = self->priv->store;
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp32_ = iter;
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp33_ = enabled;
+#line 275 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ gtk_tree_store_set (_tmp31_, &_tmp32_, PLUGINS_MANIFEST_LIST_VIEW_COLUMN_ENABLED, _tmp33_, -1);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ result = TRUE;
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_free0 (id);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (col);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _gtk_tree_path_free0 (path);
+#line 277 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ return result;
+#line 2171 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_list_view_class_init (PluginsManifestListViewClass * klass) {
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ plugins_manifest_list_view_parent_class = g_type_class_peek_parent (klass);
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ g_type_class_add_private (klass, sizeof (PluginsManifestListViewPrivate));
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ ((GtkWidgetClass *) klass)->button_press_event = plugins_manifest_list_view_real_button_press_event;
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ G_OBJECT_CLASS (klass)->finalize = plugins_manifest_list_view_finalize;
+#line 2184 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_list_view_instance_init (PluginsManifestListView * self) {
+ GtkTreeStore* _tmp0_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv = PLUGINS_MANIFEST_LIST_VIEW_GET_PRIVATE (self);
+#line 122 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _tmp0_ = gtk_tree_store_new ((gint) PLUGINS_MANIFEST_LIST_VIEW_COLUMN_N_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING);
+#line 122 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self->priv->store = _tmp0_;
+#line 2196 "ManifestWidget.c"
+}
+
+
+static void plugins_manifest_list_view_finalize (GObject* obj) {
+ PluginsManifestListView * self;
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MANIFEST_LIST_VIEW, PluginsManifestListView);
+#line 122 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ _g_object_unref0 (self->priv->store);
+#line 108 "/home/jens/Source/shotwell/src/plugins/ManifestWidget.vala"
+ G_OBJECT_CLASS (plugins_manifest_list_view_parent_class)->finalize (obj);
+#line 2208 "ManifestWidget.c"
+}
+
+
+GType plugins_manifest_list_view_get_type (void) {
+ static volatile gsize plugins_manifest_list_view_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_manifest_list_view_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsManifestListViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_manifest_list_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsManifestListView), 0, (GInstanceInitFunc) plugins_manifest_list_view_instance_init, NULL };
+ GType plugins_manifest_list_view_type_id;
+ plugins_manifest_list_view_type_id = g_type_register_static (gtk_tree_view_get_type (), "PluginsManifestListView", &g_define_type_info, 0);
+ g_once_init_leave (&plugins_manifest_list_view_type_id__volatile, plugins_manifest_list_view_type_id);
+ }
+ return plugins_manifest_list_view_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/plugins/Plugins.c b/src/plugins/Plugins.c
new file mode 100644
index 0000000..0134c1f
--- /dev/null
+++ b/src/plugins/Plugins.c
@@ -0,0 +1,4420 @@
+/* Plugins.c generated by valac 0.32.1, the Vala compiler
+ * generated from Plugins.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gmodule.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define PLUGINS_TYPE_EXTENSION_POINT (plugins_extension_point_get_type ())
+#define PLUGINS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint))
+#define PLUGINS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+#define PLUGINS_IS_EXTENSION_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_IS_EXTENSION_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_EXTENSION_POINT))
+#define PLUGINS_EXTENSION_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointClass))
+
+typedef struct _PluginsExtensionPoint PluginsExtensionPoint;
+typedef struct _PluginsExtensionPointClass PluginsExtensionPointClass;
+typedef struct _PluginsExtensionPointPrivate PluginsExtensionPointPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _PluginsParamSpecExtensionPoint PluginsParamSpecExtensionPoint;
+
+#define PLUGINS_TYPE_MODULE_REP (plugins_module_rep_get_type ())
+#define PLUGINS_MODULE_REP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_MODULE_REP, PluginsModuleRep))
+#define PLUGINS_MODULE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_MODULE_REP, PluginsModuleRepClass))
+#define PLUGINS_IS_MODULE_REP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_MODULE_REP))
+#define PLUGINS_IS_MODULE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_MODULE_REP))
+#define PLUGINS_MODULE_REP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_MODULE_REP, PluginsModuleRepClass))
+
+typedef struct _PluginsModuleRep PluginsModuleRep;
+typedef struct _PluginsModuleRepClass PluginsModuleRepClass;
+typedef struct _PluginsModuleRepPrivate PluginsModuleRepPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_module_close0(var) ((var == NULL) ? NULL : (var = (g_module_close (var), NULL)))
+#define _plugins_module_rep_unref0(var) ((var == NULL) ? NULL : (var = (plugins_module_rep_unref (var), NULL)))
+typedef struct _PluginsParamSpecModuleRep PluginsParamSpecModuleRep;
+
+#define PLUGINS_TYPE_PLUGGABLE_REP (plugins_pluggable_rep_get_type ())
+#define PLUGINS_PLUGGABLE_REP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRep))
+#define PLUGINS_PLUGGABLE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepClass))
+#define PLUGINS_IS_PLUGGABLE_REP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_PLUGGABLE_REP))
+#define PLUGINS_IS_PLUGGABLE_REP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_PLUGGABLE_REP))
+#define PLUGINS_PLUGGABLE_REP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepClass))
+
+typedef struct _PluginsPluggableRep PluginsPluggableRep;
+typedef struct _PluginsPluggableRepClass PluginsPluggableRepClass;
+typedef struct _PluginsPluggableRepPrivate PluginsPluggableRepPrivate;
+
+#define TYPE_FUZZY_PROPERTY_STATE (fuzzy_property_state_get_type ())
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+typedef struct _PluginsParamSpecPluggableRep PluginsParamSpecPluggableRep;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define PLUGINS_TYPE_NOTIFIER (plugins_notifier_get_type ())
+#define PLUGINS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifier))
+#define PLUGINS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass))
+#define PLUGINS_IS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_NOTIFIER))
+#define PLUGINS_IS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_NOTIFIER))
+#define PLUGINS_NOTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass))
+
+typedef struct _PluginsNotifier PluginsNotifier;
+typedef struct _PluginsNotifierClass PluginsNotifierClass;
+typedef struct _PluginsNotifierPrivate PluginsNotifierPrivate;
+#define _plugins_notifier_unref0(var) ((var == NULL) ? NULL : (var = (plugins_notifier_unref (var), NULL)))
+typedef struct _PluginsParamSpecNotifier PluginsParamSpecNotifier;
+#define _plugins_extension_point_unref0(var) ((var == NULL) ? NULL : (var = (plugins_extension_point_unref (var), NULL)))
+#define _plugins_pluggable_rep_unref0(var) ((var == NULL) ? NULL : (var = (plugins_pluggable_rep_unref (var), NULL)))
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _PluginsExtensionPoint {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsExtensionPointPrivate * priv;
+};
+
+struct _PluginsExtensionPointClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsExtensionPoint *self);
+};
+
+struct _PluginsExtensionPointPrivate {
+ GType _pluggable_type;
+ gchar* _name;
+ gchar* _icon_name;
+ gchar** _core_ids;
+ gint _core_ids_length1;
+ gint __core_ids_size_;
+};
+
+struct _PluginsParamSpecExtensionPoint {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsModuleRep {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsModuleRepPrivate * priv;
+ GFile* file;
+ GModule* module;
+ SpitModule* spit_module;
+ gint spit_interface;
+ gchar* id;
+};
+
+struct _PluginsModuleRepClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsModuleRep *self);
+};
+
+struct _PluginsParamSpecModuleRep {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsPluggableRep {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsPluggableRepPrivate * priv;
+};
+
+struct _PluginsPluggableRepClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsPluggableRep *self);
+};
+
+struct _PluginsPluggableRepPrivate {
+ SpitPluggable* _pluggable;
+ gchar* _id;
+ gboolean _is_core;
+ gboolean _activated;
+ gboolean enabled;
+};
+
+typedef enum {
+ FUZZY_PROPERTY_STATE_ENABLED,
+ FUZZY_PROPERTY_STATE_DISABLED,
+ FUZZY_PROPERTY_STATE_UNKNOWN
+} FuzzyPropertyState;
+
+struct _PluginsParamSpecPluggableRep {
+ GParamSpec parent_instance;
+};
+
+struct _PluginsNotifier {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ PluginsNotifierPrivate * priv;
+};
+
+struct _PluginsNotifierClass {
+ GTypeClass parent_class;
+ void (*finalize) (PluginsNotifier *self);
+};
+
+struct _PluginsParamSpecNotifier {
+ GParamSpec parent_instance;
+};
+
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+
+static gpointer plugins_extension_point_parent_class = NULL;
+static gpointer plugins_module_rep_parent_class = NULL;
+static gpointer plugins_pluggable_rep_parent_class = NULL;
+extern GFile** plugins_search_dirs;
+extern gint plugins_search_dirs_length1;
+GFile** plugins_search_dirs = NULL;
+gint plugins_search_dirs_length1 = 0;
+static gint _plugins_search_dirs_size_ = 0;
+extern GeeHashMap* plugins_module_table;
+GeeHashMap* plugins_module_table = NULL;
+extern GeeHashMap* plugins_pluggable_table;
+GeeHashMap* plugins_pluggable_table = NULL;
+extern GeeHashMap* plugins_extension_points;
+GeeHashMap* plugins_extension_points = NULL;
+extern GeeHashSet* plugins_core_ids;
+GeeHashSet* plugins_core_ids = NULL;
+static gpointer plugins_notifier_parent_class = NULL;
+static PluginsNotifier* plugins_notifier_instance;
+static PluginsNotifier* plugins_notifier_instance = NULL;
+
+#define PLUGINS_MIN_SPIT_INTERFACE 0
+#define PLUGINS_MAX_SPIT_INTERFACE 0
+gpointer plugins_extension_point_ref (gpointer instance);
+void plugins_extension_point_unref (gpointer instance);
+GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_extension_point (GValue* value, gpointer v_object);
+void plugins_value_take_extension_point (GValue* value, gpointer v_object);
+gpointer plugins_value_get_extension_point (const GValue* value);
+GType plugins_extension_point_get_type (void) G_GNUC_CONST;
+#define PLUGINS_EXTENSION_POINT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPointPrivate))
+enum {
+ PLUGINS_EXTENSION_POINT_DUMMY_PROPERTY
+};
+PluginsExtensionPoint* plugins_extension_point_new (GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+PluginsExtensionPoint* plugins_extension_point_construct (GType object_type, GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+static void plugins_extension_point_set_pluggable_type (PluginsExtensionPoint* self, GType value);
+static void plugins_extension_point_set_name (PluginsExtensionPoint* self, const gchar* value);
+static void plugins_extension_point_set_icon_name (PluginsExtensionPoint* self, const gchar* value);
+static void plugins_extension_point_set_core_ids (PluginsExtensionPoint* self, gchar** value, int value_length1);
+GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self);
+const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self);
+const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self);
+gchar** plugins_extension_point_get_core_ids (PluginsExtensionPoint* self, int* result_length1);
+static gchar** _vala_array_dup18 (gchar** self, int length);
+static void plugins_extension_point_finalize (PluginsExtensionPoint* obj);
+gpointer plugins_module_rep_ref (gpointer instance);
+void plugins_module_rep_unref (gpointer instance);
+GParamSpec* plugins_param_spec_module_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_module_rep (GValue* value, gpointer v_object);
+void plugins_value_take_module_rep (GValue* value, gpointer v_object);
+gpointer plugins_value_get_module_rep (const GValue* value);
+GType plugins_module_rep_get_type (void) G_GNUC_CONST;
+enum {
+ PLUGINS_MODULE_REP_DUMMY_PROPERTY
+};
+static PluginsModuleRep* plugins_module_rep_new (GFile* file);
+static PluginsModuleRep* plugins_module_rep_construct (GType object_type, GFile* file);
+PluginsModuleRep* plugins_module_rep_open (GFile* file);
+static void plugins_module_rep_finalize (PluginsModuleRep* obj);
+gpointer plugins_pluggable_rep_ref (gpointer instance);
+void plugins_pluggable_rep_unref (gpointer instance);
+GParamSpec* plugins_param_spec_pluggable_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_pluggable_rep (GValue* value, gpointer v_object);
+void plugins_value_take_pluggable_rep (GValue* value, gpointer v_object);
+gpointer plugins_value_get_pluggable_rep (const GValue* value);
+GType plugins_pluggable_rep_get_type (void) G_GNUC_CONST;
+#define PLUGINS_PLUGGABLE_REP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRepPrivate))
+enum {
+ PLUGINS_PLUGGABLE_REP_DUMMY_PROPERTY
+};
+PluginsPluggableRep* plugins_pluggable_rep_new (SpitPluggable* pluggable);
+PluginsPluggableRep* plugins_pluggable_rep_construct (GType object_type, SpitPluggable* pluggable);
+static void plugins_pluggable_rep_set_pluggable (PluginsPluggableRep* self, SpitPluggable* value);
+static void plugins_pluggable_rep_set_id (PluginsPluggableRep* self, const gchar* value);
+void plugins_pluggable_rep_activate (PluginsPluggableRep* self);
+gboolean plugins_is_core_pluggable (SpitPluggable* pluggable);
+SpitPluggable* plugins_pluggable_rep_get_pluggable (PluginsPluggableRep* self);
+static void plugins_pluggable_rep_set_is_core (PluginsPluggableRep* self, gboolean value);
+GType fuzzy_property_state_get_type (void) G_GNUC_CONST;
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+FuzzyPropertyState configuration_facade_is_plugin_enabled (ConfigurationFacade* self, const gchar* id);
+const gchar* plugins_pluggable_rep_get_id (PluginsPluggableRep* self);
+gboolean plugins_pluggable_rep_get_is_core (PluginsPluggableRep* self);
+static void plugins_pluggable_rep_set_activated (PluginsPluggableRep* self, gboolean value);
+gboolean plugins_pluggable_rep_is_enabled (PluginsPluggableRep* self);
+gboolean plugins_pluggable_rep_set_enabled (PluginsPluggableRep* self, gboolean enabled);
+void configuration_facade_set_plugin_enabled (ConfigurationFacade* self, const gchar* id, gboolean enabled);
+gboolean plugins_pluggable_rep_get_activated (PluginsPluggableRep* self);
+static void plugins_pluggable_rep_finalize (PluginsPluggableRep* obj);
+void plugins_init (GError** error);
+GFile* app_dirs_get_user_plugins_dir (void);
+static void _vala_array_add47 (GFile*** array, int* length, int* size, GFile* value);
+GFile* app_dirs_get_system_plugins_dir (void);
+static void _vala_array_add48 (GFile*** array, int* length, int* size, GFile* value);
+void plugins_search_for_plugins (GFile* dir, GError** error);
+void plugins_terminate (void);
+gpointer plugins_notifier_ref (gpointer instance);
+void plugins_notifier_unref (gpointer instance);
+GParamSpec* plugins_param_spec_notifier (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_notifier (GValue* value, gpointer v_object);
+void plugins_value_take_notifier (GValue* value, gpointer v_object);
+gpointer plugins_value_get_notifier (const GValue* value);
+GType plugins_notifier_get_type (void) G_GNUC_CONST;
+enum {
+ PLUGINS_NOTIFIER_DUMMY_PROPERTY
+};
+static PluginsNotifier* plugins_notifier_new (void);
+static PluginsNotifier* plugins_notifier_construct (GType object_type);
+PluginsNotifier* plugins_notifier_get_instance (void);
+static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void plugins_notifier_finalize (PluginsNotifier* obj);
+void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+GeeCollection* plugins_get_pluggables (gboolean include_disabled);
+PluginsModuleRep* plugins_get_module_for_pluggable (SpitPluggable* needle);
+static SpitPluggable** _vala_array_dup19 (SpitPluggable** self, int length);
+gchar* plugins_get_pluggable_module_id (SpitPluggable* needle);
+GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled);
+gchar* plugins_get_pluggable_name (const gchar* id);
+gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info);
+gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled);
+void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled);
+GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable);
+gint plugins_compare_pluggable_names (void* a, void* b);
+gint plugins_compare_extension_point_names (void* a, void* b);
+gboolean plugins_is_shared_library (GFile* file);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
+void plugins_load_module (GFile* file);
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+const gchar* PLUGINS_SHARED_LIB_EXTS[2] = {"so", "la"};
+
+PluginsExtensionPoint* plugins_extension_point_construct (GType object_type, GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) {
+ PluginsExtensionPoint* self = NULL;
+ GType _tmp0_ = 0UL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsExtensionPoint*) g_type_create_instance (object_type);
+#line 26 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = pluggable_type;
+#line 26 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_pluggable_type (self, _tmp0_);
+#line 27 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = name;
+#line 27 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_name (self, _tmp1_);
+#line 28 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = icon_name;
+#line 28 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_icon_name (self, _tmp2_);
+#line 29 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = core_ids;
+#line 29 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__length1 = core_ids_length1;
+#line 29 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_set_core_ids (self, _tmp3_, _tmp3__length1);
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 374 "Plugins.c"
+}
+
+
+PluginsExtensionPoint* plugins_extension_point_new (GType pluggable_type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_extension_point_construct (PLUGINS_TYPE_EXTENSION_POINT, pluggable_type, name, icon_name, core_ids, core_ids_length1);
+#line 381 "Plugins.c"
+}
+
+
+GType plugins_extension_point_get_pluggable_type (PluginsExtensionPoint* self) {
+ GType result;
+ GType _tmp0_ = 0UL;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), 0UL);
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_pluggable_type;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 396 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_pluggable_type (PluginsExtensionPoint* self, GType value) {
+ GType _tmp0_ = 0UL;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 19 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_pluggable_type = _tmp0_;
+#line 408 "Plugins.c"
+}
+
+
+const gchar* plugins_extension_point_get_name (PluginsExtensionPoint* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_name;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 423 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_name (PluginsExtensionPoint* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_name);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_name = _tmp1_;
+#line 440 "Plugins.c"
+}
+
+
+const gchar* plugins_extension_point_get_icon_name (PluginsExtensionPoint* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_icon_name;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 455 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_icon_name (PluginsExtensionPoint* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_icon_name);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_icon_name = _tmp1_;
+#line 472 "Plugins.c"
+}
+
+
+gchar** plugins_extension_point_get_core_ids (PluginsExtensionPoint* self, int* result_length1) {
+ gchar** result;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_EXTENSION_POINT (self), NULL);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_core_ids;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__length1 = self->priv->_core_ids_length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = _tmp0_;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (result_length1) {
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *result_length1 = _tmp1__length1;
+#line 496 "Plugins.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 502 "Plugins.c"
+}
+
+
+static gchar** _vala_array_dup18 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (i = 0; i < length; i++) {
+#line 513 "Plugins.c"
+ gchar* _tmp0_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result[i] = _tmp0_;
+#line 519 "Plugins.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 523 "Plugins.c"
+}
+
+
+static void plugins_extension_point_set_core_ids (PluginsExtensionPoint* self, gchar** value, int value_length1) {
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_EXTENSION_POINT (self));
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__length1 = value_length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup18 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids = (_vala_array_free (self->priv->_core_ids, self->priv->_core_ids_length1, (GDestroyNotify) g_free), NULL);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids_length1 = _tmp1__length1;
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->__core_ids_size_ = self->priv->_core_ids_length1;
+#line 550 "Plugins.c"
+}
+
+
+static void plugins_value_extension_point_init (GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 557 "Plugins.c"
+}
+
+
+static void plugins_value_extension_point_free_value (GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_unref (value->data[0].v_pointer);
+#line 566 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_extension_point_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_extension_point_ref (src_value->data[0].v_pointer);
+#line 576 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 580 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_extension_point_peek_pointer (const GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 588 "Plugins.c"
+}
+
+
+static gchar* plugins_value_extension_point_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 595 "Plugins.c"
+ PluginsExtensionPoint* object;
+ object = collect_values[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 602 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 606 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_extension_point_ref (object);
+#line 610 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 614 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 618 "Plugins.c"
+}
+
+
+static gchar* plugins_value_extension_point_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsExtensionPoint** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 629 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 635 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 639 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_extension_point_ref (value->data[0].v_pointer);
+#line 643 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 647 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_extension_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecExtensionPoint* spec;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_EXTENSION_POINT), NULL);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 661 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_extension_point (const GValue* value) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT), NULL);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 670 "Plugins.c"
+}
+
+
+void plugins_value_set_extension_point (GValue* value, gpointer v_object) {
+ PluginsExtensionPoint* old;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_ref (value->data[0].v_pointer);
+#line 690 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 694 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_unref (old);
+#line 700 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_extension_point (GValue* value, gpointer v_object) {
+ PluginsExtensionPoint* old;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_EXTENSION_POINT));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 719 "Plugins.c"
+ } else {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 723 "Plugins.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_unref (old);
+#line 729 "Plugins.c"
+ }
+}
+
+
+static void plugins_extension_point_class_init (PluginsExtensionPointClass * klass) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_point_parent_class = g_type_class_peek_parent (klass);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsExtensionPointClass *) klass)->finalize = plugins_extension_point_finalize;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_class_add_private (klass, sizeof (PluginsExtensionPointPrivate));
+#line 741 "Plugins.c"
+}
+
+
+static void plugins_extension_point_instance_init (PluginsExtensionPoint * self) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv = PLUGINS_EXTENSION_POINT_GET_PRIVATE (self);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 750 "Plugins.c"
+}
+
+
+static void plugins_extension_point_finalize (PluginsExtensionPoint* obj) {
+ PluginsExtensionPoint * self;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 21 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_name);
+#line 22 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_icon_name);
+#line 23 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_core_ids = (_vala_array_free (self->priv->_core_ids, self->priv->_core_ids_length1, (GDestroyNotify) g_free), NULL);
+#line 766 "Plugins.c"
+}
+
+
+GType plugins_extension_point_get_type (void) {
+ static volatile gsize plugins_extension_point_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_extension_point_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_extension_point_init, plugins_value_extension_point_free_value, plugins_value_extension_point_copy_value, plugins_value_extension_point_peek_pointer, "p", plugins_value_extension_point_collect_value, "p", plugins_value_extension_point_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsExtensionPointClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_extension_point_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsExtensionPoint), 0, (GInstanceInitFunc) plugins_extension_point_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType plugins_extension_point_type_id;
+ plugins_extension_point_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsExtensionPoint", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_extension_point_type_id__volatile, plugins_extension_point_type_id);
+ }
+ return plugins_extension_point_type_id__volatile;
+}
+
+
+gpointer plugins_extension_point_ref (gpointer instance) {
+ PluginsExtensionPoint* self;
+ self = instance;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 791 "Plugins.c"
+}
+
+
+void plugins_extension_point_unref (gpointer instance) {
+ PluginsExtensionPoint* self;
+ self = instance;
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_EXTENSION_POINT_GET_CLASS (self)->finalize (self);
+#line 18 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 804 "Plugins.c"
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 812 "Plugins.c"
+}
+
+
+static PluginsModuleRep* plugins_module_rep_construct (GType object_type, GFile* file) {
+ PluginsModuleRep* self = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GModule* _tmp5_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsModuleRep*) g_type_create_instance (object_type);
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->file);
+#line 41 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->file = _tmp1_;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = file;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = g_module_open (_tmp4_, G_MODULE_BIND_LAZY);
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_module_close0 (self->module);
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->module = _tmp5_;
+#line 43 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp4_);
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 852 "Plugins.c"
+}
+
+
+static PluginsModuleRep* plugins_module_rep_new (GFile* file) {
+#line 40 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_module_rep_construct (PLUGINS_TYPE_MODULE_REP, file);
+#line 859 "Plugins.c"
+}
+
+
+static gpointer _plugins_module_rep_ref0 (gpointer self) {
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self ? plugins_module_rep_ref (self) : NULL;
+#line 866 "Plugins.c"
+}
+
+
+PluginsModuleRep* plugins_module_rep_open (GFile* file) {
+ PluginsModuleRep* result = NULL;
+ PluginsModuleRep* module_rep = NULL;
+ GFile* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ PluginsModuleRep* _tmp2_ = NULL;
+ PluginsModuleRep* _tmp3_ = NULL;
+ GModule* _tmp4_ = NULL;
+ PluginsModuleRep* _tmp6_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_module_rep_new (_tmp0_);
+#line 55 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = module_rep;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_->module;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ != NULL) {
+#line 893 "Plugins.c"
+ PluginsModuleRep* _tmp5_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = module_rep;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp5_;
+#line 899 "Plugins.c"
+ } else {
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = NULL;
+#line 903 "Plugins.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _plugins_module_rep_ref0 (_tmp2_);
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp6_;
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 57 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 913 "Plugins.c"
+}
+
+
+static void plugins_value_module_rep_init (GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 920 "Plugins.c"
+}
+
+
+static void plugins_value_module_rep_free_value (GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_unref (value->data[0].v_pointer);
+#line 929 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_module_rep_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_module_rep_ref (src_value->data[0].v_pointer);
+#line 939 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 943 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_module_rep_peek_pointer (const GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 951 "Plugins.c"
+}
+
+
+static gchar* plugins_value_module_rep_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 958 "Plugins.c"
+ PluginsModuleRep* object;
+ object = collect_values[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 965 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 969 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_module_rep_ref (object);
+#line 973 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 977 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 981 "Plugins.c"
+}
+
+
+static gchar* plugins_value_module_rep_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsModuleRep** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 992 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 998 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1002 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_module_rep_ref (value->data[0].v_pointer);
+#line 1006 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 1010 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_module_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecModuleRep* spec;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_MODULE_REP), NULL);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 1024 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_module_rep (const GValue* value) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP), NULL);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 1033 "Plugins.c"
+}
+
+
+void plugins_value_set_module_rep (GValue* value, gpointer v_object) {
+ PluginsModuleRep* old;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_ref (value->data[0].v_pointer);
+#line 1053 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1057 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_unref (old);
+#line 1063 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_module_rep (GValue* value, gpointer v_object) {
+ PluginsModuleRep* old;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_MODULE_REP));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 1082 "Plugins.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1086 "Plugins.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_unref (old);
+#line 1092 "Plugins.c"
+ }
+}
+
+
+static void plugins_module_rep_class_init (PluginsModuleRepClass * klass) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_rep_parent_class = g_type_class_peek_parent (klass);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsModuleRepClass *) klass)->finalize = plugins_module_rep_finalize;
+#line 1102 "Plugins.c"
+}
+
+
+static void plugins_module_rep_instance_init (PluginsModuleRep * self) {
+#line 36 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->spit_module = NULL;
+#line 37 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->spit_interface = SPIT_UNSUPPORTED_INTERFACE;
+#line 38 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->id = NULL;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 1115 "Plugins.c"
+}
+
+
+static void plugins_module_rep_finalize (PluginsModuleRep* obj) {
+ PluginsModuleRep * self;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_MODULE_REP, PluginsModuleRep);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 48 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->spit_module);
+#line 48 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->spit_module = NULL;
+#line 34 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->file);
+#line 35 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_module_close0 (self->module);
+#line 36 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->spit_module);
+#line 38 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->id);
+#line 1137 "Plugins.c"
+}
+
+
+GType plugins_module_rep_get_type (void) {
+ static volatile gsize plugins_module_rep_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_module_rep_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_module_rep_init, plugins_value_module_rep_free_value, plugins_value_module_rep_copy_value, plugins_value_module_rep_peek_pointer, "p", plugins_value_module_rep_collect_value, "p", plugins_value_module_rep_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsModuleRepClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_module_rep_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsModuleRep), 0, (GInstanceInitFunc) plugins_module_rep_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType plugins_module_rep_type_id;
+ plugins_module_rep_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsModuleRep", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_module_rep_type_id__volatile, plugins_module_rep_type_id);
+ }
+ return plugins_module_rep_type_id__volatile;
+}
+
+
+gpointer plugins_module_rep_ref (gpointer instance) {
+ PluginsModuleRep* self;
+ self = instance;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 1162 "Plugins.c"
+}
+
+
+void plugins_module_rep_unref (gpointer instance) {
+ PluginsModuleRep* self;
+ self = instance;
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_MODULE_REP_GET_CLASS (self)->finalize (self);
+#line 33 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1175 "Plugins.c"
+ }
+}
+
+
+PluginsPluggableRep* plugins_pluggable_rep_construct (GType object_type, SpitPluggable* pluggable) {
+ PluginsPluggableRep* self = NULL;
+ SpitPluggable* _tmp0_ = NULL;
+ SpitPluggable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL);
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsPluggableRep*) g_type_create_instance (object_type);
+#line 71 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = pluggable;
+#line 71 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_pluggable (self, _tmp0_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = pluggable;
+#line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = spit_pluggable_get_id (_tmp1_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_id (self, _tmp2_);
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 1201 "Plugins.c"
+}
+
+
+PluginsPluggableRep* plugins_pluggable_rep_new (SpitPluggable* pluggable) {
+#line 70 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_pluggable_rep_construct (PLUGINS_TYPE_PLUGGABLE_REP, pluggable);
+#line 1208 "Plugins.c"
+}
+
+
+void plugins_pluggable_rep_activate (PluginsPluggableRep* self) {
+ SpitPluggable* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ FuzzyPropertyState saved_state = 0;
+ ConfigFacade* _tmp2_ = NULL;
+ ConfigFacade* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ FuzzyPropertyState _tmp5_ = 0;
+ FuzzyPropertyState _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ SpitPluggable* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 75 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_pluggable;
+#line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_is_core_pluggable (_tmp0_);
+#line 78 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_is_core (self, _tmp1_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = config_facade_get_instance ();
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = self->priv->_id;
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = configuration_facade_is_plugin_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp4_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _tmp5_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp3_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ saved_state = _tmp6_;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = self->priv->_is_core;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp9_) {
+#line 1252 "Plugins.c"
+ FuzzyPropertyState _tmp10_ = 0;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = saved_state;
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp10_ != FUZZY_PROPERTY_STATE_DISABLED;
+#line 1258 "Plugins.c"
+ } else {
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = FALSE;
+#line 1262 "Plugins.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp8_) {
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = TRUE;
+#line 1268 "Plugins.c"
+ } else {
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = self->priv->_is_core;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp12_) {
+#line 1276 "Plugins.c"
+ FuzzyPropertyState _tmp13_ = 0;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = saved_state;
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp13_ == FUZZY_PROPERTY_STATE_ENABLED;
+#line 1282 "Plugins.c"
+ } else {
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = FALSE;
+#line 1286 "Plugins.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp11_;
+#line 1290 "Plugins.c"
+ }
+#line 81 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->enabled = _tmp7_;
+#line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = self->priv->_pluggable;
+#line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = self->priv->enabled;
+#line 85 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_pluggable_activation (_tmp14_, _tmp15_);
+#line 87 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_set_activated (self, TRUE);
+#line 1302 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_is_enabled (PluginsPluggableRep* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->enabled;
+#line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 91 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1317 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_set_enabled (PluginsPluggableRep* self, gboolean enabled) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ ConfigFacade* _tmp3_ = NULL;
+ ConfigFacade* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ SpitPluggable* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 95 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = enabled;
+#line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = self->priv->enabled;
+#line 96 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 97 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 97 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1344 "Plugins.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = enabled;
+#line 99 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->enabled = _tmp2_;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = config_facade_get_instance ();
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = self->priv->_id;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = enabled;
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ configuration_facade_set_plugin_enabled (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp5_, _tmp6_);
+#line 100 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp4_);
+#line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = self->priv->_pluggable;
+#line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = enabled;
+#line 101 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_pluggable_activation (_tmp7_, _tmp8_);
+#line 103 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 103 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1372 "Plugins.c"
+}
+
+
+SpitPluggable* plugins_pluggable_rep_get_pluggable (PluginsPluggableRep* self) {
+ SpitPluggable* result;
+ SpitPluggable* _tmp0_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), NULL);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_pluggable;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1387 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_pluggable (PluginsPluggableRep* self, SpitPluggable* value) {
+ SpitPluggable* _tmp0_ = NULL;
+ SpitPluggable* _tmp1_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->priv->_pluggable);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_pluggable = _tmp1_;
+#line 1404 "Plugins.c"
+}
+
+
+const gchar* plugins_pluggable_rep_get_id (PluginsPluggableRep* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), NULL);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_id;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1419 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_id (PluginsPluggableRep* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_id);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_id = _tmp1_;
+#line 1436 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_get_is_core (PluginsPluggableRep* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_is_core;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1451 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_is_core (PluginsPluggableRep* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_is_core = _tmp0_;
+#line 1463 "Plugins.c"
+}
+
+
+gboolean plugins_pluggable_rep_get_activated (PluginsPluggableRep* self) {
+ gboolean result;
+ gboolean _tmp0_ = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (PLUGINS_IS_PLUGGABLE_REP (self), FALSE);
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = self->priv->_activated;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp0_;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 1478 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_set_activated (PluginsPluggableRep* self, gboolean value) {
+ gboolean _tmp0_ = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (PLUGINS_IS_PLUGGABLE_REP (self));
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = value;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_activated = _tmp0_;
+#line 1490 "Plugins.c"
+}
+
+
+static void plugins_value_pluggable_rep_init (GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1497 "Plugins.c"
+}
+
+
+static void plugins_value_pluggable_rep_free_value (GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_unref (value->data[0].v_pointer);
+#line 1506 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_pluggable_rep_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_pluggable_rep_ref (src_value->data[0].v_pointer);
+#line 1516 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1520 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_pluggable_rep_peek_pointer (const GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 1528 "Plugins.c"
+}
+
+
+static gchar* plugins_value_pluggable_rep_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 1535 "Plugins.c"
+ PluginsPluggableRep* object;
+ object = collect_values[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1542 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1546 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_pluggable_rep_ref (object);
+#line 1550 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1554 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 1558 "Plugins.c"
+}
+
+
+static gchar* plugins_value_pluggable_rep_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsPluggableRep** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1569 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 1575 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1579 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_pluggable_rep_ref (value->data[0].v_pointer);
+#line 1583 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 1587 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_pluggable_rep (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecPluggableRep* spec;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_PLUGGABLE_REP), NULL);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 1601 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_pluggable_rep (const GValue* value) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP), NULL);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 1610 "Plugins.c"
+}
+
+
+void plugins_value_set_pluggable_rep (GValue* value, gpointer v_object) {
+ PluginsPluggableRep* old;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_ref (value->data[0].v_pointer);
+#line 1630 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1634 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_unref (old);
+#line 1640 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_pluggable_rep (GValue* value, gpointer v_object) {
+ PluginsPluggableRep* old;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_PLUGGABLE_REP));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 1659 "Plugins.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 1663 "Plugins.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_unref (old);
+#line 1669 "Plugins.c"
+ }
+}
+
+
+static void plugins_pluggable_rep_class_init (PluginsPluggableRepClass * klass) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_parent_class = g_type_class_peek_parent (klass);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsPluggableRepClass *) klass)->finalize = plugins_pluggable_rep_finalize;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_class_add_private (klass, sizeof (PluginsPluggableRepPrivate));
+#line 1681 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_instance_init (PluginsPluggableRep * self) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv = PLUGINS_PLUGGABLE_REP_GET_PRIVATE (self);
+#line 64 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_is_core = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->_activated = FALSE;
+#line 67 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->priv->enabled = FALSE;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 1696 "Plugins.c"
+}
+
+
+static void plugins_pluggable_rep_finalize (PluginsPluggableRep* obj) {
+ PluginsPluggableRep * self;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_PLUGGABLE_REP, PluginsPluggableRep);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 62 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (self->priv->_pluggable);
+#line 63 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (self->priv->_id);
+#line 1710 "Plugins.c"
+}
+
+
+GType plugins_pluggable_rep_get_type (void) {
+ static volatile gsize plugins_pluggable_rep_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_pluggable_rep_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_pluggable_rep_init, plugins_value_pluggable_rep_free_value, plugins_value_pluggable_rep_copy_value, plugins_value_pluggable_rep_peek_pointer, "p", plugins_value_pluggable_rep_collect_value, "p", plugins_value_pluggable_rep_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsPluggableRepClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_pluggable_rep_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsPluggableRep), 0, (GInstanceInitFunc) plugins_pluggable_rep_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType plugins_pluggable_rep_type_id;
+ plugins_pluggable_rep_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsPluggableRep", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_pluggable_rep_type_id__volatile, plugins_pluggable_rep_type_id);
+ }
+ return plugins_pluggable_rep_type_id__volatile;
+}
+
+
+gpointer plugins_pluggable_rep_ref (gpointer instance) {
+ PluginsPluggableRep* self;
+ self = instance;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 1735 "Plugins.c"
+}
+
+
+void plugins_pluggable_rep_unref (gpointer instance) {
+ PluginsPluggableRep* self;
+ self = instance;
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_PLUGGABLE_REP_GET_CLASS (self)->finalize (self);
+#line 61 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1748 "Plugins.c"
+ }
+}
+
+
+static void _vala_array_add47 (GFile*** array, int* length, int* size, GFile* value) {
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if ((*length) == (*size)) {
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 1760 "Plugins.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[(*length)++] = value;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[*length] = NULL;
+#line 1766 "Plugins.c"
+}
+
+
+static void _vala_array_add48 (GFile*** array, int* length, int* size, GFile* value) {
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if ((*length) == (*size)) {
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *array = g_renew (GFile*, *array, (*size) + 1);
+#line 1777 "Plugins.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[(*length)++] = value;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (*array)[*length] = NULL;
+#line 1783 "Plugins.c"
+}
+
+
+void plugins_init (GError** error) {
+ GFile** _tmp0_ = NULL;
+ GFile** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ GFile* _tmp2_ = NULL;
+ GFile** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GFile* _tmp4_ = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ GeeHashMap* _tmp7_ = NULL;
+ GeeHashSet* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GFile** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ GError * _inner_error_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = g_new0 (GFile*, 0 + 1);
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = (_vala_array_free (plugins_search_dirs, plugins_search_dirs_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = _tmp0_;
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs_length1 = 0;
+#line 114 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_search_dirs_size_ = plugins_search_dirs_length1;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_search_dirs;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1__length1 = plugins_search_dirs_length1;
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = app_dirs_get_user_plugins_dir ();
+#line 115 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_array_add47 (&plugins_search_dirs, &plugins_search_dirs_length1, &_plugins_search_dirs_size_, _tmp2_);
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = plugins_search_dirs;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__length1 = plugins_search_dirs_length1;
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = app_dirs_get_system_plugins_dir ();
+#line 116 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_array_add48 (&plugins_search_dirs, &plugins_search_dirs_length1, &_plugins_search_dirs_size_, _tmp4_);
+#line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PLUGINS_TYPE_MODULE_REP, (GBoxedCopyFunc) plugins_module_rep_ref, plugins_module_rep_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_module_table);
+#line 118 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_table = _tmp5_;
+#line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, PLUGINS_TYPE_PLUGGABLE_REP, (GBoxedCopyFunc) plugins_pluggable_rep_ref, plugins_pluggable_rep_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_pluggable_table);
+#line 119 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_table = _tmp6_;
+#line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = gee_hash_map_new (G_TYPE_GTYPE, NULL, NULL, PLUGINS_TYPE_EXTENSION_POINT, (GBoxedCopyFunc) plugins_extension_point_ref, plugins_extension_point_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_extension_points);
+#line 120 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_points = _tmp7_;
+#line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_core_ids);
+#line 121 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_core_ids = _tmp8_;
+#line 125 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = g_module_supported ();
+#line 125 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp9_) {
+#line 126 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_warning ("Plugins.vala:126: Plugins not support: GModule not supported on this p" \
+"latform.");
+#line 128 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 1861 "Plugins.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = plugins_search_dirs;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10__length1 = plugins_search_dirs_length1;
+#line 1867 "Plugins.c"
+ {
+ GFile** dir_collection = NULL;
+ gint dir_collection_length1 = 0;
+ gint _dir_collection_size_ = 0;
+ gint dir_it = 0;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dir_collection = _tmp10_;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dir_collection_length1 = _tmp10__length1;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (dir_it = 0; dir_it < _tmp10__length1; dir_it = dir_it + 1) {
+#line 1879 "Plugins.c"
+ GFile* _tmp11_ = NULL;
+ GFile* dir = NULL;
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _g_object_ref0 (dir_collection[dir_it]);
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dir = _tmp11_;
+#line 1886 "Plugins.c"
+ {
+ {
+ GFile* _tmp12_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = dir;
+#line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_for_plugins (_tmp12_, &_inner_error_);
+#line 133 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1896 "Plugins.c"
+ goto __catch31_g_error;
+ }
+ }
+ goto __finally31;
+ __catch31_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GError* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ err = _inner_error_;
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _inner_error_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = dir;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp14_;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = err;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = _tmp16_->message;
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_debug ("Plugins.vala:135: Unable to search directory %s for plugins: %s", _tmp15_, _tmp17_);
+#line 135 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp15_);
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_error_free0 (err);
+#line 1929 "Plugins.c"
+ }
+ __finally31:
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (dir);
+#line 132 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 1940 "Plugins.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (dir);
+#line 1944 "Plugins.c"
+ }
+ }
+ }
+}
+
+
+void plugins_terminate (void) {
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = (_vala_array_free (plugins_search_dirs, plugins_search_dirs_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs = NULL;
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_dirs_length1 = 0;
+#line 141 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_search_dirs_size_ = plugins_search_dirs_length1;
+#line 142 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_pluggable_table);
+#line 142 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_table = NULL;
+#line 143 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_module_table);
+#line 143 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_module_table = NULL;
+#line 144 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_extension_points);
+#line 144 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_extension_points = NULL;
+#line 145 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (plugins_core_ids);
+#line 145 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_core_ids = NULL;
+#line 1976 "Plugins.c"
+}
+
+
+static PluginsNotifier* plugins_notifier_construct (GType object_type) {
+ PluginsNotifier* self = NULL;
+#line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = (PluginsNotifier*) g_type_create_instance (object_type);
+#line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self;
+#line 1986 "Plugins.c"
+}
+
+
+static PluginsNotifier* plugins_notifier_new (void) {
+#line 153 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return plugins_notifier_construct (PLUGINS_TYPE_NOTIFIER);
+#line 1993 "Plugins.c"
+}
+
+
+static gpointer _plugins_notifier_ref0 (gpointer self) {
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return self ? plugins_notifier_ref (self) : NULL;
+#line 2000 "Plugins.c"
+}
+
+
+PluginsNotifier* plugins_notifier_get_instance (void) {
+ PluginsNotifier* result = NULL;
+ PluginsNotifier* _tmp0_ = NULL;
+ PluginsNotifier* _tmp2_ = NULL;
+ PluginsNotifier* _tmp3_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_notifier_instance;
+#line 157 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp0_ == NULL) {
+#line 2013 "Plugins.c"
+ PluginsNotifier* _tmp1_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_notifier_new ();
+#line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_notifier_unref0 (plugins_notifier_instance);
+#line 158 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_instance = _tmp1_;
+#line 2021 "Plugins.c"
+ }
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = plugins_notifier_instance;
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _plugins_notifier_ref0 (_tmp2_);
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp3_;
+#line 160 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2031 "Plugins.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1, gpointer arg_1, gboolean arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data1 = closure->data;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2050 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ data2 = closure->data;
+#line 2056 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_boolean (param_values + 2), data2);
+#line 2062 "Plugins.c"
+}
+
+
+static void plugins_value_notifier_init (GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2069 "Plugins.c"
+}
+
+
+static void plugins_value_notifier_free_value (GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_unref (value->data[0].v_pointer);
+#line 2078 "Plugins.c"
+ }
+}
+
+
+static void plugins_value_notifier_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (src_value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = plugins_notifier_ref (src_value->data[0].v_pointer);
+#line 2088 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2092 "Plugins.c"
+ }
+}
+
+
+static gpointer plugins_value_notifier_peek_pointer (const GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 2100 "Plugins.c"
+}
+
+
+static gchar* plugins_value_notifier_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (collect_values[0].v_pointer) {
+#line 2107 "Plugins.c"
+ PluginsNotifier* object;
+ object = collect_values[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2114 "Plugins.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2118 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = plugins_notifier_ref (object);
+#line 2122 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2126 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 2130 "Plugins.c"
+}
+
+
+static gchar* plugins_value_notifier_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ PluginsNotifier** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!object_p) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2141 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!value->data[0].v_pointer) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = NULL;
+#line 2147 "Plugins.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2151 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *object_p = plugins_notifier_ref (value->data[0].v_pointer);
+#line 2155 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return NULL;
+#line 2159 "Plugins.c"
+}
+
+
+GParamSpec* plugins_param_spec_notifier (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ PluginsParamSpecNotifier* spec;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, PLUGINS_TYPE_NOTIFIER), NULL);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return G_PARAM_SPEC (spec);
+#line 2173 "Plugins.c"
+}
+
+
+gpointer plugins_value_get_notifier (const GValue* value) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER), NULL);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return value->data[0].v_pointer;
+#line 2182 "Plugins.c"
+}
+
+
+void plugins_value_set_notifier (GValue* value, gpointer v_object) {
+ PluginsNotifier* old;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_ref (value->data[0].v_pointer);
+#line 2202 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2206 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_unref (old);
+#line 2212 "Plugins.c"
+ }
+}
+
+
+void plugins_value_take_notifier (GValue* value, gpointer v_object) {
+ PluginsNotifier* old;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ old = value->data[0].v_pointer;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (v_object) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PLUGINS_TYPE_NOTIFIER));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = v_object;
+#line 2231 "Plugins.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ value->data[0].v_pointer = NULL;
+#line 2235 "Plugins.c"
+ }
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (old) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_unref (old);
+#line 2241 "Plugins.c"
+ }
+}
+
+
+static void plugins_notifier_class_init (PluginsNotifierClass * klass) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_notifier_parent_class = g_type_class_peek_parent (klass);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ((PluginsNotifierClass *) klass)->finalize = plugins_notifier_finalize;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_new ("pluggable_activation", PLUGINS_TYPE_NOTIFIER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 2, SPIT_TYPE_PLUGGABLE, G_TYPE_BOOLEAN);
+#line 2253 "Plugins.c"
+}
+
+
+static void plugins_notifier_instance_init (PluginsNotifier * self) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self->ref_count = 1;
+#line 2260 "Plugins.c"
+}
+
+
+static void plugins_notifier_finalize (PluginsNotifier* obj) {
+ PluginsNotifier * self;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_NOTIFIER, PluginsNotifier);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_handlers_destroy (self);
+#line 2270 "Plugins.c"
+}
+
+
+GType plugins_notifier_get_type (void) {
+ static volatile gsize plugins_notifier_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_notifier_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { plugins_value_notifier_init, plugins_value_notifier_free_value, plugins_value_notifier_copy_value, plugins_value_notifier_peek_pointer, "p", plugins_value_notifier_collect_value, "p", plugins_value_notifier_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsNotifierClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_notifier_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsNotifier), 0, (GInstanceInitFunc) plugins_notifier_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType plugins_notifier_type_id;
+ plugins_notifier_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PluginsNotifier", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&plugins_notifier_type_id__volatile, plugins_notifier_type_id);
+ }
+ return plugins_notifier_type_id__volatile;
+}
+
+
+gpointer plugins_notifier_ref (gpointer instance) {
+ PluginsNotifier* self;
+ self = instance;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return instance;
+#line 2295 "Plugins.c"
+}
+
+
+void plugins_notifier_unref (gpointer instance) {
+ PluginsNotifier* self;
+ self = instance;
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ PLUGINS_NOTIFIER_GET_CLASS (self)->finalize (self);
+#line 148 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2308 "Plugins.c"
+ }
+}
+
+
+void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1) {
+ GeeHashMap* _tmp0_ = NULL;
+ GType _tmp1_ = 0UL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ GType _tmp4_ = 0UL;
+ GType _tmp5_ = 0UL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar** _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ PluginsExtensionPoint* _tmp9_ = NULL;
+ PluginsExtensionPoint* _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 164 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (name != NULL);
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_extension_points;
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = type;
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp1_));
+#line 166 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_assert (!_tmp2_, "!extension_points.has_key(type)");
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = plugins_extension_points;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = type;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = type;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = name;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = icon_name;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = core_ids;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8__length1 = core_ids_length1;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = plugins_extension_point_new (_tmp5_, _tmp6_, _tmp7_, _tmp8_, _tmp8__length1);
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = _tmp9_;
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp4_), _tmp10_);
+#line 168 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_extension_point_unref0 (_tmp10_);
+#line 171 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = core_ids;
+#line 171 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11__length1 = core_ids_length1;
+#line 171 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp11_ != NULL) {
+#line 2366 "Plugins.c"
+ gchar** _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = core_ids;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12__length1 = core_ids_length1;
+#line 2373 "Plugins.c"
+ {
+ gchar** core_id_collection = NULL;
+ gint core_id_collection_length1 = 0;
+ gint _core_id_collection_size_ = 0;
+ gint core_id_it = 0;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ core_id_collection = _tmp12_;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ core_id_collection_length1 = _tmp12__length1;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (core_id_it = 0; core_id_it < _tmp12__length1; core_id_it = core_id_it + 1) {
+#line 2385 "Plugins.c"
+ gchar* _tmp13_ = NULL;
+ gchar* core_id = NULL;
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = g_strdup (core_id_collection[core_id_it]);
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ core_id = _tmp13_;
+#line 2392 "Plugins.c"
+ {
+ GeeHashSet* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = plugins_core_ids;
+#line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = core_id;
+#line 173 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp15_);
+#line 172 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (core_id);
+#line 2404 "Plugins.c"
+ }
+ }
+ }
+ }
+ {
+ GeeIterator* _pluggable_rep_it = NULL;
+ GeeHashMap* _tmp16_ = NULL;
+ GeeCollection* _tmp17_ = NULL;
+ GeeCollection* _tmp18_ = NULL;
+ GeeCollection* _tmp19_ = NULL;
+ GeeIterator* _tmp20_ = NULL;
+ GeeIterator* _tmp21_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = plugins_pluggable_table;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_MAP, GeeMap));
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = _tmp17_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = _tmp18_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = _tmp20_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp19_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggable_rep_it = _tmp21_;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 2435 "Plugins.c"
+ GeeIterator* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeIterator* _tmp24_ = NULL;
+ gpointer _tmp25_ = NULL;
+ PluginsPluggableRep* _tmp26_ = NULL;
+ SpitPluggable* _tmp27_ = NULL;
+ SpitPluggable* _tmp28_ = NULL;
+ GType _tmp29_ = 0UL;
+ GType _tmp30_ = 0UL;
+ gboolean _tmp31_ = FALSE;
+ PluginsPluggableRep* _tmp32_ = NULL;
+ PluginsNotifier* _tmp33_ = NULL;
+ PluginsNotifier* _tmp34_ = NULL;
+ PluginsPluggableRep* _tmp35_ = NULL;
+ SpitPluggable* _tmp36_ = NULL;
+ SpitPluggable* _tmp37_ = NULL;
+ PluginsPluggableRep* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _pluggable_rep_it;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = gee_iterator_next (_tmp22_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp23_) {
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 2463 "Plugins.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = _pluggable_rep_it;
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = gee_iterator_get (_tmp24_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp25_;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = pluggable_rep;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp27_ = plugins_pluggable_rep_get_pluggable (_tmp26_);
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp28_ = _tmp27_;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp29_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, G_TYPE_OBJECT, GObject));
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp30_ = type;
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp31_ = g_type_is_a (_tmp29_, _tmp30_);
+#line 178 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp31_) {
+#line 179 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 179 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ continue;
+#line 2489 "Plugins.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp32_ = pluggable_rep;
+#line 181 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_pluggable_rep_activate (_tmp32_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp33_ = plugins_notifier_get_instance ();
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp34_ = _tmp33_;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp35_ = pluggable_rep;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp36_ = plugins_pluggable_rep_get_pluggable (_tmp35_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp37_ = _tmp36_;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp38_ = pluggable_rep;
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp39_ = plugins_pluggable_rep_is_enabled (_tmp38_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_emit_by_name (_tmp34_, "pluggable-activation", _tmp37_, _tmp39_);
+#line 182 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_notifier_unref0 (_tmp34_);
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 2515 "Plugins.c"
+ }
+#line 177 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_pluggable_rep_it);
+#line 2519 "Plugins.c"
+ }
+}
+
+
+GeeCollection* plugins_get_pluggables (gboolean include_disabled) {
+ GeeCollection* result = NULL;
+ GeeCollection* all = NULL;
+ GeeHashSet* _tmp0_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = gee_hash_set_new (SPIT_TYPE_PLUGGABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 187 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ all = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2532 "Plugins.c"
+ {
+ GeeIterator* _pluggable_rep_it = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_pluggable_table;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_MAP, GeeMap));
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _tmp5_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp4_);
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggable_rep_it = _tmp6_;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 2559 "Plugins.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ PluginsPluggableRep* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ gboolean _tmp14_ = FALSE;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _pluggable_rep_it;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp8_) {
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 2577 "Plugins.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = _pluggable_rep_it;
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp10_;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = pluggable_rep;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = plugins_pluggable_rep_get_activated (_tmp12_);
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = _tmp13_;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp14_) {
+#line 2593 "Plugins.c"
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = include_disabled;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp16_) {
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = TRUE;
+#line 2602 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = pluggable_rep;
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = plugins_pluggable_rep_is_enabled (_tmp17_);
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp18_;
+#line 2612 "Plugins.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp15_;
+#line 2616 "Plugins.c"
+ } else {
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = FALSE;
+#line 2620 "Plugins.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp11_) {
+#line 2624 "Plugins.c"
+ GeeCollection* _tmp19_ = NULL;
+ PluginsPluggableRep* _tmp20_ = NULL;
+ SpitPluggable* _tmp21_ = NULL;
+ SpitPluggable* _tmp22_ = NULL;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = all;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = pluggable_rep;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = plugins_pluggable_rep_get_pluggable (_tmp20_);
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_;
+#line 190 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_collection_add (_tmp19_, _tmp22_);
+#line 2639 "Plugins.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 2643 "Plugins.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_pluggable_rep_it);
+#line 2647 "Plugins.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = all;
+#line 193 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2653 "Plugins.c"
+}
+
+
+gboolean plugins_is_core_pluggable (SpitPluggable* pluggable) {
+ gboolean result = FALSE;
+ GeeHashSet* _tmp0_ = NULL;
+ SpitPluggable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 196 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), FALSE);
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_core_ids;
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = pluggable;
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = spit_pluggable_get_id (_tmp1_);
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = gee_abstract_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp2_);
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp3_;
+#line 197 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2677 "Plugins.c"
+}
+
+
+static SpitPluggable** _vala_array_dup19 (SpitPluggable** self, int length) {
+ SpitPluggable** result;
+ int i;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = g_new0 (SpitPluggable*, length + 1);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (i = 0; i < length; i++) {
+#line 2688 "Plugins.c"
+ SpitPluggable* _tmp0_ = NULL;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result[i] = _tmp0_;
+#line 2694 "Plugins.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2698 "Plugins.c"
+}
+
+
+PluginsModuleRep* plugins_get_module_for_pluggable (SpitPluggable* needle) {
+ PluginsModuleRep* result = NULL;
+#line 200 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (needle), NULL);
+#line 2706 "Plugins.c"
+ {
+ GeeIterator* _module_rep_it = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_module_table;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp1_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp3_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _module_rep_it = _tmp5_;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 2733 "Plugins.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ PluginsModuleRep* module_rep = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ SpitPluggable** pluggables = NULL;
+ PluginsModuleRep* _tmp10_ = NULL;
+ SpitModule* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ SpitPluggable** _tmp13_ = NULL;
+ SpitPluggable** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gint pluggables_length1 = 0;
+ gint _pluggables_size_ = 0;
+ SpitPluggable** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _module_rep_it;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp7_) {
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 2758 "Plugins.c"
+ }
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _module_rep_it;
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = (PluginsModuleRep*) _tmp9_;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = module_rep;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp10_->spit_module;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = spit_module_get_pluggables (_tmp11_, &_tmp12_);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = (_tmp13_ != NULL) ? _vala_array_dup19 (_tmp13_, _tmp12_) : ((gpointer) _tmp13_);
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14__length1 = _tmp12_;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables = _tmp14_;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables_length1 = _tmp14__length1;
+#line 202 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggables_size_ = pluggables_length1;
+#line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = pluggables;
+#line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15__length1 = pluggables_length1;
+#line 203 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp15_ != NULL) {
+#line 2788 "Plugins.c"
+ SpitPluggable** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = pluggables;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16__length1 = pluggables_length1;
+#line 2795 "Plugins.c"
+ {
+ SpitPluggable** pluggable_collection = NULL;
+ gint pluggable_collection_length1 = 0;
+ gint _pluggable_collection_size_ = 0;
+ gint pluggable_it = 0;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection = _tmp16_;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection_length1 = _tmp16__length1;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (pluggable_it = 0; pluggable_it < _tmp16__length1; pluggable_it = pluggable_it + 1) {
+#line 2807 "Plugins.c"
+ SpitPluggable* _tmp17_ = NULL;
+ SpitPluggable* pluggable = NULL;
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = _g_object_ref0 (pluggable_collection[pluggable_it]);
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable = _tmp17_;
+#line 2814 "Plugins.c"
+ {
+ SpitPluggable* _tmp18_ = NULL;
+ SpitPluggable* _tmp19_ = NULL;
+#line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = pluggable;
+#line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = needle;
+#line 205 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp18_ == _tmp19_) {
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = module_rep;
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (pluggable);
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables = (_vala_array_free (pluggables, pluggables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_module_rep_it);
+#line 206 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2834 "Plugins.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (pluggable);
+#line 2838 "Plugins.c"
+ }
+ }
+ }
+ }
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggables = (_vala_array_free (pluggables, pluggables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 2847 "Plugins.c"
+ }
+#line 201 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_module_rep_it);
+#line 2851 "Plugins.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = NULL;
+#line 211 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2857 "Plugins.c"
+}
+
+
+gchar* plugins_get_pluggable_module_id (SpitPluggable* needle) {
+ gchar* result = NULL;
+ PluginsModuleRep* module_rep = NULL;
+ SpitPluggable* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PluginsModuleRep* _tmp3_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 214 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (needle), NULL);
+#line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = needle;
+#line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_get_module_for_pluggable (_tmp0_);
+#line 215 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = module_rep;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_ != NULL) {
+#line 2881 "Plugins.c"
+ PluginsModuleRep* _tmp4_ = NULL;
+ SpitModule* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = module_rep;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_->spit_module;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = spit_module_get_id (_tmp5_);
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp6_;
+#line 2893 "Plugins.c"
+ } else {
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = NULL;
+#line 2897 "Plugins.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = g_strdup (_tmp2_);
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp7_;
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 217 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2907 "Plugins.c"
+}
+
+
+GeeCollection* plugins_get_extension_points (GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify) {
+ GeeCollection* result = NULL;
+ GeeCollection* sorted = NULL;
+ GCompareDataFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ GDestroyNotify _tmp0__target_destroy_notify = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = compare_func;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__target = compare_func_target;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0__target_destroy_notify = compare_func_target_destroy_notify;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = gee_tree_set_new (PLUGINS_TYPE_EXTENSION_POINT, (GBoxedCopyFunc) plugins_extension_point_ref, plugins_extension_point_unref, _tmp0_, _tmp0__target, _tmp0__target_destroy_notify);
+#line 221 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ sorted = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = plugins_extension_points;
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp3_;
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_collection_add_all (sorted, _tmp5_);
+#line 222 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp5_);
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = sorted;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func = NULL;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target = NULL;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 224 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 2958 "Plugins.c"
+}
+
+
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled) {
+ GeeCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GType _tmp1_ = 0UL;
+ gboolean _tmp2_ = FALSE;
+ GeeCollection* for_type = NULL;
+ GCompareDataFunc _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ GDestroyNotify _tmp3__target_destroy_notify = NULL;
+ GeeTreeSet* _tmp4_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_extension_points;
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = type;
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp1_));
+#line 230 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_assert (_tmp2_, "extension_points.has_key(type)");
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = compare_func;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__target = compare_func_target;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3__target_destroy_notify = compare_func_target_destroy_notify;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = gee_tree_set_new (SPIT_TYPE_PLUGGABLE, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tmp3_, _tmp3__target, _tmp3__target_destroy_notify);
+#line 232 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for_type = G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 2992 "Plugins.c"
+ {
+ GeeIterator* _pluggable_rep_it = NULL;
+ GeeHashMap* _tmp5_ = NULL;
+ GeeCollection* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = plugins_pluggable_table;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_MAP, GeeMap));
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp7_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = _tmp9_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp8_);
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _pluggable_rep_it = _tmp10_;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 3019 "Plugins.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+ PluginsPluggableRep* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _pluggable_rep_it;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp12_) {
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3038 "Plugins.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = _pluggable_rep_it;
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp14_;
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = pluggable_rep;
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = plugins_pluggable_rep_get_activated (_tmp17_);
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = _tmp18_;
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp19_) {
+#line 3054 "Plugins.c"
+ PluginsPluggableRep* _tmp20_ = NULL;
+ SpitPluggable* _tmp21_ = NULL;
+ SpitPluggable* _tmp22_ = NULL;
+ GType _tmp23_ = 0UL;
+ GType _tmp24_ = 0UL;
+ gboolean _tmp25_ = FALSE;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = pluggable_rep;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = plugins_pluggable_rep_get_pluggable (_tmp20_);
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = G_TYPE_FROM_INSTANCE (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, G_TYPE_OBJECT, GObject));
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = type;
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = g_type_is_a (_tmp23_, _tmp24_);
+#line 235 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = _tmp25_;
+#line 3075 "Plugins.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = FALSE;
+#line 3079 "Plugins.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp16_) {
+#line 3083 "Plugins.c"
+ gboolean _tmp26_ = FALSE;
+ gboolean _tmp27_ = FALSE;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp27_ = include_disabled;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp27_) {
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = TRUE;
+#line 3092 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp28_ = pluggable_rep;
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp29_ = plugins_pluggable_rep_is_enabled (_tmp28_);
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = _tmp29_;
+#line 3102 "Plugins.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp26_;
+#line 3106 "Plugins.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = FALSE;
+#line 3110 "Plugins.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp15_) {
+#line 3114 "Plugins.c"
+ GeeCollection* _tmp30_ = NULL;
+ PluginsPluggableRep* _tmp31_ = NULL;
+ SpitPluggable* _tmp32_ = NULL;
+ SpitPluggable* _tmp33_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp30_ = for_type;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp31_ = pluggable_rep;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp32_ = plugins_pluggable_rep_get_pluggable (_tmp31_);
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp33_ = _tmp32_;
+#line 237 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_collection_add (_tmp30_, _tmp33_);
+#line 3129 "Plugins.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 3133 "Plugins.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_pluggable_rep_it);
+#line 3137 "Plugins.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = for_type;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ (compare_func_target_destroy_notify == NULL) ? NULL : (compare_func_target_destroy_notify (compare_func_target), NULL);
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func = NULL;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target = NULL;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ compare_func_target_destroy_notify = NULL;
+#line 241 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3151 "Plugins.c"
+}
+
+
+gchar* plugins_get_pluggable_name (const gchar* id) {
+ gchar* result = NULL;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 245 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp5_ != NULL) {
+#line 3179 "Plugins.c"
+ PluginsPluggableRep* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp8_ = FALSE;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = pluggable_rep;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = plugins_pluggable_rep_get_activated (_tmp6_);
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp7_;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = _tmp8_;
+#line 3191 "Plugins.c"
+ } else {
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = FALSE;
+#line 3195 "Plugins.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_) {
+#line 3199 "Plugins.c"
+ PluginsPluggableRep* _tmp9_ = NULL;
+ SpitPluggable* _tmp10_ = NULL;
+ SpitPluggable* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = pluggable_rep;
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = plugins_pluggable_rep_get_pluggable (_tmp9_);
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = _tmp10_;
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = spit_pluggable_get_pluggable_name (_tmp11_);
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp12_;
+#line 3214 "Plugins.c"
+ } else {
+#line 248 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = NULL;
+#line 3218 "Plugins.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = g_strdup (_tmp3_);
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp13_;
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 247 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3228 "Plugins.c"
+}
+
+
+gboolean plugins_get_pluggable_info (const gchar* id, SpitPluggableInfo* info) {
+ gboolean result = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PluginsPluggableRep* _tmp4_ = NULL;
+ PluginsPluggableRep* _tmp8_ = NULL;
+ SpitPluggable* _tmp9_ = NULL;
+ SpitPluggable* _tmp10_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (id != NULL, FALSE);
+#line 251 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (info != NULL, FALSE);
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 252 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = pluggable_rep;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ == NULL) {
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = TRUE;
+#line 3261 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = plugins_pluggable_rep_get_activated (_tmp5_);
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = !_tmp7_;
+#line 3274 "Plugins.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 254 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3284 "Plugins.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = pluggable_rep;
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = plugins_pluggable_rep_get_pluggable (_tmp8_);
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = _tmp9_;
+#line 256 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_pluggable_get_info (_tmp10_, info);
+#line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 258 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3300 "Plugins.c"
+}
+
+
+gboolean plugins_get_pluggable_enabled (const gchar* id, gboolean* enabled) {
+ gboolean _vala_enabled = FALSE;
+ gboolean result = FALSE;
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PluginsPluggableRep* _tmp4_ = NULL;
+ PluginsPluggableRep* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 261 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (id != NULL, FALSE);
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 262 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = pluggable_rep;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ == NULL) {
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = TRUE;
+#line 3331 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = plugins_pluggable_rep_get_activated (_tmp5_);
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = !_tmp7_;
+#line 3344 "Plugins.c"
+ }
+#line 263 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_) {
+#line 264 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_enabled = FALSE;
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (enabled) {
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *enabled = _vala_enabled;
+#line 3358 "Plugins.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3362 "Plugins.c"
+ }
+#line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = pluggable_rep;
+#line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = plugins_pluggable_rep_is_enabled (_tmp8_);
+#line 269 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_enabled = _tmp9_;
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (enabled) {
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ *enabled = _vala_enabled;
+#line 3378 "Plugins.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3382 "Plugins.c"
+}
+
+
+void plugins_set_pluggable_enabled (const gchar* id, gboolean enabled) {
+ PluginsPluggableRep* pluggable_rep = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PluginsPluggableRep* _tmp4_ = NULL;
+ PluginsPluggableRep* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 274 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (id != NULL);
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = plugins_pluggable_table;
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = id;
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 275 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_rep = (PluginsPluggableRep*) _tmp2_;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = pluggable_rep;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp4_ == NULL) {
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = TRUE;
+#line 3412 "Plugins.c"
+ } else {
+ PluginsPluggableRep* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = pluggable_rep;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = plugins_pluggable_rep_get_activated (_tmp5_);
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = _tmp6_;
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = !_tmp7_;
+#line 3425 "Plugins.c"
+ }
+#line 276 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_) {
+#line 277 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 277 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3433 "Plugins.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = pluggable_rep;
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = enabled;
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = plugins_pluggable_rep_set_enabled (_tmp8_, _tmp9_);
+#line 279 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp10_) {
+#line 3443 "Plugins.c"
+ PluginsNotifier* _tmp11_ = NULL;
+ PluginsNotifier* _tmp12_ = NULL;
+ PluginsPluggableRep* _tmp13_ = NULL;
+ SpitPluggable* _tmp14_ = NULL;
+ SpitPluggable* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = plugins_notifier_get_instance ();
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = _tmp11_;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = pluggable_rep;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = plugins_pluggable_rep_get_pluggable (_tmp13_);
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = _tmp14_;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = enabled;
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_signal_emit_by_name (_tmp12_, "pluggable-activation", _tmp15_, _tmp16_);
+#line 280 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_notifier_unref0 (_tmp12_);
+#line 3466 "Plugins.c"
+ }
+#line 274 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (pluggable_rep);
+#line 3470 "Plugins.c"
+}
+
+
+GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable) {
+ GFile* result = NULL;
+ PluginsModuleRep* module_rep = NULL;
+ SpitPluggable* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ PluginsModuleRep* _tmp3_ = NULL;
+ GFile* _tmp6_ = NULL;
+#line 283 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL);
+#line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = pluggable;
+#line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_get_module_for_pluggable (_tmp0_);
+#line 284 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = module_rep;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp3_ != NULL) {
+#line 3494 "Plugins.c"
+ PluginsModuleRep* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = module_rep;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_->file;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp5_;
+#line 3503 "Plugins.c"
+ } else {
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = NULL;
+#line 3507 "Plugins.c"
+ }
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = _g_object_ref0 (_tmp2_);
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp6_;
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 286 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3517 "Plugins.c"
+}
+
+
+gint plugins_compare_pluggable_names (void* a, void* b) {
+ gint result = 0;
+ SpitPluggable* apluggable = NULL;
+ void* _tmp0_ = NULL;
+ SpitPluggable* bpluggable = NULL;
+ void* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 290 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = a;
+#line 290 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ apluggable = (SpitPluggable*) _tmp0_;
+#line 291 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = b;
+#line 291 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ bpluggable = (SpitPluggable*) _tmp1_;
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (apluggable, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (bpluggable, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = g_utf8_collate (_tmp2_, _tmp3_);
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp4_;
+#line 293 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3548 "Plugins.c"
+}
+
+
+gint plugins_compare_extension_point_names (void* a, void* b) {
+ gint result = 0;
+ PluginsExtensionPoint* apoint = NULL;
+ void* _tmp0_ = NULL;
+ PluginsExtensionPoint* bpoint = NULL;
+ void* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 297 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = a;
+#line 297 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ apoint = (PluginsExtensionPoint*) _tmp0_;
+#line 298 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = b;
+#line 298 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ bpoint = (PluginsExtensionPoint*) _tmp1_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = plugins_extension_point_get_name (G_TYPE_CHECK_INSTANCE_CAST (apoint, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint));
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = _tmp2_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = plugins_extension_point_get_name (G_TYPE_CHECK_INSTANCE_CAST (bpoint, PLUGINS_TYPE_EXTENSION_POINT, PluginsExtensionPoint));
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = g_utf8_collate (_tmp3_, _tmp5_);
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = _tmp6_;
+#line 300 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3585 "Plugins.c"
+}
+
+
+gboolean plugins_is_shared_library (GFile* file) {
+ gboolean result = FALSE;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_file_get_basename (_tmp0_);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp1_;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ disassemble_filename (_tmp2_, &_tmp3_, &_tmp4_);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (name);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ name = _tmp3_;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (ext);
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ ext = _tmp4_;
+#line 305 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp2_);
+#line 3618 "Plugins.c"
+ {
+ const gchar** shared_ext_collection = NULL;
+ gint shared_ext_collection_length1 = 0;
+ gint _shared_ext_collection_size_ = 0;
+ gint shared_ext_it = 0;
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ shared_ext_collection = PLUGINS_SHARED_LIB_EXTS;
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ shared_ext_collection_length1 = G_N_ELEMENTS (PLUGINS_SHARED_LIB_EXTS);
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (shared_ext_it = 0; shared_ext_it < G_N_ELEMENTS (PLUGINS_SHARED_LIB_EXTS); shared_ext_it = shared_ext_it + 1) {
+#line 3630 "Plugins.c"
+ gchar* _tmp5_ = NULL;
+ gchar* shared_ext = NULL;
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = g_strdup (shared_ext_collection[shared_ext_it]);
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ shared_ext = _tmp5_;
+#line 3637 "Plugins.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = ext;
+#line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = shared_ext;
+#line 308 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (g_strcmp0 (_tmp6_, _tmp7_) == 0) {
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = TRUE;
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (shared_ext);
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (ext);
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (name);
+#line 309 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3657 "Plugins.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (shared_ext);
+#line 3661 "Plugins.c"
+ }
+ }
+ }
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ result = FALSE;
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (ext);
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (name);
+#line 312 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return result;
+#line 3673 "Plugins.c"
+}
+
+
+void plugins_search_for_plugins (GFile* dir, GError** error) {
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GFileEnumerator* enumerator = NULL;
+ GFile* _tmp3_ = NULL;
+ GFileEnumerator* _tmp4_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 315 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = dir;
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = g_file_get_path (_tmp0_);
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = _tmp1_;
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_debug ("Plugins.vala:316: Searching %s for plugins ...", _tmp2_);
+#line 316 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp2_);
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = dir;
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = g_file_enumerate_children (_tmp3_, UTIL_FILE_ATTRIBUTES, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ enumerator = _tmp4_;
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 320 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3709 "Plugins.c"
+ }
+ {
+ gboolean _tmp5_ = FALSE;
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = TRUE;
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ while (TRUE) {
+#line 3717 "Plugins.c"
+ GFileInfo* info = NULL;
+ GFileEnumerator* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GFile* file = NULL;
+ GFile* _tmp11_ = NULL;
+ GFileInfo* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GFile* _tmp14_ = NULL;
+ GFileInfo* _tmp15_ = NULL;
+ GFileType _tmp16_ = 0;
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp5_) {
+#line 3733 "Plugins.c"
+ }
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = FALSE;
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = enumerator;
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = g_file_enumerator_next_file (_tmp6_, NULL, &_inner_error_);
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ info = _tmp7_;
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (enumerator);
+#line 323 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3751 "Plugins.c"
+ }
+#line 324 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = info;
+#line 324 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp8_ == NULL) {
+#line 325 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 325 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3761 "Plugins.c"
+ }
+#line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp9_ = info;
+#line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = g_file_info_get_is_hidden (_tmp9_);
+#line 327 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp10_) {
+#line 328 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 328 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ continue;
+#line 3773 "Plugins.c"
+ }
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = dir;
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = info;
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = g_file_info_get_name (_tmp12_);
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = g_file_get_child (_tmp11_, _tmp13_);
+#line 330 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ file = _tmp14_;
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = info;
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = g_file_info_get_file_type (_tmp15_);
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ switch (_tmp16_) {
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ case G_FILE_TYPE_DIRECTORY:
+#line 3793 "Plugins.c"
+ {
+ {
+ GFile* _tmp17_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = file;
+#line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_search_for_plugins (_tmp17_, &_inner_error_);
+#line 335 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 3803 "Plugins.c"
+ goto __catch32_g_error;
+ }
+ }
+ goto __finally32;
+ __catch32_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GError* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ err = _inner_error_;
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _inner_error_ = NULL;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = file;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = g_file_get_path (_tmp18_);
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = _tmp19_;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = err;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_->message;
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_warning ("Plugins.vala:337: Unable to search directory %s for plugins: %s", _tmp20_, _tmp22_);
+#line 337 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp20_);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_error_free0 (err);
+#line 3836 "Plugins.c"
+ }
+ __finally32:
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_propagate_error (error, _inner_error_);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (file);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (enumerator);
+#line 334 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3851 "Plugins.c"
+ }
+#line 339 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3855 "Plugins.c"
+ }
+#line 332 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ case G_FILE_TYPE_REGULAR:
+#line 3859 "Plugins.c"
+ {
+ GFile* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = file;
+#line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = plugins_is_shared_library (_tmp23_);
+#line 342 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp24_) {
+#line 3869 "Plugins.c"
+ GFile* _tmp25_ = NULL;
+#line 343 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = file;
+#line 343 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ plugins_load_module (_tmp25_);
+#line 3875 "Plugins.c"
+ }
+#line 344 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3879 "Plugins.c"
+ }
+ default:
+ {
+#line 348 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ break;
+#line 3885 "Plugins.c"
+ }
+ }
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (file);
+#line 322 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (info);
+#line 3892 "Plugins.c"
+ }
+ }
+#line 315 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (enumerator);
+#line 3897 "Plugins.c"
+}
+
+
+void plugins_load_module (GFile* file) {
+ PluginsModuleRep* module_rep = NULL;
+ GFile* _tmp0_ = NULL;
+ PluginsModuleRep* _tmp1_ = NULL;
+ PluginsModuleRep* _tmp2_ = NULL;
+ void* entry = NULL;
+ PluginsModuleRep* _tmp7_ = NULL;
+ GModule* _tmp8_ = NULL;
+ void* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ SpitEntryPoint spit_entry_point = NULL;
+ void* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ SpitEntryPointParams params = {0};
+ GFile* _tmp16_ = NULL;
+ GFile* _tmp17_ = NULL;
+ PluginsModuleRep* _tmp18_ = NULL;
+ SpitEntryPoint _tmp19_ = NULL;
+ SpitModule* _tmp20_ = NULL;
+ SpitEntryPointParams _tmp21_ = {0};
+ gint _tmp22_ = 0;
+ gboolean _tmp26_ = FALSE;
+ SpitEntryPointParams _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ PluginsModuleRep* _tmp36_ = NULL;
+ SpitEntryPointParams _tmp37_ = {0};
+ gint _tmp38_ = 0;
+ PluginsModuleRep* _tmp39_ = NULL;
+ SpitModule* _tmp40_ = NULL;
+ PluginsModuleRep* _tmp42_ = NULL;
+ SpitModule* _tmp43_ = NULL;
+ PluginsModuleRep* _tmp49_ = NULL;
+ PluginsModuleRep* _tmp50_ = NULL;
+ SpitModule* _tmp51_ = NULL;
+ const gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ PluginsModuleRep* _tmp54_ = NULL;
+ const gchar* _tmp55_ = NULL;
+ GeeHashMap* _tmp61_ = NULL;
+ PluginsModuleRep* _tmp62_ = NULL;
+ const gchar* _tmp63_ = NULL;
+ gboolean _tmp64_ = FALSE;
+ PluginsModuleRep* _tmp72_ = NULL;
+ SpitModule* _tmp73_ = NULL;
+ const gchar* _tmp74_ = NULL;
+ PluginsModuleRep* _tmp75_ = NULL;
+ SpitModule* _tmp76_ = NULL;
+ const gchar* _tmp77_ = NULL;
+ PluginsModuleRep* _tmp78_ = NULL;
+ const gchar* _tmp79_ = NULL;
+ GFile* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ gchar* _tmp82_ = NULL;
+ GeeHashMap* _tmp83_ = NULL;
+ PluginsModuleRep* _tmp84_ = NULL;
+ const gchar* _tmp85_ = NULL;
+ PluginsModuleRep* _tmp86_ = NULL;
+ PluginsModuleRep* _tmp87_ = NULL;
+ SpitModule* _tmp88_ = NULL;
+ gint _tmp89_ = 0;
+ SpitPluggable** _tmp90_ = NULL;
+#line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_return_if_fail (G_IS_FILE (file));
+#line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp0_ = file;
+#line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp1_ = plugins_module_rep_open (_tmp0_);
+#line 354 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ module_rep = _tmp1_;
+#line 355 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp2_ = module_rep;
+#line 355 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp2_ == NULL) {
+#line 3974 "Plugins.c"
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp3_ = file;
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp5_ = _tmp4_;
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp6_ = g_module_error ();
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:356: Unable to load module %s: %s", _tmp5_, _tmp6_);
+#line 356 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp5_);
+#line 358 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 358 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 3995 "Plugins.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp7_ = module_rep;
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp8_ = _tmp7_->module;
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp10_ = g_module_symbol (_tmp8_, SPIT_ENTRY_POINT_NAME, &_tmp9_);
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ entry = _tmp9_;
+#line 363 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!_tmp10_) {
+#line 4007 "Plugins.c"
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp11_ = file;
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp13_ = _tmp12_;
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:364: Unable to load module %s: well-known entry point %s " \
+"not found", _tmp13_, SPIT_ENTRY_POINT_NAME);
+#line 364 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp13_);
+#line 367 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 367 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4025 "Plugins.c"
+ }
+#line 370 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp14_ = entry;
+#line 370 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point = (SpitEntryPoint) _tmp14_;
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (PLUGINS_MIN_SPIT_INTERFACE <= SPIT_CURRENT_INTERFACE) {
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = SPIT_CURRENT_INTERFACE <= PLUGINS_MAX_SPIT_INTERFACE;
+#line 4035 "Plugins.c"
+ } else {
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp15_ = FALSE;
+#line 4039 "Plugins.c"
+ }
+#line 372 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _vala_assert (_tmp15_, "MIN_SPIT_INTERFACE <= Spit.CURRENT_INTERFACE && Spit.CURRENT_INTERFACE <= MAX_SPIT_INTERFACE");
+#line 373 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ memset (&params, 0, sizeof (SpitEntryPointParams));
+#line 374 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.host_min_spit_interface = PLUGINS_MIN_SPIT_INTERFACE;
+#line 375 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.host_max_spit_interface = PLUGINS_MAX_SPIT_INTERFACE;
+#line 376 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.module_spit_interface = SPIT_UNSUPPORTED_INTERFACE;
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp16_ = file;
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp17_ = _g_object_ref0 (_tmp16_);
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (params.module_file);
+#line 377 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ params.module_file = _tmp17_;
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_ = module_rep;
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp19_ = spit_entry_point;
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp20_ = _tmp19_ (&params);
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp18_->spit_module);
+#line 379 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp18_->spit_module = _tmp20_;
+#line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp21_ = params;
+#line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp22_ = _tmp21_.module_spit_interface;
+#line 380 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp22_ == SPIT_UNSUPPORTED_INTERFACE) {
+#line 4075 "Plugins.c"
+ GFile* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp23_ = file;
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp24_ = g_file_get_path (_tmp23_);
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp25_ = _tmp24_;
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:381: Unable to load module %s: module reports no support " \
+"for SPIT interfaces %d to %d", _tmp25_, PLUGINS_MIN_SPIT_INTERFACE, PLUGINS_MAX_SPIT_INTERFACE);
+#line 381 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp25_);
+#line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 384 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4095 "Plugins.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp27_ = params;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp28_ = _tmp27_.module_spit_interface;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp28_ < PLUGINS_MIN_SPIT_INTERFACE) {
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = TRUE;
+#line 4105 "Plugins.c"
+ } else {
+ SpitEntryPointParams _tmp29_ = {0};
+ gint _tmp30_ = 0;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp29_ = params;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp30_ = _tmp29_.module_spit_interface;
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp26_ = _tmp30_ > PLUGINS_MAX_SPIT_INTERFACE;
+#line 4115 "Plugins.c"
+ }
+#line 387 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp26_) {
+#line 4119 "Plugins.c"
+ GFile* _tmp31_ = NULL;
+ gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ PluginsModuleRep* _tmp34_ = NULL;
+ gint _tmp35_ = 0;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp31_ = file;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp32_ = g_file_get_path (_tmp31_);
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp33_ = _tmp32_;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp34_ = module_rep;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp35_ = _tmp34_->spit_interface;
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:388: Unable to load module %s: module reports unsupported" \
+" SPIT version %d (out of range %d to %d)", _tmp33_, _tmp35_, PLUGINS_MIN_SPIT_INTERFACE, PLUGINS_MAX_SPIT_INTERFACE);
+#line 388 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp33_);
+#line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 391 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4145 "Plugins.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp36_ = module_rep;
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp37_ = params;
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp38_ = _tmp37_.module_spit_interface;
+#line 394 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp36_->spit_interface = _tmp38_;
+#line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp39_ = module_rep;
+#line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp40_ = _tmp39_->spit_module;
+#line 397 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp40_, SPIT_TYPE_MODULE)) {
+#line 4161 "Plugins.c"
+ PluginsModuleRep* _tmp41_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp41_ = module_rep;
+#line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (_tmp41_->spit_module);
+#line 398 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp41_->spit_module = NULL;
+#line 4169 "Plugins.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp42_ = module_rep;
+#line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp43_ = _tmp42_->spit_module;
+#line 400 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp43_ == NULL) {
+#line 4177 "Plugins.c"
+ GFile* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ gchar* _tmp46_ = NULL;
+ PluginsModuleRep* _tmp47_ = NULL;
+ gint _tmp48_ = 0;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp44_ = file;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp45_ = g_file_get_path (_tmp44_);
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp46_ = _tmp45_;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp47_ = module_rep;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp48_ = _tmp47_->spit_interface;
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:401: Unable to load module %s (SPIT %d): no spit module r" \
+"eturned", _tmp46_, _tmp48_);
+#line 401 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp46_);
+#line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 404 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4203 "Plugins.c"
+ }
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp49_ = module_rep;
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp50_ = module_rep;
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp51_ = _tmp50_->spit_module;
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp52_ = spit_module_get_id (_tmp51_);
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp53_ = prepare_input_text (_tmp52_, PREPARE_INPUT_TEXT_OPTIONS_DEFAULT, -1);
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp49_->id);
+#line 409 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp49_->id = _tmp53_;
+#line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp54_ = module_rep;
+#line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp55_ = _tmp54_->id;
+#line 410 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp55_ == NULL) {
+#line 4225 "Plugins.c"
+ GFile* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ PluginsModuleRep* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp56_ = file;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp57_ = g_file_get_path (_tmp56_);
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp58_ = _tmp57_;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp59_ = module_rep;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp60_ = _tmp59_->spit_interface;
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:411: Unable to load module %s (SPIT %d): invalid or empty" \
+" module name", _tmp58_, _tmp60_);
+#line 411 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp58_);
+#line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 414 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4251 "Plugins.c"
+ }
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp61_ = plugins_module_table;
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp62_ = module_rep;
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp63_ = _tmp62_->id;
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp64_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp61_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp63_);
+#line 417 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ if (_tmp64_) {
+#line 4263 "Plugins.c"
+ GFile* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ PluginsModuleRep* _tmp68_ = NULL;
+ gint _tmp69_ = 0;
+ PluginsModuleRep* _tmp70_ = NULL;
+ const gchar* _tmp71_ = NULL;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp65_ = file;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp66_ = g_file_get_path (_tmp65_);
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp67_ = _tmp66_;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp68_ = module_rep;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp69_ = _tmp68_->spit_interface;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp70_ = module_rep;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp71_ = _tmp70_->id;
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_critical ("Plugins.vala:418: Not loading module %s (SPIT %d): module with name \"" \
+"%s\" already loaded", _tmp67_, _tmp69_, _tmp71_);
+#line 418 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp67_);
+#line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 421 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ return;
+#line 4295 "Plugins.c"
+ }
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp72_ = module_rep;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp73_ = _tmp72_->spit_module;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp74_ = spit_module_get_module_name (_tmp73_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp75_ = module_rep;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp76_ = _tmp75_->spit_module;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp77_ = spit_module_get_version (_tmp76_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp78_ = module_rep;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp79_ = _tmp78_->id;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp80_ = file;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp81_ = g_file_get_path (_tmp80_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp82_ = _tmp81_;
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ g_debug ("Plugins.vala:424: Loaded SPIT module \"%s %s\" (%s) [%s]", _tmp74_, _tmp77_, _tmp79_, _tmp82_);
+#line 424 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_free0 (_tmp82_);
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp83_ = plugins_module_table;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp84_ = module_rep;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp85_ = _tmp84_->id;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp86_ = module_rep;
+#line 428 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp85_, _tmp86_);
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp87_ = module_rep;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp88_ = _tmp87_->spit_module;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp90_ = spit_module_get_pluggables (_tmp88_, &_tmp89_);
+#line 4339 "Plugins.c"
+ {
+ SpitPluggable** pluggable_collection = NULL;
+ gint pluggable_collection_length1 = 0;
+ gint _pluggable_collection_size_ = 0;
+ gint pluggable_it = 0;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection = _tmp90_;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable_collection_length1 = _tmp89_;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ for (pluggable_it = 0; pluggable_it < _tmp89_; pluggable_it = pluggable_it + 1) {
+#line 4351 "Plugins.c"
+ SpitPluggable* _tmp91_ = NULL;
+ SpitPluggable* pluggable = NULL;
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp91_ = _g_object_ref0 (pluggable_collection[pluggable_it]);
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ pluggable = _tmp91_;
+#line 4358 "Plugins.c"
+ {
+ GeeHashMap* _tmp92_ = NULL;
+ SpitPluggable* _tmp93_ = NULL;
+ const gchar* _tmp94_ = NULL;
+ SpitPluggable* _tmp95_ = NULL;
+ PluginsPluggableRep* _tmp96_ = NULL;
+ PluginsPluggableRep* _tmp97_ = NULL;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp92_ = plugins_pluggable_table;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp93_ = pluggable;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp94_ = spit_pluggable_get_id (_tmp93_);
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp95_ = pluggable;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp96_ = plugins_pluggable_rep_new (_tmp95_);
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _tmp97_ = _tmp96_;
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp92_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp94_, _tmp97_);
+#line 432 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_pluggable_rep_unref0 (_tmp97_);
+#line 431 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _g_object_unref0 (pluggable);
+#line 4384 "Plugins.c"
+ }
+ }
+ }
+#line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ spit_entry_point_params_destroy (&params);
+#line 353 "/home/jens/Source/shotwell/src/plugins/Plugins.vala"
+ _plugins_module_rep_unref0 (module_rep);
+#line 4392 "Plugins.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/plugins/PublishingInterfaces.c b/src/plugins/PublishingInterfaces.c
new file mode 100644
index 0000000..e2e22cb
--- /dev/null
+++ b/src/plugins/PublishingInterfaces.c
@@ -0,0 +1,1760 @@
+/* PublishingInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from PublishingInterfaces.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+#include <gtk/gtk.h>
+
+
+#define SPIT_PUBLISHING_TYPE_PUBLISHER (spit_publishing_publisher_get_type ())
+#define SPIT_PUBLISHING_PUBLISHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_PUBLISHER, SpitPublishingPublisher))
+#define SPIT_PUBLISHING_IS_PUBLISHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHER))
+#define SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHER, SpitPublishingPublisherIface))
+
+typedef struct _SpitPublishingPublisher SpitPublishingPublisher;
+typedef struct _SpitPublishingPublisherIface SpitPublishingPublisherIface;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+
+#define SPIT_PUBLISHING_TYPE_SERVICE (spit_publishing_service_get_type ())
+#define SPIT_PUBLISHING_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_SERVICE, SpitPublishingService))
+#define SPIT_PUBLISHING_IS_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_SERVICE))
+#define SPIT_PUBLISHING_SERVICE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_SERVICE, SpitPublishingServiceIface))
+
+typedef struct _SpitPublishingService SpitPublishingService;
+typedef struct _SpitPublishingServiceIface SpitPublishingServiceIface;
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+#define SPIT_PUBLISHING_TYPE_PLUGIN_HOST (spit_publishing_plugin_host_get_type ())
+#define SPIT_PUBLISHING_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHost))
+#define SPIT_PUBLISHING_IS_PLUGIN_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_PLUGIN_HOST))
+#define SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHostIface))
+
+typedef struct _SpitPublishingPluginHost SpitPublishingPluginHost;
+typedef struct _SpitPublishingPluginHostIface SpitPublishingPluginHostIface;
+
+#define SPIT_PUBLISHING_TYPE_DIALOG_PANE (spit_publishing_dialog_pane_get_type ())
+#define SPIT_PUBLISHING_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane))
+#define SPIT_PUBLISHING_IS_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_DIALOG_PANE))
+#define SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPaneIface))
+
+typedef struct _SpitPublishingDialogPane SpitPublishingDialogPane;
+typedef struct _SpitPublishingDialogPaneIface SpitPublishingDialogPaneIface;
+
+#define SPIT_PUBLISHING_DIALOG_PANE_TYPE_GEOMETRY_OPTIONS (spit_publishing_dialog_pane_geometry_options_get_type ())
+
+#define SPIT_PUBLISHING_PLUGIN_HOST_TYPE_BUTTON_MODE (spit_publishing_plugin_host_button_mode_get_type ())
+
+#define SPIT_PUBLISHING_TYPE_PUBLISHABLE (spit_publishing_publishable_get_type ())
+#define SPIT_PUBLISHING_PUBLISHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_PUBLISHABLE, SpitPublishingPublishable))
+#define SPIT_PUBLISHING_IS_PUBLISHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHABLE))
+#define SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_PUBLISHING_TYPE_PUBLISHABLE, SpitPublishingPublishableIface))
+
+typedef struct _SpitPublishingPublishable SpitPublishingPublishable;
+typedef struct _SpitPublishingPublishableIface SpitPublishingPublishableIface;
+
+#define SPIT_PUBLISHING_PUBLISHER_TYPE_MEDIA_TYPE (spit_publishing_publisher_media_type_get_type ())
+
+/**
+ * Defines different kinds of errors that can occur during publishing.
+ */
+typedef enum {
+ SPIT_PUBLISHING_PUBLISHING_ERROR_NO_ANSWER,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_COMMUNICATION_FAILED,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_PROTOCOL_ERROR,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_SERVICE_ERROR,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_MALFORMED_RESPONSE,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_LOCAL_FILE_ERROR,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_EXPIRED_SESSION,
+ SPIT_PUBLISHING_PUBLISHING_ERROR_SSL_FAILED
+} SpitPublishingPublishingError;
+#define SPIT_PUBLISHING_PUBLISHING_ERROR spit_publishing_publishing_error_quark ()
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+typedef enum {
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_NONE = 0,
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE = 1 << 0,
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE = 1 << 1,
+ SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE = 1 << 2
+} SpitPublishingDialogPaneGeometryOptions;
+
+struct _SpitPublishingDialogPaneIface {
+ GTypeInterface parent_iface;
+ GtkWidget* (*get_widget) (SpitPublishingDialogPane* self);
+ SpitPublishingDialogPaneGeometryOptions (*get_preferred_geometry) (SpitPublishingDialogPane* self);
+ void (*on_pane_installed) (SpitPublishingDialogPane* self);
+ void (*on_pane_uninstalled) (SpitPublishingDialogPane* self);
+ void (*reserved0) (SpitPublishingDialogPane* self);
+ void (*reserved1) (SpitPublishingDialogPane* self);
+ void (*reserved2) (SpitPublishingDialogPane* self);
+ void (*reserved3) (SpitPublishingDialogPane* self);
+ void (*reserved4) (SpitPublishingDialogPane* self);
+ void (*reserved5) (SpitPublishingDialogPane* self);
+ void (*reserved6) (SpitPublishingDialogPane* self);
+ void (*reserved7) (SpitPublishingDialogPane* self);
+};
+
+typedef enum {
+ SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE = 0,
+ SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL = 1
+} SpitPublishingPluginHostButtonMode;
+
+typedef void (*SpitPublishingLoginCallback) (void* user_data);
+typedef enum {
+ SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE = 0,
+ SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO = 1 << 0,
+ SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO = 1 << 1
+} SpitPublishingPublisherMediaType;
+
+struct _SpitPublishingPublishableIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_serialized_file) (SpitPublishingPublishable* self);
+ gchar* (*get_publishing_name) (SpitPublishingPublishable* self);
+ gchar* (*get_param_string) (SpitPublishingPublishable* self, const gchar* name);
+ gchar** (*get_publishing_keywords) (SpitPublishingPublishable* self, int* result_length1);
+ SpitPublishingPublisherMediaType (*get_media_type) (SpitPublishingPublishable* self);
+ GDateTime* (*get_exposure_date_time) (SpitPublishingPublishable* self);
+ void (*reserved0) (SpitPublishingPublishable* self);
+ void (*reserved1) (SpitPublishingPublishable* self);
+ void (*reserved2) (SpitPublishingPublishable* self);
+ void (*reserved3) (SpitPublishingPublishable* self);
+ void (*reserved4) (SpitPublishingPublishable* self);
+ void (*reserved5) (SpitPublishingPublishable* self);
+ void (*reserved6) (SpitPublishingPublishable* self);
+ void (*reserved7) (SpitPublishingPublishable* self);
+};
+
+typedef void (*SpitPublishingProgressCallback) (gint file_number, gdouble fraction_complete, void* user_data);
+struct _SpitPublishingPluginHostIface {
+ GTypeInterface parent_iface;
+ void (*post_error) (SpitPublishingPluginHost* self, GError* err);
+ void (*stop_publishing) (SpitPublishingPluginHost* self);
+ SpitPublishingPublisher* (*get_publisher) (SpitPublishingPluginHost* self);
+ void (*install_dialog_pane) (SpitPublishingPluginHost* self, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode mode);
+ void (*install_static_message_pane) (SpitPublishingPluginHost* self, const gchar* message, SpitPublishingPluginHostButtonMode mode);
+ void (*install_pango_message_pane) (SpitPublishingPluginHost* self, const gchar* markup, SpitPublishingPluginHostButtonMode mode);
+ void (*install_success_pane) (SpitPublishingPluginHost* self);
+ void (*install_account_fetch_wait_pane) (SpitPublishingPluginHost* self);
+ void (*install_login_wait_pane) (SpitPublishingPluginHost* self);
+ void (*install_welcome_pane) (SpitPublishingPluginHost* self, const gchar* welcome_message, SpitPublishingLoginCallback on_login_clicked, void* on_login_clicked_target);
+ void (*set_service_locked) (SpitPublishingPluginHost* self, gboolean is_locked);
+ void (*set_dialog_default_widget) (SpitPublishingPluginHost* self, GtkWidget* widget);
+ SpitPublishingPublishable** (*get_publishables) (SpitPublishingPluginHost* self, int* result_length1);
+ SpitPublishingProgressCallback (*serialize_publishables) (SpitPublishingPluginHost* self, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify);
+ SpitPublishingPublisherMediaType (*get_publishable_media_type) (SpitPublishingPluginHost* self);
+ void (*reserved0) (SpitPublishingPluginHost* self);
+ void (*reserved1) (SpitPublishingPluginHost* self);
+ void (*reserved2) (SpitPublishingPluginHost* self);
+ void (*reserved3) (SpitPublishingPluginHost* self);
+ void (*reserved4) (SpitPublishingPluginHost* self);
+ void (*reserved5) (SpitPublishingPluginHost* self);
+ void (*reserved6) (SpitPublishingPluginHost* self);
+ void (*reserved7) (SpitPublishingPluginHost* self);
+};
+
+struct _SpitPublishingServiceIface {
+ GTypeInterface parent_iface;
+ SpitPublishingPublisher* (*create_publisher) (SpitPublishingService* self, SpitPublishingPluginHost* host);
+ SpitPublishingPublisherMediaType (*get_supported_media) (SpitPublishingService* self);
+ void (*reserved0) (SpitPublishingService* self);
+ void (*reserved1) (SpitPublishingService* self);
+ void (*reserved2) (SpitPublishingService* self);
+ void (*reserved3) (SpitPublishingService* self);
+ void (*reserved4) (SpitPublishingService* self);
+ void (*reserved5) (SpitPublishingService* self);
+ void (*reserved6) (SpitPublishingService* self);
+ void (*reserved7) (SpitPublishingService* self);
+};
+
+struct _SpitPublishingPublisherIface {
+ GTypeInterface parent_iface;
+ SpitPublishingService* (*get_service) (SpitPublishingPublisher* self);
+ void (*start) (SpitPublishingPublisher* self);
+ gboolean (*is_running) (SpitPublishingPublisher* self);
+ void (*stop) (SpitPublishingPublisher* self);
+ void (*reserved0) (SpitPublishingPublisher* self);
+ void (*reserved1) (SpitPublishingPublisher* self);
+ void (*reserved2) (SpitPublishingPublisher* self);
+ void (*reserved3) (SpitPublishingPublisher* self);
+ void (*reserved4) (SpitPublishingPublisher* self);
+ void (*reserved5) (SpitPublishingPublisher* self);
+ void (*reserved6) (SpitPublishingPublisher* self);
+ void (*reserved7) (SpitPublishingPublisher* self);
+};
+
+
+
+#define SPIT_PUBLISHING_CURRENT_INTERFACE 0
+GQuark spit_publishing_publishing_error_quark (void);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_publishing_dialog_pane_geometry_options_get_type (void) G_GNUC_CONST;
+GType spit_publishing_dialog_pane_get_type (void) G_GNUC_CONST;
+GType spit_publishing_plugin_host_button_mode_get_type (void) G_GNUC_CONST;
+GType spit_publishing_publisher_media_type_get_type (void) G_GNUC_CONST;
+GType spit_publishing_publishable_get_type (void) G_GNUC_CONST;
+GType spit_publishing_plugin_host_get_type (void) G_GNUC_CONST;
+GType spit_publishing_service_get_type (void) G_GNUC_CONST;
+GType spit_publishing_publisher_get_type (void) G_GNUC_CONST;
+SpitPublishingService* spit_publishing_publisher_get_service (SpitPublishingPublisher* self);
+void spit_publishing_publisher_start (SpitPublishingPublisher* self);
+gboolean spit_publishing_publisher_is_running (SpitPublishingPublisher* self);
+void spit_publishing_publisher_stop (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved0 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved0 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved1 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved1 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved2 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved2 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved3 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved3 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved4 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved4 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved5 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved5 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved6 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved6 (SpitPublishingPublisher* self);
+void spit_publishing_publisher_reserved7 (SpitPublishingPublisher* self);
+static void spit_publishing_publisher_real_reserved7 (SpitPublishingPublisher* self);
+GtkWidget* spit_publishing_dialog_pane_get_widget (SpitPublishingDialogPane* self);
+SpitPublishingDialogPaneGeometryOptions spit_publishing_dialog_pane_get_preferred_geometry (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_on_pane_installed (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_on_pane_uninstalled (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved0 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved0 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved1 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved1 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved2 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved2 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved3 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved3 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved4 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved4 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved5 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved5 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved6 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved6 (SpitPublishingDialogPane* self);
+void spit_publishing_dialog_pane_reserved7 (SpitPublishingDialogPane* self);
+static void spit_publishing_dialog_pane_real_reserved7 (SpitPublishingDialogPane* self);
+void spit_publishing_plugin_host_post_error (SpitPublishingPluginHost* self, GError* err);
+void spit_publishing_plugin_host_stop_publishing (SpitPublishingPluginHost* self);
+SpitPublishingPublisher* spit_publishing_plugin_host_get_publisher (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_dialog_pane (SpitPublishingPluginHost* self, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode mode);
+void spit_publishing_plugin_host_install_static_message_pane (SpitPublishingPluginHost* self, const gchar* message, SpitPublishingPluginHostButtonMode mode);
+void spit_publishing_plugin_host_install_pango_message_pane (SpitPublishingPluginHost* self, const gchar* markup, SpitPublishingPluginHostButtonMode mode);
+void spit_publishing_plugin_host_install_success_pane (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_account_fetch_wait_pane (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_login_wait_pane (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_install_welcome_pane (SpitPublishingPluginHost* self, const gchar* welcome_message, SpitPublishingLoginCallback on_login_clicked, void* on_login_clicked_target);
+void spit_publishing_plugin_host_set_service_locked (SpitPublishingPluginHost* self, gboolean is_locked);
+void spit_publishing_plugin_host_set_dialog_default_widget (SpitPublishingPluginHost* self, GtkWidget* widget);
+SpitPublishingPublishable** spit_publishing_plugin_host_get_publishables (SpitPublishingPluginHost* self, int* result_length1);
+SpitPublishingProgressCallback spit_publishing_plugin_host_serialize_publishables (SpitPublishingPluginHost* self, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify);
+SpitPublishingPublisherMediaType spit_publishing_plugin_host_get_publishable_media_type (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved0 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved0 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved1 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved1 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved2 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved2 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved3 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved3 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved4 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved4 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved5 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved5 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved6 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved6 (SpitPublishingPluginHost* self);
+void spit_publishing_plugin_host_reserved7 (SpitPublishingPluginHost* self);
+static void spit_publishing_plugin_host_real_reserved7 (SpitPublishingPluginHost* self);
+GFile* spit_publishing_publishable_get_serialized_file (SpitPublishingPublishable* self);
+gchar* spit_publishing_publishable_get_publishing_name (SpitPublishingPublishable* self);
+gchar* spit_publishing_publishable_get_param_string (SpitPublishingPublishable* self, const gchar* name);
+gchar** spit_publishing_publishable_get_publishing_keywords (SpitPublishingPublishable* self, int* result_length1);
+SpitPublishingPublisherMediaType spit_publishing_publishable_get_media_type (SpitPublishingPublishable* self);
+GDateTime* spit_publishing_publishable_get_exposure_date_time (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved0 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved0 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved1 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved1 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved2 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved2 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved3 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved3 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved4 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved4 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved5 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved5 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved6 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved6 (SpitPublishingPublishable* self);
+void spit_publishing_publishable_reserved7 (SpitPublishingPublishable* self);
+static void spit_publishing_publishable_real_reserved7 (SpitPublishingPublishable* self);
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_BASENAME "basename"
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_TITLE "title"
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_COMMENT "comment"
+#define SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_EVENTCOMMENT "eventcomment"
+SpitPublishingPublisher* spit_publishing_service_create_publisher (SpitPublishingService* self, SpitPublishingPluginHost* host);
+SpitPublishingPublisherMediaType spit_publishing_service_get_supported_media (SpitPublishingService* self);
+void spit_publishing_service_reserved0 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved0 (SpitPublishingService* self);
+void spit_publishing_service_reserved1 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved1 (SpitPublishingService* self);
+void spit_publishing_service_reserved2 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved2 (SpitPublishingService* self);
+void spit_publishing_service_reserved3 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved3 (SpitPublishingService* self);
+void spit_publishing_service_reserved4 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved4 (SpitPublishingService* self);
+void spit_publishing_service_reserved5 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved5 (SpitPublishingService* self);
+void spit_publishing_service_reserved6 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved6 (SpitPublishingService* self);
+void spit_publishing_service_reserved7 (SpitPublishingService* self);
+static void spit_publishing_service_real_reserved7 (SpitPublishingService* self);
+
+
+GQuark spit_publishing_publishing_error_quark (void) {
+ return g_quark_from_static_string ("spit_publishing_publishing_error-quark");
+}
+
+
+/**
+ * Describes the kinds of media a publishing service supports.
+ *
+ * Values can be masked together, for example: {{{(MediaType.PHOTO | MediaType.VIDEO)}}}
+ * indicates that a publishing service supports the upload of both photos and videos.
+ */
+GType spit_publishing_publisher_media_type_get_type (void) {
+ static volatile gsize spit_publishing_publisher_media_type_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_publisher_media_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE, "SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE", "none"}, {SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO, "SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO", "photo"}, {SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO, "SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO", "video"}, {0, NULL, NULL}};
+ GType spit_publishing_publisher_media_type_type_id;
+ spit_publishing_publisher_media_type_type_id = g_enum_register_static ("SpitPublishingPublisherMediaType", values);
+ g_once_init_leave (&spit_publishing_publisher_media_type_type_id__volatile, spit_publishing_publisher_media_type_type_id);
+ }
+ return spit_publishing_publisher_media_type_type_id__volatile;
+}
+
+
+/**
+ * Returns a {@link Service} object describing the service to which this connects.
+ */
+SpitPublishingService* spit_publishing_publisher_get_service (SpitPublishingPublisher* self) {
+#line 121 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self), NULL);
+#line 121 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->get_service (self);
+#line 432 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Makes this publisher enter the running state and endows it with exclusive access
+ * to the shared services provided by the {@link PluginHost}. Through the host’s interface,
+ * this publisher can install user interface panes and query configuration information.
+ * Only running services should perform network operations.
+ */
+void spit_publishing_publisher_start (SpitPublishingPublisher* self) {
+#line 129 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 129 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->start (self);
+#line 447 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns true if this publisher is in the running state; false otherwise.
+ */
+gboolean spit_publishing_publisher_is_running (SpitPublishingPublisher* self) {
+#line 134 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self), FALSE);
+#line 134 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->is_running (self);
+#line 459 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Causes this publisher to enter a non-running state. This publisher should stop all
+ * network operations and cease use of the shared services provided by the {@link PluginHost}.
+ */
+void spit_publishing_publisher_stop (SpitPublishingPublisher* self) {
+#line 140 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 140 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->stop (self);
+#line 472 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved0 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved0 (SpitPublishingPublisher* self) {
+#line 145 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 145 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved0 (self);
+#line 485 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved1 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved1 (SpitPublishingPublisher* self) {
+#line 146 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 146 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved1 (self);
+#line 498 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved2 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved2 (SpitPublishingPublisher* self) {
+#line 147 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 147 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved2 (self);
+#line 511 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved3 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved3 (SpitPublishingPublisher* self) {
+#line 148 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 148 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved3 (self);
+#line 524 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved4 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved4 (SpitPublishingPublisher* self) {
+#line 149 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 149 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved4 (self);
+#line 537 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved5 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved5 (SpitPublishingPublisher* self) {
+#line 150 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 150 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved5 (self);
+#line 550 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved6 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved6 (SpitPublishingPublisher* self) {
+#line 151 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 151 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved6 (self);
+#line 563 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_real_reserved7 (SpitPublishingPublisher* self) {
+}
+
+
+void spit_publishing_publisher_reserved7 (SpitPublishingPublisher* self) {
+#line 152 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHER (self));
+#line 152 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHER_GET_INTERFACE (self)->reserved7 (self);
+#line 576 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publisher_base_init (SpitPublishingPublisherIface * iface) {
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_publisher_real_reserved0;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_publisher_real_reserved1;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_publisher_real_reserved2;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_publisher_real_reserved3;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_publisher_real_reserved4;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_publisher_real_reserved5;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_publisher_real_reserved6;
+#line 105 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_publisher_real_reserved7;
+#line 603 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Represents a connection to a publishing service.
+ *
+ * Developers of publishing plugins provide a class that implements this interface. At
+ * any given time, only one Publisher can be running. When a publisher is running, it is
+ * allowed to access the network and has exclusive use of the shared user-interface and
+ * configuration services provided by the {@link PluginHost}. Publishers are created in
+ * a non-running state and do not begin running until start( ) is invoked. Publishers
+ * run until stop( ) is invoked.
+ */
+GType spit_publishing_publisher_get_type (void) {
+ static volatile gsize spit_publishing_publisher_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_publisher_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingPublisherIface), (GBaseInitFunc) spit_publishing_publisher_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_publisher_type_id;
+ spit_publishing_publisher_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingPublisher", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_publisher_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_publishing_publisher_type_id__volatile, spit_publishing_publisher_type_id);
+ }
+ return spit_publishing_publisher_type_id__volatile;
+}
+
+
+/**
+ * Describes how the on-screen publishing dialog box should look and behave when an associated
+ * pane is installed in the on-screen publishing dialog box.
+ */
+GType spit_publishing_dialog_pane_geometry_options_get_type (void) {
+ static volatile gsize spit_publishing_dialog_pane_geometry_options_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_dialog_pane_geometry_options_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_NONE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_NONE", "none"}, {SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE", "extended-size"}, {SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE", "resizable"}, {SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE, "SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE", "colossal-size"}, {0, NULL, NULL}};
+ GType spit_publishing_dialog_pane_geometry_options_type_id;
+ spit_publishing_dialog_pane_geometry_options_type_id = g_enum_register_static ("SpitPublishingDialogPaneGeometryOptions", values);
+ g_once_init_leave (&spit_publishing_dialog_pane_geometry_options_type_id__volatile, spit_publishing_dialog_pane_geometry_options_type_id);
+ }
+ return spit_publishing_dialog_pane_geometry_options_type_id__volatile;
+}
+
+
+/**
+ * Returns the Gtk.Widget that is this pane's on-screen representation.
+ */
+GtkWidget* spit_publishing_dialog_pane_get_widget (SpitPublishingDialogPane* self) {
+#line 197 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self), NULL);
+#line 197 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->get_widget (self);
+#line 655 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a {@link GeometryOptions} bitfield describing how the on-screen publishing dialog
+ * box should look and behave when this pane is installed.
+ */
+SpitPublishingDialogPaneGeometryOptions spit_publishing_dialog_pane_get_preferred_geometry (SpitPublishingDialogPane* self) {
+#line 203 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self), 0);
+#line 203 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->get_preferred_geometry (self);
+#line 668 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been installed into the on-screen
+ * publishing dialog box and become visible to the user.
+ */
+void spit_publishing_dialog_pane_on_pane_installed (SpitPublishingDialogPane* self) {
+#line 209 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 209 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->on_pane_installed (self);
+#line 681 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Invoked automatically by Shotwell when this pane has been removed from the on-screen
+ * publishing dialog box and is no longer visible to the user.
+ */
+void spit_publishing_dialog_pane_on_pane_uninstalled (SpitPublishingDialogPane* self) {
+#line 215 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 215 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->on_pane_uninstalled (self);
+#line 694 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved0 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved0 (SpitPublishingDialogPane* self) {
+#line 220 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 220 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved0 (self);
+#line 707 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved1 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved1 (SpitPublishingDialogPane* self) {
+#line 221 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 221 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved1 (self);
+#line 720 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved2 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved2 (SpitPublishingDialogPane* self) {
+#line 222 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 222 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved2 (self);
+#line 733 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved3 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved3 (SpitPublishingDialogPane* self) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 223 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved3 (self);
+#line 746 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved4 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved4 (SpitPublishingDialogPane* self) {
+#line 224 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 224 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved4 (self);
+#line 759 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved5 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved5 (SpitPublishingDialogPane* self) {
+#line 225 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 225 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved5 (self);
+#line 772 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved6 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved6 (SpitPublishingDialogPane* self) {
+#line 226 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 226 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved6 (self);
+#line 785 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_real_reserved7 (SpitPublishingDialogPane* self) {
+}
+
+
+void spit_publishing_dialog_pane_reserved7 (SpitPublishingDialogPane* self) {
+#line 227 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (self));
+#line 227 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_DIALOG_PANE_GET_INTERFACE (self)->reserved7 (self);
+#line 798 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_dialog_pane_base_init (SpitPublishingDialogPaneIface * iface) {
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_dialog_pane_real_reserved0;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_dialog_pane_real_reserved1;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_dialog_pane_real_reserved2;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_dialog_pane_real_reserved3;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_dialog_pane_real_reserved4;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_dialog_pane_real_reserved5;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_dialog_pane_real_reserved6;
+#line 160 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_dialog_pane_real_reserved7;
+#line 825 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Encapsulates a pane that can be installed in the on-screen publishing dialog box to
+ * communicate status to and to get information from the user.
+ *
+ */
+GType spit_publishing_dialog_pane_get_type (void) {
+ static volatile gsize spit_publishing_dialog_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_dialog_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingDialogPaneIface), (GBaseInitFunc) spit_publishing_dialog_pane_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_dialog_pane_type_id;
+ spit_publishing_dialog_pane_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingDialogPane", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_dialog_pane_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_publishing_dialog_pane_type_id__volatile, spit_publishing_dialog_pane_type_id);
+ }
+ return spit_publishing_dialog_pane_type_id__volatile;
+}
+
+
+/**
+ * Specifies the label text on the push button control that appears in the
+ * lower-right-hand corner of the on-screen publishing dialog box.
+ */
+GType spit_publishing_plugin_host_button_mode_get_type (void) {
+ static volatile gsize spit_publishing_plugin_host_button_mode_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_plugin_host_button_mode_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE, "SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE", "close"}, {SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL, "SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL", "cancel"}, {0, NULL, NULL}};
+ GType spit_publishing_plugin_host_button_mode_type_id;
+ spit_publishing_plugin_host_button_mode_type_id = g_enum_register_static ("SpitPublishingPluginHostButtonMode", values);
+ g_once_init_leave (&spit_publishing_plugin_host_button_mode_type_id__volatile, spit_publishing_plugin_host_button_mode_type_id);
+ }
+ return spit_publishing_plugin_host_button_mode_type_id__volatile;
+}
+
+
+/**
+ * Notifies the user that an unrecoverable publishing error has occurred and halts
+ * the publishing process.
+ *
+ * @param err An error object that describes the kind of error that occurred.
+ */
+void spit_publishing_plugin_host_post_error (SpitPublishingPluginHost* self, GError* err) {
+#line 277 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 277 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->post_error (self, err);
+#line 875 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Halts the publishing process.
+ *
+ * Calling this method stops all network activity and hides the on-screen publishing
+ * dialog box.
+ */
+void spit_publishing_plugin_host_stop_publishing (SpitPublishingPluginHost* self) {
+#line 285 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 285 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->stop_publishing (self);
+#line 890 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a reference to the {@link Publisher} object that this is currently hosting.
+ */
+SpitPublishingPublisher* spit_publishing_plugin_host_get_publisher (SpitPublishingPluginHost* self) {
+#line 290 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), NULL);
+#line 290 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->get_publisher (self);
+#line 902 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen publishing dialog box, making the pane visible
+ * and allowing it to interact with the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param pane the pane to install
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen publishing dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your publisher is in the
+ * middle of uploading 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the publishing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable publishing actions have already
+ * occurred.
+ */
+void spit_publishing_plugin_host_install_dialog_pane (SpitPublishingPluginHost* self, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode mode) {
+#line 310 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 310 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_dialog_pane (self, pane, mode);
+#line 929 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen publishing dialog box that contains
+ * static text.
+ *
+ * The text appears centered in the publishing dialog box and is drawn in
+ * the system font. This is a convenience method only; similar results could be
+ * achieved by manually constructing a Gtk.Label widget, wrapping it inside a
+ * {@link DialogPane}, and installing it manually with a call to
+ * install_dialog_pane( ). To provide visual consistency across publishing services,
+ * however, always use this convenience method instead of constructing label panes when
+ * you need to display static text to the user.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param message the text to show in the pane
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen publishing dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your publisher is in the
+ * middle of uploading 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the publishing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable publishing actions have already
+ * occurred.
+ */
+void spit_publishing_plugin_host_install_static_message_pane (SpitPublishingPluginHost* self, const gchar* message, SpitPublishingPluginHostButtonMode mode) {
+#line 339 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 339 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_static_message_pane (self, message, mode);
+#line 964 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Works just like {@link install_static_message_pane} but allows markup to contain
+ * Pango text formatting tags as well as unstyled text.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param markup the text to show in the pane, marked up with Pango formatting tags.
+ *
+ * @param mode allows you to set the text displayed on the close/cancel button in the
+ * lower-right-hand corner of the on-screen publishing dialog box when pane is installed.
+ * If mode is ButtonMode.CLOSE, the button will have the title "Close." If mode is
+ * ButtonMode.CANCEL, the button will be titled "Cancel." You should set mode depending on
+ * whether a cancellable action is in progress. For example, if your publisher is in the
+ * middle of uploading 3 of 8 videos, then mode should be ButtonMode.CANCEL. However, if
+ * the publishing operation has completed and the success pane is displayed, then mode
+ * should be ButtonMode.CLOSE, because all cancellable publishing actions have already
+ * occurred.
+ */
+void spit_publishing_plugin_host_install_pango_message_pane (SpitPublishingPluginHost* self, const gchar* markup, SpitPublishingPluginHostButtonMode mode) {
+#line 360 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 360 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_pango_message_pane (self, markup, mode);
+#line 991 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane in the on-screen publishing dialog box notifying the user
+ * that his or her publishing operation completed successfully.
+ *
+ * The text displayed depends on the type of media the current publishing service
+ * supports. To provide visual consistency across publishing services and to allow
+ * Shotwell to handle internationalization, always use this convenience method; don’t
+ * contruct and install success panes manually.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor
+ * this request.
+ */
+void spit_publishing_plugin_host_install_success_pane (SpitPublishingPluginHost* self) {
+#line 375 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 375 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_success_pane (self);
+#line 1012 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane displaying the static text “Fetching account information...”
+ * in the on-screen publishing dialog box, making it visible to the user.
+ *
+ * This is a convenience method only; similar results could be achieved by calling
+ * {@link install_static_message_pane} with an appropriate text argument. To provide
+ * visual consistency across publishing services and to allow Shotwell to handle
+ * internationalization, however, you should always use this convenience method whenever
+ * you need to tell the user that you’re querying account information over the network.
+ * Queries such as this are almost always performed immediately after the user has logged
+ * in to the remote service.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ */
+void spit_publishing_plugin_host_install_account_fetch_wait_pane (SpitPublishingPluginHost* self) {
+#line 391 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 391 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_account_fetch_wait_pane (self);
+#line 1035 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Works just like {@link install_account_fetch_wait_pane} but displays the static text
+ * “Logging in...“
+ *
+ * As with {@link install_account_fetch_wait_pane}, this is a convenience method, but
+ * you should you use it provide to visual consistency and to let Shotwell handle
+ * internationalization. See the description of {@link install_account_fetch_wait_pane}
+ * for more information.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ */
+void spit_publishing_plugin_host_install_login_wait_pane (SpitPublishingPluginHost* self) {
+#line 405 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 405 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_login_wait_pane (self);
+#line 1055 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Attempts to install a pane displaying the text 'welcome_message' above a push
+ * button labeled “Login” in the on-screen publishing dialog box, making it visible to the
+ * user.
+ *
+ * When the user clicks the “Login” button, you’ll be notified of the user’s action through
+ * the callback 'on_login_clicked'. Every Publisher should provide a welcome pane to
+ * introduce the service and explain service-specific features or restrictions. To provide
+ * visual consistency across publishing services and to allow Shotwell to handle
+ * internationalization, always use this convenience method; don’t contruct and install
+ * welcome panes manually.
+ *
+ * If an error has posted, the {@link PluginHost} will not honor this request.
+ *
+ * @param welcome_message the text to be displayed above a push button labeled “Login”
+ * in the on-screen publishing dialog box.
+ *
+ * @param on_login_clicked specifies the callback that is invoked when the user clicks
+ * the “Login” button.
+ */
+void spit_publishing_plugin_host_install_welcome_pane (SpitPublishingPluginHost* self, const gchar* welcome_message, SpitPublishingLoginCallback on_login_clicked, void* on_login_clicked_target) {
+#line 427 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 427 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->install_welcome_pane (self, welcome_message, on_login_clicked, on_login_clicked_target);
+#line 1084 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Toggles whether the service selector combo box in the upper-right-hand corner of the
+ * on-screen publishing dialog box is sensitive to input.
+ *
+ * Publishers should make the service selector box insensitive to input when they are performing
+ * non-interruptible file or network operations, since switching to another publishing
+ * service will halt whatever service is currently running. Under certain circumstances,
+ * the {@link PluginHost} may not honor this request.
+ *
+ * @param is_locked when is_locked is true, the service selector combo box is made insensitive.
+ * It appears greyed out and the user is prevented from switching to another publishing service.
+ * When is_locked is false, the combo box is sensitive, allowing the user to freely switch
+ * from the current service to another service.
+ */
+void spit_publishing_plugin_host_set_service_locked (SpitPublishingPluginHost* self, gboolean is_locked) {
+#line 444 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 444 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->set_service_locked (self, is_locked);
+#line 1107 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Makes the designated widget the default widget for the publishing dialog.
+ *
+ * After a call to this method, the designated widget will be activated whenever the user
+ * presses the [ENTER] key anywhere in the on-screen publishing dialog box. Under certain
+ * circumstances, the {@link PluginHost} may not honor this request.
+ *
+ * @param widget a reference to the widget to designate as the default widget for the
+ * publishing dialog.
+ */
+void spit_publishing_plugin_host_set_dialog_default_widget (SpitPublishingPluginHost* self, GtkWidget* widget) {
+#line 456 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 456 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->set_dialog_default_widget (self, widget);
+#line 1126 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns an array of the publishable media items that the user has selected for upload to the
+ * remote service.
+ */
+SpitPublishingPublishable** spit_publishing_plugin_host_get_publishables (SpitPublishingPluginHost* self, int* result_length1) {
+#line 462 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), NULL);
+#line 462 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->get_publishables (self, result_length1);
+#line 1139 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Writes all of the publishable media items that the user has selected for upload to the
+ * remote service to a temporary directory on a local disk.
+ *
+ * You should call this method immediately before sending the publishable media items to the
+ * remote service over the network. Because serializing several megabytes of data is a
+ * potentially lengthy operation, calling this method installs an activity status pane in
+ * the on-screen publishing dialog box. The activity status pane displays a progress bar along
+ * with a string of informational text.
+ *
+ * Because sending items over the network to the remote service is also a potentially lengthy
+ * operation, you should leave the activity status pane installed in the on-screen publishing
+ * dialog box until this task is finished. Periodically during the sending process, you should
+ * report to the user on the progress of his or her upload. You can do this by invoking the
+ * returned {@link ProgressCallback} delegate.
+ *
+ * After calling this method, the activity status pane that this method installs remains
+ * displayed in the on-screen publishing dialog box until you install a new pane.
+ *
+ * @param content_major_axis when serializing publishable media items that are photos,
+ * ensure that neither the width nor the height of the serialized
+ * photo is greater than content_major_axis pixels. The value of
+ * this parameter has no effect on video publishables.
+ *
+ * @param strip_metadata when serializing publishable media items that are photos, if
+ * strip_metadata is true, all EXIF, IPTC, and XMP metadata will be
+ * removed from the serialized file. If strip_metadata is false, all
+ * metadata will be left intact. The value of this parameter has no
+ * effect on video publishables.
+ */
+SpitPublishingProgressCallback spit_publishing_plugin_host_serialize_publishables (SpitPublishingPluginHost* self, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify) {
+#line 494 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), NULL);
+#line 494 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->serialize_publishables (self, content_major_axis, strip_metadata, result_target, result_target_destroy_notify);
+#line 1178 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a {@link Publisher.MediaType} bitfield describing which kinds of media are present
+ * in the set of publishable media items that the user has selected for upload to the remote
+ * service.
+ */
+SpitPublishingPublisherMediaType spit_publishing_plugin_host_get_publishable_media_type (SpitPublishingPluginHost* self) {
+#line 502 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self), 0);
+#line 502 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->get_publishable_media_type (self);
+#line 1192 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved0 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved0 (SpitPublishingPluginHost* self) {
+#line 507 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 507 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved0 (self);
+#line 1205 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved1 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved1 (SpitPublishingPluginHost* self) {
+#line 508 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 508 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved1 (self);
+#line 1218 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved2 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved2 (SpitPublishingPluginHost* self) {
+#line 509 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 509 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved2 (self);
+#line 1231 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved3 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved3 (SpitPublishingPluginHost* self) {
+#line 510 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 510 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved3 (self);
+#line 1244 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved4 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved4 (SpitPublishingPluginHost* self) {
+#line 511 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 511 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved4 (self);
+#line 1257 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved5 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved5 (SpitPublishingPluginHost* self) {
+#line 512 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 512 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved5 (self);
+#line 1270 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved6 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved6 (SpitPublishingPluginHost* self) {
+#line 513 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 513 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved6 (self);
+#line 1283 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_real_reserved7 (SpitPublishingPluginHost* self) {
+}
+
+
+void spit_publishing_plugin_host_reserved7 (SpitPublishingPluginHost* self) {
+#line 514 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PLUGIN_HOST (self));
+#line 514 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PLUGIN_HOST_GET_INTERFACE (self)->reserved7 (self);
+#line 1296 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_plugin_host_base_init (SpitPublishingPluginHostIface * iface) {
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_plugin_host_real_reserved0;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_plugin_host_real_reserved1;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_plugin_host_real_reserved2;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_plugin_host_real_reserved3;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_plugin_host_real_reserved4;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_plugin_host_real_reserved5;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_plugin_host_real_reserved6;
+#line 260 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_plugin_host_real_reserved7;
+#line 1323 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Manages and provides services for publishing plugins.
+ *
+ * Implemented inside Shotwell, the PluginHost provides an interface through which the
+ * developers of publishing plugins can query and make changes to the publishing
+ * environment. For example, through the PluginHost, plugins can get a list of the photos
+ * and videos to be published, install and remove user-interface panes in the publishing
+ * dialog box, and request that the items to be uploaded be serialized to a temporary
+ * directory on disk. Plugins can use the services of the PluginHost only when their
+ * {@link Publisher} is in the running state. This ensures that non-running publishers
+ * don’t destructively interfere with the actively running publisher.
+ */
+GType spit_publishing_plugin_host_get_type (void) {
+ static volatile gsize spit_publishing_plugin_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_plugin_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingPluginHostIface), (GBaseInitFunc) spit_publishing_plugin_host_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_plugin_host_type_id;
+ spit_publishing_plugin_host_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingPluginHost", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_plugin_host_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_publishing_plugin_host_type_id, SPIT_TYPE_HOST_INTERFACE);
+ g_once_init_leave (&spit_publishing_plugin_host_type_id__volatile, spit_publishing_plugin_host_type_id);
+ }
+ return spit_publishing_plugin_host_type_id__volatile;
+}
+
+
+/**
+ * Returns a handle to the file on disk to which this publishable's data has been
+ * serialized.
+ *
+ * You should use this file handle to read into memory the binary data you will send over
+ * the network to the remote publishing service when this publishable is uploaded.
+ */
+GFile* spit_publishing_publishable_get_serialized_file (SpitPublishingPublishable* self) {
+#line 535 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 535 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_serialized_file (self);
+#line 1366 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a name that can be used to identify this publishable to the remote service.
+ * If the publishing host cannot derive a sensible name, this method will
+ * return an empty string. Plugins should be able to handle that situation
+ * and provide a fallback value. One possible option for a fallback is:
+ * get_param_string(Spit.Publishing.Publishable.PARAM_STRING_BASENAME)
+ */
+gchar* spit_publishing_publishable_get_publishing_name (SpitPublishingPublishable* self) {
+#line 544 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 544 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_publishing_name (self);
+#line 1382 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns a string value from the publishable corresponding with the parameter name
+ * provided, or null if there is no value for this name.
+ */
+gchar* spit_publishing_publishable_get_param_string (SpitPublishingPublishable* self, const gchar* name) {
+#line 550 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 550 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_param_string (self, name);
+#line 1395 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns an array of strings that should be used to tag or mark this publishable on the
+ * remote service, or null if this publishable has no tags or markings.
+ */
+gchar** spit_publishing_publishable_get_publishing_keywords (SpitPublishingPublishable* self, int* result_length1) {
+#line 556 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 556 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_publishing_keywords (self, result_length1);
+#line 1408 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns the kind of media item this publishable encapsulates.
+ */
+SpitPublishingPublisherMediaType spit_publishing_publishable_get_media_type (SpitPublishingPublishable* self) {
+#line 561 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), 0);
+#line 561 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_media_type (self);
+#line 1420 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns the creation timestamp on the file.
+ */
+GDateTime* spit_publishing_publishable_get_exposure_date_time (SpitPublishingPublishable* self) {
+#line 566 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self), NULL);
+#line 566 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->get_exposure_date_time (self);
+#line 1432 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved0 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved0 (SpitPublishingPublishable* self) {
+#line 571 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 571 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved0 (self);
+#line 1445 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved1 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved1 (SpitPublishingPublishable* self) {
+#line 572 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 572 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved1 (self);
+#line 1458 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved2 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved2 (SpitPublishingPublishable* self) {
+#line 573 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 573 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved2 (self);
+#line 1471 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved3 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved3 (SpitPublishingPublishable* self) {
+#line 574 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 574 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved3 (self);
+#line 1484 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved4 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved4 (SpitPublishingPublishable* self) {
+#line 575 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 575 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved4 (self);
+#line 1497 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved5 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved5 (SpitPublishingPublishable* self) {
+#line 576 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 576 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved5 (self);
+#line 1510 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved6 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved6 (SpitPublishingPublishable* self) {
+#line 577 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 577 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved6 (self);
+#line 1523 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_real_reserved7 (SpitPublishingPublishable* self) {
+}
+
+
+void spit_publishing_publishable_reserved7 (SpitPublishingPublishable* self) {
+#line 578 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_PUBLISHABLE (self));
+#line 578 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_PUBLISHABLE_GET_INTERFACE (self)->reserved7 (self);
+#line 1536 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_publishable_base_init (SpitPublishingPublishableIface * iface) {
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_publishable_real_reserved0;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_publishable_real_reserved1;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_publishable_real_reserved2;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_publishable_real_reserved3;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_publishable_real_reserved4;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_publishable_real_reserved5;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_publishable_real_reserved6;
+#line 521 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_publishable_real_reserved7;
+#line 1563 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Describes an underlying media item (such as a photo or a video) that your plugin
+ * uploads to a remote publishing service.
+ */
+GType spit_publishing_publishable_get_type (void) {
+ static volatile gsize spit_publishing_publishable_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_publishable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingPublishableIface), (GBaseInitFunc) spit_publishing_publishable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_publishable_type_id;
+ spit_publishing_publishable_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingPublishable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_publishable_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_publishing_publishable_type_id__volatile, spit_publishing_publishable_type_id);
+ }
+ return spit_publishing_publishable_type_id__volatile;
+}
+
+
+/**
+ * A factory method that instantiates and returns a new {@link Publisher} object that
+ * encapsulates a connection to the remote publishing service that this Service describes.
+ */
+SpitPublishingPublisher* spit_publishing_service_create_publisher (SpitPublishingService* self, SpitPublishingPluginHost* host) {
+#line 591 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_SERVICE (self), NULL);
+#line 591 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->create_publisher (self, host);
+#line 1594 "PublishingInterfaces.c"
+}
+
+
+/**
+ * Returns the kinds of media that this service can work with.
+ */
+SpitPublishingPublisherMediaType spit_publishing_service_get_supported_media (SpitPublishingService* self) {
+#line 596 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_SERVICE (self), 0);
+#line 596 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ return SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->get_supported_media (self);
+#line 1606 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved0 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved0 (SpitPublishingService* self) {
+#line 601 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 601 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved0 (self);
+#line 1619 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved1 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved1 (SpitPublishingService* self) {
+#line 602 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 602 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved1 (self);
+#line 1632 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved2 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved2 (SpitPublishingService* self) {
+#line 603 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 603 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved2 (self);
+#line 1645 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved3 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved3 (SpitPublishingService* self) {
+#line 604 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 604 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved3 (self);
+#line 1658 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved4 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved4 (SpitPublishingService* self) {
+#line 605 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 605 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved4 (self);
+#line 1671 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved5 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved5 (SpitPublishingService* self) {
+#line 606 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 606 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved5 (self);
+#line 1684 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved6 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved6 (SpitPublishingService* self) {
+#line 607 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 607 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved6 (self);
+#line 1697 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_real_reserved7 (SpitPublishingService* self) {
+}
+
+
+void spit_publishing_service_reserved7 (SpitPublishingService* self) {
+#line 608 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_SERVICE (self));
+#line 608 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ SPIT_PUBLISHING_SERVICE_GET_INTERFACE (self)->reserved7 (self);
+#line 1710 "PublishingInterfaces.c"
+}
+
+
+static void spit_publishing_service_base_init (SpitPublishingServiceIface * iface) {
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ if (!initialized) {
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ initialized = TRUE;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved0 = spit_publishing_service_real_reserved0;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved1 = spit_publishing_service_real_reserved1;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved2 = spit_publishing_service_real_reserved2;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved3 = spit_publishing_service_real_reserved3;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved4 = spit_publishing_service_real_reserved4;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved5 = spit_publishing_service_real_reserved5;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved6 = spit_publishing_service_real_reserved6;
+#line 586 "/home/jens/Source/shotwell/src/plugins/PublishingInterfaces.vala"
+ iface->reserved7 = spit_publishing_service_real_reserved7;
+#line 1737 "PublishingInterfaces.c"
+ }
+}
+
+
+/**
+ * Describes the features and capabilities of a remote publishing service.
+ *
+ * Developers of publishing plugins provide a class that implements this interface.
+ */
+GType spit_publishing_service_get_type (void) {
+ static volatile gsize spit_publishing_service_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_service_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingServiceIface), (GBaseInitFunc) spit_publishing_service_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_publishing_service_type_id;
+ spit_publishing_service_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPublishingService", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_publishing_service_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_publishing_service_type_id, SPIT_TYPE_PLUGGABLE);
+ g_once_init_leave (&spit_publishing_service_type_id__volatile, spit_publishing_service_type_id);
+ }
+ return spit_publishing_service_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/PublishingInterfaces.vala b/src/plugins/PublishingInterfaces.vala
index 6f06cba..7a8ac40 100644
--- a/src/plugins/PublishingInterfaces.vala
+++ b/src/plugins/PublishingInterfaces.vala
@@ -82,7 +82,14 @@ public errordomain PublishingError {
* Indicates that the remote host has rejected the session identifier used by the local
* client as out-of-date. The local client should acquire a new session identifier.
*/
- EXPIRED_SESSION
+ EXPIRED_SESSION,
+
+ /**
+ * Indicates that a secure connection to the remote host cannot be
+ * established. This might have various reasons such as expired
+ * certificats, invalid certificates, self-signed certificates...
+ */
+ SSL_FAILED
}
/**
@@ -513,10 +520,10 @@ public interface PluginHost : GLib.Object, Spit.HostInterface {
*/
public interface Publishable : GLib.Object {
- public static const string PARAM_STRING_BASENAME = "basename";
- public static const string PARAM_STRING_TITLE = "title";
- public static const string PARAM_STRING_COMMENT = "comment";
- public static const string PARAM_STRING_EVENTCOMMENT= "eventcomment";
+ public const string PARAM_STRING_BASENAME = "basename";
+ public const string PARAM_STRING_TITLE = "title";
+ public const string PARAM_STRING_COMMENT = "comment";
+ public const string PARAM_STRING_EVENTCOMMENT= "eventcomment";
/**
* Returns a handle to the file on disk to which this publishable's data has been
diff --git a/src/plugins/SpitInterfaces.c b/src/plugins/SpitInterfaces.c
new file mode 100644
index 0000000..9357a68
--- /dev/null
+++ b/src/plugins/SpitInterfaces.c
@@ -0,0 +1,1324 @@
+/* SpitInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from SpitInterfaces.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <float.h>
+#include <math.h>
+
+
+#define SPIT_TYPE_ENTRY_POINT_PARAMS (spit_entry_point_params_get_type ())
+typedef struct _SpitEntryPointParams SpitEntryPointParams;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SPIT_TYPE_MODULE (spit_module_get_type ())
+#define SPIT_MODULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_MODULE, SpitModule))
+#define SPIT_IS_MODULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_MODULE))
+#define SPIT_MODULE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_MODULE, SpitModuleIface))
+
+typedef struct _SpitModule SpitModule;
+typedef struct _SpitModuleIface SpitModuleIface;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+struct _SpitEntryPointParams {
+ gint host_min_spit_interface;
+ gint host_max_spit_interface;
+ gint module_spit_interface;
+ GFile* module_file;
+};
+
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitModuleIface {
+ GTypeInterface parent_iface;
+ const gchar* (*get_module_name) (SpitModule* self);
+ const gchar* (*get_version) (SpitModule* self);
+ const gchar* (*get_id) (SpitModule* self);
+ SpitPluggable** (*get_pluggables) (SpitModule* self, int* result_length1);
+ void (*reserved0) (SpitModule* self);
+ void (*reserved1) (SpitModule* self);
+ void (*reserved2) (SpitModule* self);
+ void (*reserved3) (SpitModule* self);
+ void (*reserved4) (SpitModule* self);
+ void (*reserved5) (SpitModule* self);
+ void (*reserved6) (SpitModule* self);
+ void (*reserved7) (SpitModule* self);
+};
+
+typedef SpitModule* (*SpitEntryPoint) (SpitEntryPointParams* params);
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+
+
+#define SPIT_UNSUPPORTED_INTERFACE -1
+#define SPIT_CURRENT_INTERFACE 0
+gint spit_negotiate_interfaces (gint min_host_interface, gint max_host_interface, gint plugin_interface);
+GType spit_entry_point_params_get_type (void) G_GNUC_CONST;
+SpitEntryPointParams* spit_entry_point_params_dup (const SpitEntryPointParams* self);
+void spit_entry_point_params_free (SpitEntryPointParams* self);
+void spit_entry_point_params_copy (const SpitEntryPointParams* self, SpitEntryPointParams* dest);
+void spit_entry_point_params_destroy (SpitEntryPointParams* self);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_module_get_type (void) G_GNUC_CONST;
+#define SPIT_ENTRY_POINT_NAME "spit_entry_point"
+const gchar* spit_module_get_module_name (SpitModule* self);
+const gchar* spit_module_get_version (SpitModule* self);
+const gchar* spit_module_get_id (SpitModule* self);
+SpitPluggable** spit_module_get_pluggables (SpitModule* self, int* result_length1);
+void spit_module_reserved0 (SpitModule* self);
+static void spit_module_real_reserved0 (SpitModule* self);
+void spit_module_reserved1 (SpitModule* self);
+static void spit_module_real_reserved1 (SpitModule* self);
+void spit_module_reserved2 (SpitModule* self);
+static void spit_module_real_reserved2 (SpitModule* self);
+void spit_module_reserved3 (SpitModule* self);
+static void spit_module_real_reserved3 (SpitModule* self);
+void spit_module_reserved4 (SpitModule* self);
+static void spit_module_real_reserved4 (SpitModule* self);
+void spit_module_reserved5 (SpitModule* self);
+static void spit_module_real_reserved5 (SpitModule* self);
+void spit_module_reserved6 (SpitModule* self);
+static void spit_module_real_reserved6 (SpitModule* self);
+void spit_module_reserved7 (SpitModule* self);
+static void spit_module_real_reserved7 (SpitModule* self);
+static GdkPixbuf** _vala_array_dup1 (GdkPixbuf** self, int length);
+gint spit_pluggable_get_pluggable_interface (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+const gchar* spit_pluggable_get_id (SpitPluggable* self);
+const gchar* spit_pluggable_get_pluggable_name (SpitPluggable* self);
+void spit_pluggable_get_info (SpitPluggable* self, SpitPluggableInfo* info);
+void spit_pluggable_activation (SpitPluggable* self, gboolean enabled);
+void spit_pluggable_reserved0 (SpitPluggable* self);
+static void spit_pluggable_real_reserved0 (SpitPluggable* self);
+void spit_pluggable_reserved1 (SpitPluggable* self);
+static void spit_pluggable_real_reserved1 (SpitPluggable* self);
+void spit_pluggable_reserved2 (SpitPluggable* self);
+static void spit_pluggable_real_reserved2 (SpitPluggable* self);
+void spit_pluggable_reserved3 (SpitPluggable* self);
+static void spit_pluggable_real_reserved3 (SpitPluggable* self);
+void spit_pluggable_reserved4 (SpitPluggable* self);
+static void spit_pluggable_real_reserved4 (SpitPluggable* self);
+void spit_pluggable_reserved5 (SpitPluggable* self);
+static void spit_pluggable_real_reserved5 (SpitPluggable* self);
+void spit_pluggable_reserved6 (SpitPluggable* self);
+static void spit_pluggable_real_reserved6 (SpitPluggable* self);
+void spit_pluggable_reserved7 (SpitPluggable* self);
+static void spit_pluggable_real_reserved7 (SpitPluggable* self);
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GFile* spit_host_interface_get_module_file (SpitHostInterface* self);
+gboolean spit_host_interface_get_config_bool (SpitHostInterface* self, const gchar* key, gboolean def);
+void spit_host_interface_set_config_bool (SpitHostInterface* self, const gchar* key, gboolean val);
+gint spit_host_interface_get_config_int (SpitHostInterface* self, const gchar* key, gint def);
+void spit_host_interface_set_config_int (SpitHostInterface* self, const gchar* key, gint val);
+gchar* spit_host_interface_get_config_string (SpitHostInterface* self, const gchar* key, const gchar* def);
+void spit_host_interface_set_config_string (SpitHostInterface* self, const gchar* key, const gchar* val);
+gdouble spit_host_interface_get_config_double (SpitHostInterface* self, const gchar* key, gdouble def);
+void spit_host_interface_set_config_double (SpitHostInterface* self, const gchar* key, gdouble val);
+void spit_host_interface_unset_config_key (SpitHostInterface* self, const gchar* key);
+void spit_host_interface_reserved0 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved0 (SpitHostInterface* self);
+void spit_host_interface_reserved1 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved1 (SpitHostInterface* self);
+void spit_host_interface_reserved2 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved2 (SpitHostInterface* self);
+void spit_host_interface_reserved3 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved3 (SpitHostInterface* self);
+void spit_host_interface_reserved4 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved4 (SpitHostInterface* self);
+void spit_host_interface_reserved5 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved5 (SpitHostInterface* self);
+void spit_host_interface_reserved6 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved6 (SpitHostInterface* self);
+void spit_host_interface_reserved7 (SpitHostInterface* self);
+static void spit_host_interface_real_reserved7 (SpitHostInterface* self);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+/**
+ * A utility function for checking host interfaces against one's own and returning the right value.
+ *
+ * Note that this only works if the caller operates on only one interface version (and cannot mutate
+ * between multiple ones).
+ *
+ * @param min_host_interface The minimum supported host interface version.
+ * @param max_host_interface The maximum supported host interface version.
+ * @param plugin_interface The interface version supported by the Pluggable.
+ *
+ * @return The plugin's interface version if supported, {@link UNSUPPORTED_INTERFACE} otherwise.
+ */
+gint spit_negotiate_interfaces (gint min_host_interface, gint max_host_interface, gint plugin_interface) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp2_ = min_host_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp3_ = plugin_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (_tmp2_ > _tmp3_) {
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = TRUE;
+#line 247 "SpitInterfaces.c"
+ } else {
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp4_ = max_host_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp5_ = plugin_interface;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = _tmp4_ < _tmp5_;
+#line 257 "SpitInterfaces.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (_tmp1_) {
+#line 48 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = SPIT_UNSUPPORTED_INTERFACE;
+#line 263 "SpitInterfaces.c"
+ } else {
+ gint _tmp6_ = 0;
+#line 48 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp6_ = plugin_interface;
+#line 48 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = _tmp6_;
+#line 270 "SpitInterfaces.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ result = _tmp0_;
+#line 47 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return result;
+#line 276 "SpitInterfaces.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 283 "SpitInterfaces.c"
+}
+
+
+void spit_entry_point_params_copy (const SpitEntryPointParams* self, SpitEntryPointParams* dest) {
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = (*self).host_min_spit_interface;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).host_min_spit_interface = _tmp0_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = (*self).host_max_spit_interface;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).host_max_spit_interface = _tmp1_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp2_ = (*self).module_spit_interface;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).module_spit_interface = _tmp2_;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp3_ = (*self).module_file;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_object_unref0 ((*dest).module_file);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).module_file = _tmp4_;
+#line 313 "SpitInterfaces.c"
+}
+
+
+void spit_entry_point_params_destroy (SpitEntryPointParams* self) {
+#line 79 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_object_unref0 ((*self).module_file);
+#line 320 "SpitInterfaces.c"
+}
+
+
+SpitEntryPointParams* spit_entry_point_params_dup (const SpitEntryPointParams* self) {
+ SpitEntryPointParams* dup;
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ dup = g_new0 (SpitEntryPointParams, 1);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_entry_point_params_copy (self, dup);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return dup;
+#line 332 "SpitInterfaces.c"
+}
+
+
+void spit_entry_point_params_free (SpitEntryPointParams* self) {
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_entry_point_params_destroy (self);
+#line 62 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_free (self);
+#line 341 "SpitInterfaces.c"
+}
+
+
+GType spit_entry_point_params_get_type (void) {
+ static volatile gsize spit_entry_point_params_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_entry_point_params_type_id__volatile)) {
+ GType spit_entry_point_params_type_id;
+ spit_entry_point_params_type_id = g_boxed_type_register_static ("SpitEntryPointParams", (GBoxedCopyFunc) spit_entry_point_params_dup, (GBoxedFreeFunc) spit_entry_point_params_free);
+ g_once_init_leave (&spit_entry_point_params_type_id__volatile, spit_entry_point_params_type_id);
+ }
+ return spit_entry_point_params_type_id__volatile;
+}
+
+
+/**
+ * Returns a user-visible string describing the module.
+ */
+const gchar* spit_module_get_module_name (SpitModule* self) {
+#line 117 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 117 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_module_name (self);
+#line 364 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a user-visible string describing the module version.
+ *
+ * Note that this may be programmatically interpreted at some point, so use a widespread
+ * versioning scheme.
+ */
+const gchar* spit_module_get_version (SpitModule* self) {
+#line 125 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 125 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_version (self);
+#line 379 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a unique identifier for this module.
+ *
+ * This is used to differentiate between multiple
+ * installed versions and to determine which one should be used (i.e. if a module is available
+ * in a system directory and a user directory). This name is case-sensitive.
+ *
+ * Best practice: use a reverse-DNS-order scheme, a la Java's packages
+ * (i.e. "org.yorba.shotwell.frotz").
+ */
+const gchar* spit_module_get_id (SpitModule* self) {
+#line 137 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 137 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_id (self);
+#line 398 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns an array of {@link Pluggable} that represent each plugin available in the module.
+ *
+ * May return NULL or an empty array.
+ */
+SpitPluggable** spit_module_get_pluggables (SpitModule* self, int* result_length1) {
+#line 144 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_MODULE (self), NULL);
+#line 144 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_MODULE_GET_INTERFACE (self)->get_pluggables (self, result_length1);
+#line 412 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved0 (SpitModule* self) {
+}
+
+
+void spit_module_reserved0 (SpitModule* self) {
+#line 149 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 149 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved0 (self);
+#line 425 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved1 (SpitModule* self) {
+}
+
+
+void spit_module_reserved1 (SpitModule* self) {
+#line 150 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 150 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved1 (self);
+#line 438 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved2 (SpitModule* self) {
+}
+
+
+void spit_module_reserved2 (SpitModule* self) {
+#line 151 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 151 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved2 (self);
+#line 451 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved3 (SpitModule* self) {
+}
+
+
+void spit_module_reserved3 (SpitModule* self) {
+#line 152 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 152 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved3 (self);
+#line 464 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved4 (SpitModule* self) {
+}
+
+
+void spit_module_reserved4 (SpitModule* self) {
+#line 153 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 153 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved4 (self);
+#line 477 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved5 (SpitModule* self) {
+}
+
+
+void spit_module_reserved5 (SpitModule* self) {
+#line 154 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 154 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved5 (self);
+#line 490 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved6 (SpitModule* self) {
+}
+
+
+void spit_module_reserved6 (SpitModule* self) {
+#line 155 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 155 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved6 (self);
+#line 503 "SpitInterfaces.c"
+}
+
+
+static void spit_module_real_reserved7 (SpitModule* self) {
+}
+
+
+void spit_module_reserved7 (SpitModule* self) {
+#line 156 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_MODULE (self));
+#line 156 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_MODULE_GET_INTERFACE (self)->reserved7 (self);
+#line 516 "SpitInterfaces.c"
+}
+
+
+static void spit_module_base_init (SpitModuleIface * iface) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (!initialized) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ initialized = TRUE;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved0 = spit_module_real_reserved0;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved1 = spit_module_real_reserved1;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved2 = spit_module_real_reserved2;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved3 = spit_module_real_reserved3;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved4 = spit_module_real_reserved4;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved5 = spit_module_real_reserved5;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved6 = spit_module_real_reserved6;
+#line 113 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved7 = spit_module_real_reserved7;
+#line 543 "SpitInterfaces.c"
+ }
+}
+
+
+/**
+ * A Module represents the resources of an entire dynamically-linked module (i.e. a .so/.la).
+ *
+ * A module holds zero or more Shotwell plugins ({@link Pluggable}). Once the module has been
+ * loaded into process space this object is retrieved by Shotwell. All calls to the module and
+ * its plugins are resolved through this interface.
+ *
+ * Note: The module is responsible for holding the reference to the Module object, of which there
+ * should be only one in the library file. The module should implement a g_module_unload method
+ * and drop the reference there.
+ */
+GType spit_module_get_type (void) {
+ static volatile gsize spit_module_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_module_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitModuleIface), (GBaseInitFunc) spit_module_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_module_type_id;
+ spit_module_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitModule", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_module_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_module_type_id__volatile, spit_module_type_id);
+ }
+ return spit_module_type_id__volatile;
+}
+
+
+static GdkPixbuf** _vala_array_dup1 (GdkPixbuf** self, int length) {
+ GdkPixbuf** result;
+ int i;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ result = g_new0 (GdkPixbuf*, length + 1);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ for (i = 0; i < length; i++) {
+#line 579 "SpitInterfaces.c"
+ GdkPixbuf* _tmp0_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ result[i] = _tmp0_;
+#line 585 "SpitInterfaces.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return result;
+#line 589 "SpitInterfaces.c"
+}
+
+
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GdkPixbuf** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ GdkPixbuf** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp0_ = (*self).version;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).version);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).version = _tmp1_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp2_ = (*self).brief_description;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).brief_description);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).brief_description = _tmp3_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp4_ = (*self).authors;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).authors);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).authors = _tmp5_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp6_ = (*self).copyright;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).copyright);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).copyright = _tmp7_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp8_ = (*self).license;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).license);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).license = _tmp9_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp10_ = (*self).is_license_wordwrapped;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).is_license_wordwrapped = _tmp10_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp11_ = (*self).website_url;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp12_ = g_strdup (_tmp11_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).website_url);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).website_url = _tmp12_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp13_ = (*self).website_name;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp14_ = g_strdup (_tmp13_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).website_name);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).website_name = _tmp14_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp15_ = (*self).translators;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*dest).translators);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).translators = _tmp16_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp17_ = (*self).icons;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp17__length1 = (*self).icons_length1;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp18_ = (_tmp17_ != NULL) ? _vala_array_dup1 (_tmp17_, _tmp17__length1) : ((gpointer) _tmp17_);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _tmp18__length1 = _tmp17__length1;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).icons = (_vala_array_free ((*dest).icons, (*dest).icons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).icons = _tmp18_;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*dest).icons_length1 = _tmp18__length1;
+#line 697 "SpitInterfaces.c"
+}
+
+
+void spit_pluggable_info_destroy (SpitPluggableInfo* self) {
+#line 163 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).version);
+#line 164 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).brief_description);
+#line 168 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).authors);
+#line 169 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).copyright);
+#line 170 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).license);
+#line 172 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).website_url);
+#line 173 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).website_name);
+#line 174 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ _g_free0 ((*self).translators);
+#line 179 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ (*self).icons = (_vala_array_free ((*self).icons, (*self).icons_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 720 "SpitInterfaces.c"
+}
+
+
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self) {
+ SpitPluggableInfo* dup;
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ dup = g_new0 (SpitPluggableInfo, 1);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_pluggable_info_copy (self, dup);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return dup;
+#line 732 "SpitInterfaces.c"
+}
+
+
+void spit_pluggable_info_free (SpitPluggableInfo* self) {
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ spit_pluggable_info_destroy (self);
+#line 162 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_free (self);
+#line 741 "SpitInterfaces.c"
+}
+
+
+GType spit_pluggable_info_get_type (void) {
+ static volatile gsize spit_pluggable_info_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_pluggable_info_type_id__volatile)) {
+ GType spit_pluggable_info_type_id;
+ spit_pluggable_info_type_id = g_boxed_type_register_static ("SpitPluggableInfo", (GBoxedCopyFunc) spit_pluggable_info_dup, (GBoxedFreeFunc) spit_pluggable_info_free);
+ g_once_init_leave (&spit_pluggable_info_type_id__volatile, spit_pluggable_info_type_id);
+ }
+ return spit_pluggable_info_type_id__volatile;
+}
+
+
+/**
+ * Pluggable interface version negotiation.
+ *
+ * Like the {@link EntryPoint}, this mechanism allows for the host to negotiate with the Pluggable
+ * for its interface version. If the pluggable does not support an interface between the
+ * two ranges (inclusive), it should return {@link UNSUPPORTED_INTERFACE}.
+ *
+ * Note that this is ''not'' a negotiation of the SPIT interface versions (which is the
+ * responsibility of {@link EntryPoint}. Rather, each extension point is expected to version
+ * its own cluster of interfaces. It is that interface version that is being negotiated here.
+ *
+ * {@link negotiate_interfaces} can be used to implement this method.
+ *
+ * @param min_host_interface The host's minimum supported interface version number
+ * //for this Pluggable's intended extension point//.
+ * @param max_host_interface The host's maximum supported interface version number
+ * //for this Pluggable's intended extension point//.
+ *
+ * @return The version number supported by the host and the Pluggable or
+ * {@link UNSUPPORTED_INTERFACE}.
+ */
+gint spit_pluggable_get_pluggable_interface (SpitPluggable* self, gint min_host_interface, gint max_host_interface) {
+#line 210 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (self), 0);
+#line 210 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_PLUGGABLE_GET_INTERFACE (self)->get_pluggable_interface (self, min_host_interface, max_host_interface);
+#line 782 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a unique identifier for this Pluggable.
+ *
+ * Like {@link Module.get_id}, best practice is to use a reverse-DNS-order scheme to avoid
+ * conflicts.
+ */
+const gchar* spit_pluggable_get_id (SpitPluggable* self) {
+#line 218 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (self), NULL);
+#line 218 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_PLUGGABLE_GET_INTERFACE (self)->get_id (self);
+#line 797 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns a user-visible name for the Pluggable.
+ */
+const gchar* spit_pluggable_get_pluggable_name (SpitPluggable* self) {
+#line 223 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (self), NULL);
+#line 223 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_PLUGGABLE_GET_INTERFACE (self)->get_pluggable_name (self);
+#line 809 "SpitInterfaces.c"
+}
+
+
+/**
+ * Returns extra information about the Pluggable that is used to identify it to the user.
+ */
+void spit_pluggable_get_info (SpitPluggable* self, SpitPluggableInfo* info) {
+#line 228 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 228 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->get_info (self, info);
+#line 821 "SpitInterfaces.c"
+}
+
+
+/**
+ * Called when the Pluggable is enabled (activated) or disabled (deactivated).
+ *
+ * activation will be called at the start of the program if the user previously
+ * enabled/disabled it as well as during program execution if the user changes its state. Note
+ * that disabling a Pluggable does not require destroying existing resources or objects
+ * the Pluggable has previously handed off to the host.
+ *
+ * This is purely informational. The Pluggable should acquire any long-term resources
+ * it may be holding onto here, or wait until an extension-specific call is made to it.
+ *
+ * @param enabled ``true`` if the Pluggable has been enabled, ``false`` otherwise.
+ */
+void spit_pluggable_activation (SpitPluggable* self, gboolean enabled) {
+#line 243 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 243 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->activation (self, enabled);
+#line 843 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved0 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved0 (SpitPluggable* self) {
+#line 248 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 248 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved0 (self);
+#line 856 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved1 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved1 (SpitPluggable* self) {
+#line 249 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 249 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved1 (self);
+#line 869 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved2 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved2 (SpitPluggable* self) {
+#line 250 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 250 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved2 (self);
+#line 882 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved3 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved3 (SpitPluggable* self) {
+#line 251 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 251 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved3 (self);
+#line 895 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved4 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved4 (SpitPluggable* self) {
+#line 252 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 252 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved4 (self);
+#line 908 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved5 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved5 (SpitPluggable* self) {
+#line 253 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 253 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved5 (self);
+#line 921 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved6 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved6 (SpitPluggable* self) {
+#line 254 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 254 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved6 (self);
+#line 934 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_real_reserved7 (SpitPluggable* self) {
+}
+
+
+void spit_pluggable_reserved7 (SpitPluggable* self) {
+#line 255 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_PLUGGABLE (self));
+#line 255 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_PLUGGABLE_GET_INTERFACE (self)->reserved7 (self);
+#line 947 "SpitInterfaces.c"
+}
+
+
+static void spit_pluggable_base_init (SpitPluggableIface * iface) {
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (!initialized) {
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ initialized = TRUE;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved0 = spit_pluggable_real_reserved0;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved1 = spit_pluggable_real_reserved1;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved2 = spit_pluggable_real_reserved2;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved3 = spit_pluggable_real_reserved3;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved4 = spit_pluggable_real_reserved4;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved5 = spit_pluggable_real_reserved5;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved6 = spit_pluggable_real_reserved6;
+#line 188 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved7 = spit_pluggable_real_reserved7;
+#line 974 "SpitInterfaces.c"
+ }
+}
+
+
+/**
+ * A generic interface to all Shotwell plugins.
+ *
+ * Each plugin in a module needs to implement this interface at a minimum. Extension
+ * points may have (and probably will have) specific interface requirements as well.
+ */
+GType spit_pluggable_get_type (void) {
+ static volatile gsize spit_pluggable_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_pluggable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPluggableIface), (GBaseInitFunc) spit_pluggable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_pluggable_type_id;
+ spit_pluggable_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitPluggable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_pluggable_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_pluggable_type_id__volatile, spit_pluggable_type_id);
+ }
+ return spit_pluggable_type_id__volatile;
+}
+
+
+/**
+ * Returns a File object representing the library file (.so/la.) that the plugin was loaded
+ * from.
+ */
+GFile* spit_host_interface_get_module_file (SpitHostInterface* self) {
+#line 274 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), NULL);
+#line 274 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_module_file (self);
+#line 1007 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get a boolean from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gboolean spit_host_interface_get_config_bool (SpitHostInterface* self, const gchar* key, gboolean def) {
+#line 284 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), FALSE);
+#line 284 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_bool (self, key, def);
+#line 1024 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store a boolean in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_bool (SpitHostInterface* self, const gchar* key, gboolean val) {
+#line 292 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 292 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_bool (self, key, val);
+#line 1039 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get an integer from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gint spit_host_interface_get_config_int (SpitHostInterface* self, const gchar* key, gint def) {
+#line 302 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), 0);
+#line 302 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_int (self, key, def);
+#line 1056 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store an integer in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_int (SpitHostInterface* self, const gchar* key, gint val) {
+#line 310 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 310 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_int (self, key, val);
+#line 1071 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get a string from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gchar* spit_host_interface_get_config_string (SpitHostInterface* self, const gchar* key, const gchar* def) {
+#line 320 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), NULL);
+#line 320 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_string (self, key, def);
+#line 1088 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store a string in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_string (SpitHostInterface* self, const gchar* key, const gchar* val) {
+#line 328 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 328 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_string (self, key, val);
+#line 1103 "SpitInterfaces.c"
+}
+
+
+/**
+ * Get a double from a persistent configuration store.
+ *
+ * @param key The name of the value to be retrieved.
+ * @param def The default value (returned if the key has not been previously set).
+ *
+ * @return The value associated with key, def if not set.
+ */
+gdouble spit_host_interface_get_config_double (SpitHostInterface* self, const gchar* key, gdouble def) {
+#line 338 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (self), 0.0);
+#line 338 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ return SPIT_HOST_INTERFACE_GET_INTERFACE (self)->get_config_double (self, key, def);
+#line 1120 "SpitInterfaces.c"
+}
+
+
+/**
+ * Store a double in a persistent configuration store.
+ *
+ * @param key The name of the value to be stored.
+ * @param val The value to be stored.
+ */
+void spit_host_interface_set_config_double (SpitHostInterface* self, const gchar* key, gdouble val) {
+#line 346 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 346 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->set_config_double (self, key, val);
+#line 1135 "SpitInterfaces.c"
+}
+
+
+/**
+ * Delete the value from the persistent configuration store.
+ */
+void spit_host_interface_unset_config_key (SpitHostInterface* self, const gchar* key) {
+#line 351 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 351 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->unset_config_key (self, key);
+#line 1147 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved0 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved0 (SpitHostInterface* self) {
+#line 356 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 356 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved0 (self);
+#line 1160 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved1 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved1 (SpitHostInterface* self) {
+#line 357 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 357 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved1 (self);
+#line 1173 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved2 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved2 (SpitHostInterface* self) {
+#line 358 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 358 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved2 (self);
+#line 1186 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved3 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved3 (SpitHostInterface* self) {
+#line 359 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 359 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved3 (self);
+#line 1199 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved4 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved4 (SpitHostInterface* self) {
+#line 360 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 360 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved4 (self);
+#line 1212 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved5 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved5 (SpitHostInterface* self) {
+#line 361 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 361 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved5 (self);
+#line 1225 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved6 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved6 (SpitHostInterface* self) {
+#line 362 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 362 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved6 (self);
+#line 1238 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_real_reserved7 (SpitHostInterface* self) {
+}
+
+
+void spit_host_interface_reserved7 (SpitHostInterface* self) {
+#line 363 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ g_return_if_fail (SPIT_IS_HOST_INTERFACE (self));
+#line 363 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ SPIT_HOST_INTERFACE_GET_INTERFACE (self)->reserved7 (self);
+#line 1251 "SpitInterfaces.c"
+}
+
+
+static void spit_host_interface_base_init (SpitHostInterfaceIface * iface) {
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ if (!initialized) {
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ initialized = TRUE;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved0 = spit_host_interface_real_reserved0;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved1 = spit_host_interface_real_reserved1;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved2 = spit_host_interface_real_reserved2;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved3 = spit_host_interface_real_reserved3;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved4 = spit_host_interface_real_reserved4;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved5 = spit_host_interface_real_reserved5;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved6 = spit_host_interface_real_reserved6;
+#line 269 "/home/jens/Source/shotwell/src/plugins/SpitInterfaces.vala"
+ iface->reserved7 = spit_host_interface_real_reserved7;
+#line 1278 "SpitInterfaces.c"
+ }
+}
+
+
+/**
+ * An interface to common services supplied by the host (Shotwell).
+ *
+ * Each {@link Pluggable} is offered a HostInterface for needs common to most plugins.
+ *
+ * Note that
+ * a HostInterface is not explicitly handed to the Pluggable through the SPIT interface, but is expected
+ * to be offered to the Pluggable through an interface applicable to the extension point. This
+ * also allows the extension point to extend HostInterface to offer other services applicable to the
+ * type of plugin.
+ */
+GType spit_host_interface_get_type (void) {
+ static volatile gsize spit_host_interface_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_host_interface_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitHostInterfaceIface), (GBaseInitFunc) spit_host_interface_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_host_interface_type_id;
+ spit_host_interface_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitHostInterface", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_host_interface_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_host_interface_type_id__volatile, spit_host_interface_type_id);
+ }
+ return spit_host_interface_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/plugins/StandardHostInterface.c b/src/plugins/StandardHostInterface.c
new file mode 100644
index 0000000..3465427
--- /dev/null
+++ b/src/plugins/StandardHostInterface.c
@@ -0,0 +1,699 @@
+/* StandardHostInterface.c generated by valac 0.32.1, the Vala compiler
+ * generated from StandardHostInterface.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+
+
+#define PLUGINS_TYPE_STANDARD_HOST_INTERFACE (plugins_standard_host_interface_get_type ())
+#define PLUGINS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface))
+#define PLUGINS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+
+typedef struct _PluginsStandardHostInterface PluginsStandardHostInterface;
+typedef struct _PluginsStandardHostInterfaceClass PluginsStandardHostInterfaceClass;
+typedef struct _PluginsStandardHostInterfacePrivate PluginsStandardHostInterfacePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+struct _PluginsStandardHostInterface {
+ GObject parent_instance;
+ PluginsStandardHostInterfacePrivate * priv;
+};
+
+struct _PluginsStandardHostInterfaceClass {
+ GObjectClass parent_class;
+};
+
+struct _PluginsStandardHostInterfacePrivate {
+ gchar* config_domain;
+ gchar* config_id;
+ GFile* module_file;
+ SpitPluggableInfo info;
+};
+
+
+static gpointer plugins_standard_host_interface_parent_class = NULL;
+static SpitHostInterfaceIface* plugins_standard_host_interface_spit_host_interface_parent_iface = NULL;
+
+GType plugins_standard_host_interface_get_type (void) G_GNUC_CONST;
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfacePrivate))
+enum {
+ PLUGINS_STANDARD_HOST_INTERFACE_DUMMY_PROPERTY
+};
+PluginsStandardHostInterface* plugins_standard_host_interface_new (SpitPluggable* pluggable, const gchar* config_domain);
+PluginsStandardHostInterface* plugins_standard_host_interface_construct (GType object_type, SpitPluggable* pluggable, const gchar* config_domain);
+static gchar* plugins_standard_host_interface_parse_key (const gchar* id);
+GFile* plugins_get_pluggable_module_file (SpitPluggable* pluggable);
+static GFile* plugins_standard_host_interface_real_get_module_file (SpitHostInterface* base);
+static gboolean plugins_standard_host_interface_real_get_config_bool (SpitHostInterface* base, const gchar* key, gboolean def);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gboolean configuration_facade_get_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean def);
+static void plugins_standard_host_interface_real_set_config_bool (SpitHostInterface* base, const gchar* key, gboolean val);
+void configuration_facade_set_plugin_bool (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gboolean val);
+static gint plugins_standard_host_interface_real_get_config_int (SpitHostInterface* base, const gchar* key, gint def);
+gint configuration_facade_get_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint def);
+static void plugins_standard_host_interface_real_set_config_int (SpitHostInterface* base, const gchar* key, gint val);
+void configuration_facade_set_plugin_int (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gint val);
+static gchar* plugins_standard_host_interface_real_get_config_string (SpitHostInterface* base, const gchar* key, const gchar* def);
+gchar* configuration_facade_get_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* def);
+static void plugins_standard_host_interface_real_set_config_string (SpitHostInterface* base, const gchar* key, const gchar* val);
+void configuration_facade_set_plugin_string (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, const gchar* val);
+static gdouble plugins_standard_host_interface_real_get_config_double (SpitHostInterface* base, const gchar* key, gdouble def);
+gdouble configuration_facade_get_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble def);
+static void plugins_standard_host_interface_real_set_config_double (SpitHostInterface* base, const gchar* key, gdouble val);
+void configuration_facade_set_plugin_double (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key, gdouble val);
+static void plugins_standard_host_interface_real_unset_config_key (SpitHostInterface* base, const gchar* key);
+void configuration_facade_unset_plugin_key (ConfigurationFacade* self, const gchar* domain, const gchar* id, const gchar* key);
+static void plugins_standard_host_interface_finalize (GObject* obj);
+
+
+PluginsStandardHostInterface* plugins_standard_host_interface_construct (GType object_type, SpitPluggable* pluggable, const gchar* config_domain) {
+ PluginsStandardHostInterface * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ SpitPluggable* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ SpitPluggable* _tmp5_ = NULL;
+ GFile* _tmp6_ = NULL;
+ SpitPluggable* _tmp7_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (SPIT_IS_PLUGGABLE (pluggable), NULL);
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (config_domain != NULL, NULL);
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = (PluginsStandardHostInterface*) g_object_new (object_type, NULL);
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_domain;
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_domain);
+#line 16 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv->config_domain = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = pluggable;
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = spit_pluggable_get_id (_tmp2_);
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = plugins_standard_host_interface_parse_key (_tmp3_);
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_id);
+#line 17 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv->config_id = _tmp4_;
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = pluggable;
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = plugins_get_pluggable_module_file (_tmp5_);
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (self->priv->module_file);
+#line 18 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv->module_file = _tmp6_;
+#line 19 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = pluggable;
+#line 19 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ spit_pluggable_get_info (_tmp7_, &self->priv->info);
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return self;
+#line 156 "StandardHostInterface.c"
+}
+
+
+PluginsStandardHostInterface* plugins_standard_host_interface_new (SpitPluggable* pluggable, const gchar* config_domain) {
+#line 15 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return plugins_standard_host_interface_construct (PLUGINS_TYPE_STANDARD_HOST_INTERFACE, pluggable, config_domain);
+#line 163 "StandardHostInterface.c"
+}
+
+
+static gchar* plugins_standard_host_interface_parse_key (const gchar* id) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GQuark _tmp3_ = 0U;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label0 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label1 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label2 = 0;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ static GQuark _tmp2_label3 = 0;
+#line 22 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (id != NULL, NULL);
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = id;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("org.yorba.shotwell.publishing.facebook")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 192 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp4_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = g_strdup ("facebook");
+#line 27 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp4_;
+#line 27 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 202 "StandardHostInterface.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("org.yorba.shotwell.publishing.picasa")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 208 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp5_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = g_strdup ("picasa");
+#line 30 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp5_;
+#line 30 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 218 "StandardHostInterface.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("org.yorba.shotwell.publishing.flickr")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 224 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp6_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = g_strdup ("flickr");
+#line 33 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp6_;
+#line 33 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 234 "StandardHostInterface.c"
+ }
+ }
+ } else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("org.yorba.shotwell.publishing.youtube")))) {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 240 "StandardHostInterface.c"
+ default:
+ {
+ gchar* _tmp7_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = g_strdup ("youtube");
+#line 36 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 36 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 250 "StandardHostInterface.c"
+ }
+ }
+ } else {
+#line 25 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ switch (0) {
+#line 256 "StandardHostInterface.c"
+ default:
+ {
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp8_ = id;
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp9_;
+#line 39 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 269 "StandardHostInterface.c"
+ }
+ }
+ }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 279 "StandardHostInterface.c"
+}
+
+
+static GFile* plugins_standard_host_interface_real_get_module_file (SpitHostInterface* base) {
+ PluginsStandardHostInterface * self;
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = self->priv->module_file;
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp1_;
+#line 44 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 298 "StandardHostInterface.c"
+}
+
+
+static gboolean plugins_standard_host_interface_real_get_config_bool (SpitHostInterface* base, const gchar* key, gboolean def) {
+ PluginsStandardHostInterface * self;
+ gboolean result = FALSE;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+#line 47 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 47 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_bool (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 48 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 339 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_bool (SpitHostInterface* base, const gchar* key, gboolean val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 51 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 51 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_bool (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 52 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 371 "StandardHostInterface.c"
+}
+
+
+static gint plugins_standard_host_interface_real_get_config_int (SpitHostInterface* base, const gchar* key, gint def) {
+ PluginsStandardHostInterface * self;
+ gint result = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 55 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 55 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_int (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 56 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 412 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_int (SpitHostInterface* base, const gchar* key, gint val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 59 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 59 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_int (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 60 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 444 "StandardHostInterface.c"
+}
+
+
+static gchar* plugins_standard_host_interface_real_get_config_string (SpitHostInterface* base, const gchar* key, const gchar* def) {
+ PluginsStandardHostInterface * self;
+ gchar* result = NULL;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 63 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 64 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 485 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_string (SpitHostInterface* base, const gchar* key, const gchar* val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 67 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_string (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 68 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 517 "StandardHostInterface.c"
+}
+
+
+static gdouble plugins_standard_host_interface_real_get_config_double (SpitHostInterface* base, const gchar* key, gdouble def) {
+ PluginsStandardHostInterface * self;
+ gdouble result = 0.0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+#line 71 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 71 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_val_if_fail (key != NULL, 0.0);
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = def;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp6_ = configuration_facade_get_plugin_double (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp7_ = _tmp6_;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ result = _tmp7_;
+#line 72 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ return result;
+#line 558 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_set_config_double (SpitHostInterface* base, const gchar* key, gdouble val) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+#line 75 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 75 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp5_ = val;
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_set_plugin_double (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_, _tmp5_);
+#line 76 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 590 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_real_unset_config_key (SpitHostInterface* base, const gchar* key) {
+ PluginsStandardHostInterface * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 79 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_return_if_fail (key != NULL);
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp1_ = _tmp0_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp2_ = self->priv->config_domain;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp3_ = self->priv->config_id;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _tmp4_ = key;
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ configuration_facade_unset_plugin_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_, _tmp4_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (_tmp1_);
+#line 619 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_class_init (PluginsStandardHostInterfaceClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ plugins_standard_host_interface_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ g_type_class_add_private (klass, sizeof (PluginsStandardHostInterfacePrivate));
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ G_OBJECT_CLASS (klass)->finalize = plugins_standard_host_interface_finalize;
+#line 630 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_spit_host_interface_interface_init (SpitHostInterfaceIface * iface) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ plugins_standard_host_interface_spit_host_interface_parent_iface = g_type_interface_peek_parent (iface);
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_module_file = (GFile* (*)(SpitHostInterface*)) plugins_standard_host_interface_real_get_module_file;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_bool = (gboolean (*)(SpitHostInterface*, const gchar*, gboolean)) plugins_standard_host_interface_real_get_config_bool;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_bool = (void (*)(SpitHostInterface*, const gchar*, gboolean)) plugins_standard_host_interface_real_set_config_bool;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_int = (gint (*)(SpitHostInterface*, const gchar*, gint)) plugins_standard_host_interface_real_get_config_int;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_int = (void (*)(SpitHostInterface*, const gchar*, gint)) plugins_standard_host_interface_real_set_config_int;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_string = (gchar* (*)(SpitHostInterface*, const gchar*, const gchar*)) plugins_standard_host_interface_real_get_config_string;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_string = (void (*)(SpitHostInterface*, const gchar*, const gchar*)) plugins_standard_host_interface_real_set_config_string;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->get_config_double = (gdouble (*)(SpitHostInterface*, const gchar*, gdouble)) plugins_standard_host_interface_real_get_config_double;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->set_config_double = (void (*)(SpitHostInterface*, const gchar*, gdouble)) plugins_standard_host_interface_real_set_config_double;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ iface->unset_config_key = (void (*)(SpitHostInterface*, const gchar*)) plugins_standard_host_interface_real_unset_config_key;
+#line 657 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_instance_init (PluginsStandardHostInterface * self) {
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self->priv = PLUGINS_STANDARD_HOST_INTERFACE_GET_PRIVATE (self);
+#line 664 "StandardHostInterface.c"
+}
+
+
+static void plugins_standard_host_interface_finalize (GObject* obj) {
+ PluginsStandardHostInterface * self;
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface);
+#line 10 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_domain);
+#line 11 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_free0 (self->priv->config_id);
+#line 12 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ _g_object_unref0 (self->priv->module_file);
+#line 13 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ spit_pluggable_info_destroy (&self->priv->info);
+#line 9 "/home/jens/Source/shotwell/src/plugins/StandardHostInterface.vala"
+ G_OBJECT_CLASS (plugins_standard_host_interface_parent_class)->finalize (obj);
+#line 682 "StandardHostInterface.c"
+}
+
+
+GType plugins_standard_host_interface_get_type (void) {
+ static volatile gsize plugins_standard_host_interface_type_id__volatile = 0;
+ if (g_once_init_enter (&plugins_standard_host_interface_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PluginsStandardHostInterfaceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) plugins_standard_host_interface_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PluginsStandardHostInterface), 0, (GInstanceInitFunc) plugins_standard_host_interface_instance_init, NULL };
+ static const GInterfaceInfo spit_host_interface_info = { (GInterfaceInitFunc) plugins_standard_host_interface_spit_host_interface_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType plugins_standard_host_interface_type_id;
+ plugins_standard_host_interface_type_id = g_type_register_static (G_TYPE_OBJECT, "PluginsStandardHostInterface", &g_define_type_info, 0);
+ g_type_add_interface_static (plugins_standard_host_interface_type_id, SPIT_TYPE_HOST_INTERFACE, &spit_host_interface_info);
+ g_once_init_leave (&plugins_standard_host_interface_type_id__volatile, plugins_standard_host_interface_type_id);
+ }
+ return plugins_standard_host_interface_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/TransitionsInterfaces.c b/src/plugins/TransitionsInterfaces.c
new file mode 100644
index 0000000..aedb555
--- /dev/null
+++ b/src/plugins/TransitionsInterfaces.c
@@ -0,0 +1,1808 @@
+/* TransitionsInterfaces.c generated by valac 0.32.1, the Vala compiler
+ * generated from TransitionsInterfaces.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <cairo.h>
+
+
+#define SPIT_TRANSITIONS_TYPE_DIRECTION (spit_transitions_direction_get_type ())
+
+#define SPIT_TRANSITIONS_TYPE_VISUALS (spit_transitions_visuals_get_type ())
+#define SPIT_TRANSITIONS_VISUALS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals))
+#define SPIT_TRANSITIONS_VISUALS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisualsClass))
+#define SPIT_TRANSITIONS_IS_VISUALS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_VISUALS))
+#define SPIT_TRANSITIONS_IS_VISUALS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_TRANSITIONS_TYPE_VISUALS))
+#define SPIT_TRANSITIONS_VISUALS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisualsClass))
+
+typedef struct _SpitTransitionsVisuals SpitTransitionsVisuals;
+typedef struct _SpitTransitionsVisualsClass SpitTransitionsVisualsClass;
+typedef struct _SpitTransitionsVisualsPrivate SpitTransitionsVisualsPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SPIT_TRANSITIONS_TYPE_MOTION (spit_transitions_motion_get_type ())
+#define SPIT_TRANSITIONS_MOTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion))
+#define SPIT_TRANSITIONS_MOTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotionClass))
+#define SPIT_TRANSITIONS_IS_MOTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_MOTION))
+#define SPIT_TRANSITIONS_IS_MOTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_TRANSITIONS_TYPE_MOTION))
+#define SPIT_TRANSITIONS_MOTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotionClass))
+
+typedef struct _SpitTransitionsMotion SpitTransitionsMotion;
+typedef struct _SpitTransitionsMotionClass SpitTransitionsMotionClass;
+typedef struct _SpitTransitionsMotionPrivate SpitTransitionsMotionPrivate;
+
+#define SPIT_TYPE_PLUGGABLE (spit_pluggable_get_type ())
+#define SPIT_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggable))
+#define SPIT_IS_PLUGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_PLUGGABLE))
+#define SPIT_PLUGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_PLUGGABLE, SpitPluggableIface))
+
+typedef struct _SpitPluggable SpitPluggable;
+typedef struct _SpitPluggableIface SpitPluggableIface;
+
+#define SPIT_TYPE_PLUGGABLE_INFO (spit_pluggable_info_get_type ())
+typedef struct _SpitPluggableInfo SpitPluggableInfo;
+
+#define SPIT_TRANSITIONS_TYPE_DESCRIPTOR (spit_transitions_descriptor_get_type ())
+#define SPIT_TRANSITIONS_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_DESCRIPTOR, SpitTransitionsDescriptor))
+#define SPIT_TRANSITIONS_IS_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_DESCRIPTOR))
+#define SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TRANSITIONS_TYPE_DESCRIPTOR, SpitTransitionsDescriptorIface))
+
+typedef struct _SpitTransitionsDescriptor SpitTransitionsDescriptor;
+typedef struct _SpitTransitionsDescriptorIface SpitTransitionsDescriptorIface;
+
+#define SPIT_TYPE_HOST_INTERFACE (spit_host_interface_get_type ())
+#define SPIT_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterface))
+#define SPIT_IS_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TYPE_HOST_INTERFACE))
+#define SPIT_HOST_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TYPE_HOST_INTERFACE, SpitHostInterfaceIface))
+
+typedef struct _SpitHostInterface SpitHostInterface;
+typedef struct _SpitHostInterfaceIface SpitHostInterfaceIface;
+
+#define SPIT_TRANSITIONS_TYPE_EFFECT (spit_transitions_effect_get_type ())
+#define SPIT_TRANSITIONS_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_TRANSITIONS_TYPE_EFFECT, SpitTransitionsEffect))
+#define SPIT_TRANSITIONS_IS_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_TRANSITIONS_TYPE_EFFECT))
+#define SPIT_TRANSITIONS_EFFECT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SPIT_TRANSITIONS_TYPE_EFFECT, SpitTransitionsEffectIface))
+
+typedef struct _SpitTransitionsEffect SpitTransitionsEffect;
+typedef struct _SpitTransitionsEffectIface SpitTransitionsEffectIface;
+
+typedef enum {
+ SPIT_TRANSITIONS_DIRECTION_LEFT = 0,
+ SPIT_TRANSITIONS_DIRECTION_RIGHT = 1,
+ SPIT_TRANSITIONS_DIRECTION_FORWARD = SPIT_TRANSITIONS_DIRECTION_LEFT,
+ SPIT_TRANSITIONS_DIRECTION_BACKWARD = SPIT_TRANSITIONS_DIRECTION_RIGHT
+} SpitTransitionsDirection;
+
+struct _SpitTransitionsVisuals {
+ GObject parent_instance;
+ SpitTransitionsVisualsPrivate * priv;
+};
+
+struct _SpitTransitionsVisualsClass {
+ GObjectClass parent_class;
+ void (*reserved0) (SpitTransitionsVisuals* self);
+ void (*reserved1) (SpitTransitionsVisuals* self);
+ void (*reserved2) (SpitTransitionsVisuals* self);
+ void (*reserved3) (SpitTransitionsVisuals* self);
+ void (*reserved4) (SpitTransitionsVisuals* self);
+ void (*reserved5) (SpitTransitionsVisuals* self);
+ void (*reserved6) (SpitTransitionsVisuals* self);
+ void (*reserved7) (SpitTransitionsVisuals* self);
+};
+
+struct _SpitTransitionsVisualsPrivate {
+ GdkPixbuf* _from_pixbuf;
+ GdkRectangle _from_pos;
+ GdkPixbuf* _to_pixbuf;
+ GdkRectangle _to_pos;
+ GdkRGBA _bg_color;
+};
+
+struct _SpitTransitionsMotion {
+ GObject parent_instance;
+ SpitTransitionsMotionPrivate * priv;
+};
+
+struct _SpitTransitionsMotionClass {
+ GObjectClass parent_class;
+ void (*reserved0) (SpitTransitionsMotion* self);
+ void (*reserved1) (SpitTransitionsMotion* self);
+ void (*reserved2) (SpitTransitionsMotion* self);
+ void (*reserved3) (SpitTransitionsMotion* self);
+ void (*reserved4) (SpitTransitionsMotion* self);
+ void (*reserved5) (SpitTransitionsMotion* self);
+ void (*reserved6) (SpitTransitionsMotion* self);
+ void (*reserved7) (SpitTransitionsMotion* self);
+};
+
+struct _SpitTransitionsMotionPrivate {
+ SpitTransitionsDirection _direction;
+ gint _fps;
+ gint _duration_msec;
+};
+
+struct _SpitPluggableInfo {
+ gchar* version;
+ gchar* brief_description;
+ gchar* authors;
+ gchar* copyright;
+ gchar* license;
+ gboolean is_license_wordwrapped;
+ gchar* website_url;
+ gchar* website_name;
+ gchar* translators;
+ GdkPixbuf** icons;
+ gint icons_length1;
+};
+
+struct _SpitPluggableIface {
+ GTypeInterface parent_iface;
+ gint (*get_pluggable_interface) (SpitPluggable* self, gint min_host_interface, gint max_host_interface);
+ const gchar* (*get_id) (SpitPluggable* self);
+ const gchar* (*get_pluggable_name) (SpitPluggable* self);
+ void (*get_info) (SpitPluggable* self, SpitPluggableInfo* info);
+ void (*activation) (SpitPluggable* self, gboolean enabled);
+ void (*reserved0) (SpitPluggable* self);
+ void (*reserved1) (SpitPluggable* self);
+ void (*reserved2) (SpitPluggable* self);
+ void (*reserved3) (SpitPluggable* self);
+ void (*reserved4) (SpitPluggable* self);
+ void (*reserved5) (SpitPluggable* self);
+ void (*reserved6) (SpitPluggable* self);
+ void (*reserved7) (SpitPluggable* self);
+};
+
+struct _SpitHostInterfaceIface {
+ GTypeInterface parent_iface;
+ GFile* (*get_module_file) (SpitHostInterface* self);
+ gboolean (*get_config_bool) (SpitHostInterface* self, const gchar* key, gboolean def);
+ void (*set_config_bool) (SpitHostInterface* self, const gchar* key, gboolean val);
+ gint (*get_config_int) (SpitHostInterface* self, const gchar* key, gint def);
+ void (*set_config_int) (SpitHostInterface* self, const gchar* key, gint val);
+ gchar* (*get_config_string) (SpitHostInterface* self, const gchar* key, const gchar* def);
+ void (*set_config_string) (SpitHostInterface* self, const gchar* key, const gchar* val);
+ gdouble (*get_config_double) (SpitHostInterface* self, const gchar* key, gdouble def);
+ void (*set_config_double) (SpitHostInterface* self, const gchar* key, gdouble val);
+ void (*unset_config_key) (SpitHostInterface* self, const gchar* key);
+ void (*reserved0) (SpitHostInterface* self);
+ void (*reserved1) (SpitHostInterface* self);
+ void (*reserved2) (SpitHostInterface* self);
+ void (*reserved3) (SpitHostInterface* self);
+ void (*reserved4) (SpitHostInterface* self);
+ void (*reserved5) (SpitHostInterface* self);
+ void (*reserved6) (SpitHostInterface* self);
+ void (*reserved7) (SpitHostInterface* self);
+};
+
+struct _SpitTransitionsEffectIface {
+ GTypeInterface parent_iface;
+ void (*get_fps) (SpitTransitionsEffect* self, gint* desired_fps, gint* min_fps);
+ void (*start) (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion);
+ gboolean (*needs_clear_background) (SpitTransitionsEffect* self);
+ void (*paint) (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number);
+ void (*advance) (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number);
+ void (*cancel) (SpitTransitionsEffect* self);
+ void (*reserved0) (SpitTransitionsEffect* self);
+ void (*reserved1) (SpitTransitionsEffect* self);
+ void (*reserved2) (SpitTransitionsEffect* self);
+ void (*reserved3) (SpitTransitionsEffect* self);
+ void (*reserved4) (SpitTransitionsEffect* self);
+ void (*reserved5) (SpitTransitionsEffect* self);
+ void (*reserved6) (SpitTransitionsEffect* self);
+ void (*reserved7) (SpitTransitionsEffect* self);
+};
+
+struct _SpitTransitionsDescriptorIface {
+ GTypeInterface parent_iface;
+ SpitTransitionsEffect* (*create) (SpitTransitionsDescriptor* self, SpitHostInterface* host);
+ void (*reserved0) (SpitTransitionsDescriptor* self);
+ void (*reserved1) (SpitTransitionsDescriptor* self);
+ void (*reserved2) (SpitTransitionsDescriptor* self);
+ void (*reserved3) (SpitTransitionsDescriptor* self);
+ void (*reserved4) (SpitTransitionsDescriptor* self);
+ void (*reserved5) (SpitTransitionsDescriptor* self);
+ void (*reserved6) (SpitTransitionsDescriptor* self);
+ void (*reserved7) (SpitTransitionsDescriptor* self);
+};
+
+
+static gpointer spit_transitions_visuals_parent_class = NULL;
+static gpointer spit_transitions_motion_parent_class = NULL;
+
+#define SPIT_TRANSITIONS_CURRENT_INTERFACE 0
+GType spit_transitions_direction_get_type (void) G_GNUC_CONST;
+GType spit_transitions_visuals_get_type (void) G_GNUC_CONST;
+#define SPIT_TRANSITIONS_VISUALS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisualsPrivate))
+enum {
+ SPIT_TRANSITIONS_VISUALS_DUMMY_PROPERTY,
+ SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF,
+ SPIT_TRANSITIONS_VISUALS_FROM_POS,
+ SPIT_TRANSITIONS_VISUALS_TO_PIXBUF,
+ SPIT_TRANSITIONS_VISUALS_TO_POS,
+ SPIT_TRANSITIONS_VISUALS_BG_COLOR
+};
+SpitTransitionsVisuals* spit_transitions_visuals_new (GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color);
+SpitTransitionsVisuals* spit_transitions_visuals_construct (GType object_type, GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color);
+static void spit_transitions_visuals_set_from_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value);
+static void spit_transitions_visuals_set_from_pos (SpitTransitionsVisuals* self, GdkRectangle* value);
+static void spit_transitions_visuals_set_to_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value);
+static void spit_transitions_visuals_set_to_pos (SpitTransitionsVisuals* self, GdkRectangle* value);
+static void spit_transitions_visuals_set_bg_color (SpitTransitionsVisuals* self, GdkRGBA* value);
+void spit_transitions_visuals_reserved0 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved0 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved1 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved1 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved2 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved2 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved3 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved3 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved4 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved4 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved5 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved5 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved6 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved6 (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_reserved7 (SpitTransitionsVisuals* self);
+static void spit_transitions_visuals_real_reserved7 (SpitTransitionsVisuals* self);
+GdkPixbuf* spit_transitions_visuals_get_from_pixbuf (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_get_from_pos (SpitTransitionsVisuals* self, GdkRectangle* result);
+GdkPixbuf* spit_transitions_visuals_get_to_pixbuf (SpitTransitionsVisuals* self);
+void spit_transitions_visuals_get_to_pos (SpitTransitionsVisuals* self, GdkRectangle* result);
+void spit_transitions_visuals_get_bg_color (SpitTransitionsVisuals* self, GdkRGBA* result);
+static void spit_transitions_visuals_finalize (GObject* obj);
+static void _vala_spit_transitions_visuals_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_spit_transitions_visuals_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType spit_transitions_motion_get_type (void) G_GNUC_CONST;
+#define SPIT_TRANSITIONS_MOTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotionPrivate))
+enum {
+ SPIT_TRANSITIONS_MOTION_DUMMY_PROPERTY,
+ SPIT_TRANSITIONS_MOTION_DIRECTION,
+ SPIT_TRANSITIONS_MOTION_FPS,
+ SPIT_TRANSITIONS_MOTION_DURATION_MSEC,
+ SPIT_TRANSITIONS_MOTION_TOTAL_FRAMES,
+ SPIT_TRANSITIONS_MOTION_TICK_MSEC
+};
+SpitTransitionsMotion* spit_transitions_motion_new (SpitTransitionsDirection direction, gint fps, gint duration_msec);
+SpitTransitionsMotion* spit_transitions_motion_construct (GType object_type, SpitTransitionsDirection direction, gint fps, gint duration_msec);
+static void spit_transitions_motion_set_direction (SpitTransitionsMotion* self, SpitTransitionsDirection value);
+static void spit_transitions_motion_set_fps (SpitTransitionsMotion* self, gint value);
+static void spit_transitions_motion_set_duration_msec (SpitTransitionsMotion* self, gint value);
+gdouble spit_transitions_motion_get_alpha (SpitTransitionsMotion* self, gint frame_number);
+gint spit_transitions_motion_get_total_frames (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved0 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved0 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved1 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved1 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved2 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved2 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved3 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved3 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved4 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved4 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved5 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved5 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved6 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved6 (SpitTransitionsMotion* self);
+void spit_transitions_motion_reserved7 (SpitTransitionsMotion* self);
+static void spit_transitions_motion_real_reserved7 (SpitTransitionsMotion* self);
+SpitTransitionsDirection spit_transitions_motion_get_direction (SpitTransitionsMotion* self);
+gint spit_transitions_motion_get_fps (SpitTransitionsMotion* self);
+gint spit_transitions_motion_get_duration_msec (SpitTransitionsMotion* self);
+gint spit_transitions_motion_get_tick_msec (SpitTransitionsMotion* self);
+static void spit_transitions_motion_finalize (GObject* obj);
+static void _vala_spit_transitions_motion_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_spit_transitions_motion_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+GType spit_pluggable_info_get_type (void) G_GNUC_CONST;
+SpitPluggableInfo* spit_pluggable_info_dup (const SpitPluggableInfo* self);
+void spit_pluggable_info_free (SpitPluggableInfo* self);
+void spit_pluggable_info_copy (const SpitPluggableInfo* self, SpitPluggableInfo* dest);
+void spit_pluggable_info_destroy (SpitPluggableInfo* self);
+GType spit_pluggable_get_type (void) G_GNUC_CONST;
+GType spit_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_transitions_effect_get_type (void) G_GNUC_CONST;
+GType spit_transitions_descriptor_get_type (void) G_GNUC_CONST;
+SpitTransitionsEffect* spit_transitions_descriptor_create (SpitTransitionsDescriptor* self, SpitHostInterface* host);
+void spit_transitions_descriptor_reserved0 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved0 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved1 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved1 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved2 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved2 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved3 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved3 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved4 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved4 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved5 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved5 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved6 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved6 (SpitTransitionsDescriptor* self);
+void spit_transitions_descriptor_reserved7 (SpitTransitionsDescriptor* self);
+static void spit_transitions_descriptor_real_reserved7 (SpitTransitionsDescriptor* self);
+void spit_transitions_effect_get_fps (SpitTransitionsEffect* self, gint* desired_fps, gint* min_fps);
+void spit_transitions_effect_start (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion);
+gboolean spit_transitions_effect_needs_clear_background (SpitTransitionsEffect* self);
+void spit_transitions_effect_paint (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number);
+void spit_transitions_effect_advance (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number);
+void spit_transitions_effect_cancel (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved0 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved0 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved1 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved1 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved2 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved2 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved3 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved3 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved4 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved4 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved5 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved5 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved6 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved6 (SpitTransitionsEffect* self);
+void spit_transitions_effect_reserved7 (SpitTransitionsEffect* self);
+static void spit_transitions_effect_real_reserved7 (SpitTransitionsEffect* self);
+
+
+/**
+ * Direction indicates what direction (animated motion) the {@link Effect} should simulate the
+ * images are moving, if appropriate.
+ *
+ * The direction indicates from what side or corner of the screen the new image should come in from.
+ * Thus, a LEFT slide means the current image exits via the left-hand edge of the screen and the
+ * new image moves into place from the right-hand edge.
+ *
+ * UP, DOWN, and diagonals may be added at some point.
+ */
+GType spit_transitions_direction_get_type (void) {
+ static volatile gsize spit_transitions_direction_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_direction_type_id__volatile)) {
+ static const GEnumValue values[] = {{SPIT_TRANSITIONS_DIRECTION_LEFT, "SPIT_TRANSITIONS_DIRECTION_LEFT", "left"}, {SPIT_TRANSITIONS_DIRECTION_RIGHT, "SPIT_TRANSITIONS_DIRECTION_RIGHT", "right"}, {SPIT_TRANSITIONS_DIRECTION_FORWARD, "SPIT_TRANSITIONS_DIRECTION_FORWARD", "forward"}, {SPIT_TRANSITIONS_DIRECTION_BACKWARD, "SPIT_TRANSITIONS_DIRECTION_BACKWARD", "backward"}, {0, NULL, NULL}};
+ GType spit_transitions_direction_type_id;
+ spit_transitions_direction_type_id = g_enum_register_static ("SpitTransitionsDirection", values);
+ g_once_init_leave (&spit_transitions_direction_type_id__volatile, spit_transitions_direction_type_id);
+ }
+ return spit_transitions_direction_type_id__volatile;
+}
+
+
+SpitTransitionsVisuals* spit_transitions_visuals_construct (GType object_type, GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color) {
+ SpitTransitionsVisuals * self = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkRectangle _tmp1_ = {0};
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkRectangle _tmp3_ = {0};
+ GdkRGBA _tmp4_ = {0};
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail ((from_pixbuf == NULL) || GDK_IS_PIXBUF (from_pixbuf), NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (from_pos != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail ((to_pixbuf == NULL) || GDK_IS_PIXBUF (to_pixbuf), NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (to_pos != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (bg_color != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = (SpitTransitionsVisuals*) g_object_new (object_type, NULL);
+#line 96 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = from_pixbuf;
+#line 96 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pixbuf (self, _tmp0_);
+#line 97 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = *from_pos;
+#line 97 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pos (self, &_tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp2_ = to_pixbuf;
+#line 98 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pixbuf (self, _tmp2_);
+#line 99 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp3_ = *to_pos;
+#line 99 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pos (self, &_tmp3_);
+#line 100 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp4_ = *bg_color;
+#line 100 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_bg_color (self, &_tmp4_);
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return self;
+#line 422 "TransitionsInterfaces.c"
+}
+
+
+SpitTransitionsVisuals* spit_transitions_visuals_new (GdkPixbuf* from_pixbuf, GdkRectangle* from_pos, GdkPixbuf* to_pixbuf, GdkRectangle* to_pos, GdkRGBA* bg_color) {
+#line 94 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return spit_transitions_visuals_construct (SPIT_TRANSITIONS_TYPE_VISUALS, from_pixbuf, from_pos, to_pixbuf, to_pos, bg_color);
+#line 429 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved0 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved0 (SpitTransitionsVisuals* self) {
+#line 106 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 106 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved0 (self);
+#line 442 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved1 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved1 (SpitTransitionsVisuals* self) {
+#line 107 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 107 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved1 (self);
+#line 455 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved2 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved2 (SpitTransitionsVisuals* self) {
+#line 108 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 108 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved2 (self);
+#line 468 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved3 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved3 (SpitTransitionsVisuals* self) {
+#line 109 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 109 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved3 (self);
+#line 481 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved4 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved4 (SpitTransitionsVisuals* self) {
+#line 110 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 110 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved4 (self);
+#line 494 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved5 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved5 (SpitTransitionsVisuals* self) {
+#line 111 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 111 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved5 (self);
+#line 507 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved6 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved6 (SpitTransitionsVisuals* self) {
+#line 112 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 112 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved6 (self);
+#line 520 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_real_reserved7 (SpitTransitionsVisuals* self) {
+}
+
+
+void spit_transitions_visuals_reserved7 (SpitTransitionsVisuals* self) {
+#line 113 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 113 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_VISUALS_GET_CLASS (self)->reserved7 (self);
+#line 533 "TransitionsInterfaces.c"
+}
+
+
+GdkPixbuf* spit_transitions_visuals_get_from_pixbuf (SpitTransitionsVisuals* self) {
+ GdkPixbuf* result;
+ GdkPixbuf* _tmp0_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self), NULL);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_from_pixbuf;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 548 "TransitionsInterfaces.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 555 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_from_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_from_pixbuf);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_from_pixbuf = _tmp1_;
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "from-pixbuf");
+#line 574 "TransitionsInterfaces.c"
+}
+
+
+void spit_transitions_visuals_get_from_pos (SpitTransitionsVisuals* self, GdkRectangle* result) {
+ GdkRectangle _tmp0_ = {0};
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_from_pos;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ *result = _tmp0_;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return;
+#line 588 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_from_pos (SpitTransitionsVisuals* self, GdkRectangle* value) {
+ GdkRectangle _tmp0_ = {0};
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = *value;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_from_pos = _tmp0_;
+#line 73 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "from-pos");
+#line 602 "TransitionsInterfaces.c"
+}
+
+
+GdkPixbuf* spit_transitions_visuals_get_to_pixbuf (SpitTransitionsVisuals* self) {
+ GdkPixbuf* result;
+ GdkPixbuf* _tmp0_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self), NULL);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_to_pixbuf;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 617 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_to_pixbuf (SpitTransitionsVisuals* self, GdkPixbuf* value) {
+ GdkPixbuf* _tmp0_ = NULL;
+ GdkPixbuf* _tmp1_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_to_pixbuf);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_to_pixbuf = _tmp1_;
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "to-pixbuf");
+#line 636 "TransitionsInterfaces.c"
+}
+
+
+void spit_transitions_visuals_get_to_pos (SpitTransitionsVisuals* self, GdkRectangle* result) {
+ GdkRectangle _tmp0_ = {0};
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_to_pos;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ *result = _tmp0_;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return;
+#line 650 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_to_pos (SpitTransitionsVisuals* self, GdkRectangle* value) {
+ GdkRectangle _tmp0_ = {0};
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = *value;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_to_pos = _tmp0_;
+#line 87 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "to-pos");
+#line 664 "TransitionsInterfaces.c"
+}
+
+
+void spit_transitions_visuals_get_bg_color (SpitTransitionsVisuals* self, GdkRGBA* result) {
+ GdkRGBA _tmp0_ = {0};
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_bg_color;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ *result = _tmp0_;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return;
+#line 678 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_set_bg_color (SpitTransitionsVisuals* self, GdkRGBA* value) {
+ GdkRGBA _tmp0_ = {0};
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (self));
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = *value;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_bg_color = _tmp0_;
+#line 92 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "bg-color");
+#line 692 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_class_init (SpitTransitionsVisualsClass * klass) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_parent_class = g_type_class_peek_parent (klass);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_type_class_add_private (klass, sizeof (SpitTransitionsVisualsPrivate));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved0 = spit_transitions_visuals_real_reserved0;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved1 = spit_transitions_visuals_real_reserved1;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved2 = spit_transitions_visuals_real_reserved2;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved3 = spit_transitions_visuals_real_reserved3;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved4 = spit_transitions_visuals_real_reserved4;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved5 = spit_transitions_visuals_real_reserved5;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved6 = spit_transitions_visuals_real_reserved6;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsVisualsClass *) klass)->reserved7 = spit_transitions_visuals_real_reserved7;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_spit_transitions_visuals_get_property;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_spit_transitions_visuals_set_property;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_transitions_visuals_finalize;
+#line 723 "TransitionsInterfaces.c"
+ /**
+ * Returns the starting pixbuf (the pixbuf currently on the display).
+ *
+ * If transitioning from a blank screen, this will return null.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF, g_param_spec_object ("from-pixbuf", "from-pixbuf", "from-pixbuf", GDK_TYPE_PIXBUF, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 731 "TransitionsInterfaces.c"
+ /**
+ * Returns the position of the starting pixbuf on the display.
+ *
+ * If transitioning from a blank screen, this will be zeroed.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_FROM_POS, g_param_spec_boxed ("from-pos", "from-pos", "from-pos", GDK_TYPE_RECTANGLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 739 "TransitionsInterfaces.c"
+ /**
+ * Returns the ending pixbuf (the pixbuf that the transition should result in).
+ *
+ * If transitioning to a blank screen, this will return null.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_TO_PIXBUF, g_param_spec_object ("to-pixbuf", "to-pixbuf", "to-pixbuf", GDK_TYPE_PIXBUF, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 747 "TransitionsInterfaces.c"
+ /**
+ * Returns the position of the ending pixbuf on the display.
+ *
+ * If transitioning to a blank screen, this will be zeroed.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_TO_POS, g_param_spec_boxed ("to-pos", "to-pos", "to-pos", GDK_TYPE_RECTANGLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 755 "TransitionsInterfaces.c"
+ /**
+ * Returns the background color of the viewport.
+ */
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_VISUALS_BG_COLOR, g_param_spec_boxed ("bg-color", "bg-color", "bg-color", gdk_rgba_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 761 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_instance_init (SpitTransitionsVisuals * self) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv = SPIT_TRANSITIONS_VISUALS_GET_PRIVATE (self);
+#line 768 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_visuals_finalize (GObject* obj) {
+ SpitTransitionsVisuals * self;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals);
+#line 66 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_from_pixbuf);
+#line 80 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _g_object_unref0 (self->priv->_to_pixbuf);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (spit_transitions_visuals_parent_class)->finalize (obj);
+#line 782 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Visuals contains the pertinent drawing information for the transition that must occur.
+ *
+ * A Visuals object is supplied to {@link Effect} at the start of the transition and during each
+ * call to paint to the screen.
+ *
+ * Note that if starting with a blank screen, from_pixbuf will be null and from_pos will be
+ * zeroed. The transition should be considered to start from a blank screen of the supplied
+ * background color.
+ *
+ * Also note that if transitioning to a blank screen, to_pixbuf will be null and to_pos will be
+ * zeroed. Like the prior case, the transition should move toward a blank screen of the background
+ * color.
+ */
+GType spit_transitions_visuals_get_type (void) {
+ static volatile gsize spit_transitions_visuals_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_visuals_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsVisualsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_transitions_visuals_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitTransitionsVisuals), 0, (GInstanceInitFunc) spit_transitions_visuals_instance_init, NULL };
+ GType spit_transitions_visuals_type_id;
+ spit_transitions_visuals_type_id = g_type_register_static (G_TYPE_OBJECT, "SpitTransitionsVisuals", &g_define_type_info, 0);
+ g_once_init_leave (&spit_transitions_visuals_type_id__volatile, spit_transitions_visuals_type_id);
+ }
+ return spit_transitions_visuals_type_id__volatile;
+}
+
+
+static void _vala_spit_transitions_visuals_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SpitTransitionsVisuals * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_object (value, spit_transitions_visuals_get_from_pixbuf (self));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_POS:
+#line 825 "TransitionsInterfaces.c"
+ {
+ GdkRectangle boxed;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_get_from_pos (self, &boxed);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_boxed (value, &boxed);
+#line 832 "TransitionsInterfaces.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_object (value, spit_transitions_visuals_get_to_pixbuf (self));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_POS:
+#line 844 "TransitionsInterfaces.c"
+ {
+ GdkRectangle boxed;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_get_to_pos (self, &boxed);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_boxed (value, &boxed);
+#line 851 "TransitionsInterfaces.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_BG_COLOR:
+#line 857 "TransitionsInterfaces.c"
+ {
+ GdkRGBA boxed;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_get_bg_color (self, &boxed);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_boxed (value, &boxed);
+#line 864 "TransitionsInterfaces.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 868 "TransitionsInterfaces.c"
+ default:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 874 "TransitionsInterfaces.c"
+ }
+}
+
+
+static void _vala_spit_transitions_visuals_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SpitTransitionsVisuals * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_VISUALS, SpitTransitionsVisuals);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pixbuf (self, g_value_get_object (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_FROM_POS:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_from_pos (self, g_value_get_boxed (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_PIXBUF:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pixbuf (self, g_value_get_object (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_TO_POS:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_to_pos (self, g_value_get_boxed (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_VISUALS_BG_COLOR:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_visuals_set_bg_color (self, g_value_get_boxed (value));
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 914 "TransitionsInterfaces.c"
+ default:
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 60 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 920 "TransitionsInterfaces.c"
+ }
+}
+
+
+SpitTransitionsMotion* spit_transitions_motion_construct (GType object_type, SpitTransitionsDirection direction, gint fps, gint duration_msec) {
+ SpitTransitionsMotion * self = NULL;
+ SpitTransitionsDirection _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 157 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = (SpitTransitionsMotion*) g_object_new (object_type, NULL);
+#line 158 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = direction;
+#line 158 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_direction (self, _tmp0_);
+#line 159 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = fps;
+#line 159 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_fps (self, _tmp1_);
+#line 160 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp2_ = duration_msec;
+#line 160 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_duration_msec (self, _tmp2_);
+#line 157 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return self;
+#line 946 "TransitionsInterfaces.c"
+}
+
+
+SpitTransitionsMotion* spit_transitions_motion_new (SpitTransitionsDirection direction, gint fps, gint duration_msec) {
+#line 157 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return spit_transitions_motion_construct (SPIT_TRANSITIONS_TYPE_MOTION, direction, fps, duration_msec);
+#line 953 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Returns a value from 0.0 to 1.0 that represents the percentage of the transition's completion
+ * for the specified frame.
+ */
+gdouble spit_transitions_motion_get_alpha (SpitTransitionsMotion* self, gint frame_number) {
+ gdouble result = 0.0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 167 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0.0);
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = frame_number;
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = spit_transitions_motion_get_total_frames (self);
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp2_ = _tmp1_;
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = ((gdouble) _tmp0_) / ((gdouble) _tmp2_);
+#line 168 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 978 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved0 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved0 (SpitTransitionsMotion* self) {
+#line 174 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 174 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved0 (self);
+#line 991 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved1 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved1 (SpitTransitionsMotion* self) {
+#line 175 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 175 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved1 (self);
+#line 1004 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved2 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved2 (SpitTransitionsMotion* self) {
+#line 176 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 176 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved2 (self);
+#line 1017 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved3 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved3 (SpitTransitionsMotion* self) {
+#line 177 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 177 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved3 (self);
+#line 1030 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved4 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved4 (SpitTransitionsMotion* self) {
+#line 178 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 178 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved4 (self);
+#line 1043 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved5 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved5 (SpitTransitionsMotion* self) {
+#line 179 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 179 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved5 (self);
+#line 1056 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved6 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved6 (SpitTransitionsMotion* self) {
+#line 180 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 180 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved6 (self);
+#line 1069 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_real_reserved7 (SpitTransitionsMotion* self) {
+}
+
+
+void spit_transitions_motion_reserved7 (SpitTransitionsMotion* self) {
+#line 181 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 181 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_MOTION_GET_CLASS (self)->reserved7 (self);
+#line 1082 "TransitionsInterfaces.c"
+}
+
+
+SpitTransitionsDirection spit_transitions_motion_get_direction (SpitTransitionsMotion* self) {
+ SpitTransitionsDirection result;
+ SpitTransitionsDirection _tmp0_ = 0;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_direction;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1097 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_set_direction (SpitTransitionsMotion* self, SpitTransitionsDirection value) {
+ SpitTransitionsDirection _tmp0_ = 0;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_direction = _tmp0_;
+#line 126 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "direction");
+#line 1111 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_fps (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_fps;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1126 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_set_fps (SpitTransitionsMotion* self, gint value) {
+ gint _tmp0_ = 0;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_fps = _tmp0_;
+#line 131 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "fps");
+#line 1140 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_duration_msec (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_duration_msec;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = _tmp0_;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1155 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_set_duration_msec (SpitTransitionsMotion* self, gint value) {
+ gint _tmp0_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (self));
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = value;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv->_duration_msec = _tmp0_;
+#line 136 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_notify ((GObject *) self, "duration-msec");
+#line 1169 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_total_frames (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 143 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_fps;
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp1_ = self->priv->_duration_msec;
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = (gint) (((gdouble) _tmp0_) * (((gdouble) _tmp1_) / 1000.0));
+#line 144 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1187 "TransitionsInterfaces.c"
+}
+
+
+gint spit_transitions_motion_get_tick_msec (SpitTransitionsMotion* self) {
+ gint result;
+ gint _tmp0_ = 0;
+#line 152 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_MOTION (self), 0);
+#line 153 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ _tmp0_ = self->priv->_fps;
+#line 153 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ result = (gint) (1000.0 / ((gdouble) _tmp0_));
+#line 153 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return result;
+#line 1202 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_class_init (SpitTransitionsMotionClass * klass) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_parent_class = g_type_class_peek_parent (klass);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_type_class_add_private (klass, sizeof (SpitTransitionsMotionPrivate));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved0 = spit_transitions_motion_real_reserved0;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved1 = spit_transitions_motion_real_reserved1;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved2 = spit_transitions_motion_real_reserved2;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved3 = spit_transitions_motion_real_reserved3;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved4 = spit_transitions_motion_real_reserved4;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved5 = spit_transitions_motion_real_reserved5;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved6 = spit_transitions_motion_real_reserved6;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ ((SpitTransitionsMotionClass *) klass)->reserved7 = spit_transitions_motion_real_reserved7;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->get_property = _vala_spit_transitions_motion_get_property;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->set_property = _vala_spit_transitions_motion_set_property;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_transitions_motion_finalize;
+#line 1233 "TransitionsInterfaces.c"
+ /**
+ * Returns the direction the transition should occur in (if pertinent to the {@link Effect}.
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_DIRECTION, g_param_spec_enum ("direction", "direction", "direction", SPIT_TRANSITIONS_TYPE_DIRECTION, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1239 "TransitionsInterfaces.c"
+ /**
+ * Returns the frames per second of the {@link Effect}.
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_FPS, g_param_spec_int ("fps", "fps", "fps", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1245 "TransitionsInterfaces.c"
+ /**
+ * Returns the amount of time the transition should take (in milliseconds).
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_DURATION_MSEC, g_param_spec_int ("duration-msec", "duration-msec", "duration-msec", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1251 "TransitionsInterfaces.c"
+ /**
+ * Returns the number of frames that should be required to perform the transition in the
+ * expected {@link duration_msec}.
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_TOTAL_FRAMES, g_param_spec_int ("total-frames", "total-frames", "total-frames", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1258 "TransitionsInterfaces.c"
+ /**
+ * Returns the approximate time between each frame draw (in milliseconds).
+ */
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_object_class_install_property (G_OBJECT_CLASS (klass), SPIT_TRANSITIONS_MOTION_TICK_MSEC, g_param_spec_int ("tick-msec", "tick-msec", "tick-msec", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
+#line 1264 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_instance_init (SpitTransitionsMotion * self) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self->priv = SPIT_TRANSITIONS_MOTION_GET_PRIVATE (self);
+#line 1271 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_motion_finalize (GObject* obj) {
+ SpitTransitionsMotion * self;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_CLASS (spit_transitions_motion_parent_class)->finalize (obj);
+#line 1281 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Motion contains all the pertinent information regarding the animation of the transition.
+ *
+ * Some of Motion's information may not apply to a transition effect (such as Direction for a
+ * fade effect).
+ */
+GType spit_transitions_motion_get_type (void) {
+ static volatile gsize spit_transitions_motion_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_motion_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsMotionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_transitions_motion_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitTransitionsMotion), 0, (GInstanceInitFunc) spit_transitions_motion_instance_init, NULL };
+ GType spit_transitions_motion_type_id;
+ spit_transitions_motion_type_id = g_type_register_static (G_TYPE_OBJECT, "SpitTransitionsMotion", &g_define_type_info, 0);
+ g_once_init_leave (&spit_transitions_motion_type_id__volatile, spit_transitions_motion_type_id);
+ }
+ return spit_transitions_motion_type_id__volatile;
+}
+
+
+static void _vala_spit_transitions_motion_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+ SpitTransitionsMotion * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DIRECTION:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_enum (value, spit_transitions_motion_get_direction (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_FPS:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_fps (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DURATION_MSEC:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_duration_msec (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_TOTAL_FRAMES:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_total_frames (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_TICK_MSEC:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_value_set_int (value, spit_transitions_motion_get_tick_msec (self));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1338 "TransitionsInterfaces.c"
+ default:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1344 "TransitionsInterfaces.c"
+ }
+}
+
+
+static void _vala_spit_transitions_motion_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+ SpitTransitionsMotion * self;
+ self = G_TYPE_CHECK_INSTANCE_CAST (object, SPIT_TRANSITIONS_TYPE_MOTION, SpitTransitionsMotion);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ switch (property_id) {
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DIRECTION:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_direction (self, g_value_get_enum (value));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_FPS:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_fps (self, g_value_get_int (value));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ case SPIT_TRANSITIONS_MOTION_DURATION_MSEC:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ spit_transitions_motion_set_duration_msec (self, g_value_get_int (value));
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1372 "TransitionsInterfaces.c"
+ default:
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+#line 122 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ break;
+#line 1378 "TransitionsInterfaces.c"
+ }
+}
+
+
+/**
+ * Returns an instance of the {@link Effect} this descriptor represents.
+ */
+SpitTransitionsEffect* spit_transitions_descriptor_create (SpitTransitionsDescriptor* self, SpitHostInterface* host) {
+#line 191 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self), NULL);
+#line 191 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->create (self, host);
+#line 1391 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved0 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved0 (SpitTransitionsDescriptor* self) {
+#line 196 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 196 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved0 (self);
+#line 1404 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved1 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved1 (SpitTransitionsDescriptor* self) {
+#line 197 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 197 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved1 (self);
+#line 1417 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved2 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved2 (SpitTransitionsDescriptor* self) {
+#line 198 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 198 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved2 (self);
+#line 1430 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved3 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved3 (SpitTransitionsDescriptor* self) {
+#line 199 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 199 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved3 (self);
+#line 1443 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved4 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved4 (SpitTransitionsDescriptor* self) {
+#line 200 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 200 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved4 (self);
+#line 1456 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved5 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved5 (SpitTransitionsDescriptor* self) {
+#line 201 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 201 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved5 (self);
+#line 1469 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved6 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved6 (SpitTransitionsDescriptor* self) {
+#line 202 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 202 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved6 (self);
+#line 1482 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_real_reserved7 (SpitTransitionsDescriptor* self) {
+}
+
+
+void spit_transitions_descriptor_reserved7 (SpitTransitionsDescriptor* self) {
+#line 203 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (self));
+#line 203 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_DESCRIPTOR_GET_INTERFACE (self)->reserved7 (self);
+#line 1495 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_descriptor_base_init (SpitTransitionsDescriptorIface * iface) {
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ if (!initialized) {
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ initialized = TRUE;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved0 = spit_transitions_descriptor_real_reserved0;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved1 = spit_transitions_descriptor_real_reserved1;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved2 = spit_transitions_descriptor_real_reserved2;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved3 = spit_transitions_descriptor_real_reserved3;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved4 = spit_transitions_descriptor_real_reserved4;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved5 = spit_transitions_descriptor_real_reserved5;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved6 = spit_transitions_descriptor_real_reserved6;
+#line 187 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved7 = spit_transitions_descriptor_real_reserved7;
+#line 1522 "TransitionsInterfaces.c"
+ }
+}
+
+
+/**
+ * A Descriptor offers a factory method for creating {@link Effect} instances.
+ */
+GType spit_transitions_descriptor_get_type (void) {
+ static volatile gsize spit_transitions_descriptor_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_descriptor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsDescriptorIface), (GBaseInitFunc) spit_transitions_descriptor_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_transitions_descriptor_type_id;
+ spit_transitions_descriptor_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitTransitionsDescriptor", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_transitions_descriptor_type_id, G_TYPE_OBJECT);
+ g_type_interface_add_prerequisite (spit_transitions_descriptor_type_id, SPIT_TYPE_PLUGGABLE);
+ g_once_init_leave (&spit_transitions_descriptor_type_id__volatile, spit_transitions_descriptor_type_id);
+ }
+ return spit_transitions_descriptor_type_id__volatile;
+}
+
+
+/**
+ * Returns frames per second (FPS) information for this effect.
+ *
+ * If the min_fps is not met, the Effect may be cancelled or the host will skip ahead.
+ *
+ * @param desired_fps The desired FPS of the transition. Return zero if no
+ * transition is to occur (instantaneous or null transition).
+ * @param min_fps The minimum FPS before the effect is consider "ruined".
+ * Return zero if any FPS is acceptable.
+ */
+void spit_transitions_effect_get_fps (SpitTransitionsEffect* self, gint* desired_fps, gint* min_fps) {
+#line 240 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 240 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->get_fps (self, desired_fps, min_fps);
+#line 1559 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called when the effect is starting.
+ *
+ * All state should be reset. The frame number, which is not supplied, is one.
+ */
+void spit_transitions_effect_start (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion) {
+#line 247 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 247 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->start (self, visuals, motion);
+#line 1573 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Return true if the Effect needs the background cleared prior to calling {@link paint}.
+ */
+gboolean spit_transitions_effect_needs_clear_background (SpitTransitionsEffect* self) {
+#line 252 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self), FALSE);
+#line 252 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ return SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->needs_clear_background (self);
+#line 1585 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called when the effect needs to paint (i.e. an expose or draw event has occurred).
+ *
+ * This call should ''not'' advance the state of the effect (i.e. it may be called more than
+ * once for the same frame).
+ *
+ * @param ctx The Cairo context the Effect should use to paint the transition.
+ * @param width The width (in pixels) of the Cairo surface.
+ * @param height The height (in pixels) of the Cairo surface.
+ * @param frame_number The ''one-based'' frame being drawn.
+ */
+void spit_transitions_effect_paint (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number) {
+#line 265 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 265 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->paint (self, visuals, motion, ctx, width, height, frame_number);
+#line 1605 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called to notify the effect that the state of the transition should advance to the specified
+ * frame number.
+ *
+ * Note: There is no guarantee frame numbers will be consecutive between calls
+ * to next, especially if the transition clock is attempting to catch up.
+ *
+ * @param frame_number The ''one-based'' frame being advanced to.
+ */
+void spit_transitions_effect_advance (SpitTransitionsEffect* self, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number) {
+#line 277 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 277 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->advance (self, visuals, motion, frame_number);
+#line 1623 "TransitionsInterfaces.c"
+}
+
+
+/**
+ * Called if the Effect should halt the transition.
+ *
+ * It only needs to reset state if {@link start} is called again.
+ */
+void spit_transitions_effect_cancel (SpitTransitionsEffect* self) {
+#line 284 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 284 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->cancel (self);
+#line 1637 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved0 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved0 (SpitTransitionsEffect* self) {
+#line 289 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 289 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved0 (self);
+#line 1650 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved1 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved1 (SpitTransitionsEffect* self) {
+#line 290 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 290 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved1 (self);
+#line 1663 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved2 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved2 (SpitTransitionsEffect* self) {
+#line 291 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 291 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved2 (self);
+#line 1676 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved3 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved3 (SpitTransitionsEffect* self) {
+#line 292 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 292 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved3 (self);
+#line 1689 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved4 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved4 (SpitTransitionsEffect* self) {
+#line 293 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 293 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved4 (self);
+#line 1702 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved5 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved5 (SpitTransitionsEffect* self) {
+#line 294 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 294 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved5 (self);
+#line 1715 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved6 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved6 (SpitTransitionsEffect* self) {
+#line 295 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 295 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved6 (self);
+#line 1728 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_real_reserved7 (SpitTransitionsEffect* self) {
+}
+
+
+void spit_transitions_effect_reserved7 (SpitTransitionsEffect* self) {
+#line 296 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_EFFECT (self));
+#line 296 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ SPIT_TRANSITIONS_EFFECT_GET_INTERFACE (self)->reserved7 (self);
+#line 1741 "TransitionsInterfaces.c"
+}
+
+
+static void spit_transitions_effect_base_init (SpitTransitionsEffectIface * iface) {
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ static gboolean initialized = FALSE;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ if (!initialized) {
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ initialized = TRUE;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved0 = spit_transitions_effect_real_reserved0;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved1 = spit_transitions_effect_real_reserved1;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved2 = spit_transitions_effect_real_reserved2;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved3 = spit_transitions_effect_real_reserved3;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved4 = spit_transitions_effect_real_reserved4;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved5 = spit_transitions_effect_real_reserved5;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved6 = spit_transitions_effect_real_reserved6;
+#line 229 "/home/jens/Source/shotwell/src/plugins/TransitionsInterfaces.vala"
+ iface->reserved7 = spit_transitions_effect_real_reserved7;
+#line 1768 "TransitionsInterfaces.c"
+ }
+}
+
+
+/**
+ * An Effect represents an interstitial effect that is used to transition the display from one
+ * image to another.
+ *
+ * An Effect must hold state so that it knows what it should be drawn at any call to {@link paint}
+ * (which is called regularly during a transition). That is, it should be able to draw any frame of
+ * the transition at any time. The same frame may need to be drawn multiple times, or the host
+ * may skip ahead and ask for a frame well ahead of the last requested one.
+ *
+ * ''Frame numbers are one-based throughout this interface''. This is because the initial state (the
+ * blank viewport or the starting pixbuf) is frame zero. The Effect is never called to paint this
+ * frame. The Effect is also not called to paint the final frame (a blank viewport or the ending
+ * pixbuf).
+ *
+ * If the Effect uses background threads for its work, it should use the appropriate primitives
+ * for critical sections. All calls to this interface will be from the context of the main UI
+ * thread. ''None of these calls should block.''
+ *
+ * If the Details object needs to be held by the Effect, its reference to it should be dropped at
+ * the end of the cycle (or shortly thereafter).
+ *
+ * An instance may be reused and should be prepared for restarts.
+ */
+GType spit_transitions_effect_get_type (void) {
+ static volatile gsize spit_transitions_effect_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_transitions_effect_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitTransitionsEffectIface), (GBaseInitFunc) spit_transitions_effect_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType spit_transitions_effect_type_id;
+ spit_transitions_effect_type_id = g_type_register_static (G_TYPE_INTERFACE, "SpitTransitionsEffect", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (spit_transitions_effect_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&spit_transitions_effect_type_id__volatile, spit_transitions_effect_type_id);
+ }
+ return spit_transitions_effect_type_id__volatile;
+}
+
+
+
diff --git a/src/plugins/mk/interfaces.mk b/src/plugins/mk/interfaces.mk
deleted file mode 100644
index 34be1eb..0000000
--- a/src/plugins/mk/interfaces.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-
-PLUGIN_INTERFACES := \
- src/plugins/SpitInterfaces.vala \
- src/plugins/TransitionsInterfaces.vala \
- src/plugins/PublishingInterfaces.vala \
- src/plugins/DataImportsInterfaces.vala
-
-PLUGIN_PKG_REQS := \
- gobject-2.0 \
- glib-2.0 \
- gdk-3.0 \
- gtk+-3.0 \
- gee-0.8
-
-PLUGIN_VAPI := plugins/shotwell-plugin-dev-1.0.vapi
-PLUGIN_HEADER := $(PLUGIN_VAPI:.vapi=.h)
-PLUGIN_DEPS := $(PLUGIN_VAPI:.vapi=.deps)
-
-$(PLUGIN_DEPS): src/plugins/mk/interfaces.mk
- rm -f $@
- $(foreach pkg,$(PLUGIN_PKG_REQS),`echo $(pkg) >> $@`)
-
-$(PLUGIN_HEADER): $(PLUGIN_VAPI)
-
-$(PLUGIN_VAPI): $(PLUGIN_INTERFACES) src/plugins/mk/interfaces.mk
- $(call check_valac_version)
- $(VALAC) -c $(VALAFLAGS) -X -DGETTEXT_PACKAGE='"shotwell"' -X -I. $(foreach pkg,$(PLUGIN_PKG_REQS),--pkg=$(pkg)) --includedir=plugins --vapi=$@ --header=$(basename $@).h $(PLUGIN_INTERFACES)
- $(foreach src,$(PLUGIN_INTERFACES),`rm $(notdir $(src)).o`)
-
diff --git a/src/plugins/mk/plugins.mk b/src/plugins/mk/plugins.mk
deleted file mode 100644
index 903dd8e..0000000
--- a/src/plugins/mk/plugins.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Plugins
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := plugins
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- PublishingInterfaces.vala \
- SpitInterfaces.vala \
- TransitionsInterfaces.vala \
- StandardHostInterface.vala \
- ManifestWidget.vala \
- DataImportsInterfaces.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Util
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC := \
- mk/interfaces.mk
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/publishing/APIGlue.c b/src/publishing/APIGlue.c
new file mode 100644
index 0000000..29cdd0a
--- /dev/null
+++ b/src/publishing/APIGlue.c
@@ -0,0 +1,1432 @@
+/* APIGlue.c generated by valac 0.32.1, the Vala compiler
+ * generated from APIGlue.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gio/gio.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+
+#define PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER (publishing_glue_media_source_publishable_wrapper_get_type ())
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper))
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapperClass))
+#define PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER))
+#define PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER))
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapperClass))
+
+typedef struct _PublishingGlueMediaSourcePublishableWrapper PublishingGlueMediaSourcePublishableWrapper;
+typedef struct _PublishingGlueMediaSourcePublishableWrapperClass PublishingGlueMediaSourcePublishableWrapperClass;
+typedef struct _PublishingGlueMediaSourcePublishableWrapperPrivate PublishingGlueMediaSourcePublishableWrapperPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_SCALING (scaling_get_type ())
+
+#define TYPE_SCALE_CONSTRAINT (scale_constraint_get_type ())
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+typedef struct _Scaling Scaling;
+
+#define JPEG_TYPE_QUALITY (jpeg_quality_get_type ())
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+struct _PublishingGlueMediaSourcePublishableWrapper {
+ GObject parent_instance;
+ PublishingGlueMediaSourcePublishableWrapperPrivate * priv;
+};
+
+struct _PublishingGlueMediaSourcePublishableWrapperClass {
+ GObjectClass parent_class;
+};
+
+struct _PublishingGlueMediaSourcePublishableWrapperPrivate {
+ MediaSource* wrapped;
+ GFile* serialized_file;
+ GeeMap* param_string;
+};
+
+typedef enum {
+ SCALE_CONSTRAINT_ORIGINAL,
+ SCALE_CONSTRAINT_DIMENSIONS,
+ SCALE_CONSTRAINT_WIDTH,
+ SCALE_CONSTRAINT_HEIGHT,
+ SCALE_CONSTRAINT_FILL_VIEWPORT
+} ScaleConstraint;
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Scaling {
+ ScaleConstraint constraint;
+ gint scale;
+ Dimensions viewport;
+ gboolean scale_up;
+};
+
+typedef enum {
+ JPEG_QUALITY_LOW = 50,
+ JPEG_QUALITY_MEDIUM = 75,
+ JPEG_QUALITY_HIGH = 90,
+ JPEG_QUALITY_MAXIMUM = 100
+} JpegQuality;
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+
+static gpointer publishing_glue_media_source_publishable_wrapper_parent_class = NULL;
+static gint publishing_glue_media_source_publishable_wrapper_name_ticker;
+static gint publishing_glue_media_source_publishable_wrapper_name_ticker = 0;
+extern TagSourceCollection* tag_global;
+static SpitPublishingPublishableIface* publishing_glue_media_source_publishable_wrapper_spit_publishing_publishable_parent_iface = NULL;
+
+GType publishing_glue_media_source_publishable_wrapper_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapperPrivate))
+enum {
+ PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_DUMMY_PROPERTY
+};
+PublishingGlueMediaSourcePublishableWrapper* publishing_glue_media_source_publishable_wrapper_new (MediaSource* to_wrap);
+PublishingGlueMediaSourcePublishableWrapper* publishing_glue_media_source_publishable_wrapper_construct (GType object_type, MediaSource* to_wrap);
+static void publishing_glue_media_source_publishable_wrapper_setup_parameters (PublishingGlueMediaSourcePublishableWrapper* self);
+void publishing_glue_media_source_publishable_wrapper_clean_up (PublishingGlueMediaSourcePublishableWrapper* self);
+gchar* media_source_get_basename (MediaSource* self);
+gchar* media_source_get_title (MediaSource* self);
+gchar* media_source_get_comment (MediaSource* self);
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+Event* media_source_get_event (MediaSource* self);
+gchar* event_source_get_comment (EventSource* self);
+GFile* publishing_glue_media_source_publishable_wrapper_serialize_for_publishing (PublishingGlueMediaSourcePublishableWrapper* self, gint content_major_axis, gboolean strip_metadata, GError** error);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GFile* app_dirs_get_temp_dir (void);
+gchar* data_source_get_source_id (DataSource* self);
+GType scaling_get_type (void) G_GNUC_CONST;
+GType scale_constraint_get_type (void) G_GNUC_CONST;
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+Scaling* scaling_dup (const Scaling* self);
+void scaling_free (Scaling* self);
+void scaling_for_best_fit (gint pixels, gboolean scale_up, Scaling* result);
+void scaling_for_original (Scaling* result);
+GType jpeg_quality_get_type (void) G_GNUC_CONST;
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+void photo_export (Photo* self, GFile* dest_file, Scaling* scaling, JpegQuality quality, PhotoFileFormat export_format, gboolean direct_copy_unmodified, gboolean export_metadata, GError** error);
+gchar* data_object_get_name (DataObject* self);
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+GFile* media_source_get_file (MediaSource* self);
+void video_export (Video* self, GFile* dest_file, GError** error);
+static gchar* publishing_glue_media_source_publishable_wrapper_real_get_publishing_name (SpitPublishingPublishable* base);
+static gchar* publishing_glue_media_source_publishable_wrapper_real_get_param_string (SpitPublishingPublishable* base, const gchar* name);
+static gchar** publishing_glue_media_source_publishable_wrapper_real_get_publishing_keywords (SpitPublishingPublishable* base, int* result_length1);
+GType tag_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+GeeSortedSet* tag_source_collection_fetch_sorted_for_source (TagSourceCollection* self, MediaSource* photo);
+static void _vala_array_add60 (gchar*** array, int* length, int* size, gchar* value);
+static gchar** _vala_array_dup22 (gchar** self, int length);
+static SpitPublishingPublisherMediaType publishing_glue_media_source_publishable_wrapper_real_get_media_type (SpitPublishingPublishable* base);
+static GFile* publishing_glue_media_source_publishable_wrapper_real_get_serialized_file (SpitPublishingPublishable* base);
+static GDateTime* publishing_glue_media_source_publishable_wrapper_real_get_exposure_date_time (SpitPublishingPublishable* base);
+time_t media_source_get_exposure_time (MediaSource* self);
+static void publishing_glue_media_source_publishable_wrapper_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 16 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 349 "APIGlue.c"
+}
+
+
+PublishingGlueMediaSourcePublishableWrapper* publishing_glue_media_source_publishable_wrapper_construct (GType object_type, MediaSource* to_wrap) {
+ PublishingGlueMediaSourcePublishableWrapper * self = NULL;
+ MediaSource* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (to_wrap), NULL);
+#line 15 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = (PublishingGlueMediaSourcePublishableWrapper*) g_object_new (object_type, NULL);
+#line 16 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = to_wrap;
+#line 16 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (self->priv->wrapped);
+#line 16 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self->priv->wrapped = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ publishing_glue_media_source_publishable_wrapper_setup_parameters (self);
+#line 15 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return self;
+#line 373 "APIGlue.c"
+}
+
+
+PublishingGlueMediaSourcePublishableWrapper* publishing_glue_media_source_publishable_wrapper_new (MediaSource* to_wrap) {
+#line 15 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return publishing_glue_media_source_publishable_wrapper_construct (PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, to_wrap);
+#line 380 "APIGlue.c"
+}
+
+
+void publishing_glue_media_source_publishable_wrapper_clean_up (PublishingGlueMediaSourcePublishableWrapper* self) {
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_return_if_fail (PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER (self));
+#line 21 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = self->priv->serialized_file;
+#line 21 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_tmp0_ == NULL) {
+#line 22 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return;
+#line 398 "APIGlue.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = self->priv->serialized_file;
+#line 24 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp2_ = g_file_get_path (_tmp1_);
+#line 24 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp3_ = _tmp2_;
+#line 24 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_debug ("APIGlue.vala:24: cleaning up temporary publishing file '%s'.", _tmp3_);
+#line 24 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp3_);
+#line 410 "APIGlue.c"
+ {
+ GFile* _tmp4_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp4_ = self->priv->serialized_file;
+#line 27 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_file_delete (_tmp4_, NULL, &_inner_error_);
+#line 27 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 419 "APIGlue.c"
+ goto __catch35_g_error;
+ }
+ }
+ goto __finally35;
+ __catch35_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ err = _inner_error_;
+#line 26 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _inner_error_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp5_ = self->priv->serialized_file;
+#line 29 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp6_ = g_file_get_path (_tmp5_);
+#line 29 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp7_ = _tmp6_;
+#line 29 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_warning ("APIGlue.vala:29: couldn't delete temporary publishing file '%s'.", _tmp7_);
+#line 29 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp7_);
+#line 26 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_error_free0 (err);
+#line 446 "APIGlue.c"
+ }
+ __finally35:
+#line 26 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 26 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 26 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_clear_error (&_inner_error_);
+#line 26 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return;
+#line 457 "APIGlue.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (self->priv->serialized_file);
+#line 32 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self->priv->serialized_file = NULL;
+#line 463 "APIGlue.c"
+}
+
+
+static void publishing_glue_media_source_publishable_wrapper_setup_parameters (PublishingGlueMediaSourcePublishableWrapper* self) {
+ GeeMap* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ GeeMap* _tmp4_ = NULL;
+ MediaSource* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GeeMap* _tmp8_ = NULL;
+ MediaSource* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ MediaSource* _tmp12_ = NULL;
+ Event* _tmp13_ = NULL;
+ Event* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 35 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_return_if_fail (PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER (self));
+#line 36 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = self->priv->param_string;
+#line 36 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = self->priv->wrapped;
+#line 36 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp2_ = media_source_get_basename (_tmp1_);
+#line 36 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp3_ = _tmp2_;
+#line 36 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ gee_map_set (_tmp0_, SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_BASENAME, _tmp3_);
+#line 36 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp3_);
+#line 37 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp4_ = self->priv->param_string;
+#line 37 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp5_ = self->priv->wrapped;
+#line 37 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp6_ = media_source_get_title (_tmp5_);
+#line 37 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp7_ = _tmp6_;
+#line 37 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ gee_map_set (_tmp4_, SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_TITLE, _tmp7_);
+#line 37 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp7_);
+#line 38 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp8_ = self->priv->param_string;
+#line 38 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp9_ = self->priv->wrapped;
+#line 38 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp10_ = media_source_get_comment (_tmp9_);
+#line 38 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp11_ = _tmp10_;
+#line 38 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ gee_map_set (_tmp8_, SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_COMMENT, _tmp11_);
+#line 38 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp11_);
+#line 40 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp12_ = self->priv->wrapped;
+#line 40 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp13_ = media_source_get_event (_tmp12_);
+#line 40 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp14_ = _tmp13_;
+#line 40 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp15_ = _tmp14_ != NULL;
+#line 40 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (_tmp14_);
+#line 40 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_tmp15_) {
+#line 534 "APIGlue.c"
+ GeeMap* _tmp16_ = NULL;
+ MediaSource* _tmp17_ = NULL;
+ Event* _tmp18_ = NULL;
+ Event* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp16_ = self->priv->param_string;
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp17_ = self->priv->wrapped;
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp18_ = media_source_get_event (_tmp17_);
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp19_ = _tmp18_;
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp20_ = event_source_get_comment (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, TYPE_EVENT_SOURCE, EventSource));
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp21_ = _tmp20_;
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ gee_map_set (_tmp16_, SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_EVENTCOMMENT, _tmp21_);
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp21_);
+#line 41 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (_tmp19_);
+#line 559 "APIGlue.c"
+ } else {
+ GeeMap* _tmp22_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp22_ = self->priv->param_string;
+#line 43 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ gee_map_set (_tmp22_, SPIT_PUBLISHING_PUBLISHABLE_PARAM_STRING_EVENTCOMMENT, "");
+#line 566 "APIGlue.c"
+ }
+}
+
+
+GFile* publishing_glue_media_source_publishable_wrapper_serialize_for_publishing (PublishingGlueMediaSourcePublishableWrapper* self, gint content_major_axis, gboolean strip_metadata, GError** error) {
+ GFile* result = NULL;
+ MediaSource* _tmp0_ = NULL;
+ GFile* _tmp63_ = NULL;
+ GFile* _tmp64_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_return_val_if_fail (PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER (self), NULL);
+#line 49 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = self->priv->wrapped;
+#line 49 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO)) {
+#line 583 "APIGlue.c"
+ LibraryPhoto* photo = NULL;
+ MediaSource* _tmp1_ = NULL;
+ LibraryPhoto* _tmp2_ = NULL;
+ GFile* to_file = NULL;
+ GFile* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GFile* _tmp8_ = NULL;
+ GFile* _tmp9_ = NULL;
+ LibraryPhoto* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GFile* _tmp30_ = NULL;
+ GFile* _tmp31_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = self->priv->wrapped;
+#line 50 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_LIBRARY_PHOTO, LibraryPhoto));
+#line 50 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ photo = _tmp2_;
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp3_ = app_dirs_get_temp_dir ();
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp4_ = _tmp3_;
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp5_ = publishing_glue_media_source_publishable_wrapper_name_ticker;
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ publishing_glue_media_source_publishable_wrapper_name_ticker = _tmp5_ + 1;
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp6_ = g_strdup_printf ("publishing-%d.jpg", _tmp5_);
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp7_ = _tmp6_;
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp8_ = g_file_get_child (_tmp4_, _tmp7_);
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp9_ = _tmp8_;
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp7_);
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (_tmp4_);
+#line 52 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ to_file = _tmp9_;
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp10_ = photo;
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp11_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_SOURCE, DataSource));
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp12_ = _tmp11_;
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp13_ = to_file;
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp15_ = _tmp14_;
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_debug ("APIGlue.vala:55: writing photo '%s' to temporary file '%s' for publish" \
+"ing.", _tmp12_, _tmp15_);
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp15_);
+#line 55 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp12_);
+#line 649 "APIGlue.c"
+ {
+ Scaling _tmp16_ = {0};
+ gint _tmp17_ = 0;
+ Scaling scaling = {0};
+ LibraryPhoto* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ Scaling _tmp23_ = {0};
+ gboolean _tmp24_ = FALSE;
+#line 58 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp17_ = content_major_axis;
+#line 58 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_tmp17_ > 0) {
+#line 662 "APIGlue.c"
+ gint _tmp18_ = 0;
+ Scaling _tmp19_ = {0};
+#line 59 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp18_ = content_major_axis;
+#line 59 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ scaling_for_best_fit (_tmp18_, FALSE, &_tmp19_);
+#line 59 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp16_ = _tmp19_;
+#line 671 "APIGlue.c"
+ } else {
+ Scaling _tmp20_ = {0};
+#line 59 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ scaling_for_original (&_tmp20_);
+#line 59 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp16_ = _tmp20_;
+#line 678 "APIGlue.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ scaling = _tmp16_;
+#line 60 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp21_ = photo;
+#line 60 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp22_ = to_file;
+#line 60 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp23_ = scaling;
+#line 60 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp24_ = strip_metadata;
+#line 60 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ photo_export (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, TYPE_PHOTO, Photo), _tmp22_, &_tmp23_, JPEG_QUALITY_HIGH, PHOTO_FILE_FORMAT_JFIF, FALSE, !_tmp24_, &_inner_error_);
+#line 60 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 694 "APIGlue.c"
+ goto __catch36_g_error;
+ }
+ }
+ goto __finally36;
+ __catch36_g_error:
+ {
+ GError* err = NULL;
+ LibraryPhoto* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ GError* _tmp28_ = NULL;
+ GError* _tmp29_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ err = _inner_error_;
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _inner_error_ = NULL;
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp25_ = photo;
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp26_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, TYPE_DATA_OBJECT, DataObject));
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp27_ = _tmp26_;
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp28_ = g_error_new (SPIT_PUBLISHING_PUBLISHING_ERROR, SPIT_PUBLISHING_PUBLISHING_ERROR_LOCAL_FILE_ERROR, "unable to serialize photo '%s' for publishing.", _tmp27_);
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp29_ = _tmp28_;
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp27_);
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _inner_error_ = _tmp29_;
+#line 62 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_error_free0 (err);
+#line 727 "APIGlue.c"
+ goto __finally36;
+ }
+ __finally36:
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_inner_error_->domain == SPIT_PUBLISHING_PUBLISHING_ERROR) {
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_propagate_error (error, _inner_error_);
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (to_file);
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (photo);
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return NULL;
+#line 743 "APIGlue.c"
+ } else {
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (to_file);
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (photo);
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_clear_error (&_inner_error_);
+#line 57 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return NULL;
+#line 755 "APIGlue.c"
+ }
+ }
+#line 66 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp30_ = to_file;
+#line 66 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 66 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (self->priv->serialized_file);
+#line 66 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self->priv->serialized_file = _tmp31_;
+#line 49 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (to_file);
+#line 49 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (photo);
+#line 770 "APIGlue.c"
+ } else {
+ MediaSource* _tmp32_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp32_ = self->priv->wrapped;
+#line 67 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp32_, TYPE_VIDEO)) {
+#line 777 "APIGlue.c"
+ Video* video = NULL;
+ MediaSource* _tmp33_ = NULL;
+ Video* _tmp34_ = NULL;
+ gchar* basename = NULL;
+ gchar* extension = NULL;
+ Video* _tmp35_ = NULL;
+ GFile* _tmp36_ = NULL;
+ GFile* _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ GFile* to_file = NULL;
+ gint _tmp42_ = 0;
+ const gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gchar* _tmp45_ = NULL;
+ GFile* _tmp46_ = NULL;
+ GFile* _tmp47_ = NULL;
+ Video* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ GFile* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+ gchar* _tmp53_ = NULL;
+ GFile* _tmp61_ = NULL;
+ GFile* _tmp62_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp33_ = self->priv->wrapped;
+#line 68 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp34_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, TYPE_VIDEO, Video));
+#line 68 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ video = _tmp34_;
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp35_ = video;
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp36_ = media_source_get_file (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp37_ = _tmp36_;
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp38_ = g_file_get_basename (_tmp37_);
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp39_ = _tmp38_;
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ disassemble_filename (_tmp39_, &_tmp40_, &_tmp41_);
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (basename);
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ basename = _tmp40_;
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (extension);
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ extension = _tmp41_;
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp39_);
+#line 72 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (_tmp37_);
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp42_ = publishing_glue_media_source_publishable_wrapper_name_ticker;
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ publishing_glue_media_source_publishable_wrapper_name_ticker = _tmp42_ + 1;
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp43_ = extension;
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp44_ = g_strdup_printf ("publishing-%d.%s", _tmp42_, _tmp43_);
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp45_ = _tmp44_;
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp46_ = g_file_new_for_path (_tmp45_);
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp47_ = _tmp46_;
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp45_);
+#line 74 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ to_file = _tmp47_;
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp48_ = video;
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp49_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, TYPE_DATA_SOURCE, DataSource));
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp50_ = _tmp49_;
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp51_ = to_file;
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp52_ = g_file_get_path (_tmp51_);
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp53_ = _tmp52_;
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_debug ("APIGlue.vala:77: writing video '%s' to temporary file '%s' for publish" \
+"ing.", _tmp50_, _tmp53_);
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp53_);
+#line 77 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp50_);
+#line 871 "APIGlue.c"
+ {
+ Video* _tmp54_ = NULL;
+ GFile* _tmp55_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp54_ = video;
+#line 80 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp55_ = to_file;
+#line 80 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ video_export (_tmp54_, _tmp55_, &_inner_error_);
+#line 80 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 883 "APIGlue.c"
+ goto __catch37_g_error;
+ }
+ }
+ goto __finally37;
+ __catch37_g_error:
+ {
+ GError* err = NULL;
+ Video* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ gchar* _tmp58_ = NULL;
+ GError* _tmp59_ = NULL;
+ GError* _tmp60_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ err = _inner_error_;
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _inner_error_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp56_ = video;
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp57_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_DATA_OBJECT, DataObject));
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp58_ = _tmp57_;
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp59_ = g_error_new (SPIT_PUBLISHING_PUBLISHING_ERROR, SPIT_PUBLISHING_PUBLISHING_ERROR_LOCAL_FILE_ERROR, "unable to serialize video '%s' for publishing.", _tmp58_);
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp60_ = _tmp59_;
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp58_);
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _inner_error_ = _tmp60_;
+#line 82 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_error_free0 (err);
+#line 916 "APIGlue.c"
+ goto __finally37;
+ }
+ __finally37:
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_inner_error_->domain == SPIT_PUBLISHING_PUBLISHING_ERROR) {
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_propagate_error (error, _inner_error_);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (to_file);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (extension);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (basename);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (video);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return NULL;
+#line 936 "APIGlue.c"
+ } else {
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (to_file);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (extension);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (basename);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (video);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_clear_error (&_inner_error_);
+#line 79 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return NULL;
+#line 952 "APIGlue.c"
+ }
+ }
+#line 86 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp61_ = to_file;
+#line 86 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp62_ = _g_object_ref0 (_tmp61_);
+#line 86 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (self->priv->serialized_file);
+#line 86 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self->priv->serialized_file = _tmp62_;
+#line 67 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (to_file);
+#line 67 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (extension);
+#line 67 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (basename);
+#line 67 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (video);
+#line 971 "APIGlue.c"
+ } else {
+#line 88 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_error ("APIGlue.vala:88: MediaSourcePublishableWrapper.serialize_for_publishin" \
+"g( ): unknown media type.");
+#line 975 "APIGlue.c"
+ }
+ }
+#line 91 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp63_ = self->priv->serialized_file;
+#line 91 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp64_ = _g_object_ref0 (_tmp63_);
+#line 91 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = _tmp64_;
+#line 91 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 986 "APIGlue.c"
+}
+
+
+static gchar* publishing_glue_media_source_publishable_wrapper_real_get_publishing_name (SpitPublishingPublishable* base) {
+ PublishingGlueMediaSourcePublishableWrapper * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ MediaSource* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 94 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper);
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = self->priv->wrapped;
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp2_ = media_source_get_title (_tmp1_);
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp3_ = _tmp2_;
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp4_ = _tmp3_ != NULL;
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp3_);
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_tmp4_) {
+#line 1012 "APIGlue.c"
+ MediaSource* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp5_ = self->priv->wrapped;
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp6_ = media_source_get_title (_tmp5_);
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp0_);
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = _tmp6_;
+#line 1023 "APIGlue.c"
+ } else {
+ gchar* _tmp7_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp7_ = g_strdup ("");
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_free0 (_tmp0_);
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = _tmp7_;
+#line 1032 "APIGlue.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = _tmp0_;
+#line 95 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1038 "APIGlue.c"
+}
+
+
+static gchar* publishing_glue_media_source_publishable_wrapper_real_get_param_string (SpitPublishingPublishable* base, const gchar* name) {
+ PublishingGlueMediaSourcePublishableWrapper * self;
+ gchar* result = NULL;
+ GeeMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper);
+#line 98 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 99 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = self->priv->param_string;
+#line 99 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = name;
+#line 99 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp2_ = gee_map_get (_tmp0_, _tmp1_);
+#line 99 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = (gchar*) _tmp2_;
+#line 99 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1062 "APIGlue.c"
+}
+
+
+static void _vala_array_add60 (gchar*** array, int* length, int* size, gchar* value) {
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if ((*length) == (*size)) {
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 1073 "APIGlue.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ (*array)[(*length)++] = value;
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ (*array)[*length] = NULL;
+#line 1079 "APIGlue.c"
+}
+
+
+static gchar** _vala_array_dup22 (gchar** self, int length) {
+ gchar** result;
+ int i;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = g_new0 (gchar*, length + 1);
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ for (i = 0; i < length; i++) {
+#line 1090 "APIGlue.c"
+ gchar* _tmp0_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = g_strdup (self[i]);
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result[i] = _tmp0_;
+#line 1096 "APIGlue.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1100 "APIGlue.c"
+}
+
+
+static gchar** publishing_glue_media_source_publishable_wrapper_real_get_publishing_keywords (SpitPublishingPublishable* base, int* result_length1) {
+ PublishingGlueMediaSourcePublishableWrapper * self;
+ gchar** result = NULL;
+ gchar** _result_ = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ GeeCollection* tagset = NULL;
+ TagSourceCollection* _tmp1_ = NULL;
+ MediaSource* _tmp2_ = NULL;
+ GeeSortedSet* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ gchar** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ gint __tmp14__size_ = 0;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gchar** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ gchar** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+#line 102 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper);
+#line 103 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 103 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _result_ = _tmp0_;
+#line 103 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _result__length1 = 0;
+#line 103 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ __result__size_ = _result__length1;
+#line 105 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = tag_global;
+#line 105 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp2_ = self->priv->wrapped;
+#line 105 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp3_ = tag_source_collection_fetch_sorted_for_source (_tmp1_, _tmp2_);
+#line 105 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ tagset = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 106 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp4_ = tagset;
+#line 106 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_tmp4_ != NULL) {
+#line 1147 "APIGlue.c"
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp5_ = tagset;
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tag_it = _tmp6_;
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ while (TRUE) {
+#line 1160 "APIGlue.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ Tag* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp7_ = _tag_it;
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (!_tmp8_) {
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ break;
+#line 1178 "APIGlue.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp9_ = _tag_it;
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ tag = (Tag*) _tmp10_;
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp11_ = _result_;
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp11__length1 = _result__length1;
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp12_ = tag;
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp13_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 108 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _vala_array_add60 (&_result_, &_result__length1, &__result__size_, _tmp13_);
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (tag);
+#line 1198 "APIGlue.c"
+ }
+#line 107 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (_tag_it);
+#line 1202 "APIGlue.c"
+ }
+ }
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp15_ = _result_;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp15__length1 = _result__length1;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (_tmp15__length1 > 0) {
+#line 1211 "APIGlue.c"
+ gchar** _tmp16_ = NULL;
+ gint _tmp16__length1 = 0;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp16_ = _result_;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp16__length1 = _result__length1;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp14_ = _tmp16_;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp14__length1 = _tmp16__length1;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ __tmp14__size_ = _tmp14__length1;
+#line 1224 "APIGlue.c"
+ } else {
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp14_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp14__length1 = 0;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ __tmp14__size_ = _tmp14__length1;
+#line 1232 "APIGlue.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp17_ = (_tmp14_ != NULL) ? _vala_array_dup22 (_tmp14_, _tmp14__length1) : ((gpointer) _tmp14_);
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp17__length1 = _tmp14__length1;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp18_ = _tmp17_;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp18__length1 = _tmp17__length1;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (result_length1) {
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ *result_length1 = _tmp18__length1;
+#line 1246 "APIGlue.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = _tmp18_;
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (tagset);
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _result_ = (_vala_array_free (_result_, _result__length1, (GDestroyNotify) g_free), NULL);
+#line 112 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1256 "APIGlue.c"
+}
+
+
+static SpitPublishingPublisherMediaType publishing_glue_media_source_publishable_wrapper_real_get_media_type (SpitPublishingPublishable* base) {
+ PublishingGlueMediaSourcePublishableWrapper * self;
+ SpitPublishingPublisherMediaType result = 0;
+ MediaSource* _tmp0_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper);
+#line 116 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = self->priv->wrapped;
+#line 116 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_LIBRARY_PHOTO)) {
+#line 117 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO;
+#line 117 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1274 "APIGlue.c"
+ } else {
+ MediaSource* _tmp1_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = self->priv->wrapped;
+#line 118 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_VIDEO)) {
+#line 119 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO;
+#line 119 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1285 "APIGlue.c"
+ } else {
+#line 121 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE;
+#line 121 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1291 "APIGlue.c"
+ }
+ }
+}
+
+
+static GFile* publishing_glue_media_source_publishable_wrapper_real_get_serialized_file (SpitPublishingPublishable* base) {
+ PublishingGlueMediaSourcePublishableWrapper * self;
+ GFile* result = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+#line 124 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper);
+#line 125 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = self->priv->serialized_file;
+#line 125 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 125 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = _tmp1_;
+#line 125 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1312 "APIGlue.c"
+}
+
+
+static GDateTime* publishing_glue_media_source_publishable_wrapper_real_get_exposure_date_time (SpitPublishingPublishable* base) {
+ PublishingGlueMediaSourcePublishableWrapper * self;
+ GDateTime* result = NULL;
+ MediaSource* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ GDateTime* _tmp2_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper);
+#line 129 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = self->priv->wrapped;
+#line 129 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp1_ = media_source_get_exposure_time (_tmp0_);
+#line 129 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp2_ = g_date_time_new_from_unix_local ((gint64) _tmp1_);
+#line 129 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ result = _tmp2_;
+#line 129 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ return result;
+#line 1334 "APIGlue.c"
+}
+
+
+static void publishing_glue_media_source_publishable_wrapper_class_init (PublishingGlueMediaSourcePublishableWrapperClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ publishing_glue_media_source_publishable_wrapper_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ g_type_class_add_private (klass, sizeof (PublishingGlueMediaSourcePublishableWrapperPrivate));
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ G_OBJECT_CLASS (klass)->finalize = publishing_glue_media_source_publishable_wrapper_finalize;
+#line 1345 "APIGlue.c"
+}
+
+
+static void publishing_glue_media_source_publishable_wrapper_spit_publishing_publishable_interface_init (SpitPublishingPublishableIface * iface) {
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ publishing_glue_media_source_publishable_wrapper_spit_publishing_publishable_parent_iface = g_type_interface_peek_parent (iface);
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ iface->get_publishing_name = (gchar* (*)(SpitPublishingPublishable*)) publishing_glue_media_source_publishable_wrapper_real_get_publishing_name;
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ iface->get_param_string = (gchar* (*)(SpitPublishingPublishable*, const gchar*)) publishing_glue_media_source_publishable_wrapper_real_get_param_string;
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ iface->get_publishing_keywords = (gchar** (*)(SpitPublishingPublishable*, int*)) publishing_glue_media_source_publishable_wrapper_real_get_publishing_keywords;
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ iface->get_media_type = (SpitPublishingPublisherMediaType (*)(SpitPublishingPublishable*)) publishing_glue_media_source_publishable_wrapper_real_get_media_type;
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ iface->get_serialized_file = (GFile* (*)(SpitPublishingPublishable*)) publishing_glue_media_source_publishable_wrapper_real_get_serialized_file;
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ iface->get_exposure_date_time = (GDateTime* (*)(SpitPublishingPublishable*)) publishing_glue_media_source_publishable_wrapper_real_get_exposure_date_time;
+#line 1364 "APIGlue.c"
+}
+
+
+static void publishing_glue_media_source_publishable_wrapper_instance_init (PublishingGlueMediaSourcePublishableWrapper * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self->priv = PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_GET_PRIVATE (self);
+#line 12 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self->priv->serialized_file = NULL;
+#line 13 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self->priv->param_string = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap);
+#line 1378 "APIGlue.c"
+}
+
+
+static void publishing_glue_media_source_publishable_wrapper_finalize (GObject* obj) {
+ PublishingGlueMediaSourcePublishableWrapper * self;
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper);
+#line 11 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (self->priv->wrapped);
+#line 12 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (self->priv->serialized_file);
+#line 13 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ _g_object_unref0 (self->priv->param_string);
+#line 8 "/home/jens/Source/shotwell/src/publishing/APIGlue.vala"
+ G_OBJECT_CLASS (publishing_glue_media_source_publishable_wrapper_parent_class)->finalize (obj);
+#line 1394 "APIGlue.c"
+}
+
+
+GType publishing_glue_media_source_publishable_wrapper_get_type (void) {
+ static volatile gsize publishing_glue_media_source_publishable_wrapper_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_glue_media_source_publishable_wrapper_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingGlueMediaSourcePublishableWrapperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_glue_media_source_publishable_wrapper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingGlueMediaSourcePublishableWrapper), 0, (GInstanceInitFunc) publishing_glue_media_source_publishable_wrapper_instance_init, NULL };
+ static const GInterfaceInfo spit_publishing_publishable_info = { (GInterfaceInitFunc) publishing_glue_media_source_publishable_wrapper_spit_publishing_publishable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType publishing_glue_media_source_publishable_wrapper_type_id;
+ publishing_glue_media_source_publishable_wrapper_type_id = g_type_register_static (G_TYPE_OBJECT, "PublishingGlueMediaSourcePublishableWrapper", &g_define_type_info, 0);
+ g_type_add_interface_static (publishing_glue_media_source_publishable_wrapper_type_id, SPIT_PUBLISHING_TYPE_PUBLISHABLE, &spit_publishing_publishable_info);
+ g_once_init_leave (&publishing_glue_media_source_publishable_wrapper_type_id__volatile, publishing_glue_media_source_publishable_wrapper_type_id);
+ }
+ return publishing_glue_media_source_publishable_wrapper_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/publishing/Publishing.c b/src/publishing/Publishing.c
new file mode 100644
index 0000000..fc14775
--- /dev/null
+++ b/src/publishing/Publishing.c
@@ -0,0 +1,196 @@
+/* Publishing.c generated by valac 0.32.1, the Vala compiler
+ * generated from Publishing.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <glib/gi18n-lib.h>
+
+
+
+
+void publishing_init (GError** error);
+static void _vala_array_add51 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add52 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add53 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add54 (gchar*** array, int* length, int* size, gchar* value);
+void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+#define RESOURCES_PUBLISH "applications-internet"
+void publishing_terminate (void);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static void _vala_array_add51 (gchar*** array, int* length, int* size, gchar* value) {
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ if ((*length) == (*size)) {
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 40 "Publishing.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[(*length)++] = value;
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[*length] = NULL;
+#line 46 "Publishing.c"
+}
+
+
+static void _vala_array_add52 (gchar*** array, int* length, int* size, gchar* value) {
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ if ((*length) == (*size)) {
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 57 "Publishing.c"
+ }
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[(*length)++] = value;
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[*length] = NULL;
+#line 63 "Publishing.c"
+}
+
+
+static void _vala_array_add53 (gchar*** array, int* length, int* size, gchar* value) {
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ if ((*length) == (*size)) {
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 74 "Publishing.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[(*length)++] = value;
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[*length] = NULL;
+#line 80 "Publishing.c"
+}
+
+
+static void _vala_array_add54 (gchar*** array, int* length, int* size, gchar* value) {
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ if ((*length) == (*size)) {
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 91 "Publishing.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[(*length)++] = value;
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ (*array)[*length] = NULL;
+#line 97 "Publishing.c"
+}
+
+
+void publishing_init (GError** error) {
+ gchar** core_ids = NULL;
+ gchar** _tmp0_ = NULL;
+ gint core_ids_length1 = 0;
+ gint _core_ids_size_ = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gchar* _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar** _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 10 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 10 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ core_ids = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ core_ids_length1 = 0;
+#line 10 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _core_ids_size_ = core_ids_length1;
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp1_ = core_ids;
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp1__length1 = core_ids_length1;
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp2_ = g_strdup ("org.yorba.shotwell.publishing.facebook");
+#line 11 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _vala_array_add51 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp2_);
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp3_ = core_ids;
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp3__length1 = core_ids_length1;
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp4_ = g_strdup ("org.yorba.shotwell.publishing.picasa");
+#line 12 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _vala_array_add52 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp4_);
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp5_ = core_ids;
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp5__length1 = core_ids_length1;
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp6_ = g_strdup ("org.yorba.shotwell.publishing.flickr");
+#line 13 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _vala_array_add53 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp6_);
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp7_ = core_ids;
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp7__length1 = core_ids_length1;
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp8_ = g_strdup ("org.yorba.shotwell.publishing.youtube");
+#line 14 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _vala_array_add54 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp8_);
+#line 16 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp9_ = _ ("Publishing");
+#line 16 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp10_ = core_ids;
+#line 16 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ _tmp10__length1 = core_ids_length1;
+#line 16 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ plugins_register_extension_point (SPIT_PUBLISHING_TYPE_SERVICE, _tmp9_, RESOURCES_PUBLISH, _tmp10_, _tmp10__length1);
+#line 9 "/home/jens/Source/shotwell/src/publishing/Publishing.vala"
+ core_ids = (_vala_array_free (core_ids, core_ids_length1, (GDestroyNotify) g_free), NULL);
+#line 171 "Publishing.c"
+}
+
+
+void publishing_terminate (void) {
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/publishing/PublishingPluginHost.c b/src/publishing/PublishingPluginHost.c
new file mode 100644
index 0000000..45a7681
--- /dev/null
+++ b/src/publishing/PublishingPluginHost.c
@@ -0,0 +1,1521 @@
+/* PublishingPluginHost.c generated by valac 0.32.1, the Vala compiler
+ * generated from PublishingPluginHost.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <gio/gio.h>
+
+
+#define PLUGINS_TYPE_STANDARD_HOST_INTERFACE (plugins_standard_host_interface_get_type ())
+#define PLUGINS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface))
+#define PLUGINS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+
+typedef struct _PluginsStandardHostInterface PluginsStandardHostInterface;
+typedef struct _PluginsStandardHostInterfaceClass PluginsStandardHostInterfaceClass;
+typedef struct _PluginsStandardHostInterfacePrivate PluginsStandardHostInterfacePrivate;
+
+#define SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST (spit_publishing_concrete_publishing_host_get_type ())
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost))
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHostClass))
+#define SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST))
+#define SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST))
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHostClass))
+
+typedef struct _SpitPublishingConcretePublishingHost SpitPublishingConcretePublishingHost;
+typedef struct _SpitPublishingConcretePublishingHostClass SpitPublishingConcretePublishingHostClass;
+typedef struct _SpitPublishingConcretePublishingHostPrivate SpitPublishingConcretePublishingHostPrivate;
+
+#define PUBLISHING_UI_TYPE_PUBLISHING_DIALOG (publishing_ui_publishing_dialog_get_type ())
+#define PUBLISHING_UI_PUBLISHING_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialog))
+#define PUBLISHING_UI_PUBLISHING_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialogClass))
+#define PUBLISHING_UI_IS_PUBLISHING_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG))
+#define PUBLISHING_UI_IS_PUBLISHING_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG))
+#define PUBLISHING_UI_PUBLISHING_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialogClass))
+
+typedef struct _PublishingUIPublishingDialog PublishingUIPublishingDialog;
+typedef struct _PublishingUIPublishingDialogClass PublishingUIPublishingDialogClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER (publishing_glue_media_source_publishable_wrapper_get_type ())
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper))
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapperClass))
+#define PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER))
+#define PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER))
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapperClass))
+
+typedef struct _PublishingGlueMediaSourcePublishableWrapper PublishingGlueMediaSourcePublishableWrapper;
+typedef struct _PublishingGlueMediaSourcePublishableWrapperClass PublishingGlueMediaSourcePublishableWrapperClass;
+
+#define PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE (publishing_ui_concrete_dialog_pane_get_type ())
+#define PUBLISHING_UI_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane))
+#define PUBLISHING_UI_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPaneClass))
+#define PUBLISHING_UI_IS_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define PUBLISHING_UI_IS_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define PUBLISHING_UI_CONCRETE_DIALOG_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPaneClass))
+
+typedef struct _PublishingUIConcreteDialogPane PublishingUIConcreteDialogPane;
+typedef struct _PublishingUIConcreteDialogPaneClass PublishingUIConcreteDialogPaneClass;
+
+#define PUBLISHING_UI_TYPE_PROGRESS_PANE (publishing_ui_progress_pane_get_type ())
+#define PUBLISHING_UI_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPane))
+#define PUBLISHING_UI_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPaneClass))
+#define PUBLISHING_UI_IS_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_PROGRESS_PANE))
+#define PUBLISHING_UI_IS_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_PROGRESS_PANE))
+#define PUBLISHING_UI_PROGRESS_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPaneClass))
+
+typedef struct _PublishingUIProgressPane PublishingUIProgressPane;
+typedef struct _PublishingUIProgressPaneClass PublishingUIProgressPaneClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE (publishing_ui_static_message_pane_get_type ())
+#define PUBLISHING_UI_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePane))
+#define PUBLISHING_UI_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePaneClass))
+#define PUBLISHING_UI_IS_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE))
+#define PUBLISHING_UI_IS_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE))
+#define PUBLISHING_UI_STATIC_MESSAGE_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePaneClass))
+
+typedef struct _PublishingUIStaticMessagePane PublishingUIStaticMessagePane;
+typedef struct _PublishingUIStaticMessagePaneClass PublishingUIStaticMessagePaneClass;
+
+#define PUBLISHING_UI_TYPE_SUCCESS_PANE (publishing_ui_success_pane_get_type ())
+#define PUBLISHING_UI_SUCCESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_SUCCESS_PANE, PublishingUISuccessPane))
+#define PUBLISHING_UI_SUCCESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_SUCCESS_PANE, PublishingUISuccessPaneClass))
+#define PUBLISHING_UI_IS_SUCCESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_SUCCESS_PANE))
+#define PUBLISHING_UI_IS_SUCCESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_SUCCESS_PANE))
+#define PUBLISHING_UI_SUCCESS_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_SUCCESS_PANE, PublishingUISuccessPaneClass))
+
+typedef struct _PublishingUISuccessPane PublishingUISuccessPane;
+typedef struct _PublishingUISuccessPaneClass PublishingUISuccessPaneClass;
+
+#define PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE (publishing_ui_account_fetch_wait_pane_get_type ())
+#define PUBLISHING_UI_ACCOUNT_FETCH_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE, PublishingUIAccountFetchWaitPane))
+#define PUBLISHING_UI_ACCOUNT_FETCH_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE, PublishingUIAccountFetchWaitPaneClass))
+#define PUBLISHING_UI_IS_ACCOUNT_FETCH_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE))
+#define PUBLISHING_UI_IS_ACCOUNT_FETCH_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE))
+#define PUBLISHING_UI_ACCOUNT_FETCH_WAIT_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE, PublishingUIAccountFetchWaitPaneClass))
+
+typedef struct _PublishingUIAccountFetchWaitPane PublishingUIAccountFetchWaitPane;
+typedef struct _PublishingUIAccountFetchWaitPaneClass PublishingUIAccountFetchWaitPaneClass;
+
+#define PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE (publishing_ui_login_wait_pane_get_type ())
+#define PUBLISHING_UI_LOGIN_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE, PublishingUILoginWaitPane))
+#define PUBLISHING_UI_LOGIN_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE, PublishingUILoginWaitPaneClass))
+#define PUBLISHING_UI_IS_LOGIN_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE))
+#define PUBLISHING_UI_IS_LOGIN_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE))
+#define PUBLISHING_UI_LOGIN_WAIT_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE, PublishingUILoginWaitPaneClass))
+
+typedef struct _PublishingUILoginWaitPane PublishingUILoginWaitPane;
+typedef struct _PublishingUILoginWaitPaneClass PublishingUILoginWaitPaneClass;
+
+#define PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE (publishing_ui_login_welcome_pane_get_type ())
+#define PUBLISHING_UI_LOGIN_WELCOME_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePane))
+#define PUBLISHING_UI_LOGIN_WELCOME_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePaneClass))
+#define PUBLISHING_UI_IS_LOGIN_WELCOME_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE))
+#define PUBLISHING_UI_IS_LOGIN_WELCOME_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE))
+#define PUBLISHING_UI_LOGIN_WELCOME_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePaneClass))
+
+typedef struct _PublishingUILoginWelcomePane PublishingUILoginWelcomePane;
+typedef struct _PublishingUILoginWelcomePaneClass PublishingUILoginWelcomePaneClass;
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _PluginsStandardHostInterface {
+ GObject parent_instance;
+ PluginsStandardHostInterfacePrivate * priv;
+};
+
+struct _PluginsStandardHostInterfaceClass {
+ GObjectClass parent_class;
+};
+
+struct _SpitPublishingConcretePublishingHost {
+ PluginsStandardHostInterface parent_instance;
+ SpitPublishingConcretePublishingHostPrivate * priv;
+};
+
+struct _SpitPublishingConcretePublishingHostClass {
+ PluginsStandardHostInterfaceClass parent_class;
+};
+
+struct _SpitPublishingConcretePublishingHostPrivate {
+ PublishingUIPublishingDialog* dialog;
+ SpitPublishingPublisher* active_publisher;
+ SpitPublishingPublishable** publishables;
+ gint publishables_length1;
+ gint _publishables_size_;
+ SpitPublishingLoginCallback current_login_callback;
+ gpointer current_login_callback_target;
+ gboolean publishing_halted;
+ SpitPublishingPublisherMediaType media_type;
+};
+
+
+static gpointer spit_publishing_concrete_publishing_host_parent_class = NULL;
+static SpitPublishingPluginHostIface* spit_publishing_concrete_publishing_host_spit_publishing_plugin_host_parent_iface = NULL;
+
+GType plugins_standard_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_publishing_concrete_publishing_host_get_type (void) G_GNUC_CONST;
+GType publishing_ui_publishing_dialog_get_type (void) G_GNUC_CONST;
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHostPrivate))
+enum {
+ SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_DUMMY_PROPERTY
+};
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_PREPARE_STATUS_DESCRIPTION _ ("Preparing for upload")
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_UPLOAD_STATUS_DESCRIPTION _ ("Uploading %d of %d")
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_STATUS_PREPARATION_FRACTION 0.3
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_STATUS_UPLOAD_FRACTION 0.7
+SpitPublishingConcretePublishingHost* spit_publishing_concrete_publishing_host_new (SpitPublishingService* service, PublishingUIPublishingDialog* dialog, SpitPublishingPublishable** publishables, int publishables_length1);
+SpitPublishingConcretePublishingHost* spit_publishing_concrete_publishing_host_construct (GType object_type, SpitPublishingService* service, PublishingUIPublishingDialog* dialog, SpitPublishingPublishable** publishables, int publishables_length1);
+PluginsStandardHostInterface* plugins_standard_host_interface_new (SpitPluggable* pluggable, const gchar* config_domain);
+PluginsStandardHostInterface* plugins_standard_host_interface_construct (GType object_type, SpitPluggable* pluggable, const gchar* config_domain);
+static SpitPublishingPublishable** _vala_array_dup20 (SpitPublishingPublishable** self, int length);
+static void spit_publishing_concrete_publishing_host_on_login_clicked (SpitPublishingConcretePublishingHost* self);
+static void spit_publishing_concrete_publishing_host_clean_up (SpitPublishingConcretePublishingHost* self);
+GType publishing_glue_media_source_publishable_wrapper_get_type (void) G_GNUC_CONST;
+void publishing_glue_media_source_publishable_wrapper_clean_up (PublishingGlueMediaSourcePublishableWrapper* self);
+static void spit_publishing_concrete_publishing_host_report_plugin_upload_progress (SpitPublishingConcretePublishingHost* self, gint file_number, gdouble fraction_complete);
+SpitPublishingDialogPane* publishing_ui_publishing_dialog_get_active_pane (PublishingUIPublishingDialog* self);
+GType publishing_ui_concrete_dialog_pane_get_type (void) G_GNUC_CONST;
+GType publishing_ui_progress_pane_get_type (void) G_GNUC_CONST;
+void publishing_ui_progress_pane_set_status (PublishingUIProgressPane* self, const gchar* status_text, gdouble progress);
+static void spit_publishing_concrete_publishing_host_install_progress_pane (SpitPublishingConcretePublishingHost* self);
+PublishingUIProgressPane* publishing_ui_progress_pane_new (void);
+PublishingUIProgressPane* publishing_ui_progress_pane_construct (GType object_type);
+void publishing_ui_publishing_dialog_install_pane (PublishingUIPublishingDialog* self, SpitPublishingDialogPane* pane);
+void spit_publishing_concrete_publishing_host_set_button_mode (SpitPublishingConcretePublishingHost* self, SpitPublishingPluginHostButtonMode mode);
+static void spit_publishing_concrete_publishing_host_real_install_dialog_pane (SpitPublishingPluginHost* base, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode button_mode);
+static void spit_publishing_concrete_publishing_host_real_post_error (SpitPublishingPluginHost* base, GError* err);
+PublishingUIStaticMessagePane* publishing_ui_static_message_pane_new (const gchar* message_string, gboolean enable_markup);
+PublishingUIStaticMessagePane* publishing_ui_static_message_pane_construct (GType object_type, const gchar* message_string, gboolean enable_markup);
+GType publishing_ui_static_message_pane_get_type (void) G_GNUC_CONST;
+void publishing_ui_publishing_dialog_set_close_button_mode (PublishingUIPublishingDialog* self);
+void publishing_ui_publishing_dialog_unlock_service (PublishingUIPublishingDialog* self);
+static void spit_publishing_concrete_publishing_host_real_stop_publishing (SpitPublishingPluginHost* base);
+void spit_publishing_concrete_publishing_host_start_publishing (SpitPublishingConcretePublishingHost* self);
+static SpitPublishingPublisher* spit_publishing_concrete_publishing_host_real_get_publisher (SpitPublishingPluginHost* base);
+static void spit_publishing_concrete_publishing_host_real_install_static_message_pane (SpitPublishingPluginHost* base, const gchar* message, SpitPublishingPluginHostButtonMode button_mode);
+static void spit_publishing_concrete_publishing_host_real_install_pango_message_pane (SpitPublishingPluginHost* base, const gchar* markup, SpitPublishingPluginHostButtonMode button_mode);
+static void spit_publishing_concrete_publishing_host_real_install_success_pane (SpitPublishingPluginHost* base);
+PublishingUISuccessPane* publishing_ui_success_pane_new (SpitPublishingPublisherMediaType published_media, gint num_uploaded);
+PublishingUISuccessPane* publishing_ui_success_pane_construct (GType object_type, SpitPublishingPublisherMediaType published_media, gint num_uploaded);
+GType publishing_ui_success_pane_get_type (void) G_GNUC_CONST;
+static void spit_publishing_concrete_publishing_host_real_install_account_fetch_wait_pane (SpitPublishingPluginHost* base);
+PublishingUIAccountFetchWaitPane* publishing_ui_account_fetch_wait_pane_new (void);
+PublishingUIAccountFetchWaitPane* publishing_ui_account_fetch_wait_pane_construct (GType object_type);
+GType publishing_ui_account_fetch_wait_pane_get_type (void) G_GNUC_CONST;
+static void spit_publishing_concrete_publishing_host_real_install_login_wait_pane (SpitPublishingPluginHost* base);
+PublishingUILoginWaitPane* publishing_ui_login_wait_pane_new (void);
+PublishingUILoginWaitPane* publishing_ui_login_wait_pane_construct (GType object_type);
+GType publishing_ui_login_wait_pane_get_type (void) G_GNUC_CONST;
+static void spit_publishing_concrete_publishing_host_real_install_welcome_pane (SpitPublishingPluginHost* base, const gchar* welcome_message, SpitPublishingLoginCallback login_clicked_callback, void* login_clicked_callback_target);
+GType publishing_ui_login_welcome_pane_get_type (void) G_GNUC_CONST;
+PublishingUILoginWelcomePane* publishing_ui_login_welcome_pane_new (const gchar* service_welcome_message);
+PublishingUILoginWelcomePane* publishing_ui_login_welcome_pane_construct (GType object_type, const gchar* service_welcome_message);
+static void _spit_publishing_concrete_publishing_host_on_login_clicked_publishing_ui_login_welcome_pane_login_requested (PublishingUILoginWelcomePane* _sender, gpointer self);
+static void spit_publishing_concrete_publishing_host_real_set_service_locked (SpitPublishingPluginHost* base, gboolean locked);
+void publishing_ui_publishing_dialog_lock_service (PublishingUIPublishingDialog* self);
+void publishing_ui_publishing_dialog_set_cancel_button_mode (PublishingUIPublishingDialog* self);
+static void spit_publishing_concrete_publishing_host_real_set_dialog_default_widget (SpitPublishingPluginHost* base, GtkWidget* widget);
+static SpitPublishingPublisherMediaType spit_publishing_concrete_publishing_host_real_get_publishable_media_type (SpitPublishingPluginHost* base);
+static SpitPublishingPublishable** spit_publishing_concrete_publishing_host_real_get_publishables (SpitPublishingPluginHost* base, int* result_length1);
+static SpitPublishingPublishable** _vala_array_dup21 (SpitPublishingPublishable** self, int length);
+static SpitPublishingProgressCallback spit_publishing_concrete_publishing_host_real_serialize_publishables (SpitPublishingPluginHost* base, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify);
+void spin_event_loop (void);
+GFile* publishing_glue_media_source_publishable_wrapper_serialize_for_publishing (PublishingGlueMediaSourcePublishableWrapper* self, gint content_major_axis, gboolean strip_metadata, GError** error);
+static void _spit_publishing_concrete_publishing_host_report_plugin_upload_progress_spit_publishing_progress_callback (gint file_number, gdouble fraction_complete, gpointer self);
+static void spit_publishing_concrete_publishing_host_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 250 "PublishingPluginHost.c"
+}
+
+
+static SpitPublishingPublishable** _vala_array_dup20 (SpitPublishingPublishable** self, int length) {
+ SpitPublishingPublishable** result;
+ int i;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = g_new0 (SpitPublishingPublishable*, length + 1);
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ for (i = 0; i < length; i++) {
+#line 261 "PublishingPluginHost.c"
+ SpitPublishingPublishable* _tmp0_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result[i] = _tmp0_;
+#line 267 "PublishingPluginHost.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 271 "PublishingPluginHost.c"
+}
+
+
+SpitPublishingConcretePublishingHost* spit_publishing_concrete_publishing_host_construct (GType object_type, SpitPublishingService* service, PublishingUIPublishingDialog* dialog, SpitPublishingPublishable** publishables, int publishables_length1) {
+ SpitPublishingConcretePublishingHost * self = NULL;
+ SpitPublishingService* _tmp0_ = NULL;
+ PublishingUIPublishingDialog* _tmp1_ = NULL;
+ SpitPublishingPublishable** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ SpitPublishingPublishable** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ SpitPublishingPublishable** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ SpitPublishingService* _tmp9_ = NULL;
+ SpitPublishingPublisher* _tmp10_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_val_if_fail (SPIT_PUBLISHING_IS_SERVICE (service), NULL);
+#line 24 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_val_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (dialog), NULL);
+#line 26 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = service;
+#line 26 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = (SpitPublishingConcretePublishingHost*) plugins_standard_host_interface_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_TYPE_PLUGGABLE, SpitPluggable), "sharing");
+#line 27 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = dialog;
+#line 27 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->dialog = _tmp1_;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = publishables;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2__length1 = publishables_length1;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = (_tmp2_ != NULL) ? _vala_array_dup20 (_tmp2_, _tmp2__length1) : ((gpointer) _tmp2_);
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3__length1 = _tmp2__length1;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishables = (_vala_array_free (self->priv->publishables, self->priv->publishables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishables = _tmp3_;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishables_length1 = _tmp3__length1;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->_publishables_size_ = self->priv->publishables_length1;
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = publishables;
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4__length1 = publishables_length1;
+#line 319 "PublishingPluginHost.c"
+ {
+ SpitPublishingPublishable** curr_publishable_collection = NULL;
+ gint curr_publishable_collection_length1 = 0;
+ gint _curr_publishable_collection_size_ = 0;
+ gint curr_publishable_it = 0;
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ curr_publishable_collection = _tmp4_;
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ curr_publishable_collection_length1 = _tmp4__length1;
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ for (curr_publishable_it = 0; curr_publishable_it < _tmp4__length1; curr_publishable_it = curr_publishable_it + 1) {
+#line 331 "PublishingPluginHost.c"
+ SpitPublishingPublishable* _tmp5_ = NULL;
+ SpitPublishingPublishable* curr_publishable = NULL;
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp5_ = _g_object_ref0 (curr_publishable_collection[curr_publishable_it]);
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ curr_publishable = _tmp5_;
+#line 338 "PublishingPluginHost.c"
+ {
+ SpitPublishingPublisherMediaType _tmp6_ = 0;
+ SpitPublishingPublishable* _tmp7_ = NULL;
+ SpitPublishingPublisherMediaType _tmp8_ = 0;
+#line 31 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp6_ = self->priv->media_type;
+#line 31 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp7_ = curr_publishable;
+#line 31 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp8_ = spit_publishing_publishable_get_media_type (_tmp7_);
+#line 31 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->media_type = _tmp6_ | _tmp8_;
+#line 30 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (curr_publishable);
+#line 353 "PublishingPluginHost.c"
+ }
+ }
+ }
+#line 33 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp9_ = service;
+#line 33 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp10_ = spit_publishing_service_create_publisher (_tmp9_, G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHost));
+#line 33 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (self->priv->active_publisher);
+#line 33 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->active_publisher = _tmp10_;
+#line 24 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return self;
+#line 367 "PublishingPluginHost.c"
+}
+
+
+SpitPublishingConcretePublishingHost* spit_publishing_concrete_publishing_host_new (SpitPublishingService* service, PublishingUIPublishingDialog* dialog, SpitPublishingPublishable** publishables, int publishables_length1) {
+#line 24 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return spit_publishing_concrete_publishing_host_construct (SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, service, dialog, publishables, publishables_length1);
+#line 374 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_on_login_clicked (SpitPublishingConcretePublishingHost* self) {
+ SpitPublishingLoginCallback _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+#line 36 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST (self));
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->current_login_callback;
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0__target = self->priv->current_login_callback_target;
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp0_ != NULL) {
+#line 389 "PublishingPluginHost.c"
+ SpitPublishingLoginCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->current_login_callback;
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1__target = self->priv->current_login_callback_target;
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ (_tmp1__target);
+#line 398 "PublishingPluginHost.c"
+ }
+}
+
+
+static void spit_publishing_concrete_publishing_host_clean_up (SpitPublishingConcretePublishingHost* self) {
+ SpitPublishingPublishable** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+#line 41 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST (self));
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->publishables;
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0__length1 = self->priv->publishables_length1;
+#line 412 "PublishingPluginHost.c"
+ {
+ SpitPublishingPublishable** publishable_collection = NULL;
+ gint publishable_collection_length1 = 0;
+ gint _publishable_collection_size_ = 0;
+ gint publishable_it = 0;
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishable_collection = _tmp0_;
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishable_collection_length1 = _tmp0__length1;
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ for (publishable_it = 0; publishable_it < _tmp0__length1; publishable_it = publishable_it + 1) {
+#line 424 "PublishingPluginHost.c"
+ SpitPublishingPublishable* _tmp1_ = NULL;
+ SpitPublishingPublishable* publishable = NULL;
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = _g_object_ref0 (publishable_collection[publishable_it]);
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishable = _tmp1_;
+#line 431 "PublishingPluginHost.c"
+ {
+ SpitPublishingPublishable* _tmp2_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = publishable;
+#line 43 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_glue_media_source_publishable_wrapper_clean_up (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper));
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (publishable);
+#line 440 "PublishingPluginHost.c"
+ }
+ }
+ }
+}
+
+
+static void spit_publishing_concrete_publishing_host_report_plugin_upload_progress (SpitPublishingConcretePublishingHost* self, gint file_number, gdouble fraction_complete) {
+ PublishingUIPublishingDialog* _tmp0_ = NULL;
+ SpitPublishingDialogPane* _tmp1_ = NULL;
+ SpitPublishingDialogPane* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ PublishingUIProgressPane* pane = NULL;
+ PublishingUIPublishingDialog* _tmp4_ = NULL;
+ SpitPublishingDialogPane* _tmp5_ = NULL;
+ gchar* status_string = NULL;
+ gint _tmp6_ = 0;
+ SpitPublishingPublishable** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gchar* _tmp8_ = NULL;
+ gdouble status_fraction = 0.0;
+ gdouble _tmp9_ = 0.0;
+ PublishingUIProgressPane* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gdouble _tmp12_ = 0.0;
+#line 46 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST (self));
+#line 48 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->dialog;
+#line 48 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = publishing_ui_publishing_dialog_get_active_pane (_tmp0_);
+#line 48 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = _tmp1_;
+#line 48 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = !G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, PUBLISHING_UI_TYPE_PROGRESS_PANE);
+#line 48 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp2_);
+#line 48 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp3_) {
+#line 49 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return;
+#line 481 "PublishingPluginHost.c"
+ }
+#line 51 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = self->priv->dialog;
+#line 51 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp5_ = publishing_ui_publishing_dialog_get_active_pane (_tmp4_);
+#line 51 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ pane = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPane);
+#line 53 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp6_ = file_number;
+#line 53 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp7_ = self->priv->publishables;
+#line 53 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp7__length1 = self->priv->publishables_length1;
+#line 53 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp8_ = g_strdup_printf (SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_UPLOAD_STATUS_DESCRIPTION, _tmp6_, _tmp7__length1);
+#line 53 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ status_string = _tmp8_;
+#line 55 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp9_ = fraction_complete;
+#line 55 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ status_fraction = SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_STATUS_PREPARATION_FRACTION + (SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_STATUS_UPLOAD_FRACTION * _tmp9_);
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp10_ = pane;
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp11_ = status_string;
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp12_ = status_fraction;
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_progress_pane_set_status (_tmp10_, _tmp11_, _tmp12_);
+#line 46 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_free0 (status_string);
+#line 46 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (pane);
+#line 515 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_install_progress_pane (SpitPublishingConcretePublishingHost* self) {
+ PublishingUIProgressPane* progress_pane = NULL;
+ PublishingUIProgressPane* _tmp0_ = NULL;
+ PublishingUIPublishingDialog* _tmp1_ = NULL;
+#line 61 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST (self));
+#line 62 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = publishing_ui_progress_pane_new ();
+#line 62 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ progress_pane = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 64 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (progress_pane, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 65 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_set_button_mode (self, SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL);
+#line 61 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (progress_pane);
+#line 537 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_install_dialog_pane (SpitPublishingPluginHost* base, SpitPublishingDialogPane* pane, SpitPublishingPluginHostButtonMode button_mode) {
+ SpitPublishingConcretePublishingHost * self;
+ gboolean _tmp0_ = FALSE;
+ SpitPublishingPublisher* _tmp1_ = NULL;
+ PublishingUIPublishingDialog* _tmp4_ = NULL;
+ SpitPublishingDialogPane* _tmp5_ = NULL;
+ SpitPublishingPluginHostButtonMode _tmp6_ = 0;
+#line 68 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 68 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (pane));
+#line 70 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_debug ("PublishingPluginHost.vala:70: Publishing.PluginHost: install_dialog_pa" \
+"ne( ): invoked.");
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->active_publisher;
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp1_ == NULL) {
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = TRUE;
+#line 560 "PublishingPluginHost.c"
+ } else {
+ SpitPublishingPublisher* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = self->priv->active_publisher;
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = spit_publishing_publisher_is_running (_tmp2_);
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = !_tmp3_;
+#line 570 "PublishingPluginHost.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp0_) {
+#line 73 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return;
+#line 576 "PublishingPluginHost.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = self->priv->dialog;
+#line 75 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp5_ = pane;
+#line 75 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp4_, _tmp5_);
+#line 77 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp6_ = button_mode;
+#line 77 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_set_button_mode (self, _tmp6_);
+#line 588 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_post_error (SpitPublishingPluginHost* base, GError* err) {
+ SpitPublishingConcretePublishingHost * self;
+ gchar* msg = NULL;
+ const gchar* _tmp0_ = NULL;
+ SpitPublishingPublisher* _tmp1_ = NULL;
+ SpitPublishingService* _tmp2_ = NULL;
+ SpitPublishingService* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ PublishingUIPublishingDialog* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ PublishingUIStaticMessagePane* _tmp18_ = NULL;
+ PublishingUIStaticMessagePane* _tmp19_ = NULL;
+ PublishingUIPublishingDialog* _tmp20_ = NULL;
+ PublishingUIPublishingDialog* _tmp21_ = NULL;
+ SpitPublishingPublisher* _tmp22_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = _ ("Publishing to %s can't continue because an error occurred:");
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->active_publisher;
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = spit_publishing_publisher_get_service (_tmp1_);
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = _tmp2_;
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp5_ = g_strdup_printf (_tmp0_, _tmp4_);
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp6_ = _tmp5_;
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp3_);
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ msg = _tmp6_;
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp7_ = msg;
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp8_ = err;
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp9_ = _tmp8_->message;
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp10_ = g_markup_printf_escaped ("\n\n<i>%s</i>\n\n", _tmp9_);
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp11_ = _tmp10_;
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp12_ = g_strconcat (_tmp7_, _tmp11_, NULL);
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_free0 (msg);
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ msg = _tmp12_;
+#line 83 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_free0 (_tmp11_);
+#line 84 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp13_ = msg;
+#line 84 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp14_ = _ ("To try publishing to another service, select one from the above menu.");
+#line 84 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp15_ = g_strconcat (_tmp13_, _tmp14_, NULL);
+#line 84 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_free0 (msg);
+#line 84 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ msg = _tmp15_;
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp16_ = self->priv->dialog;
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp17_ = msg;
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp18_ = publishing_ui_static_message_pane_new (_tmp17_, TRUE);
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp19_ = _tmp18_;
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp19_);
+#line 87 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp20_ = self->priv->dialog;
+#line 87 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_set_close_button_mode (_tmp20_);
+#line 88 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp21_ = self->priv->dialog;
+#line 88 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_unlock_service (_tmp21_);
+#line 90 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp22_ = self->priv->active_publisher;
+#line 90 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_publisher_stop (_tmp22_);
+#line 95 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_clean_up (self);
+#line 80 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_free0 (msg);
+#line 694 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_stop_publishing (SpitPublishingPluginHost* base) {
+ SpitPublishingConcretePublishingHost * self;
+ SpitPublishingPublisher* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 98 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 99 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_debug ("PublishingPluginHost.vala:99: ConcretePublishingHost.stop_publishing( " \
+"): invoked.");
+#line 101 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->active_publisher;
+#line 101 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = spit_publishing_publisher_is_running (_tmp0_);
+#line 101 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp1_) {
+#line 712 "PublishingPluginHost.c"
+ SpitPublishingPublisher* _tmp2_ = NULL;
+#line 102 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = self->priv->active_publisher;
+#line 102 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_publisher_stop (_tmp2_);
+#line 718 "PublishingPluginHost.c"
+ }
+#line 104 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_clean_up (self);
+#line 106 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishing_halted = TRUE;
+#line 724 "PublishingPluginHost.c"
+}
+
+
+void spit_publishing_concrete_publishing_host_start_publishing (SpitPublishingConcretePublishingHost* self) {
+ SpitPublishingPublisher* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ SpitPublishingPublisher* _tmp2_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST (self));
+#line 110 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->active_publisher;
+#line 110 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = spit_publishing_publisher_is_running (_tmp0_);
+#line 110 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp1_) {
+#line 111 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return;
+#line 742 "PublishingPluginHost.c"
+ }
+#line 113 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_debug ("PublishingPluginHost.vala:113: ConcretePublishingHost.start_publishing" \
+"( ): invoked.");
+#line 115 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = self->priv->active_publisher;
+#line 115 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_publisher_start (_tmp2_);
+#line 750 "PublishingPluginHost.c"
+}
+
+
+static SpitPublishingPublisher* spit_publishing_concrete_publishing_host_real_get_publisher (SpitPublishingPluginHost* base) {
+ SpitPublishingConcretePublishingHost * self;
+ SpitPublishingPublisher* result = NULL;
+ SpitPublishingPublisher* _tmp0_ = NULL;
+ SpitPublishingPublisher* _tmp1_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 119 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->active_publisher;
+#line 119 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 119 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = _tmp1_;
+#line 119 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 769 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_install_static_message_pane (SpitPublishingPluginHost* base, const gchar* message, SpitPublishingPluginHostButtonMode button_mode) {
+ SpitPublishingConcretePublishingHost * self;
+ SpitPublishingPluginHostButtonMode _tmp0_ = 0;
+ PublishingUIPublishingDialog* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PublishingUIStaticMessagePane* _tmp3_ = NULL;
+ PublishingUIStaticMessagePane* _tmp4_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 122 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (message != NULL);
+#line 125 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = button_mode;
+#line 125 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_set_button_mode (self, _tmp0_);
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = message;
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = publishing_ui_static_message_pane_new (_tmp2_, FALSE);
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = _tmp3_;
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp4_);
+#line 800 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_install_pango_message_pane (SpitPublishingPluginHost* base, const gchar* markup, SpitPublishingPluginHostButtonMode button_mode) {
+ SpitPublishingConcretePublishingHost * self;
+ SpitPublishingPluginHostButtonMode _tmp0_ = 0;
+ PublishingUIPublishingDialog* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ PublishingUIStaticMessagePane* _tmp3_ = NULL;
+ PublishingUIStaticMessagePane* _tmp4_ = NULL;
+#line 130 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 130 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (markup != NULL);
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = button_mode;
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_set_button_mode (self, _tmp0_);
+#line 134 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 134 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = markup;
+#line 134 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = publishing_ui_static_message_pane_new (_tmp2_, TRUE);
+#line 134 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = _tmp3_;
+#line 134 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 134 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp4_);
+#line 831 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_install_success_pane (SpitPublishingPluginHost* base) {
+ SpitPublishingConcretePublishingHost * self;
+ PublishingUIPublishingDialog* _tmp0_ = NULL;
+ SpitPublishingPublisherMediaType _tmp1_ = 0;
+ SpitPublishingPublishable** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ PublishingUISuccessPane* _tmp3_ = NULL;
+ PublishingUISuccessPane* _tmp4_ = NULL;
+ PublishingUIPublishingDialog* _tmp5_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->dialog;
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = spit_publishing_plugin_host_get_publishable_media_type (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHost));
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = self->priv->publishables;
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2__length1 = self->priv->publishables_length1;
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = publishing_ui_success_pane_new (_tmp1_, _tmp2__length1);
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = _tmp3_;
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 138 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp4_);
+#line 140 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp5_ = self->priv->dialog;
+#line 140 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_set_close_button_mode (_tmp5_);
+#line 144 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_clean_up (self);
+#line 868 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_install_account_fetch_wait_pane (SpitPublishingPluginHost* base) {
+ SpitPublishingConcretePublishingHost * self;
+ PublishingUIPublishingDialog* _tmp0_ = NULL;
+ PublishingUIAccountFetchWaitPane* _tmp1_ = NULL;
+ PublishingUIAccountFetchWaitPane* _tmp2_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 148 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->dialog;
+#line 148 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = publishing_ui_account_fetch_wait_pane_new ();
+#line 148 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = _tmp1_;
+#line 148 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 148 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp2_);
+#line 149 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_set_button_mode (self, SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL);
+#line 891 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_install_login_wait_pane (SpitPublishingPluginHost* base) {
+ SpitPublishingConcretePublishingHost * self;
+ PublishingUIPublishingDialog* _tmp0_ = NULL;
+ PublishingUILoginWaitPane* _tmp1_ = NULL;
+ PublishingUILoginWaitPane* _tmp2_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 153 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->dialog;
+#line 153 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = publishing_ui_login_wait_pane_new ();
+#line 153 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = _tmp1_;
+#line 153 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 153 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp2_);
+#line 912 "PublishingPluginHost.c"
+}
+
+
+static void _spit_publishing_concrete_publishing_host_on_login_clicked_publishing_ui_login_welcome_pane_login_requested (PublishingUILoginWelcomePane* _sender, gpointer self) {
+#line 160 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_on_login_clicked ((SpitPublishingConcretePublishingHost*) self);
+#line 919 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_install_welcome_pane (SpitPublishingPluginHost* base, const gchar* welcome_message, SpitPublishingLoginCallback login_clicked_callback, void* login_clicked_callback_target) {
+ SpitPublishingConcretePublishingHost * self;
+ PublishingUILoginWelcomePane* login_pane = NULL;
+ const gchar* _tmp0_ = NULL;
+ PublishingUILoginWelcomePane* _tmp1_ = NULL;
+ SpitPublishingLoginCallback _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ PublishingUIPublishingDialog* _tmp3_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (welcome_message != NULL);
+#line 157 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = welcome_message;
+#line 157 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = publishing_ui_login_welcome_pane_new (_tmp0_);
+#line 157 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ login_pane = _tmp1_;
+#line 159 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = login_clicked_callback;
+#line 159 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2__target = login_clicked_callback_target;
+#line 159 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->current_login_callback = _tmp2_;
+#line 159 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->current_login_callback_target = _tmp2__target;
+#line 160 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_signal_connect_object (login_pane, "login-requested", (GCallback) _spit_publishing_concrete_publishing_host_on_login_clicked_publishing_ui_login_welcome_pane_login_requested, self, 0);
+#line 162 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_set_button_mode (self, SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE);
+#line 164 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = self->priv->dialog;
+#line 164 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_install_pane (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (login_pane, SPIT_PUBLISHING_TYPE_DIALOG_PANE, SpitPublishingDialogPane));
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (login_pane);
+#line 959 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_set_service_locked (SpitPublishingPluginHost* base, gboolean locked) {
+ SpitPublishingConcretePublishingHost * self;
+ gboolean _tmp0_ = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 168 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = locked;
+#line 168 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp0_) {
+#line 972 "PublishingPluginHost.c"
+ PublishingUIPublishingDialog* _tmp1_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 169 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_lock_service (_tmp1_);
+#line 978 "PublishingPluginHost.c"
+ } else {
+ PublishingUIPublishingDialog* _tmp2_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = self->priv->dialog;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_unlock_service (_tmp2_);
+#line 985 "PublishingPluginHost.c"
+ }
+}
+
+
+void spit_publishing_concrete_publishing_host_set_button_mode (SpitPublishingConcretePublishingHost* self, SpitPublishingPluginHostButtonMode mode) {
+ SpitPublishingPluginHostButtonMode _tmp0_ = 0;
+#line 174 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST (self));
+#line 175 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = mode;
+#line 175 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp0_ == SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CLOSE) {
+#line 998 "PublishingPluginHost.c"
+ PublishingUIPublishingDialog* _tmp1_ = NULL;
+#line 176 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 176 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_set_close_button_mode (_tmp1_);
+#line 1004 "PublishingPluginHost.c"
+ } else {
+ SpitPublishingPluginHostButtonMode _tmp2_ = 0;
+#line 177 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = mode;
+#line 177 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp2_ == SPIT_PUBLISHING_PLUGIN_HOST_BUTTON_MODE_CANCEL) {
+#line 1011 "PublishingPluginHost.c"
+ PublishingUIPublishingDialog* _tmp3_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = self->priv->dialog;
+#line 178 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_publishing_dialog_set_cancel_button_mode (_tmp3_);
+#line 1017 "PublishingPluginHost.c"
+ } else {
+#line 180 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_error ("PublishingPluginHost.vala:180: unrecognized button mode enumeration va" \
+"lue");
+#line 1021 "PublishingPluginHost.c"
+ }
+ }
+}
+
+
+static void spit_publishing_concrete_publishing_host_real_set_dialog_default_widget (SpitPublishingPluginHost* base, GtkWidget* widget) {
+ SpitPublishingConcretePublishingHost * self;
+ GtkWidget* _tmp0_ = NULL;
+ PublishingUIPublishingDialog* _tmp1_ = NULL;
+ GtkWidget* _tmp2_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 183 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 184 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = widget;
+#line 184 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ gtk_widget_set_can_default (_tmp0_, TRUE);
+#line 185 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = self->priv->dialog;
+#line 185 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = widget;
+#line 185 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ gtk_window_set_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_window_get_type (), GtkWindow), _tmp2_);
+#line 1046 "PublishingPluginHost.c"
+}
+
+
+static SpitPublishingPublisherMediaType spit_publishing_concrete_publishing_host_real_get_publishable_media_type (SpitPublishingPluginHost* base) {
+ SpitPublishingConcretePublishingHost * self;
+ SpitPublishingPublisherMediaType result = 0;
+ SpitPublishingPublisherMediaType _tmp0_ = 0;
+#line 188 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 189 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->media_type;
+#line 189 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = _tmp0_;
+#line 189 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 1062 "PublishingPluginHost.c"
+}
+
+
+static SpitPublishingPublishable** _vala_array_dup21 (SpitPublishingPublishable** self, int length) {
+ SpitPublishingPublishable** result;
+ int i;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = g_new0 (SpitPublishingPublishable*, length + 1);
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ for (i = 0; i < length; i++) {
+#line 1073 "PublishingPluginHost.c"
+ SpitPublishingPublishable* _tmp0_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = _g_object_ref0 (self[i]);
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result[i] = _tmp0_;
+#line 1079 "PublishingPluginHost.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 1083 "PublishingPluginHost.c"
+}
+
+
+static SpitPublishingPublishable** spit_publishing_concrete_publishing_host_real_get_publishables (SpitPublishingPluginHost* base, int* result_length1) {
+ SpitPublishingConcretePublishingHost * self;
+ SpitPublishingPublishable** result = NULL;
+ SpitPublishingPublishable** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ SpitPublishingPublishable** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ SpitPublishingPublishable** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 192 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->publishables;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0__length1 = self->priv->publishables_length1;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup21 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1__length1 = _tmp0__length1;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = _tmp1_;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2__length1 = _tmp1__length1;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (result_length1) {
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ *result_length1 = _tmp2__length1;
+#line 1114 "PublishingPluginHost.c"
+ }
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = _tmp2_;
+#line 193 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 1120 "PublishingPluginHost.c"
+}
+
+
+static void _spit_publishing_concrete_publishing_host_report_plugin_upload_progress_spit_publishing_progress_callback (gint file_number, gdouble fraction_complete, gpointer self) {
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_report_plugin_upload_progress ((SpitPublishingConcretePublishingHost*) self, file_number, fraction_complete);
+#line 1127 "PublishingPluginHost.c"
+}
+
+
+static SpitPublishingProgressCallback spit_publishing_concrete_publishing_host_real_serialize_publishables (SpitPublishingPluginHost* base, gint content_major_axis, gboolean strip_metadata, void** result_target, GDestroyNotify* result_target_destroy_notify) {
+ SpitPublishingConcretePublishingHost * self;
+ SpitPublishingProgressCallback result = NULL;
+ PublishingUIProgressPane* progress_pane = NULL;
+ PublishingUIPublishingDialog* _tmp0_ = NULL;
+ SpitPublishingDialogPane* _tmp1_ = NULL;
+ gint i = 0;
+ SpitPublishingPublishable** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+ SpitPublishingProgressCallback _tmp25_ = NULL;
+ void* _tmp25__target = NULL;
+ GDestroyNotify _tmp25__target_destroy_notify = NULL;
+ GError * _inner_error_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 198 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_install_progress_pane (self);
+#line 199 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp0_ = self->priv->dialog;
+#line 199 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp1_ = publishing_ui_publishing_dialog_get_active_pane (_tmp0_);
+#line 199 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ progress_pane = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPane);
+#line 205 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spin_event_loop ();
+#line 207 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ i = 0;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2_ = self->priv->publishables;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp2__length1 = self->priv->publishables_length1;
+#line 1162 "PublishingPluginHost.c"
+ {
+ SpitPublishingPublishable** publishable_collection = NULL;
+ gint publishable_collection_length1 = 0;
+ gint _publishable_collection_size_ = 0;
+ gint publishable_it = 0;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishable_collection = _tmp2_;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishable_collection_length1 = _tmp2__length1;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ for (publishable_it = 0; publishable_it < _tmp2__length1; publishable_it = publishable_it + 1) {
+#line 1174 "PublishingPluginHost.c"
+ SpitPublishingPublishable* _tmp3_ = NULL;
+ SpitPublishingPublishable* publishable = NULL;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp3_ = _g_object_ref0 (publishable_collection[publishable_it]);
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishable = _tmp3_;
+#line 1181 "PublishingPluginHost.c"
+ {
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ gdouble phase_fraction_complete = 0.0;
+ gint _tmp18_ = 0;
+ SpitPublishingPublishable** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gdouble fraction_complete = 0.0;
+ gdouble _tmp20_ = 0.0;
+ gdouble _tmp21_ = 0.0;
+ PublishingUIProgressPane* _tmp22_ = NULL;
+ gdouble _tmp23_ = 0.0;
+ gint _tmp24_ = 0;
+#line 209 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp5_ = self->priv->publishing_halted;
+#line 209 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp5_) {
+#line 209 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = TRUE;
+#line 1201 "PublishingPluginHost.c"
+ } else {
+ SpitPublishingPublisher* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 209 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp6_ = self->priv->active_publisher;
+#line 209 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp7_ = spit_publishing_publisher_is_running (_tmp6_);
+#line 209 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp4_ = !_tmp7_;
+#line 1211 "PublishingPluginHost.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_tmp4_) {
+#line 1215 "PublishingPluginHost.c"
+ SpitPublishingProgressCallback _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+ GDestroyNotify _tmp8__target_destroy_notify = NULL;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp8_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp8__target = NULL;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp8__target_destroy_notify = NULL;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ *result_target = _tmp8__target;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ *result_target_destroy_notify = _tmp8__target_destroy_notify;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = _tmp8_;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (publishable);
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (progress_pane);
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 1237 "PublishingPluginHost.c"
+ }
+ {
+ PublishingGlueMediaSourcePublishableWrapper* wrapper = NULL;
+ SpitPublishingPublishable* _tmp9_ = NULL;
+ PublishingGlueMediaSourcePublishableWrapper* _tmp10_ = NULL;
+ PublishingGlueMediaSourcePublishableWrapper* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gboolean _tmp13_ = FALSE;
+ GFile* _tmp14_ = NULL;
+ GFile* _tmp15_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp9_ = publishable;
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp10_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper));
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ wrapper = _tmp10_;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp11_ = wrapper;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp12_ = content_major_axis;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp13_ = strip_metadata;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp14_ = publishing_glue_media_source_publishable_wrapper_serialize_for_publishing (_tmp11_, _tmp12_, _tmp13_, &_inner_error_);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp15_ = _tmp14_;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (_tmp15_);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (wrapper);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (_inner_error_->domain == SPIT_PUBLISHING_PUBLISHING_ERROR) {
+#line 1272 "PublishingPluginHost.c"
+ goto __catch34_spit_publishing_publishing_error;
+ }
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (wrapper);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (publishable);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (progress_pane);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_clear_error (&_inner_error_);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return NULL;
+#line 1287 "PublishingPluginHost.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (wrapper);
+#line 1291 "PublishingPluginHost.c"
+ }
+ goto __finally34;
+ __catch34_spit_publishing_publishing_error:
+ {
+ GError* err = NULL;
+ GError* _tmp16_ = NULL;
+ SpitPublishingProgressCallback _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ GDestroyNotify _tmp17__target_destroy_notify = NULL;
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ err = _inner_error_;
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _inner_error_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp16_ = err;
+#line 217 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_plugin_host_post_error (G_TYPE_CHECK_INSTANCE_CAST (self, SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHost), _tmp16_);
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp17_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp17__target = NULL;
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp17__target_destroy_notify = NULL;
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ *result_target = _tmp17__target;
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ *result_target_destroy_notify = _tmp17__target_destroy_notify;
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = _tmp17_;
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_error_free0 (err);
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (publishable);
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (progress_pane);
+#line 218 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 1329 "PublishingPluginHost.c"
+ }
+ __finally34:
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (publishable);
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (progress_pane);
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_clear_error (&_inner_error_);
+#line 212 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return NULL;
+#line 1344 "PublishingPluginHost.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp18_ = i;
+#line 221 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp19_ = self->priv->publishables;
+#line 221 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp19__length1 = self->priv->publishables_length1;
+#line 221 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ phase_fraction_complete = ((gdouble) (_tmp18_ + 1)) / ((gdouble) _tmp19__length1);
+#line 222 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp20_ = phase_fraction_complete;
+#line 222 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ fraction_complete = _tmp20_ * SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_STATUS_PREPARATION_FRACTION;
+#line 224 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp21_ = fraction_complete;
+#line 224 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_debug ("PublishingPluginHost.vala:224: serialize_publishables( ): fraction_com" \
+"plete = %f.", _tmp21_);
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp22_ = progress_pane;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp23_ = fraction_complete;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ publishing_ui_progress_pane_set_status (_tmp22_, SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_PREPARE_STATUS_DESCRIPTION, _tmp23_);
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spin_event_loop ();
+#line 230 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp24_ = i;
+#line 230 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ i = _tmp24_ + 1;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (publishable);
+#line 1376 "PublishingPluginHost.c"
+ }
+ }
+ }
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp25_ = _spit_publishing_concrete_publishing_host_report_plugin_upload_progress_spit_publishing_progress_callback;
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp25__target = g_object_ref (self);
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _tmp25__target_destroy_notify = g_object_unref;
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ *result_target = _tmp25__target;
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ *result_target_destroy_notify = _tmp25__target_destroy_notify;
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ result = _tmp25_;
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (progress_pane);
+#line 233 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ return result;
+#line 1396 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_class_init (SpitPublishingConcretePublishingHostClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ g_type_class_add_private (klass, sizeof (SpitPublishingConcretePublishingHostPrivate));
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ G_OBJECT_CLASS (klass)->finalize = spit_publishing_concrete_publishing_host_finalize;
+#line 1407 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_spit_publishing_plugin_host_interface_init (SpitPublishingPluginHostIface * iface) {
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ spit_publishing_concrete_publishing_host_spit_publishing_plugin_host_parent_iface = g_type_interface_peek_parent (iface);
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->install_dialog_pane = (void (*)(SpitPublishingPluginHost*, SpitPublishingDialogPane*, SpitPublishingPluginHostButtonMode)) spit_publishing_concrete_publishing_host_real_install_dialog_pane;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->post_error = (void (*)(SpitPublishingPluginHost*, GError*)) spit_publishing_concrete_publishing_host_real_post_error;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->stop_publishing = (void (*)(SpitPublishingPluginHost*)) spit_publishing_concrete_publishing_host_real_stop_publishing;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->get_publisher = (SpitPublishingPublisher* (*)(SpitPublishingPluginHost*)) spit_publishing_concrete_publishing_host_real_get_publisher;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->install_static_message_pane = (void (*)(SpitPublishingPluginHost*, const gchar*, SpitPublishingPluginHostButtonMode)) spit_publishing_concrete_publishing_host_real_install_static_message_pane;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->install_pango_message_pane = (void (*)(SpitPublishingPluginHost*, const gchar*, SpitPublishingPluginHostButtonMode)) spit_publishing_concrete_publishing_host_real_install_pango_message_pane;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->install_success_pane = (void (*)(SpitPublishingPluginHost*)) spit_publishing_concrete_publishing_host_real_install_success_pane;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->install_account_fetch_wait_pane = (void (*)(SpitPublishingPluginHost*)) spit_publishing_concrete_publishing_host_real_install_account_fetch_wait_pane;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->install_login_wait_pane = (void (*)(SpitPublishingPluginHost*)) spit_publishing_concrete_publishing_host_real_install_login_wait_pane;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->install_welcome_pane = (void (*)(SpitPublishingPluginHost*, const gchar*, SpitPublishingLoginCallback, void*)) spit_publishing_concrete_publishing_host_real_install_welcome_pane;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->set_service_locked = (void (*)(SpitPublishingPluginHost*, gboolean)) spit_publishing_concrete_publishing_host_real_set_service_locked;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->set_dialog_default_widget = (void (*)(SpitPublishingPluginHost*, GtkWidget*)) spit_publishing_concrete_publishing_host_real_set_dialog_default_widget;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->get_publishable_media_type = (SpitPublishingPublisherMediaType (*)(SpitPublishingPluginHost*)) spit_publishing_concrete_publishing_host_real_get_publishable_media_type;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->get_publishables = (SpitPublishingPublishable** (*)(SpitPublishingPluginHost*, int*)) spit_publishing_concrete_publishing_host_real_get_publishables;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ iface->serialize_publishables = (SpitPublishingProgressCallback (*)(SpitPublishingPluginHost*, gint, gboolean, void**, GDestroyNotify*)) spit_publishing_concrete_publishing_host_real_serialize_publishables;
+#line 1444 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_instance_init (SpitPublishingConcretePublishingHost * self) {
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv = SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_GET_PRIVATE (self);
+#line 16 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->dialog = NULL;
+#line 17 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->active_publisher = NULL;
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishables = NULL;
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishables_length1 = 0;
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->_publishables_size_ = self->priv->publishables_length1;
+#line 19 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->current_login_callback = NULL;
+#line 20 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishing_halted = FALSE;
+#line 21 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->media_type = SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_NONE;
+#line 1467 "PublishingPluginHost.c"
+}
+
+
+static void spit_publishing_concrete_publishing_host_finalize (GObject* obj) {
+ SpitPublishingConcretePublishingHost * self;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost);
+#line 17 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ _g_object_unref0 (self->priv->active_publisher);
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ self->priv->publishables = (_vala_array_free (self->priv->publishables, self->priv->publishables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingPluginHost.vala"
+ G_OBJECT_CLASS (spit_publishing_concrete_publishing_host_parent_class)->finalize (obj);
+#line 1481 "PublishingPluginHost.c"
+}
+
+
+GType spit_publishing_concrete_publishing_host_get_type (void) {
+ static volatile gsize spit_publishing_concrete_publishing_host_type_id__volatile = 0;
+ if (g_once_init_enter (&spit_publishing_concrete_publishing_host_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SpitPublishingConcretePublishingHostClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) spit_publishing_concrete_publishing_host_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SpitPublishingConcretePublishingHost), 0, (GInstanceInitFunc) spit_publishing_concrete_publishing_host_instance_init, NULL };
+ static const GInterfaceInfo spit_publishing_plugin_host_info = { (GInterfaceInitFunc) spit_publishing_concrete_publishing_host_spit_publishing_plugin_host_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType spit_publishing_concrete_publishing_host_type_id;
+ spit_publishing_concrete_publishing_host_type_id = g_type_register_static (PLUGINS_TYPE_STANDARD_HOST_INTERFACE, "SpitPublishingConcretePublishingHost", &g_define_type_info, 0);
+ g_type_add_interface_static (spit_publishing_concrete_publishing_host_type_id, SPIT_PUBLISHING_TYPE_PLUGIN_HOST, &spit_publishing_plugin_host_info);
+ g_once_init_leave (&spit_publishing_concrete_publishing_host_type_id__volatile, spit_publishing_concrete_publishing_host_type_id);
+ }
+ return spit_publishing_concrete_publishing_host_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/publishing/PublishingUI.c b/src/publishing/PublishingUI.c
new file mode 100644
index 0000000..9dcf2e0
--- /dev/null
+++ b/src/publishing/PublishingUI.c
@@ -0,0 +1,3520 @@
+/* PublishingUI.c generated by valac 0.32.1, the Vala compiler
+ * generated from PublishingUI.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <float.h>
+#include <math.h>
+#include <glib/gi18n-lib.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
+
+#define PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE (publishing_ui_concrete_dialog_pane_get_type ())
+#define PUBLISHING_UI_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane))
+#define PUBLISHING_UI_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPaneClass))
+#define PUBLISHING_UI_IS_CONCRETE_DIALOG_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define PUBLISHING_UI_IS_CONCRETE_DIALOG_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE))
+#define PUBLISHING_UI_CONCRETE_DIALOG_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPaneClass))
+
+typedef struct _PublishingUIConcreteDialogPane PublishingUIConcreteDialogPane;
+typedef struct _PublishingUIConcreteDialogPaneClass PublishingUIConcreteDialogPaneClass;
+typedef struct _PublishingUIConcreteDialogPanePrivate PublishingUIConcreteDialogPanePrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE (publishing_ui_static_message_pane_get_type ())
+#define PUBLISHING_UI_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePane))
+#define PUBLISHING_UI_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePaneClass))
+#define PUBLISHING_UI_IS_STATIC_MESSAGE_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE))
+#define PUBLISHING_UI_IS_STATIC_MESSAGE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE))
+#define PUBLISHING_UI_STATIC_MESSAGE_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePaneClass))
+
+typedef struct _PublishingUIStaticMessagePane PublishingUIStaticMessagePane;
+typedef struct _PublishingUIStaticMessagePaneClass PublishingUIStaticMessagePaneClass;
+typedef struct _PublishingUIStaticMessagePanePrivate PublishingUIStaticMessagePanePrivate;
+
+#define PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE (publishing_ui_login_welcome_pane_get_type ())
+#define PUBLISHING_UI_LOGIN_WELCOME_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePane))
+#define PUBLISHING_UI_LOGIN_WELCOME_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePaneClass))
+#define PUBLISHING_UI_IS_LOGIN_WELCOME_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE))
+#define PUBLISHING_UI_IS_LOGIN_WELCOME_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE))
+#define PUBLISHING_UI_LOGIN_WELCOME_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePaneClass))
+
+typedef struct _PublishingUILoginWelcomePane PublishingUILoginWelcomePane;
+typedef struct _PublishingUILoginWelcomePaneClass PublishingUILoginWelcomePaneClass;
+typedef struct _PublishingUILoginWelcomePanePrivate PublishingUILoginWelcomePanePrivate;
+
+#define PUBLISHING_UI_TYPE_PROGRESS_PANE (publishing_ui_progress_pane_get_type ())
+#define PUBLISHING_UI_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPane))
+#define PUBLISHING_UI_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPaneClass))
+#define PUBLISHING_UI_IS_PROGRESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_PROGRESS_PANE))
+#define PUBLISHING_UI_IS_PROGRESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_PROGRESS_PANE))
+#define PUBLISHING_UI_PROGRESS_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPaneClass))
+
+typedef struct _PublishingUIProgressPane PublishingUIProgressPane;
+typedef struct _PublishingUIProgressPaneClass PublishingUIProgressPaneClass;
+typedef struct _PublishingUIProgressPanePrivate PublishingUIProgressPanePrivate;
+
+#define PUBLISHING_UI_TYPE_SUCCESS_PANE (publishing_ui_success_pane_get_type ())
+#define PUBLISHING_UI_SUCCESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_SUCCESS_PANE, PublishingUISuccessPane))
+#define PUBLISHING_UI_SUCCESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_SUCCESS_PANE, PublishingUISuccessPaneClass))
+#define PUBLISHING_UI_IS_SUCCESS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_SUCCESS_PANE))
+#define PUBLISHING_UI_IS_SUCCESS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_SUCCESS_PANE))
+#define PUBLISHING_UI_SUCCESS_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_SUCCESS_PANE, PublishingUISuccessPaneClass))
+
+typedef struct _PublishingUISuccessPane PublishingUISuccessPane;
+typedef struct _PublishingUISuccessPaneClass PublishingUISuccessPaneClass;
+typedef struct _PublishingUISuccessPanePrivate PublishingUISuccessPanePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE (publishing_ui_account_fetch_wait_pane_get_type ())
+#define PUBLISHING_UI_ACCOUNT_FETCH_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE, PublishingUIAccountFetchWaitPane))
+#define PUBLISHING_UI_ACCOUNT_FETCH_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE, PublishingUIAccountFetchWaitPaneClass))
+#define PUBLISHING_UI_IS_ACCOUNT_FETCH_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE))
+#define PUBLISHING_UI_IS_ACCOUNT_FETCH_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE))
+#define PUBLISHING_UI_ACCOUNT_FETCH_WAIT_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE, PublishingUIAccountFetchWaitPaneClass))
+
+typedef struct _PublishingUIAccountFetchWaitPane PublishingUIAccountFetchWaitPane;
+typedef struct _PublishingUIAccountFetchWaitPaneClass PublishingUIAccountFetchWaitPaneClass;
+typedef struct _PublishingUIAccountFetchWaitPanePrivate PublishingUIAccountFetchWaitPanePrivate;
+
+#define PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE (publishing_ui_login_wait_pane_get_type ())
+#define PUBLISHING_UI_LOGIN_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE, PublishingUILoginWaitPane))
+#define PUBLISHING_UI_LOGIN_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE, PublishingUILoginWaitPaneClass))
+#define PUBLISHING_UI_IS_LOGIN_WAIT_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE))
+#define PUBLISHING_UI_IS_LOGIN_WAIT_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE))
+#define PUBLISHING_UI_LOGIN_WAIT_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE, PublishingUILoginWaitPaneClass))
+
+typedef struct _PublishingUILoginWaitPane PublishingUILoginWaitPane;
+typedef struct _PublishingUILoginWaitPaneClass PublishingUILoginWaitPaneClass;
+typedef struct _PublishingUILoginWaitPanePrivate PublishingUILoginWaitPanePrivate;
+
+#define PUBLISHING_UI_TYPE_PUBLISHING_DIALOG (publishing_ui_publishing_dialog_get_type ())
+#define PUBLISHING_UI_PUBLISHING_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialog))
+#define PUBLISHING_UI_PUBLISHING_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialogClass))
+#define PUBLISHING_UI_IS_PUBLISHING_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG))
+#define PUBLISHING_UI_IS_PUBLISHING_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG))
+#define PUBLISHING_UI_PUBLISHING_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialogClass))
+
+typedef struct _PublishingUIPublishingDialog PublishingUIPublishingDialog;
+typedef struct _PublishingUIPublishingDialogClass PublishingUIPublishingDialogClass;
+typedef struct _PublishingUIPublishingDialogPrivate PublishingUIPublishingDialogPrivate;
+
+#define PLUGINS_TYPE_STANDARD_HOST_INTERFACE (plugins_standard_host_interface_get_type ())
+#define PLUGINS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface))
+#define PLUGINS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+
+typedef struct _PluginsStandardHostInterface PluginsStandardHostInterface;
+typedef struct _PluginsStandardHostInterfaceClass PluginsStandardHostInterfaceClass;
+
+#define SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST (spit_publishing_concrete_publishing_host_get_type ())
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHost))
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHostClass))
+#define SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST))
+#define SPIT_PUBLISHING_IS_CONCRETE_PUBLISHING_HOST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST))
+#define SPIT_PUBLISHING_CONCRETE_PUBLISHING_HOST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPIT_PUBLISHING_TYPE_CONCRETE_PUBLISHING_HOST, SpitPublishingConcretePublishingHostClass))
+
+typedef struct _SpitPublishingConcretePublishingHost SpitPublishingConcretePublishingHost;
+typedef struct _SpitPublishingConcretePublishingHostClass SpitPublishingConcretePublishingHostClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER (publishing_glue_media_source_publishable_wrapper_get_type ())
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapper))
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapperClass))
+#define PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER))
+#define PUBLISHING_GLUE_IS_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER))
+#define PUBLISHING_GLUE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PUBLISHING_GLUE_TYPE_MEDIA_SOURCE_PUBLISHABLE_WRAPPER, PublishingGlueMediaSourcePublishableWrapperClass))
+
+typedef struct _PublishingGlueMediaSourcePublishableWrapper PublishingGlueMediaSourcePublishableWrapper;
+typedef struct _PublishingGlueMediaSourcePublishableWrapperClass PublishingGlueMediaSourcePublishableWrapperClass;
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_LIBRARY_PHOTO (library_photo_get_type ())
+#define LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_PHOTO, LibraryPhoto))
+#define LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+#define IS_LIBRARY_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_PHOTO))
+#define IS_LIBRARY_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_PHOTO))
+#define LIBRARY_PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_PHOTO, LibraryPhotoClass))
+
+typedef struct _LibraryPhoto LibraryPhoto;
+typedef struct _LibraryPhotoClass LibraryPhotoClass;
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_VIDEO (video_get_type ())
+#define VIDEO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO, Video))
+#define VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO, VideoClass))
+#define IS_VIDEO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO))
+#define IS_VIDEO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO))
+#define VIDEO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO, VideoClass))
+
+typedef struct _Video Video;
+typedef struct _VideoClass VideoClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _PublishingUIConcreteDialogPane {
+ GObject parent_instance;
+ PublishingUIConcreteDialogPanePrivate * priv;
+ GtkBox* pane_widget;
+ GtkBuilder* builder;
+};
+
+struct _PublishingUIConcreteDialogPaneClass {
+ GObjectClass parent_class;
+};
+
+struct _PublishingUIStaticMessagePane {
+ PublishingUIConcreteDialogPane parent_instance;
+ PublishingUIStaticMessagePanePrivate * priv;
+};
+
+struct _PublishingUIStaticMessagePaneClass {
+ PublishingUIConcreteDialogPaneClass parent_class;
+};
+
+struct _PublishingUIStaticMessagePanePrivate {
+ GtkLabel* msg_label;
+};
+
+struct _PublishingUILoginWelcomePane {
+ PublishingUIConcreteDialogPane parent_instance;
+ PublishingUILoginWelcomePanePrivate * priv;
+};
+
+struct _PublishingUILoginWelcomePaneClass {
+ PublishingUIConcreteDialogPaneClass parent_class;
+};
+
+struct _PublishingUILoginWelcomePanePrivate {
+ GtkButton* login_button;
+ GtkLabel* not_logged_in_label;
+};
+
+struct _PublishingUIProgressPane {
+ PublishingUIConcreteDialogPane parent_instance;
+ PublishingUIProgressPanePrivate * priv;
+};
+
+struct _PublishingUIProgressPaneClass {
+ PublishingUIConcreteDialogPaneClass parent_class;
+};
+
+struct _PublishingUIProgressPanePrivate {
+ GtkProgressBar* progress_bar;
+};
+
+struct _PublishingUISuccessPane {
+ PublishingUIStaticMessagePane parent_instance;
+ PublishingUISuccessPanePrivate * priv;
+};
+
+struct _PublishingUISuccessPaneClass {
+ PublishingUIStaticMessagePaneClass parent_class;
+};
+
+struct _PublishingUIAccountFetchWaitPane {
+ PublishingUIStaticMessagePane parent_instance;
+ PublishingUIAccountFetchWaitPanePrivate * priv;
+};
+
+struct _PublishingUIAccountFetchWaitPaneClass {
+ PublishingUIStaticMessagePaneClass parent_class;
+};
+
+struct _PublishingUILoginWaitPane {
+ PublishingUIStaticMessagePane parent_instance;
+ PublishingUILoginWaitPanePrivate * priv;
+};
+
+struct _PublishingUILoginWaitPaneClass {
+ PublishingUIStaticMessagePaneClass parent_class;
+};
+
+struct _PublishingUIPublishingDialog {
+ GtkDialog parent_instance;
+ PublishingUIPublishingDialogPrivate * priv;
+};
+
+struct _PublishingUIPublishingDialogClass {
+ GtkDialogClass parent_class;
+};
+
+struct _PublishingUIPublishingDialogPrivate {
+ GtkListStore* service_selector_box_model;
+ GtkComboBox* service_selector_box;
+ GtkBox* central_area_layouter;
+ GtkButton* close_cancel_button;
+ SpitPublishingDialogPane* active_pane;
+ SpitPublishingPublishable** publishables;
+ gint publishables_length1;
+ gint _publishables_size_;
+ SpitPublishingConcretePublishingHost* host;
+ SpitPluggableInfo info;
+};
+
+
+static gpointer publishing_ui_concrete_dialog_pane_parent_class = NULL;
+static SpitPublishingDialogPaneIface* publishing_ui_concrete_dialog_pane_spit_publishing_dialog_pane_parent_iface = NULL;
+static gpointer publishing_ui_static_message_pane_parent_class = NULL;
+static gpointer publishing_ui_login_welcome_pane_parent_class = NULL;
+static gpointer publishing_ui_progress_pane_parent_class = NULL;
+static gpointer publishing_ui_success_pane_parent_class = NULL;
+static gpointer publishing_ui_account_fetch_wait_pane_parent_class = NULL;
+static gpointer publishing_ui_login_wait_pane_parent_class = NULL;
+static gpointer publishing_ui_publishing_dialog_parent_class = NULL;
+static PublishingUIPublishingDialog* publishing_ui_publishing_dialog_active_instance;
+static PublishingUIPublishingDialog* publishing_ui_publishing_dialog_active_instance = NULL;
+static GTimer* publishing_ui_publishing_dialog_since_last_start;
+static GTimer* publishing_ui_publishing_dialog_since_last_start = NULL;
+static gboolean publishing_ui_publishing_dialog_elapsed_is_valid;
+static gboolean publishing_ui_publishing_dialog_elapsed_is_valid = FALSE;
+
+GType publishing_ui_concrete_dialog_pane_get_type (void) G_GNUC_CONST;
+enum {
+ PUBLISHING_UI_CONCRETE_DIALOG_PANE_DUMMY_PROPERTY
+};
+PublishingUIConcreteDialogPane* publishing_ui_concrete_dialog_pane_new (void);
+PublishingUIConcreteDialogPane* publishing_ui_concrete_dialog_pane_construct (GType object_type);
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+static GtkWidget* publishing_ui_concrete_dialog_pane_real_get_widget (SpitPublishingDialogPane* base);
+static SpitPublishingDialogPaneGeometryOptions publishing_ui_concrete_dialog_pane_real_get_preferred_geometry (SpitPublishingDialogPane* base);
+static void publishing_ui_concrete_dialog_pane_real_on_pane_installed (SpitPublishingDialogPane* base);
+static void publishing_ui_concrete_dialog_pane_real_on_pane_uninstalled (SpitPublishingDialogPane* base);
+static void publishing_ui_concrete_dialog_pane_finalize (GObject* obj);
+GType publishing_ui_static_message_pane_get_type (void) G_GNUC_CONST;
+#define PUBLISHING_UI_STATIC_MESSAGE_PANE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePanePrivate))
+enum {
+ PUBLISHING_UI_STATIC_MESSAGE_PANE_DUMMY_PROPERTY
+};
+PublishingUIStaticMessagePane* publishing_ui_static_message_pane_new (const gchar* message_string, gboolean enable_markup);
+PublishingUIStaticMessagePane* publishing_ui_static_message_pane_construct (GType object_type, const gchar* message_string, gboolean enable_markup);
+static void publishing_ui_static_message_pane_finalize (GObject* obj);
+GType publishing_ui_login_welcome_pane_get_type (void) G_GNUC_CONST;
+#define PUBLISHING_UI_LOGIN_WELCOME_PANE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePanePrivate))
+enum {
+ PUBLISHING_UI_LOGIN_WELCOME_PANE_DUMMY_PROPERTY
+};
+PublishingUILoginWelcomePane* publishing_ui_login_welcome_pane_new (const gchar* service_welcome_message);
+PublishingUILoginWelcomePane* publishing_ui_login_welcome_pane_construct (GType object_type, const gchar* service_welcome_message);
+static void publishing_ui_login_welcome_pane_on_login_clicked (PublishingUILoginWelcomePane* self);
+static void _publishing_ui_login_welcome_pane_on_login_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void publishing_ui_login_welcome_pane_finalize (GObject* obj);
+GType publishing_ui_progress_pane_get_type (void) G_GNUC_CONST;
+#define PUBLISHING_UI_PROGRESS_PANE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPanePrivate))
+enum {
+ PUBLISHING_UI_PROGRESS_PANE_DUMMY_PROPERTY
+};
+PublishingUIProgressPane* publishing_ui_progress_pane_new (void);
+PublishingUIProgressPane* publishing_ui_progress_pane_construct (GType object_type);
+void publishing_ui_progress_pane_set_text (PublishingUIProgressPane* self, const gchar* text);
+void publishing_ui_progress_pane_set_progress (PublishingUIProgressPane* self, gdouble progress);
+void publishing_ui_progress_pane_set_status (PublishingUIProgressPane* self, const gchar* status_text, gdouble progress);
+static void publishing_ui_progress_pane_finalize (GObject* obj);
+GType publishing_ui_success_pane_get_type (void) G_GNUC_CONST;
+enum {
+ PUBLISHING_UI_SUCCESS_PANE_DUMMY_PROPERTY
+};
+PublishingUISuccessPane* publishing_ui_success_pane_new (SpitPublishingPublisherMediaType published_media, gint num_uploaded);
+PublishingUISuccessPane* publishing_ui_success_pane_construct (GType object_type, SpitPublishingPublisherMediaType published_media, gint num_uploaded);
+GType publishing_ui_account_fetch_wait_pane_get_type (void) G_GNUC_CONST;
+enum {
+ PUBLISHING_UI_ACCOUNT_FETCH_WAIT_PANE_DUMMY_PROPERTY
+};
+PublishingUIAccountFetchWaitPane* publishing_ui_account_fetch_wait_pane_new (void);
+PublishingUIAccountFetchWaitPane* publishing_ui_account_fetch_wait_pane_construct (GType object_type);
+GType publishing_ui_login_wait_pane_get_type (void) G_GNUC_CONST;
+enum {
+ PUBLISHING_UI_LOGIN_WAIT_PANE_DUMMY_PROPERTY
+};
+PublishingUILoginWaitPane* publishing_ui_login_wait_pane_new (void);
+PublishingUILoginWaitPane* publishing_ui_login_wait_pane_construct (GType object_type);
+GType publishing_ui_publishing_dialog_get_type (void) G_GNUC_CONST;
+GType plugins_standard_host_interface_get_type (void) G_GNUC_CONST;
+GType spit_publishing_concrete_publishing_host_get_type (void) G_GNUC_CONST;
+#define PUBLISHING_UI_PUBLISHING_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialogPrivate))
+enum {
+ PUBLISHING_UI_PUBLISHING_DIALOG_DUMMY_PROPERTY
+};
+#define PUBLISHING_UI_PUBLISHING_DIALOG_LARGE_WINDOW_WIDTH 860
+#define PUBLISHING_UI_PUBLISHING_DIALOG_LARGE_WINDOW_HEIGHT 688
+#define PUBLISHING_UI_PUBLISHING_DIALOG_COLOSSAL_WINDOW_WIDTH 1024
+#define PUBLISHING_UI_PUBLISHING_DIALOG_COLOSSAL_WINDOW_HEIGHT 688
+#define PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_WINDOW_WIDTH 632
+#define PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_WINDOW_HEIGHT 540
+#define PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_WIDTH 16
+#define PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_HEIGHT 100
+#define PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_CONTENT_LABEL_WIDTH 500
+#define PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_ACTION_BUTTON_WIDTH 128
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+PublishingUIPublishingDialog* publishing_ui_publishing_dialog_new (GeeCollection* to_publish);
+PublishingUIPublishingDialog* publishing_ui_publishing_dialog_construct (GType object_type, GeeCollection* to_publish);
+static gboolean publishing_ui_publishing_dialog_on_window_close (PublishingUIPublishingDialog* self, GdkEventAny* evt);
+static gboolean _publishing_ui_publishing_dialog_on_window_close_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self);
+PublishingGlueMediaSourcePublishableWrapper* publishing_glue_media_source_publishable_wrapper_new (MediaSource* to_wrap);
+PublishingGlueMediaSourcePublishableWrapper* publishing_glue_media_source_publishable_wrapper_construct (GType object_type, MediaSource* to_wrap);
+GType publishing_glue_media_source_publishable_wrapper_get_type (void) G_GNUC_CONST;
+static void _vala_array_add55 (SpitPublishingPublishable*** array, int* length, int* size, SpitPublishingPublishable* value);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+gchar* configuration_facade_get_last_used_service (ConfigurationFacade* self);
+static SpitPublishingService** publishing_ui_publishing_dialog_load_services (gboolean has_photos, gboolean has_videos, int* result_length1);
+GdkPixbuf* resources_get_icon (const gchar* name, gint scale);
+#define RESOURCES_ICON_GENERIC_PLUGIN "generic-plugin.png"
+#define RESOURCES_DEFAULT_ICON_SCALE 24
+static void publishing_ui_publishing_dialog_on_service_changed (PublishingUIPublishingDialog* self);
+static void _publishing_ui_publishing_dialog_on_service_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void publishing_ui_publishing_dialog_on_close_cancel_clicked (PublishingUIPublishingDialog* self);
+static void _publishing_ui_publishing_dialog_on_close_cancel_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void publishing_ui_publishing_dialog_set_standard_window_mode (PublishingUIPublishingDialog* self);
+static SpitPublishingService** publishing_ui_publishing_dialog_load_all_services (int* result_length1);
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled);
+gchar* plugins_get_pluggable_module_id (SpitPluggable* needle);
+static void _vala_array_add56 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value);
+static gint __lambda15_ (void* a, void* b);
+gint utf8_cs_compare (void* a, void* b);
+static gint ___lambda15____compar_fn_t (void* key1, void* key2);
+static void _vala_array_add57 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value);
+static void _vala_array_add58 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value);
+static void _vala_array_add59 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value);
+void publishing_ui_publishing_dialog_go (GeeCollection* to_publish);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+GType library_photo_get_type (void) G_GNUC_CONST;
+GType video_source_get_type (void) G_GNUC_CONST;
+GType video_get_type (void) G_GNUC_CONST;
+void media_source_collection_filter_media (GeeCollection* media, GeeCollection* photos, GeeCollection* videos);
+void app_window_error_message_with_title (const gchar* title, const gchar* message, GtkWindow* parent, gboolean should_escape);
+gint publishing_ui_publishing_dialog_run (PublishingUIPublishingDialog* self);
+void configuration_facade_set_last_used_service (ConfigurationFacade* self, const gchar* service_name);
+SpitPublishingConcretePublishingHost* spit_publishing_concrete_publishing_host_new (SpitPublishingService* service, PublishingUIPublishingDialog* dialog, SpitPublishingPublishable** publishables, int publishables_length1);
+SpitPublishingConcretePublishingHost* spit_publishing_concrete_publishing_host_construct (GType object_type, SpitPublishingService* service, PublishingUIPublishingDialog* dialog, SpitPublishingPublishable** publishables, int publishables_length1);
+void spit_publishing_concrete_publishing_host_start_publishing (SpitPublishingConcretePublishingHost* self);
+static void publishing_ui_publishing_dialog_set_large_window_mode (PublishingUIPublishingDialog* self);
+static void publishing_ui_publishing_dialog_set_colossal_window_mode (PublishingUIPublishingDialog* self);
+static void publishing_ui_publishing_dialog_set_free_sizable_window_mode (PublishingUIPublishingDialog* self);
+static void publishing_ui_publishing_dialog_clear_free_sizable_window_mode (PublishingUIPublishingDialog* self);
+SpitPublishingDialogPane* publishing_ui_publishing_dialog_get_active_pane (PublishingUIPublishingDialog* self);
+void publishing_ui_publishing_dialog_set_close_button_mode (PublishingUIPublishingDialog* self);
+void publishing_ui_publishing_dialog_set_cancel_button_mode (PublishingUIPublishingDialog* self);
+void publishing_ui_publishing_dialog_lock_service (PublishingUIPublishingDialog* self);
+void publishing_ui_publishing_dialog_unlock_service (PublishingUIPublishingDialog* self);
+void publishing_ui_publishing_dialog_install_pane (PublishingUIPublishingDialog* self, SpitPublishingDialogPane* pane);
+static void publishing_ui_publishing_dialog_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+PublishingUIConcreteDialogPane* publishing_ui_concrete_dialog_pane_construct (GType object_type) {
+ PublishingUIConcreteDialogPane * self = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUIConcreteDialogPane*) g_object_new (object_type, NULL);
+#line 14 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 14 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->builder);
+#line 14 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->builder = _tmp0_;
+#line 13 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 529 "PublishingUI.c"
+}
+
+
+PublishingUIConcreteDialogPane* publishing_ui_concrete_dialog_pane_new (void) {
+#line 13 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_concrete_dialog_pane_construct (PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE);
+#line 536 "PublishingUI.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 543 "PublishingUI.c"
+}
+
+
+static GtkWidget* publishing_ui_concrete_dialog_pane_real_get_widget (SpitPublishingDialogPane* base) {
+ PublishingUIConcreteDialogPane * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane);
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->pane_widget;
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = _tmp1_;
+#line 18 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 562 "PublishingUI.c"
+}
+
+
+static SpitPublishingDialogPaneGeometryOptions publishing_ui_concrete_dialog_pane_real_get_preferred_geometry (SpitPublishingDialogPane* base) {
+ PublishingUIConcreteDialogPane * self;
+ SpitPublishingDialogPaneGeometryOptions result = 0;
+#line 21 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane);
+#line 22 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_NONE;
+#line 22 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 575 "PublishingUI.c"
+}
+
+
+static void publishing_ui_concrete_dialog_pane_real_on_pane_installed (SpitPublishingDialogPane* base) {
+ PublishingUIConcreteDialogPane * self;
+#line 25 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane);
+#line 583 "PublishingUI.c"
+}
+
+
+static void publishing_ui_concrete_dialog_pane_real_on_pane_uninstalled (SpitPublishingDialogPane* base) {
+ PublishingUIConcreteDialogPane * self;
+#line 28 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane);
+#line 591 "PublishingUI.c"
+}
+
+
+static void publishing_ui_concrete_dialog_pane_class_init (PublishingUIConcreteDialogPaneClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_concrete_dialog_pane_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = publishing_ui_concrete_dialog_pane_finalize;
+#line 600 "PublishingUI.c"
+}
+
+
+static void publishing_ui_concrete_dialog_pane_spit_publishing_dialog_pane_interface_init (SpitPublishingDialogPaneIface * iface) {
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_concrete_dialog_pane_spit_publishing_dialog_pane_parent_iface = g_type_interface_peek_parent (iface);
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ iface->get_widget = (GtkWidget* (*)(SpitPublishingDialogPane*)) publishing_ui_concrete_dialog_pane_real_get_widget;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ iface->get_preferred_geometry = (SpitPublishingDialogPaneGeometryOptions (*)(SpitPublishingDialogPane*)) publishing_ui_concrete_dialog_pane_real_get_preferred_geometry;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ iface->on_pane_installed = (void (*)(SpitPublishingDialogPane*)) publishing_ui_concrete_dialog_pane_real_on_pane_installed;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ iface->on_pane_uninstalled = (void (*)(SpitPublishingDialogPane*)) publishing_ui_concrete_dialog_pane_real_on_pane_uninstalled;
+#line 615 "PublishingUI.c"
+}
+
+
+static void publishing_ui_concrete_dialog_pane_instance_init (PublishingUIConcreteDialogPane * self) {
+#line 10 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->pane_widget = NULL;
+#line 11 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->builder = NULL;
+#line 624 "PublishingUI.c"
+}
+
+
+static void publishing_ui_concrete_dialog_pane_finalize (GObject* obj) {
+ PublishingUIConcreteDialogPane * self;
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane);
+#line 10 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->pane_widget);
+#line 11 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->builder);
+#line 9 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (publishing_ui_concrete_dialog_pane_parent_class)->finalize (obj);
+#line 638 "PublishingUI.c"
+}
+
+
+GType publishing_ui_concrete_dialog_pane_get_type (void) {
+ static volatile gsize publishing_ui_concrete_dialog_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_concrete_dialog_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUIConcreteDialogPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_concrete_dialog_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUIConcreteDialogPane), 0, (GInstanceInitFunc) publishing_ui_concrete_dialog_pane_instance_init, NULL };
+ static const GInterfaceInfo spit_publishing_dialog_pane_info = { (GInterfaceInitFunc) publishing_ui_concrete_dialog_pane_spit_publishing_dialog_pane_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType publishing_ui_concrete_dialog_pane_type_id;
+ publishing_ui_concrete_dialog_pane_type_id = g_type_register_static (G_TYPE_OBJECT, "PublishingUIConcreteDialogPane", &g_define_type_info, 0);
+ g_type_add_interface_static (publishing_ui_concrete_dialog_pane_type_id, SPIT_PUBLISHING_TYPE_DIALOG_PANE, &spit_publishing_dialog_pane_info);
+ g_once_init_leave (&publishing_ui_concrete_dialog_pane_type_id__volatile, publishing_ui_concrete_dialog_pane_type_id);
+ }
+ return publishing_ui_concrete_dialog_pane_type_id__volatile;
+}
+
+
+PublishingUIStaticMessagePane* publishing_ui_static_message_pane_construct (GType object_type, const gchar* message_string, gboolean enable_markup) {
+ PublishingUIStaticMessagePane * self = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+ GtkLabel* _tmp2_ = NULL;
+ GtkBuilder* _tmp3_ = NULL;
+ GObject* _tmp4_ = NULL;
+ GtkBox* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 35 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_val_if_fail (message_string != NULL, NULL);
+#line 36 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUIStaticMessagePane*) publishing_ui_concrete_dialog_pane_construct (object_type);
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->builder;
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "static_msg_label");
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp1_) : NULL);
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->msg_label);
+#line 37 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->msg_label = _tmp2_;
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->builder;
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = gtk_builder_get_object (_tmp3_, "static_msg_pane_widget");
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, gtk_box_get_type ()) ? ((GtkBox*) _tmp4_) : NULL);
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->pane_widget);
+#line 38 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->pane_widget = _tmp5_;
+#line 40 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = enable_markup;
+#line 40 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp6_) {
+#line 693 "PublishingUI.c"
+ GtkLabel* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkLabel* _tmp9_ = NULL;
+ GtkLabel* _tmp10_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = self->priv->msg_label;
+#line 41 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = message_string;
+#line 41 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_label_set_markup (_tmp7_, _tmp8_);
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = self->priv->msg_label;
+#line 42 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_label_set_line_wrap (_tmp9_, TRUE);
+#line 43 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = self->priv->msg_label;
+#line 43 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_label_set_use_markup (_tmp10_, TRUE);
+#line 712 "PublishingUI.c"
+ } else {
+ GtkLabel* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = self->priv->msg_label;
+#line 45 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = message_string;
+#line 45 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_label_set_label (_tmp11_, _tmp12_);
+#line 722 "PublishingUI.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 726 "PublishingUI.c"
+}
+
+
+PublishingUIStaticMessagePane* publishing_ui_static_message_pane_new (const gchar* message_string, gboolean enable_markup) {
+#line 35 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_static_message_pane_construct (PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, message_string, enable_markup);
+#line 733 "PublishingUI.c"
+}
+
+
+static void publishing_ui_static_message_pane_class_init (PublishingUIStaticMessagePaneClass * klass) {
+#line 32 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_static_message_pane_parent_class = g_type_class_peek_parent (klass);
+#line 32 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_type_class_add_private (klass, sizeof (PublishingUIStaticMessagePanePrivate));
+#line 32 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = publishing_ui_static_message_pane_finalize;
+#line 744 "PublishingUI.c"
+}
+
+
+static void publishing_ui_static_message_pane_instance_init (PublishingUIStaticMessagePane * self) {
+#line 32 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv = PUBLISHING_UI_STATIC_MESSAGE_PANE_GET_PRIVATE (self);
+#line 33 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->msg_label = NULL;
+#line 753 "PublishingUI.c"
+}
+
+
+static void publishing_ui_static_message_pane_finalize (GObject* obj) {
+ PublishingUIStaticMessagePane * self;
+#line 32 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, PublishingUIStaticMessagePane);
+#line 33 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->msg_label);
+#line 32 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (publishing_ui_static_message_pane_parent_class)->finalize (obj);
+#line 765 "PublishingUI.c"
+}
+
+
+GType publishing_ui_static_message_pane_get_type (void) {
+ static volatile gsize publishing_ui_static_message_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_static_message_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUIStaticMessagePaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_static_message_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUIStaticMessagePane), 0, (GInstanceInitFunc) publishing_ui_static_message_pane_instance_init, NULL };
+ GType publishing_ui_static_message_pane_type_id;
+ publishing_ui_static_message_pane_type_id = g_type_register_static (PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, "PublishingUIStaticMessagePane", &g_define_type_info, 0);
+ g_once_init_leave (&publishing_ui_static_message_pane_type_id__volatile, publishing_ui_static_message_pane_type_id);
+ }
+ return publishing_ui_static_message_pane_type_id__volatile;
+}
+
+
+static void _publishing_ui_login_welcome_pane_on_login_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 62 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_login_welcome_pane_on_login_clicked ((PublishingUILoginWelcomePane*) self);
+#line 784 "PublishingUI.c"
+}
+
+
+PublishingUILoginWelcomePane* publishing_ui_login_welcome_pane_construct (GType object_type, const gchar* service_welcome_message) {
+ PublishingUILoginWelcomePane * self = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+ GtkBox* _tmp2_ = NULL;
+ GtkBuilder* _tmp3_ = NULL;
+ GObject* _tmp4_ = NULL;
+ GtkButton* _tmp5_ = NULL;
+ GtkBuilder* _tmp6_ = NULL;
+ GObject* _tmp7_ = NULL;
+ GtkLabel* _tmp8_ = NULL;
+ GtkButton* _tmp9_ = NULL;
+ GtkLabel* _tmp10_ = NULL;
+ GtkLabel* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 56 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_val_if_fail (service_welcome_message != NULL, NULL);
+#line 57 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUILoginWelcomePane*) publishing_ui_concrete_dialog_pane_construct (object_type);
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->builder;
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "welcome_pane_widget");
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, gtk_box_get_type ()) ? ((GtkBox*) _tmp1_) : NULL);
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->pane_widget);
+#line 58 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->pane_widget = _tmp2_;
+#line 59 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->builder;
+#line 59 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = gtk_builder_get_object (_tmp3_, "login_button");
+#line 59 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, gtk_button_get_type ()) ? ((GtkButton*) _tmp4_) : NULL);
+#line 59 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->login_button);
+#line 59 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->login_button = _tmp5_;
+#line 60 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->builder;
+#line 60 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = gtk_builder_get_object (_tmp6_, "not_logged_in_label");
+#line 60 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, gtk_label_get_type ()) ? ((GtkLabel*) _tmp7_) : NULL);
+#line 60 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->not_logged_in_label);
+#line 60 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->not_logged_in_label = _tmp8_;
+#line 62 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = self->priv->login_button;
+#line 62 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_signal_connect_object (_tmp9_, "clicked", (GCallback) _publishing_ui_login_welcome_pane_on_login_clicked_gtk_button_clicked, self, 0);
+#line 63 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = self->priv->not_logged_in_label;
+#line 63 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_label_set_use_markup (_tmp10_, TRUE);
+#line 64 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = self->priv->not_logged_in_label;
+#line 64 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = service_welcome_message;
+#line 64 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_label_set_markup (_tmp11_, _tmp12_);
+#line 56 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 853 "PublishingUI.c"
+}
+
+
+PublishingUILoginWelcomePane* publishing_ui_login_welcome_pane_new (const gchar* service_welcome_message) {
+#line 56 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_login_welcome_pane_construct (PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, service_welcome_message);
+#line 860 "PublishingUI.c"
+}
+
+
+static void publishing_ui_login_welcome_pane_on_login_clicked (PublishingUILoginWelcomePane* self) {
+#line 67 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_LOGIN_WELCOME_PANE (self));
+#line 68 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_signal_emit_by_name (self, "login-requested");
+#line 869 "PublishingUI.c"
+}
+
+
+static void publishing_ui_login_welcome_pane_class_init (PublishingUILoginWelcomePaneClass * klass) {
+#line 50 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_login_welcome_pane_parent_class = g_type_class_peek_parent (klass);
+#line 50 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_type_class_add_private (klass, sizeof (PublishingUILoginWelcomePanePrivate));
+#line 50 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = publishing_ui_login_welcome_pane_finalize;
+#line 50 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_signal_new ("login_requested", PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+#line 882 "PublishingUI.c"
+}
+
+
+static void publishing_ui_login_welcome_pane_instance_init (PublishingUILoginWelcomePane * self) {
+#line 50 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv = PUBLISHING_UI_LOGIN_WELCOME_PANE_GET_PRIVATE (self);
+#line 51 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->login_button = NULL;
+#line 52 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->not_logged_in_label = NULL;
+#line 893 "PublishingUI.c"
+}
+
+
+static void publishing_ui_login_welcome_pane_finalize (GObject* obj) {
+ PublishingUILoginWelcomePane * self;
+#line 50 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PUBLISHING_UI_TYPE_LOGIN_WELCOME_PANE, PublishingUILoginWelcomePane);
+#line 51 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->login_button);
+#line 52 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->not_logged_in_label);
+#line 50 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (publishing_ui_login_welcome_pane_parent_class)->finalize (obj);
+#line 907 "PublishingUI.c"
+}
+
+
+GType publishing_ui_login_welcome_pane_get_type (void) {
+ static volatile gsize publishing_ui_login_welcome_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_login_welcome_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUILoginWelcomePaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_login_welcome_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUILoginWelcomePane), 0, (GInstanceInitFunc) publishing_ui_login_welcome_pane_instance_init, NULL };
+ GType publishing_ui_login_welcome_pane_type_id;
+ publishing_ui_login_welcome_pane_type_id = g_type_register_static (PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, "PublishingUILoginWelcomePane", &g_define_type_info, 0);
+ g_once_init_leave (&publishing_ui_login_welcome_pane_type_id__volatile, publishing_ui_login_welcome_pane_type_id);
+ }
+ return publishing_ui_login_welcome_pane_type_id__volatile;
+}
+
+
+PublishingUIProgressPane* publishing_ui_progress_pane_construct (GType object_type) {
+ PublishingUIProgressPane * self = NULL;
+ GtkBuilder* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+ GtkBox* _tmp2_ = NULL;
+ GtkBuilder* _tmp3_ = NULL;
+ GObject* _tmp4_ = NULL;
+ GtkProgressBar* _tmp5_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUIProgressPane*) publishing_ui_concrete_dialog_pane_construct (object_type);
+#line 77 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->builder;
+#line 77 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = gtk_builder_get_object (_tmp0_, "progress_pane_widget");
+#line 77 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_box_get_type (), GtkBox));
+#line 77 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->pane_widget);
+#line 77 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->pane_widget = _tmp2_;
+#line 78 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = G_TYPE_CHECK_INSTANCE_CAST (self, PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, PublishingUIConcreteDialogPane)->builder;
+#line 78 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = gtk_builder_get_object (_tmp3_, "publishing_progress_bar");
+#line 78 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_progress_bar_get_type (), GtkProgressBar));
+#line 78 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->progress_bar);
+#line 78 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->progress_bar = _tmp5_;
+#line 75 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 955 "PublishingUI.c"
+}
+
+
+PublishingUIProgressPane* publishing_ui_progress_pane_new (void) {
+#line 75 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_progress_pane_construct (PUBLISHING_UI_TYPE_PROGRESS_PANE);
+#line 962 "PublishingUI.c"
+}
+
+
+void publishing_ui_progress_pane_set_text (PublishingUIProgressPane* self, const gchar* text) {
+ GtkProgressBar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PROGRESS_PANE (self));
+#line 81 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (text != NULL);
+#line 82 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->progress_bar;
+#line 82 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = text;
+#line 82 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_progress_bar_set_text (_tmp0_, _tmp1_);
+#line 979 "PublishingUI.c"
+}
+
+
+void publishing_ui_progress_pane_set_progress (PublishingUIProgressPane* self, gdouble progress) {
+ GtkProgressBar* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 85 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PROGRESS_PANE (self));
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->progress_bar;
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = progress;
+#line 86 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_progress_bar_set_fraction (_tmp0_, _tmp1_);
+#line 994 "PublishingUI.c"
+}
+
+
+void publishing_ui_progress_pane_set_status (PublishingUIProgressPane* self, const gchar* status_text, gdouble progress) {
+ const gchar* _tmp0_ = NULL;
+ GtkProgressBar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gdouble _tmp5_ = 0.0;
+#line 89 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PROGRESS_PANE (self));
+#line 89 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (status_text != NULL);
+#line 90 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = status_text;
+#line 90 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = self->priv->progress_bar;
+#line 90 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = gtk_progress_bar_get_text (_tmp1_);
+#line 90 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (g_strcmp0 (_tmp0_, _tmp2_) != 0) {
+#line 1015 "PublishingUI.c"
+ GtkProgressBar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = self->priv->progress_bar;
+#line 91 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = status_text;
+#line 91 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_progress_bar_set_text (_tmp3_, _tmp4_);
+#line 1024 "PublishingUI.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = progress;
+#line 93 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_progress_pane_set_progress (self, _tmp5_);
+#line 1030 "PublishingUI.c"
+}
+
+
+static void publishing_ui_progress_pane_class_init (PublishingUIProgressPaneClass * klass) {
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_progress_pane_parent_class = g_type_class_peek_parent (klass);
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_type_class_add_private (klass, sizeof (PublishingUIProgressPanePrivate));
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = publishing_ui_progress_pane_finalize;
+#line 1041 "PublishingUI.c"
+}
+
+
+static void publishing_ui_progress_pane_instance_init (PublishingUIProgressPane * self) {
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv = PUBLISHING_UI_PROGRESS_PANE_GET_PRIVATE (self);
+#line 73 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->progress_bar = NULL;
+#line 1050 "PublishingUI.c"
+}
+
+
+static void publishing_ui_progress_pane_finalize (GObject* obj) {
+ PublishingUIProgressPane * self;
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PUBLISHING_UI_TYPE_PROGRESS_PANE, PublishingUIProgressPane);
+#line 73 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->progress_bar);
+#line 72 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (publishing_ui_progress_pane_parent_class)->finalize (obj);
+#line 1062 "PublishingUI.c"
+}
+
+
+GType publishing_ui_progress_pane_get_type (void) {
+ static volatile gsize publishing_ui_progress_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_progress_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUIProgressPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_progress_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUIProgressPane), 0, (GInstanceInitFunc) publishing_ui_progress_pane_instance_init, NULL };
+ GType publishing_ui_progress_pane_type_id;
+ publishing_ui_progress_pane_type_id = g_type_register_static (PUBLISHING_UI_TYPE_CONCRETE_DIALOG_PANE, "PublishingUIProgressPane", &g_define_type_info, 0);
+ g_once_init_leave (&publishing_ui_progress_pane_type_id__volatile, publishing_ui_progress_pane_type_id);
+ }
+ return publishing_ui_progress_pane_type_id__volatile;
+}
+
+
+PublishingUISuccessPane* publishing_ui_success_pane_construct (GType object_type, SpitPublishingPublisherMediaType published_media, gint num_uploaded) {
+ PublishingUISuccessPane * self = NULL;
+ gchar* message_string = NULL;
+ gint _tmp0_ = 0;
+ const gchar* _tmp14_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ message_string = NULL;
+#line 103 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = num_uploaded;
+#line 103 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp0_ > 1) {
+#line 1089 "PublishingUI.c"
+ SpitPublishingPublisherMediaType _tmp1_ = 0;
+#line 104 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = published_media;
+#line 104 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp1_ == (SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO | SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO)) {
+#line 1095 "PublishingUI.c"
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = _ ("The selected photos/videos were successfully published.");
+#line 105 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 105 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (message_string);
+#line 105 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ message_string = _tmp3_;
+#line 1106 "PublishingUI.c"
+ } else {
+ SpitPublishingPublisherMediaType _tmp4_ = 0;
+#line 106 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = published_media;
+#line 106 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp4_ == SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO) {
+#line 1113 "PublishingUI.c"
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = _ ("The selected videos were successfully published.");
+#line 107 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 107 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (message_string);
+#line 107 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ message_string = _tmp6_;
+#line 1124 "PublishingUI.c"
+ } else {
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = _ ("The selected photos were successfully published.");
+#line 109 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 109 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (message_string);
+#line 109 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ message_string = _tmp8_;
+#line 1136 "PublishingUI.c"
+ }
+ }
+ } else {
+ SpitPublishingPublisherMediaType _tmp9_ = 0;
+#line 111 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = published_media;
+#line 111 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp9_ == SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO) {
+#line 1145 "PublishingUI.c"
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = _ ("The selected video was successfully published.");
+#line 112 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 112 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (message_string);
+#line 112 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ message_string = _tmp11_;
+#line 1156 "PublishingUI.c"
+ } else {
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = _ ("The selected photo was successfully published.");
+#line 114 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 114 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (message_string);
+#line 114 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ message_string = _tmp13_;
+#line 1168 "PublishingUI.c"
+ }
+ }
+#line 116 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14_ = message_string;
+#line 116 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUISuccessPane*) publishing_ui_static_message_pane_construct (object_type, _tmp14_, FALSE);
+#line 98 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (message_string);
+#line 98 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 1179 "PublishingUI.c"
+}
+
+
+PublishingUISuccessPane* publishing_ui_success_pane_new (SpitPublishingPublisherMediaType published_media, gint num_uploaded) {
+#line 98 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_success_pane_construct (PUBLISHING_UI_TYPE_SUCCESS_PANE, published_media, num_uploaded);
+#line 1186 "PublishingUI.c"
+}
+
+
+static void publishing_ui_success_pane_class_init (PublishingUISuccessPaneClass * klass) {
+#line 97 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_success_pane_parent_class = g_type_class_peek_parent (klass);
+#line 1193 "PublishingUI.c"
+}
+
+
+static void publishing_ui_success_pane_instance_init (PublishingUISuccessPane * self) {
+}
+
+
+GType publishing_ui_success_pane_get_type (void) {
+ static volatile gsize publishing_ui_success_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_success_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUISuccessPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_success_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUISuccessPane), 0, (GInstanceInitFunc) publishing_ui_success_pane_instance_init, NULL };
+ GType publishing_ui_success_pane_type_id;
+ publishing_ui_success_pane_type_id = g_type_register_static (PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, "PublishingUISuccessPane", &g_define_type_info, 0);
+ g_once_init_leave (&publishing_ui_success_pane_type_id__volatile, publishing_ui_success_pane_type_id);
+ }
+ return publishing_ui_success_pane_type_id__volatile;
+}
+
+
+PublishingUIAccountFetchWaitPane* publishing_ui_account_fetch_wait_pane_construct (GType object_type) {
+ PublishingUIAccountFetchWaitPane * self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 122 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = _ ("Fetching account information...");
+#line 122 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUIAccountFetchWaitPane*) publishing_ui_static_message_pane_construct (object_type, _tmp0_, FALSE);
+#line 121 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 1222 "PublishingUI.c"
+}
+
+
+PublishingUIAccountFetchWaitPane* publishing_ui_account_fetch_wait_pane_new (void) {
+#line 121 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_account_fetch_wait_pane_construct (PUBLISHING_UI_TYPE_ACCOUNT_FETCH_WAIT_PANE);
+#line 1229 "PublishingUI.c"
+}
+
+
+static void publishing_ui_account_fetch_wait_pane_class_init (PublishingUIAccountFetchWaitPaneClass * klass) {
+#line 120 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_account_fetch_wait_pane_parent_class = g_type_class_peek_parent (klass);
+#line 1236 "PublishingUI.c"
+}
+
+
+static void publishing_ui_account_fetch_wait_pane_instance_init (PublishingUIAccountFetchWaitPane * self) {
+}
+
+
+GType publishing_ui_account_fetch_wait_pane_get_type (void) {
+ static volatile gsize publishing_ui_account_fetch_wait_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_account_fetch_wait_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUIAccountFetchWaitPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_account_fetch_wait_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUIAccountFetchWaitPane), 0, (GInstanceInitFunc) publishing_ui_account_fetch_wait_pane_instance_init, NULL };
+ GType publishing_ui_account_fetch_wait_pane_type_id;
+ publishing_ui_account_fetch_wait_pane_type_id = g_type_register_static (PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, "PublishingUIAccountFetchWaitPane", &g_define_type_info, 0);
+ g_once_init_leave (&publishing_ui_account_fetch_wait_pane_type_id__volatile, publishing_ui_account_fetch_wait_pane_type_id);
+ }
+ return publishing_ui_account_fetch_wait_pane_type_id__volatile;
+}
+
+
+PublishingUILoginWaitPane* publishing_ui_login_wait_pane_construct (GType object_type) {
+ PublishingUILoginWaitPane * self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = _ ("Logging in...");
+#line 128 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUILoginWaitPane*) publishing_ui_static_message_pane_construct (object_type, _tmp0_, FALSE);
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 1265 "PublishingUI.c"
+}
+
+
+PublishingUILoginWaitPane* publishing_ui_login_wait_pane_new (void) {
+#line 127 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_login_wait_pane_construct (PUBLISHING_UI_TYPE_LOGIN_WAIT_PANE);
+#line 1272 "PublishingUI.c"
+}
+
+
+static void publishing_ui_login_wait_pane_class_init (PublishingUILoginWaitPaneClass * klass) {
+#line 126 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_login_wait_pane_parent_class = g_type_class_peek_parent (klass);
+#line 1279 "PublishingUI.c"
+}
+
+
+static void publishing_ui_login_wait_pane_instance_init (PublishingUILoginWaitPane * self) {
+}
+
+
+GType publishing_ui_login_wait_pane_get_type (void) {
+ static volatile gsize publishing_ui_login_wait_pane_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_login_wait_pane_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUILoginWaitPaneClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_login_wait_pane_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUILoginWaitPane), 0, (GInstanceInitFunc) publishing_ui_login_wait_pane_instance_init, NULL };
+ GType publishing_ui_login_wait_pane_type_id;
+ publishing_ui_login_wait_pane_type_id = g_type_register_static (PUBLISHING_UI_TYPE_STATIC_MESSAGE_PANE, "PublishingUILoginWaitPane", &g_define_type_info, 0);
+ g_once_init_leave (&publishing_ui_login_wait_pane_type_id__volatile, publishing_ui_login_wait_pane_type_id);
+ }
+ return publishing_ui_login_wait_pane_type_id__volatile;
+}
+
+
+static gboolean _publishing_ui_publishing_dialog_on_window_close_gtk_widget_delete_event (GtkWidget* _sender, GdkEventAny* event, gpointer self) {
+ gboolean result;
+ result = publishing_ui_publishing_dialog_on_window_close ((PublishingUIPublishingDialog*) self, event);
+#line 166 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 1304 "PublishingUI.c"
+}
+
+
+static void _vala_array_add55 (SpitPublishingPublishable*** array, int* length, int* size, SpitPublishingPublishable* value) {
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((*length) == (*size)) {
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *array = g_renew (SpitPublishingPublishable*, *array, (*size) + 1);
+#line 1315 "PublishingUI.c"
+ }
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[(*length)++] = value;
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[*length] = NULL;
+#line 1321 "PublishingUI.c"
+}
+
+
+static void _publishing_ui_publishing_dialog_on_service_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 247 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_on_service_changed ((PublishingUIPublishingDialog*) self);
+#line 1328 "PublishingUI.c"
+}
+
+
+static void _publishing_ui_publishing_dialog_on_close_cancel_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 285 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_on_close_cancel_clicked ((PublishingUIPublishingDialog*) self);
+#line 1335 "PublishingUI.c"
+}
+
+
+PublishingUIPublishingDialog* publishing_ui_publishing_dialog_construct (GType object_type, GeeCollection* to_publish) {
+ PublishingUIPublishingDialog * self = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gboolean use_header = FALSE;
+ GtkSettings* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ SpitPublishingPublishable** _tmp8_ = NULL;
+ gboolean has_photos = FALSE;
+ gboolean has_videos = FALSE;
+ gchar* title = NULL;
+ gchar* label = NULL;
+ gboolean _tmp24_ = FALSE;
+ gboolean _tmp25_ = FALSE;
+ const gchar* _tmp42_ = NULL;
+ GtkListStore* _tmp43_ = NULL;
+ GtkListStore* _tmp44_ = NULL;
+ GtkComboBox* _tmp45_ = NULL;
+ GtkCellRendererPixbuf* renderer_pix = NULL;
+ GtkCellRendererPixbuf* _tmp46_ = NULL;
+ GtkComboBox* _tmp47_ = NULL;
+ GtkCellRendererPixbuf* _tmp48_ = NULL;
+ GtkComboBox* _tmp49_ = NULL;
+ GtkCellRendererPixbuf* _tmp50_ = NULL;
+ GtkCellRendererText* renderer_text = NULL;
+ GtkCellRendererText* _tmp51_ = NULL;
+ GtkComboBox* _tmp52_ = NULL;
+ GtkCellRendererText* _tmp53_ = NULL;
+ GtkComboBox* _tmp54_ = NULL;
+ GtkCellRendererText* _tmp55_ = NULL;
+ GtkComboBox* _tmp56_ = NULL;
+ gchar* last_used_service = NULL;
+ ConfigFacade* _tmp57_ = NULL;
+ ConfigFacade* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ SpitPublishingService** loaded_services = NULL;
+ gboolean _tmp61_ = FALSE;
+ gboolean _tmp62_ = FALSE;
+ gint _tmp63_ = 0;
+ SpitPublishingService** _tmp64_ = NULL;
+ gint loaded_services_length1 = 0;
+ gint _loaded_services_size_ = 0;
+ GtkTreeIter iter = {0};
+ SpitPublishingService** _tmp65_ = NULL;
+ gint _tmp65__length1 = 0;
+ GtkComboBox* _tmp103_ = NULL;
+ gboolean _tmp104_ = FALSE;
+ GtkBox* _tmp130_ = NULL;
+ GtkBox* _tmp131_ = NULL;
+ GtkBox* _tmp132_ = NULL;
+ GtkButton* _tmp133_ = NULL;
+ GtkButton* _tmp134_ = NULL;
+ GtkButton* _tmp135_ = NULL;
+ gboolean _tmp136_ = FALSE;
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (to_publish), NULL);
+#line 157 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = to_publish;
+#line 157 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 157 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = _tmp1_;
+#line 157 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_assert (_tmp2_ > 0, "to_publish.size > 0");
+#line 160 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = gtk_settings_get_default ();
+#line 160 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, G_TYPE_OBJECT, GObject), "gtk-dialogs-use-header", &use_header, NULL);
+#line 161 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = use_header;
+#line 161 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp5_) {
+#line 161 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = 1;
+#line 1417 "PublishingUI.c"
+ } else {
+#line 161 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = 0;
+#line 1421 "PublishingUI.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = (PublishingUIPublishingDialog*) g_object_new (object_type, "use-header-bar", _tmp4_, NULL);
+#line 162 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = use_header;
+#line 162 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp6_) {
+#line 1429 "PublishingUI.c"
+ GtkWidget* _tmp7_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = gtk_dialog_get_header_bar (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 163 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_header_bar_set_show_close_button (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_header_bar_get_type (), GtkHeaderBar), FALSE);
+#line 1435 "PublishingUI.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 166 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "delete-event", (GCallback) _publishing_ui_publishing_dialog_on_window_close_gtk_widget_delete_event, self, 0);
+#line 168 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = g_new0 (SpitPublishingPublishable*, 0 + 1);
+#line 168 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->publishables = (_vala_array_free (self->priv->publishables, self->priv->publishables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 168 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->publishables = _tmp8_;
+#line 168 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->publishables_length1 = 0;
+#line 168 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->_publishables_size_ = self->priv->publishables_length1;
+#line 169 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ has_photos = FALSE;
+#line 170 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ has_videos = FALSE;
+#line 1455 "PublishingUI.c"
+ {
+ GeeIterator* _media_it = NULL;
+ GeeCollection* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = to_publish;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _media_it = _tmp10_;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ while (TRUE) {
+#line 1468 "PublishingUI.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ MediaSource* media = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ SpitPublishingPublishable* publishable = NULL;
+ MediaSource* _tmp15_ = NULL;
+ PublishingGlueMediaSourcePublishableWrapper* _tmp16_ = NULL;
+ SpitPublishingPublishable* _tmp17_ = NULL;
+ SpitPublishingPublisherMediaType _tmp18_ = 0;
+ SpitPublishingPublishable** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ SpitPublishingPublishable* _tmp22_ = NULL;
+ SpitPublishingPublishable* _tmp23_ = NULL;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = _media_it;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (!_tmp12_) {
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ break;
+#line 1491 "PublishingUI.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13_ = _media_it;
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ media = (MediaSource*) _tmp14_;
+#line 172 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp15_ = media;
+#line 172 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp16_ = publishing_glue_media_source_publishable_wrapper_new (_tmp15_);
+#line 172 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishable = G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, SPIT_PUBLISHING_TYPE_PUBLISHABLE, SpitPublishingPublishable);
+#line 174 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp17_ = publishable;
+#line 174 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp18_ = spit_publishing_publishable_get_media_type (_tmp17_);
+#line 174 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp18_ == SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO) {
+#line 175 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ has_photos = TRUE;
+#line 1513 "PublishingUI.c"
+ } else {
+ SpitPublishingPublishable* _tmp19_ = NULL;
+ SpitPublishingPublisherMediaType _tmp20_ = 0;
+#line 176 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp19_ = publishable;
+#line 176 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp20_ = spit_publishing_publishable_get_media_type (_tmp19_);
+#line 176 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp20_ == SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO) {
+#line 177 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ has_videos = TRUE;
+#line 1525 "PublishingUI.c"
+ } else {
+#line 179 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_assert_not_reached ();
+#line 1529 "PublishingUI.c"
+ }
+ }
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp21_ = self->priv->publishables;
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp21__length1 = self->priv->publishables_length1;
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp22_ = publishable;
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp23_ = _g_object_ref0 (_tmp22_);
+#line 181 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_array_add55 (&self->priv->publishables, &self->priv->publishables_length1, &self->priv->_publishables_size_, _tmp23_);
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (publishable);
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (media);
+#line 1546 "PublishingUI.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_media_it);
+#line 1550 "PublishingUI.c"
+ }
+#line 184 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ title = NULL;
+#line 185 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ label = NULL;
+#line 187 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp25_ = has_photos;
+#line 187 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp25_) {
+#line 1560 "PublishingUI.c"
+ gboolean _tmp26_ = FALSE;
+#line 187 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp26_ = has_videos;
+#line 187 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp24_ = !_tmp26_;
+#line 1566 "PublishingUI.c"
+ } else {
+#line 187 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp24_ = FALSE;
+#line 1570 "PublishingUI.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp24_) {
+#line 1574 "PublishingUI.c"
+ const gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 188 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp27_ = _ ("Publish Photos");
+#line 188 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp28_ = g_strdup (_tmp27_);
+#line 188 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (title);
+#line 188 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ title = _tmp28_;
+#line 189 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp29_ = _ ("Publish photos _to:");
+#line 189 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 189 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (label);
+#line 189 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ label = _tmp30_;
+#line 1595 "PublishingUI.c"
+ } else {
+ gboolean _tmp31_ = FALSE;
+ gboolean _tmp32_ = FALSE;
+#line 190 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp32_ = has_photos;
+#line 190 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (!_tmp32_) {
+#line 1603 "PublishingUI.c"
+ gboolean _tmp33_ = FALSE;
+#line 190 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp33_ = has_videos;
+#line 190 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp31_ = _tmp33_;
+#line 1609 "PublishingUI.c"
+ } else {
+#line 190 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp31_ = FALSE;
+#line 1613 "PublishingUI.c"
+ }
+#line 190 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp31_) {
+#line 1617 "PublishingUI.c"
+ const gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ gchar* _tmp37_ = NULL;
+#line 191 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp34_ = _ ("Publish Videos");
+#line 191 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp35_ = g_strdup (_tmp34_);
+#line 191 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (title);
+#line 191 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ title = _tmp35_;
+#line 192 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp36_ = _ ("Publish videos _to");
+#line 192 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp37_ = g_strdup (_tmp36_);
+#line 192 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (label);
+#line 192 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ label = _tmp37_;
+#line 1638 "PublishingUI.c"
+ } else {
+ const gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp38_ = _ ("Publish Photos and Videos");
+#line 194 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp39_ = g_strdup (_tmp38_);
+#line 194 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (title);
+#line 194 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ title = _tmp39_;
+#line 195 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp40_ = _ ("Publish photos and videos _to");
+#line 195 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp41_ = g_strdup (_tmp40_);
+#line 195 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (label);
+#line 195 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ label = _tmp41_;
+#line 1660 "PublishingUI.c"
+ }
+ }
+#line 197 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp42_ = title;
+#line 197 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_title (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), _tmp42_);
+#line 199 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp43_ = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING, -1);
+#line 199 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->service_selector_box_model);
+#line 199 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->service_selector_box_model = _tmp43_;
+#line 200 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp44_ = self->priv->service_selector_box_model;
+#line 200 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp45_ = (GtkComboBox*) gtk_combo_box_new_with_model (G_TYPE_CHECK_INSTANCE_CAST (_tmp44_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 200 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp45_);
+#line 200 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->service_selector_box);
+#line 200 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->service_selector_box = _tmp45_;
+#line 202 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp46_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+#line 202 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp46_);
+#line 202 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ renderer_pix = _tmp46_;
+#line 203 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp47_ = self->priv->service_selector_box;
+#line 203 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp48_ = renderer_pix;
+#line 203 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp47_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp48_, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 204 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp49_ = self->priv->service_selector_box;
+#line 204 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp50_ = renderer_pix;
+#line 204 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp50_, gtk_cell_renderer_get_type (), GtkCellRenderer), "pixbuf", 0);
+#line 206 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp51_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 206 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp51_);
+#line 206 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ renderer_text = _tmp51_;
+#line 207 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp52_ = self->priv->service_selector_box;
+#line 207 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp53_ = renderer_text;
+#line 207 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp53_, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp54_ = self->priv->service_selector_box;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp55_ = renderer_text;
+#line 208 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (_tmp54_, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, gtk_cell_renderer_get_type (), GtkCellRenderer), "text", 1);
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp56_ = self->priv->service_selector_box;
+#line 210 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_combo_box_set_active (_tmp56_, 0);
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp57_ = config_facade_get_instance ();
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp58_ = _tmp57_;
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp59_ = configuration_facade_get_last_used_service (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade));
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp60_ = _tmp59_;
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_tmp58_);
+#line 213 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ last_used_service = _tmp60_;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp61_ = has_photos;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp62_ = has_videos;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp64_ = publishing_ui_publishing_dialog_load_services (_tmp61_, _tmp62_, &_tmp63_);
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ loaded_services = _tmp64_;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ loaded_services_length1 = _tmp63_;
+#line 215 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _loaded_services_size_ = loaded_services_length1;
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp65_ = loaded_services;
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp65__length1 = loaded_services_length1;
+#line 1751 "PublishingUI.c"
+ {
+ SpitPublishingService** service_collection = NULL;
+ gint service_collection_length1 = 0;
+ gint _service_collection_size_ = 0;
+ gint service_it = 0;
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_collection = _tmp65_;
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_collection_length1 = _tmp65__length1;
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ for (service_it = 0; service_it < _tmp65__length1; service_it = service_it + 1) {
+#line 1763 "PublishingUI.c"
+ SpitPublishingService* _tmp66_ = NULL;
+ SpitPublishingService* service = NULL;
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp66_ = _g_object_ref0 (service_collection[service_it]);
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service = _tmp66_;
+#line 1770 "PublishingUI.c"
+ {
+ GtkListStore* _tmp67_ = NULL;
+ GtkTreeIter _tmp68_ = {0};
+ gchar* curr_service_id = NULL;
+ SpitPublishingService* _tmp69_ = NULL;
+ const gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ SpitPublishingService* _tmp72_ = NULL;
+ gboolean _tmp73_ = FALSE;
+ SpitPluggableInfo _tmp74_ = {0};
+ GdkPixbuf** _tmp75_ = NULL;
+ gint _tmp75__length1 = 0;
+ const gchar* _tmp93_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp67_ = self->priv->service_selector_box_model;
+#line 220 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_list_store_append (_tmp67_, &_tmp68_);
+#line 220 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ iter = _tmp68_;
+#line 222 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp69_ = service;
+#line 222 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp70_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp69_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 222 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp71_ = g_strdup (_tmp70_);
+#line 222 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ curr_service_id = _tmp71_;
+#line 224 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp72_ = service;
+#line 224 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ spit_pluggable_get_info (G_TYPE_CHECK_INSTANCE_CAST (_tmp72_, SPIT_TYPE_PLUGGABLE, SpitPluggable), &self->priv->info);
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp74_ = self->priv->info;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp75_ = _tmp74_.icons;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp75__length1 = _tmp74_.icons_length1;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (NULL != _tmp75_) {
+#line 1810 "PublishingUI.c"
+ SpitPluggableInfo _tmp76_ = {0};
+ GdkPixbuf** _tmp77_ = NULL;
+ gint _tmp77__length1 = 0;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp76_ = self->priv->info;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp77_ = _tmp76_.icons;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp77__length1 = _tmp76_.icons_length1;
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp73_ = 0 < _tmp77__length1;
+#line 1822 "PublishingUI.c"
+ } else {
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp73_ = FALSE;
+#line 1826 "PublishingUI.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp73_) {
+#line 1830 "PublishingUI.c"
+ GtkListStore* _tmp78_ = NULL;
+ GtkTreeIter _tmp79_ = {0};
+ SpitPluggableInfo _tmp80_ = {0};
+ GdkPixbuf** _tmp81_ = NULL;
+ gint _tmp81__length1 = 0;
+ GdkPixbuf* _tmp82_ = NULL;
+ SpitPublishingService* _tmp83_ = NULL;
+ const gchar* _tmp84_ = NULL;
+ GdkPixbuf* _tmp85_ = NULL;
+ GdkPixbuf* _tmp86_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp78_ = self->priv->service_selector_box_model;
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp79_ = iter;
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp80_ = self->priv->info;
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp81_ = _tmp80_.icons;
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp81__length1 = _tmp80_.icons_length1;
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp82_ = _tmp81_[0];
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp83_ = service;
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp84_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp83_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 228 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_list_store_set (_tmp78_, &_tmp79_, 0, _tmp82_, 1, _tmp84_, -1);
+#line 232 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp85_ = resources_get_icon (RESOURCES_ICON_GENERIC_PLUGIN, RESOURCES_DEFAULT_ICON_SCALE);
+#line 232 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->info.icons[0]);
+#line 232 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->info.icons[0] = _tmp85_;
+#line 232 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp86_ = self->priv->info.icons[0];
+#line 1867 "PublishingUI.c"
+ } else {
+ GtkListStore* _tmp87_ = NULL;
+ GtkTreeIter _tmp88_ = {0};
+ GdkPixbuf* _tmp89_ = NULL;
+ GdkPixbuf* _tmp90_ = NULL;
+ SpitPublishingService* _tmp91_ = NULL;
+ const gchar* _tmp92_ = NULL;
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp87_ = self->priv->service_selector_box_model;
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp88_ = iter;
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp89_ = resources_get_icon (RESOURCES_ICON_GENERIC_PLUGIN, RESOURCES_DEFAULT_ICON_SCALE);
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp90_ = _tmp89_;
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp91_ = service;
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp92_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp91_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_list_store_set (_tmp87_, &_tmp88_, 0, _tmp90_, 1, _tmp92_, -1);
+#line 235 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_tmp90_);
+#line 1891 "PublishingUI.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp93_ = last_used_service;
+#line 239 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp93_ == NULL) {
+#line 1897 "PublishingUI.c"
+ GtkComboBox* _tmp94_ = NULL;
+ GtkTreeIter _tmp95_ = {0};
+ SpitPublishingService* _tmp96_ = NULL;
+ const gchar* _tmp97_ = NULL;
+ gchar* _tmp98_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp94_ = self->priv->service_selector_box;
+#line 240 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp95_ = iter;
+#line 240 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_combo_box_set_active_iter (_tmp94_, &_tmp95_);
+#line 241 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp96_ = service;
+#line 241 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp97_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp96_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 241 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp98_ = g_strdup (_tmp97_);
+#line 241 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (last_used_service);
+#line 241 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ last_used_service = _tmp98_;
+#line 1919 "PublishingUI.c"
+ } else {
+ const gchar* _tmp99_ = NULL;
+ const gchar* _tmp100_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp99_ = last_used_service;
+#line 242 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp100_ = curr_service_id;
+#line 242 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (g_strcmp0 (_tmp99_, _tmp100_) == 0) {
+#line 1929 "PublishingUI.c"
+ GtkComboBox* _tmp101_ = NULL;
+ GtkTreeIter _tmp102_ = {0};
+#line 243 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp101_ = self->priv->service_selector_box;
+#line 243 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp102_ = iter;
+#line 243 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_combo_box_set_active_iter (_tmp101_, &_tmp102_);
+#line 1938 "PublishingUI.c"
+ }
+ }
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (curr_service_id);
+#line 219 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service);
+#line 1945 "PublishingUI.c"
+ }
+ }
+ }
+#line 247 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp103_ = self->priv->service_selector_box;
+#line 247 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_signal_connect_object (_tmp103_, "changed", (GCallback) _publishing_ui_publishing_dialog_on_service_changed_gtk_combo_box_changed, self, 0);
+#line 249 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp104_ = use_header;
+#line 249 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (!_tmp104_) {
+#line 1957 "PublishingUI.c"
+ GtkLabel* service_selector_box_label = NULL;
+ const gchar* _tmp105_ = NULL;
+ GtkLabel* _tmp106_ = NULL;
+ GtkLabel* _tmp107_ = NULL;
+ GtkComboBox* _tmp108_ = NULL;
+ GtkLabel* _tmp109_ = NULL;
+ GtkAlignment* service_selector_box_wrapper = NULL;
+ GtkAlignment* _tmp110_ = NULL;
+ GtkAlignment* _tmp111_ = NULL;
+ GtkComboBox* _tmp112_ = NULL;
+ GtkBox* service_selector_layouter = NULL;
+ GtkBox* _tmp113_ = NULL;
+ GtkBox* _tmp114_ = NULL;
+ GtkBox* _tmp115_ = NULL;
+ GtkLabel* _tmp116_ = NULL;
+ GtkBox* _tmp117_ = NULL;
+ GtkAlignment* _tmp118_ = NULL;
+ GtkBox* service_area_layouter = NULL;
+ GtkBox* _tmp119_ = NULL;
+ GtkBox* _tmp120_ = NULL;
+ GtkBox* _tmp121_ = NULL;
+ GtkBox* _tmp122_ = NULL;
+ GtkSeparator* _tmp123_ = NULL;
+ GtkSeparator* _tmp124_ = NULL;
+ GtkAlignment* service_area_wrapper = NULL;
+ GtkAlignment* _tmp125_ = NULL;
+ GtkAlignment* _tmp126_ = NULL;
+ GtkBox* _tmp127_ = NULL;
+ GtkBox* _tmp128_ = NULL;
+ GtkAlignment* _tmp129_ = NULL;
+#line 251 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp105_ = label;
+#line 251 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp106_ = (GtkLabel*) gtk_label_new_with_mnemonic (_tmp105_);
+#line 251 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp106_);
+#line 251 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_selector_box_label = _tmp106_;
+#line 252 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp107_ = service_selector_box_label;
+#line 252 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp108_ = self->priv->service_selector_box;
+#line 252 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_label_set_mnemonic_widget (_tmp107_, G_TYPE_CHECK_INSTANCE_CAST (_tmp108_, gtk_widget_get_type (), GtkWidget));
+#line 253 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp109_ = service_selector_box_label;
+#line 253 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_misc_set_alignment (G_TYPE_CHECK_INSTANCE_CAST (_tmp109_, gtk_misc_get_type (), GtkMisc), 0.0f, 0.5f);
+#line 259 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp110_ = (GtkAlignment*) gtk_alignment_new (1.0f, 0.5f, 0.0f, 0.0f);
+#line 259 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp110_);
+#line 259 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_selector_box_wrapper = _tmp110_;
+#line 260 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp111_ = service_selector_box_wrapper;
+#line 260 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp112_ = self->priv->service_selector_box;
+#line 260 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp111_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp112_, gtk_widget_get_type (), GtkWidget));
+#line 262 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp113_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
+#line 262 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp113_);
+#line 262 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_selector_layouter = _tmp113_;
+#line 263 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp114_ = service_selector_layouter;
+#line 263 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_set_border_width (G_TYPE_CHECK_INSTANCE_CAST (_tmp114_, gtk_container_get_type (), GtkContainer), (guint) 12);
+#line 264 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp115_ = service_selector_layouter;
+#line 264 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp116_ = service_selector_box_label;
+#line 264 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp115_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp116_, gtk_widget_get_type (), GtkWidget));
+#line 265 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp117_ = service_selector_layouter;
+#line 265 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp118_ = service_selector_box_wrapper;
+#line 265 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_box_pack_start (_tmp117_, G_TYPE_CHECK_INSTANCE_CAST (_tmp118_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 269 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp119_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 269 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp119_);
+#line 269 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_area_layouter = _tmp119_;
+#line 270 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp120_ = service_area_layouter;
+#line 270 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp121_ = service_selector_layouter;
+#line 270 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp120_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp121_, gtk_widget_get_type (), GtkWidget));
+#line 271 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp122_ = service_area_layouter;
+#line 271 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp123_ = (GtkSeparator*) gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+#line 271 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp123_);
+#line 271 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp124_ = _tmp123_;
+#line 271 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp122_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp124_, gtk_widget_get_type (), GtkWidget));
+#line 271 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_tmp124_);
+#line 273 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp125_ = (GtkAlignment*) gtk_alignment_new (0.0f, 0.0f, 1.0f, 0.0f);
+#line 273 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp125_);
+#line 273 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_area_wrapper = _tmp125_;
+#line 274 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp126_ = service_area_wrapper;
+#line 274 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp127_ = service_area_layouter;
+#line 274 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp126_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp127_, gtk_widget_get_type (), GtkWidget));
+#line 276 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp128_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 276 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp129_ = service_area_wrapper;
+#line 276 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_box_pack_start (_tmp128_, G_TYPE_CHECK_INSTANCE_CAST (_tmp129_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 249 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service_area_wrapper);
+#line 249 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service_area_layouter);
+#line 249 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service_selector_layouter);
+#line 249 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service_selector_box_wrapper);
+#line 249 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service_selector_box_label);
+#line 2092 "PublishingUI.c"
+ }
+#line 279 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp130_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+#line 279 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp130_);
+#line 279 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->central_area_layouter);
+#line 279 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->central_area_layouter = _tmp130_;
+#line 281 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp131_ = (GtkBox*) gtk_dialog_get_content_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 281 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp132_ = self->priv->central_area_layouter;
+#line 281 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_box_pack_start (_tmp131_, G_TYPE_CHECK_INSTANCE_CAST (_tmp132_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 283 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp133_ = (GtkButton*) gtk_button_new_with_mnemonic ("_Cancel");
+#line 283 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp133_);
+#line 283 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->close_cancel_button);
+#line 283 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->close_cancel_button = _tmp133_;
+#line 284 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp134_ = self->priv->close_cancel_button;
+#line 284 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_can_default (G_TYPE_CHECK_INSTANCE_CAST (_tmp134_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 285 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp135_ = self->priv->close_cancel_button;
+#line 285 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_signal_connect_object (_tmp135_, "clicked", (GCallback) _publishing_ui_publishing_dialog_on_close_cancel_clicked_gtk_button_clicked, self, 0);
+#line 286 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp136_ = use_header;
+#line 286 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp136_) {
+#line 2128 "PublishingUI.c"
+ GtkWidget* _tmp137_ = NULL;
+ GtkButton* _tmp138_ = NULL;
+ GtkWidget* _tmp139_ = NULL;
+ GtkComboBox* _tmp140_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp137_ = gtk_dialog_get_header_bar (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 287 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp138_ = self->priv->close_cancel_button;
+#line 287 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_header_bar_pack_start (G_TYPE_CHECK_INSTANCE_CAST (_tmp137_, gtk_header_bar_get_type (), GtkHeaderBar), G_TYPE_CHECK_INSTANCE_CAST (_tmp138_, gtk_widget_get_type (), GtkWidget));
+#line 288 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp139_ = gtk_dialog_get_header_bar (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 288 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp140_ = self->priv->service_selector_box;
+#line 288 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_header_bar_pack_end (G_TYPE_CHECK_INSTANCE_CAST (_tmp139_, gtk_header_bar_get_type (), GtkHeaderBar), G_TYPE_CHECK_INSTANCE_CAST (_tmp140_, gtk_widget_get_type (), GtkWidget));
+#line 2145 "PublishingUI.c"
+ } else {
+ GtkWidget* _tmp141_ = NULL;
+ GtkButton* _tmp142_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp141_ = gtk_dialog_get_action_area (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 291 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp142_ = self->priv->close_cancel_button;
+#line 291 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp141_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp142_, gtk_widget_get_type (), GtkWidget));
+#line 2155 "PublishingUI.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_set_standard_window_mode (self);
+#line 295 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ loaded_services = (_vala_array_free (loaded_services, loaded_services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (last_used_service);
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (renderer_text);
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (renderer_pix);
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (label);
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (title);
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return self;
+#line 2175 "PublishingUI.c"
+}
+
+
+PublishingUIPublishingDialog* publishing_ui_publishing_dialog_new (GeeCollection* to_publish) {
+#line 156 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return publishing_ui_publishing_dialog_construct (PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, to_publish);
+#line 2182 "PublishingUI.c"
+}
+
+
+static void _vala_array_add56 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value) {
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((*length) == (*size)) {
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *array = g_renew (SpitPublishingService*, *array, (*size) + 1);
+#line 2193 "PublishingUI.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[(*length)++] = value;
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[*length] = NULL;
+#line 2199 "PublishingUI.c"
+}
+
+
+static gint __lambda15_ (void* a, void* b) {
+ gint result = 0;
+ void* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ void* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 328 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = a;
+#line 328 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (*((SpitPublishingService**) _tmp0_), SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 328 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = b;
+#line 328 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (*((SpitPublishingService**) _tmp2_), SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 328 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = utf8_cs_compare (_tmp1_, _tmp3_);
+#line 328 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = _tmp4_;
+#line 328 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 2224 "PublishingUI.c"
+}
+
+
+static gint ___lambda15____compar_fn_t (void* key1, void* key2) {
+ gint result;
+ result = __lambda15_ (key1, key2);
+#line 327 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 2233 "PublishingUI.c"
+}
+
+
+static SpitPublishingService** publishing_ui_publishing_dialog_load_all_services (int* result_length1) {
+ SpitPublishingService** result = NULL;
+ SpitPublishingService** loaded_services = NULL;
+ SpitPublishingService** _tmp0_ = NULL;
+ gint loaded_services_length1 = 0;
+ gint _loaded_services_size_ = 0;
+ GeeCollection* pluggables = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ SpitPublishingService** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ SpitPublishingService** _tmp26_ = NULL;
+ gint _tmp26__length1 = 0;
+ SpitPublishingService** _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+#line 299 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = g_new0 (SpitPublishingService*, 0 + 1);
+#line 299 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ loaded_services = _tmp0_;
+#line 299 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ loaded_services_length1 = 0;
+#line 299 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _loaded_services_size_ = loaded_services_length1;
+#line 302 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = plugins_get_pluggables_for_type (SPIT_PUBLISHING_TYPE_SERVICE, NULL, NULL, NULL, FALSE);
+#line 302 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ pluggables = _tmp1_;
+#line 305 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = pluggables;
+#line 305 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = gee_collection_get_size (_tmp2_);
+#line 305 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = _tmp3_;
+#line 305 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_debug ("PublishingUI.vala:305: PublisingDialog: discovered %d pluggable publis" \
+"hing services.", _tmp4_);
+#line 2274 "PublishingUI.c"
+ {
+ GeeIterator* _pluggable_it = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = pluggables;
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _pluggable_it = _tmp6_;
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ while (TRUE) {
+#line 2287 "PublishingUI.c"
+ GeeIterator* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ SpitPluggable* pluggable = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ gint pluggable_interface = 0;
+ SpitPluggable* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ SpitPublishingService* service = NULL;
+ SpitPluggable* _tmp18_ = NULL;
+ SpitPublishingService* _tmp19_ = NULL;
+ SpitPublishingService* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ SpitPublishingService** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ SpitPublishingService* _tmp23_ = NULL;
+ SpitPublishingService* _tmp24_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = _pluggable_it;
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = gee_iterator_next (_tmp7_);
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (!_tmp8_) {
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ break;
+#line 2314 "PublishingUI.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = _pluggable_it;
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = gee_iterator_get (_tmp9_);
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ pluggable = (SpitPluggable*) _tmp10_;
+#line 308 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = pluggable;
+#line 308 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = spit_pluggable_get_pluggable_interface (_tmp11_, SPIT_PUBLISHING_CURRENT_INTERFACE, SPIT_PUBLISHING_CURRENT_INTERFACE);
+#line 308 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ pluggable_interface = _tmp12_;
+#line 310 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13_ = pluggable_interface;
+#line 310 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp13_ != SPIT_PUBLISHING_CURRENT_INTERFACE) {
+#line 2332 "PublishingUI.c"
+ SpitPluggable* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+#line 311 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14_ = pluggable;
+#line 311 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp15_ = plugins_get_pluggable_module_id (_tmp14_);
+#line 311 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp16_ = _tmp15_;
+#line 311 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp17_ = pluggable_interface;
+#line 311 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_warning ("PublishingUI.vala:311: Unable to load publisher %s: reported interface" \
+" %d.", _tmp16_, _tmp17_);
+#line 311 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (_tmp16_);
+#line 314 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (pluggable);
+#line 314 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ continue;
+#line 2353 "PublishingUI.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp18_ = pluggable;
+#line 317 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp19_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, SPIT_PUBLISHING_TYPE_SERVICE, SpitPublishingService));
+#line 317 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service = _tmp19_;
+#line 320 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp20_ = service;
+#line 320 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp21_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 320 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_debug ("PublishingUI.vala:320: PublishingDialog: discovered pluggable publishi" \
+"ng service '%s'.", _tmp21_);
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp22_ = loaded_services;
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp22__length1 = loaded_services_length1;
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp23_ = service;
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp24_ = _g_object_ref0 (_tmp23_);
+#line 323 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_array_add56 (&loaded_services, &loaded_services_length1, &_loaded_services_size_, _tmp24_);
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service);
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (pluggable);
+#line 2381 "PublishingUI.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_pluggable_it);
+#line 2385 "PublishingUI.c"
+ }
+#line 327 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp25_ = loaded_services;
+#line 327 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp25__length1 = loaded_services_length1;
+#line 327 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp26_ = loaded_services;
+#line 327 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp26__length1 = loaded_services_length1;
+#line 327 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ qsort (_tmp25_, (gsize) _tmp26__length1, (gsize) sizeof (SpitPublishingService*), ___lambda15____compar_fn_t);
+#line 332 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp27_ = loaded_services;
+#line 332 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp27__length1 = loaded_services_length1;
+#line 332 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (result_length1) {
+#line 332 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *result_length1 = _tmp27__length1;
+#line 2405 "PublishingUI.c"
+ }
+#line 332 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = _tmp27_;
+#line 332 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (pluggables);
+#line 332 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 2413 "PublishingUI.c"
+}
+
+
+static void _vala_array_add57 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value) {
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((*length) == (*size)) {
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *array = g_renew (SpitPublishingService*, *array, (*size) + 1);
+#line 2424 "PublishingUI.c"
+ }
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[(*length)++] = value;
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[*length] = NULL;
+#line 2430 "PublishingUI.c"
+}
+
+
+static void _vala_array_add58 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value) {
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((*length) == (*size)) {
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *array = g_renew (SpitPublishingService*, *array, (*size) + 1);
+#line 2441 "PublishingUI.c"
+ }
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[(*length)++] = value;
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[*length] = NULL;
+#line 2447 "PublishingUI.c"
+}
+
+
+static void _vala_array_add59 (SpitPublishingService*** array, int* length, int* size, SpitPublishingService* value) {
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((*length) == (*size)) {
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *array = g_renew (SpitPublishingService*, *array, (*size) + 1);
+#line 2458 "PublishingUI.c"
+ }
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[(*length)++] = value;
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ (*array)[*length] = NULL;
+#line 2464 "PublishingUI.c"
+}
+
+
+static SpitPublishingService** publishing_ui_publishing_dialog_load_services (gboolean has_photos, gboolean has_videos, int* result_length1) {
+ SpitPublishingService** result = NULL;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ SpitPublishingService** filtered_services = NULL;
+ SpitPublishingService** _tmp3_ = NULL;
+ gint filtered_services_length1 = 0;
+ gint _filtered_services_size_ = 0;
+ SpitPublishingService** all_services = NULL;
+ gint _tmp4_ = 0;
+ SpitPublishingService** _tmp5_ = NULL;
+ gint all_services_length1 = 0;
+ gint _all_services_size_ = 0;
+ SpitPublishingService** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ SpitPublishingService** _tmp32_ = NULL;
+ gint _tmp32__length1 = 0;
+#line 336 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = has_photos;
+#line 336 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp1_) {
+#line 336 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = TRUE;
+#line 2491 "PublishingUI.c"
+ } else {
+ gboolean _tmp2_ = FALSE;
+#line 336 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = has_videos;
+#line 336 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = _tmp2_;
+#line 2498 "PublishingUI.c"
+ }
+#line 336 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_assert (_tmp0_, "has_photos || has_videos");
+#line 338 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = g_new0 (SpitPublishingService*, 0 + 1);
+#line 338 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ filtered_services = _tmp3_;
+#line 338 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ filtered_services_length1 = 0;
+#line 338 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _filtered_services_size_ = filtered_services_length1;
+#line 339 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = publishing_ui_publishing_dialog_load_all_services (&_tmp4_);
+#line 339 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ all_services = _tmp5_;
+#line 339 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ all_services_length1 = _tmp4_;
+#line 339 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _all_services_size_ = all_services_length1;
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = all_services;
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6__length1 = all_services_length1;
+#line 2522 "PublishingUI.c"
+ {
+ SpitPublishingService** service_collection = NULL;
+ gint service_collection_length1 = 0;
+ gint _service_collection_size_ = 0;
+ gint service_it = 0;
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_collection = _tmp6_;
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_collection_length1 = _tmp6__length1;
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ for (service_it = 0; service_it < _tmp6__length1; service_it = service_it + 1) {
+#line 2534 "PublishingUI.c"
+ SpitPublishingService* _tmp7_ = NULL;
+ SpitPublishingService* service = NULL;
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = _g_object_ref0 (service_collection[service_it]);
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service = _tmp7_;
+#line 2541 "PublishingUI.c"
+ {
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 343 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = has_photos;
+#line 343 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp9_) {
+#line 2549 "PublishingUI.c"
+ gboolean _tmp10_ = FALSE;
+#line 343 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = has_videos;
+#line 343 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = !_tmp10_;
+#line 2555 "PublishingUI.c"
+ } else {
+#line 343 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = FALSE;
+#line 2559 "PublishingUI.c"
+ }
+#line 343 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp8_) {
+#line 2563 "PublishingUI.c"
+ SpitPublishingService* _tmp11_ = NULL;
+ SpitPublishingPublisherMediaType _tmp12_ = 0;
+#line 344 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = service;
+#line 344 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = spit_publishing_service_get_supported_media (_tmp11_);
+#line 344 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((_tmp12_ & SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO) != 0) {
+#line 2572 "PublishingUI.c"
+ SpitPublishingService** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ SpitPublishingService* _tmp14_ = NULL;
+ SpitPublishingService* _tmp15_ = NULL;
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13_ = filtered_services;
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13__length1 = filtered_services_length1;
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14_ = service;
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 345 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_array_add57 (&filtered_services, &filtered_services_length1, &_filtered_services_size_, _tmp15_);
+#line 2587 "PublishingUI.c"
+ }
+ } else {
+ gboolean _tmp16_ = FALSE;
+ gboolean _tmp17_ = FALSE;
+#line 346 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp17_ = has_photos;
+#line 346 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (!_tmp17_) {
+#line 2596 "PublishingUI.c"
+ gboolean _tmp18_ = FALSE;
+#line 346 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp18_ = has_videos;
+#line 346 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp16_ = _tmp18_;
+#line 2602 "PublishingUI.c"
+ } else {
+#line 346 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp16_ = FALSE;
+#line 2606 "PublishingUI.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp16_) {
+#line 2610 "PublishingUI.c"
+ SpitPublishingService* _tmp19_ = NULL;
+ SpitPublishingPublisherMediaType _tmp20_ = 0;
+#line 347 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp19_ = service;
+#line 347 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp20_ = spit_publishing_service_get_supported_media (_tmp19_);
+#line 347 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((_tmp20_ & SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO) != 0) {
+#line 2619 "PublishingUI.c"
+ SpitPublishingService** _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ SpitPublishingService* _tmp22_ = NULL;
+ SpitPublishingService* _tmp23_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp21_ = filtered_services;
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp21__length1 = filtered_services_length1;
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp22_ = service;
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp23_ = _g_object_ref0 (_tmp22_);
+#line 348 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_array_add58 (&filtered_services, &filtered_services_length1, &_filtered_services_size_, _tmp23_);
+#line 2634 "PublishingUI.c"
+ }
+ } else {
+ gboolean _tmp24_ = FALSE;
+ SpitPublishingService* _tmp25_ = NULL;
+ SpitPublishingPublisherMediaType _tmp26_ = 0;
+#line 350 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp25_ = service;
+#line 350 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp26_ = spit_publishing_service_get_supported_media (_tmp25_);
+#line 350 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((_tmp26_ & SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_PHOTO) != 0) {
+#line 2646 "PublishingUI.c"
+ SpitPublishingService* _tmp27_ = NULL;
+ SpitPublishingPublisherMediaType _tmp28_ = 0;
+#line 351 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp27_ = service;
+#line 351 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp28_ = spit_publishing_service_get_supported_media (_tmp27_);
+#line 351 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp24_ = (_tmp28_ & SPIT_PUBLISHING_PUBLISHER_MEDIA_TYPE_VIDEO) != 0;
+#line 2655 "PublishingUI.c"
+ } else {
+#line 350 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp24_ = FALSE;
+#line 2659 "PublishingUI.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp24_) {
+#line 2663 "PublishingUI.c"
+ SpitPublishingService** _tmp29_ = NULL;
+ gint _tmp29__length1 = 0;
+ SpitPublishingService* _tmp30_ = NULL;
+ SpitPublishingService* _tmp31_ = NULL;
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp29_ = filtered_services;
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp29__length1 = filtered_services_length1;
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp30_ = service;
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 352 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_array_add59 (&filtered_services, &filtered_services_length1, &_filtered_services_size_, _tmp31_);
+#line 2678 "PublishingUI.c"
+ }
+ }
+ }
+#line 341 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service);
+#line 2684 "PublishingUI.c"
+ }
+ }
+ }
+#line 356 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp32_ = filtered_services;
+#line 356 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp32__length1 = filtered_services_length1;
+#line 356 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (result_length1) {
+#line 356 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ *result_length1 = _tmp32__length1;
+#line 2696 "PublishingUI.c"
+ }
+#line 356 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = _tmp32_;
+#line 356 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ all_services = (_vala_array_free (all_services, all_services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 356 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 2704 "PublishingUI.c"
+}
+
+
+void publishing_ui_publishing_dialog_go (GeeCollection* to_publish) {
+ PublishingUIPublishingDialog* _tmp0_ = NULL;
+ GTimer* _tmp1_ = NULL;
+ GeeArrayList* photos = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ GeeArrayList* videos = NULL;
+ GeeArrayList* _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ GeeArrayList* _tmp13_ = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ SpitPublishingService** avail_services = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ GeeArrayList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ SpitPublishingService** _tmp22_ = NULL;
+ gint avail_services_length1 = 0;
+ gint _avail_services_size_ = 0;
+ SpitPublishingService** _tmp23_ = NULL;
+ gint _tmp23__length1 = 0;
+ GeeCollection* _tmp28_ = NULL;
+ PublishingUIPublishingDialog* _tmp29_ = NULL;
+ PublishingUIPublishingDialog* _tmp30_ = NULL;
+ GTimer* _tmp31_ = NULL;
+#line 370 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (GEE_IS_COLLECTION (to_publish));
+#line 371 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = publishing_ui_publishing_dialog_active_instance;
+#line 371 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp0_ != NULL) {
+#line 372 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return;
+#line 2743 "PublishingUI.c"
+ }
+#line 374 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = publishing_ui_publishing_dialog_since_last_start;
+#line 374 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp1_ == NULL) {
+#line 2749 "PublishingUI.c"
+ GTimer* _tmp2_ = NULL;
+ GTimer* _tmp3_ = NULL;
+ GTimer* _tmp4_ = NULL;
+#line 377 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = g_timer_new ();
+#line 377 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_timer_destroy0 (publishing_ui_publishing_dialog_since_last_start);
+#line 377 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_since_last_start = _tmp2_;
+#line 378 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = publishing_ui_publishing_dialog_since_last_start;
+#line 378 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_timer_stop (_tmp3_);
+#line 379 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = publishing_ui_publishing_dialog_since_last_start;
+#line 379 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_timer_reset (_tmp4_);
+#line 380 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_elapsed_is_valid = FALSE;
+#line 2769 "PublishingUI.c"
+ } else {
+ gdouble elapsed = 0.0;
+ GTimer* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+ gboolean _tmp7_ = FALSE;
+ gdouble _tmp8_ = 0.0;
+#line 382 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = publishing_ui_publishing_dialog_since_last_start;
+#line 382 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = g_timer_elapsed (_tmp5_, NULL);
+#line 382 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ elapsed = _tmp6_;
+#line 383 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = elapsed;
+#line 383 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp8_ < 0.05) {
+#line 2786 "PublishingUI.c"
+ gboolean _tmp9_ = FALSE;
+#line 383 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = publishing_ui_publishing_dialog_elapsed_is_valid;
+#line 383 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = _tmp9_;
+#line 2792 "PublishingUI.c"
+ } else {
+#line 383 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = FALSE;
+#line 2796 "PublishingUI.c"
+ }
+#line 383 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp7_) {
+#line 384 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return;
+#line 2802 "PublishingUI.c"
+ }
+ }
+#line 387 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = gee_array_list_new (TYPE_LIBRARY_PHOTO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 387 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ photos = _tmp10_;
+#line 388 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = gee_array_list_new (TYPE_VIDEO, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 388 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ videos = _tmp11_;
+#line 389 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = to_publish;
+#line 389 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13_ = photos;
+#line 389 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14_ = videos;
+#line 389 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ media_source_collection_filter_media (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp15_ = photos;
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp16_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp17_ = _tmp16_;
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp18_ = videos;
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp19_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp20_ = _tmp19_;
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp22_ = publishing_ui_publishing_dialog_load_services (_tmp17_ > 0, _tmp20_ > 0, &_tmp21_);
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ avail_services = _tmp22_;
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ avail_services_length1 = _tmp21_;
+#line 391 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _avail_services_size_ = avail_services_length1;
+#line 394 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp23_ = avail_services;
+#line 394 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp23__length1 = avail_services_length1;
+#line 394 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp23__length1 == 0) {
+#line 2847 "PublishingUI.c"
+ const gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp24_ = _ ("Unable to publish");
+#line 397 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp25_ = _ ("Shotwell cannot publish the selected items because you do not have a c" \
+"ompatible publishing plugin enabled. To correct this, choose <b>Edit %" \
+"s Preferences</b> and enable one or more of the publishing plugins on " \
+"the <b>Plugins</b> tab.");
+#line 397 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp26_ = g_strdup_printf (_tmp25_, "▸");
+#line 397 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp27_ = _tmp26_;
+#line 397 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ app_window_error_message_with_title (_tmp24_, _tmp27_, NULL, FALSE);
+#line 397 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (_tmp27_);
+#line 401 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ avail_services = (_vala_array_free (avail_services, avail_services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 401 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (videos);
+#line 401 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (photos);
+#line 401 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return;
+#line 2872 "PublishingUI.c"
+ }
+#line 407 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_debug ("PublishingUI.vala:407: PublishingDialog.go( )");
+#line 409 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp28_ = to_publish;
+#line 409 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp29_ = publishing_ui_publishing_dialog_new (_tmp28_);
+#line 409 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_object_ref_sink (_tmp29_);
+#line 409 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (publishing_ui_publishing_dialog_active_instance);
+#line 409 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_active_instance = _tmp29_;
+#line 411 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp30_ = publishing_ui_publishing_dialog_active_instance;
+#line 411 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_run (_tmp30_);
+#line 413 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (publishing_ui_publishing_dialog_active_instance);
+#line 413 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_active_instance = NULL;
+#line 416 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp31_ = publishing_ui_publishing_dialog_since_last_start;
+#line 416 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_timer_start (_tmp31_);
+#line 417 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_elapsed_is_valid = TRUE;
+#line 370 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ avail_services = (_vala_array_free (avail_services, avail_services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 370 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (videos);
+#line 370 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (photos);
+#line 2906 "PublishingUI.c"
+}
+
+
+static gboolean publishing_ui_publishing_dialog_on_window_close (PublishingUIPublishingDialog* self, GdkEventAny* evt) {
+ gboolean result = FALSE;
+ SpitPublishingConcretePublishingHost* _tmp0_ = NULL;
+#line 420 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_val_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self), FALSE);
+#line 420 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_val_if_fail (evt != NULL, FALSE);
+#line 421 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->host;
+#line 421 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ spit_publishing_plugin_host_stop_publishing (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHost));
+#line 422 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 422 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->host = NULL;
+#line 423 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 424 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 426 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = TRUE;
+#line 426 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 2933 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_on_service_changed (PublishingUIPublishingDialog* self) {
+ GtkTreeIter iter = {0};
+ gboolean have_active_iter = FALSE;
+ GtkComboBox* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+ GValue service_name_val = {0};
+ GtkListStore* _tmp7_ = NULL;
+ GtkTreeIter _tmp8_ = {0};
+ GValue _tmp9_ = {0};
+ gchar* service_name = NULL;
+ GValue _tmp10_ = {0};
+ gchar* _tmp11_ = NULL;
+ SpitPublishingService* selected_service = NULL;
+ SpitPublishingService** services = NULL;
+ gint _tmp12_ = 0;
+ SpitPublishingService** _tmp13_ = NULL;
+ gint services_length1 = 0;
+ gint _services_size_ = 0;
+ SpitPublishingService** _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ SpitPublishingService* _tmp21_ = NULL;
+ ConfigFacade* _tmp22_ = NULL;
+ ConfigFacade* _tmp23_ = NULL;
+ SpitPublishingService* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ SpitPublishingService* _tmp26_ = NULL;
+ SpitPublishingPublishable** _tmp27_ = NULL;
+ gint _tmp27__length1 = 0;
+ SpitPublishingConcretePublishingHost* _tmp28_ = NULL;
+ SpitPublishingConcretePublishingHost* _tmp29_ = NULL;
+#line 429 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 431 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ have_active_iter = FALSE;
+#line 432 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->service_selector_box;
+#line 432 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = gtk_combo_box_get_active_iter (_tmp0_, &_tmp1_);
+#line 432 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ iter = _tmp1_;
+#line 432 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ have_active_iter = _tmp2_;
+#line 435 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = have_active_iter;
+#line 435 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (!_tmp3_) {
+#line 2985 "PublishingUI.c"
+ GtkComboBox* _tmp4_ = NULL;
+ GtkComboBox* _tmp5_ = NULL;
+ GtkTreeIter _tmp6_ = {0};
+#line 437 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = self->priv->service_selector_box;
+#line 437 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_combo_box_set_active (_tmp4_, 0);
+#line 440 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = self->priv->service_selector_box;
+#line 440 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_combo_box_get_active_iter (_tmp5_, &_tmp6_);
+#line 440 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ iter = _tmp6_;
+#line 2999 "PublishingUI.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = self->priv->service_selector_box_model;
+#line 444 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = iter;
+#line 444 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_tree_model_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp8_, 1, &_tmp9_);
+#line 444 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_IS_VALUE (&service_name_val) ? (g_value_unset (&service_name_val), NULL) : NULL;
+#line 444 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_name_val = _tmp9_;
+#line 446 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = service_name_val;
+#line 446 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = g_strdup (g_value_get_string (&_tmp10_));
+#line 446 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_name = _tmp11_;
+#line 448 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ selected_service = NULL;
+#line 449 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13_ = publishing_ui_publishing_dialog_load_all_services (&_tmp12_);
+#line 449 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ services = _tmp13_;
+#line 449 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ services_length1 = _tmp12_;
+#line 449 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _services_size_ = services_length1;
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14_ = services;
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14__length1 = services_length1;
+#line 3031 "PublishingUI.c"
+ {
+ SpitPublishingService** service_collection = NULL;
+ gint service_collection_length1 = 0;
+ gint _service_collection_size_ = 0;
+ gint service_it = 0;
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_collection = _tmp14_;
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service_collection_length1 = _tmp14__length1;
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ for (service_it = 0; service_it < _tmp14__length1; service_it = service_it + 1) {
+#line 3043 "PublishingUI.c"
+ SpitPublishingService* _tmp15_ = NULL;
+ SpitPublishingService* service = NULL;
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp15_ = _g_object_ref0 (service_collection[service_it]);
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ service = _tmp15_;
+#line 3050 "PublishingUI.c"
+ {
+ SpitPublishingService* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+#line 451 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp16_ = service;
+#line 451 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp17_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 451 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp18_ = service_name;
+#line 451 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (g_strcmp0 (_tmp17_, _tmp18_) == 0) {
+#line 3063 "PublishingUI.c"
+ SpitPublishingService* _tmp19_ = NULL;
+ SpitPublishingService* _tmp20_ = NULL;
+#line 452 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp19_ = service;
+#line 452 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp20_ = _g_object_ref0 (_tmp19_);
+#line 452 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (selected_service);
+#line 452 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ selected_service = _tmp20_;
+#line 453 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service);
+#line 453 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ break;
+#line 3078 "PublishingUI.c"
+ }
+#line 450 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (service);
+#line 3082 "PublishingUI.c"
+ }
+ }
+ }
+#line 456 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp21_ = selected_service;
+#line 456 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _vala_assert (_tmp21_ != NULL, "selected_service != null");
+#line 458 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp22_ = config_facade_get_instance ();
+#line 458 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp23_ = _tmp22_;
+#line 458 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp24_ = selected_service;
+#line 458 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp25_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 458 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ configuration_facade_set_last_used_service (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp25_);
+#line 458 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_tmp23_);
+#line 460 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp26_ = selected_service;
+#line 460 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp27_ = self->priv->publishables;
+#line 460 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp27__length1 = self->priv->publishables_length1;
+#line 460 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp28_ = spit_publishing_concrete_publishing_host_new (_tmp26_, self, _tmp27_, _tmp27__length1);
+#line 460 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 460 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->host = _tmp28_;
+#line 461 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp29_ = self->priv->host;
+#line 461 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ spit_publishing_concrete_publishing_host_start_publishing (_tmp29_);
+#line 429 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 429 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (selected_service);
+#line 429 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_free0 (service_name);
+#line 429 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_IS_VALUE (&service_name_val) ? (g_value_unset (&service_name_val), NULL) : NULL;
+#line 3126 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_on_close_cancel_clicked (PublishingUIPublishingDialog* self) {
+ SpitPublishingConcretePublishingHost* _tmp0_ = NULL;
+#line 464 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 465 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_debug ("PublishingUI.vala:465: PublishingDialog: on_close_cancel_clicked( ): i" \
+"nvoked.");
+#line 467 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->host;
+#line 467 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ spit_publishing_plugin_host_stop_publishing (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_PUBLISHING_TYPE_PLUGIN_HOST, SpitPublishingPluginHost));
+#line 468 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 468 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->host = NULL;
+#line 469 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 470 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 3148 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_set_large_window_mode (PublishingUIPublishingDialog* self) {
+ GtkBox* _tmp0_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 474 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), PUBLISHING_UI_PUBLISHING_DIALOG_LARGE_WINDOW_WIDTH, PUBLISHING_UI_PUBLISHING_DIALOG_LARGE_WINDOW_HEIGHT);
+#line 475 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->central_area_layouter;
+#line 475 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), PUBLISHING_UI_PUBLISHING_DIALOG_LARGE_WINDOW_WIDTH - PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_WIDTH, PUBLISHING_UI_PUBLISHING_DIALOG_LARGE_WINDOW_HEIGHT - PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_HEIGHT);
+#line 477 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 3164 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_set_colossal_window_mode (PublishingUIPublishingDialog* self) {
+ GtkBox* _tmp0_ = NULL;
+#line 480 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 481 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), PUBLISHING_UI_PUBLISHING_DIALOG_COLOSSAL_WINDOW_WIDTH, PUBLISHING_UI_PUBLISHING_DIALOG_COLOSSAL_WINDOW_HEIGHT);
+#line 482 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->central_area_layouter;
+#line 482 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), PUBLISHING_UI_PUBLISHING_DIALOG_COLOSSAL_WINDOW_WIDTH - PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_WIDTH, PUBLISHING_UI_PUBLISHING_DIALOG_COLOSSAL_WINDOW_HEIGHT - PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_HEIGHT);
+#line 484 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 3180 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_set_standard_window_mode (PublishingUIPublishingDialog* self) {
+ GtkBox* _tmp0_ = NULL;
+#line 487 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 488 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_WINDOW_WIDTH, PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_WINDOW_HEIGHT);
+#line 489 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->central_area_layouter;
+#line 489 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_size_request (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_WINDOW_WIDTH - PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_WIDTH, PUBLISHING_UI_PUBLISHING_DIALOG_STANDARD_WINDOW_HEIGHT - PUBLISHING_UI_PUBLISHING_DIALOG_BORDER_REGION_HEIGHT);
+#line 491 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 3196 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_set_free_sizable_window_mode (PublishingUIPublishingDialog* self) {
+#line 494 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 495 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), TRUE);
+#line 3205 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_clear_free_sizable_window_mode (PublishingUIPublishingDialog* self) {
+#line 498 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 499 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), FALSE);
+#line 3214 "PublishingUI.c"
+}
+
+
+SpitPublishingDialogPane* publishing_ui_publishing_dialog_get_active_pane (PublishingUIPublishingDialog* self) {
+ SpitPublishingDialogPane* result = NULL;
+ SpitPublishingDialogPane* _tmp0_ = NULL;
+ SpitPublishingDialogPane* _tmp1_ = NULL;
+#line 502 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_val_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self), NULL);
+#line 503 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->active_pane;
+#line 503 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 503 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = _tmp1_;
+#line 503 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 3232 "PublishingUI.c"
+}
+
+
+void publishing_ui_publishing_dialog_set_close_button_mode (PublishingUIPublishingDialog* self) {
+ GtkButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GtkButton* _tmp2_ = NULL;
+#line 506 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 507 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->close_cancel_button;
+#line 507 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = _ ("_Close");
+#line 507 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_button_set_label (_tmp0_, _tmp1_);
+#line 508 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = self->priv->close_cancel_button;
+#line 508 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_window_set_default (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 3252 "PublishingUI.c"
+}
+
+
+void publishing_ui_publishing_dialog_set_cancel_button_mode (PublishingUIPublishingDialog* self) {
+ GtkButton* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 511 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 512 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->close_cancel_button;
+#line 512 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = _ ("_Cancel");
+#line 512 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_button_set_label (_tmp0_, _tmp1_);
+#line 3267 "PublishingUI.c"
+}
+
+
+void publishing_ui_publishing_dialog_lock_service (PublishingUIPublishingDialog* self) {
+ GtkComboBox* _tmp0_ = NULL;
+#line 515 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 516 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->service_selector_box;
+#line 516 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), FALSE);
+#line 3279 "PublishingUI.c"
+}
+
+
+void publishing_ui_publishing_dialog_unlock_service (PublishingUIPublishingDialog* self) {
+ GtkComboBox* _tmp0_ = NULL;
+#line 519 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 520 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->service_selector_box;
+#line 520 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), TRUE);
+#line 3291 "PublishingUI.c"
+}
+
+
+void publishing_ui_publishing_dialog_install_pane (PublishingUIPublishingDialog* self, SpitPublishingDialogPane* pane) {
+ SpitPublishingDialogPane* _tmp0_ = NULL;
+ GtkBox* _tmp6_ = NULL;
+ SpitPublishingDialogPane* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ GtkWidget* _tmp9_ = NULL;
+ SpitPublishingDialogPaneGeometryOptions geometry_options = 0;
+ SpitPublishingDialogPane* _tmp10_ = NULL;
+ SpitPublishingDialogPaneGeometryOptions _tmp11_ = 0;
+ SpitPublishingDialogPaneGeometryOptions _tmp12_ = 0;
+ SpitPublishingDialogPaneGeometryOptions _tmp14_ = 0;
+ SpitPublishingDialogPane* _tmp15_ = NULL;
+ SpitPublishingDialogPane* _tmp16_ = NULL;
+ SpitPublishingDialogPane* _tmp17_ = NULL;
+#line 523 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self));
+#line 523 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_if_fail (SPIT_PUBLISHING_IS_DIALOG_PANE (pane));
+#line 524 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_debug ("PublishingUI.vala:524: PublishingDialog: install_pane( ): invoked.");
+#line 526 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = self->priv->active_pane;
+#line 526 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if (_tmp0_ != NULL) {
+#line 3319 "PublishingUI.c"
+ SpitPublishingDialogPane* _tmp1_ = NULL;
+ GtkBox* _tmp2_ = NULL;
+ SpitPublishingDialogPane* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+ GtkWidget* _tmp5_ = NULL;
+#line 527 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_debug ("PublishingUI.vala:527: PublishingDialog: install_pane( ): a pane is al" \
+"ready installed; removing it.");
+#line 529 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp1_ = self->priv->active_pane;
+#line 529 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ spit_publishing_dialog_pane_on_pane_uninstalled (_tmp1_);
+#line 530 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp2_ = self->priv->central_area_layouter;
+#line 530 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp3_ = self->priv->active_pane;
+#line 530 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp4_ = spit_publishing_dialog_pane_get_widget (_tmp3_);
+#line 530 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp5_ = _tmp4_;
+#line 530 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_container_get_type (), GtkContainer), _tmp5_);
+#line 530 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_tmp5_);
+#line 3343 "PublishingUI.c"
+ }
+#line 533 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp6_ = self->priv->central_area_layouter;
+#line 533 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp7_ = pane;
+#line 533 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp8_ = spit_publishing_dialog_pane_get_widget (_tmp7_);
+#line 533 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp9_ = _tmp8_;
+#line 533 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_box_pack_start (_tmp6_, _tmp9_, TRUE, TRUE, (guint) 0);
+#line 533 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (_tmp9_);
+#line 534 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 536 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp10_ = pane;
+#line 536 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp11_ = spit_publishing_dialog_pane_get_preferred_geometry (_tmp10_);
+#line 536 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ geometry_options = _tmp11_;
+#line 538 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp12_ = geometry_options;
+#line 538 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((_tmp12_ & SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_EXTENDED_SIZE) != 0) {
+#line 539 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_set_large_window_mode (self);
+#line 3371 "PublishingUI.c"
+ } else {
+ SpitPublishingDialogPaneGeometryOptions _tmp13_ = 0;
+#line 540 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp13_ = geometry_options;
+#line 540 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((_tmp13_ & SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_COLOSSAL_SIZE) != 0) {
+#line 541 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_set_colossal_window_mode (self);
+#line 3380 "PublishingUI.c"
+ } else {
+#line 543 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_set_standard_window_mode (self);
+#line 3384 "PublishingUI.c"
+ }
+ }
+#line 545 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp14_ = geometry_options;
+#line 545 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ if ((_tmp14_ & SPIT_PUBLISHING_DIALOG_PANE_GEOMETRY_OPTIONS_RESIZABLE) != 0) {
+#line 546 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_set_free_sizable_window_mode (self);
+#line 3393 "PublishingUI.c"
+ } else {
+#line 548 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_clear_free_sizable_window_mode (self);
+#line 3397 "PublishingUI.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp15_ = pane;
+#line 550 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp16_ = _g_object_ref0 (_tmp15_);
+#line 550 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->active_pane);
+#line 550 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->active_pane = _tmp16_;
+#line 551 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp17_ = pane;
+#line 551 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ spit_publishing_dialog_pane_on_pane_installed (_tmp17_);
+#line 3411 "PublishingUI.c"
+}
+
+
+gint publishing_ui_publishing_dialog_run (PublishingUIPublishingDialog* self) {
+ gint result = 0;
+ gint _result_ = 0;
+ gint _tmp0_ = 0;
+#line 554 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_return_val_if_fail (PUBLISHING_UI_IS_PUBLISHING_DIALOG (self), 0);
+#line 555 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_on_service_changed (self);
+#line 557 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _tmp0_ = gtk_dialog_run (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_dialog_get_type (), GtkDialog));
+#line 557 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _result_ = _tmp0_;
+#line 559 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 559 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->host = NULL;
+#line 561 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ result = _result_;
+#line 561 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ return result;
+#line 3435 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_class_init (PublishingUIPublishingDialogClass * klass) {
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ publishing_ui_publishing_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ g_type_class_add_private (klass, sizeof (PublishingUIPublishingDialogPrivate));
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (klass)->finalize = publishing_ui_publishing_dialog_finalize;
+#line 3446 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_instance_init (PublishingUIPublishingDialog * self) {
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv = PUBLISHING_UI_PUBLISHING_DIALOG_GET_PRIVATE (self);
+#line 3453 "PublishingUI.c"
+}
+
+
+static void publishing_ui_publishing_dialog_finalize (GObject* obj) {
+ PublishingUIPublishingDialog * self;
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, PUBLISHING_UI_TYPE_PUBLISHING_DIALOG, PublishingUIPublishingDialog);
+#line 147 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->service_selector_box_model);
+#line 148 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->service_selector_box);
+#line 149 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->central_area_layouter);
+#line 150 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->close_cancel_button);
+#line 151 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->active_pane);
+#line 152 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ self->priv->publishables = (_vala_array_free (self->priv->publishables, self->priv->publishables_length1, (GDestroyNotify) g_object_unref), NULL);
+#line 153 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ _g_object_unref0 (self->priv->host);
+#line 154 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ spit_pluggable_info_destroy (&self->priv->info);
+#line 132 "/home/jens/Source/shotwell/src/publishing/PublishingUI.vala"
+ G_OBJECT_CLASS (publishing_ui_publishing_dialog_parent_class)->finalize (obj);
+#line 3479 "PublishingUI.c"
+}
+
+
+GType publishing_ui_publishing_dialog_get_type (void) {
+ static volatile gsize publishing_ui_publishing_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&publishing_ui_publishing_dialog_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (PublishingUIPublishingDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) publishing_ui_publishing_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PublishingUIPublishingDialog), 0, (GInstanceInitFunc) publishing_ui_publishing_dialog_instance_init, NULL };
+ GType publishing_ui_publishing_dialog_type_id;
+ publishing_ui_publishing_dialog_type_id = g_type_register_static (gtk_dialog_get_type (), "PublishingUIPublishingDialog", &g_define_type_info, 0);
+ g_once_init_leave (&publishing_ui_publishing_dialog_type_id__volatile, publishing_ui_publishing_dialog_type_id);
+ }
+ return publishing_ui_publishing_dialog_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/publishing/mk/publishing.mk b/src/publishing/mk/publishing.mk
deleted file mode 100644
index fd31b81..0000000
--- a/src/publishing/mk/publishing.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Publishing
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := publishing
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- PublishingUI.vala \
- PublishingPluginHost.vala \
- APIGlue.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Plugins
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/searches/Branch.c b/src/searches/Branch.c
new file mode 100644
index 0000000..81618ba
--- /dev/null
+++ b/src/searches/Branch.c
@@ -0,0 +1,1655 @@
+/* Branch.c generated by valac 0.32.1, the Vala compiler
+ * generated from Branch.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define SEARCHES_TYPE_BRANCH (searches_branch_get_type ())
+#define SEARCHES_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCHES_TYPE_BRANCH, SearchesBranch))
+#define SEARCHES_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCHES_TYPE_BRANCH, SearchesBranchClass))
+#define SEARCHES_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCHES_TYPE_BRANCH))
+#define SEARCHES_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCHES_TYPE_BRANCH))
+#define SEARCHES_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCHES_TYPE_BRANCH, SearchesBranchClass))
+
+typedef struct _SearchesBranch SearchesBranch;
+typedef struct _SearchesBranchClass SearchesBranchClass;
+typedef struct _SearchesBranchPrivate SearchesBranchPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+
+#define SEARCHES_TYPE_SIDEBAR_ENTRY (searches_sidebar_entry_get_type ())
+#define SEARCHES_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry))
+#define SEARCHES_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntryClass))
+#define SEARCHES_IS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCHES_TYPE_SIDEBAR_ENTRY))
+#define SEARCHES_IS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCHES_TYPE_SIDEBAR_ENTRY))
+#define SEARCHES_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntryClass))
+
+typedef struct _SearchesSidebarEntry SearchesSidebarEntry;
+typedef struct _SearchesSidebarEntryClass SearchesSidebarEntryClass;
+
+#define TYPE_SAVED_SEARCH_TABLE (saved_search_table_get_type ())
+#define SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTable))
+#define SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+#define IS_SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_TABLE))
+#define IS_SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_TABLE))
+#define SAVED_SEARCH_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+
+typedef struct _SavedSearchTable SavedSearchTable;
+typedef struct _SavedSearchTableClass SavedSearchTableClass;
+#define _saved_search_table_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_table_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+
+#define SEARCHES_TYPE_HEADER (searches_header_get_type ())
+#define SEARCHES_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEARCHES_TYPE_HEADER, SearchesHeader))
+#define SEARCHES_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SEARCHES_TYPE_HEADER, SearchesHeaderClass))
+#define SEARCHES_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SEARCHES_TYPE_HEADER))
+#define SEARCHES_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SEARCHES_TYPE_HEADER))
+#define SEARCHES_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SEARCHES_TYPE_HEADER, SearchesHeaderClass))
+
+typedef struct _SearchesHeader SearchesHeader;
+typedef struct _SearchesHeaderClass SearchesHeaderClass;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+typedef struct _SidebarGroupingPrivate SidebarGroupingPrivate;
+
+#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
+#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
+#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
+#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))
+
+typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
+typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
+typedef struct _SidebarHeaderPrivate SidebarHeaderPrivate;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+typedef struct _SearchesHeaderPrivate SearchesHeaderPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_SAVED_SEARCH_DIALOG (saved_search_dialog_get_type ())
+#define SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialog))
+#define SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+#define IS_SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DIALOG))
+#define IS_SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DIALOG))
+#define SAVED_SEARCH_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+
+typedef struct _SavedSearchDialog SavedSearchDialog;
+typedef struct _SavedSearchDialogClass SavedSearchDialogClass;
+#define _saved_search_dialog_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_dialog_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define SIDEBAR_TYPE_DESTROYABLE_ENTRY (sidebar_destroyable_entry_get_type ())
+#define SIDEBAR_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntry))
+#define SIDEBAR_IS_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY))
+#define SIDEBAR_DESTROYABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntryIface))
+
+typedef struct _SidebarDestroyableEntry SidebarDestroyableEntry;
+typedef struct _SidebarDestroyableEntryIface SidebarDestroyableEntryIface;
+typedef struct _SearchesSidebarEntryPrivate SearchesSidebarEntryPrivate;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_SAVED_SEARCH_PAGE (saved_search_page_get_type ())
+#define SAVED_SEARCH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_PAGE, SavedSearchPage))
+#define SAVED_SEARCH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_PAGE, SavedSearchPageClass))
+#define IS_SAVED_SEARCH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_PAGE))
+#define IS_SAVED_SEARCH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_PAGE))
+#define SAVED_SEARCH_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_PAGE, SavedSearchPageClass))
+
+typedef struct _SavedSearchPage SavedSearchPage;
+typedef struct _SavedSearchPageClass SavedSearchPageClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+
+#define TYPE_RENAME_SAVED_SEARCH_COMMAND (rename_saved_search_command_get_type ())
+#define RENAME_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommand))
+#define RENAME_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommandClass))
+#define IS_RENAME_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RENAME_SAVED_SEARCH_COMMAND))
+#define IS_RENAME_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RENAME_SAVED_SEARCH_COMMAND))
+#define RENAME_SAVED_SEARCH_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RENAME_SAVED_SEARCH_COMMAND, RenameSavedSearchCommandClass))
+
+typedef struct _RenameSavedSearchCommand RenameSavedSearchCommand;
+typedef struct _RenameSavedSearchCommandClass RenameSavedSearchCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_DELETE_SAVED_SEARCH_COMMAND (delete_saved_search_command_get_type ())
+#define DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommand))
+#define DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+#define IS_DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define IS_DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define DELETE_SAVED_SEARCH_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+
+typedef struct _DeleteSavedSearchCommand DeleteSavedSearchCommand;
+typedef struct _DeleteSavedSearchCommandClass DeleteSavedSearchCommandClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+struct _SearchesBranch {
+ SidebarBranch parent_instance;
+ SearchesBranchPrivate * priv;
+};
+
+struct _SearchesBranchClass {
+ SidebarBranchClass parent_class;
+};
+
+struct _SearchesBranchPrivate {
+ GeeHashMap* entry_map;
+};
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _SidebarGrouping {
+ GObject parent_instance;
+ SidebarGroupingPrivate * priv;
+};
+
+struct _SidebarGroupingClass {
+ GObjectClass parent_class;
+};
+
+struct _SidebarEmphasizableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
+};
+
+struct _SidebarHeader {
+ SidebarGrouping parent_instance;
+ SidebarHeaderPrivate * priv;
+};
+
+struct _SidebarHeaderClass {
+ SidebarGroupingClass parent_class;
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SearchesHeader {
+ SidebarHeader parent_instance;
+ SearchesHeaderPrivate * priv;
+};
+
+struct _SearchesHeaderClass {
+ SidebarHeaderClass parent_class;
+};
+
+struct _SearchesHeaderPrivate {
+ GtkUIManager* ui;
+ GtkMenu* context_menu;
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _SidebarDestroyableEntryIface {
+ GTypeInterface parent_iface;
+ void (*destroy_source) (SidebarDestroyableEntry* self);
+};
+
+struct _SearchesSidebarEntry {
+ SidebarSimplePageEntry parent_instance;
+ SearchesSidebarEntryPrivate * priv;
+};
+
+struct _SearchesSidebarEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _SearchesSidebarEntryPrivate {
+ SavedSearch* search;
+};
+
+
+static gpointer searches_branch_parent_class = NULL;
+static gpointer searches_header_parent_class = NULL;
+static SidebarContextableIface* searches_header_sidebar_contextable_parent_iface = NULL;
+static gpointer searches_sidebar_entry_parent_class = NULL;
+static gchar* searches_sidebar_entry_single_search_icon;
+static gchar* searches_sidebar_entry_single_search_icon = NULL;
+static SidebarRenameableEntryIface* searches_sidebar_entry_sidebar_renameable_entry_parent_iface = NULL;
+static SidebarDestroyableEntryIface* searches_sidebar_entry_sidebar_destroyable_entry_parent_iface = NULL;
+
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType searches_branch_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType saved_search_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType searches_sidebar_entry_get_type (void) G_GNUC_CONST;
+#define SEARCHES_BRANCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCHES_TYPE_BRANCH, SearchesBranchPrivate))
+enum {
+ SEARCHES_BRANCH_DUMMY_PROPERTY
+};
+gpointer saved_search_table_ref (gpointer instance);
+void saved_search_table_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_table (GValue* value, gpointer v_object);
+void value_take_saved_search_table (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_table (const GValue* value);
+GType saved_search_table_get_type (void) G_GNUC_CONST;
+SavedSearchTable* saved_search_table_get_instance (void);
+static void searches_branch_on_saved_search_added (SearchesBranch* self, SavedSearch* search);
+static void _searches_branch_on_saved_search_added_saved_search_table_search_added (SavedSearchTable* _sender, SavedSearch* search, gpointer self);
+static void searches_branch_on_saved_search_removed (SearchesBranch* self, SavedSearch* search);
+static void _searches_branch_on_saved_search_removed_saved_search_table_search_removed (SavedSearchTable* _sender, SavedSearch* search, gpointer self);
+SearchesBranch* searches_branch_new (void);
+SearchesBranch* searches_branch_construct (GType object_type);
+SearchesHeader* searches_header_new (void);
+SearchesHeader* searches_header_construct (GType object_type);
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+GType searches_header_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+static gint searches_branch_comparator (SidebarEntry* a, SidebarEntry* b);
+static gint _searches_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+GeeCollection* saved_search_table_get_all (SavedSearchTable* self);
+SearchesSidebarEntry* searches_branch_get_entry_for_saved_search (SearchesBranch* self, SavedSearch* search);
+gint saved_search_compare_names (void* a, void* b);
+SavedSearch* searches_sidebar_entry_for_saved_search (SearchesSidebarEntry* self);
+SearchesSidebarEntry* searches_sidebar_entry_new (SavedSearch* search);
+SearchesSidebarEntry* searches_sidebar_entry_construct (GType object_type, SavedSearch* search);
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry);
+static void searches_branch_finalize (GObject* obj);
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+#define SEARCHES_HEADER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCHES_TYPE_HEADER, SearchesHeaderPrivate))
+enum {
+ SEARCHES_HEADER_DUMMY_PROPERTY
+};
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized);
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized);
+static void searches_header_setup_context_menu (SearchesHeader* self);
+#define TRANSLATABLE "translatable"
+static void searches_header_on_new_search (SearchesHeader* self);
+static void _searches_header_on_new_search_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add146 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+GFile* resources_get_ui (const gchar* filename);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void application_panic (Application* self);
+static GtkMenu* searches_header_real_get_sidebar_context_menu (SidebarContextable* base, GdkEventButton* event);
+SavedSearchDialog* saved_search_dialog_new (void);
+SavedSearchDialog* saved_search_dialog_construct (GType object_type);
+gpointer saved_search_dialog_ref (gpointer instance);
+void saved_search_dialog_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_dialog (GValue* value, gpointer v_object);
+void value_take_saved_search_dialog (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_dialog (const GValue* value);
+GType saved_search_dialog_get_type (void) G_GNUC_CONST;
+void saved_search_dialog_show (SavedSearchDialog* self);
+static void searches_header_finalize (GObject* obj);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_destroyable_entry_get_type (void) G_GNUC_CONST;
+#define SEARCHES_SIDEBAR_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntryPrivate))
+enum {
+ SEARCHES_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+void searches_sidebar_entry_init (void);
+void searches_sidebar_entry_terminate (void);
+static gchar* searches_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+gchar* data_object_get_name (DataObject* self);
+static gchar* searches_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static Page* searches_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+SavedSearchPage* saved_search_page_new (SavedSearch* search);
+SavedSearchPage* saved_search_page_construct (GType object_type, SavedSearch* search);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType saved_search_page_get_type (void) G_GNUC_CONST;
+static gboolean searches_sidebar_entry_real_is_user_renameable (SidebarRenameableEntry* base);
+static void searches_sidebar_entry_real_rename (SidebarRenameableEntry* base, const gchar* new_name);
+gboolean saved_search_table_exists (SavedSearchTable* self, const gchar* search_name);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+RenameSavedSearchCommand* rename_saved_search_command_new (SavedSearch* search, const gchar* new_name);
+RenameSavedSearchCommand* rename_saved_search_command_construct (GType object_type, SavedSearch* search, const gchar* new_name);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+GType rename_saved_search_command_get_type (void) G_GNUC_CONST;
+gchar* resources_rename_search_exists_message (const gchar* name);
+static void searches_sidebar_entry_real_destroy_source (SidebarDestroyableEntry* base);
+gboolean dialogs_confirm_delete_saved_search (SavedSearch* search);
+DeleteSavedSearchCommand* delete_saved_search_command_new (SavedSearch* search);
+DeleteSavedSearchCommand* delete_saved_search_command_construct (GType object_type, SavedSearch* search);
+GType delete_saved_search_command_get_type (void) G_GNUC_CONST;
+static void searches_sidebar_entry_finalize (GObject* obj);
+
+
+static void _searches_branch_on_saved_search_added_saved_search_table_search_added (SavedSearchTable* _sender, SavedSearch* search, gpointer self) {
+#line 28 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_branch_on_saved_search_added ((SearchesBranch*) self, search);
+#line 637 "Branch.c"
+}
+
+
+static void _searches_branch_on_saved_search_removed_saved_search_table_search_removed (SavedSearchTable* _sender, SavedSearch* search, gpointer self) {
+#line 29 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_branch_on_saved_search_removed ((SearchesBranch*) self, search);
+#line 644 "Branch.c"
+}
+
+
+static gint _searches_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = searches_branch_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 12 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 653 "Branch.c"
+}
+
+
+SearchesBranch* searches_branch_construct (GType object_type) {
+ SearchesBranch * self = NULL;
+ SearchesHeader* _tmp0_ = NULL;
+ SearchesHeader* _tmp1_ = NULL;
+ SavedSearchTable* _tmp13_ = NULL;
+ SavedSearchTable* _tmp14_ = NULL;
+ SavedSearchTable* _tmp15_ = NULL;
+ SavedSearchTable* _tmp16_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = searches_header_new ();
+#line 12 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 12 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = (SearchesBranch*) sidebar_branch_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, SIDEBAR_TYPE_ENTRY, SidebarEntry), (SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY | SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD) | SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD, _searches_branch_comparator_gcompare_func, NULL);
+#line 12 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 673 "Branch.c"
+ {
+ GeeIterator* _search_it = NULL;
+ SavedSearchTable* _tmp2_ = NULL;
+ SavedSearchTable* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_ = saved_search_table_get_instance ();
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = saved_search_table_get_all (_tmp3_);
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp7_ = _tmp6_;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (_tmp5_);
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _saved_search_table_unref0 (_tmp3_);
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _search_it = _tmp7_;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ while (TRUE) {
+#line 702 "Branch.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ SavedSearch* search = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ SavedSearch* _tmp12_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp8_ = _search_it;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if (!_tmp9_) {
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ break;
+#line 717 "Branch.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp10_ = _search_it;
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ search = (SavedSearch*) _tmp11_;
+#line 20 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp12_ = search;
+#line 20 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_branch_on_saved_search_added (self, _tmp12_);
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (search);
+#line 731 "Branch.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (_search_it);
+#line 735 "Branch.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp13_ = saved_search_table_get_instance ();
+#line 23 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 23 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_signal_connect_object (_tmp14_, "search-added", (GCallback) _searches_branch_on_saved_search_added_saved_search_table_search_added, self, 0);
+#line 23 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _saved_search_table_unref0 (_tmp14_);
+#line 24 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp15_ = saved_search_table_get_instance ();
+#line 24 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp16_ = _tmp15_;
+#line 24 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_signal_connect_object (_tmp16_, "search-removed", (GCallback) _searches_branch_on_saved_search_removed_saved_search_table_search_removed, self, 0);
+#line 24 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _saved_search_table_unref0 (_tmp16_);
+#line 11 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return self;
+#line 755 "Branch.c"
+}
+
+
+SearchesBranch* searches_branch_new (void) {
+#line 11 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return searches_branch_construct (SEARCHES_TYPE_BRANCH);
+#line 762 "Branch.c"
+}
+
+
+SearchesSidebarEntry* searches_branch_get_entry_for_saved_search (SearchesBranch* self, SavedSearch* search) {
+ SearchesSidebarEntry* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 32 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_val_if_fail (SEARCHES_IS_BRANCH (self), NULL);
+#line 32 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), NULL);
+#line 33 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 33 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = search;
+#line 33 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = (SearchesSidebarEntry*) _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 785 "Branch.c"
+}
+
+
+static gint searches_branch_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SavedSearch* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SavedSearch* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 36 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 36 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 37 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = a;
+#line 37 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = b;
+#line 37 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 38 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = 0;
+#line 38 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 812 "Branch.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_ = a;
+#line 40 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = searches_sidebar_entry_for_saved_search (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry));
+#line 40 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = b;
+#line 40 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp5_ = searches_sidebar_entry_for_saved_search (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry));
+#line 40 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp6_ = saved_search_compare_names (_tmp3_, _tmp5_);
+#line 40 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = _tmp6_;
+#line 40 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 828 "Branch.c"
+}
+
+
+static void searches_branch_on_saved_search_added (SearchesBranch* self, SavedSearch* search) {
+ SearchesSidebarEntry* entry = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SearchesSidebarEntry* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ SavedSearch* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+#line 44 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_if_fail (SEARCHES_IS_BRANCH (self));
+#line 44 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 45 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_debug ("Branch.vala:45: search added");
+#line 46 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = search;
+#line 46 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = searches_sidebar_entry_new (_tmp0_);
+#line 46 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ entry = _tmp1_;
+#line 47 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_ = self->priv->entry_map;
+#line 47 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = search;
+#line 47 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_, entry);
+#line 48 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 48 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 48 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp5_, G_TYPE_CHECK_INSTANCE_CAST (entry, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 48 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (_tmp5_);
+#line 44 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (entry);
+#line 868 "Branch.c"
+}
+
+
+static void searches_branch_on_saved_search_removed (SearchesBranch* self, SavedSearch* search) {
+ SearchesSidebarEntry* entry = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 51 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_if_fail (SEARCHES_IS_BRANCH (self));
+#line 51 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 52 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_debug ("Branch.vala:52: search removed");
+#line 53 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 53 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = search;
+#line 53 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 53 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ entry = (SearchesSidebarEntry*) _tmp2_;
+#line 54 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _vala_assert (entry != NULL, "entry != null");
+#line 56 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = self->priv->entry_map;
+#line 56 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = search;
+#line 56 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp5_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_, NULL);
+#line 56 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ is_removed = _tmp5_;
+#line 57 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _vala_assert (is_removed, "is_removed");
+#line 59 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (entry, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 51 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (entry);
+#line 911 "Branch.c"
+}
+
+
+static void searches_branch_class_init (SearchesBranchClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_branch_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_type_class_add_private (klass, sizeof (SearchesBranchPrivate));
+#line 7 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = searches_branch_finalize;
+#line 922 "Branch.c"
+}
+
+
+static void searches_branch_instance_init (SearchesBranch * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv = SEARCHES_BRANCH_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_SAVED_SEARCH, (GBoxedCopyFunc) g_object_ref, g_object_unref, SEARCHES_TYPE_SIDEBAR_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 8 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv->entry_map = _tmp0_;
+#line 934 "Branch.c"
+}
+
+
+static void searches_branch_finalize (GObject* obj) {
+ SearchesBranch * self;
+ SavedSearchTable* _tmp0_ = NULL;
+ SavedSearchTable* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ SavedSearchTable* _tmp3_ = NULL;
+ SavedSearchTable* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCHES_TYPE_BRANCH, SearchesBranch);
+#line 28 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = saved_search_table_get_instance ();
+#line 28 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 28 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_signal_parse_name ("search-added", TYPE_SAVED_SEARCH_TABLE, &_tmp2_, NULL, FALSE);
+#line 28 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _searches_branch_on_saved_search_added_saved_search_table_search_added, self);
+#line 28 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _saved_search_table_unref0 (_tmp1_);
+#line 29 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = saved_search_table_get_instance ();
+#line 29 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 29 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_signal_parse_name ("search-removed", TYPE_SAVED_SEARCH_TABLE, &_tmp5_, NULL, FALSE);
+#line 29 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _searches_branch_on_saved_search_removed_saved_search_table_search_removed, self);
+#line 29 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _saved_search_table_unref0 (_tmp4_);
+#line 8 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (self->priv->entry_map);
+#line 7 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ G_OBJECT_CLASS (searches_branch_parent_class)->finalize (obj);
+#line 972 "Branch.c"
+}
+
+
+GType searches_branch_get_type (void) {
+ static volatile gsize searches_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&searches_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchesBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) searches_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchesBranch), 0, (GInstanceInitFunc) searches_branch_instance_init, NULL };
+ GType searches_branch_type_id;
+ searches_branch_type_id = g_type_register_static (SIDEBAR_TYPE_BRANCH, "SearchesBranch", &g_define_type_info, 0);
+ g_once_init_leave (&searches_branch_type_id__volatile, searches_branch_type_id);
+ }
+ return searches_branch_type_id__volatile;
+}
+
+
+SearchesHeader* searches_header_construct (GType object_type) {
+ SearchesHeader * self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = _ ("Saved Searches");
+#line 68 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = (SearchesHeader*) sidebar_header_construct (object_type, _tmp0_, TRUE);
+#line 69 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_header_setup_context_menu (self);
+#line 67 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return self;
+#line 999 "Branch.c"
+}
+
+
+SearchesHeader* searches_header_new (void) {
+#line 67 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return searches_header_construct (SEARCHES_TYPE_HEADER);
+#line 1006 "Branch.c"
+}
+
+
+static void _searches_header_on_new_search_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_header_on_new_search ((SearchesHeader*) self);
+#line 1013 "Branch.c"
+}
+
+
+static void _vala_array_add146 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if ((*length) == (*size)) {
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1024 "Branch.c"
+ }
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ (*array)[(*length)++] = *value;
+#line 1028 "Branch.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 91 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1035 "Branch.c"
+}
+
+
+static void searches_header_setup_context_menu (SearchesHeader* self) {
+ GtkActionGroup* group = NULL;
+ GtkActionGroup* _tmp0_ = NULL;
+ GtkActionEntry* actions = NULL;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry new_search = {0};
+ GtkActionEntry _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+ GtkActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkUIManager* _tmp7_ = NULL;
+ GFile* ui_file = NULL;
+ GFile* _tmp8_ = NULL;
+ GtkUIManager* _tmp20_ = NULL;
+ GtkWidget* _tmp21_ = NULL;
+ GtkMenu* _tmp22_ = NULL;
+ GtkUIManager* _tmp23_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_if_fail (SEARCHES_IS_HEADER (self));
+#line 73 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = gtk_action_group_new ("SidebarDefault");
+#line 73 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ group = _tmp0_;
+#line 74 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = g_new0 (GtkActionEntry, 0);
+#line 74 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ actions = _tmp1_;
+#line 74 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ actions_length1 = 0;
+#line 74 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _actions_size_ = actions_length1;
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_.name = "CommonNewSearch";
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_.stock_id = NULL;
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_.accelerator = NULL;
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_.tooltip = NULL;
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_.callback = (GCallback) _searches_header_on_new_search_gtk_action_callback;
+#line 76 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ new_search = _tmp2_;
+#line 77 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = _ ("Ne_w Saved Search...");
+#line 77 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ new_search.label = _tmp3_;
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = actions;
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4__length1 = actions_length1;
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp5_ = new_search;
+#line 78 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _vala_array_add146 (&actions, &actions_length1, &_actions_size_, &_tmp5_);
+#line 80 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp6_ = actions;
+#line 80 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp6__length1 = actions_length1;
+#line 80 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ gtk_action_group_add_actions (group, _tmp6_, _tmp6__length1, self);
+#line 81 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp7_ = self->priv->ui;
+#line 81 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ gtk_ui_manager_insert_action_group (_tmp7_, group, 0);
+#line 83 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp8_ = resources_get_ui ("search_sidebar_context.ui");
+#line 83 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ ui_file = _tmp8_;
+#line 1116 "Branch.c"
+ {
+ GtkUIManager* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp9_ = self->priv->ui;
+#line 85 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp10_ = g_file_get_path (ui_file);
+#line 85 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp11_ = _tmp10_;
+#line 85 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ gtk_ui_manager_add_ui_from_file (_tmp9_, _tmp11_, &_inner_error_);
+#line 85 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_free0 (_tmp11_);
+#line 85 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1133 "Branch.c"
+ goto __catch73_g_error;
+ }
+ }
+ goto __finally73;
+ __catch73_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ Application* _tmp18_ = NULL;
+ Application* _tmp19_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ err = _inner_error_;
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _inner_error_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp12_ = g_file_get_path (ui_file);
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp13_ = _tmp12_;
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp14_ = err;
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp15_ = _tmp14_->message;
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp16_ = g_strdup_printf ("Error loading UI file %s: %s", _tmp13_, _tmp15_);
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp17_ = _tmp16_;
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ app_window_error_message (_tmp17_, NULL);
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_free0 (_tmp17_);
+#line 87 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_free0 (_tmp13_);
+#line 89 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp18_ = application_get_instance ();
+#line 89 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp19_ = _tmp18_;
+#line 89 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ application_panic (_tmp19_);
+#line 89 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _application_unref0 (_tmp19_);
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_error_free0 (err);
+#line 1181 "Branch.c"
+ }
+ __finally73:
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (ui_file);
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ actions = (g_free (actions), NULL);
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (group);
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_clear_error (&_inner_error_);
+#line 84 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return;
+#line 1198 "Branch.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp20_ = self->priv->ui;
+#line 91 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp21_ = gtk_ui_manager_get_widget (_tmp20_, "/SidebarSearchContextMenu");
+#line 91 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp22_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_menu_get_type (), GtkMenu));
+#line 91 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (self->priv->context_menu);
+#line 91 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv->context_menu = _tmp22_;
+#line 93 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp23_ = self->priv->ui;
+#line 93 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ gtk_ui_manager_ensure_update (_tmp23_);
+#line 72 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (ui_file);
+#line 72 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ actions = (g_free (actions), NULL);
+#line 72 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (group);
+#line 1220 "Branch.c"
+}
+
+
+static GtkMenu* searches_header_real_get_sidebar_context_menu (SidebarContextable* base, GdkEventButton* event) {
+ SearchesHeader * self;
+ GtkMenu* result = NULL;
+ GtkMenu* _tmp0_ = NULL;
+ GtkMenu* _tmp1_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SEARCHES_TYPE_HEADER, SearchesHeader);
+#line 97 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = self->priv->context_menu;
+#line 97 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 97 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = _tmp1_;
+#line 97 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 1239 "Branch.c"
+}
+
+
+static void searches_header_on_new_search (SearchesHeader* self) {
+ SavedSearchDialog* _tmp0_ = NULL;
+ SavedSearchDialog* _tmp1_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_if_fail (SEARCHES_IS_HEADER (self));
+#line 101 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = saved_search_dialog_new ();
+#line 101 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 101 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ saved_search_dialog_show (_tmp1_);
+#line 101 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _saved_search_dialog_unref0 (_tmp1_);
+#line 1256 "Branch.c"
+}
+
+
+static void searches_header_class_init (SearchesHeaderClass * klass) {
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_header_parent_class = g_type_class_peek_parent (klass);
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_type_class_add_private (klass, sizeof (SearchesHeaderPrivate));
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = searches_header_finalize;
+#line 1267 "Branch.c"
+}
+
+
+static void searches_header_sidebar_contextable_interface_init (SidebarContextableIface * iface) {
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_header_sidebar_contextable_parent_iface = g_type_interface_peek_parent (iface);
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ iface->get_sidebar_context_menu = (GtkMenu* (*)(SidebarContextable*, GdkEventButton*)) searches_header_real_get_sidebar_context_menu;
+#line 1276 "Branch.c"
+}
+
+
+static void searches_header_instance_init (SearchesHeader * self) {
+ GtkUIManager* _tmp0_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv = SEARCHES_HEADER_GET_PRIVATE (self);
+#line 64 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = gtk_ui_manager_new ();
+#line 64 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv->ui = _tmp0_;
+#line 65 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv->context_menu = NULL;
+#line 1290 "Branch.c"
+}
+
+
+static void searches_header_finalize (GObject* obj) {
+ SearchesHeader * self;
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCHES_TYPE_HEADER, SearchesHeader);
+#line 64 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (self->priv->ui);
+#line 65 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (self->priv->context_menu);
+#line 63 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ G_OBJECT_CLASS (searches_header_parent_class)->finalize (obj);
+#line 1304 "Branch.c"
+}
+
+
+GType searches_header_get_type (void) {
+ static volatile gsize searches_header_type_id__volatile = 0;
+ if (g_once_init_enter (&searches_header_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchesHeaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) searches_header_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchesHeader), 0, (GInstanceInitFunc) searches_header_instance_init, NULL };
+ static const GInterfaceInfo sidebar_contextable_info = { (GInterfaceInitFunc) searches_header_sidebar_contextable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType searches_header_type_id;
+ searches_header_type_id = g_type_register_static (SIDEBAR_TYPE_HEADER, "SearchesHeader", &g_define_type_info, 0);
+ g_type_add_interface_static (searches_header_type_id, SIDEBAR_TYPE_CONTEXTABLE, &sidebar_contextable_info);
+ g_once_init_leave (&searches_header_type_id__volatile, searches_header_type_id);
+ }
+ return searches_header_type_id__volatile;
+}
+
+
+SearchesSidebarEntry* searches_sidebar_entry_construct (GType object_type, SavedSearch* search) {
+ SearchesSidebarEntry * self = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), NULL);
+#line 111 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = (SearchesSidebarEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 112 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = search;
+#line 112 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 112 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (self->priv->search);
+#line 112 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv->search = _tmp1_;
+#line 111 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return self;
+#line 1340 "Branch.c"
+}
+
+
+SearchesSidebarEntry* searches_sidebar_entry_new (SavedSearch* search) {
+#line 111 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return searches_sidebar_entry_construct (SEARCHES_TYPE_SIDEBAR_ENTRY, search);
+#line 1347 "Branch.c"
+}
+
+
+void searches_sidebar_entry_init (void) {
+}
+
+
+void searches_sidebar_entry_terminate (void) {
+}
+
+
+SavedSearch* searches_sidebar_entry_for_saved_search (SearchesSidebarEntry* self) {
+ SavedSearch* result = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_val_if_fail (SEARCHES_IS_SIDEBAR_ENTRY (self), NULL);
+#line 122 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = self->priv->search;
+#line 122 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 122 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = _tmp1_;
+#line 122 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 1373 "Branch.c"
+}
+
+
+static gchar* searches_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ SearchesSidebarEntry * self;
+ gchar* result = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry);
+#line 126 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = self->priv->search;
+#line 126 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 126 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = _tmp1_;
+#line 126 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 1392 "Branch.c"
+}
+
+
+static gchar* searches_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ SearchesSidebarEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry);
+#line 130 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = searches_sidebar_entry_single_search_icon;
+#line 130 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 130 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = _tmp1_;
+#line 130 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 1411 "Branch.c"
+}
+
+
+static Page* searches_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ SearchesSidebarEntry * self;
+ Page* result = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearchPage* _tmp1_ = NULL;
+#line 133 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry);
+#line 134 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = self->priv->search;
+#line 134 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = saved_search_page_new (_tmp0_);
+#line 134 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_object_ref_sink (_tmp1_);
+#line 134 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 134 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 1432 "Branch.c"
+}
+
+
+static gboolean searches_sidebar_entry_real_is_user_renameable (SidebarRenameableEntry* base) {
+ SearchesSidebarEntry * self;
+ gboolean result = FALSE;
+#line 137 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry);
+#line 138 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ result = TRUE;
+#line 138 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ return result;
+#line 1445 "Branch.c"
+}
+
+
+static void searches_sidebar_entry_real_rename (SidebarRenameableEntry* base, const gchar* new_name) {
+ SearchesSidebarEntry * self;
+ SavedSearchTable* _tmp0_ = NULL;
+ SavedSearchTable* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 141 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry);
+#line 141 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_return_if_fail (new_name != NULL);
+#line 142 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = saved_search_table_get_instance ();
+#line 142 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 142 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_ = new_name;
+#line 142 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = saved_search_table_exists (_tmp1_, _tmp2_);
+#line 142 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = !_tmp3_;
+#line 142 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _saved_search_table_unref0 (_tmp1_);
+#line 142 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if (_tmp4_) {
+#line 1474 "Branch.c"
+ CommandManager* _tmp5_ = NULL;
+ CommandManager* _tmp6_ = NULL;
+ SavedSearch* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ RenameSavedSearchCommand* _tmp9_ = NULL;
+ RenameSavedSearchCommand* _tmp10_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp5_ = app_window_get_command_manager ();
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp7_ = self->priv->search;
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp8_ = new_name;
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp9_ = rename_saved_search_command_new (_tmp7_, _tmp8_);
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp10_ = _tmp9_;
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ command_manager_execute (_tmp6_, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_COMMAND, Command));
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (_tmp10_);
+#line 143 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _command_manager_unref0 (_tmp6_);
+#line 1499 "Branch.c"
+ } else {
+ const gchar* _tmp11_ = NULL;
+ SavedSearch* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 144 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp11_ = new_name;
+#line 144 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp12_ = self->priv->search;
+#line 144 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp13_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_OBJECT, DataObject));
+#line 144 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp14_ = _tmp13_;
+#line 144 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp15_ = g_strcmp0 (_tmp11_, _tmp14_) != 0;
+#line 144 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_free0 (_tmp14_);
+#line 144 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if (_tmp15_) {
+#line 1520 "Branch.c"
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp16_ = new_name;
+#line 145 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp17_ = resources_rename_search_exists_message (_tmp16_);
+#line 145 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp18_ = _tmp17_;
+#line 145 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ app_window_error_message (_tmp18_, NULL);
+#line 145 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_free0 (_tmp18_);
+#line 1534 "Branch.c"
+ }
+ }
+}
+
+
+static void searches_sidebar_entry_real_destroy_source (SidebarDestroyableEntry* base) {
+ SearchesSidebarEntry * self;
+ SavedSearch* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 148 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry);
+#line 149 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = self->priv->search;
+#line 149 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp1_ = dialogs_confirm_delete_saved_search (_tmp0_);
+#line 149 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ if (_tmp1_) {
+#line 1552 "Branch.c"
+ CommandManager* _tmp2_ = NULL;
+ CommandManager* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+ DeleteSavedSearchCommand* _tmp5_ = NULL;
+ DeleteSavedSearchCommand* _tmp6_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp2_ = app_window_get_command_manager ();
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp4_ = self->priv->search;
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp5_ = delete_saved_search_command_new (_tmp4_);
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ command_manager_execute (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_COMMAND, Command));
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (_tmp6_);
+#line 150 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _command_manager_unref0 (_tmp3_);
+#line 1574 "Branch.c"
+ }
+}
+
+
+static void searches_sidebar_entry_class_init (SearchesSidebarEntryClass * klass) {
+ gchar* _tmp0_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ g_type_class_add_private (klass, sizeof (SearchesSidebarEntryPrivate));
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = searches_sidebar_entry_real_get_sidebar_name;
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = searches_sidebar_entry_real_get_sidebar_icon;
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = searches_sidebar_entry_real_create_page;
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = searches_sidebar_entry_finalize;
+#line 107 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _tmp0_ = g_strdup ("find");
+#line 107 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_sidebar_entry_single_search_icon = _tmp0_;
+#line 1597 "Branch.c"
+}
+
+
+static void searches_sidebar_entry_sidebar_renameable_entry_interface_init (SidebarRenameableEntryIface * iface) {
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_sidebar_entry_sidebar_renameable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ iface->is_user_renameable = (gboolean (*)(SidebarRenameableEntry*)) searches_sidebar_entry_real_is_user_renameable;
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ iface->rename = (void (*)(SidebarRenameableEntry*, const gchar*)) searches_sidebar_entry_real_rename;
+#line 1608 "Branch.c"
+}
+
+
+static void searches_sidebar_entry_sidebar_destroyable_entry_interface_init (SidebarDestroyableEntryIface * iface) {
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ searches_sidebar_entry_sidebar_destroyable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ iface->destroy_source = (void (*)(SidebarDestroyableEntry*)) searches_sidebar_entry_real_destroy_source;
+#line 1617 "Branch.c"
+}
+
+
+static void searches_sidebar_entry_instance_init (SearchesSidebarEntry * self) {
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self->priv = SEARCHES_SIDEBAR_ENTRY_GET_PRIVATE (self);
+#line 1624 "Branch.c"
+}
+
+
+static void searches_sidebar_entry_finalize (GObject* obj) {
+ SearchesSidebarEntry * self;
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEARCHES_TYPE_SIDEBAR_ENTRY, SearchesSidebarEntry);
+#line 109 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ _g_object_unref0 (self->priv->search);
+#line 105 "/home/jens/Source/shotwell/src/searches/Branch.vala"
+ G_OBJECT_CLASS (searches_sidebar_entry_parent_class)->finalize (obj);
+#line 1636 "Branch.c"
+}
+
+
+GType searches_sidebar_entry_get_type (void) {
+ static volatile gsize searches_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&searches_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchesSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) searches_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchesSidebarEntry), 0, (GInstanceInitFunc) searches_sidebar_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_renameable_entry_info = { (GInterfaceInitFunc) searches_sidebar_entry_sidebar_renameable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_destroyable_entry_info = { (GInterfaceInitFunc) searches_sidebar_entry_sidebar_destroyable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType searches_sidebar_entry_type_id;
+ searches_sidebar_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "SearchesSidebarEntry", &g_define_type_info, 0);
+ g_type_add_interface_static (searches_sidebar_entry_type_id, SIDEBAR_TYPE_RENAMEABLE_ENTRY, &sidebar_renameable_entry_info);
+ g_type_add_interface_static (searches_sidebar_entry_type_id, SIDEBAR_TYPE_DESTROYABLE_ENTRY, &sidebar_destroyable_entry_info);
+ g_once_init_leave (&searches_sidebar_entry_type_id__volatile, searches_sidebar_entry_type_id);
+ }
+ return searches_sidebar_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/searches/SavedSearchDialog.c b/src/searches/SavedSearchDialog.c
new file mode 100644
index 0000000..4731710
--- /dev/null
+++ b/src/searches/SavedSearchDialog.c
@@ -0,0 +1,6493 @@
+/* SavedSearchDialog.c generated by valac 0.32.1, the Vala compiler
+ * generated from SavedSearchDialog.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* This dialog displays a boolean search configuration.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SAVED_SEARCH_DIALOG (saved_search_dialog_get_type ())
+#define SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialog))
+#define SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+#define IS_SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DIALOG))
+#define IS_SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DIALOG))
+#define SAVED_SEARCH_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+
+typedef struct _SavedSearchDialog SavedSearchDialog;
+typedef struct _SavedSearchDialogClass SavedSearchDialogClass;
+typedef struct _SavedSearchDialogPrivate SavedSearchDialogPrivate;
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER (saved_search_dialog_search_row_container_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, SavedSearchDialogSearchRowContainer))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, SavedSearchDialogSearchRowContainerClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, SavedSearchDialogSearchRowContainerClass))
+
+typedef struct _SavedSearchDialogSearchRowContainer SavedSearchDialogSearchRowContainer;
+typedef struct _SavedSearchDialogSearchRowContainerClass SavedSearchDialogSearchRowContainerClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_SAVED_SEARCH_TABLE (saved_search_table_get_type ())
+#define SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTable))
+#define SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+#define IS_SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_TABLE))
+#define IS_SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_TABLE))
+#define SAVED_SEARCH_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+
+typedef struct _SavedSearchTable SavedSearchTable;
+typedef struct _SavedSearchTableClass SavedSearchTableClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _saved_search_table_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_table_unref (var), NULL)))
+#define _saved_search_dialog_search_row_container_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_dialog_search_row_container_unref (var), NULL)))
+
+#define TYPE_SEARCH_OPERATOR (search_operator_get_type ())
+
+#define TYPE_SEARCH_CONDITION (search_condition_get_type ())
+#define SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION, SearchCondition))
+#define SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION, SearchConditionClass))
+#define IS_SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION))
+#define IS_SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION))
+#define SEARCH_CONDITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION, SearchConditionClass))
+
+typedef struct _SearchCondition SearchCondition;
+typedef struct _SearchConditionClass SearchConditionClass;
+#define _search_condition_unref0(var) ((var == NULL) ? NULL : (var = (search_condition_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+typedef struct _SavedSearchDialogSearchRowContainerPrivate SavedSearchDialogSearchRowContainerPrivate;
+
+#define SEARCH_CONDITION_TYPE_SEARCH_TYPE (search_condition_search_type_get_type ())
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW (saved_search_dialog_search_row_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRowClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRowClass))
+
+typedef struct _SavedSearchDialogSearchRow SavedSearchDialogSearchRow;
+typedef struct _SavedSearchDialogSearchRowClass SavedSearchDialogSearchRowClass;
+#define _saved_search_dialog_search_row_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_dialog_search_row_unref (var), NULL)))
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT (saved_search_dialog_search_row_text_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowText))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowTextClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowTextClass))
+
+typedef struct _SavedSearchDialogSearchRowText SavedSearchDialogSearchRowText;
+typedef struct _SavedSearchDialogSearchRowTextClass SavedSearchDialogSearchRowTextClass;
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE (saved_search_dialog_search_row_media_type_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaType))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaTypeClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MEDIA_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaTypeClass))
+
+typedef struct _SavedSearchDialogSearchRowMediaType SavedSearchDialogSearchRowMediaType;
+typedef struct _SavedSearchDialogSearchRowMediaTypeClass SavedSearchDialogSearchRowMediaTypeClass;
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED (saved_search_dialog_search_row_flagged_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlagged))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlaggedClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_FLAGGED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlaggedClass))
+
+typedef struct _SavedSearchDialogSearchRowFlagged SavedSearchDialogSearchRowFlagged;
+typedef struct _SavedSearchDialogSearchRowFlaggedClass SavedSearchDialogSearchRowFlaggedClass;
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED (saved_search_dialog_search_row_modified_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModified))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModifiedClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MODIFIED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModifiedClass))
+
+typedef struct _SavedSearchDialogSearchRowModified SavedSearchDialogSearchRowModified;
+typedef struct _SavedSearchDialogSearchRowModifiedClass SavedSearchDialogSearchRowModifiedClass;
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING (saved_search_dialog_search_row_rating_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRating))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRatingClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_RATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRatingClass))
+
+typedef struct _SavedSearchDialogSearchRowRating SavedSearchDialogSearchRowRating;
+typedef struct _SavedSearchDialogSearchRowRatingClass SavedSearchDialogSearchRowRatingClass;
+
+#define SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE (saved_search_dialog_search_row_date_get_type ())
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDate))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDateClass))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE))
+#define SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE))
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDateClass))
+
+typedef struct _SavedSearchDialogSearchRowDate SavedSearchDialogSearchRowDate;
+typedef struct _SavedSearchDialogSearchRowDateClass SavedSearchDialogSearchRowDateClass;
+typedef struct _SavedSearchDialogParamSpecSearchRowContainer SavedSearchDialogParamSpecSearchRowContainer;
+typedef struct _SavedSearchDialogSearchRowPrivate SavedSearchDialogSearchRowPrivate;
+typedef struct _SavedSearchDialogParamSpecSearchRow SavedSearchDialogParamSpecSearchRow;
+typedef struct _SavedSearchDialogSearchRowTextPrivate SavedSearchDialogSearchRowTextPrivate;
+
+#define SEARCH_CONDITION_TEXT_TYPE_CONTEXT (search_condition_text_context_get_type ())
+
+#define TYPE_SEARCH_CONDITION_TEXT (search_condition_text_get_type ())
+#define SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionText))
+#define SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))
+#define IS_SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_TEXT))
+#define IS_SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_TEXT))
+#define SEARCH_CONDITION_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))
+
+typedef struct _SearchConditionText SearchConditionText;
+typedef struct _SearchConditionTextClass SearchConditionTextClass;
+typedef struct _SavedSearchDialogSearchRowMediaTypePrivate SavedSearchDialogSearchRowMediaTypePrivate;
+
+#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_CONTEXT (search_condition_media_type_context_get_type ())
+
+#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_MEDIA_TYPE (search_condition_media_type_media_type_get_type ())
+
+#define TYPE_SEARCH_CONDITION_MEDIA_TYPE (search_condition_media_type_get_type ())
+#define SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType))
+#define SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))
+#define IS_SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
+#define IS_SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
+#define SEARCH_CONDITION_MEDIA_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))
+
+typedef struct _SearchConditionMediaType SearchConditionMediaType;
+typedef struct _SearchConditionMediaTypeClass SearchConditionMediaTypeClass;
+typedef struct _SavedSearchDialogSearchRowModifiedPrivate SavedSearchDialogSearchRowModifiedPrivate;
+
+#define SEARCH_CONDITION_MODIFIED_TYPE_CONTEXT (search_condition_modified_context_get_type ())
+
+#define SEARCH_CONDITION_MODIFIED_TYPE_STATE (search_condition_modified_state_get_type ())
+
+#define TYPE_SEARCH_CONDITION_MODIFIED (search_condition_modified_get_type ())
+#define SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified))
+#define SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))
+#define IS_SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MODIFIED))
+#define IS_SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MODIFIED))
+#define SEARCH_CONDITION_MODIFIED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))
+
+typedef struct _SearchConditionModified SearchConditionModified;
+typedef struct _SearchConditionModifiedClass SearchConditionModifiedClass;
+typedef struct _SavedSearchDialogSearchRowFlaggedPrivate SavedSearchDialogSearchRowFlaggedPrivate;
+
+#define SEARCH_CONDITION_FLAGGED_TYPE_STATE (search_condition_flagged_state_get_type ())
+
+#define TYPE_SEARCH_CONDITION_FLAGGED (search_condition_flagged_get_type ())
+#define SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged))
+#define SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))
+#define IS_SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_FLAGGED))
+#define IS_SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_FLAGGED))
+#define SEARCH_CONDITION_FLAGGED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))
+
+typedef struct _SearchConditionFlagged SearchConditionFlagged;
+typedef struct _SearchConditionFlaggedClass SearchConditionFlaggedClass;
+typedef struct _SavedSearchDialogSearchRowRatingPrivate SavedSearchDialogSearchRowRatingPrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define SEARCH_CONDITION_RATING_TYPE_CONTEXT (search_condition_rating_context_get_type ())
+
+#define TYPE_SEARCH_CONDITION_RATING (search_condition_rating_get_type ())
+#define SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRating))
+#define SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))
+#define IS_SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_RATING))
+#define IS_SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_RATING))
+#define SEARCH_CONDITION_RATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))
+
+typedef struct _SearchConditionRating SearchConditionRating;
+typedef struct _SearchConditionRatingClass SearchConditionRatingClass;
+typedef struct _SavedSearchDialogSearchRowDatePrivate SavedSearchDialogSearchRowDatePrivate;
+
+#define SEARCH_CONDITION_DATE_TYPE_CONTEXT (search_condition_date_context_get_type ())
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+
+#define TYPE_SEARCH_CONDITION_DATE (search_condition_date_get_type ())
+#define SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDate))
+#define SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))
+#define IS_SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_DATE))
+#define IS_SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_DATE))
+#define SEARCH_CONDITION_DATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))
+
+typedef struct _SearchConditionDate SearchConditionDate;
+typedef struct _SearchConditionDateClass SearchConditionDateClass;
+typedef struct _Block9Data Block9Data;
+typedef struct _ParamSpecSavedSearchDialog ParamSpecSavedSearchDialog;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SavedSearchDialog {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SavedSearchDialogPrivate * priv;
+};
+
+struct _SavedSearchDialogClass {
+ GTypeClass parent_class;
+ void (*finalize) (SavedSearchDialog *self);
+};
+
+struct _SavedSearchDialogPrivate {
+ GtkBuilder* builder;
+ GtkDialog* dialog;
+ GtkButton* add_criteria;
+ GtkComboBoxText* operator;
+ GtkBox* row_box;
+ GtkEntry* search_title;
+ GeeArrayList* row_list;
+ gboolean edit_mode;
+ SavedSearch* previous_search;
+ gboolean valid;
+};
+
+typedef enum {
+ SEARCH_OPERATOR_ANY = 0,
+ SEARCH_OPERATOR_ALL,
+ SEARCH_OPERATOR_NONE
+} SearchOperator;
+
+struct _SavedSearchDialogSearchRowContainer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SavedSearchDialogSearchRowContainerPrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowContainerClass {
+ GTypeClass parent_class;
+ void (*finalize) (SavedSearchDialogSearchRowContainer *self);
+};
+
+typedef enum {
+ SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT = 0,
+ SEARCH_CONDITION_SEARCH_TYPE_TITLE,
+ SEARCH_CONDITION_SEARCH_TYPE_TAG,
+ SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME,
+ SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME,
+ SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE,
+ SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE,
+ SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE,
+ SEARCH_CONDITION_SEARCH_TYPE_RATING,
+ SEARCH_CONDITION_SEARCH_TYPE_COMMENT,
+ SEARCH_CONDITION_SEARCH_TYPE_DATE
+} SearchConditionSearchType;
+
+struct _SavedSearchDialogSearchRowContainerPrivate {
+ GtkComboBoxText* type_combo;
+ GtkBox* box;
+ GtkAlignment* align;
+ GtkButton* remove_button;
+ SearchConditionSearchType* search_types;
+ gint search_types_length1;
+ gint _search_types_size_;
+ GeeHashMap* search_types_index;
+ SavedSearchDialogSearchRow* my_row;
+};
+
+struct _SavedSearchDialogParamSpecSearchRowContainer {
+ GParamSpec parent_instance;
+};
+
+struct _SavedSearchDialogSearchRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SavedSearchDialogSearchRowPrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (SavedSearchDialogSearchRow *self);
+ GtkWidget* (*get_widget) (SavedSearchDialogSearchRow* self);
+ SearchCondition* (*get_search_condition) (SavedSearchDialogSearchRow* self);
+ void (*populate) (SavedSearchDialogSearchRow* self, SearchCondition* sc);
+ gboolean (*is_complete) (SavedSearchDialogSearchRow* self);
+};
+
+struct _SavedSearchDialogParamSpecSearchRow {
+ GParamSpec parent_instance;
+};
+
+struct _SavedSearchDialogSearchRowText {
+ SavedSearchDialogSearchRow parent_instance;
+ SavedSearchDialogSearchRowTextPrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowTextClass {
+ SavedSearchDialogSearchRowClass parent_class;
+};
+
+struct _SavedSearchDialogSearchRowTextPrivate {
+ GtkBox* box;
+ GtkComboBoxText* text_context;
+ GtkEntry* entry;
+ SavedSearchDialogSearchRowContainer* parent;
+};
+
+typedef enum {
+ SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS = 0,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY,
+ SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH,
+ SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH,
+ SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_SET
+} SearchConditionTextContext;
+
+struct _SavedSearchDialogSearchRowMediaType {
+ SavedSearchDialogSearchRow parent_instance;
+ SavedSearchDialogSearchRowMediaTypePrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowMediaTypeClass {
+ SavedSearchDialogSearchRowClass parent_class;
+};
+
+struct _SavedSearchDialogSearchRowMediaTypePrivate {
+ GtkBox* box;
+ GtkComboBoxText* media_context;
+ GtkComboBoxText* media_type;
+ SavedSearchDialogSearchRowContainer* parent;
+};
+
+typedef enum {
+ SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS = 0,
+ SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT
+} SearchConditionMediaTypeContext;
+
+typedef enum {
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL = 0,
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW,
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO
+} SearchConditionMediaTypeMediaType;
+
+struct _SavedSearchDialogSearchRowModified {
+ SavedSearchDialogSearchRow parent_instance;
+ SavedSearchDialogSearchRowModifiedPrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowModifiedClass {
+ SavedSearchDialogSearchRowClass parent_class;
+};
+
+struct _SavedSearchDialogSearchRowModifiedPrivate {
+ GtkBox* box;
+ GtkComboBoxText* modified_context;
+ GtkComboBoxText* modified_state;
+ SavedSearchDialogSearchRowContainer* parent;
+};
+
+typedef enum {
+ SEARCH_CONDITION_MODIFIED_CONTEXT_HAS = 0,
+ SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO
+} SearchConditionModifiedContext;
+
+typedef enum {
+ SEARCH_CONDITION_MODIFIED_STATE_MODIFIED = 0,
+ SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES,
+ SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES
+} SearchConditionModifiedState;
+
+struct _SavedSearchDialogSearchRowFlagged {
+ SavedSearchDialogSearchRow parent_instance;
+ SavedSearchDialogSearchRowFlaggedPrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowFlaggedClass {
+ SavedSearchDialogSearchRowClass parent_class;
+};
+
+struct _SavedSearchDialogSearchRowFlaggedPrivate {
+ GtkBox* box;
+ GtkComboBoxText* flagged_state;
+ SavedSearchDialogSearchRowContainer* parent;
+};
+
+typedef enum {
+ SEARCH_CONDITION_FLAGGED_STATE_FLAGGED = 0,
+ SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED
+} SearchConditionFlaggedState;
+
+struct _SavedSearchDialogSearchRowRating {
+ SavedSearchDialogSearchRow parent_instance;
+ SavedSearchDialogSearchRowRatingPrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowRatingClass {
+ SavedSearchDialogSearchRowClass parent_class;
+};
+
+struct _SavedSearchDialogSearchRowRatingPrivate {
+ GtkBox* box;
+ GtkComboBoxText* rating;
+ GtkComboBoxText* context;
+ SavedSearchDialogSearchRowContainer* parent;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER = 0,
+ SEARCH_CONDITION_RATING_CONTEXT_ONLY,
+ SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER
+} SearchConditionRatingContext;
+
+struct _SavedSearchDialogSearchRowDate {
+ SavedSearchDialogSearchRow parent_instance;
+ SavedSearchDialogSearchRowDatePrivate * priv;
+};
+
+struct _SavedSearchDialogSearchRowDateClass {
+ SavedSearchDialogSearchRowClass parent_class;
+};
+
+struct _SavedSearchDialogSearchRowDatePrivate {
+ GtkBox* box;
+ GtkComboBoxText* context;
+ GtkButton* label_one;
+ GtkButton* label_two;
+ GtkCalendar* cal_one;
+ GtkCalendar* cal_two;
+ GtkLabel* and;
+ SavedSearchDialogSearchRowContainer* parent;
+};
+
+typedef enum {
+ SEARCH_CONDITION_DATE_CONTEXT_EXACT = 0,
+ SEARCH_CONDITION_DATE_CONTEXT_AFTER,
+ SEARCH_CONDITION_DATE_CONTEXT_BEFORE,
+ SEARCH_CONDITION_DATE_CONTEXT_BETWEEN,
+ SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET
+} SearchConditionDateContext;
+
+struct _Block9Data {
+ int _ref_count_;
+ SavedSearchDialogSearchRowDate* self;
+ GtkDialog* d;
+};
+
+struct _ParamSpecSavedSearchDialog {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer saved_search_dialog_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_container_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_text_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_media_type_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_modified_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_flagged_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_rating_parent_class = NULL;
+static gpointer saved_search_dialog_search_row_date_parent_class = NULL;
+
+gpointer saved_search_dialog_ref (gpointer instance);
+void saved_search_dialog_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_dialog (GValue* value, gpointer v_object);
+void value_take_saved_search_dialog (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_dialog (const GValue* value);
+GType saved_search_dialog_get_type (void) G_GNUC_CONST;
+static gpointer saved_search_dialog_search_row_container_ref (gpointer instance);
+static void saved_search_dialog_search_row_container_unref (gpointer instance);
+static GParamSpec* saved_search_dialog_param_spec_search_row_container (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void saved_search_dialog_value_set_search_row_container (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void saved_search_dialog_value_take_search_row_container (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer saved_search_dialog_value_get_search_row_container (const GValue* value) G_GNUC_UNUSED;
+static GType saved_search_dialog_search_row_container_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType saved_search_get_type (void) G_GNUC_CONST;
+#define SAVED_SEARCH_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogPrivate))
+enum {
+ SAVED_SEARCH_DIALOG_DUMMY_PROPERTY
+};
+static void saved_search_dialog_on_title_changed (SavedSearchDialog* self);
+static void _saved_search_dialog_on_title_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
+SavedSearchDialog* saved_search_dialog_new (void);
+SavedSearchDialog* saved_search_dialog_construct (GType object_type);
+static void saved_search_dialog_setup_dialog (SavedSearchDialog* self);
+gpointer saved_search_table_ref (gpointer instance);
+void saved_search_table_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_table (GValue* value, gpointer v_object);
+void value_take_saved_search_table (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_table (const GValue* value);
+GType saved_search_table_get_type (void) G_GNUC_CONST;
+SavedSearchTable* saved_search_table_get_instance (void);
+gchar* saved_search_table_generate_unique_name (SavedSearchTable* self);
+static void saved_search_dialog_add_text_search (SavedSearchDialog* self);
+static void saved_search_dialog_search_row_container_allow_removal (SavedSearchDialogSearchRowContainer* self, gboolean allow);
+static void saved_search_dialog_set_valid (SavedSearchDialog* self, gboolean v);
+SavedSearchDialog* saved_search_dialog_new_edit_existing (SavedSearch* saved_search);
+SavedSearchDialog* saved_search_dialog_construct_edit_existing (GType object_type, SavedSearch* saved_search);
+GType search_operator_get_type (void) G_GNUC_CONST;
+SearchOperator saved_search_get_operator (SavedSearch* self);
+gchar* data_object_get_name (DataObject* self);
+gpointer search_condition_ref (gpointer instance);
+void search_condition_unref (gpointer instance);
+GParamSpec* param_spec_search_condition (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_search_condition (GValue* value, gpointer v_object);
+void value_take_search_condition (GValue* value, gpointer v_object);
+gpointer value_get_search_condition (const GValue* value);
+GType search_condition_get_type (void) G_GNUC_CONST;
+GeeList* saved_search_get_conditions (SavedSearch* self);
+static void saved_search_dialog_add_row (SavedSearchDialog* self, SavedSearchDialogSearchRowContainer* row);
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_new_edit_existing (SearchCondition* sc);
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_construct_edit_existing (GType object_type, SearchCondition* sc);
+GtkBuilder* app_window_create_builder (const gchar* glade_filename, void* user);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+AppWindow* app_window_get_instance (void);
+static void saved_search_dialog_on_response (SavedSearchDialog* self, gint response_id);
+static void _saved_search_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
+static gboolean saved_search_dialog_on_add_criteria (SavedSearchDialog* self, GdkEventButton* event);
+static gboolean _saved_search_dialog_on_add_criteria_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+void saved_search_dialog_show (SavedSearchDialog* self);
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_new (void);
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_construct (GType object_type);
+static GtkWidget* saved_search_dialog_search_row_container_get_widget (SavedSearchDialogSearchRowContainer* self);
+static void saved_search_dialog_on_remove_row (SavedSearchDialog* self, SavedSearchDialogSearchRowContainer* row);
+static void _saved_search_dialog_on_remove_row_saved_search_dialog_search_row_container_remove (SavedSearchDialogSearchRowContainer* _sender, SavedSearchDialogSearchRowContainer* this_row, gpointer self);
+static void saved_search_dialog_on_row_changed (SavedSearchDialog* self, SavedSearchDialogSearchRowContainer* row);
+static void _saved_search_dialog_on_row_changed_saved_search_dialog_search_row_container_changed (SavedSearchDialogSearchRowContainer* _sender, SavedSearchDialogSearchRowContainer* this_row, gpointer self);
+static gboolean saved_search_dialog_search_row_container_is_complete (SavedSearchDialogSearchRowContainer* self);
+gboolean saved_search_table_exists (SavedSearchTable* self, const gchar* search_name);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gchar* resources_rename_search_exists_message (const gchar* name);
+void saved_search_table_remove (SavedSearchTable* self, SavedSearch* search);
+static SearchCondition* saved_search_dialog_search_row_container_get_search_condition (SavedSearchDialogSearchRowContainer* self);
+SavedSearch* saved_search_table_create (SavedSearchTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions);
+static gboolean saved_search_dialog_is_title_valid (SavedSearchDialog* self);
+GType search_condition_search_type_get_type (void) G_GNUC_CONST;
+static gpointer saved_search_dialog_search_row_ref (gpointer instance);
+static void saved_search_dialog_search_row_unref (gpointer instance);
+static GParamSpec* saved_search_dialog_param_spec_search_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void saved_search_dialog_value_set_search_row (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void saved_search_dialog_value_take_search_row (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer saved_search_dialog_value_get_search_row (const GValue* value) G_GNUC_UNUSED;
+static GType saved_search_dialog_search_row_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, SavedSearchDialogSearchRowContainerPrivate))
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER_DUMMY_PROPERTY
+};
+static void saved_search_dialog_search_row_container_setup_gui (SavedSearchDialogSearchRowContainer* self);
+static void saved_search_dialog_search_row_container_set_type (SavedSearchDialogSearchRowContainer* self, SearchConditionSearchType type);
+SearchConditionSearchType search_condition_get_search_type (SearchCondition* self);
+static void saved_search_dialog_search_row_container_set_type_combo_box (SavedSearchDialogSearchRowContainer* self, SearchConditionSearchType st);
+static void saved_search_dialog_search_row_populate (SavedSearchDialogSearchRow* self, SearchCondition* sc);
+SearchConditionSearchType* search_condition_search_type_as_array (int* result_length1);
+void search_condition_search_type_sort_array (SearchConditionSearchType** array, int* array_length1);
+gchar* search_condition_search_type_display_text (SearchConditionSearchType self);
+static void saved_search_dialog_search_row_container_on_type_changed (SavedSearchDialogSearchRowContainer* self);
+static void _saved_search_dialog_search_row_container_on_type_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static gboolean saved_search_dialog_search_row_container_on_removed (SavedSearchDialogSearchRowContainer* self, GdkEventButton* event);
+static gboolean _saved_search_dialog_search_row_container_on_removed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static SearchConditionSearchType saved_search_dialog_search_row_container_get_search_type (SavedSearchDialogSearchRowContainer* self);
+static GtkWidget* saved_search_dialog_search_row_get_widget (SavedSearchDialogSearchRow* self);
+static SavedSearchDialogSearchRowText* saved_search_dialog_search_row_text_new (SavedSearchDialogSearchRowContainer* parent);
+static SavedSearchDialogSearchRowText* saved_search_dialog_search_row_text_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent);
+static GType saved_search_dialog_search_row_text_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SavedSearchDialogSearchRowMediaType* saved_search_dialog_search_row_media_type_new (SavedSearchDialogSearchRowContainer* parent);
+static SavedSearchDialogSearchRowMediaType* saved_search_dialog_search_row_media_type_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent);
+static GType saved_search_dialog_search_row_media_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SavedSearchDialogSearchRowFlagged* saved_search_dialog_search_row_flagged_new (SavedSearchDialogSearchRowContainer* parent);
+static SavedSearchDialogSearchRowFlagged* saved_search_dialog_search_row_flagged_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent);
+static GType saved_search_dialog_search_row_flagged_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SavedSearchDialogSearchRowModified* saved_search_dialog_search_row_modified_new (SavedSearchDialogSearchRowContainer* parent);
+static SavedSearchDialogSearchRowModified* saved_search_dialog_search_row_modified_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent);
+static GType saved_search_dialog_search_row_modified_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SavedSearchDialogSearchRowRating* saved_search_dialog_search_row_rating_new (SavedSearchDialogSearchRowContainer* parent);
+static SavedSearchDialogSearchRowRating* saved_search_dialog_search_row_rating_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent);
+static GType saved_search_dialog_search_row_rating_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SavedSearchDialogSearchRowDate* saved_search_dialog_search_row_date_new (SavedSearchDialogSearchRowContainer* parent);
+static SavedSearchDialogSearchRowDate* saved_search_dialog_search_row_date_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent);
+static GType saved_search_dialog_search_row_date_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static SearchCondition* saved_search_dialog_search_row_get_search_condition (SavedSearchDialogSearchRow* self);
+static gboolean saved_search_dialog_search_row_is_complete (SavedSearchDialogSearchRow* self);
+static void g_cclosure_user_marshal_VOID__SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void saved_search_dialog_search_row_container_finalize (SavedSearchDialogSearchRowContainer* obj);
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_DUMMY_PROPERTY
+};
+static GtkWidget* saved_search_dialog_search_row_real_get_widget (SavedSearchDialogSearchRow* self);
+static SearchCondition* saved_search_dialog_search_row_real_get_search_condition (SavedSearchDialogSearchRow* self);
+static void saved_search_dialog_search_row_real_populate (SavedSearchDialogSearchRow* self, SearchCondition* sc);
+static gboolean saved_search_dialog_search_row_real_is_complete (SavedSearchDialogSearchRow* self);
+static SavedSearchDialogSearchRow* saved_search_dialog_search_row_construct (GType object_type);
+static void saved_search_dialog_search_row_finalize (SavedSearchDialogSearchRow* obj);
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_TEXT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowTextPrivate))
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_TEXT_DUMMY_PROPERTY
+};
+static void saved_search_dialog_search_row_text_on_changed (SavedSearchDialogSearchRowText* self);
+static void _saved_search_dialog_search_row_text_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static void _saved_search_dialog_search_row_text_on_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self);
+static GtkWidget* saved_search_dialog_search_row_text_real_get_widget (SavedSearchDialogSearchRow* base);
+static SearchCondition* saved_search_dialog_search_row_text_real_get_search_condition (SavedSearchDialogSearchRow* base);
+GType search_condition_text_context_get_type (void) G_GNUC_CONST;
+static SearchConditionTextContext saved_search_dialog_search_row_text_get_text_context (SavedSearchDialogSearchRowText* self);
+GType search_condition_text_get_type (void) G_GNUC_CONST;
+SearchConditionText* search_condition_text_new (SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
+SearchConditionText* search_condition_text_construct (GType object_type, SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
+static void saved_search_dialog_search_row_text_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc);
+SearchConditionTextContext search_condition_text_get_context (SearchConditionText* self);
+const gchar* search_condition_text_get_text (SearchConditionText* self);
+static gboolean saved_search_dialog_search_row_text_real_is_complete (SavedSearchDialogSearchRow* base);
+static void saved_search_dialog_search_row_text_finalize (SavedSearchDialogSearchRow* obj);
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MEDIA_TYPE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaTypePrivate))
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_MEDIA_TYPE_DUMMY_PROPERTY
+};
+static void saved_search_dialog_search_row_media_type_on_changed (SavedSearchDialogSearchRowMediaType* self);
+static void _saved_search_dialog_search_row_media_type_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static GtkWidget* saved_search_dialog_search_row_media_type_real_get_widget (SavedSearchDialogSearchRow* base);
+static SearchCondition* saved_search_dialog_search_row_media_type_real_get_search_condition (SavedSearchDialogSearchRow* base);
+GType search_condition_media_type_context_get_type (void) G_GNUC_CONST;
+GType search_condition_media_type_media_type_get_type (void) G_GNUC_CONST;
+GType search_condition_media_type_get_type (void) G_GNUC_CONST;
+SearchConditionMediaType* search_condition_media_type_new (SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
+SearchConditionMediaType* search_condition_media_type_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
+static void saved_search_dialog_search_row_media_type_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc);
+SearchConditionMediaTypeContext search_condition_media_type_get_context (SearchConditionMediaType* self);
+SearchConditionMediaTypeMediaType search_condition_media_type_get_media_type (SearchConditionMediaType* self);
+static gboolean saved_search_dialog_search_row_media_type_real_is_complete (SavedSearchDialogSearchRow* base);
+static void saved_search_dialog_search_row_media_type_finalize (SavedSearchDialogSearchRow* obj);
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_MODIFIED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModifiedPrivate))
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_MODIFIED_DUMMY_PROPERTY
+};
+static void saved_search_dialog_search_row_modified_on_changed (SavedSearchDialogSearchRowModified* self);
+static void _saved_search_dialog_search_row_modified_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static GtkWidget* saved_search_dialog_search_row_modified_real_get_widget (SavedSearchDialogSearchRow* base);
+static SearchCondition* saved_search_dialog_search_row_modified_real_get_search_condition (SavedSearchDialogSearchRow* base);
+GType search_condition_modified_context_get_type (void) G_GNUC_CONST;
+GType search_condition_modified_state_get_type (void) G_GNUC_CONST;
+GType search_condition_modified_get_type (void) G_GNUC_CONST;
+SearchConditionModified* search_condition_modified_new (SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
+SearchConditionModified* search_condition_modified_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
+static void saved_search_dialog_search_row_modified_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc);
+SearchConditionModifiedState search_condition_modified_get_state (SearchConditionModified* self);
+SearchConditionModifiedContext search_condition_modified_get_context (SearchConditionModified* self);
+static gboolean saved_search_dialog_search_row_modified_real_is_complete (SavedSearchDialogSearchRow* base);
+static void saved_search_dialog_search_row_modified_finalize (SavedSearchDialogSearchRow* obj);
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_FLAGGED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlaggedPrivate))
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_FLAGGED_DUMMY_PROPERTY
+};
+static void saved_search_dialog_search_row_flagged_on_changed (SavedSearchDialogSearchRowFlagged* self);
+static void _saved_search_dialog_search_row_flagged_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+static GtkWidget* saved_search_dialog_search_row_flagged_real_get_widget (SavedSearchDialogSearchRow* base);
+static SearchCondition* saved_search_dialog_search_row_flagged_real_get_search_condition (SavedSearchDialogSearchRow* base);
+GType search_condition_flagged_state_get_type (void) G_GNUC_CONST;
+GType search_condition_flagged_get_type (void) G_GNUC_CONST;
+SearchConditionFlagged* search_condition_flagged_new (SearchConditionSearchType search_type, SearchConditionFlaggedState state);
+SearchConditionFlagged* search_condition_flagged_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionFlaggedState state);
+static void saved_search_dialog_search_row_flagged_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc);
+SearchConditionFlaggedState search_condition_flagged_get_state (SearchConditionFlagged* self);
+static gboolean saved_search_dialog_search_row_flagged_real_is_complete (SavedSearchDialogSearchRow* base);
+static void saved_search_dialog_search_row_flagged_finalize (SavedSearchDialogSearchRow* obj);
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_RATING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRatingPrivate))
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_RATING_DUMMY_PROPERTY
+};
+static void saved_search_dialog_search_row_rating_on_changed (SavedSearchDialogSearchRowRating* self);
+static void _saved_search_dialog_search_row_rating_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+GType rating_get_type (void) G_GNUC_CONST;
+const gchar* resources_rating_combo_box (Rating rating);
+static GtkWidget* saved_search_dialog_search_row_rating_real_get_widget (SavedSearchDialogSearchRow* base);
+static SearchCondition* saved_search_dialog_search_row_rating_real_get_search_condition (SavedSearchDialogSearchRow* base);
+GType search_condition_rating_context_get_type (void) G_GNUC_CONST;
+GType search_condition_rating_get_type (void) G_GNUC_CONST;
+SearchConditionRating* search_condition_rating_new (SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
+SearchConditionRating* search_condition_rating_construct (GType object_type, SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
+static void saved_search_dialog_search_row_rating_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc);
+SearchConditionRatingContext search_condition_rating_get_context (SearchConditionRating* self);
+Rating search_condition_rating_get_rating (SearchConditionRating* self);
+static gboolean saved_search_dialog_search_row_rating_real_is_complete (SavedSearchDialogSearchRow* base);
+static void saved_search_dialog_search_row_rating_finalize (SavedSearchDialogSearchRow* obj);
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDatePrivate))
+enum {
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_DUMMY_PROPERTY
+};
+static void saved_search_dialog_search_row_date_on_changed (SavedSearchDialogSearchRowDate* self);
+static void _saved_search_dialog_search_row_date_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self);
+#define SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_DATE_FORMAT "%x"
+static void saved_search_dialog_search_row_date_on_one_clicked (SavedSearchDialogSearchRowDate* self);
+static void _saved_search_dialog_search_row_date_on_one_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void saved_search_dialog_search_row_date_on_two_clicked (SavedSearchDialogSearchRowDate* self);
+static void _saved_search_dialog_search_row_date_on_two_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void saved_search_dialog_search_row_date_update_date_labels (SavedSearchDialogSearchRowDate* self);
+GType search_condition_date_context_get_type (void) G_GNUC_CONST;
+static GDateTime* saved_search_dialog_search_row_date_get_date_one (SavedSearchDialogSearchRowDate* self);
+static GDateTime* saved_search_dialog_search_row_date_get_date_two (SavedSearchDialogSearchRowDate* self);
+static GtkWidget* saved_search_dialog_search_row_date_real_get_widget (SavedSearchDialogSearchRow* base);
+static void saved_search_dialog_search_row_date_set_date_one (SavedSearchDialogSearchRowDate* self, GDateTime* date);
+static void saved_search_dialog_search_row_date_set_date_two (SavedSearchDialogSearchRowDate* self, GDateTime* date);
+static SearchCondition* saved_search_dialog_search_row_date_real_get_search_condition (SavedSearchDialogSearchRow* base);
+GType search_condition_date_get_type (void) G_GNUC_CONST;
+SearchConditionDate* search_condition_date_new (SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
+SearchConditionDate* search_condition_date_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
+static void saved_search_dialog_search_row_date_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc);
+SearchConditionDateContext search_condition_date_get_context (SearchConditionDate* self);
+GDateTime* search_condition_date_get_date_one (SearchConditionDate* self);
+GDateTime* search_condition_date_get_date_two (SearchConditionDate* self);
+static gboolean saved_search_dialog_search_row_date_real_is_complete (SavedSearchDialogSearchRow* base);
+static void saved_search_dialog_search_row_date_popup_calendar (SavedSearchDialogSearchRowDate* self, GtkCalendar* cal);
+static Block9Data* block9_data_ref (Block9Data* _data9_);
+static void block9_data_unref (void * _userdata_);
+#define RESOURCES_CANCEL_LABEL _ ("_Cancel")
+#define RESOURCES_OK_LABEL _ ("_OK")
+static void __lambda12_ (SavedSearchDialogSearchRowDate* self);
+static void ___lambda12__gtk_calendar_day_selected (GtkCalendar* _sender, gpointer self);
+static void __lambda13_ (Block9Data* _data9_);
+static void ___lambda13__gtk_calendar_day_selected_double_click (GtkCalendar* _sender, gpointer self);
+static void saved_search_dialog_search_row_date_finalize (SavedSearchDialogSearchRow* obj);
+static void saved_search_dialog_finalize (SavedSearchDialog* obj);
+
+
+static void _saved_search_dialog_on_title_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
+#line 690 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_on_title_changed ((SavedSearchDialog*) self);
+#line 830 "SavedSearchDialog.c"
+}
+
+
+SavedSearchDialog* saved_search_dialog_construct (GType object_type) {
+ SavedSearchDialog* self = NULL;
+ GtkEntry* _tmp0_ = NULL;
+ SavedSearchTable* _tmp1_ = NULL;
+ SavedSearchTable* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ GtkEntry* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp8_ = NULL;
+ GtkDialog* _tmp9_ = NULL;
+#line 654 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialog*) g_type_create_instance (object_type);
+#line 655 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_setup_dialog (self);
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->search_title;
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_table_get_instance ();
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = _tmp1_;
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = saved_search_table_generate_unique_name (_tmp2_);
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_entry_set_text (_tmp0_, _tmp4_);
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp4_);
+#line 658 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_table_unref0 (_tmp2_);
+#line 659 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->search_title;
+#line 659 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_editable_select_region (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GTK_TYPE_EDITABLE, GtkEditable), 0, -1);
+#line 662 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_add_text_search (self);
+#line 663 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->row_list;
+#line 663 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 663 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = (SavedSearchDialogSearchRowContainer*) _tmp7_;
+#line 663 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_allow_removal (_tmp8_, FALSE);
+#line 663 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (_tmp8_);
+#line 665 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->dialog;
+#line 665 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 666 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_set_valid (self, FALSE);
+#line 654 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 890 "SavedSearchDialog.c"
+}
+
+
+SavedSearchDialog* saved_search_dialog_new (void) {
+#line 654 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_construct (TYPE_SAVED_SEARCH_DIALOG);
+#line 897 "SavedSearchDialog.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 670 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 904 "SavedSearchDialog.c"
+}
+
+
+SavedSearchDialog* saved_search_dialog_construct_edit_existing (GType object_type, SavedSearch* saved_search) {
+ SavedSearchDialog* self = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ GtkDialog* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+ SearchOperator _tmp5_ = 0;
+ GtkEntry* _tmp6_ = NULL;
+ SavedSearch* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ GeeArrayList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+#line 669 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (saved_search), NULL);
+#line 669 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialog*) g_type_create_instance (object_type);
+#line 670 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = saved_search;
+#line 670 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 670 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->previous_search);
+#line 670 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->previous_search = _tmp1_;
+#line 671 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->edit_mode = TRUE;
+#line 672 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_setup_dialog (self);
+#line 674 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->dialog;
+#line 674 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 677 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->operator;
+#line 677 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = saved_search;
+#line 677 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = saved_search_get_operator (_tmp4_);
+#line 677 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_combo_box_get_type (), GtkComboBox), (gint) ((SearchOperator) _tmp5_));
+#line 678 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->search_title;
+#line 678 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = saved_search;
+#line 678 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, TYPE_DATA_OBJECT, DataObject));
+#line 678 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = _tmp8_;
+#line 678 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_entry_set_text (_tmp6_, _tmp9_);
+#line 678 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp9_);
+#line 963 "SavedSearchDialog.c"
+ {
+ GeeList* _sc_list = NULL;
+ SavedSearch* _tmp10_ = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _sc_size = 0;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ gint _sc_index = 0;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = saved_search;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = saved_search_get_conditions (_tmp10_);
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _sc_list = _tmp11_;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _sc_list;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = _tmp13_;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _sc_size = _tmp14_;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _sc_index = -1;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ while (TRUE) {
+#line 991 "SavedSearchDialog.c"
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ SearchCondition* sc = NULL;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gpointer _tmp20_ = NULL;
+ SearchCondition* _tmp21_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp22_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp23_ = NULL;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = _sc_index;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _sc_index = _tmp15_ + 1;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = _sc_index;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = _sc_size;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!(_tmp16_ < _tmp17_)) {
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 1014 "SavedSearchDialog.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = _sc_list;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = _sc_index;
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = gee_list_get (_tmp18_, _tmp19_);
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ sc = (SearchCondition*) _tmp20_;
+#line 680 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = sc;
+#line 680 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = saved_search_dialog_search_row_container_new_edit_existing (_tmp21_);
+#line 680 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = _tmp22_;
+#line 680 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_add_row (self, _tmp23_);
+#line 680 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (_tmp23_);
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (sc);
+#line 1036 "SavedSearchDialog.c"
+ }
+#line 679 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_sc_list);
+#line 1040 "SavedSearchDialog.c"
+ }
+#line 683 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = self->priv->row_list;
+#line 683 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 683 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = _tmp25_;
+#line 683 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp26_ == 1) {
+#line 1050 "SavedSearchDialog.c"
+ GeeArrayList* _tmp27_ = NULL;
+ gpointer _tmp28_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp29_ = NULL;
+#line 684 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = self->priv->row_list;
+#line 684 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 684 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp29_ = (SavedSearchDialogSearchRowContainer*) _tmp28_;
+#line 684 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_allow_removal (_tmp29_, FALSE);
+#line 684 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (_tmp29_);
+#line 1064 "SavedSearchDialog.c"
+ }
+#line 686 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_set_valid (self, TRUE);
+#line 669 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 1070 "SavedSearchDialog.c"
+}
+
+
+SavedSearchDialog* saved_search_dialog_new_edit_existing (SavedSearch* saved_search) {
+#line 669 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_construct_edit_existing (TYPE_SAVED_SEARCH_DIALOG, saved_search);
+#line 1077 "SavedSearchDialog.c"
+}
+
+
+static void _saved_search_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
+#line 708 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_on_response ((SavedSearchDialog*) self, response_id);
+#line 1084 "SavedSearchDialog.c"
+}
+
+
+static gboolean _saved_search_dialog_on_add_criteria_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = saved_search_dialog_on_add_criteria ((SavedSearchDialog*) self, event);
+#line 712 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 1093 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_setup_dialog (SavedSearchDialog* self) {
+ GtkBuilder* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ AppWindow* _tmp2_ = NULL;
+ AppWindow* _tmp3_ = NULL;
+ GdkWindow* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkDialog* _tmp7_ = NULL;
+ GtkDialog* _tmp8_ = NULL;
+ GtkDialog* _tmp9_ = NULL;
+ AppWindow* _tmp10_ = NULL;
+ AppWindow* _tmp11_ = NULL;
+ GtkDialog* _tmp12_ = NULL;
+ GtkDialog* _tmp13_ = NULL;
+ GtkDialog* _tmp14_ = NULL;
+ GtkBox* _tmp15_ = NULL;
+ GtkBuilder* _tmp16_ = NULL;
+ GObject* _tmp17_ = NULL;
+ GtkBuilder* _tmp18_ = NULL;
+ GObject* _tmp19_ = NULL;
+ GtkButton* _tmp20_ = NULL;
+ GtkButton* _tmp21_ = NULL;
+ GtkBuilder* _tmp22_ = NULL;
+ GObject* _tmp23_ = NULL;
+ GtkEntry* _tmp24_ = NULL;
+ GtkEntry* _tmp25_ = NULL;
+ GtkEntry* _tmp26_ = NULL;
+ GtkBuilder* _tmp27_ = NULL;
+ GObject* _tmp28_ = NULL;
+ GtkBox* _tmp29_ = NULL;
+ GtkBuilder* _tmp30_ = NULL;
+ GObject* _tmp31_ = NULL;
+ GtkComboBoxText* _tmp32_ = NULL;
+ GtkComboBoxText* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ GtkComboBoxText* _tmp35_ = NULL;
+ const gchar* _tmp36_ = NULL;
+ GtkComboBoxText* _tmp37_ = NULL;
+ const gchar* _tmp38_ = NULL;
+ GtkComboBoxText* _tmp39_ = NULL;
+#line 694 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 695 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = app_window_create_builder ("shotwell.ui", NULL);
+#line 695 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 695 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->builder = _tmp0_;
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _ ("Search");
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = app_window_get_instance ();
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = _tmp2_;
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = gtk_widget_get_parent_window (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = _ ("Cancel");
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _ ("OK");
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = (GtkDialog*) gtk_dialog_new_with_buttons (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_window_get_type (), GtkWindow), (GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT) | GTK_DIALOG_USE_HEADER_BAR, _tmp5_, GTK_RESPONSE_CANCEL, _tmp6_, GTK_RESPONSE_OK, NULL, NULL);
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp7_);
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->dialog = _tmp7_;
+#line 697 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp3_);
+#line 705 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = self->priv->dialog;
+#line 705 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_window_get_type (), GtkWindow), FALSE);
+#line 706 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->dialog;
+#line 706 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = app_window_get_instance ();
+#line 706 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = _tmp10_;
+#line 706 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_window_set_transient_for (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_window_get_type (), GtkWindow), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_window_get_type (), GtkWindow));
+#line 706 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp11_);
+#line 707 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = self->priv->dialog;
+#line 707 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_dialog_set_default_response (_tmp12_, (gint) GTK_RESPONSE_OK);
+#line 708 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->dialog;
+#line 708 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (_tmp13_, "response", (GCallback) _saved_search_dialog_on_response_gtk_dialog_response, self);
+#line 709 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = self->priv->dialog;
+#line 709 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = (GtkBox*) gtk_dialog_get_content_area (_tmp14_);
+#line 709 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = self->priv->builder;
+#line 709 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = gtk_builder_get_object (_tmp16_, "criteria");
+#line 709 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_TYPE (_tmp17_, gtk_widget_get_type ()) ? ((GtkWidget*) _tmp17_) : NULL);
+#line 711 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = self->priv->builder;
+#line 711 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = gtk_builder_get_object (_tmp18_, "Add search button");
+#line 711 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp19_, gtk_button_get_type ()) ? ((GtkButton*) _tmp19_) : NULL);
+#line 711 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->add_criteria);
+#line 711 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->add_criteria = _tmp20_;
+#line 712 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = self->priv->add_criteria;
+#line 712 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _saved_search_dialog_on_add_criteria_gtk_widget_button_press_event, self);
+#line 714 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = self->priv->builder;
+#line 714 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = gtk_builder_get_object (_tmp22_, "Search title");
+#line 714 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp23_, gtk_entry_get_type ()) ? ((GtkEntry*) _tmp23_) : NULL);
+#line 714 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->search_title);
+#line 714 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->search_title = _tmp24_;
+#line 715 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = self->priv->search_title;
+#line 715 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_entry_set_activates_default (_tmp25_, TRUE);
+#line 716 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = self->priv->search_title;
+#line 716 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GTK_TYPE_EDITABLE, GtkEditable), "changed", (GCallback) _saved_search_dialog_on_title_changed_gtk_editable_changed, self);
+#line 718 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = self->priv->builder;
+#line 718 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = gtk_builder_get_object (_tmp27_, "row_box");
+#line 718 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp29_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp28_, gtk_box_get_type ()) ? ((GtkBox*) _tmp28_) : NULL);
+#line 718 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->row_box);
+#line 718 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->row_box = _tmp29_;
+#line 720 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp30_ = self->priv->builder;
+#line 720 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp31_ = gtk_builder_get_object (_tmp30_, "Type of search criteria");
+#line 720 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp32_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp31_, gtk_combo_box_text_get_type ()) ? ((GtkComboBoxText*) _tmp31_) : NULL);
+#line 720 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->operator);
+#line 720 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->operator = _tmp32_;
+#line 721 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp33_ = self->priv->operator;
+#line 721 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp34_ = _ ("any");
+#line 721 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp33_, _tmp34_);
+#line 722 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp35_ = self->priv->operator;
+#line 722 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp36_ = _ ("all");
+#line 722 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp35_, _tmp36_);
+#line 723 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp37_ = self->priv->operator;
+#line 723 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp38_ = _ ("none");
+#line 723 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp37_, _tmp38_);
+#line 724 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp39_ = self->priv->operator;
+#line 724 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 1274 "SavedSearchDialog.c"
+}
+
+
+void saved_search_dialog_show (SavedSearchDialog* self) {
+ GtkDialog* _tmp0_ = NULL;
+ GtkDialog* _tmp1_ = NULL;
+#line 728 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 729 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->dialog;
+#line 729 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_dialog_run (_tmp0_);
+#line 730 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->dialog;
+#line 730 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_widget_get_type (), GtkWidget));
+#line 1291 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_on_add_criteria (SavedSearchDialog* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 734 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_DIALOG (self), FALSE);
+#line 734 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 735 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_add_text_search (self);
+#line 736 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = FALSE;
+#line 736 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 1307 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_add_text_search (SavedSearchDialog* self) {
+ SavedSearchDialogSearchRowContainer* text = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+#line 739 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 740 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = saved_search_dialog_search_row_container_new ();
+#line 740 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ text = _tmp0_;
+#line 741 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_add_row (self, text);
+#line 739 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (text);
+#line 1324 "SavedSearchDialog.c"
+}
+
+
+static void _saved_search_dialog_on_remove_row_saved_search_dialog_search_row_container_remove (SavedSearchDialogSearchRowContainer* _sender, SavedSearchDialogSearchRowContainer* this_row, gpointer self) {
+#line 750 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_on_remove_row ((SavedSearchDialog*) self, this_row);
+#line 1331 "SavedSearchDialog.c"
+}
+
+
+static void _saved_search_dialog_on_row_changed_saved_search_dialog_search_row_container_changed (SavedSearchDialogSearchRowContainer* _sender, SavedSearchDialogSearchRowContainer* this_row, gpointer self) {
+#line 751 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_on_row_changed ((SavedSearchDialog*) self, this_row);
+#line 1338 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_add_row (SavedSearchDialog* self, SavedSearchDialogSearchRowContainer* row) {
+ GeeArrayList* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GtkBox* _tmp6_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp7_ = NULL;
+ GtkWidget* _tmp8_ = NULL;
+ GtkWidget* _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp11_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp12_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp13_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 745 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 745 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (row));
+#line 746 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->row_list;
+#line 746 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 746 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = _tmp1_;
+#line 746 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp2_ == 1) {
+#line 1368 "SavedSearchDialog.c"
+ GeeArrayList* _tmp3_ = NULL;
+ gpointer _tmp4_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp5_ = NULL;
+#line 747 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->row_list;
+#line 747 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 747 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = (SavedSearchDialogSearchRowContainer*) _tmp4_;
+#line 747 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_allow_removal (_tmp5_, TRUE);
+#line 747 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (_tmp5_);
+#line 1382 "SavedSearchDialog.c"
+ }
+#line 748 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->row_box;
+#line 748 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = row;
+#line 748 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = saved_search_dialog_search_row_container_get_widget (_tmp7_);
+#line 748 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = _tmp8_;
+#line 748 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_container_get_type (), GtkContainer), _tmp9_);
+#line 748 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp9_);
+#line 749 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = self->priv->row_list;
+#line 749 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = row;
+#line 749 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp11_);
+#line 750 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = row;
+#line 750 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (_tmp12_, "remove", (GCallback) _saved_search_dialog_on_remove_row_saved_search_dialog_search_row_container_remove, self);
+#line 751 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = row;
+#line 751 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (_tmp13_, "changed", (GCallback) _saved_search_dialog_on_row_changed_saved_search_dialog_search_row_container_changed, self);
+#line 752 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = row;
+#line 752 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = saved_search_dialog_search_row_container_is_complete (_tmp14_);
+#line 752 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_set_valid (self, _tmp15_);
+#line 1416 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_on_remove_row (SavedSearchDialog* self, SavedSearchDialogSearchRowContainer* row) {
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ SavedSearchDialogSearchRowContainer* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+ GtkBox* _tmp4_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp5_ = NULL;
+ GtkWidget* _tmp6_ = NULL;
+ GtkWidget* _tmp7_ = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+#line 756 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 756 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (row));
+#line 757 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = row;
+#line 757 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("remove", SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, &_tmp1_, NULL, FALSE);
+#line 757 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_on_remove_row_saved_search_dialog_search_row_container_remove, self);
+#line 758 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = row;
+#line 758 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, &_tmp3_, NULL, FALSE);
+#line 758 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _saved_search_dialog_on_row_changed_saved_search_dialog_search_row_container_changed, self);
+#line 759 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->row_box;
+#line 759 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = row;
+#line 759 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = saved_search_dialog_search_row_container_get_widget (_tmp5_);
+#line 759 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = _tmp6_;
+#line 759 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_container_get_type (), GtkContainer), _tmp7_);
+#line 759 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp7_);
+#line 760 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = self->priv->row_list;
+#line 760 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = row;
+#line 760 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gee_abstract_collection_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp9_);
+#line 761 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = self->priv->row_list;
+#line 761 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 761 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _tmp11_;
+#line 761 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp12_ == 1) {
+#line 1476 "SavedSearchDialog.c"
+ GeeArrayList* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp15_ = NULL;
+#line 762 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->row_list;
+#line 762 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 762 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = (SavedSearchDialogSearchRowContainer*) _tmp14_;
+#line 762 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_allow_removal (_tmp15_, FALSE);
+#line 762 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (_tmp15_);
+#line 1490 "SavedSearchDialog.c"
+ }
+#line 763 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_set_valid (self, TRUE);
+#line 1494 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_on_response (SavedSearchDialog* self, gint response_id) {
+ gint _tmp0_ = 0;
+#line 766 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 767 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = response_id;
+#line 767 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp0_ == ((gint) GTK_RESPONSE_OK)) {
+#line 1506 "SavedSearchDialog.c"
+ gboolean _tmp1_ = FALSE;
+ SavedSearchTable* _tmp2_ = NULL;
+ SavedSearchTable* _tmp3_ = NULL;
+ GtkEntry* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+ GeeArrayList* conditions = NULL;
+ GeeArrayList* _tmp23_ = NULL;
+ SearchOperator search_operator = 0;
+ GtkComboBoxText* _tmp39_ = NULL;
+ gint _tmp40_ = 0;
+ SavedSearchTable* _tmp41_ = NULL;
+ SavedSearchTable* _tmp42_ = NULL;
+ GtkEntry* _tmp43_ = NULL;
+ const gchar* _tmp44_ = NULL;
+ SearchOperator _tmp45_ = 0;
+ GeeArrayList* _tmp46_ = NULL;
+ SavedSearch* _tmp47_ = NULL;
+ SavedSearch* _tmp48_ = NULL;
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = saved_search_table_get_instance ();
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = _tmp2_;
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->search_title;
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = gtk_entry_get_text (_tmp4_);
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = saved_search_table_exists (_tmp3_, _tmp5_);
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = _tmp6_;
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_table_unref0 (_tmp3_);
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp7_) {
+#line 1544 "SavedSearchDialog.c"
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->edit_mode;
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp9_) {
+#line 1551 "SavedSearchDialog.c"
+ SavedSearch* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GtkEntry* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = self->priv->previous_search;
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_OBJECT, DataObject));
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _tmp11_;
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->search_title;
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = gtk_entry_get_text (_tmp13_);
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = g_strcmp0 (_tmp12_, _tmp14_) == 0;
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp12_);
+#line 1571 "SavedSearchDialog.c"
+ } else {
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = FALSE;
+#line 1575 "SavedSearchDialog.c"
+ }
+#line 769 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = !_tmp8_;
+#line 1579 "SavedSearchDialog.c"
+ } else {
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = FALSE;
+#line 1583 "SavedSearchDialog.c"
+ }
+#line 768 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp1_) {
+#line 1587 "SavedSearchDialog.c"
+ GtkEntry* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 770 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = self->priv->search_title;
+#line 770 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = gtk_entry_get_text (_tmp15_);
+#line 770 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = resources_rename_search_exists_message (_tmp16_);
+#line 770 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = _tmp17_;
+#line 770 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ app_window_error_message (_tmp18_, NULL);
+#line 770 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp18_);
+#line 771 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return;
+#line 1606 "SavedSearchDialog.c"
+ }
+#line 774 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = self->priv->edit_mode;
+#line 774 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp19_) {
+#line 1612 "SavedSearchDialog.c"
+ SavedSearchTable* _tmp20_ = NULL;
+ SavedSearchTable* _tmp21_ = NULL;
+ SavedSearch* _tmp22_ = NULL;
+#line 776 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = saved_search_table_get_instance ();
+#line 776 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = _tmp20_;
+#line 776 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = self->priv->previous_search;
+#line 776 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_table_remove (_tmp21_, _tmp22_);
+#line 776 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_table_unref0 (_tmp21_);
+#line 1626 "SavedSearchDialog.c"
+ }
+#line 780 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = gee_array_list_new (TYPE_SEARCH_CONDITION, (GBoxedCopyFunc) search_condition_ref, search_condition_unref, NULL, NULL, NULL);
+#line 780 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ conditions = _tmp23_;
+#line 1632 "SavedSearchDialog.c"
+ {
+ GeeArrayList* _c_list = NULL;
+ GeeArrayList* _tmp24_ = NULL;
+ GeeArrayList* _tmp25_ = NULL;
+ gint _c_size = 0;
+ GeeArrayList* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ gint _tmp28_ = 0;
+ gint _c_index = 0;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = self->priv->row_list;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = _g_object_ref0 (_tmp24_);
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_list = _tmp25_;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = _c_list;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = _tmp27_;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_size = _tmp28_;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_index = -1;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ while (TRUE) {
+#line 1660 "SavedSearchDialog.c"
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ SavedSearchDialogSearchRowContainer* c = NULL;
+ GeeArrayList* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gpointer _tmp34_ = NULL;
+ GeeArrayList* _tmp35_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp36_ = NULL;
+ SearchCondition* _tmp37_ = NULL;
+ SearchCondition* _tmp38_ = NULL;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp29_ = _c_index;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_index = _tmp29_ + 1;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp30_ = _c_index;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp31_ = _c_size;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!(_tmp30_ < _tmp31_)) {
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 1684 "SavedSearchDialog.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp32_ = _c_list;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp33_ = _c_index;
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp34_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp33_);
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = (SavedSearchDialogSearchRowContainer*) _tmp34_;
+#line 782 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp35_ = conditions;
+#line 782 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp36_ = c;
+#line 782 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp37_ = saved_search_dialog_search_row_container_get_search_condition (_tmp36_);
+#line 782 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp38_ = _tmp37_;
+#line 782 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp35_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp38_);
+#line 782 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (_tmp38_);
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (c);
+#line 1708 "SavedSearchDialog.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_c_list);
+#line 1712 "SavedSearchDialog.c"
+ }
+#line 786 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp39_ = self->priv->operator;
+#line 786 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp40_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, gtk_combo_box_get_type (), GtkComboBox));
+#line 786 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_operator = (SearchOperator) _tmp40_;
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp41_ = saved_search_table_get_instance ();
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp42_ = _tmp41_;
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp43_ = self->priv->search_title;
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp44_ = gtk_entry_get_text (_tmp43_);
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp45_ = search_operator;
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp46_ = conditions;
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp47_ = saved_search_table_create (_tmp42_, _tmp44_, _tmp45_, _tmp46_);
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp48_ = _tmp47_;
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp48_);
+#line 787 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_table_unref0 (_tmp42_);
+#line 767 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (conditions);
+#line 1742 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_on_row_changed (SavedSearchDialog* self, SavedSearchDialogSearchRowContainer* row) {
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 791 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 791 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (row));
+#line 792 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = row;
+#line 792 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_container_is_complete (_tmp0_);
+#line 792 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_set_valid (self, _tmp1_);
+#line 1760 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_on_title_changed (SavedSearchDialog* self) {
+ gboolean _tmp0_ = FALSE;
+#line 795 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 796 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = saved_search_dialog_is_title_valid (self);
+#line 796 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_set_valid (self, _tmp0_);
+#line 1772 "SavedSearchDialog.c"
+}
+
+
+static gchar* string_chomp (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1191 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1192 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1192 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1193 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1193 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strchomp (_tmp1_);
+#line 1194 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1194 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1795 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_is_title_valid (SavedSearchDialog* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GtkEntry* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ SavedSearchTable* _tmp14_ = NULL;
+ SavedSearchTable* _tmp15_ = NULL;
+ GtkEntry* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gboolean _tmp19_ = FALSE;
+#line 799 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_DIALOG (self), FALSE);
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->edit_mode;
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp2_) {
+#line 1821 "SavedSearchDialog.c"
+ SavedSearch* _tmp3_ = NULL;
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->previous_search;
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 1827 "SavedSearchDialog.c"
+ } else {
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = FALSE;
+#line 1831 "SavedSearchDialog.c"
+ }
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp1_) {
+#line 1835 "SavedSearchDialog.c"
+ SavedSearch* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GtkEntry* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->previous_search;
+#line 801 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_DATA_OBJECT, DataObject));
+#line 801 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _tmp5_;
+#line 801 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->search_title;
+#line 801 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = gtk_entry_get_text (_tmp7_);
+#line 801 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = g_strcmp0 (_tmp6_, _tmp8_) == 0;
+#line 801 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp6_);
+#line 1855 "SavedSearchDialog.c"
+ } else {
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = FALSE;
+#line 1859 "SavedSearchDialog.c"
+ }
+#line 800 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp0_) {
+#line 802 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = TRUE;
+#line 802 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 1867 "SavedSearchDialog.c"
+ }
+#line 803 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->search_title;
+#line 803 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = gtk_entry_get_text (_tmp9_);
+#line 803 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = string_chomp (_tmp10_);
+#line 803 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _tmp11_;
+#line 803 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = g_strcmp0 (_tmp12_, "") == 0;
+#line 803 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp12_);
+#line 803 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp13_) {
+#line 804 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = FALSE;
+#line 804 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 1887 "SavedSearchDialog.c"
+ }
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = saved_search_table_get_instance ();
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = _tmp14_;
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = self->priv->search_title;
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = gtk_entry_get_text (_tmp16_);
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = saved_search_table_exists (_tmp15_, _tmp17_);
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = _tmp18_;
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_table_unref0 (_tmp15_);
+#line 805 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp19_) {
+#line 806 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = FALSE;
+#line 806 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 1909 "SavedSearchDialog.c"
+ }
+#line 807 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = TRUE;
+#line 807 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 1915 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_set_valid (SavedSearchDialog* self, gboolean v) {
+ gboolean _tmp0_ = FALSE;
+ GtkDialog* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 811 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_DIALOG (self));
+#line 812 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = v;
+#line 812 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!_tmp0_) {
+#line 813 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->valid = FALSE;
+#line 1931 "SavedSearchDialog.c"
+ } else {
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 814 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = v;
+#line 814 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->valid;
+#line 814 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp1_ != _tmp2_) {
+#line 1941 "SavedSearchDialog.c"
+ gboolean _tmp3_ = FALSE;
+#line 815 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = saved_search_dialog_is_title_valid (self);
+#line 815 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp3_) {
+#line 1947 "SavedSearchDialog.c"
+ gint valid_rows = 0;
+ gint _tmp18_ = 0;
+ GeeArrayList* _tmp19_ = NULL;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+#line 817 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ valid_rows = 0;
+#line 1955 "SavedSearchDialog.c"
+ {
+ GeeArrayList* _c_list = NULL;
+ GeeArrayList* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ gint _c_size = 0;
+ GeeArrayList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _c_index = 0;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->row_list;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_list = _tmp5_;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _c_list;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = _tmp7_;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_size = _tmp8_;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_index = -1;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ while (TRUE) {
+#line 1983 "SavedSearchDialog.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ SavedSearchDialogSearchRowContainer* c = NULL;
+ GeeArrayList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = _c_index;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _c_index = _tmp9_ + 1;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = _c_index;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = _c_size;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2005 "SavedSearchDialog.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _c_list;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = _c_index;
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp13_);
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = (SavedSearchDialogSearchRowContainer*) _tmp14_;
+#line 819 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = c;
+#line 819 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = saved_search_dialog_search_row_container_is_complete (_tmp15_);
+#line 819 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp16_) {
+#line 2021 "SavedSearchDialog.c"
+ gint _tmp17_ = 0;
+#line 820 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = valid_rows;
+#line 820 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ valid_rows = _tmp17_ + 1;
+#line 2027 "SavedSearchDialog.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (c);
+#line 2031 "SavedSearchDialog.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_c_list);
+#line 2035 "SavedSearchDialog.c"
+ }
+#line 822 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = valid_rows;
+#line 822 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = self->priv->row_list;
+#line 822 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 822 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = _tmp20_;
+#line 822 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->valid = _tmp18_ == _tmp21_;
+#line 2047 "SavedSearchDialog.c"
+ } else {
+#line 824 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->valid = FALSE;
+#line 2051 "SavedSearchDialog.c"
+ }
+ }
+ }
+#line 828 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = self->priv->dialog;
+#line 828 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = self->priv->valid;
+#line 828 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_dialog_set_response_sensitive (_tmp22_, (gint) GTK_RESPONSE_OK, _tmp23_);
+#line 2061 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_construct (GType object_type) {
+ SavedSearchDialogSearchRowContainer* self = NULL;
+#line 24 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowContainer*) g_type_create_instance (object_type);
+#line 25 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_setup_gui (self);
+#line 26 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_set_type (self, SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT);
+#line 24 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 2075 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_new (void) {
+#line 24 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_container_construct (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER);
+#line 2082 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_construct_edit_existing (GType object_type, SearchCondition* sc) {
+ SavedSearchDialogSearchRowContainer* self = NULL;
+ SearchCondition* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp1_ = 0;
+ SearchConditionSearchType _tmp2_ = 0;
+ SearchCondition* _tmp3_ = NULL;
+ SearchConditionSearchType _tmp4_ = 0;
+ SearchConditionSearchType _tmp5_ = 0;
+ SavedSearchDialogSearchRow* _tmp6_ = NULL;
+ SearchCondition* _tmp7_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION (sc), NULL);
+#line 29 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowContainer*) g_type_create_instance (object_type);
+#line 30 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_setup_gui (self);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = sc;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = search_condition_get_search_type (_tmp0_);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_set_type (self, _tmp2_);
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = sc;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = search_condition_get_search_type (_tmp3_);
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = _tmp4_;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_set_type_combo_box (self, _tmp5_);
+#line 33 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->my_row;
+#line 33 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = sc;
+#line 33 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_populate (_tmp6_, _tmp7_);
+#line 29 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 2126 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowContainer* saved_search_dialog_search_row_container_new_edit_existing (SearchCondition* sc) {
+#line 29 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_container_construct_edit_existing (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, sc);
+#line 2133 "SavedSearchDialog.c"
+}
+
+
+static void _saved_search_dialog_search_row_container_on_type_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 49 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_on_type_changed ((SavedSearchDialogSearchRowContainer*) self);
+#line 2140 "SavedSearchDialog.c"
+}
+
+
+static gboolean _saved_search_dialog_search_row_container_on_removed_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+ gboolean result;
+ result = saved_search_dialog_search_row_container_on_removed ((SavedSearchDialogSearchRowContainer*) self, event);
+#line 52 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 2149 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_setup_gui (SavedSearchDialogSearchRowContainer* self) {
+ gint _tmp0_ = 0;
+ SearchConditionSearchType* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ GtkComboBoxText* _tmp18_ = NULL;
+ GtkButton* _tmp19_ = NULL;
+ GtkButton* _tmp20_ = NULL;
+ GtkAlignment* _tmp21_ = NULL;
+ GtkBox* _tmp22_ = NULL;
+ GtkBox* _tmp23_ = NULL;
+ GtkComboBoxText* _tmp24_ = NULL;
+ GtkBox* _tmp25_ = NULL;
+ GtkAlignment* _tmp26_ = NULL;
+ GtkBox* _tmp27_ = NULL;
+ GtkAlignment* _tmp28_ = NULL;
+ GtkAlignment* _tmp29_ = NULL;
+ GtkBox* _tmp30_ = NULL;
+ GtkButton* _tmp31_ = NULL;
+ GtkBox* _tmp32_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self));
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = search_condition_search_type_as_array (&_tmp0_);
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->search_types = (g_free (self->priv->search_types), NULL);
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->search_types = _tmp1_;
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->search_types_length1 = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->_search_types_size_ = self->priv->search_types_length1;
+#line 39 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = gee_hash_map_new (SEARCH_CONDITION_TYPE_SEARCH_TYPE, NULL, NULL, G_TYPE_INT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 39 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->search_types_index);
+#line 39 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->search_types_index = _tmp2_;
+#line 40 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_condition_search_type_sort_array (&self->priv->search_types, &self->priv->search_types_length1);
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp3_);
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->type_combo);
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->type_combo = _tmp3_;
+#line 2201 "SavedSearchDialog.c"
+ {
+ gint i = 0;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ i = 0;
+#line 2206 "SavedSearchDialog.c"
+ {
+ gboolean _tmp4_ = FALSE;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = TRUE;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ while (TRUE) {
+#line 2213 "SavedSearchDialog.c"
+ gint _tmp6_ = 0;
+ SearchConditionSearchType* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ SearchConditionSearchType st = 0;
+ SearchConditionSearchType* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ gint _tmp9_ = 0;
+ SearchConditionSearchType _tmp10_ = 0;
+ GeeHashMap* _tmp11_ = NULL;
+ SearchConditionSearchType _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GtkComboBoxText* _tmp14_ = NULL;
+ SearchConditionSearchType _tmp15_ = 0;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!_tmp4_) {
+#line 2231 "SavedSearchDialog.c"
+ gint _tmp5_ = 0;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = i;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ i = _tmp5_ + 1;
+#line 2237 "SavedSearchDialog.c"
+ }
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = FALSE;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = i;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->search_types;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7__length1 = self->priv->search_types_length1;
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!(_tmp6_ < _tmp7__length1)) {
+#line 43 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2251 "SavedSearchDialog.c"
+ }
+#line 44 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = self->priv->search_types;
+#line 44 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8__length1 = self->priv->search_types_length1;
+#line 44 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = i;
+#line 44 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = _tmp8_[_tmp9_];
+#line 44 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ st = _tmp10_;
+#line 45 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = self->priv->search_types_index;
+#line 45 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = st;
+#line 45 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = i;
+#line 45 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp12_), (gpointer) ((gintptr) _tmp13_));
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = self->priv->type_combo;
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = st;
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = search_condition_search_type_display_text (_tmp15_);
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = _tmp16_;
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp14_, _tmp17_);
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp17_);
+#line 2283 "SavedSearchDialog.c"
+ }
+ }
+ }
+#line 48 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_set_type_combo_box (self, SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT);
+#line 49 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = self->priv->type_combo;
+#line 49 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_container_on_type_changed_gtk_combo_box_changed, self);
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = (GtkButton*) gtk_button_new_from_icon_name ("list-remove-symbolic", GTK_ICON_SIZE_BUTTON);
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp19_);
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->remove_button);
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->remove_button = _tmp19_;
+#line 52 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = self->priv->remove_button;
+#line 52 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget), "button-press-event", (GCallback) _saved_search_dialog_search_row_container_on_removed_gtk_widget_button_press_event, self);
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 0, (gfloat) 0);
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp21_);
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->align);
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->align = _tmp21_;
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp22_);
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->box = _tmp22_;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = self->priv->box;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = self->priv->type_combo;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp23_, G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 58 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = self->priv->box;
+#line 58 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = self->priv->align;
+#line 58 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp25_, G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = self->priv->box;
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = (GtkAlignment*) gtk_alignment_new ((gfloat) 0, (gfloat) 0, (gfloat) 0, (gfloat) 0);
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp28_);
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp29_ = _tmp28_;
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp27_, G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget), TRUE, TRUE, (guint) 0);
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp29_);
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp30_ = self->priv->box;
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp31_ = self->priv->remove_button;
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp30_, G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 61 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp32_ = self->priv->box;
+#line 61 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget));
+#line 2355 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_on_type_changed (SavedSearchDialogSearchRowContainer* self) {
+ SearchConditionSearchType _tmp0_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self));
+#line 65 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = saved_search_dialog_search_row_container_get_search_type (self);
+#line 65 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_set_type (self, _tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (self, "changed", self);
+#line 2369 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_set_type_combo_box (SavedSearchDialogSearchRowContainer* self, SearchConditionSearchType st) {
+ GtkComboBoxText* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ SearchConditionSearchType _tmp2_ = 0;
+ gpointer _tmp3_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self));
+#line 70 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->type_combo;
+#line 70 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->search_types_index;
+#line 70 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = st;
+#line 70 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), (gpointer) ((gintptr) _tmp2_));
+#line 70 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox), (gint) ((gintptr) _tmp3_));
+#line 2390 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_set_type (SavedSearchDialogSearchRowContainer* self, SearchConditionSearchType type) {
+ SavedSearchDialogSearchRow* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp5_ = 0;
+ GtkAlignment* _tmp12_ = NULL;
+ SavedSearchDialogSearchRow* _tmp13_ = NULL;
+ GtkWidget* _tmp14_ = NULL;
+ GtkWidget* _tmp15_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self));
+#line 74 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->my_row;
+#line 74 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp0_ != NULL) {
+#line 2407 "SavedSearchDialog.c"
+ GtkAlignment* _tmp1_ = NULL;
+ SavedSearchDialogSearchRow* _tmp2_ = NULL;
+ GtkWidget* _tmp3_ = NULL;
+ GtkWidget* _tmp4_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->align;
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->my_row;
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = saved_search_dialog_search_row_get_widget (_tmp2_);
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_container_remove (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_container_get_type (), GtkContainer), _tmp4_);
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp4_);
+#line 2424 "SavedSearchDialog.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = type;
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ switch (_tmp5_) {
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT:
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME:
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME:
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_TAG:
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_COMMENT:
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_TITLE:
+#line 2442 "SavedSearchDialog.c"
+ {
+ SavedSearchDialogSearchRowText* _tmp6_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = saved_search_dialog_search_row_text_new (self);
+#line 84 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self->priv->my_row);
+#line 84 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->my_row = G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow);
+#line 85 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2453 "SavedSearchDialog.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE:
+#line 2457 "SavedSearchDialog.c"
+ {
+ SavedSearchDialogSearchRowMediaType* _tmp7_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = saved_search_dialog_search_row_media_type_new (self);
+#line 88 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self->priv->my_row);
+#line 88 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->my_row = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow);
+#line 89 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2468 "SavedSearchDialog.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE:
+#line 2472 "SavedSearchDialog.c"
+ {
+ SavedSearchDialogSearchRowFlagged* _tmp8_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = saved_search_dialog_search_row_flagged_new (self);
+#line 92 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self->priv->my_row);
+#line 92 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->my_row = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow);
+#line 93 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2483 "SavedSearchDialog.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE:
+#line 2487 "SavedSearchDialog.c"
+ {
+ SavedSearchDialogSearchRowModified* _tmp9_ = NULL;
+#line 96 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = saved_search_dialog_search_row_modified_new (self);
+#line 96 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self->priv->my_row);
+#line 96 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->my_row = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow);
+#line 97 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2498 "SavedSearchDialog.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_RATING:
+#line 2502 "SavedSearchDialog.c"
+ {
+ SavedSearchDialogSearchRowRating* _tmp10_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = saved_search_dialog_search_row_rating_new (self);
+#line 100 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self->priv->my_row);
+#line 100 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->my_row = G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow);
+#line 101 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2513 "SavedSearchDialog.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_DATE:
+#line 2517 "SavedSearchDialog.c"
+ {
+ SavedSearchDialogSearchRowDate* _tmp11_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = saved_search_dialog_search_row_date_new (self);
+#line 104 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self->priv->my_row);
+#line 104 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->my_row = G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow);
+#line 105 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2528 "SavedSearchDialog.c"
+ }
+ default:
+ {
+#line 108 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _vala_assert (FALSE, "false");
+#line 109 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ break;
+#line 2536 "SavedSearchDialog.c"
+ }
+ }
+#line 112 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = self->priv->align;
+#line 112 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->my_row;
+#line 112 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = saved_search_dialog_search_row_get_widget (_tmp13_);
+#line 112 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = _tmp14_;
+#line 112 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_container_get_type (), GtkContainer), _tmp15_);
+#line 112 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp15_);
+#line 2551 "SavedSearchDialog.c"
+}
+
+
+static SearchConditionSearchType saved_search_dialog_search_row_container_get_search_type (SavedSearchDialogSearchRowContainer* self) {
+ SearchConditionSearchType result = 0;
+ SearchConditionSearchType* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ GtkComboBoxText* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ SearchConditionSearchType _tmp3_ = 0;
+#line 115 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self), 0);
+#line 116 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->search_types;
+#line 116 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0__length1 = self->priv->search_types_length1;
+#line 116 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->type_combo;
+#line 116 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_combo_box_get_type (), GtkComboBox));
+#line 116 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = _tmp0_[_tmp2_];
+#line 116 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp3_;
+#line 116 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 2578 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_container_on_removed (SavedSearchDialogSearchRowContainer* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+#line 119 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self), FALSE);
+#line 119 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 120 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (self, "remove", self);
+#line 121 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = FALSE;
+#line 121 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 2594 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_allow_removal (SavedSearchDialogSearchRowContainer* self, gboolean allow) {
+ GtkButton* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 124 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self));
+#line 125 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->remove_button;
+#line 125 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = allow;
+#line 125 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_set_sensitive (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget), _tmp1_);
+#line 2609 "SavedSearchDialog.c"
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_container_get_widget (SavedSearchDialogSearchRowContainer* self) {
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self), NULL);
+#line 129 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->box;
+#line 129 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 129 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 129 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 2627 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_container_get_search_condition (SavedSearchDialogSearchRowContainer* self) {
+ SearchCondition* result = NULL;
+ SavedSearchDialogSearchRow* _tmp0_ = NULL;
+ SearchCondition* _tmp1_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self), NULL);
+#line 133 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->my_row;
+#line 133 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_get_search_condition (_tmp0_);
+#line 133 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 133 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 2645 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_container_is_complete (SavedSearchDialogSearchRowContainer* self) {
+ gboolean result = FALSE;
+ SavedSearchDialogSearchRow* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (self), FALSE);
+#line 137 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->my_row;
+#line 137 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_is_complete (_tmp0_);
+#line 137 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 137 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 2663 "SavedSearchDialog.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER) (gpointer data1, gpointer arg_1, gpointer data2);
+ register GMarshalFunc_VOID__SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (n_param_values == 2);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ data1 = closure->data;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 2682 "SavedSearchDialog.c"
+ } else {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ data2 = closure->data;
+#line 2688 "SavedSearchDialog.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ callback = (GMarshalFunc_VOID__SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER) (marshal_data ? marshal_data : cc->callback);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ callback (data1, saved_search_dialog_value_get_search_row_container (param_values + 1), data2);
+#line 2694 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_value_search_row_container_init (GValue* value) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 2701 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_value_search_row_container_free_value (GValue* value) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (value->data[0].v_pointer) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_unref (value->data[0].v_pointer);
+#line 2710 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_value_search_row_container_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (src_value->data[0].v_pointer) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ dest_value->data[0].v_pointer = saved_search_dialog_search_row_container_ref (src_value->data[0].v_pointer);
+#line 2720 "SavedSearchDialog.c"
+ } else {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2724 "SavedSearchDialog.c"
+ }
+}
+
+
+static gpointer saved_search_dialog_value_search_row_container_peek_pointer (const GValue* value) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return value->data[0].v_pointer;
+#line 2732 "SavedSearchDialog.c"
+}
+
+
+static gchar* saved_search_dialog_value_search_row_container_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (collect_values[0].v_pointer) {
+#line 2739 "SavedSearchDialog.c"
+ SavedSearchDialogSearchRowContainer* object;
+ object = collect_values[0].v_pointer;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2746 "SavedSearchDialog.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2750 "SavedSearchDialog.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = saved_search_dialog_search_row_container_ref (object);
+#line 2754 "SavedSearchDialog.c"
+ } else {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 2758 "SavedSearchDialog.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 2762 "SavedSearchDialog.c"
+}
+
+
+static gchar* saved_search_dialog_value_search_row_container_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SavedSearchDialogSearchRowContainer** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!object_p) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2773 "SavedSearchDialog.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!value->data[0].v_pointer) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = NULL;
+#line 2779 "SavedSearchDialog.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2783 "SavedSearchDialog.c"
+ } else {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = saved_search_dialog_search_row_container_ref (value->data[0].v_pointer);
+#line 2787 "SavedSearchDialog.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 2791 "SavedSearchDialog.c"
+}
+
+
+static GParamSpec* saved_search_dialog_param_spec_search_row_container (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ SavedSearchDialogParamSpecSearchRowContainer* spec;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER), NULL);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return G_PARAM_SPEC (spec);
+#line 2805 "SavedSearchDialog.c"
+}
+
+
+static gpointer saved_search_dialog_value_get_search_row_container (const GValue* value) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER), NULL);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return value->data[0].v_pointer;
+#line 2814 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_value_set_search_row_container (GValue* value, gpointer v_object) {
+ SavedSearchDialogSearchRowContainer* old;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER));
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ old = value->data[0].v_pointer;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (v_object) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER));
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = v_object;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_ref (value->data[0].v_pointer);
+#line 2834 "SavedSearchDialog.c"
+ } else {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 2838 "SavedSearchDialog.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (old) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_unref (old);
+#line 2844 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_value_take_search_row_container (GValue* value, gpointer v_object) {
+ SavedSearchDialogSearchRowContainer* old;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER));
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ old = value->data[0].v_pointer;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (v_object) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER));
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = v_object;
+#line 2863 "SavedSearchDialog.c"
+ } else {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 2867 "SavedSearchDialog.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (old) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_unref (old);
+#line 2873 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_search_row_container_class_init (SavedSearchDialogSearchRowContainerClass * klass) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_container_parent_class = g_type_class_peek_parent (klass);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowContainerClass *) klass)->finalize = saved_search_dialog_search_row_container_finalize;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogSearchRowContainerPrivate));
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_new ("remove", SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER, G_TYPE_NONE, 1, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_new ("changed", SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER, G_TYPE_NONE, 1, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER);
+#line 2889 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_instance_init (SavedSearchDialogSearchRowContainer * self) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER_GET_PRIVATE (self);
+#line 22 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->my_row = NULL;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->ref_count = 1;
+#line 2900 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_finalize (SavedSearchDialogSearchRowContainer* obj) {
+ SavedSearchDialogSearchRowContainer * self;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, SavedSearchDialogSearchRowContainer);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_destroy (self);
+#line 15 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->type_combo);
+#line 16 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 17 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->align);
+#line 18 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->remove_button);
+#line 19 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->search_types = (g_free (self->priv->search_types), NULL);
+#line 20 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->search_types_index);
+#line 22 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self->priv->my_row);
+#line 2924 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_container_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_container_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_container_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { saved_search_dialog_value_search_row_container_init, saved_search_dialog_value_search_row_container_free_value, saved_search_dialog_value_search_row_container_copy_value, saved_search_dialog_value_search_row_container_peek_pointer, "p", saved_search_dialog_value_search_row_container_collect_value, "p", saved_search_dialog_value_search_row_container_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowContainerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_container_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRowContainer), 0, (GInstanceInitFunc) saved_search_dialog_search_row_container_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType saved_search_dialog_search_row_container_type_id;
+ saved_search_dialog_search_row_container_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SavedSearchDialogSearchRowContainer", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&saved_search_dialog_search_row_container_type_id__volatile, saved_search_dialog_search_row_container_type_id);
+ }
+ return saved_search_dialog_search_row_container_type_id__volatile;
+}
+
+
+static gpointer saved_search_dialog_search_row_container_ref (gpointer instance) {
+ SavedSearchDialogSearchRowContainer* self;
+ self = instance;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return instance;
+#line 2949 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_container_unref (gpointer instance) {
+ SavedSearchDialogSearchRowContainer* self;
+ self = instance;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CONTAINER_GET_CLASS (self)->finalize (self);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2962 "SavedSearchDialog.c"
+ }
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_real_get_widget (SavedSearchDialogSearchRow* self) {
+#line 144 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_critical ("Type `%s' does not implement abstract method `saved_search_dialog_search_row_get_widget'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 144 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 2972 "SavedSearchDialog.c"
+}
+
+
+GtkWidget* saved_search_dialog_search_row_get_widget (SavedSearchDialogSearchRow* self) {
+#line 144 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW (self), NULL);
+#line 144 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return SAVED_SEARCH_DIALOG_SEARCH_ROW_GET_CLASS (self)->get_widget (self);
+#line 2981 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_real_get_search_condition (SavedSearchDialogSearchRow* self) {
+#line 147 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_critical ("Type `%s' does not implement abstract method `saved_search_dialog_search_row_get_search_condition'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 147 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 2990 "SavedSearchDialog.c"
+}
+
+
+SearchCondition* saved_search_dialog_search_row_get_search_condition (SavedSearchDialogSearchRow* self) {
+#line 147 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW (self), NULL);
+#line 147 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return SAVED_SEARCH_DIALOG_SEARCH_ROW_GET_CLASS (self)->get_search_condition (self);
+#line 2999 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_real_populate (SavedSearchDialogSearchRow* self, SearchCondition* sc) {
+#line 150 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_critical ("Type `%s' does not implement abstract method `saved_search_dialog_search_row_populate'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 150 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return;
+#line 3008 "SavedSearchDialog.c"
+}
+
+
+void saved_search_dialog_search_row_populate (SavedSearchDialogSearchRow* self, SearchCondition* sc) {
+#line 150 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW (self));
+#line 150 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_GET_CLASS (self)->populate (self, sc);
+#line 3017 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_real_is_complete (SavedSearchDialogSearchRow* self) {
+#line 153 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_critical ("Type `%s' does not implement abstract method `saved_search_dialog_search_row_is_complete'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 153 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return FALSE;
+#line 3026 "SavedSearchDialog.c"
+}
+
+
+gboolean saved_search_dialog_search_row_is_complete (SavedSearchDialogSearchRow* self) {
+#line 153 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW (self), FALSE);
+#line 153 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return SAVED_SEARCH_DIALOG_SEARCH_ROW_GET_CLASS (self)->is_complete (self);
+#line 3035 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRow* saved_search_dialog_search_row_construct (GType object_type) {
+ SavedSearchDialogSearchRow* self = NULL;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRow*) g_type_create_instance (object_type);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 3045 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_value_search_row_init (GValue* value) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 3052 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_value_search_row_free_value (GValue* value) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (value->data[0].v_pointer) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_unref (value->data[0].v_pointer);
+#line 3061 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_value_search_row_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (src_value->data[0].v_pointer) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ dest_value->data[0].v_pointer = saved_search_dialog_search_row_ref (src_value->data[0].v_pointer);
+#line 3071 "SavedSearchDialog.c"
+ } else {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 3075 "SavedSearchDialog.c"
+ }
+}
+
+
+static gpointer saved_search_dialog_value_search_row_peek_pointer (const GValue* value) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return value->data[0].v_pointer;
+#line 3083 "SavedSearchDialog.c"
+}
+
+
+static gchar* saved_search_dialog_value_search_row_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (collect_values[0].v_pointer) {
+#line 3090 "SavedSearchDialog.c"
+ SavedSearchDialogSearchRow* object;
+ object = collect_values[0].v_pointer;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3097 "SavedSearchDialog.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 3101 "SavedSearchDialog.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = saved_search_dialog_search_row_ref (object);
+#line 3105 "SavedSearchDialog.c"
+ } else {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 3109 "SavedSearchDialog.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 3113 "SavedSearchDialog.c"
+}
+
+
+static gchar* saved_search_dialog_value_search_row_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SavedSearchDialogSearchRow** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!object_p) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 3124 "SavedSearchDialog.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!value->data[0].v_pointer) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = NULL;
+#line 3130 "SavedSearchDialog.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = value->data[0].v_pointer;
+#line 3134 "SavedSearchDialog.c"
+ } else {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = saved_search_dialog_search_row_ref (value->data[0].v_pointer);
+#line 3138 "SavedSearchDialog.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 3142 "SavedSearchDialog.c"
+}
+
+
+static GParamSpec* saved_search_dialog_param_spec_search_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ SavedSearchDialogParamSpecSearchRow* spec;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW), NULL);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return G_PARAM_SPEC (spec);
+#line 3156 "SavedSearchDialog.c"
+}
+
+
+static gpointer saved_search_dialog_value_get_search_row (const GValue* value) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW), NULL);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return value->data[0].v_pointer;
+#line 3165 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_value_set_search_row (GValue* value, gpointer v_object) {
+ SavedSearchDialogSearchRow* old;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW));
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ old = value->data[0].v_pointer;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (v_object) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW));
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = v_object;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_ref (value->data[0].v_pointer);
+#line 3185 "SavedSearchDialog.c"
+ } else {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 3189 "SavedSearchDialog.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (old) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_unref (old);
+#line 3195 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_value_take_search_row (GValue* value, gpointer v_object) {
+ SavedSearchDialogSearchRow* old;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW));
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ old = value->data[0].v_pointer;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (v_object) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW));
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = v_object;
+#line 3214 "SavedSearchDialog.c"
+ } else {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 3218 "SavedSearchDialog.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (old) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_unref (old);
+#line 3224 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_search_row_class_init (SavedSearchDialogSearchRowClass * klass) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_parent_class = g_type_class_peek_parent (klass);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->finalize = saved_search_dialog_search_row_finalize;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_widget = saved_search_dialog_search_row_real_get_widget;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_search_condition = saved_search_dialog_search_row_real_get_search_condition;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->populate = saved_search_dialog_search_row_real_populate;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->is_complete = saved_search_dialog_search_row_real_is_complete;
+#line 3242 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_instance_init (SavedSearchDialogSearchRow * self) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->ref_count = 1;
+#line 3249 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_finalize (SavedSearchDialogSearchRow* obj) {
+ SavedSearchDialogSearchRow * self;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, SavedSearchDialogSearchRow);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_destroy (self);
+#line 3259 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { saved_search_dialog_value_search_row_init, saved_search_dialog_value_search_row_free_value, saved_search_dialog_value_search_row_copy_value, saved_search_dialog_value_search_row_peek_pointer, "p", saved_search_dialog_value_search_row_collect_value, "p", saved_search_dialog_value_search_row_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRow), 0, (GInstanceInitFunc) saved_search_dialog_search_row_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType saved_search_dialog_search_row_type_id;
+ saved_search_dialog_search_row_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SavedSearchDialogSearchRow", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&saved_search_dialog_search_row_type_id__volatile, saved_search_dialog_search_row_type_id);
+ }
+ return saved_search_dialog_search_row_type_id__volatile;
+}
+
+
+static gpointer saved_search_dialog_search_row_ref (gpointer instance) {
+ SavedSearchDialogSearchRow* self;
+ self = instance;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return instance;
+#line 3284 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_unref (gpointer instance) {
+ SavedSearchDialogSearchRow* self;
+ self = instance;
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_GET_CLASS (self)->finalize (self);
+#line 142 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3297 "SavedSearchDialog.c"
+ }
+}
+
+
+static void _saved_search_dialog_search_row_text_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 190 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_text_on_changed ((SavedSearchDialogSearchRowText*) self);
+#line 3305 "SavedSearchDialog.c"
+}
+
+
+static void _saved_search_dialog_search_row_text_on_changed_gtk_editable_changed (GtkEditable* _sender, gpointer self) {
+#line 191 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_text_on_changed ((SavedSearchDialogSearchRowText*) self);
+#line 3312 "SavedSearchDialog.c"
+}
+
+
+static gpointer _saved_search_dialog_search_row_container_ref0 (gpointer self) {
+#line 164 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self ? saved_search_dialog_search_row_container_ref (self) : NULL;
+#line 3319 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowText* saved_search_dialog_search_row_text_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent) {
+ SavedSearchDialogSearchRowText* self = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkComboBoxText* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkComboBoxText* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkComboBoxText* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ GtkComboBoxText* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GtkComboBoxText* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkComboBoxText* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GtkComboBoxText* _tmp17_ = NULL;
+ GtkComboBoxText* _tmp18_ = NULL;
+ GtkEntry* _tmp19_ = NULL;
+ GtkEntry* _tmp20_ = NULL;
+ GtkEntry* _tmp21_ = NULL;
+ GtkEntry* _tmp22_ = NULL;
+ GtkBox* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ GtkComboBoxText* _tmp25_ = NULL;
+ GtkBox* _tmp26_ = NULL;
+ GtkEntry* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (parent), NULL);
+#line 163 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowText*) saved_search_dialog_search_row_construct (object_type);
+#line 164 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = parent;
+#line 164 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _saved_search_dialog_search_row_container_ref0 (_tmp0_);
+#line 164 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 164 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->parent = _tmp1_;
+#line 167 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 167 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp2_);
+#line 167 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->text_context);
+#line 167 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->text_context = _tmp2_;
+#line 168 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->text_context;
+#line 168 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _ ("contains");
+#line 168 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp3_, _tmp4_);
+#line 169 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->text_context;
+#line 169 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _ ("is exactly");
+#line 169 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp5_, _tmp6_);
+#line 170 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->text_context;
+#line 170 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = _ ("starts with");
+#line 170 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp7_, _tmp8_);
+#line 171 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->text_context;
+#line 171 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = _ ("ends with");
+#line 171 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp9_, _tmp10_);
+#line 172 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = self->priv->text_context;
+#line 172 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _ ("does not contain");
+#line 172 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp11_, _tmp12_);
+#line 173 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->text_context;
+#line 173 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = _ ("is not set");
+#line 173 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp13_, _tmp14_);
+#line 174 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = self->priv->text_context;
+#line 174 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = _ ("is set");
+#line 174 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp15_, _tmp16_);
+#line 175 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = self->priv->text_context;
+#line 175 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 176 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = self->priv->text_context;
+#line 176 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_text_on_changed_gtk_combo_box_changed, self);
+#line 178 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = (GtkEntry*) gtk_entry_new ();
+#line 178 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp19_);
+#line 178 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->entry);
+#line 178 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->entry = _tmp19_;
+#line 179 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = self->priv->entry;
+#line 179 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_entry_set_width_chars (_tmp20_, 25);
+#line 180 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = self->priv->entry;
+#line 180 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_entry_set_activates_default (_tmp21_, TRUE);
+#line 181 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = self->priv->entry;
+#line 181 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GTK_TYPE_EDITABLE, GtkEditable), "changed", (GCallback) _saved_search_dialog_search_row_text_on_changed_gtk_editable_changed, self);
+#line 183 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 183 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp23_);
+#line 183 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 183 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->box = _tmp23_;
+#line 184 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = self->priv->box;
+#line 184 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = self->priv->text_context;
+#line 184 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 185 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = self->priv->box;
+#line 185 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = self->priv->entry;
+#line 185 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp26_, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 186 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = self->priv->box;
+#line 186 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp28_, gtk_widget_get_type (), GtkWidget));
+#line 163 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 3470 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowText* saved_search_dialog_search_row_text_new (SavedSearchDialogSearchRowContainer* parent) {
+#line 163 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_text_construct (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, parent);
+#line 3477 "SavedSearchDialog.c"
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_text_real_get_widget (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowText * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowText);
+#line 195 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->box;
+#line 195 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 195 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 195 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 3496 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_text_real_get_search_condition (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowText * self;
+ SearchCondition* result = NULL;
+ SearchConditionSearchType type = 0;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp1_ = 0;
+ gchar* text = NULL;
+ GtkEntry* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ SearchConditionTextContext context = 0;
+ SearchConditionTextContext _tmp5_ = 0;
+ SearchConditionText* c = NULL;
+ SearchConditionText* _tmp6_ = NULL;
+#line 198 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowText);
+#line 199 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 199 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_container_get_search_type (_tmp0_);
+#line 199 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ type = _tmp1_;
+#line 200 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->entry;
+#line 200 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gtk_entry_get_text (_tmp2_);
+#line 200 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 200 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ text = _tmp4_;
+#line 201 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = saved_search_dialog_search_row_text_get_text_context (self);
+#line 201 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ context = _tmp5_;
+#line 202 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_text_new (type, text, context);
+#line 202 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = _tmp6_;
+#line 203 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (c, TYPE_SEARCH_CONDITION, SearchCondition);
+#line 203 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (text);
+#line 203 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 3544 "SavedSearchDialog.c"
+}
+
+
+static gpointer _search_condition_ref0 (gpointer self) {
+#line 207 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self ? search_condition_ref (self) : NULL;
+#line 3551 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_text_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc) {
+ SavedSearchDialogSearchRowText * self;
+ SearchConditionText* text = NULL;
+ SearchCondition* _tmp0_ = NULL;
+ SearchConditionText* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ SearchConditionTextContext _tmp3_ = 0;
+ SearchConditionTextContext _tmp4_ = 0;
+ GtkEntry* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 206 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowText);
+#line 206 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (sc));
+#line 207 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = sc;
+#line 207 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_SEARCH_CONDITION_TEXT) ? ((SearchConditionText*) _tmp0_) : NULL);
+#line 207 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ text = _tmp1_;
+#line 208 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _vala_assert (text != NULL, "text != null");
+#line 209 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->text_context;
+#line 209 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = search_condition_text_get_context (text);
+#line 209 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 209 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp4_);
+#line 210 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->entry;
+#line 210 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_text_get_text (text);
+#line 210 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = _tmp6_;
+#line 210 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_entry_set_text (_tmp5_, _tmp7_);
+#line 211 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_text_on_changed (self);
+#line 206 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (text);
+#line 3598 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_text_real_is_complete (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowText * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GtkEntry* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 214 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowText);
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->entry;
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gtk_entry_get_text (_tmp2_);
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = string_chomp (_tmp4_);
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _tmp5_;
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = g_strcmp0 (_tmp6_, "") != 0;
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp6_);
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp7_) {
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = TRUE;
+#line 3633 "SavedSearchDialog.c"
+ } else {
+ SearchConditionTextContext _tmp8_ = 0;
+#line 216 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = saved_search_dialog_search_row_text_get_text_context (self);
+#line 216 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _tmp8_ == SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET;
+#line 3640 "SavedSearchDialog.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp1_) {
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = TRUE;
+#line 3646 "SavedSearchDialog.c"
+ } else {
+ SearchConditionTextContext _tmp9_ = 0;
+#line 217 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = saved_search_dialog_search_row_text_get_text_context (self);
+#line 217 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = _tmp9_ == SEARCH_CONDITION_TEXT_CONTEXT_IS_SET;
+#line 3653 "SavedSearchDialog.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp0_;
+#line 215 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 3659 "SavedSearchDialog.c"
+}
+
+
+static SearchConditionTextContext saved_search_dialog_search_row_text_get_text_context (SavedSearchDialogSearchRowText* self) {
+ SearchConditionTextContext result = 0;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 220 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_TEXT (self), 0);
+#line 221 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->text_context;
+#line 221 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox));
+#line 221 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = (SearchConditionTextContext) _tmp1_;
+#line 221 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 3677 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_text_on_changed (SavedSearchDialogSearchRowText* self) {
+ gboolean _tmp0_ = FALSE;
+ SearchConditionTextContext _tmp1_ = 0;
+ SavedSearchDialogSearchRowContainer* _tmp5_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp6_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_TEXT (self));
+#line 225 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_text_get_text_context (self);
+#line 225 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp1_ == SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET) {
+#line 225 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = TRUE;
+#line 3694 "SavedSearchDialog.c"
+ } else {
+ SearchConditionTextContext _tmp2_ = 0;
+#line 226 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = saved_search_dialog_search_row_text_get_text_context (self);
+#line 226 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = _tmp2_ == SEARCH_CONDITION_TEXT_CONTEXT_IS_SET;
+#line 3701 "SavedSearchDialog.c"
+ }
+#line 225 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp0_) {
+#line 3705 "SavedSearchDialog.c"
+ GtkEntry* _tmp3_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->entry;
+#line 227 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 3711 "SavedSearchDialog.c"
+ } else {
+ GtkEntry* _tmp4_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->entry;
+#line 229 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 3718 "SavedSearchDialog.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->parent;
+#line 232 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->parent;
+#line 232 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (_tmp5_, "changed", _tmp6_);
+#line 3726 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_text_class_init (SavedSearchDialogSearchRowTextClass * klass) {
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_text_parent_class = g_type_class_peek_parent (klass);
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->finalize = saved_search_dialog_search_row_text_finalize;
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogSearchRowTextPrivate));
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_widget = saved_search_dialog_search_row_text_real_get_widget;
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_search_condition = saved_search_dialog_search_row_text_real_get_search_condition;
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->populate = saved_search_dialog_search_row_text_real_populate;
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->is_complete = saved_search_dialog_search_row_text_real_is_complete;
+#line 3745 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_text_instance_init (SavedSearchDialogSearchRowText * self) {
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_SEARCH_ROW_TEXT_GET_PRIVATE (self);
+#line 3752 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_text_finalize (SavedSearchDialogSearchRow* obj) {
+ SavedSearchDialogSearchRowText * self;
+ GtkComboBoxText* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkEntry* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_TEXT, SavedSearchDialogSearchRowText);
+#line 190 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->text_context;
+#line 190 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp1_, NULL, FALSE);
+#line 190 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_search_row_text_on_changed_gtk_combo_box_changed, self);
+#line 191 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->entry;
+#line 191 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", GTK_TYPE_EDITABLE, &_tmp3_, NULL, FALSE);
+#line 191 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GTK_TYPE_EDITABLE, GtkEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _saved_search_dialog_search_row_text_on_changed_gtk_editable_changed, self);
+#line 157 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 158 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->text_context);
+#line 159 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->entry);
+#line 161 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 156 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CLASS (saved_search_dialog_search_row_text_parent_class)->finalize (obj);
+#line 3786 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_text_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_text_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_text_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_text_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRowText), 0, (GInstanceInitFunc) saved_search_dialog_search_row_text_instance_init, NULL };
+ GType saved_search_dialog_search_row_text_type_id;
+ saved_search_dialog_search_row_text_type_id = g_type_register_static (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, "SavedSearchDialogSearchRowText", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_dialog_search_row_text_type_id__volatile, saved_search_dialog_search_row_text_type_id);
+ }
+ return saved_search_dialog_search_row_text_type_id__volatile;
+}
+
+
+static void _saved_search_dialog_search_row_media_type_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 268 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_media_type_on_changed ((SavedSearchDialogSearchRowMediaType*) self);
+#line 3805 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowMediaType* saved_search_dialog_search_row_media_type_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent) {
+ SavedSearchDialogSearchRowMediaType* self = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkComboBoxText* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkComboBoxText* _tmp7_ = NULL;
+ GtkComboBoxText* _tmp8_ = NULL;
+ GtkComboBoxText* _tmp9_ = NULL;
+ GtkComboBoxText* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GtkComboBoxText* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GtkComboBoxText* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GtkComboBoxText* _tmp16_ = NULL;
+ GtkComboBoxText* _tmp17_ = NULL;
+ GtkBox* _tmp18_ = NULL;
+ GtkBox* _tmp19_ = NULL;
+ GtkComboBoxText* _tmp20_ = NULL;
+ GtkBox* _tmp21_ = NULL;
+ GtkComboBoxText* _tmp22_ = NULL;
+ GtkBox* _tmp23_ = NULL;
+#line 243 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (parent), NULL);
+#line 243 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowMediaType*) saved_search_dialog_search_row_construct (object_type);
+#line 244 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = parent;
+#line 244 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _saved_search_dialog_search_row_container_ref0 (_tmp0_);
+#line 244 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 244 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->parent = _tmp1_;
+#line 247 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 247 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp2_);
+#line 247 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->media_context);
+#line 247 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->media_context = _tmp2_;
+#line 248 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->media_context;
+#line 248 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _ ("is");
+#line 248 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp3_, _tmp4_);
+#line 249 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->media_context;
+#line 249 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _ ("is not");
+#line 249 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp5_, _tmp6_);
+#line 250 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->media_context;
+#line 250 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 251 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = self->priv->media_context;
+#line 251 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_media_type_on_changed_gtk_combo_box_changed, self);
+#line 254 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 254 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp9_);
+#line 254 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->media_type);
+#line 254 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->media_type = _tmp9_;
+#line 255 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = self->priv->media_type;
+#line 255 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = _ ("any photo");
+#line 255 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp10_, _tmp11_);
+#line 256 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = self->priv->media_type;
+#line 256 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = _ ("a raw photo");
+#line 256 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp12_, _tmp13_);
+#line 257 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = self->priv->media_type;
+#line 257 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = _ ("a video");
+#line 257 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp14_, _tmp15_);
+#line 258 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = self->priv->media_type;
+#line 258 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 259 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = self->priv->media_type;
+#line 259 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_media_type_on_changed_gtk_combo_box_changed, self);
+#line 261 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 261 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp18_);
+#line 261 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 261 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->box = _tmp18_;
+#line 262 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = self->priv->box;
+#line 262 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = self->priv->media_context;
+#line 262 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 263 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = self->priv->box;
+#line 263 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = self->priv->media_type;
+#line 263 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 264 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = self->priv->box;
+#line 264 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget));
+#line 243 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 3935 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowMediaType* saved_search_dialog_search_row_media_type_new (SavedSearchDialogSearchRowContainer* parent) {
+#line 243 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_media_type_construct (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, parent);
+#line 3942 "SavedSearchDialog.c"
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_media_type_real_get_widget (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowMediaType * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 272 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaType);
+#line 273 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->box;
+#line 273 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 273 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 273 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 3961 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_media_type_real_get_search_condition (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowMediaType * self;
+ SearchCondition* result = NULL;
+ SearchConditionSearchType search_type = 0;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp1_ = 0;
+ SearchConditionMediaTypeContext context = 0;
+ GtkComboBoxText* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ SearchConditionMediaTypeMediaType type = 0;
+ GtkComboBoxText* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ SearchConditionMediaType* c = NULL;
+ SearchConditionMediaType* _tmp6_ = NULL;
+#line 276 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaType);
+#line 277 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 277 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_container_get_search_type (_tmp0_);
+#line 277 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_type = _tmp1_;
+#line 278 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->media_context;
+#line 278 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox));
+#line 278 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ context = (SearchConditionMediaTypeContext) _tmp3_;
+#line 279 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->media_type;
+#line 279 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_combo_box_get_type (), GtkComboBox));
+#line 279 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ type = (SearchConditionMediaTypeMediaType) _tmp5_;
+#line 280 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_media_type_new (search_type, context, type);
+#line 280 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = _tmp6_;
+#line 281 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (c, TYPE_SEARCH_CONDITION, SearchCondition);
+#line 281 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4007 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_media_type_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc) {
+ SavedSearchDialogSearchRowMediaType * self;
+ SearchConditionMediaType* media = NULL;
+ SearchCondition* _tmp0_ = NULL;
+ SearchConditionMediaType* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ SearchConditionMediaTypeContext _tmp3_ = 0;
+ SearchConditionMediaTypeContext _tmp4_ = 0;
+ GtkComboBoxText* _tmp5_ = NULL;
+ SearchConditionMediaTypeMediaType _tmp6_ = 0;
+ SearchConditionMediaTypeMediaType _tmp7_ = 0;
+#line 284 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaType);
+#line 284 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (sc));
+#line 285 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = sc;
+#line 285 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_SEARCH_CONDITION_MEDIA_TYPE) ? ((SearchConditionMediaType*) _tmp0_) : NULL);
+#line 285 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ media = _tmp1_;
+#line 286 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _vala_assert (media != NULL, "media != null");
+#line 287 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->media_context;
+#line 287 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = search_condition_media_type_get_context (media);
+#line 287 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 287 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp4_);
+#line 288 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->media_type;
+#line 288 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_media_type_get_media_type (media);
+#line 288 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = _tmp6_;
+#line 288 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp7_);
+#line 284 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (media);
+#line 4052 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_media_type_real_is_complete (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowMediaType * self;
+ gboolean result = FALSE;
+#line 291 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaType);
+#line 292 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = TRUE;
+#line 292 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4065 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_media_type_on_changed (SavedSearchDialogSearchRowMediaType* self) {
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+#line 295 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_MEDIA_TYPE (self));
+#line 296 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 296 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->parent;
+#line 296 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (_tmp0_, "changed", _tmp1_);
+#line 4080 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_media_type_class_init (SavedSearchDialogSearchRowMediaTypeClass * klass) {
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_media_type_parent_class = g_type_class_peek_parent (klass);
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->finalize = saved_search_dialog_search_row_media_type_finalize;
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogSearchRowMediaTypePrivate));
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_widget = saved_search_dialog_search_row_media_type_real_get_widget;
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_search_condition = saved_search_dialog_search_row_media_type_real_get_search_condition;
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->populate = saved_search_dialog_search_row_media_type_real_populate;
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->is_complete = saved_search_dialog_search_row_media_type_real_is_complete;
+#line 4099 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_media_type_instance_init (SavedSearchDialogSearchRowMediaType * self) {
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_SEARCH_ROW_MEDIA_TYPE_GET_PRIVATE (self);
+#line 4106 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_media_type_finalize (SavedSearchDialogSearchRow* obj) {
+ SavedSearchDialogSearchRowMediaType * self;
+ GtkComboBoxText* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkComboBoxText* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MEDIA_TYPE, SavedSearchDialogSearchRowMediaType);
+#line 268 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->media_context;
+#line 268 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp1_, NULL, FALSE);
+#line 268 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_search_row_media_type_on_changed_gtk_combo_box_changed, self);
+#line 269 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->media_type;
+#line 269 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp3_, NULL, FALSE);
+#line 269 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _saved_search_dialog_search_row_media_type_on_changed_gtk_combo_box_changed, self);
+#line 237 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 238 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->media_context);
+#line 239 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->media_type);
+#line 241 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 236 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CLASS (saved_search_dialog_search_row_media_type_parent_class)->finalize (obj);
+#line 4140 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_media_type_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_media_type_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_media_type_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowMediaTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_media_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRowMediaType), 0, (GInstanceInitFunc) saved_search_dialog_search_row_media_type_instance_init, NULL };
+ GType saved_search_dialog_search_row_media_type_type_id;
+ saved_search_dialog_search_row_media_type_type_id = g_type_register_static (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, "SavedSearchDialogSearchRowMediaType", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_dialog_search_row_media_type_type_id__volatile, saved_search_dialog_search_row_media_type_type_id);
+ }
+ return saved_search_dialog_search_row_media_type_type_id__volatile;
+}
+
+
+static void _saved_search_dialog_search_row_modified_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 330 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_modified_on_changed ((SavedSearchDialogSearchRowModified*) self);
+#line 4159 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowModified* saved_search_dialog_search_row_modified_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent) {
+ SavedSearchDialogSearchRowModified* self = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkComboBoxText* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkComboBoxText* _tmp7_ = NULL;
+ GtkComboBoxText* _tmp8_ = NULL;
+ GtkComboBoxText* _tmp9_ = NULL;
+ GtkComboBoxText* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GtkComboBoxText* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ GtkComboBoxText* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ GtkComboBoxText* _tmp16_ = NULL;
+ GtkComboBoxText* _tmp17_ = NULL;
+ GtkBox* _tmp18_ = NULL;
+ GtkBox* _tmp19_ = NULL;
+ GtkComboBoxText* _tmp20_ = NULL;
+ GtkBox* _tmp21_ = NULL;
+ GtkComboBoxText* _tmp22_ = NULL;
+ GtkBox* _tmp23_ = NULL;
+#line 307 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (parent), NULL);
+#line 307 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowModified*) saved_search_dialog_search_row_construct (object_type);
+#line 308 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = parent;
+#line 308 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _saved_search_dialog_search_row_container_ref0 (_tmp0_);
+#line 308 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 308 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->parent = _tmp1_;
+#line 310 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 310 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp2_);
+#line 310 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->modified_context);
+#line 310 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->modified_context = _tmp2_;
+#line 311 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->modified_context;
+#line 311 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _ ("has");
+#line 311 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp3_, _tmp4_);
+#line 312 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->modified_context;
+#line 312 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _ ("has no");
+#line 312 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp5_, _tmp6_);
+#line 313 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->modified_context;
+#line 313 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 314 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = self->priv->modified_context;
+#line 314 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_modified_on_changed_gtk_combo_box_changed, self);
+#line 316 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 316 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp9_);
+#line 316 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->modified_state);
+#line 316 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->modified_state = _tmp9_;
+#line 317 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = self->priv->modified_state;
+#line 317 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = _ ("modifications");
+#line 317 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp10_, _tmp11_);
+#line 318 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = self->priv->modified_state;
+#line 318 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = _ ("internal modifications");
+#line 318 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp12_, _tmp13_);
+#line 319 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = self->priv->modified_state;
+#line 319 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = _ ("external modifications");
+#line 319 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp14_, _tmp15_);
+#line 320 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = self->priv->modified_state;
+#line 320 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 321 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = self->priv->modified_state;
+#line 321 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_modified_on_changed_gtk_combo_box_changed, self);
+#line 323 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 323 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp18_);
+#line 323 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 323 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->box = _tmp18_;
+#line 324 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = self->priv->box;
+#line 324 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = self->priv->modified_context;
+#line 324 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp19_, G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 325 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = self->priv->box;
+#line 325 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = self->priv->modified_state;
+#line 325 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp21_, G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 326 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = self->priv->box;
+#line 326 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, gtk_widget_get_type (), GtkWidget));
+#line 307 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 4289 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowModified* saved_search_dialog_search_row_modified_new (SavedSearchDialogSearchRowContainer* parent) {
+#line 307 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_modified_construct (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, parent);
+#line 4296 "SavedSearchDialog.c"
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_modified_real_get_widget (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowModified * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModified);
+#line 335 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->box;
+#line 335 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 335 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 335 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4315 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_modified_real_get_search_condition (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowModified * self;
+ SearchCondition* result = NULL;
+ SearchConditionSearchType search_type = 0;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp1_ = 0;
+ SearchConditionModifiedContext context = 0;
+ GtkComboBoxText* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ SearchConditionModifiedState state = 0;
+ GtkComboBoxText* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ SearchConditionModified* c = NULL;
+ SearchConditionModified* _tmp6_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModified);
+#line 339 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 339 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_container_get_search_type (_tmp0_);
+#line 339 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_type = _tmp1_;
+#line 340 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->modified_context;
+#line 340 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox));
+#line 340 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ context = (SearchConditionModifiedContext) _tmp3_;
+#line 341 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->modified_state;
+#line 341 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_combo_box_get_type (), GtkComboBox));
+#line 341 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ state = (SearchConditionModifiedState) _tmp5_;
+#line 342 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_modified_new (search_type, context, state);
+#line 342 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = _tmp6_;
+#line 343 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (c, TYPE_SEARCH_CONDITION, SearchCondition);
+#line 343 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4361 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_modified_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc) {
+ SavedSearchDialogSearchRowModified * self;
+ SearchConditionModified* scm = NULL;
+ SearchCondition* _tmp0_ = NULL;
+ SearchConditionModified* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ SearchConditionModifiedState _tmp3_ = 0;
+ SearchConditionModifiedState _tmp4_ = 0;
+ GtkComboBoxText* _tmp5_ = NULL;
+ SearchConditionModifiedContext _tmp6_ = 0;
+ SearchConditionModifiedContext _tmp7_ = 0;
+#line 346 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModified);
+#line 346 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (sc));
+#line 347 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = sc;
+#line 347 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_SEARCH_CONDITION_MODIFIED) ? ((SearchConditionModified*) _tmp0_) : NULL);
+#line 347 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ scm = _tmp1_;
+#line 348 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _vala_assert (scm != NULL, "scm != null");
+#line 349 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->modified_state;
+#line 349 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = search_condition_modified_get_state (scm);
+#line 349 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 349 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp4_);
+#line 350 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->modified_context;
+#line 350 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_modified_get_context (scm);
+#line 350 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = _tmp6_;
+#line 350 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp7_);
+#line 346 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (scm);
+#line 4406 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_modified_real_is_complete (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowModified * self;
+ gboolean result = FALSE;
+#line 353 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModified);
+#line 354 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = TRUE;
+#line 354 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4419 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_modified_on_changed (SavedSearchDialogSearchRowModified* self) {
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+#line 357 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_MODIFIED (self));
+#line 358 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 358 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->parent;
+#line 358 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (_tmp0_, "changed", _tmp1_);
+#line 4434 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_modified_class_init (SavedSearchDialogSearchRowModifiedClass * klass) {
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_modified_parent_class = g_type_class_peek_parent (klass);
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->finalize = saved_search_dialog_search_row_modified_finalize;
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogSearchRowModifiedPrivate));
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_widget = saved_search_dialog_search_row_modified_real_get_widget;
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_search_condition = saved_search_dialog_search_row_modified_real_get_search_condition;
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->populate = saved_search_dialog_search_row_modified_real_populate;
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->is_complete = saved_search_dialog_search_row_modified_real_is_complete;
+#line 4453 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_modified_instance_init (SavedSearchDialogSearchRowModified * self) {
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_SEARCH_ROW_MODIFIED_GET_PRIVATE (self);
+#line 4460 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_modified_finalize (SavedSearchDialogSearchRow* obj) {
+ SavedSearchDialogSearchRowModified * self;
+ GtkComboBoxText* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkComboBoxText* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_MODIFIED, SavedSearchDialogSearchRowModified);
+#line 330 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->modified_state;
+#line 330 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp1_, NULL, FALSE);
+#line 330 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_search_row_modified_on_changed_gtk_combo_box_changed, self);
+#line 331 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->modified_context;
+#line 331 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp3_, NULL, FALSE);
+#line 331 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _saved_search_dialog_search_row_modified_on_changed_gtk_combo_box_changed, self);
+#line 301 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 302 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->modified_context);
+#line 303 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->modified_state);
+#line 305 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 300 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CLASS (saved_search_dialog_search_row_modified_parent_class)->finalize (obj);
+#line 4494 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_modified_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_modified_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_modified_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowModifiedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_modified_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRowModified), 0, (GInstanceInitFunc) saved_search_dialog_search_row_modified_instance_init, NULL };
+ GType saved_search_dialog_search_row_modified_type_id;
+ saved_search_dialog_search_row_modified_type_id = g_type_register_static (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, "SavedSearchDialogSearchRowModified", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_dialog_search_row_modified_type_id__volatile, saved_search_dialog_search_row_modified_type_id);
+ }
+ return saved_search_dialog_search_row_modified_type_id__volatile;
+}
+
+
+static void _saved_search_dialog_search_row_flagged_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 385 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_flagged_on_changed ((SavedSearchDialogSearchRowFlagged*) self);
+#line 4513 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowFlagged* saved_search_dialog_search_row_flagged_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent) {
+ SavedSearchDialogSearchRowFlagged* self = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkComboBoxText* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkComboBoxText* _tmp7_ = NULL;
+ GtkComboBoxText* _tmp8_ = NULL;
+ GtkBox* _tmp9_ = NULL;
+ GtkBox* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GtkLabel* _tmp12_ = NULL;
+ GtkLabel* _tmp13_ = NULL;
+ GtkBox* _tmp14_ = NULL;
+ GtkComboBoxText* _tmp15_ = NULL;
+ GtkBox* _tmp16_ = NULL;
+#line 368 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (parent), NULL);
+#line 368 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowFlagged*) saved_search_dialog_search_row_construct (object_type);
+#line 369 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = parent;
+#line 369 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _saved_search_dialog_search_row_container_ref0 (_tmp0_);
+#line 369 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 369 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->parent = _tmp1_;
+#line 372 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 372 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp2_);
+#line 372 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->flagged_state);
+#line 372 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->flagged_state = _tmp2_;
+#line 373 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->flagged_state;
+#line 373 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _ ("flagged");
+#line 373 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp3_, _tmp4_);
+#line 374 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->flagged_state;
+#line 374 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _ ("not flagged");
+#line 374 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp5_, _tmp6_);
+#line 375 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->flagged_state;
+#line 375 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 376 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = self->priv->flagged_state;
+#line 376 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_flagged_on_changed_gtk_combo_box_changed, self);
+#line 378 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 378 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp9_);
+#line 378 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 378 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->box = _tmp9_;
+#line 379 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = self->priv->box;
+#line 379 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = _ ("is");
+#line 379 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = (GtkLabel*) gtk_label_new (_tmp11_);
+#line 379 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp12_);
+#line 379 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = _tmp12_;
+#line 379 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp10_, G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 379 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp13_);
+#line 380 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = self->priv->box;
+#line 380 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = self->priv->flagged_state;
+#line 380 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp14_, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 381 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = self->priv->box;
+#line 381 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget));
+#line 368 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 4610 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowFlagged* saved_search_dialog_search_row_flagged_new (SavedSearchDialogSearchRowContainer* parent) {
+#line 368 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_flagged_construct (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, parent);
+#line 4617 "SavedSearchDialog.c"
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_flagged_real_get_widget (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowFlagged * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 388 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlagged);
+#line 389 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->box;
+#line 389 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 389 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 389 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4636 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_flagged_real_get_search_condition (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowFlagged * self;
+ SearchCondition* result = NULL;
+ SearchConditionSearchType search_type = 0;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp1_ = 0;
+ SearchConditionFlaggedState state = 0;
+ GtkComboBoxText* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ SearchConditionFlagged* c = NULL;
+ SearchConditionFlagged* _tmp4_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlagged);
+#line 393 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 393 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_container_get_search_type (_tmp0_);
+#line 393 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_type = _tmp1_;
+#line 394 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->flagged_state;
+#line 394 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox));
+#line 394 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ state = (SearchConditionFlaggedState) _tmp3_;
+#line 395 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = search_condition_flagged_new (search_type, state);
+#line 395 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = _tmp4_;
+#line 396 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (c, TYPE_SEARCH_CONDITION, SearchCondition);
+#line 396 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4673 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_flagged_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc) {
+ SavedSearchDialogSearchRowFlagged * self;
+ SearchConditionFlagged* f = NULL;
+ SearchCondition* _tmp0_ = NULL;
+ SearchConditionFlagged* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ SearchConditionFlaggedState _tmp3_ = 0;
+ SearchConditionFlaggedState _tmp4_ = 0;
+#line 399 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlagged);
+#line 399 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (sc));
+#line 400 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = sc;
+#line 400 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_SEARCH_CONDITION_FLAGGED) ? ((SearchConditionFlagged*) _tmp0_) : NULL);
+#line 400 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ f = _tmp1_;
+#line 401 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _vala_assert (f != NULL, "f != null");
+#line 402 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->flagged_state;
+#line 402 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = search_condition_flagged_get_state (f);
+#line 402 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 402 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp4_);
+#line 399 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (f);
+#line 4707 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_flagged_real_is_complete (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowFlagged * self;
+ gboolean result = FALSE;
+#line 405 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlagged);
+#line 406 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = TRUE;
+#line 406 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 4720 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_flagged_on_changed (SavedSearchDialogSearchRowFlagged* self) {
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+#line 409 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_FLAGGED (self));
+#line 410 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 410 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->parent;
+#line 410 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (_tmp0_, "changed", _tmp1_);
+#line 4735 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_flagged_class_init (SavedSearchDialogSearchRowFlaggedClass * klass) {
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_flagged_parent_class = g_type_class_peek_parent (klass);
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->finalize = saved_search_dialog_search_row_flagged_finalize;
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogSearchRowFlaggedPrivate));
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_widget = saved_search_dialog_search_row_flagged_real_get_widget;
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_search_condition = saved_search_dialog_search_row_flagged_real_get_search_condition;
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->populate = saved_search_dialog_search_row_flagged_real_populate;
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->is_complete = saved_search_dialog_search_row_flagged_real_is_complete;
+#line 4754 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_flagged_instance_init (SavedSearchDialogSearchRowFlagged * self) {
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_SEARCH_ROW_FLAGGED_GET_PRIVATE (self);
+#line 4761 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_flagged_finalize (SavedSearchDialogSearchRow* obj) {
+ SavedSearchDialogSearchRowFlagged * self;
+ GtkComboBoxText* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_FLAGGED, SavedSearchDialogSearchRowFlagged);
+#line 385 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->flagged_state;
+#line 385 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp1_, NULL, FALSE);
+#line 385 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_search_row_flagged_on_changed_gtk_combo_box_changed, self);
+#line 363 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 364 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->flagged_state);
+#line 366 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 362 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CLASS (saved_search_dialog_search_row_flagged_parent_class)->finalize (obj);
+#line 4785 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_flagged_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_flagged_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_flagged_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowFlaggedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_flagged_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRowFlagged), 0, (GInstanceInitFunc) saved_search_dialog_search_row_flagged_instance_init, NULL };
+ GType saved_search_dialog_search_row_flagged_type_id;
+ saved_search_dialog_search_row_flagged_type_id = g_type_register_static (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, "SavedSearchDialogSearchRowFlagged", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_dialog_search_row_flagged_type_id__volatile, saved_search_dialog_search_row_flagged_type_id);
+ }
+ return saved_search_dialog_search_row_flagged_type_id__volatile;
+}
+
+
+static void _saved_search_dialog_search_row_rating_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 451 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_rating_on_changed ((SavedSearchDialogSearchRowRating*) self);
+#line 4804 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowRating* saved_search_dialog_search_row_rating_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent) {
+ SavedSearchDialogSearchRowRating* self = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkComboBoxText* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkComboBoxText* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkComboBoxText* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ GtkComboBoxText* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GtkComboBoxText* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GtkComboBoxText* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ GtkComboBoxText* _tmp17_ = NULL;
+ GtkComboBoxText* _tmp18_ = NULL;
+ GtkComboBoxText* _tmp19_ = NULL;
+ GtkComboBoxText* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GtkComboBoxText* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ GtkComboBoxText* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ GtkComboBoxText* _tmp26_ = NULL;
+ GtkComboBoxText* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+ GtkBox* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ GtkLabel* _tmp31_ = NULL;
+ GtkLabel* _tmp32_ = NULL;
+ GtkBox* _tmp33_ = NULL;
+ GtkComboBoxText* _tmp34_ = NULL;
+ GtkBox* _tmp35_ = NULL;
+ GtkComboBoxText* _tmp36_ = NULL;
+ GtkBox* _tmp37_ = NULL;
+#line 421 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (parent), NULL);
+#line 421 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowRating*) saved_search_dialog_search_row_construct (object_type);
+#line 422 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = parent;
+#line 422 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _saved_search_dialog_search_row_container_ref0 (_tmp0_);
+#line 422 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 422 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->parent = _tmp1_;
+#line 425 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 425 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp2_);
+#line 425 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->rating);
+#line 425 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->rating = _tmp2_;
+#line 426 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->rating;
+#line 426 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = resources_rating_combo_box (RATING_REJECTED);
+#line 426 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp3_, _tmp4_);
+#line 427 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->rating;
+#line 427 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = resources_rating_combo_box (RATING_UNRATED);
+#line 427 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp5_, _tmp6_);
+#line 428 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->rating;
+#line 428 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = resources_rating_combo_box (RATING_ONE);
+#line 428 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp7_, _tmp8_);
+#line 429 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->rating;
+#line 429 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = resources_rating_combo_box (RATING_TWO);
+#line 429 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp9_, _tmp10_);
+#line 430 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = self->priv->rating;
+#line 430 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = resources_rating_combo_box (RATING_THREE);
+#line 430 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp11_, _tmp12_);
+#line 431 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->rating;
+#line 431 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = resources_rating_combo_box (RATING_FOUR);
+#line 431 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp13_, _tmp14_);
+#line 432 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = self->priv->rating;
+#line 432 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = resources_rating_combo_box (RATING_FIVE);
+#line 432 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp15_, _tmp16_);
+#line 433 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = self->priv->rating;
+#line 433 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 434 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = self->priv->rating;
+#line 434 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_rating_on_changed_gtk_combo_box_changed, self);
+#line 436 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 436 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp19_);
+#line 436 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->context);
+#line 436 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->context = _tmp19_;
+#line 437 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = self->priv->context;
+#line 437 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = _ ("and higher");
+#line 437 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp20_, _tmp21_);
+#line 438 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = self->priv->context;
+#line 438 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = _ ("only");
+#line 438 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp22_, _tmp23_);
+#line 439 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = self->priv->context;
+#line 439 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = _ ("and lower");
+#line 439 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp24_, _tmp25_);
+#line 440 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = self->priv->context;
+#line 440 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 441 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = self->priv->context;
+#line 441 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_rating_on_changed_gtk_combo_box_changed, self);
+#line 443 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 443 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp28_);
+#line 443 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 443 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->box = _tmp28_;
+#line 444 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp29_ = self->priv->box;
+#line 444 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp30_ = _ ("is");
+#line 444 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp31_ = (GtkLabel*) gtk_label_new (_tmp30_);
+#line 444 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp31_);
+#line 444 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp32_ = _tmp31_;
+#line 444 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp29_, G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 444 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_tmp32_);
+#line 445 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp33_ = self->priv->box;
+#line 445 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp34_ = self->priv->rating;
+#line 445 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp33_, G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 446 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp35_ = self->priv->box;
+#line 446 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp36_ = self->priv->context;
+#line 446 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp35_, G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 447 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp37_ = self->priv->box;
+#line 447 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp37_, gtk_widget_get_type (), GtkWidget));
+#line 421 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 4992 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowRating* saved_search_dialog_search_row_rating_new (SavedSearchDialogSearchRowContainer* parent) {
+#line 421 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_rating_construct (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, parent);
+#line 4999 "SavedSearchDialog.c"
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_rating_real_get_widget (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowRating * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 455 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRating);
+#line 456 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->box;
+#line 456 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 456 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 456 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5018 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_rating_real_get_search_condition (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowRating * self;
+ SearchCondition* result = NULL;
+ SearchConditionSearchType search_type = 0;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp1_ = 0;
+ Rating search_rating = 0;
+ GtkComboBoxText* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ SearchConditionRatingContext search_context = 0;
+ GtkComboBoxText* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ SearchConditionRating* c = NULL;
+ SearchConditionRating* _tmp6_ = NULL;
+#line 459 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRating);
+#line 460 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 460 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_container_get_search_type (_tmp0_);
+#line 460 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_type = _tmp1_;
+#line 461 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->rating;
+#line 461 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox));
+#line 461 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_rating = ((Rating) _tmp3_) + RATING_REJECTED;
+#line 462 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->context;
+#line 462 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_combo_box_get_type (), GtkComboBox));
+#line 462 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_context = (SearchConditionRatingContext) _tmp5_;
+#line 463 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_rating_new (search_type, search_rating, search_context);
+#line 463 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = _tmp6_;
+#line 464 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (c, TYPE_SEARCH_CONDITION, SearchCondition);
+#line 464 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5064 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_rating_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc) {
+ SavedSearchDialogSearchRowRating * self;
+ SearchConditionRating* r = NULL;
+ SearchCondition* _tmp0_ = NULL;
+ SearchConditionRating* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ SearchConditionRatingContext _tmp3_ = 0;
+ SearchConditionRatingContext _tmp4_ = 0;
+ GtkComboBoxText* _tmp5_ = NULL;
+ Rating _tmp6_ = 0;
+ Rating _tmp7_ = 0;
+#line 467 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRating);
+#line 467 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (sc));
+#line 468 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = sc;
+#line 468 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_SEARCH_CONDITION_RATING) ? ((SearchConditionRating*) _tmp0_) : NULL);
+#line 468 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ r = _tmp1_;
+#line 469 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _vala_assert (r != NULL, "r != null");
+#line 470 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->context;
+#line 470 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = search_condition_rating_get_context (r);
+#line 470 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 470 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp4_);
+#line 471 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->rating;
+#line 471 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = search_condition_rating_get_rating (r);
+#line 471 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = _tmp6_;
+#line 471 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_combo_box_get_type (), GtkComboBox), (gint) (_tmp7_ - RATING_REJECTED));
+#line 467 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (r);
+#line 5109 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_rating_real_is_complete (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowRating * self;
+ gboolean result = FALSE;
+#line 474 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRating);
+#line 475 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = TRUE;
+#line 475 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5122 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_rating_on_changed (SavedSearchDialogSearchRowRating* self) {
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+#line 478 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_RATING (self));
+#line 479 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 479 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->parent;
+#line 479 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (_tmp0_, "changed", _tmp1_);
+#line 5137 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_rating_class_init (SavedSearchDialogSearchRowRatingClass * klass) {
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_rating_parent_class = g_type_class_peek_parent (klass);
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->finalize = saved_search_dialog_search_row_rating_finalize;
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogSearchRowRatingPrivate));
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_widget = saved_search_dialog_search_row_rating_real_get_widget;
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_search_condition = saved_search_dialog_search_row_rating_real_get_search_condition;
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->populate = saved_search_dialog_search_row_rating_real_populate;
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->is_complete = saved_search_dialog_search_row_rating_real_is_complete;
+#line 5156 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_rating_instance_init (SavedSearchDialogSearchRowRating * self) {
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_SEARCH_ROW_RATING_GET_PRIVATE (self);
+#line 5163 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_rating_finalize (SavedSearchDialogSearchRow* obj) {
+ SavedSearchDialogSearchRowRating * self;
+ GtkComboBoxText* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkComboBoxText* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_RATING, SavedSearchDialogSearchRowRating);
+#line 451 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->rating;
+#line 451 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp1_, NULL, FALSE);
+#line 451 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_search_row_rating_on_changed_gtk_combo_box_changed, self);
+#line 452 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->context;
+#line 452 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp3_, NULL, FALSE);
+#line 452 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _saved_search_dialog_search_row_rating_on_changed_gtk_combo_box_changed, self);
+#line 415 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 416 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->rating);
+#line 417 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->context);
+#line 419 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 414 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CLASS (saved_search_dialog_search_row_rating_parent_class)->finalize (obj);
+#line 5197 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_rating_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_rating_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_rating_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowRatingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_rating_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRowRating), 0, (GInstanceInitFunc) saved_search_dialog_search_row_rating_instance_init, NULL };
+ GType saved_search_dialog_search_row_rating_type_id;
+ saved_search_dialog_search_row_rating_type_id = g_type_register_static (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, "SavedSearchDialogSearchRowRating", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_dialog_search_row_rating_type_id__volatile, saved_search_dialog_search_row_rating_type_id);
+ }
+ return saved_search_dialog_search_row_rating_type_id__volatile;
+}
+
+
+static void _saved_search_dialog_search_row_date_on_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) {
+#line 529 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_on_changed ((SavedSearchDialogSearchRowDate*) self);
+#line 5216 "SavedSearchDialog.c"
+}
+
+
+static void _saved_search_dialog_search_row_date_on_one_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 512 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_on_one_clicked ((SavedSearchDialogSearchRowDate*) self);
+#line 5223 "SavedSearchDialog.c"
+}
+
+
+static void _saved_search_dialog_search_row_date_on_two_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
+#line 514 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_on_two_clicked ((SavedSearchDialogSearchRowDate*) self);
+#line 5230 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowDate* saved_search_dialog_search_row_date_construct (GType object_type, SavedSearchDialogSearchRowContainer* parent) {
+ SavedSearchDialogSearchRowDate* self = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ GtkComboBoxText* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GtkComboBoxText* _tmp5_ = NULL;
+ const gchar* _tmp6_ = NULL;
+ GtkComboBoxText* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GtkComboBoxText* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ GtkComboBoxText* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ GtkComboBoxText* _tmp13_ = NULL;
+ GtkComboBoxText* _tmp14_ = NULL;
+ GtkCalendar* _tmp15_ = NULL;
+ GtkCalendar* _tmp16_ = NULL;
+ GtkButton* _tmp17_ = NULL;
+ GtkButton* _tmp18_ = NULL;
+ GtkButton* _tmp19_ = NULL;
+ GtkButton* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ GtkLabel* _tmp22_ = NULL;
+ GtkBox* _tmp23_ = NULL;
+ GtkBox* _tmp24_ = NULL;
+ GtkComboBoxText* _tmp25_ = NULL;
+ GtkBox* _tmp26_ = NULL;
+ GtkButton* _tmp27_ = NULL;
+ GtkBox* _tmp28_ = NULL;
+ GtkLabel* _tmp29_ = NULL;
+ GtkBox* _tmp30_ = NULL;
+ GtkButton* _tmp31_ = NULL;
+ GtkBox* _tmp32_ = NULL;
+#line 495 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_CONTAINER (parent), NULL);
+#line 495 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = (SavedSearchDialogSearchRowDate*) saved_search_dialog_search_row_construct (object_type);
+#line 496 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = parent;
+#line 496 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _saved_search_dialog_search_row_container_ref0 (_tmp0_);
+#line 496 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 496 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->parent = _tmp1_;
+#line 499 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = (GtkComboBoxText*) gtk_combo_box_text_new ();
+#line 499 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp2_);
+#line 499 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->context);
+#line 499 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->context = _tmp2_;
+#line 500 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->context;
+#line 500 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _ ("is exactly");
+#line 500 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp3_, _tmp4_);
+#line 501 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->context;
+#line 501 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _ ("is after");
+#line 501 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp5_, _tmp6_);
+#line 502 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->context;
+#line 502 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = _ ("is before");
+#line 502 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp7_, _tmp8_);
+#line 503 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->context;
+#line 503 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = _ ("is between");
+#line 503 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp9_, _tmp10_);
+#line 504 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = self->priv->context;
+#line 504 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _ ("is not set");
+#line 504 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_text_append_text (_tmp11_, _tmp12_);
+#line 505 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->context;
+#line 505 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, gtk_combo_box_get_type (), GtkComboBox), 0);
+#line 506 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = self->priv->context;
+#line 506 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_combo_box_get_type (), GtkComboBox), "changed", (GCallback) _saved_search_dialog_search_row_date_on_changed_gtk_combo_box_changed, self);
+#line 508 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = (GtkCalendar*) gtk_calendar_new ();
+#line 508 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp15_);
+#line 508 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->cal_one);
+#line 508 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->cal_one = _tmp15_;
+#line 509 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = (GtkCalendar*) gtk_calendar_new ();
+#line 509 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp16_);
+#line 509 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->cal_two);
+#line 509 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->cal_two = _tmp16_;
+#line 511 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = (GtkButton*) gtk_button_new ();
+#line 511 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp17_);
+#line 511 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->label_one);
+#line 511 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->label_one = _tmp17_;
+#line 512 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = self->priv->label_one;
+#line 512 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (_tmp18_, "clicked", (GCallback) _saved_search_dialog_search_row_date_on_one_clicked_gtk_button_clicked, self);
+#line 513 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = (GtkButton*) gtk_button_new ();
+#line 513 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp19_);
+#line 513 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->label_two);
+#line 513 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->label_two = _tmp19_;
+#line 514 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = self->priv->label_two;
+#line 514 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_connect (_tmp20_, "clicked", (GCallback) _saved_search_dialog_search_row_date_on_two_clicked_gtk_button_clicked, self);
+#line 516 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = _ ("and");
+#line 516 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = (GtkLabel*) gtk_label_new (_tmp21_);
+#line 516 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp22_);
+#line 516 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->and);
+#line 516 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->and = _tmp22_;
+#line 518 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+#line 518 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp23_);
+#line 518 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 518 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->box = _tmp23_;
+#line 519 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = self->priv->box;
+#line 519 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = self->priv->context;
+#line 519 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp24_, G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 520 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = self->priv->box;
+#line 520 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = self->priv->label_one;
+#line 520 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp26_, G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 521 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = self->priv->box;
+#line 521 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp29_ = self->priv->and;
+#line 521 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp28_, G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 522 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp30_ = self->priv->box;
+#line 522 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp31_ = self->priv->label_two;
+#line 522 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_box_pack_start (_tmp30_, G_TYPE_CHECK_INSTANCE_CAST (_tmp31_, gtk_widget_get_type (), GtkWidget), FALSE, FALSE, (guint) 0);
+#line 524 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp32_ = self->priv->box;
+#line 524 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, gtk_widget_get_type (), GtkWidget));
+#line 525 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_update_date_labels (self);
+#line 495 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return self;
+#line 5417 "SavedSearchDialog.c"
+}
+
+
+static SavedSearchDialogSearchRowDate* saved_search_dialog_search_row_date_new (SavedSearchDialogSearchRowContainer* parent) {
+#line 495 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return saved_search_dialog_search_row_date_construct (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, parent);
+#line 5424 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_update_date_labels (SavedSearchDialogSearchRowDate* self) {
+ SearchConditionDateContext c = 0;
+ GtkComboBoxText* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ SearchConditionDateContext _tmp2_ = 0;
+ GtkButton* _tmp13_ = NULL;
+ GDateTime* _tmp14_ = NULL;
+ GDateTime* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ GtkButton* _tmp18_ = NULL;
+ GDateTime* _tmp19_ = NULL;
+ GDateTime* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self));
+#line 533 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->context;
+#line 533 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox));
+#line 533 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = (SearchConditionDateContext) _tmp1_;
+#line 536 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = c;
+#line 536 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp2_ == SEARCH_CONDITION_DATE_CONTEXT_BETWEEN) {
+#line 5455 "SavedSearchDialog.c"
+ GtkButton* _tmp3_ = NULL;
+ GtkLabel* _tmp4_ = NULL;
+ GtkButton* _tmp5_ = NULL;
+#line 537 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->label_one;
+#line 537 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget));
+#line 538 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = self->priv->and;
+#line 538 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget));
+#line 539 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = self->priv->label_two;
+#line 539 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, gtk_widget_get_type (), GtkWidget));
+#line 5471 "SavedSearchDialog.c"
+ } else {
+ SearchConditionDateContext _tmp6_ = 0;
+#line 540 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = c;
+#line 540 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp6_ == SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET) {
+#line 5478 "SavedSearchDialog.c"
+ GtkButton* _tmp7_ = NULL;
+ GtkLabel* _tmp8_ = NULL;
+ GtkButton* _tmp9_ = NULL;
+#line 541 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = self->priv->label_one;
+#line 541 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_widget_get_type (), GtkWidget));
+#line 542 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = self->priv->and;
+#line 542 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_widget_get_type (), GtkWidget));
+#line 543 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = self->priv->label_two;
+#line 543 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_widget_get_type (), GtkWidget));
+#line 5494 "SavedSearchDialog.c"
+ } else {
+ GtkButton* _tmp10_ = NULL;
+ GtkLabel* _tmp11_ = NULL;
+ GtkButton* _tmp12_ = NULL;
+#line 545 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = self->priv->label_one;
+#line 545 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_widget_get_type (), GtkWidget));
+#line 546 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = self->priv->and;
+#line 546 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_widget_get_type (), GtkWidget));
+#line 547 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = self->priv->label_two;
+#line 547 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_hide (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_widget_get_type (), GtkWidget));
+#line 5511 "SavedSearchDialog.c"
+ }
+ }
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = self->priv->label_one;
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = saved_search_dialog_search_row_date_get_date_one (self);
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = _tmp14_;
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = g_date_time_format (_tmp15_, SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_DATE_FORMAT);
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = _tmp16_;
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_button_set_label (_tmp13_, _tmp17_);
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp17_);
+#line 551 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_date_time_unref0 (_tmp15_);
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = self->priv->label_two;
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = saved_search_dialog_search_row_date_get_date_two (self);
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = _tmp19_;
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = g_date_time_format (_tmp20_, SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_DATE_FORMAT);
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = _tmp21_;
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_button_set_label (_tmp18_, _tmp22_);
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_free0 (_tmp22_);
+#line 552 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_date_time_unref0 (_tmp20_);
+#line 5546 "SavedSearchDialog.c"
+}
+
+
+static GtkWidget* saved_search_dialog_search_row_date_real_get_widget (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowDate * self;
+ GtkWidget* result = NULL;
+ GtkBox* _tmp0_ = NULL;
+ GtkWidget* _tmp1_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDate);
+#line 556 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->box;
+#line 556 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_widget_get_type (), GtkWidget));
+#line 556 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp1_;
+#line 556 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5565 "SavedSearchDialog.c"
+}
+
+
+static GDateTime* saved_search_dialog_search_row_date_get_date_one (SavedSearchDialogSearchRowDate* self) {
+ GDateTime* result = NULL;
+ GtkCalendar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GtkCalendar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GtkCalendar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GDateTime* _tmp9_ = NULL;
+#line 559 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self), NULL);
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->cal_one;
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp0_, "year", &_tmp1_, NULL);
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = _tmp1_;
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->cal_one;
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp3_, "month", &_tmp4_, NULL);
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = _tmp4_;
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->cal_one;
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp6_, "day", &_tmp7_, NULL);
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = _tmp7_;
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = g_date_time_new_local (_tmp2_, _tmp5_ + 1, _tmp8_, 0, 0, 0.0);
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp9_;
+#line 560 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5607 "SavedSearchDialog.c"
+}
+
+
+static GDateTime* saved_search_dialog_search_row_date_get_date_two (SavedSearchDialogSearchRowDate* self) {
+ GDateTime* result = NULL;
+ GtkCalendar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GtkCalendar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GtkCalendar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GDateTime* _tmp9_ = NULL;
+#line 563 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self), NULL);
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->cal_two;
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp0_, "year", &_tmp1_, NULL);
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = _tmp1_;
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->cal_two;
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp3_, "month", &_tmp4_, NULL);
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = _tmp4_;
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->cal_two;
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp6_, "day", &_tmp7_, NULL);
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = _tmp7_;
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = g_date_time_new_local (_tmp2_, _tmp5_ + 1, _tmp8_, 0, 0, 0.0);
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = _tmp9_;
+#line 564 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5649 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_set_date_one (SavedSearchDialogSearchRowDate* self, GDateTime* date) {
+ GtkCalendar* _tmp0_ = NULL;
+ GDateTime* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GtkCalendar* _tmp3_ = NULL;
+ GDateTime* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ GtkCalendar* _tmp6_ = NULL;
+ GDateTime* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 567 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self));
+#line 567 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (date != NULL);
+#line 568 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->cal_one;
+#line 568 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = date;
+#line 568 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = g_date_time_get_day_of_month (_tmp1_);
+#line 568 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp0_, "day", _tmp2_, NULL);
+#line 569 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->cal_one;
+#line 569 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = date;
+#line 569 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = g_date_time_get_month (_tmp4_);
+#line 569 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp3_, "month", _tmp5_ - 1, NULL);
+#line 570 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->cal_one;
+#line 570 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = date;
+#line 570 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = g_date_time_get_year (_tmp7_);
+#line 570 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp6_, "year", _tmp8_, NULL);
+#line 5691 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_set_date_two (SavedSearchDialogSearchRowDate* self, GDateTime* date) {
+ GtkCalendar* _tmp0_ = NULL;
+ GDateTime* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GtkCalendar* _tmp3_ = NULL;
+ GDateTime* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ GtkCalendar* _tmp6_ = NULL;
+ GDateTime* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 573 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self));
+#line 573 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (date != NULL);
+#line 574 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->cal_two;
+#line 574 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = date;
+#line 574 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = g_date_time_get_day_of_month (_tmp1_);
+#line 574 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp0_, "day", _tmp2_, NULL);
+#line 575 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = self->priv->cal_two;
+#line 575 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = date;
+#line 575 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = g_date_time_get_month (_tmp4_);
+#line 575 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp3_, "month", _tmp5_ - 1, NULL);
+#line 576 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = self->priv->cal_two;
+#line 576 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = date;
+#line 576 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = g_date_time_get_year (_tmp7_);
+#line 576 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp6_, "year", _tmp8_, NULL);
+#line 5733 "SavedSearchDialog.c"
+}
+
+
+static SearchCondition* saved_search_dialog_search_row_date_real_get_search_condition (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowDate * self;
+ SearchCondition* result = NULL;
+ SearchConditionSearchType search_type = 0;
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SearchConditionSearchType _tmp1_ = 0;
+ SearchConditionDateContext search_context = 0;
+ GtkComboBoxText* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ SearchConditionDate* c = NULL;
+ GDateTime* _tmp4_ = NULL;
+ GDateTime* _tmp5_ = NULL;
+ GDateTime* _tmp6_ = NULL;
+ GDateTime* _tmp7_ = NULL;
+ SearchConditionDate* _tmp8_ = NULL;
+ SearchConditionDate* _tmp9_ = NULL;
+#line 579 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDate);
+#line 580 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 580 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = saved_search_dialog_search_row_container_get_search_type (_tmp0_);
+#line 580 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_type = _tmp1_;
+#line 581 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->context;
+#line 581 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = gtk_combo_box_get_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox));
+#line 581 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ search_context = (SearchConditionDateContext) _tmp3_;
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = saved_search_dialog_search_row_date_get_date_one (self);
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = _tmp4_;
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = saved_search_dialog_search_row_date_get_date_two (self);
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = _tmp6_;
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = search_condition_date_new (search_type, search_context, _tmp5_, _tmp7_);
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = _tmp8_;
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_date_time_unref0 (_tmp7_);
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_date_time_unref0 (_tmp5_);
+#line 582 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ c = _tmp9_;
+#line 584 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (c, TYPE_SEARCH_CONDITION, SearchCondition);
+#line 584 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5789 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_real_populate (SavedSearchDialogSearchRow* base, SearchCondition* sc) {
+ SavedSearchDialogSearchRowDate * self;
+ SearchConditionDate* cond = NULL;
+ SearchCondition* _tmp0_ = NULL;
+ SearchConditionDate* _tmp1_ = NULL;
+ GtkComboBoxText* _tmp2_ = NULL;
+ SearchConditionDateContext _tmp3_ = 0;
+ SearchConditionDateContext _tmp4_ = 0;
+ GDateTime* _tmp5_ = NULL;
+ GDateTime* _tmp6_ = NULL;
+ GDateTime* _tmp7_ = NULL;
+ GDateTime* _tmp8_ = NULL;
+#line 587 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDate);
+#line 587 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (sc));
+#line 588 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = sc;
+#line 588 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = _search_condition_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_SEARCH_CONDITION_DATE) ? ((SearchConditionDate*) _tmp0_) : NULL);
+#line 588 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ cond = _tmp1_;
+#line 589 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _vala_assert (cond != NULL, "cond != null");
+#line 590 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = self->priv->context;
+#line 590 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = search_condition_date_get_context (cond);
+#line 590 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp4_ = _tmp3_;
+#line 590 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_combo_box_set_active (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_combo_box_get_type (), GtkComboBox), (gint) _tmp4_);
+#line 591 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = search_condition_date_get_date_one (cond);
+#line 591 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = _tmp5_;
+#line 591 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_set_date_one (self, _tmp6_);
+#line 592 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp7_ = search_condition_date_get_date_two (cond);
+#line 592 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = _tmp7_;
+#line 592 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_set_date_two (self, _tmp8_);
+#line 593 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_update_date_labels (self);
+#line 587 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _search_condition_unref0 (cond);
+#line 5841 "SavedSearchDialog.c"
+}
+
+
+static gboolean saved_search_dialog_search_row_date_real_is_complete (SavedSearchDialogSearchRow* base) {
+ SavedSearchDialogSearchRowDate * self;
+ gboolean result = FALSE;
+#line 596 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDate);
+#line 597 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ result = TRUE;
+#line 597 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return result;
+#line 5854 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_on_changed (SavedSearchDialogSearchRowDate* self) {
+ SavedSearchDialogSearchRowContainer* _tmp0_ = NULL;
+ SavedSearchDialogSearchRowContainer* _tmp1_ = NULL;
+#line 600 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self));
+#line 601 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->parent;
+#line 601 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp1_ = self->priv->parent;
+#line 601 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_emit_by_name (_tmp0_, "changed", _tmp1_);
+#line 602 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_update_date_labels (self);
+#line 5871 "SavedSearchDialog.c"
+}
+
+
+static Block9Data* block9_data_ref (Block9Data* _data9_) {
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_atomic_int_inc (&_data9_->_ref_count_);
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return _data9_;
+#line 5880 "SavedSearchDialog.c"
+}
+
+
+static void block9_data_unref (void * _userdata_) {
+ Block9Data* _data9_;
+ _data9_ = (Block9Data*) _userdata_;
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (g_atomic_int_dec_and_test (&_data9_->_ref_count_)) {
+#line 5889 "SavedSearchDialog.c"
+ SavedSearchDialogSearchRowDate* self;
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = _data9_->self;
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (_data9_->d);
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_unref0 (self);
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_slice_free (Block9Data, _data9_);
+#line 5899 "SavedSearchDialog.c"
+ }
+}
+
+
+static void __lambda12_ (SavedSearchDialogSearchRowDate* self) {
+#line 616 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_update_date_labels (self);
+#line 5907 "SavedSearchDialog.c"
+}
+
+
+static void ___lambda12__gtk_calendar_day_selected (GtkCalendar* _sender, gpointer self) {
+#line 616 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ __lambda12_ ((SavedSearchDialogSearchRowDate*) self);
+#line 5914 "SavedSearchDialog.c"
+}
+
+
+static void __lambda13_ (Block9Data* _data9_) {
+ SavedSearchDialogSearchRowDate* self;
+ GtkDialog* _tmp0_ = NULL;
+#line 617 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = _data9_->self;
+#line 618 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = _data9_->d;
+#line 618 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_dialog_response (_tmp0_, (gint) GTK_RESPONSE_ACCEPT);
+#line 5927 "SavedSearchDialog.c"
+}
+
+
+static void ___lambda13__gtk_calendar_day_selected_double_click (GtkCalendar* _sender, gpointer self) {
+#line 617 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ __lambda13_ (self);
+#line 5934 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_popup_calendar (SavedSearchDialogSearchRowDate* self, GtkCalendar* cal) {
+ Block9Data* _data9_;
+ gint orig_day = 0;
+ GtkCalendar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint orig_month = 0;
+ GtkCalendar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint orig_year = 0;
+ GtkCalendar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ GtkDialog* _tmp9_ = NULL;
+ GtkDialog* _tmp10_ = NULL;
+ GtkDialog* _tmp11_ = NULL;
+ GtkDialog* _tmp12_ = NULL;
+ GtkDialog* _tmp13_ = NULL;
+ GtkBox* _tmp14_ = NULL;
+ GtkCalendar* _tmp15_ = NULL;
+ gulong id_1 = 0UL;
+ GtkCalendar* _tmp16_ = NULL;
+ gulong _tmp17_ = 0UL;
+ gulong id_2 = 0UL;
+ GtkCalendar* _tmp18_ = NULL;
+ gulong _tmp19_ = 0UL;
+ GtkDialog* _tmp20_ = NULL;
+ gint res = 0;
+ GtkDialog* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ GtkCalendar* _tmp30_ = NULL;
+ gulong _tmp31_ = 0UL;
+ GtkCalendar* _tmp32_ = NULL;
+ gulong _tmp33_ = 0UL;
+ GtkDialog* _tmp34_ = NULL;
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self));
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (GTK_IS_CALENDAR (cal));
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _data9_ = g_slice_new0 (Block9Data);
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _data9_->_ref_count_ = 1;
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _data9_->self = saved_search_dialog_search_row_ref (self);
+#line 606 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = cal;
+#line 606 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp0_, "day", &_tmp1_, NULL);
+#line 606 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp2_ = _tmp1_;
+#line 606 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ orig_day = _tmp2_;
+#line 607 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp3_ = cal;
+#line 607 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp3_, "month", &_tmp4_, NULL);
+#line 607 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp5_ = _tmp4_;
+#line 607 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ orig_month = _tmp5_;
+#line 608 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp6_ = cal;
+#line 608 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_get (_tmp6_, "year", &_tmp7_, NULL);
+#line 608 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp8_ = _tmp7_;
+#line 608 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ orig_year = _tmp8_;
+#line 609 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp9_ = (GtkDialog*) gtk_dialog_new_with_buttons (NULL, NULL, GTK_DIALOG_MODAL, RESOURCES_CANCEL_LABEL, GTK_RESPONSE_REJECT, RESOURCES_OK_LABEL, GTK_RESPONSE_ACCEPT, NULL);
+#line 609 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_ref_sink (_tmp9_);
+#line 609 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _data9_->d = _tmp9_;
+#line 612 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp10_ = _data9_->d;
+#line 612 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_window_set_modal (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, gtk_window_get_type (), GtkWindow), TRUE);
+#line 613 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp11_ = _data9_->d;
+#line 613 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_window_set_resizable (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, gtk_window_get_type (), GtkWindow), FALSE);
+#line 614 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp12_ = _data9_->d;
+#line 614 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_window_set_decorated (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, gtk_window_get_type (), GtkWindow), FALSE);
+#line 615 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp13_ = _data9_->d;
+#line 615 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp14_ = (GtkBox*) gtk_dialog_get_content_area (_tmp13_);
+#line 615 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp15_ = cal;
+#line 615 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_container_add (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, gtk_box_get_type (), GtkBox), gtk_container_get_type (), GtkContainer), G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget));
+#line 616 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp16_ = cal;
+#line 616 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp17_ = g_signal_connect (_tmp16_, "day-selected", (GCallback) ___lambda12__gtk_calendar_day_selected, self);
+#line 616 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ id_1 = _tmp17_;
+#line 617 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp18_ = cal;
+#line 617 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp19_ = g_signal_connect_data (_tmp18_, "day-selected-double-click", (GCallback) ___lambda13__gtk_calendar_day_selected_double_click, block9_data_ref (_data9_), (GClosureNotify) block9_data_unref, 0);
+#line 617 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ id_2 = _tmp19_;
+#line 620 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp20_ = _data9_->d;
+#line 620 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_show_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_widget_get_type (), GtkWidget));
+#line 621 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp21_ = _data9_->d;
+#line 621 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp22_ = gtk_dialog_run (_tmp21_);
+#line 621 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ res = _tmp22_;
+#line 622 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp23_ = res;
+#line 622 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (_tmp23_ != ((gint) GTK_RESPONSE_ACCEPT)) {
+#line 6061 "SavedSearchDialog.c"
+ GtkCalendar* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ GtkCalendar* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ GtkCalendar* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+#line 624 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp24_ = cal;
+#line 624 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp25_ = orig_day;
+#line 624 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp24_, "day", _tmp25_, NULL);
+#line 625 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp26_ = cal;
+#line 625 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp27_ = orig_month;
+#line 625 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp26_, "month", _tmp27_, NULL);
+#line 626 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp28_ = cal;
+#line 626 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp29_ = orig_year;
+#line 626 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_object_set (_tmp28_, "year", _tmp29_, NULL);
+#line 6086 "SavedSearchDialog.c"
+ }
+#line 628 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp30_ = cal;
+#line 628 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp31_ = id_1;
+#line 628 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handler_disconnect (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, G_TYPE_OBJECT, GObject), _tmp31_);
+#line 629 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp32_ = cal;
+#line 629 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp33_ = id_2;
+#line 629 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handler_disconnect (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, G_TYPE_OBJECT, GObject), _tmp33_);
+#line 630 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp34_ = _data9_->d;
+#line 630 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, gtk_widget_get_type (), GtkWidget));
+#line 631 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_update_date_labels (self);
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ block9_data_unref (_data9_);
+#line 605 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _data9_ = NULL;
+#line 6110 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_on_one_clicked (SavedSearchDialogSearchRowDate* self) {
+ GtkCalendar* _tmp0_ = NULL;
+#line 634 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self));
+#line 635 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->cal_one;
+#line 635 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_popup_calendar (self, _tmp0_);
+#line 6122 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_on_two_clicked (SavedSearchDialogSearchRowDate* self) {
+ GtkCalendar* _tmp0_ = NULL;
+#line 638 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (SAVED_SEARCH_DIALOG_IS_SEARCH_ROW_DATE (self));
+#line 639 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->cal_two;
+#line 639 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_popup_calendar (self, _tmp0_);
+#line 6134 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_class_init (SavedSearchDialogSearchRowDateClass * klass) {
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_search_row_date_parent_class = g_type_class_peek_parent (klass);
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->finalize = saved_search_dialog_search_row_date_finalize;
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogSearchRowDatePrivate));
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_widget = saved_search_dialog_search_row_date_real_get_widget;
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->get_search_condition = saved_search_dialog_search_row_date_real_get_search_condition;
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->populate = saved_search_dialog_search_row_date_real_populate;
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogSearchRowClass *) klass)->is_complete = saved_search_dialog_search_row_date_real_is_complete;
+#line 6153 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_instance_init (SavedSearchDialogSearchRowDate * self) {
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_SEARCH_ROW_DATE_GET_PRIVATE (self);
+#line 6160 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_search_row_date_finalize (SavedSearchDialogSearchRow* obj) {
+ SavedSearchDialogSearchRowDate * self;
+ GtkComboBoxText* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_DATE, SavedSearchDialogSearchRowDate);
+#line 529 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->context;
+#line 529 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", gtk_combo_box_get_type (), &_tmp1_, NULL, FALSE);
+#line 529 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_combo_box_get_type (), GtkComboBox), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_search_row_date_on_changed_gtk_combo_box_changed, self);
+#line 485 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->box);
+#line 486 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->context);
+#line 487 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->label_one);
+#line 488 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->label_two);
+#line 489 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->cal_one);
+#line 490 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->cal_two);
+#line 491 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->and);
+#line 493 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _saved_search_dialog_search_row_container_unref0 (self->priv->parent);
+#line 483 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_SEARCH_ROW_CLASS (saved_search_dialog_search_row_date_parent_class)->finalize (obj);
+#line 6194 "SavedSearchDialog.c"
+}
+
+
+static GType saved_search_dialog_search_row_date_get_type (void) {
+ static volatile gsize saved_search_dialog_search_row_date_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_search_row_date_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogSearchRowDateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_search_row_date_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialogSearchRowDate), 0, (GInstanceInitFunc) saved_search_dialog_search_row_date_instance_init, NULL };
+ GType saved_search_dialog_search_row_date_type_id;
+ saved_search_dialog_search_row_date_type_id = g_type_register_static (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW, "SavedSearchDialogSearchRowDate", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_dialog_search_row_date_type_id__volatile, saved_search_dialog_search_row_date_type_id);
+ }
+ return saved_search_dialog_search_row_date_type_id__volatile;
+}
+
+
+static void value_saved_search_dialog_init (GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 6213 "SavedSearchDialog.c"
+}
+
+
+static void value_saved_search_dialog_free_value (GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_unref (value->data[0].v_pointer);
+#line 6222 "SavedSearchDialog.c"
+ }
+}
+
+
+static void value_saved_search_dialog_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (src_value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ dest_value->data[0].v_pointer = saved_search_dialog_ref (src_value->data[0].v_pointer);
+#line 6232 "SavedSearchDialog.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 6236 "SavedSearchDialog.c"
+ }
+}
+
+
+static gpointer value_saved_search_dialog_peek_pointer (const GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return value->data[0].v_pointer;
+#line 6244 "SavedSearchDialog.c"
+}
+
+
+static gchar* value_saved_search_dialog_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (collect_values[0].v_pointer) {
+#line 6251 "SavedSearchDialog.c"
+ SavedSearchDialog* object;
+ object = collect_values[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 6258 "SavedSearchDialog.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 6262 "SavedSearchDialog.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = saved_search_dialog_ref (object);
+#line 6266 "SavedSearchDialog.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 6270 "SavedSearchDialog.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 6274 "SavedSearchDialog.c"
+}
+
+
+static gchar* value_saved_search_dialog_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SavedSearchDialog** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!object_p) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 6285 "SavedSearchDialog.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (!value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = NULL;
+#line 6291 "SavedSearchDialog.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = value->data[0].v_pointer;
+#line 6295 "SavedSearchDialog.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ *object_p = saved_search_dialog_ref (value->data[0].v_pointer);
+#line 6299 "SavedSearchDialog.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return NULL;
+#line 6303 "SavedSearchDialog.c"
+}
+
+
+GParamSpec* param_spec_saved_search_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSavedSearchDialog* spec;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SAVED_SEARCH_DIALOG), NULL);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return G_PARAM_SPEC (spec);
+#line 6317 "SavedSearchDialog.c"
+}
+
+
+gpointer value_get_saved_search_dialog (const GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_DIALOG), NULL);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return value->data[0].v_pointer;
+#line 6326 "SavedSearchDialog.c"
+}
+
+
+void value_set_saved_search_dialog (GValue* value, gpointer v_object) {
+ SavedSearchDialog* old;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_DIALOG));
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ old = value->data[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (v_object) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_DIALOG));
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = v_object;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_ref (value->data[0].v_pointer);
+#line 6346 "SavedSearchDialog.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 6350 "SavedSearchDialog.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (old) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_unref (old);
+#line 6356 "SavedSearchDialog.c"
+ }
+}
+
+
+void value_take_saved_search_dialog (GValue* value, gpointer v_object) {
+ SavedSearchDialog* old;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_DIALOG));
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ old = value->data[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (v_object) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_DIALOG));
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = v_object;
+#line 6375 "SavedSearchDialog.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ value->data[0].v_pointer = NULL;
+#line 6379 "SavedSearchDialog.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (old) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_unref (old);
+#line 6385 "SavedSearchDialog.c"
+ }
+}
+
+
+static void saved_search_dialog_class_init (SavedSearchDialogClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ saved_search_dialog_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ ((SavedSearchDialogClass *) klass)->finalize = saved_search_dialog_finalize;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchDialogPrivate));
+#line 6397 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_instance_init (SavedSearchDialog * self) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv = SAVED_SEARCH_DIALOG_GET_PRIVATE (self);
+#line 649 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = gee_array_list_new (SAVED_SEARCH_DIALOG_TYPE_SEARCH_ROW_CONTAINER, (GBoxedCopyFunc) saved_search_dialog_search_row_container_ref, saved_search_dialog_search_row_container_unref, NULL, NULL, NULL);
+#line 649 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->row_list = _tmp0_;
+#line 650 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->edit_mode = FALSE;
+#line 651 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->previous_search = NULL;
+#line 652 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->priv->valid = FALSE;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self->ref_count = 1;
+#line 6417 "SavedSearchDialog.c"
+}
+
+
+static void saved_search_dialog_finalize (SavedSearchDialog* obj) {
+ SavedSearchDialog * self;
+ GtkEntry* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialog);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_destroy (self);
+#line 690 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _tmp0_ = self->priv->search_title;
+#line 690 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_parse_name ("changed", GTK_TYPE_EDITABLE, &_tmp1_, NULL, FALSE);
+#line 690 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_EDITABLE, GtkEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _saved_search_dialog_on_title_changed_gtk_editable_changed, self);
+#line 643 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->builder);
+#line 644 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->dialog);
+#line 645 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->add_criteria);
+#line 646 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->operator);
+#line 647 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->row_box);
+#line 648 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->search_title);
+#line 649 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->row_list);
+#line 651 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ _g_object_unref0 (self->priv->previous_search);
+#line 6451 "SavedSearchDialog.c"
+}
+
+
+GType saved_search_dialog_get_type (void) {
+ static volatile gsize saved_search_dialog_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_dialog_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_saved_search_dialog_init, value_saved_search_dialog_free_value, value_saved_search_dialog_copy_value, value_saved_search_dialog_peek_pointer, "p", value_saved_search_dialog_collect_value, "p", value_saved_search_dialog_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchDialog), 0, (GInstanceInitFunc) saved_search_dialog_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType saved_search_dialog_type_id;
+ saved_search_dialog_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SavedSearchDialog", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&saved_search_dialog_type_id__volatile, saved_search_dialog_type_id);
+ }
+ return saved_search_dialog_type_id__volatile;
+}
+
+
+gpointer saved_search_dialog_ref (gpointer instance) {
+ SavedSearchDialog* self;
+ self = instance;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ return instance;
+#line 6476 "SavedSearchDialog.c"
+}
+
+
+void saved_search_dialog_unref (gpointer instance) {
+ SavedSearchDialog* self;
+ self = instance;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ SAVED_SEARCH_DIALOG_GET_CLASS (self)->finalize (self);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchDialog.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 6489 "SavedSearchDialog.c"
+ }
+}
+
+
+
diff --git a/src/searches/SavedSearchDialog.vala b/src/searches/SavedSearchDialog.vala
index 7e0b3ec..1716a26 100644
--- a/src/searches/SavedSearchDialog.vala
+++ b/src/searches/SavedSearchDialog.vala
@@ -7,7 +7,7 @@
// This dialog displays a boolean search configuration.
public class SavedSearchDialog {
- // Conatins a search row, with a type selector and remove button.
+ // Contains a search row, with a type selector and remove button.
private class SearchRowContainer {
public signal void remove(SearchRowContainer this_row);
public signal void changed(SearchRowContainer this_row);
diff --git a/src/searches/SavedSearchPage.c b/src/searches/SavedSearchPage.c
new file mode 100644
index 0000000..a9aa029
--- /dev/null
+++ b/src/searches/SavedSearchPage.c
@@ -0,0 +1,1493 @@
+/* SavedSearchPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from SavedSearchPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* Source monitoring for saved searches.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_VIEW_MANAGER (view_manager_get_type ())
+#define VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_MANAGER, ViewManager))
+#define VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_MANAGER, ViewManagerClass))
+#define IS_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_MANAGER))
+#define IS_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_MANAGER))
+#define VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_MANAGER, ViewManagerClass))
+
+typedef struct _ViewManager ViewManager;
+typedef struct _ViewManagerClass ViewManagerClass;
+typedef struct _ViewManagerPrivate ViewManagerPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_COLLECTION_VIEW_MANAGER (collection_view_manager_get_type ())
+#define COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManager))
+#define COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+#define IS_COLLECTION_VIEW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_VIEW_MANAGER))
+#define IS_COLLECTION_VIEW_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_VIEW_MANAGER))
+#define COLLECTION_VIEW_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_VIEW_MANAGER, CollectionViewManagerClass))
+
+typedef struct _CollectionViewManager CollectionViewManager;
+typedef struct _CollectionViewManagerClass CollectionViewManagerClass;
+typedef struct _CollectionViewManagerPrivate CollectionViewManagerPrivate;
+
+#define TYPE_SAVED_SEARCH_MANAGER (saved_search_manager_get_type ())
+#define SAVED_SEARCH_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_MANAGER, SavedSearchManager))
+#define SAVED_SEARCH_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_MANAGER, SavedSearchManagerClass))
+#define IS_SAVED_SEARCH_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_MANAGER))
+#define IS_SAVED_SEARCH_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_MANAGER))
+#define SAVED_SEARCH_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_MANAGER, SavedSearchManagerClass))
+
+typedef struct _SavedSearchManager SavedSearchManager;
+typedef struct _SavedSearchManagerClass SavedSearchManagerClass;
+typedef struct _SavedSearchManagerPrivate SavedSearchManagerPrivate;
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_SAVED_SEARCH_PAGE (saved_search_page_get_type ())
+#define SAVED_SEARCH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_PAGE, SavedSearchPage))
+#define SAVED_SEARCH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_PAGE, SavedSearchPageClass))
+#define IS_SAVED_SEARCH_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_PAGE))
+#define IS_SAVED_SEARCH_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_PAGE))
+#define SAVED_SEARCH_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_PAGE, SavedSearchPageClass))
+
+typedef struct _SavedSearchPage SavedSearchPage;
+typedef struct _SavedSearchPageClass SavedSearchPageClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+typedef struct _SavedSearchPagePrivate SavedSearchPagePrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_MEDIA_SOURCE_COLLECTION (media_source_collection_get_type ())
+#define MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollection))
+#define MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+#define IS_MEDIA_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE_COLLECTION))
+#define IS_MEDIA_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE_COLLECTION))
+#define MEDIA_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE_COLLECTION, MediaSourceCollectionClass))
+
+typedef struct _MediaSourceCollection MediaSourceCollection;
+typedef struct _MediaSourceCollectionClass MediaSourceCollectionClass;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+
+#define VIEW_COLLECTION_TYPE_MONITOR (view_collection_monitor_get_type ())
+#define VIEW_COLLECTION_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitor))
+#define VIEW_COLLECTION_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+#define VIEW_COLLECTION_IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_COLLECTION_TYPE_MONITOR))
+#define VIEW_COLLECTION_MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_COLLECTION_TYPE_MONITOR, ViewCollectionMonitorClass))
+
+typedef struct _ViewCollectionMonitor ViewCollectionMonitor;
+typedef struct _ViewCollectionMonitorClass ViewCollectionMonitorClass;
+#define _view_collection_monitor_unref0(var) ((var == NULL) ? NULL : (var = (view_collection_monitor_unref (var), NULL)))
+#define _view_manager_unref0(var) ((var == NULL) ? NULL : (var = (view_manager_unref (var), NULL)))
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SINGLE_DATA_SOURCE_COMMAND (single_data_source_command_get_type ())
+#define SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommand))
+#define SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+#define IS_SINGLE_DATA_SOURCE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define IS_SINGLE_DATA_SOURCE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SINGLE_DATA_SOURCE_COMMAND))
+#define SINGLE_DATA_SOURCE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SINGLE_DATA_SOURCE_COMMAND, SingleDataSourceCommandClass))
+
+typedef struct _SingleDataSourceCommand SingleDataSourceCommand;
+typedef struct _SingleDataSourceCommandClass SingleDataSourceCommandClass;
+
+#define TYPE_DELETE_SAVED_SEARCH_COMMAND (delete_saved_search_command_get_type ())
+#define DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommand))
+#define DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+#define IS_DELETE_SAVED_SEARCH_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define IS_DELETE_SAVED_SEARCH_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELETE_SAVED_SEARCH_COMMAND))
+#define DELETE_SAVED_SEARCH_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELETE_SAVED_SEARCH_COMMAND, DeleteSavedSearchCommandClass))
+
+typedef struct _DeleteSavedSearchCommand DeleteSavedSearchCommand;
+typedef struct _DeleteSavedSearchCommandClass DeleteSavedSearchCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_SAVED_SEARCH_DIALOG (saved_search_dialog_get_type ())
+#define SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialog))
+#define SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+#define IS_SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DIALOG))
+#define IS_SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DIALOG))
+#define SAVED_SEARCH_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+
+typedef struct _SavedSearchDialog SavedSearchDialog;
+typedef struct _SavedSearchDialogClass SavedSearchDialogClass;
+#define _saved_search_dialog_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_dialog_unref (var), NULL)))
+
+struct _ViewManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ ViewManagerPrivate * priv;
+};
+
+struct _ViewManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (ViewManager *self);
+ gboolean (*include_in_view) (ViewManager* self, DataSource* source);
+ DataView* (*create_view) (ViewManager* self, DataSource* source);
+};
+
+struct _CollectionViewManager {
+ ViewManager parent_instance;
+ CollectionViewManagerPrivate * priv;
+};
+
+struct _CollectionViewManagerClass {
+ ViewManagerClass parent_class;
+};
+
+struct _SavedSearchManager {
+ CollectionViewManager parent_instance;
+ SavedSearchManagerPrivate * priv;
+};
+
+struct _SavedSearchManagerClass {
+ CollectionViewManagerClass parent_class;
+};
+
+struct _SavedSearchManagerPrivate {
+ SavedSearch* search;
+};
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _SavedSearchPage {
+ CollectionPage parent_instance;
+ SavedSearchPagePrivate * priv;
+};
+
+struct _SavedSearchPageClass {
+ CollectionPageClass parent_class;
+};
+
+struct _SavedSearchPagePrivate {
+ SavedSearch* search;
+};
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+
+static gpointer saved_search_manager_parent_class = NULL;
+static gpointer saved_search_page_parent_class = NULL;
+
+gpointer view_manager_ref (gpointer instance);
+void view_manager_unref (gpointer instance);
+GParamSpec* param_spec_view_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_manager (GValue* value, gpointer v_object);
+void value_take_view_manager (GValue* value, gpointer v_object);
+gpointer value_get_view_manager (const GValue* value);
+GType view_manager_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType collection_view_manager_get_type (void) G_GNUC_CONST;
+GType saved_search_manager_get_type (void) G_GNUC_CONST;
+GType saved_search_get_type (void) G_GNUC_CONST;
+#define SAVED_SEARCH_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SAVED_SEARCH_MANAGER, SavedSearchManagerPrivate))
+enum {
+ SAVED_SEARCH_MANAGER_DUMMY_PROPERTY
+};
+GType page_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType saved_search_page_get_type (void) G_GNUC_CONST;
+SavedSearchManager* saved_search_manager_new (SavedSearchPage* owner, SavedSearch* search);
+SavedSearchManager* saved_search_manager_construct (GType object_type, SavedSearchPage* owner, SavedSearch* search);
+CollectionViewManager* collection_view_manager_new (CollectionPage* page);
+CollectionViewManager* collection_view_manager_construct (GType object_type, CollectionPage* page);
+static gboolean saved_search_manager_real_include_in_view (ViewManager* base, DataSource* source);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+gboolean saved_search_predicate (SavedSearch* self, MediaSource* source);
+static void saved_search_manager_finalize (ViewManager* obj);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+#define SAVED_SEARCH_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SAVED_SEARCH_PAGE, SavedSearchPagePrivate))
+enum {
+ SAVED_SEARCH_PAGE_DUMMY_PROPERTY
+};
+SavedSearchPage* saved_search_page_new (SavedSearch* search);
+SavedSearchPage* saved_search_page_construct (GType object_type, SavedSearch* search);
+gchar* data_object_get_name (DataObject* self);
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType media_source_collection_get_type (void) G_GNUC_CONST;
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+GeeCollection* media_collection_registry_get_all (MediaCollectionRegistry* self);
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer view_collection_monitor_ref (gpointer instance);
+void view_collection_monitor_unref (gpointer instance);
+GParamSpec* view_collection_param_spec_monitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void view_collection_value_set_monitor (GValue* value, gpointer v_object);
+void view_collection_value_take_monitor (GValue* value, gpointer v_object);
+gpointer view_collection_value_get_monitor (const GValue* value);
+GType view_collection_monitor_get_type (void) G_GNUC_CONST;
+ViewCollectionMonitor* view_collection_monitor_source_collection (ViewCollection* self, SourceCollection* sources, ViewManager* manager, Alteration* prereq, GeeCollection* initial, ProgressMonitor progress_monitor, void* progress_monitor_target);
+void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path);
+static void saved_search_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_get_library_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void saved_search_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+void configuration_facade_set_library_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+static void saved_search_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+static GtkActionEntry* saved_search_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define TRANSLATABLE "translatable"
+static void saved_search_page_on_rename_search (SavedSearchPage* self);
+static void _saved_search_page_on_rename_search_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add147 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void saved_search_page_on_edit_search (SavedSearchPage* self);
+static void _saved_search_page_on_edit_search_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add148 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void saved_search_page_on_delete_search (SavedSearchPage* self);
+static void _saved_search_page_on_delete_search_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add149 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+gboolean dialogs_confirm_delete_saved_search (SavedSearch* search);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+DeleteSavedSearchCommand* delete_saved_search_command_new (SavedSearch* search);
+DeleteSavedSearchCommand* delete_saved_search_command_construct (GType object_type, SavedSearch* search);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType single_data_source_command_get_type (void) G_GNUC_CONST;
+GType delete_saved_search_command_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_rename_search_in_sidebar (LibraryWindow* self, SavedSearch* search);
+gpointer saved_search_dialog_ref (gpointer instance);
+void saved_search_dialog_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_dialog (GValue* value, gpointer v_object);
+void value_take_saved_search_dialog (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_dialog (const GValue* value);
+GType saved_search_dialog_get_type (void) G_GNUC_CONST;
+SavedSearchDialog* saved_search_dialog_new_edit_existing (SavedSearch* saved_search);
+SavedSearchDialog* saved_search_dialog_construct_edit_existing (GType object_type, SavedSearch* saved_search);
+void saved_search_dialog_show (SavedSearchDialog* self);
+static void saved_search_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_set_action_details (Page* self, const gchar* name, const gchar* label, const gchar* tooltip, gboolean sensitive);
+#define RESOURCES_RENAME_SEARCH_MENU _ ("Re_name...")
+#define RESOURCES_EDIT_SEARCH_MENU _ ("_Edit...")
+#define RESOURCES_DELETE_SEARCH_MENU _ ("_Delete")
+void page_update_actions (Page* self, gint selected_count, gint count);
+static void saved_search_page_finalize (GObject* obj);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 12 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 839 "SavedSearchPage.c"
+}
+
+
+SavedSearchManager* saved_search_manager_construct (GType object_type, SavedSearchPage* owner, SavedSearch* search) {
+ SavedSearchManager* self = NULL;
+ SavedSearchPage* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ SavedSearch* _tmp2_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_PAGE (owner), NULL);
+#line 10 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), NULL);
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = owner;
+#line 11 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = (SavedSearchManager*) collection_view_manager_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_COLLECTION_PAGE, CollectionPage));
+#line 12 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = search;
+#line 12 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 12 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (self->priv->search);
+#line 12 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self->priv->search = _tmp2_;
+#line 10 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ return self;
+#line 866 "SavedSearchPage.c"
+}
+
+
+SavedSearchManager* saved_search_manager_new (SavedSearchPage* owner, SavedSearch* search) {
+#line 10 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ return saved_search_manager_construct (TYPE_SAVED_SEARCH_MANAGER, owner, search);
+#line 873 "SavedSearchPage.c"
+}
+
+
+static gboolean saved_search_manager_real_include_in_view (ViewManager* base, DataSource* source) {
+ SavedSearchManager * self;
+ gboolean result = FALSE;
+ SavedSearch* _tmp0_ = NULL;
+ DataSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 15 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH_MANAGER, SavedSearchManager);
+#line 15 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_val_if_fail (IS_DATA_SOURCE (source), FALSE);
+#line 16 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = self->priv->search;
+#line 16 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = source;
+#line 16 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_ = saved_search_predicate (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_MEDIA_SOURCE, MediaSource));
+#line 16 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ result = _tmp2_;
+#line 16 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ return result;
+#line 897 "SavedSearchPage.c"
+}
+
+
+static void saved_search_manager_class_init (SavedSearchManagerClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ saved_search_manager_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ((ViewManagerClass *) klass)->finalize = saved_search_manager_finalize;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchManagerPrivate));
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ((ViewManagerClass *) klass)->include_in_view = saved_search_manager_real_include_in_view;
+#line 910 "SavedSearchPage.c"
+}
+
+
+static void saved_search_manager_instance_init (SavedSearchManager * self) {
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self->priv = SAVED_SEARCH_MANAGER_GET_PRIVATE (self);
+#line 917 "SavedSearchPage.c"
+}
+
+
+static void saved_search_manager_finalize (ViewManager* obj) {
+ SavedSearchManager * self;
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH_MANAGER, SavedSearchManager);
+#line 9 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (self->priv->search);
+#line 8 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ VIEW_MANAGER_CLASS (saved_search_manager_parent_class)->finalize (obj);
+#line 929 "SavedSearchPage.c"
+}
+
+
+GType saved_search_manager_get_type (void) {
+ static volatile gsize saved_search_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_manager_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchManager), 0, (GInstanceInitFunc) saved_search_manager_instance_init, NULL };
+ GType saved_search_manager_type_id;
+ saved_search_manager_type_id = g_type_register_static (TYPE_COLLECTION_VIEW_MANAGER, "SavedSearchManager", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_manager_type_id__volatile, saved_search_manager_type_id);
+ }
+ return saved_search_manager_type_id__volatile;
+}
+
+
+SavedSearchPage* saved_search_page_construct (GType object_type, SavedSearch* search) {
+ SavedSearchPage * self = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ SavedSearch* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (search), NULL);
+#line 27 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = search;
+#line 27 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 27 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_ = _tmp1_;
+#line 27 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = (SavedSearchPage*) collection_page_construct (object_type, _tmp2_);
+#line 27 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_free0 (_tmp2_);
+#line 28 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp3_ = search;
+#line 28 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 28 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (self->priv->search);
+#line 28 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self->priv->search = _tmp4_;
+#line 972 "SavedSearchPage.c"
+ {
+ GeeIterator* _sources_it = NULL;
+ MediaCollectionRegistry* _tmp5_ = NULL;
+ MediaCollectionRegistry* _tmp6_ = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeCollection* _tmp8_ = NULL;
+ GeeIterator* _tmp9_ = NULL;
+ GeeIterator* _tmp10_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_ = media_collection_registry_get_instance ();
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp6_ = _tmp5_;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp7_ = media_collection_registry_get_all (_tmp6_);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp8_ = _tmp7_;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp9_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp10_ = _tmp9_;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (_tmp8_);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _media_collection_registry_unref0 (_tmp6_);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _sources_it = _tmp10_;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ while (TRUE) {
+#line 1001 "SavedSearchPage.c"
+ GeeIterator* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ MediaSourceCollection* sources = NULL;
+ GeeIterator* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ ViewCollection* _tmp15_ = NULL;
+ ViewCollection* _tmp16_ = NULL;
+ MediaSourceCollection* _tmp17_ = NULL;
+ SavedSearch* _tmp18_ = NULL;
+ SavedSearchManager* _tmp19_ = NULL;
+ SavedSearchManager* _tmp20_ = NULL;
+ ViewCollectionMonitor* _tmp21_ = NULL;
+ ViewCollectionMonitor* _tmp22_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp11_ = _sources_it;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp12_ = gee_iterator_next (_tmp11_);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if (!_tmp12_) {
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ break;
+#line 1023 "SavedSearchPage.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp13_ = _sources_it;
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp14_ = gee_iterator_get (_tmp13_);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ sources = (MediaSourceCollection*) _tmp14_;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp15_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp16_ = _tmp15_;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp17_ = sources;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp18_ = search;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp19_ = saved_search_manager_new (self, _tmp18_);
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp20_ = _tmp19_;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp21_ = view_collection_monitor_source_collection (_tmp16_, G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, TYPE_SOURCE_COLLECTION, SourceCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, TYPE_VIEW_MANAGER, ViewManager), NULL, NULL, NULL, NULL);
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp22_ = _tmp21_;
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _view_collection_monitor_unref0 (_tmp22_);
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _view_manager_unref0 (_tmp20_);
+#line 32 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _data_collection_unref0 (_tmp16_);
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _data_collection_unref0 (sources);
+#line 1055 "SavedSearchPage.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (_sources_it);
+#line 1059 "SavedSearchPage.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ checkerboard_page_init_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/SearchContextMenu");
+#line 26 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ return self;
+#line 1065 "SavedSearchPage.c"
+}
+
+
+SavedSearchPage* saved_search_page_new (SavedSearch* search) {
+#line 26 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ return saved_search_page_construct (TYPE_SAVED_SEARCH_PAGE, search);
+#line 1072 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ SavedSearchPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 37 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH_PAGE, SavedSearchPage);
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = _tmp0_;
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ configuration_facade_get_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _vala_sort_order = _tmp2_;
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _vala_sort_by = _tmp3_;
+#line 38 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 37 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if (sort_order) {
+#line 37 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *sort_order = _vala_sort_order;
+#line 1102 "SavedSearchPage.c"
+ }
+#line 37 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if (sort_by) {
+#line 37 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *sort_by = _vala_sort_by;
+#line 1108 "SavedSearchPage.c"
+ }
+}
+
+
+static void saved_search_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ SavedSearchPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 41 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH_PAGE, SavedSearchPage);
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = _tmp0_;
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_ = sort_order;
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp3_ = sort_by;
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ configuration_facade_set_library_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 42 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1133 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ SavedSearchPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH_PAGE, SavedSearchPage);
+#line 45 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = ui_filenames;
+#line 46 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ PAGE_CLASS (saved_search_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp0_);
+#line 47 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = ui_filenames;
+#line 47 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "savedsearch.ui");
+#line 1153 "SavedSearchPage.c"
+}
+
+
+static void _saved_search_page_on_rename_search_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ saved_search_page_on_rename_search ((SavedSearchPage*) self);
+#line 1160 "SavedSearchPage.c"
+}
+
+
+static void _vala_array_add147 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if ((*length) == (*size)) {
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1171 "SavedSearchPage.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1175 "SavedSearchPage.c"
+}
+
+
+static void _saved_search_page_on_edit_search_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ saved_search_page_on_edit_search ((SavedSearchPage*) self);
+#line 1182 "SavedSearchPage.c"
+}
+
+
+static void _vala_array_add148 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if ((*length) == (*size)) {
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1193 "SavedSearchPage.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1197 "SavedSearchPage.c"
+}
+
+
+static void _saved_search_page_on_delete_search_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ saved_search_page_on_delete_search ((SavedSearchPage*) self);
+#line 1204 "SavedSearchPage.c"
+}
+
+
+static void _vala_array_add149 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if ((*length) == (*size)) {
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1215 "SavedSearchPage.c"
+ }
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1219 "SavedSearchPage.c"
+}
+
+
+static GtkActionEntry* saved_search_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ SavedSearchPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry rename_search = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry edit_search = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry delete_search = {0};
+ GtkActionEntry _tmp8_ = {0};
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 50 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH_PAGE, SavedSearchPage);
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = PAGE_CLASS (saved_search_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), &_tmp0_);
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ actions = _tmp1_;
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ actions_length1 = _tmp0_;
+#line 51 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _actions_size_ = actions_length1;
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_.name = "RenameSearch";
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_.stock_id = NULL;
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_.accelerator = NULL;
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_.tooltip = NULL;
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_.callback = (GCallback) _saved_search_page_on_rename_search_gtk_action_callback;
+#line 53 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ rename_search = _tmp2_;
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp3_ = actions;
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp3__length1 = actions_length1;
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp4_ = rename_search;
+#line 54 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _vala_array_add147 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_.name = "EditSearch";
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_.accelerator = NULL;
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_.tooltip = NULL;
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_.callback = (GCallback) _saved_search_page_on_edit_search_gtk_action_callback;
+#line 56 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ edit_search = _tmp5_;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp6_ = actions;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp6__length1 = actions_length1;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp7_ = edit_search;
+#line 57 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _vala_array_add148 (&actions, &actions_length1, &_actions_size_, &_tmp7_);
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp8_.name = "DeleteSearch";
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp8_.stock_id = NULL;
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp8_.accelerator = NULL;
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp8_.tooltip = NULL;
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp8_.callback = (GCallback) _saved_search_page_on_delete_search_gtk_action_callback;
+#line 59 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ delete_search = _tmp8_;
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp9_ = actions;
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp9__length1 = actions_length1;
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp10_ = delete_search;
+#line 60 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _vala_array_add149 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 62 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp11_ = actions;
+#line 62 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp11__length1 = actions_length1;
+#line 62 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if (result_length1) {
+#line 62 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ *result_length1 = _tmp11__length1;
+#line 1332 "SavedSearchPage.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ result = _tmp11_;
+#line 62 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ return result;
+#line 1338 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_on_delete_search (SavedSearchPage* self) {
+ SavedSearch* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_PAGE (self));
+#line 66 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = self->priv->search;
+#line 66 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = dialogs_confirm_delete_saved_search (_tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ if (_tmp1_) {
+#line 1353 "SavedSearchPage.c"
+ CommandManager* _tmp2_ = NULL;
+ CommandManager* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+ DeleteSavedSearchCommand* _tmp5_ = NULL;
+ DeleteSavedSearchCommand* _tmp6_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_ = app_window_get_command_manager ();
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp3_ = _tmp2_;
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp4_ = self->priv->search;
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp5_ = delete_saved_search_command_new (_tmp4_);
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp6_ = _tmp5_;
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ command_manager_execute (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_COMMAND, Command));
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 67 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _command_manager_unref0 (_tmp3_);
+#line 1375 "SavedSearchPage.c"
+ }
+}
+
+
+static void saved_search_page_on_rename_search (SavedSearchPage* self) {
+ LibraryWindow* _tmp0_ = NULL;
+ LibraryWindow* _tmp1_ = NULL;
+ SavedSearch* _tmp2_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_PAGE (self));
+#line 71 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = library_window_get_app ();
+#line 71 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = _tmp0_;
+#line 71 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp2_ = self->priv->search;
+#line 71 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ library_window_rename_search_in_sidebar (_tmp1_, _tmp2_);
+#line 71 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1396 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_on_edit_search (SavedSearchPage* self) {
+ SavedSearchDialog* ssd = NULL;
+ SavedSearch* _tmp0_ = NULL;
+ SavedSearchDialog* _tmp1_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_PAGE (self));
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = self->priv->search;
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = saved_search_dialog_new_edit_existing (_tmp0_);
+#line 75 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ssd = _tmp1_;
+#line 76 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ saved_search_dialog_show (ssd);
+#line 74 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _saved_search_dialog_unref0 (ssd);
+#line 1416 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ SavedSearchPage * self;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+#line 79 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH_PAGE, SavedSearchPage);
+#line 80 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ page_set_action_details (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RenameSearch", RESOURCES_RENAME_SEARCH_MENU, NULL, TRUE);
+#line 83 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ page_set_action_details (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "EditSearch", RESOURCES_EDIT_SEARCH_MENU, NULL, TRUE);
+#line 86 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ page_set_action_details (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DeleteSearch", RESOURCES_DELETE_SEARCH_MENU, NULL, TRUE);
+#line 89 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp0_ = selected_count;
+#line 89 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _tmp1_ = count;
+#line 89 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ PAGE_CLASS (saved_search_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp0_, _tmp1_);
+#line 1438 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_class_init (SavedSearchPageClass * klass) {
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ saved_search_page_parent_class = g_type_class_peek_parent (klass);
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchPagePrivate));
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = saved_search_page_real_get_config_photos_sort;
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = saved_search_page_real_set_config_photos_sort;
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = saved_search_page_real_init_collect_ui_filenames;
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = saved_search_page_real_init_collect_action_entries;
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ ((PageClass *) klass)->update_actions = saved_search_page_real_update_actions;
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = saved_search_page_finalize;
+#line 1459 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_instance_init (SavedSearchPage * self) {
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self->priv = SAVED_SEARCH_PAGE_GET_PRIVATE (self);
+#line 1466 "SavedSearchPage.c"
+}
+
+
+static void saved_search_page_finalize (GObject* obj) {
+ SavedSearchPage * self;
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH_PAGE, SavedSearchPage);
+#line 24 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ _g_object_unref0 (self->priv->search);
+#line 21 "/home/jens/Source/shotwell/src/searches/SavedSearchPage.vala"
+ G_OBJECT_CLASS (saved_search_page_parent_class)->finalize (obj);
+#line 1478 "SavedSearchPage.c"
+}
+
+
+GType saved_search_page_get_type (void) {
+ static volatile gsize saved_search_page_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchPage), 0, (GInstanceInitFunc) saved_search_page_instance_init, NULL };
+ GType saved_search_page_type_id;
+ saved_search_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "SavedSearchPage", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_page_type_id__volatile, saved_search_page_type_id);
+ }
+ return saved_search_page_type_id__volatile;
+}
+
+
+
diff --git a/src/searches/SearchBoolean.c b/src/searches/SearchBoolean.c
new file mode 100644
index 0000000..b182916
--- /dev/null
+++ b/src/searches/SearchBoolean.c
@@ -0,0 +1,6902 @@
+/* SearchBoolean.c generated by valac 0.32.1, the Vala compiler
+ * generated from SearchBoolean.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* For specifying whether a search should be ORed (any) or ANDed (all).*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <gee.h>
+#include <time.h>
+#include <gtk/gtk.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SEARCH_OPERATOR (search_operator_get_type ())
+
+#define TYPE_SEARCH_CONDITION (search_condition_get_type ())
+#define SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION, SearchCondition))
+#define SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION, SearchConditionClass))
+#define IS_SEARCH_CONDITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION))
+#define IS_SEARCH_CONDITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION))
+#define SEARCH_CONDITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION, SearchConditionClass))
+
+typedef struct _SearchCondition SearchCondition;
+typedef struct _SearchConditionClass SearchConditionClass;
+typedef struct _SearchConditionPrivate SearchConditionPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define SEARCH_CONDITION_TYPE_SEARCH_TYPE (search_condition_search_type_get_type ())
+typedef struct _ParamSpecSearchCondition ParamSpecSearchCondition;
+
+#define TYPE_SEARCH_CONDITION_TEXT (search_condition_text_get_type ())
+#define SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionText))
+#define SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))
+#define IS_SEARCH_CONDITION_TEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_TEXT))
+#define IS_SEARCH_CONDITION_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_TEXT))
+#define SEARCH_CONDITION_TEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextClass))
+
+typedef struct _SearchConditionText SearchConditionText;
+typedef struct _SearchConditionTextClass SearchConditionTextClass;
+typedef struct _SearchConditionTextPrivate SearchConditionTextPrivate;
+
+#define SEARCH_CONDITION_TEXT_TYPE_CONTEXT (search_condition_text_context_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_EVENT_SOURCE (event_source_get_type ())
+#define EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SOURCE, EventSource))
+#define EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SOURCE, EventSourceClass))
+#define IS_EVENT_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SOURCE))
+#define IS_EVENT_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SOURCE))
+#define EVENT_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SOURCE, EventSourceClass))
+
+typedef struct _EventSource EventSource;
+typedef struct _EventSourceClass EventSourceClass;
+
+#define TYPE_EVENT (event_get_type ())
+#define EVENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT, Event))
+#define EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT, EventClass))
+#define IS_EVENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT))
+#define IS_EVENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT))
+#define EVENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT, EventClass))
+
+typedef struct _Event Event;
+typedef struct _EventClass EventClass;
+
+#define TYPE_SEARCH_CONDITION_MEDIA_TYPE (search_condition_media_type_get_type ())
+#define SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType))
+#define SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))
+#define IS_SEARCH_CONDITION_MEDIA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
+#define IS_SEARCH_CONDITION_MEDIA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MEDIA_TYPE))
+#define SEARCH_CONDITION_MEDIA_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypeClass))
+
+typedef struct _SearchConditionMediaType SearchConditionMediaType;
+typedef struct _SearchConditionMediaTypeClass SearchConditionMediaTypeClass;
+typedef struct _SearchConditionMediaTypePrivate SearchConditionMediaTypePrivate;
+
+#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_MEDIA_TYPE (search_condition_media_type_media_type_get_type ())
+
+#define SEARCH_CONDITION_MEDIA_TYPE_TYPE_CONTEXT (search_condition_media_type_context_get_type ())
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_PHOTO_FILE_FORMAT (photo_file_format_get_type ())
+
+#define TYPE_VIDEO_SOURCE (video_source_get_type ())
+#define VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIDEO_SOURCE, VideoSource))
+#define VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIDEO_SOURCE, VideoSourceClass))
+#define IS_VIDEO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIDEO_SOURCE))
+#define IS_VIDEO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIDEO_SOURCE))
+#define VIDEO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIDEO_SOURCE, VideoSourceClass))
+
+typedef struct _VideoSource VideoSource;
+typedef struct _VideoSourceClass VideoSourceClass;
+
+#define TYPE_SEARCH_CONDITION_FLAGGED (search_condition_flagged_get_type ())
+#define SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged))
+#define SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))
+#define IS_SEARCH_CONDITION_FLAGGED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_FLAGGED))
+#define IS_SEARCH_CONDITION_FLAGGED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_FLAGGED))
+#define SEARCH_CONDITION_FLAGGED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedClass))
+
+typedef struct _SearchConditionFlagged SearchConditionFlagged;
+typedef struct _SearchConditionFlaggedClass SearchConditionFlaggedClass;
+typedef struct _SearchConditionFlaggedPrivate SearchConditionFlaggedPrivate;
+
+#define SEARCH_CONDITION_FLAGGED_TYPE_STATE (search_condition_flagged_state_get_type ())
+
+#define TYPE_FLAGGABLE (flaggable_get_type ())
+#define FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FLAGGABLE, Flaggable))
+#define IS_FLAGGABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FLAGGABLE))
+#define FLAGGABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_FLAGGABLE, FlaggableIface))
+
+typedef struct _Flaggable Flaggable;
+typedef struct _FlaggableIface FlaggableIface;
+
+#define TYPE_SEARCH_CONDITION_MODIFIED (search_condition_modified_get_type ())
+#define SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified))
+#define SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))
+#define IS_SEARCH_CONDITION_MODIFIED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_MODIFIED))
+#define IS_SEARCH_CONDITION_MODIFIED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_MODIFIED))
+#define SEARCH_CONDITION_MODIFIED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedClass))
+
+typedef struct _SearchConditionModified SearchConditionModified;
+typedef struct _SearchConditionModifiedClass SearchConditionModifiedClass;
+typedef struct _SearchConditionModifiedPrivate SearchConditionModifiedPrivate;
+
+#define SEARCH_CONDITION_MODIFIED_TYPE_STATE (search_condition_modified_state_get_type ())
+
+#define SEARCH_CONDITION_MODIFIED_TYPE_CONTEXT (search_condition_modified_context_get_type ())
+
+#define TYPE_SEARCH_CONDITION_RATING (search_condition_rating_get_type ())
+#define SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRating))
+#define SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))
+#define IS_SEARCH_CONDITION_RATING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_RATING))
+#define IS_SEARCH_CONDITION_RATING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_RATING))
+#define SEARCH_CONDITION_RATING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingClass))
+
+typedef struct _SearchConditionRating SearchConditionRating;
+typedef struct _SearchConditionRatingClass SearchConditionRatingClass;
+typedef struct _SearchConditionRatingPrivate SearchConditionRatingPrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define SEARCH_CONDITION_RATING_TYPE_CONTEXT (search_condition_rating_context_get_type ())
+
+#define TYPE_SEARCH_CONDITION_DATE (search_condition_date_get_type ())
+#define SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDate))
+#define SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))
+#define IS_SEARCH_CONDITION_DATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_CONDITION_DATE))
+#define IS_SEARCH_CONDITION_DATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_CONDITION_DATE))
+#define SEARCH_CONDITION_DATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_CONDITION_DATE, SearchConditionDateClass))
+
+typedef struct _SearchConditionDate SearchConditionDate;
+typedef struct _SearchConditionDateClass SearchConditionDateClass;
+typedef struct _SearchConditionDatePrivate SearchConditionDatePrivate;
+
+#define SEARCH_CONDITION_DATE_TYPE_CONTEXT (search_condition_date_context_get_type ())
+#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
+typedef struct _DataObjectPrivate DataObjectPrivate;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+typedef struct _DataSourcePrivate DataSourcePrivate;
+
+#define TYPE_SOURCE_HOLDING_TANK (source_holding_tank_get_type ())
+#define SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTank))
+#define SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+#define IS_SOURCE_HOLDING_TANK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_HOLDING_TANK))
+#define IS_SOURCE_HOLDING_TANK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_HOLDING_TANK))
+#define SOURCE_HOLDING_TANK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_HOLDING_TANK, SourceHoldingTankClass))
+
+typedef struct _SourceHoldingTank SourceHoldingTank;
+typedef struct _SourceHoldingTankClass SourceHoldingTankClass;
+
+#define TYPE_SOURCE_SNAPSHOT (source_snapshot_get_type ())
+#define SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshot))
+#define SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+#define IS_SOURCE_SNAPSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_SNAPSHOT))
+#define IS_SOURCE_SNAPSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_SNAPSHOT))
+#define SOURCE_SNAPSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_SNAPSHOT, SourceSnapshotClass))
+
+typedef struct _SourceSnapshot SourceSnapshot;
+typedef struct _SourceSnapshotClass SourceSnapshotClass;
+
+#define TYPE_SAVED_SEARCH (saved_search_get_type ())
+#define SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH, SavedSearch))
+#define SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH, SavedSearchClass))
+#define IS_SAVED_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH))
+#define IS_SAVED_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH))
+#define SAVED_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH, SavedSearchClass))
+
+typedef struct _SavedSearch SavedSearch;
+typedef struct _SavedSearchClass SavedSearchClass;
+typedef struct _SavedSearchPrivate SavedSearchPrivate;
+
+#define TYPE_SAVED_SEARCH_ROW (saved_search_row_get_type ())
+#define SAVED_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_ROW, SavedSearchRow))
+#define SAVED_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_ROW, SavedSearchRowClass))
+#define IS_SAVED_SEARCH_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_ROW))
+#define IS_SAVED_SEARCH_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_ROW))
+#define SAVED_SEARCH_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_ROW, SavedSearchRowClass))
+
+typedef struct _SavedSearchRow SavedSearchRow;
+typedef struct _SavedSearchRowClass SavedSearchRowClass;
+#define _saved_search_row_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_row_unref (var), NULL)))
+typedef struct _SavedSearchRowPrivate SavedSearchRowPrivate;
+
+#define TYPE_SAVED_SEARCH_ID (saved_search_id_get_type ())
+typedef struct _SavedSearchID SavedSearchID;
+#define _search_condition_unref0(var) ((var == NULL) ? NULL : (var = (search_condition_unref (var), NULL)))
+
+#define TYPE_DATABASE_TABLE (database_table_get_type ())
+#define DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_TABLE, DatabaseTable))
+#define DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_TABLE, DatabaseTableClass))
+#define IS_DATABASE_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_TABLE))
+#define IS_DATABASE_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_TABLE))
+#define DATABASE_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_TABLE, DatabaseTableClass))
+
+typedef struct _DatabaseTable DatabaseTable;
+typedef struct _DatabaseTableClass DatabaseTableClass;
+
+#define TYPE_SAVED_SEARCH_DB_TABLE (saved_search_db_table_get_type ())
+#define SAVED_SEARCH_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTable))
+#define SAVED_SEARCH_DB_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTableClass))
+#define IS_SAVED_SEARCH_DB_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DB_TABLE))
+#define IS_SAVED_SEARCH_DB_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DB_TABLE))
+#define SAVED_SEARCH_DB_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DB_TABLE, SavedSearchDBTableClass))
+
+typedef struct _SavedSearchDBTable SavedSearchDBTable;
+typedef struct _SavedSearchDBTableClass SavedSearchDBTableClass;
+#define _database_table_unref0(var) ((var == NULL) ? NULL : (var = (database_table_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_SAVED_SEARCH_TABLE (saved_search_table_get_type ())
+#define SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTable))
+#define SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+#define IS_SAVED_SEARCH_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_TABLE))
+#define IS_SAVED_SEARCH_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_TABLE))
+#define SAVED_SEARCH_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_TABLE, SavedSearchTableClass))
+
+typedef struct _SavedSearchTable SavedSearchTable;
+typedef struct _SavedSearchTableClass SavedSearchTableClass;
+#define _saved_search_table_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_table_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+typedef struct _SavedSearchTablePrivate SavedSearchTablePrivate;
+typedef struct _ParamSpecSavedSearchTable ParamSpecSavedSearchTable;
+
+typedef enum {
+ SEARCH_OPERATOR_ANY = 0,
+ SEARCH_OPERATOR_ALL,
+ SEARCH_OPERATOR_NONE
+} SearchOperator;
+
+struct _SearchCondition {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SearchConditionPrivate * priv;
+};
+
+struct _SearchConditionClass {
+ GTypeClass parent_class;
+ void (*finalize) (SearchCondition *self);
+ gboolean (*predicate) (SearchCondition* self, MediaSource* source);
+};
+
+typedef enum {
+ SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT = 0,
+ SEARCH_CONDITION_SEARCH_TYPE_TITLE,
+ SEARCH_CONDITION_SEARCH_TYPE_TAG,
+ SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME,
+ SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME,
+ SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE,
+ SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE,
+ SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE,
+ SEARCH_CONDITION_SEARCH_TYPE_RATING,
+ SEARCH_CONDITION_SEARCH_TYPE_COMMENT,
+ SEARCH_CONDITION_SEARCH_TYPE_DATE
+} SearchConditionSearchType;
+
+struct _SearchConditionPrivate {
+ SearchConditionSearchType _search_type;
+};
+
+struct _ParamSpecSearchCondition {
+ GParamSpec parent_instance;
+};
+
+struct _SearchConditionText {
+ SearchCondition parent_instance;
+ SearchConditionTextPrivate * priv;
+};
+
+struct _SearchConditionTextClass {
+ SearchConditionClass parent_class;
+};
+
+typedef enum {
+ SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS = 0,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY,
+ SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH,
+ SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH,
+ SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET,
+ SEARCH_CONDITION_TEXT_CONTEXT_IS_SET
+} SearchConditionTextContext;
+
+struct _SearchConditionTextPrivate {
+ gchar* _text;
+ SearchConditionTextContext _context;
+};
+
+struct _SearchConditionMediaType {
+ SearchCondition parent_instance;
+ SearchConditionMediaTypePrivate * priv;
+};
+
+struct _SearchConditionMediaTypeClass {
+ SearchConditionClass parent_class;
+};
+
+typedef enum {
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL = 0,
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW,
+ SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO
+} SearchConditionMediaTypeMediaType;
+
+typedef enum {
+ SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS = 0,
+ SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT
+} SearchConditionMediaTypeContext;
+
+struct _SearchConditionMediaTypePrivate {
+ SearchConditionMediaTypeMediaType _media_type;
+ SearchConditionMediaTypeContext _context;
+};
+
+typedef enum {
+ PHOTO_FILE_FORMAT_JFIF,
+ PHOTO_FILE_FORMAT_RAW,
+ PHOTO_FILE_FORMAT_PNG,
+ PHOTO_FILE_FORMAT_TIFF,
+ PHOTO_FILE_FORMAT_BMP,
+ PHOTO_FILE_FORMAT_UNKNOWN
+} PhotoFileFormat;
+
+struct _SearchConditionFlagged {
+ SearchCondition parent_instance;
+ SearchConditionFlaggedPrivate * priv;
+};
+
+struct _SearchConditionFlaggedClass {
+ SearchConditionClass parent_class;
+};
+
+typedef enum {
+ SEARCH_CONDITION_FLAGGED_STATE_FLAGGED = 0,
+ SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED
+} SearchConditionFlaggedState;
+
+struct _SearchConditionFlaggedPrivate {
+ SearchConditionFlaggedState _state;
+};
+
+struct _FlaggableIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_flagged) (Flaggable* self);
+ void (*mark_flagged) (Flaggable* self);
+ void (*mark_unflagged) (Flaggable* self);
+};
+
+struct _SearchConditionModified {
+ SearchCondition parent_instance;
+ SearchConditionModifiedPrivate * priv;
+};
+
+struct _SearchConditionModifiedClass {
+ SearchConditionClass parent_class;
+};
+
+typedef enum {
+ SEARCH_CONDITION_MODIFIED_STATE_MODIFIED = 0,
+ SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES,
+ SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES
+} SearchConditionModifiedState;
+
+typedef enum {
+ SEARCH_CONDITION_MODIFIED_CONTEXT_HAS = 0,
+ SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO
+} SearchConditionModifiedContext;
+
+struct _SearchConditionModifiedPrivate {
+ SearchConditionModifiedState _state;
+ SearchConditionModifiedContext _context;
+};
+
+struct _SearchConditionRating {
+ SearchCondition parent_instance;
+ SearchConditionRatingPrivate * priv;
+};
+
+struct _SearchConditionRatingClass {
+ SearchConditionClass parent_class;
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER = 0,
+ SEARCH_CONDITION_RATING_CONTEXT_ONLY,
+ SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER
+} SearchConditionRatingContext;
+
+struct _SearchConditionRatingPrivate {
+ Rating _rating;
+ SearchConditionRatingContext _context;
+};
+
+struct _SearchConditionDate {
+ SearchCondition parent_instance;
+ SearchConditionDatePrivate * priv;
+};
+
+struct _SearchConditionDateClass {
+ SearchConditionClass parent_class;
+};
+
+typedef enum {
+ SEARCH_CONDITION_DATE_CONTEXT_EXACT = 0,
+ SEARCH_CONDITION_DATE_CONTEXT_AFTER,
+ SEARCH_CONDITION_DATE_CONTEXT_BEFORE,
+ SEARCH_CONDITION_DATE_CONTEXT_BETWEEN,
+ SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET
+} SearchConditionDateContext;
+
+struct _SearchConditionDatePrivate {
+ GDateTime* _date_one;
+ GDateTime* _date_two;
+ SearchConditionDateContext _context;
+};
+
+struct _DataObject {
+ GObject parent_instance;
+ DataObjectPrivate * priv;
+};
+
+struct _DataObjectClass {
+ GObjectClass parent_class;
+ void (*notify_altered) (DataObject* self, Alteration* alteration);
+ void (*notify_membership_changed) (DataObject* self, DataCollection* collection);
+ void (*notify_collection_property_set) (DataObject* self, const gchar* name, GValue* old, GValue* val);
+ void (*notify_collection_property_cleared) (DataObject* self, const gchar* name);
+ gchar* (*get_name) (DataObject* self);
+ gchar* (*to_string) (DataObject* self);
+};
+
+struct _DataSource {
+ DataObject parent_instance;
+ DataSourcePrivate * priv;
+};
+
+struct _DataSourceClass {
+ DataObjectClass parent_class;
+ void (*notify_held_in_tank) (DataSource* self, SourceHoldingTank* holding_tank);
+ void (*notify_unlinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_unlinked) (DataSource* self);
+ void (*notify_relinking) (DataSource* self, SourceCollection* collection);
+ void (*notify_relinked) (DataSource* self);
+ gchar* (*get_typename) (DataSource* self);
+ gint64 (*get_instance_id) (DataSource* self);
+ gchar* (*get_source_id) (DataSource* self);
+ void (*commit_backlinks) (DataSource* self, SourceCollection* sources, const gchar* dehydrated);
+ SourceSnapshot* (*save_snapshot) (DataSource* self);
+ gboolean (*internal_delete_backing) (DataSource* self, GError** error);
+ gboolean (*equals) (DataSource* self, DataSource* source);
+ void (*destroy) (DataSource* self);
+ void (*unlinked) (DataSource* self, SourceCollection* sources);
+ void (*relinked) (DataSource* self, SourceCollection* sources);
+ void (*destroyed) (DataSource* self);
+};
+
+struct _SavedSearch {
+ DataSource parent_instance;
+ SavedSearchPrivate * priv;
+};
+
+struct _SavedSearchClass {
+ DataSourceClass parent_class;
+};
+
+struct _SavedSearchPrivate {
+ SavedSearchRow* row;
+};
+
+struct _SavedSearchID {
+ gint64 id;
+};
+
+struct _SavedSearchRow {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SavedSearchRowPrivate * priv;
+ SavedSearchID search_id;
+ gchar* name;
+ SearchOperator operator;
+ GeeList* conditions;
+};
+
+struct _SavedSearchRowClass {
+ GTypeClass parent_class;
+ void (*finalize) (SavedSearchRow *self);
+};
+
+typedef enum {
+ DATABASE_ERROR_ERROR,
+ DATABASE_ERROR_BACKING,
+ DATABASE_ERROR_MEMORY,
+ DATABASE_ERROR_ABORT,
+ DATABASE_ERROR_LIMITS,
+ DATABASE_ERROR_TYPESPEC
+} DatabaseError;
+#define DATABASE_ERROR database_error_quark ()
+struct _SavedSearchTable {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SavedSearchTablePrivate * priv;
+};
+
+struct _SavedSearchTableClass {
+ GTypeClass parent_class;
+ void (*finalize) (SavedSearchTable *self);
+};
+
+struct _SavedSearchTablePrivate {
+ GeeHashMap* search_map;
+};
+
+struct _ParamSpecSavedSearchTable {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer search_condition_parent_class = NULL;
+static gpointer search_condition_text_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+static gpointer search_condition_media_type_parent_class = NULL;
+static gpointer search_condition_flagged_parent_class = NULL;
+static gpointer search_condition_modified_parent_class = NULL;
+static gpointer search_condition_rating_parent_class = NULL;
+static gpointer search_condition_date_parent_class = NULL;
+static gpointer saved_search_parent_class = NULL;
+static gpointer saved_search_table_parent_class = NULL;
+static SavedSearchTable* saved_search_table_instance;
+static SavedSearchTable* saved_search_table_instance = NULL;
+
+GType search_operator_get_type (void) G_GNUC_CONST;
+gchar* search_operator_to_string (SearchOperator self);
+SearchOperator search_operator_from_string (const gchar* str);
+gpointer search_condition_ref (gpointer instance);
+void search_condition_unref (gpointer instance);
+GParamSpec* param_spec_search_condition (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_search_condition (GValue* value, gpointer v_object);
+void value_take_search_condition (GValue* value, gpointer v_object);
+gpointer value_get_search_condition (const GValue* value);
+GType search_condition_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType search_condition_search_type_get_type (void) G_GNUC_CONST;
+#define SEARCH_CONDITION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION, SearchConditionPrivate))
+enum {
+ SEARCH_CONDITION_DUMMY_PROPERTY
+};
+SearchConditionSearchType* search_condition_search_type_as_array (int* result_length1);
+void search_condition_search_type_sort_array (SearchConditionSearchType** array, int* array_length1);
+static gint __lambda10_ (void* a, void* b);
+gint utf8_cs_compare (void* a, void* b);
+gchar* search_condition_search_type_display_text (SearchConditionSearchType self);
+static gint ___lambda10____compar_fn_t (void* key1, void* key2);
+gchar* search_condition_search_type_to_string (SearchConditionSearchType self);
+SearchConditionSearchType search_condition_search_type_from_string (const gchar* str);
+gboolean search_condition_predicate (SearchCondition* self, MediaSource* source);
+static gboolean search_condition_real_predicate (SearchCondition* self, MediaSource* source);
+SearchCondition* search_condition_construct (GType object_type);
+SearchConditionSearchType search_condition_get_search_type (SearchCondition* self);
+void search_condition_set_search_type (SearchCondition* self, SearchConditionSearchType value);
+static void search_condition_finalize (SearchCondition* obj);
+GType search_condition_text_get_type (void) G_GNUC_CONST;
+GType search_condition_text_context_get_type (void) G_GNUC_CONST;
+#define SEARCH_CONDITION_TEXT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_TEXT, SearchConditionTextPrivate))
+enum {
+ SEARCH_CONDITION_TEXT_DUMMY_PROPERTY
+};
+gchar* search_condition_text_context_to_string (SearchConditionTextContext self);
+SearchConditionTextContext search_condition_text_context_from_string (const gchar* str);
+SearchConditionText* search_condition_text_new (SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
+SearchConditionText* search_condition_text_construct (GType object_type, SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context);
+gchar* string_remove_diacritics (const gchar* istring);
+static void search_condition_text_set_text (SearchConditionText* self, const gchar* value);
+static void search_condition_text_set_context (SearchConditionText* self, SearchConditionTextContext value);
+static gboolean search_condition_text_string_match (SearchConditionText* self, const gchar* needle, const gchar* haystack);
+SearchConditionTextContext search_condition_text_get_context (SearchConditionText* self);
+gboolean is_string_empty (const gchar* s);
+static gboolean search_condition_text_real_predicate (SearchCondition* base, MediaSource* source);
+gchar* media_source_get_title (MediaSource* self);
+const gchar* search_condition_text_get_text (SearchConditionText* self);
+GType tag_get_type (void) G_GNUC_CONST;
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+GeeList* tag_source_collection_fetch_for_source (TagSourceCollection* self, MediaSource* source);
+gchar* tag_get_searchable_name (Tag* self);
+GType event_source_get_type (void) G_GNUC_CONST;
+GType event_get_type (void) G_GNUC_CONST;
+Event* media_source_get_event (MediaSource* self);
+gchar* data_object_get_name (DataObject* self);
+gchar* media_source_get_comment (MediaSource* self);
+gchar* media_source_get_basename (MediaSource* self);
+static void search_condition_text_finalize (SearchCondition* obj);
+GType search_condition_media_type_get_type (void) G_GNUC_CONST;
+GType search_condition_media_type_media_type_get_type (void) G_GNUC_CONST;
+GType search_condition_media_type_context_get_type (void) G_GNUC_CONST;
+#define SEARCH_CONDITION_MEDIA_TYPE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaTypePrivate))
+enum {
+ SEARCH_CONDITION_MEDIA_TYPE_DUMMY_PROPERTY
+};
+gchar* search_condition_media_type_context_to_string (SearchConditionMediaTypeContext self);
+SearchConditionMediaTypeContext search_condition_media_type_context_from_string (const gchar* str);
+gchar* search_condition_media_type_media_type_to_string (SearchConditionMediaTypeMediaType self);
+SearchConditionMediaTypeMediaType search_condition_media_type_media_type_from_string (const gchar* str);
+SearchConditionMediaType* search_condition_media_type_new (SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
+SearchConditionMediaType* search_condition_media_type_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type);
+static void search_condition_media_type_set_context (SearchConditionMediaType* self, SearchConditionMediaTypeContext value);
+static void search_condition_media_type_set_media_type (SearchConditionMediaType* self, SearchConditionMediaTypeMediaType value);
+static gboolean search_condition_media_type_real_predicate (SearchCondition* base, MediaSource* source);
+SearchConditionMediaTypeMediaType search_condition_media_type_get_media_type (SearchConditionMediaType* self);
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+SearchConditionMediaTypeContext search_condition_media_type_get_context (SearchConditionMediaType* self);
+GType photo_file_format_get_type (void) G_GNUC_CONST;
+PhotoFileFormat photo_get_master_file_format (Photo* self);
+GType video_source_get_type (void) G_GNUC_CONST;
+static void search_condition_media_type_finalize (SearchCondition* obj);
+GType search_condition_flagged_get_type (void) G_GNUC_CONST;
+GType search_condition_flagged_state_get_type (void) G_GNUC_CONST;
+#define SEARCH_CONDITION_FLAGGED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlaggedPrivate))
+enum {
+ SEARCH_CONDITION_FLAGGED_DUMMY_PROPERTY
+};
+gchar* search_condition_flagged_state_to_string (SearchConditionFlaggedState self);
+SearchConditionFlaggedState search_condition_flagged_state_from_string (const gchar* str);
+SearchConditionFlagged* search_condition_flagged_new (SearchConditionSearchType search_type, SearchConditionFlaggedState state);
+SearchConditionFlagged* search_condition_flagged_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionFlaggedState state);
+static void search_condition_flagged_set_state (SearchConditionFlagged* self, SearchConditionFlaggedState value);
+static gboolean search_condition_flagged_real_predicate (SearchCondition* base, MediaSource* source);
+SearchConditionFlaggedState search_condition_flagged_get_state (SearchConditionFlagged* self);
+GType flaggable_get_type (void) G_GNUC_CONST;
+gboolean flaggable_is_flagged (Flaggable* self);
+static void search_condition_flagged_finalize (SearchCondition* obj);
+GType search_condition_modified_get_type (void) G_GNUC_CONST;
+GType search_condition_modified_state_get_type (void) G_GNUC_CONST;
+GType search_condition_modified_context_get_type (void) G_GNUC_CONST;
+#define SEARCH_CONDITION_MODIFIED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModifiedPrivate))
+enum {
+ SEARCH_CONDITION_MODIFIED_DUMMY_PROPERTY
+};
+gchar* search_condition_modified_context_to_string (SearchConditionModifiedContext self);
+SearchConditionModifiedContext search_condition_modified_context_from_string (const gchar* str);
+gchar* search_condition_modified_state_to_string (SearchConditionModifiedState self);
+SearchConditionModifiedState search_condition_modified_state_from_string (const gchar* str);
+SearchConditionModified* search_condition_modified_new (SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
+SearchConditionModified* search_condition_modified_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state);
+static void search_condition_modified_set_context (SearchConditionModified* self, SearchConditionModifiedContext value);
+static void search_condition_modified_set_state (SearchConditionModified* self, SearchConditionModifiedState value);
+static gboolean search_condition_modified_real_predicate (SearchCondition* base, MediaSource* source);
+SearchConditionModifiedState search_condition_modified_get_state (SearchConditionModified* self);
+gboolean photo_has_transformations (Photo* self);
+gboolean photo_has_editable (Photo* self);
+SearchConditionModifiedContext search_condition_modified_get_context (SearchConditionModified* self);
+static void search_condition_modified_finalize (SearchCondition* obj);
+GType search_condition_rating_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType search_condition_rating_context_get_type (void) G_GNUC_CONST;
+#define SEARCH_CONDITION_RATING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_RATING, SearchConditionRatingPrivate))
+enum {
+ SEARCH_CONDITION_RATING_DUMMY_PROPERTY
+};
+gchar* search_condition_rating_context_to_string (SearchConditionRatingContext self);
+SearchConditionRatingContext search_condition_rating_context_from_string (const gchar* str);
+SearchConditionRating* search_condition_rating_new (SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
+SearchConditionRating* search_condition_rating_construct (GType object_type, SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context);
+static void search_condition_rating_set_rating (SearchConditionRating* self, Rating value);
+static void search_condition_rating_set_context (SearchConditionRating* self, SearchConditionRatingContext value);
+static gboolean search_condition_rating_real_predicate (SearchCondition* base, MediaSource* source);
+Rating media_source_get_rating (MediaSource* self);
+SearchConditionRatingContext search_condition_rating_get_context (SearchConditionRating* self);
+Rating search_condition_rating_get_rating (SearchConditionRating* self);
+static void search_condition_rating_finalize (SearchCondition* obj);
+GType search_condition_date_get_type (void) G_GNUC_CONST;
+GType search_condition_date_context_get_type (void) G_GNUC_CONST;
+#define SEARCH_CONDITION_DATE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEARCH_CONDITION_DATE, SearchConditionDatePrivate))
+enum {
+ SEARCH_CONDITION_DATE_DUMMY_PROPERTY
+};
+gchar* search_condition_date_context_to_string (SearchConditionDateContext self);
+SearchConditionDateContext search_condition_date_context_from_string (const gchar* str);
+SearchConditionDate* search_condition_date_new (SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
+SearchConditionDate* search_condition_date_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two);
+static void search_condition_date_set_context (SearchConditionDate* self, SearchConditionDateContext value);
+static void search_condition_date_set_date_one (SearchConditionDate* self, GDateTime* value);
+static void search_condition_date_set_date_two (SearchConditionDate* self, GDateTime* value);
+static gboolean search_condition_date_real_predicate (SearchCondition* base, MediaSource* source);
+time_t media_source_get_exposure_time (MediaSource* self);
+SearchConditionDateContext search_condition_date_get_context (SearchConditionDate* self);
+GDateTime* search_condition_date_get_date_one (SearchConditionDate* self);
+GDateTime* search_condition_date_get_date_two (SearchConditionDate* self);
+static void search_condition_date_finalize (SearchCondition* obj);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+gpointer source_holding_tank_ref (gpointer instance);
+void source_holding_tank_unref (gpointer instance);
+GParamSpec* param_spec_source_holding_tank (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_holding_tank (GValue* value, gpointer v_object);
+void value_take_source_holding_tank (GValue* value, gpointer v_object);
+gpointer value_get_source_holding_tank (const GValue* value);
+GType source_holding_tank_get_type (void) G_GNUC_CONST;
+gpointer source_snapshot_ref (gpointer instance);
+void source_snapshot_unref (gpointer instance);
+GParamSpec* param_spec_source_snapshot (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_source_snapshot (GValue* value, gpointer v_object);
+void value_take_source_snapshot (GValue* value, gpointer v_object);
+gpointer value_get_source_snapshot (const GValue* value);
+GType source_snapshot_get_type (void) G_GNUC_CONST;
+GType saved_search_get_type (void) G_GNUC_CONST;
+gpointer saved_search_row_ref (gpointer instance);
+void saved_search_row_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_row (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_row (GValue* value, gpointer v_object);
+void value_take_saved_search_row (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_row (const GValue* value);
+GType saved_search_row_get_type (void) G_GNUC_CONST;
+#define SAVED_SEARCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SAVED_SEARCH, SavedSearchPrivate))
+enum {
+ SAVED_SEARCH_DUMMY_PROPERTY
+};
+#define SAVED_SEARCH_TYPENAME "saved_search"
+SavedSearch* saved_search_new (SavedSearchRow* row, gint64 object_id);
+SavedSearch* saved_search_construct (GType object_type, SavedSearchRow* row, gint64 object_id);
+DataSource* data_source_construct (GType object_type, gint64 object_id);
+static gchar* saved_search_real_get_name (DataObject* base);
+GType saved_search_id_get_type (void) G_GNUC_CONST;
+SavedSearchID* saved_search_id_dup (const SavedSearchID* self);
+void saved_search_id_free (SavedSearchID* self);
+static gchar* saved_search_real_to_string (DataObject* base);
+static gchar* saved_search_real_get_typename (DataSource* base);
+void saved_search_get_saved_search_id (SavedSearch* self, SavedSearchID* result);
+static gint64 saved_search_real_get_instance_id (DataSource* base);
+gint saved_search_compare_names (void* a, void* b);
+gint string_collated_compare (void* a, void* b);
+gboolean saved_search_predicate (SavedSearch* self, MediaSource* source);
+void saved_search_reconstitute (SavedSearch* self);
+gpointer database_table_ref (gpointer instance);
+void database_table_unref (gpointer instance);
+GParamSpec* param_spec_database_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_database_table (GValue* value, gpointer v_object);
+void value_take_database_table (GValue* value, gpointer v_object);
+gpointer value_get_database_table (const GValue* value);
+GType database_table_get_type (void) G_GNUC_CONST;
+GType saved_search_db_table_get_type (void) G_GNUC_CONST;
+SavedSearchDBTable* saved_search_db_table_get_instance (void);
+GQuark database_error_quark (void);
+void saved_search_db_table_create_from_row (SavedSearchDBTable* self, SavedSearchRow* row, SavedSearchID* result, GError** error);
+void app_window_database_error (GError* err);
+gpointer saved_search_table_ref (gpointer instance);
+void saved_search_table_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_table (GValue* value, gpointer v_object);
+void value_take_saved_search_table (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_table (const GValue* value);
+GType saved_search_table_get_type (void) G_GNUC_CONST;
+SavedSearchTable* saved_search_table_get_instance (void);
+void saved_search_table_add_to_map (SavedSearchTable* self, SavedSearch* search);
+gchar* data_object_to_string (DataObject* self);
+gboolean saved_search_rename (SavedSearch* self, const gchar* new_name);
+gboolean saved_search_table_exists (SavedSearchTable* self, const gchar* search_name);
+void saved_search_db_table_rename (SavedSearchDBTable* self, SavedSearchID* search_id, const gchar* new_name, GError** error);
+void saved_search_table_remove_from_map (SavedSearchTable* self, SavedSearch* search);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_switch_to_saved_search (LibraryWindow* self, SavedSearch* search);
+GeeList* saved_search_get_conditions (SavedSearch* self);
+SearchOperator saved_search_get_operator (SavedSearch* self);
+static void saved_search_finalize (GObject* obj);
+#define SAVED_SEARCH_TABLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SAVED_SEARCH_TABLE, SavedSearchTablePrivate))
+enum {
+ SAVED_SEARCH_TABLE_DUMMY_PROPERTY
+};
+static SavedSearchTable* saved_search_table_new (void);
+static SavedSearchTable* saved_search_table_construct (GType object_type);
+GeeList* saved_search_db_table_get_all_rows (SavedSearchDBTable* self, GError** error);
+#define DATA_OBJECT_INVALID_OBJECT_ID ((gint64) -1)
+GeeCollection* saved_search_table_get_all (SavedSearchTable* self);
+SavedSearch* saved_search_table_create (SavedSearchTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions);
+SavedSearchRow* saved_search_db_table_add (SavedSearchDBTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions, GError** error);
+void saved_search_table_remove (SavedSearchTable* self, SavedSearch* search);
+void saved_search_db_table_remove (SavedSearchDBTable* self, SavedSearchID* search_id, GError** error);
+GeeIterable* saved_search_table_get_saved_searches (SavedSearchTable* self);
+gint saved_search_table_get_count (SavedSearchTable* self);
+gchar* saved_search_table_generate_unique_name (SavedSearchTable* self);
+#define RESOURCES_DEFAULT_SAVED_SEARCH_NAME _ ("Saved Search")
+static void saved_search_table_finalize (SavedSearchTable* obj);
+
+
+gchar* search_operator_to_string (SearchOperator self) {
+ gchar* result = NULL;
+#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_OPERATOR_ANY:
+#line 1005 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("ANY");
+#line 16 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 16 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1014 "SearchBoolean.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_OPERATOR_ALL:
+#line 1018 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("ALL");
+#line 19 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 19 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1027 "SearchBoolean.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_OPERATOR_NONE:
+#line 1031 "SearchBoolean.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 22 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup ("NONE");
+#line 22 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 22 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1040 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 25 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:25: unrecognized search operator enumeration value");
+#line 1046 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchOperator search_operator_from_string (const gchar* str) {
+ SearchOperator result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 30 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 30 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "ANY") == 0) {
+#line 31 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_OPERATOR_ANY;
+#line 31 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1065 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 33 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "ALL") == 0) {
+#line 34 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_OPERATOR_ALL;
+#line 34 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1076 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 36 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp2_, "NONE") == 0) {
+#line 37 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_OPERATOR_NONE;
+#line 37 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1087 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = str;
+#line 40 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:40: unrecognized search operator name: %s", _tmp3_);
+#line 1094 "SearchBoolean.c"
+ }
+ }
+ }
+}
+
+
+GType search_operator_get_type (void) {
+ static volatile gsize search_operator_type_id__volatile = 0;
+ if (g_once_init_enter (&search_operator_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_OPERATOR_ANY, "SEARCH_OPERATOR_ANY", "any"}, {SEARCH_OPERATOR_ALL, "SEARCH_OPERATOR_ALL", "all"}, {SEARCH_OPERATOR_NONE, "SEARCH_OPERATOR_NONE", "none"}, {0, NULL, NULL}};
+ GType search_operator_type_id;
+ search_operator_type_id = g_enum_register_static ("SearchOperator", values);
+ g_once_init_leave (&search_operator_type_id__volatile, search_operator_type_id);
+ }
+ return search_operator_type_id__volatile;
+}
+
+
+SearchConditionSearchType* search_condition_search_type_as_array (int* result_length1) {
+ SearchConditionSearchType* result = NULL;
+ SearchConditionSearchType* _tmp0_ = NULL;
+ SearchConditionSearchType* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_new0 (SearchConditionSearchType, 11);
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[0] = SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[1] = SEARCH_CONDITION_SEARCH_TYPE_TITLE;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[2] = SEARCH_CONDITION_SEARCH_TYPE_TAG;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[3] = SEARCH_CONDITION_SEARCH_TYPE_COMMENT;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[4] = SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[5] = SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[6] = SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[7] = SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[8] = SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[9] = SEARCH_CONDITION_SEARCH_TYPE_RATING;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_[10] = SEARCH_CONDITION_SEARCH_TYPE_DATE;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1__length1 = 11;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (result_length1) {
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *result_length1 = _tmp1__length1;
+#line 1150 "SearchBoolean.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 64 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1156 "SearchBoolean.c"
+}
+
+
+static gint __lambda10_ (void* a, void* b) {
+ gint result = 0;
+ void* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ void* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = a;
+#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = search_condition_search_type_display_text (*((SearchConditionSearchType*) _tmp0_));
+#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = b;
+#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = search_condition_search_type_display_text (*((SearchConditionSearchType*) _tmp2_));
+#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = utf8_cs_compare (_tmp1_, _tmp3_);
+#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp4_;
+#line 71 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1181 "SearchBoolean.c"
+}
+
+
+static gint ___lambda10____compar_fn_t (void* key1, void* key2) {
+ gint result;
+ result = __lambda10_ (key1, key2);
+#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1190 "SearchBoolean.c"
+}
+
+
+void search_condition_search_type_sort_array (SearchConditionSearchType** array, int* array_length1) {
+ SearchConditionSearchType* _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ SearchConditionSearchType* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = *array;
+#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0__length1 = *array_length1;
+#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = *array;
+#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1__length1 = *array_length1;
+#line 70 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ qsort (_tmp0_, (gsize) _tmp1__length1, (gsize) sizeof (SearchConditionSearchType), ___lambda10____compar_fn_t);
+#line 1209 "SearchBoolean.c"
+}
+
+
+gchar* search_condition_search_type_to_string (SearchConditionSearchType self) {
+ gchar* result = NULL;
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT:
+#line 1219 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("ANY_TEXT");
+#line 79 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 79 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1228 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_TITLE:
+#line 1232 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("TITLE");
+#line 82 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 82 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1241 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_TAG:
+#line 1245 "SearchBoolean.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup ("TAG");
+#line 85 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 85 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1254 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_COMMENT:
+#line 1258 "SearchBoolean.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = g_strdup ("COMMENT");
+#line 88 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_;
+#line 88 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1267 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME:
+#line 1271 "SearchBoolean.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = g_strdup ("EVENT_NAME");
+#line 91 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp4_;
+#line 91 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1280 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME:
+#line 1284 "SearchBoolean.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 94 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = g_strdup ("FILE_NAME");
+#line 94 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp5_;
+#line 94 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1293 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE:
+#line 1297 "SearchBoolean.c"
+ {
+ gchar* _tmp6_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = g_strdup ("MEDIA_TYPE");
+#line 97 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp6_;
+#line 97 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1306 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE:
+#line 1310 "SearchBoolean.c"
+ {
+ gchar* _tmp7_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = g_strdup ("FLAG_STATE");
+#line 100 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp7_;
+#line 100 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1319 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE:
+#line 1323 "SearchBoolean.c"
+ {
+ gchar* _tmp8_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = g_strdup ("MODIFIED_STATE");
+#line 103 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp8_;
+#line 103 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1332 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_RATING:
+#line 1336 "SearchBoolean.c"
+ {
+ gchar* _tmp9_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = g_strdup ("RATING");
+#line 106 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp9_;
+#line 106 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1345 "SearchBoolean.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_DATE:
+#line 1349 "SearchBoolean.c"
+ {
+ gchar* _tmp10_ = NULL;
+#line 109 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = g_strdup ("DATE");
+#line 109 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp10_;
+#line 109 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1358 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 112 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:112: unrecognized search type enumeration value");
+#line 1364 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionSearchType search_condition_search_type_from_string (const gchar* str) {
+ SearchConditionSearchType result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 117 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 117 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "ANY_TEXT") == 0) {
+#line 118 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT;
+#line 118 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1383 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 120 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 120 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "TITLE") == 0) {
+#line 121 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_TITLE;
+#line 121 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1394 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 123 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp2_, "TAG") == 0) {
+#line 124 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_TAG;
+#line 124 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1405 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 126 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = str;
+#line 126 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp3_, "COMMENT") == 0) {
+#line 127 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_COMMENT;
+#line 127 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1416 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = str;
+#line 129 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp4_, "EVENT_NAME") == 0) {
+#line 130 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME;
+#line 130 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1427 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 132 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = str;
+#line 132 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp5_, "FILE_NAME") == 0) {
+#line 133 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME;
+#line 133 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1438 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = str;
+#line 135 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp6_, "MEDIA_TYPE") == 0) {
+#line 136 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE;
+#line 136 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1449 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp7_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = str;
+#line 138 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp7_, "FLAG_STATE") == 0) {
+#line 139 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE;
+#line 139 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1460 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp8_ = NULL;
+#line 141 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = str;
+#line 141 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp8_, "MODIFIED_STATE") == 0) {
+#line 142 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE;
+#line 142 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1471 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp9_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = str;
+#line 144 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp9_, "RATING") == 0) {
+#line 145 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_RATING;
+#line 145 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1482 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp10_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = str;
+#line 147 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp10_, "DATE") == 0) {
+#line 148 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_SEARCH_TYPE_DATE;
+#line 148 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1493 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp11_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = str;
+#line 151 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:151: unrecognized search type name: %s", _tmp11_);
+#line 1500 "SearchBoolean.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+gchar* search_condition_search_type_display_text (SearchConditionSearchType self) {
+ gchar* result = NULL;
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT:
+#line 1521 "SearchBoolean.c"
+ {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = _ ("Any text");
+#line 157 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 157 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 157 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1533 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_TITLE:
+#line 1537 "SearchBoolean.c"
+ {
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _ ("Title");
+#line 160 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 160 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_;
+#line 160 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1549 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_TAG:
+#line 1553 "SearchBoolean.c"
+ {
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = _ ("Tag");
+#line 163 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 163 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp5_;
+#line 163 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1565 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_COMMENT:
+#line 1569 "SearchBoolean.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 166 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = _ ("Comment");
+#line 166 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = g_strdup (_tmp6_);
+#line 166 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp7_;
+#line 166 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1581 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME:
+#line 1585 "SearchBoolean.c"
+ {
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = _ ("Event name");
+#line 169 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 169 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp9_;
+#line 169 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1597 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME:
+#line 1601 "SearchBoolean.c"
+ {
+ const gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = _ ("File name");
+#line 172 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = g_strdup (_tmp10_);
+#line 172 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp11_;
+#line 172 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1613 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE:
+#line 1617 "SearchBoolean.c"
+ {
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 175 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = _ ("Media type");
+#line 175 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 175 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp13_;
+#line 175 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1629 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE:
+#line 1633 "SearchBoolean.c"
+ {
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 178 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = _ ("Flag state");
+#line 178 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 178 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp15_;
+#line 178 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1645 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE:
+#line 1649 "SearchBoolean.c"
+ {
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 181 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = _ ("Photo state");
+#line 181 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 181 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp17_;
+#line 181 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1661 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_RATING:
+#line 1665 "SearchBoolean.c"
+ {
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = _ ("Rating");
+#line 184 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp19_ = g_strdup (_tmp18_);
+#line 184 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp19_;
+#line 184 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1677 "SearchBoolean.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_SEARCH_TYPE_DATE:
+#line 1681 "SearchBoolean.c"
+ {
+ const gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp20_ = _ ("Date");
+#line 187 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp21_ = g_strdup (_tmp20_);
+#line 187 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp21_;
+#line 187 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1693 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 190 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:190: unrecognized search type enumeration value");
+#line 1699 "SearchBoolean.c"
+ }
+ }
+}
+
+
+GType search_condition_search_type_get_type (void) {
+ static volatile gsize search_condition_search_type_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_search_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT, "SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT", "any-text"}, {SEARCH_CONDITION_SEARCH_TYPE_TITLE, "SEARCH_CONDITION_SEARCH_TYPE_TITLE", "title"}, {SEARCH_CONDITION_SEARCH_TYPE_TAG, "SEARCH_CONDITION_SEARCH_TYPE_TAG", "tag"}, {SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME, "SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME", "event-name"}, {SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME, "SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME", "file-name"}, {SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE, "SEARCH_CONDITION_SEARCH_TYPE_MEDIA_TYPE", "media-type"}, {SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE, "SEARCH_CONDITION_SEARCH_TYPE_FLAG_STATE", "flag-state"}, {SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE, "SEARCH_CONDITION_SEARCH_TYPE_MODIFIED_STATE", "modified-state"}, {SEARCH_CONDITION_SEARCH_TYPE_RATING, "SEARCH_CONDITION_SEARCH_TYPE_RATING", "rating"}, {SEARCH_CONDITION_SEARCH_TYPE_COMMENT, "SEARCH_CONDITION_SEARCH_TYPE_COMMENT", "comment"}, {SEARCH_CONDITION_SEARCH_TYPE_DATE, "SEARCH_CONDITION_SEARCH_TYPE_DATE", "date"}, {0, NULL, NULL}};
+ GType search_condition_search_type_type_id;
+ search_condition_search_type_type_id = g_enum_register_static ("SearchConditionSearchType", values);
+ g_once_init_leave (&search_condition_search_type_type_id__volatile, search_condition_search_type_type_id);
+ }
+ return search_condition_search_type_type_id__volatile;
+}
+
+
+static gboolean search_condition_real_predicate (SearchCondition* self, MediaSource* source) {
+#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("Type `%s' does not implement abstract method `search_condition_predicate'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return FALSE;
+#line 1722 "SearchBoolean.c"
+}
+
+
+gboolean search_condition_predicate (SearchCondition* self, MediaSource* source) {
+#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION (self), FALSE);
+#line 198 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return SEARCH_CONDITION_GET_CLASS (self)->predicate (self, source);
+#line 1731 "SearchBoolean.c"
+}
+
+
+SearchCondition* search_condition_construct (GType object_type) {
+ SearchCondition* self = NULL;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SearchCondition*) g_type_create_instance (object_type);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 1741 "SearchBoolean.c"
+}
+
+
+SearchConditionSearchType search_condition_get_search_type (SearchCondition* self) {
+ SearchConditionSearchType result;
+ SearchConditionSearchType _tmp0_ = 0;
+#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION (self), 0);
+#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_search_type;
+#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 1756 "SearchBoolean.c"
+}
+
+
+void search_condition_set_search_type (SearchCondition* self, SearchConditionSearchType value) {
+ SearchConditionSearchType _tmp0_ = 0;
+#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION (self));
+#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 195 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_search_type = _tmp0_;
+#line 1768 "SearchBoolean.c"
+}
+
+
+static void value_search_condition_init (GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 1775 "SearchBoolean.c"
+}
+
+
+static void value_search_condition_free_value (GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (value->data[0].v_pointer) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_unref (value->data[0].v_pointer);
+#line 1784 "SearchBoolean.c"
+ }
+}
+
+
+static void value_search_condition_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (src_value->data[0].v_pointer) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ dest_value->data[0].v_pointer = search_condition_ref (src_value->data[0].v_pointer);
+#line 1794 "SearchBoolean.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1798 "SearchBoolean.c"
+ }
+}
+
+
+static gpointer value_search_condition_peek_pointer (const GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return value->data[0].v_pointer;
+#line 1806 "SearchBoolean.c"
+}
+
+
+static gchar* value_search_condition_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (collect_values[0].v_pointer) {
+#line 1813 "SearchBoolean.c"
+ SearchCondition* object;
+ object = collect_values[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1820 "SearchBoolean.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1824 "SearchBoolean.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = search_condition_ref (object);
+#line 1828 "SearchBoolean.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 1832 "SearchBoolean.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 1836 "SearchBoolean.c"
+}
+
+
+static gchar* value_search_condition_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SearchCondition** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!object_p) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1847 "SearchBoolean.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!value->data[0].v_pointer) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *object_p = NULL;
+#line 1853 "SearchBoolean.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1857 "SearchBoolean.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *object_p = search_condition_ref (value->data[0].v_pointer);
+#line 1861 "SearchBoolean.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 1865 "SearchBoolean.c"
+}
+
+
+GParamSpec* param_spec_search_condition (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSearchCondition* spec;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SEARCH_CONDITION), NULL);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return G_PARAM_SPEC (spec);
+#line 1879 "SearchBoolean.c"
+}
+
+
+gpointer value_get_search_condition (const GValue* value) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_CONDITION), NULL);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return value->data[0].v_pointer;
+#line 1888 "SearchBoolean.c"
+}
+
+
+void value_set_search_condition (GValue* value, gpointer v_object) {
+ SearchCondition* old;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_CONDITION));
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ old = value->data[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (v_object) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SEARCH_CONDITION));
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = v_object;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_ref (value->data[0].v_pointer);
+#line 1908 "SearchBoolean.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 1912 "SearchBoolean.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (old) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_unref (old);
+#line 1918 "SearchBoolean.c"
+ }
+}
+
+
+void value_take_search_condition (GValue* value, gpointer v_object) {
+ SearchCondition* old;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SEARCH_CONDITION));
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ old = value->data[0].v_pointer;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (v_object) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SEARCH_CONDITION));
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = v_object;
+#line 1937 "SearchBoolean.c"
+ } else {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 1941 "SearchBoolean.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (old) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_unref (old);
+#line 1947 "SearchBoolean.c"
+ }
+}
+
+
+static void search_condition_class_init (SearchConditionClass * klass) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_parent_class = g_type_class_peek_parent (klass);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->finalize = search_condition_finalize;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SearchConditionPrivate));
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->predicate = search_condition_real_predicate;
+#line 1961 "SearchBoolean.c"
+}
+
+
+static void search_condition_instance_init (SearchCondition * self) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SEARCH_CONDITION_GET_PRIVATE (self);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->ref_count = 1;
+#line 1970 "SearchBoolean.c"
+}
+
+
+static void search_condition_finalize (SearchCondition* obj) {
+ SearchCondition * self;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION, SearchCondition);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_signal_handlers_destroy (self);
+#line 1980 "SearchBoolean.c"
+}
+
+
+GType search_condition_get_type (void) {
+ static volatile gsize search_condition_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_search_condition_init, value_search_condition_free_value, value_search_condition_copy_value, value_search_condition_peek_pointer, "p", value_search_condition_collect_value, "p", value_search_condition_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SearchConditionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchCondition), 0, (GInstanceInitFunc) search_condition_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType search_condition_type_id;
+ search_condition_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SearchCondition", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&search_condition_type_id__volatile, search_condition_type_id);
+ }
+ return search_condition_type_id__volatile;
+}
+
+
+gpointer search_condition_ref (gpointer instance) {
+ SearchCondition* self;
+ self = instance;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return instance;
+#line 2005 "SearchBoolean.c"
+}
+
+
+void search_condition_unref (gpointer instance) {
+ SearchCondition* self;
+ self = instance;
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SEARCH_CONDITION_GET_CLASS (self)->finalize (self);
+#line 47 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2018 "SearchBoolean.c"
+ }
+}
+
+
+gchar* search_condition_text_context_to_string (SearchConditionTextContext self) {
+ gchar* result = NULL;
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS:
+#line 2029 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 215 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("CONTAINS");
+#line 215 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 215 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2038 "SearchBoolean.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY:
+#line 2042 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 218 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("IS_EXACTLY");
+#line 218 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 218 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2051 "SearchBoolean.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH:
+#line 2055 "SearchBoolean.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 221 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup ("STARTS_WITH");
+#line 221 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 221 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2064 "SearchBoolean.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH:
+#line 2068 "SearchBoolean.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = g_strdup ("ENDS_WITH");
+#line 224 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_;
+#line 224 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2077 "SearchBoolean.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN:
+#line 2081 "SearchBoolean.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = g_strdup ("DOES_NOT_CONTAIN");
+#line 227 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp4_;
+#line 227 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2090 "SearchBoolean.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET:
+#line 2094 "SearchBoolean.c"
+ {
+ gchar* _tmp5_ = NULL;
+#line 230 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = g_strdup ("IS_NOT_SET");
+#line 230 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp5_;
+#line 230 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2103 "SearchBoolean.c"
+ }
+#line 213 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_IS_SET:
+#line 2107 "SearchBoolean.c"
+ {
+ gchar* _tmp6_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = g_strdup ("IS_SET");
+#line 233 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp6_;
+#line 233 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2116 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 236 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:236: unrecognized text search context enumeration v" \
+"alue");
+#line 2122 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionTextContext search_condition_text_context_from_string (const gchar* str) {
+ SearchConditionTextContext result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 241 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 241 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "CONTAINS") == 0) {
+#line 242 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS;
+#line 242 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2141 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 244 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 244 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "IS_EXACTLY") == 0) {
+#line 245 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY;
+#line 245 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2152 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 247 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp2_, "STARTS_WITH") == 0) {
+#line 248 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH;
+#line 248 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2163 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 250 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = str;
+#line 250 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp3_, "ENDS_WITH") == 0) {
+#line 251 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH;
+#line 251 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2174 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = str;
+#line 253 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp4_, "DOES_NOT_CONTAIN") == 0) {
+#line 254 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN;
+#line 254 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2185 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = str;
+#line 256 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp5_, "IS_NOT_SET") == 0) {
+#line 257 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET;
+#line 257 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2196 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+#line 259 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = str;
+#line 259 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp6_, "IS_SET") == 0) {
+#line 260 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_TEXT_CONTEXT_IS_SET;
+#line 260 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2207 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp7_ = NULL;
+#line 263 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = str;
+#line 263 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:263: unrecognized text search context name: %s", _tmp7_);
+#line 2214 "SearchBoolean.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+GType search_condition_text_context_get_type (void) {
+ static volatile gsize search_condition_text_context_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_text_context_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS, "SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS", "contains"}, {SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY, "SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY", "is-exactly"}, {SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH, "SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH", "starts-with"}, {SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH, "SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH", "ends-with"}, {SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN, "SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN", "does-not-contain"}, {SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET, "SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET", "is-not-set"}, {SEARCH_CONDITION_TEXT_CONTEXT_IS_SET, "SEARCH_CONDITION_TEXT_CONTEXT_IS_SET", "is-set"}, {0, NULL, NULL}};
+ GType search_condition_text_context_type_id;
+ search_condition_text_context_type_id = g_enum_register_static ("SearchConditionTextContext", values);
+ g_once_init_leave (&search_condition_text_context_type_id__volatile, search_condition_text_context_type_id);
+ }
+ return search_condition_text_context_type_id__volatile;
+}
+
+
+SearchConditionText* search_condition_text_construct (GType object_type, SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context) {
+ SearchConditionText* self = NULL;
+ SearchConditionSearchType _tmp0_ = 0;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ SearchConditionTextContext _tmp8_ = 0;
+#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SearchConditionText*) search_condition_construct (object_type);
+#line 274 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = search_type;
+#line 274 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = text;
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp2_ != NULL) {
+#line 2253 "SearchBoolean.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = text;
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = g_utf8_strdown (_tmp3_, (gssize) -1);
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = _tmp4_;
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = string_remove_diacritics (_tmp5_);
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp1_);
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp6_;
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp5_);
+#line 2272 "SearchBoolean.c"
+ } else {
+ gchar* _tmp7_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = g_strdup ("");
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp1_);
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp7_;
+#line 2281 "SearchBoolean.c"
+ }
+#line 275 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_text_set_text (self, _tmp1_);
+#line 276 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = context;
+#line 276 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_text_set_context (self, _tmp8_);
+#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp1_);
+#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 2293 "SearchBoolean.c"
+}
+
+
+SearchConditionText* search_condition_text_new (SearchConditionSearchType search_type, const gchar* text, SearchConditionTextContext context) {
+#line 273 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return search_condition_text_construct (TYPE_SEARCH_CONDITION_TEXT, search_type, text, context);
+#line 2300 "SearchBoolean.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2320 "SearchBoolean.c"
+}
+
+
+static gboolean search_condition_text_string_match (SearchConditionText* self, const gchar* needle, const gchar* haystack) {
+ gboolean result = FALSE;
+ SearchConditionTextContext _tmp0_ = 0;
+#line 280 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_TEXT (self), FALSE);
+#line 280 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_context;
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (_tmp0_) {
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_CONTAINS:
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN:
+#line 2339 "SearchBoolean.c"
+ {
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = haystack;
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!_tmp3_) {
+#line 2350 "SearchBoolean.c"
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = haystack;
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = needle;
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = string_contains (_tmp4_, _tmp5_);
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp6_;
+#line 2362 "SearchBoolean.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = FALSE;
+#line 2366 "SearchBoolean.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 284 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2372 "SearchBoolean.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_IS_EXACTLY:
+#line 2376 "SearchBoolean.c"
+ {
+ gboolean _tmp7_ = FALSE;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = haystack;
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = is_string_empty (_tmp8_);
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!_tmp9_) {
+#line 2387 "SearchBoolean.c"
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = haystack;
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = needle;
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = g_strcmp0 (_tmp10_, _tmp11_) == 0;
+#line 2396 "SearchBoolean.c"
+ } else {
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = FALSE;
+#line 2400 "SearchBoolean.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp7_;
+#line 287 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2406 "SearchBoolean.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_STARTS_WITH:
+#line 2410 "SearchBoolean.c"
+ {
+ gboolean _tmp12_ = FALSE;
+ const gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = haystack;
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = is_string_empty (_tmp13_);
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!_tmp14_) {
+#line 2421 "SearchBoolean.c"
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = haystack;
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = needle;
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = g_str_has_prefix (_tmp15_, _tmp16_);
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = _tmp17_;
+#line 2433 "SearchBoolean.c"
+ } else {
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = FALSE;
+#line 2437 "SearchBoolean.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp12_;
+#line 290 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2443 "SearchBoolean.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_ENDS_WITH:
+#line 2447 "SearchBoolean.c"
+ {
+ gboolean _tmp18_ = FALSE;
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp19_ = haystack;
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp20_ = is_string_empty (_tmp19_);
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!_tmp20_) {
+#line 2458 "SearchBoolean.c"
+ const gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp21_ = haystack;
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp22_ = needle;
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp23_ = g_str_has_suffix (_tmp21_, _tmp22_);
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = _tmp23_;
+#line 2470 "SearchBoolean.c"
+ } else {
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = FALSE;
+#line 2474 "SearchBoolean.c"
+ }
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp18_;
+#line 293 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2480 "SearchBoolean.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_IS_NOT_SET:
+#line 2484 "SearchBoolean.c"
+ {
+ const gchar* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp24_ = haystack;
+#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp25_ = is_string_empty (_tmp24_);
+#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp25_;
+#line 296 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2496 "SearchBoolean.c"
+ }
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_TEXT_CONTEXT_IS_SET:
+#line 2500 "SearchBoolean.c"
+ {
+ const gchar* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp26_ = haystack;
+#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp27_ = is_string_empty (_tmp26_);
+#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = !_tmp27_;
+#line 299 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2512 "SearchBoolean.c"
+ }
+ default:
+#line 281 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ break;
+#line 2517 "SearchBoolean.c"
+ }
+#line 302 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = FALSE;
+#line 302 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 2523 "SearchBoolean.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 2530 "SearchBoolean.c"
+}
+
+
+static gboolean search_condition_text_real_predicate (SearchCondition* base, MediaSource* source) {
+ SearchConditionText * self;
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ gboolean _tmp0_ = FALSE;
+ SearchConditionSearchType _tmp1_ = 0;
+ SearchConditionSearchType _tmp2_ = 0;
+ gboolean _tmp21_ = FALSE;
+ SearchConditionSearchType _tmp22_ = 0;
+ SearchConditionSearchType _tmp23_ = 0;
+ gboolean _tmp52_ = FALSE;
+ SearchConditionSearchType _tmp53_ = 0;
+ SearchConditionSearchType _tmp54_ = 0;
+ gboolean _tmp75_ = FALSE;
+ SearchConditionSearchType _tmp76_ = 0;
+ SearchConditionSearchType _tmp77_ = 0;
+ gboolean _tmp91_ = FALSE;
+ SearchConditionSearchType _tmp92_ = 0;
+ SearchConditionSearchType _tmp93_ = 0;
+ gboolean _tmp106_ = FALSE;
+ SearchConditionTextContext _tmp107_ = 0;
+#line 306 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_TEXT, SearchConditionText);
+#line 306 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 307 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = FALSE;
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_;
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp2_) {
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = TRUE;
+#line 2569 "SearchBoolean.c"
+ } else {
+ SearchConditionSearchType _tmp3_ = 0;
+ SearchConditionSearchType _tmp4_ = 0;
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = _tmp3_;
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = SEARCH_CONDITION_SEARCH_TYPE_TITLE == _tmp4_;
+#line 2579 "SearchBoolean.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp0_) {
+#line 2583 "SearchBoolean.c"
+ gchar* _tmp5_ = NULL;
+ MediaSource* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gchar* title = NULL;
+ gchar* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ const gchar* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = source;
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = media_source_get_title (_tmp6_);
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = _tmp7_;
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = NULL != _tmp8_;
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp8_);
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp9_) {
+#line 2607 "SearchBoolean.c"
+ MediaSource* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = source;
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = media_source_get_title (_tmp10_);
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = _tmp11_;
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = g_utf8_strdown (_tmp12_, (gssize) -1);
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = _tmp13_;
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = string_remove_diacritics (_tmp14_);
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp5_);
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = _tmp15_;
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp14_);
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp12_);
+#line 2634 "SearchBoolean.c"
+ } else {
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp5_);
+#line 312 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = NULL;
+#line 2640 "SearchBoolean.c"
+ }
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = g_strdup (_tmp5_);
+#line 311 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ title = _tmp16_;
+#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = ret;
+#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = self->priv->_text;
+#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp19_ = title;
+#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp20_ = search_condition_text_string_match (self, _tmp18_, _tmp19_);
+#line 313 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp17_ | _tmp20_;
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (title);
+#line 310 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp5_);
+#line 2660 "SearchBoolean.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp22_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp23_ = _tmp22_;
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp23_) {
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp21_ = TRUE;
+#line 2670 "SearchBoolean.c"
+ } else {
+ SearchConditionSearchType _tmp24_ = 0;
+ SearchConditionSearchType _tmp25_ = 0;
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp24_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp25_ = _tmp24_;
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp21_ = SEARCH_CONDITION_SEARCH_TYPE_TAG == _tmp25_;
+#line 2680 "SearchBoolean.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp21_) {
+#line 2684 "SearchBoolean.c"
+ GeeList* tag_list = NULL;
+ TagSourceCollection* _tmp26_ = NULL;
+ MediaSource* _tmp27_ = NULL;
+ GeeList* _tmp28_ = NULL;
+ GeeList* _tmp29_ = NULL;
+#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp26_ = tag_global;
+#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp27_ = source;
+#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp28_ = tag_source_collection_fetch_for_source (_tmp26_, _tmp27_);
+#line 318 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ tag_list = _tmp28_;
+#line 319 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp29_ = tag_list;
+#line 319 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (NULL != _tmp29_) {
+#line 2702 "SearchBoolean.c"
+ gchar* itag = NULL;
+ {
+ GeeList* _tag_list = NULL;
+ GeeList* _tmp30_ = NULL;
+ GeeList* _tmp31_ = NULL;
+ gint _tag_size = 0;
+ GeeList* _tmp32_ = NULL;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gint _tag_index = 0;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp30_ = tag_list;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp31_ = _g_object_ref0 (_tmp30_);
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tag_list = _tmp31_;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp32_ = _tag_list;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp33_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp34_ = _tmp33_;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tag_size = _tmp34_;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tag_index = -1;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ while (TRUE) {
+#line 2731 "SearchBoolean.c"
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint _tmp37_ = 0;
+ Tag* tag = NULL;
+ GeeList* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gpointer _tmp40_ = NULL;
+ Tag* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+ gchar* _tmp44_ = NULL;
+ gboolean _tmp45_ = FALSE;
+ const gchar* _tmp46_ = NULL;
+ const gchar* _tmp47_ = NULL;
+ gboolean _tmp48_ = FALSE;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp35_ = _tag_index;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tag_index = _tmp35_ + 1;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp36_ = _tag_index;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp37_ = _tag_size;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!(_tmp36_ < _tmp37_)) {
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ break;
+#line 2759 "SearchBoolean.c"
+ }
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp38_ = _tag_list;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp39_ = _tag_index;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp40_ = gee_list_get (_tmp38_, _tmp39_);
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ tag = (Tag*) _tmp40_;
+#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp41_ = tag;
+#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp42_ = tag_get_searchable_name (_tmp41_);
+#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp43_ = _tmp42_;
+#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp44_ = g_utf8_strdown (_tmp43_, (gssize) -1);
+#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (itag);
+#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ itag = _tmp44_;
+#line 322 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp43_);
+#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp45_ = ret;
+#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp46_ = self->priv->_text;
+#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp47_ = itag;
+#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp48_ = search_condition_text_string_match (self, _tmp46_, _tmp47_);
+#line 323 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp45_ | _tmp48_;
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (tag);
+#line 2795 "SearchBoolean.c"
+ }
+#line 321 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_tag_list);
+#line 2799 "SearchBoolean.c"
+ }
+#line 319 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (itag);
+#line 2803 "SearchBoolean.c"
+ } else {
+ gboolean _tmp49_ = FALSE;
+ const gchar* _tmp50_ = NULL;
+ gboolean _tmp51_ = FALSE;
+#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp49_ = ret;
+#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp50_ = self->priv->_text;
+#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp51_ = search_condition_text_string_match (self, _tmp50_, NULL);
+#line 326 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp49_ | _tmp51_;
+#line 2816 "SearchBoolean.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (tag_list);
+#line 2820 "SearchBoolean.c"
+ }
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp53_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp54_ = _tmp53_;
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp54_) {
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp52_ = TRUE;
+#line 2830 "SearchBoolean.c"
+ } else {
+ SearchConditionSearchType _tmp55_ = 0;
+ SearchConditionSearchType _tmp56_ = 0;
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp55_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp56_ = _tmp55_;
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp52_ = SEARCH_CONDITION_SEARCH_TYPE_EVENT_NAME == _tmp56_;
+#line 2840 "SearchBoolean.c"
+ }
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp52_) {
+#line 2844 "SearchBoolean.c"
+ gchar* _tmp57_ = NULL;
+ MediaSource* _tmp58_ = NULL;
+ Event* _tmp59_ = NULL;
+ Event* _tmp60_ = NULL;
+ gboolean _tmp61_ = FALSE;
+ gchar* event_name = NULL;
+ gchar* _tmp70_ = NULL;
+ gboolean _tmp71_ = FALSE;
+ const gchar* _tmp72_ = NULL;
+ const gchar* _tmp73_ = NULL;
+ gboolean _tmp74_ = FALSE;
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp58_ = source;
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp59_ = media_source_get_event (_tmp58_);
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp60_ = _tmp59_;
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp61_ = NULL != _tmp60_;
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_tmp60_);
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp61_) {
+#line 2868 "SearchBoolean.c"
+ MediaSource* _tmp62_ = NULL;
+ Event* _tmp63_ = NULL;
+ Event* _tmp64_ = NULL;
+ gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+ gchar* _tmp67_ = NULL;
+ gchar* _tmp68_ = NULL;
+ gchar* _tmp69_ = NULL;
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp62_ = source;
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp63_ = media_source_get_event (_tmp62_);
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp64_ = _tmp63_;
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp65_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, TYPE_DATA_OBJECT, DataObject));
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp66_ = _tmp65_;
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp67_ = g_utf8_strdown (_tmp66_, (gssize) -1);
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp68_ = _tmp67_;
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp69_ = string_remove_diacritics (_tmp68_);
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp57_);
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp57_ = _tmp69_;
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp68_);
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp66_);
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_tmp64_);
+#line 2903 "SearchBoolean.c"
+ } else {
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp57_);
+#line 333 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp57_ = NULL;
+#line 2909 "SearchBoolean.c"
+ }
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp70_ = g_strdup (_tmp57_);
+#line 332 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ event_name = _tmp70_;
+#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp71_ = ret;
+#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp72_ = self->priv->_text;
+#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp73_ = event_name;
+#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp74_ = search_condition_text_string_match (self, _tmp72_, _tmp73_);
+#line 334 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp71_ | _tmp74_;
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (event_name);
+#line 331 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp57_);
+#line 2929 "SearchBoolean.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp76_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp77_ = _tmp76_;
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp77_) {
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp75_ = TRUE;
+#line 2939 "SearchBoolean.c"
+ } else {
+ SearchConditionSearchType _tmp78_ = 0;
+ SearchConditionSearchType _tmp79_ = 0;
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp78_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp79_ = _tmp78_;
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp75_ = SEARCH_CONDITION_SEARCH_TYPE_COMMENT == _tmp79_;
+#line 2949 "SearchBoolean.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp75_) {
+#line 2953 "SearchBoolean.c"
+ gchar* comment = NULL;
+ MediaSource* _tmp80_ = NULL;
+ gchar* _tmp81_ = NULL;
+ const gchar* _tmp82_ = NULL;
+#line 339 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp80_ = source;
+#line 339 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp81_ = media_source_get_comment (_tmp80_);
+#line 339 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ comment = _tmp81_;
+#line 340 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp82_ = comment;
+#line 340 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (NULL != _tmp82_) {
+#line 2968 "SearchBoolean.c"
+ gboolean _tmp83_ = FALSE;
+ const gchar* _tmp84_ = NULL;
+ const gchar* _tmp85_ = NULL;
+ gchar* _tmp86_ = NULL;
+ gchar* _tmp87_ = NULL;
+ gchar* _tmp88_ = NULL;
+ gchar* _tmp89_ = NULL;
+ gboolean _tmp90_ = FALSE;
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp83_ = ret;
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp84_ = self->priv->_text;
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp85_ = comment;
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp86_ = g_utf8_strdown (_tmp85_, (gssize) -1);
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp87_ = _tmp86_;
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp88_ = string_remove_diacritics (_tmp87_);
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp89_ = _tmp88_;
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp90_ = search_condition_text_string_match (self, _tmp84_, _tmp89_);
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp83_ | _tmp90_;
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp89_);
+#line 341 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp87_);
+#line 2999 "SearchBoolean.c"
+ }
+#line 338 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (comment);
+#line 3003 "SearchBoolean.c"
+ }
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp92_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp93_ = _tmp92_;
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_CONDITION_SEARCH_TYPE_ANY_TEXT == _tmp93_) {
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp91_ = TRUE;
+#line 3013 "SearchBoolean.c"
+ } else {
+ SearchConditionSearchType _tmp94_ = 0;
+ SearchConditionSearchType _tmp95_ = 0;
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp94_ = search_condition_get_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition));
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp95_ = _tmp94_;
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp91_ = SEARCH_CONDITION_SEARCH_TYPE_FILE_NAME == _tmp95_;
+#line 3023 "SearchBoolean.c"
+ }
+#line 345 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp91_) {
+#line 3027 "SearchBoolean.c"
+ gboolean _tmp96_ = FALSE;
+ const gchar* _tmp97_ = NULL;
+ MediaSource* _tmp98_ = NULL;
+ gchar* _tmp99_ = NULL;
+ gchar* _tmp100_ = NULL;
+ gchar* _tmp101_ = NULL;
+ gchar* _tmp102_ = NULL;
+ gchar* _tmp103_ = NULL;
+ gchar* _tmp104_ = NULL;
+ gboolean _tmp105_ = FALSE;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp96_ = ret;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp97_ = self->priv->_text;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp98_ = source;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp99_ = media_source_get_basename (_tmp98_);
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp100_ = _tmp99_;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp101_ = g_utf8_strdown (_tmp100_, (gssize) -1);
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp102_ = _tmp101_;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp103_ = string_remove_diacritics (_tmp102_);
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp104_ = _tmp103_;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp105_ = search_condition_text_string_match (self, _tmp97_, _tmp104_);
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp96_ | _tmp105_;
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp104_);
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp102_);
+#line 346 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp100_);
+#line 3066 "SearchBoolean.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp107_ = self->priv->_context;
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp107_ == SEARCH_CONDITION_TEXT_CONTEXT_DOES_NOT_CONTAIN) {
+#line 3072 "SearchBoolean.c"
+ gboolean _tmp108_ = FALSE;
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp108_ = ret;
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp106_ = !_tmp108_;
+#line 3078 "SearchBoolean.c"
+ } else {
+ gboolean _tmp109_ = FALSE;
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp109_ = ret;
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp106_ = _tmp109_;
+#line 3085 "SearchBoolean.c"
+ }
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp106_;
+#line 349 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3091 "SearchBoolean.c"
+}
+
+
+const gchar* search_condition_text_get_text (SearchConditionText* self) {
+ const gchar* result;
+ const gchar* _tmp0_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_TEXT (self), NULL);
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_text;
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3106 "SearchBoolean.c"
+}
+
+
+static void search_condition_text_set_text (SearchConditionText* self, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_TEXT (self));
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (self->priv->_text);
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_text = _tmp1_;
+#line 3123 "SearchBoolean.c"
+}
+
+
+SearchConditionTextContext search_condition_text_get_context (SearchConditionText* self) {
+ SearchConditionTextContext result;
+ SearchConditionTextContext _tmp0_ = 0;
+#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_TEXT (self), 0);
+#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_context;
+#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3138 "SearchBoolean.c"
+}
+
+
+static void search_condition_text_set_context (SearchConditionText* self, SearchConditionTextContext value) {
+ SearchConditionTextContext _tmp0_ = 0;
+#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_TEXT (self));
+#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 271 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_context = _tmp0_;
+#line 3150 "SearchBoolean.c"
+}
+
+
+static void search_condition_text_class_init (SearchConditionTextClass * klass) {
+#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_text_parent_class = g_type_class_peek_parent (klass);
+#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->finalize = search_condition_text_finalize;
+#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SearchConditionTextPrivate));
+#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->predicate = search_condition_text_real_predicate;
+#line 3163 "SearchBoolean.c"
+}
+
+
+static void search_condition_text_instance_init (SearchConditionText * self) {
+#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SEARCH_CONDITION_TEXT_GET_PRIVATE (self);
+#line 3170 "SearchBoolean.c"
+}
+
+
+static void search_condition_text_finalize (SearchCondition* obj) {
+ SearchConditionText * self;
+#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_TEXT, SearchConditionText);
+#line 268 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (self->priv->_text);
+#line 202 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SEARCH_CONDITION_CLASS (search_condition_text_parent_class)->finalize (obj);
+#line 3182 "SearchBoolean.c"
+}
+
+
+GType search_condition_text_get_type (void) {
+ static volatile gsize search_condition_text_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_text_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchConditionTextClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_text_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionText), 0, (GInstanceInitFunc) search_condition_text_instance_init, NULL };
+ GType search_condition_text_type_id;
+ search_condition_text_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionText", &g_define_type_info, 0);
+ g_once_init_leave (&search_condition_text_type_id__volatile, search_condition_text_type_id);
+ }
+ return search_condition_text_type_id__volatile;
+}
+
+
+gchar* search_condition_media_type_context_to_string (SearchConditionMediaTypeContext self) {
+ gchar* result = NULL;
+#line 360 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 360 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS:
+#line 3204 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 362 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("IS");
+#line 362 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 362 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3213 "SearchBoolean.c"
+ }
+#line 360 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT:
+#line 3217 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 365 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("IS_NOT");
+#line 365 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 365 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3226 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 368 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:368: unrecognized media search context enumeration " \
+"value");
+#line 3232 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionMediaTypeContext search_condition_media_type_context_from_string (const gchar* str) {
+ SearchConditionMediaTypeContext result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 372 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 373 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 373 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "IS") == 0) {
+#line 374 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
+#line 374 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3251 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 376 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "IS_NOT") == 0) {
+#line 377 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
+#line 377 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3262 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 380 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 380 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:380: unrecognized media search context name: %s", _tmp2_);
+#line 3269 "SearchBoolean.c"
+ }
+ }
+}
+
+
+GType search_condition_media_type_context_get_type (void) {
+ static volatile gsize search_condition_media_type_context_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_media_type_context_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS, "SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS", "is"}, {SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT, "SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT", "is-not"}, {0, NULL, NULL}};
+ GType search_condition_media_type_context_type_id;
+ search_condition_media_type_context_type_id = g_enum_register_static ("SearchConditionMediaTypeContext", values);
+ g_once_init_leave (&search_condition_media_type_context_type_id__volatile, search_condition_media_type_context_type_id);
+ }
+ return search_condition_media_type_context_type_id__volatile;
+}
+
+
+gchar* search_condition_media_type_media_type_to_string (SearchConditionMediaTypeMediaType self) {
+ gchar* result = NULL;
+#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL:
+#line 3293 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 392 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("PHOTO_ALL");
+#line 392 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 392 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3302 "SearchBoolean.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW:
+#line 3306 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 395 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("PHOTO_RAW");
+#line 395 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 395 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3315 "SearchBoolean.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO:
+#line 3319 "SearchBoolean.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 398 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup ("VIDEO");
+#line 398 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 398 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3328 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 401 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:401: unrecognized media search type enumeration val" \
+"ue");
+#line 3334 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionMediaTypeMediaType search_condition_media_type_media_type_from_string (const gchar* str) {
+ SearchConditionMediaTypeMediaType result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 405 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 406 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 406 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "PHOTO_ALL") == 0) {
+#line 407 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL;
+#line 407 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3353 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 409 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 409 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "PHOTO_RAW") == 0) {
+#line 410 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW;
+#line 410 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3364 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 412 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 412 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp2_, "VIDEO") == 0) {
+#line 413 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO;
+#line 413 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3375 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 416 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = str;
+#line 416 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:416: unrecognized media search type name: %s", _tmp3_);
+#line 3382 "SearchBoolean.c"
+ }
+ }
+ }
+}
+
+
+GType search_condition_media_type_media_type_get_type (void) {
+ static volatile gsize search_condition_media_type_media_type_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_media_type_media_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL, "SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL", "photo-all"}, {SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW, "SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW", "photo-raw"}, {SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO, "SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO", "video"}, {0, NULL, NULL}};
+ GType search_condition_media_type_media_type_type_id;
+ search_condition_media_type_media_type_type_id = g_enum_register_static ("SearchConditionMediaTypeMediaType", values);
+ g_once_init_leave (&search_condition_media_type_media_type_type_id__volatile, search_condition_media_type_media_type_type_id);
+ }
+ return search_condition_media_type_media_type_type_id__volatile;
+}
+
+
+SearchConditionMediaType* search_condition_media_type_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type) {
+ SearchConditionMediaType* self = NULL;
+ SearchConditionSearchType _tmp0_ = 0;
+ SearchConditionMediaTypeContext _tmp1_ = 0;
+ SearchConditionMediaTypeMediaType _tmp2_ = 0;
+#line 426 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SearchConditionMediaType*) search_condition_construct (object_type);
+#line 427 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = search_type;
+#line 427 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
+#line 428 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = context;
+#line 428 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_media_type_set_context (self, _tmp1_);
+#line 429 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = media_type;
+#line 429 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_media_type_set_media_type (self, _tmp2_);
+#line 426 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 3422 "SearchBoolean.c"
+}
+
+
+SearchConditionMediaType* search_condition_media_type_new (SearchConditionSearchType search_type, SearchConditionMediaTypeContext context, SearchConditionMediaTypeMediaType media_type) {
+#line 426 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return search_condition_media_type_construct (TYPE_SEARCH_CONDITION_MEDIA_TYPE, search_type, context, media_type);
+#line 3429 "SearchBoolean.c"
+}
+
+
+static gboolean search_condition_media_type_real_predicate (SearchCondition* base, MediaSource* source) {
+ SearchConditionMediaType * self;
+ gboolean result = FALSE;
+ SearchConditionMediaTypeMediaType _tmp0_ = 0;
+#line 433 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType);
+#line 433 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_media_type;
+#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (_tmp0_) {
+#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_ALL:
+#line 3447 "SearchBoolean.c"
+ {
+ MediaSource* _tmp1_ = NULL;
+#line 438 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = source;
+#line 438 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, TYPE_PHOTO)) {
+#line 3454 "SearchBoolean.c"
+ SearchConditionMediaTypeContext _tmp2_ = 0;
+#line 439 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = self->priv->_context;
+#line 439 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
+#line 439 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3462 "SearchBoolean.c"
+ } else {
+ SearchConditionMediaTypeContext _tmp3_ = 0;
+#line 441 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = self->priv->_context;
+#line 441 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
+#line 441 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3471 "SearchBoolean.c"
+ }
+ }
+#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_PHOTO_RAW:
+#line 3476 "SearchBoolean.c"
+ {
+ gboolean _tmp4_ = FALSE;
+ MediaSource* _tmp5_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = source;
+#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, TYPE_PHOTO)) {
+#line 3484 "SearchBoolean.c"
+ MediaSource* _tmp6_ = NULL;
+ PhotoFileFormat _tmp7_ = 0;
+#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = source;
+#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = photo_get_master_file_format (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_PHOTO, Photo));
+#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = _tmp7_ == PHOTO_FILE_FORMAT_RAW;
+#line 3493 "SearchBoolean.c"
+ } else {
+#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = FALSE;
+#line 3497 "SearchBoolean.c"
+ }
+#line 444 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp4_) {
+#line 3501 "SearchBoolean.c"
+ SearchConditionMediaTypeContext _tmp8_ = 0;
+#line 445 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = self->priv->_context;
+#line 445 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp8_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
+#line 445 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3509 "SearchBoolean.c"
+ } else {
+ SearchConditionMediaTypeContext _tmp9_ = 0;
+#line 447 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = self->priv->_context;
+#line 447 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp9_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
+#line 447 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3518 "SearchBoolean.c"
+ }
+ }
+#line 436 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MEDIA_TYPE_MEDIA_TYPE_VIDEO:
+#line 3523 "SearchBoolean.c"
+ {
+ MediaSource* _tmp10_ = NULL;
+#line 450 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = source;
+#line 450 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp10_, TYPE_VIDEO_SOURCE)) {
+#line 3530 "SearchBoolean.c"
+ SearchConditionMediaTypeContext _tmp11_ = 0;
+#line 451 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = self->priv->_context;
+#line 451 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp11_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS;
+#line 451 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3538 "SearchBoolean.c"
+ } else {
+ SearchConditionMediaTypeContext _tmp12_ = 0;
+#line 453 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = self->priv->_context;
+#line 453 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp12_ == SEARCH_CONDITION_MEDIA_TYPE_CONTEXT_IS_NOT;
+#line 453 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3547 "SearchBoolean.c"
+ }
+ }
+ default:
+ {
+#line 456 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:456: unrecognized media search type enumeration val" \
+"ue");
+#line 3554 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionMediaTypeMediaType search_condition_media_type_get_media_type (SearchConditionMediaType* self) {
+ SearchConditionMediaTypeMediaType result;
+ SearchConditionMediaTypeMediaType _tmp0_ = 0;
+#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self), 0);
+#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_media_type;
+#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3571 "SearchBoolean.c"
+}
+
+
+static void search_condition_media_type_set_media_type (SearchConditionMediaType* self, SearchConditionMediaTypeMediaType value) {
+ SearchConditionMediaTypeMediaType _tmp0_ = 0;
+#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self));
+#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 421 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_media_type = _tmp0_;
+#line 3583 "SearchBoolean.c"
+}
+
+
+SearchConditionMediaTypeContext search_condition_media_type_get_context (SearchConditionMediaType* self) {
+ SearchConditionMediaTypeContext result;
+ SearchConditionMediaTypeContext _tmp0_ = 0;
+#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self), 0);
+#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_context;
+#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3598 "SearchBoolean.c"
+}
+
+
+static void search_condition_media_type_set_context (SearchConditionMediaType* self, SearchConditionMediaTypeContext value) {
+ SearchConditionMediaTypeContext _tmp0_ = 0;
+#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_MEDIA_TYPE (self));
+#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 424 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_context = _tmp0_;
+#line 3610 "SearchBoolean.c"
+}
+
+
+static void search_condition_media_type_class_init (SearchConditionMediaTypeClass * klass) {
+#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_media_type_parent_class = g_type_class_peek_parent (klass);
+#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->finalize = search_condition_media_type_finalize;
+#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SearchConditionMediaTypePrivate));
+#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->predicate = search_condition_media_type_real_predicate;
+#line 3623 "SearchBoolean.c"
+}
+
+
+static void search_condition_media_type_instance_init (SearchConditionMediaType * self) {
+#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SEARCH_CONDITION_MEDIA_TYPE_GET_PRIVATE (self);
+#line 3630 "SearchBoolean.c"
+}
+
+
+static void search_condition_media_type_finalize (SearchCondition* obj) {
+ SearchConditionMediaType * self;
+#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_MEDIA_TYPE, SearchConditionMediaType);
+#line 354 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SEARCH_CONDITION_CLASS (search_condition_media_type_parent_class)->finalize (obj);
+#line 3640 "SearchBoolean.c"
+}
+
+
+GType search_condition_media_type_get_type (void) {
+ static volatile gsize search_condition_media_type_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_media_type_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchConditionMediaTypeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_media_type_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionMediaType), 0, (GInstanceInitFunc) search_condition_media_type_instance_init, NULL };
+ GType search_condition_media_type_type_id;
+ search_condition_media_type_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionMediaType", &g_define_type_info, 0);
+ g_once_init_leave (&search_condition_media_type_type_id__volatile, search_condition_media_type_type_id);
+ }
+ return search_condition_media_type_type_id__volatile;
+}
+
+
+gchar* search_condition_flagged_state_to_string (SearchConditionFlaggedState self) {
+ gchar* result = NULL;
+#line 468 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 468 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_FLAGGED_STATE_FLAGGED:
+#line 3662 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 470 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("FLAGGED");
+#line 470 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 470 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3671 "SearchBoolean.c"
+ }
+#line 468 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED:
+#line 3675 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 473 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("UNFLAGGED");
+#line 473 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 473 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3684 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 476 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:476: unrecognized flagged search state enumeration " \
+"value");
+#line 3690 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionFlaggedState search_condition_flagged_state_from_string (const gchar* str) {
+ SearchConditionFlaggedState result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 480 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 481 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 481 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "FLAGGED") == 0) {
+#line 482 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_FLAGGED_STATE_FLAGGED;
+#line 482 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3709 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 484 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 484 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "UNFLAGGED") == 0) {
+#line 485 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED;
+#line 485 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3720 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 488 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 488 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:488: unrecognized flagged search state name: %s", _tmp2_);
+#line 3727 "SearchBoolean.c"
+ }
+ }
+}
+
+
+GType search_condition_flagged_state_get_type (void) {
+ static volatile gsize search_condition_flagged_state_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_flagged_state_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_FLAGGED_STATE_FLAGGED, "SEARCH_CONDITION_FLAGGED_STATE_FLAGGED", "flagged"}, {SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED, "SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED", "unflagged"}, {0, NULL, NULL}};
+ GType search_condition_flagged_state_type_id;
+ search_condition_flagged_state_type_id = g_enum_register_static ("SearchConditionFlaggedState", values);
+ g_once_init_leave (&search_condition_flagged_state_type_id__volatile, search_condition_flagged_state_type_id);
+ }
+ return search_condition_flagged_state_type_id__volatile;
+}
+
+
+SearchConditionFlagged* search_condition_flagged_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionFlaggedState state) {
+ SearchConditionFlagged* self = NULL;
+ SearchConditionSearchType _tmp0_ = 0;
+ SearchConditionFlaggedState _tmp1_ = 0;
+#line 495 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SearchConditionFlagged*) search_condition_construct (object_type);
+#line 496 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = search_type;
+#line 496 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
+#line 497 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = state;
+#line 497 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_flagged_set_state (self, _tmp1_);
+#line 495 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 3761 "SearchBoolean.c"
+}
+
+
+SearchConditionFlagged* search_condition_flagged_new (SearchConditionSearchType search_type, SearchConditionFlaggedState state) {
+#line 495 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return search_condition_flagged_construct (TYPE_SEARCH_CONDITION_FLAGGED, search_type, state);
+#line 3768 "SearchBoolean.c"
+}
+
+
+static gboolean search_condition_flagged_real_predicate (SearchCondition* base, MediaSource* source) {
+ SearchConditionFlagged * self;
+ gboolean result = FALSE;
+ SearchConditionFlaggedState _tmp0_ = 0;
+#line 501 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged);
+#line 501 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 502 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_state;
+#line 502 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp0_ == SEARCH_CONDITION_FLAGGED_STATE_FLAGGED) {
+#line 3784 "SearchBoolean.c"
+ MediaSource* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = source;
+#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_FLAGGABLE, Flaggable));
+#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 503 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3795 "SearchBoolean.c"
+ } else {
+ SearchConditionFlaggedState _tmp3_ = 0;
+#line 504 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = self->priv->_state;
+#line 504 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp3_ == SEARCH_CONDITION_FLAGGED_STATE_UNFLAGGED) {
+#line 3802 "SearchBoolean.c"
+ MediaSource* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = source;
+#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = flaggable_is_flagged (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, TYPE_FLAGGABLE, Flaggable));
+#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = !_tmp5_;
+#line 505 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3813 "SearchBoolean.c"
+ } else {
+#line 507 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:507: unrecognized flagged search state");
+#line 3817 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionFlaggedState search_condition_flagged_get_state (SearchConditionFlagged* self) {
+ SearchConditionFlaggedState result;
+ SearchConditionFlaggedState _tmp0_ = 0;
+#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_FLAGGED (self), 0);
+#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_state;
+#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3834 "SearchBoolean.c"
+}
+
+
+static void search_condition_flagged_set_state (SearchConditionFlagged* self, SearchConditionFlaggedState value) {
+ SearchConditionFlaggedState _tmp0_ = 0;
+#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_FLAGGED (self));
+#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 493 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_state = _tmp0_;
+#line 3846 "SearchBoolean.c"
+}
+
+
+static void search_condition_flagged_class_init (SearchConditionFlaggedClass * klass) {
+#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_flagged_parent_class = g_type_class_peek_parent (klass);
+#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->finalize = search_condition_flagged_finalize;
+#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SearchConditionFlaggedPrivate));
+#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->predicate = search_condition_flagged_real_predicate;
+#line 3859 "SearchBoolean.c"
+}
+
+
+static void search_condition_flagged_instance_init (SearchConditionFlagged * self) {
+#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SEARCH_CONDITION_FLAGGED_GET_PRIVATE (self);
+#line 3866 "SearchBoolean.c"
+}
+
+
+static void search_condition_flagged_finalize (SearchCondition* obj) {
+ SearchConditionFlagged * self;
+#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_FLAGGED, SearchConditionFlagged);
+#line 462 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SEARCH_CONDITION_CLASS (search_condition_flagged_parent_class)->finalize (obj);
+#line 3876 "SearchBoolean.c"
+}
+
+
+GType search_condition_flagged_get_type (void) {
+ static volatile gsize search_condition_flagged_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_flagged_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchConditionFlaggedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_flagged_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionFlagged), 0, (GInstanceInitFunc) search_condition_flagged_instance_init, NULL };
+ GType search_condition_flagged_type_id;
+ search_condition_flagged_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionFlagged", &g_define_type_info, 0);
+ g_once_init_leave (&search_condition_flagged_type_id__volatile, search_condition_flagged_type_id);
+ }
+ return search_condition_flagged_type_id__volatile;
+}
+
+
+gchar* search_condition_modified_context_to_string (SearchConditionModifiedContext self) {
+ gchar* result = NULL;
+#line 520 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 520 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MODIFIED_CONTEXT_HAS:
+#line 3898 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 522 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("HAS");
+#line 522 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 522 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3907 "SearchBoolean.c"
+ }
+#line 520 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO:
+#line 3911 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 525 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("HAS_NO");
+#line 525 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 525 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3920 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 528 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:528: unrecognized modified search context enumerati" \
+"on value");
+#line 3926 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionModifiedContext search_condition_modified_context_from_string (const gchar* str) {
+ SearchConditionModifiedContext result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 532 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 533 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 533 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "HAS") == 0) {
+#line 534 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MODIFIED_CONTEXT_HAS;
+#line 534 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3945 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 536 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 536 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "HAS_NO") == 0) {
+#line 537 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO;
+#line 537 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3956 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 540 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 540 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:540: unrecognized modified search context name: %s", _tmp2_);
+#line 3963 "SearchBoolean.c"
+ }
+ }
+}
+
+
+GType search_condition_modified_context_get_type (void) {
+ static volatile gsize search_condition_modified_context_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_modified_context_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_MODIFIED_CONTEXT_HAS, "SEARCH_CONDITION_MODIFIED_CONTEXT_HAS", "has"}, {SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO, "SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO", "has-no"}, {0, NULL, NULL}};
+ GType search_condition_modified_context_type_id;
+ search_condition_modified_context_type_id = g_enum_register_static ("SearchConditionModifiedContext", values);
+ g_once_init_leave (&search_condition_modified_context_type_id__volatile, search_condition_modified_context_type_id);
+ }
+ return search_condition_modified_context_type_id__volatile;
+}
+
+
+gchar* search_condition_modified_state_to_string (SearchConditionModifiedState self) {
+ gchar* result = NULL;
+#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MODIFIED_STATE_MODIFIED:
+#line 3987 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 552 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("MODIFIED");
+#line 552 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 552 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 3996 "SearchBoolean.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES:
+#line 4000 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 555 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("INTERNAL_CHANGES");
+#line 555 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 555 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4009 "SearchBoolean.c"
+ }
+#line 550 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES:
+#line 4013 "SearchBoolean.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 558 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup ("EXTERNAL_CHANGES");
+#line 558 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 558 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4022 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 561 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:561: unrecognized modified search state enumeration" \
+" value");
+#line 4028 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionModifiedState search_condition_modified_state_from_string (const gchar* str) {
+ SearchConditionModifiedState result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 566 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 566 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "MODIFIED") == 0) {
+#line 567 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MODIFIED_STATE_MODIFIED;
+#line 567 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4047 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 569 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 569 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "INTERNAL_CHANGES") == 0) {
+#line 570 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES;
+#line 570 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4058 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 572 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 572 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp2_, "EXTERNAL_CHANGES") == 0) {
+#line 573 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES;
+#line 573 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4069 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 576 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = str;
+#line 576 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:576: unrecognized modified search state name: %s", _tmp3_);
+#line 4076 "SearchBoolean.c"
+ }
+ }
+ }
+}
+
+
+GType search_condition_modified_state_get_type (void) {
+ static volatile gsize search_condition_modified_state_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_modified_state_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_MODIFIED_STATE_MODIFIED, "SEARCH_CONDITION_MODIFIED_STATE_MODIFIED", "modified"}, {SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES, "SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES", "internal-changes"}, {SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES, "SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES", "external-changes"}, {0, NULL, NULL}};
+ GType search_condition_modified_state_type_id;
+ search_condition_modified_state_type_id = g_enum_register_static ("SearchConditionModifiedState", values);
+ g_once_init_leave (&search_condition_modified_state_type_id__volatile, search_condition_modified_state_type_id);
+ }
+ return search_condition_modified_state_type_id__volatile;
+}
+
+
+SearchConditionModified* search_condition_modified_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state) {
+ SearchConditionModified* self = NULL;
+ SearchConditionSearchType _tmp0_ = 0;
+ SearchConditionModifiedContext _tmp1_ = 0;
+ SearchConditionModifiedState _tmp2_ = 0;
+#line 586 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SearchConditionModified*) search_condition_construct (object_type);
+#line 587 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = search_type;
+#line 587 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
+#line 588 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = context;
+#line 588 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_modified_set_context (self, _tmp1_);
+#line 589 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = state;
+#line 589 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_modified_set_state (self, _tmp2_);
+#line 586 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 4116 "SearchBoolean.c"
+}
+
+
+SearchConditionModified* search_condition_modified_new (SearchConditionSearchType search_type, SearchConditionModifiedContext context, SearchConditionModifiedState state) {
+#line 586 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return search_condition_modified_construct (TYPE_SEARCH_CONDITION_MODIFIED, search_type, context, state);
+#line 4123 "SearchBoolean.c"
+}
+
+
+static gboolean search_condition_modified_real_predicate (SearchCondition* base, MediaSource* source) {
+ SearchConditionModified * self;
+ gboolean result = FALSE;
+ Photo* photo = NULL;
+ MediaSource* _tmp0_ = NULL;
+ Photo* _tmp1_ = NULL;
+ Photo* _tmp2_ = NULL;
+ gboolean match = FALSE;
+ SearchConditionModifiedState _tmp3_ = 0;
+ gboolean _tmp15_ = FALSE;
+#line 593 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified);
+#line 593 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 595 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = source;
+#line 595 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, TYPE_PHOTO) ? ((Photo*) _tmp0_) : NULL);
+#line 595 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ photo = _tmp1_;
+#line 596 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = photo;
+#line 596 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp2_ == NULL) {
+#line 597 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = FALSE;
+#line 597 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (photo);
+#line 597 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4157 "SearchBoolean.c"
+ }
+#line 600 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = self->priv->_state;
+#line 600 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp3_ == SEARCH_CONDITION_MODIFIED_STATE_MODIFIED) {
+#line 4163 "SearchBoolean.c"
+ gboolean _tmp4_ = FALSE;
+ Photo* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = photo;
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = photo_has_transformations (_tmp5_);
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp6_) {
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = TRUE;
+#line 4175 "SearchBoolean.c"
+ } else {
+ Photo* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = photo;
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = photo_has_editable (_tmp7_);
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = _tmp8_;
+#line 4185 "SearchBoolean.c"
+ }
+#line 601 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ match = _tmp4_;
+#line 4189 "SearchBoolean.c"
+ } else {
+ SearchConditionModifiedState _tmp9_ = 0;
+#line 602 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = self->priv->_state;
+#line 602 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp9_ == SEARCH_CONDITION_MODIFIED_STATE_INTERNAL_CHANGES) {
+#line 4196 "SearchBoolean.c"
+ Photo* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 603 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = photo;
+#line 603 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = photo_has_transformations (_tmp10_);
+#line 603 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ match = _tmp11_;
+#line 4205 "SearchBoolean.c"
+ } else {
+ SearchConditionModifiedState _tmp12_ = 0;
+#line 604 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = self->priv->_state;
+#line 604 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp12_ == SEARCH_CONDITION_MODIFIED_STATE_EXTERNAL_CHANGES) {
+#line 4212 "SearchBoolean.c"
+ Photo* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 605 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = photo;
+#line 605 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = photo_has_editable (_tmp13_);
+#line 605 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ match = _tmp14_;
+#line 4221 "SearchBoolean.c"
+ } else {
+#line 607 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:607: unrecognized modified search state");
+#line 4225 "SearchBoolean.c"
+ }
+ }
+ }
+#line 609 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = match;
+#line 609 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp15_) {
+#line 4233 "SearchBoolean.c"
+ SearchConditionModifiedContext _tmp16_ = 0;
+#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = self->priv->_context;
+#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp16_ == SEARCH_CONDITION_MODIFIED_CONTEXT_HAS;
+#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (photo);
+#line 610 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4243 "SearchBoolean.c"
+ } else {
+ SearchConditionModifiedContext _tmp17_ = 0;
+#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = self->priv->_context;
+#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp17_ == SEARCH_CONDITION_MODIFIED_CONTEXT_HAS_NO;
+#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (photo);
+#line 612 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4254 "SearchBoolean.c"
+ }
+#line 593 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (photo);
+#line 4258 "SearchBoolean.c"
+}
+
+
+SearchConditionModifiedState search_condition_modified_get_state (SearchConditionModified* self) {
+ SearchConditionModifiedState result;
+ SearchConditionModifiedState _tmp0_ = 0;
+#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_MODIFIED (self), 0);
+#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_state;
+#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4273 "SearchBoolean.c"
+}
+
+
+static void search_condition_modified_set_state (SearchConditionModified* self, SearchConditionModifiedState value) {
+ SearchConditionModifiedState _tmp0_ = 0;
+#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_MODIFIED (self));
+#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 581 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_state = _tmp0_;
+#line 4285 "SearchBoolean.c"
+}
+
+
+SearchConditionModifiedContext search_condition_modified_get_context (SearchConditionModified* self) {
+ SearchConditionModifiedContext result;
+ SearchConditionModifiedContext _tmp0_ = 0;
+#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_MODIFIED (self), 0);
+#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_context;
+#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4300 "SearchBoolean.c"
+}
+
+
+static void search_condition_modified_set_context (SearchConditionModified* self, SearchConditionModifiedContext value) {
+ SearchConditionModifiedContext _tmp0_ = 0;
+#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_MODIFIED (self));
+#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 584 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_context = _tmp0_;
+#line 4312 "SearchBoolean.c"
+}
+
+
+static void search_condition_modified_class_init (SearchConditionModifiedClass * klass) {
+#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_modified_parent_class = g_type_class_peek_parent (klass);
+#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->finalize = search_condition_modified_finalize;
+#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SearchConditionModifiedPrivate));
+#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->predicate = search_condition_modified_real_predicate;
+#line 4325 "SearchBoolean.c"
+}
+
+
+static void search_condition_modified_instance_init (SearchConditionModified * self) {
+#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SEARCH_CONDITION_MODIFIED_GET_PRIVATE (self);
+#line 4332 "SearchBoolean.c"
+}
+
+
+static void search_condition_modified_finalize (SearchCondition* obj) {
+ SearchConditionModified * self;
+#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_MODIFIED, SearchConditionModified);
+#line 513 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SEARCH_CONDITION_CLASS (search_condition_modified_parent_class)->finalize (obj);
+#line 4342 "SearchBoolean.c"
+}
+
+
+GType search_condition_modified_get_type (void) {
+ static volatile gsize search_condition_modified_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_modified_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchConditionModifiedClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_modified_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionModified), 0, (GInstanceInitFunc) search_condition_modified_instance_init, NULL };
+ GType search_condition_modified_type_id;
+ search_condition_modified_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionModified", &g_define_type_info, 0);
+ g_once_init_leave (&search_condition_modified_type_id__volatile, search_condition_modified_type_id);
+ }
+ return search_condition_modified_type_id__volatile;
+}
+
+
+gchar* search_condition_rating_context_to_string (SearchConditionRatingContext self) {
+ gchar* result = NULL;
+#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER:
+#line 4364 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 627 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("AND_HIGHER");
+#line 627 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 627 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4373 "SearchBoolean.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_RATING_CONTEXT_ONLY:
+#line 4377 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 630 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("ONLY");
+#line 630 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 630 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4386 "SearchBoolean.c"
+ }
+#line 625 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER:
+#line 4390 "SearchBoolean.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 633 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup ("AND_LOWER");
+#line 633 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 633 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4399 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 636 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:636: unrecognized rating search context enumeration" \
+" value");
+#line 4405 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionRatingContext search_condition_rating_context_from_string (const gchar* str) {
+ SearchConditionRatingContext result = 0;
+ const gchar* _tmp0_ = NULL;
+#line 640 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 641 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 641 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "AND_HIGHER") == 0) {
+#line 642 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER;
+#line 642 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4424 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp1_ = NULL;
+#line 644 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 644 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "ONLY") == 0) {
+#line 645 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_RATING_CONTEXT_ONLY;
+#line 645 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4435 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 647 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 647 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp2_, "AND_LOWER") == 0) {
+#line 648 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER;
+#line 648 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4446 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 651 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = str;
+#line 651 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:651: unrecognized rating search context name: %s", _tmp3_);
+#line 4453 "SearchBoolean.c"
+ }
+ }
+ }
+}
+
+
+GType search_condition_rating_context_get_type (void) {
+ static volatile gsize search_condition_rating_context_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_rating_context_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER, "SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER", "and-higher"}, {SEARCH_CONDITION_RATING_CONTEXT_ONLY, "SEARCH_CONDITION_RATING_CONTEXT_ONLY", "only"}, {SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER, "SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER", "and-lower"}, {0, NULL, NULL}};
+ GType search_condition_rating_context_type_id;
+ search_condition_rating_context_type_id = g_enum_register_static ("SearchConditionRatingContext", values);
+ g_once_init_leave (&search_condition_rating_context_type_id__volatile, search_condition_rating_context_type_id);
+ }
+ return search_condition_rating_context_type_id__volatile;
+}
+
+
+SearchConditionRating* search_condition_rating_construct (GType object_type, SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context) {
+ SearchConditionRating* self = NULL;
+ SearchConditionSearchType _tmp0_ = 0;
+ Rating _tmp1_ = 0;
+ SearchConditionRatingContext _tmp2_ = 0;
+#line 661 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SearchConditionRating*) search_condition_construct (object_type);
+#line 662 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = search_type;
+#line 662 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
+#line 663 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = rating;
+#line 663 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_rating_set_rating (self, _tmp1_);
+#line 664 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = context;
+#line 664 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_rating_set_context (self, _tmp2_);
+#line 661 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 4493 "SearchBoolean.c"
+}
+
+
+SearchConditionRating* search_condition_rating_new (SearchConditionSearchType search_type, Rating rating, SearchConditionRatingContext context) {
+#line 661 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return search_condition_rating_construct (TYPE_SEARCH_CONDITION_RATING, search_type, rating, context);
+#line 4500 "SearchBoolean.c"
+}
+
+
+static gboolean search_condition_rating_real_predicate (SearchCondition* base, MediaSource* source) {
+ SearchConditionRating * self;
+ gboolean result = FALSE;
+ Rating source_rating = 0;
+ MediaSource* _tmp0_ = NULL;
+ Rating _tmp1_ = 0;
+ SearchConditionRatingContext _tmp2_ = 0;
+#line 668 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_RATING, SearchConditionRating);
+#line 668 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 669 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = source;
+#line 669 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = media_source_get_rating (_tmp0_);
+#line 669 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ source_rating = _tmp1_;
+#line 670 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = self->priv->_context;
+#line 670 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp2_ == SEARCH_CONDITION_RATING_CONTEXT_AND_HIGHER) {
+#line 4525 "SearchBoolean.c"
+ Rating _tmp3_ = 0;
+ Rating _tmp4_ = 0;
+#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = source_rating;
+#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = self->priv->_rating;
+#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_ >= _tmp4_;
+#line 671 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4536 "SearchBoolean.c"
+ } else {
+ SearchConditionRatingContext _tmp5_ = 0;
+#line 672 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = self->priv->_context;
+#line 672 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp5_ == SEARCH_CONDITION_RATING_CONTEXT_ONLY) {
+#line 4543 "SearchBoolean.c"
+ Rating _tmp6_ = 0;
+ Rating _tmp7_ = 0;
+#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = source_rating;
+#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = self->priv->_rating;
+#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp6_ == _tmp7_;
+#line 673 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4554 "SearchBoolean.c"
+ } else {
+ SearchConditionRatingContext _tmp8_ = 0;
+#line 674 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = self->priv->_context;
+#line 674 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp8_ == SEARCH_CONDITION_RATING_CONTEXT_AND_LOWER) {
+#line 4561 "SearchBoolean.c"
+ Rating _tmp9_ = 0;
+ Rating _tmp10_ = 0;
+#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = source_rating;
+#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = self->priv->_rating;
+#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp9_ <= _tmp10_;
+#line 675 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4572 "SearchBoolean.c"
+ } else {
+#line 677 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:677: unknown rating search context");
+#line 4576 "SearchBoolean.c"
+ }
+ }
+ }
+}
+
+
+Rating search_condition_rating_get_rating (SearchConditionRating* self) {
+ Rating result;
+ Rating _tmp0_ = 0;
+#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_RATING (self), 0);
+#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_rating;
+#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4594 "SearchBoolean.c"
+}
+
+
+static void search_condition_rating_set_rating (SearchConditionRating* self, Rating value) {
+ Rating _tmp0_ = 0;
+#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_RATING (self));
+#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 656 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_rating = _tmp0_;
+#line 4606 "SearchBoolean.c"
+}
+
+
+SearchConditionRatingContext search_condition_rating_get_context (SearchConditionRating* self) {
+ SearchConditionRatingContext result;
+ SearchConditionRatingContext _tmp0_ = 0;
+#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_RATING (self), 0);
+#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_context;
+#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4621 "SearchBoolean.c"
+}
+
+
+static void search_condition_rating_set_context (SearchConditionRating* self, SearchConditionRatingContext value) {
+ SearchConditionRatingContext _tmp0_ = 0;
+#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_RATING (self));
+#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 659 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_context = _tmp0_;
+#line 4633 "SearchBoolean.c"
+}
+
+
+static void search_condition_rating_class_init (SearchConditionRatingClass * klass) {
+#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_rating_parent_class = g_type_class_peek_parent (klass);
+#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->finalize = search_condition_rating_finalize;
+#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SearchConditionRatingPrivate));
+#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->predicate = search_condition_rating_real_predicate;
+#line 4646 "SearchBoolean.c"
+}
+
+
+static void search_condition_rating_instance_init (SearchConditionRating * self) {
+#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SEARCH_CONDITION_RATING_GET_PRIVATE (self);
+#line 4653 "SearchBoolean.c"
+}
+
+
+static void search_condition_rating_finalize (SearchCondition* obj) {
+ SearchConditionRating * self;
+#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_RATING, SearchConditionRating);
+#line 618 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SEARCH_CONDITION_CLASS (search_condition_rating_parent_class)->finalize (obj);
+#line 4663 "SearchBoolean.c"
+}
+
+
+GType search_condition_rating_get_type (void) {
+ static volatile gsize search_condition_rating_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_rating_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchConditionRatingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_rating_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionRating), 0, (GInstanceInitFunc) search_condition_rating_instance_init, NULL };
+ GType search_condition_rating_type_id;
+ search_condition_rating_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionRating", &g_define_type_info, 0);
+ g_once_init_leave (&search_condition_rating_type_id__volatile, search_condition_rating_type_id);
+ }
+ return search_condition_rating_type_id__volatile;
+}
+
+
+gchar* search_condition_date_context_to_string (SearchConditionDateContext self) {
+ gchar* result = NULL;
+#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (self) {
+#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_EXACT:
+#line 4685 "SearchBoolean.c"
+ {
+ gchar* _tmp0_ = NULL;
+#line 694 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup ("EXACT");
+#line 694 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 694 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4694 "SearchBoolean.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_AFTER:
+#line 4698 "SearchBoolean.c"
+ {
+ gchar* _tmp1_ = NULL;
+#line 697 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = g_strdup ("AFTER");
+#line 697 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 697 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4707 "SearchBoolean.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_BEFORE:
+#line 4711 "SearchBoolean.c"
+ {
+ gchar* _tmp2_ = NULL;
+#line 700 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup ("BEFORE");
+#line 700 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 700 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4720 "SearchBoolean.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_BETWEEN:
+#line 4724 "SearchBoolean.c"
+ {
+ gchar* _tmp3_ = NULL;
+#line 703 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = g_strdup ("BETWEEN");
+#line 703 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_;
+#line 703 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4733 "SearchBoolean.c"
+ }
+#line 692 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET:
+#line 4737 "SearchBoolean.c"
+ {
+ gchar* _tmp4_ = NULL;
+#line 706 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = g_strdup ("IS_NOT_SET");
+#line 706 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp4_;
+#line 706 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4746 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 709 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:709: unrecognized date search context enumeration v" \
+"alue");
+#line 4752 "SearchBoolean.c"
+ }
+ }
+}
+
+
+SearchConditionDateContext search_condition_date_context_from_string (const gchar* str) {
+ SearchConditionDateContext result = 0;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 713 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (str != NULL, 0);
+#line 714 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = str;
+#line 714 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp0_, "EXACT") == 0) {
+#line 715 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_DATE_CONTEXT_EXACT;
+#line 715 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4772 "SearchBoolean.c"
+ }
+#line 717 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = str;
+#line 717 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp1_, "AFTER") == 0) {
+#line 718 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_DATE_CONTEXT_AFTER;
+#line 718 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4782 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+#line 720 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = str;
+#line 720 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp2_, "BEFORE") == 0) {
+#line 721 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_DATE_CONTEXT_BEFORE;
+#line 721 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4793 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp3_ = NULL;
+#line 723 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = str;
+#line 723 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp3_, "BETWEEN") == 0) {
+#line 724 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_DATE_CONTEXT_BETWEEN;
+#line 724 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4804 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+#line 726 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = str;
+#line 726 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_strcmp0 (_tmp4_, "IS_NOT_SET") == 0) {
+#line 727 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET;
+#line 727 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4815 "SearchBoolean.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+#line 730 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = str;
+#line 730 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:730: unrecognized date search context name: %s", _tmp5_);
+#line 4822 "SearchBoolean.c"
+ }
+ }
+ }
+ }
+}
+
+
+GType search_condition_date_context_get_type (void) {
+ static volatile gsize search_condition_date_context_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_date_context_type_id__volatile)) {
+ static const GEnumValue values[] = {{SEARCH_CONDITION_DATE_CONTEXT_EXACT, "SEARCH_CONDITION_DATE_CONTEXT_EXACT", "exact"}, {SEARCH_CONDITION_DATE_CONTEXT_AFTER, "SEARCH_CONDITION_DATE_CONTEXT_AFTER", "after"}, {SEARCH_CONDITION_DATE_CONTEXT_BEFORE, "SEARCH_CONDITION_DATE_CONTEXT_BEFORE", "before"}, {SEARCH_CONDITION_DATE_CONTEXT_BETWEEN, "SEARCH_CONDITION_DATE_CONTEXT_BETWEEN", "between"}, {SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET, "SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET", "is-not-set"}, {0, NULL, NULL}};
+ GType search_condition_date_context_type_id;
+ search_condition_date_context_type_id = g_enum_register_static ("SearchConditionDateContext", values);
+ g_once_init_leave (&search_condition_date_context_type_id__volatile, search_condition_date_context_type_id);
+ }
+ return search_condition_date_context_type_id__volatile;
+}
+
+
+SearchConditionDate* search_condition_date_construct (GType object_type, SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two) {
+ SearchConditionDate* self = NULL;
+ SearchConditionSearchType _tmp0_ = 0;
+ SearchConditionDateContext _tmp1_ = 0;
+ gboolean _tmp2_ = FALSE;
+ SearchConditionDateContext _tmp3_ = 0;
+#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (date_one != NULL, NULL);
+#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (date_two != NULL, NULL);
+#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SearchConditionDate*) search_condition_construct (object_type);
+#line 743 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = search_type;
+#line 743 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_set_search_type (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_SEARCH_CONDITION, SearchCondition), _tmp0_);
+#line 744 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = context;
+#line 744 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_date_set_context (self, _tmp1_);
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = context;
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp3_ != SEARCH_CONDITION_DATE_CONTEXT_BETWEEN) {
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = TRUE;
+#line 4868 "SearchBoolean.c"
+ } else {
+ GDateTime* _tmp4_ = NULL;
+ GDateTime* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = date_two;
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = date_one;
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = g_date_time_compare (_tmp4_, _tmp5_);
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp6_ >= 1;
+#line 4881 "SearchBoolean.c"
+ }
+#line 745 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp2_) {
+#line 4885 "SearchBoolean.c"
+ GDateTime* _tmp7_ = NULL;
+ GDateTime* _tmp8_ = NULL;
+#line 746 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = date_one;
+#line 746 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_date_set_date_one (self, _tmp7_);
+#line 747 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = date_two;
+#line 747 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_date_set_date_two (self, _tmp8_);
+#line 4896 "SearchBoolean.c"
+ } else {
+ GDateTime* _tmp9_ = NULL;
+ GDateTime* _tmp10_ = NULL;
+#line 749 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = date_two;
+#line 749 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_date_set_date_one (self, _tmp9_);
+#line 750 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = date_one;
+#line 750 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_date_set_date_two (self, _tmp10_);
+#line 4908 "SearchBoolean.c"
+ }
+#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 4912 "SearchBoolean.c"
+}
+
+
+SearchConditionDate* search_condition_date_new (SearchConditionSearchType search_type, SearchConditionDateContext context, GDateTime* date_one, GDateTime* date_two) {
+#line 741 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return search_condition_date_construct (TYPE_SEARCH_CONDITION_DATE, search_type, context, date_one, date_two);
+#line 4919 "SearchBoolean.c"
+}
+
+
+static gboolean search_condition_date_real_predicate (SearchCondition* base, MediaSource* source) {
+ SearchConditionDate * self;
+ gboolean result = FALSE;
+ time_t exposure_time = 0;
+ MediaSource* _tmp0_ = NULL;
+ time_t _tmp1_ = 0;
+ time_t _tmp2_ = 0;
+ GDateTime* dt = NULL;
+ time_t _tmp4_ = 0;
+ GDateTime* _tmp5_ = NULL;
+ SearchConditionDateContext _tmp6_ = 0;
+#line 756 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEARCH_CONDITION_DATE, SearchConditionDate);
+#line 756 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 757 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = source;
+#line 757 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = media_source_get_exposure_time (_tmp0_);
+#line 757 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ exposure_time = _tmp1_;
+#line 758 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = exposure_time;
+#line 758 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp2_ == ((time_t) 0)) {
+#line 4948 "SearchBoolean.c"
+ SearchConditionDateContext _tmp3_ = 0;
+#line 759 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = self->priv->_context;
+#line 759 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_ == SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET;
+#line 759 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 4956 "SearchBoolean.c"
+ }
+#line 761 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = exposure_time;
+#line 761 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = g_date_time_new_from_unix_local ((gint64) _tmp4_);
+#line 761 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ dt = _tmp5_;
+#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = self->priv->_context;
+#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ switch (_tmp6_) {
+#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_EXACT:
+#line 4970 "SearchBoolean.c"
+ {
+ GDateTime* second = NULL;
+ GDateTime* _tmp7_ = NULL;
+ GDateTime* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ GDateTime* _tmp10_ = NULL;
+ GDateTime* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+#line 764 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = self->priv->_date_one;
+#line 764 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = g_date_time_add_days (_tmp7_, 1);
+#line 764 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ second = _tmp8_;
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = dt;
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = self->priv->_date_one;
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = g_date_time_compare (_tmp10_, _tmp11_);
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp12_ >= 0) {
+#line 4993 "SearchBoolean.c"
+ GDateTime* _tmp13_ = NULL;
+ GDateTime* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = dt;
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = second;
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = g_date_time_compare (_tmp13_, _tmp14_);
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = _tmp15_ < 0;
+#line 5005 "SearchBoolean.c"
+ } else {
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = FALSE;
+#line 5009 "SearchBoolean.c"
+ }
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp9_;
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (second);
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (dt);
+#line 765 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5019 "SearchBoolean.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_AFTER:
+#line 5023 "SearchBoolean.c"
+ {
+ GDateTime* _tmp16_ = NULL;
+ GDateTime* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = dt;
+#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = self->priv->_date_one;
+#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = g_date_time_compare (_tmp16_, _tmp17_);
+#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp18_ >= 0;
+#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (dt);
+#line 768 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5040 "SearchBoolean.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_BEFORE:
+#line 5044 "SearchBoolean.c"
+ {
+ GDateTime* _tmp19_ = NULL;
+ GDateTime* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp19_ = dt;
+#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp20_ = self->priv->_date_one;
+#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp21_ = g_date_time_compare (_tmp19_, _tmp20_);
+#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp21_ <= 0;
+#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (dt);
+#line 771 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5061 "SearchBoolean.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_BETWEEN:
+#line 5065 "SearchBoolean.c"
+ {
+ GDateTime* second = NULL;
+ GDateTime* _tmp22_ = NULL;
+ GDateTime* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+ GDateTime* _tmp25_ = NULL;
+ GDateTime* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+#line 774 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp22_ = self->priv->_date_two;
+#line 774 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp23_ = g_date_time_add_days (_tmp22_, 1);
+#line 774 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ second = _tmp23_;
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp25_ = dt;
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp26_ = self->priv->_date_one;
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp27_ = g_date_time_compare (_tmp25_, _tmp26_);
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp27_ >= 0) {
+#line 5088 "SearchBoolean.c"
+ GDateTime* _tmp28_ = NULL;
+ GDateTime* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp28_ = dt;
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp29_ = second;
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp30_ = g_date_time_compare (_tmp28_, _tmp29_);
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp24_ = _tmp30_ < 0;
+#line 5100 "SearchBoolean.c"
+ } else {
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp24_ = FALSE;
+#line 5104 "SearchBoolean.c"
+ }
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp24_;
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (second);
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (dt);
+#line 775 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5114 "SearchBoolean.c"
+ }
+#line 762 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ case SEARCH_CONDITION_DATE_CONTEXT_IS_NOT_SET:
+#line 5118 "SearchBoolean.c"
+ {
+#line 778 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = FALSE;
+#line 778 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (dt);
+#line 778 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5126 "SearchBoolean.c"
+ }
+ default:
+ {
+#line 781 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_error ("SearchBoolean.vala:781: unrecognized date search context enumeration v" \
+"alue");
+#line 5132 "SearchBoolean.c"
+ }
+ }
+#line 756 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (dt);
+#line 5137 "SearchBoolean.c"
+}
+
+
+GDateTime* search_condition_date_get_date_one (SearchConditionDate* self) {
+ GDateTime* result;
+ GDateTime* _tmp0_ = NULL;
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_DATE (self), NULL);
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_date_one;
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5152 "SearchBoolean.c"
+}
+
+
+static gpointer _g_date_time_ref0 (gpointer self) {
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self ? g_date_time_ref (self) : NULL;
+#line 5159 "SearchBoolean.c"
+}
+
+
+static void search_condition_date_set_date_one (SearchConditionDate* self, GDateTime* value) {
+ GDateTime* _tmp0_ = NULL;
+ GDateTime* _tmp1_ = NULL;
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_DATE (self));
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _g_date_time_ref0 (_tmp0_);
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (self->priv->_date_one);
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_date_one = _tmp1_;
+#line 5176 "SearchBoolean.c"
+}
+
+
+GDateTime* search_condition_date_get_date_two (SearchConditionDate* self) {
+ GDateTime* result;
+ GDateTime* _tmp0_ = NULL;
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_DATE (self), NULL);
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_date_two;
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5191 "SearchBoolean.c"
+}
+
+
+static void search_condition_date_set_date_two (SearchConditionDate* self, GDateTime* value) {
+ GDateTime* _tmp0_ = NULL;
+ GDateTime* _tmp1_ = NULL;
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_DATE (self));
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _g_date_time_ref0 (_tmp0_);
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (self->priv->_date_two);
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_date_two = _tmp1_;
+#line 5208 "SearchBoolean.c"
+}
+
+
+SearchConditionDateContext search_condition_date_get_context (SearchConditionDate* self) {
+ SearchConditionDateContext result;
+ SearchConditionDateContext _tmp0_ = 0;
+#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SEARCH_CONDITION_DATE (self), 0);
+#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->_context;
+#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5223 "SearchBoolean.c"
+}
+
+
+static void search_condition_date_set_context (SearchConditionDate* self, SearchConditionDateContext value) {
+ SearchConditionDateContext _tmp0_ = 0;
+#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SEARCH_CONDITION_DATE (self));
+#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = value;
+#line 739 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->_context = _tmp0_;
+#line 5235 "SearchBoolean.c"
+}
+
+
+static void search_condition_date_class_init (SearchConditionDateClass * klass) {
+#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search_condition_date_parent_class = g_type_class_peek_parent (klass);
+#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->finalize = search_condition_date_finalize;
+#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SearchConditionDatePrivate));
+#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SearchConditionClass *) klass)->predicate = search_condition_date_real_predicate;
+#line 5248 "SearchBoolean.c"
+}
+
+
+static void search_condition_date_instance_init (SearchConditionDate * self) {
+#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SEARCH_CONDITION_DATE_GET_PRIVATE (self);
+#line 5255 "SearchBoolean.c"
+}
+
+
+static void search_condition_date_finalize (SearchCondition* obj) {
+ SearchConditionDate * self;
+#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEARCH_CONDITION_DATE, SearchConditionDate);
+#line 735 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (self->priv->_date_one);
+#line 736 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_date_time_unref0 (self->priv->_date_two);
+#line 683 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SEARCH_CONDITION_CLASS (search_condition_date_parent_class)->finalize (obj);
+#line 5269 "SearchBoolean.c"
+}
+
+
+GType search_condition_date_get_type (void) {
+ static volatile gsize search_condition_date_type_id__volatile = 0;
+ if (g_once_init_enter (&search_condition_date_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SearchConditionDateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) search_condition_date_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SearchConditionDate), 0, (GInstanceInitFunc) search_condition_date_instance_init, NULL };
+ GType search_condition_date_type_id;
+ search_condition_date_type_id = g_type_register_static (TYPE_SEARCH_CONDITION, "SearchConditionDate", &g_define_type_info, 0);
+ g_once_init_leave (&search_condition_date_type_id__volatile, search_condition_date_type_id);
+ }
+ return search_condition_date_type_id__volatile;
+}
+
+
+static gpointer _saved_search_row_ref0 (gpointer self) {
+#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self ? saved_search_row_ref (self) : NULL;
+#line 5288 "SearchBoolean.c"
+}
+
+
+SavedSearch* saved_search_construct (GType object_type, SavedSearchRow* row, gint64 object_id) {
+ SavedSearch * self = NULL;
+ gint64 _tmp0_ = 0LL;
+ SavedSearchRow* _tmp1_ = NULL;
+ SavedSearchRow* _tmp2_ = NULL;
+#line 794 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_ROW (row), NULL);
+#line 795 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = object_id;
+#line 795 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SavedSearch*) data_source_construct (object_type, _tmp0_);
+#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = row;
+#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _saved_search_row_ref0 (_tmp1_);
+#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_row_unref0 (self->priv->row);
+#line 797 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->row = _tmp2_;
+#line 794 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 5313 "SearchBoolean.c"
+}
+
+
+SavedSearch* saved_search_new (SavedSearchRow* row, gint64 object_id) {
+#line 794 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return saved_search_construct (TYPE_SAVED_SEARCH, row, object_id);
+#line 5320 "SearchBoolean.c"
+}
+
+
+static gchar* saved_search_real_get_name (DataObject* base) {
+ SavedSearch * self;
+ gchar* result = NULL;
+ SavedSearchRow* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 800 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
+#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->row;
+#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_->name;
+#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 801 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5342 "SearchBoolean.c"
+}
+
+
+static gchar* saved_search_real_to_string (DataObject* base) {
+ SavedSearch * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 804 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
+#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_;
+#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = g_strconcat ("SavedSearch ", _tmp1_, NULL);
+#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = _tmp2_;
+#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp1_);
+#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_;
+#line 805 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5369 "SearchBoolean.c"
+}
+
+
+static gchar* saved_search_real_get_typename (DataSource* base) {
+ SavedSearch * self;
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 808 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
+#line 809 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = g_strdup (SAVED_SEARCH_TYPENAME);
+#line 809 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp0_;
+#line 809 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5385 "SearchBoolean.c"
+}
+
+
+void saved_search_get_saved_search_id (SavedSearch* self, SavedSearchID* result) {
+ SavedSearchRow* _tmp0_ = NULL;
+ SavedSearchID _tmp1_ = {0};
+#line 812 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (self));
+#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->row;
+#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_->search_id;
+#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *result = _tmp1_;
+#line 813 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return;
+#line 5402 "SearchBoolean.c"
+}
+
+
+static gint64 saved_search_real_get_instance_id (DataSource* base) {
+ SavedSearch * self;
+ gint64 result = 0LL;
+ SavedSearchID _tmp0_ = {0};
+ gint64 _tmp1_ = 0LL;
+#line 816 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SAVED_SEARCH, SavedSearch);
+#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_get_saved_search_id (self, &_tmp0_);
+#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_.id;
+#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 817 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5421 "SearchBoolean.c"
+}
+
+
+gint saved_search_compare_names (void* a, void* b) {
+ gint result = 0;
+ SavedSearch* asearch = NULL;
+ void* _tmp0_ = NULL;
+ SavedSearch* bsearch = NULL;
+ void* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 821 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = a;
+#line 821 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ asearch = (SavedSearch*) _tmp0_;
+#line 822 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = b;
+#line 822 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ bsearch = (SavedSearch*) _tmp1_;
+#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (asearch, TYPE_DATA_OBJECT, DataObject));
+#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (bsearch, TYPE_DATA_OBJECT, DataObject));
+#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = string_collated_compare (_tmp2_, _tmp3_);
+#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp4_;
+#line 824 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5452 "SearchBoolean.c"
+}
+
+
+gboolean saved_search_predicate (SavedSearch* self, MediaSource* source) {
+ gboolean result = FALSE;
+ gboolean ret = FALSE;
+ gboolean _tmp0_ = FALSE;
+ SavedSearchRow* _tmp1_ = NULL;
+ SearchOperator _tmp2_ = 0;
+#line 827 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (self), FALSE);
+#line 827 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_MEDIA_SOURCE (source), FALSE);
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = self->priv->row;
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_->operator;
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_OPERATOR_ALL == _tmp2_) {
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = TRUE;
+#line 5474 "SearchBoolean.c"
+ } else {
+ SavedSearchRow* _tmp3_ = NULL;
+ SearchOperator _tmp4_ = 0;
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = self->priv->row;
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = _tmp3_->operator;
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = SEARCH_OPERATOR_NONE == _tmp4_;
+#line 5484 "SearchBoolean.c"
+ }
+#line 829 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp0_) {
+#line 830 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = TRUE;
+#line 5490 "SearchBoolean.c"
+ } else {
+#line 832 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = FALSE;
+#line 5494 "SearchBoolean.c"
+ }
+ {
+ GeeList* _c_list = NULL;
+ SavedSearchRow* _tmp5_ = NULL;
+ GeeList* _tmp6_ = NULL;
+ GeeList* _tmp7_ = NULL;
+ gint _c_size = 0;
+ GeeList* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _c_index = 0;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = self->priv->row;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = _tmp5_->conditions;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _c_list = _tmp7_;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = _c_list;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = _tmp9_;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _c_size = _tmp10_;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _c_index = -1;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ while (TRUE) {
+#line 5526 "SearchBoolean.c"
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ SearchCondition* c = NULL;
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gpointer _tmp16_ = NULL;
+ SavedSearchRow* _tmp17_ = NULL;
+ SearchOperator _tmp18_ = 0;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = _c_index;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _c_index = _tmp11_ + 1;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = _c_index;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = _c_size;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!(_tmp12_ < _tmp13_)) {
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ break;
+#line 5548 "SearchBoolean.c"
+ }
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = _c_list;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = _c_index;
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = gee_list_get (_tmp14_, _tmp15_);
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ c = (SearchCondition*) _tmp16_;
+#line 835 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = self->priv->row;
+#line 835 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = _tmp17_->operator;
+#line 835 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_OPERATOR_ALL == _tmp18_) {
+#line 5564 "SearchBoolean.c"
+ gboolean _tmp19_ = FALSE;
+ SearchCondition* _tmp20_ = NULL;
+ MediaSource* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp19_ = ret;
+#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp20_ = c;
+#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp21_ = source;
+#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp22_ = search_condition_predicate (_tmp20_, _tmp21_);
+#line 836 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp19_ & _tmp22_;
+#line 5579 "SearchBoolean.c"
+ } else {
+ SavedSearchRow* _tmp23_ = NULL;
+ SearchOperator _tmp24_ = 0;
+#line 837 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp23_ = self->priv->row;
+#line 837 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp24_ = _tmp23_->operator;
+#line 837 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_OPERATOR_ANY == _tmp24_) {
+#line 5589 "SearchBoolean.c"
+ gboolean _tmp25_ = FALSE;
+ SearchCondition* _tmp26_ = NULL;
+ MediaSource* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp25_ = ret;
+#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp26_ = c;
+#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp27_ = source;
+#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp28_ = search_condition_predicate (_tmp26_, _tmp27_);
+#line 838 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp25_ | _tmp28_;
+#line 5604 "SearchBoolean.c"
+ } else {
+ SavedSearchRow* _tmp29_ = NULL;
+ SearchOperator _tmp30_ = 0;
+#line 839 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp29_ = self->priv->row;
+#line 839 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp30_ = _tmp29_->operator;
+#line 839 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (SEARCH_OPERATOR_NONE == _tmp30_) {
+#line 5614 "SearchBoolean.c"
+ gboolean _tmp31_ = FALSE;
+ SearchCondition* _tmp32_ = NULL;
+ MediaSource* _tmp33_ = NULL;
+ gboolean _tmp34_ = FALSE;
+#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp31_ = ret;
+#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp32_ = c;
+#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp33_ = source;
+#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp34_ = search_condition_predicate (_tmp32_, _tmp33_);
+#line 840 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ret = _tmp31_ & (!_tmp34_);
+#line 5629 "SearchBoolean.c"
+ }
+ }
+ }
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _search_condition_unref0 (c);
+#line 5635 "SearchBoolean.c"
+ }
+#line 834 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_c_list);
+#line 5639 "SearchBoolean.c"
+ }
+#line 842 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = ret;
+#line 842 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5645 "SearchBoolean.c"
+}
+
+
+void saved_search_reconstitute (SavedSearch* self) {
+ SavedSearchTable* _tmp8_ = NULL;
+ SavedSearchTable* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 845 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (self));
+#line 5657 "SearchBoolean.c"
+ {
+ SavedSearchID _tmp0_ = {0};
+ SavedSearchDBTable* _tmp1_ = NULL;
+ SavedSearchDBTable* _tmp2_ = NULL;
+ SavedSearchRow* _tmp3_ = NULL;
+ SavedSearchID _tmp4_ = {0};
+ SavedSearchID _tmp5_ = {0};
+ SavedSearchRow* _tmp6_ = NULL;
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = saved_search_db_table_get_instance ();
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_;
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = self->priv->row;
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_db_table_create_from_row (_tmp2_, _tmp3_, &_tmp4_, &_inner_error_);
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = _tmp4_;
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _database_table_unref0 (_tmp2_);
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = _tmp5_;
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5684 "SearchBoolean.c"
+ goto __catch74_database_error;
+ }
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return;
+#line 5693 "SearchBoolean.c"
+ }
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = self->priv->row;
+#line 847 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_->search_id = _tmp0_;
+#line 5699 "SearchBoolean.c"
+ }
+ goto __finally74;
+ __catch74_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp7_ = NULL;
+#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ err = _inner_error_;
+#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _inner_error_ = NULL;
+#line 849 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = err;
+#line 849 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ app_window_database_error (_tmp7_);
+#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_error_free0 (err);
+#line 5716 "SearchBoolean.c"
+ }
+ __finally74:
+#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 846 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return;
+#line 5727 "SearchBoolean.c"
+ }
+#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = saved_search_table_get_instance ();
+#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = _tmp8_;
+#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_add_to_map (_tmp9_, self);
+#line 852 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_table_unref0 (_tmp9_);
+#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = data_object_to_string (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_DATA_OBJECT, DataObject));
+#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = _tmp10_;
+#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_debug ("SearchBoolean.vala:853: Reconstituted %s", _tmp11_);
+#line 853 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp11_);
+#line 5745 "SearchBoolean.c"
+}
+
+
+gboolean saved_search_rename (SavedSearch* self, const gchar* new_name) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ SavedSearchTable* _tmp2_ = NULL;
+ SavedSearchTable* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ SavedSearchTable* _tmp13_ = NULL;
+ SavedSearchTable* _tmp14_ = NULL;
+ SavedSearchRow* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ SavedSearchTable* _tmp18_ = NULL;
+ SavedSearchTable* _tmp19_ = NULL;
+ LibraryWindow* _tmp20_ = NULL;
+ LibraryWindow* _tmp21_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 857 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (self), FALSE);
+#line 857 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (new_name != NULL, FALSE);
+#line 858 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = new_name;
+#line 858 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = is_string_empty (_tmp0_);
+#line 858 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp1_) {
+#line 859 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = FALSE;
+#line 859 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5782 "SearchBoolean.c"
+ }
+#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = saved_search_table_get_instance ();
+#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = _tmp2_;
+#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = new_name;
+#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = saved_search_table_exists (_tmp3_, _tmp4_);
+#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = _tmp5_;
+#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_table_unref0 (_tmp3_);
+#line 861 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp6_) {
+#line 862 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = FALSE;
+#line 862 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5802 "SearchBoolean.c"
+ }
+ {
+ SavedSearchDBTable* _tmp7_ = NULL;
+ SavedSearchDBTable* _tmp8_ = NULL;
+ SavedSearchRow* _tmp9_ = NULL;
+ SavedSearchID _tmp10_ = {0};
+ const gchar* _tmp11_ = NULL;
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = saved_search_db_table_get_instance ();
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = _tmp7_;
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = self->priv->row;
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = _tmp9_->search_id;
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = new_name;
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_db_table_rename (_tmp8_, &_tmp10_, _tmp11_, &_inner_error_);
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _database_table_unref0 (_tmp8_);
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 5828 "SearchBoolean.c"
+ goto __catch75_database_error;
+ }
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 865 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return FALSE;
+#line 5837 "SearchBoolean.c"
+ }
+ }
+ goto __finally75;
+ __catch75_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp12_ = NULL;
+#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ err = _inner_error_;
+#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _inner_error_ = NULL;
+#line 867 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = err;
+#line 867 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ app_window_database_error (_tmp12_);
+#line 868 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = FALSE;
+#line 868 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_error_free0 (err);
+#line 868 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5859 "SearchBoolean.c"
+ }
+ __finally75:
+#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 864 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return FALSE;
+#line 5870 "SearchBoolean.c"
+ }
+#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = saved_search_table_get_instance ();
+#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = _tmp13_;
+#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_remove_from_map (_tmp14_, self);
+#line 871 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_table_unref0 (_tmp14_);
+#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = self->priv->row;
+#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = new_name;
+#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = g_strdup (_tmp16_);
+#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp15_->name);
+#line 872 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_->name = _tmp17_;
+#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = saved_search_table_get_instance ();
+#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp19_ = _tmp18_;
+#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_add_to_map (_tmp19_, self);
+#line 873 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_table_unref0 (_tmp19_);
+#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp20_ = library_window_get_app ();
+#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp21_ = _tmp20_;
+#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ library_window_switch_to_saved_search (_tmp21_, self);
+#line 875 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_tmp21_);
+#line 876 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = TRUE;
+#line 876 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5910 "SearchBoolean.c"
+}
+
+
+GeeList* saved_search_get_conditions (SavedSearch* self) {
+ GeeList* result = NULL;
+ SavedSearchRow* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+#line 879 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (self), NULL);
+#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->row;
+#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_->conditions;
+#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = gee_list_get_read_only_view (_tmp1_);
+#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = _tmp2_;
+#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_;
+#line 880 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5934 "SearchBoolean.c"
+}
+
+
+SearchOperator saved_search_get_operator (SavedSearch* self) {
+ SearchOperator result = 0;
+ SavedSearchRow* _tmp0_ = NULL;
+ SearchOperator _tmp1_ = 0;
+#line 883 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH (self), 0);
+#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->row;
+#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_->operator;
+#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp1_;
+#line 884 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 5952 "SearchBoolean.c"
+}
+
+
+static void saved_search_class_init (SavedSearchClass * klass) {
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_parent_class = g_type_class_peek_parent (klass);
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchPrivate));
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((DataObjectClass *) klass)->get_name = saved_search_real_get_name;
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((DataObjectClass *) klass)->to_string = saved_search_real_to_string;
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((DataSourceClass *) klass)->get_typename = saved_search_real_get_typename;
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((DataSourceClass *) klass)->get_instance_id = saved_search_real_get_instance_id;
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ G_OBJECT_CLASS (klass)->finalize = saved_search_finalize;
+#line 5971 "SearchBoolean.c"
+}
+
+
+static void saved_search_instance_init (SavedSearch * self) {
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SAVED_SEARCH_GET_PRIVATE (self);
+#line 5978 "SearchBoolean.c"
+}
+
+
+static void saved_search_finalize (GObject* obj) {
+ SavedSearch * self;
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH, SavedSearch);
+#line 792 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_row_unref0 (self->priv->row);
+#line 788 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ G_OBJECT_CLASS (saved_search_parent_class)->finalize (obj);
+#line 5990 "SearchBoolean.c"
+}
+
+
+GType saved_search_get_type (void) {
+ static volatile gsize saved_search_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearch), 0, (GInstanceInitFunc) saved_search_instance_init, NULL };
+ GType saved_search_type_id;
+ saved_search_type_id = g_type_register_static (TYPE_DATA_SOURCE, "SavedSearch", &g_define_type_info, 0);
+ g_once_init_leave (&saved_search_type_id__volatile, saved_search_type_id);
+ }
+ return saved_search_type_id__volatile;
+}
+
+
+static SavedSearchTable* saved_search_table_construct (GType object_type) {
+ SavedSearchTable* self = NULL;
+ GError * _inner_error_ = NULL;
+#line 897 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = (SavedSearchTable*) g_type_create_instance (object_type);
+#line 6011 "SearchBoolean.c"
+ {
+ GeeList* _tmp0_ = NULL;
+ SavedSearchDBTable* _tmp1_ = NULL;
+ SavedSearchDBTable* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = saved_search_db_table_get_instance ();
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = saved_search_db_table_get_all_rows (_tmp2_, &_inner_error_);
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = _tmp3_;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _database_table_unref0 (_tmp2_);
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = _tmp4_;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6034 "SearchBoolean.c"
+ goto __catch76_database_error;
+ }
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 6043 "SearchBoolean.c"
+ }
+ {
+ GeeList* _row_list = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _row_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _row_index = 0;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = _tmp0_;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = NULL;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _row_list = _tmp5_;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = _row_list;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = _tmp7_;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _row_size = _tmp8_;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _row_index = -1;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ while (TRUE) {
+#line 6071 "SearchBoolean.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ SavedSearchRow* row = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ SavedSearchRow* _tmp15_ = NULL;
+ SavedSearch* _tmp16_ = NULL;
+ SavedSearch* _tmp17_ = NULL;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = _row_index;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _row_index = _tmp9_ + 1;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = _row_index;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = _row_size;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ break;
+#line 6094 "SearchBoolean.c"
+ }
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = _row_list;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = _row_index;
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ row = (SavedSearchRow*) _tmp14_;
+#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp15_ = row;
+#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp16_ = saved_search_new (_tmp15_, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp17_ = _tmp16_;
+#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_add_to_map (self, _tmp17_);
+#line 901 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_tmp17_);
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_row_unref0 (row);
+#line 6116 "SearchBoolean.c"
+ }
+#line 900 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_row_list);
+#line 6120 "SearchBoolean.c"
+ }
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_tmp0_);
+#line 6124 "SearchBoolean.c"
+ }
+ goto __finally76;
+ __catch76_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp18_ = NULL;
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ err = _inner_error_;
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _inner_error_ = NULL;
+#line 903 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp18_ = err;
+#line 903 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ app_window_database_error (_tmp18_);
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_error_free0 (err);
+#line 6141 "SearchBoolean.c"
+ }
+ __finally76:
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 899 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 6152 "SearchBoolean.c"
+ }
+#line 897 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self;
+#line 6156 "SearchBoolean.c"
+}
+
+
+static SavedSearchTable* saved_search_table_new (void) {
+#line 897 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return saved_search_table_construct (TYPE_SAVED_SEARCH_TABLE);
+#line 6163 "SearchBoolean.c"
+}
+
+
+static gpointer _saved_search_table_ref0 (gpointer self) {
+#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return self ? saved_search_table_ref (self) : NULL;
+#line 6170 "SearchBoolean.c"
+}
+
+
+SavedSearchTable* saved_search_table_get_instance (void) {
+ SavedSearchTable* result = NULL;
+ SavedSearchTable* _tmp0_ = NULL;
+ SavedSearchTable* _tmp2_ = NULL;
+ SavedSearchTable* _tmp3_ = NULL;
+#line 909 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = saved_search_table_instance;
+#line 909 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_tmp0_ == NULL) {
+#line 6183 "SearchBoolean.c"
+ SavedSearchTable* _tmp1_ = NULL;
+#line 910 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = saved_search_table_new ();
+#line 910 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_table_unref0 (saved_search_table_instance);
+#line 910 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_instance = _tmp1_;
+#line 6191 "SearchBoolean.c"
+ }
+#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = saved_search_table_instance;
+#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = _saved_search_table_ref0 (_tmp2_);
+#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp3_;
+#line 912 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6201 "SearchBoolean.c"
+}
+
+
+GeeCollection* saved_search_table_get_all (SavedSearchTable* self) {
+ GeeCollection* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
+#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->search_map;
+#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_;
+#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 916 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6222 "SearchBoolean.c"
+}
+
+
+SavedSearch* saved_search_table_create (SavedSearchTable* self, const gchar* name, SearchOperator operator, GeeArrayList* conditions) {
+ SavedSearch* result = NULL;
+ SavedSearch* search = NULL;
+ SavedSearch* _tmp10_ = NULL;
+ LibraryWindow* _tmp11_ = NULL;
+ LibraryWindow* _tmp12_ = NULL;
+ SavedSearch* _tmp13_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 921 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
+#line 921 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 921 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (GEE_IS_ARRAY_LIST (conditions), NULL);
+#line 923 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search = NULL;
+#line 6242 "SearchBoolean.c"
+ {
+ SavedSearchRow* _tmp0_ = NULL;
+ SavedSearchDBTable* _tmp1_ = NULL;
+ SavedSearchDBTable* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ SearchOperator _tmp4_ = 0;
+ GeeArrayList* _tmp5_ = NULL;
+ SavedSearchRow* _tmp6_ = NULL;
+ SavedSearchRow* _tmp7_ = NULL;
+ SavedSearch* _tmp8_ = NULL;
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = saved_search_db_table_get_instance ();
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_;
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = name;
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = operator;
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = conditions;
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = saved_search_db_table_add (_tmp2_, _tmp3_, _tmp4_, _tmp5_, &_inner_error_);
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = _tmp6_;
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _database_table_unref0 (_tmp2_);
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = _tmp7_;
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6275 "SearchBoolean.c"
+ goto __catch77_database_error;
+ }
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (search);
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 6286 "SearchBoolean.c"
+ }
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp8_ = saved_search_new (_tmp0_, DATA_OBJECT_INVALID_OBJECT_ID);
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (search);
+#line 926 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ search = _tmp8_;
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _saved_search_row_unref0 (_tmp0_);
+#line 6296 "SearchBoolean.c"
+ }
+ goto __finally77;
+ __catch77_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ err = _inner_error_;
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _inner_error_ = NULL;
+#line 928 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp9_ = err;
+#line 928 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ app_window_database_error (_tmp9_);
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_error_free0 (err);
+#line 6313 "SearchBoolean.c"
+ }
+ __finally77:
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (search);
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 925 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 6326 "SearchBoolean.c"
+ }
+#line 932 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp10_ = search;
+#line 932 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_add_to_map (self, _tmp10_);
+#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp11_ = library_window_get_app ();
+#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp12_ = _tmp11_;
+#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp13_ = search;
+#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ library_window_switch_to_saved_search (_tmp12_, _tmp13_);
+#line 933 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (_tmp12_);
+#line 934 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = search;
+#line 934 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6346 "SearchBoolean.c"
+}
+
+
+void saved_search_table_remove (SavedSearchTable* self, SavedSearch* search) {
+ SavedSearch* _tmp5_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 938 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_TABLE (self));
+#line 938 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 6357 "SearchBoolean.c"
+ {
+ SavedSearchDBTable* _tmp0_ = NULL;
+ SavedSearchDBTable* _tmp1_ = NULL;
+ SavedSearch* _tmp2_ = NULL;
+ SavedSearchID _tmp3_ = {0};
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = saved_search_db_table_get_instance ();
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = _tmp0_;
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = search;
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_get_saved_search_id (_tmp2_, &_tmp3_);
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_db_table_remove (_tmp1_, &_tmp3_, &_inner_error_);
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _database_table_unref0 (_tmp1_);
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (_inner_error_->domain == DATABASE_ERROR) {
+#line 6379 "SearchBoolean.c"
+ goto __catch78_database_error;
+ }
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 940 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return;
+#line 6388 "SearchBoolean.c"
+ }
+ }
+ goto __finally78;
+ __catch78_database_error:
+ {
+ GError* err = NULL;
+ GError* _tmp4_ = NULL;
+#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ err = _inner_error_;
+#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _inner_error_ = NULL;
+#line 942 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = err;
+#line 942 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ app_window_database_error (_tmp4_);
+#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_error_free0 (err);
+#line 6406 "SearchBoolean.c"
+ }
+ __finally78:
+#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_clear_error (&_inner_error_);
+#line 939 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return;
+#line 6417 "SearchBoolean.c"
+ }
+#line 945 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = search;
+#line 945 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_remove_from_map (self, _tmp5_);
+#line 6423 "SearchBoolean.c"
+}
+
+
+void saved_search_table_add_to_map (SavedSearchTable* self, SavedSearch* search) {
+ GeeHashMap* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+ SavedSearch* _tmp5_ = NULL;
+#line 948 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_TABLE (self));
+#line 948 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->search_map;
+#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = search;
+#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = _tmp2_;
+#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = search;
+#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_, _tmp4_);
+#line 949 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp3_);
+#line 950 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = search;
+#line 950 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_signal_emit_by_name (self, "search-added", _tmp5_);
+#line 6456 "SearchBoolean.c"
+}
+
+
+void saved_search_table_remove_from_map (SavedSearchTable* self, SavedSearch* search) {
+ GeeHashMap* _tmp0_ = NULL;
+ SavedSearch* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ SavedSearch* _tmp4_ = NULL;
+#line 953 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH_TABLE (self));
+#line 953 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (IS_SAVED_SEARCH (search));
+#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->search_map;
+#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = search;
+#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = _tmp2_;
+#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp3_, NULL);
+#line 954 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (_tmp3_);
+#line 955 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = search;
+#line 955 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_signal_emit_by_name (self, "search-removed", _tmp4_);
+#line 6486 "SearchBoolean.c"
+}
+
+
+GeeIterable* saved_search_table_get_saved_searches (SavedSearchTable* self) {
+ GeeIterable* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+#line 958 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
+#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->search_map;
+#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = gee_abstract_map_get_values (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_;
+#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable);
+#line 959 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6507 "SearchBoolean.c"
+}
+
+
+gint saved_search_table_get_count (SavedSearchTable* self) {
+ gint result = 0;
+ GeeHashMap* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 962 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), 0);
+#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->search_map;
+#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = gee_abstract_map_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = _tmp1_;
+#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 963 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6528 "SearchBoolean.c"
+}
+
+
+gboolean saved_search_table_exists (SavedSearchTable* self, const gchar* search_name) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 966 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), FALSE);
+#line 966 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (search_name != NULL, FALSE);
+#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = self->priv->search_map;
+#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = search_name;
+#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp2_;
+#line 967 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6551 "SearchBoolean.c"
+}
+
+
+gchar* saved_search_table_generate_unique_name (SavedSearchTable* self) {
+ gchar* result = NULL;
+ gchar* _tmp7_ = NULL;
+#line 971 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (IS_SAVED_SEARCH_TABLE (self), NULL);
+#line 6560 "SearchBoolean.c"
+ {
+ gint ctr = 0;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ctr = 1;
+#line 6565 "SearchBoolean.c"
+ {
+ gboolean _tmp0_ = FALSE;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = TRUE;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ while (TRUE) {
+#line 6572 "SearchBoolean.c"
+ gint _tmp2_ = 0;
+ gchar* name = NULL;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!_tmp0_) {
+#line 6581 "SearchBoolean.c"
+ gint _tmp1_ = 0;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp1_ = ctr;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ctr = _tmp1_ + 1;
+#line 6587 "SearchBoolean.c"
+ }
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = FALSE;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp2_ = ctr;
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!(_tmp2_ < G_MAXINT)) {
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ break;
+#line 6597 "SearchBoolean.c"
+ }
+#line 973 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp3_ = ctr;
+#line 973 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp4_ = g_strdup_printf ("%s %d", RESOURCES_DEFAULT_SAVED_SEARCH_NAME, _tmp3_);
+#line 973 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ name = _tmp4_;
+#line 975 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp5_ = name;
+#line 975 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp6_ = saved_search_table_exists (self, _tmp5_);
+#line 975 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!_tmp6_) {
+#line 976 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = name;
+#line 976 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6615 "SearchBoolean.c"
+ }
+#line 972 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_free0 (name);
+#line 6619 "SearchBoolean.c"
+ }
+ }
+ }
+#line 978 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp7_ = g_strdup ("");
+#line 978 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ result = _tmp7_;
+#line 978 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return result;
+#line 6629 "SearchBoolean.c"
+}
+
+
+static void value_saved_search_table_init (GValue* value) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 6636 "SearchBoolean.c"
+}
+
+
+static void value_saved_search_table_free_value (GValue* value) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (value->data[0].v_pointer) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_unref (value->data[0].v_pointer);
+#line 6645 "SearchBoolean.c"
+ }
+}
+
+
+static void value_saved_search_table_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (src_value->data[0].v_pointer) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ dest_value->data[0].v_pointer = saved_search_table_ref (src_value->data[0].v_pointer);
+#line 6655 "SearchBoolean.c"
+ } else {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 6659 "SearchBoolean.c"
+ }
+}
+
+
+static gpointer value_saved_search_table_peek_pointer (const GValue* value) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return value->data[0].v_pointer;
+#line 6667 "SearchBoolean.c"
+}
+
+
+static gchar* value_saved_search_table_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (collect_values[0].v_pointer) {
+#line 6674 "SearchBoolean.c"
+ SavedSearchTable* object;
+ object = collect_values[0].v_pointer;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 6681 "SearchBoolean.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 6685 "SearchBoolean.c"
+ }
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = saved_search_table_ref (object);
+#line 6689 "SearchBoolean.c"
+ } else {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 6693 "SearchBoolean.c"
+ }
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 6697 "SearchBoolean.c"
+}
+
+
+static gchar* value_saved_search_table_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SavedSearchTable** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!object_p) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 6708 "SearchBoolean.c"
+ }
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (!value->data[0].v_pointer) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *object_p = NULL;
+#line 6714 "SearchBoolean.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *object_p = value->data[0].v_pointer;
+#line 6718 "SearchBoolean.c"
+ } else {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ *object_p = saved_search_table_ref (value->data[0].v_pointer);
+#line 6722 "SearchBoolean.c"
+ }
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return NULL;
+#line 6726 "SearchBoolean.c"
+}
+
+
+GParamSpec* param_spec_saved_search_table (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecSavedSearchTable* spec;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_SAVED_SEARCH_TABLE), NULL);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return G_PARAM_SPEC (spec);
+#line 6740 "SearchBoolean.c"
+}
+
+
+gpointer value_get_saved_search_table (const GValue* value) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_TABLE), NULL);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return value->data[0].v_pointer;
+#line 6749 "SearchBoolean.c"
+}
+
+
+void value_set_saved_search_table (GValue* value, gpointer v_object) {
+ SavedSearchTable* old;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_TABLE));
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ old = value->data[0].v_pointer;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (v_object) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_TABLE));
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = v_object;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_ref (value->data[0].v_pointer);
+#line 6769 "SearchBoolean.c"
+ } else {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 6773 "SearchBoolean.c"
+ }
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (old) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_unref (old);
+#line 6779 "SearchBoolean.c"
+ }
+}
+
+
+void value_take_saved_search_table (GValue* value, gpointer v_object) {
+ SavedSearchTable* old;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_SAVED_SEARCH_TABLE));
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ old = value->data[0].v_pointer;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (v_object) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_SAVED_SEARCH_TABLE));
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = v_object;
+#line 6798 "SearchBoolean.c"
+ } else {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ value->data[0].v_pointer = NULL;
+#line 6802 "SearchBoolean.c"
+ }
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (old) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_unref (old);
+#line 6808 "SearchBoolean.c"
+ }
+}
+
+
+static void saved_search_table_class_init (SavedSearchTableClass * klass) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ saved_search_table_parent_class = g_type_class_peek_parent (klass);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ ((SavedSearchTableClass *) klass)->finalize = saved_search_table_finalize;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_class_add_private (klass, sizeof (SavedSearchTablePrivate));
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_signal_new ("search_added", TYPE_SAVED_SEARCH_TABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_signal_new ("search_removed", TYPE_SAVED_SEARCH_TABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_SAVED_SEARCH);
+#line 6824 "SearchBoolean.c"
+}
+
+
+static void saved_search_table_instance_init (SavedSearchTable * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv = SAVED_SEARCH_TABLE_GET_PRIVATE (self);
+#line 892 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, TYPE_SAVED_SEARCH, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 892 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->priv->search_map = _tmp0_;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self->ref_count = 1;
+#line 6838 "SearchBoolean.c"
+}
+
+
+static void saved_search_table_finalize (SavedSearchTable* obj) {
+ SavedSearchTable * self;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SAVED_SEARCH_TABLE, SavedSearchTable);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_signal_handlers_destroy (self);
+#line 892 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ _g_object_unref0 (self->priv->search_map);
+#line 6850 "SearchBoolean.c"
+}
+
+
+GType saved_search_table_get_type (void) {
+ static volatile gsize saved_search_table_type_id__volatile = 0;
+ if (g_once_init_enter (&saved_search_table_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_saved_search_table_init, value_saved_search_table_free_value, value_saved_search_table_copy_value, value_saved_search_table_peek_pointer, "p", value_saved_search_table_collect_value, "p", value_saved_search_table_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SavedSearchTableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) saved_search_table_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SavedSearchTable), 0, (GInstanceInitFunc) saved_search_table_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType saved_search_table_type_id;
+ saved_search_table_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SavedSearchTable", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&saved_search_table_type_id__volatile, saved_search_table_type_id);
+ }
+ return saved_search_table_type_id__volatile;
+}
+
+
+gpointer saved_search_table_ref (gpointer instance) {
+ SavedSearchTable* self;
+ self = instance;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ return instance;
+#line 6875 "SearchBoolean.c"
+}
+
+
+void saved_search_table_unref (gpointer instance) {
+ SavedSearchTable* self;
+ self = instance;
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ SAVED_SEARCH_TABLE_GET_CLASS (self)->finalize (self);
+#line 890 "/home/jens/Source/shotwell/src/searches/SearchBoolean.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 6888 "SearchBoolean.c"
+ }
+}
+
+
+
diff --git a/src/searches/Searches.c b/src/searches/Searches.c
new file mode 100644
index 0000000..1ab6b90
--- /dev/null
+++ b/src/searches/Searches.c
@@ -0,0 +1,49 @@
+/* Searches.c generated by valac 0.32.1, the Vala compiler
+ * generated from Searches.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* This file is the master unit file for the Searches unit. It should be edited to include
+ * whatever code is deemed necessary.
+ *
+ * The init() and terminate() methods are mandatory.
+ *
+ * If the unit needs to be configured prior to initialization, add the proper parameters to
+ * the preconfigure() method, implement it, and ensure in init() that it's been called.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void searches_preconfigure (void);
+void searches_init (GError** error);
+void searches_sidebar_entry_init (void);
+void searches_terminate (void);
+void searches_sidebar_entry_terminate (void);
+
+
+void searches_preconfigure (void) {
+}
+
+
+void searches_init (GError** error) {
+#line 23 "/home/jens/Source/shotwell/src/searches/Searches.vala"
+ searches_sidebar_entry_init ();
+#line 39 "Searches.c"
+}
+
+
+void searches_terminate (void) {
+#line 27 "/home/jens/Source/shotwell/src/searches/Searches.vala"
+ searches_sidebar_entry_terminate ();
+#line 46 "Searches.c"
+}
+
+
+
diff --git a/src/searches/mk/searches.mk b/src/searches/mk/searches.mk
deleted file mode 100644
index 6df4b5d..0000000
--- a/src/searches/mk/searches.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Searches
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := searches
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- Branch.vala \
- SearchBoolean.vala \
- SavedSearchPage.vala \
- SavedSearchDialog.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/sidebar/Branch.c b/src/sidebar/Branch.c
new file mode 100644
index 0000000..10f7a72
--- /dev/null
+++ b/src/sidebar/Branch.c
@@ -0,0 +1,2814 @@
+/* Branch.c generated by valac 0.32.1, the Vala compiler
+ * generated from Branch.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define SIDEBAR_BRANCH_TYPE_NODE (sidebar_branch_node_get_type ())
+#define SIDEBAR_BRANCH_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_BRANCH_TYPE_NODE, SidebarBranchNode))
+#define SIDEBAR_BRANCH_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_BRANCH_TYPE_NODE, SidebarBranchNodeClass))
+#define SIDEBAR_BRANCH_IS_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_BRANCH_TYPE_NODE))
+#define SIDEBAR_BRANCH_IS_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_BRANCH_TYPE_NODE))
+#define SIDEBAR_BRANCH_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_BRANCH_TYPE_NODE, SidebarBranchNodeClass))
+
+typedef struct _SidebarBranchNode SidebarBranchNode;
+typedef struct _SidebarBranchNodeClass SidebarBranchNodeClass;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+#define _sidebar_branch_node_unref0(var) ((var == NULL) ? NULL : (var = (sidebar_branch_node_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _SidebarBranchNodePrivate SidebarBranchNodePrivate;
+typedef struct _SidebarBranchParamSpecNode SidebarBranchParamSpecNode;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gboolean (*Locator) (gconstpointer item, void* user_data);
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarBranchPrivate {
+ SidebarBranchNode* root;
+ SidebarBranchOptions options;
+ gboolean shown;
+ GCompareFunc default_comparator;
+ GeeHashMap* map;
+};
+
+struct _SidebarBranchNode {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ SidebarBranchNodePrivate * priv;
+ SidebarEntry* entry;
+ SidebarBranchNode* parent;
+ GCompareFunc comparator;
+ GeeSortedSet* children;
+};
+
+struct _SidebarBranchNodeClass {
+ GTypeClass parent_class;
+ void (*finalize) (SidebarBranchNode *self);
+};
+
+typedef void (*SidebarBranchNodePruneCallback) (SidebarBranchNode* node, void* user_data);
+typedef void (*SidebarBranchNodeChildrenReorderedCallback) (SidebarBranchNode* node, void* user_data);
+struct _SidebarBranchParamSpecNode {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer sidebar_branch_parent_class = NULL;
+static gpointer sidebar_branch_node_parent_class = NULL;
+
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+static gpointer sidebar_branch_node_ref (gpointer instance);
+static void sidebar_branch_node_unref (gpointer instance);
+static GParamSpec* sidebar_branch_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void sidebar_branch_value_set_node (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void sidebar_branch_value_take_node (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer sidebar_branch_value_get_node (const GValue* value) G_GNUC_UNUSED;
+static GType sidebar_branch_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+#define SIDEBAR_BRANCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SIDEBAR_TYPE_BRANCH, SidebarBranchPrivate))
+enum {
+ SIDEBAR_BRANCH_DUMMY_PROPERTY
+};
+gboolean sidebar_branch_options_is_hide_if_empty (SidebarBranchOptions self);
+gboolean sidebar_branch_options_is_auto_open_on_new_child (SidebarBranchOptions self);
+gboolean sidebar_branch_options_is_startup_expand_to_first_child (SidebarBranchOptions self);
+gboolean sidebar_branch_options_is_startup_open_grouping (SidebarBranchOptions self);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+static SidebarBranchNode* sidebar_branch_node_new (SidebarEntry* entry, SidebarBranchNode* parent, GCompareFunc comparator);
+static SidebarBranchNode* sidebar_branch_node_construct (GType object_type, SidebarEntry* entry, SidebarBranchNode* parent, GCompareFunc comparator);
+void sidebar_branch_set_show_branch (SidebarBranch* self, gboolean shown);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+gboolean sidebar_branch_get_show_branch (SidebarBranch* self);
+gboolean sidebar_branch_is_auto_open_on_new_child (SidebarBranch* self);
+gboolean sidebar_branch_is_startup_expand_to_first_child (SidebarBranch* self);
+gboolean sidebar_branch_is_startup_open_grouping (SidebarBranch* self);
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator);
+static void sidebar_branch_node_add_child (SidebarBranchNode* self, SidebarBranchNode* child);
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry);
+static void sidebar_branch_node_prune_children (SidebarBranchNode* self, SidebarBranchNodePruneCallback cb, void* cb_target);
+static void sidebar_branch_prune_callback (SidebarBranch* self, SidebarBranchNode* node);
+static void _sidebar_branch_prune_callback_sidebar_branch_node_prune_callback (SidebarBranchNode* node, gpointer self);
+static void sidebar_branch_node_remove_child (SidebarBranchNode* self, SidebarBranchNode* child);
+static gboolean sidebar_branch_node_has_children (SidebarBranchNode* self);
+void sidebar_branch_reparent (SidebarBranch* self, SidebarEntry* new_parent, SidebarEntry* entry);
+gboolean sidebar_branch_has_entry (SidebarBranch* self, SidebarEntry* entry);
+void sidebar_branch_reorder (SidebarBranch* self, SidebarEntry* entry);
+static gboolean sidebar_branch_node_reorder_child (SidebarBranchNode* self, SidebarBranchNode* child);
+void sidebar_branch_reorder_all (SidebarBranch* self);
+static void sidebar_branch_node_reorder_children (SidebarBranchNode* self, gboolean recursive, SidebarBranchNodeChildrenReorderedCallback cb, void* cb_target);
+static void sidebar_branch_children_reordered_callback (SidebarBranch* self, SidebarBranchNode* node);
+static void _sidebar_branch_children_reordered_callback_sidebar_branch_node_children_reordered_callback (SidebarBranchNode* node, gpointer self);
+void sidebar_branch_reorder_children (SidebarBranch* self, SidebarEntry* entry, gboolean recursive);
+void sidebar_branch_change_all_comparators (SidebarBranch* self, GCompareFunc comparator);
+static void sidebar_branch_node_change_comparator (SidebarBranchNode* self, GCompareFunc comparator, gboolean recursive, SidebarBranchNodeChildrenReorderedCallback cb, void* cb_target);
+void sidebar_branch_change_comparator (SidebarBranch* self, SidebarEntry* entry, gboolean recursive, GCompareFunc comparator);
+gint sidebar_branch_get_child_count (SidebarBranch* self, SidebarEntry* parent);
+GeeList* sidebar_branch_get_children (SidebarBranch* self, SidebarEntry* parent);
+SidebarEntry* sidebar_branch_find_first_child (SidebarBranch* self, SidebarEntry* parent, Locator locator, void* locator_target);
+SidebarEntry* sidebar_branch_get_parent (SidebarBranch* self, SidebarEntry* entry);
+SidebarEntry* sidebar_branch_get_previous_sibling (SidebarBranch* self, SidebarEntry* entry);
+SidebarEntry* sidebar_branch_get_next_sibling (SidebarBranch* self, SidebarEntry* entry);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+enum {
+ SIDEBAR_BRANCH_NODE_DUMMY_PROPERTY
+};
+static gint sidebar_branch_node_comparator_wrapper (SidebarBranchNode* anode, SidebarBranchNode* bnode);
+static gint _sidebar_branch_node_comparator_wrapper_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+static gint sidebar_branch_node_index_of_by_reference (SidebarBranchNode* self, SidebarBranchNode* child);
+static void sidebar_branch_node_finalize (SidebarBranchNode* obj);
+static void sidebar_branch_finalize (GObject* obj);
+
+
+gboolean sidebar_branch_options_is_hide_if_empty (SidebarBranchOptions self) {
+ gboolean result = FALSE;
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = (self & SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY) != 0;
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 202 "Branch.c"
+}
+
+
+gboolean sidebar_branch_options_is_auto_open_on_new_child (SidebarBranchOptions self) {
+ gboolean result = FALSE;
+#line 23 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = (self & SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD) != 0;
+#line 23 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 212 "Branch.c"
+}
+
+
+gboolean sidebar_branch_options_is_startup_expand_to_first_child (SidebarBranchOptions self) {
+ gboolean result = FALSE;
+#line 27 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = (self & SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD) != 0;
+#line 27 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 222 "Branch.c"
+}
+
+
+gboolean sidebar_branch_options_is_startup_open_grouping (SidebarBranchOptions self) {
+ gboolean result = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = (self & SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING) != 0;
+#line 31 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 232 "Branch.c"
+}
+
+
+GType sidebar_branch_options_get_type (void) {
+ static volatile gsize sidebar_branch_options_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_branch_options_type_id__volatile)) {
+ static const GFlagsValue values[] = {{SIDEBAR_BRANCH_OPTIONS_NONE, "SIDEBAR_BRANCH_OPTIONS_NONE", "none"}, {SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY, "SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY", "hide-if-empty"}, {SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD, "SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD", "auto-open-on-new-child"}, {SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD, "SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD", "startup-expand-to-first-child"}, {SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING, "SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING", "startup-open-grouping"}, {0, NULL, NULL}};
+ GType sidebar_branch_options_type_id;
+ sidebar_branch_options_type_id = g_flags_register_static ("SidebarBranchOptions", values);
+ g_once_init_leave (&sidebar_branch_options_type_id__volatile, sidebar_branch_options_type_id);
+ }
+ return sidebar_branch_options_type_id__volatile;
+}
+
+
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator) {
+ SidebarBranch * self = NULL;
+ GCompareFunc _tmp0_ = NULL;
+ GCompareFunc _tmp1_ = NULL;
+ GCompareFunc _tmp2_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ SidebarBranchOptions _tmp7_ = 0;
+ GeeHashMap* _tmp8_ = NULL;
+ SidebarEntry* _tmp9_ = NULL;
+ SidebarBranchNode* _tmp10_ = NULL;
+ SidebarBranchOptions _tmp11_ = 0;
+ gboolean _tmp12_ = FALSE;
+#line 206 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (root), NULL);
+#line 206 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self = (SidebarBranch*) g_object_new (object_type, NULL);
+#line 208 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = default_comparator;
+#line 208 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->priv->default_comparator = _tmp0_;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = root_comparator;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp2_ != NULL) {
+#line 273 "Branch.c"
+ GCompareFunc _tmp3_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = root_comparator;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = _tmp3_;
+#line 279 "Branch.c"
+ } else {
+ GCompareFunc _tmp4_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = default_comparator;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = _tmp4_;
+#line 286 "Branch.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = root;
+#line 209 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = sidebar_branch_node_new (_tmp5_, NULL, _tmp1_);
+#line 209 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (self->priv->root);
+#line 209 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->priv->root = _tmp6_;
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = options;
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->priv->options = _tmp7_;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = self->priv->map;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = root;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = self->priv->root;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp9_, _tmp10_);
+#line 215 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = options;
+#line 215 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = sidebar_branch_options_is_hide_if_empty (_tmp11_);
+#line 215 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp12_) {
+#line 216 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_set_show_branch (self, FALSE);
+#line 316 "Branch.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return self;
+#line 320 "Branch.c"
+}
+
+
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator) {
+#line 206 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return sidebar_branch_construct (SIDEBAR_TYPE_BRANCH, root, options, default_comparator, root_comparator);
+#line 327 "Branch.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 220 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 334 "Branch.c"
+}
+
+
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self) {
+ SidebarEntry* result = NULL;
+ SidebarBranchNode* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+#line 219 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), NULL);
+#line 220 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->root;
+#line 220 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = _tmp0_->entry;
+#line 220 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 220 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp2_;
+#line 220 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 355 "Branch.c"
+}
+
+
+void sidebar_branch_set_show_branch (SidebarBranch* self, gboolean shown) {
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gboolean _tmp3_ = FALSE;
+#line 223 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 224 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->shown;
+#line 224 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = shown;
+#line 224 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 225 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return;
+#line 374 "Branch.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = shown;
+#line 227 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->priv->shown = _tmp2_;
+#line 228 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = shown;
+#line 228 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_emit_by_name (self, "show-branch", _tmp3_);
+#line 384 "Branch.c"
+}
+
+
+gboolean sidebar_branch_get_show_branch (SidebarBranch* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 231 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), FALSE);
+#line 232 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->shown;
+#line 232 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp0_;
+#line 232 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 399 "Branch.c"
+}
+
+
+gboolean sidebar_branch_is_auto_open_on_new_child (SidebarBranch* self) {
+ gboolean result = FALSE;
+ SidebarBranchOptions _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 235 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), FALSE);
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->options;
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = sidebar_branch_options_is_auto_open_on_new_child (_tmp0_);
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp1_;
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 417 "Branch.c"
+}
+
+
+gboolean sidebar_branch_is_startup_expand_to_first_child (SidebarBranch* self) {
+ gboolean result = FALSE;
+ SidebarBranchOptions _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 239 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), FALSE);
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->options;
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = sidebar_branch_options_is_startup_expand_to_first_child (_tmp0_);
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp1_;
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 435 "Branch.c"
+}
+
+
+gboolean sidebar_branch_is_startup_open_grouping (SidebarBranch* self) {
+ gboolean result = FALSE;
+ SidebarBranchOptions _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 243 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), FALSE);
+#line 244 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->options;
+#line 244 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = sidebar_branch_options_is_startup_open_grouping (_tmp0_);
+#line 244 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp1_;
+#line 244 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 453 "Branch.c"
+}
+
+
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator) {
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ SidebarBranchOptions _tmp6_ = 0;
+ gboolean _tmp7_ = FALSE;
+ SidebarBranchNode* parent_node = NULL;
+ GeeHashMap* _tmp8_ = NULL;
+ SidebarEntry* _tmp9_ = NULL;
+ gpointer _tmp10_ = NULL;
+ GCompareFunc _tmp11_ = NULL;
+ GCompareFunc _tmp12_ = NULL;
+ SidebarBranchNode* entry_node = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ SidebarBranchNode* _tmp16_ = NULL;
+ SidebarBranchNode* _tmp17_ = NULL;
+ SidebarBranchNode* _tmp18_ = NULL;
+ GeeHashMap* _tmp19_ = NULL;
+ SidebarEntry* _tmp20_ = NULL;
+ SidebarEntry* _tmp21_ = NULL;
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (parent));
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 249 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->map;
+#line 249 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = parent;
+#line 249 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 249 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp2_, "map.has_key(parent)");
+#line 250 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 250 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = entry;
+#line 250 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 250 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (!_tmp5_, "!map.has_key(entry)");
+#line 252 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = self->priv->options;
+#line 252 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = sidebar_branch_options_is_hide_if_empty (_tmp6_);
+#line 252 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp7_) {
+#line 253 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_set_show_branch (self, TRUE);
+#line 510 "Branch.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = self->priv->map;
+#line 255 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = parent;
+#line 255 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp9_);
+#line 255 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ parent_node = (SidebarBranchNode*) _tmp10_;
+#line 257 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = comparator;
+#line 257 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp12_ != NULL) {
+#line 524 "Branch.c"
+ GCompareFunc _tmp13_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = comparator;
+#line 257 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _tmp13_;
+#line 530 "Branch.c"
+ } else {
+ GCompareFunc _tmp14_ = NULL;
+#line 257 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = self->priv->default_comparator;
+#line 257 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _tmp14_;
+#line 537 "Branch.c"
+ }
+#line 256 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = entry;
+#line 256 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = parent_node;
+#line 256 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = sidebar_branch_node_new (_tmp15_, _tmp16_, _tmp11_);
+#line 256 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = _tmp17_;
+#line 259 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = parent_node;
+#line 259 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_add_child (_tmp18_, entry_node);
+#line 260 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp19_ = self->priv->map;
+#line 260 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp20_ = entry;
+#line 260 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp20_, entry_node);
+#line 262 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp21_ = entry;
+#line 262 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_emit_by_name (self, "entry-added", _tmp21_);
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (parent_node);
+#line 565 "Branch.c"
+}
+
+
+static void _sidebar_branch_prune_callback_sidebar_branch_node_prune_callback (SidebarBranchNode* node, gpointer self) {
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_prune_callback ((SidebarBranch*) self, node);
+#line 572 "Branch.c"
+}
+
+
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry) {
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ SidebarBranchNode* _tmp10_ = NULL;
+ SidebarBranchNode* _tmp11_ = NULL;
+ SidebarBranchNode* _tmp12_ = NULL;
+ SidebarBranchNode* _tmp13_ = NULL;
+ SidebarBranchNode* _tmp14_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp15_ = NULL;
+ SidebarEntry* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ gboolean _tmp18_ = FALSE;
+ SidebarEntry* _tmp19_ = NULL;
+ gboolean _tmp20_ = FALSE;
+ SidebarBranchOptions _tmp21_ = 0;
+ gboolean _tmp22_ = FALSE;
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 267 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = entry;
+#line 267 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->priv->root;
+#line 267 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _tmp1_->entry;
+#line 267 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp0_ != _tmp2_, "entry != root.entry");
+#line 268 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 268 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = entry;
+#line 268 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 268 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp5_, "map.has_key(entry)");
+#line 270 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = self->priv->map;
+#line 270 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = entry;
+#line 270 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 270 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp8_;
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = entry_node;
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_prune_children (_tmp9_, _sidebar_branch_prune_callback_sidebar_branch_node_prune_callback, self);
+#line 274 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = entry_node;
+#line 274 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _tmp10_->parent;
+#line 274 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp11_ != NULL, "entry_node.parent != null");
+#line 275 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = entry_node;
+#line 275 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = _tmp12_->parent;
+#line 275 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = entry_node;
+#line 275 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_remove_child (_tmp13_, _tmp14_);
+#line 277 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = self->priv->map;
+#line 277 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = entry;
+#line 277 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp16_, NULL);
+#line 277 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ removed = _tmp17_;
+#line 278 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = removed;
+#line 278 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp18_, "removed");
+#line 280 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp19_ = entry;
+#line 280 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_emit_by_name (self, "entry-removed", _tmp19_);
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp21_ = self->priv->options;
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp22_ = sidebar_branch_options_is_hide_if_empty (_tmp21_);
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp22_) {
+#line 670 "Branch.c"
+ SidebarBranchNode* _tmp23_ = NULL;
+ gboolean _tmp24_ = FALSE;
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp23_ = self->priv->root;
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp24_ = sidebar_branch_node_has_children (_tmp23_);
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp20_ = !_tmp24_;
+#line 679 "Branch.c"
+ } else {
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp20_ = FALSE;
+#line 683 "Branch.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp20_) {
+#line 283 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_set_show_branch (self, FALSE);
+#line 689 "Branch.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 693 "Branch.c"
+}
+
+
+void sidebar_branch_reparent (SidebarBranch* self, SidebarEntry* new_parent, SidebarEntry* entry) {
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeHashMap* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp9_ = NULL;
+ SidebarEntry* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ SidebarBranchNode* new_parent_node = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ gpointer _tmp14_ = NULL;
+ SidebarBranchNode* _tmp15_ = NULL;
+ SidebarEntry* old_parent = NULL;
+ SidebarBranchNode* _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarBranchNode* _tmp19_ = NULL;
+ SidebarEntry* _tmp20_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 287 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (new_parent));
+#line 287 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = entry;
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->priv->root;
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _tmp1_->entry;
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp0_ != _tmp2_, "entry != root.entry");
+#line 289 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 289 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = entry;
+#line 289 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 289 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp5_, "map.has_key(entry)");
+#line 290 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = self->priv->map;
+#line 290 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = new_parent;
+#line 290 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_);
+#line 290 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp8_, "map.has_key(new_parent)");
+#line 292 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = self->priv->map;
+#line 292 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = entry;
+#line 292 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp10_);
+#line 292 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp11_;
+#line 293 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = self->priv->map;
+#line 293 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = new_parent;
+#line 293 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp13_);
+#line 293 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ new_parent_node = (SidebarBranchNode*) _tmp14_;
+#line 295 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = entry_node->parent;
+#line 295 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp15_ != NULL, "entry_node.parent != null");
+#line 296 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = entry_node->parent;
+#line 296 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = _tmp16_->entry;
+#line 296 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = _g_object_ref0 (_tmp17_);
+#line 296 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ old_parent = _tmp18_;
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp19_ = entry_node->parent;
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_remove_child (_tmp19_, entry_node);
+#line 299 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_add_child (new_parent_node, entry_node);
+#line 301 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp20_ = entry;
+#line 301 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_emit_by_name (self, "entry-reparented", _tmp20_, old_parent);
+#line 287 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (old_parent);
+#line 287 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (new_parent_node);
+#line 287 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 796 "Branch.c"
+}
+
+
+gboolean sidebar_branch_has_entry (SidebarBranch* self, SidebarEntry* entry) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), FALSE);
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->priv->root;
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _tmp1_->entry;
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = entry;
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp2_ == _tmp3_) {
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = TRUE;
+#line 820 "Branch.c"
+ } else {
+ GeeHashMap* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = self->priv->map;
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = entry;
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_);
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = _tmp6_;
+#line 833 "Branch.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp0_;
+#line 305 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 839 "Branch.c"
+}
+
+
+void sidebar_branch_reorder (SidebarBranch* self, SidebarEntry* entry) {
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ SidebarBranchNode* _tmp7_ = NULL;
+ SidebarBranchNode* _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ SidebarBranchNode* _tmp10_ = NULL;
+ SidebarBranchNode* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+#line 310 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 310 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 311 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = entry;
+#line 311 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->priv->root;
+#line 311 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _tmp1_->entry;
+#line 311 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp0_ != _tmp2_, "entry != root.entry");
+#line 313 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 313 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = entry;
+#line 313 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 313 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp5_;
+#line 314 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = entry_node;
+#line 314 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp6_ != NULL, "entry_node != null");
+#line 316 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = entry_node;
+#line 316 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = _tmp7_->parent;
+#line 316 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp8_ != NULL, "entry_node.parent != null");
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = entry_node;
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _tmp9_->parent;
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = entry_node;
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = sidebar_branch_node_reorder_child (_tmp10_, _tmp11_);
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp12_) {
+#line 898 "Branch.c"
+ SidebarEntry* _tmp13_ = NULL;
+#line 318 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = entry;
+#line 318 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_emit_by_name (self, "entry-moved", _tmp13_);
+#line 904 "Branch.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 908 "Branch.c"
+}
+
+
+static void _sidebar_branch_children_reordered_callback_sidebar_branch_node_children_reordered_callback (SidebarBranchNode* node, gpointer self) {
+#line 323 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_children_reordered_callback ((SidebarBranch*) self, node);
+#line 915 "Branch.c"
+}
+
+
+void sidebar_branch_reorder_all (SidebarBranch* self) {
+ SidebarBranchNode* _tmp0_ = NULL;
+#line 322 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 323 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->root;
+#line 323 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_reorder_children (_tmp0_, TRUE, _sidebar_branch_children_reordered_callback_sidebar_branch_node_children_reordered_callback, self);
+#line 927 "Branch.c"
+}
+
+
+void sidebar_branch_reorder_children (SidebarBranch* self, SidebarEntry* entry, gboolean recursive) {
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 327 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 327 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 328 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->map;
+#line 328 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = entry;
+#line 328 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 328 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp2_;
+#line 329 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (entry_node != NULL, "entry_node != null");
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = recursive;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_reorder_children (entry_node, _tmp3_, _sidebar_branch_children_reordered_callback_sidebar_branch_node_children_reordered_callback, self);
+#line 327 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 957 "Branch.c"
+}
+
+
+void sidebar_branch_change_all_comparators (SidebarBranch* self, GCompareFunc comparator) {
+ SidebarBranchNode* _tmp0_ = NULL;
+ GCompareFunc _tmp1_ = NULL;
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 335 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->root;
+#line 335 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = comparator;
+#line 335 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_change_comparator (_tmp0_, _tmp1_, TRUE, _sidebar_branch_children_reordered_callback_sidebar_branch_node_children_reordered_callback, self);
+#line 972 "Branch.c"
+}
+
+
+void sidebar_branch_change_comparator (SidebarBranch* self, SidebarEntry* entry, gboolean recursive, GCompareFunc comparator) {
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ GCompareFunc _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 338 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 338 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 340 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->map;
+#line 340 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = entry;
+#line 340 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 340 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp2_;
+#line 341 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (entry_node != NULL, "entry_node != null");
+#line 343 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = comparator;
+#line 343 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = recursive;
+#line 343 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_change_comparator (entry_node, _tmp3_, _tmp4_, _sidebar_branch_children_reordered_callback_sidebar_branch_node_children_reordered_callback, self);
+#line 338 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 1005 "Branch.c"
+}
+
+
+gint sidebar_branch_get_child_count (SidebarBranch* self, SidebarEntry* parent) {
+ gint result = 0;
+ SidebarBranchNode* parent_node = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ SidebarBranchNode* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ SidebarBranchNode* _tmp5_ = NULL;
+ GeeSortedSet* _tmp6_ = NULL;
+#line 346 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), 0);
+#line 346 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (parent), 0);
+#line 347 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->map;
+#line 347 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = parent;
+#line 347 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 347 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ parent_node = (SidebarBranchNode*) _tmp2_;
+#line 348 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = parent_node;
+#line 348 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp3_ != NULL, "parent_node != null");
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = parent_node;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = _tmp5_->children;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp6_ != NULL) {
+#line 1041 "Branch.c"
+ SidebarBranchNode* _tmp7_ = NULL;
+ GeeSortedSet* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = parent_node;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = _tmp7_->children;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _tmp9_;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = _tmp10_;
+#line 1056 "Branch.c"
+ } else {
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = 0;
+#line 1060 "Branch.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp4_;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (parent_node);
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1068 "Branch.c"
+}
+
+
+GeeList* sidebar_branch_get_children (SidebarBranch* self, SidebarEntry* parent) {
+ GeeList* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ SidebarBranchNode* parent_node = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ GeeSortedSet* _tmp7_ = NULL;
+ GeeList* child_entries = NULL;
+ GeeArrayList* _tmp8_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), NULL);
+#line 355 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (parent), NULL);
+#line 356 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->map;
+#line 356 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = parent;
+#line 356 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 356 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp2_, "map.has_key(parent)");
+#line 358 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 358 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = parent;
+#line 358 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 358 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ parent_node = (SidebarBranchNode*) _tmp5_;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = parent_node;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = _tmp6_->children;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp7_ == NULL) {
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = NULL;
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (parent_node);
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1117 "Branch.c"
+ }
+#line 362 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = gee_array_list_new (SIDEBAR_TYPE_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 362 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ child_entries = G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GEE_TYPE_LIST, GeeList);
+#line 1123 "Branch.c"
+ {
+ GeeIterator* _child_it = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ GeeSortedSet* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = parent_node;
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _tmp9_->children;
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _child_it = _tmp11_;
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 1139 "Branch.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ SidebarBranchNode* child = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ SidebarBranchNode* _tmp17_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = _child_it;
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp13_) {
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 1156 "Branch.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = _child_it;
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ child = (SidebarBranchNode*) _tmp15_;
+#line 364 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = child_entries;
+#line 364 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = child;
+#line 364 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = _tmp17_->entry;
+#line 364 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection), _tmp18_);
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (child);
+#line 1174 "Branch.c"
+ }
+#line 363 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_child_it);
+#line 1178 "Branch.c"
+ }
+#line 366 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = child_entries;
+#line 366 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (parent_node);
+#line 366 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1186 "Branch.c"
+}
+
+
+SidebarEntry* sidebar_branch_find_first_child (SidebarBranch* self, SidebarEntry* parent, Locator locator, void* locator_target) {
+ SidebarEntry* result = NULL;
+ SidebarBranchNode* parent_node = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ SidebarBranchNode* _tmp3_ = NULL;
+ SidebarBranchNode* _tmp4_ = NULL;
+ GeeSortedSet* _tmp5_ = NULL;
+#line 369 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), NULL);
+#line 369 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (parent), NULL);
+#line 370 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->priv->map;
+#line 370 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = parent;
+#line 370 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 370 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ parent_node = (SidebarBranchNode*) _tmp2_;
+#line 371 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = parent_node;
+#line 371 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp3_ != NULL, "parent_node != null");
+#line 373 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = parent_node;
+#line 373 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = _tmp4_->children;
+#line 373 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp5_ == NULL) {
+#line 374 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = NULL;
+#line 374 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (parent_node);
+#line 374 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1227 "Branch.c"
+ }
+ {
+ GeeIterator* _child_it = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ GeeSortedSet* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = parent_node;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = _tmp6_->children;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _child_it = _tmp8_;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 1244 "Branch.c"
+ GeeIterator* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ SidebarBranchNode* child = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ Locator _tmp13_ = NULL;
+ void* _tmp13__target = NULL;
+ SidebarBranchNode* _tmp14_ = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = _child_it;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = gee_iterator_next (_tmp9_);
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp10_) {
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 1263 "Branch.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _child_it;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = gee_iterator_get (_tmp11_);
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ child = (SidebarBranchNode*) _tmp12_;
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = locator;
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13__target = locator_target;
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = child;
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = _tmp14_->entry;
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = _tmp13_ (_tmp15_, _tmp13__target);
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp16_) {
+#line 1283 "Branch.c"
+ SidebarBranchNode* _tmp17_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarEntry* _tmp19_ = NULL;
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = child;
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = _tmp17_->entry;
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp19_ = _g_object_ref0 (_tmp18_);
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp19_;
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (child);
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_child_it);
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (parent_node);
+#line 378 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1303 "Branch.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (child);
+#line 1307 "Branch.c"
+ }
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_child_it);
+#line 1311 "Branch.c"
+ }
+#line 381 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = NULL;
+#line 381 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (parent_node);
+#line 381 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1319 "Branch.c"
+}
+
+
+SidebarEntry* sidebar_branch_get_parent (SidebarBranch* self, SidebarEntry* entry) {
+ SidebarEntry* result = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ SidebarBranchNode* _tmp7_ = NULL;
+ SidebarBranchNode* _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ SidebarBranchNode* _tmp10_ = NULL;
+ SidebarEntry* _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+#line 385 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), NULL);
+#line 385 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 386 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = entry;
+#line 386 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->priv->root;
+#line 386 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _tmp1_->entry;
+#line 386 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == _tmp2_) {
+#line 387 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = NULL;
+#line 387 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1355 "Branch.c"
+ }
+#line 389 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 389 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = entry;
+#line 389 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 389 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp5_;
+#line 390 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = entry_node;
+#line 390 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp6_ != NULL, "entry_node != null");
+#line 391 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = entry_node;
+#line 391 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = _tmp7_->parent;
+#line 391 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp8_ != NULL, "entry_node.parent != null");
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = entry_node;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _tmp9_->parent;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _tmp10_->entry;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp12_;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1389 "Branch.c"
+}
+
+
+SidebarEntry* sidebar_branch_get_previous_sibling (SidebarBranch* self, SidebarEntry* entry) {
+ SidebarEntry* result = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ SidebarBranchNode* _tmp7_ = NULL;
+ SidebarBranchNode* _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ SidebarBranchNode* _tmp10_ = NULL;
+ GeeSortedSet* _tmp11_ = NULL;
+ SidebarBranchNode* sibling = NULL;
+ SidebarBranchNode* _tmp12_ = NULL;
+ SidebarBranchNode* _tmp13_ = NULL;
+ GeeSortedSet* _tmp14_ = NULL;
+ SidebarBranchNode* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+ SidebarBranchNode* _tmp18_ = NULL;
+ SidebarEntry* _tmp21_ = NULL;
+#line 397 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), NULL);
+#line 397 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 398 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = entry;
+#line 398 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->priv->root;
+#line 398 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _tmp1_->entry;
+#line 398 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == _tmp2_) {
+#line 399 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = NULL;
+#line 399 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1433 "Branch.c"
+ }
+#line 401 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 401 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = entry;
+#line 401 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 401 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp5_;
+#line 402 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = entry_node;
+#line 402 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp6_ != NULL, "entry_node != null");
+#line 403 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = entry_node;
+#line 403 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = _tmp7_->parent;
+#line 403 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp8_ != NULL, "entry_node.parent != null");
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = entry_node;
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _tmp9_->parent;
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _tmp10_->children;
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp11_ != NULL, "entry_node.parent.children != null");
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = entry_node;
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = _tmp12_->parent;
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = _tmp13_->children;
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = entry_node;
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = gee_sorted_set_lower (_tmp14_, _tmp15_);
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sibling = (SidebarBranchNode*) _tmp16_;
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = sibling;
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp18_ != NULL) {
+#line 1477 "Branch.c"
+ SidebarBranchNode* _tmp19_ = NULL;
+ SidebarEntry* _tmp20_ = NULL;
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp19_ = sibling;
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp20_ = _tmp19_->entry;
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = _tmp20_;
+#line 1486 "Branch.c"
+ } else {
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = NULL;
+#line 1490 "Branch.c"
+ }
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp21_ = _g_object_ref0 (_tmp17_);
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp21_;
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (sibling);
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1502 "Branch.c"
+}
+
+
+SidebarEntry* sidebar_branch_get_next_sibling (SidebarBranch* self, SidebarEntry* entry) {
+ SidebarEntry* result = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarBranchNode* entry_node = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ SidebarBranchNode* _tmp7_ = NULL;
+ SidebarBranchNode* _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ SidebarBranchNode* _tmp10_ = NULL;
+ GeeSortedSet* _tmp11_ = NULL;
+ SidebarBranchNode* sibling = NULL;
+ SidebarBranchNode* _tmp12_ = NULL;
+ SidebarBranchNode* _tmp13_ = NULL;
+ GeeSortedSet* _tmp14_ = NULL;
+ SidebarBranchNode* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+ SidebarBranchNode* _tmp18_ = NULL;
+ SidebarEntry* _tmp21_ = NULL;
+#line 412 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_BRANCH (self), NULL);
+#line 412 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 413 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = entry;
+#line 413 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->priv->root;
+#line 413 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = _tmp1_->entry;
+#line 413 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == _tmp2_) {
+#line 414 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = NULL;
+#line 414 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1546 "Branch.c"
+ }
+#line 416 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->priv->map;
+#line 416 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = entry;
+#line 416 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 416 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ entry_node = (SidebarBranchNode*) _tmp5_;
+#line 417 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = entry_node;
+#line 417 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp6_ != NULL, "entry_node != null");
+#line 418 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = entry_node;
+#line 418 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = _tmp7_->parent;
+#line 418 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp8_ != NULL, "entry_node.parent != null");
+#line 419 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = entry_node;
+#line 419 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _tmp9_->parent;
+#line 419 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _tmp10_->children;
+#line 419 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp11_ != NULL, "entry_node.parent.children != null");
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = entry_node;
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = _tmp12_->parent;
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = _tmp13_->children;
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = entry_node;
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = gee_sorted_set_higher (_tmp14_, _tmp15_);
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sibling = (SidebarBranchNode*) _tmp16_;
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = sibling;
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp18_ != NULL) {
+#line 1590 "Branch.c"
+ SidebarBranchNode* _tmp19_ = NULL;
+ SidebarEntry* _tmp20_ = NULL;
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp19_ = sibling;
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp20_ = _tmp19_->entry;
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = _tmp20_;
+#line 1599 "Branch.c"
+ } else {
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = NULL;
+#line 1603 "Branch.c"
+ }
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp21_ = _g_object_ref0 (_tmp17_);
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp21_;
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (sibling);
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (entry_node);
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1615 "Branch.c"
+}
+
+
+static void sidebar_branch_prune_callback (SidebarBranch* self, SidebarBranchNode* node) {
+ SidebarBranchNode* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+#line 426 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 426 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (node));
+#line 427 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = node;
+#line 427 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = _tmp0_->entry;
+#line 427 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_emit_by_name (self, "entry-removed", _tmp1_);
+#line 1632 "Branch.c"
+}
+
+
+static void sidebar_branch_children_reordered_callback (SidebarBranch* self, SidebarBranchNode* node) {
+ SidebarBranchNode* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+#line 430 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (self));
+#line 430 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (node));
+#line 431 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = node;
+#line 431 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = _tmp0_->entry;
+#line 431 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_emit_by_name (self, "children-reordered", _tmp1_);
+#line 1649 "Branch.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ data1 = closure->data;
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 1668 "Branch.c"
+ } else {
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ data2 = closure->data;
+#line 1674 "Branch.c"
+ }
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 1680 "Branch.c"
+}
+
+
+static SidebarBranchNode* sidebar_branch_node_construct (GType object_type, SidebarEntry* entry, SidebarBranchNode* parent, GCompareFunc comparator) {
+ SidebarBranchNode* self = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarBranchNode* _tmp2_ = NULL;
+ GCompareFunc _tmp3_ = NULL;
+#line 45 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 45 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail ((parent == NULL) || SIDEBAR_BRANCH_IS_NODE (parent), NULL);
+#line 45 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self = (SidebarBranchNode*) g_type_create_instance (object_type);
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = entry;
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->entry);
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->entry = _tmp1_;
+#line 47 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = parent;
+#line 47 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->parent = _tmp2_;
+#line 48 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = comparator;
+#line 48 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->comparator = _tmp3_;
+#line 45 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return self;
+#line 1714 "Branch.c"
+}
+
+
+static SidebarBranchNode* sidebar_branch_node_new (SidebarEntry* entry, SidebarBranchNode* parent, GCompareFunc comparator) {
+#line 45 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return sidebar_branch_node_construct (SIDEBAR_BRANCH_TYPE_NODE, entry, parent, comparator);
+#line 1721 "Branch.c"
+}
+
+
+static gint sidebar_branch_node_comparator_wrapper (SidebarBranchNode* anode, SidebarBranchNode* bnode) {
+ gint result = 0;
+ SidebarBranchNode* _tmp0_ = NULL;
+ SidebarBranchNode* _tmp1_ = NULL;
+ SidebarBranchNode* _tmp2_ = NULL;
+ SidebarBranchNode* _tmp3_ = NULL;
+ SidebarBranchNode* _tmp4_ = NULL;
+ SidebarBranchNode* _tmp5_ = NULL;
+ SidebarBranchNode* _tmp6_ = NULL;
+ SidebarBranchNode* _tmp7_ = NULL;
+ GCompareFunc _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ SidebarEntry* _tmp10_ = NULL;
+ SidebarBranchNode* _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+#line 51 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_BRANCH_IS_NODE (anode), 0);
+#line 51 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_BRANCH_IS_NODE (bnode), 0);
+#line 52 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = anode;
+#line 52 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = bnode;
+#line 52 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 53 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = 0;
+#line 53 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1755 "Branch.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = anode;
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = _tmp2_->parent;
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = bnode;
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = _tmp4_->parent;
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp3_ == _tmp5_, "anode.parent == bnode.parent");
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = anode;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = _tmp6_->parent;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = _tmp7_->comparator;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = anode;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _tmp9_->entry;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = bnode;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = _tmp11_->entry;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = _tmp8_ (_tmp10_, _tmp12_);
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp13_;
+#line 57 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1787 "Branch.c"
+}
+
+
+static gboolean sidebar_branch_node_has_children (SidebarBranchNode* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GeeSortedSet* _tmp1_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_BRANCH_IS_NODE (self), FALSE);
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->children;
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp1_ != NULL) {
+#line 1801 "Branch.c"
+ GeeSortedSet* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = self->children;
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = _tmp4_ > 0;
+#line 1813 "Branch.c"
+ } else {
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = FALSE;
+#line 1817 "Branch.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = _tmp0_;
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1823 "Branch.c"
+}
+
+
+static gint _sidebar_branch_node_comparator_wrapper_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = sidebar_branch_node_comparator_wrapper ((SidebarBranchNode*) a, (SidebarBranchNode*) b);
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 1832 "Branch.c"
+}
+
+
+static void sidebar_branch_node_add_child (SidebarBranchNode* self, SidebarBranchNode* child) {
+ SidebarBranchNode* _tmp0_ = NULL;
+ GeeSortedSet* _tmp1_ = NULL;
+ gboolean added = FALSE;
+ GeeSortedSet* _tmp3_ = NULL;
+ SidebarBranchNode* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 64 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (self));
+#line 64 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (child));
+#line 65 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = child;
+#line 65 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_->parent = self;
+#line 67 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->children;
+#line 67 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp1_ == NULL) {
+#line 1855 "Branch.c"
+ GeeTreeSet* _tmp2_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_tree_set_new (SIDEBAR_BRANCH_TYPE_NODE, (GBoxedCopyFunc) sidebar_branch_node_ref, sidebar_branch_node_unref, _sidebar_branch_node_comparator_wrapper_gcompare_data_func, NULL, NULL);
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->children);
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->children = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 1863 "Branch.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->children;
+#line 70 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = child;
+#line 70 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection), _tmp4_);
+#line 70 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ added = _tmp5_;
+#line 71 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (added, "added");
+#line 1875 "Branch.c"
+}
+
+
+static void sidebar_branch_node_remove_child (SidebarBranchNode* self, SidebarBranchNode* child) {
+ GeeSortedSet* _tmp0_ = NULL;
+ GeeSortedSet* new_children = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+ gboolean found = FALSE;
+ gboolean _tmp12_ = FALSE;
+ GeeSortedSet* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ SidebarBranchNode* _tmp18_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (self));
+#line 74 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (child));
+#line 75 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->children;
+#line 75 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp0_ != NULL, "children != null");
+#line 77 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = gee_tree_set_new (SIDEBAR_BRANCH_TYPE_NODE, (GBoxedCopyFunc) sidebar_branch_node_ref, sidebar_branch_node_unref, _sidebar_branch_node_comparator_wrapper_gcompare_data_func, NULL, NULL);
+#line 77 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ new_children = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 81 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ found = FALSE;
+#line 1903 "Branch.c"
+ {
+ GeeIterator* _c_it = NULL;
+ GeeSortedSet* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = self->children;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _c_it = _tmp3_;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 1916 "Branch.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ SidebarBranchNode* c = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ SidebarBranchNode* _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = _c_it;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp5_) {
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 1932 "Branch.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = _c_it;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ c = (SidebarBranchNode*) _tmp7_;
+#line 83 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = c;
+#line 83 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = child;
+#line 83 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp8_ != _tmp9_) {
+#line 1946 "Branch.c"
+ GeeSortedSet* _tmp10_ = NULL;
+ SidebarBranchNode* _tmp11_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = new_children;
+#line 84 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = c;
+#line 84 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection), _tmp11_);
+#line 1955 "Branch.c"
+ } else {
+#line 86 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ found = TRUE;
+#line 1959 "Branch.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (c);
+#line 1963 "Branch.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_c_it);
+#line 1967 "Branch.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = found;
+#line 89 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp12_, "found");
+#line 91 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = new_children;
+#line 91 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 91 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = _tmp14_;
+#line 91 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp15_ != 0) {
+#line 1981 "Branch.c"
+ GeeSortedSet* _tmp16_ = NULL;
+ GeeSortedSet* _tmp17_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = new_children;
+#line 92 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = _g_object_ref0 (_tmp16_);
+#line 92 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->children);
+#line 92 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->children = _tmp17_;
+#line 1992 "Branch.c"
+ } else {
+#line 94 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->children);
+#line 94 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->children = NULL;
+#line 1998 "Branch.c"
+ }
+#line 96 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = child;
+#line 96 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_->parent = NULL;
+#line 74 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (new_children);
+#line 2006 "Branch.c"
+}
+
+
+static void sidebar_branch_node_prune_children (SidebarBranchNode* self, SidebarBranchNodePruneCallback cb, void* cb_target) {
+ GeeSortedSet* _tmp0_ = NULL;
+ GeeSortedSet* old_children = NULL;
+ GeeSortedSet* _tmp9_ = NULL;
+ GeeSortedSet* _tmp10_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (self));
+#line 100 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->children;
+#line 100 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == NULL) {
+#line 101 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return;
+#line 2023 "Branch.c"
+ }
+ {
+ GeeIterator* _child_it = NULL;
+ GeeSortedSet* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->children;
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _child_it = _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 2037 "Branch.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ SidebarBranchNode* child = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ SidebarBranchNode* _tmp7_ = NULL;
+ SidebarBranchNodePruneCallback _tmp8_ = NULL;
+ void* _tmp8__target = NULL;
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = _child_it;
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp4_) {
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 2054 "Branch.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = _child_it;
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ child = (SidebarBranchNode*) _tmp6_;
+#line 104 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = child;
+#line 104 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = cb;
+#line 104 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8__target = cb_target;
+#line 104 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_prune_children (_tmp7_, _tmp8_, _tmp8__target);
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (child);
+#line 2072 "Branch.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_child_it);
+#line 2076 "Branch.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = self->children;
+#line 106 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = _g_object_ref0 (_tmp9_);
+#line 106 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ old_children = _tmp10_;
+#line 107 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->children);
+#line 107 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->children = NULL;
+#line 2088 "Branch.c"
+ {
+ GeeIterator* _child_it = NULL;
+ GeeSortedSet* _tmp11_ = NULL;
+ GeeIterator* _tmp12_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = old_children;
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _child_it = _tmp12_;
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 2101 "Branch.c"
+ GeeIterator* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ SidebarBranchNode* child = NULL;
+ GeeIterator* _tmp15_ = NULL;
+ gpointer _tmp16_ = NULL;
+ SidebarBranchNodePruneCallback _tmp17_ = NULL;
+ void* _tmp17__target = NULL;
+ SidebarBranchNode* _tmp18_ = NULL;
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = _child_it;
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = gee_iterator_next (_tmp13_);
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp14_) {
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 2118 "Branch.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = _child_it;
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp16_ = gee_iterator_get (_tmp15_);
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ child = (SidebarBranchNode*) _tmp16_;
+#line 113 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ = cb;
+#line 113 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17__target = cb_target;
+#line 113 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp18_ = child;
+#line 113 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp17_ (_tmp18_, _tmp17__target);
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (child);
+#line 2136 "Branch.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_child_it);
+#line 2140 "Branch.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (old_children);
+#line 2144 "Branch.c"
+}
+
+
+static gint sidebar_branch_node_index_of_by_reference (SidebarBranchNode* self, SidebarBranchNode* child) {
+ gint result = 0;
+ GeeSortedSet* _tmp0_ = NULL;
+ gint index = 0;
+#line 118 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_BRANCH_IS_NODE (self), 0);
+#line 118 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_BRANCH_IS_NODE (child), 0);
+#line 119 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->children;
+#line 119 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == NULL) {
+#line 120 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = -1;
+#line 120 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 2164 "Branch.c"
+ }
+#line 122 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ index = 0;
+#line 2168 "Branch.c"
+ {
+ GeeIterator* _c_it = NULL;
+ GeeSortedSet* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = self->children;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _c_it = _tmp2_;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 2181 "Branch.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ SidebarBranchNode* c = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ SidebarBranchNode* _tmp7_ = NULL;
+ SidebarBranchNode* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = _c_it;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp4_) {
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 2198 "Branch.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = _c_it;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ c = (SidebarBranchNode*) _tmp6_;
+#line 124 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = child;
+#line 124 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = c;
+#line 124 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp7_ == _tmp8_) {
+#line 125 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = index;
+#line 125 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (c);
+#line 125 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_c_it);
+#line 125 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 2220 "Branch.c"
+ }
+#line 127 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = index;
+#line 127 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ index = _tmp9_ + 1;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (c);
+#line 2228 "Branch.c"
+ }
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_c_it);
+#line 2232 "Branch.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = -1;
+#line 130 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 2238 "Branch.c"
+}
+
+
+static gboolean sidebar_branch_node_reorder_child (SidebarBranchNode* self, SidebarBranchNode* child) {
+ gboolean result = FALSE;
+ GeeSortedSet* _tmp0_ = NULL;
+ gint old_index = 0;
+ SidebarBranchNode* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ GeeSortedSet* new_children = NULL;
+ GeeTreeSet* _tmp3_ = NULL;
+ gboolean added = FALSE;
+ GeeSortedSet* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeSortedSet* _tmp6_ = NULL;
+ gint new_index = 0;
+ SidebarBranchNode* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+#line 134 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_BRANCH_IS_NODE (self), FALSE);
+#line 134 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_BRANCH_IS_NODE (child), FALSE);
+#line 135 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->children;
+#line 135 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (_tmp0_ != NULL, "children != null");
+#line 137 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = child;
+#line 137 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = sidebar_branch_node_index_of_by_reference (self, _tmp1_);
+#line 137 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ old_index = _tmp2_;
+#line 138 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (old_index >= 0, "old_index >= 0");
+#line 146 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = gee_tree_set_new (SIDEBAR_BRANCH_TYPE_NODE, (GBoxedCopyFunc) sidebar_branch_node_ref, sidebar_branch_node_unref, _sidebar_branch_node_comparator_wrapper_gcompare_data_func, NULL, NULL);
+#line 146 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ new_children = G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 147 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = self->children;
+#line 147 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (new_children, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 147 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ added = _tmp5_;
+#line 148 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (added, "added");
+#line 150 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = _g_object_ref0 (new_children);
+#line 150 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->children);
+#line 150 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->children = _tmp6_;
+#line 152 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = child;
+#line 152 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = sidebar_branch_node_index_of_by_reference (self, _tmp7_);
+#line 152 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ new_index = _tmp8_;
+#line 153 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _vala_assert (new_index >= 0, "new_index >= 0");
+#line 155 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ result = old_index != new_index;
+#line 155 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (new_children);
+#line 155 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return result;
+#line 2305 "Branch.c"
+}
+
+
+static void sidebar_branch_node_reorder_children (SidebarBranchNode* self, gboolean recursive, SidebarBranchNodeChildrenReorderedCallback cb, void* cb_target) {
+ GeeSortedSet* _tmp0_ = NULL;
+ GeeSortedSet* reordered = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+ GeeSortedSet* _tmp2_ = NULL;
+ GeeSortedSet* _tmp3_ = NULL;
+ GeeSortedSet* _tmp4_ = NULL;
+ GeeSortedSet* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ SidebarBranchNodeChildrenReorderedCallback _tmp15_ = NULL;
+ void* _tmp15__target = NULL;
+#line 158 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (self));
+#line 159 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = self->children;
+#line 159 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp0_ == NULL) {
+#line 160 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return;
+#line 2328 "Branch.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = gee_tree_set_new (SIDEBAR_BRANCH_TYPE_NODE, (GBoxedCopyFunc) sidebar_branch_node_ref, sidebar_branch_node_unref, _sidebar_branch_node_comparator_wrapper_gcompare_data_func, NULL, NULL);
+#line 162 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ reordered = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 163 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = reordered;
+#line 163 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->children;
+#line 163 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 164 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = reordered;
+#line 164 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 164 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->children);
+#line 164 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->children = _tmp5_;
+#line 166 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = recursive;
+#line 166 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp6_) {
+#line 2352 "Branch.c"
+ {
+ GeeIterator* _child_it = NULL;
+ GeeSortedSet* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = self->children;
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _child_it = _tmp8_;
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 2365 "Branch.c"
+ GeeIterator* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ SidebarBranchNode* child = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ SidebarBranchNode* _tmp13_ = NULL;
+ SidebarBranchNodeChildrenReorderedCallback _tmp14_ = NULL;
+ void* _tmp14__target = NULL;
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = _child_it;
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = gee_iterator_next (_tmp9_);
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp10_) {
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 2382 "Branch.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = _child_it;
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp12_ = gee_iterator_get (_tmp11_);
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ child = (SidebarBranchNode*) _tmp12_;
+#line 168 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp13_ = child;
+#line 168 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14_ = cb;
+#line 168 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp14__target = cb_target;
+#line 168 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_reorder_children (_tmp13_, TRUE, _tmp14_, _tmp14__target);
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (child);
+#line 2400 "Branch.c"
+ }
+#line 167 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_child_it);
+#line 2404 "Branch.c"
+ }
+ }
+#line 171 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ = cb;
+#line 171 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15__target = cb_target;
+#line 171 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp15_ (self, _tmp15__target);
+#line 158 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (reordered);
+#line 2415 "Branch.c"
+}
+
+
+static void sidebar_branch_node_change_comparator (SidebarBranchNode* self, GCompareFunc comparator, gboolean recursive, SidebarBranchNodeChildrenReorderedCallback cb, void* cb_target) {
+ GCompareFunc _tmp0_ = NULL;
+ SidebarBranchNodeChildrenReorderedCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 174 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (SIDEBAR_BRANCH_IS_NODE (self));
+#line 176 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = comparator;
+#line 176 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->comparator = _tmp0_;
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1_ = cb;
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp1__target = cb_target;
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_reorder_children (self, FALSE, _tmp1_, _tmp1__target);
+#line 181 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp2_ = recursive;
+#line 181 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (_tmp2_) {
+#line 2440 "Branch.c"
+ {
+ GeeIterator* _child_it = NULL;
+ GeeSortedSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp3_ = self->children;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _child_it = _tmp4_;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ while (TRUE) {
+#line 2453 "Branch.c"
+ GeeIterator* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ SidebarBranchNode* child = NULL;
+ GeeIterator* _tmp7_ = NULL;
+ gpointer _tmp8_ = NULL;
+ SidebarBranchNode* _tmp9_ = NULL;
+ GCompareFunc _tmp10_ = NULL;
+ SidebarBranchNodeChildrenReorderedCallback _tmp11_ = NULL;
+ void* _tmp11__target = NULL;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp5_ = _child_it;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp6_ = gee_iterator_next (_tmp5_);
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!_tmp6_) {
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ break;
+#line 2471 "Branch.c"
+ }
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp7_ = _child_it;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp8_ = gee_iterator_get (_tmp7_);
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ child = (SidebarBranchNode*) _tmp8_;
+#line 183 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp9_ = child;
+#line 183 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp10_ = comparator;
+#line 183 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11_ = cb;
+#line 183 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp11__target = cb_target;
+#line 183 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_change_comparator (_tmp9_, _tmp10_, TRUE, _tmp11_, _tmp11__target);
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (child);
+#line 2491 "Branch.c"
+ }
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (_child_it);
+#line 2495 "Branch.c"
+ }
+ }
+}
+
+
+static void sidebar_branch_value_node_init (GValue* value) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ value->data[0].v_pointer = NULL;
+#line 2504 "Branch.c"
+}
+
+
+static void sidebar_branch_value_node_free_value (GValue* value) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (value->data[0].v_pointer) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_unref (value->data[0].v_pointer);
+#line 2513 "Branch.c"
+ }
+}
+
+
+static void sidebar_branch_value_node_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (src_value->data[0].v_pointer) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ dest_value->data[0].v_pointer = sidebar_branch_node_ref (src_value->data[0].v_pointer);
+#line 2523 "Branch.c"
+ } else {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2527 "Branch.c"
+ }
+}
+
+
+static gpointer sidebar_branch_value_node_peek_pointer (const GValue* value) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return value->data[0].v_pointer;
+#line 2535 "Branch.c"
+}
+
+
+static gchar* sidebar_branch_value_node_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (collect_values[0].v_pointer) {
+#line 2542 "Branch.c"
+ SidebarBranchNode* object;
+ object = collect_values[0].v_pointer;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2549 "Branch.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2553 "Branch.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ value->data[0].v_pointer = sidebar_branch_node_ref (object);
+#line 2557 "Branch.c"
+ } else {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ value->data[0].v_pointer = NULL;
+#line 2561 "Branch.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return NULL;
+#line 2565 "Branch.c"
+}
+
+
+static gchar* sidebar_branch_value_node_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ SidebarBranchNode** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!object_p) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2576 "Branch.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (!value->data[0].v_pointer) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ *object_p = NULL;
+#line 2582 "Branch.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2586 "Branch.c"
+ } else {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ *object_p = sidebar_branch_node_ref (value->data[0].v_pointer);
+#line 2590 "Branch.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return NULL;
+#line 2594 "Branch.c"
+}
+
+
+static GParamSpec* sidebar_branch_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ SidebarBranchParamSpecNode* spec;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, SIDEBAR_BRANCH_TYPE_NODE), NULL);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return G_PARAM_SPEC (spec);
+#line 2608 "Branch.c"
+}
+
+
+static gpointer sidebar_branch_value_get_node (const GValue* value) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SIDEBAR_BRANCH_TYPE_NODE), NULL);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return value->data[0].v_pointer;
+#line 2617 "Branch.c"
+}
+
+
+static void sidebar_branch_value_set_node (GValue* value, gpointer v_object) {
+ SidebarBranchNode* old;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SIDEBAR_BRANCH_TYPE_NODE));
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ old = value->data[0].v_pointer;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (v_object) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SIDEBAR_BRANCH_TYPE_NODE));
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ value->data[0].v_pointer = v_object;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_ref (value->data[0].v_pointer);
+#line 2637 "Branch.c"
+ } else {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ value->data[0].v_pointer = NULL;
+#line 2641 "Branch.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (old) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_unref (old);
+#line 2647 "Branch.c"
+ }
+}
+
+
+static void sidebar_branch_value_take_node (GValue* value, gpointer v_object) {
+ SidebarBranchNode* old;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, SIDEBAR_BRANCH_TYPE_NODE));
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ old = value->data[0].v_pointer;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (v_object) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, SIDEBAR_BRANCH_TYPE_NODE));
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ value->data[0].v_pointer = v_object;
+#line 2666 "Branch.c"
+ } else {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ value->data[0].v_pointer = NULL;
+#line 2670 "Branch.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (old) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_unref (old);
+#line 2676 "Branch.c"
+ }
+}
+
+
+static void sidebar_branch_node_class_init (SidebarBranchNodeClass * klass) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_node_parent_class = g_type_class_peek_parent (klass);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ ((SidebarBranchNodeClass *) klass)->finalize = sidebar_branch_node_finalize;
+#line 2686 "Branch.c"
+}
+
+
+static void sidebar_branch_node_instance_init (SidebarBranchNode * self) {
+#line 43 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->children = NULL;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->ref_count = 1;
+#line 2695 "Branch.c"
+}
+
+
+static void sidebar_branch_node_finalize (SidebarBranchNode* obj) {
+ SidebarBranchNode * self;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_BRANCH_TYPE_NODE, SidebarBranchNode);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_handlers_destroy (self);
+#line 40 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->entry);
+#line 43 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->children);
+#line 2709 "Branch.c"
+}
+
+
+static GType sidebar_branch_node_get_type (void) {
+ static volatile gsize sidebar_branch_node_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_branch_node_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { sidebar_branch_value_node_init, sidebar_branch_value_node_free_value, sidebar_branch_value_node_copy_value, sidebar_branch_value_node_peek_pointer, "p", sidebar_branch_value_node_collect_value, "p", sidebar_branch_value_node_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarBranchNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_branch_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarBranchNode), 0, (GInstanceInitFunc) sidebar_branch_node_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType sidebar_branch_node_type_id;
+ sidebar_branch_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "SidebarBranchNode", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&sidebar_branch_node_type_id__volatile, sidebar_branch_node_type_id);
+ }
+ return sidebar_branch_node_type_id__volatile;
+}
+
+
+static gpointer sidebar_branch_node_ref (gpointer instance) {
+ SidebarBranchNode* self;
+ self = instance;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ return instance;
+#line 2734 "Branch.c"
+}
+
+
+static void sidebar_branch_node_unref (gpointer instance) {
+ SidebarBranchNode* self;
+ self = instance;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ SIDEBAR_BRANCH_NODE_GET_CLASS (self)->finalize (self);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2747 "Branch.c"
+ }
+}
+
+
+static void sidebar_branch_class_init (SidebarBranchClass * klass) {
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ sidebar_branch_parent_class = g_type_class_peek_parent (klass);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_type_class_add_private (klass, sizeof (SidebarBranchPrivate));
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = sidebar_branch_finalize;
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_new ("entry_added", SIDEBAR_TYPE_BRANCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_ENTRY);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_new ("entry_removed", SIDEBAR_TYPE_BRANCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_ENTRY);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_new ("entry_moved", SIDEBAR_TYPE_BRANCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_ENTRY);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_new ("entry_reparented", SIDEBAR_TYPE_BRANCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, SIDEBAR_TYPE_ENTRY, SIDEBAR_TYPE_ENTRY);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_new ("children_reordered", SIDEBAR_TYPE_BRANCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_ENTRY);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ g_signal_new ("show_branch", SIDEBAR_TYPE_BRANCH, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 2771 "Branch.c"
+}
+
+
+static void sidebar_branch_instance_init (SidebarBranch * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->priv = SIDEBAR_BRANCH_GET_PRIVATE (self);
+#line 190 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->priv->shown = TRUE;
+#line 192 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _tmp0_ = gee_hash_map_new (SIDEBAR_TYPE_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, SIDEBAR_BRANCH_TYPE_NODE, (GBoxedCopyFunc) sidebar_branch_node_ref, sidebar_branch_node_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 192 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self->priv->map = _tmp0_;
+#line 2785 "Branch.c"
+}
+
+
+static void sidebar_branch_finalize (GObject* obj) {
+ SidebarBranch * self;
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_TYPE_BRANCH, SidebarBranch);
+#line 188 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _sidebar_branch_node_unref0 (self->priv->root);
+#line 192 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ _g_object_unref0 (self->priv->map);
+#line 9 "/home/jens/Source/shotwell/src/sidebar/Branch.vala"
+ G_OBJECT_CLASS (sidebar_branch_parent_class)->finalize (obj);
+#line 2799 "Branch.c"
+}
+
+
+GType sidebar_branch_get_type (void) {
+ static volatile gsize sidebar_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarBranch), 0, (GInstanceInitFunc) sidebar_branch_instance_init, NULL };
+ GType sidebar_branch_type_id;
+ sidebar_branch_type_id = g_type_register_static (G_TYPE_OBJECT, "SidebarBranch", &g_define_type_info, 0);
+ g_once_init_leave (&sidebar_branch_type_id__volatile, sidebar_branch_type_id);
+ }
+ return sidebar_branch_type_id__volatile;
+}
+
+
+
diff --git a/src/sidebar/Entry.c b/src/sidebar/Entry.c
new file mode 100644
index 0000000..caa621c
--- /dev/null
+++ b/src/sidebar/Entry.c
@@ -0,0 +1,639 @@
+/* Entry.c generated by valac 0.32.1, the Vala compiler
+ * generated from Entry.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gee.h>
+
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+
+#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
+#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
+#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
+#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))
+
+typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
+typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
+
+#define SIDEBAR_TYPE_DESTROYABLE_ENTRY (sidebar_destroyable_entry_get_type ())
+#define SIDEBAR_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntry))
+#define SIDEBAR_IS_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY))
+#define SIDEBAR_DESTROYABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntryIface))
+
+typedef struct _SidebarDestroyableEntry SidebarDestroyableEntry;
+typedef struct _SidebarDestroyableEntryIface SidebarDestroyableEntryIface;
+
+#define SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY (sidebar_internal_drop_target_entry_get_type ())
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntry))
+#define SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY))
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntryIface))
+
+typedef struct _SidebarInternalDropTargetEntry SidebarInternalDropTargetEntry;
+typedef struct _SidebarInternalDropTargetEntryIface SidebarInternalDropTargetEntryIface;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY (sidebar_internal_drag_source_entry_get_type ())
+#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntry))
+#define SIDEBAR_IS_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY))
+#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntryIface))
+
+typedef struct _SidebarInternalDragSourceEntry SidebarInternalDragSourceEntry;
+typedef struct _SidebarInternalDragSourceEntryIface SidebarInternalDragSourceEntryIface;
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _SidebarEmphasizableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
+};
+
+struct _SidebarDestroyableEntryIface {
+ GTypeInterface parent_iface;
+ void (*destroy_source) (SidebarDestroyableEntry* self);
+};
+
+struct _SidebarInternalDropTargetEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*internal_drop_received) (SidebarInternalDropTargetEntry* self, GeeList* sources);
+ gboolean (*internal_drop_received_arbitrary) (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+};
+
+struct _SidebarInternalDragSourceEntryIface {
+ GTypeInterface parent_iface;
+ void (*prepare_selection_data) (SidebarInternalDragSourceEntry* self, GtkSelectionData* data);
+};
+
+
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+gchar* sidebar_entry_get_sidebar_name (SidebarEntry* self);
+gchar* sidebar_entry_get_sidebar_tooltip (SidebarEntry* self);
+gchar* sidebar_entry_get_sidebar_icon (SidebarEntry* self);
+gchar* sidebar_entry_to_string (SidebarEntry* self);
+void sidebar_entry_grafted (SidebarEntry* self, SidebarTree* tree);
+static void sidebar_entry_real_grafted (SidebarEntry* self, SidebarTree* tree);
+void sidebar_entry_pruned (SidebarEntry* self, SidebarTree* tree);
+static void sidebar_entry_real_pruned (SidebarEntry* self, SidebarTree* tree);
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+gboolean sidebar_expandable_entry_expand_on_select (SidebarExpandableEntry* self);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+gboolean sidebar_page_representative_has_page (SidebarPageRepresentative* self);
+Page* sidebar_page_representative_get_page (SidebarPageRepresentative* self);
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+void sidebar_renameable_entry_rename (SidebarRenameableEntry* self, const gchar* new_name);
+gboolean sidebar_renameable_entry_is_user_renameable (SidebarRenameableEntry* self);
+GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST;
+gboolean sidebar_emphasizable_entry_is_emphasized (SidebarEmphasizableEntry* self);
+GType sidebar_destroyable_entry_get_type (void) G_GNUC_CONST;
+void sidebar_destroyable_entry_destroy_source (SidebarDestroyableEntry* self);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType sidebar_internal_drop_target_entry_get_type (void) G_GNUC_CONST;
+gboolean sidebar_internal_drop_target_entry_internal_drop_received (SidebarInternalDropTargetEntry* self, GeeList* sources);
+gboolean sidebar_internal_drop_target_entry_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+GType sidebar_internal_drag_source_entry_get_type (void) G_GNUC_CONST;
+void sidebar_internal_drag_source_entry_prepare_selection_data (SidebarInternalDragSourceEntry* self, GtkSelectionData* data);
+
+
+gchar* sidebar_entry_get_sidebar_name (SidebarEntry* self) {
+#line 12 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
+#line 12 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_ENTRY_GET_INTERFACE (self)->get_sidebar_name (self);
+#line 245 "Entry.c"
+}
+
+
+gchar* sidebar_entry_get_sidebar_tooltip (SidebarEntry* self) {
+#line 14 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
+#line 14 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_ENTRY_GET_INTERFACE (self)->get_sidebar_tooltip (self);
+#line 254 "Entry.c"
+}
+
+
+gchar* sidebar_entry_get_sidebar_icon (SidebarEntry* self) {
+#line 16 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
+#line 16 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_ENTRY_GET_INTERFACE (self)->get_sidebar_icon (self);
+#line 263 "Entry.c"
+}
+
+
+gchar* sidebar_entry_to_string (SidebarEntry* self) {
+#line 18 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (self), NULL);
+#line 18 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_ENTRY_GET_INTERFACE (self)->to_string (self);
+#line 272 "Entry.c"
+}
+
+
+static void sidebar_entry_real_grafted (SidebarEntry* self, SidebarTree* tree) {
+#line 20 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (tree));
+#line 279 "Entry.c"
+}
+
+
+void sidebar_entry_grafted (SidebarEntry* self, SidebarTree* tree) {
+#line 20 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (self));
+#line 20 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ SIDEBAR_ENTRY_GET_INTERFACE (self)->grafted (self, tree);
+#line 288 "Entry.c"
+}
+
+
+static void sidebar_entry_real_pruned (SidebarEntry* self, SidebarTree* tree) {
+#line 23 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (tree));
+#line 295 "Entry.c"
+}
+
+
+void sidebar_entry_pruned (SidebarEntry* self, SidebarTree* tree) {
+#line 23 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (self));
+#line 23 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ SIDEBAR_ENTRY_GET_INTERFACE (self)->pruned (self, tree);
+#line 304 "Entry.c"
+}
+
+
+static void sidebar_entry_base_init (SidebarEntryIface * iface) {
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_signal_new ("sidebar_tooltip_changed", SIDEBAR_TYPE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_signal_new ("sidebar_icon_changed", SIDEBAR_TYPE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ iface->grafted = sidebar_entry_real_grafted;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ iface->pruned = sidebar_entry_real_pruned;
+#line 323 "Entry.c"
+ }
+}
+
+
+GType sidebar_entry_get_type (void) {
+ static volatile gsize sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarEntryIface), (GBaseInitFunc) sidebar_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_entry_type_id;
+ sidebar_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_entry_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&sidebar_entry_type_id__volatile, sidebar_entry_type_id);
+ }
+ return sidebar_entry_type_id__volatile;
+}
+
+
+gboolean sidebar_expandable_entry_expand_on_select (SidebarExpandableEntry* self) {
+#line 28 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_EXPANDABLE_ENTRY (self), FALSE);
+#line 28 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE (self)->expand_on_select (self);
+#line 346 "Entry.c"
+}
+
+
+static void sidebar_expandable_entry_base_init (SidebarExpandableEntryIface * iface) {
+#line 27 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 27 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 27 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 357 "Entry.c"
+ }
+}
+
+
+GType sidebar_expandable_entry_get_type (void) {
+ static volatile gsize sidebar_expandable_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_expandable_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarExpandableEntryIface), (GBaseInitFunc) sidebar_expandable_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_expandable_entry_type_id;
+ sidebar_expandable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarExpandableEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_expandable_entry_type_id, SIDEBAR_TYPE_ENTRY);
+ g_once_init_leave (&sidebar_expandable_entry_type_id__volatile, sidebar_expandable_entry_type_id);
+ }
+ return sidebar_expandable_entry_type_id__volatile;
+}
+
+
+static void sidebar_selectable_entry_base_init (SidebarSelectableEntryIface * iface) {
+#line 31 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 31 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 382 "Entry.c"
+ }
+}
+
+
+GType sidebar_selectable_entry_get_type (void) {
+ static volatile gsize sidebar_selectable_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_selectable_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarSelectableEntryIface), (GBaseInitFunc) sidebar_selectable_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_selectable_entry_type_id;
+ sidebar_selectable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarSelectableEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_selectable_entry_type_id, SIDEBAR_TYPE_ENTRY);
+ g_once_init_leave (&sidebar_selectable_entry_type_id__volatile, sidebar_selectable_entry_type_id);
+ }
+ return sidebar_selectable_entry_type_id__volatile;
+}
+
+
+gboolean sidebar_page_representative_has_page (SidebarPageRepresentative* self) {
+#line 41 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (self), FALSE);
+#line 41 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE (self)->has_page (self);
+#line 405 "Entry.c"
+}
+
+
+Page* sidebar_page_representative_get_page (SidebarPageRepresentative* self) {
+#line 43 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (self), NULL);
+#line 43 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE (self)->get_page (self);
+#line 414 "Entry.c"
+}
+
+
+static void sidebar_page_representative_base_init (SidebarPageRepresentativeIface * iface) {
+#line 34 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 34 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 34 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 34 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_signal_new ("page_created", SIDEBAR_TYPE_PAGE_REPRESENTATIVE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_PAGE);
+#line 34 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_signal_new ("destroying_page", SIDEBAR_TYPE_PAGE_REPRESENTATIVE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TYPE_PAGE);
+#line 429 "Entry.c"
+ }
+}
+
+
+GType sidebar_page_representative_get_type (void) {
+ static volatile gsize sidebar_page_representative_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_page_representative_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarPageRepresentativeIface), (GBaseInitFunc) sidebar_page_representative_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_page_representative_type_id;
+ sidebar_page_representative_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarPageRepresentative", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_page_representative_type_id, SIDEBAR_TYPE_ENTRY);
+ g_type_interface_add_prerequisite (sidebar_page_representative_type_id, SIDEBAR_TYPE_SELECTABLE_ENTRY);
+ g_once_init_leave (&sidebar_page_representative_type_id__volatile, sidebar_page_representative_type_id);
+ }
+ return sidebar_page_representative_type_id__volatile;
+}
+
+
+void sidebar_renameable_entry_rename (SidebarRenameableEntry* self, const gchar* new_name) {
+#line 49 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_if_fail (SIDEBAR_IS_RENAMEABLE_ENTRY (self));
+#line 49 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE (self)->rename (self, new_name);
+#line 453 "Entry.c"
+}
+
+
+gboolean sidebar_renameable_entry_is_user_renameable (SidebarRenameableEntry* self) {
+#line 52 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_RENAMEABLE_ENTRY (self), FALSE);
+#line 52 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE (self)->is_user_renameable (self);
+#line 462 "Entry.c"
+}
+
+
+static void sidebar_renameable_entry_base_init (SidebarRenameableEntryIface * iface) {
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 46 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_signal_new ("sidebar_name_changed", SIDEBAR_TYPE_RENAMEABLE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
+#line 475 "Entry.c"
+ }
+}
+
+
+GType sidebar_renameable_entry_get_type (void) {
+ static volatile gsize sidebar_renameable_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_renameable_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarRenameableEntryIface), (GBaseInitFunc) sidebar_renameable_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_renameable_entry_type_id;
+ sidebar_renameable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarRenameableEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_renameable_entry_type_id, SIDEBAR_TYPE_ENTRY);
+ g_once_init_leave (&sidebar_renameable_entry_type_id__volatile, sidebar_renameable_entry_type_id);
+ }
+ return sidebar_renameable_entry_type_id__volatile;
+}
+
+
+gboolean sidebar_emphasizable_entry_is_emphasized (SidebarEmphasizableEntry* self) {
+#line 58 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_EMPHASIZABLE_ENTRY (self), FALSE);
+#line 58 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE (self)->is_emphasized (self);
+#line 498 "Entry.c"
+}
+
+
+static void sidebar_emphasizable_entry_base_init (SidebarEmphasizableEntryIface * iface) {
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_signal_new ("is_emphasized_changed", SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+#line 511 "Entry.c"
+ }
+}
+
+
+GType sidebar_emphasizable_entry_get_type (void) {
+ static volatile gsize sidebar_emphasizable_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_emphasizable_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarEmphasizableEntryIface), (GBaseInitFunc) sidebar_emphasizable_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_emphasizable_entry_type_id;
+ sidebar_emphasizable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarEmphasizableEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_emphasizable_entry_type_id, SIDEBAR_TYPE_ENTRY);
+ g_once_init_leave (&sidebar_emphasizable_entry_type_id__volatile, sidebar_emphasizable_entry_type_id);
+ }
+ return sidebar_emphasizable_entry_type_id__volatile;
+}
+
+
+void sidebar_destroyable_entry_destroy_source (SidebarDestroyableEntry* self) {
+#line 62 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_if_fail (SIDEBAR_IS_DESTROYABLE_ENTRY (self));
+#line 62 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ SIDEBAR_DESTROYABLE_ENTRY_GET_INTERFACE (self)->destroy_source (self);
+#line 534 "Entry.c"
+}
+
+
+static void sidebar_destroyable_entry_base_init (SidebarDestroyableEntryIface * iface) {
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 61 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 545 "Entry.c"
+ }
+}
+
+
+GType sidebar_destroyable_entry_get_type (void) {
+ static volatile gsize sidebar_destroyable_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_destroyable_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarDestroyableEntryIface), (GBaseInitFunc) sidebar_destroyable_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_destroyable_entry_type_id;
+ sidebar_destroyable_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarDestroyableEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_destroyable_entry_type_id, SIDEBAR_TYPE_ENTRY);
+ g_once_init_leave (&sidebar_destroyable_entry_type_id__volatile, sidebar_destroyable_entry_type_id);
+ }
+ return sidebar_destroyable_entry_type_id__volatile;
+}
+
+
+gboolean sidebar_internal_drop_target_entry_internal_drop_received (SidebarInternalDropTargetEntry* self, GeeList* sources) {
+#line 67 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY (self), FALSE);
+#line 67 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE (self)->internal_drop_received (self, sources);
+#line 568 "Entry.c"
+}
+
+
+gboolean sidebar_internal_drop_target_entry_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* self, GtkSelectionData* data) {
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_val_if_fail (SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY (self), FALSE);
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ return SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE (self)->internal_drop_received_arbitrary (self, data);
+#line 577 "Entry.c"
+}
+
+
+static void sidebar_internal_drop_target_entry_base_init (SidebarInternalDropTargetEntryIface * iface) {
+#line 65 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 65 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 65 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 588 "Entry.c"
+ }
+}
+
+
+GType sidebar_internal_drop_target_entry_get_type (void) {
+ static volatile gsize sidebar_internal_drop_target_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_internal_drop_target_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarInternalDropTargetEntryIface), (GBaseInitFunc) sidebar_internal_drop_target_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_internal_drop_target_entry_type_id;
+ sidebar_internal_drop_target_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarInternalDropTargetEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_internal_drop_target_entry_type_id, SIDEBAR_TYPE_ENTRY);
+ g_once_init_leave (&sidebar_internal_drop_target_entry_type_id__volatile, sidebar_internal_drop_target_entry_type_id);
+ }
+ return sidebar_internal_drop_target_entry_type_id__volatile;
+}
+
+
+void sidebar_internal_drag_source_entry_prepare_selection_data (SidebarInternalDragSourceEntry* self, GtkSelectionData* data) {
+#line 72 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ g_return_if_fail (SIDEBAR_IS_INTERNAL_DRAG_SOURCE_ENTRY (self));
+#line 72 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY_GET_INTERFACE (self)->prepare_selection_data (self, data);
+#line 611 "Entry.c"
+}
+
+
+static void sidebar_internal_drag_source_entry_base_init (SidebarInternalDragSourceEntryIface * iface) {
+#line 71 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ static gboolean initialized = FALSE;
+#line 71 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ if (!initialized) {
+#line 71 "/home/jens/Source/shotwell/src/sidebar/Entry.vala"
+ initialized = TRUE;
+#line 622 "Entry.c"
+ }
+}
+
+
+GType sidebar_internal_drag_source_entry_get_type (void) {
+ static volatile gsize sidebar_internal_drag_source_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_internal_drag_source_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarInternalDragSourceEntryIface), (GBaseInitFunc) sidebar_internal_drag_source_entry_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_internal_drag_source_entry_type_id;
+ sidebar_internal_drag_source_entry_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarInternalDragSourceEntry", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_internal_drag_source_entry_type_id, SIDEBAR_TYPE_ENTRY);
+ g_once_init_leave (&sidebar_internal_drag_source_entry_type_id__volatile, sidebar_internal_drag_source_entry_type_id);
+ }
+ return sidebar_internal_drag_source_entry_type_id__volatile;
+}
+
+
+
diff --git a/src/sidebar/Sidebar.c b/src/sidebar/Sidebar.c
new file mode 100644
index 0000000..888a70c
--- /dev/null
+++ b/src/sidebar/Sidebar.c
@@ -0,0 +1,28 @@
+/* Sidebar.c generated by valac 0.32.1, the Vala compiler
+ * generated from Sidebar.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void sidebar_init (GError** error);
+void sidebar_terminate (void);
+
+
+void sidebar_init (GError** error) {
+}
+
+
+void sidebar_terminate (void) {
+}
+
+
+
diff --git a/src/sidebar/Tree.c b/src/sidebar/Tree.c
new file mode 100644
index 0000000..23f6505
--- /dev/null
+++ b/src/sidebar/Tree.c
@@ -0,0 +1,7856 @@
+/* Tree.c generated by valac 0.32.1, the Vala compiler
+ * generated from Tree.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <pango/pango.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+#include <float.h>
+#include <math.h>
+
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+typedef struct _SidebarTreePrivate SidebarTreePrivate;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TREE_TYPE_ENTRY_WRAPPER (sidebar_tree_entry_wrapper_get_type ())
+#define SIDEBAR_TREE_ENTRY_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, SidebarTreeEntryWrapper))
+#define SIDEBAR_TREE_ENTRY_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, SidebarTreeEntryWrapperClass))
+#define SIDEBAR_TREE_IS_ENTRY_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TREE_TYPE_ENTRY_WRAPPER))
+#define SIDEBAR_TREE_IS_ENTRY_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TREE_TYPE_ENTRY_WRAPPER))
+#define SIDEBAR_TREE_ENTRY_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, SidebarTreeEntryWrapperClass))
+
+typedef struct _SidebarTreeEntryWrapper SidebarTreeEntryWrapper;
+typedef struct _SidebarTreeEntryWrapperClass SidebarTreeEntryWrapperClass;
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+
+#define SIDEBAR_TREE_TYPE_COLUMNS (sidebar_tree_columns_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _gtk_tree_row_reference_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_row_reference_free (var), NULL)))
+
+#define LIBRARY_WINDOW_TYPE_TARGET_TYPE (library_window_target_type_get_type ())
+typedef struct _SidebarTreeEntryWrapperPrivate SidebarTreeEntryWrapperPrivate;
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+#define _gtk_tree_path_free0(var) ((var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define __g_list_free__gtk_tree_path_free0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__gtk_tree_path_free0_ (var), NULL)))
+
+#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
+#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
+#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
+#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))
+
+typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
+typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TREE_TYPE_ROOT_WRAPPER (sidebar_tree_root_wrapper_get_type ())
+#define SIDEBAR_TREE_ROOT_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TREE_TYPE_ROOT_WRAPPER, SidebarTreeRootWrapper))
+#define SIDEBAR_TREE_ROOT_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TREE_TYPE_ROOT_WRAPPER, SidebarTreeRootWrapperClass))
+#define SIDEBAR_TREE_IS_ROOT_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TREE_TYPE_ROOT_WRAPPER))
+#define SIDEBAR_TREE_IS_ROOT_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TREE_TYPE_ROOT_WRAPPER))
+#define SIDEBAR_TREE_ROOT_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TREE_TYPE_ROOT_WRAPPER, SidebarTreeRootWrapperClass))
+
+typedef struct _SidebarTreeRootWrapper SidebarTreeRootWrapper;
+typedef struct _SidebarTreeRootWrapperClass SidebarTreeRootWrapperClass;
+typedef struct _SidebarTreeRootWrapperPrivate SidebarTreeRootWrapperPrivate;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+
+#define SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY (sidebar_internal_drop_target_entry_get_type ())
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntry))
+#define SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY))
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntryIface))
+
+typedef struct _SidebarInternalDropTargetEntry SidebarInternalDropTargetEntry;
+typedef struct _SidebarInternalDropTargetEntryIface SidebarInternalDropTargetEntryIface;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY (sidebar_internal_drag_source_entry_get_type ())
+#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntry))
+#define SIDEBAR_IS_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY))
+#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntryIface))
+
+typedef struct _SidebarInternalDragSourceEntry SidebarInternalDragSourceEntry;
+typedef struct _SidebarInternalDragSourceEntryIface SidebarInternalDragSourceEntryIface;
+
+#define SIDEBAR_TYPE_DESTROYABLE_ENTRY (sidebar_destroyable_entry_get_type ())
+#define SIDEBAR_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntry))
+#define SIDEBAR_IS_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY))
+#define SIDEBAR_DESTROYABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntryIface))
+
+typedef struct _SidebarDestroyableEntry SidebarDestroyableEntry;
+typedef struct _SidebarDestroyableEntryIface SidebarDestroyableEntryIface;
+
+#define TYPE_SAVED_SEARCH_DIALOG (saved_search_dialog_get_type ())
+#define SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialog))
+#define SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+#define IS_SAVED_SEARCH_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SAVED_SEARCH_DIALOG))
+#define IS_SAVED_SEARCH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SAVED_SEARCH_DIALOG))
+#define SAVED_SEARCH_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SAVED_SEARCH_DIALOG, SavedSearchDialogClass))
+
+typedef struct _SavedSearchDialog SavedSearchDialog;
+typedef struct _SavedSearchDialogClass SavedSearchDialogClass;
+#define _saved_search_dialog_unref0(var) ((var == NULL) ? NULL : (var = (saved_search_dialog_unref (var), NULL)))
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_NEW_ROOT_TAG_COMMAND (new_root_tag_command_get_type ())
+#define NEW_ROOT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommand))
+#define NEW_ROOT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommandClass))
+#define IS_NEW_ROOT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NEW_ROOT_TAG_COMMAND))
+#define IS_NEW_ROOT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NEW_ROOT_TAG_COMMAND))
+#define NEW_ROOT_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommandClass))
+
+typedef struct _NewRootTagCommand NewRootTagCommand;
+typedef struct _NewRootTagCommandClass NewRootTagCommandClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SidebarTree {
+ GtkTreeView parent_instance;
+ SidebarTreePrivate * priv;
+};
+
+struct _SidebarTreeClass {
+ GtkTreeViewClass parent_class;
+ gboolean (*accept_cursor_changed) (SidebarTree* self);
+};
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+typedef void (*SidebarTreeExternalDropHandler) (GdkDragContext* context, SidebarEntry* entry, GtkSelectionData* data, guint info, guint time, void* user_data);
+struct _SidebarTreePrivate {
+ GtkTreeStore* store;
+ GtkUIManager* ui;
+ GtkCellRendererText* text_renderer;
+ SidebarTreeExternalDropHandler drop_handler;
+ gpointer drop_handler_target;
+ GtkEntry* text_entry;
+ GeeHashMap* entry_map;
+ GeeHashMap* branches;
+ gint editing_disabled;
+ gboolean mask_entry_selected_signal;
+ SidebarTreeEntryWrapper* selected_wrapper;
+ GtkMenu* default_context_menu;
+ gboolean expander_called_manually;
+ gint expander_special_count;
+ gboolean is_internal_drag_in_progress;
+ SidebarEntry* internal_drag_source_entry;
+ GtkTreeRowReference* old_path_ref;
+};
+
+typedef enum {
+ SIDEBAR_TREE_COLUMNS_NAME,
+ SIDEBAR_TREE_COLUMNS_TOOLTIP,
+ SIDEBAR_TREE_COLUMNS_WRAPPER,
+ SIDEBAR_TREE_COLUMNS_ICON,
+ SIDEBAR_TREE_COLUMNS_N_COLUMNS
+} SidebarTreeColumns;
+
+typedef enum {
+ LIBRARY_WINDOW_TARGET_TYPE_URI_LIST,
+ LIBRARY_WINDOW_TARGET_TYPE_MEDIA_LIST,
+ LIBRARY_WINDOW_TARGET_TYPE_TAG_PATH
+} LibraryWindowTargetType;
+
+struct _SidebarTreeEntryWrapper {
+ GObject parent_instance;
+ SidebarTreeEntryWrapperPrivate * priv;
+ SidebarEntry* entry;
+ GtkTreeRowReference* row;
+};
+
+struct _SidebarTreeEntryWrapperClass {
+ GObjectClass parent_class;
+};
+
+struct _SidebarEmphasizableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
+};
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarTreeRootWrapper {
+ SidebarTreeEntryWrapper parent_instance;
+ SidebarTreeRootWrapperPrivate * priv;
+ gint root_position;
+};
+
+struct _SidebarTreeRootWrapperClass {
+ SidebarTreeEntryWrapperClass parent_class;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _SidebarInternalDropTargetEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*internal_drop_received) (SidebarInternalDropTargetEntry* self, GeeList* sources);
+ gboolean (*internal_drop_received_arbitrary) (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+};
+
+struct _SidebarInternalDragSourceEntryIface {
+ GTypeInterface parent_iface;
+ void (*prepare_selection_data) (SidebarInternalDragSourceEntry* self, GtkSelectionData* data);
+};
+
+struct _SidebarDestroyableEntryIface {
+ GTypeInterface parent_iface;
+ void (*destroy_source) (SidebarDestroyableEntry* self);
+};
+
+
+static gpointer sidebar_tree_parent_class = NULL;
+static gpointer sidebar_tree_entry_wrapper_parent_class = NULL;
+static gpointer sidebar_tree_root_wrapper_parent_class = NULL;
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+static GType sidebar_tree_entry_wrapper_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+#define SIDEBAR_TREE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SIDEBAR_TYPE_TREE, SidebarTreePrivate))
+enum {
+ SIDEBAR_TREE_DUMMY_PROPERTY
+};
+static void sidebar_tree_on_editing_canceled (SidebarTree* self);
+static void _sidebar_tree_on_editing_canceled_gtk_cell_renderer_editing_canceled (GtkCellRenderer* _sender, gpointer self);
+static void sidebar_tree_on_editing_started (SidebarTree* self, GtkCellEditable* editable, const gchar* path);
+static void _sidebar_tree_on_editing_started_gtk_cell_renderer_editing_started (GtkCellRenderer* _sender, GtkCellEditable* editable, const gchar* path, gpointer self);
+static GType sidebar_tree_columns_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define SIDEBAR_TREE_ICON_SIZE 16
+SidebarTree* sidebar_tree_new (GtkTargetEntry* target_entries, int target_entries_length1, GdkDragAction actions, SidebarTreeExternalDropHandler drop_handler, void* drop_handler_target);
+SidebarTree* sidebar_tree_construct (GType object_type, GtkTargetEntry* target_entries, int target_entries_length1, GdkDragAction actions, SidebarTreeExternalDropHandler drop_handler, void* drop_handler_target);
+void sidebar_tree_icon_renderer_function (SidebarTree* self, GtkCellLayout* layout, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter);
+static void _sidebar_tree_icon_renderer_function_gtk_cell_layout_data_func (GtkCellLayout* cell_layout, GtkCellRenderer* cell, GtkTreeModel* tree_model, GtkTreeIter* iter, gpointer self);
+static gboolean sidebar_tree_on_selection (SidebarTree* self, GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected);
+static gboolean _sidebar_tree_on_selection_gtk_tree_selection_func (GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected, gpointer self);
+gboolean sidebar_tree_on_toggle_row (SidebarTree* self, GtkTreeIter* iter, GtkTreePath* path);
+static gboolean _sidebar_tree_on_toggle_row_gtk_tree_view_test_expand_row (GtkTreeView* _sender, GtkTreeIter* iter, GtkTreePath* path, gpointer self);
+static gboolean _sidebar_tree_on_toggle_row_gtk_tree_view_test_collapse_row (GtkTreeView* _sender, GtkTreeIter* iter, GtkTreePath* path, gpointer self);
+GType library_window_target_type_get_type (void) G_GNUC_CONST;
+static void _vala_array_add123 (GtkTargetEntry** array, int* length, int* size, const GtkTargetEntry* value);
+static gboolean sidebar_tree_on_context_menu_keypress (SidebarTree* self);
+static gboolean _sidebar_tree_on_context_menu_keypress_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self);
+static void sidebar_tree_setup_default_context_menu (SidebarTree* self);
+static void sidebar_tree_on_drag_begin (SidebarTree* self, GdkDragContext* ctx);
+static void _sidebar_tree_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self);
+static void sidebar_tree_on_drag_end (SidebarTree* self, GdkDragContext* ctx);
+static void _sidebar_tree_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self);
+static gboolean sidebar_tree_on_drag_motion (SidebarTree* self, GdkDragContext* context, gint x, gint y, guint time_);
+static gboolean _sidebar_tree_on_drag_motion_gtk_widget_drag_motion (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, guint time_, gpointer self);
+static SidebarTreeEntryWrapper* sidebar_tree_get_wrapper_at_iter (SidebarTree* self, GtkTreeIter* iter);
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+static SidebarTreeEntryWrapper* sidebar_tree_get_wrapper_at_path (SidebarTree* self, GtkTreePath* path);
+#define TRANSLATABLE "translatable"
+static void sidebar_tree_on_new_search (SidebarTree* self);
+static void _sidebar_tree_on_new_search_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add124 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void sidebar_tree_on_new_tag (SidebarTree* self);
+static void _sidebar_tree_on_new_tag_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add125 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+GFile* resources_get_ui (const gchar* filename);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void application_panic (Application* self);
+static gboolean sidebar_tree_has_wrapper (SidebarTree* self, SidebarEntry* entry);
+static SidebarTreeEntryWrapper* sidebar_tree_get_wrapper (SidebarTree* self, SidebarEntry* entry);
+gchar* sidebar_entry_to_string (SidebarEntry* self);
+gboolean sidebar_tree_place_cursor (SidebarTree* self, SidebarEntry* entry, gboolean mask_signal);
+gboolean sidebar_tree_expand_to_entry (SidebarTree* self, SidebarEntry* entry);
+static GtkTreePath* sidebar_tree_entry_wrapper_get_path (SidebarTreeEntryWrapper* self);
+gboolean sidebar_tree_scroll_to_entry (SidebarTree* self, SidebarEntry* entry);
+gboolean sidebar_tree_is_selected (SidebarTree* self, SidebarEntry* entry);
+gboolean sidebar_tree_is_any_selected (SidebarTree* self);
+static GtkTreePath* sidebar_tree_get_selected_path (SidebarTree* self);
+static void _gtk_tree_path_free0_ (gpointer var);
+static void _g_list_free__gtk_tree_path_free0_ (GList* self);
+static gchar* sidebar_tree_get_name_for_entry (SidebarTree* self, SidebarEntry* entry);
+gchar* guarded_markup_escape_text (const gchar* plain);
+gchar* sidebar_entry_get_sidebar_name (SidebarEntry* self);
+GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST;
+gboolean sidebar_emphasizable_entry_is_emphasized (SidebarEmphasizableEntry* self);
+gboolean sidebar_tree_accept_cursor_changed (SidebarTree* self);
+static gboolean sidebar_tree_real_accept_cursor_changed (SidebarTree* self);
+static void sidebar_tree_real_cursor_changed (GtkTreeView* base);
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+gboolean sidebar_renameable_entry_is_user_renameable (SidebarRenameableEntry* self);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+void sidebar_tree_disable_editing (SidebarTree* self);
+void sidebar_tree_enable_editing (SidebarTree* self);
+void sidebar_tree_toggle_branch_expansion (SidebarTree* self, GtkTreePath* path, gboolean expand_all);
+void sidebar_tree_expand_to_first_child (SidebarTree* self, SidebarEntry* entry);
+void sidebar_tree_graft (SidebarTree* self, SidebarBranch* branch, gint position);
+gboolean sidebar_branch_get_show_branch (SidebarBranch* self);
+static void sidebar_tree_associate_branch (SidebarTree* self, SidebarBranch* branch);
+gboolean sidebar_branch_is_startup_expand_to_first_child (SidebarBranch* self);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+gboolean sidebar_branch_is_startup_open_grouping (SidebarBranch* self);
+static void sidebar_tree_on_branch_entry_added (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry);
+static void _sidebar_tree_on_branch_entry_added_sidebar_branch_entry_added (SidebarBranch* _sender, SidebarEntry* entry, gpointer self);
+static void sidebar_tree_on_branch_entry_removed (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry);
+static void _sidebar_tree_on_branch_entry_removed_sidebar_branch_entry_removed (SidebarBranch* _sender, SidebarEntry* entry, gpointer self);
+static void sidebar_tree_on_branch_entry_moved (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry);
+static void _sidebar_tree_on_branch_entry_moved_sidebar_branch_entry_moved (SidebarBranch* _sender, SidebarEntry* entry, gpointer self);
+static void sidebar_tree_on_branch_entry_reparented (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry, SidebarEntry* old_parent);
+static void _sidebar_tree_on_branch_entry_reparented_sidebar_branch_entry_reparented (SidebarBranch* _sender, SidebarEntry* entry, SidebarEntry* old_parent, gpointer self);
+static void sidebar_tree_on_branch_children_reordered (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry);
+static void _sidebar_tree_on_branch_children_reordered_sidebar_branch_children_reordered (SidebarBranch* _sender, SidebarEntry* entry, gpointer self);
+static void sidebar_tree_on_show_branch (SidebarTree* self, SidebarBranch* branch, gboolean shown);
+static void _sidebar_tree_on_show_branch_sidebar_branch_show_branch (SidebarBranch* _sender, gboolean show, gpointer self);
+static GType sidebar_tree_root_wrapper_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+static GtkTreeIter* _gtk_tree_iter_dup (GtkTreeIter* self);
+static void sidebar_tree_associate_wrapper (SidebarTree* self, GtkTreeIter* assoc_iter, SidebarTreeEntryWrapper* wrapper);
+static SidebarTreeRootWrapper* sidebar_tree_root_wrapper_new (GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path, gint root_position);
+static SidebarTreeRootWrapper* sidebar_tree_root_wrapper_construct (GType object_type, GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path, gint root_position);
+static void sidebar_tree_associate_children (SidebarTree* self, SidebarBranch* branch, SidebarEntry* parent, GtkTreeIter* parent_iter);
+GeeList* sidebar_branch_get_children (SidebarBranch* self, SidebarEntry* parent);
+static void sidebar_tree_associate_entry (SidebarTree* self, GtkTreeIter* assoc_iter, SidebarEntry* entry);
+static SidebarTreeEntryWrapper* sidebar_tree_entry_wrapper_new (GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path);
+static SidebarTreeEntryWrapper* sidebar_tree_entry_wrapper_construct (GType object_type, GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path);
+gchar* sidebar_entry_get_sidebar_tooltip (SidebarEntry* self);
+static void sidebar_tree_load_entry_icons (SidebarTree* self, GtkTreeIter* iter);
+static void sidebar_tree_on_sidebar_tooltip_changed (SidebarTree* self, SidebarEntry* entry, const gchar* tooltip);
+static void _sidebar_tree_on_sidebar_tooltip_changed_sidebar_entry_sidebar_tooltip_changed (SidebarEntry* _sender, const gchar* tooltip, gpointer self);
+static void sidebar_tree_on_sidebar_icon_changed (SidebarTree* self, SidebarEntry* entry, const gchar* icon);
+static void _sidebar_tree_on_sidebar_icon_changed_sidebar_entry_sidebar_icon_changed (SidebarEntry* _sender, const gchar* icon, gpointer self);
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+static void sidebar_tree_on_sidebar_page_created (SidebarTree* self, SidebarPageRepresentative* entry, Page* page);
+static void _sidebar_tree_on_sidebar_page_created_sidebar_page_representative_page_created (SidebarPageRepresentative* _sender, Page* page, gpointer self);
+static void sidebar_tree_on_sidebar_destroying_page (SidebarTree* self, SidebarPageRepresentative* entry, Page* page);
+static void _sidebar_tree_on_sidebar_destroying_page_sidebar_page_representative_destroying_page (SidebarPageRepresentative* _sender, Page* page, gpointer self);
+static void sidebar_tree_on_is_emphasized_changed (SidebarTree* self, SidebarEmphasizableEntry* entry, gboolean is_emphasized);
+static void _sidebar_tree_on_is_emphasized_changed_sidebar_emphasizable_entry_is_emphasized_changed (SidebarEmphasizableEntry* _sender, gboolean emphasized, gpointer self);
+static void sidebar_tree_on_sidebar_name_changed (SidebarTree* self, SidebarEntry* entry, const gchar* name);
+static void _sidebar_tree_on_sidebar_name_changed_sidebar_renameable_entry_sidebar_name_changed (SidebarRenameableEntry* _sender, const gchar* name, gpointer self);
+void sidebar_entry_grafted (SidebarEntry* self, SidebarTree* tree);
+static SidebarTreeEntryWrapper* sidebar_tree_reparent_wrapper (SidebarTree* self, GtkTreeIter* new_iter, SidebarTreeEntryWrapper* current_wrapper);
+void sidebar_tree_prune (SidebarTree* self, SidebarBranch* branch);
+static void sidebar_tree_disassociate_branch (SidebarTree* self, SidebarBranch* branch);
+static void sidebar_tree_disassociate_wrapper_and_signal (SidebarTree* self, SidebarTreeEntryWrapper* wrapper, gboolean only_children);
+static void sidebar_tree_disassociate_wrapper (SidebarTree* self, SidebarTreeEntryWrapper* wrapper, gboolean only_children);
+static void sidebar_tree_entry_wrapper_get_iter (SidebarTreeEntryWrapper* self, GtkTreeIter* result);
+void sidebar_entry_pruned (SidebarEntry* self, SidebarTree* tree);
+SidebarEntry* sidebar_branch_get_parent (SidebarBranch* self, SidebarEntry* entry);
+SidebarEntry* sidebar_branch_get_next_sibling (SidebarBranch* self, SidebarEntry* entry);
+gboolean sidebar_branch_is_auto_open_on_new_child (SidebarBranch* self);
+SidebarEntry* sidebar_branch_get_previous_sibling (SidebarBranch* self, SidebarEntry* entry);
+static GtkTreePath* sidebar_tree_get_current_path (SidebarTree* self);
+static void sidebar_tree_rename_entry (SidebarTree* self, SidebarEntry* entry);
+gchar* sidebar_entry_get_sidebar_icon (SidebarEntry* self);
+static void sidebar_tree_load_branch_icons (SidebarTree* self, GtkTreeIter* iter);
+static GtkTreePath* sidebar_tree_get_path_from_event (SidebarTree* self, GdkEventButton* event);
+static gboolean sidebar_tree_popup_context_menu (SidebarTree* self, GtkTreePath* path, GdkEventButton* event);
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GtkMenu* sidebar_contextable_get_sidebar_context_menu (SidebarContextable* self, GdkEventButton* event);
+static gboolean sidebar_tree_popup_default_context_menu (SidebarTree* self, GdkEventButton* event);
+static gboolean sidebar_tree_real_button_press_event (GtkWidget* base, GdkEventButton* event);
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType sidebar_internal_drop_target_entry_get_type (void) G_GNUC_CONST;
+gboolean sidebar_tree_is_keypress_interpreted (SidebarTree* self, GdkEventKey* event);
+static gboolean sidebar_tree_real_key_press_event (GtkWidget* base, GdkEventKey* event);
+static gboolean sidebar_tree_rename_in_place (SidebarTree* self);
+static gboolean sidebar_tree_destroy_path (SidebarTree* self, GtkTreePath* path);
+gboolean sidebar_tree_rename_entry_in_place (SidebarTree* self, SidebarEntry* entry);
+static gboolean sidebar_tree_can_rename_path (SidebarTree* self, GtkTreePath* path);
+static void sidebar_tree_real_drag_data_get (GtkWidget* base, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time);
+GType sidebar_internal_drag_source_entry_get_type (void) G_GNUC_CONST;
+void sidebar_internal_drag_source_entry_prepare_selection_data (SidebarInternalDragSourceEntry* self, GtkSelectionData* data);
+static void sidebar_tree_real_drag_data_received (GtkWidget* base, GdkDragContext* context, gint x, gint y, GtkSelectionData* selection_data, guint info, guint time);
+#define LIBRARY_WINDOW_TAG_PATH_MIME_TYPE "shotwell/tag-path"
+gboolean sidebar_internal_drop_target_entry_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+GeeList* unserialize_media_sources (guchar* serialized, gint size);
+gboolean sidebar_internal_drop_target_entry_internal_drop_received (SidebarInternalDropTargetEntry* self, GeeList* sources);
+static gboolean sidebar_tree_real_drag_motion (GtkWidget* base, GdkDragContext* context, gint x, gint y, guint time);
+GType sidebar_destroyable_entry_get_type (void) G_GNUC_CONST;
+void sidebar_destroyable_entry_destroy_source (SidebarDestroyableEntry* self);
+static void sidebar_tree_on_editing_done (SidebarTree* self);
+static void _sidebar_tree_on_editing_done_gtk_cell_editable_editing_done (GtkCellEditable* _sender, gpointer self);
+static gboolean sidebar_tree_on_editing_focus_out (SidebarTree* self, GdkEventFocus* event);
+static gboolean _sidebar_tree_on_editing_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
+void sidebar_renameable_entry_rename (SidebarRenameableEntry* self, const gchar* new_name);
+SavedSearchDialog* saved_search_dialog_new (void);
+SavedSearchDialog* saved_search_dialog_construct (GType object_type);
+gpointer saved_search_dialog_ref (gpointer instance);
+void saved_search_dialog_unref (gpointer instance);
+GParamSpec* param_spec_saved_search_dialog (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_saved_search_dialog (GValue* value, gpointer v_object);
+void value_take_saved_search_dialog (GValue* value, gpointer v_object);
+gpointer value_get_saved_search_dialog (const GValue* value);
+GType saved_search_dialog_get_type (void) G_GNUC_CONST;
+void saved_search_dialog_show (SavedSearchDialog* self);
+GType command_get_type (void) G_GNUC_CONST;
+GType page_command_get_type (void) G_GNUC_CONST;
+GType new_root_tag_command_get_type (void) G_GNUC_CONST;
+NewRootTagCommand* new_root_tag_command_new (void);
+NewRootTagCommand* new_root_tag_command_construct (GType object_type);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+void command_manager_execute (CommandManager* self, Command* command);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+GType tag_get_type (void) G_GNUC_CONST;
+void library_window_rename_tag_in_sidebar (LibraryWindow* self, Tag* tag);
+Tag* new_root_tag_command_get_created_tag (NewRootTagCommand* self);
+static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+enum {
+ SIDEBAR_TREE_ENTRY_WRAPPER_DUMMY_PROPERTY
+};
+static void sidebar_tree_entry_wrapper_finalize (GObject* obj);
+enum {
+ SIDEBAR_TREE_ROOT_WRAPPER_DUMMY_PROPERTY
+};
+static void sidebar_tree_root_wrapper_finalize (GObject* obj);
+static void sidebar_tree_finalize (GObject* obj);
+
+
+static void _sidebar_tree_on_editing_canceled_gtk_cell_renderer_editing_canceled (GtkCellRenderer* _sender, gpointer self) {
+#line 157 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_editing_canceled ((SidebarTree*) self);
+#line 687 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_editing_started_gtk_cell_renderer_editing_started (GtkCellRenderer* _sender, GtkCellEditable* editable, const gchar* path, gpointer self) {
+#line 158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_editing_started ((SidebarTree*) self, editable, path);
+#line 694 "Tree.c"
+}
+
+
+static GType sidebar_tree_columns_get_type (void) {
+ static volatile gsize sidebar_tree_columns_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_tree_columns_type_id__volatile)) {
+ static const GEnumValue values[] = {{SIDEBAR_TREE_COLUMNS_NAME, "SIDEBAR_TREE_COLUMNS_NAME", "name"}, {SIDEBAR_TREE_COLUMNS_TOOLTIP, "SIDEBAR_TREE_COLUMNS_TOOLTIP", "tooltip"}, {SIDEBAR_TREE_COLUMNS_WRAPPER, "SIDEBAR_TREE_COLUMNS_WRAPPER", "wrapper"}, {SIDEBAR_TREE_COLUMNS_ICON, "SIDEBAR_TREE_COLUMNS_ICON", "icon"}, {SIDEBAR_TREE_COLUMNS_N_COLUMNS, "SIDEBAR_TREE_COLUMNS_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
+ GType sidebar_tree_columns_type_id;
+ sidebar_tree_columns_type_id = g_enum_register_static ("SidebarTreeColumns", values);
+ g_once_init_leave (&sidebar_tree_columns_type_id__volatile, sidebar_tree_columns_type_id);
+ }
+ return sidebar_tree_columns_type_id__volatile;
+}
+
+
+static void _sidebar_tree_icon_renderer_function_gtk_cell_layout_data_func (GtkCellLayout* cell_layout, GtkCellRenderer* cell, GtkTreeModel* tree_model, GtkTreeIter* iter, gpointer self) {
+#line 104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_icon_renderer_function ((SidebarTree*) self, cell_layout, cell, tree_model, iter);
+#line 713 "Tree.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 128 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 720 "Tree.c"
+}
+
+
+static gboolean _sidebar_tree_on_selection_gtk_tree_selection_func (GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected, gpointer self) {
+ gboolean result;
+ result = sidebar_tree_on_selection ((SidebarTree*) self, selection, model, path, path_currently_selected);
+#line 130 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 729 "Tree.c"
+}
+
+
+static gboolean _sidebar_tree_on_toggle_row_gtk_tree_view_test_expand_row (GtkTreeView* _sender, GtkTreeIter* iter, GtkTreePath* path, gpointer self) {
+ gboolean result;
+ result = sidebar_tree_on_toggle_row ((SidebarTree*) self, iter, path);
+#line 132 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 738 "Tree.c"
+}
+
+
+static gboolean _sidebar_tree_on_toggle_row_gtk_tree_view_test_collapse_row (GtkTreeView* _sender, GtkTreeIter* iter, GtkTreePath* path, gpointer self) {
+ gboolean result;
+ result = sidebar_tree_on_toggle_row ((SidebarTree*) self, iter, path);
+#line 133 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 747 "Tree.c"
+}
+
+
+static void _vala_array_add123 (GtkTargetEntry** array, int* length, int* size, const GtkTargetEntry* value) {
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if ((*length) == (*size)) {
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ *array = g_renew (GtkTargetEntry, *array, *size);
+#line 758 "Tree.c"
+ }
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ (*array)[(*length)++] = *value;
+#line 762 "Tree.c"
+}
+
+
+static gboolean _sidebar_tree_on_context_menu_keypress_gtk_widget_popup_menu (GtkWidget* _sender, gpointer self) {
+ gboolean result;
+ result = sidebar_tree_on_context_menu_keypress ((SidebarTree*) self);
+#line 147 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 771 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_drag_begin_gtk_widget_drag_begin (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
+#line 151 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_drag_begin ((SidebarTree*) self, context);
+#line 778 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_drag_end_gtk_widget_drag_end (GtkWidget* _sender, GdkDragContext* context, gpointer self) {
+#line 152 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_drag_end ((SidebarTree*) self, context);
+#line 785 "Tree.c"
+}
+
+
+static gboolean _sidebar_tree_on_drag_motion_gtk_widget_drag_motion (GtkWidget* _sender, GdkDragContext* context, gint x, gint y, guint time_, gpointer self) {
+ gboolean result;
+ result = sidebar_tree_on_drag_motion ((SidebarTree*) self, context, x, y, time_);
+#line 153 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 794 "Tree.c"
+}
+
+
+SidebarTree* sidebar_tree_construct (GType object_type, GtkTargetEntry* target_entries, int target_entries_length1, GdkDragAction actions, SidebarTreeExternalDropHandler drop_handler, void* drop_handler_target) {
+ SidebarTree * self = NULL;
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkStyleContext* _tmp1_ = NULL;
+ GtkTreeViewColumn* text_column = NULL;
+ GtkTreeViewColumn* _tmp2_ = NULL;
+ GtkCellRendererPixbuf* icon_renderer = NULL;
+ GtkCellRendererPixbuf* _tmp3_ = NULL;
+ GtkCellRendererText* _tmp4_ = NULL;
+ GtkCellRendererText* _tmp5_ = NULL;
+ GtkCellRendererText* _tmp6_ = NULL;
+ GtkCellRendererText* _tmp7_ = NULL;
+ GtkCellRendererText* _tmp8_ = NULL;
+ GtkCellRendererText* _tmp9_ = NULL;
+ GtkCellRendererText* invisitext = NULL;
+ GtkCellRendererText* _tmp10_ = NULL;
+ GtkTreeViewColumn* page_holder = NULL;
+ GtkTreeViewColumn* _tmp11_ = NULL;
+ GtkTreeSelection* selection = NULL;
+ GtkTreeSelection* _tmp12_ = NULL;
+ GtkTreeSelection* _tmp13_ = NULL;
+ GtkTargetEntry* _tmp14_ = NULL;
+ gint _tmp14__length1 = 0;
+ GdkDragAction _tmp15_ = 0;
+ GtkTargetEntry* source_entries = NULL;
+ GtkTargetEntry* _tmp16_ = NULL;
+ gint source_entries_length1 = 0;
+ gint _source_entries_size_ = 0;
+ GtkTargetEntry* _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ GtkTargetEntry* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ GtkTargetEntry _tmp19_ = {0};
+ GtkTargetEntry* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ SidebarTreeExternalDropHandler _tmp21_ = NULL;
+ void* _tmp21__target = NULL;
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = (SidebarTree*) g_object_new (object_type, NULL);
+#line 95 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->store;
+#line 95 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_model (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_TREE_MODEL, GtkTreeModel));
+#line 96 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = gtk_widget_get_style_context (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget));
+#line 96 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_style_context_add_class (_tmp1_, "sidebar");
+#line 98 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gtk_tree_view_column_new ();
+#line 98 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_ref_sink (_tmp2_);
+#line 98 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ text_column = _tmp2_;
+#line 99 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_column_set_expand (text_column, TRUE);
+#line 100 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = (GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ();
+#line 100 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_ref_sink (_tmp3_);
+#line 100 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ icon_renderer = _tmp3_;
+#line 101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (icon_renderer, "follow-state", TRUE, NULL);
+#line 102 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (text_column, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (icon_renderer, gtk_cell_renderer_get_type (), GtkCellRenderer), FALSE);
+#line 103 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (text_column, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (icon_renderer, gtk_cell_renderer_get_type (), GtkCellRenderer), "icon_name", (gint) SIDEBAR_TREE_COLUMNS_ICON);
+#line 104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_cell_layout_set_cell_data_func (G_TYPE_CHECK_INSTANCE_CAST (text_column, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (icon_renderer, gtk_cell_renderer_get_type (), GtkCellRenderer), _sidebar_tree_icon_renderer_function_gtk_cell_layout_data_func, g_object_ref (self), g_object_unref);
+#line 105 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 105 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_ref_sink (_tmp4_);
+#line 105 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->text_renderer);
+#line 105 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->text_renderer = _tmp4_;
+#line 106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = self->priv->text_renderer;
+#line 106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp5_, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+#line 107 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->text_renderer;
+#line 107 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, gtk_cell_renderer_get_type (), GtkCellRenderer), "editing-canceled", (GCallback) _sidebar_tree_on_editing_canceled_gtk_cell_renderer_editing_canceled, self, 0);
+#line 108 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = self->priv->text_renderer;
+#line 108 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, gtk_cell_renderer_get_type (), GtkCellRenderer), "editing-started", (GCallback) _sidebar_tree_on_editing_started_gtk_cell_renderer_editing_started, self, 0);
+#line 109 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = self->priv->text_renderer;
+#line 109 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (text_column, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 110 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = self->priv->text_renderer;
+#line 110 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_cell_layout_add_attribute (G_TYPE_CHECK_INSTANCE_CAST (text_column, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, gtk_cell_renderer_get_type (), GtkCellRenderer), "markup", (gint) SIDEBAR_TREE_COLUMNS_NAME);
+#line 111 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_append_column (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), text_column);
+#line 113 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = (GtkCellRendererText*) gtk_cell_renderer_text_new ();
+#line 113 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_ref_sink (_tmp10_);
+#line 113 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ invisitext = _tmp10_;
+#line 114 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = gtk_tree_view_column_new ();
+#line 114 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_ref_sink (_tmp11_);
+#line 114 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ page_holder = _tmp11_;
+#line 115 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_cell_layout_pack_start (G_TYPE_CHECK_INSTANCE_CAST (page_holder, GTK_TYPE_CELL_LAYOUT, GtkCellLayout), G_TYPE_CHECK_INSTANCE_CAST (invisitext, gtk_cell_renderer_get_type (), GtkCellRenderer), TRUE);
+#line 116 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_column_set_visible (page_holder, FALSE);
+#line 117 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_append_column (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), page_holder);
+#line 119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_headers_visible (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 120 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_enable_search (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 121 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_rules_hint (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 122 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_show_expanders (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), TRUE);
+#line 123 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_reorderable (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 124 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_enable_tree_lines (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), FALSE);
+#line 125 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_grid_lines (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), GTK_TREE_VIEW_GRID_LINES_NONE);
+#line 126 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_tooltip_column (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), (gint) SIDEBAR_TREE_COLUMNS_TOOLTIP);
+#line 128 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 128 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 128 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selection = _tmp13_;
+#line 129 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
+#line 130 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_selection_set_select_function (selection, _sidebar_tree_on_selection_gtk_tree_selection_func, g_object_ref (self), g_object_unref);
+#line 132 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), "test-expand-row", (GCallback) _sidebar_tree_on_toggle_row_gtk_tree_view_test_expand_row, self, 0);
+#line 133 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), "test-collapse-row", (GCallback) _sidebar_tree_on_toggle_row_gtk_tree_view_test_collapse_row, self, 0);
+#line 138 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = target_entries;
+#line 138 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14__length1 = target_entries_length1;
+#line 138 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = actions;
+#line 138 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_enable_model_drag_dest (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp14_, _tmp14__length1, _tmp15_);
+#line 140 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = g_new0 (GtkTargetEntry, 0);
+#line 140 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ source_entries = _tmp16_;
+#line 140 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ source_entries_length1 = 0;
+#line 140 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _source_entries_size_ = source_entries_length1;
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = source_entries;
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17__length1 = source_entries_length1;
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = target_entries;
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18__length1 = target_entries_length1;
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = _tmp18_[LIBRARY_WINDOW_TARGET_TYPE_TAG_PATH];
+#line 141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_array_add123 (&source_entries, &source_entries_length1, &_source_entries_size_, &_tmp19_);
+#line 142 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = source_entries;
+#line 142 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20__length1 = source_entries_length1;
+#line 142 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_enable_model_drag_source (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), GDK_BUTTON1_MASK, _tmp20_, _tmp20__length1, GDK_ACTION_COPY);
+#line 145 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = drop_handler;
+#line 145 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21__target = drop_handler_target;
+#line 145 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->drop_handler = _tmp21_;
+#line 145 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->drop_handler_target = _tmp21__target;
+#line 147 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "popup-menu", (GCallback) _sidebar_tree_on_context_menu_keypress_gtk_widget_popup_menu, self, 0);
+#line 149 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_setup_default_context_menu (self);
+#line 151 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-begin", (GCallback) _sidebar_tree_on_drag_begin_gtk_widget_drag_begin, self, 0);
+#line 152 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-end", (GCallback) _sidebar_tree_on_drag_end_gtk_widget_drag_end, self, 0);
+#line 153 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_widget_get_type (), GtkWidget), "drag-motion", (GCallback) _sidebar_tree_on_drag_motion_gtk_widget_drag_motion, self, 0);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ source_entries = (g_free (source_entries), NULL);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selection);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (page_holder);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (invisitext);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (icon_renderer);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (text_column);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return self;
+#line 1011 "Tree.c"
+}
+
+
+SidebarTree* sidebar_tree_new (GtkTargetEntry* target_entries, int target_entries_length1, GdkDragAction actions, SidebarTreeExternalDropHandler drop_handler, void* drop_handler_target) {
+#line 93 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return sidebar_tree_construct (SIDEBAR_TYPE_TREE, target_entries, target_entries_length1, actions, drop_handler, drop_handler_target);
+#line 1018 "Tree.c"
+}
+
+
+void sidebar_tree_icon_renderer_function (SidebarTree* self, GtkCellLayout* layout, GtkCellRenderer* renderer, GtkTreeModel* model, GtkTreeIter* iter) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreeIter _tmp0_ = {0};
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ GtkCellRenderer* _tmp3_ = NULL;
+ SidebarTreeEntryWrapper* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 161 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GTK_IS_CELL_LAYOUT (layout));
+#line 161 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GTK_IS_CELL_RENDERER (renderer));
+#line 161 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GTK_IS_TREE_MODEL (model));
+#line 161 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (iter != NULL);
+#line 162 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = *iter;
+#line 162 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper_at_iter (self, &_tmp0_);
+#line 162 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 163 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 163 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 164 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 164 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 1054 "Tree.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = renderer;
+#line 166 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = wrapper;
+#line 166 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_->entry;
+#line 166 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_cell_renderer_set_visible (_tmp3_, !G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, SIDEBAR_TYPE_HEADER));
+#line 161 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1066 "Tree.c"
+}
+
+
+static void sidebar_tree_on_drag_begin (SidebarTree* self, GdkDragContext* ctx) {
+#line 169 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 169 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (ctx));
+#line 170 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->is_internal_drag_in_progress = TRUE;
+#line 1077 "Tree.c"
+}
+
+
+static void sidebar_tree_on_drag_end (SidebarTree* self, GdkDragContext* ctx) {
+#line 173 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 173 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (ctx));
+#line 174 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->is_internal_drag_in_progress = FALSE;
+#line 175 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->internal_drag_source_entry);
+#line 175 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->internal_drag_source_entry = NULL;
+#line 1092 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_on_drag_motion (SidebarTree* self, GdkDragContext* context, gint x, gint y, guint time_) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+#line 178 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 178 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->is_internal_drag_in_progress;
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp1_) {
+#line 1108 "Tree.c"
+ SidebarEntry* _tmp2_ = NULL;
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = self->priv->internal_drag_source_entry;
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 1114 "Tree.c"
+ } else {
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = FALSE;
+#line 1118 "Tree.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp0_) {
+#line 1122 "Tree.c"
+ GtkTreePath* path = NULL;
+ GtkTreeViewDropPosition position = 0;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GtkTreePath* _tmp5_ = NULL;
+ GtkTreeViewDropPosition _tmp6_ = 0;
+ GtkTreePath* _tmp7_ = NULL;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = x;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = y;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_get_dest_row_at_pos (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp3_, _tmp4_, &_tmp5_, &_tmp6_);
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp5_;
+#line 182 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ position = _tmp6_;
+#line 184 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = path;
+#line 184 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp7_ != NULL) {
+#line 1146 "Tree.c"
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp8_ = NULL;
+ SidebarTreeEntryWrapper* _tmp9_ = NULL;
+ SidebarTreeEntryWrapper* _tmp10_ = NULL;
+#line 185 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = path;
+#line 185 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = sidebar_tree_get_wrapper_at_path (self, _tmp8_);
+#line 185 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp9_;
+#line 186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = wrapper;
+#line 186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp10_ != NULL) {
+#line 1161 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+#line 187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = wrapper;
+#line 187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = _tmp11_->entry;
+#line 187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = _g_object_ref0 (_tmp12_);
+#line 187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->internal_drag_source_entry);
+#line 187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->internal_drag_source_entry = _tmp13_;
+#line 1175 "Tree.c"
+ }
+#line 184 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1179 "Tree.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1183 "Tree.c"
+ }
+#line 191 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 191 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1189 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_new_search_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_new_search ((SidebarTree*) self);
+#line 1196 "Tree.c"
+}
+
+
+static void _vala_array_add124 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if ((*length) == (*size)) {
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1207 "Tree.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ (*array)[(*length)++] = *value;
+#line 1211 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_new_tag_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_new_tag ((SidebarTree*) self);
+#line 1218 "Tree.c"
+}
+
+
+static void _vala_array_add125 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if ((*length) == (*size)) {
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1229 "Tree.c"
+ }
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ (*array)[(*length)++] = *value;
+#line 1233 "Tree.c"
+}
+
+
+static void sidebar_tree_setup_default_context_menu (SidebarTree* self) {
+ GtkActionGroup* group = NULL;
+ GtkActionGroup* _tmp0_ = NULL;
+ GtkActionEntry* actions = NULL;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry new_search = {0};
+ GtkActionEntry _tmp2_ = {0};
+ const gchar* _tmp3_ = NULL;
+ GtkActionEntry* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry new_tag = {0};
+ GtkActionEntry _tmp6_ = {0};
+ const gchar* _tmp7_ = NULL;
+ GtkActionEntry* _tmp8_ = NULL;
+ gint _tmp8__length1 = 0;
+ GtkActionEntry _tmp9_ = {0};
+ GtkActionEntry* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ GtkUIManager* _tmp11_ = NULL;
+ GFile* ui_file = NULL;
+ GFile* _tmp12_ = NULL;
+ GtkUIManager* _tmp24_ = NULL;
+ GtkWidget* _tmp25_ = NULL;
+ GtkMenu* _tmp26_ = NULL;
+ GtkUIManager* _tmp27_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 194 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 195 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = gtk_action_group_new ("SidebarDefault");
+#line 195 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ group = _tmp0_;
+#line 196 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = g_new0 (GtkActionEntry, 0);
+#line 196 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ actions = _tmp1_;
+#line 196 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ actions_length1 = 0;
+#line 196 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _actions_size_ = actions_length1;
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_.name = "CommonNewSearch";
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_.stock_id = NULL;
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_.accelerator = NULL;
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_.tooltip = NULL;
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_.callback = (GCallback) _sidebar_tree_on_new_search_gtk_action_callback;
+#line 198 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ new_search = _tmp2_;
+#line 199 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = _ ("Ne_w Saved Search...");
+#line 199 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ new_search.label = _tmp3_;
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = actions;
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4__length1 = actions_length1;
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = new_search;
+#line 200 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_array_add124 (&actions, &actions_length1, &_actions_size_, &_tmp5_);
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_.name = "CommonNewTag";
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_.stock_id = NULL;
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_.label = TRANSLATABLE;
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_.accelerator = NULL;
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_.tooltip = NULL;
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_.callback = (GCallback) _sidebar_tree_on_new_tag_gtk_action_callback;
+#line 202 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ new_tag = _tmp6_;
+#line 203 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = _ ("New _Tag...");
+#line 203 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ new_tag.label = _tmp7_;
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = actions;
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8__length1 = actions_length1;
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = new_tag;
+#line 204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_array_add125 (&actions, &actions_length1, &_actions_size_, &_tmp9_);
+#line 206 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = actions;
+#line 206 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10__length1 = actions_length1;
+#line 206 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_action_group_add_actions (group, _tmp10_, _tmp10__length1, self);
+#line 207 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = self->priv->ui;
+#line 207 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_ui_manager_insert_action_group (_tmp11_, group, 0);
+#line 209 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = resources_get_ui ("sidebar_default_context.ui");
+#line 209 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ui_file = _tmp12_;
+#line 1346 "Tree.c"
+ {
+ GtkUIManager* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = self->priv->ui;
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = g_file_get_path (ui_file);
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = _tmp14_;
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_ui_manager_add_ui_from_file (_tmp13_, _tmp15_, &_inner_error_);
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp15_);
+#line 211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1363 "Tree.c"
+ goto __catch48_g_error;
+ }
+ }
+ goto __finally48;
+ __catch48_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ GError* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ Application* _tmp22_ = NULL;
+ Application* _tmp23_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ err = _inner_error_;
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _inner_error_ = NULL;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = g_file_get_path (ui_file);
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = _tmp16_;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = err;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = _tmp18_->message;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = g_strdup_printf ("Error loading UI file %s: %s", _tmp17_, _tmp19_);
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = _tmp20_;
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ app_window_error_message (_tmp21_, NULL);
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp21_);
+#line 213 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp17_);
+#line 215 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = application_get_instance ();
+#line 215 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = _tmp22_;
+#line 215 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ application_panic (_tmp23_);
+#line 215 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _application_unref0 (_tmp23_);
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_error_free0 (err);
+#line 1411 "Tree.c"
+ }
+ __finally48:
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (ui_file);
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ actions = (g_free (actions), NULL);
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (group);
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_clear_error (&_inner_error_);
+#line 210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 1428 "Tree.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = self->priv->ui;
+#line 217 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = gtk_ui_manager_get_widget (_tmp24_, "/SidebarDefaultContextMenu");
+#line 217 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, gtk_menu_get_type (), GtkMenu));
+#line 217 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->default_context_menu);
+#line 217 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->default_context_menu = _tmp26_;
+#line 219 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = self->priv->ui;
+#line 219 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_ui_manager_ensure_update (_tmp27_);
+#line 194 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (ui_file);
+#line 194 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ actions = (g_free (actions), NULL);
+#line 194 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (group);
+#line 1450 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_has_wrapper (SidebarTree* self, SidebarEntry* entry) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 222 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 222 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 223 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 223 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = entry;
+#line 223 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 223 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp2_;
+#line 223 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1473 "Tree.c"
+}
+
+
+static SidebarTreeEntryWrapper* sidebar_tree_get_wrapper (SidebarTree* self, SidebarEntry* entry) {
+ SidebarTreeEntryWrapper* result = NULL;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+#line 226 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 226 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 227 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 227 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = entry;
+#line 227 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 227 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = (SidebarTreeEntryWrapper*) _tmp2_;
+#line 228 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 228 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ == NULL) {
+#line 1500 "Tree.c"
+ SidebarEntry* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = entry;
+#line 229 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = sidebar_entry_to_string (_tmp4_);
+#line 229 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp5_;
+#line 229 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_warning ("Tree.vala:229: Entry %s not found in sidebar", _tmp6_);
+#line 229 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp6_);
+#line 1514 "Tree.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = wrapper;
+#line 231 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1520 "Tree.c"
+}
+
+
+static SidebarTreeEntryWrapper* sidebar_tree_get_wrapper_at_iter (SidebarTree* self, GtkTreeIter* iter) {
+ SidebarTreeEntryWrapper* result = NULL;
+ GValue val = {0};
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkTreeIter _tmp1_ = {0};
+ GValue _tmp2_ = {0};
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GValue _tmp3_ = {0};
+ SidebarTreeEntryWrapper* _tmp4_ = NULL;
+ SidebarTreeEntryWrapper* _tmp5_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 234 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (iter != NULL, NULL);
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->store;
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = *iter;
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_model_get_value (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp1_, (gint) SIDEBAR_TREE_COLUMNS_WRAPPER, &_tmp2_);
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
+#line 236 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ val = _tmp2_;
+#line 238 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = val;
+#line 238 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _g_object_ref0 (g_value_get_object (&_tmp3_));
+#line 238 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp4_;
+#line 239 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = wrapper;
+#line 239 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp5_ == NULL) {
+#line 1558 "Tree.c"
+ GtkTreeStore* _tmp6_ = NULL;
+ GtkTreeIter _tmp7_ = {0};
+ GtkTreePath* _tmp8_ = NULL;
+ GtkTreePath* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->store;
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = *iter;
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = gtk_tree_model_get_path (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp7_);
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = _tmp8_;
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = gtk_tree_path_to_string (_tmp9_);
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = _tmp10_;
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_message ("Tree.vala:240: No entry found in sidebar at %s", _tmp11_);
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp11_);
+#line 240 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp9_);
+#line 1583 "Tree.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = wrapper;
+#line 242 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL;
+#line 242 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1591 "Tree.c"
+}
+
+
+static SidebarTreeEntryWrapper* sidebar_tree_get_wrapper_at_path (SidebarTree* self, GtkTreePath* path) {
+ SidebarTreeEntryWrapper* result = NULL;
+ GtkTreeIter iter = {0};
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+ GtkTreeIter _tmp2_ = {0};
+ gboolean _tmp3_ = FALSE;
+ GtkTreeIter _tmp7_ = {0};
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+#line 245 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 245 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->store;
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = path;
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = gtk_tree_model_get_iter (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp2_, _tmp1_);
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ iter = _tmp2_;
+#line 247 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp3_) {
+#line 1618 "Tree.c"
+ GtkTreePath* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = path;
+#line 248 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gtk_tree_path_to_string (_tmp4_);
+#line 248 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp5_;
+#line 248 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_message ("Tree.vala:248: No entry found in sidebar at %s", _tmp6_);
+#line 248 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp6_);
+#line 250 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = NULL;
+#line 250 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1636 "Tree.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = iter;
+#line 253 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = sidebar_tree_get_wrapper_at_iter (self, &_tmp7_);
+#line 253 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp8_;
+#line 253 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1646 "Tree.c"
+}
+
+
+gboolean sidebar_tree_place_cursor (SidebarTree* self, SidebarEntry* entry, gboolean mask_signal) {
+ gboolean result = FALSE;
+ SidebarEntry* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarTreeEntryWrapper* _tmp4_ = NULL;
+ GtkTreeSelection* _tmp5_ = NULL;
+ SidebarTreeEntryWrapper* _tmp6_ = NULL;
+ GtkTreePath* _tmp7_ = NULL;
+ GtkTreePath* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp10_ = NULL;
+ GtkTreePath* _tmp11_ = NULL;
+ GtkTreePath* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 258 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 258 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 259 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 259 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_expand_to_entry (self, _tmp0_);
+#line 259 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp1_) {
+#line 260 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 260 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1682 "Tree.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = entry;
+#line 262 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = sidebar_tree_get_wrapper (self, _tmp2_);
+#line 262 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp3_;
+#line 263 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = wrapper;
+#line 263 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp4_ == NULL) {
+#line 264 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 264 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 264 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1700 "Tree.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = wrapper;
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = sidebar_tree_entry_wrapper_get_path (_tmp6_);
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp7_;
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_selection_select_path (_tmp5_, _tmp8_);
+#line 266 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp8_);
+#line 268 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = mask_signal;
+#line 268 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->mask_entry_selected_signal = _tmp9_;
+#line 269 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = wrapper;
+#line 269 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = sidebar_tree_entry_wrapper_get_path (_tmp10_);
+#line 269 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = _tmp11_;
+#line 269 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_cursor (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp12_, NULL, FALSE);
+#line 269 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp12_);
+#line 270 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->mask_entry_selected_signal = FALSE;
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = entry;
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = sidebar_tree_scroll_to_entry (self, _tmp13_);
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp14_;
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 272 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1740 "Tree.c"
+}
+
+
+gboolean sidebar_tree_is_selected (SidebarTree* self, SidebarEntry* entry) {
+ gboolean result = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ GtkTreeSelection* selection = NULL;
+ GtkTreeSelection* _tmp2_ = NULL;
+ GtkTreeSelection* _tmp3_ = NULL;
+ GtkTreeSelection* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp6_ = NULL;
+#line 275 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 275 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 276 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 276 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 276 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 280 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 280 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = _g_object_ref0 (_tmp2_);
+#line 280 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selection = _tmp3_;
+#line 281 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = selection;
+#line 281 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp4_ == NULL) {
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selection);
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 282 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1783 "Tree.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = wrapper;
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_ != NULL) {
+#line 1789 "Tree.c"
+ GtkTreeSelection* _tmp7_ = NULL;
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+ GtkTreePath* _tmp9_ = NULL;
+ GtkTreePath* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = selection;
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = wrapper;
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = sidebar_tree_entry_wrapper_get_path (_tmp8_);
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = _tmp9_;
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = gtk_tree_selection_path_is_selected (_tmp7_, _tmp10_);
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp11_;
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp10_);
+#line 1809 "Tree.c"
+ } else {
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = FALSE;
+#line 1813 "Tree.c"
+ }
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp5_;
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selection);
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 284 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1823 "Tree.c"
+}
+
+
+gboolean sidebar_tree_is_any_selected (SidebarTree* self) {
+ gboolean result = FALSE;
+ GtkTreeSelection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 287 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = gtk_tree_selection_count_selected_rows (_tmp0_);
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp1_ != 0;
+#line 288 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1841 "Tree.c"
+}
+
+
+static gpointer _gtk_tree_path_copy0 (gpointer self) {
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return self ? gtk_tree_path_copy (self) : NULL;
+#line 1848 "Tree.c"
+}
+
+
+static void _gtk_tree_path_free0_ (gpointer var) {
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ (var == NULL) ? NULL : (var = (gtk_tree_path_free (var), NULL));
+#line 1855 "Tree.c"
+}
+
+
+static void _g_list_free__gtk_tree_path_free0_ (GList* self) {
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_list_foreach (self, (GFunc) _gtk_tree_path_free0_, NULL);
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_list_free (self);
+#line 1864 "Tree.c"
+}
+
+
+static GtkTreePath* sidebar_tree_get_selected_path (SidebarTree* self) {
+ GtkTreePath* result = NULL;
+ GtkTreeModel* model = NULL;
+ GtkTreeSelection* selection = NULL;
+ GtkTreeSelection* _tmp0_ = NULL;
+ GtkTreeSelection* _tmp1_ = NULL;
+ GtkTreeSelection* _tmp2_ = NULL;
+ GList* rows = NULL;
+ GtkTreeSelection* _tmp3_ = NULL;
+ GtkTreeModel* _tmp4_ = NULL;
+ GList* _tmp5_ = NULL;
+ GtkTreeModel* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GList* _tmp8_ = NULL;
+ guint _tmp9_ = 0U;
+ GtkTreePath* _tmp12_ = NULL;
+ GList* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ GtkTreePath* _tmp17_ = NULL;
+#line 291 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 293 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 293 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 293 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selection = _tmp1_;
+#line 294 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = selection;
+#line 294 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 295 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = NULL;
+#line 295 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selection);
+#line 295 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (model);
+#line 295 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1907 "Tree.c"
+ }
+#line 297 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = selection;
+#line 297 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gtk_tree_selection_get_selected_rows (_tmp3_, &_tmp4_);
+#line 297 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (model);
+#line 297 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _g_object_ref0 (_tmp4_);
+#line 297 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ model = _tmp6_;
+#line 297 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ rows = _tmp5_;
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = rows;
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = g_list_length (_tmp8_);
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp9_ == ((guint) 0)) {
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = TRUE;
+#line 1929 "Tree.c"
+ } else {
+ GList* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = rows;
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = g_list_length (_tmp10_);
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = _tmp11_ == ((guint) 1);
+#line 1939 "Tree.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp7_, "rows.length() == 0 || rows.length() == 1");
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = rows;
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = g_list_length (_tmp13_);
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp14_ != ((guint) 0)) {
+#line 1949 "Tree.c"
+ GList* _tmp15_ = NULL;
+ gconstpointer _tmp16_ = NULL;
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = rows;
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = g_list_nth_data (_tmp15_, (guint) 0);
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = (GtkTreePath*) _tmp16_;
+#line 1958 "Tree.c"
+ } else {
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = NULL;
+#line 1962 "Tree.c"
+ }
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = _gtk_tree_path_copy0 (_tmp12_);
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp17_;
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ __g_list_free__gtk_tree_path_free0_0 (rows);
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selection);
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (model);
+#line 300 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 1976 "Tree.c"
+}
+
+
+static gchar* sidebar_tree_get_name_for_entry (SidebarTree* self, SidebarEntry* entry) {
+ gchar* result = NULL;
+ gchar* name = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ SidebarEmphasizableEntry* emphasizable_entry = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarEmphasizableEntry* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ SidebarEmphasizableEntry* _tmp8_ = NULL;
+#line 303 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 303 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_entry_get_sidebar_name (_tmp0_);
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _tmp1_;
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = guarded_markup_escape_text (_tmp2_);
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_;
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp2_);
+#line 304 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ name = _tmp4_;
+#line 306 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = entry;
+#line 306 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, SIDEBAR_TYPE_EMPHASIZABLE_ENTRY) ? ((SidebarEmphasizableEntry*) _tmp5_) : NULL);
+#line 306 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ emphasizable_entry = _tmp6_;
+#line 307 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = emphasizable_entry;
+#line 307 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp8_ != NULL) {
+#line 2021 "Tree.c"
+ SidebarEmphasizableEntry* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+#line 307 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = emphasizable_entry;
+#line 307 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = sidebar_emphasizable_entry_is_emphasized (_tmp9_);
+#line 307 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = _tmp10_;
+#line 2030 "Tree.c"
+ } else {
+#line 307 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = FALSE;
+#line 2034 "Tree.c"
+ }
+#line 307 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp7_) {
+#line 2038 "Tree.c"
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = name;
+#line 308 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = g_strdup_printf ("<b>%s</b>", _tmp11_);
+#line 308 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (name);
+#line 308 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ name = _tmp12_;
+#line 2049 "Tree.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = name;
+#line 310 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (emphasizable_entry);
+#line 310 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 2057 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_real_accept_cursor_changed (SidebarTree* self) {
+ gboolean result = FALSE;
+#line 314 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 314 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 2067 "Tree.c"
+}
+
+
+gboolean sidebar_tree_accept_cursor_changed (SidebarTree* self) {
+#line 313 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 313 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return SIDEBAR_TREE_GET_CLASS (self)->accept_cursor_changed (self);
+#line 2076 "Tree.c"
+}
+
+
+static void sidebar_tree_real_cursor_changed (GtkTreeView* base) {
+ SidebarTree * self;
+ GtkTreePath* path = NULL;
+ GtkTreePath* _tmp0_ = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarTreeEntryWrapper* _tmp4_ = NULL;
+ SidebarTreeEntryWrapper* _tmp5_ = NULL;
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_TREE, SidebarTree);
+#line 318 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = sidebar_tree_get_selected_path (self);
+#line 318 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp0_;
+#line 319 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = path;
+#line 319 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp1_ == NULL) {
+#line 320 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (GTK_TREE_VIEW_CLASS (sidebar_tree_parent_class)->cursor_changed != NULL) {
+#line 321 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ GTK_TREE_VIEW_CLASS (sidebar_tree_parent_class)->cursor_changed (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 2104 "Tree.c"
+ }
+#line 322 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 322 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 2110 "Tree.c"
+ }
+#line 325 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = path;
+#line 325 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = sidebar_tree_get_wrapper_at_path (self, _tmp2_);
+#line 325 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp3_;
+#line 327 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = self->priv->selected_wrapper;
+#line 327 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = wrapper;
+#line 327 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp4_ != _tmp5_) {
+#line 2124 "Tree.c"
+ SidebarTreeEntryWrapper* old_wrapper = NULL;
+ SidebarTreeEntryWrapper* _tmp6_ = NULL;
+ SidebarTreeEntryWrapper* _tmp7_ = NULL;
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ gint _tmp11_ = 0;
+ gboolean _tmp19_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp20_ = NULL;
+#line 328 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->selected_wrapper;
+#line 328 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = _g_object_ref0 (_tmp6_);
+#line 328 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ old_wrapper = _tmp7_;
+#line 329 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = wrapper;
+#line 329 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->selected_wrapper = _tmp8_;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = self->priv->editing_disabled;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp11_ == 0) {
+#line 2148 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp12_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = wrapper;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = _tmp12_ != NULL;
+#line 2154 "Tree.c"
+ } else {
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = FALSE;
+#line 2158 "Tree.c"
+ }
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp10_) {
+#line 2162 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp13_ = NULL;
+ SidebarEntry* _tmp14_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = wrapper;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = _tmp13_->entry;
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp14_, SIDEBAR_TYPE_RENAMEABLE_ENTRY);
+#line 2171 "Tree.c"
+ } else {
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = FALSE;
+#line 2175 "Tree.c"
+ }
+#line 331 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp9_) {
+#line 2179 "Tree.c"
+ GtkCellRendererText* _tmp15_ = NULL;
+ SidebarTreeEntryWrapper* _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+#line 332 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = self->priv->text_renderer;
+#line 332 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = wrapper;
+#line 332 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = _tmp16_->entry;
+#line 332 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = sidebar_renameable_entry_is_user_renameable (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry));
+#line 332 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp15_, "editable", _tmp18_, NULL);
+#line 2194 "Tree.c"
+ }
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = wrapper;
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp20_ != NULL) {
+#line 2200 "Tree.c"
+ gboolean _tmp21_ = FALSE;
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = self->priv->mask_entry_selected_signal;
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = !_tmp21_;
+#line 2206 "Tree.c"
+ } else {
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = FALSE;
+#line 2210 "Tree.c"
+ }
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp19_) {
+#line 2214 "Tree.c"
+ SidebarSelectableEntry* selectable = NULL;
+ SidebarTreeEntryWrapper* _tmp22_ = NULL;
+ SidebarEntry* _tmp23_ = NULL;
+ SidebarSelectableEntry* _tmp24_ = NULL;
+ SidebarSelectableEntry* _tmp25_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = wrapper;
+#line 335 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = _tmp22_->entry;
+#line 335 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp23_, SIDEBAR_TYPE_SELECTABLE_ENTRY) ? ((SidebarSelectableEntry*) _tmp23_) : NULL);
+#line 335 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selectable = _tmp24_;
+#line 336 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = selectable;
+#line 336 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp25_ != NULL) {
+#line 2232 "Tree.c"
+ gboolean _tmp26_ = FALSE;
+#line 337 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = sidebar_tree_accept_cursor_changed (self);
+#line 337 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp26_) {
+#line 2238 "Tree.c"
+ SidebarSelectableEntry* _tmp27_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = selectable;
+#line 338 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "entry-selected", _tmp27_);
+#line 2244 "Tree.c"
+ } else {
+ SidebarTreeEntryWrapper* _tmp28_ = NULL;
+ SidebarEntry* _tmp29_ = NULL;
+#line 340 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = old_wrapper;
+#line 340 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp29_ = _tmp28_->entry;
+#line 340 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_place_cursor (self, _tmp29_, TRUE);
+#line 2254 "Tree.c"
+ }
+ }
+#line 334 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selectable);
+#line 2259 "Tree.c"
+ }
+#line 327 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (old_wrapper);
+#line 2263 "Tree.c"
+ }
+#line 346 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (GTK_TREE_VIEW_CLASS (sidebar_tree_parent_class)->cursor_changed != NULL) {
+#line 347 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ GTK_TREE_VIEW_CLASS (sidebar_tree_parent_class)->cursor_changed (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 2269 "Tree.c"
+ }
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 317 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 2275 "Tree.c"
+}
+
+
+void sidebar_tree_disable_editing (SidebarTree* self) {
+ gint _tmp0_ = 0;
+#line 350 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 351 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->editing_disabled;
+#line 351 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->editing_disabled = _tmp0_ + 1;
+#line 351 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp0_ == 0) {
+#line 2289 "Tree.c"
+ GtkCellRendererText* _tmp1_ = NULL;
+#line 352 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->text_renderer;
+#line 352 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp1_, "editable", FALSE, NULL);
+#line 2295 "Tree.c"
+ }
+}
+
+
+void sidebar_tree_enable_editing (SidebarTree* self) {
+ GtkTreePath* path = NULL;
+ GtkTreePath* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GtkTreePath* _tmp3_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 356 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = sidebar_tree_get_selected_path (self);
+#line 356 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp0_;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = path;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ != NULL) {
+#line 2316 "Tree.c"
+ gint _tmp4_ = 0;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = self->priv->editing_disabled;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _tmp4_ > 0;
+#line 2322 "Tree.c"
+ } else {
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = FALSE;
+#line 2326 "Tree.c"
+ }
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_) {
+#line 2330 "Tree.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = self->priv->editing_disabled;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->editing_disabled = _tmp5_ - 1;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->editing_disabled;
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp6_ == 0;
+#line 2341 "Tree.c"
+ } else {
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = FALSE;
+#line 2345 "Tree.c"
+ }
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp1_) {
+#line 2349 "Tree.c"
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp7_ = NULL;
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp10_ = NULL;
+#line 358 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = path;
+#line 358 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = sidebar_tree_get_wrapper_at_path (self, _tmp7_);
+#line 358 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp8_;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = wrapper;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp10_ != NULL) {
+#line 2365 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = wrapper;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = _tmp11_->entry;
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, SIDEBAR_TYPE_RENAMEABLE_ENTRY);
+#line 2374 "Tree.c"
+ } else {
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = FALSE;
+#line 2378 "Tree.c"
+ }
+#line 359 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp9_) {
+#line 2382 "Tree.c"
+ GtkCellRendererText* _tmp13_ = NULL;
+ SidebarTreeEntryWrapper* _tmp14_ = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = self->priv->text_renderer;
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = wrapper;
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = _tmp14_->entry;
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = sidebar_renameable_entry_is_user_renameable (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry));
+#line 360 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp13_, "editable", _tmp16_, NULL);
+#line 2397 "Tree.c"
+ }
+#line 357 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 2401 "Tree.c"
+ }
+#line 355 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 2405 "Tree.c"
+}
+
+
+void sidebar_tree_toggle_branch_expansion (SidebarTree* self, GtkTreePath* path, gboolean expand_all) {
+ GtkTreePath* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 365 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 365 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (path != NULL);
+#line 366 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_called_manually = TRUE;
+#line 367 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = path;
+#line 367 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = gtk_tree_view_row_expanded (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp0_);
+#line 367 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp1_) {
+#line 2424 "Tree.c"
+ GtkTreePath* _tmp2_ = NULL;
+#line 368 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = path;
+#line 368 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_collapse_row (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp2_);
+#line 2430 "Tree.c"
+ } else {
+ GtkTreePath* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 370 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = path;
+#line 370 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = expand_all;
+#line 370 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_expand_row (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp3_, _tmp4_);
+#line 2440 "Tree.c"
+ }
+}
+
+
+gboolean sidebar_tree_expand_to_entry (SidebarTree* self, SidebarEntry* entry) {
+ gboolean result = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreePath* _tmp5_ = NULL;
+#line 373 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 373 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 374 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_called_manually = TRUE;
+#line 375 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 375 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 375 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 376 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 377 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 2476 "Tree.c"
+ }
+#line 379 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 379 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = sidebar_tree_entry_wrapper_get_path (_tmp3_);
+#line 379 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_;
+#line 379 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_expand_to_path (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp5_);
+#line 379 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp5_);
+#line 381 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 381 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 381 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 2494 "Tree.c"
+}
+
+
+void sidebar_tree_expand_to_first_child (SidebarTree* self, SidebarEntry* entry) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ GtkTreePath* path = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreeIter iter = {0};
+ GtkTreePath* _tmp13_ = NULL;
+#line 384 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 384 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 385 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_called_manually = TRUE;
+#line 386 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 386 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 386 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 387 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 387 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 388 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 388 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 2528 "Tree.c"
+ }
+#line 390 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 390 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = sidebar_tree_entry_wrapper_get_path (_tmp3_);
+#line 390 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp4_;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ while (TRUE) {
+#line 2538 "Tree.c"
+ GtkTreeStore* _tmp5_ = NULL;
+ GtkTreePath* _tmp6_ = NULL;
+ GtkTreeIter _tmp7_ = {0};
+ gboolean _tmp8_ = FALSE;
+ GtkTreeStore* _tmp9_ = NULL;
+ GtkTreeIter _tmp10_ = {0};
+ gboolean _tmp11_ = FALSE;
+ GtkTreePath* _tmp12_ = NULL;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = self->priv->store;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = path;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = gtk_tree_model_get_iter (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp7_, _tmp6_);
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ iter = _tmp7_;
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp8_) {
+#line 393 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 2559 "Tree.c"
+ }
+#line 394 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = self->priv->store;
+#line 394 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = iter;
+#line 394 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = gtk_tree_model_iter_has_child (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp10_);
+#line 394 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp11_) {
+#line 395 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 2571 "Tree.c"
+ }
+#line 397 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = path;
+#line 397 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_path_down (_tmp12_);
+#line 2577 "Tree.c"
+ }
+#line 400 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = path;
+#line 400 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_expand_to_path (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp13_);
+#line 384 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 384 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 2587 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_branch_entry_added_sidebar_branch_entry_added (SidebarBranch* _sender, SidebarEntry* entry, gpointer self) {
+#line 418 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_branch_entry_added ((SidebarTree*) self, _sender, entry);
+#line 2594 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_branch_entry_removed_sidebar_branch_entry_removed (SidebarBranch* _sender, SidebarEntry* entry, gpointer self) {
+#line 419 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_branch_entry_removed ((SidebarTree*) self, _sender, entry);
+#line 2601 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_branch_entry_moved_sidebar_branch_entry_moved (SidebarBranch* _sender, SidebarEntry* entry, gpointer self) {
+#line 420 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_branch_entry_moved ((SidebarTree*) self, _sender, entry);
+#line 2608 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_branch_entry_reparented_sidebar_branch_entry_reparented (SidebarBranch* _sender, SidebarEntry* entry, SidebarEntry* old_parent, gpointer self) {
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_branch_entry_reparented ((SidebarTree*) self, _sender, entry, old_parent);
+#line 2615 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_branch_children_reordered_sidebar_branch_children_reordered (SidebarBranch* _sender, SidebarEntry* entry, gpointer self) {
+#line 422 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_branch_children_reordered ((SidebarTree*) self, _sender, entry);
+#line 2622 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_show_branch_sidebar_branch_show_branch (SidebarBranch* _sender, gboolean show, gpointer self) {
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_show_branch ((SidebarTree*) self, _sender, show);
+#line 2629 "Tree.c"
+}
+
+
+void sidebar_tree_graft (SidebarTree* self, SidebarBranch* branch, gint position) {
+ gint _tmp0_ = 0;
+ GeeHashMap* _tmp1_ = NULL;
+ SidebarBranch* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GeeHashMap* _tmp4_ = NULL;
+ SidebarBranch* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ SidebarBranch* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ SidebarBranch* _tmp20_ = NULL;
+ SidebarBranch* _tmp21_ = NULL;
+ SidebarBranch* _tmp22_ = NULL;
+ SidebarBranch* _tmp23_ = NULL;
+ SidebarBranch* _tmp24_ = NULL;
+ SidebarBranch* _tmp25_ = NULL;
+ SidebarBranch* _tmp26_ = NULL;
+#line 403 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 403 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 403 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = position;
+#line 403 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_return_if_fail (_tmp0_ >= 0, "position >= 0");
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->branches;
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = branch;
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_);
+#line 404 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (!_tmp3_, "!branches.has_key(branch)");
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = self->priv->branches;
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = branch;
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = position;
+#line 406 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp5_, (gpointer) ((gintptr) _tmp6_));
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = branch;
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = sidebar_branch_get_show_branch (_tmp7_);
+#line 408 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp8_) {
+#line 2680 "Tree.c"
+ SidebarBranch* _tmp9_ = NULL;
+ SidebarBranch* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ SidebarBranch* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 409 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = branch;
+#line 409 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_branch (self, _tmp9_);
+#line 411 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = branch;
+#line 411 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = sidebar_branch_is_startup_expand_to_first_child (_tmp10_);
+#line 411 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp11_) {
+#line 2696 "Tree.c"
+ SidebarBranch* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ SidebarEntry* _tmp14_ = NULL;
+#line 412 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = branch;
+#line 412 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = sidebar_branch_get_root (_tmp12_);
+#line 412 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = _tmp13_;
+#line 412 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_expand_to_first_child (self, _tmp14_);
+#line 412 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp14_);
+#line 2710 "Tree.c"
+ }
+#line 414 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = branch;
+#line 414 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = sidebar_branch_is_startup_open_grouping (_tmp15_);
+#line 414 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp16_) {
+#line 2718 "Tree.c"
+ SidebarBranch* _tmp17_ = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarEntry* _tmp19_ = NULL;
+#line 415 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = branch;
+#line 415 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = sidebar_branch_get_root (_tmp17_);
+#line 415 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = _tmp18_;
+#line 415 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_expand_to_entry (self, _tmp19_);
+#line 415 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp19_);
+#line 2732 "Tree.c"
+ }
+ }
+#line 418 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = branch;
+#line 418 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp20_, "entry-added", (GCallback) _sidebar_tree_on_branch_entry_added_sidebar_branch_entry_added, self, 0);
+#line 419 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = branch;
+#line 419 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp21_, "entry-removed", (GCallback) _sidebar_tree_on_branch_entry_removed_sidebar_branch_entry_removed, self, 0);
+#line 420 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = branch;
+#line 420 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp22_, "entry-moved", (GCallback) _sidebar_tree_on_branch_entry_moved_sidebar_branch_entry_moved, self, 0);
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = branch;
+#line 421 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp23_, "entry-reparented", (GCallback) _sidebar_tree_on_branch_entry_reparented_sidebar_branch_entry_reparented, self, 0);
+#line 422 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = branch;
+#line 422 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp24_, "children-reordered", (GCallback) _sidebar_tree_on_branch_children_reordered_sidebar_branch_children_reordered, self, 0);
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = branch;
+#line 423 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp25_, "show-branch", (GCallback) _sidebar_tree_on_show_branch_sidebar_branch_show_branch, self, 0);
+#line 425 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = branch;
+#line 425 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "branch-added", _tmp26_);
+#line 2763 "Tree.c"
+}
+
+
+static GtkTreeIter* _gtk_tree_iter_dup (GtkTreeIter* self) {
+ GtkTreeIter* dup;
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ dup = g_new0 (GtkTreeIter, 1);
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ memcpy (dup, self, sizeof (GtkTreeIter));
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return dup;
+#line 2775 "Tree.c"
+}
+
+
+static gpointer __gtk_tree_iter_dup0 (gpointer self) {
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return self ? _gtk_tree_iter_dup (self) : NULL;
+#line 2782 "Tree.c"
+}
+
+
+static void sidebar_tree_associate_branch (SidebarTree* self, SidebarBranch* branch) {
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarBranch* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint position = 0;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarBranch* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ GtkTreeIter* insertion_iter = NULL;
+ GtkTreeIter iter = {0};
+ gboolean found = FALSE;
+ GtkTreeStore* _tmp6_ = NULL;
+ GtkTreeIter _tmp7_ = {0};
+ gboolean _tmp8_ = FALSE;
+ GtkTreeIter* _tmp24_ = NULL;
+ GtkTreeIter* _tmp29_ = NULL;
+ GtkTreeStore* _tmp30_ = NULL;
+ SidebarBranch* _tmp31_ = NULL;
+ SidebarEntry* _tmp32_ = NULL;
+ SidebarEntry* _tmp33_ = NULL;
+ GtkTreeStore* _tmp34_ = NULL;
+ GtkTreeIter* _tmp35_ = NULL;
+ GtkTreeIter _tmp36_ = {0};
+ GtkTreePath* _tmp37_ = NULL;
+ GtkTreePath* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ SidebarTreeRootWrapper* _tmp40_ = NULL;
+ SidebarTreeRootWrapper* _tmp41_ = NULL;
+ GtkTreeIter _tmp42_ = {0};
+ SidebarBranch* _tmp43_ = NULL;
+ SidebarBranch* _tmp44_ = NULL;
+ SidebarEntry* _tmp45_ = NULL;
+ SidebarEntry* _tmp46_ = NULL;
+ GtkTreeIter* _tmp47_ = NULL;
+ GtkTreeIter _tmp48_ = {0};
+#line 429 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 429 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 430 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->branches;
+#line 430 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = branch;
+#line 430 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 430 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp2_, "branches.has_key(branch)");
+#line 432 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = self->priv->branches;
+#line 432 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = branch;
+#line 432 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 432 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ position = (gint) ((gintptr) _tmp5_);
+#line 434 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ insertion_iter = NULL;
+#line 438 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->store;
+#line 438 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = gtk_tree_model_get_iter_first (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp7_);
+#line 438 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ iter = _tmp7_;
+#line 438 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ found = _tmp8_;
+#line 439 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ while (TRUE) {
+#line 2853 "Tree.c"
+ gboolean _tmp9_ = FALSE;
+ SidebarTreeRootWrapper* root_wrapper = NULL;
+ GtkTreeIter _tmp10_ = {0};
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ SidebarTreeRootWrapper* _tmp12_ = NULL;
+ SidebarTreeRootWrapper* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ SidebarTreeRootWrapper* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ GtkTreeStore* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+#line 439 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = found;
+#line 439 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp9_) {
+#line 439 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 2871 "Tree.c"
+ }
+#line 440 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = iter;
+#line 440 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = sidebar_tree_get_wrapper_at_iter (self, &_tmp10_);
+#line 440 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp11_, SIDEBAR_TREE_TYPE_ROOT_WRAPPER) ? ((SidebarTreeRootWrapper*) _tmp11_) : NULL;
+#line 440 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp12_ == NULL) {
+#line 440 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp11_);
+#line 2883 "Tree.c"
+ }
+#line 440 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ root_wrapper = _tmp12_;
+#line 441 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = root_wrapper;
+#line 441 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp13_ != NULL, "root_wrapper != null");
+#line 443 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = position;
+#line 443 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = root_wrapper;
+#line 443 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = _tmp15_->root_position;
+#line 443 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp14_ < _tmp16_) {
+#line 2899 "Tree.c"
+ GtkTreeStore* _tmp17_ = NULL;
+ GtkTreeIter _tmp18_ = {0};
+ GtkTreeIter _tmp19_ = {0};
+ GtkTreeIter _tmp20_ = {0};
+ GtkTreeIter* _tmp21_ = NULL;
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = self->priv->store;
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = iter;
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_insert_before (_tmp17_, &_tmp19_, NULL, &_tmp18_);
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (insertion_iter);
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = _tmp19_;
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = __gtk_tree_iter_dup0 (&_tmp20_);
+#line 444 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ insertion_iter = _tmp21_;
+#line 446 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (root_wrapper);
+#line 446 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 2923 "Tree.c"
+ }
+#line 449 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = self->priv->store;
+#line 449 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = gtk_tree_model_iter_next (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &iter);
+#line 449 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ found = _tmp23_;
+#line 439 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (root_wrapper);
+#line 2933 "Tree.c"
+ }
+#line 453 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = insertion_iter;
+#line 453 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp24_ == NULL) {
+#line 2939 "Tree.c"
+ GtkTreeStore* _tmp25_ = NULL;
+ GtkTreeIter _tmp26_ = {0};
+ GtkTreeIter _tmp27_ = {0};
+ GtkTreeIter* _tmp28_ = NULL;
+#line 454 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = self->priv->store;
+#line 454 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_append (_tmp25_, &_tmp26_, NULL);
+#line 454 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (insertion_iter);
+#line 454 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = _tmp26_;
+#line 454 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = __gtk_tree_iter_dup0 (&_tmp27_);
+#line 454 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ insertion_iter = _tmp28_;
+#line 2956 "Tree.c"
+ }
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp29_ = insertion_iter;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp30_ = self->priv->store;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp31_ = branch;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp32_ = sidebar_branch_get_root (_tmp31_);
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp33_ = _tmp32_;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp34_ = self->priv->store;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp35_ = insertion_iter;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp36_ = *_tmp35_;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp37_ = gtk_tree_model_get_path (G_TYPE_CHECK_INSTANCE_CAST (_tmp34_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp36_);
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp38_ = _tmp37_;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp39_ = position;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp40_ = sidebar_tree_root_wrapper_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GTK_TYPE_TREE_MODEL, GtkTreeModel), _tmp33_, _tmp38_, _tmp39_);
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp41_ = _tmp40_;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp42_ = *_tmp29_;
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_wrapper (self, &_tmp42_, G_TYPE_CHECK_INSTANCE_CAST (_tmp41_, SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, SidebarTreeEntryWrapper));
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp41_);
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp38_);
+#line 456 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp33_);
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp43_ = branch;
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp44_ = branch;
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp45_ = sidebar_branch_get_root (_tmp44_);
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp46_ = _tmp45_;
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp47_ = insertion_iter;
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp48_ = *_tmp47_;
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_children (self, _tmp43_, _tmp46_, &_tmp48_);
+#line 461 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp46_);
+#line 429 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (insertion_iter);
+#line 3012 "Tree.c"
+}
+
+
+static void sidebar_tree_associate_children (SidebarTree* self, SidebarBranch* branch, SidebarEntry* parent, GtkTreeIter* parent_iter) {
+ GeeList* children = NULL;
+ SidebarBranch* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+#line 464 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 464 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 464 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (parent));
+#line 464 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (parent_iter != NULL);
+#line 466 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = branch;
+#line 466 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = parent;
+#line 466 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = sidebar_branch_get_children (_tmp0_, _tmp1_);
+#line 466 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ children = _tmp2_;
+#line 467 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = children;
+#line 467 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ == NULL) {
+#line 468 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (children);
+#line 468 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 3046 "Tree.c"
+ }
+ {
+ GeeList* _child_list = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _child_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _child_index = 0;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = children;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_list = _tmp5_;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _child_list;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp7_;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_size = _tmp8_;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_index = -1;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ while (TRUE) {
+#line 3075 "Tree.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ SidebarEntry* child = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ GtkTreeIter append_iter = {0};
+ GtkTreeStore* _tmp15_ = NULL;
+ GtkTreeIter _tmp16_ = {0};
+ GtkTreeIter _tmp17_ = {0};
+ GtkTreeIter _tmp18_ = {0};
+ SidebarEntry* _tmp19_ = NULL;
+ SidebarBranch* _tmp20_ = NULL;
+ SidebarEntry* _tmp21_ = NULL;
+ GtkTreeIter _tmp22_ = {0};
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = _child_index;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_index = _tmp9_ + 1;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = _child_index;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = _child_size;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 3104 "Tree.c"
+ }
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = _child_list;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = _child_index;
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child = (SidebarEntry*) _tmp14_;
+#line 472 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = self->priv->store;
+#line 472 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = *parent_iter;
+#line 472 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_append (_tmp15_, &_tmp17_, &_tmp16_);
+#line 472 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ append_iter = _tmp17_;
+#line 474 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = append_iter;
+#line 474 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = child;
+#line 474 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_entry (self, &_tmp18_, _tmp19_);
+#line 475 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = branch;
+#line 475 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = child;
+#line 475 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = append_iter;
+#line 475 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_children (self, _tmp20_, _tmp21_, &_tmp22_);
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (child);
+#line 3138 "Tree.c"
+ }
+#line 470 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_child_list);
+#line 3142 "Tree.c"
+ }
+#line 464 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (children);
+#line 3146 "Tree.c"
+}
+
+
+static void sidebar_tree_associate_entry (SidebarTree* self, GtkTreeIter* assoc_iter, SidebarEntry* entry) {
+ GtkTreeIter _tmp0_ = {0};
+ GtkTreeStore* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ GtkTreeStore* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+ GtkTreePath* _tmp5_ = NULL;
+ GtkTreePath* _tmp6_ = NULL;
+ SidebarTreeEntryWrapper* _tmp7_ = NULL;
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+#line 479 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 479 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (assoc_iter != NULL);
+#line 479 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = *assoc_iter;
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->store;
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = entry;
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = self->priv->store;
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = *assoc_iter;
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gtk_tree_model_get_path (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp4_);
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp5_;
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = sidebar_tree_entry_wrapper_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GTK_TYPE_TREE_MODEL, GtkTreeModel), _tmp2_, _tmp6_);
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp7_;
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_wrapper (self, &_tmp0_, _tmp8_);
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp8_);
+#line 480 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp6_);
+#line 3190 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_sidebar_tooltip_changed_sidebar_entry_sidebar_tooltip_changed (SidebarEntry* _sender, const gchar* tooltip, gpointer self) {
+#line 494 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_sidebar_tooltip_changed ((SidebarTree*) self, _sender, tooltip);
+#line 3197 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_sidebar_icon_changed_sidebar_entry_sidebar_icon_changed (SidebarEntry* _sender, const gchar* icon, gpointer self) {
+#line 495 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_sidebar_icon_changed ((SidebarTree*) self, _sender, icon);
+#line 3204 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_sidebar_page_created_sidebar_page_representative_page_created (SidebarPageRepresentative* _sender, Page* page, gpointer self) {
+#line 499 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_sidebar_page_created ((SidebarTree*) self, _sender, page);
+#line 3211 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_sidebar_destroying_page_sidebar_page_representative_destroying_page (SidebarPageRepresentative* _sender, Page* page, gpointer self) {
+#line 500 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_sidebar_destroying_page ((SidebarTree*) self, _sender, page);
+#line 3218 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_is_emphasized_changed_sidebar_emphasizable_entry_is_emphasized_changed (SidebarEmphasizableEntry* _sender, gboolean emphasized, gpointer self) {
+#line 505 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_is_emphasized_changed ((SidebarTree*) self, _sender, emphasized);
+#line 3225 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_sidebar_name_changed_sidebar_renameable_entry_sidebar_name_changed (SidebarRenameableEntry* _sender, const gchar* name, gpointer self) {
+#line 509 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_sidebar_name_changed ((SidebarTree*) self, _sender, name);
+#line 3232 "Tree.c"
+}
+
+
+static void sidebar_tree_associate_wrapper (SidebarTree* self, GtkTreeIter* assoc_iter, SidebarTreeEntryWrapper* wrapper) {
+ SidebarEntry* entry = NULL;
+ SidebarTreeEntryWrapper* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ GeeHashMap* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+ GtkTreeStore* _tmp9_ = NULL;
+ GtkTreeIter _tmp10_ = {0};
+ SidebarEntry* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GtkTreeStore* _tmp14_ = NULL;
+ GtkTreeIter _tmp15_ = {0};
+ SidebarEntry* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GtkTreeStore* _tmp21_ = NULL;
+ GtkTreeIter _tmp22_ = {0};
+ SidebarTreeEntryWrapper* _tmp23_ = NULL;
+ GtkTreeIter _tmp24_ = {0};
+ SidebarEntry* _tmp25_ = NULL;
+ SidebarEntry* _tmp26_ = NULL;
+ SidebarPageRepresentative* pageable = NULL;
+ SidebarEntry* _tmp27_ = NULL;
+ SidebarPageRepresentative* _tmp28_ = NULL;
+ SidebarPageRepresentative* _tmp29_ = NULL;
+ SidebarEmphasizableEntry* emphasizable = NULL;
+ SidebarEntry* _tmp32_ = NULL;
+ SidebarEmphasizableEntry* _tmp33_ = NULL;
+ SidebarEmphasizableEntry* _tmp34_ = NULL;
+ SidebarRenameableEntry* renameable = NULL;
+ SidebarEntry* _tmp36_ = NULL;
+ SidebarRenameableEntry* _tmp37_ = NULL;
+ SidebarRenameableEntry* _tmp38_ = NULL;
+ SidebarEntry* _tmp40_ = NULL;
+#line 483 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 483 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (assoc_iter != NULL);
+#line 483 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_TREE_IS_ENTRY_WRAPPER (wrapper));
+#line 484 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = wrapper;
+#line 484 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp0_->entry;
+#line 484 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 484 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ entry = _tmp2_;
+#line 486 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = self->priv->entry_map;
+#line 486 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = entry;
+#line 486 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp4_);
+#line 486 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (!_tmp5_, "!entry_map.has_key(entry)");
+#line 487 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->entry_map;
+#line 487 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = entry;
+#line 487 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = wrapper;
+#line 487 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp7_, _tmp8_);
+#line 489 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = self->priv->store;
+#line 489 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = *assoc_iter;
+#line 489 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = entry;
+#line 489 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = sidebar_tree_get_name_for_entry (self, _tmp11_);
+#line 489 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = _tmp12_;
+#line 489 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp9_, &_tmp10_, SIDEBAR_TREE_COLUMNS_NAME, _tmp13_, -1);
+#line 489 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp13_);
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = self->priv->store;
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = *assoc_iter;
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = entry;
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = sidebar_entry_get_sidebar_tooltip (_tmp16_);
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = _tmp17_;
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = guarded_markup_escape_text (_tmp18_);
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = _tmp19_;
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp14_, &_tmp15_, SIDEBAR_TREE_COLUMNS_TOOLTIP, _tmp20_, -1);
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp20_);
+#line 490 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp18_);
+#line 491 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = self->priv->store;
+#line 491 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = *assoc_iter;
+#line 491 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = wrapper;
+#line 491 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp21_, &_tmp22_, SIDEBAR_TREE_COLUMNS_WRAPPER, _tmp23_, -1);
+#line 492 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = *assoc_iter;
+#line 492 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_load_entry_icons (self, &_tmp24_);
+#line 494 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = entry;
+#line 494 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp25_, "sidebar-tooltip-changed", (GCallback) _sidebar_tree_on_sidebar_tooltip_changed_sidebar_entry_sidebar_tooltip_changed, self, 0);
+#line 495 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = entry;
+#line 495 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp26_, "sidebar-icon-changed", (GCallback) _sidebar_tree_on_sidebar_icon_changed_sidebar_entry_sidebar_icon_changed, self, 0);
+#line 497 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = entry;
+#line 497 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp27_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE) ? ((SidebarPageRepresentative*) _tmp27_) : NULL);
+#line 497 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ pageable = _tmp28_;
+#line 498 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp29_ = pageable;
+#line 498 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp29_ != NULL) {
+#line 3372 "Tree.c"
+ SidebarPageRepresentative* _tmp30_ = NULL;
+ SidebarPageRepresentative* _tmp31_ = NULL;
+#line 499 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp30_ = pageable;
+#line 499 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp30_, "page-created", (GCallback) _sidebar_tree_on_sidebar_page_created_sidebar_page_representative_page_created, self, 0);
+#line 500 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp31_ = pageable;
+#line 500 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp31_, "destroying-page", (GCallback) _sidebar_tree_on_sidebar_destroying_page_sidebar_page_representative_destroying_page, self, 0);
+#line 3383 "Tree.c"
+ }
+#line 503 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp32_ = entry;
+#line 503 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp33_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp32_, SIDEBAR_TYPE_EMPHASIZABLE_ENTRY) ? ((SidebarEmphasizableEntry*) _tmp32_) : NULL);
+#line 503 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ emphasizable = _tmp33_;
+#line 504 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp34_ = emphasizable;
+#line 504 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp34_ != NULL) {
+#line 3395 "Tree.c"
+ SidebarEmphasizableEntry* _tmp35_ = NULL;
+#line 505 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp35_ = emphasizable;
+#line 505 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp35_, "is-emphasized-changed", (GCallback) _sidebar_tree_on_is_emphasized_changed_sidebar_emphasizable_entry_is_emphasized_changed, self, 0);
+#line 3401 "Tree.c"
+ }
+#line 507 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp36_ = entry;
+#line 507 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp37_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp36_, SIDEBAR_TYPE_RENAMEABLE_ENTRY) ? ((SidebarRenameableEntry*) _tmp36_) : NULL);
+#line 507 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ renameable = _tmp37_;
+#line 508 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp38_ = renameable;
+#line 508 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp38_ != NULL) {
+#line 3413 "Tree.c"
+ SidebarRenameableEntry* _tmp39_ = NULL;
+#line 509 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp39_ = renameable;
+#line 509 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (_tmp39_, "sidebar-name-changed", (GCallback) _sidebar_tree_on_sidebar_name_changed_sidebar_renameable_entry_sidebar_name_changed, self, 0);
+#line 3419 "Tree.c"
+ }
+#line 511 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp40_ = entry;
+#line 511 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_entry_grafted (_tmp40_, self);
+#line 483 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (renameable);
+#line 483 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (emphasizable);
+#line 483 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (pageable);
+#line 483 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (entry);
+#line 3433 "Tree.c"
+}
+
+
+static SidebarTreeEntryWrapper* sidebar_tree_reparent_wrapper (SidebarTree* self, GtkTreeIter* new_iter, SidebarTreeEntryWrapper* current_wrapper) {
+ SidebarTreeEntryWrapper* result = NULL;
+ SidebarEntry* entry = NULL;
+ SidebarTreeEntryWrapper* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ SidebarTreeEntryWrapper* new_wrapper = NULL;
+ GtkTreeStore* _tmp5_ = NULL;
+ GtkTreeStore* _tmp6_ = NULL;
+ GtkTreeIter _tmp7_ = {0};
+ GtkTreePath* _tmp8_ = NULL;
+ GtkTreePath* _tmp9_ = NULL;
+ SidebarTreeEntryWrapper* _tmp10_ = NULL;
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ GeeHashMap* _tmp12_ = NULL;
+ GtkTreeStore* _tmp13_ = NULL;
+ GtkTreeIter _tmp14_ = {0};
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ GtkTreeStore* _tmp17_ = NULL;
+ GtkTreeIter _tmp18_ = {0};
+ gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ GtkTreeStore* _tmp23_ = NULL;
+ GtkTreeIter _tmp24_ = {0};
+ GtkTreeIter _tmp25_ = {0};
+#line 514 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 514 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (new_iter != NULL, NULL);
+#line 514 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_TREE_IS_ENTRY_WRAPPER (current_wrapper), NULL);
+#line 515 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = current_wrapper;
+#line 515 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp0_->entry;
+#line 515 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 515 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ entry = _tmp2_;
+#line 517 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = self->priv->entry_map;
+#line 517 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), entry, NULL);
+#line 517 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ removed = _tmp4_;
+#line 518 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (removed, "removed");
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = self->priv->store;
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->store;
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = *new_iter;
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = gtk_tree_model_get_path (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp7_);
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = _tmp8_;
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = sidebar_tree_entry_wrapper_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GTK_TYPE_TREE_MODEL, GtkTreeModel), entry, _tmp9_);
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = _tmp10_;
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp9_);
+#line 520 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ new_wrapper = _tmp11_;
+#line 521 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = self->priv->entry_map;
+#line 521 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), entry, new_wrapper);
+#line 523 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = self->priv->store;
+#line 523 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = *new_iter;
+#line 523 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = sidebar_tree_get_name_for_entry (self, entry);
+#line 523 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = _tmp15_;
+#line 523 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp13_, &_tmp14_, SIDEBAR_TREE_COLUMNS_NAME, _tmp16_, -1);
+#line 523 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp16_);
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = self->priv->store;
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = *new_iter;
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = sidebar_entry_get_sidebar_tooltip (entry);
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = _tmp19_;
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = guarded_markup_escape_text (_tmp20_);
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = _tmp21_;
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp17_, &_tmp18_, SIDEBAR_TREE_COLUMNS_TOOLTIP, _tmp22_, -1);
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp22_);
+#line 524 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp20_);
+#line 525 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = self->priv->store;
+#line 525 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = *new_iter;
+#line 525 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp23_, &_tmp24_, SIDEBAR_TREE_COLUMNS_WRAPPER, new_wrapper, -1);
+#line 526 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = *new_iter;
+#line 526 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_load_entry_icons (self, &_tmp25_);
+#line 528 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = new_wrapper;
+#line 528 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (entry);
+#line 528 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 3558 "Tree.c"
+}
+
+
+void sidebar_tree_prune (SidebarTree* self, SidebarBranch* branch) {
+ GeeHashMap* _tmp0_ = NULL;
+ SidebarBranch* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ SidebarBranch* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ gboolean _tmp7_ = FALSE;
+ SidebarBranch* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ SidebarBranch* _tmp11_ = NULL;
+ guint _tmp12_ = 0U;
+ SidebarBranch* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ SidebarBranch* _tmp15_ = NULL;
+ guint _tmp16_ = 0U;
+ SidebarBranch* _tmp17_ = NULL;
+ guint _tmp18_ = 0U;
+ SidebarBranch* _tmp19_ = NULL;
+ guint _tmp20_ = 0U;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp21_ = NULL;
+ SidebarBranch* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ SidebarBranch* _tmp24_ = NULL;
+#line 531 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 531 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 532 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->branches;
+#line 532 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = branch;
+#line 532 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 532 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp2_, "branches.has_key(branch)");
+#line 534 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = branch;
+#line 534 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = sidebar_branch_get_root (_tmp3_);
+#line 534 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_;
+#line 534 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = sidebar_tree_has_wrapper (self, _tmp5_);
+#line 534 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = _tmp6_;
+#line 534 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp5_);
+#line 534 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp7_) {
+#line 3614 "Tree.c"
+ SidebarBranch* _tmp8_ = NULL;
+#line 535 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = branch;
+#line 535 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_disassociate_branch (self, _tmp8_);
+#line 3620 "Tree.c"
+ }
+#line 537 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = branch;
+#line 537 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("entry-added", SIDEBAR_TYPE_BRANCH, &_tmp10_, NULL, FALSE);
+#line 537 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp9_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp10_, 0, NULL, (GCallback) _sidebar_tree_on_branch_entry_added_sidebar_branch_entry_added, self);
+#line 538 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = branch;
+#line 538 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("entry-removed", SIDEBAR_TYPE_BRANCH, &_tmp12_, NULL, FALSE);
+#line 538 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp11_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp12_, 0, NULL, (GCallback) _sidebar_tree_on_branch_entry_removed_sidebar_branch_entry_removed, self);
+#line 539 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = branch;
+#line 539 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("entry-moved", SIDEBAR_TYPE_BRANCH, &_tmp14_, NULL, FALSE);
+#line 539 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp13_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _sidebar_tree_on_branch_entry_moved_sidebar_branch_entry_moved, self);
+#line 540 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = branch;
+#line 540 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("entry-reparented", SIDEBAR_TYPE_BRANCH, &_tmp16_, NULL, FALSE);
+#line 540 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp15_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _sidebar_tree_on_branch_entry_reparented_sidebar_branch_entry_reparented, self);
+#line 541 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = branch;
+#line 541 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("children-reordered", SIDEBAR_TYPE_BRANCH, &_tmp18_, NULL, FALSE);
+#line 541 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp17_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp18_, 0, NULL, (GCallback) _sidebar_tree_on_branch_children_reordered_sidebar_branch_children_reordered, self);
+#line 542 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = branch;
+#line 542 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("show-branch", SIDEBAR_TYPE_BRANCH, &_tmp20_, NULL, FALSE);
+#line 542 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp19_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp20_, 0, NULL, (GCallback) _sidebar_tree_on_show_branch_sidebar_branch_show_branch, self);
+#line 544 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = self->priv->branches;
+#line 544 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = branch;
+#line 544 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp22_, NULL);
+#line 544 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ removed = _tmp23_;
+#line 545 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (removed, "removed");
+#line 547 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = branch;
+#line 547 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "branch-removed", _tmp24_);
+#line 3672 "Tree.c"
+}
+
+
+static void sidebar_tree_disassociate_branch (SidebarTree* self, SidebarBranch* branch) {
+ SidebarTreeRootWrapper* root_wrapper = NULL;
+ SidebarBranch* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarTreeRootWrapper* _tmp4_ = NULL;
+ SidebarTreeRootWrapper* _tmp5_ = NULL;
+#line 550 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 550 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = branch;
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_branch_get_root (_tmp0_);
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _tmp1_;
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = sidebar_tree_get_wrapper (self, _tmp2_);
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, SIDEBAR_TREE_TYPE_ROOT_WRAPPER) ? ((SidebarTreeRootWrapper*) _tmp3_) : NULL;
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp4_ == NULL) {
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp3_);
+#line 3702 "Tree.c"
+ }
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_;
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp2_);
+#line 551 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ root_wrapper = _tmp5_;
+#line 552 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (root_wrapper != NULL, "root_wrapper != null");
+#line 554 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_disassociate_wrapper_and_signal (self, G_TYPE_CHECK_INSTANCE_CAST (root_wrapper, SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, SidebarTreeEntryWrapper), FALSE);
+#line 550 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (root_wrapper);
+#line 3716 "Tree.c"
+}
+
+
+static void sidebar_tree_disassociate_wrapper_and_signal (SidebarTree* self, SidebarTreeEntryWrapper* wrapper, gboolean only_children) {
+ gboolean selected = FALSE;
+ SidebarTreeEntryWrapper* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+#line 559 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 559 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_TREE_IS_ENTRY_WRAPPER (wrapper));
+#line 560 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = wrapper;
+#line 560 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp0_->entry;
+#line 560 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = sidebar_tree_is_selected (self, _tmp1_);
+#line 560 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selected = _tmp2_;
+#line 562 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 562 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = only_children;
+#line 562 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_disassociate_wrapper (self, _tmp3_, _tmp4_);
+#line 564 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = selected;
+#line 564 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp5_) {
+#line 3750 "Tree.c"
+ SidebarSelectableEntry* selectable = NULL;
+ SidebarTreeEntryWrapper* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ SidebarSelectableEntry* _tmp8_ = NULL;
+ SidebarSelectableEntry* _tmp9_ = NULL;
+ SidebarSelectableEntry* _tmp10_ = NULL;
+#line 565 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = wrapper;
+#line 565 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = _tmp6_->entry;
+#line 565 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, SIDEBAR_TYPE_SELECTABLE_ENTRY) ? ((SidebarSelectableEntry*) _tmp7_) : NULL);
+#line 565 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selectable = _tmp8_;
+#line 566 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = selectable;
+#line 566 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp9_ != NULL, "selectable != null");
+#line 568 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = selectable;
+#line 568 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "selected-entry-removed", _tmp10_);
+#line 564 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selectable);
+#line 3775 "Tree.c"
+ }
+}
+
+
+static void sidebar_tree_disassociate_wrapper (SidebarTree* self, SidebarTreeEntryWrapper* wrapper, gboolean only_children) {
+ GeeArrayList* children = NULL;
+ GeeArrayList* _tmp0_ = NULL;
+ GtkTreeIter child_iter = {0};
+ gboolean found = FALSE;
+ GtkTreeStore* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ GtkTreeIter _tmp3_ = {0};
+ GtkTreeIter _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp26_ = FALSE;
+ GtkTreeIter iter = {0};
+ SidebarTreeEntryWrapper* _tmp27_ = NULL;
+ GtkTreeIter _tmp28_ = {0};
+ GtkTreeStore* _tmp29_ = NULL;
+ SidebarTreeEntryWrapper* _tmp30_ = NULL;
+ SidebarTreeEntryWrapper* _tmp31_ = NULL;
+ SidebarEntry* entry = NULL;
+ SidebarTreeEntryWrapper* _tmp32_ = NULL;
+ SidebarEntry* _tmp33_ = NULL;
+ SidebarEntry* _tmp34_ = NULL;
+ SidebarEntry* _tmp35_ = NULL;
+ SidebarEntry* _tmp36_ = NULL;
+ guint _tmp37_ = 0U;
+ SidebarEntry* _tmp38_ = NULL;
+ guint _tmp39_ = 0U;
+ SidebarPageRepresentative* pageable = NULL;
+ SidebarEntry* _tmp40_ = NULL;
+ SidebarPageRepresentative* _tmp41_ = NULL;
+ SidebarPageRepresentative* _tmp42_ = NULL;
+ SidebarRenameableEntry* renameable = NULL;
+ SidebarEntry* _tmp47_ = NULL;
+ SidebarRenameableEntry* _tmp48_ = NULL;
+ SidebarRenameableEntry* _tmp49_ = NULL;
+ SidebarEmphasizableEntry* emphasizable = NULL;
+ SidebarEntry* _tmp52_ = NULL;
+ SidebarEmphasizableEntry* _tmp53_ = NULL;
+ SidebarEmphasizableEntry* _tmp54_ = NULL;
+ gboolean removed = FALSE;
+ GeeHashMap* _tmp57_ = NULL;
+ SidebarEntry* _tmp58_ = NULL;
+ gboolean _tmp59_ = FALSE;
+ gboolean _tmp60_ = FALSE;
+#line 572 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 572 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_TREE_IS_ENTRY_WRAPPER (wrapper));
+#line 573 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = gee_array_list_new (SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 573 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ children = _tmp0_;
+#line 576 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->store;
+#line 576 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 576 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp2_, &_tmp3_);
+#line 576 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gtk_tree_model_iter_children (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp4_, &_tmp3_);
+#line 576 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child_iter = _tmp4_;
+#line 576 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ found = _tmp5_;
+#line 577 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ while (TRUE) {
+#line 3845 "Tree.c"
+ gboolean _tmp6_ = FALSE;
+ SidebarTreeEntryWrapper* child_wrapper = NULL;
+ GtkTreeIter _tmp7_ = {0};
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+ SidebarTreeEntryWrapper* _tmp9_ = NULL;
+ GeeArrayList* _tmp10_ = NULL;
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ GtkTreeStore* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+#line 577 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = found;
+#line 577 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp6_) {
+#line 577 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 3861 "Tree.c"
+ }
+#line 578 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = child_iter;
+#line 578 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = sidebar_tree_get_wrapper_at_iter (self, &_tmp7_);
+#line 578 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child_wrapper = _tmp8_;
+#line 579 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = child_wrapper;
+#line 579 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp9_ != NULL, "child_wrapper != null");
+#line 581 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = children;
+#line 581 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = child_wrapper;
+#line 581 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp11_);
+#line 583 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = self->priv->store;
+#line 583 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = gtk_tree_model_iter_next (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &child_iter);
+#line 583 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ found = _tmp13_;
+#line 577 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (child_wrapper);
+#line 3887 "Tree.c"
+ }
+ {
+ GeeArrayList* _child_wrapper_list = NULL;
+ GeeArrayList* _tmp14_ = NULL;
+ GeeArrayList* _tmp15_ = NULL;
+ gint _child_wrapper_size = 0;
+ GeeArrayList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gint _child_wrapper_index = 0;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = children;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_wrapper_list = _tmp15_;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = _child_wrapper_list;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = _tmp17_;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_wrapper_size = _tmp18_;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_wrapper_index = -1;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ while (TRUE) {
+#line 3916 "Tree.c"
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _tmp21_ = 0;
+ SidebarTreeEntryWrapper* child_wrapper = NULL;
+ GeeArrayList* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gpointer _tmp24_ = NULL;
+ SidebarTreeEntryWrapper* _tmp25_ = NULL;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = _child_wrapper_index;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_wrapper_index = _tmp19_ + 1;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = _child_wrapper_index;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = _child_wrapper_size;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!(_tmp20_ < _tmp21_)) {
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 3937 "Tree.c"
+ }
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = _child_wrapper_list;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = _child_wrapper_index;
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = gee_abstract_list_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), _tmp23_);
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child_wrapper = (SidebarTreeEntryWrapper*) _tmp24_;
+#line 587 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = child_wrapper;
+#line 587 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_disassociate_wrapper (self, _tmp25_, FALSE);
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (child_wrapper);
+#line 3953 "Tree.c"
+ }
+#line 586 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_child_wrapper_list);
+#line 3957 "Tree.c"
+ }
+#line 589 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = only_children;
+#line 589 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp26_) {
+#line 590 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (children);
+#line 590 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 3967 "Tree.c"
+ }
+#line 592 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = wrapper;
+#line 592 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp27_, &_tmp28_);
+#line 592 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ iter = _tmp28_;
+#line 593 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp29_ = self->priv->store;
+#line 593 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_remove (_tmp29_, &iter);
+#line 595 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp30_ = self->priv->selected_wrapper;
+#line 595 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp31_ = wrapper;
+#line 595 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp30_ == _tmp31_) {
+#line 596 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->selected_wrapper = NULL;
+#line 3987 "Tree.c"
+ }
+#line 598 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp32_ = wrapper;
+#line 598 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp33_ = _tmp32_->entry;
+#line 598 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp34_ = _g_object_ref0 (_tmp33_);
+#line 598 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ entry = _tmp34_;
+#line 600 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp35_ = entry;
+#line 600 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_entry_pruned (_tmp35_, self);
+#line 602 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp36_ = entry;
+#line 602 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("sidebar-tooltip-changed", SIDEBAR_TYPE_ENTRY, &_tmp37_, NULL, FALSE);
+#line 602 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp36_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp37_, 0, NULL, (GCallback) _sidebar_tree_on_sidebar_tooltip_changed_sidebar_entry_sidebar_tooltip_changed, self);
+#line 603 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp38_ = entry;
+#line 603 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("sidebar-icon-changed", SIDEBAR_TYPE_ENTRY, &_tmp39_, NULL, FALSE);
+#line 603 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp38_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp39_, 0, NULL, (GCallback) _sidebar_tree_on_sidebar_icon_changed_sidebar_entry_sidebar_icon_changed, self);
+#line 605 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp40_ = entry;
+#line 605 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp41_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp40_, SIDEBAR_TYPE_PAGE_REPRESENTATIVE) ? ((SidebarPageRepresentative*) _tmp40_) : NULL);
+#line 605 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ pageable = _tmp41_;
+#line 606 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp42_ = pageable;
+#line 606 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp42_ != NULL) {
+#line 4023 "Tree.c"
+ SidebarPageRepresentative* _tmp43_ = NULL;
+ guint _tmp44_ = 0U;
+ SidebarPageRepresentative* _tmp45_ = NULL;
+ guint _tmp46_ = 0U;
+#line 607 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp43_ = pageable;
+#line 607 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("page-created", SIDEBAR_TYPE_PAGE_REPRESENTATIVE, &_tmp44_, NULL, FALSE);
+#line 607 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp43_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp44_, 0, NULL, (GCallback) _sidebar_tree_on_sidebar_page_created_sidebar_page_representative_page_created, self);
+#line 608 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp45_ = pageable;
+#line 608 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("destroying-page", SIDEBAR_TYPE_PAGE_REPRESENTATIVE, &_tmp46_, NULL, FALSE);
+#line 608 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp45_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp46_, 0, NULL, (GCallback) _sidebar_tree_on_sidebar_destroying_page_sidebar_page_representative_destroying_page, self);
+#line 4040 "Tree.c"
+ }
+#line 611 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp47_ = entry;
+#line 611 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp48_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp47_, SIDEBAR_TYPE_RENAMEABLE_ENTRY) ? ((SidebarRenameableEntry*) _tmp47_) : NULL);
+#line 611 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ renameable = _tmp48_;
+#line 612 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp49_ = renameable;
+#line 612 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp49_ != NULL) {
+#line 4052 "Tree.c"
+ SidebarRenameableEntry* _tmp50_ = NULL;
+ guint _tmp51_ = 0U;
+#line 613 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp50_ = renameable;
+#line 613 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("sidebar-name-changed", SIDEBAR_TYPE_RENAMEABLE_ENTRY, &_tmp51_, NULL, FALSE);
+#line 613 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp50_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp51_, 0, NULL, (GCallback) _sidebar_tree_on_sidebar_name_changed_sidebar_renameable_entry_sidebar_name_changed, self);
+#line 4061 "Tree.c"
+ }
+#line 615 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp52_ = entry;
+#line 615 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp53_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp52_, SIDEBAR_TYPE_EMPHASIZABLE_ENTRY) ? ((SidebarEmphasizableEntry*) _tmp52_) : NULL);
+#line 615 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ emphasizable = _tmp53_;
+#line 616 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp54_ = emphasizable;
+#line 616 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp54_ != NULL) {
+#line 4073 "Tree.c"
+ SidebarEmphasizableEntry* _tmp55_ = NULL;
+ guint _tmp56_ = 0U;
+#line 617 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp55_ = emphasizable;
+#line 617 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("is-emphasized-changed", SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, &_tmp56_, NULL, FALSE);
+#line 617 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (_tmp55_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp56_, 0, NULL, (GCallback) _sidebar_tree_on_is_emphasized_changed_sidebar_emphasizable_entry_is_emphasized_changed, self);
+#line 4082 "Tree.c"
+ }
+#line 619 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp57_ = self->priv->entry_map;
+#line 619 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp58_ = entry;
+#line 619 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp59_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp57_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp58_, NULL);
+#line 619 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ removed = _tmp59_;
+#line 620 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp60_ = removed;
+#line 620 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp60_, "removed");
+#line 572 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (emphasizable);
+#line 572 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (renameable);
+#line 572 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (pageable);
+#line 572 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (entry);
+#line 572 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (children);
+#line 4106 "Tree.c"
+}
+
+
+static void sidebar_tree_on_branch_entry_added (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry) {
+ SidebarEntry* parent = NULL;
+ SidebarBranch* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ SidebarEntry* _tmp3_ = NULL;
+ SidebarTreeEntryWrapper* parent_wrapper = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarTreeEntryWrapper* _tmp5_ = NULL;
+ SidebarTreeEntryWrapper* _tmp6_ = NULL;
+ GtkTreeIter insertion_iter = {0};
+ SidebarEntry* next = NULL;
+ SidebarBranch* _tmp7_ = NULL;
+ SidebarEntry* _tmp8_ = NULL;
+ SidebarEntry* _tmp9_ = NULL;
+ SidebarEntry* _tmp10_ = NULL;
+ GtkTreeIter _tmp23_ = {0};
+ SidebarEntry* _tmp24_ = NULL;
+ SidebarBranch* _tmp25_ = NULL;
+ SidebarEntry* _tmp26_ = NULL;
+ GtkTreeIter _tmp27_ = {0};
+ SidebarBranch* _tmp28_ = NULL;
+ gboolean _tmp29_ = FALSE;
+#line 623 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 623 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 623 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 624 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = branch;
+#line 624 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = entry;
+#line 624 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = sidebar_branch_get_parent (_tmp0_, _tmp1_);
+#line 624 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ parent = _tmp2_;
+#line 625 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = parent;
+#line 625 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp3_ != NULL, "parent != null");
+#line 627 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = parent;
+#line 627 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = sidebar_tree_get_wrapper (self, _tmp4_);
+#line 627 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ parent_wrapper = _tmp5_;
+#line 628 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = parent_wrapper;
+#line 628 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp6_ != NULL, "parent_wrapper != null");
+#line 631 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = branch;
+#line 631 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = entry;
+#line 631 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = sidebar_branch_get_next_sibling (_tmp7_, _tmp8_);
+#line 631 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ next = _tmp9_;
+#line 632 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = next;
+#line 632 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp10_ != NULL) {
+#line 4173 "Tree.c"
+ SidebarTreeEntryWrapper* next_wrapper = NULL;
+ SidebarEntry* _tmp11_ = NULL;
+ SidebarTreeEntryWrapper* _tmp12_ = NULL;
+ GtkTreeStore* _tmp13_ = NULL;
+ SidebarTreeEntryWrapper* _tmp14_ = NULL;
+ GtkTreeIter _tmp15_ = {0};
+ SidebarTreeEntryWrapper* _tmp16_ = NULL;
+ GtkTreeIter _tmp17_ = {0};
+ GtkTreeIter _tmp18_ = {0};
+#line 633 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = next;
+#line 633 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = sidebar_tree_get_wrapper (self, _tmp11_);
+#line 633 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ next_wrapper = _tmp12_;
+#line 636 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = self->priv->store;
+#line 636 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = parent_wrapper;
+#line 636 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp14_, &_tmp15_);
+#line 636 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = next_wrapper;
+#line 636 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp16_, &_tmp17_);
+#line 636 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_insert_before (_tmp13_, &_tmp18_, &_tmp15_, &_tmp17_);
+#line 636 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ insertion_iter = _tmp18_;
+#line 632 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (next_wrapper);
+#line 4205 "Tree.c"
+ } else {
+ GtkTreeStore* _tmp19_ = NULL;
+ SidebarTreeEntryWrapper* _tmp20_ = NULL;
+ GtkTreeIter _tmp21_ = {0};
+ GtkTreeIter _tmp22_ = {0};
+#line 639 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = self->priv->store;
+#line 639 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = parent_wrapper;
+#line 639 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp20_, &_tmp21_);
+#line 639 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_append (_tmp19_, &_tmp22_, &_tmp21_);
+#line 639 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ insertion_iter = _tmp22_;
+#line 4221 "Tree.c"
+ }
+#line 642 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = insertion_iter;
+#line 642 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = entry;
+#line 642 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_entry (self, &_tmp23_, _tmp24_);
+#line 643 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = branch;
+#line 643 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = entry;
+#line 643 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = insertion_iter;
+#line 643 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_children (self, _tmp25_, _tmp26_, &_tmp27_);
+#line 645 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = branch;
+#line 645 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp29_ = sidebar_branch_is_auto_open_on_new_child (_tmp28_);
+#line 645 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp29_) {
+#line 4243 "Tree.c"
+ SidebarEntry* _tmp30_ = NULL;
+#line 646 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp30_ = entry;
+#line 646 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_expand_to_entry (self, _tmp30_);
+#line 4249 "Tree.c"
+ }
+#line 623 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (next);
+#line 623 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (parent_wrapper);
+#line 623 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (parent);
+#line 4257 "Tree.c"
+}
+
+
+static void sidebar_tree_on_branch_entry_removed (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+#line 649 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 649 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 649 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 650 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 650 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 650 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 651 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (wrapper != NULL, "wrapper != null");
+#line 652 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (!G_TYPE_CHECK_INSTANCE_TYPE (wrapper, SIDEBAR_TREE_TYPE_ROOT_WRAPPER), "!(wrapper is RootWrapper)");
+#line 654 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_disassociate_wrapper_and_signal (self, wrapper, FALSE);
+#line 649 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 4285 "Tree.c"
+}
+
+
+static void sidebar_tree_on_branch_entry_moved (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ GtkTreeIter* prev_iter = NULL;
+ SidebarEntry* prev = NULL;
+ SidebarBranch* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarEntry* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ GtkTreeIter entry_iter = {0};
+ SidebarTreeEntryWrapper* _tmp14_ = NULL;
+ GtkTreeIter _tmp15_ = {0};
+ GtkTreeStore* _tmp16_ = NULL;
+ GtkTreeIter* _tmp17_ = NULL;
+#line 657 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 657 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 657 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 658 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 658 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 658 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 659 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 659 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp2_ != NULL, "wrapper != null");
+#line 660 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 660 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, SIDEBAR_TREE_TYPE_ROOT_WRAPPER), "!(wrapper is RootWrapper)");
+#line 663 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev_iter = NULL;
+#line 664 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = branch;
+#line 664 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = entry;
+#line 664 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = sidebar_branch_get_previous_sibling (_tmp4_, _tmp5_);
+#line 664 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev = _tmp6_;
+#line 665 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = prev;
+#line 665 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp7_ != NULL) {
+#line 4340 "Tree.c"
+ SidebarTreeEntryWrapper* prev_wrapper = NULL;
+ SidebarEntry* _tmp8_ = NULL;
+ SidebarTreeEntryWrapper* _tmp9_ = NULL;
+ SidebarTreeEntryWrapper* _tmp10_ = NULL;
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ GtkTreeIter _tmp12_ = {0};
+ GtkTreeIter* _tmp13_ = NULL;
+#line 666 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = prev;
+#line 666 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = sidebar_tree_get_wrapper (self, _tmp8_);
+#line 666 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev_wrapper = _tmp9_;
+#line 667 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = prev_wrapper;
+#line 667 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp10_ != NULL, "prev_wrapper != null");
+#line 669 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = prev_wrapper;
+#line 669 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp11_, &_tmp12_);
+#line 669 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = __gtk_tree_iter_dup0 (&_tmp12_);
+#line 669 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (prev_iter);
+#line 669 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev_iter = _tmp13_;
+#line 665 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (prev_wrapper);
+#line 4370 "Tree.c"
+ }
+#line 672 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = wrapper;
+#line 672 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp14_, &_tmp15_);
+#line 672 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ entry_iter = _tmp15_;
+#line 673 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = self->priv->store;
+#line 673 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = prev_iter;
+#line 673 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_move_after (_tmp16_, &entry_iter, _tmp17_);
+#line 657 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (prev);
+#line 657 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (prev_iter);
+#line 657 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 4390 "Tree.c"
+}
+
+
+static void sidebar_tree_on_branch_entry_reparented (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry, SidebarEntry* old_parent) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ gboolean selected = FALSE;
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreePath* _tmp5_ = NULL;
+ SidebarTreeEntryWrapper* _tmp6_ = NULL;
+ GtkTreePath* _tmp7_ = NULL;
+ GtkTreePath* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gboolean _tmp10_ = FALSE;
+ GtkTreeIter iter = {0};
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ GtkTreeIter _tmp12_ = {0};
+ GtkTreeStore* _tmp13_ = NULL;
+ SidebarEntry* parent = NULL;
+ SidebarBranch* _tmp14_ = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ SidebarEntry* _tmp16_ = NULL;
+ SidebarEntry* _tmp17_ = NULL;
+ SidebarTreeEntryWrapper* parent_wrapper = NULL;
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarTreeEntryWrapper* _tmp19_ = NULL;
+ SidebarTreeEntryWrapper* _tmp20_ = NULL;
+ GtkTreeIter* prev_iter = NULL;
+ SidebarEntry* prev = NULL;
+ SidebarBranch* _tmp21_ = NULL;
+ SidebarEntry* _tmp22_ = NULL;
+ SidebarEntry* _tmp23_ = NULL;
+ SidebarEntry* _tmp24_ = NULL;
+ GtkTreeIter new_iter = {0};
+ GtkTreeStore* _tmp31_ = NULL;
+ SidebarTreeEntryWrapper* _tmp32_ = NULL;
+ GtkTreeIter _tmp33_ = {0};
+ GtkTreeIter* _tmp34_ = NULL;
+ GtkTreeIter _tmp35_ = {0};
+ SidebarTreeEntryWrapper* new_wrapper = NULL;
+ GtkTreeIter _tmp36_ = {0};
+ SidebarTreeEntryWrapper* _tmp37_ = NULL;
+ SidebarTreeEntryWrapper* _tmp38_ = NULL;
+ gboolean _tmp39_ = FALSE;
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (old_parent));
+#line 678 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 678 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 678 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 679 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 679 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp2_ != NULL, "wrapper != null");
+#line 680 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 680 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (!G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, SIDEBAR_TREE_TYPE_ROOT_WRAPPER), "!(wrapper is RootWrapper)");
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = sidebar_tree_get_current_path (self);
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_;
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = wrapper;
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = sidebar_tree_entry_wrapper_get_path (_tmp6_);
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp7_;
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = gtk_tree_path_compare (_tmp5_, _tmp8_);
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = _tmp9_ == 0;
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp8_);
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp5_);
+#line 682 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selected = _tmp10_;
+#line 685 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = wrapper;
+#line 685 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp11_, &_tmp12_);
+#line 685 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ iter = _tmp12_;
+#line 686 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = self->priv->store;
+#line 686 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_remove (_tmp13_, &iter);
+#line 688 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = branch;
+#line 688 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = entry;
+#line 688 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = sidebar_branch_get_parent (_tmp14_, _tmp15_);
+#line 688 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ parent = _tmp16_;
+#line 689 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = parent;
+#line 689 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp17_ != NULL, "parent != null");
+#line 691 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = parent;
+#line 691 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = sidebar_tree_get_wrapper (self, _tmp18_);
+#line 691 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ parent_wrapper = _tmp19_;
+#line 692 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = parent_wrapper;
+#line 692 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp20_ != NULL, "parent_wrapper != null");
+#line 695 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev_iter = NULL;
+#line 696 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = branch;
+#line 696 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = entry;
+#line 696 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = sidebar_branch_get_previous_sibling (_tmp21_, _tmp22_);
+#line 696 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev = _tmp23_;
+#line 697 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = prev;
+#line 697 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp24_ != NULL) {
+#line 4526 "Tree.c"
+ SidebarTreeEntryWrapper* prev_wrapper = NULL;
+ SidebarEntry* _tmp25_ = NULL;
+ SidebarTreeEntryWrapper* _tmp26_ = NULL;
+ SidebarTreeEntryWrapper* _tmp27_ = NULL;
+ SidebarTreeEntryWrapper* _tmp28_ = NULL;
+ GtkTreeIter _tmp29_ = {0};
+ GtkTreeIter* _tmp30_ = NULL;
+#line 698 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = prev;
+#line 698 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = sidebar_tree_get_wrapper (self, _tmp25_);
+#line 698 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev_wrapper = _tmp26_;
+#line 699 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = prev_wrapper;
+#line 699 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp27_ != NULL, "prev_wrapper != null");
+#line 701 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = prev_wrapper;
+#line 701 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp28_, &_tmp29_);
+#line 701 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp30_ = __gtk_tree_iter_dup0 (&_tmp29_);
+#line 701 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (prev_iter);
+#line 701 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ prev_iter = _tmp30_;
+#line 697 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (prev_wrapper);
+#line 4556 "Tree.c"
+ }
+#line 705 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp31_ = self->priv->store;
+#line 705 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp32_ = parent_wrapper;
+#line 705 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp32_, &_tmp33_);
+#line 705 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp34_ = prev_iter;
+#line 705 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_insert_after (_tmp31_, &_tmp35_, &_tmp33_, _tmp34_);
+#line 705 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ new_iter = _tmp35_;
+#line 707 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp36_ = new_iter;
+#line 707 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp37_ = wrapper;
+#line 707 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp38_ = sidebar_tree_reparent_wrapper (self, &_tmp36_, _tmp37_);
+#line 707 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ new_wrapper = _tmp38_;
+#line 709 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp39_ = selected;
+#line 709 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp39_) {
+#line 4582 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp40_ = NULL;
+ SidebarEntry* _tmp41_ = NULL;
+ SidebarTreeEntryWrapper* _tmp42_ = NULL;
+ SidebarEntry* _tmp43_ = NULL;
+#line 710 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp40_ = new_wrapper;
+#line 710 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp41_ = _tmp40_->entry;
+#line 710 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_expand_to_entry (self, _tmp41_);
+#line 711 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp42_ = new_wrapper;
+#line 711 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp43_ = _tmp42_->entry;
+#line 711 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_place_cursor (self, _tmp43_, FALSE);
+#line 4599 "Tree.c"
+ }
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (new_wrapper);
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (prev);
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (prev_iter);
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (parent_wrapper);
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (parent);
+#line 676 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 4613 "Tree.c"
+}
+
+
+static void sidebar_tree_on_branch_children_reordered (SidebarTree* self, SidebarBranch* branch, SidebarEntry* entry) {
+ GeeList* children = NULL;
+ SidebarBranch* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+#line 715 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 715 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 715 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 716 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = branch;
+#line 716 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = entry;
+#line 716 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = sidebar_branch_get_children (_tmp0_, _tmp1_);
+#line 716 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ children = _tmp2_;
+#line 717 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = children;
+#line 717 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ == NULL) {
+#line 718 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (children);
+#line 718 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 4645 "Tree.c"
+ }
+ {
+ GeeList* _child_list = NULL;
+ GeeList* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _child_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _child_index = 0;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = children;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _g_object_ref0 (_tmp4_);
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_list = _tmp5_;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _child_list;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp7_;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_size = _tmp8_;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_index = -1;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ while (TRUE) {
+#line 4674 "Tree.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ SidebarEntry* child = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ SidebarTreeEntryWrapper* child_wrapper = NULL;
+ SidebarEntry* _tmp15_ = NULL;
+ SidebarTreeEntryWrapper* _tmp16_ = NULL;
+ SidebarTreeEntryWrapper* _tmp17_ = NULL;
+ GtkTreeIter child_iter = {0};
+ SidebarTreeEntryWrapper* _tmp18_ = NULL;
+ GtkTreeIter _tmp19_ = {0};
+ GtkTreeStore* _tmp20_ = NULL;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = _child_index;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _child_index = _tmp9_ + 1;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = _child_index;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = _child_size;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 4702 "Tree.c"
+ }
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = _child_list;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = _child_index;
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child = (SidebarEntry*) _tmp14_;
+#line 723 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = child;
+#line 723 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = sidebar_tree_get_wrapper (self, _tmp15_);
+#line 723 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child_wrapper = _tmp16_;
+#line 724 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = child_wrapper;
+#line 724 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp17_ != NULL, "child_wrapper != null");
+#line 726 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = child_wrapper;
+#line 726 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (_tmp18_, &_tmp19_);
+#line 726 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child_iter = _tmp19_;
+#line 727 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = self->priv->store;
+#line 727 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_move_before (_tmp20_, &child_iter, NULL);
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (child_wrapper);
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (child);
+#line 4736 "Tree.c"
+ }
+#line 722 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_child_list);
+#line 4740 "Tree.c"
+ }
+#line 715 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (children);
+#line 4744 "Tree.c"
+}
+
+
+static void sidebar_tree_on_show_branch (SidebarTree* self, SidebarBranch* branch, gboolean shown) {
+ gboolean _tmp0_ = FALSE;
+ SidebarBranch* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 731 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 731 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_BRANCH (branch));
+#line 732 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = shown;
+#line 732 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp0_) {
+#line 4760 "Tree.c"
+ SidebarBranch* _tmp1_ = NULL;
+#line 733 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = branch;
+#line 733 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_associate_branch (self, _tmp1_);
+#line 4766 "Tree.c"
+ } else {
+ SidebarBranch* _tmp2_ = NULL;
+#line 735 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = branch;
+#line 735 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_disassociate_branch (self, _tmp2_);
+#line 4773 "Tree.c"
+ }
+#line 737 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = branch;
+#line 737 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = shown;
+#line 737 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "branch-shown", _tmp3_, _tmp4_);
+#line 4781 "Tree.c"
+}
+
+
+static void sidebar_tree_on_sidebar_tooltip_changed (SidebarTree* self, SidebarEntry* entry, const gchar* tooltip) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ GtkTreeStore* _tmp2_ = NULL;
+ GtkTreeIter _tmp3_ = {0};
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 740 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 740 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 741 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 741 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 741 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 742 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (wrapper != NULL, "wrapper != null");
+#line 744 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = self->priv->store;
+#line 744 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (wrapper, &_tmp3_);
+#line 744 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = tooltip;
+#line 744 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = guarded_markup_escape_text (_tmp4_);
+#line 744 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp5_;
+#line 744 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp2_, &_tmp3_, SIDEBAR_TREE_COLUMNS_TOOLTIP, _tmp6_, -1);
+#line 744 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp6_);
+#line 740 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 4822 "Tree.c"
+}
+
+
+static void sidebar_tree_on_sidebar_icon_changed (SidebarTree* self, SidebarEntry* entry, const gchar* icon) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ GtkTreeStore* _tmp2_ = NULL;
+ GtkTreeIter _tmp3_ = {0};
+ const gchar* _tmp4_ = NULL;
+#line 747 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 747 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 748 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 748 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 748 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 749 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (wrapper != NULL, "wrapper != null");
+#line 751 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = self->priv->store;
+#line 751 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (wrapper, &_tmp3_);
+#line 751 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = icon;
+#line 751 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp2_, &_tmp3_, SIDEBAR_TREE_COLUMNS_ICON, _tmp4_, -1);
+#line 747 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 4855 "Tree.c"
+}
+
+
+static void sidebar_tree_rename_entry (SidebarTree* self, SidebarEntry* entry) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ GtkTreeStore* _tmp2_ = NULL;
+ GtkTreeIter _tmp3_ = {0};
+ SidebarEntry* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 754 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 754 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 755 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 755 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 755 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 756 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (wrapper != NULL, "wrapper != null");
+#line 758 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = self->priv->store;
+#line 758 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_get_iter (wrapper, &_tmp3_);
+#line 758 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = entry;
+#line 758 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = sidebar_tree_get_name_for_entry (self, _tmp4_);
+#line 758 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp5_;
+#line 758 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp2_, &_tmp3_, SIDEBAR_TREE_COLUMNS_NAME, _tmp6_, -1);
+#line 758 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp6_);
+#line 754 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 4896 "Tree.c"
+}
+
+
+static void sidebar_tree_on_sidebar_name_changed (SidebarTree* self, SidebarEntry* entry, const gchar* name) {
+ SidebarEntry* _tmp0_ = NULL;
+#line 761 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 761 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_ENTRY (entry));
+#line 761 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (name != NULL);
+#line 762 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 762 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_rename_entry (self, _tmp0_);
+#line 4912 "Tree.c"
+}
+
+
+static void sidebar_tree_on_sidebar_page_created (SidebarTree* self, SidebarPageRepresentative* entry, Page* page) {
+ SidebarPageRepresentative* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 765 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 765 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (entry));
+#line 765 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 766 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 766 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = page;
+#line 766 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "page-created", _tmp0_, _tmp1_);
+#line 4931 "Tree.c"
+}
+
+
+static void sidebar_tree_on_is_emphasized_changed (SidebarTree* self, SidebarEmphasizableEntry* entry, gboolean is_emphasized) {
+ SidebarEmphasizableEntry* _tmp0_ = NULL;
+#line 769 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 769 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_EMPHASIZABLE_ENTRY (entry));
+#line 770 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 770 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_rename_entry (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 4945 "Tree.c"
+}
+
+
+static void sidebar_tree_on_sidebar_destroying_page (SidebarTree* self, SidebarPageRepresentative* entry, Page* page) {
+ SidebarPageRepresentative* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+#line 773 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 773 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_PAGE_REPRESENTATIVE (entry));
+#line 773 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (IS_PAGE (page));
+#line 774 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 774 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = page;
+#line 774 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "destroying-page", _tmp0_, _tmp1_);
+#line 4964 "Tree.c"
+}
+
+
+static void sidebar_tree_load_entry_icons (SidebarTree* self, GtkTreeIter* iter) {
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreeIter _tmp0_ = {0};
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ gchar* icon = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GtkTreeStore* _tmp6_ = NULL;
+ GtkTreeIter _tmp7_ = {0};
+ const gchar* _tmp8_ = NULL;
+#line 777 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 777 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (iter != NULL);
+#line 778 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = *iter;
+#line 778 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper_at_iter (self, &_tmp0_);
+#line 778 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 779 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 779 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 780 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 780 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 4998 "Tree.c"
+ }
+#line 781 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 781 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_->entry;
+#line 781 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = sidebar_entry_get_sidebar_icon (_tmp4_);
+#line 781 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ icon = _tmp5_;
+#line 782 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->store;
+#line 782 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = *iter;
+#line 782 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = icon;
+#line 782 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_store_set (_tmp6_, &_tmp7_, SIDEBAR_TREE_COLUMNS_ICON, _tmp8_, -1);
+#line 777 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (icon);
+#line 777 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 5020 "Tree.c"
+}
+
+
+static void sidebar_tree_load_branch_icons (SidebarTree* self, GtkTreeIter* iter) {
+ GtkTreeIter _tmp0_ = {0};
+ GtkTreeIter child_iter = {0};
+ GtkTreeStore* _tmp1_ = NULL;
+ GtkTreeIter _tmp2_ = {0};
+ GtkTreeIter _tmp3_ = {0};
+ gboolean _tmp4_ = FALSE;
+#line 785 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 785 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (iter != NULL);
+#line 786 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = *iter;
+#line 786 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_load_entry_icons (self, &_tmp0_);
+#line 789 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->store;
+#line 789 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = *iter;
+#line 789 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = gtk_tree_model_iter_children (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp3_, &_tmp2_);
+#line 789 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ child_iter = _tmp3_;
+#line 789 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp4_) {
+#line 5049 "Tree.c"
+ {
+ gboolean _tmp5_ = FALSE;
+#line 790 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = TRUE;
+#line 790 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ while (TRUE) {
+#line 5056 "Tree.c"
+ GtkTreeIter _tmp8_ = {0};
+#line 790 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp5_) {
+#line 5060 "Tree.c"
+ GtkTreeStore* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+#line 792 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = self->priv->store;
+#line 792 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = gtk_tree_model_iter_next (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &child_iter);
+#line 792 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp7_) {
+#line 792 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ break;
+#line 5071 "Tree.c"
+ }
+ }
+#line 790 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = FALSE;
+#line 791 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = child_iter;
+#line 791 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_load_branch_icons (self, &_tmp8_);
+#line 5080 "Tree.c"
+ }
+ }
+ }
+}
+
+
+static gboolean sidebar_tree_on_selection (SidebarTree* self, GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, gboolean path_currently_selected) {
+ gboolean result = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+#line 796 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 796 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (GTK_IS_TREE_SELECTION (selection), FALSE);
+#line 796 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (GTK_IS_TREE_MODEL (model), FALSE);
+#line 796 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, FALSE);
+#line 799 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = path;
+#line 799 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper_at_path (self, _tmp0_);
+#line 799 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ != NULL) {
+#line 5112 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = wrapper;
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_->entry;
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, SIDEBAR_TYPE_SELECTABLE_ENTRY);
+#line 5121 "Tree.c"
+ } else {
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = FALSE;
+#line 5125 "Tree.c"
+ }
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp2_;
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 801 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5133 "Tree.c"
+}
+
+
+static GtkTreePath* sidebar_tree_get_path_from_event (SidebarTree* self, GdkEventButton* event) {
+ GtkTreePath* result = NULL;
+ gint x = 0;
+ gint y = 0;
+ GdkModifierType mask = 0;
+ GdkEventButton* _tmp0_ = NULL;
+ GdkWindow* _tmp1_ = NULL;
+ GdkDisplay* _tmp2_ = NULL;
+ GdkDeviceManager* _tmp3_ = NULL;
+ GdkDevice* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ GdkModifierType _tmp7_ = 0;
+ gint cell_x = 0;
+ gint cell_y = 0;
+ GtkTreePath* path = NULL;
+ GtkTreePath* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ GtkTreePath* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gboolean _tmp14_ = FALSE;
+ GtkTreePath* _tmp16_ = NULL;
+#line 804 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 804 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (event != NULL, NULL);
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = event;
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp0_->window;
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gdk_display_get_default ();
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = gdk_display_get_device_manager (_tmp2_);
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = gdk_device_manager_get_client_pointer (_tmp3_);
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gdk_window_get_device_position (_tmp1_, _tmp4_, &_tmp5_, &_tmp6_, &_tmp7_);
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ x = _tmp5_;
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ y = _tmp6_;
+#line 807 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ mask = _tmp7_;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = x;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = y;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = gtk_tree_view_get_path_at_pos (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp9_, _tmp10_, &_tmp11_, NULL, &_tmp12_, &_tmp13_);
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp11_;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ cell_x = _tmp12_;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ cell_y = _tmp13_;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp14_) {
+#line 5199 "Tree.c"
+ GtkTreePath* _tmp15_ = NULL;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = path;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp15_;
+#line 5205 "Tree.c"
+ } else {
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = NULL;
+#line 5209 "Tree.c"
+ }
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = _gtk_tree_path_copy0 (_tmp8_);
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp16_;
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 812 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5219 "Tree.c"
+}
+
+
+static GtkTreePath* sidebar_tree_get_current_path (SidebarTree* self) {
+ GtkTreePath* result = NULL;
+ GtkTreeModel* model = NULL;
+ GList* rows = NULL;
+ GtkTreeSelection* _tmp0_ = NULL;
+ GtkTreeModel* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ GtkTreeModel* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ GList* _tmp5_ = NULL;
+ guint _tmp6_ = 0U;
+ GtkTreePath* _tmp9_ = NULL;
+ GList* _tmp10_ = NULL;
+ guint _tmp11_ = 0U;
+ GtkTreePath* _tmp14_ = NULL;
+#line 815 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), NULL);
+#line 817 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 817 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gtk_tree_selection_get_selected_rows (_tmp0_, &_tmp1_);
+#line 817 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (model);
+#line 817 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = _g_object_ref0 (_tmp1_);
+#line 817 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ model = _tmp3_;
+#line 817 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ rows = _tmp2_;
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = rows;
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = g_list_length (_tmp5_);
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_ == ((guint) 0)) {
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = TRUE;
+#line 5260 "Tree.c"
+ } else {
+ GList* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = rows;
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = g_list_length (_tmp7_);
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp8_ == ((guint) 1);
+#line 5270 "Tree.c"
+ }
+#line 818 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (_tmp4_, "rows.length() == 0 || rows.length() == 1");
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = rows;
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = g_list_length (_tmp10_);
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp11_ != ((guint) 0)) {
+#line 5280 "Tree.c"
+ GList* _tmp12_ = NULL;
+ gconstpointer _tmp13_ = NULL;
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = rows;
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = g_list_nth_data (_tmp12_, (guint) 0);
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = (GtkTreePath*) _tmp13_;
+#line 5289 "Tree.c"
+ } else {
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = NULL;
+#line 5293 "Tree.c"
+ }
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = _gtk_tree_path_copy0 (_tmp9_);
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp14_;
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ __g_list_free__gtk_tree_path_free0_0 (rows);
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (model);
+#line 820 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5305 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_on_context_menu_keypress (SidebarTree* self) {
+ gboolean result = FALSE;
+ GList* rows = NULL;
+ GtkTreeSelection* _tmp0_ = NULL;
+ GList* _tmp1_ = NULL;
+ GList* _tmp2_ = NULL;
+ GtkTreePath* path = NULL;
+ GList* _tmp3_ = NULL;
+ gconstpointer _tmp4_ = NULL;
+ GtkTreePath* _tmp5_ = NULL;
+ GtkTreePath* _tmp6_ = NULL;
+ GtkTreePath* _tmp7_ = NULL;
+ GtkTreePath* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 823 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 824 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 824 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = gtk_tree_selection_get_selected_rows (_tmp0_, NULL);
+#line 824 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ rows = _tmp1_;
+#line 825 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = rows;
+#line 825 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 826 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 826 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ __g_list_free__gtk_tree_path_free0_0 (rows);
+#line 826 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5341 "Tree.c"
+ }
+#line 828 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = rows;
+#line 828 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_->data;
+#line 828 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _gtk_tree_path_copy0 ((GtkTreePath*) _tmp4_);
+#line 828 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp5_;
+#line 829 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = path;
+#line 829 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_ == NULL) {
+#line 830 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 830 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 830 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ __g_list_free__gtk_tree_path_free0_0 (rows);
+#line 830 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5363 "Tree.c"
+ }
+#line 832 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = path;
+#line 832 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_scroll_to_cell (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp7_, NULL, FALSE, (gfloat) 0, (gfloat) 0);
+#line 834 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = path;
+#line 834 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = sidebar_tree_popup_context_menu (self, _tmp8_, NULL);
+#line 834 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp9_;
+#line 834 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 834 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ __g_list_free__gtk_tree_path_free0_0 (rows);
+#line 834 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5381 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_popup_context_menu (SidebarTree* self, GtkTreePath* path, GdkEventButton* event) {
+ gboolean result = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ SidebarContextable* contextable = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarContextable* _tmp5_ = NULL;
+ SidebarContextable* _tmp6_ = NULL;
+ SidebarSelectableEntry* selectable = NULL;
+ SidebarTreeEntryWrapper* _tmp7_ = NULL;
+ SidebarEntry* _tmp8_ = NULL;
+ SidebarSelectableEntry* _tmp9_ = NULL;
+ SidebarSelectableEntry* _tmp10_ = NULL;
+ GtkMenu* context_menu = NULL;
+ SidebarContextable* _tmp12_ = NULL;
+ GdkEventButton* _tmp13_ = NULL;
+ GtkMenu* _tmp14_ = NULL;
+ GtkMenu* _tmp15_ = NULL;
+ GdkEventButton* _tmp16_ = NULL;
+#line 837 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 837 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, FALSE);
+#line 838 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = path;
+#line 838 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper_at_path (self, _tmp0_);
+#line 838 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 839 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 839 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 840 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 840 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 840 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5427 "Tree.c"
+ }
+#line 842 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 842 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_->entry;
+#line 842 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, SIDEBAR_TYPE_CONTEXTABLE) ? ((SidebarContextable*) _tmp4_) : NULL);
+#line 842 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ contextable = _tmp5_;
+#line 843 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = contextable;
+#line 843 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_ == NULL) {
+#line 844 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 844 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (contextable);
+#line 844 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 844 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5449 "Tree.c"
+ }
+#line 847 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = wrapper;
+#line 847 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp7_->entry;
+#line 847 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, SIDEBAR_TYPE_SELECTABLE_ENTRY) ? ((SidebarSelectableEntry*) _tmp8_) : NULL);
+#line 847 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selectable = _tmp9_;
+#line 848 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = selectable;
+#line 848 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp10_ != NULL) {
+#line 5463 "Tree.c"
+ SidebarSelectableEntry* _tmp11_ = NULL;
+#line 849 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = selectable;
+#line 849 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_emit_by_name (self, "entry-selected", _tmp11_);
+#line 5469 "Tree.c"
+ }
+#line 851 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = contextable;
+#line 851 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = event;
+#line 851 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = sidebar_contextable_get_sidebar_context_menu (_tmp12_, _tmp13_);
+#line 851 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ context_menu = _tmp14_;
+#line 852 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = context_menu;
+#line 852 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp15_ == NULL) {
+#line 853 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 853 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (context_menu);
+#line 853 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selectable);
+#line 853 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (contextable);
+#line 853 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 853 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5495 "Tree.c"
+ }
+#line 855 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = event;
+#line 855 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp16_ != NULL) {
+#line 5501 "Tree.c"
+ GtkMenu* _tmp17_ = NULL;
+ GdkEventButton* _tmp18_ = NULL;
+ guint _tmp19_ = 0U;
+ GdkEventButton* _tmp20_ = NULL;
+ guint32 _tmp21_ = 0U;
+#line 856 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = context_menu;
+#line 856 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = event;
+#line 856 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = _tmp18_->button;
+#line 856 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = event;
+#line 856 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = _tmp20_->time;
+#line 856 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_menu_popup (_tmp17_, NULL, NULL, NULL, NULL, _tmp19_, _tmp21_);
+#line 5519 "Tree.c"
+ } else {
+ GtkMenu* _tmp22_ = NULL;
+ guint32 _tmp23_ = 0U;
+#line 858 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = context_menu;
+#line 858 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = gtk_get_current_event_time ();
+#line 858 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_menu_popup (_tmp22_, NULL, NULL, NULL, NULL, (guint) 0, _tmp23_);
+#line 5529 "Tree.c"
+ }
+#line 860 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 860 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (context_menu);
+#line 860 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selectable);
+#line 860 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (contextable);
+#line 860 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 860 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5543 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_popup_default_context_menu (SidebarTree* self, GdkEventButton* event) {
+ gboolean result = FALSE;
+ GtkMenu* _tmp0_ = NULL;
+ GdkEventButton* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ GdkEventButton* _tmp3_ = NULL;
+ guint32 _tmp4_ = 0U;
+#line 863 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 863 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 864 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->default_context_menu;
+#line 864 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = event;
+#line 864 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _tmp1_->button;
+#line 864 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = event;
+#line 864 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_->time;
+#line 864 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_menu_popup (_tmp0_, NULL, NULL, NULL, NULL, _tmp2_, _tmp4_);
+#line 865 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 865 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5574 "Tree.c"
+}
+
+
+gboolean sidebar_tree_on_toggle_row (SidebarTree* self, GtkTreeIter* iter, GtkTreePath* path) {
+ gboolean result = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreeIter _tmp0_ = {0};
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ gboolean should_allow_toggle = FALSE;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+ gboolean _tmp5_ = FALSE;
+ GtkTreePath* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gboolean _tmp16_ = FALSE;
+#line 868 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 868 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (iter != NULL, FALSE);
+#line 868 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, FALSE);
+#line 870 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = *iter;
+#line 870 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper_at_iter (self, &_tmp0_);
+#line 870 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 871 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 871 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 872 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 872 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 872 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5613 "Tree.c"
+ }
+#line 876 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = self->priv->expander_called_manually;
+#line 876 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ should_allow_toggle = _tmp3_;
+#line 879 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_called_manually = FALSE;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = path;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = gtk_tree_view_row_expanded (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp6_);
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp7_) {
+#line 5627 "Tree.c"
+ GtkTreeStore* _tmp8_ = NULL;
+ GtkTreeIter _tmp9_ = {0};
+ gboolean _tmp10_ = FALSE;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = self->priv->store;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = *iter;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = gtk_tree_model_iter_has_child (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, GTK_TYPE_TREE_MODEL, GtkTreeModel), &_tmp9_);
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp10_;
+#line 5639 "Tree.c"
+ } else {
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = FALSE;
+#line 5643 "Tree.c"
+ }
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp5_) {
+#line 5647 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ SidebarEntry* _tmp12_ = NULL;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = wrapper;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = _tmp11_->entry;
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, SIDEBAR_TYPE_SELECTABLE_ENTRY);
+#line 5656 "Tree.c"
+ } else {
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = FALSE;
+#line 5660 "Tree.c"
+ }
+#line 882 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp4_) {
+#line 5664 "Tree.c"
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 884 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = self->priv->expander_special_count;
+#line 884 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_special_count = _tmp13_ + 1;
+#line 885 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = self->priv->expander_special_count;
+#line 885 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp14_ == 1) {
+#line 887 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 887 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 887 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5681 "Tree.c"
+ } else {
+ gboolean _tmp15_ = FALSE;
+#line 890 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = should_allow_toggle;
+#line 890 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ should_allow_toggle = !_tmp15_;
+#line 5688 "Tree.c"
+ }
+ } else {
+#line 894 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_special_count = 0;
+#line 5693 "Tree.c"
+ }
+#line 897 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = should_allow_toggle;
+#line 897 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp16_) {
+#line 898 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 898 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 898 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5705 "Tree.c"
+ }
+#line 901 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 901 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 901 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5713 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_real_button_press_event (GtkWidget* base, GdkEventButton* event) {
+ SidebarTree * self;
+ gboolean result = FALSE;
+ GtkTreePath* path = NULL;
+ GdkEventButton* _tmp0_ = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GtkTreePath* _tmp3_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GdkEventButton* _tmp7_ = NULL;
+ guint _tmp8_ = 0U;
+ GdkEventButton* _tmp58_ = NULL;
+ gboolean _tmp59_ = FALSE;
+#line 904 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_TREE, SidebarTree);
+#line 904 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 905 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = event;
+#line 905 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_path_from_event (self, _tmp0_);
+#line 905 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp1_;
+#line 908 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = path;
+#line 908 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ == NULL) {
+#line 5744 "Tree.c"
+ GdkEventButton* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+#line 908 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = event;
+#line 908 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_->button;
+#line 908 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _tmp5_ != ((guint) 3);
+#line 5753 "Tree.c"
+ } else {
+#line 908 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = FALSE;
+#line 5757 "Tree.c"
+ }
+#line 908 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_) {
+#line 909 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 909 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 909 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5767 "Tree.c"
+ }
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = event;
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _tmp7_->button;
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp8_ == ((guint) 3)) {
+#line 5775 "Tree.c"
+ GdkEventButton* _tmp9_ = NULL;
+ GdkEventType _tmp10_ = 0;
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = event;
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = _tmp9_->type;
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp10_ == GDK_BUTTON_PRESS;
+#line 5784 "Tree.c"
+ } else {
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = FALSE;
+#line 5788 "Tree.c"
+ }
+#line 912 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_) {
+#line 5792 "Tree.c"
+ GtkTreePath* _tmp11_ = NULL;
+#line 914 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = path;
+#line 914 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp11_ != NULL) {
+#line 5798 "Tree.c"
+ GtkTreePath* _tmp12_ = NULL;
+ GdkEventButton* _tmp13_ = NULL;
+#line 915 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = path;
+#line 915 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = event;
+#line 915 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_popup_context_menu (self, _tmp12_, _tmp13_);
+#line 5807 "Tree.c"
+ } else {
+ GdkEventButton* _tmp14_ = NULL;
+#line 917 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = event;
+#line 917 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_popup_default_context_menu (self, _tmp14_);
+#line 5814 "Tree.c"
+ }
+ } else {
+ gboolean _tmp15_ = FALSE;
+ GdkEventButton* _tmp16_ = NULL;
+ guint _tmp17_ = 0U;
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = event;
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = _tmp16_->button;
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp17_ == ((guint) 1)) {
+#line 5826 "Tree.c"
+ GdkEventButton* _tmp18_ = NULL;
+ GdkEventType _tmp19_ = 0;
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = event;
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = _tmp18_->type;
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = _tmp19_ == GDK_BUTTON_PRESS;
+#line 5835 "Tree.c"
+ } else {
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = FALSE;
+#line 5839 "Tree.c"
+ }
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp15_) {
+#line 5843 "Tree.c"
+ GtkTreePath* _tmp20_ = NULL;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp23_ = NULL;
+ SidebarTreeEntryWrapper* _tmp24_ = NULL;
+ SidebarTreeEntryWrapper* _tmp25_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp29_ = NULL;
+ SidebarEntry* _tmp30_ = NULL;
+ gboolean _tmp34_ = FALSE;
+ gboolean _tmp35_ = FALSE;
+ const GtkTreeRowReference* _tmp36_ = NULL;
+ gboolean _tmp48_ = FALSE;
+ SidebarTreeEntryWrapper* _tmp49_ = NULL;
+ SidebarEntry* _tmp50_ = NULL;
+ GtkTreeStore* _tmp55_ = NULL;
+ GtkTreePath* _tmp56_ = NULL;
+ GtkTreeRowReference* _tmp57_ = NULL;
+#line 919 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = path;
+#line 919 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp20_ == NULL) {
+#line 5865 "Tree.c"
+ GdkEventButton* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 920 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_row_reference_free0 (self->priv->old_path_ref);
+#line 920 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->old_path_ref = NULL;
+#line 921 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = event;
+#line 921 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = GTK_WIDGET_CLASS (sidebar_tree_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp21_);
+#line 921 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp22_;
+#line 921 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 921 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5882 "Tree.c"
+ }
+#line 924 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = path;
+#line 924 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = sidebar_tree_get_wrapper_at_path (self, _tmp23_);
+#line 924 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp24_;
+#line 926 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = wrapper;
+#line 926 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp25_ == NULL) {
+#line 5894 "Tree.c"
+ GdkEventButton* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 927 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_row_reference_free0 (self->priv->old_path_ref);
+#line 927 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->old_path_ref = NULL;
+#line 928 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = event;
+#line 928 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = GTK_WIDGET_CLASS (sidebar_tree_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp26_);
+#line 928 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp27_;
+#line 928 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 928 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 928 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 5913 "Tree.c"
+ }
+#line 932 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp29_ = wrapper;
+#line 932 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp30_ = _tmp29_->entry;
+#line 932 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp30_, SIDEBAR_TYPE_EXPANDABLE_ENTRY)) {
+#line 932 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = TRUE;
+#line 5923 "Tree.c"
+ } else {
+ SidebarTreeEntryWrapper* _tmp31_ = NULL;
+ SidebarEntry* _tmp32_ = NULL;
+#line 933 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp31_ = wrapper;
+#line 933 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp32_ = _tmp31_->entry;
+#line 933 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp32_, SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY);
+#line 5933 "Tree.c"
+ }
+#line 932 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp28_) {
+#line 5937 "Tree.c"
+ GtkTreePath* _tmp33_ = NULL;
+#line 935 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp33_ = path;
+#line 935 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_toggle_branch_expansion (self, _tmp33_, FALSE);
+#line 5943 "Tree.c"
+ }
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp36_ = self->priv->old_path_ref;
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp36_ != NULL) {
+#line 5949 "Tree.c"
+ const GtkTreeRowReference* _tmp37_ = NULL;
+ GtkTreePath* _tmp38_ = NULL;
+ GtkTreePath* _tmp39_ = NULL;
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp37_ = self->priv->old_path_ref;
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp38_ = gtk_tree_row_reference_get_path (_tmp37_);
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp39_ = _tmp38_;
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp35_ = _tmp39_ != NULL;
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp39_);
+#line 5963 "Tree.c"
+ } else {
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp35_ = FALSE;
+#line 5967 "Tree.c"
+ }
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp35_) {
+#line 5971 "Tree.c"
+ const GtkTreeRowReference* _tmp40_ = NULL;
+ GtkTreePath* _tmp41_ = NULL;
+ GtkTreePath* _tmp42_ = NULL;
+ GtkTreePath* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+#line 940 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp40_ = self->priv->old_path_ref;
+#line 940 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp41_ = gtk_tree_row_reference_get_path (_tmp40_);
+#line 940 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp42_ = _tmp41_;
+#line 940 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp43_ = path;
+#line 940 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp44_ = gtk_tree_path_compare (_tmp42_, _tmp43_);
+#line 940 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp34_ = _tmp44_ == 0;
+#line 940 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp42_);
+#line 5991 "Tree.c"
+ } else {
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp34_ = FALSE;
+#line 5995 "Tree.c"
+ }
+#line 939 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp34_) {
+#line 5999 "Tree.c"
+ GtkCellRendererText* _tmp45_ = NULL;
+ GdkEventButton* _tmp46_ = NULL;
+ gboolean _tmp47_ = FALSE;
+#line 943 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp45_ = self->priv->text_renderer;
+#line 943 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp45_, "editable", FALSE, NULL);
+#line 944 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp46_ = event;
+#line 944 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp47_ = GTK_WIDGET_CLASS (sidebar_tree_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp46_);
+#line 944 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp47_;
+#line 944 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 944 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 944 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6019 "Tree.c"
+ }
+#line 949 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp49_ = wrapper;
+#line 949 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp50_ = _tmp49_->entry;
+#line 949 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp50_, SIDEBAR_TYPE_RENAMEABLE_ENTRY)) {
+#line 6027 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp51_ = NULL;
+ SidebarEntry* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+#line 950 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp51_ = wrapper;
+#line 950 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp52_ = _tmp51_->entry;
+#line 950 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp53_ = sidebar_renameable_entry_is_user_renameable (G_TYPE_CHECK_INSTANCE_CAST (_tmp52_, SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry));
+#line 950 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp48_ = _tmp53_;
+#line 6039 "Tree.c"
+ } else {
+#line 949 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp48_ = FALSE;
+#line 6043 "Tree.c"
+ }
+#line 949 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp48_) {
+#line 6047 "Tree.c"
+ GtkCellRendererText* _tmp54_ = NULL;
+#line 951 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp54_ = self->priv->text_renderer;
+#line 951 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp54_, "editable", TRUE, NULL);
+#line 6053 "Tree.c"
+ }
+#line 955 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp55_ = self->priv->store;
+#line 955 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp56_ = path;
+#line 955 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp57_ = gtk_tree_row_reference_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp55_, GTK_TYPE_TREE_MODEL, GtkTreeModel), _tmp56_);
+#line 955 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_row_reference_free0 (self->priv->old_path_ref);
+#line 955 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->old_path_ref = _tmp57_;
+#line 918 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 6067 "Tree.c"
+ }
+ }
+#line 958 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp58_ = event;
+#line 958 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp59_ = GTK_WIDGET_CLASS (sidebar_tree_parent_class)->button_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp58_);
+#line 958 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp59_;
+#line 958 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 958 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6080 "Tree.c"
+}
+
+
+gboolean sidebar_tree_is_keypress_interpreted (SidebarTree* self, GdkEventKey* event) {
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GQuark _tmp5_ = 0U;
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label0 = 0;
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label1 = 0;
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label2 = 0;
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label3 = 0;
+#line 961 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 961 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = event;
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = _tmp2_;
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if ((((_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("F2")))) || (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("Delete"))))) || (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("Return"))))) || (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("KP_Enter"))))) {
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ switch (0) {
+#line 6117 "Tree.c"
+ default:
+ {
+#line 967 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 967 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6124 "Tree.c"
+ }
+ }
+ } else {
+#line 962 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ switch (0) {
+#line 6130 "Tree.c"
+ default:
+ {
+#line 970 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 970 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6137 "Tree.c"
+ }
+ }
+ }
+}
+
+
+static gboolean sidebar_tree_real_key_press_event (GtkWidget* base, GdkEventKey* event) {
+ SidebarTree * self;
+ gboolean result = FALSE;
+ GdkEventKey* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ GQuark _tmp5_ = 0U;
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label0 = 0;
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label1 = 0;
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label2 = 0;
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ static GQuark _tmp4_label3 = 0;
+#line 6160 "Tree.c"
+ GdkEventKey* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+#line 974 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_TREE, SidebarTree);
+#line 974 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = event;
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp0_->keyval;
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gdk_keyval_name (_tmp1_);
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = _tmp2_;
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = (NULL == _tmp3_) ? 0 : g_quark_from_string (_tmp3_);
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if ((_tmp5_ == ((0 != _tmp4_label0) ? _tmp4_label0 : (_tmp4_label0 = g_quark_from_static_string ("Return")))) || (_tmp5_ == ((0 != _tmp4_label1) ? _tmp4_label1 : (_tmp4_label1 = g_quark_from_static_string ("KP_Enter"))))) {
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ switch (0) {
+#line 6181 "Tree.c"
+ default:
+ {
+ GtkTreePath* path = NULL;
+ GtkTreePath* _tmp6_ = NULL;
+ GtkTreePath* _tmp7_ = NULL;
+#line 978 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = sidebar_tree_get_current_path (self);
+#line 978 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp6_;
+#line 979 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = path;
+#line 979 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp7_ != NULL) {
+#line 6195 "Tree.c"
+ GtkTreePath* _tmp8_ = NULL;
+#line 980 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = path;
+#line 980 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_toggle_branch_expansion (self, _tmp8_, FALSE);
+#line 6201 "Tree.c"
+ }
+#line 982 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 982 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 982 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6209 "Tree.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label2) ? _tmp4_label2 : (_tmp4_label2 = g_quark_from_static_string ("F2")))) {
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ switch (0) {
+#line 6215 "Tree.c"
+ default:
+ {
+ gboolean _tmp9_ = FALSE;
+#line 985 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = sidebar_tree_rename_in_place (self);
+#line 985 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp9_;
+#line 985 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6225 "Tree.c"
+ }
+ }
+ } else if (_tmp5_ == ((0 != _tmp4_label3) ? _tmp4_label3 : (_tmp4_label3 = g_quark_from_static_string ("Delete")))) {
+#line 975 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ switch (0) {
+#line 6231 "Tree.c"
+ default:
+ {
+ GtkTreePath* path = NULL;
+ GtkTreePath* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+ GtkTreePath* _tmp12_ = NULL;
+#line 988 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = sidebar_tree_get_current_path (self);
+#line 988 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp10_;
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = path;
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp12_ != NULL) {
+#line 6246 "Tree.c"
+ GtkTreePath* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = path;
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = sidebar_tree_destroy_path (self, _tmp13_);
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = _tmp14_;
+#line 6255 "Tree.c"
+ } else {
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = FALSE;
+#line 6259 "Tree.c"
+ }
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp11_;
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 990 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6267 "Tree.c"
+ }
+ }
+ }
+#line 993 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = event;
+#line 993 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = GTK_WIDGET_CLASS (sidebar_tree_parent_class)->key_press_event (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp15_);
+#line 993 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp16_;
+#line 993 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6279 "Tree.c"
+}
+
+
+gboolean sidebar_tree_rename_entry_in_place (SidebarTree* self, SidebarEntry* entry) {
+ gboolean result = FALSE;
+ SidebarEntry* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ SidebarEntry* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 996 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 996 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 997 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 997 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_expand_to_entry (self, _tmp0_);
+#line 997 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp1_) {
+#line 998 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 998 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6304 "Tree.c"
+ }
+#line 1000 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = entry;
+#line 1000 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = sidebar_tree_place_cursor (self, _tmp2_, FALSE);
+#line 1000 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp3_) {
+#line 1001 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1001 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6316 "Tree.c"
+ }
+#line 1003 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = sidebar_tree_rename_in_place (self);
+#line 1003 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp4_;
+#line 1003 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6324 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_rename_in_place (SidebarTree* self) {
+ gboolean result = FALSE;
+ GtkTreePath* cursor_path = NULL;
+ GtkTreeViewColumn* cursor_column = NULL;
+ GtkTreePath* _tmp0_ = NULL;
+ GtkTreeViewColumn* _tmp1_ = NULL;
+ GtkTreeViewColumn* _tmp2_ = NULL;
+ GtkTreePath* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 1006 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 1009 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_get_cursor (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), &_tmp0_, &_tmp1_);
+#line 1009 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (cursor_path);
+#line 1009 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ cursor_path = _tmp0_;
+#line 1009 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (cursor_column);
+#line 1009 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 1009 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ cursor_column = _tmp2_;
+#line 1011 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = cursor_path;
+#line 1011 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = sidebar_tree_can_rename_path (self, _tmp3_);
+#line 1011 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp4_) {
+#line 6357 "Tree.c"
+ GtkTreePath* _tmp5_ = NULL;
+ GtkTreeViewColumn* _tmp6_ = NULL;
+#line 1012 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = cursor_path;
+#line 1012 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = cursor_column;
+#line 1012 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_cursor (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp5_, _tmp6_, TRUE);
+#line 1014 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 1014 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (cursor_column);
+#line 1014 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (cursor_path);
+#line 1014 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6374 "Tree.c"
+ }
+#line 1017 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1017 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (cursor_column);
+#line 1017 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (cursor_path);
+#line 1017 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6384 "Tree.c"
+}
+
+
+gboolean sidebar_tree_scroll_to_entry (SidebarTree* self, SidebarEntry* entry) {
+ gboolean result = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ GtkTreePath* _tmp4_ = NULL;
+ GtkTreePath* _tmp5_ = NULL;
+#line 1020 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 1020 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), FALSE);
+#line 1021 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 1021 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper (self, _tmp0_);
+#line 1021 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 1022 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 1022 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 1023 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1023 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1023 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6417 "Tree.c"
+ }
+#line 1025 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 1025 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = sidebar_tree_entry_wrapper_get_path (_tmp3_);
+#line 1025 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_;
+#line 1025 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_scroll_to_cell (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp5_, NULL, FALSE, (gfloat) 0, (gfloat) 0);
+#line 1025 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp5_);
+#line 1027 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 1027 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1027 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 6435 "Tree.c"
+}
+
+
+static void sidebar_tree_real_drag_data_get (GtkWidget* base, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time) {
+ SidebarTree * self;
+ SidebarInternalDragSourceEntry* drag_source = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarInternalDragSourceEntry* _tmp6_ = NULL;
+ SidebarInternalDragSourceEntry* _tmp16_ = NULL;
+ GtkSelectionData* _tmp17_ = NULL;
+#line 1030 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_TREE, SidebarTree);
+#line 1030 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 1030 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (selection_data != NULL);
+#line 1032 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ drag_source = NULL;
+#line 1034 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->internal_drag_source_entry;
+#line 1034 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp0_ != NULL) {
+#line 6458 "Tree.c"
+ SidebarSelectableEntry* selectable = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarSelectableEntry* _tmp2_ = NULL;
+ SidebarSelectableEntry* _tmp3_ = NULL;
+#line 1035 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->internal_drag_source_entry;
+#line 1035 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp1_, SIDEBAR_TYPE_SELECTABLE_ENTRY) ? ((SidebarSelectableEntry*) _tmp1_) : NULL);
+#line 1035 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selectable = _tmp2_;
+#line 1037 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = selectable;
+#line 1037 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ == NULL) {
+#line 6473 "Tree.c"
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarInternalDragSourceEntry* _tmp5_ = NULL;
+#line 1038 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = self->priv->internal_drag_source_entry;
+#line 1038 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY) ? ((SidebarInternalDragSourceEntry*) _tmp4_) : NULL);
+#line 1038 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (drag_source);
+#line 1038 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ drag_source = _tmp5_;
+#line 6484 "Tree.c"
+ }
+#line 1034 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (selectable);
+#line 6488 "Tree.c"
+ }
+#line 1042 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = drag_source;
+#line 1042 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_ == NULL) {
+#line 6494 "Tree.c"
+ GtkTreePath* selected_path = NULL;
+ GtkTreePath* _tmp7_ = NULL;
+ GtkTreePath* _tmp8_ = NULL;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp9_ = NULL;
+ SidebarTreeEntryWrapper* _tmp10_ = NULL;
+ SidebarTreeEntryWrapper* _tmp11_ = NULL;
+ SidebarTreeEntryWrapper* _tmp12_ = NULL;
+ SidebarEntry* _tmp13_ = NULL;
+ SidebarInternalDragSourceEntry* _tmp14_ = NULL;
+ SidebarInternalDragSourceEntry* _tmp15_ = NULL;
+#line 1043 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = sidebar_tree_get_selected_path (self);
+#line 1043 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ selected_path = _tmp7_;
+#line 1044 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = selected_path;
+#line 1044 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp8_ == NULL) {
+#line 1045 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (selected_path);
+#line 1045 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (drag_source);
+#line 1045 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 6520 "Tree.c"
+ }
+#line 1047 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = selected_path;
+#line 1047 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = sidebar_tree_get_wrapper_at_path (self, _tmp9_);
+#line 1047 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp10_;
+#line 1048 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = wrapper;
+#line 1048 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp11_ == NULL) {
+#line 1049 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1049 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (selected_path);
+#line 1049 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (drag_source);
+#line 1049 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 6540 "Tree.c"
+ }
+#line 1051 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = wrapper;
+#line 1051 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = _tmp12_->entry;
+#line 1051 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp13_, SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY) ? ((SidebarInternalDragSourceEntry*) _tmp13_) : NULL);
+#line 1051 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (drag_source);
+#line 1051 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ drag_source = _tmp14_;
+#line 1052 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = drag_source;
+#line 1052 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp15_ == NULL) {
+#line 1053 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1053 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (selected_path);
+#line 1053 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (drag_source);
+#line 1053 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 6564 "Tree.c"
+ }
+#line 1042 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1042 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (selected_path);
+#line 6570 "Tree.c"
+ }
+#line 1056 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = drag_source;
+#line 1056 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = selection_data;
+#line 1056 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_internal_drag_source_entry_prepare_selection_data (_tmp16_, _tmp17_);
+#line 1030 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (drag_source);
+#line 6580 "Tree.c"
+}
+
+
+static void sidebar_tree_real_drag_data_received (GtkWidget* base, GdkDragContext* context, gint x, gint y, GtkSelectionData* selection_data, guint info, guint time) {
+ SidebarTree * self;
+ GtkTreePath* path = NULL;
+ GtkTreeViewDropPosition pos = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ GtkTreePath* _tmp2_ = NULL;
+ GtkTreeViewDropPosition _tmp3_ = 0;
+ gboolean _tmp4_ = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp14_ = NULL;
+ SidebarTreeEntryWrapper* _tmp15_ = NULL;
+ GdkDragContext* _tmp16_ = NULL;
+ GtkWidget* _tmp17_ = NULL;
+ SidebarTreeEntryWrapper* _tmp27_ = NULL;
+ SidebarInternalDropTargetEntry* targetable = NULL;
+ SidebarTreeEntryWrapper* _tmp30_ = NULL;
+ SidebarEntry* _tmp31_ = NULL;
+ SidebarInternalDropTargetEntry* _tmp32_ = NULL;
+ SidebarInternalDropTargetEntry* _tmp33_ = NULL;
+ gboolean success = FALSE;
+ GtkSelectionData* _tmp36_ = NULL;
+ GdkAtom _tmp37_ = 0U;
+ gchar* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gboolean _tmp40_ = FALSE;
+ GdkDragContext* _tmp57_ = NULL;
+ gboolean _tmp58_ = FALSE;
+ guint _tmp59_ = 0U;
+#line 1059 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_TREE, SidebarTree);
+#line 1059 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+#line 1059 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (selection_data != NULL);
+#line 1064 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = x;
+#line 1064 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = y;
+#line 1064 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = gtk_tree_view_get_dest_row_at_pos (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp0_, _tmp1_, &_tmp2_, &_tmp3_);
+#line 1064 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1064 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp2_;
+#line 1064 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ pos = _tmp3_;
+#line 1064 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp4_) {
+#line 6633 "Tree.c"
+ GdkDragContext* _tmp5_ = NULL;
+ GtkWidget* _tmp6_ = NULL;
+#line 1066 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = context;
+#line 1066 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = gtk_drag_get_source_widget (_tmp5_);
+#line 1066 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_ == NULL) {
+#line 6642 "Tree.c"
+ SidebarTreeExternalDropHandler _tmp7_ = NULL;
+ void* _tmp7__target = NULL;
+ GdkDragContext* _tmp8_ = NULL;
+ GtkSelectionData* _tmp9_ = NULL;
+ guint _tmp10_ = 0U;
+ guint _tmp11_ = 0U;
+#line 1067 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = self->priv->drop_handler;
+#line 1067 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7__target = self->priv->drop_handler_target;
+#line 1067 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = context;
+#line 1067 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = selection_data;
+#line 1067 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = info;
+#line 1067 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = time;
+#line 1067 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ (_tmp8_, NULL, _tmp9_, _tmp10_, _tmp11_, _tmp7__target);
+#line 6663 "Tree.c"
+ } else {
+ GdkDragContext* _tmp12_ = NULL;
+ guint _tmp13_ = 0U;
+#line 1069 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = context;
+#line 1069 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = time;
+#line 1069 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_drag_finish (_tmp12_, FALSE, FALSE, (guint32) _tmp13_);
+#line 6673 "Tree.c"
+ }
+#line 1071 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1071 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 6679 "Tree.c"
+ }
+#line 1075 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = path;
+#line 1075 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = sidebar_tree_get_wrapper_at_path (self, _tmp14_);
+#line 1075 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp15_;
+#line 1078 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = context;
+#line 1078 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = gtk_drag_get_source_widget (_tmp16_);
+#line 1078 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp17_ == NULL) {
+#line 6693 "Tree.c"
+ SidebarEntry* _tmp18_ = NULL;
+ SidebarTreeEntryWrapper* _tmp19_ = NULL;
+ SidebarTreeExternalDropHandler _tmp22_ = NULL;
+ void* _tmp22__target = NULL;
+ GdkDragContext* _tmp23_ = NULL;
+ GtkSelectionData* _tmp24_ = NULL;
+ guint _tmp25_ = 0U;
+ guint _tmp26_ = 0U;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp19_ = wrapper;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp19_ != NULL) {
+#line 6706 "Tree.c"
+ SidebarTreeEntryWrapper* _tmp20_ = NULL;
+ SidebarEntry* _tmp21_ = NULL;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp20_ = wrapper;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp21_ = _tmp20_->entry;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = _tmp21_;
+#line 6715 "Tree.c"
+ } else {
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = NULL;
+#line 6719 "Tree.c"
+ }
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ = self->priv->drop_handler;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22__target = self->priv->drop_handler_target;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp23_ = context;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp24_ = selection_data;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp25_ = info;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp26_ = time;
+#line 1079 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp22_ (_tmp23_, _tmp18_, _tmp24_, _tmp25_, _tmp26_, _tmp22__target);
+#line 1082 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1082 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1082 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 6741 "Tree.c"
+ }
+#line 1086 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp27_ = wrapper;
+#line 1086 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp27_ == NULL) {
+#line 6747 "Tree.c"
+ GdkDragContext* _tmp28_ = NULL;
+ guint _tmp29_ = 0U;
+#line 1087 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp28_ = context;
+#line 1087 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp29_ = time;
+#line 1087 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_drag_finish (_tmp28_, FALSE, FALSE, (guint32) _tmp29_);
+#line 1089 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1089 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1089 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 6762 "Tree.c"
+ }
+#line 1092 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp30_ = wrapper;
+#line 1092 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp31_ = _tmp30_->entry;
+#line 1092 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp32_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp31_, SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY) ? ((SidebarInternalDropTargetEntry*) _tmp31_) : NULL);
+#line 1092 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ targetable = _tmp32_;
+#line 1093 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp33_ = targetable;
+#line 1093 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp33_ == NULL) {
+#line 6776 "Tree.c"
+ GdkDragContext* _tmp34_ = NULL;
+ guint _tmp35_ = 0U;
+#line 1094 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp34_ = context;
+#line 1094 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp35_ = time;
+#line 1094 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_drag_finish (_tmp34_, FALSE, FALSE, (guint32) _tmp35_);
+#line 1096 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (targetable);
+#line 1096 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1096 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1096 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 6793 "Tree.c"
+ }
+#line 1099 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ success = FALSE;
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp36_ = selection_data;
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp37_ = gtk_selection_data_get_data_type (_tmp36_);
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp38_ = gdk_atom_name (_tmp37_);
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp39_ = _tmp38_;
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp40_ = g_strcmp0 (_tmp39_, LIBRARY_WINDOW_TAG_PATH_MIME_TYPE) == 0;
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_free0 (_tmp39_);
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp40_) {
+#line 6811 "Tree.c"
+ SidebarInternalDropTargetEntry* _tmp41_ = NULL;
+ GtkSelectionData* _tmp42_ = NULL;
+ gboolean _tmp43_ = FALSE;
+#line 1102 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp41_ = targetable;
+#line 1102 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp42_ = selection_data;
+#line 1102 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp43_ = sidebar_internal_drop_target_entry_internal_drop_received_arbitrary (_tmp41_, _tmp42_);
+#line 1102 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ success = _tmp43_;
+#line 6823 "Tree.c"
+ } else {
+ GeeList* media = NULL;
+ GtkSelectionData* _tmp44_ = NULL;
+ guchar* _tmp45_ = NULL;
+ GtkSelectionData* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ GeeList* _tmp48_ = NULL;
+ gboolean _tmp49_ = FALSE;
+ GeeList* _tmp50_ = NULL;
+#line 1104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp44_ = selection_data;
+#line 1104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp45_ = gtk_selection_data_get_data (_tmp44_);
+#line 1104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp46_ = selection_data;
+#line 1104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp47_ = gtk_selection_data_get_length (_tmp46_);
+#line 1104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp48_ = unserialize_media_sources (_tmp45_, _tmp47_);
+#line 1104 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ media = _tmp48_;
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp50_ = media;
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp50_ != NULL) {
+#line 6849 "Tree.c"
+ GeeList* _tmp51_ = NULL;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp51_ = media;
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp52_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp53_ = _tmp52_;
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp49_ = _tmp53_ > 0;
+#line 6861 "Tree.c"
+ } else {
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp49_ = FALSE;
+#line 6865 "Tree.c"
+ }
+#line 1106 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp49_) {
+#line 6869 "Tree.c"
+ SidebarInternalDropTargetEntry* _tmp54_ = NULL;
+ GeeList* _tmp55_ = NULL;
+ gboolean _tmp56_ = FALSE;
+#line 1107 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp54_ = targetable;
+#line 1107 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp55_ = media;
+#line 1107 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp56_ = sidebar_internal_drop_target_entry_internal_drop_received (_tmp54_, _tmp55_);
+#line 1107 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ success = _tmp56_;
+#line 6881 "Tree.c"
+ }
+#line 1101 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (media);
+#line 6885 "Tree.c"
+ }
+#line 1110 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp57_ = context;
+#line 1110 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp58_ = success;
+#line 1110 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp59_ = time;
+#line 1110 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_drag_finish (_tmp57_, _tmp58_, FALSE, (guint32) _tmp59_);
+#line 1059 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (targetable);
+#line 1059 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1059 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 6901 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_real_drag_motion (GtkWidget* base, GdkDragContext* context, gint x, gint y, guint time) {
+ SidebarTree * self;
+ gboolean result = FALSE;
+ GdkDragContext* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ guint _tmp3_ = 0U;
+ GtkTreePath* path = NULL;
+ GtkTreeViewDropPosition pos = 0;
+ gboolean has_dest = FALSE;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GtkTreePath* _tmp6_ = NULL;
+ GtkTreeViewDropPosition _tmp7_ = 0;
+ gboolean _tmp8_ = FALSE;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+ GdkDragContext* _tmp15_ = NULL;
+ GdkDragContext* _tmp16_ = NULL;
+ GdkDragAction _tmp17_ = 0;
+ guint _tmp18_ = 0U;
+#line 1113 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_TREE, SidebarTree);
+#line 1113 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (GDK_IS_DRAG_CONTEXT (context), FALSE);
+#line 1115 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = context;
+#line 1115 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = x;
+#line 1115 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = y;
+#line 1115 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = time;
+#line 1115 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ GTK_WIDGET_CLASS (sidebar_tree_parent_class)->drag_motion (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), gtk_widget_get_type (), GtkWidget), _tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 1119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = x;
+#line 1119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = y;
+#line 1119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = gtk_tree_view_get_dest_row_at_pos (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp4_, _tmp5_, &_tmp6_, &_tmp7_);
+#line 1119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ path = _tmp6_;
+#line 1119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ pos = _tmp7_;
+#line 1119 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ has_dest = _tmp8_;
+#line 1122 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = has_dest;
+#line 1122 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (!_tmp10_) {
+#line 1122 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = TRUE;
+#line 6960 "Tree.c"
+ } else {
+ GtkTreeViewDropPosition _tmp11_ = 0;
+#line 1122 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = pos;
+#line 1122 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = _tmp11_ == GTK_TREE_VIEW_DROP_BEFORE;
+#line 6967 "Tree.c"
+ }
+#line 1122 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp9_) {
+#line 6971 "Tree.c"
+ GtkTreePath* _tmp12_ = NULL;
+#line 1123 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = path;
+#line 1123 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_drag_dest_row (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp12_, GTK_TREE_VIEW_DROP_INTO_OR_BEFORE);
+#line 6977 "Tree.c"
+ } else {
+ GtkTreeViewDropPosition _tmp13_ = 0;
+#line 1124 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = pos;
+#line 1124 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp13_ == GTK_TREE_VIEW_DROP_AFTER) {
+#line 6984 "Tree.c"
+ GtkTreePath* _tmp14_ = NULL;
+#line 1125 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp14_ = path;
+#line 1125 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_view_set_drag_dest_row (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView), _tmp14_, GTK_TREE_VIEW_DROP_INTO_OR_AFTER);
+#line 6990 "Tree.c"
+ }
+ }
+#line 1127 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = context;
+#line 1127 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp16_ = context;
+#line 1127 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp17_ = gdk_drag_context_get_suggested_action (_tmp16_);
+#line 1127 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp18_ = time;
+#line 1127 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gdk_drag_status (_tmp15_, _tmp17_, (guint32) _tmp18_);
+#line 1129 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = has_dest;
+#line 1129 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (path);
+#line 1129 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7009 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_can_rename_path (SidebarTree* self, GtkTreePath* path) {
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarRenameableEntry* renameable = NULL;
+ SidebarTreeEntryWrapper* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ SidebarRenameableEntry* _tmp6_ = NULL;
+ SidebarRenameableEntry* _tmp7_ = NULL;
+ SidebarTreeEntryWrapper* _tmp8_ = NULL;
+ SidebarEntry* _tmp9_ = NULL;
+ GtkTreeSelection* _tmp10_ = NULL;
+ GtkTreePath* _tmp11_ = NULL;
+#line 1133 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 1133 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, FALSE);
+#line 1134 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->editing_disabled;
+#line 1134 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp0_ > 0) {
+#line 1135 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1135 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7041 "Tree.c"
+ }
+#line 1137 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = path;
+#line 1137 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = sidebar_tree_get_wrapper_at_path (self, _tmp1_);
+#line 1137 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp2_;
+#line 1138 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 1138 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp3_ == NULL) {
+#line 1139 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1139 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1139 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7059 "Tree.c"
+ }
+#line 1141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = wrapper;
+#line 1141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _tmp4_->entry;
+#line 1141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, SIDEBAR_TYPE_RENAMEABLE_ENTRY) ? ((SidebarRenameableEntry*) _tmp5_) : NULL);
+#line 1141 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ renameable = _tmp6_;
+#line 1142 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = renameable;
+#line 1142 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp7_ == NULL) {
+#line 1143 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1143 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (renameable);
+#line 1143 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1143 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7081 "Tree.c"
+ }
+#line 1145 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = wrapper;
+#line 1145 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = _tmp8_->entry;
+#line 1145 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, SIDEBAR_TYPE_HEADER)) {
+#line 1146 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1146 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (renameable);
+#line 1146 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1146 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7097 "Tree.c"
+ }
+#line 1148 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = gtk_tree_view_get_selection (G_TYPE_CHECK_INSTANCE_CAST (self, gtk_tree_view_get_type (), GtkTreeView));
+#line 1148 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = path;
+#line 1148 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ gtk_tree_selection_select_path (_tmp10_, _tmp11_);
+#line 1150 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 1150 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (renameable);
+#line 1150 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1150 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7113 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_destroy_path (SidebarTree* self, GtkTreePath* path) {
+ gboolean result = FALSE;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* _tmp1_ = NULL;
+ SidebarTreeEntryWrapper* _tmp2_ = NULL;
+ SidebarDestroyableEntry* destroyable = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarEntry* _tmp4_ = NULL;
+ SidebarDestroyableEntry* _tmp5_ = NULL;
+ SidebarDestroyableEntry* _tmp6_ = NULL;
+ SidebarDestroyableEntry* _tmp7_ = NULL;
+#line 1153 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 1153 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, FALSE);
+#line 1154 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = path;
+#line 1154 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_wrapper_at_path (self, _tmp0_);
+#line 1154 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp1_;
+#line 1155 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = wrapper;
+#line 1155 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp2_ == NULL) {
+#line 1156 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1156 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1156 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7149 "Tree.c"
+ }
+#line 1158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = wrapper;
+#line 1158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_->entry;
+#line 1158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, SIDEBAR_TYPE_DESTROYABLE_ENTRY) ? ((SidebarDestroyableEntry*) _tmp4_) : NULL);
+#line 1158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ destroyable = _tmp5_;
+#line 1159 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = destroyable;
+#line 1159 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp6_ == NULL) {
+#line 1160 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1160 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (destroyable);
+#line 1160 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1160 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7171 "Tree.c"
+ }
+#line 1162 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = destroyable;
+#line 1162 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_destroyable_entry_destroy_source (_tmp7_);
+#line 1164 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = TRUE;
+#line 1164 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (destroyable);
+#line 1164 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 1164 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7185 "Tree.c"
+}
+
+
+static void _sidebar_tree_on_editing_done_gtk_cell_editable_editing_done (GtkCellEditable* _sender, gpointer self) {
+#line 1170 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_on_editing_done ((SidebarTree*) self);
+#line 7192 "Tree.c"
+}
+
+
+static gboolean _sidebar_tree_on_editing_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
+ gboolean result;
+ result = sidebar_tree_on_editing_focus_out ((SidebarTree*) self, event);
+#line 1171 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7201 "Tree.c"
+}
+
+
+static void sidebar_tree_on_editing_started (SidebarTree* self, GtkCellEditable* editable, const gchar* path) {
+ GtkCellEditable* _tmp0_ = NULL;
+#line 1167 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 1167 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (GTK_IS_CELL_EDITABLE (editable));
+#line 1167 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (path != NULL);
+#line 1168 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = editable;
+#line 1168 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, gtk_entry_get_type ())) {
+#line 7217 "Tree.c"
+ GtkCellEditable* _tmp1_ = NULL;
+ GtkEntry* _tmp2_ = NULL;
+ GtkEntry* _tmp3_ = NULL;
+ GtkEntry* _tmp4_ = NULL;
+ GtkEntry* _tmp5_ = NULL;
+#line 1169 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = editable;
+#line 1169 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_entry_get_type (), GtkEntry));
+#line 1169 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->text_entry);
+#line 1169 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->text_entry = _tmp2_;
+#line 1170 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = self->priv->text_entry;
+#line 1170 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GTK_TYPE_CELL_EDITABLE, GtkCellEditable), "editing-done", (GCallback) _sidebar_tree_on_editing_done_gtk_cell_editable_editing_done, self, 0);
+#line 1171 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = self->priv->text_entry;
+#line 1171 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, gtk_widget_get_type (), GtkWidget), "focus-out-event", (GCallback) _sidebar_tree_on_editing_focus_out_gtk_widget_focus_out_event, self, 0);
+#line 1172 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = self->priv->text_entry;
+#line 1172 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp5_, "editable", TRUE, NULL);
+#line 7243 "Tree.c"
+ }
+}
+
+
+static void sidebar_tree_on_editing_canceled (SidebarTree* self) {
+ GtkEntry* _tmp0_ = NULL;
+ GtkEntry* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+ GtkEntry* _tmp3_ = NULL;
+ guint _tmp4_ = 0U;
+#line 1176 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 1177 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->text_entry;
+#line 1177 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp0_, "editable", FALSE, NULL);
+#line 1179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = self->priv->text_entry;
+#line 1179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("editing-done", GTK_TYPE_CELL_EDITABLE, &_tmp2_, NULL, FALSE);
+#line 1179 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GTK_TYPE_CELL_EDITABLE, GtkCellEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _sidebar_tree_on_editing_done_gtk_cell_editable_editing_done, self);
+#line 1180 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = self->priv->text_entry;
+#line 1180 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("focus-out-event", gtk_widget_get_type (), &_tmp4_, NULL, FALSE);
+#line 1180 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _sidebar_tree_on_editing_focus_out_gtk_widget_focus_out_event, self);
+#line 7272 "Tree.c"
+}
+
+
+static void sidebar_tree_on_editing_done (SidebarTree* self) {
+ GtkEntry* _tmp0_ = NULL;
+ SidebarTreeEntryWrapper* wrapper = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+ GtkTreePath* _tmp2_ = NULL;
+ SidebarTreeEntryWrapper* _tmp3_ = NULL;
+ SidebarTreeEntryWrapper* _tmp4_ = NULL;
+ SidebarTreeEntryWrapper* _tmp5_ = NULL;
+ GtkEntry* _tmp13_ = NULL;
+ guint _tmp14_ = 0U;
+ GtkEntry* _tmp15_ = NULL;
+ guint _tmp16_ = 0U;
+#line 1183 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 1184 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->text_entry;
+#line 1184 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_object_set (_tmp0_, "editable", FALSE, NULL);
+#line 1186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = sidebar_tree_get_current_path (self);
+#line 1186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _tmp1_;
+#line 1186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = sidebar_tree_get_wrapper_at_path (self, _tmp2_);
+#line 1186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_;
+#line 1186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp2_);
+#line 1186 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ wrapper = _tmp4_;
+#line 1187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = wrapper;
+#line 1187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp5_ != NULL) {
+#line 7310 "Tree.c"
+ SidebarRenameableEntry* renameable = NULL;
+ SidebarTreeEntryWrapper* _tmp6_ = NULL;
+ SidebarEntry* _tmp7_ = NULL;
+ SidebarRenameableEntry* _tmp8_ = NULL;
+ SidebarRenameableEntry* _tmp9_ = NULL;
+#line 1188 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = wrapper;
+#line 1188 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp7_ = _tmp6_->entry;
+#line 1188 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp8_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp7_, SIDEBAR_TYPE_RENAMEABLE_ENTRY) ? ((SidebarRenameableEntry*) _tmp7_) : NULL);
+#line 1188 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ renameable = _tmp8_;
+#line 1189 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp9_ = renameable;
+#line 1189 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (_tmp9_ != NULL) {
+#line 7328 "Tree.c"
+ SidebarRenameableEntry* _tmp10_ = NULL;
+ GtkEntry* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 1190 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp10_ = renameable;
+#line 1190 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp11_ = self->priv->text_entry;
+#line 1190 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp12_ = gtk_entry_get_text (_tmp11_);
+#line 1190 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_renameable_entry_rename (_tmp10_, _tmp12_);
+#line 7340 "Tree.c"
+ }
+#line 1187 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (renameable);
+#line 7344 "Tree.c"
+ }
+#line 1193 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp13_ = self->priv->text_entry;
+#line 1193 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("editing-done", GTK_TYPE_CELL_EDITABLE, &_tmp14_, NULL, FALSE);
+#line 1193 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GTK_TYPE_CELL_EDITABLE, GtkCellEditable), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp14_, 0, NULL, (GCallback) _sidebar_tree_on_editing_done_gtk_cell_editable_editing_done, self);
+#line 1194 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp15_ = self->priv->text_entry;
+#line 1194 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("focus-out-event", gtk_widget_get_type (), &_tmp16_, NULL, FALSE);
+#line 1194 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, gtk_widget_get_type (), GtkWidget), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _sidebar_tree_on_editing_focus_out_gtk_widget_focus_out_event, self);
+#line 1183 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (wrapper);
+#line 7360 "Tree.c"
+}
+
+
+static gboolean sidebar_tree_on_editing_focus_out (SidebarTree* self, GdkEventFocus* event) {
+ gboolean result = FALSE;
+#line 1197 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_TREE (self), FALSE);
+#line 1197 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (event != NULL, FALSE);
+#line 1201 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = FALSE;
+#line 1201 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7374 "Tree.c"
+}
+
+
+static void sidebar_tree_on_new_search (SidebarTree* self) {
+ SavedSearchDialog* _tmp0_ = NULL;
+ SavedSearchDialog* _tmp1_ = NULL;
+#line 1204 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 1205 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = saved_search_dialog_new ();
+#line 1205 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _tmp0_;
+#line 1205 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ saved_search_dialog_show (_tmp1_);
+#line 1205 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _saved_search_dialog_unref0 (_tmp1_);
+#line 7391 "Tree.c"
+}
+
+
+static void sidebar_tree_on_new_tag (SidebarTree* self) {
+ NewRootTagCommand* creation_command = NULL;
+ NewRootTagCommand* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+ CommandManager* _tmp2_ = NULL;
+ LibraryWindow* _tmp3_ = NULL;
+ LibraryWindow* _tmp4_ = NULL;
+ Tag* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+#line 1208 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (self));
+#line 1209 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = new_root_tag_command_new ();
+#line 1209 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ creation_command = _tmp0_;
+#line 1210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = app_window_get_command_manager ();
+#line 1210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = _tmp1_;
+#line 1210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ command_manager_execute (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (creation_command, TYPE_COMMAND, Command));
+#line 1210 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _command_manager_unref0 (_tmp2_);
+#line 1211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = library_window_get_app ();
+#line 1211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = _tmp3_;
+#line 1211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = new_root_tag_command_get_created_tag (creation_command);
+#line 1211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp5_;
+#line 1211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ library_window_rename_tag_in_sidebar (_tmp4_, _tmp6_);
+#line 1211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp6_);
+#line 1211 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1208 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (creation_command);
+#line 7434 "Tree.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1, gpointer arg_1, gboolean arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data1 = closure->data;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 7453 "Tree.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data2 = closure->data;
+#line 7459 "Tree.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_boolean (param_values + 2), data2);
+#line 7465 "Tree.c"
+}
+
+
+static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1, gpointer arg_1, gpointer arg_2, gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure * cc;
+ register gpointer data1;
+ register gpointer data2;
+ cc = (GCClosure *) closure;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (n_param_values == 3);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ if (G_CCLOSURE_SWAP_DATA (closure)) {
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data1 = closure->data;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data2 = param_values->data[0].v_pointer;
+#line 7484 "Tree.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data1 = param_values->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ data2 = closure->data;
+#line 7490 "Tree.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ callback (data1, g_value_get_object (param_values + 1), g_value_get_object (param_values + 2), data2);
+#line 7496 "Tree.c"
+}
+
+
+static SidebarTreeEntryWrapper* sidebar_tree_entry_wrapper_construct (GType object_type, GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path) {
+ SidebarTreeEntryWrapper * self = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ GtkTreeModel* _tmp2_ = NULL;
+ GtkTreePath* _tmp3_ = NULL;
+ GtkTreeRowReference* _tmp4_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (GTK_IS_TREE_MODEL (model), NULL);
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = (SidebarTreeEntryWrapper*) g_object_new (object_type, NULL);
+#line 20 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = entry;
+#line 20 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 20 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->entry);
+#line 20 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->entry = _tmp1_;
+#line 21 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = model;
+#line 21 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = path;
+#line 21 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp4_ = gtk_tree_row_reference_new (_tmp2_, _tmp3_);
+#line 21 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_row_reference_free0 (self->row);
+#line 21 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->row = _tmp4_;
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return self;
+#line 7535 "Tree.c"
+}
+
+
+static SidebarTreeEntryWrapper* sidebar_tree_entry_wrapper_new (GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path) {
+#line 19 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return sidebar_tree_entry_wrapper_construct (SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, model, entry, path);
+#line 7542 "Tree.c"
+}
+
+
+static GtkTreePath* sidebar_tree_entry_wrapper_get_path (SidebarTreeEntryWrapper* self) {
+ GtkTreePath* result = NULL;
+ const GtkTreeRowReference* _tmp0_ = NULL;
+ GtkTreePath* _tmp1_ = NULL;
+#line 24 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_TREE_IS_ENTRY_WRAPPER (self), NULL);
+#line 25 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->row;
+#line 25 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = gtk_tree_row_reference_get_path (_tmp0_);
+#line 25 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ result = _tmp1_;
+#line 25 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return result;
+#line 7560 "Tree.c"
+}
+
+
+static void sidebar_tree_entry_wrapper_get_iter (SidebarTreeEntryWrapper* self, GtkTreeIter* result) {
+ GtkTreeIter iter = {0};
+ gboolean valid = FALSE;
+ const GtkTreeRowReference* _tmp0_ = NULL;
+ GtkTreeModel* _tmp1_ = NULL;
+ GtkTreePath* _tmp2_ = NULL;
+ GtkTreePath* _tmp3_ = NULL;
+ GtkTreeIter _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 28 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_if_fail (SIDEBAR_TREE_IS_ENTRY_WRAPPER (self));
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->row;
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = gtk_tree_row_reference_get_model (_tmp0_);
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = sidebar_tree_entry_wrapper_get_path (self);
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = _tmp2_;
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp5_ = gtk_tree_model_get_iter (_tmp1_, &_tmp4_, _tmp3_);
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ iter = _tmp4_;
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp6_ = _tmp5_;
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_path_free0 (_tmp3_);
+#line 30 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ valid = _tmp6_;
+#line 31 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _vala_assert (valid, "valid");
+#line 33 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ *result = iter;
+#line 33 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return;
+#line 7600 "Tree.c"
+}
+
+
+static void sidebar_tree_entry_wrapper_class_init (SidebarTreeEntryWrapperClass * klass) {
+#line 15 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_entry_wrapper_parent_class = g_type_class_peek_parent (klass);
+#line 15 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_OBJECT_CLASS (klass)->finalize = sidebar_tree_entry_wrapper_finalize;
+#line 7609 "Tree.c"
+}
+
+
+static void sidebar_tree_entry_wrapper_instance_init (SidebarTreeEntryWrapper * self) {
+}
+
+
+static void sidebar_tree_entry_wrapper_finalize (GObject* obj) {
+ SidebarTreeEntryWrapper * self;
+#line 15 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, SidebarTreeEntryWrapper);
+#line 16 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->entry);
+#line 17 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_row_reference_free0 (self->row);
+#line 15 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_OBJECT_CLASS (sidebar_tree_entry_wrapper_parent_class)->finalize (obj);
+#line 7627 "Tree.c"
+}
+
+
+static GType sidebar_tree_entry_wrapper_get_type (void) {
+ static volatile gsize sidebar_tree_entry_wrapper_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_tree_entry_wrapper_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarTreeEntryWrapperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_tree_entry_wrapper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarTreeEntryWrapper), 0, (GInstanceInitFunc) sidebar_tree_entry_wrapper_instance_init, NULL };
+ GType sidebar_tree_entry_wrapper_type_id;
+ sidebar_tree_entry_wrapper_type_id = g_type_register_static (G_TYPE_OBJECT, "SidebarTreeEntryWrapper", &g_define_type_info, 0);
+ g_once_init_leave (&sidebar_tree_entry_wrapper_type_id__volatile, sidebar_tree_entry_wrapper_type_id);
+ }
+ return sidebar_tree_entry_wrapper_type_id__volatile;
+}
+
+
+static SidebarTreeRootWrapper* sidebar_tree_root_wrapper_construct (GType object_type, GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path, gint root_position) {
+ SidebarTreeRootWrapper * self = NULL;
+ GtkTreeModel* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ GtkTreePath* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+#line 40 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (GTK_IS_TREE_MODEL (model), NULL);
+#line 40 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (entry), NULL);
+#line 40 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 41 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = model;
+#line 41 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = entry;
+#line 41 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = path;
+#line 41 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = (SidebarTreeRootWrapper*) sidebar_tree_entry_wrapper_construct (object_type, _tmp0_, _tmp1_, _tmp2_);
+#line 43 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = root_position;
+#line 43 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->root_position = _tmp3_;
+#line 40 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return self;
+#line 7669 "Tree.c"
+}
+
+
+static SidebarTreeRootWrapper* sidebar_tree_root_wrapper_new (GtkTreeModel* model, SidebarEntry* entry, GtkTreePath* path, gint root_position) {
+#line 40 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ return sidebar_tree_root_wrapper_construct (SIDEBAR_TREE_TYPE_ROOT_WRAPPER, model, entry, path, root_position);
+#line 7676 "Tree.c"
+}
+
+
+static void sidebar_tree_root_wrapper_class_init (SidebarTreeRootWrapperClass * klass) {
+#line 37 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_root_wrapper_parent_class = g_type_class_peek_parent (klass);
+#line 37 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_OBJECT_CLASS (klass)->finalize = sidebar_tree_root_wrapper_finalize;
+#line 7685 "Tree.c"
+}
+
+
+static void sidebar_tree_root_wrapper_instance_init (SidebarTreeRootWrapper * self) {
+}
+
+
+static void sidebar_tree_root_wrapper_finalize (GObject* obj) {
+ SidebarTreeRootWrapper * self;
+#line 37 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_TREE_TYPE_ROOT_WRAPPER, SidebarTreeRootWrapper);
+#line 37 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_OBJECT_CLASS (sidebar_tree_root_wrapper_parent_class)->finalize (obj);
+#line 7699 "Tree.c"
+}
+
+
+static GType sidebar_tree_root_wrapper_get_type (void) {
+ static volatile gsize sidebar_tree_root_wrapper_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_tree_root_wrapper_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarTreeRootWrapperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_tree_root_wrapper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarTreeRootWrapper), 0, (GInstanceInitFunc) sidebar_tree_root_wrapper_instance_init, NULL };
+ GType sidebar_tree_root_wrapper_type_id;
+ sidebar_tree_root_wrapper_type_id = g_type_register_static (SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, "SidebarTreeRootWrapper", &g_define_type_info, 0);
+ g_once_init_leave (&sidebar_tree_root_wrapper_type_id__volatile, sidebar_tree_root_wrapper_type_id);
+ }
+ return sidebar_tree_root_wrapper_type_id__volatile;
+}
+
+
+static void sidebar_tree_class_init (SidebarTreeClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ sidebar_tree_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_type_class_add_private (klass, sizeof (SidebarTreePrivate));
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ((SidebarTreeClass *) klass)->accept_cursor_changed = sidebar_tree_real_accept_cursor_changed;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ((GtkTreeViewClass *) klass)->cursor_changed = sidebar_tree_real_cursor_changed;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ((GtkWidgetClass *) klass)->button_press_event = sidebar_tree_real_button_press_event;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ((GtkWidgetClass *) klass)->key_press_event = sidebar_tree_real_key_press_event;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ((GtkWidgetClass *) klass)->drag_data_get = sidebar_tree_real_drag_data_get;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ((GtkWidgetClass *) klass)->drag_data_received = sidebar_tree_real_drag_data_received;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ ((GtkWidgetClass *) klass)->drag_motion = sidebar_tree_real_drag_motion;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_OBJECT_CLASS (klass)->finalize = sidebar_tree_finalize;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_new ("entry_selected", SIDEBAR_TYPE_TREE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_SELECTABLE_ENTRY);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_new ("selected_entry_removed", SIDEBAR_TYPE_TREE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_SELECTABLE_ENTRY);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_new ("branch_added", SIDEBAR_TYPE_TREE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_BRANCH);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_new ("branch_removed", SIDEBAR_TYPE_TREE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, SIDEBAR_TYPE_BRANCH);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_new ("branch_shown", SIDEBAR_TYPE_TREE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_BOOLEAN, G_TYPE_NONE, 2, SIDEBAR_TYPE_BRANCH, G_TYPE_BOOLEAN);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_new ("page_created", SIDEBAR_TYPE_TREE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, TYPE_PAGE);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_new ("destroying_page", SIDEBAR_TYPE_TREE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, TYPE_PAGE);
+#line 7750 "Tree.c"
+}
+
+
+static void sidebar_tree_instance_init (SidebarTree * self) {
+ GtkTreeStore* _tmp0_ = NULL;
+ GtkUIManager* _tmp1_ = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeHashMap* _tmp3_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv = SIDEBAR_TREE_GET_PRIVATE (self);
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = gtk_tree_store_new ((gint) SIDEBAR_TREE_COLUMNS_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, G_TYPE_STRING);
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->store = _tmp0_;
+#line 62 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp1_ = gtk_ui_manager_new ();
+#line 62 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->ui = _tmp1_;
+#line 65 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->text_entry = NULL;
+#line 66 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = gee_hash_map_new (SIDEBAR_TYPE_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, SIDEBAR_TREE_TYPE_ENTRY_WRAPPER, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 66 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->entry_map = _tmp2_;
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp3_ = gee_hash_map_new (SIDEBAR_TYPE_BRANCH, (GBoxedCopyFunc) g_object_ref, g_object_unref, G_TYPE_INT, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->branches = _tmp3_;
+#line 69 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->editing_disabled = 0;
+#line 70 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->mask_entry_selected_signal = FALSE;
+#line 71 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->selected_wrapper = NULL;
+#line 72 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->default_context_menu = NULL;
+#line 73 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_called_manually = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->expander_special_count = 0;
+#line 75 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->is_internal_drag_in_progress = FALSE;
+#line 76 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->internal_drag_source_entry = NULL;
+#line 77 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self->priv->old_path_ref = NULL;
+#line 7797 "Tree.c"
+}
+
+
+static void sidebar_tree_finalize (GObject* obj) {
+ SidebarTree * self;
+ GtkCellRendererText* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ GtkCellRendererText* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_TYPE_TREE, SidebarTree);
+#line 157 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp0_ = self->priv->text_renderer;
+#line 157 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("editing-canceled", gtk_cell_renderer_get_type (), &_tmp1_, NULL, FALSE);
+#line 157 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, gtk_cell_renderer_get_type (), GtkCellRenderer), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _sidebar_tree_on_editing_canceled_gtk_cell_renderer_editing_canceled, self);
+#line 158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _tmp2_ = self->priv->text_renderer;
+#line 158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_parse_name ("editing-started", gtk_cell_renderer_get_type (), &_tmp3_, NULL, FALSE);
+#line 158 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_cell_renderer_get_type (), GtkCellRenderer), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _sidebar_tree_on_editing_started_gtk_cell_renderer_editing_started, self);
+#line 55 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->store);
+#line 62 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->ui);
+#line 63 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->text_renderer);
+#line 65 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->text_entry);
+#line 66 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->entry_map);
+#line 68 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->branches);
+#line 72 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->default_context_menu);
+#line 76 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _g_object_unref0 (self->priv->internal_drag_source_entry);
+#line 77 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ _gtk_tree_row_reference_free0 (self->priv->old_path_ref);
+#line 7 "/home/jens/Source/shotwell/src/sidebar/Tree.vala"
+ G_OBJECT_CLASS (sidebar_tree_parent_class)->finalize (obj);
+#line 7841 "Tree.c"
+}
+
+
+GType sidebar_tree_get_type (void) {
+ static volatile gsize sidebar_tree_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_tree_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarTreeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_tree_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarTree), 0, (GInstanceInitFunc) sidebar_tree_instance_init, NULL };
+ GType sidebar_tree_type_id;
+ sidebar_tree_type_id = g_type_register_static (gtk_tree_view_get_type (), "SidebarTree", &g_define_type_info, 0);
+ g_once_init_leave (&sidebar_tree_type_id__volatile, sidebar_tree_type_id);
+ }
+ return sidebar_tree_type_id__volatile;
+}
+
+
+
diff --git a/src/sidebar/common.c b/src/sidebar/common.c
new file mode 100644
index 0000000..1ef4450
--- /dev/null
+++ b/src/sidebar/common.c
@@ -0,0 +1,1171 @@
+/* common.c generated by valac 0.32.1, the Vala compiler
+ * generated from common.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* A simple grouping Entry that is only expandable*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+typedef struct _SidebarGroupingPrivate SidebarGroupingPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define SIDEBAR_TYPE_ROOT_ONLY_BRANCH (sidebar_root_only_branch_get_type ())
+#define SIDEBAR_ROOT_ONLY_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ROOT_ONLY_BRANCH, SidebarRootOnlyBranch))
+#define SIDEBAR_ROOT_ONLY_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_ROOT_ONLY_BRANCH, SidebarRootOnlyBranchClass))
+#define SIDEBAR_IS_ROOT_ONLY_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ROOT_ONLY_BRANCH))
+#define SIDEBAR_IS_ROOT_ONLY_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_ROOT_ONLY_BRANCH))
+#define SIDEBAR_ROOT_ONLY_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_ROOT_ONLY_BRANCH, SidebarRootOnlyBranchClass))
+
+typedef struct _SidebarRootOnlyBranch SidebarRootOnlyBranch;
+typedef struct _SidebarRootOnlyBranchClass SidebarRootOnlyBranchClass;
+typedef struct _SidebarRootOnlyBranchPrivate SidebarRootOnlyBranchPrivate;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+
+#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
+#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
+#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
+#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))
+
+typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
+typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+typedef struct _SidebarHeaderPrivate SidebarHeaderPrivate;
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _SidebarGrouping {
+ GObject parent_instance;
+ SidebarGroupingPrivate * priv;
+};
+
+struct _SidebarGroupingClass {
+ GObjectClass parent_class;
+};
+
+struct _SidebarGroupingPrivate {
+ gchar* name;
+ gchar* tooltip;
+ gchar* icon;
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _SidebarSimplePageEntryPrivate {
+ Page* page;
+};
+
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+struct _SidebarRootOnlyBranch {
+ SidebarBranch parent_instance;
+ SidebarRootOnlyBranchPrivate * priv;
+};
+
+struct _SidebarRootOnlyBranchClass {
+ SidebarBranchClass parent_class;
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _SidebarEmphasizableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
+};
+
+struct _SidebarHeader {
+ SidebarGrouping parent_instance;
+ SidebarHeaderPrivate * priv;
+};
+
+struct _SidebarHeaderClass {
+ SidebarGroupingClass parent_class;
+};
+
+struct _SidebarHeaderPrivate {
+ gboolean emphasized;
+};
+
+
+static gpointer sidebar_grouping_parent_class = NULL;
+static SidebarEntryIface* sidebar_grouping_sidebar_entry_parent_iface = NULL;
+static SidebarExpandableEntryIface* sidebar_grouping_sidebar_expandable_entry_parent_iface = NULL;
+static SidebarRenameableEntryIface* sidebar_grouping_sidebar_renameable_entry_parent_iface = NULL;
+static gpointer sidebar_simple_page_entry_parent_class = NULL;
+static SidebarEntryIface* sidebar_simple_page_entry_sidebar_entry_parent_iface = NULL;
+static SidebarSelectableEntryIface* sidebar_simple_page_entry_sidebar_selectable_entry_parent_iface = NULL;
+static SidebarPageRepresentativeIface* sidebar_simple_page_entry_sidebar_page_representative_parent_iface = NULL;
+static SidebarContextableIface* sidebar_simple_page_entry_sidebar_contextable_parent_iface = NULL;
+static gpointer sidebar_root_only_branch_parent_class = NULL;
+static gpointer sidebar_header_parent_class = NULL;
+static SidebarEmphasizableEntryIface* sidebar_header_sidebar_emphasizable_entry_parent_iface = NULL;
+
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+#define SIDEBAR_GROUPING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SIDEBAR_TYPE_GROUPING, SidebarGroupingPrivate))
+enum {
+ SIDEBAR_GROUPING_DUMMY_PROPERTY
+};
+SidebarGrouping* sidebar_grouping_new (const gchar* name, const gchar* icon, const gchar* tooltip);
+SidebarGrouping* sidebar_grouping_construct (GType object_type, const gchar* name, const gchar* icon, const gchar* tooltip);
+static void sidebar_grouping_real_rename (SidebarRenameableEntry* base, const gchar* name);
+static gboolean sidebar_grouping_real_is_user_renameable (SidebarRenameableEntry* base);
+static gchar* sidebar_grouping_real_get_sidebar_name (SidebarEntry* base);
+static gchar* sidebar_grouping_real_get_sidebar_tooltip (SidebarEntry* base);
+static gchar* sidebar_grouping_real_get_sidebar_icon (SidebarEntry* base);
+static gchar* sidebar_grouping_real_to_string (SidebarEntry* base);
+static gboolean sidebar_grouping_real_expand_on_select (SidebarExpandableEntry* base);
+static void sidebar_grouping_finalize (GObject* obj);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryPrivate))
+enum {
+ SIDEBAR_SIMPLE_PAGE_ENTRY_DUMMY_PROPERTY
+};
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+gchar* sidebar_simple_page_entry_get_sidebar_name (SidebarSimplePageEntry* self);
+static gchar* sidebar_simple_page_entry_real_get_sidebar_name (SidebarSimplePageEntry* self);
+gchar* sidebar_simple_page_entry_get_sidebar_tooltip (SidebarSimplePageEntry* self);
+static gchar* sidebar_simple_page_entry_real_get_sidebar_tooltip (SidebarSimplePageEntry* self);
+gchar* sidebar_simple_page_entry_get_sidebar_icon (SidebarSimplePageEntry* self);
+static gchar* sidebar_simple_page_entry_real_get_sidebar_icon (SidebarSimplePageEntry* self);
+gchar* sidebar_simple_page_entry_to_string (SidebarSimplePageEntry* self);
+static gchar* sidebar_simple_page_entry_real_to_string (SidebarSimplePageEntry* self);
+Page* sidebar_simple_page_entry_create_page (SidebarSimplePageEntry* self);
+static Page* sidebar_simple_page_entry_real_create_page (SidebarSimplePageEntry* self);
+static gboolean sidebar_simple_page_entry_real_has_page (SidebarPageRepresentative* base);
+static Page* sidebar_simple_page_entry_real_get_page (SidebarPageRepresentative* base);
+static void sidebar_simple_page_entry_real_pruned (SidebarEntry* base, SidebarTree* tree);
+static GtkMenu* sidebar_simple_page_entry_real_get_sidebar_context_menu (SidebarContextable* base, GdkEventButton* event);
+Page* sidebar_page_representative_get_page (SidebarPageRepresentative* self);
+GtkMenu* page_get_page_context_menu (Page* self);
+static void sidebar_simple_page_entry_finalize (GObject* obj);
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType sidebar_root_only_branch_get_type (void) G_GNUC_CONST;
+enum {
+ SIDEBAR_ROOT_ONLY_BRANCH_DUMMY_PROPERTY
+};
+SidebarRootOnlyBranch* sidebar_root_only_branch_new (SidebarEntry* root);
+SidebarRootOnlyBranch* sidebar_root_only_branch_construct (GType object_type, SidebarEntry* root);
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+static gint sidebar_root_only_branch_null_comparator (SidebarEntry* a, SidebarEntry* b);
+static gint _sidebar_root_only_branch_null_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+#define SIDEBAR_HEADER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SIDEBAR_TYPE_HEADER, SidebarHeaderPrivate))
+enum {
+ SIDEBAR_HEADER_DUMMY_PROPERTY
+};
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized);
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized);
+static gboolean sidebar_header_real_is_emphasized (SidebarEmphasizableEntry* base);
+static void sidebar_header_finalize (GObject* obj);
+GtkMenu* sidebar_contextable_get_sidebar_context_menu (SidebarContextable* self, GdkEventButton* event);
+
+
+SidebarGrouping* sidebar_grouping_construct (GType object_type, const gchar* name, const gchar* icon, const gchar* tooltip) {
+ SidebarGrouping * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 15 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = (SidebarGrouping*) g_object_new (object_type, NULL);
+#line 16 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = name;
+#line 16 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_free0 (self->priv->name);
+#line 16 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->name = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp2_ = icon;
+#line 17 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 17 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_free0 (self->priv->icon);
+#line 17 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->icon = _tmp3_;
+#line 18 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp4_ = tooltip;
+#line 18 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 18 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_free0 (self->priv->tooltip);
+#line 18 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->tooltip = _tmp5_;
+#line 15 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return self;
+#line 391 "common.c"
+}
+
+
+SidebarGrouping* sidebar_grouping_new (const gchar* name, const gchar* icon, const gchar* tooltip) {
+#line 15 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return sidebar_grouping_construct (SIDEBAR_TYPE_GROUPING, name, icon, tooltip);
+#line 398 "common.c"
+}
+
+
+static void sidebar_grouping_real_rename (SidebarRenameableEntry* base, const gchar* name) {
+ SidebarGrouping * self;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 21 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_if_fail (name != NULL);
+#line 22 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = name;
+#line 22 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 22 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_free0 (self->priv->name);
+#line 22 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->name = _tmp1_;
+#line 23 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp2_ = name;
+#line 23 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry), "sidebar-name-changed", _tmp2_);
+#line 423 "common.c"
+}
+
+
+static gboolean sidebar_grouping_real_is_user_renameable (SidebarRenameableEntry* base) {
+ SidebarGrouping * self;
+ gboolean result = FALSE;
+#line 26 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 27 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = FALSE;
+#line 27 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 436 "common.c"
+}
+
+
+static gchar* sidebar_grouping_real_get_sidebar_name (SidebarEntry* base) {
+ SidebarGrouping * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 31 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->name;
+#line 31 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 31 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp1_;
+#line 31 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 455 "common.c"
+}
+
+
+static gchar* sidebar_grouping_real_get_sidebar_tooltip (SidebarEntry* base) {
+ SidebarGrouping * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->tooltip;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 35 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp1_;
+#line 35 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 474 "common.c"
+}
+
+
+static gchar* sidebar_grouping_real_get_sidebar_icon (SidebarEntry* base) {
+ SidebarGrouping * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 39 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->icon;
+#line 39 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 39 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp1_;
+#line 39 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 493 "common.c"
+}
+
+
+static gchar* sidebar_grouping_real_to_string (SidebarEntry* base) {
+ SidebarGrouping * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 43 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->name;
+#line 43 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 43 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp1_;
+#line 43 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 512 "common.c"
+}
+
+
+static gboolean sidebar_grouping_real_expand_on_select (SidebarExpandableEntry* base) {
+ SidebarGrouping * self;
+ gboolean result = FALSE;
+#line 46 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 47 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = TRUE;
+#line 47 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 525 "common.c"
+}
+
+
+static void sidebar_grouping_class_init (SidebarGroupingClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_grouping_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_type_class_add_private (klass, sizeof (SidebarGroupingPrivate));
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ G_OBJECT_CLASS (klass)->finalize = sidebar_grouping_finalize;
+#line 536 "common.c"
+}
+
+
+static void sidebar_grouping_sidebar_entry_interface_init (SidebarEntryIface * iface) {
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_grouping_sidebar_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_sidebar_name = (gchar* (*)(SidebarEntry*)) sidebar_grouping_real_get_sidebar_name;
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_sidebar_tooltip = (gchar* (*)(SidebarEntry*)) sidebar_grouping_real_get_sidebar_tooltip;
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_sidebar_icon = (gchar* (*)(SidebarEntry*)) sidebar_grouping_real_get_sidebar_icon;
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->to_string = (gchar* (*)(SidebarEntry*)) sidebar_grouping_real_to_string;
+#line 551 "common.c"
+}
+
+
+static void sidebar_grouping_sidebar_expandable_entry_interface_init (SidebarExpandableEntryIface * iface) {
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_grouping_sidebar_expandable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->expand_on_select = (gboolean (*)(SidebarExpandableEntry*)) sidebar_grouping_real_expand_on_select;
+#line 560 "common.c"
+}
+
+
+static void sidebar_grouping_sidebar_renameable_entry_interface_init (SidebarRenameableEntryIface * iface) {
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_grouping_sidebar_renameable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->rename = (void (*)(SidebarRenameableEntry*, const gchar*)) sidebar_grouping_real_rename;
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->is_user_renameable = (gboolean (*)(SidebarRenameableEntry*)) sidebar_grouping_real_is_user_renameable;
+#line 571 "common.c"
+}
+
+
+static void sidebar_grouping_instance_init (SidebarGrouping * self) {
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv = SIDEBAR_GROUPING_GET_PRIVATE (self);
+#line 578 "common.c"
+}
+
+
+static void sidebar_grouping_finalize (GObject* obj) {
+ SidebarGrouping * self;
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_TYPE_GROUPING, SidebarGrouping);
+#line 11 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_free0 (self->priv->name);
+#line 12 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_free0 (self->priv->tooltip);
+#line 13 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_free0 (self->priv->icon);
+#line 8 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ G_OBJECT_CLASS (sidebar_grouping_parent_class)->finalize (obj);
+#line 594 "common.c"
+}
+
+
+GType sidebar_grouping_get_type (void) {
+ static volatile gsize sidebar_grouping_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_grouping_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarGroupingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_grouping_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarGrouping), 0, (GInstanceInitFunc) sidebar_grouping_instance_init, NULL };
+ static const GInterfaceInfo sidebar_entry_info = { (GInterfaceInitFunc) sidebar_grouping_sidebar_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_expandable_entry_info = { (GInterfaceInitFunc) sidebar_grouping_sidebar_expandable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_renameable_entry_info = { (GInterfaceInitFunc) sidebar_grouping_sidebar_renameable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType sidebar_grouping_type_id;
+ sidebar_grouping_type_id = g_type_register_static (G_TYPE_OBJECT, "SidebarGrouping", &g_define_type_info, 0);
+ g_type_add_interface_static (sidebar_grouping_type_id, SIDEBAR_TYPE_ENTRY, &sidebar_entry_info);
+ g_type_add_interface_static (sidebar_grouping_type_id, SIDEBAR_TYPE_EXPANDABLE_ENTRY, &sidebar_expandable_entry_info);
+ g_type_add_interface_static (sidebar_grouping_type_id, SIDEBAR_TYPE_RENAMEABLE_ENTRY, &sidebar_renameable_entry_info);
+ g_once_init_leave (&sidebar_grouping_type_id__volatile, sidebar_grouping_type_id);
+ }
+ return sidebar_grouping_type_id__volatile;
+}
+
+
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type) {
+ SidebarSimplePageEntry * self = NULL;
+#line 58 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = (SidebarSimplePageEntry*) g_object_new (object_type, NULL);
+#line 58 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return self;
+#line 622 "common.c"
+}
+
+
+static gchar* sidebar_simple_page_entry_real_get_sidebar_name (SidebarSimplePageEntry* self) {
+#line 61 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_critical ("Type `%s' does not implement abstract method `sidebar_simple_page_entry_get_sidebar_name'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 61 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return NULL;
+#line 631 "common.c"
+}
+
+
+gchar* sidebar_simple_page_entry_get_sidebar_name (SidebarSimplePageEntry* self) {
+#line 61 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_SIMPLE_PAGE_ENTRY (self), NULL);
+#line 61 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS (self)->get_sidebar_name (self);
+#line 640 "common.c"
+}
+
+
+static gchar* sidebar_simple_page_entry_real_get_sidebar_tooltip (SidebarSimplePageEntry* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = sidebar_simple_page_entry_get_sidebar_name (self);
+#line 64 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp0_;
+#line 64 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 653 "common.c"
+}
+
+
+gchar* sidebar_simple_page_entry_get_sidebar_tooltip (SidebarSimplePageEntry* self) {
+#line 63 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_SIMPLE_PAGE_ENTRY (self), NULL);
+#line 63 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS (self)->get_sidebar_tooltip (self);
+#line 662 "common.c"
+}
+
+
+static gchar* sidebar_simple_page_entry_real_get_sidebar_icon (SidebarSimplePageEntry* self) {
+#line 67 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_critical ("Type `%s' does not implement abstract method `sidebar_simple_page_entry_get_sidebar_icon'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 67 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return NULL;
+#line 671 "common.c"
+}
+
+
+gchar* sidebar_simple_page_entry_get_sidebar_icon (SidebarSimplePageEntry* self) {
+#line 67 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_SIMPLE_PAGE_ENTRY (self), NULL);
+#line 67 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS (self)->get_sidebar_icon (self);
+#line 680 "common.c"
+}
+
+
+static gchar* sidebar_simple_page_entry_real_to_string (SidebarSimplePageEntry* self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = sidebar_simple_page_entry_get_sidebar_name (self);
+#line 70 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp0_;
+#line 70 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 693 "common.c"
+}
+
+
+gchar* sidebar_simple_page_entry_to_string (SidebarSimplePageEntry* self) {
+#line 69 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_SIMPLE_PAGE_ENTRY (self), NULL);
+#line 69 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS (self)->to_string (self);
+#line 702 "common.c"
+}
+
+
+static Page* sidebar_simple_page_entry_real_create_page (SidebarSimplePageEntry* self) {
+#line 73 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_critical ("Type `%s' does not implement abstract method `sidebar_simple_page_entry_create_page'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 73 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return NULL;
+#line 711 "common.c"
+}
+
+
+Page* sidebar_simple_page_entry_create_page (SidebarSimplePageEntry* self) {
+#line 73 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_SIMPLE_PAGE_ENTRY (self), NULL);
+#line 73 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS (self)->create_page (self);
+#line 720 "common.c"
+}
+
+
+static gboolean sidebar_simple_page_entry_real_has_page (SidebarPageRepresentative* base) {
+ SidebarSimplePageEntry * self;
+ gboolean result = FALSE;
+ Page* _tmp0_ = NULL;
+#line 75 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry);
+#line 76 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->page;
+#line 76 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp0_ != NULL;
+#line 76 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 736 "common.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 85 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 743 "common.c"
+}
+
+
+static Page* sidebar_simple_page_entry_real_get_page (SidebarPageRepresentative* base) {
+ SidebarSimplePageEntry * self;
+ Page* result = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp3_ = NULL;
+ Page* _tmp4_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry);
+#line 80 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->page;
+#line 80 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ if (_tmp0_ == NULL) {
+#line 759 "common.c"
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = sidebar_simple_page_entry_create_page (self);
+#line 81 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_object_unref0 (self->priv->page);
+#line 81 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->page = _tmp1_;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp2_ = self->priv->page;
+#line 82 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative), "page-created", _tmp2_);
+#line 772 "common.c"
+ }
+#line 85 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp3_ = self->priv->page;
+#line 85 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 85 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp4_;
+#line 85 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 782 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_real_pruned (SidebarEntry* base, SidebarTree* tree) {
+ SidebarSimplePageEntry * self;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ Page* _tmp2_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry);
+#line 88 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_if_fail (SIDEBAR_IS_TREE (tree));
+#line 89 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->page;
+#line 89 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ if (_tmp0_ == NULL) {
+#line 90 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return;
+#line 801 "common.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = self->priv->page;
+#line 92 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative), "destroying-page", _tmp1_);
+#line 93 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp2_ = self->priv->page;
+#line 93 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ gtk_widget_destroy (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, gtk_widget_get_type (), GtkWidget));
+#line 94 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_object_unref0 (self->priv->page);
+#line 94 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->page = NULL;
+#line 815 "common.c"
+}
+
+
+static GtkMenu* sidebar_simple_page_entry_real_get_sidebar_context_menu (SidebarContextable* base, GdkEventButton* event) {
+ SidebarSimplePageEntry * self;
+ GtkMenu* result = NULL;
+ Page* _tmp0_ = NULL;
+ Page* _tmp1_ = NULL;
+ GtkMenu* _tmp2_ = NULL;
+ GtkMenu* _tmp3_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry);
+#line 98 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = sidebar_page_representative_get_page (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative));
+#line 98 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = _tmp0_;
+#line 98 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp2_ = page_get_page_context_menu (_tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp3_ = _tmp2_;
+#line 98 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_object_unref0 (_tmp1_);
+#line 98 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp3_;
+#line 98 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 842 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_class_init (SidebarSimplePageEntryClass * klass) {
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_simple_page_entry_parent_class = g_type_class_peek_parent (klass);
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_type_class_add_private (klass, sizeof (SidebarSimplePageEntryPrivate));
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = sidebar_simple_page_entry_real_get_sidebar_name;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_tooltip = sidebar_simple_page_entry_real_get_sidebar_tooltip;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = sidebar_simple_page_entry_real_get_sidebar_icon;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ ((SidebarSimplePageEntryClass *) klass)->to_string = sidebar_simple_page_entry_real_to_string;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = sidebar_simple_page_entry_real_create_page;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ G_OBJECT_CLASS (klass)->finalize = sidebar_simple_page_entry_finalize;
+#line 863 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_sidebar_entry_interface_init (SidebarEntryIface * iface) {
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_simple_page_entry_sidebar_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_sidebar_name = (gchar* (*)(SidebarEntry*)) sidebar_simple_page_entry_get_sidebar_name;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_sidebar_tooltip = (gchar* (*)(SidebarEntry*)) sidebar_simple_page_entry_get_sidebar_tooltip;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_sidebar_icon = (gchar* (*)(SidebarEntry*)) sidebar_simple_page_entry_get_sidebar_icon;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->to_string = (gchar* (*)(SidebarEntry*)) sidebar_simple_page_entry_to_string;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->pruned = (void (*)(SidebarEntry*, SidebarTree*)) sidebar_simple_page_entry_real_pruned;
+#line 880 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_sidebar_selectable_entry_interface_init (SidebarSelectableEntryIface * iface) {
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_simple_page_entry_sidebar_selectable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 887 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_sidebar_page_representative_interface_init (SidebarPageRepresentativeIface * iface) {
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_simple_page_entry_sidebar_page_representative_parent_iface = g_type_interface_peek_parent (iface);
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->has_page = (gboolean (*)(SidebarPageRepresentative*)) sidebar_simple_page_entry_real_has_page;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_page = (Page* (*)(SidebarPageRepresentative*)) sidebar_simple_page_entry_real_get_page;
+#line 898 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_sidebar_contextable_interface_init (SidebarContextableIface * iface) {
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_simple_page_entry_sidebar_contextable_parent_iface = g_type_interface_peek_parent (iface);
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->get_sidebar_context_menu = (GtkMenu* (*)(SidebarContextable*, GdkEventButton*)) sidebar_simple_page_entry_real_get_sidebar_context_menu;
+#line 907 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_instance_init (SidebarSimplePageEntry * self) {
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv = SIDEBAR_SIMPLE_PAGE_ENTRY_GET_PRIVATE (self);
+#line 56 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->page = NULL;
+#line 916 "common.c"
+}
+
+
+static void sidebar_simple_page_entry_finalize (GObject* obj) {
+ SidebarSimplePageEntry * self;
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry);
+#line 56 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _g_object_unref0 (self->priv->page);
+#line 54 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ G_OBJECT_CLASS (sidebar_simple_page_entry_parent_class)->finalize (obj);
+#line 928 "common.c"
+}
+
+
+GType sidebar_simple_page_entry_get_type (void) {
+ static volatile gsize sidebar_simple_page_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_simple_page_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarSimplePageEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_simple_page_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarSimplePageEntry), 0, (GInstanceInitFunc) sidebar_simple_page_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_entry_info = { (GInterfaceInitFunc) sidebar_simple_page_entry_sidebar_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_selectable_entry_info = { (GInterfaceInitFunc) sidebar_simple_page_entry_sidebar_selectable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_page_representative_info = { (GInterfaceInitFunc) sidebar_simple_page_entry_sidebar_page_representative_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_contextable_info = { (GInterfaceInitFunc) sidebar_simple_page_entry_sidebar_contextable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType sidebar_simple_page_entry_type_id;
+ sidebar_simple_page_entry_type_id = g_type_register_static (G_TYPE_OBJECT, "SidebarSimplePageEntry", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_type_add_interface_static (sidebar_simple_page_entry_type_id, SIDEBAR_TYPE_ENTRY, &sidebar_entry_info);
+ g_type_add_interface_static (sidebar_simple_page_entry_type_id, SIDEBAR_TYPE_SELECTABLE_ENTRY, &sidebar_selectable_entry_info);
+ g_type_add_interface_static (sidebar_simple_page_entry_type_id, SIDEBAR_TYPE_PAGE_REPRESENTATIVE, &sidebar_page_representative_info);
+ g_type_add_interface_static (sidebar_simple_page_entry_type_id, SIDEBAR_TYPE_CONTEXTABLE, &sidebar_contextable_info);
+ g_once_init_leave (&sidebar_simple_page_entry_type_id__volatile, sidebar_simple_page_entry_type_id);
+ }
+ return sidebar_simple_page_entry_type_id__volatile;
+}
+
+
+static gint _sidebar_root_only_branch_null_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = sidebar_root_only_branch_null_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 105 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 957 "common.c"
+}
+
+
+SidebarRootOnlyBranch* sidebar_root_only_branch_construct (GType object_type, SidebarEntry* root) {
+ SidebarRootOnlyBranch * self = NULL;
+ SidebarEntry* _tmp0_ = NULL;
+#line 104 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (root), NULL);
+#line 105 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = root;
+#line 105 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = (SidebarRootOnlyBranch*) sidebar_branch_construct (object_type, _tmp0_, SIDEBAR_BRANCH_OPTIONS_NONE, _sidebar_root_only_branch_null_comparator_gcompare_func, NULL);
+#line 104 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return self;
+#line 972 "common.c"
+}
+
+
+SidebarRootOnlyBranch* sidebar_root_only_branch_new (SidebarEntry* root) {
+#line 104 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return sidebar_root_only_branch_construct (SIDEBAR_TYPE_ROOT_ONLY_BRANCH, root);
+#line 979 "common.c"
+}
+
+
+static gint sidebar_root_only_branch_null_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ gint _tmp0_ = 0;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 108 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 109 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = a;
+#line 109 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp2_ = b;
+#line 109 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ if (_tmp1_ != _tmp2_) {
+#line 109 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = -1;
+#line 1000 "common.c"
+ } else {
+#line 109 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = 0;
+#line 1004 "common.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp0_;
+#line 109 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 1010 "common.c"
+}
+
+
+static void sidebar_root_only_branch_class_init (SidebarRootOnlyBranchClass * klass) {
+#line 103 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_root_only_branch_parent_class = g_type_class_peek_parent (klass);
+#line 1017 "common.c"
+}
+
+
+static void sidebar_root_only_branch_instance_init (SidebarRootOnlyBranch * self) {
+}
+
+
+GType sidebar_root_only_branch_get_type (void) {
+ static volatile gsize sidebar_root_only_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_root_only_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarRootOnlyBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_root_only_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarRootOnlyBranch), 0, (GInstanceInitFunc) sidebar_root_only_branch_instance_init, NULL };
+ GType sidebar_root_only_branch_type_id;
+ sidebar_root_only_branch_type_id = g_type_register_static (SIDEBAR_TYPE_BRANCH, "SidebarRootOnlyBranch", &g_define_type_info, 0);
+ g_once_init_leave (&sidebar_root_only_branch_type_id__volatile, sidebar_root_only_branch_type_id);
+ }
+ return sidebar_root_only_branch_type_id__volatile;
+}
+
+
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized) {
+ SidebarHeader * self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 124 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = name;
+#line 124 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = (SidebarHeader*) sidebar_grouping_construct (object_type, _tmp0_, NULL, NULL);
+#line 125 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp1_ = emphasized;
+#line 125 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv->emphasized = _tmp1_;
+#line 123 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return self;
+#line 1053 "common.c"
+}
+
+
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized) {
+#line 123 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return sidebar_header_construct (SIDEBAR_TYPE_HEADER, name, emphasized);
+#line 1060 "common.c"
+}
+
+
+static gboolean sidebar_header_real_is_emphasized (SidebarEmphasizableEntry* base) {
+ SidebarHeader * self;
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 128 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, SIDEBAR_TYPE_HEADER, SidebarHeader);
+#line 129 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ _tmp0_ = self->priv->emphasized;
+#line 129 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ result = _tmp0_;
+#line 129 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return result;
+#line 1076 "common.c"
+}
+
+
+static void sidebar_header_class_init (SidebarHeaderClass * klass) {
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_header_parent_class = g_type_class_peek_parent (klass);
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_type_class_add_private (klass, sizeof (SidebarHeaderPrivate));
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ G_OBJECT_CLASS (klass)->finalize = sidebar_header_finalize;
+#line 1087 "common.c"
+}
+
+
+static void sidebar_header_sidebar_emphasizable_entry_interface_init (SidebarEmphasizableEntryIface * iface) {
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ sidebar_header_sidebar_emphasizable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ iface->is_emphasized = (gboolean (*)(SidebarEmphasizableEntry*)) sidebar_header_real_is_emphasized;
+#line 1096 "common.c"
+}
+
+
+static void sidebar_header_instance_init (SidebarHeader * self) {
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self->priv = SIDEBAR_HEADER_GET_PRIVATE (self);
+#line 1103 "common.c"
+}
+
+
+static void sidebar_header_finalize (GObject* obj) {
+ SidebarHeader * self;
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, SIDEBAR_TYPE_HEADER, SidebarHeader);
+#line 120 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ G_OBJECT_CLASS (sidebar_header_parent_class)->finalize (obj);
+#line 1113 "common.c"
+}
+
+
+/**
+ * A header is an entry that is visually distinguished from its children. Bug 6397 recommends
+ * headers to appear bolded and without any icons. To prevent the icons from rendering, we set the
+ * icons to null in the base class @see Sidebar.Grouping. But we also go a step further by
+ * using a custom cell_data_function (@see Sidebar.Tree::icon_renderer_function) which ensures that
+ * header icons won't be rendered. This approach avoids the blank icon spacing issues.
+ */
+GType sidebar_header_get_type (void) {
+ static volatile gsize sidebar_header_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_header_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarHeaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sidebar_header_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SidebarHeader), 0, (GInstanceInitFunc) sidebar_header_instance_init, NULL };
+ static const GInterfaceInfo sidebar_emphasizable_entry_info = { (GInterfaceInitFunc) sidebar_header_sidebar_emphasizable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType sidebar_header_type_id;
+ sidebar_header_type_id = g_type_register_static (SIDEBAR_TYPE_GROUPING, "SidebarHeader", &g_define_type_info, 0);
+ g_type_add_interface_static (sidebar_header_type_id, SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, &sidebar_emphasizable_entry_info);
+ g_once_init_leave (&sidebar_header_type_id__volatile, sidebar_header_type_id);
+ }
+ return sidebar_header_type_id__volatile;
+}
+
+
+GtkMenu* sidebar_contextable_get_sidebar_context_menu (SidebarContextable* self, GdkEventButton* event) {
+#line 135 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ g_return_val_if_fail (SIDEBAR_IS_CONTEXTABLE (self), NULL);
+#line 135 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ return SIDEBAR_CONTEXTABLE_GET_INTERFACE (self)->get_sidebar_context_menu (self, event);
+#line 1143 "common.c"
+}
+
+
+static void sidebar_contextable_base_init (SidebarContextableIface * iface) {
+#line 133 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ static gboolean initialized = FALSE;
+#line 133 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ if (!initialized) {
+#line 133 "/home/jens/Source/shotwell/src/sidebar/common.vala"
+ initialized = TRUE;
+#line 1154 "common.c"
+ }
+}
+
+
+GType sidebar_contextable_get_type (void) {
+ static volatile gsize sidebar_contextable_type_id__volatile = 0;
+ if (g_once_init_enter (&sidebar_contextable_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SidebarContextableIface), (GBaseInitFunc) sidebar_contextable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType sidebar_contextable_type_id;
+ sidebar_contextable_type_id = g_type_register_static (G_TYPE_INTERFACE, "SidebarContextable", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (sidebar_contextable_type_id, G_TYPE_OBJECT);
+ g_once_init_leave (&sidebar_contextable_type_id__volatile, sidebar_contextable_type_id);
+ }
+ return sidebar_contextable_type_id__volatile;
+}
+
+
+
diff --git a/src/sidebar/mk/sidebar.mk b/src/sidebar/mk/sidebar.mk
deleted file mode 100644
index 2a6c67d..0000000
--- a/src/sidebar/mk/sidebar.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Sidebar
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := sidebar
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- Branch.vala \
- Entry.vala \
- Tree.vala \
- common.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/slideshow/Slideshow.c b/src/slideshow/Slideshow.c
new file mode 100644
index 0000000..1731cfa
--- /dev/null
+++ b/src/slideshow/Slideshow.c
@@ -0,0 +1,377 @@
+/* Slideshow.c generated by valac 0.32.1, the Vala compiler
+ * generated from Slideshow.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <glib/gi18n-lib.h>
+
+
+
+
+void slideshow_init (GError** error);
+static void _vala_array_add33 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add34 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add35 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add36 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add37 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add38 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add39 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add40 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add41 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add42 (gchar*** array, int* length, int* size, gchar* value);
+void plugins_register_extension_point (GType type, const gchar* name, const gchar* icon_name, gchar** core_ids, int core_ids_length1);
+#define RESOURCES_ICON_SLIDESHOW_EXTENSION_POINT "slideshow-extension-point"
+void transition_effects_manager_init (void);
+void slideshow_terminate (void);
+void transition_effects_manager_terminate (void);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static void _vala_array_add33 (gchar*** array, int* length, int* size, gchar* value) {
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 48 "Slideshow.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 54 "Slideshow.c"
+}
+
+
+static void _vala_array_add34 (gchar*** array, int* length, int* size, gchar* value) {
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 65 "Slideshow.c"
+ }
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 71 "Slideshow.c"
+}
+
+
+static void _vala_array_add35 (gchar*** array, int* length, int* size, gchar* value) {
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 82 "Slideshow.c"
+ }
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 88 "Slideshow.c"
+}
+
+
+static void _vala_array_add36 (gchar*** array, int* length, int* size, gchar* value) {
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 99 "Slideshow.c"
+ }
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 105 "Slideshow.c"
+}
+
+
+static void _vala_array_add37 (gchar*** array, int* length, int* size, gchar* value) {
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 116 "Slideshow.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 122 "Slideshow.c"
+}
+
+
+static void _vala_array_add38 (gchar*** array, int* length, int* size, gchar* value) {
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 133 "Slideshow.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 139 "Slideshow.c"
+}
+
+
+static void _vala_array_add39 (gchar*** array, int* length, int* size, gchar* value) {
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 150 "Slideshow.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 156 "Slideshow.c"
+}
+
+
+static void _vala_array_add40 (gchar*** array, int* length, int* size, gchar* value) {
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 167 "Slideshow.c"
+ }
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 173 "Slideshow.c"
+}
+
+
+static void _vala_array_add41 (gchar*** array, int* length, int* size, gchar* value) {
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 184 "Slideshow.c"
+ }
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 190 "Slideshow.c"
+}
+
+
+static void _vala_array_add42 (gchar*** array, int* length, int* size, gchar* value) {
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ if ((*length) == (*size)) {
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 201 "Slideshow.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[(*length)++] = value;
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ (*array)[*length] = NULL;
+#line 207 "Slideshow.c"
+}
+
+
+void slideshow_init (GError** error) {
+ gchar** core_ids = NULL;
+ gchar** _tmp0_ = NULL;
+ gint core_ids_length1 = 0;
+ gint _core_ids_size_ = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar* _tmp2_ = NULL;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ gchar* _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gchar* _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ gchar* _tmp10_ = NULL;
+ gchar** _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gchar* _tmp12_ = NULL;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gchar* _tmp14_ = NULL;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ gchar* _tmp16_ = NULL;
+ gchar** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+ gchar* _tmp18_ = NULL;
+ gchar** _tmp19_ = NULL;
+ gint _tmp19__length1 = 0;
+ gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+#line 10 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 10 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ core_ids = _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ core_ids_length1 = 0;
+#line 10 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _core_ids_size_ = core_ids_length1;
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp1_ = core_ids;
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp1__length1 = core_ids_length1;
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp2_ = g_strdup ("org.yorba.shotwell.transitions.crumble");
+#line 11 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add33 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp2_);
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp3_ = core_ids;
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp3__length1 = core_ids_length1;
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp4_ = g_strdup ("org.yorba.shotwell.transitions.fade");
+#line 12 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add34 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp4_);
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp5_ = core_ids;
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp5__length1 = core_ids_length1;
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp6_ = g_strdup ("org.yorba.shotwell.transitions.slide");
+#line 13 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add35 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp6_);
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp7_ = core_ids;
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp7__length1 = core_ids_length1;
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp8_ = g_strdup ("org.yorba.shotwell.transitions.blinds");
+#line 14 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add36 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp8_);
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp9_ = core_ids;
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp9__length1 = core_ids_length1;
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp10_ = g_strdup ("org.yorba.shotwell.transitions.circle");
+#line 15 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add37 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp10_);
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp11_ = core_ids;
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp11__length1 = core_ids_length1;
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp12_ = g_strdup ("org.yorba.shotwell.transitions.circles");
+#line 16 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add38 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp12_);
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp13_ = core_ids;
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp13__length1 = core_ids_length1;
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp14_ = g_strdup ("org.yorba.shotwell.transitions.clock");
+#line 17 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add39 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp14_);
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp15_ = core_ids;
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp15__length1 = core_ids_length1;
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp16_ = g_strdup ("org.yorba.shotwell.transitions.stripes");
+#line 18 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add40 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp16_);
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp17_ = core_ids;
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp17__length1 = core_ids_length1;
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp18_ = g_strdup ("org.yorba.shotwell.transitions.squares");
+#line 19 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add41 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp18_);
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp19_ = core_ids;
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp19__length1 = core_ids_length1;
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp20_ = g_strdup ("org.yorba.shotwell.transitions.chess");
+#line 20 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _vala_array_add42 (&core_ids, &core_ids_length1, &_core_ids_size_, _tmp20_);
+#line 22 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp21_ = _ ("Slideshow Transitions");
+#line 22 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp22_ = core_ids;
+#line 22 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ _tmp22__length1 = core_ids_length1;
+#line 22 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ plugins_register_extension_point (SPIT_TRANSITIONS_TYPE_DESCRIPTOR, _tmp21_, RESOURCES_ICON_SLIDESHOW_EXTENSION_POINT, _tmp22_, _tmp22__length1);
+#line 24 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ transition_effects_manager_init ();
+#line 9 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ core_ids = (_vala_array_free (core_ids, core_ids_length1, (GDestroyNotify) g_free), NULL);
+#line 349 "Slideshow.c"
+}
+
+
+void slideshow_terminate (void) {
+#line 28 "/home/jens/Source/shotwell/src/slideshow/Slideshow.vala"
+ transition_effects_manager_terminate ();
+#line 356 "Slideshow.c"
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/slideshow/TransitionEffects.c b/src/slideshow/TransitionEffects.c
new file mode 100644
index 0000000..292187e
--- /dev/null
+++ b/src/slideshow/TransitionEffects.c
@@ -0,0 +1,2658 @@
+/* TransitionEffects.c generated by valac 0.32.1, the Vala compiler
+ * generated from TransitionEffects.vala, do not modify */
+
+/* Copyright 2010 Maxim Kartashev
+ * Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <glib/gi18n-lib.h>
+#include <float.h>
+#include <math.h>
+#include <cairo.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_TRANSITION_EFFECTS_MANAGER (transition_effects_manager_get_type ())
+#define TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManager))
+#define TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))
+#define IS_TRANSITION_EFFECTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSITION_EFFECTS_MANAGER))
+#define IS_TRANSITION_EFFECTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSITION_EFFECTS_MANAGER))
+#define TRANSITION_EFFECTS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerClass))
+
+typedef struct _TransitionEffectsManager TransitionEffectsManager;
+typedef struct _TransitionEffectsManagerClass TransitionEffectsManagerClass;
+typedef struct _TransitionEffectsManagerPrivate TransitionEffectsManagerPrivate;
+
+#define PLUGINS_TYPE_NOTIFIER (plugins_notifier_get_type ())
+#define PLUGINS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifier))
+#define PLUGINS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass))
+#define PLUGINS_IS_NOTIFIER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_NOTIFIER))
+#define PLUGINS_IS_NOTIFIER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_NOTIFIER))
+#define PLUGINS_NOTIFIER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_NOTIFIER, PluginsNotifierClass))
+
+typedef struct _PluginsNotifier PluginsNotifier;
+typedef struct _PluginsNotifierClass PluginsNotifierClass;
+#define _plugins_notifier_unref0(var) ((var == NULL) ? NULL : (var = (plugins_notifier_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_NULL_TRANSITION_DESCRIPTOR (null_transition_descriptor_get_type ())
+#define NULL_TRANSITION_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptor))
+#define NULL_TRANSITION_DESCRIPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptorClass))
+#define IS_NULL_TRANSITION_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NULL_TRANSITION_DESCRIPTOR))
+#define IS_NULL_TRANSITION_DESCRIPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NULL_TRANSITION_DESCRIPTOR))
+#define NULL_TRANSITION_DESCRIPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptorClass))
+
+typedef struct _NullTransitionDescriptor NullTransitionDescriptor;
+typedef struct _NullTransitionDescriptorClass NullTransitionDescriptorClass;
+
+#define TYPE_RANDOM_EFFECT_DESCRIPTOR (random_effect_descriptor_get_type ())
+#define RANDOM_EFFECT_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptor))
+#define RANDOM_EFFECT_DESCRIPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptorClass))
+#define IS_RANDOM_EFFECT_DESCRIPTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RANDOM_EFFECT_DESCRIPTOR))
+#define IS_RANDOM_EFFECT_DESCRIPTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RANDOM_EFFECT_DESCRIPTOR))
+#define RANDOM_EFFECT_DESCRIPTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptorClass))
+
+typedef struct _RandomEffectDescriptor RandomEffectDescriptor;
+typedef struct _RandomEffectDescriptorClass RandomEffectDescriptorClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _transition_effects_manager_unref0(var) ((var == NULL) ? NULL : (var = (transition_effects_manager_unref (var), NULL)))
+
+#define TYPE_TRANSITION_CLOCK (transition_clock_get_type ())
+#define TRANSITION_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRANSITION_CLOCK, TransitionClock))
+#define TRANSITION_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRANSITION_CLOCK, TransitionClockClass))
+#define IS_TRANSITION_CLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRANSITION_CLOCK))
+#define IS_TRANSITION_CLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRANSITION_CLOCK))
+#define TRANSITION_CLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRANSITION_CLOCK, TransitionClockClass))
+
+typedef struct _TransitionClock TransitionClock;
+typedef struct _TransitionClockClass TransitionClockClass;
+#define _transition_clock_unref0(var) ((var == NULL) ? NULL : (var = (transition_clock_unref (var), NULL)))
+typedef struct _ParamSpecTransitionEffectsManager ParamSpecTransitionEffectsManager;
+typedef struct _TransitionClockPrivate TransitionClockPrivate;
+
+#define TYPE_OP_TIMER (op_timer_get_type ())
+#define OP_TIMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OP_TIMER, OpTimer))
+#define OP_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OP_TIMER, OpTimerClass))
+#define IS_OP_TIMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OP_TIMER))
+#define IS_OP_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OP_TIMER))
+#define OP_TIMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OP_TIMER, OpTimerClass))
+
+typedef struct _OpTimer OpTimer;
+typedef struct _OpTimerClass OpTimerClass;
+#define _op_timer_unref0(var) ((var == NULL) ? NULL : (var = (op_timer_unref (var), NULL)))
+
+#define PLUGINS_TYPE_STANDARD_HOST_INTERFACE (plugins_standard_host_interface_get_type ())
+#define PLUGINS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterface))
+#define PLUGINS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_IS_STANDARD_HOST_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLUGINS_TYPE_STANDARD_HOST_INTERFACE))
+#define PLUGINS_STANDARD_HOST_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLUGINS_TYPE_STANDARD_HOST_INTERFACE, PluginsStandardHostInterfaceClass))
+
+typedef struct _PluginsStandardHostInterface PluginsStandardHostInterface;
+typedef struct _PluginsStandardHostInterfaceClass PluginsStandardHostInterfaceClass;
+typedef struct _ParamSpecTransitionClock ParamSpecTransitionClock;
+typedef struct _NullTransitionDescriptorPrivate NullTransitionDescriptorPrivate;
+
+#define TYPE_NULL_EFFECT (null_effect_get_type ())
+#define NULL_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NULL_EFFECT, NullEffect))
+#define NULL_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NULL_EFFECT, NullEffectClass))
+#define IS_NULL_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NULL_EFFECT))
+#define IS_NULL_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NULL_EFFECT))
+#define NULL_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NULL_EFFECT, NullEffectClass))
+
+typedef struct _NullEffect NullEffect;
+typedef struct _NullEffectClass NullEffectClass;
+typedef struct _NullEffectPrivate NullEffectPrivate;
+typedef struct _RandomEffectDescriptorPrivate RandomEffectDescriptorPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _TransitionEffectsManager {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TransitionEffectsManagerPrivate * priv;
+};
+
+struct _TransitionEffectsManagerClass {
+ GTypeClass parent_class;
+ void (*finalize) (TransitionEffectsManager *self);
+};
+
+struct _TransitionEffectsManagerPrivate {
+ GeeMap* effects;
+ SpitTransitionsDescriptor* null_descriptor;
+ SpitTransitionsDescriptor* random_descriptor;
+};
+
+struct _ParamSpecTransitionEffectsManager {
+ GParamSpec parent_instance;
+};
+
+struct _TransitionClock {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ TransitionClockPrivate * priv;
+};
+
+struct _TransitionClockClass {
+ GTypeClass parent_class;
+ void (*finalize) (TransitionClock *self);
+};
+
+typedef void (*TransitionClockRepaintCallback) (void* user_data);
+struct _TransitionClockPrivate {
+ SpitTransitionsDescriptor* desc;
+ SpitTransitionsEffect* effect;
+ gint desired_fps;
+ gint min_fps;
+ gint current_fps;
+ OpTimer* paint_timer;
+ SpitTransitionsVisuals* visuals;
+ SpitTransitionsMotion* motion;
+ TransitionClockRepaintCallback repaint;
+ gpointer repaint_target;
+ guint timer_id;
+ gulong time_started;
+ gint frame_number;
+ gboolean cancelled;
+};
+
+struct _ParamSpecTransitionClock {
+ GParamSpec parent_instance;
+};
+
+struct _NullTransitionDescriptor {
+ GObject parent_instance;
+ NullTransitionDescriptorPrivate * priv;
+};
+
+struct _NullTransitionDescriptorClass {
+ GObjectClass parent_class;
+};
+
+struct _NullEffect {
+ GObject parent_instance;
+ NullEffectPrivate * priv;
+};
+
+struct _NullEffectClass {
+ GObjectClass parent_class;
+};
+
+struct _RandomEffectDescriptor {
+ GObject parent_instance;
+ RandomEffectDescriptorPrivate * priv;
+};
+
+struct _RandomEffectDescriptorClass {
+ GObjectClass parent_class;
+};
+
+
+static gpointer transition_effects_manager_parent_class = NULL;
+static TransitionEffectsManager* transition_effects_manager_instance;
+static TransitionEffectsManager* transition_effects_manager_instance = NULL;
+static gpointer transition_clock_parent_class = NULL;
+static gpointer null_transition_descriptor_parent_class = NULL;
+static SpitPluggableIface* null_transition_descriptor_spit_pluggable_parent_iface = NULL;
+static SpitTransitionsDescriptorIface* null_transition_descriptor_spit_transitions_descriptor_parent_iface = NULL;
+static gpointer null_effect_parent_class = NULL;
+static SpitTransitionsEffectIface* null_effect_spit_transitions_effect_parent_iface = NULL;
+static gpointer random_effect_descriptor_parent_class = NULL;
+static SpitPluggableIface* random_effect_descriptor_spit_pluggable_parent_iface = NULL;
+static SpitTransitionsDescriptorIface* random_effect_descriptor_spit_transitions_descriptor_parent_iface = NULL;
+
+gpointer transition_effects_manager_ref (gpointer instance);
+void transition_effects_manager_unref (gpointer instance);
+GParamSpec* param_spec_transition_effects_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transition_effects_manager (GValue* value, gpointer v_object);
+void value_take_transition_effects_manager (GValue* value, gpointer v_object);
+gpointer value_get_transition_effects_manager (const GValue* value);
+GType transition_effects_manager_get_type (void) G_GNUC_CONST;
+#define TRANSITION_EFFECTS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManagerPrivate))
+enum {
+ TRANSITION_EFFECTS_MANAGER_DUMMY_PROPERTY
+};
+gpointer plugins_notifier_ref (gpointer instance);
+void plugins_notifier_unref (gpointer instance);
+GParamSpec* plugins_param_spec_notifier (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void plugins_value_set_notifier (GValue* value, gpointer v_object);
+void plugins_value_take_notifier (GValue* value, gpointer v_object);
+gpointer plugins_value_get_notifier (const GValue* value);
+GType plugins_notifier_get_type (void) G_GNUC_CONST;
+PluginsNotifier* plugins_notifier_get_instance (void);
+static void transition_effects_manager_load_transitions (TransitionEffectsManager* self);
+static void _transition_effects_manager_load_transitions_plugins_notifier_pluggable_activation (PluginsNotifier* _sender, SpitPluggable* pluggable, gboolean enabled, gpointer self);
+NullTransitionDescriptor* null_transition_descriptor_new (void);
+NullTransitionDescriptor* null_transition_descriptor_construct (GType object_type);
+GType null_transition_descriptor_get_type (void) G_GNUC_CONST;
+RandomEffectDescriptor* random_effect_descriptor_new (void);
+RandomEffectDescriptor* random_effect_descriptor_construct (GType object_type);
+GType random_effect_descriptor_get_type (void) G_GNUC_CONST;
+#define NULL_TRANSITION_DESCRIPTOR_EFFECT_ID "org.yorba.shotwell.transitions.null"
+#define TRANSITION_EFFECTS_MANAGER_NULL_EFFECT_ID NULL_TRANSITION_DESCRIPTOR_EFFECT_ID
+#define RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID "org.yorba.shotwell.transitions.random"
+#define TRANSITION_EFFECTS_MANAGER_RANDOM_EFFECT_ID RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID
+static TransitionEffectsManager* transition_effects_manager_new (void);
+static TransitionEffectsManager* transition_effects_manager_construct (GType object_type);
+GeeCollection* plugins_get_pluggables_for_type (GType type, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify, gboolean include_disabled);
+gchar* plugins_get_pluggable_module_id (SpitPluggable* needle);
+void transition_effects_manager_init (void);
+void transition_effects_manager_terminate (void);
+TransitionEffectsManager* transition_effects_manager_get_instance (void);
+GeeCollection* transition_effects_manager_get_effect_ids (TransitionEffectsManager* self);
+GeeCollection* transition_effects_manager_get_effect_names (TransitionEffectsManager* self, GCompareDataFunc comparator, void* comparator_target, GDestroyNotify comparator_target_destroy_notify);
+gchar* transition_effects_manager_get_id_for_effect_name (TransitionEffectsManager* self, const gchar* effect_name);
+SpitTransitionsDescriptor* transition_effects_manager_get_effect_descriptor (TransitionEffectsManager* self, const gchar* effect_id);
+gchar* transition_effects_manager_get_effect_name (TransitionEffectsManager* self, const gchar* effect_id);
+SpitTransitionsDescriptor* transition_effects_manager_get_null_descriptor (TransitionEffectsManager* self);
+gpointer transition_clock_ref (gpointer instance);
+void transition_clock_unref (gpointer instance);
+GParamSpec* param_spec_transition_clock (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_transition_clock (GValue* value, gpointer v_object);
+void value_take_transition_clock (GValue* value, gpointer v_object);
+gpointer value_get_transition_clock (const GValue* value);
+GType transition_clock_get_type (void) G_GNUC_CONST;
+TransitionClock* transition_effects_manager_create_transition_clock (TransitionEffectsManager* self, const gchar* effect_id);
+TransitionClock* transition_clock_new (SpitTransitionsDescriptor* desc);
+TransitionClock* transition_clock_construct (GType object_type, SpitTransitionsDescriptor* desc);
+TransitionClock* transition_effects_manager_create_null_transition_clock (TransitionEffectsManager* self);
+static void transition_effects_manager_finalize (TransitionEffectsManager* obj);
+gpointer op_timer_ref (gpointer instance);
+void op_timer_unref (gpointer instance);
+GParamSpec* param_spec_op_timer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_op_timer (GValue* value, gpointer v_object);
+void value_take_op_timer (GValue* value, gpointer v_object);
+gpointer value_get_op_timer (const GValue* value);
+GType op_timer_get_type (void) G_GNUC_CONST;
+#define TRANSITION_CLOCK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TRANSITION_CLOCK, TransitionClockPrivate))
+enum {
+ TRANSITION_CLOCK_DUMMY_PROPERTY
+};
+static void transition_clock_cancel_timer (TransitionClock* self);
+gchar* op_timer_to_string (OpTimer* self);
+PluginsStandardHostInterface* plugins_standard_host_interface_new (SpitPluggable* pluggable, const gchar* config_domain);
+PluginsStandardHostInterface* plugins_standard_host_interface_construct (GType object_type, SpitPluggable* pluggable, const gchar* config_domain);
+GType plugins_standard_host_interface_get_type (void) G_GNUC_CONST;
+OpTimer* op_timer_new (const gchar* name);
+OpTimer* op_timer_construct (GType object_type, const gchar* name);
+gboolean transition_clock_is_in_progress (TransitionClock* self);
+void transition_clock_start (TransitionClock* self, SpitTransitionsVisuals* visuals, SpitTransitionsDirection direction, gint duration_msec, TransitionClockRepaintCallback repaint, void* repaint_target);
+static void transition_clock_reset (TransitionClock* self);
+gulong now_ms (void);
+static gboolean transition_clock_tick (TransitionClock* self);
+static gboolean _transition_clock_tick_gsource_func (gpointer self);
+static gboolean transition_clock_is_fps_ok (TransitionClock* self);
+void transition_clock_cancel (TransitionClock* self);
+gboolean transition_clock_paint (TransitionClock* self, cairo_t* ctx, gint width, gint height);
+void op_timer_start (OpTimer* self);
+void op_timer_stop (OpTimer* self);
+static void transition_clock_finalize (TransitionClock* obj);
+enum {
+ NULL_TRANSITION_DESCRIPTOR_DUMMY_PROPERTY
+};
+static gint null_transition_descriptor_real_get_pluggable_interface (SpitPluggable* base, gint min_host_version, gint max_host_version);
+static const gchar* null_transition_descriptor_real_get_id (SpitPluggable* base);
+static const gchar* null_transition_descriptor_real_get_pluggable_name (SpitPluggable* base);
+static void null_transition_descriptor_real_get_info (SpitPluggable* base, SpitPluggableInfo* info);
+static void null_transition_descriptor_real_activation (SpitPluggable* base, gboolean enabled);
+static SpitTransitionsEffect* null_transition_descriptor_real_create (SpitTransitionsDescriptor* base, SpitHostInterface* host);
+NullEffect* null_effect_new (void);
+NullEffect* null_effect_construct (GType object_type);
+GType null_effect_get_type (void) G_GNUC_CONST;
+enum {
+ NULL_EFFECT_DUMMY_PROPERTY
+};
+static void null_effect_real_get_fps (SpitTransitionsEffect* base, gint* desired_fps, gint* min_fps);
+static void null_effect_real_start (SpitTransitionsEffect* base, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion);
+static gboolean null_effect_real_needs_clear_background (SpitTransitionsEffect* base);
+static void null_effect_real_paint (SpitTransitionsEffect* base, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number);
+static void null_effect_real_advance (SpitTransitionsEffect* base, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number);
+static void null_effect_real_cancel (SpitTransitionsEffect* base);
+enum {
+ RANDOM_EFFECT_DESCRIPTOR_DUMMY_PROPERTY
+};
+static gint random_effect_descriptor_real_get_pluggable_interface (SpitPluggable* base, gint min_host_version, gint max_host_version);
+static const gchar* random_effect_descriptor_real_get_id (SpitPluggable* base);
+static const gchar* random_effect_descriptor_real_get_pluggable_name (SpitPluggable* base);
+static void random_effect_descriptor_real_get_info (SpitPluggable* base, SpitPluggableInfo* info);
+static void random_effect_descriptor_real_activation (SpitPluggable* base, gboolean enabled);
+static SpitTransitionsEffect* random_effect_descriptor_real_create (SpitTransitionsDescriptor* base, SpitHostInterface* host);
+
+
+static void _transition_effects_manager_load_transitions_plugins_notifier_pluggable_activation (PluginsNotifier* _sender, SpitPluggable* pluggable, gboolean enabled, gpointer self) {
+#line 25 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_load_transitions ((TransitionEffectsManager*) self);
+#line 338 "TransitionEffects.c"
+}
+
+
+static TransitionEffectsManager* transition_effects_manager_construct (GType object_type) {
+ TransitionEffectsManager* self = NULL;
+ PluginsNotifier* _tmp0_ = NULL;
+ PluginsNotifier* _tmp1_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = (TransitionEffectsManager*) g_type_create_instance (object_type);
+#line 20 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_load_transitions (self);
+#line 21 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = plugins_notifier_get_instance ();
+#line 21 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = _tmp0_;
+#line 21 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_signal_connect (_tmp1_, "pluggable-activation", (GCallback) _transition_effects_manager_load_transitions_plugins_notifier_pluggable_activation, self);
+#line 21 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _plugins_notifier_unref0 (_tmp1_);
+#line 19 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return self;
+#line 360 "TransitionEffects.c"
+}
+
+
+static TransitionEffectsManager* transition_effects_manager_new (void) {
+#line 19 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return transition_effects_manager_construct (TYPE_TRANSITION_EFFECTS_MANAGER);
+#line 367 "TransitionEffects.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 48 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 374 "TransitionEffects.c"
+}
+
+
+static void transition_effects_manager_load_transitions (TransitionEffectsManager* self) {
+ GeeMap* _tmp0_ = NULL;
+ GeeMap* _tmp1_ = NULL;
+ SpitTransitionsDescriptor* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ SpitTransitionsDescriptor* _tmp4_ = NULL;
+ GeeMap* _tmp5_ = NULL;
+ SpitTransitionsDescriptor* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ SpitTransitionsDescriptor* _tmp8_ = NULL;
+ GeeCollection* pluggables = NULL;
+ GeeCollection* _tmp9_ = NULL;
+#line 28 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self));
+#line 29 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->effects;
+#line 29 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ gee_map_clear (_tmp0_);
+#line 32 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = self->priv->effects;
+#line 32 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = self->priv->null_descriptor;
+#line 32 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 32 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = self->priv->null_descriptor;
+#line 32 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ gee_map_set (_tmp1_, _tmp3_, _tmp4_);
+#line 33 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = self->priv->effects;
+#line 33 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = self->priv->random_descriptor;
+#line 33 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 33 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = self->priv->random_descriptor;
+#line 33 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ gee_map_set (_tmp5_, _tmp7_, _tmp8_);
+#line 36 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = plugins_get_pluggables_for_type (SPIT_TRANSITIONS_TYPE_DESCRIPTOR, NULL, NULL, NULL, FALSE);
+#line 36 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ pluggables = _tmp9_;
+#line 420 "TransitionEffects.c"
+ {
+ GeeIterator* _pluggable_it = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ GeeIterator* _tmp11_ = NULL;
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = pluggables;
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp11_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _pluggable_it = _tmp11_;
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ while (TRUE) {
+#line 433 "TransitionEffects.c"
+ GeeIterator* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ SpitPluggable* pluggable = NULL;
+ GeeIterator* _tmp14_ = NULL;
+ gpointer _tmp15_ = NULL;
+ gint pluggable_interface = 0;
+ SpitPluggable* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ SpitTransitionsDescriptor* desc = NULL;
+ SpitPluggable* _tmp23_ = NULL;
+ SpitTransitionsDescriptor* _tmp24_ = NULL;
+ GeeMap* _tmp25_ = NULL;
+ SpitTransitionsDescriptor* _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp12_ = _pluggable_it;
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp13_ = gee_iterator_next (_tmp12_);
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!_tmp13_) {
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ break;
+#line 458 "TransitionEffects.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp14_ = _pluggable_it;
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp15_ = gee_iterator_get (_tmp14_);
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ pluggable = (SpitPluggable*) _tmp15_;
+#line 39 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp16_ = pluggable;
+#line 39 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp17_ = spit_pluggable_get_pluggable_interface (_tmp16_, SPIT_TRANSITIONS_CURRENT_INTERFACE, SPIT_TRANSITIONS_CURRENT_INTERFACE);
+#line 39 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ pluggable_interface = _tmp17_;
+#line 41 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp18_ = pluggable_interface;
+#line 41 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp18_ != SPIT_TRANSITIONS_CURRENT_INTERFACE) {
+#line 476 "TransitionEffects.c"
+ SpitPluggable* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+#line 42 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp19_ = pluggable;
+#line 42 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp20_ = plugins_get_pluggable_module_id (_tmp19_);
+#line 42 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp21_ = _tmp20_;
+#line 42 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp22_ = pluggable_interface;
+#line 42 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_warning ("TransitionEffects.vala:42: Unable to load transitions plug-in %s: repo" \
+"rted interface %d", _tmp21_, _tmp22_);
+#line 42 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_free0 (_tmp21_);
+#line 45 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (pluggable);
+#line 45 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ continue;
+#line 497 "TransitionEffects.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp23_ = pluggable;
+#line 48 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp24_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, SPIT_TRANSITIONS_TYPE_DESCRIPTOR, SpitTransitionsDescriptor));
+#line 48 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ desc = _tmp24_;
+#line 49 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp25_ = self->priv->effects;
+#line 49 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp26_ = desc;
+#line 49 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp27_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 49 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp28_ = gee_map_has_key (_tmp25_, _tmp27_);
+#line 49 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp28_) {
+#line 515 "TransitionEffects.c"
+ SpitTransitionsDescriptor* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+#line 50 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp29_ = desc;
+#line 50 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp30_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp29_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 50 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_warning ("TransitionEffects.vala:50: Multiple transitions loaded with same effec" \
+"t ID %s", _tmp30_);
+#line 524 "TransitionEffects.c"
+ } else {
+ GeeMap* _tmp31_ = NULL;
+ SpitTransitionsDescriptor* _tmp32_ = NULL;
+ const gchar* _tmp33_ = NULL;
+ SpitTransitionsDescriptor* _tmp34_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp31_ = self->priv->effects;
+#line 52 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp32_ = desc;
+#line 52 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp33_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp32_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 52 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp34_ = desc;
+#line 52 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ gee_map_set (_tmp31_, _tmp33_, _tmp34_);
+#line 540 "TransitionEffects.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (desc);
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (pluggable);
+#line 546 "TransitionEffects.c"
+ }
+#line 38 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (_pluggable_it);
+#line 550 "TransitionEffects.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (pluggables);
+#line 554 "TransitionEffects.c"
+}
+
+
+void transition_effects_manager_init (void) {
+ TransitionEffectsManager* _tmp0_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = transition_effects_manager_new ();
+#line 57 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _transition_effects_manager_unref0 (transition_effects_manager_instance);
+#line 57 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_instance = _tmp0_;
+#line 566 "TransitionEffects.c"
+}
+
+
+void transition_effects_manager_terminate (void) {
+#line 61 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _transition_effects_manager_unref0 (transition_effects_manager_instance);
+#line 61 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_instance = NULL;
+#line 575 "TransitionEffects.c"
+}
+
+
+static gpointer _transition_effects_manager_ref0 (gpointer self) {
+#line 67 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return self ? transition_effects_manager_ref (self) : NULL;
+#line 582 "TransitionEffects.c"
+}
+
+
+TransitionEffectsManager* transition_effects_manager_get_instance (void) {
+ TransitionEffectsManager* result = NULL;
+ TransitionEffectsManager* _tmp0_ = NULL;
+ TransitionEffectsManager* _tmp1_ = NULL;
+ TransitionEffectsManager* _tmp2_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = transition_effects_manager_instance;
+#line 65 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _vala_assert (_tmp0_ != NULL, "instance != null");
+#line 67 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = transition_effects_manager_instance;
+#line 67 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = _transition_effects_manager_ref0 (_tmp1_);
+#line 67 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp2_;
+#line 67 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 603 "TransitionEffects.c"
+}
+
+
+GeeCollection* transition_effects_manager_get_effect_ids (TransitionEffectsManager* self) {
+ GeeCollection* result = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 71 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->effects;
+#line 71 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 71 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = _tmp1_;
+#line 71 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 71 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 624 "TransitionEffects.c"
+}
+
+
+GeeCollection* transition_effects_manager_get_effect_names (TransitionEffectsManager* self, GCompareDataFunc comparator, void* comparator_target, GDestroyNotify comparator_target_destroy_notify) {
+ GeeCollection* result = NULL;
+ GeeCollection* effect_names = NULL;
+ GCompareDataFunc _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ GDestroyNotify _tmp0__target_destroy_notify = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+#line 74 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 75 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = comparator;
+#line 75 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0__target = comparator_target;
+#line 75 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0__target_destroy_notify = comparator_target_destroy_notify;
+#line 75 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ comparator_target_destroy_notify = NULL;
+#line 75 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, _tmp0_, _tmp0__target, _tmp0__target_destroy_notify);
+#line 75 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ effect_names = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 649 "TransitionEffects.c"
+ {
+ GeeIterator* _desc_it = NULL;
+ GeeMap* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeCollection* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = self->priv->effects;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = gee_map_get_values (_tmp2_);
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = _tmp3_;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = _tmp4_;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = _tmp6_;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (_tmp5_);
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _desc_it = _tmp7_;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ while (TRUE) {
+#line 676 "TransitionEffects.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ SpitTransitionsDescriptor* desc = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ GeeCollection* _tmp12_ = NULL;
+ SpitTransitionsDescriptor* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = _desc_it;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!_tmp9_) {
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ break;
+#line 693 "TransitionEffects.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = _desc_it;
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ desc = (SpitTransitionsDescriptor*) _tmp11_;
+#line 77 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp12_ = effect_names;
+#line 77 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp13_ = desc;
+#line 77 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp14_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 77 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ gee_collection_add (_tmp12_, _tmp14_);
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (desc);
+#line 711 "TransitionEffects.c"
+ }
+#line 76 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (_desc_it);
+#line 715 "TransitionEffects.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = effect_names;
+#line 79 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ (comparator_target_destroy_notify == NULL) ? NULL : (comparator_target_destroy_notify (comparator_target), NULL);
+#line 79 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ comparator = NULL;
+#line 79 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ comparator_target = NULL;
+#line 79 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ comparator_target_destroy_notify = NULL;
+#line 79 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 729 "TransitionEffects.c"
+}
+
+
+gchar* transition_effects_manager_get_id_for_effect_name (TransitionEffectsManager* self, const gchar* effect_name) {
+ gchar* result = NULL;
+#line 82 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 82 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (effect_name != NULL, NULL);
+#line 739 "TransitionEffects.c"
+ {
+ GeeIterator* _desc_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->effects;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = gee_map_get_values (_tmp0_);
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = _tmp1_;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = _tmp2_;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = _tmp4_;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (_tmp3_);
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _desc_it = _tmp5_;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ while (TRUE) {
+#line 766 "TransitionEffects.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ SpitTransitionsDescriptor* desc = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ SpitTransitionsDescriptor* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = _desc_it;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!_tmp7_) {
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ break;
+#line 783 "TransitionEffects.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = _desc_it;
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ desc = (SpitTransitionsDescriptor*) _tmp9_;
+#line 84 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = desc;
+#line 84 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp11_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 84 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp12_ = effect_name;
+#line 84 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (g_strcmp0 (_tmp11_, _tmp12_) == 0) {
+#line 799 "TransitionEffects.c"
+ SpitTransitionsDescriptor* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp13_ = desc;
+#line 85 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp14_ = spit_pluggable_get_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 85 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp15_ = g_strdup (_tmp14_);
+#line 85 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp15_;
+#line 85 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (desc);
+#line 85 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (_desc_it);
+#line 85 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 817 "TransitionEffects.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (desc);
+#line 821 "TransitionEffects.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (_desc_it);
+#line 825 "TransitionEffects.c"
+ }
+#line 88 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = NULL;
+#line 88 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 831 "TransitionEffects.c"
+}
+
+
+SpitTransitionsDescriptor* transition_effects_manager_get_effect_descriptor (TransitionEffectsManager* self, const gchar* effect_id) {
+ SpitTransitionsDescriptor* result = NULL;
+ GeeMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 91 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 91 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (effect_id != NULL, NULL);
+#line 92 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->effects;
+#line 92 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = effect_id;
+#line 92 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = gee_map_get (_tmp0_, _tmp1_);
+#line 92 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = (SpitTransitionsDescriptor*) _tmp2_;
+#line 92 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 854 "TransitionEffects.c"
+}
+
+
+gchar* transition_effects_manager_get_effect_name (TransitionEffectsManager* self, const gchar* effect_id) {
+ gchar* result = NULL;
+ SpitTransitionsDescriptor* desc = NULL;
+ const gchar* _tmp0_ = NULL;
+ SpitTransitionsDescriptor* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ SpitTransitionsDescriptor* _tmp3_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 95 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (effect_id != NULL, NULL);
+#line 96 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = effect_id;
+#line 96 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = transition_effects_manager_get_effect_descriptor (self, _tmp0_);
+#line 96 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ desc = _tmp1_;
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = desc;
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp3_ != NULL) {
+#line 880 "TransitionEffects.c"
+ SpitTransitionsDescriptor* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = desc;
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = _tmp5_;
+#line 889 "TransitionEffects.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = _ ("(None)");
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = _tmp6_;
+#line 896 "TransitionEffects.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = g_strdup (_tmp2_);
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp7_;
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (desc);
+#line 98 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 906 "TransitionEffects.c"
+}
+
+
+SpitTransitionsDescriptor* transition_effects_manager_get_null_descriptor (TransitionEffectsManager* self) {
+ SpitTransitionsDescriptor* result = NULL;
+ SpitTransitionsDescriptor* _tmp0_ = NULL;
+ SpitTransitionsDescriptor* _tmp1_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 102 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->null_descriptor;
+#line 102 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 102 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp1_;
+#line 102 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 924 "TransitionEffects.c"
+}
+
+
+TransitionClock* transition_effects_manager_create_transition_clock (TransitionEffectsManager* self, const gchar* effect_id) {
+ TransitionClock* result = NULL;
+ SpitTransitionsDescriptor* desc = NULL;
+ const gchar* _tmp0_ = NULL;
+ SpitTransitionsDescriptor* _tmp1_ = NULL;
+ TransitionClock* _tmp2_ = NULL;
+ SpitTransitionsDescriptor* _tmp3_ = NULL;
+#line 105 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 105 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (effect_id != NULL, NULL);
+#line 106 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = effect_id;
+#line 106 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = transition_effects_manager_get_effect_descriptor (self, _tmp0_);
+#line 106 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ desc = _tmp1_;
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = desc;
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp3_ != NULL) {
+#line 949 "TransitionEffects.c"
+ SpitTransitionsDescriptor* _tmp4_ = NULL;
+ TransitionClock* _tmp5_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = desc;
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = transition_clock_new (_tmp4_);
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _transition_clock_unref0 (_tmp2_);
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = _tmp5_;
+#line 960 "TransitionEffects.c"
+ } else {
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _transition_clock_unref0 (_tmp2_);
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = NULL;
+#line 966 "TransitionEffects.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp2_;
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (desc);
+#line 108 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 974 "TransitionEffects.c"
+}
+
+
+TransitionClock* transition_effects_manager_create_null_transition_clock (TransitionEffectsManager* self) {
+ TransitionClock* result = NULL;
+ SpitTransitionsDescriptor* _tmp0_ = NULL;
+ TransitionClock* _tmp1_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_EFFECTS_MANAGER (self), NULL);
+#line 112 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->null_descriptor;
+#line 112 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = transition_clock_new (_tmp0_);
+#line 112 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp1_;
+#line 112 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 992 "TransitionEffects.c"
+}
+
+
+static void value_transition_effects_manager_init (GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 999 "TransitionEffects.c"
+}
+
+
+static void value_transition_effects_manager_free_value (GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_unref (value->data[0].v_pointer);
+#line 1008 "TransitionEffects.c"
+ }
+}
+
+
+static void value_transition_effects_manager_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (src_value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ dest_value->data[0].v_pointer = transition_effects_manager_ref (src_value->data[0].v_pointer);
+#line 1018 "TransitionEffects.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1022 "TransitionEffects.c"
+ }
+}
+
+
+static gpointer value_transition_effects_manager_peek_pointer (const GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return value->data[0].v_pointer;
+#line 1030 "TransitionEffects.c"
+}
+
+
+static gchar* value_transition_effects_manager_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (collect_values[0].v_pointer) {
+#line 1037 "TransitionEffects.c"
+ TransitionEffectsManager* object;
+ object = collect_values[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1044 "TransitionEffects.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1048 "TransitionEffects.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = transition_effects_manager_ref (object);
+#line 1052 "TransitionEffects.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 1056 "TransitionEffects.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return NULL;
+#line 1060 "TransitionEffects.c"
+}
+
+
+static gchar* value_transition_effects_manager_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TransitionEffectsManager** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!object_p) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1071 "TransitionEffects.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!value->data[0].v_pointer) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *object_p = NULL;
+#line 1077 "TransitionEffects.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1081 "TransitionEffects.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *object_p = transition_effects_manager_ref (value->data[0].v_pointer);
+#line 1085 "TransitionEffects.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return NULL;
+#line 1089 "TransitionEffects.c"
+}
+
+
+GParamSpec* param_spec_transition_effects_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTransitionEffectsManager* spec;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TRANSITION_EFFECTS_MANAGER), NULL);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return G_PARAM_SPEC (spec);
+#line 1103 "TransitionEffects.c"
+}
+
+
+gpointer value_get_transition_effects_manager (const GValue* value) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSITION_EFFECTS_MANAGER), NULL);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return value->data[0].v_pointer;
+#line 1112 "TransitionEffects.c"
+}
+
+
+void value_set_transition_effects_manager (GValue* value, gpointer v_object) {
+ TransitionEffectsManager* old;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSITION_EFFECTS_MANAGER));
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ old = value->data[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (v_object) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TRANSITION_EFFECTS_MANAGER));
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = v_object;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_ref (value->data[0].v_pointer);
+#line 1132 "TransitionEffects.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 1136 "TransitionEffects.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (old) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_unref (old);
+#line 1142 "TransitionEffects.c"
+ }
+}
+
+
+void value_take_transition_effects_manager (GValue* value, gpointer v_object) {
+ TransitionEffectsManager* old;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSITION_EFFECTS_MANAGER));
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ old = value->data[0].v_pointer;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (v_object) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TRANSITION_EFFECTS_MANAGER));
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = v_object;
+#line 1161 "TransitionEffects.c"
+ } else {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 1165 "TransitionEffects.c"
+ }
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (old) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_unref (old);
+#line 1171 "TransitionEffects.c"
+ }
+}
+
+
+static void transition_effects_manager_class_init (TransitionEffectsManagerClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_effects_manager_parent_class = g_type_class_peek_parent (klass);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ ((TransitionEffectsManagerClass *) klass)->finalize = transition_effects_manager_finalize;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_type_class_add_private (klass, sizeof (TransitionEffectsManagerPrivate));
+#line 1183 "TransitionEffects.c"
+}
+
+
+static void transition_effects_manager_instance_init (TransitionEffectsManager * self) {
+ GeeHashMap* _tmp0_ = NULL;
+ NullTransitionDescriptor* _tmp1_ = NULL;
+ RandomEffectDescriptor* _tmp2_ = NULL;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv = TRANSITION_EFFECTS_MANAGER_GET_PRIVATE (self);
+#line 14 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, SPIT_TRANSITIONS_TYPE_DESCRIPTOR, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 14 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->effects = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap);
+#line 16 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = null_transition_descriptor_new ();
+#line 16 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->null_descriptor = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, SPIT_TRANSITIONS_TYPE_DESCRIPTOR, SpitTransitionsDescriptor);
+#line 17 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = random_effect_descriptor_new ();
+#line 17 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->random_descriptor = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, SPIT_TRANSITIONS_TYPE_DESCRIPTOR, SpitTransitionsDescriptor);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->ref_count = 1;
+#line 1207 "TransitionEffects.c"
+}
+
+
+static void transition_effects_manager_finalize (TransitionEffectsManager* obj) {
+ TransitionEffectsManager * self;
+ PluginsNotifier* _tmp0_ = NULL;
+ PluginsNotifier* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRANSITION_EFFECTS_MANAGER, TransitionEffectsManager);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_signal_handlers_destroy (self);
+#line 25 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = plugins_notifier_get_instance ();
+#line 25 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = _tmp0_;
+#line 25 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_signal_parse_name ("pluggable-activation", PLUGINS_TYPE_NOTIFIER, &_tmp2_, NULL, FALSE);
+#line 25 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_signal_handlers_disconnect_matched (_tmp1_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp2_, 0, NULL, (GCallback) _transition_effects_manager_load_transitions_plugins_notifier_pluggable_activation, self);
+#line 25 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _plugins_notifier_unref0 (_tmp1_);
+#line 14 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->effects);
+#line 16 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->null_descriptor);
+#line 17 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->random_descriptor);
+#line 1236 "TransitionEffects.c"
+}
+
+
+GType transition_effects_manager_get_type (void) {
+ static volatile gsize transition_effects_manager_type_id__volatile = 0;
+ if (g_once_init_enter (&transition_effects_manager_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_transition_effects_manager_init, value_transition_effects_manager_free_value, value_transition_effects_manager_copy_value, value_transition_effects_manager_peek_pointer, "p", value_transition_effects_manager_collect_value, "p", value_transition_effects_manager_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TransitionEffectsManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) transition_effects_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TransitionEffectsManager), 0, (GInstanceInitFunc) transition_effects_manager_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType transition_effects_manager_type_id;
+ transition_effects_manager_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TransitionEffectsManager", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&transition_effects_manager_type_id__volatile, transition_effects_manager_type_id);
+ }
+ return transition_effects_manager_type_id__volatile;
+}
+
+
+gpointer transition_effects_manager_ref (gpointer instance) {
+ TransitionEffectsManager* self;
+ self = instance;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return instance;
+#line 1261 "TransitionEffects.c"
+}
+
+
+void transition_effects_manager_unref (gpointer instance) {
+ TransitionEffectsManager* self;
+ self = instance;
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ TRANSITION_EFFECTS_MANAGER_GET_CLASS (self)->finalize (self);
+#line 8 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1274 "TransitionEffects.c"
+ }
+}
+
+
+TransitionClock* transition_clock_construct (GType object_type, SpitTransitionsDescriptor* desc) {
+ TransitionClock* self = NULL;
+ SpitTransitionsDescriptor* _tmp0_ = NULL;
+ SpitTransitionsDescriptor* _tmp1_ = NULL;
+ SpitTransitionsDescriptor* _tmp2_ = NULL;
+ SpitTransitionsDescriptor* _tmp3_ = NULL;
+ PluginsStandardHostInterface* _tmp4_ = NULL;
+ PluginsStandardHostInterface* _tmp5_ = NULL;
+ SpitTransitionsEffect* _tmp6_ = NULL;
+ SpitTransitionsEffect* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ SpitTransitionsDescriptor* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ OpTimer* _tmp12_ = NULL;
+#line 136 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (SPIT_TRANSITIONS_IS_DESCRIPTOR (desc), NULL);
+#line 136 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = (TransitionClock*) g_type_create_instance (object_type);
+#line 137 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = desc;
+#line 137 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 137 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->desc);
+#line 137 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->desc = _tmp1_;
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = desc;
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = desc;
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = plugins_standard_host_interface_new (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, SPIT_TYPE_PLUGGABLE, SpitPluggable), "transitions");
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = _tmp4_;
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = spit_transitions_descriptor_create (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, SPIT_TYPE_HOST_INTERFACE, SpitHostInterface));
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->effect);
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->effect = _tmp6_;
+#line 139 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (_tmp5_);
+#line 140 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = self->priv->effect;
+#line 140 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_effect_get_fps (_tmp7_, &_tmp8_, &_tmp9_);
+#line 140 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->desired_fps = _tmp8_;
+#line 140 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->min_fps = _tmp9_;
+#line 142 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = desc;
+#line 142 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp11_ = spit_pluggable_get_pluggable_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, SPIT_TYPE_PLUGGABLE, SpitPluggable));
+#line 142 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp12_ = op_timer_new (_tmp11_);
+#line 142 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _op_timer_unref0 (self->priv->paint_timer);
+#line 142 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->paint_timer = _tmp12_;
+#line 136 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return self;
+#line 1342 "TransitionEffects.c"
+}
+
+
+TransitionClock* transition_clock_new (SpitTransitionsDescriptor* desc) {
+#line 136 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return transition_clock_construct (TYPE_TRANSITION_CLOCK, desc);
+#line 1349 "TransitionEffects.c"
+}
+
+
+gboolean transition_clock_is_in_progress (TransitionClock* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+#line 151 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_CLOCK (self), FALSE);
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = self->priv->cancelled;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!_tmp2_) {
+#line 1364 "TransitionEffects.c"
+ SpitTransitionsMotion* _tmp3_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = self->priv->motion;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 1370 "TransitionEffects.c"
+ } else {
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = FALSE;
+#line 1374 "TransitionEffects.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp1_) {
+#line 1378 "TransitionEffects.c"
+ gint _tmp4_ = 0;
+ SpitTransitionsMotion* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = self->priv->frame_number;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = self->priv->motion;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = spit_transitions_motion_get_total_frames (_tmp5_);
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = _tmp6_;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = _tmp4_ < _tmp7_;
+#line 1393 "TransitionEffects.c"
+ } else {
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = FALSE;
+#line 1397 "TransitionEffects.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp0_;
+#line 152 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1403 "TransitionEffects.c"
+}
+
+
+static gboolean _transition_clock_tick_gsource_func (gpointer self) {
+ gboolean result;
+ result = transition_clock_tick ((TransitionClock*) self);
+#line 173 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1412 "TransitionEffects.c"
+}
+
+
+void transition_clock_start (TransitionClock* self, SpitTransitionsVisuals* visuals, SpitTransitionsDirection direction, gint duration_msec, TransitionClockRepaintCallback repaint, void* repaint_target) {
+ gint _tmp0_ = 0;
+ SpitTransitionsVisuals* _tmp1_ = NULL;
+ SpitTransitionsVisuals* _tmp2_ = NULL;
+ TransitionClockRepaintCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ SpitTransitionsDirection _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ SpitTransitionsMotion* _tmp7_ = NULL;
+ SpitTransitionsEffect* _tmp8_ = NULL;
+ SpitTransitionsVisuals* _tmp9_ = NULL;
+ SpitTransitionsMotion* _tmp10_ = NULL;
+ gulong _tmp11_ = 0UL;
+ SpitTransitionsMotion* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ guint _tmp15_ = 0U;
+#line 155 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (IS_TRANSITION_CLOCK (self));
+#line 155 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (visuals));
+#line 157 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_reset (self);
+#line 160 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->desired_fps;
+#line 160 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp0_ == 0) {
+#line 161 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return;
+#line 1446 "TransitionEffects.c"
+ }
+#line 163 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = visuals;
+#line 163 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 163 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->visuals);
+#line 163 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->visuals = _tmp2_;
+#line 164 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = repaint;
+#line 164 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3__target = repaint_target;
+#line 164 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->repaint = _tmp3_;
+#line 164 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->repaint_target = _tmp3__target;
+#line 165 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = direction;
+#line 165 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = self->priv->desired_fps;
+#line 165 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = duration_msec;
+#line 165 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = spit_transitions_motion_new (_tmp4_, _tmp5_, _tmp6_);
+#line 165 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->motion);
+#line 165 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->motion = _tmp7_;
+#line 167 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = self->priv->effect;
+#line 167 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = visuals;
+#line 167 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = self->priv->motion;
+#line 167 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_effect_start (_tmp8_, _tmp9_, _tmp10_);
+#line 172 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp11_ = now_ms ();
+#line 172 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->time_started = _tmp11_;
+#line 173 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp12_ = self->priv->motion;
+#line 173 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp13_ = spit_transitions_motion_get_tick_msec (_tmp12_);
+#line 173 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp14_ = _tmp13_;
+#line 173 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp15_ = g_timeout_add_full (G_PRIORITY_HIGH, (guint) _tmp14_, _transition_clock_tick_gsource_func, transition_clock_ref (self), transition_clock_unref);
+#line 173 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->timer_id = _tmp15_;
+#line 1498 "TransitionEffects.c"
+}
+
+
+static void transition_clock_reset (TransitionClock* self) {
+#line 177 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (IS_TRANSITION_CLOCK (self));
+#line 178 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->visuals);
+#line 178 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->visuals = NULL;
+#line 179 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->motion);
+#line 179 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->motion = NULL;
+#line 180 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->repaint = NULL;
+#line 180 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->repaint_target = NULL;
+#line 181 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_cancel_timer (self);
+#line 182 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->time_started = (gulong) 0;
+#line 183 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->frame_number = 1;
+#line 184 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->current_fps = 0;
+#line 185 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->cancelled = FALSE;
+#line 1527 "TransitionEffects.c"
+}
+
+
+static void transition_clock_cancel_timer (TransitionClock* self) {
+ guint _tmp0_ = 0U;
+#line 188 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (IS_TRANSITION_CLOCK (self));
+#line 189 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->timer_id;
+#line 189 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp0_ != ((guint) 0)) {
+#line 1539 "TransitionEffects.c"
+ guint _tmp1_ = 0U;
+#line 190 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = self->priv->timer_id;
+#line 190 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_source_remove (_tmp1_);
+#line 191 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->timer_id = (guint) 0;
+#line 1547 "TransitionEffects.c"
+ }
+}
+
+
+static gboolean transition_clock_is_fps_ok (TransitionClock* self) {
+ gboolean result = FALSE;
+ gulong _tmp0_ = 0UL;
+ gint _tmp1_ = 0;
+ gdouble elapsed_msec = 0.0;
+ gulong _tmp2_ = 0UL;
+ gulong _tmp3_ = 0UL;
+ gdouble _tmp4_ = 0.0;
+ gint _tmp5_ = 0;
+ gdouble _tmp6_ = 0.0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+#line 196 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_CLOCK (self), FALSE);
+#line 197 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->time_started;
+#line 197 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _vala_assert (_tmp0_ > ((gulong) 0), "time_started > 0");
+#line 199 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = self->priv->frame_number;
+#line 199 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp1_ <= 3) {
+#line 200 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = TRUE;
+#line 200 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1580 "TransitionEffects.c"
+ }
+#line 202 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = now_ms ();
+#line 202 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = self->priv->time_started;
+#line 202 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ elapsed_msec = (gdouble) (_tmp2_ - _tmp3_);
+#line 203 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = elapsed_msec;
+#line 203 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp4_ <= 0.0) {
+#line 204 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = TRUE;
+#line 204 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1596 "TransitionEffects.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = self->priv->frame_number;
+#line 206 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = elapsed_msec;
+#line 206 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->current_fps = (gint) ((_tmp5_ * 1000.0) / _tmp6_);
+#line 207 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = self->priv->current_fps;
+#line 207 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = self->priv->min_fps;
+#line 207 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp7_ < _tmp8_) {
+#line 1610 "TransitionEffects.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gdouble _tmp11_ = 0.0;
+ gint _tmp12_ = 0;
+#line 208 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = self->priv->current_fps;
+#line 208 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = self->priv->min_fps;
+#line 208 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp11_ = elapsed_msec;
+#line 208 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp12_ = self->priv->frame_number;
+#line 208 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_debug ("TransitionEffects.vala:208: Transition rate of %dfps below minimum of " \
+"%dfps (elapsed=%lf frames=%d)", _tmp9_, _tmp10_, _tmp11_, _tmp12_);
+#line 1625 "TransitionEffects.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp13_ = self->priv->current_fps;
+#line 212 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp14_ = self->priv->min_fps;
+#line 212 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp13_ >= _tmp14_;
+#line 212 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1635 "TransitionEffects.c"
+}
+
+
+void transition_clock_cancel (TransitionClock* self) {
+ SpitTransitionsEffect* _tmp0_ = NULL;
+ TransitionClockRepaintCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 216 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (IS_TRANSITION_CLOCK (self));
+#line 217 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->cancelled = TRUE;
+#line 218 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_cancel_timer (self);
+#line 219 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = self->priv->effect;
+#line 219 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_effect_cancel (_tmp0_);
+#line 222 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = self->priv->repaint;
+#line 222 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1__target = self->priv->repaint_target;
+#line 222 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ (_tmp1__target);
+#line 1659 "TransitionEffects.c"
+}
+
+
+gboolean transition_clock_paint (TransitionClock* self, cairo_t* ctx, gint width, gint height) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ OpTimer* _tmp1_ = NULL;
+ cairo_t* _tmp2_ = NULL;
+ SpitTransitionsEffect* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ SpitTransitionsEffect* _tmp26_ = NULL;
+ SpitTransitionsVisuals* _tmp27_ = NULL;
+ SpitTransitionsMotion* _tmp28_ = NULL;
+ cairo_t* _tmp29_ = NULL;
+ gint _tmp30_ = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ cairo_t* _tmp33_ = NULL;
+ OpTimer* _tmp34_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_CLOCK (self), FALSE);
+#line 227 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (ctx != NULL, FALSE);
+#line 228 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = transition_clock_is_in_progress (self);
+#line 228 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!_tmp0_) {
+#line 229 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = FALSE;
+#line 229 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1691 "TransitionEffects.c"
+ }
+#line 231 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = self->priv->paint_timer;
+#line 231 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ op_timer_start (_tmp1_);
+#line 233 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = ctx;
+#line 233 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ cairo_save (_tmp2_);
+#line 235 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = self->priv->effect;
+#line 235 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = spit_transitions_effect_needs_clear_background (_tmp3_);
+#line 235 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp4_) {
+#line 1707 "TransitionEffects.c"
+ cairo_t* _tmp5_ = NULL;
+ SpitTransitionsVisuals* _tmp6_ = NULL;
+ GdkRGBA _tmp7_ = {0};
+ GdkRGBA _tmp8_ = {0};
+ gdouble _tmp9_ = 0.0;
+ SpitTransitionsVisuals* _tmp10_ = NULL;
+ GdkRGBA _tmp11_ = {0};
+ GdkRGBA _tmp12_ = {0};
+ gdouble _tmp13_ = 0.0;
+ SpitTransitionsVisuals* _tmp14_ = NULL;
+ GdkRGBA _tmp15_ = {0};
+ GdkRGBA _tmp16_ = {0};
+ gdouble _tmp17_ = 0.0;
+ SpitTransitionsVisuals* _tmp18_ = NULL;
+ GdkRGBA _tmp19_ = {0};
+ GdkRGBA _tmp20_ = {0};
+ gdouble _tmp21_ = 0.0;
+ cairo_t* _tmp22_ = NULL;
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ cairo_t* _tmp25_ = NULL;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = ctx;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = self->priv->visuals;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_visuals_get_bg_color (_tmp6_, &_tmp7_);
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = _tmp7_;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = _tmp8_.red;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = self->priv->visuals;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_visuals_get_bg_color (_tmp10_, &_tmp11_);
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp12_ = _tmp11_;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp13_ = _tmp12_.green;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp14_ = self->priv->visuals;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_visuals_get_bg_color (_tmp14_, &_tmp15_);
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp16_ = _tmp15_;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp17_ = _tmp16_.blue;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp18_ = self->priv->visuals;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_visuals_get_bg_color (_tmp18_, &_tmp19_);
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp20_ = _tmp19_;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp21_ = _tmp20_.alpha;
+#line 236 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ cairo_set_source_rgba (_tmp5_, _tmp9_, _tmp13_, _tmp17_, _tmp21_);
+#line 238 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp22_ = ctx;
+#line 238 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp23_ = width;
+#line 238 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp24_ = height;
+#line 238 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ cairo_rectangle (_tmp22_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp23_, (gdouble) _tmp24_);
+#line 239 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp25_ = ctx;
+#line 239 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ cairo_fill (_tmp25_);
+#line 1777 "TransitionEffects.c"
+ }
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp26_ = self->priv->effect;
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp27_ = self->priv->visuals;
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp28_ = self->priv->motion;
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp29_ = ctx;
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp30_ = width;
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp31_ = height;
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp32_ = self->priv->frame_number;
+#line 242 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_effect_paint (_tmp26_, _tmp27_, _tmp28_, _tmp29_, _tmp30_, _tmp31_, _tmp32_);
+#line 244 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp33_ = ctx;
+#line 244 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ cairo_restore (_tmp33_);
+#line 246 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp34_ = self->priv->paint_timer;
+#line 246 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ op_timer_stop (_tmp34_);
+#line 248 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = TRUE;
+#line 248 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1807 "TransitionEffects.c"
+}
+
+
+static gboolean transition_clock_tick (TransitionClock* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ TransitionClockRepaintCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+ SpitTransitionsMotion* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+#line 251 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (IS_TRANSITION_CLOCK (self), FALSE);
+#line 252 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = transition_clock_is_fps_ok (self);
+#line 252 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!_tmp0_) {
+#line 253 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_debug ("TransitionEffects.vala:253: Cancelling transition: below minimum fps");
+#line 254 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_cancel (self);
+#line 1831 "TransitionEffects.c"
+ }
+#line 259 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = self->priv->repaint;
+#line 259 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1__target = self->priv->repaint_target;
+#line 259 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ (_tmp1__target);
+#line 261 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = transition_clock_is_in_progress (self);
+#line 261 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!_tmp2_) {
+#line 262 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_cancel_timer (self);
+#line 264 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = FALSE;
+#line 264 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1849 "TransitionEffects.c"
+ }
+#line 268 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = self->priv->frame_number;
+#line 268 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = self->priv->motion;
+#line 268 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = spit_transitions_motion_get_total_frames (_tmp4_);
+#line 268 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = _tmp5_;
+#line 268 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp3_ < _tmp6_) {
+#line 1861 "TransitionEffects.c"
+ SpitTransitionsEffect* _tmp7_ = NULL;
+ SpitTransitionsVisuals* _tmp8_ = NULL;
+ SpitTransitionsMotion* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+#line 269 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = self->priv->effect;
+#line 269 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = self->priv->visuals;
+#line 269 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = self->priv->motion;
+#line 269 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = self->priv->frame_number;
+#line 269 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->frame_number = _tmp10_ + 1;
+#line 269 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp11_ = self->priv->frame_number;
+#line 269 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spit_transitions_effect_advance (_tmp7_, _tmp8_, _tmp9_, _tmp11_);
+#line 1881 "TransitionEffects.c"
+ }
+#line 271 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = TRUE;
+#line 271 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 1887 "TransitionEffects.c"
+}
+
+
+static void value_transition_clock_init (GValue* value) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 1894 "TransitionEffects.c"
+}
+
+
+static void value_transition_clock_free_value (GValue* value) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (value->data[0].v_pointer) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_unref (value->data[0].v_pointer);
+#line 1903 "TransitionEffects.c"
+ }
+}
+
+
+static void value_transition_clock_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (src_value->data[0].v_pointer) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ dest_value->data[0].v_pointer = transition_clock_ref (src_value->data[0].v_pointer);
+#line 1913 "TransitionEffects.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1917 "TransitionEffects.c"
+ }
+}
+
+
+static gpointer value_transition_clock_peek_pointer (const GValue* value) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return value->data[0].v_pointer;
+#line 1925 "TransitionEffects.c"
+}
+
+
+static gchar* value_transition_clock_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (collect_values[0].v_pointer) {
+#line 1932 "TransitionEffects.c"
+ TransitionClock* object;
+ object = collect_values[0].v_pointer;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1939 "TransitionEffects.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1943 "TransitionEffects.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = transition_clock_ref (object);
+#line 1947 "TransitionEffects.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 1951 "TransitionEffects.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return NULL;
+#line 1955 "TransitionEffects.c"
+}
+
+
+static gchar* value_transition_clock_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ TransitionClock** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!object_p) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1966 "TransitionEffects.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (!value->data[0].v_pointer) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *object_p = NULL;
+#line 1972 "TransitionEffects.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1976 "TransitionEffects.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *object_p = transition_clock_ref (value->data[0].v_pointer);
+#line 1980 "TransitionEffects.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return NULL;
+#line 1984 "TransitionEffects.c"
+}
+
+
+GParamSpec* param_spec_transition_clock (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecTransitionClock* spec;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_TRANSITION_CLOCK), NULL);
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return G_PARAM_SPEC (spec);
+#line 1998 "TransitionEffects.c"
+}
+
+
+gpointer value_get_transition_clock (const GValue* value) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSITION_CLOCK), NULL);
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return value->data[0].v_pointer;
+#line 2007 "TransitionEffects.c"
+}
+
+
+void value_set_transition_clock (GValue* value, gpointer v_object) {
+ TransitionClock* old;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSITION_CLOCK));
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ old = value->data[0].v_pointer;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (v_object) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TRANSITION_CLOCK));
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = v_object;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_ref (value->data[0].v_pointer);
+#line 2027 "TransitionEffects.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 2031 "TransitionEffects.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (old) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_unref (old);
+#line 2037 "TransitionEffects.c"
+ }
+}
+
+
+void value_take_transition_clock (GValue* value, gpointer v_object) {
+ TransitionClock* old;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_TRANSITION_CLOCK));
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ old = value->data[0].v_pointer;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (v_object) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_TRANSITION_CLOCK));
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = v_object;
+#line 2056 "TransitionEffects.c"
+ } else {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ value->data[0].v_pointer = NULL;
+#line 2060 "TransitionEffects.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (old) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_unref (old);
+#line 2066 "TransitionEffects.c"
+ }
+}
+
+
+static void transition_clock_class_init (TransitionClockClass * klass) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_parent_class = g_type_class_peek_parent (klass);
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ ((TransitionClockClass *) klass)->finalize = transition_clock_finalize;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_type_class_add_private (klass, sizeof (TransitionClockPrivate));
+#line 2078 "TransitionEffects.c"
+}
+
+
+static void transition_clock_instance_init (TransitionClock * self) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv = TRANSITION_CLOCK_GET_PRIVATE (self);
+#line 126 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->current_fps = 0;
+#line 128 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->visuals = NULL;
+#line 129 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->motion = NULL;
+#line 130 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->repaint = NULL;
+#line 131 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->timer_id = (guint) 0;
+#line 132 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->time_started = (gulong) 0;
+#line 133 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->frame_number = 0;
+#line 134 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->priv->cancelled = FALSE;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self->ref_count = 1;
+#line 2103 "TransitionEffects.c"
+}
+
+
+static void transition_clock_finalize (TransitionClock* obj) {
+ TransitionClock * self;
+ gint _tmp0_ = 0;
+ SpitTransitionsMotion* _tmp1_ = NULL;
+ OpTimer* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TRANSITION_CLOCK, TransitionClock);
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_signal_handlers_destroy (self);
+#line 146 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ transition_clock_cancel_timer (self);
+#line 148 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp1_ = self->priv->motion;
+#line 148 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (_tmp1_ != NULL) {
+#line 2127 "TransitionEffects.c"
+ SpitTransitionsMotion* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 148 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp2_ = self->priv->motion;
+#line 148 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp3_ = spit_transitions_motion_get_tick_msec (_tmp2_);
+#line 148 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp4_ = _tmp3_;
+#line 148 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = _tmp4_;
+#line 2139 "TransitionEffects.c"
+ } else {
+#line 148 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = 0;
+#line 2143 "TransitionEffects.c"
+ }
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp5_ = self->priv->paint_timer;
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp6_ = op_timer_to_string (_tmp5_);
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp7_ = _tmp6_;
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp8_ = self->priv->min_fps;
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp9_ = self->priv->desired_fps;
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp10_ = self->priv->current_fps;
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_debug ("TransitionEffects.vala:147: %s tick_msec=%d min/desired/current fps=%d" \
+"/%d/%d", _tmp7_, _tmp0_, _tmp8_, _tmp9_, _tmp10_);
+#line 147 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_free0 (_tmp7_);
+#line 122 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->desc);
+#line 123 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->effect);
+#line 127 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _op_timer_unref0 (self->priv->paint_timer);
+#line 128 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->visuals);
+#line 129 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _g_object_unref0 (self->priv->motion);
+#line 2171 "TransitionEffects.c"
+}
+
+
+GType transition_clock_get_type (void) {
+ static volatile gsize transition_clock_type_id__volatile = 0;
+ if (g_once_init_enter (&transition_clock_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_transition_clock_init, value_transition_clock_free_value, value_transition_clock_copy_value, value_transition_clock_peek_pointer, "p", value_transition_clock_collect_value, "p", value_transition_clock_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (TransitionClockClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) transition_clock_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TransitionClock), 0, (GInstanceInitFunc) transition_clock_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType transition_clock_type_id;
+ transition_clock_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TransitionClock", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&transition_clock_type_id__volatile, transition_clock_type_id);
+ }
+ return transition_clock_type_id__volatile;
+}
+
+
+gpointer transition_clock_ref (gpointer instance) {
+ TransitionClock* self;
+ self = instance;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return instance;
+#line 2196 "TransitionEffects.c"
+}
+
+
+void transition_clock_unref (gpointer instance) {
+ TransitionClock* self;
+ self = instance;
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ TRANSITION_CLOCK_GET_CLASS (self)->finalize (self);
+#line 116 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2209 "TransitionEffects.c"
+ }
+}
+
+
+static gint null_transition_descriptor_real_get_pluggable_interface (SpitPluggable* base, gint min_host_version, gint max_host_version) {
+ NullTransitionDescriptor * self;
+ gint result = 0;
+#line 278 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptor);
+#line 279 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = SPIT_TRANSITIONS_CURRENT_INTERFACE;
+#line 279 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2223 "TransitionEffects.c"
+}
+
+
+static const gchar* null_transition_descriptor_real_get_id (SpitPluggable* base) {
+ NullTransitionDescriptor * self;
+ const gchar* result = NULL;
+#line 282 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptor);
+#line 283 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = NULL_TRANSITION_DESCRIPTOR_EFFECT_ID;
+#line 283 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2236 "TransitionEffects.c"
+}
+
+
+static const gchar* null_transition_descriptor_real_get_pluggable_name (SpitPluggable* base) {
+ NullTransitionDescriptor * self;
+ const gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 286 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptor);
+#line 287 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = _ ("None");
+#line 287 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp0_;
+#line 287 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2252 "TransitionEffects.c"
+}
+
+
+static void null_transition_descriptor_real_get_info (SpitPluggable* base, SpitPluggableInfo* info) {
+ NullTransitionDescriptor * self;
+#line 290 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptor);
+#line 290 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (info != NULL);
+#line 2262 "TransitionEffects.c"
+}
+
+
+static void null_transition_descriptor_real_activation (SpitPluggable* base, gboolean enabled) {
+ NullTransitionDescriptor * self;
+#line 293 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptor);
+#line 2270 "TransitionEffects.c"
+}
+
+
+static SpitTransitionsEffect* null_transition_descriptor_real_create (SpitTransitionsDescriptor* base, SpitHostInterface* host) {
+ NullTransitionDescriptor * self;
+ SpitTransitionsEffect* result = NULL;
+ NullEffect* _tmp0_ = NULL;
+#line 296 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_TRANSITION_DESCRIPTOR, NullTransitionDescriptor);
+#line 296 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (host), NULL);
+#line 297 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = null_effect_new ();
+#line 297 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_TRANSITIONS_TYPE_EFFECT, SpitTransitionsEffect);
+#line 297 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2288 "TransitionEffects.c"
+}
+
+
+NullTransitionDescriptor* null_transition_descriptor_construct (GType object_type) {
+ NullTransitionDescriptor * self = NULL;
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = (NullTransitionDescriptor*) g_object_new (object_type, NULL);
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return self;
+#line 2298 "TransitionEffects.c"
+}
+
+
+NullTransitionDescriptor* null_transition_descriptor_new (void) {
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return null_transition_descriptor_construct (TYPE_NULL_TRANSITION_DESCRIPTOR);
+#line 2305 "TransitionEffects.c"
+}
+
+
+static void null_transition_descriptor_class_init (NullTransitionDescriptorClass * klass) {
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ null_transition_descriptor_parent_class = g_type_class_peek_parent (klass);
+#line 2312 "TransitionEffects.c"
+}
+
+
+static void null_transition_descriptor_spit_pluggable_interface_init (SpitPluggableIface * iface) {
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ null_transition_descriptor_spit_pluggable_parent_iface = g_type_interface_peek_parent (iface);
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_pluggable_interface = (gint (*)(SpitPluggable*, gint, gint)) null_transition_descriptor_real_get_pluggable_interface;
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_id = (const gchar* (*)(SpitPluggable*)) null_transition_descriptor_real_get_id;
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_pluggable_name = (const gchar* (*)(SpitPluggable*)) null_transition_descriptor_real_get_pluggable_name;
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_info = (void (*)(SpitPluggable*, SpitPluggableInfo*)) null_transition_descriptor_real_get_info;
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->activation = (void (*)(SpitPluggable*, gboolean)) null_transition_descriptor_real_activation;
+#line 2329 "TransitionEffects.c"
+}
+
+
+static void null_transition_descriptor_spit_transitions_descriptor_interface_init (SpitTransitionsDescriptorIface * iface) {
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ null_transition_descriptor_spit_transitions_descriptor_parent_iface = g_type_interface_peek_parent (iface);
+#line 275 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->create = (SpitTransitionsEffect* (*)(SpitTransitionsDescriptor*, SpitHostInterface*)) null_transition_descriptor_real_create;
+#line 2338 "TransitionEffects.c"
+}
+
+
+static void null_transition_descriptor_instance_init (NullTransitionDescriptor * self) {
+}
+
+
+GType null_transition_descriptor_get_type (void) {
+ static volatile gsize null_transition_descriptor_type_id__volatile = 0;
+ if (g_once_init_enter (&null_transition_descriptor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NullTransitionDescriptorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) null_transition_descriptor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NullTransitionDescriptor), 0, (GInstanceInitFunc) null_transition_descriptor_instance_init, NULL };
+ static const GInterfaceInfo spit_pluggable_info = { (GInterfaceInitFunc) null_transition_descriptor_spit_pluggable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo spit_transitions_descriptor_info = { (GInterfaceInitFunc) null_transition_descriptor_spit_transitions_descriptor_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType null_transition_descriptor_type_id;
+ null_transition_descriptor_type_id = g_type_register_static (G_TYPE_OBJECT, "NullTransitionDescriptor", &g_define_type_info, 0);
+ g_type_add_interface_static (null_transition_descriptor_type_id, SPIT_TYPE_PLUGGABLE, &spit_pluggable_info);
+ g_type_add_interface_static (null_transition_descriptor_type_id, SPIT_TRANSITIONS_TYPE_DESCRIPTOR, &spit_transitions_descriptor_info);
+ g_once_init_leave (&null_transition_descriptor_type_id__volatile, null_transition_descriptor_type_id);
+ }
+ return null_transition_descriptor_type_id__volatile;
+}
+
+
+NullEffect* null_effect_construct (GType object_type) {
+ NullEffect * self = NULL;
+#line 302 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = (NullEffect*) g_object_new (object_type, NULL);
+#line 302 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return self;
+#line 2368 "TransitionEffects.c"
+}
+
+
+NullEffect* null_effect_new (void) {
+#line 302 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return null_effect_construct (TYPE_NULL_EFFECT);
+#line 2375 "TransitionEffects.c"
+}
+
+
+static void null_effect_real_get_fps (SpitTransitionsEffect* base, gint* desired_fps, gint* min_fps) {
+ NullEffect * self;
+ gint _vala_desired_fps = 0;
+ gint _vala_min_fps = 0;
+#line 305 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_EFFECT, NullEffect);
+#line 306 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _vala_desired_fps = 0;
+#line 307 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _vala_min_fps = 0;
+#line 305 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (desired_fps) {
+#line 305 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *desired_fps = _vala_desired_fps;
+#line 2393 "TransitionEffects.c"
+ }
+#line 305 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ if (min_fps) {
+#line 305 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ *min_fps = _vala_min_fps;
+#line 2399 "TransitionEffects.c"
+ }
+}
+
+
+static void null_effect_real_start (SpitTransitionsEffect* base, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion) {
+ NullEffect * self;
+#line 310 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_EFFECT, NullEffect);
+#line 310 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (visuals));
+#line 310 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (motion));
+#line 2412 "TransitionEffects.c"
+}
+
+
+static gboolean null_effect_real_needs_clear_background (SpitTransitionsEffect* base) {
+ NullEffect * self;
+ gboolean result = FALSE;
+#line 313 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_EFFECT, NullEffect);
+#line 314 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = FALSE;
+#line 314 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2425 "TransitionEffects.c"
+}
+
+
+static void null_effect_real_paint (SpitTransitionsEffect* base, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, cairo_t* ctx, gint width, gint height, gint frame_number) {
+ NullEffect * self;
+#line 317 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_EFFECT, NullEffect);
+#line 317 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (visuals));
+#line 317 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (motion));
+#line 317 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (ctx != NULL);
+#line 2439 "TransitionEffects.c"
+}
+
+
+static void null_effect_real_advance (SpitTransitionsEffect* base, SpitTransitionsVisuals* visuals, SpitTransitionsMotion* motion, gint frame_number) {
+ NullEffect * self;
+#line 321 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_EFFECT, NullEffect);
+#line 321 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_VISUALS (visuals));
+#line 321 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (SPIT_TRANSITIONS_IS_MOTION (motion));
+#line 2451 "TransitionEffects.c"
+}
+
+
+static void null_effect_real_cancel (SpitTransitionsEffect* base) {
+ NullEffect * self;
+#line 324 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_NULL_EFFECT, NullEffect);
+#line 2459 "TransitionEffects.c"
+}
+
+
+static void null_effect_class_init (NullEffectClass * klass) {
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ null_effect_parent_class = g_type_class_peek_parent (klass);
+#line 2466 "TransitionEffects.c"
+}
+
+
+static void null_effect_spit_transitions_effect_interface_init (SpitTransitionsEffectIface * iface) {
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ null_effect_spit_transitions_effect_parent_iface = g_type_interface_peek_parent (iface);
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_fps = (void (*)(SpitTransitionsEffect*, gint*, gint*)) null_effect_real_get_fps;
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->start = (void (*)(SpitTransitionsEffect*, SpitTransitionsVisuals*, SpitTransitionsMotion*)) null_effect_real_start;
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->needs_clear_background = (gboolean (*)(SpitTransitionsEffect*)) null_effect_real_needs_clear_background;
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->paint = (void (*)(SpitTransitionsEffect*, SpitTransitionsVisuals*, SpitTransitionsMotion*, cairo_t*, gint, gint, gint)) null_effect_real_paint;
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->advance = (void (*)(SpitTransitionsEffect*, SpitTransitionsVisuals*, SpitTransitionsMotion*, gint)) null_effect_real_advance;
+#line 301 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->cancel = (void (*)(SpitTransitionsEffect*)) null_effect_real_cancel;
+#line 2485 "TransitionEffects.c"
+}
+
+
+static void null_effect_instance_init (NullEffect * self) {
+}
+
+
+GType null_effect_get_type (void) {
+ static volatile gsize null_effect_type_id__volatile = 0;
+ if (g_once_init_enter (&null_effect_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (NullEffectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) null_effect_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NullEffect), 0, (GInstanceInitFunc) null_effect_instance_init, NULL };
+ static const GInterfaceInfo spit_transitions_effect_info = { (GInterfaceInitFunc) null_effect_spit_transitions_effect_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType null_effect_type_id;
+ null_effect_type_id = g_type_register_static (G_TYPE_OBJECT, "NullEffect", &g_define_type_info, 0);
+ g_type_add_interface_static (null_effect_type_id, SPIT_TRANSITIONS_TYPE_EFFECT, &spit_transitions_effect_info);
+ g_once_init_leave (&null_effect_type_id__volatile, null_effect_type_id);
+ }
+ return null_effect_type_id__volatile;
+}
+
+
+static gint random_effect_descriptor_real_get_pluggable_interface (SpitPluggable* base, gint min_host_version, gint max_host_version) {
+ RandomEffectDescriptor * self;
+ gint result = 0;
+#line 330 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptor);
+#line 331 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = SPIT_TRANSITIONS_CURRENT_INTERFACE;
+#line 331 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2516 "TransitionEffects.c"
+}
+
+
+static const gchar* random_effect_descriptor_real_get_id (SpitPluggable* base) {
+ RandomEffectDescriptor * self;
+ const gchar* result = NULL;
+#line 334 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptor);
+#line 335 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = RANDOM_EFFECT_DESCRIPTOR_EFFECT_ID;
+#line 335 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2529 "TransitionEffects.c"
+}
+
+
+static const gchar* random_effect_descriptor_real_get_pluggable_name (SpitPluggable* base) {
+ RandomEffectDescriptor * self;
+ const gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 338 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptor);
+#line 339 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = _ ("Random");
+#line 339 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = _tmp0_;
+#line 339 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2545 "TransitionEffects.c"
+}
+
+
+static void random_effect_descriptor_real_get_info (SpitPluggable* base, SpitPluggableInfo* info) {
+ RandomEffectDescriptor * self;
+#line 342 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptor);
+#line 342 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_if_fail (info != NULL);
+#line 2555 "TransitionEffects.c"
+}
+
+
+static void random_effect_descriptor_real_activation (SpitPluggable* base, gboolean enabled) {
+ RandomEffectDescriptor * self;
+#line 345 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptor);
+#line 2563 "TransitionEffects.c"
+}
+
+
+static SpitTransitionsEffect* random_effect_descriptor_real_create (SpitTransitionsDescriptor* base, SpitHostInterface* host) {
+ RandomEffectDescriptor * self;
+ SpitTransitionsEffect* result = NULL;
+ NullEffect* _tmp0_ = NULL;
+#line 348 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_RANDOM_EFFECT_DESCRIPTOR, RandomEffectDescriptor);
+#line 348 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ g_return_val_if_fail (SPIT_IS_HOST_INTERFACE (host), NULL);
+#line 349 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ _tmp0_ = null_effect_new ();
+#line 349 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, SPIT_TRANSITIONS_TYPE_EFFECT, SpitTransitionsEffect);
+#line 349 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return result;
+#line 2581 "TransitionEffects.c"
+}
+
+
+RandomEffectDescriptor* random_effect_descriptor_construct (GType object_type) {
+ RandomEffectDescriptor * self = NULL;
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ self = (RandomEffectDescriptor*) g_object_new (object_type, NULL);
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return self;
+#line 2591 "TransitionEffects.c"
+}
+
+
+RandomEffectDescriptor* random_effect_descriptor_new (void) {
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ return random_effect_descriptor_construct (TYPE_RANDOM_EFFECT_DESCRIPTOR);
+#line 2598 "TransitionEffects.c"
+}
+
+
+static void random_effect_descriptor_class_init (RandomEffectDescriptorClass * klass) {
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ random_effect_descriptor_parent_class = g_type_class_peek_parent (klass);
+#line 2605 "TransitionEffects.c"
+}
+
+
+static void random_effect_descriptor_spit_pluggable_interface_init (SpitPluggableIface * iface) {
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ random_effect_descriptor_spit_pluggable_parent_iface = g_type_interface_peek_parent (iface);
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_pluggable_interface = (gint (*)(SpitPluggable*, gint, gint)) random_effect_descriptor_real_get_pluggable_interface;
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_id = (const gchar* (*)(SpitPluggable*)) random_effect_descriptor_real_get_id;
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_pluggable_name = (const gchar* (*)(SpitPluggable*)) random_effect_descriptor_real_get_pluggable_name;
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->get_info = (void (*)(SpitPluggable*, SpitPluggableInfo*)) random_effect_descriptor_real_get_info;
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->activation = (void (*)(SpitPluggable*, gboolean)) random_effect_descriptor_real_activation;
+#line 2622 "TransitionEffects.c"
+}
+
+
+static void random_effect_descriptor_spit_transitions_descriptor_interface_init (SpitTransitionsDescriptorIface * iface) {
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ random_effect_descriptor_spit_transitions_descriptor_parent_iface = g_type_interface_peek_parent (iface);
+#line 327 "/home/jens/Source/shotwell/src/slideshow/TransitionEffects.vala"
+ iface->create = (SpitTransitionsEffect* (*)(SpitTransitionsDescriptor*, SpitHostInterface*)) random_effect_descriptor_real_create;
+#line 2631 "TransitionEffects.c"
+}
+
+
+static void random_effect_descriptor_instance_init (RandomEffectDescriptor * self) {
+}
+
+
+GType random_effect_descriptor_get_type (void) {
+ static volatile gsize random_effect_descriptor_type_id__volatile = 0;
+ if (g_once_init_enter (&random_effect_descriptor_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (RandomEffectDescriptorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) random_effect_descriptor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (RandomEffectDescriptor), 0, (GInstanceInitFunc) random_effect_descriptor_instance_init, NULL };
+ static const GInterfaceInfo spit_pluggable_info = { (GInterfaceInitFunc) random_effect_descriptor_spit_pluggable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo spit_transitions_descriptor_info = { (GInterfaceInitFunc) random_effect_descriptor_spit_transitions_descriptor_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType random_effect_descriptor_type_id;
+ random_effect_descriptor_type_id = g_type_register_static (G_TYPE_OBJECT, "RandomEffectDescriptor", &g_define_type_info, 0);
+ g_type_add_interface_static (random_effect_descriptor_type_id, SPIT_TYPE_PLUGGABLE, &spit_pluggable_info);
+ g_type_add_interface_static (random_effect_descriptor_type_id, SPIT_TRANSITIONS_TYPE_DESCRIPTOR, &spit_transitions_descriptor_info);
+ g_once_init_leave (&random_effect_descriptor_type_id__volatile, random_effect_descriptor_type_id);
+ }
+ return random_effect_descriptor_type_id__volatile;
+}
+
+
+
diff --git a/src/slideshow/mk/slideshow.mk b/src/slideshow/mk/slideshow.mk
deleted file mode 100644
index 0a62e8d..0000000
--- a/src/slideshow/mk/slideshow.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Slideshow
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := slideshow
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. Slideshow.vala.
-UNIT_FILES := \
- TransitionEffects.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Plugins
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/tags/Branch.c b/src/tags/Branch.c
new file mode 100644
index 0000000..adcbabd
--- /dev/null
+++ b/src/tags/Branch.c
@@ -0,0 +1,3253 @@
+/* Branch.c generated by valac 0.32.1, the Vala compiler
+ * generated from Branch.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+#include <gio/gio.h>
+
+
+#define SIDEBAR_TYPE_BRANCH (sidebar_branch_get_type ())
+#define SIDEBAR_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranch))
+#define SIDEBAR_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+#define SIDEBAR_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_BRANCH))
+#define SIDEBAR_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_BRANCH, SidebarBranchClass))
+
+typedef struct _SidebarBranch SidebarBranch;
+typedef struct _SidebarBranchClass SidebarBranchClass;
+typedef struct _SidebarBranchPrivate SidebarBranchPrivate;
+
+#define TAGS_TYPE_BRANCH (tags_branch_get_type ())
+#define TAGS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAGS_TYPE_BRANCH, TagsBranch))
+#define TAGS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAGS_TYPE_BRANCH, TagsBranchClass))
+#define TAGS_IS_BRANCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAGS_TYPE_BRANCH))
+#define TAGS_IS_BRANCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAGS_TYPE_BRANCH))
+#define TAGS_BRANCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAGS_TYPE_BRANCH, TagsBranchClass))
+
+typedef struct _TagsBranch TagsBranch;
+typedef struct _TagsBranchClass TagsBranchClass;
+typedef struct _TagsBranchPrivate TagsBranchPrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY (sidebar_simple_page_entry_get_type ())
+#define SIDEBAR_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntry))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_IS_SIMPLE_PAGE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY))
+#define SIDEBAR_SIMPLE_PAGE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, SidebarSimplePageEntryClass))
+
+typedef struct _SidebarSimplePageEntry SidebarSimplePageEntry;
+typedef struct _SidebarSimplePageEntryClass SidebarSimplePageEntryClass;
+
+#define TAGS_TYPE_SIDEBAR_ENTRY (tags_sidebar_entry_get_type ())
+#define TAGS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry))
+#define TAGS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntryClass))
+#define TAGS_IS_SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAGS_TYPE_SIDEBAR_ENTRY))
+#define TAGS_IS_SIDEBAR_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAGS_TYPE_SIDEBAR_ENTRY))
+#define TAGS_SIDEBAR_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntryClass))
+
+typedef struct _TagsSidebarEntry TagsSidebarEntry;
+typedef struct _TagsSidebarEntryClass TagsSidebarEntryClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_GROUPING (sidebar_grouping_get_type ())
+#define SIDEBAR_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_GROUPING, SidebarGrouping))
+#define SIDEBAR_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+#define SIDEBAR_IS_GROUPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_IS_GROUPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_GROUPING))
+#define SIDEBAR_GROUPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_GROUPING, SidebarGroupingClass))
+
+typedef struct _SidebarGrouping SidebarGrouping;
+typedef struct _SidebarGroupingClass SidebarGroupingClass;
+
+#define SIDEBAR_TYPE_HEADER (sidebar_header_get_type ())
+#define SIDEBAR_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_HEADER, SidebarHeader))
+#define SIDEBAR_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+#define SIDEBAR_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_HEADER))
+#define SIDEBAR_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_HEADER, SidebarHeaderClass))
+
+typedef struct _SidebarHeader SidebarHeader;
+typedef struct _SidebarHeaderClass SidebarHeaderClass;
+
+#define TAGS_TYPE_HEADER (tags_header_get_type ())
+#define TAGS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TAGS_TYPE_HEADER, TagsHeader))
+#define TAGS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TAGS_TYPE_HEADER, TagsHeaderClass))
+#define TAGS_IS_HEADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TAGS_TYPE_HEADER))
+#define TAGS_IS_HEADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TAGS_TYPE_HEADER))
+#define TAGS_HEADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TAGS_TYPE_HEADER, TagsHeaderClass))
+
+typedef struct _TagsHeader TagsHeader;
+typedef struct _TagsHeaderClass TagsHeaderClass;
+
+#define SIDEBAR_TYPE_ENTRY (sidebar_entry_get_type ())
+#define SIDEBAR_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntry))
+#define SIDEBAR_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_ENTRY))
+#define SIDEBAR_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_ENTRY, SidebarEntryIface))
+
+typedef struct _SidebarEntry SidebarEntry;
+typedef struct _SidebarEntryIface SidebarEntryIface;
+
+#define SIDEBAR_TYPE_TREE (sidebar_tree_get_type ())
+#define SIDEBAR_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_TREE, SidebarTree))
+#define SIDEBAR_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+#define SIDEBAR_IS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_IS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SIDEBAR_TYPE_TREE))
+#define SIDEBAR_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SIDEBAR_TYPE_TREE, SidebarTreeClass))
+
+typedef struct _SidebarTree SidebarTree;
+typedef struct _SidebarTreeClass SidebarTreeClass;
+
+#define SIDEBAR_BRANCH_TYPE_OPTIONS (sidebar_branch_options_get_type ())
+#define _alteration_unref0(var) ((var == NULL) ? NULL : (var = (alteration_unref (var), NULL)))
+
+#define SIDEBAR_TYPE_RENAMEABLE_ENTRY (sidebar_renameable_entry_get_type ())
+#define SIDEBAR_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry))
+#define SIDEBAR_IS_RENAMEABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY))
+#define SIDEBAR_RENAMEABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntryIface))
+
+typedef struct _SidebarRenameableEntry SidebarRenameableEntry;
+typedef struct _SidebarRenameableEntryIface SidebarRenameableEntryIface;
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define SIDEBAR_TYPE_EXPANDABLE_ENTRY (sidebar_expandable_entry_get_type ())
+#define SIDEBAR_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntry))
+#define SIDEBAR_IS_EXPANDABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY))
+#define SIDEBAR_EXPANDABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EXPANDABLE_ENTRY, SidebarExpandableEntryIface))
+
+typedef struct _SidebarExpandableEntry SidebarExpandableEntry;
+typedef struct _SidebarExpandableEntryIface SidebarExpandableEntryIface;
+typedef struct _SidebarGroupingPrivate SidebarGroupingPrivate;
+
+#define SIDEBAR_TYPE_EMPHASIZABLE_ENTRY (sidebar_emphasizable_entry_get_type ())
+#define SIDEBAR_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntry))
+#define SIDEBAR_IS_EMPHASIZABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY))
+#define SIDEBAR_EMPHASIZABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_EMPHASIZABLE_ENTRY, SidebarEmphasizableEntryIface))
+
+typedef struct _SidebarEmphasizableEntry SidebarEmphasizableEntry;
+typedef struct _SidebarEmphasizableEntryIface SidebarEmphasizableEntryIface;
+typedef struct _SidebarHeaderPrivate SidebarHeaderPrivate;
+
+#define SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY (sidebar_internal_drop_target_entry_get_type ())
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntry))
+#define SIDEBAR_IS_INTERNAL_DROP_TARGET_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY))
+#define SIDEBAR_INTERNAL_DROP_TARGET_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, SidebarInternalDropTargetEntryIface))
+
+typedef struct _SidebarInternalDropTargetEntry SidebarInternalDropTargetEntry;
+typedef struct _SidebarInternalDropTargetEntryIface SidebarInternalDropTargetEntryIface;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY (sidebar_internal_drag_source_entry_get_type ())
+#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntry))
+#define SIDEBAR_IS_INTERNAL_DRAG_SOURCE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY))
+#define SIDEBAR_INTERNAL_DRAG_SOURCE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, SidebarInternalDragSourceEntryIface))
+
+typedef struct _SidebarInternalDragSourceEntry SidebarInternalDragSourceEntry;
+typedef struct _SidebarInternalDragSourceEntryIface SidebarInternalDragSourceEntryIface;
+
+#define SIDEBAR_TYPE_CONTEXTABLE (sidebar_contextable_get_type ())
+#define SIDEBAR_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextable))
+#define SIDEBAR_IS_CONTEXTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_CONTEXTABLE))
+#define SIDEBAR_CONTEXTABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_CONTEXTABLE, SidebarContextableIface))
+
+typedef struct _SidebarContextable SidebarContextable;
+typedef struct _SidebarContextableIface SidebarContextableIface;
+typedef struct _TagsHeaderPrivate TagsHeaderPrivate;
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_TEXT_ENTRY_DIALOG_MEDIATOR (text_entry_dialog_mediator_get_type ())
+#define TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediator))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define IS_TEXT_ENTRY_DIALOG_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR))
+#define TEXT_ENTRY_DIALOG_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEXT_ENTRY_DIALOG_MEDIATOR, TextEntryDialogMediatorClass))
+
+typedef struct _TextEntryDialogMediator TextEntryDialogMediator;
+typedef struct _TextEntryDialogMediatorClass TextEntryDialogMediatorClass;
+
+#define TYPE_TAGS_DIALOG (tags_dialog_get_type ())
+#define TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAGS_DIALOG, TagsDialog))
+#define TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAGS_DIALOG, TagsDialogClass))
+#define IS_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAGS_DIALOG))
+#define IS_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAGS_DIALOG))
+#define TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAGS_DIALOG, TagsDialogClass))
+
+typedef struct _TagsDialog TagsDialog;
+typedef struct _TagsDialogClass TagsDialogClass;
+
+#define TYPE_ADD_TAGS_DIALOG (add_tags_dialog_get_type ())
+#define ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialog))
+#define ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+#define IS_ADD_TAGS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_DIALOG))
+#define IS_ADD_TAGS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_DIALOG))
+#define ADD_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_DIALOG, AddTagsDialogClass))
+
+typedef struct _AddTagsDialog AddTagsDialog;
+typedef struct _AddTagsDialogClass AddTagsDialogClass;
+#define _text_entry_dialog_mediator_unref0(var) ((var == NULL) ? NULL : (var = (text_entry_dialog_mediator_unref (var), NULL)))
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_ADD_TAGS_COMMAND (add_tags_command_get_type ())
+#define ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommand))
+#define ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+#define IS_ADD_TAGS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_TAGS_COMMAND))
+#define IS_ADD_TAGS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_TAGS_COMMAND))
+#define ADD_TAGS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_TAGS_COMMAND, AddTagsCommandClass))
+
+typedef struct _AddTagsCommand AddTagsCommand;
+typedef struct _AddTagsCommandClass AddTagsCommandClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_REPARENT_TAG_COMMAND (reparent_tag_command_get_type ())
+#define REPARENT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_REPARENT_TAG_COMMAND, ReparentTagCommand))
+#define REPARENT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_REPARENT_TAG_COMMAND, ReparentTagCommandClass))
+#define IS_REPARENT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_REPARENT_TAG_COMMAND))
+#define IS_REPARENT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_REPARENT_TAG_COMMAND))
+#define REPARENT_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_REPARENT_TAG_COMMAND, ReparentTagCommandClass))
+
+typedef struct _ReparentTagCommand ReparentTagCommand;
+typedef struct _ReparentTagCommandClass ReparentTagCommandClass;
+
+#define TYPE_NEW_ROOT_TAG_COMMAND (new_root_tag_command_get_type ())
+#define NEW_ROOT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommand))
+#define NEW_ROOT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommandClass))
+#define IS_NEW_ROOT_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NEW_ROOT_TAG_COMMAND))
+#define IS_NEW_ROOT_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NEW_ROOT_TAG_COMMAND))
+#define NEW_ROOT_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NEW_ROOT_TAG_COMMAND, NewRootTagCommandClass))
+
+typedef struct _NewRootTagCommand NewRootTagCommand;
+typedef struct _NewRootTagCommandClass NewRootTagCommandClass;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define SIDEBAR_TYPE_SELECTABLE_ENTRY (sidebar_selectable_entry_get_type ())
+#define SIDEBAR_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntry))
+#define SIDEBAR_IS_SELECTABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY))
+#define SIDEBAR_SELECTABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_SELECTABLE_ENTRY, SidebarSelectableEntryIface))
+
+typedef struct _SidebarSelectableEntry SidebarSelectableEntry;
+typedef struct _SidebarSelectableEntryIface SidebarSelectableEntryIface;
+
+#define SIDEBAR_TYPE_PAGE_REPRESENTATIVE (sidebar_page_representative_get_type ())
+#define SIDEBAR_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentative))
+#define SIDEBAR_IS_PAGE_REPRESENTATIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE))
+#define SIDEBAR_PAGE_REPRESENTATIVE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_PAGE_REPRESENTATIVE, SidebarPageRepresentativeIface))
+
+typedef struct _SidebarPageRepresentative SidebarPageRepresentative;
+typedef struct _SidebarPageRepresentativeIface SidebarPageRepresentativeIface;
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _SidebarSimplePageEntryPrivate SidebarSimplePageEntryPrivate;
+
+#define SIDEBAR_TYPE_DESTROYABLE_ENTRY (sidebar_destroyable_entry_get_type ())
+#define SIDEBAR_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntry))
+#define SIDEBAR_IS_DESTROYABLE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY))
+#define SIDEBAR_DESTROYABLE_ENTRY_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), SIDEBAR_TYPE_DESTROYABLE_ENTRY, SidebarDestroyableEntryIface))
+
+typedef struct _SidebarDestroyableEntry SidebarDestroyableEntry;
+typedef struct _SidebarDestroyableEntryIface SidebarDestroyableEntryIface;
+typedef struct _TagsSidebarEntryPrivate TagsSidebarEntryPrivate;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+
+#define TYPE_TAG_PAGE (tag_page_get_type ())
+#define TAG_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_PAGE, TagPage))
+#define TAG_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_PAGE, TagPageClass))
+#define IS_TAG_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_PAGE))
+#define IS_TAG_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_PAGE))
+#define TAG_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_PAGE, TagPageClass))
+
+typedef struct _TagPage TagPage;
+typedef struct _TagPageClass TagPageClass;
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+
+#define TYPE_SIMPLE_PROXYABLE_COMMAND (simple_proxyable_command_get_type ())
+#define SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand))
+#define SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+#define IS_SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define IS_SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define SIMPLE_PROXYABLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+
+typedef struct _SimpleProxyableCommand SimpleProxyableCommand;
+typedef struct _SimpleProxyableCommandClass SimpleProxyableCommandClass;
+
+#define TYPE_RENAME_TAG_COMMAND (rename_tag_command_get_type ())
+#define RENAME_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RENAME_TAG_COMMAND, RenameTagCommand))
+#define RENAME_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RENAME_TAG_COMMAND, RenameTagCommandClass))
+#define IS_RENAME_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RENAME_TAG_COMMAND))
+#define IS_RENAME_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RENAME_TAG_COMMAND))
+#define RENAME_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RENAME_TAG_COMMAND, RenameTagCommandClass))
+
+typedef struct _RenameTagCommand RenameTagCommand;
+typedef struct _RenameTagCommandClass RenameTagCommandClass;
+
+#define TYPE_DELETE_TAG_COMMAND (delete_tag_command_get_type ())
+#define DELETE_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELETE_TAG_COMMAND, DeleteTagCommand))
+#define DELETE_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELETE_TAG_COMMAND, DeleteTagCommandClass))
+#define IS_DELETE_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELETE_TAG_COMMAND))
+#define IS_DELETE_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELETE_TAG_COMMAND))
+#define DELETE_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELETE_TAG_COMMAND, DeleteTagCommandClass))
+
+typedef struct _DeleteTagCommand DeleteTagCommand;
+typedef struct _DeleteTagCommandClass DeleteTagCommandClass;
+
+#define TYPE_TAG_UNTAG_PHOTOS_COMMAND (tag_untag_photos_command_get_type ())
+#define TAG_UNTAG_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommand))
+#define TAG_UNTAG_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommandClass))
+#define IS_TAG_UNTAG_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND))
+#define IS_TAG_UNTAG_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_UNTAG_PHOTOS_COMMAND))
+#define TAG_UNTAG_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommandClass))
+
+typedef struct _TagUntagPhotosCommand TagUntagPhotosCommand;
+typedef struct _TagUntagPhotosCommandClass TagUntagPhotosCommandClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SidebarBranch {
+ GObject parent_instance;
+ SidebarBranchPrivate * priv;
+};
+
+struct _SidebarBranchClass {
+ GObjectClass parent_class;
+};
+
+struct _TagsBranch {
+ SidebarBranch parent_instance;
+ TagsBranchPrivate * priv;
+};
+
+struct _TagsBranchClass {
+ SidebarBranchClass parent_class;
+};
+
+struct _TagsBranchPrivate {
+ GeeHashMap* entry_map;
+};
+
+struct _SidebarEntryIface {
+ GTypeInterface parent_iface;
+ gchar* (*get_sidebar_name) (SidebarEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarEntry* self);
+ gchar* (*to_string) (SidebarEntry* self);
+ void (*grafted) (SidebarEntry* self, SidebarTree* tree);
+ void (*pruned) (SidebarEntry* self, SidebarTree* tree);
+};
+
+typedef enum {
+ SIDEBAR_BRANCH_OPTIONS_NONE = 0,
+ SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY = 1 << 0,
+ SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD = 1 << 1,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_EXPAND_TO_FIRST_CHILD = 1 << 2,
+ SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING = 1 << 3
+} SidebarBranchOptions;
+
+struct _SidebarRenameableEntryIface {
+ GTypeInterface parent_iface;
+ void (*rename) (SidebarRenameableEntry* self, const gchar* new_name);
+ gboolean (*is_user_renameable) (SidebarRenameableEntry* self);
+};
+
+struct _SidebarExpandableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*expand_on_select) (SidebarExpandableEntry* self);
+};
+
+struct _SidebarGrouping {
+ GObject parent_instance;
+ SidebarGroupingPrivate * priv;
+};
+
+struct _SidebarGroupingClass {
+ GObjectClass parent_class;
+};
+
+struct _SidebarEmphasizableEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*is_emphasized) (SidebarEmphasizableEntry* self);
+};
+
+struct _SidebarHeader {
+ SidebarGrouping parent_instance;
+ SidebarHeaderPrivate * priv;
+};
+
+struct _SidebarHeaderClass {
+ SidebarGroupingClass parent_class;
+};
+
+struct _SidebarInternalDropTargetEntryIface {
+ GTypeInterface parent_iface;
+ gboolean (*internal_drop_received) (SidebarInternalDropTargetEntry* self, GeeList* sources);
+ gboolean (*internal_drop_received_arbitrary) (SidebarInternalDropTargetEntry* self, GtkSelectionData* data);
+};
+
+struct _SidebarInternalDragSourceEntryIface {
+ GTypeInterface parent_iface;
+ void (*prepare_selection_data) (SidebarInternalDragSourceEntry* self, GtkSelectionData* data);
+};
+
+struct _SidebarContextableIface {
+ GTypeInterface parent_iface;
+ GtkMenu* (*get_sidebar_context_menu) (SidebarContextable* self, GdkEventButton* event);
+};
+
+struct _TagsHeader {
+ SidebarHeader parent_instance;
+ TagsHeaderPrivate * priv;
+};
+
+struct _TagsHeaderClass {
+ SidebarHeaderClass parent_class;
+};
+
+struct _TagsHeaderPrivate {
+ GtkUIManager* ui;
+ GtkMenu* context_menu;
+};
+
+struct _SidebarSelectableEntryIface {
+ GTypeInterface parent_iface;
+};
+
+struct _SidebarPageRepresentativeIface {
+ GTypeInterface parent_iface;
+ gboolean (*has_page) (SidebarPageRepresentative* self);
+ Page* (*get_page) (SidebarPageRepresentative* self);
+};
+
+struct _SidebarSimplePageEntry {
+ GObject parent_instance;
+ SidebarSimplePageEntryPrivate * priv;
+};
+
+struct _SidebarSimplePageEntryClass {
+ GObjectClass parent_class;
+ gchar* (*get_sidebar_name) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_tooltip) (SidebarSimplePageEntry* self);
+ gchar* (*get_sidebar_icon) (SidebarSimplePageEntry* self);
+ gchar* (*to_string) (SidebarSimplePageEntry* self);
+ Page* (*create_page) (SidebarSimplePageEntry* self);
+};
+
+struct _SidebarDestroyableEntryIface {
+ GTypeInterface parent_iface;
+ void (*destroy_source) (SidebarDestroyableEntry* self);
+};
+
+struct _TagsSidebarEntry {
+ SidebarSimplePageEntry parent_instance;
+ TagsSidebarEntryPrivate * priv;
+};
+
+struct _TagsSidebarEntryClass {
+ SidebarSimplePageEntryClass parent_class;
+};
+
+struct _TagsSidebarEntryPrivate {
+ gchar* single_tag_icon;
+ Tag* tag;
+};
+
+
+static gpointer tags_branch_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+static gpointer tags_header_parent_class = NULL;
+static SidebarInternalDropTargetEntryIface* tags_header_sidebar_internal_drop_target_entry_parent_iface = NULL;
+static SidebarInternalDragSourceEntryIface* tags_header_sidebar_internal_drag_source_entry_parent_iface = NULL;
+static SidebarContextableIface* tags_header_sidebar_contextable_parent_iface = NULL;
+static gpointer tags_sidebar_entry_parent_class = NULL;
+static SidebarRenameableEntryIface* tags_sidebar_entry_sidebar_renameable_entry_parent_iface = NULL;
+static SidebarDestroyableEntryIface* tags_sidebar_entry_sidebar_destroyable_entry_parent_iface = NULL;
+static SidebarInternalDropTargetEntryIface* tags_sidebar_entry_sidebar_internal_drop_target_entry_parent_iface = NULL;
+static SidebarExpandableEntryIface* tags_sidebar_entry_sidebar_expandable_entry_parent_iface = NULL;
+static SidebarInternalDragSourceEntryIface* tags_sidebar_entry_sidebar_internal_drag_source_entry_parent_iface = NULL;
+
+GType sidebar_branch_get_type (void) G_GNUC_CONST;
+GType tags_branch_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType tag_get_type (void) G_GNUC_CONST;
+GType sidebar_simple_page_entry_get_type (void) G_GNUC_CONST;
+GType tags_sidebar_entry_get_type (void) G_GNUC_CONST;
+#define TAGS_BRANCH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TAGS_TYPE_BRANCH, TagsBranchPrivate))
+enum {
+ TAGS_BRANCH_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+static void tags_branch_on_tags_added_removed (TagsBranch* self, GeeIterable* added_raw, GeeIterable* removed);
+static void _tags_branch_on_tags_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self);
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void tags_branch_on_tags_altered (TagsBranch* self, GeeMap* altered);
+static void _tags_branch_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+TagsBranch* tags_branch_new (void);
+TagsBranch* tags_branch_construct (GType object_type);
+TagsHeader* tags_header_new (void);
+TagsHeader* tags_header_construct (GType object_type);
+GType sidebar_grouping_get_type (void) G_GNUC_CONST;
+GType sidebar_header_get_type (void) G_GNUC_CONST;
+GType tags_header_get_type (void) G_GNUC_CONST;
+GType sidebar_tree_get_type (void) G_GNUC_CONST;
+GType sidebar_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_branch_options_get_type (void) G_GNUC_CONST;
+static gint tags_branch_comparator (SidebarEntry* a, SidebarEntry* b);
+static gint _tags_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b);
+SidebarBranch* sidebar_branch_new (SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+SidebarBranch* sidebar_branch_construct (GType object_type, SidebarEntry* root, SidebarBranchOptions options, GCompareFunc default_comparator, GCompareFunc root_comparator);
+GeeCollection* data_collection_get_all (DataCollection* self);
+TagsSidebarEntry* tags_branch_get_entry_for_tag (TagsBranch* self, Tag* tag);
+gboolean tags_branch_is_user_renameable (TagsBranch* self);
+gint tag_compare_names (Tag* a, Tag* b);
+Tag* tags_sidebar_entry_for_tag (TagsSidebarEntry* self);
+static gint _tag_compare_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+Tag* tag_get_hierarchical_parent (Tag* self);
+TagsSidebarEntry* tags_sidebar_entry_new (Tag* tag);
+TagsSidebarEntry* tags_sidebar_entry_construct (GType object_type, Tag* tag);
+void sidebar_branch_graft (SidebarBranch* self, SidebarEntry* parent, SidebarEntry* entry, GCompareFunc comparator);
+SidebarEntry* sidebar_branch_get_root (SidebarBranch* self);
+void sidebar_branch_prune (SidebarBranch* self, SidebarEntry* entry);
+gboolean alteration_has_detail (Alteration* self, const gchar* subject, const gchar* detail);
+GType sidebar_renameable_entry_get_type (void) G_GNUC_CONST;
+gchar* tag_get_user_visible_name (Tag* self);
+void sidebar_branch_reorder (SidebarBranch* self, SidebarEntry* entry);
+static void tags_branch_finalize (GObject* obj);
+GType sidebar_expandable_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_emphasizable_entry_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType sidebar_internal_drop_target_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_internal_drag_source_entry_get_type (void) G_GNUC_CONST;
+GType sidebar_contextable_get_type (void) G_GNUC_CONST;
+#define TAGS_HEADER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TAGS_TYPE_HEADER, TagsHeaderPrivate))
+enum {
+ TAGS_HEADER_DUMMY_PROPERTY
+};
+SidebarHeader* sidebar_header_new (const gchar* name, gboolean emphasized);
+SidebarHeader* sidebar_header_construct (GType object_type, const gchar* name, gboolean emphasized);
+static void tags_header_setup_context_menu (TagsHeader* self);
+#define TRANSLATABLE "translatable"
+static void tags_header_on_new_tag (TagsHeader* self);
+static void _tags_header_on_new_tag_gtk_action_callback (GtkAction* action, gpointer self);
+#define RESOURCES_NEW_CHILD_TAG_SIDEBAR_MENU _ ("_New")
+static void _vala_array_add133 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+GFile* resources_get_ui (const gchar* filename);
+void app_window_error_message (const gchar* message, GtkWindow* parent);
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+Application* application_get_instance (void);
+void application_panic (Application* self);
+static gboolean tags_header_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media);
+gpointer text_entry_dialog_mediator_ref (gpointer instance);
+void text_entry_dialog_mediator_unref (gpointer instance);
+GParamSpec* param_spec_text_entry_dialog_mediator (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+void value_take_text_entry_dialog_mediator (GValue* value, gpointer v_object);
+gpointer value_get_text_entry_dialog_mediator (const GValue* value);
+GType text_entry_dialog_mediator_get_type (void) G_GNUC_CONST;
+GType tags_dialog_get_type (void) G_GNUC_CONST;
+GType add_tags_dialog_get_type (void) G_GNUC_CONST;
+AddTagsDialog* add_tags_dialog_new (void);
+AddTagsDialog* add_tags_dialog_construct (GType object_type);
+gchar** add_tags_dialog_execute (AddTagsDialog* self, int* result_length1);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+GType command_get_type (void) G_GNUC_CONST;
+void command_manager_execute (CommandManager* self, Command* command);
+AddTagsCommand* add_tags_command_new (gchar** paths, int paths_length1, GeeCollection* sources);
+AddTagsCommand* add_tags_command_construct (GType object_type, gchar** paths, int paths_length1, GeeCollection* sources);
+GType page_command_get_type (void) G_GNUC_CONST;
+GType add_tags_command_get_type (void) G_GNUC_CONST;
+static gboolean tags_header_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data);
+#define LIBRARY_WINDOW_TAG_PATH_MIME_TYPE "shotwell/tag-path"
+gboolean tag_source_collection_exists (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root);
+GeeList* hierarchical_tag_utilities_enumerate_path_components (const gchar* in_path);
+Tag* tag_for_path (const gchar* name);
+ReparentTagCommand* reparent_tag_command_new (Tag* tag, const gchar* new_parent_path);
+ReparentTagCommand* reparent_tag_command_construct (GType object_type, Tag* tag, const gchar* new_parent_path);
+GType reparent_tag_command_get_type (void) G_GNUC_CONST;
+static void tags_header_real_prepare_selection_data (SidebarInternalDragSourceEntry* base, GtkSelectionData* data);
+static GtkMenu* tags_header_real_get_sidebar_context_menu (SidebarContextable* base, GdkEventButton* event);
+GType new_root_tag_command_get_type (void) G_GNUC_CONST;
+NewRootTagCommand* new_root_tag_command_new (void);
+NewRootTagCommand* new_root_tag_command_construct (GType object_type);
+GType page_window_get_type (void) G_GNUC_CONST;
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_rename_tag_in_sidebar (LibraryWindow* self, Tag* tag);
+Tag* new_root_tag_command_get_created_tag (NewRootTagCommand* self);
+static void tags_header_finalize (GObject* obj);
+GType sidebar_selectable_entry_get_type (void) G_GNUC_CONST;
+GType page_get_type (void) G_GNUC_CONST;
+GType sidebar_page_representative_get_type (void) G_GNUC_CONST;
+GType sidebar_destroyable_entry_get_type (void) G_GNUC_CONST;
+#define TAGS_SIDEBAR_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntryPrivate))
+enum {
+ TAGS_SIDEBAR_ENTRY_DUMMY_PROPERTY
+};
+#define RESOURCES_ICON_ONE_TAG "one-tag"
+SidebarSimplePageEntry* sidebar_simple_page_entry_construct (GType object_type);
+void tags_sidebar_entry_init (void);
+void tags_sidebar_entry_terminate (void);
+static gchar* tags_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base);
+static gchar* tags_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base);
+static Page* tags_sidebar_entry_real_create_page (SidebarSimplePageEntry* base);
+TagPage* tag_page_new (Tag* tag);
+TagPage* tag_page_construct (GType object_type, Tag* tag);
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType tag_page_get_type (void) G_GNUC_CONST;
+static gboolean tags_sidebar_entry_real_is_user_renameable (SidebarRenameableEntry* base);
+static void tags_sidebar_entry_real_rename (SidebarRenameableEntry* base, const gchar* new_name);
+gchar* tag_prep_tag_name (const gchar* name);
+RenameTagCommand* rename_tag_command_new (Tag* tag, const gchar* new_name);
+RenameTagCommand* rename_tag_command_construct (GType object_type, Tag* tag, const gchar* new_name);
+GType simple_proxyable_command_get_type (void) G_GNUC_CONST;
+GType rename_tag_command_get_type (void) G_GNUC_CONST;
+static void tags_sidebar_entry_real_destroy_source (SidebarDestroyableEntry* base);
+gboolean dialogs_confirm_delete_tag (Tag* tag);
+DeleteTagCommand* delete_tag_command_new (Tag* tag);
+DeleteTagCommand* delete_tag_command_construct (GType object_type, Tag* tag);
+GType delete_tag_command_get_type (void) G_GNUC_CONST;
+static gboolean tags_sidebar_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media);
+TagUntagPhotosCommand* tag_untag_photos_command_new (Tag* tag, GeeCollection* sources, gint count, gboolean attach);
+TagUntagPhotosCommand* tag_untag_photos_command_construct (GType object_type, Tag* tag, GeeCollection* sources, gint count, gboolean attach);
+GType tag_untag_photos_command_get_type (void) G_GNUC_CONST;
+static gboolean tags_sidebar_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data);
+gchar* tag_get_path (Tag* self);
+GeeList* hierarchical_tag_utilities_enumerate_parent_paths (const gchar* in_path);
+static gboolean tags_sidebar_entry_real_expand_on_select (SidebarExpandableEntry* base);
+static void tags_sidebar_entry_real_prepare_selection_data (SidebarInternalDragSourceEntry* base, GtkSelectionData* data);
+static void tags_sidebar_entry_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static void _tags_branch_on_tags_added_removed_data_collection_contents_altered (DataCollection* _sender, GeeIterable* added, GeeIterable* removed, gpointer self) {
+#line 26 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_branch_on_tags_added_removed ((TagsBranch*) self, added, removed);
+#line 885 "Branch.c"
+}
+
+
+static void _tags_branch_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 27 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_branch_on_tags_altered ((TagsBranch*) self, items);
+#line 892 "Branch.c"
+}
+
+
+static gint _tags_branch_comparator_gcompare_func (gconstpointer a, gconstpointer b) {
+ gint result;
+ result = tags_branch_comparator ((SidebarEntry*) a, (SidebarEntry*) b);
+#line 11 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 901 "Branch.c"
+}
+
+
+TagsBranch* tags_branch_construct (GType object_type) {
+ TagsBranch * self = NULL;
+ TagsHeader* _tmp0_ = NULL;
+ TagsHeader* _tmp1_ = NULL;
+ TagSourceCollection* _tmp2_ = NULL;
+ GeeCollection* _tmp3_ = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ TagSourceCollection* _tmp5_ = NULL;
+ TagSourceCollection* _tmp6_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = tags_header_new ();
+#line 11 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 11 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = (TagsBranch*) sidebar_branch_construct (object_type, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, SIDEBAR_TYPE_ENTRY, SidebarEntry), (SIDEBAR_BRANCH_OPTIONS_HIDE_IF_EMPTY | SIDEBAR_BRANCH_OPTIONS_AUTO_OPEN_ON_NEW_CHILD) | SIDEBAR_BRANCH_OPTIONS_STARTUP_OPEN_GROUPING, _tags_branch_comparator_gcompare_func, NULL);
+#line 11 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp1_);
+#line 18 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = tag_global;
+#line 18 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = data_collection_get_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection));
+#line 18 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 18 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_branch_on_tags_added_removed (self, G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable), NULL);
+#line 18 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp4_);
+#line 21 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = tag_global;
+#line 21 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), "contents-altered", (GCallback) _tags_branch_on_tags_added_removed_data_collection_contents_altered, self, 0);
+#line 22 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = tag_global;
+#line 22 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _tags_branch_on_tags_altered_data_collection_items_altered, self, 0);
+#line 10 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return self;
+#line 942 "Branch.c"
+}
+
+
+TagsBranch* tags_branch_new (void) {
+#line 10 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return tags_branch_construct (TAGS_TYPE_BRANCH);
+#line 949 "Branch.c"
+}
+
+
+TagsSidebarEntry* tags_branch_get_entry_for_tag (TagsBranch* self, Tag* tag) {
+ TagsSidebarEntry* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (TAGS_IS_BRANCH (self), NULL);
+#line 30 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 31 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = self->priv->entry_map;
+#line 31 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = tag;
+#line 31 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 31 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = (TagsSidebarEntry*) _tmp2_;
+#line 31 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 972 "Branch.c"
+}
+
+
+gboolean tags_branch_is_user_renameable (TagsBranch* self) {
+ gboolean result = FALSE;
+#line 34 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (TAGS_IS_BRANCH (self), FALSE);
+#line 35 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 35 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 984 "Branch.c"
+}
+
+
+static gint tags_branch_comparator (SidebarEntry* a, SidebarEntry* b) {
+ gint result = 0;
+ SidebarEntry* _tmp0_ = NULL;
+ SidebarEntry* _tmp1_ = NULL;
+ SidebarEntry* _tmp2_ = NULL;
+ Tag* _tmp3_ = NULL;
+ Tag* _tmp4_ = NULL;
+ SidebarEntry* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ Tag* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+#line 38 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (a), 0);
+#line 38 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (SIDEBAR_IS_ENTRY (b), 0);
+#line 39 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = a;
+#line 39 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = b;
+#line 39 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp0_ == _tmp1_) {
+#line 40 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = 0;
+#line 40 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 1014 "Branch.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = a;
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = tags_sidebar_entry_for_tag (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry));
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = b;
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = tags_sidebar_entry_for_tag (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry));
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = _tmp6_;
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = tag_compare_names (_tmp4_, _tmp7_);
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = _tmp8_;
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp7_);
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp4_);
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = _tmp9_;
+#line 42 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 1040 "Branch.c"
+}
+
+
+static gint _tag_compare_names_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = tag_compare_names ((Tag*) a, (Tag*) b);
+#line 57 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 1049 "Branch.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 59 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1056 "Branch.c"
+}
+
+
+static void tags_branch_on_tags_added_removed (TagsBranch* self, GeeIterable* added_raw, GeeIterable* removed) {
+ Tag* restore_point = NULL;
+ GeeIterable* _tmp0_ = NULL;
+ GeeIterable* _tmp49_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (TAGS_IS_BRANCH (self));
+#line 46 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail ((added_raw == NULL) || GEE_IS_ITERABLE (added_raw));
+#line 46 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail ((removed == NULL) || GEE_IS_ITERABLE (removed));
+#line 51 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ restore_point = NULL;
+#line 53 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = added_raw;
+#line 53 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp0_ != NULL) {
+#line 1076 "Branch.c"
+ GeeSortedSet* added = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = gee_tree_set_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, _tag_compare_names_gcompare_data_func, NULL, NULL);
+#line 57 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ added = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 1083 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp2_ = NULL;
+ GeeIterator* _tmp3_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = added_raw;
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = gee_iterable_iterator (_tmp2_);
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _object_it = _tmp3_;
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ while (TRUE) {
+#line 1096 "Branch.c"
+ GeeIterator* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ gpointer _tmp7_ = NULL;
+ Tag* tag = NULL;
+ DataObject* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ GeeSortedSet* _tmp10_ = NULL;
+ Tag* _tmp11_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = _object_it;
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = gee_iterator_next (_tmp4_);
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (!_tmp5_) {
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ break;
+#line 1115 "Branch.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = _object_it;
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = gee_iterator_get (_tmp6_);
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ object = (DataObject*) _tmp7_;
+#line 59 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = object;
+#line 59 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_TAG, Tag));
+#line 59 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tag = _tmp9_;
+#line 60 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp10_ = added;
+#line 60 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp11_ = tag;
+#line 60 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection), _tmp11_);
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (tag);
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (object);
+#line 1139 "Branch.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 1143 "Branch.c"
+ }
+ {
+ GeeIterator* _tag_it = NULL;
+ GeeSortedSet* _tmp12_ = NULL;
+ GeeIterator* _tmp13_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp12_ = added;
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp13_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tag_it = _tmp13_;
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ while (TRUE) {
+#line 1157 "Branch.c"
+ GeeIterator* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+ Tag* tag = NULL;
+ GeeIterator* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ Tag* parent_tag = NULL;
+ Tag* _tmp18_ = NULL;
+ Tag* _tmp19_ = NULL;
+ TagsSidebarEntry* entry = NULL;
+ Tag* _tmp31_ = NULL;
+ TagsSidebarEntry* _tmp32_ = NULL;
+ GeeHashMap* _tmp33_ = NULL;
+ Tag* _tmp34_ = NULL;
+ TagsSidebarEntry* _tmp35_ = NULL;
+ Tag* _tmp36_ = NULL;
+ Tag* _tmp37_ = NULL;
+ Tag* _tmp38_ = NULL;
+ Tag* _tmp47_ = NULL;
+ Tag* _tmp48_ = NULL;
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp14_ = _tag_it;
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp15_ = gee_iterator_next (_tmp14_);
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (!_tmp15_) {
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ break;
+#line 1185 "Branch.c"
+ }
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp16_ = _tag_it;
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp17_ = gee_iterator_get (_tmp16_);
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tag = (Tag*) _tmp17_;
+#line 66 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp18_ = tag;
+#line 66 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp19_ = tag_get_hierarchical_parent (_tmp18_);
+#line 66 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ parent_tag = _tmp19_;
+#line 67 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ while (TRUE) {
+#line 1201 "Branch.c"
+ Tag* _tmp20_ = NULL;
+ GeeHashMap* _tmp21_ = NULL;
+ Tag* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ Tag* _tmp29_ = NULL;
+ Tag* _tmp30_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp20_ = parent_tag;
+#line 67 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (!(_tmp20_ != NULL)) {
+#line 67 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ break;
+#line 1214 "Branch.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp21_ = self->priv->entry_map;
+#line 68 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp22_ = parent_tag;
+#line 68 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp23_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp22_);
+#line 68 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (!_tmp23_) {
+#line 1224 "Branch.c"
+ TagsSidebarEntry* parent_entry = NULL;
+ Tag* _tmp24_ = NULL;
+ TagsSidebarEntry* _tmp25_ = NULL;
+ GeeHashMap* _tmp26_ = NULL;
+ Tag* _tmp27_ = NULL;
+ TagsSidebarEntry* _tmp28_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp24_ = parent_tag;
+#line 69 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp25_ = tags_sidebar_entry_new (_tmp24_);
+#line 69 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ parent_entry = _tmp25_;
+#line 70 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp26_ = self->priv->entry_map;
+#line 70 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp27_ = parent_tag;
+#line 70 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp28_ = parent_entry;
+#line 70 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp27_, _tmp28_);
+#line 68 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (parent_entry);
+#line 1247 "Branch.c"
+ }
+#line 73 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp29_ = parent_tag;
+#line 73 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp30_ = tag_get_hierarchical_parent (_tmp29_);
+#line 73 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (parent_tag);
+#line 73 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ parent_tag = _tmp30_;
+#line 1257 "Branch.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp31_ = tag;
+#line 77 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp32_ = tags_sidebar_entry_new (_tmp31_);
+#line 77 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ entry = _tmp32_;
+#line 78 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp33_ = self->priv->entry_map;
+#line 78 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp34_ = tag;
+#line 78 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp35_ = entry;
+#line 78 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp34_, _tmp35_);
+#line 80 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp36_ = tag;
+#line 80 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp37_ = tag_get_hierarchical_parent (_tmp36_);
+#line 80 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (parent_tag);
+#line 80 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ parent_tag = _tmp37_;
+#line 81 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp38_ = parent_tag;
+#line 81 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp38_ != NULL) {
+#line 1285 "Branch.c"
+ TagsSidebarEntry* parent_entry = NULL;
+ GeeHashMap* _tmp39_ = NULL;
+ Tag* _tmp40_ = NULL;
+ gpointer _tmp41_ = NULL;
+ TagsSidebarEntry* _tmp42_ = NULL;
+ TagsSidebarEntry* _tmp43_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp39_ = self->priv->entry_map;
+#line 82 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp40_ = parent_tag;
+#line 82 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp41_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp40_);
+#line 82 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ parent_entry = (TagsSidebarEntry*) _tmp41_;
+#line 83 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp42_ = parent_entry;
+#line 83 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp43_ = entry;
+#line 83 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, SIDEBAR_TYPE_ENTRY, SidebarEntry), G_TYPE_CHECK_INSTANCE_CAST (_tmp43_, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 81 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (parent_entry);
+#line 1308 "Branch.c"
+ } else {
+ SidebarEntry* _tmp44_ = NULL;
+ SidebarEntry* _tmp45_ = NULL;
+ TagsSidebarEntry* _tmp46_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp44_ = sidebar_branch_get_root (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch));
+#line 85 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp45_ = _tmp44_;
+#line 85 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp46_ = entry;
+#line 85 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ sidebar_branch_graft (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), _tmp45_, G_TYPE_CHECK_INSTANCE_CAST (_tmp46_, SIDEBAR_TYPE_ENTRY, SidebarEntry), NULL);
+#line 85 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp45_);
+#line 1323 "Branch.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp47_ = tag;
+#line 90 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp48_ = _g_object_ref0 (_tmp47_);
+#line 90 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (restore_point);
+#line 90 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ restore_point = _tmp48_;
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (entry);
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (parent_tag);
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (tag);
+#line 1339 "Branch.c"
+ }
+#line 63 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tag_it);
+#line 1343 "Branch.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (added);
+#line 1347 "Branch.c"
+ }
+#line 94 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp49_ = removed;
+#line 94 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp49_ != NULL) {
+#line 1353 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeIterable* _tmp50_ = NULL;
+ GeeIterator* _tmp51_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp50_ = removed;
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp51_ = gee_iterable_iterator (_tmp50_);
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _object_it = _tmp51_;
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ while (TRUE) {
+#line 1366 "Branch.c"
+ GeeIterator* _tmp52_ = NULL;
+ gboolean _tmp53_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp54_ = NULL;
+ gpointer _tmp55_ = NULL;
+ Tag* tag = NULL;
+ DataObject* _tmp56_ = NULL;
+ Tag* _tmp57_ = NULL;
+ TagsSidebarEntry* entry = NULL;
+ GeeHashMap* _tmp58_ = NULL;
+ Tag* _tmp59_ = NULL;
+ gpointer _tmp60_ = NULL;
+ TagsSidebarEntry* _tmp61_ = NULL;
+ gboolean is_removed = FALSE;
+ GeeHashMap* _tmp62_ = NULL;
+ Tag* _tmp63_ = NULL;
+ gboolean _tmp64_ = FALSE;
+ gboolean _tmp65_ = FALSE;
+ TagsSidebarEntry* _tmp66_ = NULL;
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp52_ = _object_it;
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp53_ = gee_iterator_next (_tmp52_);
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (!_tmp53_) {
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ break;
+#line 1394 "Branch.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp54_ = _object_it;
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp55_ = gee_iterator_get (_tmp54_);
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ object = (DataObject*) _tmp55_;
+#line 96 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp56_ = object;
+#line 96 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp57_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp56_, TYPE_TAG, Tag));
+#line 96 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tag = _tmp57_;
+#line 98 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp58_ = self->priv->entry_map;
+#line 98 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp59_ = tag;
+#line 98 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp60_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp58_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp59_);
+#line 98 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ entry = (TagsSidebarEntry*) _tmp60_;
+#line 99 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp61_ = entry;
+#line 99 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _vala_assert (_tmp61_ != NULL, "entry != null");
+#line 101 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp62_ = self->priv->entry_map;
+#line 101 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp63_ = tag;
+#line 101 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp64_ = gee_abstract_map_unset (G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp63_, NULL);
+#line 101 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ is_removed = _tmp64_;
+#line 102 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp65_ = is_removed;
+#line 102 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _vala_assert (_tmp65_, "is_removed");
+#line 104 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp66_ = entry;
+#line 104 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ sidebar_branch_prune (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp66_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (entry);
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (tag);
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (object);
+#line 1442 "Branch.c"
+ }
+#line 95 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 1446 "Branch.c"
+ }
+ }
+#line 46 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (restore_point);
+#line 1451 "Branch.c"
+}
+
+
+static void tags_branch_on_tags_altered (TagsBranch* self, GeeMap* altered) {
+#line 109 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (TAGS_IS_BRANCH (self));
+#line 109 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (GEE_IS_MAP (altered));
+#line 1460 "Branch.c"
+ {
+ GeeIterator* _object_it = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = altered;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = _tmp4_;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp3_);
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _object_it = _tmp5_;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ while (TRUE) {
+#line 1487 "Branch.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ DataObject* object = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeMap* _tmp10_ = NULL;
+ DataObject* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ Alteration* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ Tag* tag = NULL;
+ DataObject* _tmp16_ = NULL;
+ Tag* _tmp17_ = NULL;
+ TagsSidebarEntry* entry = NULL;
+ GeeHashMap* _tmp18_ = NULL;
+ Tag* _tmp19_ = NULL;
+ gpointer _tmp20_ = NULL;
+ TagsSidebarEntry* _tmp21_ = NULL;
+ TagsSidebarEntry* _tmp22_ = NULL;
+ Tag* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ TagsSidebarEntry* _tmp26_ = NULL;
+ Tag* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ TagsSidebarEntry* _tmp30_ = NULL;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = _object_it;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (!_tmp7_) {
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ break;
+#line 1524 "Branch.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = _object_it;
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ object = (DataObject*) _tmp9_;
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp10_ = altered;
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp11_ = object;
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp12_ = gee_map_get (_tmp10_, _tmp11_);
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp13_ = (Alteration*) _tmp12_;
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp14_ = alteration_has_detail (_tmp13_, "metadata", "name");
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp15_ = !_tmp14_;
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _alteration_unref0 (_tmp13_);
+#line 111 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp15_) {
+#line 112 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (object);
+#line 112 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ continue;
+#line 1552 "Branch.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp16_ = object;
+#line 114 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp17_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_TAG, Tag));
+#line 114 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tag = _tmp17_;
+#line 115 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp18_ = self->priv->entry_map;
+#line 115 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp19_ = tag;
+#line 115 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp20_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp19_);
+#line 115 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ entry = (TagsSidebarEntry*) _tmp20_;
+#line 116 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp21_ = entry;
+#line 116 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _vala_assert (_tmp21_ != NULL, "entry != null");
+#line 118 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp22_ = entry;
+#line 118 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp23_ = tag;
+#line 118 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp24_ = tag_get_user_visible_name (_tmp23_);
+#line 118 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp25_ = _tmp24_;
+#line 118 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, SIDEBAR_TYPE_RENAMEABLE_ENTRY, SidebarRenameableEntry), "sidebar-name-changed", _tmp25_);
+#line 118 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp25_);
+#line 119 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp26_ = entry;
+#line 119 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp27_ = tag;
+#line 119 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp28_ = tag_get_user_visible_name (_tmp27_);
+#line 119 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp29_ = _tmp28_;
+#line 119 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_emit_by_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp26_, SIDEBAR_TYPE_ENTRY, SidebarEntry), "sidebar-tooltip-changed", _tmp29_);
+#line 119 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp29_);
+#line 120 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp30_ = entry;
+#line 120 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ sidebar_branch_reorder (G_TYPE_CHECK_INSTANCE_CAST (self, SIDEBAR_TYPE_BRANCH, SidebarBranch), G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, SIDEBAR_TYPE_ENTRY, SidebarEntry));
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (entry);
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (tag);
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (object);
+#line 1606 "Branch.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_object_it);
+#line 1610 "Branch.c"
+ }
+}
+
+
+static void tags_branch_class_init (TagsBranchClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_branch_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_type_class_add_private (klass, sizeof (TagsBranchPrivate));
+#line 7 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = tags_branch_finalize;
+#line 1622 "Branch.c"
+}
+
+
+static void tags_branch_instance_init (TagsBranch * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv = TAGS_BRANCH_GET_PRIVATE (self);
+#line 8 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = gee_hash_map_new (TYPE_TAG, (GBoxedCopyFunc) g_object_ref, g_object_unref, TAGS_TYPE_SIDEBAR_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 8 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv->entry_map = _tmp0_;
+#line 1634 "Branch.c"
+}
+
+
+static void tags_branch_finalize (GObject* obj) {
+ TagsBranch * self;
+ TagSourceCollection* _tmp0_ = NULL;
+ guint _tmp1_ = 0U;
+ TagSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TAGS_TYPE_BRANCH, TagsBranch);
+#line 26 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = tag_global;
+#line 26 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_parse_name ("contents-altered", TYPE_DATA_COLLECTION, &_tmp1_, NULL, FALSE);
+#line 26 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _tags_branch_on_tags_added_removed_data_collection_contents_altered, self);
+#line 27 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = tag_global;
+#line 27 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 27 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _tags_branch_on_tags_altered_data_collection_items_altered, self);
+#line 8 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (self->priv->entry_map);
+#line 7 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ G_OBJECT_CLASS (tags_branch_parent_class)->finalize (obj);
+#line 1662 "Branch.c"
+}
+
+
+GType tags_branch_get_type (void) {
+ static volatile gsize tags_branch_type_id__volatile = 0;
+ if (g_once_init_enter (&tags_branch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagsBranchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tags_branch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagsBranch), 0, (GInstanceInitFunc) tags_branch_instance_init, NULL };
+ GType tags_branch_type_id;
+ tags_branch_type_id = g_type_register_static (SIDEBAR_TYPE_BRANCH, "TagsBranch", &g_define_type_info, 0);
+ g_once_init_leave (&tags_branch_type_id__volatile, tags_branch_type_id);
+ }
+ return tags_branch_type_id__volatile;
+}
+
+
+TagsHeader* tags_header_construct (GType object_type) {
+ TagsHeader * self = NULL;
+ const gchar* _tmp0_ = NULL;
+#line 131 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = _ ("Tags");
+#line 131 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = (TagsHeader*) sidebar_header_construct (object_type, _tmp0_, TRUE);
+#line 132 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_header_setup_context_menu (self);
+#line 130 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return self;
+#line 1689 "Branch.c"
+}
+
+
+TagsHeader* tags_header_new (void) {
+#line 130 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return tags_header_construct (TAGS_TYPE_HEADER);
+#line 1696 "Branch.c"
+}
+
+
+static void _tags_header_on_new_tag_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_header_on_new_tag ((TagsHeader*) self);
+#line 1703 "Branch.c"
+}
+
+
+static void _vala_array_add133 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if ((*length) == (*size)) {
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1714 "Branch.c"
+ }
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ (*array)[(*length)++] = *value;
+#line 1718 "Branch.c"
+}
+
+
+static void tags_header_setup_context_menu (TagsHeader* self) {
+ GtkActionGroup* group = NULL;
+ GtkActionGroup* _tmp0_ = NULL;
+ GtkActionEntry* actions = NULL;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry new_tag = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ GtkUIManager* _tmp6_ = NULL;
+ GFile* ui_file = NULL;
+ GFile* _tmp7_ = NULL;
+ GtkUIManager* _tmp19_ = NULL;
+ GtkWidget* _tmp20_ = NULL;
+ GtkMenu* _tmp21_ = NULL;
+ GtkUIManager* _tmp22_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (TAGS_IS_HEADER (self));
+#line 136 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = gtk_action_group_new ("SidebarDefault");
+#line 136 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ group = _tmp0_;
+#line 137 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = g_new0 (GtkActionEntry, 0);
+#line 137 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ actions = _tmp1_;
+#line 137 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ actions_length1 = 0;
+#line 137 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _actions_size_ = actions_length1;
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_.name = "CommonNewTag";
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_.stock_id = NULL;
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_.accelerator = NULL;
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_.tooltip = NULL;
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_.callback = (GCallback) _tags_header_on_new_tag_gtk_action_callback;
+#line 139 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ new_tag = _tmp2_;
+#line 140 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ new_tag.label = RESOURCES_NEW_CHILD_TAG_SIDEBAR_MENU;
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = actions;
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3__length1 = actions_length1;
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = new_tag;
+#line 141 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _vala_array_add133 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 143 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = actions;
+#line 143 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5__length1 = actions_length1;
+#line 143 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gtk_action_group_add_actions (group, _tmp5_, _tmp5__length1, self);
+#line 144 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = self->priv->ui;
+#line 144 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gtk_ui_manager_insert_action_group (_tmp6_, group, 0);
+#line 146 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = resources_get_ui ("tag_sidebar_context.ui");
+#line 146 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ ui_file = _tmp7_;
+#line 1796 "Branch.c"
+ {
+ GtkUIManager* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = self->priv->ui;
+#line 148 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = g_file_get_path (ui_file);
+#line 148 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp10_ = _tmp9_;
+#line 148 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gtk_ui_manager_add_ui_from_file (_tmp8_, _tmp10_, &_inner_error_);
+#line 148 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp10_);
+#line 148 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1813 "Branch.c"
+ goto __catch51_g_error;
+ }
+ }
+ goto __finally51;
+ __catch51_g_error:
+ {
+ GError* err = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ GError* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ Application* _tmp17_ = NULL;
+ Application* _tmp18_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ err = _inner_error_;
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _inner_error_ = NULL;
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp11_ = g_file_get_path (ui_file);
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp12_ = _tmp11_;
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp13_ = err;
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp14_ = _tmp13_->message;
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp15_ = g_strdup_printf ("Error loading UI file %s: %s", _tmp12_, _tmp14_);
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp16_ = _tmp15_;
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ app_window_error_message (_tmp16_, NULL);
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp16_);
+#line 150 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp12_);
+#line 152 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp17_ = application_get_instance ();
+#line 152 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp18_ = _tmp17_;
+#line 152 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ application_panic (_tmp18_);
+#line 152 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _application_unref0 (_tmp18_);
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_error_free0 (err);
+#line 1861 "Branch.c"
+ }
+ __finally51:
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (ui_file);
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ actions = (g_free (actions), NULL);
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (group);
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_clear_error (&_inner_error_);
+#line 147 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return;
+#line 1878 "Branch.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp19_ = self->priv->ui;
+#line 154 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp20_ = gtk_ui_manager_get_widget (_tmp19_, "/SidebarTagContextMenu");
+#line 154 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp21_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, gtk_menu_get_type (), GtkMenu));
+#line 154 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (self->priv->context_menu);
+#line 154 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv->context_menu = _tmp21_;
+#line 156 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp22_ = self->priv->ui;
+#line 156 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gtk_ui_manager_ensure_update (_tmp22_);
+#line 135 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (ui_file);
+#line 135 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ actions = (g_free (actions), NULL);
+#line 135 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (group);
+#line 1900 "Branch.c"
+}
+
+
+static gboolean tags_header_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media) {
+ TagsHeader * self;
+ gboolean result = FALSE;
+ AddTagsDialog* dialog = NULL;
+ AddTagsDialog* _tmp0_ = NULL;
+ gchar** names = NULL;
+ AddTagsDialog* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gchar** _tmp3_ = NULL;
+ gint names_length1 = 0;
+ gint _names_size_ = 0;
+ gboolean _tmp4_ = FALSE;
+ gchar** _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ CommandManager* _tmp7_ = NULL;
+ CommandManager* _tmp8_ = NULL;
+ gchar** _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GeeList* _tmp10_ = NULL;
+ AddTagsCommand* _tmp11_ = NULL;
+ AddTagsCommand* _tmp12_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_HEADER, TagsHeader);
+#line 159 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (GEE_IS_LIST (media), FALSE);
+#line 160 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = add_tags_dialog_new ();
+#line 160 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ dialog = _tmp0_;
+#line 161 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = dialog;
+#line 161 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = add_tags_dialog_execute (_tmp1_, &_tmp2_);
+#line 161 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ names = _tmp3_;
+#line 161 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ names_length1 = _tmp2_;
+#line 161 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _names_size_ = names_length1;
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = names;
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5__length1 = names_length1;
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp5_ == NULL) {
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = TRUE;
+#line 1951 "Branch.c"
+ } else {
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = names;
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6__length1 = names_length1;
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = _tmp6__length1 == 0;
+#line 1961 "Branch.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp4_) {
+#line 163 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = FALSE;
+#line 163 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+#line 163 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 163 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 1973 "Branch.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = app_window_get_command_manager ();
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = names;
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9__length1 = names_length1;
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp10_ = media;
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp11_ = add_tags_command_new (_tmp9_, _tmp9__length1, G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp12_ = _tmp11_;
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ command_manager_execute (_tmp8_, G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_COMMAND, Command));
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp12_);
+#line 165 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _command_manager_unref0 (_tmp8_);
+#line 167 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 167 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+#line 167 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _text_entry_dialog_mediator_unref0 (dialog);
+#line 167 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2003 "Branch.c"
+}
+
+
+static gboolean tags_header_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data) {
+ TagsHeader * self;
+ gboolean result = FALSE;
+ GtkSelectionData* _tmp0_ = NULL;
+ GdkAtom _tmp1_ = 0U;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 170 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_HEADER, TagsHeader);
+#line 170 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (data != NULL, FALSE);
+#line 171 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = data;
+#line 171 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = gtk_selection_data_get_data_type (_tmp0_);
+#line 171 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = gdk_atom_name (_tmp1_);
+#line 171 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 171 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = g_strcmp0 (_tmp3_, LIBRARY_WINDOW_TAG_PATH_MIME_TYPE) == 0;
+#line 171 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp3_);
+#line 171 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp4_) {
+#line 2033 "Branch.c"
+ gchar* old_tag_path = NULL;
+ GtkSelectionData* _tmp5_ = NULL;
+ guchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ TagSourceCollection* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ const gchar* _tmp11_ = NULL;
+ GeeList* _tmp12_ = NULL;
+ GeeList* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gboolean _tmp16_ = FALSE;
+ CommandManager* _tmp17_ = NULL;
+ CommandManager* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ Tag* _tmp20_ = NULL;
+ Tag* _tmp21_ = NULL;
+ ReparentTagCommand* _tmp22_ = NULL;
+ ReparentTagCommand* _tmp23_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = data;
+#line 172 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = gtk_selection_data_get_data (_tmp5_);
+#line 172 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = g_strdup ((const gchar*) _tmp6_);
+#line 172 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ old_tag_path = _tmp7_;
+#line 173 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = tag_global;
+#line 173 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = old_tag_path;
+#line 173 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp10_ = tag_source_collection_exists (_tmp8_, _tmp9_, FALSE);
+#line 173 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _vala_assert (_tmp10_, "Tag.global.exists(old_tag_path)");
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp11_ = old_tag_path;
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp12_ = hierarchical_tag_utilities_enumerate_path_components (_tmp11_);
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp13_ = _tmp12_;
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp14_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp15_ = _tmp14_;
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp16_ = _tmp15_ < 2;
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp13_);
+#line 176 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp16_) {
+#line 177 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 177 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (old_tag_path);
+#line 177 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2092 "Branch.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp17_ = app_window_get_command_manager ();
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp18_ = _tmp17_;
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp19_ = old_tag_path;
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp20_ = tag_for_path (_tmp19_);
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp21_ = _tmp20_;
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp22_ = reparent_tag_command_new (_tmp21_, "/");
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp23_ = _tmp22_;
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ command_manager_execute (_tmp18_, G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, TYPE_COMMAND, Command));
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp23_);
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp21_);
+#line 179 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _command_manager_unref0 (_tmp18_);
+#line 182 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 182 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (old_tag_path);
+#line 182 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2122 "Branch.c"
+ }
+#line 185 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = FALSE;
+#line 185 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2128 "Branch.c"
+}
+
+
+static void tags_header_real_prepare_selection_data (SidebarInternalDragSourceEntry* base, GtkSelectionData* data) {
+ TagsHeader * self;
+#line 188 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_HEADER, TagsHeader);
+#line 188 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (data != NULL);
+#line 2138 "Branch.c"
+}
+
+
+static GtkMenu* tags_header_real_get_sidebar_context_menu (SidebarContextable* base, GdkEventButton* event) {
+ TagsHeader * self;
+ GtkMenu* result = NULL;
+ GtkMenu* _tmp0_ = NULL;
+ GtkMenu* _tmp1_ = NULL;
+#line 192 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_HEADER, TagsHeader);
+#line 193 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = self->priv->context_menu;
+#line 193 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 193 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = _tmp1_;
+#line 193 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2157 "Branch.c"
+}
+
+
+static void tags_header_on_new_tag (TagsHeader* self) {
+ NewRootTagCommand* creation_command = NULL;
+ NewRootTagCommand* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+ CommandManager* _tmp2_ = NULL;
+ LibraryWindow* _tmp3_ = NULL;
+ LibraryWindow* _tmp4_ = NULL;
+ Tag* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+#line 196 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (TAGS_IS_HEADER (self));
+#line 197 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = new_root_tag_command_new ();
+#line 197 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ creation_command = _tmp0_;
+#line 198 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = app_window_get_command_manager ();
+#line 198 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = _tmp1_;
+#line 198 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ command_manager_execute (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (creation_command, TYPE_COMMAND, Command));
+#line 198 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _command_manager_unref0 (_tmp2_);
+#line 199 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = library_window_get_app ();
+#line 199 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 199 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = new_root_tag_command_get_created_tag (creation_command);
+#line 199 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 199 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ library_window_rename_tag_in_sidebar (_tmp4_, _tmp6_);
+#line 199 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp6_);
+#line 199 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp4_);
+#line 196 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (creation_command);
+#line 2200 "Branch.c"
+}
+
+
+static void tags_header_class_init (TagsHeaderClass * klass) {
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_header_parent_class = g_type_class_peek_parent (klass);
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_type_class_add_private (klass, sizeof (TagsHeaderPrivate));
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = tags_header_finalize;
+#line 2211 "Branch.c"
+}
+
+
+static void tags_header_sidebar_internal_drop_target_entry_interface_init (SidebarInternalDropTargetEntryIface * iface) {
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_header_sidebar_internal_drop_target_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->internal_drop_received = (gboolean (*)(SidebarInternalDropTargetEntry*, GeeList*)) tags_header_real_internal_drop_received;
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->internal_drop_received_arbitrary = (gboolean (*)(SidebarInternalDropTargetEntry*, GtkSelectionData*)) tags_header_real_internal_drop_received_arbitrary;
+#line 2222 "Branch.c"
+}
+
+
+static void tags_header_sidebar_internal_drag_source_entry_interface_init (SidebarInternalDragSourceEntryIface * iface) {
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_header_sidebar_internal_drag_source_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->prepare_selection_data = (void (*)(SidebarInternalDragSourceEntry*, GtkSelectionData*)) tags_header_real_prepare_selection_data;
+#line 2231 "Branch.c"
+}
+
+
+static void tags_header_sidebar_contextable_interface_init (SidebarContextableIface * iface) {
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_header_sidebar_contextable_parent_iface = g_type_interface_peek_parent (iface);
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->get_sidebar_context_menu = (GtkMenu* (*)(SidebarContextable*, GdkEventButton*)) tags_header_real_get_sidebar_context_menu;
+#line 2240 "Branch.c"
+}
+
+
+static void tags_header_instance_init (TagsHeader * self) {
+ GtkUIManager* _tmp0_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv = TAGS_HEADER_GET_PRIVATE (self);
+#line 127 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = gtk_ui_manager_new ();
+#line 127 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv->ui = _tmp0_;
+#line 128 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv->context_menu = NULL;
+#line 2254 "Branch.c"
+}
+
+
+static void tags_header_finalize (GObject* obj) {
+ TagsHeader * self;
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TAGS_TYPE_HEADER, TagsHeader);
+#line 127 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (self->priv->ui);
+#line 128 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (self->priv->context_menu);
+#line 125 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ G_OBJECT_CLASS (tags_header_parent_class)->finalize (obj);
+#line 2268 "Branch.c"
+}
+
+
+GType tags_header_get_type (void) {
+ static volatile gsize tags_header_type_id__volatile = 0;
+ if (g_once_init_enter (&tags_header_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagsHeaderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tags_header_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagsHeader), 0, (GInstanceInitFunc) tags_header_instance_init, NULL };
+ static const GInterfaceInfo sidebar_internal_drop_target_entry_info = { (GInterfaceInitFunc) tags_header_sidebar_internal_drop_target_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_internal_drag_source_entry_info = { (GInterfaceInitFunc) tags_header_sidebar_internal_drag_source_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_contextable_info = { (GInterfaceInitFunc) tags_header_sidebar_contextable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType tags_header_type_id;
+ tags_header_type_id = g_type_register_static (SIDEBAR_TYPE_HEADER, "TagsHeader", &g_define_type_info, 0);
+ g_type_add_interface_static (tags_header_type_id, SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, &sidebar_internal_drop_target_entry_info);
+ g_type_add_interface_static (tags_header_type_id, SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, &sidebar_internal_drag_source_entry_info);
+ g_type_add_interface_static (tags_header_type_id, SIDEBAR_TYPE_CONTEXTABLE, &sidebar_contextable_info);
+ g_once_init_leave (&tags_header_type_id__volatile, tags_header_type_id);
+ }
+ return tags_header_type_id__volatile;
+}
+
+
+TagsSidebarEntry* tags_sidebar_entry_construct (GType object_type, Tag* tag) {
+ TagsSidebarEntry * self = NULL;
+ Tag* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 210 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = (TagsSidebarEntry*) sidebar_simple_page_entry_construct (object_type);
+#line 211 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = tag;
+#line 211 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 211 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (self->priv->tag);
+#line 211 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv->tag = _tmp1_;
+#line 210 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return self;
+#line 2308 "Branch.c"
+}
+
+
+TagsSidebarEntry* tags_sidebar_entry_new (Tag* tag) {
+#line 210 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return tags_sidebar_entry_construct (TAGS_TYPE_SIDEBAR_ENTRY, tag);
+#line 2315 "Branch.c"
+}
+
+
+void tags_sidebar_entry_init (void) {
+}
+
+
+void tags_sidebar_entry_terminate (void) {
+}
+
+
+Tag* tags_sidebar_entry_for_tag (TagsSidebarEntry* self) {
+ Tag* result = NULL;
+ Tag* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (TAGS_IS_SIDEBAR_ENTRY (self), NULL);
+#line 221 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = self->priv->tag;
+#line 221 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 221 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = _tmp1_;
+#line 221 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2341 "Branch.c"
+}
+
+
+static gchar* tags_sidebar_entry_real_get_sidebar_name (SidebarSimplePageEntry* base) {
+ TagsSidebarEntry * self;
+ gchar* result = NULL;
+ Tag* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 224 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 225 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = self->priv->tag;
+#line 225 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = tag_get_user_visible_name (_tmp0_);
+#line 225 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = _tmp1_;
+#line 225 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2360 "Branch.c"
+}
+
+
+static gchar* tags_sidebar_entry_real_get_sidebar_icon (SidebarSimplePageEntry* base) {
+ TagsSidebarEntry * self;
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 229 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = self->priv->single_tag_icon;
+#line 229 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 229 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = _tmp1_;
+#line 229 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2379 "Branch.c"
+}
+
+
+static Page* tags_sidebar_entry_real_create_page (SidebarSimplePageEntry* base) {
+ TagsSidebarEntry * self;
+ Page* result = NULL;
+ Tag* _tmp0_ = NULL;
+ TagPage* _tmp1_ = NULL;
+#line 232 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 233 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = self->priv->tag;
+#line 233 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = tag_page_new (_tmp0_);
+#line 233 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_object_ref_sink (_tmp1_);
+#line 233 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_PAGE, Page);
+#line 233 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2400 "Branch.c"
+}
+
+
+static gboolean tags_sidebar_entry_real_is_user_renameable (SidebarRenameableEntry* base) {
+ TagsSidebarEntry * self;
+ gboolean result = FALSE;
+#line 236 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 237 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 237 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2413 "Branch.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 2426 "Branch.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 2457 "Branch.c"
+ goto __catch52_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 2466 "Branch.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 2482 "Branch.c"
+ goto __catch52_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 2493 "Branch.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2507 "Branch.c"
+ }
+ goto __finally52;
+ __catch52_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 2521 "Branch.c"
+ }
+ __finally52:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 2532 "Branch.c"
+ }
+}
+
+
+static void tags_sidebar_entry_real_rename (SidebarRenameableEntry* base, const gchar* new_name) {
+ TagsSidebarEntry * self;
+ gchar* prepped = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ const gchar* _tmp10_ = NULL;
+ CommandManager* _tmp11_ = NULL;
+ CommandManager* _tmp12_ = NULL;
+ Tag* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ RenameTagCommand* _tmp15_ = NULL;
+ RenameTagCommand* _tmp16_ = NULL;
+#line 240 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 240 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (new_name != NULL);
+#line 241 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = new_name;
+#line 241 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = tag_prep_tag_name (_tmp0_);
+#line 241 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ prepped = _tmp1_;
+#line 242 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = prepped;
+#line 242 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp2_ == NULL) {
+#line 243 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (prepped);
+#line 243 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return;
+#line 2575 "Branch.c"
+ }
+#line 245 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = prepped;
+#line 245 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = string_replace (_tmp3_, "/", "");
+#line 245 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (prepped);
+#line 245 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ prepped = _tmp4_;
+#line 247 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = prepped;
+#line 247 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = self->priv->tag;
+#line 247 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = tag_get_user_visible_name (_tmp6_);
+#line 247 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 247 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = g_strcmp0 (_tmp5_, _tmp8_) == 0;
+#line 247 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp8_);
+#line 247 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp9_) {
+#line 248 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (prepped);
+#line 248 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return;
+#line 2603 "Branch.c"
+ }
+#line 250 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp10_ = prepped;
+#line 250 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (g_strcmp0 (_tmp10_, "") == 0) {
+#line 251 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (prepped);
+#line 251 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return;
+#line 2613 "Branch.c"
+ }
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp11_ = app_window_get_command_manager ();
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp12_ = _tmp11_;
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp13_ = self->priv->tag;
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp14_ = prepped;
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp15_ = rename_tag_command_new (_tmp13_, _tmp14_);
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp16_ = _tmp15_;
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ command_manager_execute (_tmp12_, G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, TYPE_COMMAND, Command));
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp16_);
+#line 253 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _command_manager_unref0 (_tmp12_);
+#line 240 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (prepped);
+#line 2635 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_real_destroy_source (SidebarDestroyableEntry* base) {
+ TagsSidebarEntry * self;
+ Tag* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 256 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 257 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = self->priv->tag;
+#line 257 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = dialogs_confirm_delete_tag (_tmp0_);
+#line 257 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp1_) {
+#line 2651 "Branch.c"
+ CommandManager* _tmp2_ = NULL;
+ CommandManager* _tmp3_ = NULL;
+ Tag* _tmp4_ = NULL;
+ DeleteTagCommand* _tmp5_ = NULL;
+ DeleteTagCommand* _tmp6_ = NULL;
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = app_window_get_command_manager ();
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = self->priv->tag;
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = delete_tag_command_new (_tmp4_);
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ command_manager_execute (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_COMMAND, Command));
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp6_);
+#line 258 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _command_manager_unref0 (_tmp3_);
+#line 2673 "Branch.c"
+ }
+}
+
+
+static gboolean tags_sidebar_entry_real_internal_drop_received (SidebarInternalDropTargetEntry* base, GeeList* media) {
+ TagsSidebarEntry * self;
+ gboolean result = FALSE;
+ CommandManager* _tmp0_ = NULL;
+ CommandManager* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ TagUntagPhotosCommand* _tmp7_ = NULL;
+ TagUntagPhotosCommand* _tmp8_ = NULL;
+#line 261 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 261 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (GEE_IS_LIST (media), FALSE);
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = app_window_get_command_manager ();
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = _tmp0_;
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = self->priv->tag;
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = media;
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = media;
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = tag_untag_photos_command_new (_tmp2_, G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection), _tmp6_, TRUE);
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = _tmp7_;
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ command_manager_execute (_tmp1_, G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_COMMAND, Command));
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp8_);
+#line 262 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _command_manager_unref0 (_tmp1_);
+#line 265 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 265 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2722 "Branch.c"
+}
+
+
+static gboolean tags_sidebar_entry_real_internal_drop_received_arbitrary (SidebarInternalDropTargetEntry* base, GtkSelectionData* data) {
+ TagsSidebarEntry * self;
+ gboolean result = FALSE;
+ GtkSelectionData* _tmp0_ = NULL;
+ GdkAtom _tmp1_ = 0U;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 268 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 268 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_val_if_fail (data != NULL, FALSE);
+#line 269 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = data;
+#line 269 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = gtk_selection_data_get_data_type (_tmp0_);
+#line 269 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = gdk_atom_name (_tmp1_);
+#line 269 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = _tmp2_;
+#line 269 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = g_strcmp0 (_tmp3_, LIBRARY_WINDOW_TAG_PATH_MIME_TYPE) == 0;
+#line 269 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp3_);
+#line 269 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp4_) {
+#line 2752 "Branch.c"
+ gchar* old_tag_path = NULL;
+ GtkSelectionData* _tmp5_ = NULL;
+ guchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ Tag* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gboolean _tmp12_ = FALSE;
+ TagSourceCollection* _tmp29_ = NULL;
+ const gchar* _tmp30_ = NULL;
+ gboolean _tmp31_ = FALSE;
+ Tag* old_tag = NULL;
+ const gchar* _tmp32_ = NULL;
+ Tag* _tmp33_ = NULL;
+ Tag* old_tag_parent = NULL;
+ Tag* _tmp34_ = NULL;
+ Tag* _tmp35_ = NULL;
+ gboolean _tmp36_ = FALSE;
+ Tag* _tmp37_ = NULL;
+ CommandManager* _tmp44_ = NULL;
+ CommandManager* _tmp45_ = NULL;
+ Tag* _tmp46_ = NULL;
+ Tag* _tmp47_ = NULL;
+ gchar* _tmp48_ = NULL;
+ gchar* _tmp49_ = NULL;
+ ReparentTagCommand* _tmp50_ = NULL;
+ ReparentTagCommand* _tmp51_ = NULL;
+#line 270 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = data;
+#line 270 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = gtk_selection_data_get_data (_tmp5_);
+#line 270 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp7_ = g_strdup ((const gchar*) _tmp6_);
+#line 270 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ old_tag_path = _tmp7_;
+#line 273 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp8_ = old_tag_path;
+#line 273 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp9_ = self->priv->tag;
+#line 273 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp10_ = tag_get_path (_tmp9_);
+#line 273 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp11_ = _tmp10_;
+#line 273 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp12_ = g_strcmp0 (_tmp8_, _tmp11_) == 0;
+#line 273 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp11_);
+#line 273 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp12_) {
+#line 274 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 274 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (old_tag_path);
+#line 274 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2809 "Branch.c"
+ }
+ {
+ GeeList* _parent_path_list = NULL;
+ Tag* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _parent_path_size = 0;
+ GeeList* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gint _tmp20_ = 0;
+ gint _parent_path_index = 0;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp13_ = self->priv->tag;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp14_ = tag_get_path (_tmp13_);
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp15_ = _tmp14_;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp16_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp15_);
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp17_ = _tmp16_;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp15_);
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _parent_path_list = _tmp17_;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp18_ = _parent_path_list;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp19_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp20_ = _tmp19_;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _parent_path_size = _tmp20_;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _parent_path_index = -1;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ while (TRUE) {
+#line 2849 "Branch.c"
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ gint _tmp23_ = 0;
+ gchar* parent_path = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gpointer _tmp26_ = NULL;
+ const gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp21_ = _parent_path_index;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _parent_path_index = _tmp21_ + 1;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp22_ = _parent_path_index;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp23_ = _parent_path_size;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (!(_tmp22_ < _tmp23_)) {
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ break;
+#line 2871 "Branch.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp24_ = _parent_path_list;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp25_ = _parent_path_index;
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp26_ = gee_list_get (_tmp24_, _tmp25_);
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ parent_path = (gchar*) _tmp26_;
+#line 278 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp27_ = parent_path;
+#line 278 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp28_ = old_tag_path;
+#line 278 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (g_strcmp0 (_tmp27_, _tmp28_) == 0) {
+#line 279 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 279 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (parent_path);
+#line 279 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_parent_path_list);
+#line 279 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (old_tag_path);
+#line 279 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2897 "Branch.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (parent_path);
+#line 2901 "Branch.c"
+ }
+#line 277 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_parent_path_list);
+#line 2905 "Branch.c"
+ }
+#line 282 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp29_ = tag_global;
+#line 282 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp30_ = old_tag_path;
+#line 282 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp31_ = tag_source_collection_exists (_tmp29_, _tmp30_, FALSE);
+#line 282 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _vala_assert (_tmp31_, "Tag.global.exists(old_tag_path)");
+#line 285 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp32_ = old_tag_path;
+#line 285 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp33_ = tag_for_path (_tmp32_);
+#line 285 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ old_tag = _tmp33_;
+#line 286 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp34_ = old_tag;
+#line 286 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp35_ = tag_get_hierarchical_parent (_tmp34_);
+#line 286 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ old_tag_parent = _tmp35_;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp37_ = old_tag_parent;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp37_ != NULL) {
+#line 2931 "Branch.c"
+ Tag* _tmp38_ = NULL;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ Tag* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ gchar* _tmp43_ = NULL;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp38_ = old_tag_parent;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp39_ = tag_get_path (_tmp38_);
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp40_ = _tmp39_;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp41_ = self->priv->tag;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp42_ = tag_get_path (_tmp41_);
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp43_ = _tmp42_;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp36_ = g_strcmp0 (_tmp40_, _tmp43_) == 0;
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp43_);
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp40_);
+#line 2956 "Branch.c"
+ } else {
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp36_ = FALSE;
+#line 2960 "Branch.c"
+ }
+#line 287 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ if (_tmp36_) {
+#line 288 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 288 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (old_tag_parent);
+#line 288 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (old_tag);
+#line 288 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (old_tag_path);
+#line 288 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 2974 "Branch.c"
+ }
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp44_ = app_window_get_command_manager ();
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp45_ = _tmp44_;
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp46_ = old_tag;
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp47_ = self->priv->tag;
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp48_ = tag_get_path (_tmp47_);
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp49_ = _tmp48_;
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp50_ = reparent_tag_command_new (_tmp46_, _tmp49_);
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp51_ = _tmp50_;
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ command_manager_execute (_tmp45_, G_TYPE_CHECK_INSTANCE_CAST (_tmp51_, TYPE_COMMAND, Command));
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (_tmp51_);
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp49_);
+#line 290 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _command_manager_unref0 (_tmp45_);
+#line 293 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = TRUE;
+#line 293 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (old_tag_parent);
+#line 293 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (old_tag);
+#line 293 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (old_tag_path);
+#line 293 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 3010 "Branch.c"
+ }
+#line 296 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = FALSE;
+#line 296 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 3016 "Branch.c"
+}
+
+
+static gboolean tags_sidebar_entry_real_expand_on_select (SidebarExpandableEntry* base) {
+ TagsSidebarEntry * self;
+ gboolean result = FALSE;
+#line 299 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 300 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ result = FALSE;
+#line 300 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ return result;
+#line 3029 "Branch.c"
+}
+
+
+static guint8* string_get_data (const gchar* self, int* result_length1) {
+ guint8* result;
+ guint8* res = NULL;
+ gint res_length1 = 0;
+ gint _res_size_ = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ guint8* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ guint8* _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 1398 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1399 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res = (guint8*) self;
+#line 1399 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res_length1 = -1;
+#line 1399 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _res_size_ = res_length1;
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res_length1 = (gint) _tmp1_;
+#line 1400 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = res_length1;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = res;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = res_length1;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4__length1 = _tmp3__length1;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (result_length1) {
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result_length1 = _tmp4__length1;
+#line 3073 "Branch.c"
+ }
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1401 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 3079 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_real_prepare_selection_data (SidebarInternalDragSourceEntry* base, GtkSelectionData* data) {
+ TagsSidebarEntry * self;
+ GtkSelectionData* _tmp0_ = NULL;
+ GdkAtom _tmp1_ = 0U;
+ Tag* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ guint8* _tmp5_ = NULL;
+ gint _tmp5__length1 = 0;
+ guint8* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 303 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 303 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_return_if_fail (data != NULL);
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = data;
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp1_ = gdk_atom_intern_static_string (LIBRARY_WINDOW_TAG_PATH_MIME_TYPE);
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp2_ = self->priv->tag;
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp3_ = tag_get_path (_tmp2_);
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp4_ = _tmp3_;
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp5_ = string_get_data (_tmp4_, &_tmp5__length1);
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6_ = _tmp5_;
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp6__length1 = _tmp5__length1;
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ gtk_selection_data_set (_tmp0_, _tmp1_, 0, _tmp6_, _tmp6__length1);
+#line 304 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (_tmp4_);
+#line 3118 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_class_init (TagsSidebarEntryClass * klass) {
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_sidebar_entry_parent_class = g_type_class_peek_parent (klass);
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ g_type_class_add_private (klass, sizeof (TagsSidebarEntryPrivate));
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_name = tags_sidebar_entry_real_get_sidebar_name;
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->get_sidebar_icon = tags_sidebar_entry_real_get_sidebar_icon;
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ ((SidebarSimplePageEntryClass *) klass)->create_page = tags_sidebar_entry_real_create_page;
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ G_OBJECT_CLASS (klass)->finalize = tags_sidebar_entry_finalize;
+#line 3135 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_sidebar_renameable_entry_interface_init (SidebarRenameableEntryIface * iface) {
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_sidebar_entry_sidebar_renameable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->is_user_renameable = (gboolean (*)(SidebarRenameableEntry*)) tags_sidebar_entry_real_is_user_renameable;
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->rename = (void (*)(SidebarRenameableEntry*, const gchar*)) tags_sidebar_entry_real_rename;
+#line 3146 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_sidebar_destroyable_entry_interface_init (SidebarDestroyableEntryIface * iface) {
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_sidebar_entry_sidebar_destroyable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->destroy_source = (void (*)(SidebarDestroyableEntry*)) tags_sidebar_entry_real_destroy_source;
+#line 3155 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_sidebar_internal_drop_target_entry_interface_init (SidebarInternalDropTargetEntryIface * iface) {
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_sidebar_entry_sidebar_internal_drop_target_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->internal_drop_received = (gboolean (*)(SidebarInternalDropTargetEntry*, GeeList*)) tags_sidebar_entry_real_internal_drop_received;
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->internal_drop_received_arbitrary = (gboolean (*)(SidebarInternalDropTargetEntry*, GtkSelectionData*)) tags_sidebar_entry_real_internal_drop_received_arbitrary;
+#line 3166 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_sidebar_expandable_entry_interface_init (SidebarExpandableEntryIface * iface) {
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_sidebar_entry_sidebar_expandable_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->expand_on_select = (gboolean (*)(SidebarExpandableEntry*)) tags_sidebar_entry_real_expand_on_select;
+#line 3175 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_sidebar_internal_drag_source_entry_interface_init (SidebarInternalDragSourceEntryIface * iface) {
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ tags_sidebar_entry_sidebar_internal_drag_source_entry_parent_iface = g_type_interface_peek_parent (iface);
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ iface->prepare_selection_data = (void (*)(SidebarInternalDragSourceEntry*, GtkSelectionData*)) tags_sidebar_entry_real_prepare_selection_data;
+#line 3184 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_instance_init (TagsSidebarEntry * self) {
+ gchar* _tmp0_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv = TAGS_SIDEBAR_ENTRY_GET_PRIVATE (self);
+#line 206 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _tmp0_ = g_strdup (RESOURCES_ICON_ONE_TAG);
+#line 206 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self->priv->single_tag_icon = _tmp0_;
+#line 3196 "Branch.c"
+}
+
+
+static void tags_sidebar_entry_finalize (GObject* obj) {
+ TagsSidebarEntry * self;
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TAGS_TYPE_SIDEBAR_ENTRY, TagsSidebarEntry);
+#line 206 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_free0 (self->priv->single_tag_icon);
+#line 208 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ _g_object_unref0 (self->priv->tag);
+#line 203 "/home/jens/Source/shotwell/src/tags/Branch.vala"
+ G_OBJECT_CLASS (tags_sidebar_entry_parent_class)->finalize (obj);
+#line 3210 "Branch.c"
+}
+
+
+GType tags_sidebar_entry_get_type (void) {
+ static volatile gsize tags_sidebar_entry_type_id__volatile = 0;
+ if (g_once_init_enter (&tags_sidebar_entry_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagsSidebarEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tags_sidebar_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagsSidebarEntry), 0, (GInstanceInitFunc) tags_sidebar_entry_instance_init, NULL };
+ static const GInterfaceInfo sidebar_renameable_entry_info = { (GInterfaceInitFunc) tags_sidebar_entry_sidebar_renameable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_destroyable_entry_info = { (GInterfaceInitFunc) tags_sidebar_entry_sidebar_destroyable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_internal_drop_target_entry_info = { (GInterfaceInitFunc) tags_sidebar_entry_sidebar_internal_drop_target_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_expandable_entry_info = { (GInterfaceInitFunc) tags_sidebar_entry_sidebar_expandable_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ static const GInterfaceInfo sidebar_internal_drag_source_entry_info = { (GInterfaceInitFunc) tags_sidebar_entry_sidebar_internal_drag_source_entry_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+ GType tags_sidebar_entry_type_id;
+ tags_sidebar_entry_type_id = g_type_register_static (SIDEBAR_TYPE_SIMPLE_PAGE_ENTRY, "TagsSidebarEntry", &g_define_type_info, 0);
+ g_type_add_interface_static (tags_sidebar_entry_type_id, SIDEBAR_TYPE_RENAMEABLE_ENTRY, &sidebar_renameable_entry_info);
+ g_type_add_interface_static (tags_sidebar_entry_type_id, SIDEBAR_TYPE_DESTROYABLE_ENTRY, &sidebar_destroyable_entry_info);
+ g_type_add_interface_static (tags_sidebar_entry_type_id, SIDEBAR_TYPE_INTERNAL_DROP_TARGET_ENTRY, &sidebar_internal_drop_target_entry_info);
+ g_type_add_interface_static (tags_sidebar_entry_type_id, SIDEBAR_TYPE_EXPANDABLE_ENTRY, &sidebar_expandable_entry_info);
+ g_type_add_interface_static (tags_sidebar_entry_type_id, SIDEBAR_TYPE_INTERNAL_DRAG_SOURCE_ENTRY, &sidebar_internal_drag_source_entry_info);
+ g_once_init_leave (&tags_sidebar_entry_type_id__volatile, tags_sidebar_entry_type_id);
+ }
+ return tags_sidebar_entry_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/tags/HierarchicalTagIndex.c b/src/tags/HierarchicalTagIndex.c
new file mode 100644
index 0000000..d77738d
--- /dev/null
+++ b/src/tags/HierarchicalTagIndex.c
@@ -0,0 +1,1039 @@
+/* HierarchicalTagIndex.c generated by valac 0.32.1, the Vala compiler
+ * generated from HierarchicalTagIndex.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+typedef struct _HierarchicalTagIndexPrivate HierarchicalTagIndexPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+typedef struct _ParamSpecHierarchicalTagIndex ParamSpecHierarchicalTagIndex;
+
+struct _HierarchicalTagIndex {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ HierarchicalTagIndexPrivate * priv;
+};
+
+struct _HierarchicalTagIndexClass {
+ GTypeClass parent_class;
+ void (*finalize) (HierarchicalTagIndex *self);
+};
+
+struct _HierarchicalTagIndexPrivate {
+ GeeMap* tag_table;
+ GeeSortedSet* known_paths;
+};
+
+struct _ParamSpecHierarchicalTagIndex {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer hierarchical_tag_index_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+#define HIERARCHICAL_TAG_INDEX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexPrivate))
+enum {
+ HIERARCHICAL_TAG_INDEX_DUMMY_PROPERTY
+};
+HierarchicalTagIndex* hierarchical_tag_index_new (void);
+HierarchicalTagIndex* hierarchical_tag_index_construct (GType object_type);
+HierarchicalTagIndex* hierarchical_tag_index_from_paths (GeeCollection* client_paths);
+#define TAG_PATH_SEPARATOR_STRING "/"
+GeeList* hierarchical_tag_utilities_enumerate_path_components (const gchar* in_path);
+void hierarchical_tag_index_add_path (HierarchicalTagIndex* self, const gchar* tag, const gchar* path);
+HierarchicalTagIndex* hierarchical_tag_index_get_global_index (void);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+GeeCollection* tag_source_collection_get_all_names (TagSourceCollection* self);
+GeeCollection* hierarchical_tag_index_get_all_paths (HierarchicalTagIndex* self);
+gboolean hierarchical_tag_index_is_tag_in_index (HierarchicalTagIndex* self, const gchar* tag);
+GeeCollection* hierarchical_tag_index_get_all_tags (HierarchicalTagIndex* self);
+gboolean hierarchical_tag_index_is_path_known (HierarchicalTagIndex* self, const gchar* path);
+gchar* hierarchical_tag_index_get_path_for_name (HierarchicalTagIndex* self, const gchar* name);
+gchar** hierarchical_tag_index_get_paths_for_names_array (HierarchicalTagIndex* self, gchar** names, int names_length1, int* result_length1);
+static void _vala_array_add140 (gchar*** array, int* length, int* size, gchar* value);
+static void hierarchical_tag_index_finalize (HierarchicalTagIndex* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+HierarchicalTagIndex* hierarchical_tag_index_construct (GType object_type) {
+ HierarchicalTagIndex* self = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeTreeSet* _tmp1_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ self = (HierarchicalTagIndex*) g_type_create_instance (object_type);
+#line 12 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, GEE_TYPE_ARRAY_LIST, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 12 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (self->priv->tag_table);
+#line 12 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ self->priv->tag_table = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap);
+#line 13 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = gee_tree_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 13 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (self->priv->known_paths);
+#line 13 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ self->priv->known_paths = G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_SORTED_SET, GeeSortedSet);
+#line 11 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return self;
+#line 170 "HierarchicalTagIndex.c"
+}
+
+
+HierarchicalTagIndex* hierarchical_tag_index_new (void) {
+#line 11 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return hierarchical_tag_index_construct (TYPE_HIERARCHICAL_TAG_INDEX);
+#line 177 "HierarchicalTagIndex.c"
+}
+
+
+HierarchicalTagIndex* hierarchical_tag_index_from_paths (GeeCollection* client_paths) {
+ HierarchicalTagIndex* result = NULL;
+ GeeCollection* paths = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ HierarchicalTagIndex* _result_ = NULL;
+ HierarchicalTagIndex* _tmp3_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (client_paths), NULL);
+#line 17 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = client_paths;
+#line 17 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = gee_collection_get_read_only_view (_tmp0_);
+#line 17 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = _tmp1_;
+#line 17 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ paths = _tmp2_;
+#line 19 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp3_ = hierarchical_tag_index_new ();
+#line 19 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _result_ = _tmp3_;
+#line 203 "HierarchicalTagIndex.c"
+ {
+ GeeIterator* _path_it = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp4_ = paths;
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _path_it = _tmp5_;
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ while (TRUE) {
+#line 216 "HierarchicalTagIndex.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+ gboolean _tmp11_ = FALSE;
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp6_ = _path_it;
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (!_tmp7_) {
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ break;
+#line 232 "HierarchicalTagIndex.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp8_ = _path_it;
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ path = (gchar*) _tmp9_;
+#line 22 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp10_ = path;
+#line 22 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp11_ = g_str_has_prefix (_tmp10_, TAG_PATH_SEPARATOR_STRING);
+#line 22 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (_tmp11_) {
+#line 246 "HierarchicalTagIndex.c"
+ GeeCollection* components = NULL;
+ const gchar* _tmp12_ = NULL;
+ GeeList* _tmp13_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp12_ = path;
+#line 23 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp13_ = hierarchical_tag_utilities_enumerate_path_components (_tmp12_);
+#line 23 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ components = G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 256 "HierarchicalTagIndex.c"
+ {
+ GeeIterator* _component_it = NULL;
+ GeeCollection* _tmp14_ = NULL;
+ GeeIterator* _tmp15_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp14_ = components;
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp15_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _component_it = _tmp15_;
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ while (TRUE) {
+#line 269 "HierarchicalTagIndex.c"
+ GeeIterator* _tmp16_ = NULL;
+ gboolean _tmp17_ = FALSE;
+ gchar* component = NULL;
+ GeeIterator* _tmp18_ = NULL;
+ gpointer _tmp19_ = NULL;
+ HierarchicalTagIndex* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp16_ = _component_it;
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp17_ = gee_iterator_next (_tmp16_);
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (!_tmp17_) {
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ break;
+#line 286 "HierarchicalTagIndex.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp18_ = _component_it;
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp19_ = gee_iterator_get (_tmp18_);
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ component = (gchar*) _tmp19_;
+#line 27 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp20_ = _result_;
+#line 27 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp21_ = component;
+#line 27 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp22_ = path;
+#line 27 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ hierarchical_tag_index_add_path (_tmp20_, _tmp21_, _tmp22_);
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_free0 (component);
+#line 304 "HierarchicalTagIndex.c"
+ }
+#line 26 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (_component_it);
+#line 308 "HierarchicalTagIndex.c"
+ }
+#line 22 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (components);
+#line 312 "HierarchicalTagIndex.c"
+ } else {
+ HierarchicalTagIndex* _tmp23_ = NULL;
+ const gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+#line 29 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp23_ = _result_;
+#line 29 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp24_ = path;
+#line 29 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp25_ = path;
+#line 29 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ hierarchical_tag_index_add_path (_tmp23_, _tmp24_, _tmp25_);
+#line 325 "HierarchicalTagIndex.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_free0 (path);
+#line 329 "HierarchicalTagIndex.c"
+ }
+#line 21 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (_path_it);
+#line 333 "HierarchicalTagIndex.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = _result_;
+#line 33 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (paths);
+#line 33 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 341 "HierarchicalTagIndex.c"
+}
+
+
+HierarchicalTagIndex* hierarchical_tag_index_get_global_index (void) {
+ HierarchicalTagIndex* result = NULL;
+ TagSourceCollection* _tmp0_ = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeCollection* _tmp2_ = NULL;
+ HierarchicalTagIndex* _tmp3_ = NULL;
+ HierarchicalTagIndex* _tmp4_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = tag_global;
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = tag_source_collection_get_all_names (_tmp0_);
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = _tmp1_;
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp3_ = hierarchical_tag_index_from_paths (_tmp2_);
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp4_ = _tmp3_;
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (_tmp2_);
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = _tmp4_;
+#line 37 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 368 "HierarchicalTagIndex.c"
+}
+
+
+void hierarchical_tag_index_add_path (HierarchicalTagIndex* self, const gchar* tag, const gchar* path) {
+ GeeMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ GeeMap* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ GeeSortedSet* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+#line 40 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (IS_HIERARCHICAL_TAG_INDEX (self));
+#line 40 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (tag != NULL);
+#line 40 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (path != NULL);
+#line 41 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = self->priv->tag_table;
+#line 41 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = tag;
+#line 41 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
+#line 41 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (!_tmp2_) {
+#line 397 "HierarchicalTagIndex.c"
+ GeeMap* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ GeeArrayList* _tmp5_ = NULL;
+ GeeArrayList* _tmp6_ = NULL;
+#line 42 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp3_ = self->priv->tag_table;
+#line 42 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp4_ = tag;
+#line 42 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp5_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 42 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp6_ = _tmp5_;
+#line 42 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ gee_map_set (_tmp3_, _tmp4_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 42 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (_tmp6_);
+#line 414 "HierarchicalTagIndex.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp7_ = self->priv->tag_table;
+#line 45 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp8_ = tag;
+#line 45 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp9_ = gee_map_get (_tmp7_, _tmp8_);
+#line 45 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp10_ = (GeeCollection*) _tmp9_;
+#line 45 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp11_ = path;
+#line 45 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ gee_collection_add (_tmp10_, _tmp11_);
+#line 45 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (_tmp10_);
+#line 46 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp12_ = self->priv->known_paths;
+#line 46 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp13_ = path;
+#line 46 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_COLLECTION, GeeCollection), _tmp13_);
+#line 436 "HierarchicalTagIndex.c"
+}
+
+
+GeeCollection* hierarchical_tag_index_get_all_paths (HierarchicalTagIndex* self) {
+ GeeCollection* result = NULL;
+ GeeSortedSet* _tmp0_ = NULL;
+ GeeSortedSet* _tmp1_ = NULL;
+ GeeSortedSet* _tmp2_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (IS_HIERARCHICAL_TAG_INDEX (self), NULL);
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = self->priv->known_paths;
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = gee_sorted_set_get_read_only_view (_tmp0_);
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = _tmp1_;
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 457 "HierarchicalTagIndex.c"
+}
+
+
+gboolean hierarchical_tag_index_is_tag_in_index (HierarchicalTagIndex* self, const gchar* tag) {
+ gboolean result = FALSE;
+ GeeMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 53 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (IS_HIERARCHICAL_TAG_INDEX (self), FALSE);
+#line 53 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (tag != NULL, FALSE);
+#line 54 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = self->priv->tag_table;
+#line 54 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = tag;
+#line 54 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = gee_map_has_key (_tmp0_, _tmp1_);
+#line 54 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = _tmp2_;
+#line 54 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 480 "HierarchicalTagIndex.c"
+}
+
+
+GeeCollection* hierarchical_tag_index_get_all_tags (HierarchicalTagIndex* self) {
+ GeeCollection* result = NULL;
+ GeeMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 57 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (IS_HIERARCHICAL_TAG_INDEX (self), NULL);
+#line 58 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = self->priv->tag_table;
+#line 58 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = gee_map_get_keys (_tmp0_);
+#line 58 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = _tmp1_;
+#line 58 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 58 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 501 "HierarchicalTagIndex.c"
+}
+
+
+gboolean hierarchical_tag_index_is_path_known (HierarchicalTagIndex* self, const gchar* path) {
+ gboolean result = FALSE;
+ GeeSortedSet* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 61 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (IS_HIERARCHICAL_TAG_INDEX (self), FALSE);
+#line 61 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (path != NULL, FALSE);
+#line 62 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = self->priv->known_paths;
+#line 62 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = path;
+#line 62 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_COLLECTION, GeeCollection), _tmp1_);
+#line 62 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = _tmp2_;
+#line 62 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 524 "HierarchicalTagIndex.c"
+}
+
+
+gchar* hierarchical_tag_index_get_path_for_name (HierarchicalTagIndex* self, const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ GeeCollection* paths = NULL;
+ GeeMap* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (IS_HIERARCHICAL_TAG_INDEX (self), NULL);
+#line 65 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 66 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = name;
+#line 66 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = hierarchical_tag_index_is_tag_in_index (self, _tmp0_);
+#line 66 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (!_tmp1_) {
+#line 546 "HierarchicalTagIndex.c"
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 67 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = name;
+#line 67 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 67 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = _tmp3_;
+#line 67 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 557 "HierarchicalTagIndex.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp4_ = self->priv->tag_table;
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp5_ = name;
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp6_ = gee_map_get (_tmp4_, _tmp5_);
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ paths = (GeeCollection*) _tmp6_;
+#line 567 "HierarchicalTagIndex.c"
+ {
+ GeeIterator* _path_it = NULL;
+ GeeCollection* _tmp7_ = NULL;
+ GeeIterator* _tmp8_ = NULL;
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp7_ = paths;
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp8_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _path_it = _tmp8_;
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ while (TRUE) {
+#line 580 "HierarchicalTagIndex.c"
+ GeeIterator* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gchar* path = NULL;
+ GeeIterator* _tmp11_ = NULL;
+ gpointer _tmp12_ = NULL;
+ GeeList* components = NULL;
+ const gchar* _tmp13_ = NULL;
+ GeeList* _tmp14_ = NULL;
+ GeeList* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ gpointer _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp9_ = _path_it;
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp10_ = gee_iterator_next (_tmp9_);
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (!_tmp10_) {
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ break;
+#line 605 "HierarchicalTagIndex.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp11_ = _path_it;
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp12_ = gee_iterator_get (_tmp11_);
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ path = (gchar*) _tmp12_;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp13_ = path;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp14_ = hierarchical_tag_utilities_enumerate_path_components (_tmp13_);
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ components = _tmp14_;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp15_ = components;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp16_ = components;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp17_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp18_ = _tmp17_;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp19_ = gee_list_get (_tmp15_, _tmp18_ - 1);
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp20_ = (gchar*) _tmp19_;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp21_ = name;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp22_ = g_strcmp0 (_tmp20_, _tmp21_) == 0;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_free0 (_tmp20_);
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (_tmp22_) {
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = path;
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (components);
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (_path_it);
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (paths);
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 649 "HierarchicalTagIndex.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (components);
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_free0 (path);
+#line 655 "HierarchicalTagIndex.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (_path_it);
+#line 659 "HierarchicalTagIndex.c"
+ }
+#line 77 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_assert_not_reached ();
+#line 65 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (paths);
+#line 665 "HierarchicalTagIndex.c"
+}
+
+
+static void _vala_array_add140 (gchar*** array, int* length, int* size, gchar* value) {
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if ((*length) == (*size)) {
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ *array = g_renew (gchar*, *array, (*size) + 1);
+#line 676 "HierarchicalTagIndex.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ (*array)[(*length)++] = value;
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ (*array)[*length] = NULL;
+#line 682 "HierarchicalTagIndex.c"
+}
+
+
+gchar** hierarchical_tag_index_get_paths_for_names_array (HierarchicalTagIndex* self, gchar** names, int names_length1, int* result_length1) {
+ gchar** result = NULL;
+ gchar** _result_ = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _result__length1 = 0;
+ gint __result__size_ = 0;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 80 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (IS_HIERARCHICAL_TAG_INDEX (self), NULL);
+#line 81 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp0_ = g_new0 (gchar*, 0 + 1);
+#line 81 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _result_ = _tmp0_;
+#line 81 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _result__length1 = 0;
+#line 81 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ __result__size_ = _result__length1;
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1_ = names;
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp1__length1 = names_length1;
+#line 710 "HierarchicalTagIndex.c"
+ {
+ gchar** name_collection = NULL;
+ gint name_collection_length1 = 0;
+ gint _name_collection_size_ = 0;
+ gint name_it = 0;
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ name_collection = _tmp1_;
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ name_collection_length1 = _tmp1__length1;
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ for (name_it = 0; name_it < _tmp1__length1; name_it = name_it + 1) {
+#line 722 "HierarchicalTagIndex.c"
+ gchar* _tmp2_ = NULL;
+ gchar* name = NULL;
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp2_ = g_strdup (name_collection[name_it]);
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ name = _tmp2_;
+#line 729 "HierarchicalTagIndex.c"
+ {
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp3_ = _result_;
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp3__length1 = _result__length1;
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp4_ = name;
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp5_ = hierarchical_tag_index_get_path_for_name (self, _tmp4_);
+#line 84 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _vala_array_add140 (&_result_, &_result__length1, &__result__size_, _tmp5_);
+#line 83 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_free0 (name);
+#line 747 "HierarchicalTagIndex.c"
+ }
+ }
+ }
+#line 86 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp6_ = _result_;
+#line 86 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _tmp6__length1 = _result__length1;
+#line 86 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (result_length1) {
+#line 86 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ *result_length1 = _tmp6__length1;
+#line 759 "HierarchicalTagIndex.c"
+ }
+#line 86 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ result = _tmp6_;
+#line 86 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return result;
+#line 765 "HierarchicalTagIndex.c"
+}
+
+
+static void value_hierarchical_tag_index_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ value->data[0].v_pointer = NULL;
+#line 772 "HierarchicalTagIndex.c"
+}
+
+
+static void value_hierarchical_tag_index_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ hierarchical_tag_index_unref (value->data[0].v_pointer);
+#line 781 "HierarchicalTagIndex.c"
+ }
+}
+
+
+static void value_hierarchical_tag_index_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ dest_value->data[0].v_pointer = hierarchical_tag_index_ref (src_value->data[0].v_pointer);
+#line 791 "HierarchicalTagIndex.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 795 "HierarchicalTagIndex.c"
+ }
+}
+
+
+static gpointer value_hierarchical_tag_index_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return value->data[0].v_pointer;
+#line 803 "HierarchicalTagIndex.c"
+}
+
+
+static gchar* value_hierarchical_tag_index_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (collect_values[0].v_pointer) {
+#line 810 "HierarchicalTagIndex.c"
+ HierarchicalTagIndex* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 817 "HierarchicalTagIndex.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 821 "HierarchicalTagIndex.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ value->data[0].v_pointer = hierarchical_tag_index_ref (object);
+#line 825 "HierarchicalTagIndex.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ value->data[0].v_pointer = NULL;
+#line 829 "HierarchicalTagIndex.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return NULL;
+#line 833 "HierarchicalTagIndex.c"
+}
+
+
+static gchar* value_hierarchical_tag_index_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ HierarchicalTagIndex** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 844 "HierarchicalTagIndex.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ *object_p = NULL;
+#line 850 "HierarchicalTagIndex.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ *object_p = value->data[0].v_pointer;
+#line 854 "HierarchicalTagIndex.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ *object_p = hierarchical_tag_index_ref (value->data[0].v_pointer);
+#line 858 "HierarchicalTagIndex.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return NULL;
+#line 862 "HierarchicalTagIndex.c"
+}
+
+
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecHierarchicalTagIndex* spec;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_HIERARCHICAL_TAG_INDEX), NULL);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return G_PARAM_SPEC (spec);
+#line 876 "HierarchicalTagIndex.c"
+}
+
+
+gpointer value_get_hierarchical_tag_index (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_TAG_INDEX), NULL);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return value->data[0].v_pointer;
+#line 885 "HierarchicalTagIndex.c"
+}
+
+
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object) {
+ HierarchicalTagIndex* old;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_TAG_INDEX));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HIERARCHICAL_TAG_INDEX));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ hierarchical_tag_index_ref (value->data[0].v_pointer);
+#line 905 "HierarchicalTagIndex.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ value->data[0].v_pointer = NULL;
+#line 909 "HierarchicalTagIndex.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ hierarchical_tag_index_unref (old);
+#line 915 "HierarchicalTagIndex.c"
+ }
+}
+
+
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object) {
+ HierarchicalTagIndex* old;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_TAG_INDEX));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HIERARCHICAL_TAG_INDEX));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ value->data[0].v_pointer = v_object;
+#line 934 "HierarchicalTagIndex.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ value->data[0].v_pointer = NULL;
+#line 938 "HierarchicalTagIndex.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ hierarchical_tag_index_unref (old);
+#line 944 "HierarchicalTagIndex.c"
+ }
+}
+
+
+static void hierarchical_tag_index_class_init (HierarchicalTagIndexClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ hierarchical_tag_index_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ ((HierarchicalTagIndexClass *) klass)->finalize = hierarchical_tag_index_finalize;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_type_class_add_private (klass, sizeof (HierarchicalTagIndexPrivate));
+#line 956 "HierarchicalTagIndex.c"
+}
+
+
+static void hierarchical_tag_index_instance_init (HierarchicalTagIndex * self) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ self->priv = HIERARCHICAL_TAG_INDEX_GET_PRIVATE (self);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ self->ref_count = 1;
+#line 965 "HierarchicalTagIndex.c"
+}
+
+
+static void hierarchical_tag_index_finalize (HierarchicalTagIndex* obj) {
+ HierarchicalTagIndex * self;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_signal_handlers_destroy (self);
+#line 8 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (self->priv->tag_table);
+#line 9 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ _g_object_unref0 (self->priv->known_paths);
+#line 979 "HierarchicalTagIndex.c"
+}
+
+
+GType hierarchical_tag_index_get_type (void) {
+ static volatile gsize hierarchical_tag_index_type_id__volatile = 0;
+ if (g_once_init_enter (&hierarchical_tag_index_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_hierarchical_tag_index_init, value_hierarchical_tag_index_free_value, value_hierarchical_tag_index_copy_value, value_hierarchical_tag_index_peek_pointer, "p", value_hierarchical_tag_index_collect_value, "p", value_hierarchical_tag_index_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (HierarchicalTagIndexClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hierarchical_tag_index_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HierarchicalTagIndex), 0, (GInstanceInitFunc) hierarchical_tag_index_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType hierarchical_tag_index_type_id;
+ hierarchical_tag_index_type_id = g_type_register_fundamental (g_type_fundamental_next (), "HierarchicalTagIndex", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&hierarchical_tag_index_type_id__volatile, hierarchical_tag_index_type_id);
+ }
+ return hierarchical_tag_index_type_id__volatile;
+}
+
+
+gpointer hierarchical_tag_index_ref (gpointer instance) {
+ HierarchicalTagIndex* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ return instance;
+#line 1004 "HierarchicalTagIndex.c"
+}
+
+
+void hierarchical_tag_index_unref (gpointer instance) {
+ HierarchicalTagIndex* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ HIERARCHICAL_TAG_INDEX_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagIndex.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1017 "HierarchicalTagIndex.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+
diff --git a/src/tags/HierarchicalTagUtilities.c b/src/tags/HierarchicalTagUtilities.c
new file mode 100644
index 0000000..827d497
--- /dev/null
+++ b/src/tags/HierarchicalTagUtilities.c
@@ -0,0 +1,2356 @@
+/* HierarchicalTagUtilities.c generated by valac 0.32.1, the Vala compiler
+ * generated from HierarchicalTagUtilities.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_HIERARCHICAL_TAG_UTILITIES (hierarchical_tag_utilities_get_type ())
+#define HIERARCHICAL_TAG_UTILITIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_UTILITIES, HierarchicalTagUtilities))
+#define HIERARCHICAL_TAG_UTILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_UTILITIES, HierarchicalTagUtilitiesClass))
+#define IS_HIERARCHICAL_TAG_UTILITIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_UTILITIES))
+#define IS_HIERARCHICAL_TAG_UTILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_UTILITIES))
+#define HIERARCHICAL_TAG_UTILITIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_UTILITIES, HierarchicalTagUtilitiesClass))
+
+typedef struct _HierarchicalTagUtilities HierarchicalTagUtilities;
+typedef struct _HierarchicalTagUtilitiesClass HierarchicalTagUtilitiesClass;
+typedef struct _HierarchicalTagUtilitiesPrivate HierarchicalTagUtilitiesPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_HIERARCHICAL_TAG_INDEX (hierarchical_tag_index_get_type ())
+#define HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndex))
+#define HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+#define IS_HIERARCHICAL_TAG_INDEX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HIERARCHICAL_TAG_INDEX))
+#define IS_HIERARCHICAL_TAG_INDEX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HIERARCHICAL_TAG_INDEX))
+#define HIERARCHICAL_TAG_INDEX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HIERARCHICAL_TAG_INDEX, HierarchicalTagIndexClass))
+
+typedef struct _HierarchicalTagIndex HierarchicalTagIndex;
+typedef struct _HierarchicalTagIndexClass HierarchicalTagIndexClass;
+#define _hierarchical_tag_index_unref0(var) ((var == NULL) ? NULL : (var = (hierarchical_tag_index_unref (var), NULL)))
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+typedef struct _ParamSpecHierarchicalTagUtilities ParamSpecHierarchicalTagUtilities;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _HierarchicalTagUtilities {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ HierarchicalTagUtilitiesPrivate * priv;
+};
+
+struct _HierarchicalTagUtilitiesClass {
+ GTypeClass parent_class;
+ void (*finalize) (HierarchicalTagUtilities *self);
+};
+
+struct _ParamSpecHierarchicalTagUtilities {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer hierarchical_tag_utilities_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+
+gpointer hierarchical_tag_utilities_ref (gpointer instance);
+void hierarchical_tag_utilities_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_utilities (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_utilities (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_utilities (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_utilities (const GValue* value);
+GType hierarchical_tag_utilities_get_type (void) G_GNUC_CONST;
+enum {
+ HIERARCHICAL_TAG_UTILITIES_DUMMY_PROPERTY
+};
+gchar* hierarchical_tag_utilities_flat_to_hierarchical (const gchar* name);
+#define TAG_PATH_SEPARATOR_STRING "/"
+gchar* hierarchical_tag_utilities_hierarchical_to_flat (const gchar* path);
+GeeList* hierarchical_tag_utilities_enumerate_path_components (const gchar* in_path);
+GeeList* hierarchical_tag_utilities_enumerate_parent_paths (const gchar* in_path);
+gchar* hierarchical_tag_utilities_join_path_components (gchar** path_components, int path_components_length1);
+gchar* hierarchical_tag_utilities_get_basename (const gchar* in_path);
+gchar* hierarchical_tag_utilities_canonicalize (const gchar* in_tag, const gchar* foreign_separator);
+gchar* hierarchical_tag_utilities_make_flat_tag_safe (const gchar* in_tag);
+gpointer hierarchical_tag_index_ref (gpointer instance);
+void hierarchical_tag_index_unref (gpointer instance);
+GParamSpec* param_spec_hierarchical_tag_index (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_hierarchical_tag_index (GValue* value, gpointer v_object);
+void value_take_hierarchical_tag_index (GValue* value, gpointer v_object);
+gpointer value_get_hierarchical_tag_index (const GValue* value);
+GType hierarchical_tag_index_get_type (void) G_GNUC_CONST;
+HierarchicalTagIndex* hierarchical_tag_utilities_process_hierarchical_import_keywords (GeeCollection* h_keywords);
+HierarchicalTagIndex* hierarchical_tag_index_new (void);
+HierarchicalTagIndex* hierarchical_tag_index_construct (GType object_type);
+gboolean hierarchical_tag_index_is_path_known (HierarchicalTagIndex* self, const gchar* path);
+void hierarchical_tag_index_add_path (HierarchicalTagIndex* self, const gchar* tag, const gchar* path);
+gchar* hierarchical_tag_utilities_get_root_path_form (const gchar* client_path);
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+gboolean tag_source_collection_exists (TagSourceCollection* self, const gchar* name, gboolean treat_htags_as_root);
+void hierarchical_tag_utilities_cleanup_root_path (const gchar* path);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType tag_get_type (void) G_GNUC_CONST;
+Tag* tag_for_path (const gchar* name);
+GeeList* tag_get_hierarchical_children (Tag* self);
+void tag_flatten (Tag* self);
+HierarchicalTagUtilities* hierarchical_tag_utilities_new (void);
+HierarchicalTagUtilities* hierarchical_tag_utilities_construct (GType object_type);
+static void hierarchical_tag_utilities_finalize (HierarchicalTagUtilities* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+/**
+ * converts a flat tag name 'name' (e.g., "Animals") to a tag path compatible with the
+ * hierarchical tag data model (e.g., "/Animals"). if 'name' is already a path compatible with
+ * the hierarchical data model, 'name' is returned untouched
+ */
+gchar* hierarchical_tag_utilities_flat_to_hierarchical (const gchar* name) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 14 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 15 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = name;
+#line 15 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = g_str_has_prefix (_tmp0_, TAG_PATH_SEPARATOR_STRING);
+#line 15 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!_tmp1_) {
+#line 225 "HierarchicalTagUtilities.c"
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 16 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = name;
+#line 16 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp2_, NULL);
+#line 16 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp3_;
+#line 16 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 236 "HierarchicalTagUtilities.c"
+ } else {
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 18 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = name;
+#line 18 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 18 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp5_;
+#line 18 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 248 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+/**
+ * converts a hierarchical tag path 'path' (e.g., "/Animals") to a flat tag name
+ * (e.g., "Animals"); if 'path' is already a flat tag name, 'path' is returned untouched; note
+ * that 'path' must be a top-level path (i.e., "/Animals" not "/Animals/Mammals/...") with
+ * only one path component; invoking this method with a 'path' argument other than a top-level
+ * path will cause an assertion failure.
+ */
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 279 "HierarchicalTagUtilities.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 287 "HierarchicalTagUtilities.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 299 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 323 "HierarchicalTagUtilities.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 329 "HierarchicalTagUtilities.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 333 "HierarchicalTagUtilities.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 337 "HierarchicalTagUtilities.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 349 "HierarchicalTagUtilities.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 359 "HierarchicalTagUtilities.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 365 "HierarchicalTagUtilities.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 379 "HierarchicalTagUtilities.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 389 "HierarchicalTagUtilities.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 395 "HierarchicalTagUtilities.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 404 "HierarchicalTagUtilities.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 424 "HierarchicalTagUtilities.c"
+}
+
+
+gchar* hierarchical_tag_utilities_hierarchical_to_flat (const gchar* path) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 28 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 29 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = path;
+#line 29 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = g_str_has_prefix (_tmp0_, TAG_PATH_SEPARATOR_STRING);
+#line 29 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp1_) {
+#line 440 "HierarchicalTagUtilities.c"
+ const gchar* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ GeeList* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = path;
+#line 30 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = hierarchical_tag_utilities_enumerate_path_components (_tmp2_);
+#line 30 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = _tmp3_;
+#line 30 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 30 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = _tmp5_;
+#line 30 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _vala_assert (_tmp6_ == 1, "enumerate_path_components(path).size == 1");
+#line 30 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (_tmp4_);
+#line 32 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = path;
+#line 32 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = string_substring (_tmp7_, (glong) 1, (glong) -1);
+#line 32 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp8_;
+#line 32 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 470 "HierarchicalTagUtilities.c"
+ } else {
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 34 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = path;
+#line 34 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 34 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp10_;
+#line 34 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 482 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+/**
+ * given a path 'path', generate all parent paths of 'path' and return them in sorted order,
+ * from most basic to most derived. For example, if 'path' == "/Animals/Mammals/Elephant",
+ * the list { "/Animals", "/Animals/Mammals" } is returned
+ */
+GeeList* hierarchical_tag_utilities_enumerate_parent_paths (const gchar* in_path) {
+ GeeList* result = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GeeList* _result_ = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ gchar* accumulator = NULL;
+ gchar* _tmp3_ = NULL;
+#line 43 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (in_path != NULL, NULL);
+#line 44 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = in_path;
+#line 44 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = hierarchical_tag_utilities_flat_to_hierarchical (_tmp0_);
+#line 44 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ path = _tmp1_;
+#line 46 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 46 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _result_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_LIST, GeeList);
+#line 48 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = g_strdup ("");
+#line 48 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ accumulator = _tmp3_;
+#line 517 "HierarchicalTagUtilities.c"
+ {
+ GeeList* _component_list = NULL;
+ const gchar* _tmp4_ = NULL;
+ GeeList* _tmp5_ = NULL;
+ gint _component_size = 0;
+ GeeList* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gint _component_index = 0;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = path;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = hierarchical_tag_utilities_enumerate_path_components (_tmp4_);
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _component_list = _tmp5_;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = _component_list;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = _tmp7_;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _component_size = _tmp8_;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _component_index = -1;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ while (TRUE) {
+#line 545 "HierarchicalTagUtilities.c"
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+ gint _tmp11_ = 0;
+ gchar* component = NULL;
+ GeeList* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gpointer _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ const gchar* _tmp21_ = NULL;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = _component_index;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _component_index = _tmp9_ + 1;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp10_ = _component_index;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp11_ = _component_size;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!(_tmp10_ < _tmp11_)) {
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ break;
+#line 572 "HierarchicalTagUtilities.c"
+ }
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp12_ = _component_list;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp13_ = _component_index;
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp14_ = gee_list_get (_tmp12_, _tmp13_);
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ component = (gchar*) _tmp14_;
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp15_ = accumulator;
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp16_ = component;
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp17_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp16_, NULL);
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp18_ = _tmp17_;
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp19_ = g_strconcat (_tmp15_, _tmp18_, NULL);
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (accumulator);
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ accumulator = _tmp19_;
+#line 50 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (_tmp18_);
+#line 51 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp20_ = accumulator;
+#line 51 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp21_ = path;
+#line 51 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (g_strcmp0 (_tmp20_, _tmp21_) != 0) {
+#line 604 "HierarchicalTagUtilities.c"
+ GeeList* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 52 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp22_ = _result_;
+#line 52 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp23_ = accumulator;
+#line 52 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), _tmp23_);
+#line 613 "HierarchicalTagUtilities.c"
+ }
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (component);
+#line 617 "HierarchicalTagUtilities.c"
+ }
+#line 49 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (_component_list);
+#line 621 "HierarchicalTagUtilities.c"
+ }
+#line 55 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _result_;
+#line 55 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (accumulator);
+#line 55 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (path);
+#line 55 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 631 "HierarchicalTagUtilities.c"
+}
+
+
+/**
+ * given a path 'path', enumerate all of the components of 'path' and return them in
+ * order, excluding the path component separator. For example if
+ * 'path' == "/Animals/Mammals/Elephant" the list { "Animals", "Mammals", "Elephant" } will
+ * be returned
+ */
+GeeList* hierarchical_tag_utilities_enumerate_path_components (const gchar* in_path) {
+ GeeList* result = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GeeArrayList* components = NULL;
+ GeeArrayList* _tmp2_ = NULL;
+ gchar** raw_components = NULL;
+ const gchar* _tmp3_ = NULL;
+ gchar** _tmp4_ = NULL;
+ gchar** _tmp5_ = NULL;
+ gint raw_components_length1 = 0;
+ gint _raw_components_size_ = 0;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GeeArrayList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 64 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (in_path != NULL, NULL);
+#line 65 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = in_path;
+#line 65 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = hierarchical_tag_utilities_flat_to_hierarchical (_tmp0_);
+#line 65 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ path = _tmp1_;
+#line 67 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
+#line 67 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ components = _tmp2_;
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = path;
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, TAG_PATH_SEPARATOR_STRING, 0);
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ raw_components = _tmp5_;
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ raw_components_length1 = _vala_array_length (_tmp4_);
+#line 69 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _raw_components_size_ = raw_components_length1;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = raw_components;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6__length1 = raw_components_length1;
+#line 685 "HierarchicalTagUtilities.c"
+ {
+ gchar** component_collection = NULL;
+ gint component_collection_length1 = 0;
+ gint _component_collection_size_ = 0;
+ gint component_it = 0;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ component_collection = _tmp6_;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ component_collection_length1 = _tmp6__length1;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ for (component_it = 0; component_it < _tmp6__length1; component_it = component_it + 1) {
+#line 697 "HierarchicalTagUtilities.c"
+ gchar* _tmp7_ = NULL;
+ gchar* component = NULL;
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = g_strdup (component_collection[component_it]);
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ component = _tmp7_;
+#line 704 "HierarchicalTagUtilities.c"
+ {
+ const gchar* _tmp8_ = NULL;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = component;
+#line 72 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (g_strcmp0 (_tmp8_, "") != 0) {
+#line 711 "HierarchicalTagUtilities.c"
+ GeeArrayList* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = components;
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp10_ = component;
+#line 73 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp10_);
+#line 720 "HierarchicalTagUtilities.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (component);
+#line 724 "HierarchicalTagUtilities.c"
+ }
+ }
+ }
+#line 76 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp11_ = components;
+#line 76 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp12_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 76 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp13_ = _tmp12_;
+#line 76 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _vala_assert (_tmp13_ > 0, "components.size > 0");
+#line 78 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (components, GEE_TYPE_LIST, GeeList);
+#line 78 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ raw_components = (_vala_array_free (raw_components, raw_components_length1, (GDestroyNotify) g_free), NULL);
+#line 78 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (path);
+#line 78 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 744 "HierarchicalTagUtilities.c"
+}
+
+
+/**
+ * given a list of path elements, create a fully qualified path string.
+ * For example if 'path_elements' is the list { "Animals", "Mammals", "Elephant" }
+ * the path "/Animals/Mammals/Elephant" will be returned
+ */
+static gchar* _vala_g_strjoinv (const gchar* separator, gchar** str_array, int str_array_length1) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gchar** _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+#line 1054 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = separator;
+#line 1054 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_ == NULL) {
+#line 1055 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ separator = "";
+#line 766 "HierarchicalTagUtilities.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = TRUE;
+#line 776 "HierarchicalTagUtilities.c"
+ } else {
+ gchar** _tmp4_ = NULL;
+ gint _tmp4__length1 = 0;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp4__length1 > 0;
+#line 786 "HierarchicalTagUtilities.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp2_) {
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = TRUE;
+#line 792 "HierarchicalTagUtilities.c"
+ } else {
+ gboolean _tmp5_ = FALSE;
+ gchar** _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp6__length1 == -1) {
+#line 803 "HierarchicalTagUtilities.c"
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ const gchar* _tmp8_ = NULL;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = str_array;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7__length1 = str_array_length1;
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp7_[0];
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_ != NULL;
+#line 815 "HierarchicalTagUtilities.c"
+ } else {
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = FALSE;
+#line 819 "HierarchicalTagUtilities.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp5_;
+#line 823 "HierarchicalTagUtilities.c"
+ }
+#line 1057 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_) {
+#line 827 "HierarchicalTagUtilities.c"
+ gint i = 0;
+ gsize len = 0UL;
+ gint _tmp31_ = 0;
+ gint _tmp33_ = 0;
+ gint _tmp34_ = 0;
+ gsize _tmp35_ = 0UL;
+ const gchar* _tmp36_ = NULL;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ const gchar* res = NULL;
+ gsize _tmp40_ = 0UL;
+ void* _tmp41_ = NULL;
+ void* ptr = NULL;
+ const gchar* _tmp42_ = NULL;
+ gchar** _tmp43_ = NULL;
+ gint _tmp43__length1 = 0;
+ const gchar* _tmp44_ = NULL;
+ void* _tmp45_ = NULL;
+ const gchar* _tmp62_ = NULL;
+#line 1059 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = (gsize) 1;
+#line 850 "HierarchicalTagUtilities.c"
+ {
+ gboolean _tmp9_ = FALSE;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = TRUE;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ while (TRUE) {
+#line 859 "HierarchicalTagUtilities.c"
+ gboolean _tmp11_ = FALSE;
+ gboolean _tmp12_ = FALSE;
+ gchar** _tmp13_ = NULL;
+ gint _tmp13__length1 = 0;
+ gint _tmp21_ = 0;
+ gchar** _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+ gint _tmp23_ = 0;
+ const gchar* _tmp24_ = NULL;
+ gsize _tmp30_ = 0UL;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!_tmp9_) {
+#line 872 "HierarchicalTagUtilities.c"
+ gint _tmp10_ = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = i;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = _tmp10_ + 1;
+#line 878 "HierarchicalTagUtilities.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = FALSE;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp13__length1 != -1) {
+#line 888 "HierarchicalTagUtilities.c"
+ gint _tmp14_ = 0;
+ gchar** _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = i;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ < _tmp15__length1;
+#line 900 "HierarchicalTagUtilities.c"
+ } else {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 904 "HierarchicalTagUtilities.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp12_) {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = TRUE;
+#line 910 "HierarchicalTagUtilities.c"
+ } else {
+ gboolean _tmp16_ = FALSE;
+ gchar** _tmp17_ = NULL;
+ gint _tmp17__length1 = 0;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp17__length1 == -1) {
+#line 921 "HierarchicalTagUtilities.c"
+ gchar** _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ gint _tmp19_ = 0;
+ const gchar* _tmp20_ = NULL;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = str_array;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18__length1 = str_array_length1;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = i;
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = _tmp18_[_tmp19_];
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = _tmp20_ != NULL;
+#line 936 "HierarchicalTagUtilities.c"
+ } else {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = FALSE;
+#line 940 "HierarchicalTagUtilities.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = _tmp16_;
+#line 944 "HierarchicalTagUtilities.c"
+ }
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!_tmp11_) {
+#line 1060 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ break;
+#line 950 "HierarchicalTagUtilities.c"
+ }
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = str_array;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22__length1 = str_array_length1;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp23_ = i;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp24_ = _tmp22_[_tmp23_];
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp24_ != NULL) {
+#line 962 "HierarchicalTagUtilities.c"
+ gchar** _tmp25_ = NULL;
+ gint _tmp25__length1 = 0;
+ gint _tmp26_ = 0;
+ const gchar* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp25_ = str_array;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp25__length1 = str_array_length1;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp26_ = i;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp27_ = _tmp25_[_tmp26_];
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp28_ = strlen ((const gchar*) _tmp27_);
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp29_ = _tmp28_;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = _tmp29_;
+#line 983 "HierarchicalTagUtilities.c"
+ } else {
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = 0;
+#line 987 "HierarchicalTagUtilities.c"
+ }
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp30_ = len;
+#line 1061 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp30_ + _tmp21_;
+#line 993 "HierarchicalTagUtilities.c"
+ }
+ }
+#line 1063 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp31_ = i;
+#line 1063 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp31_ == 0) {
+#line 1000 "HierarchicalTagUtilities.c"
+ gchar* _tmp32_ = NULL;
+#line 1064 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp32_ = g_strdup ("");
+#line 1064 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp32_;
+#line 1064 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1008 "HierarchicalTagUtilities.c"
+ }
+#line 1066 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp33_ = i;
+#line 1066 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ str_array_length1 = _tmp33_;
+#line 1066 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp34_ = str_array_length1;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp35_ = len;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp36_ = separator;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp37_ = strlen ((const gchar*) _tmp36_);
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp38_ = _tmp37_;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp39_ = i;
+#line 1067 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp35_ + (_tmp38_ * (_tmp39_ - 1));
+#line 1069 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp40_ = len;
+#line 1069 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp41_ = g_malloc (_tmp40_);
+#line 1069 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res = _tmp41_;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp42_ = res;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp43_ = str_array;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp43__length1 = str_array_length1;
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp44_ = _tmp43_[0];
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp45_ = g_stpcpy ((void*) _tmp42_, (const gchar*) _tmp44_);
+#line 1070 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ ptr = _tmp45_;
+#line 1046 "HierarchicalTagUtilities.c"
+ {
+ gboolean _tmp46_ = FALSE;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = 1;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp46_ = TRUE;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ while (TRUE) {
+#line 1055 "HierarchicalTagUtilities.c"
+ gint _tmp48_ = 0;
+ gchar** _tmp49_ = NULL;
+ gint _tmp49__length1 = 0;
+ void* _tmp50_ = NULL;
+ const gchar* _tmp51_ = NULL;
+ void* _tmp52_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gchar** _tmp54_ = NULL;
+ gint _tmp54__length1 = 0;
+ gint _tmp55_ = 0;
+ const gchar* _tmp56_ = NULL;
+ void* _tmp60_ = NULL;
+ void* _tmp61_ = NULL;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!_tmp46_) {
+#line 1071 "HierarchicalTagUtilities.c"
+ gint _tmp47_ = 0;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp47_ = i;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ i = _tmp47_ + 1;
+#line 1077 "HierarchicalTagUtilities.c"
+ }
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp46_ = FALSE;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp48_ = i;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp49_ = str_array;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp49__length1 = str_array_length1;
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (!(_tmp48_ < _tmp49__length1)) {
+#line 1071 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ break;
+#line 1091 "HierarchicalTagUtilities.c"
+ }
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp50_ = ptr;
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp51_ = separator;
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp52_ = g_stpcpy (_tmp50_, (const gchar*) _tmp51_);
+#line 1072 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ ptr = _tmp52_;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp54_ = str_array;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp54__length1 = str_array_length1;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp55_ = i;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp56_ = _tmp54_[_tmp55_];
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp56_ != NULL) {
+#line 1111 "HierarchicalTagUtilities.c"
+ gchar** _tmp57_ = NULL;
+ gint _tmp57__length1 = 0;
+ gint _tmp58_ = 0;
+ const gchar* _tmp59_ = NULL;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp57_ = str_array;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp57__length1 = str_array_length1;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp58_ = i;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp59_ = _tmp57_[_tmp58_];
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp53_ = (const gchar*) _tmp59_;
+#line 1126 "HierarchicalTagUtilities.c"
+ } else {
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp53_ = "";
+#line 1130 "HierarchicalTagUtilities.c"
+ }
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp60_ = ptr;
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp61_ = g_stpcpy (_tmp60_, _tmp53_);
+#line 1073 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ ptr = _tmp61_;
+#line 1138 "HierarchicalTagUtilities.c"
+ }
+ }
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp62_ = res;
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ res = NULL;
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gchar*) _tmp62_;
+#line 1076 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1149 "HierarchicalTagUtilities.c"
+ } else {
+ gchar* _tmp63_ = NULL;
+#line 1078 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp63_ = g_strdup ("");
+#line 1078 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp63_;
+#line 1078 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1158 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+gchar* hierarchical_tag_utilities_join_path_components (gchar** path_components, int path_components_length1) {
+ gchar* result = NULL;
+ gchar** _tmp0_ = NULL;
+ gint _tmp0__length1 = 0;
+ gchar* tmp = NULL;
+ gchar** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar** _tmp6_ = NULL;
+ gchar** _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = path_components;
+#line 87 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0__length1 = path_components_length1;
+#line 87 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp0__length1 <= 0) {
+#line 88 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = NULL;
+#line 88 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1189 "HierarchicalTagUtilities.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = path_components;
+#line 89 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1__length1 = path_components_length1;
+#line 89 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = _vala_g_strjoinv (TAG_PATH_SEPARATOR_STRING, _tmp1_, _tmp1__length1);
+#line 89 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ tmp = _tmp2_;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = g_strdup ("");
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = tmp;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = g_new0 (gchar*, 2 + 1);
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_[0] = _tmp3_;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_[1] = _tmp5_;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = _tmp6_;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7__length1 = 2;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = _vala_g_strjoinv (TAG_PATH_SEPARATOR_STRING, _tmp7_, 2);
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = _tmp8_;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp9_;
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (tmp);
+#line 90 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1227 "HierarchicalTagUtilities.c"
+}
+
+
+gchar* hierarchical_tag_utilities_get_basename (const gchar* in_path) {
+ gchar* result = NULL;
+ gchar* path = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GeeList* components = NULL;
+ GeeList* _tmp2_ = NULL;
+ gchar* basename = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gpointer _tmp5_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (in_path != NULL, NULL);
+#line 94 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = in_path;
+#line 94 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = hierarchical_tag_utilities_flat_to_hierarchical (_tmp0_);
+#line 94 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ path = _tmp1_;
+#line 96 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = hierarchical_tag_utilities_enumerate_path_components (path);
+#line 96 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ components = _tmp2_;
+#line 98 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (components, GEE_TYPE_COLLECTION, GeeCollection));
+#line 98 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = _tmp3_;
+#line 98 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = gee_list_get (components, _tmp4_ - 1);
+#line 98 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ basename = (gchar*) _tmp5_;
+#line 100 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = basename;
+#line 100 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (components);
+#line 100 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (path);
+#line 100 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1270 "HierarchicalTagUtilities.c"
+}
+
+
+static gchar* string_replace (const gchar* self, const gchar* old, const gchar* replacement) {
+ gchar* result = NULL;
+ GError * _inner_error_ = NULL;
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (old != NULL, NULL);
+#line 1380 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (replacement != NULL, NULL);
+#line 1283 "HierarchicalTagUtilities.c"
+ {
+ GRegex* regex = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ GRegex* _tmp3_ = NULL;
+ GRegex* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ GRegex* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = old;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_regex_escape_string (_tmp0_, -1);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _tmp1_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_regex_new (_tmp2_, 0, 0, &_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp2_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ regex = _tmp4_;
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1314 "HierarchicalTagUtilities.c"
+ goto __catch53_g_regex_error;
+ }
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1382 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1323 "HierarchicalTagUtilities.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = regex;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = replacement;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = g_regex_replace_literal (_tmp6_, self, (gssize) -1, 0, _tmp7_, 0, &_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = _tmp8_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_inner_error_->domain == G_REGEX_ERROR) {
+#line 1339 "HierarchicalTagUtilities.c"
+ goto __catch53_g_regex_error;
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1350 "HierarchicalTagUtilities.c"
+ }
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = _tmp5_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = NULL;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp9_;
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_free0 (_tmp5_);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_regex_unref0 (regex);
+#line 1383 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1364 "HierarchicalTagUtilities.c"
+ }
+ goto __finally53;
+ __catch53_g_regex_error:
+ {
+ GError* e = NULL;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ e = _inner_error_;
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _inner_error_ = NULL;
+#line 1385 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_assert_not_reached ();
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _g_error_free0 (e);
+#line 1378 "HierarchicalTagUtilities.c"
+ }
+ __finally53:
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_clear_error (&_inner_error_);
+#line 1381 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return NULL;
+#line 1389 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1408 "HierarchicalTagUtilities.c"
+}
+
+
+gchar* hierarchical_tag_utilities_canonicalize (const gchar* in_tag, const gchar* foreign_separator) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gboolean is_valid = FALSE;
+ const gchar* _tmp17_ = NULL;
+ gboolean _tmp18_ = FALSE;
+ gchar* _tmp20_ = NULL;
+#line 103 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (in_tag != NULL, NULL);
+#line 103 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (foreign_separator != NULL, NULL);
+#line 104 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = in_tag;
+#line 104 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = foreign_separator;
+#line 104 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = string_replace (_tmp0_, _tmp1_, TAG_PATH_SEPARATOR_STRING);
+#line 104 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _result_ = _tmp2_;
+#line 106 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = _result_;
+#line 106 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = g_str_has_prefix (_tmp3_, TAG_PATH_SEPARATOR_STRING);
+#line 106 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!_tmp4_) {
+#line 1442 "HierarchicalTagUtilities.c"
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 107 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = _result_;
+#line 107 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = g_strconcat (TAG_PATH_SEPARATOR_STRING, _tmp5_, NULL);
+#line 107 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (_result_);
+#line 107 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _result_ = _tmp6_;
+#line 1453 "HierarchicalTagUtilities.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ is_valid = FALSE;
+#line 1457 "HierarchicalTagUtilities.c"
+ {
+ gint i = 0;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ i = 0;
+#line 1462 "HierarchicalTagUtilities.c"
+ {
+ gboolean _tmp7_ = FALSE;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = TRUE;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ while (TRUE) {
+#line 1469 "HierarchicalTagUtilities.c"
+ gint _tmp9_ = 0;
+ const gchar* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ const gchar* _tmp13_ = NULL;
+ gint _tmp14_ = 0;
+ gchar _tmp15_ = '\0';
+ gchar _tmp16_ = '\0';
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!_tmp7_) {
+#line 1480 "HierarchicalTagUtilities.c"
+ gint _tmp8_ = 0;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = i;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ i = _tmp8_ + 1;
+#line 1486 "HierarchicalTagUtilities.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = FALSE;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = i;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp10_ = _result_;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp11_ = strlen (_tmp10_);
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp12_ = _tmp11_;
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!(_tmp9_ < _tmp12_)) {
+#line 111 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ break;
+#line 1502 "HierarchicalTagUtilities.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp13_ = _result_;
+#line 112 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp14_ = i;
+#line 112 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp15_ = string_get (_tmp13_, (glong) _tmp14_);
+#line 112 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp16_ = string_get (TAG_PATH_SEPARATOR_STRING, (glong) 0);
+#line 112 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp15_ != _tmp16_) {
+#line 113 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ is_valid = TRUE;
+#line 114 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ break;
+#line 1518 "HierarchicalTagUtilities.c"
+ }
+ }
+ }
+ }
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp18_ = is_valid;
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp18_) {
+#line 1527 "HierarchicalTagUtilities.c"
+ const gchar* _tmp19_ = NULL;
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp19_ = _result_;
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp17_ = _tmp19_;
+#line 1533 "HierarchicalTagUtilities.c"
+ } else {
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp17_ = NULL;
+#line 1537 "HierarchicalTagUtilities.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp20_ = g_strdup (_tmp17_);
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp20_;
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (_result_);
+#line 118 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1547 "HierarchicalTagUtilities.c"
+}
+
+
+gchar* hierarchical_tag_utilities_make_flat_tag_safe (const gchar* in_tag) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 121 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (in_tag != NULL, NULL);
+#line 122 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = in_tag;
+#line 122 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = string_replace (_tmp0_, TAG_PATH_SEPARATOR_STRING, "-");
+#line 122 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp1_;
+#line 122 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1565 "HierarchicalTagUtilities.c"
+}
+
+
+HierarchicalTagIndex* hierarchical_tag_utilities_process_hierarchical_import_keywords (GeeCollection* h_keywords) {
+ HierarchicalTagIndex* result = NULL;
+ HierarchicalTagIndex* index = NULL;
+ HierarchicalTagIndex* _tmp0_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (h_keywords), NULL);
+#line 126 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = hierarchical_tag_index_new ();
+#line 126 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ index = _tmp0_;
+#line 1579 "HierarchicalTagUtilities.c"
+ {
+ GeeIterator* _keyword_it = NULL;
+ GeeCollection* _tmp1_ = NULL;
+ GeeIterator* _tmp2_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = h_keywords;
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _keyword_it = _tmp2_;
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ while (TRUE) {
+#line 1592 "HierarchicalTagUtilities.c"
+ GeeIterator* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+ gchar* keyword = NULL;
+ GeeIterator* _tmp5_ = NULL;
+ gpointer _tmp6_ = NULL;
+ GeeList* parent_paths = NULL;
+ const gchar* _tmp7_ = NULL;
+ GeeList* _tmp8_ = NULL;
+ GeeList* path_components = NULL;
+ const gchar* _tmp9_ = NULL;
+ GeeList* _tmp10_ = NULL;
+ GeeList* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ GeeList* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint _tmp16_ = 0;
+ HierarchicalTagIndex* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+ gchar* _tmp41_ = NULL;
+ gchar* _tmp42_ = NULL;
+ const gchar* _tmp43_ = NULL;
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = _keyword_it;
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = gee_iterator_next (_tmp3_);
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!_tmp4_) {
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ break;
+#line 1623 "HierarchicalTagUtilities.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = _keyword_it;
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = gee_iterator_get (_tmp5_);
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ keyword = (gchar*) _tmp6_;
+#line 129 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = keyword;
+#line 129 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp7_);
+#line 129 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ parent_paths = _tmp8_;
+#line 131 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = keyword;
+#line 131 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp10_ = hierarchical_tag_utilities_enumerate_path_components (_tmp9_);
+#line 131 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ path_components = _tmp10_;
+#line 134 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp11_ = parent_paths;
+#line 134 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 134 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp13_ = _tmp12_;
+#line 134 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp14_ = path_components;
+#line 134 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp15_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp14_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 134 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp16_ = _tmp15_;
+#line 134 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _vala_assert (_tmp13_ <= _tmp16_, "parent_paths.size <= path_components.size");
+#line 1657 "HierarchicalTagUtilities.c"
+ {
+ gint i = 0;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ i = 0;
+#line 1662 "HierarchicalTagUtilities.c"
+ {
+ gboolean _tmp17_ = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp17_ = TRUE;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ while (TRUE) {
+#line 1669 "HierarchicalTagUtilities.c"
+ gint _tmp19_ = 0;
+ GeeList* _tmp20_ = NULL;
+ gint _tmp21_ = 0;
+ gint _tmp22_ = 0;
+ HierarchicalTagIndex* _tmp23_ = NULL;
+ GeeList* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gpointer _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gboolean _tmp28_ = FALSE;
+ gboolean _tmp29_ = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!_tmp17_) {
+#line 1683 "HierarchicalTagUtilities.c"
+ gint _tmp18_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp18_ = i;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ i = _tmp18_ + 1;
+#line 1689 "HierarchicalTagUtilities.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp17_ = FALSE;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp19_ = i;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp20_ = parent_paths;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp21_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp20_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp22_ = _tmp21_;
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!(_tmp19_ < _tmp22_)) {
+#line 136 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ break;
+#line 1705 "HierarchicalTagUtilities.c"
+ }
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp23_ = index;
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp24_ = path_components;
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp25_ = i;
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp26_ = gee_list_get (_tmp24_, _tmp25_);
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp27_ = (gchar*) _tmp26_;
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp28_ = hierarchical_tag_index_is_path_known (_tmp23_, _tmp27_);
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp29_ = !_tmp28_;
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (_tmp27_);
+#line 137 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp29_) {
+#line 1725 "HierarchicalTagUtilities.c"
+ HierarchicalTagIndex* _tmp30_ = NULL;
+ GeeList* _tmp31_ = NULL;
+ gint _tmp32_ = 0;
+ gpointer _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ GeeList* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gpointer _tmp37_ = NULL;
+ gchar* _tmp38_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp30_ = index;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp31_ = path_components;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp32_ = i;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp33_ = gee_list_get (_tmp31_, _tmp32_);
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp34_ = (gchar*) _tmp33_;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp35_ = parent_paths;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp36_ = i;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp37_ = gee_list_get (_tmp35_, _tmp36_);
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp38_ = (gchar*) _tmp37_;
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ hierarchical_tag_index_add_path (_tmp30_, _tmp34_, _tmp38_);
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (_tmp38_);
+#line 138 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (_tmp34_);
+#line 1759 "HierarchicalTagUtilities.c"
+ }
+ }
+ }
+ }
+#line 141 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp39_ = index;
+#line 141 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp40_ = keyword;
+#line 141 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp41_ = hierarchical_tag_utilities_get_basename (_tmp40_);
+#line 141 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp42_ = _tmp41_;
+#line 141 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp43_ = keyword;
+#line 141 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ hierarchical_tag_index_add_path (_tmp39_, _tmp42_, _tmp43_);
+#line 141 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (_tmp42_);
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (path_components);
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (parent_paths);
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (keyword);
+#line 1784 "HierarchicalTagUtilities.c"
+ }
+#line 128 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (_keyword_it);
+#line 1788 "HierarchicalTagUtilities.c"
+ }
+#line 144 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = index;
+#line 144 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1794 "HierarchicalTagUtilities.c"
+}
+
+
+gchar* hierarchical_tag_utilities_get_root_path_form (const gchar* client_path) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ GeeList* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gchar* path = NULL;
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+ TagSourceCollection* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gboolean _tmp13_ = FALSE;
+ const gchar* _tmp20_ = NULL;
+ TagSourceCollection* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gboolean _tmp23_ = FALSE;
+ gchar* _tmp25_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = client_path;
+#line 148 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp0_ == NULL) {
+#line 149 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = NULL;
+#line 149 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1826 "HierarchicalTagUtilities.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = client_path;
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp1_);
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = _tmp2_;
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = _tmp4_;
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = _tmp5_ != 0;
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (_tmp3_);
+#line 151 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp6_) {
+#line 1844 "HierarchicalTagUtilities.c"
+ const gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = client_path;
+#line 152 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = g_strdup (_tmp7_);
+#line 152 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp8_;
+#line 152 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1855 "HierarchicalTagUtilities.c"
+ }
+#line 154 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = client_path;
+#line 154 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp10_ = g_strdup (_tmp9_);
+#line 154 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ path = _tmp10_;
+#line 156 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp11_ = tag_global;
+#line 156 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp12_ = path;
+#line 156 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp13_ = tag_source_collection_exists (_tmp11_, _tmp12_, FALSE);
+#line 156 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!_tmp13_) {
+#line 1871 "HierarchicalTagUtilities.c"
+ const gchar* _tmp14_ = NULL;
+ gboolean _tmp15_ = FALSE;
+#line 157 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp14_ = path;
+#line 157 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp15_ = g_str_has_prefix (_tmp14_, TAG_PATH_SEPARATOR_STRING);
+#line 157 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp15_) {
+#line 1880 "HierarchicalTagUtilities.c"
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp16_ = path;
+#line 158 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp17_ = hierarchical_tag_utilities_hierarchical_to_flat (_tmp16_);
+#line 158 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (path);
+#line 158 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ path = _tmp17_;
+#line 1891 "HierarchicalTagUtilities.c"
+ } else {
+ const gchar* _tmp18_ = NULL;
+ gchar* _tmp19_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp18_ = path;
+#line 160 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp19_ = hierarchical_tag_utilities_flat_to_hierarchical (_tmp18_);
+#line 160 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (path);
+#line 160 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ path = _tmp19_;
+#line 1903 "HierarchicalTagUtilities.c"
+ }
+ }
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp21_ = tag_global;
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp22_ = path;
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp23_ = tag_source_collection_exists (_tmp21_, _tmp22_, FALSE);
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp23_) {
+#line 1914 "HierarchicalTagUtilities.c"
+ const gchar* _tmp24_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp24_ = path;
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp20_ = _tmp24_;
+#line 1920 "HierarchicalTagUtilities.c"
+ } else {
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp20_ = NULL;
+#line 1924 "HierarchicalTagUtilities.c"
+ }
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp25_ = g_strdup (_tmp20_);
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ result = _tmp25_;
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (path);
+#line 163 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return result;
+#line 1934 "HierarchicalTagUtilities.c"
+}
+
+
+void hierarchical_tag_utilities_cleanup_root_path (const gchar* path) {
+ GeeList* paths = NULL;
+ const gchar* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+ GeeList* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 166 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_if_fail (path != NULL);
+#line 167 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp0_ = path;
+#line 167 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp1_ = hierarchical_tag_utilities_enumerate_parent_paths (_tmp0_);
+#line 167 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ paths = _tmp1_;
+#line 169 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp2_ = paths;
+#line 169 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp3_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 169 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp4_ = _tmp3_;
+#line 169 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp4_ == 0) {
+#line 1961 "HierarchicalTagUtilities.c"
+ gchar* actual_path = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ Tag* t = NULL;
+ TagSourceCollection* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ gboolean _tmp13_ = FALSE;
+ Tag* _tmp14_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp5_ = path;
+#line 170 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp6_ = hierarchical_tag_utilities_get_root_path_form (_tmp5_);
+#line 170 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ actual_path = _tmp6_;
+#line 172 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp7_ = actual_path;
+#line 172 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp7_ == NULL) {
+#line 173 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (actual_path);
+#line 173 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (paths);
+#line 173 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return;
+#line 1988 "HierarchicalTagUtilities.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ t = NULL;
+#line 176 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp8_ = tag_global;
+#line 176 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp9_ = actual_path;
+#line 176 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp10_ = tag_source_collection_exists (_tmp8_, _tmp9_, FALSE);
+#line 176 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp10_) {
+#line 2000 "HierarchicalTagUtilities.c"
+ const gchar* _tmp11_ = NULL;
+ Tag* _tmp12_ = NULL;
+#line 177 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp11_ = actual_path;
+#line 177 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp12_ = tag_for_path (_tmp11_);
+#line 177 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (t);
+#line 177 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ t = _tmp12_;
+#line 2011 "HierarchicalTagUtilities.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp14_ = t;
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp14_ != NULL) {
+#line 2017 "HierarchicalTagUtilities.c"
+ Tag* _tmp15_ = NULL;
+ GeeList* _tmp16_ = NULL;
+ GeeList* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp15_ = t;
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp16_ = tag_get_hierarchical_children (_tmp15_);
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp17_ = _tmp16_;
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp18_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp17_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp19_ = _tmp18_;
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp13_ = _tmp19_ == 0;
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (_tmp17_);
+#line 2037 "HierarchicalTagUtilities.c"
+ } else {
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp13_ = FALSE;
+#line 2041 "HierarchicalTagUtilities.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (_tmp13_) {
+#line 2045 "HierarchicalTagUtilities.c"
+ Tag* _tmp20_ = NULL;
+#line 180 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _tmp20_ = t;
+#line 180 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ tag_flatten (_tmp20_);
+#line 2051 "HierarchicalTagUtilities.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (t);
+#line 169 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_free0 (actual_path);
+#line 2057 "HierarchicalTagUtilities.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ _g_object_unref0 (paths);
+#line 2061 "HierarchicalTagUtilities.c"
+}
+
+
+HierarchicalTagUtilities* hierarchical_tag_utilities_construct (GType object_type) {
+ HierarchicalTagUtilities* self = NULL;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ self = (HierarchicalTagUtilities*) g_type_create_instance (object_type);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return self;
+#line 2071 "HierarchicalTagUtilities.c"
+}
+
+
+HierarchicalTagUtilities* hierarchical_tag_utilities_new (void) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return hierarchical_tag_utilities_construct (TYPE_HIERARCHICAL_TAG_UTILITIES);
+#line 2078 "HierarchicalTagUtilities.c"
+}
+
+
+static void value_hierarchical_tag_utilities_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ value->data[0].v_pointer = NULL;
+#line 2085 "HierarchicalTagUtilities.c"
+}
+
+
+static void value_hierarchical_tag_utilities_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ hierarchical_tag_utilities_unref (value->data[0].v_pointer);
+#line 2094 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+static void value_hierarchical_tag_utilities_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ dest_value->data[0].v_pointer = hierarchical_tag_utilities_ref (src_value->data[0].v_pointer);
+#line 2104 "HierarchicalTagUtilities.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2108 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+static gpointer value_hierarchical_tag_utilities_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return value->data[0].v_pointer;
+#line 2116 "HierarchicalTagUtilities.c"
+}
+
+
+static gchar* value_hierarchical_tag_utilities_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (collect_values[0].v_pointer) {
+#line 2123 "HierarchicalTagUtilities.c"
+ HierarchicalTagUtilities* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2130 "HierarchicalTagUtilities.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2134 "HierarchicalTagUtilities.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ value->data[0].v_pointer = hierarchical_tag_utilities_ref (object);
+#line 2138 "HierarchicalTagUtilities.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ value->data[0].v_pointer = NULL;
+#line 2142 "HierarchicalTagUtilities.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return NULL;
+#line 2146 "HierarchicalTagUtilities.c"
+}
+
+
+static gchar* value_hierarchical_tag_utilities_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ HierarchicalTagUtilities** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2157 "HierarchicalTagUtilities.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ *object_p = NULL;
+#line 2163 "HierarchicalTagUtilities.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2167 "HierarchicalTagUtilities.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ *object_p = hierarchical_tag_utilities_ref (value->data[0].v_pointer);
+#line 2171 "HierarchicalTagUtilities.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return NULL;
+#line 2175 "HierarchicalTagUtilities.c"
+}
+
+
+GParamSpec* param_spec_hierarchical_tag_utilities (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecHierarchicalTagUtilities* spec;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_HIERARCHICAL_TAG_UTILITIES), NULL);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return G_PARAM_SPEC (spec);
+#line 2189 "HierarchicalTagUtilities.c"
+}
+
+
+gpointer value_get_hierarchical_tag_utilities (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_TAG_UTILITIES), NULL);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return value->data[0].v_pointer;
+#line 2198 "HierarchicalTagUtilities.c"
+}
+
+
+void value_set_hierarchical_tag_utilities (GValue* value, gpointer v_object) {
+ HierarchicalTagUtilities* old;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_TAG_UTILITIES));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HIERARCHICAL_TAG_UTILITIES));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ hierarchical_tag_utilities_ref (value->data[0].v_pointer);
+#line 2218 "HierarchicalTagUtilities.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ value->data[0].v_pointer = NULL;
+#line 2222 "HierarchicalTagUtilities.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ hierarchical_tag_utilities_unref (old);
+#line 2228 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+void value_take_hierarchical_tag_utilities (GValue* value, gpointer v_object) {
+ HierarchicalTagUtilities* old;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_HIERARCHICAL_TAG_UTILITIES));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_HIERARCHICAL_TAG_UTILITIES));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ value->data[0].v_pointer = v_object;
+#line 2247 "HierarchicalTagUtilities.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ value->data[0].v_pointer = NULL;
+#line 2251 "HierarchicalTagUtilities.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ hierarchical_tag_utilities_unref (old);
+#line 2257 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+static void hierarchical_tag_utilities_class_init (HierarchicalTagUtilitiesClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ hierarchical_tag_utilities_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ ((HierarchicalTagUtilitiesClass *) klass)->finalize = hierarchical_tag_utilities_finalize;
+#line 2267 "HierarchicalTagUtilities.c"
+}
+
+
+static void hierarchical_tag_utilities_instance_init (HierarchicalTagUtilities * self) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ self->ref_count = 1;
+#line 2274 "HierarchicalTagUtilities.c"
+}
+
+
+static void hierarchical_tag_utilities_finalize (HierarchicalTagUtilities* obj) {
+ HierarchicalTagUtilities * self;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HIERARCHICAL_TAG_UTILITIES, HierarchicalTagUtilities);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_signal_handlers_destroy (self);
+#line 2284 "HierarchicalTagUtilities.c"
+}
+
+
+GType hierarchical_tag_utilities_get_type (void) {
+ static volatile gsize hierarchical_tag_utilities_type_id__volatile = 0;
+ if (g_once_init_enter (&hierarchical_tag_utilities_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_hierarchical_tag_utilities_init, value_hierarchical_tag_utilities_free_value, value_hierarchical_tag_utilities_copy_value, value_hierarchical_tag_utilities_peek_pointer, "p", value_hierarchical_tag_utilities_collect_value, "p", value_hierarchical_tag_utilities_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (HierarchicalTagUtilitiesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hierarchical_tag_utilities_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HierarchicalTagUtilities), 0, (GInstanceInitFunc) hierarchical_tag_utilities_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType hierarchical_tag_utilities_type_id;
+ hierarchical_tag_utilities_type_id = g_type_register_fundamental (g_type_fundamental_next (), "HierarchicalTagUtilities", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&hierarchical_tag_utilities_type_id__volatile, hierarchical_tag_utilities_type_id);
+ }
+ return hierarchical_tag_utilities_type_id__volatile;
+}
+
+
+gpointer hierarchical_tag_utilities_ref (gpointer instance) {
+ HierarchicalTagUtilities* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ return instance;
+#line 2309 "HierarchicalTagUtilities.c"
+}
+
+
+void hierarchical_tag_utilities_unref (gpointer instance) {
+ HierarchicalTagUtilities* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ HIERARCHICAL_TAG_UTILITIES_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/tags/HierarchicalTagUtilities.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2322 "HierarchicalTagUtilities.c"
+ }
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ if ((array != NULL) && (destroy_func != NULL)) {
+ int i;
+ for (i = 0; i < array_length; i = i + 1) {
+ if (((gpointer*) array)[i] != NULL) {
+ destroy_func (((gpointer*) array)[i]);
+ }
+ }
+ }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+ _vala_array_destroy (array, array_length, destroy_func);
+ g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+ int length;
+ length = 0;
+ if (array) {
+ while (((gpointer*) array)[length]) {
+ length++;
+ }
+ }
+ return length;
+}
+
+
+
diff --git a/src/tags/TagPage.c b/src/tags/TagPage.c
new file mode 100644
index 0000000..c85ae23
--- /dev/null
+++ b/src/tags/TagPage.c
@@ -0,0 +1,1635 @@
+/* TagPage.c generated by valac 0.32.1, the Vala compiler
+ * generated from TagPage.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <glib/gi18n-lib.h>
+
+
+#define TYPE_PAGE (page_get_type ())
+#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
+#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
+#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
+#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
+#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))
+
+typedef struct _Page Page;
+typedef struct _PageClass PageClass;
+typedef struct _PagePrivate PagePrivate;
+
+#define TYPE_PAGE_WINDOW (page_window_get_type ())
+#define PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_WINDOW, PageWindow))
+#define PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_WINDOW, PageWindowClass))
+#define IS_PAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_WINDOW))
+#define IS_PAGE_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_WINDOW))
+#define PAGE_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_WINDOW, PageWindowClass))
+
+typedef struct _PageWindow PageWindow;
+typedef struct _PageWindowClass PageWindowClass;
+
+#define TYPE_FULLSCREEN_WINDOW (fullscreen_window_get_type ())
+#define FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindow))
+#define FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+#define IS_FULLSCREEN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_FULLSCREEN_WINDOW))
+#define IS_FULLSCREEN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_FULLSCREEN_WINDOW))
+#define FULLSCREEN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_FULLSCREEN_WINDOW, FullscreenWindowClass))
+
+typedef struct _FullscreenWindow FullscreenWindow;
+typedef struct _FullscreenWindowClass FullscreenWindowClass;
+
+#define TYPE_INJECTION_GROUP (injection_group_get_type ())
+#define INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INJECTION_GROUP, InjectionGroup))
+#define INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INJECTION_GROUP, InjectionGroupClass))
+#define IS_INJECTION_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INJECTION_GROUP))
+#define IS_INJECTION_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INJECTION_GROUP))
+#define INJECTION_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INJECTION_GROUP, InjectionGroupClass))
+
+typedef struct _InjectionGroup InjectionGroup;
+typedef struct _InjectionGroupClass InjectionGroupClass;
+
+#define TYPE_CHECKERBOARD_PAGE (checkerboard_page_get_type ())
+#define CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPage))
+#define CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+#define IS_CHECKERBOARD_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_PAGE))
+#define IS_CHECKERBOARD_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_PAGE))
+#define CHECKERBOARD_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_PAGE, CheckerboardPageClass))
+
+typedef struct _CheckerboardPage CheckerboardPage;
+typedef struct _CheckerboardPageClass CheckerboardPageClass;
+typedef struct _CheckerboardPagePrivate CheckerboardPagePrivate;
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_VIEW (data_view_get_type ())
+#define DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_VIEW, DataView))
+#define DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_VIEW, DataViewClass))
+#define IS_DATA_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_VIEW))
+#define IS_DATA_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_VIEW))
+#define DATA_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_VIEW, DataViewClass))
+
+typedef struct _DataView DataView;
+typedef struct _DataViewClass DataViewClass;
+
+#define TYPE_THUMBNAIL_VIEW (thumbnail_view_get_type ())
+#define THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailView))
+#define THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+#define IS_THUMBNAIL_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_VIEW))
+#define IS_THUMBNAIL_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_VIEW))
+#define THUMBNAIL_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_VIEW, ThumbnailViewClass))
+
+typedef struct _ThumbnailView ThumbnailView;
+typedef struct _ThumbnailViewClass ThumbnailViewClass;
+
+#define TYPE_CHECKERBOARD_ITEM (checkerboard_item_get_type ())
+#define CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItem))
+#define CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+#define IS_CHECKERBOARD_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHECKERBOARD_ITEM))
+#define IS_CHECKERBOARD_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHECKERBOARD_ITEM))
+#define CHECKERBOARD_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHECKERBOARD_ITEM, CheckerboardItemClass))
+
+typedef struct _CheckerboardItem CheckerboardItem;
+typedef struct _CheckerboardItemClass CheckerboardItemClass;
+
+#define CHECKERBOARD_PAGE_TYPE_ACTIVATOR (checkerboard_page_activator_get_type ())
+
+#define CHECKERBOARD_PAGE_TYPE_KEYBOARD_MODIFIERS (checkerboard_page_keyboard_modifiers_get_type ())
+typedef struct _CheckerboardPageKeyboardModifiers CheckerboardPageKeyboardModifiers;
+
+#define TYPE_VIEW_FILTER (view_filter_get_type ())
+#define VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_FILTER, ViewFilter))
+#define VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_FILTER, ViewFilterClass))
+#define IS_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_FILTER))
+#define IS_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_FILTER))
+#define VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_FILTER, ViewFilterClass))
+
+typedef struct _ViewFilter ViewFilter;
+typedef struct _ViewFilterClass ViewFilterClass;
+
+#define TYPE_SEARCH_VIEW_FILTER (search_view_filter_get_type ())
+#define SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilter))
+#define SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+#define IS_SEARCH_VIEW_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEARCH_VIEW_FILTER))
+#define IS_SEARCH_VIEW_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEARCH_VIEW_FILTER))
+#define SEARCH_VIEW_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEARCH_VIEW_FILTER, SearchViewFilterClass))
+
+typedef struct _SearchViewFilter SearchViewFilter;
+typedef struct _SearchViewFilterClass SearchViewFilterClass;
+
+#define CORE_TYPE_TRACKER (core_tracker_get_type ())
+#define CORE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_TRACKER, CoreTracker))
+#define CORE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_TRACKER, CoreTrackerClass))
+#define CORE_IS_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_TRACKER))
+#define CORE_IS_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_TRACKER))
+#define CORE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_TRACKER, CoreTrackerClass))
+
+typedef struct _CoreTracker CoreTracker;
+typedef struct _CoreTrackerClass CoreTrackerClass;
+
+#define CORE_TYPE_VIEW_TRACKER (core_view_tracker_get_type ())
+#define CORE_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTracker))
+#define CORE_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+#define CORE_IS_VIEW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CORE_TYPE_VIEW_TRACKER))
+#define CORE_IS_VIEW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CORE_TYPE_VIEW_TRACKER))
+#define CORE_VIEW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CORE_TYPE_VIEW_TRACKER, CoreViewTrackerClass))
+
+typedef struct _CoreViewTracker CoreViewTracker;
+typedef struct _CoreViewTrackerClass CoreViewTrackerClass;
+
+#define TYPE_MEDIA_PAGE (media_page_get_type ())
+#define MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_PAGE, MediaPage))
+#define MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_PAGE, MediaPageClass))
+#define IS_MEDIA_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_PAGE))
+#define IS_MEDIA_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_PAGE))
+#define MEDIA_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_PAGE, MediaPageClass))
+
+typedef struct _MediaPage MediaPage;
+typedef struct _MediaPageClass MediaPageClass;
+typedef struct _MediaPagePrivate MediaPagePrivate;
+
+#define TYPE_RATING (rating_get_type ())
+
+#define TYPE_RAW_DEVELOPER (raw_developer_get_type ())
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_COLLECTION_PAGE (collection_page_get_type ())
+#define COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_PAGE, CollectionPage))
+#define COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_PAGE, CollectionPageClass))
+#define IS_COLLECTION_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_PAGE))
+#define IS_COLLECTION_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_PAGE))
+#define COLLECTION_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_PAGE, CollectionPageClass))
+
+typedef struct _CollectionPage CollectionPage;
+typedef struct _CollectionPageClass CollectionPageClass;
+typedef struct _CollectionPagePrivate CollectionPagePrivate;
+
+#define TYPE_TAG_PAGE (tag_page_get_type ())
+#define TAG_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_PAGE, TagPage))
+#define TAG_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_PAGE, TagPageClass))
+#define IS_TAG_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_PAGE))
+#define IS_TAG_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_PAGE))
+#define TAG_PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_PAGE, TagPageClass))
+
+typedef struct _TagPage TagPage;
+typedef struct _TagPageClass TagPageClass;
+typedef struct _TagPagePrivate TagPagePrivate;
+
+#define TYPE_TAG (tag_get_type ())
+#define TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG, Tag))
+#define TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG, TagClass))
+#define IS_TAG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG))
+#define IS_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG))
+#define TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG, TagClass))
+
+typedef struct _Tag Tag;
+typedef struct _TagClass TagClass;
+
+#define TYPE_DATA_COLLECTION (data_collection_get_type ())
+#define DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_COLLECTION, DataCollection))
+#define DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_COLLECTION, DataCollectionClass))
+#define IS_DATA_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_COLLECTION))
+#define IS_DATA_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_COLLECTION))
+#define DATA_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_COLLECTION, DataCollectionClass))
+
+typedef struct _DataCollection DataCollection;
+typedef struct _DataCollectionClass DataCollectionClass;
+
+#define TYPE_VIEW_COLLECTION (view_collection_get_type ())
+#define VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VIEW_COLLECTION, ViewCollection))
+#define VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+#define IS_VIEW_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VIEW_COLLECTION))
+#define IS_VIEW_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VIEW_COLLECTION))
+#define VIEW_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VIEW_COLLECTION, ViewCollectionClass))
+
+typedef struct _ViewCollection ViewCollection;
+typedef struct _ViewCollectionClass ViewCollectionClass;
+#define _data_collection_unref0(var) ((var == NULL) ? NULL : (var = (data_collection_unref (var), NULL)))
+
+#define TYPE_SOURCE_COLLECTION (source_collection_get_type ())
+#define SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SOURCE_COLLECTION, SourceCollection))
+#define SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+#define IS_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SOURCE_COLLECTION))
+#define IS_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SOURCE_COLLECTION))
+#define SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SOURCE_COLLECTION, SourceCollectionClass))
+
+typedef struct _SourceCollection SourceCollection;
+typedef struct _SourceCollectionClass SourceCollectionClass;
+
+#define TYPE_DATABASE_SOURCE_COLLECTION (database_source_collection_get_type ())
+#define DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollection))
+#define DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+#define IS_DATABASE_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATABASE_SOURCE_COLLECTION))
+#define IS_DATABASE_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATABASE_SOURCE_COLLECTION))
+#define DATABASE_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATABASE_SOURCE_COLLECTION, DatabaseSourceCollectionClass))
+
+typedef struct _DatabaseSourceCollection DatabaseSourceCollection;
+typedef struct _DatabaseSourceCollectionClass DatabaseSourceCollectionClass;
+
+#define TYPE_CONTAINER_SOURCE_COLLECTION (container_source_collection_get_type ())
+#define CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollection))
+#define CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+#define IS_CONTAINER_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define IS_CONTAINER_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTAINER_SOURCE_COLLECTION))
+#define CONTAINER_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTAINER_SOURCE_COLLECTION, ContainerSourceCollectionClass))
+
+typedef struct _ContainerSourceCollection ContainerSourceCollection;
+typedef struct _ContainerSourceCollectionClass ContainerSourceCollectionClass;
+
+#define TYPE_TAG_SOURCE_COLLECTION (tag_source_collection_get_type ())
+#define TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollection))
+#define TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+#define IS_TAG_SOURCE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_SOURCE_COLLECTION))
+#define IS_TAG_SOURCE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_SOURCE_COLLECTION))
+#define TAG_SOURCE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_SOURCE_COLLECTION, TagSourceCollectionClass))
+
+typedef struct _TagSourceCollection TagSourceCollection;
+typedef struct _TagSourceCollectionClass TagSourceCollectionClass;
+
+#define TYPE_ALTERATION (alteration_get_type ())
+#define ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ALTERATION, Alteration))
+#define ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ALTERATION, AlterationClass))
+#define IS_ALTERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ALTERATION))
+#define IS_ALTERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ALTERATION))
+#define ALTERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ALTERATION, AlterationClass))
+
+typedef struct _Alteration Alteration;
+typedef struct _AlterationClass AlterationClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+#define TYPE_CONFIGURATION_FACADE (configuration_facade_get_type ())
+#define CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacade))
+#define CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+#define IS_CONFIGURATION_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIGURATION_FACADE))
+#define IS_CONFIGURATION_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIGURATION_FACADE))
+#define CONFIGURATION_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIGURATION_FACADE, ConfigurationFacadeClass))
+
+typedef struct _ConfigurationFacade ConfigurationFacade;
+typedef struct _ConfigurationFacadeClass ConfigurationFacadeClass;
+
+#define CONFIG_TYPE_FACADE (config_facade_get_type ())
+#define CONFIG_FACADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CONFIG_TYPE_FACADE, ConfigFacade))
+#define CONFIG_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+#define CONFIG_IS_FACADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CONFIG_TYPE_FACADE))
+#define CONFIG_IS_FACADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CONFIG_TYPE_FACADE))
+#define CONFIG_FACADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CONFIG_TYPE_FACADE, ConfigFacadeClass))
+
+typedef struct _ConfigFacade ConfigFacade;
+typedef struct _ConfigFacadeClass ConfigFacadeClass;
+
+#define TYPE_COMMAND (command_get_type ())
+#define COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND, Command))
+#define COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND, CommandClass))
+#define IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND))
+#define IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND))
+#define COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND, CommandClass))
+
+typedef struct _Command Command;
+typedef struct _CommandClass CommandClass;
+
+#define TYPE_PAGE_COMMAND (page_command_get_type ())
+#define PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_COMMAND, PageCommand))
+#define PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_COMMAND, PageCommandClass))
+#define IS_PAGE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_COMMAND))
+#define IS_PAGE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_COMMAND))
+#define PAGE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_COMMAND, PageCommandClass))
+
+typedef struct _PageCommand PageCommand;
+typedef struct _PageCommandClass PageCommandClass;
+
+#define TYPE_SIMPLE_PROXYABLE_COMMAND (simple_proxyable_command_get_type ())
+#define SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommand))
+#define SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+#define IS_SIMPLE_PROXYABLE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define IS_SIMPLE_PROXYABLE_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SIMPLE_PROXYABLE_COMMAND))
+#define SIMPLE_PROXYABLE_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SIMPLE_PROXYABLE_COMMAND, SimpleProxyableCommandClass))
+
+typedef struct _SimpleProxyableCommand SimpleProxyableCommand;
+typedef struct _SimpleProxyableCommandClass SimpleProxyableCommandClass;
+
+#define TYPE_NEW_CHILD_TAG_COMMAND (new_child_tag_command_get_type ())
+#define NEW_CHILD_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommand))
+#define NEW_CHILD_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommandClass))
+#define IS_NEW_CHILD_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NEW_CHILD_TAG_COMMAND))
+#define IS_NEW_CHILD_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NEW_CHILD_TAG_COMMAND))
+#define NEW_CHILD_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NEW_CHILD_TAG_COMMAND, NewChildTagCommandClass))
+
+typedef struct _NewChildTagCommand NewChildTagCommand;
+typedef struct _NewChildTagCommandClass NewChildTagCommandClass;
+
+#define TYPE_COMMAND_MANAGER (command_manager_get_type ())
+#define COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COMMAND_MANAGER, CommandManager))
+#define COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COMMAND_MANAGER, CommandManagerClass))
+#define IS_COMMAND_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COMMAND_MANAGER))
+#define IS_COMMAND_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COMMAND_MANAGER))
+#define COMMAND_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COMMAND_MANAGER, CommandManagerClass))
+
+typedef struct _CommandManager CommandManager;
+typedef struct _CommandManagerClass CommandManagerClass;
+#define _command_manager_unref0(var) ((var == NULL) ? NULL : (var = (command_manager_unref (var), NULL)))
+
+#define TYPE_APP_WINDOW (app_window_get_type ())
+#define APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APP_WINDOW, AppWindow))
+#define APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APP_WINDOW, AppWindowClass))
+#define IS_APP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APP_WINDOW))
+#define IS_APP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APP_WINDOW))
+#define APP_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APP_WINDOW, AppWindowClass))
+
+typedef struct _AppWindow AppWindow;
+typedef struct _AppWindowClass AppWindowClass;
+
+#define TYPE_LIBRARY_WINDOW (library_window_get_type ())
+#define LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_LIBRARY_WINDOW, LibraryWindow))
+#define LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+#define IS_LIBRARY_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_LIBRARY_WINDOW))
+#define IS_LIBRARY_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_LIBRARY_WINDOW))
+#define LIBRARY_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_LIBRARY_WINDOW, LibraryWindowClass))
+
+typedef struct _LibraryWindow LibraryWindow;
+typedef struct _LibraryWindowClass LibraryWindowClass;
+
+#define TYPE_DELETE_TAG_COMMAND (delete_tag_command_get_type ())
+#define DELETE_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DELETE_TAG_COMMAND, DeleteTagCommand))
+#define DELETE_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DELETE_TAG_COMMAND, DeleteTagCommandClass))
+#define IS_DELETE_TAG_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DELETE_TAG_COMMAND))
+#define IS_DELETE_TAG_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DELETE_TAG_COMMAND))
+#define DELETE_TAG_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DELETE_TAG_COMMAND, DeleteTagCommandClass))
+
+typedef struct _DeleteTagCommand DeleteTagCommand;
+typedef struct _DeleteTagCommandClass DeleteTagCommandClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_TAG_UNTAG_PHOTOS_COMMAND (tag_untag_photos_command_get_type ())
+#define TAG_UNTAG_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommand))
+#define TAG_UNTAG_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommandClass))
+#define IS_TAG_UNTAG_PHOTOS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND))
+#define IS_TAG_UNTAG_PHOTOS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TAG_UNTAG_PHOTOS_COMMAND))
+#define TAG_UNTAG_PHOTOS_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TAG_UNTAG_PHOTOS_COMMAND, TagUntagPhotosCommandClass))
+
+typedef struct _TagUntagPhotosCommand TagUntagPhotosCommand;
+typedef struct _TagUntagPhotosCommandClass TagUntagPhotosCommandClass;
+
+struct _Page {
+ GtkScrolledWindow parent_instance;
+ PagePrivate * priv;
+ GtkUIManager* ui;
+ GtkToolbar* toolbar;
+ gboolean in_view;
+};
+
+struct _PageClass {
+ GtkScrolledWindowClass parent_class;
+ void (*set_page_name) (Page* self, const gchar* page_name);
+ void (*set_container) (Page* self, GtkWindow* container);
+ void (*clear_container) (Page* self);
+ GtkMenuBar* (*get_menubar) (Page* self);
+ GtkWidget* (*get_page_ui_widget) (Page* self, const gchar* path);
+ GtkToolbar* (*get_toolbar) (Page* self);
+ GtkMenu* (*get_page_context_menu) (Page* self);
+ void (*switching_from) (Page* self);
+ void (*switched_to) (Page* self);
+ void (*ready) (Page* self);
+ void (*switching_to_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*returning_from_fullscreen) (Page* self, FullscreenWindow* fsw);
+ void (*init_collect_ui_filenames) (Page* self, GeeList* ui_filenames);
+ GtkActionEntry* (*init_collect_action_entries) (Page* self, int* result_length1);
+ GtkToggleActionEntry* (*init_collect_toggle_action_entries) (Page* self, int* result_length1);
+ void (*register_radio_actions) (Page* self, GtkActionGroup* action_group);
+ InjectionGroup** (*init_collect_injection_groups) (Page* self, int* result_length1);
+ void (*init_actions) (Page* self, gint selected_count, gint count);
+ void (*update_actions) (Page* self, gint selected_count, gint count);
+ gboolean (*source_drag_failed) (Page* self, GdkDragContext* context, GtkDragResult drag_result);
+ gboolean (*on_left_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_click) (Page* self, GdkEventButton* event);
+ gboolean (*on_left_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_middle_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_right_released) (Page* self, GdkEventButton* event);
+ gboolean (*on_ctrl_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_ctrl_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_alt_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_shift_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_super_released) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_pressed) (Page* self, GdkEventKey* event);
+ gboolean (*on_app_key_released) (Page* self, GdkEventKey* event);
+ void (*on_move) (Page* self, GdkRectangle* rect);
+ void (*on_move_start) (Page* self, GdkRectangle* rect);
+ void (*on_move_finished) (Page* self, GdkRectangle* rect);
+ void (*on_resize) (Page* self, GdkRectangle* rect);
+ void (*on_resize_start) (Page* self, GdkRectangle* rect);
+ void (*on_resize_finished) (Page* self, GdkRectangle* rect);
+ gboolean (*on_configure) (Page* self, GdkEventConfigure* event, GdkRectangle* rect);
+ gboolean (*on_motion) (Page* self, GdkEventMotion* event, gint x, gint y, GdkModifierType mask);
+ gboolean (*on_leave_notify_event) (Page* self);
+ gboolean (*on_mousewheel_up) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_down) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_left) (Page* self, GdkEventScroll* event);
+ gboolean (*on_mousewheel_right) (Page* self, GdkEventScroll* event);
+ gboolean (*on_context_keypress) (Page* self);
+ gboolean (*on_context_buttonpress) (Page* self, GdkEventButton* event);
+ gboolean (*on_context_invoked) (Page* self);
+ void (*set_page_cursor) (Page* self, GdkCursorType cursor_type);
+};
+
+typedef enum {
+ CHECKERBOARD_PAGE_ACTIVATOR_KEYBOARD,
+ CHECKERBOARD_PAGE_ACTIVATOR_MOUSE
+} CheckerboardPageActivator;
+
+struct _CheckerboardPageKeyboardModifiers {
+ gboolean ctrl_pressed;
+ gboolean alt_pressed;
+ gboolean shift_pressed;
+ gboolean super_pressed;
+};
+
+struct _CheckerboardPage {
+ Page parent_instance;
+ CheckerboardPagePrivate * priv;
+ CheckerboardItem* anchor;
+ CheckerboardItem* cursor;
+};
+
+struct _CheckerboardPageClass {
+ PageClass parent_class;
+ GtkMenu* (*get_item_context_menu) (CheckerboardPage* self);
+ gchar* (*get_view_empty_message) (CheckerboardPage* self);
+ gchar* (*get_filter_no_match_message) (CheckerboardPage* self);
+ void (*on_item_activated) (CheckerboardPage* self, CheckerboardItem* item, CheckerboardPageActivator activator, CheckerboardPageKeyboardModifiers* modifiers);
+ SearchViewFilter* (*get_search_view_filter) (CheckerboardPage* self);
+ CoreViewTracker* (*get_view_tracker) (CheckerboardPage* self);
+ gboolean (*on_mouse_over) (CheckerboardPage* self, CheckerboardItem* item, gint x, gint y, GdkModifierType mask);
+ void (*set_display_titles) (CheckerboardPage* self, gboolean display);
+ void (*set_display_comments) (CheckerboardPage* self, gboolean display);
+};
+
+typedef enum {
+ RATING_REJECTED = -1,
+ RATING_UNRATED = 0,
+ RATING_ONE = 1,
+ RATING_TWO = 2,
+ RATING_THREE = 3,
+ RATING_FOUR = 4,
+ RATING_FIVE = 5
+} Rating;
+
+typedef enum {
+ RAW_DEVELOPER_SHOTWELL = 0,
+ RAW_DEVELOPER_CAMERA,
+ RAW_DEVELOPER_EMBEDDED
+} RawDeveloper;
+
+struct _MediaPage {
+ CheckerboardPage parent_instance;
+ MediaPagePrivate * priv;
+};
+
+struct _MediaPageClass {
+ CheckerboardPageClass parent_class;
+ void (*on_zoom_changed) (MediaPage* self);
+ void (*on_export) (MediaPage* self);
+ void (*on_increase_size) (MediaPage* self);
+ void (*on_decrease_size) (MediaPage* self);
+ void (*on_increase_rating) (MediaPage* self);
+ void (*on_decrease_rating) (MediaPage* self);
+ void (*on_set_rating) (MediaPage* self, Rating rating);
+ void (*on_rate_rejected) (MediaPage* self);
+ void (*on_rate_unrated) (MediaPage* self);
+ void (*on_rate_one) (MediaPage* self);
+ void (*on_rate_two) (MediaPage* self);
+ void (*on_rate_three) (MediaPage* self);
+ void (*on_rate_four) (MediaPage* self);
+ void (*on_rate_five) (MediaPage* self);
+ void (*on_move_to_trash) (MediaPage* self);
+ void (*on_edit_title) (MediaPage* self);
+ void (*on_edit_comment) (MediaPage* self);
+ void (*on_display_titles) (MediaPage* self, GtkAction* action);
+ void (*on_display_comments) (MediaPage* self, GtkAction* action);
+ void (*on_display_ratings) (MediaPage* self, GtkAction* action);
+ void (*on_display_tags) (MediaPage* self, GtkAction* action);
+ void (*get_config_photos_sort) (MediaPage* self, gboolean* sort_order, gint* sort_by);
+ void (*set_config_photos_sort) (MediaPage* self, gboolean sort_order, gint sort_by);
+ void (*on_sort_changed) (MediaPage* self);
+ void (*developer_changed) (MediaPage* self, RawDeveloper rd);
+ DataView* (*create_thumbnail) (MediaPage* self, DataSource* source);
+};
+
+struct _CollectionPage {
+ MediaPage parent_instance;
+ CollectionPagePrivate * priv;
+};
+
+struct _CollectionPageClass {
+ MediaPageClass parent_class;
+};
+
+struct _TagPage {
+ CollectionPage parent_instance;
+ TagPagePrivate * priv;
+};
+
+struct _TagPageClass {
+ CollectionPageClass parent_class;
+};
+
+struct _TagPagePrivate {
+ Tag* tag;
+};
+
+typedef DataView* (*CreateView) (DataSource* source, void* user_data);
+
+static gpointer tag_page_parent_class = NULL;
+extern TagSourceCollection* tag_global;
+
+GType page_get_type (void) G_GNUC_CONST;
+GType page_window_get_type (void) G_GNUC_CONST;
+GType fullscreen_window_get_type (void) G_GNUC_CONST;
+gpointer injection_group_ref (gpointer instance);
+void injection_group_unref (gpointer instance);
+GParamSpec* param_spec_injection_group (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_injection_group (GValue* value, gpointer v_object);
+void value_take_injection_group (GValue* value, gpointer v_object);
+gpointer value_get_injection_group (const GValue* value);
+GType injection_group_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_get_type (void) G_GNUC_CONST;
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_view_get_type (void) G_GNUC_CONST;
+GType thumbnail_view_get_type (void) G_GNUC_CONST;
+GType checkerboard_item_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_activator_get_type (void) G_GNUC_CONST;
+GType checkerboard_page_keyboard_modifiers_get_type (void) G_GNUC_CONST;
+CheckerboardPageKeyboardModifiers* checkerboard_page_keyboard_modifiers_dup (const CheckerboardPageKeyboardModifiers* self);
+void checkerboard_page_keyboard_modifiers_free (CheckerboardPageKeyboardModifiers* self);
+gpointer view_filter_ref (gpointer instance);
+void view_filter_unref (gpointer instance);
+GParamSpec* param_spec_view_filter (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_view_filter (GValue* value, gpointer v_object);
+void value_take_view_filter (GValue* value, gpointer v_object);
+gpointer value_get_view_filter (const GValue* value);
+GType view_filter_get_type (void) G_GNUC_CONST;
+GType search_view_filter_get_type (void) G_GNUC_CONST;
+gpointer core_tracker_ref (gpointer instance);
+void core_tracker_unref (gpointer instance);
+GParamSpec* core_param_spec_tracker (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void core_value_set_tracker (GValue* value, gpointer v_object);
+void core_value_take_tracker (GValue* value, gpointer v_object);
+gpointer core_value_get_tracker (const GValue* value);
+GType core_tracker_get_type (void) G_GNUC_CONST;
+GType core_view_tracker_get_type (void) G_GNUC_CONST;
+GType media_page_get_type (void) G_GNUC_CONST;
+GType rating_get_type (void) G_GNUC_CONST;
+GType raw_developer_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType collection_page_get_type (void) G_GNUC_CONST;
+GType tag_page_get_type (void) G_GNUC_CONST;
+GType tag_get_type (void) G_GNUC_CONST;
+#define TAG_PAGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TAG_PAGE, TagPagePrivate))
+enum {
+ TAG_PAGE_DUMMY_PROPERTY
+};
+gpointer data_collection_ref (gpointer instance);
+void data_collection_unref (gpointer instance);
+GParamSpec* param_spec_data_collection (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_data_collection (GValue* value, gpointer v_object);
+void value_take_data_collection (GValue* value, gpointer v_object);
+gpointer value_get_data_collection (const GValue* value);
+GType data_collection_get_type (void) G_GNUC_CONST;
+GType view_collection_get_type (void) G_GNUC_CONST;
+ViewCollection* page_get_view (Page* self);
+void view_collection_halt_mirroring (ViewCollection* self);
+GType source_collection_get_type (void) G_GNUC_CONST;
+GType database_source_collection_get_type (void) G_GNUC_CONST;
+GType container_source_collection_get_type (void) G_GNUC_CONST;
+GType tag_source_collection_get_type (void) G_GNUC_CONST;
+gpointer alteration_ref (gpointer instance);
+void alteration_unref (gpointer instance);
+GParamSpec* param_spec_alteration (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_alteration (GValue* value, gpointer v_object);
+void value_take_alteration (GValue* value, gpointer v_object);
+gpointer value_get_alteration (const GValue* value);
+GType alteration_get_type (void) G_GNUC_CONST;
+static void tag_page_on_tags_altered (TagPage* self, GeeMap* map);
+static void _tag_page_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self);
+TagPage* tag_page_new (Tag* tag);
+TagPage* tag_page_construct (GType object_type, Tag* tag);
+gchar* data_object_get_name (DataObject* self);
+CollectionPage* collection_page_construct (GType object_type, const gchar* page_name);
+void tag_mirror_sources (Tag* self, ViewCollection* view, CreateView mirroring_ctor, void* mirroring_ctor_target);
+DataView* media_page_create_thumbnail (MediaPage* self, DataSource* source);
+static DataView* _media_page_create_thumbnail_create_view (DataSource* source, gpointer self);
+void checkerboard_page_init_page_context_menu (CheckerboardPage* self, const gchar* path);
+static void tag_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames);
+void page_init_collect_ui_filenames (Page* self, GeeList* ui_filenames);
+Tag* tag_page_get_tag (TagPage* self);
+static void tag_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by);
+GType configuration_facade_get_type (void) G_GNUC_CONST;
+GType config_facade_get_type (void) G_GNUC_CONST;
+ConfigFacade* config_facade_get_instance (void);
+void configuration_facade_get_event_photos_sort (ConfigurationFacade* self, gboolean* sort_order, gint* sort_by);
+static void tag_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by);
+void configuration_facade_set_event_photos_sort (ConfigurationFacade* self, gboolean sort_order, gint sort_by);
+static GtkActionEntry* tag_page_real_init_collect_action_entries (Page* base, int* result_length1);
+GtkActionEntry* page_init_collect_action_entries (Page* self, int* result_length1);
+#define TRANSLATABLE "translatable"
+static void tag_page_on_delete_tag (TagPage* self);
+static void _tag_page_on_delete_tag_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add134 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void tag_page_on_rename_tag (TagPage* self);
+static void _tag_page_on_rename_tag_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add135 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+static void tag_page_on_remove_tag_from_photos (TagPage* self);
+static void _tag_page_on_remove_tag_from_photos_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add136 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_DELETE_TAG_SIDEBAR_MENU _ ("_Delete")
+static void _vala_array_add137 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_RENAME_TAG_SIDEBAR_MENU _ ("_Rename...")
+static void _vala_array_add138 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+#define RESOURCES_NEW_CHILD_TAG_SIDEBAR_MENU _ ("_New")
+static void tag_page_on_new_child_tag_sidebar (TagPage* self);
+static void _tag_page_on_new_child_tag_sidebar_gtk_action_callback (GtkAction* action, gpointer self);
+static void _vala_array_add139 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
+void page_set_page_name (Page* self, const gchar* page_name);
+void page_update_actions (Page* self, gint selected_count, gint count);
+gint view_collection_get_selected_count (ViewCollection* self);
+gint data_collection_get_count (DataCollection* self);
+static void tag_page_real_update_actions (Page* base, gint selected_count, gint count);
+void page_set_action_details (Page* self, const gchar* name, const gchar* label, const gchar* tooltip, gboolean sensitive);
+gchar* resources_delete_tag_menu (const gchar* name);
+gchar* tag_get_user_visible_name (Tag* self);
+gchar* resources_rename_tag_menu (const gchar* name);
+gchar* resources_untag_photos_menu (const gchar* name, gint count);
+GType command_get_type (void) G_GNUC_CONST;
+GType page_command_get_type (void) G_GNUC_CONST;
+GType simple_proxyable_command_get_type (void) G_GNUC_CONST;
+GType new_child_tag_command_get_type (void) G_GNUC_CONST;
+NewChildTagCommand* new_child_tag_command_new (Tag* tag);
+NewChildTagCommand* new_child_tag_command_construct (GType object_type, Tag* tag);
+gpointer command_manager_ref (gpointer instance);
+void command_manager_unref (gpointer instance);
+GParamSpec* param_spec_command_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_command_manager (GValue* value, gpointer v_object);
+void value_take_command_manager (GValue* value, gpointer v_object);
+gpointer value_get_command_manager (const GValue* value);
+GType command_manager_get_type (void) G_GNUC_CONST;
+CommandManager* app_window_get_command_manager (void);
+void command_manager_execute (CommandManager* self, Command* command);
+GType app_window_get_type (void) G_GNUC_CONST;
+GType library_window_get_type (void) G_GNUC_CONST;
+LibraryWindow* library_window_get_app (void);
+void library_window_rename_tag_in_sidebar (LibraryWindow* self, Tag* tag);
+Tag* new_child_tag_command_get_created_child (NewChildTagCommand* self);
+gboolean dialogs_confirm_delete_tag (Tag* tag);
+DeleteTagCommand* delete_tag_command_new (Tag* tag);
+DeleteTagCommand* delete_tag_command_construct (GType object_type, Tag* tag);
+GType delete_tag_command_get_type (void) G_GNUC_CONST;
+CommandManager* page_get_command_manager (Page* self);
+GeeList* view_collection_get_selected_sources (ViewCollection* self);
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+TagUntagPhotosCommand* tag_untag_photos_command_new (Tag* tag, GeeCollection* sources, gint count, gboolean attach);
+TagUntagPhotosCommand* tag_untag_photos_command_construct (GType object_type, Tag* tag, GeeCollection* sources, gint count, gboolean attach);
+GType tag_untag_photos_command_get_type (void) G_GNUC_CONST;
+static void tag_page_finalize (GObject* obj);
+
+
+static void _tag_page_on_tags_altered_data_collection_items_altered (DataCollection* _sender, GeeMap* items, gpointer self) {
+#line 23 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ tag_page_on_tags_altered ((TagPage*) self, items);
+#line 748 "TagPage.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 13 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 755 "TagPage.c"
+}
+
+
+static DataView* _media_page_create_thumbnail_create_view (DataSource* source, gpointer self) {
+ DataView* result;
+ result = media_page_create_thumbnail ((MediaPage*) self, source);
+#line 16 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ return result;
+#line 764 "TagPage.c"
+}
+
+
+TagPage* tag_page_construct (GType object_type, Tag* tag) {
+ TagPage * self = NULL;
+ Tag* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ Tag* _tmp3_ = NULL;
+ Tag* _tmp4_ = NULL;
+ TagSourceCollection* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+#line 10 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_val_if_fail (IS_TAG (tag), NULL);
+#line 11 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = tag;
+#line 11 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_DATA_OBJECT, DataObject));
+#line 11 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = _tmp1_;
+#line 11 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self = (TagPage*) collection_page_construct (object_type, _tmp2_);
+#line 11 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp2_);
+#line 13 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = tag;
+#line 13 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 13 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (self->priv->tag);
+#line 13 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self->priv->tag = _tmp4_;
+#line 15 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_ = tag_global;
+#line 15 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, TYPE_DATA_COLLECTION, DataCollection), "items-altered", (GCallback) _tag_page_on_tags_altered_data_collection_items_altered, self, 0);
+#line 16 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6_ = tag;
+#line 16 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 16 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_ = _tmp7_;
+#line 16 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ tag_mirror_sources (_tmp6_, _tmp8_, _media_page_create_thumbnail_create_view, G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_MEDIA_PAGE, MediaPage));
+#line 16 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 18 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ checkerboard_page_init_page_context_menu (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_CHECKERBOARD_PAGE, CheckerboardPage), "/TagsContextMenu");
+#line 10 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ return self;
+#line 817 "TagPage.c"
+}
+
+
+TagPage* tag_page_new (Tag* tag) {
+#line 10 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ return tag_page_construct (TYPE_TAG_PAGE, tag);
+#line 824 "TagPage.c"
+}
+
+
+static void tag_page_real_init_collect_ui_filenames (Page* base, GeeList* ui_filenames) {
+ TagPage * self;
+ GeeList* _tmp0_ = NULL;
+ GeeList* _tmp1_ = NULL;
+#line 26 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_PAGE, TagPage);
+#line 26 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_if_fail (GEE_IS_LIST (ui_filenames));
+#line 27 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = ui_filenames;
+#line 27 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ PAGE_CLASS (tag_page_parent_class)->init_collect_ui_filenames (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp0_);
+#line 28 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = ui_filenames;
+#line 28 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection), "tags.ui");
+#line 844 "TagPage.c"
+}
+
+
+Tag* tag_page_get_tag (TagPage* self) {
+ Tag* result = NULL;
+ Tag* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_val_if_fail (IS_TAG_PAGE (self), NULL);
+#line 32 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = self->priv->tag;
+#line 32 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 32 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ result = _tmp1_;
+#line 32 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ return result;
+#line 862 "TagPage.c"
+}
+
+
+static void tag_page_real_get_config_photos_sort (MediaPage* base, gboolean* sort_order, gint* sort_by) {
+ TagPage * self;
+ gboolean _vala_sort_order = FALSE;
+ gint _vala_sort_by = 0;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 35 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_PAGE, TagPage);
+#line 36 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 36 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = _tmp0_;
+#line 36 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ configuration_facade_get_event_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), &_tmp2_, &_tmp3_);
+#line 36 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_sort_order = _tmp2_;
+#line 36 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_sort_by = _tmp3_;
+#line 36 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 35 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if (sort_order) {
+#line 35 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *sort_order = _vala_sort_order;
+#line 892 "TagPage.c"
+ }
+#line 35 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if (sort_by) {
+#line 35 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *sort_by = _vala_sort_by;
+#line 898 "TagPage.c"
+ }
+}
+
+
+static void tag_page_real_set_config_photos_sort (MediaPage* base, gboolean sort_order, gint sort_by) {
+ TagPage * self;
+ ConfigFacade* _tmp0_ = NULL;
+ ConfigFacade* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+#line 39 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_PAGE, TagPage);
+#line 40 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = config_facade_get_instance ();
+#line 40 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = _tmp0_;
+#line 40 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = sort_order;
+#line 40 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = sort_by;
+#line 40 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ configuration_facade_set_event_photos_sort (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_CONFIGURATION_FACADE, ConfigurationFacade), _tmp2_, _tmp3_);
+#line 40 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 923 "TagPage.c"
+}
+
+
+static void _tag_page_on_delete_tag_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ tag_page_on_delete_tag ((TagPage*) self);
+#line 930 "TagPage.c"
+}
+
+
+static void _vala_array_add134 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if ((*length) == (*size)) {
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 941 "TagPage.c"
+ }
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ (*array)[(*length)++] = *value;
+#line 945 "TagPage.c"
+}
+
+
+static void _tag_page_on_rename_tag_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ tag_page_on_rename_tag ((TagPage*) self);
+#line 952 "TagPage.c"
+}
+
+
+static void _vala_array_add135 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if ((*length) == (*size)) {
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 963 "TagPage.c"
+ }
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ (*array)[(*length)++] = *value;
+#line 967 "TagPage.c"
+}
+
+
+static void _tag_page_on_remove_tag_from_photos_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ tag_page_on_remove_tag_from_photos ((TagPage*) self);
+#line 974 "TagPage.c"
+}
+
+
+static void _vala_array_add136 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if ((*length) == (*size)) {
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 985 "TagPage.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ (*array)[(*length)++] = *value;
+#line 989 "TagPage.c"
+}
+
+
+static void _vala_array_add137 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if ((*length) == (*size)) {
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1000 "TagPage.c"
+ }
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1004 "TagPage.c"
+}
+
+
+static void _vala_array_add138 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if ((*length) == (*size)) {
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1015 "TagPage.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1019 "TagPage.c"
+}
+
+
+static void _tag_page_on_new_child_tag_sidebar_gtk_action_callback (GtkAction* action, gpointer self) {
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ tag_page_on_new_child_tag_sidebar ((TagPage*) self);
+#line 1026 "TagPage.c"
+}
+
+
+static void _vala_array_add139 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if ((*length) == (*size)) {
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *array = g_renew (GtkActionEntry, *array, *size);
+#line 1037 "TagPage.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ (*array)[(*length)++] = *value;
+#line 1041 "TagPage.c"
+}
+
+
+static GtkActionEntry* tag_page_real_init_collect_action_entries (Page* base, int* result_length1) {
+ TagPage * self;
+ GtkActionEntry* result = NULL;
+ GtkActionEntry* actions = NULL;
+ gint _tmp0_ = 0;
+ GtkActionEntry* _tmp1_ = NULL;
+ gint actions_length1 = 0;
+ gint _actions_size_ = 0;
+ GtkActionEntry delete_tag = {0};
+ GtkActionEntry _tmp2_ = {0};
+ GtkActionEntry* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ GtkActionEntry _tmp4_ = {0};
+ GtkActionEntry rename_tag = {0};
+ GtkActionEntry _tmp5_ = {0};
+ GtkActionEntry* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ GtkActionEntry _tmp7_ = {0};
+ GtkActionEntry remove_tag = {0};
+ GtkActionEntry _tmp8_ = {0};
+ GtkActionEntry* _tmp9_ = NULL;
+ gint _tmp9__length1 = 0;
+ GtkActionEntry _tmp10_ = {0};
+ GtkActionEntry delete_tag_sidebar = {0};
+ GtkActionEntry _tmp11_ = {0};
+ GtkActionEntry* _tmp12_ = NULL;
+ gint _tmp12__length1 = 0;
+ GtkActionEntry _tmp13_ = {0};
+ GtkActionEntry rename_tag_sidebar = {0};
+ GtkActionEntry _tmp14_ = {0};
+ GtkActionEntry* _tmp15_ = NULL;
+ gint _tmp15__length1 = 0;
+ GtkActionEntry _tmp16_ = {0};
+ GtkActionEntry new_child_tag_sidebar = {0};
+ GtkActionEntry _tmp17_ = {0};
+ GtkActionEntry* _tmp18_ = NULL;
+ gint _tmp18__length1 = 0;
+ GtkActionEntry _tmp19_ = {0};
+ GtkActionEntry* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+#line 43 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_PAGE, TagPage);
+#line 44 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = PAGE_CLASS (tag_page_parent_class)->init_collect_action_entries (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), &_tmp0_);
+#line 44 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ actions = _tmp1_;
+#line 44 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ actions_length1 = _tmp0_;
+#line 44 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _actions_size_ = actions_length1;
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_.name = "DeleteTag";
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_.stock_id = NULL;
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_.label = TRANSLATABLE;
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_.accelerator = NULL;
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_.tooltip = NULL;
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_.callback = (GCallback) _tag_page_on_delete_tag_gtk_action_callback;
+#line 46 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ delete_tag = _tmp2_;
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = actions;
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3__length1 = actions_length1;
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp4_ = delete_tag;
+#line 48 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_array_add134 (&actions, &actions_length1, &_actions_size_, &_tmp4_);
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_.name = "RenameTag";
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_.stock_id = NULL;
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_.label = TRANSLATABLE;
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_.accelerator = NULL;
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_.tooltip = NULL;
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_.callback = (GCallback) _tag_page_on_rename_tag_gtk_action_callback;
+#line 50 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ rename_tag = _tmp5_;
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6_ = actions;
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6__length1 = actions_length1;
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp7_ = rename_tag;
+#line 52 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_array_add135 (&actions, &actions_length1, &_actions_size_, &_tmp7_);
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_.name = "RemoveTagFromPhotos";
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_.stock_id = NULL;
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_.label = TRANSLATABLE;
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_.accelerator = NULL;
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_.tooltip = NULL;
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_.callback = (GCallback) _tag_page_on_remove_tag_from_photos_gtk_action_callback;
+#line 54 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ remove_tag = _tmp8_;
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp9_ = actions;
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp9__length1 = actions_length1;
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp10_ = remove_tag;
+#line 57 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_array_add136 (&actions, &actions_length1, &_actions_size_, &_tmp10_);
+#line 59 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_.name = "DeleteTagSidebar";
+#line 59 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_.stock_id = NULL;
+#line 59 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_.label = RESOURCES_DELETE_TAG_SIDEBAR_MENU;
+#line 59 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_.accelerator = NULL;
+#line 59 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_.tooltip = NULL;
+#line 59 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_.callback = (GCallback) _tag_page_on_delete_tag_gtk_action_callback;
+#line 59 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ delete_tag_sidebar = _tmp11_;
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp12_ = actions;
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp12__length1 = actions_length1;
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp13_ = delete_tag_sidebar;
+#line 61 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_array_add137 (&actions, &actions_length1, &_actions_size_, &_tmp13_);
+#line 63 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_.name = "RenameTagSidebar";
+#line 63 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_.stock_id = NULL;
+#line 63 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_.label = RESOURCES_RENAME_TAG_SIDEBAR_MENU;
+#line 63 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_.accelerator = NULL;
+#line 63 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_.tooltip = NULL;
+#line 63 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_.callback = (GCallback) _tag_page_on_rename_tag_gtk_action_callback;
+#line 63 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ rename_tag_sidebar = _tmp14_;
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp15_ = actions;
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp15__length1 = actions_length1;
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp16_ = rename_tag_sidebar;
+#line 65 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_array_add138 (&actions, &actions_length1, &_actions_size_, &_tmp16_);
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp17_.name = "NewChildTagSidebar";
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp17_.stock_id = NULL;
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp17_.label = RESOURCES_NEW_CHILD_TAG_SIDEBAR_MENU;
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp17_.accelerator = NULL;
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp17_.tooltip = NULL;
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp17_.callback = (GCallback) _tag_page_on_new_child_tag_sidebar_gtk_action_callback;
+#line 67 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ new_child_tag_sidebar = _tmp17_;
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp18_ = actions;
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp18__length1 = actions_length1;
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp19_ = new_child_tag_sidebar;
+#line 69 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _vala_array_add139 (&actions, &actions_length1, &_actions_size_, &_tmp19_);
+#line 71 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp20_ = actions;
+#line 71 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp20__length1 = actions_length1;
+#line 71 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if (result_length1) {
+#line 71 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ *result_length1 = _tmp20__length1;
+#line 1235 "TagPage.c"
+ }
+#line 71 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ result = _tmp20_;
+#line 71 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ return result;
+#line 1241 "TagPage.c"
+}
+
+
+static void tag_page_on_tags_altered (TagPage* self, GeeMap* map) {
+ GeeMap* _tmp0_ = NULL;
+ Tag* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 74 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_if_fail (IS_TAG_PAGE (self));
+#line 74 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_if_fail (GEE_IS_MAP (map));
+#line 75 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = map;
+#line 75 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = self->priv->tag;
+#line 75 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = gee_map_has_key (_tmp0_, G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_DATA_OBJECT, DataObject));
+#line 75 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if (_tmp2_) {
+#line 1261 "TagPage.c"
+ Tag* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ ViewCollection* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ ViewCollection* _tmp9_ = NULL;
+ ViewCollection* _tmp10_ = NULL;
+ gint _tmp11_ = 0;
+#line 76 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = self->priv->tag;
+#line 76 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp4_ = data_object_get_name (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_DATA_OBJECT, DataObject));
+#line 76 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_ = _tmp4_;
+#line 76 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ page_set_page_name (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp5_);
+#line 76 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp5_);
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp7_ = _tmp6_;
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_ = view_collection_get_selected_count (_tmp7_);
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp9_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp10_ = _tmp9_;
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_ = data_collection_get_count (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, TYPE_DATA_COLLECTION, DataCollection));
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ page_update_actions (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), _tmp8_, _tmp11_);
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _data_collection_unref0 (_tmp10_);
+#line 77 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _data_collection_unref0 (_tmp7_);
+#line 1299 "TagPage.c"
+ }
+}
+
+
+static void tag_page_real_update_actions (Page* base, gint selected_count, gint count) {
+ TagPage * self;
+ Tag* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ Tag* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ Tag* _tmp10_ = NULL;
+ gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gint _tmp16_ = 0;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 81 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_TAG_PAGE, TagPage);
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = self->priv->tag;
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = tag_get_user_visible_name (_tmp0_);
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = _tmp1_;
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = resources_delete_tag_menu (_tmp2_);
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp4_ = _tmp3_;
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ page_set_action_details (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "DeleteTag", _tmp4_, NULL, TRUE);
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp4_);
+#line 82 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp2_);
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_ = self->priv->tag;
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6_ = tag_get_user_visible_name (_tmp5_);
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp7_ = _tmp6_;
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_ = resources_rename_tag_menu (_tmp7_);
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp9_ = _tmp8_;
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ page_set_action_details (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RenameTag", _tmp9_, NULL, TRUE);
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp9_);
+#line 87 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp7_);
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp10_ = self->priv->tag;
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_ = tag_get_user_visible_name (_tmp10_);
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp12_ = _tmp11_;
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp13_ = selected_count;
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_ = resources_untag_photos_menu (_tmp12_, _tmp13_);
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp15_ = _tmp14_;
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp16_ = selected_count;
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ page_set_action_details (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page), "RemoveTagFromPhotos", _tmp15_, NULL, _tmp16_ > 0);
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp15_);
+#line 92 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_free0 (_tmp12_);
+#line 97 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp17_ = selected_count;
+#line 97 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp18_ = count;
+#line 97 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ PAGE_CLASS (tag_page_parent_class)->update_actions (G_TYPE_CHECK_INSTANCE_CAST (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_COLLECTION_PAGE, CollectionPage), TYPE_PAGE, Page), _tmp17_, _tmp18_);
+#line 1385 "TagPage.c"
+}
+
+
+static void tag_page_on_new_child_tag_sidebar (TagPage* self) {
+ NewChildTagCommand* creation_command = NULL;
+ Tag* _tmp0_ = NULL;
+ NewChildTagCommand* _tmp1_ = NULL;
+ CommandManager* _tmp2_ = NULL;
+ CommandManager* _tmp3_ = NULL;
+ LibraryWindow* _tmp4_ = NULL;
+ LibraryWindow* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ Tag* _tmp7_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_if_fail (IS_TAG_PAGE (self));
+#line 101 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = self->priv->tag;
+#line 101 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = new_child_tag_command_new (_tmp0_);
+#line 101 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ creation_command = _tmp1_;
+#line 103 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = app_window_get_command_manager ();
+#line 103 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ command_manager_execute (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (creation_command, TYPE_COMMAND, Command));
+#line 103 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _command_manager_unref0 (_tmp3_);
+#line 105 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp4_ = library_window_get_app ();
+#line 105 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_ = _tmp4_;
+#line 105 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6_ = new_child_tag_command_get_created_child (creation_command);
+#line 105 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp7_ = _tmp6_;
+#line 105 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ library_window_rename_tag_in_sidebar (_tmp5_, _tmp7_);
+#line 105 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp7_);
+#line 105 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp5_);
+#line 100 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (creation_command);
+#line 1431 "TagPage.c"
+}
+
+
+static void tag_page_on_rename_tag (TagPage* self) {
+ LibraryWindow* _tmp0_ = NULL;
+ LibraryWindow* _tmp1_ = NULL;
+ Tag* _tmp2_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_if_fail (IS_TAG_PAGE (self));
+#line 109 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = library_window_get_app ();
+#line 109 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = _tmp0_;
+#line 109 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = self->priv->tag;
+#line 109 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ library_window_rename_tag_in_sidebar (_tmp1_, _tmp2_);
+#line 109 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp1_);
+#line 1451 "TagPage.c"
+}
+
+
+static void tag_page_on_delete_tag (TagPage* self) {
+ Tag* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 112 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_if_fail (IS_TAG_PAGE (self));
+#line 113 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = self->priv->tag;
+#line 113 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = dialogs_confirm_delete_tag (_tmp0_);
+#line 113 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if (_tmp1_) {
+#line 1466 "TagPage.c"
+ CommandManager* _tmp2_ = NULL;
+ CommandManager* _tmp3_ = NULL;
+ Tag* _tmp4_ = NULL;
+ DeleteTagCommand* _tmp5_ = NULL;
+ DeleteTagCommand* _tmp6_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = app_window_get_command_manager ();
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = _tmp2_;
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp4_ = self->priv->tag;
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_ = delete_tag_command_new (_tmp4_);
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6_ = _tmp5_;
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ command_manager_execute (_tmp3_, G_TYPE_CHECK_INSTANCE_CAST (_tmp6_, TYPE_COMMAND, Command));
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp6_);
+#line 114 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _command_manager_unref0 (_tmp3_);
+#line 1488 "TagPage.c"
+ }
+}
+
+
+static void tag_page_on_remove_tag_from_photos (TagPage* self) {
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+#line 117 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_return_if_fail (IS_TAG_PAGE (self));
+#line 118 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 118 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = _tmp0_;
+#line 118 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = view_collection_get_selected_count (_tmp1_);
+#line 118 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp3_ = _tmp2_ > 0;
+#line 118 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 118 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ if (_tmp3_) {
+#line 1512 "TagPage.c"
+ CommandManager* _tmp4_ = NULL;
+ CommandManager* _tmp5_ = NULL;
+ Tag* _tmp6_ = NULL;
+ ViewCollection* _tmp7_ = NULL;
+ ViewCollection* _tmp8_ = NULL;
+ GeeList* _tmp9_ = NULL;
+ GeeCollection* _tmp10_ = NULL;
+ ViewCollection* _tmp11_ = NULL;
+ ViewCollection* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ TagUntagPhotosCommand* _tmp14_ = NULL;
+ TagUntagPhotosCommand* _tmp15_ = NULL;
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp4_ = page_get_command_manager (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp5_ = _tmp4_;
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp6_ = self->priv->tag;
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp7_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp8_ = _tmp7_;
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp9_ = view_collection_get_selected_sources (_tmp8_);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp10_ = G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, GEE_TYPE_COLLECTION, GeeCollection);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp11_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp12_ = _tmp11_;
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp13_ = view_collection_get_selected_count (_tmp12_);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp14_ = tag_untag_photos_command_new (_tmp6_, _tmp10_, _tmp13_, FALSE);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp15_ = _tmp14_;
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ command_manager_execute (_tmp5_, G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, TYPE_COMMAND, Command));
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp15_);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _data_collection_unref0 (_tmp12_);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (_tmp10_);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _data_collection_unref0 (_tmp8_);
+#line 119 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _command_manager_unref0 (_tmp5_);
+#line 1561 "TagPage.c"
+ }
+}
+
+
+static void tag_page_class_init (TagPageClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ tag_page_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_type_class_add_private (klass, sizeof (TagPagePrivate));
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ ((PageClass *) klass)->init_collect_ui_filenames = tag_page_real_init_collect_ui_filenames;
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ ((MediaPageClass *) klass)->get_config_photos_sort = tag_page_real_get_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ ((MediaPageClass *) klass)->set_config_photos_sort = tag_page_real_set_config_photos_sort;
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ ((PageClass *) klass)->init_collect_action_entries = tag_page_real_init_collect_action_entries;
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ ((PageClass *) klass)->update_actions = tag_page_real_update_actions;
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ G_OBJECT_CLASS (klass)->finalize = tag_page_finalize;
+#line 1583 "TagPage.c"
+}
+
+
+static void tag_page_instance_init (TagPage * self) {
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self->priv = TAG_PAGE_GET_PRIVATE (self);
+#line 1590 "TagPage.c"
+}
+
+
+static void tag_page_finalize (GObject* obj) {
+ TagPage * self;
+ ViewCollection* _tmp0_ = NULL;
+ ViewCollection* _tmp1_ = NULL;
+ TagSourceCollection* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TAG_PAGE, TagPage);
+#line 22 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp0_ = page_get_view (G_TYPE_CHECK_INSTANCE_CAST (self, TYPE_PAGE, Page));
+#line 22 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp1_ = _tmp0_;
+#line 22 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ view_collection_halt_mirroring (_tmp1_);
+#line 22 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _data_collection_unref0 (_tmp1_);
+#line 23 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _tmp2_ = tag_global;
+#line 23 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_signal_parse_name ("items-altered", TYPE_DATA_COLLECTION, &_tmp3_, NULL, FALSE);
+#line 23 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ g_signal_handlers_disconnect_matched (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, TYPE_DATA_COLLECTION, DataCollection), G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _tag_page_on_tags_altered_data_collection_items_altered, self);
+#line 8 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ _g_object_unref0 (self->priv->tag);
+#line 7 "/home/jens/Source/shotwell/src/tags/TagPage.vala"
+ G_OBJECT_CLASS (tag_page_parent_class)->finalize (obj);
+#line 1620 "TagPage.c"
+}
+
+
+GType tag_page_get_type (void) {
+ static volatile gsize tag_page_type_id__volatile = 0;
+ if (g_once_init_enter (&tag_page_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (TagPageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tag_page_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TagPage), 0, (GInstanceInitFunc) tag_page_instance_init, NULL };
+ GType tag_page_type_id;
+ tag_page_type_id = g_type_register_static (TYPE_COLLECTION_PAGE, "TagPage", &g_define_type_info, 0);
+ g_once_init_leave (&tag_page_type_id__volatile, tag_page_type_id);
+ }
+ return tag_page_type_id__volatile;
+}
+
+
+
diff --git a/src/tags/Tags.c b/src/tags/Tags.c
new file mode 100644
index 0000000..0f14960
--- /dev/null
+++ b/src/tags/Tags.c
@@ -0,0 +1,36 @@
+/* Tags.c generated by valac 0.32.1, the Vala compiler
+ * generated from Tags.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void tags_init (GError** error);
+void tags_sidebar_entry_init (void);
+void tags_terminate (void);
+void tags_sidebar_entry_terminate (void);
+
+
+void tags_init (GError** error) {
+#line 10 "/home/jens/Source/shotwell/src/tags/Tags.vala"
+ tags_sidebar_entry_init ();
+#line 26 "Tags.c"
+}
+
+
+void tags_terminate (void) {
+#line 14 "/home/jens/Source/shotwell/src/tags/Tags.vala"
+ tags_sidebar_entry_terminate ();
+#line 33 "Tags.c"
+}
+
+
+
diff --git a/src/tags/mk/tags.mk b/src/tags/mk/tags.mk
deleted file mode 100644
index 6b2e193..0000000
--- a/src/tags/mk/tags.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Tags
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := tags
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- Branch.vala \
- TagPage.vala \
- HierarchicalTagIndex.vala \
- HierarchicalTagUtilities.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES := \
- Sidebar
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/threads/BackgroundJob.c b/src/threads/BackgroundJob.c
new file mode 100644
index 0000000..94c8745
--- /dev/null
+++ b/src/threads/BackgroundJob.c
@@ -0,0 +1,1911 @@
+/* BackgroundJob.c generated by valac 0.32.1, the Vala compiler
+ * generated from BackgroundJob.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* This callback is executed when an associated BackgroundJob completes. It is called from within*/
+/* the Gtk event loop, *not* the background thread's context.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define TYPE_NOTIFICATION_OBJECT (notification_object_get_type ())
+#define NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NOTIFICATION_OBJECT, NotificationObject))
+#define NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_NOTIFICATION_OBJECT, NotificationObjectClass))
+#define IS_NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NOTIFICATION_OBJECT))
+#define IS_NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_NOTIFICATION_OBJECT))
+#define NOTIFICATION_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NOTIFICATION_OBJECT, NotificationObjectClass))
+
+typedef struct _NotificationObject NotificationObject;
+typedef struct _NotificationObjectClass NotificationObjectClass;
+typedef struct _NotificationObjectPrivate NotificationObjectPrivate;
+typedef struct _ParamSpecNotificationObject ParamSpecNotificationObject;
+
+#define TYPE_INTERLOCKED_NOTIFICATION_OBJECT (interlocked_notification_object_get_type ())
+#define INTERLOCKED_NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObject))
+#define INTERLOCKED_NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObjectClass))
+#define IS_INTERLOCKED_NOTIFICATION_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INTERLOCKED_NOTIFICATION_OBJECT))
+#define IS_INTERLOCKED_NOTIFICATION_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INTERLOCKED_NOTIFICATION_OBJECT))
+#define INTERLOCKED_NOTIFICATION_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObjectClass))
+
+typedef struct _InterlockedNotificationObject InterlockedNotificationObject;
+typedef struct _InterlockedNotificationObjectClass InterlockedNotificationObjectClass;
+typedef struct _InterlockedNotificationObjectPrivate InterlockedNotificationObjectPrivate;
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+
+#define TYPE_SEMAPHORE (semaphore_get_type ())
+#define SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEMAPHORE, Semaphore))
+#define SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEMAPHORE, SemaphoreClass))
+#define IS_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEMAPHORE))
+#define IS_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEMAPHORE))
+#define SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEMAPHORE, SemaphoreClass))
+
+typedef struct _Semaphore Semaphore;
+typedef struct _SemaphoreClass SemaphoreClass;
+#define _abstract_semaphore_unref0(var) ((var == NULL) ? NULL : (var = (abstract_semaphore_unref (var), NULL)))
+typedef struct _BackgroundJobPrivate BackgroundJobPrivate;
+
+#define BACKGROUND_JOB_TYPE_JOB_PRIORITY (background_job_job_priority_get_type ())
+
+#define BACKGROUND_JOB_TYPE_NOTIFICATION_JOB (background_job_notification_job_get_type ())
+#define BACKGROUND_JOB_NOTIFICATION_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BACKGROUND_JOB_TYPE_NOTIFICATION_JOB, BackgroundJobNotificationJob))
+#define BACKGROUND_JOB_NOTIFICATION_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BACKGROUND_JOB_TYPE_NOTIFICATION_JOB, BackgroundJobNotificationJobClass))
+#define BACKGROUND_JOB_IS_NOTIFICATION_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BACKGROUND_JOB_TYPE_NOTIFICATION_JOB))
+#define BACKGROUND_JOB_IS_NOTIFICATION_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BACKGROUND_JOB_TYPE_NOTIFICATION_JOB))
+#define BACKGROUND_JOB_NOTIFICATION_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BACKGROUND_JOB_TYPE_NOTIFICATION_JOB, BackgroundJobNotificationJobClass))
+
+typedef struct _BackgroundJobNotificationJob BackgroundJobNotificationJob;
+typedef struct _BackgroundJobNotificationJobClass BackgroundJobNotificationJobClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+#define _background_job_notification_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_notification_job_unref (var), NULL)))
+#define _notification_object_unref0(var) ((var == NULL) ? NULL : (var = (notification_object_unref (var), NULL)))
+typedef struct _BackgroundJobNotificationJobPrivate BackgroundJobNotificationJobPrivate;
+typedef struct _BackgroundJobParamSpecNotificationJob BackgroundJobParamSpecNotificationJob;
+typedef struct _ParamSpecBackgroundJob ParamSpecBackgroundJob;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef void (*CompletionCallback) (BackgroundJob* job, void* user_data);
+typedef void (*CancellationCallback) (BackgroundJob* job, void* user_data);
+struct _NotificationObject {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ NotificationObjectPrivate * priv;
+};
+
+struct _NotificationObjectClass {
+ GTypeClass parent_class;
+ void (*finalize) (NotificationObject *self);
+};
+
+struct _ParamSpecNotificationObject {
+ GParamSpec parent_instance;
+};
+
+struct _InterlockedNotificationObject {
+ NotificationObject parent_instance;
+ InterlockedNotificationObjectPrivate * priv;
+};
+
+struct _InterlockedNotificationObjectClass {
+ NotificationObjectClass parent_class;
+};
+
+struct _InterlockedNotificationObjectPrivate {
+ Semaphore* semaphore;
+};
+
+typedef void (*NotificationCallback) (BackgroundJob* job, NotificationObject* user, void* user_data);
+typedef enum {
+ BACKGROUND_JOB_JOB_PRIORITY_HIGHEST = 100,
+ BACKGROUND_JOB_JOB_PRIORITY_HIGH = 75,
+ BACKGROUND_JOB_JOB_PRIORITY_NORMAL = 50,
+ BACKGROUND_JOB_JOB_PRIORITY_LOW = 25,
+ BACKGROUND_JOB_JOB_PRIORITY_LOWEST = 0
+} BackgroundJobJobPriority;
+
+struct _BackgroundJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobPrivate * priv;
+};
+
+struct _BackgroundJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJob *self);
+ void (*execute) (BackgroundJob* self);
+ BackgroundJobJobPriority (*get_priority) (BackgroundJob* self);
+};
+
+struct _BackgroundJobPrivate {
+ GObject* owner;
+ CompletionCallback callback;
+ gpointer callback_target;
+ GCancellable* cancellable;
+ CancellationCallback cancellation;
+ gpointer cancellation_target;
+ BackgroundJob* self;
+ AbstractSemaphore* semaphore;
+ gint completion_priority;
+ gint notification_priority;
+};
+
+struct _BackgroundJobNotificationJob {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ BackgroundJobNotificationJobPrivate * priv;
+ NotificationCallback callback;
+ gpointer callback_target;
+ BackgroundJob* background_job;
+ NotificationObject* user;
+};
+
+struct _BackgroundJobNotificationJobClass {
+ GTypeClass parent_class;
+ void (*finalize) (BackgroundJobNotificationJob *self);
+};
+
+struct _BackgroundJobParamSpecNotificationJob {
+ GParamSpec parent_instance;
+};
+
+struct _ParamSpecBackgroundJob {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer notification_object_parent_class = NULL;
+static gpointer interlocked_notification_object_parent_class = NULL;
+static gpointer background_job_parent_class = NULL;
+static GeeArrayList* background_job_notify_queue;
+static GRecMutex __lock_background_job_notify_queue = {0};
+static GeeArrayList* background_job_notify_queue = NULL;
+static gpointer background_job_notification_job_parent_class = NULL;
+
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+gpointer notification_object_ref (gpointer instance);
+void notification_object_unref (gpointer instance);
+GParamSpec* param_spec_notification_object (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_notification_object (GValue* value, gpointer v_object);
+void value_take_notification_object (GValue* value, gpointer v_object);
+gpointer value_get_notification_object (const GValue* value);
+GType notification_object_get_type (void) G_GNUC_CONST;
+enum {
+ NOTIFICATION_OBJECT_DUMMY_PROPERTY
+};
+NotificationObject* notification_object_construct (GType object_type);
+static void notification_object_finalize (NotificationObject* obj);
+GType interlocked_notification_object_get_type (void) G_GNUC_CONST;
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+GType semaphore_get_type (void) G_GNUC_CONST;
+#define INTERLOCKED_NOTIFICATION_OBJECT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObjectPrivate))
+enum {
+ INTERLOCKED_NOTIFICATION_OBJECT_DUMMY_PROPERTY
+};
+Semaphore* semaphore_new (void);
+Semaphore* semaphore_construct (GType object_type);
+void interlocked_notification_object_internal_wait_for_completion (InterlockedNotificationObject* self);
+void abstract_semaphore_wait (AbstractSemaphore* self);
+void interlocked_notification_object_internal_completed (InterlockedNotificationObject* self);
+void abstract_semaphore_notify (AbstractSemaphore* self);
+InterlockedNotificationObject* interlocked_notification_object_construct (GType object_type);
+static void interlocked_notification_object_finalize (NotificationObject* obj);
+GType background_job_job_priority_get_type (void) G_GNUC_CONST;
+#define BACKGROUND_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_BACKGROUND_JOB, BackgroundJobPrivate))
+enum {
+ BACKGROUND_JOB_DUMMY_PROPERTY
+};
+gint background_job_job_priority_compare (BackgroundJobJobPriority self, BackgroundJobJobPriority other);
+gint background_job_job_priority_compare_func (void* a, void* b);
+static gpointer background_job_notification_job_ref (gpointer instance);
+static void background_job_notification_job_unref (gpointer instance);
+static GParamSpec* background_job_param_spec_notification_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void background_job_value_set_notification_job (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void background_job_value_take_notification_job (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer background_job_value_get_notification_job (const GValue* value) G_GNUC_UNUSED;
+static GType background_job_notification_job_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore);
+void background_job_execute (BackgroundJob* self);
+static void background_job_real_execute (BackgroundJob* self);
+BackgroundJobJobPriority background_job_get_priority (BackgroundJob* self);
+static BackgroundJobJobPriority background_job_real_get_priority (BackgroundJob* self);
+gint background_job_priority_compare_func (BackgroundJob* a, BackgroundJob* b);
+gint64 background_job_priority_comparator (void* a, void* b);
+void background_job_set_completion_priority (BackgroundJob* self, gint priority);
+void background_job_set_notification_priority (BackgroundJob* self, gint priority);
+void background_job_wait_for_completion (BackgroundJob* self);
+GCancellable* background_job_get_cancellable (BackgroundJob* self);
+gboolean background_job_is_cancelled (BackgroundJob* self);
+void background_job_cancel (BackgroundJob* self);
+void background_job_internal_notify_completion (BackgroundJob* self);
+static gboolean background_job_on_notify_completion (BackgroundJob* self);
+static gboolean _background_job_on_notify_completion_gsource_func (gpointer self);
+void background_job_notify (BackgroundJob* self, NotificationCallback callback, void* callback_target, NotificationObject* user);
+static BackgroundJobNotificationJob* background_job_notification_job_new (NotificationCallback callback, void* callback_target, BackgroundJob* background_job, NotificationObject* user);
+static BackgroundJobNotificationJob* background_job_notification_job_construct (GType object_type, NotificationCallback callback, void* callback_target, BackgroundJob* background_job, NotificationObject* user);
+static gboolean background_job_on_notification_ready (BackgroundJob* self);
+static gboolean _background_job_on_notification_ready_gsource_func (gpointer self);
+enum {
+ BACKGROUND_JOB_NOTIFICATION_JOB_DUMMY_PROPERTY
+};
+static void background_job_notification_job_finalize (BackgroundJobNotificationJob* obj);
+static void background_job_finalize (BackgroundJob* obj);
+
+
+NotificationObject* notification_object_construct (GType object_type) {
+ NotificationObject* self = NULL;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = (NotificationObject*) g_type_create_instance (object_type);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self;
+#line 283 "BackgroundJob.c"
+}
+
+
+static void value_notification_object_init (GValue* value) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 290 "BackgroundJob.c"
+}
+
+
+static void value_notification_object_free_value (GValue* value) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (value->data[0].v_pointer) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ notification_object_unref (value->data[0].v_pointer);
+#line 299 "BackgroundJob.c"
+ }
+}
+
+
+static void value_notification_object_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (src_value->data[0].v_pointer) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ dest_value->data[0].v_pointer = notification_object_ref (src_value->data[0].v_pointer);
+#line 309 "BackgroundJob.c"
+ } else {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 313 "BackgroundJob.c"
+ }
+}
+
+
+static gpointer value_notification_object_peek_pointer (const GValue* value) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return value->data[0].v_pointer;
+#line 321 "BackgroundJob.c"
+}
+
+
+static gchar* value_notification_object_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (collect_values[0].v_pointer) {
+#line 328 "BackgroundJob.c"
+ NotificationObject* object;
+ object = collect_values[0].v_pointer;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 335 "BackgroundJob.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 339 "BackgroundJob.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = notification_object_ref (object);
+#line 343 "BackgroundJob.c"
+ } else {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 347 "BackgroundJob.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return NULL;
+#line 351 "BackgroundJob.c"
+}
+
+
+static gchar* value_notification_object_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ NotificationObject** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (!object_p) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 362 "BackgroundJob.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (!value->data[0].v_pointer) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = NULL;
+#line 368 "BackgroundJob.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = value->data[0].v_pointer;
+#line 372 "BackgroundJob.c"
+ } else {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = notification_object_ref (value->data[0].v_pointer);
+#line 376 "BackgroundJob.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return NULL;
+#line 380 "BackgroundJob.c"
+}
+
+
+GParamSpec* param_spec_notification_object (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecNotificationObject* spec;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_NOTIFICATION_OBJECT), NULL);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return G_PARAM_SPEC (spec);
+#line 394 "BackgroundJob.c"
+}
+
+
+gpointer value_get_notification_object (const GValue* value) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_NOTIFICATION_OBJECT), NULL);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return value->data[0].v_pointer;
+#line 403 "BackgroundJob.c"
+}
+
+
+void value_set_notification_object (GValue* value, gpointer v_object) {
+ NotificationObject* old;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_NOTIFICATION_OBJECT));
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ old = value->data[0].v_pointer;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (v_object) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_NOTIFICATION_OBJECT));
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = v_object;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ notification_object_ref (value->data[0].v_pointer);
+#line 423 "BackgroundJob.c"
+ } else {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 427 "BackgroundJob.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (old) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ notification_object_unref (old);
+#line 433 "BackgroundJob.c"
+ }
+}
+
+
+void value_take_notification_object (GValue* value, gpointer v_object) {
+ NotificationObject* old;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_NOTIFICATION_OBJECT));
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ old = value->data[0].v_pointer;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (v_object) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_NOTIFICATION_OBJECT));
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = v_object;
+#line 452 "BackgroundJob.c"
+ } else {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 456 "BackgroundJob.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (old) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ notification_object_unref (old);
+#line 462 "BackgroundJob.c"
+ }
+}
+
+
+static void notification_object_class_init (NotificationObjectClass * klass) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ notification_object_parent_class = g_type_class_peek_parent (klass);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ ((NotificationObjectClass *) klass)->finalize = notification_object_finalize;
+#line 472 "BackgroundJob.c"
+}
+
+
+static void notification_object_instance_init (NotificationObject * self) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->ref_count = 1;
+#line 479 "BackgroundJob.c"
+}
+
+
+static void notification_object_finalize (NotificationObject* obj) {
+ NotificationObject * self;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_NOTIFICATION_OBJECT, NotificationObject);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_signal_handlers_destroy (self);
+#line 489 "BackgroundJob.c"
+}
+
+
+GType notification_object_get_type (void) {
+ static volatile gsize notification_object_type_id__volatile = 0;
+ if (g_once_init_enter (&notification_object_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_notification_object_init, value_notification_object_free_value, value_notification_object_copy_value, value_notification_object_peek_pointer, "p", value_notification_object_collect_value, "p", value_notification_object_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (NotificationObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) notification_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NotificationObject), 0, (GInstanceInitFunc) notification_object_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType notification_object_type_id;
+ notification_object_type_id = g_type_register_fundamental (g_type_fundamental_next (), "NotificationObject", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&notification_object_type_id__volatile, notification_object_type_id);
+ }
+ return notification_object_type_id__volatile;
+}
+
+
+gpointer notification_object_ref (gpointer instance) {
+ NotificationObject* self;
+ self = instance;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return instance;
+#line 514 "BackgroundJob.c"
+}
+
+
+void notification_object_unref (gpointer instance) {
+ NotificationObject* self;
+ self = instance;
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ NOTIFICATION_OBJECT_GET_CLASS (self)->finalize (self);
+#line 34 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 527 "BackgroundJob.c"
+ }
+}
+
+
+void interlocked_notification_object_internal_wait_for_completion (InterlockedNotificationObject* self) {
+ Semaphore* _tmp0_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_INTERLOCKED_NOTIFICATION_OBJECT (self));
+#line 42 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = self->priv->semaphore;
+#line 42 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ abstract_semaphore_wait (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore));
+#line 540 "BackgroundJob.c"
+}
+
+
+void interlocked_notification_object_internal_completed (InterlockedNotificationObject* self) {
+ Semaphore* _tmp0_ = NULL;
+#line 46 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_INTERLOCKED_NOTIFICATION_OBJECT (self));
+#line 47 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = self->priv->semaphore;
+#line 47 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ abstract_semaphore_notify (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore));
+#line 552 "BackgroundJob.c"
+}
+
+
+InterlockedNotificationObject* interlocked_notification_object_construct (GType object_type) {
+ InterlockedNotificationObject* self = NULL;
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = (InterlockedNotificationObject*) notification_object_construct (object_type);
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self;
+#line 562 "BackgroundJob.c"
+}
+
+
+static void interlocked_notification_object_class_init (InterlockedNotificationObjectClass * klass) {
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ interlocked_notification_object_parent_class = g_type_class_peek_parent (klass);
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ ((NotificationObjectClass *) klass)->finalize = interlocked_notification_object_finalize;
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_type_class_add_private (klass, sizeof (InterlockedNotificationObjectPrivate));
+#line 573 "BackgroundJob.c"
+}
+
+
+static void interlocked_notification_object_instance_init (InterlockedNotificationObject * self) {
+ Semaphore* _tmp0_ = NULL;
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv = INTERLOCKED_NOTIFICATION_OBJECT_GET_PRIVATE (self);
+#line 38 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = semaphore_new ();
+#line 38 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->semaphore = _tmp0_;
+#line 585 "BackgroundJob.c"
+}
+
+
+static void interlocked_notification_object_finalize (NotificationObject* obj) {
+ InterlockedNotificationObject * self;
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_INTERLOCKED_NOTIFICATION_OBJECT, InterlockedNotificationObject);
+#line 38 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _abstract_semaphore_unref0 (self->priv->semaphore);
+#line 37 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ NOTIFICATION_OBJECT_CLASS (interlocked_notification_object_parent_class)->finalize (obj);
+#line 597 "BackgroundJob.c"
+}
+
+
+GType interlocked_notification_object_get_type (void) {
+ static volatile gsize interlocked_notification_object_type_id__volatile = 0;
+ if (g_once_init_enter (&interlocked_notification_object_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (InterlockedNotificationObjectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) interlocked_notification_object_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (InterlockedNotificationObject), 0, (GInstanceInitFunc) interlocked_notification_object_instance_init, NULL };
+ GType interlocked_notification_object_type_id;
+ interlocked_notification_object_type_id = g_type_register_static (TYPE_NOTIFICATION_OBJECT, "InterlockedNotificationObject", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&interlocked_notification_object_type_id__volatile, interlocked_notification_object_type_id);
+ }
+ return interlocked_notification_object_type_id__volatile;
+}
+
+
+gint background_job_job_priority_compare (BackgroundJobJobPriority self, BackgroundJobJobPriority other) {
+ gint result = 0;
+ BackgroundJobJobPriority _tmp0_ = 0;
+#line 75 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = other;
+#line 75 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = ((gint) _tmp0_) - ((gint) self);
+#line 75 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 622 "BackgroundJob.c"
+}
+
+
+gint background_job_job_priority_compare_func (void* a, void* b) {
+ gint result = 0;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = b;
+#line 79 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = a;
+#line 79 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = ((gint) _tmp0_) - ((gint) _tmp1_);
+#line 79 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 638 "BackgroundJob.c"
+}
+
+
+GType background_job_job_priority_get_type (void) {
+ static volatile gsize background_job_job_priority_type_id__volatile = 0;
+ if (g_once_init_enter (&background_job_job_priority_type_id__volatile)) {
+ static const GEnumValue values[] = {{BACKGROUND_JOB_JOB_PRIORITY_HIGHEST, "BACKGROUND_JOB_JOB_PRIORITY_HIGHEST", "highest"}, {BACKGROUND_JOB_JOB_PRIORITY_HIGH, "BACKGROUND_JOB_JOB_PRIORITY_HIGH", "high"}, {BACKGROUND_JOB_JOB_PRIORITY_NORMAL, "BACKGROUND_JOB_JOB_PRIORITY_NORMAL", "normal"}, {BACKGROUND_JOB_JOB_PRIORITY_LOW, "BACKGROUND_JOB_JOB_PRIORITY_LOW", "low"}, {BACKGROUND_JOB_JOB_PRIORITY_LOWEST, "BACKGROUND_JOB_JOB_PRIORITY_LOWEST", "lowest"}, {0, NULL, NULL}};
+ GType background_job_job_priority_type_id;
+ background_job_job_priority_type_id = g_enum_register_static ("BackgroundJobJobPriority", values);
+ g_once_init_leave (&background_job_job_priority_type_id__volatile, background_job_job_priority_type_id);
+ }
+ return background_job_job_priority_type_id__volatile;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 116 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 657 "BackgroundJob.c"
+}
+
+
+static gpointer _abstract_semaphore_ref0 (gpointer self) {
+#line 120 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self ? abstract_semaphore_ref (self) : NULL;
+#line 664 "BackgroundJob.c"
+}
+
+
+BackgroundJob* background_job_construct (GType object_type, GObject* owner, CompletionCallback callback, void* callback_target, GCancellable* cancellable, CancellationCallback cancellation, void* cancellation_target, AbstractSemaphore* completion_semaphore) {
+ BackgroundJob* self = NULL;
+ GObject* _tmp0_ = NULL;
+ GObject* _tmp1_ = NULL;
+ CompletionCallback _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ GCancellable* _tmp3_ = NULL;
+ GCancellable* _tmp4_ = NULL;
+ CancellationCallback _tmp5_ = NULL;
+ void* _tmp5__target = NULL;
+ AbstractSemaphore* _tmp6_ = NULL;
+ AbstractSemaphore* _tmp7_ = NULL;
+#line 113 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail ((owner == NULL) || G_IS_OBJECT (owner), NULL);
+#line 113 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), NULL);
+#line 113 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail ((completion_semaphore == NULL) || IS_ABSTRACT_SEMAPHORE (completion_semaphore), NULL);
+#line 113 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = (BackgroundJob*) g_type_create_instance (object_type);
+#line 116 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = owner;
+#line 116 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 116 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _g_object_unref0 (self->priv->owner);
+#line 116 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->owner = _tmp1_;
+#line 117 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = callback;
+#line 117 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2__target = callback_target;
+#line 117 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->callback = _tmp2_;
+#line 117 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->callback_target = _tmp2__target;
+#line 118 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = cancellable;
+#line 118 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ = _g_object_ref0 (_tmp3_);
+#line 118 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 118 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->cancellable = _tmp4_;
+#line 119 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp5_ = cancellation;
+#line 119 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp5__target = cancellation_target;
+#line 119 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->cancellation = _tmp5_;
+#line 119 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->cancellation_target = _tmp5__target;
+#line 120 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp6_ = completion_semaphore;
+#line 120 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp7_ = _abstract_semaphore_ref0 (_tmp6_);
+#line 120 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _abstract_semaphore_unref0 (self->priv->semaphore);
+#line 120 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->semaphore = _tmp7_;
+#line 113 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self;
+#line 730 "BackgroundJob.c"
+}
+
+
+static void background_job_real_execute (BackgroundJob* self) {
+#line 123 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_critical ("Type `%s' does not implement abstract method `background_job_execute'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 123 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return;
+#line 739 "BackgroundJob.c"
+}
+
+
+void background_job_execute (BackgroundJob* self) {
+#line 123 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (self));
+#line 123 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ BACKGROUND_JOB_GET_CLASS (self)->execute (self);
+#line 748 "BackgroundJob.c"
+}
+
+
+static BackgroundJobJobPriority background_job_real_get_priority (BackgroundJob* self) {
+ BackgroundJobJobPriority result = 0;
+#line 126 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = BACKGROUND_JOB_JOB_PRIORITY_NORMAL;
+#line 126 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 758 "BackgroundJob.c"
+}
+
+
+BackgroundJobJobPriority background_job_get_priority (BackgroundJob* self) {
+#line 125 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (self), 0);
+#line 125 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return BACKGROUND_JOB_GET_CLASS (self)->get_priority (self);
+#line 767 "BackgroundJob.c"
+}
+
+
+gint background_job_priority_compare_func (BackgroundJob* a, BackgroundJob* b) {
+ gint result = 0;
+ BackgroundJob* _tmp0_ = NULL;
+ BackgroundJobJobPriority _tmp1_ = 0;
+ BackgroundJob* _tmp2_ = NULL;
+ BackgroundJobJobPriority _tmp3_ = 0;
+ gint _tmp4_ = 0;
+#line 130 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (a), 0);
+#line 130 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (b), 0);
+#line 131 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = a;
+#line 131 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = background_job_get_priority (_tmp0_);
+#line 131 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = b;
+#line 131 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = background_job_get_priority (_tmp2_);
+#line 131 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ = background_job_job_priority_compare (_tmp1_, _tmp3_);
+#line 131 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = _tmp4_;
+#line 131 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 796 "BackgroundJob.c"
+}
+
+
+gint64 background_job_priority_comparator (void* a, void* b) {
+ gint64 result = 0LL;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 136 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = a;
+#line 136 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = b;
+#line 136 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = background_job_priority_compare_func (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_BACKGROUND_JOB, BackgroundJob), G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, TYPE_BACKGROUND_JOB, BackgroundJob));
+#line 136 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = (gint64) _tmp2_;
+#line 136 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 815 "BackgroundJob.c"
+}
+
+
+void background_job_set_completion_priority (BackgroundJob* self, gint priority) {
+ gint _tmp0_ = 0;
+#line 140 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (self));
+#line 141 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = priority;
+#line 141 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->completion_priority = _tmp0_;
+#line 827 "BackgroundJob.c"
+}
+
+
+void background_job_set_notification_priority (BackgroundJob* self, gint priority) {
+ gint _tmp0_ = 0;
+#line 145 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (self));
+#line 146 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = priority;
+#line 146 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->notification_priority = _tmp0_;
+#line 839 "BackgroundJob.c"
+}
+
+
+void background_job_wait_for_completion (BackgroundJob* self) {
+ AbstractSemaphore* _tmp0_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (self));
+#line 153 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = self->priv->semaphore;
+#line 153 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp0_ != NULL) {
+#line 851 "BackgroundJob.c"
+ AbstractSemaphore* _tmp1_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = self->priv->semaphore;
+#line 154 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ abstract_semaphore_wait (_tmp1_);
+#line 857 "BackgroundJob.c"
+ }
+}
+
+
+GCancellable* background_job_get_cancellable (BackgroundJob* self) {
+ GCancellable* result = NULL;
+ GCancellable* _tmp0_ = NULL;
+ GCancellable* _tmp1_ = NULL;
+#line 157 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (self), NULL);
+#line 158 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 158 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 158 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = _tmp1_;
+#line 158 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 876 "BackgroundJob.c"
+}
+
+
+gboolean background_job_is_cancelled (BackgroundJob* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ GCancellable* _tmp1_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (self), FALSE);
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = self->priv->cancellable;
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp1_ != NULL) {
+#line 890 "BackgroundJob.c"
+ GCancellable* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = self->priv->cancellable;
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = g_cancellable_is_cancelled (_tmp2_);
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = _tmp3_;
+#line 899 "BackgroundJob.c"
+ } else {
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = FALSE;
+#line 903 "BackgroundJob.c"
+ }
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = _tmp0_;
+#line 162 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 909 "BackgroundJob.c"
+}
+
+
+void background_job_cancel (BackgroundJob* self) {
+ GCancellable* _tmp0_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (self));
+#line 166 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = self->priv->cancellable;
+#line 166 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp0_ != NULL) {
+#line 921 "BackgroundJob.c"
+ GCancellable* _tmp1_ = NULL;
+#line 167 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = self->priv->cancellable;
+#line 167 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_cancellable_cancel (_tmp1_);
+#line 927 "BackgroundJob.c"
+ }
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 183 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 935 "BackgroundJob.c"
+}
+
+
+static gboolean _background_job_on_notify_completion_gsource_func (gpointer self) {
+ gboolean result;
+ result = background_job_on_notify_completion ((BackgroundJob*) self);
+#line 185 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 944 "BackgroundJob.c"
+}
+
+
+void background_job_internal_notify_completion (BackgroundJob* self) {
+ AbstractSemaphore* _tmp0_ = NULL;
+ gboolean _tmp2_ = FALSE;
+ CompletionCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ BackgroundJob* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+#line 171 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (self));
+#line 172 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = self->priv->semaphore;
+#line 172 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp0_ != NULL) {
+#line 963 "BackgroundJob.c"
+ AbstractSemaphore* _tmp1_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = self->priv->semaphore;
+#line 173 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ abstract_semaphore_notify (_tmp1_);
+#line 969 "BackgroundJob.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = self->priv->callback;
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3__target = self->priv->callback_target;
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp3_ == NULL) {
+#line 977 "BackgroundJob.c"
+ CancellationCallback _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ = self->priv->cancellation;
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4__target = self->priv->cancellation_target;
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = _tmp4_ == NULL;
+#line 986 "BackgroundJob.c"
+ } else {
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = FALSE;
+#line 990 "BackgroundJob.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp2_) {
+#line 176 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return;
+#line 996 "BackgroundJob.c"
+ }
+#line 178 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp6_ = background_job_is_cancelled (self);
+#line 178 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp6_) {
+#line 1002 "BackgroundJob.c"
+ CancellationCallback _tmp7_ = NULL;
+ void* _tmp7__target = NULL;
+#line 178 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp7_ = self->priv->cancellation;
+#line 178 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp7__target = self->priv->cancellation_target;
+#line 178 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp5_ = _tmp7_ == NULL;
+#line 1011 "BackgroundJob.c"
+ } else {
+#line 178 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp5_ = FALSE;
+#line 1015 "BackgroundJob.c"
+ }
+#line 178 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp5_) {
+#line 179 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return;
+#line 1021 "BackgroundJob.c"
+ }
+#line 183 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp8_ = _background_job_ref0 (self);
+#line 183 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_unref0 (self->priv->self);
+#line 183 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->self = _tmp8_;
+#line 185 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp9_ = self->priv->completion_priority;
+#line 185 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_idle_add_full (_tmp9_, _background_job_on_notify_completion_gsource_func, background_job_ref (self), background_job_unref);
+#line 1033 "BackgroundJob.c"
+}
+
+
+static gboolean background_job_on_notify_completion (BackgroundJob* self) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 188 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (self), FALSE);
+#line 193 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = background_job_is_cancelled (self);
+#line 193 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp0_) {
+#line 1046 "BackgroundJob.c"
+ CancellationCallback _tmp1_ = NULL;
+ void* _tmp1__target = NULL;
+#line 194 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = self->priv->cancellation;
+#line 194 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1__target = self->priv->cancellation_target;
+#line 194 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp1_ != NULL) {
+#line 1055 "BackgroundJob.c"
+ CancellationCallback _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 195 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = self->priv->cancellation;
+#line 195 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2__target = self->priv->cancellation_target;
+#line 195 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ (self, _tmp2__target);
+#line 1064 "BackgroundJob.c"
+ }
+ } else {
+ CompletionCallback _tmp3_ = NULL;
+ void* _tmp3__target = NULL;
+#line 197 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = self->priv->callback;
+#line 197 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3__target = self->priv->callback_target;
+#line 197 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp3_ != NULL) {
+#line 1075 "BackgroundJob.c"
+ CompletionCallback _tmp4_ = NULL;
+ void* _tmp4__target = NULL;
+#line 198 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ = self->priv->callback;
+#line 198 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4__target = self->priv->callback_target;
+#line 198 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ (self, _tmp4__target);
+#line 1084 "BackgroundJob.c"
+ }
+ }
+#line 202 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_unref0 (self->priv->self);
+#line 202 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->self = NULL;
+#line 204 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = FALSE;
+#line 204 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 1095 "BackgroundJob.c"
+}
+
+
+static gboolean _background_job_on_notification_ready_gsource_func (gpointer self) {
+ gboolean result;
+ result = background_job_on_notification_ready ((BackgroundJob*) self);
+#line 214 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 1104 "BackgroundJob.c"
+}
+
+
+static gpointer _notification_object_ref0 (gpointer self) {
+#line 218 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self ? notification_object_ref (self) : NULL;
+#line 1111 "BackgroundJob.c"
+}
+
+
+void background_job_notify (BackgroundJob* self, NotificationCallback callback, void* callback_target, NotificationObject* user) {
+ gint _tmp7_ = 0;
+ InterlockedNotificationObject* interlocked = NULL;
+ NotificationObject* _tmp8_ = NULL;
+ InterlockedNotificationObject* _tmp9_ = NULL;
+ InterlockedNotificationObject* _tmp10_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 209 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (self));
+#line 209 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail ((user == NULL) || IS_NOTIFICATION_OBJECT (user));
+#line 1126 "BackgroundJob.c"
+ {
+ GeeArrayList* _tmp0_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = background_job_notify_queue;
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_rec_mutex_lock (&__lock_background_job_notify_queue);
+#line 1133 "BackgroundJob.c"
+ {
+ GeeArrayList* _tmp1_ = NULL;
+ NotificationCallback _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+ NotificationObject* _tmp3_ = NULL;
+ BackgroundJobNotificationJob* _tmp4_ = NULL;
+ BackgroundJobNotificationJob* _tmp5_ = NULL;
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = background_job_notify_queue;
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = callback;
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2__target = callback_target;
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = user;
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ = background_job_notification_job_new (_tmp2_, _tmp2__target, self, _tmp3_);
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp5_ = _tmp4_;
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp5_);
+#line 211 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_notification_job_unref0 (_tmp5_);
+#line 1157 "BackgroundJob.c"
+ }
+ __finally11:
+ {
+ GeeArrayList* _tmp6_ = NULL;
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp6_ = background_job_notify_queue;
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_rec_mutex_unlock (&__lock_background_job_notify_queue);
+#line 1166 "BackgroundJob.c"
+ }
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_clear_error (&_inner_error_);
+#line 210 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return;
+#line 1176 "BackgroundJob.c"
+ }
+ }
+#line 214 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp7_ = self->priv->notification_priority;
+#line 214 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_idle_add_full (_tmp7_, _background_job_on_notification_ready_gsource_func, background_job_ref (self), background_job_unref);
+#line 218 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp8_ = user;
+#line 218 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp9_ = _notification_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp8_, TYPE_INTERLOCKED_NOTIFICATION_OBJECT) ? ((InterlockedNotificationObject*) _tmp8_) : NULL);
+#line 218 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ interlocked = _tmp9_;
+#line 219 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp10_ = interlocked;
+#line 219 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp10_ != NULL) {
+#line 1193 "BackgroundJob.c"
+ InterlockedNotificationObject* _tmp11_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp11_ = interlocked;
+#line 220 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ interlocked_notification_object_internal_wait_for_completion (_tmp11_);
+#line 1199 "BackgroundJob.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _notification_object_unref0 (interlocked);
+#line 1203 "BackgroundJob.c"
+}
+
+
+static gboolean background_job_on_notification_ready (BackgroundJob* self) {
+ gboolean result = FALSE;
+ BackgroundJobNotificationJob* notification_job = NULL;
+ BackgroundJobNotificationJob* _tmp7_ = NULL;
+ BackgroundJobNotificationJob* _tmp8_ = NULL;
+ NotificationCallback _tmp9_ = NULL;
+ void* _tmp9__target = NULL;
+ BackgroundJobNotificationJob* _tmp10_ = NULL;
+ BackgroundJob* _tmp11_ = NULL;
+ BackgroundJobNotificationJob* _tmp12_ = NULL;
+ NotificationObject* _tmp13_ = NULL;
+ InterlockedNotificationObject* interlocked = NULL;
+ BackgroundJobNotificationJob* _tmp14_ = NULL;
+ NotificationObject* _tmp15_ = NULL;
+ InterlockedNotificationObject* _tmp16_ = NULL;
+ InterlockedNotificationObject* _tmp17_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 223 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (self), FALSE);
+#line 226 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ notification_job = NULL;
+#line 1228 "BackgroundJob.c"
+ {
+ GeeArrayList* _tmp0_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = background_job_notify_queue;
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_rec_mutex_lock (&__lock_background_job_notify_queue);
+#line 1235 "BackgroundJob.c"
+ {
+ GeeArrayList* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 228 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = background_job_notify_queue;
+#line 228 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = gee_abstract_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 228 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = _tmp2_;
+#line 228 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp3_ > 0) {
+#line 1248 "BackgroundJob.c"
+ GeeArrayList* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+#line 229 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ = background_job_notify_queue;
+#line 229 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp5_ = gee_abstract_list_remove_at (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ABSTRACT_LIST, GeeAbstractList), 0);
+#line 229 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_notification_job_unref0 (notification_job);
+#line 229 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ notification_job = (BackgroundJobNotificationJob*) _tmp5_;
+#line 1259 "BackgroundJob.c"
+ }
+ }
+ __finally12:
+ {
+ GeeArrayList* _tmp6_ = NULL;
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp6_ = background_job_notify_queue;
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_rec_mutex_unlock (&__lock_background_job_notify_queue);
+#line 1269 "BackgroundJob.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_notification_job_unref0 (notification_job);
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_clear_error (&_inner_error_);
+#line 227 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return FALSE;
+#line 1281 "BackgroundJob.c"
+ }
+ }
+#line 231 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp7_ = notification_job;
+#line 231 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _vala_assert (_tmp7_ != NULL, "notification_job != null");
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp8_ = notification_job;
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp9_ = _tmp8_->callback;
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp9__target = _tmp8_->callback_target;
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp10_ = notification_job;
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp11_ = _tmp10_->background_job;
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp12_ = notification_job;
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp13_ = _tmp12_->user;
+#line 233 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp9_ (_tmp11_, _tmp13_, _tmp9__target);
+#line 236 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp14_ = notification_job;
+#line 236 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp15_ = _tmp14_->user;
+#line 236 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp16_ = _notification_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, TYPE_INTERLOCKED_NOTIFICATION_OBJECT) ? ((InterlockedNotificationObject*) _tmp15_) : NULL);
+#line 236 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ interlocked = _tmp16_;
+#line 237 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp17_ = interlocked;
+#line 237 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (_tmp17_ != NULL) {
+#line 1316 "BackgroundJob.c"
+ InterlockedNotificationObject* _tmp18_ = NULL;
+#line 238 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp18_ = interlocked;
+#line 238 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ interlocked_notification_object_internal_completed (_tmp18_);
+#line 1322 "BackgroundJob.c"
+ }
+#line 240 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ result = FALSE;
+#line 240 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _notification_object_unref0 (interlocked);
+#line 240 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_notification_job_unref0 (notification_job);
+#line 240 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return result;
+#line 1332 "BackgroundJob.c"
+}
+
+
+static BackgroundJobNotificationJob* background_job_notification_job_construct (GType object_type, NotificationCallback callback, void* callback_target, BackgroundJob* background_job, NotificationObject* user) {
+ BackgroundJobNotificationJob* self = NULL;
+ NotificationCallback _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+ BackgroundJob* _tmp1_ = NULL;
+ BackgroundJob* _tmp2_ = NULL;
+ NotificationObject* _tmp3_ = NULL;
+ NotificationObject* _tmp4_ = NULL;
+#line 88 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (IS_BACKGROUND_JOB (background_job), NULL);
+#line 88 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail ((user == NULL) || IS_NOTIFICATION_OBJECT (user), NULL);
+#line 88 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = (BackgroundJobNotificationJob*) g_type_create_instance (object_type);
+#line 90 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = callback;
+#line 90 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0__target = callback_target;
+#line 90 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->callback = _tmp0_;
+#line 90 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->callback_target = _tmp0__target;
+#line 91 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp1_ = background_job;
+#line 91 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp2_ = _background_job_ref0 (_tmp1_);
+#line 91 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_unref0 (self->background_job);
+#line 91 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->background_job = _tmp2_;
+#line 92 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp3_ = user;
+#line 92 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp4_ = _notification_object_ref0 (_tmp3_);
+#line 92 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _notification_object_unref0 (self->user);
+#line 92 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->user = _tmp4_;
+#line 88 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return self;
+#line 1376 "BackgroundJob.c"
+}
+
+
+static BackgroundJobNotificationJob* background_job_notification_job_new (NotificationCallback callback, void* callback_target, BackgroundJob* background_job, NotificationObject* user) {
+#line 88 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return background_job_notification_job_construct (BACKGROUND_JOB_TYPE_NOTIFICATION_JOB, callback, callback_target, background_job, user);
+#line 1383 "BackgroundJob.c"
+}
+
+
+static void background_job_value_notification_job_init (GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1390 "BackgroundJob.c"
+}
+
+
+static void background_job_value_notification_job_free_value (GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (value->data[0].v_pointer) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_notification_job_unref (value->data[0].v_pointer);
+#line 1399 "BackgroundJob.c"
+ }
+}
+
+
+static void background_job_value_notification_job_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (src_value->data[0].v_pointer) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ dest_value->data[0].v_pointer = background_job_notification_job_ref (src_value->data[0].v_pointer);
+#line 1409 "BackgroundJob.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1413 "BackgroundJob.c"
+ }
+}
+
+
+static gpointer background_job_value_notification_job_peek_pointer (const GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return value->data[0].v_pointer;
+#line 1421 "BackgroundJob.c"
+}
+
+
+static gchar* background_job_value_notification_job_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (collect_values[0].v_pointer) {
+#line 1428 "BackgroundJob.c"
+ BackgroundJobNotificationJob* object;
+ object = collect_values[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1435 "BackgroundJob.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1439 "BackgroundJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = background_job_notification_job_ref (object);
+#line 1443 "BackgroundJob.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1447 "BackgroundJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return NULL;
+#line 1451 "BackgroundJob.c"
+}
+
+
+static gchar* background_job_value_notification_job_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ BackgroundJobNotificationJob** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (!object_p) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1462 "BackgroundJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (!value->data[0].v_pointer) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = NULL;
+#line 1468 "BackgroundJob.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1472 "BackgroundJob.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = background_job_notification_job_ref (value->data[0].v_pointer);
+#line 1476 "BackgroundJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return NULL;
+#line 1480 "BackgroundJob.c"
+}
+
+
+static GParamSpec* background_job_param_spec_notification_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ BackgroundJobParamSpecNotificationJob* spec;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, BACKGROUND_JOB_TYPE_NOTIFICATION_JOB), NULL);
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return G_PARAM_SPEC (spec);
+#line 1494 "BackgroundJob.c"
+}
+
+
+static gpointer background_job_value_get_notification_job (const GValue* value) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, BACKGROUND_JOB_TYPE_NOTIFICATION_JOB), NULL);
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return value->data[0].v_pointer;
+#line 1503 "BackgroundJob.c"
+}
+
+
+static void background_job_value_set_notification_job (GValue* value, gpointer v_object) {
+ BackgroundJobNotificationJob* old;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, BACKGROUND_JOB_TYPE_NOTIFICATION_JOB));
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ old = value->data[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (v_object) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, BACKGROUND_JOB_TYPE_NOTIFICATION_JOB));
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = v_object;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_notification_job_ref (value->data[0].v_pointer);
+#line 1523 "BackgroundJob.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1527 "BackgroundJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (old) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_notification_job_unref (old);
+#line 1533 "BackgroundJob.c"
+ }
+}
+
+
+static void background_job_value_take_notification_job (GValue* value, gpointer v_object) {
+ BackgroundJobNotificationJob* old;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, BACKGROUND_JOB_TYPE_NOTIFICATION_JOB));
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ old = value->data[0].v_pointer;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (v_object) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, BACKGROUND_JOB_TYPE_NOTIFICATION_JOB));
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = v_object;
+#line 1552 "BackgroundJob.c"
+ } else {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1556 "BackgroundJob.c"
+ }
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (old) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_notification_job_unref (old);
+#line 1562 "BackgroundJob.c"
+ }
+}
+
+
+static void background_job_notification_job_class_init (BackgroundJobNotificationJobClass * klass) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_notification_job_parent_class = g_type_class_peek_parent (klass);
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ ((BackgroundJobNotificationJobClass *) klass)->finalize = background_job_notification_job_finalize;
+#line 1572 "BackgroundJob.c"
+}
+
+
+static void background_job_notification_job_instance_init (BackgroundJobNotificationJob * self) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->ref_count = 1;
+#line 1579 "BackgroundJob.c"
+}
+
+
+static void background_job_notification_job_finalize (BackgroundJobNotificationJob* obj) {
+ BackgroundJobNotificationJob * self;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, BACKGROUND_JOB_TYPE_NOTIFICATION_JOB, BackgroundJobNotificationJob);
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_signal_handlers_destroy (self);
+#line 85 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_unref0 (self->background_job);
+#line 86 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _notification_object_unref0 (self->user);
+#line 1593 "BackgroundJob.c"
+}
+
+
+static GType background_job_notification_job_get_type (void) {
+ static volatile gsize background_job_notification_job_type_id__volatile = 0;
+ if (g_once_init_enter (&background_job_notification_job_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { background_job_value_notification_job_init, background_job_value_notification_job_free_value, background_job_value_notification_job_copy_value, background_job_value_notification_job_peek_pointer, "p", background_job_value_notification_job_collect_value, "p", background_job_value_notification_job_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BackgroundJobNotificationJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) background_job_notification_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BackgroundJobNotificationJob), 0, (GInstanceInitFunc) background_job_notification_job_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType background_job_notification_job_type_id;
+ background_job_notification_job_type_id = g_type_register_fundamental (g_type_fundamental_next (), "BackgroundJobNotificationJob", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&background_job_notification_job_type_id__volatile, background_job_notification_job_type_id);
+ }
+ return background_job_notification_job_type_id__volatile;
+}
+
+
+static gpointer background_job_notification_job_ref (gpointer instance) {
+ BackgroundJobNotificationJob* self;
+ self = instance;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return instance;
+#line 1618 "BackgroundJob.c"
+}
+
+
+static void background_job_notification_job_unref (gpointer instance) {
+ BackgroundJobNotificationJob* self;
+ self = instance;
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ BACKGROUND_JOB_NOTIFICATION_JOB_GET_CLASS (self)->finalize (self);
+#line 83 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1631 "BackgroundJob.c"
+ }
+}
+
+
+static void value_background_job_init (GValue* value) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1639 "BackgroundJob.c"
+}
+
+
+static void value_background_job_free_value (GValue* value) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (value->data[0].v_pointer) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_unref (value->data[0].v_pointer);
+#line 1648 "BackgroundJob.c"
+ }
+}
+
+
+static void value_background_job_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (src_value->data[0].v_pointer) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ dest_value->data[0].v_pointer = background_job_ref (src_value->data[0].v_pointer);
+#line 1658 "BackgroundJob.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 1662 "BackgroundJob.c"
+ }
+}
+
+
+static gpointer value_background_job_peek_pointer (const GValue* value) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return value->data[0].v_pointer;
+#line 1670 "BackgroundJob.c"
+}
+
+
+static gchar* value_background_job_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (collect_values[0].v_pointer) {
+#line 1677 "BackgroundJob.c"
+ BackgroundJob* object;
+ object = collect_values[0].v_pointer;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1684 "BackgroundJob.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 1688 "BackgroundJob.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = background_job_ref (object);
+#line 1692 "BackgroundJob.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1696 "BackgroundJob.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return NULL;
+#line 1700 "BackgroundJob.c"
+}
+
+
+static gchar* value_background_job_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ BackgroundJob** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (!object_p) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 1711 "BackgroundJob.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (!value->data[0].v_pointer) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = NULL;
+#line 1717 "BackgroundJob.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1721 "BackgroundJob.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ *object_p = background_job_ref (value->data[0].v_pointer);
+#line 1725 "BackgroundJob.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return NULL;
+#line 1729 "BackgroundJob.c"
+}
+
+
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecBackgroundJob* spec;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_BACKGROUND_JOB), NULL);
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return G_PARAM_SPEC (spec);
+#line 1743 "BackgroundJob.c"
+}
+
+
+gpointer value_get_background_job (const GValue* value) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKGROUND_JOB), NULL);
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return value->data[0].v_pointer;
+#line 1752 "BackgroundJob.c"
+}
+
+
+void value_set_background_job (GValue* value, gpointer v_object) {
+ BackgroundJob* old;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKGROUND_JOB));
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ old = value->data[0].v_pointer;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (v_object) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BACKGROUND_JOB));
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = v_object;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_ref (value->data[0].v_pointer);
+#line 1772 "BackgroundJob.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1776 "BackgroundJob.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (old) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_unref (old);
+#line 1782 "BackgroundJob.c"
+ }
+}
+
+
+void value_take_background_job (GValue* value, gpointer v_object) {
+ BackgroundJob* old;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_BACKGROUND_JOB));
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ old = value->data[0].v_pointer;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (v_object) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_BACKGROUND_JOB));
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = v_object;
+#line 1801 "BackgroundJob.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ value->data[0].v_pointer = NULL;
+#line 1805 "BackgroundJob.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (old) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_unref (old);
+#line 1811 "BackgroundJob.c"
+ }
+}
+
+
+static void background_job_class_init (BackgroundJobClass * klass) {
+ GeeArrayList* _tmp0_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_parent_class = g_type_class_peek_parent (klass);
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ ((BackgroundJobClass *) klass)->finalize = background_job_finalize;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_type_class_add_private (klass, sizeof (BackgroundJobPrivate));
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ ((BackgroundJobClass *) klass)->execute = background_job_real_execute;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ ((BackgroundJobClass *) klass)->get_priority = background_job_real_get_priority;
+#line 96 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_rec_mutex_init (&__lock_background_job_notify_queue);
+#line 96 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _tmp0_ = gee_array_list_new (BACKGROUND_JOB_TYPE_NOTIFICATION_JOB, (GBoxedCopyFunc) background_job_notification_job_ref, background_job_notification_job_unref, NULL, NULL, NULL);
+#line 96 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ background_job_notify_queue = _tmp0_;
+#line 1834 "BackgroundJob.c"
+}
+
+
+static void background_job_instance_init (BackgroundJob * self) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv = BACKGROUND_JOB_GET_PRIVATE (self);
+#line 102 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->self = NULL;
+#line 103 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->semaphore = NULL;
+#line 110 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->completion_priority = G_PRIORITY_HIGH;
+#line 111 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->priv->notification_priority = G_PRIORITY_DEFAULT_IDLE;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self->ref_count = 1;
+#line 1851 "BackgroundJob.c"
+}
+
+
+static void background_job_finalize (BackgroundJob* obj) {
+ BackgroundJob * self;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BACKGROUND_JOB, BackgroundJob);
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_signal_handlers_destroy (self);
+#line 98 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _g_object_unref0 (self->priv->owner);
+#line 100 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _g_object_unref0 (self->priv->cancellable);
+#line 102 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _background_job_unref0 (self->priv->self);
+#line 103 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ _abstract_semaphore_unref0 (self->priv->semaphore);
+#line 1869 "BackgroundJob.c"
+}
+
+
+GType background_job_get_type (void) {
+ static volatile gsize background_job_type_id__volatile = 0;
+ if (g_once_init_enter (&background_job_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_background_job_init, value_background_job_free_value, value_background_job_copy_value, value_background_job_peek_pointer, "p", value_background_job_collect_value, "p", value_background_job_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (BackgroundJobClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) background_job_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BackgroundJob), 0, (GInstanceInitFunc) background_job_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType background_job_type_id;
+ background_job_type_id = g_type_register_fundamental (g_type_fundamental_next (), "BackgroundJob", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&background_job_type_id__volatile, background_job_type_id);
+ }
+ return background_job_type_id__volatile;
+}
+
+
+gpointer background_job_ref (gpointer instance) {
+ BackgroundJob* self;
+ self = instance;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ return instance;
+#line 1894 "BackgroundJob.c"
+}
+
+
+void background_job_unref (gpointer instance) {
+ BackgroundJob* self;
+ self = instance;
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ BACKGROUND_JOB_GET_CLASS (self)->finalize (self);
+#line 65 "/home/jens/Source/shotwell/src/threads/BackgroundJob.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1907 "BackgroundJob.c"
+ }
+}
+
+
+
diff --git a/src/threads/Semaphore.c b/src/threads/Semaphore.c
new file mode 100644
index 0000000..9874b65
--- /dev/null
+++ b/src/threads/Semaphore.c
@@ -0,0 +1,1159 @@
+/* Semaphore.c generated by valac 0.32.1, the Vala compiler
+ * generated from Semaphore.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* Semaphores may be used to be notified when a job is completed. This provides an alternate*/
+/* mechanism (essentially, a blocking mechanism) to the system of callbacks that BackgroundJob*/
+/* offers. They can also be used for other job-dependent notification mechanisms.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+typedef struct _AbstractSemaphorePrivate AbstractSemaphorePrivate;
+
+#define ABSTRACT_SEMAPHORE_TYPE_NOTIFY_ACTION (abstract_semaphore_notify_action_get_type ())
+
+#define ABSTRACT_SEMAPHORE_TYPE_WAIT_ACTION (abstract_semaphore_wait_action_get_type ())
+
+#define ABSTRACT_SEMAPHORE_TYPE_TYPE (abstract_semaphore_type_get_type ())
+typedef struct _ParamSpecAbstractSemaphore ParamSpecAbstractSemaphore;
+
+#define TYPE_SEMAPHORE (semaphore_get_type ())
+#define SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SEMAPHORE, Semaphore))
+#define SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SEMAPHORE, SemaphoreClass))
+#define IS_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SEMAPHORE))
+#define IS_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SEMAPHORE))
+#define SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SEMAPHORE, SemaphoreClass))
+
+typedef struct _Semaphore Semaphore;
+typedef struct _SemaphoreClass SemaphoreClass;
+typedef struct _SemaphorePrivate SemaphorePrivate;
+
+#define TYPE_COUNTDOWN_SEMAPHORE (countdown_semaphore_get_type ())
+#define COUNTDOWN_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COUNTDOWN_SEMAPHORE, CountdownSemaphore))
+#define COUNTDOWN_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COUNTDOWN_SEMAPHORE, CountdownSemaphoreClass))
+#define IS_COUNTDOWN_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COUNTDOWN_SEMAPHORE))
+#define IS_COUNTDOWN_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COUNTDOWN_SEMAPHORE))
+#define COUNTDOWN_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COUNTDOWN_SEMAPHORE, CountdownSemaphoreClass))
+
+typedef struct _CountdownSemaphore CountdownSemaphore;
+typedef struct _CountdownSemaphoreClass CountdownSemaphoreClass;
+typedef struct _CountdownSemaphorePrivate CountdownSemaphorePrivate;
+
+#define TYPE_EVENT_SEMAPHORE (event_semaphore_get_type ())
+#define EVENT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SEMAPHORE, EventSemaphore))
+#define EVENT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SEMAPHORE, EventSemaphoreClass))
+#define IS_EVENT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SEMAPHORE))
+#define IS_EVENT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SEMAPHORE))
+#define EVENT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SEMAPHORE, EventSemaphoreClass))
+
+typedef struct _EventSemaphore EventSemaphore;
+typedef struct _EventSemaphoreClass EventSemaphoreClass;
+typedef struct _EventSemaphorePrivate EventSemaphorePrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef enum {
+ ABSTRACT_SEMAPHORE_NOTIFY_ACTION_NONE,
+ ABSTRACT_SEMAPHORE_NOTIFY_ACTION_SIGNAL
+} AbstractSemaphoreNotifyAction;
+
+typedef enum {
+ ABSTRACT_SEMAPHORE_WAIT_ACTION_SLEEP,
+ ABSTRACT_SEMAPHORE_WAIT_ACTION_READY
+} AbstractSemaphoreWaitAction;
+
+struct _AbstractSemaphore {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ AbstractSemaphorePrivate * priv;
+};
+
+struct _AbstractSemaphoreClass {
+ GTypeClass parent_class;
+ void (*finalize) (AbstractSemaphore *self);
+ AbstractSemaphoreNotifyAction (*do_notify) (AbstractSemaphore* self);
+ AbstractSemaphoreWaitAction (*do_wait) (AbstractSemaphore* self);
+ gboolean (*do_reset) (AbstractSemaphore* self);
+};
+
+typedef enum {
+ ABSTRACT_SEMAPHORE_TYPE_SERIAL,
+ ABSTRACT_SEMAPHORE_TYPE_BROADCAST
+} AbstractSemaphoreType;
+
+struct _AbstractSemaphorePrivate {
+ AbstractSemaphoreType type;
+ GMutex mutex;
+ GCond monitor;
+};
+
+struct _ParamSpecAbstractSemaphore {
+ GParamSpec parent_instance;
+};
+
+struct _Semaphore {
+ AbstractSemaphore parent_instance;
+ SemaphorePrivate * priv;
+};
+
+struct _SemaphoreClass {
+ AbstractSemaphoreClass parent_class;
+};
+
+struct _SemaphorePrivate {
+ gboolean passed;
+};
+
+struct _CountdownSemaphore {
+ AbstractSemaphore parent_instance;
+ CountdownSemaphorePrivate * priv;
+};
+
+struct _CountdownSemaphoreClass {
+ AbstractSemaphoreClass parent_class;
+};
+
+struct _CountdownSemaphorePrivate {
+ gint total;
+ gint passed;
+};
+
+struct _EventSemaphore {
+ AbstractSemaphore parent_instance;
+ EventSemaphorePrivate * priv;
+};
+
+struct _EventSemaphoreClass {
+ AbstractSemaphoreClass parent_class;
+};
+
+struct _EventSemaphorePrivate {
+ gboolean fired;
+};
+
+
+static gpointer abstract_semaphore_parent_class = NULL;
+static gpointer semaphore_parent_class = NULL;
+static gpointer countdown_semaphore_parent_class = NULL;
+static gpointer event_semaphore_parent_class = NULL;
+
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+GType abstract_semaphore_notify_action_get_type (void) G_GNUC_CONST;
+GType abstract_semaphore_wait_action_get_type (void) G_GNUC_CONST;
+GType abstract_semaphore_type_get_type (void) G_GNUC_CONST;
+#define ABSTRACT_SEMAPHORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphorePrivate))
+enum {
+ ABSTRACT_SEMAPHORE_DUMMY_PROPERTY
+};
+AbstractSemaphore* abstract_semaphore_construct (GType object_type, AbstractSemaphoreType type);
+static void abstract_semaphore_trigger (AbstractSemaphore* self);
+void abstract_semaphore_notify (AbstractSemaphore* self);
+AbstractSemaphoreNotifyAction abstract_semaphore_do_notify (AbstractSemaphore* self);
+const gchar* abstract_semaphore_notify_action_to_string (AbstractSemaphoreNotifyAction self);
+static AbstractSemaphoreNotifyAction abstract_semaphore_real_do_notify (AbstractSemaphore* self);
+void abstract_semaphore_wait (AbstractSemaphore* self);
+AbstractSemaphoreWaitAction abstract_semaphore_do_wait (AbstractSemaphore* self);
+static AbstractSemaphoreWaitAction abstract_semaphore_real_do_wait (AbstractSemaphore* self);
+gboolean abstract_semaphore_reset (AbstractSemaphore* self);
+gboolean abstract_semaphore_do_reset (AbstractSemaphore* self);
+static gboolean abstract_semaphore_real_do_reset (AbstractSemaphore* self);
+static void abstract_semaphore_finalize (AbstractSemaphore* obj);
+GType semaphore_get_type (void) G_GNUC_CONST;
+#define SEMAPHORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SEMAPHORE, SemaphorePrivate))
+enum {
+ SEMAPHORE_DUMMY_PROPERTY
+};
+Semaphore* semaphore_new (void);
+Semaphore* semaphore_construct (GType object_type);
+static AbstractSemaphoreNotifyAction semaphore_real_do_notify (AbstractSemaphore* base);
+static AbstractSemaphoreWaitAction semaphore_real_do_wait (AbstractSemaphore* base);
+static void semaphore_finalize (AbstractSemaphore* obj);
+GType countdown_semaphore_get_type (void) G_GNUC_CONST;
+#define COUNTDOWN_SEMAPHORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_COUNTDOWN_SEMAPHORE, CountdownSemaphorePrivate))
+enum {
+ COUNTDOWN_SEMAPHORE_DUMMY_PROPERTY
+};
+CountdownSemaphore* countdown_semaphore_new (gint total);
+CountdownSemaphore* countdown_semaphore_construct (GType object_type, gint total);
+static AbstractSemaphoreNotifyAction countdown_semaphore_real_do_notify (AbstractSemaphore* base);
+static AbstractSemaphoreWaitAction countdown_semaphore_real_do_wait (AbstractSemaphore* base);
+static void countdown_semaphore_finalize (AbstractSemaphore* obj);
+GType event_semaphore_get_type (void) G_GNUC_CONST;
+#define EVENT_SEMAPHORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_EVENT_SEMAPHORE, EventSemaphorePrivate))
+enum {
+ EVENT_SEMAPHORE_DUMMY_PROPERTY
+};
+EventSemaphore* event_semaphore_new (void);
+EventSemaphore* event_semaphore_construct (GType object_type);
+static AbstractSemaphoreNotifyAction event_semaphore_real_do_notify (AbstractSemaphore* base);
+static AbstractSemaphoreWaitAction event_semaphore_real_do_wait (AbstractSemaphore* base);
+static gboolean event_semaphore_real_do_reset (AbstractSemaphore* base);
+static void event_semaphore_finalize (AbstractSemaphore* obj);
+static void _vala_clear_GMutex (GMutex * mutex);
+static void _vala_clear_GRecMutex (GRecMutex * mutex);
+static void _vala_clear_GRWLock (GRWLock * mutex);
+static void _vala_clear_GCond (GCond * mutex);
+
+
+GType abstract_semaphore_type_get_type (void) {
+ static volatile gsize abstract_semaphore_type_type_id__volatile = 0;
+ if (g_once_init_enter (&abstract_semaphore_type_type_id__volatile)) {
+ static const GEnumValue values[] = {{ABSTRACT_SEMAPHORE_TYPE_SERIAL, "ABSTRACT_SEMAPHORE_TYPE_SERIAL", "serial"}, {ABSTRACT_SEMAPHORE_TYPE_BROADCAST, "ABSTRACT_SEMAPHORE_TYPE_BROADCAST", "broadcast"}, {0, NULL, NULL}};
+ GType abstract_semaphore_type_type_id;
+ abstract_semaphore_type_type_id = g_enum_register_static ("AbstractSemaphoreType", values);
+ g_once_init_leave (&abstract_semaphore_type_type_id__volatile, abstract_semaphore_type_type_id);
+ }
+ return abstract_semaphore_type_type_id__volatile;
+}
+
+
+GType abstract_semaphore_notify_action_get_type (void) {
+ static volatile gsize abstract_semaphore_notify_action_type_id__volatile = 0;
+ if (g_once_init_enter (&abstract_semaphore_notify_action_type_id__volatile)) {
+ static const GEnumValue values[] = {{ABSTRACT_SEMAPHORE_NOTIFY_ACTION_NONE, "ABSTRACT_SEMAPHORE_NOTIFY_ACTION_NONE", "none"}, {ABSTRACT_SEMAPHORE_NOTIFY_ACTION_SIGNAL, "ABSTRACT_SEMAPHORE_NOTIFY_ACTION_SIGNAL", "signal"}, {0, NULL, NULL}};
+ GType abstract_semaphore_notify_action_type_id;
+ abstract_semaphore_notify_action_type_id = g_enum_register_static ("AbstractSemaphoreNotifyAction", values);
+ g_once_init_leave (&abstract_semaphore_notify_action_type_id__volatile, abstract_semaphore_notify_action_type_id);
+ }
+ return abstract_semaphore_notify_action_type_id__volatile;
+}
+
+
+GType abstract_semaphore_wait_action_get_type (void) {
+ static volatile gsize abstract_semaphore_wait_action_type_id__volatile = 0;
+ if (g_once_init_enter (&abstract_semaphore_wait_action_type_id__volatile)) {
+ static const GEnumValue values[] = {{ABSTRACT_SEMAPHORE_WAIT_ACTION_SLEEP, "ABSTRACT_SEMAPHORE_WAIT_ACTION_SLEEP", "sleep"}, {ABSTRACT_SEMAPHORE_WAIT_ACTION_READY, "ABSTRACT_SEMAPHORE_WAIT_ACTION_READY", "ready"}, {0, NULL, NULL}};
+ GType abstract_semaphore_wait_action_type_id;
+ abstract_semaphore_wait_action_type_id = g_enum_register_static ("AbstractSemaphoreWaitAction", values);
+ g_once_init_leave (&abstract_semaphore_wait_action_type_id__volatile, abstract_semaphore_wait_action_type_id);
+ }
+ return abstract_semaphore_wait_action_type_id__volatile;
+}
+
+
+AbstractSemaphore* abstract_semaphore_construct (GType object_type, AbstractSemaphoreType type) {
+ AbstractSemaphore* self = NULL;
+ gboolean _tmp0_ = FALSE;
+ AbstractSemaphoreType _tmp1_ = 0;
+ AbstractSemaphoreType _tmp3_ = 0;
+#line 30 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = (AbstractSemaphore*) g_type_create_instance (object_type);
+#line 31 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp1_ = type;
+#line 31 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp1_ == ABSTRACT_SEMAPHORE_TYPE_SERIAL) {
+#line 31 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = TRUE;
+#line 274 "Semaphore.c"
+ } else {
+ AbstractSemaphoreType _tmp2_ = 0;
+#line 31 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp2_ = type;
+#line 31 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = _tmp2_ == ABSTRACT_SEMAPHORE_TYPE_BROADCAST;
+#line 281 "Semaphore.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _vala_assert (_tmp0_, "type == Type.SERIAL || type == Type.BROADCAST");
+#line 33 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp3_ = type;
+#line 33 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->type = _tmp3_;
+#line 30 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return self;
+#line 291 "Semaphore.c"
+}
+
+
+static void abstract_semaphore_trigger (AbstractSemaphore* self) {
+ AbstractSemaphoreType _tmp0_ = 0;
+#line 36 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (IS_ABSTRACT_SEMAPHORE (self));
+#line 37 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = self->priv->type;
+#line 37 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp0_ == ABSTRACT_SEMAPHORE_TYPE_SERIAL) {
+#line 38 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_cond_signal (&self->priv->monitor);
+#line 305 "Semaphore.c"
+ } else {
+#line 40 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_cond_broadcast (&self->priv->monitor);
+#line 309 "Semaphore.c"
+ }
+}
+
+
+void abstract_semaphore_notify (AbstractSemaphore* self) {
+ AbstractSemaphoreNotifyAction action = 0;
+ AbstractSemaphoreNotifyAction _tmp0_ = 0;
+ AbstractSemaphoreNotifyAction _tmp1_ = 0;
+#line 43 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (IS_ABSTRACT_SEMAPHORE (self));
+#line 44 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_mutex_lock (&self->priv->mutex);
+#line 46 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = abstract_semaphore_do_notify (self);
+#line 46 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ action = _tmp0_;
+#line 47 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp1_ = action;
+#line 47 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ switch (_tmp1_) {
+#line 47 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ case ABSTRACT_SEMAPHORE_NOTIFY_ACTION_NONE:
+#line 332 "Semaphore.c"
+ {
+#line 50 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ break;
+#line 336 "Semaphore.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ case ABSTRACT_SEMAPHORE_NOTIFY_ACTION_SIGNAL:
+#line 340 "Semaphore.c"
+ {
+#line 53 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ abstract_semaphore_trigger (self);
+#line 54 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ break;
+#line 346 "Semaphore.c"
+ }
+ default:
+ {
+ AbstractSemaphoreNotifyAction _tmp2_ = 0;
+ GEnumValue* _tmp3_;
+#line 57 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp2_ = action;
+#line 57 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp3_ = g_enum_get_value (g_type_class_ref (ABSTRACT_SEMAPHORE_TYPE_NOTIFY_ACTION), _tmp2_);
+#line 57 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_error ("Semaphore.vala:57: Unknown semaphore action: %s", (_tmp3_ != NULL) ? _tmp3_->value_name : NULL);
+#line 358 "Semaphore.c"
+ }
+ }
+#line 60 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_mutex_unlock (&self->priv->mutex);
+#line 363 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreNotifyAction abstract_semaphore_real_do_notify (AbstractSemaphore* self) {
+#line 64 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_critical ("Type `%s' does not implement abstract method `abstract_semaphore_do_notify'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 64 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return 0;
+#line 372 "Semaphore.c"
+}
+
+
+AbstractSemaphoreNotifyAction abstract_semaphore_do_notify (AbstractSemaphore* self) {
+#line 64 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_val_if_fail (IS_ABSTRACT_SEMAPHORE (self), 0);
+#line 64 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return ABSTRACT_SEMAPHORE_GET_CLASS (self)->do_notify (self);
+#line 381 "Semaphore.c"
+}
+
+
+void abstract_semaphore_wait (AbstractSemaphore* self) {
+#line 66 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (IS_ABSTRACT_SEMAPHORE (self));
+#line 67 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_mutex_lock (&self->priv->mutex);
+#line 69 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ while (TRUE) {
+#line 392 "Semaphore.c"
+ AbstractSemaphoreWaitAction _tmp0_ = 0;
+#line 69 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = abstract_semaphore_do_wait (self);
+#line 69 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (!(_tmp0_ == ABSTRACT_SEMAPHORE_WAIT_ACTION_SLEEP)) {
+#line 69 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ break;
+#line 400 "Semaphore.c"
+ }
+#line 70 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_cond_wait (&self->priv->monitor, &self->priv->mutex);
+#line 404 "Semaphore.c"
+ }
+#line 72 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_mutex_unlock (&self->priv->mutex);
+#line 408 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreWaitAction abstract_semaphore_real_do_wait (AbstractSemaphore* self) {
+#line 76 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_critical ("Type `%s' does not implement abstract method `abstract_semaphore_do_wait'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
+#line 76 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return 0;
+#line 417 "Semaphore.c"
+}
+
+
+AbstractSemaphoreWaitAction abstract_semaphore_do_wait (AbstractSemaphore* self) {
+#line 76 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_val_if_fail (IS_ABSTRACT_SEMAPHORE (self), 0);
+#line 76 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return ABSTRACT_SEMAPHORE_GET_CLASS (self)->do_wait (self);
+#line 426 "Semaphore.c"
+}
+
+
+gboolean abstract_semaphore_reset (AbstractSemaphore* self) {
+ gboolean result = FALSE;
+ gboolean is_reset = FALSE;
+ gboolean _tmp0_ = FALSE;
+#line 79 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_val_if_fail (IS_ABSTRACT_SEMAPHORE (self), FALSE);
+#line 80 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_mutex_lock (&self->priv->mutex);
+#line 81 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = abstract_semaphore_do_reset (self);
+#line 81 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ is_reset = _tmp0_;
+#line 82 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_mutex_unlock (&self->priv->mutex);
+#line 84 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = is_reset;
+#line 84 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 448 "Semaphore.c"
+}
+
+
+static gboolean abstract_semaphore_real_do_reset (AbstractSemaphore* self) {
+ gboolean result = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 458 "Semaphore.c"
+}
+
+
+gboolean abstract_semaphore_do_reset (AbstractSemaphore* self) {
+#line 89 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_val_if_fail (IS_ABSTRACT_SEMAPHORE (self), FALSE);
+#line 89 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return ABSTRACT_SEMAPHORE_GET_CLASS (self)->do_reset (self);
+#line 467 "Semaphore.c"
+}
+
+
+static void value_abstract_semaphore_init (GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ value->data[0].v_pointer = NULL;
+#line 474 "Semaphore.c"
+}
+
+
+static void value_abstract_semaphore_free_value (GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (value->data[0].v_pointer) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ abstract_semaphore_unref (value->data[0].v_pointer);
+#line 483 "Semaphore.c"
+ }
+}
+
+
+static void value_abstract_semaphore_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (src_value->data[0].v_pointer) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ dest_value->data[0].v_pointer = abstract_semaphore_ref (src_value->data[0].v_pointer);
+#line 493 "Semaphore.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 497 "Semaphore.c"
+ }
+}
+
+
+static gpointer value_abstract_semaphore_peek_pointer (const GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return value->data[0].v_pointer;
+#line 505 "Semaphore.c"
+}
+
+
+static gchar* value_abstract_semaphore_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (collect_values[0].v_pointer) {
+#line 512 "Semaphore.c"
+ AbstractSemaphore* object;
+ object = collect_values[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 519 "Semaphore.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 523 "Semaphore.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ value->data[0].v_pointer = abstract_semaphore_ref (object);
+#line 527 "Semaphore.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ value->data[0].v_pointer = NULL;
+#line 531 "Semaphore.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return NULL;
+#line 535 "Semaphore.c"
+}
+
+
+static gchar* value_abstract_semaphore_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ AbstractSemaphore** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (!object_p) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 546 "Semaphore.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (!value->data[0].v_pointer) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ *object_p = NULL;
+#line 552 "Semaphore.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ *object_p = value->data[0].v_pointer;
+#line 556 "Semaphore.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ *object_p = abstract_semaphore_ref (value->data[0].v_pointer);
+#line 560 "Semaphore.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return NULL;
+#line 564 "Semaphore.c"
+}
+
+
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecAbstractSemaphore* spec;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_ABSTRACT_SEMAPHORE), NULL);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return G_PARAM_SPEC (spec);
+#line 578 "Semaphore.c"
+}
+
+
+gpointer value_get_abstract_semaphore (const GValue* value) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ABSTRACT_SEMAPHORE), NULL);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return value->data[0].v_pointer;
+#line 587 "Semaphore.c"
+}
+
+
+void value_set_abstract_semaphore (GValue* value, gpointer v_object) {
+ AbstractSemaphore* old;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ABSTRACT_SEMAPHORE));
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ old = value->data[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (v_object) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ABSTRACT_SEMAPHORE));
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ value->data[0].v_pointer = v_object;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ abstract_semaphore_ref (value->data[0].v_pointer);
+#line 607 "Semaphore.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ value->data[0].v_pointer = NULL;
+#line 611 "Semaphore.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (old) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ abstract_semaphore_unref (old);
+#line 617 "Semaphore.c"
+ }
+}
+
+
+void value_take_abstract_semaphore (GValue* value, gpointer v_object) {
+ AbstractSemaphore* old;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ABSTRACT_SEMAPHORE));
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ old = value->data[0].v_pointer;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (v_object) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ABSTRACT_SEMAPHORE));
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ value->data[0].v_pointer = v_object;
+#line 636 "Semaphore.c"
+ } else {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ value->data[0].v_pointer = NULL;
+#line 640 "Semaphore.c"
+ }
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (old) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ abstract_semaphore_unref (old);
+#line 646 "Semaphore.c"
+ }
+}
+
+
+static void abstract_semaphore_class_init (AbstractSemaphoreClass * klass) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ abstract_semaphore_parent_class = g_type_class_peek_parent (klass);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->finalize = abstract_semaphore_finalize;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_type_class_add_private (klass, sizeof (AbstractSemaphorePrivate));
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_notify = abstract_semaphore_real_do_notify;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_wait = abstract_semaphore_real_do_wait;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_reset = abstract_semaphore_real_do_reset;
+#line 664 "Semaphore.c"
+}
+
+
+static void abstract_semaphore_instance_init (AbstractSemaphore * self) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv = ABSTRACT_SEMAPHORE_GET_PRIVATE (self);
+#line 27 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_mutex_init (&self->priv->mutex);
+#line 28 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_cond_init (&self->priv->monitor);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->ref_count = 1;
+#line 677 "Semaphore.c"
+}
+
+
+static void abstract_semaphore_finalize (AbstractSemaphore* obj) {
+ AbstractSemaphore * self;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_signal_handlers_destroy (self);
+#line 27 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _vala_clear_GMutex (&self->priv->mutex);
+#line 28 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _vala_clear_GCond (&self->priv->monitor);
+#line 691 "Semaphore.c"
+}
+
+
+GType abstract_semaphore_get_type (void) {
+ static volatile gsize abstract_semaphore_type_id__volatile = 0;
+ if (g_once_init_enter (&abstract_semaphore_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_abstract_semaphore_init, value_abstract_semaphore_free_value, value_abstract_semaphore_copy_value, value_abstract_semaphore_peek_pointer, "p", value_abstract_semaphore_collect_value, "p", value_abstract_semaphore_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (AbstractSemaphoreClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) abstract_semaphore_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AbstractSemaphore), 0, (GInstanceInitFunc) abstract_semaphore_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType abstract_semaphore_type_id;
+ abstract_semaphore_type_id = g_type_register_fundamental (g_type_fundamental_next (), "AbstractSemaphore", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
+ g_once_init_leave (&abstract_semaphore_type_id__volatile, abstract_semaphore_type_id);
+ }
+ return abstract_semaphore_type_id__volatile;
+}
+
+
+gpointer abstract_semaphore_ref (gpointer instance) {
+ AbstractSemaphore* self;
+ self = instance;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return instance;
+#line 716 "Semaphore.c"
+}
+
+
+void abstract_semaphore_unref (gpointer instance) {
+ AbstractSemaphore* self;
+ self = instance;
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ABSTRACT_SEMAPHORE_GET_CLASS (self)->finalize (self);
+#line 10 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 729 "Semaphore.c"
+ }
+}
+
+
+Semaphore* semaphore_construct (GType object_type) {
+ Semaphore* self = NULL;
+#line 98 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = (Semaphore*) abstract_semaphore_construct (object_type, ABSTRACT_SEMAPHORE_TYPE_BROADCAST);
+#line 97 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return self;
+#line 740 "Semaphore.c"
+}
+
+
+Semaphore* semaphore_new (void) {
+#line 97 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return semaphore_construct (TYPE_SEMAPHORE);
+#line 747 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreNotifyAction semaphore_real_do_notify (AbstractSemaphore* base) {
+ Semaphore * self;
+ AbstractSemaphoreNotifyAction result = 0;
+ gboolean _tmp0_ = FALSE;
+#line 101 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEMAPHORE, Semaphore);
+#line 102 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = self->priv->passed;
+#line 102 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp0_) {
+#line 103 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = ABSTRACT_SEMAPHORE_NOTIFY_ACTION_NONE;
+#line 103 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 765 "Semaphore.c"
+ }
+#line 105 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->passed = TRUE;
+#line 107 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = ABSTRACT_SEMAPHORE_NOTIFY_ACTION_SIGNAL;
+#line 107 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 773 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreWaitAction semaphore_real_do_wait (AbstractSemaphore* base) {
+ Semaphore * self;
+ AbstractSemaphoreWaitAction result = 0;
+ AbstractSemaphoreWaitAction _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 110 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_SEMAPHORE, Semaphore);
+#line 111 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp1_ = self->priv->passed;
+#line 111 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp1_) {
+#line 111 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = ABSTRACT_SEMAPHORE_WAIT_ACTION_READY;
+#line 790 "Semaphore.c"
+ } else {
+#line 111 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = ABSTRACT_SEMAPHORE_WAIT_ACTION_SLEEP;
+#line 794 "Semaphore.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = _tmp0_;
+#line 111 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 800 "Semaphore.c"
+}
+
+
+static void semaphore_class_init (SemaphoreClass * klass) {
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ semaphore_parent_class = g_type_class_peek_parent (klass);
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->finalize = semaphore_finalize;
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_type_class_add_private (klass, sizeof (SemaphorePrivate));
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_notify = semaphore_real_do_notify;
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_wait = semaphore_real_do_wait;
+#line 815 "Semaphore.c"
+}
+
+
+static void semaphore_instance_init (Semaphore * self) {
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv = SEMAPHORE_GET_PRIVATE (self);
+#line 95 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->passed = FALSE;
+#line 824 "Semaphore.c"
+}
+
+
+static void semaphore_finalize (AbstractSemaphore* obj) {
+ Semaphore * self;
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SEMAPHORE, Semaphore);
+#line 94 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ABSTRACT_SEMAPHORE_CLASS (semaphore_parent_class)->finalize (obj);
+#line 834 "Semaphore.c"
+}
+
+
+GType semaphore_get_type (void) {
+ static volatile gsize semaphore_type_id__volatile = 0;
+ if (g_once_init_enter (&semaphore_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (SemaphoreClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) semaphore_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Semaphore), 0, (GInstanceInitFunc) semaphore_instance_init, NULL };
+ GType semaphore_type_id;
+ semaphore_type_id = g_type_register_static (TYPE_ABSTRACT_SEMAPHORE, "Semaphore", &g_define_type_info, 0);
+ g_once_init_leave (&semaphore_type_id__volatile, semaphore_type_id);
+ }
+ return semaphore_type_id__volatile;
+}
+
+
+CountdownSemaphore* countdown_semaphore_construct (GType object_type, gint total) {
+ CountdownSemaphore* self = NULL;
+ gint _tmp0_ = 0;
+#line 120 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = (CountdownSemaphore*) abstract_semaphore_construct (object_type, ABSTRACT_SEMAPHORE_TYPE_BROADCAST);
+#line 122 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = total;
+#line 122 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->total = _tmp0_;
+#line 119 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return self;
+#line 861 "Semaphore.c"
+}
+
+
+CountdownSemaphore* countdown_semaphore_new (gint total) {
+#line 119 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return countdown_semaphore_construct (TYPE_COUNTDOWN_SEMAPHORE, total);
+#line 868 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreNotifyAction countdown_semaphore_real_do_notify (AbstractSemaphore* base) {
+ CountdownSemaphore * self;
+ AbstractSemaphoreNotifyAction result = 0;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ AbstractSemaphoreNotifyAction _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 125 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COUNTDOWN_SEMAPHORE, CountdownSemaphore);
+#line 126 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = self->priv->passed;
+#line 126 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp1_ = self->priv->total;
+#line 126 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp0_ >= _tmp1_) {
+#line 889 "Semaphore.c"
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+#line 127 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp2_ = self->priv->passed;
+#line 127 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp3_ = self->priv->total;
+#line 127 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_critical ("Semaphore.vala:127: CountdownSemaphore overrun: %d/%d", _tmp2_ + 1, _tmp3_);
+#line 898 "Semaphore.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp5_ = self->priv->passed;
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->passed = _tmp5_ + 1;
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp6_ = self->priv->passed;
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp7_ = self->priv->total;
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp6_ >= _tmp7_) {
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp4_ = ABSTRACT_SEMAPHORE_NOTIFY_ACTION_SIGNAL;
+#line 912 "Semaphore.c"
+ } else {
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp4_ = ABSTRACT_SEMAPHORE_NOTIFY_ACTION_NONE;
+#line 916 "Semaphore.c"
+ }
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = _tmp4_;
+#line 129 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 922 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreWaitAction countdown_semaphore_real_do_wait (AbstractSemaphore* base) {
+ CountdownSemaphore * self;
+ AbstractSemaphoreWaitAction result = 0;
+ AbstractSemaphoreWaitAction _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 132 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_COUNTDOWN_SEMAPHORE, CountdownSemaphore);
+#line 133 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp1_ = self->priv->passed;
+#line 133 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp2_ = self->priv->total;
+#line 133 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp1_ < _tmp2_) {
+#line 133 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = ABSTRACT_SEMAPHORE_WAIT_ACTION_SLEEP;
+#line 942 "Semaphore.c"
+ } else {
+#line 133 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = ABSTRACT_SEMAPHORE_WAIT_ACTION_READY;
+#line 946 "Semaphore.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = _tmp0_;
+#line 133 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 952 "Semaphore.c"
+}
+
+
+static void countdown_semaphore_class_init (CountdownSemaphoreClass * klass) {
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ countdown_semaphore_parent_class = g_type_class_peek_parent (klass);
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->finalize = countdown_semaphore_finalize;
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_type_class_add_private (klass, sizeof (CountdownSemaphorePrivate));
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_notify = countdown_semaphore_real_do_notify;
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_wait = countdown_semaphore_real_do_wait;
+#line 967 "Semaphore.c"
+}
+
+
+static void countdown_semaphore_instance_init (CountdownSemaphore * self) {
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv = COUNTDOWN_SEMAPHORE_GET_PRIVATE (self);
+#line 117 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->passed = 0;
+#line 976 "Semaphore.c"
+}
+
+
+static void countdown_semaphore_finalize (AbstractSemaphore* obj) {
+ CountdownSemaphore * self;
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_COUNTDOWN_SEMAPHORE, CountdownSemaphore);
+#line 115 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ABSTRACT_SEMAPHORE_CLASS (countdown_semaphore_parent_class)->finalize (obj);
+#line 986 "Semaphore.c"
+}
+
+
+GType countdown_semaphore_get_type (void) {
+ static volatile gsize countdown_semaphore_type_id__volatile = 0;
+ if (g_once_init_enter (&countdown_semaphore_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (CountdownSemaphoreClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) countdown_semaphore_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CountdownSemaphore), 0, (GInstanceInitFunc) countdown_semaphore_instance_init, NULL };
+ GType countdown_semaphore_type_id;
+ countdown_semaphore_type_id = g_type_register_static (TYPE_ABSTRACT_SEMAPHORE, "CountdownSemaphore", &g_define_type_info, 0);
+ g_once_init_leave (&countdown_semaphore_type_id__volatile, countdown_semaphore_type_id);
+ }
+ return countdown_semaphore_type_id__volatile;
+}
+
+
+EventSemaphore* event_semaphore_construct (GType object_type) {
+ EventSemaphore* self = NULL;
+#line 141 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = (EventSemaphore*) abstract_semaphore_construct (object_type, ABSTRACT_SEMAPHORE_TYPE_BROADCAST);
+#line 140 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return self;
+#line 1008 "Semaphore.c"
+}
+
+
+EventSemaphore* event_semaphore_new (void) {
+#line 140 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return event_semaphore_construct (TYPE_EVENT_SEMAPHORE);
+#line 1015 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreNotifyAction event_semaphore_real_do_notify (AbstractSemaphore* base) {
+ EventSemaphore * self;
+ AbstractSemaphoreNotifyAction result = 0;
+#line 144 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_SEMAPHORE, EventSemaphore);
+#line 145 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->fired = TRUE;
+#line 147 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = ABSTRACT_SEMAPHORE_NOTIFY_ACTION_SIGNAL;
+#line 147 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 1030 "Semaphore.c"
+}
+
+
+static AbstractSemaphoreWaitAction event_semaphore_real_do_wait (AbstractSemaphore* base) {
+ EventSemaphore * self;
+ AbstractSemaphoreWaitAction result = 0;
+ AbstractSemaphoreWaitAction _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+#line 150 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_SEMAPHORE, EventSemaphore);
+#line 151 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp1_ = self->priv->fired;
+#line 151 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ if (_tmp1_) {
+#line 151 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = ABSTRACT_SEMAPHORE_WAIT_ACTION_READY;
+#line 1047 "Semaphore.c"
+ } else {
+#line 151 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ _tmp0_ = ABSTRACT_SEMAPHORE_WAIT_ACTION_SLEEP;
+#line 1051 "Semaphore.c"
+ }
+#line 151 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = _tmp0_;
+#line 151 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 1057 "Semaphore.c"
+}
+
+
+static gboolean event_semaphore_real_do_reset (AbstractSemaphore* base) {
+ EventSemaphore * self;
+ gboolean result = FALSE;
+#line 154 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (base, TYPE_EVENT_SEMAPHORE, EventSemaphore);
+#line 155 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->fired = FALSE;
+#line 157 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ result = TRUE;
+#line 157 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ return result;
+#line 1072 "Semaphore.c"
+}
+
+
+static void event_semaphore_class_init (EventSemaphoreClass * klass) {
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ event_semaphore_parent_class = g_type_class_peek_parent (klass);
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->finalize = event_semaphore_finalize;
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ g_type_class_add_private (klass, sizeof (EventSemaphorePrivate));
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_notify = event_semaphore_real_do_notify;
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_wait = event_semaphore_real_do_wait;
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ((AbstractSemaphoreClass *) klass)->do_reset = event_semaphore_real_do_reset;
+#line 1089 "Semaphore.c"
+}
+
+
+static void event_semaphore_instance_init (EventSemaphore * self) {
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv = EVENT_SEMAPHORE_GET_PRIVATE (self);
+#line 138 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self->priv->fired = FALSE;
+#line 1098 "Semaphore.c"
+}
+
+
+static void event_semaphore_finalize (AbstractSemaphore* obj) {
+ EventSemaphore * self;
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_EVENT_SEMAPHORE, EventSemaphore);
+#line 137 "/home/jens/Source/shotwell/src/threads/Semaphore.vala"
+ ABSTRACT_SEMAPHORE_CLASS (event_semaphore_parent_class)->finalize (obj);
+#line 1108 "Semaphore.c"
+}
+
+
+GType event_semaphore_get_type (void) {
+ static volatile gsize event_semaphore_type_id__volatile = 0;
+ if (g_once_init_enter (&event_semaphore_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (EventSemaphoreClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) event_semaphore_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EventSemaphore), 0, (GInstanceInitFunc) event_semaphore_instance_init, NULL };
+ GType event_semaphore_type_id;
+ event_semaphore_type_id = g_type_register_static (TYPE_ABSTRACT_SEMAPHORE, "EventSemaphore", &g_define_type_info, 0);
+ g_once_init_leave (&event_semaphore_type_id__volatile, event_semaphore_type_id);
+ }
+ return event_semaphore_type_id__volatile;
+}
+
+
+static void _vala_clear_GMutex (GMutex * mutex) {
+ GMutex zero_mutex = { 0 };
+ if (memcmp (mutex, &zero_mutex, sizeof (GMutex))) {
+ g_mutex_clear (mutex);
+ memset (mutex, 0, sizeof (GMutex));
+ }
+}
+
+
+static void _vala_clear_GRecMutex (GRecMutex * mutex) {
+ GRecMutex zero_mutex = { 0 };
+ if (memcmp (mutex, &zero_mutex, sizeof (GRecMutex))) {
+ g_rec_mutex_clear (mutex);
+ memset (mutex, 0, sizeof (GRecMutex));
+ }
+}
+
+
+static void _vala_clear_GRWLock (GRWLock * mutex) {
+ GRWLock zero_mutex = { 0 };
+ if (memcmp (mutex, &zero_mutex, sizeof (GRWLock))) {
+ g_rw_lock_clear (mutex);
+ memset (mutex, 0, sizeof (GRWLock));
+ }
+}
+
+
+static void _vala_clear_GCond (GCond * mutex) {
+ GCond zero_mutex = { 0 };
+ if (memcmp (mutex, &zero_mutex, sizeof (GCond))) {
+ g_cond_clear (mutex);
+ memset (mutex, 0, sizeof (GCond));
+ }
+}
+
+
+
diff --git a/src/threads/Threads.c b/src/threads/Threads.c
new file mode 100644
index 0000000..d87457f
--- /dev/null
+++ b/src/threads/Threads.c
@@ -0,0 +1,28 @@
+/* Threads.c generated by valac 0.32.1, the Vala compiler
+ * generated from Threads.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void threads_init (GError** error);
+void threads_terminate (void);
+
+
+void threads_init (GError** error) {
+}
+
+
+void threads_terminate (void) {
+}
+
+
+
diff --git a/src/threads/Workers.c b/src/threads/Workers.c
new file mode 100644
index 0000000..92d5e97
--- /dev/null
+++ b/src/threads/Workers.c
@@ -0,0 +1,1074 @@
+/* Workers.c generated by valac 0.32.1, the Vala compiler
+ * generated from Workers.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gee.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_SORTED_LIST (sorted_list_get_type ())
+#define SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_LIST, SortedList))
+#define SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_LIST, SortedListClass))
+#define IS_SORTED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_LIST))
+#define IS_SORTED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_LIST))
+#define SORTED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_LIST, SortedListClass))
+
+typedef struct _SortedList SortedList;
+typedef struct _SortedListClass SortedListClass;
+typedef struct _SortedListPrivate SortedListPrivate;
+
+#define TYPE_BACKGROUND_JOB_BATCH (background_job_batch_get_type ())
+#define BACKGROUND_JOB_BATCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB_BATCH, BackgroundJobBatch))
+#define BACKGROUND_JOB_BATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB_BATCH, BackgroundJobBatchClass))
+#define IS_BACKGROUND_JOB_BATCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB_BATCH))
+#define IS_BACKGROUND_JOB_BATCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB_BATCH))
+#define BACKGROUND_JOB_BATCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB_BATCH, BackgroundJobBatchClass))
+
+typedef struct _BackgroundJobBatch BackgroundJobBatch;
+typedef struct _BackgroundJobBatchClass BackgroundJobBatchClass;
+typedef struct _BackgroundJobBatchPrivate BackgroundJobBatchPrivate;
+
+#define TYPE_BACKGROUND_JOB (background_job_get_type ())
+#define BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BACKGROUND_JOB, BackgroundJob))
+#define BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+#define IS_BACKGROUND_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BACKGROUND_JOB))
+#define IS_BACKGROUND_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BACKGROUND_JOB))
+#define BACKGROUND_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BACKGROUND_JOB, BackgroundJobClass))
+
+typedef struct _BackgroundJob BackgroundJob;
+typedef struct _BackgroundJobClass BackgroundJobClass;
+
+#define TYPE_WORKERS (workers_get_type ())
+#define WORKERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WORKERS, Workers))
+#define WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WORKERS, WorkersClass))
+#define IS_WORKERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WORKERS))
+#define IS_WORKERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WORKERS))
+#define WORKERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WORKERS, WorkersClass))
+
+typedef struct _Workers Workers;
+typedef struct _WorkersClass WorkersClass;
+typedef struct _WorkersPrivate WorkersPrivate;
+
+#define TYPE_ABSTRACT_SEMAPHORE (abstract_semaphore_get_type ())
+#define ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore))
+#define ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+#define IS_ABSTRACT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ABSTRACT_SEMAPHORE))
+#define IS_ABSTRACT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ABSTRACT_SEMAPHORE))
+#define ABSTRACT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphoreClass))
+
+typedef struct _AbstractSemaphore AbstractSemaphore;
+typedef struct _AbstractSemaphoreClass AbstractSemaphoreClass;
+
+#define TYPE_EVENT_SEMAPHORE (event_semaphore_get_type ())
+#define EVENT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_EVENT_SEMAPHORE, EventSemaphore))
+#define EVENT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_EVENT_SEMAPHORE, EventSemaphoreClass))
+#define IS_EVENT_SEMAPHORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_EVENT_SEMAPHORE))
+#define IS_EVENT_SEMAPHORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_EVENT_SEMAPHORE))
+#define EVENT_SEMAPHORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_EVENT_SEMAPHORE, EventSemaphoreClass))
+
+typedef struct _EventSemaphore EventSemaphore;
+typedef struct _EventSemaphoreClass EventSemaphoreClass;
+#define _g_thread_pool_free0(var) ((var == NULL) ? NULL : (var = (g_thread_pool_free (var, FALSE, TRUE), NULL)))
+#define _g_async_queue_unref0(var) ((var == NULL) ? NULL : (var = (g_async_queue_unref (var), NULL)))
+#define _abstract_semaphore_unref0(var) ((var == NULL) ? NULL : (var = (abstract_semaphore_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _background_job_unref0(var) ((var == NULL) ? NULL : (var = (background_job_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _ParamSpecWorkers ParamSpecWorkers;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _SortedList {
+ GObject parent_instance;
+ SortedListPrivate * priv;
+};
+
+struct _SortedListClass {
+ GObjectClass parent_class;
+};
+
+struct _BackgroundJobBatch {
+ SortedList parent_instance;
+ BackgroundJobBatchPrivate * priv;
+};
+
+struct _BackgroundJobBatchClass {
+ SortedListClass parent_class;
+};
+
+typedef gint64 (*Comparator) (void* a, void* b, void* user_data);
+struct _Workers {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ WorkersPrivate * priv;
+};
+
+struct _WorkersClass {
+ GTypeClass parent_class;
+ void (*finalize) (Workers *self);
+};
+
+struct _WorkersPrivate {
+ GThreadPool* thread_pool;
+ GAsyncQueue* queue;
+ GRecMutex __lock_queue;
+ EventSemaphore* empty_event;
+ gint enqueued;
+};
+
+struct _ParamSpecWorkers {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer background_job_batch_parent_class = NULL;
+static gpointer workers_parent_class = NULL;
+
+GType sorted_list_get_type (void) G_GNUC_CONST;
+GType background_job_batch_get_type (void) G_GNUC_CONST;
+enum {
+ BACKGROUND_JOB_BATCH_DUMMY_PROPERTY
+};
+BackgroundJobBatch* background_job_batch_new (void);
+BackgroundJobBatch* background_job_batch_construct (GType object_type);
+gint64 background_job_priority_comparator (void* a, void* b);
+static gint64 _background_job_priority_comparator_comparator (void* a, void* b, gpointer self);
+SortedList* sorted_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+SortedList* sorted_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, Comparator cmp, void* cmp_target);
+gpointer background_job_ref (gpointer instance);
+void background_job_unref (gpointer instance);
+GParamSpec* param_spec_background_job (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_background_job (GValue* value, gpointer v_object);
+void value_take_background_job (GValue* value, gpointer v_object);
+gpointer value_get_background_job (const GValue* value);
+GType background_job_get_type (void) G_GNUC_CONST;
+gpointer workers_ref (gpointer instance);
+void workers_unref (gpointer instance);
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_workers (GValue* value, gpointer v_object);
+void value_take_workers (GValue* value, gpointer v_object);
+gpointer value_get_workers (const GValue* value);
+GType workers_get_type (void) G_GNUC_CONST;
+gpointer abstract_semaphore_ref (gpointer instance);
+void abstract_semaphore_unref (gpointer instance);
+GParamSpec* param_spec_abstract_semaphore (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_abstract_semaphore (GValue* value, gpointer v_object);
+void value_take_abstract_semaphore (GValue* value, gpointer v_object);
+gpointer value_get_abstract_semaphore (const GValue* value);
+GType abstract_semaphore_get_type (void) G_GNUC_CONST;
+GType event_semaphore_get_type (void) G_GNUC_CONST;
+#define WORKERS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_WORKERS, WorkersPrivate))
+enum {
+ WORKERS_DUMMY_PROPERTY
+};
+static void _background_job_unref0_ (gpointer var);
+EventSemaphore* event_semaphore_new (void);
+EventSemaphore* event_semaphore_construct (GType object_type);
+#define WORKERS_UNLIMITED_THREADS -1
+Workers* workers_new (guint max_threads, gboolean exclusive);
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive);
+void abstract_semaphore_notify (AbstractSemaphore* self);
+static void workers_thread_start (Workers* self, void* ignored);
+static void _workers_thread_start_gfunc (gpointer data, gpointer self);
+guint workers_threads_per_cpu (gint per, gint max);
+guint workers_thread_per_cpu_minus_one (void);
+void workers_enqueue (Workers* self, BackgroundJob* job);
+gboolean abstract_semaphore_reset (AbstractSemaphore* self);
+gint background_job_priority_compare_func (BackgroundJob* a, BackgroundJob* b);
+static gint _background_job_priority_compare_func_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self);
+void workers_enqueue_many (Workers* self, BackgroundJobBatch* batch);
+void workers_wait_for_empty_queue (Workers* self);
+void abstract_semaphore_wait (AbstractSemaphore* self);
+gint workers_get_pending_job_count (Workers* self);
+gboolean background_job_is_cancelled (BackgroundJob* self);
+void background_job_execute (BackgroundJob* self);
+void background_job_internal_notify_completion (BackgroundJob* self);
+static void workers_finalize (Workers* obj);
+
+
+static gint64 _background_job_priority_comparator_comparator (void* a, void* b, gpointer self) {
+ gint64 result;
+ result = background_job_priority_comparator (a, b);
+#line 10 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return result;
+#line 204 "Workers.c"
+}
+
+
+BackgroundJobBatch* background_job_batch_construct (GType object_type) {
+ BackgroundJobBatch * self = NULL;
+#line 10 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self = (BackgroundJobBatch*) sorted_list_construct (object_type, TYPE_BACKGROUND_JOB, (GBoxedCopyFunc) background_job_ref, background_job_unref, _background_job_priority_comparator_comparator, NULL);
+#line 9 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return self;
+#line 214 "Workers.c"
+}
+
+
+BackgroundJobBatch* background_job_batch_new (void) {
+#line 9 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return background_job_batch_construct (TYPE_BACKGROUND_JOB_BATCH);
+#line 221 "Workers.c"
+}
+
+
+static void background_job_batch_class_init (BackgroundJobBatchClass * klass) {
+#line 8 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ background_job_batch_parent_class = g_type_class_peek_parent (klass);
+#line 228 "Workers.c"
+}
+
+
+static void background_job_batch_instance_init (BackgroundJobBatch * self) {
+}
+
+
+GType background_job_batch_get_type (void) {
+ static volatile gsize background_job_batch_type_id__volatile = 0;
+ if (g_once_init_enter (&background_job_batch_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (BackgroundJobBatchClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) background_job_batch_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BackgroundJobBatch), 0, (GInstanceInitFunc) background_job_batch_instance_init, NULL };
+ GType background_job_batch_type_id;
+ background_job_batch_type_id = g_type_register_static (TYPE_SORTED_LIST, "BackgroundJobBatch", &g_define_type_info, 0);
+ g_once_init_leave (&background_job_batch_type_id__volatile, background_job_batch_type_id);
+ }
+ return background_job_batch_type_id__volatile;
+}
+
+
+static void _background_job_unref0_ (gpointer var) {
+#line 19 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ (var == NULL) ? NULL : (var = (background_job_unref (var), NULL));
+#line 251 "Workers.c"
+}
+
+
+static void _workers_thread_start_gfunc (gpointer data, gpointer self) {
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ workers_thread_start ((Workers*) self, data);
+#line 258 "Workers.c"
+}
+
+
+Workers* workers_construct (GType object_type, guint max_threads, gboolean exclusive) {
+ Workers* self = NULL;
+ gboolean _tmp0_ = FALSE;
+ guint _tmp1_ = 0U;
+ EventSemaphore* _tmp3_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self = (Workers*) g_type_create_instance (object_type);
+#line 24 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = max_threads;
+#line 24 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (_tmp1_ <= ((guint) 0)) {
+#line 274 "Workers.c"
+ guint _tmp2_ = 0U;
+#line 24 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp2_ = max_threads;
+#line 24 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = _tmp2_ != ((guint) WORKERS_UNLIMITED_THREADS);
+#line 280 "Workers.c"
+ } else {
+#line 24 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = FALSE;
+#line 284 "Workers.c"
+ }
+#line 24 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (_tmp0_) {
+#line 25 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ max_threads = (guint) 1;
+#line 290 "Workers.c"
+ }
+#line 28 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp3_ = self->priv->empty_event;
+#line 28 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ abstract_semaphore_notify (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore));
+#line 296 "Workers.c"
+ {
+ GThreadPool* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ gboolean _tmp6_ = FALSE;
+ GThreadPool* _tmp7_ = NULL;
+ GThreadPool* _tmp8_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp5_ = max_threads;
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp6_ = exclusive;
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp7_ = g_thread_pool_new (_workers_thread_start_gfunc, self, (gint) _tmp5_, _tmp6_, &_inner_error_);
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp4_ = _tmp7_;
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (_inner_error_->domain == G_THREAD_ERROR) {
+#line 315 "Workers.c"
+ goto __catch6_g_thread_error;
+ }
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_clear_error (&_inner_error_);
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return NULL;
+#line 324 "Workers.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp8_ = _tmp4_;
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp4_ = NULL;
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _g_thread_pool_free0 (self->priv->thread_pool);
+#line 31 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->priv->thread_pool = _tmp8_;
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _g_thread_pool_free0 (_tmp4_);
+#line 336 "Workers.c"
+ }
+ goto __finally6;
+ __catch6_g_thread_error:
+ {
+ GError* err = NULL;
+ const gchar* _tmp9_ = NULL;
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ err = _inner_error_;
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _inner_error_ = NULL;
+#line 33 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp9_ = err->message;
+#line 33 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_error ("Workers.vala:33: Unable to create thread pool: %s", _tmp9_);
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _g_error_free0 (err);
+#line 353 "Workers.c"
+ }
+ __finally6:
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_clear_error (&_inner_error_);
+#line 30 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return NULL;
+#line 364 "Workers.c"
+ }
+#line 23 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return self;
+#line 368 "Workers.c"
+}
+
+
+Workers* workers_new (guint max_threads, gboolean exclusive) {
+#line 23 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return workers_construct (TYPE_WORKERS, max_threads, exclusive);
+#line 375 "Workers.c"
+}
+
+
+guint workers_threads_per_cpu (gint per, gint max) {
+ guint result = 0U;
+ gint _tmp0_ = 0;
+ guint count = 0U;
+ guint _tmp1_ = 0U;
+ gint _tmp2_ = 0;
+ guint _tmp3_ = 0U;
+ gint _tmp4_ = 0;
+ guint _tmp9_ = 0U;
+ guint _tmp10_ = 0U;
+#line 37 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = per;
+#line 37 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _vala_return_val_if_fail (_tmp0_ > 0, "per > 0", 0U);
+#line 38 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = g_get_num_processors ();
+#line 38 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp2_ = per;
+#line 38 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ count = _tmp1_ * _tmp2_;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp4_ = max;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (_tmp4_ < 0) {
+#line 403 "Workers.c"
+ guint _tmp5_ = 0U;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp5_ = count;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp3_ = _tmp5_;
+#line 409 "Workers.c"
+ } else {
+ guint _tmp6_ = 0U;
+ gint _tmp7_ = 0;
+ guint _tmp8_ = 0U;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp6_ = count;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp7_ = max;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp8_ = CLAMP (_tmp6_, (guint) 0, (guint) _tmp7_);
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp3_ = _tmp8_;
+#line 422 "Workers.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ result = _tmp3_;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp9_ = result;
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _vala_warn_if_fail (_tmp9_ > ((guint) 0), "result > 0");
+#line 40 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return result;
+#line 432 "Workers.c"
+}
+
+
+guint workers_thread_per_cpu_minus_one (void) {
+ guint result = 0U;
+ guint _tmp0_ = 0U;
+ guint _tmp1_ = 0U;
+ guint _tmp2_ = 0U;
+ guint _tmp3_ = 0U;
+#line 46 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = g_get_num_processors ();
+#line 46 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = CLAMP (_tmp0_ - 1, (guint) 1, (guint) G_MAXINT);
+#line 46 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ result = _tmp1_;
+#line 46 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp2_ = result;
+#line 46 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _vala_warn_if_fail (_tmp2_ > ((guint) 0), "result > 0");
+#line 46 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return result;
+#line 454 "Workers.c"
+}
+
+
+static gpointer _background_job_ref0 (gpointer self) {
+#line 55 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return self ? background_job_ref (self) : NULL;
+#line 461 "Workers.c"
+}
+
+
+static gint _background_job_priority_compare_func_gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self) {
+ gint result;
+ result = background_job_priority_compare_func ((BackgroundJob*) a, (BackgroundJob*) b);
+#line 55 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return result;
+#line 470 "Workers.c"
+}
+
+
+void workers_enqueue (Workers* self, BackgroundJob* job) {
+ EventSemaphore* _tmp0_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 51 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (IS_WORKERS (self));
+#line 51 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB (job));
+#line 52 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = self->priv->empty_event;
+#line 52 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ abstract_semaphore_reset (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore));
+#line 485 "Workers.c"
+ {
+ GAsyncQueue* _tmp1_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = self->priv->queue;
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_lock (&self->priv->__lock_queue);
+#line 492 "Workers.c"
+ {
+ GAsyncQueue* _tmp2_ = NULL;
+ BackgroundJob* _tmp3_ = NULL;
+ BackgroundJob* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+#line 55 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp2_ = self->priv->queue;
+#line 55 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp3_ = job;
+#line 55 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp4_ = _background_job_ref0 (_tmp3_);
+#line 55 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_async_queue_push_sorted (_tmp2_, _tmp4_, _background_job_priority_compare_func_gcompare_data_func, NULL);
+#line 56 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp5_ = self->priv->enqueued;
+#line 56 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->priv->enqueued = _tmp5_ + 1;
+#line 510 "Workers.c"
+ }
+ __finally7:
+ {
+ GAsyncQueue* _tmp6_ = NULL;
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp6_ = self->priv->queue;
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_queue);
+#line 519 "Workers.c"
+ }
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_clear_error (&_inner_error_);
+#line 54 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return;
+#line 529 "Workers.c"
+ }
+ }
+ {
+ GThreadPool* _tmp7_ = NULL;
+ BackgroundJob* _tmp8_ = NULL;
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp7_ = self->priv->thread_pool;
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp8_ = job;
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_thread_pool_push (_tmp7_, _tmp8_, &_inner_error_);
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (_inner_error_->domain == G_THREAD_ERROR) {
+#line 545 "Workers.c"
+ goto __catch8_g_thread_error;
+ }
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_clear_error (&_inner_error_);
+#line 60 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return;
+#line 554 "Workers.c"
+ }
+ }
+ goto __finally8;
+ __catch8_g_thread_error:
+ {
+ GError* err = NULL;
+ GError* _tmp9_ = NULL;
+ const gchar* _tmp10_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ err = _inner_error_;
+#line 59 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _inner_error_ = NULL;
+#line 64 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp9_ = err;
+#line 64 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp10_ = _tmp9_->message;
+#line 64 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_warning ("Workers.vala:64: Unable to create worker thread: %s", _tmp10_);
+#line 59 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _g_error_free0 (err);
+#line 575 "Workers.c"
+ }
+ __finally8:
+#line 59 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 59 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 59 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_clear_error (&_inner_error_);
+#line 59 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return;
+#line 586 "Workers.c"
+ }
+}
+
+
+void workers_enqueue_many (Workers* self, BackgroundJobBatch* batch) {
+#line 68 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (IS_WORKERS (self));
+#line 68 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (IS_BACKGROUND_JOB_BATCH (batch));
+#line 596 "Workers.c"
+ {
+ GeeIterator* _job_it = NULL;
+ BackgroundJobBatch* _tmp0_ = NULL;
+ GeeIterator* _tmp1_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = batch;
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _job_it = _tmp1_;
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ while (TRUE) {
+#line 609 "Workers.c"
+ GeeIterator* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ BackgroundJob* job = NULL;
+ GeeIterator* _tmp4_ = NULL;
+ gpointer _tmp5_ = NULL;
+ BackgroundJob* _tmp6_ = NULL;
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp2_ = _job_it;
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp3_ = gee_iterator_next (_tmp2_);
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (!_tmp3_) {
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ break;
+#line 624 "Workers.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp4_ = _job_it;
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp5_ = gee_iterator_get (_tmp4_);
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ job = (BackgroundJob*) _tmp5_;
+#line 70 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp6_ = job;
+#line 70 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ workers_enqueue (self, _tmp6_);
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _background_job_unref0 (job);
+#line 638 "Workers.c"
+ }
+#line 69 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _g_object_unref0 (_job_it);
+#line 642 "Workers.c"
+ }
+}
+
+
+void workers_wait_for_empty_queue (Workers* self) {
+ EventSemaphore* _tmp0_ = NULL;
+#line 73 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (IS_WORKERS (self));
+#line 74 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = self->priv->empty_event;
+#line 74 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ abstract_semaphore_wait (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore));
+#line 655 "Workers.c"
+}
+
+
+gint workers_get_pending_job_count (Workers* self) {
+ gint result = 0;
+ GError * _inner_error_ = NULL;
+#line 78 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_val_if_fail (IS_WORKERS (self), 0);
+#line 664 "Workers.c"
+ {
+ GAsyncQueue* _tmp0_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = self->priv->queue;
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_lock (&self->priv->__lock_queue);
+#line 671 "Workers.c"
+ {
+ gint _tmp1_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = self->priv->enqueued;
+#line 80 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ result = _tmp1_;
+#line 678 "Workers.c"
+ {
+ GAsyncQueue* _tmp2_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp2_ = self->priv->queue;
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_queue);
+#line 685 "Workers.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return result;
+#line 689 "Workers.c"
+ }
+ __finally9:
+ {
+ GAsyncQueue* _tmp3_ = NULL;
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp3_ = self->priv->queue;
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_queue);
+#line 698 "Workers.c"
+ }
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_clear_error (&_inner_error_);
+#line 79 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return 0;
+#line 706 "Workers.c"
+ }
+}
+
+
+static void workers_thread_start (Workers* self, void* ignored) {
+ BackgroundJob* job = NULL;
+ gboolean empty = FALSE;
+ gboolean _tmp7_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (IS_WORKERS (self));
+#line 718 "Workers.c"
+ {
+ GAsyncQueue* _tmp0_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = self->priv->queue;
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_lock (&self->priv->__lock_queue);
+#line 725 "Workers.c"
+ {
+ GAsyncQueue* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 88 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = self->priv->queue;
+#line 88 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp2_ = g_async_queue_try_pop (_tmp1_);
+#line 88 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _background_job_unref0 (job);
+#line 88 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ job = (BackgroundJob*) _tmp2_;
+#line 89 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _vala_assert (job != NULL, "job != null");
+#line 91 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp3_ = self->priv->enqueued;
+#line 91 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _vala_assert (_tmp3_ > 0, "enqueued > 0");
+#line 92 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp4_ = self->priv->enqueued;
+#line 92 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->priv->enqueued = _tmp4_ - 1;
+#line 92 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp5_ = self->priv->enqueued;
+#line 92 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ empty = _tmp5_ == 0;
+#line 754 "Workers.c"
+ }
+ __finally10:
+ {
+ GAsyncQueue* _tmp6_ = NULL;
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp6_ = self->priv->queue;
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_unlock (&self->priv->__lock_queue);
+#line 763 "Workers.c"
+ }
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _background_job_unref0 (job);
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_clear_error (&_inner_error_);
+#line 87 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return;
+#line 775 "Workers.c"
+ }
+ }
+#line 95 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp7_ = background_job_is_cancelled (job);
+#line 95 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (!_tmp7_) {
+#line 96 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ background_job_execute (job);
+#line 784 "Workers.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ background_job_internal_notify_completion (job);
+#line 100 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (empty) {
+#line 790 "Workers.c"
+ EventSemaphore* _tmp8_ = NULL;
+#line 101 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp8_ = self->priv->empty_event;
+#line 101 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ abstract_semaphore_notify (G_TYPE_CHECK_INSTANCE_CAST (_tmp8_, TYPE_ABSTRACT_SEMAPHORE, AbstractSemaphore));
+#line 796 "Workers.c"
+ }
+#line 84 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _background_job_unref0 (job);
+#line 800 "Workers.c"
+}
+
+
+static void value_workers_init (GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ value->data[0].v_pointer = NULL;
+#line 807 "Workers.c"
+}
+
+
+static void value_workers_free_value (GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (value->data[0].v_pointer) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ workers_unref (value->data[0].v_pointer);
+#line 816 "Workers.c"
+ }
+}
+
+
+static void value_workers_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (src_value->data[0].v_pointer) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ dest_value->data[0].v_pointer = workers_ref (src_value->data[0].v_pointer);
+#line 826 "Workers.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 830 "Workers.c"
+ }
+}
+
+
+static gpointer value_workers_peek_pointer (const GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return value->data[0].v_pointer;
+#line 838 "Workers.c"
+}
+
+
+static gchar* value_workers_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (collect_values[0].v_pointer) {
+#line 845 "Workers.c"
+ Workers* object;
+ object = collect_values[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 852 "Workers.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 856 "Workers.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ value->data[0].v_pointer = workers_ref (object);
+#line 860 "Workers.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ value->data[0].v_pointer = NULL;
+#line 864 "Workers.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return NULL;
+#line 868 "Workers.c"
+}
+
+
+static gchar* value_workers_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ Workers** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (!object_p) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 879 "Workers.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (!value->data[0].v_pointer) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ *object_p = NULL;
+#line 885 "Workers.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ *object_p = value->data[0].v_pointer;
+#line 889 "Workers.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ *object_p = workers_ref (value->data[0].v_pointer);
+#line 893 "Workers.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return NULL;
+#line 897 "Workers.c"
+}
+
+
+GParamSpec* param_spec_workers (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecWorkers* spec;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_WORKERS), NULL);
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return G_PARAM_SPEC (spec);
+#line 911 "Workers.c"
+}
+
+
+gpointer value_get_workers (const GValue* value) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_WORKERS), NULL);
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return value->data[0].v_pointer;
+#line 920 "Workers.c"
+}
+
+
+void value_set_workers (GValue* value, gpointer v_object) {
+ Workers* old;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_WORKERS));
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ old = value->data[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (v_object) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_WORKERS));
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ value->data[0].v_pointer = v_object;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ workers_ref (value->data[0].v_pointer);
+#line 940 "Workers.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ value->data[0].v_pointer = NULL;
+#line 944 "Workers.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (old) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ workers_unref (old);
+#line 950 "Workers.c"
+ }
+}
+
+
+void value_take_workers (GValue* value, gpointer v_object) {
+ Workers* old;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_WORKERS));
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ old = value->data[0].v_pointer;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (v_object) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_WORKERS));
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ value->data[0].v_pointer = v_object;
+#line 969 "Workers.c"
+ } else {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ value->data[0].v_pointer = NULL;
+#line 973 "Workers.c"
+ }
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (old) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ workers_unref (old);
+#line 979 "Workers.c"
+ }
+}
+
+
+static void workers_class_init (WorkersClass * klass) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ workers_parent_class = g_type_class_peek_parent (klass);
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ ((WorkersClass *) klass)->finalize = workers_finalize;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_type_class_add_private (klass, sizeof (WorkersPrivate));
+#line 991 "Workers.c"
+}
+
+
+static void workers_instance_init (Workers * self) {
+ GAsyncQueue* _tmp0_ = NULL;
+ EventSemaphore* _tmp1_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->priv = WORKERS_GET_PRIVATE (self);
+#line 19 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_init (&self->priv->__lock_queue);
+#line 19 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp0_ = g_async_queue_new_full (_background_job_unref0_);
+#line 19 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->priv->queue = _tmp0_;
+#line 20 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _tmp1_ = event_semaphore_new ();
+#line 20 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->priv->empty_event = _tmp1_;
+#line 21 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->priv->enqueued = 0;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self->ref_count = 1;
+#line 1014 "Workers.c"
+}
+
+
+static void workers_finalize (Workers* obj) {
+ Workers * self;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_WORKERS, Workers);
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_signal_handlers_destroy (self);
+#line 18 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _g_thread_pool_free0 (self->priv->thread_pool);
+#line 19 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_rec_mutex_clear (&self->priv->__lock_queue);
+#line 19 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _g_async_queue_unref0 (self->priv->queue);
+#line 20 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ _abstract_semaphore_unref0 (self->priv->empty_event);
+#line 1032 "Workers.c"
+}
+
+
+GType workers_get_type (void) {
+ static volatile gsize workers_type_id__volatile = 0;
+ if (g_once_init_enter (&workers_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_workers_init, value_workers_free_value, value_workers_copy_value, value_workers_peek_pointer, "p", value_workers_collect_value, "p", value_workers_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (WorkersClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) workers_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Workers), 0, (GInstanceInitFunc) workers_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType workers_type_id;
+ workers_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Workers", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&workers_type_id__volatile, workers_type_id);
+ }
+ return workers_type_id__volatile;
+}
+
+
+gpointer workers_ref (gpointer instance) {
+ Workers* self;
+ self = instance;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ return instance;
+#line 1057 "Workers.c"
+}
+
+
+void workers_unref (gpointer instance) {
+ Workers* self;
+ self = instance;
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ WORKERS_GET_CLASS (self)->finalize (self);
+#line 15 "/home/jens/Source/shotwell/src/threads/Workers.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1070 "Workers.c"
+ }
+}
+
+
+
diff --git a/src/threads/mk/threads.mk b/src/threads/mk/threads.mk
deleted file mode 100644
index 83afc47..0000000
--- a/src/threads/mk/threads.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Threads
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := threads
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- Workers.vala \
- BackgroundJob.vala \
- Semaphore.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/unit/Unit.c b/src/unit/Unit.c
new file mode 100644
index 0000000..d652834
--- /dev/null
+++ b/src/unit/Unit.c
@@ -0,0 +1,28 @@
+/* Unit.c generated by valac 0.32.1, the Vala compiler
+ * generated from Unit.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+
+
+void unit_init (GError** error);
+void unit_terminate (void);
+
+
+void unit_init (GError** error) {
+}
+
+
+void unit_terminate (void) {
+}
+
+
+
diff --git a/src/unit/mk/unit.mk b/src/unit/mk/unit.mk
deleted file mode 100644
index 618ebca..0000000
--- a/src/unit/mk/unit.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Unit
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := unit
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES :=
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC := \
- rc/UnitInternals.m4 \
- rc/Unit.m4 \
- rc/template.mk \
- rc/unitize_entry.m4 \
- rc/template.vala
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/unit/rc/template.mk b/src/unit/rc/template.mk
deleted file mode 100644
index 34873d3..0000000
--- a/src/unit/rc/template.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := _UNIT_NAME_
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := _UNIT_DIR_
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES :=
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/util/KeyValueMap.c b/src/util/KeyValueMap.c
new file mode 100644
index 0000000..003f0ca
--- /dev/null
+++ b/src/util/KeyValueMap.c
@@ -0,0 +1,1180 @@
+/* KeyValueMap.c generated by valac 0.32.1, the Vala compiler
+ * generated from KeyValueMap.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+#include <stdio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_KEY_VALUE_MAP (key_value_map_get_type ())
+#define KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEY_VALUE_MAP, KeyValueMap))
+#define KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+#define IS_KEY_VALUE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEY_VALUE_MAP))
+#define IS_KEY_VALUE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEY_VALUE_MAP))
+#define KEY_VALUE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEY_VALUE_MAP, KeyValueMapClass))
+
+typedef struct _KeyValueMap KeyValueMap;
+typedef struct _KeyValueMapClass KeyValueMapClass;
+typedef struct _KeyValueMapPrivate KeyValueMapPrivate;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _key_value_map_unref0(var) ((var == NULL) ? NULL : (var = (key_value_map_unref (var), NULL)))
+typedef struct _ParamSpecKeyValueMap ParamSpecKeyValueMap;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _KeyValueMap {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ KeyValueMapPrivate * priv;
+};
+
+struct _KeyValueMapClass {
+ GTypeClass parent_class;
+ void (*finalize) (KeyValueMap *self);
+};
+
+struct _KeyValueMapPrivate {
+ gchar* group;
+ GeeHashMap* map;
+};
+
+struct _ParamSpecKeyValueMap {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer key_value_map_parent_class = NULL;
+
+gpointer key_value_map_ref (gpointer instance);
+void key_value_map_unref (gpointer instance);
+GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_key_value_map (GValue* value, gpointer v_object);
+void value_take_key_value_map (GValue* value, gpointer v_object);
+gpointer value_get_key_value_map (const GValue* value);
+GType key_value_map_get_type (void) G_GNUC_CONST;
+#define KEY_VALUE_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_KEY_VALUE_MAP, KeyValueMapPrivate))
+enum {
+ KEY_VALUE_MAP_DUMMY_PROPERTY
+};
+KeyValueMap* key_value_map_new (const gchar* group);
+KeyValueMap* key_value_map_construct (GType object_type, const gchar* group);
+KeyValueMap* key_value_map_copy (KeyValueMap* self);
+gchar* key_value_map_get_group (KeyValueMap* self);
+GeeSet* key_value_map_get_keys (KeyValueMap* self);
+gboolean key_value_map_has_key (KeyValueMap* self, const gchar* key);
+void key_value_map_set_string (KeyValueMap* self, const gchar* key, const gchar* value);
+void key_value_map_set_int (KeyValueMap* self, const gchar* key, gint value);
+void key_value_map_set_double (KeyValueMap* self, const gchar* key, gdouble value);
+void key_value_map_set_float (KeyValueMap* self, const gchar* key, gfloat value);
+void key_value_map_set_bool (KeyValueMap* self, const gchar* key, gboolean value);
+gchar* key_value_map_get_string (KeyValueMap* self, const gchar* key, const gchar* def);
+gint key_value_map_get_int (KeyValueMap* self, const gchar* key, gint def);
+gdouble key_value_map_get_double (KeyValueMap* self, const gchar* key, gdouble def);
+gfloat key_value_map_get_float (KeyValueMap* self, const gchar* key, gfloat def);
+gboolean key_value_map_get_bool (KeyValueMap* self, const gchar* key, gboolean def);
+void key_value_map_get_point (KeyValueMap* self, const gchar* key, GdkPoint* def, GdkPoint* result);
+void key_value_map_set_point (KeyValueMap* self, const gchar* key, GdkPoint* point);
+static void key_value_map_finalize (KeyValueMap* obj);
+
+
+KeyValueMap* key_value_map_construct (GType object_type, const gchar* group) {
+ KeyValueMap* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (group != NULL, NULL);
+#line 11 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ self = (KeyValueMap*) g_type_create_instance (object_type);
+#line 12 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = group;
+#line 12 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 12 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (self->priv->group);
+#line 12 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ self->priv->group = _tmp1_;
+#line 11 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return self;
+#line 115 "KeyValueMap.c"
+}
+
+
+KeyValueMap* key_value_map_new (const gchar* group) {
+#line 11 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return key_value_map_construct (TYPE_KEY_VALUE_MAP, group);
+#line 122 "KeyValueMap.c"
+}
+
+
+KeyValueMap* key_value_map_copy (KeyValueMap* self) {
+ KeyValueMap* result = NULL;
+ KeyValueMap* clone = NULL;
+ const gchar* _tmp0_ = NULL;
+ KeyValueMap* _tmp1_ = NULL;
+#line 15 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), NULL);
+#line 16 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->group;
+#line 16 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key_value_map_new (_tmp0_);
+#line 16 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ clone = _tmp1_;
+#line 139 "KeyValueMap.c"
+ {
+ GeeIterator* _key_it = NULL;
+ GeeHashMap* _tmp2_ = NULL;
+ GeeSet* _tmp3_ = NULL;
+ GeeSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+ GeeIterator* _tmp6_ = NULL;
+ GeeIterator* _tmp7_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = self->priv->map;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, GEE_TYPE_MAP, GeeMap));
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = _tmp3_;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = _tmp4_;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = _tmp6_;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_object_unref0 (_tmp5_);
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _key_it = _tmp7_;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ while (TRUE) {
+#line 166 "KeyValueMap.c"
+ GeeIterator* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+ gchar* key = NULL;
+ GeeIterator* _tmp10_ = NULL;
+ gpointer _tmp11_ = NULL;
+ KeyValueMap* _tmp12_ = NULL;
+ GeeHashMap* _tmp13_ = NULL;
+ const gchar* _tmp14_ = NULL;
+ GeeHashMap* _tmp15_ = NULL;
+ const gchar* _tmp16_ = NULL;
+ gpointer _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp8_ = _key_it;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp9_ = gee_iterator_next (_tmp8_);
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (!_tmp9_) {
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ break;
+#line 187 "KeyValueMap.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp10_ = _key_it;
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp11_ = gee_iterator_get (_tmp10_);
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ key = (gchar*) _tmp11_;
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp12_ = clone;
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp13_ = _tmp12_->priv->map;
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp14_ = key;
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp15_ = self->priv->map;
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp16_ = key;
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp17_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp15_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp16_);
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp18_ = (gchar*) _tmp17_;
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp14_, _tmp18_);
+#line 18 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (_tmp18_);
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (key);
+#line 215 "KeyValueMap.c"
+ }
+#line 17 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_object_unref0 (_key_it);
+#line 219 "KeyValueMap.c"
+ }
+#line 20 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = clone;
+#line 20 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 225 "KeyValueMap.c"
+}
+
+
+gchar* key_value_map_get_group (KeyValueMap* self) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), NULL);
+#line 24 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->group;
+#line 24 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 24 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp1_;
+#line 24 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 243 "KeyValueMap.c"
+}
+
+
+GeeSet* key_value_map_get_keys (KeyValueMap* self) {
+ GeeSet* result = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ GeeSet* _tmp1_ = NULL;
+ GeeSet* _tmp2_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), NULL);
+#line 28 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 28 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = gee_abstract_map_get_keys (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_MAP, GeeMap));
+#line 28 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = _tmp1_;
+#line 28 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp2_;
+#line 28 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 264 "KeyValueMap.c"
+}
+
+
+gboolean key_value_map_has_key (KeyValueMap* self, const gchar* key) {
+ gboolean result = FALSE;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gboolean _tmp2_ = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), FALSE);
+#line 31 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 32 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 32 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 32 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = gee_abstract_map_has_key (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 32 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp2_;
+#line 32 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 287 "KeyValueMap.c"
+}
+
+
+void key_value_map_set_string (KeyValueMap* self, const gchar* key, const gchar* value) {
+ const gchar* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 35 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (self));
+#line 35 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (key != NULL);
+#line 35 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (value != NULL);
+#line 36 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = key;
+#line 36 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _vala_assert (_tmp0_ != NULL, "key != null");
+#line 38 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = self->priv->map;
+#line 38 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = key;
+#line 38 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = value;
+#line 38 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, _tmp3_);
+#line 314 "KeyValueMap.c"
+}
+
+
+void key_value_map_set_int (KeyValueMap* self, const gchar* key, gint value) {
+ const gchar* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 41 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (self));
+#line 41 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (key != NULL);
+#line 42 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = key;
+#line 42 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _vala_assert (_tmp0_ != NULL, "key != null");
+#line 44 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = self->priv->map;
+#line 44 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = key;
+#line 44 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = value;
+#line 44 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = g_strdup_printf ("%i", _tmp3_);
+#line 44 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = _tmp4_;
+#line 44 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, _tmp5_);
+#line 44 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (_tmp5_);
+#line 347 "KeyValueMap.c"
+}
+
+
+static gchar* double_to_string (gdouble self) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, G_ASCII_DTOSTR_BUF_SIZE);
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = G_ASCII_DTOSTR_BUF_SIZE;
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = g_ascii_dtostr (_tmp1_, G_ASCII_DTOSTR_BUF_SIZE, self);
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _tmp3_;
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = (g_free (_tmp1_), NULL);
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 863 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 377 "KeyValueMap.c"
+}
+
+
+void key_value_map_set_double (KeyValueMap* self, const gchar* key, gdouble value) {
+ const gchar* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (self));
+#line 47 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (key != NULL);
+#line 48 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = key;
+#line 48 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _vala_assert (_tmp0_ != NULL, "key != null");
+#line 50 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = self->priv->map;
+#line 50 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = key;
+#line 50 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = value;
+#line 50 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = double_to_string (_tmp3_);
+#line 50 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = _tmp4_;
+#line 50 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, _tmp5_);
+#line 50 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (_tmp5_);
+#line 410 "KeyValueMap.c"
+}
+
+
+void key_value_map_set_float (KeyValueMap* self, const gchar* key, gfloat value) {
+ const gchar* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gfloat _tmp3_ = 0.0F;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (self));
+#line 53 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (key != NULL);
+#line 54 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = key;
+#line 54 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _vala_assert (_tmp0_ != NULL, "key != null");
+#line 56 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = self->priv->map;
+#line 56 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = key;
+#line 56 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = value;
+#line 56 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = g_strdup_printf ("%g", _tmp3_);
+#line 56 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = _tmp4_;
+#line 56 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, _tmp5_);
+#line 56 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (_tmp5_);
+#line 443 "KeyValueMap.c"
+}
+
+
+static gchar* bool_to_string (gboolean self) {
+ gchar* result = NULL;
+#line 37 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (self) {
+#line 451 "KeyValueMap.c"
+ gchar* _tmp0_ = NULL;
+#line 38 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup ("true");
+#line 38 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp0_;
+#line 38 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 459 "KeyValueMap.c"
+ } else {
+ gchar* _tmp1_ = NULL;
+#line 40 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_strdup ("false");
+#line 40 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 40 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 468 "KeyValueMap.c"
+ }
+}
+
+
+void key_value_map_set_bool (KeyValueMap* self, const gchar* key, gboolean value) {
+ const gchar* _tmp0_ = NULL;
+ GeeHashMap* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 59 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (self));
+#line 59 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (key != NULL);
+#line 60 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = key;
+#line 60 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _vala_assert (_tmp0_ != NULL, "key != null");
+#line 62 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = self->priv->map;
+#line 62 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = key;
+#line 62 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = value;
+#line 62 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = bool_to_string (_tmp3_);
+#line 62 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = _tmp4_;
+#line 62 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp2_, _tmp5_);
+#line 62 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (_tmp5_);
+#line 502 "KeyValueMap.c"
+}
+
+
+gchar* key_value_map_get_string (KeyValueMap* self, const gchar* key, const gchar* def) {
+ gchar* result = NULL;
+ gchar* value = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 65 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), NULL);
+#line 65 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (key != NULL, NULL);
+#line 66 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 66 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 66 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 66 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value = (gchar*) _tmp2_;
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = value;
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (_tmp4_ != NULL) {
+#line 531 "KeyValueMap.c"
+ const gchar* _tmp5_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = value;
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp5_;
+#line 537 "KeyValueMap.c"
+ } else {
+ const gchar* _tmp6_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = def;
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp6_;
+#line 544 "KeyValueMap.c"
+ }
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = g_strdup (_tmp3_);
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp7_;
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 68 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 554 "KeyValueMap.c"
+}
+
+
+gint key_value_map_get_int (KeyValueMap* self, const gchar* key, gint def) {
+ gint result = 0;
+ gchar* value = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), 0);
+#line 71 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (key != NULL, 0);
+#line 72 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 72 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 72 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 72 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value = (gchar*) _tmp2_;
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = value;
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (_tmp4_ != NULL) {
+#line 582 "KeyValueMap.c"
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = value;
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = atoi (_tmp5_);
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp6_;
+#line 591 "KeyValueMap.c"
+ } else {
+ gint _tmp7_ = 0;
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = def;
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp7_;
+#line 598 "KeyValueMap.c"
+ }
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp3_;
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 74 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 606 "KeyValueMap.c"
+}
+
+
+static gdouble double_parse (const gchar* str) {
+ gdouble result = 0.0;
+ const gchar* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+#line 869 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (str != NULL, 0.0);
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_ascii_strtod (_tmp0_, NULL);
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 870 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 624 "KeyValueMap.c"
+}
+
+
+gdouble key_value_map_get_double (KeyValueMap* self, const gchar* key, gdouble def) {
+ gdouble result = 0.0;
+ gchar* value = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ const gchar* _tmp4_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), 0.0);
+#line 77 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (key != NULL, 0.0);
+#line 78 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 78 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 78 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 78 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value = (gchar*) _tmp2_;
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = value;
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (_tmp4_ != NULL) {
+#line 652 "KeyValueMap.c"
+ const gchar* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = value;
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = double_parse (_tmp5_);
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp6_;
+#line 661 "KeyValueMap.c"
+ } else {
+ gdouble _tmp7_ = 0.0;
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = def;
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp7_;
+#line 668 "KeyValueMap.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp3_;
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 80 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 676 "KeyValueMap.c"
+}
+
+
+gfloat key_value_map_get_float (KeyValueMap* self, const gchar* key, gfloat def) {
+ gfloat result = 0.0F;
+ gchar* value = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gfloat _tmp3_ = 0.0F;
+ const gchar* _tmp4_ = NULL;
+#line 83 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), 0.0F);
+#line 83 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (key != NULL, 0.0F);
+#line 84 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 84 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 84 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 84 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value = (gchar*) _tmp2_;
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = value;
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (_tmp4_ != NULL) {
+#line 704 "KeyValueMap.c"
+ const gchar* _tmp5_ = NULL;
+ gdouble _tmp6_ = 0.0;
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = value;
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = double_parse (_tmp5_);
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = (gfloat) _tmp6_;
+#line 713 "KeyValueMap.c"
+ } else {
+ gfloat _tmp7_ = 0.0F;
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = def;
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp7_;
+#line 720 "KeyValueMap.c"
+ }
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp3_;
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 86 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 728 "KeyValueMap.c"
+}
+
+
+static gboolean bool_parse (const gchar* str) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+#line 44 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (str != NULL, FALSE);
+#line 45 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 45 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (g_strcmp0 (_tmp0_, "true") == 0) {
+#line 46 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = TRUE;
+#line 46 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 745 "KeyValueMap.c"
+ } else {
+#line 48 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = FALSE;
+#line 48 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 751 "KeyValueMap.c"
+ }
+}
+
+
+gboolean key_value_map_get_bool (KeyValueMap* self, const gchar* key, gboolean def) {
+ gboolean result = FALSE;
+ gchar* value = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+#line 89 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (IS_KEY_VALUE_MAP (self), FALSE);
+#line 89 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (key != NULL, FALSE);
+#line 90 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 90 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 90 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 90 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value = (gchar*) _tmp2_;
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = value;
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (_tmp4_ != NULL) {
+#line 780 "KeyValueMap.c"
+ const gchar* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = value;
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = bool_parse (_tmp5_);
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp6_;
+#line 789 "KeyValueMap.c"
+ } else {
+ gboolean _tmp7_ = FALSE;
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = def;
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp7_;
+#line 796 "KeyValueMap.c"
+ }
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ result = _tmp3_;
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 92 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return result;
+#line 804 "KeyValueMap.c"
+}
+
+
+void key_value_map_get_point (KeyValueMap* self, const gchar* key, GdkPoint* def, GdkPoint* result) {
+ gchar* value = NULL;
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gpointer _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (self));
+#line 100 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (key != NULL);
+#line 100 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (def != NULL);
+#line 101 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 101 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 101 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = gee_abstract_map_get (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_);
+#line 101 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value = (gchar*) _tmp2_;
+#line 103 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = value;
+#line 103 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (_tmp3_ == NULL) {
+#line 832 "KeyValueMap.c"
+ GdkPoint _tmp4_ = {0};
+#line 104 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = *def;
+#line 104 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ *result = _tmp4_;
+#line 104 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 104 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return;
+#line 842 "KeyValueMap.c"
+ } else {
+ GdkPoint _result_ = {0};
+ GdkPoint _tmp5_ = {0};
+ const gchar* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+#line 106 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_.x = 0;
+#line 106 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _result_ = _tmp5_;
+#line 107 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = value;
+#line 107 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = sscanf (_tmp6_, "(%d, %d)", &_result_.x, &_result_.y);
+#line 107 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (_tmp7_ == 2) {
+#line 108 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ *result = _result_;
+#line 108 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 108 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return;
+#line 864 "KeyValueMap.c"
+ } else {
+ GdkPoint _tmp8_ = {0};
+#line 110 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp8_ = *def;
+#line 110 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ *result = _tmp8_;
+#line 110 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 110 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return;
+#line 875 "KeyValueMap.c"
+ }
+ }
+#line 100 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (value);
+#line 880 "KeyValueMap.c"
+}
+
+
+void key_value_map_set_point (KeyValueMap* self, const gchar* key, GdkPoint* point) {
+ GeeHashMap* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkPoint _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (IS_KEY_VALUE_MAP (self));
+#line 114 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (key != NULL);
+#line 114 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (point != NULL);
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = self->priv->map;
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp1_ = key;
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp2_ = *point;
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp3_ = _tmp2_.x;
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp4_ = *point;
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp5_ = _tmp4_.y;
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp6_ = g_strdup_printf ("(%d, %d)", _tmp3_, _tmp5_);
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp7_ = _tmp6_;
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ gee_abstract_map_set (G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap), _tmp1_, _tmp7_);
+#line 115 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (_tmp7_);
+#line 919 "KeyValueMap.c"
+}
+
+
+static void value_key_value_map_init (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value->data[0].v_pointer = NULL;
+#line 926 "KeyValueMap.c"
+}
+
+
+static void value_key_value_map_free_value (GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ key_value_map_unref (value->data[0].v_pointer);
+#line 935 "KeyValueMap.c"
+ }
+}
+
+
+static void value_key_value_map_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (src_value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ dest_value->data[0].v_pointer = key_value_map_ref (src_value->data[0].v_pointer);
+#line 945 "KeyValueMap.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 949 "KeyValueMap.c"
+ }
+}
+
+
+static gpointer value_key_value_map_peek_pointer (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return value->data[0].v_pointer;
+#line 957 "KeyValueMap.c"
+}
+
+
+static gchar* value_key_value_map_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (collect_values[0].v_pointer) {
+#line 964 "KeyValueMap.c"
+ KeyValueMap* object;
+ object = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 971 "KeyValueMap.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 975 "KeyValueMap.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value->data[0].v_pointer = key_value_map_ref (object);
+#line 979 "KeyValueMap.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value->data[0].v_pointer = NULL;
+#line 983 "KeyValueMap.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return NULL;
+#line 987 "KeyValueMap.c"
+}
+
+
+static gchar* value_key_value_map_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ KeyValueMap** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (!object_p) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 998 "KeyValueMap.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (!value->data[0].v_pointer) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ *object_p = NULL;
+#line 1004 "KeyValueMap.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ *object_p = value->data[0].v_pointer;
+#line 1008 "KeyValueMap.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ *object_p = key_value_map_ref (value->data[0].v_pointer);
+#line 1012 "KeyValueMap.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return NULL;
+#line 1016 "KeyValueMap.c"
+}
+
+
+GParamSpec* param_spec_key_value_map (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecKeyValueMap* spec;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_KEY_VALUE_MAP), NULL);
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return G_PARAM_SPEC (spec);
+#line 1030 "KeyValueMap.c"
+}
+
+
+gpointer value_get_key_value_map (const GValue* value) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_KEY_VALUE_MAP), NULL);
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return value->data[0].v_pointer;
+#line 1039 "KeyValueMap.c"
+}
+
+
+void value_set_key_value_map (GValue* value, gpointer v_object) {
+ KeyValueMap* old;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_KEY_VALUE_MAP));
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_KEY_VALUE_MAP));
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value->data[0].v_pointer = v_object;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ key_value_map_ref (value->data[0].v_pointer);
+#line 1059 "KeyValueMap.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value->data[0].v_pointer = NULL;
+#line 1063 "KeyValueMap.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ key_value_map_unref (old);
+#line 1069 "KeyValueMap.c"
+ }
+}
+
+
+void value_take_key_value_map (GValue* value, gpointer v_object) {
+ KeyValueMap* old;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_KEY_VALUE_MAP));
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ old = value->data[0].v_pointer;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (v_object) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_KEY_VALUE_MAP));
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value->data[0].v_pointer = v_object;
+#line 1088 "KeyValueMap.c"
+ } else {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ value->data[0].v_pointer = NULL;
+#line 1092 "KeyValueMap.c"
+ }
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (old) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ key_value_map_unref (old);
+#line 1098 "KeyValueMap.c"
+ }
+}
+
+
+static void key_value_map_class_init (KeyValueMapClass * klass) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ key_value_map_parent_class = g_type_class_peek_parent (klass);
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ ((KeyValueMapClass *) klass)->finalize = key_value_map_finalize;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_type_class_add_private (klass, sizeof (KeyValueMapPrivate));
+#line 1110 "KeyValueMap.c"
+}
+
+
+static void key_value_map_instance_init (KeyValueMap * self) {
+ GeeHashMap* _tmp0_ = NULL;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ self->priv = KEY_VALUE_MAP_GET_PRIVATE (self);
+#line 9 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 9 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ self->priv->map = _tmp0_;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ self->ref_count = 1;
+#line 1124 "KeyValueMap.c"
+}
+
+
+static void key_value_map_finalize (KeyValueMap* obj) {
+ KeyValueMap * self;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_KEY_VALUE_MAP, KeyValueMap);
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_signal_handlers_destroy (self);
+#line 8 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_free0 (self->priv->group);
+#line 9 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ _g_object_unref0 (self->priv->map);
+#line 1138 "KeyValueMap.c"
+}
+
+
+GType key_value_map_get_type (void) {
+ static volatile gsize key_value_map_type_id__volatile = 0;
+ if (g_once_init_enter (&key_value_map_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_key_value_map_init, value_key_value_map_free_value, value_key_value_map_copy_value, value_key_value_map_peek_pointer, "p", value_key_value_map_collect_value, "p", value_key_value_map_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (KeyValueMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) key_value_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeyValueMap), 0, (GInstanceInitFunc) key_value_map_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType key_value_map_type_id;
+ key_value_map_type_id = g_type_register_fundamental (g_type_fundamental_next (), "KeyValueMap", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&key_value_map_type_id__volatile, key_value_map_type_id);
+ }
+ return key_value_map_type_id__volatile;
+}
+
+
+gpointer key_value_map_ref (gpointer instance) {
+ KeyValueMap* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ return instance;
+#line 1163 "KeyValueMap.c"
+}
+
+
+void key_value_map_unref (gpointer instance) {
+ KeyValueMap* self;
+ self = instance;
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ KEY_VALUE_MAP_GET_CLASS (self)->finalize (self);
+#line 7 "/home/jens/Source/shotwell/src/util/KeyValueMap.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 1176 "KeyValueMap.c"
+ }
+}
+
+
+
diff --git a/src/util/Util.c b/src/util/Util.c
new file mode 100644
index 0000000..ec9f4ff
--- /dev/null
+++ b/src/util/Util.c
@@ -0,0 +1,31 @@
+/* Util.c generated by valac 0.32.1, the Vala compiler
+ * generated from Util.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+
+
+#define UTIL_FILE_ATTRIBUTES "standard::*,time::*,id::file,id::filesystem,etag::value"
+void util_init (GError** error);
+void util_terminate (void);
+
+
+void util_init (GError** error) {
+}
+
+
+void util_terminate (void) {
+}
+
+
+
diff --git a/src/util/file.c b/src/util/file.c
new file mode 100644
index 0000000..b219fd2
--- /dev/null
+++ b/src/util/file.c
@@ -0,0 +1,1937 @@
+/* file.c generated by valac 0.32.1, the Vala compiler
+ * generated from file.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+/* Returns true if the file is claimed, false if it exists, and throws an Error otherwise. The file*/
+/* will be created when the function exits and should be overwritten. Note that the file is not*/
+/* held open; claiming a file is merely based on its existence.*/
+/**/
+/* This function is thread-safe.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gee.h>
+#include <time.h>
+
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+typedef gboolean (*ProgressMonitor) (guint64 current, guint64 total, gboolean do_event_loop, void* user_data);
+
+
+gboolean claim_file (GFile* file, GError** error);
+GFile* generate_unique_file (GFile* dir, const gchar* basename, gboolean* collision, GError** error);
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext);
+glong find_last_offset (const gchar* str, gchar c);
+guint64 query_total_file_size (GFile* file_or_dir, GCancellable* cancellable, GError** error);
+void delete_all_files (GFile* dir, GeeSet* exceptions, ProgressMonitor monitor, void* monitor_target, guint64 file_count, GCancellable* cancellable, GError** error);
+time_t query_file_modified (GFile* file, GError** error);
+gboolean query_is_directory (GFile* file);
+gboolean query_is_directory_empty (GFile* dir, GError** error);
+gchar* get_display_pathname (GFile* file);
+gchar* strip_pretty_path (const gchar* path);
+gchar* get_file_info_id (GFileInfo* info);
+void skip_uint64 (GInputStream* input, guint64 skip_amount, GError** error);
+guint64 count_files_in_directory (GFile* dir, GError** error);
+gboolean file_equal (GFile* a, GFile* b);
+guint file_hash (GFile* file);
+
+
+static gpointer _g_error_copy0 (gpointer self) {
+#line 23 "/home/jens/Source/shotwell/src/util/file.vala"
+ return self ? g_error_copy (self) : NULL;
+#line 52 "file.c"
+}
+
+
+gboolean claim_file (GFile* file, GError** error) {
+ gboolean result = FALSE;
+ GError * _inner_error_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 61 "file.c"
+ {
+ GFile* _tmp0_ = NULL;
+ GFileOutputStream* _tmp1_ = NULL;
+ GFileOutputStream* _tmp2_ = NULL;
+#line 14 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = file;
+#line 14 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_create (_tmp0_, G_FILE_CREATE_NONE, NULL, &_inner_error_);
+#line 14 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = _tmp1_;
+#line 14 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp2_);
+#line 14 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 76 "file.c"
+ goto __catch0_g_error;
+ }
+#line 17 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = TRUE;
+#line 17 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 83 "file.c"
+ }
+ goto __finally0;
+ __catch0_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp3_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/util/file.vala"
+ err = _inner_error_;
+#line 13 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = err;
+#line 20 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!g_error_matches (_tmp3_, G_IO_ERROR, G_IO_ERROR_EXISTS)) {
+#line 98 "file.c"
+ GFile* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GError* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ GError* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+#line 21 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = file;
+#line 21 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = g_file_get_path (_tmp4_);
+#line 21 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = _tmp5_;
+#line 21 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = err;
+#line 21 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = _tmp7_->message;
+#line 21 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_warning ("file.vala:21: claim_file %s: %s", _tmp6_, _tmp8_);
+#line 21 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp6_);
+#line 23 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = err;
+#line 23 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp10_ = _g_error_copy0 (_tmp9_);
+#line 23 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = _tmp10_;
+#line 23 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_error_free0 (err);
+#line 128 "file.c"
+ goto __finally0;
+ }
+#line 26 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = FALSE;
+#line 26 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_error_free0 (err);
+#line 26 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 137 "file.c"
+ }
+ __finally0:
+#line 13 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 13 "/home/jens/Source/shotwell/src/util/file.vala"
+ return FALSE;
+#line 144 "file.c"
+}
+
+
+GFile* generate_unique_file (GFile* dir, const gchar* basename, gboolean* collision, GError** error) {
+ gboolean _vala_collision = FALSE;
+ GFile* result = NULL;
+ GFile* file = NULL;
+ GFile* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ GFile* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gchar* name = NULL;
+ gchar* ext = NULL;
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ GFile* _tmp28_ = NULL;
+ gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+ const gchar* _tmp31_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 36 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), NULL);
+#line 36 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (basename != NULL, NULL);
+#line 38 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = dir;
+#line 38 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = basename;
+#line 38 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = g_file_get_child (_tmp0_, _tmp1_);
+#line 38 "/home/jens/Source/shotwell/src/util/file.vala"
+ file = _tmp2_;
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = file;
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = claim_file (_tmp4_, &_inner_error_);
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = _tmp5_;
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (file);
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ return NULL;
+#line 194 "file.c"
+ }
+#line 39 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp3_) {
+#line 40 "/home/jens/Source/shotwell/src/util/file.vala"
+ _vala_collision = FALSE;
+#line 42 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = file;
+#line 42 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (collision) {
+#line 42 "/home/jens/Source/shotwell/src/util/file.vala"
+ *collision = _vala_collision;
+#line 206 "file.c"
+ }
+#line 42 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 210 "file.c"
+ }
+#line 46 "/home/jens/Source/shotwell/src/util/file.vala"
+ _vala_collision = TRUE;
+#line 49 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = basename;
+#line 49 "/home/jens/Source/shotwell/src/util/file.vala"
+ disassemble_filename (_tmp6_, &_tmp7_, &_tmp8_);
+#line 49 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (name);
+#line 49 "/home/jens/Source/shotwell/src/util/file.vala"
+ name = _tmp7_;
+#line 49 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (ext);
+#line 49 "/home/jens/Source/shotwell/src/util/file.vala"
+ ext = _tmp8_;
+#line 226 "file.c"
+ {
+ gint ctr = 0;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ ctr = 1;
+#line 231 "file.c"
+ {
+ gboolean _tmp9_ = FALSE;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = TRUE;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ while (TRUE) {
+#line 238 "file.c"
+ gint _tmp11_ = 0;
+ gchar* _tmp12_ = NULL;
+ const gchar* _tmp13_ = NULL;
+ gchar* new_name = NULL;
+ gchar* _tmp21_ = NULL;
+ GFile* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+ GFile* _tmp24_ = NULL;
+ gboolean _tmp25_ = FALSE;
+ GFile* _tmp26_ = NULL;
+ gboolean _tmp27_ = FALSE;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!_tmp9_) {
+#line 252 "file.c"
+ gint _tmp10_ = 0;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp10_ = ctr;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ ctr = _tmp10_ + 1;
+#line 258 "file.c"
+ }
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = FALSE;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp11_ = ctr;
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!(_tmp11_ < G_MAXINT)) {
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ break;
+#line 268 "file.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp13_ = ext;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp13_ != NULL) {
+#line 274 "file.c"
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp14_ = name;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp15_ = ctr;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp16_ = ext;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp17_ = g_strdup_printf ("%s_%d.%s", _tmp14_, _tmp15_, _tmp16_);
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp12_);
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp12_ = _tmp17_;
+#line 291 "file.c"
+ } else {
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp18_ = name;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp19_ = ctr;
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp20_ = g_strdup_printf ("%s_%d", _tmp18_, _tmp19_);
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp12_);
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp12_ = _tmp20_;
+#line 306 "file.c"
+ }
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp21_ = g_strdup (_tmp12_);
+#line 53 "/home/jens/Source/shotwell/src/util/file.vala"
+ new_name = _tmp21_;
+#line 55 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp22_ = dir;
+#line 55 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp23_ = new_name;
+#line 55 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp24_ = g_file_get_child (_tmp22_, _tmp23_);
+#line 55 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (file);
+#line 55 "/home/jens/Source/shotwell/src/util/file.vala"
+ file = _tmp24_;
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp26_ = file;
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp27_ = claim_file (_tmp26_, &_inner_error_);
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp25_ = _tmp27_;
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (new_name);
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp12_);
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (ext);
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (name);
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (file);
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ return NULL;
+#line 344 "file.c"
+ }
+#line 56 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp25_) {
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = file;
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (new_name);
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp12_);
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (ext);
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (name);
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (collision) {
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ *collision = _vala_collision;
+#line 362 "file.c"
+ }
+#line 57 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 366 "file.c"
+ }
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (new_name);
+#line 52 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp12_);
+#line 372 "file.c"
+ }
+ }
+ }
+#line 60 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp28_ = dir;
+#line 60 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp29_ = g_file_get_path (_tmp28_);
+#line 60 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp30_ = _tmp29_;
+#line 60 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp31_ = basename;
+#line 60 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_warning ("file.vala:60: generate_unique_filename %s for %s: unable to claim file", _tmp30_, _tmp31_);
+#line 60 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp30_);
+#line 62 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = NULL;
+#line 62 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (ext);
+#line 62 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (name);
+#line 62 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (file);
+#line 62 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (collision) {
+#line 62 "/home/jens/Source/shotwell/src/util/file.vala"
+ *collision = _vala_collision;
+#line 400 "file.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 404 "file.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 427 "file.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 435 "file.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 447 "file.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 471 "file.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 477 "file.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 481 "file.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 485 "file.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 497 "file.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 507 "file.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 513 "file.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 527 "file.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 537 "file.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 543 "file.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 552 "file.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 572 "file.c"
+}
+
+
+void disassemble_filename (const gchar* basename, gchar** name, gchar** ext) {
+ gchar* _vala_name = NULL;
+ gchar* _vala_ext = NULL;
+ glong offset = 0L;
+ const gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ glong _tmp2_ = 0L;
+#line 65 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_if_fail (basename != NULL);
+#line 66 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = basename;
+#line 66 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = find_last_offset (_tmp0_, '.');
+#line 66 "/home/jens/Source/shotwell/src/util/file.vala"
+ offset = _tmp1_;
+#line 67 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = offset;
+#line 67 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp2_ <= ((glong) 0)) {
+#line 595 "file.c"
+ const gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+#line 68 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = basename;
+#line 68 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = g_strdup (_tmp3_);
+#line 68 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_vala_name);
+#line 68 "/home/jens/Source/shotwell/src/util/file.vala"
+ _vala_name = _tmp4_;
+#line 69 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_vala_ext);
+#line 69 "/home/jens/Source/shotwell/src/util/file.vala"
+ _vala_ext = NULL;
+#line 610 "file.c"
+ } else {
+ const gchar* _tmp5_ = NULL;
+ glong _tmp6_ = 0L;
+ gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ glong _tmp9_ = 0L;
+ gchar* _tmp10_ = NULL;
+#line 71 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = basename;
+#line 71 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = offset;
+#line 71 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = string_substring (_tmp5_, (glong) 0, _tmp6_);
+#line 71 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_vala_name);
+#line 71 "/home/jens/Source/shotwell/src/util/file.vala"
+ _vala_name = _tmp7_;
+#line 72 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = basename;
+#line 72 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = offset;
+#line 72 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp10_ = string_substring (_tmp8_, _tmp9_ + 1, (glong) -1);
+#line 72 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_vala_ext);
+#line 72 "/home/jens/Source/shotwell/src/util/file.vala"
+ _vala_ext = _tmp10_;
+#line 638 "file.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (name) {
+#line 65 "/home/jens/Source/shotwell/src/util/file.vala"
+ *name = _vala_name;
+#line 644 "file.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_vala_name);
+#line 648 "file.c"
+ }
+#line 65 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (ext) {
+#line 65 "/home/jens/Source/shotwell/src/util/file.vala"
+ *ext = _vala_ext;
+#line 654 "file.c"
+ } else {
+#line 65 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_vala_ext);
+#line 658 "file.c"
+ }
+}
+
+
+guint64 query_total_file_size (GFile* file_or_dir, GCancellable* cancellable, GError** error) {
+ guint64 result = 0ULL;
+ GFileType type = 0;
+ GFile* _tmp0_ = NULL;
+ GFileType _tmp1_ = 0;
+ GFileType _tmp2_ = 0;
+ GFileEnumerator* enumerator = NULL;
+ guint64 total_bytes = 0ULL;
+ GFileInfo* info = NULL;
+ GError * _inner_error_ = NULL;
+#line 77 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (file_or_dir), 0ULL);
+#line 77 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable), 0ULL);
+#line 78 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = file_or_dir;
+#line 78 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_query_file_type (_tmp0_, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL);
+#line 78 "/home/jens/Source/shotwell/src/util/file.vala"
+ type = _tmp1_;
+#line 79 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = type;
+#line 79 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp2_ == G_FILE_TYPE_REGULAR) {
+#line 687 "file.c"
+ GFileInfo* info = NULL;
+ GFileInfo* _tmp16_ = NULL;
+ gint64 _tmp17_ = 0LL;
+#line 80 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = NULL;
+#line 693 "file.c"
+ {
+ GFileInfo* _tmp3_ = NULL;
+ GFile* _tmp4_ = NULL;
+ GCancellable* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = file_or_dir;
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = cancellable;
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = g_file_query_info (_tmp4_, G_FILE_ATTRIBUTE_STANDARD_SIZE, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, _tmp5_, &_inner_error_);
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = _tmp6_;
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 710 "file.c"
+ goto __catch1_g_error;
+ }
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = _tmp3_;
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = NULL;
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 82 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = _tmp7_;
+#line 81 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp3_);
+#line 723 "file.c"
+ }
+ goto __finally1;
+ __catch1_g_error:
+ {
+ GError* err = NULL;
+ GError* _tmp8_ = NULL;
+ GFile* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ GError* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+#line 81 "/home/jens/Source/shotwell/src/util/file.vala"
+ err = _inner_error_;
+#line 81 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = NULL;
+#line 85 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = err;
+#line 85 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (g_error_matches (_tmp8_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+#line 743 "file.c"
+ GError* _tmp9_ = NULL;
+ GError* _tmp10_ = NULL;
+#line 86 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = err;
+#line 86 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp10_ = _g_error_copy0 (_tmp9_);
+#line 86 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = _tmp10_;
+#line 86 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_error_free0 (err);
+#line 754 "file.c"
+ goto __finally1;
+ }
+#line 88 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp11_ = file_or_dir;
+#line 88 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp12_ = g_file_get_path (_tmp11_);
+#line 88 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp13_ = _tmp12_;
+#line 88 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp14_ = err;
+#line 88 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp15_ = _tmp14_->message;
+#line 88 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_debug ("file.vala:88: Unable to query filesize for %s: %s", _tmp13_, _tmp15_);
+#line 88 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp13_);
+#line 90 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = (guint64) 0;
+#line 90 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_error_free0 (err);
+#line 90 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 90 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 779 "file.c"
+ }
+ __finally1:
+#line 81 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 81 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 81 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 81 "/home/jens/Source/shotwell/src/util/file.vala"
+ return 0ULL;
+#line 790 "file.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp16_ = info;
+#line 93 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp17_ = g_file_info_get_size (_tmp16_);
+#line 93 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = (guint64) _tmp17_;
+#line 93 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 93 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 802 "file.c"
+ } else {
+ GFileType _tmp18_ = 0;
+#line 94 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp18_ = type;
+#line 94 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp18_ != G_FILE_TYPE_DIRECTORY) {
+#line 95 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = (guint64) 0;
+#line 95 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 813 "file.c"
+ }
+ }
+ {
+ GFileEnumerator* _tmp19_ = NULL;
+ GFile* _tmp20_ = NULL;
+ GCancellable* _tmp21_ = NULL;
+ GFileEnumerator* _tmp22_ = NULL;
+ GFileEnumerator* _tmp23_ = NULL;
+ GFileEnumerator* _tmp24_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp20_ = file_or_dir;
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp21_ = cancellable;
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp22_ = g_file_enumerate_children (_tmp20_, G_FILE_ATTRIBUTE_STANDARD_NAME, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, _tmp21_, &_inner_error_);
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp19_ = _tmp22_;
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 833 "file.c"
+ goto __catch2_g_error;
+ }
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp23_ = _tmp19_;
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp19_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 100 "/home/jens/Source/shotwell/src/util/file.vala"
+ enumerator = _tmp23_;
+#line 102 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp24_ = enumerator;
+#line 102 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp24_ == NULL) {
+#line 103 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = (guint64) 0;
+#line 103 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp19_);
+#line 103 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 103 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 856 "file.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp19_);
+#line 860 "file.c"
+ }
+ goto __finally2;
+ __catch2_g_error:
+ {
+ GError* err = NULL;
+ gboolean _tmp25_ = FALSE;
+ GError* _tmp26_ = NULL;
+ GError* _tmp28_ = NULL;
+ GError* _tmp29_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/util/file.vala"
+ err = _inner_error_;
+#line 99 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp26_ = err;
+#line 106 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (g_error_matches (_tmp26_, G_FILE_ERROR, G_FILE_ERROR_PERM)) {
+#line 106 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp25_ = TRUE;
+#line 880 "file.c"
+ } else {
+ GError* _tmp27_ = NULL;
+#line 106 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp27_ = err;
+#line 106 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp25_ = g_error_matches (_tmp27_, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED);
+#line 887 "file.c"
+ }
+#line 106 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp25_) {
+#line 107 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = (guint64) 0;
+#line 107 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_error_free0 (err);
+#line 107 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 107 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 899 "file.c"
+ }
+#line 109 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp28_ = err;
+#line 109 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp29_ = _g_error_copy0 (_tmp28_);
+#line 109 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = _tmp29_;
+#line 109 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_error_free0 (err);
+#line 909 "file.c"
+ goto __finally2;
+ }
+ __finally2:
+#line 99 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 99 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 99 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 99 "/home/jens/Source/shotwell/src/util/file.vala"
+ return 0ULL;
+#line 921 "file.c"
+ }
+#line 112 "/home/jens/Source/shotwell/src/util/file.vala"
+ total_bytes = (guint64) 0;
+#line 114 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = NULL;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ while (TRUE) {
+#line 929 "file.c"
+ GFileInfo* _tmp30_ = NULL;
+ GFileEnumerator* _tmp31_ = NULL;
+ GCancellable* _tmp32_ = NULL;
+ GFileInfo* _tmp33_ = NULL;
+ GFileInfo* _tmp34_ = NULL;
+ GFileInfo* _tmp35_ = NULL;
+ guint64 _tmp36_ = 0ULL;
+ GFile* _tmp37_ = NULL;
+ GFileInfo* _tmp38_ = NULL;
+ const gchar* _tmp39_ = NULL;
+ GFile* _tmp40_ = NULL;
+ GFile* _tmp41_ = NULL;
+ GCancellable* _tmp42_ = NULL;
+ guint64 _tmp43_ = 0ULL;
+ guint64 _tmp44_ = 0ULL;
+ guint64 _tmp45_ = 0ULL;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp31_ = enumerator;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp32_ = cancellable;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp33_ = g_file_enumerator_next_file (_tmp31_, _tmp32_, &_inner_error_);
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp30_ = _tmp33_;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ return 0ULL;
+#line 964 "file.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp34_ = _tmp30_;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp30_ = NULL;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = _tmp34_;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp35_ = info;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!(_tmp35_ != NULL)) {
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp30_);
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ break;
+#line 982 "file.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp37_ = file_or_dir;
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp38_ = info;
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp39_ = g_file_info_get_name (_tmp38_);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp40_ = g_file_get_child (_tmp37_, _tmp39_);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp41_ = _tmp40_;
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp42_ = cancellable;
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp43_ = query_total_file_size (_tmp41_, _tmp42_, &_inner_error_);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp44_ = _tmp43_;
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp41_);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp36_ = _tmp44_;
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp30_);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ return 0ULL;
+#line 1016 "file.c"
+ }
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp45_ = total_bytes;
+#line 116 "/home/jens/Source/shotwell/src/util/file.vala"
+ total_bytes = _tmp45_ + _tmp36_;
+#line 115 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp30_);
+#line 1024 "file.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = total_bytes;
+#line 118 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 118 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 118 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1034 "file.c"
+}
+
+
+void delete_all_files (GFile* dir, GeeSet* exceptions, ProgressMonitor monitor, void* monitor_target, guint64 file_count, GCancellable* cancellable, GError** error) {
+ GFileType type = 0;
+ GFile* _tmp0_ = NULL;
+ GFileType _tmp1_ = 0;
+ GFileType _tmp2_ = 0;
+ GFileEnumerator* enumerator = NULL;
+ GFile* _tmp10_ = NULL;
+ GCancellable* _tmp11_ = NULL;
+ GFileEnumerator* _tmp12_ = NULL;
+ GFileInfo* info = NULL;
+ guint64 i = 0ULL;
+ GError * _inner_error_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_if_fail (G_IS_FILE (dir));
+#line 125 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_if_fail ((exceptions == NULL) || GEE_IS_SET (exceptions));
+#line 125 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_if_fail ((cancellable == NULL) || G_IS_CANCELLABLE (cancellable));
+#line 127 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = dir;
+#line 127 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_query_file_type (_tmp0_, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL);
+#line 127 "/home/jens/Source/shotwell/src/util/file.vala"
+ type = _tmp1_;
+#line 128 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = type;
+#line 128 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp2_ != G_FILE_TYPE_DIRECTORY) {
+#line 1066 "file.c"
+ GFile* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ GError* _tmp8_ = NULL;
+ GError* _tmp9_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = dir;
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = g_file_get_path (_tmp3_);
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = _tmp4_;
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = g_strdup_printf ("%s is not a directory", _tmp5_);
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = _tmp6_;
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY, _tmp7_);
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = _tmp8_;
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp7_);
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp5_);
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = _tmp9_;
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 129 "/home/jens/Source/shotwell/src/util/file.vala"
+ return;
+#line 1098 "file.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp10_ = dir;
+#line 131 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp11_ = cancellable;
+#line 131 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp12_ = g_file_enumerate_children (_tmp10_, "standard::name,standard::type", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, _tmp11_, &_inner_error_);
+#line 131 "/home/jens/Source/shotwell/src/util/file.vala"
+ enumerator = _tmp12_;
+#line 131 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 131 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 131 "/home/jens/Source/shotwell/src/util/file.vala"
+ return;
+#line 1114 "file.c"
+ }
+#line 133 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = NULL;
+#line 134 "/home/jens/Source/shotwell/src/util/file.vala"
+ i = (guint64) 0;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ while (TRUE) {
+#line 1122 "file.c"
+ GFileInfo* _tmp13_ = NULL;
+ GFileEnumerator* _tmp14_ = NULL;
+ GCancellable* _tmp15_ = NULL;
+ GFileInfo* _tmp16_ = NULL;
+ GFileInfo* _tmp17_ = NULL;
+ GFileInfo* _tmp18_ = NULL;
+ GFileInfo* _tmp19_ = NULL;
+ GFileType _tmp20_ = 0;
+ gboolean _tmp21_ = FALSE;
+ GeeSet* _tmp22_ = NULL;
+ GFile* file = NULL;
+ GFile* _tmp27_ = NULL;
+ GFileInfo* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ GFile* _tmp30_ = NULL;
+ gboolean _tmp38_ = FALSE;
+ ProgressMonitor _tmp39_ = NULL;
+ void* _tmp39__target = NULL;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp14_ = enumerator;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp15_ = cancellable;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp16_ = g_file_enumerator_next_file (_tmp14_, _tmp15_, &_inner_error_);
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp13_ = _tmp16_;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ return;
+#line 1159 "file.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp17_ = _tmp13_;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp13_ = NULL;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = _tmp17_;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp18_ = info;
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!(_tmp18_ != NULL)) {
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp13_);
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ break;
+#line 1177 "file.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp19_ = info;
+#line 136 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp20_ = g_file_info_get_file_type (_tmp19_);
+#line 136 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp20_ != G_FILE_TYPE_REGULAR) {
+#line 137 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp13_);
+#line 137 "/home/jens/Source/shotwell/src/util/file.vala"
+ continue;
+#line 1189 "file.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp22_ = exceptions;
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp22_ != NULL) {
+#line 1195 "file.c"
+ GeeSet* _tmp23_ = NULL;
+ GFileInfo* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gboolean _tmp26_ = FALSE;
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp23_ = exceptions;
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp24_ = info;
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp25_ = g_file_info_get_name (_tmp24_);
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp26_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp23_, GEE_TYPE_COLLECTION, GeeCollection), _tmp25_);
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp21_ = _tmp26_;
+#line 1210 "file.c"
+ } else {
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp21_ = FALSE;
+#line 1214 "file.c"
+ }
+#line 139 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp21_) {
+#line 140 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp13_);
+#line 140 "/home/jens/Source/shotwell/src/util/file.vala"
+ continue;
+#line 1222 "file.c"
+ }
+#line 142 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp27_ = dir;
+#line 142 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp28_ = info;
+#line 142 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp29_ = g_file_info_get_name (_tmp28_);
+#line 142 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp30_ = g_file_get_child (_tmp27_, _tmp29_);
+#line 142 "/home/jens/Source/shotwell/src/util/file.vala"
+ file = _tmp30_;
+#line 1234 "file.c"
+ {
+ GFile* _tmp31_ = NULL;
+ GCancellable* _tmp32_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp31_ = file;
+#line 144 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp32_ = cancellable;
+#line 144 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_file_delete (_tmp31_, _tmp32_, &_inner_error_);
+#line 144 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 1246 "file.c"
+ goto __catch3_g_error;
+ }
+ }
+ goto __finally3;
+ __catch3_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp33_ = NULL;
+ gchar* _tmp34_ = NULL;
+ gchar* _tmp35_ = NULL;
+ GError* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ err = _inner_error_;
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ _inner_error_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp33_ = file;
+#line 146 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp34_ = g_file_get_path (_tmp33_);
+#line 146 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp35_ = _tmp34_;
+#line 146 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp36_ = err;
+#line 146 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp37_ = _tmp36_->message;
+#line 146 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_warning ("file.vala:146: Unable to delete file %s: %s", _tmp35_, _tmp37_);
+#line 146 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp35_);
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_error_free0 (err);
+#line 1279 "file.c"
+ }
+ __finally3:
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (file);
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp13_);
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 143 "/home/jens/Source/shotwell/src/util/file.vala"
+ return;
+#line 1296 "file.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp39_ = monitor;
+#line 149 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp39__target = monitor_target;
+#line 149 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp39_ != NULL) {
+#line 1304 "file.c"
+ guint64 _tmp40_ = 0ULL;
+#line 149 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp40_ = file_count;
+#line 149 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp38_ = _tmp40_ > ((guint64) 0);
+#line 1310 "file.c"
+ } else {
+#line 149 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp38_ = FALSE;
+#line 1314 "file.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp38_) {
+#line 1318 "file.c"
+ ProgressMonitor _tmp41_ = NULL;
+ void* _tmp41__target = NULL;
+ guint64 _tmp42_ = 0ULL;
+ guint64 _tmp43_ = 0ULL;
+ guint64 _tmp44_ = 0ULL;
+#line 150 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp41_ = monitor;
+#line 150 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp41__target = monitor_target;
+#line 150 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp42_ = file_count;
+#line 150 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp43_ = i;
+#line 150 "/home/jens/Source/shotwell/src/util/file.vala"
+ i = _tmp43_ + 1;
+#line 150 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp44_ = i;
+#line 150 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp41_ (_tmp42_, _tmp44_, TRUE, _tmp41__target);
+#line 1338 "file.c"
+ }
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (file);
+#line 135 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp13_);
+#line 1344 "file.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 125 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 1350 "file.c"
+}
+
+
+time_t query_file_modified (GFile* file, GError** error) {
+ time_t result = 0;
+ GFileInfo* info = NULL;
+ GFile* _tmp0_ = NULL;
+ GFileInfo* _tmp1_ = NULL;
+ GTimeVal _tmp2_ = {0};
+ glong _tmp3_ = 0L;
+ GError * _inner_error_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (file), 0);
+#line 155 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = file;
+#line 155 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_query_info (_tmp0_, G_FILE_ATTRIBUTE_TIME_MODIFIED, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 155 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = _tmp1_;
+#line 155 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 155 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 155 "/home/jens/Source/shotwell/src/util/file.vala"
+ return 0;
+#line 1376 "file.c"
+ }
+#line 158 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_file_info_get_modification_time (info, &_tmp2_);
+#line 158 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = _tmp2_.tv_sec;
+#line 158 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = (time_t) _tmp3_;
+#line 158 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 158 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1388 "file.c"
+}
+
+
+gboolean query_is_directory (GFile* file) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ GFileType _tmp1_ = 0;
+#line 161 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (file), FALSE);
+#line 162 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = file;
+#line 162 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_query_file_type (_tmp0_, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL);
+#line 162 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp1_ == G_FILE_TYPE_DIRECTORY;
+#line 162 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1406 "file.c"
+}
+
+
+gboolean query_is_directory_empty (GFile* dir, GError** error) {
+ gboolean result = FALSE;
+ GFile* _tmp0_ = NULL;
+ GFileType _tmp1_ = 0;
+ GFileEnumerator* enumerator = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileEnumerator* _tmp3_ = NULL;
+ GFileEnumerator* _tmp4_ = NULL;
+ GFileInfo* _tmp5_ = NULL;
+ GFileEnumerator* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+ GFileInfo* _tmp9_ = NULL;
+ gboolean _tmp10_ = FALSE;
+ GError * _inner_error_ = NULL;
+#line 165 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), FALSE);
+#line 166 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = dir;
+#line 166 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_query_file_type (_tmp0_, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL);
+#line 166 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp1_ != G_FILE_TYPE_DIRECTORY) {
+#line 167 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = FALSE;
+#line 167 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1437 "file.c"
+ }
+#line 169 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = dir;
+#line 169 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = g_file_enumerate_children (_tmp2_, "standard::name", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 169 "/home/jens/Source/shotwell/src/util/file.vala"
+ enumerator = _tmp3_;
+#line 169 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 169 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 169 "/home/jens/Source/shotwell/src/util/file.vala"
+ return FALSE;
+#line 1451 "file.c"
+ }
+#line 171 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = enumerator;
+#line 171 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp4_ == NULL) {
+#line 172 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 172 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1463 "file.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = enumerator;
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = g_file_enumerator_next_file (_tmp6_, NULL, &_inner_error_);
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = _tmp7_;
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ return FALSE;
+#line 1479 "file.c"
+ }
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = _tmp5_;
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = NULL;
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = _tmp8_;
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp10_ = _tmp9_ == NULL;
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp9_);
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp10_;
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp5_);
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 174 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1499 "file.c"
+}
+
+
+gchar* get_display_pathname (GFile* file) {
+ gchar* result = NULL;
+ gchar* path = NULL;
+ GFile* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* home = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ const gchar* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gboolean _tmp9_ = FALSE;
+#line 177 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 179 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = file;
+#line 179 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_get_parse_name (_tmp0_);
+#line 179 "/home/jens/Source/shotwell/src/util/file.vala"
+ path = _tmp1_;
+#line 180 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = g_get_home_dir ();
+#line 180 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 180 "/home/jens/Source/shotwell/src/util/file.vala"
+ home = _tmp3_;
+#line 182 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = path;
+#line 182 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = home;
+#line 182 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (g_strcmp0 (_tmp4_, _tmp5_) == 0) {
+#line 1536 "file.c"
+ gchar* _tmp6_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = g_strdup ("~");
+#line 183 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp6_;
+#line 183 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (home);
+#line 183 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (path);
+#line 183 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1548 "file.c"
+ }
+#line 185 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = path;
+#line 185 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = home;
+#line 185 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = g_str_has_prefix (_tmp7_, _tmp8_);
+#line 185 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp9_) {
+#line 1558 "file.c"
+ const gchar* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp10_ = path;
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp11_ = home;
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp12_ = strlen (_tmp11_);
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp13_ = _tmp12_;
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp14_ = string_substring (_tmp10_, (glong) _tmp13_, (glong) -1);
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp15_ = _tmp14_;
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp16_ = g_strdup_printf ("~%s", _tmp15_);
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp17_ = _tmp16_;
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp15_);
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp17_;
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (home);
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (path);
+#line 186 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1593 "file.c"
+ }
+#line 188 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = path;
+#line 188 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (home);
+#line 188 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1601 "file.c"
+}
+
+
+gchar* strip_pretty_path (const gchar* path) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 191 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (path != NULL, NULL);
+#line 192 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = path;
+#line 192 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_str_has_prefix (_tmp0_, "~");
+#line 192 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!_tmp1_) {
+#line 1623 "file.c"
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 193 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = path;
+#line 193 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = g_strdup (_tmp2_);
+#line 193 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp3_;
+#line 193 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1634 "file.c"
+ }
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = g_get_home_dir ();
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = path;
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = string_substring (_tmp5_, (glong) 1, (glong) -1);
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = _tmp6_;
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = g_strconcat (_tmp4_, _tmp7_, NULL);
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = _tmp8_;
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_free0 (_tmp7_);
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp9_;
+#line 195 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1654 "file.c"
+}
+
+
+gchar* get_file_info_id (GFileInfo* info) {
+ gchar* result = NULL;
+ GFileInfo* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+#line 198 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE_INFO (info), NULL);
+#line 199 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = info;
+#line 199 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = g_file_info_get_attribute_string (_tmp0_, G_FILE_ATTRIBUTE_ID_FILE);
+#line 199 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 199 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp2_;
+#line 199 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1675 "file.c"
+}
+
+
+void skip_uint64 (GInputStream* input, guint64 skip_amount, GError** error) {
+ GError * _inner_error_ = NULL;
+#line 203 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_if_fail (G_IS_INPUT_STREAM (input));
+#line 204 "/home/jens/Source/shotwell/src/util/file.vala"
+ while (TRUE) {
+#line 1685 "file.c"
+ guint64 _tmp0_ = 0ULL;
+ guint64 _tmp1_ = 0ULL;
+#line 204 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = skip_amount;
+#line 204 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!(_tmp0_ > ((guint64) 0))) {
+#line 204 "/home/jens/Source/shotwell/src/util/file.vala"
+ break;
+#line 1694 "file.c"
+ }
+#line 206 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = skip_amount;
+#line 206 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp1_ >= ((guint64) G_MAXSSIZE)) {
+#line 1700 "file.c"
+ GInputStream* _tmp2_ = NULL;
+ guint64 _tmp3_ = 0ULL;
+#line 207 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = input;
+#line 207 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_input_stream_skip (_tmp2_, (gsize) G_MAXSSIZE, NULL, &_inner_error_);
+#line 207 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 207 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 207 "/home/jens/Source/shotwell/src/util/file.vala"
+ return;
+#line 1713 "file.c"
+ }
+#line 208 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = skip_amount;
+#line 208 "/home/jens/Source/shotwell/src/util/file.vala"
+ skip_amount = _tmp3_ - G_MAXSSIZE;
+#line 1719 "file.c"
+ } else {
+ GInputStream* _tmp4_ = NULL;
+ guint64 _tmp5_ = 0ULL;
+#line 210 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = input;
+#line 210 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = skip_amount;
+#line 210 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_input_stream_skip (_tmp4_, (gsize) _tmp5_, NULL, &_inner_error_);
+#line 210 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 210 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 210 "/home/jens/Source/shotwell/src/util/file.vala"
+ return;
+#line 1735 "file.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/util/file.vala"
+ skip_amount = (guint64) 0;
+#line 1739 "file.c"
+ }
+ }
+}
+
+
+guint64 count_files_in_directory (GFile* dir, GError** error) {
+ guint64 result = 0ULL;
+ GFile* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ guint64 count = 0ULL;
+ GFileEnumerator* enumerator = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileEnumerator* _tmp3_ = NULL;
+ GFileInfo* info = NULL;
+ GError * _inner_error_ = NULL;
+#line 217 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail (G_IS_FILE (dir), 0ULL);
+#line 218 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = dir;
+#line 218 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = query_is_directory (_tmp0_);
+#line 218 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!_tmp1_) {
+#line 219 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = (guint64) 0;
+#line 219 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1767 "file.c"
+ }
+#line 221 "/home/jens/Source/shotwell/src/util/file.vala"
+ count = (guint64) 0;
+#line 222 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = dir;
+#line 222 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = g_file_enumerate_children (_tmp2_, "standard::*", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &_inner_error_);
+#line 222 "/home/jens/Source/shotwell/src/util/file.vala"
+ enumerator = _tmp3_;
+#line 222 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 222 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 222 "/home/jens/Source/shotwell/src/util/file.vala"
+ return 0ULL;
+#line 1783 "file.c"
+ }
+#line 225 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = NULL;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ while (TRUE) {
+#line 1789 "file.c"
+ GFileInfo* _tmp4_ = NULL;
+ GFileEnumerator* _tmp5_ = NULL;
+ GFileInfo* _tmp6_ = NULL;
+ GFileInfo* _tmp7_ = NULL;
+ GFileInfo* _tmp8_ = NULL;
+ guint64 _tmp9_ = 0ULL;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = enumerator;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = g_file_enumerator_next_file (_tmp5_, NULL, &_inner_error_);
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = _tmp6_;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_propagate_error (error, _inner_error_);
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ return 0ULL;
+#line 1812 "file.c"
+ }
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp7_ = _tmp4_;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = NULL;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ info = _tmp7_;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp8_ = info;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (!(_tmp8_ != NULL)) {
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp4_);
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ break;
+#line 1830 "file.c"
+ }
+#line 227 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp9_ = count;
+#line 227 "/home/jens/Source/shotwell/src/util/file.vala"
+ count = _tmp9_ + 1;
+#line 226 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (_tmp4_);
+#line 1838 "file.c"
+ }
+#line 229 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = count;
+#line 229 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (info);
+#line 229 "/home/jens/Source/shotwell/src/util/file.vala"
+ _g_object_unref0 (enumerator);
+#line 229 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1848 "file.c"
+}
+
+
+gboolean file_equal (GFile* a, GFile* b) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GFile* _tmp2_ = NULL;
+#line 233 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail ((a == NULL) || G_IS_FILE (a), FALSE);
+#line 233 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail ((b == NULL) || G_IS_FILE (b), FALSE);
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = a;
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp2_ != NULL) {
+#line 1865 "file.c"
+ GFile* _tmp3_ = NULL;
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = b;
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = _tmp3_ != NULL;
+#line 1871 "file.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = FALSE;
+#line 1875 "file.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp1_) {
+#line 1879 "file.c"
+ GFile* _tmp4_ = NULL;
+ GFile* _tmp5_ = NULL;
+ gboolean _tmp6_ = FALSE;
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp4_ = a;
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp5_ = b;
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp6_ = g_file_equal (_tmp4_, _tmp5_);
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = _tmp6_;
+#line 1891 "file.c"
+ } else {
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = FALSE;
+#line 1895 "file.c"
+ }
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp0_;
+#line 234 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1901 "file.c"
+}
+
+
+guint file_hash (GFile* file) {
+ guint result = 0U;
+ guint _tmp0_ = 0U;
+ GFile* _tmp1_ = NULL;
+#line 238 "/home/jens/Source/shotwell/src/util/file.vala"
+ g_return_val_if_fail ((file == NULL) || G_IS_FILE (file), 0U);
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp1_ = file;
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ if (_tmp1_ != NULL) {
+#line 1915 "file.c"
+ GFile* _tmp2_ = NULL;
+ guint _tmp3_ = 0U;
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp2_ = file;
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp3_ = g_file_hash (_tmp2_);
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = _tmp3_;
+#line 1924 "file.c"
+ } else {
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ _tmp0_ = (guint) 0;
+#line 1928 "file.c"
+ }
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ result = _tmp0_;
+#line 239 "/home/jens/Source/shotwell/src/util/file.vala"
+ return result;
+#line 1934 "file.c"
+}
+
+
+
diff --git a/src/util/image.c b/src/util/image.c
new file mode 100644
index 0000000..2b415a8
--- /dev/null
+++ b/src/util/image.c
@@ -0,0 +1,2701 @@
+/* image.c generated by valac 0.32.1, the Vala compiler
+ * generated from image.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* XPM */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk/gdk.h>
+#include <cairo.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gtk/gtk.h>
+#include <float.h>
+#include <math.h>
+#include <gio/gio.h>
+
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_DIMENSIONS (dimensions_get_type ())
+typedef struct _Dimensions Dimensions;
+
+#define TYPE_PIXEL_TRANSFORMER (pixel_transformer_get_type ())
+#define PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformer))
+#define PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+#define IS_PIXEL_TRANSFORMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMER))
+#define IS_PIXEL_TRANSFORMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMER))
+#define PIXEL_TRANSFORMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMER, PixelTransformerClass))
+
+typedef struct _PixelTransformer PixelTransformer;
+typedef struct _PixelTransformerClass PixelTransformerClass;
+
+#define TYPE_PIXEL_TRANSFORMATION (pixel_transformation_get_type ())
+#define PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformation))
+#define PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+#define IS_PIXEL_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PIXEL_TRANSFORMATION))
+#define IS_PIXEL_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PIXEL_TRANSFORMATION))
+#define PIXEL_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PIXEL_TRANSFORMATION, PixelTransformationClass))
+
+typedef struct _PixelTransformation PixelTransformation;
+typedef struct _PixelTransformationClass PixelTransformationClass;
+
+#define TYPE_RGB_TRANSFORMATION (rgb_transformation_get_type ())
+#define RGB_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_RGB_TRANSFORMATION, RGBTransformation))
+#define RGB_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_RGB_TRANSFORMATION, RGBTransformationClass))
+#define IS_RGB_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_RGB_TRANSFORMATION))
+#define IS_RGB_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_RGB_TRANSFORMATION))
+#define RGB_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_RGB_TRANSFORMATION, RGBTransformationClass))
+
+typedef struct _RGBTransformation RGBTransformation;
+typedef struct _RGBTransformationClass RGBTransformationClass;
+
+#define TYPE_SATURATION_TRANSFORMATION (saturation_transformation_get_type ())
+#define SATURATION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SATURATION_TRANSFORMATION, SaturationTransformation))
+#define SATURATION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SATURATION_TRANSFORMATION, SaturationTransformationClass))
+#define IS_SATURATION_TRANSFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SATURATION_TRANSFORMATION))
+#define IS_SATURATION_TRANSFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SATURATION_TRANSFORMATION))
+#define SATURATION_TRANSFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SATURATION_TRANSFORMATION, SaturationTransformationClass))
+
+typedef struct _SaturationTransformation SaturationTransformation;
+typedef struct _SaturationTransformationClass SaturationTransformationClass;
+#define _pixel_transformation_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformation_unref (var), NULL)))
+#define _pixel_transformer_unref0(var) ((var == NULL) ? NULL : (var = (pixel_transformer_unref (var), NULL)))
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
+
+#define TYPE_BOX (box_get_type ())
+typedef struct _Box Box;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Dimensions {
+ gint width;
+ gint height;
+};
+
+struct _Box {
+ gint left;
+ gint top;
+ gint right;
+ gint bottom;
+};
+
+
+
+gboolean is_color_parsable (const gchar* spec);
+void parse_color (const gchar* spec, GdkRGBA* result);
+void fetch_color (const gchar* spec, GdkRGBA* result);
+void set_source_color_from_string (cairo_t* ctx, const gchar* spec);
+#define MIN_SCALED_WIDTH 10
+#define MIN_SCALED_HEIGHT 10
+GdkPixbuf* get_placeholder_pixbuf (void);
+GdkPixbuf* scale_pixbuf (GdkPixbuf* pixbuf, gint scale, GdkInterpType interp, gboolean scale_up);
+GType dimensions_get_type (void) G_GNUC_CONST;
+Dimensions* dimensions_dup (const Dimensions* self);
+void dimensions_free (Dimensions* self);
+void dimensions_for_pixbuf (GdkPixbuf* pixbuf, Dimensions* result);
+void dimensions_get_scaled (Dimensions *self, gint scale, gboolean scale_up, Dimensions* result);
+void dimensions_with_min (Dimensions *self, gint min_width, gint min_height, Dimensions* result);
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp);
+#define DEGREE (G_PI / 180.0)
+void draw_rounded_corners_filled (cairo_t* ctx, Dimensions* dim, GdkPoint* origin, gdouble radius_proportion);
+void context_rounded_corners (cairo_t* cx, Dimensions* dim, GdkPoint* origin, gdouble radius_proportion);
+gint dimensions_minor_axis (Dimensions *self);
+guchar shift_color_byte (gint b, gint shift);
+void shift_colors (GdkPixbuf* pixbuf, gint red, gint green, gint blue, gint alpha);
+void dim_pixbuf (GdkPixbuf* pixbuf);
+gpointer pixel_transformer_ref (gpointer instance);
+void pixel_transformer_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformer (GValue* value, gpointer v_object);
+void value_take_pixel_transformer (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformer (const GValue* value);
+GType pixel_transformer_get_type (void) G_GNUC_CONST;
+PixelTransformer* pixel_transformer_new (void);
+PixelTransformer* pixel_transformer_construct (GType object_type);
+gpointer pixel_transformation_ref (gpointer instance);
+void pixel_transformation_unref (gpointer instance);
+GParamSpec* param_spec_pixel_transformation (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_pixel_transformation (GValue* value, gpointer v_object);
+void value_take_pixel_transformation (GValue* value, gpointer v_object);
+gpointer value_get_pixel_transformation (const GValue* value);
+GType pixel_transformation_get_type (void) G_GNUC_CONST;
+GType rgb_transformation_get_type (void) G_GNUC_CONST;
+GType saturation_transformation_get_type (void) G_GNUC_CONST;
+#define SATURATION_TRANSFORMATION_MIN_PARAMETER (-16.0f)
+SaturationTransformation* saturation_transformation_new (gfloat client_parameter);
+SaturationTransformation* saturation_transformation_construct (GType object_type, gfloat client_parameter);
+void pixel_transformer_attach_transformation (PixelTransformer* self, PixelTransformation* trans);
+void pixel_transformer_transform_pixbuf (PixelTransformer* self, GdkPixbuf* pixbuf, GCancellable* cancellable);
+gboolean coord_in_rectangle (gint x, gint y, GdkRectangle* rect);
+gboolean rectangles_equal (GdkRectangle* a, GdkRectangle* b);
+gchar* rectangle_to_string (GdkRectangle* rect);
+void clamp_rectangle (GdkRectangle* original, Dimensions* max, GdkRectangle* result);
+void scale_point (GdkPoint* p, gdouble factor, GdkPoint* result);
+void add_points (GdkPoint* p1, GdkPoint* p2, GdkPoint* result);
+void subtract_points (GdkPoint* p1, GdkPoint* p2, GdkPoint* result);
+void fix_cairo_pixbuf (GdkPixbuf* pixbuf);
+void compute_arb_rotated_size (gdouble src_width, gdouble src_height, gdouble angle, gdouble* dest_width, gdouble* dest_height);
+gdouble degrees_to_radians (gdouble theta);
+GdkPixbuf* rotate_arb (GdkPixbuf* source_pixbuf, gdouble angle);
+void rotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, gboolean invert, GdkPoint* result);
+void derotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, GdkPoint* result);
+GType box_get_type (void) G_GNUC_CONST;
+Box* box_dup (const Box* self);
+void box_free (Box* self);
+void clamp_inside_rotated_image (Box* src, gint img_w, gint img_h, gdouble angle_deg, gboolean preserve_geom, Box* result);
+void box_get_offset (Box *self, gint xofs, gint yofs, Box* result);
+void box_init (Box *self, gint left, gint top, gint right, gint bottom);
+
+const gchar* fallback_image_missing[103] = {"48 48 54 1 ", " c #6A6D67", ". c #6C6E69", "X c #72746F", "o c #747672", "O c #777974", "+ c #797B77", "@ c #7C7E7A", "# c #7F817C", "$ c #81837F", "% c #848682", "& c #878984", "* c #888A86", "= c #8C8D8A", "- c #8F908C", "; c #90928E", ": c #949591", "> c #969894", ", c #999B96", "< c #9C9E9A", "1 c #9FA09C", "2 c #A1A39E", "3 c #A4A6A2", "4 c #A6A9A4", "5 c #A9ABA6", "6 c #ACADA9", "7 c #AEB1AB", "8 c #B1B2AF", "9 c #B3B4B1", "0 c #B6B9B3", "q c #B9BCB6", "w c #BDBEBA", "e c #BEC2BB", "r c #C1C4BE", "t c #C5C5C2", "y c #C6C9C3", "u c #C9CCC6", "i c #CCCDCB", "p c #CED2CA", "a c #D2D6CE", "s c #D5D5D3", "d c #D7D8D5", "f c #D9D9D6", "g c #DCDCDA", "h c #DFE0DD", "j c #E0E0DE", "k c #E4E4E2", "l c #E7E8E5", "z c #E9E9E7", "x c #EDEDEC", "c c #EFF0EE", "v c #F1F1EF", "b c #F2F2F1", "n c #FFFFFF", "m c None", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmaaaaaaaaaasaisaaaaaaaaaaaaaaaaaaapppiipuuuuumm", "mannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnym", "manbbbbbbbbbvbbvvvvxvvvbvvvvvvvvccccccxxvxvxxnym", "manbt89898888988888888888999999999999999999txnrm", "manb6======================-;;=;;;;;;;;;;=:7znrm", "manv6&%%**%*%%%%*%%****=======;==;;;;=;=;==7znem", "manv4%%%%$%%%%%%%%%%%=****=======;==-======6znwm", "manx3%%#$$$$##%#$%%%*%**==========-=--=====6znqm", "manx1$@%#$@$###%%%%=****=*===--;;----====*=5lnqm", "manx<@@@@@@@@##%$%%%%****========-==-======5kn0m", "manz<@@@+@+@@@#$%%%%%=%=%===;=:=--------=-*4kn8m", "manz>O+O+O+@@@#$$%%%%========;;=--------=*=3kn9m", "mpnl:OOOOO+@@$##%%%%%=%=====;=;;--;-----===3kn8m", "munl;OooOOO@@@#$%%%%%======;;;;;:;;;;;---==1hn7m", "munl;oXoOO+@###$%%=%=======;::;::::;;---&#+-gn7m", "mynk*XXooOO+$$#$%%%%=%===;;:;:::::;:-$#XooX-fn5m", "mynk*XXOOO@@$$$$%%=%====;::::>::;*#OXXXXXXX*dn5m", "mrnk*oOO@@@#$$$$%=====::::>>>=%@OXOooXXXooo&dn3m", "mrnj*++@$$$$**$===-;;::>>:=@Ooo@XOOoo#o#OOO=fn3m", "menj*@#$$$$$**===;;:::=%@@@@@@O@#O#Oo#o#++@;gn2m", "menj*$$$$&**===;:;=*#@@@@@@@@@@@#######o##%>gn2m", "menh*$$%**===;=*%###########%@@@###$####$%=,gn1m", "m0nj=%***=**&$$$%$$$%$$%$$$$%$$$$$$$$$$%*;:2hn<m", "m0nj****&&&$$&&$%%%%%%%%%%%%%%%%$$*$%%%*;>13gn,m", "m0ng****&&&&&&&&&&&&*%*%*%%*%******%**-:,136kz;m", "m0nh***$&&&&&&&&&&&&%**********%*$***;:,1358r7*m", "m8ng*&&&&&&&&&*$&*&&&&$=$=$=&&&&&&**=:,<11>$65mm", "m7ng*&&&&&&&&&**&&&&&&**=$-$&&&&&&*-:,1..&1wi:mm", "m7ng&&&&&&&&=$*$&&&&&***$$$$&&&***=>,1<onxsi6*mm", "m6nf*&&&&&*&$***&&&&*$*$--$-&&&%*=;,13,:ztw9%mmm", "m5nf*%&&&&&&=$=$%*&&**%*$$&&&&**=>,225;5srw%mmmm", "m4nf3*&&**&&$-$-*******%$;&&*&*->,2365+ui7$mmmmm", "m3nsfffdddsddaffssssdassgaaaassddfgjg4wu;ommmmmm", "m3nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnvq3<$.mmmmmmm", "mm2211111,<,,,,,,>>>>:::;::;----=====@mmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"};
+
+gboolean is_color_parsable (const gchar* spec) {
+ gboolean result = FALSE;
+ GdkColor color = {0};
+ const gchar* _tmp0_ = NULL;
+ GdkColor _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+#line 117 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (spec != NULL, FALSE);
+#line 119 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = spec;
+#line 119 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = gdk_color_parse (_tmp0_, &_tmp1_);
+#line 119 "/home/jens/Source/shotwell/src/util/image.vala"
+ color = _tmp1_;
+#line 119 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp2_;
+#line 119 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 180 "image.c"
+}
+
+
+void parse_color (const gchar* spec, GdkRGBA* result) {
+ const gchar* _tmp0_ = NULL;
+ GdkRGBA _tmp1_ = {0};
+#line 122 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (spec != NULL);
+#line 123 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = spec;
+#line 123 "/home/jens/Source/shotwell/src/util/image.vala"
+ fetch_color (_tmp0_, &_tmp1_);
+#line 123 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _tmp1_;
+#line 123 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 197 "image.c"
+}
+
+
+void fetch_color (const gchar* spec, GdkRGBA* result) {
+ GdkRGBA rgba = {0};
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+#line 126 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (spec != NULL);
+#line 127 "/home/jens/Source/shotwell/src/util/image.vala"
+ memset (&rgba, 0, sizeof (GdkRGBA));
+#line 128 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = spec;
+#line 128 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = gdk_rgba_parse (&rgba, _tmp0_);
+#line 128 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!_tmp1_) {
+#line 215 "image.c"
+ const gchar* _tmp2_ = NULL;
+#line 129 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = spec;
+#line 129 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_error ("image.vala:129: Can't parse color %s", _tmp2_);
+#line 221 "image.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = rgba;
+#line 131 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 227 "image.c"
+}
+
+
+void set_source_color_from_string (cairo_t* ctx, const gchar* spec) {
+ GdkRGBA rgba = {0};
+ const gchar* _tmp0_ = NULL;
+ GdkRGBA _tmp1_ = {0};
+ cairo_t* _tmp2_ = NULL;
+ GdkRGBA _tmp3_ = {0};
+ gdouble _tmp4_ = 0.0;
+ GdkRGBA _tmp5_ = {0};
+ gdouble _tmp6_ = 0.0;
+ GdkRGBA _tmp7_ = {0};
+ gdouble _tmp8_ = 0.0;
+ GdkRGBA _tmp9_ = {0};
+ gdouble _tmp10_ = 0.0;
+#line 134 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (ctx != NULL);
+#line 134 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (spec != NULL);
+#line 135 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = spec;
+#line 135 "/home/jens/Source/shotwell/src/util/image.vala"
+ fetch_color (_tmp0_, &_tmp1_);
+#line 135 "/home/jens/Source/shotwell/src/util/image.vala"
+ rgba = _tmp1_;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = ctx;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = rgba;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = _tmp3_.red;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = rgba;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp5_.green;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = rgba;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_.blue;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = rgba;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = _tmp9_.alpha;
+#line 136 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_set_source_rgba (_tmp2_, _tmp4_, _tmp6_, _tmp8_, _tmp10_);
+#line 274 "image.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 147 "/home/jens/Source/shotwell/src/util/image.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 281 "image.c"
+}
+
+
+GdkPixbuf* get_placeholder_pixbuf (void) {
+ GdkPixbuf* result = NULL;
+ GdkPixbuf* pixbuf = NULL;
+ GError * _inner_error_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/util/image.vala"
+ pixbuf = NULL;
+#line 291 "image.c"
+ {
+ GtkIconTheme* icon_theme = NULL;
+ GtkIconTheme* _tmp0_ = NULL;
+ GtkIconTheme* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+ GdkPixbuf* _tmp4_ = NULL;
+#line 147 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = gtk_icon_theme_get_default ();
+#line 147 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = _g_object_ref0 (_tmp0_);
+#line 147 "/home/jens/Source/shotwell/src/util/image.vala"
+ icon_theme = _tmp1_;
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = gtk_icon_theme_load_icon (icon_theme, "image-missing", (gint) GTK_ICON_SIZE_DIALOG, 0, &_inner_error_);
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _tmp3_;
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ _g_object_unref0 (icon_theme);
+#line 313 "image.c"
+ goto __catch4_g_error;
+ }
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = _tmp2_;
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = NULL;
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ _g_object_unref0 (pixbuf);
+#line 148 "/home/jens/Source/shotwell/src/util/image.vala"
+ pixbuf = _tmp4_;
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ _g_object_unref0 (_tmp2_);
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ _g_object_unref0 (icon_theme);
+#line 328 "image.c"
+ }
+ goto __finally4;
+ __catch4_g_error:
+ {
+ GError* _error_ = NULL;
+ GdkPixbuf* _tmp5_ = NULL;
+ GError* _tmp6_ = NULL;
+ const gchar* _tmp7_ = NULL;
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ _error_ = _inner_error_;
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ _inner_error_ = NULL;
+#line 151 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = gdk_pixbuf_new_from_xpm_data (fallback_image_missing);
+#line 151 "/home/jens/Source/shotwell/src/util/image.vala"
+ _g_object_unref0 (pixbuf);
+#line 151 "/home/jens/Source/shotwell/src/util/image.vala"
+ pixbuf = _tmp5_;
+#line 152 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _error_;
+#line 152 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = _tmp6_->message;
+#line 152 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_warning ("image.vala:152: Could not load icon from theme: %s", _tmp7_);
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ _g_error_free0 (_error_);
+#line 355 "image.c"
+ }
+ __finally4:
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ _g_object_unref0 (pixbuf);
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_clear_error (&_inner_error_);
+#line 146 "/home/jens/Source/shotwell/src/util/image.vala"
+ return NULL;
+#line 368 "image.c"
+ }
+#line 155 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = pixbuf;
+#line 155 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 374 "image.c"
+}
+
+
+GdkPixbuf* scale_pixbuf (GdkPixbuf* pixbuf, gint scale, GdkInterpType interp, gboolean scale_up) {
+ GdkPixbuf* result = NULL;
+ Dimensions original = {0};
+ GdkPixbuf* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ Dimensions scaled = {0};
+ gint _tmp2_ = 0;
+ gboolean _tmp3_ = FALSE;
+ Dimensions _tmp4_ = {0};
+ gboolean _tmp5_ = FALSE;
+ Dimensions _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ Dimensions _tmp16_ = {0};
+ GdkPixbuf* _tmp17_ = NULL;
+ Dimensions _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ Dimensions _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkInterpType _tmp22_ = 0;
+ GdkPixbuf* _tmp23_ = NULL;
+#line 158 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 159 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = pixbuf;
+#line 159 "/home/jens/Source/shotwell/src/util/image.vala"
+ dimensions_for_pixbuf (_tmp0_, &_tmp1_);
+#line 159 "/home/jens/Source/shotwell/src/util/image.vala"
+ original = _tmp1_;
+#line 160 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = scale;
+#line 160 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = scale_up;
+#line 160 "/home/jens/Source/shotwell/src/util/image.vala"
+ dimensions_get_scaled (&original, _tmp2_, _tmp3_, &_tmp4_);
+#line 160 "/home/jens/Source/shotwell/src/util/image.vala"
+ scaled = _tmp4_;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = original;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = _tmp6_.width;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = scaled;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = _tmp8_.width;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp7_ == _tmp9_) {
+#line 426 "image.c"
+ Dimensions _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Dimensions _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = original;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = _tmp10_.height;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = scaled;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = _tmp12_.height;
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = _tmp11_ == _tmp13_;
+#line 441 "image.c"
+ } else {
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = FALSE;
+#line 445 "image.c"
+ }
+#line 161 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp5_) {
+#line 449 "image.c"
+ GdkPixbuf* _tmp14_ = NULL;
+ GdkPixbuf* _tmp15_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = pixbuf;
+#line 162 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = _g_object_ref0 (_tmp14_);
+#line 162 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp15_;
+#line 162 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 460 "image.c"
+ }
+#line 165 "/home/jens/Source/shotwell/src/util/image.vala"
+ dimensions_with_min (&scaled, MIN_SCALED_WIDTH, MIN_SCALED_HEIGHT, &_tmp16_);
+#line 165 "/home/jens/Source/shotwell/src/util/image.vala"
+ scaled = _tmp16_;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = pixbuf;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = scaled;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = _tmp18_.width;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = scaled;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_ = _tmp20_.height;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp22_ = interp;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp23_ = gdk_pixbuf_scale_simple (_tmp17_, _tmp19_, _tmp21_, _tmp22_);
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp23_;
+#line 167 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 484 "image.c"
+}
+
+
+GdkPixbuf* resize_pixbuf (GdkPixbuf* pixbuf, Dimensions* resized, GdkInterpType interp) {
+ GdkPixbuf* result = NULL;
+ Dimensions original = {0};
+ GdkPixbuf* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ gboolean _tmp2_ = FALSE;
+ Dimensions _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ Dimensions _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp13_ = {0};
+ GdkPixbuf* _tmp14_ = NULL;
+ Dimensions _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ GdkInterpType _tmp19_ = 0;
+ GdkPixbuf* _tmp20_ = NULL;
+#line 170 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+#line 170 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (resized != NULL, NULL);
+#line 171 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = pixbuf;
+#line 171 "/home/jens/Source/shotwell/src/util/image.vala"
+ dimensions_for_pixbuf (_tmp0_, &_tmp1_);
+#line 171 "/home/jens/Source/shotwell/src/util/image.vala"
+ original = _tmp1_;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = original;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = _tmp3_.width;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = *resized;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp5_.width;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp4_ == _tmp6_) {
+#line 526 "image.c"
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ Dimensions _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = original;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_.height;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = *resized;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = _tmp9_.height;
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _tmp8_ == _tmp10_;
+#line 541 "image.c"
+ } else {
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = FALSE;
+#line 545 "image.c"
+ }
+#line 172 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp2_) {
+#line 549 "image.c"
+ GdkPixbuf* _tmp11_ = NULL;
+ GdkPixbuf* _tmp12_ = NULL;
+#line 173 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = pixbuf;
+#line 173 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = _g_object_ref0 (_tmp11_);
+#line 173 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp12_;
+#line 173 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 560 "image.c"
+ }
+#line 176 "/home/jens/Source/shotwell/src/util/image.vala"
+ dimensions_with_min (resized, MIN_SCALED_WIDTH, MIN_SCALED_HEIGHT, &_tmp13_);
+#line 176 "/home/jens/Source/shotwell/src/util/image.vala"
+ *resized = _tmp13_;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = pixbuf;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = *resized;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = _tmp15_.width;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = *resized;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = _tmp17_.height;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = interp;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = gdk_pixbuf_scale_simple (_tmp14_, _tmp16_, _tmp18_, _tmp19_);
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp20_;
+#line 178 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 584 "image.c"
+}
+
+
+void draw_rounded_corners_filled (cairo_t* ctx, Dimensions* dim, GdkPoint* origin, gdouble radius_proportion) {
+ cairo_t* _tmp0_ = NULL;
+ Dimensions _tmp1_ = {0};
+ GdkPoint _tmp2_ = {0};
+ gdouble _tmp3_ = 0.0;
+ cairo_t* _tmp4_ = NULL;
+#line 183 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (ctx != NULL);
+#line 183 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (dim != NULL);
+#line 183 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (origin != NULL);
+#line 185 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = ctx;
+#line 185 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = *dim;
+#line 185 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = *origin;
+#line 185 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = radius_proportion;
+#line 185 "/home/jens/Source/shotwell/src/util/image.vala"
+ context_rounded_corners (_tmp0_, &_tmp1_, &_tmp2_, _tmp3_);
+#line 186 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = ctx;
+#line 186 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_paint (_tmp4_);
+#line 614 "image.c"
+}
+
+
+void context_rounded_corners (cairo_t* cx, Dimensions* dim, GdkPoint* origin, gdouble radius_proportion) {
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble left = 0.0;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gdouble top = 0.0;
+ GdkPoint _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gdouble right = 0.0;
+ GdkPoint _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ Dimensions _tmp8_ = {0};
+ gint _tmp9_ = 0;
+ gdouble bottom = 0.0;
+ GdkPoint _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Dimensions _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gdouble radius = 0.0;
+ gint _tmp14_ = 0;
+ gdouble _tmp15_ = 0.0;
+ cairo_t* _tmp16_ = NULL;
+ cairo_t* _tmp17_ = NULL;
+ cairo_t* _tmp18_ = NULL;
+ cairo_t* _tmp19_ = NULL;
+ cairo_t* _tmp20_ = NULL;
+ cairo_t* _tmp21_ = NULL;
+#line 189 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (cx != NULL);
+#line 189 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (dim != NULL);
+#line 189 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (origin != NULL);
+#line 192 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = radius_proportion;
+#line 192 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = CLAMP (_tmp0_, 2.0, 100.0);
+#line 192 "/home/jens/Source/shotwell/src/util/image.vala"
+ radius_proportion = _tmp1_;
+#line 194 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = *origin;
+#line 194 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = _tmp2_.x;
+#line 194 "/home/jens/Source/shotwell/src/util/image.vala"
+ left = (gdouble) _tmp3_;
+#line 195 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = *origin;
+#line 195 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = _tmp4_.y;
+#line 195 "/home/jens/Source/shotwell/src/util/image.vala"
+ top = (gdouble) _tmp5_;
+#line 196 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = *origin;
+#line 196 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = _tmp6_.x;
+#line 196 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = *dim;
+#line 196 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = _tmp8_.width;
+#line 196 "/home/jens/Source/shotwell/src/util/image.vala"
+ right = (gdouble) (_tmp7_ + _tmp9_);
+#line 197 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = *origin;
+#line 197 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = _tmp10_.y;
+#line 197 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = *dim;
+#line 197 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = _tmp12_.height;
+#line 197 "/home/jens/Source/shotwell/src/util/image.vala"
+ bottom = (gdouble) (_tmp11_ + _tmp13_);
+#line 200 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = dimensions_minor_axis (dim);
+#line 200 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = radius_proportion;
+#line 200 "/home/jens/Source/shotwell/src/util/image.vala"
+ radius = ((gdouble) _tmp14_) / _tmp15_;
+#line 204 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = cx;
+#line 204 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_move_to (_tmp16_, left, top);
+#line 205 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = cx;
+#line 205 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_arc (_tmp17_, right - radius, top + radius, radius, -90 * DEGREE, 0 * DEGREE);
+#line 206 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = cx;
+#line 206 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_arc (_tmp18_, right - radius, bottom - radius, radius, 0 * DEGREE, 90 * DEGREE);
+#line 207 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = cx;
+#line 207 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_arc (_tmp19_, left + radius, bottom - radius, radius, 90 * DEGREE, 180 * DEGREE);
+#line 208 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = cx;
+#line 208 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_arc (_tmp20_, left + radius, top + radius, radius, 180 * DEGREE, 270 * DEGREE);
+#line 209 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_ = cx;
+#line 209 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_clip (_tmp21_);
+#line 720 "image.c"
+}
+
+
+inline guchar shift_color_byte (gint b, gint shift) {
+ guchar result = '\0';
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 213 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = b;
+#line 213 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = shift;
+#line 213 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = CLAMP (_tmp0_ + _tmp1_, 0, 255);
+#line 213 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = (guchar) _tmp2_;
+#line 213 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 739 "image.c"
+}
+
+
+void shift_colors (GdkPixbuf* pixbuf, gint red, gint green, gint blue, gint alpha) {
+ gboolean _tmp0_ = FALSE;
+ gint _tmp1_ = 0;
+ gboolean _tmp3_ = FALSE;
+ gint _tmp4_ = 0;
+ gboolean _tmp6_ = FALSE;
+ gint _tmp7_ = 0;
+ gboolean _tmp9_ = FALSE;
+ gint _tmp10_ = 0;
+ gint width = 0;
+ GdkPixbuf* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ gint height = 0;
+ GdkPixbuf* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gint rowstride = 0;
+ GdkPixbuf* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint channels = 0;
+ GdkPixbuf* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ guchar* pixels = NULL;
+ GdkPixbuf* _tmp20_ = NULL;
+ guint8* _tmp21_ = NULL;
+ gint _tmp22_ = 0;
+ GdkPixbuf* _tmp23_ = NULL;
+ GdkColorspace _tmp24_ = 0;
+ GdkPixbuf* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+#line 216 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 217 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = red;
+#line 217 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp1_ >= -255) {
+#line 778 "image.c"
+ gint _tmp2_ = 0;
+#line 217 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = red;
+#line 217 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = _tmp2_ <= 255;
+#line 784 "image.c"
+ } else {
+#line 217 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = FALSE;
+#line 788 "image.c"
+ }
+#line 217 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp0_, "red >= -255 && red <= 255");
+#line 218 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = green;
+#line 218 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp4_ >= -255) {
+#line 796 "image.c"
+ gint _tmp5_ = 0;
+#line 218 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = green;
+#line 218 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = _tmp5_ <= 255;
+#line 802 "image.c"
+ } else {
+#line 218 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = FALSE;
+#line 806 "image.c"
+ }
+#line 218 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp3_, "green >= -255 && green <= 255");
+#line 219 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = blue;
+#line 219 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp7_ >= -255) {
+#line 814 "image.c"
+ gint _tmp8_ = 0;
+#line 219 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = blue;
+#line 219 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp8_ <= 255;
+#line 820 "image.c"
+ } else {
+#line 219 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = FALSE;
+#line 824 "image.c"
+ }
+#line 219 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp6_, "blue >= -255 && blue <= 255");
+#line 220 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = alpha;
+#line 220 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp10_ >= -255) {
+#line 832 "image.c"
+ gint _tmp11_ = 0;
+#line 220 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = alpha;
+#line 220 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = _tmp11_ <= 255;
+#line 838 "image.c"
+ } else {
+#line 220 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = FALSE;
+#line 842 "image.c"
+ }
+#line 220 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp9_, "alpha >= -255 && alpha <= 255");
+#line 222 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = pixbuf;
+#line 222 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = gdk_pixbuf_get_width (_tmp12_);
+#line 222 "/home/jens/Source/shotwell/src/util/image.vala"
+ width = _tmp13_;
+#line 223 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = pixbuf;
+#line 223 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = gdk_pixbuf_get_height (_tmp14_);
+#line 223 "/home/jens/Source/shotwell/src/util/image.vala"
+ height = _tmp15_;
+#line 224 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = pixbuf;
+#line 224 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = gdk_pixbuf_get_rowstride (_tmp16_);
+#line 224 "/home/jens/Source/shotwell/src/util/image.vala"
+ rowstride = _tmp17_;
+#line 225 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = pixbuf;
+#line 225 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = gdk_pixbuf_get_n_channels (_tmp18_);
+#line 225 "/home/jens/Source/shotwell/src/util/image.vala"
+ channels = _tmp19_;
+#line 226 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = pixbuf;
+#line 226 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_ = gdk_pixbuf_get_pixels (_tmp20_);
+#line 226 "/home/jens/Source/shotwell/src/util/image.vala"
+ pixels = _tmp21_;
+#line 228 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp22_ = channels;
+#line 228 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp22_ >= 3, "channels >= 3");
+#line 229 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp23_ = pixbuf;
+#line 229 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp24_ = gdk_pixbuf_get_colorspace (_tmp23_);
+#line 229 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp24_ == GDK_COLORSPACE_RGB, "pixbuf.get_colorspace() == Gdk.Colorspace.RGB");
+#line 230 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp25_ = pixbuf;
+#line 230 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp26_ = gdk_pixbuf_get_bits_per_sample (_tmp25_);
+#line 230 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp26_ == 8, "pixbuf.get_bits_per_sample() == 8");
+#line 892 "image.c"
+ {
+ gint y = 0;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ y = 0;
+#line 897 "image.c"
+ {
+ gboolean _tmp27_ = FALSE;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp27_ = TRUE;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ while (TRUE) {
+#line 904 "image.c"
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gint y_offset = 0;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!_tmp27_) {
+#line 912 "image.c"
+ gint _tmp28_ = 0;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp28_ = y;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ y = _tmp28_ + 1;
+#line 918 "image.c"
+ }
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp27_ = FALSE;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp29_ = y;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp30_ = height;
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!(_tmp29_ < _tmp30_)) {
+#line 232 "/home/jens/Source/shotwell/src/util/image.vala"
+ break;
+#line 930 "image.c"
+ }
+#line 233 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp31_ = y;
+#line 233 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp32_ = rowstride;
+#line 233 "/home/jens/Source/shotwell/src/util/image.vala"
+ y_offset = _tmp31_ * _tmp32_;
+#line 938 "image.c"
+ {
+ gint x = 0;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ x = 0;
+#line 943 "image.c"
+ {
+ gboolean _tmp33_ = FALSE;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp33_ = TRUE;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ while (TRUE) {
+#line 950 "image.c"
+ gint _tmp35_ = 0;
+ gint _tmp36_ = 0;
+ gint offset = 0;
+ gint _tmp37_ = 0;
+ gint _tmp38_ = 0;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ gint _tmp49_ = 0;
+ gint _tmp58_ = 0;
+ gboolean _tmp67_ = FALSE;
+ gint _tmp68_ = 0;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!_tmp33_) {
+#line 964 "image.c"
+ gint _tmp34_ = 0;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp34_ = x;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ x = _tmp34_ + 1;
+#line 970 "image.c"
+ }
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp33_ = FALSE;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp35_ = x;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp36_ = width;
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!(_tmp35_ < _tmp36_)) {
+#line 235 "/home/jens/Source/shotwell/src/util/image.vala"
+ break;
+#line 982 "image.c"
+ }
+#line 236 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp37_ = y_offset;
+#line 236 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp38_ = x;
+#line 236 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp39_ = channels;
+#line 236 "/home/jens/Source/shotwell/src/util/image.vala"
+ offset = _tmp37_ + (_tmp38_ * _tmp39_);
+#line 238 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp40_ = red;
+#line 238 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp40_ != 0) {
+#line 996 "image.c"
+ guchar* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ guchar* _tmp43_ = NULL;
+ gint _tmp44_ = 0;
+ guchar _tmp45_ = '\0';
+ gint _tmp46_ = 0;
+ guchar _tmp47_ = '\0';
+ guchar _tmp48_ = '\0';
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp41_ = pixels;
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp42_ = offset;
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp43_ = pixels;
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp44_ = offset;
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp45_ = _tmp43_[_tmp44_];
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp46_ = red;
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp47_ = shift_color_byte ((gint) _tmp45_, _tmp46_);
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp41_[_tmp42_] = _tmp47_;
+#line 239 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp48_ = _tmp41_[_tmp42_];
+#line 1023 "image.c"
+ }
+#line 241 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp49_ = green;
+#line 241 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp49_ != 0) {
+#line 1029 "image.c"
+ guchar* _tmp50_ = NULL;
+ gint _tmp51_ = 0;
+ guchar* _tmp52_ = NULL;
+ gint _tmp53_ = 0;
+ guchar _tmp54_ = '\0';
+ gint _tmp55_ = 0;
+ guchar _tmp56_ = '\0';
+ guchar _tmp57_ = '\0';
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp50_ = pixels;
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp51_ = offset;
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp52_ = pixels;
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp53_ = offset;
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp54_ = _tmp52_[_tmp53_ + 1];
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp55_ = green;
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp56_ = shift_color_byte ((gint) _tmp54_, _tmp55_);
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp50_[_tmp51_ + 1] = _tmp56_;
+#line 242 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp57_ = _tmp50_[_tmp51_ + 1];
+#line 1056 "image.c"
+ }
+#line 244 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp58_ = blue;
+#line 244 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp58_ != 0) {
+#line 1062 "image.c"
+ guchar* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ guchar* _tmp61_ = NULL;
+ gint _tmp62_ = 0;
+ guchar _tmp63_ = '\0';
+ gint _tmp64_ = 0;
+ guchar _tmp65_ = '\0';
+ guchar _tmp66_ = '\0';
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp59_ = pixels;
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp60_ = offset;
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp61_ = pixels;
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp62_ = offset;
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp63_ = _tmp61_[_tmp62_ + 2];
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp64_ = blue;
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp65_ = shift_color_byte ((gint) _tmp63_, _tmp64_);
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp59_[_tmp60_ + 2] = _tmp65_;
+#line 245 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp66_ = _tmp59_[_tmp60_ + 2];
+#line 1089 "image.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp68_ = alpha;
+#line 247 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp68_ != 0) {
+#line 1095 "image.c"
+ gint _tmp69_ = 0;
+#line 247 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp69_ = channels;
+#line 247 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp67_ = _tmp69_ >= 4;
+#line 1101 "image.c"
+ } else {
+#line 247 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp67_ = FALSE;
+#line 1105 "image.c"
+ }
+#line 247 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp67_) {
+#line 1109 "image.c"
+ guchar* _tmp70_ = NULL;
+ gint _tmp71_ = 0;
+ guchar* _tmp72_ = NULL;
+ gint _tmp73_ = 0;
+ guchar _tmp74_ = '\0';
+ gint _tmp75_ = 0;
+ guchar _tmp76_ = '\0';
+ guchar _tmp77_ = '\0';
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp70_ = pixels;
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp71_ = offset;
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp72_ = pixels;
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp73_ = offset;
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp74_ = _tmp72_[_tmp73_ + 3];
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp75_ = alpha;
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp76_ = shift_color_byte ((gint) _tmp74_, _tmp75_);
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp70_[_tmp71_ + 3] = _tmp76_;
+#line 248 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp77_ = _tmp70_[_tmp71_ + 3];
+#line 1136 "image.c"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+void dim_pixbuf (GdkPixbuf* pixbuf) {
+ PixelTransformer* transformer = NULL;
+ PixelTransformer* _tmp0_ = NULL;
+ SaturationTransformation* sat = NULL;
+ SaturationTransformation* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+ GdkPixbuf* _tmp3_ = NULL;
+#line 253 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 254 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = pixel_transformer_new ();
+#line 254 "/home/jens/Source/shotwell/src/util/image.vala"
+ transformer = _tmp0_;
+#line 255 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = saturation_transformation_new (SATURATION_TRANSFORMATION_MIN_PARAMETER);
+#line 255 "/home/jens/Source/shotwell/src/util/image.vala"
+ sat = _tmp1_;
+#line 256 "/home/jens/Source/shotwell/src/util/image.vala"
+ pixel_transformer_attach_transformation (transformer, G_TYPE_CHECK_INSTANCE_CAST (sat, TYPE_PIXEL_TRANSFORMATION, PixelTransformation));
+#line 257 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = pixbuf;
+#line 257 "/home/jens/Source/shotwell/src/util/image.vala"
+ pixel_transformer_transform_pixbuf (transformer, _tmp2_, NULL);
+#line 258 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = pixbuf;
+#line 258 "/home/jens/Source/shotwell/src/util/image.vala"
+ shift_colors (_tmp3_, 0, 0, 0, -100);
+#line 253 "/home/jens/Source/shotwell/src/util/image.vala"
+ _pixel_transformation_unref0 (sat);
+#line 253 "/home/jens/Source/shotwell/src/util/image.vala"
+ _pixel_transformer_unref0 (transformer);
+#line 1178 "image.c"
+}
+
+
+gboolean coord_in_rectangle (gint x, gint y, GdkRectangle* rect) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+#line 261 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (rect != NULL, FALSE);
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = x;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = *rect;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = _tmp4_.x;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp3_ >= _tmp5_) {
+#line 1200 "image.c"
+ gint _tmp6_ = 0;
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = x;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = *rect;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_.x;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = *rect;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = _tmp9_.width;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _tmp6_ < (_tmp8_ + _tmp10_);
+#line 1218 "image.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = FALSE;
+#line 1222 "image.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp2_) {
+#line 1226 "image.c"
+ gint _tmp11_ = 0;
+ GdkRectangle _tmp12_ = {0};
+ gint _tmp13_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = y;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = *rect;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = _tmp12_.y;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = _tmp11_ >= _tmp13_;
+#line 1238 "image.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = FALSE;
+#line 1242 "image.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp1_) {
+#line 1246 "image.c"
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = y;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = *rect;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = _tmp15_.y;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = *rect;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = _tmp17_.height;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = _tmp14_ <= (_tmp16_ + _tmp18_);
+#line 1264 "image.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = FALSE;
+#line 1268 "image.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp0_;
+#line 262 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 1274 "image.c"
+}
+
+
+gboolean rectangles_equal (GdkRectangle* a, GdkRectangle* b) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ gboolean _tmp2_ = FALSE;
+ GdkRectangle _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 265 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (a != NULL, FALSE);
+#line 265 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (b != NULL, FALSE);
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = *a;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = _tmp3_.x;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = *b;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp5_.x;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp4_ == _tmp6_) {
+#line 1301 "image.c"
+ GdkRectangle _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ GdkRectangle _tmp9_ = {0};
+ gint _tmp10_ = 0;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = *a;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_.y;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = *b;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = _tmp9_.y;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _tmp8_ == _tmp10_;
+#line 1316 "image.c"
+ } else {
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = FALSE;
+#line 1320 "image.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp2_) {
+#line 1324 "image.c"
+ GdkRectangle _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkRectangle _tmp13_ = {0};
+ gint _tmp14_ = 0;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = *a;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = _tmp11_.width;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = *b;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = _tmp13_.width;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = _tmp12_ == _tmp14_;
+#line 1339 "image.c"
+ } else {
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = FALSE;
+#line 1343 "image.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp1_) {
+#line 1347 "image.c"
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ GdkRectangle _tmp17_ = {0};
+ gint _tmp18_ = 0;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = *a;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = _tmp15_.height;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = *b;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = _tmp17_.height;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = _tmp16_ == _tmp18_;
+#line 1362 "image.c"
+ } else {
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = FALSE;
+#line 1366 "image.c"
+ }
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp0_;
+#line 266 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 1372 "image.c"
+}
+
+
+gchar* rectangle_to_string (GdkRectangle* rect) {
+ gchar* result = NULL;
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ GdkRectangle _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkRectangle _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ GdkRectangle _tmp6_ = {0};
+ gint _tmp7_ = 0;
+ gchar* _tmp8_ = NULL;
+#line 269 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (rect != NULL, NULL);
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = *rect;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = _tmp0_.x;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = *rect;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = _tmp2_.y;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = *rect;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = _tmp4_.width;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = *rect;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = _tmp6_.height;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = g_strdup_printf ("%d,%d %dx%d", _tmp1_, _tmp3_, _tmp5_, _tmp7_);
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp8_;
+#line 270 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 1411 "image.c"
+}
+
+
+void clamp_rectangle (GdkRectangle* original, Dimensions* max, GdkRectangle* result) {
+ GdkRectangle rect = {0};
+ GdkRectangle _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ Dimensions _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ GdkRectangle _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ Dimensions _tmp7_ = {0};
+ gint _tmp8_ = 0;
+ gint _tmp9_ = 0;
+ GdkRectangle _tmp10_ = {0};
+ gint _tmp11_ = 0;
+ Dimensions _tmp12_ = {0};
+ gint _tmp13_ = 0;
+ gint _tmp14_ = 0;
+ GdkRectangle _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ Dimensions _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+#line 273 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (original != NULL);
+#line 273 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (max != NULL);
+#line 274 "/home/jens/Source/shotwell/src/util/image.vala"
+ memset (&rect, 0, sizeof (GdkRectangle));
+#line 275 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = *original;
+#line 275 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = _tmp0_.x;
+#line 275 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = *max;
+#line 275 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = _tmp2_.width;
+#line 275 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = CLAMP (_tmp1_, 0, _tmp3_);
+#line 275 "/home/jens/Source/shotwell/src/util/image.vala"
+ rect.x = _tmp4_;
+#line 276 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = *original;
+#line 276 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp5_.y;
+#line 276 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = *max;
+#line 276 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_.height;
+#line 276 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = CLAMP (_tmp6_, 0, _tmp8_);
+#line 276 "/home/jens/Source/shotwell/src/util/image.vala"
+ rect.y = _tmp9_;
+#line 277 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = *original;
+#line 277 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = _tmp10_.width;
+#line 277 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = *max;
+#line 277 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = _tmp12_.width;
+#line 277 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = CLAMP (_tmp11_, 0, _tmp13_);
+#line 277 "/home/jens/Source/shotwell/src/util/image.vala"
+ rect.width = _tmp14_;
+#line 278 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = *original;
+#line 278 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = _tmp15_.height;
+#line 278 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = *max;
+#line 278 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = _tmp17_.height;
+#line 278 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = CLAMP (_tmp16_, 0, _tmp18_);
+#line 278 "/home/jens/Source/shotwell/src/util/image.vala"
+ rect.height = _tmp19_;
+#line 280 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = rect;
+#line 280 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 1495 "image.c"
+}
+
+
+void scale_point (GdkPoint* p, gdouble factor, GdkPoint* result) {
+ GdkPoint _result_ = {0};
+ GdkPoint _tmp0_ = {0};
+ gdouble _tmp1_ = 0.0;
+ GdkPoint _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ gdouble _tmp4_ = 0.0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+#line 283 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (p != NULL);
+#line 284 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_.x = 0;
+#line 284 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_ = _tmp0_;
+#line 285 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = factor;
+#line 285 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = *p;
+#line 285 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = _tmp2_.x;
+#line 285 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_.x = (gint) ((_tmp1_ * _tmp3_) + 0.5);
+#line 286 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = factor;
+#line 286 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = *p;
+#line 286 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp5_.y;
+#line 286 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_.y = (gint) ((_tmp4_ * _tmp6_) + 0.5);
+#line 288 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _result_;
+#line 288 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 1534 "image.c"
+}
+
+
+void add_points (GdkPoint* p1, GdkPoint* p2, GdkPoint* result) {
+ GdkPoint _result_ = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkPoint _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkPoint _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 291 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (p1 != NULL);
+#line 291 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (p2 != NULL);
+#line 292 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_.x = 0;
+#line 292 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_ = _tmp0_;
+#line 293 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = *p1;
+#line 293 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _tmp1_.x;
+#line 293 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = *p2;
+#line 293 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = _tmp3_.x;
+#line 293 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_.x = _tmp2_ + _tmp4_;
+#line 294 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = *p1;
+#line 294 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp5_.y;
+#line 294 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = *p2;
+#line 294 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_.y;
+#line 294 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_.y = _tmp6_ + _tmp8_;
+#line 296 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _result_;
+#line 296 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 1581 "image.c"
+}
+
+
+void subtract_points (GdkPoint* p1, GdkPoint* p2, GdkPoint* result) {
+ GdkPoint _result_ = {0};
+ GdkPoint _tmp0_ = {0};
+ GdkPoint _tmp1_ = {0};
+ gint _tmp2_ = 0;
+ GdkPoint _tmp3_ = {0};
+ gint _tmp4_ = 0;
+ GdkPoint _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ GdkPoint _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 299 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (p1 != NULL);
+#line 299 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (p2 != NULL);
+#line 300 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_.x = 0;
+#line 300 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_ = _tmp0_;
+#line 301 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = *p1;
+#line 301 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _tmp1_.x;
+#line 301 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = *p2;
+#line 301 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = _tmp3_.x;
+#line 301 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_.x = _tmp2_ - _tmp4_;
+#line 302 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = *p1;
+#line 302 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = _tmp5_.y;
+#line 302 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = *p2;
+#line 302 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_.y;
+#line 302 "/home/jens/Source/shotwell/src/util/image.vala"
+ _result_.y = _tmp6_ - _tmp8_;
+#line 304 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _result_;
+#line 304 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 1628 "image.c"
+}
+
+
+void fix_cairo_pixbuf (GdkPixbuf* pixbuf) {
+ guchar* gdk_pixels = NULL;
+ GdkPixbuf* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ void* _tmp2_ = NULL;
+#line 308 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (GDK_IS_PIXBUF (pixbuf));
+#line 309 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = pixbuf;
+#line 309 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = gdk_pixbuf_get_pixels (_tmp0_);
+#line 309 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _tmp1_;
+#line 309 "/home/jens/Source/shotwell/src/util/image.vala"
+ gdk_pixels = _tmp2_;
+#line 1647 "image.c"
+ {
+ gint j = 0;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ j = 0;
+#line 1652 "image.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = TRUE;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ while (TRUE) {
+#line 1659 "image.c"
+ gint _tmp5_ = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ guchar* p = NULL;
+ guchar* _tmp9_ = NULL;
+ guchar* end = NULL;
+ guchar* _tmp10_ = NULL;
+ GdkPixbuf* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+ guchar* _tmp26_ = NULL;
+ GdkPixbuf* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!_tmp3_) {
+#line 1677 "image.c"
+ gint _tmp4_ = 0;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = j;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ j = _tmp4_ + 1;
+#line 1683 "image.c"
+ }
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = FALSE;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = j;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = pixbuf;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = gdk_pixbuf_get_height (_tmp6_);
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_;
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!(_tmp5_ < _tmp8_)) {
+#line 310 "/home/jens/Source/shotwell/src/util/image.vala"
+ break;
+#line 1699 "image.c"
+ }
+#line 311 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = gdk_pixels;
+#line 311 "/home/jens/Source/shotwell/src/util/image.vala"
+ p = _tmp9_;
+#line 312 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = p;
+#line 312 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = pixbuf;
+#line 312 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = gdk_pixbuf_get_width (_tmp11_);
+#line 312 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = _tmp12_;
+#line 312 "/home/jens/Source/shotwell/src/util/image.vala"
+ end = _tmp10_ + (4 * _tmp13_);
+#line 314 "/home/jens/Source/shotwell/src/util/image.vala"
+ while (TRUE) {
+#line 1717 "image.c"
+ guchar* _tmp14_ = NULL;
+ guchar* _tmp15_ = NULL;
+ guchar tmp = '\0';
+ guchar* _tmp16_ = NULL;
+ guchar _tmp17_ = '\0';
+ guchar* _tmp18_ = NULL;
+ guchar* _tmp19_ = NULL;
+ guchar _tmp20_ = '\0';
+ guchar _tmp21_ = '\0';
+ guchar* _tmp22_ = NULL;
+ guchar _tmp23_ = '\0';
+ guchar _tmp24_ = '\0';
+ guchar* _tmp25_ = NULL;
+#line 314 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = p;
+#line 314 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = end;
+#line 314 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (!(_tmp14_ < _tmp15_)) {
+#line 314 "/home/jens/Source/shotwell/src/util/image.vala"
+ break;
+#line 1739 "image.c"
+ }
+#line 315 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = p;
+#line 315 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = _tmp16_[0];
+#line 315 "/home/jens/Source/shotwell/src/util/image.vala"
+ tmp = _tmp17_;
+#line 317 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = p;
+#line 317 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = p;
+#line 317 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = _tmp19_[2];
+#line 317 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_[0] = _tmp20_;
+#line 317 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_ = _tmp18_[0];
+#line 318 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp22_ = p;
+#line 318 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp23_ = tmp;
+#line 318 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp22_[2] = _tmp23_;
+#line 318 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp24_ = _tmp22_[2];
+#line 325 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp25_ = p;
+#line 325 "/home/jens/Source/shotwell/src/util/image.vala"
+ p = _tmp25_ + 4;
+#line 1769 "image.c"
+ }
+#line 328 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp26_ = gdk_pixels;
+#line 328 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp27_ = pixbuf;
+#line 328 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp28_ = gdk_pixbuf_get_rowstride (_tmp27_);
+#line 328 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp29_ = _tmp28_;
+#line 328 "/home/jens/Source/shotwell/src/util/image.vala"
+ gdk_pixels = _tmp26_ + _tmp29_;
+#line 1781 "image.c"
+ }
+ }
+ }
+}
+
+
+/**
+ * Finds the size of the smallest axially-aligned rectangle that could contain
+ * a rectangle src_width by src_height, rotated by angle.
+ *
+ * @param src_width The width of the incoming rectangle.
+ * @param src_height The height of the incoming rectangle.
+ * @param angle The amount to rotate by, given in degrees.
+ * @param dest_width The width of the computed rectangle.
+ * @param dest_height The height of the computed rectangle.
+ */
+void compute_arb_rotated_size (gdouble src_width, gdouble src_height, gdouble angle, gdouble* dest_width, gdouble* dest_height) {
+ gdouble _vala_dest_width = 0.0;
+ gdouble _vala_dest_height = 0.0;
+ gdouble _tmp0_ = 0.0;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ gdouble _tmp15_ = 0.0;
+#line 345 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = angle;
+#line 345 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = degrees_to_radians (_tmp0_);
+#line 345 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = fabs (_tmp1_);
+#line 345 "/home/jens/Source/shotwell/src/util/image.vala"
+ angle = _tmp2_;
+#line 346 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = angle;
+#line 346 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp3_ <= G_PI_2, "angle <= Math.PI_2");
+#line 347 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = src_width;
+#line 347 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = angle;
+#line 347 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = cos (_tmp5_);
+#line 347 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = src_height;
+#line 347 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = angle;
+#line 347 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = sin (_tmp8_);
+#line 347 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_dest_width = (_tmp4_ * _tmp6_) + (_tmp7_ * _tmp9_);
+#line 348 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = src_height;
+#line 348 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = angle;
+#line 348 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = cos (_tmp11_);
+#line 348 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = src_width;
+#line 348 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = angle;
+#line 348 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = sin (_tmp14_);
+#line 348 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_dest_height = (_tmp10_ * _tmp12_) + (_tmp13_ * _tmp15_);
+#line 342 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (dest_width) {
+#line 342 "/home/jens/Source/shotwell/src/util/image.vala"
+ *dest_width = _vala_dest_width;
+#line 1861 "image.c"
+ }
+#line 342 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (dest_height) {
+#line 342 "/home/jens/Source/shotwell/src/util/image.vala"
+ *dest_height = _vala_dest_height;
+#line 1867 "image.c"
+ }
+}
+
+
+/**
+ * @brief Rotates a pixbuf to an arbitrary angle, given in degrees, and returns the rotated pixbuf.
+ *
+ * @param source_pixbuf The source image that needs to be angled.
+ * @param angle The angle the source image should be rotated by.
+ */
+GdkPixbuf* rotate_arb (GdkPixbuf* source_pixbuf, gdouble angle) {
+ GdkPixbuf* result = NULL;
+ gdouble _tmp0_ = 0.0;
+ gdouble x_tmp = 0.0;
+ gdouble y_tmp = 0.0;
+ GdkPixbuf* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ GdkPixbuf* _tmp6_ = NULL;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gdouble _tmp11_ = 0.0;
+ GdkPixbuf* dest_pixbuf = NULL;
+ gdouble _tmp12_ = 0.0;
+ gdouble _tmp13_ = 0.0;
+ gdouble _tmp14_ = 0.0;
+ gdouble _tmp15_ = 0.0;
+ GdkPixbuf* _tmp16_ = NULL;
+ cairo_format_t _tmp17_ = 0;
+ GdkPixbuf* _tmp18_ = NULL;
+ gboolean _tmp19_ = FALSE;
+ gboolean _tmp20_ = FALSE;
+ cairo_surface_t* surface = NULL;
+ GdkPixbuf* _tmp21_ = NULL;
+ void* _tmp22_ = NULL;
+ void* _tmp23_ = NULL;
+ GdkPixbuf* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ GdkPixbuf* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+ GdkPixbuf* _tmp30_ = NULL;
+ gint _tmp31_ = 0;
+ gint _tmp32_ = 0;
+ cairo_surface_t* _tmp33_ = NULL;
+ cairo_t* context = NULL;
+ cairo_surface_t* _tmp34_ = NULL;
+ cairo_t* _tmp35_ = NULL;
+ cairo_t* _tmp36_ = NULL;
+ cairo_t* _tmp37_ = NULL;
+ GdkPixbuf* _tmp38_ = NULL;
+ gint _tmp39_ = 0;
+ gint _tmp40_ = 0;
+ GdkPixbuf* _tmp41_ = NULL;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ cairo_t* _tmp44_ = NULL;
+ cairo_t* _tmp45_ = NULL;
+ GdkPixbuf* _tmp46_ = NULL;
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ GdkPixbuf* _tmp49_ = NULL;
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ cairo_t* _tmp52_ = NULL;
+ gdouble _tmp53_ = 0.0;
+ gdouble _tmp54_ = 0.0;
+ cairo_t* _tmp55_ = NULL;
+ GdkPixbuf* _tmp56_ = NULL;
+ gint _tmp57_ = 0;
+ gint _tmp58_ = 0;
+ GdkPixbuf* _tmp59_ = NULL;
+ gint _tmp60_ = 0;
+ gint _tmp61_ = 0;
+ cairo_t* _tmp62_ = NULL;
+ GdkPixbuf* _tmp63_ = NULL;
+ cairo_t* _tmp64_ = NULL;
+ cairo_pattern_t* _tmp65_ = NULL;
+ cairo_t* _tmp66_ = NULL;
+ GdkPixbuf* _tmp67_ = NULL;
+#line 357 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_val_if_fail (GDK_IS_PIXBUF (source_pixbuf), NULL);
+#line 361 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = angle;
+#line 361 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp0_ == 0.0) {
+#line 1957 "image.c"
+ GdkPixbuf* _tmp1_ = NULL;
+ GdkPixbuf* _tmp2_ = NULL;
+#line 362 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = source_pixbuf;
+#line 362 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = _g_object_ref0 (_tmp1_);
+#line 362 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = _tmp2_;
+#line 362 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 1968 "image.c"
+ }
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = source_pixbuf;
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = gdk_pixbuf_get_width (_tmp3_);
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = _tmp4_;
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = source_pixbuf;
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = gdk_pixbuf_get_height (_tmp6_);
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = _tmp7_;
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = angle;
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ compute_arb_rotated_size ((gdouble) _tmp5_, (gdouble) _tmp8_, _tmp9_, &_tmp10_, &_tmp11_);
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ x_tmp = _tmp10_;
+#line 369 "/home/jens/Source/shotwell/src/util/image.vala"
+ y_tmp = _tmp11_;
+#line 372 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = x_tmp;
+#line 372 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = round (_tmp12_);
+#line 372 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = y_tmp;
+#line 372 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = round (_tmp14_);
+#line 372 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, (gint) _tmp13_, (gint) _tmp15_);
+#line 372 "/home/jens/Source/shotwell/src/util/image.vala"
+ dest_pixbuf = _tmp16_;
+#line 377 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = source_pixbuf;
+#line 377 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = gdk_pixbuf_get_has_alpha (_tmp18_);
+#line 377 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = _tmp19_;
+#line 377 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp20_) {
+#line 377 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = CAIRO_FORMAT_ARGB32;
+#line 2012 "image.c"
+ } else {
+#line 377 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = CAIRO_FORMAT_RGB24;
+#line 2016 "image.c"
+ }
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_ = dest_pixbuf;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp22_ = gdk_pixbuf_get_pixels (_tmp21_);
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp23_ = _tmp22_;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp24_ = dest_pixbuf;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp25_ = gdk_pixbuf_get_width (_tmp24_);
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp26_ = _tmp25_;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp27_ = dest_pixbuf;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp28_ = gdk_pixbuf_get_height (_tmp27_);
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp29_ = _tmp28_;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp30_ = dest_pixbuf;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp31_ = gdk_pixbuf_get_rowstride (_tmp30_);
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp32_ = _tmp31_;
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp33_ = cairo_image_surface_create_for_data ((guchar*) _tmp23_, _tmp17_, _tmp26_, _tmp29_, _tmp32_);
+#line 375 "/home/jens/Source/shotwell/src/util/image.vala"
+ surface = _tmp33_;
+#line 380 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp34_ = surface;
+#line 380 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp35_ = cairo_create (_tmp34_);
+#line 380 "/home/jens/Source/shotwell/src/util/image.vala"
+ context = _tmp35_;
+#line 382 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp36_ = context;
+#line 382 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_set_source_rgb (_tmp36_, (gdouble) 0, (gdouble) 0, (gdouble) 0);
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp37_ = context;
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp38_ = dest_pixbuf;
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp39_ = gdk_pixbuf_get_width (_tmp38_);
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp40_ = _tmp39_;
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp41_ = dest_pixbuf;
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp42_ = gdk_pixbuf_get_height (_tmp41_);
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp43_ = _tmp42_;
+#line 383 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_rectangle (_tmp37_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp40_, (gdouble) _tmp43_);
+#line 384 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp44_ = context;
+#line 384 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_fill (_tmp44_);
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp45_ = context;
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp46_ = dest_pixbuf;
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp47_ = gdk_pixbuf_get_width (_tmp46_);
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp48_ = _tmp47_;
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp49_ = dest_pixbuf;
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp50_ = gdk_pixbuf_get_height (_tmp49_);
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp51_ = _tmp50_;
+#line 386 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_translate (_tmp45_, (gdouble) (_tmp48_ / 2), (gdouble) (_tmp51_ / 2));
+#line 387 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp52_ = context;
+#line 387 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp53_ = angle;
+#line 387 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp54_ = degrees_to_radians (_tmp53_);
+#line 387 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_rotate (_tmp52_, _tmp54_);
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp55_ = context;
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp56_ = source_pixbuf;
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp57_ = gdk_pixbuf_get_width (_tmp56_);
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp58_ = _tmp57_;
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp59_ = source_pixbuf;
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp60_ = gdk_pixbuf_get_height (_tmp59_);
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp61_ = _tmp60_;
+#line 388 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_translate (_tmp55_, (gdouble) ((-_tmp58_) / 2), (gdouble) ((-_tmp61_) / 2));
+#line 390 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp62_ = context;
+#line 390 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp63_ = source_pixbuf;
+#line 390 "/home/jens/Source/shotwell/src/util/image.vala"
+ gdk_cairo_set_source_pixbuf (_tmp62_, _tmp63_, (gdouble) 0, (gdouble) 0);
+#line 391 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp64_ = context;
+#line 391 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp65_ = cairo_get_source (_tmp64_);
+#line 391 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_pattern_set_filter (_tmp65_, CAIRO_FILTER_BEST);
+#line 392 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp66_ = context;
+#line 392 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_paint (_tmp66_);
+#line 396 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp67_ = dest_pixbuf;
+#line 396 "/home/jens/Source/shotwell/src/util/image.vala"
+ fix_cairo_pixbuf (_tmp67_);
+#line 398 "/home/jens/Source/shotwell/src/util/image.vala"
+ result = dest_pixbuf;
+#line 398 "/home/jens/Source/shotwell/src/util/image.vala"
+ _cairo_destroy0 (context);
+#line 398 "/home/jens/Source/shotwell/src/util/image.vala"
+ _cairo_surface_destroy0 (surface);
+#line 398 "/home/jens/Source/shotwell/src/util/image.vala"
+ return result;
+#line 2144 "image.c"
+}
+
+
+/**
+ * @brief Rotates a point around the upper left corner of an image to an arbitrary angle,
+ * given in degrees, and returns the rotated point, translated such that it, along with its attendant
+ * image, are in positive x, positive y.
+ *
+ * @note May be subject to slight inaccuracy as Gdk points' coordinates may only be in whole pixels,
+ * so the fractional component is lost.
+ *
+ * @param source_point The point to be rotated and scaled.
+ * @param img_w The width of the source image (unrotated).
+ * @param img_h The height of the source image (unrotated).
+ * @param angle The angle the source image is to be rotated by to straighten it.
+ */
+void rotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, gboolean invert, GdkPoint* result) {
+ gdouble _tmp0_ = 0.0;
+ gdouble dest_width = 0.0;
+ gdouble dest_height = 0.0;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp6_ = 0.0;
+ cairo_matrix_t matrix = {0};
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ gdouble _tmp9_ = 0.0;
+ gdouble _tmp10_ = 0.0;
+ gint _tmp11_ = 0;
+ gint _tmp12_ = 0;
+ gboolean _tmp13_ = FALSE;
+ gdouble dest_x = 0.0;
+ GdkPoint _tmp15_ = {0};
+ gint _tmp16_ = 0;
+ gdouble dest_y = 0.0;
+ GdkPoint _tmp17_ = {0};
+ gint _tmp18_ = 0;
+ gdouble _tmp19_ = 0.0;
+ gdouble _tmp20_ = 0.0;
+ GdkPoint _tmp21_ = {0};
+#line 414 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (source_point != NULL);
+#line 417 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = angle;
+#line 417 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp0_ == 0.0) {
+#line 2193 "image.c"
+ GdkPoint _tmp1_ = {0};
+#line 419 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = *source_point;
+#line 419 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _tmp1_;
+#line 419 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 2201 "image.c"
+ }
+#line 424 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = img_w;
+#line 424 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = img_h;
+#line 424 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_ = angle;
+#line 424 "/home/jens/Source/shotwell/src/util/image.vala"
+ compute_arb_rotated_size ((gdouble) _tmp2_, (gdouble) _tmp3_, _tmp4_, &_tmp5_, &_tmp6_);
+#line 424 "/home/jens/Source/shotwell/src/util/image.vala"
+ dest_width = _tmp5_;
+#line 424 "/home/jens/Source/shotwell/src/util/image.vala"
+ dest_height = _tmp6_;
+#line 426 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_matrix_init_identity (&matrix);
+#line 427 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = dest_width;
+#line 427 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp8_ = dest_height;
+#line 427 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_matrix_translate (&matrix, _tmp7_ / 2, _tmp8_ / 2);
+#line 428 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = angle;
+#line 428 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = degrees_to_radians (_tmp9_);
+#line 428 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_matrix_rotate (&matrix, _tmp10_);
+#line 429 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = img_w;
+#line 429 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = img_h;
+#line 429 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_matrix_translate (&matrix, (gdouble) ((-_tmp11_) / 2), (gdouble) ((-_tmp12_) / 2));
+#line 430 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_ = invert;
+#line 430 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp13_) {
+#line 2239 "image.c"
+ cairo_status_t _tmp14_ = 0;
+#line 431 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = cairo_matrix_invert (&matrix);
+#line 431 "/home/jens/Source/shotwell/src/util/image.vala"
+ _vala_assert (_tmp14_ == CAIRO_STATUS_SUCCESS, "matrix.invert() == Cairo.Status.SUCCESS");
+#line 2245 "image.c"
+ }
+#line 433 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = *source_point;
+#line 433 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = _tmp15_.x;
+#line 433 "/home/jens/Source/shotwell/src/util/image.vala"
+ dest_x = (gdouble) _tmp16_;
+#line 434 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp17_ = *source_point;
+#line 434 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = _tmp17_.y;
+#line 434 "/home/jens/Source/shotwell/src/util/image.vala"
+ dest_y = (gdouble) _tmp18_;
+#line 435 "/home/jens/Source/shotwell/src/util/image.vala"
+ cairo_matrix_transform_point (&matrix, &dest_x, &dest_y);
+#line 437 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = dest_x;
+#line 437 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = dest_y;
+#line 437 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_.x = (gint) _tmp19_;
+#line 437 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_.y = (gint) _tmp20_;
+#line 437 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _tmp21_;
+#line 437 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 2273 "image.c"
+}
+
+
+/**
+ * @brief <u>De</u>rotates a point around the upper left corner of an image from an arbitrary angle,
+ * given in degrees, and returns the de-rotated point, taking into account any translation necessary
+ * to make sure all of the rotated image stays in positive x, positive y.
+ *
+ * @note May be subject to slight inaccuracy as Gdk points' coordinates may only be in whole pixels,
+ * so the fractional component is lost.
+ *
+ * @param source_point The point to be de-rotated.
+ * @param img_w The width of the source image (unrotated).
+ * @param img_h The height of the source image (unrotated).
+ * @param angle The angle the source image is to be rotated by to straighten it.
+ */
+void derotate_point_arb (GdkPoint* source_point, gint img_w, gint img_h, gdouble angle, GdkPoint* result) {
+ GdkPoint _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gdouble _tmp3_ = 0.0;
+ GdkPoint _tmp4_ = {0};
+#line 453 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (source_point != NULL);
+#line 454 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = *source_point;
+#line 454 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = img_w;
+#line 454 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = img_h;
+#line 454 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = angle;
+#line 454 "/home/jens/Source/shotwell/src/util/image.vala"
+ rotate_point_arb (&_tmp0_, _tmp1_, _tmp2_, _tmp3_, TRUE, &_tmp4_);
+#line 454 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _tmp4_;
+#line 454 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 2312 "image.c"
+}
+
+
+void clamp_inside_rotated_image (Box* src, gint img_w, gint img_h, gdouble angle_deg, gboolean preserve_geom, Box* result) {
+ GdkPoint top_left = {0};
+ Box _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ Box _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ GdkPoint _tmp4_ = {0};
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gdouble _tmp7_ = 0.0;
+ GdkPoint _tmp8_ = {0};
+ GdkPoint top_right = {0};
+ Box _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ Box _tmp11_ = {0};
+ gint _tmp12_ = 0;
+ GdkPoint _tmp13_ = {0};
+ gint _tmp14_ = 0;
+ gint _tmp15_ = 0;
+ gdouble _tmp16_ = 0.0;
+ GdkPoint _tmp17_ = {0};
+ GdkPoint bottom_left = {0};
+ Box _tmp18_ = {0};
+ gint _tmp19_ = 0;
+ Box _tmp20_ = {0};
+ gint _tmp21_ = 0;
+ GdkPoint _tmp22_ = {0};
+ gint _tmp23_ = 0;
+ gint _tmp24_ = 0;
+ gdouble _tmp25_ = 0.0;
+ GdkPoint _tmp26_ = {0};
+ GdkPoint bottom_right = {0};
+ Box _tmp27_ = {0};
+ gint _tmp28_ = 0;
+ Box _tmp29_ = {0};
+ gint _tmp30_ = 0;
+ GdkPoint _tmp31_ = {0};
+ gint _tmp32_ = 0;
+ gint _tmp33_ = 0;
+ gdouble _tmp34_ = 0.0;
+ GdkPoint _tmp35_ = {0};
+ gdouble angle = 0.0;
+ gdouble _tmp36_ = 0.0;
+ gdouble _tmp37_ = 0.0;
+ gint top_offset = 0;
+ gint bottom_offset = 0;
+ gint left_offset = 0;
+ gint right_offset = 0;
+ gint top = 0;
+ GdkPoint _tmp38_ = {0};
+ gint _tmp39_ = 0;
+ GdkPoint _tmp40_ = {0};
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gint bottom = 0;
+ GdkPoint _tmp47_ = {0};
+ gint _tmp48_ = 0;
+ GdkPoint _tmp49_ = {0};
+ gint _tmp50_ = 0;
+ gint _tmp51_ = 0;
+ gint _tmp52_ = 0;
+ gint _tmp53_ = 0;
+ gint left = 0;
+ GdkPoint _tmp58_ = {0};
+ gint _tmp59_ = 0;
+ GdkPoint _tmp60_ = {0};
+ gint _tmp61_ = 0;
+ gint _tmp62_ = 0;
+ gint _tmp63_ = 0;
+ gint right = 0;
+ GdkPoint _tmp67_ = {0};
+ gint _tmp68_ = 0;
+ GdkPoint _tmp69_ = {0};
+ gint _tmp70_ = 0;
+ gint _tmp71_ = 0;
+ gint _tmp72_ = 0;
+ gint _tmp73_ = 0;
+ Box _tmp78_ = {0};
+ gboolean _tmp79_ = FALSE;
+#line 459 "/home/jens/Source/shotwell/src/util/image.vala"
+ g_return_if_fail (src != NULL);
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp0_ = *src;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp1_ = _tmp0_.left;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp2_ = *src;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp3_ = _tmp2_.top;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_.x = _tmp1_;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp4_.y = _tmp3_;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp5_ = img_w;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp6_ = img_h;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp7_ = angle_deg;
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ derotate_point_arb (&_tmp4_, _tmp5_, _tmp6_, _tmp7_, &_tmp8_);
+#line 462 "/home/jens/Source/shotwell/src/util/image.vala"
+ top_left = _tmp8_;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp9_ = *src;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp10_ = _tmp9_.right;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp11_ = *src;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp12_ = _tmp11_.top;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_.x = _tmp10_;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp13_.y = _tmp12_;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp14_ = img_w;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp15_ = img_h;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp16_ = angle_deg;
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ derotate_point_arb (&_tmp13_, _tmp14_, _tmp15_, _tmp16_, &_tmp17_);
+#line 463 "/home/jens/Source/shotwell/src/util/image.vala"
+ top_right = _tmp17_;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp18_ = *src;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp19_ = _tmp18_.left;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp20_ = *src;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp21_ = _tmp20_.bottom;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp22_.x = _tmp19_;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp22_.y = _tmp21_;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp23_ = img_w;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp24_ = img_h;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp25_ = angle_deg;
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ derotate_point_arb (&_tmp22_, _tmp23_, _tmp24_, _tmp25_, &_tmp26_);
+#line 464 "/home/jens/Source/shotwell/src/util/image.vala"
+ bottom_left = _tmp26_;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp27_ = *src;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp28_ = _tmp27_.right;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp29_ = *src;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp30_ = _tmp29_.bottom;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp31_.x = _tmp28_;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp31_.y = _tmp30_;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp32_ = img_w;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp33_ = img_h;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp34_ = angle_deg;
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ derotate_point_arb (&_tmp31_, _tmp32_, _tmp33_, _tmp34_, &_tmp35_);
+#line 465 "/home/jens/Source/shotwell/src/util/image.vala"
+ bottom_right = _tmp35_;
+#line 467 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp36_ = angle_deg;
+#line 467 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp37_ = degrees_to_radians (_tmp36_);
+#line 467 "/home/jens/Source/shotwell/src/util/image.vala"
+ angle = _tmp37_;
+#line 468 "/home/jens/Source/shotwell/src/util/image.vala"
+ top_offset = 0;
+#line 468 "/home/jens/Source/shotwell/src/util/image.vala"
+ bottom_offset = 0;
+#line 468 "/home/jens/Source/shotwell/src/util/image.vala"
+ left_offset = 0;
+#line 468 "/home/jens/Source/shotwell/src/util/image.vala"
+ right_offset = 0;
+#line 470 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp38_ = top_left;
+#line 470 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp39_ = _tmp38_.y;
+#line 470 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp40_ = top_right;
+#line 470 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp41_ = _tmp40_.y;
+#line 470 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp42_ = MIN (_tmp39_, _tmp41_);
+#line 470 "/home/jens/Source/shotwell/src/util/image.vala"
+ top = _tmp42_;
+#line 471 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp43_ = top;
+#line 471 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp43_ < 0) {
+#line 2516 "image.c"
+ gint _tmp44_ = 0;
+ gdouble _tmp45_ = 0.0;
+ gdouble _tmp46_ = 0.0;
+#line 472 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp44_ = top;
+#line 472 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp45_ = angle;
+#line 472 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp46_ = cos (_tmp45_);
+#line 472 "/home/jens/Source/shotwell/src/util/image.vala"
+ top_offset = (gint) ((0 - _tmp44_) * _tmp46_);
+#line 2528 "image.c"
+ }
+#line 474 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp47_ = bottom_left;
+#line 474 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp48_ = _tmp47_.y;
+#line 474 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp49_ = bottom_right;
+#line 474 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp50_ = _tmp49_.y;
+#line 474 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp51_ = MAX (_tmp48_, _tmp50_);
+#line 474 "/home/jens/Source/shotwell/src/util/image.vala"
+ bottom = _tmp51_;
+#line 475 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp52_ = bottom;
+#line 475 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp53_ = img_h;
+#line 475 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp52_ > _tmp53_) {
+#line 2548 "image.c"
+ gint _tmp54_ = 0;
+ gint _tmp55_ = 0;
+ gdouble _tmp56_ = 0.0;
+ gdouble _tmp57_ = 0.0;
+#line 476 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp54_ = img_h;
+#line 476 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp55_ = bottom;
+#line 476 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp56_ = angle;
+#line 476 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp57_ = cos (_tmp56_);
+#line 476 "/home/jens/Source/shotwell/src/util/image.vala"
+ bottom_offset = (gint) ((_tmp54_ - _tmp55_) * _tmp57_);
+#line 2563 "image.c"
+ }
+#line 478 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp58_ = top_left;
+#line 478 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp59_ = _tmp58_.x;
+#line 478 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp60_ = bottom_left;
+#line 478 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp61_ = _tmp60_.x;
+#line 478 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp62_ = MIN (_tmp59_, _tmp61_);
+#line 478 "/home/jens/Source/shotwell/src/util/image.vala"
+ left = _tmp62_;
+#line 479 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp63_ = left;
+#line 479 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp63_ < 0) {
+#line 2581 "image.c"
+ gint _tmp64_ = 0;
+ gdouble _tmp65_ = 0.0;
+ gdouble _tmp66_ = 0.0;
+#line 480 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp64_ = left;
+#line 480 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp65_ = angle;
+#line 480 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp66_ = cos (_tmp65_);
+#line 480 "/home/jens/Source/shotwell/src/util/image.vala"
+ left_offset = (gint) ((0 - _tmp64_) * _tmp66_);
+#line 2593 "image.c"
+ }
+#line 482 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp67_ = top_right;
+#line 482 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp68_ = _tmp67_.x;
+#line 482 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp69_ = bottom_right;
+#line 482 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp70_ = _tmp69_.x;
+#line 482 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp71_ = MAX (_tmp68_, _tmp70_);
+#line 482 "/home/jens/Source/shotwell/src/util/image.vala"
+ right = _tmp71_;
+#line 483 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp72_ = right;
+#line 483 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp73_ = img_w;
+#line 483 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp72_ > _tmp73_) {
+#line 2613 "image.c"
+ gint _tmp74_ = 0;
+ gint _tmp75_ = 0;
+ gdouble _tmp76_ = 0.0;
+ gdouble _tmp77_ = 0.0;
+#line 484 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp74_ = img_w;
+#line 484 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp75_ = right;
+#line 484 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp76_ = angle;
+#line 484 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp77_ = cos (_tmp76_);
+#line 484 "/home/jens/Source/shotwell/src/util/image.vala"
+ right_offset = (gint) ((_tmp74_ - _tmp75_) * _tmp77_);
+#line 2628 "image.c"
+ }
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp79_ = preserve_geom;
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ if (_tmp79_) {
+#line 2634 "image.c"
+ gint _tmp80_ = 0;
+ gint _tmp81_ = 0;
+ gint _tmp82_ = 0;
+ gint _tmp83_ = 0;
+ Box _tmp84_ = {0};
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp80_ = left_offset;
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp81_ = right_offset;
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp82_ = top_offset;
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp83_ = bottom_offset;
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ box_get_offset (src, _tmp80_ + _tmp81_, _tmp82_ + _tmp83_, &_tmp84_);
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp78_ = _tmp84_;
+#line 2652 "image.c"
+ } else {
+ Box _tmp85_ = {0};
+ gint _tmp86_ = 0;
+ gint _tmp87_ = 0;
+ Box _tmp88_ = {0};
+ gint _tmp89_ = 0;
+ gint _tmp90_ = 0;
+ Box _tmp91_ = {0};
+ gint _tmp92_ = 0;
+ gint _tmp93_ = 0;
+ Box _tmp94_ = {0};
+ gint _tmp95_ = 0;
+ gint _tmp96_ = 0;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp85_ = *src;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp86_ = _tmp85_.left;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp87_ = left_offset;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp88_ = *src;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp89_ = _tmp88_.top;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp90_ = top_offset;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp91_ = *src;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp92_ = _tmp91_.right;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp93_ = right_offset;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp94_ = *src;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp95_ = _tmp94_.bottom;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ _tmp96_ = bottom_offset;
+#line 487 "/home/jens/Source/shotwell/src/util/image.vala"
+ box_init (&_tmp78_, _tmp86_ + _tmp87_, _tmp89_ + _tmp90_, _tmp92_ + _tmp93_, _tmp95_ + _tmp96_);
+#line 2692 "image.c"
+ }
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ *result = _tmp78_;
+#line 486 "/home/jens/Source/shotwell/src/util/image.vala"
+ return;
+#line 2698 "image.c"
+}
+
+
+
diff --git a/src/util/misc.c b/src/util/misc.c
new file mode 100644
index 0000000..b8101f1
--- /dev/null
+++ b/src/util/misc.c
@@ -0,0 +1,3137 @@
+/* misc.c generated by valac 0.32.1, the Vala compiler
+ * generated from misc.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <time.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gio/gio.h>
+#include <gee.h>
+#include <gdk/gdk.h>
+#include <float.h>
+#include <math.h>
+#include <gobject/gvaluecollector.h>
+
+#define _g_checksum_free0(var) ((var == NULL) ? NULL : (var = (g_checksum_free (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+#define TYPE_DATA_OBJECT (data_object_get_type ())
+#define DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_OBJECT, DataObject))
+#define DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_OBJECT, DataObjectClass))
+#define IS_DATA_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_OBJECT))
+#define IS_DATA_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_OBJECT))
+#define DATA_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_OBJECT, DataObjectClass))
+
+typedef struct _DataObject DataObject;
+typedef struct _DataObjectClass DataObjectClass;
+
+#define TYPE_DATA_SOURCE (data_source_get_type ())
+#define DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DATA_SOURCE, DataSource))
+#define DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DATA_SOURCE, DataSourceClass))
+#define IS_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DATA_SOURCE))
+#define IS_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DATA_SOURCE))
+#define DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DATA_SOURCE, DataSourceClass))
+
+typedef struct _DataSource DataSource;
+typedef struct _DataSourceClass DataSourceClass;
+
+#define TYPE_THUMBNAIL_SOURCE (thumbnail_source_get_type ())
+#define THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSource))
+#define THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+#define IS_THUMBNAIL_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THUMBNAIL_SOURCE))
+#define IS_THUMBNAIL_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THUMBNAIL_SOURCE))
+#define THUMBNAIL_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THUMBNAIL_SOURCE, ThumbnailSourceClass))
+
+typedef struct _ThumbnailSource ThumbnailSource;
+typedef struct _ThumbnailSourceClass ThumbnailSourceClass;
+
+#define TYPE_MEDIA_SOURCE (media_source_get_type ())
+#define MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_SOURCE, MediaSource))
+#define MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_SOURCE, MediaSourceClass))
+#define IS_MEDIA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_SOURCE))
+#define IS_MEDIA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_SOURCE))
+#define MEDIA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_SOURCE, MediaSourceClass))
+
+typedef struct _MediaSource MediaSource;
+typedef struct _MediaSourceClass MediaSourceClass;
+
+#define TYPE_PHOTO_SOURCE (photo_source_get_type ())
+#define PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO_SOURCE, PhotoSource))
+#define PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+#define IS_PHOTO_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO_SOURCE))
+#define IS_PHOTO_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO_SOURCE))
+#define PHOTO_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO_SOURCE, PhotoSourceClass))
+
+typedef struct _PhotoSource PhotoSource;
+typedef struct _PhotoSourceClass PhotoSourceClass;
+
+#define TYPE_PHOTO (photo_get_type ())
+#define PHOTO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PHOTO, Photo))
+#define PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PHOTO, PhotoClass))
+#define IS_PHOTO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PHOTO))
+#define IS_PHOTO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PHOTO))
+#define PHOTO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PHOTO, PhotoClass))
+
+typedef struct _Photo Photo;
+typedef struct _PhotoClass PhotoClass;
+
+#define TYPE_PHOTO_ID (photo_id_get_type ())
+typedef struct _PhotoID PhotoID;
+
+#define TYPE_MEDIA_COLLECTION_REGISTRY (media_collection_registry_get_type ())
+#define MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistry))
+#define MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+#define IS_MEDIA_COLLECTION_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define IS_MEDIA_COLLECTION_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MEDIA_COLLECTION_REGISTRY))
+#define MEDIA_COLLECTION_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MEDIA_COLLECTION_REGISTRY, MediaCollectionRegistryClass))
+
+typedef struct _MediaCollectionRegistry MediaCollectionRegistry;
+typedef struct _MediaCollectionRegistryClass MediaCollectionRegistryClass;
+#define _media_collection_registry_unref0(var) ((var == NULL) ? NULL : (var = (media_collection_registry_unref (var), NULL)))
+
+#define TYPE_ONE_SHOT_SCHEDULER (one_shot_scheduler_get_type ())
+#define ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler))
+#define ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+#define IS_ONE_SHOT_SCHEDULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ONE_SHOT_SCHEDULER))
+#define IS_ONE_SHOT_SCHEDULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ONE_SHOT_SCHEDULER))
+#define ONE_SHOT_SCHEDULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerClass))
+
+typedef struct _OneShotScheduler OneShotScheduler;
+typedef struct _OneShotSchedulerClass OneShotSchedulerClass;
+typedef struct _OneShotSchedulerPrivate OneShotSchedulerPrivate;
+typedef struct _ParamSpecOneShotScheduler ParamSpecOneShotScheduler;
+
+#define TYPE_OP_TIMER (op_timer_get_type ())
+#define OP_TIMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OP_TIMER, OpTimer))
+#define OP_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_OP_TIMER, OpTimerClass))
+#define IS_OP_TIMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OP_TIMER))
+#define IS_OP_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_OP_TIMER))
+#define OP_TIMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_OP_TIMER, OpTimerClass))
+
+typedef struct _OpTimer OpTimer;
+typedef struct _OpTimerClass OpTimerClass;
+typedef struct _OpTimerPrivate OpTimerPrivate;
+#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
+typedef struct _ParamSpecOpTimer ParamSpecOpTimer;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+typedef gboolean (*ValueEqualFunc) (GValue* a, GValue* b, void* user_data);
+struct _PhotoID {
+ gint64 id;
+};
+
+typedef void (*OneShotCallback) (void* user_data);
+struct _OneShotScheduler {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ OneShotSchedulerPrivate * priv;
+};
+
+struct _OneShotSchedulerClass {
+ GTypeClass parent_class;
+ void (*finalize) (OneShotScheduler *self);
+};
+
+struct _OneShotSchedulerPrivate {
+ gchar* name;
+ OneShotCallback callback;
+ gpointer callback_target;
+ guint scheduled;
+};
+
+struct _ParamSpecOneShotScheduler {
+ GParamSpec parent_instance;
+};
+
+struct _OpTimer {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ OpTimerPrivate * priv;
+};
+
+struct _OpTimerClass {
+ GTypeClass parent_class;
+ void (*finalize) (OpTimer *self);
+};
+
+struct _OpTimerPrivate {
+ gchar* name;
+ GTimer* timer;
+ glong count;
+ gdouble elapsed;
+ gdouble shortest;
+ gdouble longest;
+};
+
+struct _ParamSpecOpTimer {
+ GParamSpec parent_instance;
+};
+
+
+static gpointer one_shot_scheduler_parent_class = NULL;
+static gpointer op_timer_parent_class = NULL;
+
+guint int64_hash (gint64* n);
+gboolean int64_equal (gint64* a, gint64* b);
+gint int64_compare (gint64* a, gint64* b);
+gint uint64_compare (guint64* a, guint64* b);
+gboolean bool_value_equals (GValue* a, GValue* b);
+gboolean int_value_equals (GValue* a, GValue* b);
+gulong timeval_to_ms (GTimeVal* time_val);
+gulong now_ms (void);
+gulong now_sec (void);
+time_t now_time_t (void);
+gchar* md5_binary (guint8* buffer, gsize length);
+gchar* md5_file (GFile* file, GError** error);
+gboolean equal_sets (GeeSet* a, GeeSet* b);
+GeeSet* intersection_of_sets (GeeSet* a, GeeSet* b, GeeSet* excluded);
+GType data_object_get_type (void) G_GNUC_CONST;
+GType data_source_get_type (void) G_GNUC_CONST;
+GType thumbnail_source_get_type (void) G_GNUC_CONST;
+GType media_source_get_type (void) G_GNUC_CONST;
+GType photo_source_get_type (void) G_GNUC_CONST;
+GType photo_get_type (void) G_GNUC_CONST;
+guchar* serialize_photo_ids (GeeCollection* photos, int* result_length1);
+GType photo_id_get_type (void) G_GNUC_CONST;
+PhotoID* photo_id_dup (const PhotoID* self);
+void photo_id_free (PhotoID* self);
+void photo_get_photo_id (Photo* self, PhotoID* result);
+GeeList* unserialize_photo_ids (guchar* serialized, gint size);
+void photo_id_init (PhotoID *self, gint64 id);
+guchar* serialize_media_sources (GeeCollection* media, int* result_length1);
+gchar* data_source_get_source_id (DataSource* self);
+GeeList* unserialize_media_sources (guchar* serialized, gint size);
+gpointer media_collection_registry_ref (gpointer instance);
+void media_collection_registry_unref (gpointer instance);
+GParamSpec* param_spec_media_collection_registry (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_media_collection_registry (GValue* value, gpointer v_object);
+void value_take_media_collection_registry (GValue* value, gpointer v_object);
+gpointer value_get_media_collection_registry (const GValue* value);
+GType media_collection_registry_get_type (void) G_GNUC_CONST;
+MediaCollectionRegistry* media_collection_registry_get_instance (void);
+MediaSource* media_collection_registry_fetch_media (MediaCollectionRegistry* self, const gchar* source_id);
+gchar* format_local_datespan (struct tm* from_date, struct tm* to_date);
+gchar* resources_get_start_multiday_span_format_string (void);
+gchar* resources_get_end_multiday_span_format_string (void);
+gchar* resources_get_start_multimonth_span_format_string (void);
+gchar* resources_get_end_multimonth_span_format_string (void);
+gchar* resources_get_long_date_format_string (void);
+gchar* string_strip_leading_zeroes (const gchar* str);
+gchar* format_local_date (struct tm* date);
+gpointer one_shot_scheduler_ref (gpointer instance);
+void one_shot_scheduler_unref (gpointer instance);
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object);
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object);
+gpointer value_get_one_shot_scheduler (const GValue* value);
+GType one_shot_scheduler_get_type (void) G_GNUC_CONST;
+#define ONE_SHOT_SCHEDULER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ONE_SHOT_SCHEDULER, OneShotSchedulerPrivate))
+enum {
+ ONE_SHOT_SCHEDULER_DUMMY_PROPERTY
+};
+void one_shot_scheduler_cancel (OneShotScheduler* self);
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target);
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target);
+gboolean one_shot_scheduler_is_scheduled (OneShotScheduler* self);
+void one_shot_scheduler_at_idle (OneShotScheduler* self);
+void one_shot_scheduler_at_priority_idle (OneShotScheduler* self, gint priority);
+static gboolean one_shot_scheduler_callback_wrapper (OneShotScheduler* self);
+static gboolean _one_shot_scheduler_callback_wrapper_gsource_func (gpointer self);
+void one_shot_scheduler_after_timeout (OneShotScheduler* self, guint msec, gboolean reschedule);
+void one_shot_scheduler_priority_after_timeout (OneShotScheduler* self, gint priority, guint msec, gboolean reschedule);
+static void one_shot_scheduler_finalize (OneShotScheduler* obj);
+gpointer op_timer_ref (gpointer instance);
+void op_timer_unref (gpointer instance);
+GParamSpec* param_spec_op_timer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_op_timer (GValue* value, gpointer v_object);
+void value_take_op_timer (GValue* value, gpointer v_object);
+gpointer value_get_op_timer (const GValue* value);
+GType op_timer_get_type (void) G_GNUC_CONST;
+#define OP_TIMER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_OP_TIMER, OpTimerPrivate))
+enum {
+ OP_TIMER_DUMMY_PROPERTY
+};
+OpTimer* op_timer_new (const gchar* name);
+OpTimer* op_timer_construct (GType object_type, const gchar* name);
+void op_timer_start (OpTimer* self);
+void op_timer_stop (OpTimer* self);
+gchar* op_timer_to_string (OpTimer* self);
+static void op_timer_finalize (OpTimer* obj);
+void suppress_warnings (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message);
+gboolean is_twentyfour_hr_time_system (void);
+gboolean is_string_empty (const gchar* s);
+
+
+guint int64_hash (gint64* n) {
+ guint result = 0U;
+ guint8* u8 = NULL;
+ gint64* _tmp0_ = NULL;
+ guint hash = 0U;
+#line 9 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = n;
+#line 9 "/home/jens/Source/shotwell/src/util/misc.vala"
+ u8 = (guint8*) _tmp0_;
+#line 10 "/home/jens/Source/shotwell/src/util/misc.vala"
+ hash = (guint) 0;
+#line 289 "misc.c"
+ {
+ gint ctr = 0;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ctr = 0;
+#line 294 "misc.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = TRUE;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ while (TRUE) {
+#line 301 "misc.c"
+ gint _tmp3_ = 0;
+ guint _tmp4_ = 0U;
+ guint _tmp5_ = 0U;
+ guint8* _tmp6_ = NULL;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp1_) {
+#line 308 "misc.c"
+ gint _tmp2_ = 0;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = ctr;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ctr = _tmp2_ + 1;
+#line 314 "misc.c"
+ }
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = FALSE;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = ctr;
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!(((gulong) _tmp3_) < (sizeof (gint64) / sizeof (guint8)))) {
+#line 11 "/home/jens/Source/shotwell/src/util/misc.vala"
+ break;
+#line 324 "misc.c"
+ }
+#line 12 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = hash;
+#line 12 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = hash;
+#line 12 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = u8;
+#line 12 "/home/jens/Source/shotwell/src/util/misc.vala"
+ u8 = _tmp6_ + 1;
+#line 12 "/home/jens/Source/shotwell/src/util/misc.vala"
+ hash = ((_tmp4_ << 4) ^ (_tmp5_ >> 28)) ^ (*_tmp6_);
+#line 336 "misc.c"
+ }
+ }
+ }
+#line 15 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = hash;
+#line 15 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 344 "misc.c"
+}
+
+
+gboolean int64_equal (gint64* a, gint64* b) {
+ gboolean result = FALSE;
+ gint64* bia = NULL;
+ gint64* _tmp0_ = NULL;
+ gint64* bib = NULL;
+ gint64* _tmp1_ = NULL;
+#line 19 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = a;
+#line 19 "/home/jens/Source/shotwell/src/util/misc.vala"
+ bia = (gint64*) _tmp0_;
+#line 20 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = b;
+#line 20 "/home/jens/Source/shotwell/src/util/misc.vala"
+ bib = (gint64*) _tmp1_;
+#line 22 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = (*bia) == (*bib);
+#line 22 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 366 "misc.c"
+}
+
+
+gint int64_compare (gint64* a, gint64* b) {
+ gint result = 0;
+ gint64 diff = 0LL;
+ gint64* _tmp0_ = NULL;
+ gint64* _tmp1_ = NULL;
+ gint64 _tmp2_ = 0LL;
+#line 26 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = a;
+#line 26 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = b;
+#line 26 "/home/jens/Source/shotwell/src/util/misc.vala"
+ diff = (*((gint64*) _tmp0_)) - (*((gint64*) _tmp1_));
+#line 27 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = diff;
+#line 27 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp2_ < ((gint64) 0)) {
+#line 28 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = -1;
+#line 28 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 390 "misc.c"
+ } else {
+ gint64 _tmp3_ = 0LL;
+#line 29 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = diff;
+#line 29 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp3_ > ((gint64) 0)) {
+#line 30 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = 1;
+#line 30 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 401 "misc.c"
+ } else {
+#line 32 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = 0;
+#line 32 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 407 "misc.c"
+ }
+ }
+}
+
+
+gint uint64_compare (guint64* a, guint64* b) {
+ gint result = 0;
+ guint64 a64 = 0ULL;
+ guint64* _tmp0_ = NULL;
+ guint64 b64 = 0ULL;
+ guint64* _tmp1_ = NULL;
+ guint64 _tmp2_ = 0ULL;
+ guint64 _tmp3_ = 0ULL;
+#line 36 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = a;
+#line 36 "/home/jens/Source/shotwell/src/util/misc.vala"
+ a64 = *((guint64*) _tmp0_);
+#line 37 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = b;
+#line 37 "/home/jens/Source/shotwell/src/util/misc.vala"
+ b64 = *((guint64*) _tmp1_);
+#line 39 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = a64;
+#line 39 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = b64;
+#line 39 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp2_ < _tmp3_) {
+#line 40 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = -1;
+#line 40 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 439 "misc.c"
+ } else {
+ guint64 _tmp4_ = 0ULL;
+ guint64 _tmp5_ = 0ULL;
+#line 41 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = a64;
+#line 41 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = b64;
+#line 41 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp4_ > _tmp5_) {
+#line 42 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = 1;
+#line 42 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 453 "misc.c"
+ } else {
+#line 44 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = 0;
+#line 44 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 459 "misc.c"
+ }
+ }
+}
+
+
+gboolean bool_value_equals (GValue* a, GValue* b) {
+ gboolean result = FALSE;
+ GValue _tmp0_ = {0};
+ GValue _tmp1_ = {0};
+#line 49 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (a != NULL, FALSE);
+#line 49 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (b != NULL, FALSE);
+#line 50 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = *a;
+#line 50 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = *b;
+#line 50 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = g_value_get_boolean (&_tmp0_) == g_value_get_boolean (&_tmp1_);
+#line 50 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 481 "misc.c"
+}
+
+
+gboolean int_value_equals (GValue* a, GValue* b) {
+ gboolean result = FALSE;
+ GValue _tmp0_ = {0};
+ GValue _tmp1_ = {0};
+#line 53 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (a != NULL, FALSE);
+#line 53 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (b != NULL, FALSE);
+#line 54 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = *a;
+#line 54 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = *b;
+#line 54 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = g_value_get_int (&_tmp0_) == g_value_get_int (&_tmp1_);
+#line 54 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 501 "misc.c"
+}
+
+
+gulong timeval_to_ms (GTimeVal* time_val) {
+ gulong result = 0UL;
+ GTimeVal _tmp0_ = {0};
+ glong _tmp1_ = 0L;
+ GTimeVal _tmp2_ = {0};
+ glong _tmp3_ = 0L;
+#line 57 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (time_val != NULL, 0UL);
+#line 58 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = *time_val;
+#line 58 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = _tmp0_.tv_sec;
+#line 58 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = *time_val;
+#line 58 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = _tmp2_.tv_usec;
+#line 58 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = (((gulong) _tmp1_) * 1000) + (((gulong) _tmp3_) / 1000);
+#line 58 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 525 "misc.c"
+}
+
+
+gulong now_ms (void) {
+ gulong result = 0UL;
+ GTimeVal _tmp0_ = {0};
+ gulong _tmp1_ = 0UL;
+#line 62 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_get_current_time (&_tmp0_);
+#line 62 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = timeval_to_ms (&_tmp0_);
+#line 62 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp1_;
+#line 62 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 541 "misc.c"
+}
+
+
+gulong now_sec (void) {
+ gulong result = 0UL;
+ GTimeVal time_val = {0};
+ GTimeVal _tmp0_ = {0};
+ glong _tmp1_ = 0L;
+#line 66 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_get_current_time (&time_val);
+#line 68 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = time_val;
+#line 68 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = _tmp0_.tv_sec;
+#line 68 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = (gulong) _tmp1_;
+#line 68 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 560 "misc.c"
+}
+
+
+inline time_t now_time_t (void) {
+ time_t result = 0;
+ gulong _tmp0_ = 0UL;
+#line 72 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = now_sec ();
+#line 72 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = (time_t) _tmp0_;
+#line 72 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 573 "misc.c"
+}
+
+
+gchar* md5_binary (guint8* buffer, gsize length) {
+ gchar* result = NULL;
+ gsize _tmp0_ = 0UL;
+ GChecksum* md5 = NULL;
+ GChecksum* _tmp1_ = NULL;
+ guint8* _tmp2_ = NULL;
+ gsize _tmp3_ = 0UL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = length;
+#line 76 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _vala_assert (_tmp0_ != ((gsize) 0), "length != 0");
+#line 78 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = g_checksum_new (G_CHECKSUM_MD5);
+#line 78 "/home/jens/Source/shotwell/src/util/misc.vala"
+ md5 = _tmp1_;
+#line 79 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = buffer;
+#line 79 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = length;
+#line 79 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_checksum_update (md5, (guchar*) _tmp2_, _tmp3_);
+#line 81 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = g_checksum_get_string (md5);
+#line 81 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = g_strdup (_tmp4_);
+#line 81 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp5_;
+#line 81 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_checksum_free0 (md5);
+#line 81 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 610 "misc.c"
+}
+
+
+gchar* md5_file (GFile* file, GError** error) {
+ gchar* result = NULL;
+ GChecksum* md5 = NULL;
+ GChecksum* _tmp0_ = NULL;
+ guint8* buffer = NULL;
+ guint8* _tmp1_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ GFileInputStream* fins = NULL;
+ GFile* _tmp2_ = NULL;
+ GFileInputStream* _tmp3_ = NULL;
+ GChecksum* _tmp18_ = NULL;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 84 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (G_IS_FILE (file), NULL);
+#line 85 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = g_checksum_new (G_CHECKSUM_MD5);
+#line 85 "/home/jens/Source/shotwell/src/util/misc.vala"
+ md5 = _tmp0_;
+#line 86 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = g_new0 (guint8, 64 * 1024);
+#line 86 "/home/jens/Source/shotwell/src/util/misc.vala"
+ buffer = _tmp1_;
+#line 86 "/home/jens/Source/shotwell/src/util/misc.vala"
+ buffer_length1 = 64 * 1024;
+#line 86 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _buffer_size_ = buffer_length1;
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = file;
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = g_file_read (_tmp2_, NULL, &_inner_error_);
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ fins = _tmp3_;
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_propagate_error (error, _inner_error_);
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ buffer = (g_free (buffer), NULL);
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_checksum_free0 (md5);
+#line 88 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return NULL;
+#line 659 "misc.c"
+ }
+ {
+ gboolean _tmp4_ = FALSE;
+#line 89 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = TRUE;
+#line 89 "/home/jens/Source/shotwell/src/util/misc.vala"
+ while (TRUE) {
+#line 667 "misc.c"
+ gsize bytes_read = 0UL;
+ GFileInputStream* _tmp5_ = NULL;
+ guint8* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ gssize _tmp7_ = 0L;
+ gsize _tmp8_ = 0UL;
+ GChecksum* _tmp9_ = NULL;
+ guint8* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gsize _tmp11_ = 0UL;
+#line 89 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp4_) {
+#line 680 "misc.c"
+ }
+#line 89 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = FALSE;
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = fins;
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = buffer;
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6__length1 = buffer_length1;
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = g_input_stream_read (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, G_TYPE_INPUT_STREAM, GInputStream), _tmp6_, (gsize) _tmp6__length1, NULL, &_inner_error_);
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ bytes_read = (gsize) _tmp7_;
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_propagate_error (error, _inner_error_);
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (fins);
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ buffer = (g_free (buffer), NULL);
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_checksum_free0 (md5);
+#line 90 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return NULL;
+#line 706 "misc.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = bytes_read;
+#line 91 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp8_ <= ((gsize) 0)) {
+#line 92 "/home/jens/Source/shotwell/src/util/misc.vala"
+ break;
+#line 714 "misc.c"
+ }
+#line 94 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = md5;
+#line 94 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = buffer;
+#line 94 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10__length1 = buffer_length1;
+#line 94 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = bytes_read;
+#line 94 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_checksum_update (_tmp9_, (guchar*) _tmp10_, _tmp11_);
+#line 726 "misc.c"
+ }
+ }
+ {
+ GFileInputStream* _tmp12_ = NULL;
+#line 98 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = fins;
+#line 98 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_input_stream_close (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, G_TYPE_INPUT_STREAM, GInputStream), NULL, &_inner_error_);
+#line 98 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 737 "misc.c"
+ goto __catch5_g_error;
+ }
+ }
+ goto __finally5;
+ __catch5_g_error:
+ {
+ GError* err = NULL;
+ GFile* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ GError* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ err = _inner_error_;
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _inner_error_ = NULL;
+#line 100 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp13_ = file;
+#line 100 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = g_file_get_path (_tmp13_);
+#line 100 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = _tmp14_;
+#line 100 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp16_ = err;
+#line 100 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp17_ = _tmp16_->message;
+#line 100 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_warning ("misc.vala:100: Unable to close MD5 input stream for %s: %s", _tmp15_, _tmp17_);
+#line 100 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp15_);
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_error_free0 (err);
+#line 770 "misc.c"
+ }
+ __finally5:
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_propagate_error (error, _inner_error_);
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (fins);
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ buffer = (g_free (buffer), NULL);
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_checksum_free0 (md5);
+#line 97 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return NULL;
+#line 785 "misc.c"
+ }
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = md5;
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp19_ = g_checksum_get_string (_tmp18_);
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20_ = g_strdup (_tmp19_);
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp20_;
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (fins);
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ buffer = (g_free (buffer), NULL);
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_checksum_free0 (md5);
+#line 103 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 803 "misc.c"
+}
+
+
+gboolean equal_sets (GeeSet* a, GeeSet* b) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ gboolean _tmp1_ = FALSE;
+ GeeSet* _tmp2_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ GeeSet* _tmp8_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ GeeSet* _tmp16_ = NULL;
+ gboolean _tmp21_ = FALSE;
+ GeeSet* _tmp22_ = NULL;
+ GeeSet* _tmp24_ = NULL;
+ gint _tmp25_ = 0;
+ gint _tmp26_ = 0;
+ GeeSet* _tmp27_ = NULL;
+ gint _tmp28_ = 0;
+ gint _tmp29_ = 0;
+#line 107 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail ((a == NULL) || GEE_IS_SET (a), FALSE);
+#line 107 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail ((b == NULL) || GEE_IS_SET (b), FALSE);
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = a;
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp2_ != NULL) {
+#line 833 "misc.c"
+ GeeSet* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = a;
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp3_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = _tmp4_;
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = _tmp5_ == 0;
+#line 845 "misc.c"
+ } else {
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = FALSE;
+#line 849 "misc.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp1_) {
+#line 853 "misc.c"
+ GeeSet* _tmp6_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = b;
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = _tmp6_ == NULL;
+#line 859 "misc.c"
+ } else {
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = FALSE;
+#line 863 "misc.c"
+ }
+#line 108 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp0_) {
+#line 109 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = TRUE;
+#line 109 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 871 "misc.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = a;
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp8_ == NULL) {
+#line 877 "misc.c"
+ gboolean _tmp9_ = FALSE;
+ GeeSet* _tmp10_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = b;
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp10_ != NULL) {
+#line 884 "misc.c"
+ GeeSet* _tmp11_ = NULL;
+ gint _tmp12_ = 0;
+ gint _tmp13_ = 0;
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = b;
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp13_ = _tmp12_;
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = _tmp13_ == 0;
+#line 896 "misc.c"
+ } else {
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = FALSE;
+#line 900 "misc.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = _tmp9_;
+#line 904 "misc.c"
+ } else {
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = FALSE;
+#line 908 "misc.c"
+ }
+#line 111 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp7_) {
+#line 112 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = TRUE;
+#line 112 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 916 "misc.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp16_ = a;
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp16_ == NULL) {
+#line 922 "misc.c"
+ GeeSet* _tmp17_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp17_ = b;
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = _tmp17_ != NULL;
+#line 928 "misc.c"
+ } else {
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = FALSE;
+#line 932 "misc.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp15_) {
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = TRUE;
+#line 938 "misc.c"
+ } else {
+ gboolean _tmp18_ = FALSE;
+ GeeSet* _tmp19_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp19_ = a;
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp19_ != NULL) {
+#line 946 "misc.c"
+ GeeSet* _tmp20_ = NULL;
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20_ = b;
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = _tmp20_ == NULL;
+#line 952 "misc.c"
+ } else {
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = FALSE;
+#line 956 "misc.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = _tmp18_;
+#line 960 "misc.c"
+ }
+#line 114 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp14_) {
+#line 115 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = FALSE;
+#line 115 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 968 "misc.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp22_ = a;
+#line 117 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp22_ == NULL) {
+#line 974 "misc.c"
+ GeeSet* _tmp23_ = NULL;
+#line 117 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp23_ = b;
+#line 117 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21_ = _tmp23_ == NULL;
+#line 980 "misc.c"
+ } else {
+#line 117 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21_ = FALSE;
+#line 984 "misc.c"
+ }
+#line 117 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp21_) {
+#line 118 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = TRUE;
+#line 118 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 992 "misc.c"
+ }
+#line 120 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp24_ = a;
+#line 120 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp25_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp24_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 120 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp26_ = _tmp25_;
+#line 120 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp27_ = b;
+#line 120 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp28_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 120 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp29_ = _tmp28_;
+#line 120 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp26_ != _tmp29_) {
+#line 121 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = FALSE;
+#line 121 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1012 "misc.c"
+ }
+ {
+ GeeIterator* _element_it = NULL;
+ GeeSet* _tmp30_ = NULL;
+ GeeIterator* _tmp31_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp30_ = a;
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp31_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp30_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _element_it = _tmp31_;
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ while (TRUE) {
+#line 1026 "misc.c"
+ GeeIterator* _tmp32_ = NULL;
+ gboolean _tmp33_ = FALSE;
+ gchar* element = NULL;
+ GeeIterator* _tmp34_ = NULL;
+ gpointer _tmp35_ = NULL;
+ GeeSet* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+ gboolean _tmp38_ = FALSE;
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp32_ = _element_it;
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp33_ = gee_iterator_next (_tmp32_);
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp33_) {
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ break;
+#line 1043 "misc.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp34_ = _element_it;
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp35_ = gee_iterator_get (_tmp34_);
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ element = (gchar*) _tmp35_;
+#line 126 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp36_ = b;
+#line 126 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp37_ = element;
+#line 126 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp38_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection), _tmp37_);
+#line 126 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp38_) {
+#line 127 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = FALSE;
+#line 127 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (element);
+#line 127 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (_element_it);
+#line 127 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1067 "misc.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (element);
+#line 1071 "misc.c"
+ }
+#line 125 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (_element_it);
+#line 1075 "misc.c"
+ }
+#line 130 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = TRUE;
+#line 130 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1081 "misc.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 1088 "misc.c"
+}
+
+
+GeeSet* intersection_of_sets (GeeSet* a, GeeSet* b, GeeSet* excluded) {
+ GeeSet* result = NULL;
+ gboolean _tmp0_ = FALSE;
+ GeeSet* _tmp1_ = NULL;
+ gboolean _tmp6_ = FALSE;
+ GeeSet* _tmp7_ = NULL;
+ GeeSet* intersection = NULL;
+ GeeHashSet* _tmp12_ = NULL;
+ GeeSet* _tmp41_ = NULL;
+ GeeSet* _tmp42_ = NULL;
+ gint _tmp43_ = 0;
+ gint _tmp44_ = 0;
+ GeeSet* _tmp46_ = NULL;
+#line 134 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail ((a == NULL) || GEE_IS_SET (a), NULL);
+#line 134 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail ((b == NULL) || GEE_IS_SET (b), NULL);
+#line 134 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail ((excluded == NULL) || GEE_IS_SET (excluded), NULL);
+#line 136 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = a;
+#line 136 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp1_ != NULL) {
+#line 1115 "misc.c"
+ GeeSet* _tmp2_ = NULL;
+#line 136 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = b;
+#line 136 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = _tmp2_ == NULL;
+#line 1121 "misc.c"
+ } else {
+#line 136 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = FALSE;
+#line 1125 "misc.c"
+ }
+#line 136 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp0_) {
+#line 1129 "misc.c"
+ GeeSet* _tmp3_ = NULL;
+#line 137 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = excluded;
+#line 137 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp3_ != NULL) {
+#line 1135 "misc.c"
+ GeeSet* _tmp4_ = NULL;
+ GeeSet* _tmp5_ = NULL;
+#line 138 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = excluded;
+#line 138 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = a;
+#line 138 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1144 "misc.c"
+ }
+#line 140 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = NULL;
+#line 140 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1150 "misc.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = a;
+#line 143 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp7_ == NULL) {
+#line 1156 "misc.c"
+ GeeSet* _tmp8_ = NULL;
+#line 143 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = b;
+#line 143 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = _tmp8_ != NULL;
+#line 1162 "misc.c"
+ } else {
+#line 143 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = FALSE;
+#line 1166 "misc.c"
+ }
+#line 143 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp6_) {
+#line 1170 "misc.c"
+ GeeSet* _tmp9_ = NULL;
+#line 144 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = excluded;
+#line 144 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp9_ != NULL) {
+#line 1176 "misc.c"
+ GeeSet* _tmp10_ = NULL;
+ GeeSet* _tmp11_ = NULL;
+#line 145 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = excluded;
+#line 145 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = b;
+#line 145 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_collection_add_all (G_TYPE_CHECK_INSTANCE_CAST (_tmp10_, GEE_TYPE_COLLECTION, GeeCollection), G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 1185 "misc.c"
+ }
+#line 147 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = NULL;
+#line 147 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1191 "misc.c"
+ }
+#line 150 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = gee_hash_set_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL, NULL, NULL, NULL);
+#line 150 "/home/jens/Source/shotwell/src/util/misc.vala"
+ intersection = G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, GEE_TYPE_SET, GeeSet);
+#line 1197 "misc.c"
+ {
+ GeeIterator* _element_it = NULL;
+ GeeSet* _tmp13_ = NULL;
+ GeeIterator* _tmp14_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp13_ = a;
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp13_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _element_it = _tmp14_;
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ while (TRUE) {
+#line 1210 "misc.c"
+ GeeIterator* _tmp15_ = NULL;
+ gboolean _tmp16_ = FALSE;
+ gchar* element = NULL;
+ GeeIterator* _tmp17_ = NULL;
+ gpointer _tmp18_ = NULL;
+ GeeSet* _tmp19_ = NULL;
+ const gchar* _tmp20_ = NULL;
+ gboolean _tmp21_ = FALSE;
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = _element_it;
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp16_ = gee_iterator_next (_tmp15_);
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp16_) {
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ break;
+#line 1227 "misc.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp17_ = _element_it;
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = gee_iterator_get (_tmp17_);
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ element = (gchar*) _tmp18_;
+#line 153 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp19_ = b;
+#line 153 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20_ = element;
+#line 153 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_COLLECTION, GeeCollection), _tmp20_);
+#line 153 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp21_) {
+#line 1243 "misc.c"
+ GeeSet* _tmp22_ = NULL;
+ const gchar* _tmp23_ = NULL;
+#line 154 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp22_ = intersection;
+#line 154 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp23_ = element;
+#line 154 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp22_, GEE_TYPE_COLLECTION, GeeCollection), _tmp23_);
+#line 1252 "misc.c"
+ } else {
+ GeeSet* _tmp24_ = NULL;
+#line 155 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp24_ = excluded;
+#line 155 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp24_ != NULL) {
+#line 1259 "misc.c"
+ GeeSet* _tmp25_ = NULL;
+ const gchar* _tmp26_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp25_ = excluded;
+#line 156 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp26_ = element;
+#line 156 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp25_, GEE_TYPE_COLLECTION, GeeCollection), _tmp26_);
+#line 1268 "misc.c"
+ }
+ }
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (element);
+#line 1273 "misc.c"
+ }
+#line 152 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (_element_it);
+#line 1277 "misc.c"
+ }
+ {
+ GeeIterator* _element_it = NULL;
+ GeeSet* _tmp27_ = NULL;
+ GeeIterator* _tmp28_ = NULL;
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp27_ = b;
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp28_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp27_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _element_it = _tmp28_;
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ while (TRUE) {
+#line 1291 "misc.c"
+ GeeIterator* _tmp29_ = NULL;
+ gboolean _tmp30_ = FALSE;
+ gchar* element = NULL;
+ GeeIterator* _tmp31_ = NULL;
+ gpointer _tmp32_ = NULL;
+ GeeSet* _tmp33_ = NULL;
+ const gchar* _tmp34_ = NULL;
+ gboolean _tmp35_ = FALSE;
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp29_ = _element_it;
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp30_ = gee_iterator_next (_tmp29_);
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp30_) {
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ break;
+#line 1308 "misc.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp31_ = _element_it;
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp32_ = gee_iterator_get (_tmp31_);
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ element = (gchar*) _tmp32_;
+#line 160 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp33_ = a;
+#line 160 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp34_ = element;
+#line 160 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp35_ = gee_collection_contains (G_TYPE_CHECK_INSTANCE_CAST (_tmp33_, GEE_TYPE_COLLECTION, GeeCollection), _tmp34_);
+#line 160 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp35_) {
+#line 1324 "misc.c"
+ GeeSet* _tmp36_ = NULL;
+ const gchar* _tmp37_ = NULL;
+#line 161 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp36_ = intersection;
+#line 161 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp37_ = element;
+#line 161 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp36_, GEE_TYPE_COLLECTION, GeeCollection), _tmp37_);
+#line 1333 "misc.c"
+ } else {
+ GeeSet* _tmp38_ = NULL;
+#line 162 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp38_ = excluded;
+#line 162 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp38_ != NULL) {
+#line 1340 "misc.c"
+ GeeSet* _tmp39_ = NULL;
+ const gchar* _tmp40_ = NULL;
+#line 163 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp39_ = excluded;
+#line 163 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp40_ = element;
+#line 163 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp39_, GEE_TYPE_COLLECTION, GeeCollection), _tmp40_);
+#line 1349 "misc.c"
+ }
+ }
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (element);
+#line 1354 "misc.c"
+ }
+#line 159 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (_element_it);
+#line 1358 "misc.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp42_ = intersection;
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp43_ = gee_collection_get_size (G_TYPE_CHECK_INSTANCE_CAST (_tmp42_, GEE_TYPE_COLLECTION, GeeCollection));
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp44_ = _tmp43_;
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp44_ > 0) {
+#line 1368 "misc.c"
+ GeeSet* _tmp45_ = NULL;
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp45_ = intersection;
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp41_ = _tmp45_;
+#line 1374 "misc.c"
+ } else {
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp41_ = NULL;
+#line 1378 "misc.c"
+ }
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp46_ = _g_object_ref0 (_tmp41_);
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp46_;
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (intersection);
+#line 166 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1388 "misc.c"
+}
+
+
+guchar* serialize_photo_ids (GeeCollection* photos, int* result_length1) {
+ guchar* result = NULL;
+ gint64* ids = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ gint64* _tmp3_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ gint ctr = 0;
+ gsize bytes = 0UL;
+ GeeCollection* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+ guchar* serialized = NULL;
+ guchar* _tmp19_ = NULL;
+ gint serialized_length1 = 0;
+ gint _serialized_size_ = 0;
+ gint64* _tmp20_ = NULL;
+ gint _tmp20__length1 = 0;
+ guchar* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+#line 169 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (photos), NULL);
+#line 170 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = photos;
+#line 170 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 170 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = _tmp1_;
+#line 170 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = g_new0 (gint64, _tmp2_);
+#line 170 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ids = _tmp3_;
+#line 170 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ids_length1 = _tmp2_;
+#line 170 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _ids_size_ = ids_length1;
+#line 171 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ctr = 0;
+#line 1432 "misc.c"
+ {
+ GeeIterator* _photo_it = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = photos;
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _photo_it = _tmp5_;
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ while (TRUE) {
+#line 1445 "misc.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ Photo* photo = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ gint64* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ Photo* _tmp12_ = NULL;
+ PhotoID _tmp13_ = {0};
+ gint64 _tmp14_ = 0LL;
+ gint64 _tmp15_ = 0LL;
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = _photo_it;
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp7_) {
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ break;
+#line 1466 "misc.c"
+ }
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = _photo_it;
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ photo = (Photo*) _tmp9_;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = ids;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10__length1 = ids_length1;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = ctr;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ctr = _tmp11_ + 1;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = photo;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ photo_get_photo_id (_tmp12_, &_tmp13_);
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = _tmp13_.id;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_[_tmp11_] = _tmp14_;
+#line 173 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = _tmp10_[_tmp11_];
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (photo);
+#line 1494 "misc.c"
+ }
+#line 172 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (_photo_it);
+#line 1498 "misc.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp16_ = photos;
+#line 175 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp17_ = gee_collection_get_size (_tmp16_);
+#line 175 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = _tmp17_;
+#line 175 "/home/jens/Source/shotwell/src/util/misc.vala"
+ bytes = (gsize) (_tmp18_ * sizeof (gint64));
+#line 176 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp19_ = g_new0 (guchar, bytes);
+#line 176 "/home/jens/Source/shotwell/src/util/misc.vala"
+ serialized = _tmp19_;
+#line 176 "/home/jens/Source/shotwell/src/util/misc.vala"
+ serialized_length1 = bytes;
+#line 176 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _serialized_size_ = serialized_length1;
+#line 177 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20_ = ids;
+#line 177 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20__length1 = ids_length1;
+#line 177 "/home/jens/Source/shotwell/src/util/misc.vala"
+ memcpy (serialized, _tmp20_, bytes);
+#line 179 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21_ = serialized;
+#line 179 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21__length1 = serialized_length1;
+#line 179 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (result_length1) {
+#line 179 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *result_length1 = _tmp21__length1;
+#line 1530 "misc.c"
+ }
+#line 179 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp21_;
+#line 179 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ids = (g_free (ids), NULL);
+#line 179 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1538 "misc.c"
+}
+
+
+GeeList* unserialize_photo_ids (guchar* serialized, gint size) {
+ GeeList* result = NULL;
+ gsize count = 0UL;
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gsize _tmp2_ = 0UL;
+ gint64* ids = NULL;
+ gsize _tmp4_ = 0UL;
+ gint64* _tmp5_ = NULL;
+ gint ids_length1 = 0;
+ gint _ids_size_ = 0;
+ gint64* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ guchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ GeeArrayList* list = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ gint64* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 183 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = size;
+#line 183 "/home/jens/Source/shotwell/src/util/misc.vala"
+ count = (gsize) (_tmp0_ / sizeof (gint64));
+#line 184 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = count;
+#line 184 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp2_ <= ((gsize) 0)) {
+#line 184 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = TRUE;
+#line 1571 "misc.c"
+ } else {
+ guchar* _tmp3_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = serialized;
+#line 184 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = _tmp3_ == NULL;
+#line 1578 "misc.c"
+ }
+#line 184 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp1_) {
+#line 185 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = NULL;
+#line 185 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1586 "misc.c"
+ }
+#line 187 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = count;
+#line 187 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = g_new0 (gint64, _tmp4_);
+#line 187 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ids = _tmp5_;
+#line 187 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ids_length1 = _tmp4_;
+#line 187 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _ids_size_ = ids_length1;
+#line 188 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = ids;
+#line 188 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6__length1 = ids_length1;
+#line 188 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = serialized;
+#line 188 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = size;
+#line 188 "/home/jens/Source/shotwell/src/util/misc.vala"
+ memcpy (_tmp6_, _tmp7_, (gsize) _tmp8_);
+#line 190 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = gee_array_list_new (TYPE_PHOTO_ID, (GBoxedCopyFunc) photo_id_dup, photo_id_free, NULL, NULL, NULL);
+#line 190 "/home/jens/Source/shotwell/src/util/misc.vala"
+ list = _tmp9_;
+#line 191 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = ids;
+#line 191 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10__length1 = ids_length1;
+#line 1616 "misc.c"
+ {
+ gint64* id_collection = NULL;
+ gint id_collection_length1 = 0;
+ gint _id_collection_size_ = 0;
+ gint id_it = 0;
+#line 191 "/home/jens/Source/shotwell/src/util/misc.vala"
+ id_collection = _tmp10_;
+#line 191 "/home/jens/Source/shotwell/src/util/misc.vala"
+ id_collection_length1 = _tmp10__length1;
+#line 191 "/home/jens/Source/shotwell/src/util/misc.vala"
+ for (id_it = 0; id_it < _tmp10__length1; id_it = id_it + 1) {
+#line 1628 "misc.c"
+ gint64 id = 0LL;
+#line 191 "/home/jens/Source/shotwell/src/util/misc.vala"
+ id = id_collection[id_it];
+#line 1632 "misc.c"
+ {
+ GeeArrayList* _tmp11_ = NULL;
+ gint64 _tmp12_ = 0LL;
+ PhotoID _tmp13_ = {0};
+#line 192 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = list;
+#line 192 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = id;
+#line 192 "/home/jens/Source/shotwell/src/util/misc.vala"
+ photo_id_init (&_tmp13_, _tmp12_);
+#line 192 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp11_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), &_tmp13_);
+#line 1645 "misc.c"
+ }
+ }
+ }
+#line 194 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (list, GEE_TYPE_LIST, GeeList);
+#line 194 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ids = (g_free (ids), NULL);
+#line 194 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1655 "misc.c"
+}
+
+
+guchar* serialize_media_sources (GeeCollection* media, int* result_length1) {
+ guchar* result = NULL;
+ GdkAtom* atoms = NULL;
+ GeeCollection* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+ GdkAtom* _tmp3_ = NULL;
+ gint atoms_length1 = 0;
+ gint _atoms_size_ = 0;
+ gint ctr = 0;
+ gsize bytes = 0UL;
+ GeeCollection* _tmp17_ = NULL;
+ gint _tmp18_ = 0;
+ gint _tmp19_ = 0;
+ guchar* serialized = NULL;
+ guchar* _tmp20_ = NULL;
+ gint serialized_length1 = 0;
+ gint _serialized_size_ = 0;
+ GdkAtom* _tmp21_ = NULL;
+ gint _tmp21__length1 = 0;
+ guchar* _tmp22_ = NULL;
+ gint _tmp22__length1 = 0;
+#line 197 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (GEE_IS_COLLECTION (media), NULL);
+#line 198 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = media;
+#line 198 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = gee_collection_get_size (_tmp0_);
+#line 198 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = _tmp1_;
+#line 198 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = g_new0 (GdkAtom, _tmp2_);
+#line 198 "/home/jens/Source/shotwell/src/util/misc.vala"
+ atoms = _tmp3_;
+#line 198 "/home/jens/Source/shotwell/src/util/misc.vala"
+ atoms_length1 = _tmp2_;
+#line 198 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _atoms_size_ = atoms_length1;
+#line 199 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ctr = 0;
+#line 1699 "misc.c"
+ {
+ GeeIterator* _current_media_it = NULL;
+ GeeCollection* _tmp4_ = NULL;
+ GeeIterator* _tmp5_ = NULL;
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = media;
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = gee_iterable_iterator (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, GEE_TYPE_ITERABLE, GeeIterable));
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _current_media_it = _tmp5_;
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ while (TRUE) {
+#line 1712 "misc.c"
+ GeeIterator* _tmp6_ = NULL;
+ gboolean _tmp7_ = FALSE;
+ MediaSource* current_media = NULL;
+ GeeIterator* _tmp8_ = NULL;
+ gpointer _tmp9_ = NULL;
+ GdkAtom* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+ gint _tmp11_ = 0;
+ MediaSource* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ GdkAtom _tmp15_ = 0U;
+ GdkAtom _tmp16_ = 0U;
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = _current_media_it;
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = gee_iterator_next (_tmp6_);
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!_tmp7_) {
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ break;
+#line 1734 "misc.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = _current_media_it;
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = gee_iterator_get (_tmp8_);
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ current_media = (MediaSource*) _tmp9_;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = atoms;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10__length1 = atoms_length1;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = ctr;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ctr = _tmp11_ + 1;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = current_media;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp13_ = data_source_get_source_id (G_TYPE_CHECK_INSTANCE_CAST (_tmp12_, TYPE_DATA_SOURCE, DataSource));
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = _tmp13_;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = gdk_atom_intern (_tmp14_, FALSE);
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_[_tmp11_] = _tmp15_;
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp16_ = _tmp10_[_tmp11_];
+#line 201 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp14_);
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (current_media);
+#line 1766 "misc.c"
+ }
+#line 200 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (_current_media_it);
+#line 1770 "misc.c"
+ }
+#line 203 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp17_ = media;
+#line 203 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = gee_collection_get_size (_tmp17_);
+#line 203 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp19_ = _tmp18_;
+#line 203 "/home/jens/Source/shotwell/src/util/misc.vala"
+ bytes = (gsize) (_tmp19_ * sizeof (GdkAtom));
+#line 204 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20_ = g_new0 (guchar, bytes);
+#line 204 "/home/jens/Source/shotwell/src/util/misc.vala"
+ serialized = _tmp20_;
+#line 204 "/home/jens/Source/shotwell/src/util/misc.vala"
+ serialized_length1 = bytes;
+#line 204 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _serialized_size_ = serialized_length1;
+#line 205 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21_ = atoms;
+#line 205 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21__length1 = atoms_length1;
+#line 205 "/home/jens/Source/shotwell/src/util/misc.vala"
+ memcpy (serialized, _tmp21_, bytes);
+#line 207 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp22_ = serialized;
+#line 207 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp22__length1 = serialized_length1;
+#line 207 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (result_length1) {
+#line 207 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *result_length1 = _tmp22__length1;
+#line 1802 "misc.c"
+ }
+#line 207 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp22_;
+#line 207 "/home/jens/Source/shotwell/src/util/misc.vala"
+ atoms = (g_free (atoms), NULL);
+#line 207 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1810 "misc.c"
+}
+
+
+GeeList* unserialize_media_sources (guchar* serialized, gint size) {
+ GeeList* result = NULL;
+ gsize count = 0UL;
+ gint _tmp0_ = 0;
+ gboolean _tmp1_ = FALSE;
+ gsize _tmp2_ = 0UL;
+ GdkAtom* atoms = NULL;
+ gsize _tmp4_ = 0UL;
+ GdkAtom* _tmp5_ = NULL;
+ gint atoms_length1 = 0;
+ gint _atoms_size_ = 0;
+ GdkAtom* _tmp6_ = NULL;
+ gint _tmp6__length1 = 0;
+ guchar* _tmp7_ = NULL;
+ gint _tmp8_ = 0;
+ GeeArrayList* list = NULL;
+ GeeArrayList* _tmp9_ = NULL;
+ GdkAtom* _tmp10_ = NULL;
+ gint _tmp10__length1 = 0;
+#line 211 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = size;
+#line 211 "/home/jens/Source/shotwell/src/util/misc.vala"
+ count = (gsize) (_tmp0_ / sizeof (GdkAtom));
+#line 212 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = count;
+#line 212 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp2_ <= ((gsize) 0)) {
+#line 212 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = TRUE;
+#line 1843 "misc.c"
+ } else {
+ guchar* _tmp3_ = NULL;
+#line 212 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = serialized;
+#line 212 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = _tmp3_ == NULL;
+#line 1850 "misc.c"
+ }
+#line 212 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp1_) {
+#line 213 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = NULL;
+#line 213 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1858 "misc.c"
+ }
+#line 215 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = count;
+#line 215 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = g_new0 (GdkAtom, _tmp4_);
+#line 215 "/home/jens/Source/shotwell/src/util/misc.vala"
+ atoms = _tmp5_;
+#line 215 "/home/jens/Source/shotwell/src/util/misc.vala"
+ atoms_length1 = _tmp4_;
+#line 215 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _atoms_size_ = atoms_length1;
+#line 216 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = atoms;
+#line 216 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6__length1 = atoms_length1;
+#line 216 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = serialized;
+#line 216 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = size;
+#line 216 "/home/jens/Source/shotwell/src/util/misc.vala"
+ memcpy (_tmp6_, _tmp7_, (gsize) _tmp8_);
+#line 218 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = gee_array_list_new (TYPE_MEDIA_SOURCE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
+#line 218 "/home/jens/Source/shotwell/src/util/misc.vala"
+ list = _tmp9_;
+#line 219 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = atoms;
+#line 219 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10__length1 = atoms_length1;
+#line 1888 "misc.c"
+ {
+ GdkAtom* current_atom_collection = NULL;
+ gint current_atom_collection_length1 = 0;
+ gint _current_atom_collection_size_ = 0;
+ gint current_atom_it = 0;
+#line 219 "/home/jens/Source/shotwell/src/util/misc.vala"
+ current_atom_collection = _tmp10_;
+#line 219 "/home/jens/Source/shotwell/src/util/misc.vala"
+ current_atom_collection_length1 = _tmp10__length1;
+#line 219 "/home/jens/Source/shotwell/src/util/misc.vala"
+ for (current_atom_it = 0; current_atom_it < _tmp10__length1; current_atom_it = current_atom_it + 1) {
+#line 1900 "misc.c"
+ GdkAtom current_atom = 0U;
+#line 219 "/home/jens/Source/shotwell/src/util/misc.vala"
+ current_atom = current_atom_collection[current_atom_it];
+#line 1904 "misc.c"
+ {
+ MediaSource* media = NULL;
+ MediaCollectionRegistry* _tmp11_ = NULL;
+ MediaCollectionRegistry* _tmp12_ = NULL;
+ GdkAtom _tmp13_ = 0U;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+ MediaSource* _tmp16_ = NULL;
+ MediaSource* _tmp17_ = NULL;
+ MediaSource* _tmp18_ = NULL;
+ GeeArrayList* _tmp19_ = NULL;
+ MediaSource* _tmp20_ = NULL;
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = media_collection_registry_get_instance ();
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = _tmp11_;
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp13_ = current_atom;
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = gdk_atom_name (_tmp13_);
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = _tmp14_;
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp16_ = media_collection_registry_fetch_media (_tmp12_, _tmp15_);
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp17_ = _tmp16_;
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp15_);
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _media_collection_registry_unref0 (_tmp12_);
+#line 220 "/home/jens/Source/shotwell/src/util/misc.vala"
+ media = _tmp17_;
+#line 221 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = media;
+#line 221 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _vala_assert (_tmp18_ != NULL, "media != null");
+#line 222 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp19_ = list;
+#line 222 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20_ = media;
+#line 222 "/home/jens/Source/shotwell/src/util/misc.vala"
+ gee_abstract_collection_add (G_TYPE_CHECK_INSTANCE_CAST (_tmp19_, GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection), _tmp20_);
+#line 219 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_object_unref0 (media);
+#line 1949 "misc.c"
+ }
+ }
+ }
+#line 225 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = G_TYPE_CHECK_INSTANCE_CAST (list, GEE_TYPE_LIST, GeeList);
+#line 225 "/home/jens/Source/shotwell/src/util/misc.vala"
+ atoms = (g_free (atoms), NULL);
+#line 225 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 1959 "misc.c"
+}
+
+
+static gchar* g_time_format (struct tm *self, const gchar* format) {
+ gchar* result = NULL;
+ gchar* buffer = NULL;
+ gchar* _tmp0_ = NULL;
+ gint buffer_length1 = 0;
+ gint _buffer_size_ = 0;
+ gchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _tmp3__length1 = 0;
+ gchar* _tmp4_ = NULL;
+#line 2709 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (format != NULL, NULL);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 64);
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = _tmp0_;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer_length1 = 64;
+#line 2710 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _buffer_size_ = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = buffer;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1__length1 = buffer_length1;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = format;
+#line 2711 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ strftime (_tmp1_, _tmp1__length1, _tmp2_, &(*self));
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = buffer;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3__length1 = buffer_length1;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_strdup ((const gchar*) _tmp3_);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ buffer = (g_free (buffer), NULL);
+#line 2712 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 2005 "misc.c"
+}
+
+
+gchar* format_local_datespan (struct tm* from_date, struct tm* to_date) {
+ gchar* result = NULL;
+ gchar* from_format = NULL;
+ gchar* to_format = NULL;
+ struct tm _tmp0_ = {0};
+ gint _tmp1_ = 0;
+ struct tm _tmp2_ = {0};
+ gint _tmp3_ = 0;
+ const gchar* _tmp19_ = NULL;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ const gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ gchar* _tmp25_ = NULL;
+ gchar* _tmp26_ = NULL;
+ gchar* _tmp27_ = NULL;
+ gchar* _tmp28_ = NULL;
+#line 228 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (from_date != NULL, NULL);
+#line 228 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (to_date != NULL, NULL);
+#line 233 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = *from_date;
+#line 233 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = _tmp0_.tm_year;
+#line 233 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = *to_date;
+#line 233 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = _tmp2_.tm_year;
+#line 233 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp1_ == _tmp3_) {
+#line 2041 "misc.c"
+ gboolean _tmp4_ = FALSE;
+ struct tm _tmp5_ = {0};
+ gint _tmp6_ = 0;
+ struct tm _tmp7_ = {0};
+ gint _tmp8_ = 0;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = *from_date;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = _tmp5_.tm_mon;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = *to_date;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = _tmp7_.tm_mon;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp6_ == _tmp8_) {
+#line 2057 "misc.c"
+ struct tm _tmp9_ = {0};
+ gint _tmp10_ = 0;
+ struct tm _tmp11_ = {0};
+ gint _tmp12_ = 0;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = *from_date;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = _tmp9_.tm_mday;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp11_ = *to_date;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp12_ = _tmp11_.tm_mday;
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = _tmp10_ == (_tmp12_ - 1);
+#line 2072 "misc.c"
+ } else {
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = FALSE;
+#line 2076 "misc.c"
+ }
+#line 235 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp4_) {
+#line 2080 "misc.c"
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+#line 237 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp13_ = resources_get_start_multiday_span_format_string ();
+#line 237 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (from_format);
+#line 237 "/home/jens/Source/shotwell/src/util/misc.vala"
+ from_format = _tmp13_;
+#line 238 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp14_ = resources_get_end_multiday_span_format_string ();
+#line 238 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (to_format);
+#line 238 "/home/jens/Source/shotwell/src/util/misc.vala"
+ to_format = _tmp14_;
+#line 2095 "misc.c"
+ } else {
+ gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 242 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp15_ = resources_get_start_multimonth_span_format_string ();
+#line 242 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (from_format);
+#line 242 "/home/jens/Source/shotwell/src/util/misc.vala"
+ from_format = _tmp15_;
+#line 243 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp16_ = resources_get_end_multimonth_span_format_string ();
+#line 243 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (to_format);
+#line 243 "/home/jens/Source/shotwell/src/util/misc.vala"
+ to_format = _tmp16_;
+#line 2111 "misc.c"
+ }
+ } else {
+ gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 248 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp17_ = resources_get_long_date_format_string ();
+#line 248 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (from_format);
+#line 248 "/home/jens/Source/shotwell/src/util/misc.vala"
+ from_format = _tmp17_;
+#line 249 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp18_ = resources_get_long_date_format_string ();
+#line 249 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (to_format);
+#line 249 "/home/jens/Source/shotwell/src/util/misc.vala"
+ to_format = _tmp18_;
+#line 2128 "misc.c"
+ }
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp19_ = from_format;
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp20_ = g_time_format (from_date, _tmp19_);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp21_ = _tmp20_;
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp22_ = to_format;
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp23_ = g_time_format (to_date, _tmp22_);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp24_ = _tmp23_;
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp25_ = g_strdup_printf ("%s - %s", _tmp21_, _tmp24_);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp26_ = _tmp25_;
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp27_ = string_strip_leading_zeroes (_tmp26_);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp28_ = _tmp27_;
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp26_);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp24_);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp21_);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp28_;
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (to_format);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (from_format);
+#line 252 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 2164 "misc.c"
+}
+
+
+gchar* format_local_date (struct tm* date) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+#line 256 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (date != NULL, NULL);
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = resources_get_long_date_format_string ();
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = _tmp0_;
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = g_time_format (date, _tmp1_);
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = _tmp2_;
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = string_strip_leading_zeroes (_tmp3_);
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = _tmp4_;
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp3_);
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp1_);
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp5_;
+#line 257 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 2198 "misc.c"
+}
+
+
+OneShotScheduler* one_shot_scheduler_construct (GType object_type, const gchar* name, OneShotCallback callback, void* callback_target) {
+ OneShotScheduler* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ OneShotCallback _tmp2_ = NULL;
+ void* _tmp2__target = NULL;
+#line 267 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 267 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self = (OneShotScheduler*) g_type_create_instance (object_type);
+#line 268 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = name;
+#line 268 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 268 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (self->priv->name);
+#line 268 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->name = _tmp1_;
+#line 269 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = callback;
+#line 269 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2__target = callback_target;
+#line 269 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->callback = _tmp2_;
+#line 269 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->callback_target = _tmp2__target;
+#line 267 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return self;
+#line 2230 "misc.c"
+}
+
+
+OneShotScheduler* one_shot_scheduler_new (const gchar* name, OneShotCallback callback, void* callback_target) {
+#line 267 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return one_shot_scheduler_construct (TYPE_ONE_SHOT_SCHEDULER, name, callback, callback_target);
+#line 2237 "misc.c"
+}
+
+
+gboolean one_shot_scheduler_is_scheduled (OneShotScheduler* self) {
+ gboolean result = FALSE;
+ guint _tmp0_ = 0U;
+#line 280 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (IS_ONE_SHOT_SCHEDULER (self), FALSE);
+#line 281 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = self->priv->scheduled;
+#line 281 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp0_ != ((guint) 0);
+#line 281 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 2252 "misc.c"
+}
+
+
+void one_shot_scheduler_at_idle (OneShotScheduler* self) {
+#line 284 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (IS_ONE_SHOT_SCHEDULER (self));
+#line 285 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_at_priority_idle (self, G_PRIORITY_DEFAULT_IDLE);
+#line 2261 "misc.c"
+}
+
+
+static gboolean _one_shot_scheduler_callback_wrapper_gsource_func (gpointer self) {
+ gboolean result;
+ result = one_shot_scheduler_callback_wrapper ((OneShotScheduler*) self);
+#line 290 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 2270 "misc.c"
+}
+
+
+void one_shot_scheduler_at_priority_idle (OneShotScheduler* self, gint priority) {
+ guint _tmp0_ = 0U;
+#line 288 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (IS_ONE_SHOT_SCHEDULER (self));
+#line 289 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = self->priv->scheduled;
+#line 289 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp0_ == ((guint) 0)) {
+#line 2282 "misc.c"
+ gint _tmp1_ = 0;
+ guint _tmp2_ = 0U;
+#line 290 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = priority;
+#line 290 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = g_idle_add_full (_tmp1_, _one_shot_scheduler_callback_wrapper_gsource_func, one_shot_scheduler_ref (self), one_shot_scheduler_unref);
+#line 290 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->scheduled = _tmp2_;
+#line 2291 "misc.c"
+ }
+}
+
+
+void one_shot_scheduler_after_timeout (OneShotScheduler* self, guint msec, gboolean reschedule) {
+ guint _tmp0_ = 0U;
+ gboolean _tmp1_ = FALSE;
+#line 293 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (IS_ONE_SHOT_SCHEDULER (self));
+#line 294 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = msec;
+#line 294 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = reschedule;
+#line 294 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_priority_after_timeout (self, G_PRIORITY_DEFAULT, _tmp0_, _tmp1_);
+#line 2307 "misc.c"
+}
+
+
+void one_shot_scheduler_priority_after_timeout (OneShotScheduler* self, gint priority, guint msec, gboolean reschedule) {
+ gboolean _tmp0_ = FALSE;
+ guint _tmp1_ = 0U;
+ guint _tmp3_ = 0U;
+ gint _tmp5_ = 0;
+ guint _tmp6_ = 0U;
+ guint _tmp7_ = 0U;
+#line 297 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (IS_ONE_SHOT_SCHEDULER (self));
+#line 298 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = self->priv->scheduled;
+#line 298 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp1_ != ((guint) 0)) {
+#line 2324 "misc.c"
+ gboolean _tmp2_ = FALSE;
+#line 298 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = reschedule;
+#line 298 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = !_tmp2_;
+#line 2330 "misc.c"
+ } else {
+#line 298 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = FALSE;
+#line 2334 "misc.c"
+ }
+#line 298 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp0_) {
+#line 299 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return;
+#line 2340 "misc.c"
+ }
+#line 301 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = self->priv->scheduled;
+#line 301 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp3_ != ((guint) 0)) {
+#line 2346 "misc.c"
+ guint _tmp4_ = 0U;
+#line 302 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = self->priv->scheduled;
+#line 302 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_source_remove (_tmp4_);
+#line 2352 "misc.c"
+ }
+#line 304 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = priority;
+#line 304 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = msec;
+#line 304 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = g_timeout_add_full (_tmp5_, _tmp6_, _one_shot_scheduler_callback_wrapper_gsource_func, one_shot_scheduler_ref (self), one_shot_scheduler_unref);
+#line 304 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->scheduled = _tmp7_;
+#line 2362 "misc.c"
+}
+
+
+void one_shot_scheduler_cancel (OneShotScheduler* self) {
+ guint _tmp0_ = 0U;
+ guint _tmp1_ = 0U;
+#line 307 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (IS_ONE_SHOT_SCHEDULER (self));
+#line 308 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = self->priv->scheduled;
+#line 308 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp0_ == ((guint) 0)) {
+#line 309 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return;
+#line 2377 "misc.c"
+ }
+#line 311 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = self->priv->scheduled;
+#line 311 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_source_remove (_tmp1_);
+#line 312 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->scheduled = (guint) 0;
+#line 2385 "misc.c"
+}
+
+
+static gboolean one_shot_scheduler_callback_wrapper (OneShotScheduler* self) {
+ gboolean result = FALSE;
+ OneShotCallback _tmp0_ = NULL;
+ void* _tmp0__target = NULL;
+#line 315 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (IS_ONE_SHOT_SCHEDULER (self), FALSE);
+#line 316 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->scheduled = (guint) 0;
+#line 317 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = self->priv->callback;
+#line 317 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0__target = self->priv->callback_target;
+#line 317 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ (_tmp0__target);
+#line 319 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = FALSE;
+#line 319 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 2407 "misc.c"
+}
+
+
+static void value_one_shot_scheduler_init (GValue* value) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2414 "misc.c"
+}
+
+
+static void value_one_shot_scheduler_free_value (GValue* value) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (value->data[0].v_pointer) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_unref (value->data[0].v_pointer);
+#line 2423 "misc.c"
+ }
+}
+
+
+static void value_one_shot_scheduler_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (src_value->data[0].v_pointer) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ dest_value->data[0].v_pointer = one_shot_scheduler_ref (src_value->data[0].v_pointer);
+#line 2433 "misc.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2437 "misc.c"
+ }
+}
+
+
+static gpointer value_one_shot_scheduler_peek_pointer (const GValue* value) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return value->data[0].v_pointer;
+#line 2445 "misc.c"
+}
+
+
+static gchar* value_one_shot_scheduler_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (collect_values[0].v_pointer) {
+#line 2452 "misc.c"
+ OneShotScheduler* object;
+ object = collect_values[0].v_pointer;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2459 "misc.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2463 "misc.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = one_shot_scheduler_ref (object);
+#line 2467 "misc.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2471 "misc.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return NULL;
+#line 2475 "misc.c"
+}
+
+
+static gchar* value_one_shot_scheduler_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ OneShotScheduler** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!object_p) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2486 "misc.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!value->data[0].v_pointer) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *object_p = NULL;
+#line 2492 "misc.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2496 "misc.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *object_p = one_shot_scheduler_ref (value->data[0].v_pointer);
+#line 2500 "misc.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return NULL;
+#line 2504 "misc.c"
+}
+
+
+GParamSpec* param_spec_one_shot_scheduler (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecOneShotScheduler* spec;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_ONE_SHOT_SCHEDULER), NULL);
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return G_PARAM_SPEC (spec);
+#line 2518 "misc.c"
+}
+
+
+gpointer value_get_one_shot_scheduler (const GValue* value) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ONE_SHOT_SCHEDULER), NULL);
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return value->data[0].v_pointer;
+#line 2527 "misc.c"
+}
+
+
+void value_set_one_shot_scheduler (GValue* value, gpointer v_object) {
+ OneShotScheduler* old;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ONE_SHOT_SCHEDULER));
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ old = value->data[0].v_pointer;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (v_object) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ONE_SHOT_SCHEDULER));
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = v_object;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_ref (value->data[0].v_pointer);
+#line 2547 "misc.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2551 "misc.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (old) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_unref (old);
+#line 2557 "misc.c"
+ }
+}
+
+
+void value_take_one_shot_scheduler (GValue* value, gpointer v_object) {
+ OneShotScheduler* old;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ONE_SHOT_SCHEDULER));
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ old = value->data[0].v_pointer;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (v_object) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ONE_SHOT_SCHEDULER));
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = v_object;
+#line 2576 "misc.c"
+ } else {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2580 "misc.c"
+ }
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (old) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_unref (old);
+#line 2586 "misc.c"
+ }
+}
+
+
+static void one_shot_scheduler_class_init (OneShotSchedulerClass * klass) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_parent_class = g_type_class_peek_parent (klass);
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ((OneShotSchedulerClass *) klass)->finalize = one_shot_scheduler_finalize;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_type_class_add_private (klass, sizeof (OneShotSchedulerPrivate));
+#line 2598 "misc.c"
+}
+
+
+static void one_shot_scheduler_instance_init (OneShotScheduler * self) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv = ONE_SHOT_SCHEDULER_GET_PRIVATE (self);
+#line 265 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->scheduled = (guint) 0;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->ref_count = 1;
+#line 2609 "misc.c"
+}
+
+
+static void one_shot_scheduler_finalize (OneShotScheduler* obj) {
+ OneShotScheduler * self;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ONE_SHOT_SCHEDULER, OneShotScheduler);
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_signal_handlers_destroy (self);
+#line 277 "/home/jens/Source/shotwell/src/util/misc.vala"
+ one_shot_scheduler_cancel (self);
+#line 263 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (self->priv->name);
+#line 2623 "misc.c"
+}
+
+
+GType one_shot_scheduler_get_type (void) {
+ static volatile gsize one_shot_scheduler_type_id__volatile = 0;
+ if (g_once_init_enter (&one_shot_scheduler_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_one_shot_scheduler_init, value_one_shot_scheduler_free_value, value_one_shot_scheduler_copy_value, value_one_shot_scheduler_peek_pointer, "p", value_one_shot_scheduler_collect_value, "p", value_one_shot_scheduler_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (OneShotSchedulerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) one_shot_scheduler_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (OneShotScheduler), 0, (GInstanceInitFunc) one_shot_scheduler_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType one_shot_scheduler_type_id;
+ one_shot_scheduler_type_id = g_type_register_fundamental (g_type_fundamental_next (), "OneShotScheduler", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&one_shot_scheduler_type_id__volatile, one_shot_scheduler_type_id);
+ }
+ return one_shot_scheduler_type_id__volatile;
+}
+
+
+gpointer one_shot_scheduler_ref (gpointer instance) {
+ OneShotScheduler* self;
+ self = instance;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return instance;
+#line 2648 "misc.c"
+}
+
+
+void one_shot_scheduler_unref (gpointer instance) {
+ OneShotScheduler* self;
+ self = instance;
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ONE_SHOT_SCHEDULER_GET_CLASS (self)->finalize (self);
+#line 262 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 2661 "misc.c"
+ }
+}
+
+
+OpTimer* op_timer_construct (GType object_type, const gchar* name) {
+ OpTimer* self = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 331 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (name != NULL, NULL);
+#line 331 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self = (OpTimer*) g_type_create_instance (object_type);
+#line 332 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = name;
+#line 332 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = g_strdup (_tmp0_);
+#line 332 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (self->priv->name);
+#line 332 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->name = _tmp1_;
+#line 331 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return self;
+#line 2684 "misc.c"
+}
+
+
+OpTimer* op_timer_new (const gchar* name) {
+#line 331 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return op_timer_construct (TYPE_OP_TIMER, name);
+#line 2691 "misc.c"
+}
+
+
+void op_timer_start (OpTimer* self) {
+ GTimer* _tmp0_ = NULL;
+#line 335 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (IS_OP_TIMER (self));
+#line 336 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = self->priv->timer;
+#line 336 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_timer_start (_tmp0_);
+#line 2703 "misc.c"
+}
+
+
+void op_timer_stop (OpTimer* self) {
+ gdouble time = 0.0;
+ GTimer* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ gdouble _tmp2_ = 0.0;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ gdouble _tmp7_ = 0.0;
+ gdouble _tmp8_ = 0.0;
+ glong _tmp10_ = 0L;
+#line 339 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (IS_OP_TIMER (self));
+#line 340 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = self->priv->timer;
+#line 340 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = g_timer_elapsed (_tmp0_, NULL);
+#line 340 "/home/jens/Source/shotwell/src/util/misc.vala"
+ time = _tmp1_;
+#line 342 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = self->priv->elapsed;
+#line 342 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = time;
+#line 342 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->elapsed = _tmp2_ + _tmp3_;
+#line 344 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = time;
+#line 344 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = self->priv->shortest;
+#line 344 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp4_ < _tmp5_) {
+#line 2738 "misc.c"
+ gdouble _tmp6_ = 0.0;
+#line 345 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = time;
+#line 345 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->shortest = _tmp6_;
+#line 2744 "misc.c"
+ }
+#line 347 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = time;
+#line 347 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = self->priv->longest;
+#line 347 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp7_ > _tmp8_) {
+#line 2752 "misc.c"
+ gdouble _tmp9_ = 0.0;
+#line 348 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = time;
+#line 348 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->longest = _tmp9_;
+#line 2758 "misc.c"
+ }
+#line 350 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = self->priv->count;
+#line 350 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->count = _tmp10_ + 1;
+#line 2764 "misc.c"
+}
+
+
+gchar* op_timer_to_string (OpTimer* self) {
+ gchar* result = NULL;
+ glong _tmp0_ = 0L;
+#line 353 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (IS_OP_TIMER (self), NULL);
+#line 354 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = self->priv->count;
+#line 354 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (_tmp0_ > ((glong) 0)) {
+#line 2777 "misc.c"
+ const gchar* _tmp1_ = NULL;
+ glong _tmp2_ = 0L;
+ gdouble _tmp3_ = 0.0;
+ gdouble _tmp4_ = 0.0;
+ gdouble _tmp5_ = 0.0;
+ glong _tmp6_ = 0L;
+ gdouble _tmp7_ = 0.0;
+ gchar* _tmp8_ = NULL;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = self->priv->name;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = self->priv->count;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = self->priv->elapsed;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = self->priv->shortest;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp5_ = self->priv->elapsed;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp6_ = self->priv->count;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp7_ = self->priv->longest;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp8_ = g_strdup_printf ("%s: count=%ld elapsed=%.03lfs min/avg/max=%.03lf/%.03lf/%.03lf", _tmp1_, _tmp2_, _tmp3_, _tmp4_, _tmp5_ / ((gdouble) _tmp6_), _tmp7_);
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp8_;
+#line 355 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 2806 "misc.c"
+ } else {
+ const gchar* _tmp9_ = NULL;
+ gchar* _tmp10_ = NULL;
+#line 358 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp9_ = self->priv->name;
+#line 358 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp10_ = g_strdup_printf ("%s: no operations", _tmp9_);
+#line 358 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp10_;
+#line 358 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 2818 "misc.c"
+ }
+}
+
+
+static void value_op_timer_init (GValue* value) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2826 "misc.c"
+}
+
+
+static void value_op_timer_free_value (GValue* value) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (value->data[0].v_pointer) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ op_timer_unref (value->data[0].v_pointer);
+#line 2835 "misc.c"
+ }
+}
+
+
+static void value_op_timer_copy_value (const GValue* src_value, GValue* dest_value) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (src_value->data[0].v_pointer) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ dest_value->data[0].v_pointer = op_timer_ref (src_value->data[0].v_pointer);
+#line 2845 "misc.c"
+ } else {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ dest_value->data[0].v_pointer = NULL;
+#line 2849 "misc.c"
+ }
+}
+
+
+static gpointer value_op_timer_peek_pointer (const GValue* value) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return value->data[0].v_pointer;
+#line 2857 "misc.c"
+}
+
+
+static gchar* value_op_timer_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (collect_values[0].v_pointer) {
+#line 2864 "misc.c"
+ OpTimer* object;
+ object = collect_values[0].v_pointer;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (object->parent_instance.g_class == NULL) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2871 "misc.c"
+ } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+#line 2875 "misc.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = op_timer_ref (object);
+#line 2879 "misc.c"
+ } else {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2883 "misc.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return NULL;
+#line 2887 "misc.c"
+}
+
+
+static gchar* value_op_timer_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+ OpTimer** object_p;
+ object_p = collect_values[0].v_pointer;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!object_p) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+#line 2898 "misc.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (!value->data[0].v_pointer) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *object_p = NULL;
+#line 2904 "misc.c"
+ } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *object_p = value->data[0].v_pointer;
+#line 2908 "misc.c"
+ } else {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ *object_p = op_timer_ref (value->data[0].v_pointer);
+#line 2912 "misc.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return NULL;
+#line 2916 "misc.c"
+}
+
+
+GParamSpec* param_spec_op_timer (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+ ParamSpecOpTimer* spec;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (g_type_is_a (object_type, TYPE_OP_TIMER), NULL);
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ G_PARAM_SPEC (spec)->value_type = object_type;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return G_PARAM_SPEC (spec);
+#line 2930 "misc.c"
+}
+
+
+gpointer value_get_op_timer (const GValue* value) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_OP_TIMER), NULL);
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return value->data[0].v_pointer;
+#line 2939 "misc.c"
+}
+
+
+void value_set_op_timer (GValue* value, gpointer v_object) {
+ OpTimer* old;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_OP_TIMER));
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ old = value->data[0].v_pointer;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (v_object) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_OP_TIMER));
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = v_object;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ op_timer_ref (value->data[0].v_pointer);
+#line 2959 "misc.c"
+ } else {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2963 "misc.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (old) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ op_timer_unref (old);
+#line 2969 "misc.c"
+ }
+}
+
+
+void value_take_op_timer (GValue* value, gpointer v_object) {
+ OpTimer* old;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_OP_TIMER));
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ old = value->data[0].v_pointer;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (v_object) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_OP_TIMER));
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = v_object;
+#line 2988 "misc.c"
+ } else {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ value->data[0].v_pointer = NULL;
+#line 2992 "misc.c"
+ }
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (old) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ op_timer_unref (old);
+#line 2998 "misc.c"
+ }
+}
+
+
+static void op_timer_class_init (OpTimerClass * klass) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ op_timer_parent_class = g_type_class_peek_parent (klass);
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ ((OpTimerClass *) klass)->finalize = op_timer_finalize;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_type_class_add_private (klass, sizeof (OpTimerPrivate));
+#line 3010 "misc.c"
+}
+
+
+static void op_timer_instance_init (OpTimer * self) {
+ GTimer* _tmp0_ = NULL;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv = OP_TIMER_GET_PRIVATE (self);
+#line 325 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp0_ = g_timer_new ();
+#line 325 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->timer = _tmp0_;
+#line 326 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->count = (glong) 0;
+#line 327 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->elapsed = (gdouble) 0;
+#line 328 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->shortest = DBL_MAX;
+#line 329 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->priv->longest = DBL_MIN;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self->ref_count = 1;
+#line 3032 "misc.c"
+}
+
+
+static void op_timer_finalize (OpTimer* obj) {
+ OpTimer * self;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_OP_TIMER, OpTimer);
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_signal_handlers_destroy (self);
+#line 324 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (self->priv->name);
+#line 325 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_timer_destroy0 (self->priv->timer);
+#line 3046 "misc.c"
+}
+
+
+GType op_timer_get_type (void) {
+ static volatile gsize op_timer_type_id__volatile = 0;
+ if (g_once_init_enter (&op_timer_type_id__volatile)) {
+ static const GTypeValueTable g_define_type_value_table = { value_op_timer_init, value_op_timer_free_value, value_op_timer_copy_value, value_op_timer_peek_pointer, "p", value_op_timer_collect_value, "p", value_op_timer_lcopy_value };
+ static const GTypeInfo g_define_type_info = { sizeof (OpTimerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) op_timer_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (OpTimer), 0, (GInstanceInitFunc) op_timer_instance_init, &g_define_type_value_table };
+ static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+ GType op_timer_type_id;
+ op_timer_type_id = g_type_register_fundamental (g_type_fundamental_next (), "OpTimer", &g_define_type_info, &g_define_type_fundamental_info, 0);
+ g_once_init_leave (&op_timer_type_id__volatile, op_timer_type_id);
+ }
+ return op_timer_type_id__volatile;
+}
+
+
+gpointer op_timer_ref (gpointer instance) {
+ OpTimer* self;
+ self = instance;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_atomic_int_inc (&self->ref_count);
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return instance;
+#line 3071 "misc.c"
+}
+
+
+void op_timer_unref (gpointer instance) {
+ OpTimer* self;
+ self = instance;
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ if (g_atomic_int_dec_and_test (&self->ref_count)) {
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ OP_TIMER_GET_CLASS (self)->finalize (self);
+#line 323 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_type_free_instance ((GTypeInstance *) self);
+#line 3084 "misc.c"
+ }
+}
+
+
+void suppress_warnings (const gchar* log_domain, GLogLevelFlags log_levels, const gchar* message) {
+#line 369 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_return_if_fail (message != NULL);
+#line 3092 "misc.c"
+}
+
+
+static void g_time_local (time_t time, struct tm* result) {
+ struct tm _result_ = {0};
+ struct tm _tmp0_ = {0};
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ localtime_r (&time, &_tmp0_);
+#line 2701 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *result = _result_;
+#line 2702 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return;
+#line 3107 "misc.c"
+}
+
+
+gboolean is_twentyfour_hr_time_system (void) {
+ gboolean result = FALSE;
+ struct tm _tmp0_ = {0};
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+ gboolean _tmp4_ = FALSE;
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ g_time_local ((time_t) 0, &_tmp0_);
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp1_ = g_time_format (&_tmp0_, "%p");
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp2_ = _tmp1_;
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _tmp4_ = _tmp3_;
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ _g_free0 (_tmp2_);
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ result = _tmp4_;
+#line 375 "/home/jens/Source/shotwell/src/util/misc.vala"
+ return result;
+#line 3134 "misc.c"
+}
+
+
+
diff --git a/src/util/mk/util.mk b/src/util/mk/util.mk
deleted file mode 100644
index 86a8bd5..0000000
--- a/src/util/mk/util.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-
-# UNIT_NAME is the Vala namespace. A file named UNIT_NAME.vala must be in this directory with
-# a init() and terminate() function declared in the namespace.
-UNIT_NAME := Util
-
-# UNIT_DIR should match the subdirectory the files are located in. Generally UNIT_NAME in all
-# lowercase. The name of this file should be UNIT_DIR.mk.
-UNIT_DIR := util
-
-# All Vala files in the unit should be listed here with no subdirectory prefix.
-#
-# NOTE: Do *not* include the unit's master file, i.e. UNIT_NAME.vala.
-UNIT_FILES := \
- file.vala \
- image.vala \
- misc.vala \
- string.vala \
- system.vala \
- KeyValueMap.vala \
- ui.vala
-
-# Any unit this unit relies upon (and should be initialized before it's initialized) should
-# be listed here using its Vala namespace.
-#
-# NOTE: All units are assumed to rely upon the unit-unit. Do not include that here.
-UNIT_USES :=
-
-# List any additional files that are used in the build process as a part of this unit that should
-# be packaged in the tarball. File names should be relative to the unit's home directory.
-UNIT_RC :=
-
-# unitize.mk must be called at the end of each UNIT_DIR.mk file.
-include unitize.mk
-
diff --git a/src/util/string.c b/src/util/string.c
new file mode 100644
index 0000000..4cfeedd
--- /dev/null
+++ b/src/util/string.c
@@ -0,0 +1,2016 @@
+/* string.c generated by valac 0.32.1, the Vala compiler
+ * generated from string.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+
+#define TYPE_PREPARE_INPUT_TEXT_OPTIONS (prepare_input_text_options_get_type ())
+
+typedef enum {
+ PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL = 1 << 0,
+ PREPARE_INPUT_TEXT_OPTIONS_VALIDATE = 1 << 1,
+ PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL = 1 << 2,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP = 1 << 3,
+ PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF = 1 << 4,
+ PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE = 1 << 5,
+ PREPARE_INPUT_TEXT_OPTIONS_DEFAULT = ((((PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL | PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) | PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) | PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) | PREPARE_INPUT_TEXT_OPTIONS_STRIP) | PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE
+} PrepareInputTextOptions;
+
+
+
+gint64 g_ascii_strtoll (const gchar* str, gchar** endptr, guint num_base);
+#define DEFAULT_USER_TEXT_INPUT_LENGTH 1024
+gboolean is_string_empty (const gchar* s);
+gint utf8_cs_compare (void* a, void* b);
+gint utf8_ci_compare (void* a, void* b);
+gchar* uchar_array_to_string (guchar* data, int data_length1, gint length);
+guchar* string_to_uchar_array (const gchar* str, int* result_length1);
+static void _vala_array_add1 (guchar** array, int* length, int* size, guchar value);
+gchar* guarded_markup_escape_text (const gchar* plain);
+glong find_last_offset (const gchar* str, gchar c);
+gboolean is_in_ci_array (const gchar* str, gchar** strings, int strings_length1);
+GType prepare_input_text_options_get_type (void) G_GNUC_CONST;
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length);
+gint64 parse_int64 (const gchar* str, gint num_base);
+gboolean string_contains_char (const gchar* haystack, gunichar needle);
+gboolean string_contains_str (const gchar* haystack, const gchar* needle);
+gchar* string_sliced_at (const gchar* str, gint index);
+gchar* string_sliced_at_first_str (const gchar* haystack, const gchar* needle, gint start_index);
+gchar* string_sliced_at_last_str (const gchar* haystack, const gchar* needle, gint start_index);
+gchar* string_sliced_at_first_char (const gchar* haystack, gunichar ch, gint start_index);
+gchar* string_sliced_at_last_char (const gchar* haystack, gunichar ch, gint start_index);
+gchar* string_strip_leading_zeroes (const gchar* str);
+gchar* string_remove_diacritics (const gchar* istring);
+gchar* string_to_hex_string (const gchar* str);
+guint string_collated_hash (void* ptr);
+guint string_precollated_hash (void* ptr);
+gint string_collated_compare (void* a, void* b);
+gint string_precollated_compare (const gchar* astr, const gchar* akey, const gchar* bstr, const gchar* bkey);
+gboolean string_collated_equals (void* a, void* b);
+gboolean string_precollated_equals (const gchar* astr, const gchar* akey, const gchar* bstr, const gchar* bkey);
+
+
+static gchar string_get (const gchar* self, glong index) {
+ gchar result = '\0';
+ glong _tmp0_ = 0L;
+ gchar _tmp1_ = '\0';
+#line 1086 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, '\0');
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = ((gchar*) self)[_tmp0_];
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1087 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 79 "string.c"
+}
+
+
+inline gboolean is_string_empty (const gchar* s) {
+ gboolean result = FALSE;
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = s;
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp1_ == NULL) {
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = TRUE;
+#line 93 "string.c"
+ } else {
+ const gchar* _tmp2_ = NULL;
+ gchar _tmp3_ = '\0';
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = s;
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = string_get (_tmp2_, (glong) 0);
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = _tmp3_ == '\0';
+#line 103 "string.c"
+ }
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp0_;
+#line 12 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 109 "string.c"
+}
+
+
+gint utf8_cs_compare (void* a, void* b) {
+ gint result = 0;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 17 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = a;
+#line 17 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = b;
+#line 17 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = g_utf8_collate ((const gchar*) _tmp0_, (const gchar*) _tmp1_);
+#line 17 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp2_;
+#line 17 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 128 "string.c"
+}
+
+
+gint utf8_ci_compare (void* a, void* b) {
+ gint result = 0;
+ void* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ void* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = a;
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = g_utf8_strdown ((const gchar*) _tmp0_, (gssize) -1);
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = _tmp1_;
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = b;
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = g_utf8_strdown ((const gchar*) _tmp3_, (gssize) -1);
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = _tmp4_;
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = g_utf8_collate (_tmp2_, _tmp5_);
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = _tmp6_;
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp5_);
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp2_);
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp7_;
+#line 22 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 166 "string.c"
+}
+
+
+gchar* uchar_array_to_string (guchar* data, int data_length1, gint length) {
+ gchar* result = NULL;
+ gint _tmp0_ = 0;
+ GString* builder = NULL;
+ GString* _tmp2_ = NULL;
+ GString* _tmp14_ = NULL;
+ const gchar* _tmp15_ = NULL;
+ gchar* _tmp16_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = length;
+#line 27 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp0_ < 0) {
+#line 182 "string.c"
+ guchar* _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+#line 28 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = data;
+#line 28 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1__length1 = data_length1;
+#line 28 "/home/jens/Source/shotwell/src/util/string.vala"
+ length = _tmp1__length1;
+#line 191 "string.c"
+ }
+#line 30 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = g_string_new ("");
+#line 30 "/home/jens/Source/shotwell/src/util/string.vala"
+ builder = _tmp2_;
+#line 197 "string.c"
+ {
+ gint ctr = 0;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ ctr = 0;
+#line 202 "string.c"
+ {
+ gboolean _tmp3_ = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = TRUE;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ while (TRUE) {
+#line 209 "string.c"
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ guchar* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ gint _tmp8_ = 0;
+ guchar _tmp9_ = '\0';
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!_tmp3_) {
+#line 218 "string.c"
+ gint _tmp4_ = 0;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = ctr;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ ctr = _tmp4_ + 1;
+#line 224 "string.c"
+ }
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = FALSE;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = ctr;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = length;
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!(_tmp5_ < _tmp6_)) {
+#line 31 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 236 "string.c"
+ }
+#line 32 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = data;
+#line 32 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7__length1 = data_length1;
+#line 32 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = ctr;
+#line 32 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = _tmp7_[_tmp8_];
+#line 32 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp9_ != ((guchar) '\0')) {
+#line 248 "string.c"
+ GString* _tmp10_ = NULL;
+ guchar* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+ gint _tmp12_ = 0;
+ guchar _tmp13_ = '\0';
+#line 33 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp10_ = builder;
+#line 33 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11_ = data;
+#line 33 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11__length1 = data_length1;
+#line 33 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp12_ = ctr;
+#line 33 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp13_ = _tmp11_[_tmp12_];
+#line 33 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_string_append_c (_tmp10_, (gchar) _tmp13_);
+#line 266 "string.c"
+ } else {
+#line 35 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 270 "string.c"
+ }
+ }
+ }
+ }
+#line 38 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp14_ = builder;
+#line 38 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp15_ = _tmp14_->str;
+#line 38 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp16_ = g_strdup (_tmp15_);
+#line 38 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp16_;
+#line 38 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_string_free0 (builder);
+#line 38 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 287 "string.c"
+}
+
+
+static void _vala_array_add1 (guchar** array, int* length, int* size, guchar value) {
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ if ((*length) == (*size)) {
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ *size = (*size) ? (2 * (*size)) : 4;
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ *array = g_renew (guchar, *array, *size);
+#line 298 "string.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ (*array)[(*length)++] = value;
+#line 302 "string.c"
+}
+
+
+guchar* string_to_uchar_array (const gchar* str, int* result_length1) {
+ guchar* result = NULL;
+ guchar* data = NULL;
+ guchar* _tmp0_ = NULL;
+ gint data_length1 = 0;
+ gint _data_size_ = 0;
+ guchar* _tmp11_ = NULL;
+ gint _tmp11__length1 = 0;
+#line 42 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (str != NULL, NULL);
+#line 43 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = g_new0 (guchar, 0);
+#line 43 "/home/jens/Source/shotwell/src/util/string.vala"
+ data = _tmp0_;
+#line 43 "/home/jens/Source/shotwell/src/util/string.vala"
+ data_length1 = 0;
+#line 43 "/home/jens/Source/shotwell/src/util/string.vala"
+ _data_size_ = data_length1;
+#line 324 "string.c"
+ {
+ gint ctr = 0;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ ctr = 0;
+#line 329 "string.c"
+ {
+ gboolean _tmp1_ = FALSE;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = TRUE;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ while (TRUE) {
+#line 336 "string.c"
+ gint _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ guchar* _tmp7_ = NULL;
+ gint _tmp7__length1 = 0;
+ const gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gchar _tmp10_ = '\0';
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!_tmp1_) {
+#line 348 "string.c"
+ gint _tmp2_ = 0;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = ctr;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ ctr = _tmp2_ + 1;
+#line 354 "string.c"
+ }
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = FALSE;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = ctr;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = str;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = strlen (_tmp4_);
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = _tmp5_;
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!(_tmp3_ < _tmp6_)) {
+#line 44 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 370 "string.c"
+ }
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = data;
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7__length1 = data_length1;
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = str;
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = ctr;
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp10_ = string_get (_tmp8_, (glong) _tmp9_);
+#line 45 "/home/jens/Source/shotwell/src/util/string.vala"
+ _vala_array_add1 (&data, &data_length1, &_data_size_, (guchar) _tmp10_);
+#line 384 "string.c"
+ }
+ }
+ }
+#line 47 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11_ = data;
+#line 47 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11__length1 = data_length1;
+#line 47 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (result_length1) {
+#line 47 "/home/jens/Source/shotwell/src/util/string.vala"
+ *result_length1 = _tmp11__length1;
+#line 396 "string.c"
+ }
+#line 47 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp11_;
+#line 47 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 402 "string.c"
+}
+
+
+inline gchar* guarded_markup_escape_text (const gchar* plain) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ const gchar* _tmp2_ = NULL;
+ gboolean _tmp3_ = FALSE;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = plain;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = is_string_empty (_tmp2_);
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!_tmp3_) {
+#line 418 "string.c"
+ const gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = plain;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = g_utf8_validate (_tmp4_, (gssize) -1, NULL);
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = _tmp5_;
+#line 427 "string.c"
+ } else {
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = FALSE;
+#line 431 "string.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp1_) {
+#line 435 "string.c"
+ const gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = plain;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = g_markup_escape_text (_tmp6_, (gssize) -1);
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp0_);
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = _tmp7_;
+#line 446 "string.c"
+ } else {
+ gchar* _tmp8_ = NULL;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = g_strdup ("");
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp0_);
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = _tmp8_;
+#line 455 "string.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp0_;
+#line 58 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 461 "string.c"
+}
+
+
+glong find_last_offset (const gchar* str, gchar c) {
+ glong result = 0L;
+ glong offset = 0L;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint _tmp2_ = 0;
+#line 61 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (str != NULL, 0L);
+#line 62 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = str;
+#line 62 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = strlen (_tmp0_);
+#line 62 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = _tmp1_;
+#line 62 "/home/jens/Source/shotwell/src/util/string.vala"
+ offset = (glong) _tmp2_;
+#line 63 "/home/jens/Source/shotwell/src/util/string.vala"
+ while (TRUE) {
+#line 483 "string.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ const gchar* _tmp5_ = NULL;
+ glong _tmp6_ = 0L;
+ gchar _tmp7_ = '\0';
+ gchar _tmp8_ = '\0';
+#line 63 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = offset;
+#line 63 "/home/jens/Source/shotwell/src/util/string.vala"
+ offset = _tmp3_ - 1;
+#line 63 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = offset;
+#line 63 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!(_tmp4_ >= ((glong) 0))) {
+#line 63 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 500 "string.c"
+ }
+#line 64 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = str;
+#line 64 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = offset;
+#line 64 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = string_get (_tmp5_, _tmp6_);
+#line 64 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = c;
+#line 64 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp7_ == _tmp8_) {
+#line 65 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = offset;
+#line 65 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 516 "string.c"
+ }
+ }
+#line 68 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = (glong) -1;
+#line 68 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 523 "string.c"
+}
+
+
+gboolean is_in_ci_array (const gchar* str, gchar** strings, int strings_length1) {
+ gboolean result = FALSE;
+ gchar* strdown = NULL;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar** _tmp2_ = NULL;
+ gint _tmp2__length1 = 0;
+#line 73 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (str != NULL, FALSE);
+#line 74 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = str;
+#line 74 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = g_utf8_strdown (_tmp0_, (gssize) -1);
+#line 74 "/home/jens/Source/shotwell/src/util/string.vala"
+ strdown = _tmp1_;
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = strings;
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2__length1 = strings_length1;
+#line 546 "string.c"
+ {
+ gchar** str_element_collection = NULL;
+ gint str_element_collection_length1 = 0;
+ gint _str_element_collection_size_ = 0;
+ gint str_element_it = 0;
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ str_element_collection = _tmp2_;
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ str_element_collection_length1 = _tmp2__length1;
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ for (str_element_it = 0; str_element_it < _tmp2__length1; str_element_it = str_element_it + 1) {
+#line 558 "string.c"
+ gchar* _tmp3_ = NULL;
+ gchar* str_element = NULL;
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = g_strdup (str_element_collection[str_element_it]);
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ str_element = _tmp3_;
+#line 565 "string.c"
+ {
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = strdown;
+#line 76 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = str_element;
+#line 76 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (g_strcmp0 (_tmp4_, _tmp5_) == 0) {
+#line 77 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = TRUE;
+#line 77 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (str_element);
+#line 77 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (strdown);
+#line 77 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 583 "string.c"
+ }
+#line 75 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (str_element);
+#line 587 "string.c"
+ }
+ }
+ }
+#line 80 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (strdown);
+#line 80 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 597 "string.c"
+}
+
+
+GType prepare_input_text_options_get_type (void) {
+ static volatile gsize prepare_input_text_options_type_id__volatile = 0;
+ if (g_once_init_enter (&prepare_input_text_options_type_id__volatile)) {
+ static const GFlagsValue values[] = {{PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL, "PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL", "empty-is-null"}, {PREPARE_INPUT_TEXT_OPTIONS_VALIDATE, "PREPARE_INPUT_TEXT_OPTIONS_VALIDATE", "validate"}, {PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL, "PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL", "invalid-is-null"}, {PREPARE_INPUT_TEXT_OPTIONS_STRIP, "PREPARE_INPUT_TEXT_OPTIONS_STRIP", "strip"}, {PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF, "PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF", "strip-crlf"}, {PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE, "PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE", "normalize"}, {PREPARE_INPUT_TEXT_OPTIONS_DEFAULT, "PREPARE_INPUT_TEXT_OPTIONS_DEFAULT", "default"}, {0, NULL, NULL}};
+ GType prepare_input_text_options_type_id;
+ prepare_input_text_options_type_id = g_flags_register_static ("PrepareInputTextOptions", values);
+ g_once_init_leave (&prepare_input_text_options_type_id__volatile, prepare_input_text_options_type_id);
+ }
+ return prepare_input_text_options_type_id__volatile;
+}
+
+
+static gchar* string_strip (const gchar* self) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 1207 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1208 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1209 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strstrip (_tmp1_);
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1210 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 632 "string.c"
+}
+
+
+static gchar* string_delimit (const gchar* self, const gchar* delimiters, gchar new_delimiter) {
+ gchar* result = NULL;
+ gchar* _result_ = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gchar _tmp3_ = '\0';
+#line 1215 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1215 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (delimiters != NULL, NULL);
+#line 1216 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_strdup (self);
+#line 1216 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp0_;
+#line 1217 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _result_;
+#line 1217 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = delimiters;
+#line 1217 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = new_delimiter;
+#line 1217 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_strdelimit (_tmp1_, _tmp2_, _tmp3_);
+#line 1218 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _result_;
+#line 1218 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 663 "string.c"
+}
+
+
+gchar* prepare_input_text (const gchar* text, PrepareInputTextOptions options, gint dest_length) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ PrepareInputTextOptions _tmp2_ = 0;
+ gchar* prepped = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+ PrepareInputTextOptions _tmp10_ = 0;
+ PrepareInputTextOptions _tmp13_ = 0;
+ PrepareInputTextOptions _tmp16_ = 0;
+ gboolean _tmp19_ = FALSE;
+ PrepareInputTextOptions _tmp20_ = 0;
+ gint _tmp23_ = 0;
+#line 95 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = text;
+#line 95 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp0_ == NULL) {
+#line 96 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = NULL;
+#line 96 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 689 "string.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = options;
+#line 98 "/home/jens/Source/shotwell/src/util/string.vala"
+ if ((_tmp2_ & PREPARE_INPUT_TEXT_OPTIONS_VALIDATE) != 0) {
+#line 695 "string.c"
+ const gchar* _tmp3_ = NULL;
+ gboolean _tmp4_ = FALSE;
+#line 98 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = text;
+#line 98 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = g_utf8_validate (_tmp3_, (gssize) -1, NULL);
+#line 98 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = !_tmp4_;
+#line 704 "string.c"
+ } else {
+#line 98 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = FALSE;
+#line 708 "string.c"
+ }
+#line 98 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp1_) {
+#line 712 "string.c"
+ const gchar* _tmp5_ = NULL;
+ PrepareInputTextOptions _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+#line 99 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = options;
+#line 99 "/home/jens/Source/shotwell/src/util/string.vala"
+ if ((_tmp6_ & PREPARE_INPUT_TEXT_OPTIONS_INVALID_IS_NULL) != 0) {
+#line 99 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = NULL;
+#line 722 "string.c"
+ } else {
+#line 99 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = "";
+#line 726 "string.c"
+ }
+#line 99 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = g_strdup (_tmp5_);
+#line 99 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp7_;
+#line 99 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 734 "string.c"
+ }
+#line 101 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = text;
+#line 101 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 101 "/home/jens/Source/shotwell/src/util/string.vala"
+ prepped = _tmp9_;
+#line 107 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp10_ = options;
+#line 107 "/home/jens/Source/shotwell/src/util/string.vala"
+ if ((_tmp10_ & PREPARE_INPUT_TEXT_OPTIONS_NORMALIZE) != 0) {
+#line 746 "string.c"
+ const gchar* _tmp11_ = NULL;
+ gchar* _tmp12_ = NULL;
+#line 108 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11_ = prepped;
+#line 108 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp12_ = g_utf8_normalize (_tmp11_, (gssize) -1, G_NORMALIZE_NFC);
+#line 108 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (prepped);
+#line 108 "/home/jens/Source/shotwell/src/util/string.vala"
+ prepped = _tmp12_;
+#line 757 "string.c"
+ }
+#line 110 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp13_ = options;
+#line 110 "/home/jens/Source/shotwell/src/util/string.vala"
+ if ((_tmp13_ & PREPARE_INPUT_TEXT_OPTIONS_STRIP) != 0) {
+#line 763 "string.c"
+ const gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 111 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp14_ = prepped;
+#line 111 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp15_ = string_strip (_tmp14_);
+#line 111 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (prepped);
+#line 111 "/home/jens/Source/shotwell/src/util/string.vala"
+ prepped = _tmp15_;
+#line 774 "string.c"
+ }
+#line 115 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp16_ = options;
+#line 115 "/home/jens/Source/shotwell/src/util/string.vala"
+ if ((_tmp16_ & PREPARE_INPUT_TEXT_OPTIONS_STRIP_CRLF) != 0) {
+#line 780 "string.c"
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 116 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp17_ = prepped;
+#line 116 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp18_ = string_delimit (_tmp17_, "\n\r", ' ');
+#line 116 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (prepped);
+#line 116 "/home/jens/Source/shotwell/src/util/string.vala"
+ prepped = _tmp18_;
+#line 791 "string.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp20_ = options;
+#line 118 "/home/jens/Source/shotwell/src/util/string.vala"
+ if ((_tmp20_ & PREPARE_INPUT_TEXT_OPTIONS_EMPTY_IS_NULL) != 0) {
+#line 797 "string.c"
+ const gchar* _tmp21_ = NULL;
+ gboolean _tmp22_ = FALSE;
+#line 118 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp21_ = prepped;
+#line 118 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp22_ = is_string_empty (_tmp21_);
+#line 118 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp19_ = _tmp22_;
+#line 806 "string.c"
+ } else {
+#line 118 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp19_ = FALSE;
+#line 810 "string.c"
+ }
+#line 118 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp19_) {
+#line 119 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = NULL;
+#line 119 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (prepped);
+#line 119 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 820 "string.c"
+ }
+#line 124 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp23_ = dest_length;
+#line 124 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp23_ >= 0) {
+#line 826 "string.c"
+ GString* sb = NULL;
+ const gchar* _tmp24_ = NULL;
+ GString* _tmp25_ = NULL;
+ GString* _tmp26_ = NULL;
+ gint _tmp27_ = 0;
+ GString* _tmp28_ = NULL;
+ const gchar* _tmp29_ = NULL;
+ gchar* _tmp30_ = NULL;
+#line 125 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp24_ = prepped;
+#line 125 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp25_ = g_string_new (_tmp24_);
+#line 125 "/home/jens/Source/shotwell/src/util/string.vala"
+ sb = _tmp25_;
+#line 126 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp26_ = sb;
+#line 126 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp27_ = dest_length;
+#line 126 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_string_truncate (_tmp26_, (gsize) _tmp27_);
+#line 127 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp28_ = sb;
+#line 127 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp29_ = _tmp28_->str;
+#line 127 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp30_ = g_strdup (_tmp29_);
+#line 127 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp30_;
+#line 127 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_string_free0 (sb);
+#line 127 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (prepped);
+#line 127 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 861 "string.c"
+ }
+#line 131 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = prepped;
+#line 131 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 867 "string.c"
+}
+
+
+gint64 parse_int64 (const gchar* str, gint num_base) {
+ gint64 result = 0LL;
+ const gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+ gint64 _tmp2_ = 0LL;
+#line 134 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (str != NULL, 0LL);
+#line 135 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = str;
+#line 135 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = num_base;
+#line 135 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = g_ascii_strtoll (_tmp0_, NULL, (guint) _tmp1_);
+#line 135 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp2_;
+#line 135 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 888 "string.c"
+}
+
+
+static gint string_index_of_char (const gchar* self, gunichar c, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ gunichar _tmp1_ = 0U;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1007 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 1008 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 1008 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = c;
+#line 1008 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = g_utf8_strchr (((gchar*) self) + _tmp0_, (gssize) -1, _tmp1_);
+#line 1008 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 1010 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 1010 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 913 "string.c"
+ gchar* _tmp4_ = NULL;
+#line 1011 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 1011 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 1011 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 921 "string.c"
+ } else {
+#line 1013 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = -1;
+#line 1013 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 927 "string.c"
+ }
+}
+
+
+inline gboolean string_contains_char (const gchar* haystack, gunichar needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gunichar _tmp1_ = 0U;
+ gint _tmp2_ = 0;
+#line 140 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (haystack != NULL, FALSE);
+#line 141 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = haystack;
+#line 141 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = needle;
+#line 141 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = string_index_of_char (_tmp0_, _tmp1_, 0);
+#line 141 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp2_ >= 0;
+#line 141 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 949 "string.c"
+}
+
+
+static gint string_index_of (const gchar* self, const gchar* needle, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 987 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 987 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, 0);
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = needle;
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = strstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
+#line 988 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 990 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 990 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 976 "string.c"
+ gchar* _tmp4_ = NULL;
+#line 991 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 991 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 991 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 984 "string.c"
+ } else {
+#line 993 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = -1;
+#line 993 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 990 "string.c"
+ }
+}
+
+
+inline gboolean string_contains_str (const gchar* haystack, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 144 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (haystack != NULL, FALSE);
+#line 144 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 145 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = haystack;
+#line 145 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = needle;
+#line 145 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = string_index_of (_tmp0_, _tmp1_, 0);
+#line 145 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp2_ >= 0;
+#line 145 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1014 "string.c"
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gint _tmp0_ = 0;
+ gint _tmp1_ = 0;
+ glong _tmp2_ = 0L;
+ glong _tmp5_ = 0L;
+ gboolean _tmp8_ = FALSE;
+ glong _tmp9_ = 0L;
+ gboolean _tmp12_ = FALSE;
+ glong _tmp13_ = 0L;
+ glong _tmp16_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ gchar* _tmp21_ = NULL;
+#line 1328 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = strlen (self);
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = _tmp0_;
+#line 1329 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp1_;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = start;
+#line 1330 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp2_ < ((glong) 0)) {
+#line 1047 "string.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = string_length;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = start;
+#line 1331 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ start = _tmp3_ + _tmp4_;
+#line 1056 "string.c"
+ }
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1333 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp5_ < ((glong) 0)) {
+#line 1062 "string.c"
+ glong _tmp6_ = 0L;
+ glong _tmp7_ = 0L;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = string_length;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = end;
+#line 1334 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp6_ + _tmp7_;
+#line 1071 "string.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp9_ >= ((glong) 0)) {
+#line 1077 "string.c"
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = start;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = string_length;
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = _tmp10_ <= _tmp11_;
+#line 1086 "string.c"
+ } else {
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = FALSE;
+#line 1090 "string.c"
+ }
+#line 1336 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp8_, NULL);
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp13_ >= ((glong) 0)) {
+#line 1098 "string.c"
+ glong _tmp14_ = 0L;
+ glong _tmp15_ = 0L;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = end;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = _tmp14_ <= _tmp15_;
+#line 1107 "string.c"
+ } else {
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = FALSE;
+#line 1111 "string.c"
+ }
+#line 1337 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_, NULL);
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = start;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = end;
+#line 1338 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = end;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = start;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp21_;
+#line 1339 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1133 "string.c"
+}
+
+
+inline gchar* string_sliced_at (const gchar* str, gint index) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+ gint _tmp1_ = 0;
+#line 148 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (str != NULL, NULL);
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = index;
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp1_ >= 0) {
+#line 1147 "string.c"
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ const gchar* _tmp4_ = NULL;
+ gint _tmp5_ = 0;
+ gint _tmp6_ = 0;
+ gchar* _tmp7_ = NULL;
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = str;
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = index;
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = str;
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = strlen (_tmp4_);
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = _tmp5_;
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = string_slice (_tmp2_, (glong) _tmp3_, (glong) _tmp6_);
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp0_);
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = _tmp7_;
+#line 1170 "string.c"
+ } else {
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp0_);
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = NULL;
+#line 1176 "string.c"
+ }
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp0_;
+#line 149 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1182 "string.c"
+}
+
+
+inline gchar* string_sliced_at_first_str (const gchar* haystack, const gchar* needle, gint start_index) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+#line 152 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (haystack != NULL, NULL);
+#line 152 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (needle != NULL, NULL);
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = haystack;
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = haystack;
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = needle;
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = start_index;
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = string_index_of (_tmp1_, _tmp2_, _tmp3_);
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = string_sliced_at (_tmp0_, _tmp4_);
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp5_;
+#line 153 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1214 "string.c"
+}
+
+
+static gint string_last_index_of (const gchar* self, const gchar* needle, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 997 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 997 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, 0);
+#line 998 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 998 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = needle;
+#line 998 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = g_strrstr (((gchar*) self) + _tmp0_, (gchar*) _tmp1_);
+#line 998 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 1000 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 1000 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 1241 "string.c"
+ gchar* _tmp4_ = NULL;
+#line 1001 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 1001 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 1001 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1249 "string.c"
+ } else {
+#line 1003 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = -1;
+#line 1003 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1255 "string.c"
+ }
+}
+
+
+inline gchar* string_sliced_at_last_str (const gchar* haystack, const gchar* needle, gint start_index) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+#line 156 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (haystack != NULL, NULL);
+#line 156 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (needle != NULL, NULL);
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = haystack;
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = haystack;
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = needle;
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = start_index;
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = string_last_index_of (_tmp1_, _tmp2_, _tmp3_);
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = string_sliced_at (_tmp0_, _tmp4_);
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp5_;
+#line 157 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1288 "string.c"
+}
+
+
+inline gchar* string_sliced_at_first_char (const gchar* haystack, gunichar ch, gint start_index) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gunichar _tmp2_ = 0U;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+#line 160 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (haystack != NULL, NULL);
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = haystack;
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = haystack;
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = ch;
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = start_index;
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = string_index_of_char (_tmp1_, _tmp2_, _tmp3_);
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = string_sliced_at (_tmp0_, _tmp4_);
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp5_;
+#line 161 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1318 "string.c"
+}
+
+
+static gint string_last_index_of_char (const gchar* self, gunichar c, gint start_index) {
+ gint result = 0;
+ gchar* _result_ = NULL;
+ gint _tmp0_ = 0;
+ gunichar _tmp1_ = 0U;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1017 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = start_index;
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = c;
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = g_utf8_strrchr (((gchar*) self) + _tmp0_, (gssize) -1, _tmp1_);
+#line 1018 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _result_ = _tmp2_;
+#line 1020 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = _result_;
+#line 1020 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ != NULL) {
+#line 1343 "string.c"
+ gchar* _tmp4_ = NULL;
+#line 1021 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = _result_;
+#line 1021 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp4_ - ((gchar*) self));
+#line 1021 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1351 "string.c"
+ } else {
+#line 1023 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = -1;
+#line 1023 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1357 "string.c"
+ }
+}
+
+
+inline gchar* string_sliced_at_last_char (const gchar* haystack, gunichar ch, gint start_index) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gunichar _tmp2_ = 0U;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gchar* _tmp5_ = NULL;
+#line 164 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (haystack != NULL, NULL);
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = haystack;
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = haystack;
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = ch;
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = start_index;
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = string_last_index_of_char (_tmp1_, _tmp2_, _tmp3_);
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = string_sliced_at (_tmp0_, _tmp4_);
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp5_;
+#line 165 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1388 "string.c"
+}
+
+
+static gunichar string_get_char (const gchar* self, glong index) {
+ gunichar result = 0U;
+ glong _tmp0_ = 0L;
+ gunichar _tmp1_ = 0U;
+#line 1116 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0U);
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_);
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1406 "string.c"
+}
+
+
+gchar* string_strip_leading_zeroes (const gchar* str) {
+ gchar* result = NULL;
+ GString* stripped = NULL;
+ GString* _tmp0_ = NULL;
+ gboolean prev_is_space = FALSE;
+ GString* _tmp16_ = NULL;
+ const gchar* _tmp17_ = NULL;
+ gchar* _tmp18_ = NULL;
+#line 169 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (str != NULL, NULL);
+#line 170 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = g_string_new ("");
+#line 170 "/home/jens/Source/shotwell/src/util/string.vala"
+ stripped = _tmp0_;
+#line 171 "/home/jens/Source/shotwell/src/util/string.vala"
+ prev_is_space = TRUE;
+#line 1426 "string.c"
+ {
+ const gchar* iter = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = str;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ iter = _tmp1_;
+#line 1434 "string.c"
+ {
+ gboolean _tmp2_ = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = TRUE;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ while (TRUE) {
+#line 1441 "string.c"
+ const gchar* _tmp5_ = NULL;
+ gunichar _tmp6_ = 0U;
+ gunichar ch = 0U;
+ const gchar* _tmp7_ = NULL;
+ gunichar _tmp8_ = 0U;
+ gboolean _tmp9_ = FALSE;
+ gboolean _tmp10_ = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!_tmp2_) {
+#line 1451 "string.c"
+ const gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = iter;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = g_utf8_next_char (_tmp3_);
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ iter = _tmp4_;
+#line 1460 "string.c"
+ }
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = FALSE;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = iter;
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = string_get_char (_tmp5_, (glong) 0);
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!(_tmp6_ != ((gunichar) 0))) {
+#line 172 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 1472 "string.c"
+ }
+#line 173 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = iter;
+#line 173 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = string_get_char (_tmp7_, (glong) 0);
+#line 173 "/home/jens/Source/shotwell/src/util/string.vala"
+ ch = _tmp8_;
+#line 175 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp10_ = prev_is_space;
+#line 175 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!_tmp10_) {
+#line 175 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = TRUE;
+#line 1486 "string.c"
+ } else {
+ gunichar _tmp11_ = 0U;
+#line 175 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11_ = ch;
+#line 175 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = _tmp11_ != ((gunichar) '0');
+#line 1493 "string.c"
+ }
+#line 175 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp9_) {
+#line 1497 "string.c"
+ GString* _tmp12_ = NULL;
+ gunichar _tmp13_ = 0U;
+ gunichar _tmp14_ = 0U;
+ gboolean _tmp15_ = FALSE;
+#line 176 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp12_ = stripped;
+#line 176 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp13_ = ch;
+#line 176 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_string_append_unichar (_tmp12_, _tmp13_);
+#line 177 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp14_ = ch;
+#line 177 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp15_ = g_unichar_isspace (_tmp14_);
+#line 177 "/home/jens/Source/shotwell/src/util/string.vala"
+ prev_is_space = _tmp15_;
+#line 1514 "string.c"
+ }
+ }
+ }
+ }
+#line 181 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp16_ = stripped;
+#line 181 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp17_ = _tmp16_->str;
+#line 181 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp18_ = g_strdup (_tmp17_);
+#line 181 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp18_;
+#line 181 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_string_free0 (stripped);
+#line 181 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1531 "string.c"
+}
+
+
+static gboolean string_get_next_char (const gchar* self, gint* index, gunichar* c) {
+ gunichar _vala_c = 0U;
+ gboolean result = FALSE;
+ gint _tmp0_ = 0;
+ gunichar _tmp1_ = 0U;
+ gunichar _tmp2_ = 0U;
+#line 1105 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1106 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = *index;
+#line 1106 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_);
+#line 1106 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _vala_c = _tmp1_;
+#line 1107 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = _vala_c;
+#line 1107 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp2_ != ((gunichar) 0)) {
+#line 1553 "string.c"
+ gint _tmp3_ = 0;
+ gchar* _tmp4_ = NULL;
+#line 1108 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = *index;
+#line 1108 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = g_utf8_next_char (((gchar*) self) + _tmp3_);
+#line 1108 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *index = (gint) (_tmp4_ - ((gchar*) self));
+#line 1109 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = TRUE;
+#line 1109 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (c) {
+#line 1109 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *c = _vala_c;
+#line 1568 "string.c"
+ }
+#line 1109 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1572 "string.c"
+ } else {
+#line 1111 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = FALSE;
+#line 1111 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (c) {
+#line 1111 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *c = _vala_c;
+#line 1580 "string.c"
+ }
+#line 1111 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 1584 "string.c"
+ }
+#line 1105 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (c) {
+#line 1105 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ *c = _vala_c;
+#line 1590 "string.c"
+ }
+}
+
+
+gchar* string_remove_diacritics (const gchar* istring) {
+ gchar* result = NULL;
+ GString* builder = NULL;
+ GString* _tmp0_ = NULL;
+ gunichar ch = 0U;
+ gint i = 0;
+ GString* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+#line 184 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (istring != NULL, NULL);
+#line 185 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = g_string_new ("");
+#line 185 "/home/jens/Source/shotwell/src/util/string.vala"
+ builder = _tmp0_;
+#line 187 "/home/jens/Source/shotwell/src/util/string.vala"
+ i = 0;
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ while (TRUE) {
+#line 1614 "string.c"
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gunichar _tmp4_ = 0U;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+ gunichar _tmp7_ = 0U;
+ GUnicodeType _tmp8_ = 0;
+ GString* _tmp9_ = NULL;
+ gunichar _tmp10_ = 0U;
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = istring;
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = g_utf8_normalize (_tmp1_, (gssize) -1, G_NORMALIZE_DEFAULT);
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = _tmp2_;
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = string_get_next_char (_tmp3_, &i, &_tmp4_);
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ ch = _tmp4_;
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = !_tmp5_;
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp3_);
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp6_) {
+#line 188 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 1643 "string.c"
+ }
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = ch;
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = g_unichar_type (_tmp7_);
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ switch (_tmp8_) {
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ case G_UNICODE_CONTROL:
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ case G_UNICODE_FORMAT:
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ case G_UNICODE_UNASSIGNED:
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ case G_UNICODE_NON_SPACING_MARK:
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ case G_UNICODE_COMBINING_MARK:
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ case G_UNICODE_ENCLOSING_MARK:
+#line 1663 "string.c"
+ {
+#line 197 "/home/jens/Source/shotwell/src/util/string.vala"
+ continue;
+#line 1667 "string.c"
+ }
+ default:
+#line 189 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 1672 "string.c"
+ }
+#line 199 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = builder;
+#line 199 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp10_ = ch;
+#line 199 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_string_append_unichar (_tmp9_, _tmp10_);
+#line 1680 "string.c"
+ }
+#line 201 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11_ = builder;
+#line 201 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp12_ = _tmp11_->str;
+#line 201 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp13_ = g_strdup (_tmp12_);
+#line 201 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp13_;
+#line 201 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_string_free0 (builder);
+#line 201 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1694 "string.c"
+}
+
+
+gchar* string_to_hex_string (const gchar* str) {
+ gchar* result = NULL;
+ GString* builder = NULL;
+ GString* _tmp0_ = NULL;
+ guint8* data = NULL;
+ const gchar* _tmp1_ = NULL;
+ GString* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ gchar* _tmp9_ = NULL;
+#line 204 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (str != NULL, NULL);
+#line 205 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = g_string_new ("");
+#line 205 "/home/jens/Source/shotwell/src/util/string.vala"
+ builder = _tmp0_;
+#line 207 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = str;
+#line 207 "/home/jens/Source/shotwell/src/util/string.vala"
+ data = (guint8*) _tmp1_;
+#line 208 "/home/jens/Source/shotwell/src/util/string.vala"
+ while (TRUE) {
+#line 1719 "string.c"
+ guint8* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ guint8* _tmp4_ = NULL;
+ GString* _tmp5_ = NULL;
+ guint8* _tmp6_ = NULL;
+#line 208 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = data;
+#line 208 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (!(((gint) (*_tmp2_)) != 0)) {
+#line 208 "/home/jens/Source/shotwell/src/util/string.vala"
+ break;
+#line 1731 "string.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = data;
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (((gint) (*_tmp4_)) != 0) {
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = " ";
+#line 1739 "string.c"
+ } else {
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = "";
+#line 1743 "string.c"
+ }
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = builder;
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = data;
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ data = _tmp6_ + 1;
+#line 209 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_string_append_printf (_tmp5_, "%02Xh%s", (guint) (*_tmp6_), _tmp3_);
+#line 1753 "string.c"
+ }
+#line 211 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = builder;
+#line 211 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = _tmp7_->str;
+#line 211 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = g_strdup (_tmp8_);
+#line 211 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp9_;
+#line 211 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_string_free0 (builder);
+#line 211 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1767 "string.c"
+}
+
+
+guint string_collated_hash (void* ptr) {
+ guint result = 0U;
+ gchar* str = NULL;
+ void* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ GHashFunc _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ guint _tmp5_ = 0U;
+ guint _tmp6_ = 0U;
+#line 231 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = ptr;
+#line 231 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = g_strdup ((const gchar*) _tmp0_);
+#line 231 "/home/jens/Source/shotwell/src/util/string.vala"
+ str = _tmp1_;
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = g_str_hash;
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = g_utf8_collate_key (str, (gssize) -1);
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = _tmp3_;
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = _tmp2_ (_tmp4_);
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = _tmp5_;
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (_tmp4_);
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp6_;
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (str);
+#line 233 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1805 "string.c"
+}
+
+
+guint string_precollated_hash (void* ptr) {
+ guint result = 0U;
+ GHashFunc _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ guint _tmp2_ = 0U;
+#line 238 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = g_str_hash;
+#line 238 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = ptr;
+#line 238 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = _tmp0_ ((const gchar*) _tmp1_);
+#line 238 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp2_;
+#line 238 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1824 "string.c"
+}
+
+
+gint string_collated_compare (void* a, void* b) {
+ gint result = 0;
+ gchar* astr = NULL;
+ void* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* bstr = NULL;
+ void* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gint _result_ = 0;
+ const gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+#line 243 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = a;
+#line 243 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = g_strdup ((const gchar*) _tmp0_);
+#line 243 "/home/jens/Source/shotwell/src/util/string.vala"
+ astr = _tmp1_;
+#line 244 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = b;
+#line 244 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = g_strdup ((const gchar*) _tmp2_);
+#line 244 "/home/jens/Source/shotwell/src/util/string.vala"
+ bstr = _tmp3_;
+#line 246 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = astr;
+#line 246 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = bstr;
+#line 246 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = g_utf8_collate (_tmp4_, _tmp5_);
+#line 246 "/home/jens/Source/shotwell/src/util/string.vala"
+ _result_ = _tmp6_;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = _result_;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp8_ != 0) {
+#line 1866 "string.c"
+ gint _tmp9_ = 0;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = _result_;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = _tmp9_;
+#line 1872 "string.c"
+ } else {
+ GCompareFunc _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp10_ = g_strcmp0;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp11_ = astr;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp12_ = bstr;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp13_ = _tmp10_ (_tmp11_, _tmp12_);
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = _tmp13_;
+#line 1888 "string.c"
+ }
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp7_;
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (bstr);
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ _g_free0 (astr);
+#line 248 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1898 "string.c"
+}
+
+
+gint string_precollated_compare (const gchar* astr, const gchar* akey, const gchar* bstr, const gchar* bkey) {
+ gint result = 0;
+ gint _result_ = 0;
+ GCompareFunc _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ gint _tmp3_ = 0;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+#line 252 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (astr != NULL, 0);
+#line 252 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (akey != NULL, 0);
+#line 252 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (bstr != NULL, 0);
+#line 252 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (bkey != NULL, 0);
+#line 253 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = g_strcmp0;
+#line 253 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = akey;
+#line 253 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = bkey;
+#line 253 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = _tmp0_ (_tmp1_, _tmp2_);
+#line 253 "/home/jens/Source/shotwell/src/util/string.vala"
+ _result_ = _tmp3_;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp5_ = _result_;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ if (_tmp5_ != 0) {
+#line 1933 "string.c"
+ gint _tmp6_ = 0;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp6_ = _result_;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = _tmp6_;
+#line 1939 "string.c"
+ } else {
+ GCompareFunc _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp7_ = g_strcmp0;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp8_ = astr;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp9_ = bstr;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp10_ = _tmp7_ (_tmp8_, _tmp9_);
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = _tmp10_;
+#line 1955 "string.c"
+ }
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp4_;
+#line 255 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1961 "string.c"
+}
+
+
+gboolean string_collated_equals (void* a, void* b) {
+ gboolean result = FALSE;
+ void* _tmp0_ = NULL;
+ void* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+#line 260 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = a;
+#line 260 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = b;
+#line 260 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = string_collated_compare (_tmp0_, _tmp1_);
+#line 260 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp2_ == 0;
+#line 260 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 1980 "string.c"
+}
+
+
+gboolean string_precollated_equals (const gchar* astr, const gchar* akey, const gchar* bstr, const gchar* bkey) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ const gchar* _tmp2_ = NULL;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+#line 264 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (astr != NULL, FALSE);
+#line 264 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (akey != NULL, FALSE);
+#line 264 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (bstr != NULL, FALSE);
+#line 264 "/home/jens/Source/shotwell/src/util/string.vala"
+ g_return_val_if_fail (bkey != NULL, FALSE);
+#line 265 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp0_ = astr;
+#line 265 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp1_ = akey;
+#line 265 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp2_ = bstr;
+#line 265 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp3_ = bkey;
+#line 265 "/home/jens/Source/shotwell/src/util/string.vala"
+ _tmp4_ = string_precollated_compare (_tmp0_, _tmp1_, _tmp2_, _tmp3_);
+#line 265 "/home/jens/Source/shotwell/src/util/string.vala"
+ result = _tmp4_ == 0;
+#line 265 "/home/jens/Source/shotwell/src/util/string.vala"
+ return result;
+#line 2013 "string.c"
+}
+
+
+
diff --git a/src/util/system.c b/src/util/system.c
new file mode 100644
index 0000000..cef9603
--- /dev/null
+++ b/src/util/system.c
@@ -0,0 +1,168 @@
+/* system.c generated by valac 0.32.1, the Vala compiler
+ * generated from system.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU LGPL (version 2.1 or later).
+ * See the COPYING file in this distribution.
+ */
+/* Return the directory in which Shotwell is installed, or null if uninstalled.*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+
+
+GFile* get_sys_install_dir (GFile* exec_dir);
+#define RESOURCES_PREFIX _PREFIX
+gchar* get_nautilus_install_location (void);
+void sys_show_uri (GdkScreen* screen, const gchar* uri, GError** error);
+void show_file_in_nautilus (const gchar* filename, GError** error);
+
+
+GFile* get_sys_install_dir (GFile* exec_dir) {
+ GFile* result = NULL;
+ GFile* child = NULL;
+ GFile* _tmp0_ = NULL;
+ GFile* _tmp1_ = NULL;
+ GFile* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ gboolean _tmp5_ = FALSE;
+ gboolean _tmp6_ = FALSE;
+#line 8 "/home/jens/Source/shotwell/src/util/system.vala"
+ g_return_val_if_fail (G_IS_FILE (exec_dir), NULL);
+#line 10 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp0_ = exec_dir;
+#line 10 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp1_ = g_file_get_child (_tmp0_, "ui");
+#line 10 "/home/jens/Source/shotwell/src/util/system.vala"
+ child = _tmp1_;
+#line 12 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp2_ = child;
+#line 12 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp3_ = g_file_get_path (_tmp2_);
+#line 12 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp4_ = _tmp3_;
+#line 12 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp5_ = g_file_test (_tmp4_, G_FILE_TEST_IS_DIR | G_FILE_TEST_EXISTS);
+#line 12 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp6_ = !_tmp5_;
+#line 12 "/home/jens/Source/shotwell/src/util/system.vala"
+ _g_free0 (_tmp4_);
+#line 12 "/home/jens/Source/shotwell/src/util/system.vala"
+ if (_tmp6_) {
+#line 65 "system.c"
+ GFile* _tmp7_ = NULL;
+#line 13 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp7_ = g_file_new_for_path (RESOURCES_PREFIX);
+#line 13 "/home/jens/Source/shotwell/src/util/system.vala"
+ result = _tmp7_;
+#line 13 "/home/jens/Source/shotwell/src/util/system.vala"
+ _g_object_unref0 (child);
+#line 13 "/home/jens/Source/shotwell/src/util/system.vala"
+ return result;
+#line 75 "system.c"
+ }
+#line 16 "/home/jens/Source/shotwell/src/util/system.vala"
+ result = NULL;
+#line 16 "/home/jens/Source/shotwell/src/util/system.vala"
+ _g_object_unref0 (child);
+#line 16 "/home/jens/Source/shotwell/src/util/system.vala"
+ return result;
+#line 83 "system.c"
+}
+
+
+gchar* get_nautilus_install_location (void) {
+ gchar* result = NULL;
+ gchar* _tmp0_ = NULL;
+#line 20 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp0_ = g_find_program_in_path ("nautilus");
+#line 20 "/home/jens/Source/shotwell/src/util/system.vala"
+ result = _tmp0_;
+#line 20 "/home/jens/Source/shotwell/src/util/system.vala"
+ return result;
+#line 96 "system.c"
+}
+
+
+void sys_show_uri (GdkScreen* screen, const gchar* uri, GError** error) {
+ GdkScreen* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 23 "/home/jens/Source/shotwell/src/util/system.vala"
+ g_return_if_fail (GDK_IS_SCREEN (screen));
+#line 23 "/home/jens/Source/shotwell/src/util/system.vala"
+ g_return_if_fail (uri != NULL);
+#line 24 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp0_ = screen;
+#line 24 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp1_ = uri;
+#line 24 "/home/jens/Source/shotwell/src/util/system.vala"
+ gtk_show_uri (_tmp0_, _tmp1_, (guint32) GDK_CURRENT_TIME, &_inner_error_);
+#line 24 "/home/jens/Source/shotwell/src/util/system.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 24 "/home/jens/Source/shotwell/src/util/system.vala"
+ g_propagate_error (error, _inner_error_);
+#line 24 "/home/jens/Source/shotwell/src/util/system.vala"
+ return;
+#line 120 "system.c"
+ }
+}
+
+
+void show_file_in_nautilus (const gchar* filename, GError** error) {
+ gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ const gchar* _tmp4_ = NULL;
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ GError * _inner_error_ = NULL;
+#line 27 "/home/jens/Source/shotwell/src/util/system.vala"
+ g_return_if_fail (filename != NULL);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp0_ = get_nautilus_install_location ();
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp1_ = _tmp0_;
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp2_ = g_strconcat (_tmp1_, " ", NULL);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp3_ = _tmp2_;
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp4_ = filename;
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp5_ = g_strconcat (_tmp3_, _tmp4_, NULL);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _tmp6_ = _tmp5_;
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ g_spawn_command_line_async (_tmp6_, &_inner_error_);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _g_free0 (_tmp6_);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _g_free0 (_tmp3_);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ _g_free0 (_tmp1_);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ if (G_UNLIKELY (_inner_error_ != NULL)) {
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ g_propagate_error (error, _inner_error_);
+#line 28 "/home/jens/Source/shotwell/src/util/system.vala"
+ return;
+#line 164 "system.c"
+ }
+}
+
+
+
diff --git a/src/util/ui.c b/src/util/ui.c
new file mode 100644
index 0000000..44ba054
--- /dev/null
+++ b/src/util/ui.c
@@ -0,0 +1,405 @@
+/* ui.c generated by valac 0.32.1, the Vala compiler
+ * generated from ui.vala, do not modify */
+
+/* Copyright 2016 Software Freedom Conservancy Inc.
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include "shotwell-plugin-dev-1.0.h"
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+
+
+#define TYPE_ADJUSTMENT_RELATION (adjustment_relation_get_type ())
+
+#define TYPE_COMPASS_POINT (compass_point_get_type ())
+
+#define TYPE_DIRECTION (direction_get_type ())
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+
+typedef enum {
+ ADJUSTMENT_RELATION_BELOW,
+ ADJUSTMENT_RELATION_IN_RANGE,
+ ADJUSTMENT_RELATION_ABOVE
+} AdjustmentRelation;
+
+typedef enum {
+ COMPASS_POINT_NORTH,
+ COMPASS_POINT_SOUTH,
+ COMPASS_POINT_EAST,
+ COMPASS_POINT_WEST
+} CompassPoint;
+
+typedef enum {
+ DIRECTION_FORWARD,
+ DIRECTION_BACKWARD
+} Direction;
+
+
+
+GType adjustment_relation_get_type (void) G_GNUC_CONST;
+GType compass_point_get_type (void) G_GNUC_CONST;
+GType direction_get_type (void) G_GNUC_CONST;
+SpitTransitionsDirection direction_to_transition_direction (Direction self);
+const gchar* direction_to_string (Direction self);
+void spin_event_loop (void);
+AdjustmentRelation get_adjustment_relation (GtkAdjustment* adjustment, gint value);
+void get_adjustment_page (GtkAdjustment* hadj, GtkAdjustment* vadj, GdkRectangle* result);
+gboolean has_only_key_modifier (GdkModifierType field, GdkModifierType mask);
+gchar* build_dummy_ui_string (GtkActionGroup** groups, int groups_length1);
+
+
+GType adjustment_relation_get_type (void) {
+ static volatile gsize adjustment_relation_type_id__volatile = 0;
+ if (g_once_init_enter (&adjustment_relation_type_id__volatile)) {
+ static const GEnumValue values[] = {{ADJUSTMENT_RELATION_BELOW, "ADJUSTMENT_RELATION_BELOW", "below"}, {ADJUSTMENT_RELATION_IN_RANGE, "ADJUSTMENT_RELATION_IN_RANGE", "in-range"}, {ADJUSTMENT_RELATION_ABOVE, "ADJUSTMENT_RELATION_ABOVE", "above"}, {0, NULL, NULL}};
+ GType adjustment_relation_type_id;
+ adjustment_relation_type_id = g_enum_register_static ("AdjustmentRelation", values);
+ g_once_init_leave (&adjustment_relation_type_id__volatile, adjustment_relation_type_id);
+ }
+ return adjustment_relation_type_id__volatile;
+}
+
+
+GType compass_point_get_type (void) {
+ static volatile gsize compass_point_type_id__volatile = 0;
+ if (g_once_init_enter (&compass_point_type_id__volatile)) {
+ static const GEnumValue values[] = {{COMPASS_POINT_NORTH, "COMPASS_POINT_NORTH", "north"}, {COMPASS_POINT_SOUTH, "COMPASS_POINT_SOUTH", "south"}, {COMPASS_POINT_EAST, "COMPASS_POINT_EAST", "east"}, {COMPASS_POINT_WEST, "COMPASS_POINT_WEST", "west"}, {0, NULL, NULL}};
+ GType compass_point_type_id;
+ compass_point_type_id = g_enum_register_static ("CompassPoint", values);
+ g_once_init_leave (&compass_point_type_id__volatile, compass_point_type_id);
+ }
+ return compass_point_type_id__volatile;
+}
+
+
+SpitTransitionsDirection direction_to_transition_direction (Direction self) {
+ SpitTransitionsDirection result = 0;
+#line 25 "/home/jens/Source/shotwell/src/util/ui.vala"
+ switch (self) {
+#line 25 "/home/jens/Source/shotwell/src/util/ui.vala"
+ case DIRECTION_FORWARD:
+#line 91 "ui.c"
+ {
+#line 27 "/home/jens/Source/shotwell/src/util/ui.vala"
+ result = SPIT_TRANSITIONS_DIRECTION_FORWARD;
+#line 27 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return result;
+#line 97 "ui.c"
+ }
+#line 25 "/home/jens/Source/shotwell/src/util/ui.vala"
+ case DIRECTION_BACKWARD:
+#line 101 "ui.c"
+ {
+#line 30 "/home/jens/Source/shotwell/src/util/ui.vala"
+ result = SPIT_TRANSITIONS_DIRECTION_BACKWARD;
+#line 30 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return result;
+#line 107 "ui.c"
+ }
+ default:
+ {
+ GEnumValue* _tmp0_;
+#line 33 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp0_ = g_enum_get_value (g_type_class_ref (TYPE_DIRECTION), self);
+#line 33 "/home/jens/Source/shotwell/src/util/ui.vala"
+ g_error ("ui.vala:33: Unknown Direction %s", (_tmp0_ != NULL) ? _tmp0_->value_name : NULL);
+#line 116 "ui.c"
+ }
+ }
+}
+
+
+GType direction_get_type (void) {
+ static volatile gsize direction_type_id__volatile = 0;
+ if (g_once_init_enter (&direction_type_id__volatile)) {
+ static const GEnumValue values[] = {{DIRECTION_FORWARD, "DIRECTION_FORWARD", "forward"}, {DIRECTION_BACKWARD, "DIRECTION_BACKWARD", "backward"}, {0, NULL, NULL}};
+ GType direction_type_id;
+ direction_type_id = g_enum_register_static ("Direction", values);
+ g_once_init_leave (&direction_type_id__volatile, direction_type_id);
+ }
+ return direction_type_id__volatile;
+}
+
+
+void spin_event_loop (void) {
+#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
+ while (TRUE) {
+#line 137 "ui.c"
+ gboolean _tmp0_ = FALSE;
+#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp0_ = gtk_events_pending ();
+#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
+ if (!_tmp0_) {
+#line 39 "/home/jens/Source/shotwell/src/util/ui.vala"
+ break;
+#line 145 "ui.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/util/ui.vala"
+ gtk_main_iteration ();
+#line 149 "ui.c"
+ }
+}
+
+
+AdjustmentRelation get_adjustment_relation (GtkAdjustment* adjustment, gint value) {
+ AdjustmentRelation result = 0;
+ gint _tmp0_ = 0;
+ GtkAdjustment* _tmp1_ = NULL;
+ gdouble _tmp2_ = 0.0;
+#line 43 "/home/jens/Source/shotwell/src/util/ui.vala"
+ g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), 0);
+#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp0_ = value;
+#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp1_ = adjustment;
+#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp2_ = gtk_adjustment_get_value (_tmp1_);
+#line 44 "/home/jens/Source/shotwell/src/util/ui.vala"
+ if (_tmp0_ < ((gint) _tmp2_)) {
+#line 45 "/home/jens/Source/shotwell/src/util/ui.vala"
+ result = ADJUSTMENT_RELATION_BELOW;
+#line 45 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return result;
+#line 173 "ui.c"
+ } else {
+ gint _tmp3_ = 0;
+ GtkAdjustment* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ GtkAdjustment* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp3_ = value;
+#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp4_ = adjustment;
+#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp5_ = gtk_adjustment_get_value (_tmp4_);
+#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp6_ = adjustment;
+#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp7_ = gtk_adjustment_get_page_size (_tmp6_);
+#line 46 "/home/jens/Source/shotwell/src/util/ui.vala"
+ if (_tmp3_ > ((gint) (_tmp5_ + _tmp7_))) {
+#line 47 "/home/jens/Source/shotwell/src/util/ui.vala"
+ result = ADJUSTMENT_RELATION_ABOVE;
+#line 47 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return result;
+#line 196 "ui.c"
+ } else {
+#line 49 "/home/jens/Source/shotwell/src/util/ui.vala"
+ result = ADJUSTMENT_RELATION_IN_RANGE;
+#line 49 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return result;
+#line 202 "ui.c"
+ }
+ }
+}
+
+
+void get_adjustment_page (GtkAdjustment* hadj, GtkAdjustment* vadj, GdkRectangle* result) {
+ GdkRectangle rect = {0};
+ GtkAdjustment* _tmp0_ = NULL;
+ gdouble _tmp1_ = 0.0;
+ GtkAdjustment* _tmp2_ = NULL;
+ gdouble _tmp3_ = 0.0;
+ GtkAdjustment* _tmp4_ = NULL;
+ gdouble _tmp5_ = 0.0;
+ GtkAdjustment* _tmp6_ = NULL;
+ gdouble _tmp7_ = 0.0;
+#line 52 "/home/jens/Source/shotwell/src/util/ui.vala"
+ g_return_if_fail (GTK_IS_ADJUSTMENT (hadj));
+#line 52 "/home/jens/Source/shotwell/src/util/ui.vala"
+ g_return_if_fail (GTK_IS_ADJUSTMENT (vadj));
+#line 53 "/home/jens/Source/shotwell/src/util/ui.vala"
+ memset (&rect, 0, sizeof (GdkRectangle));
+#line 54 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp0_ = hadj;
+#line 54 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp1_ = gtk_adjustment_get_value (_tmp0_);
+#line 54 "/home/jens/Source/shotwell/src/util/ui.vala"
+ rect.x = (gint) _tmp1_;
+#line 55 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp2_ = vadj;
+#line 55 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp3_ = gtk_adjustment_get_value (_tmp2_);
+#line 55 "/home/jens/Source/shotwell/src/util/ui.vala"
+ rect.y = (gint) _tmp3_;
+#line 56 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp4_ = hadj;
+#line 56 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp5_ = gtk_adjustment_get_page_size (_tmp4_);
+#line 56 "/home/jens/Source/shotwell/src/util/ui.vala"
+ rect.width = (gint) _tmp5_;
+#line 57 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp6_ = vadj;
+#line 57 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp7_ = gtk_adjustment_get_page_size (_tmp6_);
+#line 57 "/home/jens/Source/shotwell/src/util/ui.vala"
+ rect.height = (gint) _tmp7_;
+#line 59 "/home/jens/Source/shotwell/src/util/ui.vala"
+ *result = rect;
+#line 59 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return;
+#line 252 "ui.c"
+}
+
+
+gboolean has_only_key_modifier (GdkModifierType field, GdkModifierType mask) {
+ gboolean result = FALSE;
+ GdkModifierType _tmp0_ = 0;
+ GdkModifierType _tmp1_ = 0;
+#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp0_ = field;
+#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp1_ = mask;
+#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
+ result = (_tmp0_ & ((((((((GDK_SHIFT_MASK | GDK_CONTROL_MASK) | GDK_MOD1_MASK) | GDK_MOD3_MASK) | GDK_MOD4_MASK) | GDK_MOD5_MASK) | GDK_SUPER_MASK) | GDK_HYPER_MASK) | GDK_META_MASK)) == _tmp1_;
+#line 77 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return result;
+#line 268 "ui.c"
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return self ? g_object_ref (self) : NULL;
+#line 275 "ui.c"
+}
+
+
+gchar* build_dummy_ui_string (GtkActionGroup** groups, int groups_length1) {
+ gchar* result = NULL;
+ gchar* ui_string = NULL;
+ gchar* _tmp0_ = NULL;
+ GtkActionGroup** _tmp1_ = NULL;
+ gint _tmp1__length1 = 0;
+ const gchar* _tmp16_ = NULL;
+ gchar* _tmp17_ = NULL;
+#line 90 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp0_ = g_strdup ("<ui>");
+#line 90 "/home/jens/Source/shotwell/src/util/ui.vala"
+ ui_string = _tmp0_;
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp1_ = groups;
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp1__length1 = groups_length1;
+#line 295 "ui.c"
+ {
+ GtkActionGroup** group_collection = NULL;
+ gint group_collection_length1 = 0;
+ gint _group_collection_size_ = 0;
+ gint group_it = 0;
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ group_collection = _tmp1_;
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ group_collection_length1 = _tmp1__length1;
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ for (group_it = 0; group_it < _tmp1__length1; group_it = group_it + 1) {
+#line 307 "ui.c"
+ GtkActionGroup* _tmp2_ = NULL;
+ GtkActionGroup* group = NULL;
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp2_ = _g_object_ref0 (group_collection[group_it]);
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ group = _tmp2_;
+#line 314 "ui.c"
+ {
+ GtkActionGroup* _tmp3_ = NULL;
+ GList* _tmp4_ = NULL;
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp3_ = group;
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp4_ = gtk_action_group_list_actions (_tmp3_);
+#line 322 "ui.c"
+ {
+ GList* action_collection = NULL;
+ GList* action_it = NULL;
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ action_collection = _tmp4_;
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ for (action_it = action_collection; action_it != NULL; action_it = action_it->next) {
+#line 330 "ui.c"
+ GtkAction* _tmp5_ = NULL;
+ GtkAction* action = NULL;
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp5_ = _g_object_ref0 ((GtkAction*) action_it->data);
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ action = _tmp5_;
+#line 337 "ui.c"
+ {
+ const gchar* _tmp6_ = NULL;
+ GtkAction* _tmp7_ = NULL;
+ const gchar* _tmp8_ = NULL;
+ const gchar* _tmp9_ = NULL;
+ GtkAction* _tmp10_ = NULL;
+ const gchar* _tmp11_ = NULL;
+ const gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gchar* _tmp14_ = NULL;
+ gchar* _tmp15_ = NULL;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp6_ = ui_string;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp7_ = action;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp8_ = gtk_action_get_name (_tmp7_);
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp9_ = _tmp8_;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp10_ = action;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp11_ = gtk_action_get_name (_tmp10_);
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp12_ = _tmp11_;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp13_ = g_strdup_printf ("<accelerator name=\"%s\" action=\"%s\" />", _tmp9_, _tmp12_);
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp14_ = _tmp13_;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp15_ = g_strconcat (_tmp6_, _tmp14_, NULL);
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _g_free0 (ui_string);
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ ui_string = _tmp15_;
+#line 93 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _g_free0 (_tmp14_);
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _g_object_unref0 (action);
+#line 377 "ui.c"
+ }
+ }
+#line 92 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _g_list_free0 (action_collection);
+#line 382 "ui.c"
+ }
+#line 91 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _g_object_unref0 (group);
+#line 386 "ui.c"
+ }
+ }
+ }
+#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp16_ = ui_string;
+#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _tmp17_ = g_strconcat (_tmp16_, "</ui>", NULL);
+#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
+ _g_free0 (ui_string);
+#line 95 "/home/jens/Source/shotwell/src/util/ui.vala"
+ ui_string = _tmp17_;
+#line 97 "/home/jens/Source/shotwell/src/util/ui.vala"
+ result = ui_string;
+#line 97 "/home/jens/Source/shotwell/src/util/ui.vala"
+ return result;
+#line 402 "ui.c"
+}
+
+
+